指令系统(李曦)(中科大)

上传人:c****d 文档编号:242968858 上传时间:2024-09-13 格式:PPTX 页数:41 大小:237.61KB
返回 下载 相关 举报
指令系统(李曦)(中科大)_第1页
第1页 / 共41页
指令系统(李曦)(中科大)_第2页
第2页 / 共41页
指令系统(李曦)(中科大)_第3页
第3页 / 共41页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,/41,计算机组成原理第七章“指令系统”,中科大,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/O,1,运算器,控制器,主存,控制信号,Instruction Set Architecture,instruction set,software,hardware,The instruction set architecture serves as the interface between software and hardware,5,/41,程序员所见微处理器结构,低优先级任务,OS,_,TCB,OSTCBCur,PSW,PC,R1,R2,R3,R4,存贮器低地址,存贮器高地址,堆栈方向,SP,R1,R2,R3,R4,PC,PSW,PSW,PC,R1,R2,R3,R4,存贮器低地址,存贮器高地址,高优先级任务,OS,_,TCB,OSTCBHighRdy,(3),(2),CPU,(4),(5),(1),(3),6,/41,指令字格式,von Neumann,: “指令由,操作码,和,地址码,构成”,操作码:操作的性质,地址码:指令和操作数(,operand,)的存储位置,指令字长度固定,vs.,可变,固定:规则,浪费空间,操作码长度固定,vs.,可变,如果指令字长固定,则操作码长度增加,地址码长度缩短,固定:译码简单,指令条数有限,,RISC,(,Sun SPARC,),可变:指令条数和格式按需调整,,CISC,(,x86,),扩展操作码技术:调整,op,与,addr,域,缩短指令字长,操作码域(,op,),地址码域(,addr,),7,/41,地址码,指定源操作数、目的操作数、下一条指令地址,地址:主存、寄存器、,I/O,端口,地址码格式,4,地址指令:,op rs1, rs2, rd, ni,3,地址指令:,op rs1, rs2, rd,;,ni,在,PC,中,2,地址指令:,op rs1, rs2,;,rd=rs1 or ACC,1,地址指令:,op rs2,;,rs1=ACC,,,rd=ACC,0,地址指令:,op,; 堆栈操作,8,/41,操作数(,opr,),含,地址:无符号整数,计算,offset,等,数据:定点数、浮点数、逻辑值,字符:,ASCII,、汉字内码,数据存储形式,机器字长寄存器位数,字节、字、双字,边界对准:数据从偶地址开始存放,空字节填充,字存储顺序,小尾端(,small endness,):低地址,低字节,大尾端(,big endness,):低地址,高字节,9,/41,边界对准问题,为了便于硬件实现,通常要求多字节的数据在存储器的存放方式能满足“边界对准”的要求。,字(地址,0,),048,字(地址,4,),字节(地址,11,),字节(地址,10,),字节(地址,9,),字节(地址,8,),字节(地址,15,),字节(地址,14,),字节(地址,13,),字节(地址,12,),12162024283236,半字(地址,18,),半字(地址,16,),半字(地址,22,),半字(地址,20,),双字(地址,24,),双字,双字(地址,32,),双字,地址(十进制),存储器,在对准边界的,32,位字长的计算机中,半字地址是,2,的整数倍,字地址是,4,的整数倍,双字地址是,8,的整数倍。当所存数据不能满足此要求时,可填充一个至多个空白字节。,10,/41,边界对准问题,在数据不对准边界的计算机中,数据,(,例如一个字,),可能在两个存储单元中,此时需要访问两次存储器,并对高低字节的位置进行调整后,才能取得一字。,字(地址,2,),半字(地址,0,),0,4,8,字节(地址,7,),字节(地址,6,),字(地址,4,),半字(地址,10,),半字(地址,8,),存储器,地址(十进制),11,/41,字存储顺序,字存储顺序中,字节的次序有两种,小尾端(,small endness,):低地址,低字节,大尾端(,big endness,):低地址,高字节,0,3,2,1,0,4,7,6,5,4,0,0,1,2,3,4,4,5,6,7,字地址,字地址,小尾端,大尾端,12,/41,操作分类,数据传递,mov,,,load,,,store,算逻运算,add,,,sub,,,and,,,not,,,or,,,xor,,,dec,,,inc,,,cmp,移位操作,shl,,,shr,,,srl,,,srr,转移控制,jmp,,,bnz,,,beq,,,call,,,ret,,,int,,,iret,I/O,指令,in,,,out,系统指令,Halt,,,nop,,,wait,,,sti,,,cli,13,/41,过程调用,procedure,步骤,将参数放在子过程可以访问的位置,将控制交给子过程,获得子过程所需的存储资源,执行子过程,将结果放在调用程序可以访问的位置,将控制交回调用程序,14,/41,寻址方式,寻址方式:确定指令和操作数的存储地址的方式,指令寻址:利用,PC,顺序执行:每执行一条指令,,PC,自动,1,跳转:更新,PC,,转移到目的地址执行,操作数寻址,指令中给出“形式地址”,有效地址:操作数在内存中的物理地址,EA,寻址方式形式地址,操作码,形式地址,15,/41,操作数寻址方式,常见约,10,种,立即寻址,直接寻址,隐含寻址,间接寻址,寄存器寻址,寄存器间接寻址,基址寻址,变址寻址,相对寻址,堆栈寻址,16,/41,寻址方式,立即寻址,(Immediate addressing),地址域中即为操作数,表示为:,op,xxxx,立即数的范围与指令字长有关,存储于内存中的指令段,直接寻址,(direct addressing),有效地址形式地址,形式地址位数确定寻址范围,op xxxx,隐含寻址,操作数在缺省的寄存器或,ACC,中,17,/41,寻址方式(,cont,),间接寻址(间址寻址,,Indirect,),形式地址中给出有效地址的存储位置,表示为:,op xxxx,寻址范围比直接寻址大,可以“多次间址”,寄存器寻址,(Register Direct),形式地址为某寄存器名(编号),该寄存器中存放操作数,op %r,寄存器间接寻址,(Register Indirect),寄存器中为操作数的地址,表示为:,op %r,400H,300H,400H,0a0bH,18,/41,寻址方式(,cont,),基址寻址,(Base or Displacement addressing),op xxxxBR,以基址寄存器(,BR,)为基准进行寻址,EA,形式地址(,Disp,),BR,基址寄存器:专用、通用,显式(通用寄存器)、隐式(专用寄存器),变址寻址,op xxxxIR,以变址寄存器(,IR,)的值为基准寻址,基址寻址,vs.,变址寻址,基址:,BR,由,OS,赋值,不变;形式地址可变,变址:,IR,由程序员赋值,可变;形式地址不变,用途不同:基址,段寻址,变址,数组指针,19,/41,寻址方式(,cont,),相对寻址(,PC-relative addressing,),EA,PC,形式地址(,disp,),用于转移指令的目标计算,位移量(,Disp,):用补码,可正可负,堆栈寻址:专用于堆栈操作指令,堆栈:可以为寄存器堆(,Register File,)或内存中的区域,由,SP,指示栈顶位置,是一种隐含寻址,20,/41,VAX11/780,16,位机,有,16,种寻址方式,共,303,条指令,16,个寄存器,指令字不定长(,1,54bytes,),例:,Add R2, R4; R2+R4 - R4, “06,0,2,0,4” (8,进制,),Add R2, R1; R2 + R1 - R1, 06,1,2 01,Add #1000, R1; 1000+R1 - R1,op(4 bits),方式,(3 bits),Rn(3 bits),方式,(3 bits),Rn(3 bits),寄存器寻址,寄存器间接寻址,21,/41,X86,指令格式,22,/41,MIPS,指令格式,100,余条指令(,Hennessy,中,33,条),共,32,个通用寄存器,指令格式:定长,32,位,R-type,:,arithmetic instruction,I-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-type,I-type,op(6 bits),rs(5 bits),rt(5 bits),addr(16 bits),J-type,op(6 bits),addr(26 bits),23,/41,MIPS,寻址模式,寄存器寻址:,R-type,基址寻址:,I-type,立即寻址,相对寻址,伪直接寻址(,pseudodirect addressing,),26,位形式地址左移,2,位,与,PC,的高,4,位拼接,24,/41,指令系统说明,指令格式和寻址方式复杂,灵活,但硬件设计复杂,为了提高性能,需要减少访存次数,因此寄存器寻址性能最高。,指令系统的兼容性,CISC,:以机器指令实现高级语言功能。,指令字长不一(,x86,从,1byte,6bytes,),寻址方式多,RISC,中采用,load/store,体系,设置大量通用寄存器,运算基于寄存器,只有,load/store,指令访存。,指令字长固定,格式规则,种类少,寻址方式简单,采用超标量(,Superscalar,)、超流水线(,Superpipeling,)等技术,提高,IPC,VLIW,:兼容性差,硬件简单,低功耗,作业:,3,、,11,、,17,Evolution of Instruction Sets,Single Accumulator,(EDSAC 1950),Accumulator + Index Registers,(Manchester Mark I, IBM 700 series 1953),Separation of Programming Model,from Implementation,High-level Language Based,Concept of a Family,(B5000 1963),(IBM 360 1964),General Purpose Register Machines,Complex Instruction Sets,Load/Store Architecture,RISC,(Vax, Intel 8086 1977-80),(CDC 6600, Cray 1 1963-76),(Mips,Sparc, IBM RS6000, . . .1987+),VLIW,Cydra-5 1983, Multiflow 1984, TMSC6X 1996, Intel EPIC 1997,26,/41,ISA,的发展(,Hennessy P189,),典型的,ISA,类型,Accumulator Architecture,General-Purpose Register Architecture,Compact Code & Stack Architecture,High-level-language Conputer Architecture,Reduced Instruction Set Computer Architecture,影响,ISA,的因素有二,汇编语言编程能力,硬件实现成本,ISA Classes (CPU prospective),C = A + B,ISA Classes (cont.),29,/41,Accumulator Architectures,早期硬件太昂贵,所以使用的寄存器很少。,实际上,只有一个,用于算术指令的,寄存器,被称为“,Accumulator”,,所以这种结构被称为“,Accumulator Architectures”,,如,EDSAC,(,1949,)。,采用“,memory-based operand-addressing mode”,。,进化:采用一些专用的独占的寄存器,如数组指针、堆栈指针、乘除运算等,如,x86,,称为“,extended accumulator arch”,30,/41,General-Purpose Register Architecture,所有寄存器可以用于任何目的,因此称为“,General-Purpose Register Architecture”,Register-memory Arch,:允许一个操作数在内存中,Load-store or register-register architecture,:要求所有操作数都在寄存器中,x86,:,Register-memory,MIPS,:,Load-store,31,/41,Compact Code & Stack Architecture,60s,,编译技术发挥寄存器的效率很困难,因此某些设计者完全放弃寄存器,而采用堆栈执行模型。,基于堆栈的操作可以有效的缩短指令字长,可以减少存储和传输的开销,JAVA,即采用堆栈模型,FORTH,32,/41,High-level-language Computer Architecture,60s,,使用高级语言编写的软件很少。,在,Unix,之前,所有的商业软件都使用汇编语言。,人们更关注于代码密度而不是编程语言和编译技术。,提倡“,High-level-language Conputer Architecture”,机器设计策略的目标是使硬件更靠近编程语言。,例:,Burroughs B5000,随着更高效的编程语言和编译器以及更大的存储空间使得这种思想逐渐消失。,33,/41,Reduced Instruction Set Computer Architecture,80s,,汇编程序设计已经很少。,对指令集的衡量标准从汇编语言程序员的使用性能转向对编译器的支持能力。,面向语言的机器设计策略被,RISC,终结。,指令字定长,使用,load-store,指令,有限的寻址方式,有限的指令,实际上,,1982,年以后,所有新的指令集都遵从,RISC,思想:,X86 Instruction Distribution,Control Instruction Distribution,分支比较的实现方式(,Branch Conditions,),Condition: (Z, N, C, O),SIMD Instructions,Saturated Instructions,Saturation 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 operations,S = S + X * Y,DSP MAC instruction (16 bits),MAC $accumulator $r0 $r1,40,/41,Addressing Mode Summary,Data,Immediate,Register-direct,Register,indirect,Direct,Indirect,Data,Operand field,Register address,Register address,Memory address,Memory address,Memory address,Data,Data,Memory address,Data,Addressing,mode,Register-file,contents,Memory,contents,Evolution of Instruction Sets,Major advances in computer architecture are typically associated with landmark instruction set designs,Ex: Stack vs GPR (System 360),Design decisions must take into account:,technology,machine organization,programming languages,compiler technology,operating systems,The design decisions in turn influence these.,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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