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

下载本文档

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

文档简介

1、RISC处理器设计RISC系统结构基本思想:简单结构的高效实现n体:指令系统结构n操作:简单n数据:Load-Store结构,寻址方式简单n编码:定长n相:实现与使用方式n简化硬件,提高主频n指令流水线技术:寄存器操作容易解决相关n编译技术n用:性能及兼容性n性能:每条指令周期数差不多,主频高,CPI高n流水及多发射技术在提高性能的前提下不影响兼容性指令系统结构指令系统的设计原则n指令系统在计算机中的位置n硬件和软件的界面n设计要求n兼容性:在很长时间内保持不变n通用性:适合于各种应用n方便:编译器或程序员觉得好用,有较多功能n高效:便于CPU设计的优化,不同的实现方法得到不同的性能指令系统与

2、系统结构n50-60年代nComputer Architecture=Computer Arithmeticn70-80年代nComputer Architecture=Instruction Set Designn90年代以后nComputer Architecture=Design of CPU, Memory System, I/O System, MultiprocessorsnSearching the space of possible designs at all levels of computer systems影响指令系统设计的因素n工艺技术n早期的硬件昂贵,简化硬件是指令

3、系统设计的主要因素n如何发挥存储层次的效率,如何利用芯片面积n系统结构n增加指令功能还是提高主频?n并行性:SIMD、向量、多发射(兼容性好)、PIMn操作系统n多进程支持、虚地址空间等n编译技术与程序设计语言n指令的表达能力n应用程序n兼容性工艺技术的发展(1)n工艺技术是处理器技术发展的源动力n集成度及CPU主频提高快,访存延迟提高慢n1990年: 33MHz Intel 386, 80ns访存延迟n1996年:266MHz Intel PII, 60ns访存延迟n上述趋势影响系统结构研究的内容n并行技术:流水线、多处理器、磁盘阵列n存储层次n网络集成度延迟逻辑电路2 倍倍/3 年年2 倍

4、倍/3 年年存储器4 倍倍/3 年年2 倍倍/10 年年磁盘4 倍倍/3 年年2 倍倍/10 年年工艺技术的发展(2)nMoore定律nIntel的创始人之一Gordon Moore在1971年预言每18个月芯片集成度增加一倍。n30年来这个预言基本正确,普遍认为这个定律可以适用到2010年n2002年达到每个芯片100,000,000个晶体管n2910年达到每个芯片1,000,000,000个晶体管n这么多晶体管用来做什么?=系统结构的研究工艺技术的发展(3)nMoore定律:处理器集成度提高工艺技术的发展(4)nMoore定律:存储器集成度的提高工艺技术对指令系统的影响n早期的指令系统设计

