CPU簡介
「計算機的心臟是中央處理單元,簡稱“CPU”」 。這篇文章就利用前幾篇文章中提到過的ALU,RAM,寄存器組件做一個CPU。
CPU負責運行程序, 「程序是由一個個操作組成的,這些操作叫做指令」 ,因為他們“指示”計算機要做什么.
CPU能做什么
「數學計算指令」 :讓ALU去做加減乘除或者更復雜的數學計算
「內存指令」 :CPU會和內存(RAM)通信,然后操作內存進行讀寫值
組裝CPU零件
16位內存條
首先把上一篇文章的RAM拿出來(只有16個地址意味著是每個內存是16位的,每個地址又可以存8位可以得出是8個內存組裝在一起的;因此這個RAM可以看到是 「由8個16位內存組成」 )。
「內存條的尋址空間意味著每塊內存可以可以存儲的位數,內存條中的每個地址可以存多少位又是由多少個內存組成。」
可以看到每個地址都存儲著8位,在后面講解指令表的時候要注意這八位數字的表示方式。「前四位代表操作碼,后四位代表的是地址OR寄存器」
四個八位的寄存器
回顧一下:
上一篇文章中講到八位的寄存器無非是把八個鎖存器鏈接在一起,8個數據輸入線,8個數據輸出線,還有一個鏈接著所有鎖存器中的允許寫入線。總共17條線
寄存器的作用:用來 「臨時存儲數據」 和操作數據
指令表
數據是以二進制值存儲在內存里,程序也可以在內存里。
指令: 「所有CPU支持的指令都會分配一個指令ID」 也就是表中的第一個INSTRUCTION中的LOAD_A
描述:就是描述這個指令ID是用來做什么操作的
「4-BIT OPCODE」 (操作碼):「這個指令要做的操作,用4位的操作碼表示」
「ADDRESS OR REGISTERS」 (地址OR 寄存器):也是4位,表示的是 「操作碼需要使用的地址或者寄存器」 (比如加載一個內存里的值放入寄存器中就需要指定打開的是哪個內存地址)
「在之前我們拿出RAM,可以看到每個地址都存儲著8位數字,前四位代表的就是操作碼,后四位代表的是地址OR寄存器」 「.」
「之后我們會模擬CPU的執行過程,要執行怎樣的操作以及怎么樣執行就是通過RAM中存儲的這八位數字來運行的。」
兩個八位的寄存器
「指令地址寄存器」 :追蹤程序運行到哪里了。用于通過地址**「定位到內存條中的哪條指令,也就是存儲當前指令的內存地址ADDRESS」**
「指令寄存器」 :用于 「存儲當前運行的指令DATA」 。通過指令地址寄存器讀取RAM中指定ADDRESS的DATA然后并寫入這個寄存器
開始運行
啟動計算機時,所有的寄存器都是0.
在RAM中放了一個程序(ADDRESS,DATA),現在就是要過一遍運行這個程序的過程
取指令階段
該階段負責拿到指令,即**「指令地址寄存器讀取RAM中對應地址的值復制到指令寄存器」**
1.首先將 「指令地址寄存器連接到RAM」 中(ADDRESS INPUT),寄存器的初始值為0,因此會去讀取RAM中ADDRESS為0的DATA
2.「DATA會被復制到指令寄存器中,現在指令寄存器存儲了00101110這個指令」
-
cpu
+關注
關注
68文章
10859瀏覽量
211682 -
RAM
+關注
關注
8文章
1368瀏覽量
114666 -
ALU
+關注
關注
0文章
33瀏覽量
13100
發布評論請先 登錄
相關推薦
評論