十六位CPU轻松实现,这都不是事儿
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 |
- Nut/OS和μC/OS—II的实时调度算法比较 (04-07)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 大容量无线传输技术中高性能DSP 的启动方法(05-04)
- 双CPU在多I/O口系统中的应用(07-05)
- Windows操作系统多核CPU内核线程管理方法(01-21)
- 基于DSP和80C196双CPU构成的高速实时控制系统(01-11)