自基本模型机的设计加减法指令的实现.docx

上传人:b****5 文档编号:11822919 上传时间:2023-04-03 格式:DOCX 页数:24 大小:1.11MB
下载 相关 举报
自基本模型机的设计加减法指令的实现.docx_第1页
第1页 / 共24页
自基本模型机的设计加减法指令的实现.docx_第2页
第2页 / 共24页
自基本模型机的设计加减法指令的实现.docx_第3页
第3页 / 共24页
自基本模型机的设计加减法指令的实现.docx_第4页
第4页 / 共24页
自基本模型机的设计加减法指令的实现.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

自基本模型机的设计加减法指令的实现.docx

《自基本模型机的设计加减法指令的实现.docx》由会员分享,可在线阅读,更多相关《自基本模型机的设计加减法指令的实现.docx(24页珍藏版)》请在冰豆网上搜索。

自基本模型机的设计加减法指令的实现.docx

自基本模型机的设计加减法指令的实现

课程设计任务书

学生姓名:

     专业班级:

 软件工程  

指导教师:

  工作单位:

题目:

  基本模型机的设计-加减法指令的实现        

初始条件:

 理论:

学完“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。

  实践:

计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。

2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。

3、课程设计的书写报告应包括:

1)课程设计的题目。

2)设计的目的及设计原理。

3)根据设计要求给出模型机的逻辑框图。

4)设计指令系统,并分析指令格式。

5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。

6)模型机当中时序的设计安排。

7)设计指令执行流程。

8)给出编制的源程序,写出程序的指令代码及微程序。

9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中每指条令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。

10)课程设计总结(设计的特点、不足、收获与体会)。

时间安排:

设计时间第20周

周一:

熟悉相关资料。

  周二:

系统分析,设计程序。

  周三、四:

实验平台调试    周五:

撰写课程设计报告。

 

指导教师签名:

      年 月  日

系主任(或责任教师)签名:

   年  月 日

基本模型机的设计

—加减法指令的实现

1.设计目的

本次课程设计主要是完成简单的加减法指令的实现,通过使用软件HKCPT,了解程序编译、加载的过程。

通过微单步、单拍调试,理解模型机中的数据流向。

在分析阶段主要完成模型机的整体逻辑框图,并在实验平台上连好线将各个逻辑部件组装成一个完整的模型机;在设计阶段主要是设计出该机的指令系统,并设计出相应的编码方式及时序逻辑;在实验验证阶段,自己按照设计阶段编制的指令系统编写一个程序,在实验平台上观看程序每一步运行的过程。

2.设计原理

模型机的运行是在微程序的控制下,实现特定指令的功能,并且编写相应的

微程序,简单的模型机都是由算术逻辑单元、微程序单元、堆栈寄存器单元、累加器、启停、时序单元、总线和存储器单元组成。

我们可以先设计模型机的逻辑框图,然后编制相应的指令系统,模型机组装好后就可以输入事先编好的程序检验模型机是否成功。

3.设计内容

3.1逻辑框图设计

ﻩ根据设计的要求,对实验硬件资源进行逻辑组合,便可设计出该模型机整体逻辑框图。

简单的模型机都是由算术逻辑单元、微程序单元、堆栈寄存器单元、累加器、启停、时序单元、总线和存储器单元组成。

在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减、与、或指令。

把通用寄存器作为累加器A,进行左、右移等指令,整体构成一个单累加器多寄存器的系统。

ﻩ下图给出了本次实验的模型机整机逻辑框图:

 

ﻩMﻩDR1CKEDR2

PC-OPCCKELPCN S3S2S1S0

ALU-O

ﻩALU

EDR2DR2CK

 

RA-ORACKERA X1X0

 

ADDRESSBUS

 

WMRMEMCK

 

ﻩDATABUSﻩSBﻩSAﻩWRﻩRR

 

ﻩﻩIR1CKEIR1

 

微地址寄存器组

MCK  MLD

 

3.2系统连线

1.总线和内存单元

BUS

RM

WM

EMCK

DJ1

DJ2

DJ3

DJ4

DJ5

DJ6

DJ7

AJ1

M21

M21

M22

PLS4

ALU-IN

ALU-OUT

R-IN

