《计算机系统结构》电子教案(课2)

上传人:宝路 文档编号:47742758 上传时间:2018-07-04 格式:PPT 页数:45 大小:406.97KB
返回 下载 相关 举报
《计算机系统结构》电子教案(课2)_第1页
第1页 / 共45页
《计算机系统结构》电子教案(课2)_第2页
第2页 / 共45页
《计算机系统结构》电子教案(课2)_第3页
第3页 / 共45页
《计算机系统结构》电子教案(课2)_第4页
第4页 / 共45页
《计算机系统结构》电子教案(课2)_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《《计算机系统结构》电子教案(课2)》由会员分享,可在线阅读,更多相关《《计算机系统结构》电子教案(课2)(45页珍藏版)》请在金锄头文库上搜索。

1、第2章 指令系统的设计本章主要内容 (1) 指令操作码的优化(不讲) (2) RISC技术简介 (3) MIPS指令集 (4) MIPS模拟器(补充)2014.2.171计算机系统结构2.4.2 RISC技术简介(P44)名词:RISCReduced Instruction Set Computing,精简指令集计算机(1)RISC产生的背景:20%与80%规律 (2)RISC设计的基本原则: 只设置最常用的简单指令,凡遇复杂操作均用多条简单指令实现; 指令长度固定,操作码与操作数长度都尽量统一; 基本指令的启动时间间隔降低到1个时钟周期; 访问主存只有load和store指令,用变址寻址;

2、尽量采用硬连逻辑对指令译码; 为了加快执行速度,在编译过程中对目标代码结构进行优化;(3)RISC性能优势的原因采用RISC技术的主要动机是使各条指令的执行时序尽可能一致,CPU在 执行时间上可以把它们安排得更紧凑,就像许多大小相近的箱子容易被堆 放得更密集一样。这样机器内的各种资源可以充分利用,单位时间内能执 行更多的指令,速度更快。这方面的具体内容,在第3章讲流水线时会详细介绍。2014.2.172计算机系统结构2.4.2 RISC技术的发展20世纪70年代初,IBM研究中心的John Cocke证明,计算机中约20%的 指令承担了80%的工作,1974年,他提出RISC的概念。在RISC

3、的早期研究中,加州大学伯克利分校(UC Berkeley)和斯坦福 大学(Stanford)提出了许多有创见的新思想。伯克利率先在1982年完成 了RISC I型32位芯片的设计,斯坦福大学则在John Hennessy(现任校长) 带领下于1983年完成了第一个采用RISC理念的商用MIPS微处理器。1984年Hennessy等人创建了MIPS计算机公司,1998年改名为MIPS技术 公司(美普思科技公司,MIPS Technologies Inc),目前是美国最著名的 芯片设计公司之一。MIPS技术公司本身不生产微处理器,它只设计高性能 工业级的32位和64位CPU的结构体系,并且向其它半

4、导体公司提供使用其内 核(IP)的授权,用于生产基于MIPS而又各具特色的微处理器。1999年 MIPS技术公司发布了MIPS32和MIPS64架构标准。MIPS的通用微处理器主要用于构建高性能工作站、服务器和超级计算 机系统,其嵌入式产品在1999年以前全球销量第一,目前也仅次于ARM。2014.2.173计算机系统结构 MIPS处理器MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流 水线中的数据相关问题。MIPS具有强大的应用基础,能在MIPS上运行的操作系统,包

5、括Linux、 WindRiver、WinCE、GNU、和Monta Vista等;支持14种编译器,包括MIPS、 SDE、Green Hills、GNU和WindRiver等;支持15种调试器,包括GNU、Green Hills、WindRiver、ASHLING和FS2等;支持18种仿真工具,包括Mentor Graphics、Synopsys、CoWare和Candence等。中国科学院计算所的龙芯1和2都采用64位MIPS指令架构。中国龙芯已与 MIPS公司合作,购买其指令系统授权,以便批量生产与出口。2014.2.174计算机系统结构2.6.1 MIPS的寄存器(P47) 32个6

6、4位通用寄存器(GPRs),也称为整数寄存器 名称是R0,R1,R31(也可写为$0,$1,$31) R0的值永远是0,可用作源寄存器,也可作为无用结果的目的寄存器; R31用于存放跳转并链接类指令的返回地址。 32个64位浮点数寄存器(FPRs) F0,F1,F31 用来存放32个单精度浮点数(32位),也可以用来存放32个双精度浮 点数(64位)。 存储单精度浮点数(32位)时,只用到FPR的一半,其另一半没用。 特殊功能寄存器 PC(program counter,程序计数寄存器) HI(整数乘除结果高位寄存器,除法余数) LO(整数乘除结果低位寄存器,除法的商) 它们可以与通用寄存器交

7、换数据。 浮点状态寄存器:用来保存有关浮点操作结果的信息。2014.2.175计算机系统结构MIPS的寄存器别名(程序员习惯用法)MIPS编译器支持一些专业程序员对32个通用寄存器GPR(GENERAL PURPOSE REGISTER)约定的习惯性用法(非强制的):REGISTER NAMEUSAGE $0 $zero常量0(constant value 0) $2-$3 $v0-$v1函数调用返回值(values for results and expression evaluation) $4-$7 $a0-$a3函数调用参数(arguments) $8-$15 $t0-$t7暂时的(或

8、随便用的) $16-$23 $s0-$s7保存的(或如果用,需要SAVE/RESTORE的)(saved) $24-$25 $t8-$t9暂时的(或随便用的) $26-$27 $k0-$k1由操作系统的异常或中断处理程序使用 $28 $gp全局指针(Global Pointer) $29 $sp堆栈指针(Stack Pointer) $30 $fp帧指针(Frame Pointer) (BNN:fp is stale acutally, and can be simply used as $t8) $31 $ra返回地址(return address) 2014.2.176计算机系统结构2.6

