首页 热点专区 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

计算机组成原理—复杂模型机的设计

2024-08-23 来源:要发发教育
课程设计:题目名称:

成绩 计算机组成原理 复杂模型机的设计

姓 名:

学 号:********** ********** 班 级: 网络工程1101班 完成时间:2012年 1月 6日

1

1设计目的:

建立清晰完善的整机概念;

学习设计与调试计算机的基本方法; 培养严谨的科研作风和独立工作能力。

2 设计任务:

综合运用所学的计算机原理知识,按给定的指令系统分和数据格式,在所提供的设备范围内,设计一台字长八位的由微程序控制器来控制的模拟计算机。设计并实现较为完整的八位模型计算机。

设计微程序控制器的逻辑原理电路图; 设计微地址转移的逻辑电路图; 设计微程序流程图; 设计说明书。

3 设计指标:

字长八位;

时钟源MF=QB=1us; 内存容量不得小于2 8 ;

指令系统不得小于十四条。要求算术逻辑指令七条、访问内存和控制指令四条、输入输出指令两条、其他指令一条。

4 设计说明:

4.1数据格式

模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:

7 6 5 4 3 2 1 符号 尾 数 其中,第 7 位为符号位,数值的表示范围是:-1  X  1。

模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。 [1] 算术逻辑指令

设计九条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:

7 6 5 4 3 2 OP-CODE

1 0 Rd Rs 2

其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:

选中的寄存器(Rs或Rd) R0 寄存器的编码 [2] 访存指令及转移指令

模型机设计两条访问指令,即存数(STA)、取数(LDA),两条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。其格式如下:

7 6 5 4 3 2 00 M OP-CODE 1 0 Rd 00 R1 R2 01 10 D 其中,OP-CODE为操作码, Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:

寻址方式 有效地址 00 01 10 E=D E=(D) E=(RI)+D 说 明 直接寻址 间接寻址 RI 变址寻址 本模型机规定变址寄存器RI指定为寄存器R2。 [3] I/O指令

输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:

7 6 5 4 3 2 OP-CODE addr 1 0 Rd 其中,addr=01 时,表示选中“输入单元”中的开关组作为输入设备,addr=10时,表示选中“输出单元”中的数码管作为输出设备。 [4] 停机指令

这类指令只有1条,即停机指令HALT,用于实现停机操作,指令格式如下: 7 6 5 4 3 2 0 1 1 0 0 0 1 0 0 0 4.2系统指令

本模型机共有14条基本指令。其中,算术逻辑指令6条,移位指令2条,访问

3

内存指令和程序控制指令3条,输入输出指令2条,其他它指令1条。表1列出了各条指令的格式、汇编符号、指令功能。

复杂模型机指令系统 序号 汇编符号 1 2 3 4 5 6 7 8 9 CLR Rd MOV RS,Rd ADC RS,Rd SBC RS,Rd DEC Rd AND RS,Rd RRC RS,Rd RLC RS,Rd 指令格式 0111 00 Rd 1000 RS Rd 1001 RS Rd 1010 RS Rd 1011 -- Rd 1100 RS Rd 1110 RS Rd 1111 RS Rd 功能说明 0→Rd RS→Rd RS+Rd+Cy→Rd RS-Rd-Cy→Rd Rd-1→Rd RS∧Rd →Rd RS带进位右循环一位,RS→Rd RS带进位左循环一位,RS→Rd LDA M,D, Rd 00 M 00 Rd,D E→Rd 10 STA M,D, Rd 00 M 01 Rd,D Rd→E 11 JMP M,D 00 M 10 00,D E→PC addr→Rd Rd→addr 停机 12 IN addr, Rd 0100 01 Rd 13 OUT addr, Rd 0101 10 Rd 14 HALT 0110 00 00 4.3数据通路框图

4

4.4微地址转移逻辑电路图

该图的IR顺序为(I7、I6、I5、I3、I4、I2)

逻辑表达式如下:

4.5寄存器译码电路图

5

逻辑表达式如下:

4.6微程序流程图

6

4.7微指令格式

微指令字长24位。其中顺序控制部分9位,即直接地址6位,判别地址3位,后者采用字段译码法P(1)-P(4)四种判别测试标志位。操作控制字段18位:其中字段A、B、C均采用3-8译码器,可译出LDIR,PC-BUS,WE,RS-BUS,

