基于RISC-V参数化超标量处理器的优化设计.docxVIP

基于RISC-V参数化超标量处理器的优化设计.docx

  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文档。上传文档
查看更多
基于RISC-V参数化超标量处理器的优化设计 1引言 目前嵌入式领域市场具有很大的发展前景,但一直以来基本被ARM系列处理器占据。RISC-V 是由加州大学伯克利分校(UCB)提出的一种开源精简指令集架构 在嵌入式微处理器设计,低功耗处理器一般采用简单的单发射、顺序执行、写回的策略进行成本和性能的压制。在较高性能处理器中,其主要的核心思想是通过指令级并行(Instruction Level Parallelism, ILP) 缓存和执行单元的配置可以在一定程度上能够代表处理器的性能。充足的缓存与运算单元可以保证流水线不被大量气泡操作占用,最大程度上发挥多发射和乱序写回的性能。 可执行单元是由算术逻辑单元(ALU)、乘除法单元(MDU)等其他专用运算单元构成,单元的数目可以直接提高处理器的性能,但也同时会带来功耗收益的递减。在处理器设计中,不同运算单元是处在同一级流水线上并行运算,向后级缓存写入数据。对于不同单元的不同指令来说,需要为其分配不同的保留站进行数据相关性检测,且长周期执行单元会阻塞短周期执行单元的提交,造成处理器执行单元的空闲操作。 缓存在超标量处理器中充当着保证发射和写回的顺序严格按照程序本意的指令顺序执行。一些处理器的指令分派的机制采用了一种物理寄存器文件,重命名表和重排序提交缓冲区的数据结构。将传统的重命名寄存器堆合并到提交缓冲区中,并使重命名表分离。在配置的6个保留站(Reservation Stations,RS)中,获取用于每一个功能单元在下一执行阶段获得的基本操作数和功能代码,并通过比较调度指针识别最早发出的指令 面对嵌入式多种复杂的性能需求时 2处理器架构 本设计中设计了一种面向嵌入式的变长4级流水线结构,即“取指”、“派遣”、“执行”、“写回”,对派遣阶段进行了两次派遣处理,具有可配置各级流水线,乱序执行,乱序写回的特点。 处理器缓存可分为以下几类:指令接收来自指令存储器或cache中的指令,同时承担来自跳转与分支指令预测后的指令拼接区域;一级派遣缓存可以直接在派遣时得出寄存器的状态,对系统指令采取特殊通路,对于算数类型且无相关性的指令可以立即发射;寄存器缓存在写回阶段需要考虑其提交顺序 处理器可执行单元可分为:ALU与乘除法单元,可以根据实际应用做到参数化可配置。 2.1 流水线结构 处理器整体数据通路如图1所示。其中,指令缓存(Instruction Buffer,IB)缓存来自指令存储器中的指令,同时也是分支跳转指令的拼接缓存区。预测单元采用局部历史分支预测器(Local History),将每条分支指令的执行历史结果移入历史分支寄存器(Branch History Register,BHR),通过历史执行的情况对其进行预测(Predict) 设计中采用了多个参数化的缓冲模块来处理流水线中的各阶段的数据的缓冲问题。可设置每一级缓存的接口数量和大小,面向不同的设计选择性能与面积的折中。同时对(MUL/DIV Unit,MDU)模块采用级并联复用长指令提交缓存的方式,进行多级派遣。可提供多个MDU单元同时运算,减少端口的复杂度,降低流水线阻塞的概率,而面积开销可以依据需求的MDU模块以及特定的程序优化,并不会很大。 本设计将RISC-V指令分为分支跳转、ALU指令、系统指令、长周期指令5大指令,利用对应的控制与缓存模块进行缓存处理。在取指阶段可适应CPU外部存储位宽进行指令缓存,同时对缓存的指令调用预译码模块和分支预测模块对指令进行预测合并缓存。在派遣阶段将方法将指令划分为ALU指令、特殊指令(分支跳转、环境调用、非法指令等)和长指令进行相关性检测后进行分派处理,送入不同的执行模块。在执行阶段,长、短两类指令分别在不同级流水线内处理。普通的ALU指令结果,提交给寄存器缓存(Regfile Buffer, RB)处理。存储指令和乘除法等指令,提交给二级长指令派遣缓存(Dispatch Long Instruction Buffer,DLIB)进行再派遣处理。对于DLIB,采用分离派遣的方式与乘除法进行数据交换,属于两类指令混合的多级派遣机制,以提高并行性。 2.2 超标量实现 RISC-V指令集相较于ARM和MIPS指令集更为精简,可以大大简化硬件架构的设计。 为确保每一级指令能够源源不断送入后级,将每一级的流水线寄存器替换为对应的缓存,如取指译码阶段为指令缓存(IB),译码执行阶段为派遣缓存(DB),执行和访存阶段为长指令派遣缓存(DLIB),写回阶段为寄存器缓存(RB)。 在取指阶段,根据RAM或Cache总线位宽,进行配置。在缓冲器的剩余空间大于读数据的位宽时,会自动发起读指令的操作,以求填满缓存。缓冲器的输出为已成型的指令。由于本设计支持RISC-V

文档评论(0)

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

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

1亿VIP精品文档

相关文档