CPU与简单模型机设计实验中的关键问题分析
摘要:模型机设计实验是计算机组成原理实验中的一个综合性较强的实验,要求学生在掌握各部件单元电路的基础上,构建一台模型计算机。文章选用TD-CMA实验教学系统,针对采用微程序控制器设计的CPU与简单模型机设计实验,从连线排查、指令设计、微程序设计、指令控制、程序运行等方面分析该实验中的关键问题,并给出每个问题的解决方法。
关键词:计算机组成原理;微程序控制器;简单模型机;TD-CMA
0 引言
CPU与简单模型机设计实验是计算机组成原理实验中的一个综合性较强的实验,对学生的理论要求、能力要求较高。在美国的一些主流大学中,计算机组成原理实验强调从顶层(应用和软件)到底层(硬件)的掌握与了解,实验方式一般采用高级语言实现对硬件的模拟;有些大学则要求学生采用VHDL、Verilog等硬件描述语言进行功能部件和小型系统的设计与实现,并在FPGA等硬件上进行测试验证。从文献[4]可以看出,国内大学计算机组成原理课程的实验已经由验证性实验逐渐过渡到处理器设计及计算机系统搭建的层次上。与模型机设计相关的实验仍
然是重点实验内容,只是实现方式和难度不同。例如,有些学校开设的实验会引入MIPS、流水、Cache等功能设计。根据控制器部件的工作原理,模型机控制器可分为硬布线控制器和微程序控制器两种,还可根据设计的模型机所含指令系统分为简单模型机和具有特定功能的模型机,因此模型机的设计也有不同的类型。笔者选取微程序控制器的基本模型机设计进行分析。
TD-CMA教学实验系统是西安唐都科教仪器公司推出的新一代计算机组成原理与系统结构教学实验设备。该系统硬件的电路布局按照计算机组成结构进行模块化设计,配有CMA’监控软件,可以实现从部件到整机实验的数据通路图实时动态图形调试界面演示,且都具有单拍、单周期、连续等调试功能,通路图的调试过程也具有保存和回放功能。笔者采用TD-CMA实验教学系统,针对以微程序控制器为基础的简单模型机设计实验,从连线排查、指令设计、微程序设计、指令控制、程序运行等多个方面分析微程序控制器模型机实验中的关键问题,给出了每个问题的解决方法。
1 连线错误问题
进行实验时,先进行功能部件之间的数据连线设计,连线类型有8针、6针、4针、2针。正确
的线路连接是保证数据通路正确的基础,而连线错误也是实验中学生碰到的最多的一类问题。为了减少实验中的问题,实验之前应对线路的连接进行检查,确保排线中没有断线情况。连线错误问题可根据表1所示的错误表现进行判断,从而纠正或更换排线即可。模型机实验中涉及OUT、IN、IR、控制总线、数据总线、MC、地址总线、PC&AR、ALU®、CPU内总线、时序与操作控制等11个单元部件。功能部件较多,连线务必仔细认真。
2 微程序控制模型机实验设计关键问题
微程序控制模型机实验的目的是让学生掌握一个简单CPU的组成原理;在掌握部件单元电路的基础上,进一步将其构造成一台基本模型计算机;为其定义若干条机器指令,编写相应的微程序,并上机调试掌握整机概念。完成本实验的关键步骤包括:指令系统设计、微程序设计、微程序的装载、程序设计、程序装载及运行。正确设计这些环节,是实验成功的保证,也是学生学习时最获收益的实践环节。
2.1 设计模型机的指令系统
该步骤的关键问题是设计好每条指令的功能及格式。TD-CMA实验教学系统是一个8位计算
机,实验采用的指令格式分为单字长和双字长指令两种。其中,双字长指令的OP字段占8位,地址码字段占8位;单字长指令只有OP字段,也占8位,没有地址码字段。本实验的指令系统设计有6条:IN、OUT、ADD、JMP、HLT、SUB,下面以SUB指令(即减法指令)设计为例。该指令伪代码表示为SUB addr,是双字长指令,其操作数1采用隐含寻址,由RO寄存器指定,操作数2存储在地址为addr的内存单元中。相减后将运算结果写回RO寄存器,其含义为RO-(addr)→RO。
2.2 OP字段的设计
设计指令操作码字段OP时,必须要理解P<l>测试的含义。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而完成对指令的识别,并实现微程序的分支。TD-CMA实验教学系统中,17-12表示指令寄存器的第7-2位输出,SE5-SE0表示微控器单元微地址锁存器的强置端输出,指令译码逻辑在IR单元的INS DEC(GAL20V8)中实现。假设SUB的OP字段设置为0101 0000时,十六进制表示为50H;根据译码电路可得,SE5-SE0为110101。确定第一条指令的微指令在控存中的首地址后,其后继微指令地址就可以通过断定方式确定。
2.3 微程序流程图设计
采用方框图语言表示一条指令的指令周期是常见的设计方法。一个方框代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制。一个菱形符号代表某种判断或测试,时间依附于它前面一个方框的CPU周期,而不单独占用一个CPU周期,符号“~”代表一个公操作。方框右上角的数字代表该周期对应的微指令在控制存储器中的地址。例如,SUB指令的微程序流程可参考图1设计。SUB指令的执行分为5个CPU周期,执行指令时,需要访问一次内存,它对应的微指令有5条。
2.4 微指令的设计
2.4.1 数据通路图
数据通路图是设计控制器的基础,TD-CMA实验教学系统中模型机实验设计的数据通路如图2所示。挂接在总线上的部件包括ALU、暂存器A、暂存器B、R0寄存器、AR、PC、IR、MEM、OUT、IN单元。图中详细列举了每个执行部件的控制信号。例如,程序计数器PC的输人控制信号为LDPC、LOAD#,输出控制信号为PC-B#,运算器的控制信号有SO-S3、FC
、FZ、Cn、ALU-B#,各执行部件的动作统一受系统时钟信号控制。2.4.2 设计微指令格式
本实验涉及的控制信号有17个,并按图3所示形式设计微指令格式。A、B、C这3个字段用编码形式给出,控制信号的产生需要译码器电路进行译码;MA0-MA5为后继微地址字段;M23、M22是两个空位;S3-SO是ALU运算器的运算方式的控制信号;WR、RD、IOM是读写控制信号,用以控制内存、I/O的读写,经过一个读写控制逻辑电路连接至执行部件。设计的微指令长度为24位。编写微指令时,一定要将控制信号和微指令的每一位一一对应起来,不能有错。
2.4.3 微指令编写
当全部微程序完成后,应将每条微指令代码化,写微指令的过程就是翻译的过程。以SUB指令为例,对照图3所示的微指令格式和图1所示的SUB指令流程图,即可写出SUB指令对应的每条微指令。例如,RO→A操作,需要用到的控制信号有RO B、LDA,后继地址为01H。因此,编写的微指令为000000000001010000010000,用16进制表示为001410。取指阶段每条指令的操作均相同,为共用的操作。地址为00单元的微指令是系统复位操作后执行的第1条微指令,其后继地址指向取指操作的第1条微指令。01、03单元的两条微指令完成取指操
作,随后进行P<1>测试,进行指令的识别,获取执指微程序的人口地址。SUB指令的二进制微代码表见表2。
2.5 微指令写入控制存储器
TD-CMA实验教学系统提供了联机写入和手动写入两种模式。联机写入通过CMA软件下载到下位机中。选择手动模式时,需要分3步写入24位的微指令,按照低8位、中8位、高8位的次序,依次写人2816控存中。该操作步骤的关键是理解系统提供的几个写入功能:将时序与操作台单元的开关KK1置为停止档,KK3置为编程档,KK4置为控存档,KK5置为置数档。IN单元给出低8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。KK5置为加1档,IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的中8位;IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的高8位。KK5开关拨到置1位后,会启动实验机提供的给连续地址写入数据的功能:
3 程序设计及执行
微指令全部写入控存之后,一个具有输入(IN)、输出(OUT)、程序控制(JMP)、算数运算(ADD、SUB)、停机(HLT)功能的简单模型机就已经搭建起来了。基于此指令系统,就可以编写一个小程序,来验证模型机。编写的程序只能用机器指令表示,而且运行程序之前将其装入到相应的内存单元,程序的起始地址为OOH。编写的程序及含义见表3。
TD-CMA实验教学系统对内存的写入也提供了联机写入和手动写入两种模式,要求学生写入实验程序后,应进行校验操作,确保写入的程序正确。运行程序时,将时序与操作台单元的开关KK2置为单步档,每按一次ST模块化设计的目的按钮,即可单步运行一条微指令,对照微程序流程图,观察微地址显示灯是否和流程一致。每运行完一条微指令,观测一次CPU内总线和地址总线,对照数据通路图,分析总线上的数据是否正确。例如,执行OUT R0指令的功能是将结果写入到OUT单元的7段数码管,但是在监控软件上却没有显示有数据从R0部件流向OUT部件,说明OUT单元的IOYI、OW控制信号或者排线连结有问题。分析过程是最能启发学生思考、深刻理解模型机工作原理的认识一个过程。
4 结语
重视设计性实验教学环节,发挥设计性实验教学的作用,是高校培养创新型人才不可缺少的
重要部分。计算机组成原理的实验中,模型计算机实验是一个综合性较高的实验,要求学生在掌握各部件单元电路的基础上,设计并构建一台基本模型机。尽管实验之前,微程序控制器设计的理论知识学生都已具备,但是在实践过程中学生表现出的问题还是很多。今后在实验过程中应循序渐进,合理规划实验步骤,对实验内容充分理解,既可以提高实验的成功率,还可以减少由于错误连线造成的实验设备的损坏。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论