计算机组成原理:实验四常规型微程序控制器组成实验

2024-08-31 13:36

本文主要是介绍计算机组成原理:实验四常规型微程序控制器组成实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、实验目的

1.掌握时序产生器的组成原理。

2.掌握微程序控制器的组成原理。

3.掌握微指令格式的化简和归并。

二、实验电路

1.时序发生器

TEC-4计算机组成原理实验系统的时序电路如图4.1所示。电路采用2片GAL22V10(U6、U7),可产生两极等间隔时序信号T1-T4和W1-W4,其中一个W由一轮T1-T4循环组成,它相当于一个微指令周期或硬联线控制器的一拍,而一轮W1-W4循环可供硬联线控制器执行一条机器指令。

图4.1 时序信号发生器

本次实验不涉及硬联线控制器,因此时序产生器中的相关内容也可根据需要放到硬联线控制器实验中进行。

微程序控制器只使用时序信号T1-T4,产生T信号的功能集成在GAL22V10芯片TIMER1(U6)中,另外它还产生节拍信号W1、W2、W3、W4的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现,其源程序如下:

MODULE TIMER1

TITLE‘CLOCK GENERATOR T1,T2,T3,T4’

“2000,9

“INPUT

       MF,CLR,QD,DP,DZ,TJ,P1,INTC,INTS,DB PIN 1..10;

       W4  PIN  13;

“OUTPUT

       T1,T2,T3,T4,QD1,QD2,ACT,INTE,QDR PIN 14..22;

       CLK1 PIN 23;

       T1,T2,T3,T4,QD1,QD2,INTE,QDR ISTYPE ‘REG’;

       ACT,CLK1 ISTYPE ‘COM’;

       CLK=.C.;

       S=[T1,T2,T3,T4,QD1,QD2,INTE,QDR];

EQUATIONS

       QD1:=QD;

       QD2:=QD1;

       ACT=QD1 &! QD2;

       QDR:=CLR & QD # CLR & QDR;

       T1:=CLR & T4 & ACT # CLR & T4 &!(DP # TJ # DZ & P1 # DB & W4)& QDR;

       T2:=CLR & T1;

       T3:=CLR & T2;

       T4:=! CLR # T3 # T4 &! ACT &(DP # TJ # DZ & P1 #DB & W4 )#! QDR;

       INTE:=CLR & INTS # CLR & INTE &! INTC;

       CLK1=T1 #! CLR& MF;

       S.CLK=MF;

END

硬联线控制器只使用时序信号W1-W4,产生W信号的功能集成在GAL22V10芯片TIMER2(U7)中,该芯片的逻辑功能用ABEL语言实现,其源程序如下:

MODULE TIMER2

TITLE‘CLOCK GGENERATOR W1 W2 W3 W4’

“2000,9

“INPUT

       CLK1,INTR,IE,PIN 1..3;

       CLR,SKIP PIN 5..6;

“OUTPUT

       W1,W2,W3,W4,INTR1 PIN 14..18 ISTYPE‘REG’;

       INTQ PIN 20 ISTYPE‘COM’;

       CLK=.C.;

EQUATIONS

       W1:=CLR & W4;

W2:=CLR & W1 &!SKIP;

W3:=CLR & W2 &!SKIP;

W4:=!CLR # W3 # SKIP & W1 #SKIP & W2;

INTR1:=INTR;

INTQ=IE & INTR1;

[W1,W2,W3,W4,INTR1].CLK=CLK1;

END

TIMER1和TIMER2中还集成了中断逻辑,中断逻辑的介绍见第八节。TIMER1的输入信号中,MF接实验台上晶体震荡器的输出,频率为1MHz。T1至T4的脉冲宽度为1000ns。CLR(注意,实际上是控制台上的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效信号)为复位信号,低有效。实验仪处于任何状态下令CLR#=0,都会使时序发生器和微程序控制器复位(回到初始状态),CLR#=1时,则可以正常运行。复位后时序发生器停在T4、W4状态,微程序地址为000000B。建议每次实验仪加电后,先用CLR#复位一次。控制台上有一个CLR#按钮,按一次,产生一个CLR#负脉冲,实验台印制板上已连好控制台CLR#到时序电路CLR的连线。

