《流水和指令级高度并行的超级机》由会员分享,可在线阅读,更多相关《流水和指令级高度并行的超级机(33页珍藏版)》请在金锄头文库上搜索。
1、第五章 流水和指令级高度并行的超级机,加速机器语言解释的两种方式,通过选用更高速的器件,采用更好的运算方法、提高指令内各微操作的并行程度,减少解释过程所需要的拍数,以加快每条指令的解释。 通过控制机构采用同时解释两条、多条以至整段程序的控制方式,加快整个机器语言程序的解释。重叠、流水。,What Is Pipelining,Laundry(洗衣) Example Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold Washer takes 30 minutesDryer takes 40 mi
2、nutes“Folder” takes 20 minutes,What Is Pipelining,Sequential laundry takes 6 hours for 4 loads If they learned pipelining, how long would laundry take?,30,40,20,30,40,20,30,40,20,30,40,20,6 PM,7,8,9,10,11,Midnight,T a s kO r d e r,Time,What Is Pipelining Start work ASAP,Pipelined laundry takes 3.5 h
3、ours for 4 loads,6 PM,7,8,9,10,11,Midnight,T a s kO r d e r,Time,Pipelining Lessons,Pipelining doesnt help latency of single task, it helps throughput of entire workload Pipeline rate limited by slowest pipeline stage Multiple tasks operating simultaneously Potential speedup = Number pipe stages Unb
4、alanced lengths of pipe stages reduces speedup Time to “fill” pipeline and time to “drain(排出)” it reduces speedup,6 PM,7,8,9,T a s kO r d e r,Time,What Is Pipelining,目录,重叠方式 流水方式 向量的流水处理与向量流水处理机 指令级高度并行的超级处理机,1 重叠方式,基本思想和一次重叠 相关处理,顺序解释与重叠解释,顺序解释,重叠解释的一种方式,一次重叠的工作方式,基本思想和一次重叠,顺序解释:各条机器指令之间顺序串行地执行,执行完
5、一条指令后采取出下条指令来执行,而且每条指令内部的各个微操作也是顺序串行地执行。 优点:控制简单。 重叠解释:在解释第k条指令的操作完成之前,就可开始解释第k+1条指令 不能加快一条指令的实现 但能加快相邻两条以至一段程序的解释,时间重叠,解决访存冲突,操作数和指令分存于两个独立编址且可同时访问的存储器,有利于实现指令保护,增加总线控制和软件设计的复杂性 混存,采用多体交叉主存结构 增设指令缓冲寄存器,解决访存冲突(续),在硬件上,保证又独立的指令分析部件和指令执行部件; 两部分执行的时间常常不相同,在硬件上解决好控制上的同步;控制上的其他问题 指令转移,下图,相关问题,数相关:第k、k+1条
6、指令的数据地址之间有了关联。 数相关不仅发生在主存空间,还会发生在通用寄存器空间 指令相关:采用Von Neumann型机器上指令可修改的办法经第k条指令的执行来形成第k+1条指令,指令相关的处理,原因:Von Neumann型机器的指令允许修改。解决:在程序执行过程中,不准修改指令,除可解决指令相关,也可实现程序的可再入性和程序的递归调用。,主存空间数相关的处理,相邻两条指令之间要求对主存同一单元线写入而后再读出的关联。解决:延迟。,通用寄存器数相关处理,延迟和设置“相关专用通路”是解决重叠方式相关处理的两种基本方法。前者设备不变,降低速度; 后者增加设备,效率不变。,举例,假设指令:操作码
7、 L1 L3 B2 d2 L1,L3分别指明存放第一操作数和结果数的通用寄存器号 B2为形成第二操作数地址的基址值所在的通用寄存器号 D2为相对位移量,指令解释过程中与通用寄存器 内容有关的微操作时间关系,存结果,“执行”、“分析”重叠时,访问通用寄存器组的时间关系,当程序执行过程中出现L1(k+1)=L3(k),就发生L1相关; 而当L2(k+1)=L3(k),就发生L2相关;解决: 退后,延迟 设备不增加,速度降低,适合于相关概率低 设置“相关专用通路” 增加设备,效率不会明显下降,适合于相关概率高,用相关专用通路解决 通用寄存器组的数相关,顺序执行方式,执行n条指令所用的时间为:如每段时
8、间都为t,则执行n条指令所用的时间为:T=3nt 主要优点:控制简单,节省设备 主要缺点:执行指令的速度慢,功能部件的利用率很低。,一次重叠执行方式 (一种最简单的流水线方式),如果两个过程的时间相等,则执行n条指令的时间为:T=(1+2n)t 主要优点: 指令的执行时间缩短 功能部件的利用率明显提高 主要缺点: 需要增加一些硬件 控制过程稍复杂,二次重叠执行方式,如果三过程的时间相等,执行n条指令的时间为:T=(2+n)t 理想情况下同时有三条指令在执行 处理机的结构要作比较大的改变,必须采用先行控制方式,先行控制方式的原理,采用二次重叠执行方式,必须解决两个问题: 有独立的取指令部件、指令
9、分析部件和指令执行部件独立的控制器:存储控制器、指令控制器、运算控制器 要解决访问主存储器的冲突问题 取指令、分析指令、执行指令都可能要访问存储器 解决访存冲突的方法: 采用低位交叉存取方式: 这种方法不能根本解决冲突问题。,先行控制方式的原理(续),两个独立的存储器:独立的指令存储器和数据存储器。 如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,那么,取指令、分析指令和执行指令就可以同时进行。在许多高性能处理机中,有独立的指令Cache和数据Cache。 这种结构被称为哈佛结构(Harvard architecture)。,先行控制方式的原理(续),采用先行控制技术。 先行控制技术的关键是缓冲技术和预处理技术。 缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作。 在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。,结果:解决了分析与执行时间不等长问题。 与重叠区别:分析和执行部件可同时处理两条不相邻指令。 采用技术:缓冲技术+预处理技术 硬件要求 增设指令缓冲栈,消除取指过程; 增设数据缓冲栈,保证不同指令的读、写操作并行; 增设先行操作栈,保证执行部件能连续执行。,工作原理,栈的深度要求:D指缓D操作 D读栈 D写栈,