[计算机组成原理课程设计]2023浙江理工大学

一、目的和要求

深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。

要进行这项大型实验,必须清楚地懂得:

  1. TEC-2机的功能部件及其连接关系

  2. TEC-2机每个功能部件的功能与具体组成

  3. TEC-2机支持的指令格式

  4. TEC-2机的微指令格式,AM2910芯片的用法

  5. 已实现的典型指令的执行实例,即相应的微指令与其执行次序的安排与衔接

  6. 要实现的新指令的格式与功能。

二、实验环境

TEC-2模拟机

三、具体内容

选定指令格式、操作码,设计如下指令:

(1)加法指令。

指令格式:D5DRSR,DISP 双字指令(控存入口100H)

功能: [DR]=[DR] +[[SR]+DISP]

微程序设计与实现

执行顺序微指令说明
1PC->AR将DISP的地址放入AR,为偏移量读出做准备
2MEM->Q将DISP从内存读出放入Q寄存器
3SR->AR将SR寄存器的值放入AR,为SR读出做准备
4MEM+Q->AR将SR从内存读出并加上DISP后放入AR寄存器,为[[SR]+DIP]的读出做准备
5MEM->Q将[[SR]+DIP]读出放入Q寄存器
6DR->AR将DR放入AR,为DR读出做准备
7MEM+Q->Q将DR从AR中读出,让后放入Q寄存器
8Q->MEM,CC#=0将Q寄存器的值放入DR中(上次放入AR的值是DR指向的地址)。

1.PC->AR

 0000 0E00 9030 5002

微码介绍:

2.MEM->Q

 0000 0E00 00F0 0000

微码介绍:

3.SR->AR

 0000 0E00 9040 0082

微码介绍:

4.MEM+Q->AR

 0000 0E01 10E0 0002

微码介绍:

5.MEM->Q

 0000 0E00 00F0 0000

微码介绍:

6.DR->AR

 0000 0E00 90B0 008A

微码介绍:

7.MEM+Q->Q

 0000 0E01 00E0 0000

微码介绍:

8.Q->MEM,c#=0

 0029 0300 1020 0010

微码介绍:

指令测试

如下图所示,[1800H]单元存储了100[1700H]单元存储了1800[1805H]单元存储了10,在使用该指令后,[1800H]单元加上了[1805H]单元的10后存放在[1800]单元中得到正确结果:110.

(2)传送指令。

指令格式:D8××,ADDR1,ADDR2 三字指令(控存入口110H)

功能: [ADDR1]←[ADDR2]

微程序设计与实现

执行顺序微指令说明
1PC+1->AR将ADDR2的指针地址放入AR,为ADDR2地址读出做准备
2MEM->AR将ADDR2的地址从地址中读出放入AR,为ADDR2读出做准备
3MEM->Q将ADDR1的值读出放入Q寄存器中
4PC->AR,PC+1->PC将ADDR1的内存地址送入AR,为ADDR1地址读出做准备
5MEM->AR将ADDR1的值读出放入AR,为ADDR1读出做准备
6Q->MEM,CC#=0将Q寄存器的值放入,AR指向的内存单元(此时AR指向的内存单元是[ADDR1])

1.PC+1->AR

0000 0E00 9035 5402

微码介绍:

2.MEM->AR

0000 0E00 10F0 0002 

微码介绍:

3.MEM->Q

0000 0E00 00F0 0000

微码介绍:

4.PC->AR,PC+1->PC

0000 0E00 A0B5 5402

微码介绍:

5.MEM->AR

0000 0E00 10F0 0002

微码介绍:

6.Q->MEM,c#=0

0029 0300 1020 0010

微码介绍:

指令测试

如下图所示[1800H]单元存储了1[1805H]单元存储了2,使用该微程序后[1800]H单元存储了[1805H]单元的2结果正确。

(3)转移指令。

注意:本题结果有误,但是用E501,0004可以得正确结果但不符合题目要求。期末复习任务重,具体正确做法请读者自行探究。

