资源描述
课 程 设 计 报 告
课程名称 计算机组成原理
课题名称 复杂模型计算机设计
专 业
班 级
学 号
姓 名
指导老师
9 月 12 日
湖南工程学院
课 程 设 计 任 务 书
课程名称 计算机组成原理
课 题 复杂模型计算机设计
专业班级
学生姓名
学 号
指导老师
审 批
任务书下达日期 年 9月 2 日
任务完成日期 9月 12日
一、设计内容和设计要求
1.设计内容
模型机是由五个部分组成计算机,经过它能够了解计算机整机结构及功效,了解CPU、存放器、中止控制器、总线结构及实现逻辑和各部件之间接口关系。此次课程设计关键内容是利用西安唐全部企业TDN-CM++内部可编程资源,设计一个模型计算机。本课程设计关键目标是经过部件级模型机设计和调试,使学生了解计算机由5部分组成,掌握计算机工作过程,从“指令—微指令—微操作”概念了解,从而清楚地建立计算机整机概念,并培养学生分析和处理实际问题能力,同时增强学生动手能力。
2.设计要求
(1) 借助于TDN-CM++内部可编程资源,运算器单元,控制存放器,微命令寄存器,地址转移逻辑,微地址寄存器,控制时序信号单元,寄存器组,总线,输入\输出单元等,用微程序方法设计一台模型计算机。设计包含模型计算机组成设计,指令系统设计,并用汇编语言完成设计并调试成功。
(2) 复杂模型机设计要求 (参考P107-115)
模型机设计四大类指令共十六条,其中包含算术逻辑指令、I/O 指令、访问及转移指令和停机指令。
设计9条算术逻辑指令并用单字节表示,寻址方法采取寄存器直接寻址。
设计2条访内指令,即存数(STA)、取数(LDA),2 条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。
设计2 条I/O 指令,输入(IN)和输出(OUT)指令采取单字节指令。
设计停机指令1条用单字节表示。
(3) 调试程序
第一组
地址(H) 内容(H) 助记符 说明
$P00 44 IN 01 R0 INPUT device->R0
$P01 46 IN 01 R2 INPUT device->R2
$P02 98 ADC R2 R0 R2+R0+CY->R0
$P03 81 MOV R0 R1 R0->R1
$P04 F5 RLC R1 R1 R1右移一位
$P05 0C BZC 00 00 00->PC
$P06 00
第二组
地址(H) 内容(H) 助记符 说明
$P00 45 IN 01 R1 INPUT device->R1
$P01 00 LDA 00 00 R0 (20)-> R0
$P02 20
$P03 86 MOV R1 R2 R1->R2
$P04 A8 SBC R2 R0 R2-R0-CY->R0
$P05 F5 RLC R1 R1 R1右移一位
$P06 0C BZC 00 00 00->PC
$P07 00
第三组
地址(H) 内容(H) 助记符 说明
$P00 46 IN 01 R2 INPUT device->R2
$P01 84 MOV R2 R0 R2-> R0
$P02 44 IN 01 R0 INPUT device->R0
$P03 98 ADC R2 R0 R2+R0+CY->R0
$P04 E2 COM R2 NOT R2 ->R0
$P05 D6 STA 00 0A R2 R2 ->(0A)
$P06 0A
$P07 0C BZC 00 00 00->PC
$P08 00
在要求时间内以小组为单位完成相关系统功效实现、数据测试和统计并进行合适分析。
(4)按本任务书要求,编写《课程设计汇报》(Word文档格式)。并用A4复印纸打印并装订。
(5)在要求时间内,请各班学习委员收齐课程设计汇报在星期五交陈华光老师。
3.分组及安排
分5组,学号除以5取余数,余数为0同学做复杂模型机1、余数为1同学做复杂模型机2,余数为2同学做复杂模型机3,余数为3同学做基于RISC模型机,余数为4做流水线模型机,每个组必需独立完成指定题目,每个同学按要求独立完成课程设计汇报。
4.成绩评定
程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书质量高低;答辩时回复问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。
二、进度安排
第 2周具体安排以下:
星期
时间
内容
地点
星期一
8.00-.11.30
任务安排
E-510
星期一
2.30-.6.00
接线
E-510
星期二
8.00-.11.30
调试
E-510
星期二
2.30-.6.00
系统调试实现
E-510
星期三
8.00-.11.30
系统调试实现
E-510
星期五
8.00-.11.30
完成汇报
E-510
目录
一、 课题关键功效 1
二、 总体设计方案 2
1. 复杂模型机逻辑框图 2
2. 用框图语言表示模型机指令实施步骤 3
三、 数据格式和寻址方法设计 4
1. 数据格式 4
2. 模型机寻址方法 4
3. 指令格式 5
四、 指令和微程序设计 7
1. 指令系统 7
2. 修改微指令 7
五、 线路连接图 9
六、 微程序步骤及说明 10
1. 调试程序 10
2. 微程序运行截图 10
3. 源代码清单 14
七、 课程设计收获及体会........................................................................................................17
八、 参考资料 18
一、 课题关键功效
此次课题功效为先将数两个数进行加法运算,然后将第一个数进行逻辑右移得到一个新数目,再用加法运算得到和减去该数,最终将结果输出。
目标是完整设计一台模型计算机,深入建立整机概念。借助于TDN-CM++内部可编程资源,运算器单元,控制存放器,微命令寄存器,地址转移逻辑,微地址寄存器,控制时序信号单元,寄存器组,总线,输入\输出单元等,用微程序方法设计一台模型计算机。设计包含模型计算机组成设计,指令系统设计,并用汇编语言完成设计并调试成功所以我们先经过一个复杂模型机设计试验来进行实际计算机设计和实现,然后安排了用CPLD 来实现一个CPU 中大部分功效设计试验,接着讨论了输入输出系统概念、分类、接口、寻址、基础控制方法等,依据后续微地址形成方法,确定每条微程序地址及分支转移地址。依据微指令格式,将微程序步骤中全部微指令代码化,转化成对应二进制代码,写入到控制存放器中对应单元中。在总调试前,先按功效模块进行组装和分调,因为只有各功效模块工作正常后,才能确保整机运行正确。当全部功效模块全部调试正常后,进入总调试。连接全部模块,用单步微指令方法实施机器指令微程序步骤图,当全部微程序步骤图检验完后,若运行结果正确,则在内存中装入一段机器指令,进行其它运行方法等功效调试及实施指令正确性验证。在验证正确后再自己修改几条微程序,再调试验证是否达成自己目标。
二、 总体设计方案
1. 复杂模型机逻辑框图
以控制器为中心,首控制器从指令寄存器取得指令,编译指令,再输出微控制信号,控制ALU运算,PC加一,而且从RAM中取出数据运算,运算后再把结果经过数据总线存到RAM,在指令寄存器读去下一条指令,依次循环。
图1.1 复杂模型计算机逻辑框图
2. 用框图语言表示模型机指令实施步骤
图2.1 模型计算机逻辑框图
三、 数据格式和寻址方法设计
1. 数据格式
模型机要求采取定点补码表示法表示数据,且字长为8位,其格式以下:
7
6543210
符号
尾 数
其中第 7 位为符号位,相对于十进制数值表示范围是:-2 7£X£2 7-1。
2. 模型机寻址方法
操作数寻址就是寻求形成操作数在主存中地址方法。
设指令格式以下:
操作码(OP) 寻址特征 形式地址
形式地址(D):指令地址字段中给出地址。
有效地址(EA):形式地址经过一定计算而得到操作数实际地址。
常见寻址方法以下:
(1)隐含寻址:指令中不指出操作数地址,而是隐含在累加器或堆栈等,由它们给出操作数。
(2)立即寻址:指令地址字段指出不是操作数地址,而是操作数本身。即数据 data = D。
(3) 直接寻址:操作数地址直接在指令中给出,即操作数有效地址为
EA = D。
(4)间接寻址:指令形成地址 D 在主存对应单元中内容是操作数地址,即操作数有效地址为
EA =(D)。
(5)寄存器寻址:指令中给出是寄存器号 R,操作数就是寄存器中内容,即 data=(R)。
(6) 寄存器间接寻址:指令中给出是寄存器号 R,而操作数地址就是寄存器中内容,
即 EA =(R)。
(7)相对寻址:操作数地址为程序计数器 PC 中内容和指令中给出地址偏移量 D 之 和,位移量 D 通常以补码形式给出,可正可负。
即 EA=(PC)+D。
(8) 基址寻址:操作数地址为基址寄存器中内容和指令中给出地址偏移量 D 之和,即 EA=(R)基址 +D
(9)变址寻址:操作数地址为变址寄存器中内容和指令中给出地址偏移量 D 之和。
3. 指令格式
因为本模型机机器字长只有8位二进制长度,故使用单字长指令和双字长指令。依据要求,设计该模型机能实施不一样指令,例指令格式及功效以下:
(1) 算术逻辑运算指令
9 条算术逻辑指令名称、功效和具体格式见表 7.2-1。
表 7.2-1
算术逻辑运算指令用单字节表示,寻址方法采取寄存器直接寻址,其格式以下:
7654
32
10
OP-CODE
rs
rd
其中,OP-CODE 为操作码,rs 为源寄存器,rd 为目标寄存器,并要求:
Rs 或 rd
选定寄存器
00
01
10
R0
R1
R2
(2) 访问指令及转移指令
模型机设计 2 条访内指令,即存数(STA)、取数(LDA),2 条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
7 6
5 4
3 2
1 0
00
M
OP-CODE
RD
D
其中,OP-CODE 为操作码,rd 为目标寄存器地址(LDA、STA 指令使用)。D 为位移量 (正负均可),M 为寻址模式,其定义以下:
寻址模式 M
有效地址 E
说 明
00
01
10
11
E= D
E=(D)
E=(RI)+D
E=(PC)+D
直接寻址
间接寻址
RI 变址寻址
相对寻址
(3) I/O 指令
输入(IN)和输出(OUT)指令采取单字节指令,其格式以下:
其中,addr=01 时,选中“INPUT DEVICE”中开关组作为输入设备,addr=10 时,选中“OUTPUT DEVICE”中数码块作为输出设备。
(4) 停机指令
指令格式以下:
HALT 指令,用于实现停机操作。
四、 指令和微程序设计
1. 指令系统
本模型机共有16 条基础指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1 条。表X列出了各条指令格式、汇编符号、指令功效。根据系统提议微指令格式,参考微指令步骤图,将每条微指令代码化,译成二进制代码表, 表X 即为将图X微程序步骤图按微指令格式转化而成“二进制微代码表”。并将二进制代码表转换为联机操作时十六进制格式文件,见下表X。
24
23
22
21
20
19
18
17
16
1514 13
12 11 10
9 8 7
6
5
4
3
2
1
S3
S2
S1
S0
M
Cn
WE
A9
A8
A
B
C
μA5
μA5
μA5
μA5
μA5
μA5
要求,同一小组每个同学必需分析一条不一样机器指令微程序组成,说明组成该机器指令每一条微指令微命令(不一样控制信号组成)。
2. 修改微指令
确定要修改机器指令,从指令系统能够中找到该指令指令格式,修改rs或rd来修改机器指令。从微程序步骤图中找到条需要修改机器指令,明白该条机器指令由几条微指令组成,取需修改微指令序号,把序号先换成八进制,再换成十六进制;从源程序清单中找到换成十六进制序号,取序号后面六位数。把六位数中前两位数换成十六进制,在74LS181 逻辑功效表中看第一位数十六进制(即S3 S2 S1 S0)和微指令操作是否相符,以确定方法无误。然后把需修改微指令中S3 S2 S1 S0修改为想要微指令S3 S2 S1 S0。把第2位数十六进制前2个(即M Cn)进行修改。算术运算M=0,逻辑运算则M=1.有进位Cn=0,无进位Cn=1.把修改后结果写入源程序中即可。
五、 线路连接图
图5.1 复杂模型计算机逻辑框图
六、 微程序步骤及说明
1.调试程序
地址(H) 内容(H) 助记符 说明
$P00 44 IN 02 R0 INPUT device->R0
$P01 46 IN 02 R2 INPUT device->R2
$P02 A8 SBC R2 R0 R2-R0-CY->R0
$P03 81 MOV R0 R1 R0->R1
$P04 E5 RRC R1 R1 R1右移一位
$P05 F4 RLC R0 R1 R0R1->R0逻辑和
$P06 0C BZC 00 00 00->PC
$P07 00
2.微程序截图
经过取址把02存入到R0
图 6.1
经过取址把02存入到R2
图 6.2
把R2,R0值送到运算器中并运算,并把运算结果存入R0
图 6.3
把R0里面值转移到R1
图 6.4
把R1中数送到299芯片中进行右移,把右移后结果送到R1中。
图6.5
把经过上述步骤后R0,R1值送到运算器中进行逻辑和运算,并把运算结果存入R0
图6.6
清零操作
图6.7
3.源程序清单
$P0044
$P0146
$P02A8
$P0381
$P04E5
$P05F4 注释:逻辑和指令
$P060C
$P0700
$M00018108
$M0101ED82
$M0200C050
$M03BD8804注释:将该指令变为直接寻址方法,且将逻辑运算和变为AB
$M040198A0
$M0500E006
$M0600A007
$M0700E0A0
$M0801ED8A
$M0901ED8C
$M0A00A03B
$M0B018001
$M0C00203C
$M0D00A00E
$M0E01B60F
$M0F95EA25
$M10318283
$M1101ED85
$M1201ED8D
$M1301EDA6
$M14001001
$M15030401
$M16018016
$M173D9A01
$M18019201
$M1901A22A
$M1A01B22C
$M1B01A232
$M1C01A233
$M1D01A236
$M1E318237
$M1F318239
$M9001
$M21028401
$M2205DB81
$M230180E4
$M24018001
$M2595AAA0
$M2600A027
$M2701BC28
$M2895EA29
$M2995AAA0
$M2A01B42B
$M2B959B41
$M2C01A42D
$M2D65AB6E
$M2E0D9A01
$M2F01AA30
$M300D8171
$M31959B41
$M3A01
$M3301B435
$M3405DB81
$M35B99B41
$M360D9A01
$M37298838
$M38019801
$M3919883A
$M3A019801
$M3B070A08
$M3C068A09
七、 课程设计收获及体会
这次课程设计对于我个人有很大收获,对于复杂模型计算机设计有了一定了解,意识到专业知识关键性,要想学好一定要下狠功夫,没有付出,怎有回报,同时也体会到理论知识了解必需依靠实践是有力结合,才能对学习知识融会贯通,了解透彻,实践永远是检验真理唯一标准,我期望在学习过程能够多开展这么有意义课程设计,对于学生知识提升有很大帮助,期待下一次这么课题课程设计,我将一如既往热情地投入到学习过程中,求知,求学,愈加好学好专业,优异完成专业任务,丰富自己专业知识,求得愈加快成长。
因为课程设计是要求将以前在课堂上学理论知识利用到实际设计当中去,所以在设计过程中,我们一定会碰到多种多样问题。为了处理这些问题,我们一定会仔细认真去翻阅自己以前学过不过认为已经了解熟悉东西。这在无形中帮助我们加深对所学知识了解及利用能力,而且让我们明白什么地方是我们真正需要去关注。而且这么我们对书本和以前学过知识有了一个愈加好总结和了解。而课程设计需要我们不仅经过翻阅复习以前学过知识而且需要查阅更多相关信息。经过这次课程设计,我更深入了解了计算机组成,尤其对数据选择器、移位器、加法器、运算器、存放器和微程序控制器,有了很透彻认识。而且对线路连接和模型机各个硬件结构,和微程序微指令部分编制和设计有了一定了解。从一个微观角度愈加了解计算机模型机,这么我对于计算机了解愈加深入。对于计算机工作原理也有部分更深入认识。还体会到了实践动手和合作关键性,和做一件事要有计划和次序。
八、 参考资料
[1] 陈华光. 计算机组成原理[M].北京:机械工业出版社,
[2] 杨小龙. 计算机组成原理和系统结构试验教程[M],西安:西安电子科技大学出版社,
计算机和通信学院课程设计评分表
课题名称:复杂模型计算机设计
项 目
评 价
设计方案合理性和发明性
设计和调试结果
设计说明书质量
答辩陈说和回复问题情况
课程设计周表现情况
综合成绩
老师署名:
日 期:
展开阅读全文