408计算机组成原理学习笔记——中央处理器(二)

简介: 408计算机组成原理学习笔记——中央处理器

4.控制器的功能和工作原理

4.1.硬布线控制器(硬件控制)c0d65d4f394f4408a9b6bf7c058ea901.png

1.一个时钟周期内可以并行的完成多个不会引发冲突的微操作

2.同一个微操作可能在不同阶段被使用到

3.选择定长的机器周期,如果实际所需的时钟周期较少,则安排在机器周期的末尾执行

4.硬布线控制器根据指令操作码、目前的机器周期、节拍信号、机器状态条件等确定当前节拍下应该发出哪些微命令:

①指令操作码:操作码译码器根据IR的n位操作码,选通操作码译码器连接CU导线(n位对应n条导线),从而判断当前指令将要执行什么操作

②目前的机器周期:根据四个触发器当前哪个值为1判断当前处于什么机器周期(取址、间址、执行、中断)

③目前的节拍:每个机器周期都有相等的节拍数,节拍发生器通过控制信号控制m+1条与CU相连的线使其能够判断当前处于该机器周期的第几个节拍

④机器状态条件:即各种执行单元的反馈信息,例如PSW、ACC标志位等

5.CU的每一条输出线对应一个微操作:微操的判断可以由多个输入端加上与/或/非门电路实现

6.硬布线控制器特点:

①指令越多,电路越复杂→适用于RISC(指令少)

