Computer Organization笔记11多周期CPU

Posted 小拍Piper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Computer Organization笔记11多周期CPU相关的知识,希望对你有一定的参考价值。

本次笔记内容:
P21 计算机组成原理(21)
P22 计算机组成原理(22)

本节课对应幻灯片:

 

文章目录

 

承接上节课内容,首先是复习单周期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=00;MEMread, 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的主要内容,如果未能解决你的问题,请参考以下文章

Computer architecture Computer organization

CCPS310 – COMPUTER ORGANIZATION II

CSCI 2121: Computer Organization Assembly Language

Computer Network学习笔记_5

Computer Network学习笔记_1

Computer Network学习笔记_2