摘要:在主流通用处理系统中,超标量机制及高速缓存使得自修改代码(SMC)成为一种需要特殊处理的情况,为了继续支持使用自修改代码的程序并兼容原有程序,在处理系统设计中需要对SMC的情况进行支持。本文分析并对比了多种程序的SMC行为及解决方案,设计了一种利用FIFO队列在流水线外检测SMC的方案,避免了对主流水线的干扰;并通过复用访存通路来检测SMC导致的缓存一致性问题,由于优化后的设计不需要额外的端口,避免了在数据缓存使用多端口设计,使得整体面积下降了1.16%。同零开销的理想方案相比,该方案对性能的影响小于0.1%。
关键词:自修改代码 超标量流水线 高速缓存 乱序执行
单位:中国科学院计算技术研究所前瞻研究实验室 北京100190
注:因版权方要求,不能公开全文,如需全文,请咨询杂志社