处理器流水线的概念和相关技术

合集下载

Intel系列CPU流水线技术的发展与展望

Intel系列CPU流水线技术的发展与展望

Intel系列CPU流水线技术的发展与展望流水线技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。

在计算机中,把一个重复的过程分解为若干子过程,每个子过程由专门的功能部件来实现。

将多个处理过程在时间上错开,依次通过各功能段,这样,每个子过程就可以与其他子过程并行进行。

其中,流水线中的每个子过程及其功能部件称为流水线的级或段,段与段相互连接形成流水线。

流水线的段数称为流水线的深度。

把流水线技术应用于指令的解释执行过程,就形成了指令流水线。

其中可以把指令的执行过程分为取指令、译码、执行、存结果4个子过程。

把流水线技术应用于运算的执行过程,就形成了运算操作流水线,也称为部件级流水线。

Inter Pentium 系列中采用的流水线技术流水线技术早在Intel的X86芯片中均得到了实现。

而Pentium系列CPU产品更是一个高级的超标量处理器。

奔腾处理器可以在一个时钟周期内完成两条指令,一个流水线完成一条指令。

具有MMX技术的奔腾处理器为整型流水线增加了一个额外的处理阶段。

在486芯片中,一条指令一般被划分为五个标准的部分,奔腾亦是如此,而在P6中,由于采用了近似于RISC的技术,一条指令被划分成了创纪录的十四个阶段,这极大地提高了流水线的速度。

P6系列处理器使用动态执行结构,该结构通过硬件寄存器重命名和分支预测的方法,将乱序执行和推测执行合成在一起。

奔腾Ⅲ处理器使用了P6中的动态执行技术,增加了超标量双流水线结构、分支预测技术、通过乱序来优化指令流水线、将指令划分为更细的阶段。

而奔腾Ⅳ新增的技术有使用高级动态执行、执行跟踪缓存、快速执行引擎、超长管道处理技术、超线程技术。

它基本的指令流水线长度达到了20级,更长的流水线可以使处理器运行在更高的主频下,从而提高处理器的性能,但有可能带来一些指令执行上的延迟。

提高流水线性能的方法及相关技术从不同的角度和观点,可以把流水线分成多种不同的种类。

按照流水线所完成的功能来分,可以分为单功能流水线和多功能流水线。

中央处理器CPU——指令流水线

中央处理器CPU——指令流水线

中央处理器CPU——指令流⽔线指令流⽔线概念:⼀条指令的执⾏过程划分为不同阶段,占⽤不同硬件资源,多条指令重叠操作实现并⾏处理1.顺序执⾏:⼜称串⾏执⾏⽅式;传统的冯诺依曼机器优点:控制简单,硬件代价⼩缺点:速度慢,各功能部件利⽤率低2.⼀次重叠执⾏⽅式:优点:时间缩短三分之⼀,各功能部件利⽤效率提⾼缺点:控制复杂,硬件开销增⼤3.⼆次重叠执⾏⽅式:优点:时间缩短三分之⼆,理想状态指令执⾏过程图:⽤于分析指令执⾏过程和影响流⽔线因素时空图:⽤于分析流⽔线的性能吞吐率TP:单位时间内流⽔线完成的任务数量或输出结果的数量加速⽐S:同⼀任务下,不使⽤流⽔线⽤时与使⽤流⽔线⽤时之⽐效率E:流⽔线的设备利⽤率锁存器(缓冲寄存器):作⽤是保存本流⽔段的执⾏结果,提供给下⼀流⽔段使⽤。