TJ(停机)是控制器的输出信号之一。连续运行时,如果控制信号TJ=1,会使机器停机,停止发送时序脉冲T1-T4、W1-W4,时序停在T4。在实验台上为了将时序信号发生器的输入信号TJ和控制存储器产生的TJ信号区分开来,以便于连线操作,在实验台上时序信号发生器的输入信号TJ被命名为TJI,而控制存储器产生的信号TJ仍命名为TJ。QD(启动)是来自启动按钮QD的脉冲信号,在TIMER1中,对QD用MF进行了同步,产生QD1和QD2。ACT表示QD1上升沿,表达式是QD1&!QD2,脉冲宽度为1000ns。QDR是运行标志,QD信号使其为1,CLR信号将其置0。DP(单拍)是来自控制台的DP开关信号,当DP=1时,机器处于单拍运行状态,按一次启动按钮QD,只发送一条微指令周期的时序信号就停机。利用单拍方式,每次只执行一条微指令,因而可以观察微指令代码和当前微指令的执行结果。DZ(单指)信号是针对微程序控制器的,接控制台开关DZ,它和P1信号配合使用。P1是微指令字判断字段中的一个条件信号,从微程序控制器输出。P1信号在微程序中每条机器指令执行结束时为1,用于检测有无中断请求INTQ,而时序发生器用它来实现单条机器指令停机。在DB=0且DP=0的前提下,当DZ=0时,机器连续运行。当DZ=1时,机器处于单指方式,每次只执行一条机器指令。

DB、SKIP、CLK1信号以及W1-W4时序信号都是针对硬联线控制器的。W1-W4是节拍信号,硬联线控制器执行一条机器指令需要一组W1-W4信号。DB(单步)信号就是每次发送一组W信号后停机,可见其功能与DZ类似。执行某些机器指令不需要完整的一组W信号周期,SKIP信号就是用来跳过本指令剩余的W节拍信号的。中断允许标志IE由控制存储器的输出信号INTS将其置1,由控制存储器的输出信号INTC将其置0。在TIMER2内部,控制台产生的中断请求用时钟CLK1进行同步,产生了INTR1。只有在INTE=1时,控制台产生的中断请求脉冲INTR才能起作用,即产生向控制器输出的中断信号INTQ,INTQ=INTE & INTR1。

2.数据通路

微程序控制器是根据数据通路和指令系统来设计的。这里采用的数据通路是在综合前面各实验模块的基础上,又增加程序计数器PC(U18)、地址加法器ALU2(U17)、地址缓冲寄存器R4(U25、U26)和中断地址寄存器IAR(U19),详见第4页的图3。PC和ALU2各采用一片GAL22V10,两者配合使用,可完成程序地址的存储、增1和加偏移量的功能。R4由两片74HC298组成,带二选一输入端。IAR是一片74HC374,用于中断时保存断点地址。有关数据通路总体的详细说明,请参看实验系统介绍。

3.微指令格式与微程序控制器电路

根据给定的12条机器指令功能和数据通路总体图的控制信号,采用微指令格式见图4.2。微指令字长共35位。其中顺序控制部分10位:后继微地址6位,判别字段4位;操作控制字段25位,各位进行直接控制。微指令格式中,信号名带有后缀“#”的信号为低有效信号,不带有后缀“#”的信号为高有效信号。

图4.2 微指令格式

对应微指令格式,微程序控制器的组成见图4.3。控制存储器采用5片EEPROM28C64(U8、U9、U10、U11、U12)。微地址寄存器6位,用一片6D触发器74HC273(U1)组成,带有清零端。两极与门、或门构成微地址转移逻辑,用于产生下一微指令的地址。在每个T1上升沿时刻,新的微指令地址会打入微地址寄存器中,控制存储器随即输出相应的微命令代码。微地址转移逻辑生成下一地址,等下一个T1上升沿时打入微地址寄存器。跳转开关JUMP(J1)是一组6个跳线开关。当用短路子将它们连通时,微地址寄存器μAR从本实验系统提供的微程序地址译码电路得到新的微程序地址μD0-μD5。当它们被断开时,用户提供自己的新微程序地址μD0-μD5。这样用户能够使用自己设计的微程序地址译码电路。5片28C64的地址A6(引脚4)直接与控制台开关SWC连接,当SWC=1时,微地址大于或者等于40H,当SWC=0时,微地址小于40H。SWC主要用于实现读寄存器堆的功能。

