計算機體系結構

計算機體系結構

計算機體系結構是指根據屬性和功能不同而劃分的計算機理論組成部分及計算機基本工作原理、理論的總稱。其中計算機理論組成部分並不單與某一個實際硬體相掛鈎,如存儲部分就包括暫存器、記憶體、硬碟等。

基本介紹

  • 中文名計算機體系結構
  • 外文名:Computer Architecture
  • 內容:軟、硬體的系統結構
  • 屬性:8種屬性
  • 發展階段:4大階段
  • 劃分依據:屬性、功能
簡介,基本概念,八種屬性,研究內容,發展歷程,第一階段,第二階段,第三階段,第四階段,基本原理,分類,Flynn分類法,馮式分類法,技術革新,

簡介

計算機體系結構是程式設計師所看到的計算機的屬性,即計算機的邏輯結構和功能特徵,包括其各個硬部件和軟部件之間的相互關係。對計算機系統設計者,計算機體系結構是指研究計算機的基本設計思想和由此產生的邏輯結構;對程式設計者是指對系統的功能描述(如指令集、編制方式等)。

基本概念

計算機體系結構指軟、硬體的系統結構,有兩方面的含義:一是從程式設計者的角度所見的系統結構,它是研究計算機體系的概念性結構和功能特性,關係到軟體設計的特性;二是從硬體設計者的角度所見的系統結構,實際上是計算機體系的組成或實現(參見計算機組織),主要著眼於性能價格比的合理性。亞當(Adam)等人為了說明和研究從程式設計角度所看到的計算機的屬性(外特性),在1964年最先提出計算機系統結構的概念。
概念性結構與功能特性,這是從程式設計者角度所看到的計算機屬性。它包括機器內的數據表示、定址方式以及對這些數據的運算和控制這些運算的執行等(即指令系統)。對於通用型機器,一般包括數據表示、定址方式、暫存器定義、指令系統、中斷機構、機器工作狀態的定義和狀態切換、機器級的輸入、輸出結構以及對信息保護的支持等。
計算機體系結構主要研究軟體、硬體功能分配和對軟體、硬體界面的確定。20世紀70年代以來,在計算機軟體方面有了顯著的進展。計算機在性能、速度、價格、可靠性和組織、實現技術上雖比20世紀50年代末有了巨大的突破,但它們的系統結構卻並沒有什麼明顯的、突破性的進展。絕大多數機器的系統結構仍然沒有脫離馮·諾伊曼型的範圍。程式設計者所見的系統結構和20世紀50年代末相比變化不大。例如,對於指令系統,程式設計者基本上仍然立足於20世紀50年代末的計算機系統結構觀點來設計複雜得多的軟體。傳統計算機的硬體組成與高級語言和作業系統之間的嚴重脫節,給軟體的可靠性、源程式編譯效率以及系統的解題效率等方面帶來不利的影響,這是計算機系統結構需要解決的重要課題。20世紀70年代出現的數據流計算機系統結構思想,把傳統計算機的指令控制流控制方法改變為數據控制流的控制方法,從而有可能自動排除運算相關性的障礙,達到高度並行的目的。
計算機軟、硬體功能分配,主要應從實現費用、對速度的影響和其他性能要求來考慮,亦即考慮如何分配能提高性能價格比。作業系統的基本的、通用的功能的硬化或固化,有利於提高作業系統的執行效率和速度,減少開銷;而功能不穩定,即需要不斷變化的,用軟體實現有利於提供應有的靈活性。實現費用包括研製費用和重複生產費用。硬體的設計費用和重複生產費用都比軟體大,宜於硬體實現的功能應該是穩定的、常用的、比較小的,而且是軟體實現的速度下降會對計算機系統性能有較大影響的那些功能。硬體實現只是對產量大的計算機系統才有經濟效益。
計算機體系結構計算機體系結構

八種屬性

