当前位置:文档之家› 计算机组成与原理课程设计之复杂模型机设计

计算机组成与原理课程设计之复杂模型机设计

课程设计

课程名称计算机组成原理题目模型机设计与实现

专业交通信息工程

班级24020904

姓名黄晖(2402090407)

同组人员张雪娜(2402090426)

陈佼(2402090427)

李媛媛(2402090428)

指导教师兰勇

2011 年12 月12 日

《计算机组成原理》

课程设计任务书

一、设计任务:

1、基本模型机设计与实现;

2、在基本模型机设计的基础上设计一台复杂模型机。

二、功能指标和设计要求:

利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。设计环境为TDN-CM+计算机组成原理教学实验箱、微机,联机软件等。将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计说明书、完成答辩。

1.基本模型机设计与实现

1.1、设计一台简单模型机,要求其指令系统至少要包括五条不同类型指令:如一

条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条

存数指令(假设助记符为STA),一条输出指令(假设助记符为OUT)和一条

无条件转移指令(假设助记符为JMP);利用设计的模型机设计一个进行两个

数求和运算的测试验证程序,验证模型机的功能。

1.2、在1.1的基础上,给基本模型机增加一条加法指令(假设助记符仍为ADD),

但是该加法指令的寻址方式与1.1中的加法指令寻址方式不同。利用设计的

模型机设计一个进行两个数求和运算的测试验证程序,验证模型机的功能。

2. 在任务1的基础上,设计具有不少于10条指令的复杂指令系统模型机。其中,包含

算术逻辑指令、访问内存指令、转移指令、程序控制指令(控制台指令)、输入输出指令、停机指等令。数据的寻址方式要包括直接、间接、变址和相对寻址等多种寻址方式。利用设计的复杂模型机实现两个数的减法运算并判断差得正负,差为正数则输出A,差为负数则输出B,差为零则输出C。设计该测试验证程序,验证模型机的功能。

3、基本模型机和复杂模型机的CPU数据字长为8位,采用定点补码表示。指令字长为8

的整数倍。微指令字长为24位。

三、设计步骤:

1、确定设计目标

进行全面深入的模型机设计需求分析,确定所设计计算机的功能和用途。

2、确定指令系统

确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。确定相对应指令所包含的微操作。

3、总体结构与数据通路与硬件实现

总体结构设计包括确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。

综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。

硬件实现基于现有的基本实验箱平台,根据所设计模型机选择必要的元器件,并通过接插件(各种连线等)进行器件连接,组成所设计的模型机硬件系统(物理机)。

4、设计指令执行流程

数据通路确定和硬件实现后,就可以设计指令系统中每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。

5、确定微程序地址

根据后续微地址的形成方法,确定每个微程序地址及分支转移地址。

6、微指令代码化

根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码写入到控制存储器中的相应单元中。

7、组装、调试

7.1、在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,

才能保证整机的正常运行。首先调试每条微指令功能,再调试每条机器指令功

能。

连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进

行其他的运行方式等功能调试及执行指令的正确性验证。

7.2、当所有功能模块都调试正常后,进入总调试。根据设计的模型机设计模型机功

能测试验证程序,运行程序验证模型机功能。

目录

任务书 ............................................................................................................ 错误!未定义书签。目录 .. (4)

一、课程设计题目 (5)

二、课程设计目的和任务 (5)

三、实验设备 (5)

四、复杂模型机的设计与实现内容 (5)

1.数据格式 (5)

2.指令格式 (5)

3.指令系统 (7)

五、总体设计 (9)

1.设计复杂模型机的监控软件 (9)

2.设计数据通路图 (8)

3.设计微程序流程图 (9)

4.转换格式 (10)

5.设计指令执行流程 (11)

6.微指令代码化 (11)

7.实验接线 (14)

六、组装和调试 (14)

1.写微程序和程序 (14)

2.调试运行程序 (14)

七、系统测试 .............................................................................................. 错误!未定义书签。

八、收获与体会 .......................................................................................... 错误!未定义书签。附录 ................................................................................................................ 错误!未定义书签。参考文献 . (20)

一、课程设计题目:模型机设计与实现

二、课程设计的目的和任务

1.设计目的

(1)巩固和加深课堂所学的计算机硬件系统知识;

(2)学习和掌握一般的硬件系统的设计方法;

(3)掌握计算机各模块的原理和相互关系,建立计算机整机概念

(4)利用基本模型机的构建与调试实验,完整地建立计算机硬件的整机模型,

