指令字长、机器字长、存储字长

1.指令字长

指令字长取决于操作码的长度、操作数地址的长度、操作地址的个数。不同机器的指令字长是不相同的。

【注】对于stm32来讲,指令字长有16位的,还有32位的。它优先选择16位的指令。为了最有力地支持 Thumb‐2,引了一个“统一汇编语言(UAL)”语法机制。对于 16 位指令和 32 位指令均能实现的一些操作(常见于数据处理操作),有时虽然指令的实际操作数不同,或者对立即数的长度有不同的限制,但是汇编器允许开发者以相同的语法格式书写,并且由汇编器来决定是使用 16 位指令,还是使用 32 位指令。以前, Thumb 的语法和 ARM的语法不同,在有了 UAL 之后,两者的书写格式就统一了。

2.机器字长

机器字长是指计算机进行一次整数运算所能处理的二进制数据的位数(整数运算即定点整数运算)。因为计算机中数的表示有定点数和浮点数之分,定点数又有定点整数和定点小数之分,这里所说的整数运算即定点整数运算。机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通路的宽度。 

机器字长反映了计算机的运算精度,即字长越长,数的表示范围也越大,精度也越高。机器的字长也会影响机器的运算速度。倘若CPU字长较短,又要运算位数较多的数据,那么需要经过两次或多次的运算才能完成,这样势必影响整机的运行速度。

机器字长与主存储器字长通常是相同的,但也可以不同。不同的情况下,一般是主存储器字长小于机器字长,例如机器字长是32位,主存储器字长可以是32位,也可以是16位,当然,两者都会影响CPU的工作效率。 

3.存储字长

存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。

*****************************************************************************************************

随着要求处理的数据类型的增加,计算机的指令字长发生变化。一个机器的指令可以采用位数不同的指令,即指令字长是可变的,如单字长指令、多字长指令等。控制这类指令的电路比较复杂,而且多字长指令要多次访问才能取出一条完整指令,因此会使得CPU速度下降。为了提高指令运行速度,节约存储空间,通常会把常用的指令设计成单字长或者短字长格式的指令。

 

你可能感兴趣的:(指令字长、机器字长、存储字长)