影响因素:结构相关(资源冲突):多条指令同⼀时间争⽤同⼀资源解决:1.后⼀相关指令暂停⼀周期;2.资源重复配置(数据存储器+指令存储器)数据相关(数据冲突):在⼀个程序中,上⼀条指令执⾏完才能执⾏下⼀条指令(这两条指令即为数据相关)解决:将数据相关的指令和后续指令暂停时钟周期到问题消失再执⾏;1.硬件阻塞stall和软件插⼊NOP;2.数据旁路技术;3.编译优化:通过编译器调整指令顺序控制相关(控制冲突):转移指令和改变PC值的指令造成断流解决:1.尽早判别转移是否发⽣,尽早⽣成转移⽬标地址2.预取转移成功和不成功两个控制流⽅向上的⽬标指令3.加快和提前形成条件码4.提⾼转移⽅向的猜准率流⽔线的分类1.根据流⽔线使⽤级别:部件功能级、处理机级和处理机间级流⽔线部件功能级流⽔:将复杂的算术逻辑运算组成流⽔线⼯作⽅式处理机级流⽔:把⼀条指令解释过程分成多个⼦过程,如取指、译码、执⾏、访存及写回5个⼦过程。

处理机间流⽔:是⼀种宏流⽔,其中每⼀个处理机完成某⼀专门任务,各个处理机所得到的结果需存放在与下⼀个处理机所共享的存储器中2,按流⽔线可以完成的功能分为:单功能流⽔线和多功能流⽔线单功能流⽔线:指只能实现⼀种固定的专门功能的流⽔线;多功能流⽔线:指通过各段间的不同连接⽅式可以同时或不同时地实现多种能的流⽔线。

计算机组成原理中的流水线与并行处理

计算机组成原理中的流水线与并行处理

计算机组成原理中的流水线与并行处理计算机组成原理是指计算机的各个组成部分及其相互关系的原理。

其中,流水线与并行处理是计算机组成原理中的两个重要概念。

本文将从流水线和并行处理的定义、特点、应用以及优缺点等方面进行论述。

一、流水线的定义和特点流水线技术是一种将复杂的任务分解为若干个互相依赖的子任务,并通过时序控制将其分别交给不同的处理单元进行执行的技术。

它可以提高计算机的执行效率和吞吐量。

与串行处理相比,流水线处理具有以下特点:1.任务分解:将复杂的任务分解为多个子任务,每个子任务由不同的处理单元负责执行。

2.流水线寄存器:通过在流水线各个阶段之间插入流水线寄存器,实现了各个阶段之间的数据传递和暂存,确保了数据的正确性和稳定性。

3.并行操作:不同的处理单元可以并行执行不同的任务,提高了计算机的并行处理能力。

4.随机任务执行:由于流水线中的各个阶段是独立的,因此可以随机运行和停止任务,提高了计算机的灵活性。

二、并行处理的定义和特点并行处理是指同时利用多个处理器或者多个处理单元并行执行多个任务的处理方式。

它可以大幅提升计算机系统的运算速度和处理能力。

并行处理的特点如下:1.任务分配:将大任务分解为多个小任务,并分配给多个处理单元同时执行。

2.任务协调:通过合理的任务调度算法,协调各个处理单元之间的任务执行顺序和数据传递,确保整个系统的稳定性和正确性。

3.资源共享:各个处理单元之间可以共享资源,如内存、缓存等,提高资源利用率。

4.计算效率提高:通过多个处理单元同时执行任务,大幅提高了计算效率和处理速度。

三、流水线与并行处理的应用流水线和并行处理在计算机领域被广泛应用,以下是几个常见的应用示例:1.超级计算机:超级计算机通常采用并行处理的方式,利用多个处理器同时进行计算,以提高计算能力。

2.图形处理器:图形处理器(GPU)采用流水线技术,将图像处理任务分解为多个子任务,通过流水线处理实现高效的图形渲染和计算。

流水线实验报告

流水线实验报告

流水线实验报告一、实验目的本次实验旨在探究流水线技术在计算机体系结构中的应用,并了解流水线的工作原理与效果。

通过对流水线的实验,掌握流水线操作的过程和相关概念,并通过实践了解其对计算机性能的提升作用。

二、实验器材与软件环境实验使用的器材为一台配有Intel Core i7处理器的计算机。

软件环境为Windows 10操作系统,使用C语言编译器进行代码编写和实验运行。

