TEC—4计算机组成原理实验系统二,实验要求1.按实验中心安排的时间到指定实验室上课,不许迟到,缺席.有特殊原因不能在原安排时间来实验时,须提前一天通知实验老师.2.做实验时,严禁带电操作,即所有接线,改线和拆线操作不能在带电的状态下进行,并注意防止导线堵塞插孔.实验箱通电状态下,除按键和开关以外的芯片等其它元器件,不要用手随意触摸电路板.3.实验中若发生异常情况应立即切断电源,并向教师报告,查明原因,避免再次发生类似情况.4.认真完成每次实验的各项任务,实验结果必须经教师检查.教师对实验内容提问,并对完成者记录.5.爱护实验设备,保持实验室清洁.6.实验完毕,请整理好实验设备后再离开实验室.2.实验目的,任务(内容).3.记录和分析实验结果,用理论知识分析实验过程中遇到的故障和问题,并写出分析说明.4.解答思考题.2第一部分实验设备TEC—4计算机组成原理实验系统TEC—4计算机组成原理实验系统由北京邮电大学计算机学院,清华同方教学仪器设备公司,深圳拓普威电子技术有限公司联合研制.它是一个8位计算机模型实验系统,可用于大专,本科,硕士研究生计算机组成原理课程,计算机系统结构课程的教学实验,对提高学生的动手能力,提高学生对计算机整体和各组成部分的理解,提高学生的计算机系统综合设计能力都会有很大帮助.一,TEC—4计算机组成原理实验系统特点1.计算机模型简单,实用,运算器数据通路,控制器,控制台各部分划分清晰.2.计算机模型采用了数据总线和指令总线双总线体制,能够实现流水控制.3.控制器有微程序控制器或者硬布线控制器两种类型,每种类型又有流水和非流水两种方案.4.寄存器堆由1片ispLSI1016组成,运算器由1片ispLSI1024组成,设计新颖.5.实验台上包括了1片在系统编程芯片ispLSI1032,学生可用它实现硬布线控制器.6.该系统能做运算器组成,双端口存储器,数据通路,微程序控制器,中断,CPU组成与机器指令执行,流水微程序控制器,硬布线控制器,流水硬布线控制器等多种实验.7.电源部分采用模块电源,重量轻,具有抗电源对地短路能力.8.采用自锁紧累接接线方式,接线可靠.二,TEC—4计算机组成原理实验系统的组成TEC—4计算机组成原理实验系统由下述六部分组成:1.控制台2.数据通路3.控制器4.用户自选器件试验区5.时序电路6.电源部分下面分别对各组成部分予以介绍.三,电源电源部分由一个模块电源,一个电源插座,一个电源开关和一个红色指示灯组成.电源模块通过四个螺栓安装在实验台下面.它输出+5V电压,最大负载电流3安培,内置自恢复保险功能,具有抗+5V对地短路能力.电源插座用于接交流220伏市电,插座内装有保险丝.电源开关用于接通或者断开交流220伏市电.当电源模块输出+5V时,点亮+5V红色指示灯.3四,时序发生器时序发生器产生计算机模型所需的时序.时序电路由一个1MHz晶体振荡器,2片GAL22V10(U6和U7)组成,位于控制存储器的右边.根据本机设计,执行一条微指令需要4个时钟周期T1,T2,T3,T4,执行一条指令通常需要取指,送操作数,运算,写结果四个节拍,因此本机的基本时序如下:图中,MF是晶体振荡器产生的1MHz基本时钟,T1,T2,T3,T4是数据通路和控制器中各寄存器的时钟脉冲,印制板上已将它们和有关的寄存器连接.T1,T2,T3,T4既供微程序控制器时使用,也供硬布线控制器使用.W1,W2,W3,W4只供硬布线控制器作指令节拍信号使用.五,数据通路数据通路的设计是TEC—4计算机组成原理实验系统最有特色的部分.首先它采用了数据总线和指令总线双总线形式,使得流水实验能够实现.它还使用了大规模在系统可编程器件作为运算器和寄存器堆,使得设计简单明了,可修改性强.数据通路位于实验系统的中部.图4是数据通路总体图,下面介绍图中个主要部件的作用.1.运算器ALU运算器ALU由一片ispLSI1024(U47)组成,在选择端S2,S1,S0控制下,对数据A和B进行加,减,与,直通,乘五种运算,功能如下:表1运算器功能表选择S2S1S0操作000A&B001A&A(直通)010A+B011A-B100A(低4位)XB(低4位)MFT1T2T3T4W1W2W3W4图3基本时序图4进位C只在加法运算和减法运算时产生.加运算中,C表示进位;减运算中,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接收来自寄存器堆B端口的数据;当M1=1且LDDR1=1时,在T3的下降沿,DR1接收来自数据总线D_BUS的数据.当M2=0且LDDR2=1时,在T3的下降沿,DR2接收来自寄存器堆A端口的数据;当M2=1且LDDR2=1时,在T3的下降沿,DR2接收来自数据总线DBUS的数据.ALUDR1DR2MUX1MUX2RFERM1M2S2S1S0T4RS1,RS0WR1,WR0RD1,RD0WRD(T2)SW_BUS#LDER(T4)AR2MUX3AR1RAM数据端口指令端口CERCEL#LRW(T3)LDAR2(T2)M3LDAR1(T4)AR1_INCIARIAR_BUS#LDIARPCALU2R4MUX4LDR4(T2)M4IRLDIR(T4)C,INTQRS1,RS0控制器INSDBUSC控制信号LDPC(T4)RD1,RD0WR1,WR0...LDDR2(T3)DBUSDBUSLDDR1(T3)RS_BUS#ALU_BUSSW0—SW7图4数据通路总体图B端口A端口PC_ADDA端口B端口53.多端口通用寄存器堆RF多端口通用寄存器堆RF由1片ispLSI1016(U32)组成,它的功能和MC14580类似.寄存器堆中包含4个8位寄存器(R0,R1,R2,R3),有三个控制端口.其中两个端口控制读操作,一个端口控制写操作,三个端口可同时操作.RD1,RD0选择从A端口读出的寄存器,RS1,RS0选择从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=1时,在T4的上升沿,将数据总线DBUS上的数据打入暂存寄存器ER.ER的输出送往多端口通用寄存器堆RF,作为写入数据使用.5.开关寄存器SW_BUS开关寄存器SW_BUS(U38)是1片74HC244,用于将控制台开关SW7—SW0的数据送往数据总线DBUS.当SW_BUS#=1时,禁止开关SW7—SW0的数据送往数据总线DBUS;当SW_BUS#=0时,允许开关SW7—SW0的数据送往数据总线DBUS.6.双端口存储器RAM双端口存储器由一片IDT7132(U36)及少量附加控制电路组成.IDT7132是2048字节的双端口静态随机存储器,本机实际使用256字节.IDT7132两个端口可同时进行读,写操作.在本机中,左端口的数据连接数据总线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,OER#控制左端口读,写操作的方式类似,不过右端口读出的数据放到指令总线上而不是数据总线上.本机设计中,OER#已固定接地,RRW固定接高电平,CER#由CER反相产生.当CER=1时,右端口读出数据,并放到指令总线INS上;当CER=0时,禁止右端口操作.左端口的OEL#由LRW经反相产生,不需单独控制.当CEL#=0且LRW=1时,左端口进行读操作;当CEL#=0且LRW=0时,在T3的上升沿开始进行写操作,将数据总线DBUS上的数据写入存储器.7.地址寄存器AR1和AR2地址寄存器AR1(U37)和AR2(U27,U28)提供双端口存储器的地址.AR1是1片GAL22V10,具有加1功能,提供双端口存储器左端口的地址.AR1从数据总线DBUS接收数据.AR1的控制信号是LDAR1和AR1_INC.当AR1_INC=1时,6在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的下降沿将选中的数据源上的数据打入AR2.8.程序计数器PC,地址加法器ALU2,地址缓存器R4程序计数器PC,地址加法器ALU2,地址缓存器R4联合完成三种操作:PC加载,PC+1,PC+D.R4是一个由2片74HC298(U25,U26)构成的具有存储功能的两路选择器.当M4=1时,选中数据总线DBUS;当M4=0,从指令寄存器IR的低4位IR0—IR3接收数据.当LDR4=1时,在T2的下降沿将选中的数据打入R4.ALU2由1片GAL22V10(U17)构成,当PC_ADD=1时,完成PC和IR低4位的相加,即PC加D.程序计数器PC是1片GAL22V10(U18),当PC_INC=1时,完成PC+1;当PC_ADD=1时,与ALU2一起完成PC+D的功能;当LDPC=1时,接收从ALU2和R4来的地址,实际是接收来自数据总线DBUS的地址,这些新的程序地址在T4的上升沿打入PC寄存器.9.指令寄存器IR指令寄存器IR是一片74HC374(U20).它的数据端从双端口存储器接收数据(指令).当LDIR=1时,在T4的上升沿将来自双端口存储器的指令打入指令寄存器IR保存.指令的操作码部分送往控制器译码,产生各种所需的控制信号.大多数情况下,指令的操作数部分应连到寄存器堆(用户自己连接),选择参与运算的寄存器.在某些情况下,指令的操作数部分也参与新的PC的计算.表2机器指令格式指令格式名称助记符功能IR7IR6IR5IR4IR3IR2IR1IR0加法ADDRd,RsRd+Rs-Rd0000RS1RS0RD1RD0减法SUBRd,RsRd-Rs-Rd0001RS1RS0RD1RD0乘法MULRd,RsRd*Rs-Rd0010RS1RS0RD1RD0逻辑与ANDRd,RsRd&Rs-Rd0011RS1RS0RD1RD0存数STARd,[Rs]Rd-[R