【系统架构设计师】一、计算机系统基础知识(指令系统|存储系统|输入输出技术|总线结构)

目录

一、指令系统

1.1 计算机指令

1.2 指令寻址方式

1.3 CISC 与 RISC

1.4 指令流水线

二、存储系统

2.1 分级存储体系

2.2 地址映射

2.3 替换算法

2.4 磁盘

2.4.1 磁盘结构和参数

2.4.2 磁盘调度算法

三、输入输出技术

四、总线结构

五、考试真题练习


一、指令系统

1.1 计算机指令

  • 计算机指令的组成:一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

  • 计算机指令执行过程:取指令-一分析指令--执行指令三个步骤
    • 首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;

    • 而后由指令译码器进行分析,分析指令操作码;

    • 最后执行指令,取出指令执行所需的源操作数。

1.2 指令寻址方式

  • 指令寻址方式

    • 顺序寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行。

    • 跳跃寻址方式:指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

  • 指令操作数的寻址方式

    • 立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。

    • 直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。

    • 间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址。

    • 寄存器寻址方式:指令中的地址码是寄存器的编号。

    • 基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。

    • 变址寻址方式:变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。

1.3 CISC 与 RISC

  • CISC是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现;

  • RISC是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器硬布线逻辑控制)

指令系统类型指令寻址方式实现方式开发时间指令周期
CISC数量多,使用频率差别大,可变长格式微程序控制技术(微码)较短多周期为主
RISC数量少,使用频率接近定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存增加了通用寄存器;硬布线逻辑控制为主适合采用流水线较长单周期为主(采用流水技术,大部分指令在一个机器周期内完成)

1.4 指令流水线

        指令流水线原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段。

  • 流水线时间计算

  • 流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期

  • 流水线执行时间:1条指令总执行时间+(总指令条数-1)*流水线周期

  • 流水线吞吐率计算:吞吐率即单位时间内执行的指令条数。
    • 公式:指令条数/流水线执行时间

  • 流水线的加速比计算:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高。
    • 公式:不使用流水线执行时间/使用流水线执行时间

二、存储系统

2.1 分级存储体系

  • 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题

  • 两级存储:Cache-主存、主存-辅存(虚拟存储体系)

  • 局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:

    • 时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项

    • 空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。

  • 高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的

  • Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在cache中,在则命中,不在则依据一定的算法从主存中替换。

2.2 地址映射

        在CPU工作时送出的是主存单元的地址,而应从cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:

  • 直接映像:将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。

  • 全相联映像:同样都等分成块并编号。主存中任意一块都与cache中任意一块对应。因此可以随意调入cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入cache任意块,只有当cache满了才会发生块冲突,是最不容易发生块冲突的映像方式

  • 组组相连映像:前面两种方式的结合,将cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换

直接映像

2.3 替换算法

替换算法的目标就是使Cache 获得尽可能高的命中率。常用算法有如下几种:

  • 1.随机替换算法。就是用随机数发生器产生一个要替换的块号,将该块替换出去。

  • 2.先进先出算法。就是将最先进入cache 的信息块替换出去。

  • 3:近期最少使用算法。这种方法是将近期最少使用的Cache 中的信息块替换出去。

  • 4:优化替换算法。这种方法必须先执行一次程序,统计cache 的替换情况有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换。

命中率及平均时间 :Cache有一个命中率的概念,即当CPU所访问的数据在cache中时,命中,直接从Cache中读取数据,设读取一次cache时间为1ns,若CPU访问的数据不在Cache中则需要从内存中读取,设读取一次内存的时间为1000ns,若在CPU多次读取数据过程中,有90%命中cache,则CPU读取一次的平均时间为(90%*1+10%*1000)ns

2.4 磁盘

2.4.1 磁盘结构和参数

  • 磁盘有正反两个盘面每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中

  • 磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区才能读取到对应的数据,因此,会产生寻道时间和等待时间

         公式为: 存取时间=寻道时间+等待时间 (平均定位时间+转动延迟)

        注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。

2.4.2 磁盘调度算法

        磁盘调度算法之前已经说过,磁盘数据的读取时间分为寻道时间+旋转时间,也即先找到对应的磁道,而后再旋转到对应的扇区才能读取数据,其中寻道时间耗时最长,需要重点调度,有如下调度算法:

  • 先来先服务FCFS:根据进程请求访问磁盘的先后顺序进行调度。

  • 最短寻道时间优先SSTF:请求访问的磁道与当前磁道最近的进程优先调度,使得每次的寻道时间最短。会产生“饥饿”现象,即远处进程可能永远无法访问。

  • 扫描算法SCAN:又称“电梯算法”,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似。

  • 单向扫描调度算法CSCAN:与SCAN不同的是,其只做单向移动,即只能从里向外或者从外向里。