7

LDDR等微命令。其他微命令采用直接控制的方式。其中uA5~uA0为6位的后续微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。

微指令代码定义表

24 S3 23 S2 22 S1 21 S0 20 M 19 Cn 18 WE 17 A9 16 A8 1514 13 12 11 10 9 8 7 A B C 6 5 4 3 2 1 μA5 μA5 μA5 μA5 μA5 μA5

4.8微程序代码表

地址 00 01 02 03 04 05 06 07 10 11 12 13 14 15 指令 S3-S0 M Cn WE A9 A8 19-16 A B C 6 5 4 3 2 1 018108 0000 0001 1000 0001 0000 1000 01ED82 0000 0001 1110 1101 1000 0010 00C050 0000 0000 1100 0000 0101 0000 00A004 0000 0000 1010 0000 0000 0100 00E0A0 0000 0000 1110 0000 1010 0000 00E006 0000 0000 1110 0000 0000 0110 00A007 0000 0000 1010 0000 0000 0111 00E0A0 0000 0000 1110 0000 1010 0000 01ED8A 0000 0001 1110 1101 1000 1010 01ED8C 0000 0001 1110 1101 1000 1100 00A03B 0000 0000 1010 0000 0011 1011 018001 0000 0001 1000 0000 0000 0001 00203C 0000 0000 0010 0000 0011 1100 00A00E 0000 0000 1010 0000 0000 1110 8

16 17 20 21 22 24 25 26 27 30 31 32 33 34 36 37 40 41 42 45 52 53 54 55 56 57 60 61 62

01B60F 0000 0001 1011 0110 0000 1111 95EA25 1001 0101 1110 1010 0010 0101 01ED83 0000 0001 1110 1101 1000 0011 01ED85 0000 0001 1110 1101 1000 0101 01ED8D 0000 0001 1110 1101 1000 1101 001001 0000 0000 0001 0000 0000 0001 030401 0000 0011 0000 0100 0000 0001 018001 0000 0001 1000 0000 0000 0001 3D9A01 0011 1101 1001 1010 0000 0001 019201 0000 0001 1001 0010 0000 0001 01A22A 0000 0001 1011 0010 0010 1010 01B22C 0000 0001 1011 0010 0010 1100 01A232 0000 0001 1010 0010 0011 0010 01A233 0000 0001 1010 0010 0011 0011 318237 0011 0001 1000 0010 0011 0111 318239 0011 0001 1000 0010 0011 1001 009001 0000 0000 1001 0000 0000 0001 028401 0000 0010 1000 0100 0000 0001 05DB81 0000 0101 1101 1011 1000 0001 95AAA0 1001 0101 1010 1010 1010 0000 01B42B 0000 0001 1011 0100 0010 1011 959B41 1001 0101 1001 1011 0100 0001 01A42D 0000 0001 1010 0100 0010 1101 65AB6E 0110 0101 1010 1011 0110 1110 0D9A01 0000 1101 1001 1010 0000 0001 01AA30 0000 0001 1010 1010 0011 0000 018D71 0000 0001 1000 1101 0111 0001 959B41 1001 0101 1001 1011 0100 0001 F59A01 1111 0101 1001 1010 0000 0001 9

63 65 67 70 71 72 73 01B435 0000 0001 1011 0100 0011 0101 ED9A01 1110 1101 1001 1010 0000 0001 298838 0010 1001 1000 1000 0011 1000 019801 0000 0001 1001 1000 0000 0001 19883A 019801 070A08 068A09 0001 1001 1000 1000 0011 1010 0000 0001 1001 1000 0000 0001 0000 0111 0000 1010 0000 1000 0000 0110 1000 1010 0000 1001 74 5 测试与运行

5.1测试程序

其中共用到14条指令,3种寻址方式(00→直接、01→间接、10→变址)。

