RISC处理器设计_第1页
RISC处理器设计_第2页
RISC处理器设计_第3页
RISC处理器设计_第4页
RISC处理器设计_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、RISC处理器设计胡伟武胡伟武RISC系统结构基本思想:简单结构的高效实现基本思想:简单结构的高效实现l 体:指令系统结构体:指令系统结构u操作:简单操作:简单u数据:数据:Load-Store结构,寻址方式简单结构,寻址方式简单u编码:定长编码:定长l 相:实现与使用方式相:实现与使用方式u简化硬件,提高主频简化硬件,提高主频u指令流水线技术:寄存器操作容易解决相关指令流水线技术:寄存器操作容易解决相关u编译技术编译技术l 用:性能及兼容性用:性能及兼容性u性能:每条指令周期数差不多,主频高,性能:每条指令周期数差不多,主频高,CPI高高u流水及多发射技术在提高性能的前提下不影响兼容性流水及

2、多发射技术在提高性能的前提下不影响兼容性指令系统结构指令系统的设计原则l 指令系统在计算机中的位置指令系统在计算机中的位置u硬件和软件的界面硬件和软件的界面l 设计要求设计要求u兼容性:在很长时间内保持不变兼容性:在很长时间内保持不变u通用性:适合于各种应用通用性:适合于各种应用u方便:编译器或程序员觉得好用,有较多功能方便:编译器或程序员觉得好用,有较多功能u高效:便于高效:便于CPU设计的优化,不同的实现方法得到设计的优化,不同的实现方法得到不同的性能不同的性能指令系统与系统结构l 50-60年代年代uComputer Architecture=Computer Arithmeticl 7

3、0-80年代年代uComputer Architecture=Instruction Set Designl 90年代以后年代以后uComputer Architecture=Design of CPU, Memory System, I/O System, MultiprocessorsuSearching the space of possible designs at all levels of computer systems影响指令系统设计的因素l 工艺技术工艺技术u早期的硬件昂贵,简化硬件是指令系统设计的主要因素早期的硬件昂贵,简化硬件是指令系统设计的主要因素u如何发挥存储层次的效

4、率,如何利用芯片面积如何发挥存储层次的效率,如何利用芯片面积l 系统结构系统结构u增加指令功能还是提高主频?增加指令功能还是提高主频?u并行性:并行性:SIMD、向量、多发射(兼容性好)、向量、多发射(兼容性好)、PIMl 操作系统操作系统u多进程支持、虚地址空间等多进程支持、虚地址空间等l 编译技术与程序设计语言编译技术与程序设计语言u指令的表达能力指令的表达能力l 应用程序应用程序u兼容性兼容性工艺技术的发展(1)l 工艺技术是处理器技术发展的源动力工艺技术是处理器技术发展的源动力u集成度及集成度及CPU主频提高快,访存延迟提高慢主频提高快,访存延迟提高慢u1990年:年: 33MHz I

5、ntel 386, 80ns访存延迟访存延迟u1996年:年:266MHz Intel PII, 60ns访存延迟访存延迟l 上述趋势影响系统结构研究的内容上述趋势影响系统结构研究的内容u并行技术:流水线、多处理器、磁盘阵列并行技术:流水线、多处理器、磁盘阵列u存储层次存储层次u网络网络集成度延迟逻辑电路2 倍倍/3 年年2 倍倍/3 年年存储器4 倍倍/3 年年2 倍倍/10 年年磁盘4 倍倍/3 年年2 倍倍/10 年年工艺技术的发展(2)l Moore定律定律uIntel的创始人之一的创始人之一Gordon Moore在在1971年预言每年预言每18个月芯片集成度增加一倍。个月芯片集成度

