计算机组成原理微程序控制器
计算机组成原理实验报告3 微程序控制器实验

实验三微程序控制器实验一.实验目的与要求:实验目的:1.理解时序产生器的原理,了解时钟和时序信号的波形;2.掌握微程序控制器的功能,组成知识;3.掌握微指令格式和各字段功能;4.掌握微程序的编制,写入,观察微程序的运行,学习基本指令的执行流程。
实验要求:1.实验前,要求做好实验预习,并复习已经学过的控制信号的作用;2.按练习一要求完成测量波形的操作,画出TS1,TS2,TS3,TS4的波形,并测出所用的脉冲Ф周期。
按练习二的要求输入微指令的二进制代码表,并单步运行五条机器指令。
二.实验方案:按实验图在实验仪上接好线后,仔细检查无误后可接通电源。
1.练习一:用联机软件的逻辑示波器观测时序信号,测量Ф,TS1,TS2,TS3,TS4信号的方法如下:(1) TATE UNIT 中STOP开关置为“RUN”状态(向上拨),STEP开关置为“EXEC”状态(向上拨)。
(2) 将SWITCH UNIT 中右下角CLR开关置为“1”(向上拨)。
(3) 按动“START”按钮,即可产生连续脉冲。
(4)调试”菜单下的“显示逻辑示波器窗口,即可出现测量波形的画面。
(5)探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的Ф插座,即可测出时钟Ф的波形。
(6)探头一端接实验仪左上角的CH2,另一端接STATE UNIT中的TS1插座,即可测出TS1的波形;(7)探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS2插座,即可测出TS2的波形。
(8)将红色探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS3插座,即可测出TS3的波形。
(9)将红色探头一端接实验仪左上角的CH1,另一端接STATE UNIT中的TS4插座,即可测出TS4的波形。
2.观察微程序控制器的工作原理:①关掉实验仪电源,拔掉前面测时序信号的接线;②编程写入E2PROM 2816A.将编程开关(MJ20)置为PROM(编程)状态;B.将实验板上STATE UNIT 中的STEP置为STEP状态,STOP置为RUN状态,SWITCH UNIT中CLR开关置为1状态;C.在右上角的SWITCH UNIT中UA5-UA0开关上置表中某个要写的微地址;D.在MK24-MK1开关上置表中要写的微地址后面的24位微代码,24位开关对应24位显示灯,开关置为1时灯亮,为0时灯灭;E.启动时序电路,即将微代码写入到E2PROM 2816的相应地址对应的单元中;F.重复C-E步骤,将表的每一行写入E2PROM 2816。
计算机组成原理-微程序控制器实验报告

