眾所周知CPU是中央處理器,它是控制處理中心,我們的電腦、手機等電子產品都離不開CPU。
那么,CPU內部到底是如何工作的呢?我們一起來看看。
1
當我們用電腦拼命工作的時候,殊不知電腦也在拼命的工作。
我們打開機箱,就會看見電腦的主板,也可以看到風扇在不停地轉動,風扇下面就是CPU,它不停地在和內存進行數據的通訊,就像我們的大腦。
CPU是由很多很多晶體管構成的,主要有控制器,運算器,寄存器幾個部分。而寄存器又分為數字寄存器,指令寄存器,指令地址寄存器。假設有四個數字寄存器,它們可以存放臨時的數據。右邊的是內存,還有16個存儲位置,每個位置有8位bit。
2
CPU和內存之間究竟是如何工作的呢?
當我們啟動電腦時,所有的寄存器都從零開始。假設內存存放了一個簡單的計算機程序,CPU操作的第一階段為“取指令”,也就是我們獲得第一個指令的過程。
首先,指定地址寄存器連到內存,寄存器的值為零。內存返回地址0中的值00101110。該值復制到指定寄存器中,然后由CPU開始解析該指令,以便執行什么樣的操作。這個步驟稱它為“解碼”。
該指定前四位為操作代碼,后四位為操作代碼來自哪里?由于前四位為操作代碼0010,對應我們的指令集,0010是讀內存放入寄存器A中,后四位是內存的地址1110。即十進制的數字14。
接著,用一些邏輯門電路來檢查該操作碼是否與0010匹配,輸出為1,表示匹配成功。接下來執行該指令,也就是執行過程。
通過邏輯門電路檢查電路輸出,打開內存的讀取線,找到內存1110的地址14,讀取該地址的值00000011,下一步把該值存儲到寄存器A中,我們通過數據線連接到4個數字寄存器,CPU通過指令開啟數據寄存器A允許寫入。該數據被寫入到寄存器A中,我們已完成了該指令。
現在關掉所有的線,準備從內存中讀取下一條指令。指令地址增加1,內存返回地址1的值00011111,復制到指令寄存器。再到解碼的過程,通過指定集,指定前四位0001,它表示讀內存存儲到寄存器B中,這次內存地址是1111,對應十進制尾數為15,到執行的過程,開啟內存讀取線,找到內存15地址,讀取該地址的值。并通過數據線把該值00001110存儲到寄存器B中,最后將指定地址寄存器增加1,關閉所有的線。
現在內存返回地址2的值10000100放入指令寄存器CPU從指定集開始解碼,操作碼1000是加法指令。添加兩個寄存器存儲到第二個存儲器中,該指定有兩種,前兩位01對應的寄存器B,后兩位00對應寄存器A,因此10000100是指寄存器B中的值添加到寄存器A中。
將寄存器A、B連接到運算器的輸入端,運算器執行加法運算,關閉運算器輸出的結果保存在寄存器A中。00010001就是輸入的值是3和14兩個值的和等于17,接下來指定地址增加1,完成這個過程,找到內存地址3的值。
我們打開指令集開始解碼,0100表示讀A寄存器到內存,1101對應內存地址是13,然后將寄存器A的值,通過數據線送到內存13的地址上。
3
我們剛剛運行的計算機的程序,它從內存中加載兩個值相加,然后把結果放入內存,也就是CPU的取指令、解碼、執行過程。我們電腦的系統是要很多很多的小程序組成,CPU也就不斷的在循環這個過程。
每個CPU執行這個過程的速度不一樣,這個速度是由CPU主頻即CPU工作頻率決定,它決定著CPU的快慢。
原文標題:CPU是如何做到數據通信的?
文章出處:【微信公眾號:EDA365】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
cpu
+關注
關注
68文章
10829瀏覽量
211194 -
通信
+關注
關注
18文章
5977瀏覽量
135871 -
中央處理器
+關注
關注
1文章
124瀏覽量
16502
原文標題:CPU是如何做到數據通信的?
文章出處:【微信號:eda365wx,微信公眾號:EDA365電子論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論