实验五微处理器原理

更新时间:2024-01-19 01:38:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验五 微处理器实验

一 实验目的

(1) 掌握微程序控制器的组成原理。

(2) 掌握微程序的编制、写入,观察微程序的运行。 二 实验设备

TDN-CM++计算机组成原理教学实验系统一台,排线若干。

三 实验内容 1)原理

实验所用的时序控制电路框图如图1所示,可产生4个等间隔的时序信号TS1--TS4。 START TS1

φ TS2 STEP 时序控制电路 TS3 STOP TS4 CLR

图1 时序电路框图

其中:φ为时钟信号,由实验台右上方的方波信号源提供,可产生频率及脉宽可调的方波信号。学生可根据实验自行选择方波信号的频率及脉宽。图中STEP(单步)、STOP(停机)分别是来自实验板上方中部的两个二进制开关STEP,STOP的模拟信号。START键是来自实验板上方左部的一个微动开关START的按键信号。当STEP开关为0时(EXEC),一旦按下启动键,时序信号TSI--TS4将周而复始地发送出去。当STEP为1 (STEP)时,一旦按下启动键,机器便处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机。利用单步方式,每次只读一条微指令,可以观察微指令的代码与当前微指令的执行结果。另外,当机器连续运行时,如果STOP开关置“1”(STOP),也会使机器停机,或使CLR开关拨至零也可以使时序清零。

由于时序电路的内部线路已经连好,所以只需将时序电路与方波信号源连接,即将时序电路的时钟脉冲输入端φ接至方波信号发生器输出端H23,就可产生时序信号TS1--TS4。时序电路的CLR已接至实验板左下方的CLR模拟开关上。

2) 微程序控制电路与微指令格式 (A) 微程序控制电路

微程序控制器的组成见图2,其中控制存储器采用3片2816的E2PROM,具有掉电保护功能,微命令寄存器18位,用两片8D触发器(74273)和一片4D (74175)触发器组成。微地址寄存器6位,用三片正沿触发的双D触发器(7474)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。

在该实验电路中设有一个编程开关(位于实验板右上方),它具有三种状态:PROM (编程)、READ(校验)、RUN(运行)。当处于“编程状态”时,实验者可根据微地址和微指令格式将微指令二进制代码写入到控制存储器2816中。当处于“校验状态”时,可以对写入控制存储器中的二进制代码进行验证,从而可以判断写入的二进制代码是否正确。当处于“运行状态”时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微程序。图中微地址寄存器输出端增加了一组三态门,目的是隔离触发器的输出,增加抗干扰能力,并用来驱动微地址显示灯。

1

图2 微程序控制器原理图

(B) 微指令格式

微指令字长共24位,其控制位顺序如图3所示。

2

图3 微指令格式

其中UA5--UA0为6位的后续微地址,A,B,C为三个译码字段,分别由三个控制位译码出多个微命令。C字段中的P(1)-- P (4)是四个测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,其原理如图4所示。图中I7一I2为指令寄存器的第7--2位输出,SE5--SE1为微程序控制器单

图4 地址转移逻辑电路

元微地址锁存器的强置端输出。AR

为算术运算是否影响进位及判零标志控制位,其为零有效。B字段中的RS-B,RD-B,RI-B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0,R1及R2的选通译码,其原理如图5所示。图中,I0—I3为指令寄存器的第0—3位,LDRi为打入工作寄存器信号的译码器使能控制位。 Y0 G LDR0 LDRi 2:4 A Y1 I1 LDR1 B 译码器 I0 Y2 LDR2

Y0 G RD-B R0-B 2:4 A Y1 R1-B B 译码器 Y2

R2-B

G Y0 RS-B 2:4 Y1 A I3 B 译码器 I2 Y2

RI-B

图5 寄存器选通译码电路

3

四 实验步骤

(1) 图6为几条机器指令对应的参考微程序流程图,将全部微程序按指令格式变成二进制代码,可得到表1所示的二进制代码表。 运行微程序 01

八进制地址 PC→AR PC+1 02 RAM→BUS BUS→IR

10

P(1)

STA OUT ADD JMP IN

11 13 14 12 10

PC→AR PC→AR PC→AR PC→AR PC+1 PC+1 PC+1 PC+1 SW→R0 07 16 26 03 RAM→BUS RAM→BUS RAM→BUS 01 RAM→BUS BUS→AR BUS→AR BUS→AR BUS→PC 17 04 15 RAM→BUS 01 R0→BUS RAM→BUS BUS→DR1 BUS→RAM BUS-DR0

05 25 R0→DR1 01 DR1→LED 01 (a) 五条指令的微程序流程图 01 06 控制台 00 20 P(1) KRD 20 PC→AR PC+1 07 RAM→BUS BUS→DR1 15 DR1→LED (DR1)+(DR2)→R0 八进制地址 KWE 21 PC→AR PC+1 24 (SW)→BUS BUS→DR1 30 DR1→RAM RP 23 PC→AR PC+1 16 01 (b) 控制台微程序流程图 图6 微程序流程图 4

表1 微程序代码表

微地址 S3 S2 S1 S0 M Cn WEA9 A8 A B C μA5--μA0 00 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 01 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 02 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 03 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 04 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 05 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 06 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 07 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 10 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 11 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 12 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1 13 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 14 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 15 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 16 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 17 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 20 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 21 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 22 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 23 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 24 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 25 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 26 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 27 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 30 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1

