计算机组成原理重要知识点摘录(考研用)——第四章:指令系统
本文参考于《2021年计算机组成原理考研复习指导》(王道考研),《计算机组成原理》
4.1.3 扩展操作码指令格式
为了在指令字长有限的前提下仍保持比较丰富的指令种类,可采取可变长度操作码,即全部指令的操作码字段的尾数不固定,且分散地放在指令字的不同位置上。
最常见的变长操作码方法是扩展操作码,它使操作码的长度随地址码的减少而增加,不同地址数的指令可具有不同长度的操作码, 从而在满足需要的前提下,有效地缩短指令字长。下图为一种扩展操作码的安排方式:
在图中,指令字长为16位,其中4位为基本操作码字段OP,另有3个4位长的地址字段A1、A2、A3。图中所示的三地址指令为15条,1111留作扩展操作码之用;二地址指令15条,1111 1111留作扩展操作码之用;一地址指令为15条,1111 1111 1111留作扩展操作码之用;零地址指令为16条。
除这种安排外,还有其他多种扩展方法,如形成15条三地址指令、12条二地址指令、63(3×16+15)条一地址指令和16条零地址指令。
在设计扩展操作码指令格式时,须注意:
(1)不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同
(2)各指令的操作码不能重复
通常情况下,对使用频率较高的指令分配较短的操作码,对使用频率较低的指令分配较长的操作码。
7.相对寻址
相对寻址是把PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,其中A是相对于当前指令地址的位移量,可正可负,补码表示。
A的位数决定操作数的寻址范围。
相对寻址的优点是操作数的地址不是固定的,它随PC值的变化而变化,且与指令地址之间总是相差一个固定值,因此便于程序浮动。 相对寻址广泛用于转移指令。
对于转移指令JMP A,当CPU从存储器中取出一字节时,会自动执行(PC)+1——>PC。 若转移指令的地址为X,占2B,则在取出该指令后,PC的值会增2,即(PC)=X+2, 这样在执行完该指令后,会自动跳转到X+2+A的地址继续执行。
8.基址寻址
基址寻址是指将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(BR)+A。 其中基址寄存器既可采用专用寄存器,又可采用通用寄存器。(基址寄存器可采用隐式的和显式的两种。所谓隐式,是在计算机内专门设有一个基址寄存器BR,使用时用户不必明显指出该基址寄存器,只需由指令的寻址特征位反映出基址寻址即可。显式是在一组通用寄存器里,由用户明确指出哪个寄存器作为基址寄存器)
基址寄存器是面向OS的,其内容由OS或管理程序确定,主要用于解决程序逻辑空间与存储器物理空间的无关性。 在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。 采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由OS确定。
基址寻址的优点是可扩大寻址范围(基址寄存器的位数大于形式地址A的位数);用户不必考虑自己的程序存于主存的哪个空间区域,因此有利于多道程序设计,并可用于编制浮动程序,但偏移量(形式地址A)的位数较短。
基址寻址在多道程序中极为有用。用户可不必考虑自己的程序存于主存的哪一空间区域,完全可由OS或管理程序根据主存的使用情况,赋予基址寄存器内一个初始值(即基地址),便可将用户程序的逻辑地址转化为主存的物理地址(实际地址),把用户程序安置于主存的某一空间区域
9.变址寻址
变址寻址是指有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容之和,即EA=(IX)+A, 其中IX为变址寄存器(专用),也可用通用寄存器作为变址寄存器。
变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(作为偏移量),形式地址A不变(作为基地址)。
变址寻址的优点是可扩大寻址范围(变址寄存器的位数大于形式地址A的位数);在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。 偏移量(变址寄存器IX)的位数足以表示整个存储空间。
变址寻址与基址寻址的有效地址形成过程极为相似。但从本质上来讲,两者有较大区别。基址寻址面向系统,主要用于为多道程序或数据分配存储空间,因此基址寄存器的内容通常由OS或管理程序确定,在程序的执行过程中其值不可变,而指令字中的A是可变的;变址寻址立足于用户,主要用于处理数组问题,在变址寻址中,变址寄存器的内容由用户设定,在程序执行过程中其值可变,而指令字中的A是不可变的。
各常见指令寻址方式的特点和适用情况:
立即寻址操作数获取便捷,通常用于给寄存器赋初值
直接寻址相对于立即寻址,缩短了指令长度
间接寻址扩大了寻址范围,便于编制程序,易于完成子程序返回
寄存器寻址的指令字较短,指令执行速度较快
寄存器间接寻址扩大了寻址范围
基址寻址扩大了操作数寻址范围,适用于多道程序设计,常用于为程序或数据分配存储空间
变址寻址主要用于处理数组问题,适合编制循环程序
相对寻址用于控制程序的执行顺序、转移等
指令系统朝两个截然不同的方向发展:一是增强原有指令的功能,设置更为复杂的新指令实现软件功能的硬化,这类机器称为复杂指令系统计算机(CISC)。 典型的有采用X86架构的计算机;二是减少指令种类和简化指令功能,提高指令的执行速度,这类机器称为精简指令系统计算机(RISC), 典型的有ARM,MIPS架构的计算机。
4.3.1 复杂指令系统计算机(CISC)
CISC的主要特点:
(1)指令系统复杂庞大,指令数目一般为200条以上
(2)指令的长度不固定, 指令格式多,寻址方式多
(3)可以访存的指令不受限制
(4)各种指令使用频度相差很大
(5)各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成
(6)控制器大多数采用微程序控制。有些指令非常复杂,以至于无法采用硬连线控制
(7)难以用优化编译生成高效的目标代码程序
4.3.2 精简指令系统计算机(RISC)
精简指令系统计算机(RISC)的中心思想是要求指令系统简化,尽量使用寄存器-寄存器操作指令,指令格式力求一致。RISC的主要特点如下:
(1)选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现
(2)指令长度固定, 指令格式种类少,寻址方式种类少
(3)只有Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行
(4)CPU中通用寄存器的数量相当多
(5)RISC一定采用指令流水线技术, 大部分指令在一个时钟周期内完成
(6)以硬布线控制为主,不用或少用微程序控制
(7)特别重视编译优化工作,以减少程序执行时间
从指令系统兼容性来看,CISC大多能实现软件兼容,即高档机包含了低档机的全部指令, 并可加以扩充。但RISC简化了指令系统,指令条数少,格式也不同于老机器,因此大多数RISC机不能与老机器兼容。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153792.html