计算机组成课程设计Word格式文档下载.docx
《计算机组成课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成课程设计Word格式文档下载.docx(27页珍藏版)》请在冰点文库上搜索。
![计算机组成课程设计Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/c601a23b-2bc3-442e-8a4a-dabe9d2a8f62/c601a23b-2bc3-442e-8a4a-dabe9d2a8f621.gif)
设计过程中要求考虑到以下各方面的问题:
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
说明
对寄存器R0进行写操作
1
对寄存器R1进行写操作
对寄存器R2进行写操作
(2)选中R0-B,对寄存器R0、R1或R2进行读操作。
表1-3
I1
I0
说明
0
将寄存器R0的内容读出
1
将寄存器R1的内容读出
将寄存器R2的内容读出
(3)选中RS-B,对寄存器R0、R1或R2进行读操作。
表1-4
I3
I2
(4)选中RI-B时,只对R2寄存器进行读操作。
2详细设计
2.1控制台设计
(1)公操作
表2-1公操作设计表
000000
011
000
100
PC+1
无读写
无效选端
P(4)有效
选中P(4),通过译码形成入口地址
(2)强制写
表2-2强制写设计表
备注:
在形成入口微地址之后,执行写操作,本强制写流程通过每次从INPUTDEVICE中接受输入,并且写入到主存中对应的地址下面
110
LDAR有效
PC-B有效
LDPC有效
010
SW-B有效
LDDR1有效
000001
101
CE有效
ALU-B有效
(3)强制读
表2-3强制读设计表
在形成入口微地址之后,执行读操作。
本流程完成的操作是依次从主存的对应微地址下读入对应的数据,并且在LED灯上显示。
001
F=A
LED-B有效
(4)执行程序
表2-4执行程序设计表
2.2单条指令的详细设计
表2-5公操作设计表
不读写
LDAR有效,PC->
AR
读主存
LDIR有效,将指令写入指令寄存器
P
(1)有效
此流程为公操作,每条指令执行公操作可以将指令的操作码取出,实现跳转等等操作,在取操作码过程中,首先将操作码的地址从PC(程序计数器)中取出,从主存对应位置找到操作码放到IR(指令寄存器)中,从而实现取指操作,并且令选择字段为P
(1)有效,实现之后的跳转。
(2)IN指令
表2-6IN指令设计表
此流程为IN操作,主要实现从INPUTDEICE中输入一个数据,使得该数据进入寄存器R0中,在实现这个操作的过程中需要用到寄存器译码电路,由前面的电路分析可知,LDRi控制所有寄存器的输入,因此必须使得A字段为LDRi。
LDRi有效
(4)ADD指令
表2-7ADD指令设计表
此流程为ADD指令执行过程,目的是为了实现两个操作数的相加,此条指令是寄存器-寄存器风格,因此两个操作数都来自寄存器,由前面的寄存器译码电路的分析可得到相应字段的值,另外从指令流程长短上可以看出寄存器-寄存器风格的指令比较精简,执行速度很快。
RS-B有效
LDDR2有效
RD-B有效
100101
(5)OR指令
表2-8OR指令设计表
此流程是OR指令的执行过程。
主要实现两个操作数的或运算,和前面的ADD指令一样,OR指令也是属于寄存器-寄存器风格,因此也具有执行速度快的特点。
ALU作加1操作
11101X
ALU进行或运算
(6)MOVE指令
表2-9MOVE指令设计表
此流程为MOVE指令,主要实现两个寄存器之间的数据传送,在此条指令中实现的是从R0到R1的数据传送,由寄存器译码电路可知需要打开R0的输出门RS-B与R1的输入门LDR1,由前面的寄存器译码电路对照表可得如下字段值。
(7)SUB指令
表2-10SUB指令设计表
此流程为SUB指令执行过程。
主要实现两个操作数的相减运算,此条指令是存储器-存储器风格,因此两个操作数都来自存储器,因此和前面的加法运算相比需要加入两个取址过程,通过直接寻址找到两个操作数。
读取主存
011000
(8)AND指令
表2-11AND指令设计表
此流程为AND运算的指令过程,这条指令实现了两个操作数的与运算,此条指令时寄存器-存储器风格,则两个操作数一个来自主存,另外一个来自寄存器,取自主存的那个操作数需要给出一个地址,通过直接寻址来找到操作码。
101110
(9)STOP指令
表2-12STOP指令设计表
STOP
P
(1)
011
000
PC+1
无读写
无效
(10)STA指令
表2-13STA指令设计表
此流程为STA指令的执行过程。
主要实现将寄存器R1中的数保存在主存中的某个地址下,因此在使用中需要在指令之后加一个地址作为地址码。
写入主存
(11)LOAD操作
表2-14LOAD指令设计表
PC—>
RAM—>
BUS
BUS—>
000000
110
LDAR有效
001
读主存
无效端
LDRI有效
(12)OUT指令
表2-15OUT指令设计表
在LED灯上输出八进制内容
LED有效
(13)JMP指令
表2-16JMP指令设计表
进行无条件转移
PC+1
LOAD有效
2.3指令设计
表2-17指令表
指令类型
助记符
指令格式
指令风格
指令长度
寻址方式
注释
输入
INR0
I7-I4I3-I2I1-I0
00000000
单字节
INPUT->
R0
输出
OUT
addr
00110001
xxxxxxxx
双字节
直接寻址
[addr]->
LED
寄存器操作
MOV
R0,R1
00110001
寄—寄
寄存器寻址
R0->
R1
存储器操作
LOAD
R1,addr
01110101
寄—存
STA
01100100
xxxxxxxx
R1->
[addr]
程序流控制
JMP
1001xxxx
xxxxxxxx
立即寻址
addr->
PC
1010xxxx
停机
ALU算数运算和逻辑运算
ADD
R1,R0
00010001
RO+R1->
SUBR1
addr1,addr2
0010xx01
xxxxxxxx
xxxxxxxx
存—存
多字节
[addr1+addr2]
->
AND
R1,R2
01000101
R*[addr]->
OR
01010001
R1+R2->
2.4控制台设计
图2.1控制台
13
01
52
51
10
50
47
11
RP(11)
KWD(00)
KWE(01)
P(4)
PC->
SW->
BUS->
DR1
RAM->
DR1->
DR1->
RAM
2.5微程序流程图设计
图2.2微程序流程图
3编码实现
表3-1微指令代码表
微地址
S3~S0MCN
WEA9A8
A
B
C
UA5~UA0
00
000000
011
001000
01
011
000010
02
001
010000
03
000100
04
100101
05
001
000110
06
000111
07
011
001010
101001
11
100111
12
001
001100
14
001101
15
011000
011
16
001111
17
011011
20
000
21
000011
22
000101
23
001110
25
011101
26
011111
27
100001
30
100011
31
100110
32
011010
33
34
101110
35