9、.2 MIPS的数据表示整数 字节(8位) 半字(16位) 字(32位) 双字(64位) 浮点数 单精度浮点数(32位) 双精度浮点数(64位) 字节、半字或者字在装入64位寄存器时,用零扩展或者用符号位扩展来填 充该寄存器的剩余部分。装入以后,对它们将按照64位整数的方式进行运算 。2014.2.177计算机系统结构2.6.3 MIPS的数据寻址方式(P47) 立即数寻址与偏移量寻址;立即数字段和偏移量字段都是16位的。 寄存器间接寻址是通过把0作为偏移量来实现的; 16位绝对寻址是通过把R0(其值永远为0)作为基址寄存器来完成的; MIPS的存储器按字节寻址,地址为64位; 所有存储器访问

10、必须是边界对齐的,即访问地址必须是该数据长度(字节 数)的整倍数,又叫整数边界原则; MIPS的存储器按字节编制; 所有数据字、指令字从最高有效位开始依次标记为bit 0、1、2 ; MIPS处理器的存储顺序,可以设置为“小端字节表示顺序”( Littile-Endian,低位字节放在低地址)或者“大端字节表示顺序”(Big- Endian,高位字节放在低地址,以便适合网络数据包内顺序)。在下文使用的MIPS64模拟器中采用“小端字节表示顺序”。2014.2.178计算机系统结构2.6.4 MIPS指令格式(P48) MIPS32和MIPS64体系结构定义了兼容的32位和64位处理机指令 使用

11、条件编译或宏汇编指令能写出可同时在MIPS32和MIPS64上运行的程序 寻址方式编码到操作码中 所有的指令都是32位的 操作码占6位 3种指令格式(3种格式中,同名字段的位置固定不变)2014.2.179计算机系统结构2.6.4 MIPS指令格式I类指令 包括所有的load和store指令,立即数指令,分支指令,寄存器跳转指令 ,寄存器链接跳转指令。 立即数字段为16位,用于提供立即数或偏移量。 load指令 访存有效地址:Regsrsimmediate从存储器取来的数据放入寄存器rt store指令 访存有效地址:Regsrsimmediate要存入存储器的数据放在寄存器rt中 立即数指令

12、 Regsrt Regsrs op immediate 分支指令 转移目标地址:Regsrsimmediate,rt无用 寄存器跳转、寄存器跳转并链接 转移目标地址为Regsrs2014.2.1710计算机系统结构2.6.4 MIPS指令格式R类指令 包括ALU指令,专用寄存器读/写指令,move指令等。 ALU指令 Regsrd Regsrs funct Regsrtfunct为具体的运算操作编码2014.2.1711计算机系统结构2.6.4 MIPS指令格式J类指令 包括跳转指令,跳转并链接指令,自陷指令,异常返回指令。 在这类指令中,指令字的低26位是偏移量,它与PC值相加形成跳转的地址

13、 。2014.2.1712计算机系统结构2.6.5 MIPS的操作(P49) MIPS指令可以分为四大类 load和store ALU操作 分支与跳转 浮点操作 符号的意义 xny:从y传送n位到x x,yz:把z传送到x和y 下标:表示字段中具体的位; 对于指令和数据,按从最高位到最低位(即从左到右)的顺序依 次进行编号,最高位为第0位,次高位为第1位,依此类推。 下标可以是一个数字,也可以是一个范围。例如:RegsR40:寄存器R4的符号位 RegsR456-63:R4的最低字节 2014.2.1713计算机系统结构2.6.5 MIPS的操作(续)Mem:表示主存; 按字节寻址,可以传输任

14、意个字节。 上标:用于表示对字段进行复制的次数。 例如:032表示一个32位长的全0字段 符号#:用于两个字段的拼接,并且可以出现在数据传送的任何一边。举例:R8、R6是64位的寄存器,下式 RegsR832-63 32(Mem RegsR60)24 # Mem RegsR6 表示的意义是:以R6的内容作为地址访问内存,得到的字节按符号位扩展为 32位后存入R8的低32位,R8的高32位(即RegsR80-31)不变。2014.2.1714计算机系统结构 load和store指令指令举例 指令名称 含 义 LD R2,20(R3) 装入双字 RegsR264 Mem20+RegsR3 LW R

15、2,40(R3) 装入字 RegsR264 (Mem40+RegsR30)32 # Mem40+RegsR3 LB R2,30(R3) 装入字节 RegsR264 (Mem30+RegsR30)56 # Mem30+RegsR3 LBU R2,40(R3) 装入无符号字节 RegsR264 056 # Mem40+RegsR3 LH R2,30(R3) 装入半字 RegsR264 (Mem30+RegsR30)48 #Mem30+RegsR3# Mem31+RegsR3 L.S F2,60(R4) 装入单精度浮点数RegsF264 Mem60+RegsR4 # 032 L.D F2,40(R3) 装入双精度浮点数 RegsF264 Mem40+RegsR3 SD R4,300(R5) 保存双字 Mem300+RegsR564 RegsR4 SW R4,300(R5) 保存字 Mem300+RegsR532 RegsR4 S.S F2,40(R2) 保存单精度浮点数Mem40+RegsR232 RegsF2 031 SH R5,502(R4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号