TEC 计算机组成实验系统.docx
《TEC 计算机组成实验系统.docx》由会员分享,可在线阅读,更多相关《TEC 计算机组成实验系统.docx(20页珍藏版)》请在冰豆网上搜索。
TEC计算机组成实验系统
中国地质大学
计算机组成原理实验报告
姓名:
刘欣凯
班级:
192102-21
学院:
计算机学院
学号:
356
日期:
2011年12月
指导老师:
刘超
课程设计组成
一:
实验介绍及原理;
二:
实容验内及实验报告;
三:
心得体会;
实验内容:
1:
数据通路组成实验;
2:
常规型微程序控制组成实验;
3:
CPU组成与机器指令执行实验;
4:
中断原理实验
实验报告组成:
1:
实验目的;
2:
实验设备;
3:
实验电路;
4:
实验任务;
5:
实验数据;
一、实验介绍及原理
一:
TEC-4计算机组成实验系统简介
TEC-4计算机组成实验系统由清华同方教学仪器设备公司研制。
它是一个典型的计算机模型实验仪器,可用于将大专、本科、硕士研究生计算机组成原理课程、计算机系统结构课程的教学实验。
该仪器将提高学生的动手能力就,提高学生对计算机整体和各组成部分的理解,提高学生对计算机系统的综合设计能力。
二:
TEC-4计算机组成实验系统的组成
1.控制台
2.数据通路
3.控制器
4.用户自选器件实验区
5.时序电路
6.电源部分
三:
时序发生器
时序发生器器产生计算机模型的时序。
TEC-4计算机组成原理实验的时序电路如图一,电路采用2片GAL22V10(U6,U7),可产生两级等间隔时序新号T1-T4和W1-W4。
其中一个W由一轮T1-T4循环组成,相当于一个微指令周期;而一轮W1-W4循环可供硬连线控制器执行一条机器指令。
CLR#为复位新号,低有效。
试验仪处于任何状态下令CLR#=0,都会使时序发生器和微程序控制器复位;CLR#=0时,则可以正常运行。
TJ是停机新号,是控制器的输出新号之一。
连续运行时,如果控制信号停机=1,会使机器停机,停止发送时序脉冲,从而暂停程序。
QD是启动信号,是运行程序的标志。
DP,DZ,DB是来自控制台的开关信号。
DP表示单拍,当DP=1时,每次只执行一条微指令;DZ表示单指,当DZ=1时,每次只执行一条机器指令;当DP,DB,DZ都为0时,机器连续运行。
图一
四:
数据通路
TEC-4计算机组成原理实验的数据通路的设计采用了数据总线和指令总线双总线形式,使得流水实验能够实现。
它还使用了大规模在系统可编程器件作为运算器和寄存器堆,使得设计简单明了,可修改性强。
数据通路位于实验系统的中部。
如图二
其包括如下主要部件:
1、运算器ALU,它有一片ispLSI1024(U47)组成,在选择端S2,S1,S0控制下,对数据A和B加、减、与、直通、乘五种运算。
2、DR1和DR2运算操作数寄存器;
3、多端口通用寄存器堆RF
4、暂存寄存器ER
5、程序计数器PC、地址加法器ALU2;地址缓存器R4;等等
图二
五:
控制器
控制器位于本实验系统的中上部,产生数据通路操作所需的控制信号。
如图三
图三
六:
控制台
控制台位于TEC-4计算机组成原理实验系统的下部,主要由指示灯和若干拨动开关组成,用于给数据通路设置数、设置控制信号、显示各种数据使用。
二、实验内容及实验报告
实验一:
常规型微程序控制器组成实验
一、实验目的:
1.掌握时序产生器的组成原理。
2.掌握微程序控制器的组成原理。
3.掌握伪指令格式的化简和归并。
二、实验设备:
计算机组成原理实验仪一台
2.双踪示波器一台
3.直流万用表一只
4.逻辑测试笔一支
三、实验电路:
1:
微指令格式与微程序控制器电路
根据给定的12条机器指令功能和数据通路总体图的控制信号,采用的微指令格式见图五。
图四
微指令字长共35位,其中顺序控制部分10位,后续微地址6位,判别字段25位,各位进行直接控制。
微指令格式中,信号名带有后缀“#"的信号为低有效,不带有后缀“#”的信号为高有效信号。
对应微指令格式,微程序控制器的组成见图六,控制器采用5片EEPROM28C64(U8,U9,U10,U11,U12)。
微地址寄存器6位,用一片6D触发器74HC174(U1)组成,带有清零端。
两级与门、或门构成微地址转移逻辑,用于产生下一微指令的地址。
在每个T1上升沿时刻,新的微指令地址会打入微地址寄存器中,控制存储器随既输出相应的微命令代码。
图五
2、机器指令与微指令
本实验仪使用12条机器指令,均为单字长(8位)指令。
指令功能及格式如表四所示。
指令的高4位提供给微程序控制器,低4位提供给数据通路。
上诉12条指令的微程序流程设计如图七,每条微指令可按前述的微指令格式转换成二进制代码,然后写入5个28C64中。
为了写入的正确,还设计了一下五个控制台操作数程序:
存储器写操作(KWE):
按下复位按钮CLR#后,微地址寄存器状态为全零。
此时置SWC=0,SWB=1,SWA=0,按启动按钮后微指令地址转入27H,从而可对RAM连续进行手动写入。
存储器读操作(KRD):
按下CLR#后,置SWC=0,SWB=0,SWA=1,可对RAM连续进行读操作。
启动程序(PR):
按下CLR#后,置SWC=0,SWB=0,SWA=0,用数据开关SW7-SW0设置内存中程序的首地址,可以执行“取指”微命令。
名称
助记符
功能
指令格式
R7R6R5R4
R3R2
R1R0
加法
ADDRd,Rs
Rd+Rs→Rd
0000
RS1RS0
RD1RD0
减法
SUBRd,Rs
Rd-Rs→Rd
0001
RS1RS0
RD1RD0
乘法
MULRd,Rs
Rd*Rs→Rd
0010
RS1RS0
RD1RD0
逻辑与
ANDRd,Rs
Rd&Rs→Rd
0011
RS1RS0
RD1RD0
存数
STARd,[Rs]
Rd→[Rs]
0100
RS1RS0
RD1RD0
取数
LDARd,[Rs]
[Rs]→Rd
0101
RS1RS0
RD1RD0
无条件转移
JMP[Rs]
[Rs]→PC
1000
RS1RS0
××
条件转移
JCD
若C=1则PC+D→PC
1001
D3D2
D1D0
停机
STP
暂停运行
0110
××
××
中断返回
IRET
返回断点
1010
××
××
开中断
INTS
允许中断
1011
××
××
关中断
INTC
禁止中断
1100
××
××
表一
写寄存器操作(KLD):
按下CLR#后,置SWC=0,SWB=1,SWA=1,可对寄存器堆中的寄存器连续进行写操作。
读寄存器操作(KRR):
按下CLR#后,置SWC=1,SWB=0,SWA=0,可对寄存器堆中的寄存器连续进行读操作。
图六
四.实验任务:
1.按照实验要求,链接试验台的数码开关K0-K15、控制开关、按钮开关、时钟信号源和微程序控制器。
2.熟悉微指令格式的定义,按此定义将控制台指令微程序的8跳微指令按十六进制编码,列于下表(表五)制台指令的功能由SWC,SWB,SWA三个二进制开关的状态来指定(KRD=001B,KWE=010B,PR=010B)。
微指令地址
微指令编码
微指令地址
微指令编码
00H
005C00007
3CH
405C8003D
07H
005C00207
17H
00544003F
27H
D
3FH
409C4003E
3DH
0014003C
3EH
005C8003F
表二
单拍(DP)方式执行控制台微程序,读出上述八条微指令,用P字段和微地址指示灯跟踪微指令执行情况,并与上表数据对照。
五、实验数据:
按以上实验步骤得到实验数据如下表(表三)
微指令地址
微指令编码
读出的微指令编码
00H
005C00007
005C00007
07H
005C00207
005C00207
27H
D
D
3DH
0014003C
0014003C
3CH
405C8003D
405C8003D
17H
00544003F
00544003F
3FH
409C4003E
409C4003E
3EH
005C8003F
005C8003F
实验二:
CPU组成与机器指令执行实验
一、实验目的:
1.将微程序控制器执行部件(整个数据通路)联机,组成一台模型计算机;
2.用微程序控制器控制模型机数据通路;
3.通过CPU运行九条机器指令(排除有关中断的指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机型概念。
二、实验设备:
计算机组成原理实验仪一台
2.双踪示波器一台
3.直流万用表一只
4.逻辑测试笔一支
三、实验电路:
本次实验用到前面实验中的所有电路,包括运算器、存储器、通用寄存器堆、程序计数器、指令寄存器、微程序控制器等,将几个模块组合成为一台简单计算机。
在本次实验中,数据通路的控制将有微程序控制器来完成。
CPU从内存取出一条机器指令到执行指令结束的一个机器指令周期,是有微指令组成的序列来完成的,即一条指令对应一个微程序,其框图如图七
图七
四、实验任务:
1.对机器指令系统组成的简单程序进行译码。
将下表的程序按指令格式手工汇编成十六进制机器代码。
表四
地址
指令
机器代码
00H
LDAR0,[R2]
01011000
01H
LDAR1,[R3]
01011101
02H
ADDR0,R1
00000100
03H
JC+5
04H
ANDR2,R3
00111110
05H
SUBR3,R2
00011011
06H
STAR3,[R2]
01001011
07H
MULR0,R1
00100100
08H
STP
0110XXXX
09H
JMP[R1]
100001XX
表四
2、按照图六框图,参考前面实验的电路图完成连线。
a.将跳线开关J1用短路子短接。
时序发生器的输入TJI接控制存储器的输出TJ。
控制器的输入C接运算器ALU的C。
控制器的输入IR7、IR6、IR5、IR4依次指令寄存器IR的输出IR7、IR6、IR5、IR4。
共6条线。
b.控制器的输出LDIR(CER)、LDPC(LDR4)、PC_ADD、PC_INC、M4、LDIAR、LDAR1(LDAR2)、AR1_INC、M3、LDER、IAR_BUS#、SW_BUS#、RS_BUS#、ALU_BUS、CEL#、LRW、WRD、LDDR1(LDDR2)、M1(M2)、S2、S1、S0依次与数据通路的对应信号连接。
共27条线。
c.指令寄存器IR的输出IR0接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。
共6条线。
合上电源。
按CLR#按钮,使实验系统处于初始状态。
3、将表四中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7-SW0设置通用寄存器R2、R3及其内存相关单元的数据。
(注:
由于设置通用寄存器时会破坏内存单元的数据,因此应先设置寄存器的数据,再设置内存数据。
)
4、.用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF中四个寄存器的数据,以及由STA指令存入RAM中的数据(程序结束后从RAM的相应单元中读出),与理论值作对比。
执行时注意观察微地址指示灯、IR/DBUS指示灯、AR2/AR1指示灯、微地址指示灯和判别字段指示灯的值(可以观察到每一条微指令)。
5、以单指(DZ)方式重新执行程序一遍,注意观察IR/DBUS指示灯、AR2/AR1指示灯的值(可以观察到每一条机器指令)。
列表记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。
(注:
单指方式执行程序时,四个通用寄存器和RAM中的原始数据与第一遍执行程序的结果有关。
)
6、以连续方式(DB,DP,DZ都设为0)再次执行程序。
由于程序中有停机指令STP,程序执行到该指令时自动停机。
列表记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。
(注:
程序执行前的原始数据与第二遍执行结果有关。
)
具体的操作步骤如下:
第一步,利用设置通用寄存器R2、R3的值
在本操作中,我们打算使R2=60H,R3=61H。
1.令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。
令SWC=0、SWB=1、SWA=1,使实验系统处于寄存器加载工作方式KLD。
按CLR#按钮,使实验系统处于初始状态。
2.在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。
该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的内容。
例如可将该地址设置为0FFH。
按一次QD按钮,将0FFH写入AR1和AR2。
3.在SW7—SW0上设置02H,作为通用寄存器R2的寄存器号。
按一次QD按钮,则将02H写入IR。
4.在SW7—SW0设置60H,作为R2的值。
按一次QD按钮,将60H写入IR指定的R2寄存器。
5.在SW7—SW0上设置03H,作为通用寄存器R3的寄存器号。
按一次QD按钮,将03H写入IR。
6.在SW7—SW0设置61H,作为R3的值。
按一次QD按钮,将61H写入R3。
7.设置R2、R3结束,按CLR#按钮,使实验系统恢复到初始状态。
第二步,利用存程序机器代码
本操作中,我们从00地址开始存10个机器代码:
58H,5DH,04H,95H,3EH,1BH,4BH,24H,60H,84H。
在60H存入24H,用于给R0置初值;在61H存入83H,用于给R0置初值。
1.令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。
令SWC=0、SWB=1、SWA=0,使实验系统处于写双端口存储器工作方式KWE,。
按CLR#按钮,使实验系统处于初始状态。
2.置SW7—SW0为00H,按QD按钮,将00H写入AR1。
3.置SW7—SW0为58H,按QD按钮,将58H写入存储器00H单元。
AR1自动加1,变为01H。
4.置SW7—SW0为5DH,按QD按钮,将5DH写入存储器01H单元。
AR1自动加1,变为02H。
5.按QD按钮,使AR1+1。
AR1此时为02H。
6.重复进行下去,一直到将84H写入存储器09H单元。
按CLR#按钮,使实验系统恢复到初始状态。
7.置SW7—SW0为60H,按QD按钮,将60H写入AR1。
8.置SW7—SW0为24H,按QD按钮,将24H写入存储器60H单元。
AR1自动加1,变为61H。
9.置SW7—SW084H,按QD按钮,将83H写入存储器61H单元。
按CLR#按钮,使实验系统恢复到初始状态。
第三步,用单拍(DP)方式执行一遍程序。
在单拍执行过程中,首先要随时监测AR2的值和IR的值,以判定程序执行到何处,正在执行哪条指令。
监测微地址指示灯和判断字段指示灯,对照微程序流程图,可以判断出微指令的地址和正在进行的微操作。
程序执行的结果如下:
初值:
R0未定,R1未定,R2=60H,R3=61H。
存储器60H单元的内容是24H,61H单元的内容是83H。
1.LDAR0,[R2]
执行结果R2=60H,R0=24H。
2.LDAR1,[R3]
执行结果R3=61H,R1=83H。
3.ADDR0,R1
执行结果R0=0A7H,R1=83H,C=0。
4.JC+5
执行结果转移到03H,因为C=0。
5.ANDR2,R3
执行结果R2=60H,R3=61H。
6.SUBR3,R2
执行结果R2=60H,R3=01H
7.STAR3,[R2]
执行结果R2=60H,R3=01H,存储器60单元的内容为01H。
8.MULR0,R1
执行结果R0=15H,R1=83H
9.STP
执行结果:
无变化
10.JMP[R1]
执行结果转移到83H。
第一遍执行结束。
执行结果是R0=15H,R1=83H,R2=60H,R3=01H,存储器60H单元的内容是01H,61H单元的内容是83H。
第四步,用单指(DZ)方式执行一遍程序。
初值:
R0=15H,R1=83H,R2=60H,R3=01H,存储器60H单元的内容是01H,61H单元的内容是83H。
1.LDAR0,[R2]
执行结果R2=60H,R0=01H。
2.LDAR1,[R3]
执行结果R3=01H,R1=5DH。
3.ADDR0,R1
执行结果R0=5EH,R1=5DH,C=0
4.4.JC+5
执行结果转移到03H,因为C=0。
5.ANDR2,R3
执行结果R2=00H,R3=01H。
6.SUBR3,R2
执行结果R2=00H,R3=01H
7.STAR3,[R2]
执行结果R2=00H,R3=01H,存储器00单元的内容为01H。
8.MULR0,R1
执行结果R0=0B6H,R1=5DH
9.STP
执行结果:
无变化
10.JMP[R1]
执行结果转移到5CH
第二遍执行结束。
执行结果是R0=9CH,R1=5CH,R2=00H,R3=01H,存储器60H单元的内容是01H,61H单元的内容是83H,00H单元的内容为01H。
第五步,用连续方式执行一遍程序
由于00单元的内容已被修改,因此在执行前应首先恢复00H单元的内容58H。
初值:
R0=0B6H,R1=5DH,R2=00H,R3=01H,存储器60H单元的内容是01H,61H单元的内容是83H,00H单元的内容为58H。
1.LDAR0,[R2]
执行结果R2=00H,R0=58H。
2.LDAR1,[R3]
执行结果R3=01H,R1=5DH。
3.ADDR0,R1
执行结果R0=0B5H,R1=5DH,C=0
4.4.JC+5
执行结果转移到03H,因为C=0。
5.ANDR2,R3
执行结果R2=00H,R3=01H。
6.SUBR3,R2
执行结果R2=00H,R3=01H
7.STAR3,[R2]
执行结果R2=00H,R3=01H,存储器00单元的内容为01H。
8.MULR0,R1
执行结果R0=41H,R1=5DH
9.STP
实验三:
中断原理实验
一、实验目的
1、从硬件、软件结合的角度,模拟单级中断和中断返回的过程。
2、通过简单的中断系统,掌握中断控制器、中断向量、中断屏蔽等概念。
3、了解微程序控制器与中断控制器协调工作的基本原理。
二、实验设备
1、TEC-4计算机组成原理实验系统
2、双踪示波器一台
3、直流万用表一只
4、逻辑测试笔一之
三、中断的检测、执行和返回过程
微程序控制器每执行一条机器指令之后,执行下一条机器指令之前,先转到微地址0F出,在条件位平P1=1时判断是否有中断请求INTQ。
如果没有,则继续正常的机器指令执行。
若检测到中断请求INTQ,首先发出关中断的信号INTC、保存断点信号LDIAR,并且发出停机信号TJ,等待手动设置中断向量。
设置好SW7-SW0后,按QD按钮启动,机器将中断向量读入PC中,从而转移到中断服务子程序去执行。
执行一条机器指令IRET,从中断服务之程序返回时,发出IAR-BUS#信号,从中断地址寄存器IAR向数据总线DBUS输出断点地址,再从DBUS依次写入到R4,PC中,恢复执行被中断的程序。
四、实验任务
(1)、了解中断系统中每个信号的意义和变化,并将下面的主程序和中断服务程序手工汇编成十六进制机器代码。
地址
指令
机器代码
20H
INTS
21H
LDAR0,[R2]
01011000
22H
ADDR0,R0
00000000
23H
ADDR0,R0
00000000
24H
ADDR0,R0
00000000
25H
ADDR0,R0
00000000
26H
ADDR0,R0
00000000
27H
ADDR0,R0
00000000
28H
ADDR0,R0
00000000
29H
JMP[R1]
中断服务程序:
地址
指令
机器代码
0A0H
ANDR0,R0
00110000
0A1H
IRET
(2)、参考CPU组成与机器指令执行实验,再加上中断系统,完成本次实验的线路连接、
(3)、将上述任务
(1)的程序代码存入内存中,并根据需要设置通用寄存器组成和内存相关单元的数据。
其中,寄存器R1的值应为21H,以便程序循环执行。
(4)、从地址20H执行程序,在程序运行中,按一次控制台的INTR。
进入中断后,用单拍方式执行,直至返回主程序为止。
(5)、重复执行(4)两次。
(6)、将RAM中的20H单元的内容由指令INTS改为INTC,重做(4),记录发生的现象。
三、心得体会
经过一个学期对计算机组成原理的学习,我对其有了一定的理解,期末的课程设计是检测我们对这门课的掌握程度以及能不能灵活运用的能力。
课程设计开始,看到课本上的方法和步骤感觉蛮简单的,但是在真正做的过程中,我发现事情并不是那么简单的,有写东西虽感觉虽然那么回事,但是却很难通过硬件把它实现。
看着手中的器件却不知道该怎样下手,有时还会遇到虽然教材上是这样写的但是做起来它就是不对等等这样或那样的问题。
在做的过程中,我遇到的不只是知识上的问题,还有其它意想不到的问题:
比如硬件问题,我有多次碰到机箱有问题的实验台,有的都连好线了却发现机箱有问题,在这种情况下真的很无奈,但是却又没有办法,只能重头再来,相信最终一定会找到好的实验箱来完成实验的,经过这样的困难之后,我做起实验更有耐心了,正是这锻炼了我的心智!
其中第一个实验师最简单的验证KRD、KWE、KLD、KRR,我们能很轻松的做出来。
但是,我们还是发现了自己的一些不足。
这次的实验平台是TEC-4计算机组成实验系统,有很多的细节都不需要我们处理,我们在做的时候只需要跟着程序的流程走,每步骤是实现什么功能,还是很模糊,需要看书!
后面的实验就相对较难,其中第二个内容是用DP方式,运行存入内存的指令,并确保指令正确执行。
这是整个课程设计的重点和难点。
最后,在老师和同学的帮助下我完成了此次课程设计,我感觉我不单单是完成了一项任务,更重要是我从中学到了很多东西,课本上的东西是很容易学,但是一到实践就会感到手忙脚乱,不知所措,所以我们平时要注意加强自己的动手能力,有意思的训练我们的动手能力!
从总的方面讲这次课程设计师成功的,达到了它的要求!