计算机组成与结构课程设计.docx
《计算机组成与结构课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成与结构课程设计.docx(40页珍藏版)》请在冰点文库上搜索。
计算机组成与结构课程设计
前言
随着计算机科学与技术的迅猛发展,直接推动了我们对计算机组成与结构这门课程的学习。
计算机总体上是由软件和硬件组成。
硬件是物质基础,没有良好的硬件,软件将无法发挥作用;软件是灵魂,没有软件,计算机就无法工作,软件不良,计算机也无法高效率地工作。
计算机的硬件由运算器、控制器、存储器、输入设备和输出设备构成。
计算机的软件主要由系统软件与应用软件组成。
程序预先存放在存储器中,计算机工作时能自动高速地从存储器中取出指令和数据加以执行。
计算机是通过执行指令来处理各种数据的。
为了指出数据的来源、操作结果的去向及所执行的的操作,一条指令一般包括操作码、操作数地址、操作结果的存储地址、下一条指令的地址。
操作码具体说明操作的性质和功能。
一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来完成不同的操作。
操作数的地址——CPU通过该地址就可以取得所需的操作数。
把对操作数的处理结果保存在操作结果存储地址中以便再次使用。
计算机的性能与它的指令系统有很的关系,而指令系统的设置又与机器的硬件密切相连。
在本次课程设计中,我在同学的帮助下完成相应的整体逻辑图的设计、指令系统的设计、确定微操作控制信号等,设计的一台小型的实验计算机,能基本实现四则运算。
前言························································
任务书······················································
第1章实验计算机的设计
确定设计总要求·······································
设计整机逻辑框图·····································
设计指令系统·········································
设计指令执行流程·····································
确定微操作控制信号及其实现方法························
设计微指令格式········································
确定微程序控制方式····································
编写指令的微程序······································
设计实验接线表········································
编写调试程序·········································
编写应用程序·········································
第2章实验计算机的组装
器件排列···············································
信号连接···············································
实验接线板安装·········································
第3章实验计算机的调试
调试准备···············································
程序调试···············································
第4章实验计算机的故障的排除·································
故障的类型和原因·······································
故障的分析查找·········································
小结··························································
参考文献······················································
本科生课程设计任务书
2008届计算机科学与工程系
计算机科学与技术专业
Ⅰ课程设计题目:
实验计算机
利用FD—CES实验仪提供的硬件资源(功能模块、控制台及外设等),按设计、组装、调试等步骤研制一台微程序控制的实验计算机。
Ⅱ原始资料
1、《计算机组成与结构》实验指导书
2、《计算机组成与结构》教材
Ⅲ课程设计任务内容
1.课程设计的目的意义:
通过课程设计培养同学们的系统设计能力,使同学们达到以下能力训练:
、调查研究、分析问题的能力;
、使用设计手册、技术规范的能力;
、查阅中外文献的能力;
、制定设计方案的能力;
、计算机应用的能力;
、设计计算和绘图的能力;
、技术经济指标的分析能力;
、语言文字表达的能力。
2.本课题研究的主要内容:
研制一台性能如下的实验计算机:
(1)不使用外设。
(2)运算器采用单累加器多通用寄存器结构。
(3)操作数寻址方式有:
直接地址寻址
立即数寻址
寄存器直接寻址
(4)指令系统由如下8条指令组成:
指令编码
助记符
指令功能
第一字节
第二字节
I7I6I5I4I3I2I1I0
00000XAi
ADDA,Ri
(A)+(Ri)->Ai
00001XAi
MOVA,Ri
(Ri)->(A)
00010XXX
SRCA
(A)带进位C又环移一位
00011XXX
d7-d0
MOVA,#data
data->A
001000a9a8
a7-a0
LDAaddr
(addr)->A
001010a9a8
a7-a0
STAaddr
(A)->addr
0011000a9a8
a7-a0
JCaddr
若CY=1addr->PC
否则PC+1
001110a9a8
a7-a0
JMPaddr
addr->PC
(5)能执行双字加法程序(程序自编)
第1章实验计算机的设计
确定设计总要求
(1)不使用外设。
(2)运算器采用多单累加器多通用寄存器结构。
(3)能将内存中某一单元(非零)内容乘以4后在将结果放到另一单元。
(4)计算机共有8条指令,下列7种功能的指令:
算术加法指令——ADD
数据传送指令——MOV
进位位置1指令——SRC
存储器读操作指令——LDA
存储器写操作指令——STA
程序无条件跳转指令——JMP
有进位转移指令——JC
(5)微操作控制信号的实现
(1)对于电平有效的微操作控制信号,通常可由微指令码直接实现。
(2)对于脉冲型微操作控制信号,通常需要外加门电路实现。
(3)对需要多个操作控制信号的器件:
由不少器件,它执行某种操作需要多个微操作控制信号同时有效。
对此,通常可将其中某个(某些)信号事先固定准备好。
(4)对只需要一个电平跳变有效的操作信号的器件:
通常需外接门电路加以实现。
1.2设计整机逻辑框图
根据设计要求,对实验仪硬件资源进行逻辑剪辑组合,便可设计出该实验计算机的整机逻辑框图(图1-1)。
实验整机由运算器模块,寄存器堆模块,内存模块,微程序控制模块有序组合而成。
其中运算器模块(ALU)主要由累加器、运算器、累加器暂存器、暂存器、输出缓冲器,以及进位产生线路、累加器判零线路等构成;内存模块为用户提供有效的内存空间;寄存器模块由两片74670组成,提供4个8位寄存器;微程序控制模块主要由11位微地址计数器MPC(74163x3)、2Kx24bit的控存CM(6116x3),以及24位微指令寄存器MIR(74377x3)组。
图1-1整机逻辑框图
1.3设计指令系统
一、指令类型
指令系统含以下类型指令:
1.算术运算类指令
ADDA,Ai,
2.移位操作类指令
SRCA
3.数据传送类指令
MOVA,Ri
MOVA,#data
4.程序跳转控制类指令
JMPaddr
JCaddr
5.存储器操作类指令
LDAaddr
STAaddr
二、指令操作数寻址方式及其编码
对于运算器采用多累加器结构的实验计算机,其指令系统操作数寻址方式有有多种。
需确定实验计算机的指令系统具体由哪些指令组成,包含哪几种类型指令,指令操作数有哪几种寻址方式,以及指令编码等。
这要兼顾必要性(编程方便)和可行性(硬件条件)。
1、直接地址寻址
LDAiaddr;(addr)->Ai
指令第一字节低3位和指令第二字节8位构成11位操作数地址,指令第一字节高5位含有累加器Ai选择码段。
第一字节第二字节
a10
a9
a8
a7
a6
a5
a4
a3
a2
a1
a0
操作码,Bx选择码
11位形式地址
2、累加器直接寻址
单字节指令
MOVA,Ri;(Ri)->(A)
指令(第一)字节含有两个累加器选择码段,分别用于选择Ai和Aj。
操作码和Ri选择码
3、立即数寻址
双字节指令
MOVA,#data;data->A
指令第一字节中含有一个累加器选择码段。
第一字节第二字节
操作码和Ri选择码
8位立即数data
设计指令执行流程
应根据实验计算机整机逻辑图来设计指令系统中每条指令的执行流程。
1、单字节指令ADDA,Ri该指令功能为(A)+(Ri)->Ai,需执行如下微操作:
PCOB1
(1)(PC)----------->IAB----------->OAB
根据PC访问内存。
RCB2,B3CI,GI
(2)(M)-------------->ODB--------------->IDB--------------->IR1
读出指令字节送IR1。
P+1,CK
(3)(PC)+--->PCI
PC加1计数,为取下条指令字节准备。
RR,A,BCG
(4)(Ai)----------------->IDB------------------>ACT
读Ai,经IDB送入ACT,为ALU准备好被加数。
RR,A,BCT
(5)(Aj)---------------->IDB------------------->TMP
读Aj,经IDB送入ACT,为ALU准备好加数
OT,A,B,RR,Cn,M,S3,S2,S1,S0
(6)(ACT)+(TMP)------------------------------------------------------->A
ALU执行加法,结果暂存到累加器A。
SA,SB,C
(7)Cn+4-------------------------->CY
据加法结果置进位标志CY。
OBWR,A,B
(8)(A)------------->IDB----------------------->Ai
累加器内容经BUF,IDB存入Ai。
其中,
(1)
(2)必须同一拍;(5)(6)也必须同一拍;(5)后可以和(6)(7)同一拍(这是TMP设置为直通,CT=1,OT=0),但不可以和(4)同一拍;(4)单独一拍;(3)可以和
(1)
(2)合一拍或与(4)合一拍。
具体方案如下:
T0(第一拍):
(1)
(2)(3)
T1(第二拍):
(4)
T2(第三拍):
(5)(6)(7)
T3(第四拍):
(8)
2、单字节指令MOVA,Ri该指令功能为(Ri)A,需执行如下微操作:
PCOB1
(PC)PC0IABB1OAB根据PC访问内存。
(M)RCODBB2,B3IDBCI,GIIR1取出本指令第一字节送入IR1。
(PC)+1P+1,CKPCIPC加1,为取本指令下一字节做准备。
(PC)PC0LABB1OAB根据PC访问内存。
(Ri)RR,A,B,Cn,M,S3,S2,S1,S0BUFOBIDBCLIR2读Ri内容经AL送入IDB,存入IR
(PC)+1P+1,CKPCIPC加1,为取下条指令作准备。
(I2,I1,I0(IR2))OIIABBIOAB将寄存器内容送入外部数据线。
(M)RCODBB2,B3IDBCLA从内存中把数据送入A中。
其中
(1)
(2)必须同一拍;(4)须一拍;(5)(6)也必须同一拍;(3)可以单独一拍或和
(1)
(2)合一拍或和(4)合一拍;
具体方案如下:
T0(第一拍):
(1)
(2)(3)
T1(第二拍):
(4)
T2(第三拍):
(5)(6)
3、双字节指令MOVA,#data该指令功能为Data->Ai,需执行如下微操作:
PCOB1
(1)(PC)----------->IAB----------->OAB
根据PC访问内存。
RCB2,B3CI,GI
(2)(M)--------------->ODB--------------->IDB--------------->IR1
取出本指令第一字节送IR1。
P+1,CK
(3)(PC)+-------->PCI
PC加1,为取本指令下一字节准备。
PCOB1
(4)(PC)------------------->IAB-------------------->OAB
根据PC访问内存。
RCB2,B3CL
(5)(M)---------------->ODB--------------------->IDB---------------->IR2
取出本指令第二字节送IR2。
P+1,CK
(6)(PC)+------------->PCI
PC加1,为取下一指令字节准备。
其中
(1)
(2)必须同一拍;(4)(5)也必须同一拍;(3)可以单独一拍或和
(1)
(2)合一拍;(6)可以单独一拍或和(4)(5)合一拍。
具体方案如下:
T0(第一拍):
(1)
(2)(3)
T1(第二拍):
(4)(5)(6)
4、双字节指令LDAA,addr该指令功能为(addr)->A,需执行如下微操作:
PCPC0IABB1OAB根据PC访问内存。
(M)RCODBB2,B3IDBCI,GIIR1取出本指令第一字节送入IR1。
(PC)+1P+1,CKPCIPC加1,为取本指令下一字节做准备。
(PC)PC0LABB1OAB根据PC访问内存。
(M)RCODBB2,B3IDBCLIR2取出本指令第二个字节送入IR2.
(PC)+1P+1,CKPCIPC加1,为取下条指令作准备。
(I2,I1,I0(IR2))OIIABBIOAB由IR1低3位和IR2的8位形成11位操作数地址
(M)RCODBB2,B3IDBCLTMP从内存中读出操作数存入TMP。
(TMP)OT,Cn,M,S3,S2,S1,S0,X1,X0,CAATMP内容经ALU存入A。
i。
其中
(1)
(2)必须同一拍;(5)(6)也必须同一拍;(7)(8)也必须同一拍;(3)可以单独一拍或和
(1)
(2)同一拍;(6)可单独一拍也可和(4)、(5)合一拍或者和(7)(8)合一拍。
具体方案如下:
T0(第一拍):
(1)
(2)(3)
T1(第二拍):
(4)(5)(6)
T2(第三拍):
(7)(8)
5、双字节指令STAA,adder该指令功能为(Ai)->addr,需执行如下微操作:
PCPC0IABB1OAB根据PC访问内存。
(M)RCODBB2,B3IDBCI,GIIR1取出本指令第一字节送入IR1。
(PC)+1P+1,CKPCIPC加1,为取下一字节作准备。
(PC)PC0LABB1OAB根据PC访问内存。
(M)RCODBB2,B3IDBCLIR2取出本指令第二个字节送入IR2.
(PC)+1P+1,CKPCIPC加1,为取下条指令作准备。
(I2,I1,I0(IR2))OIIABBIOAB由IR1低3位和IR2的8位形成11位操作数地址
(A)RCODBB2,B3IDBCTTMP从内存读出操作数存入TMP。
(TMP)OT,Cn,M,S3,S2,S1,S0,X1,X0,CA(M)TMP内容经ALU存入内存.
(5)JMPaddr
PCPC0IABB1OAB根据PC访问内存。
(M)RCODBB2,B3IDBCI,GIIR1取出本指令第一字节送入IR1。
(PC)+1P+1,CKPCIPC加1,为取下一字节作准备。
(PC)PC0LABB1OAB根据PC访问内存。
(M)RCODBB2,B3IDBCLIR2取出本指令第二个字节送入IR2.
(PC)+1P+1,CKPCIPC加1,为取下条指令作准备。
(I2,I1,I0(IR2))OIIABBIPC由IR1低3位和IR2的8位形成转移地址送入PC
>Ai
从内存读出操作数存入Ai。
其中
(1)
(2)必须同一拍;(5)(6)也必须同一拍;(7)(8)也必须同一拍;(3)可以单独一拍或和
(1)
(2)同一拍;(6)可单独一拍也可和(4)、(5)合一拍或者和(7)(8)合一拍。
具体方案如下:
T0(第一拍):
(1)
(2)(3)
T1(第二拍):
(4)(5)(6)
T2(第三拍):
(7)(8)
7、双字节指令JMPaddr该指令功能为Addr->PC,需执行如下微操作:
PCOB1
(1)(PC)----------->IAB----------->OAB
根据PC访问内存。
RCB2,B3CI,GI
(2)(M)--------------->ODB--------------->IDB--------------->IR1
取出本指令第一字节送IR1。
P+1,CK
(3)(PC)+-------->PCI
PC加1,为取本指令下一字节准备。
PCOB1
(4)(PC)------------------->IAB-------------------->OAB
根据PC访问内存。
RCB2,B3CL
(5)(M)---------------->ODB--------------------->IDB---------------->IR2
取出本指令第二字节(即addr低8位)送IR2。
P+1,CK
(6)(PC)+------------->PCI
PC加1,为取下一指令字节准备。
OILP
(7)I2,I1,I0(IR2)------------------->IAB---------------------->PC
由IR1低3位和IR2的8位形成转移地址送程序计数器PC。
其中
(1)
(2)必须同一拍;(4)(5)也必须同一拍;(7)单独一拍;(3)可以单独一拍或和
(1)
(2)合一拍;(6)是冗余操作。
具体方案如下:
T0(第一拍):
(1)
(2)(3)
T1(第二拍):
(4)(5)(6)
T2(第三拍):
(7)
8、双字节指令JCaddr该指令功能为若CY=1则addr->PC,否则PC加1,需执行如下微操作:
PCOB1
(1)(PC)----------->IAB----------->OAB
根据PC访问内存。
RCB2,B3CI,GI
(2)(M)--------------->ODB--------------->IDB--------------->IR1
取出本指令第一字节送IR1。
P+1,CK
(3)(PC)+-------->PCI
PC加1,为取本指令下一字节准备。
PCOB1
(4)(PC)------------------->IAB-------------------->OAB
根据PC访问内存。
RCB2,B3CL
(5)(M)---------------->ODB--------------------->IDB---------------->IR2
取出本指令第二字节(即addr低8位)送IR2。
P+1,CK
(6)(PC)+------------->PCI
PC加1,为取下一指令字节准备。
OILP
(7)I2,I1,I0(IR2)------------------->IAB---------------------->PC
由IR1低3位和IR2的8位形成转移地址送程序计数器PC。
其中
(1)
(2)必须同一拍;(4)(5)也必须同一拍;(7)单独一拍;(3)可以单独一拍或和
(1)
(2)合一拍;(6)是冗余操作。
具体方案如下:
T0(第一拍):
(1)
(2)(3)
T1(第二拍):
(4)(5)(6)
T2(第三拍):
(7)
1.4确定微操作控制信号及实现方法
本设计阶段任务是综合实验计算机指令系统各指令执行流程中涉及到的微操作控制信号,统计总共需多少个微操作控制信号,每个信号的有效性,决定这些信号中哪些由软件(微指令)直接产生,哪些需用硬件(TTL)实现。
1、ALU的操作控制信号Cn、M、S3、S2、S1、S0可由某6位微指令码直接控制;运算器模块中暂存器TMP的操作控制信号CT和OT也都是电平有效,故也可用某两位微码控制。
2、内存的读控制信号RC宜采用负脉冲,以保证内存读取数据的可靠性:
可以用“与非”门实现RC=/(Mi*¢)<1>
或者用“或”门实现RC=Mi+/¢<2>
若采用式<1>,则Mi为“1”有效;
若采用式<2>,则Mi为“0”有效;
3、累加器A(74198)的操作至少需要X0、X1和CA3个控制信号,其中XO、X1是电平有效,CA是电平正跳变有效。
我们不妨把CA固定接(后沿有效),XO、X1分别由微码Mi、Mj控制;
指令寄存器IR1(74377)的接数有GI和CI两个控制信号。
当GI为“0”且CI电平正跳时IR1接数。
我们可把CI固定接¢(后沿有效),而GI由某位微码控制产生;
对数据总线转送器件74245,