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

上传人:tia****nde 文档编号:252980302 上传时间:2024-11-26 格式:PPT 页数:45 大小:360.50KB
返回 下载 相关 举报
《计算机系统结构》电子教案(课2)_第1页
第1页 / 共45页
《计算机系统结构》电子教案(课2)_第2页
第2页 / 共45页
《计算机系统结构》电子教案(课2)_第3页
第3页 / 共45页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,计算机系统结构,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第2章 指令系统的设计,本章主要内容,(1)指令操作码的优化(不讲),(2),RISC,技术简介,(3),MIPS,指令集,(4),MIPS,模拟器(补充),1,计算机系统结构,2.4.2,RISC,技术简介(,P44),名词:,RISCReduced Instruction Set Computing,,精简指令集计算机,(1),RISC,产生的背景:20%与80%规律,(2),RISC,设计的基本原则:,只设置最常用的简单指令,凡遇复杂操作均用多条简单指令实现;,指令长度固定,操作码与操作数长度都尽量统一;,基本指令的启动时间间隔降低到1个时钟周期;,访问主存只有,load,和,store,指令,用变址寻址;,尽量采用硬连逻辑对指令译码;,为了加快执行速度,在编译过程中对目标代码结构进行优化;,(3),RISC,性能优势的原因,采用,RISC,技术的主要动机是使各条指令的执行时序尽可能一致,,CPU,在执行时间上可以把它们安排得更紧凑,就像许多大小相近的箱子容易被堆放得更密集一样。这样机器内的各种资源可以充分利用,单位时间内能执行更多的指令,速度更快。,这方面的具体内容,在第3章讲流水线时会详细介绍。,2,计算机系统结构,2.4.2,RISC,技术的发展,20世纪,70年代初,,IBM,研究中心的,John Cocke,证明,计算机中约20%的指令承担了80%的工作,1974年,他提出,RISC,的概念。,在,RISC,的早期研究中,加州大学伯克利分校(,UC Berkeley,)和斯坦福大学(,Stanford),提出了许多有创见的新思想。伯克利率先在1982年完成了,RISC I,型32位芯片的设计,斯坦福大学则在,John Hennessy(,现任校长)带领下于1983年完成了第一个采用,RISC,理念的商用,MIPS,微处理器,。,1984年,Hennessy,等人创建了,MIPS,计算机公司,1998年改名为,MIPS,技术公司(美普思科技公司,,MIPS Technologies Inc),,目前是美国最著名的芯片设计公司之一。,MIPS,技术公司本身不生产微处理器,它只设计高性能工业级的32位和64位,CPU,的结构体系,并且向其它半导体公司提供使用其内核(,IP),的授权,用于生产基于,MIPS,而又各具特色的微处理器。1999年,MIPS,技术公司发布了,MIPS32,和,MIPS64,架构标准。,MIPS,的通用微处理器主要用于构建高性能工作站、服务器和超级计算机系统,其嵌入式产品在1999年以前全球销量第一,目前也仅次于,ARM,。,3,计算机系统结构,MIPS,处理器,MIPS,的意思是“无内部互锁流水级的微处理器”(,Microprocessor without interlocked piped stages),,其机制是尽量利用软件办法避免流水线中的数据相关问题。,MIPS,具有强大的应用基础,能在,MIPS,上运行的操作系统,包括,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,公司合作,购买其指令系统授权,以便批量生产与出口。,4,计算机系统结构,2.6.1,MIPS,的寄存器(,P47),32个64位通用寄存器(,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(,整数乘除结果低位寄存器,除法的商,),它们可以与通用寄存器交换数据。,浮点状态寄存器:用来保存有关浮点操作结果的信息。,5,计算机系统结构,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,暂时的(或随便用的),$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),6,计算机系统结构,2.6.2 MIPS,的数据表示,整数,字节(8位)半字(16位),字(32位)双字(64位),浮点数,单精度浮点数(32位)双精度浮点数(64位),字节、半字或者字在装入64位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们将按照64位整数的方式进行运算。,7,计算机系统结构,2.6.3 MIPS,的数据寻址方式(,P47),立即数寻址与偏移量寻址;,立即数字段和偏移量字段都是16位的。,寄存器间接寻址是通过把0作为偏移量来实现的;,16位绝对寻址是通过把,R0(,其值永远为0)作为基址寄存器来完成的;,MIPS,的存储器按字节寻址,地址为64位;,所有存储器访问必须是边界对齐的,即访问地址必须是该数据长度(字节数)的整倍数,又叫整数边界原则;,MIPS,的存储器按字节编制;,所有数据字、指令字从最高有效位开始依次标记为,bit 0、1、2,;,MIPS,处理器的存储顺序,可以设置为“小端字节表示顺序”(,Littile,-,Endian,,,低位字节放在低地址,),或者“大端字节表示顺序”(,Big-,Endian,,,高位字节放在低地址,以便适合网络数据包内顺序,)。,在下文使用的,MIPS64,模拟器中采用“小端字节表示顺序”。,8,计算机系统结构,2.6.4,MIPS,指令格式(,P48),MIPS32,和,MIPS64,体系结构定义了兼容的32位和64位处理机指令,使用条件编译或宏汇编指令能写出可同时在,MIPS32,和,MIPS64,上运行的程序,寻址方式编码到操作码中,所有的指令都是,32,位的,操作码占,6,位,3,种指令格式(3,种格式中,同名字段的位置固定不变),9,计算机系统结构,2.6.4,MIPS,指令格式,I,类指令,包括所有的,load,和,store,指令,立即数指令,分支指令,寄存器跳转指令,寄存器链接跳转指令。,立即数字段为16位,用于提供立即数或偏移量。,load,指令 访存有效地址:,Regs,rs,immediate,从存储器取来的数据放入寄存器,rt,store,指令 访存有效地址:,Regs,rs,immediate,要存入存储器的数据放在寄存器,rt,中,立即数指令,Regs,rt,Regs,rs,op immediate,分支指令 转移目标地址:,Regs,rs,immediate,,rt,无用,寄存器跳转、寄存器跳转并链接 转移目标地址为,Regs,rs,10,计算机系统结构,2.6.4,MIPS,指令格式,R,类指令,包括,ALU,指令,专用寄存器读/写指令,,move,指令等。,ALU,指令,Regs,rd,Regs,rs,funct Regs,rt,funct,为具体的运算操作编码,11,计算机系统结构,2.6.4,MIPS,指令格式,J,类指令,包括跳转指令,跳转并链接指令,自陷指令,异常返回指令。,在这类指令中,指令字的低26位是偏移量,它与,PC,值相加形成跳转的地址。,12,计算机系统结构,2.6.5,MIPS,的操作(,P49),MIPS,指令可以分为四大类,load,和,store,ALU,操作,分支与跳转,浮点操作,符号的意义,x,n,y,:,从,y,传送,n,位到,x,x,yz:,把,z,传送到,x,和,y,下标:表示字段中具体的位;,对于指令和数据,按从最高位到最低位(即从左到右)的顺序依次进行编号,最高位为第0位,次高位为第1位,依此类推。,下标可以是一个数字,也可以是一个范围。,例如:,Regs,R4,0,:,寄存器,R4,的符号位,Regs,R4,56-63,:R4,的最低字节,13,计算机系统结构,2.6.5,MIPS,的操作(续,),Mem,:,表示主存;,按字节寻址,可以传输任意个字节。,上标:用于表示对字段进行复制的次数。,例如:0,32,表示一个32位长的全0字段,符号#:用于两个字段的拼接,并且可以出现在数据传送的任何一边。,举例,:,R8、R6,是64位的寄存器,下式,Regs,R8,32-63,32,(,Mem,Regs,R6,0,),24,#,Mem,Regs,R6,表示的意义是:以,R6,的内容作为地址访问内存,得到的字节按符号位扩展为32位后存入,R8,的低32位,,R8,的高32位(即,Regs,R80-31),不变。,14,计算机系统结构,load,和,store,指令,指令举例,指令名称,含 义,LD R2,20(R3),装入双字,RegsR2,64,Mem20+RegsR3,LW R2,40(R3),装入字,RegsR2,64,(Mem40+RegsR3,0,),32,#Mem40+RegsR3,LB R2,30(R3),装入字节,RegsR2,64,(Mem30+RegsR3,0,),56,#Mem30+RegsR3,LBU R2,40(R3),装入无符号字节,RegsR2,64,0,56,#Mem40+RegsR3,LH R2,30(R3),装入半字,RegsR2,64,(Mem30+RegsR3,0,),48,#,Mem30+RegsR3#Mem31+RegsR3,L.S F2,60(R4),装入单精度浮点数,RegsF2,64,Mem60+RegsR4#0,32,L.D F2,40(R3),装入双精度浮点数,RegsF2,64,Mem40+RegsR3,SD R4,300(R5),保存双字,Mem300+RegsR5,64,RegsR4,SW R4,,,300(R5),保存字,Mem300+RegsR5,32,RegsR4,S.S F2,,,40(R2),保存单精度浮点数,Mem40+RegsR2,32,RegsF2,031,SH R5,,,502(R4),保存半字,Mem502+RegsR4,16,RegsR5,48.63,15,计算机系统结构,ALU,指令,寄存器寄存器
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!