计算机组成课程设计.docx
- 文档编号:11291995
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:27
- 大小:328.91KB
计算机组成课程设计.docx
《计算机组成课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
计算机组成课程设计
计算机学院计算机科学与技术专业
《计算机组成课程设计》报告
(2012/2013学年第一学期)
学生姓名:
学生班级:
计算机102201H
学生学号:
指导教师:
康葆荣
年月日
目录
1课程设计需求分析1
1.1课程设计目的与要求1
1.2课程设计内容1
1.3实验器材描述2
1.4存储器划分2
1.5指令译码电路分析3
1.6寄存器译码电路分析4
2详细设计5
2.1控制台设计5
2.2单条指令的详细设计7
2.3指令设计15
3编码实现19
4设计测试20
5实验心得体会21
附录一:
数据通路图22
附录二:
实验连线图23
参考文献:
24
1课程设计需求分析
1.1课程设计目的与要求
本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。
目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。
要求学生综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA)。
1.2课程设计内容
基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。
设计过程中要求考虑到以下各方面的问题:
1、指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器);
2、数据类型(无符号数,有符号数,整型,浮点型);
3、存储器划分(指令,数据);
4、寻址方式(立即数寻址,寄存器寻址,直接寻址等);
5、指令格式(单字节,双字节,多字节);
6、指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出);
1.3实验器材描述
硬件:
TDN—CN++计算机组成原理实验教学系统,具备支持开放式实验教学方法的结构特点。
表1-1TDN—CN++教学系统
电路名称
主要电路内容
运算器单元
(ALUUNIT)
运算器、进位控制器、移位寄存器、寄存器堆、内部总线
计数器与地址寄存器单元
(ADDRESSUNIT)
地址寄存器、程序地址计数器
微控器单元
(MICROCONTROLLERUNIT)
指令寄存器、指令译码器、微指令控制寄存器及其编程器、逻辑译码单元、时序电路
主存单元(MAINMEM)
SRAM6116
输入设备、输出设备
(INPUTDEVICE&OUTPUTDEVICE)
开关、显示灯、
控制台(读写、启动、停机)
CPLD单元
1片ISPLSI1032CPLD芯片
接口实验板(系统附件)
Intel8253、8255、8259接口芯片各一片
逻辑信号测量单元
两路逻辑信号PC示波器
单片机控制单元
控制单片机、RS-232C串口等
电源
采用高效开关单元、
输出为5V/2A、±12V/0.2A
1.4存储器划分
存储区大小为256个存储单元,分配给代码区17个存储单元,数据区为239个存储单元。
存储器地址由“INPUTDEVICE”的8位输入端生成,可对256个地址进行访问。
此256个地址空间由代码区和数据区两部分构成(如图1-5所示),其中指令代码区范围为[00000000]-[00100101],即[00H-25H],数据区范围为[11010110-11111111],即[26H-FFH]。
I7I6I5I4I3I2I1I0
代码区
数据区
00H
25H
26H
FFH
D7D6D5D4D3D2D1D0
图1.1存储器空间分配
1.5指令译码电路分析
图1.2指令译码电路
根据指令译码电路以及寄存器译码电路,得出以下结论:
IN:
000000得SE1=SE2=SE3=SE4=SE5=1,由010000(20)开始跳转。
ADD:
000100I4=1,SE1=0,(010000—010001)微地址由20跳到21。
SUB:
001001I2=I5=1,得SE2=0,(010000—010010)微地址由20跳到22。
MOV:
001100I4=I5=1,得SE1=SE2=0,(010000—010011)微地址由20跳到23。
AND:
010001SE3=0,(010000—010100)由20跳到24。
OR:
010100I4=I6=1,得SE1=0,SE3=0,(010000—010101)由20跳到25。
STA:
011001I2=I5=I6=1,得SE2=SE3=1,(010000—010110)由20跳到26。
LOAD:
011101I2=I4=I5=I6=1,得SE1=SE2=SE3=1,(010000—010110)由20跳到26。
OUT:
100000I7=1,得SE4=0,(010000—011000)由20跳到27。
JMP:
100100I4=I7=1,得SE4=0,(010000—011000)由20跳到30。
STOP:
101000I5=I7=1,得SE1=0,(010000—011001)由20跳到31。
1.6寄存器译码电路分析
图1.3寄存器译码电路
(1)选中LDRI,对寄存器R0、R1或R2进行操作。
表1-2
I1
I0
说明
0
0
对寄存器R0进行写操作
0
1
对寄存器R1进行写操作
0
0
对寄存器R2进行写操作
(2)选中R0-B,对寄存器R0、R1或R2进行读操作。
表1-3
I1
I0
说明
0
0
将寄存器R0的内容读出
0
1
将寄存器R1的内容读出
1
0
将寄存器R2的内容读出
(3)选中RS-B,对寄存器R0、R1或R2进行读操作。
表1-4
I3
I2
说明
0
0
将寄存器R0的内容读出
0
1
将寄存器R1的内容读出
1
0
将寄存器R2的内容读出
(4)选中RI-B时,只对R2寄存器进行读操作。
2详细设计
2.1控制台设计
(1)公操作
表2-1公操作设计表
000000
011
000
000
100
PC+1
无读写
无效选端
无效选端
P(4)有效
选中P(4),通过译码形成入口地址
(2)强制写
表2-2强制写设计表
备注:
在形成入口微地址之后,执行写操作,本强制写流程通过每次从INPUTDEVICE中接受输入,并且写入到主存中对应的地址下面
000000
011
110
110
110
PC+1
无读写
LDAR有效
PC-B有效
LDPC有效
000000
000
010
000
000
PC+1
SW-B有效
LDDR1有效
无效选端
无效选端
000001
101
000
101
000
PC+1
CE有效
无效选端
ALU-B有效
无效选端
(3)强制读
表2-3强制读设计表
备注:
在形成入口微地址之后,执行读操作。
本流程完成的操作是依次从主存的对应微地址下读入对应的数据,并且在LED灯上显示。
000000
011
110
110
110
PC+1
无读写
LDAR有效
PC-B有效
LDPC有效
000000
001
010
000
000
PC+1
CE有效
LDDR1有效
无效选端
无效选端
000001
110
000
101
000
F=A
LED-B有效
无效选端
ALU-B有效
无效选端
(4)执行程序
表2-4执行程序设计表
000000
011
000
000
000
PC+1
无读写
无效选端
无效选端
无效选端
2.2单条指令的详细设计
(1)公操作
表2-5公操作设计表
000000
011
110
110
110
PC+1
不读写
LDAR有效,PC->AR
PC-B有效
LDPC有效
000000
001
100
000
001
PC+1
读主存
LDIR有效,将指令写入指令寄存器
无读写
P
(1)有效
备注:
此流程为公操作,每条指令执行公操作可以将指令的操作码取出,实现跳转等等操作,在取操作码过程中,首先将操作码的地址从PC(程序计数器)中取出,从主存对应位置找到操作码放到IR(指令寄存器)中,从而实现取指操作,并且令选择字段为P
(1)有效,实现之后的跳转。
(2)IN指令
表2-6IN指令设计表
备注:
此流程为IN操作,主要实现从INPUTDEICE中输入一个数据,使得该数据进入寄存器R0中,在实现这个操作的过程中需要用到寄存器译码电路,由前面的电路分析可知,LDRi控制所有寄存器的输入,因此必须使得A字段为LDRi。
000000
000
001
000
000
PC+1
CE有效
LDRi有效
无效选端
无效选端
(4)ADD指令
表2-7ADD指令设计表
备注:
此流程为ADD指令执行过程,目的是为了实现两个操作数的相加,此条指令是寄存器-寄存器风格,因此两个操作数都来自寄存器,由前面的寄存器译码电路的分析可得到相应字段的值,另外从指令流程长短上可以看出寄存器-寄存器风格的指令比较精简,执行速度很快。
000000
011
010
001
000
PC+1
不读写
LDDR1有效
RS-B有效
无效选端
000000
011
011
010
000
PC+1
不读写
LDDR2有效
RD-B有效
无效选端
100101
011
001
101
000
PC+1
不读写
LDRi有效
ALU-B有效
无效选端
(5)OR指令
表2-8OR指令设计表
备注:
此流程是OR指令的执行过程。
主要实现两个操作数的或运算,和前面的ADD指令一样,OR指令也是属于寄存器-寄存器风格,因此也具有执行速度快的特点。
000000
011
010
001
000
ALU作加1操作
不读写
LDDR1有效
RS-B有效
无效选端
000000
011
011
010
000
ALU作加1操作
不读写
LDDR2有效
RD-B有效
无效选端
11101X
011
001
101
000
ALU进行或运算
不读写
LDRi有效
ALU-B有效
无效选端
(6)MOVE指令
表2-9MOVE指令设计表
备注:
此流程为MOVE指令,主要实现两个寄存器之间的数据传送,在此条指令中实现的是从R0到R1的数据传送,由寄存器译码电路可知需要打开R0的输出门RS-B与R1的输入门LDR1,由前面的寄存器译码电路对照表可得如下字段值。
000000
011
001
001
000
PC+1
不读写
LDRi有效
RS-B有效
无效选端
(7)SUB指令
表2-10SUB指令设计表
备注:
此流程为SUB指令执行过程。
主要实现两个操作数的相减运算,此条指令是存储器-存储器风格,因此两个操作数都来自存储器,因此和前面的加法运算相比需要加入两个取址过程,通过直接寻址找到两个操作数。
000000
011
110
110
110
PC+1
不读写
LDAR有效
PC-B有效
LDPC有效
000000
001
110
000
000
PC+1
读取主存
LDAR有效
无效选端
无效选端
000000
001
010
000
000
PC+1
读取主存
LDDR1有效
无效选端
无效选端
000000
011
110
110
110
PC+1
不读写
LDAR有效
PC-B有效
LDPC有效
000000
001
110
000
000
PC+1
读取主存
LDAR有效
无效选端
无效选端
000000
001
011
000
000
PC+1
读取主存
LDDR2有效
无效选端
无效选端
011000
011
001
101
000
PC+1
不读写
LDRi有效
ALU-B有效
无效选端
(8)AND指令
表2-11AND指令设计表
备注:
此流程为AND运算的指令过程,这条指令实现了两个操作数的与运算,此条指令时寄存器-存储器风格,则两个操作数一个来自主存,另外一个来自寄存器,取自主存的那个操作数需要给出一个地址,通过直接寻址来找到操作码。
000000
011
110
110
110
PC+1
不读写
LDAR有效
PC-B有效
LDPC有效
000000
001
110
000
000
PC+1
读取主存
LDAR有效
无效选端
无效选端
000000
001
010
000
000
PC+1
读取主存
LDDR1有效
无效选端
无效选端
000000
011
011
001
000
PC+1
不读写
LDDR2有效
RS-B有效
无效选端
101110
011
001
101
000
PC+1
不读写
LDRi有效
ALU-B有效
无效选端
(9)STOP指令
表2-12STOP指令设计表
STOP
P
(1)
000000
011
000
000
000
PC+1
无读写
无效
无效
无效
(10)STA指令
表2-13STA指令设计表
备注:
此流程为STA指令的执行过程。
主要实现将寄存器R1中的数保存在主存中的某个地址下,因此在使用中需要在指令之后加一个地址作为地址码。
000000
011
110
110
110
PC+1
不读写
LDAR有效
PC-B有效
LDPC有效
000000
001
110
000
000
PC+1
读取主存
LDAR有效
无效选端
无效选端
000000
101
000
001
000
PC+1
写入主存
无效选端
RS-B有效
无效选端
(11)LOAD操作
表2-14LOAD指令设计表
PC—>AR
PC+1
RAM—>BUS
BUS—>AR
RAM—>BUS
PC+1
P
(1)
000000
011
110
110
110
PC+1
无读写
LDAR有效
PC-B有效
LDPC有效
000000
001
110
000
000
PC+1
读主存
LDAR有效
无效端
无效端
000000
001
110
000
000
PC+1
读主存
LDRI有效
无效端
无效端
(12)OUT指令
表2-15OUT指令设计表
在LED灯上输出八进制内容
000000
011
110
110
110
PC+1
不读写
LDAR有效
PC-B有效
LDPC有效
000000
001
110
000
000
PC+1
读取主存
LDAR有效
无效选端
无效选端
000000
001
010
000
000
PC+1
读取主存
LDDR1有效
无效选端
无效选端
000000
110
000
101
000
PC+1
LED有效
无效选端
ALU-B有效
无效选端
(13)JMP指令
表2-16JMP指令设计表
进行无条件转移
000000
011
110
110
110
PC+1
不读写
LDAR有效
PC-B有效
LDPC有效
000000
001
101
000
110
PC+1
读取主存
LOAD有效
无效选端
LDPC有效
2.3指令设计
表2-17指令表
指令类型
助记符
指令格式
指令风格
指令长度
寻址方式
注释
输入
INR0
I7-I4I3-I2I1-I0
00000000
单字节
INPUT->R0
输出
OUT
addr
I7-I4I3-I2I1-I0
00110001
xxxxxxxx
双字节
直接寻址
[addr]->LED
寄存器操作
MOV
R0,R1
I7-I4I3-I2I1-I0
00110001
寄—寄
单字节
寄存器寻址
R0->R1
存储器操作
LOAD
R1,addr
I7-I4I3-I2I1-I0
01110101
xxxxxxxx
寄—存
双字节
直接寻址
[addr]->R1
STA
R1,addr
I7-I4I3-I2I1-I0
01100100
xxxxxxxx
寄—存
双字节
直接寻址
R1->[addr]
程序流控制
JMP
addr
I7-I4I3-I2I1-I0
1001xxxx
xxxxxxxx
双字节
立即寻址
addr->PC
STOP
I7-I4I3-I2I1-I0
1010xxxx
单字节
立即寻址
停机
ALU算数运算和逻辑运算
ADD
R1,R0
I7-I4I3-I2I1-I0
00010001
寄—寄
单字节
寄存器寻址
RO+R1->R1
ALU算数运算和逻辑运算
SUBR1
addr1,addr2
I7-I4I3-I2I1-I0
0010xx01
xxxxxxxx
xxxxxxxx
存—存
多字节
直接寻址
[addr1+addr2]
->R1
AND
R1,R2
I7-I4I3-I2I1-I0
01000101
xxxxxxxx
寄—存
双字节
直接寻址
R*[addr]->R1
OR
R1,R2
I7-I4I3-I2I1-I0
01010001
寄—寄
单字节
寄存器寻址
R1+R2->R1
2.4控制台设计
图2.1控制台
13
01
52
51
10
50
47
11
RP(11)
KWD(00)
KWE(01)
P(4)
PC->AR
PC+1
SW->BUS
BUS->DR1
RAM->BUS
BUS->DR1
DR1->LED
DR1->BUS
BUS->RAM
PC->AR
PC+1
2.5微程序流程图设计
图2.2微程序流程图
3编码实现
表3-1微指令代码表
微地址
S3~S0MCN
WEA9A8
A
B
C
UA5~UA0
00
000000
011
000
000
100
001000
01
000000
011
110
110
110
000010
02
000000
001
100
000
001
010000
03
000000
011
011
010
000
000100
04
100101
011
001
101
000
000001
05
000000
001
110
000
000
000110
06
000000
001
010
000
000
000111
07
000000
011
110
110
110
001010
10
000000
011
110
110
110
101001
11
000000
011
110
110
110
100111
12
000000
001
110
000
000
001100
13
000000
011
000
000
000
000001
14
000000
001
011
000
000
001101
15
011000
011
001
101
000
000001
16
000000
001
110
000
000
001111
17
000000
001
010
000
000
011011
20
000000
000
001
000
000
000001
21
000000
011
010
001
000
000011
22
000000
011
110
110
110
000101
23
000000
011
001
001
000
000001
24
000000
011
110
110
110
001110
25
000000
011
010
001
000
011101
26
000000
011
110
110
110
011111
27
000000
011
110
110
110
100001
30
000000
011
110
110
110
100011
31
000000
011
110
110
110
100110
32
000000
011
000
000
000
011010
33
000000
011
011
001
000
011010
34
101110
011
011
101
000
000001
35
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 课程设计