重置控存代码在计算机硬件实验箱维护中的应用

2021-09-22 06:13胡珊
电子技术与软件工程 2021年15期
关键词:重置指示灯寄存器

胡珊

(福建师范大学计算机与网络空间安全学院 福建省福州市 350108)

1 硬件实验箱维护现状

《计算机组成原理》是高校计算机相关专业(包括计算机科学与技术、电子信息科学与技术、软件工程、网络工程与管理及新兴的物联网等专业)的硬件基础课程,在计算机硬件课程体系中处于核心环节[1-2],同时也是计算机类硕士入学考试的必考专业课之一,其实验教学作为该课程理论教学的重要环节,有着重要作用。该课程实验的载体——计算机硬件实验箱(清华大学科教仪器厂生产),使用人员复杂多变,实验过程中使用人员带电拔插连接导线和元器件,焊点氧化,静电影响等等,致使硬件实验箱的故障与维护相当繁杂[3-4],维护工作量大。而目前开发的部分虚拟实验环境并不能完全取代真正的硬件实验环境。由于硬件实验箱不像实验机房主机有开机还原或定期还原系统,也没有开机检测功能,维护时实验管理人员只能每台开箱通电测试,做计算机组成实验各个项目,然后凭经验来判断,碰上芯座等损坏就得寄厂维修。不仅耗费时间,而且还严重影响设备完好率,不利于实验教学的正常开展,因此,鲜少有人愿意主动承担计算机硬件实验室的管理与维护。

2 硬件实验箱维护与故障诊断

硬件实验箱的维护如同微型计算机一样有硬件与软件的维护。遵循从简单的事情入手,先外后内,抓主要问题。即先检查实验箱的各种控制开关是否处于正确的位置,不同的位置,功能不同。比如右上角控制转换开关是“独立”还是“微程序”,若在微程序位置,则电平控制信号开关的高、低电平送不进寄存器控制端(如RD0、RD1、RS0、RS1等),被钳制住了,开关数据也送不进数据线上(D0到D7亮、灭不正确);其次,用逻辑笔等工具检查外部连线、开关等是否正常,以保证各控制端控制电平有效;若以上两项正常,则根据故障现象、实验电路图及实验接线表综合判断故障所在的大致位置,然后检查问题区域的芯片是否有问题或其底座是否有问题。这属于硬件的检查及维护,这里不再赘述。本文主要从软件维护的层面(即重置控存代码)来阐述计算机硬件实验箱的诊断与维护。

2.1 何种状态重置控存代码

(1)学生实验过程中反映E2PROM代码有问题。是否真有问题,那就选取一种操作模式(比如令SWCSWBSWA=101运算器组成),结合该硬件实验箱采用的控存代码表(见表1)和微指令格式[5](图1)。微指令长40位,顺序字段11 位(判别字段P4~P0,后继微地址NμA5~NμA0),控制字段29 位,0~7位对应CM0,8~15位对应CM1,16~23位对应CM2,24~31位对应CM3,32~39位对应CM4。控存代码表以16进制显示,若要对应指示灯,则需转换成二进制,1(高电平)对应的灯亮,0(低电平)对应的灯灭。

表1:部分控存代码表

图1:微指令格式

按CLR系统复位,当前微地址uA5~uA0为00H,此时CM4和CM0对应0CH和41H,其余为00H(参见控存代码表第二行),转换成二进制则为00001100B和01000001B,对照微指令格式,灯SEL1、SEL0、P0、NuA0亮;按QD第一次,由于该硬件试验系统运算器组成试验微程序下入口地址为0BH ,即uA5~uA0为0BH(对应二进制为00001011),处于计算机硬件实验箱面板上微程序控制器区域下端的灯uA3、uA1、uA0亮,对照控存代码表,CM4为44H(01000100B),灯SELCTL、SEL0亮,CM3为10H(00010000B),灯SBUS亮,CM2为02H(00000010B),灯STOP亮,CM1为08H(00001000B),灯DRW亮,CM1为15H(00010101B),灯NuA4、NuA2、NuA0亮,NμA5~NμA0代表下一微地址,此时为15H(见CM0的后六位);按QD第二次,当前微地址uA5~uA0为15H(00010101B,由上一次按下QD后显示的后继微地址NμA5~NμA0决定),灯uA4、uA2、uA0亮,此时CM4为50H(01010000B),灯SELCTL、SEL2亮,CM3为10H(00010000B),灯SBUS亮,CM2为02H(00000010B),灯STOP亮,CM1为08H(00001000B),灯DRW亮,CM1为16H(00010110B),灯NuA4、NuA2、NuA1亮;类似操作,到第七次按QD,恢复到按CLR时状态。在这一循环过程中(见表1,微地址按00、0B、15、16、17、18、19、00循环),若有指示灯的亮、灭状态与代码表不符,则控存代码确有问题,需重置控存代码。事实上,一般在按复位键及两次QD后,就能看出控存代码是否出了问题。

(2)一般维护实验箱时首先检查的就是在微程序状态下,按CRL及QD,控制转换框内及微程序控制器框内的指示灯有亮有灭,若不按正常的规律亮灭,那就需要重置CM4~CM0的控存代码;有时复位正常,但按QD乱码;有时按复位及QD,指示灯亮灭均不正常等,这些状况都是先进行硬件试验箱的软件维护,即重置控存代码,给试验箱来个软件复位。

