一、引子
1、指令
2、計算
然而,光知道這兩部分還不能算是真正揭開了CPU的秘密,只有把“指令”和“計算”這兩部分功能連通起來,我們才能構成一個真正完整的CPU。
這一講,我們就在前面知識的基礎上,來看一個完整的CPU是怎么運轉起來的。
二、指令周期
1、計算機每執行一條指令的過程
4.重復進行1~3的步驟。
這樣的步驟,其實就是一個永不停歇的“ Fetch - Decode - Execute”的循環,我們把這個循環稱之為 指令周期(Instruction Cycle)。
2、什么是指令周期
3、不同步驟在不同組件之內完成
三個周期之間的關系
4、CPU周期
5、時鍾周期
三、建立數據通路
1、第一類操作元件
2、第二類存儲元件
3、什么是數據通路
4、控制器
聽起來是不是很簡單?實際上,控制器的電路特別復雜。下面我給你詳細解析一下。
一方面,所有CPU支持的指令,都會在控制器里面,被解析成不同的輸出信號。我們之前說過,現在的IntelCPU支持2000個以上的指令。這意味着,
控制器輸出的控制信號,至少有2000種不同的組合。
運算器里的ALU和各種組合邏輯電路,可以認為是一個固定功能的電路。控制器“翻譯”出來的,就是不同的控制信號。這些控制信號,告訴ALU去做不同的計算。
可以說正是控制器的存在,讓我們可以“編程”來實現功能,能讓我們的“存儲程序型計算機”名副其實。
指令譯碼器將輸入的機器碼,解析成不同的操作碼和操作數,然后傳輸給ALU進行計算
四、CPU所需要的硬件電路
1、ALU
2、寄存器
3、自動數數的電路
我們看似寫了各種復雜的高級程序進行各種函數調用、條件跳轉。其實只是修改PC寄存器里面的地址。PC寄存器里面的地址一修改,計算機就可以加載一條指令新指令
往下運行。實際上,PC寄存器還有一個名字,就叫作程序計數器。顧名思義,就是隨着時間變化,不斷去數數。數的數字變大了就去執行一條新指令。
所以,我們需要的就是一個自動數數的電路。
4、譯碼器
五、總結延伸
好了,現在我們把這四類電路,通過各種方式組合在一起,就能最終組成功能強大的CPU了。但是,要實現這四種電路中的中間兩種,我們還需要時鍾電路的配合。
下一節,我們一起來看一看,這些基礎的電路功能是怎么實現的,以及怎么把這些電路組合起來變成一個CPU。