計算機系統結構(第四版)》介紹了計算機系統結構的基本概念、基本原理、基本分析和設計方法。《計算機系統結構(第四版)》共7章,內容包括:計算機系統結構的相關概念、時間并行技術、指令級并行技術、多處理機、超級計算機、倉庫級計算機、云計算構架。
計算機系統結構(第四版)》依據短學時教學要求編寫,知識完整、結構合理、重點突出、概念清楚,反映了計算機科學技術的近期成果。
計算機系統結構(第四版)》文字流暢,便于自學,有廣泛的適應面,可作為高等院校計算機科學與技術專業本科生教材,也可作為成人教育教材和全國計算機等級考試(四級)參考書。
前
第1章計算機系統結構的相關概念
1.1系統結構的有關術語
1.1.1計算機系統的層次結構
1.1.2計算機系統結構
1.1.3計算機組織和計算機實現
1.1.4計算機系統結構的分類
1.2系統結構發展的因素
1.2.1存儲程序計算機系統結構及其發展
1.2.2軟件對系統結構的影響
1.2.3應用對系統結構的影響
1.2.4器件對系統結構的影響
1.2.5系統結構的生命周期
1.3定量分析技術
1.3.1系統設計的定量原理
1.3.2性能評價標準
1.3.3成本與價格
1.4系統結構中并行性的發展
1.4.1并行性的概念
1.4.2提高并行性的技術途徑
1.4.3單處理機系統中并行性的發展
1.4.4多處理機系統中并行性的發展
1.4.5并行處理機的系統結構類型
1.4.6圖形處理器
小結
習題
第2章時間并行技術
2.1流水線技術
2.1.1流水線的基本概念
2.1.2流水線的表示方法
2.1.3流水線的特點
2.2流水線的性能指標
2.2.1流水線的吞吐率
2.2.2流水線的加速比
2.2.3流水線的效率
2.2.4流水線的段數
2.3流水線的結構相關和數據相關
2.3.1流水線的結構相關
2.3.2流水線的數據相關
2.4流水線的控制相關
2.4.1控制相關的概念
2.4.2條件分支對流水線的影響
2.4.3靜態分支技術
2.4.4動態分支預測技術
2.4.5流水線處理機的中斷處理
小結
習題
iv計算機系統結構目錄v第3章指令級并行技術
3.1指令級并行的概念
3.1.1并行性的有關術語
3.1.2多指令流出:指令級并行度
3.2數據相關及其處理技術
3.2.1數據相關類型
3.2.2寄存器重命名
3.2.3靜態指令調度
3.2.4動態指令調度
3.3超標量流水處理機
3.3.1超標量流水線的發射策略
3.3.2典型處理機結構
3.3.3超標量流水處理機性能
3.4超流水線處理機
3.4.1超流水線處理機時空圖
3.4.2典型處理機結構
3.4.3超流水線處理機性能
3.5超標量超流水線處理機
3.5.1指令執行時空圖
3.5.2典型處理機結構
3.5.3超標量超流水線處理機性能
3.6超長指令字處理機
3.6.1超長指令字處理機的特點
3.6.2VLIW處理機的結構模型
3.6.3典型處理機結構
3.7多線程與超線程處理機
3.7.1指令級并行與線程級并行
3.7.2同時多線程結構
3.7.3超線程處理機結構
小結
習題
第4章多處理機
4.1互連網絡的相關概念
4.1.1互連網絡的功能和特征
4.1.2互連網絡的描述工具
4.1.3互連網絡的特性參數
4.2互連網絡的結構
4.2.1靜態互連網絡
4.2.2動態互連網絡
4.3多處理機的特點和分類
4.3.1多處理機的特點
4.3.2多處理機的分類
4.4SMP的系統結構和實例
4.4.1SMP的基本概念
4.4.2SMP的一般結構
4.4.3Origin 2000系統
4.4.4IBM大型機SMP
4.4.5容錯計算機系統Stratus
4.5多處理機的Cache一致性
4.6多處理機操作系統
4.7多處理機中程序并行性的開發
4.7.1程序并行性的分析
4.7.2并行程序設計
小結
習題
第5章超級計算機
5.1超級計算機的相關概念
5.1.1超級計算機的定義
5.1.2超級計算機的評價指標
5.1.3超級計算機相關技術——機群
5.2超級計算機的發展
5.2.1超級計算機系統結構的發展
5.2.2超級計算機運算速度的變化
5.2.3超級計算機操作系統的變化
5.2.4超級計算機使用的互連技術
5.2.5中國超級計算機的發展
5.3世界超級計算機前三強介紹
5.3.1天河二號(Tianhe2)
5.3.2泰坦(Titan)
5.3.3紅杉(Sequoia)
5.4超級計算機的未來發展趨勢
小結
習題
vi計算機系統結構第6章倉庫級計算機
6.1倉庫級計算機的相關概念
6.1.1倉庫級計算機的定義
6.1.2倉庫級計算機與超級計算機、數據中心的區別
6.2倉庫級計算機的設計原則
6.3倉庫級計算機的體系結構
6.3.1層次化的存儲體系
6.3.2可伸縮的網絡組織
6.4倉庫級計算機的性和可用性
6.4.1可用性的重新定義
6.4.2性對可用性的影響
6.4.3故障與容錯
6.5倉庫級計算機的能耗與散熱
6.5.1能耗與能量效率
6.5.2散熱方案設計
6.6倉庫級計算機的建設與維護
6.6.1CAPEX成本
6.6.2OPEX成本
小結
習題
第7章云計算構架
7.1云計算的相關概念
7.2云計算與機群、網格計算的區別
7.3云計算的服務模式
7.3.1基礎設施即服務(IaaS
7.3.2平臺即服務(PaaS
7.3.3軟件即服務(SaaS
7.4云計算應用實例
7.4.1IaaS實例AWS
7.4.2PaaS實例 GAE
7.4.3SaaS實例 Salesforce
7.5云計算數據中心網絡的設計
7.5.1數據中心互連網絡的特征
7.5.2基于FatTree(胖樹)互連網絡的數據中心
7.5.3基于BCube的互連網絡的數據中心
7.6云計算中的并行處理框架
7.6.1并行編程模型MapReduce
7.6.2數據分布存儲 GFS
7.6.3分布式數據的管理 BigTable
7.7開放式的分布式架構Hadoop
7.7.1Hadoop簡介
7.7.2并行編程模型MapReduce
7.7.3分布式文件系統HDFS
7.7.4分布式數據管理工具 HBase
7.7.5數據倉庫工具Hive
7.7.6分布式鎖設施Zookeeper
小結
習題
術語索引
參考文獻
"第1章計算機系統結構的相關概念
本章介紹計算機系統的有關術語,計算機系統結構與技術的關系,系統結構的定量分析技術,系統結構的并行性發展。重點是:①計算機系統的層次結構、計算機系統結構、計算機組織、計算機實現三者的定義及其關系;②透明性、局部性原理、MIPS和MFLOPS定義;③Amdahl定律;④CPU性能公式。
1 1系統結構的有關術語[1]1 1 1計算機系統的層次結構現代計算機系統是硬件、固件和軟件組成的十分復雜的系統。為了對這個系統進行描述、分析、設計和使用,人們從不同的角度提出了觀察計算機的觀點和方法。其中常用的一種方法,就是從機器語言的角度出發,把計算機系統按功能劃分成多級層次結構,如圖1 1所示。
圖1 1計算機系統的多級層次結構
計算機的語言可分成一系列的層次級,最內層級語言的功能最簡單,最外層級語言的功能最強。對于用某一層級語言編寫程序的程序員來說,他一般不管其程序在機器中是如何執行的,只要程序正確,他就能得到預期的結果。這樣,對這層語言的程序員來說,他似乎有了一種新的機器,這層語言就是這種機器的機器語言,該機器能執行用該層語言編寫的全部程序。因此,計算機系統就可以按語言的功能劃分成多層次結構,每一層以一種不同的語言為特征。
最內層的L0級是硬聯邏輯級。這一級由門、觸發器等邏輯電路組成,它是由邏輯設計員采用布爾語言設計的硬件內核。
L1級是微程序機器級。這一級的機器語言是二進制編碼的微指令集。程序員用微指令編寫的微程序由固件/硬件來解釋實現。L1級的機器語言是二進制語言。
L2級是傳統機器級。這一級的機器語言是機器指令集。程序員用機器指令集編寫的程序可以由L1級微程序進行解釋,也可直接采用L0級硬聯邏輯進行解釋。這個解釋程序運行在L1級上。
計算機系統結構第1章計算機系統結構的相關概念L3級是操作系統虛擬機。這一級機器語言中的多數指令是傳統機器級指令。此外還提供操作系統級指令,如打開文件、讀/寫文件、關閉文件等指令。用這一級語言編寫的程序,若與L2級指令相同則由微程序解釋,而操作系統級指令則由操作系統進行解釋。操作系統是運行在L2級上的解釋程序。
L4級是匯編語言虛擬機。這一級的機器語言是匯編語言。用匯編語言編寫的程序,首先翻譯成L3級和L2級語言,然后再由相應的機器執行。完成匯編語言翻譯的程序稱作匯編程序。
L5級是高級語言虛擬機。這一級的機器語言是各種高級語言。目前高級語言已有上百種,如C、C++、FORTRAN等。用這些語言所編寫的程序一般由稱為編譯程序的翻譯程序翻譯到L4級或L3級上。個別高級語言如BASIC編寫的程序采用解釋的方法實現,即用解釋程序翻譯到L4級或L3級。
最外層的L6級是應用語言虛擬機。這一級是為使計算機滿足某種用途而專門設計的,因此這一級語言就是各種面向問題的應用語言。為此可以設計專門用于人工智能、教育、管理、計算機設計等領域的虛擬機,這些虛擬機也是當代計算機應用領域的重要研究課題。用應用語言編寫的程序一般由應用程序包翻譯到L5級上。
由上面的敘述我們可以強調:
(1 計算機語言是由低級(內核)向高級(外層)發展的,高一級語言的語句相對于低級語言功能更強,更便于應用,但都是以低級語言為基礎來支撐的。
(2 L3級以上由軟件實現。由軟件實現的機器我們稱為虛擬機器,以區別于由硬件/固件實現的實際物理機器。
(3 編譯和解釋是機器語言實現的兩種基本技術。它們的相同點是:都以執行一串L級指令來實現L+1級指令。但是二者的差別是:編譯程序是先把L+1級程序全部變換成L級程序后,再去執行新產生的L級程序,在執行過程中L+1級程序不再被訪問。而解釋程序是每當一條L+1級指令被譯碼后,就直接去執行一串等效的L級指令,然后再去取下一條L+1級的指令,依次重復進行。因此解釋過程是邊變換邊執行的過程。在實現新的虛擬機器時,這兩種技術都被廣泛使用。一般來說,解釋執行比編譯執行花的時間多,但占用存儲空間較小。
1 1 2計算機系統結構
計算機系統結構(compute architecture)一詞也譯成計算機體系結構,目前作為專用術語被廣泛使用。其經典定義是1964年Amdahl在介紹IB 360系統時提出的:計算機系統結構是程序員所看到的計算機屬性,即概念性結構與功能屬性。
按照計算機系統的多級層次結構,不同級程序員所看到的計算機具有不同的屬性。例如,傳統機器級程序員所看到的計算機主要屬性是該機指令集的功能特性,而高級語言虛擬機程序員所看到的計算機主要屬性是該機所配置的高級語言所具有的功能特性。顯然,不同的計算機系統,從傳統機器級或匯編語言程序員的角度來看,具有不同的屬性。但是從高級語言(如C語言)程序員看,它們就幾乎沒有什么差別,具有相同的屬性。換句話說,這些傳統機器級所存在的差別對高級語言程序員來說是"看不見"的,也是他們不需要知道的。在計算機技術中,對這種本來存在的事物或屬性,但從某種角度看又好像不存在的概念稱為透明性。通常,在一個計算機系統中,低層機器的屬性對高層機器的程序員往往是透明的,如傳統機器級的概念性結構和功能特性,對高級語言程序員來說是透明的。由此看出,在層次結構的各個級上都有它的系統結構。
為了不使概念具有多義性,計算機系統結構通常定義為:機器語言程序員所看到的傳統機器級所具有的屬性,它包含概念性結構和功能特性兩個方面。這些屬性是機器語言程序設計者(或者編譯程序生成系統)為使其所設計(或生成)的程序能在機器上正確運行,所需遵循的計算機屬性。對通用寄存器型機器來說,這些屬性主要是指:
(1 數據表示(硬件能直接識別和處理的數據類型);
(2 尋址規則(最小尋址單元、尋址方式及其表示);
(3 寄存器定義(各種寄存器的定義、數據及使用方式);
(4 指令集(機器指令的操作類型和格式、指令間的排序和控制機構);
(5 中斷系統(中斷類型、中斷響應硬件的功能等);
(6 機器工作狀態的定義和切換(如管態和目態等);
(7 存儲系統(主存容量、程序員可用的較大存儲容量等);
(8 信息保護(信息保護方式、硬件對信息保護的支持);
(9 I/O結構(I/O連接方式、處理機/存儲器與I/O設備間數據傳送的方式和格式、I/O操作的狀態等)。
上述屬性是計算機系統中由硬件或固件完成的功能,程序員在了解這些屬性后才能編出在傳統機器級上正確運行的程序。因此,計算機系統結構概念的實質是確定計算機系統中軟硬件的界面,界面之上是軟件的功能,界面之下是硬件和固件的功能。
1 1 3計算機組織和計算機實現
計算機系統結構、計算機組織(compute organization)、計算機實現(compute implementation)是三個不同的概念。它們各自包含不同的內容,但又有緊密的關系。
計算機系統結構是指計算機系統的軟、硬件的界面,即機器語言程序員所看到的傳統機器級所具有的屬性。
計算機組織是指計算機系統結構的邏輯實現,包括物理機器級內的數據流和控制流的組成以及邏輯設計等。它著眼于物理機器級內各事件的排序方式與控制方式,各部件的功能以及各部件的聯系。計算機組織也被譯成計算機組成。
計算機實現是指計算機組成的物理實現,包括處理機、主存等部件的物理結構,器件的集成度和速度,模塊、插件、底板的劃分與連接,信號傳輸,電源、冷卻及整機裝配技術等。它著眼于器件技術和微組裝技術,其中器件技術在實現技術中占主導作用。
下面舉例說明計算機系統結構、計算機組織、計算機實現三者之間的區別。
例1 (1 機器指令集的確定屬于計算機系統結構。
2 指令的實現,如取指令、取操作數、運算、送結果等具體操作及其排序方式屬于計算機組織。
3 實現指令集中所有指令功能的具體電路、器件的設計、裝配技術等屬于計算機實現。
例1 (1 確定是否有乘法指令屬于計算機系統結構。
(2 乘法指令是用專門的乘法器實現,還是經加法器用重復的相加和右移操作來實現,屬于計算機組織。
(3 乘法器、加法器的物理實現,如器件的選定(器件集成度、類型、數量、價格)及所用微組裝技術等,屬于計算機實現。
例1 (1 主存容量與編址方式(按位、按字節、按字訪問等)的確定屬于計算機系統結構。
(2 為達到所定性能價格比,主存速度應多快,在邏輯結構上需采用什么措施(如多體交叉存儲等)屬于計算機組織。
(3 主存系統的物理實現,如存儲器器件的選定、邏輯電路的設計、微組裝技術的選定屬于計算機實現。
可以看出,具有相同計算機系統結構(如指令系統相同)的計算機因為速度要求不同等因素可以采用不同的計算機組織。例如,取指令、譯碼、取操作數、運算、存結果可以在時間上按順序方式進行,也可以讓它們在時間上按重疊方式進行以提高執行速度。
同樣,一種計算機組織可以采用多種不同的計算機實現。例如,主存器件可以采用SRAM芯片,也可以采用DRAM芯片。可以采用大規模集成電路單個芯片,也可以采用中小規模集成電路進行構建。顯然,這取決于性能價格比的要求與器件技術的現狀。
1 1 4計算機系統結構的分類
研究計算機系統分類方法有助于人們認識計算機的系統結構和組織的特點,理解系統的工作原理和性能。
通常把計算機系統按其性能與價格的綜合指標分為巨型、大型、中型、小型、微型、單片機等。但是隨著科學技術的進步,各類計算機的性能指標都在不斷進步,以至于過去的一臺大型機的性能還比不上今天的一臺微型機;而用過去一臺大型機的價錢,今天卻能買一臺性能指標高許多倍的新式大型機。可見,按巨、大、中、小、微、單來劃分的性能標準是隨時間而變化的。
按用途分類,計算機系統可分為科學計算、事務處理、實時控制、家用等。一般說來,計算機都是作為通用系統進行設計的,但是在用戶編寫程序時,卻都帶有專用性質。為了解決這個矛盾,采取的辦法有:靈活地改變系統配置;適應特殊環境要求采取不同的物理安裝;增加處理不同數據結構的能力;提供多種語言和操作系統以適應不同的需要。
按處理機個數分,計算機系統可分為單處理機、多處理機;按種類分有標量處理機、超標量處理機、超流水處理機、向量處理機、陣列處理機、對稱多處理機、大規模并行處理機、機群系統等。
下面從計算機系統結構的并行性能出發,介紹兩種常用的分類方法。
1 Flynn分類法
1966年M.J.Flynn按照指令流(instructio stream)和數據流(dat stream)的不同組織方式,把計算機系統的結構分為以下4類:
1 單指令流單數據流SISD(singl instructio strea singl datastream);
2 單指令流多數據流SIMD(singl instructio strea multipl datastream);
3 多指令流單數據流MISD(multipl instructio strea singl datastream);
4 多指令流多數據流MIMD(multipl instructio strea multipl datastream)。
圖1 2Flynn分類法的4類機器結構圖1 2所表示的是這4類計算機的基本結構框圖。SISD是傳統的順序處理計算機。SIMD以陣列處理機為代表。MISD在實際中代表何種計算機,存在著不同的看法,有的文獻把流水線結構的機器看成是MISD結構。MIMD的代表是多處理機。
2 Hndler分類法
1977年,Hndler根據并行度和流水線提出了另一種分類法。這種分類方法把計算機的硬件結構分成3個層次,并分別考慮它們的可并行流水處理程度。這3個層次是:處理控制器PCU、算術邏輯部件ALU(或運算部件PE)和位級電路BLC。其中位級電路相當于在ALU中要進行1位運算時所需的基本邏輯電路。
這樣,一個計算機系統可用3對整數來表示:
T(系統型號)=〈kk′,dd′,ww′〉
式中:k為處理控制器PCU的數目;k′為可組成流水線的PCU數目;d為每個PCU所控制的ALU(或PE)"
需要組成原理的基礎才方便閱讀
滿意
好
滿意