 |
|
|
[合著] 一台模型计算机的设计与调试(一):微程序控制器方案
[ 2007-06-27 17:17:33 ]
引言/提要:与白中英老师等合著,《计算机组成原理题解、题库与实验》第三版,科学出版社,2000年。
关键词:计算机组成原理,实验仪,实验教材
一、教学目的、任务与实验设备
(一)教学目的
(1)融会贯通本书各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,加深计算机工作中“时间-空间”概念的理解,从而清晰地建立计算机的整机概念。
(2)学习设计和调试计算机的基本步骤和方法,提高使用集成电路和常用测试仪器的基本技能。
(3)培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
(二)设计与调试任务
(1)按给定的数据格式和指令系统,在所提供的器件范围内,设计一台微程序控制的模型计算机。
(2)根据设计图纸,在通用实验台上进行组装,并调试成功。
(3)在组装调试成功的基础上,整理出最终的设计图纸和其他文件,包括:
1.总框图(数据通路图);
2.微程序控制器逻辑图;
3.微程序流程图;
4.微程序代码表;
5.元件排列图;
6.设计说明书;
7.调试小结。
(三)实验设备
(1)JYS-4计算机组成原理实验仪一台
本课程设计主要使用它的通用实验板,其优点是按功能模块进行组合设计,便于组装调试,接线工作量较少且连接可靠。
(2)双踪示波器一台
(3)直流万用表一只
(4)逻辑测试笔一支
(5)集成电路芯片若干,取决于设计方案。
本设计所用到的中大规模集成电路器件型号、功能及引脚图在本章前面已有介绍,实验仪中已有的器件请参阅其说明书,小规模集成电路器件可参阅一般半导体器件手册。考虑到实验仪负载等因素,尽量用低功耗的HC(高速CMOS)系列取代LS(TTL)系列的器件,并且器件总数不能多于实验仪可以容纳的数量。
注意:器件的输入引脚不能悬空,输出引脚不能短路,否则CMOS电路容易烧毁。
二、数据格式和指令系统
(一)数据格式
数据字规定为无符号整数,采用原码表示法,字长8位,其格式如下:
数值相对于十进制数的表示范围为[0,255]。
(二)指令系统
本模型机的指令系统,与前面微程序控制器组成实验中所使用的指令系统相同,共有11条指令,其中运算指令4条,访内指令2条,转移指令2条,停机指令1条,中断指令2条。指令列表见前面的实验。
学生进行该课程设计实验时,可以使用上述指令系统的全部,但考虑到实验的的复杂度和时间耗费问题,一般应降低难度,采用该指令系统的子集(去掉2条中断指令)。也可以提高难度,见后面“更高水平的课程设计”。
(三)指令格式
本模型机机器字为8位二进制长度,统一使用单字长指令。
(1)运算指令
运算指令有4条,为双地址指令,使用寄存器直接寻址方式,其指令格式如下:
其中,OP为操作码,Rs为源寄存器地址,Rd为目的寄存器地址,它们分别表示存放两个操作数的寄存器号,即有
Rs或Rd状态 |
指定的寄存器 |
00
01
10
11
|
R0
R1
R2
R3
|
(2)访内指令
访内指令有2条,为双地址指令,使用寄存器直接和间接寻址方式,其指令格式如下:
其中,Rs采用直接寻址,而Rd作为地址寄存器,指向RAM的地址单元。
(3)转移指令
转移指令有2条,为单地址指令,分别使用绝对寻址和相对寻址方式,其指令格式如下:
其中,无条件转移指令采用绝对寻址,目标地址为D,进位转移指令指令采用相对寻址,目标地址为PC+D。
(4)其他指令
其他指令包括停机指令1条,中断指令2条,为无地址指令,其指令格式如下:
三、总体设计
总体设计的主要任务是:
(1)选定CPU中所使用的主要器件;
(2)根据指令系统、选用的器件和设计指标,设计指令流的数据通路;
(3)根据指令系统、选用的器件和设计指标,设计数据流的数据通路。
总体设计的原则是性能价格比好,即用最少、最便宜的器件实现机器的指令系统、速度、存储容量等指标,本机要求尽可能使用中大规模器件,以便在实验台上减少工作量并能完成组装。
本机的速度指标是加法指令不小于每秒2万次,内存可寻址容量不小于256字节。
计算机的工作过程,实质上是不同的数据流在控制信号作用下,在限定的数据通路中进行传送。数据通路不同,指令所经过的操作过程也不同,机器的结构也就不一样,因此数据通路的设计是至关重要的。所谓数据通路的设计,也就是确定机器各逻辑部件相对位置的总框图。
数据通路的设计,目前还没有非常标准的方法,主要是依据设计者的经验,并参考现有机器的三种典型形式,根据指令系统的要求,可采用试探方法来完成。其主要步骤如下:
(1)对指令系统中的各条指令进行分析,得出所需要的指令周期与操作序列,以便决定各器件的类型和数量。
(2)构成一个总框图草图,进行各逻辑部件之间的相互连接,即初步确定数据通路,使得由指令系统所包含的数据通路都能实现,并满足技术指标的要求。
(3)检验全部指令周期的操作序列,确定所需要的控制点和控制信号。
(4)检查所设计的数据通路,尽可能降低成本,简化线路。
以上过程可反复进行,以便得到一个较好的方案。

