龙之梦工作室
LOGO

技术文章


(SCI) Parallel Algorithm for Wireless Data Compression and Encryption   (SCI) Fast Algorithm of Truncated BWT for Data Compression of Sensors   Dr. Qin Jiancheng   龙之梦助力肇庆教育网云计算   Dr. Zhou Yousheng   Dr. Bai Yuan   龙之梦工作室加盟华南理工学术团队   [软件下载] ComZip超级压缩机免费版下载   继续潜行,龙之梦工作室技术研发又一年   [软件交易] “雅典娜”网页密码锁在线购买   [软件交易] Super Prime超级质数机在线购买   [软件交易] ComZip超级压缩机在线购买   [信息安全] “风语者”高强度加密技术   [信息安全] 多层纵深防御体系结构   [合著] 专利:安全事件检测方法及装置  

[合著] 一台模型计算机的设计与调试(二):微程序控制器流水方案

[ 2007-06-27 17:17:13 ]

  引言/提要:与白中英老师等合著,《计算机组成原理题解、题库与实验》第三版,科学出版社,2000年。

  关键词:计算机组成原理,实验仪,实验教材

一、教学目的、任务与实验设备
 (一)教学目的
  (1)通过知识的综合运用,加深对计算机系统各模块协同工作的认识,特别是对并行、流水的认识,加深计算机工作中“时间-空间”概念的理解,从而建立基本的流水计算机的概念。
  (2)学习通过“固件升级”即改写微程序的方法来提高计算机系统性能的方法,体会设计方案优劣对性能发挥的重要性。
  (3)培养科学研究的独立工作和创新能力,取得设计与调试的实践经验。

 (二)设计与调试任务
  (1)在上一实验(第一方案)的基础上,设计一台微程序控制的指令级标量流水模型计算机。
  (2)根据设计图纸,在通用实验台上进行组装,或对第一方案的模型机进行改装,并调试成功。
  (3)在组装调试成功的基础上,整理出设计图纸和其他文件。包括的文件同第一方案。

 (三)实验设备
  (1)JYS-4计算机组成原理实验仪一台
  (2)双踪示波器一台
  (3)直流万用表一只
  (4)逻辑测试笔一支
  (5)集成电路若干片,取决于设计方案。

二、指令系统
  采用与第一方案相同的指令系统,即11条机器指令。同样考虑到复杂度和时间问题,一般应降低难度,采用该指令系统的子集:去掉中断指令后的9条机器指令。教材中给出的参考方案,是采用9条机器指令的。

三、设计要求
  设计流水方案时,牢记设计的目的是提高系统性能。没有性能改善、为流水而流水的方案是毫无意义的。
  实验仪的时序发生器将一个微指令周期分为T1至T4四段,利用QA至QD的关系,利用逻辑门还可以进一步细分。原则上,本次实验尽量只利用四段划分(参考方案中就是这样)。但若设计中碰到不可克服的冲突,允许将数据通路部分的时序细分,控制器部分不准细分。
  细分后,若发现数据通路部分的所有操作实质上都是常规串行操作(即同一时刻只有一个操作),该方案将被判为失败。

四、总体设计
  指令级标量流水,是指把机器指令的解析过程分解为取指、译码、访存、执行、写回等子过程,各子过程以流水方式运行。考虑到复杂度,在实际设计中,可以分解得不那么细。例如后面给出的参考方案中,只分了取指、执行、写回三个子过程。
  要实现流水,至少需要具备两个条件:

  (1)数据通路(包括其上的执行器件)要支持流水。
  设计这种支持流水的数据通路时,需要解决几个主要问题:
1、 流水线各段争用总线的问题;
   2、各段之间互通信息、互相等待的问题;
   3、各段工作时序协调一致的问题;
   4、中断、程序转移的处理问题。

  本实验仪采用了不少具有并行操作功能的器件,如存储器、寄存器组等,对支持流水有一定的帮助,但还需要使它们组成流水线。从广义上理解并行,则流水是并行的一个特例,只有具备先后、因果关系的并行,才能称为流水。例如,图9.16中,DR1和DR2可以并行操作,但它们的关系不是流水。
  实际上,图9.16的数据通路已经布置好了流水线,它可以划分为如下功能部件:
   1、取指段:包括RAM的右端口、AR2、MUX3、PC、IR。
   2、执行段:包括ALU、DR1、MUX1、DR2、MUX2、RF、ER、RAM的左端口、AR1、IR、DR4、MUX4、ALU3、PC。
   3、写回段:包括ER、RF,还需要对写回寄存器选择信息进行缓冲,为此要增加如图9.22的缓冲寄存器(否则,WR1、WR0的信息会在写回操作之前改变)。注意,设计的方案不同,可能需要的缓冲寄存器也会有所不同。
  也可采用别的划分,上述划分方法仅供参考。

  (2)控制器要有能力驱动流水线。

  在第一方案中,我们使用的是常规的微程序控制器,虽然数据通路相同,但没有利用其中的流水功能,因此得到的整体系统仍然是常规模型计算机。本实验采用的第二方案,我们就要对原有的微程序控制器进行必要的改进,使之成为微程序流水控制器。

