RISC处理器设计.ppt

上传人:白大夫 文档编号:4313025 上传时间:2019-11-04 格式:PPT 页数:48 大小:386.03KB
返回 下载 相关 举报
RISC处理器设计.ppt_第1页
第1页 / 共48页
RISC处理器设计.ppt_第2页
第2页 / 共48页
RISC处理器设计.ppt_第3页
第3页 / 共48页
RISC处理器设计.ppt_第4页
第4页 / 共48页
RISC处理器设计.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《RISC处理器设计.ppt》由会员分享,可在线阅读,更多相关《RISC处理器设计.ppt(48页珍藏版)》请在三一文库上搜索。

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

2、指令系统与系统结构,50-60年代 Computer Architecture=Computer Arithmetic 70-80年代 Computer Architecture=Instruction Set Design 90年代以后 Computer Architecture=Design of CPU, Memory System, I/O System, Multiprocessors Searching the space of possible designs at all levels of computer systems,影响指令系统设计的因素,工艺技术 早期的硬件昂贵,简

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

4、ore定律 Intel的创始人之一Gordon Moore在1971年预言每18个月芯片集成度增加一倍。 30年来这个预言基本正确,普遍认为这个定律可以适用到2010年 2002年达到每个芯片100,000,000个晶体管 2910年达到每个芯片1,000,000,000个晶体管 这么多晶体管用来做什么?=系统结构的研究,工艺技术的发展(3),Moore定律:处理器集成度提高,工艺技术的发展(4),Moore定律:存储器集成度的提高,工艺技术对指令系统的影响,早期的指令系统设计主要考虑如何减少硬件 随着集成度的提高,如何有效利用芯片面积成为系统结构重要研究内容,一些新的并行结构如PIM、SIM

5、D等必然影响指令系统 多发射技术的兼容性好 由于CPU与存储器的速度差距,指令系统的设计应能较好地利用存储层次,如通过并行或流水容忍延迟。,微处理器技术的发展(1),通常微处理器指单片上的处理器 1971年Intel设计出第一个商品化微处理器。 70年代以来,微处理器的性能提高速度远大于大型机或小型机。 目前几乎所有的计算机系统都基于微处理器 微处理器性能的提高不仅得益于微电子技术,更加得益于系统结构技术(近年来尤其如此)。 主频每3年增加一倍,微处理器速度每18个月增加一倍(约每年增加50%)。性能价格比每年增加70%。,微处理器技术的发展(2),微处理器与其它计算机的性能提高速度,微处理器

6、技术的发展(3),微处理器性能提高越来越快,系统结构对指令系统的影响,指令系统本身是系统结构设计的一部分 不改变指令系统的前提下提高性能,如流水、多发射等 指令系统的兼容性与系统结构发展的矛盾关系 Intel的做法,编译技术对指令系统的影响,指令是编译器的工作结果 早期的指令系统主要考虑如何便于编程 编译器的影响 寄存器分配 堆栈用于存放局部变量,全局数据区用于存放静态数据,堆用于存放动态数据。 寄存器分配要考虑一致性问题,可以被aliased的数据不能分配在寄存器中(C中的volatile)。 为使编译器有效使用graph coloring启发式算法,至少需要16个通用寄存器。 规整:所有访

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

8、有运算操作的操作数都在寄存器中 Register-Memory型, Memory-Memory型, 上述三种指令系统类型也可以分别称为0地址指令,单地址指令,以及多地址指令,指令系统的类型(2),例子:不同指令系统完成C=A+B的指令序列,假设A、B、C在内存中不同的单元,指令系统的类型(3),早期的计算机多用堆栈和累加器型指令 出于降低硬件复杂度的考虑 现在已经不用(Intel有点例外) 80年代后的机器主要是寄存器型 访问寄存器比访问存储器快 便于编译器使用和优化 寄存器可以用来存放变量,减少访存次数,寄存器指令再分类,分类标准 运算操作中操作数的个数 运算操作中存储器操作数的个数,存储访