计算机组成原理实验之微程序控制器实验一、实验目的1.掌握时序发生器的组成原理。
2.掌握微程序控制器的组成原理。
二、实验内容1.实验电路(1)时序发生器电路本实验所用的时序电路见图4.1。
电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。
另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。
图4.1 时序信号发生器(2)微程序控制器电路图4.2微程序控制器电路微地址转移逻辑表达式:A5=D5=μA5;A4=D4=C•P2+μA4;A3=D3=IR7•P1+μA3;A2=D2=IR6•P1+SWC•P0+μA2;A1=D1=IR5•P1+SWB•P0+μA1;A0=D0=IR4•P1+SWA•P0+μA0。
2.一些关键技术(1)微指令格式图4.3微指令格式(3)上述8条指令的微程序流程图如图4.4所示图4.4微程序流程图(4)微程序代码表表4-2微程序代码表微指令KT RRF WRF RRM WRM PR当前微地址00 0C 1E 06 07 0B 1D 0D 0E 0A 02 03 09 04 05 08 0F 下一微地址08 1E 06 07 1E 1D 0D 0E 1D 02 03 02 04 05 04 0F 10P0 1 . . . . . . . . . . . . . . . .P1 . . . . . . . . . . . . . . . . 1P2 . . . . . . . . . . . . . . . . .备用. . . . . . . . . . . . . . . . .TJ . 1 . . 1 1 . 1 1 . 1 . 1 . 1 . .LDIR . . . 1 . . . 1 . . . . . . . . 1PC+1 . . . . . . . . . . . . . . . . .LDPC# . 1 . . . 1 . . . . . . . . . 1AR+1 . . . . . . . . . . . 1 . . 1 . .LDAR# . 1 . . . 1 . . . 1 . . 1 . . . . LDDR1 . . . . . . . . . . . . . . . . . LDDR2 . . . . . . . . . . . . . . . . . LDRi . . . . . . . . 1 . . . . . . . .SW_BUS# . 1 1 . . 1 1 . 1 1 . . 1 1 . 1 . RS_BUS# . . . . 1 . . . . . . . . . . . . ALU_BUS# . . . . . . . . . . . . . . . . . RAM_BUS# . . . . . . . . . . 1 . . . . . . CER# . . . 1 . . . 1 . . . . . . . . 1 CEL# . . 1 . . . 1 . . . 1 . . 1 . . . LR/W# . . 0 . . . 0 . . . 1 . . 0 . . . Cn# . . . . . . . . . . . . . . . . .M . . . . . . . . . . . . . . . . .S0 . . . . . . . . . . . . . . . . .S1 . . . . . . . . . . . . . . . . .S2 . . . . . . . . . . . . . . . . .S3 . . . . . . . . . . . . . . . . .表4-2微程序代码表(续)微指令ADD SUB AND STA LDA JC STP OUT当前微地址10 18 11 19 12 1A 13 1B 14 1C 15 1F 16 17 下一微地址18 0F 19 0F 1A 0F 1B 0F 1C 0F 0F 0F 0F 0FP0 . . . . . . . . . . . . . .P1 . . . . . . . . . . . . . .P2 . . . . . . . . . . 1 . . .备用. . . . . . . . . . . . . .TJ . . . . . . . . . . . . 1 1LDIR . . . . . . . . . . . . . .PC+1 . 1 . 1 . 1 . 1 . 1 1 . 1 1LDPC# . . . . . . . . . . . 1 . .AR+1 . . . . . . . . . . . . . .LDAR# . . . . . 1 . 1 . . . . .LDDR1 1 . 1 . 1 . 1 . . . . . . .LDDR2 1 . 1 . 1 . . . . . . . . .LDRi . 1 . 1 . 1 . . . 1 . . . .SW_BUS# . . . . . . . . . . . . . .RS_BUS# . . . . . . 1 . 1 . . 1 . 1ALU_BUS# . 1 . 1 . 1 . 1 . . . . . .RAM_BUS# . . . . . . . . . 1 . . . .CER# . . . . . . . . . . . . . .CEL# . . . . . . . 1 . 1 . . . .LR/W# . . . . . . 0 . 1 . . . .Cn# . . . 1 . . . . . . . . . .M . 0 . 0 . 1 . 0 . . . . . .S0 . 1 . 0 . 1 . 0 . . . . . .S1 . 0 . 1 . 1 . 0 . . . . . .S2 . 0 . 1 . 0 . 0 . . . . . .S3 . 1 . 0 . 1 . 0 . . . . . .注:后缀为#的信号都是低电平有效信号,为了在控存ROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。
计算机组成原理实验报告微程序控制器实验

