该RISC-V版本中TCM与Icache的连接及TCM配置属性问询
关于ultraembedded RISC-V核心中TCM与Icache的疑问解答
1. 为何TCM与Icache整合在同一模块
- 二者同属指令侧存储单元,整合后可以共享前端取指的地址、控制接口,减少冗余逻辑,降低芯片面积开销。
- 整合能让CPU前端的取指路径更紧凑,缩短时序延迟,方便硬件时序收敛,尤其适配嵌入式场景对低延迟的需求。
- 模块内部可共享地址译码与仲裁逻辑,统一处理地址判断,快速区分TCM映射空间和外部缓存空间,减少跨模块的信号交互成本。
2. TCM与Icache的连接方式
结合框图的结构,二者的连接逻辑如下:
- CPU取指单元向该整合模块发送地址与取指请求;
- 模块内部先通过地址译码判断目标地址是否属于TCM的映射区间:
- 若属于,直接从低延迟的TCM SRAM中读取指令,返回给CPU取指单元;
- 若不属于,则切换到Icache路径:Icache命中时直接返回指令,未命中则发起外部总线请求,从外部内存获取指令并填充Icache后再返回。
- 整体逻辑中TCM的响应优先级高于Icache,确保实时性要求高的代码(如中断服务程序)能以最低延迟获取指令。
3. TCM是否为可选内置模块
该开源RISC-V核心的TCM是可选配置模块:
- 这类嵌入式RISC-V核心通常会通过Verilog宏定义或配置脚本提供开关选项,用户可根据场景需求选择是否启用TCM;
- 比如在实时性要求极高的场景下可单独启用TCM(关闭Icache),通用场景下可同时启用TCM+Icache,也可以仅使用Icache。
内容的提问来源于stack exchange,提问作者Neom5
相关产品推荐
相关产品推荐

