|
|
|
[合著] 一台模型计算机的设计与调试(三):组合逻辑控制器方案
[ 2007-06-27 17:25:08 ]
引言/提要:与白中英老师等合著,《计算机组成原理题解、题库与实验》第三版,科学出版社,2000年。
关键词:计算机组成原理,实验仪,实验教材
一、教学目的、任务与实验设备
(一)教学目的
(1)融会贯通本书各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对组合逻辑控制器的认识。
(2)学习运用ISP(在系统编程)技术进行设计和调试的基本步骤和方法,熟识集成开发软件中设计、模拟调试工具的使用,体会ISP技术相对于传统开发技术的优缺点。
(3)培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
(二)设计与调试任务
(1)按给定的数据格式和指令系统,在所提供的器件范围内,设计一台组合逻辑控制器控制的模型计算机。
(2)根据设计图纸,在通用实验台上进行组装,或对微程序控制方案(第一方案)的模型机进行改装,并调试成功。
(3)在组装调试成功的基础上,整理出设计图纸和其他文件,包括:
1.总框图(数据通路图);
2.组合逻辑控制器逻辑模块图;
3.模块ABEL语言源程序(如果有的话);
4.组合逻辑控制流程图;
5.模拟向量测试方程(可以和ABEL源程序合并);
6.元件排列图;
7.设计说明书;
8.调试小结。
如果没有第3点的ABEL源程序,则文件中必须包含控制信号的译码函数方程组,用逻辑表达式表示出每个控制信号。
(三)实验设备
(1)JYS-4计算机组成原理实验仪一台
(2)双踪示波器一台
(3)直流万用表一只
(4)逻辑测试笔一支
(5)集成电路若干片,取决于设计方案。
集成电路建议使用ISP芯片(一片ISPLSI 1032),如果实验仪容纳得下,也可以用普通中大规模集成电路和GAL等可编程阵列器件,但实验指导以ISP的设计为主。若采用ISP器件,则需要一台PC机作设计和擦写之用。
二、数据格式和指令系统
采用与第一方案相同的指令系统,即11条机器指令。同样考虑到复杂度和时间问题,一般应降低难度,采用该指令系统的子集:去掉中断指令后的9条机器指令。教材给出的参考方案,是采用9条机器指令的。
三、总体设计
采用的数据通路和第一方案相同,可参阅前面实验中的介绍,不再赘述。
组合逻辑控制器模型机所使用的时间信号比微程序控制器的要多一些,除了原有的时序信号T1至T4外,还需要节拍信号,一拍等于一个T1至T4循环。实验仪提供的节拍信号有四个:W1至W4。如果实验仪提供的节拍信号不能满足需要(例如需要八拍),可以用寄存器或GAL等自行构造,再从时序发生器引入T1至T4信号,也可以直接将节拍发生器设计到ISP芯片内部。
四、组合逻辑控制器
本次实验的重点就在于组合逻辑控制器的设计,因为大部分线路连接都在ISP芯片内部,真正人工接线的数量会比微程序控制器要少得多,因此本方案的优劣,主要就看设计得如何了。
(1)控制器的设计思路
组合逻辑控制器能够实现控制功能,关键在于它的组合逻辑译码电路。译码电路的任务就是将一系列有关指令、时序等的输入信号,转化为一个个控制信号,输出到各执行部件中。
根据组合逻辑控制器的基本原理,针对每个控制信号C,可以列出它的译码函数
C = f( Im, Mi, Tk, Bj )
其中Im是机器指令操作码译码器的输出信号,Mi是节拍信号发生器的节拍信号,Tk是时序信号发生器的时序信号,Bj是状态条件判断信号。
在实验仪中,因为时序信号Tk已经给数据通路自己处理了,所以译码电路不需Tk作为输入。又因为机器指令系统比较简单,操作码只有4位,不需要专门的操作码译码器,因此Im直接就是操作码,即来自数据通路的IR7至IR4信号。Mi的来源就是时序模块的W1至W4。Bj的信号包括:
1、来自数据通路的进位信号C(不要与上述公式的控制信号C混淆);
2、来自打码开关的控制台信号SWA、SWB;
3、来自状态字寄存器的状态信号ST2、ST1、ST0。
其中C、SWA和SWB信号在第一方案的微程序控制器中同样存在,而ST2至ST0信号则是为区分控制台状态和程序运行状态而设置的状态字寄存器信号,下文会加以解释。
每个控制信号的函数式都是上述输入信号的逻辑表达式,因此可以用各种逻辑门构造电路网络,实现这些表达式的逻辑功能。理论上,只要对所有控制信号都设计出译码函数,这个组合逻辑控制器的第三方案也就得到了。
(2)控制流程设计
设计组合逻辑控制器的控制流程,也就是解决Mi、Im、Bj如何起作用的问题。设计微程序控制器时可以使用流程图,设计组合逻辑控制器也同样可以。因为微程序控制器的控制信号以微指令周期为时间单位,组合逻辑控制器以节拍为时间单位,两者本质上是一样的,1拍和1个微指令周期都是从时序T1的上升沿到T4的下降沿的一段时间。在微程序控制流程图中,1个执行框代表1个微指令周期,而在组合逻辑控制流程图中,1个执行框就代表1拍。
不过,在微程序控制器中,控制流程可以直接转化为微指令程序,存放于控制存储器内,受到的限制较少;而设计组合逻辑控制器的控制流程,要考虑的因素就多一些了。
1、机器指令的执行流程问题
微程序控制器执行一条机器指令,该指令有多“长”(指执行该指令所需要的时间长度,下同)都是可以的,“长”指令只是使用的微指令周期较多,只要控制存储器中能安排得下就行,不同机器指令的“长”“短”也可以差别很大。而在组合逻辑控制器中,最“长”的机器指令,决定着节拍发生器的节拍信号数,也就决定着全部节拍所组成的指令周期的长度。例如本实验所使用的机器指令系统,最“长”的指令需要4拍,所以节拍发生器产生4个节拍信号(W1至W4)。
对于不同的机器指令,如果“长”“短”差别太大,设计时也不好处理。节拍发生器按最“长”的指令来决定节拍数,这样对“短”指令和硬件本身都造成浪费。因此,设计的机器指令不宜“长”“短”悬殊,最好能设计得一样“长”。
2、“短”指令的浪费问题
统一用4拍执行1条机器指令后,对于“短”的指令,例如JMP指令只用2拍(忽略中断),剩下2拍就无事可做了。这在可行性上当然没有问题,但在性能上就打了折扣,因为多余的节拍都浪费掉了。
为减少浪费,在时序电路中加入了一个控制信号SKIP的输入端,该信号的作用是使节拍发生器在任意状态下直接跳到最后1拍(W4)。这样,设计控制流程时,在“短”指令流程的适当位置使SKIP控制信号有效,多余的节拍就可以跳过,从而提高了性能。
这个SKIP信号在组合逻辑流水控制器中也有用,因为流水控制器完成一个机器指令不需要4拍。
3、控制台操作的问题
机器指令的执行流程设计出来了,还要有微程序控制器那样的控制台操作。这部分不属于机器指令系统,而又要象完成机器指令那样以不超过4拍的时间来执行,以便与执行机器指令的方式统一起来。
微程序控制器中有微地址寄存器,通过微程序地址可以记住是处于控制台状态还是程序运行状态。在组合逻辑控制器中,就要设置一个状态字寄存器ST来记录当前的状态。状态字有3位:ST2、ST1和ST0,不同的0、1组合分别代表初始状态、控制台读内存、控制台写内存、程序运行状态。这样,根据ST的不同,就可以执行控制台操作或者机器指令了。
(3)组合逻辑控制器
如果使用ISP技术,则控制器的电路设计完全是在开发软件上进行的。只要在计算机上画出电路的原理图,编写好必要的源程序,软件会自动完成控制器内部的线路连接,无须自己去接线,因此,本次实验的工作量会比第一、二方案要小得多。图9.24就是参考方案的组合逻辑控制器示意图。
(4)译码逻辑电路
有了组合逻辑控制流程图,就可以设计出译码逻辑电路。先根据流程图列出译码表,作为逻辑设计的依据。与微程序表的设计相似,译码表的内容也包括横向设计和纵向设计。流程图中横向为一拍(W1、W2等),纵向为一条指令,而译码逻辑是针对每一个控制信号的,因此在译码表中,横向变成了一个信号。下表是译码表的一般格式,单元格中的内容表示该控制信号在该指令中有效的条件(主要是节拍信号条件)。
状态ST |
KRD |
PR |
指令IR |
|
ADD |
SUB |
MUL |
...... |
LDR1 |
|
W2 |
|
|
|
LDR2 |
|
W2 |
|
|
|
CEL |
W1 |
|
|
|
|
...... |
|
|
|
|
|
根据译码表可以写出每个控制信号的逻辑表达式,这个表达式就是它所在的行各乘积项相加(逻辑或)。如果使用基本的与或非门电路来构造译码电路,还需要使用卡诺图等方法简化这些表达式,但使用可编程逻辑电路(GAL、ISP等)就不必了。只要将表达式直接写成ABEL源程序,编译软件会自动完成电路优化的工作。除了可以减少出错,未经简化的表达式也便于阅读和理解。
需要说明的是,上述参考方案并非唯一可行的方案,组合逻辑控制器的内部构造也可以多种多样。又因为基于ISP技术的设计具有高度的灵活性,因此,在遵循基本设计原则的前提下,只要充分发挥创造性,是可以作出与众不同的设计的。
五、组装与调试
数据通路、时序发生器的组装和分调试可参阅第一方案中的介绍,下面是组合逻辑控制器的分调试和最后的总调试。
如果是用基本的逻辑门构造组合逻辑控制器,相互之间的连线将错综复杂,分调试的难度很大。但若使用可编程逻辑电路,连线集中都在芯片内部,由程序自动完成,其速度、准确率和可靠性都是人工接线所不可比拟的。尤其是ISP器件,由于集成度高、灵活性强、刷新方便,用于组合逻辑控制器将使分调变得相当简单。
ISP技术设计的组合逻辑控制器,其分调试完全是软件模拟的向量测试。但应注意,向量测试方程的设计应全面,尽量覆盖所有的可能性,避免将错漏带到总调试中。另外要注意两个细节问题:
(1)测试软件要求测试状态连续,即上一方程的终结状态作为下一方程的初始状态,不能中断;
(2)如果方程的输入向量组中有某些影响输出向量的项缺失,测试仍能进行,但缺失项将会以随机值影响输出。
分调正常后,可进行将控制器与数据通路等模块连接,进行全机总调试。
与第一方案相类似,总调的第一步是检查全部组合逻辑控制流程,以单拍(DP)方式执行指令。进行的顺序也是先执行控制台指令,然后执行机器指令。当全部控制流程图检查完毕后,如果数据通路的执行部件(运算器、存储器等)功能正确,就算总调第一步完成。
第二步是在内存中装入包括有全部指令系统的一段程序和有关数据,进一步可采用单步(DB)方式或联系方式执行,以验证机器执行指令的正确性。
第三步是编写一段表演程序,令机器运行,在器件负荷允许的范围内,可通过电源拉偏、连续工作等措施考验机器的性能。
第四步是运行指导老师给出的验收程序。如果通过,就算大功告成。
六、更高水平的课程设计
前面叙述的课程设计说明,是对学习“计算机组成原理”课程的计算机系所有学生的基本教学要求:按给定的指令系统和指令格式,完成一台组合逻辑控制器模型计算机的设计和调试。
本小节提出的所谓更高水平的课程设计,是指更高的教学要求,这些要求是
(1)仍然使用图9.16所提供的数据通路;
(2)学生自己拟定指令格式;
(3)只使用一片ISPLSI 1016芯片和若干中小规模集成电路来做控制器。
对于第(1)、(2)项要求,可参阅第一方案中的要求。如果指令比较复杂,可自行构造节拍发生器。
对于第(3)项要求,主要挑战是可使用的控制信号数量有限,可以利用译码器、增加节拍数等方法解决。与第一方案中相似,节省了器件(规模上而不是数量上)但降低了执行速度。
我们给出关键部分设计作为参考。
(1)组合逻辑控制器 见图9.24
(2)组合逻辑控制流程 见图9.23
(3)控制信号译码表 见表9.17
(4)译码电路模块ABEL源程序及向量测试方程 见程序9.1
(5)控制器整体模块向量测试方程 见程序9.2
|
|
|
相关文章:
[合著] 一台模型计算机的设计与调试(二):微程序控制器流水方案 [2007-06-27] [合著] 一台模型计算机的设计与调试(一):微程序控制器方案 [2007-06-27] [合著] 中断原理实验 [2007-06-26] [合著] CPU组成与机器指令执行实验 [2007-06-26] [合著] 微程序控制器组成实验 [2007-06-25] [合著] 数据通路组成实验(旧) [2007-06-25]
最新留言:
[2014-10-16] [2014-10-16] [2014-06-04] [2014-06-04] [2013-12-08] [2013-11-29]
|
|
相关链接 |
|
|