1、第11章 计算机系统,11.5 超级标量处理机、超级流水线处理机和超长指令字处理机 11.6 向量处理机 11.7 阵列处理机和多处理机系统,11.5 超级标量处理机、超级流水线处理机 和超长指令字处理机长期以来,计算机设计人员在提高单处理机并行操作方面做了大量工作,20世纪70年代的向量处理机、20世纪80年代的 RISC 机反映了这方面的成就。但是还不能突破一个时钟周期完成一条指令的框框。而本节要介绍的超级标量计算机和超长指令字计算机在一个周期内可流出多条指令。超级流水线以增加流水线级数的方法来缩短机器周期,图11.3为四种处理机的指令流水线,其中(a)为早期RISC机的指令流水线,其余三
2、种流水线分别介绍如下(假设采用取指、译码、执行、写回四级流水线)。,图11.3 四种处理机的指令流水线,1. 超级标量(superscalar)处理机 在超级标量处理机中,配置了多个功能部件和指令译码电路,采取了多条流水线,还有多个寄存器端口和总线,因此可以同时执行多个操作,以并行处理来提高机器速度。它可以同时从存储器中取出几条指令,并对这几条指令进行译码,把能够并行执行的指令同时送入不同的功能部件。例如,Intel 80960A配置3条流水线,分别执行整数运算、转移处理和访存操作,能同时对四条指令进行译码,但最多将3条能并行执行的指令分别送入3条流水线。,超级标量机的硬件是不能重新安排指令的
3、前后次序的,但可以在编译程序时采取优化的办法对指令的执行次序进行精心安排,把能并行执行的指令搭配起来。超级标量处理机能与同一系列的原有机器保持指令兼容。 1989年,在Tandem 公司发表的Cyclone 高可靠计算机系统中,开始采用超级标量技术。差不多同时,Intel 公司宣布了i80960处理器,IBM 公司推出了Power PC处理器。1992年Sun和TI(德州仪器)公司推出 Super SPARC 芯片(Viking),以上这些芯片都是采用超级标量技术的。,TI的SPARC系统由CPU芯片(TMS390Z50)和cache 控制器芯片(TMS390Z55)组成。图11.4为CPU芯
4、片逻辑图。在片上有8个功能部件:3个ALU、移位器、加载/存储部件、转移部件、浮点乘法器和浮点加法器。其中3个ALU安排在两个层次上,第一层的两个ALU独立操作,它们的结果可送到第二层的ALU再进行运算,如果没有数据相关或其他因素,在一个周期内可完成3条指令功能。,图11.4 Super SPARC 逻辑框图,2. 超级流水线(super pipeline)处理机 超级流水线处理机的周期比其他机器短,在图11.3(d)所示的流水线中,周期缩短到1/3。执行一个操作需要3个周期,每个周期对一条指令进行译码。与超级标量计算机一样,硬件不能调整指令的执行顺序,而由编译程序解决优化问题,因此这类机器可
5、与同一系列的原有机器的指令系统保持兼容。超级流水线结构的CPU很少。,3. 超长指令字(VLIW)处理机 VLIW是一种单指令流多操作码多数据的系统结构,由编译程序在编译时,把多个能并行执行的操作组合在一起,成为一条有多个操作段的超长指令,由这条超长指令控制VLIW机中多个互相独立工作的功能部件,每个操作段控制一个功能部件,相当于同时执行多条指令。Cydra5计算机系统中的数值处理机采用了超长指令字。图11.5是该机的多操作码指令格式。,图11.5 cydra 5计算机的操作码指令格式,11.6 向量处理机 在科学研究和工程设计中的很多应用领域,如空气动力学、气象学、天体物理学、原子物理和地震
6、学等,需要对巨大的数组进行高精度计算,为此发展了向量处理机。向量数据是一个含有N个元素的有序数组,N称为“向量的长度”,向量中的每一个元素是一个标量,它可以是浮点数、定点数、逻辑值或字符。因此,向量处理机是一种具有向量数据表示,并设置相应的硬件能对向量的各个元素进行并行处理的处理机。,向量处理机有巨型计算机和向量协处理机两种类型。巨型计算机能对巨大的数组进行浮点运算,同时它还是一种可以进行标量计算和一般数据处理的通用计算机。向量协处理机专门用于向量计算,它不是一台独立的计算机,需要联到另外一台通用计算机上。,1. 巨型计算机 为了进行向量计算,在20世纪60年代末、20世纪70年代初曾发展了两
7、种巨型机系统(流水线处理机和并行处理机),由于流水线处理机发展得快,因此现在的向量处理机即是指采用运算流水线的处理机,当它处理一个数组时,对向量中的每个元素执行相同的操作,而且各元素间是互相无关的,因此流水线就能以每个时钟送出一个结果的速度运行。为了存储系统能及时提供元素,向量处理机配有一个大容量的、分成多个模块交叉工作的主存储器。图11.6是一个具有由三端口存储器模块组成的存储器系统的向量处理机。,图11.6 多存储模块组成,2. 向量协处理机 在主机上连接专门处理浮点和向量运算的数组处理机。在这种系统中,主机管理整个系统,控制全部输入输出操作。 数组处理机为了提高运算速度,除了采用高速器件
8、以外,在系统硬件结构上还可采取下列并行工作的措施: (1) 流水线和多功能部件; (2) 多个存储器; (3) 多个缓冲寄存器; (4) 并行的数据通路,设置有多套可同时工作的内部总线;,图11.7是一台带向量协处理器的计算机框图。 图11.7 带向量协处理器的计算机系统,11.7 阵列处理机和多处理机系统 在本章前面几节中讲到的计算机系统均属于SISD系统。在有些系统中还采用了并行处理技术,提高了速度,但由于并行度并不高,所以提高的速度受到限制。 目前至少有以下几种高度并行的计算机系统: (1) SIMD 并行处理机,又叫阵列处理机(array processor)。在这种计算机系统中有多个
9、处理单元(执行部件),但只有一个控制部件,所有处理单元在同一时刻执行同一条指令、处理不同的数据。,(2) MIMD 多处理机,由多台处理机组成,每台处理机可分别执行各自的指令和数据。处理机之间的互连网络通常用来在处理机同存储器之间传送信息。 (3) 数据流计算机。传统的冯诺依曼计算机在执行程序时必须按程序指定的地址逐条从存储器中取出指令并执行之,这种方法称为“控制流计算机法”。数据流计算机打破了必须按预先规定的序列执行程序的框框,一个操作,只要它所需的操作数已到齐,且功能部件有空,即可执行,而不管它次序的先后,这样可尽量挖掘计算的并行性。,11.7.1 SIMD 并行处理机系统(阵列处理机系统
10、) 阵列处理机是以大量相同的处理单元按规则的几何形状排列成阵列而得名的,由在同一控制器CU控制下的多个处理单元PE组成。PE是不带指令控制部件的运算单元。在CU控制下,各PE对各自的数据并行地执行同一条指令所规定的操作。阵列处理机的指令也是顺序执行的,指令分成两类:一类是通常的标量指令,由CU执行;另一类是并行处理指令,CU把它同时传送到所有的处理单元,那些处于“活动”状态的处理单元并行地执行指令,至于哪些处理机处于“活动”状态可事先指定,也可由本条指令规定。,在PE之间设置互连网络ICN,规定了各PE之间的连接方式,是传送数据的通路。系统中还设置有一个管理机SC,完成系统控制以及I/O操作。
11、 根据存储器的不同组成形式,有分布存储器与共享存储器两种阵列处理机结构,分别如图11.8(a)和图11.8(b)所示。,图11.8 阵列处理机结构,11.7.2 多处理机系统 1. 多指令流多数据流(MIMD)系统的结构 在这种系统中有多台处理机共享主存储器。除此以外,有一些(或全部)处理机可以设有单独使用的局部存储器。 图11.9是多处理机结构框图,P0PN是处理器(每个处理器包含CU与PE),通过互连网络共享主存储器。 这种系统的优点是:由于共享主存,所以系统资源的管理和使用比较方便,是顺序计算机的扩充,缺点是受互连网络传输率的影响,系统中处理机数目较少。,图11.9 多处理机结构框图,具
12、有局部存储器的多处理机系统便于扩充,每个处理机模块相对独立。由于有了局部存储器,因此减少了主存访问的冲突。缺点是编程困难。为了进一步减少访问主存次数,可在处理机与存储器之间设置 cache。图11.10是具有局部存储器和 cache 的多处理机系统。但有了cache 以后,又要产生系统中多个 cache 之间以及 cache 同主存储器中的数据一致性问题。解决 cache 的一致性问题是研究多处理机技术中的一个重要问题。,图11.10 具有局部存储器和 cache 的多处理机系统,在图11.9和图11.10的多处理机系统中往往还需要一台计算机(称为HOST)作为系统管理之用,其机构如图11.1
13、1所示。图11.11 具有主机(HOST)的多处理机系统,图11.12表示在有/无局部存储器条件下,处理机数与系统性能的关系。图11.12 处理机数和机器速度的关系,大规模并行处理机(MPP)和对称多处理机(SMP)是20世纪80年代中期发展起来的新机种。MPP机是指由成百成千乃至上万个微处理器所组成的大规模并行处理系统,可以采用当前市场上出售的微处理器而不必为之专门设计,因此可获得很高的性能价格比。 MPP的结构如图11.13所示。 对称多处理机SMP与MMP的最主要差别反映在存储空间的安排上。SMP有一个统一的共享主存空间,而MPP的微处理器有各自的局部存储器。,图11.13 MPP结构,
14、图11.14所示为对称多处理(SMP)结构。 图11.14 SMP结构,2. 多处理机的互连结构 (1) 总线结构 单总线结构把所有功能部件连接到总线上,为解决总线太忙的问题,可扩充为双总线结构或多总线结构。 (2) 交叉开关 交叉开关(crossbar switch)或看作是多总线结构增加总线数量的极端情况,它使每个存储器模块都有一套总线同p个处理机和n个输入输出通道相连如图11.15所示。,图11.15 交叉开关,(3) 多端口存储器结构 每个存储器模块有多个端口,每个处理机和输入输出模块都分别接到一个端口上,因而它们都可以独立地直接访问存储器。在每个存储模块中有逻辑电路将各端口来的访存要
15、求进行排队,各端口的优先次序一般是固定的。图11.16是四端口存储器系统结构图。相应端口连在一起负责处理一个处理机或一个I/O通道的访存请求。,图11.16 四端口存储器系统结构图,3. 容错计算机 容错计算机是高可靠性计算机,当其硬件在一定范围内发生固定性故障或偶然性差错时,该系统能自动采取一些措施,保证计算机继续运行。要使计算机具有这种能力,基本的方法是采用冗余技术,即在计算机内设置一些在正常运行时并不一定必须的设备或部件,让两个或两个以上的设备或部件完成同一功能或互相作备份。目前容错计算机大多采用多处理机系统实现,又可分为各处理机运行不同的程序和运行相同的程序两类。,当容错计算机系统由两
16、台处理机构成时,上述两类系统分别称为“双机系统”和“双工系统”。 (1) 双机系统 两台处理机各有自身的存储器运行不同的程序,其中一台是主处理机,另一台是备份处理机。主处理机运行程序,每隔一定时间,设置一个检查点,把一些关键数据拷贝到备份处理机的存储器中。一旦主处理机发生故障不能继续工作,由备份处理机接替工作。,主处理机在每个检查点处传送给备份处理机的数据应足以保证备份处理机可从最近的一个检查点开始执行主处理机中止的程序。备份处理机平时可执行其他程序。双机系统有时被称为“冷备份系统”,在作控制使用时,主处理机用于在线控制,备份处理机用作离线计算。,(2) 双工系统 两台处理机同时接收相同的输入
17、数据,执行相同的程序,但只有主处理机输出数据,一般设置一套开关部件控制主处理机输出。如主处理机发生故障,备份处理机可立即接替主处理机继续工作,其速度比双机系统快得多。因为不必返回到检查点执行程序,并立即由备份处理机输出数据,而原来的主处理机脱离系统进行维修。双工系统通常称为“热备份系统”。,11.7.3 SGI Origin多处理机体系结构 SGI Origin是基于可伸缩的共享存储器处理机(scalable shared-memory processor,简称SSMP)的服务器,采用模块结构,系统扩展非常容易,可以从1个处理器扩展到128个处理器而维持系统的性能价格比不变,因此具有真正良好的
18、可伸缩性。某些系统也具有可伸缩性,但为了考虑今后扩展,初期投资很大,而Origin系统不必为今后的扩展预付代价,而且随着系统规模的扩大,系统性能基本上按比例提高,系统传送数据的频带宽度也相应增加。,1. Origin的基本结构 图11.17为Origin系统的基本结构。该系统基本上由结点、I/O子系统、路由器(cray link router)、Hub和互联网络构成。图11.17中所示的结点实际上是一张结点卡,卡上可安装1个或两个MIPS R10000微处理器(芯片内含一级高速缓存L1 cache),二级高速缓存L2 cache、主存储器、目录存储器及Hub等。,图11.17 Origin系统
19、的基本结构,Origin存储器系统采用分布式共享存储器(distributed share memory,简称DSM)结构。存储器被分配到各个结点卡中,但统一编址,可被系统内所有处理器共享。每一卡上主存容量为4GB。目录存储器是为解决cache一致性问题而设置的。 结点卡上的Hub是公司自行设计的专用集成电路芯片,内含4个接口和交叉开关(crossbar switch),如图11.18所示。存储器接口能双向传送数据,最大传输率为780Mb/s;I/O和路由器各有2个半双工传送端口,最大传输率为2780Mb/s,即1.56Gb/s,每个接口连接两个先进先出(FIFO)缓冲器。,图11.18 Hu
20、b ASIC框图,Origin系统I/O设备的安置类似于存储器,也采用分布式结构,通过ASIC电路与各结点的Hub相连接,系统内任一台I/O设备可被系统内任一台处理器访问。 Origin的路由器有6个端口,用于连接结点卡或其他路由器。Origin的路由器与互联网络也是ASIC芯片,通过芯片内部的交叉开关选择数据传送路径并提供无差错传送。即在传送的数据中含有校验码,当发现传输中有误码时,请求重送,以保证传送的结果无差错。,2. Origin系统的拓扑结构 Origin系统可由1128个处理器组成。图11.19中(a)为2节点4处理器,(b)为16处理器,(c)为32处理器,(d)为64处理器的互
21、联结构。为了减少数据在路由器之间的传送延迟,并充分利用路由器的端口,将图11.19(b)和(c)中处于对角位置的路由器进行连接。从图11.19可见,64处理器系统由两个立方体组成。图11.19中未给出128处理器的拓扑结构,但可以推测,它应由4个立方体组成,在立方体之间还应增加一级路由器。,图11.19 Origin系统的拓扑结构,由于Origin的主存分布在不同的结点上,一个处理器存取远程结点的数据,比存取本结点的局部数据“路途”远一点,速度慢一点,所以是“非均匀存储存取”,这种结构称之为“非均匀存储存取(nonuniform memory access,简称NUMA)结构”。 从上述的系统
22、结构可以看到:在结点卡内部实现的是SMP(对称多处理器)结构,由于只有两个处理器,所以不存在SMP结构的总线瓶颈问题;在结点卡之间实现的是MPP(大规模并行处理器)结构,但又解决了共享存储器问题。因此无论是访存时间还是结点间传送数据的频带宽度都很理想。,由于Origin采用分布式存储结构,每个处理器通过互联网络可访问系统中任一存储单元,因此同一数据可能存放在几个结点的cache中。为了保证同一数据在各个cache中保持一致,在Origin的各个结点卡中,有一个存储器和一个目录存储器;存储器被划分成一个个存储块(每个存储块的大小对应于一个cache行),并相应地设置一个目录项,由目录项组成目录表(即目录存储器)。,每个目录项包含其对应存储器块的信息,其中包括指出系统中各cache存储情况的位向量,根据位向量可以知道本存储块在哪些cache中有拷贝。当执行写存储器操作时,根据目录项的位向量可将有关结点中的cache行置成无效,从而实现了cache的一致性。因此,Origin实现了CC-NUMA结构,其中CC即为cache一致性。 3. MIPS R10000处理器 图11.20是R10000处理器框图。,图11.20 R10000处理器框图,