【本章学习建议】
根据考试大纲,本章主要考查系统架构设计师单选题,预计考1分左右。第二版教材2.2节增加了本块内容,但较为简略,需要课程补充,属于非重点内容。
1.1 计算机硬件组成
计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部件组成。(冯・诺依曼结构)
运算器、控制器等部件被集成在一起统称为中央处理单元(CPU)。
存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度快、容量小,一般用于临时存放程序、数据及中间结果;而后者速度慢、容量大,可长期保存程序和数据。
输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出处理结果。
1.2 处理器
CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。
1. 运算器
2. 控制器
运算器只能完成运算操作,而整个运算过程是由控制器来完成,控制器控制整个CPU的工作。
3. 寄存器组
寄存器组分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器。通用寄存器的用途由程序员来决定。
通用寄存器:当ALU执行算术或逻辑运算时,为ALU提供一个工作区。
分类 | 寄存器 |
程序员可见 | 通用寄存器组、程序状态字寄存器(PSW)、程序计数器(PC)、累加寄存器(AC) |
程序员不可见 | 指令寄存器(IR)、数据缓冲寄存器(DR)、地址寄存器(AR) |
1.3 指令系统
1. 指令的格式
指令格式:
操作码OP | 地址码A |
操作码指定要完成的操作或功能,地址码指定参与操作的操作数的地址。
2. 指令的寻址方式
·顺序寻址:下一条指令的地址由程序计数器PC给出,PC每次自增+1;
·跳跃寻址:下一条指令的地址由指令本身给出。
3. 操作数的寻址方式
·立即寻址:指令的地址码字段不是操作数的地址,而是操作数本身,速度最快;
·直接寻址:指令的地址码字段给出操作数在内存的地址(操作数在内存中);
·间接寻址:指令的地址码字段给出操作数在内存的地址的地址(操作数在内存中);
·寄存器寻址:指令的地址码字段给出操作数在寄存器的编号(操作数在寄存器中);
·寄存器间接寻址:指令的地址码字段给出寄存器的编号,寄存器中所存的内容为操作数在内存的地址(操作数在内存中);
·相对寻址:指令的地址码字段是一个偏移量,这个偏移量加上程序计数器PC的值即为操作数在内存的地址;
·基址寻址:指令的地址码字段是一个偏移量,这个偏移量加上基址寄存器Rb的值即为操作数在内存的地址;
·变址寻址:指令的地址码字段是一个偏移量,这个偏移量加上变址寄存器Rx的值即为操作数在内存的地址。
计算机指令执行过程:取指令->分析指令->执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;之后由指令译码器进行分析,分析指令操作码;最后取出指令执行所需的源操作数,执行指令。
CPU如何区分指令和数据:CPU根据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或数据。
4. 指令集的分类
·CISC指令集:复杂指令集,各条指令按顺序串行执行。
·RISC指令集:精简指令集,减少指令总数,采用优化编译、硬布线、重叠寄存器窗口等技术。
特性 | CISC | RISC |
指令数目 | 多 | 少 |
指令长度 | 可变长指令 | 大部分等长指令 |
控制器复杂性 | 复杂 | 简单 |
寻址方式 | 较丰富,提高编程灵活性 | 较少,以提高效率 |
编程便利性 | 指令多,编程灵活 | 编程量更大,采用较多通用寄存器 |
实现方式 | 微程序控制技术 | 采用硬布线逻辑控制优化编译程序,采用流水线技术 |
5. 指令的流水处理
指令流水线原理:将指令的执行划分成若干个过程段,每个过程段由不同的部件进行处理。
指令流水线的计算:
·非流水执行时间:一条指令执行的时间×指令总数
·流水执行时间:第一条指令的执行时间+(n-1)×最长流水段时间,n为指令总数
·加速比:非流水方式与流水方式所用时间之比
·流水线的操作周期:为最长流水段时间
·流水线的吞吐率:为最长流水段时间的倒数
·连续n条指令的吞吐率:指令总数/总时间
1.4 存储器
2. 存储器的分类
按存储器的工作方式可分为:
●随机存取存储器(RAM)
①静态随机存储器SRAM,用于Cache;
②动态随机存储器DRAM,用于主存。
特性 | SRAM | DRAM |
存储元 | 触发器 | 电容器 |
主要用途 | Cache | 主存 |
操作 | 读/写 | 读/写/周期性刷新 |
存取速度 | 快 | 稍慢 |
存储容量 | 小 | 大 |
成本 | 稍高 | 低 |
芯片集成率 | 高 | 低 |
●只读存储器存储器(ROM)
ROM分类 | 擦除方式 | 擦除速度 | 可编程次数 |
固定只读存储器(ROM) | 无 | 无 | 无 |
可编程只读存储器(PROM) | - | 较慢 | 一次 |
可擦除可编程只读存储器(EPROM) | 紫外线照射 | 较慢 | 较少 |
电擦除可擦除可编程储存器(EEPROM) | 电擦除 | 较快 | 100w次左右 |
闪速存储器(闪存) | 电擦除 | 最快 | 较少 |
3. 高速缓存Cache
(1)Cache的功能及原理
高速缓存Cache位于CPU与主存之间,用于存储当前活跃的程序和数据。可以直接与CPU进行数据交互,容量小,速度为主存的5-10倍。其内容是主存的一个拷贝副本,对程序员来说是透明的。
·Cache的功能:解决CPU和主存之间的速度不匹配的问题。
·Cache的理论依据:程序的局部性原理。
CPU对主存中的指令和数据的访问,在一小段时间内,总是集中在一小块存储空间里。
①时间局部性:最近被访问过的指令和数据很可能会被再次访问;
②空间局部性:最近访问过的指令和数据往往集中在一小片存储区域中。
(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的访问情况。
·LRU算法(Least Recently Used,LRU):被访问的行计数器置0,其他的计数器增加1,换值最大的行。特点:符合cache的工作原理。
(4)Cache的性能指标
当CPU所访问的数据在Cache中时,直接从Cache中读取数据,即命中;否则,需要从主存中读取数据,即未命中。
命中率:在一个程序执行期间,设N_c表示cache完成存取的次数,N_m表示主存完成存取的总次数,ℎ定义为命中率,则有:
4. 磁盘
磁盘有若干个盘片,每个盘片有正反两个盘面,每个盘有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。
·存取时间:寻道时间+旋转等待时间+数据传送时间
·寻道时间:将磁头定位至所要求的磁道上所需的时间
·旋转等待时间:寻道完成后至磁道上需要访问的信息到达磁头下的时间,平均等待时间为磁盘旋转一周所需时间的一半
·数据传送时间:读取数据所需的时间
1.5 总线
总线(Bus),是指在计算机中,设备和设备之间传输信息的公共数据通道。
总线的分类1:
(1)内部总线:CPU内部连接运算器、控制器、各寄存器部件之间的总线。
(2)系统总线(外部总线):CPU和计算机系统中其他高速功能部件相互连接的总线。 按系统总线传输信息内容的不同,又可分为3类:数据总线、地址总线和控制总线。
1)数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关。
2)地址总线用来指出数据总线上的源数据或目的数据所在的主存单元或I/O端口的地址,它是单向传输总线,地址总线的位数与主存地址空间的大小有关。
3)控制总线传输的是控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号。
(3)I/O总线:中低速I/O设备相互连接的总线。
总线的分类2:
按数据传输格式将总线分为串行总线与并行总线。
总线分类 | 数据线 | 特点 | 应用 |
串行总线 | 一条双向数据线或两条单向数据线 | 速率不高,但适合长距离连接 | 通信总线(计算机之间或计算机与其他系统之间) |
并行总线 | 多条双向数据线 | 有传输延迟,适合近距离连接 | 系统总线(计算机各部件) |
常见的总线:
·PCI总线:PCI总线是目前微型机上广泛采用的内总线,采用并行传输方式。
·SCSI总线:小型计算机系统接口(SCSI)是一条并行外总线,广泛用于连接软硬磁盘、光盘、扫描仪等。
·RS-232C(串行外总线)、USB(串行外总线)、IEEE-1394(串行外总线)、IEEE-488(并行外总线)等。
1.6 输入输出技术
CPU与外围设备之间的信息交换方式
·I/O接口与外设之间的信息交换
·CPU与I/O接口之间的信息交换:程序查询方式、程序中断方式、DMA方式、通道方式。
1. 程序查询方式
CPU执行程序来轮询查询外设的状态,判断外设是否准备好接收数据或向CPU输入数据。
--特点:
·CPU与外设串行工作
·硬件结构简单
·CPU大量时间都在查询和等待,资源浪费较多
·需要CPU保存现场,由CPU将数据放入内存
·一次读写单位为字
--适用场合
·低速外设或CPU任务不繁忙的情况
2. 程序中断方式
中断:CPU暂时中止现行程序,转去处理随机发生的紧急事件,处理完成后自动返回原程序的功能和技术。
中断方式:当I/O接口与外设交换数据过程中,CPU无须等待;当交换数据完成时,I/O接口产生中断,通知CPU处理数据。
--特点
·CPU与外设可并行工作
·但硬件结构相对复杂一些,服务开销时间大
·需要CPU保存现场,由CPU将数据放入内存
·一次读写单位为字
--适用场合
·微型机中随机出现的服务
·对I/O处理的实时性要求很高的系统
例如:键盘。
中断向量:中断服务程序的入口地址;
中断响应时间:从发出中断请求到开始进入中断处理程序;
中断处理时间:从中断处理开始到中断处理结束;
保存现场:为了正确返回原程序继续执行;
单级中断系统:所有中断源属于同一级,离CPU越近优先级越高。执行中断服务程序时不会被打断。
多级中断系统:中断源根据各中断事件的轻重缓急程度不同而分成若干级别,每一中断级分配给一个优先权。一般说来,优先权高的中断级可以打断优先权低的中断服务程序,以程序嵌套方式进行工作。多级中断可以嵌套,但同级的中断不允许嵌套;中断响应采用硬件实现;使用堆栈保存现场。
3. DMA方式
直接内存存取(DMA),DMA控制器接管总线的控制权,数据交换不经过CPU,直接在内存和I/O设备间进行成块传送。
--特点
·CPU与外设可并行工作
·仅在传送数据块的开始和结束时才需要CPU的干预
·不需要CPU保护现场
·由外设直接将数据放入内存(或相反)
·一次读写单位为块,传送一个数据占用一个存储周期
--适用场合
·微型机中内存与高速外围设备进行大批量的数据交换
4. 输入/输出处理机IOP(通道方式)
由通道(输入输出处理机IOP)管理外围设备。
--特点
·大大提高了CPU的效率
·但需要更多的硬件
--适用场合
·处理外设较多,规模较大的情形(大型机)