第六章 指令流水线教材
计算机指令流水线回顾
计算机指令流水线回顾计算机指令流水线是一种高效的指令执行技术,旨在提高计算机的运行速度。
在本文中,我们将回顾计算机指令流水线的基本原理、优点和局限性,并提供相关题库类型的答案和解析。
一、引言计算机指令流水线是一种并行处理技术,它允许多个指令同时在不同的处理阶段执行,以提高指令执行的速度和效率。
本节将介绍计算机指令流水线的定义和基本原理。
二、计算机指令流水线的原理计算机指令流水线是基于指令执行的并行处理技术。
它将一条指令的执行划分为多个阶段,并且允许多个指令同时在不同的阶段执行。
下面是计算机指令流水线的基本原理:1. 指令划分阶段:将一条指令划分为多个独立且可执行的子指令。
2. 指令执行阶段:每个子指令在不同的处理阶段执行,例如指令提取、指令解码、操作数获取等。
3. 管道寄存器:用于在不同的阶段之间传递数据和指令。
4. 阶段并行执行:多个指令在不同的阶段同时执行,实现指令级并行。
5. 超标量流水线:同时执行多条指令。
三、计算机指令流水线的优点计算机指令流水线相较于传统的顺序执行方式,具有以下优点:1. 提高吞吐量:通过并行执行多条指令,大大提高了计算机的吞吐量。
2. 提高运行速度:指令流水线的并行执行能够加快指令的执行速度,提高计算机的运行效率。
3. 提高资源利用率:指令流水线可以充分利用计算机的硬件资源,使处理器单元始终保持繁忙状态。
四、计算机指令流水线的局限性虽然计算机指令流水线有很多优点,但也存在一些局限性:1. 指令依赖:由于指令之间存在数据或控制依赖关系,可能导致流水线的暂停或冲突,进而影响指令的执行速度和效率。
2. 硬件成本:为了实现指令流水线,需要增加硬件资源和复杂的控制电路,导致成本的增加。
3. 分支预测错误:分支指令的预测错误或错误的预测会导致流水线的中断和重组。
五、题库类型答案与解析在计算机指令流水线的相关题库中,我们可以通过以下方式给出答案与解析:1. 填空题:要求填写与指令流水线相关的概念、原理或术语。
华科 汇编语言程序设计课件第6章PPT课件
第8页/共87页
2. 输出指令 OUT
语句格式: OUT OPD,OPS 功能:累加器(OPS)→OPD
说明: ① OPD = 立即数 或者DX
② OPS只能是累加器AL、AX或EAX。
即: OUT OPD, AL/AX/EAX
第9页/共87页
例: OUT 80H,EAX 执行前: (EAX)=11223344H,(80H)=55H, =66H,(82H)=77H,(83H)=88H 执行后: (80H)=44H,(81H)=33H, (82H)=22H,(83H)=11H,(EAX)
CS
类型1中断处理程序入 口地址
00008H 类型2中断处理程序入
口地址
┇
┇
003FCH 003FFH
类型255中断处理程序 入口地址
中断号为1的 中断处理程序 的代码段
第24页/共87页
CPU转到中断处理程序的重要步骤是:
(1)获取中断类型码n (2)从中断矢量表中获取入口地址
(0:[n*4])→IP, (0:[n*4+2])→CS。 以上2步解决了如何获得入口地址的问题。 (3)返回地址的处理、标志寄存器等的处理。
第6页/共87页
例: IN AL,60H 执行前:(60H)=11H,(AL)=0E3H 执行后:(AL)=11H,(60H)不变
说明: 60H是键盘将当前按键的键码输入到计算机内的端口的地址。该指令
语句从60H号端口中读取一个字节的键码送到AL中,即(60H)→AL。 当(DX)=60H时, IN AL,DX 等价于 IN AL,60H
第14页/共87页
3.直接存储器传送方式
流水线
•块重复计数器(BRC)
•块重复长度寄存器(BK) •堆栈指针(SP) •暂存器(T) •处理器工作方式状态寄存器(PMST)
•累加器(AG、AH、AL、BG、BH、BL)
在一个周期内,DAGEN中的寄存器只能写一次
小结
本节介绍了 TMS 320 C54x 的 流水线
流水线功能示意图
用PC的内容 加载PAB 用PB的内容加载IR; 对IR的内容解码; 用数据1加载DB; 用数据2加载CB; 如果需要,用数据3 的地址加载EAB;ຫໍສະໝຸດ 取指寻址执行/写数据
预取指
用读取的指令 字加载PB
译码
读数据
执行指令; 用被写的数据 加载EB;
如果需要,用数据1的地址加 载DAB; 如果需要,用数据2的地址加 载CAB; 加载辅助寄存器和堆栈指针;
双寻址存储器允许在单周期内对它进行两次访问,但这两次访问必须遵循下面 原则:访问不同的存储器块;分别在前半个周期和后半个周期访问同一个存储 器块。
如果CPU在同一时刻(或者说在同一个半个周期)访问同一个存储器 块,就会发生时序上的冲突,这时CPU会将写操作延迟一个周期,或 插入一个空操作,自动解决上述冲突。
6. 流水线的延迟
在C54x的流水线中,可能有多条指令要同时访问CPU资 源。当一个CPU资源被多个流水线级访问时,就有可能发 生时序上的冲突。有些冲突可以由CPU自行解决,但有些 是CPU不能防止的,需要在编程时给予特别注意。解决的 方法是重新安排指令的顺序或插入NOP指令。
引起流水线冲突的情况很多,下面主要讨论对某些存储 器映象寄存器寻址时所产生的冲突。 可能引起不可防止的流水线冲突的存储器映象寄存器: •辅助寄存器(AR0-AR7)
流水线
指令流水线的原理
指令流水线的原理
指令流水线是一种基于并行处理的计算机指令执行方法,通过将指令执行过程分为若干个互相独立的阶段,使得每个阶段可以同时处理不同的指令,从而提高计算机的执行效率。
指令流水线的原理可以简单描述为以下几个步骤:
1. 指令获取阶段:从存储器中获取将要执行的指令,并将其送入指令译码阶段。
2. 指令译码阶段:对获取的指令进行译码,确定指令类型和操作数,并将其送入执行阶段。
3. 执行阶段:根据指令类型和操作数进行相应的操作,如运算、移位、存储等。
4. 访存阶段:如果指令需要访问存储器,则进行存储器操作,如读取或写入数据。
5. 写回阶段:将执行结果写回到寄存器文件或存储器中。
以上是指令流水线的基本阶段,不同的指令流水线可能还包括其他特定的阶段,如乘法器阶段、除法器阶段等。
指令流水线的关键在于将指令执行过程分解为多个互相独立的阶段,并使得各个阶段可以同时进行。
这样可以避免指令之间的冲突,提高指令的并行度和处理效率。
同时,指令流水线还
可以通过插入空泡来解决可能出现的冲突和数据依赖问题,以保证指令的正确执行。
总之,指令流水线是一种有效提高计算机处理效率的方法,通过将指令执行过程分解为多个互相独立的阶段,实现指令的并行处理,从而加快指令的执行速度。
课件:流水线概述(1)
Waste
8
即有流水线指令的平 均执行时间,见本
流水线加速比 ppt后P24。本例中为 200ps(不是单一某 条指令的执行时间, 本例为1000)
如果所有流水级操作平衡(时间相同)
Time between instructionspipelined = Time between instructionsnonpipelined Number of stages
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5
lw
IF
ID
Ex
Mem WB
3
单周期与流水线
假设功能单元的操作时间
寄存器读写:100ps 其余:200ps
对比流水线和单周期
Instr
lw sw R-format beq
Instr fetch Register read
lw
IF
sw
R-type
ID
Ex
Mem WB
IF
ID
Ex
Mem WB
每一步对 应动作
IF
ID
Exec Mem WB
流水线在一条指令完成之前开始另一条指令。
改善吞吐率(单位时间内完成的任务数)。
对于有些指令某些时钟周期是浪费的(Mem和WB是或 的关系,sw指令写回存储器,R型和lw写回寄存器)。
单条指令执行时间不减少,有时反而会增加(本例和前
I lw
n s
t Inst 1
r.
Mem Reg
Mem Reg
Reading data from memory
Mem Reg
Mem Reg
O Inst 2
r
06 章流水线与超标量技术-1
20
济南大学 信息科学与工程学院 研究生课程
©2008 张玉璘
高
级
计
算
机
体
系
结
构
迫切循环 可找出合法的循环有: (1 , 8 ) ( 3 ) ( 3 , 8 ) ( 1 , 8 , 6 , 8 ) ( 6 ) ( 3 , 6 , 3 )
………
简单循环:每种状态只出现一次的等待时间循环 (3) , ( 6 ) , ( 8 ) ( l , 8 ) ( 3 , 8 ) (6 , 8)
则τ=τm+d
即不考虑时钟错位。
6
济南大学 信息科学与工程学院 研究生课程
©2008 张玉璘
高
级
计
算
机
体
系
结
构
6.1.3
加速比、效率和吞吐率
在理想情况下: 线性流水线:(k段) 处理n个任务,需k+(n-1) 个时钟周期(k是第一个任务,每个 时钟一个任务,其余n-1任务需要n-1个时钟) 总的时间:Tk=[k+(n-1)] τ
等效的非流水线“流过延迟”为kτ, n个任务的时间T1=nkτ
加速因子 一条k段流水线对一台等效的非流水线处理机的加速因子, 定义: Sk=T1/Tk=[nkτ]/[kτ+(n-1) τ]=[nk]/[k+(n-1)] 加速因子与n任务数的关系。图6-2
7
济南大学 信息科学与工程学院 研究生课程
©2008 张玉璘
14
济南大学 信息科学与工程学院 研究生课程
©2008 张玉璘
高
级
计
算
机
体
系
结
构
预约表
在图6-3a所示的三段 非线性流水线里,对 X的流水线求值过程 可由图6-3b的预约表
白中英《计算机组成原理》(第版)教材精讲-第五章至第六章(圣才出品)
第 5 章 中央处理器[视频讲解]
主要内容: 5.1 CPU 功能和组成 5.2 指令周期 5.3 时序产生器 5.4 微程序控制器 5.5 硬连线控制器 5.6 流水 CPU 5.7 RISC 的 CPU
考纲要求 (一)CPU 的功能和基本结构 (二)指令执行过程 (三)数据通路的功能和基本结构 (四)控制器的功能和工作原理
图 5-1-1 CPU 模型 Intel 80386 微机系统框图
3 / 129
圣才电子书 十万种考研考证电子书、题库视频学习平台
80386 结构及外部连线
CPU 的基本组成 (1)中央处理器 CPU=运算器+控制器 (2)运算器、ALU、累加器、暂存器 (3)控制器 控制器组成:程序计数器、指令寄存器、数据缓冲器、地址寄存器、通用寄存器、状态 寄存器、时序发生器、指令译码器、总线(数据通路)。 ①程序计数器 PC(Programming Counter) 用来存放正在执行的指令的地址或接着将要执行的下一条指令的地址。顺序执行时,每 执行一条指令,PC 的值应加 1。要改变程序执行顺序的情况时,一般由转移类指令将转移 目标地址送往 PC ,可实现程序的转移。 ②指令寄存器 IR(Instruction Register) 指令寄存器用来存放从存储器中取出的待执行的指令。在执行该指令的过程中,指令寄
三、CPU 中的主要寄存器 DR 缓冲寄存器/地址寄存器 AR
5 / 129
圣才电子书 十万种考研考证电子书、题库视频学习平台
中转站 补偿速度差别 IR 指令寄存器 PC 程序计数器
四、操作控制器和时序产生器 1.数据通路 2.操作控制器 为数据通路的建立提供各种操作信号。操作信号提供的依据是指令操作码和时序信号, 主要有三种类型:①组合类型,②存储类型,③混合类型。 硬布线控制器 硬布线控制器,它是采用组合逻辑技术来实现的,其时序控制信号形成部件是由门电路 组成的复杂树形网络。这种方法是分立元件时代的产物,以使用最少器件数和取得最高操作 速度为设计目标。 组合逻辑控制器的最大优点是速度快,但是时序控制信号形成部件的结构不规整,使得 设计、调试、维修较困难,难以实现设计自动化。 微程序控制器 微程序控制器是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令 转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令 产生。
计算机体系结构之流水线技术(ppt 125页)
张伟 计算机学院
大纲
1 概念定义 2 流水线分类 3 MIPS五级流水线 4 性能分析 5 流水线相关 6 高级流水线技术
1 概念定义
洗衣店的例子
A, B, C, D 均有一些衣物要 清洗,甩干,折叠
清洗要花30 分钟 甩干要用40 分钟 叠衣物也需要20 分钟
流水线输出端任务流出的顺序与输入端任务流 入的顺序相同。
异步流动流水线(乱序流水线):
流水线输出端任务流出的顺序与输入端任务流 入的顺序不同。
3 MIPS五级流水线
DLX(Dancing Links)
DLX 是一种简单的指令集(教学、简单芯片) 在不流水的情况下,如何实现DLX。
实现DLX指令的一种简单数据通路
4. 存储器访问周期MEM(Memory Access) 5. 写回周期WB(Write Back)
MIPS的简单实现
Instruction Fetch
Instr. Decode Reg. Fetch
Next PC
Next SEQ PC
4
RS1
RS2
Execute Addr. Calc
Zero?
RD
增加了向后传递IR和从MEM/WB.IR回送到通用寄存 器组的连接。
将对PC的修改移到了IF段,以便PC能及时地加 4,为取下一条指令做好准备。
2. 每一个流水段进行的操 作
IR[rs]=IR6..10 IR[rt]=IR11..15 IR[rd]=IR16..20
流水线的每个流水段的操作
将有效地址计算周期和执行周期合并为一个时钟周期,这
是因为MIPS指令集采用load/store结构,没有任何指令
需要同时进行数据有效地址的计算、转移目标地址的计算
计算机体系结构与指令流水线
计算机体系结构与指令流水线计算机体系结构是指计算机硬件和软件之间的交互方式,它决定了计算机的组织结构、数据传输方式以及指令的执行过程。
在计算机体系结构中,指令流水线是一种重要的技术手段,它可以提高计算机的性能和效率。
本文将深入探讨计算机体系结构与指令流水线的相关知识。
一、计算机体系结构的基本原理计算机体系结构包括硬件体系结构和软件体系结构。
硬件体系结构代表了计算机硬件的组织和连接方式,它包括中央处理器(CPU)、存储器和输入输出设备等;软件体系结构则是指操作系统和编程语言等软件的组织方式。
在计算机体系结构中,指令的执行是一个重要的过程。
指令由操作码和操作数组成,计算机的执行方式是将指令从存储器中取出,经过解码和执行阶段完成相应的操作。
传统的计算机执行方式是按照指令的顺序一个一个地执行,这样会导致指令之间存在较大的时间间隔,浪费了计算机的效率。
二、指令流水线的原理与优势为了提高计算机的效率,减少指令之间的时间间隔,人们提出了指令流水线的概念。
指令流水线将指令的执行过程划分为多个阶段,每个阶段都由一个专门的电路来完成,不同的指令可以同时在不同的阶段执行,以实现多条指令的并行执行。
指令流水线的优势主要体现在以下几个方面:1. 提高了计算机的吞吐量。
由于指令流水线可以实现多条指令的并行执行,因此可以在同样的时间内完成更多的指令,从而提高了计算机的吞吐量。
2. 减少了指令之间的等待时间。
在指令流水线中,不同指令可以在不同阶段同时执行,减少了指令之间的等待时间,提高了计算机的效率。
3. 加快了指令的执行速度。
通过将指令的执行过程切分为多个阶段,并行执行不同指令的不同阶段,可以加快指令的执行速度,缩短了计算时间。
然而,指令流水线也存在一些限制和问题,例如:1. 指令相关性。
如果后续指令依赖于前面指令的结果,就会导致指令流水线的停顿,降低了计算机的效率。
2. 分支指令。
由于分支指令可能会改变指令的执行顺序,因此对于分支指令,指令流水线需要进行预测和处理,以避免出现时间浪费。
第六章流水线习题答案
第六章指令流水线答案(3,6,7,10)3.假定在一个五级流水线(如图7.5所示)处理器中,各主要功能单元的操作时间为:存储单元:200ps;ALU和加法器:150ps;寄存器堆读口或写口:50ps。
请问:(1)若执行阶段EX所用的ALU操作时间缩短20%,则能否加快流水线执行速度?如果能的话,能加快多少?如果不能的话,为什么?(2)若ALU操作时间增加20%,对流水线的性能有何影响?(3)若ALU操作时间增加40%,对流水线的性能有何影响?参考答案:(1)ALU操作时间缩短20%不能加快流水线指令速度。
因为存储单元的时间为200ps,所以流水线的时钟周期不会因为ALU操作时间的缩短而变短。
(2)ALU操作时间延长20%时,变为180ps,比200ps小,对流水线性能没有影响;(3)ALU操作时间延长40%时,变为210ps,比200ps大,所以,流水线的时钟周期将变为210,其效率降低了(210-200)/200=5%。
6. 以下指令序列中,哪些指令对发生数据相关?假定采用“取指、译码/取数、执行、访存、写回”五段流水线方式,那么不用“转发”技术的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序避免数据冒险?如果采用“转发”是否可以完全解决数据冒险?不行的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序不发生数据冒险?addu $s3, $s1, $s0subu $t2, $s3, $s3lw $t1, 0($t2)add $t3, $t1, $t2参考答案:发生数据相关的有:第1和2间关于$s3、第2和3间关于$t2、第2和4间关于$t2、第3和4间关于$t1。
不进行“转发”处理的话,需要分别在第2、3、4条指令前加三条nop指令才能避免数据冒险。
而通过“转发”可以避免1和2、2和3、2和4间的数据相关;但第3和4间是load-use数据相关,所以无法用“转发”消除冒险,因此,需在第4条指令前加入一条nop指令。
第九次课--第六章2
3、最少工作地数22.2/8.5=2.6,取为3 最少工作地数
4、利用位置加权法编排工作地 在满足工艺先后顺序这一限制条件下,按位 置加权数递减的次序,指派尽可能多的作 业元素至一个工作地使每个工作地的加工 时间接近节拍。
P1最大 最大——作业元素1安排在第一个工作地。 作业元素1 作业元素 安排在第一个工作地。 工作地还可利用时间8.5 8.5- 5.5min, 工作地还可利用时间8.5-3=5.5min,继续 安排排位第二 作业元素3 还有5.5 排位第二的 5.5- 安排排位第二的作业元素3,还有5.5-2.4 排位第三的 3.1min,继续安排排位第三 作业元素2 =3.1min,继续安排排位第三的作业元素2, 还有3.1 1.8=1.3min,不能安排元素 3.1- 安排元素5 还有3.1-1.8=1.3min,不能安排元素5, 因为此时元素4还未安排。 因为此时元素4还未安排。
m
i =1
g .s i fi
其中: b——后备工人百分比 ——后备工人百分比 fi——第i道工序每个工人的设备看管定额(台/人) ——第 道工序每个工人的设备看管定额(台/
(五)确定流水线节拍的性质
流水线采用什么样的节拍,主要根据工序 流水线采用什么样的节拍, 同期化的程度和加工对象的重量、体积、 同期化的程度和加工对象的重量、体积、 精度、工艺性等特征决定。 精度、工艺性等特征决定。 在连续流水线上,当工序同期化程度很高, 在连续流水线上,当工序同期化程度很高, 工艺性良好,制品的重量、 工艺性良好,制品的重量、精度和其他条 件要求容许严格地按节拍出产制品时, 件要求容许严格地按节拍出产制品时,应 采用强制节拍,否则就用自由节拍。 采用强制节拍,否则就用自由节拍。 在间断流水线上,采用自由节拍或粗略节 在间断流水线上, 拍。
RISC简易指令流水线操作PPT课件
a Write is performed at the rising clock edge if it is enabled ⇒ the write address, data, and enable must be stable at the clock edge
Harvard-Style Datapath
RegWrite
clk Add
we
MemWrite clk
WBSrc ALU / Mem
addr
PC
inst
clk
Inst.
Memory
GPRs
Imm Ext
ALU Control
ALU
we addr
rdata Data Memory wdata
OpCode RegDst
Asanovic/Devadas Spring 2002 6.823
Time = Instructions * Cycles * Time
Program
Program
Instruction Cycle
Instructions per program depends on source code, compiler technology, and ISA
OpSel
BSrc Reg / Imm
func immediate
rf3 ← (rf1) func (rf2) rf2 ← (rf1) op immediate
Datapath for Memory Instructions
Asanovic/Devadas Spring 2002 6.823
第六章 流水线
通 用 寄 存 器
后行写数站
运算器
▲
20/206
3.1 重叠执行和先行控制
设置了4个缓冲站
(平滑主存、指令分析部件、运算器三者之间的工作)
先行指令缓冲站(前面已讲述) 先行操作站
先行读数站
后行写数站
共同特点:按先进先出的方式工作,而且都是由一组若
干个能快速访问的存储单元和相关的控制逻
主要缺点
▲
7/206
3.1 重叠执行和先行控制
4. 一次重叠执行方式
指令的执行过程
取指令 k 分析 k 执行 k 取指令 k+1 分析 k+1 执行 k+1 取指令 k+2 分析 k+2 执行 k+2
执行第k条指令与取第k+l条指令同时进行。
(一种最简单的重叠方式)
▲
8/206
3.1 重叠执行和先行控制
理想情况下,指令执行部件应该是一直忙碌的。 处理机连续执行n条指令所需要的时间为
T先行 t分析1
t
i 1
n
执行 i
t
i 1
n
执行 i
▲
28/206
3.2 流水线的基本概念
3.2.1 什么是流水线
1. 工业生产流水线 下面通过一个例子来说明流水线的好处:
两种方案
两种方案的工作过程对比 流水线生产过程的抽象描述 这种流水工作方式的主要特点
3.1.1 重叠执行
1. 将一条指令的执行过程分为三个阶段
取指令
分 析
执 行 时间 t
一条指令的执行过程
▲
3/206
3.1 重叠执行和先行控制
计算机系统结构-第6章
7
(空转)
8
BNE R1, R2, Loop
9
(空转)
10
6.1 基本指令调度及循环展开
➢ 在用编译器对上述程序进行指令调度以后,程序的执行情 况如下:
Loop:
L.D F0, 0(R1) DADDIU R1, R1, #-8 ADD.D F4, F0, F2 (空转) BNE R1, R2, Loop S.D F4, 8(R1)
2. 制约编译器指令调度的因素 ➢ 程序固有的指令级并行 ➢ 流水线功能部件的延迟
6.1 基本指令调度及循环展开
表6.1本节使用的浮点流水线的延迟
产生结果的指令 浮点计算 浮点计算
浮点Load(L.D) 浮点Load(L.D)
使用结果的指令 另一个浮点计算 浮点store(S.D)
浮点计算 浮点store(S.D)
6.5 开发更多的指令级并行
➢ 值传播优化实例
优化前代码 DADDUI R1,R2,#4 DADDUI R1,R1,#4
优化后代码 DADDUI R1,R2,#8
值传播优化通过将变量替换为已知的值或表达式以达到消 除数据相关
6.5 开发更多的指令级并行
➢ 重命名优化实例
例6.10 找出下面循环中的所有数据相关,指出它们究竟是真数据 相关、输出相关、还是反相关,并利用重命名技术消除其中的输出 相关和反相关。
for(i=1;i<=100;i=i+1){
Y[i] = X[i] / a; X[i] = X[i] + a; Z[i] = Y[i] + a; Y[i] = a – Y[i];
/* S1 */ /* S2 */ /* S3 */ /* S4 */
C62xx流水线各级介绍
BIT/TI
第二讲 流水线介绍
42
部分并行执行(第二执行包进入E1)
BIT/TI
第二讲 流水线介绍
43
完全并行代码
BIT/TI
第二讲 流水线介绍
44
完全并行执行
BIT/TI
第二讲 流水线介绍
45
完全并行执行
BIT/TI
第二讲 流水线介绍
46
记住:
• B:5个延迟间隙
• LD:4个延迟间隙 • MPY:1个延迟间隙
第二讲 流水线介绍
BIT/TI
第二讲 流水线介绍
1
学习内容
• 描述C62xx流水线操作 • 定义:取指包、执行包、延迟间隙 • 观察串联、部分串联和并行代码流过流 水线情况 • 比较VeiociTI和标准VLIW
BIT/TI
第二讲 流水线介绍
2
题目
一、为什么使用流水线? 二、C62xx流水线各级介绍 三、取指包 四、代码通过流水线的过程举例 五、串行、部分并行和完全并行代码通过 流水线的过程举例 六、VelociTI与标准VLIW
第二讲 流水线介绍
9
C62xx指令类型和执行周期
C62xx所有指令仅需要1个周期执行,但有 些指令的结果被延迟。
类型 ISC IMPY LD B
BIT/TI
描述 单周期指令 乘法指令 取指令 跳转指令
第二讲 流水线介绍
数目 34 6 1 4
延迟 0 1 4 5
10
执行(E—级)
执行节拍 E1 E2 E3 E4 E5 E6
BIT/TI
第二讲 流水线介绍
36
串行代码
BIT/TI
第二讲 流水线介绍
37
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 在N很大时,比串行方式提高约 4 倍
• 若各阶段操作均衡(例如,各阶段都是2ns),则提高倍数为5倍。
流水线方式下,单条指令执行时间不能缩短,但能大大提高指令吞吐率!
流水线指令集的设计
°具有什么特征的指令集有利于流水线执行呢? • 长度尽量一致,有利于简化取指令和指令译码操作 - MIPS指令32位,下址计算方便: PC+4 - X86指令从1字节到17字节不等,使取指部件极其复杂 • 格式少,且源寄存器位置相同,有利于在指令未知时就可取操作数 - MIPS指令的rs和rt位置一定,在指令译码时就可读rs和rt的值
R-type指令的4个阶段
Cycle 1 Cycle 2 Cycle 3 Cycle 4
R-type Ifetch Reg/Dec Exec
Wr
°Ifetch: 取指令并计算PC+4 °Reg/Dec: 从寄存器取数,同时指令在译码器进行译码 °Exec: 在ALU中对操作数进行计算 °Wr: ALU计算的结果写到寄存器
Ch6: Instruction Pipeline 指令流水线
第一讲 流水线数据通路和控制逻辑 第二讲 流水线冒险处理 第三讲 高级流水线技术
第一讲 流水线数据通路和控制 主要内容
°日常生活中的流水线处理例子:洗衣服 °单周期处理器模型和流水线性能比较 °什么样的指令集适合于流水线方式执行 °如何设计流水线数据通路
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Store Ifetch Reg/Dec Exec Mem Wr
NOOP!
°Ifetch:取指令并计算PC+4 °Reg/Dec: 从寄存器取数,同时指令在译码器进行译码 °Exec:16位立即数符号扩展后与寄存器值相加,计算主存地址 °Mem:将寄存器读出的数据写到主存
• ALU中比较两个寄存器的大小(做减法) • Adder中计算转移地址 °Mem: 如果比较相等, 则: • 转移目标地址写到PC • Wr: 加一个空写阶段,使流水线更规整!
按照上述方式,把所有指令都按照最复杂 的“load”指令所需的五个阶段来划分, 不需要的阶段加一个“NOOP”操作
A Pipelined Datapath(五阶段流水线数据通路)
- 存储器读:2ns
递等没有延迟)
- 寄存器写:1ns
°单周期模型
• 每条指令在一个时钟周期内完成
• 时钟周期等于最长的lw指令的执行时间,即:8ns
• 串行执行时,N条指令的执行时间为:8Nns
°流水线性能
• 时钟周期等于最长阶段所花时间为:2ns
• 每条指令的执行时间为: 2nsx5=10ns
• N条指令的执行时间为:(4+N)x2ns
• 每个周期有五个功能部件同时在工作 • 后面指令在前面完成取指后马上开始 • 每个load指令仍然需要五个周期完成 • 但是,吞吐率(throughput)提高许多,理想情况下,有:
• 每个周期有一条指令进入流水线 • 每个周期都有一条指令完成 • 每条指令的有效周期(CPI)为1
Store指令的四个阶段
Clock-to-Q delay
Clk
Mux Mem/Wr Register
Ex/Mem Register
ID/Ex Register
IF/ID Register PC+4 IUnit
PC
Ifetch (IF)
Reg/Dec (ID)
Exec (Ex)
Mem
Wr
有!寄存器写口
RegWr
ExtOp ALUOp
IF/ID: lw $1, 100 ($2) PC+4 IUnit PC = 14
°指令: lw $Y1ou,a0re xher1e!00($2)
ClkMem [($2) + 0x100]
Ifetch
Reg/Dec
Exec
功能:$1 <-
Mem
RegWr
ExtOp ALUOp
Branch
Mux Mem/Wr Register
Ex/Mem Register
ID/Ex 流水线更规整!
Beq的四个阶段
Cycle 1 Cycle 2 Cycle 3 Cycle 4
NOOP!
Beq Ifetch Reg/Dec Exec Mem Wr
°Ifetch: 取指令并计算PC+4 °Reg/Dec:从寄存器取数,同时指令在译码器进行译码 °Exec: 执行阶段
Branch
1
0
PC+4
PC+4
Imm
Imm
Rs
A
Ra
busA busB
Zero Data Mem
Rb Rt
RFile
Exec Unit
I
Rt RwDi
0
Rd
1
RA Do
1
WA
Di
0
RegDst
ALUSrc MemWr MemtoReg
下面看每条指令在流水线通路中的执行过程
取指令(Ifetch) 阶段
• 以MIPS指令子集来说明 °如何设计流水线控制逻辑
• 分析每条指令执行过程中的控制信号 • 给出控制器设计过程 °流水线冒险的概念
单周期指令模型与流水模型的性能比较
°假定以下每步操作所花时间为:
- 取指:2ns
- 寄存器读:1ns
Load指令执行时间总计为:8ns
- ALU操作:2ns
(假定控制单元、PC访问、信号传
Load指令的流水线
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Clock
1st lw Ifetch Reg/Dec Exec Mem Wr 2nd lw Ifetch Reg/Dec Exec Mem Wr 3rd lw Ifetch Reg/Dec Exec Mem Wr
31 26
21
16
11
6
op
rs
rt
rd shamt
6 bits 5 bits 5 bits 5 bits 5 bits
0 func 6 bits
若位置随指令不同而不同,则需先确定指令类型才能取寄存器编号 • load / Store指令才能访问存储器,有利于减少操作步骤,规整流水线
- lw/sw指令的地址计算和运算指令的执行步骤规整在同一个周期 - X86运算类指令操作数可为内存数据,需计算地址、访存、执行 • 内存中”对齐”存放,有利于减少访存次数和流水线的规整 总之,规整、简单和一致等特性有利于指令的流水线执行