欢迎来到天天文库
浏览记录
ID:43811075
大小:2.51 MB
页数:173页
时间:2019-10-15
《计算机组成原理与系统结构 第8章 计算机系统结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第八章计算机系统结构8.1超标量处理机和超流水线处理机8.2向量处理机8.3并行处理机8.4多处理机8.5互连网络8.6计算机系统结构新发展8.1超标量处理机和超流水线处理机8.1.1超标量处理机超标量(superscalar)机器最早在1987年提出,它是为改善标量指令执行性能而设计的机器。超标量方法是高性能通用处理器发展的一个方向,其本质是在不同的流水线中执行不相关指令的能力。TI的SPARC系统由CPU芯片(TMS390Z50)和cache控制器芯片(TMS390Z55)组成,如图8.1所示。在片上有8个功能部件:3个ALU、移位器、
2、加载/存储部件、转移部件、浮点乘法器和浮点加法器。其中3个ALU安排在两个层次上,第一层的两个ALU独立操作,它们的结果可送到第二层的ALU再进行运算,如果没有数据相关或其他因素,在一个周期内可完成3条指令功能。图8.1TI的SPARC的逻辑图在当前的大多数处理器的设计中,都引入了超标量设计技术。超标量处理机中,使用了多指令流水线。这意味着每个时钟周期要发射多条指令并产生多个结果。设计超标量处理机时,要考虑使它能对用户程序开发更多的指令级并行性。但是,只有不相关的指令才能并行执行而不相互等待。指令级并行性的变化是很大的,这与执行代码的类型有
3、很大的关系。对于一般的流水机器,在一个时钟周期内只能发射一条指令,每个时钟周期只能流出一个结果。若其指令的流程为:“取指”、“译码”、“分析”和“执行”,则单发射基准流水线的流水操作如图8.2所示。图8.2单发射基准流水线经统计发现,对于没有循环展开(LoopNurolling)的指令代码,指令级并行性的平均值大约是2。因此,这些代码没有从每个周期发射超过三条指令的机器中得到更多的好处。在超标量处理机中,指令发射度(InstructionIssueDegree)实际上被限制在2~5。超标量流水线是指在每个时钟周期内要同时发射多条指令并产生多
4、个结果的流水线。超标量方法的实现依赖于系统并行执行多条指令的能力,即指令并行执行的程度。这主要看硬件技术与编译器结合所能够达到的最大程度的指令级并行性。超标量处理器主要是借助对硬件资源重复利用来实现空间的并行操作的。图8.3给出了并行度为3的超标量流水线的流水操作过程。图8.33发射超标量流水线与一般的流水机器相比,超标量处理器的特点主要表现在:1.配置有多个性能不同的处理部件,采用多条流水线并行处理;2.能同时对若干条指令进行译码,将可并行执行的指令送往不同的执行部件,从而达到在每个时钟周期启动多条指令的目的;3.在程序运行期间由硬件(通
5、常是状态记录部件和调度部件)完成指令调度。8.1.2超流水线处理机一般把指令流水线的段数大于等于8的流水线处理机称为超流水线处理机。超流水线处理机和前面介绍的超标量处理机的工作方式不同,超标量处理机是通过重复设置多个部件,并且让这些部件能够同时工作来提高指令的执行速度,实际上是以增加硬件资源为代价来换取处理机性能的;而超流水线处理机则只是通过增加少量硬件,通过各部分硬件的充分重叠工作来提高处理机的性能,超流水线处理机每一节拍仍只流出一个结果,但流水线的节拍只是主机时钟周期的几分之一,所以在一个时钟周期内,流水线仍可流出几个结果,如图8.4所
6、示。图8.4并行度为3的超流水线8.1.3超标量超流水线处理机从指令级并行性来看,超标量处理机主要开发空间并行性,依靠重复设置的操作部件上同时执行多个操作来提高程序的执行速度。而超流水线处理机则主要开发时间并行性,在同一个操作部件上重叠多个操作,通过使用较快时钟周期的深度流水线来加快程序的执行速度。为了进一步提高指令级并行度,可以把超标量技术与超流水线技术结合在一起,这就是超标量超流水线处理机。图8.5给出了表示超标量超流水线处理机的指令执行时空图。它在一个时钟周期内要发射指令m次,每次发射指令n条,故每个时钟周期中总共发射指令m×n条。图
7、8.5超标量超流水线处理机的指令执行时空图超标量超流水线处理机既开发空间并行性,又开发时间并行性。前者在重复设置的操作部件上同时执行多个操作来提高程序的执行速度,后者在同一操作部件上重叠多个操作,通过使用较快时钟周期的深度流水线来加快程序的执行速度。8.2向量处理机向量处理机结构目前已成为解决数值计算问题的一种重要的高性能结构。它有两个主要的优点:效率高和适用性广。绝大多数向量处理机都采用流水线结构。当一条流水线不能达到所要求的性能时,设计者往往采用多条流水线。这种处理机不仅能处理单条流水线上的数据,还能并行地处理多条流水线上独立无关的数据
8、。8.2.1什么是向量处理下面我们通过一个简单的例子来说明向量处理与标量处理的差别。先考察一个用FORTRAN语言编写的程序:DO100I=1, NA(I)=B(I)+C(I)1
此文档下载收益归作者所有