計算機組成與體系結構

計算機系統組成

計算機硬體的組成

控制器

控制器是分析和執行指令的部件,也是統一指揮並控制計算機各部件協調工作的中心部件,所依據的是機器指令。

程式計數器PC:儲存下一條要執行指令的地址

指令暫存器IR:儲存即將執行的指令

指令譯碼器ID:對指令中的操作碼欄位進行分析解釋

時序部件:提供時序控制訊號

運算器

運算器也稱為算術邏輯單元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各種算術運算和邏輯運算。

算術邏輯單元ALU:資料的算術運算和邏輯運算

累加暫存器AC:通用暫存器,為ALU提供一個工作區,用在暫存資料

資料緩衝暫存器DR:寫記憶體時,暫存指令或資料

狀態條件暫存器PSW:存狀態標誌與控制標誌(爭議點:也有將其歸為控制器的)

主儲存器

主儲存器也稱為記憶體儲器(通常簡稱為“記憶體”或“主存”)。儲存現 場操作的資訊與中間結果,包括機器指令和資料。

輔助儲存器

輔助儲存器也稱為外儲存器,通常簡稱為外存或輔存。儲存需要長期儲存的各種資訊。

輸入裝置

輸入裝置的任務是把人們編好的程式和原始資料送到計算機中去,並 且將它們轉換成計算機內部所能識別和接受的資訊方式。常見的輸入裝置有鍵盤、 滑鼠、掃描器等

輸出裝置

輸出裝置的任務是將計算機的處理結果以人或其他裝置所能接受的 形式送出計算機。目前,最常用的輸出裝置是印表機和顯示器。

計算機系統結構的分類

單指令流單資料流(Single Instruction stream and Single Data stream,SISD)

單指令流多資料流(Single Instruction stream and Multiple Data stream,SIMD)

多指令流單資料流(Multiple Instruction stream and Single Data stream,MISD)

多指令流多資料流(Multiple Instruction stream and Multiple Data stream,MIMD)

指令流:指機器執行的指令序列

資料流:指由指令流呼叫的資料序列,包括輸入資料和中間結果,但不包括輸出資料

複雜指令集系統與精簡指令集系統

複雜指令系統計算機(Complex Instruction Set Computer,CISC)

增強指令的功能,設定一些功能複雜的指令,把一些原來由軟體實現的、常用的功能改用硬體的指令系統來實現。其特點如下:

指令數量眾多

指令使用頻率相差懸殊

支援很多種定址方式

變長的指令

指令可以對主存單元中的資料直接進行處理

以微程式控制為主

精簡指令系統計算機(Reduced Instruction Set Computer,RISC)

儘量簡化指令功能,只保留那些功能簡單,能在一個節拍內執行完成指令,較複雜的功能用一段子程式來實現。其特點如下:

指令數量少

指令的定址方式少

指令長度固定

以硬佈線邏輯控制為主

單週期指令執行,採用流水線技術

最佳化的編譯器:RISC 的精簡指令集使編譯工作簡單化

CPU 中的通用暫存器數量多,一般在 32 個以上,有的可達上千個

匯流排

地址匯流排:用來傳送地址資訊

資料匯流排:用來傳送資料資訊

控制匯流排:用來傳送各種控制訊號

儲存器系統

傳統的儲存器系統一般分為高速緩衝儲存器(Cache)、主存、輔存三級

主儲存器

主存可由 CPU 直接訪問,存取速度快,但容量較小,一般用來存放當前正在執行的程式和資料。

輔助儲存器

輔存設定在主機外部,它的儲存容量大,價格較低,但存取速度較慢,一般用來存放暫時不參與執行的程式和資料,CPU 不可以直接訪問輔存,輔存中的程式和資料在需要時才傳送到主存,因此它是主存的補充和後援。

磁碟訪問時間(存取時間) = 尋道時間+旋轉延遲時間

Cache儲存器

當 CPU 速度很高時,為了使訪問儲存器的速度能與 CPU 的速度相匹配,又在主存和 CPU 間增設了一級 Cache。Cache 的存取速度比主存更快,但容量更小,用來存放當前最急需處理的程式和資料,以便快速地向 CPU 提供指令和資料。

當Cache產生了一次訪問未命中之後,相應的資料應同時讀入CPU和Cache。但是當Cache已存滿資料後,新資料必須替換(淘汰)Cache中的某些舊資料。最常用的替換演算法有以下三種:

隨機演算法。這是最簡單的替換演算法。隨機法完全不管 Cache 塊過去、現在及將來的使用情況,簡單地根據一個隨機數,選擇一塊替換掉。

先進先出(First In and First Out,FIFO)演算法。按調入 Cache 的先後決定淘汰的順序,即在需要更新時,將最先進入 Cache 的塊作為被替換的塊

近期最少使用(Least Recently Used,LRU)演算法。LRU 演算法是把 CPU 近期最少使用的塊作為被替換的塊

流水線

流水線技術把一個任務分解為若干順序執行的子任務,不同的子任務由不同的執行機構負責執行,而這些機構可以同時並行工作。在任一時刻,任一任務只佔用其中一個執行機構,這樣就可以實現多個任務的重疊執行,以提高工作效率。

流水線執行時間=第1條指令的執行時間+(n-1)*流水線週期

流水線的吞吐率(Though Put rate,TP)是指在單位時間內流水線所完成的任務數量或輸出的結果數量。TP=任務數n/完成n個任務所用的時間

完成同樣一批任務,不使用流水線所用的時間與使用流水線所用的時間之比稱為流水線的加速比