概述:
我們的計算機在執行的過程中,操作流程可以大致看成乙個:「取指令」->"執行指令"的過程。這次的設計便是基於這一思想進行簡易計算機系統的設計。本次設計中的指令是乙個8為的二進位制串,通過不同的指令來實現不同的具體操作。
我們分析一下需要幹什麼?
首先考慮取指令:
我們首先需要儲存指令,這樣計算機才能去讀取指令,故我們需要設計乙個儲存指令的東西--ram儲存器。ram儲存器的具體功能後續會具體介紹,現在我們把ram看作乙個陣列,然後指令可以儲存在陣列的某乙個位置。
有了儲存好了的指令,我們怎麼得到呢,正如上面所說,我們相當於需要訪問陣列中的內容,那麼我們需要提供乙個具體的下標去訪問陣列(ram-)-pc計數器。pc計數器的大概功能就是能輸出乙個值,並且能自加一(順序得到下一位址)或者載入某乙個數(跳轉到某乙個位址)。
其餘需要設計的部件還有指令暫存器和指令解碼器,這兩個的具體功能,後續再詳細說明。
然後是執行指令:
我們用指令是幹嘛的,當然是每一條指令對應了某個操作,具體的指令如下表:
我們考慮最上面的三條mov指令,其具體操作如下:
我們發現指令會指定某些資料進行操作,所以首先我們要儲存資料,這裡便要用到暫存器組。該暫存器組中包括三個暫存器a,b,c,其中a,b兩個是儲存具體的運算元,c儲存的是乙個位址,用於與ram儲存器進行資料互動。
然後後面有一些對兩個運算元進行運算的操作,那麼我們需要乙個對兩個運算元進行函式運算的運算器--alu運算器。用於兩個運算元的運算並輸出運算結果。
一般來說對於資料的處理還應該包括對資料進行移位操作,我這裡將該部分與alu運算器分開,單獨設計。
這樣所有的部件基本上都過了一遍,總的原理圖如下:
接下來就是對各個部分的具體實現。
簡易計算機系統綜合設計 CPU綜合
當完成了各個部件之後,接著要做的就是把各個部件組裝起來,配合運作,要使所有部件能夠協調地運作,首先得要有乙個比較明朗的思路,我們先來分析一下cpu的執行流程 上圖為簡易計算機系統的整體構架,現對其執行整體流程進行說明 1 取址階段 不受時鐘控制的輸入 由sm 0確定 有 madd 00 選擇器選擇從...
簡易計算機系統綜合設計 時鐘節拍
根據部件各個的控制訊號,我們知道有些部件需要時鐘有些不需要時鐘,這些需要時鐘訊號的部件有些可以同時運作,不如pc計數器的加一操作和指令暫存器的存指令操作,但是有些部件就一定需要乙個先後順序,比如說加法,肯定是要等運算完以後才給通用暫存器時鐘訊號去吧運算結果存進指定的暫存器。所有這裡的多個時鐘訊號的週...
簡易計算機系統綜合設計 C,Z暫存器
看過了控制器的設計以後,你可能會注意到控制器有兩個輸入c和z不是 於解碼器的輸出,這裡對c和z進行說明。c和z的值分別是跳轉指令jc和jz是否有效的乙個判斷條件 當c 1時,jc有效 z 1時,jz有效。c是邏輯運算的進製輸出,包括加法的進製 減法的借位以及移位時被移出去的那一位 注意是移出去的那一...