01 软考架构师:计算机组成与体系架构

168 阅读16分钟

1. 本章概述

本章主要包含的内容:

  1. 计算机结构
  2. 存储系统
  3. 数据传输控制方式
  4. 总线
  5. CISC和RISC
  6. 流水线
  7. 校验码

2. 计算机组成

计算机由运算器、控制器、存储器、输入设备、输出设备组成,运算器和控制器构成CPU。

1725180880205.png

2. CPU组成

1725181267901.png CPU由运算器和控制器组成。

  • 运算器

运算器包括:

  1. 算术逻辑单元ALU:数据的算术运算和逻辑运算
  2. 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用于暂存数据
  3. 数据缓冲寄存器DR:写内存时,暂存指令或数据
  4. 状态条件寄存器PSW:存储状态标志与控制标志
  • 控制器包括

控制器包括:

  1. 程序计数器PC:存储下一条要执行的指令地址
  2. 指令寄存器IR:存储即将执行的指令
  3. 指令译码器ID: 对指令中的操作码字段进行分析解释
  4. 时序部件:提供时序控制信号

2.1 练习题

计算机在执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将()的内容送到地址总线上。A

A. 程序计算器PC 
B. 指令寄存器IR
C. 状态寄存器SR
D. 通用寄存器GR

3. 计算机的结构(冯诺依曼和哈佛结构)

计算机结构包含两种:一种是冯诺依曼结构;另一种是哈佛结构。

  • 冯诺依曼结构

冯诺依曼结构也称为普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储结构。特点:

  1. 一般用于PC处理器,比如,I3、I5、I7等
  2. 指令与数据存储器合并在一起
  3. 指令与数据都通过相同的数据总线传输
  • 哈佛结构

哈佛结构是一种将程序指令存储和数据分开的存储器结构了哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序的存储和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。特点:

  1. 一般用于嵌入式系统处理器(DSP),即数字信号处理(DSP,Digital Signal Processing)
  2. 指令与数据分开存储据,可以并行读取,有较高数据吞吐率
  3. 有4条总线:指令和数据的数据总线和地址总线。

几个简称: DSP(数字信号处理器)、Soc(System on Chip,片上系统)、MPU(微机的中央处理器,微处理器MPU)、MCU(微控制单元,单片微型计算机或单片机,Microcontoller Unit,MCU)。

3.1 练习题

  1. 目前处理器市场中存在CPU和DSP两种类型处理器,分别用于不同场景,这两种处理器具有不同的体系结构,DSP采用()。A
A. 冯诺依曼结构
B. 哈佛结构
C. FPGA结构
D. 与GPU相同结构

2. 嵌入式微处理器是嵌入式系统的核心,一般可分为嵌入式微处理器(MPU)、微控制器(MCU)、数字信号处理器(DSP)、和片上系统(SOC),以下叙述中,错误的是:()A

A. MPU在安全性和可靠性等方面进行增强,适用于运算量较大的智能系统
B. MCU典型代表是单片机,体积小从而降低功耗和成本下降
C. DSP处理器对系统结构和指令进行了特殊设计,适合数字信号处理
D. SOC是一个由专用目标的集成电路,其中,包括完整系统并有嵌入式软件的全部内容

4. 层次化存储

1725184177942.png

存储分为:外存、内存、高速缓存、寄存器存储,速度依次变快。RAM掉电丢失,ROM(比如,BIOS)只读存储器,掉电不丢失。

  • Cache Cache的功能:

提高CPU数据输入输出的效率,突破冯诺依曼的瓶颈,也就是CPU与存储器之间数据传送带宽限制。Cache对于程序员来说是透明的,使用Cache改善系统性能的一居室程序的局部性原理:

  1. 时间局部性

指程序中的某条指令一旦执行,不久之后该指令可能再次执行,典型原因就是程序中存在着大量的循环操作。

  1. 空间局部性

指一旦程序访问了某个存储单元,不久之后,其附近的存储单元也将被昂问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。

  1. 工作集理论

工作集是进程运行时被频繁访问的页面集合。

如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用"Cache+主存储器"系统的平均周期为t3,则: t3=h*t1+(1-h)*t2,其中,(1-h)又称为失效率(未命中率)

4.1 练习题

  1. 计算机采用分级存储体系的主要目的是为了()。D
A. 解决存储容量不足的问题
B. 提高存储器读写可靠性
C. 提交外设访问效率
D. 解决存储容量、价格和速度之间的矛盾

2. 以下关于Cache的叙述中,正确的是()。B

A. 在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素  
B. Cache的设计思路是在合理的成本下提高命中率
C. Cache的设计目标是容量尽可能与主存容量相等
D. CPU中的Cache容量应大于CPU之外的Cache容量

3. 在嵌入式系统设计时,下面几种存储结构中对程序员是透明的是()。A

