字長 - 二進制位數(shù)
字長是指同時參與運算的數(shù)的二進制位數(shù),它決定著寄存器、加法器、數(shù)據(jù)總線等設備的位數(shù),因而直接影響著硬件的代價,同時字長標志著計算機的計算精度和表示數(shù)據(jù)的范圍。為了方便運算,許多計算機允許變字長操作,例如半字長、全字長、雙字長等。一般計算機的字長在8~64位之間,即一個字由1~8個字節(jié)組成。微型計算機的字長有8位、準16位、16位、32位、64位等。

定義
字長是指同時參與運算的數(shù)的二進制位數(shù),它決定著寄存器、加法器、數(shù)據(jù)總線等設備的位數(shù), 字長是直接用二進制代碼指令表達的計算機語言,指令是用0和1組成的一串代碼,它們有一定的位數(shù),并分成若干段,各段的編碼表示不同的含義,例如某臺計算機字長為16位,即有16個二進制數(shù)組成一條指令或其它信息。16個0和1可組成各種排列組合,通過線路變成電信號,讓計算機執(zhí)行各種不同的操作。
簡介
在計算機中各種信息都是用二進制編碼進行存儲,以二進制數(shù)的形式進行處理的。一個二進制位稱為一個比特(Bit),8個二進制位稱為一個字節(jié)(Byte)。計算機系統(tǒng)中,一般用若干個字節(jié)表示一個數(shù)或者一條指令,前者稱為數(shù)據(jù)字,后者稱為指令字。字長是指同時參與運算的數(shù)的二進制位數(shù),它決定著寄存器、加法器、數(shù)據(jù)總線等設備的位數(shù),因而直接影響著硬件的代價,同時字長標志著計算機的計算精度和表示數(shù)據(jù)的范圍。為了方便運算,許多計算機允許變字長操作,例如半字長、全字長、雙字長等。一般計算機的字長在8~64位之間,即一個字由1~8個字節(jié)組成。微型計算機的字長有8位、準16位、16位、32位、64位等。
在同一時間中處理二進制數(shù)的位數(shù)叫字長。通常稱處理字長為8位數(shù)據(jù)的CPU叫8位CPU,32位CPU就是在同一時間內處理字長為32位的二進制數(shù)據(jù)。二進制的每一們0或1是組成二進制的最小單位,稱為一個字長。
在計算機中,一串數(shù)碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱字。字通常分為若干個字節(jié) - 每個字節(jié)一般是8位。在存儲器中,通常每個單元存儲一個字,因此每個字都是可以尋址的。字的長度用位數(shù)來表示。
在計算機的運算器、控制器中,通常都是以字為單位進行傳送的。字出現(xiàn)在不問的地址其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數(shù)。
字長計算機的每個字所包含的位數(shù)稱為字長。根據(jù)計算機的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什么情況都是固定不變的;可變字長,則在一定范圍內,其長度是可變的。
計算的字長是指它一次可處理的二進創(chuàng)數(shù)字的數(shù)目。計算機處理數(shù)據(jù)的速率,自然和它一次能加工的位數(shù)以及進行運算的快慢有關。如果一臺計算機的字長是另一臺計算機的兩倍,即使兩臺計算機的速度相同,在相同的時間內,前者能做的工作是后者的兩倍。一般地,大型計算機的字長為32―64位,小型計算機為12―32位,而微型計算機為4一16位。字長是衡量計算機性能的一個重要因素。
詳述
字
在計算機中,一串數(shù)碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱字。字通常分為若干個字節(jié) - 每個字節(jié)一般是8位。在存儲器中,通常每個單元存儲一個字,因此每個字都是可以尋址的。字的長度用位數(shù)來表示。
在計算機的運算器、控制器中,通常都是以字為單位進行傳送的。字出現(xiàn)在不同的地址其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數(shù)。
字長
字長是指計算機的每個字所包含的位數(shù)。根據(jù)計算機的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什么情況都是固定不變的;可變字長,則在一定范圍內,其長度是可變的。
計算的字長是指它一次可處理的二進制數(shù)字的數(shù)目。計算機處理數(shù)據(jù)的速率,自然和它一次能加工的位數(shù)以及進行運算的快慢有關。如果一臺計算機的字長是另一臺計算機的兩倍,即使兩臺計算機的速度相同,在相同的時間內,前者能做的工作是后者的兩倍。一般地,大型計算機的字長為32―64位,小型計算機為16―32位,而微型計算機為4一16位。字長是衡量計算機性能的一個重要因素。
字節(jié)
字節(jié)是指一小組相鄰的二進制數(shù)碼。通常是8位作為一個字節(jié)。它是構成信息的一個小單位,并作為一個整體來參加操作,比字小,是構成字的單位。在微型計算機中,通常用多少字節(jié)來表示存儲器的存儲容量。
雙倍字長
?雙倍字長是指計算機內部參與運算的數(shù)的位數(shù)。它決定著計算機內部寄存器、ALU和數(shù)據(jù)總線的位數(shù),直接影響著機器的硬件規(guī)模和造價。雙倍字長直接反映了一臺計算機的計算精度,為適應不同的要求及協(xié)調運算精度和硬件造價間的關系,大多數(shù)計算機均支持變字長運算,即機內可實現(xiàn)半字長、全字長(或單字長)和雙倍字長運算。
微型機的字長通常為4位、8位、16位和32位,64位字長的高性能微型計算機也已推出。
雙倍字長對計算機計算精度的影響:
4位字長:24=16;16位字長:216=65,536=64K
32位字長:232=4,294,967,296=4G;64位字長:264≈1.8445×1019
數(shù)據(jù)總線DB用于傳送數(shù)據(jù)信息。數(shù)據(jù)總線是雙向三態(tài)形式的總線,即他既可以把CPU的數(shù)據(jù)傳送到存儲器或I/O接口等其它部件,也可以將其它部件的數(shù)據(jù)傳送到CPU。數(shù)據(jù)總線的位數(shù)是微型計算機的一個重要指標,通常與微處理的字長相一致。例如Intel8086微處理器字長16位,其數(shù)據(jù)總線寬度也是16位。需要指出的是,數(shù)據(jù)的含義是廣義的,它可以是真正的數(shù)據(jù),也可以指令代碼或狀態(tài)信息,有時甚至是一個控制信息,因此,在實際工作中,數(shù)據(jù)總線上傳送的并不一定僅僅是真正意義上的數(shù)據(jù)。
地址總線AB是專門用來傳送地址的,由于地址只能從CPU傳向外部存儲器或I/O端口,所以地址總線總是單向三態(tài)的,這與數(shù)據(jù)總線不同。地址總線的位數(shù)決定了CPU可直接尋址的內存空間大小,比如8位微機的地址總線為16位,則其最大可尋址空間為216=64KB,16位微型機的地址總線為20位,其可尋址空間為220=1MB。一般來說,若地址總線為n位,則可尋址空間為2n字節(jié)。
控制總線CB用來傳送控制信號和時序信號??刂菩盘栔?,有的是微處理器送往存儲器和I/O接口電路的,如讀/寫信號,片選信號、中斷響應信號等;也有是其它部件反饋給CPU的,比如:中斷申請信號、復位信號、總線請求信號、限備就緒信號等。因此,控制總線的傳送方向由具體控制信號而定,一般是雙向的,控制總線的位數(shù)要根據(jù)系統(tǒng)的實際控制需要而定。實際上控制總線的具體情況主要取決于CPU。
字長的選擇
在設計計算機時,字長的選擇是非常重要的。設計上的考慮傾向于為特定的用途(如地址)設定特定的位長。然而,出于經(jīng)濟的考慮,又應該僅使用一種尺寸,或者很少的幾種與基本尺寸成倍數(shù)或分數(shù)(約數(shù))關系的尺寸。這個首選的基本尺寸就成為該構架的字長。?
字符的尺寸對于字長的選擇也有影響。20世紀60年代中期以前,字符大部分以6位存儲;這樣最多允許64個字符,因此不能又大寫字符。由于將字長定義成字符尺寸的倍數(shù)在處理時間和存儲空間上都比較劃算,所以這個時期字長也就被定義為6位(在二進制機器上)的倍數(shù)。通常的選擇是36位字長,這也是適合于浮點數(shù)格式的一個長度。?
隨著IBM360系統(tǒng)的引入——該系統(tǒng)使用8位字符,并支持大小寫字母——標準的字符(確切地說:字節(jié))尺寸也轉變成為8位。從那以后,字長也自然變成了8的倍數(shù),16、32、64位字長被廣泛使用。?
各種字長的架構
早期的計算機設計中包括所謂的“可變字長”設計。(原文:Early?machine?designs?included?some?that?used?what?is?often?termed?avariable?word?length.——譯者)。在這類設計中,數(shù)字操作數(shù)沒有固定的長度,它們通過檢查某個特殊字符來判斷是否結束。這樣的機器使用BCD編碼表示數(shù)字,例如IBM?702、IBM?705、IBM?7080、IBM?7010、UNIVAC?1050、IBM?1401和IBM?1620。?
大部分這樣的機器一次處理一個存儲單元,因為每條指令和數(shù)據(jù)占用的數(shù)個單元,所以指令將使用數(shù)個周期來讀取存儲器。這類機器經(jīng)常因為這個原因變得非常慢。例如,在IBM?1620?Model?I上,取指令需要8個周期,只是為了讀取12個數(shù)字(Model?II降低到6個周期,不過如果指令不需要取其中的一個1個地址域的話,可以只需要4個周期;如果兩個都不需要,則只需要1個周期)。?
字和字節(jié)編址
字長對計算機構架的存儲器模式有很大的影響。特別是:通常選擇字作為存儲器的編址方案,所謂存儲器編址方案就是地址碼能夠指定的最小存儲單位。編號相鄰的存儲器字組,其地址編號相差一。在計算機中這樣很自然,因為它通常總是要處理以字為單位的數(shù)據(jù)(或者是以字的倍數(shù))。并且具有讓指令可以使用最小的長度來指定一個地址的優(yōu)點,這樣,就可以減少指令長度或者可以定義更多的指令條數(shù)。?
當計算機很大的工作量是用來處理字節(jié)時,通常定義字節(jié)作為地址編址單位要比字更好。這樣做字符串中的單個字符可以通過地址直接指定。當然,一個字仍然可以被地址訪問,但是比起字編址方案,它的地址將使用更多的位數(shù)。在這種組織結構中,字長需要被定義為字符長度的整數(shù)倍。這種編址方案在IBM?360中被使用,此后即變成計算機設計中最普遍的方案。?
2的冪
數(shù)據(jù)常常要占用不同大小的存儲空間,例如,有些數(shù)值比其他的數(shù)值要求有更高的精度。通常使用的長度是編址單位(以字為單位編址或以字節(jié)為單位編址)的倍數(shù),這個倍數(shù)常常是的2的冪。這樣做是比較便利的,因為這樣的話,將一個處理對象在數(shù)組中的索引值轉化為這個處理對象的地址只需要進行一個移位操作(這在硬件上只需要進行布線的變化)而不需要進行乘操作。某些時候這樣的做法還可以避免除操作。因此,一些現(xiàn)代計算機設計使用的字長(或者其他的操作數(shù))是2的冪乘以字節(jié)尺寸。
字長表
|
年份 |
計算機架構 |
字長 |
整數(shù)長度 |
浮點數(shù)長度 |
長度指令 |
編址單位 |
字符長度 |
|
1941 |
Zuse Z3 |
22 b |
– |
w |
8 b |
w |
– |
|
1942 |
ABC |
50 b |
w |
– |
– |
– |
– |
|
1944 |
Harvard Mark I |
23 d |
w |
– |
24 b |
– |
– |
|
1946 (1948) {1953} |
ENIAC (w/Panel #16) {w/Panel #26} |
10 d |
w, 2w (w) {w} |
– |
– (2d, 4d, 6d, 8d) |
– – {w} |
– |
|
1951 |
UNIVAC I |
12 d |
w |
– |
?w |
w |
1 d |
|
1952 |
IAS machine |
40 b |
w |
– |
?w |
w |
5 b |
|
1952 |
IBM 701 |
36 b |
?w,w |
– |
?w |
?w,w |
6 b |
|
1952 |
UNIVAC 60 |
nd |
1d, … 10d |
– |
– |
– |
2d, 3d |
|
1953 |
IBM 702 |
nd |
0d, … 511d |
– |
5d |
d |
1 d |
|
1953 |
UNIVAC 120 |
nd |
1d, … 10d |
– |
– |
– |
2d, 3d |
|
1954 (1955) |
IBM 650 (w/IBM 653) |
10 d |
w |
– (w) |
w |
w |
2 d |
|
1954 |
IBM 704 |
36 b |
w |
w |
w |
w |
6 b |
|
1954 |
IBM 705 |
nd |
0d, … 255d |
– |
5d |
d |
1 d |
|
1954 |
IBM NORC |
16 d |
w |
w, 2w |
w |
w |
– |
|
1956 |
IBM 305 |
nd |
1d, … 100d |
– |
10d |
d |
1 d |
|
1958 |
UNIVAC II |
12 d |
w |
– |
?w |
w |
1 d |
|
1958 |
SAGE |
32 b |
?w |
– |
w |
w |
6 b |
|
1958 |
Autonetics Recomp II |
40 b |
w, 79 b, 8d, 15d |
2w |
?w |
?w,w |
5 b |
|
1959 |
IBM 1401 |
nd |
1d, … |
– |
d, 2d, 4d, 5d, 7d, 8d |
d |
1 d |
|
1959 (TBD) |
IBM 1620 |
nd |
2d, … |
– (4d, … 102d) |
12d |
d |
2 d |
|
1960 |
LARC |
12 d |
w, 2w |
w, 2w |
w |
w |
2 d |
|
1960 |
IBM 1410 |
nd |
1d, … |
– |
d, 2d, 6d, 7d, 11d, 12d |
d |
1 d |
|
1960 |
IBM 7070 |
10 d |
w |
w |
w |
w,d |
2 d |
|
1960 |
PDP-1 |
18 b |
w |
– |
w |
w |
6 b |
|
1961 |
IBM 7030 (Stretch) |
64 b |
1b, … 64b, 1d, … 16d |
w |
?w,w |
b, ?w,w |
1 b, … 8 b |
|
1961 |
IBM 7080 |
nd |
0d, … 255d |
– |
5d |
d |
1 d |
|
1962 |
UNIVAC III |
25 b, 6 d |
w, 2w, 3w, 4w |
– |
w |
w |
6 b |
|
1962 |
UNIVAC 1107 |
36 b |
/6w, ?w, ?w,w |
w |
w |
w |
6 b |
|
1962 |
IBM 7010 |
nd |
1d, … |
– |
d, 2d, 6d, 7d, 11d, 12d |
d |
1 d |
|
1962 |
IBM 7094 |
36 b |
w |
w, 2w |
w |
w |
6 b |
|
1963 |
Gemini Guidance Computer |
39 b |
26 b |
– |
13 b |
13 b, 26 b |
– |
|
1963 (1966) |
Apollo Guidance Computer |
15 b |
w |
– |
w, 2w |
w |
– |
|
1964 |
CDC 6600 |
60 b |
w |
w |
?w, ?w |
w |
6 b |
|
1965 |
IBM 360 |
32 b |
?w,w, 1d, … 16d |
w, 2w |
?w,w, 1?w |
8 b |
8 b |
|
1965 |
UNIVAC 1108 |
36 b |
/6w, ?w, ?w, ?w,w, 2w |
w, 2w |
w |
w |
6 b, 9 b |
|
1965 |
PDP-8 |
12 b |
w |
– |
w |
w |
8 b |
|
1970 |
PDP-11 |
16 b |
w |
2w, 4w |
w, 2w, 3w |
8 b |
8 b |
|
1971 |
Intel 4004 |
4 b |
w,d |
– |
2w, 4w |
w |
– |
|
1972 |
Intel 8008 |
8 b |
w, 2d |
– |
w, 2w, 3w |
w |
8 b |
|
1972 |
Calcomp 900 |
9 b |
w |
– |
w, 2w |
w |
8 b |
|
1974 |
Intel 8080 |
8 b |
w, 2w, 2d |
– |
w, 2w, 3w |
w |
8 b |
|
1975 |
Cray-1 |
64 b |
24 b,w |
w |
?w, ?w |
w |
8 b |
|
1975 |
Motorola 6800 |
8 b |
w, 2d |
– |
w, 2w, 3w |
w |
8 b |
|
1975 |
MOS Tech. 6501 MOS Tech. 6502 |
8 b |
w, 2d |
– |
w, 2w, 3w |
w |
8 b |
|
1976 |
Zilog Z80 |
8 b |
w, 2w, 2d |
– |
w, 2w, 3w, 4w, 5w |
w |
8 b |
|
1978 (1980) |
Intel 8086 (w/Intel 8087) |
16 b |
?w,w, 2d (w, 2w, 4w) |
– (2w, 4w, 5w, 17d) |
?w,w, … 7w |
8 b |
8 b |
|
1978 |
VAX-11/780 |
32 b |
?w, ?w,w, 1d, … 31d, 1b, … 32b |
w, 2w |
?w, … 14?w |
8 b |
8 b |
|
1979 |
Motorola 68000 |
32 b |
?w, ?w,w, 2d |
– |
?w,w, … 7?w |
8 b |
8 b |
|
1982 (1983) |
Motorola 68020 (w/Motorola 68881) |
32 b |
?w, ?w,w, 2d |
– (w, 2w, 2?w) |
?w,w, … 7?w |
8 b |
8 b |
|
1985 |
ARM1 |
32 b |
w |
– |
w |
8 b |
8 b |
|
1985 |
MIPS |
32 b |
?w, ?w,w |
w, 2w |
w |
8 b |
8 b |
|
1989 |
Intel 80486 |
16 b |
?w,w, 2d w, 2w, 4w |
2w, 4w, 5w, 17d |
?w,w, … 7w |
8 b |
8 b |
|
1989 |
Motorola 68040 |
32 b |
?w, ?w,w, 2d |
w, 2w, 2?w |
?w,w, … 7?w |
8 b |
8 b |
|
1991 |
PowerPC |
32 b |
?w, ?w,w |
w, 2w |
w |
8 b |
8 b |
|
2000 |
IA-64 |
64 b |
8 b, ?w, ?w,w |
?w,w |
41 b |
8 b |
8 b |
|
2002 |
XScale |
32 b |
w |
w, 2w |
?w,w |
8 b |
8 b |
|
說明:b:位, d: 10進制數(shù),w:該構架的字長,n:變量長度(variable size) |
|||||||
有關術語
字
在計算機中,一串數(shù)碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱字,字反映計算機一次并行處理的一組二進制數(shù)。字通常分為若干個字節(jié) - 每個字節(jié)一般是8位。在存儲器中,通常每個單元存儲一個字,因此每個字都是可以尋址的。字的長度用位數(shù)來表示。?
在計算機的運算器、控制器中,通常都是以字為單位進行傳送的。字在不同的地址出現(xiàn),其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數(shù)。?
字節(jié)
字節(jié)是指一小組相鄰的二進制數(shù)碼。通常是8位作為一個字節(jié)。它是構成信息的一個小單位,并作為一個整體來參加操作,比字小,是構成字的單位。在微型計算機中,通常用多少字節(jié)來表示存儲器的存儲容量。