6、增加一倍。u30年来这个预言基本正确,普遍认为这个定律可以年来这个预言基本正确,普遍认为这个定律可以适用到适用到2010年年u2002年达到每个芯片年达到每个芯片100,000,000个晶体管个晶体管u2910年达到每个芯片年达到每个芯片1,000,000,000个晶体管个晶体管u这么多晶体管用来做什么?这么多晶体管用来做什么?=系统结构的研究系统结构的研究工艺技术的发展(3)l Moore定律:处理器集成度提高定律:处理器集成度提高工艺技术的发展(4)l Moore定律:存储器集成度的提高定律:存储器集成度的提高工艺技术对指令系统的影响l 早期的指令系统设计主要考虑如何减少硬件早期的指令系统

7、设计主要考虑如何减少硬件l 随着集成度的提高,如何有效利用芯片面积成随着集成度的提高,如何有效利用芯片面积成为系统结构重要研究内容,一些新的并行结构为系统结构重要研究内容,一些新的并行结构如如PIM、SIMD等必然影响指令系统等必然影响指令系统u多发射技术的兼容性好多发射技术的兼容性好l 由于由于CPU与存储器的速度差距,指令系统的设与存储器的速度差距,指令系统的设计应能较好地利用存储层次,如通过并行或流计应能较好地利用存储层次,如通过并行或流水容忍延迟。水容忍延迟。微处理器技术的发展(1)l 通常微处理器指单片上的处理器通常微处理器指单片上的处理器u1971年年Intel设计出第一个商品化微

8、处理器。设计出第一个商品化微处理器。u70年代以来,微处理器的性能提高速度远大于大型年代以来,微处理器的性能提高速度远大于大型机或小型机。机或小型机。u目前几乎所有的计算机系统都基于微处理器目前几乎所有的计算机系统都基于微处理器u微处理器性能的提高不仅得益于微电子技术,更加微处理器性能的提高不仅得益于微电子技术,更加得益于系统结构技术(近年来尤其如此)。得益于系统结构技术(近年来尤其如此)。u主频每主频每3年增加一倍,微处理器速度每年增加一倍,微处理器速度每18个月增加个月增加一倍(约每年增加一倍(约每年增加50%)。性能价格比每年增加)。性能价格比每年增加70%。微处理器技术的发展(2)l

9、微处理器与其它计算机的性能提高速度微处理器与其它计算机的性能提高速度微处理器技术的发展(3)l 微处理器性能提高越来越快微处理器性能提高越来越快系统结构对指令系统的影响l 指令系统本身是系统结构设计的一部分指令系统本身是系统结构设计的一部分l 不改变指令系统的前提下提高性能,如流水、不改变指令系统的前提下提高性能,如流水、多发射等多发射等l 指令系统的兼容性与系统结构发展的矛盾关系指令系统的兼容性与系统结构发展的矛盾关系uIntel的做法的做法编译技术对指令系统的影响l 指令是编译器的工作结果指令是编译器的工作结果l 早期的指令系统主要考虑如何便于编程早期的指令系统主要考虑如何便于编程l 编译

10、器的影响编译器的影响u寄存器分配寄存器分配F堆栈用于存放局部变量,全局数据区用于存放静态数据,堆栈用于存放局部变量,全局数据区用于存放静态数据,堆用于存放动态数据。堆用于存放动态数据。F寄存器分配要考虑一致性问题,可以被寄存器分配要考虑一致性问题,可以被aliased的数据不能的数据不能分配在寄存器中(分配在寄存器中(C中的中的volatile)。)。F为使编译器有效使用为使编译器有效使用graph coloring启发式算法,至少需启发式算法,至少需要要16个通用寄存器。个通用寄存器。u规整:所有访存指令都可用所有寻址方式规整:所有访存指令都可用所有寻址方式u简单:简化简单:简化trade-

11、offs,允许编译时确定常量,只提,允许编译时确定常量,只提供基本的通用操作。供基本的通用操作。设计指令系统考虑的因素l 操作操作u操作种类操作种类l 操作数操作数u堆栈型、累加器型、寄存器型堆栈型、累加器型、寄存器型u操作数个数和类型操作数个数和类型u访存操作数的寻址方式:寄存器、立即数、直接、访存操作数的寻址方式:寄存器、立即数、直接、间接间接.l 指令编码指令编码u定长、变长定长、变长指令系统的类型(1)l 根据指令使用数据的方式,指令系统分为以下几类根据指令使用数据的方式,指令系统分为以下几类u堆栈型堆栈型(Stack):操作数在栈顶,运算操作不用指定操作数:操作数在栈顶,运算操作不用

