计算机体系结构第三部分_第1页
计算机体系结构第三部分_第2页
计算机体系结构第三部分_第3页
计算机体系结构第三部分_第4页
计算机体系结构第三部分_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三部分,流水线技术3.1流水线的基本概念3.2DLX 的基本流水线3.3流水线中的相关3.4向量处理机3.1流水线的基本概念3.1.1 基本概念3.1.2 流水线的分类3.1流水线的基本概念每当谈起流水线,人们就可能会将它与每当谈起流水线,人们就可能会将它与生产车间的产品生产流水线联系起来。的生产车间的产品生产流水线联系起来。的确,计算机技术中的流水线概念正是由此确,计算机技术中的流水线概念正是由此得来的。为了对计算机技术中的流水线概得来的。为了对计算机技术中的流水线概念有明确的认识,念有明确的认识,下面我们首先通过一个下面我们首先通过一个例子来看看产品生产流水线的作用。例子来看看产品生产流

2、水线的作用。3.1.1 基本概念A 产品流水线B 指令流水线C 浮点加法流水线D 时-空图E 流水技术及其特点3.1流水线的基本概念3.1.1 基本概念A 产品流水线A.1 两种方案及工作过程对比A.2 流水线过程的抽象描述及其特点B 指令流水线C 浮点加法流水线D 时-空图E 流水技术及其特点3.1流水线的基本概念特点:特点:每件产品还是要经过每件产品还是要经过4道工序处理,单件道工序处理,单件产品的加工时间并没有改变,但是它将各产品的加工时间并没有改变,但是它将各个工人的操作时间重叠在一起,使得每件个工人的操作时间重叠在一起,使得每件产品的产出时间从表面看是从原来的产品的产出时间从表面看是

3、从原来的4分分钟缩减到钟缩减到1分钟,提高了产品的产出率分钟,提高了产品的产出率3.1.1 基本概念A 产品流水线A.1 两种方案及工作过程对比A.2 流水线过程的抽象描述及其特点B 指令流水线C 浮点加法流水线D 时-空图E 流水技术及其特点3.1流水线的基本概念 可以将上述思想引入到计算机技术中来。可以将上述思想引入到计算机技术中来。例如,把一条例如,把一条指令解释过程指令解释过程分解为分解为分析和分析和执行执行两个子过程,并让这两个子过程两个子过程,并让这两个子过程分别分别用独立的分析部件和执行部件来实现。用独立的分析部件和执行部件来实现。理想情况:速度提高一倍理想情况:速度提高一倍3.

4、1.1 基本概念A 产品流水线A.1 两种方案及工作过程对比A.2 流水线过程的抽象描述及其特点B 指令流水线C 浮点加法流水线D 时-空图E 流水技术及其特点3.1流水线的基本概念把把浮点加法浮点加法的全过程分解为的全过程分解为求阶差、对阶、求阶差、对阶、尾数相加、规格化四尾数相加、规格化四个子过程,并让它们个子过程,并让它们分别用各自独立的部件来实现。分别用各自独立的部件来实现。理想情况:理想情况:速度提高三倍速度提高三倍3.1.1 基本概念A 产品流水线A.1 两种方案及工作过程对比A.2 流水线过程的抽象描述及其特点B 指令流水线C 浮点加法流水线D 时-空图E 流水技术及其特点3.1

5、流水线的基本概念 时空图从时间和空间两个方面描述时空图从时间和空间两个方面描述了流水线的工作过程。时空图中,横坐了流水线的工作过程。时空图中,横坐标代表时间,纵坐标代表流水线的各个段。标代表时间,纵坐标代表流水线的各个段。 3.1.1 基本概念A 产品流水线A.1 两种方案及工作过程对比A.2 流水线过程的抽象描述及其特点B 指令流水线C 浮点加法流水线D 时-空图E 流水技术及其特点3.1流水线的基本概念 流水技术是指:流水技术是指:将一个重复的时序将一个重复的时序过程分解成为若干个子过程,而每个子过过程分解成为若干个子过程,而每个子过程都可有效地在其专用功能段上与其他子程都可有效地在其专用

6、功能段上与其他子过程同时执行。过程同时执行。 3.1.1 基本概念A 产品流水线A.1 两种方案及工作过程对比A.2 流水线过程的抽象描述及其特点B 指令流水线C 浮点加法流水线D 时-空图E 流水技术及其特点3.1流水线的基本概念3.1.1 基本概念A 产品流水线A.1 两种方案及工作过程对比A.2 流水线过程的抽象描述及其特点B 指令流水线C 浮点加法流水线D 时-空图E 流水技术及其特点流水技术的特点是指:流水技术的特点是指:(1) 流水过程由多个相联系的子过程组成,流水过程由多个相联系的子过程组成,每个子过程称为流水线的级或段每个子过程称为流水线的级或段。段的数段的数目称为流水线的深度

