您的当前位置:首页正文

计算机组成原理实验设计

2023-06-30 来源:易榕旅网
计算机组成原理

课程设计

微程序实验报告

姓班学

名级号

: *** : *** : *******

指导老师: *** 同组人: ***

实验目的:

1. 深入理解计算机微程序控制的功能、组成知识。 2. 深入地学习计算机各类典型指令的执行流程。

3. 对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念 4. 学习微程序控制器的设计过程和相关技术。 实验内容:

设计指令A组扩展指令SBB、NOT和C组扩展指令LDRA的功能、格式和执行流程,并在教学机上实现、调试正确。 实验步骤:

1. 确定指令格式和功能,包括确定要用的操作码,指令中其他字段的内容分配与使用。 SBB、NOT和LDRA指令格式和功能需查表:

指令格式和功能

指令格式 00100000 DRSR 00100001 DRSR 00101010 DR0000 00101011 DR0000 00101100 DR0000 00101101 DR0000 01100000 0000SR 01100100 OFFSET 01100101 OFFSET 汇编语句 ADC DR,SR SBB DR,SR RCL DR RCR DR ASR DR NOT DR JMPR SR JRS OFFSET JRNS OFFSET 操作数个数 2 2 1 1 1 1 1 1 1 0 0 0 0 1 2 CZVS **** **** 功能说明 DR←DR+SR+C DR←DR-SR-C 指令类型 *··· DR←DR带进位C循环右移 *··· DR←DR带进位C循环左移 *··· DR←DR算术右移 **** DR←/DR ···· 跳转到SR指明的地址 ···· S=1时跳转 ···· S=0时跳转 0··· C=0 1··· C=1 ···· 开中断 ···· 关中断 ···· 调用SR指明的子程序 ···· DR←[ADR] ···· DR←[DATA+SR] ···· [DATA+SR]←SR ···· [ADR]←SR ···· 中断返回 D组指令 C组指令 A组指令 01101100 00000000 CLC 01101101 00000000 STC 01101110 00000000 EI 01101111 00000000 DI 11100000 0000SR 11100100 DR0000 11100101 DRSR ADR(16位) 11100110 DRSR ADR(16位) 11100111 0000SR CALR SR LDRA DR,[ADR] LDRX DR,OFFSET[SR] 2 STRX DR,OFFSET[SR] 2 STRA [ADR],SR 1 0 11101111 00000000 IRET SBB和NOT: ① 查表⑴得SBB和NOT指令格式: SBB: NOC:

21 2D DRSR DR 功能:

SBB: DR←DR-SR-C NOT: /DR→DR

② 指令执行流程图:

取址 取指 DR←DR-SR-C ③ 分析控制信号,分别查表得: 指令 OP 微址 51 52 微下址 30 30 CI3-0 SCC3-0 0MRW 0I2-0 SAI8-6 SBI5-3 /DR→DR B3-0 A3-0 0SST SSH 0DC2 0DC1 SCI SBB 21 NOT 2D 0011 0000 0100 0001 1011 1001 0000 0000 0001 0010 0000 0000 0011 0000 0100 0011 0011 1111 0000 0000 0001 0000 0000 0000 (1) “微下址”:在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常1)形成

的;而在非顺序执行时则要产生一个转移地址,即“微下址”。查表(2)得转移的话“微下址”是“30”。

(2) CI3-0

为AM2910提供命令码I3-I0

