计算机组成原理课程.docx
《计算机组成原理课程.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程.docx(29页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程
计算机组成原理课程
计算机科学与技术0601班
姓名:
刘佳学号:
0699020103
同组其他人员(徐静蕾、赵雯、卢燕妮、王大伟、焦彤)
日期:
2009年1月11日
CPU综合设计
目录
一、教学目的、任务与实验设备3
1.学习目的3
2.学习任务3
3.设计3
4.调试3
5.实验设备3
二、CPU指令系统的拟定3
1.指令格式3
2.寻址方式4
3.指令类型5
三、运算器的设计9
1、SN74181的引脚框图:
9
2.引脚功能:
10
3、SN74181功能表10
四、数据通路结构的建立12
1、部件设置13
2、总线与数据通路结构13
3、各类信息的传送路径14
4、微命令的设置16
五、组合逻辑控制器的设计17
1.功能描述和结构17
2.输入、输出端口定义17
3.指令译码器18
4、时序发生器21
5、编码器22
6、程序计数器的设计............................................................................................................24
7、微操作信号发生器24
六、下载调试和验证24
(1)实验接线25
(2)连接实验线路,仔细查线无误后接通电源。
26
(3)写微程序和程序26
(4)运行程序29
(5)采用单步或连续运行方式执行机器指令,参照机器指令及微程序流程图,将实验现象与理论分析比较29
七、设计总结29
八、参考文献30
一、教学目的、任务与实验设备
1.学习目的
从计算机的基本概念、基本组成及基本功能着手,对计算机的各个基本组成部件及控制单元的工作原理进行学习,掌握有关软、硬件的基本知识,尤其是各基本组成部件有机连接构成整机系统的方法,为培养自身对计算机系统的分析、设计、开发和使用能力打下基础。
通过本门课程的学习,能在自己的脑中建立计算机的整机概念。
2.学习任务
掌握数字化信息编码及运算方法,运算器的逻辑构成;熟悉半导体存储器、磁表面存储器基本原理,掌握存储体系构成;掌握寻址和指令系统;熟悉中央处理器组成、时序控制方法,掌握控制器设计技术;熟悉系统总线和I/O系统。
3.设计
根据课程设计要求,分别建立CPU的指令系统,利用运算器设计实验结果,设计组合逻辑控制器,设计数据通路结果框图等。
4.调试
把设计结果下载到实验版上,通过执行指令对设计进行验证
5.实验设备
(1)PC机一台
(2)DVCC试验箱
(3)各种实验多需要的跳线,连接线等
二、CPU指令系统的拟定
1.指令格式
模型机采用定长的指令格式,每条指令16位字长,占据一个存储单元。
由于指令字长有限,采用寄存器寻址,即指令格式给出寄存器号,根据不同的寻址方式形成相应的地址。
模型机的指令格式有三类:
(1)双操作数值令格式
1512119865320
操作码
寄存器号
寻址方式
寄存器号
寻址方式
目的源
四位操作码可以表示16种操作。
(2)单操作指令格式
15121165320
操作码
(可扩展)
寄存器号
寻址方式
目的
(3)转移指令格式
151211986543210
操作码
寄存器号
寻址方式
N’
Z’
V’
C’
转移地址转移条件
2.寻址方式
模型机的特点是指令中直接给出寄存器编号,供CPU访问。
可编程的寄存器包括寄存器R0~R3,堆栈指针SP,程序计数器PC,程序状态字PSW,针对同一种寻址防护四编码,指定不同的寄存器,派生出多种不同的寻址方式。
模型机的常用的寻址方式:
类型编号
寻址方式
助记符
可指定的寄存器
定义
0型(000)
寄存器寻址
R
R0~R3,SP,PC,PSW
寄存器的内容为操作数
1型(001)
寄存器间址
(R)
R0~R3
寄存器的内容为操作数地址
2型(010)
自减型寄存器寻址
-(R)
-(SP)
R0~R3
寄存器内容减1后的操作数地址
SP内容减1后为堆栈地址
3型(011)
立即/自增型寄存器寻址
(R)+
(SP)+
(PC)+
R0~R3
寄存器的内容为操作数的地址,访问该地址后寄存器内容加1
SP内容为栈顶地址,出栈后SP加1
PC内容为立即数地址,取数后PC内容加1
4型(100)
直接/间接寻址
@(R)+
@(PC)+
R0~R3
寄存器的内容为间接地址,访问地址后寄存器内容加1
PC内容为间接地址,访问后PC内容加1
5型(101)
变址/相对寻址
X(R)
X(PC)
R0~R3
变址寄存器内容与形式地址之和为操作数地址
PC内容与位移量之和为有效地址
6型(110)
跳步
SKP
执行再下条指令
在正式编码中就可以用该表中的类型来指定相应的寻址方式。
3.指令类型
根据模型机的指令格式,操作码有4位,线设置了15种指令(其中两种指令共用一个操作码),余下的两种操作码组合可以供扩展。
按操作数的多少,把模型机的指令分为双操作数指令和但操作数指令两大类;按指令本身的功能,把这写指令分为传送,运算,转移等3类。
模型机的指令类型如下表:
操作码
助记符
含义
操作码
助记符
含义
0000
0001
0010
0011
0100
0101
0110
0111
MOVE
ADD
SUB
AND
OR
EOR
COM
NEG
传送
加
减
与
或
异或
求反
求补
1000
1001
1010
1011
1100
1100
1101
INC
DC
SL
SR
JMP
RST
JSR
加1
减1
左移
右移
转移
返回
转子
(1)传送指令
MOV可以采用不同的寻址方式来预置寄存器或者存储单元,实现见存期和寄存器之间,寄存器与存储单元,各存储单元之间的信息传送,还可以实现堆栈操作POP,PUSH。
(2)双操作数算逻指令
ADD,SUB,AND,OR.EOR.ADD,SUB是带进位的加和减。
其他的是逻辑运算指令,可用来实现位检测,位清除,未设置,位修正等操作。
(3)单操作数算逻指令
有COM,NEG,INC,DC,SL,SR.他们都是单操作数指令,可以实现对操作数的加1减1等操作。
(4)程序控制指令
(a)转移指令JMP
JMP是用来实现无条件转移和条件转移的。
(b)返回指令RST
RST指令是JMP指令的一个特例,但是RST只能采用自增性寄存器间址表明转移地址,并且指定寄存器为SP,即寻址方式(SP)+,则从堆栈中取出返回地址,然后SP+1。
(c)转子指令JSP
执行JSP指令时,首先将返回地址压栈,然后按照寻址方式找到转移地址,把t它送PC中。
综上,得到我们的设计指令为:
⑴LDRRi,D
格式743210
0000
Ri
不用
D
功能:
Ri←M(D)
(2)STRRi,D
格式743210
0001
Ri
不用
D
功能:
M(D)←(Ri)
(3)ADDRi,Rj
格式743210
0010
Ri
Rj
功能:
Ri←(Ri)+(Rj)
(4)SUBRi,Rj
格式743210
0011
Ri
Rj
功能:
Ri←(Ri)-(Rj)
(5)ANDRi,Rj
格式743210
0100
Ri
Rj
功能:
Ri←(Ri)∧(Rj)
(6)ORRi,Rj
格式743210
0101
Ri
Rj
功能:
Ri←(Ri)∨(Rj)
(7)MULRi,Rj
格式743210
0110
Ri
Rj
功能:
Ri←(Ri)×(Rj)
(8)转移指令
格式743210
0111
条件
不用
D
功能:
条件码00无条件转移PC←D
01有进位转移PC←D
10结果为0转移PC←D
11结果为负转移PC←D
⑼INRi,Mj
格式743210
1001
Ri
Mj
其中Mj为设备地址,可以指定四种外围设备,当Mj=01时,选中实验箱的二进制代码开关。
功能:
Ri←(Mj)
⑽OUTRi,Mj
格式743210
1010
Ri
Mj
当Mj=10时,选中实验箱的显示灯。
功能:
(Mj)←Ri
⑾HALT(停机指令)
格式743210
1011
不用
不用
功能:
用于实现停机。
三、运算器的设计
运算部件是CPU内部的重要组成部分,它起到至关重要的作用。
在此,我们暂不涉及运算器的具体设计,仅是利用以往实验所得到的结果,利用已有的芯片来完成我们需要的运算功能。
在此我们借用SN74181,利用它来完成我们需要的功能。
1、SN74181的引脚框图:
2.引脚功能:
1)A0~A3:
4位二进制数A
2)B0~B3:
4位二进制数B
3)F0~F3:
运算结果
4)S0~S3:
状态控制信号,控制运算类型,控制16中运算。
5)M:
运算选择M=1逻辑运算;M=0算术运算。
3、SN74181功能表
工作方式选择S3S2S1S0
逻辑运算M=1
算术运算M=0
0000
A’
A减1
0001
(AB)’
AB减1
0010
A’+B
AB’减1
0011
逻辑1
全1
0100
(A+B)’
A加(A+B’)
0101
B’
AB加(A+B’)
0110
(A
B)’
A加b’
0111
A+B’
A+B’
1000
A’B
A加(A+B)
1001
A
B
A加B
1010
B
AB’加(A+B)
1011
A+B
A+B
1100
逻辑0
0
1101
AB’
AB加A
1110
AB
AB’加A
1111
A
A
通过74181可以形成相应的进位逻辑,组成相应的ALU。
1、组间串行进位的ALU
2、组间并行进位的ALU
运算器的组织如图:
四、数据通路结构的建立
综合以上的相关知识,我们知道,总体结构的设计的内容包含确定各种不见的设置以及它们之间的数据通路结构。
在此基础上,就可以拟出各种信息传送路径,以及为实现这些传送所需要的命令。
数据通路结构如图:
1、部件设置
A.寄存器
(1)可编程寄存器
R0(000),R1(001),R2(010),R3(011),PSW(101),SP(100),PC(111)。
它们都设置3位编号,供CPU变成访问。
(2)暂存器C,D
取源操作数地址或者源操作数时,使用寄存器C,读目的操作数地址或着谜底操作数时,使用寄存器D。
(3)指令寄存器IR
为了提高取指令的速度,把指令从主存读出以后,经数据总线直接置入IR。
(4)与主存的借口寄存器MAR,MDR
CPU访问主存的地址又地址寄存器MAR提供,而MDR则用来暂存CPU与主存之间要交换的数据,其实就是一个中转效果。
B.运算部件
(1)ALU部件
ALU部件采用SN74181。
(2)输入逻辑
输入有两个选择器A,B,它们都有八选一功能。
通用寄存器和暂存器既可以送往A,也可以送往B,但是PC和SP只能送往A,PSW和MDR只能送往B。
ALU输出设置一个移位器,
(3)输出逻辑
ALU输出设置一个移位器,利用对应位的连接关系实现直传,左移,右移。
2、总线与数据通路结构
(1)内总线
单向内总线实现数据分配,寄存器在逻辑上分立。
(2)系统总线
CPU通过系统总线也外界相连,但是为了简化,让CPU直接连到总线上,不考虑信号的转换和扩展。
3、各类信息的传送路径
A.指令信息的传送
指令由主存读出,送人指令寄存器IR:
M→数据总线→IR。
B.地址信息的传送
地址信息包还指令地址,顺序执行的后继指令地址,转移地址和操作数地址等四类。
(1)指令地址
指令地址从PC取出,送人MAR:
PC→选择器→A→ALU→移位器→内总线→MAR。
(2)顺序执行的后继指令地址
现行指令地址PC+1,得到后继指令地址:
PC→A→移位器内总线→PC。
(3)转移地址
按寻址方式形成转移地址。
并送入MAR。
同样,传送路径也因寻址方式而异。
如:
寄存器寻址:
Ri→A/B→ALU→移位器→内总线→PC
寄存器间址:
Ri→A/B→ALU→移位器→内总线→MAR→地址总线→M;
M→数据总线→MDR→B→ALU→移位器→内总线→PC。
(4)操作数地址
按寻址方式形成转移地址。
并送入MAR。
同样,传送路径也因寻址方式而异。
如:
寄存器间址:
Ri→A/B→ALU→移位器→内总线→MAR
变址:
由于形式地址放在紧跟现行指令的下一存储单元中,并由PC指示,所以先访问存取出形式地址,暂存于C,在进行变址计算。
取形式地址:
PC→A→ALU→移位器→内总线→MAR→地址总线→M;
M→数据总线→MDR→B→ALU→移位器→内总线→C。
做变址计算:
变址寄存器→A→ALU→移位器→内总线→MAR。
C.数据信息的传送
(1)寄存器寄存器
Ri→A/B→ALU→移位器→内总线→Rj。
(2)寄存器→主存
Ri→A/B→ALU→移位器→内总线→MDR→数据总线→M。
(3)主存→寄存器
M→数据总线→MDR→B→ALU→移位器→内总线→Rj。
(4)寄存器→外设
Ri→A/B→ALU→移位器→内总线→MDR→数据总线→I/O
(5)外设→寄存器
I/O接口→数据总线→MDR→B→ALU→移位器→内总线→Rj.
(6)主存→主存
主存单元的内容搬迁似乎只需要通过MDR作为中间缓冲即可,但在寻找目的单元地址时有可能采取间址方式或其他更复杂的寻址方式,即需要从主存单元中读取目的地址,且将读得的目的地址经MDR传送到MAR,所以,一般需分成两个阶段实现主存各单元间的传送,先将读出数据暂存于C中,形成目的地址后再将C内容MDR写入目的单元。
M(源单元)→数据总线→MDR→B→ALU→移位器→内总线→C;C→A/B→ALU→移位器→内总线→MDR→数据总线→M。
(7)主存←→外设
有两种方式实现主存与外围设备间的数据传送。
一种方式是由CPU执行通用传送指令,以某种寻址方式指明主存单元与外围接口寄存器的地址,从而实现主存与外围设备间的传送。
这样的传送一般以MDR为中间缓冲,以便与其他传送指令的执行流程相吻合。
即:
M←→数据总线←→MDR
MDR←→数据总线←→I/O接口
另一种是DMA方式,即CPU放弃系统总线,由DMA控制器控制,通过数据总线实现主存与I/O设备之间的直接传送,不动用CPU中的寄存器与暂存器。
即:
M←→数据总线←→I/O接口
4、微命令的设置
在全面分析了各类信息的传送路径之后,对指令将如何执行就有了进一步的了解,且为时序的安排与相应微命令的设置打下了基础。
以上传送过程包含了两大类操作:
内部数据通路操作和外部访存操作。
A.数据通路操作
(1)ALU输入选择
如:
R0→A
(2)ALU功能选择
如:
微命令S3~S0、M、C0。
根据它们的组合选择ALU的运算功能。
(3)移位器功能选择
如:
微命令DM,左移,右移
(4)结果分配
如:
打入脉冲CPR0、CPMAR……
B.访存操作
所需要的命令如下:
EMAR、R、W、SMDR、SIR
五、组合逻辑控制器的设计
1.功能描述和结构
(1)功能描述
根据现行指令、PSW、控制台命令、IO设备接口状态、中断请求、时序系统等产生所需微命令;控制整个CPU的运行。
(2)结构
-指令译码器
-时序发生器
-编码器
-微操作信号发生器
2.输入、输出端口定义
(1)输入
RST/*复位信号
CONSOL/*控制台输入(键盘);
IO/*IO设备接口;
PSW/*寄存器PSW;
TIM_QUE/*时序系统(三级时序);
IR_CODE/*指令输入(16位);
(2)输出
READ/*读存储器;
WRITE/*写存储器;
CPR0/*寄存器R0的打入脉冲
CPR1/*寄存器R1的打入脉冲
CPR2/*寄存器R2的打入脉冲
CPR3/*寄存器R3的打入脉冲
CPC/*寄存器C的打入脉冲
CPD/*寄存器D的打入脉冲
CPPC/*寄存器PC的打入脉冲
CPSP/*寄存器SP的打入脉冲
CPMBR/*寄存器MBR的打入脉冲
CPMAR/*寄存器MAR的打入脉冲
CPPSW/*寄存器PSW的打入脉冲
SMBR/*寄存器MBR的置入端;
SIR/*寄存器R1的置入端;
EMAR/*寄存器MAR的使能端;
SELA3/*选择器A的选择控制(3位)
SELB3/*选择器B的选择控制(3位)
CON_ALU6/*ALU的功能控制(6位)
SHIFT_REG2/*移位器的控制(2位)—左移、右移、直传(DM);
3.指令译码器
(1)说明
由于译码后输出较多,所以按操作类型(IR15—IR12),源寄存器号(IR11—IR9),源寻址方式(IR8--IR6),目的寄存器号(IR5—IR3),目的寻址方式(IR2—IR0)分为五个译码器。
(2)操作类型码
输入:
IR15,IR14,IR13,IR12
输出:
MOV,ADD,SUB,AND,OR,EOR,COM,NEG,INC,DEG,SL,SR,JMP_RST,JSR
功能表:
IR15IR14IR13IR12
IR_OPER_TYPE
IR15IR14IR13IR12
IR_OPER_TYPE
0000
MOV
1000
INC
0001
ADD
1001
DEC
0010
SUB
1010
SL
0011
AND
1011
RL
0100
OR
1100
JMP/RST
0101
EOR
1101
JSR
0110
COM
1110
sti
0111
NEG
1110
cli
(3)源寄存器号译码U_SREG_DECOD
输入:
IR11,IR10,IR9
输出:
S_R0,S_R1,S_R2,S_R3,S_SP,S_PSW,S_PC
功能表:
IR(11DOWNTO9)
IR_SREG_TYPE
000
S_R0
001
S_R1
010
S_R2
011
S_R3
100
S_SP
101
S_PSW
110
S_temp(未用)
111
S_PC
(4)源寄存器寻址方式译码U_SADDR_DECOD
输入:
IR8,IR7,IR6
输出:
S_ADDR_REG,S_ADDR_INDI,S_ADDR_DECR,S_ADDR_INCR,S_DOUB_INDI,S_ADDR_VARI,S_ADDR_SKP
功能描述表:
IR(8DOWNTO6)
IR_SREG_ADDR
000
S_ADDR_REG
001
S_ADDR_INDI
010
S_ADDR_DECR
011
S_ADDR_INCR
100
S_ADDR_VARI
101
S_ADDR_VARI
110
S_ADDR_SKP
111
未用
(5)目的寄存器号译码
输入:
IR11,IR10,IR9
输出:
S_R0,S_R1,S_R2,S_R3,S_SP,S_PSW,S_PC
功能表:
IR(11DOWNTO9)
IR_SREG_TYPE
000
S_R0
001
S_R1
010
S_R2
011
S_R3
100
S_SP
101
S_PSW
110
S_temp(未用)
111
S_PC
(6)目的寄存器寻址译码
输入:
IR8,IR7,IR6
输出:
S_ADDR_REG,S_ADDR_INDI,S_ADDR_DECR,S_ADDR_INCR,S_DOUB_INDI,S_ADDR_VARI,S_ADDR_SKP
功能描述表:
IR(8DOWNTO6)
IR_SREG_ADDR
000
S_ADDR_REG
001
S_ADDR_INDI
010
S_ADDR_DECR
011
S_ADDR_INCR
100
S_ADDR_VARI
101
S_ADDR_VARI
110
S_ADDR_SKP
111
未用
4、时序发生器
(1)说明:
模型机的时序系统采取三级时序(工作周期,时钟周期,工作脉冲)
(2)工作周期
模型机设置六种工作周期状态,用六个周期状态触发器作为它们的标志。
某一时期内只有其中一个周期状态触发器为1,指明CPU现在所处的工作周期状态,为该阶段的工作提供时间标志与依据。
由于暂时不考虑DMA,所以只设置五个工作周期。
取指周期FT
源周期ST
目的周期DT
执行周期ET
中断周期IT
不同类型指令所需的工作周期可能不同。
在每一工作周期结束前,判断下一个周期状