基于AHB总线的RISC-V微处理器设计与实现
发布时间:2020-12-25 10:25
在嵌入式应用中,为了满足小面积低功耗的设计需求,设计了一种支持RISC-V指令集架构的微处理器,系统采用2级流水结构,实现了RV32IMAC指令集。处理器采用AHB总线作为片上互连总线,可方便调用外部IP核进行功能拓展。在VCS环境下验证了该微处理器的逻辑功能,仿真结果表明该微处理器能够正常稳定运行。在面积、功耗和性能等方面与蜂鸟E203处理器以及ARM Cortex-M系列处理器进行了对比,该设计比蜂鸟E203处理器面积小了6%,功耗和性能上与Cortex-M0处理器相当。分析结果表明该处理器较适合在小面积、低功耗的嵌入式应用领域进行开发。
【文章来源】:计算机工程与应用. 2020年20期 北大核心
【文章页数】:7 页
【部分图文】:
科学出版物年增数量比较
在流水线第一阶段,PC取指并访问指令存储器,并将取出指令存入IR寄存器。取指阶段会完成简单的译码过程(mini-decode),此处的译码不需要完整译出指令的所有信息,而只需要译出部分指令信息,包括此指令是属于普通指令还是分支跳转指令以及分支跳转指令的类型和细节。另外,在第一阶段还会对跳转指令进行简单的分支预测(Simple-BPU),跳转指令类型如表1所示,判断是否为跳转指令代码如下:(1)对于带条件的直接跳转指令,使用静态预测(向后跳转预测为需要跳,否则预测为不需要跳),按照指令的定义使用其PC和立即数表示的offset相加得到其跳转目标地址。
执行阶段的一个重要功能是维护并解决流水线冲突。为了能够检测出长指令(包括load指令、store指令以及乘除法等指令)的RAW和WAW相关性,本文加入了一个OITF(Outstanding Instructions Track FIFO)模块,如图3所示,OITF本质上是一个深度为4个表项先入先出的FIFO。在流水线的派遣点,每次派遣一个长指令,则会在OITF中分配一个表项,在这个表项中会存储该长指令的源操作数寄存器索引和结果寄存器索引。在流水线的写回点,每次按顺序写回一个长指令之后,就会将此指令在OITF中的表项去除,即从其FIFO退出完成任务。在流水线写回阶段,为避免WAW的数据相关性发生,如果单周期指令和长指令一起写回,多周期指令写回的优先级更高,因为多周期指令一定在单周期指令之前发射。
【参考文献】:
期刊论文
[1]RV32I控制单元设计与实现[J]. 张迅珍,梁青,李涛. 微电子学与计算机. 2018(03)
本文编号:2937468
【文章来源】:计算机工程与应用. 2020年20期 北大核心
【文章页数】:7 页
【部分图文】:
科学出版物年增数量比较
在流水线第一阶段,PC取指并访问指令存储器,并将取出指令存入IR寄存器。取指阶段会完成简单的译码过程(mini-decode),此处的译码不需要完整译出指令的所有信息,而只需要译出部分指令信息,包括此指令是属于普通指令还是分支跳转指令以及分支跳转指令的类型和细节。另外,在第一阶段还会对跳转指令进行简单的分支预测(Simple-BPU),跳转指令类型如表1所示,判断是否为跳转指令代码如下:(1)对于带条件的直接跳转指令,使用静态预测(向后跳转预测为需要跳,否则预测为不需要跳),按照指令的定义使用其PC和立即数表示的offset相加得到其跳转目标地址。
执行阶段的一个重要功能是维护并解决流水线冲突。为了能够检测出长指令(包括load指令、store指令以及乘除法等指令)的RAW和WAW相关性,本文加入了一个OITF(Outstanding Instructions Track FIFO)模块,如图3所示,OITF本质上是一个深度为4个表项先入先出的FIFO。在流水线的派遣点,每次派遣一个长指令,则会在OITF中分配一个表项,在这个表项中会存储该长指令的源操作数寄存器索引和结果寄存器索引。在流水线的写回点,每次按顺序写回一个长指令之后,就会将此指令在OITF中的表项去除,即从其FIFO退出完成任务。在流水线写回阶段,为避免WAW的数据相关性发生,如果单周期指令和长指令一起写回,多周期指令写回的优先级更高,因为多周期指令一定在单周期指令之前发射。
【参考文献】:
期刊论文
[1]RV32I控制单元设计与实现[J]. 张迅珍,梁青,李涛. 微电子学与计算机. 2018(03)
本文编号:2937468
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2937468.html