三、实验内容1. 流水线概述流水线是一种用于提高计算机处理器效率的技术。

它将任务划分为多个阶段,使得每个阶段都能并行地处理不同的任务。

通过将多个任务拆分并在不同的阶段同时进行,可以显著提高计算机处理速度。

2. 流水线原理流水线工作原理如下:1) 将任务划分为多个子任务,并在不同的阶段上并行执行。

2) 每个阶段的任务之间通过专门的寄存器传递数据。

3) 每个阶段的任务完成后,将结果写入寄存器,供下一个阶段使用。

4) 流水线的效果取决于各个阶段的任务执行时间,如果存在某个阶段的任务耗时较长,则可能导致整个流水线效率下降。

3. 流水线的实现实验中我们使用C语言编写一段简单的代码来模拟流水线的实现过程。

我们通过将输入的整数加1后输出,来模拟流水线的工作状态。

cinclude <stdio.h>int main() {int input[5] = {1, 2, 3, 4, 5};int output[5];int i;for (i = 0; i < 5; i++) {output[i] = input[i] + 1;}for (i = 0; i < 5; i++) {printf("%d\n", output[i]);}return 0;}上述代码将输入数组中的每个元素加1后,输出到屏幕上。

在这个过程中,我们可以将输入和输出视为流水线中的阶段,每个阶段都有固定的任务。

4. 实验结果与分析在实验中,我们输入数组为{1, 2, 3, 4, 5},运行结果如下:23456可以看到,实验结果符合我们的预期,每个输入元素都成功地加1后输出。

处理器系列之CPU流水线科普

处理器系列之CPU流水线科普

处理器系列之CPU流水线科普1989年推出的i486处理器引入了五级流水线。

这时,在CPU中不再仅运行一条指令,每一级流水线在同一时刻都运行着不同的指令。

这个设计使得i486比同频率的386处理器性能提升了不止一倍。

五级流水线中的取指阶段将指令从指令缓存中取出(i486中的指令缓存为8KB);第二级为译码阶段,将取出的指令翻译为具体的功能操作;第三级为转址阶段,用来将内存地址和偏移进行转换;第四级为执行阶段,指令在该阶段真正执行运算;第五级为退出阶段,运算的结果被写回寄存器或者内存。

由于处理器同时运行了多条指令,大大提升了程序运行的性能。

处理器一般由如下功能单元组成:取指单元译码单元执行单元Load/store单元(load用于从内存中取数据,而STORE用于存数据到内存)例外/中断单元电源管理单元流水线通常由取指、译码、执行及Load/Store等单元组成。

各单元按图所示的几个步骤循环重复自身工作。

流水线的含义:与工厂生产线类似,将一件工作分成若干个固定的工序进行。

cpu流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。

指令的每步有各自独立的电路来处理,每完成一步,就进到下一步,而前一步则处理后续指令。

(原理和生产流水线一样)CPU指令流水线根据之前描述的基础,指令进入流水线,通过流水线处理,从流水线出来的过程,对于我们程序员来说,是比较直观的。

I486拥有五级流水线。

分别是:取指(Fetch),译码(D1, main decode),转址(D2, translate),执行(EX, execute),写回(WB)。

某个指令可以在流水线的任何一级。

但是这样的流水线有一个明显的缺陷。

对于下面的指令代码,它们的功能是将两个变量的内容进行交换。

1 XOR a, b2 XOR b, a3 XOR a, b从8086直到386处理器都没有流水线。

流水线CPU技术讲解

流水线CPU技术讲解