膁实验三微程序控制器实验一.二. 薅实验目的与要求:芄实验目的:1.2.薃理解时序产生器的原理,认识时钟和时序信号的波形;3.4.虿掌握微程序控制器的功能,构成知识;5.6.薈掌握微指令格式和各字段功能;7.8.莄掌握微程序的编制,写入,察看微程序的运转,学习基本指令的履行流程。
蚀实验要求:1.2.莁实验前,要求做好实验预习,并复习已经学过的控制信号的作用;3.4. 莇按练习一要求达成丈量波形的操作,画出TS1,TS2,TS3,TS4的波形,并测出所用的脉冲Ф周期。
按练习二的要求输入微指令的二进制代码表,并单步运转五条机器指令。
三.四. 蒄实验方案:肁按实验图在实验仪上接好线后,认真检查无误后可接通电源。
1.2. 肃练习一:用联机软件的逻辑示波器观察时序信号,丈量Ф,TS1,TS2,TS3,TS4 信号的莀方法以下:螈(1)TATEUNIT 中 STOP开关置为“ RUN”状态(向上拨), STEP开关置为“ EXEC”状态(向上拨)。
螆(2) 将 SWITCHUNIT中右下角 CLR开关置为“ 1” ( 向上拨)。
螅(3) 按动“ START”按钮,即可产生连续脉冲。
莃( 4)调试”菜单下的“显示逻辑示波器窗口,即可出现丈量波形的画面。
袈( 5)探头一端接实验仪左上角的CH1,另一端接STATEUNIT中的Ф插座,即可测出时钟Ф的波形。
膇( 6)探头一端接实验仪左上角的CH2,另一端接STATEUNIT中的 TS1 插座,即可测出TS1 的波形;节( 7)探头一端接实验仪左上角的CH1,另一端接STATEUNIT中的 TS2 插座,即可测出TS2 的波形。
膂( 8)将红色探头一端接实验仪左上角的CH1,另一端接STATEUNIT中的 TS3插座,即可测出TS3 的波形。
羈( 9)将红色探头一端接实验仪左上角的CH1,另一端接STATEUNIT中的 TS4插座,即可测出TS4 的波形。
3.4.薇察看微程序控制器的工作原理:①②羄关掉实验仪电源,拔掉前面测时序信号的接线;③2④羀编程写入 E PROM2816A.B.肈将编程开关(MJ20)置为 PROM(编程)状态;C.D. 蚄将实验板上 STATEUNIT中的 STEP置为 STEP状态, STOP置为 RUN状态, SWITCHUNIT中 CLR开关置为1 状态;E.F. 蒂在右上角的 SWITCHUNIT中 UA5-UA0开关上置表 3.2 中某个要写的微地点;G.H. 虿在 MK24-MK1开关上置表 3.2 中要写的微地点后边的 24 位微代码, 24 位开关对应 24 位显示灯,开关置为 1时灯亮,为 0 时灯灭;I.J. 膈启动时序电路,马上微代码写入到E2PROM2816的相应地点对应的单元中;K.L. 肅重复 C-E 步骤,将表 3.2 的每一行写入E2PROM2816。
计算机组成原理实验报告三微程序控制器实验

微程序控制器实验报告一、实验目的(1)掌握微程序控制器的功能、组成知识。
(2)掌握为程序的编制、写入、观察微程序的运行二、实验设备:PC机一台,TD-CM3+实验系统一套三、实验原理:微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件的为命令序列,完成数据传送和个汇总处理操作,他的执行方法是将控制各部件的微命令的集合进行编码,即将微命令的集合仿照及其指令一眼,用数字代码的形式表示,这种表示陈伟微指令。
这样就可以用一个微指令序列表示一条机器指令,这种为指令序列称作为程序。
微程序存储在一种专用的存储器中,成为控制储存器四、实验步骤1.对为控制器进行读写操作:(1)手动读写:①按图连线:②将MC单元编程开关置为“编程”档,时序单元状态开关置为“单步”档,ADDR 单元状态开关置为“置数”档③使用ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC 单元的MA5…MA0微地址灯显示④CON单元SD27…SD20,SD17…SD10,SD07…SD00开关上置24位微代码,待写入值由MC单元的M23…M024位LED灯显示⑤启动时序电路(按动一次TS按钮),即将微代码写入到E2PROM2816的相应地址对应单元中⑥重复③④⑤三步,将下图微代码写入2816芯片中二进制代码表(2)联机读写:①将微程序写入文件,联机软件提供了微程序下载功能,以代替手动读写微控制器,但微程序得以指定的格式写入本次试验的微程序如下:://************************************************************// :// // :// 微控器实验指令文件 // :// // ://************************************************************// ://***************Start Of MicroController Data****************//$M 00 000001;NOP$M 01 007070;CON(INS)->IR,P<1>$M 04 002405;R0->A$M 05 04B201;R0->B$M 30 001404;A加B->RO$M 32 183001;IN->R0$M 33 280401;R0->OUT$M 35 000035;NOP;//***************End Of MicroController Data*******************// ②写入微程序用联机软件的“【转存】-【装载数据】”功能将改格式文件装载入试验系统。
计算机组成原理5.4 微程序控制器

