字長(CPU字長)

字長

CPU字長一般指本詞條

計算機領域,對於某種特定的計算機設計而言,字(word)是用於表示其自然的數據單位的術語,是用來表示一次性處理事務的一個固定長度的位(bit)的位數。一個字的位數,即字長,是計算機系統結構中的一個重要特性。字長在計算機結構和操作的多個方面均有體現。計算機中大多數暫存器的大小是一個字長。計算機處理的典型數值也可能是以字長為單位。CPU記憶體之間的數據傳送單位也通常是一個字長。還有而記憶體中用於指明一個存儲位置的地址也經常是以字長為單位的。現代計算機的字長通常為16、32、64位。其他曾經使用過的字長有:8、9、12、18、24、36、39、40、48、60位;slab是早期的另一個字長實例。

基本介紹

  • 中文名:字長
  • 外文名:word size
  • 解釋:同一時間處理二進制數位數
  • 地位:是CPU的主要技術指標之一
  • 補充:計算機處理器絕大部分已達到64位
  • 學科:計算機科學
概念,通俗含義,字的使用,有關術語,字長的選擇,各種字長的架構,字和位元組編址,2的冪,字長家族,字長表,雙倍字長,

概念

計算機採用二進制編碼方式表示數、字元、指令和其它控制信息。計算機在存儲、傳送或操作時,作為一個單元的一組二進制碼稱為字,一個字中的二進制位的位數稱為字長。
在同一時間中處理二進制數的位數叫字長。通常稱處理字長為8位數據的CPU叫8位CPU,32位CPU就是在同一時間內處理字長為32位的二進制數據。二進制的每一個0或1是組成二進制的最小單位,稱為位(bit)。常用的字長為8位、16位、32位和64位。字長為8位的編碼稱為位元組,是計算機中的基本編碼單位。
字長與計算機的功能和用途有很大的關係,是計算機的一個重要技術指標。字長直接反映了一台計算機的計算精度,為適應不同的要求及協調運算精度和硬體造價間的關係,大多數計算機均支持變字長運算,即機內可實現半字長、全字長(或單字長)和雙倍字長運算。在其他指標相同時,字長越大計算機的處理數據的速度就越快。早期的微機字長一般是8位和16位,386以及更高的處理器大多是32位。市面上的計算機的處理器大部分已達到64位。字長由微處理器對外數據通路的數據匯流排條數決定。

通俗含義

字長是CPU的主要技術指標之一,指的是CPU一次能並行處理二進制位數,字長總是8的整數倍,通常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位用。

字的使用

根據計算機的組織情況,字長單位可能被套用到:
  • 整數–計算機處理的整數值通常可以有若干種不同的長度,但是其中總有一種正好是該構架的字長。如果有的話,其他的整數長度很可能是字長的倍數或分數。小尺寸的整數尺寸通常是為了提高存儲效率;當它被載入處理器時,它經常被轉換成字長尺寸的形式。
  • 浮點數–計算機處理的浮點數通常是一個字長或字長的倍數。
  • 地址–計算機處理的存儲器地址必須有足夠的尺寸,以便可以表示需要的數值範圍,但是又不能過大。經常使用的尺寸是字,不過也可以是字的倍數或分數。
  • 暫存器–處理器暫存器根據它要處理的數據類型被設計成適當的尺寸,例如:整數、浮點數、地址。許多計算機構架使用通用”暫存器,它們可以存儲任何類型的數據,可以允許存儲哪怕是最大的數據類型。它們的尺寸通常是其構架的字長。
  • 存儲器-處理器傳送–當處理器從存儲器子系統讀取數據至暫存器,或者,寫暫存器數據到存儲器,傳送的數據通常是字。在簡單的存儲系統中,字在數據匯流排上傳送,它一般為一個字或半個字。在使用快取的存儲系統,在處理器和一級快取之間傳送的是一個字長,而在更低級的存儲層次上傳送的可能是更大的尺寸(這尺寸是字的倍數)。
  • 編址單位–在一個給定的構架中,連續的地址值對應連續的存儲器單位;該單位就是編址單位。在大部分計算機中,這個單位或者是一個字元(例如:位元組)或者是一個字(少部分計算機也使用位(bit)編址單位)。如果單位是字,那么用指定長度的地址就可以訪問較大數量的存儲空間。另一方面,如果單位是位元組,那么就可以訪問單個的字元(i.e. selected during the memory operation)。
  • 指令機器指令通常是字長的分數或倍數。因為指令和數據經常共享同一個存儲子系統,所以自然作出這樣的選擇。而在哈佛架構(Harvard architecture)中,指令和數據的長度並不需要有關聯。

有關術語

