计算机科学中的流水线技术.docx
- 文档编号:26667291
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:34
- 大小:116.76KB
计算机科学中的流水线技术.docx
《计算机科学中的流水线技术.docx》由会员分享,可在线阅读,更多相关《计算机科学中的流水线技术.docx(34页珍藏版)》请在冰豆网上搜索。
计算机科学中的流水线技术
摘要
流水线技术是提高系统吞吐率的一项强大的实现技术,并且不需要大量重复设置硬件。
20世界60年代早期的一些高端机器中第一次采用了流水线技术。
第一个采用指令流水线的机器是IBM7030(又称作Stretch计算机)。
后来的CDC6600同时采用了流水线和多功能部件。
到了20世纪80年代,流水线技术成为RISC处理器设计方法中最基本的技术之一。
RISC设计方法的大部分技术都直接或者间接以提高流水线性能为目标。
从此以后,流水线技术也被有效地应用到CISC处理器的设计中。
Inteli486是IA32体系结构中的第一个流水线实现。
Digital的VAX和Motorola的M68K的流水线版本在商业上也取得了成功。
流水线技术是当前指令集处理器设计中广泛采用的技术。
在这里我们将重点放在(标量)流水线处理器的设计。
流水线处理器设计中的许多方法和技术,例如用于检测和化解相关的流水线互锁机制,都是标量处理器设计的基本方法。
当前的趋势是朝着超深度流水线的方向发展。
流水线的深度已经从不到10发展到超过20.深度流水是获得高速始终频率的必要条件,这是提高处理器性能的一个非常有效的方法。
有迹象表明。
这种趋势还将持续下去。
[关键词]流水线技术猜测法中断处理吞吐率指令重叠加快短循环程序的处理
Abstract
Pipelinetechnologyistoimprovethesystemthroughputofapowerfultechnology,anddoesnotrequirerepetitivesethardware.The20worldearly60'ssomehigh-endmachinesusedthefirstpipelinetechnology.ThefirstuseoftheinstructionpipelinemachineisIBM7030(alsocalledStretchcomputer).LaterCDC6600atthesametimelinesandmultiplefunctionalcomponents.
Inthenineteeneighties,pipelinetechnologytobecometheRISCprocessordesignmethodisoneofthemostbasictechniques.ThedesignmethodofRISCmostofthetechniquesaredirectlyorindirectlytoimproveperformanceasthegoalline.Sincethen,assemblylinetechniqueshavealsobeenappliedeffectivelytotheCISCprocessor.Inteli486isIA32architectureisthefirstinapipelinedimplementation.DigitalVAXandMotorolaM68Kpipelinedversionalsoachievedsuccessinbusiness.
Pipelinetechnologyisthecurrentinstructionsetprocessoriswidelyusedinthedesignoftechnology.Herewewillfocusonthe(scalar)pipelinedprocessordesign.Apipelinedprocessorinthedesignofmanymethodsandtechniques,forexample,usedtodetectandresolvetherelevantpipelineinterlockmechanism,isascalarprocessordesignmethod.
Thecurrenttrendistowardssuperdepthlinedirection.Pipelinedepthhaslessthan10tothedevelopmentofmorethan20depthofwaterisalwaysnecessarytoobtainhighspeedfrequency,whichistoimprovetheperformanceofaveryeffectivemethod.Therearesigns.Thistrendwillcontinue.
Keywords:
Pipelinetechnologyforecastmethodofinterruptprocessingthroughputinstructionoverlappingaccelerateshortcycleprogramprocessing
目录
第一章绪论3
1.1现代RISC中的流水线技术3
1.1.1超流水线技术3
1.1.2超标量技术4
1.1.3流水技术在Pentium系列微处理器中的实现4
第二章流水线基础7
2.1流水线概念7
2.1.1指令重叠7
2.1.2流水线8
2.1.3流水线的特点9
2.1.4流水线的分类10
2.2流水线的主要性能11
2.2.1吞吐率12
2.2.2加速比和效率12
第三章指令流水线设计15
3.1流水线理想假设15
3.1.1一致的运算分量15
3.1.2重复的运算16
3.1.3独立的运算17
3.2指令流水线18
3.2.1指令流水线设计18
3.2.2指令集体系结构的影响19
3.2.3流水线分级的考虑20
3.3流水线处理器设计21
3.3.1保持流水段均衡21
3.3.2统一指令类型22
3.3.3减少流水线停顿26
第四章流水线中各种相关及中断处理27
4.1流水线中相关27
4.2资源相关27
4.3数据相关28
4.3.1指令相关28
4.3.2主存空间操作数相关29
4.3.3通用寄存器组相关29
4.4控制相关31
4.4.1猜测法31
4.4.2加快和提前形成条件码32
4.4.3采取转移延迟32
4.4.4加快短循环程序的处理32
第五章中断处理与流水线调度35
5.1中断处理35
5.2流水线调度35
第六章总结与展望39
致谢41
参考文献42
第1章绪论
流水线技术是提高系统吞吐率的一项强大的实现技术,并且不需要大量重复设置硬件。
20世界60年代早期的一些高端机器中第一次采用了流水线技术。
第一个采用指令流水线的机器是IBM7030(又称作Stretch计算机)。
后来的CDC6600同时采用了流水线和多功能部件。
到了20世纪80年代,流水线技术成为RISC处理器设计方法中最基本的技术之一。
RISC设计方法的大部分技术都直接或者间接以提高流水线性能为目标。
从此以后,流水线技术也被有效地应用到CISC处理器的设计中。
Inteli486是IA32体系结构中的第一个流水线实现。
Digital的VAX和Motorola的M68K的流水线版本在商业上也取得了成功。
流水线技术是当前指令集处理器设计中广泛采用的技术。
在这里我们将重点放在(标量)流水线处理器的设计。
流水线处理器设计中的许多方法和技术,例如用于检测和化解相关的流水线互锁机制,都是标量处理器设计的基本方法。
当前的趋势是朝着超深度流水线的方向发展。
流水线的深度已经从不到10发展到超过20.深度流水是获得高速始终频率的必要条件,这是提高处理器性能的一个非常有效的方法。
有迹象表明。
这种趋势还将持续下去。
1.1现代RISC中的流水线技术
1.1.1超流水线技术
超级流水线(超级流水线集)技术是用在一个并行处理技术。
在他稀疏的水,增加的数量和提高频率,从而在每个机器周期完成一个或2个浮点操作。
其实质是以时间换取空间。
超纯水机的特点是在所有的功能单位只使用水,并具有更高的时钟频率和更深的水的深度。
1.1.2超标量技术
超标量(SuperScalar)技术是RISC采用的有一种处理技术。
它通过内装多条流水线来同时执行多个处理。
其实质就是以空间换取时间。
流水线实现中的问题及解决:
这是一个问题的连续流动,这似乎并没有流下,从而获得更高的效率。
停止的原因很多,除了编译生成的目标程序可以发挥结构的作用,水,或存储系统可以提供一个连续流动所需的指令和操作数,基本上还出现相关,转移和中断指令相关的。
解偏相关有2种方法:
后退方法和路径的方法;解决全球相互关系有三种方法:
猜测转移,加快推进形成条件代码,加快短循环程序处理。
1.1.3流水技术在Pentium系列微处理器中的实现
流水线技术早在英特尔凌动芯片已经实现。
奔腾系列处理器产品是一个高级的超标量处理器。
它是建筑在一般整数流水线和一个浮点单元在线,这使处理器执行整数指令。
一对透明的软件动态分支预测机制可以使分支流水线堵塞最小化。
奔腾处理器可以在一个时钟周期内完成2指示,流水线完成命令。
第一个逻辑管叫“你”的流水线,一次电话“五”流水线。
在任何一个给定的指令解码时,它是安排后面的指令将被检查。
和,如果可能的话,第一个指令被分配到“你”流水线执行指令,其次是分配到“胜利”的流水线执行。
如果不是,那么第一个指令设置为“你”“五”流水线流水线执行,不安排指令操作。
教学中的操作和流水线的顺序执行所产生的效果是完全一样的。
当流水线堵塞,随后的指令指令是阻止任何流水线。
技术的奔腾处理器的整数流水线增加一个额外的处理阶段。
指令代码缓冲区缓存预取,美联储的“预”(公积金)阶段,并在“提取”(女)阶段的教学语法分析。
此外,所有前缀的解码阶段。
在教学第一先出(先进先出)指令缓冲区中的语法分析和指令解码分开,缓冲区位于的阶段,the1stage(D1)之间的解码。
先进先出缓冲空间指令处理最多四个指示。
先进先出缓冲区是透明的,当它是空的,没有额外的延迟。
在每个时钟周期的指令,指令缓冲区(按有效代码字节,和其他因素,如前缀)。
然后,对指令的先进先出缓冲射出去,到d1stage。
由于指令的平均执行效率为每个时钟周期不超过2指令,所以通常全是先进先出。
只要是先进先出,你可以防止取指令和语法分析产生阻塞。
如果这阻塞,先进先出也可以使阻塞的执行管线阶段发生。
但如果是先进先出空,因为没有指令流水线操作,这可能导致执行一个块。
长指令或一个前缀可以在先进先出入口产生阻塞。
超流水线(SuperPipeline)在本质上仍为一种流水线技术,但它做了以下的改进:
1、流水线条数从奔腾的两条增至三条,还有十一个独立的执行单元并行支持。
2、在实施无序执行(采取所有加工)技术。
当一个指令需要一些数据并不能立即执行,它将被删除线和等数据,处理器是立即执行的指示下,就像在装配线发现产品不合格,但被淘汰,等原因。
这样,可以防止无法执行命令影响整个生产线的效率。
3、在p6instruction分为更细的相位,使逻辑设计,工艺等更为简化,提高了速度。
在486chip,指令一般分为五个部分,奔腾也是如此。
在六,由于采用了类似的精简指令集计算机技术,一个指令分为十四阶段。
这大大提高了线速度。
六系列处理器使用动态执行结构。
结构通过一个硬件寄存器重命名和分支预测的方法,将乱序执行和投机执行的合成。
这些处理器有一个有序的进入流水线,它将英特尔386macro指令分为简单的微操作(或国外)和一个可以处理这些微操作外序的超标量处理器核心。
乱序处理器内核包含几行,连接整数,浮点数和跳跃,内存执行单元。
几种不同的执行单元可以集成在同一行。
例如:
一个整数地址逻辑单元和浮点执行单元(加法器,乘法器和除法器)共用线。
数据缓冲区缓存由一个专用的读端口和其他存储端口交错成。
最简单的手术(国际铝,浮点此外,甚至浮点乘法)每时钟周期才能完成一个工作通量装配线。
浮点除法不能进入流水线,长和短延迟延迟操作可以在平行处理。
六系列线由三部分组成:
前端(按序有序的组织单位,核心(前端)序序核心)单元和有序退出(有序退休)单位。
英特尔最近推出的奔腾Ⅲ处理器使用的p6dynamic执行技术,包括多个分支预测,数据流分析,推测执行。
同时,奔腾Ⅲ处理器有一个流水线浮点单元(浮点运算单元),可支持32位,64位和80位浮点运算。
英特尔最近发表的奔腾4,奔腾4basic指令管线长度达到20级,是六建筑2倍,更比AMDAthlon。
时间线可以使处理器运行在更高的频率,从而提高处理器的性能,但可能有一些指令执行延迟。
第2章流水线基础
加快机器语言的解释过程,提高机器的速度是一个基本任务的计算机设计。
这可以实现的方式。
一种方法是增加了设备的速度,更好的算法,增加指令的微平行度,减少解释过程需要击败多项措施加快机器指令的解释。
另一种方法是使用重叠和水的方法,同时,多个2解释整个过程,从而加快整个机器语言程序的解释。
流水线技术现已广泛应用于微处理芯片的关键技术,英特尔公司的微处理器应用技术首次实现。
2.1流水线概念
指挥控制方法三:
序列的方法,重叠,运行模式。
顺序法是指机器指令序列之间的串行执行的机器指令,和每个微指令的执行顺序。
虽然这种方法的优点是控制简单但速度上不去,利用率低的机器零件。
重叠模式是指解释第钾指令操作完成之前开始的钾1instruction解释。
通常使用的重叠,即,在任何时间,命令解析单元和指令执行部只有相邻指令重叠的解释。
这意味着指令解释速度增加,控制不是很复杂,但出现冲突,转移,相关的问题,这些都是需要在设计解决。
水是一个并行或并行嵌入计算机系统中的一种形式。
它是重叠的连续过程分解为一个进程的个数,每个进程的特殊模块独立有效的并行工程技术。
论“流”可以被视为“重叠”的延伸。
不同的是一个“重叠”只是一个指令的解释是分解成2个过程,与“水”分解为多个子过程。
2.1.1指令重叠
一个指令执行过程可以分为取指令,类型和执行一三个过程(图2.1)。
取指令,取出指令,指令寄存器。
教学分析指指令的操作码进行译码,解决和地址字段地址操作数的真正形成,这是地址读取操作,但准备取下一条指令是预先形成的下一条指令的地址。
指令执行是指一些操作,加工业务,或存储操作结果。
指令的重叠解释方法是指,在解释的指令操作完成之前,开始解释钾1instruction。
假设这三个过程,分别以不同的硬件(命令控制器,分析和执行单元),当K线指令在分析阶段,该控制器在空闲状态,这个时候可以为钾1instruction到取指令操作,当K线的指令被执行时,解析器在空闲状态,并可以进行钾1instruction分析(图2.2)。
显然,重叠的解释方式和不能加快指令来实现的,但可以加速相邻的指令和程序的解释。
图2.1机器指令的顺序执行方式
图2.2指令的重叠解释方式
2.1.2流水线
水实际上是重叠延伸,上面提到的重叠模型实际上是一个simple3水模型。
如果分析和执行阶段分为指令解码,执行操作,存储和计算结果,当钾1instruction在指令执行的操作时可以开始解码,而不必等到分析钾完全结束。
这样一个指令周期可以同时executing5指令。
装配线的工作方式是一个反复的过程分解成几个子进程,每个进程可以与其他子过程在同一时间。
由于这种工作方法在工程和生产线是非常相似的,因此,他把工作流程。
该处理器可以用在几乎所有地区的工作流程。
在指令执行使用线,到指令流水线。
手术操作元件,如浮点加法器,浮点乘法器可以被用来作为部分的流水线,流水线。
访问主存储器单元也可用于流水线。
即使在处理器,机器也可以使用流水线。
图2.3指令流水线
2.1.3流水线的特点
从上面的分析中可以看到,在处理机中采用流水线方式与采用传统的串行方式相比,具有一下特点:
1、在处理流水线必须是连续的任务,只有不断提供任务才能充分发挥效率的流水线。
比如说呢。
如果浮点加法器的充分发挥,需要连续提供浮点加法器。
然而,由于程序本身的原因和程序设计过程所造成的一些原因,数据关联,不可能为浮点加法器是提供一个连续运行。
因此,在使用流水线的方式处理,尤其是当线的多个系列,应该在软件和硬件方面的线提供连续的任务,为了提高效率,流水线。
2、任务分解成几个相关的任务,每个任务由一个专门的功能组件实现。
因此,线实际上是一个功能成分分解成多个独立的功能部件,并依靠多个功能部件并行工作缩短程序的执行时间。
在流水线,任务通常被称为一个过程,或一个功能段。
3、在每一个功能单位线回有一个缓冲寄存器,或锁存器,用于保存所执行的结果。
这是因为在每一段的延迟可以不相等,因此,在转移的任务,必须通过缓冲寄存器。
当一个函数的时间范围较大,设立多个缓冲寄存器。
4、线段的对称性,即相同的时间要求尽可能,否则将造成“堵”,“停止”和其他问题。
执行时间最长的部分将成为整个线路的“瓶颈”,那么,线段将受到限制,不能充分发挥作用。
只有当全是满满的,整个流水线的效率可以得到充分发挥。
为了设计出高效率的流水线,要充分注意上述问题。
2.1.4流水线的分类
从不同的角度,根据不同的角度,可以分成许多不同类型的线。
通常所说的一些线路,通常按一定的角度,或从一个特定角度线的分类结果。
因此,从名字上只能反映一维线功能或特征。
按照流水线的各功能段之间是否有反馈信号,可以把流水线分为线性流水线合非线性流水线。
线性线是线各功能部分的每一个系列,输入数据从流水线部分进入,从另一部分流出。
数据流水线通过,没有一个功能部分流经的第一,只有通过A
线性线通常只能完成固定功能,在现代计算机系统,线性线已被广泛应用在指令执行过程中,各种算术运算,内存访问操作。
图2.4非线性流水线
非线性流水线经常用于递归调用,或者构成多功能流水线。
根据线使用不同层次,可以将流水线分成功能组件,处理器和处理器和其他类型。
处理器的流水线阶段的指令流水线,他把一个指令执行过程分解成若干个子过程,每个子进程中的一个独立的功能部件。
特征线,又称为操作线,如浮点加法器流水线,浮点乘法器组件。
处理器间流水线也被称为流水线,一般是两年多处理器通过记忆的串行连接,每个处理器在数据流的不同部分分别进行处理。
图2.6指令流水线
流水线又可分为单功能流水线和多功能流水线。
顾名思义,单功能流水线只能完成固定的单一功能,多流水线通过各个段间进行不同的连接,在不同的时间内或者统一时间内通过不同的连接方式完成不同的功能。
多功能流水线,根据同一时间是否可以连接到各种不同的方式,并执行各种任务,你可以把多功能流水线分为静态和动态线。
静态线是在同一时间,多功能流水线部分只有按照一定的固定连接,实现一个固定功能。
只有当根据连接方式工作的所有任务脱节,重新连接,完成其他功能。
动态线的同时,可以根据不同的连接方式,完成各种不同的功能。
这一次请求行功能不能冲突。
除了以上几种分类方法外,还可以根据其他标准,从不同角度对流水线进行分类。
2.2流水线的主要性能
衡量流水线主要性能的指标主要有吞吐率,加速比和效率。
2.2.1吞吐率
吞吐率是指在单位时间内流水线所完成的任务数量或者输出的结果数量。
即:
式(2.1)中,n为任务数,
是处理完成n个任务做用的时间。
本式为计算吞吐率最基本的公式。
有的时候我们还需要求一条流水线的最大吞吐率:
式(2.2)中
为第k个子过程所花费的时间。
最大吞吐率受限于流水线中最慢子过程即瓶颈子过程所需要的时间。
为了提高流水线的最大吞吐率,首先要找出瓶颈,然后设法消除此瓶颈。
消除瓶颈有两种办法,一是将瓶颈子过程再细分,另一种办法是通过重复设置多套瓶颈段并联,让他们交叉进行。
后一种方法需要解决好在各并行子过程之间的任务分配合同步控制,比起瓶颈子过程再细分控制要复杂、设备量要多一些。
2.2.2加速比和效率
完成一批任务,不使用流水线所花的时间与使用流水线所用时间直比即为流水线的加速比。
如果不使用流水线,即顺序执行所用时间为
,使用流水线的执行时间为
则流水线的加速比为:
这是计算流水线加速比的基本公式。
流水线效率是指设备的利用率和流水线。
在时空图,线效率定义为,任务时间区域与钾功能区占用空间面积比。
因此,效率线包含2个方面的时间和空间因素。
事实上,在任务的时间区域是顺序执行的任务使用的总时间。
而一个流水线,完整的总任务在颞区,这是一个对完成任务的总时间。
是一个段线效率可表示为:
此式是计算流水线效率的一般公式。
如果流水线各段执行时间均相等,且输入的n个任务是连续的,则一条k段流水线的效率为:
从流水线的时空图上来看,上式分母部分是完成n个任务所用时间与k个功能段所围成的总面积,而分子部分则是k个功能段实际所占有的面积。
因此,利用时空图来计算流水线的效率十分方便。
第3章指令流水线设计
我们做任何事情,都希望能够达到理想状态,但这往往是不现实的,我们研究理想状态的意义就在于给出一个衡量的标准,并且努力向这个标准靠近,这在指令流水线的设计过程中也不例外。
3.1流水线理想假设
为目的的指令流水线,我们希望能够最大限度地提高系统性能。
然而在实践中,但往往不这样做,因为只有在理想的条件下,等级度流水线设计可以提高吞吐量的时间,理想的情况是主要基于三假说,我们称它为“线理想的假设”,他是正确评估流水线设计。
设计各种方案解决实际线和线之间的矛盾,理想的假设,它们构成的主要工艺流水线的设计。
流水线的理想假设包括:
1.一致的运算分量:
要完成的整个运算量可以均匀的分成延迟一只的若干分量。
2.重复的运算:
输入数据有大量相同的、重复的运算。
3.独立的运算:
所有相同的重复运算之间没有相关性。
3.1.1一致的运算分量
第一行的理想的假说解释,会使计算部分水均匀地分为钾延迟相同的组件。
这意味着以前的设计可以分为钾平衡水段。
如果以前的总计算延迟,不是设计类型的水循环,然后钾流水线设计风格的周期是钾,也就是流水在每一段的延迟。
基于这一假设,时钟频率可以增加,并提高吞吐量倍。
在实际的流水线设计,这种假设可能不成立。
总操作组件完全均匀的分成几个部分是不可能的。
在3级流水线浮点加法器的例子,设置总延迟for500ns,线分为3个部分,每个部分都200ns延迟,容错,200ns。
显然,总延误是不均匀分布在整个线路的三段。
因为线路时钟周期决定推迟最长延迟时间较短,所以会有一些无效或失败时。
如浮点加法器的后半部分,这是100ns的无效时间,我们可以称它为“内部碎片”。
由于内部分裂,执行同样的操作延迟将增加。
有一种内在的假设,即水段之间引入缓冲不会带来额外的延迟线时钟信号,也不引入额外的延迟。
同样,假设在实践中是不成立的。
在一些例子中,为了保证信号的时钟信号准确地成立的,注册成立,所以总时钟周期延长,从而导致实际业绩可能不到3次。
第一行的理想假设主要包含以下两点:
以前的操作部件分为多个部分,不引入一个无效的时间;一个缓冲和时钟不会带来额外的延迟介绍。
在芯片级设计,可以使用一些锁,如·锁可以使时钟产生延迟尽可能小。
那么如何来操作均匀分成各种水段构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 中的 流水线 技术
![提示](https://static.bdocx.com/images/bang_tan.gif)