中央处理器
1. CPU 的功能和基本结构
1)CPU的功能
- 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
- 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
- 数据加工。对数据进行算术和逻辑运算。
- 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
运算器的基本功能:对数据进行加工。
控制器的基本功能:协调并控制计算机各部件执行程序的指令序列,基本功能包括取指令、分析指令、执行指令和中断处理。
取指令:自动形成指令地址;自动发出取指令的命令。
分析指令:操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
执行指令:根据分析指令得到的“操作命令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及I/O设备完成相应的操作。
中断处理:管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)。
2)CPU的基本结构
运算器的基本结构:
1.算术逻辑单元:主要功能是进行算术/逻辑运算。
2.通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
3.暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
如:两个操作数分别来自主存和R$,最后结果存回R0,那么从主存中取来的操作数直接放入暂存器,就不会破坏运算前R0的内容。
4.累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。
5.程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成。
6.移位器:对运算结果进行移位运算。
7.计数器:控制乘除运算的操作步数。
练习
B
B
2. 指令执行过程
指令周期: CPU从主存中每取出并执行一条指令所需的全部时间。
指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。
每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。
指令周期流程
指令执行方案
方案1.单指令周期
对所有指令都选用相同的执行时间来完成。指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。
对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
方案2.多指令周期
对不同类型的指令选用不同的执行步骤来完成。指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。
需要更复杂的硬件设计。
方案3.流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。
练习
C,冯诺伊曼计算机根据指令的不同阶段来区分从存储器取出的是指令还是数据,取指令周期取出的是指令,执行周期取出的是数据。
C,由于不采用指令预取技术,每个指令周期都需要取指令,而不采用Cache技术,因此每次取指令都至少要访问内存一次(当指令字长与存储字长相等且按边界对齐时),A正确。时钟周期是CPU的最小时间单位,每个指令周期一定大于等于一个CPU时钟周期,B正确。即使是操作空操作指令,在取指操作后,PC也会自动加1,C错误。由于机器处于“开中断”状态,在每条指令执行结束时都有可能被外部中断打断。
C,CPU从主存中每取出并执行一条指令所需的全部时间称为指令周期;时钟周期通常称为节拍或T周期,它是CPU操作的基本单位;CPU周期也称机器周期,一个机器周期包含若干时钟周期;存取周期是指存储器进行两次独立的存储器操作(连续两次读或写操作)所需的最小间隔时间。
A,程序计数器用于指出下条指令在主存中的存放地址,执行转移指令后也需要将目标指令地地址传输到程序计数器中。CPU正是根据程序计数器中地内容去存取指令的。
D,在取指操作后,程序计数器中的内容将被修改为下一条指令的地址,而不是当前指令的地址。
B,取指指令是自动进行的,控制器不需要得到相应的指令。
A,指令周期的第一个机器周期是取指周期,即从主存中取出指令字。
A,指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要两次访存,取指周期等于机器周期的两倍;若指令字长等于存储字长,则取指周期等于机器周期,因此I错ii正确。指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数,与机器字长没有必然的联系。但为了硬件设计方便,指令字长一般取字节或存储字长的整数倍,因此iii正确。根据III的分析可知,指令字长一般取字节或存储字长的整数倍,而不一定都和存储字长一样大,所以Ⅳ错误。综上,Ⅱ,Ⅲ正确。
3. 数据通路的功能和基本结构
数据通路:数据在功能部件之间传送的路径。
数据通路的基本结构:
-
CPU内部单总线方式。
-
CPU内部多总线方式。
-
专用数据通路方式。
数据通路-CPU内部单总线方式
内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;
系统总线是指同一台计算机系统的各部件,如CPU、内存、通道和各类I/O接口间互相连接的总线。
数据通路-专用数据通路方式
练习
D
A,单周期处理器是指所有指令周期为一个时钟周期的处理器,D正确。因为每条指令的CPI为1,要考虑比较慢的指令,所以处理器的时钟频率较低,B正确。单总线数据通路将所有寄存器的输入输出端都连接在一条公共通路上,一个时钟内只允许一次操作,无法完成所有操作,A错误。控制信号是CU根据指令操作码发出的信号,对于单周期处理器来说,每条指令的执行只有一个时钟周期,而在一个时钟周期内控制信号并不会变化;若是多周期处理器,则指令的执行需要多个时钟周期,则指令的执行需要多个时钟周期,在每个时钟周期控制器会发出不同信号,C正确。
4. 控制器的功能和工作原理
4.1 硬布线控制器
安排微操作时序的原则:
原则一微操作的先后顺序不得随意更改
原则二被控对象不同的微操作,尽量安排在一个节拍内完成。
原则三占用时间较短的微操作,尽量安排在一个节拍内完成,并允许有先后顺序。
4.2 微程序控制器
5. 指令流水线
5.1 指令流水线的基本概念
流水线的性能指标
5.2 指令流水线的基本实现
流水线的分类
1.部件功能级、处理机级和处理机间级流水线
根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶差、对阶、尾数相加以及结果规格化等4个子过程。
处理机级流水是把一条指令解释过程分成多个子过程,如前面提到的取指、译码、执行、访存及写回5个子过程。
处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中。
2.单功能流水线和多功能流水线
按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。
单功能流水线指只能实现一种固定的专门功能的流水线;
多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。
3.动态流水线和静态流水线
按同一时间内各段之间的连接方式,流水线可分为静态流水线和动态流水线。
静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。
4.线性流水线和非线性流水线
按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。
线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合进行线性递归的运算。
5.3 超标量和动态流水线的基本概念