[发明专利]一种C编译器利用海明距离优化SRAM页选择的方法及系统有效
申请号: | 201810762687.0 | 申请日: | 2018-07-11 |
公开(公告)号: | CN109062575B | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 陈元丰 | 申请(专利权)人: | 合肥市芯海电子科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 深圳国新南方知识产权代理有限公司 44374 | 代理人: | 周雷 |
地址: | 230000 安徽省合肥市中国(安徽)自由贸易试*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 编译器 利用 距离 优化 sram 选择 方法 系统 | ||
1.一种C编译器利用海明距离优化SRAM页选择的方法,包括如下步骤:
S1,依次遍历函数的所有基本块,把任一基本块中的指令保存到顺序容器中;
S2,根据SRAM中当前Bank值和访问Bank值,计算出海明距离值,访问Bank值是指将要访问SRAM变量所在的Bank值;
S3,当存在访问SRAM变量时,根据海明距离值来决定是否要插入页选择指令,以及插入何种页选择指令。
2.根据权利要求1所述的C编译器利用海明距离优化SRAM页选择的方法,其特征在于,所述S1步骤中具体包括:
S11、初始化获取基本块指令;
S12、获取函数的一个基本块,获取失败则结束;
S13、从基本块中取出一条指令,保存该指令到特定的容器中,如取出失败则结束;
S14、从基本块中取出下一条指令,保存该指令到特定的容器中,如取出失败则获取函数的下一个基本块。
3.根据权利要求1所述的C编译器利用海明距离优化SRAM页选择的方法,其特征在于,所述S2步骤中还包括:当计算出的海明距离值为1时,还要计算出这两个Bank值之间的不同处于哪个bit位置上。
4.根据权利要求3所述的C编译器利用海明距离优化SRAM页选择的方法,其特征在于,所述S2步骤中具体包括:
S21、初始化获取海明距离值;
S22、设置当前Bank值为Src,下一条访问SRAM指令的Bank值的值为Dest;
S23、获取Src的第N位的值,获取Dest第N位的值,N=0‐8为整数;
S24、判定上述第N位的两个值是否不同,是则海明距离值加1,否则获取Src的第N+1位的值与获取Dest第N+1位的值;
S25、保存位值不同的位置值。
5.根据权利要求1所述的C编译器利用海明距离优化SRAM页选择的方法,其特征在于,所述S3步骤中具体包括:
S31、初始化SRAM页选择指令;
S32、设置当前Bank值为0;
S33、获取基本块中的第一条指令,获取失败则结束;
S34、获取指令类型,判定是否为访问SRAM指令,否则获取基本块的下一条指令;
S35、获取该指令访问SRAM变量所在的访问Bank值;
S36、根据当前Bank值和访问Bank值,计算出海明距离值;
S37、当海明距离值为0时,设置当前当前Bank值为访问Bank值;当海明距离值为1时,获取当前Bank值和访问Bank值不同的位置的位值并进行替换,然后设置当前Bank值为访问Bank值;当海明距离值大于1时,则直接插入banksel指令;
S38、获取基本块的下一条指令。
6.根据权利要求5所述的C编译器利用海明距离优化SRAM页选择的方法,其特征在于,所述S36步骤中的获取当前Bank值和访问Bank值不同的位置的位值并进行替换具体是指:
若当前Bank值变为访问Bank值,对应的位置的值是从0变为1,则插入bsf指令,反之若是从1变为0则插入bcf指令。
7.一种C编译器利用海明距离优化SRAM页选择的系统,包括有:
获取基本块指令集模块,执行依次遍历函数的所有基本块,把任一基本块中的指令保存到顺序容器中的指令;
获取海明距离值模块,执行根据SRAM中当前Bank值和访问Bank值,计算出海明距离值的指令,访问Bank值是指将要访问SRAM变量所在的Bank值;
SRAM页选择优化执行模块,执行当存在访问SRAM变量时,根据海明距离值来决定是否要插入页选择指令,以及插入何种页选择指令的指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥市芯海电子科技有限公司,未经合肥市芯海电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810762687.0/1.html,转载请声明来源钻瓜专利网。