計算機體系結構是指那些對程序員可見的系統(tǒng)屬性,還包括設計思想與體系結構。今天課課就來和大家分享這篇文章,全面概述了計算機體系結構。要認真閱讀~
計算機體系結構(ComputerArchitecture)是程序員所看到的計算機的屬性,即概念性結構與功能特性。按照計算機系統(tǒng)的多級層次結構,不同級程序員所看到的計算機具有不同的屬性。一般來說,低級機器的屬性對于高層機器程序員基本是透明的,通常所說的計算機體系結構主要指機器語言級機器的系統(tǒng)結構。經(jīng)典的關于“計算機體系結構(computerarchitecture)”的定義是1964年C.M.Amdahl在介紹IBM360系統(tǒng)時提出的,其具體描述為“計算機體系結構是程序員所看到的計算機的屬性,即概念性結構與功能特性”
計算機體系結構-基本概念

計算機體系結構
計算機體系結構就是指適當?shù)亟M織在一起的一系列系統(tǒng)元素的集合,這些系統(tǒng)元素互相配合、相互協(xié)作,通過對信息的處理而完成預先定義的目標。通常包含的系統(tǒng)元素有:計算機軟件、計算機硬件、人員、數(shù)據(jù)庫、文檔和過程。其中,軟件是程序、數(shù)據(jù)結構和相關文檔的集合,用于實現(xiàn)所需要的邏輯方法、過程或控制;硬件是提供計算能力的電子設備和提供外部世界功能的電子機械設備(例如傳感器、馬達、水泵等);人員是硬件和軟件的用戶和操作者;數(shù)據(jù)庫是通過軟件訪問的大型的、有組織的信息集合;文檔是描述系統(tǒng)使用方法的手冊、表格、圖形及其他描述性信息;過程是一系列步驟,它們定義了每個系統(tǒng)元素的特定使用方法或系統(tǒng)駐留的過程性語境。
計算機體系結構-8種屬性

計算機體系結模型
1?機內(nèi)數(shù)據(jù)表示:硬件能直接辨識和操作的數(shù)據(jù)類型和格式
2?尋址方式:最小可尋址單位、尋址方式的種類、地址運算
3?寄存器組織:操作寄存器、變址寄存器、控制寄存器及專用寄存器的定義、數(shù)量和使用規(guī)則
4?指令系統(tǒng):機器指令的操作類型、格式、指令間排序和控制機構
5?存儲系統(tǒng):最小編址單位、編址方式、主存容量、最大可編址空間
6?中斷機構:中斷類型、中斷級別,以及中斷響應方式等
7?輸入輸出結構:輸入輸出的連接方式、處理機/存儲器與輸入輸出設備間的數(shù)據(jù)交換方式、數(shù)據(jù)交換過程的控制
8?信息保護:信息保護方式、硬件信息保護機制。
計算機體系結構-發(fā)展歷程

虛存-磁盤存儲器地址轉換
計算機系統(tǒng)已經(jīng)經(jīng)歷了四個不同的發(fā)展階段
第一階段
60年代中期以前,是計算機系統(tǒng)發(fā)展的早期時代。在這個時期通用硬件已經(jīng)相當普遍,軟件卻是為每個具體應用而專門編寫的,大多數(shù)人認為軟件開發(fā)是無需預先計劃的事情。這時的軟件實際上就是規(guī)模較小的程序,程序的編寫者和使用者往往是同一個(或同一組)人。由于規(guī)模小,程序編寫起來相當容易,也沒有什么系統(tǒng)化的方法,對軟件開發(fā)工作更沒有進行任何管理。這種個體化的軟件環(huán)境,使得軟件設計往往只是在人們頭腦中隱含進行的一個模糊過程,除了程序清單之外,根本沒有其他文檔資料保存下來。
第二階段
從60年代中期到70年代中期,是計算機系統(tǒng)發(fā)展的第二代。在這10年中計算機技術有了很大進步。多道程序、多用戶系統(tǒng)引入了人機交互的新概念,開創(chuàng)了計算機應用的新境界,使硬件和軟件的配合上了一個新的層次。實時系統(tǒng)能夠從多個信息源收集、分析和轉換數(shù)據(jù),從而使得進程控制能以毫秒而不是分鐘來進行。在線存儲技術的進步導致了第一代數(shù)據(jù)庫管理系統(tǒng)的出現(xiàn)。計算機系統(tǒng)發(fā)展的第二代的一個重要特征是出現(xiàn)了“軟件作坊”,廣泛使用產(chǎn)品軟件。但是,“軟件作坊”基本上仍然沿用早期形成的個體化軟件開發(fā)方法。隨著計算機應用的日益普及,軟件數(shù)量急劇膨脹。在程序運行時發(fā)現(xiàn)的錯誤必須設法改正;用戶有了新的需求時必須相應地修改程序;硬件或操作系統(tǒng)更新時,通常需要修改程序以適應新的環(huán)境。上述種種軟件維護工作,以令人吃驚的比例耗費資源。更嚴重的是,許多程序的個體化特性使得它們最終成為不可維護的?!败浖C”就這樣開始出現(xiàn)了。1968年北大西洋公約組織的計算機科學家在聯(lián)邦德國召開國際會議,討論軟件危機課題,在這次會議上正式提出并使用了“軟件工程”這個名詞,一門新興的工程學科就此誕生了。

