计算机组成原理课程设计报告文档格式.docx
《计算机组成原理课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
3)分段编码格式是将控制场分成几段。
若某段长i位,则经译码,该段可表示2i个互斥的即不能同时有效的微操作命令。
采用这种格式的微指令长度较短,而可表示的微操作命令较多,但需译码器。
2.微程序顺序控制方式的设计
微程序顺序控制方式指在一条指令对应的微程序执行过程中,下一条微指令地址的确定方法,又叫后继地址生成方式。
下面是常见的两种。
1)计数增量方式
这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器MPC。
MPC的初值由微程序首址形成线路根据指令操作码编码形成。
在微程序执行过程中该计数器增量计数,产生下一条微指令地址。
这使得微指令格式中可以不设置“下地址场”。
缩短了微指令长度,也使微程序控制部件结构较简单。
但微程序必须存放在控存若干连续单元中。
2)断定方式
微指令中设有“下地址场”,它指出下条微指令的地址,这使一条指令的微程序中的微指令在控存中不一定要连续存放。
在微程序执行过程中,微程序控制部件中的微地址形成电路直接接受微指令下地址场信息来产生下条微指令地址,微程序的首址也由此微地址形成电路根据指令操作码产生。
3.本系统的微指令格式
微程序设计的关键技术之一是处理好每条微指令的下地址,以保证程序正确高效地进行。
本系统采用分段编码的指令格式,采用断定方式确定下一条微指令的地址。
微操作控制信号
控制场下地址场
微指令寄存器MIR
微指令
控存CM
微地址
微地址形成电路
状态条件
指令操作码
微指令译码电路如下:
图5—3微指令译码电路
图中MS24—MS16对应于微指令的第24—16位,S3S2S1S0MCn为运算器的方式控制,详见实验一和实验二;
WE为外部器件的读写信号,‘1’表示写,‘0’表示读;
1A、1B用于选通外部器件,通常接至底板IO控制电路的1A1B端,四个输出Y0Y1Y2Y3接外部器件的片选端。
图5—3中MS15—MS13对应于微指令中的F1,经锁存译码后产生6个输出信号:
LRi、LDR1、LDR2、LDIR、LOAD、LAR。
其中LDR1、LDR2为运算器的两个锁存控制(见实验一);
LDIR为指令寄存器的锁存控制(见系统介绍中指令寄存器电路);
LRi为寄存器堆的写控制,它与指令寄存器的第0位和第1位共同决定对哪个寄存器进行写操作(见系统介绍中寄存器堆电路和图5-4);
LOAD为程序计数器的置数控制,LAR为地址寄存器的锁存控制(见系统介绍中程序计数器和地址寄存器电路)。
以上6个输出信号均为‘1’有效。
图5—3中MS12—MS10对应于微指令中的F2,经锁存译码后产生6个输出信号:
RAG、RBG、RCG、299-G、ALU-G、PC-G。
其中RAG、RBG、RCG分别为寄存器Ax、Bx、Cx的输出控制(见系统介绍中寄存器堆电路);
299-G为移位寄存器的输出控制(见实验二);
ALU-G为运算器的输出控制(见实验一);
PC-G为程序计数器的输出控制(见系统介绍中程序计数器和地址寄存器电路)。
以上信号均为‘0’有效。
图5—3中MS9—MS9对应于微指令中的F3,经锁存译码后产生6个输出信号:
P1、P2、P3、P4、AR、LPC。
其中P1、P2、P3、P4位测试字,其功能是对机器指令进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支和循环运行(见实验4的图4-1(b)和图5-4);
AR为运算器的进位输出控制(见实验一);
LPC为程序计数器的时钟控制(见系统介绍中程序计数器电路)。
以上信号均为‘1’有效。
三、系统工作原理描述
1.数据通路
Dais-CMH+实验系统中,在设为复杂模型机时数据通路如图。
2.机器指令格式
系统可以支持三种指令格式,在这里我们只介绍本实验中将要用到的两种:
格式一:
单字节指令表示,操作数的寻址方式采用寄存器寻址,其格式如下:
其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,在无操作数时,第0~3位无意义。
并规定:
格式二:
二字节指令,第一字节为操作码,第二字节D为操作数,其中OP-CODE为操作码,Rs源寄存器,Rd为目的寄存器。
IN:
单字节(8位)指令。
其含义是将数据开关上的8位数据输入到目的寄存器R0中;
MOV:
双字节传送指令。
其含义是将源地址指出的内容传送到目的地址指出的单元(或寄存器)中,其中①MOVR1,#XXH:
地址单元01和02中的指令含义是将指令的第二字节作为操作数传送到目的寄存器R1中。
②MOVaddr,R1:
地址单元04和05中的指令含是将源寄存器R1的内容传送到指令的第二字节所指出的目的地址单元中;
ADD:
单字节指令。
其含义是将目的寄存器R1的内容与源寄存器R0的内容相加,结果存入目的寄存器R1;
OUT:
双字节指令。
其含义是将内存中以第二字为地址的单元内容通过数据总线送至LED显示;
JMP:
其含义为执行这条指令时,将指令第二字节的内容装入程序计数器(PC)。
3.微程序控制电路
控制存储器采用4片6116静态存储器。
微指令寄存器32位(其中微码26位,微指令下地址6位),用3片8D触发器(273)和1片4D触发器(175)组成。
用3片上跳沿触发的双D触发器(74LS74)及3个与非门构成的译码电路组成;
在指令译码方面有两个选项:
简单模型机(3位操作码)和复杂模型机(4位操作码)。
我们选用复杂模型机(详见图1-4-12(c)),其产生的操作见表2-5-4B字段;
表2-5-3中A字段表示C、B、A通过1片138译码器得到控制信号用来控制总线数据的来源。
图1-4-12(d)是指令的低4位的逻辑译码,指令寄存器的第1、0位组合产生LDR0、LDR1、LDR2和LDSP信号,用来控制对目的寄存器(R0、R1、R2和SP)的写入。
而Rd-B和Rs-B(这两个信号由A字段产生)与指令寄存器的第3、2位组合产生R0-B、R1-B、R2-B和SP-B信号,用来控制将R0、R1、R2和SP的内容输出到数据总线。
Ri-B、SP-B分别控制将变址寄存器(R2)和栈指针(SP)的内容输出到数据总线。
4.微指令格式
每一个计算机系统都有它的指令系统,系统中的每一条机器指令都要完成不同的功能,而这些功能的完成就是由微程序控制完成的。
每一条机器指令都对应着一组微指令,这些微指令我们称为微程序。
微程序由计算机设计人员完成,在计算机出厂时已经固化在ROM中,我们这个实验就是要完成这项工作。
让我们先来了解一下Dais-CMH+实验系统中的微指令格式以及机器指令与微指令之间是如何确立联系的。
LDR0(M3)的功能是写目的寄存器;
它与指令寄存器中的1、0位共同完成写通寄存器R2、R1、R0和SP;
LDDR1(M4)、LDDR2(M5)的功能分别是写暂存寄存器DR1和DR2;
LDAR(M8)、LDIR(M6)的功能分别是写地址寄存器AR、指令寄存器IR,A9(M19)、A8(M18)是译码器139的输入。
其中,A9A8=00(Y0有效)选中系统内存6116或缓冲输入开关,A9A8=01(Y1有效)、A9A8=10(Y2有效)用作扩展芯片的片选,A9A8=11(Y3有效)选中系统“锁存输出单元”;
CE(M17)、WE(M2)分别是系统内存6116的片选信号和系统的写信号;
LOAD(M16)、LDPC(M7)用来控制程序计数器PC的两种操作。
①装载PC操作:
LOAD=1、LDPC=1;
②PC+1操作:
LOAD=0、LDPC=1;
Cn(M15)、M(M14)、S0(M13)、S1(M12)、S2(M11)、S3(M10):
用来控制运算器181
和移位寄存器299操作的信号;
SW-B(M0)有效时表示缓冲输入单元的输入开关与总线连接;
AR(M22)用来控制运算器单元的进位及结果为零标志的输出;
C(M25)、B(M24)、A(M23)被称作A字段,是译码字段。
用来控制总线上的数据来源。
UA0-UA5为6位后续微地址的基地址(注意:
其微地址的排列顺序为前低后高)。
由于微程序不是顺序执行的,因此每一条微指令都要给出将要执行的下一条微指令的微地址;
PX3(M20)、PX2(M9)、PX1(M1)形成了B字段,B字段也是译码字段,与UA5-UA0共同产生微指令的后续微地址;
我们从B字段中可以看到PX3、PX2、PX1为000时就是后续基地址UA5、UA4、UA3、UA2、UA1、UA0,如果PX3、PX、PX1为001或010时后续地址的产生与机器指令有关,这就是指令译码的过程。
B字段用来确定测试什么功能及如何得到后续地址(用十六进制表示):
①P
(1)测试操作码的高4位,UA5~UA0表示的是跳转的基地址(基地址的后4位必须是0)实际有效地址为E=基地址∨操作码的高4位,∨操作时低位对齐。
②P
(2)测试操作码的3、2位
实际有效地址为E=基地址∨操作码的3、2位(基地址的低2位(UA1、UA0)为0)
③P(Z+CY)测试进位(CY)、结果为零(Z)标志位。
JCZ根据P(3)测试结果形成微指令的后续地址,两标志皆为'
0'
时,微指令的下地址为UA5~UA0,两标志之一为“1”时,UA4将自动置“1”,也就是说测试P(3)微指令后续基地址的UA4必须设成“0”。
5.微程序及微程序流程
由微程序流程图可知,微程序控制器首先在给出的微地址为00H中读出微指令,然后给出下一条微指令地址01H。
微指令地址01H、02H这两条微指令均为公用微指令,机器指令的取指就是从这里开始的。
微地址为01H的微指令执行的是PC→AR(要执行指令的地址送到地址寄存器AR)及PC+1(PC指向下一条机器指令或机器指令的下一字节)微指令,同时给出下一条微指令地址02H。
微地址02H中微指令执行的是(AR)→IR(把AR所指RAM中的指令送到IR寄存器),同时给出判别信号P
(1)及微指令基地址(10H)。
下一条微地址将根据P
(1)的测试结果得出,即:
下一条微地址=基地址(10H)∨指令寄存器(IR)中的高4位。
在产生下一条微指令地址时,由于指令中IR7、IR6、IR5、IR4不同,所产生的下一条微指令地址也不同。
在IR7、IR6、IR5、IR4为00(即:
NOP机器指令)时,执行10H微指令,而10H(NOP)这条微指令的功能只是给出了微指令的下地址01。
每一条机器指令对应微程序的最后一条微指令后续地址一定是01H。
接下来重新执行微指令地址为01H、02H的公共微指令,取出下一条机器指令的操作码,再根据P
(1)的测试结果得出下一条微指令的微地址。
注:
1.因为要求用复杂模型机方式,因此微地址06中的微指令的C、B、A、AR一
定不是0100。
2.基地址处一定要写入可执行的微指令,否则将不能“程单步”运行。
四、外接口定义
Dais-CMH+/CMH计算器组成原理教学实验系统一台:
Dais-CMH+计算机组成原理教学实验系统采用内、外总线结构,按开放式的要求设计了各关联的单元实验电路,创造了按键式操作环境,实验方式灵活多样。
在系统监控的管理下向用户提供“L”(单元手动)、“H”(单元自动)、“M”(模型机)三种工作方式;
自带虚拟PC逻辑示波器、逻辑笔等测试工具,Windows、DOS及LED多个操作平台自由选择,可自成一体独立运行,亦可配合先进的动态跟踪集成软件,凭借PC资源形成强大的在线调试与图形示意系统。
实验用扁平线导线若干:
用于连接电脑与Dais-CMH+/CMH计算器组成原理教学实验系统。
导线若干:
用于Dais-CMH+/CMH计算器组成原理教学实验系统各组件之间的连接。
电脑一台:
显示“指令系统窗口”。
五、系统详细设计
1.用8芯扁平线连接图2-5-3中所有标明“
”或“
”图案的总
线接口。
用双头实验导线连接图2-5-3中所有标明“
”图案的插孔。
连接相关的实验电路。
ADD程序段
$M30006D49;
PC->
ARPC+1
$M0910100A;
M->
A
$M0A006D4B;
$M0B10200C;
B
$M0C04920D;
A+B->
$M0D039201;
A<
<
1->
R0
MOV程序段
$M34186006;
IN->
AR
$M06103007;
MEM->
$M07186008;
$M08200401;
R0->
MEM
1)MOVR0,#4H(将立即数装入寄存器R0)
2)ADDA,R0将寄存器R0的数据输出到累加器W中
P0020;
MOVR0,IMM
P0140;
MOVR1,[10H]
P0209
P0360;
ADDR0,R1
P040B
P0580;
JCZL1
P060A
P07A0;
MOV[11H],R0
P0800
P0955;
HLT
(3)微程序
微程序写法:
根据基本模型机系统数据通路框图以及微指令流程图,将每条微指令代码化,译成二进制代码表,在译成二进制代码时要根据基本模型机系统通路图来定哪些开关有效,根据是否有效置1或0对应写入微指令格式中,并将二进制代码表转换成十六进制格式文件。
M0000000080
M0120006040
M0200801012
M0300804020
M04008008A0
M05A0000460
M0640290280
M0700804068
M0800000080
M0900000281
M0A200060C0
M0B200060E0
M0C200060C8
M0D200060A8
M0E00000080
M0F00000080
M1000402089
M1120006048
M1200800189
M1300804028
M1403800080
M1500C02080
M16A0800180
M1700000080
M1800000080
。
M3F00000080
六、主要参考文献
1.《计算机组成原理实验指导书》,中国计量学院编
2.《计算机原理课程设计指导书》
3.《计算机组成原理》,唐朔飞编,高等教育出版社