局部性相关:数据相关
(2) I3: STA M(x),R3 ;(R3)->M(x),M(x)是存储器单元 I4: ADD R3,R4,R5 ; (R4)+(R5)->R3
第(2)组指令中,I3指令应先读出R3内容并存入存 储单元M(x),然后在I4指令中将运算结果写入R3。但 由于I4指令进入流水线,变成I4指令在I3指令读出R3内 容前就写入R3,发生WAR
(1) I1: ADD R1,R2,R3 ; (R2) + (R3)->R1 I2: SUB R4,R1,R5 ; (R1) - (R5)->R4
(2) I3: STA M(x),R3 ; R3)->M(x),M(x)是存储器单元
I4: ADD R3,R4,R5 ;
(R4)+(R5)->R3
(3) I5: MUL R3,R1,R2 ; I6: ADD R3,R4,R5 ;
(2)空间并行—— 资源重复 用多个相同部件处理多个事件。
实现方式:多处理器系统和多计算机系统或单处理器系统。
(3) 时间并行+空间并行 既采用时间并行性又采用空间并行性。
例:奔腾CPU采用的超标量流水技术。
流水线CPU的结构
现代流水线计算机系统 组成原理如左图所示。其中 CPU按流水线方式组织, 通常由三部分组成:指令部 件、指令队列、执行部件。 这三个功能部件可以组成一 个3级流水线。
流水线CPU
流水CPU
并行性概念
1.并行性的含义 同时性——指两个或者两个以上事件在同一时刻发生。 并发性——指两个或者两个以上事件在同一时间间隔内发生。
2 并行性概念
2.并行处理技术的主要形式
(1) 时间并行— 时间重叠 让多个处理过程在时间上相互错开,轮流重叠地使用

流水线指令及RISC

流水线指令及RISC

一.流水线1. 概念:处理器按照一系列步骤来执行每一条指令.典型的步骤如下:1) 从存储器读取指令(fetch).2) 译码以鉴别它是那一类指令(dec).3) 从寄存器堆取得所需的操作数(reg).4) 将操作数进行组合以得到结果或存储器地址(ALU).5) 如果需要,则访问存储器以存取数据(mem).6) 将结果写回到寄存器堆(res).并不是所有的指令都需要每一个步骤,但是,多数指令需要其中的多数步骤.这些步骤往往使用不同的硬件功能,例如,ALU 可能只在第四步中用到.因此,如果一条指令不是在前一条结束之前就开始,那么在每一个步骤内处理器只有少部分的硬体被使用. 有一个明显的方法可以改善硬件资源的使用率和处理器的吞吐量,这就是在当前指令结束之前就开始执行下一条指令.该技术被称为流水线,是在通用处理器中采用并行算法且非常有效的途径.采用上述操作顺序,处理器可以这样来组织:当一条指令刚刚执行完步骤1并转向步骤2时,下一条指令就开始执行步骤1.图1.13说明了这个过程.从原理上来说,这样的流水线应该比没有重叠的指令执行快6倍,但实际上事情并没有这么好,下面我们将会看到原因.123 指令时间图1.13 流水线的指令执行2. 流水线中的冒险要点:后一条指令要用到前一条指令。