7、目称为流水线的深度。(2) 每个子每个子过程由专用的功能段实现过程由专用的功能段实现; (3) 各个各个功能段所需时间应尽量相等功能段所需时间应尽量相等,否,否则,时则,时间长的功能段将间长的功能段将成为流水线的瓶颈,成为流水线的瓶颈,会造成流水线的会造成流水线的堵塞和断流堵塞和断流。这个时间一这个时间一般 为 一 个 时 钟 周 期般 为 一 个 时 钟 周 期 ( 拍拍 ) ; (4) 流水线需要有流水线需要有通过时间通过时间 (第一个任务流第一个任务流出结果所需的时间出结果所需的时间),在此之后流水过程,在此之后流水过程才进入稳定工作状态,每一个时钟周期才进入稳定工作状态,每一个时钟周期

8、(拍拍)流出一个结果;流出一个结果; 3.1流水线的基本概念3.1.1 基本概念3.1.2 流水线的分类3.1流水线的基本概念 只能完成一种固定功能的流水线。只能完成一种固定功能的流水线。3.1.2 流水线的分类A 按照功能多少来分A.1 单功能流水线A.2 多功能流水线3.1流水线的基本概念 流水线的各段可以进行不同的连接,从流水线的各段可以进行不同的连接,从而实现不同的功能。而实现不同的功能。3.1.2 流水线的分类A 按照功能多少来分A.1 单功能流水线A.2 多功能流水线有八个有八个段可以段可以进行不进行不同的连同的连接以实接以实现不同现不同的功能。的功能。例如浮例如浮点运算点运算和乘

9、法和乘法运算运算3.1流水线的基本概念 在同一时刻,流水线的各段只能按同在同一时刻,流水线的各段只能按同一种功能的连接方式工作。一种功能的连接方式工作。 在静态流水线中,只有当输入是一串在静态流水线中,只有当输入是一串相同的运算操作时,流水的效率才能得到相同的运算操作时,流水的效率才能得到发挥。发挥。 3.1.2 流水线的分类A 按照功能多少来分B 按照同一时间段各段之间的连接方式来分B.1 静态流水线B.2 动态流水线12345678下述静态流水线共八段,按不同连接方法实现两种功能下述静态流水线共八段,按不同连接方法实现两种功能假设流水线现在正在进行加法操作假设流水线现在正在进行加法操作12

10、345678下述静态流水线共八段,按不同连接方法实现两种功能下述静态流水线共八段,按不同连接方法实现两种功能假设流水线现在正在进行加法操作假设流水线现在正在进行加法操作这时候来一个乘法操作任务,能否进入流水线?这时候来一个乘法操作任务,能否进入流水线?不能!不能!12345678下述静态流水线共八段,按不同连接方法实现两种功能下述静态流水线共八段,按不同连接方法实现两种功能加法操作已经排空加法操作已经排空必须等到加法操作排空后才能进入必须等到加法操作排空后才能进入3.1流水线的基本概念 在同一时刻,流水线的各段可以按不同在同一时刻,流水线的各段可以按不同功能的连接方式工作。功能的连接方式工作。

11、 这样就不是非得相同运算的一串操作这样就不是非得相同运算的一串操作才能流水处理。才能流水处理。 优点:能提高流水线的效率。优点:能提高流水线的效率。 缺点:会使流水线的控制变得复杂。缺点:会使流水线的控制变得复杂。 3.1.2 流水线的分类A 按照功能多少来分B 按照同一时间段各段之间的连接方式来分B.1 静态流水线B.2 动态流水线12345678下述动态流水线共八段,按不同连接方法实现两种功能下述动态流水线共八段,按不同连接方法实现两种功能假设流水线现在正在进行加法操作假设流水线现在正在进行加法操作这时候来一个乘法操作任务,能否进入流水线?这时候来一个乘法操作任务,能否进入流水线?可以!可

12、以!12345678下述动态流水线共八段,按不同连接方法实现两种功能下述动态流水线共八段,按不同连接方法实现两种功能3.1流水线的基本概念 它是把处理机的算术逻辑部件分段,以它是把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作。便为各种数据类型进行流水操作。 3.1.2 流水线的分类A 按照功能多少来分B 按照同一时间段各段之间的连接方式来分C 按照流水线的级别来分C.1 部件级流水线C.2 处理机级流水线C.3 处理机间流水级3.1流水线的基本概念 它是把指令的解释执行过程按照流水方它是把指令的解释执行过程按照流水方式进行处理。式进行处理。 例如,例如,DLX的基本流水线把指令解释

13、过的基本流水线把指令解释过程分解为:程分解为:取指令、指令译码、执行、访存、写回。取指令、指令译码、执行、访存、写回。3.1.2 流水线的分类A 按照功能多少来分B 按照同一时间段各段之间的连接方式来分C 按照流水线的级别来分C.1 部件级流水线C.2 处理机级流水线C.3 处理机间流水级从指令存储器从指令存储器中取指令中取指令对指令进行译对指令进行译码,并访问寄码,并访问寄存器,读取操存器,读取操作数作数对操作数进行对操作数进行有效地址计算有效地址计算Load 或或 Store指令在该段访指令在该段访问数据存储器问数据存储器把运算结果或把运算结果或者从者从DM中取得中取得的数写入寄存的数写入

