ADD操作碼
后四位ADDRESS OR REGISTERS解釋
在指令表中我們看到ADD指令的后四位 「寄存器 OR RAM地址一列中,列出來的不是之前的RAM地址而是兩位的寄存器ID」 。兩位可以表示四個數(shù)字,正好對應(yīng)ABCD四個寄存器。
解碼過程
從上面的RAM中可以看到,指令地址2就是一個ADD的指令。
拆解出這個ADD要使用的兩個寄存器(后四位):0100
01表示寄存器B,00表示寄存器A。
所以1000 0100的意思是:將寄存器B的值加到寄存器A中
執(zhí)行過程
加法需要利用到上一篇文章講的ALU邏輯運(yùn)算單元。因?yàn)锳LU需要接受輸入而控制單元可以控制素有的寄存器所以需要把ALU連接至控制單元。通過控制單元打開對應(yīng)的寄存器輸出來讓ALU接受輸入,來看下面的步驟:
- 「讓ALU接受輸入」 :控制單元啟用寄存器B的允許讀取線,作為ALU的第一個輸入,控制單元啟用寄存器A的允許讀取線,作為ALU的第二個輸入
2.「告知ALU進(jìn)行哪種運(yùn)算操作:」 控制單元傳遞ALU中的ADD操作碼告知ALU進(jìn)行加法運(yùn)算
3.ALU輸出結(jié)果保存:注意 「此時的A的允許讀取還打開著并且ALU還在繼續(xù)工作,如果控制單元直接把輸出給到寄存器A,那么ALU就會不斷進(jìn)行運(yùn)算」 。所以**「控制單元有一個自己的寄存器暫時保存結(jié)果,接著關(guān)閉ALU,然后把值再寫入正確的寄存器A中」**
- 「取下一條指令指令地址寄存器+1」 :執(zhí)行階段結(jié)束。開始下一個取指令階段,又開始下一次的循環(huán)~~
總結(jié)
用一張圖來表示。當(dāng)ALU計算出結(jié)果后將結(jié)果傳送至控制單元,控制單元內(nèi)部寄存器存儲這個結(jié)果,然后把ALU關(guān)閉,再把內(nèi)部寄存器存儲的值給到寄存器A(這是打開的是寄存器A的允許寫入)
時鐘速度,時鐘周期
剛剛我們是一步一步進(jìn)行講解的這個過程:”取指令-》解碼-》執(zhí)行“,計算機(jī)中**「控制執(zhí)行這個循環(huán)的節(jié)奏是通過”時鐘“來負(fù)責(zé)的?!?*
「時鐘以精確的間隔,觸發(fā)電信號,控制單元用這個信號,推進(jìn)CPU的內(nèi)部操作,確保一切按順序執(zhí)行。時鐘不能太快,因?yàn)榫退闶请娨惨幸欢〞r間來傳輸」
定義
「CPU ”取指令-》解碼-》執(zhí)行“的速度叫做”時鐘速度“。單位是赫茲HZ,赫茲是用來表示頻率的單位,一赫茲表示一個周期。下面那個Clock就是時鐘的代表」
第一個單芯片CPU-英特爾4004
這是他的微架構(gòu),可以看到和我們上面組裝的差不多。
降頻&超頻
上面的第一個單芯片CPU,它的時鐘速度達(dá)到了740千次赫茲,每秒74萬次,這已經(jīng)很快了,但是現(xiàn)在更快~~
「一兆赫茲是一秒一百萬個時鐘周期,現(xiàn)在人們用的電腦和手機(jī)肯定幾千兆赫茲,也就是一秒鐘十億次時鐘周期」
超頻
「也就是修改時鐘速度,加快CPU速度」
「芯片制造商經(jīng)常給CPU留一點(diǎn)余地,可以接受一點(diǎn)超頻,但是超頻過多會讓CPU過熱或產(chǎn)生亂碼,因?yàn)樾盘柛簧蠒r鐘」
降頻省電
有時我們沒有必要讓處理器全速允許,比如用戶走開了,或者在跑一個性能要求極低的程序,把**「CPU的速度降下來,可以省很多電.」**
動態(tài)調(diào)整頻率
省電對于用電池的設(shè)備很重要,比如筆記本和手機(jī),為了更省電,很多現(xiàn)代處理器可以按需求加快或減慢時鐘速度,這叫動態(tài)調(diào)整頻率.
抽象-CPU
「RAM是在CPU外面的獨(dú)立組件」 ,CPU和RAM之間**「通過”地址線“,”數(shù)據(jù)線“和”允許讀/寫線“進(jìn)行通信,」** 上面提到的很多機(jī)制依然存在于現(xiàn)代處理器里。
-
寄存器
+關(guān)注
關(guān)注
31文章
5342瀏覽量
120303 -
cpu
+關(guān)注
關(guān)注
68文章
10859瀏覽量
211701 -
RAM
+關(guān)注
關(guān)注
8文章
1368瀏覽量
114669
發(fā)布評論請先 登錄
相關(guān)推薦
評論