二、下面我們根據課程大綱,大致過一遍組成原理
1. 計算機的組成
計算機的三大件 :cpu、記憶體、主機板
(1)cpu(**處理器)
計算機最核心的配件,負責所有的計算。
(2)記憶體
你編寫的程式、執行的遊戲、開啟的瀏覽器都要載入到記憶體中才能執行,程式讀取的資料、計算的結果也都在記憶體中,記憶體的大小決定了你能載入的東西的多少。
(3)主機板
存放在記憶體中資料需要被cpu讀取,cpu計算完成後,還要把資料寫入到記憶體中,然而cpu不能直接插在記憶體上,這就需要主機板出馬了,主機板上很多個插槽,cpu和記憶體都是插在主機板上,主機板的晶元組和匯流排解決了cpu和記憶體之間的通訊問題,晶元組控制資料傳輸的流轉,決定資料從**流向**,匯流排是實際資料傳輸的告訴公里,匯流排速度決定了資料的傳輸速度。
(4)輸入/輸出裝置
其實有了以上三大件之後,計算機就可以跑起來了。我們日常使用的話還需要鍵盤、滑鼠、顯示器等輸入/輸出裝置,而很多雲伺服器通過ssh遠端登入就可以訪問,就不需要配顯示器、滑鼠、鍵盤這些東西,節省成本且方便維護。
(5)硬碟
有了硬碟資料才能長久的儲存下來,大部分還會給自己的機器配上機箱和風扇,解決灰塵和散熱問題,不過這些也不是必須的,用紙板和電風扇替代也一樣可以用。
(6)顯示卡
顯示卡裡有gpu圖形處理器,主要負責圖形渲染,使用圖形介面作業系統的計算機,顯示卡是必不可少的。現在的主機板都帶了內建的顯示卡,如果想玩遊戲、做圖形渲染,一般需要一張單獨的顯示卡,插在主機板上。
2. 馮·諾依曼體系
現代計算機的硬體基礎架構都是依賴於馮諾依曼提出的馮諾依曼體系結構,現代計算機的核心架構可以抽象為五個基礎元件:運算器、控制器、儲存器、輸入裝置和輸出裝置。
具體到現代計算機,運算器和控制器組成了現代計算機的cpu,儲存器對應著記憶體和硬碟,主機板控制著cpu、記憶體、硬碟、輸出/輸出裝置之間的通訊。
馮諾依曼體系結構也叫做儲存程式計算機,即可程式設計、可儲存的計算機。
任何一台計算機的任何乙個部件都可以歸到運算器、控制器、儲存器、輸入裝置和輸出裝置中,而所有的現代計算機也都是基於這個基礎架構來設計開發的。
馮諾依曼體系結構確立了我們現代計算機的硬體基礎架構,學習計算機組成原理,就是學習和拆解馮諾依曼體系。
學習組成原理,就是學習以下內容:
(1)cpu(運算器+控制器)怎麼工作,為什麼這麼設計;
記憶體和硬碟的工作原理;
(2)cpu是怎麼和記憶體、硬碟、輸入裝置、輸出裝置通訊的;
(3)從電路這樣的硬體到最終開發給軟體的介面是怎麼運作的,為什麼要這麼設計,以及在軟體開發層面怎麼盡可能的用好它;
3. 計算機組成原理學習大綱
計算機組成原理知識地圖
學習大綱:
計算機的基本組成:馮諾依曼體系結構的五大基本元件:運算器、控制器、儲存器、輸入裝置和輸出裝置;計算機的兩個核心指標:效能和功耗。
計算機的指令和計算:高階語言是怎麼跑起來的,怎麼通過編譯器和彙編器變成機器指令的;作業系統怎麼鏈結、裝載、執行程式的;指令的執行是怎麼控制的(控制器)。
運算器,資料在計算機中的表示(二進位制和編碼);計算機是怎麼實現加法、乘法等基本運算功能的。
cpu的設計:我們為什麼需要cpu時鐘;暫存器和記憶體怎麼組成的;整個計算機的資料通路是如何構造的;cpu的流水線設計;資料和控制冒險;分支**;cpu的異常和中斷機制;指令的並行執行;cpu怎麼通過simd來支援平行計算。
儲存器的原理:cpu快取記憶體、記憶體、ssd硬碟和機械硬碟的工作原理,及它們之間的效能差異;cpu和儲存器之間怎麼通訊的;什麼是io_wait;如何通過dma提公升程式效能;如何保證儲存器裡的資料不丟失;如何通過raid、erasure code、ecc、hdfs,這些不同的技術來確保資料的完整性和訪問效能。
總結:
計算機組成原理是整個電腦科學的綱要,這門課程的很多知識點深挖下去都會變成乙個核心課程。
例如:計算是怎麼實現的,對應著數位電路課程。
cpu和儲存器系統的優化,對應著計算機體系結構課程。
程式通過編譯器和彙編器變成機器指令的編譯過程,對應著編譯原理課程。
作業系統是怎麼鏈結、裝載、執行程式的,對應著作業系統課程。
1. 效能
衡量計算機的效能,主要有兩個指標:響應時間和吞吐率。
吞吐率:就是一定時間內,到底能處理多少資料和指令,處理的越多,效能就越好。
我們一般把效能定義為響應時間的倒數,也就是:效能 = 1 / 響應時間
響應時間也就是cpu執行我們程式的時間,我們對時間這個指標進行拆解,把程式的cpu執行時間變成cpu時鐘週期數和時鐘週期時間的乘積。
程式的cpu執行時間 = cpu時鐘週期數 x 時鐘週期時間
程式的cpu執行時間 = 指令數 x 每條指令的平均時鐘週期數 x 時鐘週期時間
所以優化效能,就要從這三者入手了:
指令數:代表執行我們的程式到底需要多少條指令,一般都是編譯器去做。
每條指令的平均時鐘週期數,就是執行一條指令需要的cpu週期數。
時鐘週期時間,也就是計算機主頻,摩爾定律就在提高我們計算機的主頻,例如:主頻為2.8ghz,簡單理解就是1秒鐘可以執行2.8g條指令。
2. 功耗
從上面可以看出,想要提公升效能,可以通過減少響應時間的方法來提公升,減少響應時間又有三條路可以走:減少指令數、減少週期數、提公升主頻。
過去相當長的時間裡,工程師們都在目光集中在提公升計算機主頻,在cpu中增加電晶體密度,提公升電晶體「開啟」和「關閉」的速度,這兩者都會帶來耗電和散熱的問題。
cpu的功耗 = 1/2 x 負載電容 x 電壓的平方 x 開關頻率 x 電晶體數量
為了平衡效能和功耗,工程師們想盡辦法把電晶體的製程從28nm縮小到7nm,讓cpu中可以更多電晶體,同時呢又降低電壓,這讓我們的cpu效能也一直提公升。
但是,這種做法終有極限,所以工程師們又開始通過提公升吞吐率來提公升效能,而不是響應時間,所以我們現在的cpu慢慢的由單核發展成了2核、4核、8核的cpu,讓更多的核心同時工作,通過並行來提公升效能。
總結
加速大概率事件
通過流水線提公升效能,把cpu指令執行進行合理的拆分、細化。
通過**提公升效能,提前**下一步做什麼,提前進行響應的操作。
3. 計算機指令
從軟體層面看,cpu就是乙個執行各種計算機指令的機器,計算機指令就是指計算機能聽懂的語言,我們把它叫做機器語言。
不同的cpu由於架構不同,能聽懂的語言也不同,也擁有不同的計算機指令集。
也就是說,cpu不同->指令集不同->機器語言不同->組合語言不同
那麼,我們平常用的高階語言是怎麼變成機器語言的呢?
高階語言,需要編譯成組合語言,然後通過彙編器翻譯成機器**,才能讓cpu去執行。
計算機組成原理cu 計算機組成原理 計算機概論
現代計算機樣式千奇百怪,常見的有我們的筆記本,台式電腦,也有各種伺服器 手機 攝像頭等都屬於計算機範疇。計算機包含我們看得見摸得著的計算機實體,稱為計算機硬體,如cpu 記憶體 各種掛接裝置等 還有我們看不見摸不著的軟體,它支援著硬體按照我們的預想在操作,包括系統軟體和應用軟體 計算機硬體樣式千奇百...
計算機組成原理
1計算機系統概論 1.1 計算機簡介 計算機由 硬體 和 軟體 組成。硬體 是看得見摸得著的各種電子元器件,各類光,電,機裝置的實物組成,如主機,外設等等。軟體 是看不見摸不著,由人們事先編製成具有各類特殊功能的資訊組成。計算機的三層結構 高階語言 組合語言 機器語言 微指令系統。計算機組成與計算機...
計算機組成原理
1.加法器是如何計算不同型別變數的加法的 分析 加法器的功能就是計算而已,其有兩個輸入端,當兩個輸入端都有資料時,其就進行計算並將結果輸出。輸入到加法器的兩端的資料格式是統一的 可能都是有符號的補碼形式 這就是說,各種型別的變數相加,這些變數在進入加法器輸入端之前,程式都會根據其型別將其轉換為輸入端...