12、指定操作数u累加器型累加器型(Accumulator):一个操作数总在累加器中,结果:一个操作数总在累加器中,结果也写回累加器也写回累加器u寄存器型寄存器型(Register),每个操作数都由指令指定,每个操作数都由指令指定FRegister-Register型,又称为型,又称为Load-Store型,所有运算操作的操作型,所有运算操作的操作数都在寄存器中数都在寄存器中FRegister-Memory型,型,FMemory-Memory型,型,l 上述三种指令系统类型也可以分别称为上述三种指令系统类型也可以分别称为0地址指令,地址指令,单地址指令,以及多地址指令单地址指令,以及多地址指令指令系

13、统的类型(2)l 例子:不同指令系统完成例子:不同指令系统完成C=A+B的指令序列,的指令序列,假设假设A、B、C在内存中不同的单元在内存中不同的单元StackAccumulatorRegister(register-memory)Register(load-store)Push ALoad ALoad R1, ALoad R1,APush BAdd BAdd R1, BLoad R2,BAddStore CStore C, R1Add R3,R1,R2Pop CStore C R3指令系统的类型(3)l 早期的计算机多用堆栈和累加器型指令早期的计算机多用堆栈和累加器型指令u出于降低硬件复杂度

14、的考虑出于降低硬件复杂度的考虑u现在已经不用(现在已经不用(Intel有点例外)有点例外)l 80年代后的机器主要是寄存器型年代后的机器主要是寄存器型u访问寄存器比访问存储器快访问寄存器比访问存储器快u便于编译器使用和优化便于编译器使用和优化u寄存器可以用来存放变量,减少访存次数寄存器可以用来存放变量,减少访存次数寄存器指令再分类l 分类标准分类标准u运算操作中操作数的个数运算操作中操作数的个数u运算操作中存储器操作数的个数运算操作中存储器操作数的个数访存个数访存个数/操作操作数个数数个数机器例子机器例子优点优点缺点缺点0/3SPARC, MIPS,PA, Alpha,PowerPC简单、定长

15、指令,简单、定长指令,硬件简单、每条指硬件简单、每条指令时钟数少,主频令时钟数少,主频高高完成同一任务指令完成同一任务指令数多,定长指令浪数多,定长指令浪费空间费空间1/2X86, 68000不用取数直接用,不用取数直接用,指令紧凑,空间效指令紧凑,空间效率高率高指令执行周期长,指令执行周期长,访存操作数在指令访存操作数在指令中位数多,指令间中位数多,指令间相关性较难判断相关性较难判断2/2,3/3VAX完成同一任务指令完成同一任务指令最少,指令最紧凑最少,指令最紧凑指令长度变化大,指令长度变化大,执行指令周期变化执行指令周期变化大,访存瓶颈,指大,访存瓶颈,指令间相关型难判断令间相关型难判断

16、存储访问的表示l 两个方面两个方面u如何表示地址:寻址方式如何表示地址:寻址方式u给定一个地址,访问目标及其长度给定一个地址,访问目标及其长度访存对象l 存储器按字节编址:所有地址都是字节地址存储器按字节编址:所有地址都是字节地址l 访问长度:字节、半字、字、双字访问长度:字节、半字、字、双字l 地址对齐简化硬件设计:如字地址最低两位为地址对齐简化硬件设计:如字地址最低两位为0l Big Endian和和Little Endian:影响不同机器间的:影响不同机器间的数据兼容性。数据兼容性。uLittle Endian地址指向一个字的最右字节,地址指向一个字的最右字节,Big Endian 反之

