计算机系统是一个复杂的由内到外的复杂系统,包含了硬件和软件两个部分,而字长作为系统中一个基本单位需要深入理解,本文将总结计算机系统中各种字长的意义。

字与字长

字(word)是指在计算机中作为一个整体被存取、传送、处理的一组二进制数,是一串数字。而字长(word size)则是这串数字即一个字的位数它是计算机系统结构中的一个重要特性。字长是由CPU的类型所决定,不同的计算机系统的字长是不同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标。

:计算机系统中,字是一个基本单位,而字长是一种评价指标,注意区分。

位与字节

这里顺便提一下字节与位的概念。位(bit,简写为b)是计算机系统中最小的数据单位,也是存储器存储信息的最小单位,存放一位二进制数,即0或1。字节(Byte,简写为B)是计算机系统中表示存储容量的最常用的基本单位。一个字节由8位二进制数组成,一个字符占一个字节,一个汉字占两个字节。

常见的存储容量计算单位还有KB、MB、GB、TB,另外还有PB、EB、ZB、YB,这几个不是很常见。这些单位之间的换算进率均为1024,即2的10次幂。而B与b之间进率是8,即1B(yte)=8b(it)。在我们使用的应用中计算某种速率用的一般都是b,注意区别与B,不要别欺骗了,例如bps。

四种字长

机器字长:CPU一次能处理数据的位数,通常与CPU的寄存器位数有关,一般可以通过寄存器的位数来判断机器字长。
存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数,而其中的二进制代码称作字。
指令字长:计算机系统中机器指令的二进制代码总位数,它取决于操作码的长度、操作数地址的长度和操作数地址的个数,不同的指令的字长是不同的。指令字长一般都取存储字长的的整数倍,如果取2倍,则需要2次访存取出一条指令。
数据字长:计算机系统中数据存储所占用的位数。

:操作系统的位数是操作系统可以寻址的位数,与机器字长是不一样的。选用多少位的操作系统要考虑处理器的架构和内存的大小。
64位操作系统为64位架构的计算机而设计,能够利用64位处理器的优势。但64位机器可以使用64位操作系统系统,也可以使用32位操作系统,而32位机器是无法使用64位操作系统的。
另外,在满足前一条件下,操作系统寻址空间最好大于或等于内存的大小,但不易过大,否则操作系统自身会占用大量内存影响机器的速度。如32位系统寻址空间大小位2的32次幂,即4G,但一般只识别3.25-3.75之间。因此4G及以下的内存空间一般安装32位系统。

冯诺依曼机中,指令和数据同等重要,都存放在存储器中,并可按地址寻访。
早期的计算机:指令字长 = 机器字长 = 存储字长。故访问某个存储单元便可取一条完整的指令或一条完整的数据,这些机器的指令字长是固定的,控制方式比较简单。
随着计算机的发展,存储容量增大,处理的数据类型增多,计算机指令字长发生很大变化。一台机器的指令系统可以采用位数不相同的指令,即指令字长是可变的,如单字节指令、多字节指令。控制这类指令的电路较为复杂,多字节指令则需要多次访存才能取出一条完整的指令,因此CPU速度下降。三者可能各不相同,但它们必须是字节的整数倍。