|
|
使用壽命:70000小
運算器包括寄存器、執行部件和控制電路3個部分。在典型的運算器中有3個寄存器:接收并保存一個操作數的接收寄存器;保存另一個操作數和運算結果的累加寄存器;在進行乘、除運算時保存乘數或商數的乘商寄存器。執行部件包括一個加法器和各種類型的輸入輸出門電路。控制電路按照一定的時間順序發出不同的控制信號,使數據經過相應的門電路進入寄存器或加法器,完成規定的操作。為了減少對存儲器的訪問,很多計算機的運算器設有較多的寄存器,存放中間計算結果,以便在后面的運算中直接用作操作數。為了提高運算速度,某些大型計算機有多個運算器。它們可以是不同類型的運算器,如定點加法器、浮點加法器、乘法器等,也可以是相同類型的運算器。運算器的組成決定于整機的設計思想和設計要求,采用不同的運算方法將導致不同的運算器組成。但由于運算器的基本功能是一樣的,其算法也大致相同,因而不同機器的運算器是大同小異的。運算器主要由算術邏輯部件、通用寄存器組和狀態寄存器組成。1、算術邏輯部件ALU。ALU 主要完成對二進制信息的定點算術運算、邏輯運算和各種移位操作。算術運算主要包括定點加、減、乘和除運算。邏輯運算主要有邏輯與、邏輯或、邏輯異或和邏輯非操作。移位操作主要完成邏輯左移和右移、算術左移和右移及其他一些移位操作。某些機器中,ALU 還要完成數值比較、變更數值符號、計算操作數在存儲器中的地址等。可見,ALU 是一種功能較強的組合邏輯電路,有時被稱為多功能發生器,它是運算器組成中的核心部件。ALU 能處理的數據位數(即字長)與機器有關。如 Z80單板機中,ALU 是 8 位;IBM PC/XT和 AT 機中,ALU 為 16 位;386 和 486微機中,ALU 是 32 位。ALU 有兩個數據輸入端和一個數據輸出端,輸入輸出的數據寬度(即位數)與 ALU 處理的數據寬度相同。
2、通用寄存器組近期設計的機器的運算器都有一組通用寄存器。它主要用來保存參加運算的操作數和運算的結果。早期的機器只設計一個寄存器,用來存放操作數、操作結果和執行移位操作
,由于可用于存放重復累加的數據,所以常稱為累加器。通用寄存器均可以作為累加器使用。通用寄存器的數據存取速度是非常快的,目前一般是十幾個毫微秒(μs)。如果 ALU 的兩個操作數都來自寄存器,則可以極大地提高運算速度。通用寄存器同時可以兼作專用寄存器,包括用于計算操作數的地址(用來提供操作數的形式地址,據此形成有效地址再去訪問主存單元)。例如,可作為變址寄存器、程序計數器(PC)、堆棧指示器(SP)等。必須注意的是,不同的機器對這組寄存器使用的情況和設置的個數是不相同的。
3、狀態寄存器狀態寄存器用來記錄算術、邏輯運算或測試操作的結果狀態。程序設計中,這些狀態通常用作條件轉移指令的判斷條件,所以又稱為條件碼寄存器。一般均設置如下幾種狀態位:
1)零標志位(Z):當運算結果為 0 時,Z 位置“1”;非 0 時,置“0”;
2)負標志位(N):當運算結果為負時,N 位置“1”;為正時,置“0”;
3)溢出標志位(V):當運算結果發生溢出時,V 位置“1”;無溢出時,置“0”;
4)進位或借位標志(C):在做加法時,如果運算結果最高有效位(對于有符號數來說,即符號位;對無符號數來說,即數值最高位)向前產生進位時,C 位置“1”;無進位時,置“0”。在做減法時,如果不夠減,最高有效位向前有借位(這時向前無進位產生)時,C 位置“1”;無借位(即有進位產生)時,C 位置“0”。除上述狀態外,狀態寄存器還常設有保存有關中斷和機器工作狀態(用戶態或核心態)等信息的一些標志位(應當說明,不同的機器規定的內容和標志符號不完全相同),以便及時反映機器運行程序的工作狀態,所以有的機器稱它為“程序狀態字”或“處理機狀態字”(Processor Status Word,PSW )。
公元前5世紀,中國人發明了算盤,廣泛應用于商業貿易中,算盤被認為是最早的計算機,并一直使用至今。算盤在某些方面的運算能力要超過目前的計算機,算盤的方面體現了中國人民的智慧。
直到17世紀,計算設備才有了第二次重要的進步。1642年,法國人Blaise Pascal(1623-1662)發明了自動進位加法器,稱為Pascalene。1694年,德國數學家Gottfried Wilhemvon Leibniz(1646-1716)改進了Pascaline,使之可以計算乘法。后來,法國人Charles Xavier Thomas de Colmar發明了可以進行四則運算的計算器。現代計算機的真正起源來自英國數學教授Charles Babbage。Charles Babbage發現通常的計算設備中有許多錯誤,在劍橋學習時,他認為可以利用蒸汽機進行運算。起先他設計差分機用于計算導航表,后來,他發現差分機只是專門用途的機器,于是放棄了原來的研究,開始設計包含現代計算機基本組成部分的分析機。(Analytical Engine)
Babbage的蒸汽動力計算機雖然最終沒有完成,以今天的標準看也是非常原始的,然而,它勾畫出現代通用計算機的基本功能部分,在概念上是一個突破。
在接下來的若干年中,許多工程師在另一些方面取得了重要的進步,美國人Herman Hollerith(1860-1929),根據提花織布機的原理發明了穿孔片計算機,并帶入商業領域建立公司