5、主要考虑如何减少硬件n随着集成度的提高,如何有效利用芯片面积成为系统结构重要研究内容,一些新的并行结构如PIM、SIMD等必然影响指令系统n多发射技术的兼容性好n由于CPU与存储器的速度差距,指令系统的设计应能较好地利用存储层次,如通过并行或流水容忍延迟。微处理器技术的发展(1)n通常微处理器指单片上的处理器n1971年Intel设计出第一个商品化微处理器。n70年代以来,微处理器的性能提高速度远大于大型机或小型机。n目前几乎所有的计算机系统都基于微处理器n微处理器性能的提高不仅得益于微电子技术,更加得益于系统结构技术(近年来尤其如此)。n主频每3年增加一倍,微处理器速度每18个月增加一倍(约

6、每年增加50%)。性能价格比每年增加70%。微处理器技术的发展(2)n微处理器与其它计算机的性能提高速度微处理器技术的发展(3)n微处理器性能提高越来越快系统结构对指令系统的影响n指令系统本身是系统结构设计的一部分n不改变指令系统的前提下提高性能,如流水、多发射等n指令系统的兼容性与系统结构发展的矛盾关系nIntel的做法编译技术对指令系统的影响n指令是编译器的工作结果n早期的指令系统主要考虑如何便于编程n编译器的影响n寄存器分配n堆栈用于存放局部变量,全局数据区用于存放静态数据,堆用于存放动态数据。n寄存器分配要考虑一致性问题,可以被aliased的数据不能分配在寄存器中(C中的volati

7、le)。n为使编译器有效使用graph coloring启发式算法,至少需要16个通用寄存器。n规整:所有访存指令都可用所有寻址方式n简单:简化trade-offs,允许编译时确定常量,只提供基本的通用操作。设计指令系统考虑的因素n操作n操作种类n操作数n堆栈型、累加器型、寄存器型n操作数个数和类型n访存操作数的寻址方式:寄存器、立即数、直接、间接.n指令编码n定长、变长指令系统的类型(1)n根据指令使用数据的方式,指令系统分为以下几类n堆栈型(Stack):操作数在栈顶,运算操作不用指定操作数n累加器型(Accumulator):一个操作数总在累加器中,结果也写回累加器n寄存器型(Regis

8、ter),每个操作数都由指令指定nRegister-Register型,又称为Load-Store型,所有运算操作的操作数都在寄存器中nRegister-Memory型,nMemory-Memory型,n上述三种指令系统类型也可以分别称为0地址指令,单地址指令,以及多地址指令指令系统的类型(2)n例子:不同指令系统完成C=A+B的指令序列,假设A、B、C在内存中不同的单元StackAccumulatorRegister(register-memory)Register(load-store)Push ALoad ALoad R1, ALoad R1,APush BAdd BAdd R1, BL

9、oad R2,BAddStore CStore C, R1Add R3,R1,R2Pop CStore C R3指令系统的类型(3)n早期的计算机多用堆栈和累加器型指令n出于降低硬件复杂度的考虑n现在已经不用(Intel有点例外)n80年代后的机器主要是寄存器型n访问寄存器比访问存储器快n便于编译器使用和优化n寄存器可以用来存放变量,减少访存次数寄存器指令再分类n分类标准n运算操作中操作数的个数n运算操作中存储器操作数的个数访存个数访存个数/操作操作数个数数个数机器例子机器例子优点优点缺点缺点0/3SPARC, MIPS,PA, Alpha,PowerPC简单、定长指令,简单、定长指令,硬件简

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

11、何表示地址:寻址方式n给定一个地址,访问目标及其长度访存对象n存储器按字节编址:所有地址都是字节地址n访问长度:字节、半字、字、双字n地址对齐简化硬件设计:如字地址最低两位为0nBig Endian和Little Endian:影响不同机器间的数据兼容性。nLittle Endian地址指向一个字的最右字节,Big Endian 反之寻址方式(1)n如何在指令中表示访存地址寻寻址址方方式式格格式式含含义义RegisterADD R1, R2regsR1=regR1+regR2ImmediateADD R1, #2regsR1=regR1+2DisplacementADD R1, 100(R2)

12、regsR1=regR1+mem100+regR2Reg. IndirectADD R1, (R2)regsR1=regR1+memregR2IndexedADD R1, (R2+R3)regsR1=regR1+memregR2+regR3AbsoluteADD R1, (100)regsR1=regR1+mem100Mem. IndirectADD R1, (R2)regsR1=regR1+memmemregR2AutoincrementADD R1, (R2)+regsR1=regR1+memregR2,regR2=regR2+dAutodecrementADD R1, -(R2)regR

13、2=regR2-d,regsR1=regR1+memregR2ScaledADD R1, 100(R2)R3regsR1=regR1+mem100+regR2+regR3*d寻址方式(2)n至少支持Register, Immediate, Displacement, 和Register indirect四种寻址方式n地址偏移量位数12-16位n立即数位数8-16位指令操作nRule of Thumb:最常用的指令是简单指令nSPECint92的X86指令统计n把这些简单指令做得快一点,其它慢一点没关系编号编号指令指令比例比例1load22%2conditional branch20%3comp