在計算機中,一串數碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱字,字反映計算機一次並行處理的一組二進制數。字通常分為若干個位元組(每個位元組一般是8位)。在存儲器中,通常每個單元存儲一個字,因此每個字都是可以定址的。字的長度用位數來表示。
在計算機的運算器、控制器中,通常都是以字為單位進行傳送的。字在不同的地址出現,其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數。
位元組
位元組是指一小組相鄰的二進制數碼。通常是8位作為一個位元組。它是構成信息的一個小單位,並作為一個整體來參加操作,比字小,是構成字的單位。在微型計算機中,通常用多少位元組來表示存儲器的存儲容量。

字長的選擇

在設計計算機時,字長的選擇是非常重要的。設計上的考慮傾向於為特定的用途(如地址)設定特定的位長。然而,出於經濟的考慮,又應該僅使用一種尺寸,或者很少的幾種與基本尺寸成倍數或分數(約數)關係的尺寸。這個首選的基本尺寸就成為該構架的字長。
字元的尺寸對於字長的選擇也有影響。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個周期)

字和位元組編址

字長對計算機構架的存儲器模式有很大的影響。特別是:通常選擇字作為存儲器的編址方案,所謂存儲器編址方案就是地址碼能夠指定的最小存儲單位。In this approach,編號相鄰的存儲器字組,其地址編號相差一。在計算機中這樣很自然,因為它通常總是要處理以字為單位的數據(或者是以字的倍數)。並且具有讓指令可以使用最小的長度來指定一個地址的優點,這樣,就可以減少指令長度或者可以定義更多的指令條數。
當計算機很大的工作量是用來處理位元組時,通常定義位元組作為地址編址單位要比字更好。這樣做字元串中的單個字元可以通過地址直接指定。當然,一個字仍然可以被地址訪問,但是比起字編址方案,它的地址將使用更多的位數。在這種組織結構中,字長需要被定義為字元長度的整數倍。這種編址方案在IBM 360中被使用,此後即變成計算機設計中最普遍的方案。

2的冪

數據常常要占用不同大小的存儲空間,例如,有些數值比其他的數值要求有更高的精度。通常使用的長度是編址單位(以字為單位編址或以位元組為單位編址)的倍數,這個倍數常常是的2的冪。這樣做是比較便利的,因為這樣的話,將一個處理對象在數組中的索引值轉化為這個處理對象的地址只需要進行一個移位操作(這在硬體上只需要進行布線的變化)而不需要進行乘操作。某些時候這樣的做法還可以避免除操作。因此,一些現代計算機設計使用的字長(或者其他的運算元)是2的冪乘以位元組尺寸。

字長家族

隨著計算機設計日益複雜,一個單一字長的核心作用在計算機架構中已經不那么重要。雖然硬體有能力支持更寬的數據類型,但是在擴展處理器性能時,市場卻有強大的壓力要求新產品保持向後兼容。因此,在一個新構架的向後兼容的設計中,核心的字長不得不與原始機型的字長共存。原始的字長在未來設計中保持可用,這就構成了字長家族的基礎。
這種情形的一個主要的實例是x86系列的設計。原始的8086構架無疑是使用16位字長的。803868086的基礎上進行了大幅改進,使其基於32位系統構架。如果不用考慮其他因素,它將是32位的,但是作為8086的擴展,它的字長繼續被當作16位的。(也因此,有人說80386和它的後繼處理器是"32位"的(32-bit),但不是32位字的(32-bit word),原文:As a result of this, one hears of the 80386 and successor processors as being "32-bit", but usually not as having a 32-bit word.——譯者)同樣的情形最近又發生了,當AMD64構架使64位在系統構架具有主要地位,但是它仍然沒有放棄對16位和32位的支持。
因此,我們看到的計算機體系結構更多的是基於一個有聯繫的、類似的字長家族,而不是一個單一的字長體系結構。這些尺寸以整因子(integral factors)——通常是2的冪——互相關聯。直接將它們中的任何一個尺寸定義為該系統的字長是武斷的,因為這些尺寸的設計可能是因為這一系列體系構架的發展的歷史原因,而不是體系自己的最新設計中的特性。

字長表

年份計算機
架構
字長整數
長度
浮點數
長度
長度
指令
編址單位字元
長度
1941
Zuse Z3
22 b
w
8 b
w
1942
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
12 d
w
½w
w
1 d
1952
IAS machine
40 b
w
½w
w
5 b
1952
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
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
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
16 b
w
2w, 4w
w, 2w, 3w
8 b
8 b
1971
4 b
w,d
2w, 4w
w
1972
8 b
w, 2d
w, 2w, 3w
w
8 b
1972
Calcomp 900
9 b
w
w, 2w
w
8 b
1974
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
32 b
¼w, ½w,w
w, 2w
w
8 b
8 b
1989
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
32 b
¼w, ½w,w
w, 2w
w
8 b
8 b
2000
64 b
8 b, ¼w, ½w,w
½w,w
41 b
8 b
8 b
2002
32 b
w
w, 2w
½w,w
8 b
8 b

    雙倍字長

    雙倍字長是指計算機內部參與運算的數的位數。它決定著計算機內部暫存器、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

    相關詞條

    熱門詞條

    聯絡我們