[发明专利]一种利用剩余资源分配寄存器的方法无效
申请号: | 200810030756.5 | 申请日: | 2008-03-06 |
公开(公告)号: | CN101246434A | 公开(公告)日: | 2008-08-20 |
发明(设计)人: | 管茂林;文梅;伍楠;张春元;任巨;何义;荀长庆;杨乾明;吴伟 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F9/46 |
代理公司: | 国防科技大学专利服务中心 | 代理人: | 郭敏 |
地址: | 410073湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 剩余 资源 分配 寄存器 方法 | ||
技术领域
本发明涉及高性能处理器中寄存器的分配方法,尤其是采用分布式寄存器文件结构的VLIW处理器中利用剩余资源分配寄存器的方法。
背景技术
指令级并行(Instruction Level Parallelism,ILP)是指为了实现多个操作的并行执行而在处理器和编译器的设计中采用的一系列技术。超长指令字(Very Long Instruction Level,VLIW)技术是一种重要的常用指令并行技术,通常VLIW对应多运算单元的处理器体系结构,相应的处理器芯片包括:高性能的DSP例如TMS320C6x,方兴未艾的流处理器如Imagine,Merrimac,FT64和一些专用处理器Equator’s MAP1000等。其中Imagine包含48个多功能浮点ALU,分成8组每组6个ALU;Merrimac包含80个全功能的浮点ALU,分成16组每组5个ALU,组内的ALU紧密耦合,再加上load/store等功能单元,这对组内寄存器容量和带宽要求极高,传统的集中式寄存器文件不能满足要求,因而这些处理器全部采用分布式寄存器文件结构。
采用分布式寄存器文件结构的处理器体系结构中采用分布式的多个寄存器文件代替原来集中式的单一寄存器文件,且所有的功能单元组成的功能单元阵列通常被划分成多个组,每个组由若干功能单元组成,包括计算型功能单元如加法单元和非计算型功能单元如load/store单元等。每个功能单元与1至3个本地寄存器文件连接,本地寄存器文件的读端口直接与对应功能单元的输入端口连接,每个功能单元只能从其对应的本地寄存器文件中读取操作数。所有寄存器文件的写端口同所有功能单元的输出端口之间通过交叉开关网络连接,数据可以在不同寄存器文件间通信传输。交叉开关网络保证了每个功能单元的输出端口通过一个交叉点开关可以无阻塞地与一个空闲的寄存器文件写端口相连,所有的寄存器文件和功能单元间可以同时传输数据。
采用分布式寄存器文件的处理器大多面向计算密集型应用,这些应用由于计算的密集性高、并行性好,寄存器文件负载严重,从而造成溢出(spill)访存(由于某个功能单元的寄存器文件被填满,数据不得不存入存储器而造成的存储器访问)。而这些处理器性能对存储器访问非常敏感,相对于较长的存储器访问时间而言,寄存器的极低的存取时间使得它成为一类关键的处理器资源。在一些处理器如Imagine中为了优化访存采用了软件管理的多级存储层次,溢出访存甚至被禁止,一旦寄存器分配失败,必须由程序员修改程序,这给程序员带来很大麻烦,同时还会极大地降低程序性能。因此在采用分布式寄存器文件结构的VLIW处理器中如何减轻分布式寄存器文件压力,减少溢出访存是本领域技术人员一直关注的技术难题。
发明内容
本发明要解决的技术问题是在采用分布式寄存器文件结构的处理器中,利用剩余资源分配寄存器,减轻寄存器文件负载,减少溢出访存。
本发明的技术方案是:在VLIW的指令调度、通信调度和寄存器预分配完成后,全局统筹分布式寄存器文件负载,使用“负载平移”技术,利用分布式寄存器文件之间负载分配的不均衡,将某个寄存器文件的溢出数据平移到其它未满的寄存器文件中,当需要时再存回原寄存器文件。
本发明包括以下五个步骤:
第一步,构建剩余网络
在所有的处理器资源(包括互连总线,寄存器文件,功能单元)都已经分配完毕后,根据编译器自动生成的对处理器资源的分配表,生成对应的VLIW的调度时空图,图中包含所有的指令分配和资源分配的时空关系。将图中已使用的资源去掉,得到资源分配的剩余网络。具体方法是:每个时钟周期,若某个功能单元已被某个操作占用,将该功能单元从时空图中删除;若某个寄存器文件已满或者写端口已被占用,将该寄存器文件及其写端口从时空图中删除;若某条总线已被用来传输数据,将该总线从时空图中删除,则剩下的时空图就是剩余网络。剩余网络标示了指令调度和通信调度后所有的空闲资源,包括功能单元、互连开关、本地寄存器文件。
第二步,选择平移变量
为便于说明,令
Tup、Tdown:对于某个溢出的寄存器文件,一般只是某一段时间区域内需要用的寄存器数量超过该寄存器文件所能提供的寄存器总量。这一段时间区域成为溢出区间,其起点和终点分别称为溢出区间的上界、下界。Tup为溢出区间上界,Tdown为溢出区间下界。
Toverflow:溢出区间内的任一时刻称为溢出时刻。
Tproduce:变量生命周期起点。
Tlastuse:变量生命周期结束点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810030756.5/2.html,转载请声明来源钻瓜专利网。