3.1存储结构及CACHE性能优化
(1)存储结构:DM642的存储器系统由片内内存L1、L2和片外外存两部分组成,L1,L2和片外SDRAM构成了整个存储器系统的三级层次结构,如图2所示。其中,片内内存采用两级缓存结构,第一级由L1P和L1D组成,L1距离DSP核最近,数据访问速度最快,只需一个时钟周期,只能作为不能寻址的Cache使用。第二级L2是一个统一的程序/数据空间,可以整体作为SRAM映射到存储空间,也可以整体作为第二级Cache,或是二者按比例进行组合。第三级是片外外存,一般由SDRAM构成。L1Pcache大小为16KB,直接映射,每行大小32字节;L1Dcache大小16KB,2路映射,每行大小64字节。L2是L1和外存储器的中间层,容量较大有256KB,访问速度较慢,根据L2配置为Cache或SRAM的不同选择,访问速度需8个或6个时钟周期。片外存储器容量很大但访问速度很慢,一般都会远远大于8个时钟周期。

图2三级存储系统
点击此处查看全部新闻图片
(2)CACHE性能优化:要优化Cache的使用性能需了解Cache的具体结构,如Cache容量、行大小、组相联数等。下面总结了一些优化Cache性能的方法:合理配置L2;合理布置程序代码段和数据段的内存布局,为防止有效代码、数据在缓冲存储器中相互排挤,应尽量把顺序执行的代码、同时使用的数据放在相互邻接的物理空间当中;若函数模块和数据包含在一个循环中,循环体的大小应和Cache的容量相吻合,以便能把整个循环体全部放入Cache中。为了提高Cache中数据的重复利用率,把数据操作构成一条数据处理链,链中的下一级操作就能直接使用上一级操作留在Cache中的数据。此外还可以根据Cache行数据宽度信息调节数据在物理内存中的存放位置,从而利用数据预取增加Cache的命中率;挖掘L1D的不命中流水处理能力,加速待使用数据的读入速度;通过合理的数据填充策略,避免同一时钟周期对相同存储体的读写操作将造成存储器的存取冲突。