计算机组成原理
实验报告
专业 计算机科学与技术
班级 191142
学号
姓名
20##年12月
1.在试验六和实验八的基础上,设计新的功能,并设计新的微代码表实现此功能。
2.熟悉掌握24位微代码的含义
EL-JY-II型计算机组成原理实验系统一套,排线若干。
三.模型机结构:
图1 模型机结构框图
图1中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。微控器部分控存由U13—U15三片2816构成。除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。
存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。
输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由16位电平开关及两个三态传输芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或串口输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。
注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。
1.数据格式
本实验计算机采用定点补码表示法表示数据,字长为16位,其格式如下:
其中第16位为符号位,数值表示范围是:-32768≤X≤32767。
2.指令格式
算术逻辑指令
设计9条单字长算术逻辑指令,寻址方式采用寄存器直接寻址。其格式如下:
其中OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
9条算术逻辑指令的名称、功能和具体格式见表1。
4.设计微代码
微程序设计的关键技术之一是处理好每条微指令的下地址,以保证程序正确高效地进行。本系统采用分段编码的指令格式,采用断定方式确定下一条微指令的地址。
图2 断定方式微程序控制部件示图
每条微指令由24位组成,
其控制位顺序如下:
.
MS24—MS16对应于微指令的第24—16位,S3S2S1S0MCn为运算器的方式控制, WE为外部器件的读写信号,‘1’表示写,‘0’表示读;控制总线上的WR为外部读写控制电路的输出,其控制电路为:
1A、1B用于选通外部器件,通常接至底板IO控制电路的1A1B端,四个输出Y0Y1Y2Y3接外部器件的片选端。(注:Y3被系统占用,用于输入中断,Y0Y1Y2能被用户使用)。I/O控制电路由一片74LS139构成,用于为外部器件提供选通信号。其原理和逻辑关系如下图所示:
图6 I/O控制电路
微指令中的uA5-uA0为6位的后续微地址。
F1、F2、F3三个字段的编码方案如表2:
表2 F1、F2、F3编码方案
功能由S1、S0、M控制,具体功能如下表:
图5中MS9—MS7对应于微指令中的F3,经锁存译码后产生6个输出信号:P1、P2、P3、P4、AR、LPC。其中P1、P2、P3、P4位测试字,其功能是对机器指令进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支和循环运行;AR为运算器的进位输出控制;LPC为程序计数器的时钟控制。以上信号均为‘1’有效。
这次实验我们创新加入抑或运算这一功能,所以微代码表如下:
设计三个控制操作微程序:
存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。
存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。
启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行。
注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式时由监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关来控制。
系统涉及到的微程序流程见图9(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。
图8 指令译
图9 微程序流程图(1)
机器指令的执行过程如下:首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。之后必须对操作码进行P1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程(其原理见图8)。然后才顺序执行该段微程序,这是真正的指令执行过程。
在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令,对应于图9中01、02、75地址(8进制)的微指令。75地址为“译码”微指令,该微指令的操作为P(1)测试,测试结果出现多路分支。本实验用指令寄存器的前4位(I7-I4)作为测试条件,出现12路分支,占用12个固定微地址单元。如I7—I4相同,则还需进行P2测试,以指令寄存器的I3、I2位作为测试条件,以区分不同的指令,如MOV指令和IN、OUT指令。
计算53H抑或21H
机器指令:
运算结果为72与计算结果一致,实验成功
经过这次课程设计,我体会到自己所学的东西太少了,很多都不知道。虽然这次设计的只是一个小程序,但是这其间我还是学到了不少东西。在这次课程设计的过程,有些很基本的知识出现记混淆的现象,通过查书及询问同学,最终明白了。
本次课程设计我们要设计一台微程序控制的模型机,以对计算机能有一个整机的概念,完成对计算机组成原理这门课程的综合应用,达到学习本书的作用。作为一个计算机系学生这是必需掌握的,使我们对数据选择器,移位器,加法器,运算器,存储器和微程序控制器,有了比较透彻的认识。
由于计算机设计的部件较多,结构原理较复杂,对于我们这样的初设计者来说感到无从下手,所以我们在整个过程中采取由浅入深,由简单到复杂的放法,通过这次设计,使我们能清楚的了解计算机的基本组成,基本原理和设计步骤,设计思路和调试步骤,最终能清晰的建立起整机概念,为独立完成计算机设计奠定了基础。
课程设计结束了,从中我们也学到了不少知识。虽然计算机组成原理的课程设计与学习已经结束,可我们学习之路并没有结束,我们会继续努力学习其相关的知识,以适应社会的发展与需要,这样才能真正成为一名合格的大学生。
在此次的设计中,感谢老师对我们的帮助和指导。过程还不够完善,希望老师继续指导。
长治学院
课程设计报告
课程名称:计算机组成原理课程设计
设计题目: 设计一台性能简单的计算机
系 别: 计算机系
专 业: 计科1101班
组 别: 第三组
学生姓名: 学 号:
起止日期:2013年7月4日~ 20##年7月10日
指导教师: 张剑妹
目 录
一、课程设计的目的 ----------------------------------1
二、设计要求 ----------------------------------------1
三、设计的方法及过程---------------------------------2
3.1整机设计 --------------------------------------2
3.1.1 根据设计要求正确设置正确设置多路开关-------2
3.1.2操作控制信号及其实现方式-------------------2
3.1.3根据接线表画出整机的线路图-----------------2
3.2.设计指令系统----------------------------------3
3.3.设计微指令及指令的微程序----------------------4
3.3.1设计微地址 --------------------------------4
3.3.2写出指令的执行流程-------------------------3
3.3.3编写指令的微程序---------------------------5
3.4.编写并执行应用程序----------------------------8
四、心得体会-----------------------------------------7
一 课程设计的目的
通过课程设计更清楚地理解下列基本概念:
(1)计算机的硬件基本组成;
(2)计算机中机器指令的设计;
(3)计算机中机器指令的执行过程;
(4)微程序控制器的工作原理;
(5)微指令的格式设计原理;
二 设计要求
题一研制以台性能如下的实验计算机。
(1)没有外部设备;
(2)运算器采用单累加器多寄存器结构;
(3)操作数寻址方式有:立即数寻址、寄存器寻址、直接寻址;
(4)设计由如下指令组成的指令系统,其中L为累加器A,Jx为通用寄存器。将指令的二进制编码填入表中;
(5)计算各指令的微地址并写出各指令的微程序;
(6)将下列程序手工汇编、手工装入并运行,察看运行结果。
ORG 100
START: YiDONG L,#3 (5F03H)
YIDONG J1,#05 (5905H)
JIA L,J1
FASONG 00D
TINGJI·
(7)编写汇编语言程序实现如下功能:将内存某两个单元的数据相加后存入另一个单元中,若有进位,则在00B单元中存入数据0,否则在00B单元中存入数据1;
(8)将该应用程序机器汇编、机器装入、并连续运行,察看运行结果并验证程序的正确性;
三 设计的方法及过程
3.1 整机设计
3.1.1 根据设计要求正确设置正确设置多路开关
(1) 设计单累加器多寄存器结构的运算器, 要求开关KA、KB、KC、KR分别置左、右、右、下。
(2) 为了便于微指令的设计, 标出在运算器中数据的传输方向。
3.1.2操作控制信号及其实现方式
微操作控制信号设计的一般原则
1) 对于电平有效的操作控制信号, 可采用微指令码直接控制。
2) 对脉冲型和电平跳变信号, 需外加门电路实现。
3) 对需多个控制信号的器件,通常将某些信号固定好, 其他信号接某个Mi。
设计实验接线表
按模块逐个归纳整理, 明确各模块中各器件各控制信号的处理方法, 将其分别接在某个Mi上.
1) 运算器模块
累加器A: X0----M16 X1----M17 CA----φ
累加暂存器ACT: CC----φ CG----M5
暂存器TMP: CT-----+5V OT----M10
算逻单元: S3-S0----M23-M20 Cn----M19 M----M18
输出缓冲器BUF: OB----M8
进位产生线路: P2-P0不用 SB、SA----X1X0 CP----M13+φ
2) 寄存器堆模块
RR----M1 WR----M0·φ A、B将有指令部件控制
3) 指令部件模块
指令寄存器IR1: GI----M7 CI----φ
指令寄存器IR2: CL---- M14·φ
IR1、IR2输出控制: OI----M15
程序计数器PC: P+1----M6 CLR----+5V CK----φ
LP由LP’通过M9间接控制
PC输出控制: PCO由P+1通过M6间接控制
4) 内存模块: RC----M2(RC’)+φ WC----M3(WC’)+φ
5) 总线缓冲模块: B1、B3----RF B2----RC’
6)微程序控制模块
微程序计数器MPC: MCLR----RO MCLK----PO
MLD----M4 MP+1----+5V
操作码散转控制: MD10-MD6----GND
MD5-MD2----I7-I5,I2 MD1-M0----+5V
微指令寄存器: MIG----GND MICP----启停模块产生
7) 启停和时序模块: DR----M5 RCP----φ
3.1.3根据接线表画出整机的线路图如下:
图1. 整机逻辑框图
3.2 设计指令系统
表一 指令系统
3.3 设计微指令及指令的微程序
3.3.1计算微地址
微程序入口地址形成方法:
MD10 MD9 MD8 MD7 MD6 MD5 MD4 MD3 MD2 MD1 MD0
0 0 0 0 0 I7 I6 I5 I2 1 1
取指微指令放在000H处。
表二 微地址
3.3.2写出指令的执行流程
表三 指令的执行流程
3.3.3编写指令的微程序
指令的微地址及微指令
M23 M22 M21 M20 M19 M18 M17 M16 M15 M14 M13
S0 S1 S2 S3 X0 X1 M /CN / CP CL
M12 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0
OI OB LP OT CG MLD DR P+1 GI WR RR RC WC
表四 微指令表
3.4 编写并执行应用程序
汇编程序为:
ORG 100
START: YIDONG L,#03
YIDONG J1,#05
JIA L,J1
FASONG 00D
TINGJI
要求使用机器汇编和手工汇编两种方法执行应用程序,最后结果放在00D中,即显示08。
(1)手工汇编(对照表一系统)
ORG 100
START: YIDONG L,#03 ; 5F03H
YIDONG J1,#05 ; 5905H
JIA L,J1 ; fd98H
FASONG 00D ; 0D00H
TINGJI ; 00
包括微指令存控存,将指令存入主存。
a.将微指令装入控存CM中(开关拨至CM端)
b.将指令装入主存M中(开关拨至M端)
c.检查结果如下:
(2) 机器汇编方法
FD-CES系统软件视为FD-CES实验仪于PC机相连以构成高层次试验系统用的配套软件,它提供屏幕编辑、汇编、反汇编、文件传送及调试等功能,该软件在Windows 下运行。
在设计实验计算机时,需要通过屏幕编辑来设计四类文件,即:
a. 微指令定义文件(BIT.DEF):
用户可定义24位长的微指令的各位意义,在调试时将显示对应位的微指令的有效操作、高电平操作、低电平操作或无效操作。
源程序:S0 S1 S2 S3 X0 X1 M /CN NONE CP CL OI
OB LP OT CG MLD DR P+1 GI WR RR RC WC
b.指令定义文件(INS.DEF)
源程序:
;This is an example for multi accumulator ( book page-153):
?2
-JIA -YIDONG -YIDONG
4 4 4
L,JX L,JX JX,L
111111JX 110111JX 110110JX
-ZHUANGZ -FASONG -ZHUANZ
3 3 3
DIZHI DIZHI DIZHI
10111aaa 10011aaa 01100aaa
a7-a0 a7-a0 a7-a0
-ZHUANCY -ZHUANL0 -ZHUANYI
3 3 3
DIZHI DIZHI DIZHI
01101aaa 01110aaa 01111aaa
a7-a0 a7-a0 a7-a0
-YIDONG -YIDONG -TINGJI
2 2 1
L,#SHUJU JX,#SHUJU 00000000
01011111 010110JX
SHUJU SHUJU
c.微程序文件(MOP*.MID)
;This is an example for multi accumulator ( book page-155 ):
;get the first instrution
;TINGJI
;000H~002H ;003H~006H ;007H~00AH ;00BH~00EH
-001E65 -001F97 - -
- -001E65 - -
- - - -
- - -
;00FH~012H ;YIDONG JX,#SHUJU ;YIDONG L,#SHUJU ;ZHUANZ DIZHI
- ;013H~016H ;017H~01AH ;01BH
- -001FFD -0C1FF5 -003FF5
- -001E65 -001E65
- - -
- -
;ZHUANCY DIZHI ;ZHUANL0 DIZHI ;ZHUANYI DIZHI ;ZHUANZ DIZHI
;01CH ;01DH ;01EH ;01FH
-000BD7 -001E65 - -003FF5
;ZHUANCY DIZHI ;ZHUANL0 DIZHI ;ZHUANYI DIZHI
;020H ;021H ;022H
-000BD7 -001E65 -
;FASONG DIZHI ;FASONG DIZHI ;ZHUANGZ DIZHI ;ZHUANGZ DIZHI
;023H~026H ;027H~02AH ;02BH~02EH ;02FH~032H
-003FF5 -003FF5 -003FF5 -003FF5
-0107D6 -0107D6 -0C0FD5 -0C0FD5
-001E65 -001E65 -001E65 -001E65
- - - -
;YIONG JX,L ;YIDONG L,JX ;03BH~03EH ;JIA L,JX
;033H~036H ;037H~03AH - ;03FH~042H
-F317DF -0F9F03 - -9D57D3
-001E65 -001E65 - -
- - - -
- - -
d.两个汇编程序文件(*.ASM)
汇编源程序编译之后将产生目标文件(*.OBJ),当调试时则需将目标文件下载至内存。
程序一: 程序二:
ORG 100 ORG 100
YIDONG L,#03 YIDONG J2,#02 FASONG 00BH
YIDONG J1,#05 YIDONG L,#05 ZHUANYI M2
JIA L,J1 JIA L,J2 M1: YIDONG L,#00
FASONG 00D ZHUANCY M1 FASONG 00BH
END YIDONG L,#01 M2: END
(3)文件下载
a.下载Micor Program
此项功能将用户的微程序的目标代码(*.DAT)从PC机下载到实验计算机的控存中,用户可选择所需传送程序的文件名,并定义其在Control Memory中的起始地址,确认前需将M\CM开关置于CM端。
b.BIT.DEF
此项功能系统将用户的微指令位定义文件(BIT.DEF)读入。
c.下载Program
此项功能将用户的调机程序的目标文件(*.OBJ)从PC机下载到实验计算机的内存中,用户可选择所需传送程序的文件名,并定义其在实验计算机内存中的起始地址,确认前需将M\CM开关置于M端。
(4)实验机运行
用户完成逻辑框图的选择、内存的源程序目标代码装入、控存的微程序代码装入以及BIT.DEF的装入后,就可以开始调试、运行了。
运行功能包括三种:Start at、Step、Run。
Strat at要求用户输入运行程序的起始地址,地址用十六进制表示。
Step允许用户单步运行程序。
Run 提供连续运行程序的功能。
(5)运行结果
对于程序一,我们采用Run方法运行程序,运行程序以后检验00D单元的内容,经检验00D单元的内容为0D,实验结果正确。
对于程序二,我们采用Run方法运行程序,运行程序以后检验00B单元的内容,若00B的内容为0的话,说明此时有进位;如果内容为1的话,没有进位;此题我们设计的没有进位,所以最后00B的内容1。
四 心得体会
通过这一次的课程设计,我收获很大,我了解了一个比较简单的模型计算机的实现,真正了解了计算机组成原理的实际意义,而且在整个制作过程中,我们遇到了很多错误,出现错误时,在更改的过程,体会其中的种种困难,了解到了难点的地方,这对于我们学习计算机硬件方面的课程有着很大的帮助,同时对于之前的几次试验我们操作机器的实验理解、总结也更加的深刻了,在设计过程中,我从开始对硬件的迷惑和只懂个大概,到中间的疑惑与焦虑甚至无奈放弃,到解决了所有问题和疑惑。突然有一种雨过天晴的感觉。对于整个实验过程,首先,我们按提示进行初步的定位,寻找合适的地址指令,安排指令,出现错误时,就先查找错误所在位置进而仔细检查是否代码错误或者其他系统性的错误或是机器、接线的错误,从而根据错误行修改,操作时一定要注意规范程度避免带来不必要的麻烦,给系统的正常运行带来麻烦,在制作过程中经常出现代码错误,经过仔细的思考我们进行改进。而且,这对于我们以后工作也有着很大的好处,培养了我们遇到问题,分析问题,解决问题各个方面上的能力。平时我们做作业也都是在做书本上面给我们的题目,而这一次则是由我们自己设计出的,这对我们的创新意识也是一种很大大培养。我认为这次经历,是一次很好的锻炼的机会。
我们希望学校以后可以多为我们提供这样的机会,这样我们就可以在实践中得到平时课堂上面所缺失的一些能力,同时希望学校可以在别的学科也可以小组成员里这样给我们提供更好的条件来进行教学。这样可以使我们的综合素质的到很好的提升。
这个课程设计,在做的过程中遇到过很多难题,最后能够完成,还是要感谢老师和同学的大力辅导和帮助,还有一些有关书籍的帮忙。最后完成了这个课程设计。
课程设计报告课程设计名称计算机组成原理系别三系学生姓名班级学号成绩指导教师开课时间一设计题目计算机组成原理课程设计简单模型机的微程…
计算机组成原理设计实验报告学院:计算机科学与工程学院专业:网络工程班级:学号:姓名:评分:20##年5月31日试验一验证74LS1…
计算机组成原理课程设计实验报告学院专业班级学号姓名评分20xx年6月8日实验一一实验名称验证74LS181运算和逻辑功能二实验目的…
沈阳工程学院计算机组成原理课程设计设计题目基本模型机的设计与实现第六组系别班级学生姓名学号指导教师职称起止日期20xx年6月25日…
西安科技大学课程设计报告课程名称计算机组成原理课题名称复杂模型计算机的设计专业计算机科学与技术班级计科1001班姓名李用维念文洪吴…
这次课程设计是在已学计算机组成原理基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识…
计算机组成原理课程设计个人总结经过将近一个月的的计算机组成原理课程设计,让我们体会到了苦尽甘来的滋味,这次课程设计使我对上学期蒋永…
学习计算机组成原理的心得体会学习了一个学期的《计算机组成原理》这门课程。在郄君老师给我们讲《计算机组成原理》这门课程的学期了,我们…
计算机组成原理课程设计心得计科1004计算机组成原理课程设计是在我们上完计算机组成原理课之后的硬件实践课程,是把组成原理课上的理论…
计算机组成原理心得体会计算机组成原理是计算机专业本科生必修的硬件课程中重要核心课程之一。基本要求是使我们掌握计算机常用的逻辑器件、…
大庆师范学院计算机组成原理课程设计总结报告设计题目基本模型机的模拟设计与实现子题目外部中断控制流水灯蜂鸣器学生姓名院别专业班级学号…