首页 理论教育 指令字长与扩展方法—计算机组成原理

指令字长与扩展方法—计算机组成原理

时间:2023-10-31 理论教育 版权反馈
【摘要】:这样,既能充分利用指令字的各个字段,又能在不增加指令字长度的情况下扩展操作码的长度,使它能表示更多的指令。假设一台计算机指令字长为16位,操作码与地址码都为4位,如图4-6所示。例4-1:假设某计算机的指令字长为20位,具有双操作数、单操作数和无操作数三类指令形式,每个操作数地址规定用6位表示。

指令字长与扩展方法—计算机组成原理

1.指令字长

机器字长是指计算机一次能直接处理的二进制数据的位数,它决定了计算机的运算精度。机器字长通常与主存单元的位数一致。指令字长等于机器字长的指令,称为单字长指令;指令字长等于半个机器字长的指令,称为半字长指令;指令字长等于两个机器字长的指令,称为双字长指令。例如,IBM370系列,它的指令格式有16位(半字)的,有32位(单字)的,还有48位(一个半字)的。在Pentium系列机中,指令字长也是可变的,有8位、16位、32位和64位等。使用多字长指令的目的在于提供足够的地址位来解决访问内存任何单元的寻址问题。但是使用多字长指令的一个主要缺点是必须两次或多次访问内存才能取出一条完整指令,这不仅降低了CPU的运算速度,同时也占用了更多的存储空间。

在一个指令系统中,如果各种指令字长相等,就称为等长指令字结构,它们可以都是单字长指令或半字长指令。这种指令结构简单,且指令字长是不变的。如果各种指令字长随指令功能而异,比如有的指令是单字长指令,有的指令是双字长指令,就称为变长指令字结构。这种指令字结构灵活,能充分利用指令长度,但指令的控制较复杂。

2.指令扩展方法

指令操作码的长度决定了指令系统中完成不同操作的指令条数。指令操作码通常有两种编码格式。

(1)固定格式。在这种格式中操作码长度固定,且集中放在指令字的一个字段中。这种格式对于简化硬件设计,减少指令译码时间非常有利,在字长较长的大、中型计算机和超级小型机以及RISC上广泛采用,如IBM360和VAX-1系列机,操作码长度均为8位。

(2)可变格式。在这种格式中操作码长度可变,且分散在指令字的不同字段中。这种格式能有效地压缩指令的平均长度,在字长较短的微、小型计算机中广泛采用,如Z80、Intel80×86和PDP-11等。这种方法也称为扩展操作码方式。

扩展操作码方法的基本思想是:操作码位数不是单一固定不变的,而是随地址码个数而变化,对于一部分不需要某个地址的指令,可将操作码扩充到地址码字段。这样,既能充分利用指令字的各个字段,又能在不增加指令字长度的情况下扩展操作码的长度,使它能表示更多的指令。

假设一台计算机指令字长为16位,操作码与地址码都为4位,如图4-6所示。若采用操作码长度固定格式,则最多可以设计16条三地址指令,而采用扩展操作码的方法可以获得更大的灵活性,具体方法如下:

图4-6 扩展操作码

①4位操作码中用0000~1110定义15条三地址指令,剩下的一个编码1111作为扩展标志与下一个4位组成一个8位操作码,引出二地址指令。

②8位操作码中用11110000~11111110定义15条二地址指令,剩下的一个编码11111111与下一个4位组成一个12位的操作码,引出一地址指令。

③12位操作码中用111111110000~111111111110定义15条一地址指令,剩下的一个编码111111111111与下一个4位组成16位操作码,引出零地址指令。(www.xing528.com)

④零地址指令最多有16种组合。

扩展操作码可以根据需要灵活设计。如在第(1)步中可以保留0000~1101总共14种编码作为三地址指令使用,留出1110和1111两个作为扩展标志引出更多的二地址指令等,依此类推。

小型机PDP-11就是采用这种扩展操作码方法的典型示例,操作码有4、7、8、10、12、13和14位多种。

扩展操作码的原则是:使用频度高的指令应尽可能分配短的操作码,使用频度低的指令应尽可能分配长的操作码。这样,不仅可以有效缩短操作码在程序中的平均长度,节省存储空间,而且缩短了经常使用的指令的译码时间,提高了指令的运行速度。

综上所述,扩展操作码技术是一种重要的指令优化技术,它可以缩短指令的平均长度,减少程序的总位数并增加指令字所能表示的操作信息。当然,这种技术需要更多的硬件支持。

例4-1:假设某计算机的指令字长为20位,具有双操作数、单操作数和无操作数三类指令形式,每个操作数地址规定用6位表示。若操作码字段固定为8位,现已设计出所条双操作数指令,行条无操作数指令,在此情况下,这台计算机最多可以设计出多少条单操作数指令?若操作码字段长度不固定,在采用扩展操作码技术的情况下,最多可以设计出多少条单操作数指令?

解:

(1)双操作数指令地址字段占用12位,操作码字段是8位。由于假定全部指令采用8位固定的操作码,因此这台计算机最多的指令条数为256条。由于双操作数指令有m条,无操作数指令有n条,因此单操作数指令最多还可以设计出(256-m-n)条。

(2)在操作码字段长度不固定的情况下,设最多可以设计的单操作数指令为工条,则有

[(256-m)×26-x]×26=n

因此,x=(256-m)×26-n×2-6

可以看出,采用扩展操作码方法来设计指令系统,在指令字长同样的情况下,将获得更多的灵活性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