1、向量的流水处理n提高流水性能方法:n增加流水线段数,以减少tn每个时钟同时启动多条指令n减少相关,减少功能变换次数,增加处理指令条数。向量的流水处理(续)n向量操作特点n向量元素间操作相互独立,且为相同操作n相当于标量循环,对指令带宽的访问要求不高n可采用多体交叉存储器,减少访存延迟。n向量操作很适合于流水处理或并行处理。向量的流水处理(续)n向量处理过程n置VL、VM、An取向量到Vn运算。n向量的分量间采取的是流水方式。n并行处理机(SIMD)处理向量时采取的是并行方式。向量的流水处理(续)n向量处理工作方式 如:D=A(B+C)n横向加工:bi+ci-k,k*ai-din产生N次相关,2
2、N次功能切换,适合标量循环n纵向加工:bi+ci-ki,ki*ai-din产生1次相关,1次功能切换,可流水处理n纵横处理:对向量分组,组内纵向、组间横向处理向量流水处理机n向量流水处理机的指令系统n向量流水处理机的结构n超级向量流水处理机举例向量流水处理机的指令系统n包含有向量型和标量型两类指令n向量型运算类指令n向量V1运算得向量V2,如V2=SIN(V1)n向量V运算得标量S,如n向量V1与向量V2运算得向量V3,V3=V1V2n向量V1与标量S运算得向量V2,V2=S*V1n特殊操作指令n向量比较指令n向量压缩指令n归并指令n向量传送指令niiVS1向量流水处理机的结构n1972年首次
3、交付使用CRAY-1向量流水处理机n分布异构型多处理机系统,由中央处理机、诊断维护控制处理机、大容量磁盘存储子系统、前端处理机组成n6个流水线单功能部件:整数加、逻辑运算、移位、浮点加、浮点乘和浮点迭代求倒数n向量寄存器由512个64位寄存器组成,分成8组主 存V0V7 向量寄存器组向量寄存器组(864个个)加加向量向量功能功能部件部件标量寄存器标量寄存器 S0S7加加浮点浮点功能功能部件部件VM向量控制向量控制 移位移位逻辑运算逻辑运算相乘相乘迭代求倒数迭代求倒数向量控制向量控制向量长度寄存器向量长度寄存器 VLBTR/W地址寄存器地址寄存器 A超级向量流水处理机举例n1972年成立CRAY
4、公司,至今生产了400台以上的超级计算机n1979年CRAY-1S,CRAY-1改进型,有10条流水线n1983年CRAY X-MP,用4台CRAY-1n1985年CRAY-2Sn1988年CRAY Y-MP,8台处理机n1991年CRAY Y-MP C-90n1996年12月,克雷研究公司也被SGI公司以7.5亿美元收购 n2000年,被Tera公司合并,同年更名Crayn目前产品:MTA、SV1、SX_6、T3En2002年Cray X1。运算速度最高为每秒52万亿次,支持65.5TB存储器。n宣布了在2010年以前实现能够连续地处理每秒1000万亿次nCray公司称,他们将在2008年使
5、用四核心的AMD Opteron处理器建造XT4超级计算机,并将在2009年接近1Pflops(每秒1000万亿次浮点运算)能力。n网址:超级向量流水处理机举例(续)nCDC公司1973年推出第一台超级计算机STAR-100n1964年CDC-6600 RISC特征n1982年 CYBER 205n1999年 被Syntegra收购nETA10:8个CPUn网址:几种超级计算机的向量性能和标量性能机器型号Fujitsu VP400Cray ISCray 2SCray X-MPCray Y-MPHitachi S820NEC SX2向量性能Mflops标量性能Mflops向量平衡点85.09.8
6、0.90151.511.20.93143.313.10.92201.617.00.92737.317.80.98424.29.50.98207.16.60.97向量平衡点(vector balance point)定义为:为了使向量硬件设备和标量硬件设备的利用率相等,一个程序中向量代码所占的百分比。4 指令级高度并行的超级计算机 n超标量处理机n超流水线处理机n超标量超流水线处理机n超长指令字处理机 超标量处理机n采用多指令流水线(度=m)n配置多套功能部件、指令译码电路和多组总线,并且寄存器也备有多个端口和多组总线。n适合于求解稀疏向量、矩阵nIBM RS/6000、DEC 21064、In
7、tel i960CA、Tandem Cyclone(飓风)等超标量处理机(续)取指译码执行存结果部件时间度m=3的超标量处理机时空图超标量处理机基本结构n一般流水线处理机:n一条指令流水线n一个多功能操作部件,每个时钟周期平均执行指令的条数小于1。n多操作部件处理机:n一条指令流水线n多个独立的操作部件,操作部件可以采用流水线,也可以不流水n多操作部件处理机的指令级并行度小于1n超标量处理机典型结构:n多条指令流水线n进的超标量处理机有:定点处理部件CPU,浮点处理部件FPU,图形加速部件GPUn大量的通用寄存器,两个一级高速Cachen超标量处理机的指令级并行度大于1举例:Motorola公
8、司的MC88110n10个操作部件n两个寄存器堆:整数部件通用寄存器堆,32个32位寄存器;浮点部件扩展寄存器堆,32个80位寄存器。每个寄存器堆有8个端口,分别与8条内部总线相连接,有一个缓冲深度为4的先行读数栈和一个缓冲深度为3的后行写数栈。n两个独立的高速Cache中,各为8KB,采用两路组相联方式。n转移目标指令Cache,在有两路分支时,存放其中一路分支上的指令超标量处理机MC88110的结构整数部件整数部件位操作浮点加乘法部件除法部件图形部件图形部件内部总线读数存数部件通用寄存器堆扩展寄存器堆目标指令指令分配转移部件数据Cache(8KB)指令Cache(8KB)系统总线32位地址
9、总线32位数据总线单发射与多发射n单发射处理机:n每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一运算结果n取指部件和译码部件各设置一套n可以只设置一个多功能操作部件,也可以设置多个独立的操作部件n操作部件中可以采用流水线结构,也可以不采用流水线结构n 设计目标是每个时钟周期平均执行一条指令,ILP的期望值1单发射处理机的指令流水线时空图IF时钟周期指令I1I2I3IDEXWRIFIDEXWRIFIDEXWR123456IFIDFA1 FA2 FA3MD1 MD2 MD3ALLS浮点加法部件乘除法部件定点ALU部件取数存数部件WR来自指令Cache通用寄存器后行写数栈单发射与多发
10、射(续)n多发射处理机:n每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果n需要多个取指令部件,多个指令译码部件和多个写结果部件n设置多个指令执行部件,复杂的指令执行部件一般采用流水线结构n设计目标是每个时钟周期平均执行多条指令,ILP的期望值大于1多发射处理机的指令流水线时空图IF时钟周期指令I1I2I3IDEXWR123456I4I5I6IFIDEXWRI7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDFA1 FA2 FA3MD1 MD2 MD3ALLS浮点加法部件乘除法部件定
11、点ALU部件取数存数部件WRIFIDWRn超标量处理机:n一个时钟周期内能够同时发射多条指令的处理机称为超标量处理机n必须有两条或两条以上能够同时工作的指令流水线n先行指令窗口:n能够从指令Cache中预取多条指令n能够对窗口内的指令进行数据相关性分析和功能部件冲突的检测n窗口的大小:一般为2至8条指令n采用目前的指令调度技术,每个周期发射2至4条指令比较合理举例nIntel公司的i860、i960、Pentium处理机,Motolora公司的MC88110处理机,IBM公司的Power 6000处理机等每个周期都发射两条指令nTI公司生产的SuperSPARC处理机以及Intel的Penti
12、um III处理机等每个周期发射三条指令n操作部件的个数多于每个周期发射的指令条数。4个至16个操作部件n超标量处理机的指令级并行度:1ILPm;m为每个周期发射的指令条数。IFIDFA1 FA2 FA3MD1 MD2 MD3ALLS浮点加法部件乘除法部件定点ALU部件取数存数部件WRIFIDWRIFID先行指令窗口超流水线处理机n两种定义:n一个周期内能够分时发射多条指令的处理机称为 超流水线处理机。n指令流水线有8个或更多功能段的流水线处理机称为超流水线处理机。n提高处理机性能的不同方法:n超标量处理机是通过增加硬件资源为代价来换取处理机性能的。n超流水线处理机则通过各硬件部件充分重叠工作
13、来提高处理机性能。n两种不同并行性:n超标量处理机采用的是空间并行性n超流水线处理机采用的是时间并行性指令执行时序n每隔1/n个时钟周期发射一条指令,流水线周期为1/n个时钟周期n在超标量处理机中,流水线的有些功能段还可以进一步细分n例如:ID功能段可以再细分为译码、读第一操作数和读第二操作数三个流水段。也有些功能段不能再细分,如WR功能段一般不再细分。n因此有超流水线的另外一种定义:有8个或8个以上流水段的处理机称为超流水线处理机超流水线处理机(续)147102581136912147102581136912147102581136912147102581136912取指译码执行存结果每个时
14、钟周期分时发送3条指令的超流水线举例:MIPS R4000nMIPS R4000处理机每个时钟周期包含两个流水段,是一种很标准的超流水线处理机结构。指令流水线有8个流水段n有两个Cache,指令Cache和数据Cache的容量各8KB,每个时钟周期可以访问Cache两次,因此在一个时钟周期内可以从指令Cache中读出两条指令,从数据Cache中读出或写入两个数据。n主要运算部件有整数部件和浮点部件译译 码码数数 据据C C a a c c h h e e标标 志志标标 志志指指 令令C C a a c c h h e e译译 码码存存 入入缓缓 冲冲 对对 准准 器器IB U S写写 入入 缓
15、缓 冲冲 器器数数 据据标标 志志地地 址址D B U S 系系 统统 控控 制制浮浮 点点存存 储储 管管 理理 部部 件件寄寄 存存 器器 堆堆指指 令令 快快 表表浮浮 点点 流流 水水 线线 专专 用用 通通 路路指指 令令 C ach e控控 制制快快 表表 TL B浮浮 点点 控控 制制 寄寄 存存 器器 D V A浮浮 点点 乘乘 法法 部部 件件地地 址址 部部 件件浮浮 点点 除除 法法 部部 件件数数 据据 C ach e控控 制制程程 序序 计计 数数 器器浮浮 点点 加加 法法 部部 件件流流 水水 线线通通 用用 寄寄 存存 器器 堆堆转转 换换 部部 件件控控 制制
16、算算 术术 逻逻 辑辑 部部 件件 A L U求求 平平 方方 根根 部部 件件装装 入入 对对 准准 器器/存存 入入 驱驱 动动 器器整整 数数 乘乘 法法 除除 法法 部部 件件M M I I P P S S R R 4 4 0 0 0 0 0 0 超超 流流 水水 线线 处处 理理 机机 结结 构构MIPS R4000处理机的流水线操作指令CacheIF:取第一条指令IS:取第二条指令RF:读寄存器堆,指令译码EX:执行指令DF:取第一个数据DS:取第二个数据TC:数据标志校验;WB:写回结果指令译码读寄存器堆ALU数据Cache标志检验寄存器堆IFISRFEXDF DSWBTCMIP
17、S R4000正常指令流水线工作时序IF流水线周期当前CPU周期IS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WB主时钟周期超标量超流水线处理机n把超标量与超流水线技术结合在一起,就成为超标量超流水线处理机n指令执行时序n超标量超流水线处理机在一个时钟周期内分时发射指令n次,每次同时发射指令m条,每个
18、时钟周期总共发射指令m n条。每时钟周期发射3次,每次3条指令IF时钟周期指令I1I2I3IDEXWR12345I4I5I6I7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRI10I11I12举例:DEC公司的AlphanDEC公司的Alpha处理机采用超标量超流水线结构。主要由四个功能部件和两个Cache组成:整数部件EBOX、浮点部件FBOX、地址部件ABOX和中央控制部件IBOX。n中央控制部件IBOX可以同时从指令Cache中读入两条指令,同时对读入
19、的两条指令进行译码,并且对这两条指令作资源冲突检测,进行数据相关性和控制相关性分析。如果资源和相关性允许,IBOX就把两条指令同时发射给EBOX、ABOX和FBOX三个指令执行部件中的两个。n指令流水线采用顺序发射乱序完成的控制方式。在指令Cache中有一个转移历史表,实现条件转移的动态预测。在EBOX内还有多条专用数据通路,可以把运算结果直接送到执行部件。举例:DEC公司的AlphanAlpha 21064处理机共有三条指令流水线整数操作流水线和访问存储器流水线分为7个流水段,其中,取指令和分析指令为4个流水段,运算2个流水段,写结果1个流水段。浮点操作流水线分为10个流水段,其中,浮点执行
20、部件FBOX的延迟时间为6个流水段。n所有指令执行部件EBOX、IBOX、ABOX和FBOX中都设置由专用数据通路。析指令为4个流水段,运算2个流水段,写结果1个流水段。浮点操作流水线分为10个流水段,其中,浮点执行部件FBOX的延迟时间为6个流水段。n所有指令执行部件EBOX、IBOX、ABOX和FBOX中都设置由专用数据通路。nAlpha 21064处理机的三条指令流水线的平均段数为8段,每个时钟周期发射两条指令。因此,Alpha 21064处理机是超标量超流水线处理机。指指 令令 Cache(8KB)转转 移移 历历 史史区区 号号指指 令令 地地 址址 总总 线线EBOXIBOXFBO
21、X 3 3 4 4 位位乘乘 法法 器器预预 取取 器器乘乘 法法 器器/加加 法法 器器资资源源冲冲突突检检测测加加 法法 器器移移 位位 器器P P C C 计计 算算 数数 据据 总总 线线逻逻 辑辑 单单 元元指指 令令 快快 表表除除 法法 器器 1 1 2 2 8 8 位位流流 水水 线线控控 制制定定 点点 寄寄 存存 器器 堆堆(3 3 2 2 6 6 4 4)浮浮 点点 寄寄 存存 器器 堆堆(3 3 2 2 6 6 4 4)ABOX总总线线接接口口部部外外 部部 Cache写写 数数 缓缓 冲冲 器器地地 址址 发发 生生 器器数数 据据 快快 表表读读 数数 缓缓 冲冲
22、器器 控控 制制件件数数 据据 Cache(8KB)区区 号号数数 据据A A l l p p h h a a 2 2 1 1 0 0 6 6 4 4 处处 理理 机机 结结 构构除 法 器三种指令级并行处理机性能比较n超标量处理机、超流水线处理机和超标量超流水线处理机相对于单流水线普通标量处理机的性能曲线。0.00.51.01.52.02.512345678相对性能超标量超流水线超标量超流水线指令级并行度结论n三种处理机的性能关系超标量处理机的相对性能最高,其次是超标量超流水线处理机,超流水线处理机的相对性能最低,主要原因如下:n超标量处理机在每个时钟周期的一开始就同时发射多条指令,而超流水
23、线处理机则要把一个时钟周期平均分成多个流水线周期,每个流水线周期发射一条指令;因此,超流水线处理机的启动延迟比超标量处理机大。结论(续)n条件转移造成的损失,超流水线处理机要比超标量处理机大。n在指令执行过程中的每一个功能段,超标量处理机都重复设置有多个相同的指令执行部件,而超流水线处理机只是把同一个指令执行部件分解为多个流水级;因此,超标量处理机指令执行部件的冲突要比超流水线处理机小。结论(续)n实际指令级并行度与理论指令级并行度的关系n当横坐标给出的理论指令级并行度比较低时,处理机的实际指令级并行度的提高比较快。n当理论指令级并行度进一步增加时,处理机实际指令级并行度提高的速度越来越慢。n
24、在实际设计超标量、超流水线、超标量超流水线处理机的指令级并行度时要适当,否则,有可能造成花费了大量的硬件,但实际上处理机所能达到的指令级并行度并不高。n目前,一般认为,m 和 n 都不要超过4。结论(续)n最大指令级并行度n一个特定程序由于受到本身的数据相关和控制相关的限制,它的指令级并行度的最大值是有限的,是有个确定的值。这个最大值主要由程序自身的语义来决定,与这个程序运行在那一种处理机上无关。对于某一个特定的程序,图中的三条曲线最终都要收拢到同一个点上。当然,对于各个不同程序,这个收拢点的位置也是不同的。n超标量处理机:nIntel公司的i860,i960,Pentium处理机nMotol
25、ora公司的MC88110nIBM公司的Power 6000nSUN公司的SuperSPARC等n超流水线处理机:nSGI公司的MIPS R4000,R5000,R10000等n超标量超流水线处理机:nDEC公司的Alpha等超标量、超流水、超标量超流水处理机的主要性能k段流水线基准标量处理机m度超标量n度超流水线(m,n)度超标量超流水机器类型机器流水线周期同时发射指令条数指令发射等待时间指令级并行度ILP1个时钟周期1条1个时钟周期11m1m1/n11/nn1/nm1/nmn超长指令字处理机(VLIW)nVLIW(Very Long Instruction Word)n是将水平型微码和超标
26、量处理两者结合的结构n指令字长可达数百位,多个功能部件并发工作,共享大容量寄存器堆。n是一种单指令多操作码多数据的系统结构(SIMOMD)超长指令字处理机(续)存/取浮点加浮点乘定点算逻转移主存寄存器堆存/取部件浮点加法部件定点算逻部件转移部件典型的VLIW处理机组成和指令格式超长指令字处理机(续)取指译码执行存结果部件时间度m=3的执行时空图EPICExplicitly Parallel Instruction Computingn显性并行指令计算n1994年,Intel和HP决定联合开发新一代微处理器基于IA-64架构的Merced,并共同定义了显性并行指令计算技术EPIC.nIA-64指
27、令系统的统称。n集成RISC和VLIW各自的优势技术,指令字长为128位,包含三个40位的指令和一个8位的模版代码。n每个指令分为多个独立的操作字段,每个字段可分别控制各个功能部件并行工作,而模版中包含各指令间并行处理的信息,依据模版代码信息,可同时在不同的执行单元中执行三条没有相关性的指令,控制并行处理关系,提高并行处理能力EPICnEPIC是一种超越超标量的新模式,它克服了VLIW处理器的缺点,实现下面的3步:n由编译器先分析指令间的依赖关系;n编译器将没有依赖关系的指令,按最多是3个指令为一组,组合成多个“组”;n由内置的执行单元将分成组的指令群并行执行。因每条指令究竟分给哪一个执行单元
28、是由软件决定的,因而利用简单的硬件就可以提高指令的并行度,降低了处理器的制造成本。RVIP技术和CRVIP技术nRVIP(RISC-VLIW Processor)技术和CRVIP(CISC-RISC-VLIW Processor)技术是将RISC超标量结构与VLIW技术融为一体,或将CRIP(CISC-RISC Processor)混合结构与VLIW技术融为一体的技术.n在融合VLIW和超标量结构技术的RVIP型或者CRVIP型微处理机中,将不必在其执行部件中设置复杂的执行顺序控制电路。因为在指令分发调度之前就已经弄清楚了这些指令之间的相关联性。nVLIW技术渗入的显著效果之一,就是它消除了超
29、标量结构的过分的复杂性,从而使硬件系统结构设计获得简化。Itanium 2HP Integrity SuperdomeHP-UX,Win2000,LinuxSGI Altix 3700 Linux1、向量计算机系统结构的发展趋势n 提供多种向量运算指令。n 除具有向量处理功能外还有其它功能。n 采用多层次的存储器系统。n 流水线技术与并行技术相结合。2、向量计算机系统结构要解决的六个技术问题:n 处理机带宽,两种方法:n运算部件采用流水线结构。用多个运算器构成并行系统。n存储器带宽,多种解决方法:用多个独立的存储体构造一个大容量的存储器系统。采用多层次的存储器系统提高访问速度。采用高速缓冲存储
30、器和可寻址的寄存器组效果最好。采用流水线技术,存储系统的访问速度快520倍。向量处理机的发展n 输入输出带宽许多高性能向量处理机配备10 29个DMA通道。n 通信带宽。共享存储器或互连网络。n 同步。多流水线结构通过控制程序使所有流水线同步工作。Cray-1系统采用流水线互锁来控制向量操作,不冲突的操作可以并行地执行,相关的操作尽可能链接起来重叠地进行。n多用途。非数值计算问题。3、向量计算机系统结构的主要优点是:n通过流水线存取方式有效地提高了存储器的带宽。n流水结构的运算器有很高的性能价格比。n非常简单的机制就能满足通信和同步的要求。向量处理机以Mflops(Million floating-point operations per second)作为速度单位。一般认为,标量计算机中执行一次浮点运算需条指令,平均需条指令。小结n流水线方式n相关问题:转移、数据、控制、指令n时空图分析n单功能非线性流水线调度n超标量、超流水线、VLIW