这里给出一个总框图的参考方案,它就是前面的实验中用到的数据通路总体图9.16。注意,在方案确定之后,应检查所选用的各个器件是否满足数据通路的要求。实际上,数据通路的设计与器件的选择应同时进行而不能分离地工作。其次,接入总线的器件都要有三态输出,以便与总线连接。另外,信号传送过程中应注意器件原码和反码输出的配合关系。
图9.16的方案采用了数据、指令双总线结构,使用的许多器件具有并行输入输出的功能,而输出到总线的端口都受到三态门的控制。这种方案与单总线方案相比,更容易支持并行操作。配合水平型的微指令控制器,可使指令周期更短,性能更高。同时,保持了总线连接和扩展的能力,可以根据需要,在总线上挂接更多的器件,但要注意总线使用权的配合。
参考方案中还保留了几处二选一的多路输入,是为了增加实验仪的灵活性,在实际实验中未必全部都用到。本次实验采用普通微程序控制,也未必能发挥该数据通路的最佳性能。
四、微程序控制器
数据通路框图一旦确定,指令流与数据流的通路也就随之最后确定,因而控制器的大部分结构也就确定下来了。图9.16中各功能器件上标注有需要输入的控制信号,这些控制信号就是设计微程序控制器的依据。
(1)微指令格式
微指令格式建议采用水平型微指令。微命令编码采用直接表示法和字段直接译码法相结合的混合表示法,以缩短微指令长度。后继地址采用断定方式。微指令格式如下:
操作控制字段30位,通过直接或字段译码方式对数据通路进行控制;
下址字段6位,从而确定控制存储器容量为64个单元;
判别测试字段4位,可用于规定P1-P4四种测试。
如果不需要用到某些控制信号,可适当缩短微指令长度。
(2)微程序控制器
微指令长度为40位,因此控制存储器可采用5片EPROM(2716)或FLASH RAM(AM29F010)用位并联方式组成,其结构可参考有关微程序控制器的章节。注意,实验仪本身配置的微程序控制器没有独立的微指令寄存器,相应的寄存功能由微地址寄存器和控制存储器共同实现,在原理上不应视为缺少微指令寄存器。
要想只采用一片EPROM(或FLASH RAM),可用并串行方式从EPROM读出微指令,分段打入微指令寄存器。此时微地址寄存器可使用具有计数功能的寄存器。不过这样会降低机器的速度指标,在性能要求不高时,也可采用这一方案。
(3)微程序设计
将机器的全部指令系统采用微指令序列实现的过程,称为微程序设计。一条机器指令对应一个微程序,11条机器指令应对应11个微程序。
微指令格式确定后,微程序的横向设计在于正确地选择数据通路,纵向设计在于确定后继微指令地址。事实上,微程序设计的关键在于纵向设计,即如何确定下一条微指令的地址。通常的做法是先确定微程序分支处的微地址,因为微程序分支处需要进行判别测试。这些微地址确定以后,就可以在一个“微地址表”中把相应的微地址单元填进去,以免后面的设计中重复使用而未发现,以致造成设计错误。以本实验仪模型机的微程序为例(见前面的实验图9.18),微程序流程图中共有4处分支,需要4个判别测试:P1是进位测试,P2是中断测试,P3是取指测试,P4是控制台测试。
P1测试后,微程序出现2个分支,因而占去2个固定的微地址单元;P2测试后,又出现2个分支,因而又占去2个固定的微地址单元;同理,P3测试后占去11个,P4测试后占去3个。这些地址单元应在微地址表中一一填写进去。填完所有的分支后,微地址表中所空出的单元可随意使用,原则是“一个萝卜一个坑”,即一条微指令占用控制存储器的一个微地址单元。由于微地址采用断定方式,某条微指令占用哪个微地址单元无关紧要。
每条机器指令的最后一条微指令即转入公操作时,应当给出一个标志信号,以便用单指令方式执行程序时,能够在一条机器指令执行完毕时停机。本实验仪模型机中,此标志信号直接采用微指令判别测试字段标志P2,另外也可以直接设置一个微命令。
为了调试方便,并且出于向内存和寄存器组输入初始程序和数据的需要,应当设置“控制台指令”。本模型机设置了如下4条控制台指令:
1.内存读出(KRD)
这条指令的功能是,把8位数码开关SW的二进制值作为地址送入地址寄存器AR1,然后依次读出该内存单元及其后各单元的内容。内存单元内容由数据总线的指示灯显示,每读一个单元停机一次。
2.内存写入(KWD)
与KRD指令相对应,只是读出变为写入,写入的内容来自数码开关SW。
3.寄存器写入(KLD)
这条指令的功能是,把SW的二进制值作为地址送入地址寄存器AR1、AR2,然后利用RAM作中介,将SW提供的通用寄存器寻址码(0至3)从RAM的数据端口输入,指令端口输出至指令寄存器IR,从而使寻址生效。同时把SW提供的寄存器初始值输出到缓冲寄存器ER,再写入通用寄存器组REG中。
4.程序启动(PR)
这条指令的功能是,将数码开关SW的二进制值作为程序首地址送入PC,然后转入公操作。注意,对于省略了中断系统的简化模型机,公操作将是取指令,而不是中断请求识别。
上述4条控制台指令使用两个开关SWA、SWB的状态来设置,其定义如下:
SWA |
SWB |
控制台指令 |
0
0
1
1
|
0
1
0
1
|
程序启动(PR)
内存读出(KRD)
内存写入(KWE)
寄存器写入(KLD)
|
控制台指令的功能也应在微程序设计中实现。
全部微程序设计完毕后,为了将每条微指令代码化,应当列出微程序表。微程序表的内容包括每个微程序的横向设计与纵向设计。横向设计内容包括每条微指令中所包含的所有微命令码点,纵向设计内容包括当前微指令的地址,下一微指令的地址,以及判别测试字段标志。下表是微程序表的一般格式。
微指令 |
QE |
ADD |
SUB |
MUL |
... |
当前微指令地址 |
05 |
下条微指令地址 |
10 |
判别测试字段 |
0
1
0
0
|
M
S3
S2
S1
S0
|
... |
LDER |
LDAR1 |
字 段 A
|
01 |
10 |
11 |
字 段 B
|
001 |
010 |
011 |
100 |
101 |
110 |
111 |
... |
注意:操作控制字段有的采用直接控制,有的采用字段译码控制。在采用字段译码控制时,微命令信号要精心安排,使得一个字段内的控制信号在一个微指令周期中不会同时出现。如果同时出现,可调换到别的字段中。
五、输入输出
输入输出是人机联系的重要手段。输入可采用开关、键盘等方式,输出可采用指示灯、字符显示、打印等方式。考虑到成本与复杂度因素,本实验仪模型机采用最简单的二进制开关输入和发光二极管显示输出的方法。换句话说,本模型机只使用两种“外部设备”:一种是二进制数码开关,作为输入设备;一种是发光二极管,作为输出设备。
本设计为简单起见,输入输出时可以不设置专门的数据缓冲寄存器。输入时,二进制开关数据直接经三态门送到总线上,只要开关状态不变,输入的信息也就不变。输出时,将输出数据送到总线上,由实验仪自带的二选一通道驱动发光二极管进行显示。
如果采用正规的输入输出方法,可采用类似8212器件的接口电路。
六、组装与调试
(1)元器件的布局与连接
从图9.16看出,数据通路一旦确定之后,在调试过程中将很少有变化。因此从组装和调试的角度来看,模型机总框图可划分为三个相对独立的功能模块:
1.数据通路(包括系统总线、运算器、存储器等)
2.时序产生器
3.微程序控制器
鉴于本模型机所使用的器件较多,布线工作量相当大,而大量的手工接线既费时间又不可靠,为节省时间,上述1、2两个功能模块内部连线已采用印制电路板连接好,安装在JYS-4计算机组成原理实验仪上。这样,与数据通路模块外部所需要连接的仅仅是微程序控制器送出的控制信号。
相对说来,微程序控制器功能模块的设计比较灵活,变化也较大,为此需要精心设计。这样,设计者在通用实验板上组装的仅仅是微程序控制器或其他控制器电路,因为这些电路对不同设计者来说,由于设计技巧不同而可能有所不同。
元器件在通用实验板上布局的一般原则是尽可能地按功能电路相对集中,这样做的好处是器件之间连线较短,同时也便于组装和调试。
为了安装和调试检查方便,集成电路应当以相同方向插入。通常总是把集成电路芯片的定位缺口向左,此时它的电源引脚在左上角,接地引脚在右下角。这种排列有利于设置电源线与地线。这一点在设计通用实验板时已经考虑好,且电源线和地线已经通过印制板连接好。
规整的布线不仅对调试维修带来方便,也可以保证线路可靠地工作。任何马马虎虎的接线将会给调试带来难以想象的后果,因此在布线前必须对布线质量给予高度重视。不过JYS-4型实验仪采用了可靠性很高的锁紧式插头立体布线,所以不用担心接线本身的可靠性和质量。
布线的顺序是:先接元器件就近的短接线,然后连接元器件之间的长接线。对这些连接线,可以使用不同颜色,以便表示不同的信号连接。按照这种布线方法,可以保证调试时对原来的接线改动得最少。
布线完成后,要顺序检查每个集成电路的引脚,并核对它的连接是否与逻辑图和接线表一致,检查无误后方可通电调试。
(2)分调试
按功能模块进行分调并成功,是实现总调试的前提和基础,因为只有各功能模块工作正常后,才能保证全机的正确运行。为此,必须一步一个脚印,精心做好分调试,切不可赶急图快,以免因未做好分调就进入了总调,导致最后不得不回过头来重新分调试。分调的重点放在时序产生器和微程序控制器。
分调工作首先应当调试时序部分。为此,必须用双踪示波器或逻辑测试笔观测微指令周期中时序信号的宽度、频率、相位是否正确,是否满足逻辑设计所提出的要求。
在时序部分调试正确后,可调试微程序控制器。微程序控制器进行分调的要求是:通过发送单拍时序信号(一个微指令周期),检查控制存储器读出的微指令是否正确。可以给微地址寄存器预置一个地址,以单拍方式读出微指令,以检验微指令码和字段译码是否正确。若用单步方式读出所有的微指令都正确,则给微地址寄存器预置某一适当地址,然后发送连续时序信号。此时微地址将进入某一循环状态,用示波器或逻辑笔观测微指令周期是否与单拍周期一致。利用单拍方式,我们每次只读一条微指令,这将对机器的分调和总调都带来很大的方便。另外还可采用单指令方式工作,机器启动并执行完一条机器指令后自动停机,它以公操作标志来体现。另外,当微指令中出现停机(TJ)微命令时,机器也要自动停机。
(3)总调试
当控制器分调试正常后,可将控制器发出的控制信号线连接到相应的功能部件中去,进行全机总调试。
总调的第一步,实际上是检查全部微程序流程图。方法是用单拍(DP)方式读出并执行微指令。进行的顺序是:先执行控制台指令的微程序流程,然后执行机器指令的微程序流程。当全部微程序流程图检查完毕后,如果数据通路的执行器件(运算器、存储器等)功能正确,就算总调第一步完成。
第二步是在内存中写入包括有全部指令系统的一段程序和有关数据,进一步可采用单指(DZ)方式或连续方式执行,以验证机器执行指令的正确性。
第三步是编写一段表演程序,令机器运行。在器件负荷允许的范围内,可通过电源拉偏、连续工作等措施考验机器的性能。
第四步是运行指导老师给出的验收程序。如果通过,就算大功告成。
七、更高水平的课程设计
前面叙述的课程设计说明,是对学习“计算机组成原理”课程的计算机系所有学生的基本教学要求:按给定的指令系统和指令格式,完成一台模型计算机的设计和调试。
本小节提出的所谓更高水平的课程设计,是指更高的教学要求,这些要求是
(1)仍然使用图9.16所提供的数据通路;
(2)学生自己拟定机器指令格式和微指令格式;
(3)只使用一片EPROM或FLASH RAM作为控制存储器。
提出第(1)项是出于两个考虑:一是该数据通路具有一定的通用性和灵活性,因而可适用于不同的指令系统;二是该数据通路作为功能模块,已做成一块电路板,因而可以大大减轻布线的工作量。
第(2)项要求是在指令系统功能和寻址方式给定的情况下,要求学生自己设计机器指令格式和微指令格式,具体要求有:
(1)寻址方式
立即数寻址,直接寻址,寄存器直接寻址,寄存器间接寻址,隐含寻址。
(2)指令系统功能
在原有指令系统的基础上,增加以下功能(可选):
1.MOV指令添加更多的传送方式,例如运算器输出至PC、S输出至RAM等;
2.挂接外部设备,增加IN、OUT指令;
3.增加除法运算、长整数乘法运算、高精度浮点运算指令(需要分段计算);
4.在RAM中设置中断地址堆栈,支持多级中断;
5.双机通信:两台实验仪总线以三态门互联,由微程序来处理通信同步问题(注意电源负载)。
微指令可采用水平型,也可采用垂直型。由于限定使用一片EPROM或FLASH RAM,当使用水平型微指令时,需要多个单元分段存放一条微指令,读出一条微指令时也需要分段打入微指令寄存器。垂直型微指令需要定义微操作码。在上述两种情况下,后继微指令地址可采用微指令计数器方式,也可采用断定方式。由于控制存储器芯片数受限,尽管节省了器件,但是会降低微程序执行的速度,另外从控制方面来讲,相应地要复杂一些。好在我们的目标不在于追求速度指标,而是追求用尽可能少的器件实现指令系统功能,通过课程设计这一实践环节培养我们分析问题和解决问题的能力。
鉴于大多数同学进行课程设计时,开头常常有无从下手之感,我们给出本实验仪中微程序控制器的关键部分设计作为参考。
(1)微指令格式 见图9.17
(2)微程序控制器 见图9.17
(3)微程序流程 见图9.18
(4)微程序代码表 见表9.15
|
|
|
相关文章:
[合著] 中断原理实验 [2007-06-26] [合著] CPU组成与机器指令执行实验 [2007-06-26] [合著] 微程序控制器组成实验 [2007-06-25] [合著] 数据通路组成实验(旧) [2007-06-25] [合著] 数据通路组成实验 [2007-06-25] [合著] 双端口存储器原理实验 [2007-06-25]
最新留言:
用雅典娜加密的网页可以解密吗 [2014-10-16] 求教 [2014-10-16] 评论:[原创] 更快、更高、更强——Super Prime超级质数机 [2014-06-04] 评论:[软件下载] Super Prime超级质数机免费版下载 [2014-06-04] 评论:留言阅读 [2013-12-08] 开始尝试分析key文件 [2013-11-29]
|
|
相关链接 |
|