三、输入输出技术

计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种:

  • 1.内存与接口地址独立编址方法
    • 内存地址和接口地址是完全独立的两个地址空间访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。

  • 2.内存与接口地址统一编址方法
    • 内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。

计算机和外设间的数据交互方式:

  • 程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低

  • 程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据效率相对较高。中断响应时间指的是从发出中断请求到开始进入中断处理程序中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。

  • DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立直接的数据通路效率很高。

在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时。

四、总线结构

  • 总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。

  • 从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:
    • 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。

    • 系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。

    • 外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。

五、考试真题练习

  • 5.1 RISC(精简指令系统计算机)的特点不包括:

    • A.指令长度固定,指令种类尽量少

    • B.寻址方式尽量丰富,指令功能尽可能强

    • C.增加寄存器数目,以减少访存次数

    • D.用硬布线电路实现指令解码,以尽快完成指令译码

  • 5.2 某计算机系统采用 5 级流水线结构执行指令,设每条指令的执行由取指令(2Δt)、分析指令(1Δt)、取操作数(3Δt)、运算(1Δt)和写回结果(2Δt)组成,并分别用5个子部完成,该流水线的最大吞吐率为(请作答此空);若连续向流水线输入 10 条指令,则该流水线的加速比为()。

    • A.1/9Δt

    • B.1/3Δt

    • C.1/2Δt

    • D.1/1Δt

  • 5.3 假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为15us,由缓冲区送至用户区的时间是5us,在用户区内系统对每块数据的处理时间为1us,若用户需要将大小为10个磁盘块的Doc文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为(a)us;采用双缓冲区需要花费的时间为(b)us。

    • A.150

    • B.151

    • C.156

    • D.201

  • 5.4 按照cache地址映像的块冲突概率,从高到低排列的是()

    • A.全相联映像>直接映像>组相联映像

    • B.直接映像>组相联映像>全相联映像

    • C.组相联映像>全相联映像>直接映像

    • D.直接映像>全相联映像>组相联映像

  • 5.5

        假设某磁盘的每个磁道划分成11个物理块,每块存放1个逻辑记录。逻辑记录RO,R1,......R9,R10存放在同一个磁道上,记录的存放顺序如下表所示:

物理块1234567891011
逻辑记录R0R1R2R3R4R5R6R7R8R9R10

        如果磁盘的旋转周期为33ms,磁头当前处在R0的开始处。若系统使用单缓冲区顺序处理这些记录每个记录处理时间为3ms,则处理这11个记录的最长时间为(a);若对信息存储进行优化分布后处理11个记录的最少时间为(b)。

        a->A.33ms;B.336ms;C.366ms;D.376ms

        b->A.33ms;B.66ms;C.86ms;D.93ms

人工分割线

  • 答案
    • 5.1 A

    • 5.2 C 套公式就行

    • 5.3 D C
      • 单缓冲区:前两段要合并,是两段流水线,21+20*(10-1)=201

      • 双缓冲区:标准三段流水线,21+15*(10-1)=156

    • 5.4 B

    • 5.5 C B,第二空解析:

物理块1234567891011
逻辑记录R0R6R1R7R2R8R3R9R4R10R5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/715932.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PL理论】(29) OOP:面向对象编程 | 案例研究:C++ 中的类 | 继承 | 继承和指针 | Object-oriented Programming

💭 写在前面:本章我们将进入 Object-oriented Programming,面向对象编程的讲解,探讨 C 中的类,继承等。 目录 0x00 面向对象编程 0x01 C语言中的结构体 0x02 案例研究:C 中的类 0x03 术语 0x04 继承&…

12.3 Go 测试覆盖率

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

关于 python request 的 response 返回 b‘\xa3\xff\xff\x11E .....‘ 类型的数据的解决方案

最近写开发一个爬虫, 程序在本地好好的,返回的是正常的 html, 但是到了生产环境,不知道为什么返回的是一堆乱码 长这样: 查了好几天都没有进展, 对其进行各种转码均无效 今天终于找到解决办法了&#xff…

LabVIEW回热系统热经济性分析及故障诊断

开发了一种利用LabVIEW软件的电厂回热系统热经济性分析和故障诊断系统。该系统针对火电厂回热加热器进行优化,通过实时数据监控与分析,有效提高机组的经济性和安全性,同时降低能耗和维护成本。系统的实施大幅提升了火电厂运行的效率和可靠性&…

永久删除的文件如何恢复?记好这4个方法,轻松恢复文件!

“在清理电脑时,我一不小心把一些还需要的文件永久删除了,不知道大家有没有方法可以恢复这些文件呢?” 在数字时代,我们的生活和工作几乎都离不开电脑和各类存储设备。然而,随着数据的不断增长,误删文件、格…

