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

下载本文档

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

文档简介

RISC处理器设计 RISC系统结构 基本思想:简单结构的高效实现 n体:指令系统结构 n操作:简单 n数据:Load-Store结构,寻址方式简单 n编码:定长 n相:实现与使用方式 n简化硬件,提高主频 n指令流水线技术:寄存器操作容易解决相关 n编译技术 n用:性能及兼容性 n性能:每条指令周期数差不多,主频高,CPI高 n流水及多发射技术在提高性能的前提下不影响兼 容性 指令系统结构 指令系统的设计原则 n指令系统在计算机中的位置 n硬件和软件的界面 n设计要求 n兼容性:在很长时间内保持不变 n通用性:适合于各种应用 n方便:编译器或程序员觉得好用,有较多功 能 n高效:便于CPU设计的优化,不同的实现方 法得到不同的性能 指令系统与系统结构 n50-60年代 nComputer Architecture=Computer Arithmetic n70-80年代 nComputer Architecture=Instruction Set Design n90年代以后 nComputer Architecture=Design of CPU, Memory System, I/O System, Multiprocessors nSearching the space of possible designs at all levels of computer systems 影响指令系统设计的因素 n工艺技术 n早期的硬件昂贵,简化硬件是指令系统设计的 主要因素 n如何发挥存储层次的效率,如何利用芯片面积 n系统结构 n增加指令功能还是提高主频? n并行性:SIMD、向量、多发射(兼容性好)、 PIM n操作系统 n多进程支持、虚地址空间等 n编译技术与程序设计语言 n指令的表达能力 n应用程序 n兼容性 工艺技术的发展(1) n工艺技术是处理器技术发展的源动力 n集成度及CPU主频提高快,访存延迟提高慢 n1990年: 33MHz Intel 386, 80ns访存延迟 n1996年:266MHz Intel PII, 60ns访存延迟 n上述趋势影响系统结构研究的内容 n并行技术:流水线、多处理器、磁盘阵列 n存储层次 n网络 工艺技术的发展(2) nMoore定律 nIntel的创始人之一Gordon Moore在1971年 预言每18个月芯片集成度增加一倍。 n30年来这个预言基本正确,普遍认为这个定 律可以适用到2010年 n2002年达到每个芯片100,000,000个晶体管 n2910年达到每个芯片1,000,000,000个晶体 管 n这么多晶体管用来做什么?=系统结构的 研究 工艺技术的发展(3) nMoore定律:处理器集成度提高 工艺技术的发展(4) nMoore定律:存储器集成度的提高 工艺技术对指令系统的影响 n早期的指令系统设计主要考虑如何减少 硬件 n随着集成度的提高,如何有效利用芯片 面积成为系统结构重要研究内容,一些 新的并行结构如PIM、SIMD等必然影响 指令系统 n多发射技术的兼容性好 n由于CPU与存储器的速度差距,指令系统 的设计应能较好地利用存储层次,如通 过并行或流水容忍延迟。 微处理器技术的发展(1) n通常微处理器指单片上的处理器 n1971年Intel设计出第一个商品化微处理器。 n70年代以来,微处理器的性能提高速度远大 于大型机或小型机。 n目前几乎所有的计算机系统都基于微处理器 n微处理器性能的提高不仅得益于微电子技术 ,更加得益于系统结构技术(近年来尤其如 此)。 n主频每3年增加一倍,微处理器速度每18个 月增加一倍(约每年增加50%)。性能价格 比每年增加70%。 微处理器技术的发展(2) n微处理器与其它计算机的性能提高速度 微处理器技术的发展(3) n微处理器性能提高越来越快 系统结构对指令系统的影响 n指令系统本身是系统结构设计的一部分 n不改变指令系统的前提下提高性能,如 流水、多发射等 n指令系统的兼容性与系统结构发展的矛 盾关系 nIntel的做法 编译技术对指令系统的影响 n指令是编译器的工作结果 n早期的指令系统主要考虑如何便于编程 n编译器的影响 n寄存器分配 n堆栈用于存放局部变量,全局数据区用于存放静 态数据,堆用于存放动态数据。 n寄存器分配要考虑一致性问题,可以被aliased的 数据不能分配在寄存器中(C中的volatile)。 n为使编译器有效使用graph coloring启发式算法 ,至少需要16个通用寄存器。 n规整:所有访存指令都可用所有寻址方式 n简单:简化trade-offs,允许编译时确定常 量,只提供基本的通用操作。 设计指令系统考虑的因素 n操作 n操作种类 n操作数 n堆栈型、累加器型、寄存器型 n操作数个数和类型 n访存操作数的寻址方式:寄存器、立即数、 直接、间接. n指令编码 n定长、变长 指令系统的类型(1) n根据指令使用数据的方式,指令系统分为以下 几类 n堆栈型(Stack):操作数在栈顶,运算操作不用指 定操作数 n累加器型(Accumulator):一个操作数总在累加器 中,结果也写回累加器 n寄存器型(Register),每个操作数都由指令指定 nRegister-Register型,又称为Load-Store型,所有运算 操作的操作数都在寄存器中 nRegister-Memory型, nMemory-Memory型, n上述三种指令系统类型也可以分别称为0地址 指令,单地址指令,以及多地址指令 指令系统的类型(2) n例子:不同指令系统完成C=A+B的指令 序列,假设A、B、C在内存中不同的单元 指令系统的类型(3) n早期的计算机多用堆栈和累加器型指令 n出于降低硬件复杂度的考虑 n现在已经不用(Intel有点例外) n80年代后的机器主要是寄存器型 n访问寄存器比访问存储器快 n便于编译器使用和优化 n寄存器可以用来存放变量,减少访存次数 寄存器指令再分类 n分类标准 n运算操作中操作数的个数 n运算操作中存储器操作数的个数 存储访问的表示 n两个方面 n如何表示地址:寻址方式 n给定一个地址,访问目标及其长度 访存对象 n存储器按字节编址:所有地址都是字节地 址 n访问长度:字节、半字、字、双字 n地址对齐简化硬件设计:如字地址最低两 位为0 nBig Endian和Little Endian:影响不同机器 间的数据兼容性。 nLittle Endian地址指向一个字的最右字节,Big Endian 反之 寻址方式(1) n如何在指令中表示访存地址 寻址方式(2) n至少支持Register, Immediate, Displacement, 和Register indirect四种寻 址方式 n地址偏移量位数12-16位 n立即数位数8-16位 指令操作 nRule of Thumb:最常用的指令是简单指 令 nSPECint92的X86指令统计 n把这些简单指令做得快一点,其它慢一点没 关系 转移指令特点 n条件转移最多 n偏移量至少要8位 n转移条件简单:与0比较的最多 指令编码 n需要考虑的因素 n操作码部分比较简单 n操作数的个数、类型对指令长度影响很大 n变长指令程序代码短、定长指令实现简单 n编码方法 n定长:RISC n变长:VAX的指令1-53字节,其中ADD指令3- 19字节 n混合 从上述分析可以看出 n简单操作和简单寻址方式用得最多 n10简单操作指令占96% n寄存器, 立即数, 偏移寻址, 寄存器间接寻址四种 寻址方式 n简单指令便于高效实现和使用 nload-store结构简化硬件设计,提高主频 n定长简化译码 n符合编译器“常用的做得快,少用的只要对”的原 则 n硬件优化应充分考虑兼容性 n流水、多发射不改变指令系统 n流水、多发射技术在load-store指令系统上容易 实现,否则相关性分析困难 n上述原因呼唤RISC系统结构 一个“典型”的RISC n32位定长指令 n32个32位通用寄存器 n三寄存器操作数运算指令 nLoad-Store指令,基址+偏移量寻址方式 n简单转移条件 nDelay-Branch MIPS指令格式 OP(6)RS1(5)RS2(5)RD(5)SA(5)OPX(6)R-type OP(6)RS(5)RD(5)ImmediateI-type OP(6)targetJ-type RISC发展过程(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 Jose研究中心 开始ASC(Advanced Scientific Computer)项目 的研究 n基本思想是让编译器做更多的指令调度以减少硬件 复杂度 n还提出了每个周期发射多条指令的思想 nASC计划后来被取消,Cocke在1971年到Future System n1975年Cocke到IBM的Yorktown研究中心开始 研制IBM 801,801是最早开始设计的RISC处 理器 nCocke获得了Eckert-Mauchly和Turing奖 n801是PowerPC的前身 n比801稍晚开始的有Patterson在Berkeley的 RISC-I及RISC-II与Hennessy在Standford的 MIPS项目 n这两个大学的研究生曾参与801项目的研究,后来 返回大学 nRISC-II是SPARC的前身,MIPS项目是MIPS处理器 前身 RISC发展过程(3) n801的项目经理Joel Birnbaum到HP创立了PA- RISC nDEC在推出Alpha之前曾经使用MIPS处理器三 年 n1994年Intel和HP宣布使用相同的系统结构 n从上述发展过程不难解释刚开始时五个RISC 处理器的相似性 n后来每个RISC处理器有了不同的发展 n如Alpha的指令简单,超流水结构,流水级多,主 频高,“a speed demon” nPowerPC指令功能强,灵活,甚至有点象CISC, “a brainiac” 常见RISC指令系统比较 n通过比较常见RISC处理器的指令系统加 深对RISC的了解 nMIPS IV (Alpha与MIPS很象) nPA-RISC 1.1 and 2.0 nPowerPC nSPARC v.9 n通过以下方面进行比较 n指令格式 n寻址方式 n指令功能 RISC指令系统的发展 寻址方式比较 指令功能比较 n所有RISC处理器都有一些公共指令 nload/store指令 n算术运算及逻辑指令 n控制流指令 n不同处理器在比较及转移指令时有较大 不同 比较及条件转移(1) n转移条件 nSPARC v.8使用4位条件码(CC),该条件码在程序 状态字中 n整数运算指令设置CC,条件转移指令检测CC n浮点运算有另外两位CC nv.9为了支持64位运算增加了4位整数CC,3位浮点CC nMIPS直接比较寄存器内容判断是否转移 n浮点部件有一位条件码,记录cmp指令的结果 nPowerPC有4位CC,一个条件寄存器中有8份4位CC n整数和浮点运算各1位,其它用于比较指令。 nBranch指令需指定根据哪一位进行转移 n运算指令中有一位指定该指令是否影响CC nPA-RISC有多中选择,最常用的是比较两个寄存器 的值并根据结果决定是否转移 比较及条件转移(2) nDelayed Branch技术 n紧挨Branch指令后面的指令视为Branch前面的指 令执行可以避免流水线断流。 n转移不成功时取消已执行的delay slot指令可以把 转移目标的指令安排在delay slot中。 n转移成功时取消已执行的delay slot指令可以把转 移不成功的指令安排在delay slot中。 指令系统的其它功能 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 nLL为1时,处理器检查相应单元是否被修改,如果 其它处理器或设备访问了相应单元或执行了ERET操 作,LLbit置为0 n执行SC(Store Conditional)时若Llbit为1,则成功, 目标寄存器为1;否则存数不成功,目标寄存器为0 L1: LL R1, (R3) ADD R2, R1, 1 SC R2, (R3) BEQ R2, 0, L1 NOP MIPS部分指令特色(1) n作为比较早期的RISC系统,MIPS的指令系统 已经发展了四代,不断增加新指令,包括 n边界不对齐的数据传送 nTLB指令(在MIPS中TLB失效由软件解决) nTLBI,TLBR,TLBW,TLBP nSYSCALL nCTCi, CFCi nNOR指令 nJUMP/CALL指令,绝对跳转,指令中的立即数左移 两位替换PC的低28位地址 n条件过程调用,BGEZAL, BLTZAL nLL/SC指令用于原子操作 nRECIP和RSQRT(Reciprocal) DAV E M100 M104 JOHNR2 初始值 DAVNR2 DAVER2 执行“LWL, R2, 101”后 执行“LWR, R2, 104”后 D AVE M200 M204 JOHNR2 初始值 DOHNR2 DAVER2 执行“LWL, R2, 203”后 执行“LWR, R2, 206”后 MIPS部分指令特色(2) n边界不对齐的数据传送 SPARC部分指令特色(1) n寄存器窗口 n多组寄存器用于不同进程,8个全局寄存器用于传 递参数等 n2-32个寄存器穿口,每个24个寄存器 n过程调用和退出不用把现场保留到存储器 nSAVE和RESTORE指令 nSAVE做加法,源寄存器来自调用过程(caller),目标寄存 器来自被调用过程(callee),该指令可用于自动修改堆栈 指针。 nRESTORE做加法,源寄存器来自被调用过程(callee),目 标寄存器来自调用过程(caller),该指令用来自动释放堆 栈 n“标志

温馨提示

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

评论

0/150

提交评论