RA-IN

R-OUT

RA-OUT

PC-IN

PC-OUT

2.微程序控制单元

MLD

MCK

MOCK

MD0

MD1

MD2

MD3

MD4

MD5

MD6

MD7

M23

PLS1

PLS3

VCC

VCC

I4

I5

I6

I7

GND

GND

3.寄存器单元

SA

SB

RR

WR

RCK

X0

X1

ERA

RA-O

RACK

I0

I1

M15

M14

PLS4

M12

M11

M10

M9

PLS4

4.算术逻辑单元

EDR1

EDR2

ALU-O

CN

M

S3

S2

S1

S0

D2CK

D1CK

CCK

ZD

CY

M8

M7

M6

M5

M4

M3

M2

M1

M0

PLS4

PLS4

PLS4

JZ

JC

5.指令寄存器

EIR1

EIR2

IR1CK

IR2CK

IR2-O

PC-O

ELP

PCCK

JZ

JC

JS0

JS1

M20

M19

PLS4

PLS4

M18

M17

M16

PLS2

ZD

CY

I2

I3

6.启停单元

HCK

HALT

PLS2

M13

ﻩ3.3指令系统设计

ﻩﻩ本次实验的平台HKZK-CPT内采用的是8位数据总线和8位地址总线方式,在设计指令系统时,应考虑有哪几种类型的指令,那几种寻址方式和编码方式。

3.3.1指令类型

算术/逻辑运算指令

如:

加法、减法、取反、逻辑运算等

ﻩADDA,Ri,SUB A,Ri

移位操作类指令

ﻩ带进位或不带进位的移位指令

RRCA,RRA

 数据传送指令

ﻩﻩCPU内部寄存器之间的数据传送

ﻩMOV A,Ri,MOVRi,A

 程序跳转指令

跳转指令分为无条件跳转指令和有条件跳转指令。

可根据寄存器内容为零来标志(ZD)、有无进位来标志(CY)。

ﻩﻩJMPﻩaddrﻩ无条件跳转

ﻩJZ addrﻩZD=0时跳转

ﻩJCaddrCY=0时跳转

寄存器操作类指令

ﻩﻩ存储器读/写指令。

把内存某单元内容写入寄存器中或把寄存器中的内容写入存储器。

如:

LDAaddrﻩ(addr)->A

ﻩSTAaddrﻩ(A)->addr

3.3.2 操作数寻址方式及编码

1.直接地址寻址

ﻩ如:

LDAaddrﻩ(addr)->A

ﻩﻩSTAﻩaddrﻩﻩ(A)->addr

ﻩ2.寄存器直接寻址

ﻩ指令字中含有寄存器选择码,决定选择哪个寄存器进行操作。

如:

MOVﻩA,ﻩRiﻩ(Ri)->A

ﻩ3.寄存器间接寻址

如:

MOVA,@Ri

4.立即数寻址

如:

MOVﻩA,#data

ﻩMOVﻩRi,#data

 

3.3.3 指令系统

指令助记符

指令功能

指令编码

微周期

微操作

取指微指令

T0:

PC->地址总线->RAM

RAM->数据总线->IR1

ADD A,R0

ADDA,R1

ADDA,R2

ADDA,R3

(A)+(Ri)->A

0C

0D

0E

0F

T0:

T1:

T2:

T3:

A->数据总线->DR1

Ri->数据总线->DR2

ALU->数据总线->A、置CY

取指微指令

SUBA,R0

SUBA,R1

SUBA,R2

SUBA,R3

(A)-(Ri)->A

1C

1D

1E

1F

T0:

T1:

T2:

T3:

A->数据总线->DR1

Ri->数据总线->DR2

ALU->数据总线->A、置CY

取指微指令

MOV A,@R0

MOVA,@R1

MOVA,@R2

MOVA,@R3

(Ri)->A

2C

2D

2E

2F

T0:

T1:

T2:

Ri->数据总线->DR2

IR2->地址总线->RAM->A

取指微指令

MOVA,R0

MOVA,R1

MOVA,R2

MOVA,R3

(Ri)->A

3C

3D

3E

3F

T0:

T1:

Ri->数据总线->A

取指微指令

MOV R0,A

