北美鐵道協會技術中心

[拼音]:yunsuanqi

[英文]:arithmetic unit

計算機中執行各種算術和邏輯運算操作的部件。運算器的基本操作包括加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作,亦稱算術邏輯部件(ALU)。計算機執行時,運算器的操作和操作種類由控制器決定。運算器處理的資料來自儲存器;處理後的結果資料通常送回儲存器,或暫時寄存在運算器中。

資料與運算器

運算器的處理物件是資料,所以資料長度和計算機資料表示方法,對運算器的效能影響極大。70年代微處理器常以 1個、4個、8個、16個二進位制位作為處理資料的基本單位。大多數通用計算機則以16、32、64位作為運算器處理資料的長度。能對一個數據的所有位同時進行處理的運算器稱為並行運算器。如果一次只處理一位,則稱為序列運算器。有的運算器一次可處理幾位(通常為6或8位),一個完整的資料分成若干段進行計算,稱為串-並行運算器。運算器往往只處理一種長度的資料。有的也能處理幾種不同長度的資料,如半字長運算、雙倍字長運算、四倍字長運算等。有的資料長度可以在運算過程中指定,稱為變字長運算。

按照資料的不同表示方法,可以有二進位制運算器、十進位制運算器、十六進位制運算器、定點整數運算器、定點小數運算器、浮點數運算器等。按照資料的性質,有地址運算器和字元運算器等。

運算器的操作

運算器能執行多少種操作和操作速度,標誌著運算器能力的強弱,甚至標誌著計算機本身的能力。運算器最基本的操作是加法。一個數與零相加,等於簡單地傳送這個數。將一個數的程式碼求補,與另一個數相加,相當於從後一個數中減去前一個數。將兩個數相減可以比較它們的大小。

左右移位是運算器的基本操作。在有符號的數中,符號不動而只移資料位,稱為算術移位。若資料連同符號的所有位一齊移動,稱為邏輯移位。若將資料的最高位與最低位連結進行邏輯移位,稱為迴圈移位。

運算器的邏輯操作可將兩個資料按位進行與、或、異或,以及將一個數據的各位求非。有的運算器還能進行二值程式碼的16種邏輯操作。

乘、除法操作較為複雜。很多計算機的運算器能直接完成這些操作。乘法操作是以加法操作為基礎的,由乘數的一位或幾位譯碼控制逐次產生部分積,部分積相加得乘積。除法則又常以乘法為基礎,即選定若干因子乘以除數,使它近似為1,這些因子乘被除數則得商。沒有執行乘法、除法硬體的計算機可用程式實現乘、除,但速度慢得多。有的運算器還能執行在一批數中尋求最大數,對一批資料連續執行同一種操作,求平方根等複雜操作。

運算器的運算方法

實現運算器的操作,特別是四則運算,必須選擇合理的運算方法。它直接影響運算器的效能,也關係到運算器的結構和成本。另外,在進行數值計算時,結果的有效數位可能較長,必須擷取一定的有效數位,由此而產生最低有效數位的舍入問題。選用的舍入規則也影響到計算結果的精確度。

運算器的結構

運算器包括暫存器、執行部件和控制電路三個部分。

在典型的運算器(見圖)中有三個暫存器:接收並儲存一個運算元的接收暫存器;儲存另一個運算元和運算結果的累加暫存器;在進行乘、除運算時儲存乘數或商數的乘商暫存器。執行部件包括一個加法器和各種型別的輸入輸出閘電路。控制電路按照一定的時間順序發出不同的控制訊號,使資料經過相應的閘電路進入暫存器或加法器,完成規定的操作。

為了減少對儲存器的訪問,很多計算機的運算器設有較多的暫存器,存放中間計算結果,以便在後面的運算中直接用作運算元。

為了提高運算速度,某些大型計算機有多個運算器。它們可以是不同型別的運算器,如定點加法器、浮點加法器、乘法器等,也可以是相同型別的運算器。