在计算机领域,对于某种特定的计算机设计而言,字(word)是用于表示其自然的
数据单位的术语,是用来表示一次性处理事务的固定长度。一个字的位数,即字长,是
计算机系统结构中的一个重要特性。字长在计算机结构和操作的多个方面均有体现。计算机中大多数
寄存器的大小是一个字长。计算机处理的典型数值也可能是以字长为单位。
CPU和内存之间的
数据传送单位也通常是一个字长。还有内存中用于指明一个存储位置的地址也经常是以字长为单位的。现代计算机的字长通常为16、32、64位。其他曾经使用过的字长有:8、9、12、18、24、36、39、40、48、60位;
slab是早期的另一个字长实例。
概念
计算机采用
二进制编码方式表示数、
字符、指令和其它控制信息。计算机在存储、传送或操作时,作为一个单元的一组
二进制码称为字,一个字中的
二进制位的位数称为字长。
通常称处理字长为8位数据的
CPU叫8位CPU,32位CPU就是在同
一时间内处理字长为32位的
二进制数据。二进制的每一个0或1是组成二进制的最小单位,称为位(bit)。常用的字长为8位、16位、32位和64位。字长为8位的编码称为字节,是计算机中的基本编码单位。
字长与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。字长直接反映了一台计算机的计算精度,为适应不同的要求及协调运算精度和硬件造价间的关系,大多数计算机均支持变字长运算,即机内可实现半字长、全字长(或单字长)和双倍字长运算。在其他指标相同时,字长越大计算机的
处理数据的速度就越快。早期的微机字长一般是8位和16位,386以及更高的处理器大多是32位。市面上的计算机的处理器大部分已达到64位。字长由
微处理器对外
数据通路的
数据总线条数决定。
通俗含义
字长是CPU的主要
技术指标之一,指的是CPU一次能
并行处理的
二进制位数,通常PC机的字长为16位(早期),32位,64位。
PC机可以通过编程的方法来处理任意大小的数字,但数字越大,
PC机就要花越长的时间来计算。PC机在一次操作中能处理的最大数字是由PC机的字长确定的。
我们先来看一下人脑是如何进行计算的,例如5×6则立即可以得到答案是30,但对于55×66,就不可能立即得到正确的答案,这就是说55或66已走出了人脑的“字长”,这是为了得出结果,就必须把复杂的问题(如55×66)分解成易于处理的问题(如55×66可分解为50×60,50×6,5×60,5×6),然后再综合起来,得出结果。
同样PC机也是这样处理问题的,一台16位字长的
PC机,可以直接处理2的16次方(65536)之内的数字,对于超过65536的数字就需要分解的方法来处理。32位
pc机比16位机优越的原因就在于它在一次操作中能处理的数字大,32位字长的
PC机能直接处理的数字高达40亿(2的32次方),能处理的的数字越大,则操作的次数就越少,从而系统的效率也就越高。
CPU大多是64位的,但大多都以
32位字长运行,都没能展示它的字长的优越性,因为它必须与64位软件(如64位的操作系统等)相辅相成,也就是说,字长受
软件系统的制约,例如,在32位软件系统中64位字长的CPU只能当32位用。
固定字长与可变字长
每一个储存位置都可以由其地址找到。但是每一储存位置的长度(
length)尚未指定。
在某些计算机中,每一储存位置是由固定的位数所组成的。每当计算机涉及到某一个储存位置时,即表示它要引用此一固定长度的位置,亦称为一个“字” ( word ) 。像此种型态的组织,我们称之为固定字长( fixed word length)或
可定址字( word-address-able)。例如典型的迷你计算机,一个字
长为16
个位。
另一些计算机,它的每个地址所引用是一个位元组或一个字。这种计算机,我们称之为可定址字( character-ddressable )或可定址
位元组(
byte-addresable )。右图所示即为此种储存体,因为这10个位元组的每一个位元组,皆可个别设定一个位址。
至于可定址
字元的计算机,经常被称为可变字长( variable word length )的机器。
右图所示为固定字长与可变字长储存体组织的比较。图a所示为每字可存4个字元的固定字长组织。注意此种组织中,虽然是每4个字元形成一组,且可赋予一个地址,但是每个个别的字元却不能赋予位址。在图b的可定址字元或可变字长的组织中,计算机可将其中每一个字赋予一个位址。
在图b中,假设要取出其中前5个字(即字母SANTA)时,需要分别引用5个位址。但实际上,并不需要如此。因为有一种可变字长指令,可让你一次就取出一组的字。在指令中,你只要第一个字元的位址,然后再指定一共要取出几个字元即可。
例如,在图b ,一个读取字母SANTA的指令,只要指定第一个字元的位址( 001 )及所要读取的字数(5) ,则此5个字元即可被读出。
可变字长组织其主要优点为储存体的使用效率高;即,只需使用与字数一样的位置即可储存该组字(注:如果想储存SANTA这一组字,只需使用5个位置即可)。然而,固定字长的组织可能会有浪费
内存空间的现象。例如图a中的第三个字(位址为003 )仅被利用一半,而其另一半则未被使用。
双倍字长
双倍字长是指计算机内部参与运算的数的位数。它决定着计算机内部
寄存器、
ALU和
数据总线的位数,直接影响着机器的硬件规模和造价。双倍字长
直接反映了一台计算机的计算精度,为适应不同的要求及协调运算精度和硬件造价间的关系,大多数计算机均支持变字长运算,即机内可实现半字长、全字长(或单字长)和双倍字长运算。
微型机的字长通常为4位、8位、16位和32位,64位字长的高性能
微型计算机也已推出。
4位字长:2^4=16;16位字长:2^16=65536=64K
32位字长:2^32=4,294,967,296=4G;64位字长:2^64≈1.8445×10^19
数据总线DB用于传送数据信息。数据总线是双向
三态形式的总线,即他既可以把
CPU的
数据传送到
存储器或
I/O接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel8086
微处理器字长16位,其
数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以
指令代码或
状态信息,有时甚至是一个
控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。
地址总线AB是专门用来传送地址的,由于地址只能从CPU传向外部
存储器或
I/O端口,所以地址总线总是单向三态的,这与
数据总线不同。地址总线的位数决定了CPU可
直接寻址的
内存空间大小,比如8位微机的地址总线为16位,则其最大可
寻址空间为2^16=64KB,16位微型机的地址总线为20位,其可寻址空间为2^20=1MB。一般来说,若
地址总线为n位,则可寻址空间为2^(n-10)千字节。
控制总线CB用来传送
控制信号和
时序信号。控制信号中,有的是
微处理器送往存储器和I/O接口电路的,如读/写信号,
片选信号、
中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、
复位信号、总线请求信号、限备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际
控制需要而定。实际上控制总线的具体情况主要取决于CPU。
字长的选择
在设计计算机时,字长的选择是非常重要的。设计上的考虑倾向于为特定的用途(如地址)设定特定的位长。然而,出于经济的考虑,又应该仅使用一种尺寸,或者很少的几种与
基本尺寸成倍数或分数(
约数)关系的尺寸。这个首选的基本尺寸就成为该构架的字长。
字符的尺寸对于字长的选择也有影响。20世纪60年代中期以前,字符大部分以6位存储;这样最多允许64个字符,因此不能又大写字符。由于将字长定义成字符尺寸的倍数在
处理时间和
存储空间上都比较划算,所以这个时期字长也就被定义为6位(在二进制机器上)的倍数。通常的选择是36位字长,这也是适合于
浮点数格式的一个长度。
随着
IBM360系统的引入——该系统使用8位字符,并支持大小写字母——标准的字符(确切地说:字节)尺寸也转变成为8位。从那以后,字长也自然变成了8的倍数,16、32、64位字长被广泛使用。
各种字长的架构
早期的计算机设计中包括所谓的“可变字长”设计。(原文:Early machine designs included some that used what is often termed avariable word length.——译者)。在这类设计中,数字
操作数没有固定的长度,它们通过检查某个
特殊字符来判断是否结束。这样的机器使用
BCD编码表示数字,例如IBM 702、IBM 705、IBM 7080、IBM 7010、UNIVAC 1050、IBM 1401和IBM 1620。
大部分这样的机器一次处理一个
存储单元,因为每条指令和数据占用的数个单元,所以指令将使用数个周期来读取存储器。这类机器经常因为这个原因变得非常慢。例如,在IBM 1620 Model I上,取指令需要8个周期,只是为了读取12个数字(Model II降低到6个周期,不过如果指令不需要取其中的一个1个地址域的话,可以只需要4个周期;如果两个都不需要,则只需要1个周期)。
字和字节编址
字长对计算机构架的
存储器模式有很大的影响。特别是:通常选择字作为
存储器的编址方案,所谓
存储器编址方案就是
地址码能够指定的最小
存储单位。编号相邻的存储器字组,其地址编号相差一。在计算机中这样很自然,因为它通常总是要处理以字为单位的数据(或者是以字的倍数)。并且具有让指令可以使用最小的长度来指定一个地址的优点,这样,就可以减少
指令长度或者可以定义更多的指令条数。
当计算机很大的工作量是用来处理字节时,通常定义字节作为地址编址单位要比字更好。这样做
字符串中的单个字符可以通过地址直接指定。当然,一个字仍然可以被地址访问,但是比起字编址方案,它的地址将使用更多的位数。在这种
组织结构中,字长需要被定义为字符长度的整数倍。这种编址方案在
IBM 360中被使用,此后即变成计算机设计中最普遍的方案。
2的幂
数据常常要占用不同大小的
存储空间,例如,有些数值比其他的数值要求有更高的精度。通常使用的长度是编址单位(以字为单位编址或以字节为单位编址)的倍数,这个倍数常常是的2的幂。这样做是比较便利的,因为这样的话,将一个处理对象在数组中的索引值转化为这个处理对象的地址只需要进行一个移位操作(这在硬件上只需要进行布线的变化)而不需要进行乘操作。某些时候这样的做法还可以避免除操作。因此,一些现代计算机设计使用的字长(或者其他的操作数)是2的幂乘以字节尺寸。
字长表
有关术语
字
在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字,字反映计算机一次
并行处理的一组
二进制数。字通常分为若干个字节(每个字节一般是8位)。在
存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示。
在计算机的
运算器、控制器中,通常都是以字为单位进行传送的。字在不同的地址出现,其含义是不相同。例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。
字节
字节是指一小组相邻的
二进制数码。通常是8位作为一个字节。它是构成信息的一个小单位,并作为一个整体来参加操作,比字小,是构成字的单位。在
微型计算机中,通常用多少字节来表示
存储器的
存储容量。