《计算机系统结构》流水线处理器 (2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10 寄存器堆 寄存器堆
执行频 率
78%
数据存储器
10%
12%
平均CPI是多少?
总的CPI为2*12%+4*10%+5*78%=4.54
第3-2章 流水线处理机及其设计
8
单周期、多周期和流水线处理器的指令执行时序如下 图所示。其中: * IF代表取指令; * ID代表指令译码及读寄存器操作数; * EXE代表ALU指令操作及存储器有效地址计算; * MEM代表存储器访问; * WB代表结果写回寄存器。
第3-2章 流水线处理机及其设计
19
What’s the difference between a latch and Flip-flop? A latch is one type of flip-flop; it does nothing more
than to save the state of the single data input, hence is often called a D flip-flop.
2
3-2.1 流水线模型机的指令系统
流水线(pipeline)是一种能够使多条指令重叠操作的 处理机的实现技术,它已成为现代处理及设计中最为关 键的技术。
流水线模型机把一条指令的执行分成几个步骤,或 称级(stages),每一级在一个时钟周期内完成。在每个 时钟周期,处理机启动执行一条指令。如果处理机的流 水线有m级,则同时可重叠执行的指令总条数将为m,每 条指令处在不同的执行阶段。如果分级分得好的话,那 么每一级都没有时间上的浪费,这是最理想的情况。
从流水线处理机的时序图中可以看出,每个时钟周期处理 机取出一条指令加以执行。
第3-图2章1.1流三水种线处处理理机机执行及时其序设比计较:(a)单周期;(b)多周期;(c)9流水线
第3-2章 流水线处理机及其设计
10
3-2.2 流水线处理机的数据路径
通过具体的例子,对流水线处理机的工作原理及 工作过程作较为详细的描述。
与单周期处理机不同,流水线处理机每个时钟周期 都要取出一条指令。这意味着,当流水线处理机已从存 储器取出一条指令并把它送到ID级去译码时,下一条指 令也正在从存储器中取出。如果先取出的指令没被保存, 则它后面正在被取出的指令会对它造成影响。也就是说, 我们必须要使用寄存器来保存从存储器取出的指令。
第3-2章 流水线处理机及其设计
的功能部件中所需时间最长的部件的执行时间。时钟周期定义为
10ns。尽管读写寄存器堆只需5ns,也仍然要分配给它整个时钟
周期。流水线是5级。
使用流水线技术后指令执行所需要的时间(ns)
10
10
10
10
10
ALU指令 指令存储器 寄存器堆 ALU
寄存器堆
50
load指令 指令存储器 寄存器堆 ALU 数据存储器 寄存器堆
第3-2wk.baidu.com 流水线处理机及其设计
4
流水线处理机的指令系统和指令格式
31 26
00 0000 00 0001 00 0010 00 0011 00 0100 00 0101 00 0110 00 0111 00 1000 00 1001
00 1010 00 1011 00 1100
25 21 20 16 15 5 4 0
18
推而广之,我们必须要在流水线的各级之间 安排一组寄存器(中间寄存器、暂存器),用以保 存当前时钟周期运算出的结果,以便为下个周期 使用(我们只能使用触发器寄存器,它把时钟上 升沿时数据输入端的信息打人寄存器中;而不能 使用锁存器,因为锁存器的输出在时钟高电平时 跟随输入的变化而变化。)我们称这些寄存器为 流水线寄存器。
第3-2章 流水线处理机及其设计
22
在第一级与第二级之间,我们使用了一个被称为 IR(instruction register)的指令寄存器。对于字长为32 位的处理机来讲,PC一般有30位,它存放的是32位 指令的字地址。IR有32位,用来存放一条指令。
第3-2章 流水线处理机及其设计
23
第二和第三级之间需要较多的寄存器: * 从寄存器堆中读出的两个32位数据A和B必须要保存。 * 经符号扩展后的32位立即数I也要保存。图中的 ISE(immediate sign-extend)代表指令中立即数的符号扩展。
10(ns)
5
10
10
5
ALU指令 指令存储器 寄存器堆
ALU
寄存器堆
30
load指令 指令存储器 寄存器堆
ALU
数据存储器 寄存器堆
40
store指令 指令存储器 寄存器堆
ALU
数据存储器
35
转移指令 指令存储器 加法器(10)
20
第3-2章 流水线处理机及其设计
6
流水线模型机:流水线处理机中一个时钟周期要能容下所有类型
3-2.2.1 流水线级
图1.2给出的是非流水线单周期处理机的组成结 构。我们把执行指令的过程分为5部分,使其能够 按流水线方式执行指令。每一级所使用的名字及其 要完成的动作如下:
第3-2章 流水线处理机及其设计
11
(1) IF(instruction fetch)取指令; (2) ID(instructiondecode)指令译码并读寄存器操 作数; (3) EXE(execution)执行; (4) MEM(memoryaccess)存储器访问; (5) WB(write back)写回。
寄存器操作数,另一个数据是经符号扩展的立即数。
图1.3 流水线处理机连续执行load指令时的情形
第3-2章 流水线处理机及其设计
1166
* 第三级的ALU做算术逻辑运算。针对load指令来讲,ALU完成地址加法运算。
* 第四级,DM(data memory)代表数据存储器。存储器数据将在这一级中被读
1
第3-2章 流水线模型机及设计
• 3-2.1 流水线模型机的指令系统 • 3-2.2 流水线模型机的数据路径 • 3-2.3 流水线模型机的控制 • 3-2.4 结构相关及解决方法 • 3-2.5 数据相关及解决办法 • 3-2.6 转移相关及解决方法 • 3-2.7 异常事件处理
第3-2章 流水线处理机及其设计
第3-2章 流水线处理机及其设计
20
由此,我们构想流水线处理机应有图1.4所示的结构。
流水线处理机每级之间的流水线寄存器
第3-2章 流水线处理机及其设计
21
把PC作为一个特殊的流水线寄存器来看待,因 为在非流水线处理机中PC也是需要的。由于流水 线处理机每个时钟周期都从指令存储器取出一条指 令,它的值在每次周期结束时都将被改变。
指令
rd rs1
rs2
rd rs1
imme
rd rs1
rs2
rd rs1
imme
rd rs1
rs2
rd rs1
imme
rd rs1
rs2
rd rs1 rd rs1 rd rs1
imme imme imme
disp (地址偏移量) disp (地址偏移量) disp (地址偏移量)
and rd , rs1, rs2 andi rd, rs1, imme or rd, rs1, rs2 ori rd, rs1, imme add rd, rs1, rs2 addi rd, rs1, imme sub rd, rs1, rs2
第3-2章 流水线处理机及其设计
12
把单周期处理机的指令执行分为5级
形成跳转 地址
写回寄存器
第3-2章 流水线处理机及其设计
13
如图中的箭头方向所示,指令执行时从左移 向右通过电路。 但有两处从右向左的例外: • WB级,它把运算结果写回中间靠左位置的寄 存器堆中; • IF级,它把经过计算的下一条指令的地址写入 程序计数器PC中。下一条指令地址的计算方法 有两种:一种是当前PC加4;
出。存储器的地址输入就是ALU计算出的结果。
* 第五级,从存储器中取出的数据被写回到寄存器堆中。这一级中的REG就是
第二级中的REG。第二级读REG,第五级写REG。
图1.3 流水线处理机连续执行load指令时的情形
第3-2章 流水线处理机及其设计
17
流水线寄存器的引入
在单周期处理机中,如果一条指令还没有执行完毕, PC的内容不会改变。这就使得在一条指令的整个执行 过程中,IM始终输出当前指令。
The main difference between latch and FF is that latches are level sensitive while FF are edge sensitive. They both require the use of clock signal and are used in sequential logic. For a latch, the output tracks the input when the clock signal is high, so as long as the clock is logic 1, the output can change if the input also changes. FF on the other hand, will store the input only when there is a rising/falling edge of the clock.
结果非0时转移 结果为0时转移 无条件转移
第3-2章 流水线处理机及其设计
5
指令执行时用到的主要功能部件和它们所需的时间如下:
• 指令存储器和数据存储器:10ns; • ALU和地址加法器:10ns; • 寄存器堆:5ns; • 假定其它部件,如PC寄存器、多路器、控制部件等花费的 时间为0。
表1.2 各类指令执行所需要的时间
第3-2章 流水线处理机及其设计
15
图1.3中,IM(instruction memory)代表指令存储器。
* 第一级,IF级,PC的内容作为访问IM的地址,送到IM的地址输入端。
* 第二级,REG(register file)代表寄存器堆或者指令中立即数的扩展。
Load指令访问存储器时所使用的地址由两个数据相加得到:一个数据是
第3-2章 流水线处理机及其设计
3
二、流水线模型机的指令系统和指令格式
ALU操作类型的指令:and,or,add,sub; 存储器访问指令:load,store; 条件转移指令:bne,beq; 无条件转移指令:branch;共9条。
* ALU指令除了把运算结果写入寄存器堆之外,也把ZERO 标志写入Z寄存器。 * 条件转移指令使用Z标志决定是否转移,其它指令不影 响Z寄存器。
50
store指令 指令存储器 寄存器堆 ALU 数据存储器
40
转移指令 指令存储器 加法器
20
第3-2章 流水线处理机及其设计
7
10
10
ALU指令 指令存储器 寄存器堆
load指令 指令存储器 寄存器堆
store指令 指令存储器 寄存器堆
转移指令 指令存储器 加法器
10 ALU ALU ALU
10 数据存储器
另一种是当前PC加字地址偏移量,偏移量在指令 中定义出。
第3-2章 流水线处理机及其设计
14
流水线处理机的最大特点是每一个时钟周期 取出一条指令来执行。所有的指令按取出的先后 次序通过图的从左至右的数据路径。
依照指令类型的不同,每种指令在执行过程 中可能会用到数据路径的不同的部分。例如,下 图中画出的是处理机连续执行load指令时所要使 用的数据路径中的功能部件。load指令实际上是 使用功能部件最多的指令。
subi rd, rs1, imme load rd, imme(rs1) store rd, imme(rs1)
bne disp beq disp branch disp
意义
寄存器与寄存器 寄存器与立即数 寄存器或寄存器 寄存器或立即数 寄存器加寄存器 寄存器加立即数 寄存器减寄存器 寄存器减立即数 从存储器读数据 向存储器写数据
• 程序不发生转移时,PC加4(字节为单位),PC加1(字为单位); • 转移时,PC加符号扩展的偏移量。
图中的DSE(displacement sign-extend)表示对 指令字偏移量进行符号扩展。
在第一级与第二级之间,必须使用一个指令寄 存器IR(instruction register)。
第3-2章 流水线处理机及其设计
24
* 一个d寄存器(5位),它被用来保存目的寄存器号; 因为指令的操作结果要在WB级写入寄存器堆,目的寄 存器号也要在那时使用,因此必须要同步跟随过去。
第3-2章 流水线处理机及其设计
相关文档
最新文档