e203_itcm_ctrl 模块里面访问优先级顺序
qian-gu opened this issue · comments
从代码和注释看,LSU和EXT的优先级要高于IFU,应该IFU的优先级最高才比较合理?
个人理解:
LSU要访问ITCM说明有load/store指令要访问ITCM, IFU要访问ITCM说明要从ITCM中取指令,而load/store指令的执行顺序一定是比IFU要取的指令在前的,所以LSU/EXT优先级高于IFU
LSU 访问 ITCM 的目的是为了上电初始化时向其中写程序和数据。在程序初始化完成之后,LSU 不应该再访问 ITCM,所以为了保证能即使读出指令来执行,IFU 的优先级应该最高。
虽然这里写错了优先级,实际中也不会有问题,因为程序运行的时候 LSU 不会和 IFU 抢带宽。
@guqian110 如果使用了Self-Modifying-Code则需load/store指令也要访问ITCM
@hyf6661669 学习了,thx~
从代码和注释看,LSU和EXT的优先级要高于IFU,应该IFU的优先级最高才比较合理?
对单一的存储器接口来说,取数据的优先级要高于取指令,否则前一条指令的取数步骤未做完就取下一条指令再取数会出现“hazard“。
从代码和注释看,LSU和EXT的优先级要高于IFU,应该IFU的优先级最高才比较合理?
对单一的存储器接口来说,取数据的优先级要高于取指令,否则前一条指令的取数步骤未做完就取下一条指令再取数会出现“hazard“。
如果都是读操作,就不会有 hazard,而且指令和数据是分开存放的,相互之间没有干扰。虽然数据也可以放到 ITCM 中,但是一般不会这么做,因为会影响到性能