2)按图7连接实验线路,仔细查线无误后,接通电源。 W/R UNIT STATE UNIT SIGNAL UNIT MICRO_CONTROLLER T TMA5—MA0 12 TS1 TS2 φ H23 … … 图7 微程序控制器实验接线图

uA5—uA0 SWITCH UNIT (3) 观察微程序控制器的工作原理: (A) 编程

① 将编程开关置为PROM(编程)状态。

5

② 将实验板上STATE UNIT中的STEP置为“STEP”,STOP置为“RUN”状态。 ③ 用二进制模拟开关置微地址μA5一μA0 。

④ 在MK24--MK1开关上置微代码,24位开关对应24位显示灯,开关量为“0”时

灯亮,开关量为“1”时灯灭。

⑤ 启动时序电路(按动启动按纽START),即将微代码写入到E2PROM 2816的相应地

址对应的单元中。

⑥ 重复③—⑤步骤,将表1的微代码写入2816。 (B) 校验

① 将编程开关设置为READ(校验)状态。

② 将实验板的STEP开关置为“STEP”状态,STOP开关置为“RUN”状态。 ③ 用二进制开关置好微地址μA5一μA0 。

④ 按动START键,启动时序电路,读出微代码.观察显示灯MD24--MD1的状态(灯亮为“0”,灭为“1”),检查读出的微代码是否与写入的相同。如果不同,则将开关置于PROM编程状态,重新执行①即可,

(C) 单步运行

① 将编程开关置于“RUN”状态。

② 实验板的STEP及STOP开关保持原状。

③ 操作CLR开关(拨动开关在实验板右下角)使CLR信号1→0→1,微地址寄存器 μA5一μA0清零,从而明确本机的运行入口微地址为000000(二进制)。

④ 按动“START”键,启动时序电路,则每按动一次启动键,读出一条微指令后停机,此时实验台上的微地址显示灯和微命令显示灯将显示所读出的一条指令。 注意:在当前条件下,可将MICRO-CONTROLLER单元的SE6--SE1接至SWITCH UNIT中的S3--Cn对应二进制开关上,可通过强置端SE1--SE6人为设置分支地址。将SE1--SE6对应二进制开关量置为“1”,当需要人为设置分支地址时,将某个或几个二进制开关置“0”,相应的微地址位即被强置为“1”,从而改变下一条微指令的地址。(二进制开关置为“0”,相应的微地址位将被强置为“1”) (D) 连续运行

① 将编程开关置为“RUN”状态。

② 将实验板的单步开关STEP置为“EXEC”状态。 ③ 使CLR从1→0→1,此时微地址寄存器清“0”,从而给出取指微指令的入口地址为000000(二进制)。

④ 启动时序电路,则可连续读出微指令。

6

② 将实验板上STATE UNIT中的STEP置为“STEP”,STOP置为“RUN”状态。 ③ 用二进制模拟开关置微地址μA5一μA0 。

④ 在MK24--MK1开关上置微代码,24位开关对应24位显示灯,开关量为“0”时

灯亮,开关量为“1”时灯灭。

⑤ 启动时序电路(按动启动按纽START),即将微代码写入到E2PROM 2816的相应地

址对应的单元中。

⑥ 重复③—⑤步骤,将表1的微代码写入2816。 (B) 校验

① 将编程开关设置为READ(校验)状态。

② 将实验板的STEP开关置为“STEP”状态,STOP开关置为“RUN”状态。 ③ 用二进制开关置好微地址μA5一μA0 。

④ 按动START键,启动时序电路,读出微代码.观察显示灯MD24--MD1的状态(灯亮为“0”,灭为“1”),检查读出的微代码是否与写入的相同。如果不同,则将开关置于PROM编程状态,重新执行①即可,

(C) 单步运行

① 将编程开关置于“RUN”状态。

② 实验板的STEP及STOP开关保持原状。

③ 操作CLR开关(拨动开关在实验板右下角)使CLR信号1→0→1,微地址寄存器 μA5一μA0清零,从而明确本机的运行入口微地址为000000(二进制)。

④ 按动“START”键,启动时序电路,则每按动一次启动键,读出一条微指令后停机,此时实验台上的微地址显示灯和微命令显示灯将显示所读出的一条指令。 注意:在当前条件下,可将MICRO-CONTROLLER单元的SE6--SE1接至SWITCH UNIT中的S3--Cn对应二进制开关上,可通过强置端SE1--SE6人为设置分支地址。将SE1--SE6对应二进制开关量置为“1”,当需要人为设置分支地址时,将某个或几个二进制开关置“0”,相应的微地址位即被强置为“1”,从而改变下一条微指令的地址。(二进制开关置为“0”,相应的微地址位将被强置为“1”) (D) 连续运行

① 将编程开关置为“RUN”状态。

② 将实验板的单步开关STEP置为“EXEC”状态。 ③ 使CLR从1→0→1,此时微地址寄存器清“0”,从而给出取指微指令的入口地址为000000(二进制)。

④ 启动时序电路,则可连续读出微指令。

6

本文来源:https://www.bwwdw.com/article/aixo.html

Top