十六位CPU輕松實(shí)現,這都不是事兒
1.1 CPU 的數據通路
本文引用地址:http://dyxdggzs.com/article/201706/346850.htm模型計算機硬件系統的數據通路如圖 1-1。CPU 的字長(cháng)為 16 位,內部采用 16 位寬的單總線(xiàn)結構,包括運算器和控制器兩個(gè)部件。為了便于后面的設計,圖中還包括了系統總線(xiàn)和存儲器,系統總線(xiàn)采用單總線(xiàn)結構,包括 16 位的數據總線(xiàn) DB、16 位的地址總線(xiàn) AB和控制總線(xiàn) CB。主存、外設與 CPU 共用一組系統總線(xiàn);CPU 內部總線(xiàn) IB 與系統總線(xiàn)間通過(guò) DR、AR 相聯(lián)。主存儲器的字長(cháng)也是 16 位,并且按字編址,不能按字節訪(fǎng)問(wèn)。
圖 1-1 模型計算機硬件系統的數據通路
1.2 指令系統
模型機的指令系統包括各類(lèi)傳送類(lèi)指令、算術(shù)邏輯運算類(lèi)指令、移位類(lèi)指令、轉移類(lèi)指令、子程序調用返回指令、輸入輸出類(lèi)指令等。在尋址方式上采用最典型的尋址方式,分別是立即尋址、直接尋址、間接尋址、寄存器尋址、寄存器間接尋址、寄存器變址尋址、相對尋址 7 種。
1.2.1 指令格式
模型機指令格式規整,以單字指令為基礎,根據不同的尋址方式可擴展為雙字指令和三字指令,如圖 1-2所示。指令的第二字和第三字是一些常數,如立即數、直接地址、間接地址、偏移量等。
圖 1-2 指令格式
圖 1-2中,Ms 表示源操作數的尋址方式,Md 表示目的操作數的尋址方式,Rs 和 Rd分別表示的是源操作數和目的操作數的寄存器號。
1.2.2 尋址方式及編碼
在圖 1-2中可以看出,尋址方式 Ms、Md 分別由 IR 的 9、8 和 4、3 位表示。各位含義見(jiàn)表 1-1。
2
|
1.2.3 雙操作數指令
本模型機設計了 9 條雙操作數指令:
1.2.4.1 移位類(lèi)指令
SHL、SHR:邏輯左移、右移
SAR:算術(shù)右移
ROL、ROR:循環(huán)左移、右移
RCL、RCR:帶進(jìn)位的循環(huán)左移、右移
指令編碼格式如下:
1.2.4.2 條件轉移指令
1.2.4.3 單操作數運算指令和無(wú)條件轉移指令
INC、DEC、 NOT、JMP
指令編碼:
1.2.4.4 堆棧指令和子程序調用指令
PUSH、POP、CALL
指令編碼:
1.2.5 無(wú)操作數指令
模型機設計有 4 條無(wú)操作數指令(NOP、RET、HALT、RETI)。由于沒(méi)有操作數,(IR15~5
用全 0 表示擴展,(IR4~0)用于表示無(wú)操作數指令的操作碼,其指令格式如下。
表 1-2 指令操作碼編碼表
1.3 微程序控制器
1.3.1 微程序控制器的基本構成
微程序控制器由五部分組成,基本組成框圖如圖 1-3。
圖 1-3 微程序控制器的基本組成
(1)控制存儲器 CM ,存放微程序。
(2)微地址寄存器 uAR,存放 CM 地址。
(3)微指令寄存器 uIR ,存放由 CM 中取出的微指令。
(4)微地址形成線(xiàn)路 uAG,形成微地址,送給 uAR。
該電路有三個(gè)輸入,除了 µIR 的順序控制部分之外,還有 IR 和 PSW。IR 主要用于產(chǎn)生微程序的入口地址,比如依據指令的操作碼形成對應各指令執行階段的微程序入口地址。PSW 中的狀態(tài)標志,在某些需要判定是否符合條件的場(chǎng)合,決定分支轉移的微地址。
(5)時(shí)序部件,產(chǎn)生微程序控制器的時(shí)鐘信號。
微程序控制器的基本時(shí)序單位是微周期,微周期是一條微指令執行所需的時(shí)間,一條微指令的執行時(shí)間包括兩部分:一部分是從 CM 中讀取微指令所需要的時(shí)間,這個(gè)時(shí)間便是 ROM 的讀出時(shí)間,另一部分是微指令執行所需要的時(shí)間,這個(gè)時(shí)間包括微命令譯碼時(shí)間 CPU 內部數據通路的傳輸時(shí)間。
本設計中微程序的時(shí)序由 CP1 和 CP2 兩個(gè)等周期信號組成。CP1 信號上升沿的作用是將微地址打入控存微地址寄存器,啟動(dòng)一次讀操作。CP2 的上升沿的作用是將從 CM 中讀取的微指令打入微指令寄存器,這標志著(zhù)取微指令的結束和執行微指令的開(kāi)始。顯然,CP1的上升沿到 CP2 的上升沿為取微指令時(shí)間,而從 CP2 的上升沿至下一個(gè) CP1 的上升沿為執行微指令時(shí)間。
6
圖 1-4 微程序控制方式的時(shí)序
1.3.2 微指令格式設計
在本設計中,微指令的編碼方式采用字段直接編碼方式。微指令格式如表 1-3所示,其中數據傳送控制類(lèi)微命令占 1,2 兩個(gè)字段,操作類(lèi)命令占 3、4、5 共三個(gè)字段,下址字段 占 9 位,微轉移方式字段占 4 位,微轉移方式見(jiàn)表 1-4,微指令的總寬度為 32 位。
表 1-3 模型機微指令格式
表 1-4 模型機微轉移方式字段 BM
BM | 操作 | 意義 |
0 | NA→µAR | 固定轉移 |
1 | NA→µAR,,INTR·IF→µAR7 | 根據是否有中斷請求且是否允許中斷產(chǎn)生兩分支 |
2 | NA→µAR, ——— ——— ——— ——— ——— ——— IR 15· IR 14· IR 13· IR 12·IR 11·IR 10→µAR ,1 ——— ——— ——— ——— ——— IR 9· IR · IR · IR8 7 6·IR 5→µAR0 | 形成取源操作數、取目的操作數和執行階段的微程序入 口地址。如果是雙操作數指令,則 µAR =0;如果是單1 操作數指令,則 µAR =1、µAR =0;如果是無(wú)操作數指1 0 令,則 µAR =1、µAR =1。1 0 |
3 | NA→µAR, ?{OP, PSW(Z,O,S, C)}→µAR0 | 根據條件轉移指令操作碼和 PSW 的 ZF、OF、SF、CF 狀 態(tài)標志決定微地址,若滿(mǎn)足條件 µAR =1,否則 µAR0 0 =0。 |
4 | 按操作碼 OP 多路轉移 | 按操作碼 OP形成多路微轉移地址 |
5 | NA→µAR,M→µAR1,0 | 按尋址方式 M 形成多路微轉移地址 |
6 | NA→µAR,M ′→µ AR2,1 | 按尋址方式 M′形成多路微轉移地址 |
7 | NA→µAR,IR + IR →µAR4 3 0 | 根據目的操作數是否為寄存器尋址產(chǎn)生兩分支:Md=00 (寄存器尋址),µAR =0;否則 µAR =1。0 0 |
7
評論