考研複習:計算機組成原理(一)
1.1計算機的分類和其特性
計算機通常分為三類:個人計算機 伺服器 嵌入式計算機
個人計算機:給單個使用者提供服務
伺服器:給多個使用者執行大型程式提供服務
嵌入式計算機:嵌入到其它裝置中的計算機 執行已經預定的一個或者一組程式
1.2後PC時代
個人移動裝置PMD : 智慧手機 平板電腦等
1.3
在20世界六七十年代 限制計算機效能的主要是記憶體
多核微處理器:在一個積體電路上面有多個核的微處理器
一個程式的效能主要取決於:1.演算法 2.編譯程式 3.計算機執行的機器指令的有效性
2 計算機系統結構的八個偉大思想
2.1 面向摩爾定律的設計
摩爾定律 每隔18-24個月 積體電路上的晶片數目將翻一番
2.2 使用抽象化設計
上層只能看到下層的抽象模型 而看不到細節
2.3 並行
計算機並行操作
2.4 流水線
並行的一種特例
2.5 預測
在預測錯誤的情況下代價不大且預測準確率較高的情況下采用預測
2.6 儲存器層次
小而快的再上 大而慢的在下
2.7 使用冗餘
新增冗餘部件 提高系統的可靠性
2.8 加速大概率事件
加速大概率事件遠比優化小概率事件效果大
3 程式概念入門
應用軟體 系統軟體 硬體
系統軟體最重要的是:作業系統 和 編譯程式
作業系統:使用者軟體和硬體之間的介面 為使用者提供各種服務和監控功能
作業系統的主要作用:處理簡單的輸入和輸出 分配記憶體和外存 為多個應用程式提供共享計算機資源的服務
作業系統:為了使程式更好的在計算機上允兒而管理計算機資源的監控程式
編譯程式:將高階語言編譯成計算機可以理解並服從的機器語言的程式
4 硬體概念入門
5大經典部件:輸入 輸出 儲存器 運算器 控制器
運算器和控制器並稱 處理器(CPU)
處理器從儲存器獲取指令和資料
輸入將資料傳入儲存器 輸出從儲存器中取資料
控制器向資料通路 儲存器 輸入 輸出部件傳送指令訊號
任何一臺計算機的基礎硬體都要完成:輸入資料 輸出資料 處理資料 儲存資料
積體電路:也叫晶片 一種將幾十個乃至幾百萬個電晶體連線起來的裝置
中央處理單元(Central process unit): CPU 也叫作處理器 包括了資料通路(運算器)和控制器
資料通路:處理器中負責邏輯運算的部分
控制器:處理器中根據程式指令指揮資料通路 儲存器 和I/O裝置的部分
DRAM:dynamic random access memory 動態隨機訪問儲存器
記憶體:由多個DRAM拼合而成 用於儲存執行中的程式 和 執行中的程式所需要的資料
處理器(cpu)的內部採用另外一種儲存裝置:快取(cache)
快取:SRAM技術 比DRAM更快但是整合度更低 靜態隨機訪問儲存器
快取小而快作為記憶體的緩衝
指令集體系結構:也叫作體系結構 是低層次軟體和硬體建的抽象介面 包含了需要編寫正確執行的機器語言所需要的全部資訊 包含指令 暫存器 儲存訪問 和 I/O
應用二進位制介面:使用者部分的指令加上應用程式設計師呼叫的作業系統介面,定義了二進位制層次可移植的計算機標準
易失性儲存:DRAM 僅在加電時候儲存資料
非易失性儲存:在啊掉電視仍可以儲存資料的儲存器
易失性儲存也叫作主存 非易失性儲存器叫做二級儲存器
二級儲存器形成了儲存器層次下面更低的層次
磁碟:也叫硬碟(hard disk) 用來儲存資料的非易失性儲存器
快閃記憶體:非易失性半導體記憶體 價格 效能均介於DRAM與硬碟之間
5 處理器與儲存器的製造技術
電晶體:一種由電訊號控制的簡單開關
超大規模積體電路:由數十萬到數百萬的電晶體組成的電路
6 效能
響應時間:也叫作執行時間 是計算機完成某任務所需的總時間 包括硬碟訪問 記憶體訪問 IO活動 作業系統開銷和CPU執行時間
吞吐率:也叫作頻寬 表示了 單位時間內完成的任務數量
凡是影響響應時間的都會影響吞吐率 而在任務量過大,處理速率慢而導致排隊的情況下 吞吐率會影響響應時間
效能最大化:響應時間最小化 效能 = 1/ 響應時間
6.2 效能的度量
CPU執行時間:簡稱CPU時間 執行某一任務而在CPU上花費的時間
CPU執行時間又包括了:使用者CPU時間 系統CPU時間
使用者CPU時間:在程式本身所花費的CPU時間
系統CPU時間:為執行程式而花費在作業系統上的CPU時間
系統性能:空載系統的響應時間
CPU效能:表示使用者的CPU事件
計算機都採用時鐘來驅動硬體中發生各種事情
時鐘的間隔時間被稱為時鐘週期,時鐘週期的倒數就是時鐘頻率,時鐘週期通常為常數
時鐘長度:每個時鐘週期持續的時間長度
6.3 CPU效能及其影響因素
一個程式的CPU執行時間 = 一個程式的CPU時鐘週期數 * 時鐘週期時間
6.4 指令的效能
每條指令需要的時鐘週期數的平均值 被稱為 CPI
CPU時鐘週期數 = 指令數 * CPI
一個程式的CPU執行時間 = 一個程式的指令數 * CPI * 時鐘週期時間
10 謬誤與陷阱
MIPS 百萬條指令執行所需時間 MIPS表示的執行速度
MIPS = 指令數 / (執行時間 * pow(10,6) )
MIPS = 指令數 / (指令數 * CPI * 時鐘週期 * pow(10,6)) = 時鐘頻率 / (CPI * POW(10,6))