17、反之寻址方式(1)l 如何在指令中表示访存地址如何在指令中表示访存地址寻寻址址方方式式格格式式含含义义RegisterADD R1, R2regsR1=regR1+regR2ImmediateADD R1, #2regsR1=regR1+2DisplacementADD R1, 100(R2)regsR1=regR1+mem100+regR2Reg. IndirectADD R1, (R2)regsR1=regR1+memregR2IndexedADD R1, (R2+R3)regsR1=regR1+memregR2+regR3AbsoluteADD R1, (100)regsR1=regR1

18、+mem100Mem. IndirectADD R1, (R2)regsR1=regR1+memmemregR2AutoincrementADD R1, (R2)+regsR1=regR1+memregR2,regR2=regR2+dAutodecrementADD R1, -(R2)regR2=regR2-d,regsR1=regR1+memregR2ScaledADD R1, 100(R2)R3regsR1=regR1+mem100+regR2+regR3*d寻址方式(2)l 常用寻址方式常用寻址方式u三个程序在三个程序在VAX机上的统计机上的统计0 00.10.10.20.20.30.3

19、0.40.40.50.50.60.6Disp.Disp.Imm.Imm.Reg.Reg.Ind.Ind.ScaledScaledMem.Mem.Ind.Ind.TexTexSpiceSpicegccgcc寻址方式(3)l 至少支持至少支持Register, Immediate, Displacement, 和和Register indirect四种寻址方式四种寻址方式l 地址偏移量位数地址偏移量位数12-16位位l 立即数位数立即数位数8-16位位指令操作l Rule of Thumb:最常用的指令是简单指令:最常用的指令是简单指令uSPECint92的的X86指令统计指令统计u把这些简单指令

20、做得快一点,其它慢一点没关系把这些简单指令做得快一点,其它慢一点没关系编号编号指令指令比例比例1load22%2conditional branch20%3compare16%4store12%5add8%6and6%7sub5%8move reg-reg4%9call1%10return1%总计总计96%转移指令特点l 条件转移最多条件转移最多u偏移量至少要偏移量至少要8位位u转移条件简单:与转移条件简单:与0比较的最多比较的最多0 00.10.10.20.20.30.30.40.40.50.50.60.60.70.70.80.80.90.9branchbranchjumpjumpcall/

21、retcall/retIntIntFPFP指令编码l 需要考虑的因素需要考虑的因素u操作码部分比较简单操作码部分比较简单u操作数的个数、类型对指令长度影响很大操作数的个数、类型对指令长度影响很大u变长指令程序代码短、定长指令实现简单变长指令程序代码短、定长指令实现简单l 编码方法编码方法u定长:定长:RISCu变长:变长:VAX的指令的指令1-53字节,其中字节,其中ADD指令指令3-19字节字节u混合混合从上述分析可以看出l 简单操作和简单寻址方式用得最多简单操作和简单寻址方式用得最多u10简单操作指令占简单操作指令占96%u寄存器寄存器, 立即数立即数, 偏移寻址偏移寻址, 寄存器间接寻址

22、四种寻址方式寄存器间接寻址四种寻址方式l 简单指令便于高效实现和使用简单指令便于高效实现和使用uload-store结构简化硬件设计,提高主频结构简化硬件设计,提高主频u定长简化译码定长简化译码u符合编译器符合编译器“常用的做得快,少用的只要对常用的做得快,少用的只要对”的原则的原则l 硬件优化应充分考虑兼容性硬件优化应充分考虑兼容性u流水、多发射不改变指令系统流水、多发射不改变指令系统u流水、多发射技术在流水、多发射技术在load-store指令系统上容易实现,否指令系统上容易实现,否则相关性分析困难则相关性分析困难l 上述原因呼唤上述原因呼唤RISC系统结构系统结构一个“典型”的RISCl