1·機內數據表示:硬體能直接辨識和操作的數據類型和格式
計算機體系結構
2·定址方式:最小可定址單位、定址方式的種類、地址運算
3·暫存器組織:操作暫存器、變址暫存器、控制暫存器及專用暫存器的定義、數量和使用規則
4·指令系統:機器指令的操作類型、格式、指令間排序和控制機構
5·存儲系統:最小編址單位、編址方式、主存容量、最大可編址空間
6·中斷機構:中斷類型、中斷級別,以及中斷回響方式等
7·輸入輸出結構:輸入輸出的連線方式、處理機/存儲器與輸入輸出設備間的數據交換方式、數據交換過程的控制
8·信息保護:信息保護方式、硬體信息保護機制。

研究內容

計算機的概念性結構和功能特性,這是指系統程式設計者眼中的計算機系統的屬性,也包括機器設計者所看到的計算機系統的邏輯結構。簡言之,是組成計算機的各部分之間的相互關係的詳細說明,它是硬體軟體、算法和語言的綜合性概念。計算機體系結構這一術語也稱作計算機系統結構。它已發展為一門內容廣泛的學科,並成為高等學校計算機專業學生的必修課。它所研究的主要內容如下:
1.指令系統包括機器指令的操作類型、格式、定址等。
2.存儲系統包括多級存儲層次、虛擬存儲器結構、高速緩衝存儲器結構及存儲保護等。
3.輸入輸出系統包括通道結構、輸入輸出處理機結構等。
4.中央處理機結構包括馮·諾依曼結構、非馮·諾依曼結構、重疊結構、流水結構、並行處理結構等。
5.多機系統包括互連技術,多處理機結構、分布處理結構、計算機網路結構等。
6.人機通信聯繫包括人-機接口、計算機可靠性、可用性和可維護性(這三者稱為RAS技術)、容錯技術、故障診斷等。
此外,還研究計算機硬體描述語言、計算機系統性能評價等內容。

發展歷程

計算機體系結構已經經歷了四個不同的發展階段。
計算機體系結構

第一階段

60年代中期以前,是計算機體系結構發展的早期時代。在這個時期通用硬體已經相當普遍,軟體卻是為每個具體套用而專門編寫的,大多數人認為軟體開發是無需預先計畫的事情。這時的軟體實際上就是規模較小的程式,程式的編寫者和使用者往往是同一個(或同一組)人。由於規模小,程式編寫起來相當容易,也沒有什麼系統化的方法,對軟體開發工作更沒有進行任何管理。這種個體化的軟體環境,使得軟體設計往往只是在人們頭腦中隱含進行的一個模糊過程,除了程式清單之外,根本沒有其他文檔資料保存下來。

第二階段

從60年代中期到70年代中期,是計算機體系結構發展的第二代。在這10年中計算機技術有了很大進步。多道程式、多用戶系統引入了人機互動的新概念,開創了計算機套用的新境界,使硬體和軟體的配合上了一個新的層次。實時系統能夠從多個信息源收集、分析和轉換數據,從而使得進程控制能以毫秒而不是分鐘來進行。線上存儲技術的進步導致了第一代資料庫管理系統的出現。這個階段的一個重要特徵是出現了“軟體作坊”,廣泛使用產品軟體。但是,“軟體作坊”基本上仍然沿用早期形成的個體化軟體開發方法。隨著計算機套用的日益普及,軟體數量急劇膨脹。在程式運行時發現的錯誤必須設法改正;用戶有了新的需求時必須相應地修改程式;硬體或作業系統更新時,通常需要修改程式以適應新的環境。上述種種軟體維護工作,以令人吃驚的比例耗費資源。更嚴重的是,許多程式的個體化特性使得它們最終成為不可維護的。“軟體危機”就這樣開始出現了。1968年北大西洋公約組織的計算機科學家在聯邦德國召開國際會議,討論軟體危機課題,在這次會議上正式提出並使用了“軟體工程”這個名詞,一門新興的工程學科就此誕生了。

第三階段