图4.3 微程序控制器的组成

微地址转移逻辑的多个输入信号中,INTQ是中断请求,本实验中可以不理会。SWA、SWB是控制台的两个二进制开关信号,实验台上线已接好。C是进位信号,IR7-IR4是机器指令代码,由于本次实验不连接数据通路,这些信号都接到二进制开关K0-K15上。

三、机器指令与微程序

为教学中简单明了,本实验仪使用12条机器指令,均为单字长(8位)指令。指令功能及格式如表4.1所示。指令的高4位提供给微程序控制器,低4位提供给数据通路。

表4.1  指令功能与格式

名  称

助 记 符

功 能

指令格式

R7  R6  R5  R4

R3   R2

R1   R0

加法

ADD  Rd,Rs

Rd+Rs→Rd

0   0   0   0

RS1  RS0

RD1  RD0

减法

SUB  Rd,Rs

Rd-Rs→Rd

0   0   0   1

RS1  RS0

RD1  RD0

乘法

MUL  Rd,Rs

Rd*Rs→Rd

0   0   1   0

RS1  RS0

RD1  RD0

逻辑与

AND  Rd,Rs

Rd&Rs→Rd

0   0   1   1

RS1  RS0

RD1  RD0

存数

STA  Rd,[Rs]

Rd→[Rs]

0   1   0   0

RS1  RS0

RD1  RD0

取数

LDA  Rd,[Rs]

[Rs]→Rd

0   1   0   1

RS1  RS0

RD1  RD0

无条件转移

JMP  [Rs]

[Rs]→PC

1   0   0   0

RS1  RS0

×   ×

条件转移

JC   D

若C=1则

PC+D→PC

1   0   0   1

D3   D2

D1   D0

停机

STP

暂停运行

0   1   1   0

×   ×

×   ×

中断返回

IRET

返回断点

1   0   1   0

×   ×

×   ×

开中断

INTS

允许中断

1   0   1   1

×   ×

×   ×

关中断

INTC

禁止中断

1   1   0   0

×   ×

×   ×

应当指出,用以上12条指令来编写实际程序是不够的。好在我们的目的不是程序设计,而主要是为了教学目的,通过CPU执行一些最简单的程序来掌握微程序控制器的工作原理。

上述12条指令的微程序流程设计如图4.4所示。每条微指令可按前述的微指令格式转换成二进制代码,然后写入5个28C64中。

为了向RAM和寄存器堆中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了以下五个控制台操作微程序:

存储器写操作(KWE):按下复位按钮CLR#后,微地址寄存器状态为全零。此时置SWC=0、SWB=1、SWA=0,按启动按钮后微指令地址转入27H,从而可对RAM连续进行手动写入。

存储器读操作(KRD):按下复位按钮CLR#后,置SWC=O、SWB=0、SWA=1,按启动按钮后微指令地址转入17H,从而可对RAM连续进行读操作。

启动程序(PR):按下复位按钮CLR#后,置SWC=O、SWB=0、SWA=0,用数据开关SW7-SW0设置内存中程序的首地址,按启动按钮后微指令地址转入07H,然后转到“取指”微指令。

写寄存器操作(KLD):按下复位按钮CLR#后,置SWC=O、SWB=1、SWA=1,按启动按钮后微指令地址转入37H,从而可对寄存器堆中的寄存器连续进行写操作。

读寄存器操作(KRR):按下复位按钮CLR#后,置SWC=1、SWB=0、SWA=0,按启动按钮后微指令地址转入47H,从而可对寄存器堆中的寄存器连续进行读操作。

图4.4 微程序流程图

