复杂模型机的设计与实现

  • 格式:docx
  • 大小:1.56 MB
  • 文档页数:15

计算机组成原理部分
复杂模型机的设计与实现
一、设计目的
综合应用所学计算机组成原理和汇编语言知识,设计并实现较为完整的模型计算机,培养学生独立分析和设计计算机硬件系统的能力。

二、实验设备
1. 硬件环境:
Dais-CMB+计算机组成原理教学实验系统一台,排线若干,PC机。

2. 软件环境:
操作系统,Dais-CMB+应用软件。

三、设计要求
3.1、设计任务
1. 熟悉实验环境,即实验中涉及的硬件和软件,掌握这些环境工具的功能和使用方法。

本实验中主要是Dais-CMB+软件及其工作环境。

Dais-CMB+计算机组成原理教学实验系统一台,排线若干。

连接方法是:用二芯排线把位于实验装置左上方运算器的左下侧CYCZ接口与位于实验装置红色拨码开关右下方的FCFZ接口相连接。

在联机状态下,首先应打开mXj.abs,然后点击“!”图标进入链接装载,一旦屏幕自动弹出动态调试窗口表示代码及微代码下载已成功,已进入windows在线集成调试环境。

2. 综合应用所学计算机原理知识,设计并实现较为完整的模型计算机。

3. 使用模型计算机指令编制程序完成下列功能之一:
(1)乘法运算。

(2)除法运算。

(3)连加和连减运算。

4. 将程序译成二进制代码,并将二进制代码写入主存。

3.2、拟定数据格式及指令系统
1.数据格式
模型机规定采用定点补码表示数据,且字长为8位,其格式如下:
其中第7位为符号位,数值表示范围是:-128≤X≤127(定点整数),-1≤X<1(定点小数)。

2.指令格式
模型机设计五大类指令共十六条,其中包括算术逻辑指令、I/O指令、访存指令、转移指令和停机指令。

⑴算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
⑵访存指令和转移指令
模型机设计2条访存指令、即存数指令(STA)、取数指令(LDA);2条转移指令,即无条件转移指令(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。

D为形式地址,如为位移量,正负均可,M为寻址模式,其定义如下:
模型机规定变址寄存器RI指定为寄存器R2。

⑶I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
其中,addr=01时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUT DEVICE”中的LED作为输出设备。

⑷停机指令
HALT指令,用于实现停机操作,指令格式如下:
3.指令系统
模型机有16条基本指令,其中算术逻辑运算指令9条,访问内存指令2条,程序控制指令2条,输入输出指令2条,其它指令2条。

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

表1 指令格式
4.微指令格式
微指令字长32位,格式如下所示:
A字段
B字段
说明:DDR1表示LDDR1 DDR2表示LDDR2
5.模型计算机数据通路框图
模型计算机数据通路框图如图1所示:
图1 模型机数据通路框图
6.微程序设计
按照系统建议的微指令格式和模型计算机数据通路框图,分析指令流程,为每条机器指令编制微程序,并和系统自带的微程序比较(在复位后,输入“3”,按“装载”,可将系统微程序装入)。

编制微程序实现新指令的功能。

四、设计内容
4.1、基本内容
1. 试验箱系统图
2. 程序流程图
3. 分析微指令执行序列
首先通过代码在指令流程图中找到对应项,然后再在系统控存内容找出对应的32位指令程序,然后再根据拟定好的数据格式和指令系统对微指令进行分析。

表1 系统控存内容
4. 设计内容
(1)运行几条指令,按照系统的微指令格式和模型计算机数据通路框图分析其流程,写出所分析机器指令的微程序。

(2)增加一条新指令,为其编制微程序。

(3)编制程序,完成连加运算。

5. 设计思路
(1)修改微指令:
修改微指令,首先要弄懂其每一位代表什么意思有什么功能,参照74LS181的功能表,我们所修改的是把AND指令修改为异或指令XOR,只需控制74LS181上的M,S0,SI,S2,S3,将算数运算改为相应的逻辑运算,即M17 40 3D 02 80 修改为M17 40 3E 02 80,只需修改21-17位即可,然后对照及其软件验证其正确性。

(2)连加运算设计:
先输入一个数作为控制连加的次数,然后每次输入一个数作为要加的数,把结果放到内存的某个空间里,实现连加,直到次数达到控制值。

4.2、运行程序
1. 单步运行微程序
键入数字键00(PC地址从00H开始),然后每按动一次“单步”命令键,运行一条微指令。

对照微程序流程图,观察微地址显示灯是否和流程一致。

2. 单步运行机器程序
键入数字键03H(PC地址),然后每按动一次“宏步”命令键,运行一条机器指令。

对照机器指令程序,观察微地址显示灯是否和流程一致。

3. 程序连续运行与暂停程序
键入数字键00H(PC地址)按动“运行”命令键使模型机进入实时运行状态。

在实时运行状态按“宏单”键执行的暂停命令,使模型机进入停机状态,参照机器指令及微程序流程图,将实验现象与理论分析比较。

4.3、运行结果
上图所示,实现功能为输入循环次数R0的数值03H。

上图所示,实现功能为P01 B0 ;COM R0
上图所示,实现功能为P0270 ;INC R0
上图所示,实现功能P06 36;ADC R1,R2
上图所示,实现功能为输出运算结果R2的值,具体如下图所示:
83H
第一次连加运算之后的结果显示:
86H
第二次连加运算之后的结果显示:
89H
第三次连加运算之后的结果显示:
8CH 程序终止运行。

五、程序代码
1. 修改微指令
P00 84 ;IN R0
P01 85 ;in R1
P02 94 ;YIHUO r0,r1
P0A C0 ;HALT
2. 连加运算
总结与心得
硬件课程设计历时两周时间,综合了计算机组成原理和接口技术相关的学科知识和技能。

在实验设计期间,小组成员能够团队协作,共同攻克难关。

最终课程设计顺利完成,为大三最后的时刻。

画上了一个圆满的句号。

由于是上学期学过,忘掉不少。

这次实验时候,预先一起复习了一下相关的知识点。

在理论有所了解的基础上,再进行实验的实际操作。

借助软件平台和已经连接好电路的试验箱,首先验证了实验所附带的第三个程序代码的显示结果。

在此基础上,进行修改微指令的任务。

但在设计连加运算时候,碰到了阻碍。

对汇编语言的陌生,也是一个不小的阻扰。

分工合作,两人研究汇编语言修改指令代码,一人设计总体程序架构。

后来又请教老师同学,参观或“偷师”别人的经验。

最终能够成功实现连加运算的结果输出。

通过这次课程设计,即是对旧知识的回顾和复习,又是一种对新知识的自主学习和探索。

课程设计的目的并不在于上交一份报告,而是对这种学习能力和解决问题能力的培养。

课程设计也是对理论知识的进一步消化和吸收,因为只有实践才是检验知识的唯一道路。

感谢这次参与课程设计的小组成员们,一个好的团队是成功的保证。

还有帮助我们共同进步的老师和同学们,他们在理论和实际操作的经验使我们少走了曲径,一并致谢。

这是一次很成功的课程设计。