第4章指令系统_第1页
第4章指令系统_第2页
第4章指令系统_第3页
第4章指令系统_第4页
第4章指令系统_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 计算机组成与设计计算机组成与设计硬件硬件/ /软件接口软件接口Computer Organization and DesignThe Hardware/Software InterfaceDavid A. Patterson John L. Hennessy张建张建 E-mail:Z指令集指令集/指令系统(指令系统( Instruction Set Architecture,ISA)n 指令集ISA一台计算机所能执行全部机器指令的集合。Logic - gates, state machines, etc.Circuit - tr

2、ansistors, etc.Layout - mask patterns, etc.HardwareProcessorI/O SystemSoftwareCompilerApplication ProgramsOperating SystemApplicationInstruction Set ArchitectureInterface between SW & HW电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 指令集指令集/指令系统(指令系统( Instruction Set Architecture,ISA)指令集ISA是设计CPU最重要的依据指令集ISA已确定,不可

3、更改电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 两种不同风格和指令系统两种不同风格和指令系统 n 精简指令集计算机RISCRISC Reduced Instruction Set Computer 指令长度固定 单周期执行 指令流水线处理 硬件接线式控制电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 两种不同风格和指令系统两种不同风格和指令系统n 复杂指令集计算机CISCCISC Complex Instruction Set Computer 指令复杂,长度可变 多种内存寻址方式 微程序结构电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学

4、院 4.1 指令格式设计指令格式设计一条指令中必须明确或隐含包括如下信息:操作码操作码源操作数源操作数结果结果下一条指令地址下一条指令地址指令要完成的功能参与操作的数(可能有多个)结果存储地址下一条要执行指令的地址电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 4.2 指令系统设计指令系统设计n 确定指令系统提供的操作指令确定指令系统提供的操作指令指令系统提 供的指令越多、功能越强大,编程就简单,但硬件设计就复杂;反之,则编程复杂,但硬件设计简单。一个指令系统通常应提 供:加、减、乘、除、逻辑运算、移位等操作;电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院

5、4.2 指令系统设计指令系统设计n 操作数的来源操作数的来源/寻址方式寻址方式即如何找到操作数。操作数通常的来源:寄存器、立即数、内存、I/O端口。n 操作数的类型操作数的类型即是否支持8位、16位、32位等 操作数。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 4.2 指令系统设计指令系统设计n 下一条指令的地址下一条指令的地址大多数指令系统都采用一个专门的程序计数器(Program Count,PC)来存放下一条指令的地址。n 寄存器的种类和数量寄存器的种类和数量确定专用寄存器和通用寄存器的种类、宽度和数量。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学

6、院 指令系统设计的原则指令系统设计的原则n 完备性完备性/完整性完整性提供的指令应能满足程序编程的需求,但过于复杂的指令系统会使硬件设计复杂。n 兼容性兼容性新设计的指令系统应与以前的指令系统兼容,否则以前开发的程序将不能在新的指令系统上运行。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 指令系统设计的基本问题指令系统设计的基本问题n 操作码的设计操作码的设计操作码的长度决定了最多可以提供的指令数。例如:12位操作码可以212=4096条指令操作码过长会导致一条指令长度增加,使程序占用空间增大,程序读取时间变长。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学

7、院 指令系统设计的基本问题指令系统设计的基本问题n 操作数的寻址方式操作数的寻址方式寻址方式越多,则编程越灵活方便,但硬件设计复杂,时序不好统一。n 下一条指令地址的确定下一条指令地址的确定大多数指令系统都采用一个专门的程序计数器(Program Count,PC)来存放下一条指令的地址。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 指令系统设计的原则指令系统设计的原则n 操作码的设计操作码的设计操作码的长度决定了最多可以提供的指令数。例如:12位操作码可以212=4096条指令操作码过长会导致一条指令长度增加,使程序占用空间增大,程序读取时间变长。电子科技大学计算机科学与

8、工程学院电子科技大学计算机科学与工程学院 硬件设计的基本原则硬件设计的基本原则n 设计原则设计原则1:简单源于规整简单源于规整。 指令越规整,硬件设计越简单。n 设计原则设计原则2:越少越快越少越快。 器件越多可能会使时钟周期变长电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 硬件设计的基本原则硬件设计的基本原则n 设计原则设计原则3:加速执行常用的操作加速执行常用的操作。 这样效果最明显,付出的代价小,获得的收益大。n 设计原则设计原则4:优秀的设计需要适宜的折中方案优秀的设计需要适宜的折中方案。 当2种方案各有优缺点而又无法兼顾时,应进行必要的折中。电子科技大学计算机科学

9、与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS指令格式指令格式oprsrtrdshamtfunc6位5位5位5位5位6位31 2625 2120 1615 1110 650oprsrtimmediate6位5位5位16位31 2625 2120 1615 0opaddress6位26位31 26250R R型型I I型型J J型型n MIPS的指令可分为的指令可分为3种操作类型种操作类型电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 R R型指令格式型指令格式oprsrtrdshamtfunc6位5位5位5位5位6位31 2625 2120 1615 1110

10、650R R型型 操作码由op和func组成。当op=000000时表明该指令是R型指令,具体功能由func确定 。 rs、rt是2个源操作数所在的寄存器号。 rd是目的操作数所在的寄存器号。 shamt是位移量R型指令中无意义。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS汇编指令 R型指令电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 指令31:2625:2120:1615:1110:65:0功能add000000rsrtrd00000100000寄存器加sub000000rsrtrd00000100010寄存器减and000000rsrtrd

11、00000100100寄存器与or000000rsrtrd00000100101寄存器或xor000000rsrtrd00000100110寄存器异或sll00000000000rtrdsa000000左移srl00000000000rtrdsa000010逻辑右移sra00000000000rtrdsa000011算术右移jr000000rs000000000000000001000寄存器跳转电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 R R型指令型指令example1example1 指令代码如下:000000 01001 01010 01011 00000 0000

12、00 R型指令功能:加(add)R9寄存器R10寄存器R11寄存器电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 R R型指令型指令example2example2 指令代码如下:000000 00000 01010 01011 00011 100000 R型指令功能:左移(sll)R10寄存器R11寄存器移位次数3电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 I I型指令格式型指令格式oprsrtimmediate6位5位5位16位31 2625 2120 1615 0I I型型 操作码由op确定 。 有一个操作数为立即数(16位)。 rt是目的操作数所

13、在的寄存器号。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS汇编指令 I型指令 指令31:2625:2120:1615:0功能addi001000rsrtimmediate立即数加andi001100rsrtimmediate立即数与ori001101rsrtimmediate立即数或xori001110rsrtimmediate立即数异或lw100011rsrtimmediate取字数据sw101011rsrtimmediate存字数据beq000100rsrtimmediate相等转移bne000101rsrtimmediate不等转移lui0011110000

14、0rtimmediate设置高位电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 I I型指令型指令exampleexample 指令代码如下:001000 01001 01010 01011 00000 000000 功能:addiR9寄存器R10寄存器立即数电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 J J型指令格式型指令格式 操作码由op确定 。 转移地址:立即数(26位)。opaddress6位26位31 26250J J型型电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS汇编指令 J型指令电子科技大学计算机科学与工程学院

15、电子科技大学计算机科学与工程学院 指令31:2625:0功能j000010address跳转jal001100address调用电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS的寻址模式/方式电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 n 寻址模式/方式 寻找操作数或操作数地址的方式n 立即数寻址(Immediate addressing)操作数包含在指令中,取指令时已取回操作数。oprsrtimmediate电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS的寻址模式/方式电子科技大学计算机科学与工程学院电子科技大学计算

16、机科学与工程学院 n 寄存器寻址(Register addressing) 操作数在寄存器中。oprsrtrdfunc寄存器电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS的寻址模式/方式电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 n 基址寻址(Base addressing)oprsrtaddressRegister+MemoryXXX16位位电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS的寻址模式/方式电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 n PC相对寻址(Base addressing

17、)oprsrtaddressPC+Memory字 216位位电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS的寻址模式/方式n 伪直接寻址(Base addressing)opaddress 226位位28位位4位位PCMemory字电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS的通用寄存器寄存器名 寄存器号用途$s00常数0$at1汇编器专用$v0$v123表达式计算或函数调用的返回结果$a0$a347函数调用参数13$t0$t7815临时变量,函数调用时不需要保存和恢复$s0$s71623函数调用时需要保存和恢复的寄存器变量$t8$t9

18、2425临时变量,函数调用时不需要保存和恢复电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS的通用寄存器寄存器名 寄存器号用途$k0$k12627操作系统专用$gp28全局指针变量(Global Pointer)$sp29堆栈指针变量(Stack Pointer)$fp30帧指针变量(Frame Pointer)$ra31返回地址(Return Address)注:除0号和31号寄存器外,其余寄存器并无本质区别。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 加法(寄存器加)Example:Example:

19、说明:即将R2寄存器内容与R3寄存器内容相加,结果保存在R1寄存器中。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 减法(寄存器减)Example:Example:电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 与操作(寄存器与)Example:Example:电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 或操作(寄存器或)Example:Example:电子科技大学计算机科学与工程学院电子科技大学计算机科

20、学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 异或操作(寄存器异或)Example:Example:电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 左移操作Example:Example:电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 逻辑右移操作Example:Example:说明:即将R2寄存器内容右移3位,左边空出位补3个0,结果保存在R1寄存器中,R2的内容不变。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编

21、指令常用汇编指令n 算术右移操作Example:Example:说明:即将R2寄存器内容右移3位,左边空出位补3个符号位,结果保存在R1寄存器中,R2的内容不变。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 寄存器跳转操作Example:Example:说明:将R1寄存器内容赋给PC寄存器,PC中是下一条要执行指令的地址。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 加法(立即数加)Example:Example:说明:即将R2寄存器内容与立即数32相加(立即数32要

22、进行符号扩展),结果保存在R1寄存器中。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 与操作(立即数与)Example:Example:说明:立即数要进行零扩展,即在16位的立即数前加16个0构成一个32位的立即数。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 或操作(立即数或)Example:Example:说明:立即数要进行零扩展,即在16位的立即数前加16个0构成一个32位的立即数。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIP

23、S常用汇编指令常用汇编指令n 异或操作(立即数异或)Example:Example:说明:立即数要进行零扩展,即在16位的立即数前加16个0构成一个32位的立即数。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 取字数据操作Example:Example:+Memory字定位存储单元取数电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 存字数据操作Example:Example:+Memory字定位存储单元存数电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院

24、 MIPSMIPS常用汇编指令常用汇编指令n 相等转移操作Example:Example:操作操作: :符号扩展电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 不相等转移操作Example:Example:操作操作: :符号扩展电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 设置高位操作Example:Example:操作操作: :电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPSMIPS常用汇编指令常用汇编指令n 跳转操作Example:Exam

25、ple: abcd1000H(26位位)28位位4位位扩到28位(左移2位)电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 计算机硬件对过程的支持电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 n 过程/函数(procedure/function)一段子程序,函数通常具有返回值。n 调用过程/函数时必须解决的问题: 参数放在哪里?寄存器 Or 存储器 ?电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 计算机硬件对过程的支持电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 任务完成后结果放在哪里?寄存器 Or 存储器 ? 任务

26、完成后如何返回调用者?电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 MIPS中的堆栈n 堆栈(Stack) 堆栈是内存中指定的一块区域。Stack0n$sp栈顶栈底对堆栈操作通常是先进后出。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 编译编译一个不调用其它过程的一个不调用其它过程的C C过程过程n 例电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 编译一个不调用其它过程的C过程电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 假设:调用时参数变量g、h、i和j已放在寄存器$a0$a3中。分析: f为过程内的局部变量,为

27、其分配寄存器$s0; g+h的和为其其分配寄存器$t0; i-j的差为其其分配寄存器$t1;结论:$s0、$t0和$t1必须保存,退出过程时恢复。电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 编译一个不调用其它过程的C过程电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 n 将$s0、$t0和$t1压入堆栈0n$spxxx00n$spxxx0StartStep 1addi $sp , $sp , -12xxx1xxx2xxx3xxx1xxx2xxx3电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 编译一个不调用其它过程的C过程电子科技大学计

28、算机科学与工程学院电子科技大学计算机科学与工程学院 n 将$s0、$t0和$t1压入堆栈0n$spxxx0sw $t1 , 8($sp)$t1内容$t0内容$s0内容sw $t0 , 4($sp)sw $s0 , 0($sp)电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 编译一个不调用其它过程的C过程n 过程实体的编译 add $t0 , $a0 , $a1 add $t1 , $a2 , $a3 sub $s0 , $t0 , $t1n 返回值 add $v0 , $s0 , $zero电子科技大学计算机科

29、学与工程学院电子科技大学计算机科学与工程学院 电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 编译一个不调用其它过程的C过程n 将$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过程n 返回过程调用者执行结果:n 过程调用执行结果:在实际在实际MIPS系统中系统中由于延时的考虑:由于延时的考虑:PC=PC+8

30、电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 编译一个不调用其它过程的C过程n 返回过程调用者执行结果:n 过程调用执行结果:在实际在实际MIPS系统中系统中由于延时的考虑:由于延时的考虑:PC=PC+8电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 其它常见寻址方式其它常见寻址方式n 立即寻址操作数直接包含在指令中,紧跟在操作码之后,它作为指令的一部分。操作码操作码R11020H立即数立即数MOVMOV(R1) 1020H电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 其它常见寻址方式其它常见寻址方式n 直接寻址在指令中直接给出操作数的

31、有效地址。操作码操作码R11020H操作数地址操作数地址MOVMOV101EH101FHXXXX1020H1021H1020HR1XXXX电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 其它常见寻址方式其它常见寻址方式n 直接寻址在指令中直接给出操作数的有效地址。操作码操作码R11020H操作数地址操作数地址MOVMOV101EH101FHXXXX1020H1021H1020HR1XXXX电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 其它常见寻址方式其它常见寻址方式n 间接寻址指令中给出一个内存单元地址,再以该单元的内容作为地址到内存中去取操作数。内存内存操作码操作码100H110H操作数操作数110H电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 其它常见寻址方式其它常见寻址方式n 变址寻址在指令中给出一个变址寄存器和一个偏移量,2者相加的和作为有效地址去存储器中取数据。操作码操作码R1SI+10H操作数地址操作数地址MOVMOV10HSIXXXX+Memory电子科技大学计算机科学与工程学院电子科技大学计算机科学与工程学院 其它常见寻址方式其它常见寻址方式n 相对寻址在指令中给出一个地址偏移量,

温馨提示

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

评论

0/150

提交评论