RISC-V处理器:1.取指令 RTL 代码分析

RISC-V处理器:1.取指令 RTL 代码分析

1. 取指特点

  1. 指令在存储空间中所处的地址,称为它的指令PC(Program Counter)
  2. 取指是指处理器将指令,按照其指令PC,从存储器中读取出来的过程
  3. 处理器从存储器中取出指令的目标是:快速连续不断
  4. 指令分为普通指令非分支跳转指令分支跳转指令
  5. 对于非分支跳转指令,即便是对于地址不对齐的32位指令,也要求能够连续不断的从一个周期内读取出来
  6. 对于分支跳转指令,要能够迅速判断是否需要跳转。若果需要跳转,则从新的指令PC地址处快速取出指令。

2. 快速取指

首先应该保证存储器的读延迟越小越好:

  1. 片外DDR或者Flash存储器可能需要几十个周期的延时
  2. 片上的SRAM也可能需要几个周期的延时

我们采取 ITCM 和 I-Cache 的方法:

  1. ITCM(Instruction Tightly Coupled Memory)
    指令紧耦合存储器,指配置一小段容量很小(即使KB)的存储器(通常为SRAM),用于存储指令,且在物理上,举例处理器核很近,并且专属于处理器核,因此能够取得很小的访问延迟。这种方式只能用来存放容量大小
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
f32c是可重定向的,标量的,流水线的32位处理器核,其可以执行RISC-V或MIPS指令集的子集。它在参数化VHDL中实现,其允许具有不同面积/速度权衡的合成,并且包括分支预测器,异常处理控制块和可选的直接映射高速缓存。 RTL代码还包括诸如多端口SDRAM和SRAM控制器,具有复合(PAL),HDMI,DVI和VGA输出的视频帧缓冲器,具有用于精灵和窗口的简单2D加速,浮点向量处理器,SPI,UART,PCM音频,GPIO,PWM输出和定时器,以及为各种制造商的众多流行FPGA开发板定制的胶合逻辑。在合成整数基准中,内核以存储在片上块RAM中的代码和数据产生3.06 CoreMark / MHz和1.63 DMIPS / MHz(1.81 DMIPS / MHz,功能内联)。当配置为16 KB指令和4 KB数据高速缓存,并且代码和数据存储在外部SDRAM中时,内核产生2.78 CoreMark / MHz和1.31 DMIPS / MHz。包括定时器和UART的性能优化的f32c SoC仅占用1048个6输入LUT,同时仍然能够在最紧凑配置(仅消耗697(649个逻辑加48个存储器)LUT)下合成时执行gcc生成的代码。可配置选项包括:C_arch RISC-V或MIPS ISAC_big_endian总线端C_mult_enable合成乘法单位C_branch_likely支持分支延迟时隙取消C_sign_extend支持符号扩展指令C_movn_movz支持条件移动指令C_ll_sc支持原子读 - 修改 - 写构造C_branch_prediction合成分支预测器C_bp_global_depth全局分支历史跟踪大小C_result_forwarding合成结果旁路C_load_aligner合成加载对齐器C_full_shifter pipelined而不是迭代移位器C_icache_size指令高速缓存大小(0到64 KB)C_dcache_size数据高速缓存大小(0到64 KB)C_debug综合单步调试模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值