一、拟定指令系统
指令系统是设计计算机的依据 ,拟定指令系统将涉及基本字长、指令格式、指令种类、寻址方式等内容。
1、基本字长:
程序设计平台中配置的存储器容量为256*8,可知道基本字长定为8位。
2、指令格式:
指令格式可有单字长和双字长指令两种,在双字长格式中,第二字节一般定义为操作数或操作数地址。 指令格式为:
7 4 3 2 1 0 操作码OP 源操作数 目的操作数
3、指令类型:
模型机有单操作数指令、双操作数指令和无操作数指令。 操作码OP共四位,最多可定义16条指令。 数据的传送单位为8位
数据的传送范围R→R R→RAM RAM→R 4、寻址方式:
由于指令较短,操作数字段仅两位,为了简化硬件设计,将操作数字段和目的操作数字段的寻址定义为不同的含义。
源操作数字段寻址方式 目的操作数寻址方式 00 01 10 R0 或R1 (R0) I 00 01 10 R1 (R1) I D 11 D 11 Ri表示操作数就在寄存器中
(Ri)表示操作数地址在寄存器中
I指令的第二个字节为操作数或称立即寻址 (D)指令的第二个字节为操作数的地址 源操作数使用R0或R1寻址 目的操作数R1寻址 二、 确定总体结构
1、 寄存器的设置: R0,R1为通用寄存器,8位。 IR为指令寄存器,8位。 2、加法器的设置:
采用8位带串行进位加法器。
3、选择器的设置:
连入A选择器的数据来源是RAM的读出数据和R0寄存器的数据。连入B选择器的数据来源是PC的数据和R1的数据。
4、数据通路: 数据通路的设计,在总体结构中是最重要的一个问题,模型机的数据通路是以总线为基础,以CPU为核心的。 信息的传送路径:
1
PC程序计数器,8位。 MAR为地址寄存器,8位。
取指令:
MA CPIR RAM→选择器A→Σ→BUS→IR 送指令地址:
PB CPMAR PC→选择器B→Σ→BUS→MAR 指令计数器+1:
PB C0 CPPC
总体结构框图:
CPR0 R0 CPR1 R1 CPPC PC REST PC→选择器B→Σ→BUS→PC R0→R1:
RA CRR1 R0→选择器A→Σ→BUS→R1 R1→RAM:
RB WR R1→选择器B→Σ→BUS→RAM
CPIR IR CPMA MAR REST AD7-0 A选择器 B选择器 MD 微程序控制器 3# RAM M R0 PC R1
三、 逻辑设计:
总体结构设计之后,便开始总体结构中各部件的逻辑设计和部件之间的连接。 1、加法器的逻辑设计: 模型机中的加法器是由二个四位全加器构成,全加器之间采用简单的串行进位。见附录中图表1、5、6。
2、选择器的设计:
选择器A和选择器B的结构形式一样,在EN和S0的控制下,分别选择R0的或R1的数据通过选择器,进入加法器。选择器使用MUX82E,其符号和真值表见附录。
3、寄存器的设计: 不带复位的寄存器:
结构中R0,R1通用寄存器,可存入操作数或结果、中间结果,每个寄存器均由8个D触发器构成。在CPRi的作用下接收总线的数据送入寄存器,输出连入选择器。指令寄存器IR其结构同通用寄存器。逻辑图如附录图表4所示。
带复位的寄存器:
结构中MAR地址寄存器是一个带复位的寄存器,带复位是指当有复位信号时,MAR清零。逻辑图如附录图表3所示。
程序计数器的设计:
PC加1是通过加法器实现的。
复位信号RET的作用是有复位信号时,计数器PC清零。
部件之间的连接:
由系统结构可看出,部位之间的连接是采用以CPU为中心的总线连接方式。加法器的输出通过总线BUS连接到所有寄存器和存储器的输入端,除指令寄存器IR和地址寄存器
2
MAR的输出端外,其他部件的输出端分别送入选择器A和选择器B。
四、确定控制方式
控制命令是确定信息的流向,不同的数据通路需要不同的控制指令。即组合逻辑方式和微程序方式,模型机采用微程序方式。微程序的执行方式采用增量、垂直方式。
1、微程序控制器的结构:
微程序控制器由微地址计数器、微程序存储器、微指令寄存器、译码器等组成。 2、微程序控制器的时序:
微程序控制器的时序如图所示:
P
P脉冲的低电平用做控制存储器读命令µRD
P脉冲的上升边沿将读出的微指令µIR
P的上升边沿将形成的后继地址送微程序计数器µPC,同时将运算结果(总线的数据)送指定的寄存器。
3、微指令格式:
微指令字长共16位,即μIR15-μIR0。 (1)微指令字段定义:
A选择控制器:μIR15-μIR14 0 0
0 1
备用 RA MA 备用
IR13-μIR12 备用
1 1 0 备用
1 1 1 备用 低位进位控制:μIR8 0 C0=0 1 C0=1
存储器读写控制:μIR5-μIR4 1 0 RD 0 1 WR
后继微地址形成方式:μIR2-μIR0 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
备用
PC+1顺序执行 JP转至取指微程序 QJP按操作码转移 备用 备用 备用 备用
1 0 1 1 B选择控制器:μ0 0 0 1 1 0 1 1 输出分配:μ0 0 0 0 0 0 1
0 1 1 0
1 0 1 0
PB RB 备用 IR11-μIR9 备用
CPR0 CPR1 CPPC CPIR
1 0 1 CPMAR (2)微命令形成逻辑
微指令格式由三部分组成,既微指令字段定义,微命令形成逻辑和后继微地址产生逻辑。 (3)后继微地址产生逻辑:
为简单起见只选三种后继微地址生成方式即增量方式、无条件转移方式、按操作码转移方式。为简化设计,机器指令的操作码直接为该指令的微程序入口地址。微地址计数器使用CBU38,其符号和真值表见附录。
当EN=1,PS=0,CAI=1时,微程序计数执行加1操作。
JQ接计数器的异步清零端使计数器清零,无条件转移至取指微程序。 QJP接计数器的置数端进行同步置数,按操作码转移。
3
4、微指令编写:
机器指令共2种,即MOV指令和ADD指令,对这两种指令的每一种寻址方式都有一段微程序与之相对应。部分微程序编制如下: 微操作 PC→MAR PC+1→PC RAM→IR JQ MOV R1,R0 R1→R0 MOV D,R1 PC→MAR PC+1→PC D→MAR R1→RAM MOV I,R1 PC→MAR PC+1→PC I→R1 ADD R0,R1 R0 +R1→R1 ADD R1,I PC→MAR PC+1→PC I+ R1→R1 28 29 00 00 01 01 10 地址 00 01 02 03 04 05 06 07 08 5、指令执行流程:
101 011 010 指令 MOV 7,R1 MOV R1,R0 MOV 3,R1 ADD R0,R1 MOV R1,D 0 1 0 00 00 10 001 001 010 1A 17 A4 01 01 22 18 19 1A 20 00 00 10 01 01 01 00 10 101 011 010 010 0 1 0 0 00 00 10 00 001 001 010 010 1A 17 84 64 01 01 22 02 10 13 14 15 16 00 00 00 10 00 10 01 01 00 10 001 101 011 101 000 0 0 1 0 0 00 00 00 00 01 010 001 001 001 010 22 1A 17 8A 20 02 01 01 21 12 微地址 00 01 02 03 1514 A 00 00 10 00 1312 B 01 01 00 00 11 10 9 输出 分配 101 011 100 000 8 5 4 2 1 0 转移方式 001 001 001 011 十六进制代码 ROM2 ROM1 1A 17 88 00 01 01 21 03 ##C0 RDWR 0 0 0 0 00 00 00 00 2A 10 为调试编制的程序: 十六进制代码 18 07 10 18 03 20 13 08 00 4
00 PC→MAR PC+1→PC RAM→IR JQ 18 PC→MAR PC+1→PC I→R1 10 R1→R0 20 R0 +R1→R1 13 PC→MAR PC+1→PC D→MAR R1→RAM 五、 分调
将模式开关至于分调
1、1032E系统
平台上的所有开关和发光二极管均随意编制用做数据输入和状态显示。 典型部件如下: 1、选择器A,B
2、带复位的寄存器MAR 3、不带复位的寄存器R0,R1 4、程序计数器PC 在部件设计无错、连线无错、1032E的管脚定义无错时可生成下载文件下载到1032E中。 2、单片机系统
微程序经过检查无误后,将模式开关至分调后通过键盘写入响应的单元中。 六、 统 调
将模式开关置于统调,此时平台上的开关及发光二极管的设置情况如下: 开关K15--K0无效,不可编程使用。
L15--L0用于显示IR15--IR0的状态,不能作他用。
LED15--LED8用于显示从存储器读出的内容和数据总线BUS的内容不能再作他用。 LED7--LED0用来观察8位加法器的输出。 (1) 按复位健RET
使MAR清零、指令计数器清零,保证从存储器0号单元取指令。
使微程序计数器PC清零,保证从而2#ROM,1# ROM的0#单元取指令微程序的第一条微指令。
(2) 执行微程序
按复位健后,PC、MAR的值为0 。
0号单元的内容是一条指令,指令代码读出后,在MA的作用下,进入加法器至总线。此时,总线上的内容点亮LED15-8,查看是否正确。
注意的是:在没有按下次脉冲键前,数据通路的内容一直不变。
按一次脉冲键又产生一负脉冲。该负脉冲反相后的上升沿产生CPIR,将上条微指令读出的指令代码送IR,同时上升沿还将PC+1。该负脉冲的低电平用以读出PC指示的第二条
5
微指令。
这样一一取出微指令并执行微指令就会读出并执行存放在MA中的程序。 七、 总结
开始编写微程序时,取微指令部分没有JQ。在调试过程中发现第二条指令无法取出。经分析发现,RAM→IR一句执行时第二条指令还未打入IR寄存器,因此无法通过这条指令进行跳转。加上JQ后程序执行正常。
通过这次设计,进一步理解了计算机的工作原理。
八、附录
The truth table of CBU38:
Input
Output
CD PS LD D EN CAI CLK Q CAO 1 x x x x x x 0 0 0 1 x x x x ↑ 1 CAI×EN 0 0 1 d x x ↑ d * 0 0 0 x 0 x x Q 0 0 0 0 x x 0 x Q 0 0 0 0 x 1 1
↑ count up **
The truth table of DEC4E:
Input Output EN S1 S0 Z0 Z1 Z2 Z3 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 x x 0 0 0 0
The truth table of MUX82E:
6
图表 1八位全加器
Input Output
EN S0 Z0 Z1 Z2 Z3 Z4 Z5 Z6 Z7 1 0 A0 A1 A2 A3 A4 A5 A6 A7 1 1 B0 B1 B2 B3 B4 B5 B6 B7 0 x 0 0 0 0 0
0 0 0
图表 2 3-8线译码器
7
图表 3带清零端的8位寄存器
图表 4不带清零端的8位寄存器
8
图表 5一位全加器
图表 6四位全加器
9
因篇幅问题不能全部显示,请点此查看更多更全内容