14、寄存器器3.1流水线的基本概念 它是指由两个以上的处理机串行地对同它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项一数据流进行处理,每个处理机完成一项任务。任务。 3.1.2 流水线的分类A 按照功能多少来分B 按照同一时间段各段之间的连接方式来分C 按照流水线的级别来分C.1 部件级流水线C.2 处理机级流水线C.3 处理机间流水级3.1流水线的基本概念 不具有向量指令和向量数据表示,仅对不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。标量进行流水处理的处理机。例如例如IBM360/91,Amdah1 470V/6等等 3.1.2 流水线的分类A 按照功能多

15、少来分B 按照同一时间段各段之间的连接方式来分C 按照流水线的级别来分D 按照数据表示来分D.1 标量处理机D.2 向量处理机3.1流水线的基本概念具有向量指令和向量数据表示的处理机。具有向量指令和向量数据表示的处理机。例 如 :例 如 : T I A S C , C R AY- I 等等。 3.1.2 流水线的分类A 按照功能多少来分B 按照同一时间段各段之间的连接方式来分C 按照流水线的级别来分D 按照数据表示来分D.1 标量处理机D.2 向量处理机3.1流水线的基本概念流水线中的各段串行连接,没有反馈回路。流水线中的各段串行连接,没有反馈回路。3.1.2 流水线的分类A 按照功能多少来分

16、B 按照同一时间段各段之间的连接方式来分C 按照流水线的级别来分D 按照数据表示来分E 按照是否有反馈回路来分E.1 线性流水机E.2 非线性流水机E.2.1 流水线调度问题3.1流水线的基本概念流水线中的各段除有串行连接外,还有反流水线中的各段除有串行连接外,还有反馈回路。馈回路。 3.1.2 流水线的分类A 按照功能多少来分B 按照同一时间段各段之间的连接方式来分C 按照流水线的级别来分D 按照数据表示来分E 按照是否有反馈回路来分E.1 线性流水机E.2 非线性流水机E.2.1 流水线调度问题3.1流水线的基本概念3.1.2 流水线的分类A 按照功能多少来分B 按照同一时间段各段之间的连

17、接方式来分C 按照流水线的级别来分D 按照数据表示来分E 按照是否有反馈回路来分E.1 线性流水机E.2 非线性流水机E.2.1 流水线调度问题 流水线的调度问题流水线的调度问题3.2DLX的基本流水线3.2.1 DLX的一种简单实现3.2.2 基本的DLX流水线3.2.3 流水线的性能分析首先谈一下在不涉及流水的情况下首先谈一下在不涉及流水的情况下DLX如何实现如何实现3.2.1 DLX的一种简单实现3.2 DLX的基本流水线首先谈一下在不涉及流水的情况下首先谈一下在不涉及流水的情况下DLX如何实现如何实现3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路3.2 DLX的基本流

18、水线程序计数器程序计数器加法器加法器指令寄存器指令寄存器多路选择器多路选择器临时寄存器,用来暂存需从上一个时钟周临时寄存器,用来暂存需从上一个时钟周期传递到下一个时钟周期的值期传递到下一个时钟周期的值3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期3.2 DLX的基本流水线存放下一条指令的存放下一条指令的PC值值存放从寄存器中读取的内存放从寄存器中读取的内容容存放立即数存放立即数存放条件码存放条件码存放存放ALU运运算结果算结果存放从存储存放从存储器中取出的器中取出的数数IR MemPC NPC PC + 4 3.2.1 DLX的一种简

19、单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期3.2 DLX的基本流水线1,根据,根据PC值值从存储器中取从存储器中取指令指令2,将指令送入,将指令送入指令寄存器指令寄存器IR3, PC值加值加4,指向下一条指指向下一条指令令4, 放入临时放入临时寄存器寄存器NPC中中A RegsIR6.10 B RegsIR11.15 Imm(IR16)16#IR16.31) 3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)3.2 DL

20、X的基本流水线 指令的译码操作和读寄存器操作是并指令的译码操作和读寄存器操作是并行进行的。行进行的。之所以能做到这一点,是因为之所以能做到这一点,是因为DLX指令格式中,操作码在固定位置。指令格式中,操作码在固定位置。这种技术也称为这种技术也称为固定字段译码技术固定字段译码技术。值得。值得注意的是,在上述过程中,可能读出了一注意的是,在上述过程中,可能读出了一些在后面周期中并不会使用到的寄存器内些在后面周期中并不会使用到的寄存器内容,但是这并不会影响指令执行的正确性。容,但是这并不会影响指令执行的正确性。相反,却可以有效地降低问题的复杂性。相反,却可以有效地降低问题的复杂性。 另外,由于立即值

21、在另外,由于立即值在DLX指令格式中指令格式中处于固定位置,因此这里也对其进行符号处于固定位置,因此这里也对其进行符号扩展,以便在下一个周期能使用它。当然扩展,以便在下一个周期能使用它。当然由于指令的不同,也许在后面的周期中并由于指令的不同,也许在后面的周期中并不会用到这个立即值,但无论如何,提前不会用到这个立即值,但无论如何,提前形成立即值总是有益无害的。形成立即值总是有益无害的。 3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)3.2 DLX的基本流水线A,进行指令译码