五、微程序流水控制器
数据通路总体图
  由于数据通路仍然沿用图9.16,无须重新设计,因此本次实验的重点就集中在控制器的设计上。这里给出的参考方案,使用指令系统的子集,只有9条指令系统。因为流水控制中,对中断断点的处理会增加流程的复杂度,增大理解的难度,不宜作为参考方案。相信善于思考的同学是可以设计出支持中断的方案的。
  第二方案所使用的控制信号,与第一方案基本相同。可以预料,在微指令等方面的设计都会十分类似。

  (1)微指令格式
  若在第一方案中采用了垂直型微指令,在本实验中需要改用水平型,因为用垂直型微指令来控制并行度较高的流水线将会困难重重。微命令编码仍然可以用直接表示法和字段直接译码法相结合,后继地址用断定方式。事实上,本参考方案的微指令格式与参考的第一方案完全一致。
  严格地说,本方案没有中断控制,相应的控制信号可以省略,因此微指令字长可以缩短。但为了兼容第一方案,仍然保留了这些控制信号。其实第一方案也有保留的控制信号,例如M1、M2等。

  (2)微程序控制器
  微程序控制器的逻辑结构与第一方案几乎完全一致,有差异的只是顺序控制部分,即微程序转移逻辑电路,原因是微程序需要重新设计,重新分配微地址。只采用1片EPROM(或FLASH RAM)同样是可以的。支持流水并未对控制器的硬件结构提出更高的要求。

  (3)时空图
  如果是要从头设计一套流水系统,时空图应在设计数据通路之前确定,因为具体的流水线是跟时空图紧密相联的。本实验是在已有的数据通路的基础上(已知该数据通路支持流水),通过改进控制来提升系统性能,因此将时空图放在控制器部分进行设计。
  参考方案的时空图如下,数字表示该时刻所处理的机器指令序号:
周期 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
取指 1   2   3   4   5   6   7   8      
执行   1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8  
写回       1   2   3   4   5   6   7   8

  这并不是唯一的方案。同样的数据通路,时空图也可以设计成这样:
周期 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
功能段1 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8  
功能段2   1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8

或者这样:
周期 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
功能段1 1 2 3 4 5 6 7 8 9 10 11 12      
功能段2   1 2 3 4 5 6 7 8 9 10 11 12    
功能段3     1 2 3 4 5 6 7 8 9 10 11 12  
功能段4       1 2 3 4 5 6 7 8 9 10 11 12

等等,只要设计可以实现即可。不同的时空图直接影响系统的性能。

  (4)微程序设计
  这里是第二方案中的关键。控制器的强大与否,对机器性能发挥出多少,就取决于如何设计控制流程,并转化为微程序。
  前面说过,微程序设计包括了横向设计和纵向设计。要实现流水控制,纵向设计仍然重要,而横向设计也同样需要仔细考虑。因为流水线中要求尽量多的并行操作,以便充分利用硬件资源,减少闲置。横向设计中就应把不冲突的、可以同时实现的控制,放在同一微指令中。纵向设计中,考虑控制顺序要连同并发控制一起考虑,尤其是出现冲突时,需要前后错开。此外就是注意在机器指令发生转移(无条件、有条件或中断)的地方,要丢弃已取的指令,重新做一次取指操作。
  设计流水控制的微程序与设计常规的微程序相比,难度要大一些,主要是因为常规流程是单线索的,每一微指令周期要做什么,思路很清晰,而流水控制的流程则同时包含多重线索,每个微指令周期都可能含有两个以上不相干的操作,比较复杂,需要用并发的思维去考虑。由于可能出现的情况大大增多,设计时容易出错,因此一定要细心,规划周全。如果先设计出常规的微程序控制流程图(即前面的第一方案),然后进行微指令合并,出错的可能性会比直接设计流水控制的微程序要小一些。
