新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 十六位CPU輕松實現,這都不是事兒

        十六位CPU輕松實現,這都不是事兒

        作者: 時間:2017-06-03 來源:網絡 收藏

        1.1 的數據通路

        本文引用地址:http://www.104case.com/article/201706/346850.htm

        模型計算機硬件系統的數據通路如圖 1-1。 的字長為 16 位,內部采用 16 位寬的單總線結構,包括運算器和控制器兩個部件。為了便于后面的設計,圖中還包括了系統總線和存儲器,系統總線采用單總線結構,包括 16 位的數據總線 DB、16 位的地址總線 AB和控制總線 CB。主存、外設與 共用一組系統總線;CPU 內部總線 IB 與系統總線間通過 DR、AR 相聯。主存儲器的字長也是 16 位,并且按字編址,不能按字節訪問。

        圖 1-1 模型計算機硬件系統的數據通路

        1.2 指令系統

        模型機的指令系統包括各類傳送類指令、算術邏輯運算類指令、移位類指令、轉移類指令、子程序調用返回指令、輸入輸出類指令等。在尋址方式上采用最典型的尋址方式,分別是立即尋址、直接尋址、間接尋址、寄存器尋址、寄存器間接尋址、寄存器變址尋址、相對尋址 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 位表示。各位含義見表 1-1。

        2

        尋址方式編碼

        M(2)

        Rn/M’3 位)

        寄存器尋址

        Rn

        00

        寄存器號

        寄存器間接尋址

        (Rn)

        01

        寄存器號

        寄存器變址尋址

        disp(Rn)

        10

        寄存器號

        立即尋址

        #imm

        11

        011

        直接尋址

        addr

        11

        010

        間接尋址

        (addr)

        11

        001

        相對尋址

        +disp

        11

        000

        表 1-1 尋址方式及編碼

        1.2.3 雙操作數指令

        本模型機設計了 9 條雙操作數指令:

        MOV,

        ADD、ADC,SUB、SUBB,CMP

        AND、OR、XOR

        格式如下:

        1.2.4.1 移位類指令

        SHL、SHR:邏輯左移、右移

        SAR:算術右移

        ROL、ROR:循環左移、右移

        RCL、RCR:帶進位的循環左移、右移

        格式如下:

        1.2.4.2 條件轉移指令

        JC、JNC、JO、JNO、JS、JNS、JZ、JNZ

        格式如下:

        1.2.4.3 單操作數運算指令和無條件轉移指令

        INC、DEC、 NOT、JMP

        指令編碼:

        1.2.4.4 堆棧指令和子程序調用指令

        PUSH、POP、CALL

        指令編碼:

        1.2.5 無操作數指令

        模型機設計有 4 條無操作數指令(NOP、RET、HALT、RETI)。由于沒有操作數,(IR15~5

        用全 0 表示擴展,(IR4~0)用于表示無操作數指令的操作碼,其指令格式如下。

        1.2.6 指令操作碼編碼表

        表 1-2 指令操作碼編碼表

        1.3

        1.3.1 的基本構成

        由五部分組成,基本組成框圖如圖 1-3。

        圖 1-3 微程序控制器的基本組成

        (1)控制存儲器 CM ,存放微程序。

        (2)微地址寄存器 uAR,存放 CM 地址。

        (3)寄存器 uIR ,存放由 CM 中取出的

        (4)微地址形成線路 uAG,形成微地址,送給 uAR。

        該電路有三個輸入,除了 µIR 的順序控制部分之外,還有 IR 和 PSW。IR 主要用于產生微程序的入口地址,比如依據指令的操作碼形成對應各指令執行階段的微程序入口地址。PSW 中的狀態標志,在某些需要判定是否符合條件的場合,決定分支轉移的微地址。

        (5)時序部件,產生微程序控制器的時鐘信號。

        微程序控制器的基本時序單位是微周期,微周期是一條執行所需的時間,一條微指令的執行時間包括兩部分:一部分是從 CM 中讀取微指令所需要的時間,這個時間便是 ROM 的讀出時間,另一部分是微指令執行所需要的時間,這個時間包括微命令譯碼時間 CPU 內部數據通路的傳輸時間。

        本設計中微程序的時序由 CP1 和 CP2 兩個等周期信號組成。CP1 信號上升沿的作用是將微地址打入控存微地址寄存器,啟動一次讀操作。CP2 的上升沿的作用是將從 CM 中讀取的微指令打入微指令寄存器,這標志著取微指令的結束和執行微指令的開始。顯然,CP1的上升沿到 CP2 的上升沿為取微指令時間,而從 CP2 的上升沿至下一個 CP1 的上升沿為執行微指令時間。

        6

        圖 1-4 微程序控制方式的時序

        1.3.2 微指令格式設計

        在本設計中,微指令的編碼方式采用字段直接編碼方式。微指令格式如表 1-3所示,其中數據傳送控制類微命令占 1,2 兩個字段,操作類命令占 3、4、5 共三個字段,下址字段 占 9 位,微轉移方式字段占 4 位,微轉移方式見表 1-4,微指令的總寬度為 32 位。

        表 1-3 模型機微指令格式

        表 1-4 模型機微轉移方式字段 BM

        BM

        操作

        意義

        0

        NA→µAR

        固定轉移

        1

        NA→µAR,,INTR·IF→µAR7

        根據是否有中斷請求且是否允許中斷產生兩分支

        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;如果是無操作數指1 0

        令,則 µAR =1、µAR =1。1 0

        3

        NA→µAR,

        ?{OP, PSW(Z,O,S, C)}→µAR0

        根據條件轉移指令操作碼和 PSW 的 ZF、OF、SF、CF 狀

        態標志決定微地址,若滿足條件 µ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

        根據目的操作數是否為寄存器尋址產生兩分支:Md=00

        (寄存器尋址),µAR =0;否則 µAR =1。0 0

        7



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 金湖县| 宜春市| 玉山县| 曲麻莱县| 龙里县| 大名县| 康马县| 汶川县| 罗山县| 彭山县| 灵宝市| 牟定县| 庄河市| 庆云县| 洞口县| 吴忠市| 河津市| 图们市| 枣阳市| 营山县| 沅江市| 韶山市| 永福县| 怀宁县| 桦川县| 武义县| 康保县| 沾益县| 新野县| 友谊县| 陵水| 博爱县| 遂川县| 安康市| 沛县| 鄱阳县| 沙田区| 明光市| 邹城市| 岑巩县| 台南市|