23、 32位定长指令位定长指令l 32个个32位通用寄存器位通用寄存器l 三寄存器操作数运算指令三寄存器操作数运算指令l Load-Store指令,基址指令,基址+偏移量寻址方式偏移量寻址方式l 简单转移条件简单转移条件l Delay-BranchMIPS指令格式OP(6)RS1(5)RS2(5)RD(5)SA(5)OPX(6)R-typeOP(6)RS(5)RD(5)ImmediateI-typeOP(6)targetJ-typeRISC发展过程(1)l 1964年年CDC公司推出的公司推出的CDC 6600是第一台超是第一台超级计算机,具备了级计算机,具备了RISC的一些基本特征的一些基本特征

24、uCDC 6600的设计者认识到为了实现有效的流水技的设计者认识到为了实现有效的流水技术,需要简化体系结构术,需要简化体系结构uLoad-Store结构结构u记分板记分板(Score-Boarding)动态流水线调度动态流水线调度u乱序执行乱序执行(Out-of-Order)技术技术l 1976年的年的Cray-1向量机使用了与向量机使用了与CDC 6600类类似的想法似的想法uCray是是CDC 6600的主要设计者之一的主要设计者之一l 上述简化结构以高效实现的想法在上述简化结构以高效实现的想法在60-70年代年代没有受到小型机和微处理器设计者的重视没有受到小型机和微处理器设计者的重视RI

25、SC发展过程(2)l 1968年年John Cocke在在IBM的的San Jose研究中心开始研究中心开始ASC(Advanced Scientific Computer)项目的研究项目的研究u基本思想是让编译器做更多的指令调度以减少硬件复杂度基本思想是让编译器做更多的指令调度以减少硬件复杂度u还提出了每个周期发射多条指令的思想还提出了每个周期发射多条指令的思想uASC计划后来被取消,计划后来被取消,Cocke在在1971年到年到Future Systeml 1975年年Cocke到到IBM的的Yorktown研究中心开始研制研究中心开始研制IBM 801,801是最早开始设计的是最早开始设

26、计的RISC处理器处理器uCocke获得了获得了Eckert-Mauchly和和Turing奖奖u801是是PowerPC的前身的前身l 比比801稍晚开始的有稍晚开始的有Patterson在在Berkeley的的RISC-I及及RISC-II与与Hennessy在在Standford的的MIPS项目项目u这两个大学的研究生曾参与这两个大学的研究生曾参与801项目的研究,后来返回大学项目的研究,后来返回大学uRISC-II是是SPARC的前身,的前身,MIPS项目是项目是MIPS处理器前身处理器前身RISC发展过程(3)l 801的项目经理的项目经理Joel Birnbaum到到HP创立了创立

27、了PA-RISCl DEC在推出在推出Alpha之前曾经使用之前曾经使用MIPS处理器三年处理器三年l 1994年年Intel和和HP宣布使用相同的系统结构宣布使用相同的系统结构l 从上述发展过程不难解释刚开始时五个从上述发展过程不难解释刚开始时五个RISC处理器处理器的相似性的相似性l 后来每个后来每个RISC处理器有了不同的发展处理器有了不同的发展u如如Alpha的指令简单,超流水结构,流水级多,主频高,的指令简单,超流水结构,流水级多,主频高,“a speed demon”uPowerPC指令功能强,灵活,甚至有点象指令功能强,灵活,甚至有点象CISC,“a brainiac”常见RIS

28、C指令系统比较l 通过比较常见通过比较常见RISC处理器的指令系统加深对处理器的指令系统加深对RISC的了解的了解uMIPS IV (Alpha与与MIPS很象很象)uPA-RISC 1.1 and 2.0uPowerPCuSPARC v.9l 通过以下方面进行比较通过以下方面进行比较u指令格式指令格式u寻址方式寻址方式u指令功能指令功能RISC指令系统的发展MIPSALPHAPA-RISCSPARCPowerPC1986MIPS 1PA-RISC 1.0RT/PC1987SPARC v819881989MIPS II1990PA-RISC 1.1Power 119911992MIPS III

