計算機組織
計算機組織
計算機運算器、存儲器、控制器、輸入設備和輸出設備等主要功能部件的相互連接和相互作用,藉以實現機器指令級的各種功能和特性。從最基本的功能和作用原理來說,計算機是在控制器的全面控制下,接收經數字化編碼的輸入信息(程序和數據),把它存放在存儲器中,根據程序的要求對數據進行快速運算,產生結果數據輸出。因此,可以把運算器、存儲器、控制器、輸入設備和輸出設備看成是一台計算機的邏輯組成中最基本的功能部件。
計算機系統結構作為從程序設計者角度所看到的計算機屬性,在計算機系統的層次結構中處於機器語言級;而計算機組織作為計算機系統結構的邏輯實現和物理實現,其任務就是圍繞提高性能價格比的目標,實現計算機在機器指令級的功能和特性。研究和建立各功能部件間的相互連接和相互作用,完成各個功能部件內部的邏輯設計等是邏輯實現的內容;把邏輯設計深化到元件、器件級,則是物理實現的內容。有時把前者稱為計算機組織,把後者稱為計算機實現。但是,隨著集成電路規模的日益增大。這兩步實現的內容很難分開,因此將它們統稱為計算機組織。
計算機的許多重要特性,如快速性、通用性、準確性、邏輯性等,均來源於最主要的結構原理,即存儲程序原理,它是了解計算機組織的關鍵。根據存儲程序原理構造的計算機稱為存儲程序計算機,又稱諾伊曼型計算機。
存儲程序原理的基本點是指令驅動,即程序由指令組成,並和數據一起存放在計算機存儲器中。機器一經啟動,就能按照程序指定的邏輯順序把指令從存儲器中讀出來逐條執行,自動完成由程序所描述的處理工作。這是計算機與一切手算工具的根本區別。
存儲程序概念最早是由匈牙利人J.諾伊曼於1946年提出來的。他同時提出了一個完整的現代計算機雛型,其基本組成就是上述五種功能部件。它的存儲器是4096個40位存儲字的集合體,利用示波管存儲器來實現。存儲單元按線性編址,同等地存放數據和程序。運算器包含一個算術邏輯單元和一個用來提供操作數和存放操作結果的累加寄存器(另一個操作數來自存儲器)。
控制器實現對20位半字長指令的時序控制。在一條指令中6位表示操作碼,給出64種不同操作;12位表示地址碼,給出存儲器每一個存儲單元的地址;另有 2位未用。輸入和輸出設備包括電傳打字機、磁帶設備等,輸入輸出操作的控制通過運算器完成。
現代的計算機組織與諾伊曼當時提出的計算機組織相比雖已發生了重大變化,但就其結構原理來說,佔有主流地位的仍是以存儲程序原理為基礎的諾伊曼型計算機。它的特徵可概括為:①存儲器是字長固定的、順序線性編址的一維組織;②存儲器提供可按地址訪問的一級地址空間,每個地址是唯一定義的;③由指令形式的低級機器語言驅動;④指令的執行是順序的,即一般按照指令在存儲器中存放的順序執行,程序分支由轉移指令實現。
現代計算機的功能部件包括有中央處理器、控制器、存儲器和輸入輸齣子系統。
中央處理器
中央處理器一般包括運算器和控制器。根據完成操作的種類和速度的不同要求,運算器可以採用不同的實現方法。基本算術邏輯操作由硬體實現,複雜操作則既可由硬體、固件實現,也可由軟體實現。在要求速度很高的場合,則採用流水線運算部件或陣列乘法器等并行處理組織形式。
中央處理器組織的特點主要反映在寄存單元的選擇上。依照這一特點,可以區分兩種不同的組織形式。
1.多通用寄存器計算機組織
早期的計算機採用單一的累加器作為寄存單元,現代計算機則普遍採用多通用寄存器。它們既可提供操作數和保存操作結果,也可提供定址中需要的基址、變址量、主存地址,或保存子程序參量,堆棧指針等。必要時,還設置一些專用寄存器,如暫存寄存器、條件碼寄存器等。操作單元主要是算術邏輯單元,擔負基本算術邏輯運算。在有必要由硬體實現複雜算術運算的巨型和大型計算機中,還設置有各種浮點運算部件、乘除運算部件等。
2.堆棧計算機組織
堆棧計算機的中央處理器組織與前一種組織形式有所不同。代替通用寄存器的是主存堆棧(可能少數棧頂單元用寄存器實現)。採用零地址指令實現堆棧頂部幾個單元內容間的操作,操作結果仍送回堆棧,代替原來的操作數。中央處理器設置多個寄存器,用來保存主存中程序區、數據區和堆棧的各種指針。利用堆棧的後進先出存取原理能使計算機的結構與高級程序設計語言的結構相適應。
控制器
由於輸入輸出控制和通信控制等功能已從中央處理器中分離出來,而且存儲器、輸入輸出裝置等採用非同步工作方式,所以早期計算機中統一的控制器逐漸分散到各功能部件內部,形成運算控制器、指令控制器、存儲控制器、輸入輸出(通道)控制器、外圍設備控制器等。中央處理器除直接掌握運算控制和指令控制功能外,還通過中斷機構調用操作系統對存儲系統和輸入輸齣子系統等實行統一的控制。此外,操作系統還能實現複雜的系統管理功能,為用戶提供批處理、分時處理、互動式處理、實時處理等多種操作方式。因此可以說,操作系統是利用存儲程序作為控制手段實現對控制器的延伸,補充了控制器硬體功能之不足。
存儲器
長期以來,存儲器的工作速度落後於中央處理器的工作速度,成為處理機的瓶頸。為了克服這個障礙,人們提出層次存儲系統和虛擬存儲器的概念。為了提高存儲器的有效工作速度,在原來的主存儲器與中央處理器之間增加了高速緩衝存儲器;為了擴大存儲器容量,增加了以磁碟機為主要設備的輔助存儲器作為主存儲器的後援。用戶使用時,可以面向統一的虛擬存儲器邏輯地址空間,而數據和指令在各層之間的調動則由硬體(高速緩存-主存層次)或操作系統(主存-輔存層次)自動完成。
輸入-輸齣子系統
硬體技術水平的提高,特別是集成電路、磁碟機和終端設備的發展,使計算機硬體的面貌發生了根本變化。硬體對軟體提供了有力的支持,但與此同時計算機系統的設備量顯著增加。計算機組織成分有了新的劃分方法。輔助存儲器和輸入-輸出裝置組成計算機的外圍設備,受輸入-輸齣子系統的單獨控制。它們對系統的價格比重已經由60年代的30%~40%上升到80%。中央處理器、主存儲器和輸入-輸出介面等,組成處理機與輸入-輸齣子系統並列。
計算機組織的發展過程體現了下列幾條基本原則。
信息流量平衡
計算機組織的發展是一個不斷爭取高運算速度、大存儲容量、強處理功能、低機器價格的過程。為了發揮所有功能部件的總效能,必須謀求計算機各部件間的信息流量平衡。因此,各功能部件工作速度的相互匹配是計算機組織合理性的標誌。例如,層次和并行存儲系統的產生和發展是謀求中央處理器和存儲器之間信息流量平衡的結果。
層次化
採用層次概念來研究計算機組織可以達到兩個目的。一是把外層的標準化與內層的多樣化結合起來,如用標準的輸入-輸出通道或介面經過設備控制器驅動多種特性迥異、類型不一的外圍設備;二是實現虛擬系統,這與計算機系統結構實現各層虛擬機器的原理類似。例如,虛擬存儲器就是在層次組織的基礎上發展起來的,使用戶無需介入實際存儲系統的細節,以接近於高速緩衝存儲器的存取速度使用比主存容量大得多的主、輔存儲統一的地址空間。
模塊化
無論是計算機系統的全局或是局部,都可以利用模塊化概念劃分為相對獨立的部分,各部分至少具有一定程度上完整的處理功能和獨立的自治控制能力。各部分之間經過標準的介面或界面相互連接,這樣使它們能隨意增減或替換,而不致影響其餘部分的正常工作。在計算機系統的各個層次都存在利用模塊化方法加以實現的可能性。以硬體的層次來說,按功能劃分模塊是縱向劃分,而設置多個并行的運算部件和存儲模塊等是橫向劃分。在各個部件內部,模塊化也是有效利用大規模集成電路的必要條件。
功能分散化
在模塊化的基礎上進一步分散控制功能,從集中式控制走向分散式控制。這樣,有利於多個部件的并行操作,也為不同工作速度的部件之間實現非同步控制創造條件。上述的統一控制器向多個分散控制器的發展,是已經實現的功能分散方案。許多巨型和大型計算機也可利用功能分散原理做成高性能的功能分佈多處理機系統。
互連方式
處理任務的高度集中和數據流量的迅速增長,要求採用多運算部件和多存儲模塊。它們與數量眾多、品種繁雜的外圍設備之間如何互相連接,成為計算機組織的中心問題之一。早期計算機(圖1 以中央處理器為中心的計算機組織)中那種以中央處理器為中心,由它包攬一切指令操作和輸入輸出控制任務的做法,不但不利於提高中央處理器自身的使用效率,而且也無法應付數量龐大的外圍設備對處理的需求。代之而起的是以存儲器為中心的互連方式(圖2 以存儲器為中心的計算機組織。批量的輸入輸出數據可以越過中央處理器,經過輸入輸出通道進出於主存儲器,只是在最必要的時候才用中斷方式請求中央處理器進行短暫干預。
在設備數量很多的情況下,全部設備都與存儲器分別單獨相連是不現實的,而且也不能適應擴展數量和更換品種的需要。如果所有外圍設備都經過統一的匯流排和標準介面與中央處理器和存儲器模塊相連,計算機系統組織就要靈活得多。這就是現代計算機組織普遍採用的匯流排互連方式(圖3 以匯流排互連的計算機組織)。
匯流排以簡單經濟的技術實現靈活可變的計算機系統配置,能較好地滿足不同用戶對計算機系統通用性的要求。但是,它必須按時間分割或優先順序競爭的原則工作,使同一時間內一套匯流排只能為一對功能模塊之間傳送信息服務。匯流排是互連網路最簡單的一種型式,在設備量更多、速度要求更高的場合,還可選用其他互連型式。
數據流
計算機對信息的加工過程可以從概念上表示為數據流和控制流的結合。數據流發生於計算機各功能模塊之間,存儲或寄存的信息經過數據路徑流動並接受加工;而控制流則對數據流的存儲、傳送和加工過程進行時序控制。數據路徑表示計算機數據單元(包括存儲器和寄存器)和操作單元(包括運算、計數、移位、傳送)相互連接的空間關係。控制時序表示正被處理中的信息經過數據路徑作用的時間關係。二者相結合,信息便能按照相應的時間順序經過有關的數據單元和操作單元,完成由確定的演演算法所描述的信息處理過程。這就是計算機組織中用來分析和設計計算機功能部件相互作用的一種普遍方法,為諾伊曼型計算機所採用。
控制流的設計反映在指令控制器中,就是制定各類指令的時序控制過程,包括取指令、形成操作數地址、取操作數、執行指令操作、形成結果數地址、保存結果、判斷和響應中斷請求等一系列指令步驟。實現這些指令步驟既可以用硬聯邏輯控制方法,也可以用微程序控制方法。為了獲得儘可能高的指令吞吐率,可以採用使連續的指令相互重疊和按流水線執行的組織方法;也可以設立指令緩衝站以減少從主存儲器重複讀取指令的時間,並採用先行控制的方法以越過前面執行時間較長的指令而儘可能把具備條件的後續指令提前執行。
隨著大規模集成電路和微處理器的迅速發展,傳統的諾伊曼型計算機結構原理正在經受一場挑戰。如果說至今關於功能部件的劃分和互連都是針對單處理機而言的,那麼利用廉價硬體構成的各種功能分佈或任務分佈多處理機系統則需要採取更為複雜的組織方式,來實現更好的性能-價格比指標。如果說商售計算機系統習慣於在傳統的硬體內層基礎上發展外層軟體,那麼直接根據計算結構、軟體結構、知識結構等特性來發展嶄新的計算機組織形式,已經成為現實的研究目標。