MOV R1,A

MOVR2,A

MOVR3,A

(A)->Ri

4C

4D

4E

4F

T0:

T1

A->数据总线->Ri

取指微指令

MOVA,#data

Data->A

5F

T0:

T1

RAM->数据总线->A

取指微指令

MOVR0,#data

MOVR1,#data

MOV R2,#data

MOVR3,#data

Data->A

6C

6D

6E

6F

T0:

T1

RAM->数据总线->A

取指微指令

LDAaddr

(addr)->A

7F

T0:

T1:

T2:

RAM->数据总线->IR2

IR2->地址总线,RAM->A

取指微指令

STAaddr

(A)->addr

8F

T0:

T1:

T2:

RAM->数据总线->IR2

IR2->地址总线,A->RAM

取指微指令

RLCA

C、A左移一位

9F

T0:

T1

A<<1、置CY

取指微指令

RRCA

C、A右移一位

AF

T0:

T1

A>>1、置CY

取指微指令

JZ addr

A=0

Addr->PC

B3

T0:

T1

条件成立:

RAM->PC

取指微指令

JCaddr

Cy=0

Addr->PC

B7

T0:

T1

条件成立:

RAM->PC

取指微指令

JMPaddr

Addr->PC

BF

T0:

T1

RAM->PC

取指微指令

ORLA,#data

(A)或data->A

CF

T0:

T1:

T2:

T3:

A->数据总线->DR1

RAM->数据总线->DR2

ALU->数据总线->A

取指微指令

ANL A,#data

(A)或data->A

DF

T0:

T1:

T2:

T3:

A->数据总线->DR1

RAM->数据总线->DR2

ALU->数据总线->A

取指微指令

HALT

停机

FF

T0:

停机

3.4微程序设计及其实现方法

ﻩ在本次实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可以由微代码直接实现。

如果采用多组编码译码、那么24位微代码可实现2n个互斥的微操作控制信号。

ﻩ由于模型机指令系统规模叫小,功能也不太复杂,所以采用全水平不编码纯控制场的格式。

在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0-MD7,这种方法称为“按操作码散转”(如下表所示)。

ﻩ    微程序首地址形成

MD7

MD6

MD5

MD4

MD3

MD2

MD1

MD0

0

17

16

15

14

1

1

        按操作码散转

    指令操作码

微程序首地址

MD7、MD6

17

16

15

14

MD1、MD0

MD7~MD6

0

0

0

0

1

003H

0

0

1

007H

0

0

1

0

1

00BH

0

0

0

1

1

1

00FH

0

0

1

0

0

1

013H

0

0

1

0

1

1

017H

1

1

1

01BH

0

0

1

1

01FH

1

0

0

0

1

023H

0

1

0

0

1

027H

0

1

1

0

1

02BH

1

0

1

1

1

02FH

0

1

0

0

033H

0

1

1

O37H

0

1

1

0

1

03BH

0

1

1

03FH

每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。

微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址。

例如:

确定了一条程序的微程序入口地址为07H,那么当执行完07H这条微指令后微地址加1,指向08H微地址。

微地址寄存器由2片74LS161组成,当模型机在停止状态下,微地址被清零。

当实验平台开始运行时,微地址从00H开始运行。

且00H放置一条取值指令,根据程序开始地址从内存中读出第一条指令。

00

取指微指令

01

02

03

减法指令微程序

(1)

04

减法指令微程序(2)

05

06

07

MOV指令微程序

(1)

08

MOV指令微程序

(2)

09

MOV指令微程序(3)

0A

0B

0C

0D

3.5模型机中的时序安排设计

ﻩ由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。

ﻩ在本实验中为了让实验者更好的观察实验的各个中间过程中个寄存器的值,由监控单元产生一个PLS-O的信号来控制时序产生(如图2-9-2)。

PLS-O信号经过时序单元的处理产生了4个脉冲信号。

4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。

这4个脉冲信号分别是:

ﻩPLS1:

微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。

PLS2:

PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能。

ﻩPLS3:

把24位微指令打入3片微指令锁存器。

PLS4:

把当前总线上的数据打入微指令选通的寄存器中。

3.6指令执行流程设计