在典型的计算机程序中经常会遇到这样的情形,即一条指令的结果被用做下一条指令的操作数.当这种情形发生时,图1.13所示的流水线操作就中断了,因为第一条指令的结果在第二条指令取操作数时还没有产生.第二条指令必须停止,直到结果产生为止.这是流水线的行为如图1.14所示.这是流水线的”写后读”冒险(hazard).1.2.图 1.14 先写后读的流水线冒险转移指令更会破坏流水线的行为,因为后续指令的取指步骤受到转移目标计算的影响,因而必须推迟.不幸的是,当转移指令正在被译码时,在它被确认为是转移指令之前,后续的取指操作就发生了.这样一来,读取到的指令就不得不丢弃.如果转移目标计算是在图1.13中流水线的ALU阶段完成的,那么,在得到转移目标之前已经有3条指令按照原有的指令流读取(见图 1.15).如果有可能,最好早一些计算转移目标,尽管这可能需要专门的硬件.如果转移指令具有固定的格式,那么可以(也就是说在确认该指令是转移指令之前)在dec阶段预测计算转移目标,从而将转移的执行时间减少到单个周期.但是要注意,由于条件转移与前一条指令的条件码结果有关,在这个流水线中还会有条件转移的冒险.一些RISC体系结构(尽管不是ARM)规定,不管是否进行了转移,转移之后的指令都要执行.这个技术称为延迟转移.1 (转移)2345(转移目标)指令时间图1.15 流水线的转移行为3.流水线效率尽管有些技术可以减少这些流水线问题的影响,但是,不能完全消除这些困难.流水线越深(就是流水线的级数越多),问题就说严重.对于相对简单的处理器,使用3~5即流水线效果会更好.但是,超过了这个级数,收益递减的法则开始生效,增加的成本和复杂度将超过收益.例:ARM7 3级流水线ARM9 是5级ARM10是6-7级StrongArm是5级显然,只有当所有指令都依相似的步骤执行时,流水线才能带来好处.如果处理器的指令非常复杂,每一条指令的行为都与下一条指令不同,那么就很难用流水线实现.1980年,因为有限的硅资源,有限的设计资源,以及设计一个复杂指令集的流水线的高度复杂性,当时的复杂指令集微处理器没有采用流水线.二.精简指令计算机1.RISC体系结构1)固定的(32位)指令长度,指令类型很少.而CISC处理器指令集的长度一般可变,指令类型也很多.2)Load-Store结构,数据处理指令访问寄存器,与访问存储器的指令是分开的.而CISC处理器一般允许将存储器中的数据作为数据处理指令的操作数.3)由32个32位寄存器构成大的寄存器堆(register bank),其中所有的寄存器都可以用于任何用途,以使Load-Store结构有效的工作.虽然CISC寄存器集也加大了,但是没有那么大,而且大都是不同的寄存器用于不同的用途(例如,Motorola公司MC68000的数据寄存器和地址寄存器).这些差别极大的简化了处理器的设计,使设计者在实现体系结构时可以采用以下这些对提高原型机性能由很大作用的,组织方面的特点.2、RISC的组织@流水线执行.而CISC处理器即使有,也只允许在连续指令间有极少的重叠(尽管它们现在允许).@单周期执行.而CISC处理执行1条指令一般需要多个时钟周期.3、R ISC的优点.4)管芯面积小.简单的处理器需要的晶体管少,需要的硅片面积也小.因此,整个CPU在工艺技术发展的较早阶段即可在一个芯片内.一旦技术发展超过这一阶段,RISC CPU就能剩下更多的面积用于实现可以提高性能的功能部件,例如高速缓存,存储器管理和浮点硬件等等.5)开发时间短简单的处理器会占用较少的设计力量,因而设计费用低.它还会更好地投放市场时的工艺技术相适应(因为开发周期越短,越容易在开发时预测工艺技术的发展).6)性能高.这个优点比较微妙.前面两条优点容易接受,但看看我们周围,高性能总要通过不断增加复杂度来实现,说RISC有高性能的优点有些使人难以接受.可以来这样看这个问题:较小的东西具有较高的自然频率(昆虫煽动翅膀的频率高于小鸟,小鸟山东翅膀的频率高于大鸟等等),所以,简单的处理器应该容许较高的时钟频率.让我们来设计一个复杂的处理器,但开始时先设计一个简单的,然后每次增加一条复杂的指令,都会使某些高级的功能更有效率,但是,它也会降低所有指令所用的时钟频率.我们可以度量对于典型程序总的得失.当我们这样做的时候,会发现所有复杂的指令都使程序执行变慢了.因此,我们坚持最初的简单处理器.使用 3 阶段流水线的例子。

计算机组成原理基础知识流水线技术和超标量处理器

计算机组成原理基础知识流水线技术和超标量处理器

计算机组成原理基础知识流水线技术和超标量处理器计算机组成原理基础知识:流水线技术和超标量处理器计算机组成原理是指计算机硬件的基本组成和工作原理。

在计算机科学与技术领域,流水线技术和超标量处理器是两个重要的概念。

本文将介绍这两种技术的基本原理和应用。

一、流水线技术流水线技术是指将一个复杂的操作分解成多个简单的子操作,并将这些子操作连续地执行,以提高计算机的指令执行效率。