内存地址 (十六进制) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 机器指令 汇编指令 CLR R0 IN addr,R0 IN addr,R1 AND R0,R1 MOV R1, R2 RLC R1,R1 DEC R2 SBC R1, R2 ADC R0, R1 LDA 00,15H,R0 STA 01,15H, R1 JMP 10,15H,R2 RRC R1,R1 OUT addr,R1 HALT 二进制 0111 0000 0100 0100 0100 0101 1100 0001 1000 0110 1111 0101 1011 0010 1010 0110 1001 0001 0000 0000 0000 1101 0001 0101 0000 1101 0010 1000 0000 0101 1110 0101 0101 1001 0110 0000 十六进制 70 44 45 C1 86 F5 B2 A6 91 00 0F 15 0F 28 0F E5 59 60 R0清零 (addr)→ R0 (addr)→R1 R0与R1或结果送入R1 R1传送到R1 R1有进位循环左移结果送R1 R1中的值减1送入R2 R1-R0-CY的值送到R0 R0+R1+CY的值送到R2 (E)→RD 偏移量D=0F 注释 RD→(E) 偏移量D=0F E→PC 偏移量D=0F RS带进位右循环一位,RS→Rd Rd→(addr) 停机 机器代码 $P0070 $P0144

10

$P0245 $P03C1 $P0486 $P05F5 $P06B2 $P07A6 $P0891 $P0900 $P0A0F $P0B15 $P0C0F $P0D28 $P0E0F $P0FE5 $P1059 $P1160 微指令代码 $M00018108 $M0101ED82 $M0200C050 $M0300A004 $M0400E0A0 $M0500E006 $M0600A007 $M0700E0A0 $M0801ED8A $M0901ED8C $M0A00A03B $M0B018001 $M0C00203C

11

$M0D00A00E $M0E01B60F $M0F95EA25 $M1001ED83 $M1101ED85 $M1201ED8D $M14001001 $M15030401 $M16018016 $M173D9A01 $M18019201 $M1901A22A $M1A01B22C $M1B01A432 $M1C01A233 $M1E318237 $M1F318239 $M20009001 $M21028401 $M2205DB81 $M2595AAA0 $M2A01B42B $M2B959B41 $M2C01A42D $M2D65BB6E $M2E5D9A01 $M2F01AA30 $M30018D71 $M31959B41 $M32F59A01

12

$M3301B435 $M35ED9A01 $M37298838 $M38019801 $M3919883A $M3A019801 $M3B070A08 $M3C068A09 $M3DE7B239 $M3EE7B239 $M3F068A10

5.2运行结果与分析

执行指令CLR R0,将R0清零的运行结果图:

13

执行自减指令DEC R1,R1中的值减1送入R1图:

经检验,输出结果与计算结果相符,证明实验设计正确

6 实验体会:

本次课程设计只有一周半,实验大体上分为两步。首先,是连接电路。其次,自己设计程序并装载设计程序测试运行,通过观察运行情况和数据在总线上的流动,了解各功能部件的工作原理和工作机制以及流程图各指令的含义。对于我们要设计的程序首先根据题目要求写出它的汇编格式,再根据这个汇编格式写出机器指令并设计出微程序流程图。最后根据所设计的微程序流程图写出其微指令代码。这些工作完成后把所设计的机器指令和微程序代码改写成指定的格式装载到实验系统上运行,观察运行过程和设计目的是否一致。如果不一致,要进行适当的修改直到一致为止。经过多次修改,最终实现设计要求。

在这段时间中,每天编写、调试、改错,费的时间比较多但是成果却不是很明显,对这方面的知识没有学得很深入,时间比较短暂,所编写的机器代码和微指令程序验证出实验设计基本正确。通过这次实验设计使我们我加深了对机器指令和微指令的理解和计算机计算流程的了解。

在这次课程设计中也遇到了不少困难,对这方面的知识了解的很泛,设计时思路不清晰,总是做一步就会遇到一些大大小的问题,不断找资料询问询问老师,虽然浪费了很多时间,但是也学习到了很多的知识,使理论知识在实践中更多地体现出来。

这次课程设计是我更明白了理论联系实际的重要性,理论知识学习的再多知道的再多这也是不行的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从实验中去验证它,才能提高自己的实际动手能力和独立思考能力,只有这样才能为以后的学习生活生中打下坚实的基础,使得在以后的生活中的动手能力得以提高。

最后很感谢老师的辛苦教导,使我们学习到了更多的知识,并发现自身的不足,使我们在以后的学习生活中更加积极的去改进,去努力,去做得更好。

14

附 实验连接线路图

15

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