22、进行指令译码B-1,以,以IR6.10和和IR11.15为地址访为地址访问寄存器问寄存器B-2,读出的结,读出的结果放在临时寄存果放在临时寄存器器A和和B中中C-1,同时对,同时对IR寄存器中低寄存器中低16位内容进行符号位扩展位内容进行符号位扩展C-2,扩展后的内,扩展后的内容放在临时寄存器容放在临时寄存器Imm中中A,B,C是同时进行的是同时进行的 在这个周期,不同的指令有不同的操在这个周期,不同的指令有不同的操作。作。3.2 DLX的基本流水线3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译

23、码/读寄存器周期(ID)B.3 执行周期(EX)B.3.1 存储器访问指令B.3.2 寄存器-寄存器ALU操作B.3.3 寄存器-立即数ALU操作B.3.4 分支指令ALUoutput A + Imm 3.2 DLX的基本流水线3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.3.1 存储器访问指令B.3.2 寄存器-寄存器ALU操作B.3.3 寄存器-立即数ALU操作B.3.4 分支指令 存储器访问存储器访问 ALUOutput AALUOutp

24、ut AImmImm1,ALU将将A的值的值与与Imm的值相加的值相加形成有效地址形成有效地址2,结果放入,结果放入ALUOutput中中ALUoutput A op B 3.2 DLX的基本流水线3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.3.1 存储器访问指令B.3.2 寄存器-寄存器ALU操作B.3.3 寄存器-立即数ALU操作B.3.4 分支指令 寄存器寄存器寄存器寄存器 ALU ALU 操作操作 ALUOutput A op BAL

25、UOutput A op B1,ALU根据操作码指定根据操作码指定的功能对的功能对A和和B中的值进行中的值进行运算运算2,结果放入,结果放入ALUOutput中中ALUoutput A op Imm 3.2 DLX的基本流水线3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.3.1 存储器访问指令B.3.2 寄存器-寄存器ALU操作B.3.3 寄存器-立即数ALU操作B.3.4 分支指令ALUoutput NPC + Imm;Cond (A op

26、0) 3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.3.1 存储器访问指令B.3.2 寄存器-寄存器ALU操作B.3.3 寄存器-立即数ALU操作B.3.4 分支指令3.2 DLX的基本流水线 分支操作分支操作ALUOutput NPCALUOutput NPCImm Imm Cond (A op 0)Cond (A op 0)1,ALU将将NPC和和Imm的值相加形成的值相加形成分支的目标地址分支的目标地址2,检测,检测A中的值,判断分支是否

27、成功,进行何种中的值,判断分支是否成功,进行何种操作由分支操作码决定。比如操作由分支操作码决定。比如BEQZ的检测操作的检测操作为为”=0?”3,若分,若分支成功,支成功,则将则将Cond设设置为置为”真真“否则设否则设置为置为”假假” 这里,将有效地址计算周期和执行周这里,将有效地址计算周期和执行周期合并为一个时钟周期,这是由期合并为一个时钟周期,这是由 DLX 指指令集结构本身的特点所允许的,因为在令集结构本身的特点所允许的,因为在 DLX 指令集结构中,没有任何指令需要指令集结构中,没有任何指令需要同时计算数据的存储器地址、计算分支指同时计算数据的存储器地址、计算分支指令的目标地址和对数

28、据进行处理。令的目标地址和对数据进行处理。 3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.3.1 存储器访问指令B.3.2 寄存器-寄存器ALU操作B.3.3 寄存器-立即数ALU操作B.3.4 分支指令3.2 DLX的基本流水线LOAD:LMD MemALUoutputSTORE: MemALUoutput B 3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)

29、B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.4 存储器访问/分支完成周期(MEM)B.4.1 存储器访问指令操作LOAD和STOREB.4.2 分支操作3.2 DLX的基本流水线LOAD:LMD MemALUoutput对于对于Load指令指令,1,将,将ALUOutput中的值作为访存地中的值作为访存地址,从存储器中读址,从存储器中读出相应的数据出相应的数据对于对于Load指令指令,2,放入临时寄存器,放入临时寄存器LMDSTORE: MemALUoutput B对于对于Store指令指令,将将B中的值按照中的值按照ALUOutput所指明所指明的地址写入存储器的地址写

30、入存储器if (cond) PC ALUoutput else PC NPC 3.2 DLX的基本流水线3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.4 存储器访问/分支完成周期(MEM)B.4.1 存储器访问指令操作LOAD和STOREB.4.2 分支操作1,如果,如果cond为真,则表示分支为真,则表示分支转移成功转移成功2,ALUOutput的值作的值作为目标地址存放在为目标地址存放在PC中中(cond为真的情况下)为真的情况下)1,如果

31、,如果cond为假,则表示分支为假,则表示分支转移不成功转移不成功2,将,将NPC值送入值送入PC,作为下,作为下一条指令的地址(一条指令的地址(cond为假的为假的情况下)情况下)RegsIR16.20 ALUoutput 3.2 DLX的基本流水线3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.4 存储器访问/分支完成周期(MEM)B.5 写回周(WB)B.5.1 寄存器-寄存器ALU指令B.5.2 寄存器-立即型ALU指令B.5.3 Loa