设计目标是
阅读三种方法
五、微命令编码
(举例)实验中用到的微指令 3 3 3 1 1 1 1
BTO OTB FUN FS
编译码 000 001 010 011 …… BTO B-DA1(t4) B-DA2(t4) B-IR(t3) …
问题:1、BTO和OTB字段采用的 是什么编码方法? 2、S3,S2,s1,s0,M,Ci字段采用的 是什么编码方法? (要能发生所有的微命令) 3、整个微指令采用的是什么编码 方法?
1
S0
1
M
1
Ci
1
空
S3
OTB
S2
S1
就是ALU对应 的控制信号
ALU-B# 299-B# SR-B# …
细节
直接表示法:操作控制字段中的每一位代表一 个微命令
LDR1 LDR2 LDR3 ………………………. 操作控制 .. ….
顺序控制
细节
编码表示法:把一组相斥性的微命令信号组 成一个小组(一段),然后通过小组译码器 对每一个微命令进行译码,译码输出作为控 制信号。
V V V
V
V V V V V
V
V
V
V V V
V V V
V
(本示例中)每一位表示一个微命令
实验仪中的微指令的基本格式(17+7)
二、微程序控制器原理框图
组成:1.控制器存储器
2.微指令寄存器
3.地址转移逻辑
三、微程序控制器举例-实验仪
四、CPU周期与微指令周期的关系
微指令周期 = 读出微指令的时间 + 执 行该条微指令的时间 微指令周期最好 等于CPU周期
0 X
X
计算机组成原理课程设计(中央处理器--微程序控制器设计)

计算机组成原理课程设计:中央处理器-微程序控制器设计摘要本文档介绍了一个针对计算机组成原理课程的设计项目,即中央处理器的微程序控制器设计。
在设计中央处理器的微程序控制器时,我们将考虑指令的执行、数据的处理以及控制信号等关键方面。
通过这个设计项目,学生将深入了解计算机系统的核心组件并掌握微程序控制器的设计方法。
引言计算机组成原理课程旨在帮助学生理解计算机硬件系统的基本原理和组成部分。
其中,中央处理器是计算机系统中最核心的部分之一。
微程序控制器是中央处理器的关键组件,它通过微指令序列控制着处理器的各个部件。
本设计项目旨在实践计算机组成原理的理论知识和设计方法,使学生能够了解中央处理器的内部结构和工作原理,并掌握微程序控制器的设计技术。
设计目标本次设计的目标是: 1. 使用合适的指令集设计一个完整的微程序控制器。
2. 实现基本的指令执行功能,包括算术逻辑单元(ALU)操作、内存读写、条件分支和跳转等。
3. 考虑控制信号与数据通路之间的兼容性和时序关系。
4. 考虑指令的效率和性能,实现合理的指令编码和微指令生成策略。
设计内容1. 指令集设计在设计微程序控制器时,首先需要确定适合该设计的指令集。
指令集应该包括基本的算术、逻辑、移位和控制指令,以及内存读写指令。
根据实际需求,可以添加其他合适的指令。
2. 微指令设计为了实现指令集中的每个指令,需要设计相应的微指令。
微指令是一系列控制信号的序列,用于控制中央处理器中各个部件的操作。
每个微指令应该包含控制信号、操作码、寄存器的选择和数据通路的选择等信息。
3. 数据通路设计数据通路连接了CPU中各个部件,包括寄存器、ALU、控制器等。
在设计数据通路时,需要考虑指令的执行顺序、数据的传递和处理,以及控制信号的生成等。
数据通路应该支持指令的执行和数据操作。
4. 控制信号设计控制信号是微程序控制器中最关键的部分,它确定了中央处理器中各个部件的操作方式和时序。
在设计控制信号时,需要考虑不同指令的差异性和并行性,确保指令的正确执行。
计算机组成原理微程序控制器

