軟件行業(yè)非常迅速,以前流行C,C++java,spring,現在springcloud,docker,微服務,k8s云原生等概念火熱,還有各種各樣的新技術在不斷的涌現出來。但是計算機底層原理 這幾十年一直并沒有太大的變化,與其不斷去嘗試新技術,不如耐住性子,深入學習底層的知識,好好修煉“內功”。
計算機的軟硬件概念
計算機系統(tǒng)由"軟件"和"硬件"2大部分組成

其中軟件如果按應用范圍分類,一般分為系統(tǒng)軟件和應用軟件:
- 系統(tǒng)軟件是各類操作系統(tǒng),如windows、Linux、UNIX等,還包括操作系統(tǒng)的補丁程序及硬件驅動程序,都是系統(tǒng)軟件類。
- 應用軟件可以細分的種類就更多了,如工具軟件、游戲軟件、管理軟件等都屬于應用軟件類。
其中計算機硬件經過發(fā)展歷程:
- 電子管時代,速度每秒幾千次~幾萬次
- 晶體管時代,速度每秒幾萬次~幾十萬次
- 中小規(guī)模集成電路時代,速度每秒幾十萬次~幾百萬次
- 大規(guī)模、超大規(guī)模集成電路時代,速度每秒上千萬次~萬億次
馮·諾依曼體系結構
1946年,第一臺計算機ENIAC誕生,人類進入計算機時代,馮諾依曼和其他計算機科學家們 提出了計算機"存儲程序"的計算機設計理念,即將計算機指令進行編碼后存儲在計算機的存儲器中,需要的時候可以順序地執(zhí)行程序代碼,從而控制計算機運行。還定義計算機基本結構為 5 個部分,分別是運算器、控制器、存儲器、輸入設備、輸出設備,這就是馮.諾依曼計算機。

實線箭頭表示 數據線,虛線箭頭表示 控制線和反饋線
馮·諾依曼計算機特點:
- 計算機由 運算器、存儲器、控制器、輸入設備和輸出設備 五大部件組成, 側重于硬件抽象
- 將計算機的計算和記憶分開,負責計算的部分由運算器和控制器組成,負責記憶的部分稱為存儲器
- 指令和數據均用 二進制數 表示
- 指令和數據以同等地位存放于存儲器內,并可 按地址尋訪
- 指令由操作碼和地址碼組成,操作碼用來表示操作的性質,地址碼用來表示操作數在存儲器中的位置
- 指令在存儲器內按順序存放。通常,指令是順序執(zhí)行的,在特定條件下,可根據運算結果
或根據設定的條件改變執(zhí)行順序
- 以運算器為中心
現代計算機系統(tǒng)與馮·諾依曼計算機差別不大,最大的區(qū)別馮·諾依曼計算機 是 以運算器為中心的 ,而現代計算機 以儲存器為中心:

接下來,我們分別介紹一下這幾個重要組成部分
- 存儲器
存儲器是用來存放數據和程序。存儲器 包含主存和輔存
- 運算器
運算器也叫算數邏輯單元,是進行算數運算和邏輯運算的部件,在控制器的控制下,對取自內存儲器的數據進行算術運算或邏輯運算,并將運算的結果送到內存儲器。
- 控制器
控制器用來控制、指揮程序和數據的輸人、運行以及處理運算結果。計算機在工作時,控制器首先從內存儲器中按順序取出一條指令,并對該指令進行譯碼分析,根據指令的功能向相關部件發(fā)出操作命令,使這些部件執(zhí)行該命令所規(guī)定的任務,執(zhí)行之后再取出第二條指令進行分析執(zhí)行。如此反復,直到所有指令都執(zhí)行完成。
- 輸入設備
輸入設備用來將人們熟悉的信息形式轉換為機器能識別的信息形式,常見的有鍵盤、鼠標等
- 輸出設備
輸出設備可將機器運算結果轉換為人們熟悉的信息形式,如打印機輸出、顯示器輸出等。
- 中央處理器(CPU)
由于運算器和控制器在邏輯關系和電路結構上聯(lián)系十分精密,特別是大型集成電路時代的到來,所以往往會將運算器和控制器集成到同一個芯片上,統(tǒng)稱 在中央處理器(CPU),其功能是從內存儲器中取出指令、解釋指令并執(zhí)行指令。
- CPU中 還有一個常見的組件,寄存器
寄存器是CPU內部用來存放數據的一些小型的存儲區(qū)域,用來暫時存放參與運算的數據以及運算結果。寄存器由電子線路組成,存取速度非???,與CPU的速度相當,寄存器的成本較高,因而數量較少。CPU內部的寄存器類型有指令寄存器、程序計數器、數據寄存器、地址寄存器以及狀態(tài)寄存器等。
總線
總線是貫穿整個系統(tǒng)的是一組電子管道,稱作總線,它攜帶信息字節(jié)并負責在各個計算機部件間傳遞。通常總線被設計成傳送定長的字節(jié)塊,也就是字(word)。字中的字節(jié)數(即字長)是一個基本的系統(tǒng)參數,各個系統(tǒng)中都不盡相同?,F在的大多數機器字長要么是4個字節(jié)(32位),要么是8個字節(jié)(64位)。本文我們不對字長做任何固定的假設
另外計算機最小的存儲單位是 字節(jié)( byte ) ,1 字節(jié)等于 8 位(1Byte=8bit),而 位/比特(bit) 是計算機最小的數據傳輸單位。1 字節(jié)等于 8 位(1Byte=8bit)這個換算規(guī)則大家需要牢記
我們順便把內存相關的知識串起來:計算機將8個bit歸為一組,為字節(jié),每一個字節(jié)都對應一個內存地址。內存的地址是從 0 開始編號的,然后自增排列,最后一個地址為內存總字節(jié)數 - 1。CPU只需要知道某個數據類型的地址, 就可以直接去到對應的內存位置去提取數據了。
總線可分為 3 種:
- 地址總線 ,一般用于指定 CPU 將要操作的內存地址;
- 數據總線 ,一般用于讀寫內存的數據;
- 控制總線 ,一般用于發(fā)送和接收信號,比如中斷、設備復位等信號,CPU 收到信號后,通過控制總線進行響應;
-
cpu
+關注
關注
68文章
11332瀏覽量
225992 -
二進制
+關注
關注
2文章
809瀏覽量
43217 -
儲存器
+關注
關注
1文章
94瀏覽量
18174
發(fā)布評論請先 登錄
計算機的基本組成及工作原理
計算機的基本組成和工作原理是什么
計算機的組成原理是什么?
計算機組成原理是什么
計算機組成原理
計算機組成原理 精選資料分享
微型計算機是由哪些部件組成的
計算機組成原理
計算機動環(huán)系統(tǒng)是由哪些部分組成的
計算機及系統(tǒng)組成
計算機的基本是由什么組成?(下)
計算機的基本是由什么組成?(上)
評論