一个非常简单的cpu的设计.pptVIP

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个非常简单的CPU的设计 1、组合逻辑控制器 2、微程序控制器 1. cpu定义 我们按照应用的需求来定义计算机,本文介绍一个非常简单的CPU的设计,它仅仅用来教学使用的。我们规定它可以存取的存储器为64byte,其中1byte=8bits。所以这个CPU就有6位的地址线A[5:0],和8位的数据线D[7:0]。 我们仅定义一个通用寄存器AC(8bits寄存器), 它仅仅执行4条指令如下: 除了寄存器AC外,我们还需要以下几个寄存器: 地址寄存器 A[5:0], 保存6位地址。 程序计数器 PC[5:0],保存下一条指令的地址。 数据寄存器 D[7:0],接受指令和存储器来的数据。 指令寄存器 IR[1:0],存储指令操作码。 2 .取指设计 在处理器执行指令之前,必须从存储器取出指令。其中取指执行以下操作: 通过地址端口A[5:0]从地址到存储器 等待存储器准备好数据后,读入数据。 由于地址端口数据A[5:0]是从地址寄存器中读出的,所以取指第一个执行的状态是 Fetch1: AR—PC 接下来cpu发出read信号,并把数据从存储器M中读入数据寄存器DR中。同时pc加一。 Fetch2: DR—M,PC—PC+1 接下来把DR[7:6]送IR,把DR[5:0]送AR Fetch3: IR—DR[7:6],AR—DR[5:0] 3.指令译码 Cpu在取指后进行译码后才知道执行什么指令,对于本文中的CPU来说只有4条指令也就是只有4个执行例程,状态图如下: 4. 指令执行 对译码中调用的4个例程我们分别讨论: 4.1 ADD指令 ADD指令需要CPU做以下两件事情: 从存储器取一个操作数 把这个操作数加到AC上,并把结果存到AC,所以需要以下操作: ADD1: DR—M ADD2: AC—AC+DR 4.2 AND指令 AND指令执行过程和ADD相似,需要以下操作: AND1: DR—M AND2: AC—AC^DR 4.3 JMP指令 JMP指令把CPU要跳转的指令地址送PC,执行以下操作: JMP1: PC—DR[5:0] 4.4INC指令 INC指令执行AC+1操作: INC1: AC—AC+1 5. 建立数据路径 这一步我们来实现状态图和相应的寄存器传输。首先看下面的状态及对应的寄存器传输: Fetch1: AR—PC Fetch2: DR—M,PC—PC+1 Fetch3: IR—DR[7:6],AR—DR[5:0] ADD1: DR—M ADD2: AC—AC+DR AND1: DR—M AND2: AC—AC^DR JMP1: PC—DR[5:0] INC1: AC—AC+1 为了设计数据路径,我们可以采用两种办法: 创造直接的两个要传输组件之间的直接路径 在CPU内部创造总线来传输不同组件之间的数据 首先我们回顾一下可能发生的数据传输,以便确定各个组件的功能。特别的我们要注意把数据载入组件的各个操作。首先我们按照他们改变了那个寄存器的数据来重组这些操作。得到如下的结果: AR: AR—PC;AR—DR[5:0] PC: PC—PC+1;PC—DR[5:0] DR: DR—M IR: IR—DR[7:6] AC: AC—AC+DR;AC—AC^DR; AC—AC+1 现在我们来看每个操作来决定每个组件执行什么样的功能,AR,DR,IR三个组件经常从其他的组件载入数据(从总线),所以只需要执行一个并行输入的操作。PC和AC能够载入数据同时也能够自动加一操作。下一步我们把这些组件连接到总线上来,如图所示: 如上图所示,各个组件与总线之间通过三态连接,防止出现总线竞争。AR寄存器送出存储器的地址,DR寄存器用于暂存存数起来的数据。到现在为止我们还没有讨论有关的控制信号,我们现在只是保证了所有的数据传输能够产生,我们将在后面章节来使这些数据传输正确的产生---控制逻辑。 现在我们来看以下者写数据传输中有没有不必要的传输: AR仅仅提供数据给存储器,所以他不需要连接到总线上。 IR不通过总线提供数据给任何组件,所以他可以直接输出到控制单元。 AC不提供数据到任何的组件,可以不连接到总线上。 总线是8bit宽度的,但是有些传输

文档评论(0)

kfcel5889 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档