控制單元(cu)是提供完成計算機指令全部操作的微操作指令序列部件.用下圖來描述其外部特性:
輸入訊號
時鐘。
上述的所有操作都具有下面的兩點特點:
因此,為了讓cu按一定的順序,一定節拍發出各種控制訊號,cu必須受到時鐘的控制。也就是說,每乙個時鐘脈衝傳送乙個或者一組的操作命令 。
指令暫存器(ir)
現行指令的操作碼,決定了不同指令在執行週期所需要完成的不同操作,因此,指令的操作碼字段就是cu的輸入訊號。,並且與時鐘配合,產生不同的控制訊號。
標誌
為什麼標誌也是cu的輸入訊號呢?這是因為cu有時候要依賴cpu當前所處的狀態(比如alu操作產生的結果)來產生控制訊號,因此,標誌也是cu的輸入訊號。
來自系統匯流排的控制訊號
比如:中斷請求,dam請求。
送到系統匯流排的訊號(輸出訊號)
比如:命令i/o或者主存進行讀寫,對中斷的響應等等
cpu內部的控制訊號(輸出訊號)
主要用於cpu內部暫存器之間的傳送,以及控制alu實現不同的操作。
常見的操作控制器
操作控制器一般分為兩種:硬佈線控制器,微程式控制器
硬佈線控制器的微操作
為了便於討論,假設cpu內有4個暫存器,mar與位址匯流排相連,存放欲訪問的儲存單元位址。mdr與資料匯流排相連,存放欲寫入儲存器資訊或者近期從儲存器中讀出的資訊。pc存放現行指令的位址,且有計數功能,ir存放現行指令。
1. 取址週期
pc ->mar//將現行指令的位址,送到mar
1->r //向主存傳送讀指令,進行讀操作
m(mar) ->mdr //通過位址匯流排,將mar所指的主存單元,通過資料匯流排,送到mdr
mdr ->ir //將mdr的內容送到ir
op(ir)->cu //j將指令的操作碼部分,送到cu進行解碼操作
2. 間址週期
一旦取值週期結束,cpu便檢查ir中的內容,以確定是否有間址操作,如果有,那麼mdr的形式位址(記為ad(mdr)),送到mar中,然後通過位址匯流排,此時cu向儲存器中發出讀命令,以獲取有效位址,並將讀到的資料存入mdr。微操作如下:
ad(ir) ->mar //將指令的形式位址送到mar
1-->r //cu發出讀命令
m(mar)->mdr //將mar指向的主存單元內容,也就是有效位址,通過資料匯流排送到mdr中
mdr->ad(ir)//將ea送到暫存器的位址字段
3.執行週期不同指令的執行週期大不相同,這裡主要分析非訪存類跟訪存類以及轉移類指令。
3.1 非訪存類(即在執行週期內不訪存)指令
意義微操作
cla清除acc指令
0->acc
comacc取反指令
!acc ->acc
shr算術右移一位
l(acc)->r(acc), acc。->acc。(符號位不變)
csl迴圈左移一位
r(acc)->l(acc), acc。->accn
stp停止機器執行
0->g(g為執行標記觸發器,1執行,0停機)
3.2 訪存類
這一模擬較多,用markdown畫的**不好看,那麼我就拍一張
4. 中斷週期
在執行週期結束時刻,cpu要查詢是否有請求中斷事件發生,如有,則進入中斷週期。在中斷週期,由中斷隱指令自動完成斷點保護,尋找中斷服務程式入口位址以及硬體關中斷操作,假設程式的斷點存到了主存的0單元處,採用硬體向量法尋找入口位址,則微操作如下:
0->mar //將位址『0』,送入mar中
1->w //c發出寫指令
pc ->mdr //將pc的內容(即程式的斷點 )。送到mdr
mdr->m(mar) //將mdr的內容,寫入到mar所指示的主存單元(即0)中
0->eint //中斷觸發器清0
如果程式斷點存入的是棧中,那麼進棧的操作為,先修改棧指標,再訪問資料,也就是上面的第一步改為:
(sp)-1 ->sp
sp ->mar
挑戰408 組成原理(3) 原碼,補碼,反碼
計算機中的資料分為數值資料和非數值型資料 如聲音,影象等等 我們接下來主要談的是數值型資料。在現實的生活中,數值資料主要分為實數和整數兩大類,在計算機中,整數用定點數表示,實數用浮點數表示,而所有帶符號的整形都用補碼表示。目前通用計算機中浮點數大多數採用ieee754標準,其中尾數採用定點原碼表示,...
挑戰408 組成原理(17) 指令格式
好久沒更新了,放元旦本來打算跨個年,可惜外面太冷。還是我在家裡寫寫文章吧。由開始的時候我們知道,計算機能解題,是由於機器本身存在一種語言,它既能理解人的意圖,又能被機器本身識別。機器語言,是由一條條語句構成的,每一條語句又能準確的表達某種語義 比如某種運算元,參與操作的數,或者其他的資訊在何處 而計...
挑戰408 組成原理(16) 儲存器刷題(1)
半導體隨機儲存器 sram dram 主存擴容 並行儲存器 cache及其替換演算法 補充知識點 sram和dram在與cpu的連線上有什麼不同?答 在實際中,dram晶元採用的是位址復用技術,至於什麼是位址復用技術,自行查閱資料。做題只需要知道一點,那就是其位址線變為原來所需要的一半。片選的時候用...