A. 高速缓存
B. 磁盘存储器
C. 内存
D. flash存储器

5. 主存编址

1725191823269.png

  1. 一个存储单元占4个比特位。
  2. 存储单元: 存储单元个数 = 最大地址 - 最小地址 + 1
  3. 编址内容:
    1. 按字编址,存储体的存储单元是字存储单元,即最小寻址单位是一个字,字的长度手系统影响;
    2. 按字节编址,存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。
  4. 总容量=存储单元个数*编制内容
  5. 根据存储所要求的容量和选定的存储芯片的容量,就可以计算出所需的芯片的总数,即:
    1. 总片数 = 总容量/每片的容量

5.1 练习题

  1. 内存按字节编址,利用8k*4bit的存储芯片构成84000H到8FFFFH的内存,共需()片。C
A. 6
B. 8
C. 12
D. 24

解析:
存储单元个数 = 最大地址-最小地址+1=最大地址+1-最小地址
8FFFFH+1=90000H
90000H-84000H
 90000H
-84000H
——————————>>> 16进制计算:16-4 = 12,所以是C
  C000H
总容量 = 存储单元个数*编址内容 12*16^3*8bit
单位芯片容量:8k*4bit = 8*2^10*4bit
总芯片数 = 总容量/单位芯片容量

6. 磁盘管理(磁盘基本结构与存取过程)

1725193110066.png

概述:

磁盘是由一系列的盘面构成,每个盘面上分为很多的同心圆,叫做磁道;磁道一圈表示的是可以存储的容量,一个磁道很大,为了方便处理,将磁道进行划分成很多个扇区。

磁道是有编号的,存储的过程是:先在磁道上移动,找到要使用的磁道号,然后,等待盘面旋转到所要使用的扇区。因此:

存取时间=寻道时间+等待时间(实际上还有存储时的传输时间,一般计算时不考虑,除非特别说明)。寻道时间就是磁头移动到磁道所要的时间;等待时间就是为等待读写的扇区旋转到磁头下方所用的时间。

6.1 练习题

  1. 某磁盘磁头从一个磁道旋转到另一个磁道需要10ms,文件在磁盘上非连续存放,逻辑上相邻数据的平均移动距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和2ms,则读取一个100块的文件需要()ms时间。D
A. 10200
B. 11000
C. 11200
D. 20200
解析:
单个的存取时间:(10*10+100+2)ms
100块的时间: 100*单个的存取时间

7. 磁盘管理(磁盘优化分布存储)

7.1 练习题

1725194288706.png

8. 磁盘管理(磁盘单缓冲区和双缓冲区)

8.1 练习题

1725195011677.png

解析:

1725195040365.png

1725195078108.png

9. 磁盘管理(磁盘移臂调度算法)

移臂就是磁头的移动,移臂算法:先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)、循环扫描算法(CSAN)。

  • 先来先服务(FCFS)

先来先服务就是按照访问顺序,依次访问,如下图: 100->55->58->39->18->90->160->150->38->184 1725195648592.png

  • 最短寻道时间优先(SSTF)

最短寻道时间优先就是按按离当前磁道最近的一个磁道开始访问,每次访问最近的一个磁道。 1725195851376.png

9.1 练习题

1725195944282.png

10. 数据传输控制方式

数据传输控制方式分为:程序控制(查询)方式、程序中断方式、DMA方式、通道方式、I/O处理机5种,效率越来越高,需要掌握前3种。

  • 程序控制(查询)方式

分为无条件传送和程序查询方式两种,方法简单,硬件开销小,但I/O能力高,严重影响CPU的利用率。

  • 程序中断方式

与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。中断时程序会出现断点,这里会把程序的状态保存到一个栈中,这个记录的过程叫做保护(保存)现场。

1725197149581.png

  • DMA方式

DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。与DMA响应,通过DMAC通知I/O接口开始DMA传输。

10.1 练习题

  1. 嵌入式系统中采用中断方式实现输入输出的主要原因是()。在中断时,CPU断点信息一般保存到()中。 D、C
A、速度最快   B、CPU不参与操作 C、实现起来比较容易   D、能对突发事件做出快速响应
A、通用寄存器   B、堆   C、栈   E、I/O接口

11. 总线

  • 总线特点
  1. 总线是一组能为多个部件分时共享的公共信息传送线路。
    1. 共享
    2. 分时:是指在同一时刻仅允许一个部件向总线发送信息,但允许多个部件同时从总线上接收相同的信息。
  2. 串行总线(适合长距离传输)与并行总线(适合短距离连接,不宜过长)
  3. 单工、半双工和全双工
  4. 总线宽度与总线带宽
  • 总线分类
  1. 数据总线(Data Bus,DB):在CPU和RAM之间来回传送需要处理或是需要储存的数据。
  2. 地址总线(Address Bus,AB):用来指定在RAM(Random Acess Memory)之中储存的数据的地址。
  3. 控制总线(Control Bus,CB):将微处理控制单元(Control Unit)的信号传送到周边设备。

