計算機原理初探

2021-08-22 08:42:19 字數 1401 閱讀 5260

最經典的一句話:不要在腦子裡對軟體和硬體做區分。

這也是計算機概論中兩個重要理念之一,在設計硬體時如果我們具備軟體相關的知識,那肯定能做出更好的設計,只有懂得需要,才能對症下藥。軟體設計也是一樣的,如果能懂得硬體的執行機制,設計實現的程式肯定會比不懂的更有效率。

另外乙個就是抽象。對應抽象的理解個人認為就是要把有限的精力用在事情的本質上,而不要過於注重底層細節,這將大大提高我們的工作效率。

乙個問題可以拆解成多個更低層次的問題,如果我們能夠忽略掉抽象之下的細節,我們的思考將更有效率,但是如果細節出現了問題,那我們也必須去了解底層細節。所以我們要站在高處看問題,同時又要在當出現問題時,能夠俯下身子尋找細節中的問題。

什麼是計算機?

計算機就是給定乙個計算任務的描述和相關資料,都能計算出結果。(圖靈完備,任何計算都可以通過某種圖靈機來完成,任何試圖對圖靈機的改進,本身也可以用圖靈機來實現)

所以不管是一台廉價的計算機還是一台昂貴的計算機,他們能做的事情是一樣的,唯一的區別就在於得到計算結果的快慢而已。

如何做到從問題的描述到電子的運轉?

問題描述

演算法程式語言

isa(指令集結構)

微結構邏輯電路

電子器件

我們提出問題後,需要找到對應的計算方式來獲取結果,這就是演算法

問題是用自然語言來描述的,這樣就存在乙個問題,語言本身在不同的語境下有不同的含義,而計算機只能處理確定的事情,所以這個時候就需要用一種計算機能夠明白的方式來明確的告訴計算機需要它做什麼。

我們通過將自然語言轉化為演算法來消除自然語言無用的特性。演算法具有 確定性,可計算,有限性。

即演算法的操作步驟的描述是清晰的明確的,不會有任何的不確定,同時它的每一步是能夠被計算的,最後整個計算過程是會終止的。

好了,設計出了演算法,我們需要用程式語言來實現,程式語言是確定的,無二義性。程式語言有很多種,不同的語言在不同的場合有不同的用途。

程式語言又有高階語言和低階語言的區別。高階語言書寫相對較短,並且更容易理解,但是離底層計算機的相關性很弱,所以我們需要用編譯器來將高階語言翻譯成isa指令。低階語言則不同,通常一種低階語言只對應特定的計算機的組合語言,而將這種

特定的計算機組合語言翻譯為isa指令需要用到彙編器。

接下來就是isa(指令集結構)

指令集結構是程式和計算機硬體直接介面的完整定義。

指令集包括計算機可以執行的指令集合,同時需要有不同指令集操作需要的資料(運算元)。有運算元那麼就有運算元的相關定義,包括運算元的資料型別和運算元的獲取機制(即定址模式)。

微結構微結構就是isa的具體實現了,相同的isa可能會有多種不同的微結構實現。

邏輯電路

微結構是由一組簡單的邏輯電路來實現的。但是不同的實現方式可能會有具體的效能差異

器件每個基本的邏輯電路都是由特定的器件技術來實現的。

基本原理章節,簡單又不簡單,需要仔細體會。

計算機原理

關於 深入理解計算機系統 老趙的這一番話,深深的觸動了我,確實,這本書用怎麼說呢,並不是深入,而是涉及的知識比較廣,但又都是廣大程式猿不得不知道的知識,下面我們就來慢慢品嚐這本書吧。工作之餘,學習學習,總是好的。言歸正傳,接下來,享讀 computer systems a programmer s ...

計算機原理

計算機 實質是資料儲存和資料流動 資料是儲存在磁碟上的,磁碟是由磁顆粒點組成,磁顆粒點可以帶電,帶電是1,不帶電是0,磁碟上有保護膜,不直接與空氣接觸,乙個磁顆粒點就是1bit,1b 8bit,資料傳輸就是傳輸電平 1t 8 9萬億顆粒點 對顆粒點需要管理,機械盤內部有很多光碟,顆粒點在光碟的正反兩...

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

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