网站大量收购独家精品文档,联系QQ:2885784924

32位MIPS中央处理器的综合设计 中文翻译1.doc

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

32位MIPS中央处理器的综合设计 摘要 本设计实现一个基于MIPS32指令架构的5级流水线CPU。设计的重点是通过缩减指令执行的等待时间,从而可以利用高速的部件使CPU的运行速度至少达到100Mhz。CPU最终设计速度可以超过200Mhz,芯片面积大约在900,000平方纳米的合理范围内。 1 绪论 本文设计的目的实现并仿真通过一个五级流水线的MIPS32中央处理器的基本轮廓。之所以采用五级的水线架构,是因为这是一种划分CPU工作过程的主流观点。本文将介绍CPU设计的基本背景,并将CPU划分为几个重要的功能单元模块,并对每个模块进行设计论证。通过仿真和综合,得出的结果可以说明设计是否成功。 2 背景 设计一个基于MIPS-32架构的中央处理器,并对处理器进行测试、综合。本设计的处理器具有以下的特性: 1) 具有5级流水线 2) 具有冒险检测和校正功能 3) 具有数据前推功能从而减少指令的延迟周期 为了实现CPU的仿真,设计一些程序和数据文件用于读取将CPU指令寄存器的数据。CPU设计有一些寄存器作为指令和数据的存储。同样本设计的CPU也具备现实中CPU所具备的功能性和函数性,CPU的主要设计重点实现控制单元和数据通路的最优化。 处理器的设计是采用传统的五级流水线设计,这五级流水线别是为取指段、译码段、执行段、存储器访问段、回写段。取指令段的作用是从程序存储器正确的地址中读出将要执行的指令,程序计数器加1并指向下一条顺序执行的指令或者下一条分支指令的地址。指令译码部分的功能是在控制单元的作用下将指令译成对应的机器码,另外数据相关检测模块将在译码段起作用,用于检测从寄存器单元中取出的数据是否有冲突。执行段的功能是将指令中的数值送到算术逻辑单元中进行执行相关的运算和操作。执行段在必要时也会计算分支指令转跳的对应地址。另外数据前推单元会在执行段中进行相关的操作:将本来要从算术逻辑单元或从存储器单元中输出数据的操作,前推到中取出数据送到算术逻辑单元之前执行。存储器访问段负责从系统存储器中存取数值,同时也负责根据指令的要求向处理器写入数据和将处理器数据向外输出。为了避免额外并发的数据冲突,指令的读写必须设计在一个时钟周期内完成。最后的一部分是回写段的设计。回写段作用是将计算后的数值写回对应的寄存器组中。回写段应在前半个时钟周期内将数据写入寄存器组中,以避免可能会发生的结构性和数据性的竞争冒险。 本设计的CPU包含一个数据相关检测模块,它的作用是决定流水线是否增加一个流水线等待以防止数据冲突。数据相关检测之后,可以进行数据前推。数据前推是在数据被装入存储器之后就立即要在执行段使用或者是发生程序分支转移的情况下发生的。数据相关检测模块将会阻止程序计数器加1指向下一个值,清空取指令段寄存器的数据,并使数据前推在流水线过程中只执行空操作。据相关检测模块的结构和其在CPU的作用可由如图1所示。 数据前推模块具备消除大多数的时钟延迟的功能。如果没有数据前推模块,不管什么时候若要立即使用在运算之后得到的数值,必然要增加一个时钟延迟;并且任何时候从存储器中取出数据也会流水线引入两个时钟的延迟。这些情况如图2所示。数据前推模块可以监测算术逻辑单元和系统内存的数据输出,从而判断输出的数值是否应该反馈回算术逻辑单元以进行下一步的运算。假如刚通过运算得出来的数据需要被使用,数据前推模块会把数据在写入寄存器组之前,通过数据通路输入到算术逻辑单元中进行适当的处理。数据前推模块对CPU流水的影响如图4所示。 3 设计的实现 通过将5段流水线的各个子模块连接起来就可以得到整个这CPU的顶层设计电路图,本设计的CPU提供了外部访问的模拟测试平台,可以通过向指令存储器装入指令和监测寄存器组的数据变化来进行测试验证。由于流水线的5个模块是各自独立的,每个模块对必须对各自输出数据负责进行缓冲,因此没有必要为CPU设计一些将5个模块粘在一起的逻辑单元,要将流水线的5个模块正确地连接在一起是很简单的。作者设计的CPU和流水线的5个独立性模块如表1所示。本文设计的CPU由5个部分组成:取指段、译码段、执行段、存储器访问段、回写段。 在CPU设计中,取指令段将完成多种职责,它必须能正确地将程序计数进行更新操作,不管是在正常的顺序操作还是分支指令操作。指令取指段另一项功能是从存储器中读取指令,并把当前读取的指令传送到流水线的下一个阶段,或者当出现程序分支指令时时钟延迟等待,以避免发生错误的操作。取指段由三部分构成:指令寄存器,程序计数器、指令地址多路器。指令寄存器可以从外部装载数据,这些数据将会在下一阶段要执行相关的操作。 取指令段模块将负责维持程序计数器运行,而程序计数器是由32位的寄存器构成的,对指令地址和更新线路起作用。更新线路是用来判断指令地址是否要更新,它的设计是很有必要的

文档评论(0)

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

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

1亿VIP精品文档

相关文档