复杂模型机设计计算机组成原理课程设计.docx

上传人:b****4 文档编号:12283544 上传时间:2023-04-17 格式:DOCX 页数:23 大小:395.30KB
下载 相关 举报
复杂模型机设计计算机组成原理课程设计.docx_第1页
第1页 / 共23页
复杂模型机设计计算机组成原理课程设计.docx_第2页
第2页 / 共23页
复杂模型机设计计算机组成原理课程设计.docx_第3页
第3页 / 共23页
复杂模型机设计计算机组成原理课程设计.docx_第4页
第4页 / 共23页
复杂模型机设计计算机组成原理课程设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

复杂模型机设计计算机组成原理课程设计.docx

《复杂模型机设计计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《复杂模型机设计计算机组成原理课程设计.docx(23页珍藏版)》请在冰豆网上搜索。

复杂模型机设计计算机组成原理课程设计.docx

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

计算机组成原理

课程设计任务书

 

班级:

学号:

姓名:

成绩:

 

电子与信息工程学院

计算机科学系

计算机组成原理课程设计报告书

一、设计题目

复杂模型机设计

二、模型机功能概述

以EL-JY-II计算机组成原理教学实验系统为平台,根据模型机的结构,及内部的指令译码电路、微指令译码电路及微指令格式等设计一套指令系统,指令系统中包括传送类指令、算术运算指令、逻辑运算指令、输入/输出及转移指令;寻址方式包括寄存器寻址、直接寻址及立即寻址等。

设计机器指令格式以及微程序,按照模型机数据通路设计实现机器指令功能的微程序,装载代码到EL-JY-II实验系统中并运行。

系统采用“基板+扩展板(CPU板)”形式;系统公共部分如数据输入/输出和显示、单片机控制、与PC机通讯等电路放置在基板上,微程序控制器、运算器、各种寄存器、译码器等电路放置在扩展板上。

此模型机是由运算器,控制器,存储器,输入设备,输出设备五大部分组成。

 

1.运算器又是有299,74LS181完成控制信号功能的算逻部件,暂存器LDR1,LDR2,及三个通用寄存器Ax,Bx,Cx等组成。

 

2.控制器由程序计数器PC、指令寄存器、地址寄存器、时序电路、控制存储器及相应的译码电路组成。

 

3.存储器RAM是通过CE和W/R两个微命令来完成数据和程序的的存放功能的。

 

4.输出设备有两位LED数码管和W/R控制完成的。

 

三、总体设计

3.1模型机结构:

图1中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。

微控器部分控存由U13—U15三片2816构成。

除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。

存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。

输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。

在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。

在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。

图1模型机结构框图

3.2微程序控制电路

微程序控制电路电路中,由三片2816作为24位微程序存储器,EP1K10产生控制逻辑。

开关K1、K2、K3的不同组合控制微程序的读、写和运行,六个黄色LED为微地址指示灯。

微控器原理如下图(除2816、74LS245和74LS374外,其余芯片功能均由EP1K10实现。

不详之处请查阅EP1K10的源程序)。

以微程序的运行为例:

在T2时刻,将MS24—MS1的24位微程序打入微指令寄存器,然后由译码电路对MS24—MS7进行译码,产生地址寄存器、指令寄存器等等电路的控制信号。

MS6—MS1指示下一个微地址,在T3时刻,由机器指令译码器产生的强制微地址信号对MS6—MS1微地址的某几位强行置位,形成下一个微地址输出。

微控器的外部接口有:

uAJ1、LDRO1、LDRO2、ALU_GOUT、G_299OUT、AROUT、STATUS、AO1、BO1、WEO、WEI、LARI。

在读、写微程序时,uAJ1用于从外部输入微地址;LDRO1、LDRO2、ALU_GOUT、G_299OUT、AROUT、STATUS为运算器电路的控制信号,只要将它们接至运算器电路相应的接口上(STATUS接S3—S1MCN)就能实现微程序对运算器的控制。

