资源描述
华 北 电 力 大 学
实 验 报 告
|
|
实验名称 8位模型机的设计
课程名称 计算机组成与结构
|| 专业班级:
学生姓名:
指导教师: 实验日期:
华 北 电 力 大 学 实 验 报 告
目录
一、摘要
二、前言
三、设计目的、任务与内容
3.1设计目的
根据计算机组成原理课程所学知识,设计一个8位的模型计算机。
3.2设计任务
3.3设计内容
四、八位模型机整体设计
4.1总体结构
4.2指令系统
4.3运算器
4.4存储器
4.5控制器
4.6指令流程图和操作时间表
4.7微指令码
五、实验感想与讨论
六、参考文献
一、摘要
模型机采用微程序控制原理。包括运算器,存储器,控制器等部分。选用两片SN74181串行进位方式形成运算器,运用微程序控制各部件单元的产生控制信号,实现特定指令的功能,通过绘制指令流程图,编写指令时间表,设计微指令格式等实现了具体的微程序控制。
关键字: 模型机 微程序设计
二、前言
计算机组成原理是计算机科学专业的一门重要的专业基础课,内容包括计算机部件和整机的组成与工作原理由于课程的专业性很强、概念繁杂抽象,8位模型机的设计有助于我们理解计算机整机的工作原理,让我们从设计角度来理解计算机的结构与工作原理。组成CPU的基本部件有运算部件、寄存器组、微命令产生部件等。这些部件通过CPU内部的总线连接起来,实现它们之间的信息交换。其中,运算部件和一部分寄存器属于运算器部分;另一部分寄存器、微命令产生部件和微程序控制器等则属于控制器部分。八位模型计算机的设计过程,包含通过内总线连接各基本功能单元模块构成数据通路,给出完备的指令系统,运算器的实现方式,用微指令设计计算机指令系统。
三、设计目的、任务与内容
3.1设计目的
根据计算机组成原理课程所学知识,设计一个8位的模型计算机。
1. 掌握计算机的基本组成和功能;
2. 掌握计算机各大部件的功能与设计方法;
3. 深入学习计算机各类典型指令的执行流程;
4. 深入学习微程序控制器的原理和设计过程;
5. 掌握微程序的设计方法,学会编写二进制微指令代码表;
6. 综合运用所学知识,在掌握部件单元电路设计的基础上,进一步构造一台基本的模型计算机, 建立计算机整机概念;
7. 通过本次设计,理论联系实践,进一步加强学生分析问题、解决问题的能力,提高自身硬件设计水平。
3.2设计任务
1. 查阅文献资料,一般在5篇以上;
2. 以TEC-XP教学实验计算机系统为背景,通过调研、分析现有的模型机,建立8位的整机模型;
3. 完成8位模型机的整机设计和各部件的具体设计;
4. 撰写设计报告书;做好答辩工作。
3.3设计内容
1. 8位模型机总体结构的设计;
主要是数据通路的设计或选择,要说明如下内容:
1)寄存器的位数
2)总线宽度
3)ALU位数及运算功能
4)微命令的设置(各标识的含义);
2. 拟定指令系统;
要考虑指令的完备性、有效性、规整性;主要说明系统包括哪些指令以及指令格式,寻址方式。
3. 控制器的选择;
采用微程序控制器。
4. 绘制指令流程图;
5. 安排指令操作时间表,设计微指令格式;
6. 编写微程序;
7. 了解并说明模型机的输入/输出模块;
8. 各部件设计时,说明部件中数据和控制信号的来源、去向、功能、时序、以及部件之间数据和控制信号的来源、去向、功能和时序等。
4.1总体结构
总体结构设计的内容包含确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传送路径,以及为实现这些传送所需要的微命令。
4.1.1 数据格式
一个字的8位二进制位采用自右至左的次序编号,如图3.1所示。
7 6 5 4 3 2 1 0
图 实验模型计算机数据格式
一个字中的8位可以是:
不带符号的二进制非负整数,表示的数的范围是0≤X≤2^8-1
用补码表示的带符号二进制整数,能表示的数的范围是﹣2^7≤X≤2^7-1
地址常数,能表示的地址写成十六进制时是:00-FF
字符数据,即ASCII编码
4.1.2 寄存器
1.寄存器
(1)可编程寄存器(8位)
通用寄存器:R0 、R1
程序计数器:PC
堆栈指针:SP
(2)非编程寄存器(8位)
暂存器C:暂存来自主存的源地址或源操作数。
暂存器D:暂存来自主存的目的操作数地址或目的操作数。
指令寄存器IR:存放现行指令。
地址寄存器MAR:提供CPU访问主存的地址。
数据缓冲寄存器MBR:与数据总线双向连接,存储数据、控制命令与操作。
2.运算部件
(1)运算部件以算术、逻辑运算部件ALU为核心,采用两片4位的SN74181(负逻辑)芯片,由微命令M、S0、S1、S2、S3选择ALU操作功能,C0是送入最末尾的进位信号。
(2)ALU输入端设置A、B两个多路选择器,用以选择数据来源,具体见数据通路图
3.总线与数据通路结构
(1)内总线:八根单向数据传送线,连接到有关寄存器对应的D输入端。
(2)系统总线:地址总线、数据总线、控制总线。
模型机的数据通路
4.各类信息的传送路径
读出
置入
(1)指令信息传送
M 数据总线 IR
(2)地址信息
打入
1)取指信息:
PC 选择器 A ALU 移位器 内总线 MAR
2)顺序执行时的后继指令地址:
打入
ALU 移位器 内总线 PC
PC A
C0
3)操作数地址
打入
寄存器间址寻址方式:(R)
Ri A(或B)
ALU 移位器 内总线 MAR
打入
变址方式:
位移量 A(或B) ALU移位器内总线MAR
变址寄存器B(或A)
(3)数据信息传送
寄存器 寄存器
1)
Ri A(或B) ALU 移位器 内总线 Rj
寄存器 主存
2)
Ri ALU MBR 数据总线 M
主存 寄存器
置入
打入
读出
3)
M 数据总线 MBR ALU Rj
打入
读出、置入
主存 主存
4)
C ALU MBR M(目的单元)
M(源单元) MBR ALU C
5)
5.微命令设置
(1)
(2)移位器功能选择:直传DM、左移、右移
(3)分配脉冲:CPR0、CP R1、CPMAR、CPMBR、CPPC、CPSP、CPC、CPD
(4)与系统总线及主存有关的微命令:EMAR、SMBR、SIR、R、W
4.2指令系统
1. 指令格式(8位)
7 6 5 4 3 2 1 0
操作码
寄存器号
寻址方式
寄存器号
寻址方式
目的 源
6~7位表示操作码,决定操作指令类型;
3~5位表示目的操作数,3位表示寻址方式,0表示寄存器寻址,可用的寄存器有R0 、R1 、PC、SP,1表示变址寻址方式,可用的寄存器有R0 、R1 、PC、SP,4、5位表示寄存器号;
0~2位表示源操作数,0位表示寻址方式,0表示寄存器寻址,可用的寄存器有R0 、R1 、PC、SP,1表示变址寻址方式,可用的寄存器有R0 、R1 、PC、SP,1、2位表示寄存器号。
可编程寄存器(4个):
通用寄存器 R0 00 R1 01
堆栈指针 SP 10
程序计数器 PC 11
2.寻址方式
(1) 模型机的编址为按字编址,字长8位,即主存每个单元8位
(2)采用定字长指令格式,指令字长8位,操作数字长8位
(3)使用2种寻址方式,寻址方式0是寄存器寻址方式,为1是间接寻址方式
3.操作类型
(1)传送指令:
MOV——传送,操作码00
(2)双操作数算数逻辑指令:
ADD——加法运算,操作码01
(3)单操作数算数逻辑指令:
NEG——求补,操作码10
(4) 转移指令
JMP—无条件转移,操作码11
4.3运算器
1.运算器的组成结构
(1)运算器使用的2片SN74181(负逻辑)组成,采用组内并行组间串行进位的方法,共8位,其组成图如下:
(2) 运算器功能实现表
工作方式选择S3S2S1S0
负逻辑
正逻辑
逻辑运算
(M=1)
算术运算(M=0)Cn=0无进位
算术运算(M=0)Cn=1有进位
逻辑运算
(M=1)
算术运算(M=0)Cn=0无进位
算术运算(M=0)Cn=1有进位
0000
A减1
A
A
A加1
0001
AB减1
AB
A+B
(A+B)加1
0010
+B
A减1
A
B
A+
(A+)加1
0011
1
减1
0
0
减1
0
0100
A加(A+)
A加(A+)加1
A加(A)
A加A加1
0101
AB加(A+)
AB加(A+)加1
(A+B)加A
(A+B)加A加1
0110
A减B减1
A减B
A⊕B
A减B减1
A减B
0111
A+
A+
(A+)加1
A
A减1
A
1000
B
A加(A+B)
A加(A+B)加1
+B
A加AB
A加AB加1
1001
A⊕B
A加B
A加B加1
A加B
A加B加1
1010
B
A加(A+B)
A加(A+B)加1
B
(A+)加AB
(A+)加AB加1
1011
A+B
A+B
(A+B)加1
AB
AB减1
AB
1100
0
A加A*
A加A加1
1
A加A*
A加A加1
1101
A
AB加A
AB加A加1
A+
(A+B)加A
(A+B)加A加1
1110
AB
A加A
A加A加1
A+B
(A+)加A
(A+)加A加1
1111
A
A
A加1
A
A减1
A
4.4存储器
主存基本组成如下所示,根据MAR中的地址访问某个存储单元时,先经过地址译码、驱动等电路找到所需访问的单元,读出时,需经过放大器将被选中单元的存储字送到MDR,写入时,MDR中的数据也必须经过写入电路才能真正写入到被选中的单元中。
4.5控制器
4.5.1基本原理
(1) 将控制器所需的微指令,以代码(微码)形式编成微指令,存入一个用ROM构成的控制器中。
(2) 将各种机器指令的操作分解为若干微操作序列。每条微指令包含的微命令控制,实现一步操作。若干条微指令组成一小段微程序,解释执行一条机器指令。
4.5.2控制器逻辑组成
(1) 控制存储器CM
这个存储器用来存放微程序,所存储的内容是控制机器操作的微命令。在CPU工作时CM只读不写,以确保重要的微程序内容不被破坏。
(2) 微指令寄存器μIR
它分为两大部分:一部分提供微命令的微操作控制字段;另一部分称为顺序控制字段,它指明后继微指令地址的形成方式,用以控制微程序的连续执行。
(3) 微地址形成电路
一般依据下述几种信息中的一部分去形成后继微地址:1.现行微指令中顺序控制字段;2.现行微指令地址;3.微程序转移时的微地址;4机器指令有关代;5.机器运行状态等。
(4) 微地址寄存器μAR
在从CM中读取微指令时,微地址寄存器中保存着CM的地址(即微地址),指向相应的CM单元。
4.5.3机器指令的读取与执行
(1) 在微程序中有一条或两三条微指令,其微命令实现取指操作,可称为“取机器指令用的微指令”,属于微程序中的公用部分。
(2) 根据机器指令中的操作码,通过微地址形成的电路,找到与该机器指令所对应的微程序入口地址。
(3) 逐条取出对应的微程序,每一条微指令提供一个微命令序列,控制有关的操作。执行完一条微指令后,根据微地址形成方法产生后继微地址,读取下一条微指令。
(4) 执行完对应于一条机器指令的一段微程序后,返回到“取机器指令用的微指令”,开始又一个机器指令周期。
4.5.4微指令的编码方式
采用直接控制法的编制方式。
4.5.5微程序的顺序控制方式
1.初始微地址的形成
每一种机器指令由一段对应的微程序解释执行,其入口就是我们所说的初始微地址。
(1) 取机器指令
设置一小段公用的“取机器指令的微程序”,实现取指操作。这段微程序可以从0#单元或者其他特定单元开始。
(2) 功能转移
取出机器指令后,根据指令代码转换成微程序段的入口地址,称为功能转移。
一级功能转移:根据指令操作码,一次转移到相应微程序入口。
2.微程序的设计
针对模型机数据通路结构的需要,将微操作控制字段分为三个部分:
(1)基本数据通路操作的控制字段,其中包含输入选择、ALU功能选择、移位选择、内总线输出分配;
(2)访问主存的控制字段,其中包含地址选择、读写控制;
(3)辅助操作的控制字段,即将前两类基本操作未能包括的其它零星操作(如开中断、关中断等)归为一类,称为辅助操作;
3.时序系统的设计
4、CPU控制流程
模型机微指令格式:
AI(3)
BI(3)
ALU(6)
移位器(2)
内总线(4)
EMAR
SMBR
SIR
R
W
顺序控制
1.基本数据通路控制字段
(1)AI:ALU的A输入端选择,3位
000 无输入
001 R0 -->A
010 R1 -->A
011 C-->A
100 D-->A
101 PC-->A
110 SP-->A
(2)BI:ALU的B输入端选择,3位
000 无输入
001 R0 -->B
010 R1 -->B
011 C-->B
100 D-->B
101 MBR-->B
AI与BI字段都有一段编码组合尚未定义,可供扩充微命令。
(3)ALU:即ALU功能选择信号MS3S2S1S0Cn,共6位,采取直接控制法
(4)移位器:2位
00 无操作
01 DM(直传)
10 SR(右移)
11 SL(左移)
(6)内总线输出分配:4位
0000 无输出,不发打入脉冲
0001 CPR0
0010 CPR1
0011 CPC
0100 CPD
0101 CPMAR
0110 CPMBR
0111 CPPC
1000 CPIR
1001 CPSP
2.访存操作控制字段
EMAR: 1位,为1时由MAR向地址总线提供有效地址,为0时MAR与地址总线脱离。
SMBR: 1位
SIR: 1位
R: 1位,为1时读主存,同时作为EMAR。
W: 1位,为1时写入主存。
以上五位采取直接控制法。若EMAR为0,CPU不访存,但可由DMA控制器提供地址。SMBR同理。若W与R均为0,则CPU不工作。
3.顺序控制字段SC,4位
0000 微程序顺序执行
0001 按指令操作码OP断定,分支转移
0010 无条件转移,由微指令最高8位提供转移微地址
0011 按OP与DR(目的寻址方式是寄存器型或非寄存器型)断定,分支转移
0100 按J(转移成功与否)与PC(指令中指定寄存器是否为PC)断定,分支转移
0101 按源寻址方式断定,分支转移
0110 按目的寻址方式断定,分支转移
0111 转微子程序,将返回微地址存入一个专设的返回微地址寄存器中,并由微指令第 34--27位 提供微子程序入口,
1000 从微子程序返回,由返回微地址寄存器提供返回地址
4.6操作流程图和时间表
操作时间表(以寄存器间址为例):
MOV指令:
FT0:EMAR R SIR PC->A, Y=A+1, DM CPC
ST0:PC/Ri->A, Y=A DM CPMAR
ST1:EMAR R SMBR MBR->B, Y=B, DM CPC
DT0:Rj->A Y=A DM CPMAR
ET0:C->A Y=A DM CPMBR
ET1:EMAR W
ET2:PC->A Y=A DM CPMAR
ADD指令:
FT0:EMAR R SIR PC-> A, Y=A+1, DM CPC
ST0:PC/Ri->A, Y=A DM CPMAR
ST1:EMAR R SMAR MBR->B, Y=B, DM CPC
DT0:Ri->A Y=A DM CPMAR
DT1:EMAR R SMBR MBR->B Y=B DM CPD
ET0:C->A D->B Y=A+B DM CPMBR
ET1:EMAR W
ET2:PC->A Y=A DM CPMAR
NEG指令:
FT0:EMAR R SIR PC->A, Y=A+1, DM CPC
ST0:PC/Ri->A, Y=A DM CPMAR
ST1:EMAR R SMAR MBR->B, Y=B, CPC
DT0:Ri->A Y=A DM CPMAR
DT1:EMAR R SMBR MBR->B Y=B DM CPD
ET0:Ri->A或C->A Y=0-A DM
ET1:EMAR W
ET2:PC->A Y=A DM CPMAR
JMP指令:
FT0:EMAR R SIR PC->A, Y=A+1, DM CPC
ET0:Ri->A Y=A DM CPMAR
ET1:Ri->A Y=A DM CPPC
4.7微指令码
表:微指令码(以MOV (R0),(R1) ;ADD (R0),(R1) ;NEG (R1) ;JMP (R0)为例)
五、成员分工
六、实验感想与讨论
通过本次实验,我们熟悉了计算机的结构和基本组成,复习和掌握了课堂上学习的基本知识点,本次实验是一个综合性很强的实验,包括指令系统、运算器、存储器、控制器等部件的设计,我们基本实现了要求内容。
模型机的设计整体是遵循了课本的思想与内容。首先我们设计了数据格式,每条指令的格式,包括操作码、寄存器号以及寻址方式,然后设计寄存器类型以及寻址类型,不同于课本的16位机,此次要求设计的是8位模型机,因此设定操作码、寄存器号、寻址方式、寄存器号、寻址方式分别为2位、2位、1位、2位、1位,操作码的位数限定了我们可以进行4种操作,设计为MOV,ADD,NEG,JMP操作,寄存器号设置为2位,共有4个寄存器,包括2个通用寄存器R0、R1,一个PC寄存器和一个SP寄存器,我们选取了每类中最具代表性的指令进行设定,从而简化了模型机的设计,以达到整体模拟的功能。
在CPU在处理指令时,先分析操作码类型,看其是传送类、双操作数、单操作数还是转移类型,然后进行对应的取指、取源操作数、取目的操作数、执行操作数等,进入各自的机器周期操作。
通过本次实验设计,我们掌握了计算机的基本组成和功能,更进一步形象地了解了计算机的工作方式,通过设计计算机工作所需的几大部件掌握了各大部件的功能与设计方法,融合了第二章运算器的设计及第五章中央处理器的内容,更好地理解融合了课本的理论知识;计算机运行是通过各类指令进行的,我们自己动手设计常用典型指令,了解了指令的执行流程,同时,更深一步地学习微程序控制器的原理和设计过程,也明白了微指令是如何控制执行的。令我们受益匪浅。
七、设计的主要参考文献
1. 唐朔飞. 计算机组成原理. 高等教育出版社,2000.
2. 王诚. 计算机组成与设计. 清华大学出版社,2008.
3. 王爱英. 计算机组成与结构. 清华大学出版社,2001.
4. 白中英. 计算机组成原理. 科学出版社,2006.
第 页 共 页
展开阅读全文