復雜計算機體系結構圖
第三階段
計算機系統(tǒng)發(fā)展的第三代從20世紀70年代中期開始,并且跨越了整整10年。在這10年中計算機技術又有了很大進步。分布式系統(tǒng)極大地增加亍計算機系統(tǒng)的復雜性,局域網(wǎng)、廣域網(wǎng)、寬帶數(shù)字通信以及對“即時”數(shù)據(jù)訪問需求的增加,都對軟件開發(fā)者提出了更高的要求。但是,在這個時期軟件仍然主要在工業(yè)界和學術界應用,個人應用還很少。這個時期的主要特點是出現(xiàn)了微處理器,而且微處理器獲得了廣泛應用。以微處理器為核心的“智能”產(chǎn)品隨處可見,當然,最重要的智能產(chǎn)品是個人計算機。在不到10年的時間里,個人計算機已經(jīng)成為大眾化的商品。
第四階段
在計算機系統(tǒng)發(fā)展的第四代已經(jīng)不再看重單臺計算機和程序,人們感受到的是硬件和軟件的綜合效果。由復雜操作系統(tǒng)控制的強大的桌面機及局域網(wǎng)和廣域網(wǎng),與先進的應用軟件相配合,已經(jīng)成為當前的主流。計算機體系結構已迅速地從集中的主機環(huán)境轉變成分布的客戶機/服務器(或瀏覽器/服務器)環(huán)境。世界范圍的信息網(wǎng)為人們進行廣泛交流和資源的充分共享提供了條件。軟件產(chǎn)業(yè)在世界經(jīng)濟中已經(jīng)占有舉足輕重的地位。隨著時代的前進,新的技術也不斷地涌現(xiàn)出來。面向對象技術已經(jīng)在許多領域迅速地取代了傳統(tǒng)的軟件開發(fā)方法。
總結
軟件開發(fā)的“第四代技術”改變了軟件界開發(fā)計算機程序的方式。專家系統(tǒng)和人工智能軟件終于從實驗室中走出來進入了實際應用,解決了大量實際問題。應用模糊邏輯的人工神經(jīng)網(wǎng)絡軟件,展現(xiàn)了模式識別與擬人信息處理的美好前景。虛擬現(xiàn)實技術與多媒體系統(tǒng),使得與用戶的通信可以采用和以前完全不同的方法。遺傳算法使我們有可能開發(fā)出駐留在大型并行生物計算機上的軟件。
計算機體系結構-基本原理

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

指令與數(shù)據(jù)模型
(1)Flynn分類法
1966年,Michael.J.Flynn提出根據(jù)指令流、數(shù)據(jù)流的多倍性(multiplicity)特征對計算機系統(tǒng)進行分類,定義如下。
?指令流:機器執(zhí)行的指令序列
?數(shù)據(jù)流:由指令流調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結果
?多倍性:在系統(tǒng)性能瓶頸部件上同時處于同一執(zhí)行階段的指令或數(shù)據(jù)的最大可能個數(shù)。
Flynn根據(jù)不同的指令流-數(shù)據(jù)流組織方式把計算機系統(tǒng)分為4類。
1?單指令流單數(shù)據(jù)流(SingleInstructionStreamSingleDataStream,SISD)
SISD其實就是傳統(tǒng)的順序執(zhí)行的單處理器計算機,其指令部件每次只對一條指令進行譯碼,并只對一個操作部件分配數(shù)據(jù)。
2?單指令流多數(shù)據(jù)流(SingleInstructionStreamMultipleDataStream,SIMD)
SIMD以并行處理機為代表,結構如圖,并行處理機包括多個重復的處理單元PU1~PUn,由單一指令部件控制,按照同一指令流的要求為它們分配各自所需的不同的數(shù)據(jù)。
3?多指令流單數(shù)據(jù)流(MultipleInstructionStreamSingleDataStream,MISD)
MISD的結構,它具有n個處理單元,按n條不同指令的要求對同一數(shù)據(jù)流及其中間結果進行不同的處理。一個處理單元的輸出又作為另一個處理單元的輸入。
4?多指令流多數(shù)據(jù)流(MultipleInstructionStreamMultipleDataStream,MIMD)
MIMD的結構,它是指能實現(xiàn)作業(yè)、任務、指令等各級全面并行的多機系統(tǒng),多處理機就屬于MIMD。

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