計算機體系結構發展的第三代從20世紀70年代中期開始,並且跨越了整整10年。在這10年中計算機技術又有了很大進步。分散式系統極大地增加了計算機系統的複雜性,區域網路廣域網、寬頻數字通信以及對“即時”數據訪問需求的增加,都對軟體開發者提出了更高的要求。但是,在這個時期軟體仍然主要在工業界和學術界套用,個人套用還很少。這個時期的主要特點是出現了微處理器,而且微處理器獲得了廣泛套用。以微處理器為核心的“智慧型”產品隨處可見,當然,最重要的智慧型產品是個人計算機。在不到10年的時間裡,個人計算機已經成為大眾化的商品。

第四階段

計算機體系結構發展的第四代從20世紀80年代中期開始,一直持續到現在。這個階段,人們感受到的是硬體和軟體的綜合效果。由複雜作業系統控制的強大的桌面機及區域網路和廣域網,與先進的套用軟體相配合,已經成為當前的主流。計算機體系結構已迅速地從集中的主機環境轉變成分布的客戶機/伺服器(或瀏覽器/伺服器)環境。世界範圍的信息網為人們進行廣泛交流和資源的充分共享提供了條件。軟體產業在世界經濟中已經占有舉足輕重的地位。隨著時代的前進,新的技術也不斷地湧現出來。面向對象技術已經在許多領域迅速地取代了傳統的軟體開發方法。
軟體開發的“第四代技術”改變了軟體界開發電腦程式的方式。專家系統和人工智慧軟體終於從實驗室中走出來進入了實際套用,解決了大量實際問題。套用模糊邏輯的人工神經網路軟體,展現了模式識別與擬人信息處理的美好前景。虛擬現實技術與多媒體系統,使得與用戶的通信可以採用和以前完全不同的方法。遺傳算法使我們有可能開發出駐留在大型並行生物計算機上的軟體。

基本原理

計算機體系結構解決的是計算機系統在總體上、功能上需要解決的問題,它和計算機組成、計算機實現是不同的概念。一種體系結構可能有多種組成,一種組成也可能有多種物理實現。
計算機體系結構
計算機系統結構的邏輯實現,包括機器內部數據流和控制流的組成以及邏輯設計等。其目標是合理地把各種部件、設備組成計算機,以實現特定的系統結構,同時滿足所希望達到的性能價格比。一般而言,計算機組成研究的範圍包括:確定數據通路的寬度、確定各種操作對功能部件的共享程度、確定專用的功能部件、確定功能部件的並行度、設計緩衝和排隊策略、設計控制機構和確定採用何種可靠技術等。計算機組成的物理實現。包括處理機、主存等部件的物理結構,器件的集成度和速度,器件、模組、外掛程式、底板的劃分與連線,專用器件的設計,信號傳輸技術,電源、冷卻及裝配等技術以及相關的製造工藝和技術。

分類

Flynn分類法

1966年,Michael J.Flynn提出根據指令流、數據流的並行度對計算機系統進行分類,定義如下。
·指令流:機器執行的指令序列
計算機體系結構計算機體系結構
·數據流:由指令流調用的數據序列,包括輸入數據和中間結果
·並行度:指令或數據並行執行的最大可能數目。
Flynn根據不同的指令流-數據流組織方式把計算機系統分為4類。
單指令流單數據流(Single Instruction Stream Single DataStream,SISD)
SISD其實就是傳統的順序執行的單處理器計算機,其指令部件每次只對一條指令進行解碼,並只對一個操作部件分配數據。
單指令流多數據流(Single Instruction Stream Multiple Data Stream,SIMD)
SIMD以並行處理機為代表,結構如圖,並行處理機包括多個重複的處理單元PU1~PUn,由單一指令部件控制,按照同一指令流的要求為它們分配各自所需的不同的數據。
計算機體系結構
多指令流單數據流(Multiple Instruction Stream Single Data Stream,MISD)
MISD的結構,它具有n個處理單元,按n條不同指令的要求對同一數據流及其中間結果進行不同的處理。一個處理單元的輸出又作為另一個處理單元的輸入。
多指令流多數據流(Multiple Instruction Stream Multiple Data Stream,MIMD)
MIMD的結構是指能實現作業、任務、指令等各級全面並行的多機系統,多處理機就屬於MIMD。