应当着重指出,在微指令格式的设计过程中,对数据通路所需的控制信号进行了归并和化简。细心的同学可能已经发现,微程序控制器输出的控制信号远远少于数据通路所需的控制信号。这里提供的微程序流程图是没有经过归并和化简的。仔细研究一下微程序流程图,就会发现有些信号的出现的位置完全一样,这样的信号用其中一个信号就可以代表。请看信号LDPC和LDR4,这两个信号都在微程序地址07H、1AH、1FH、26H出现,而在其他的微程序地址都不出现,因此这两个信号产生的逻辑条件是完全一样的。从逻辑意义上看,这两个信号的作用是产生新的PC,完全出现在相同的微指令中是很正常的。因此用LDPC完全可以代替LDR4。还有另外一些信号,例如LDDR1和LDDR2,出现的位置基本相同。LDDR2和LDDR1的唯一不同是在地址14H的微指令中,出现了LDDR2信号,但是没有出现LDDR1信号。LDDR1和LDDR2是否也可以归并成一个信号呢?答案是肯定的。微程序流程图中只是指出了在微指令中必须出现的信号,并没有指出出现其他信号行不行,这就要根据具体情况具体分析。在地址14H的微指令中,出现LDDR1信号行不行呢?完全可以。在地址14H出现的LDDR1是一个无用的信号,同时也是一个无害的信号,它的出现完全没有副作用,因此LDDR1和LDDR2可以归并为一个信号LDDR1。根据以上两条原则,我们对下列信号进行了归并和化简:

LDIR(CER)         为1时,允许对IR加载,此信号也可用于作为双端口存储器右端口选择CER。

LDPC(LDR4)        为1时,允许对程序计数器PC加载,此信号也可用于作为R4的加载允许信号LDR4。

LDAR1(LDAR2)      为1时,允许对地址寄存器AR1加载,此信号也可用于作为对地址寄存器AR2加载。

LDDR1(LDDR2)      为1时,允许对操作数寄存器DR1加载,此信号也可用于作为对操作数寄存器DR2加载。

M1(M2)            当M1=1时,操作寄存器DR1从数据总线DBUS接收数据;当M1=0时,操作寄存器DR1从寄存器堆RF接收数据。此信号也可用于作为操作数寄存器DR2的数据来源选择信号。

在对微指令格式进行归并和化简的过程中,我们有意保留了一些信号,没有化简,同学们可以充分发挥创造性,提出更为简单的微指令格式。

还要说明的是,为什么微指令格式可以化简,而实验台数据通路的控制信号为什么不进行化简?最主要的原因是前面进行的各个实验的需要,例如LDDR1和LDDR2这两个信号,在做运算器数据通路实验时,是不能设计成一个信号的。还有一个原因是考虑到实验时易于理解,对某些可以归并的信号也没有予以归并。

四、实验接线

K0接C

K1接IR7

K2接IR6

K3接IR5

K4接IR4

TGI接GND

SKIP接GND

共七根线

五、实验任务

1.观察时序信号。

用双踪示波器观测时序产生器的输入输出信号:MF,W1-W4,T1-T4。比较相位关系,画出其波形,并标注测量所得的脉冲宽度。观察时须将TJI接低电平,DB、DZ、DP开关均置为0状态,然后按QD按钮,则连续产生T1、T2、T3、T4、W1、W2、W3、W4。

了解启停控制信号的功能,并熟练地使用连接这些控制信号的按钮或开关。

2.熟悉微指令格式的定义,按此定义将控制台指令微程序的8条微指令按十六进制编码,列于表4.2。三种控制台指令的功能由SWC、SWB、SWA三个二进制开关的状态来指定(KRD=001B,KWE=010B,PR=000B)。此表必须在预习时完成。

表4.2 微指令编码

微指令地址

微指令编码

微指令地址

微指令编码

00H

00  05C0  0207H

3CH

04  05C8  003DH

07H

00  0541  2005H

17H

00  0544  003FH

27H

04  0544  003DH

3FH

04  09C0  003EH

3DH

00  0140  003CH

3EH

00  05C8  003FH

单拍(DP)方式执行控制台微程序,读出上述八条微指令,用P字段和微地址指示灯跟踪微指令执行情况,并与上表数据对照。

其中判断条件为当程序的下一条微指令为判断语句时,看是什么判断。

微指令格式中并没有写出全部的信号,有一些进行了归并与简化。

微指令地址

微指令编码

00H

0000 0000 0000 0101 1100 0000 0000 0010 0000 0111

07H

0000 0000 0000 0101 0100 0001 0010 0000 0000 0101

27H

0000 0100 0000 0101 0100 0100 0000 0000 0011 1101

3DH

0000 0000 0000 0001 0100 0000 0000 0000 0011 1100

3CH

0000 0100 0000 0101 1100 1000 0000 0000 0011 1101

17H

0000 0100 0000 0101 0100 0100 0000 0000 0011 1111

3FH

0000 0100 0000 1001 1100 0000 0000 0000 0011 1110

3EH

0000 0000 0000 0101 1100 1000 0000 0000 0011 1111