评语: 课中检查完成的题号及题数:成绩: 自评分:实验报告实验名称:微程序控制器日期:2012.12.31本人信息班级:学号:姓名:同组同学信息班级:学号:姓名:一、实验目的:1. 掌握微程序控制器的组成原理。
2. 掌握微程序的编制、写入,观察微程序的运行过程。
3. 可以自行设计一些微程序,更好地掌握微程序控制器及其工作原理。
二、实验内容:1. 对微控器进行读写操作首先对微控器进行编程(写)(1)按图连线;(2)将MC单元编程开关置为“编程”挡,时序单元状态开关置为“单步”挡,ADDR单元状态开关置为“置数”挡;(3)使用ADDR单元的低6位SA5……SA0给出微地址MA5……MA0,微地址可以通过MC单元的MA5……MA0微地址灯显示;(4)CON单元SD27…...SD20,SD17……SD10,SD07……SD00开关上置24位微代码,待写入值由MC单元的M23……M0 24位LED灯显示;(5)启动时序电路(按动一次TS按钮),即将微代码写入到EPROM2816的相应地址对应的单元中;(6)重复(3)(4)(5)3步。
再对微控器进行校验(读)(1)将MC单元编程开关置为“校验”挡,时序单元状态开关置为“单步”挡,ADDR单元状态开关置为“置数”挡;(2)使用ADDR单元的低6位SA5……SA0给出微地址MA5……MA0,相应的地址单元的数据将会被读出,重复本步。
2. 运行微程序。
3. 自行按要求设计微程序,要求编写用微程序实现存储器中两个单字节十六进制数的加法运算,结果输出至OUT单元。
要求:操作数由IN单元R0 MEMMEM R0 ALUALU R0 结果 OUT单元输出三、项目要求及分析:对于该思考题要求操作数由IN单元输入,经过R0存至MEM,再由MEM中经过R0到ALU 进行运算,将运算结果经过R0由OUT单元输出。
可以这样考虑,首先将要输入数据的地址通过IN单元输入至AR中,然后再通过IN单元将要输入的数据通过R0存至MEM中,这样可以将要参与运算的两个数据按其地址存入MEM中,接着可以输入要参与运算的数据的地址来将MEM中的数据通过R0存入ALU 中的两个寄存器中,然后ALU进行加法计算,将结果经由R0输出至OUT单元。
计算机组成原理实验 2.4 微程序控制器实验

