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

下载本文档

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

文档简介

RISC处理器设计,RISC系统结构,基本思想:简单结构的高效实现体:指令系统结构操作:简单数据:Load-Store结构,寻址方式简单编码:定长相:实现与使用方式简化硬件,提高主频指令流水线技术:寄存器操作容易解决相关编译技术用:性能及兼容性性能:每条指令周期数差不多,主频高,CPI高流水及多发射技术在提高性能的前提下不影响兼容性,指令系统结构,指令系统的设计原则,指令系统在计算机中的位置硬件和软件的界面设计要求兼容性:在很长时间内保持不变通用性:适合于各种应用方便:编译器或程序员觉得好用,有较多功能高效:便于CPU设计的优化,不同的实现方法得到不同的性能,指令系统与系统结构,50-60年代ComputerArchitecture=ComputerArithmetic70-80年代ComputerArchitecture=InstructionSetDesign90年代以后ComputerArchitecture=DesignofCPU,MemorySystem,I/OSystem,MultiprocessorsSearchingthespaceofpossibledesignsatalllevelsofcomputersystems,影响指令系统设计的因素,工艺技术早期的硬件昂贵,简化硬件是指令系统设计的主要因素如何发挥存储层次的效率,如何利用芯片面积系统结构增加指令功能还是提高主频?并行性:SIMD、向量、多发射(兼容性好)、PIM操作系统多进程支持、虚地址空间等编译技术与程序设计语言指令的表达能力应用程序兼容性,工艺技术的发展(1),工艺技术是处理器技术发展的源动力集成度及CPU主频提高快,访存延迟提高慢1990年:33MHzIntel386,80ns访存延迟1996年:266MHzIntelPII,60ns访存延迟上述趋势影响系统结构研究的内容并行技术:流水线、多处理器、磁盘阵列存储层次网络,工艺技术的发展(2),Moore定律Intel的创始人之一GordonMoore在1971年预言每18个月芯片集成度增加一倍。30年来这个预言基本正确,普遍认为这个定律可以适用到2010年2002年达到每个芯片100,000,000个晶体管2910年达到每个芯片1,000,000,000个晶体管这么多晶体管用来做什么?=系统结构的研究,工艺技术的发展(3),Moore定律:处理器集成度提高,工艺技术的发展(4),Moore定律:存储器集成度的提高,工艺技术对指令系统的影响,早期的指令系统设计主要考虑如何减少硬件随着集成度的提高,如何有效利用芯片面积成为系统结构重要研究内容,一些新的并行结构如PIM、SIMD等必然影响指令系统多发射技术的兼容性好由于CPU与存储器的速度差距,指令系统的设计应能较好地利用存储层次,如通过并行或流水容忍延迟。,微处理器技术的发展(1),通常微处理器指单片上的处理器1971年Intel设计出第一个商品化微处理器。70年代以来,微处理器的性能提高速度远大于大型机或小型机。目前几乎所有的计算机系统都基于微处理器微处理器性能的提高不仅得益于微电子技术,更加得益于系统结构技术(近年来尤其如此)。主频每3年增加一倍,微处理器速度每18个月增加一倍(约每年增加50%)。性能价格比每年增加70%。,微处理器技术的发展(2),微处理器与其它计算机的性能提高速度,微处理器技术的发展(3),微处理器性能提高越来越快,系统结构对指令系统的影响,指令系统本身是系统结构设计的一部分不改变指令系统的前提下提高性能,如流水、多发射等指令系统的兼容性与系统结构发展的矛盾关系Intel的做法,编译技术对指令系统的影响,指令是编译器的工作结果早期的指令系统主要考虑如何便于编程编译器的影响寄存器分配堆栈用于存放局部变量,全局数据区用于存放静态数据,堆用于存放动态数据。寄存器分配要考虑一致性问题,可以被aliased的数据不能分配在寄存器中(C中的volatile)。为使编译器有效使用graphcoloring启发式算法,至少需要16个通用寄存器。规整:所有访存指令都可用所有寻址方式简单:简化trade-offs,允许编译时确定常量,只提供基本的通用操作。,设计指令系统考虑的因素,操作操作种类操作数堆栈型、累加器型、寄存器型操作数个数和类型访存操作数的寻址方式:寄存器、立即数、直接、间接.指令编码定长、变长,指令系统的类型(1),根据指令使用数据的方式,指令系统分为以下几类堆栈型(Stack):操作数在栈顶,运算操作不用指定操作数累加器型(Accumulator):一个操作数总在累加器中,结果也写回累加器寄存器型(Register),每个操作数都由指令指定Register-Register型,又称为Load-Store型,所有运算操作的操作数都在寄存器中Register-Memory型,Memory-Memory型,上述三种指令系统类型也可以分别称为0地址指令,单地址指令,以及多地址指令,指令系统的类型(2),例子:不同指令系统完成C=A+B的指令序列,假设A、B、C在内存中不同的单元,指令系统的类型(3),早期的计算机多用堆栈和累加器型指令出于降低硬件复杂度的考虑现在已经不用(Intel有点例外)80年代后的机器主要是寄存器型访问寄存器比访问存储器快便于编译器使用和优化寄存器可以用来存放变量,减少访存次数,寄存器指令再分类,分类标准运算操作中操作数的个数运算操作中存储器操作数的个数,存储访问的表示,两个方面如何表示地址:寻址方式给定一个地址,访问目标及其长度,访存对象,存储器按字节编址:所有地址都是字节地址访问长度:字节、半字、字、双字地址对齐简化硬件设计:如字地址最低两位为0BigEndian和LittleEndian:影响不同机器间的数据兼容性。LittleEndian地址指向一个字的最右字节,BigEndian反之,寻址方式(1),如何在指令中表示访存地址,寻址方式(2),至少支持Register,Immediate,Displacement,和Registerindirect四种寻址方式地址偏移量位数12-16位立即数位数8-16位,指令操作,RuleofThumb:最常用的指令是简单指令SPECint92的X86指令统计把这些简单指令做得快一点,其它慢一点没关系,转移指令特点,条件转移最多偏移量至少要8位转移条件简单:与0比较的最多,指令编码,需要考虑的因素操作码部分比较简单操作数的个数、类型对指令长度影响很大变长指令程序代码短、定长指令实现简单编码方法定长:RISC变长:VAX的指令1-53字节,其中ADD指令3-19字节混合,从上述分析可以看出,简单操作和简单寻址方式用得最多10简单操作指令占96%寄存器,立即数,偏移寻址,寄存器间接寻址四种寻址方式简单指令便于高效实现和使用load-store结构简化硬件设计,提高主频定长简化译码符合编译器“常用的做得快,少用的只要对”的原则硬件优化应充分考虑兼容性流水、多发射不改变指令系统流水、多发射技术在load-store指令系统上容易实现,否则相关性分析困难上述原因呼唤RISC系统结构,一个“典型”的RISC,32位定长指令32个32位通用寄存器三寄存器操作数运算指令Load-Store指令,基址+偏移量寻址方式简单转移条件Delay-Branch,MIPS指令格式,RISC发展过程(1),1964年CDC公司推出的CDC6600是第一台超级计算机,具备了RISC的一些基本特征CDC6600的设计者认识到为了实现有效的流水技术,需要简化体系结构Load-Store结构记分板(Score-Boarding)动态流水线调度乱序执行(Out-of-Order)技术1976年的Cray-1向量机使用了与CDC6600类似的想法Cray是CDC6600的主要设计者之一上述简化结构以高效实现的想法在60-70年代没有受到小型机和微处理器设计者的重视,RISC发展过程(2),1968年JohnCocke在IBM的SanJose研究中心开始ASC(AdvancedScientificComputer)项目的研究基本思想是让编译器做更多的指令调度以减少硬件复杂度还提出了每个周期发射多条指令的思想ASC计划后来被取消,Cocke在1971年到FutureSystem1975年Cocke到IBM的Yorktown研究中心开始研制IBM801,801是最早开始设计的RISC处理器Cocke获得了Eckert-Mauchly和Turing奖801是PowerPC的前身比801稍晚开始的有Patterson在Berkeley的RISC-I及RISC-II与Hennessy在Standford的MIPS项目这两个大学的研究生曾参与801项目的研究,后来返回大学RISC-II是SPARC的前身,MIPS项目是MIPS处理器前身,RISC发展过程(3),801的项目经理JoelBirnbaum到HP创立了PA-RISCDEC在推出Alpha之前曾经使用MIPS处理器三年1994年Intel和HP宣布使用相同的系统结构从上述发展过程不难解释刚开始时五个RISC处理器的相似性后来每个RISC处理器有了不同的发展如Alpha的指令简单,超流水结构,流水级多,主频高,“aspeeddemon”PowerPC指令功能强,灵活,甚至有点象CISC,“abrainiac”,常见RISC指令系统比较,通过比较常见RISC处理器的指令系统加深对RISC的了解MIPSIV(Alpha与MIPS很象)PA-RISC1.1and2.0PowerPCSPARCv.9通过以下方面进行比较指令格式寻址方式指令功能,RISC指令系统的发展,寻址方式比较,指令功能比较,所有RISC处理器都有一些公共指令load/store指令算术运算及逻辑指令控制流指令不同处理器在比较及转移指令时有较大不同,比较及条件转移(1),转移条件SPARCv.8使用4位条件码(CC),该条件码在程序状态字中整数运算指令设置CC,条件转移指令检测CC浮点运算有另外两位CCv.9为了支持64位运算增加了4位整数CC,3位浮点CCMIPS直接比较寄存器内容判断是否转移浮点部件有一位条件码,记录cmp指令的结果PowerPC有4位CC,一个条件寄存器中有8份4位CC整数和浮点运算各1位,其它用于比较指令。Branch指令需指定根据哪一位进行转移运算指令中有一位指定该指令是否影响CCPA-RISC有多中选择,最常用的是比较两个寄存器的值并根据结果决定是否转移,比较及条件转移(2),DelayedBranch技术紧挨Branch指令后面的指令视为Branch前面的指令执行可以避免流水线断流。转移不成功时取消已执行的delayslot指令可以把转移目标的指令安排在delayslot中。转移成功时取消已执行的delayslot指令可以把转移不成功的指令安排在delayslot中。,指令系统的其它功能,下面指令在前述的指令系统中也很常见(至少在两个指令系统中出现)AtomicSwap指令64位指令,ALPHA本来就是64位的,因此不区分64位指令预取指令BigEndian与LittleEndian的切换共享存储同步指令等,AtomicSwap指令,以MIPS的LL和SC指令为例LL(LoadLinked)取数且置系统中LLbit为1LL为1时,处理器检查相应单元是否被修改,如果其它处理器或设备访问了相应单元或执行了ERET操作,LLbit置为0执行SC(StoreConditional)时若Llbit为1,则成功,目标寄存器为1;否则存数不成功,目标寄存器为0L1:LLR1,(R3)ADDR2,R1,1SCR2,(R3)BEQR2,0,L1NOP,MIPS部分指令特色(1),作为比较早期的RISC系统,MIPS的指令系统已经发展了四代,不断增加新指令,包括边界不对齐的数据传送TLB指令(在MIPS中TLB失效由软件解决)TLBI,TLBR,TLBW,TLBPSYSCALLCTCi,CFCiNOR指令JUMP/CALL指令,绝对跳转,指令中的立即数左移两位替换PC的低28位地址条件过程调用,BGEZAL,BLTZALLL/SC指令用于原子操作RECIP和RSQRT(Reciprocal),MIPS部分指令特色(2),边界不对齐的数据传送,SPARC部分指令特色(1),寄存器窗口多组寄存器用于不同进程,8个全局寄存器用于传递参数等2-32个寄存器穿口,每个24个寄存器过程调用和退出不用把现场保留到存储器SAVE和RESTORE指令SAVE做加法,源寄存器来自调用过程(caller),目标寄存器来自被调用过程(callee),该指令可用于自动修改堆栈指针。RESTORE做加法,源寄存器来自被调用过程(callee),目标寄存器来自调用过程(caller),该指令用来自动释放堆栈“标志”加减指令数据的低两位指出数据类型适用于LIPS和Smalltalk等,SPARC部分指令特色(2),其它特色转移指令JMPL把返回地址存在Rd中,Rd为R0时相当于JR,Rd为R31时相当于JALR128浮点运算和数据传送指令转移指令给出转移是否成功的预测POPC计算一个操作数中“1”的个数CASA指令用于原子操作,把一个寄存器的值与一个内存单元的值比较,如果相等,把内存的值与另一个寄存器的值交换ILLTRAP:非法指令错等等,PowerPC部分指令特色,Link和Count寄存器Link寄存器用于保存返回地址,实现快速过程调用Count寄存器用于循环计数,每次自动递减这两个寄存器还可以放转移地址PowerPC不用Delay

温馨提示

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

评论

0/150

提交评论