关山初度尘未洗,策马扬鞭再奋蹄!这篇文章主要讲述Computer Organization笔记11多周期CPU相关的知识,希望能为你提供帮助。
本次笔记内容:
P21 计算机组成原理(21)
P22 计算机组成原理(22)
本节课对应幻灯片:
- 组成原理25 multicycle.pptx
文章目录
-
-
- 本讲提要
- 单周期CPU特点
-
- 单周期CPU的性能
- 单周期CPU其他问题
- 多周期CPU
-
- 多周期CPU控制器
-
- 控制器的组成
- 两种不同类型的控制器
- 硬连线控制器组成与实现
- 微程序控制器组成与实现
- 多周期的CPU控制器设计
-
- 多周期CPU的Datapath
- MIPS计算机硬件组成
- MIPS指令执行步骤
-
- MIPS的 ADD 指令 的执行过程
- MIPS的 LW 指令 的执行过程
- MIPS的 BEQ 指令 的执行过程
- MIPS的 J 指令 的执行过程
- 状态转移图和指令各执行步骤的操作功能
- Control Unit
-
- FSM Implement
- 小结
-
承接上节课内容,首先是复习单周期CPU;接着由单周期CPU缺陷,引出多周期CPU。
本讲提要
- 单周期CPU特点
- 单周期CPU主要不足
- 多周期CPU设计
-
- 多周期CPU控制器基本组成
-
- 多周期CPU设计过程
为什么单周期CPU不再适用了?
- 各组成部件的利用率不高:各部件大部分时间在保持信号
- 时钟周期需要满足执行时间最长指令的要求
- Load指令
- CPI =1
文章图片
如上,对于不同部件,其需要的动作(工序)不同,因此时间不同。比如对于sw,无需寄存器写 Reg. Write这道“工序”。
文章图片
单周期CPU上,其数据通路上的最长延迟为最长的那个。
因此:
- 指令周期比较长
- 所有指令都必须使用最长的周期
- 25%的Load指令
- 10%的Store指令
- 45%的算逻指令
- 20%的跳转指令
- 100*8 = 800ns
- 25*8+10*7+45*6+20*5=640ns
- Speedup=800/640=1.25
- 许多部件保持数据的时间过长,无法复用
- 例如,Adder 功能是否可以利用ALU实现?
文章图片
多周期CPU
将指令执行过程分解成多个步骤:
- 和单周期CPU基本相同
- 每条指令占用它需要的步骤数
- 尽量平衡各步骤间的延迟
- 尽量限制每个步骤使用单一的主要部件
- 控制器仅需提供当前步骤所需要的控制信号
- 保存好下一步骤要用到的值:引入“新”的内部寄存器
- 转到下一步骤执行:引入状态标记当前步骤、有限自动机
- 能够正确并且自动地连续执行指令:按程序中设定的指令次序执行
- 正确地分步完成每一条指令规定的功能:读取指令→ 分析指令→ 执行指令
控制器的组成
- ①程序计数器PC:存放指令地址,有增量或接收新值功能
- ②指令寄存器IR:存放指令内容:操作码与操作数地址(多周期CPU特有的)
- ③指令执行步骤标记线路:指明每条指令的执行步骤和相对次序关系(多周期CPU特有的)
- ④控制信号产生线路:给出计算机各功能部件协同运行所需要的控制信号
- 控制器还要配合主脉冲源与启停控制线路
文章图片
组合逻辑控制器相对应的机制有一些问题:
- 增加一条指令比较困难;
- 增加一条指令需要重排所有指令的逻辑。
两种不同类型的控制器根据指令步骤标记线路和控制信号产生线路不同的组成和不同的运行原理,有两种不同类型的控制器:
- 硬连线控制器(组合逻辑控制器):采用组合逻辑线路、依据指令及其执行步骤直接产生控制信号。
- 微程序控制器:采用存储器电路把控制信号存储起来,依据指令执行的步骤读出要用到的信号组合。
文章图片
硬连线控制器由程序计数器PC、指令寄存器IR、节拍发生器Timer和控制信号产生部件 4 部分组成。
- PC用于提供待读出指令在主存储器中的地址;
- IR用于保存从主存储器中读出的指令内容;
- Timer 用于给出并维护指令执行步骤的编码;
- 控制信号产生部件用于依据指令内容(在IR中)和指令执行所处的操作步骤(Timer 提供),用组合逻辑线路产生计算机本操作步骤中各个部件所需要的控制信号。
其实现为:
在多周期CPU 系统中, 要按照指令总的功能要求,把不同的功能序列划分到相应的步骤,再落实到不同的部件,控制器需要按照指令及其执行步骤,为计算机各个部件提供它们协同运行所需要的控制信号。
向各部件提供哪些控制信号,决定于各部件的运行要求。为此必须规划汇总各部件在各个执行步骤中要求使用的控制信号。这些信号是用组合逻辑电路产生的,可以表示为:信号i = f (指令内容, 执行步骤等),通常表现为多个由与、或两级逻辑构成的表达式。
文章图片
微程序控制器组成与实现采用控制存储器存储每条指令的每个执行步骤所需要的全部控制信号:
- 用微地址进行访问,读出控制信号并输出
- 根据指令操作码映射出该指令的首条微指令的地址
- 每条微指令给出其下一步骤的微地址
文章图片
但是,由于流水的普及,微程序控制器已经越来越不普及。本节课也仅仅是简介一下微程序控制器。主要以组合逻辑控制器为例。
多周期的CPU控制器设计
- 确定数据通路
- 划分指令执行步骤:指令流程图
- 安排每条指令每个步骤的功能,并给出相应的控制信号:指令流程表
- 为指令执行步骤设计状态机
- 为每个步骤的控制信号设计控制信号生成逻辑
文章图片
如图,相对于单周期CPU,主要增加了些寄存器。
MIPS计算机硬件组成
文章图片
如上,要加一个写PC的控制信号(每次决定要不要写)。
文章图片
文章图片
文章图片
文章图片
MIPS指令执行步骤
文章图片
- MIPS机的取指操作可1步完成,在取指之后;
- J 型指令用PC 高4位拼接Target 可以只经过1步完成,;
- 相对转移(I型) 指令经读寄存器堆、ALU运算可2步完成;
- R 型指令经读寄存器堆、ALU运算和结果写回可3步完成;
- 读内存指令经读寄存器堆、ALU算地址、读内存数据到DR、把DR内容写入寄存器堆可4步完成。
文章图片
R型指令的实现(ADD):
- 取指令:IODR=0, ALUsrcA=0, ALUsrcB=01, ALUop=00, PCsrc=https://www.songbingjia.com/android/00;MEMread, IRwrite, PCwrite
- 译码/取操作数:ALUsrcA=0, ALUsrcB=11, ALUop=00
- 执行运算:ALUsrcA=0, ALUsrcB=00, ALUop=00
- 写回寄存器:RegDST=1 RegWrite MemtoReg = 0
文章图片
MIPS的 BEQ 指令 的执行过程
文章图片
ALU在三个步骤中都没有闲着。
MIPS的 J 指令 的执行过程
文章图片
状态转移图和指令各执行步骤的操作功能
文章图片
Control Unit
这部分老师上课没有讲(老视频里),ppt上有,记录于此。
文章图片
我制作了动图:
文章图片
FSM Implement由自动机得,最后的控制器如图。
文章图片
使用有限状态机标志执行步骤。
小结
多周期CPU:
- 按指令的执行步骤,每个步骤占用一个CPU周期
- 不同指令的指令周期不同
- 指令串行执行
- 提高了整体性能
- 各部件的利用率依然偏低
- 指令并行执行?是否可行?如何进行?
【Computer Organization笔记11多周期CPU】
推荐阅读
- Qt 开源作品 | 小伙子,给你的 Linux 系统写个 Launcher 吧
- cocos2d-x-3.0rc0新工程的分辨率设置和控制台输出信息
- 掌握Linux这30个常用指令,帮你解决95%以上的问题
- 如何在Python 3中从SRT文件中重新同步电影的字幕(移位)
- 你是否应该专门花时间学习Java编程语言()
- 如何在JavaScript中将图像合并为QR码
- 如何使用JavaScript突出显示Google地图中的区域(城市,州或国家/地区)
- 如何使用JavaScript从URL检索所有或特定的get参数
- 如何使用Remarkable将Markdown转换为JavaScript中的HTML