②扩种指令困难(需要大改电路

③纯硬件控制→执行速度快

4.2.微程序控制器(软件控制)

4.2.1.微程序控制器的基本原理image.png


1.微程序:与指令一一对应,由一系列微指令序列组成

微指令:由一系列微操作组成

微操作(微命令):最小具体操作单位,可以并行完成且不违反顺序的微操作集合成一个微指令

2.微指令格式:由操作控制(操作码)和顺序控制(地址码)组成

3.控制存储器CM(Control Memory):用于存放微程序(若干个微指令,按顺序存放),由ROM组成(非易事性、读取快),实现存储程序

CMAR(CM Address Register):小PC,存放微指令的地址

地址译码:将CMDR中的地址转换为控制信号

CMDR(CM Data Register):小IR,存放从CM中取出的微指令。由实现当前微指令的控制信号(操作码)和下一条微指令的地址(地址码)组成

微地址形成部件:根据CPU中IR的OP部分形成实现OP操作的微指令序列的首地址

顺序逻辑:控制微指令序列执行的顺序(当前应该执行哪一条微指令)


image.png

4.取值周期、间址周期、中断周期的微指令序列通常公用,仅需存储一份;执行周期各不相同,需要单独存储

4.2.2.微指令的设计

1.微指令的格式image.png

2.微指令的编码方式image.png

image.png

3.微指令的地址形成方式


image.png

4.微程序控制单元的设计

image.png

①第一个微指令从CM的#0出取址

②每个微指令的执行结束后,都需要进行一次把下一条微指令的地址(若是该微程序的最后一条微指令,则将下一个微程序的首个微指令的地址)放入CMAR的时钟周期

image.png

4.3.硬布线控制器和微程序控制器的比较


6998d217847d4907bfd3466401a2fb5b.png

5.指令流水线

5.1.流水线的基本概念

5.1.1.指令流水的定义image.png1.一次重叠:总耗时 = 第 1 条指令的完整周期(3) + 剩余(n - 1)条指令每条两个周期

2.二次重叠:总耗时 = 第 1 条指令的完整周期(3) + 剩余(n - 1)条指令每条一个周期

5.1.2.流水线的表示方法

image.png

5.1.3.流水线的性能指标6a6f71f648e845c1b2f66fb7e3026b2c.png1.吞吐率:吞吐率TP = 任务数n / 总用时T

总用时T = 第一条指令的完整用时 + (n - 1)个指令执行阶段耗时(理想情况,取一个时钟周期)= kt + (n - 1)t = (k + n - 1)t

装入时间:第一条指令从开始到结束的时间

排空时间:最后一条指令从开始到结束的时间8f05b424745b4c30861c4db457d135f7.png

2.加速比6ec617d37d9c40f38e5a2a85c9b00809.png

3.加速比

5.2.指令流水线的影响因素和分类

5.2.1.机器周期的设置

①划分为五个周期

IF(Instruction Fetch)取值:根据PC所指向的位置到Instruction Cache中找出当前要执行的指令,然后将该指令放到IF阶段的锁存器中

ID(Instruction Decode)译码:该阶段除了完成指令译码外,还会完成取操作数(从通用寄存器中取出),然后将操作数分别放入ID阶段的锁存器A、B中(或指令中包含立即数,则放入IMM)

EX(Execute)执行:对ID阶段的锁存器中储存的两个操作数进行计算,并将结果放入EX阶段的锁存器中

MEM(Memory)访存

WB(WriteBack)写回:可能将数据写回通用寄存器中

(IF和MEM阶段中的Cache分别是指令Cache和数据Cache,将Cache分为指令和数据两个独立的部分,可以使得IF和MEM的部件并行工作)

Cache不命中将会导致指令流水线断流(需要访存)

每条指令被划分为五个机器周期,就算某条指令在实际执行过程中的某个周期不需要做任何事(例如不需要访存、不需要写回),但它仍然需要经历这个周期(无法跳过)

③每个机器周期设置为同一周期:每个机器周期所需的时间实际上可能并不相同(100、80、70、50、50),取最长的耗时为统一的机器周期

5cbc45621e4c4cf59d620e27dc35ec97.png

为了使得能够统一机器周期,需要在某个功能部件后添加数据缓冲器:例如图中ID阶段仅需要80ns,而统一的机器周期为100ns,即ID的功能部件执行完成后,还剩余20ns,则ID执行后需先将数据存放到ID部件后的数据缓冲器中,经过20ns后,再将数据从数据缓冲器中输出,此时就能控制ID的机器周期为100ns

5.2.2.影响流水线的因素

1.结构相关(资源冲突):多条指令在同一时间争用统一资源d6cdb57e5e6f4862a761944a959ee212.png

①IF和MEM阶段可能访问同一内存空间;ID和WB阶段可能访问同一通用寄存器

②解决方法:后访问/数据和指令分开存储

2.数据相关(数据冲突):必须等待前一条指令完成才能执行后一条指令

5348c773882e4e16bd63af2c096f423c.png

①SUB、AND和OR指令在ADD指令将指令执行结果放回r1之前就从r1中取出数据,产生数据冲突

②XOR指令在ADD指令将指令执行结果放回r1后才取出数据,未发生数据冲突

③解决方法:硬件——添加气泡节拍延后产生数据冲突的指令133b3e44ab084be79a792c36e04e8e06.png软件——在产生数据冲突的指令间插入若干条空指控(NOP,需要完整的五个机器周期)4fb3028d94e646ee9adf202b1d5a466e.png

数据旁路——把前一条指令的ALU计算结果作为后一条指令的ALU输入

编译优化——调整指令执行顺序(将不发生冲突的指令提前,发生冲突的指令延后)

3.控制相关(控制冲突):遇到转移指令和其他改变PC值得指令产生断流

解决:①简单预测:永远猜正确/错误

动态预测:根据历史情况动态调整

②将正确和错误的控制流的指令都预先取出

③加快和提前形成条件码(类似加法器的思想——增加一条电路将结果输入到后面的加法器中)


















相关文章
|
6月前
|
存储 编译器 内存技术
【计算机组成原理】中央处理器
【计算机组成原理】中央处理器
265 1
【计算机组成原理】中央处理器
|
6月前
|
存储
【计算机组成原理】指令系统
【计算机组成原理】指令系统
219 0
【计算机组成原理】指令系统
计算机组成原理(2.2)--系统总线
它是将 CPU 、主存、 I/0 设备(通过 I/0 接口)都挂在一组总线上,允许 I/0 设备之间、I/0 设备与 CPU 之间或 I/0 设备与主存之间直接交换信息。
117 0
|
存储 芯片
计算机组成原理(2.1)--系统总线
总线(分散连接):连接多个部件的信息传输线,是各部件共享的传输介质。 分散连接:各部件之间使用单独的连线
122 0
|
C语言
计算机组成原理相关知识
计算机组成原理相关知识
103 0
|
存储 算法 芯片
计算机组成原理-系统总线
计算机组成原理-系统总线
182 0
|
存储 缓存
计算机组成原理(3)存储器
3.1.概述 3.1.1.定义 存储器,用于存储数据和程序。存储器中,以二进制的方式存储数据和程序,存储器由N个存储单元构成,存储单元由N个存储电路组成,这N个存储电路用来保存一个N位二进制数。每个存储单元的编号称为==地址==,存储器中能存放的数据的总位数(byte)称为存储容量,常用单位,KB、MB、GB…..
556 0
|
存储
408计算机组成原理学习笔记——中央处理器(三)
408计算机组成原理学习笔记——中央处理器
309 1
408计算机组成原理学习笔记——中央处理器(三)
|
存储
408计算机组成原理学习笔记——中央处理器(一)
408计算机组成原理学习笔记——中央处理器
348 1
408计算机组成原理学习笔记——中央处理器(一)
|
存储
408计算机组成原理学习笔记——指令系统(下)
408计算机组成原理学习笔记——指令系统
222 1
408计算机组成原理学习笔记——指令系统(下)