14、are16%4store12%5add8%6and6%7sub5%8move reg-reg4%9call1%10return1%总计总计96%转移指令特点n条件转移最多n偏移量至少要8位n转移条件简单:与0比较的最多指令编码n需要考虑的因素n操作码部分比较简单n操作数的个数、类型对指令长度影响很大n变长指令程序代码短、定长指令实现简单n编码方法n定长:RISCn变长:VAX的指令1-53字节,其中ADD指令3-19字节n混合从上述分析可以看出n简单操作和简单寻址方式用得最多n10简单操作指令占96%n寄存器, 立即数, 偏移寻址, 寄存器间接寻址四种寻址方式n简单指令便于高效实现和使用nlo

15、ad-store结构简化硬件设计,提高主频n定长简化译码n符合编译器“常用的做得快,少用的只要对”的原则n硬件优化应充分考虑兼容性n流水、多发射不改变指令系统n流水、多发射技术在load-store指令系统上容易实现,否则相关性分析困难n上述原因呼唤RISC系统结构一个“典型”的RISCn32位定长指令n32个32位通用寄存器n三寄存器操作数运算指令nLoad-Store指令,基址+偏移量寻址方式n简单转移条件nDelay-BranchMIPS指令格式OP(6)RS1(5)RS2(5)RD(5)SA(5)OPX(6)R-typeOP(6)RS(5)RD(5)ImmediateI-typeOP(

16、6)targetJ-typeRISC发展过程(1)n1964年CDC公司推出的CDC 6600是第一台超级计算机,具备了RISC的一些基本特征nCDC 6600的设计者认识到为了实现有效的流水技术,需要简化体系结构nLoad-Store结构n记分板(Score-Boarding)动态流水线调度n乱序执行(Out-of-Order)技术n1976年的Cray-1向量机使用了与CDC 6600类似的想法nCray是CDC 6600的主要设计者之一n上述简化结构以高效实现的想法在60-70年代没有受到小型机和微处理器设计者的重视RISC发展过程(2)n1968年John Cocke在IBM的San

17、Jose研究中心开始ASC(Advanced Scientific Computer)项目的研究n基本思想是让编译器做更多的指令调度以减少硬件复杂度n还提出了每个周期发射多条指令的思想nASC计划后来被取消,Cocke在1971年到Future Systemn1975年Cocke到IBM的Yorktown研究中心开始研制IBM 801,801是最早开始设计的RISC处理器nCocke获得了Eckert-Mauchly和Turing奖n801是PowerPC的前身n比801稍晚开始的有Patterson在Berkeley的RISC-I及RISC-II与Hennessy在Standford的MIP

18、S项目n这两个大学的研究生曾参与801项目的研究,后来返回大学nRISC-II是SPARC的前身,MIPS项目是MIPS处理器前身RISC发展过程(3)n801的项目经理Joel Birnbaum到HP创立了PA-RISCnDEC在推出Alpha之前曾经使用MIPS处理器三年n1994年Intel和HP宣布使用相同的系统结构n从上述发展过程不难解释刚开始时五个RISC处理器的相似性n后来每个RISC处理器有了不同的发展n如Alpha的指令简单,超流水结构,流水级多,主频高,“a speed demon”nPowerPC指令功能强,灵活,甚至有点象CISC,“a brainiac”常见RISC指

19、令系统比较n通过比较常见RISC处理器的指令系统加深对RISC的了解nMIPS IV (Alpha与MIPS很象)nPA-RISC 1.1 and 2.0nPowerPCnSPARC v.9n通过以下方面进行比较n指令格式n寻址方式n指令功能RISC指令系统的发展MIPSALPHAPA-RISCSPARCPowerPC1986MIPS 1PA-RISC 1.0RT/PC1987SPARC v819881989MIPS II1990PA-RISC 1.1Power 119911992MIPS III(64b)Alpha(64b)1993Power 2&Power PC1994MIPS I