用连续方式执行KWE和KRD(将TJI接地),画出μA0(28C64的地址A0)信号波形,作出解释。

    执行KWE:

   假设为单拍执行时:

首先按下CLE清零,然后设置SWC=O、SWB=1、SWA=0,按下QD,程序进入27地址,此时黄灯显示为10 0111,再次按下QD,程序进入3D地址,此时黄灯显示为11 1101,再次按下QD,程序进入3C地址,此时黄灯显示为11 1100,再次按下QD,程序进入3D地址,此时黄灯显示为11 1101,再次按下QD,程序进入3C地址,此时黄灯显示为11 1100,再次按下QD,继续重复,从此可以看出只有最后一位数值在0与1之间交换,并且是瞬间交换的。

所以当时连续执行时,μA0信号波形是0,1交换的方波。

执行KRD:

   同样首先假设为单拍执行时:

首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=1,按下QD,程序进入17地址,此时黄灯显示为01 0111,再次按下QD,程序进入3F地址,此时黄灯显示为11 1111,再次按下QD,程序进入3E地址,此时黄灯显示为11 1110,再次按下QD,程序进入3F地址,此时黄灯显示为11 1111,再次按下QD,程序进入3E地址,此时黄灯显示为11 1110,继续重复,与执行KWE时一样

所以当时连续执行时,μA0信号波形是0,1交换的方波。

3.用P3和SWC、SWB、SWA的状态组合,观察验证三种控制台指令KWE、KRD、PR微地址转移逻辑功能的实现。

    执行KWE:

首先按下CLE清零,然后设置SWC=O、SWB=1、SWA=0,按下QD,程序进入27地址,此时黄灯显示为10 0111,再次按下QD,程序进入3D地址,此时黄灯显示为11 1101,再次按下QD,程序进入3C地址,此时黄灯显示为11 1100,再次按下QD,程序进入3D地址,此时黄灯显示为11 1101,再次按下QD,程序进入3C地址,此时黄灯显示为11 1100,再次按下QD,继续重复,11 1100与11  1100相互之间交换。

执行KRD:

首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=1,按下QD,程序进入17地址,此时黄灯显示为01 0111,再次按下QD,程序进入3F地址,此时黄灯显示为11 1111,再次按下QD,程序进入3E地址,此时黄灯显示为11 1110,再次按下QD,程序进入3F地址,此时黄灯显示为11 1111,再次按下QD,程序进入3E地址,此时黄灯显示为11 1110,继续重复,11 1111与11  1110相互之间交换。

执行PR:

   首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=0,按下QD,程序进  入07地址,此时黄灯显示为00 0111,在此按下QD,程序进入05地址,此  时黄灯显示为00 0101,接下来就是一下实验内容了。

4.熟悉05H,10H两条微令的功能和P2测试的状态条件(IR4-IR7),用二进制开关设置IR7-IR4的不同状态,观察ADD至STP九条机器指令微地址转移逻辑功能的实现。

05H的功能是取地址,

10H的功能就是进行加法运算。

首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=0,按下QD,程序进 入07地址,此时黄灯显示为00 0111,在此按下QD,程序进入05地址,然后设置IR4-IR7的值转跳到不同的程序

ADD:设置IR4-IR7的值为0000,按下QD,观察黄灯显示为01  0000,所以成功的进入ADD程序。

SUB: 设置IR4-IR7的值为0001,按下QD,观察黄灯显示为01  0001,所以成功的进入SUB程序。

MUL: 设置IR4-IR7的值为0010,按下QD,观察黄灯显示为01  0010,所以成功的进入MUL程序。

AND: 设置IR4-IR7的值为0011,按下QD,观察黄灯显示为01  0011,所以成功的进入AND程序。

LDA: 设置IR4-IR7的值为0101,按下QD,观察黄灯显示为01  0101,所以成功的进入LDA程序。

STA: 设置IR4-IR7的值为0100,按下QD,观察黄灯显示为01  0100,所以成功的进入STA程序。

JMP: 设置IR4-IR7的值为1000,按下QD,观察黄灯显示为01  1000,所以成功的进入JMP程序。

JC: 设置IR4-IR7的值为1001,按下QD,观察黄灯显示为01  1001,所以成功的进入JC程序。

