发明名称 |
面向嵌入式片上异构存储器的细粒度数据分配方法 |
摘要 |
本发明是一种面向嵌入式片上异构存储器的细粒度数据分配方法,通过对程序中数据进行细粒度分割、精确选取和数据重新布局来提高便笺式存储器的利用效率。它把程序数据段分割成细粒度的内存数据块,并对执行期间的内存数据块访问序列进行跟踪,获取内存数据块的访问次数和Cache未命中信息,在Cache未命中时统计和记录内存数据块的时空冲突集(TCS,Temporal ConflictSet),再使用线性规划算法求的数据选取的最佳方案,对程序数据段的重新映射和布局,在程序中插入地址转换宏,重新编译代码。通过优化程序数据段的布局减少Cache的冲突,提高SPM的使用效率,最终在保证程序实时性的前提下提高程序的执行效率、减少平均执行时间。 |
申请公布号 |
CN103150265B |
申请公布日期 |
2015.10.21 |
申请号 |
CN201310042340.6 |
申请日期 |
2013.02.04 |
申请人 |
山东大学 |
发明人 |
鞠雷;贾智平;王冠华;李阳 |
分类号 |
G06F12/08(2006.01)I;G06F9/50(2006.01)I |
主分类号 |
G06F12/08(2006.01)I |
代理机构 |
济南圣达知识产权代理有限公司 37221 |
代理人 |
张勇 |
主权项 |
一种面向嵌入式片上异构存储器的细粒度数据分配方法,其特征是,它的步骤为:(1)对程序数据段进行预分析,获取程序数据的在内存中的首地址、数据类型和数据长度,将程序数据段分割成细粒度的内存数据块,使其成为基本块,每块的大小取决于Cache每行的长度;(2)对执行期间的内存数据块访问序列进行跟踪,获取内存数据块的访问次数和Cache未命中信息,在Cache未命中时统计和记录内存数据块的时空冲突集;(3)使用线性规划算法求得数据分割和选取的最佳方案,进行数据分割的最小单位是内存数据块,其大小和所使用Cache的行存储单元的大小相同;所述步骤(3)中,每一个内存数据块miss减少分两种情况:1)因为本身被选取到SPM中,miss全部消除;2)当自身没被选取到SPM中时,因为映射到同一组的其他内存数据块被选取到SPM,造成自身一些TCS中的块数小于Cache的路数;对一个内存数据块是否被选择放入SPM中用x<sub>i</sub>表示,当x<sub>i</sub>为1的时候,表示M<sub>i</sub>被选择放入SPM中,当x<sub>i</sub>为0时表示M<sub>i</sub>不被选择放入SPM中;通过下面公式来求取某个数据选取方案优化后的miss次数:<img file="FDA0000697325110000011.GIF" wi="374" he="198" />Mr<sub>i</sub>=x<sub>i</sub>·miss(M<sub>i</sub>)+cr<sub>i</sub><img file="FDA0000697325110000012.GIF" wi="634" he="200" />目标是使下面访存延迟计算函数即目标函数最小化,目标函数为:<img file="FDA0000697325110000013.GIF" wi="1238" he="389" />(4)生成数据布局分散加载文件,对程序数据段的重新映射和布局,在程序中插入地址转换宏,重新编译代码。 |
地址 |
250101 山东省济南市高新区舜华路中段 |