在传统的自顶向下的设计方法中,计算机硬件主要包括控制器、运算器等单一功能模块,而在流水线技术中,计算机硬件被划分成多个阶段,每个阶段执行一个特定的功能子模块。

经典的流水线包括取指、译码、执行、访存和写回等阶段。

在取指阶段,计算机从存储器中读取指令;在译码阶段,计算机对指令进行解码并读取相应的操作数;在执行阶段,计算机执行相应的操作;在访存阶段,计算机对数据进行读写操作;在写回阶段,计算机将执行结果写回到寄存器或存储器。

流水线技术的优点是可以充分利用计算机硬件资源,提高指令的并行执行程度。

但是,流水线技术也存在一些问题,例如数据的相关性和冒险问题,需要通过一些技术手段来解决。

二、超标量处理器超标量处理器是一种在流水线技术基础上的改进方案。

传统的流水线技术中,每个阶段只能执行一个指令,而超标量处理器允许在同一个时钟周期内执行多个指令,以进一步提高计算机的执行效率。

超标量处理器主要依靠两个关键技术来实现多指令并行执行:乱序执行和动态调度。

乱序执行是指根据指令之间的依赖关系,按照合理的顺序执行指令,而不是按照指令在程序中的顺序执行。

动态调度是指通过硬件对指令进行调度,在不改变程序语义的前提下,尽可能地重排指令的执行顺序,以提高指令的并行度。

超标量处理器的工作原理可以简单描述为:在取指阶段,计算机从存储器中读取多个指令;在译码阶段,计算机对这些指令进行解码;在执行阶段,计算机并行执行多个指令;在访存阶段,计算机同时进行多个数据的读写操作;在写回阶段,计算机将执行结果写回到寄存器或存储器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 这对应“真数据相关”,为了确保j可以得到 正确的i值,必须保持程序的顺序。
i: DSUB R1,R2,R3 j: DADD R4,R1,R3
17
写后写冲突(WAW: Write After Write)
❖ 在 i 写入之前,j 先写。最后写入的结果 i 是 错误的。
❖ 这对应“输出相关”,寄存器换名技术可以 消除
❖ 结构冲突(资源冲突):流水线中多条指令在同一 时钟周期内争用同一功能部件的现象。即因硬件资 源满足不了指令重叠执行的要求而发生的冲突。
❖ 常见的导致结构相关的原因: 功能部件不是完全流水或者资源不够用。 例如访存冲突
9
结构冒险
10
2.2 结构冒险的解决办法
❖ MIPS指令集是为流水线设计的,在设计流水 线过程中能够很容易的避免结构冒险。
❖ 流水线的描述:最常用的方法是时间-空间图
横坐标:表示时间,即各个任务在流水线中所 经过的时间
纵坐标:表示空间,即流水线的各个子过程, 也称为级、流水线深度(Stage)
3
流水线时间空间图
4
❖ 流水线技术应用到处理器中就是采用流水线 方式执行指令。一个MIPS指令包包含五个处 理步骤: 1.取指令周期(IF) 2.指令译码/读寄存器周期(ID) 3.执行操作/计算地址(EX) 4.从数据存储器中读取操作数(MEM) 5.将结果写回寄存器堆(WB)
5
采用相同的功能模块,指令顺序执行和按照流水线
技术执行,在时间上可以看出流水线指令的执行速
度提高了4倍。
6
流水线的基本作用
流水线增大了CPU的指令吞吐量—即单位时 间执行指令的条数,但是它未减少指令各自 的执行时间。实际上流水线技术要对流水线 附加一些控制,因而了增加开销,使单条指 令执行时间略有增加。吞吐量的增大意味着 程序运行的更快,总的执行时间变短,尽管 没有一条指令的执行变快。
法指令写回寄存器堆时才可以执行指令,浪 费了时间。转发技术:在加法指令在ALU运 算一结束就将结果送给减法指令的输入项。 这样从内部资源中直接提前得到缺少的运算 项的过程叫做转发。
20
在原始的数据通路中用流水线寄存器将流水线各部分分 开,这些寄存器可以存储所有穿过它的数据,寄存器的宽度 都足够大。目前流行的有128位,97位,64位。
令需要等待DADD在WB阶段写回数据后才
可以执行。
15
2.4 数据冒险的解决办法
❖ 根据指令中读写访问的顺序,可以将数据冒 险分为三类。分别是:
❖ 写后读(RAW) ❖ 写后写 (WAW) ❖ 读后写 (WAR)
16
写后读冒险(RAW: Read After Write)
❖ 在 i 写入之前,j 先去读。j 会错误的获取旧 值。
7
2.流水线的冒险
❖ 尽管流水线可以带来处理器性能上的提高,但是不 是所有的指令就直接可以进行流水线操作,在指令 执行中的下一个周期中的下一条指令不能执行,这 种情况叫做冒险。有三类冒险:
1.结构冒险 2.数据冒险 3.控制冒险 流水线中的冒险会引起流水线停顿,部分指令就要延期执行。
8
2.1 结构冒险
18
读后写冲突(WAR: Write After Read)
❖ 在 i 读之前,j 先写。i 读出的内容是错误的! ❖ 这对应“反相关” ,寄存器换名技术可以消