9、问的表示,两个方面 如何表示地址:寻址方式 给定一个地址,访问目标及其长度,访存对象,存储器按字节编址:所有地址都是字节地址 访问长度:字节、半字、字、双字 地址对齐简化硬件设计:如字地址最低两位为0 Big Endian和Little Endian:影响不同机器间的数据兼容性。 Little Endian地址指向一个字的最右字节,Big Endian 反之,寻址方式(1),如何在指令中表示访存地址,寻址方式(2),至少支持Register, Immediate, Displacement, 和Register indirect四种寻址方式 地址偏移量位数12-16位 立即数位数8-16位,指

10、令操作,Rule of Thumb:最常用的指令是简单指令 SPECint92的X86指令统计 把这些简单指令做得快一点,其它慢一点没关系,转移指令特点,条件转移最多 偏移量至少要8位 转移条件简单:与0比较的最多,指令编码,需要考虑的因素 操作码部分比较简单 操作数的个数、类型对指令长度影响很大 变长指令程序代码短、定长指令实现简单 编码方法 定长:RISC 变长:VAX的指令1-53字节,其中ADD指令3-19字节 混合,从上述分析可以看出,简单操作和简单寻址方式用得最多 10简单操作指令占96% 寄存器, 立即数, 偏移寻址, 寄存器间接寻址四种寻址方式 简单指令便于高效实现和使用 lo

11、ad-store结构简化硬件设计,提高主频 定长简化译码 符合编译器“常用的做得快,少用的只要对”的原则 硬件优化应充分考虑兼容性 流水、多发射不改变指令系统 流水、多发射技术在load-store指令系统上容易实现,否则相关性分析困难 上述原因呼唤RISC系统结构,一个“典型”的RISC,32位定长指令 32个32位通用寄存器 三寄存器操作数运算指令 Load-Store指令,基址+偏移量寻址方式 简单转移条件 Delay-Branch,MIPS指令格式,RISC发展过程(1),1964年CDC公司推出的CDC 6600是第一台超级计算机,具备了RISC的一些基本特征 CDC 6600的设计

12、者认识到为了实现有效的流水技术,需要简化体系结构 Load-Store结构 记分板(Score-Boarding)动态流水线调度 乱序执行(Out-of-Order)技术 1976年的Cray-1向量机使用了与CDC 6600类似的想法 Cray是CDC 6600的主要设计者之一 上述简化结构以高效实现的想法在60-70年代没有受到小型机和微处理器设计者的重视,RISC发展过程(2),1968年John Cocke在IBM的San Jose研究中心开始ASC(Advanced Scientific Computer)项目的研究 基本思想是让编译器做更多的指令调度以减少硬件复杂度 还提出了每个周

13、期发射多条指令的思想 ASC计划后来被取消,Cocke在1971年到Future System 1975年Cocke到IBM的Yorktown研究中心开始研制IBM 801,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的

14、项目经理Joel Birnbaum到HP创立了PA-RISC DEC在推出Alpha之前曾经使用MIPS处理器三年 1994年Intel和HP宣布使用相同的系统结构 从上述发展过程不难解释刚开始时五个RISC处理器的相似性 后来每个RISC处理器有了不同的发展 如Alpha的指令简单,超流水结构,流水级多,主频高,“a speed demon” PowerPC指令功能强,灵活,甚至有点象CISC,“a brainiac”,常见RISC指令系统比较,通过比较常见RISC处理器的指令系统加深对RISC的了解 MIPS IV (Alpha与MIPS很象) PA-RISC 1.1 and 2.0 Po

15、werPC SPARC v.9 通过以下方面进行比较 指令格式 寻址方式 指令功能,RISC指令系统的发展,寻址方式比较,指令功能比较,所有RISC处理器都有一些公共指令 load/store指令 算术运算及逻辑指令 控制流指令 不同处理器在比较及转移指令时有较大不同,比较及条件转移(1),转移条件 SPARC v.8使用4位条件码(CC),该条件码在程序状态字中 整数运算指令设置CC,条件转移指令检测CC 浮点运算有另外两位CC v.9为了支持64位运算增加了4位整数CC,3位浮点CC MIPS直接比较寄存器内容判断是否转移 浮点部件有一位条件码,记录cmp指令的结果 PowerPC有4位C