掌握CPU的基本结构和控制流程,掌握指令执行的基本过程。

2.设计任务

首先设计一台简单模型机,要求其指令系统至少要包括五条不同类型指令,如一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),

一条存数指令(假设助记符为STA),一条输出指令(假设助记符为OUT)和

一条无条件转移指令(假设助记符为JMP);利用设计的模型机设计一个进行

两个数求和运算的测试验证程序,验证模型机的功能。

然后在简单模型机的基础上,设计不少于10条指令的复杂指令系统模型机。其中,包含算术逻辑指令、访问内存指令、转移指令、程序控制指令(控

制台指令)、输入输出指令、停机指等令。数据的寻址方式要包括直接、间接、

变址和相对寻址等多种寻址方式。利用复杂模型机实现数的逻辑移位运算,

然后再实现两个数的逻辑减法,验证模型机的功能。

三、实验设备

TDN—CM++计算机组成原理教学实验系统一台,微机,虚拟软件,排线若干。

四、复杂模型机的设计与实现内容

1.数据格式

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

7 6 5 4 3 2 1

符号尾数

2.指令格式

模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器及转移指令和停机指令。

(A) 算术逻辑指令

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

D7 D6 D5 D4 D3 D2 D1 D0

OP-CODE

Rs

Rd

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

R0 R1 R2 寄存器的编码

00

01

10

(B) 访存指令及转移指令

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

D7 D6 D 5 D4 D3 D2 D1 D0 D7···D0

OP-CODE

M

OP-CODE

Rd

D

其中,OP-CODE 为操作码, Rd 为目的寄存器,D 为位移量(正负均可),M 为寻址方式,其定义如下:

寻址方式 有效地址 说 明 00 E=D 直接寻址 01 E=(D ) 间接寻址 10 E=(R I )+D R I 变址寻址 11

E=(PC )+D

相对寻址

本模型机规定变址寄存器RI 指定为寄存器R2。 (C) I/O 指令

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

其中,addr=01 时,表示选中“输入单元”中的开关组作为输入设备,addr=10时,表示选中“输出单元”中的数码管作为输出设备。

(D) 停机指令

这类指令只有1条,即停机指令HALT ,用于实现停机操作,指令格式如下: D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 0

0 0

0 0

D7 D6 D5 D4 D3 D2 D1 D0

OP-CODE

addr

Rd

3.指令系统

(1)本模型机共有16条基本指令。其中,算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其他它指令1条。表1列出了各条指令的格式、汇编符号、指令功能。

表1 复杂模型机指令系统

(2)微指令格式

表2 复杂模型机微指令结构图

微程序2

4

2

3

2

2

2

1

2

1

9

1

8

17 16 1

5

1

4

1

3

1

2

1

1

1

9 8 7 6 5 4 3 2 1

序号汇编符号指令格式功能说明

1 CLR R

d

0111 00 R

d

0→R

d

2 MOV R

S

,R

d

1000 R

S

R

d

R

S

→R

d

3 ADC R

S

,R

d

1001 R

S

R

d

R

S

+R

d

+Cy→R

d

4 SBC R

S

,R

d

1010 R

S

R

d

R

S

-R

d

-Cy→R

d

5 INC R

d

1011 -- R

d

R

d

+1→R

d

6 AND R

S

,R

d

1100 R

S

R

d

R

S

∧R

d

→R

d

7 COM R

d

1101 00 R

d

R

d

→R

d

8 RRC R

S

,R

d

1110 R

S

R

d

R

S

带进位右循环一位,R

S

→R

d

9 RLC R

S

,R

d

1111 R

S

R

d

R

S

带进位左循环一位,R

S

→R

d

10 LDA M,D, R

d

00 M 00 R

d

,D E→R

d

11 STA M,D, R

d

00 M 01 R

d

,D R

d

→E

12 JMP M,D 00 M 10 00,D E→PC

13 BZC M,D 00 M 11 00,D 当CY=1或ZI=1时,E→PC

14 IN addr, R

d

0100 01 R

d

addr→R

d

15 OUT addr, R

d

0101 10 R

d

R

d

→addr

16 HALT 0110 00 00 停机

控制信号S

3

S

2

S

1

S

M C

N

R

D

M1

7

M1

6

A B P uA

5

uA

4

uA

3

uA

2

uA

1

u

A

A字段B字段P字段

15 14 13 控制

信号

12 11 10 控制

信号

9 8 7 控制

信号