29、(64b)Alpha(64b)1993Power 2&Power PC1994MIPS IV(64b)SPARC v9(64b)1995Power PC(64b)1996PA-RISC 2.0(64b)指令格式比较OP(6)RS1(5)RS2(5)Const(16)MIPSOP(6)RD(5)RS1(5)Const(16)PowerPCOP(6)RS1(5)RS2(5)Const(11)OPX(6)PA-RISCRS1(5)1RD(5)OP(2)OPX(6)Const(13)SPARCOP(6)RS1(5)RS2(5)RD(5)SA(5)OPX(6)MIPSOP(6)RD(5)RS1(

30、5)RS2(5)OPX(11)PowerPCOP(6)RS1(5)RS2(5)RD(5)OPX(11)PA-RISCRS1(5)RS2(5)0RD(5)OP(2)OPX(6)OPX(8)SPARCOP(6)RS1(5) OPX/RS2Const(14)MIPSOP(6)OPX(5)RS1(5)Const(16)PowerPCOP(6)RS1(5)RS2(5)Const(11)OPX(3)PA-RISCOP(2)OPX(11)Const(19)SPARCOPXO COP(6)Const(24)MIPSOP(6)Const(26)PowerPCOP(6)RS1(5)RS2(5)Const(14)P

31、A-RISCOP(2)Const(19)SPARCOPXO CReg-RegReg-ImmBranchJump/Call寻址方式比较寻寻址址方方式式MIPS IVPA-RISC 1.0 PowerPC SPARC v9RegisterImm.Disp. (reg+offser)Indexed(reg+reg)(FP)Scaled(reg+scaled reg)(reg+offset+update reg)(reg+reg+update reg)指令功能比较l 所有所有RISC处理器都有一些公共指令处理器都有一些公共指令uload/store指令指令u算术运算及逻辑指令算术运算及逻辑指令u控制流

