根据考试大纲,本章主要考查系统架构设计师单选题,本章预计考1分左右,第二版教材2.2节增加了本块内容,在22年真题考了磁盘管理,其他近几年真题均未考查,属于非重点内容。
1.1 计算机硬件组成
计算机的基本硬件系统有运算器、控制器、存储器、输入设备和输出设备五大部分组成。(冯.诺依曼结构)
运算器、控制器等部件被集成在一起统称为中央处理单元(CPU)
存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度快、容量小,一般用于临时存放程序、数据及中间结果;而后者速度慢、容量大,可长期保存程序和数据。
输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出处理结果。
1.2 处理器
CPU主要有运算器、控制器、寄存器组和内部总线等部件组成。
1.运算器
2.控制器
运算器只能完成运算操作,而整个运算过程是由控制器来完成,控制器控制整个CPU的工作。
3.寄存器组
寄存器组分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器。通用寄存器的用途有程序员来决定。
通用寄存器:当ALU执行算术或裸机运算时,为ALU提供一个工作区。
分类 | 寄存器 |
程序员可见 | 通用寄存器组、程序状态字寄存器(PSW)、程序计数器(PC)、累加寄存器(AC) |
程序员不可见 | 指令寄存器(IR)、数据缓冲寄存器(DR)、地址寄存器(AR) |
图形处理器(Graphics Processing Unit,GPU):具有成百数千个内核,经过优化可并行运行大量计算,在人工智能领域得到了广泛应用。
信号处理器(Digital Signal Processor,DSP):专用于实时的数字信号处理,在各类高速信号采集的设备中得到广泛应用,常采用哈佛体系结构。
现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)。
本节练习
执行CPU指令时,在一个指令周期的过程中,首先需从内存读取要执行的指令,此时首先要将指令的地址即____的内容送到地址总线上。
A.指令寄存器(IR)
B.通用寄存器(GR)
C.程序计数器(PC)
D.状态寄存器(PSW)
答案:C
1.3 校验码
1.奇偶校验码
奇偶校验码通过在编码中增加一位校验位,是编码中1的个数为奇数(奇校验)或偶数(偶校验)。
数据 | 奇校验 | 偶校验 |
10101010 | 101010101 | 101010100 |
01111111 | 011111110 | 011111111 |
2.海明码
海明码是一种多重奇偶校验码,具有检错和纠错的功能。数据位n,校验位k的关系应满足:
n + k + 1 <= 2^k
例题:给出二进制数据101101的海明码长度(n + k)。
3.循环冗余校验码
是一种多项式编码,由左边数据位和右边校验位组成。广泛应用于数据链路层的错误检测。
CRC只能检错,不能纠错。使用CRC编码,需要先约定一个生成多项式G(x)。生成多项式G(x)的最高位和最低位必须是1。假设原始信息有m位,则对应多项式M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除,接收方接收到带校验位的信息,然后用G(x)整除。余数为0,则没有错误;反之则发生错误。
例题:假设原始信息串为10110,CRC的生成多项式为G(x)= x^4 + x + 1,求CRC校验码。
(1)在原始信息后面添0,假设生成多项式的阶为r,则在原始信息位后添加r个0。在本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000,作为被除数。
(2)由多项式得到除数,多项式中x的幂指数存在的位置记为1,不存在的位置记为0。在本题中,x的幂指数4,1和0对于的变量都存在,而幂指数2,3对应的变量不存在,因此得到串10011。
(3)生成CRC校验码,将前两步得出的被除数和除数进行摸2除法运算(既不进位也不借位的除法运算)。
除法过程如下图所示:
得到余数1111。
注意:余数位数小于r,则余数左边用若干个0补齐。若余数为11,r=4,则余数左边补两个0,得到0011。
(4)生成最终发送信息串,将余数添加到原始信息后。本例中,原始信息位10110,添加余数1111后,结果为10110 1111。发送方将此数据发送给接收方。
(5)接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接收了带校验的帧后,用多项式G(x)来除。若余数为0,则表示信息正确;否则要求发送方进行重传。
注意:收发信息双方需使用相同的生成多项式。
1.4 指令系统
1.指令的格式
指令格式:
操作码指定要完成的操作或功能,地址码指定参与操作的操作数的地址。
2.指令的寻址方式
顺序寻址:下一条指令的地址有程序计数器PC给出,PC每次自增+1;
跳跃寻址:下一条指令的地址由指令本身给出。
3.操作数的寻址方式
立即寻址:指令的地址码字段不是操作数的地址,而是操作数本身,速度很快;
直接寻址:指令的地址码字段给出操作数在内存的地址(操作数在内存中);
间接寻址:指令的地址码字段给出操作数在内存的地址的地址(操作数在内存中);
寄存器寻址:指令的地址码字段给出操作数在寄存器的编号(操作数在寄存器中);
寄存器间接寻址:指令的地址码字段给出寄存器的编号,寄存器中锁存的内容为操作数在内存中的地址(操作数在内存中);
相对寻址:指令的地址码字段是一个偏移量,这个偏移量加上程序计数器PC的值即为操作数在内存的地址;
基址寻址:指令的地址码字段是一个偏移量,这个偏移量加上基址寄存器Rb的值纪委操作数在内存中的地址。
计算机指令执行过程:取指令->分析指令->执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR,之后由指令译码器进行分析,分析指令操作码;最后取出指令执行所需的源操作数,执行指令。
CPU如何区分指令和数据:CPU根据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或数据。
4.指令集的分类
CICS指令集:复杂指令集,各条指令按顺序串行执行。
RISC指令集:精简指令集,减少指令总数,采用优化编译、硬布线、重叠寄存器窗口等技术。
特性 | CISC | RISC |
指令数目 | 多 | 少 |
指令长度 | 可变长指令 | 大部分等长指令 |
控制器复杂度 | 复杂 | 简单 |
寻址方式 | 交丰富,提高编程灵活性 | 较少,以提高效率 |
编程便利性 | 指令多,编程灵活 | 编程量更大,采用较多通用寄存器 |
实现方式 | 微程序控制技术 | 采用硬布线逻辑控制优化编译程序,采用流水线技术 |
5.指令的流水线处理
指令流水线原理:将指令的执行划分若干过程段,每个过程段由不同的部件进行处理。
(a) 一个指令流水线过程段
6.指令流水的计算
非流水执行时间:一条指令执行的时间 * 指令总数
流水执行时间:第一条指令的执行时间 + 最长流水段时间 *(n - 1),n为指令总数
加速比:非流水方式与流水方式所用时间之比
流水线的操作周期:为最长流水段时间
流水线的吞吐量:为最长流水段时间的倒数
连续n条指令的吞吐率:指令总线/总时间
(a) 一个指令流水线过程段
本节练习
(2)RISC(精简指令系统计算机)的特点不包括____。
A.指令长度固定,指令种类尽量少
B.寻址方式尽量丰富,指令功能尽可能强
C.增加寄存器数目,以减少访存次数
D.用硬布线电路实现指令解码,以尽快完成指令译码
答案:B
1.5 存储器
1.存储系统的层次结构
存储器分级的目的:构件容量大、速度快、成本低的存储系统。
2.存储器的分类
按存储器的工作方式可分为:
随机存取存储器(RAM):
1)静态随机存储器SRAM,用于Cache;
2)动态随机存储器DRAM,用于主存。
特性 | SRAM | DRAM |
存储元 | 触发器 | 电容器 |
主要用途 | Cache | 主存 |
操作 | 读/写 | 读/写/周期性刷新 |
存取速度 | 快 | 稍慢 |
存储容量 | 小 | 大 |
芯片集成率 | 高 | 低 |
只读存储器(ROM):
ROM分类 | 擦除方式 | 擦除速度 | 可编程次数 |
固定只读存储器(ROM) | 无 | 无 | 无 |
可编程只读存储器(PROM) | - | 较慢 | 一次 |
可擦除可编程只读存储器(EPROM) | 紫外线照射 | 较慢 | 较少 |
电擦除可擦除可编程存储器(EEPROM) | 电擦除 | 较快 | 100w次左右 |
闪速存储器(闪存) | 电擦除 | 最快 | 较少 |
3.高速缓存Cache
(1)Cache的功能及原理
高速缓存Cache位于CPU与主存之间,用于存储当前活跃的程序和数据。可以直接与CPU进行数据交互,容量小,速度为主存的5-10倍。其内容时主存的一个拷贝副本,对程序员来说是透明的。
Cache的功能:解决CPU与主存之间的速度不匹配的问题。
Cache的理论依据:程序的局部性原理
CPU对主存中的指令和数据的访问,在一小段时间内,总是集中在一小块存储空间里。
(a)时间局部性:最近被访问过的指令和数据很可能会被再次访问;
(b)空间局部性:最近访问过的指令和数据往往集中在一小片存储区域中。
(2)主存与Cache的地址映射
在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换成Cache的地址,这种地址的转换称为地址映射,有硬件自动完成映射。
全相联映像:主存中的任意一个块可以与Cache中的任意一行相对应。
直接映像:Cache中一行固定对应主存中的多行,如主存块号对Cache总行数求模。
组相联映像:前两种方式的结合。将Cache进行分组,组间采用直接映射方式,组内采用全相联映射方式。
映像类型 | 映射方式 | 优点 | 缺点 | 适用场合 |
全相联映像 | 多对多 | 冲突概率小,Cache的利用率高 | 硬件难实现,且需要一个访问速度很快、成本高的相联存储器 | 小容量Cache |
直接映像 | 一对多 | 硬件实现简单,成本低,地址变换速度快 | 冲突概率高,且Cache空间利用率不高 | 大容量Cache |
组相联映像 | 一组对多 | 综合前两者的有点,又尽量避免其缺点,故被普遍采用 | -- | -- |
(3)Cache的替换策略
Cache替换算法的目标是使Cache获得尽可能高的命中率。
随机替换算法:从特定的行位置中随机地选取一行换出即可。特点:硬件易实现,速度快;但命中率和工作率在小容量Cache中不高。
先进先出算法(First In First Out,FIFO):最先进入Cache的行被换出。
LFU算法(Least Frequently Used,LFU):被访问的行计数器增加1,值最小的行被换出。特点:不能反映近期cache的访问情况。
FRU算法(Least Recently Used,LRU):被访问的行计数器置0,其他的计数器增加1,换值最大的行。特点:符合cache的工作原理。
(4)Cache的性能指标
当CPU所访问的数据在Cache中时,直接从cache中读取数据,即命中;否则,需要从主存中读取数据,即未命中。
命中率:在一个程序执行期间,设Nc表示cache完成存取的次数,Nm表示主存完成存储的总次数,h定义为命中率,则有:
4.磁盘
磁盘有正反两个盘面,每个盘有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。
存取时间:寻道时间+旋转等待时间+数据传送时间
寻道时间:将磁头定位到所要求的磁道上所需的时间
旋转等待时间:寻道完成后至磁道上需要访问的信息到达磁头下的时间,平均等待时间为磁盘旋转一周所需时间的一半。
数据传输速率:磁盘单位时间传送的字节数。
磁盘调度算法:
磁盘调度的目标是使磁盘的平均寻道时间最少。
(a)先来先服务(FCFS):根据进程请求访问磁盘的先后次序进行调度。
(b)最短寻道时间优先(SSTF):要求访问的磁道与当前磁头所在的磁盘距离最近,使得每次寻道时间最短,但平均寻道时间不一定最短。
(c)扫描算法(SCAN):电梯调度算法,每次选择距离最近的同一个方向的磁道访问。
(d)单向扫描调度算法(CSCAN):每次均从头到尾一次扫描访问。
本节练习
(3)以下关于cache与主存间地址映射的叙述中,正确的是____。
A.操作系统负责管理Cache与主存之间的地址映射
B.程序员需要通过编程来处理Cache与主存之间的地址映射
C.应用软件对Cache与主存之间的地址映射进行调度
D.由硬件自动完成Cache与主存之间的地址映射
答案:D
解析:主存与Cache的地址映射:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息,这就需要将主存地址转换成Cache的地址,这种地址的转换称为地址映像。由硬件自动完成映射。
1.6 总线
总线(Bus),是指计算机中,设备和设备之间传输信息的公共数据通道。
总总线的分类如下:
(1)内部总线:CPU内部连接运算器、控制器、各寄存器部件之间的总线。
(2)系统总线(外部总线):CPU和计算机系统中其他高速功能部件相互连接的总线。
( a)数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关。
b)地址总线用来指出数据总线上的源数据或目的数据所在的主存单元或I/O端口的地址,它是单向传输总线,地址总线的位数与主存地址空间的大小有关。
c)控制总线传输的是控制信息,包括CPU送出的控制命令和主存返回CPU的反馈信。
(3)I/O总线:中低速I/O设备相互连接的总线
总总线的分类:
按数据传输格式将总线分为串行总线和并行总线。
总线分类 | 数据线 | 特点 | 应用 |
串行总线 | 一条双向数据线或两天单向数据线 | 速率不高,但适合长距离连接 | 通信总线(计算机之间或计算机与其他系统之间) |
并行总线 | 多条双向数据线 | 有传输延迟,适合近距离连接 | 系统总线(计算机各部件) |
常见的总线:
PCI总线:PCI总线是目前微型机上广泛采用的内总线,采用并行传输方式。
SCSI总线:小型计算机系统接口(SCSI)是一条并行外总线,广泛用于连接软硬件磁盘、光盘、扫描仪等。
RS-232C(串行外总线)、USB(串行外总线)、IEEE-1394(串行外总线)、IEEE-488(并行外总线)等。
本节练习
(4)以下关于总线的说法中,正确的是____。
A.串行总线适合近距离高速数据传输,但线间串扰会导致速率受限
B.并行总线适合长距离数据传输,易提高通信时钟频率来实现高速数据传输
C.单总线结构在一个总线上适应不同种类的设备,设计复杂导致性能降低
D.半双工总线只能在一个方向上传输信息
答案:C
解析:C正确。单总线结构需要处理不同设备的共享问题,可能引入仲裁、延迟和复杂的协议,从而可能影响性能。A不正确,因为串行总线通常部署为了适应近距离高速数据传输而设计的,它的优势在于简化布线和降低线间串扰,适用于远距离传输。B不正确,因为并行总线由于存在信号skew和串扰问题,不适合长距离传输,并且提高通信时钟频率加剧这些问题。D不正确,半双工总线能够在两个方向上传输信息,但不能同时进行,即信息可以在两个方向上传输,但每次只能是一个方向。因此,说它“只能在一个方向上传输信息”是不正确的。
1.7 输入输出技术
CPU与外围设备之间的信息交换方式:
I/O接口与外设之间的信息交换
CPU与I/O接口之间的信息交换:程序查询方式、程序中断方式、DMA方式、通道方式
(1)程序查询方式
CPU执行程序来轮询查询外设的状态,判断外设是否准备好接收数据或向CPU输入数据。
特点:1、CPU与外设串行工作,2、硬件结构简单,3、CPU大量时间都在查询和等待,资源浪费较多,4、需要CPU保持现场,有CPU将数据放入内存,5、一次读写单元为字。
适用场合:低速外设或CPU认为不繁忙的情况。
(2)程序中断方式
中断:CPU暂时中止现行程序,转去处理随机发生的紧急事件,处理完成后自动返回源程序的功能和技术。
中断方法:当I/O接口与外设交换数据过程中,CPU无需等待;
当交换数据完成时,I/O接口产生中断,通知CPU处理数据。
特点:1、CPU与外设可并行工作,2、但硬件结构相对复杂一些,服务开销时间大,3、需要CPU保持现场,由CPU将数据放入内存,4、一次读写单位为字
使用场合:1、微型机中随机出现的服务,2、对I/O处理的实时性要求很高的系统。
重要概念:
中断向量:中断服务程序的入口地址
中断响应时间:从发出中断请求到开始进入中断处理程序
中断处理时间:从中断处理开始到中断处理结束;
保存现场:为了正确返回原程序继续执行;
单级中断系统:所以中断源属于同一级,里CPU越近优先级越高。执行中断服务程序时不会被打断
多级中断系统:中断源根据各中断时间的轻重缓急程度不同而分成若干级别,每一中断级分配给一个优先权。一般说来,优先权高的中断级可以打断优先级低的中断服务程序,以程序嵌套方式进行工作,多级中断可以嵌套,但同级的中断不允许嵌套;中断响应采用硬件实现;使用堆栈保存现场。
(3)DMA方式
直接内存存取(DMA),DMA控制器接管总线的控制权,数据交换不经过CPU,直接再内存和I/O设备间进行成块传送。
特点:1、CPU与外设可并行工作,2、仅在传送数据块的开始和结束时才需CPU的干预,3、不需要CPU保存现场,4、又外设直接将数据放入内存,5、一次读写单位为块,传送一个数据占用一个存储周期。
使用场合:微型机中内存与高速外围设备进行大批量的数据交换。
(4)输入/输出处理机IOP(通道方式)
由通道管理外围设备
特点:1、大大提高了CPU的效率,2、需要更多的硬件
使用场合:处理外设较多,规模较大的情形(大型机)。