32、d指令寄存器寄存器寄存器型寄存器型 ALU ALU 指令指令 RegsRegsIRIR1616 .20.20 ALUOutput ALUOutput将将ALUOUTPUT的值写回寄存器的值写回寄存器RegsIR11.15 ALUoutput 3.2 DLX的基本流水线3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.4 存储器访问/分支完成周期(MEM)B.5 写回周(WB)B.5.1 寄存器-寄存器ALU指令B.5.2 寄存器-立即型ALU指令B

33、.5.3 Load指令寄存器寄存器立即值型立即值型 ALU ALU 指令指令 RegsRegsIRIR1111 .15.15 ALUOutput ALUOutput将将ALUOUTPUT的值写回寄存器的值写回寄存器RegsIR11.15 ALUoutput 3.2 DLX的基本流水线3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.4 存储器访问/分支完成周期(MEM)B.5 写回周(WB)B.5.1 寄存器-寄存器ALU指令B.5.2 寄存器-立

34、即型ALU指令B.5.3 Load指令LoadLoad 指令指令 RegsRegsIRIR1111 .15.15 LMD LMD将将LMD的值写回寄存器的值写回寄存器 上述指令均是将结果写入寄存器文件。上述指令均是将结果写入寄存器文件。无论结果是来自于存储器系统(临时寄存无论结果是来自于存储器系统(临时寄存器器 LMD 中的内容),还是来自于中的内容),还是来自于 ALU 的计算结果(临时寄存器的计算结果(临时寄存器 ALUoutput 中中的内容),的内容),都由操作码决定将其送入目标都由操作码决定将其送入目标寄存器相应的域中。寄存器相应的域中。 3.2.1 DLX的一种简单实现A 实现DL

35、X的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期B.1 取指令周期(IF)B.2 指令译码/读寄存器周期(ID)B.3 执行周期(EX)B.4 存储器访问/分支完成周期(MEM)B.5 写回周(WB)B.5.1 寄存器-寄存器ALU指令B.5.2 寄存器-立即型ALU指令B.5.3 Load指令3.2 DLX的基本流水线 分支指令需要分支指令需要4个时钟周期完成,其它个时钟周期完成,其它指令需要指令需要5个时钟周期完成。个时钟周期完成。 假设分支指令数占指令总数(也称混合假设分支指令数占指令总数(也称混合指令数)的指令数)的12,则其,则其 CPI 是是4.88个时钟个时钟周期。

36、由此可见,上述实现无论是从性能周期。由此可见,上述实现无论是从性能方面,还是从硬件开销方面,都称不上是方面,还是从硬件开销方面,都称不上是一种优化实现。一种优化实现。3.2.1 DLX的一种简单实现A 实现DLX的一种简单数据通路B 一条DLX指令最多所需要的5个时钟周期3.2 DLX的基本流水线 可以可以DLX将每一个时钟周期看作是将每一个时钟周期看作是流水线的一个时钟周期,使数据通路成为流水线的一个时钟周期,使数据通路成为一条指令流水线。一条指令流水线。硬件每个时钟周期启动硬件每个时钟周期启动一条新的指令,并执行一条新的指令,并执行5条不同指令中的条不同指令中的某一部分。某一部分。 我们可

37、以用时空图的另外一种形式将我们可以用时空图的另外一种形式将该流水线描述入下图所示的流水过程该流水线描述入下图所示的流水过程 。3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程3.2 DLX的基本流水线3.2DLX的基本流水线3.2.1 DLX的一种简单实现3.2.2 基本的DLX流水线3.2.3 流水线的性能分析 可以看出,每条指令仍然需要可以看出,每条指令仍然需要5个时钟个时钟周期完成,但是指令执行的吞吐量却有很周期完成,但是指令执行的吞吐量却有很大提高。大提高。 3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程3.2 DLX的基本流水线 DLX 流水线十分简单,但是

38、要使流水线十分简单,但是要使 DLX 指令的各种组合能够在上述流水线指令的各种组合能够在上述流水线中真正流水起来,充分发挥流水线的效率,中真正流水起来,充分发挥流水线的效率,并不是一件很容易的事情,还有许多问题并不是一件很容易的事情,还有许多问题有待解决有待解决。3.2 DLX的基本流水线3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程B 采用流水技术应解决好的几个问题B.1 冲突问题B,2 流水线寄存器 确保流水线的各段不会在同一个时钟确保流水线的各段不会在同一个时钟周期内使用相同的数据通路资源。下图从周期内使用相同的数据通路资源。下图从使用流水线资源的角度描述了上述流水线使用流

