基本介紹

cpu基本構成
這是一個CPU的基本構成,它主要分為兩個部分一個是運算器,一個是控制器,下面的主要做一個簡單的了解。
我們先看運算器。
這個是計算器用于實現計算的(廢話)
這其中有4個部分組成分别是ACC(放數的),MQ(放數的和用來乘除的),X(放數的),ALU(用來計算的)。
接着我們再來看控制器。
這相當于CPU的大腦(好像怪怪的)
CPU的控制器有三個部分組成,CU(控制單元用來分析指令的),IR(存放當前要執行的指令),pc(計數器,用來讀取下一條指令)
上面幹巴巴的介紹說完了,實際上也很難記住,下面會有一個實際的例子,這樣會更加方面理解。
實際運算過程
舉個栗子:
當前C語言執行了這樣一段代碼,那麼CPU在運行過程中是怎樣的一個過程呢?

一、首先整段代碼會被加載到内存(主存儲器中)也就是下圖那樣

二、此時CPU會通過控制器中的PC讀取存放在内存中的指令,進行分析和執行(此時PC初始為0)


cpu基本運行原理
- 首先指令的存儲字長為16bit也就是16個2進制數,但是在執行的時候 系統會自動拆解成操作碼和地址碼
- 第一步指令 從上面兩個操作來看,1-5的步驟都是一樣的就是通過pc這樣的計數器的順序的取指,唯一不同的就是從6開始的步驟,不僅是步驟和次數都不一樣這取決于指令本身。
- 來捋一下很簡單從最基本的邏輯來看就是PC(計數器)從零開始,将這個0傳給MAR也就是地址寄存器 說我們想要第0行的數據
- MAR則把存儲體中的第0行的數據找到通過MDR 櫃台給到指令寄存器IR
- 此時IR中就存放着我們已經取出來的還沒有執行的數據 這個數據也就是我們的指令
- 此時IR會将指令中的操作碼發送給CU 分析後得知這是一個取數的指令,然後IR将0行指令的地址碼發送給MAR (0000000101)也就是第5行的數據 a=2 将這個值放在acc中
- 第二步指令 上面這一些操作完成之後PC計數器就會自動加一,去除我們的第一行指令進行執行,而我們要計算的a*b的前面部分都是一樣的,直接從執行操作碼開始
- CU分析之後發現是一個乘法指令,則将第1行的地址碼的數據也就是b=3放到MQ乘商寄存器中
- 現在cpu已經滿足了乘數和被乘數,cpu開始進行乘法操作了,先将acc的a=2 被乘數放在x通用寄存器 通過ALU算術邏輯單元進行乘法操作 并将結果放在ACC中
- (如果乘數太大則需要MQ的輔助)
- 接着是第三步 算加法 前面取數階段都是一樣的 不同的就是取出的c=1的值是放在通用寄存器x中的 然後控制單元CU 給ALU 發送消息 需要計算加法吧ACC和X中的值相加 再放到ACC中
- 第四步指令 前面的取數也是一樣的,隻是取得的操作碼通過CU分析為存數指令 将地址碼發送給MAR(地址為十進制8) 将值發送給MDR(a*b c) 将其存儲到存儲體中
- 第五步指令 前面取數也是一樣的,取出的指令為停機指令
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!