《计算机组成原理ch.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理ch.ppt(44页珍藏版)》请在三一办公上搜索。
1、第五章 指令系统,内 容,5.1 机器指令5.2 寻址方式5.3 指令的分类5.4 CISC与RISC技术5.5 典型指令系统举例5.6 小型案例实训5.7 本章小结5.8 学习加油站5.9 习 题,5.1 机器指令,一、指令格式,1.操作码,(1)长度固定,(2)长度可变,用于指令字长较长的情况,,RISC,如 IBM 370,操作码 8 位,操作码分散在指令字的不同字段中,5.1 机器指令,二、指令字长,指令字长决定于,操作码的长度,指令字长=存储字长,2.指令字长 可变,操作数地址的长度,操作数地址的个数,1.指令字长 固定,按字节的倍数变化,5.1 机器指令,三、指令的地址结构1.四地
2、址指令2.三地址指令3.二地址指令4.一地址指令5.零地址指令,5.1 机器指令,四、指令操作码操作码用于指明指令要完成的操作功能及其特性。具有唯一性。若指令系统中有种操作,即指令系统中可包含条指令,则操作码的位数应满足:按操作码的长度是否可变分为:定长编码变长编码,变长编码-扩展操作码技术,操作码的位数随地址数的减少而增加,4 位操作码,8 位操作码,12 位操作码,16 位操作码,15条三地址指令,15条二地址指令,15条一地址指令,16条零地址指令,7.1,5.1 机器指令,【例5.1】设机器指令字长为16位,指令中地址字段的长度为位。如果指令系统中已有11条三地址指令、72条二地址指令
3、和64条零地址指令,问最多还能规定多少条一地址指令?分析三地址指令的地址字段共需12位,指令中还可有位用于操作码,可规定16条三地址指令。因为现有11条三地址指令,所以还剩下个编码,可用于二地址指令。二地址指令的地址字段共需8位,可有8位操作码,去掉三地址指令用掉的操作码,可规定条二地址指令。现有72条二地址指令,所以还有个编码用于一地址指令。,5.2 寻址方式,一、寻址的基本概念,寻址方式,确定 本条指令 的 操作数地址下一条 欲执行 指令 的 指令地址,寻址方式,5.2 寻址方式,二、指令的寻址方式1.顺序方式2.跳越方式 当程序发生转移时,根据指令的转移目标地址修改PC的内容。,5.2
4、寻址方式,三、操作数的寻址方式操作数存在的位置或形式:常数、或存在于主存、寄存器中。在设计寻址方式时,尽量满足下列要求:指令内包含的地址字段的长度尽可能短,以缩短指令长度。指令中给出的地址能访问尽可能大的存储空间。希望地址能隐含在寄存器中。能在不改变指令的情况下改变地址的实际值,以支持数组、向量、线性表、字符串等数据结构。寻址方式应尽可能简单,以简化硬件设计。,一般讨论寻址方式时,主要都是讨论操作数地址的寻址方式,5.2 寻址方式,1.立即寻址2.直接寻址3.间接寻址4.寄存器直接寻址5.寄存器间接寻址6.变址寻址7.相对寻址8.基址寻址9.基址加变址寻址10.堆栈寻址11.页面寻址,5.2
5、寻址方式,1.立即寻址立即寻址方式是指指令的地址码部分给出的不是操作数的地址而是操作数本身。,指令执行阶段不访存,A 的位数限制了立即数的范围,可正可负 补码,形式地址 D 就是操作数,5.2 寻址方式,2.直接寻址,EA=A,寻址特征,EA,执行阶段访问一次存储器,A 的位数决定了该指令操作数的寻址范围,操作数的地址不易修改(必须修改A),有效地址由形式地址直接给出,3.间接寻址,EA=(A),有效地址由形式地址间接提供,寻址特征,A,EA,A1,EA,执行指令阶段 2 次访存,可扩大寻址范围,便于编制程序,寻址特征,A,一次间址,多次间址,操作数,操作数,多次访存,4.寄存器直接寻址,EA
6、=Ri,执行阶段不访存,只访问寄存器,执行速度快,寻址特征,寄存器个数有限,可缩短指令字长,有效地址即为寄存器编号,EA=(Ri),5.寄存器间接寻址,有效地址在寄存器中,操作数在存储器中,执行阶段访存,寻址特征,便于编制循环程序,有效地址在寄存器中,EA,6.变址寻址,EA=(Rx)+A,OP,A,寻址特征,Rx,可扩大寻址范围,便于处理数组问题,IX 的内容由用户给定,Rx 为变址寄存器(专用),在程序的执行过程中 IX 内容可变,形式地址 A 不变,通用寄存器也可以作为变址寄存器,X,Rx,EA=A+X,7.相对寻址,EA=(PC)+A,A 是相对于当前指令的位移量(可正可负,补码),A
7、 的位数决定操作数的寻址范围,程序浮动,广泛用于转移指令,操作数,寻址特征,相对距离 Disp,主存,K,Disp,OP,EA=k+1+Disp,8.基址寻址,(1)采用专用寄存器作基址寄存器,EA=Rb+Disp,Rb 为基址寄存器,可扩大寻址范围,便于程序搬家,BR 内容由操作系统或管理程序确定,在程序的执行过程中 BR 内容不变,形式地址 A 可变,OP,Disp,寻址特征,Rb,Rb,Base,EA=(Rb)+Disp,9.基址加变址寻址将基址寻址与变址寻址结合起来就形成了基址加变址寻址方式。,10.堆栈寻址,(1)堆栈的特点,堆栈,多个寄存器,指定的存储空间,先进后出(一个入出口),
8、栈顶地址 由 SP 指出,1,1FFFH,+1,2000 H,1FFF H,2000 H,5.2 寻址方式,11.页面寻址页面寻址就是将存储器逻辑地分成若干页,每一页都有自己的页面地址,一页内包含若干存储单元,可以通过页内地址进行访问。当需要访问一页内的某一单元时,将该页的页面地址与相应单元的页内地址相拼接,即可形成操作数的有效地址。,5.2 寻址方式,12.扩展寻址扩展寻址就是将要访问的存储单元地址的高位预先装入扩展寄存器中,访存时将扩展寄存器的内容与指令字中形式地址部分给出的内容相拼接,形成操作数的有效地址。,5.3 指令的分类,一、指令系统的基本要求1.完备性2.有效性3.规整性对称性匀
9、齐性指令与数据格式的一致性4兼容性,5.3 指令的分类,二、指令的类型数据传输指令 算术运算指令 逻辑运算指令程序控制指令 输入输出指令 字符串类指令 系统控制指令 其他指令,5.3 指令的分类,三、数据传输指令1.一般传送指令2.堆栈操作指令PUSH XX POP XX 3.数据交换指令,立即数,存储器,寄存器,5.3 指令的分类,四、算术运算指令 运算包括定点加、减、乘、除指令,浮点加、减、乘、除指令以及加1、减1、比较等。有些机器还有十进制算术运算指令。,5.3 指令的分类,五、逻辑运算指令1)按位测(位检查)2)按位清(位清除)3)按位置(位设置)4)按位修改5)判符合,5.3 指令的
10、分类,六、程序控制指令1.转移类指令1)无条件转移又称必转。2)条件转移必须受到条件的约束。转移的条件,一般是上次运算结果的某些特征(标志),如进位标志、结果为零标志、结果溢出标志等。2.子程序调用指令3.返回指令,5.3 指令的分类,六、输入输出指令1.独立编址的I/02.统一编址的I/O,5.3 指令的分类,七、字符串类指令字符串传送字符串比较字符串查找字符串抽取字符串转换,5.3 指令的分类,八、系统控制指令1)访问系统寄存器的指令2)检查保护属性的指令3)用于存储管理的指令,5.3 指令的分类,九、其他指令控制功能的指令,如停机、等待、空操作、开中断、关中断、置条件码以及特权指令等。特
11、权指令主要用于系统资源的分配与管理,具有特殊的权限,一般只能用于操作系统或其他系统软件,而不直接提供给用户使用。在多任务、多用户的计算机系统中,这种特权指令是不可缺少的。除此之外,在一些多处理器系统中还配有专门的多处理机指令。,5.4 CISC与RISC技术,一、RISC 的产生和发展,80 20 规律,典型程序中 80%的语句仅仅使 用处理机中 20%的指令,执行频度高的简单指令,因复杂指令 的存在,执行速度无法提高,RISC(Reduced Instruction Set Computer),CISC(Complex Instruction Set Computer),RISC技术,5.4
12、 CISC与RISC技术,二、RISC 的主要特征,选用使用频率较高的一些 简单指令 复杂指令的功能由简单指令来组合,指令 长度固定,只有 LOAD/STORE 指令访存,流水技术 一个时钟周期 内完成一条指令,组合逻辑 实现控制器,多个 通用 寄存器,采用 优化 的 编译 程序,5.4 CISC与RISC技术,三、CISC与RISC的比较1.充分利用VLSI芯片的面积2.提供计算机运行速度3.便于设计,可降低成本,提供可靠性4.有效支持高级语言程序,5.6 小型案例实训,【案例】寻址方式指令设计。【说明】分别用变址寻址方式和间接寻址方式编写一个程序,求C=A+B,其中A与B都是由n个元素组成
13、的一维数组,比较两个程序并回答下列问题:(1)从程序的复杂程度看,哪一种寻址方式更好?(2)从硬件实现的代价看,哪一种寻址方式比较容易实现?(3)从对向量运算的支持看,哪一种寻址方式更好?,【分析】本题主要考查对变址寻址方式和间接寻址方式的理解,间接寻址是指指令地址字段中的形式地址不是操作数的真正地址而是操作数的指示地址,由于两次访问指令的执行速度较慢。变址寻址方式是指把CPU中某个变址寄存器的内容与偏移量相加来形成操作数有效地址,目的在于实现程序块的规律性变化。用变址寻址方式编写程序如下:START:MOVE CS,X;数组C的起始地址送变址寄存器 MOVE NUM,CNT;保存运算次数LO
14、OP:ADD(X),CS-AS(X),CS-BS(X);地址偏移量在汇编时计算 INC X;增量变址寄存器 DEC CNT;次数减1BGT LOOP;测试n次运算是否已经完成 HALT;运算完成,停机用间接寻址方式编写程序如下:START:MOVE AS,AI;保存数组A的起始地址MOVE BS,AI;保存数组B的起始地址 MOVE CS,CI;保存数组C的起始地址 MOVE NUM,CNT;保存运算的次数LOOP:ADD CI,AI,BI;计算C=A+B INC AI;数组A的地址增量 INC BI;数组B的地址增量INC CI;数组B的地址增量 DEC CNT;次数减1BGT LOOP;测
15、试n次运算是否已经完成HALT;运算完成,停机,对以上程序的说明:AS:AI;数组A的起始地址 BS:BI;数组B的起始地址CS:CI;数组C的起始地址NUM:n;需要运算的次数 AI:0;当前正在使用的数组A的地址 BI:0;当前正在使用的数组B的地址 CI:0;当前正在使用的数组C的地址CNT:0;剩余次数计数器,【解答】(1)变址寻址方式(2)间接寻址方式(3)变址寻址方式,5.7 本章小结,指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也影响到系统软件。指令格式是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。形成指令地址的
16、方式,称为指令寻址方式。有顺序寻址和跳跃寻址两种,由指令计数器来跟踪。形成操作数地址的方式,称为数据寻址方式。操作数可放在专用寄存器、通用寄存器、内存和指令中。RISC指令系统是目前计算机发展的主流,也是CISC指令系统的改进,5.8 学习加油站,【问题1】简述立即寻址方式的特点。答:立即寻址方式的特点是执行速度快,取指令的同时也取出数据,不需要寻址计算和访问内存,但操作数是固定不变的,因此适合于访问常数。【问题2】简述基址寻址方式和变址寻址方式的主要区别。答:基址寻址用于程序定位,一般由硬件或操作系统完成。而变址寻址是面向用户的,用于对一组数据进行访问等。,5.8 学习加油站,【问题3】简述
17、相对寻址的特点。答:相对寻址方式中,操作数的地址是程序计数器PC的值加上偏移量形成的,是一种特殊的变址寻址方式,偏移量用补码表示,可正可负。相对寻址方式可用较短的地址码访问内存。【问题4】在寄存器-寄存器型、寄存器-存储器型和存储器-存储器型三类指令中,哪类指令的执行时间最长?哪类指令的执行时间最短?为什么?答:寄存器-寄存器型执行速度最快,存储器-存储器型执行速度最慢。因为前者操作数在寄存器中,后者操作数在存储器中,而访问一次存储器所需的时间一般比访问一次寄存器所需时间长。,5.8 学习加油站,【问题5】一个较完善的指令系统应包括哪几类指令?答:包括数据传送指令、算术运算指令、逻辑运算指令、程序控制指令、输入/输出指令、堆栈指令、字符串指令、特权指令等。【问题6】试述指令兼容的优缺点。答:最主要的优点是软件兼容。最主要的缺点是指令字设计不尽合理,指令系统过于庞大。【问题7】简述RISC的主要优缺点。答:优点是RISC技术简化了指令系统,以寄存器-寄存器方式工作、采用流水方式、减少访存等。缺点是指令功能简单使得程序代码较长,占用了较多的存储器空间。,