i: DSUB R4,R1,R3
j: DADD R1,R2,R3
k: DMUL R6,R1,R7
Can’t happen in MIPS 5 stage pipeline because:
❖ 但是流水结构中只有一个存储器时,两条指 令同时在一个存储器中预取指令就会发生结 构冒险。
11
为消除资源冲突而插入的流水线气泡
(Bubble)
时间(时钟周期)
1
2
3
4
5
6
7
8
load M
Reg
M
Reg
ALU
ALU ALU ALU
指令 i+1
M
Reg
M
Reg
指令 i+2
M
Reg
M
Reg
暂停
气泡
气泡
处理器流水线的 概念和相关技术
1
流水线技术
❖1.流水线的概念 ❖2.流水线的冒险和冒险的解决办法 ❖3.多发射处理器
2
1.流水线的概念
❖ 流水线技术:
把一个重复的过程分解为若干个子过程,每个子过 程由专门的功能部件来实现。将多个处理过程在时 间上错开,依次通过各功能段,这样,每个子过程 就可以与其他子过程并行进行。
i: DSUB R1,R4,R3 j: DADD R1,R2,R3 k: DMUL R6,R1,R7
Can’t happen in MIPS 5 stage pipeline because:
- All instructions take 5 stages, and
- Writes are always in stage 5
气泡
气泡
气泡
指令 i+3
M
Reg
M
12
解决办法二
❖ 设置相互独立的指令存储器和数据存储器或 设置相互独立的指令Cache和数据Cache。
IF 段 IM
ID 段 Reg
g
ALU
流水线寄存器
13
2.3 数据冒险
❖ 一条指令必须等到另一条指令的完成而造成 的流水线暂停的情况叫做数据冒险。形如: add $s0, $t0, $t0 sub $t2, $s0 $t3 加法指令需要到WB阶段后才写回结果,减法 指令此时才可以继续执行。在不任何干预的 情况下,流水线白白浪费了三个时钟周期。
14
时间(时钟周期)
1
2
3
DADD R1,R2,R3 IM
Reg
4
5
6
DM
Reg
ALU ALU ALU ALU
DSUB R4,R1,R5
IM
Reg
DM
Reg
XOR R6,R1,R7
IM
Reg
DM
AND R8,R1,R9
IM
Reg
OR R10,R1,R11
IM
Reg
AND,OR操作不会暂停,但是DSUB,XOR指
- All instructions take 5 stages, and
- Reads are always in stage 2, and 读后读RAR不是数据冒险,
- Writes are always in stage 5
1读9 操作不改变值
转发(旁路)方式解决数据冒险
形如:add $s0, $t0, $t0 sub $t2, $s0 $t3,减法指令要等到加
相关文档
最新文档