16、C,一个条件寄存器中有8份4位CC 整数和浮点运算各1位,其它用于比较指令。 Branch指令需指定根据哪一位进行转移 运算指令中有一位指定该指令是否影响CC PA-RISC有多中选择,最常用的是比较两个寄存器的值并根据结果决定是否转移,比较及条件转移(2),Delayed Branch技术 紧挨Branch指令后面的指令视为Branch前面的指令执行可以避免流水线断流。 转移不成功时取消已执行的delay slot指令可以把转移目标的指令安排在delay slot中。 转移成功时取消已执行的delay slot指令可以把转移不成功的指令安排在delay slot中。,指令系统的其它功能,下面

17、指令在前述的指令系统中也很常见(至少在两个指令系统中出现) Atomic Swap指令 64位指令,ALPHA本来就是64位的,因此不区分64位指令 预取指令 Big Endian与Little Endian的切换 共享存储同步指令 等,Atomic Swap指令,以MIPS的LL和SC指令 为例 LL(Load Linked)取数且置系统中LLbit为1 LL为1时,处理器检查相应单元是否被修改,如果其它处理器或设备访问了相应单元或执行了ERET操作,LLbit置为0 执行SC(Store Conditional)时若Llbit为1,则成功,目标寄存器为1;否则存数不成功,目标寄存器为0 L

18、1: LL R1, (R3) ADD R2, R1, 1 SC R2, (R3) BEQ R2, 0, L1 NOP,MIPS部分指令特色(1),作为比较早期的RISC系统,MIPS的指令系统已经发展了四代,不断增加新指令,包括 边界不对齐的数据传送 TLB指令(在MIPS中TLB失效由软件解决) TLBI,TLBR,TLBW,TLBP SYSCALL CTCi, CFCi NOR指令 JUMP/CALL指令,绝对跳转,指令中的立即数左移两位替换PC的低28位地址 条件过程调用,BGEZAL, BLTZAL LL/SC指令用于原子操作 RECIP和RSQRT(Reciprocal),MIPS部

19、分指令特色(2),边界不对齐的数据传送,SPARC部分指令特色(1),寄存器窗口 多组寄存器用于不同进程,8个全局寄存器用于传递参数等 2-32个寄存器穿口,每个24个寄存器 过程调用和退出不用把现场保留到存储器 SAVE和RESTORE指令 SAVE做加法,源寄存器来自调用过程(caller),目标寄存器来自被调用过程(callee),该指令可用于自动修改堆栈指针。 RESTORE做加法,源寄存器来自被调用过程(callee),目标寄存器来自调用过程(caller),该指令用来自动释放堆栈 “标志”加减指令 数据的低两位指出数据类型 适用于LIPS和Smalltalk等,SPARC部分指令特

20、色(2),其它特色 转移指令JMPL把返回地址存在Rd中,Rd为R0时相当于JR,Rd为R31时相当于JALR 128浮点运算和数据传送指令 转移指令给出转移是否成功的预测 POPC计算一个操作数中“1”的个数 CASA指令用于原子操作,把一个寄存器的值与一个内存单元的值比较,如果相等,把内存的值与另一个寄存器的值交换 ILLTRAP:非法指令错 等等,PowerPC部分指令特色,Link和Count寄存器 Link寄存器用于保存返回地址,实现快速过程调用 Count寄存器用于循环计数,每次自动递减 这两个寄存器还可以放转移地址 PowerPC不用Delay Slot 其它特色 Load和St

21、ore指令同时存取多个寄存器(多达32个) Load和Store字符串(变长或定长、对齐或不对齐) 乘加和乘减指令 LWARX/STWCX实现原子操作,类似于LL/SC 把数据预取到CACHE的指令 多种移位指令,比较灵活。,PA-RISC部分指令特色,Nullification 不仅是条件转移指令,其它指令也可以根据执行结果确定下一条指令是否执行 寻址方式、指令格式、转移指令多而灵活,在所有RISC结构中最多 其它特色 支持十进制 Load and Clear指令用于原子操作 在寄存器中选择或插入任意位 PA-RISC 2.0增加的功能 64位指令 乘加和乘减指令 预取数据到CACHE的指令,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1