32位单周期RISC处理器设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
32位单周期RISC处理器设计

第一章 32 位单周期RISC处理器设计 要设计一款处理器,首先要选择体系结构,本题选择的是RISC体系结构,因为它适合于流水线设计。然后需要选择一个标准的指令集,本题选择的MIPS指令集并按照常规的五段流水的方式来实现流水线。流水线的实现过程将在第二章介绍。 1.1目标处理器指令集与指令格式 本题目标CPU以能实现部分MIPS指令为目标,具体指令如下表1: 类别 指令 格式 算术运算 加(add) R 减(sub) R 立即数加(addi) I 立即数减(subi) I 逻辑运算 与(and) R 或(or) R 或非(nor) R 立即数与(andi) I 立即数或(ori) I 立即数或非(nori) I 数据传递 取字(lw) I 存字(sw) I 条件分支 相等转移(beq) I 小于比较(slt) R 立即数小于比较(slti) I 无条件跳转 跳转(jL) J 空操作 空操作(nop)   表1 目标CPU指令集 1.2 从指令具体行为反推设计方案 CPU要执行一条指令,不外乎需要完成以下几个过程:取指令,指令译码,将译码出的指令放到算术逻辑运算部件ALU上执行运算,根据ALU算得的访存地址进行访存和将访存的结果写回寄存器等。当然,不同的指令类型(R、I、J)可能经过的过程稍有不同,即它们的数据通路有所不同,以下将具体介绍: R格式指令数据通路: 1)从指令寄存器Instr MEM中取出指令,同时PC增值(即加1等待下个CLK到来); 2.)寄存器单元rs1和rs2的内容从寄存器堆Reg File中读出; 3.)ALU根据功能码Opcoder确定操作方式,对从寄存器堆读出的数据进行计算; 4.)ALU运算结果被写入寄存器堆,由rd确定写入的寄存器堆存储单元地址。 图1 R指令数据通路 2. I 指令(除lw、sw和分支指令)数据通路如图2: 1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来); 2.)寄存器单元rs1的内容从寄存器堆Reg File中读出; 3.)ALU将从寄存器堆rs1单元中读出的数据与符号扩展后的指令低16位值相加; 4.)ALU的运算结果被写入寄存器堆,由rt确定写入的寄存器堆存储单元地址。 图2 I 指令(除lw、sw和分支指令)数据通路 3、Lw指令数据通路如图3: 1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来); 2.)寄存器单元rs1的内容从寄存器堆Reg File中读出; 3.)ALU将从寄存器堆rs1单元中读出的数据与符号扩展后的指令低16位值相加; 4.)将ALU的运算结果作为数据存贮器的地址读出相应单元的内容; 5)把从数据存储单元取出的数据写入寄存器堆,由rt确定写入的寄存器存储单元地址。 图3 LW指令数据通路 4、Sw指令数据通路如图4: 1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来); 2.)寄存器单元rs1和rs2的内容从寄存器堆Reg File中读出; 3.)ALU将从寄存器堆rs1单元读出的数据与符号扩展后的指令低16位值相加; 4.)将ALU 的运算结果作为数据存贮器的写入地址,把从寄存器堆rs2单元中取出的数据写入数据存储器中。 图4 SW指令数据通路 5)分支和跳转指令数据通路如图5: 分支和跳转指令主要控制PC的输入来达到分支或跳转的目的。 分支指令数据通路: 1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来); 2.)寄存器单元rs1和rs2的内容从寄存器堆Reg File中读出;同时主控制单元还计算各控制线应被设置的状态,具体状态表如表2所示; 3.)ALU将从寄存器堆读出的两数相减,同时把PC+1的值与符号扩展后的指令低16位值相加,其结果即为分支目标地址; 4.)根据ALU的Zero端口值和branch输出共同决定的PC的值:当Zero端口和branch的输出均为高电平时PC的值取第3步计算所得的分支目标地址,否则取第1步的PC+1值。 跳转指令数据通路: 1.)从指令寄存器Instr Mem从取出指令,同时PC增值(即加1等待下个CLK到来); 2.)主控制单元计算各控制线应被设置的状态,状态表如表2所示。PC+1的值的高6位[31~26]加上指令低26位([25~0])值组成跳转目标地址,根据主控制单元生成的Jump值决定是否跳转,Jump为1则PC的

文档评论(0)

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

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

1亿VIP精品文档

相关文档