AO1、BO1通常接至底板I/O控制电路的1A1B上,用于外部I/O设备的选通控制。

WEO为微控器的读写输出,WEI为外部读写控制电路的输入,控制总线上的WR为外部读写控制电路的输出,其控制电路为:

图2控制电路

通常将WEO与WEI相连,实现微程序对外部读写的控制。

LARI为地址控制器的输入,以下另作介绍。

除此以外其他控制信号都已接至相应的控制电路。

 

3.3指令译码器电路

指令译码器电路由EP1K10实现,其原理如下图所示。

其中P1、P2、P3、P4、LRi、RAG、RBG、RCG为微程序译码产生的控制信号,T3为时钟,I7—I0为指令寄存器的输出IR,CA1、CA2为机器指令的读、写、运行的控制端,已分别接至控制总线的E4和E5。

SA4—SA0为强制微地址信号,输出至微控制器电路;LDR2—LDR0输出至寄存器堆电路的LR,R0B、R1B、R2B输出至寄存器堆电路的RG。

图3-2微控制器电路

 

四、详细设计

4.1数据格式:

本实验计算机采用定点补码表示法表示数据,字长为16位,其格式如下:

15

1413……..0

符号

尾数

其中第16位为符号位,数值表示范围是:

-32768≤X<32767。

4.2指令格式:

1)算术逻辑指令

设计9条单字长算术逻辑指令,寻址方式采用寄存器直接寻址。

其格式如下:

7654

32

10

OP-CODE

rd

rs

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

OP-CODE

0111

1000

1001

1010

1011

1100

1101

1110

1111

指令

CLR

MOV

ADD

SUB

INC

AND

NOT

ROR

ROL

Rs或rd

选定寄存器

00

Ax

01

Bx

10

Cx

9条算术逻辑指令的名称、功能和具体格式见表8-2。

2)存储器访问及转移指令

存储器的访问有两种,即存数和取数。

它们都使用助记符MOV,但其操作码不同。

转移指令只有一种,即无条件转移(JMP)。

指令格式如下:

76

54

32

10

00

M

OP-CODE

rd

D

其中OP-CODE为操作码,rd为寄存器。

M为寻址模式,D随M的不同其定义也不相同,如下表所示:

OP-CODE

00

01

10

指令说明

写存储器

读存储器

转移指令

寻址模式M

有效地址E

D定义

说明

00

E=(PC)+1

立即数

立即寻址

10

E=D

直接地址

直接寻址

3)I/O指令

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

7654

32

10

OP-CODE

addr

rd

其中,当OP-CODE=0100且addr=10时,从“数据输入电路”中的开关组输入数据;当OP-CODE=0100且addr=01时,将数据送到“输出显示电路”中的数码管显示。

4.3指令系统

本实验共有14条基本指令,其中算术逻辑指令8条,访问内存指令和程序控制指令4条。

输入输出指令2条。

表1列出了各条指令的格式、汇编符号和指令功能。

表1指令格式

汇编符号

指令的格式

功能

MOVrd,rs

ADDrd,rs

SUBrd,rs

1000rsrd

1001rs rd

1010rsrd

rsrd

rs+rdrd

rd-rsrd

INCrd

ANDrd,rs

NOTrd

RORrd

1011rdrd

1100rsrd

1101rdrd

1110rdrd

rd+1rd

rs∧rdrd

rdrd

rd

ROLrd

1111rdrd

rd

MOV[D],rs

001000rs

D

rs[D]

MOVrd,[D]

001001rd

D

[D]rd

MOVrd,D

000001rd

D

Drd

JMPD

0000 10 00    

 D  

D  PC

INrd,KIN

OUTDISP,rd

011110rd

010101rd

KINrd

rdDISP

4.4设计微代码

设计三个控制操作微程序:

存储器读操作(MRD):

拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。

存储器写操作(MWE):

拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。