总之,在进行硬件实验箱维护时,微程序状态下选定某种操作模式,按控存代码表(或微程序流程图)走一遍,根据实验箱指示灯亮灭状态即可判断实验箱是否正常,是软件故障还是硬件故障,软件故障的话重置控存代码即可,类似于微型计算机的软件还原;是硬件故障的话,也可判断在哪个区域或最可能的故障芯片。以上的故障有可能一种,也有可能多种故障并存,需要管理人员多方分析,逐个排查。

2.2 如何重置控存代码

断开硬件实验箱电源,串口编程电缆将实验箱与微型计算机的串口连接好,硬件实验箱的编程开关上拨到“编程位”,取下DZ1短路片(注意这里不要按实验箱面板标注的中、右短路);电脑主机开机,点开对应的控存代码写入软件(这里是TEC-8COMDOWN),波特率改为2400,勾选文件CM0……CM4,点“打开”按钮,选择电脑主机中控存代码下的常规微程序控制器CM0-4 (EEPROM),文件类型选择所有文件,双击CM0,则打开了CM0,依次类似可以打开CM1、CM2、CM3、CM4。开启实验箱电源,重置前先按下实验箱面板编程开关右侧的复位键(否则下载不成功,一直显示写入超时),再点计算机写入软件的“编程”按钮,进行控存代码重置。重置过程中,观测实验箱微指令灯是否闪烁,若软件显示成功,并伴随硬件实验箱微指令灯闪烁,则实验箱软件基本恢复正常。

2.3 重置控存代码是否成功

关闭实验箱电源,取下编程电缆,编程开关“正常”,控制转换“微程序”,DZ1端子左、中两脚短接,单拍上拨为1,实验箱接通电源,按复位按钮CLR,即表示置当前微地址uA5~uA0为00H,后继微地址NuA5~NuA0为01H,参见该实验箱对应的控存代码表,此时SEL1、SEL0、P0、NuA0灯亮,其余灯灭,表示实验箱基本正常。

更深入的测试则可以结合学生反映的具体问题来选择某种操作模式。比如学生反映寄存器读不出来或B7~B0显示出问题,那可以先写寄存器(微程序下令SWCSWBSWA=100,微程序入口地址为09H),分别将1、2、3、4写入寄存器R0~R3。写入的过程中如下:将SD7到SD0拨成00000001,灯D7~D0即刻对应显示即将写入的数据1,第一次按QD,当前微地址09H(uA3和uA0亮),各指示灯的亮灭状态应该符合控存代码表(SELCTL、SEL0、SBUS、STOP、DRW、NuA3亮),同时微程序给控制寄存器数据写入的控制端发送控制信号RD1RD0(00,由SEL3、SEL2决定);第二次按QD时,1写入寄存器R0,此时B0亮,当前微地址08H由上次操作后给出的后继微地址决定,uA3亮,SELCTL、SEL2、SBUS、STOP、DRW、NuA3、NuA1亮,将SD7到SD0拨成00000010,指示灯D7到D0显示数据2准备好,因SEL3SEL2为01,故寄存器控制端RD1RD0为01;第三次按QD,数据2写入寄存器R1,B1灯亮,当前微地址跳转成0AH,uA3、uA1亮,SELCTL、SEL3、SEL0、SBUS、STOP、DRW、NuA3、NuA2亮,寄存器控制端RD1RD0为10(寄存器R2准备接受数据写入),SD7到SD0拨成00000011,数据指示灯D1、D0亮(显示3);第四次按下QD,3写入R2,B1、B0亮,微地址转变成0CH,uA3、uA2亮,SELCTL、SEL3、SEL2、SEL1、SBUS、STOP、DRW亮,后继微地址NuA5~NuA0=00,因SEL3SEL2=11,此时选择的写入寄存器为R3,SD7到SD0拨成00000100,数据灯D2亮,表示数据4准备好;第五次按下QD,数据4写入R3。写寄存器时微地址按00、09、08、0A、0C、00循环;然后再读寄存器(令SWCSWBSWA=100,微程序入口地址为07H),读寄存器过程如下:微程序状态,第一次按QD,当前微地址07H,即uA2、uA1、uA0亮,SELCTL、SEL0、STOP、NuA2、NuA1亮,SEL3SEL2=00和SEL1SEL0=01分别连接寄存器控制端RD1RD0、RS1RS0,所以A7~A0显示寄存器R0的内容1(A0亮),B7~B0显示R1的内容2(B1亮);第二次按QD,当前微地址06H,uA2、uA1亮,SELCTL、SEL3、SEL1、SEL0、STOP亮,SEL3SEL2等 于10,SEL1SEL0等于11,故A7~A0显示寄存器R2的内容3(A1A0亮),B7~B0显示R3的内容4(B2亮),此时微地址按00、07、06、00循环。

3 结束语

计算机组成硬件实验箱是高校计算机相关专业实践教学的必备设备,能锻炼学生的实践能力,培养学生学习兴趣,激发创新精神,不过却一直没有一套标准的维护方案。本文结合硬件实验箱采用的控存代码和微指令格式,在微程序状态下单拍跟踪每条微指令的执行情况,各指示灯的亮灭状态,从而快速确认实验箱是软件损坏还是硬件损坏,软件方面就先在编程状态下重置控存代码,然后,实验箱再在正常的微程序下按流程走一遍,这里所选的流程可以结合学生反映的问题来选择,一方面能判断重置代码是否成功,另也可以辅助判断硬件故障的大致区域。总之,熟悉控存代码的重置和应用,极大提高了维护人员的工作效率和设备完好率,保障实验教学正常进行。

猜你喜欢
重置指示灯寄存器
Lite寄存器模型的设计与实现
重置人生 ①
分簇结构向量寄存器分配策略研究*
美国邦纳 工业智能指示灯
2013年波罗车充电指示灯异常点亮
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计