计算机组成原理——实验1:TEC-2实验计算机运算器实验

实验一:TEC-2实验计算机运算器实验

一、实验目的

        1. 了解和掌握Am2901运算器的组成结构和工作原理;

        2. 认识和掌握TEC-2机运算器的组成和工作原理;

        3. 认识和掌握TEC-2机运算器相关控制信号的含义和使用方法;

二、实验原理

1. AM2901芯片的内部结构

        AM2901 芯片是一个4位的位片结构的运算器部件,其内部组成结构如下图所示:

图1  AM2901内部组成结构

        该器件是位片结构的,每片内仅有四位线路。其内部组成包括:

        (2)16个4位的通用寄存器组,用R0~R15表示,和一个4位的Q寄存器。通用寄存器组为双端读出(用A地址与B地址选取择每个寄存器)和单端(用B地址选取择)控制写入的行方式,而且运算后的结果经过一个移位器实现写入(左移,不移,右移)。Q寄存器本身具有左移右移功能且能接受ALU的运算结果。左右移位时,就有移出、移入信号RAM3,RAM0,Q3,Q0,4个信号,它们都是通过具有双向传送功能的三态门实现的。  

        (3)该芯片能接收外部送入的4位数据D3~D0,并输入4位的数据Y3~Y0。Y3~Y0可以是通用寄存器A端口上的输出或ALU的运算结果F,并还受输出允许控制信号/OE的控制,仅在/OE为低时,Y3-Y0才有输出,否则处于高阻态。

        (4)ALU的两个输入端R和S分别可以接收D输入,A端口或逻辑0数据,和A端口、B端口、Q寄存器和逻辑0数据。Am2901器件只选用了它们可能的全部12种组合中的8种,即A_Q,A_B,0_Q,0_B,0_A,D_A,D_Q,和D_0这8种,并用外部送来的3位控制码I2~I0来选择这8种组合。

        (5)AM2901还采用另外3位外部送来的控制信号I8~I6。一是选择向外部送出的数据的来源(A口数据还是ALU运算结果),二是选择其内部的通用寄存器组和Q寄存器接收不接收和如何接收数据库写入(左移,右移,直送)。

2. AM2901芯片的引脚信号及其控制码与操作 

        一片4位的AM2901芯片的引脚信号如下图2所示。

图 2 AM2901芯片的引脚信号

其中:

  1. A、B地址:选择通用寄存器组中的源与目的寄存器。当A和B同值时,被选中的一个寄存器的内容将被同时送到A、B两个数据输出端口;
  2. I2~I0用于运算过程的控制信号;D3~D0用于输入外部数据信号;
  3. Y3~Y0用于输出运算的结果,它会受/OE信号的控制。在TEC-2机中,/OE端已接地,因此,Y3~Y0总是有的;
  4. CP为时钟信号;/OE为选通信号;
  5. RAM3、RAM0为运算结果左右移时的移出位;Q3、Q0为乘商寄存器Q左右移时的移出位;Cy、F=0、Over、F3分别为进位标志位、零标志位、溢出标志位、符号标志位;;Cin 为外部输入的最低进位位。
  6. I8~I0:外部送来的3组3位的控制信号,功能分别如下: 
  •                 ① I8、I7、I6:选择运算结果或有关数据以何种方式送往何处;
  •                 ② I5、I4、I3:选择ALU的运算功能,共八种;  
  •                 ③ I2、I1、I0:选择送入进行运算的两个操作数据R和S的来源。

        这三种控制信号与相关控制码的关系如下:

图3  AM2901控制信号与相关控制码关系

3. Am2901的操作时序

图4  AM2901的操作时序

4. TEC-2机运算器

图5 微指令中三位微码(SST)与标志位的关系

