運算器由算術邏輯單元(ALU)、累加器、狀態(tài)寄存器、通用寄存器組等組成。算術邏輯運算單元(ALU)的基本功能為加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、求補等操作。計算機運行時,運算器的操作和操作種類由控制器決定。運算器處理的數據來自存儲器;處理后的結果數據通常送回存儲器,或暫時寄存在運算器中。與Control Unit共同組成了CPU的核心部分。
運算器的處理對象是數據,所以數據長度和計算機數據表示方法,對運算器的性能影響極大。70年代微處理器常以1個、4個、8個、16個二進制位作為處理數據的基本單位。大多數通用計算機則以16、32、64位作為運算器處理數據的長度。能對一個數據的所有位同時進行處理的運算器稱為并行運算器。如果一次只處理一位,則稱為串行運算器。有的運算器一次可處理幾位 (通常為6或8位),一個完整的數據分成若干段進行計算,稱為串/并行運算器。運算器往往只處理一種長度的數據。有的也能處理幾種不同長度的數據,如半字長運算、雙倍字長運算、四倍字長運算等。有的數據長度可以在運算過程中指定,稱為變字長運算。按照數據的不同表示方法,可以有二進制運算器、十進制運算器、十六進制運算器、定點整數運算器、定點小數運算器、浮點數運算器等。按照數據的性質,有地址運算器和字符運算器等。它的主要功能是進行算術運算和邏輯運算。
運算器能執(zhí)行多少種操作和操作速度,標志著運算器能力的強弱,甚至標志著計算機本身的能力。運算器最基本的操作是加法。一個數與零相加,等于簡單地傳送這個數。將一個數的代碼求補,與另一個數相加,相當于從后一個數中減去前一個數。將兩個數相減可以比較它們的大小。
左右移位是運算器的基本操作。在有符號的數中,符號不動而只移數據位,稱為算術移位。若數據連同符號的所有位一齊移動,稱為邏輯移位。若將數據的最高位與最低位鏈接進行邏輯移位,稱為循環(huán)移位。運算器的邏輯操作可將兩個數據按位進行與、或、異或,以及將一個數據的各位求非。有的運算器還能進行二值代碼的16種邏輯操作。乘、除法操作較為復雜。很多計算機的運算器能直接完成這些操作。乘法操作是以加法操作為基礎的,由乘數的一位或幾位譯碼控制逐次產生部分積,部分積相加得乘積。除法則又常以乘法為基礎,即選定若干因子乘以除數,使它近似為1,這些因子乘被除數則得商。沒有執(zhí)行乘法、除法硬件的計算機可用程序實現乘、除,但速度慢得多。有的運算器還能執(zhí)行在一批數中尋求最大數,對一批數據連續(xù)執(zhí)行同一種操作,求平方根等復雜操作。
實現運算器的操作,特別是四則運算,必須選擇合理的運算方法。它直接影響運算器的性能,也關系到運算器的結構和成本。另外,在進行數值計算時,結果的有效數位可能較長,必須截取一定的有效數位,由此而產生最低有效數位的舍入問題。選用的舍入規(guī)則也影響到計算結果的精確度。在選擇計算機的數的表示方式時,應當全面考慮以下幾個因素:要表示的數的類型(小數、整數、實數和復數):決定表示方式,可能遇到的數值范圍:確定存儲、處理能力。數值精確度:處理能力相關;數據存儲和處理所需要的硬件代價:造價高低。
兩種常用格式:定點格式:定點格式容許的數值范圍有限,但要求的處理硬件比較簡單;浮點格式:容許的數值范圍很大,但要求的處理硬件比較復雜。1、定點數表示法:定點指小數點的位置固定,為了處理方便,一般分為定點純整數和純小數。2、浮點數表示法:由于所需表示的數值取值范圍相差十分懸殊,給存儲和計算帶來諸多不便,因此出現了浮點運算法。浮點表示法,即小數點的位置是浮動的。其思想來源于科學計數法。IEEE754的浮點數(比較特殊)浮點數的規(guī)格化:主要解決同一浮點數表示形式的不唯一性問題。規(guī)定 ,否則尾數要進行左移或右移。機器零的概念:尾數為0或是階碼值小于所能表示的最小數。3、十進制數串的表示方法:由于人們對十進制比較熟悉,因此在計算機中要增加對十進制運算的支持。兩種方式:將十進制數變?yōu)槎M制數運算,輸出時再由二進制變?yōu)槭M制。直接的十進制運算。直接運算的表示方法:字符串形式:用于非數值計算領域、壓縮的十進制數串:分為定長和不定長兩種。需要相應的十進制運算器和指令支持。4、自定義數據表示:標志符數據表示、描述符數據表示。區(qū)別:標志符與每個數據相連,二者合起來存放在一個存儲單元,而描述符要和數據分開存放;描述符表示中,先訪問描述符,后訪問數據,至少增加一次訪存;描述符是程序的一部分,而不是數據的一部分。原碼:比較自然的表示法,最高位表示符號,0為正,1為負。優(yōu)點:簡單易懂。缺點:加減法運算復雜。補碼:加減法運算方便,減法可以轉換為加法。定點小數的補碼。定點整數的補碼,反碼:為計算補碼方便而引入。由反碼求補碼:符號位置1,各位取反,末位加1。移碼:用于階碼的表示,兩個移碼容易比較大小,便于對階。