ﻩ根据模型机整机逻辑框图和目前硬件条件来设计指令系统中每条指令的执行流程。

在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为“取指令周期”,称为公操作周期。

而一条指令共需要几个机器周期取决于指令在机器内实现的复杂程度。

对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所包含的微操作的必要性和合理性,还应知道总线IAO、IDB、OAB、ODB仅是传输信息的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性。

以下描述取指微指令执行过程:

ﻩ在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令琐存器输出无效(为高)。

在处于停机状态时,脉冲PLS1对微地址寄存器(74LS161)无效,微地址寄存器保持为零。

脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器(74LS74)中,把模型机置为运行状态,使微程序锁存器输出有效。

PLS3把微程序存储器00H单元(00H单元存放着取指微指令)中的内容打入微指令锁存器中并且输出取指微指令。

PLS4把从程序存储器中读出的数据打入指令寄存器中。

ﻩ当模型机处于运行状态时,脉冲PLS1微地址寄存器(74LS161)加1,脉冲PLS2对PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。

PLS4把当前总线上的数据打入当前微指令所选通的寄存器。

4.程序调试

源程序、程序的指令代码及相应的微程序如下表:

内存地址

源程序

指令代码

微程序

00H

MOVA,#55H

5FH

位:

  23 22 21 20 19 18…0

微指令:

MLD WM RMEIR1 EIR2IR2-O…S0

有效值:

1  111 0  1…1

01H

55H

02H

MOVR0,#22H

6CH

位:

232221 20 19 18…0

微指令:

MLDWMRMEIR1EIR2IR2-O… S0

有效值:

11011  1  … 1

03H

22H

04H

SUBA,R0

07H

位:

  23222120 19  18…  0

微指令:

MLDWMRM EIR1EIR2IR2-O…  S0

有效值:

1 1 1 11 1… 1

05H

MOVR1,#11H

1CH

位:

 23 2221 2019 18… 0

微指令:

MLD WMRMEIR1EIR2IR2-O… S0

有效值:

0 100 11…1

06H

11H

07H

ADDA,R1

04H

位:

 232221 20  1918… 0

微指令:

MLDWMRMEIR1EIR2IR2-O… S0

有效值:

1   111 1 1… 1

08H

MOVR2,#10H

1DH

位:

 232221201918…0

微指令:

MLD WMRMEIR1EIR2IR2-O…S0

有效值:

01001  1…1

09H

0AH

ADDA,R2

05H

位:

 23 22 2120  19 18… 0

微指令:

MLDWMRMEIR1EIR2 IR2-O…S0

有效值:

111   1  1  1 …1

0BH

STA10

8FH

位:

   2322 2120  19 18…0

微指令:

MLD WMRMEIR1EIR2 IR2-O…  S0

有效值:

110  10 1  … 1

0CH

10H

0DH

HALT

FFH

位:

 23 22 21201918…  0

微指令:

MLDWM RMEIR1EIR2IR2-O… S0

有效值:

11111 1… 1

5.上机调试过程

本次实验用的软件是HKCPT,我将上面编好的程序输入电脑,在这个软件中进行调试并观看程序单步运行的结果,用截图工具将程序的微单步过程各个结构图以及时序截了下来,以下就是整个程序的运行过程:

6.总结

通过本次的课程设计,我进一步融会贯通了教材上的内容,掌握了计算机各功能模块的工作原理、相互联系和来龙去脉,完整地建立了计算机的整机概念。

自己的学习热情和主动性得到了空前提高,独力工作能力也得到了很大的提高。

培养成了严谨的科研作风,创造性地完成了模型机的部件及系统的分析、设计、组装和调试,加深了自己对计算机组成原理及系统结构课程的内容的理解和掌握。

当然,此次的模型机设计也有很大的不足之处,比如:

指令系统的规模太小,

有很多有用的指令没有进行编码设计导致功能太简单,要编较难较复杂的程序还不太可能。

另外此次的课程设计也暴露了一个很大的问题,那就是:

我们的动手能力太差了,很多在书本上觉得很简单的问题等到自己动手去做时才发现原来还有很多知识我们并不太清楚,所以今后要加强我们的动手能力。

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

当前位置:首页 > 工程科技 > 建筑土木

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

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