《计算机组成原理》第七章:指令系统【知识点总结】 | 您所在的位置:网站首页 › vba常用数据类型包括哪些方面 › 《计算机组成原理》第七章:指令系统【知识点总结】 |
文章目录
1. 机器指令1.1 指令的一般格式1.2 指令字长
2. 操作数类型和操作类型2.1 操作数类型2.2 数据在存储器中的存放方式2.3 操作类型2.3 寻址方式2.3.1 指令寻址2.3.2 数据寻址
4. 指令格式举列4.1 设计指令格式应考虑的各种因素4.2 指令格式举例4.3 指令格式设计举例
5. RISC技术5.1 RISC的产生和发展5.2 RISC的主要特征5.3 RISC和CISC的比较
本章主要介绍机器指令系统的分类、常见的寻址方式、指令格式以及设计指令系统时应考虑的各种因素。此外对RISC技术也进行简要的介绍,需要进一步地体会指令系统与机器的主要功能以及硬件结构之间存在的密切关系。 1. 机器指令计算机能进行计算是由于机器本身存在一种语言,它既能理解人的意图,又能被机器自身识别。机器语言是由一条条语句构成的,每一条语句又能准确表达某种语义。计算机就是连续执行每一条机器语句而实现全自动工作的。人们习惯把每一条机器语言的语句称为机器指令,而又将全部机器指令的集合称为机器的指令系统,因此机器的指令系统集中反映了机器的功能。 计算机设计者主要研究如何确定机器的指令系统,如何用硬件电路、芯片、设备来实现机器指令系统的功能。 计算机使用者是依据机器提供的指令系统,使用汇编语言来编制各种程序。根据机器指令系统所描述的机器功能,能很清楚地了解计算机内部寄存器 - 存储器的结构,以及计算机能直接支持的各种数据类型。 1.1 指令的一般格式指令是由操作码和地址码两部分组成的,其基本格式如下图: 操作码的长度是可以固定的,也可以是变化的。 长度固定的操作码将操作码集中放在指令字的一个字段内,这种格式便于硬件设计,指令译码时间短,广泛用于字长较大的、大中型计算机和超级小型计算机以及RISC(精简指令集)中。 长度变化的操作码其操作码分散在指令字的不同字段中。这种格式可有效地压缩操作码的平均长度,在字长较短的微型计算机中被广泛采用。 操作码长度不固定会增加指令译码和分析的难度,使控制器的设计复杂。通常采用扩展操作码技术,使操作码的长度随地址数的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。下图是一种扩展操作码的安排示意图: ![]() ![]() ![]() ![]() ![]() ![]() 指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不相同的。 **早期的计算机指令字长、机器字长和存储字长均相等,**因此访问某个存储单元,便可取出一条完整的指令或一个完整的数据。这种机器的指令字长是固定的,控制方式比较简单。 随着计算机的发展,存储容量的增大,要求处理的数据类型增多,计算机的指令字长也发生了很大的变化,一台机器的指令系统可以采用位数不相同的指令,即指令字长是可变的,如单字长指令、多字长指令。控制这类指令的电路比较复杂,而且多字长指令要多次访问存储器才能取出一条完整的指令,因此使CPU的速度下降。为了提高指令的运算速度和节省存储空间,通常尽可能的把常用的指令(如数据传送指令、算逻运算指令等)设计成单字长或短字长格式的指令。 2. 操作数类型和操作类型 2.1 操作数类型机器中常见的操作数类型有地址、数字、字符、逻辑数据等。 地址 地址实际上也可以看作是一种数据,在许多情况下要计算操作数的地址。这时,地址可以被认为是一个无符号的整数,有关地址的计算问题在第3节讨论。数字 计算机中常见的数字有定点数、浮点数和十进制数。字符 在应用计算机时,文本或者字符串也是一种常见的数据类型。由于计算机在处理信息过程中不能以简单的字符形式存储和传送,因此普遍采用ASCLL码,它是很重要的一种字符编码。当然还有其他一些字符编码,如8位EBCDIC,又称扩展BCD交换码。逻辑数据 计算机除了作算术运算外,有时还需要做逻辑运算,此时n个0和1的组合不是被看做算术数字,而是被看作逻辑数字。 2.2 数据在存储器中的存放方式通常计算机中的数据存放在存储器或寄存器中,而寄存器的位数便可反映机器字长。一般机器字长可取字节的1、2、4、8倍,这样便于字符处理。在大、中型机器中字长为32位和64位,在微型计算机中字长从4位,8位逐渐发展到目前的16位、32位和64位。 由于不同的机器数据字长不同,每台机器处理的数据字长也不统一。因此,为了便于硬件实现,通常要求多字节的数据在存储器中的存放方式能满足边界对准的要求,如下图所示: 在数据不对准边界的计算机中,数据(例如一个字)可能在两个存储单元中,此时需要访问两次存储器,并对高低字节的位置进行调整后,才能取得一个字,下图的阴影部分即属于这种情况。 不同的机器,操作类型也是不同的,但几乎所有的机器都有以下几类通用的操作。 数据传送 数据传送包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的传送。如从源到目的地之间的传送、对存储器的读(加载 - LOAD)和写(存储 - STORE)、交换源和目的的内容、置1、清零、进栈、出栈等。算术逻辑操作 这类操作可实现算术运算(加、减、乘、除、增1、减1、求补)和逻辑运算(与、或、非、异或)。对于低档机而言,一般的算术运算只支持最基本的二进制加减、比较、求补等,对于高档机还能支持浮点运算和十进制运算。 有些机器还具有位操作功能,如位测试(测试指定位的值)、位清除(清除指定位)、位求反(对指定位求反)等。移位 移位可分为算术移位、逻辑移位和循环移位三种。算术移位和逻辑移位分别可实现对有符号数和无符号数乘2n(左移)或整除以2n(右移)的运算,并且移位操作所需时间远比乘除操作执行时间短,因此,移位操作经常被用来代替简单的乘法和除法运算。转移 在多数情况下,计算机是按顺序执行程序的每条指令的,但有时需要改变这种顺序,此时可以采用转移类指令来完成。转移指令按其特征又可分为无条件转移、条件转移、跳转、过程调用与返回、陷阱等几种。![]() ![]() ![]() ![]() ![]() ![]() 寻址方式是确定本条指令的数据地址以及下一条将要执行的指令的地址的方法。它与硬件结构密切相关,而且直接影响指令格式和指令功能。 寻址方式分为指令寻址和数据寻址两大类。 2.3.1 指令寻址指令寻址相对数据寻址比较简单而且也没有那么重要,它分为顺序寻址和跳跃寻址两种。、 顺序寻址可通过程序计数器PC+1,自动形成下一条指令的地址,跳跃寻址则通过转移类指令实现。如下图示意了指令寻址过程。 数据寻址方式种类较多,在指令字中必须设一字段来指明属于哪一种寻址方式。指令的地址码字段通常都不代表操作数的真实地址,把它称为形式地址,记作A。操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同来确定。由此可得指令的格式应如下图: 立即寻址 立即寻址的特点是操作数本身设在指令字内,即形式地址A不是操作数的地址,而是操作数本身,又称之为立即数。数据采用补码形式存放,如下图所示,#表示立即寻址特征标记。 直接寻址 直接寻址的特点是,指令字中的形式地址A就是操作数的真实地址EA,即EA = A, 下图示意了直接寻址: 它的**优点:是寻址操作数比较简单,也不需要专门计算操作数的地址,在指令执行阶段对主存只访问一次。 它的缺点:**在于A的位数限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址。 隐含寻址 隐含寻址是指指令字中不明显地给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中。例如,一地址格式的加法指令值给出一个操作数的地址,另一个操作数隐含在累加器ACC中,这样累加器ACC成了另一个数的地址。下图示意了隐含寻址: 间接寻址 倘若指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元地址,也就是说,有效地址是由形式地址间接提供的,即为间接寻址,即EA = (A),如下图所示: 优点1: 间接寻址与直接寻址相比,它扩大了操作数的寻址范围,因为A的位数通常小于指令字长,而存储字长可与指令字长相等。若设指令字长和存储字长均为16位,A为8位,显然直接寻址范围为28,一次间接寻址的寻址范围可达216。当多次间接寻址时,可用存储字的首位来标志间接寻址是否结束,如上图b所示,当存储字首位为1的时候,标明还需继续访存寻址,当存储字首位为0时,标明该存储字即为EA。由此可见,存储字首位不能作为EA的组成部分,因此,它的寻址范围为215。 优点2: 便于编制程序。例如,用间接寻址可以很方便地完成子程序返回,如下图示意了用于子程序返回的间址过程。 寄存器寻址 在寄存器寻址的指令字中,地址码字段直接指出了寄存器的编号,即EA = Ri,如下图所示: 寄存器间接寻址 下图示意了寄存器间接寻址过程: 基址寻址 基址寻址需设有基址寄存器BR,其操作数的有效地址EA等于指令字中的形式地址与基址寄存器中的内容(也称为基地址)相加,即:EA = A + (BR) 下图示意了基址寻址过程: 变址寻址 相对寻址 堆栈寻址 指令系统集中反映了机器的性能,又是程序员编程的依据。用户在编程中既希望指令系统很丰富,便于用户的选择,同时还要求机器执行程序时的速度快,占用主存空间少,实现高效运行。此外,为了集成已有的软件,必修考虑新机器和指令系统与同一系列机器指令系统的兼容性,即高档机必须能兼容低档机的程序运行,称之为向上兼容。 指令格式集中体现了指令系统的功能,为此,在确定指令格式时,必须从以下几个方面考虑: 操作类型:包括指令数及操作的难易程度。数据类型:确定哪些数据类型可以参与操作。指令格式:包括指令字长、操作码位数、地址码位数、地址个数、寻址方式类型,以及字长和操作码位数是否可变等。寻址方式:包括指令和操作数具体有哪些寻址方式。寄存器个数:寄存器的多少直接影响指令的执行时间。 4.2 指令格式举例
RISC即精简指令系统计算机(Reduced Instruction Set Computer),与其对应的是CISC即复杂指令系统计算机(Complex Instruction Set Computer)。 5.1 RISC的产生和发展
|
CopyRight 2018-2019 实验室设备网 版权所有 |