CI3—CI0 0000(0#) 0010(2#) 0011(3#) 1110(14#) 功能 初始化 MAPROM 条件微转移 顺序执行 (3) SCC3-0 给出形成AM2901的/CC信号的条件码SCC,具体条件如下 SCC (CI3-CI0=0011) 0000 0001 16位机 0100 0101 0110 0111 功能 (下面的条件满足时,使/CC=0) 必转 /INT=0时转 JRC,JRNC,JRZ,JRNZ条件不成立时转 JRS,JRNS条件不成立时转向下条指令 IRH2=0时转 IRH3=0时转 (4) MRW:

与内存、I/O读写有关的控制信号如 /MIO REQ /WE 译码信号 功能说明 000 001 /MWR /MRD 内存写信号,低电平有效 内存读信号,低电平有效 控制对象 存储器的写信号引脚 存储器的读信号引脚 010 011 00X 01X 1XX /WR /RD /MMREQ /IOREQ (无) I/O写信号,低电平有效 I/O读信号,低电平有效 I/O设备的写信号引脚 I/O设备的读信号引脚 内存读写请求,低电平有效 内存地址译码器DC4 74LS138的使能端 I/O读写请求,低电平有效 I/O地址译码器DC5 74LS138的使能端 无读写操作 (5) I0-I8:

I8-I6 选择运算结果或有关数据以什么方式送往何处的处理方案,这主要指通用寄存器组Q寄存

器执不执行接收操作或移位操作,以及向芯片输出信息Y提供的是什么内容。

I5-I3 选择ALU的八种运算

I2-I0 选择送入ALU的两个操作数据的组合关系。

控制码编码 000 001 010 011 100 101 110 111 I8-I6 存储器结果的选择 无 无 F→B F→B F/2→B F/2→B 2*F→B 2*F→B Q结果的选择 无 无 无 无 Q/2→Q 无 2*Q→Q 无 Y输出选择 F F A F F F F F I5-I3 运算功能选择 R+S S-R R-S R∨S R∧S /R∧S +S R○+S) /(R○I2-I0 数据来源 R A A 0 0 0 D D D S Q B Q B A A Q 0 (6) SA、SB: 用于指明运算器A口,B口的控制信号是由微指令中的A3-A0、B3-B0给出还是由当前指令操作给出。

16位机 编码SA或SB 0 1 A口 微指令A口 IR的SR字段 B口 微指令B口 IR的SR字段 (7) B3-0 A3-0

用于指定源寄存器和目的寄存器号,各用四位二进制数表示

(8) SST

表(8) 3位控制码SST 000 001 010 011 100 101 110 111 状态位 C C CY IBH7 0 1 RAM0 RAM15 Q0 Z Z F=0 IBH6 Z Z Z Z Z V V OVR IBH5 V V V V V S S F15 IBH4 S S S S S 说明 四个标志位的值保持不变 接收ALU的标志位输出的值 恢复标志位原现场值 置“0”C,另三个标志位不变 置“1”C,另三个标志位不变 右移操作,另三个标志位不变 左移操作,另三个标志位不变 联合右移,另三个标志位不变 (9) SSH:左右移位时空出来的位由什么补。 2位控制码SSH 00 01 10 11 左移 RAM0 0 C Q15 X Q0 X X /F15 X CIN取值 0 1 C C0 0 C CY F15 右移 RAM15 Q15 X X RAM0 RAM0 通用寄存器逻辑移位 通用寄存器与C循环移位 原码除(左移)乘(右移) 通用寄存器与Q联合移位 说明 (10) SCI:决定最低进位输入信号CIN的形成。

2位控制码SCI 00 01 10 11 LDRA: ① 查表(1)得LDRA指令格式: E4 DR0000 ADR 功能: DR←[ADR],从内存地址是ADR的内存单元中读数到DR中。 ② 指令执行流程图

取址 PC→AR PC+1→PC MEM→AR MEM→DR ③ 分析控制信号,分别查表得: OP E4 微址 5B 5C 下址 CI3-0 SCC3-0 00 1C 1110 0000 0011 0000 0MRW I2-0 I8-6 I5-3 B口 A口 0SST SSH 0DC2 0DC1 SCI 0100 0011 0010 0000 0101 0101 0000 0001 0011 0000 0001 0111 0001 0000 0000 0000 0000 0000 0011 0000 2. 按新指令的功能和格式,设计指令的执行流程。 3. 在指令的流程表中填写每一个控制信号的状态值。 4. 将设计好的微码,装入控制存储器的相应单元。

第一片控制存储器芯片(MAPROM)中写入扩展指令的入口地址

E 4021↓ ;4OOOH-FFFFH为用户扩展区,可存放用户的程序和数据

21为SBB的操作码,且必须是扩展指令的操作码。 即入口地址由“40+扩展指令的操作码”组成

4021 ****:0051↓ E 402D↓

402D ****:0052↓ E 40E4↓

40E4 ****:005B↓

第二片写入微下址控制信号 E 4051↓

4051 ****:0030↓ E 4052↓

4052 ****:0030↓ E 405B↓

405B ****:0000↓ E 405C↓

405C ****:001C↓

第三片写入CI3-0 SCC3-0 控制信号 E 4051↓

4051 ****:0030↓ E 4052↓

4052 ****:0030↓ E 405B↓

405B ****:00E0↓ E 405C↓

405C ****:0030↓

第四片写入0MRW 0I2-0 控制信号 E 4051↓

4051 ****:0041↓ E 4052↓

4052 ****:0043↓ E 405B↓

405B ****:0043↓ E 405C↓

405C ****:0017↓

第五片写入SAI8-6 SBI5-3 控制信号 E 4051↓

4051 ****:00B9↓ E 4052↓

4052 ****:003F↓ E 405B↓

405B ****:0020↓ E 405C↓

405C ****:0010↓

第六片写入B3-0 A3-0 控制信号 E 4051↓

4051 ****:0000↓ E 4052↓

4052 ****:0000↓ E 405B↓

405B ****:0055↓ E 405C↓

405C ****:0000↓

第七片写入0SST SSH SCI 控制信号 E 4051↓

4051 ****:0012↓ E 4052↓

4052 ****:0010↓ E 405B↓

405B ****:0001↓ E 405C↓

405C ****:0000↓

第八片写入0DC2 0DC1 控制信号 E 4051↓

4051 ****:0000↓ E 4052↓

4052 ****:0000↓ E 405B↓

405B ****:0030↓ E 405C↓

405C ****:0030↓ 5. 测试

写一个包含设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断设计是否正确。 (1)SBB测试程序: E 2000↓

2000:****:2101↓ A 2001↓ 2001:RET↓ 2002↓

① 用R命令修改R0、R1的内容 R R0↓ R0:0005↓ R R1↓ R1:0001↓

②用R命令查看R0、R1和C标志位的内容

R↓

R0=0005 R1=0001 C=0 ③用G命令执行 G 2001↓

④用R命令查看R0、R1和C标志位的内容。 R↓

R0=0004 R1=0001 C=0

⑤结论:实现了用R0减去R1再减去C并把结果存入R0的功能。(2)NOT测试程序: E 2010↓

2010 ****:2D00↓ A 2011↓ 2011:RET↓ 2012↓

① 用R命令修改R0 的内容: R R0↓

R0: 0000↓

② 用G命令执行 G 2010↓

用R命令查看R0的内容: R↓ R0=FFFF

③ 结论: 实现了将R0的内容取反再存入R0的功能。 (3)LDRA测试程序: E 2020↓

2020 ****:E400↓ E 2021↓

2021 ****:2100↓ A 2022↓ 2022:RET↓ 2023:↓ 验证:

① 修改2100的内容 E 2100↓

2100 ****:1234↓ ② 用G命令执行 G 2020↓

③ 查看R0的内容 R↓ R0=1234

结论: 实现了从内存单元读数据到寄存器的功能。

2007年6月22日

因篇幅问题不能全部显示,请点此查看更多更全内容