4片间的连接关系是:  

  1. 16位的数据输入有4片各自的D3~D0组成,其位序号从高位芯片向低位芯片顺序排成D15~D0。
  2. 16位的数据输出由4片各自的Y3~Y0组成,其为序号从高位芯片向低位芯片顺序排成Y1-Y0。高地位进位关系的3组信号。
  3. 有高低位进位关系的3组信号,在高低位相邻芯片间连接关系是:
    1.         ① 高位芯片的RAM0与低位芯片的RAM3相连
      1.         ② 高位芯片的Q0与低位芯片的Q3相连
        1.         ③ 在串行进位方式下,高位芯片的Cn与低位芯片的Cn+4相连;若选用AM2902芯片(与74LS182芯片功能相同,两者可以互换使用)实现并行进位,则低位的3个芯片的并行进位信号/G和/P应送往AM2902的相并没有管脚,并将各自对应的片间进位输出信号送入相邻高位芯片AM2901的Cn管脚。同时支持串、并行两种方式,有利于方便地观察与测量每种进位方式的进位延迟时间。

此时,最低位芯片的RAM0与Q0是该16位的运算器的最低位的移入/出信号,最高位芯片的RAM3与Q3是运算器最高位的移入/出信号,均需有另外的逻辑电路与之连接,最低位的Cn是整个运算器的最低位进位输入信号。最高位的CN+4是16位完整运算器的进位输出信号。

同理,只有最高位芯片的F3和OVR有意义,低位的3个芯片的F3和OVR不被使用,4个芯片的F=0000管脚连接在一起,并经一个电阻接到+5V电源,已得到16位的ALU的运算结果为“0”的标志位信号。

注意:标志位的含义及取值:

S:符号标志,负数为1;

V:溢出标志,溢出则为1;

Z:运算结果标志,结果为0则为1;

C:进/借位标志,有则为1

5. 运算器最低位进位信号的给出与控制(SCi)   

运算器最低位的进位信号Cin可能为1、为0、为C标志位的值。为了测试与实验方便,有时可送入一个连续的方波信号,当让运算执行16位全1与这个最低位的进位方波信号相加时,则加法器每一位的输出结果均为方波,有利于观察和测试。为此,我们选用两位微码SCi来区分这4中输入情况,具体见下表:

图6  4种输入情况

6. 运算器最高位、最低位的移入信号(SSH)

说明:

  1. 表中“X”为任意值,表示取任意值都不受影响。 
  2. 当通用寄存器本身移位时,Q寄存器不受影响。
  3. 乘除法运算要求通用寄存器与Q寄存器联合移位,没有Q寄存器单独移位功能。
  4. 左右移是由指令功能确定的。
  5. SSH 为0,用于逻辑移位指令;为1,用于循环移位指令;为2,用于乘除法运算的联合移位及上商;为3,用于算术右移指令,或补码乘法计算。

三、实验内容

脱机和联机时运算器实验

在脱机与联机两种方式下,可以用一些数据实现多种运算,以控制其操作过程与功能

检查所得结果的正确性。

(一) 脱机方式

1. 将TEC-2机功能开关FS4置为“1”。

2. 将TEC-2机主脉冲置为单步方式,即将STEP/CONT开关拨向STEP一边。

3. 用D0+0→R0将立即数D0(A000H)置入寄存器R0(0000)。具体的微型开关和数据开关按下表进行设置:

波特率开关 数据开关

SW2(共12位,最末三位未用) SW1(共12位)

MI876 MI543 MI210 未用 A口 B口(R0) SCi SSH D15-D0

011 000 111 000 0000 0000 00 00 A000H

设置好各控制信号(MI8-MI0),并设置好十六位数据开关为“A000H”,即“1010 0000 0000 0000”后,按压一次STEP键,将立即数D0置入寄存器R0中。

4. 用D1+0→R1将立即数D1(4000H)置入寄存器R1(0001)。具体的微型开关和数据开关按下表进行设置:

波特率开关 数据开关

SW2(共12位,最末三位未用) SW1(共12位)

MI876 MI543 MI210 未用 A口 B口(R1) SCi SSH D15-D0

011 000 111 000 0000 0001 00 00 4000H

用同样的方法将立即数D1置入寄存器R1中。