启动程序(RUN):

拨动开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行。

注:

CA1、CA2由控制总线的E4、E5给出。

键盘操作方式时由监控程序直接对E4、E5赋值,无需接线。

开关方式时可将E4、E5接至控制开关CA1、CA2,由开关来控制。

本系统设计的微程序字长共24位,其控制位顺序如下:

24

23

22

21

20

19

18

17

16

151413

121110

987

6

5

4

3

2

1

S3

S2

S1

S0

M

Cn

WE

1A

1B

F1

F2

F3

uA5

uA4

uA3

uA2

uA1

uA0

F1、F2、F3三个字段的编码方案如表2:

表2编码方案

F1字段

F2字段

F3字段

151413

选择

121110

选择

987

选择

000

LDRi

000

RAG

000

P1

001

LOAD

001

ALU-G

001

AR

010

LDR2

010

RCG

010

P3

011

自定义

011

自定义

011

自定义

100

LDR1

100

RBG

100

P2

101

LAR

101

PC-G

101

LPC

110

LDIR

110

299-G

110

P4

111

无操作

111

无操作

111

无操作

系统涉及到的微程序流程见图2(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。

控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。

当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。

机器指令的执行过程如下:

首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。

之后必须对操作码进行P1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程(其原理见图5-4)。

然后才顺序执行该段微程序,这是真正的指令执行过程。

在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令,对应于图8-2中01、02、75地址的微指令。

75地址为“译码”微指令,该微指令的操作为P

(1)测试,测试结果出现多路分支。

本实验用指令寄存器的前4位(I7-I4)作为测试条件,出现12路分支,占用12个固定微地址单元。

如I7—I4相同,则还需进行P2测试,以指令寄存器的I3、I2位作为测试条件,以区分不同的指令,如MOV指令和IN、OUT指

表3即为将图2的微程序流程按微程序格式转化而成的二进制微代码表。

图2的微程序流程

 

控制开关

00

P(4)测试

MWE(01)MRD(00)RUN(11)

PCAR,PC+111PCAR,PC+11013

(D_INPUT)D_BUSLT114RAMD_BUSLT11201

LT1RAM74LT1LED73

图3微程序流程图

五、实验代码:

按程序流程图译出适合本实验系统所有机器指令的微代码,加深对较完整的模型机的认识。

这里提供以下实验程序:

地址(二进制)指令(二进制)助记符说明

0000000001001000INAx,KIN“开关输入”Ax

0000000100000101MOVBx,01H01HBx

0000001000000001

0000001110010100ADDAx,BxAx+BxAx

0000010011110000ROLAxAx

0000010111010000NOTAx取反

0000011000100101MOVBx,[01H]直接寻址

0000011100000001

0000100010000010MOVCx,AxAxCx

0000100101000110OUTDISP,CxCxLED

0000101000001000JMP00H00HPC

0000101100000000

其中MOV、JMP为双字长(32位),其余为单字长指令。

对于双字长指令,第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。

上述所有指令的操作码均为低8位有效,高八位默认为0。

而操作数8位和16位均可。

KIN和DISP分别为本系统专用输入、输出设备。

表3为根据本实验程序流程图设计的二进制微代码表:

表3二进制微代码表

微地址

S3S2S1S0MCNWE1A1B

F1

F2

F3

UA5--UA0

000000

000000000

111

111

110

001000

000001

000000000

101

101

101

000010

000010

000000010

110

111

111

111101

000110

000000010

101

111

111

100101

000111

000000010

101

111

111

100101

001000

000000000

101

101

101

001010

001001

000000000

101

101

101

001100

001010

000000010

100

111

111

111011

001011

000000000

111

111

111

000001

001100

000000011

100

111

111

111100

010000

000000000

101

101

101

100101

010010

000000000

101

101

101

000111

010011

000000000

101

101

101

000110

010101

000000101

111

010

111

000001

010111

000000011

000

111

111

000001

011000

000000000

000

000

111

000001

011001

000000000

100

000

111

101010

011010

000000000

100

000

111

101100

011011

000000000

100

000

111

110010

011100

000000000

100

000

111

110011

011101

000000000

100

000

111

110110

011110

001100000

111

000

111

110111

011111

001100000

000

000

111

111001

100000

000000110

111

100

111

000001

100001

000000010

000

111

111

000001

100010

000000010

001

111

101

000001

100101

000000000

111

111

100

100000

101010

000000000

010

010

111

101011

101011

100101000

000

001

111

000001

101100

000000000

010

100

111

101101

101101

011000000

000

001

111

000001

110010

000000000

000

001

111

000001

110011

000000000

010

010

111

110101

110101

101110000

000

001

111

000001

110110

000011000

000

001

111

000001

110111

001000000

111

110

111

111000

111000

000000000

000

110

111

000001

111001

000100000

111

110

111

111010

111010

000000000

000

110

111

000001

111011

000001101

111

001

111

001000

111100

111111110

111

001

111

001001

111101

000000010

110

111

000

010000

六、实验步骤:

单片机键盘操作方式实验。

在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。

6.1实验连线:

实验连线图如图8-3所示。

连线时应按如下方法:

对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

6.2写微代码:

(1)将开关K1K2K3K4拨到写状态即K1off、K2on、K3off、K4off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。

(2)在监控指示灯滚动显示【CLASSSELECt】状态下按【实验选择】键,显示【ES--__】输入08或8,按【确认】键,显示为【ES08】,再按下【确认】键。

(3)监控显示为【CtL1=_】,输入1显示【CtL1_1】,按【确认】。

(4)监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,显示这时输入微代码【007F88】,注意输入微代码的顺序,先右后左。

按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入。

(5)监控重新显示【U-Addr】提示输入表4第二条微代码地址。

按照上面的方法输入表4微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。

 

表4微代码表

微地址(八进制)

微地址(二进制)

微代码(十六进制)

00

000000

007F88

01

000001

005B42

02

000010

016FFD

06

000110

015FE5

07

000111

015FE5

10

001000

005B4A

11

001001

005B4C

12

001010

014FFB

13

001011

007FC1

14

001100

01CFFC

20

010000

005B65

22

010010

005B47

23

010011

005B46

25

010101

02F5C1

27

010111

018FC1

30

011000

0001C1

31

011001

0041EA

32

011010

0041EC

33

011011

0041F2

34

011100

0041F3

35

011101

0041F6

36

011110

3071F7

37

011111

3001F9

40

100000

0379C1

41

100001

010FC1

42

100010

011F41

45

100101

007F20

52

101010

0029EB

53

101011

9403C1

54

101100

0029ED

55

101101

3003C1

62

110010

0003C1

63

110011

0025F5

65

110101

B803C1

66

110110

0C03C1

67

110111

207DF8

70

111000

000DC1

71

111001

107DFA

72

111010

000DC1

73

111011

06F3C8

74

111100

FF73C9

75

111101

016E10

6.3读微代码及校验微代码:

(3)先将开关K1K2K3K4拨到读状态即K1off、K2off、K3on、K4off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASSSELECt】状态。

(4)按【实验选择】键,显示【ES--__】输入08或8,按【确认】键,显示【ES08】。

再按【确认】。

(5)监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】,此时输入6位二进制微地址,进入读代码状态。

再按【确认】显示【PULSE】,此时按【单步】键,显示【U_Addr】,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。

(6)对照表3表检查微代码是否有错误,如有错误,可按步骤2重新输入微代码。

6.4写机器指令

(1)先将K1K2K3K4拨到运行状态即K1on、K2off、K3on、K4off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASSSELECt】状态。

(2)按【实验选择】键,显示【ES--__】输入08或8,按【确认】键,显示【ES08】,再按【确认】。

(3)监控显示【CtL1=_】,按【取消】键,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1