指令系统(李曦)(中科大)_第1页
指令系统(李曦)(中科大)_第2页
指令系统(李曦)(中科大)_第3页
指令系统(李曦)(中科大)_第4页
指令系统(李曦)(中科大)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理第七章“指令系统”中科大11系2/41概要指令系统:机器指令的集合机器语言汇编语言(Assemble Language)Instruction Set Architecture(ISA)CISC、RISC、VLIW处理器、C编译器、OS本章的内容指令格式寻址方式指令系统介绍3/41细化的计算机系统组织ACC MQ ALU X CU IR PC 存储体 MDR MAR I/O1运算器控制器主存控制信号Instruction Set Architectureinstruction setsoftwarehardwareThe instruction set architecture

2、serves as the interface between software and hardware5/41程序员所见微处理器结构低优先级任务 OS_TCBOSTCBCurPSWPCR1R2R3R4存贮器低地址存贮器高地址堆栈方向SPR1R2R3R4PCPSWPSWPCR1R2R3R4存贮器低地址存贮器高地址高优先级任务 OS_TCBOSTCBHighRdy(3)(2)CPU(4)(5)(1)(3)6/41指令字格式von Neumann: “指令由操作码和地址码构成”操作码:操作的性质地址码:指令和操作数(operand)的存储位置指令字长度固定vs.可变固定:规则,浪费空间操作码长度

3、固定vs.可变如果指令字长固定,则操作码长度增加,地址码长度缩短固定:译码简单,指令条数有限,RISC(Sun SPARC)可变:指令条数和格式按需调整,CISC(x86)扩展操作码技术:调整op与addr域,缩短指令字长操作码域(op) 地址码域(addr) 7/41地址码指定源操作数、目的操作数、下一条指令地址地址:主存、寄存器、I/O端口地址码格式4地址指令:op rs1, rs2, rd, ni3地址指令:op rs1, rs2, rd; ni在PC中2地址指令:op rs1, rs2; rd=rs1 or ACC1地址指令:op rs2; rs1=ACC,rd=ACC0地址指令:op

4、; 堆栈操作8/41操作数(opr)含地址:无符号整数,计算offset等数据:定点数、浮点数、逻辑值字符:ASCII、汉字内码数据存储形式机器字长寄存器位数字节、字、双字边界对准:数据从偶地址开始存放,空字节填充字存储顺序小尾端(small endness):低地址,低字节大尾端(big endness):低地址,高字节9/41边界对准问题为了便于硬件实现,通常要求多字节的数据在存储器的存放方式能满足“边界对准”的要求。字(地址0)048字(地址4)字节(地址11)字节(地址10)字节(地址9)字节(地址8)字节(地址15)字节(地址14)字节(地址13)字节(地址12)1216202428

5、3236半字(地址18)半字(地址16)半字(地址22)半字(地址20)双字(地址24)双字双字(地址32)双字地址(十进制) 存储器 在对准边界的32位字长的计算机中,半字地址是2的整数倍,字地址是4的整数倍,双字地址是8的整数倍。当所存数据不能满足此要求时,可填充一个至多个空白字节。 10/41边界对准问题在数据不对准边界的计算机中,数据(例如一个字)可能在两个存储单元中,此时需要访问两次存储器,并对高低字节的位置进行调整后,才能取得一字。字(地址2)半字(地址0)048字节(地址7)字节(地址6)字(地址4)半字(地址10)半字(地址8)存储器 地址(十进制)11/41字存储顺序字存储顺

6、序中,字节的次序有两种 小尾端(small endness):低地址,低字节大尾端(big endness):低地址,高字节03210476540012344567字地址字地址小尾端大尾端12/41操作分类数据传递mov,load,store算逻运算add,sub,and,not,or,xor,dec,inc,cmp移位操作shl,shr,srl,srr转移控制jmp,bnz,beq,call,ret,int,iretI/O指令in,out系统指令Halt,nop,wait,sti,cli13/41过程调用procedure步骤将参数放在子过程可以访问的位置将控制交给子过程获得子过程所需的存储

7、资源执行子过程将结果放在调用程序可以访问的位置将控制交回调用程序14/41寻址方式寻址方式:确定指令和操作数的存储地址的方式指令寻址:利用PC顺序执行:每执行一条指令,PC自动1跳转:更新PC,转移到目的地址执行操作数寻址指令中给出“形式地址”有效地址:操作数在内存中的物理地址EA寻址方式形式地址操作码 形式地址 15/41操作数寻址方式常见约10种立即寻址直接寻址隐含寻址间接寻址寄存器寻址寄存器间接寻址基址寻址变址寻址相对寻址堆栈寻址16/41寻址方式立即寻址(Immediate addressing)地址域中即为操作数表示为:op xxxx立即数的范围与指令字长有关存储于内存中的指令段直接

