概述
(Computer Architecture)也稱為計算機體系結構,它是由計算機結構外特性,內特性,微外特性組成的。經典的計算機系統結構的定義是指計算機系統多級層次結構中機器語言機器級的結構,它是軟體和硬體/固件的主要交界面,是由機器語言程式、彙編語言源程式和高級語言源程式翻譯生成的機器語言目標程式能在機器上正確運行所應具有的界面結構和功能。
計算機系統結構指的是什麼? 是一台計算機的外表? 還是是指一台計算機內部
的一塊塊板卡安放結構? 都不是,那么它是什麼? 計算機系統結構就是計算機的機器語言程式設計師或編譯程式編寫者所看到的外特性。所謂外特性,就是計算機的概念性結構和功能特性。用一個不恰當的比喻一,比如動物吧,它的"系統結構"是指什麼呢? 它的概念性結構和功能特性,就相當於動物的器官組成及其功能特性,如雞有胃,胃可以消化食物。至於雞的胃是什麼形狀的、雞的胃部由什麼組成就不是"系統結構"研究的問題了。系統結構只管到這一層。關於計算機系統的多層次結構。用"人"這種動物的不恰當的例子列表對比如下:(這種聯繫很不科學,只是大家輕鬆一下)。
計算機系統
套用語言級
服務級
高級語言級
讀書、學習級
彙編語言級
語言、思維級
作業系統級
生理功能級
傳統機器級
人體器官級
微程式機器級
細胞組織級
電子線路級
分子級
傳統機器級以上的所有機器都稱為虛擬機,它們是由軟體實現的機器。軟硬體的
功能在邏輯上是等價的,即絕大多部分硬體的功能都可用軟體來實現,反之亦然。
計算機系統結構的外特性,一般應包括以下幾個方面(這也就是我們要分章學習的幾個章節)把這幾個方面弄清了,系統結構也就基本明確了:
⑴指令系統⑵數據表示⑶作數的定址方式 ⑷暫存器的構成定義 ⑸中斷機構和例外條件 ⑹存儲體系和管理 ⑺I/O結構 ⑻機器工作狀態定義和切換 ⑼信息保護。
所以在以後的學習中常回頭想想這是系統結構的哪一方面,這對把握全局有好處。
這裡提一下計算機系統結構的內部特性,計算機系統結構的內特性就是將那些外特性加以"邏輯實現"的基本屬性。所謂"邏輯實現"就是在邏輯上如何實現這種功能,比如"上帝"給雞設計了一個一定大小的胃,這個胃的功能是消化食物,這就是雞系統的某一外特性,那怎么消化呢,就要通過雞喙吃進食物和砂石,再通過胃的蠕動、依靠砂石的研磨來消化食物,這裡的吃和蠕動等操作就是內特性。
還有一個就是計算機實現,也就是計算機組成的物理實現。它主要著眼於器件技術和微組裝技術。拿上面的例子來說,這個胃由哪些組織組成幾條肌肉和神經來促使它運動就是"雞實現"。
據此我們可以分清計算機系統的外特性、內特性以及物理實現之間的關係。在所有系統結構的特性中,指令系統的外特性是最關鍵的。因此,計算機系統結構有時就簡稱為指令集系統結構。我們這門課注重學習的是計算機的系統結構,傳統的講,就是處在硬體和軟體之間介面的描述,也就是外特性。
這些不恰當的比喻只是幫助理解,不可強求對應,不然會有損科學的嚴密性。
分類
按"流"分類的方法,這是Flynn教授提出的按指令流和數據流的多倍性概念進行分類的方法。共有四大類,即:(S-single 單一的 I-instruction 指令 M-multiple 多倍的 D-data 數據)
SISD 單指令流單數據流,傳統的單處理機屬於SISD計算機。
SIMD 單指令流多數據流,並行處理機是SIMD計算機的典型代表。中國的YH-I型是此類計算機型。
MISD 多指令流單數據流,實際上不存在,但也有學者認為存在。
MIMD 多指令流多數據流,包括了大多數多處理機及多計算機系統。中國的YH-Ⅱ型計算機是這種類型的計算機。
一般將標量流水機視為SISD類型,把向量流水機視為SIMD類型。
按"並行級"和"流水線"分類:這是在計算機系統中的三個子系統級別上按並行程度及流水線處理程度進行分類的方法。
--------------------------------------------------------------------------------
設計準則
部件
這是最重要也是最廣泛採用的計算機設計準則。因為加快處理頻繁出現事件對系統的影響遠比加速處理很少出現事件的影響要大。
定律
這個定律就是一個公式:即
應會運用此公式做一些計算或分析,所以要記住並理解其意義。
程式訪問的局部性規律
程式訪問的局部性主要反映在時間和空間局部性兩個方面,時間局部性是指程式中被訪問的信息項可能馬上將被再次訪問,空間局部性指那些在訪問地址上相鄰近的信息項很可能被一起訪問。
發展
馮·諾依曼計算機的主要特點是:存儲程式方式;指令串列執行,並由控制器加以集中控制;單元定長的一維線性空間的存儲器;使用低級機器語言,數據以二進制表示;單處理機結構,以運算器為中心。
改進後的馮·諾依曼計算機使其從原來的以運算器為中心演變為以存儲器為中心。從系統結構上講,主要是通過各種並行處理手段高提高計算機系統性能。
軟體、套用和器件對系統結構發展的影響
軟體應具有可兼容性,即可移植性。為了實現軟體的可移植性,可用以下方法:
模擬:用軟體方法在一台現有的計算機上實現另一台計算機的指令系統,這種用實際存在的機器語言解釋實現軟體移植的方法就是模擬。
仿真:用A機(宿主機)中的一段微程式來解釋實現B機(目標機)指令系統中每一條指令而實現B機指令系統的方法稱仿真,它是有部份硬體參與解釋過程的。
一般將兩種方法混合作用,對於使用頻率高的指令用仿真方法,而對於頻率低而且難於仿真實現的指令使用模擬的方法加以實現。
採用系列機的方法,可以這么說,系列機的系統結構都是一致的,如我們使用的INTEL 的80X86微機系列及其兼容機,系統結構都是一致的,當然在發展過程中它的系統結構可以得到了新的擴充,比如原來的586機器不支持MMX多媒體擴展指令集,但是後來的晶片中擴充了這些指令,使指令系統集擴大,但它們仍是同一系列的機器。這種系列機的方法主要是為了軟體兼容。如上面的擴展指令,將使得以後針對這些指令最佳化的軟體不能在以前的機子上運行(或不能發揮相應功能)導致向前兼容性不佳。但重要的是保證做到向後兼容,也就是在按某個時期推到市場上的該檔機上編制的軟體能不加修改地在它之後投入市場的機器上運行。
在系列機上,軟體的可稱植性是通過各檔機器使用相同的高級語言、彙編語言和機器語言,但使用不同的微程式來實現的。
統一標準的高級語言
採用與機器型號無關的高級程式設計語言標準如FORTRAN、COBOL等,這種方法提供了在不同硬體平台、不同作業系統之間的可移植性。
開放系統:是指一種獨立於廠商,且遵循有關國際標準而建立的,具有系統可移植性、互動操作性,從而能允許用戶自主選擇具體實現技術和多廠商產品渠道的系統集成技術的系統。
套用需求對系統結構發展的影響
計算機套用對系統結構不斷提出的基本要求是高的運算速度、大的存儲容量和大的I/O吞吐率。(我們要更快的主機板CPU和記憶體、我們要更大的硬碟我們要更大的顯示器更多的色彩更高的刷新頻率...這就是需求)
計算機套用從最初的科學計算向更高級的更複雜的套用發展,經歷了從數據處理、信息處理、知識處理以及智慧型處理這四級逐步上升的階段。
器件對系統結構發展的影響
由於技術的進步,器件的性能價格比迅速提高,晶片的功能越來越強,從而使系統結構的性能從較高的大型機向小型機乃至微機下移。
綜上所述:
軟體是促使計算機系統結構發展的最重要的因素(沒有軟體,機器就不能運行,所以為了能方便地使用現有軟體,就必須考慮系統結構的設計。軟體最重要)
套用需求是促使計算機系統結構發展的最根本的動力(機器是給人用的,我們追求更快更好,機器就要做得更快更好。所以需求最根本)
器件是促使計算機系統結構發展最活躍的因素(沒有器件就產不出電腦,器件的每一次升級就帶來計算機系統結構的改進。沒看見上半年剛買的機子,下半年就想把它扔進歷史的垃圾堆么^_^,所以器件最活躍)。