[发明专利]一种利用剩余资源分配寄存器的方法无效
申请号: | 200810030756.5 | 申请日: | 2008-03-06 |
公开(公告)号: | CN101246434A | 公开(公告)日: | 2008-08-20 |
发明(设计)人: | 管茂林;文梅;伍楠;张春元;任巨;何义;荀长庆;杨乾明;吴伟 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F9/46 |
代理公司: | 国防科技大学专利服务中心 | 代理人: | 郭敏 |
地址: | 410073湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种利用剩余资源分配寄存器的方法,要解决的技术问题是在处理器寄存器分配过程中减小寄存器文件压力过载,减少溢出访存。技术方案是在寄存器分配失败后,首先构建剩余网络,然后选择平移变量,再对选定的平移变量选择合适的平移路径,并在平移路径中插入copy操作,然后重新进行寄存器分配,如果成功则结束,否则重新进行新的负载平移,直到寄存器分配成功为止。采用本发明可减轻分布式寄存器文件压力,大幅避免单个寄存器文件的溢出,有效避免寄存器分配失败的问题,且本发明不会带来性能上的开销,是无损的。 | ||
搜索关键词: | 一种 利用 剩余 资源 分配 寄存器 方法 | ||
【主权项】:
1.一种利用剩余资源分配寄存器的方法,其特征在于包括以下步骤:第一步,构建剩余网络,方法是:在所有的互连总线、寄存器文件、功能单元这样的处理器资源都已经分配完毕后,根据编译器自动生成的对处理器资源的分配表,生成对应的VLIW的调度时空图,图中包含所有的指令分配和资源分配的时空关系,将图中已使用的资源去掉,得到资源分配的剩余网络,具体方法是:每个时钟周期,若某个功能单元已被某个操作占用,将该功能单元从时空图中删除;若某个寄存器文件已满或者写端口已被占用,将该寄存器文件及其写端口从时空图中删除;若某条总线已被用来传输数据,将该总线从时空图中删除,则剩下的时空图就是剩余网络;第二步,选择平移变量,方法是:令变量的平移权值P=C1×最近前使用距离+C2×最近后使用距离,其中C1和C2是启发式参数;最近前使用距离是指在溢出时刻Toverflow之前,变量最后一次被使用的时刻与溢出时刻的距离;最近后使用距离是指在溢出时刻Toverflow之后,变量第一次被使用的时刻与溢出时刻的距离;选择平移变量的方法是依次选取平移权值最大的变量,若最大平移权值的变量没有找到平移路径,则选取平移权值第二大的变量,依此类推;第三步,选择正确的平移路径,方法是:假定所选择的变量生命周期为[Tproduce,Tlastuse],Tproduce是变量生命周期起点,Tlastuse是变量生命周期结束点;平移路径的物理通路由以下元素来描述:移出时刻,移出功能单元,移出端口,移出互连开关通路,移出目的寄存器文件,移回时刻,移回功能单元,移回互连开关通路,移回端口;选择平移路径的过程就是在剩余网络中寻找和选择移出时刻、移出端口、移出功能单元、移出互连开关、移出目的寄存器文件、移回时刻、移回功能单元、移回互连开关、移回端口,构成一条完整的变量平移回路,包括以下步骤:a.选择移出时刻:移出时刻选择[Tproduce,Toverflow]中的任意时刻,越靠前对目的寄存器文件影响越小;b.选择移出功能单元、移出端口:在移出时刻,将变量v送到互连开关的功能单元就是移出功能单元,移出端口是指变量移出需要占用移出功能单元的输出端口;当移出时刻某个功能单元的输出端口的输出变量是选定的平移变量v时,选择该功能单元及其输出端口作为移出功能单元、移出端口;有两种情况移出功能单元、移出端口是可用的,一是功能单元是源寄存器文件对应的功能单元,且移出时刻该功能单元的输出端口是空闲的,这时在该功能单元插入一条v=copy(v)操作,使得其输出端口的输出变量为v;二是在移出时刻恰好有某个功能单元的输出端口输出v,这时不用插入任何操作;c.确定移出互连开关通路:移出互连开关通路是指移出功能单元同目的寄存器文件间的开关总线通路,采用编译器原有的通信调度算法即可确定移出互连开关通路;d.选择移出目的寄存器文件:移出目的寄存器文件是指平移变量v移出源寄存器文件后用来暂时存放变量v的寄存器文件,适合的目的寄存器文件应满足两个条件:空闲寄存器和空闲的写入端口;寄存器文件的剩余空间和写入端口通过查寻剩余网络获知,可能有多个满足条件的移出目的寄存器文件,按照如下规则构成优先选择队列:选择在移出时刻写入端口空闲且有剩余可用空间的寄存器文件,按照其可用的剩余空间多少排队;e.选择移回时刻:移回时刻是指将平移变量向源寄存器文件移回的指令周期Tback,Tback>Toverflow;移回时刻选择[Toverflow+1,Tuse]中的任意时刻,Tuse为平移变量在溢出时刻之后第一次使用的时刻;f.选择移回功能单元、移回端口:移回功能单元、移回端口是指在移回时刻将平移变量从移出目的寄存器文件送到互联开关的功能单元及其端口,选择与移出目的寄存器文件的读端口直接相连的功能单元及其输出端口为移回功能单元、移回端口;g.确定移回互连开关通路:移回互连开关通路是指移回功能单元同源寄存器文件间的开关总线通路,采用编译器原有的通信调度算法即可确定移回互连开关通路;第四步,在平移路径中插入copy操作,并指定copy操作的输入输出,具体方法是:由编译器在移出功能单元的操作序列中插入一条copy操作,变量产生时不存到需要使用的寄存器文件中,由copy操作直接从变量产生的时刻获取数据,将变量保存在其它寄存器文件中,在变量需要使用之前与溢出时刻之后将其移回需要使用的源寄存器文件;变量在源寄存器文件中的生命周期变为[Tback,Tlastuse],Tback是指将平移变量向源寄存器文件移回的指令周期;若在该变量的产生时刻,移出目的寄存器文件的输入端口不可用,则在溢出时刻与产生时刻之间插入第二条copy操作,由源寄存器文件所对应的功能单元完成,这条copy操作从变量产生的位置取得数据,变量同样存放在原来需要使用的寄存器文件中;第一条copy操作从第二条copy操作的输出获取数据;设第二条copy操作的输入时刻为Tincopy2,此时将变量在源寄存器文件中的生命周期分割为两段,[Tproduce,Tincopy2]和[Tback,Tlastuse];第五步,对均衡后的寄存器文件重新采用染色图寄存器分配方法进行分配,如果仍然有分配失败,则返回第一步,重新进行新的负载平移,直到所有的寄存器分配成功或者无法平移为止。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200810030756.5/,转载请声明来源钻瓜专利网。