微程序流水控制器流程图
  图9.20是第二方案的参考流程图,它是以图9.18(省略中断指令)为基础,经过微指令合并后得到的。合并方法是:观察每个微指令周期和上一周期的操作是否冲突,不冲突则将本周期的操作叠加至上一周期。例如图9.20中地址为35的微指令,就是图9.18中地址为35和05的两个微指令合并而成的(没有中断的情况下,35后面紧跟着的是05)。
  流水控制的微程序流程必须涵盖所有可能的情况,为此可以用地址不同、操作类似的微指令来实现不同的分支。例如图9.20中,地址为20、10的两个微指令是相似的,分别表示上一机器指令中需要和不需要WRD操作的情况。至于转移指令的处理,图9.20中已经很清楚,注意一下即可。
  控制台指令与第一方案的完全相同,不再赘述。对照9.18思考一个问题:在KLD的循环中,第二方案比第一方案多插入了一个空指令(微地址2F),有什么作用,去掉它会怎么样?

六、组装与调试
  如果事先没有做第一方案的实验,或者已经拆除了第一方案中的接线,则参照前面第一方案的介绍,进行数据通路、时序产生器和微程序控制器的组装和分调试。如果已经有现成的第一方案的模型机,则无须重新组装,只作必要的电路修改即可。对修改过的部分仍然要先进行分调试。
  总调试中,要求连续执行多种机器指令,检查流水线是否真正起作用,要特别注意条件转移、无条件转移的操作是否正确。
  我们不妨计算一下参考的第二方案比第一方案时间性能提高了多少。一条k段的流水线完成n个连续任务的加速比为:
公式

将k=3代入公式,以1拍为单位时间,我们得到
    S = 4n / [4 + 2(n-1)]
      = 2n / (n+1)
      = 2 - 2/(n+1)
  当n趋向于无穷大时,S趋向于2。就是说,没有冲突、转移的理想情况下,第二方案执行指令的速度无限接近于第一方案的两倍。

  可见,在数据通路不变的情况下,单靠改写微程序,并相应地对控制器略作修改,就能提高系统的性能。若考虑上述方案的微程序控制器电路中,微程序转移逻辑部分使用可编程器件,如GAL、ISP等,则整个控制器都无须进行线路改动,就能实现第一方案到第二方案的升级。由于微程序、ABEL程序等又被称作固件(介乎传统的硬件和软件之间),这样的升级可称为固件升级。目前许多计算机配件带有FLASH RAM,通过改写FLASH RAM可提高系统的性能,这些就是固件升级在真实的计算机系统中的例子。

七、更高水平的课程设计
  前面所叙述的课程设计说明,是对学习“计算机系统结构”课程的计算机系所有学生的基本教学要求:按给定的指令系统和指令格式,完成一台微程序控制的模型流水计算机的设计和调试。
  本小节提出的所谓更高水平的课程设计,是指更高的教学要求,这些要求是
  (1)仍然使用图9.16所提供的数据通路;
  (2)学生自己拟定指令格式和微指令格式;
  (3)只使用一片EPROM或FLASH RAM作控制存储器;
  (4)增加对中断的支持;
  (5)将流水线细分为四段、五段或更多。
  前面三项在第一方案中已经介绍过,后面两项仍然是任选项。第(4)项要求增加中断后,性能不应下降太多,不能又还原为常规控制。第(5)项要求是基于增加流水线分段数可提高性能的考虑,设计时要注意减少冲突,否则性能会不升反降。若要对时序信号进行细分,必须遵守前面的设计要求。

  我们给出微程序流水控制器的关键部分设计作为参考。
  (1)微指令格式 见图9.17
  (2)微程序控制器 见图9.21
  (3)微程序流程 见图9.20
  (4)微程序代码表 见表9.16
发表意见   相关搜索   返回主页   关闭窗口
相关文章:
  [合著] 一台模型计算机的设计与调试(一):微程序控制器方案 [2007-06-27]
  [合著] 中断原理实验 [2007-06-26]
  [合著] CPU组成与机器指令执行实验 [2007-06-26]
  [合著] 微程序控制器组成实验 [2007-06-25]
  [合著] 数据通路组成实验(旧) [2007-06-25]
  [合著] 数据通路组成实验 [2007-06-25]

最新留言:
  [2014-10-16]
  [2014-10-16]
  [2014-06-04]
  [2014-06-04]
  [2013-12-08]
  [2013-11-29]


从2005年3月18日起
访问本站页面计数器人次
版权所有 © 2005 龙之梦工作室,保留一切权利。
电子邮箱:master@28x28.com , co2288@126.com
相关链接 |