1、- 1 -计算机组成与系统结构课程设计报告报 告 题 目: 复杂模型机的设计 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术 作者所在班级: B05511 作 者 姓 名: 郭维维 (40 号) 指导教师姓名: 杨 立 完 成 时 间: 2007 年 12 月 26 日 北华航天工业学院教务处制- 2 -内容摘要本实验利用 EL-JY-型计算机组成原理实验系统组建电路,综合运用运算器、控制器、存储器、输入输出系统、总线等部件和辅助电路,完成一个较完整的模型计算机设计和实现,并构造一个指令系统,编写机器指令实现不同的具体功能,如实现数据的输入、输出、加法、减法、移位、自增、
2、自减以及赋值等运算的功能。关键词模型机,微代码,机器指令,数据输入/输出,算术逻辑运算- 3 -目 录内容摘要 .- 2 -关键词 .- 2 -第 1 章 绪论 .- 5 -1.1 设计地点 .- 5 -1.2 设计目的 .- 5 -1.3 设计的意义 .- 5 -1.4 课程设计的主要内容和要求 .- 5 -1.5 实验的环境 .- 6 -第 2 章 系统设计与实现 - .6 -2.1 模型机结构框图 .- 6 -2.2 工作原理 .- 7 -2.2.1 数据格式 .- 7 -2.2.2 指令格式 .- 7 -2.2.3 指令系统 .- 9 -2.2.4 设计微代码 .- 9-2.2.5 实
3、验微代码 .- 12 -2.3 程序代码 .- 13 -2.4 实验内容介绍 .- 14 -2.5 系统实现步骤 .- 14 -2.6 测试用例 .- 16 -2.7 硬件连线图 .- 17 -第 3 章 总结 .- 18 -参考文献 .- 18 - 4 -课程设计任务书课题名称 复杂模型机组成原理实验 完成时间指导教师 职称 学生姓名 班 级总体设计要求和技术要点掌握计算机五大功能部件的组成及功能,熟悉完整的单台计算机基本组成原理,掌握计算机中数据表示方法、运算方法、运算器的组成、控制器的实现、存储器子系统的结构与功能、输入/输出系统的工作原理与功能。(1)利用实验设备平台构造完整的模型机;
4、(2)利用运算器 74LS181 执行算术操作和逻辑操作;(3)运用随机存储器 RAM 以及地址和数据在计算机总线的传送关系,实现运算器和存储器协同工作,读写数据,检查结果是否正确;(4)应用微程序控制器,往 EEPROM 里任意写 24 位微代码,读出微代码并验证其正确性;(5)构造指令系统,定义至少 10 条机器指令,实现具有计算四则运算及逻辑运算的功能;(6)利用微程序控制器控制模型机运行,实现基于重叠和流水线技术的 CPU 技术。工作内容及时间进度安排课程设计成果- 5 -1.课程设计硬件系统及配套软件2.课程设计报告书第 1 章 绪论本实验实现的是对复杂模型机组成原理的研究。1.1
5、设计地点教七四楼机房。1.2 设计目的本课程设计综合运用运算器、控制器、存储器、输入输出系统、总线等部件和辅助电路,完成一个较完整的模型计算机设计和实现(包括硬件和软件) 。通过课程设计对计算机组成和系统结构的基础知识进行全面的掌握,培养独立分析、研究、开发和综合设计能力。1.3 设计的意义通过对复杂模型机组成的研究以及对微程序、微代码、机器指令的深入理解,进一步增强对计算机组成的学习,巩固以前所学知识,并对以后的学习打下坚实的基础。1.4 课程设计的主要内容和要求掌握计算机五大功能部件的组成及功能,熟悉完整的单台计算机基本组成原理,掌握计算机中数据表示方法、运算方法、运算器的组成、控制器的实
6、现、存储器子系统的结构与功能、输入/输出系统的工作原理与功能。(1)利用实验设备平台构造完整的模型机;(2)利用运算器 74LS181 执行算术操作和逻辑操作;(3)运用随机存储器 RAM 以及地址和数据在计算机总线的传送关系,实现运算器和存储器协同工作,读写数据,检查结果是否正确;(4)应用微程序控制器,往 EEPROM 里任意写 24 位微代码读出微代码并验证其正确性;(5)构造指令系统定义至少 10 条机器指令,实现可以计算鸡兔同笼题的模型机功能;- 6 -(6)利用微程序控制器控制模型机运行,实现基于重叠和流水线技术的 CPU 技术。要求画出系统模块框图:按从上到下的设计方法,将整个设
7、计依功能划分成若干模块;并确定各个模块的输出、输入端口及要完成的功能。检查模块逻辑功能是否正确;(7)在 EL-JY-型计算机组成原理实验系统上,编写机器指令,实现数据的输入,输出,移位以及加法等运算功能。1.5 实验的环境EL-JY-型计算机组成原理实验系统。第 2 章 系统设计与实现2.1 模型机结构框图此模型机是由运算器,控制器,存储器,输入设备,输出设备五大部分组成。1.运算器又是有 299,74LS181 完成控制信号功能的算逻部件,暂存器 LDR1,LDR2,及三个通用寄存器 Ax,Bx,Cx 等组成。2.控制器由程序计数器 PC、指令寄存器、地址寄存器、时序电路、控制存储器及相应
8、的译码电路组成。3.存储器 RAM 是通过 CE 和 W/R 两个微命令来完成数据和程序的的存放功能的。4.输出设备有两位 LED 数码管和 W/R 控制完成的。LR0 LR1 LR2寄存器 Ax Bx CxR0-G R1-G R2-G数据总线(D_BUS)ALU-GALUM CN S3S2S1S0暂存器 LT1 暂存器 LT2LDR1 LDR2移位寄存器M S1 S0G-299输入设备DIJ-G微控器 脉冲源及时序指令寄存器LDIR图中所有控制信号LPCPC-G程序计数器LOADLAR 地址寄存器存储器 6116 CEWE输出设备D-GW/RCPU- 7 -图 1 模型机结构框图图 1 中运
9、算器 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 构成,当
10、 DIJ-G 为低电平时将 16 位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。本系统的数据总线为 16 位,指令、地址和程序计数器均为 8 位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低八位有效。2.2 工作原理2.2.1 数据格式本实验计算机采用定点补码表示法表示数据,字长为 16 位,格式如下:表 1 补码表示表 15 14 13 . 0符 号 尾 数其中,第 16 位为符号位,数值表示范围是:-32768 32767。2.2.2 指令格式(1)算术逻辑指令设计 9 条单字
11、长算术逻辑指令,寻址方式采用寄存器直接寻址。其格式如下:表 2 寻址方式表示表7 6 5 4 3 2 1 0OP-CODE rs rd- 8 -表 3 操作码表其中 OP-CODE 为操作码,rs 为源寄存器,rd 为目的寄存器,并规定:表 4 寄存器表rs 或 rd 选定寄存器00 Ax01 Bx10 Cx(2)存储器访问及转移指令存储器的访问有两种,存数和取数。它们都使用助记符 MOV,但操作码不同。转移指令只有一种,及无条件转移(JMP) 。指令格式如下: 表 5 存储器的访问表7 6 5 4 3 2 1 000 M OP-CODE rdD其中 OP-CODE 为操作码,rd 为寄存器。
12、M 为寻址模式,D 随 M 的不同其定义也不同,如下表所示:表 6 操作码表OP-CODE 00 01 10指令说明 写存储器 读存储器 转移指令表 7 寻址模式表寻址模式 M 有效地址 E D 定义 说明00 E=(PC)+1 立即数 立即寻址10 E=D 直接地址 直接寻址11 E=100H+D 直接地址 扩展直接寻址(3)I/O 指令输入(IN)和输出(OUT)指令采用单字节指令,其格式如下: 表 8 I/O 操作码表7 6 5 4 3 2 1 0OP-CODE 0111 1000 1001 1010 1011 1100 1101 1110 1111指令 CLR MOV ADD SUB
13、INC AND NOT ROR ROL- 9 -OP-CODE addr rd其中,当 OP-CODE=0100 且 addr=10 时,从“数据输入电路”中的开关组输入数据;当 OP-CODE=0100 且 addr=01 时,将数据输入到“输出显示电路”中的数码管显示。2.2.3 指令系统本实验共有十四条基本指令,其中算术逻辑指令 8 条,访问内存指令和程序控制指令4 条,输入输出指令 2 条。下表列出了各条指令的格式,汇编符号和指令功能。表 9 指令格式表汇编符号 指令的格式 功能MOV rd , rsADD rd , rsSUB rd , rsINC rdAND rd , rsNOT
14、rdROR rdROL rd rs rdrs + rd rdrd - rs rdrd + 1 rdrs rd rd对 rd 求反rd 循环右移rd 循环左移MOV D , rdMOV rd , Drd DD rdMOV rd , DJMP DD rdD PCIN rd , KINOUT DISP , rdKIN rdrd DISP1000 rs rd1001 rs rd1010 rs rd1011 rd rd1100 rs rd1101 rd rd1110 rd rd1111 rd rd0100 10 rd0100 01 rd00 10 00 rdD00 10 01 rdD 00 00 01
15、rdD00 00 10 00D- 10 -2.2.4 设计微代码设计三个控制操作微程序:存储器读操作(MRD):拨动清零开关 CLR 对地址、指令寄存器清零后,指令译码输入 CA1、CA2 为“00”时,按“单步”键,可对 RAM 连续读操作。存储器写操作(MWE):拨动清零开关 CLR 对地址、指令寄存器清零后,指令译码输入 CA1、CA2 为“10”时,按“单步”键,可对 RAM 连续写操作。启动程序(RUN):拨动清零开关 CLR 对地址、指令寄存器清零后,指令译码输入CA1、CA2 为“11”时,按“单步”键,即可转入到第 01 号“取指”微指令,启动程序运行。本系统设计的微程序字长共
16、 24 位,其控制位顺序如下:表 10 24 位微代码表24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1S3 S2 S1 S0 M Cn WE 1A 1B F1 F2 F3 uA5 uA4 uA3 uA2 uA1 uA0F1、F2、F3 三个字段的编码方案如下表:表 11 编码方案表F1 字段 F2 字段 F3 字段15 14 13 选择 12 11 10 选择 9 8 7 选择0 0 0 LDRi 0 0 0 RAG 0 0 0 P10 0 1 LOAD 0 0 1 ALU-G 0 0 1 AR0 1 0 LDR2 0 1 0 RCG 0 1 0 P30 1 1 自定义 0 1 1 自定义 0 1 1 自定义1 0 0 LDR1 1 0 0 RBG 1 0 0 P21 0 1 LAR 1 0 1 PC-G 1 0 1 LPC1 1 0 LDIR 1 1 0 299-G 1 1 0 P41 1 1 无操作 1 1 1 无操作 1 1 1 无操作