8、16、32、64位
在计算机领域,对于某种特定的计算机设计而言,字(word)是用于表示其自然的数据单位的术语,是用来表示一次性处理事务的固定长度。一个字的位数,即字长,是计算机系统结构中的一个重要特性。字长在计算机结构和操作的多个方面均有体现。
计算机中大多数寄存器的大小是一个字长。计算机处理的典型数值也可能是以字长为单位。CPU和内存之间的数据传送单位也通常是一个字长。还有内存中用于指明一个存储位置的地址也经常是以字长为单位的。现代计算机的字长通常为16、32、64位。
字长的选择
在设计计算机时,字长的选择是非常重要的。设计上的考虑倾向于为特定的用途(如地址)设定特定的位长。然而,出于经济的考虑,又应该仅使用一种尺寸,或者很少的几种与基本尺寸成倍数或分数(约数)关系的尺寸。这个首选的基本尺寸就成为该构架的字长。[8]
字符的尺寸对于字长的选择也有影响。20世纪60年代中期以前,字符大部分以6位存储;这样最多允许64个字符,因此不能又大写字符。由于将字长定义成字符尺寸的倍数在处理时间和存储空间上都比较划算,所以这个时期字长也就被定义为6位(在二进制机器上)的倍数。通常的选择是36位字长,这也是适合于浮点数格式的一个长度。
随着IBM360系统的引入——该系统使用8位字符,并支持大小写字母——标准的字符(确切地说:字节)尺寸也转变成为8位。从那以后,字长也自然变成了8的倍数,16、32、64位字长被广泛使用。
各种字长的架构
早期的计算机设计中包括所谓的“可变字长”设计。(原文:Earlymachinedesignsincldedsomethatsedwhatisoftentermedavariablewordlength.——译者)。在这类设计中,数字操作数没有固定的长度,它们通过检查某个特殊字符来判断是否结束。这样的机器使用BCD编码表示数字,例如IBM702、IBM705、IBM7080、IBM7010、UNIVAC1050、IBM1401和IBM1620。
大部分这样的机器一次处理一个存储单元,因为每条指令和数据占用的数个单元,所以指令将使用数个周期来读取存储器。这类机器经常因为这个原因变得非常慢。例如,在IBM1620ModelI上,取指令需要8个周期,只是为了读取12个数字(ModelII降低到6个周期,不过如果指令不需要取其中的一个1个地址域的话,可以只需要4个周期;如果两个都不需要,则只需要1个周期)。