发明名称 面向嵌入式片上异构存储器的细粒度数据分配方法
摘要 本发明是一种面向嵌入式片上异构存储器的细粒度数据分配方法,通过对程序中数据进行细粒度分割、精确选取和数据重新布局来提高便笺式存储器的利用效率。它把程序数据段分割成细粒度的内存数据块,并对执行期间的内存数据块访问序列进行跟踪,获取内存数据块的访问次数和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 山东省济南市高新区舜华路中段