[发明专利]基于最大完全子图的嵌入式系统寄存器分配方法有效
| 申请号: | 201110268061.2 | 申请日: | 2011-09-09 |
| 公开(公告)号: | CN102331919A | 公开(公告)日: | 2012-01-25 |
| 发明(设计)人: | 吴建设;焦李成;畅志艳;陈为胜;钟桦;王爽;侯彪;吴家骥;公茂果 | 申请(专利权)人: | 西安电子科技大学 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/45;G06N3/12 |
| 代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华;朱红星 |
| 地址: | 710071 陕*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 最大 完全 嵌入式 系统 寄存器 分配 方法 | ||
1.一种基于最大完全子图操作的嵌入式系统寄存器分配方法,包括:
(1)初始化种群步骤
1a)绘制程序编译过程中产生的中间变量的相互干扰图H,在干扰图H中,每一个结点代表一个中间变量,每一条边所连接的两个结点相互干扰,并且给出每个中间变量的溢出代价,溢出代价即嵌入式系统从存储器中存取中间变量所花费的时间;
1b)取出相互干扰图H的补图G={N,S,V,E},其中,N代表中间变量总数,S代表寄存器数量,每个寄存器用Ri,i=1…S表示,V代表所有中间变量的结点集,结点分别标记为0,1,2,...,N-1,E代表所有的无向边的集合,在补图G中,每一条边所连接的两个结点放在同一个寄存器中,使得溢出代价和溢出变量个数尽可能的小;
1c)将中间变量的结点集V中的N个结点随机的分成两类,分别用A和B来表示;
1d)根据补图G绘制集合A中所有结点之间的邻接关系图GA=(VA,EA),其中VA=A,对于VA中任意的两个结点vi,vj,当vi和vj能放在同一个寄存器中时,将vi与vj相连;
1e)寻找邻接图GA的一个最大完全子图,将该最大完全子图中包含的结点vk放入下标最小的空寄存器中;
1f)从GA中删除步骤1e)已经放入寄存器中的结点vk,得到GA更新后的子图GA′;
1g)对子图GA′重复步骤1e)-1f)直到S个寄存器均被使用为止,然后将子图GA′中剩余结点和集合B中的结点按照冲突最小原则放入到寄存器中;
1h)给定种群规模为M,M设定为任意偶数,将步骤1c)-1g)重复执行M次产生M个个体,分别用Indi,i=1...M表示每个个体,完成种群的初始化;
(2)使用交叉算子产生一个新的子代个体步骤
2a)使用基于溢出代价的最大完全子图交叉算子SC-MCX对种群中的个体Indp和Indp+1进行交叉产生一个新的子代个体,用offspringp表示,其中p=1,3,5,...且p<M;
2b)根据补图G绘制两个父代个体
2c)找出每个邻接关系图的一个最大完全子图,分别用和表示,从中选出溢出代价最大的最大完全子图其中t∈{p,p+1},l∈{1,...,S},将包含的结点率先放入子代个体
2d)从所有结点中选取与中结点不相冲突的结点放入寄存器中,完成对子代个体offspringp第一个寄存器的构造,并将已经放入寄存器中的结点从两个父代所包含的所有寄存器中删除;
2e)重复步骤2b)-2c)依次构造子代offspringp中剩余的寄存器;
2f)将父代个体中剩余的结点,按照冲突最小原则依次放入子代相应的寄存器中,完成对父代个体Indp和Indp+1的交叉,产生出子代个体offspringp。
(3)用局部搜索算子LSP优化子代个体步骤
3a)对步骤2f)中产生的每一个子代个体offspringp,采用局部搜索算子LSP进行优化,用优化后的个体替换掉种群中个体Indp和Indp+1适应度函数值最大的一个,继续参与种群进化;
3b)设定迭代次数为K,对步骤2a)-3a)重复执行K次,就能将所有的结点高效的分配到寄存器中,达到溢出代价和溢出变量个数最小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110268061.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:IPTV机顶盒维修升级装置
- 下一篇:一种具有智能蓝牙耳机的移动终端系统