0 0 0 0 0 0 0 0 0

0 0 1 LDRI 0 0 1 RS_G 0 0 1 P1

0 1 0 LDDR

1

0 1 0 RD_G 0 1 0 P2

0 1 1 LDDR

2

0 1 1 RI_G 0 1 1 P3

1 0 0 LDIR 1 0 0 299_G 1 0 0 P4

1 0 1 LOAD 1 0 1 ALU_G 1 0 1 AR

1 1 0 LDAR 1 1 0 PC_G 1 1 0 LDPC

其中uA5~uA0为6位的后续微地址,A、B、P为三个译码字段,分别由三个控制位译码出多位。P字段中的P1~P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的为地址入口,从而实现微程序的顺序、分支、循环运行。具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3~uA0)与指令寄存器高四位(IR7~IR4)相或得到各路分支;P2测试用下址低2位(uA1~uA0)与指令寄存器的IR3IR2相或得到各路分支;P3测试用于条件转移,它用下址的uA4与(ZI +CY)相或得到各路分支;P4测试用于控制台操作,它用下址低2位(uA1~uA0)与SWB、SWA 相或得到各路分支。

在上述各测试下址中未用到的位均直接保留。AR为算术运算是否影响进位及判零标志控制位,其为零有效。B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号,目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。三字段中的其他位类似与此,均是某芯片的选通信号,

它们的功能都是根据机器指令来进行相应芯片的选通译码。

五、总体设计

1.设计复杂模型机的监控软件

$P00 44 IN 01, R0

$P01 E0 RRC Rs, Rd

$P02 58 OUT R2, R0

$P03 45 IN 01,R1

$P04 A1 SBC Rs, Rd

$P05 05 STA

$P06 11 LDA

$P07 59 OUT Rd

2.设计数据通路图

图1 复杂模型机的设计数据通路图

3.设计微程序流程图

根据机器指令系统要求,设计微程序流程图及确定微地址,如图2所示.

图2 微程序流程图

4.转换格式

程序:

$P00 44 $P01 E0 $P02 58 $P03 45

$P04 A1 $P05 05 $P06 11 $P07 59

微程序:

$M00 088105 $M01 82ED0 $M02 50C004 $M03 04A004

$M04 A0E004 $M05 06E004 $M06 07A004 $M07 A0E004

$M08 8AED05 $M09 8CED05 $M0A 3BA004 $M0B 018005

$M0C 3C2004 $M0D 0EA004 $M0E 0FB605 $M0F 25EA95

$M10 83ED05 $M11 85ED05 $M12 8DED05 $M13 A6ED05

$M14 011004 $M15 010407 $M16 168005 $M17 019A3D

$M18 019205 $M19 2AA205 $M1A 2CB205 $M1B 32A205

$M1C 33A205 $M1D 36A205 $M1E 378235 $M1F 398235

$M20 019004 $M21 018406 $M22 81DB05 $M23 E48005

$M24 018005 $M25 A0AA95 $M26 27A004 $M27 28BC05

$M28 29EA95 $M29 A0AA95 $M2A 2BB405 $M2B 419B95

$M2C 2DA405 $M2D 6EAB05 $M2E 2FAA0D $M2F 30AA05

$M30 71810D $M31 419B95 $M32 019A05 $M33 35B405

$M34 81DB05 $M35 419BBD $M36 019A0D $M37 38882D

$M38 019805 $M39 3A881D $M3A 019805 $M3B 080A07

$M3C 098A06

5.设计指令执行流程

本课程设计设计的机器指令程序如下表:

表1 机器指令程序

地址(二进制)内容(二进制)助记符说明

0000 0000 0100 0100 IN 01,R0 "INPUT DEVICE"→R0

0000 0001 1110 0000 RRC Rs,Rd 带进位循环右移Rs→Rd 0000 0010 0101 1000 OUT R0→LED

0000 0011 0100 0101 IN 01,R1 "INPUT DEVICE"→R1

0000 0100 1010 0001 SBC Rs,Rd Rs-Rd-Cy→R d

0000 0101 0000 0101 STA R1→(E)

0000 0110 0001 0001 LDA (E) →Rs

0000 0111 0101 1001 OUT Rd R1→LED

6.微指令代码化

二进制代码如下表所示:

表2 二进制代码表

微地址S3~CN RD M17M16 A B P uA5~uA0

00 000000 0 11 000 000 100 010000

01 000000 0 11 110 110 110 000010

02 000000 0 01 100 000 001 100000