可信終端體系結構
計算機體系結構以圖靈機理論為基礎,屬于馮?諾依曼體系結構。本質上,圖靈機理論和馮?諾依曼體系結構是一維串行的,而多核處理器則屬于分布式離散的并行結構,需要解決二者的不匹配問題。
首先,串行的圖靈機模型和物理上分布實現(xiàn)的多核處理器的匹配問題。圖靈機模型意味著串行的編程模型。串行程序很難利用物理上分布實現(xiàn)的多個處理器核獲得性能加速.與此同時,并行編程模型并沒有獲得很好的推廣,僅僅局限在科學計算等有限的領域.研究者應該尋求合適的機制來實現(xiàn)串行的圖靈機模型和物理上分布實現(xiàn)的多核處理器的匹配問題或縮小二者之間的差距,解決“并行程序編程困難,串行程序加速小”的問題。
在支持多線程并行應用方面,未來多核處理器應該從如下兩個方向加以考慮。第一是引入新的能夠更好的能夠表示并行性的編程模型。由于新的編程模型支持編程者明確表示程序的并行性,因此可以極大的提升性能。比如Cell處理器提供不同的編程模型用于支持不同的應用。其難點在于如何有效推廣該編程模型以及如何解決兼容性的問題。第二類方向是提供更好的硬件支持以減少并行編程的復雜性。并行程序往往需要利用鎖機制實現(xiàn)對臨界資源的同步、互斥操作,編程者必須慎重確定加鎖的位置,因為保守的加鎖策略限制了程序的性能,而精確的加鎖策略大大增加了編程的復雜度。一些研究在此方面做了有效的探索。比如,SpeculativeLockElision機制允許在沒有沖突的情況下忽略程序執(zhí)行的鎖操作,因而在降低編程復雜度的同時兼顧了并行程序執(zhí)行的性能。這樣的機制使得編程者集中精力考慮程序的正確性問題,而無須過多地考慮程序的執(zhí)行性能。更激進的,TransactionalCoherenceandConsistency(TCC)機制以多個訪存操作(Transaction)為單位考慮數(shù)據(jù)一致性問題,進一步簡化了并行編程的復雜度。
主流的商業(yè)多核處理器主要針對并行應用,如何利用多核加速串行程序仍然是一個值得關注的問題。其關鍵技術在于利用軟件或硬件自動地從串新程序中派生出能夠在多核處理器上并行執(zhí)行的代碼或線程。多核加速串行程序主要有三種方法,包括并行編譯器、推測多線程以及基于線程的預取機制等。在傳統(tǒng)并行編譯中,編譯器需要花費很大的精力來保證擬劃分線程之間不存在數(shù)據(jù)依賴關系。編譯時存在大量模糊依賴,尤其是在允許使用指針(如C程序)的情況下,編譯器不得不采用保守策略來保證程序執(zhí)行的正確性。這大大限制了串行程序可以挖掘的并發(fā)程度,也決定了并行編譯器只能在狹窄范圍使用。為解決這些問題,人們提出推測多線程以及基于線程的預取機制等。然而,從這種概念提出到現(xiàn)在為止,這個方向的研究大部分局限于學術界,僅有個別商業(yè)化處理器應用了這種技術,并且僅僅局限于特殊的應用領域。我們認為動態(tài)優(yōu)化技術和推測多線程(包括基于線程的預取機制)的結合是未來的可能發(fā)展趨勢。
馮?諾依曼體系結構的一維地址空間和多核處理器的多維訪存層次的匹配問題。本質上,馮?諾依曼體系結構采用了一維地址空間。由于不均勻的數(shù)據(jù)訪問延遲和同一數(shù)據(jù)在多個處理器核上的不同拷貝導致了數(shù)據(jù)一致性問題。該領域的研究分為兩大類:一類研究主要是引入新的訪存層次。新的訪存層次可能采用一維分布式實現(xiàn)方式。典型的例子是增加分布式統(tǒng)一編址的寄存器網(wǎng)絡。全局統(tǒng)一編址的特性避免了數(shù)據(jù)一致性地考慮。同時,相比于傳統(tǒng)的大容量cache訪問,寄存器又能提供更快的訪問速度。TRIPS和RAW都有實現(xiàn)了類似得寄存器網(wǎng)絡。令另外,新的訪存層次也可以是私有的形式。比如每個處理器和都有自己私有的訪存空間。其好處是更好的劃分了數(shù)據(jù)存儲空間,已洗局部私有數(shù)據(jù)沒有必要考慮數(shù)據(jù)一致性問題。比如Cell處理器為每個SPE核設置了私有的數(shù)據(jù)緩沖區(qū)。另一類研究主要涉及研制新的cache一致性協(xié)議。其重要趨勢是放松正確性和性能的關系。比如推測Cache協(xié)議在數(shù)據(jù)一致性未得到確認之前就推測執(zhí)行相關指令,從而減少了長遲訪存操作對流水線的影響。此外,TokenCoherence和TCC也采用了類似的思想。
計算機系統(tǒng)發(fā)展的第三代從20世紀70年代中期開始,并且跨越了整整10年。在這10年中計算機技術又有了很大進步。分布式系統(tǒng)極大地增加亍計算機系統(tǒng)的復雜性,局域網(wǎng)、廣域網(wǎng)、寬帶數(shù)字通信以及對"即時"數(shù)據(jù)訪問需求的增加,都對軟件開發(fā)者提出了更高的要求。但是,在這個時期軟件仍然主要在工業(yè)界和學術界應用,個人應用還很少。這個時期的主要特點是出現(xiàn)了微處理器,而且微處理器獲得了廣泛應用。以微處理器為核心的"智能"產(chǎn)品隨處可見,當然,最重要的智能產(chǎn)品是個人計算機。在不到10年的時間里,個人計算機已經(jīng)成為大眾化的商品。