STP: 设置IR4-IR7的值为011,按下QD,观察黄灯显示为01  0110,所以成功的进入STP程序。

5.设置IR7-IR4的不同组合,用单拍方式执行ADD至STP九条机器指令微程序,用微地址和P字段指示灯跟踪微程序转移和执行情况。用逻辑笔测试小插座上输出的微命令信号,记录ADD、SUB、LDA、STA四条机器指令的微命令信号,自行设计表格。

首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=0,按下QD,程序进 入07地址,此时黄灯显示为00 0111,在此按下QD,程序进入05地址,然后设置IR4-IR7的值转跳到不同的程序

ADD: 设置IR4-IR7的值为0000,按下QD,观察黄灯显示为01 0000,所以成功的进入ADD程序,再次按下QD,进入下一个10地址,黄灯显示01  0000,再次按下QD,进入下一个3B地址,黄灯显示11  1011,,再次按下QD,进入下一个34地址,黄灯显示11  0010,再次按下QD,程序停止。

SUB: 设置IR4-IR7的值为0001,按下QD,观察黄灯显示为01 0001,所以成功的进入SUB程序,再次按下QD,进入下一个11地址,黄灯显示01  0001,再次按下QD,进入下一个3A地址,黄灯显示11  1010,,再次按下QD,进入下一个34地址,黄灯显示11  0010,再次按下QD,程序停止。

LDA: 设置IR4-IR7的值为0101,按下QD,观察黄灯显示为01 0101,所以成功的进入LDA程序,再次按下QD,进入下一个15地址,黄灯显示01  0101,再次按下QD,进入下一个36地址,黄灯显示11  0110,,再次按下QD,程序停止。

STA:设置IR4-IR7的值为0100,按下QD,观察黄灯显示为01  0100,所以成功的进入STA程序,再次按下QD,进入下一个14地址,黄灯显示01  0100,再次按下QD,进入下一个35地址,黄灯显示11  0101,,再次按下QD,程序停止。

六、实验总结

本次实验深入探讨了常规型微程序控制器的组成原理及其应用,主要围绕以下几个核心环节展开:

1. 时序信号产生器的分析与理解:通过对时序发生器(包括TIMER1和TIMER2)的ABEL语言源程序的解读,掌握了时序信号T1-T4与W1-W4如何被生成和控制,以及这些信号在微程序控制器与硬联线控制器中的作用。特别是学习了如何使用复位信号CLR、启动信号QD、中断逻辑等控制整个系统的运行状态,为后续实验打下了基础。

2. 微指令格式的优化实践:通过研究给出的微指令格式,了解了微指令是如何设计来满足控制需求的,包括顺序控制部分和操作控制字段的安排。特别地,实践了微指令格式的化简和归并过程,比如将功能相似的信号如LDPC与LDR4归并,从而简化了微指令的设计,提升了效率,这一过程要求深入理解控制信号的功能与应用场景。

3. 微程序控制器电路的搭建与验证:基于对数据通路的理解,学习了微程序控制器的硬件组成,包括控制存储器(EEPROM)、微地址寄存器等关键组件的连接与功能。通过实际接线操作,如将K0至K4分别连接到特定控制信号,以及TGI接地、SKIP接地,加深了对硬件接口配置的认识。

4. 实验操作与结果分析:通过一系列具体操作,如观察时序信号波形、验证微指令编码的正确性、以及通过控制台指令(KWE、KRD、PR)的执行来测试微地址转移逻辑,不仅验证了理论知识,还学会了如何使用实验设备进行调试和验证。特别是在单拍模式下跟踪微指令执行,以及连续模式下观察μA0信号波形,这些实践加深了对微程序执行流程和控制逻辑的理解。

5. 指令功能验证与微地址逻辑测试:通过设置不同的IR值来执行特定机器指令(如ADD至STP),观察微地址转移与P字段指示,进一步验证了微指令设计的正确性及数据通路对指令的响应。此外,通过逻辑笔测试输出的微命令信号,更直观地理解了每条指令执行背后的微命令序列,这对于深入掌握微程序控制机制至关重要。

综上所述,本次实验是一个从理论到实践的全面探索过程,涵盖了微程序控制器设计的核心概念与技术细节,通过动手实践,不仅巩固了理论知识,也培养了问题解决和系统分析的能力。

这篇关于计算机组成原理:实验四常规型微程序控制器组成实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124051

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多