第八章 流水线技术
- 格式:ppt
- 大小:1.91 MB
- 文档页数:130
流⽔线技术概述本⽂是对流⽔线技术地基本概念、冒险处理、硬件实现的基本概述。
⾸先我们介绍流⽔线的⼯作原理、组成要求、分类和性能指标,接下来讨论流⽔线的冒险处理,最后我们以MIPS为例,介绍流⽔线数据通路和控制器的实现。
⽬录1. 流⽔线概念针对串⾏执⾏过程中的冗余和瓶颈,我们提出,可以将指令执⾏过程划分为多个阶段,各个阶段可以同时处理操作,这样,每条指令按序通过各段,不同指令的执⾏过程重叠,得到的就是流⽔线。
流⽔线由多个功能段按序组成。
例如,在RISC中,通常包括IF,ID,EX,MEM,WB五个功能段,⽽在CISC中,通常包括IF,ID,OF,EX,WB五个功能段。
理想状况下,流⽔线可以对程序执⾏起到显著的加速作⽤。
例如,有n条指令在m段流⽔线上执⾏,串⾏执⾏的时间为mnt,⽽采⽤流⽔线后,其执⾏时间为(m+n-1)t。
流⽔线在组成上,有三个基本要求。
第⼀,各个段的操作要相互独⽴、相互分离。
因此,每个段的源数据必须来⾃时序部件,结果也要存到时序部件。
实现上,我们设置段间寄存器,其中保存本段的所有后续段需要的本段的数据、地址、命令等。
第⼆,各个流⽔段的操作要同步执⾏。
实现上,我们会设置公共拍时钟,使得段间寄存器被同时写⼊。
拍时钟的周期需要取为各个段长的最⼤值。
第三,各个流⽔段的操作必须⽆冲突,以保证结果正确。
具体⽽⾔,就是消除冒险。
实现上,通过增设部件和控制器,来消除各种冒险。
流⽔线可以按其属性进⾏多种分类。
按处理的级别,可以分为操作级流⽔线、指令级流⽔线、处理机级流⽔线。
按功能,可以分为单功能和多功能流⽔线。
多功能流⽔线的各流⽔段可以进⾏不同的连接,从⽽完成不同的功能。
按⼯作⽅式,可以分为静态流⽔线和动态流⽔线。
静态流⽔线在进⾏功能切换时,必须排空。
显然,动态流⽔线⼀定是多功能流⽔线。
按结构,可以分为线性流⽔线和⾮线性流⽔线。
所谓⾮线性流⽔线,就是其中有部件的复⽤。
按流⼊流出的次序,可以分为顺序流⽔线和乱序流⽔线。
什么是流水线技术pipeline/uid-9185047-id-445171.html2010流水线(Pipeline)技术是目前广泛应用于微处理芯片(CPU)中的一项关键技术,但对许多非专业性的读者来说,这个名词过于抽象,加上P6(高能奔腾)应用的超流水线(Super Pipeline)技术,更令人一头雾水,不知所云。
本文以简单、形象、非专业的语言来介绍这一技术,加深大家对其的理解。
流水线技术指的是对CPU内部的各条指令的执行方式的一种形容,要了解它,就必须先了解指令及其执行过程。
一、计算机指令及其执行过程计算机指令,就是告诉CPU要做什么事的一组特定的二进制集合。
如果我们将CPU比喻成一个加工厂,那么,一条指令就好比一张订单,它引发了CPU__加工厂的一系列动作,最后分别得到了运算结果和产品。
那么,它们到底是怎样工作的呢?首先,要有一个接收订单的部门——CPU的取指令机构;其次,还要有完成订单的车间——CPU的执行指令机构。
在工厂中,一张订单上的产品被分成了许多道工序,而指令亦在CPU中转换成了许多条对应的微操作,依次完成它们,就执行完了整条指令。
二、执行指令的方式及流水线技术在低档的CPU中,指令的执行是串行的,简单地说,就是执行完了一条指令后,再执行下一条指令,好比我们上面提到的那个加工厂在创业之初,只有一间小车间及孤军奋战的老板,那么,当他接到一张订单之后,他必然忙于完成第1张订单,而没有能力去接第2张订单。
这样接订单→完成订单→接订单→……取指令→执行指令→取指令→……是一个串行的过程。
后来,老板发现接受订单不费太多时间,而且他还有了一个帮工,他们可以相互独立地工作,这样,老板就在完成上张订单产品的同时,接受下一张订单的订货。
这表现在CPU上就是取指令机构与执行指令机构的分开,这样从CPU整体来看,CPU在执行上条指令的同时,又在并行地取下条指令。
这在CPU技术上是一个质的飞跃,它使得CPU从串行工作变为并行工作,从而具有了流水线的雏型。
软件设计师计算机体系结构考点:流水线技术【考法分析】本考点涉及的考查形式有:(1)流水线相关理论概念;(2)流水线相关计算。
【要点分析】1.流水线理论概念(1)流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。
各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
(2)流水线建立时间:1条指令执行时间。
(3)流水线周期:执行时间最长的一段。
2、流水线相关计算:(1)流水线执行时间(理论公式):(t1+t2+..+tk)+(n-1)*∆t。
(2)流水线执行时间(实践公式):k*∆t +(n-1)*∆t。
(3)流水线吞吐率:TP = 指令条数/ 流水线执行时间。
(4)流水线最大吞吐率1 / ∆t。
(5)流水线加速比:顺序执行时间/流水线执行时间。
【备考点拨】吞吐率:单位时间内流水线处理机流出的结果。
对指令而言就是单位时间内执行的指令数。
如果流水线子过程所用的时间不一样,则吞吐率P应为(最长子过程的倒数)。
流水线开始工作,需要经过一段时间才能达到最大吞吐率。
【相关考题】1.下列关于流水线方式执行指令的叙述中,不正确的是()。
A.流水线方式可提高单条指令的执行速度B.流水线方式下可同时执行多条指令C.流水线方式提高了各部件的利用率D.流水线方式提高了系统的吞吐率2.流水线的吞吐率是指单位时间流水线处理的任务数,如果各段流水的操作时间不同,则流水线的吞吐率是()的倒数。
A. 最短流水段操作时间B. 各段流水的操作时间总和C. 最长流水段操作时间D. 流水段乘以最长流水段操作时间。
摘要流水线技术是提高系统吞吐率的一项强大的实现技术,并且不需要大量重复设置硬件。
20世界60年代早期的一些高端机器中第一次采用了流水线技术。
第一个采用指令流水线的机器是IBM7030(又称作Stretch计算机)。
后来的CDC 6600同时采用了流水线和多功能部件。
到了20世纪80年代,流水线技术成为RISC处理器设计方法中最基本的技术之一。
RISC设计方法的大部分技术都直接或者间接以提高流水线性能为目标。
从此以后,流水线技术也被有效地应用到CISC处理器的设计中。
Intel i486是IA32体系结构中的第一个流水线实现。
Digital的VAX和Motorola的M68K的流水线版本在商业上也取得了成功。
流水线技术是当前指令集处理器设计中广泛采用的技术。
在这里我们将重点放在(标量)流水线处理器的设计。
流水线处理器设计中的许多方法和技术,例如用于检测和化解相关的流水线互锁机制,都是标量处理器设计的基本方法。
当前的趋势是朝着超深度流水线的方向发展。
流水线的深度已经从不到10发展到超过20.深度流水是获得高速始终频率的必要条件,这是提高处理器性能的一个非常有效的方法。
有迹象表明。
这种趋势还将持续下去。
[关键词] 流水线技术猜测法中断处理吞吐率指令重叠加快短循环程序的处理AbstractPipeline technology is to improve the system throughput of a powerful technology, and does not require repetitive set hardware. The 20 world early 60's some high-end machines used the first pipeline technology. The first use of the instruction pipeline machine is IBM7030(also called Stretch computer ). Later CDC6600at the same time lines and multiple functional components.In the nineteen eighties, pipeline technology to become the RISC processor design method is one of the most basic techniques. The design method of RISC most of the techniques are directly or indirectly to improve performance as the goal line. Since then, assembly line techniques have also been applied effectively to the CISC processor. Intel i486 is IA32 architecture is the first in a pipelined implementation. Digital VAX and Motorola M68K pipelined version also achieved success in business.Pipeline technology is the current instruction set processor is widely used in the design of technology. Here we will focus on the ( scalar ) pipelined processor design. A pipelined processor in the design of many methods and techniques, for example, used to detect and resolve the relevant pipeline interlock mechanism, is a scalar processor design method.The current trend is towards super depth line direction. Pipeline depth has less than10 to the development of more than 20depth of water is always necessary to obtain high speed frequency, which is to improve the performance of a very effective method. There are signs. This trend will continue.Keywords: Pipeline technology forecast method of interrupt processing throughput instruction overlapping accelerate short cycle program processing目录第一章绪论 (5)1.1现代RISC中的流水线技术 (5)1.1.1超流水线技术 (5)1.1.2超标量技术 (4)1.1.3流水技术在Pentium系列微处理器中的实现 (6)第二章流水线基础 (8)2.1流水线概念 (8)2.1.1指令重叠 (9)2.1.2流水线 (10)2.1.3流水线的特点 (10)2.1.4流水线的分类 (11)2.2流水线的主要性能 (12)2.2.1吞吐率 (12)2.2.2加速比和效率 (13)第三章指令流水线设计 (14)3.1流水线理想假设 (14)3.1.1一致的运算分量 (14)3.1.2重复的运算 (15)3.1.3独立的运算 (16)3.2指令流水线 (17)3.2.1指令流水线设计 (17)3.2.2指令集体系结构的影响 (18)3.2.3流水线分级的考虑 (20)3.3流水线处理器设计 (20)3.3.1保持流水段均衡 (20)3.3.2统一指令类型 (21)3.3.3减少流水线停顿 (25)第四章流水线中各种相关及中断处理 (26)4.1流水线中相关 (26)4.2资源相关 (26)4.3数据相关 (27)4.3.1指令相关 (27)4.3.2主存空间操作数相关 (28)4.3.3通用寄存器组相关 (28)4.4控制相关 (31)4.4.1猜测法 (30)4.4.2加快和提前形成条件码 (31)4.4.3采取转移延迟 (31)4.4.4加快短循环程序的处理 (31)第五章中断处理与流水线调度 (32)5.1中断处理 (32)5.2流水线调度 (33)第六章总结与展望 (35)致谢 (41)参考文献 (38)第一章绪论流水线技术是提高系统吞吐率的一项强大的实现技术,并且不需要大量重复设置硬件。
计算机组成原理基础知识流水线技术和超标量处理器计算机组成原理基础知识:流水线技术和超标量处理器计算机组成原理是指计算机硬件的基本组成和工作原理。
在计算机科学与技术领域,流水线技术和超标量处理器是两个重要的概念。
本文将介绍这两种技术的基本原理和应用。
一、流水线技术流水线技术是指将一个复杂的操作分解成多个简单的子操作,并将这些子操作连续地执行,以提高计算机的指令执行效率。
在传统的自顶向下的设计方法中,计算机硬件主要包括控制器、运算器等单一功能模块,而在流水线技术中,计算机硬件被划分成多个阶段,每个阶段执行一个特定的功能子模块。
经典的流水线包括取指、译码、执行、访存和写回等阶段。
在取指阶段,计算机从存储器中读取指令;在译码阶段,计算机对指令进行解码并读取相应的操作数;在执行阶段,计算机执行相应的操作;在访存阶段,计算机对数据进行读写操作;在写回阶段,计算机将执行结果写回到寄存器或存储器。
流水线技术的优点是可以充分利用计算机硬件资源,提高指令的并行执行程度。
但是,流水线技术也存在一些问题,例如数据的相关性和冒险问题,需要通过一些技术手段来解决。
二、超标量处理器超标量处理器是一种在流水线技术基础上的改进方案。
传统的流水线技术中,每个阶段只能执行一个指令,而超标量处理器允许在同一个时钟周期内执行多个指令,以进一步提高计算机的执行效率。
超标量处理器主要依靠两个关键技术来实现多指令并行执行:乱序执行和动态调度。
乱序执行是指根据指令之间的依赖关系,按照合理的顺序执行指令,而不是按照指令在程序中的顺序执行。
动态调度是指通过硬件对指令进行调度,在不改变程序语义的前提下,尽可能地重排指令的执行顺序,以提高指令的并行度。
超标量处理器的工作原理可以简单描述为:在取指阶段,计算机从存储器中读取多个指令;在译码阶段,计算机对这些指令进行解码;在执行阶段,计算机并行执行多个指令;在访存阶段,计算机同时进行多个数据的读写操作;在写回阶段,计算机将执行结果写回到寄存器或存储器。