????????計算機的實現包括兩個方面:組成和硬件。組成一詞包含了計算機設計的高階內容,例如存儲器系統,存儲器互連,設計內部處理器 CPU (中央處理器——算術、邏輯、分支和數據傳送功能都在內部實現)。有時也用微體系結構一詞來代替“組成”。例如AMD Operon和Intel Core I7是兩個指令集體系結構相同但組成不同的處理器。這兩種處理器都實現X86指令集,但它們的流水線和緩存組成有很大的不同。硬件指的是一個計算機的具體實現,包括計算機的詳盡邏輯設計和封裝技術。
- 計算機體系結構是指計算機的概念性結構和功能屬性。
- 計算機組織是指計算機體系結構的邏輯實現,包括機器內的數據流和控制流的組成以及邏輯設計等(常稱為計算機組成原理)。
- 計算機實現是指計算機組織的物理實現。
一、定義
????????真正的體系結構涵蓋了計算機設計的所有三個方面:指令集體系結構、組成或微體系結構、硬件。計算機架構師設計的計算機必須滿足功能需求,并達到價格、功耗、性能和可用性指標。在涉及到計算機系統結構的知識時,主要按以下金字塔進行學習:
Acceleration,Amdahl
- ? ? ? ? 整個計算機系統結構的總設計目標是為了“快”
- ? ? ? ? 總的設計原理是:加快經常性事件
- ? ? ? ??如何量化加速這一指標:Amdahl 原理
- ? ? ? ??如何衡量CPU性能:CPU性能公式
- ? ? ? ? 程序的局部性原理
Instruction,Interface
? ? ? ? 指令集架構(Instruction Set Architecture, ISA),對于匯編語言程序員或編譯器編寫者可見。ISA包括:1)編程寄存器 2)操作數訪問 3)操作數的類型和大小 4)指令集 5)尋址模式 6)指令編碼
????????ISA 是硬件與軟件之間的連接點。任何在內存里執行的程序都將通過 ISA 進行解耦從而能在底層架構上執行。整個計算機體系機構和抽象層如下:
Processing,Parallel
? ? ? ? 按指令流與數據流進行分類則可以把結構分為:
- SISD:單指令流、單數據流;
- SIMD:單指令流、多數據流;
- MISD:多指令流、單數據流;
- MIMD:多指令流、多數據流;
Storage,System
? ? ? ? 程序局部性原理的存在,以及“在給定實現技術和功率預算的情況下,硬件越小,速度可以越快”的準則,存儲器體系結構便運營而生。
時間局部性(temporal locality):被引用過一次的存儲器位置在未來會被多次引用(通常在循環中)。
空間局部性(spatial locality):如果一個存儲器的位置被引用,那么將來他附近的位置也會被引用。
????????
????????有人可能會問,為什么需要多層次的存儲結構,使用一個理論上無限大的存儲器去完成一些工作不就可以了么?這樣表面上是可以的,但是我們沒有辦法立刻馬上從這樣一個十分龐大的存儲器中得到我們想要的機器字。我們不得不去構建分層的結構存儲器,每一層的容量都要大于前一層,但訪問速度也要慢一些。當前的一大趨勢:存儲器性能和處理器性能之間的差距越來越大。
Network,conNection
? ? ? ? 通過互聯函數來描述設備間的互相連接,既包括計算機內部的連接,也包括計算機之間的連接。主要通過帶寬和延遲兩個指標進行衡量。? ? ? ??
二、基本結構
????????馮·諾依曼在研究EDVAC機時提出了“存儲程序”的概念,“存儲程序”的思想奠定了現代計算機的基本結構,以此概念為基礎的各類計算機通稱為馮·諾依曼機,其特點如下:
- 計算機硬件系統由運算器、存儲器、控制器、輸入設備和輸出設備5大部件組成。
- 指令和數據以同等地位存儲在存儲器中,并可按地址尋訪。
- 指令和數據均用二進制代碼表示。
- 指令由操作碼和地址碼組成,操作碼用來表示操作的性質,地址碼用來表示操作數在存
- 儲器中的位置。
- 指令在存儲器內按順序存放。通常,指令是順序執行的,在特定條件下可根據運算結果或根據設定的條件改變執行順序。
- 早期的馮·諾依曼機以運算器為中心,輸入/輸出設備通過運算器與存儲器傳送數據。
????????典型的馮·諾依曼計算機結構如圖所示。
????????面隨著微電子技術的進步,同時計算機需要處理、加工的信息量也與日俱增,大量I/O設備的速度和CPU的速度籌距懸殊,因此以運算器為中心的結構不能夠滿足計算機發展的要求。現代計算機已發展為以存儲器為中心,使I/O操作盡可能地繞過CPU,直接在I/O設備和存儲器之間完成,以提高系統的整體運行效率,其結構如圖所示。
三、性能指標
1、Amdahl定律
? ? ? ? 對一個計算機架構進行優化后,我們如何衡量其性能的提升呢?首先定義加速比:對于同一個程序的執行,其加速比為:
? ? ? ? 而Amdahl定律為:
? ? ? ? 其中,代表系統加速比,
表示改進部分的加速比,
表示被改進部分原來的執行時間占原來總執行時間的百分比。
? ? ? ? 當趨近于0時,
趨近于1。說明如果僅對計算機的一部分做出改變,那么對整體性能的提升非常有限。
? ? ? ? ?為了使系統獲得較高的加速比,優化的部分必須占有較大的比例。
?2、CPU性能公式
? ? ? ? 執行一個程序所需要的CPU時間為:執行程序所需要的時鐘周期*時鐘周期時間。
? ? ? ? 我們定義CPI(Cycles Per Instruction)為平均每條指令耗費的時鐘周期數。則CPU時間可表示為:
? ? ? ? 其中,IC為執行的指令條數,T為時鐘周期時間。
? ? ? ? 基于此公式,提升處理器性能的三個思路為:1)減少IC,即較少執行指令的條數,如RISC;2)減少CPI,如CISC;3)較少時鐘周期時間,如提升主頻。
3、性能指標
4、可靠性
????????
? ? ? ? ?我們用MTTF這一指標來衡量可靠性。
? ? ? ? 可用性定義為: