实验四 微程序控制器实验.docx

上传人:b****6 文档编号:12329376 上传时间:2023-06-05 格式:DOCX 页数:27 大小:2.50MB
下载 相关 举报
实验四 微程序控制器实验.docx_第1页
第1页 / 共27页
实验四 微程序控制器实验.docx_第2页
第2页 / 共27页
实验四 微程序控制器实验.docx_第3页
第3页 / 共27页
实验四 微程序控制器实验.docx_第4页
第4页 / 共27页
实验四 微程序控制器实验.docx_第5页
第5页 / 共27页
实验四 微程序控制器实验.docx_第6页
第6页 / 共27页
实验四 微程序控制器实验.docx_第7页
第7页 / 共27页
实验四 微程序控制器实验.docx_第8页
第8页 / 共27页
实验四 微程序控制器实验.docx_第9页
第9页 / 共27页
实验四 微程序控制器实验.docx_第10页
第10页 / 共27页
实验四 微程序控制器实验.docx_第11页
第11页 / 共27页
实验四 微程序控制器实验.docx_第12页
第12页 / 共27页
实验四 微程序控制器实验.docx_第13页
第13页 / 共27页
实验四 微程序控制器实验.docx_第14页
第14页 / 共27页
实验四 微程序控制器实验.docx_第15页
第15页 / 共27页
实验四 微程序控制器实验.docx_第16页
第16页 / 共27页
实验四 微程序控制器实验.docx_第17页
第17页 / 共27页
实验四 微程序控制器实验.docx_第18页
第18页 / 共27页
实验四 微程序控制器实验.docx_第19页
第19页 / 共27页
实验四 微程序控制器实验.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验四 微程序控制器实验.docx

《实验四 微程序控制器实验.docx》由会员分享,可在线阅读,更多相关《实验四 微程序控制器实验.docx(27页珍藏版)》请在冰点文库上搜索。

实验四 微程序控制器实验.docx

实验四微程序控制器实验

实验四微程序控制器实验

实验目的

1、深入理解微程序控制器的功能和组成结构;

2、学习教学计算机各类指令的指令格式、寻址方式及执行流程;

3、学习微程序控制器的设计过程和相关技术。

实验内容

1、分析基本指令的执行流程,在教学机上验证其对应的微指令;

2、设计几条指令的功能、格式和指令流程,并在教学计算机上进行测试。

实验要求

1、实验之前,认真准备,对于该实验的基本原理、微指令格式、以及相关机器指令的微程序等内容预先做好分析和设计;

2、实验过程中,应认真进行实验操作,仔细思考实验有关内容,把难点内容通过实验理解清楚,争取最好的实验效果;

3、实验之后,应认真思考,写出实验总结,包括实验中遇到的主要问题和分析、解决方法。

实验学时

4学时

实验原理

1、TEC-XP教学机的控制器基本原理

TEX-XP教学机中包含组合控制逻辑和微程序控制逻辑两种不同结构的控制器。

本实验中使用的是微程序控制器,与微程序控制器相关的机器结构如图4-1所示。

控制器中使用程序计数器PC跟踪机器指令的执行,使用PC中的内容访存获取机器指令,得到的机器指令送入控制器中的指令寄存器IR暂存,并由微程序控制器分析执行,执行过程中的所有控制信号均由微程序控制器中的微命令寄存器μIR发出。

图4-1TEC-XP教学机的基本结构

TEC-XP教学机的微程序控制器详细内部结构如图4-2所示。

该控制器中包含指令寄存器IR(存放当前执行的指令)、地址映射部件(确定不同指令对应的微程序入口地址)、微程序定序器Am2910(根据微指令中的下址字段和判断测试条件,产生下一条微指令的地址)、条件判定线路(用于微程序流向控制)、控制存储器CM(包含所有的微指令)、微指令寄存器μIR(存放当前微指令的操作控制字段)等部件。

图4-2微程序控制器内部结构

微程序控制器的工作过程是:

对于指令寄存器IR中的机器指令,由地址映射部件产生该指令所对应微程序的入口地址,通过Am2910送给控制存储器。

取出的一条微指令送入微指令寄存器,其中的微命令字段用于发出控制信号,控制各部件的执行,下址字段与条件判定线路的各测试信号一起送给Am2910,由其确定下条微指令的地址,继续执行。

2、地址映射部件

地址映射部件,即微指令地址映射部件,它是由一片E2PROM构成的,一般称为MAPROM。

指令寄存器IR将其中的高8位指令操作码送给MAPROM,MAPROM根据操作码与微地址之间的映射关系,给出该指令对应微程序的入口地址。

TEC-XP教学机中的指令操作码与微地址之间的映射关系如附录表4-1所示。

3、TEC-XP教学机的微指令格式

TEC-XP教学机的微指令共48位,由16位的下址字段和32位的操作控制字段形成,其格式如图4-3所示。

图4-3TEC-XP教学机的微指令格式

(1)下址字段

a)8位的微下址

用于给出下一条将要执行的微指令的地址。

微程序顺序执行,即把已增1后的微指令地址作为下地址

b)4位的测试控制码CI3~0

用于决定微程序中的微指令寻址方式(顺序寻址、跳跃寻址)。

本实验中只使用到0000(初始化,使微下址=0)、0010(指令功能分支,做MAPROM映射)、0011(条件转移,由SCC决定是否转移)、1110(顺序寻址,将当前微地址加1作为微下址)这四个命令码。

c)4位的转移条件编码SCC3~0

当CI3~0=0011时,由这四位编码决定转移判断测试的条件,若选中条件满足,则使用微下址寻址下一条微指令,否则做顺序寻址,同CI3~0=1110。

下址字段的这3部分控制信号与形成微地址的关系详如附录表4-2所示。

(2)操作控制字段

a)MIQ、REQ、WE

这3位控制信号用于对存储器或I/O接口进行读写操作时的控制。

具体定义如附录表4-3所示。

b)I8-I6、I5-I3、I2-I0、A口和B口、SST2-0:

具体定义参考实验二。

c)SSH、SCI1-0:

本实验中控制方式如附录表4-3所示。

d)DC1

用于选择把哪一组数据发送到CPU的内部总线(IB)上。

在微指令执行过程中,若不使用内部总线,则通常将其设置为000,可认为是无效状态。

e)DC2

用于控制数据接收及相关的内部功能。

DC1和DC2的控制方式如附录表4-4所示。

4、控制存储器

控制存储器字长48位,用来存放TEC-XP教学机的所有微指令。

硬件实现时,是使用两片EEPROM芯片(58C64)存放16位下地址字段信息,而32位操作控制字段信息存放在MACH器件内。

每次读控制存储器时,从这三个芯片中读出一条微指令。

48位的微指令寄存器也分为两段,即16位的下地址信息,和32位的微命令信息。

5、A、B、C、D组指令执行流程

TEC-XP教学计算机中,按照每条指令的功能和实际的执行步骤,将指令分成了A、B、C、D共4组,每条指令的所属组详见具体的指令描述。

A组中的指令执行时,一般只是完成通用寄存器间的数据运算或传送,在取指后可一步完成。

B组中的指令,一般需要完成一次内存或I/O读、写操作,在取指后可两步完成:

第一步把要使用的地址传送到地址寄存器AR中,第二步执行内存或I/O读写操作。

C组中的指令,在取指后可三步完成:

其中CALR在用两步读写内存后,第三步执行寄存器间的数据传递;而其它指令在第一步置地址寄存器ARH、ARL,第二步读内存(即取地址操作数)、计算内存地址、置地址寄存器ARH、ARL,第三步读、写内存。

D组中的指令,完成两次读、写内存操作,在取指之后可四步完成。

TEC-XP教学机的基本指令、扩展指令执行流程分别由附录中图4-4和4-5给出。

6、TEC-XP教学机的数据通路与微命令的关系

微指令的操作控制字段直接用于控制TEC-XP教学机中的各个执行部件,顺序控制字段分别送微程序控制器中的微地址寄存器和转移控制逻辑,用于产生微下址,寻址微指令。

图4-4中给出了微指令中的各个字段与TEC-XP教学机数据通路的对应关系,可帮助理解微指令的应用。

图4-4TEC-XP教学机的数据通路与微命令

实验步骤

请根据每个步骤的详细要求,完成本实验内容。

1、设定工作方式

接通TEC-XP教学机的电源,将功能开关拨为11010,即设为单步、手动执行指令,使用微程序控制器,联机操作。

2、验证A组基本指令——加法指令ADDR0,R1的微程序

根据如下所示的ADD指令格式,可得到指令ADDR0,R1的机器代码为0000000000000001,其中高8位为ADD指令的操作码(详见代码表4-1),接下来的两个4位分别对应R0和R1寄存器。

先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。

注意:

在本实验中,选择的是微程序控制器,Microp指示灯会一直点亮。