DNS响应时间分析

目录 什么是DNS响应时间? 为什么DNS响应时间很重要? AnaTraf流量分析仪DNS分析 在当今数字化时代,网络的稳定性和性能对企业的运营至关重要。作为IT运维人员,我们的职责是确保网络顺畅运行,而DNS(域名系…

想做副业,如何发现用户需求呢?

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案…

关于电脑文件的规划思考

概述 设置C、D、E、F 四个盘 C盘:系统数据使用,操作系统、其他软件需要用到的系统性资源 D盘:应用软件区 的使用,数据库、navacat、idea、visual studio、浏览器、向日葵、虚拟机…… E盘:工作区:公司资料…

【云】各家云服务器介绍

文章目录 各主流云服务厂商个人开发者购买什么够用优惠信息 各主流云服务厂商 腾讯云: 优点:腾讯云在程序员圈子中享有“良心云”的美誉,主要是因为其价格性价比高,续费价格也不贵。腾讯云提供了多款云服务器配置,如2核…

物流货运单怎么打印,佳易王货物运单打印查询统计管理系统操作教程

物流货运单怎么打印,佳易王货物运单打印查询统计管理系统操作教程 一、前言 以下软件操作教程以,佳易王物流货运单管理软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 软件操作教程 1、物流开单点击导航栏 物流开单…

碉堡了!云原生大佬撰写的K8s学习指南,有点炸裂,建议运维都收藏!

在这个数字化转型的时代,容器化和云原生技术已成为软件开发的重要趋势。【Kubernetes】作为云原生领域的旗舰项目,不仅是一种容器编排工具,更是构建现代、弹性和可扩展应用程序的基础平台。 因此,对于运维人员来说,学…

【第四篇】SpringSecurity的HttpSecurity详解

SpringSecurity的XML文件配置 在配置文件中通过 security:http 等标签来定义了认证需要的相关信息 SpringSecurity的HttpSecurity配置 在SpringBoot项目中,脱离了xml配置文件的方式,在SpringSecurity中提供了HttpSecurity等工具类,这里HttpSecurity就等同于在配置文件中定…

【算法】Graham 凸包扫描算法 ( 凸包概念 | 常用的凸包算法 | 角排序 | 叉积 | Python 代码示例 )

文章目录 一、Graham 凸包扫描算法1、凸包概念2、常用的凸包算法3、Graham 凸包扫描算法 二、Graham 算法前置知识点1、角排序2、叉积3、算法过程分析 三、代码示例1、完整代码示例2、执行结果 使用 Graham 算法绘制的凸包效果 : 博客代码下载 : https://download.csdn.net/d…

【编程语言】Python平台化为何比Java差?

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

[Shell编程学习路线]——if条件语句(单,双,多分支结构)详细语法介绍

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月17日7点50分 🀄️文章质量:95分 文章目录 ————前言———— 💯趣站&#x1f4af…

AI大模型在运动项目的深度融合和在穿戴设备的实践及未来运动健康技术发展

文章目录 1. 技术架构2. 模型选择2.1 LSTM(长短期记忆网络)2.2 CNN(卷积神经网络)2.3 Transformer 3. 数据处理数据预处理 4. 实时性要求4.1 边缘计算4.2 模型优化 5. 数据隐私与安全6. 深入分析AI大模型在穿戴设备的应用和未来发…

Harbor镜像中心搭建

文章目录 Harbor镜像中心搭建前置条件下载Harbor创建CA证书配置Harbor开始启动地址映射访问配置本地登录配置外部虚拟机访问 Harbor镜像中心搭建 Harbor是一个镜像中心,我们所熟知的DockerHub就是一个镜像中心,我们可以把我们打包的镜像放在镜像中心中供…

Nuxt3 实战 (九):使用 Supabase 实现 Github 认证鉴权

前言 Supabase 使用的是 postgresql 的 Row Level Security (RLS),可以限制不同用户对同一张表的不同数据行的访问权限。这种安全机制可以确保只有授权用户才能访问其所需要的数据行,保护敏感数据免受未授权的访问和操作。 Auth Providers 打开 Supab…

Latex的参考文献中显示三个问号???——解决办法

1、问题描述 在使用spring模板,并引用book时,末尾的引文地方出现三个???由于使用的bibtex是直接从谷歌学术中导出来的,其中仅包含作者,书名,出版社,年份等,缺少了重要的信息。结果导致在出版…

【ARM】MDK Debug模式下Disassembly窗口介绍

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 主要了解Disassembly窗口中包含的内容,和如何利用Disassembly中的内容了解程序的存储和调用情况。 2、 问题场景 对于Disassembly窗口中具体包含的内容不了解,无法合理地应用Disassembly窗口…