Board logo

标题: 十六位CPU轻松实现,这都不是事儿 [打印本页]

作者: 苹果也疯狂    时间: 2015-10-28 19:55     标题: 十六位CPU轻松实现,这都不是事儿

1.1 CPU 的数据通路

模型计算机硬件系统的数据通路如图  1-1。CPU 的字长为 16 位,内部采用 16 位宽的单总线结构,包括运算器和控制器两个部件。为了便于后面的设计,图中还包括了系统总线和存储器,系统总线采用单总线结构,包括 16 位的数据总线 DB、16 位的地址总线 AB和控制总线 CB。主存、外设与 CPU 共用一组系统总线;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






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0