版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成与设计硬件/软件接口ComputerOrganizationandDesignTheHardware/SoftwareInterfaceDavidA.PattersonJohnL.Hennessy张建E-mail:Zj960514@163.com指令集/指令系统(InstructionSetArchitecture,ISA)指令集ISA一台计算机所能执行全部机器指令的集合。Logic-gates,statemachines,etc.Circuit-transistors,etc.Layout-maskpatterns,etc.HardwareProcessorI/OSystemSoftwareCompilerApplicationProgramsOperatingSystemApplicationInstructionSetArchitectureInterfacebetweenSW&HW指令集/指令系统(InstructionSetArchitecture,ISA)指令集ISA是设计CPU最重要的依据指令集ISA已确定,不可更改两种不同风格和指令系统
精简指令集计算机RISCRISC–ReducedInstructionSetComputer指令长度固定单周期执行指令流水线处理硬件接线式控制两种不同风格和指令系统复杂指令集计算机CISCCISC–ComplexInstructionSetComputer指令复杂,长度可变多种内存寻址方式微程序结构4.1指令格式设计一条指令中必须明确或隐含包括如下信息:操作码源操作数结果下一条指令地址指令要完成的功能参与操作的数(可能有多个)结果存储地址下一条要执行指令的地址4.2指令系统设计确定指令系统提供的操作指令指令系统提供的指令越多、功能越强大,编程就简单,但硬件设计就复杂;反之,则编程复杂,但硬件设计简单。一个指令系统通常应提供:加、减、乘、除、逻辑运算、移位等操作;4.2指令系统设计操作数的来源/寻址方式即如何找到操作数。操作数通常的来源:寄存器、立即数、内存、I/O端口。操作数的类型即是否支持8位、16位、32位等操作数。4.2指令系统设计下一条指令的地址大多数指令系统都采用一个专门的程序计数器(ProgramCount,PC)来存放下一条指令的地址。寄存器的种类和数量确定专用寄存器和通用寄存器的种类、宽度和数量。指令系统设计的原则完备性/完整性提供的指令应能满足程序编程的需求,但过于复杂的指令系统会使硬件设计复杂。兼容性新设计的指令系统应与以前的指令系统兼容,否则以前开发的程序将不能在新的指令系统上运行。指令系统设计的基本问题操作码的设计操作码的长度决定了最多可以提供的指令数。例如:12位操作码可以212=4096条指令操作码过长会导致一条指令长度增加,使程序占用空间增大,程序读取时间变长。指令系统设计的基本问题操作数的寻址方式寻址方式越多,则编程越灵活方便,但硬件设计复杂,时序不好统一。下一条指令地址的确定大多数指令系统都采用一个专门的程序计数器(ProgramCount,PC)来存放下一条指令的地址。指令系统设计的原则操作码的设计操作码的长度决定了最多可以提供的指令数。例如:12位操作码可以212=4096条指令操作码过长会导致一条指令长度增加,使程序占用空间增大,程序读取时间变长。硬件设计的基本原则设计原则1:简单源于规整。指令越规整,硬件设计越简单。设计原则2:越少越快。器件越多可能会使时钟周期变长硬件设计的基本原则设计原则3:加速执行常用的操作。这样效果最明显,付出的代价小,获得的收益大。设计原则4:优秀的设计需要适宜的折中方案。当2种方案各有优缺点而又无法兼顾时,应进行必要的折中。MIPS指令格式oprsrtrdshamtfunc6位5位5位5位5位6位312625212016151110650oprsrtimmediate6位5位5位16位312625212016150opaddress6位26位3126250R型I型J型MIPS的指令可分为3种操作类型R型指令格式oprsrtrdshamtfunc6位5位5位5位5位6位312625212016151110650R型操作码由op和func组成。当op=000000时表明该指令是R型指令,具体功能由func确定。rs、rt是2个源操作数所在的寄存器号。rd是目的操作数所在的寄存器号。shamt是位移量R型指令中无意义。MIPS汇编指令–R型指令电子科技大学计算机科学与工程学院
指令[31:26][25:21][20:16][15:11][10:6][5:0]功能add000000rsrtrd00000100000寄存器加sub000000rsrtrd00000100010寄存器减and000000rsrtrd00000100100寄存器与or000000rsrtrd00000100101寄存器或xor000000rsrtrd00000100110寄存器异或sll00000000000rtrdsa000000左移srl00000000000rtrdsa000010逻辑右移sra00000000000rtrdsa000011算术右移jr000000rs000000000000000001000寄存器跳转R型指令—example1指令代码如下:00000001001010100101100000000000
R型指令功能:加(add)R9寄存器R10寄存器R11寄存器
R型指令—example2指令代码如下:00000000000010100101100011100000
R型指令功能:左移(sll)R10寄存器R11寄存器移位次数3
I型指令格式oprsrtimmediate6位5位5位16位312625212016150I型操作码由op确定。有一个操作数为立即数(16位)。rt是目的操作数所在的寄存器号。MIPS汇编指令–I型指令
指令[31:26][25:21][20:16][15:0]功能addi001000rsrtimmediate立即数加andi001100rsrtimmediate立即数与ori001101rsrtimmediate立即数或xori001110rsrtimmediate立即数异或lw100011rsrtimmediate取字数据sw101011rsrtimmediate存字数据beq000100rsrtimmediate相等转移bne000101rsrtimmediate不等转移lui00111100000rtimmediate设置高位I型指令—example指令代码如下:00100001001010100101100000000000
功能:addiR9寄存器R10寄存器立即数
J型指令格式操作码由op确定。转移地址:立即数(26位)。opaddress6位26位3126250J型MIPS汇编指令–J型指令电子科技大学计算机科学与工程学院
指令[31:26][25:0]功能j000010address跳转jal001100address调用MIPS的寻址模式/方式电子科技大学计算机科学与工程学院
寻址模式/方式寻找操作数或操作数地址的方式立即数寻址(Immediateaddressing)操作数包含在指令中,取指令时已取回操作数。oprsrtimmediateMIPS的寻址模式/方式电子科技大学计算机科学与工程学院
寄存器寻址(Registeraddressing)操作数在寄存器中。oprsrtrdfunc寄存器MIPS的寻址模式/方式电子科技大学计算机科学与工程学院
基址寻址(Baseaddressing)oprsrtaddressRegister+MemoryXXX16位
MIPS的寻址模式/方式电子科技大学计算机科学与工程学院
PC相对寻址(Baseaddressing)oprsrtaddressPC+Memory字<<216位
MIPS的寻址模式/方式伪直接寻址(Baseaddressing)opaddress<<226位28位4位PCMemory字
MIPS的通用寄存器寄存器名寄存器号用途$s00常数0$at1汇编器专用$v0~$v12~3表达式计算或函数调用的返回结果$a0~$a34~7函数调用参数1~3$t0~$t78~15临时变量,函数调用时不需要保存和恢复$s0~$s716~23函数调用时需要保存和恢复的寄存器变量$t8~$t924~25临时变量,函数调用时不需要保存和恢复MIPS的通用寄存器寄存器名寄存器号用途$k0~$k126~27操作系统专用$gp28全局指针变量(GlobalPointer)$sp29堆栈指针变量(StackPointer)$fp30帧指针变量(FramePointer)$ra31返回地址(ReturnAddress)注:除0号和31号寄存器外,其余寄存器并无本质区别。MIPS常用汇编指令加法(寄存器加)
Example:
说明:即将R2寄存器内容与R3寄存器内容相加,结果保存在R1寄存器中。MIPS常用汇编指令减法(寄存器减)
Example:
MIPS常用汇编指令与操作(寄存器与)
Example:
MIPS常用汇编指令或操作(寄存器或)
Example:
MIPS常用汇编指令异或操作(寄存器异或)
Example:
MIPS常用汇编指令左移操作
Example:
MIPS常用汇编指令逻辑右移操作
Example:
说明:即将R2寄存器内容右移3位,左边空出位补3个0,结果保存在R1寄存器中,R2的内容不变。MIPS常用汇编指令算术右移操作
Example:
说明:即将R2寄存器内容右移3位,左边空出位补3个符号位,结果保存在R1寄存器中,R2的内容不变。MIPS常用汇编指令寄存器跳转操作
Example:
说明:将R1寄存器内容赋给PC寄存器,PC中是下一条要执行指令的地址。MIPS常用汇编指令加法(立即数加)
Example:
说明:即将R2寄存器内容与立即数32相加(立即数32要进行符号扩展),结果保存在R1寄存器中。MIPS常用汇编指令与操作(立即数与)
Example:
说明:立即数要进行零扩展,即在16位的立即数前加16个0构成一个32位的立即数。MIPS常用汇编指令或操作(立即数或)
Example:
说明:立即数要进行零扩展,即在16位的立即数前加16个0构成一个32位的立即数。MIPS常用汇编指令异或操作(立即数异或)
Example:
说明:立即数要进行零扩展,即在16位的立即数前加16个0构成一个32位的立即数。MIPS常用汇编指令取字数据操作
Example:
+Memory字
定位存储单元取数MIPS常用汇编指令存字数据操作
Example:
+Memory字
定位存储单元存数MIPS常用汇编指令相等转移操作
Example:
操作:
符号扩展MIPS常用汇编指令不相等转移操作
Example:
操作:符号扩展MIPS常用汇编指令设置高位操作
Example:
操作:
MIPS常用汇编指令跳转操作
Example:
abcd1000H(26位)
28位4位
扩到28位(左移2位)计算机硬件对过程的支持电子科技大学计算机科学与工程学院
过程/函数(procedure/function)一段子程序,函数通常具有返回值。调用过程/函数时必须解决的问题:参数放在哪里?寄存器
Or
存储器
?
计算机硬件对过程的支持电子科技大学计算机科学与工程学院
任务完成后结果放在哪里?寄存器
Or
存储器
?任务完成后如何返回调用者?MIPS中的堆栈堆栈(Stack)堆栈是内存中指定的一块区域。Stack0n$sp栈顶栈底对堆栈操作通常是先进后出。编译一个不调用其它过程的C过程例
编译一个不调用其它过程的C过程电子科技大学计算机科学与工程学院
假设:调用时参数变量g、h、i和j已放在寄存器$a0~$a3中。分析:f为过程内的局部变量,为其分配寄存器$s0;g+h的和为其其分配寄存器$t0;i-j的差为其其分配寄存器$t1;结论:$s0、$t0和$t1必须保存,退出过程时恢复。编译一个不调用其它过程的C过程电子科技大学计算机科学与工程学院
将$s0、$t0和$t1压入堆栈0n$spxxx00n$spxxx0StartStep1addi$sp,$sp,-12xxx1xxx2xxx3xxx1xxx2xxx3编译一个不调用其它过程的C过程电子科技大学计算机科学与工程学院
将$s0、$t0和$t1压入堆栈0n$spxxx0sw$t1,8($sp)$t1内容$t0内容$s0内容sw$t0,4($sp)sw$s0,0($sp)电子科技大学计算机科学与工程学院
编译一个不调用其它过程的C过程过程实体的编译add$t0,$a0,$a1add$t1,$a2,$a3sub$s0,$t0,$t1返回值add$v0,$s0,$zero电子科技大学计算机科学与工程学院
编译一个不调用其它过程的C过程将$s0、$t0和$t1内容恢复0n$spxxx0lw$s0,0($sp)$t1内容$t0内容$s0内容lw$t0,4($sp)lw$t1,8($sp)addi$sp,$sp,12将$sp恢复:编译一个不调用其它过程的C过程返回过程调用者
执行结果:
过程调用
执行结果:
在实际MIPS系统中由于延时的考虑:PC=PC+8编译一个不调用其它过程的C过程返回过程调用者
执行结果:
过程调用
执行结果:
在实际MIPS系统中由于延时的考虑:PC=PC+8其它常见寻址方式立即寻址操作数直接包含在指令中,紧跟在操作码之后,它作为指令的一部分。操作码R11020H例如:立即数MOV(R1)←1020H其它常见寻址方式直接寻址在指令中直接给出操作数的有效地址。操作码R1[1020H]例如:操作数地址MOV101EH101FHXXXX1020H1021H1020H内存R1XXXX其它常见寻址方式直接寻址在指令中直接给出操作数的有效地址。操作码R1[1020H]例如:操作数地址MOV101EH101FHXXXX1020H1021H1020H内存R1XXXX其它常见寻址方式间接寻址指令中给出一个内存单元地址,再以该单元的内容作为地址到内存中去取操作数。例如:内存操作码@100H110H操作数110H其它常见寻址方式变址寻址在指令中给出一个变址寄存器和一个偏移量,2者相加的和作为有效地址去存储器中取数据。操作码R1[SI+10H]例如:操作数地址MOV10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 26067-2010硅片切口尺寸测试方法》
- 深度解析(2026)《GBT 26012-2010电容器用钽丝》
- 深度解析(2026)《GBT 25952-2010散装浮选镍精矿取样、制样方法》(2026年)深度解析
- 深度解析(2026)《GBT 25915.4-2010洁净室及相关受控环境 第4部分:设计、建造、启动》
- 2025江苏苏州市公交集团有限公司管理岗位(应届生)招聘7人模拟笔试试题及答案解析
- 2026广东省气象部门气象类高校毕业生招聘5人(广州专场)参考笔试题库附答案解析
- 2025广西国土规划集团西藏办事处招聘备考考试题库及答案解析
- 深度解析(2026)《GBT 25631-2010机械振动 手持式和手导式机械 振动评价规则》(2026年)深度解析
- 高中阶段学校多样化发展的制度瓶颈-基于《高中阶段教育普及攻坚计划》后续评估
- 中船集团第七〇八研究所2026届校园招聘备考考试试题及答案解析
- 2025年广东省政府采购评审专家考试真题库(带答案)
- 2025年医院人力资源管理测试题(附答案)
- 2025胰岛素皮下注射团体标准解读
- T-CBJ 2206-2024 白酒企业温室气体排放核算方法与报告要求
- 预防职务犯罪法律讲座
- 云南省昆明市中华小学2025年数学四年级第一学期期末检测试题含解析
- 科创基地管理办法
- 代付工程款三方协议(2025版)
- 卡西欧电子琴CTK-496(700)中文说明书
- DB64-T 1853-2022 畜禽粪便封闭式强制曝气堆肥技术规程
- 气管切开的湿化管理及护理
评论
0/150
提交评论