8高级计算机系统结构并行技术和高端处理器.ppt
《8高级计算机系统结构并行技术和高端处理器.ppt》由会员分享,可在线阅读,更多相关《8高级计算机系统结构并行技术和高端处理器.ppt(120页珍藏版)》请在三一办公上搜索。
1、主要特征,超级标量结构,(双指令流水线),双Cache,(指令Cache和数据Cache分离),分支预测技术,64位数据总线,RISC和CISC的结合,一、Pentium基本型,第三节 高档微处理器,(一)内部结构 1、功能部件 从功能模块的角度,Pentium在80486的基础上增加了一条指令流水线(包括相应的地址生成部件)和一个Cache。,在结构上,与80486相比,形成了双执行部件和双Cache结构。分支预测部件则是由于流水线的引入,为提高流水线效率而设置的性能增强部件。,如下图所示:,(1)指令部件,(2)双Cache,U和V两条独立的指令流水线,各自有独立的地址生成逻辑,并与各自独
2、立的内部数据总线与双端口Cache连接。从而实现了从地址生成到数据存取的独立操作。U流水线:可执行任何整数及浮点两类指令;V流水线:只能执行简单整数指令,数据Cache与指令Cache分离,提高操作的并行性,(3)浮点部件,速度是80486内部浮点部件的35倍。,FPU内有8个80位的浮点寄存器FR0FR7,内部数据总线宽度为80位,设有浮点加法器、浮点乘法器和浮点除法器,可同时进行三种不同运算。,浮点指令流水线 分为8级流水线:,与整数流水线中的五个步骤同步执行,预取指令指令译码1指令译码2地址生成取操作数执行1执行2写回结果和错误报告,采用CISC技术,结合了RISC的设计思想,一些简单指
3、令(如加、减、移位等)直接用硬件逻辑电路实现,复杂指令仍然采用微程序的设计思想(微指令ROM实现复杂指令)。,(4)微指令ROM,如简单指令:MOV reg,reg/mem/imm MOV mem,reg/imm ALU reg,reg/mem/imm INC reg/mem DEC reg/mem PUSH reg/mem POP reg 等无需任何微码控制,在一个时钟周期内执行的指令,2、寄存器,通用寄存器、变址寄存器,段寄存器以及指针与80486基本相同。增加了大量的测试寄存器和检查寄存器、性能监测的寄存器。,如测试寄存器112,用于奇偶校验测试、TLB线性地址测试,Cache测试、分支
4、预测BTB测试等。,增加一个控制寄存器CR4(6个有效位),其中的控制位PSE:,PSE=,0 页面大小为4K1 页面大小为4M,页面太大:失去分页的优点;页面太小:命中率下降,(所访问数据在页面的概率),(二)Pentium的主要技术改进,1.超级标量结构(Super Scalar Architecture)针对微处理器可并发的指令数,两种典型结构:标量结构,计算机系统中的三种基本的周期信号:,指令周期,机器周期(总线周期),时钟周期(节拍周期),什么是标量处理器(Scalar Processor):处理器内部只有一个指令执行部件 一个周期执行一条指令(?),超级标量结构,一个周期是否能完成
5、一条指令的执行需要从是否具有流水线功能来分析:,非流水线执行方式 指令串行执行,一个指令周期完成一条指令。,流水线执行方式 指令分解为多个独立的执行阶段。,每一执行阶段的时间长度:,一个总线周期(或者更短),此时,CPU执行指令的过程如下图所示:,在流水线方式下:一个总线周期可以执行一条指令;如果将一个总线周期长度定义为一个时钟周期,则一个时钟周期可以完成一条指令。,因此,可以用周期数来衡量CPU性能的指标:,IPC(Instructions/per cycle)即每一个总线周期(时钟周期)完成的指令数。,非流水线指令执行方式:,处理器内部有多个指令执行部件,并且多个部件独立并行工作,则可以使
6、IPC 1。,IPC 1,流水线指令执行方式:,IPC=1,怎样使IPC 1?,Pentium具有IPC 1处理能力的处理器。,超级标量结构:处理器内有多个独立并行的流水线指令部件 具有IPC 1的处理能力。,(理想状况),CPI(Cycle/per Instructions),=1/IPC,流水线级数与性能和性价比:,理论上讲:流水线级数越多(流水线深度越深),并发指令数越多,性能越高;,流水线级数与性价比:,最大值,但随着流水线级数的增加,各级之间的缓冲延时也将逐步累加,从而妨碍性能的提升,同时硬件越复杂,成本越高。,2.Pentium的指令流水线结构,五级流水线:,指令预取(PF),指令
7、译码(D1),地址生成(D2),指令执行(EX),写结果和设置处理器状态(WB),U和V两条流水线同时执行的流水线状况:,完成第1对指令,.,完成第4对指令,以流程的方式,超标量执行可表示为以下形式:,取指令,指令译码并生成控制字,控制字译码生成存储器地址,控制字译码生成存储器地址,写结果,访问数据Cache或ALU计算,访问数据Cache或ALU计算,写结果,如何分配两条流水线上的指令:,同时执行两条指令,但要满足一定配对规则:,两条指令必须是“简单”指令;,指令中不能同时包含偏移量与立即数等。,硬件逻辑实现(不是微代码实现)、单周期执行,两条指令要在指令Cache内;,成对指令无寄存器数据
8、相关;,如:“写后读”操作,由此引发Pentium流水线调度策略:,两条流水线的调度策略:按序发射按序完成策略 在译码阶段(D1),两条连续的指令(如i1和i2)先后被译码,并检查是否可以配对。若是,这对指令同时发射到U、V流水线的D2段。要求:一对同时进入D2阶段的指令也必须同时离开D2阶段,并进入EX段。如果一条指令在D2段停留,则另一条指令也必须在D2段停顿。成对指令进入EX阶段后,若一条指令EX阶段停留,则另一条指令也必须在EX阶段停顿。如下图所示:,UV,如果i2需要两个D2,则i1停顿一个周期。同时也导致i3、i4在D1结束后不能进入D2。i3、i4的情况是:由于i1和i2 在D2
9、停留,使i3和i4 在D1后不能进入D2而停留(阻塞)一个周期。如果i3执行所需的时间较长(需要2个执行周期),则V流水线的指令i4必须停顿等待i3执行完毕并一起进入下一阶段WB。,3.分支预测技术,转移指令对流水线的影响,(1)条件转移指令,PF D1 D2 EX WB,ADD,JC,SUB,MOV,Lab:,INC,DEC,如果有进位,转移,相当于阻塞四个周期,PF D1 D2 EX WB,(2)无条件转移指令,说明:转移指令除了对指令执行时间造成不利影响以外,由于在转移指令与目标指令之间的指令的执行还可能影响一些中间结果和标志位,从而可能导致程序发生逻辑错误;对于无条件转移指令,虽然在D
10、1结束时便可知程序要转移而不用执行其后面的几条指令,但是,在WB结束之前的时间,需要按寻址方式形成目标地址,因此也必须等到WB结束,才能转移到目标指令执行。,解决“条件转移指令”对流水线的影响,分支预测技术,静态分支预测:,硬件固定选择分支,动态分支预测:,在预测点,根据程序过去的分支情况的统计值为依据(或上一次的分支情况)选择分支。,依据:,程序执行的时间局部性规律,Pentium的分支预测:,动态分支预测,分支情况统计部件:,分支目标缓冲器(Branch Target Buffer-BTB),分支预测时间:,指令预取阶段(PF),分支预测过程:,两个指令预取缓冲区,第一预取缓冲区,N,Y,
11、BTB预测分支,不转移,预取分支指令后的指令序列,转移,第二预取缓冲区,预取分支目标指令序列,若预测要分支,则两个方向的指令预取同时进行,若预测错误,清除该缓冲区,若预测错误,清除该缓冲区,程序按预测方向执行,如果分支预测发生错误,仍会造成四个周期的时间损失。,附:,指令码太长,即指令码的长度超过了数据总线的宽度。,以80486为例,指令超过4个字节,至少需要2个总线周期取指令码,即需要2个阶段的流水线长度。,造成Pentium(包括其它CISC处理器)流水线阻塞的其它可能因素,比如,Pentium处理器允许的数据类型有字节、字、双字、4倍字。,一条指令包含指令码、数据和地址等。此外,指令的寻
12、址方式中还包含以立即数形式出现的偏移量。因此,指令码长度就可能超过数据总线的宽度,这意味着单总线周期不能取出一条指令的全部字节。,执行阶段时间开销太大,流水线的理想状况:,假设了一个EX的时间长度能完成指令所要求的全部功能。,指令:ADC 变址量(DI),立即数,在EX阶段的操作:,ADC 变址量(DI),立即数(可达6个字节),下一条指令,阻塞一个周期,(1)根据在D2形成的操作数地址访存取操作数,(2)计算:操作数1+操作数2+C(进位位),如果一个EX周期不能完成上述操作,则需要两个EX周期。,在EX阶段的操作:,数据相关:,资源冲突:,多条并行的指令需要使用同一资源,也称为数据依赖,如
13、“写后读”,比如:MOV AX,8 MOV BX,AX,阻塞一个周期,计算机系统中存在大量共享的软硬件资源,如果并行的指令在某一时刻都需要使用同一种共享资源,则出现资源冲突(比如对总线的访问),在这种情况下,至少有一条指令必须等待另外的指令释放该共享资源。,根据指令画出流水线执行情况,比如:MOV AX,8 MOV BX,AX 指令3 指令4,假设指令3和指令4的执行不会发生流水线阻塞。,错误案例:,或:,正确:,在CISC结构,有六种可能的情况造成流水线阻塞:,无条件转移指令;,条件转移指令,预测错误;,指令太长,一个周期不能取出全部指令码;,指令功能复杂,单执行周期不能完成所要求功能;,从
14、时间损失的角度,相当于造成流水线阻塞,数据相关;,资源冲突。,由于存在上述诸多因素使流水线不能按理想状况运行,因此在实际情况下,单流水线的IPC1,双流水线的IPC2。,对Pentium处理器,除上述因素,还存在指令配对条件,据统计:Pentium双流水线1000个周期平均执行1300条指令,则IPC=1.3。,例:计算流水线性能,计算(x1+y1)(x2+y2)(x3+y3),结果存入内存单元。假设六个参数已分别在R0R5 个寄存器中;四级流水线,仅乘法指令的执行阶段需要3t,其余阶段为1t;运算类指令:Ri op Rj Ri,编写以下程序:,Add R0,R1;x1+y1 R0Add R2
15、,R3;x2+y2 R2Add R4,R5;x3+y3 R4Mul R0,R2;(x1+y1)(x2+y2)R0Mul R0,R4;(x1+y1)(x2+y2)(x3+y3)R0Mov(M),R0;R0(M),流水线运行情况:,(1)流水线吞吐率TP,TP=,Add R0,R1 Add R2,R3Add R4,R5Mul R0,R2Mul R0,R4Mov(M),R0,(2)流水线加速比,(理论值),或:,(3)流水线效率,4.Cache的一致性协议,为支持多处理器系统,针对Cache内容丢失、内容过时、Cache淘汰、Cache填充等,Pentium提供的使用Cache的一套规则,称为Cac
16、he的一致性协议。,MESI一致性协议,该协议为每一个Cache行规定了四种状态,一个Cache行在任何时刻处于某种状态之一。,处于M状态的Cache行,可直接进行读/写操作,无需启动访问内存的总线周期。,M,Modified(已修改),一个Cache行相对于所对应的内存地址单元,其内容已被修改。,比如,当写Cache 命中后:,M状态相当于为避免Cache内容丢失而设立的“更新位”,E,Exclusive(独占),此时的Cache行与所对应内存单元内容相同。,如:,对处于E状态的Cache行的读/写操作,无需启动访问内存的总线周期。,对处于E状态的Cache行实施写操作后,该Cache行状态
17、将变为M状态。,S,Shared(共享),指示本Cache行与其它Cache行可以共享。,即同一个Cache行的内容可以放在多个Cache内。,对处于S状态下的Cache行进行读操作,无需启动访问内存的总线周期;,对处于S状态下的Cache行进行写操作,必须启动访问内存的写周期(直写),使内存相应单元持有共享Cache行的更新值。,(总线监视,避免过时),I,Invalid(无效),该Cache行内容无效。,对I状态的Cache行进行读操作:,不命中Cache,访问内存,执行Cache填充。,对I状态的Cache行进行写操作:,写入Cache,同时写入相应内存单元(直写)。,(三)Pentiu
18、m 的引脚,1.数据线,D63 D0,2.数据奇偶校验位,DP7 DP0,4.地址线,A31 A3,(对应D63D0的8个字节),3.数据校验检查位,5.地址奇偶校验位,AP,(双向),6.地址奇偶校验检查位,读地址,7.流水线状态指示信号,IU、IV,IU 指示U流水线当前指令执行结束IV 指示U流水线当前指令执行结束,(四)两种与Pentium基本型同期处理器比较,1.PowerPC,RISC结构 总线:数据64位,地址32位 寄存器:32个32位通用寄存器,32个64位浮点寄存器 32K片内Cache、支持片外Cache 三条指令流水线,2.Alpha 21164(1994年),RISC
19、结构 片内8K指令Cache,8K数据Cache,96K片内二级Cache;支持片外Cache 寄存器:32个64位通用寄存器,32个64位浮点寄存器 四条指令流水线(两条整数,两条浮点)速度:1200 MIPS,(1995年Pentium Pro约440MIPS 1997年Pentium II 约466MIPS 1999年Pentium III达到1000MIPS),二、Pentium MMX(多能Pentium),新增加57条多媒体信息处理指令 片内Cache容量从16K增加到32K SIMD技术:一条指令同时处理多个数据,1、基本特征,积和运算功能(如X=a0b0a1b1a7b7)饱和计
20、算功能,传统标量处理,SIMD,2、MMX技术对编程环境的扩展,(1)MMX寄存器 由8个64位寄存器MM0 MM7组成,直接使用寄存器名MM0 MM7访问。但只能用来对数 据进行运算,不能用于寻址。,MM0 MM7非独立寄存器,是由FPU的R0R7映射而来。,(2)MMX数据类型,MMX技术定义了以下的64位数据类型:紧缩字节:8个字节紧缩成一个64位数据;紧缩字:4个字紧缩成一个64位数据;紧缩双字:2个双字紧缩成一个64位数据;四字:一个64位数据。,MMX数据格式和存储方式,紧缩字节(88位),紧缩字(4 16位),紧缩双字(2 32位),4字(64位),(3)单指令多数据执行方式,使
21、用单指令多数据(SIMD)技术对64位的MMX寄存器中的字节、字或双字实现算逻运算。例如,指令PADDSB将源操作数中的8个带符号字节加到目标操作数中的8个带符号字节上,并将8字节的结果存储到目标操作数中。,(4)数据存放格式 紧缩数据在存储器中以连续地址方式存放,有64位访问模式和32位访问模式。,指令例:字乘加指令 PMADDWD MMi,MMj 功能:,+,可以加快如 aibi 运算的速度并方便编程,Pentium基本型和Pentium MMX第一代奔腾处理器(P5架构),三、Pentium Pro,在Pentium基本型上的主要改进:将CISC指令集转换为RISC指令集 双穴封装技术:
22、,将L2Cache(256K)封装在一个模块中,L1Cache和L2Cache之间采用64位的独立总线连接,14级流水线 寄存器重命名(Register renaming):,分析并重排指令(指令重调度),优化指令的顺序执行(称为指令流分析技术)。,指令乱序执行:,数据重新定位到一个内部寄存器(速度与流水线的考虑),1.Pentium Pro的结构框图,更详细的内部结构:,2.Pentium Pro流水线结构,按序执行部分,确定下一条指令指针;形成16字节指令缓冲,指令在指令译码器上排队,指令译码并形成微操作,寄存器重命名;发送微操作到保留站(可缓冲20个微操作),将微操作从保留站发送到执行部
23、件,乱序执行部分,乱序执行微操作,更新相应寄存器、存储单元内容;恢复原始程序流顺序,退出部分,3.通过乱序来优化指令流水线,例1:调整数据相关 ADD AX,BX;AX+BX AX INC AX;AX+1 AX MOV CX,DX;DX CX.,流水线情况:,流水线阻塞,改变指令顺序后:,ADD AX,BX;AX+BX AXMOV CX,DX;DX CXINC AX;AX+1 AX.,流水线无阻塞,即通过非相关指令的执行来填充了流水线的执行部件,从而避免了流水线的时间损失。,4.寄存器重命名,优点:1.在寄存器数量有限的情况下,可提高指令执行的速度;2.在乱序执行的情况下,解决“指令伪相关”。
24、,指令伪相关 乱序情况,两条或多条指令同时向某一个寄存器写数据。,指令真相关 前述例子中,一条指令的输入依赖于上一条指令的输出。,例2:指令顺序调整结合寄存器(变量)重命名,源程序:ADD R1,R2,R3 ADD R3,R4,R5 MUL R6,R7,R3 MUL R3,R8,R9,优化后的指令顺序:ADD R1,R2,R3 MUL R6,R7,R0 ADD R3,R4,R5 MUL R0,R8,R9,由于四条指令均与R3有关,仅通过调整顺序难以优化。因此重新命名一个寄存器(变量)R0,将第2条指令与第3条指令交换,并重新命名一个寄存器R0,OP Ri Rj Rk,源操作数,目的操作数,四、
25、Pentium II,在Pentium Pro体系结构中引入MMX功能;二级Cache从256K增加到512K;增加了可重命名的段寄存器 提高了主频,Pentium II Xeon(至强):在Pentium II基础上的主要改进:二级Cache从512K增加到1M 可支持4个或更多个处理器,五、Pentium III,在PentiumII基础上的主要改进:新增70条指令,增强对多媒体信息、3维信息、互连网操作的处理能力(称为SSE指令集 Pentium 最重要的技术创新);增强的SIMD技术 既能处理整数,也能处理浮点数;256KB的二级Cache集成在芯片核心内(非双穴封装);处理器分离模式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 计算机系统 结构 并行 技术 高端 处理器
链接地址:https://www.31ppt.com/p-2266070.html