1、TEC4计算机组成原理实验系统计算机组成原理实验指导(学生用书)天津城建学院计算机系2003年9月第一节 TEC4计算机组成原理实验系统 TEC4计算机组成原理实验系统由北京邮电大学计算机学院、清华同方教学仪器设备公司、深圳拓普威电子技术有限公司联合研制。它是一个8位计算机模型实验系统,可用于大专、本科、硕士研究生计算机组成原理课程、计算机系统结构课程的教学实验,对提高学生的动手能力、提高学生对计算机整体和各组成部分的理解、提高学生的计算机系统综合设计能力都会有很大帮助。一、TEC4计算机组成原理实验系统特点1 计算机模型简单、实用,运算器数据通路、控制器、控制台各部分划分清晰。2 计算机模型
2、采用了数据总线和指令总线双总线体制,能够实现流水控制。3 控制器有微程序控制器或者硬布线控制器两种类型,每种类型又有流水和非流水两种方案。4 寄存器堆由1片ispLSI1016组成,运算器由1片ispLSI1024组成,设计新颖。5 实验台上包括了1片在系统编程芯片ispLSI1032,学生可用它实现硬布线控制器。6 该系统能做运算器组成、双端口存储器、数据通路、微程序控制器、中断、CPU组成与机器指令执行、流水微程序控制器、硬布线控制器、流水硬布线控制器等多种实验。7 电源部分采用模块电源,重量轻,具有抗电源对地短路能力。8 采用自锁紧累接接线方式,接线可靠。二、 TEC4计算机组成原理实验
3、系统的组成TEC4计算机组成原理实验系统由下述六部分组成:1 控制台2 数据通路3 控制器4 用户自选器件试验区5 时序电路6 电源部分下面分别对各组成部分予以介绍。三、 电源电源部分由一个模块电源、一个电源插座、一个电源开关和一个红色指示灯组成。电源模块通过四个螺栓安装在实验台下面。它输出+5V电压,最大负载电流3安培,内置自恢复保险功能,具有抗+5V对地短路能力。电源插座用于接交流220伏市电,插座内装有保险丝。电源开关用于接通或者断开交流220伏市电。当电源模块输出+5V时,点亮+5V红色指示灯。四、 时序发生器时序发生器产生计算机模型所需的时序。时序电路由一个1MHz晶体振荡器、2片G
4、AL22V10(U6和U7)组成,位于控制存储器的右边。根据本机设计,执行一条微指令需要4个时钟周期T1、T2、T3、T4,执行一条指令通常需要取指、送操作数、运算、写结果四个节拍,因此本机的基本时序如下:图中,MF是晶体振荡器产生的1MHz基本时钟,T1、T2、T3、T4是数据通路和控制器中各寄存器的时钟脉冲,印制板上已将它们和有关的寄存器连接。T1、T2、T3、T4既供微程序控制器时使用,也供硬布线控制器使用。W1、W2、W3、W4只供硬布线控制器作指令节拍信号使用。五、 数据通路数据通路的设计是TEC4计算机组成原理实验系统最有特色的部分。首先它采用了数据总线和指令总线双总线形式,使得流
5、水实验能够实现。它还使用了大规模在系统可编程器件作为运算器和寄存器堆,使得设计简单明了,可修改性强。数据通路位于实验系统的中部。图4 是数据通路总体图,下面介绍图中个主要部件的作用。1 运算器ALU运算器ALU由一片ispLSI1024(U47)组成,在选择端S2、S1、S0控制下,对数据A和B进行加、减、与、直通、乘五种运算,功能如下: 表1 运算器功能表 选 择 操 作 S2 S1 S0 0 0 0 A & B 0 0 1 A & A(直通) 0 1 0 A + B 0 1 1 A - B 1 0 0 A(低4位) X B(低4位) 进位C只在加法运算和减法运算时产生。加运算中,C表示进位
6、;减运算中,C代表借位。加、减运算产生的进位(借位)在T4的上升沿送入C寄存器保存。与、乘、直通操作不影响进位C的状态,即进位C保持不变。当ALU_BUS = 1时,运算结果送往数据总线DBUS。加、减运算产生的进位(借位)C与控制台的C指示灯相连。2 DR1和DR2DR1和DR2是运算操作数寄存器,DR1和ALU的B数据口相连,DR2和ALU的A数据口相连。DR1和DR2各由2片74HC298(U23、U24、U21、U22)组成。U23是DR1的低4位,U24是DR1的高4位;U21是DR2的低4位,U22是DR2的高4位。当M1=0 且LDDR1=1 时,在T3的下降沿,DR1接收来自寄
7、存器堆B端口的数据;当M1=1 且LDDR1=1 时,在T3的下降沿,DR1接收来自数据总线D_BUS的数据。当M2=0 且LDDR2=1 时,在T3的下降沿,DR2接收来自寄存器堆A端口的数据;当M2=1 且LDDR2=1 时,在T3的下降沿,DR2接收来自数据总线DBUS的数据。3 多端口通用寄存器堆RF多端口通用寄存器堆RF由1片ispLSI1016(U32)组成,它的功能和MC14580类似。寄存器堆中包含4个8位寄存器(R0、R1、R2、R3),有三个控制端口。其中两个端口控制读操作,一个端口控制写操作,三个端口可同时操作。RD1、RD0选择从A端口读出的寄存器,RS1、RS0选择从
8、B端口读出的寄存器,WR1、WR0选择被写入的寄存器。WRD 控制写操作。当WRD = 0时,禁止写操作;当WRD = 1 时,在T2的上升沿将来自ER寄存器的数据写入由WR1、WR0 选中的寄存器。A端口的数据直接送往操作数寄存器DR2,B端口的数据直接送往操作数寄存器DR1。除此之外,B端口的数据还通过1片74HC244(U15)送往数据总线DBUS。当RS_BUS# = 0时,允许B端口的数据送到数据总线DBUS上;当RS_BUS# = 1时,禁止B端口的数据送到数据总线DBUS。4 暂存寄存器ER暂存寄存器ER(U14)是1片74HC374,主要用于暂时保存运算器的运算结果。当LDER
9、 = 1时,在T4的上升沿,将数据总线DBUS上的数据打入暂存寄存器ER。ER的输出送往多端口通用寄存器堆RF,作为写入数据使用。5 开关寄存器SW_BUS开关寄存器SW_BUS(U38)是1片74HC244,用于将控制台开关SW7SW0的数据送往数据总线DBUS。当SW_BUS# = 1时,禁止开关SW7SW0的数据送往数据总线DBUS;当SW_BUS# = 0时,允许开关SW7SW0的数据送往数据总线DBUS。 6. 双端口存储器RAM双端口存储器由一片IDT7132(U36)及少量附加控制电路组成。IDT7132是2048字节的双端口静态随机存储器,本机实际使用256字节。IDT7132
10、两个端口可同时进行读、写操作。在本机中,左端口的数据连接数据总线DBUS,可进行读、写操作,右端口数据和指令总线INS连接,输出到指令寄存器IR,作为只读端口使用。存储器IDT7132有6个控制引脚:CEL#、LRW、OEL#、CER#、RRW、OER#。CEL#、LRW、OEL#控制左端口读、写操作,CER#、RRW、OER#控制右端口读、写操作。CEL#为左端口选择引脚,低有效,为高时禁止左端口操作;LRW为高时,左端口进行读操作,LRW为低时,左端口进行写操作;OER#为低时,将左端口读出的数据放到数据总线DBUS上。CER#、RRW、OER#控制右端口读、写操作的方式与CEL#、LRW
11、、OER#控制左端口读、写操作的方式类似,不过右端口读出的数据放到指令总线上而不是数据总线上。本机设计中,OER#已固定接地,RRW固定接高电平,CER#由CER反相产生。当CER=1 时,右端口读出数据,并放到指令总线INS上;当CER=0 时,禁止右端口操作。左端口的OEL#由LRW经反相产生,不需单独控制。当CEL#=0且LRW=1时,左端口进行读操作;当CER#=0且LRW=0时,在T3的上升沿开始进行写操作,将数据总线DBUS上的数据写入存储器。7 地址寄存器AR1和AR2地址寄存器AR1(U37)和AR2(U27、U28)提供双端口存储器的地址。AR1是1片GAL22V10,具有加
12、1功能,提供双端口存储器左端口的地址。AR1从数据总线DBUS接收数据。AR1的控制信号是LDAR1和AR1_INC。当AR1_INC = 1 时,在T4的上升沿,AR1的值加1;当LDAR1 = 1时,在T4的上升沿,将数据总线DBUS的数据打入地址寄存器AR1。AR2由2片74HC298组成,有两个数据输入端,一个来自程序计数器PC,另一个来自数据总线DBUS 。AR2的控制信号是LDAR2和M3。M3选择数据来源,当M3 = 1 时,选中数据总线DBUS;当M3 = 0 时,选中程序计数器PC。LDAR2控制何时接收地址,当LDAR2 = 1时,在T2的下降沿将选中的数据源上的数据打入A
13、R2。8 程序计数器PC、地址加法器器ALU2、地址缓存器R4程序计数器PC、地址加法器器ALU2、地址缓存器R4联合完成三种操作:PC加载,PC+1,PC+D。R4是一个由2片74HC298(U25、U26)构成的具有存储功能的两路选择器。当M4 = 1时,选中数据总线DBUS;当M4 = 0,从指令寄存器IR的低4位IR0IR3接收数据。当LDR4 = 1时,在T2的下降沿将选中的数据打入R4。ALU2由1片GAL22V10(U17)构成,当PC_ADD = 1 时,完成PC 和IR低4 位的相加,即PC加D。程序计数器PC是1片GAL22V10(U18),当PC_INC =1时,完成PC
14、+1;当PC_ADD =1 时,与ALU2一起完成PC+D的功能;当LDPC=1时, 接收从ALU2 和 R4来的地址,实际是接收来自数据总线DBUS的地址,这些新的程序地址在T4的上升沿打入PC寄存器。9 指令寄存器IR指令寄存器IR是一片74HC374(U20)。它的数据端从双端口存储器接收数据(指令)。当LDIR = 1时,在T4的上升沿将来自双端口存储器的指令打入指令寄存器IR保存。指令的操作码部分送往控制器译码,产生各种所需的控制信号。大多数情况下,指令的操作数部分应连到寄存器堆(用户自己连接),选择参与运算的寄存器。在某些情况下,指令的操作数部分也参与新的PC的计算。本实验系统设计
15、了12条基本的机器指令,均为单字长(位)指令。指令功能及格式如表2所示。表2中的X代表随意值,RS1、RS0指的是寄存器堆的B端口选择信号RS1、RS0,RD1、RD0指的是寄存器堆的A端口选择信号RD1、RD0,不过由于运算结果需写回,因此它也同时指WR1、WR0,用户需将它们对应连接。另一点需说明的是,为了简化运算,指令JC D中的D是一个4 位的正数,用D3 D2 D1 D0表示。 实验系统虽仅设计了12条基本的机器指令,但代表了计算机中常用的指令类型。必要时用户可扩充到16条指令或者重新设计指令系统。10. 中断地址寄存器IAR中断地址寄存器IAR(U19)是一片74HC374,用于保
16、存中断发生时的断点地址。它直接使用LDIAR信号作为时钟脉冲。当IAR_BUS# = 0时,它将断点地址送到数据总线DBUS上, 表2 机器指令格式名称助记符功能指令格式R7 R6 R5 R4R3 R2R1 R0加法ADD Rd,RsRd+Rs-Rd0 0 0 0RS1 RS0RD1 RD0减法SUB Rd,RsRd-Rs-Rd0 0 0 1RS1 RS0RD1 RD0乘法MUL Rd,RsRd*Rs-Rd0 0 1 0RS1 RS0RD1 RD0逻辑与AND Rd,RsRd&Rs-Rd0 0 1 1RS1 RS0RD1 RD0存数STA Rd,RsRd-Rs0 1 0 0RS1 RS0RD1
17、 RD0取数LDA Rd,RsRs-Rd0 1 0 1RS1 RS0RD1 RD0无条件转移JMP RsRs-PC1 0 0 0RS1 RS0X X条件转移JC D若C=1则PC+D-PC1 0 0 1D3 D2D1 D0停机STP暂停运行0 1 1 0X XX X中断返回IRET返回断点1 0 1 0X XX X开中断INTS允许中断1 0 1 1X XX X关中断INTC禁止中断1 1 0 0X XX X以便用控制台上的数据指示灯观察断点地址。 以上介绍了数据通路的基本组成。数据通路所需的各控制信号,除了T1、T2、T3、T4已在印制板上连接好以外,其余的控制信号在数据通路的下方都有插孔引
18、出,实验时只要将它们和控制器产生的对应信号正确连接即可。实验中提供的电路图上,凡引出、引入线端带有短粗黑标记的信号,都是需要用户自己连接的信号。六、 控制器控制器位于本实验系统的中上部,产生数据通路操作所需的控制信号。出厂时,提供了一个微程序控制器,使用户能够进行基本的计算机组成原理实验。在进行流水微程序控制器实验,硬布线控制器实验和流水硬布线控制器实验等课程设计时,用户可设计自己的控制器,部分或者全部代替出厂时提供的控制器。图5是控制器的框图。1. 控制存储器控制存储器由5片28C64(U8、U9、U10、U11、U12)组成。28C64是电擦除的可编程ROM,存储容量为8K字节,本实验系统
19、仅使用了128字节。微指令格式采用全水平型,微指令字长35位。其中顺序控制部分10位:后继微地址 A0 A5,判别标志P0、P1、P2、P3;操作控制字段25位,全部采用直接表示法,用于控制数据通路的操作。标志位P3和控制台开关SWB、SWA结合在一起确定微程序的分支,完成不同的控制台操作。标志位P2与指令操作码(IR的高4位IR4、IR5、IR6、IR7)结合确定微程序的分支,转向各种指令的不同微程序流程。标志位P1标志一条指令的结束,与中断请求信号INTQ结合,实现对程序的中断处理。标志位P0与进位标志C结合确定微程序的分支,实现条件转移指令。操作控制字段25位,全部采用直接表示法,控制数
20、据通路的操作。在设计过程中,根据微程序流程图进对控制信号行了适当的综合与归并,把某些在微程序流程图中作用相同或者类似的信号归并为一个信号。下面列出微程序控制器提供的控制信号。信号名带后缀#者为低电平有效,否则为高电平有效。INTS 置中断允许标志INTE为1。INTC 清除中断允许标志INTE。LDIR(CER) 为1时,允许对IR加载,此信号也可用于作为双端口存储器右端口选择CER。LDPC(LDR4) 为1时,允许对程序计数器PC加载,此信号也可用于作为R4的加载允许信号LDR4。PC_ADD 为1时,进行PC+D操作。PC_INC 为1时, 进行PC+1操作。M4 当M4 = 1时,R4
21、从数据总线DBUS接收数据;当M4=0时,R4从指令寄存器IR接收数据。LDIAR 为1时,对中断地址寄存器IAR加载。LDAR1(LDAR2) 为1时,允许对地址寄存器AR1加载,此信号也可用于作为允许对地址寄存器AR2加载。AR1_INC 为1时,允许进行AR1+1操作。M3 当M3 = 1时,AR2从数据总线DBUS接收数据;当M3 = 0时,AR2从程序计数器PC接收数据。LDER 为1时,允许对暂存寄存器ER加载。IAR_BUS# 低有效,为0时将中断地址寄存器IAR送数据总线DBUS。SW_BUS# 低有效,为0时将控制台开关SW7SW0送数据总线DBUS。RS_BUS# 低有效,
22、为0时将寄存器堆RF的B端口送数据总线DBUS。ALU_BUS 为1时,将ALU中的运算结果送数据总线DBUS。CEL# 低有效,为0时允许双端口存储器左端口进行读、写操作。LRW 当LRW = 1且CEL# = 0时,双端口存储器左端口进行读操作;当LRW = 0且CEL# = 0时,双端口存储器左端口进行写操作。WRD 为1时,允许对寄存器堆RF进行写操作。LDDR1(LDDR2) 为1时允许对操作数寄存器DR1加载。此信号也可用于作为对操作数寄存器DR2加载。M1(M2) 当M1 = 1时,操作数寄存器DR1从数据总线DBUS接收数据;当M1 = 0时,操作数寄存器DR1从寄存器堆RF接
23、收数据。此信号也可用于作为操作数寄存器DR2的数据来源选择信号。S2、S1、S0 选择运算器ALU的运算类型。TJ 暂停微程序运行。NC0、NC1、NC2 备用、NC3、NC4上述控制信号连同时序电路提供的时序、控制信号位于控制器的下边。2微地址寄存器 AR(74HC273)微地址寄存器 AR(74HC273)对控制存储器提供微程序地址。当CLR# = 0时,将其复位到零,使微程序从000000B地址开始执行。在T1的上升沿将新的微程序地址 D0 D5打入微地址寄存器 AR。控制台开关SWC直接连到74HC273,作为D6,用于实现读寄存器操作KRR。 3跳转开关JUMP 这是一组6个跳线开关
24、(J1)。当用短路子将它们连通时,微地址寄存器 AR从本实验系统提供的微程序地址译码电路得到新的微程序地址 D0 D5。当他们被断开时,用户提供自己的新微程序地址 D0 D5。这样用户能够使用自己设计的微程序地址译码电路。 4微程序地址译码电路DECORDER 微程序地址译码电路DECORDER产生后继微程序地址,它由2片74HC32(U2、U3)和2片74HC08(U4、U5)构成。微程序地址译码电路数据来源是: 控制存储器产生的后继微程序地址 A0 A5,控制存储器产生的标志位P0P3,指令操作码IR4IR7,进位标志C,中断请求标志INTQ,控制台方式标志位SWA、SWB。七、 控制台控
25、制台位于TEC4计算机组成原理实验系统的下部,主要由若干指示灯和若干拨动开关组成,用于给数据通路置数、设置控制信号、显示各种数据使用。1 SW7SW0 数据开关,直接接到数据通路部分的数据总线DBUS上,用于向数据通路中的器件置数。开关拨到上面位置时输出1,拨到下面位置时输出0。SW7是最高位,SW0是最低位。2 K15K0双位拨动开关。开关拨到上面位置时输出1,拨到下面位置时输出0。实验中用于模拟数据通路部分所需的电平控制信号。例如,将K0与LDDR1连接,则K0向上时,表示置LDDR1为1;K0向下时,表示置LDDR1为0。3 数据指示灯D7D08个红色发光二极管,用于显示数据总线DBUS
26、或者指令寄存器IR的状态。D7是最高位,D0是最低位。双位开关IR/DBUS拨到IR位置时,显示指令寄存器IR的状态;双位开关IR/DBUS拨到DBUS位置时,显示数据总线DBUS状态。4 地址指示灯A7A08个绿色发光二极管,用于显示双端口存储器的地址寄存器内容。A7是最高位,A0是最低位。双端口存储器IDT7132有两个地址端口,地址寄存器AR1提供左端口地址A7LA0L,地址寄存器AR2提供右端口地址A7RA0R。当双位开关AR2/AR1拨到AR1位置时,显示地址寄存器AR1的内容;当双位开关AR2/AR1拨到AR2位置时,显示地址寄存器AR2的内容。5 微地址指示灯 _A5 _A06个
27、黄色发光二极管,用于显示控制存储器的地址 _A5 _A0。 _A5是最高位, _A0是最低位。6 其他指示灯P3、P2、P1、P0、IE、C6个黄色发光二极管用于显示P3、P2、P1、P0、IE、C的值。P3、P2、P1、P0是控存的微代码位,用于条件分支产生下一个微地址。C是加、减运算时产生的进位值。IE是中断允许标志。当IE = 1时,允许中断;当IE = 0时,禁止中断。7 微动开关CLR#、QD、INTR这三个微动开关用于产生CLR#、QD、INTR单脉冲。按一次按钮CLR#,产生一个负的单脉冲CLR#,对全机进行复位,使全机处于初始状态,微程序地址置为000000B。CLR#到时序和
28、控制器的连接已在印制板上实现,控制存储器和数据通路部分不使用复位信号CLR#。按一次QD按钮,产生一个正的QD启动脉冲。QD和时序部分的连接已在印制板上实现。按一次INTR按钮,产生一个正的单脉冲,可用于作为中断请求信号。INTR到时序部分的连接已在印制板上实现。这三个单脉冲都有插孔对外输出,供用户设计自己的控制器和时序电路时使用。8 单步、单拍、单指开关DB、DP、DZDB(单步)、DP(单拍)、DZ(单指)是三种特殊的非连续工作方式。当DP = 1时,计算机处于单拍方式,按一次QD按钮,每次只执行一条微指令,发送一组T1、T2、T3、T4时序脉冲。当DZ = 1时,计算机处于单指方式。单指
29、方式只对微程序控制器适用。在单指方式下,按一次QD按钮,计算机执行一条指令。当DB = 1时,机器处于单步方式。单步方式只对硬布线控制器适用。在单步方式下,按一次启动按钮QD,发送一组W1、W2、W3、W4时序脉冲。在使用硬布线控制器时,每条指令需要一组W1、W2、W3、W4时序脉冲,因此单步方式实际上是硬布线控制器下的单指方式。DB、DP、DZ这三个双位开关,任何时刻都只允许一个开关置1,决不允许两个或三个开关同时置1。当DB=0 且DP=0 且DZ=0时,机器处于连续工作方式。9 控制台方式开关SWC、SWB、SWA控制台方式开关SWC、SWB、SWA定义了TEC4计算机组成原理实验系统的
30、五种工作方式。在出厂时提供的标准控存中,五种工作方式定义如下:SWCSWBSWA 工作方式 000PR,启动程序001KRD,读双端口存储器010KWE,写双端口存储器011KLD,加载寄存器堆100KRR,读寄存器堆在按CLR#按钮复位后,根据SWC、SWB、SWA选择工作方式。PR是启动程序方式。在此方式下,首先在SW7SW0指定启动地址,按启动按钮QD后,启动程序运行。KRD是读双端口存储器方式。在此方式下,(1)首先在SW7SW0置好存储器地址;按QD按钮,则将此地址打入地址寄存器AR1,并读出该地址存储器内容到数据总线DBUS。(2)每按一次QD按钮,地址寄存器AR1加1,并读出新地
31、址存储器内容到数据总线DBUS。依次进行下去,直到按复位按钮CLR#为止。KWE是写双端口存储器方式。在此方式下,(1)首先在SW7SW0置好存储器地址;按QD按钮,则首先将此地址打入地址寄存器AR1,然后等待输入数据。(2)在SW7SW0置好数据,按QD按钮,首先写数据到AR1指定的存储器单元,然后地址寄存器AR1加1,等待新的输入数据。依次进行下去,直到按复位按钮CLR#为止。KLD是加载寄存器堆方式。此方式用于对寄存器堆加载。(1)首先在SW7SW0置好存储器地址,按QD按钮,则将此地址打入地址寄存器AR1和地址寄存器AR2。(2)在SW7SW0置好数据,数据的低2位D1、D0为寄存器堆中的寄存器号,按一次QD按钮,则写数据到AR1指定的存储器
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1