大家的C語言-101-計算機的核心CPU

什麼是程序

上一篇介紹了計算機是如何工作的。但同學們已經發現了使用計算器的過程十分麻煩。誰也不會爲了求2+1去擺弄一大堆開關。現在想另外一個問題,現在要計算一萬個加法。即便再簡單,一個人算完一萬條估計也會吐血,而且還不能保證全對。一般遇到這種大量的重複性的工作,機器的優勢就體現出來了。因此,我們就要想辦法讓計算器自動計算,並在計算完後將結果保存在某個地方,以便我們可以獲取。

繼續以上一篇的2+1爲例,按步驟指令和數據的順序如下

順序 數字 指令/數據
0 000 指令
1 010 數據
2 001 指令
3 010 指令
4 001 數據
5 011 指令

在計算不同數據的加法時,只需要對其中數據部分做修改即可。比如想計算3+3只需要將表格修改成

因此計算一萬條加法,我們只需要將以上序列複製一萬份,然後修改其中的數據部分便可。

最終我們可以得到一連串數字,這些數字有的是指令有的是數據,如下:

                                                                                           

而這種有一定順序的,指令和數據的集合就叫做程序

內存和控制器

有了程序之後,下一步就是讓計算器自動工作了。因此引入兩個新的設備,一個叫做控制器,一個叫做主存儲器。

主存儲器的作用是保存程序,並且可以供控制器讀取指令和數據,並允許控制器將計算結果保存到主存儲器中。我們最常見的主存儲是內存。內存的特點是只能在通電的條件下保存程序。控制器從主存儲器中讀取程序的操作叫做讀操作,將結果保存到主存儲器的操作叫做寫操作。對於內存的讀寫操作,分別叫做讀內存寫內存

控制器作用是從主存儲器中讀指令和數據,然後將指令設置到計算器的控制端上,將數據設置到計算器的輸入端上,並將計算器輸出端的狀態保存到主存儲中。即代替人來完成設置計算器開關,和測量計算器輸出端電壓的工作。

最後整個裝置如下圖:

控制器和計算器合併在一起被稱爲CPU,即中央控制單元。實際上完整的CPU不僅僅包括控制器和計算器。CPU通常還有IO控制器,如控制鍵盤、鼠標、硬盤、顯示器等。

CPU和主存儲器通過總線鏈接。總線實際上就是一組導線,只不過它被嵌入在主板中。

指令集

 

上表只是舉個例子。真實的CPU支持的指令可不僅僅有4個。而且同樣的指令,對於不同的CPU對應的二進制數也不一樣。比如,A品牌CPU的加法指令對應11110000,B品牌CPU的加法指令對應00001111。CPU支持多少指令和每個指令對應的二進制數被稱爲指令集。目前最流行的指令集有兩個,一個是以Intel和AMD爲代表的X86指令集(主要用於服務器和桌面系統平臺),另一個是ARM指令集(主要用於移動端,如華爲、驍龍、蘋果的收集CPU)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章