8、寻址(direct addressing)有效地址形式地址形式地址位数确定寻址范围op xxxx隐含寻址操作数在缺省的寄存器或ACC中17/41寻址方式(cont)间接寻址(间址寻址, Indirect )形式地址中给出有效地址的存储位置表示为:op xxxx寻址范围比直接寻址大可以“多次间址”寄存器寻址(Register Direct)形式地址为某寄存器名(编号),该寄存器中存放操作数op %r寄存器间接寻址(Register Indirect)寄存器中为操作数的地址表示为:op %r 400H300H400H0a0bH18/41寻址方式(cont)基址寻址(Base or Displace

9、ment addressing)op xxxxBR以基址寄存器(BR)为基准进行寻址EA形式地址(Disp)BR基址寄存器:专用、通用显式(通用寄存器)、隐式(专用寄存器)变址寻址op xxxxIR以变址寄存器( IR )的值为基准寻址基址寻址 vs. 变址寻址基址:BR由OS赋值,不变;形式地址可变变址:IR由程序员赋值,可变;形式地址不变用途不同:基址段寻址,变址数组指针19/41寻址方式(cont)相对寻址(PC-relative addressing)EAPC形式地址(disp)用于转移指令的目标计算位移量(Disp):用补码,可正可负堆栈寻址:专用于堆栈操作指令堆栈:可以为寄存器堆(

10、Register File)或内存中的区域,由SP指示栈顶位置是一种隐含寻址20/41VAX11/78016位机,有16种寻址方式,共303条指令16个寄存器,指令字不定长(154bytes)例:Add R2, R4; R2+R4 - R4, “06 02 04” (8进制) Add R2, R1; R2 + R1 - R1, 06 12 01Add #1000, R1; 1000+R1 - R1op(4 bits)方式(3 bits)Rn(3 bits)方式(3 bits)Rn(3 bits)寄存器寻址寄存器间接寻址21/41X86指令格式22/41MIPS指令格式100余条指令(Henne

11、ssy中33条),共32个通用寄存器指令格式:定长32位R-type:arithmetic instructionI-type:data transfer J-type:branch instruction(conditional & unconditional)op(6 bits)rs(5 bits)rt(5 bits)rd(5 bits)shamt(5 bits)funct(6 bits)op(6 bits)rs(5 bits)rt(5 bits)addr/immediate(16 bits)R-typeI-typeop(6 bits)rs(5 bits)rt(5 bits)addr(16

12、 bits)J-typeop(6 bits)addr(26 bits)23/41MIPS寻址模式寄存器寻址:R-type基址寻址:I-type立即寻址相对寻址伪直接寻址(pseudodirect addressing)26位形式地址左移2位,与PC的高4位拼接24/41指令系统说明指令格式和寻址方式复杂,灵活,但硬件设计复杂为了提高性能,需要减少访存次数,因此寄存器寻址性能最高。指令系统的兼容性CISC:以机器指令实现高级语言功能。指令字长不一(x86从1byte6bytes)寻址方式多RISC中采用load/store体系,设置大量通用寄存器,运算基于寄存器,只有load/store指令访存

13、。指令字长固定,格式规则,种类少,寻址方式简单采用超标量(Superscalar)、超流水线(Superpipeling)等技术,提高IPCVLIW:兼容性差,硬件简单,低功耗作业:3、11、17Evolution of Instruction SetsSingle Accumulator (EDSAC 1950)Accumulator + Index Registers(Manchester Mark I, IBM 700 series 1953)Separation of Programming Model from ImplementationHigh-level Language Ba

14、sedConcept of a Family(B5000 1963)(IBM 360 1964)General Purpose Register MachinesComplex Instruction SetsLoad/Store ArchitectureRISC(Vax, Intel 8086 1977-80)(CDC 6600, Cray 1 1963-76)(Mips,Sparc, IBM RS6000, . . .1987+)VLIWCydra-5 1983, Multiflow 1984, TMSC6X 1996, Intel EPIC 199726/41ISA的发展(Henness

15、y P189)典型的ISA类型Accumulator ArchitectureGeneral-Purpose Register ArchitectureCompact Code & Stack ArchitectureHigh-level-language Conputer ArchitectureReduced Instruction Set Computer Architecture影响ISA的因素有二汇编语言编程能力硬件实现成本ISA Classes (CPU prospective)C = A + BISA Classes (cont.)29/41Accumulator Archite

16、ctures早期硬件太昂贵,所以使用的寄存器很少。实际上只有一个用于算术指令的寄存器被称为“Accumulator”,所以这种结构被称为“Accumulator Architectures”,如EDSAC(1949)。采用“memory-based operand-addressing mode”。进化:采用一些专用的独占的寄存器,如数组指针、堆栈指针、乘除运算等如x86,称为“extended accumulator arch”30/41General-Purpose Register Architecture所有寄存器可以用于任何目的,因此称为“General-Purpose Regist

17、er Architecture”Register-memory Arch:允许一个操作数在内存中Load-store or register-register architecture:要求所有操作数都在寄存器中x86:Register-memoryMIPS:Load-store31/41Compact Code & Stack Architecture60s,编译技术发挥寄存器的效率很困难,因此某些设计者完全放弃寄存器,而采用堆栈执行模型。基于堆栈的操作可以有效的缩短指令字长,可以减少存储和传输的开销JAVA即采用堆栈模型FORTH32/41High-level-language Compu

18、ter Architecture60s,使用高级语言编写的软件很少。在Unix之前,所有的商业软件都使用汇编语言。人们更关注于代码密度而不是编程语言和编译技术。提倡“High-level-language Conputer Architecture”机器设计策略的目标是使硬件更靠近编程语言。例:Burroughs B5000随着更高效的编程语言和编译器以及更大的存储空间使得这种思想逐渐消失。33/41Reduced Instruction Set Computer Architecture80s,汇编程序设计已经很少。对指令集的衡量标准从汇编语言程序员的使用性能转向对编译器的支持能力。面向语言

19、的机器设计策略被RISC终结。指令字定长使用load-store指令有限的寻址方式有限的指令实际上,1982年以后,所有新的指令集都遵从RISC思想: X86 Instruction DistributionControl Instruction Distribution分支比较的实现方式(Branch Conditions)Condition: (Z, N, C, O)SIMD InstructionsSaturated InstructionsSaturation arithmetic (example: image addition)for (I=0; I8; I+) for (J=0; J 255) dest = 255; else if (dest 0) dest = 0; MAC Instruction Matrix Multiplications:zIJ += xIJ * yJI Series of multiply-accumulate operationsS = S

温馨提示

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

评论

0/150

提交评论