35 000000 0 01 010 000 000 011110

36 000000 0 01 110 000 010 000100

37 000000 0 01 110 000 010 110000

60 000000 0 01 010 000 000 110001

61 000000 0 01 110 000 010 000100

54 000000 0 11 110 110 110 011101

55 000000 0 11 110 110 110 011111

56 000000 0 01 010 000 000 110010

23 000000 0 11 000 000 000 000001

24 000000 0 00 010 000 000 011000

62 000000 0 01 010 000 000 110011

63 000000 0 11 011 011 000 110100

64 100101 0 11 110 101 000 111100

20 000000 0 11 110 110 110 000011

21 000000 0 11 110 110 110 000101

22 000000 0 11 110 110 110 001101 57 000000 0 11 110 110 110 110101

51 000000 0 00 001 000 000 000001

52 000000 1 10 000 010 000 000001 46 000000 0 11 000 000 000 100110

40 001111 0 11 001 101 000 000001

41 000000 0 11 001 001 000 000001

42 000000 0 11 010 001 000 111010

43 000000 0 11 011 001 000 000011

44 000000 0 11 010 010 000 001101

45 000000 0 11 010 001 000 001110

53 000000 0 11 010 010 000 111011 47 001100 0 11 000 001 000 011010 50 001100 0 11 000 001 000 011011 05 000000 0 01 001 000 000 000001 04 000000 1 01 000 010 001 000001 07 000001 0 11 101 101 110 000001 06 000000 0 11 000 000 011 001001 11 000000 0 11 000 000 000 000001 74 100101 0 11 010 101 010 000100 65 000000 0 01 010 000 000 110111 67 000000 0 11 011 110 000 111000

70 100101 0 11 110 101 000 111001

71 100101 0 11 010 101 010 000100

72 000000 0 11 011 010 000 001010 12 100101 0 11 001 101 101 000001 03 000000 0 11 010 010 000 001100 14 011001 0 11 010 101 101 010101 25 000011 0 11 001 101 000 000001 57 000000 0 11 010 101 000 110000

60 000011 0 11 000 000 101 110001

61 100101 0 11 001 101 101 000001

15 000000 0 11 001 101 000 000001

16 000000 0 11 011 010 000 001111 31 000001 0 11 101 101 110 000001 17 101110 0 11 001 101 101 000001 73 000011 0 11 001 101 000 000001 32 001010 0 11 000 100 000 001011 13 000000 0 11 001 100 000 000001 33 000110 0 11 000 100 000 001011

72 000000 0 11 001 100 000 000001 27 000001 1 10 000 101 000 010000 30

000001

1

01

000

101

000

010001

7.实验接线 实验接线图如图3

BUS UNIT B7

B0

W/R UNIT

T4

T3T2T1WE

B7

B0

B7B0B7

B0

S3

CN

LDDR1LDDR2ALU -B

ALU UNIT

AUJ 3RJ 1

REG UNIT

LDAR

LOAD PC -B

LDPC ADDRESS UNIT

D7

D0

AD7AD0

W/R

D7

D0CE

MAIN MEM M24

M19LDDR1LDDR2ALU -B LDAR LOAD PC -B LDPC

M18

TS4TS3TS2TS1

STATE UNIT H23

SIGNAL UNIT

SE6

SE1P(1)P(3)SE6SE1P(1)P(4)SWB

SWA

I7

I2

SWA SWB SWITCH UNIT

I7

I2LOG UNIT

LDIR

LDIR

INS UNIT

A8A9

M16M17MICRO -CONTROLLER

D7

D0

D7

D0D7D0

EX UNIT

Y0Y1Y2

INPUT DEVICE

SWJ 3SW -B

LED -B

W/R

OUTPUT DEVICE

W/R

EXT BUS

ADJ 6

299-B

299-B B7

B0AUJ 1

AR

AR

CY ZI

FC FZ

R 0-B

R 2-B R 1-B L D R 0L D R 1L D R 2

LOG UNIT

R 0-B

R 1-B R 2-B L D R 0

L D R 1L D R 2P(2)P(3)P(4)P(4)

LDRi RD -B LDRi

RD -B

RS -B RS -B RI -B RI -B

I3

I0I3

I0A0

A7

……

……

图3 实验接线图

六、组装和调试

1.写微程序和程序

本设计采用的方法是联机读/写程序。

按照规定格式,将机器指令及微指令二进制表编辑成十六进制格式文件。