判断两个通用寄存器内容是否相等,若相等则转移到指定目的地址((IP)+DISP),否则顺序执行。

指令格式:E1 DR SR,DISP 双字指令(控存入口130H, DISP为相对转移地址偏移量)

功能: if DR=SR goto (IP)+DISP else 顺序执行。

微程序设计与实现

执行顺序微指令说明
1DR-SR,CC#=CND测试DR与SR是否相等,如果Z=1(/Z=0)则程序跳转到A4H
2PC->AR,PC+1->PC为读取转移地址做准备
3IP+MEM->PC,CC#=0读取偏移量并且加上当前地址,然后跳至指定地址

1.DR-SR,#CC=CND

0029 0371 9190 0088

微码说明:

2.PC->AR,PC+1->PC

0000 0E00 A0B5 5402

微码说明:

3.IP+MEM->PC,CC#=0

0029 0300 30D6 5000  

微码说明:

指令测试

如图所示在R0,R1中分别存放1,1 使用该指令后不执行`MOV R2,0指令R2的值仍为1.

四.实验心得

五.附加材料

下面是对Tec-2机的一些总结

字长


TEC-2机字长为10位。

指令


TEC-2机指令字长位16位,其中有6位(IR_{15-10})操作码,之后两位IR_{9-8}是条件码。最多支持2^{6}=64条指令,其中有53条已经实现。

IR:指令寄存器,用于存储当前正在执行的指令

主存


主存支持64K字,4K\times 8的ROM存放监控程序,2K \times 8的RAM存放用户数据和数据。

运算器


运算器由四片AM2901级联而成,可以实现8种运算功能,16哥双端口(A,B)读出、单端口(B)写入的通用寄存器,其中R_{4-6} 分别为SP,PC,IP寄存器,其余寄存器可用于用户编程。

  • IP 寄存器

    保存当前正在运行的指令的地址,用于转移变址的目的

  • I_{8-6}

    进行寄存器结果和Y输出选择

  • I_{5-3}

    进行运算功能选择

  • I_{2-0}

    进行数据来源选择

控制器


控制器由一篇AM2910,7片6116(RAM,2K \times 8)(微控)、16位的指令寄存器IR和2片2716(存储用于实现53条机器指令的微程序,加电后读取送入微控存)等组成。

  • PC寄存器

    程序计数器PC用运算器的R5寄存器表示,保存下一条指令的地址

  • IP寄存器

    指令地址寄存器IP由运算器的R6寄存器表示,保存当前执行的指令

  • 微控

    已实现的53条指令的微程序存放在2片单独的8位 中,加电的过程自动调入控存(装入微 码)。

  • AR

    地址总线的输入信号仅有一组,即地址寄存器( AR),而AR只能接收来自运算器的结果输出信号。

常用微指令


  • 19H

    取指令, 增量。

    该条微指令公用于所有指令。

  • 1AH

    1AH 按新取来的指令的操作码找到该条指令本身的微程序段的入口地址。

    19H之后一定是1AH

  • A4H

    A4H 根据有无中断请求,决定是进入中断处理过程,还是顺序执行。

    任何一条机器指令执行完都要去A4H检测中断

程序调试


以第一个微程序为例

前期准备

  1. S_{2}S_{1}S_{0}

    设为100

  2. FS_{1}FS_{2}FS_{3}FS_{4}

    设为1010

  3. STEP/CONT

    设为CONT

输入并查看微码

  1. E900

    将微码输入到900H开始的内存单元中

  2. D900

    查看900H开始的内存单元的数据

将微码加载到微控

  1. A800

    输入加载微码的程序

  2. G800

    运行上边的代码,把微码装入微控存100H开始的单元中

测试指令

  1. A820

    输入测试指令的程序到820H开始的内存单元中

  2. E830

    把新指令写到830H开始的内存单元中

  3. U820

    反汇编,查看输入的测试指令的程序

  4. G820

    运行从820H开始的程序

观察运算结果

DA00

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值