本次笔记内容:
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特点

为什么单周期CPU不再适用了?

  • 各组成部件的利用率不高:各部件大部分时间在保持信号
  • 时钟周期需要满足执行时间最长指令的要求
  • Load指令
  • CPI =1

单周期CPU的性能


如上,对于不同部件,其需要的动作(工序)不同,因此时间不同。比如对于sw,无需寄存器写 Reg. Write这道“工序”。

单周期CPU上,其数据通路上的最长延迟为最长的那个。

因此:

  • 指令周期比较长
  • 所有指令都必须使用最长的周期

【例】该单周期CPU,执行100条指令:

  • 25%的Load指令
  • 10%的Store指令
  • 45%的算逻指令
  • 20%的跳转指令

单周期的执行时间:

  • 100*8 = 800ns

可能的优化:

  • 25*8+10*7+45*6+20*5=640ns
  • Speedup=800/640=1.25

单周期CPU其他问题

事实上,指令和数据都保存在同一个存储器中:

  • 许多部件保持数据的时间过长,无法复用
  • 例如,Adder 功能是否可以利用ALU实现?

多周期CPU

将指令执行过程分解成多个步骤:

  • 和单周期CPU基本相同
  • 每条指令占用它需要的步骤数

每个步骤占用一个时钟周期:

  • 尽量平衡各步骤间的延迟
  • 尽量限制每个步骤使用单一的主要部件
  • 控制器仅需提供当前步骤所需要的控制信号

前提 (要做什么改进?)

  • 保存好下一步骤要用到的值:引入“新”的内部寄存器
  • 转到下一步骤执行:引入状态标记当前步骤、有限自动机

多周期CPU控制器

控制器的功能就是控制指令的执行过程:

  • 能够正确并且自动地连续执行指令:按程序中设定的指令次序执行
  • 正确地分步完成每一条指令规定的功能:读取指令→ 分析指令→ 执行指令

进一步讲,就是向计算机各功能部件提供协调运行每一个步骤所需要的控制信号。