網(wǎng)絡體系結構中涉及到了:協(xié)議、實體、接口
計算機網(wǎng)絡中實現(xiàn)通信就必須依靠網(wǎng)絡通過協(xié)議。在20世紀70年代,各大計算機生產(chǎn)商的產(chǎn)品都擁有自己的網(wǎng)絡通信協(xié)議。但是不同的廠家生產(chǎn)的計算機系統(tǒng)就難以連接,為了實現(xiàn)不同廠商生產(chǎn)的計算機系統(tǒng)之間以及不同網(wǎng)絡之間的數(shù)據(jù)通信,國際標準話組織ISO(開放系統(tǒng)互連參考模型)即OSI/RM也稱為ISO/OSI,該系統(tǒng)稱為開放系統(tǒng)。
外部體系結構
程序的多樣性和單一的體系結構的匹配問題。未來的應用展現(xiàn)出多樣性的特點。一方面,處理器的評估不僅僅局限于性能,也包括可靠性,安全性等其他指標。另一方面,即便考慮僅僅追求性能的提高,不同的應用程序也蘊含了不同層次的并行性。應用的多樣性驅使未來的處理器具有可配置、靈活的體系結構。TRIPS在這方面作了富有成效的探索,比如其處理器核和片上存儲系統(tǒng)均有可配置的能力,從而使得TRIPS能夠同時挖掘指令級并行性、數(shù)據(jù)級并行性及指令級并行性。
多核和Cell等新型處理結構的出現(xiàn)不僅是處理器架構歷史上具有里程碑式的事件,對傳統(tǒng)以來的計算模式和計算機體系架構也是一種顛覆
2005年,一系列具有深遠影響的計算機體系結構被曝光,有可能為未來十年的計算機體系結構奠定根本性的基礎,至少為處理器乃至整個計算機體系結構做出了象征性指引。隨著計算密度的提高,處理器和計算機性能的衡量標準和方式在發(fā)生變化,從應用的角度講,講究移動和偏向性能兩者已經(jīng)找到了最令人滿意的結合點,并且有可能引爆手持設備的急劇膨脹。盡管現(xiàn)在手持設備也相對普及,在計算能力、可擴展性以及能耗上,完全起步到一臺手持設備應該具備的作用;另一方面,講究性能的服務器端和桌面端,開始考慮減少電力消耗趕上節(jié)約型社會的大潮流。
Cell本身適應這種變化,同樣也是它自己創(chuàng)造了這種變化。因而從它開始就強調(diào)了不一樣的設計風格,除了能夠很好地進行多倍擴展外,處理器內(nèi)部的SPU(SynergisticProcessorUnit協(xié)同處理單元)具有很好的擴展性,因而可以同時面對通用和專用的處理,實現(xiàn)處理資源的靈活重構。也就意味著,通過適當?shù)能浖刂?,Cell能應付多種類型的處理任務,同時還能夠精簡設計的復雜。