带移位基本模型计算机的设计-课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
带移位基本模型计算机的设计-课程设计报告
课程设计报告
课程名称计算机组成原理
课题名称带移位基本模型计算机的设计
专业
班级
学号
姓名
指导教师
2014年9 月14 日
xxx工程学院
课程设计任务书
课程名称计算机组成原理
课题带移位基本模型计算机的设计
专业班级
学生姓名
学号
指导老师
审批
任务书下达日期2014年9月3 日
任务完成日期2014年9 月14 日
一、设计内容与设计要求
1.设计内容
模型机是由五个部分组成的计算机,通过它可以理解计算机整机的结构及功能,理解CPU、存储器、中断控制器、总线的结构及实现逻辑和各部件之间的接口关系。
本次课程设计的主要内容是利用西安唐都公司的TDN-CM++的内部可编程资源,设计一个模型计算机。
本课程设计的主要目的是通过部件级的模型机的设计和调试,使学生理解计算机由5部分组成,掌握计算机的工作过程,从“指令—微指令—微操作”概念的理解,从而清晰地建立计算机的整机概念,并培养学生分析和解决实际问题的能力,同时增强学生的动手能力。
2.设计要求
(1) 借助于TDN-CM++的内部可编程资源,运算器单元,控制存储器,微命令寄存器,地址转移逻辑,微地址寄存器,控制时序信号单元,寄存器组,总线,输入\输出单元等,用微程序的方式设计一台的模型计算机。
设计包括模型计算机组成的设计,指令系统的设计,并用汇编语言完成设计并调试成功。
(2) 基本模型机的设计要求(P98) 复习
定义五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下:
助记符机器指令码说明
IN () 0000 0000 “I NPUT DEVICE”→R0
ADD addr 0001 0000 ××××R0+[addr] →R0
STA addr 0010 0000 ××××R0→ [addr]
OUT addr 0011 0000 ××××[addr] →LED
JMP addr 0100 0000 ××××addr→PC
其中IN为单字长(8位),其余为双字长指令,××××××××为addr对应的二进制地址码。
参考程序(实验已做过)
地址(二进制)内容(二进制)助记符说明
0000 0000 0000 0000 IN R0 INPUT DEVICE-〉R0 0000 0001 0001 0000 ADD [0AH],R0 R0+[0AH] -〉R0
0000 0010 0000 1010
0000 0011 0010 0000 STA R0,[0BH] R0 -〉[0BH]
0000 0100 0000 1011
0000 0101 0011 0000 OUT [0BH] [0BH] -〉LED
0000 0110 0000 1011
0000 0111 0100 0000 JMP 00H 00H -〉PC
0000 1000 0000 0000
0000 1001
(3)课程设计内容及要求:
以下是带移位运算的模型机的设计与实现:
移位运算的模型机的设计和实现:
(1)IN 输入“INPUT DEVICE”->R0,
(2)ADD [13H] R0+[13H]->R0 ,
(3)RLC 带进位左移
(4)IN “INPUT DEVICE”->R0,
(5)RRC 带进位右移
(6)RL 左环移
(7)STA [0EH] R0->[0EH]
(8)OUT [0EH] [0EH] ->BUS
(9)JMP [00H] 00H->PC
(4)在规定的时间内以小组为单位完成相关的系统功能实现、数据测试和记录并进行适当的分析。
要求,同一小组的每个同学必须分析一条不同的机器指令的微程序的组成,说明组成该机器指令的每一条微指令的微命令(不同的控制信号的组成)。
(5)按本任务书的要求,编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订。
(6)在规定的时间内,请各班学习委员收齐课程设计报告在星期五交陈华光老师。
3.分组及安排
分4组,学号除以4取余数,余数为0的同学做带移位基本模型机1、余数
为1的同学做复杂模型机1,余数为2的同学做复杂模型机2,余数为3的同学做复杂模型机3,每个组必须独立完成指定的题目,每个同学按要求独立完成课程设计报告。
4.成绩评定
程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书的质量高低;答辩时回答问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。
二、进度安排
附:
课程设计报告装订顺序:封面、任务书、目录、
正文、评分表、附件(A4大小的图纸及程序清单)。
正文总字数要求在5000字以上(不含程序源代码)。
目录
一、课题的主要功能
二、总体设计方案
1、模型机的逻辑框图
2、用框图语言表示模型机的指令执行流程
三、数据格式和寻址方式的设计
1、数据格式
2、指令格式
四、指令和微程序的设计
五、线路连接图
六、微程序流程及说明
七、课程设计的收获及体会
八、参考资料
一、课题的主要功能
本课题设计的主要目的是通过对复杂模型机的建立和通过部件级的模型机的设计和调试,使学生理解计算机由5部分组成,掌握计算机的工作过程,让学生去了解首控制器是如何去工作,是怎么样一步一步完成所给的指令。
从取指令,编译指令,输出等一系列的工作是如何在控制器里运行的。
让大家清晰地了解计算机的整机概念,并培养学生分析和解决实际问题的能力。
二、总体设计方案
(1) 带移位运算模型机的逻辑框图
以控制器为中心,首控制器从指令寄存器取得指令,编译指令,再输出微控制信号,控制ALU的运算,PC加一,并且从RAM中取出数据运算,运算后再把结果通过数据总线存到RAM,在指令寄存器读去下一条指令,依次循环。
本实验是在实验(一)基本模型机的基础上搭接移位控制电路(74LS299芯片),实现移位控制运算,原理图如图1所示。
图1 带移位运算的模型计算机逻辑框图
2、用框图语言表示模型机的指令执行流程
用框图语言表示模型机的指令执行流程
图2 基本模型机的指令执行流程
实现移位控制运算。
因此实验中新增4条移位运算指令:RL(左环移);RLC 带进位左环移);RR(右环移);RRC(带进位右环移),其指令格式如下:
操作码
RR 01010000
RRC 01100000
RL 01110000
RLC 10000000
以上4条指令都为单字长指令(8位)。
RR为将R0寄存器中的内容循环右移一位。
RRC为将R0寄存器中的内容带进位右移一位,它将R0寄存器中数据右边第一位移入进位,同时将进位寄存器的数移至R0寄存器的最左位。
RL为将R0寄存器中的数据循环左移一位。
RLC为将R0寄存器中的数据带进位循环左移一位。
环移的信号如下
299_B S1 S0 M 功能
0 1 0 0 循环右移
0 1 0 1 带进位循环右移
0 1 1 0 循环左移
0 0 1 1 带进位循环左移
同样,本实验为了向RAM中装入程序和数据,设置了三个控制台操作微程序,同基本模型机完全一致(图2的右边部分)。
设计带移位控制的微程序流程图如图3所示:
图3 带移位控制的模型机的指令执行流程
三、数据格式和寻址方式的设计
1、数据格式
7654321
0
符号尾数
其中第 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) 算术逻辑运算指令
算术逻辑运算指令用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
其中,OP-CODE 为操作码,rs 为源寄存器,rd 为目的寄存器,并规定:
5条算术逻辑指令的名称、功能和具体格式见图2
为了实现移位控制运算。
因此实验中新增4条移位运算指令:RL(左环移);RLC带进位左环移);RR(右环移);RRC(带进位右环移),其指令格式如下:操作码
RR 01010000
RRC 01100000
RL 01110000
RLC 10000000
以上4条指令都为单字长指令(8位)。
(2) 访内指令及转移指令
模型机设计 2 条访内指令,即存数(STA)、取数(LDA),2 条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
其中,LDA、STA 指令使用)。
D 为位移量(正负均可),M 为寻址模式,其定义如下:
四、指令和和微程序的设计
1.指令系统
以下是带移位运算的模型机的设计与实现:
1.移位运算的模型机的设计和实现:
(1)IN 输入“INPUT DEVICE”->R0,
(2)ADD [13H] R0+[13H]->R0 ,
(3)RLC 带进位左移
(4)IN “INPUT DEVICE”->R0,
(5)RRC 带进位右移
(6)RL 左环移
(7)STA [0EH] R0->[0EH]
(8)OUT [0EH] [0EH] ->BUS
(9)JMP [00H] 00H->PC 2.移位运算的模型机的设计和实现:
地址(二进制) 内容(二进制) 助记符说明
00000000 00000000 IN 输入“INPUT DEVICE”->R0,//任意输入数据
00000001 00010000 ADD[13H] R0+[13H]->R0
00000010 00000011
00000011 10000000 RLC 带进位左移
00000100 00000000 IN “INPUT DEVICE”->R0,
00000101 01100000 RRC 带进位右移
00000110 01110000 RL 左环移
00000111 00100000 STA[0EH] R0->[0EH] 00001000 00001l10
00001001 00110000 OUT[0EH] [0EH] ->BUS 00001010 00001110
0000101l 01000000 JMP 00H 00H->PC
00001100 00000000
00000011 00100000 自定,20H(32D)
00001110
00010011 00010001
机器指令程序微指令程序
$P0000
$P0110
$P0203
$P0380
$P0400
$P0560
$P0670
$P0720
$P080E
$P0930
$P0A0E
$P0B40
$P0C00
$P1320
$M10011000 $M1183ED01 $M00088101 $M0182ED01
将微程序流程图按微指令格式转化而成的“二进制微代码表”。
2 2
0 0 0 0 0 0 0
1
0 1 0 0 0 0 0 0 0 0 1 0 1 1 1
2 3 0 0 0 0 0 0 0 1
1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
2 4 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1 1 0 0 0
2 5 0 0 0 0 0 1 1 1
0 0 0 1 0 1 0 0 0 0 0 0 0 0 1
2 6 0 0 0 0 0 0 0 0
1
1 0 1 0 0 0 1 1 0 0 0 0 0 0 1
2 7 0 0 0 0 0 1 1 1
0 0 0 1 0 1 0 0 0 0 1 0 0 0 0
3 0 0 0 0 0 0 1 1 0
1
0 0 0 1 0 1 0 0 0 0 1 0 0 0 1
本模型机共有8 条基本指令,其中算术逻辑指令X条,访问内存指令和程序控制指令X条,输入输出指令2条,其它指令1 条。
表7.2-1 列出了各条指令的格式、汇编符号、指令功能。
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,表3 即为将图X 的微程序流程图按微指令格式转化而成的“二进制微代码表”。
并将二进制代码表转换为联机操作时的十六进制格式文件,见下表 2。
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 C
n
W
E
A
9
A
8
A B C μA
5
μA
5
μA
5
μA
5
μA
5
μ
A
5
五、线路连接图
六、微程序流程及说明
1、以下是基本模型机和带移位运算的设计和实现的调试的基本步骤:
①连续运行
A、将编程开关置为RUN(运行)状态,“STEP”置为“STEP ”,“STOP”置为“RUN”。
B、使CLR1→0→1 ,微地址寄存器清零,程序计数器清零。
按动START键,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。
C、停机后,可检查存数单元(0B)中的结果是否和理论值一致。
D、在联机运行程序时,进入DEBUG调试界面,使CLR1→0→1,序的首地址为00H,按相应功能键即可联机运行、调试程序。
②单步运行程序
1、运用联机软件的传送文件功能(F4)将该格式文件传入实验系统。
2、使编程开关处于“RUN”状态,STEP处于“STEP”状态,STOP处于(STOP)状态。
3、拨动总清开关CLR(0->1),微地址清零,PC计数器清零,程序首地址为00H。
4、按F6进入DEBUG界面,再按相应的功能键可以进入分步调试。
2、调试程序步骤如下
(1)从实验电路中装入第一个加数10H(00010000)到R0中,如图1
图1
(2)将R0中的装入加数10H(00010000)装入如寄存器DR1中,并将从[16H]中读取的另一个加数10H(0001000)装入寄存器DR2中,然后通过ALU预算器进行两个寄存器的数据相加得20H(00100000),然后将结构送入R0中,如图2。
图2
(3)进行带进位左移操作,的结构40H(01000000),并将结果送入R0中,如图3。
图3
(4)将结果40H(01000000)左移,的80H(10000000),并且将结果送入R0中,如图4。
图4
(5)将结果80H通过ALU输出,如图5。
图5
分析:从实验电路中装入第一个加数 10H(0001000),并且从内存中读取另一个加数10H(00010000),10H+10H=20H(00100000)。
然后再将结果20H(00100000)进行RRC带进位的左移操作,OF=0,得结果为40H(010000000)。
最后将结果40H(00100000)进行RL左移,得结果为80H(10000000),从而可得理论值与实验值相符合。
七、课程设计的收获及体会
经过一周的课程设计收获很多,这次的课程设计题目是基本模型机的设计与实现,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
并为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念。
我们是两人一组,接线接了两三次,同样的问题,我认为是高低电平没有对好,所以总是错误。
CPU就像是人的大脑,我们手中的线就像是一根一根的神经,错了一丁点就走不通了。
在陈老师的指导下,同组队员的共同合作下在一周时间基本实现了课程设计的基本要求和功能,完成测试后,单步运行一条微指令,每按动一次START键即单步运行一条微指令。
对照微程序流程图,观察微地址显示灯是否和流程一致。
运行结束后,可检查存数单元(0B)中的结果是否和理论值一致。
这样就是完成了实验了。
另外就是通过这次的计算机组成原理的课程设计,我对计算机内部元件的工作原理有了进一步的了解与认识。
许多在课堂上没有听懂,没有学会的知识在课程设计的过程中暴露无遗,不过积极的方面是通过课程设计,我把这些知识上的明显漏洞给补上了。
我对机器指令及微指令的的编码方法不了解,对计算机各部件的组成和工作原理也不是很理解。
为了弄清楚这些问题,我又把课本拿出来重新学习相关的章节。
虽然理论知识很重要,但是像我们这种工学类的课程,更重要的还是实践。
理论联系实际,才能更好的掌握所学的知识。
在机房上机的时候也遇到了一些问题,不过在请教了同学和老师之后,这些问题也都一个个迎刃而解。
八、参考资料
[1] 陈华光. 计算机组成原理[M].北京:机械工业出版社,2004
[2] 杨小龙. 计算机组成原理与系统结构实验教程[M],西安:西安电子科技大学出版社,2004
附录
组号:25号
源代码
机器指令程序
$P0000
$P0110
$P0216
$P0320
$P040B
$P0530
微指令程序
$M00108101
$M0182ED01
$M0248C000
$M0304E000
$M0405B000
$M0506A201
$M06019A61
$M070DE000
$M08011000
$M0983ED01
$M0A87ED01
$M0B8EED01
$M0C96ED01
$M0D018202
$M0E0FE000
$M0F15A000
$M1092ED01
$M1194ED01
$M1217A000
$M13018001
$M14182000
$M15010A07
$M1681D100
$M17100A07
$M18118A06
计算机科学与技术系课程设计评分表课题名称:带移位模型计算机的设计
教师签名:
日期:
(注:1.此页附在课程设计报告之后;2.综合成绩按优、良、中、及格和不及格五级评定。
)。