控制器的组成
  • ①程序计数器PC:存放指令地址,有增量或接收新值功能
  • ②指令寄存器IR:存放指令内容:操作码与操作数地址(多周期CPU特有的
  • ③指令执行步骤标记线路:指明每条指令的执行步骤和相对次序关系(多周期CPU特有的
  • ④控制信号产生线路:给出计算机各功能部件协同运行所需要的控制信号
  • 控制器还要配合主脉冲源与启停控制线路


组合逻辑控制器相对应的机制有一些问题:

  • 增加一条指令比较困难;
  • 增加一条指令需要重排所有指令的逻辑。

引出,提出微程序控制器

两种不同类型的控制器

根据指令步骤标记线路和控制信号产生线路不同的组成和不同的运行原理,有两种不同类型的控制器:

  • 硬连线控制器(组合逻辑控制器):采用组合逻辑线路、依据指令及其执行步骤直接产生控制信号。
  • 微程序控制器:采用存储器电路把控制信号存储起来,依据指令执行的步骤读出要用到的信号组合。
硬连线控制器组成与实现


硬连线控制器程序计数器PC、指令寄存器IR、节拍发生器Timer和控制信号产生部件 4 部分组成。

  • PC用于提供待读出指令在主存储器中的地址;
  • IR用于保存从主存储器中读出的指令内容;
  • Timer 用于给出并维护指令执行步骤的编码;
  • 控制信号产生部件用于依据指令内容(在IR中)和指令执行所处的操作步骤(Timer 提供),用组合逻辑线路产生计算机本操作步骤中各个部件所需要的控制信号。

划分指令执行步骤,确定各步骤应执行的功能和步骤之间的衔接关系,以及确定各部件完成这些功能所需要的控制信号,是控制器设计的几个关键环节。

其实现为:

在多周期CPU 系统中, 要按照指令总的功能要求,把不同的功能序列划分到相应的步骤,再落实到不同的部件,控制器需要按照指令及其执行步骤,为计算机各个部件提供它们协同运行所需要的控制信号。

向各部件提供哪些控制信号,决定于各部件的运行要求。为此必须规划汇总各部件在各个执行步骤中要求使用的控制信号。这些信号是用组合逻辑电路产生的,可以表示为:信号i = f (指令内容, 执行步骤等),通常表现为多个由与、或两级逻辑构成的表达式。

微程序控制器组成与实现

采用控制存储器存储每条指令的每个执行步骤所需要的全部控制信号:

  • 用微地址进行访问,读出控制信号并输出

采用下地址逻辑实现执行步骤之间的衔接:

  • 根据指令操作码映射出该指令的首条微指令的地址
  • 每条微指令给出其下一步骤的微地址


但是,由于流水的普及,微程序控制器已经越来越不普及。本节课也仅仅是简介一下微程序控制器。主要以组合逻辑控制器为例。

多周期的CPU控制器设计

  • 确定数据通路
  • 划分指令执行步骤:指令流程图
  • 安排每条指令每个步骤的功能,并给出相应的控制信号:指令流程表
  • 为指令执行步骤设计状态机
  • 为每个步骤的控制信号设计控制信号生成逻辑

多周期CPU的Datapath


如图,相对于单周期CPU,主要增加了些寄存器。

MIPS计算机硬件组成


如上,要加一个写PC的控制信号(每次决定要不要写)



MIPS指令执行步骤

  • MIPS机的取指操作可1步完成,在取指之后;
  • J 型指令用PC 高4位拼接Target 可以只经过1步完成,;
  • 相对转移(I型) 指令经读寄存器堆、ALU运算可2步完成;
  • R 型指令经读寄存器堆、ALU运算和结果写回可3步完成;
  • 读内存指令经读寄存器堆、ALU算地址、读内存数据到DR、把DR内容写入寄存器堆可4步完成。

MIPS的 ADD 指令 的执行过程

R型指令的实现(ADD):

  • 取指令:IODR=0, ALUsrcA=0, ALUsrcB=01, ALUop=00, PCsrc=00MEMread, IRwrite, PCwrite
  • 译码/取操作数:ALUsrcA=0, ALUsrcB=11, ALUop=00
  • 执行运算:ALUsrcA=0, ALUsrcB=00, ALUop=00
  • 写回寄存器:RegDST=1 RegWrite MemtoReg = 0

MIPS的 LW 指令 的执行过程

MIPS的 BEQ 指令 的执行过程


ALU在三个步骤中都没有闲着。

MIPS的 J 指令 的执行过程

状态转移图和指令各执行步骤的操作功能

Control Unit

这部分老师上课没有讲(老视频里),ppt上有,记录于此。

我制作了动图:

FSM Implement

由自动机得,最后的控制器如图。

使用有限状态机标志执行步骤。

小结

多周期CPU:

  • 按指令的执行步骤,每个步骤占用一个CPU周期
  • 不同指令的指令周期不同
  • 指令串行执行
  • 提高了整体性能

进一步的改进:

  • 各部件的利用率依然偏低
  • 指令并行执行?是否可行?如何进行?

下节课将介绍流水。

【Computer Organization笔记11】多周期CPU相关推荐

  1. 【Computer Organization笔记10】单周期CPU设计:基于7条MIPS指令的数据通路

    本次笔记内容: P19 计算机组成原理(19) P20 计算机组成原理(20) 本节课对应幻灯片: 组成原理24 singlecycle.pptx 基于上节课的7条MIPS指令的数据通路,分别针对7条 ...

  2. 【Computer Organization笔记09】x86 / Pentium 指令系统,MIPS 指令系统,数据通路的设计,CPU设计思路

    本次笔记内容: P17 计算机组成原理(17) P18 计算机组成原理(18) 本节课对应幻灯片: 组成原理21 Intructionsx86.pptx 组成原理22 MIPS.pptx(老视频基本没 ...

  3. 【Computer Organization笔记01】计算机组成原理课程要求、计算机的层次结构、计算机的发展历史

    资源Bilibili AV58129929 计算机组成原理 清华大学 刘卫东 本次笔记内容: P1 计算机组成原理(01) P2 计算机组成原理(02) 文章目录 课程信息 预热内容-课程介绍 学习目 ...

  4. 【Computer Organization笔记28】总复习

    本次笔记内容: P55 计算机组成原理(55) P56 计算机组成原理(56) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  5. 【Computer Organization笔记18】大实验讨论:控制器设计、指令流程表

    本次笔记内容: P35 计算机组成原理(35) P36 计算机组成原理(36) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  6. 【Computer Organization笔记15】清华计组大作业布置:奋战二十天,做台计算机!

    本次笔记内容: P29 计算机组成原理(29):第25分钟起 P30 计算机组成原理(30) 我的计组笔记汇总:计算机组成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 108 ...

  7. 【Computer Organization笔记14】指令流水中的控制冲突和异常

    本次笔记内容: P27 计算机组成原理(27) P28 计算机组成原理(28) P29 计算机组成原理(29):前24分钟 本节课对应幻灯片: 组成原理28 hazards2.pptx 文章目录 流水 ...

  8. 【Computer Organization笔记12】流水线技术概述

    本次笔记内容: P23 计算机组成原理(23) P24 计算机组成原理(24) 本节课对应幻灯片: 组成原理26 pipeline.pptx 文章目录 本讲概要 多周期CPU 生活中的流水线 顺序洗衣 ...

  9. 【Computer Organization笔记17】大实验讨论:各组数据通路展示

    本次笔记内容: P33 计算机组成原理(33) P34 计算机组成原理(34) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

最新文章

  1. Tarjan算法应用 (割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)问题)...
  2. 用计算机解组合题,计算机组成原理试题解析5
  3. 月薪40~50K|波波生活信息技术公司招聘高级算法工程师
  4. 使用identity+jwt保护你的webapi(一)——identity基础配置
  5. 关于编程思想的一点思考
  6. [Vue.js] 模块化 -- 前端模块化
  7. [bzoj4881][Lydsy2017年5月月赛]线段游戏
  8. 从SVN资源库下载项目
  9. 14.最长公共前缀-LeetCode
  10. php 判定是否是数组,php判断一个数组是否为有序
  11. OpenGeoSys模拟THMC复杂过程的软件工具
  12. Mentor HDL Designer Series 2010.2a Linux 1CD
  13. UOJRoundPLUS+
  14. python 分析qq聊天记录
  15. 解决element 表单验证不通过的俩大坑
  16. Yolov3中xmin,ymin,xmax,ymax的疑惑
  17. raw data convert and play
  18. 分体式无线蓝牙耳机什么牌子好?分体式蓝牙耳机排行榜
  19. 三款视频下载工具,让你不花钱也有vip的下载速度!
  20. 点开计算机桌面选项怎么不见了,电脑桌面开始菜单不见了应该如何解决?_开始菜单不见了解决办法介绍...

热门文章

  1. 日常问题解决记录三:记一次Win10安装Oracle11g后遇到的问题
  2. 关于 Safari 浏览器不支持 location [ window.location.href window.open()] 跳转问题的解决方案
  3. IDEA中实现接口时注解@Override报错的解决方法
  4. JavaWeb项目启动时,tomcat会启动两次的原因(之一)和解决方案
  5. shell脚本执行时报“bad interpreter: Text file busy“的解决方法
  6. Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法
  7. 升级glic: 解决“libc.so.6: version ‘GLIBC_2.14‘ not found“问题
  8. 来自对象字段的Python字典
  9. Androidstudio抽取成员变量快捷键 快捷键大全 自定义setting文件
  10. logback日志配置文件