39、水线资源的角度描述了上述流水线的流水过程的流水过程 。 从图中可以看到,在同一个时钟周期从图中可以看到,在同一个时钟周期内每条指令所使用的功能单元都不同。内每条指令所使用的功能单元都不同。3.2 DLX的基本流水线3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程B 采用流水技术应解决好的几个问题B.1 冲突问题B.1.1 从使用流水资源的角度看流水过程B.1.2 引出冲突问题B.2 流水线寄存器取指令操作和访问数据操作之间可能存在取指令操作和访问数据操作之间可能存在访问存储器冲突,怎么处理呢?访问存储器冲突,怎么处理呢?将指令存储器(将指令存储器(IM)和数据存储器()和数据存储器

40、(DM)分隔开分隔开3.2.2 基本的DLX流水线A 一种简单DLX流水线B 简单DLX流水线的流水过程B.1 类似于时空图的流水过程B.2 采用流水技术应解决好的几个问题B.2.1 冲突问题B.2.1.1 从使用流水资源的角度看流水过程B.2.1.2 引出冲突问题3.2 DLX的基本流水线 从下图还可以看到,流水线中的从下图还可以看到,流水线中的 ID 段和段和 WB 段都要使用寄存器文件:段都要使用寄存器文件:在在 ID 段对寄存器文件进行读操作,在段对寄存器文件进行读操作,在 WB 段段对寄存器文件进行写操作。对寄存器文件进行写操作。那么,如果读那么,如果读操作和写操作都是对同一寄存器进

41、行,又操作和写操作都是对同一寄存器进行,又将如何?将如何? 3.2 DLX的基本流水线3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程B 采用流水技术应解决好的几个问题B.1 冲突问题B.1.1 从使用流水资源的角度看流水过程B.1.2 引出冲突问题B.2 流水线寄存器 其次,在图中没有考虑其次,在图中没有考虑 PC 的问题。的问题。流流水线为了能够在每个时钟周期启动一条新水线为了能够在每个时钟周期启动一条新的指令,就必须在每个时钟完成的指令,就必须在每个时钟完成 PC 值的值的增值操作,并保存增值后的增值操作,并保存增值后的 PC 值。对上值。对上述述 DLX 流水线来说,这些操

42、作必须在流水线来说,这些操作必须在IF段完成段完成 ,以便为取下一条指令做好准备,以便为取下一条指令做好准备 当流水线执行分支指令时,则会出现当流水线执行分支指令时,则会出现新的问题新的问题。分支指令。分支指令可能会改变可能会改变 PC 的的值,值,但是它只有在但是它只有在MEM段结束时才能完成改段结束时才能完成改变变PC值的操作值的操作 。所以针对这个问题,我所以针对这个问题,我们需要重新组织上述流水线的数据通路们需要重新组织上述流水线的数据通路 ,争取在争取在 IF 段中完成改变段中完成改变 PC 值的操作。值的操作。这就是如何处理分支指令的问题,这就是如何处理分支指令的问题,3.2.2

43、基本的DLX流水线A 简单DLX流水线的流水过程B 采用流水技术应解决好的几个问题B.1 冲突问题B.1.1 从使用流水资源的角度看流水过程B.1.2 引出冲突问题B.2 流水线寄存器3.2 DLX的基本流水线希望在希望在IF阶段完成阶段完成PC值的改变,好在下一时间周期启动下一条值的改变,好在下一时间周期启动下一条指令,而不是等到目前的指令执行完指令,而不是等到目前的指令执行完MEM才改变。才改变。但是当存在分支操作时,但是当存在分支操作时,PC的新值必须等到的新值必须等到MEM结束时才知结束时才知道。这样就影响了流水过程。道。这样就影响了流水过程。所以对流水通路进行了重新的组织所以对流水通

44、路进行了重新的组织为解决问题,我们为解决问题,我们重新组织数据通路重新组织数据通路,把所有改变把所有改变PCPC值的操作都放在值的操作都放在IFIF段进行。段进行。但分支指令如何处理?但分支指令如何处理? 通过上面的讨论可以看到,在通过上面的讨论可以看到,在 DLX 基基本流水线中,每个时钟周期都要用到其所本流水线中,每个时钟周期都要用到其所有的流水段,一个流水段中的所有操作必有的流水段,一个流水段中的所有操作必须在一个时钟周期内完成。特别是须在一个时钟周期内完成。特别是要使数要使数据通路完全流水,就必须保证从一个流水据通路完全流水,就必须保证从一个流水段传输到下个流水段的数据都被保存在寄段传

45、输到下个流水段的数据都被保存在寄存器文件中。为此,需在流水线各段之间存器文件中。为此,需在流水线各段之间设置寄存器文件设置寄存器文件 , 3.2 DLX的基本流水线3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程B 采用流水技术应解决好的几个问题B.1 冲突问题B.2 流水线寄存器将将PC看成是看成是IF段前的寄存段前的寄存器器 把数据和控制信息从一个流水段传送把数据和控制信息从一个流水段传送到下一个流水段。到下一个流水段。3.2 DLX的基本流水线3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程B 采用流水技术应解决好的几个问题B.1 冲突问题B.2 流水线寄存器B.

46、2.1 流水线寄存器的作用B.2.2 寄存器的命名B.2.3 流水线寄存器的构成当一条指令到某一段时,当一条指令到某一段时,需要相应的数据和控制需要相应的数据和控制信息。信息。这些信息由各段的流水这些信息由各段的流水线寄存器提供。线寄存器提供。当指令在流水线中流动当指令在流水线中流动时,其数据和控制信息时,其数据和控制信息也在同步地向前流动也在同步地向前流动例如对例如对ALU指令来说,指令来说,结果寄存器的地址在结果寄存器的地址在IF段就已获得(在指令中)段就已获得(在指令中)但 是 这 个但 是 这 个地 址 要 到地 址 要 到WB段写入段写入寄 存 器 时寄 存 器 时才用到才用到寄存器

47、组用连接它们的流水段的名称来命寄存器组用连接它们的流水段的名称来命名。例如名。例如IF/ID流水线寄存器组中所包含的寄存器的命名流水线寄存器组中所包含的寄存器的命名类似于域的命名。即采用类似于域的命名。即采用 “寄存器组寄存器组.寄寄存器名存器名” 的方式,例如的方式,例如IF/ID.IR3.2 DLX的基本流水线3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程B 采用流水技术应解决好的几个问题B.1 冲突问题B.2 流水线寄存器B.2.1 流水线寄存器的作用B.2.2 寄存器的命名B.2.3 流水线寄存器的构成3.2 DLX的基本流水线3.2.2 基本的DLX流水线A 简单DLX

48、流水线的流水过程B 采用流水技术应解决好的几个问题B.1 冲突问题B.2 流水线寄存器B.2.1 流水线寄存器的作用B.2.2 寄存器的命名B.2.3 流水线寄存器的构成NPC,存放下一条指令;,存放下一条指令;IR, 存放指令;存放指令;A和和ID/EX.B, 存放寄存器读出的结果;存放寄存器读出的结果;Imm,存放立即数;,存放立即数;Conc存放分支标示;存放分支标示;EX/MEN.B, 存放要写入存储器的数据存放要写入存储器的数据ALUOutput,存放,存放ALU的运算结果。对于分支指令,存放分支地址。也称为的运算结果。对于分支指令,存放分支地址。也称为EX/MEM.NPCLMD,存

49、放从存储器读出的数据,存放从存储器读出的数据3.1流水线的基本概念3.2.2 基本的DLX流水线A 简单DLX流水线的流水过程B 采用流水技术应解决好的几个问题C DLX流水线的操作 对于流水线中的指令来说,在任一时对于流水线中的指令来说,在任一时刻,它仅在流水线中的某一段内执行。因刻,它仅在流水线中的某一段内执行。因此,只要知道每一流水段在各种指令的情此,只要知道每一流水段在各种指令的情况下进行何种操作,就知道了整个流水线况下进行何种操作,就知道了整个流水线的操作。的操作。流水段流水段 DLX流水线的每个流水段的操作任何指令类型任何指令类型ALU ALU 指令指令Load/Store Loa

50、d/Store 指令指令分支指令分支指令IFIFIDIDEXEXIF/ID.IR MemPCIF/ID.NPC,PC (if EX/MEM.cond EX/MEM.NPC else PC+4);ID/EX.A RegsIF/ID.IR6.10; ID/EX.B RegsIF/ID.IR11.15;ID/EX.NPC IF/ID.NPC; ID/EX.IR IF/ID.IR;ID/EX.Imm (IR16)16#IR16.31;EX/MEM.IR ID/EX.IR; EX/MEM.ALUOutput ID/EX.A op ID/EX.B 或EX/MEM.ALUOutput ID/EX.A op

51、ID/EX.Imm;EX/MEM.cond 0;EX/MEM.IR ID/EX.IR; EX/MEM.ALUOutput ID/EX.A + ID/EX.Imm;EX/MEM.ALUOutput ID/EX.NPC + ID/EX.Imm;EX/MEM.cond (ID/EX.A op 0);(动画演示)(动画演示)(动画演示)(动画演示)(动画演示)流水段流水段任何指令类型任何指令类型ALU ALU 指令指令Load/Store Load/Store 指令指令分支指令分支指令MEMMEMWBWBMEM/WB.IR EX/MEM.IR; MEM/WB.ALUOutput EX/MEM.ALUO

52、utput;MEM/WB.IR EX/MEM.IR; MEM/WB.LMD MemEX/MEM.ALUOutput;或MemEX/MEM.ALUOutput EX/MEM.B;RegsMEM/WB.IR16.20 MEM/WB.ALUOutput;或RegsMEM/WB.IR11.15 MEM/WB.ALUOutput;RegsMEM/WB.IR11.15 MEM/WB.LMD; DLX流水线的每个流水段的操作(动画演示)(动画演示)(动画演示)(动画演示) 3.2.33.2.3 流水线的性能分析A 吞吐率 吞 吐 率 (吞 吐 率 ( T h r o u g h p u t r a t e

53、)是衡量流水线速度的重要指标。它是指在是衡量流水线速度的重要指标。它是指在单位时间内流水线所完成的任务数或输出单位时间内流水线所完成的任务数或输出结果的数量。结果的数量。3.2 DLX的基本流水线TPmax,这是指流水线在连续流动达到稳,这是指流水线在连续流动达到稳定状态后所得到的吞吐率定状态后所得到的吞吐率 3.2 DLX的基本流水线3.2.3 流水线的性能分析A 吞吐率A.1 最大吞吐率A.1.1 流水线各段时间相同时的最大吞吐率A.1.2 流水线各段时间不同时的最大吞吐率A.1.2.1 流水线的瓶颈A.1.2.2 消除瓶颈的方法若流水线各段时间相等,均为若流水线各段时间相等,均为t0,如

54、下,如下图所示,则有:图所示,则有: 3.2 DLX的基本流水线3.2.3 流水线的性能分析A 吞吐率A.1 最大吞吐率A.1.1 流水线各段时间相同时的最大吞吐率A.1.2 流水线各段时间不同时的最大吞吐率A.1.2.1 流水线的瓶颈A.1.2.2 消除瓶颈的方法若流水线各段时间不相等,各段时间分别若流水线各段时间不相等,各段时间分别为为ti,则有:,则有: TPmax = 1/max ti 3.2 DLX的基本流水线3.2.3 流水线的性能分析A 吞吐率A.1 最大吞吐率A.1.1 流水线各段时间相同时的最大吞吐率A.1.2 流水线各段时间不同时的最大吞吐率A.1.2.1 流水线的瓶颈A.

55、1.2.2 消除瓶颈的方法s1s2s3s4s1 s2s3s4t03t0t0t0s1s2s3s41s1 s2s3s4t03t0t0t0s1s2s3s41 12s1 s2s3s4t03t0t0t0由于瓶颈段由于瓶颈段S2的时间是的时间是3 t0,所以第二个任务,所以第二个任务需要在第一个任务需要在第一个任务3 t0后进入后进入s1s2s3s41 111223s1 s2s3s4t03t0t0t0s1s2s3s41 111其余任务依次类推,发现了什么?完成其余任务依次类推,发现了什么?完成n个任个任务的务的T流水流水等于多少?等于多少?22223333s1 s2s3s4t03t0t0t0 最大吞吐率取

56、决于流水线中最慢的一最大吞吐率取决于流水线中最慢的一段所需的时间。这个段称为流水线的瓶颈。段所需的时间。这个段称为流水线的瓶颈。3.2 DLX的基本流水线3.2.3 流水线的性能分析A 吞吐率A.1 最大吞吐率A.1.1 流水线各段时间相同时的最大吞吐率A.1.2 流水线各段时间不同时的最大吞吐率A.1.2.1 流水线的瓶颈A.1.2.2 消除瓶颈的方法3.2.3 流水线的性能分析A 吞吐率A.1 最大吞吐率A.1.1 流水线各段时间相同时的最大吞吐率A.1.2 流水线各段时间不同时的最大吞吐率A.1.2.1 流水线的瓶颈A.1.2.2 消除瓶颈的方法A, 细分瓶颈段细分瓶颈段B, 重复设置瓶

57、颈段重复设置瓶颈段3.2 DLX的基本流水线s1s2s3s41 11122223333s1 s2s3s4t03t0t0t0s1S2-1s3s4s1 s2s3s4t03t0t0t01细分瓶颈段方法细分瓶颈段方法s1s2-1s2-2s2-3s3s4S2-2S2-3s1S2-1s3s4s1 s2s3s4t03t0t0t01细分瓶颈段方法细分瓶颈段方法2s1s2-1s2-2s2-3s3s4S2-2S2-31s1S2-1s3s4s1 s2s3s4t03t0t0t01细分瓶颈段方法细分瓶颈段方法2s1s2-1s2-2s2-3s3s4S2-2S2-31123s1S2-1s3s4s1 s2s3s4t03t0t

58、0t01细分瓶颈段方法细分瓶颈段方法2s1s2-1s2-2s2-3s3s4S2-2S2-31111122222333333s1 s2s3s4t03t0t0t0重复设置瓶颈段方法重复设置瓶颈段方法s1 s2-1s3s4t03t0t0t0 s2-2 s2-3s1S2-1S2-1S2-31S3S4s1 s2s3s4t03t0t0t0重复设置瓶颈段方法重复设置瓶颈段方法s1 s2-1s3s4t03t0t0t0 s2-2 s2-3s1S2-1S2-1S2-31 12S3S4s1 s2s3s4t03t0t0t0重复设置瓶颈段方法重复设置瓶颈段方法s1 s2-1s3s4t03t0t0t0 s2-2 s2-3

59、s1S2-1S2-1S2-31 1223S3S4s1 s2s3s4t03t0t0t0重复设置瓶颈段方法重复设置瓶颈段方法s1 s2-1s3s4t03t0t0t0 s2-2 s2-3s1S2-1S2-1S2-31 12233S3S4s1 s2s3s4t03t0t0t0重复设置瓶颈段方法重复设置瓶颈段方法s1 s2-1s3s4t03t0t0t0 s2-2 s2-3s1S2-1S2-1S2-31 122223333S3S4113.2DLX的基本流水线3.2.1 DLX的一种简单实现3.2.2 基本的DLX流水线3.2.3 流水线的性能分析3.2.3 流水线的性能分析A 吞吐率 基于上述流水线性能分析

60、可知,对于基于上述流水线性能分析可知,对于指令流水线而言,流水线增加了指令的吞指令流水线而言,流水线增加了指令的吞吐率,但是它吐率,但是它并不会真正减少一条指令总并不会真正减少一条指令总的执行时间。实际上,由于流水线控制等的执行时间。实际上,由于流水线控制等而带来的额外开销,反而会使每条指令的而带来的额外开销,反而会使每条指令的执行时间稍微有所增加。执行时间稍微有所增加。指令吞吐率的提指令吞吐率的提高意味着即使单条指令执行并没有变快,高意味着即使单条指令执行并没有变快,但是程序运行会更快些,程序总执行时间但是程序运行会更快些,程序总执行时间也将会有效减少。也将会有效减少。3.2 DLX的基本流

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论