1. CPU的功能和基本结构
1.1 CPU的组成
CPU由运算器
和控制器
组成。
注意:n位CPU,指机器字长为n,表示一次能够处理的二进制位数。自然与数据总线相等
1.1.1 运算器的基本组成
功能:对数据进行加工
-
通用寄存器组
:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP
是堆栈指针,用于指示栈顶的地址。 -
算术逻辑单元(ALU)
:主要功能是进行算术/逻辑运算 -
累加寄存器(ACC)
:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。 乘商寄存器(MQ)
-
程序状态字寄存器(PSW)
:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成 -
移位器
:对运算结果进行移位运算。 -
计数器
:控制乘除运算的操作步数。
- 注意:
- 通用寄存器位数取决于
机器字长
- 通用寄存器与ALU的连接有两种:
- 采用内部总线则ALU的
一个输入端口
和输出端口
要设置暂存寄存器
,若采用专用数据通道的方式则ALU端口
要设置多路选择器
或者三态门
。- 内部总线的CPU,其
ALU的输出端口会接一个暂存寄存器
,实际中,这个暂存寄存器常常由移位寄存器充当,移位寄存器的后面又接着一个三态门
(具体见图)。
1.2.2 控制器的基本组成
功能:取指令、分析指令并产生一系列微操作控制信号
程序计数器PC
指令寄存器IR
指令译码器
地址寄存器MAR
数据寄存器MDR
时序系统
微操作信号发生器
注意:
- PC是在
执行指令过程中
修改的。其中,非条件则在取指周期末
,条件则可能在执行周期末
。
- PC的位数取决于存储器容量, 和MAR一样
1.2.3 CPU的总图
注意:
- 程序员可见的寄存器:
- PC
- PSW
- 通用寄存器
- ACC
- 程序员不可见寄存器:
- MAR
- MDR
- IR
- 暂存寄存器
2. 指令执行过程
2.1 指令周期
注意:
时钟周期
—>机器周期
—>指令周期
- 时钟周期是CPU操作最基本的单位。
- 时钟周期又叫CPU时钟周期、节拍、T周期【注意:
CPU周期是指机器周期,CPU时钟周期是指时钟周期
】- 每个指令周期包含的机器周期数可以
不同
,而每个机器周期包含的时钟周期数也可以不同
。故,不同指令的指令周期可能不同
通常【注意是通常】]
把通过一次总线事务访问一次主存或I/O【即存取周期】
的时间定为一个机器周期。这样是为了方便指令流水,实际上,每个机器周期包含的节拍可以不一样。
在存储字长等于指令字长时,取指周期作为机器周期。
2.2 指令的执行流程
* 一个完整的指令周期由4个机器周期组成:
1. 取指周期(最后一步分析指令)
2. 间址周期 (若为间接寻址)
3. 执行周期(取操作数)
4. 中断周期(指令结束前,检查中断)
注意:
执行指令过程
!=执行周期
一般说控制器就是取指令、执行指令。其中的指取令指取指周期,执行指令指剩余的间址周期、执行周期、中断周期。- 指令和数据均以二进制放在内存中,CPU根据
指令周期的不同阶段
来区分指令和数据。
注意:
- 以上四个过程都访问了主存,只是目的不一样。
- 取指周期为了取指令
- 间址周期为了
取操作数的有效地址
,- 执行周期为了
取操作数
,- 中断周期为了将
断点信息保存到主存的堆栈中
。- 计算机根据
指令周期的不同阶段
来区分从存储器取出的是指令还是数据。比如,取值周期取出的是指令,执行周期取出的是数据。- 取指周期、执行周期
必有
,间址周期和中断周期可能有可能没有
。
取指周期完后,检测地址码的数据地址采用间址寻址、或寄存器间接寻址,若是则进入间址周期。
在执行周期完后 = 一条指令执行完后
,会判断是否有中断请求,有则进入中断周期。- 指令的取指操作是否相同—取决于
指令长度
,若指令长度相同,则取指操作相同。
- 指令的间址操作是否相同—取决于寻址方式和几次间址
2.2.1 取指周期
注意:
- 进行访存操作时,是MAR先通过地址总线将地址给存储器。然后, CU再通过控制总线发出读写信号,最后将数据放入MDR.
- PC在取指周期结束周期+“1”
- 指令总是根据
PC
从主存中读出。即便是转移指令,也是通过修改PC实现的。
2.2.2 间址周期(取操作数的有效地址)
注意:间址周期是取操作数的
有效地址
,而不是操作数。
2.2.3 执行周期
不同的指令,执行情况肯定不同,因此执行周期没有统一的流向。
2.2.4 中断周期
注意:和读操作一样,读写控制在MAR和MDR之间。
2.3 指令执行方案
3. 运算器的数据通路
数据在功能部件之间传送的路径称为数据通路。其功能是实现运算器和寄存器以及寄存器之间的数据交换。
数据通路描述了数据从什么地方来,经过了哪些功能部件,最后传送到哪里。
* 数据通路的基本结构
1. 专用数据通路方式:每个流动端都连接线,避免共享,性能高,但是硬件量大。
2. 总线数据通路方式:容易数据冲突
1. 单总线
2. 双总线
3. 多总线
3.1 基于CPU内部单总线的数据通路
注意:
- MDRinE,E是指外部总线,MDRin没有E指内部总线
写操作序列的几个注意点:
- 取值周期
- PC将值给MAR后立即自加。
(PC)+1->PC
和M(MAR)->MAR
放在一起,且读写信号在该行- 记得写第四步
指令译码
- 间址周期
- 将数放读入MDR后,只需要其放入ALU一端的暂存寄存器中,不需要将其放回到原寄存器中。
- 需要将操作数放在ALU两端,若只有一端有暂存寄存器,则将间接寻址的数放入暂存寄存器即可,另一个不动。
若两端都有暂存寄存器,则需要将另一个数也放入暂存寄存器中。- 若一端为
形式地址=有效地址
,则(X) + Ad(IR) -> ...
- 执行周期
- ALU上有控制信号
注意:
运算时,若只知道一个操作数,另一个操作数默认在ACC中。此时,在执行周期中,需要将运算完后的数据放回到ACC中
变址寻址方式:
- 先需要根据变址寄存器和形式地址找到数据的有效地址(需要用到地址加法器)
- 再读取数据。
最少节拍问题与立即寻址问题
- 最少节拍:先考虑分为几个事件,单独写出所有事件,再一个为基准,其他的逐条插入进来。考虑两点:
- 是否占用CPU内部总线
- 是否冲突
- 立即寻址问题:立即数表示
Ad(IR)
微程序控制器需要增加的微操作:(CMDR代替cIR,没有cIR)
- 虽然一条指令对应一个微程序,但是由于取指令是公用的微程序。因此,一条指令的执行涉及到两个微程序的运行。
- 相对于硬布线控制器
每两个指令操作中间要增加一个微操作
。类似于链表,指明下一条微指令的地址- 微程序之间,后面的微程序地址由指令的操作码字段译码得到
4. 控制器
控制器功能:
- 取指令
- 执行指令:根据指令得到一系列有序的微操作控制信号,通过微操作控制信号去执行指令。
根据控制器产生微操作控制信号【微操作不是指微程序,硬布线和微程序都有】
的方式不同,设计控制器中CU有2种方案:
- 硬布线控制器(采用
纯硬件,即组合逻辑
的方式)
- 缺点:
- 指令越多,设计和实现就越复杂,因此一般用于
RISC
(精简指令集系统)- 如果扩充一条新的指令,则控制器的设计就需要大改,因此
扩充指令较困难
。- 优点:
1. 由于使用纯硬件实现控制,因此执行速度很快
。微操作控制信号由组合逻辑电路即时产生。- 微程序控制器(采用
软件和硬件
结合的方式)
- 缺点:
速度慢
- 优点:
- 容易扩充指令,较容易实现,适用于
CISC
系统(复杂指令集系统)
4.1 硬布线控制器
4.1.1 硬布线控制器的组成
硬布线控制器中,每条指令由多个机器周期组成,而每个机器周期都由多个节拍组成。
硬布线控制器是由3个输入信号产生微操作控制信号:
① 指令译码器产生的指令译码信号
② 时序系统产生的节拍信号
③ 来自执行单元的反馈信号=标志信号
产生并输出一系列有序的微操作控制信号。
注意:
- ①②③中①②最重要
- CU还接受来自控制总线的控制信号,比如中断请求、DMA请求等,但这些与产生微操作控制信号无关。
4.1.2 CPU控制方式
CPU如何依次执行一个确定的微操作序列?
- 同步控制:系统有一个统一的时钟
- 优点:电路简单
- 缺点:运行速度慢
- 异步控制:没有统一时钟,各部件按照自身速度工作
- 优点:运行速度快
- 缺点:电路复杂
- 联合方式:大部分采用同步控制,小部分采用异步控制
4.2 微程序控制器
4.2.1 微程序控制器的组成
微程序控制器采用存储逻辑实现,也就是把微操作控制信号代码化,即微指令
(微指令产生微操作控制信号),然后把微指令组成的微程序存入控制寄存器CM
中。这就是微程序控制器。
其思想是:为每条指令设计一个微程序
。每个微程序包含若干微指令
,每条微指令对应若干微命令
。
而硬布线控制的每条指令包含若干机器周期,每个机器周期包含若干个微操作。
注意:
- 微程序控制器中采用微命令概念,而
微命令执行的操作微操作
- 指令 vs 微指令:
- 指令是对
程序
执行步骤的描述;- 而微指令是对
指令
执行步骤的描述。- 主存 vs 控制寄存器:
- 主存用于存放
指令
和数据
;在CPU外;用DRAM
实现- CM用于存放
微指令
;在CPU内;用ROM
实现- MAR vs CMAR(微地址寄存器):
- 地址寄存器:用于存放对主存的读写地址
- 微地址寄存器:用于存放对控制寄存器的读写地址
- MDR vs CMDR:
- 数据寄存器:用于存放从
写入主存/从主存中读出
的数据- 微数据寄存器:
从控制寄存器中读出
的数据。- 指令和微指令结构一样,都是两个字段:操作码、地址码
- 微程序控制器中将取指令操作统一编写成一个微程序。因此,
若指令系统中有n中机器指令,则控制寄存器中的微程序数至少是n+1
若带中断,则还需+1,即n + 2
其执行过程:
4.2.2 微指令的设计
4.2.2.1 微指令的格式
注意:
- 一条水平型微指令能定义多个可并行的微命令;而一条垂直型微指令能定义一个微命令
- 无论是上面哪种格式的微指令。一条微指令都存放在控制器的
一个
控制存储器单元中。
4.2.2.2 微指令的编码方式
指:对水平型微指令操作码字段的多个微操作进行编码。
有3种方式:
例题:
- 直接编码:
注意:一条微指令都存放在控制器的
一个
控制存储器单元中。- 字段直接编码 【注意:每个字段需要留
1个状态
表示不操作】
4.2.2.3 微指令的地址方式
后序微指令地址的形成主要有如下几类:
例题:
4.3 硬布线控制器 vs 微程序控制器
微程序的目标:提高速度、灵活性,减少指令长度
5. 指令流水线
5.1 指令流水线的基本概念
注意:
CISC
可以采用指令流水线技术和非流水线技术,但是,RISC
必须采用流水线技术。所以,默认定长指令。
5.1.1 指令流水的定义
假设指令周期分为3个阶段: 取指令、分析指令、执行指令。则该指令连续执行的方式主要有如下3种:
注意:
- 稳定时的流水线与并行执行的吞吐率相同。
- 段时间不相等时情况
- 流水线的数据通路(默认以完整的5段流水)
5.1.2 指令流水的特点
指令流水中机器周期:
功能部件最长的
+缓冲寄存器时间
5.1.3 指令流水的2种表示方式
5.1.4 流水线的性能指标
* 流水线的性能指标
1. 吞吐率
2. 加速比
3. 效率
计算流水线带宽的例题:
5.2 指令流水线影响因素
5.2.1 影响流水线的因素
* 影响流水线的因素
1. 结构相关(资源冲突/冒险)
2. 数据相关(数据冲突/冒险)
3. 控制相关(控制冲突/冒险)
注意:
- 转移指令和修改PC值的指令都可能引起控制相关。类似于判断、循环、函数调用、递归等涉及跳转的
- 数据冲突有:和写有关都可能冲突—
RAW(写后读)
、WAR(读后写)
、WAW(写后写)
但是,流水线按序流动时,只可能出现RAW(写后读)
冲突
非顺序, 则以上3中都有可能
5.3 流水线的多发技术
* 流水线的多发技术
1. 超标量流水线技术(多核CPU,空间并行)
2. 超流水线技术
3. 超长指令字
注意:超标量流水线技术必须是多核CPU,从而实现
一个时钟周期内多次使用一个功能部件
。其使用了多个重复的功能部件
和动态调整技术
,从而提高指令执行的并行性。
例题:
- 采用度为4的超标量流水线CPU,指其一个时钟周期内能发出4条指令。
5.4 指令流水综合例题
6. 几个常考指令
6.1 运算类指令
6.2 LOAD指令
6.3 STORE指令
6.4 条件转移类指令
6.5 无条件转移类指令
文章来源:https://www.toymoban.com/news/detail-509761.html
6.6 例题
文章来源地址https://www.toymoban.com/news/detail-509761.html
7. 补充
1. 程序员可见的寄存器:
1. PSW
2. 通用寄存器
3. PC
2. 程序员不可见的寄存器:
1. IR
2. MAR
3. MDR
4. 暂存寄存器
3. 控制器里面:
1. CU
2. MAR
3. MDR
4. IR
5. PC
6. 指令译码电路 (只对操作码进行译码,而不是整个指令)
7. 微程序信号发生器
8. 时序电路
4. 运算器里面:
1. ALU
2. ACC
3. MQ
4. 通用寄存器
5. PSW
6. 移位器:对运算结果进行移位运算。
7. 计数器:控制乘除运算的操作步数。
5. 条件转移指令:
1. 执行时所依据的条件来自:标志寄存器
2. 实现跳转来自:程序计算器PC
6. n位CPU指__(地址总线/数据总线/控制总线)位数。
答:数据总线。表示CPU一次处理数据的位数。
7. 判断:转移指令时,PC的值总是修改为转移指令的目标地址。
错。因为需要判断跳转是否成功,即条件是否成立。若不成功则顺序执行。
8. PC的位数 = MAR的位数 ->取决于存储器的容量
9. 通用寄存器的位数取决于___(指令长度/机器字长/存储器的容量)
答:机器字长。因为通用寄存器可以存放数据和地址,所以其位数尽可能的大。
10. 判断:通用寄存器可以替代指令寄存器。
错误。指令寄存器是专门存放指令的寄存器。
11. 指令译码是对___(整条指令/操作码/地址码)进行译码
答:操作码
12. CPU取分指令和数据的依据是()‘
A. 指令操作码的译码结果 B. 指令周期的不同阶段
选B。计算机根据指令周期的不同阶段来区分从存储器取出的是指令还是数据,取值周期取出的是指令,执行周期取出的是数据。
而指令操作码的译码结果用于区分该指令属于哪类指令。
13. 采用DMA方式传送数据时,每传送一个数据就要占( )
A. 指令周期 B. 时钟周期 C. 机器周期 D. 存取周期
选D。A,B,C都是指令中的概念,而存取周期指存储器进行连续两次独立的存储器操作(连续两次读或写操作)所需要的最小时间间隔。
14. 判:指令总是根据程序计算器从主存中读出。 正确。因为,转移等其他跳转指令都是通过修改PC的指而实现的。
15. 判:为了进行取指令操作,控制器需要得到相应的指令。
错误。取指操作是自动进行的。
16. 判:通常把通过一次总线事务访问一次主存或I/O的时间定为一个机器周期。
正确。因为CPU内部的操作速度快,而CPU访问一次存储器的时间较长,因此机器周期通常由访问主存或I/O的时间确定。
17. 判:每个指令周期都包含一个中断响应的机器周期。
错误。只有在有中断请求时,指令才会有中断响应的机器周期。(间址周期也类似,可以回去看看上面那个图)
18. 判断:执行各条指令的机器周期数可变,各机器周期的长度均匀。
错误。应该是执行各条指令的机器周期数可变,各机器周期的长度可变。
每条指令可能有间址周期、中断周期,故机器周期数可变。每个机器周期的节拍数可能不等,故机器长度也可不等,但是采用流水线技术时一般相等。
19. 判断:凡是存储器间接寻址的指令,他们的操作都是相同的。
错误。存储器间接寻址包括一次间接、两次间接、多次间接,因此操作可能不同。
20. 判断:所有指令的取值操作相同。
错误。不同长度的指令,取值操作不同,比如双字长的指令要两次访问主存。
另外,这种说法是对的:在指令长度相同的情况下,所有指令的取值操作相同。
21. 说法正确的是( 多选)
A. 指令字长等于机器字长的前提下,取值周期等于机器周期
B. 指令字长等于存储字长的前提下,取值周期等于机器周期
C. 指令字长和机器字长的长度没有任何关系
D. 为了方便硬件设计,指令字长和存储字长一样大。
B, C。指令字长一般为存储字长的整数倍,若指令字长为存储字长的两倍,则需要2次访问主存,取值周期等于两倍的机器周期。故B对
指令长度与机器字长无关,故A错,C对。
指令指令字长一般取字节或存储字长的整数倍,不一定都和存储字长一样大。
22. 在组合逻辑控制器中,微操作控制信号的形成主要与( )信号有关。
A. 指令操作码和地址码
B. 指令译码信号和时钟
C. 操作码和条件码
D. 状态信息和条件
选B. 硬布线主要是根据三个输入信号输出一系列控制信号。这三个输入信号是
1. 指令译码电路产生的指令译码信号
2. 时序系统产生的机器周期和节拍信号
3. 来自执行单元的反馈信号,即标志信号。
而这三个中1,2最重要。
23. 判断:采用微程序控制器是为了提高速度。
错误。硬布线控制器的速度更快,采用微程序控制器主要是为了提高灵活性。
24. 判断:控制存储器由高速RAM电路组成。
错误。CM是CU中类似于控制器中主存的存在,但是其是由ROM组成。
25. 判断:微指令计数器决定指令执行顺序。
错误。CU中的微指令计数器类似于控制器中PC的存在,用于决定微指令执行顺序。
26. 判断:一条微指令存放在控制器的一个控制存储器单元中。
正确。注意一个控制存储器单元存放一条微指令。
27. 判断:微程序控制器的时序系统比硬布线的简单。
正确。因为硬布线控制器中时序是输入信号,设计组合逻辑电路时会更加复杂。
28. 在微程序控制器中,控制部件向执行部件发出的某个控制信号称为( )
A. 微程序 B. 微指令 C. 微操作 D. 微命令
D. 控制部件向执行部件发出的控制信号是微命令,微命令执行的操作叫微操作。
29. 判断:水平型微指令和垂直型微指令一次都只能完成一个基本操作。
错误。前者可以完成多个,后者只能完成一个。
30. 判断:采用微程序控制器的处理器称为微处理器。
错误。微处理器指控制器和运算器集成在一块板上,即CPU。
31. 判断:在微指令编码中,效率最低的是直接编码方式。
错误。如果是编码效率,直接编码方式效率最低。但是如果是执行效率,则其最快,因为其不需要译码。
32. 判断:每条指令由一段微程序来解释执行。
正确。意思就是由多个连续的微程序执行。
33. RISC机器一定是采用流水CPU,而采用流水CPU的不一定是RISC,CISC也可以采用流水CPU
34. 判断:流水CPU利用的是空间并行性原理。
错误。是时间并行性。
空间并行:即资源复用,主要指多个功能部件同时执行同一任务的不同部分。
时间并行:即时间重叠,让多个功能部件在时间上相互错开,轮流执行不同任务的相同部分。
35. 判断:超标量流水技术能够缩短流水线功能段的处理时间。
错误。(看图)
到了这里,关于计组高分笔记:【05】中央处理器 「CPU细节 | 取指周期 | 间址周期 | 执行周期 | 中断周期 | 数据通路 | 硬布线控制器 | 微程序控制器 | 指令流水线 | LOAD | STORE」的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!