5. 对寄存器R0、R1初始化后,便可对R0和R1进行各种算术、逻辑运算,此时R0保存的数据为D0(A000H),R1保存的数据为D1(4000H)。

6. 将开关S2 S1 S0置于“110”时,指示灯将显示ALU的运算结果;将开关S2 S1 S0置于“000”时,指示灯将显示SVZC的状态,对应TEC-2机上H25 = S,H26 = V,H27 = Z,H28 = C。

7. 对R0和R1进行各种算术、逻辑运算。

(二) 联机方式

启动TEC-2机,进入监控程序状态:具体操作如下:

1. 将TEC-2机的FS1~FS4置为1010,STEP/CONT置成CONT。

2. 打开计算机电源开关,使计算机正常启动。打开TEC-2电源开关,TEC-2大板左上角一排指示灯亮。

3. 运行通讯程序PCEC,在DOS下命令提示(按默认设置:选择1,N)。联机后,进入联机状态,用A命令输入下列程序:(ENTER表示)

>A800 ENTER

MOV     R0,A000

      MOV     R1,4000

ADD     R0, R1

      SUB     R0,R1

      OR      R0,R1

      AND     R0,R1

      XOR     RO, R1

      ADC     R0, R1

      SHL    RO

      INC    RO  

      RET

4. 用“G”命令运行程序

在命令行提示符状态下输入:

> G800

执行上面输入的程序

5. 用“R”命令观察运行结果及状态

在命令行提示符状态下输入:

>R

观察运行结果及状态

屏幕将显示:

R0=8001  R1=4000……

6. 用“T”或“P”命令单步执行

在命令行提示符状态下输入:

>T

>P

执行之后,观察运行结果及状态

四、实验器材

1. TEC-2机一台,电脑一台

2. TEC-2模拟软件一套

五、实验分析与设计

1. 脱机实验

初始化R0寄存器:

初始化R1寄存器:

(1)R0+R1—>R0

STEP前ALU输出:                                           STEP后ALU输出:

    

STEP前SVZC输出:                                          STEP后SVZC输出:

    

(2)R0+0—>R0

STEP前ALU输出:                                              STEP后ALU输出:

   

STEP前SVZC输出:                                            STEP后SVZC输出:

    

(3)R0-R1—>R0

STEP前ALU输出:                                               STEP后ALU输出:

   

STEP前SVZC输出:                                             STEP后SVZC输出:

  

(4)R0+0—>R0

STEP前ALU输出:                                                    STEP后ALU输出:

   

 STEP前SVZC输出:                                               STEP后SVZC输出:

   

(5)R0˅R1>R0

STEP前ALU输出:                                                   STEP后ALU输出:

  

STEP前SVZC输出:                                               STEP后SVZC输出:

  

(6)R0+0>R0

STEP前ALU输出:                                                   STEP后ALU输出:

   

STEP前SVZC输出:                                                STEP后SVZC输出:

  

 (7)R0˄R1>R0

STEP前ALU输出:                                                   STEP后ALU输出:

     

STEP前SVZC输出:                                           STEP后SVZC输出:

   

(8)R0+0>R0

STEP前ALU输出:                                                STEP后ALU输出:

  

STEP前SVZC输出:                                                STEP后SVZC输出:

  

总结:

以上结果均符合实验操作手册中的逻辑运算表,实验正确。

2. 联机实验

  1. 输入A命令,选择800地址空间;
  2. 将AAAAH数据赋值给R0寄存器;
  3. 将5555H数据赋值给R1寄存器;
  4. 将R0与R1进行相加,并把结果保存至R0寄存器,得FFFFH数据;
  5. 将R0与R1相减,得到AAAAH数据,结果保存至R0;
  6. 将R0与R1进行或运算,结果得FFFFH,并保存至R0寄存器;
  7. 将R0寄存器中的FFFFH与R1进行AND与运算,屏蔽掉与R1中数据位不同的数据重新得到5555H并保存到R0中,最终R0与R1寄存器都保留数据5555H,结束并返回。

