第二章 流水线处理器.docx
- 文档编号:30040725
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:56
- 大小:125.33KB
第二章 流水线处理器.docx
《第二章 流水线处理器.docx》由会员分享,可在线阅读,更多相关《第二章 流水线处理器.docx(56页珍藏版)》请在冰豆网上搜索。
第二章流水线处理器
第二章流水线处理器
2.1流水线基本知识
2.2流水线处理器设计
2.3深度流水线处理器
2.4总结
2.5习题
流水是一种不需要增加大量的硬件就可以提高系统吞吐能力的强有力的实现技术。
20世纪60年代早期,在设计高端的大型主机时首先引入了流水线技术。
在IBM7030(又被称作可延伸的计算机)中,首先引入了指令流水线。
后来,在CDC6600中,同时使用了流水线技术与多功能部件。
20世纪80年代,流水线技术成为RISC计算机的处理器设计的基础。
RISC计算机中的许多技术直接或间接地与进行有效地流水处理相关。
从那时起,流水线技术被有效地应用到CISC处理器中。
Inteli486是IA32体系结构的第一个流水线实现。
采用了流水线技术的Digital的VAX以及Motorola的M68K体系结构同样成功地实现了商业化。
目前在设计指令集处理器时,广泛采用了流水线技术。
本章主要讨论(标量)流水线处理器的设计。
与流水线处理器设计相关的许多方法与技术,例如用于危险检测与解决的流水线互锁机制,是设计超标量处理器的基础。
目前的趋势是设计非常深的流水线。
流水线的深度已经从不足10增加到多于20。
为获得非常高的时钟频率,深度流水线是必须的。
这已经成为一项非常有效的措施,以获得更高的处理器性能。
有迹象表明,这一趋势将会继续。
2.1流水线基本知识
这一节讲述流水线发展的动力以及基本原则。
从历史上讲,有两种主要类型的流水线:
算术流水线与指令流水线。
本书的重点是指令流水线,我们首先来分析一个算术流水线的例子。
算术流水线很容易地阐明了一系列理想化的假设,这些假设是流水线设计的基本原则。
我们将这些理想化的假设称之为流水线理想。
在这些理想化的假设与指令流水线的实际情形之间存在着差异,也正是研究这些差异使得流水线处理器设计变得如此有意义。
2.1.1流水线设计
本小节介绍流水线设计的基本概念,并且介绍流水线的动力以及局限性,描述了由PeterKogge提出的一个从硬件设计角度优化的流水线理论模型。
2.1.1.1动力
引入流水线的主要动力是通过增加很少的硬件来获取系统吞吐能力的提高。
一个系统的吞吐能力,或者说带宽,用单位时间内完成的任务数目来度量,它标志着系统的性能。
对于一个一次处理一个任务的系统,其吞吐能力P等于1/D,D是这个任务的延迟或者系统对于与这个任务性能相关的延迟。
若有许多任务需要使用相同的系统,则采用流水线可以增加一个系统的吞吐能力。
对于每个任务来讲,实际的延迟仍然保持不变,甚至可能稍许增加。
流水线需要将系统分作多个级,并且在各级之间增加缓存。
这些级以及级间的缓存构成了流水线。
由原系统进行的计算被分作k个子计算,分别由流水线的k级进行计算。
只要上一个任务已经经过了第一级,一个新的任务便可以进入流水线。
因此,流水线可以在每隔D/k单位时间启动一个新任务,而不是每隔D单位时间,其中k是流水线的级数,并且在流水线中对k个计算的处理是重叠进行的。
假设要处理的任务的数目非常大,那么一个采用流水线技术的系统的吞吐能力有潜力达到一个未采用流水线技术的系统的k倍。
通过在一个k级的流水线中简单地增加一些新的缓存,可以获得潜在的k倍的性能提高,这正是进行流水线设计的主要吸引力。
图2-1给出了在一个k级流水线系统中可以潜在地获得吞吐能力的k倍增加。
图2-1在一个k段流水线系统中吞吐能力增加的潜力为k倍
到目前为止,我们假定在级间增加缓存不会导致额外的延迟,事实并非如此。
图2-2(a)给出了被设计用在IBM360/91的Earle锁存器,它用作流水线乘法部件中进位存储加法器的级间缓存。
在Earle锁存器中,当时钟C=1时,输出Z跟随输入D发生变化。
当时钟变低,D的值通过锁存回路被锁存在Z,随后输出Z对D的进一步变化不敏感。
在输入D处,需要适当的保持时间,以确保正确的锁存。
中间的与门确保操作不受假脉冲的影响,由这个与门表示的结果项中“包含”一个潜在的危险。
这个危险是一个寄生脉冲,它是由于多个信号同时发生变化产生的竞争所造成的。
或门的顶部与底部的输入可能同时朝相反的方向变化,在这种情况下,若或门没有中间(冗余)的输入,一个寄生脉冲(危险)便有可能在或门的输出端出现。
Earle锁存器有不受假脉冲影响的良好特性。
此外,Earle锁存器能够“集成”到逻辑功能中而不产生额外的门延迟。
图2-2(b)给出了在上一个两级的与-或组合逻辑电路中集成延迟功能,但不增加额外的门延迟。
图2-2(b)中的电路完成与图2-2(a)中电路的逻辑功能相同,没有因为锁存而增加两个额外的门延迟。
门的输入端数增加1会稍微增加通过这些门的延迟。
图2-2Earle锁存器以及在不增加额外门延迟的情况下将其集成到逻辑中:
(a)跟随组合逻辑的Earle锁存器;(b)与组合逻辑集成的Earle锁存器
2.1.1.2限制
由于流水线设计的性能的提高与其深度,即流水线的级数成比例,好像最好的设计总是使一个流水线系统的级数最大化。
然而,由于时钟的制约,对一个原先的计算能够分成多细的流水线级数是有物理限制的。
流水线的每一级可以看作是组合逻辑F的一个片段,随后是一系列的锁存L。
信号必须通过F传输,并在L处锁存。
假设
是通过F的最大传输延迟,也就是通过最长信号路径的延迟;设
是通过F的最小传输延迟,即通过最短信号路径的延迟。
设
是正确的时钟所需的额外时间。
延迟
可以包括为确保正确的锁存所必须的建立与保持时间,以及潜在的时钟偏移,也就是在不同的锁存器上时钟边沿到达时间不同的最大偏差。
如果第一组信号
在
时刻加载到这一段的输入端,则F的输出必须在
时有效。
为使L的锁存正确,F的输出端的信号必须持续有效到
。
当第二组信号
在
时刻加载到F的输入端,至少需要到
时锁存器L才能感觉到这些信号。
为了保证第二组信号不会影响第一组信号,需要
(式2-1)
它意味着
最早到达锁存器的时间不能早于为确保
正确锁存的时间。
这个不等式可以写作
(式2-2)
其中
实际上是最小的时钟周期T。
因此,时钟周期T必须大于
,并且最大的时钟频率不能超过
。
根据前面的分析,两个因素制约着时钟频率。
一个是通过逻辑电路的最大与最小广播延迟的差别,即
。
另一个是为保证正确的时钟所需的额外时间,即
。
如果所有信号的传播路径的长度相同,则第一个因素可以去除。
这个可以通过填充短路径来实现。
因此,
接近于0。
第二个因素是由于要在流水段之间锁存结果引起的。
正确的锁存要求信号通过一个反馈回路来传播,并且在这个回路中信号要稳定。
影响
的另一个因素是最坏情况的时钟偏移。
由于为所有的锁存器产生并分配时钟信号,时钟信号到达不同锁存器的时间会有细微差别。
在一个全同步系统中,这个最坏情况的时钟偏移必须在时钟周期内解决。
最终,一个同步系统的流水深度取决于锁存所需的最小时间,以及在时钟分布的网络中与延迟相关的不确定性。
2.1.1.3折衷
时钟限制决定了流水深度的最终物理上限。
除了这一上限之外,若考虑成本或流水的额外开销,最大的流水深度并不一定是最优设计。
在一个流水线系统中,必须在成本与性能之间进行折衷。
PeterKogge提出了一个流水线设计中的成本/性能折中模型,总结如下。
成本与性能的模型均给出了。
一个非流水线设计的成本记做G。
这个成本可以是门的个数,晶体管数目,或者是硅的实际开销。
一个k段的流水线设计的成本C是
(式2-3)
其中,k是流水线的段数,L是增加每个锁存的成本,G是原先非流水线设计的硬件成本。
根据这个成本模型,流水线的成本C是流水线深度k的一个线性函数。
基本上,流水线的成本随着流水线的深度线性上升。
假设非流水线系统的延迟是T,则非流水线设计的性能是
,即计算速率。
流水线设计的性能可以模型化为
,其中T是原先非流水线设计的延迟,S是由于增加了锁存器所造成的延迟。
假设原先的延迟T可以均匀地分成k段,
是与每一段相关的延迟,即流水线的时钟周期。
因此,
等于时钟频率,即流水线设计的吞吐率。
于是,流水线设计的性能是
(式2-4)
注意到P是k的一个非线性函数。
根据以上关于成本与性能的模型,成本与性能之比的表达式是
(式2-5)
这个表达式可以重写为
(式2-6)
图2-3画出了两族G,L,T,S的曲线。
图2-3流水线设计的性能与成本折中模型
式2-6表明成本与性能之比是k的函数,对它求一阶导数并令其为0,得到一个k值,将产生最小的成本性能比。
式2-7中给出的k值是根据其它参数得出的最优流水线深度。
(式2-7)
根据上面关于k的最优值的表达式,一个
的流水线设计可称作是“欠流水”,因为增加流水线的深度是有益的,所增加的成本可以带来性能的提高。
另一方面,
是一个“过流水”的设计,因为流水线成本的增加导致其性能的下降。
前述的折中模型仅考虑硬件设计的问题,没有涉及流水线的动态性能,或者说没有考虑所要完成的计算。
下面将讨论这些问题。
2.1.2算术流水线的例子
有两种主要的流水线:
算术流水线与指令流水线。
指令流水线设计是本章的重点,我们先来看一个算术流水线的例子。
算术流水线清楚地说明了流水线的有效性,而不必涉及在指令流水线设计中的一些复杂问题。
这些复杂问题将在本章的后续小节中讨论。
2.1.2.1浮点乘法
以一个浮点乘法器的流水线设计作为例子。
这个“过时的”板级设计是从ShlomoWaser与MikeFlynn的一本经典的课本中节选的。
(尽管这个设计是1980年的技术,然而它仍然是说明算术流水线设计的一个有效的工具。
)这个设计采用64位的浮点模式,指数部分e采用8位,尾数部分m采用57位(包括一个隐藏位)。
下面是本设计中浮点乘算法的实现。
1.检查操作数中是否有为0的,若有,则立即令结果为0。
2.将两个特性(指数的物理位模式)相加,并且为超过128的偏移进行校正,即
。
3.完成两个尾数
与
的定点乘法。
4.对尾数的乘积进行规格化,即将其左移一位并且将阶减1。
(规格化表示的尾数的首位不能为0)。
5.在第一个保护位(尾数的最低有效位的右边一位)上加1,以对结果进行舍入。
这样可以进行有效的舍入。
若尾数上溢,则尾数必须右移一位,并且阶增加1,以保证尾数的规格化表示。
图2-4给出了浮点乘法器的非流水设计的功能框图。
输入锁存器存储了将要进行乘法的两个操作数。
在下一个时钟,两个数的乘积将保存在输出锁存器中。
图2-4一个非流水的浮点乘法器
定点尾数乘法器是本设计中最复杂的模块,它由三个子模块组成,分别负责部分积的生成,部分积的化简以及最终的化简。
每个子模块的复杂性,根据集成电路(IC)的数目,以及传输时延(以纳秒ns计),可以得到。
●生成部分积。
采用
的硬件乘法器可以同时生成部分积。
为生成所有的部分积,需要34个这样的
的乘法器。
延迟是125ns。
●部分积的化简。
一旦所有的部分积都产生了,必须对它们进行相减或求和。
一个称作(5,5,4)计数器的求和电路可以用来将两个各有5位的列简化为一个4位的和。
用一个延迟为50ns的
ROM可以实现(5,5,4)计数器。
需要三级(5,5,4)计数器来对所有的部分积进行化简。
因此总共需要72个这样的
ROM,总的时延为150ns。
●最后的化简。
一旦所有的部分积被化简为两个部分积,可以采用快速超前进位加法器(CLA)来进行最后的化简,以产生最终结果。
这一最终化简步骤需要16个带CLA的4位加法器芯片以及5个4位CLA单元。
总共需要21个IC芯片,时延为55ns。
尾数部分需要额外的两个模块,一个是用以完成规格化的移位器(两个芯片,20ns时延),另一个是用来完成舍入的递增器(15个芯片,50ns的时延)。
指数部分的加/减模块需要4个芯片,它们的延迟不重要,因为其不在关键的时延路径上。
为实现输入以及输出锁存,各需要17个以及10个芯片。
表2-1总结了非流水线设计的总的芯片数目以及各模块中的关键时延。
根据表2-1,浮点乘法器的非流水线设计需要175个芯片,其时钟频率可为2.5MHz,时钟周期为400ns。
这表明非流水线设计可以达到2.5MFLOPS(每秒百万次浮点操作)的吞吐能力。
表2-1非流水线浮点乘法器设计中
模块的芯片数以及关键延迟
模块
芯片数
延迟
生成部分积
34
125ns
简化部分积
72
150ns
最后的简化
21
55ns
规则化
2
20ns
圆整
15
50ns
指数部分
4
---
输入锁存
17
---
输出锁存
10
---
总计
175
400ns
2.1.2.2流水线浮点乘法器
浮点乘法器的非流水线设计可以采用流水来提高其吞吐能力。
在这个例子中,我们假定在子模块中没有流水,即划分流水线段的最细粒度为子模块一级。
现在来检查与关键时延路径相关的每个(子)模块的时延。
这些时延在表2-1的第三列中给出。
部分积化简子模块有最长的时延,150ns,这一时延决定了流水线段中的时延。
关键路径上的5个(子)模块可以划分为3个比较均匀的段,其时延分别为125ns(部分积生成),150ns(部分积化简),125ns(最终化简,规格化以及舍入)。
图2-5中给出了这个三段流水线设计。
在决定流水线设计的实际时钟频率时,必须考虑时钟要求。
假定流水段之间采用边沿触发的寄存器进行缓存,则需要在150ns的段延迟的基础上增加17ns的时钟沿到寄存器输出端的时延,以及5ns的建立时间。
这将导致最小的时钟周期为172ns。
因此,新的流水线设计需要时钟频率为5.8MHz,而不是2.5MHz。
中表示吞吐能力是原来的2.3倍。
然而,需要注意完成每个乘法所需时间稍许增加,从400ns变为516ns。
为流水线设计所额外增加的硬件是流水线各段之间用于缓存的边沿触发芯片。
在原来175个IC芯片的基础上,需要另外的82个芯片。
采用芯片个数来衡量硬件复杂性,总共257个IC芯片说明硬件复杂性增加了45%。
这个45%的硬件成本的增加使得性能提高了130%。
显然,这个浮点乘法器的3段流水线设计优于原来非流水线设计。
这个例子采用现成的部件来实现板级设计。
鉴于今天的芯片技术,全部设计可以在一块芯片上用一个小模块很容易地实现。
尽管浮点乘法器的板级实现被认为过时了,上例的目的是采用一个已出版的具有实际延迟与硬件成本参数的设计来简单地表明流水线的有效性。
事实上,图2-3中上面的曲线反映了本例中的参数。
图2-5一个流水线浮点乘法器
2.1.3流水线理想
回想一下,设计k段流水线的目的是为了获得吞吐能力增加
倍,如图2-1所示。
然而,在前例中,3段流水线的浮点乘法器的吞吐能力仅增加了1.3倍。
吞吐能力没有增加2倍的主要原因是一个k段流水线设计能够使吞吐能力提高
倍是一种理想情形,它建立在三个理想假设上,我们称之为流水线理想。
对流水线理想的理解对理解流水线设计是至关重要的。
在实际的流水线中偏离这个理想是不可避免的,这也使得流水线设计变得复杂。
为处理这个理想与现实之间差别的解决方案构成了流水线设计中有趣的技术。
流水线的三个理想是:
1.均衡的子计算:
要完成的计算可以均匀地分割为延迟相同的子计算。
2.同一的计算:
在一个数量很大的输入数据集上重复完成相同的计算。
3.独立的计算:
所有相同计算的重复是相互独立的。
2.1.3.1均衡的子计算
流水理想的第一点表明要流水的计算可以均匀地划分成k个延迟相同的子计算。
这意味着原先的设计可以均匀地划分为k个平衡(即具有相同的延迟)的流水段。
若原先计算的延迟,即非流水设计的时钟周期是T,则一个k段的流水线设计的时钟周期正好是
,即k段中每一段的延迟。
鉴于这一假设,由于时钟频率成为原来的k倍,因此吞吐能力也成为原来的k倍。
在实际的设计中,理想的假设不一定成立。
将计算划分为绝对平衡的段是不太可能的。
在我们的浮点乘法器例子中,原计算的400ns的延迟被划分为3段,其延迟分别为125ns,150ns,125ns。
显然原来的延迟没有被均匀地分作三个平衡的段。
由于一个流水线设计的时钟周期由延迟最长的段决定,实际上,延迟较短的段的效率将会受损。
在我们的例子中,第一段与第三段各有25ns处于无效,我们将这种流水段内的无效称作流水段的内部碎片。
由于这种内部碎片,完成同一计算的总的延迟将从T增加到
,流水线设计的时钟周期也不再是
而是
。
在我们的例子中,完成三个子计算需要450ns,而不是原来的400ns,时钟周期也不是133ns(400/3ns)而是150ns。
另一个隐含的假设是在流水段之间增加的缓存没有导致额外的延迟,因此不需要额外的延迟来确保流水段时钟的正确。
在实际设计中,这一假设不一定成立。
在我们的例子中,需要额外的22ns来保证流水段时钟的正确,这使得3段流水线设计的时钟周期变为172ns。
3段流水线设计的理想时钟周期应该是133ns。
172ns与133ns的不同解释了为什么吞吐能力没有达到理想的增加2倍。
流水理想的第一点假定了两件事情:
(1)将原先的计算划分为多个子计算没有导致无效;
(2)段间缓存的引入以及时钟要求没有导致额外的延迟。
在芯片级的设计中,采用类似于Earle锁存器的锁存器可以将为保证流水时钟的正确的额外延迟降为最小。
将一个计算划分为平衡的流水段是流水线设计的第一个难题。
其目标是使各段尽可能平衡,以使内部碎片最小。
由于流水段的不平衡导致的内部碎片是偏离流水理想第一点的主要原因。
这一偏离成为一种流水开销,并且使得一个k段流水线设计的吞吐能力不能增加理想的k-1倍。
2.1.3.2同一的计算
流水理想的第二点表明在流水线中将处理多个重复的相同计算。
在多个输入数据集上重复进行相同的计算,每一次计算要求流水段提供相同的子计算的序列。
在我们的浮点乘法器例子中,这意味着许多对浮点数将进行乘法运算,并且每一对操作数将通过相同的三个流水段。
这一假设表明每一次重复的计算将使用所有的流水段。
在我们的例子中,这一点是成立的。
这一假设对于浮点乘法器的例子成立是由于这一流水线只完成一种功能,即浮点乘法。
若一个流水线被设计来完成多个功能,这一假设可能不成立。
例如,一个算术流水线可以设计来完成加法与乘法。
在一个多功能流水线中,它支持的各个功能并非需要所有的流水段。
可能为完成每个功能需要流水段的不同的子集,同时每个计算不一定需要所有的流水段。
由于数据集的序列以同步的方式经过流水线,一些数据集不需要一些流水段,因此使得这些段被闲置。
这些没有被使用或者闲置的流水段导致另一种流水无效,可被称作流水段的外部碎片。
与内部碎片相同,外部碎片是一种流水开销,在多功能流水线中应该使其最小。
在浮点乘法器的流水线例子中,没有外部碎片。
流水理想的第二点假设所有的流水段总是被利用。
撇开其隐含了没有外部碎片,这一理想假设也表明要处理许多数据集。
对于第一个数据集,其到达流水线的最后一段需要k个周期,这些周期被称作装入时间。
在最后一个数据集进入第一个流水段后,需要另外的k个周期来排空流水线。
在流水线的装入与排空期间,并非所有的流水段都是忙的。
假设要处理多个输入数据集是为了使装入与排空时间仅占总时间非常小的一部分。
因此,流水线的各段可以认为总是在忙。
事实上,流水线浮点乘法器的5.8MFLOPS的吞吐能力就是基于这一假定而得出的。
2.1.3.3独立的计算
流水理想的第三点表明流水线所处理的重复计算,或简称为计算,是独立的。
这意味着在流水段中的所有的计算是独立的,即在任何计算之间没有数据或控制依赖关系。
这一假设允许流水线以“流”方式工作,由于后一计算不必由于它们之间的依赖关系而等待前面计算的完成。
在我们的流水线浮点乘法器中,这一假设成立。
若有多对操作数进行乘法运算,一对操作数的乘法不依赖于另一个乘法的结果,则这些乘法可以被流水线以流的方式进行处理。
对于一些流水线,这一点不一定成立。
一个后来的计算可能需要一个先前计算的结果。
所有这些计算可以同时在流水段中。
若后来的计算已经进入需要结果的流水段,而先前的计算还没有到达产生所有结果的流水段,则后面的计算必须在那个流水段进行等待。
这个等待被称作流水停止。
若一个计算停止在一个流水段,则所有后续的计算可能会被停止。
流水停止导致流水段的无效,实际上这是一种动态的外部碎片,并导致流水线吞吐能力的下降。
在设计一个需要处理那些未必独立的计算的流水线时,其目标是使流水停止的量最小化。
2.1.4指令流水线
流水理想的三点是关于流水线设计的三个理想假设。
在很大程度上,算术流水线中实际情形与这些理想假设相差不大。
然而,对于指令流水线,实际与理想之间的差别很大。
正是处理这一差别使得指令流水变得有意义并且困难。
在设计流水线处理器时,这三点成为主要问题。
这里简要介绍这三个问题,在2.2节关于流水线处理器的设计中将会深入探讨。
这三个问题也提供了跟踪流水线处理器设计技术的一个良好的路线。
2.1.4.1指令流水线设计
流水线理想的三点成为设计指令流水线所希望达到的目标。
对指令的处理变为对计算的流水。
必须把这个计算划分为均匀的子计算以便使流水段平衡。
处理一条指令所用的时间称作指令周期;每个流水段所用的时间决定了机器周期。
指令周期可以认为是处理一条指令的逻辑概念。
一个有多条指令的程序涉及到对计算的重复执行。
机器周期是一个物理概念,它涉及到数字逻辑电路中存储元素的时钟,它实际上是流水段的时钟周期。
图2-6指令周期与机器周期的简单对比
我们可以认为前面的浮点乘法器是一个仅有一条指令的非常简单的处理器的例子,这条指令就是浮点乘。
指令周期涉及到一个浮点乘法的执行,见图2-6(a)。
根据功能单元的不同,可以将这个计算分为以下5个子计算。
1.生成部分积(125ns)。
2.部分积的化简(150ns)。
3.最后的化简(55ns)。
4.规格化(20ns)。
5.舍入(50ns)。
考虑到流水,将后面三个子计算合并为一个子计算。
这就生成了图2-6(b)所示的三个流水段。
图2-6(a)中的指令周期已经映射到图2-6(b)中的三个机器周期,形成了一个三段流水线设计。
我们可以将指令周期称作一个在指令系统中定义了的结构化(逻辑)原语,而机器周期是在微结构中定义了的一个机器(物理)原语。
图2-6(b)中流水线设计是图2-6(a)所定义结构的实现。
指令流水的一个主要任务可以认为是将逻辑指令周期向物理机器周期的映射。
换句话说,有指令周期所表示的计算必须划分为由流水段执行的一系列子计算。
为使这个映射或者划分有效,必须考虑流水理想的三点。
均衡的子计算。
将指令周期划分为多个机器周期可称作段的量化,必须使流水段的内部碎片最小。
若段的量化考虑不周,则引起的内部碎片将会很快降低流水的效率。
流水理想的第一点导致指令流水线的第一个问题,即需要使流水段平衡。
流水段之间越平衡,则内部碎片越少。
同一的计算。
与一个单功能的算术流水线不同,指令流水线本质上是一个多功能流水线,因为它必须处理不同类型的指令。
不同的指令类型的子计算的序列不同,因此需要不同的硬件资源。
指令流水线的第二个问题涉及到对不同类型的指令所需的不同资源进行有效的合并。
这个流水线必须能处理所有的指令类型,同时使每种类型的指令中无用或闲置的流水段最少。
这实际上就是使外部碎片最小化。
独立的计算。
另外,与算术流水线处理一系列数不同,指令流水线所处理的指令未必彼此独立。
因此,指令流水线必须由内置的机制来检查指令间的相关性,并且确保这种相关不被破坏。
为保证指令间的相关可能会导致流水线停止。
而流水线停止是一种动态的外部碎片,它降低了流水线的吞吐能力。
因此,指令流水线的第三个问题是使流水线停止最小化。
2.1.4.2指令系统的影响
在我们仔细讨论指令流水线的三个主要问题之前,先来简要介绍指令系统(ISA)对指令流水线的影响。
另外,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二章 流水线处理器 第二 流水线 处理器