計算機組成原理 知識體系以及基礎知識介紹

2022-05-08 08:03:11 字數 4295 閱讀 9211

女神鎮樓

1、計算機的基本硬體組成===cpu、記憶體和主機板

(1)cpu

計算機最重要的核心配件,叫做**處理器。計算機的所有「計算」都是由 cpu 來進行的。cpu 也是整台計算機中造價最昂貴的部分之一。cpu,一般都被叫作超大規模積體電路(very-large-scale integration,vlsi)。這些電路,實際上都是乙個個電晶體組合而成的。cpu 在計算,其實就是讓電晶體裡面的「開關」不斷地去「開啟」和「關閉」,來組合完成各種運算和功能。

(2)記憶體

程式、開啟的瀏覽器、執行的遊戲,都要載入到記憶體裡才能執行。程式讀取的資料、計算得到的結果,也都要放在記憶體裡。記憶體越大,能載入的東西自然也就越多。存放在記憶體裡的程式和資料,需要被 cpu 讀取,cpu 計算完之後,還要把資料寫回到記憶體。然而 cpu 不能直接插到記憶體上,反之亦然。

(3)主機板

主機板是乙個有著各種各樣,有時候多達數十乃至上百個插槽的配件。cpu 要插在主機板上,記憶體也要插在主機板上。主機板的晶元組(chipset)和匯流排(bus)解決了 cpu 和記憶體之間如何通訊的問題。晶元組控制了資料傳輸的流轉,也就是資料從**到**的問題。匯流排則是實際資料傳輸的高速公路。因此,匯流排速度(bus speed)決定了資料能傳輸得多快。

(4)其他非必要元件

電源、輸入(input)/ 輸出(output)裝置,也就是 i/o 裝置、機箱、風扇、硬碟、顯示卡(gpu)等

2、馮·諾依曼體系結構

(1)包含算術邏輯單元(arithmetic logic unit,alu)和處理器暫存器(processor register)的處理器單元(processing unit),用來完成各種算術和邏輯運算

(2)包含指令暫存器(instruction register)和程式計數器(program counter)的控制器單元(control unit/cu),用來控制程式的流程,通常就是不同條件下的分支和跳轉。

(3)用來儲存資料(data)和指令(instruction)的記憶體。以及更大容量的外部儲存(通常指硬碟);

(4)輸入輸出裝置。個人電腦的滑鼠鍵盤是輸入裝置,顯示器是輸出裝置。智慧型手機,觸控螢幕既是輸入裝置,又是輸出裝置。而跑在各種雲上的伺服器,則是通過網路來進行輸入和輸出。

任何一台計算機的任何乙個部件都可以歸到運算器、控制器、儲存器、輸入裝置和輸出裝置中,而所有的現代計算機也都是基於這個基礎架構來設計開發的。

而所有的電腦程式,也都可以抽象為從輸入裝置讀取輸入資訊,通過運算器和控制器來執行儲存在儲存器裡的程式,最終把結果輸出到輸出裝置中。而我們所有撰寫的無論高階還是低階語言的程式,也都是基於這樣乙個抽象框架來進行運作的。

學習計算機組成原理,其實就是學習和拆解馮·諾依曼體系結構。

學習控制器、運算器的工作原理,也就是 cpu 是怎麼工作的,以及為何這樣設計;學習記憶體的工作原理,從最基本的電路,到上層抽象給到 cpu 乃至應用程式的介面是怎樣的;學習 cpu 是怎麼和輸入裝置、輸出裝置打交道的。

理解從控制器、運算器、儲存器、輸入裝置以及輸出裝置,從電路這樣的硬體,到最終開放給軟體的介面,是怎麼運作的,為什麼要設計成這樣,以及在軟體開發層面怎麼盡可能用好它。

3、計算機組成原理知識地圖

4、「效能」介紹:效能可以看做時間的倒數

計算機效能中,有兩個重要的指標:、吞吐率

(1)響應時間指的就是,我們執行乙個程式,到底需要花多少時間。花的時間越少,自然效能就越好。

(2)吞吐率是指在一定的時間範圍內,到底能處理多少事情。這裡的「事情」,在計算機裡就是處理的資料或者執行的程式指令。

5、cpu指標:計算機的計時單位

雖然時間是乙個很自然的用來衡量效能的指標,但是用時間來衡量時,有兩個問題。

(1)時間不准:計算機可能同時執行著好多個程式,cpu 實際上不停地在各個程式之間進行切換。在這些走掉的時間裡面,很可能 cpu 切換去執行別的程式了。而且,有些程式在執行的時候,可能要從網路、硬碟去讀取資料,要等網路和硬碟把資料讀出來,給到記憶體和 cpu。所以說,要想準確統計某個程式執行時間,進而去比較兩個程式的實際效能,我們得把這些時間給刨除掉。