11.1 练习题

  1. 挂接在总线上的多个部件,()。B
A.只能分时向总线发送数据,并只能分时从总线接收数据
B.只能分时向总线发送数据,但可同时从总线接收数据
C.可同时向总线发送数据,并同时从总线接收数据
D.可同时向总线发送数据,但只能分时从总线接收数据

2. 下列说法正确的是()。C

A. 半双工总线只在一个方向上传输信息,全双工总线可在两个方向上轮流传输信息
B.半双工总线只在一个方向上传输信息,全双工总线可在两个方向上同时传输信息
C.半双工总线可在两个方向上轮流传输信息,全双工总线可在两个方向上同时传输信息
D.半双工总线可在两个方向上同时传输信息,全双工总线可在两个方向上轮流传输信息

3. 以下关于串行总线的说法中,正确的是()。C

A. 串行总线一般都是全双工总线,适宜于长距离传输 -->都是全双工错误
B. 串行总线传输的波特率是总线初始化时预先定义好的,使用中不可改变 -->可以改变
C.串行总线是按位(bit)传输数据的,其数据的正确性依赖于校验码纠正
D.串行总线的数据发送和接收以软件查询方式工作 --> 既可以查询方式,也可以中断方式

12. CISC和RISC

CISC,Complex Instruction Set Computers,复杂指令计算机

RISC,Reduced Instruction Set Computers,精简指令计算机

指令系统类型指令寻址方式实现方式其他
CISC(复杂)数量多,使用频率差别大,可变长格式支持多种微程序控制技术(微码)研制周期长
RISC(精简)数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存支持方式少增加了通用寄存器;硬不限逻辑控制为主;适合采用流水线优化编译,有效支持高级语言

12.1 练习题

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

A. 指令长度固定,指令种类经量少
B. 寻址方式尽量丰富,指令功能尽可能强
C. 增加寄存器数目,以减少访存次数
D.用硬布线电路实现指令解码,以尽快完成指令译码

13. 流水线

相关参数计算: 流水线执行时间计算、流水线吞吐率、流水线加速比等

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理时针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

1725279700689.png

  • 流水线执行时间计算

1725281242516.png

1725281465432.png

1725281379487.png

  • 流水线吞吐率

流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的基本公式如下:

1725281523745.png

流水线最大吞吐率:

1725281584796.png

image.png

  • 流水线加速比的计算

完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线加速比。计算流水线加速比的公式:

1725281729681.png

13.1 练习题

1725281767706.png

14 校验码

  • 校验码-奇偶校验

奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。

奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。

偶校验:整个校验码(有效信息位和校验码)中“1”的个数为偶数。

奇偶校验,可检查1位的错误,不可纠错。

  • 校验码-循环校验码CRC

CRC校验码只能检错,不能纠错。使用CRC编码,需要先约定一个生成多项式G(x)。生成多项式的最高位和最低位必须是1.假设原始信息有m位,则对应多项式M(x)。生成校验码的思想就是:在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方接收到带校验的信息,然后用G(x)整除。余数位0,则没有错误,反之则发生错误。

例如:假设原始信息串为10110,CRC的生成多项式为G(x)=x^4+x+1,求CRC校验码。

  1. 在原始信息位后面添加0,CRC的生成多项式为x^4+x+1,则在原始信息位后添加r个0,本题中G(x)的阶数为4,则在原始信息串后添加4个0,得到的新串为101100000,作为被除数
  2. 由多项式得到除数,多项式中x的幂指数存在的位置为1,不存在为0,本题中x的幂指数为0,1,4的变量都存在,而幂指数2,3都不存在,因此,得到串10011
  3. 生成CRC校验码,将前两步得出的被除数和除数进行模2除法运算。

1725284812593.png

注意,这里得到的余数为1111,如果余数不足r,则在余数左边用若干个0补足。比如,求得余数为11,r=4,则补齐后为0011。

  1. 生成最终发送信息串,将余数添加到原始信息后,上例中,原始信息为10110,添加余数后,结果为10110 1111.发送方将此数据发送给接收方。
  2. 接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接受了带校验和的帧后,用多项式G(x)来除,余数为0,表示信息无错,否则信息有误。

CRC校验码中,收发双发方需使用相同的生成多项式。

  • 奇偶、循环冗余和海明校验对比

1725283734877.png

14.1 练习题

若信息码字为111000110,生成多项式G(x)=x^5+x^3+x+1,则计算出的CRC校验码为()。B

A. 01101
B. 11001
C. 001101
D. 0111001

解析:

  1. 根据生成多项式来获取 系数二进制

1725283165433.png

  1. 做模2除法

1725283288170.png