馮式分類法

1972年馮澤雲提出用最大並行度來對計算機體系結構進行分類。所謂最大並行度Pm是指計算機系統在單位時間內能夠處理的最大的二進制位數。設每一個時鐘周期△ti內能處理的二進制位數為Pi,則T個時鐘周期內平均並行度為Pa=(∑Pi)/T(其中i為1,2,…,T)。平均並行度取決於系統的運行程度,與應用程式無關,所以,系統在周期T內的平均利用率為μ=Pa/Pm=(∑Pi)/(T*Pm)。用平面直角坐標系中的一點表示一個計算機系統,橫坐標表示字寬(N位),即在一個字中同時處理的二進制位數;縱坐標表示位片寬度(M位),即在一個位片中能同時處理的字數,則最大並行度Pm=N*M。
由此得出四種不同的計算機結構:
①字串列、位串列(簡稱WSBS)。其中N=1,M=1。
②字並行、位串列(簡稱WPBS)。其中N=1,M>1。
③字串列、位並行(簡稱WSBP)。其中N>1,M=1。
④字並行、位並行(簡稱WPBP)。其中N>1,M>1。

技術革新

計算機體系結構以圖靈機理論為基礎,屬於馮·諾依曼體系結構。本質上,圖靈機理論和馮·諾依曼體系結構是一維串列的,而多核處理器則屬於分散式離散的並行結構,需要解決二者的不匹配問題。
首先,串列的圖靈機模型和物理上分布實現的多核處理器的匹配問題。圖靈機模型意味著串列的編程模型。串列程式很難利用物理上分布實現的多個處理器核獲得性能加速.與此同時,並行編程模型並沒有獲得很好的推廣,僅僅局限在科學計算等有限的領域.研究者應該尋求合適的機制來實現串列的圖靈機模型和物理上分布實現的多核處理器的匹配問題或縮小二者之間的差距,解決“並行程式編程困難,串列程式加速小”的問題。
在支持多執行緒並行套用方面,未來多核處理器應該從如下兩個方向加以考慮。第一是引入新的能夠更好的能夠表示並行性的編程模型。由於新的編程模型支持編程者明確表示程式的並行性,因此可以極大的提升性能。比如Cell處理器提供不同的編程模型用於支持不同的套用。其難點在於如何有效推廣該編程模型以及如何解決兼容性的問題。第二類方向是提供更好的硬體支持以減少並行編程的複雜性。並行程式往往需要利用鎖機制實現對臨界資源的同步、互斥操作,編程者必須慎重確定加鎖的位置,因為保守的加鎖策略限制了程式的性能,而精確的加鎖策略大大增加了編程的複雜度。一些研究在此方面做了有效的探索。比如,Speculative Lock Elision機制允許在沒有衝突的情況下忽略程式執行的鎖操作,因而在降低編程複雜度的同時兼顧了並行程式執行的性能。這樣的機制使得編程者集中精力考慮程式的正確性問題,而無須過多地考慮程式的執行性能。更激進的,Transactional Coherence and Consistency(TCC)機制以多個訪存操作(Transaction)為單位考慮數據一致性問題,進一步簡化了並行編程的複雜度。
主流的商業多核處理器主要針對並行套用,如何利用多核加速串列程式仍然是一個值得關注的問題。其關鍵技術在於利用軟體或硬體自動地從串列程式中派生出能夠在多核處理器上並行執行的代碼或執行緒。多核加速串列程式主要有三種方法,包括並行編譯器、推測多執行緒以及基於執行緒的預取機制等。在傳統並行編譯中,編譯器需要花費很大的精力來保證擬劃分執行緒之間不存在數據依賴關係。編譯時存在大量模糊依賴,尤其是在允許使用指針(如C程式)的情況下,編譯器不得不採用保守策略來保證程式執行的正確性。這大大限制了串列程式可以挖掘的並發程度,也決定了並行編譯器只能在狹窄範圍使用。為解決這些問題,人們提出推測多執行緒以及基於執行緒的預取機制等。然而,從這種概念提出到現在為止,這個方向的研究大部分局限於學術界,僅有個別商業化處理器套用了這種技術,並且僅僅局限於特殊的套用領域。我們認為動態最佳化技術和推測多執行緒(包括基於執行緒的預取機制)的結合是未來的可能發展趨勢。
其次,馮·諾依曼體系結構的一維地址空間和多核處理器的多維訪存層次的匹配問題。本質上,馮·諾依曼體系結構採用了一維地址空間。由於不均勻的數據訪問延遲和同一數據在多個處理器核上的不同拷貝導致了數據一致性問題。該領域的研究分為兩大類:一類研究主要是引入新的訪存層次。新的訪存層次可能採用一維分散式實現方式。典型的例子是增加分散式統一編址的暫存器網路。全局統一編址的特性避免了數據一致性的考慮。同時,相比於傳統的大容量cache訪問,暫存器又能提供更快的訪問速度。TRIPSRAW都有實現了類似核暫存器網路。另外,新的訪存層次也可以是私有的形式。比如每個處理器核都有自己私有的訪存空間。其好處是更好的劃分了數據存儲空間,一些y局部私有數據沒有必要考慮數據一致性問題。比如Cell處理器為每個SPE核設定了私有的數據緩衝區。另一類研究主要涉及研製新的cache一致性協定。其重要趨勢是放鬆正確性和性能的關係。比如推測Cache協定在數據一致性未得到確認之前就推測執行相關指令,從而減少了長遲訪存操作對流水線的影響。此外,Token Coherence和TCC也採用了類似的思想。
第三,程式的多樣性和單一的體系結構的匹配問題。未來的套用展現出多樣性的特點。一方面,處理器的評估不僅僅局限於性能,也包括可靠性,安全性等其他指標。另一方面,即便考慮僅僅追求性能的提高,不同的應用程式也蘊含了不同層次的並行性。套用的多樣性驅使未來的處理器具有可配置、靈活的體系結構。TRIPS在這方面作了富有成效的探索,比如其處理器核和片上存儲系統均有可配置的能力,從而使得TRIPS能夠同時挖掘指令級並行性、數據級並行性及指令級並行性。
多核和Cell等新型處理結構的出現不僅是處理器架構歷史上具有里程碑式的事件,對傳統以來的計算模式和計算機體系架構也是一種顛覆。
2005年,一系列具有深遠影響的計算機體系結構被曝光,有可能為未來十年的計算機體系結構奠定根本性的基礎,至少為處理器乃至整個計算機體系結構做出了象徵性指引。隨著計算密度的提高,處理器和計算機性能的衡量標準和方式在發生變化,從套用的角度講,講究移動和偏向性能兩者已經找到了最令人滿意的結合點,並且有可能引爆手持設備的急劇膨脹。儘管現在手持設備也相對普及,在計算能力、可擴展性以及能耗上,完全起到了一台手持設備應該具備的作用;另一方面,講究性能的伺服器端和桌面端,開始考慮減少電力消耗趕上節約型社會的大潮流。
Cell本身適應這種變化,同樣也是它自己創造了這種變化。因而從它開始就強調了不一樣的設計風格,除了能夠很好地進行多倍擴展外,處理器內部的SPU(Synergistic Processor Unit,協同處理單元)具有很好的擴展性,因而可以同時面對通用和專用的處理,實現處理資源的靈活重構。也就意味著,通過適當的軟體控制,Cell能應付多種類型的處理任務,同時還能夠精簡設計的複雜度。
計算機體系結構

相關詞條

熱門詞條

聯絡我們