(2)即使已經拿到了 cpu 時間,也不一定可以直接「比較」出兩個程式的效能差異。即使在同一臺計算機上,cpu 可能滿載執行也可能降頻執行,降頻執行的時候自然花的時間會多一些。

除了 cpu 之外,時間這個效能指標還會受到主機板、記憶體這些其他相關硬體的影響。所以,需要對「時間」這個可以感知的指標進行拆解,把程式的 cpu 執行時間變成 cpu 時鐘週期數(cpu cycles)和 時鐘週期時間(clock cycle)的乘積。

程式的 cpu 執行時間 =cpu 時鐘週期數×時鐘週期時間

最簡單的提公升效能方案,自然縮短時鐘週期時間,也就是提公升主頻。換句話說,就是換一塊好一點的 cpu。如果能夠減少程式需要的 cpu 時鐘週期數量,一樣能夠提公升程式效能。

對於 cpu 時鐘週期數,可以再做乙個分解,把它變成「指令數×每條指令的平均時鐘週期數(cycles per instruction,簡稱 cpi)」。不同的指令需要的 cycles 是不同的,加法和乘法都對應著一條 cpu 指令,但是乘法需要的 cycles 就比加法要多,自然也就慢。在這樣拆分了之後,我們的程式的 cpu 執行時間就可以變成這樣三個部分的乘積。

程式的 cpu 執行時間 = 指令數×cpi×clock cycle time

提公升效能需要優化的3個方面:

(1)時鐘週期時間,就是計算機主頻,這個取決於計算機硬體。

(2)每條指令的平均時鐘週期數 cpi,就是一條指令到底需要多少 cpu cycle。

(3)指令數,代表執行我們的程式到底需要多少條指令、用哪些指令。這個很多時候就把挑戰交給了編譯器。同樣的**,編譯成計算機指令時候,就有各種不同的表示方式。

6、從哪些方面提公升「效能」

cpu效能裡面有乙個公式:

程式的 cpu 執行時間 = 指令數×cpi×clock cycle time

提公升計算機的效能,我們可以從指令數cpi以及cpu 主頻這三個地方入手。

(1)在 cpu 上多放一點電晶體,不斷提公升 cpu 的時鐘頻率,這樣就能讓 cpu 變得更快,程式的執行時間就會縮短。但是這樣會有乙個極限,導致功耗增加太多,就會導致 cpu 散熱跟不上。

(2)並行提高效能,提公升吞吐率,現在用的 2 核、4 核,乃至 8 核的 cpu就是這種方式。

並不是所有問題,都可以通過並行提高效能來解決。如果想要使用這種思想,需要滿足這樣幾個條件。

第一,需要進行的計算,本身可以分解成幾個可以並行的任務。好比上面的乘法和加法計算,幾個人可以同時進行,不會影響最後的結果。

第二,需要能夠分解好問題,並確保幾個人的結果能夠彙總到一起。

第三,在「彙總」這個階段,是沒有辦法並行進行的,還是得順序執行,一步一步來。

這就引出了我們在進行效能優化中,常常用到的乙個經驗定律,阿姆達爾定律(amdahl』s law)。這個定律說的就是,對於乙個程式進行優化之後,處理器並行運算之後效率提公升的情況。具體可以用這樣乙個公式來表示:

優化後的執行時間 = 受優化影響的執行時間 / 加速倍數 + 不受影響的執行時間

現在無論是簡單地通過提公升主頻,還是增加更多的 cpu 核心數量,通過並行來提公升效能,都會遇到相應的瓶頸。僅僅簡單地通過「堆硬體」的方式,在今天已經不能很好地滿足我們對於程式效能的期望了。

計算機組成原理基礎知識

採用二進位制形式表示資料和指令 指令由操作碼和位址碼組成 採用儲存程式和程式控制 把編寫好的程式和原始資料預先放入計算機主儲存器中,使計算機工作時可以連續 自動 高速地從儲存器中去取出指令並執行 指令順序執行,程式分支由轉移指令實現 計算機硬體系統由運算器 控制器 儲存器 輸入裝置和輸出裝置組成 計...

計算機組成原理cu 計算機組成原理 計算機概論

現代計算機樣式千奇百怪,常見的有我們的筆記本,台式電腦,也有各種伺服器 手機 攝像頭等都屬於計算機範疇。計算機包含我們看得見摸得著的計算機實體,稱為計算機硬體,如cpu 記憶體 各種掛接裝置等 還有我們看不見摸不著的軟體,它支援著硬體按照我們的預想在操作,包括系統軟體和應用軟體 計算機硬體樣式千奇百...

計算機組成原理知識簡介

計算機,通俗的講就是乙個會計算機的機器,跟初中學數學時用的計算器沒多大區別,無非是變得比較複雜而已。個人理解 1 其實人也是一台計算機 不過有點特殊,並且在某些方面來說是比電子計算機高階 富有感情 人外部的器官 眼,耳,手腳。相當於計算機的外部裝置 滑鼠,鍵盤,顯示器,音響。內部的cpu相當於人大腦...