计算机组成原理课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
课程名称计算机组成原理
课题名称复杂模型计算机的设计
专业网络工程
班级 0901班
学号 200903120126 姓名
指导教师陈华光、陈多、唐北平
2011年 9 月2 日
湖南工程学院
课程设计任务书
课程名称计算机组成原理
课题复杂模型计算机的设计
专业班级网络工程0901班
学生姓名
学号200903120126
指导老师陈华光、陈多、唐北平审批陈华光
任务书下达日期 2011年7月8 日
任务完成日期2011年9月2日
一、设计内容与设计要求
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.成绩评定
程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书的质量高低;答辩时回答问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。
二、进度安排
第 1周-2 周,具体安排如下:
星期时间班级内容地点
第1周
一上午8:00-12.00 计算机0981 接线E-510
二下午2.3:0-6.30 计算机0981 系统调试实现E-510
三上午8:00-12.00 计算机0981 调试E-510
三下午2.3:0-6.30 计算机0901/02 调试E-510
四下午2.3:0-6.30 计算机0901/02 接线E-510
五下午2.3:0-6.30 计算机0901/02 系统调试实现E-510
一下午2.3:0-6.30 网工0901/02接线E-510
二上午8:00-12.00 网工0901/02 调试E-510
四下午2.3:0-6.30 网工0901/02 系统调试实现E-510
目录
一课题的主要功能 (1)
二总体设计方案 (2)
2.1 复杂模型机的逻辑框图 (2)
2.2用框图语言表示模型机的指令执行流程 (3)
三数据格式和寻址方式的设计 (3)
3.1数据格式 (3)
3.2模型机的寻址方式 (4)
3.3 指令格式 (5)
四指令和和微程序的设计 (8)
4.1指令系统 (8)
4.2微程序的设计 (8)
五线路连接图 (12)
六微程序流程及说明 (13)
七课程设计的收获及体会 (17)
八参考资料 (19)
一课题的主要功能
此次课题的目的是完整设计一台模型计算机,进一步建立整机的概念。
借助于TDN-CM++的内部可编程资源,运算器单元,控制存储器,微命令寄存器,地址转移逻辑,微地址寄存器,控制时序信号单元,寄存器组,总线,输入\输出单元等,用微程序的方式设计一台的模型计算机。
设计包括模型计算机组成的设计,指令系统的设计,并用汇编语言完成设计并调试成功因此我们先通过一个复杂模型机的设计实验来进行实际的计算机设计和实现,然后安排了用CPLD 来实现一个CPU 中的大部分功能的设计实验,接着讨论了输入输出系统的概念、分类、接口、寻址、基本控制方式等,根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。
根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码,写入到控制存储器中的相应单元中。
在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的运行正确。
当所有功能模块都调试正常后,进入总调试。
连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功能调试及执行指令的正确性验证。
在验证正确后再自己修改几条微程序,再调试验证是否达到自己的目的。
二总体设计方案
2. 1 复杂模型机的逻辑框图
以控制器为中心,首控制器从指令寄存器取得指令,编译指令,再输出微控制信号,控制ALU的运算,PC加一,并且从RAM中取出数据运算,运算后再把结果通过数据总线存到RAM,在指令寄存器读去下一条指令,依次循环。
图1 复杂模型计算机逻辑框图
2.2 用框图语言表示模型机的指令执行流程
图2 模型计算机逻辑框图
三数据格式和寻址方式的设计
3.1 数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
76543210
符号尾数
其中第 7 位为符号位,相对于十进制数值表示范围是:-2 7≤X≤2 7-1。
3.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.3 指令格式
由于本模型机机器字长只有8位二进制长度,故使用单字长指令和双字长指令。
根据要求,设计该模型机能执行的不同指令,例指令格式及功能如下:
(1) 算术逻辑运算指令
9 条算术逻辑指令的名称、功能和具体格式见表 3.1-1
表 3.1-1
算术逻辑运算指令用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
76543210
OP-CODE
rs rd
其中,OP-CODE 为操作码,rs 为源寄存器,rd 为目的寄存器,并规定:
(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 为寻址模式,其定义如下:
Rs 或 rd 选定的寄存器
00 01 10
R0 R1 R2
寻址模式 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 指令,用于实现停机操作。
四指令和和微程序的设计
4.1 指令系统
本模型机共有16 条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1 条。
表X列出了各条指令的格式、汇编符号、指令功能。
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,表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
4.2 微程序的设计
修改程序:把ADC机器指令的进行了修改,本来是执行:DR0+DR2→BUS→R0,把微程序改了,这条指令就执行:DR0或DR2→BUS→R0,其中把这条微程序$M2B959B41改成M2B159B41就执行上条指令。
得到的结果如图所示:
在微程序流程图中找到ADC执行的数序号为53(八进制数),转化为十六进制数为2B。
在给定的微程序中找到含2B的程序,为$M2B959B41将9,5转化为2进制数为1001,0101.其中,1001代表执行的运算,0101中的前两位中的0代表M=0,1代表Cn=1,对照74LS181的逻辑功能表,找到ADC所代表的是F=A加B,在F=A加B所在列寻找合适的算法即可。
我找到的F=A或 B。
其S3到S0为0001。
转化为十进制数为1.将$M2B959B41中的9改为1,保存微程序。
修改后测试程序:
地址(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 ->R0
$P03 81 MOV R0 R1 R0->R1
$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
图1输入03至R0
图2输入03至R0
图3执行后得到正确结果送至R1
五线路连接图
六微程序流程及说明
(1)第一条指令是通过取址把INaddress中的数03存入到R0,如图1所示
图1
(2) 第二条指令是通过取址把INaddress中的数03存入到R2,如图2所示
图2
(3)第三条指令是把R2中的数03送入到DR1中(图3),把R1中的数03送入到DR2中(图4),再在算数逻辑运算器ALU中对DR1和DR2中的数进行求或运算后存入R0(图5)。
图3
图4
(4) 第四条指令MOV是把R0中的数送到R1,此时R1变成02,如(图6)所示
(5)第五条指令是移位运算,把R1中的数送到299-BUS中进行移位运算,在将
移位后的结构存入R1(图7)
图7
七课程设计的收获及体会
经过这次课程设计我了解了很多知识,也学到了一些课本中没有的知识点,实践给我们带来了很多快乐,但是在这快乐中我们有着艰辛,在我们接完线的时候,去运行机器总是出错,我们一步一步的检查,到最后一遍又一遍的重新连线,到最后终于成功了,心里有着一般人没有的喜悦。
计算机设计与实践实验课程不仅仅是对理论的验证,重要的是技术训练和能力培养,包括动手能力、分析问题和解决问题的能力、书写能力和表达能力、团队协作能力等的培养也就是要注重学生的工程能力,培养学生完成项目实践的能力,同时,要培养学生交流的能力,能够很好地表达自己的设计思想,这也是工程实践中必不可少的。
因此,在整个课程中,指导教师多次与学生交流设计方案,让学生在与老师的交流中逐渐理解处理器的工作原理。
同时,培养学生书写报告的能力,很多学生只注重编程序,而不重视课程报告的撰写,这需要老师的引导和成绩比例分配的导向,让学生真正理解报告不仅是写给老师看的,更重要的是真正通过报告的形式提交自己的设计思想。
通过口头交流和文字的书写,引导学生明确设计思路,体会整机的设计思想,使“设计”真正成为完成该“项目”的第一步。
这次课程设计对于我个人有很大的收获,对于复杂模型计算机的设计有了一定的了解,意识到专业知识的重要性,要想学好一定要下狠功夫,没有付出,怎有回报,同时也体会到理论的知识的理解必须依靠实践是的有力结合,才能对学习的知识融会贯通,了解透彻,实践永远是检验真理的唯一标准,我希望在学习的过程能够多开展这样的有意义的课程设计,对于学生的知识的提高有很大的帮助,期待下一次这样课题的课程设计,我将一如既往热情地投入到学习的过程中,求知,求学,更好学好专业,优秀完成专业任务,丰富自己的专业知识,求得更快成长!
八参考资料
[1] 陈华光. 计算机组成原理[M].北京:机械工业出版社,2004
[2] 杨小龙. 计算机组成原理与系统结构实验教程[M],西安:西安电子科技大学出版社,2004
附件(程序清单):
$P0044
$P01B0
$P0245
$P03C1
$P0486
$P050c
$P0600
$M00018108
$M0101ED82
$M0200C050
$M0300A004
$M0400E0A0
$M0500E006
$M0600A007
$M0700E0A0
$M0801ED8A
$M0901ED8C
$M0A00A03B
$M0B018001
$M0C00203C
$M0D00A00E
$M0E01B60F
$M1001ED83 $M1101ED85 $M1201ED8D $M1301EDA6 $M14001001 $M15030401 $M16018016 $M173D9A01 $M18019201 $M1901A22A $M1A01B22C $M1B01A232 $M1C01A233 $M1D01A236 $M1E318237 $M1F318239 $M20009001 $M21028401 $M2205DB81 $M230180E4 $M24018001 $M2595AAA0 $M2600A027 $M2701BC28 $M2895EA29 $M2995AAA0 $M2A01B42B $M2BB59B41 $M2C01A42D $M2D65AB6E
$M2F01AA30 $M300D8171 $M31959B41 $M32C19A01 $M3301B435 $M3405DB81 $M35699B41 $M36CD9A01 $M37298838 $M38019801 $M3919883A $M3A019801 $M3B070A08 $M3C068A09
计算机科学与技术系课程设计评分表
课题名称:复杂模型计算机的设计
项目评价设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
答辩陈述与回答问题情况
课程设计周表现情况
综合成绩
教师签名:
日期:。