由附录图4-5所示的基本指令流程可知,加法指令ADDR0,R1的整个指令周期包含6个CPU周期,其中前3个CPU周期是取指阶段,所有指令都是一样的,第4个CPU周期用于指令操作码的地址映射,第5个CPU周期完成加法指令的功能,第6个CPU周期用于判断是否需要执行中断周期,从而决定该加法指令执行结束后的流向。

该加法指令的微程序如表4-6所示。

在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前看懂以下微指令,在实验中验证每条微指令,并记录每条微指令执行时微地址、微下址指示灯的状态。

表4-6加法指令ADDR0,R1的微程序

微地址

操作功能

下址

CI3~0

SCC3~0

MRW

I2~0

I8~3

B口

A口

SST

SSH\SCI

DC2

DC1

00H

0PC、DI#=0

00H

1110

0000

100

001

011001

0101

0101

000

001

111

000

01H

PCAR、PC+1PC

00H

1110

0000

100

011

010000

0101

0101

000

001

011

000

02H

MEMIR

00H

1110

0000

001

000

001000

0000

0000

000

000

001

000

03H

/MAP

00H

0010

0000

100

000

001000

0000

0000

000

000

000

000

04H

R0+R1R0

30H

0011

0000

100

001

011000

0000

0001

001

000

000

000

30H

STR→Q、CC#=INT#

3AH

0011

0010

100

111

000000

0000

0000

000

000

000

011