32、指令控制流指令l 不同处理器在比较及转移指令时有较大不同不同处理器在比较及转移指令时有较大不同公共RISC指令(1)l Load/Store指令指令u对任何对任何GPR和和FPR进行存取操作(通常进行存取操作(通常R0总是为总是为0)uMIPS的例子的例子指指令令指指令令功功能能LW R1, 32(R2)取取字字,偏偏移移量量寻寻址址LW R1, 32(R0)取取字字,绝绝对对地地址址LB R1, 30(R2)取取字字节节,高高 24 位位用用符符号号位位扩扩充充LBU R1, 30(R2)取取字字节节,高高 24 位位扩扩 0LH R1, 30(R2)取取半半字字,高高 16 位位用用符符号

33、号位位扩扩充充SH 30(R2), R1存存 R1 的的低低 16 位位SB 31(R2), R1存存 R1 的的低低 8 位位LF F0, 50(R2)取取字字到到 F0LD F0, 52(R2)取取双双字字到到 F1 和和 F0公共RISC指令(2)l ALU指令指令u所有所有ALU指令都是寄存器型的指令都是寄存器型的uALU的常见操作有加、减、与、或、异或、移位、比较,的常见操作有加、减、与、或、异或、移位、比较,乘除法在专门的部件进行乘除法在专门的部件进行uMIPS的例子的例子指指令令指指令令功功能能ADD R1, R2, R3R2 的的内内容容和和 R3 的的内内容容相相加加,结结果

34、果放放 R1ADDI R1, R2, #3R2 的的内内容容和和立立即即数数 3 相相加加,结结果果放放 R1ADDI R1, R0, #3相相当当于于 MOV R1, #3ADD R1, R0, R3相相当当于于 MOV R1, R3STL R1, R2, R3若若 R2R3, 则则 R1=0, 否否则则 R1=1(Set Less Than)公共RISC指令(3)l 控制流指令控制流指令u绝对跳转绝对跳转jump和相对转移和相对转移branchuMIPS的例子的例子指指令令指指令令功功能能J name指指令令中中26位位立立即即数数左左移移两两位位,替替换换PC+4 的的低低28 位位JA

35、L name同同上上,但但先先把把PC+4存存到到R31JALR R2把把PC+4存存到到R31并并置置PC为为R2的的值值BEQZ R2, name若若R2=0,PC=PC+offsetBNEZ R2, name若若R2=0,PC=PC+offset比较及条件转移(1)l 转移条件转移条件uSPARC v.8使用使用4位条件码位条件码(CC),该条件码在程序状态字中,该条件码在程序状态字中F整数运算指令设置整数运算指令设置CC,条件转移指令检测,条件转移指令检测CCF浮点运算有另外两位浮点运算有另外两位CCFv.9为了支持为了支持64位运算增加了位运算增加了4位整数位整数CC,3位浮点位浮点

36、CCuMIPS直接比较寄存器内容判断是否转移直接比较寄存器内容判断是否转移F浮点部件有一位条件码,记录浮点部件有一位条件码,记录cmp指令的结果指令的结果uPowerPC有有4位位CC,一个条件寄存器中有,一个条件寄存器中有8份份4位位CCF整数和浮点运算各整数和浮点运算各1位,其它用于比较指令。位,其它用于比较指令。FBranch指令需指定根据哪一位进行转移指令需指定根据哪一位进行转移F运算指令中有一位指定该指令是否影响运算指令中有一位指定该指令是否影响CCuPA-RISC有多中选择,最常用的是比较两个寄存器的值并有多中选择,最常用的是比较两个寄存器的值并根据结果决定是否转移根据结果决定是否

37、转移比较及条件转移(2)l Delayed Branch技术技术u紧挨紧挨Branch指令后面的指令视为指令后面的指令视为Branch前面的指令执行可前面的指令执行可以避免流水线断流。以避免流水线断流。u转移不成功时取消已执行的转移不成功时取消已执行的delay slot指令可以把转移目标指令可以把转移目标的指令安排在的指令安排在delay slot中。中。u转移成功时取消已执行的转移成功时取消已执行的delay slot指令可以把转移不成功指令可以把转移不成功的指令安排在的指令安排在delay slot中。中。PowerPCMIPSSPARCPA-RISCPlain Branch只只有有转转

38、移移不不成成功功时时执执行行后后续续指指令令无无无无无无DelayedBranch无无总总是是执执行行后后续续指指令令总总是是执执行行后后续续指指令令总总是是执执行行后后续续指指令令取取消消 DelayedBranch无无转转移移不不成成功功时时取取消消已已执执行行的的后后续续指指令令转转移移不不成成功功时时取取消消已已执执行行的的后后续续指指令令向向前前转转移移成成功功或或向向后后转转移移不不成成功功时时取取消消已已执执行行的的后后续续指指令令指令系统的其它功能l 下面指令在前述的指令系统中也很常见(至少在两个下面指令在前述的指令系统中也很常见(至少在两个指令系统中出现)指令系统中出现)uA

39、tomic Swap指令指令u64位指令,位指令,ALPHA本来就是本来就是64位的,因此不区分位的,因此不区分64位指令位指令u预取指令预取指令uBig Endian与与Little Endian的切换的切换u共享存储同步指令共享存储同步指令u等等Atomic Swap指令l 以以MIPS的的LL和和SC指令指令 为例为例uLL(Load Linked)取数且置系统中取数且置系统中LLbit为为1uLL为为1时,处理器检查相应单元是否被修改,如果其它处理时,处理器检查相应单元是否被修改,如果其它处理器或设备访问了相应单元或执行了器或设备访问了相应单元或执行了ERET操作,操作,LLbit置为

40、置为0u执行执行SC(Store Conditional)时若时若Llbit为为1,则成功,目标寄,则成功,目标寄存器为存器为1;否则存数不成功,目标寄存器为;否则存数不成功,目标寄存器为0L1: LL R1, (R3) ADD R2, R1, 1 SC R2, (R3) BEQ R2, 0, L1 NOPMIPS部分指令特色(1)l 作为比较早期的作为比较早期的RISC系统,系统,MIPS的指令系统已经发的指令系统已经发展了四代,不断增加新指令,包括展了四代,不断增加新指令,包括u边界不对齐的数据传送边界不对齐的数据传送uTLB指令(在指令(在MIPS中中TLB失效由软件解决)失效由软件解决

41、)FTLBI,TLBR,TLBW,TLBPuSYSCALLuCTCi, CFCiuNOR指令指令uJUMP/CALL指令,绝对跳转,指令中的立即数左移两位指令,绝对跳转,指令中的立即数左移两位替换替换PC的低的低28位地址位地址u条件过程调用,条件过程调用,BGEZAL, BLTZALuLL/SC指令用于原子操作指令用于原子操作uRECIP和和RSQRT(Reciprocal)DAVEM100M104JOHNR2初始值初始值DAVNR2DAVER2执行执行“LWL, R2, 101”后后执行执行“LWR, R2, 104”后后DAVEM200M204JOHNR2初始值初始值DOHNR2DAVE

42、R2执行执行“LWL, R2, 203”后后执行执行“LWR, R2, 206”后后MIPS部分指令特色(2)l 边界不对齐的数据传送边界不对齐的数据传送SPARC部分指令特色(1)l 寄存器窗口寄存器窗口u多组寄存器用于不同进程,多组寄存器用于不同进程,8个全局寄存器用于传递参数等个全局寄存器用于传递参数等u2-32个寄存器穿口,每个个寄存器穿口,每个24个寄存器个寄存器u过程调用和退出不用把现场保留到存储器过程调用和退出不用把现场保留到存储器uSAVE和和RESTORE指令指令FSAVE做加法,源寄存器来自调用过程做加法,源寄存器来自调用过程(caller),目标寄存器来自被,目标寄存器来

43、自被调用过程调用过程(callee),该指令可用于自动修改堆栈指针。,该指令可用于自动修改堆栈指针。FRESTORE做加法,源寄存器来自被调用过程做加法,源寄存器来自被调用过程(callee),目标寄存器,目标寄存器来自调用过程来自调用过程(caller),该指令用来自动释放堆栈,该指令用来自动释放堆栈l “标志标志”加减指令加减指令u数据的低两位指出数据类型数据的低两位指出数据类型u适用于适用于LIPS和和Smalltalk等等SPARC部分指令特色(2)l 其它特色其它特色u转移指令转移指令JMPL把返回地址存在把返回地址存在Rd中,中,Rd为为R0时相当于时相当于JR,Rd为为R31时相

44、当于时相当于JALRu128浮点运算和数据传送指令浮点运算和数据传送指令u转移指令给出转移是否成功的预测转移指令给出转移是否成功的预测uPOPC计算一个操作数中计算一个操作数中“1”的个数的个数uCASA指令用于原子操作,把一个寄存器的值与一个内指令用于原子操作,把一个寄存器的值与一个内存单元的值比较,如果相等,把内存的值与另一个寄存存单元的值比较,如果相等,把内存的值与另一个寄存器的值交换器的值交换uILLTRAP:非法指令错:非法指令错u等等等等PowerPC部分指令特色l Link和和Count寄存器寄存器uLink寄存器用于保存返回地址,实现快速过程调用寄存器用于保存返回地址,实现快速

45、过程调用uCount寄存器用于循环计数,每次自动递减寄存器用于循环计数,每次自动递减u这两个寄存器还可以放转移地址这两个寄存器还可以放转移地址uPowerPC不用不用Delay Slotl 其它特色其它特色uLoad和和Store指令同时存取多个寄存器(多达指令同时存取多个寄存器(多达32个)个)uLoad和和Store字符串(变长或定长、对齐或不对齐)字符串(变长或定长、对齐或不对齐)u乘加和乘减指令乘加和乘减指令uLWARX/STWCX实现原子操作,类似于实现原子操作,类似于LL/SCu把数据预取到把数据预取到CACHE的指令的指令u多种移位指令,比较灵活。多种移位指令,比较灵活。PA-RISC部分指令特色l Nullificati

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论