[发明专利]面向嵌入式片上异构存储器的细粒度数据分配方法无效
申请号: | 201310042340.6 | 申请日: | 2013-02-04 |
公开(公告)号: | CN103150265A | 公开(公告)日: | 2013-06-12 |
发明(设计)人: | 鞠雷;贾智平;王冠华;李阳 | 申请(专利权)人: | 山东大学 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F9/50 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 张勇 |
地址: | 250101 *** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 嵌入式 片上异构 存储器 细粒度 数据 分配 方法 | ||
1.一种面向嵌入式片上异构存储器的细粒度数据分配方法,其特征是,它的步骤为:
(1)对程序数据段进行预分析,获取数据的在内存中的首地址和数据类型和数据长度,将程序的数据段分割成细粒度的内存数据块,使其成为基本块,每块的大小取决于Cache每行的长度;
(2)对执行期间的内存数据块访问序列进行跟踪,获取内存数据块的访问次数和Cache未命中信息,在Cache未命中时统计和记录内存数据块的时空冲突集;
(3)使用线性规划算法求得数据分割和选取的最佳方案,进行数据分割的最小单位是内存数据块,其大小和所使用Cache的行存储单元的大小相同;
(4)生成数据布局分散加载文件,对程序数据段的重新映射和布局,在程序中插入地址转换宏,重新编译代码。
2.如权利要求1所述的面向嵌入式片上异构存储器的细粒度数据分配方法,其特征是,所述步骤(2)中,在给定输入的情况下获取到程序访问数据的序列,只统计Cache未命中到上次访问之间不重复的内存块序列,生成时空冲突集合TCS,TCS用于下一步中通过0-1整数线性规划算法精确计算由于内存数据块被选取到SPM中后造成miss减少数量。
3.如权利要求1所述的面向嵌入式片上异构存储器的细粒度数据分配方法,其特征是,所述步骤(3)中,每一个内存数据块miss减少分两种情况:1.因为本身被选取到SPM中,miss全部消;2.当自身没被选取到SPM中时,因为映射到同一组的其他内存数据块被选取到SPM,造成自身一些TCS中的块数小于Cache的路数;对一个内存数据块Mi是否被选择放入SPM中用xi表示,当xi为1的时候,表示Mi被选择放入SPM中,当xi为0时表示Mi不被选择放入SPM中;通过下面公式来求取某个数据选取方案优化后的miss次数:
mri=xi·miss(Mi)+cri
目标是使下面访存延迟计算函数即目标函数最小化,目标函数为:
。
4.如权利要求1所述的面向嵌入式片上异构存储器的细粒度数据分配方法,其特征是,所述步骤(4)中,通过步骤(3)获取到优化结果,通过这个优化结果生成程序优化脚本即分散加载文件,在脚本中为每一个数据在装载和执行时指定不同的存储区域地址,把上步选取的数据块映射到SPM中,其余数据块仍然布置在主存中,在主存中的数据块的相对位置不会因为SPM的映射而改变;在新代码中需要在每次数据访问前插入地址转换宏,地址转换宏用switch case语句,目的是通过数组索引找到数据的地址,switch case语句有固定的访问延迟时间,有利于保证嵌入式实时系统最差执行时间的可预测性并且保证地址转换的开销最小;
编译器会识别生成的分散加载文件,如果代码中被顺序访问的数组被分割,在编译时,编译器自动在需要地址转换的地方插入地址转换宏对代码进行改写。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310042340.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:体育减震地板
- 下一篇:带除铁器的电厂用输煤转运机构