打开电源,运行联机软件的CMP.EXE,根据所使用的PC微机串口选择键入1或2,测试通过后,进入主菜单。

进入主菜单后,使用联机软件的【转储】→【装载】功能,将以上格式文件装载入实验系统的主存和控制存储器中。

装入的文件必须在当前路径,文件格式应符合全屏幕编辑的规定。若文件不在当前路径,拷贝至当前目录即可。

2.调试运行程序

方法一:本机调试运行

①单步运行程序

A.使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。

B.拨动总清开关CLR(0→1),微地址清零,PC计数器清零,程序首地址为00H。

C.单步运行一条微指令,每按动一次START键,即单步运行一条微指令。对照微程序流程图,观察微地址显示灯是否和流程一致。

D.当运行结束后,可检查存数单元(0B)中的结果是否和理论值一致。

②连续运行程序

A.使“STATE UNIT”中的STEP开关置于“EXEC”状态,STOP开关置为“RUN”状态。

B.拨动CLR开关,清微地址及PC计数器,按动START,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。

C.停机后,可检查存数单元(0B)结果是否正确。

方法二:联机调试运行

联机调试运行程序时,进入软件界面,装载机器指令及微指令后,选择【运行】→【通路图】功能菜单打开相应动态数据通路图,按相应功能键即可联机运行、监控、调试程序。

拨动总清开关CLR(1→0→1)后,程序首地址及微程序地址为00H,并给INPUT DEVICE单元中输入开关置数,程序则从头开始运行。

七、系统测试

实验程序如下:

简单模型机采用机器指令:IN,ADD, STA,OUT,JMP

复杂模型机采用机器指令:IN, ,STA,OUT,JMP,LDA,RLC,BZC,HLAT,MOV,

COM,RRC,CLR,ADC,SBC

地址助记符说明

------------------------------------------------------

00 IN 输入81

01RRC 带进位循环右移

02OUT 输出40,CY灯灭

03 IN 输入1F

04 SBC 带进位减

05 STA 通过间接寻址将结果放到主存

06 LDA 通过直接寻址将主存中的结果放入Rd

07 OUT 输出结果20

------------------------------------------------------

八、收获与体会

通过这次课程设计,暴露出来诸多问题。

1.设计初期对连线的不了解导致了最后在复杂模型机的设计中连线出现错误,直接影

响到实验结果,后来经仔细的研究与同组人员的共同探讨,终于发现了问题,即由于连线的疏忽大意,忽略了所设计的电路中的一条连线,MIKCRO CONTROLLER 与LOG UNIT中的LDRi之间的连线,并最终解决。

2.简单模型机设计过程中,实现了两个数的加法,起初只能实现将输入的数加1的加

法,由于对知识的理解不深,对指令的熟悉程度不够,在如何将加数改变这一问题上纠缠了好久,不过经过查资料、请教老师及同学,明白了只需将微指令的后续地址指向事先声明的加数的地址,就可以任意改变加数。

3.复杂模型机设计过程中,遇到的最大的问题是运算结果无法输出,指令几经修改还

是实现不了,我们不断查资料,请教老师,终于找到了问题所在,即运算结果未储存,又何谈输出呢?既然找到了问题,解决起来自然就有方向了,我们又修改了设计好的指令,添加了“将结果存入主存”和“从主存中取出结果”的指令,最终实现输出。

以上只是本次课程设计中遇到的比较典型的问题,期间还有各种小问题在此不一一详述。

在解决问题的过程中,我们学到了许多课本上学不到的东西。首先,在自主设计的过程中,考验了我们对知识的理解程度,要设计出模型机,首要的便是要对知识充分地掌握,才能更好地发挥;其次,锻炼了我们的动手实践能力,这是比掌握

理论知识更加深层次的能力,我们学习知识就是为了能够更好地运用,只有在实践中才能锻炼这种运用能力;最后,本次设计是以小组为单位的,旨在加强我们团结协作的能力和与人沟通的能力,我们也切实体会到了合作的重要性,并将继续发扬这种优良传统。

在以后的学习中,我还应该不断的完善自己的知识体系结构,注意理论与实践的结合,学以致用。

附录调试截图

1.输入数据

2.输出数据

3.带进位循环右移

参考文献

1、《计算机组成原理》教材,陈智勇主编;

2、《计算机组成原理实验指导书》(唐都版);

3、《计算机组成原理实验指导书》(西南科技大学版);

4、《计算机组成原理课程设计报告》范例

相关主题
文本预览
相关文档 最新文档