(1)公操作微指令(0PC、DI#=0)

该微指令在控制存储器中位于第一个单元,即微地址为00H,是程序运行时的初始操作。

本实验中由于是脱机单步运行状态,因此每条指令执行时都需要该微指令。

该操作中的PC清零是通过运算器的PC本身相减得到的,因此这里与运算器相关的控制信号应选择I2~0=001(选择A、B锁存器输入)、I8~6=011(FB,结果保存到B口指定寄存器)、I5~3=001(S-R,减法运算)、B口=0101(指定R5,即PC)、A口=0101(指定R5,即PC)、SST=000(标志位保持不变)、SSHSCI=001(减法运算的最低位进位Cin=1)。

该操作中不需要访存,或访问IO,因此MRW为100(无读写)。

DC1无用,选择000。

本条微指令的另一个操作DI#=0,使用DC2=111,选择关中断实现。

本条微指令执行完成后应进入指令的取指周期,因此要转向执行PCAR微指令,因此,CI应选择1110(顺序寻址),则下条微指令的地址应在本条微指令地址(00H)的基础上加1,即01H。

顺序寻址方式下,SCC无效,直接写0000。

(2)送指令地址微指令(PCAR、PC+1PC)

本条微指令首先要做的是PCAR的操作,这里使用A口地址指定PC,即0101,并设置I8~6=010(使A口指定内容输出到内部总线上),DC2=011(指定AR接收内部总线上的数据)。

本条微指令中要完成的PC+1PC,仍然通过运算器做加法,加上Cin来实现,故控制信号I2~0=011(选择0、B数据),B口=0101(B口指定PC),I8~6=010(FB,运算结果送PC),I5~3=000(加法运算),SST=000(标志位保持不变)、SSHSCI=001(增量运算中使用最低进位位Cin提供加数)。

该操作中不需要访存,或访问IO,因此MRW为100(无读写)。

DC1无用,选择000。

本条微指令将所要访问主存单元的地址送给AR,则接下来应从主存中读出机器指令字,即本条微指令之后的微指令一定是MEMIR,因此,CI应选择1110(顺序寻址),则下条微指令的地址应在本条微指令地址(01H)的基础上加1,即02H。

顺序寻址方式下,SCC无效,直接写0000。

(3)读指令字微指令(MEMIR)

本条微指令需要做访存读取机器指令,因此运算器相关的命令可设置无效,即I2~0=000,I8~6=001,I5~3=010,A口=0000,B口=0000,SST=000(标志位保持不变)、SSHSCI=000。

访存获取的指令字应存放于指令寄存器IR中,因此,MRW=001(内存读),DC2=001(IR接收)。

DC1无用,选择000。

本条微指令执行后,控制器应进行操作码的译码,做微地址映射,因此,CI应选择1110(顺序寻址),则下条微指令的地址应在本条微指令地址(02H)的基础上加1,即03H。

顺序寻址方式下,SCC无效,直接写0000。

注意:

以上3条微指令是适用于所有指令的取指操作的。

(4)地址映射微指令(/MAP)

本条微指令主要是由地址映射部件,根据指令操作码给出对应的指令周期微程序的入口地址,故,本条微指令中有关运算器和访存的控制信号均无效,即I2~0=000,I8~6=001,I5~3=010,A口=0000,B口=0000,SST=000(标志位保持不变),SSHSCI=000,DC1=000,DC2=000。

微地址的映射用CI的2号命令控制,即CI3~0=0010(指令功能分支),SCC3~0=0000(必转)。

下址字段无效,写00H。

根据地址映射表4-1可知,ADD指令的微程序入口地址为04H,故该微指令执行后,下址指示灯显示为00000100。

(5)加法微指令(R0+R1R0)

本条微指令主要完成两个通用寄存器的加法运算,由实验二可知,运算器相关的控制信号为:

I2~0=001(选择AB口数据),I8~6=011(FB),I5~3=000(加法运算),A口=0001(R1作为源操作数),B口=0000(R0作为目的操作数),SST=001(运算影响标志位),SSHSCI=000(Cin=0)。

本条微指令无访存控制,因此DC1=000,DC2=000。

本条微指令执行结束时,ADD指令功能已完成,即指令的执行周期完成,按照指令周期的流程,这里需要检查系统是否有中断请求。

因此,本条微指令执行结束即应转向中断判断微指令,CI3~0=0011码(条件转移),SCC3~0=0000(必转),下址字段给出中断判断微指令的地址,30H。

(6)中断判断微指令(STR→Q、CC#=INT#)

本条微指令用于判断当前系统是否有中断请求,若有,则转去处理中断(地址为3AH的微指令),否则顺序执行下一条机器指令(地址为31H的微指令)。

因此,CI3~0=0011码(条件转移),所依据的条件应为SCC3~0=0010(若有中断请求时转移),下址=3AH。

在进行中断判断时,需要使用到标志位状态,因此,本条微指令需要做的另一个操作是DC1=011(将标志位送到内部总线上),用以判断中断。

3、验证B组基本指令——传送指令MVRDR0,D的微程序

指令MVRD是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操作数指令。

其指令格式如下所示,则指令MVRDR0,D的机器代码的高16位为1000100000000000,其中高8位为MVRD指令的操作码(详见代码表4-1),接下来的4位对应目的寄存器R0。

本次实验中,只是验证指令的微程序,至于该指令所传送的数据D可采用存储单元中的随机值。

先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。

由附录图4-5所示的基本指令流程可知,传送指令MVRDR0,D的指令周期共包含7个CPU周期,比A组指令在执行阶段多一个CPU周期,主要用于访存获取操作数。

这里MVRD的源操作数是立即数寻址方式,其值保存于指令的第二个字上,而TEC-XP教学机是16位机,在取指阶段仅读出该指令的第一个字,所以,在访存取操作数时应使用PC中的地址寻址存储单元,执行1DH的微指令。

该传送指令的微程序如表4-6所示。

在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前看懂以下微指令,在实验中验证每条微指令。

表4-6传送指令MVRDR0,D的微程序

微地址

操作功能

下址

CI3~0

SCC3~0

MRW

I2~0

I8~3

B口

A口

SST

SSH\SCI

DC2

DC1

00H

0PC、DI#=0

00H

1110

0000

100

001

011001

0101

0101

000

001

111

000

01H

PCAR、PC+1PC

00H

1110

0000

100

011

010000

0101

0101

000

001

011

000

02H

MEMIR

00H

1110

0000

001

000

001000

0000

0000

000

000

001

000

03H

/MAP

00H

0010

0000

100

000

001000

0000

0000

000

000

000

000

1DH

PCAR、PC+1PC、CC#=0

1CH

0011

0000

100

011

010000

0101

0101

000

001

011

000

1CH

MEM→DR、CC#=0

30H

0011

0000

001

111

011000

0000

0000

000

000

000

000

30H

STR→Q、CC#=INT#

3AH

0011

0010

100

111

000000

0000

0000

000

000

000

011

在传送指令MVRDR0,D执行过程中,前3条取指相关的微指令和最后1条中断处理微指令与ADD之前完全相同,这里只对不同的3条微指令进行介绍。

(1)地址映射微指令(/MAP)

本条微指令主要是由地址映射部件,根据指令操作码给出对应的指令周期微程序的入口地址,故,本条微指令中有关运算器和访存的控制信号均无效,即I2~0=000,I8~6=001,I5~3=010,A口=0000,B口=0000,SST=000(标志位保持不变),SSHSCI=000,DC1=000,DC2=000。

微地址的映射用CI的2号命令控制,即CI3~0=0010(指令功能分支),SCC3~0=0000(必转)。

下址字段无效,写00H。

根据地址映射表4-1可知,MVRD指令的微程序入口地址为1DH,故该微指令执行后,下址指示灯显示为00011101。

(2)取机器指令的第二个字节微指令(PCAR、PC+1PC、CC#=0)

由于MVRD指令是双字指令,在取指阶段仅从主存中取得了指令中包含操作码的高字部分,这里要执行该指令时,必须获取指令的第二个字数据,即指令中的16位立即数。

因此,在完成地址映射后,应执行该微指令,再次读取主存。

本条微指令的执行与取指阶段PCAR、PC+1PC微指令的操作控制部分完全相同,但顺序控制部分,根据指令的执行流程可知,下条微指令应将使用主存中读得的立即数给目的寄存器赋值。

因此CI3~0=0011(条件转移),SCC3~0=0010(必转),所要转向的地址由下址字段给出,即1CH。

(3)访存赋值微指令(MEM→DR、CC#=0)

本条微指令是将存储单元中读得的立即数给目的寄存器赋值。

这里使用运算器D+0R操作实现,其中D为从存储单元中读出的操作数。

因此,MRW=001(内存读),I2~0=111(选择外部数据D和0),I8~6=011(FB),I5~3=000(加法),A口未用,B口=0000(指定目的寄存器R0),SST=000(标志位保持不变),SSHSCI=000(Cin=0)。

本条微指令中DC1=000(无效),DC2=000(无操作)。

本条微指令执行结束时,MVRD指令功能已完成,即指令的执行周期完成,按照指令周期的流程,这里需要检查系统是否有中断请求。

因此,本条微指令执行结束即应转向中断判断微指令,CI3~0=0011码(条件转移),SCC3~0=0000(必转),下址字段给出中断判断微指令的地址,30H。

4、分析D组基本指令——子程序调用指令CALAADR的微程序

指令CALA是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操作数指令。

其指令格式如下所示,则指令CALAADR的机器代码的高16位为1100111000000000,其中高8位为CALA指令的操作码(详见代码表4-1),接下来的4位对应目的寄存器R0。

本次实验中,只是验证指令的微程序,至于该指令所用到的直接地址可采用存储单元中的随机值。

先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。

由附录图4-5所示的基本指令流程可知,子程序调用指令CALAADR的指令周期共包含9个CPU周期,执行阶段比B类指令多用2个CPU周期。

CALA指令的微程序如表4-7所示。

在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前完成对表4-7中每条微指令的分析,在实验中验证,并分析每条微指令的具体功能。

表4-7子程序调用指令CALAADR的微程序

微地址

操作功能

下址

CI3~0

SCC3~0

MRW

I2~0

I8~3

B口

A口

SST

SSH\SCI

DC2

DC1

00H

0PC、DI#=0

00H

1110

0000

100

001

011001

0101

0101

000

001

111

000

01H

PCAR、PC+1PC

00H

1110

0000

100

011

010000

0101

0101

000

001

011

000

02H

MEMIR

00H

1110

0000

001

000

001000

0000

0000

000

000

001

000

03H

/MAP

00H

0010

0000

100

000

001000

0000

0000

000

000

000

000

1FH

PCAR、PC+1PC

00H

1110

0000

100

011

010000

0101

0101

000

001

011

000

20H

MEM→Q

00H

1110

0000

001

111

000000

0000

0000

000

000

000

000

21H

SP-1→SP、

SP→AR

00H

1110

0000

100

011

011001

0100

0000

000

000

011

000

22H

PC→MEM、

Q→PC、CC#=0

30H

0011

0000

000

010

010000

0101

0101

000

000

000

001

30H

STR→Q、CC#=INT#

3AH

0011

0010

100

111

000000

0000

0000

000

000

000

011

5、设计扩展指令ADC、STC、LDRA、CALR的微程序

TEC-XP教学机支持动态微程序设计,即允许用户把自己设计的微程序写入控制存储器中,当扩展指令需要执行时,直接从控制存储器中读取对应的微指令执行即可。

但写控制存储器时,需要用到硬件描述语言VHDL,故在本次实验中,对于扩展实验直接采用出厂已设计好的扩展指令进行验证。

扩展指令ADC、STC、LDRA、CALR的执行周期相关微指令如表4-8所示,请在实验时以单步方式进行验证。

表4-8若干扩展指令的执行周期微程序

指令

微地址

操作功能

下址

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2