DB 00000000B
DB 00000000B
DB 00000000B
DB 00000000B
DB 00000000B
DB 00000000B
DB 00000000B
DB 00000000B
DB 00000000B
DB 00000000B
DB 00000000B
END
END
END
问题:在写入控制存储器的微指令代码表中,地址[00001]和[00010]
【T2】BUS PC
【T2】BUSPC
【T2】
00000 00001
00001
?
【T1】PCAR,ROMBUS 【T1】
【T2】BUS PC
【T2】
00000
?
【T1】
【T2】
微程序控制器 结构示意图
指令寄存器 IR
OP码
状态条件
…
地址译码
控制存储器
微地址寄存器
地址转移 逻辑
微指令 寄存器
P字段
微操作信号
NOP
ROMIR
HLT
ROMIR
JMP1
ROMIR
JMP2
ROMIR
执行周期
停机
ROMPC
ROMPC
ROMPC
有效的微操作信号
功能
指令流 T1
#OE, AR_CLK(LDAR)
PCAR, ROMBUS
ROMIR T2 #OE, IR_CLK (LDIR), PC_CLK (PC_INC) BUSIR, PC+1
实验步骤(JMP1/JMP2指令):
1) 根据微指令代码表编写下列微程序,编译并生成三个HEX文 件,分别烧写到控制存储器EPROM1、EPROM2及EPROM3(切 记勿写错存储器!)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任课教师:张芳、许建龙《计算机组成原理》(2013-2014学年第2学期)实验报告学号:姓名:班级:微程序控制器实验报告一、实验目的:1)了解TEC-2机控制器部件的组成2)熟练掌握56位微指令中各字段的含义3)可以通过微码自己用监控程序编程序,实现两数相加和相减,以及更复杂的操作二、实验仪器:主机一台三、简要原理:1.TEC-2机的控制器部件的组成TEC-2机控制器部件的关键内容包括:(1)由7片LS6116随机读写存储器芯片组成的56位字长的微程序控制存储器,用于存放TEC-2机的微程序。
其内容在刚加电时不定,加电后将首先从2片ROM(LS2716芯片)中读出固化的、用于实现53条机器指令的微程序,经组织后写入这一控制存储器,这一过程称为装入微码。
装入完成后,将从监控程序的零地址执行指令,完成TEC-2机的启动过程。
这之后,还可以用LDMC指令按规定的办法向控制存储器写入新的微程序,以实现新的机器指令。
从简化逻辑框图上可以看到,控制存储器的地址为μRA9~μRA0,读出的信息送微指令流水线寄存器PLR。
(2)微指令寄存器PLR由7片8位的寄存器芯片(6片LS374和1片LS273)组成,用于存放当前微指令的内容,更具体的说明将在后面给出。
(3)微程序定序器AM2910芯片(其内部结构、引脚信号和运行原理等稍候详细说明),是微程序控制器中非常关键、也是稍微难懂一点的部分。
在学习中要正确理解。
它的核心功能是依据机器的运行状态与当前微指令的有关内容等,正确地形成下一条微指令的地址,以保证微程序按要求的微指令序列关系自动地逐条衔接执行。
(4)程序计数器PC和当前指令地址寄存器IP,是用运算器通用寄存器组中的两个选定的寄存器R5和R6实现的,这在图上见不到。
(5)指令寄存器IR,用于存放当前正在执行的指令内容。
(6)为AM2910提供输入地址信号的配套线路,包括:①由两片LS2716 ROM芯片组成的MAPROM,它将指令寄存器中的操作码转换成一段微程序的入口地址;②由l片LS125和1片LS244组成的接收内部总线的IB9~IB0信号的选择门电路,它把由水平板上的开关提供的微指令地址送AM2910的地址输入端;③由1片LS125和微指令寄存器的PLR55~48组成的一组地址输入,把当前微指令中的后续地址B55~46送入AM2910的地址输入端;请注意,1片LS125(共4位独立的输入和输出端)分成两组(每组两位)分别用于②和③两项用途。
这三组信号均为10位宽,且为互斥关系,分别由AM2910芯片提供的3个互斥控制信号/MAP、/VECT和/PL加以选通。
(7)由AM2910芯片的10位地址输出信号驱动的配套电路,包括:①由一片LSl75和一片LS374寄存器组构成的记忆电路,用于保存当前微指令的地址,其输出仅送往显示灯部分,以显示当前微指令的地址;②由3片LS257(四位的二选一电路)芯片构成的微控存的地址选择形成电路,它实现在AM2910的10位输出地址与存储器地址寄存器的低10位地址之间的选择,结果送往微控存的地址输入端,用于完成微控存单元的读写操作;选择信号是Smux。
③与此有关的还有3片计数器芯片LS161组成的地址计数器电路,其输出(共10位)通过两片LS244与刚提到的3片LS257的10位输出形成“线或”关系,用计数器的一个输出端Y11实现二者之间的选择,Y11为0时,μRA9~μRA0是计数器的输出信号,提供完成装入微码过程的微控存的地址,Y11为1时,表明装入微码的过程已结束,微控存的地址μRA9~μRA0为3片LS257的输出信号,以完成机器指令运行过程中的微控存的读、写(写仅用于LDMC指令)操作。
(8)由2片LS2716ROM芯片组成的、固化的微码保存电路及读写控制电路。
这是为机器加电后完成装入微码所配备的专用线路。
除2片LS2716外,还有前边提到的3片LS161芯片(计数器),1片LSl61芯片,2片LS244、l片Gal20v8、1片LS74、l片LSl23和1片LS00。
其连接关系在逻辑线路图(二)的右下部分。
这一部分不是学习控制器部件的重点内容,后面还会简单说明其实现原理与运行过程。
2.TEC-2机控制器部件实现中的一些技术问题(1)关于微码装入问题前边已简单地提到过TEC-2机的微码装入问题。
TEC-2机支持64条基本机器指令,已实现了53条指令。
相应这53条机器指令的微程序保存在2片LS2716ROM芯片中,这2片LS2716ROM组成了一个专用的2K容量的16位固定存储器。
它每4个相邻的字用于存放一条56位字长的微指令,其中第4个字的最高8位未用,用零填充。
为了把每一条微指令装入微控存,就必须分4次依次读出4个16位的字,并分别送到56位字长的LDR寄存器的不同的16位(最高位部分只有8位)部分,然后一次写入56位的微控存中。
为此,设立了两个地址计数器。
第一个计数器由3片4位的计数器LSl61芯片组成,加电时使其被清零,以后每来一个特定的工作脉冲使其计数一次。
它的输出,一方面用作微控存写入单元的地址,又用作读ROM芯片的高9位地址。
读ROM 芯片的最低两位地址则由第2个计数器提供,这是个用一片计数器电路LSl61芯片接成4分频的计数器,每计满4次则给出一个脉冲输出信号,用作为第一个计数器的特定计数脉冲,保证第二个计数器每计满4次,第一个计数器才计数一次,两个计数器的输出拼接成11位的地址,用于读ROM的字地址。
第2个计数器的4次计数的不同状态,还用于控制把从ROM中读出的内容写入LDR寄存器的不同部分,图上用LRCP0、LRCPl、LRCP2和LRCP3表示。
当读完ROM 的所有单元(共2048个字),计数器的Y11将从0变为1,则结束微码装入操作。
这里请注意,微控存的地址是通过3选1逻辑给出的,即靠Smux实现对AM2910的10位输出和存储器的地址寄存器的低10位输出的2选l,靠Y11和/Y11实现的对2选1的10位输出与计数器的10位输出经两片LS244的“线或”选择。
逻辑图上可以看得清楚,两片LS244的输出和3片2选l的输出都标明为μRA9~μRA0,实现中它们的相应位是接在一起的。
LDMC/RESET按钮都会启动微程序代码的装入操作过程,详细线路参见逻辑线路图(二)右下角部分的内容。
(2)微指令格式每条微指令由56位组成,从高向低各位标记为B55~B0,分为13个字段,如下所示:表1.5.1 微指令的56位微码56位微码分放在7片存储器芯片中。
18位微码用于控制与给出每条微指令的下地址,供控制器部件本身使用。
其中:B55~B46的10位微码是下地址字段;B45、B44位备用;B43~B40为CI3~CI0,是用于给出AM2910芯片的16种命令码的编号;B39~B37、B36分别为3位的SCC和1位的SC,给出AM2910芯片的条件判断信号/CC的选择码,用于保证微指令的条件转移等;提供给运算器部件的控制信号有26位,分别是:A口地址、B口地址、A口和B口地址选择控制信号SA、SB,合计共10位;3组3位的AM2910的控制信号MI8~MI6、MI5~MI3、MI2~MI0共9位;控制标志寄存器写入的SST、最低位进位控制SCi、移位信号形成的SSH 3个字段共7位。
它们的使用方法已在运算器部件的讨论中讲述清楚。
还有3位微码/MIO、REQ和/WE用于控制内存的读写、外设接口的读写、以及微码的装入。
其规定如下表1.5.2所示:表1.5.2(3)TEC-2机的微程序设计①下一条微指令的地址的形成微程序设计的关键技术之一,是处理好每条微指令的下地址,以保证微程序正确、高效地执行。
在TEC-2机中,这是通过一片微程序定序器AM2910芯片实现的。
·AM2910芯片的内部结构AM2910芯片的内部结构框图如图1.5.1所示。
AM2910包括一个四输入的多路地址选择器,用来选择寄存器/计数器(R),直接输入(D),微程序计数器(uPC)或微堆栈(F)中的一个作为下一条微指令的地址。
寄存器/计数器由12个D型触发器组成。
当它用作寄存器时,主要用于保存一个微地址,用以实现微程序分支;当它用作计数器时,具有减一功能(何时减一,取决于AM2910的命令码),主要用于控制微程序的循环次数,若装入的初值为N,则可执行N+1次。
微程序计数器由12位增量器和12位寄存器组成。
当增量器的进位输入CI为高电平时,多路器的输出Y加1后装入μPC(即μPC←Y十1),用于实现微程序的顺序执行;而当CI为低电平时,多路器的输出Y直接装入μPC(即μPC←Y),用于实现同一条微指令的多次执行。
微堆栈是由5字×12位的寄存器堆和微堆栈指针μSP组成,主要用于保存微子程序调用的返回地址和微程序循环的首地址。
微堆栈指针μSP总是指向最后一次压入的数据,因此,执行微程序循环时,允许不执行弹出操作而直接访问微堆栈的栈顶。
当堆栈中的数据达到5个时,就发出堆栈已满信号(/FULL=0),这时,任何压入操作都将覆盖掉栈顶的数据。
AM2910输出3个使能信号:/PL,/MAP和/VECT,用以决定直接输入D的来源。
当/PL有效时(即/PL=0),D来源于微指令的下地址字段,用于实现微程序转移;当/MAP 有效时(即/MAP=0),D来源于MAPROM,用于实现从机器指令到相应的微程序段的转移;当/VECT有效时(即/VECT=0),原意D来源于中断向量,现用于接收手拨微地址。
·AM2910引脚的定义输入线:D11~D0:外部直接输入的数据,既可作为寄存器/计数器的初值,也可直接经地址多路选择器从Y输出,作为下一条微指令的地址。
I3~I0:AM2910的命令码,来自微指令字的有关字段,用以选择AM2910的16条命令之一。
/CC:条件输入,若为低电平,则表示测试成功,否则,表示测试失效。
/CCEN:/CC允许信号,若为低电平,则表示/CC有效,否则,不管/CC是什么状态,测试条件为永真。
/RLD:寄存器/计数器装入信号,当为低电平时,不管AM2910所执行的命令和测试条件如何,都强制把直接输入D11~D0装入。
/OE:Y输出允许信号,低电平有效,当为高电平时,Y输出为高阻态。
CP:时钟脉冲信号,由低变高的上升边沿触发所有内部状态的变化。
输出线:Y11~Y0:下一条微指令的地址,它直接作为控制存储器的地址。
/FULL:微堆栈满信号,低电平有效。
/PL、/MAP、/VECT:3个使能信号,用于决定直接输入D的来源。
·AM2910的功能与具体用法表1.5.5给出了AM2910的一部分功能,这些功能是由命令码I3~I0,条件输入/CC、/CCEN以及计数器当前值组合的结果。