利用G命令执行,通过R命令观察、T/P命令单步调试,运行结果与人工计算以及机器最终运算结果一致,实验正确,得以验证。

六、思考题

在脱机方式下进行运算器实验时,在按STEP键之前和按STEP键之后,ALU的输出结果及状态SVZC有何不同,为什么?根据Am2901运算器的组成结构及其工作原理加以说明。

答:设置好相应微码和AB口地址之后,立即输出该运算功能的运算结果,此时ALU也已经得到SVZC的值,但并没有传给标志寄存器。按STEP之后,ALU的输出结果则为运算器再做一次运算的结果,这时SVZC所显示的值则为上一步标志位寄存器的值。

根据AM2901运算器的组成结构可以知道,ALU是一个组合逻辑电路,设置A、B相应的值之后,相应的数据便会立即被传送到ALU中进行相应的运算,并且显示出对应的运算结果也会被存在存储器里面。按下STEP之后,在脉冲的作用下,上一步的运算结果也会被存在寄存器里面,但控制码和地址没有改变,所以上一步的运算结果会重新被送到ALU中进行运算,此时ALU的结果为一步运算结果再进行一次运算的数据。

SVZC存储在状态标志寄存器中,其值的改变需要有脉冲信号的作用才能改变,所以在按STEP之前,SVZC的值不变,按下STEP之后,SVZC显示的值才是上一步标志位的状态值。

七、实验心得

在理论课的学习过程中,通过老师的讲解和同学ppt汇报,我对AM2901运算器有了初步的认识。通过本次实验,更加加深了我对其组成结构和工作原理的了解和掌握。通过实际仿真操作,了解了运算器关于二进制码的与或非操作,进一步提高了对机器实现计算功能的认知。

另外,我认识和掌握了TEC-2机运算器的组成和工作原理,主要通过实验拨动波特率开关以及手拨开关,能够了解开关在一些情况下的数据显示,以及背后的工作原理。最后,认识和掌握TEC-2机运算器相关控制信号的含义和使用方法,能够通过这些控制信号以及手拨数据信号进行简单的数据逻辑运算,为接下来能够进行更多更复杂的计算机组成原理实验奠定了基础。

对于脱机方式,经过仿真实验,我在自己的电脑上能够熟悉TEC-2仿真界面,并将自己的操作通过仿真实现,使得LED灯的灯光显示与预期效果一致,达到实验的完成。

除了完成实验目的之外,我对于汇编语言也有一定理解。在联机实验中,通过编写汇编指令,能够清楚地知道在哪块内存空间工作、存储数据;通过单步调试,能够将指令与数据空间存储分配对比起来观察,使自己的汇编语言能力有所提升。

  • 30
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
tec-4a计算机组成原理实验系统中的运算器主要由算术逻辑单元(ALU)和寄存器组成。算术逻辑单元是处理各种算术运算和逻辑运算的核心部件,它由一系列逻辑门和触发器构成。ALU通常包含加法器、减法器、与门、或门等。 寄存器是存储器件,用于暂时存储数据和指令。寄存器在运算器中起到存储和传输数据的作用。常见的寄存器有累加寄存器(ACC)和操作数寄存器(ORA、ORB)等。累加寄存器用于存储运算结果,操作数寄存器则用于存储需要进行运算的操作数。 在tec-4a计算机组成原理实验系统中,运算器的组成主要包括了这些功能部件,并通过控制信号进行协调工作。运算器能够通过输入端口接受指令和数据,并通过输出端口输出运算结果。 通过实验,我们可以通过输入适当的指令和数据来测试运算器的功能和性能。例如,可以输入一些数字进行加法和减法运算,然后观察运算器的输出是否符合预期结果。也可以进行一些逻辑运算,如与、或、非等,来验证运算器的逻辑运算功能。 在实验过程中,我们还可以通过修改运算器的设计参数,如增加逻辑门的数量和改变触发器的结构等,来观察这些改变对运算器性能的影响。通过这些实验,我们可以更好地理解运算器的工作原理和设计要点,提高我们对计算机组成原理的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阮阮的阮阮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值