精品论文|三级流水线RISC-V处理器设计与验证
摘要: RISC-V作为一种开源精简指令集架构,自发布以来便得到了大量关注。设计了一种三级流水线的RISC-V处理器。其中,采用静态预测BTFN技术处理流水线执行中的分支情况,采用前向旁路传播技术解决数据冒险问题,同时,采用资源共享的办法,复用寄存器堆、加法器、选择器等模块,使设计面积得到一定的优化。在VCS和Verdi等EDA工具中,使用RV32I整数运算指令集对处理器进行了仿真测试,结果表明,所设计的处理器功能正确,达到预定目标。
DOI:10.16157/j.issn.0258-7998.200028
中文引用格式: 折如义,李炳辉,姜佩贺. 三级流水线RISC-V处理器设计与验证[J].电子技术应用,2020,46(5):44-49.
0 引言
集成电路产业是国家战略性产业,是推动信息产业发展的源泉和动力,而我国集成电路产业发展严重滞后[1]。在各行各业需求量与日俱增的处理器领域,ARM处理器在嵌入式领域占主导地,Intel x86架构处理器在桌面和服务器领域占据着垄断地位[2]。RISC-V指令集是加州大学伯克利分校于2014年设计并发布的一款开源指令集架构[3],具有免费开放、短小精悍、性能优越三大特征,可以被任何学术机构或商业组织自由使用,能够满足从微控制器到超级计算机等各种应用的需求[4]。RISC-V的出现可能改变由ARM和Intel x86主导处理器架构的竞争格局[5]。
流水线是处理器设计最重要的环节之一,严重影响着处理器的运算速度和运算模块的张度。早期的经典流水线是五级流水[6],分别为取指、译码、执行、访存和写回,流水线的长短不仅仅影响吞吐率而且影响面积开销。现代的高性能处理器相比最早期的处理器往往具有更深级别的流水线。流水线的级数越多,流水线被切得越细,每一级流水线内容纳的硬件逻辑越小,进而吞吐率性能更佳,这是流水线深度加深的正面意义[7]。
但由于级数加深,会消耗更多的寄存器,带来更多的面积开销,同时对于分支预测失败只能采取冲刷流水线的方法解决,浪费了处理器性能。因此,流水线的深度要根据不同的应用场景选择,本设计采用三级流水线结构,以在兼顾处理器功能的前提下实现低功耗的设计目标。
基于以上背景,本研究在分析了RISC-V指令系统的基础上,使用Verilog语言分别设计了RISC-V处理器的取值单元、译码单元和执行单元,最终实现了一款基于RISC-V指令集的32位三级流水处理器,并使用RV32I整数运算指令集对处理器进行了仿真验证,达到预定目标。
