一个非常简单的cpu的设计srtwgwc4.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个非常简单的cpu的设计srtwgwc4

* 现在我们来用垂直编码的方法来设计这个Very Simple CPU的控制单元。我们还是从指令集、状态图、数据路径和ALU等开始分析。数据路径和硬布线逻辑相同,微程序代码控制器的影射逻辑、以及微代码存储器中的SEL和ADDR的内容与水平编码的设计也相同。我们现在的任务就是给微操作分配不同的微操作码。我们按照以下规则进行: * 当两个微操作在同各状态发生时,把它们分在不同的域。也就是要求每个域在一个状态只能够输出一个值。 如果需要的话每个域中都可以包含NOP操作。当此域中没有操作要执行时输出空操作。 把其余的微操作分布到各个域中,尽可能的充分利用每个域能表示的状态。各个域的字长可以不同。 把在同一个域中修改同一个寄存器的微操作组成一组。因为两个微操作不能同时修改同一个寄存器。 * 首先我们检查同时进行的微操作有哪些,注意到DRM和PCIN都在Fetch2发生,所以必须被分到两个不同的域中。所以这个CPU至少需要两个域M1和M2。在每个域中加上NOP操作得到: M1 M2 NOP NOP DRM PCIN * 由于PCIN和PCDR都修改PC,我们把PCDR加到M2中。接下来我们把修改同一个寄存器的操作放到同一个域中得到一个状态分配方案如下: M1 M2 NOP NOP DRM PCIN ACIN PCDR PLUS ARPC AND AIDR * 每个域中有5个微操作,所以每个域都需要3bit来表示。总共需要6bit来表示。我们对之进行优化,可以把AIDR从M2移动到M1中,这样M1可以用3bit表示M2只需要2bit表示了。我们还可以进一步的优化把ARPC和PCDR也从M2移动到M1中,这样M1有8个状态,M2有2个状态。所以一共可以用4bit来表示。最后结果如下表: * M1 M2 Value Micro-operation Value Micro-operation 000 NOP 0 NOP 001 DRM 1 PCIN 010 ARPC ? 011 AIDR ? 100 PCDR ? 101 PLUS ? 110 AND ? 111 ACIN ? * 接下来我们用这些数值来生成最终的微代码存储器的内容,结果如下表: * State Address SEL M1 M2 ADDR Fetch1 0000 0 0 010 0001 Fetch2 0001 0 0 001 0010 Fetch3 0010 1 1 011 Xxxx ADD1 1000 0 0 001 1001 ADD2 1001 0 0 101 0000 AND1 1010 0 0 001 1011 AND2 1011 0 0 110 0000 JMP1 1100 0 0 100 0000 INC1 1110 0 0 111 0000 * 注意到M1中的NOP操作从来没有用到,我们可以把M1中的空操作去掉。 接下来我们要把M1和M2的输出进行译码得到相应的微操作信号,对M1用一个3-8译码器就可以,对M2来说直接接到PCIN上即可。 最后再经过和水平编码方式相同的控制信号产生逻辑就可以的到整个微程序控制器的设计。 * 2.5直接生成控制信号编码 这种方法微代码存储器不是生成微操作信号而是直接产生数据路径中的控制信号。设计中不同的部分就是微代码存储器中的微操作信号不同,而且省去了微代码存储器输出之后的译码逻辑而是直接输出数据路径所需要的控制信号。 例如看Fetch2中的控制信号,Fetch2执行的微操作是:DR<—M,PC<—PC+1我们需要的控制信号有:READ,MEMBUS,DRLOADPCINC同时所有其他的信号必须置0以保持没有总线争用。对每个微指令进行这样的分析最后得到下表: * State Address S E L A R L O A D P C L O A D P C I N C D R L O A D A C L O A D A C I N C I R L O A D A L U S E L M E M B U S P C B U S D R B U S R E A D ADDR Fetch1 0000 0 1 0 0 0 0 0 0 0 0 1 0 0 0001 Fetch2 0001 0 0 0 1 1 0 0 0 0 1 0 0 1 0010 Fetch3 0010 1 1 0 0 0 0 0 1 0 0

文档评论(0)

seunk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档