20、V(64b)SPARC v9(64b)1995Power PC(64b)1996PA-RISC 2.0(64b)寻址方式比较寻寻址址方方式式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)指令功能比较n所有RISC处理器都有一些公共指令nload/store指令n算术运算及逻辑指令n控制流指令n不同处理器在比较及转移指令时有较大不同比较及条件转移

21、(1)n转移条件nSPARC v.8使用4位条件码(CC),该条件码在程序状态字中n整数运算指令设置CC,条件转移指令检测CCn浮点运算有另外两位CCnv.9为了支持64位运算增加了4位整数CC,3位浮点CCnMIPS直接比较寄存器内容判断是否转移n浮点部件有一位条件码,记录cmp指令的结果nPowerPC有4位CC,一个条件寄存器中有8份4位CCn整数和浮点运算各1位,其它用于比较指令。nBranch指令需指定根据哪一位进行转移n运算指令中有一位指定该指令是否影响CCnPA-RISC有多中选择,最常用的是比较两个寄存器的值并根据结果决定是否转移比较及条件转移(2)nDelayed Branc

22、h技术n紧挨Branch指令后面的指令视为Branch前面的指令执行可以避免流水线断流。n转移不成功时取消已执行的delay slot指令可以把转移目标的指令安排在delay slot中。n转移成功时取消已执行的delay slot指令可以把转移不成功的指令安排在delay slot中。PowerPCMIPSSPARCPA-RISCPlain Branch只只有有转转移移不不成成功功时时执执行行后后续续指指令令无无无无无无DelayedBranch无无总总是是执执行行后后续续指指令令总总是是执执行行后后续续指指令令总总是是执执行行后后续续指指令令取取消消 DelayedBranch无无转转移移

23、不不成成功功时时取取消消已已执执行行的的后后续续指指令令转转移移不不成成功功时时取取消消已已执执行行的的后后续续指指令令向向前前转转移移成成功功或或向向后后转转移移不不成成功功时时取取消消已已执执行行的的后后续续指指令令指令系统的其它功能n下面指令在前述的指令系统中也很常见(至少在两个指令系统中出现)nAtomic Swap指令n64位指令,ALPHA本来就是64位的,因此不区分64位指令n预取指令nBig Endian与Little Endian的切换n共享存储同步指令n等Atomic Swap指令n以MIPS的LL和SC指令 为例nLL(Load Linked)取数且置系统中LLbit为1

24、nLL为1时,处理器检查相应单元是否被修改,如果其它处理器或设备访问了相应单元或执行了ERET操作,LLbit置为0n执行SC(Store Conditional)时若Llbit为1,则成功,目标寄存器为1;否则存数不成功,目标寄存器为0L1: LL R1, (R3) ADD R2, R1, 1 SC R2, (R3) BEQ R2, 0, L1 NOPMIPS部分指令特色(1)n作为比较早期的RISC系统,MIPS的指令系统已经发展了四代,不断增加新指令,包括n边界不对齐的数据传送nTLB指令(在MIPS中TLB失效由软件解决)nTLBI,TLBR,TLBW,TLBPnSYSCALLnCTC

25、i, CFCinNOR指令nJUMP/CALL指令,绝对跳转,指令中的立即数左移两位替换PC的低28位地址n条件过程调用,BGEZAL, BLTZALnLL/SC指令用于原子操作nRECIP和RSQRT(Reciprocal)DAVEM100M104JOHNR2初始值初始值DAVNR2DAVER2执行执行“LWL, R2, 101”后后执行执行“LWR, R2, 104”后后DAVEM200M204JOHNR2初始值初始值DOHNR2DAVER2执行执行“LWL, R2, 203”后后执行执行“LWR, R2, 206”后后MIPS部分指令特色(2)n边界不对齐的数据传送SPARC部分指令特色(1)n寄存器窗口n多组寄存器用于不同进程,8个全局寄存器用

温馨提示

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

评论

0/150

提交评论