- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 处理器:数据通路及其控制
在关键领域任何细节都不能忽视。
———法国谚语
5.1简介 1
5.2数据通路的建立 7
5.3一个简单的实现方案 14
5.4一个多周期实现方案 34
5.5微程序设计:简化控制设计 52
5.6例外 66
5.7实例:高能奔腾的实现方法 71
5.8谬误和陷阱 74
5.9结论 76
5.10历史回顾和参考文献 78
5.11重要术语 81
5.12习题 83
5.1简介
在第2章,我们看到一台计算机的性能由三个关键因素决定:指令数目、时钟周期长度和每条指令所需时钟周期数(CPI)。我们在第3、4章学习的编译器和指令集系统决定了一个程序所需的指令数目。而处理器的实现方式则决定了时钟周期长度和每条指令所需时钟周期数。在本章中,我们为MIPS指令系统的两种不同实现方式建立数据通路和控制单元。
我们将要设计的实现方式包含了MIPS指令系统的一个核心子集:
存储访问指令load word(lw)和store word(sw)
算术逻辑指令add,sub,and,or和slt
最后加入的指令branch equal(beq)和jump(j)
这个子集没有包括所有的整数指令(如缺乏乘除指令),也不包括任何浮点指令。但是,在建立数据通道和设计控制部分时用到的关键原理都会得以体现。其余指令的实现也是类似的。
在学习此实现方式时,我们将有机会看到指令系统如何影响实现方式的多个方面,以及不同实现策略的选择如何影响时钟速度和机器的CPI。许多在第3章介绍到的关键的设计原理,如加快常用部件和简单有利于规范化的指导思想,都将体现出来。并且,在本章及下一章中用于实现MIPS子集的大多数概念与很多计算机的基本构造思想是一致的,从高性能计算机到通用微处理器到专用处理器,这些计算机越来越广泛地应用在从VCR到汽车等各种产品中。
实现方式的概述
在第3,4章,我们学习了 MIPS的核心指令, 包括整数算术逻辑指令、存储访问指令及跳转指令。这些指令的实现过程大致相同,而与具体的指令类型无关。实现每条指令的前两步是一样的:
指令程序计数器(PC) 指向指令所在的存储单元, 并从中取出指令。
通过指令域内容,选择读取一或二个寄存器。对于load word 指令,只需读取一个寄存器,而其它大多数指令要求读取两个。
这两步之后,为完成指令而进行的步骤则取决于具体的指令类型。幸运的是,对三种指令类型(存储访问、算术逻辑、跳转)的每一种而言,其动作大致相同,与具体操作码无关。
即使是不同类型的指令,也有一定的共性。例如,所有类型的指令在读取寄存器后,都要使用算术逻辑单元(ALU)。存储访问指令用ALU计算地址,算术逻辑指令用来执行运算,跳转指令用ALU 进行比较。可以看出,指令的简洁和规整使许多指令的执行很相似,因而简化了实现过程。
使用ALU 之后,不同类型指令需要进行不同的操作。 存储访问指令需要对存储单元进行读出或写入。算术逻辑指令需要将ALU产生的数据写回寄存器中。而跳转指令会根据比较的结果,决定是否需要更改下条指令的地址。
图5.1概括地描述了MIPS的实现方式。本章的以下部分将介绍其细节。这需要加入更多的功能部件,以及功能部件间的连接,当然还要有控制单元以控制不同类型指令需要执行的操作。在进一步完善这个实现方案之前,我们先要讨论一些逻辑设计的原则。
关于逻辑设计的规则和时钟
在考虑计算机的设计时,必须决定机器的逻辑实现如何操作以及机器的时钟。本节将讨论一些本章经常用的数字逻辑的关键思想。如果你欠缺数字逻辑方面的知识,那么在继续学习之前,看一看附录B 将有所帮助。B.9 节列出了在附录B 中介绍的重要术语,可以作为快速查找表,帮你复习关于逻辑设计的知识。
在逻辑设计中,为了方便,设计者经常变换真假逻辑值与高低电平之间的对应关系。这样一来,在设计中的某些地方低电平对应逻辑真,在另一些地方却是高电平对应逻辑真。为了保持一致,我们用有效来表示逻辑高的信号,用使有效来表示应该变为逻辑高的信号。
在MIPS实现中的功能部件包括两种不同的逻辑单元:处理数据值单元和存储状态的单元。处理数据值单元都是组合的,即它们的输出只取决于当前的输入。当输入一样时,产生的输出也一样。图5.1中显示、第4章详细论述的ALU就是组合单元。给出一个输入集合时,因为没有存储功能,产生的输出总是一样的。
设计中的其它单元不是组合的,而是包含状态。如果一个单元带有存储功能,它就包含状态。我们称之为状态单元,因为关机后,我们可以通过给状态单元设置原来的值而重启计算机。甚至,如果我们保存并重新恢复状态单元的内容,则效果相当于计算机没有断过电。所以说,这些状态单元完全描述了计算机。在图5.1中,指令和数据的存储器、寄存器都是状态单元。
图5.1 MI
文档评论(0)