发明名称 考虑硬件预配置因素的动态软硬件划分方法
摘要 本发明提供了一种考虑硬件预配置因素的动态软硬件划分方法,其特征在于,在程序运行过程中,进行动态的软硬件划分,在可重构硬件资源上进行一个或多个函数的配置,对待划分函数维护一个待划分函数列表list(f1,…,fm),其中fk为定义硬件加速比,k为待划分的一个函数;k=1,…,m,m为待划分函数个数,基于硬件加速比对函数配置,并且考虑到硬件预配置因素。本发明基于硬件加速比对函数进行动态软硬件配置,充分利用了系统的硬件资源,从而显著提高整个系统的任务处理效率。
申请公布号 CN101763288A 申请公布日期 2010.06.30
申请号 CN201010022085.5 申请日期 2010.01.19
申请人 湖南大学 发明人 李仁发;陈宇;徐成;吴强;刘彦;朱海;袁虎;钟俊;刘滔;邝继顺;李蕊;李肯立;罗娟;赵欢;杨科华;任小西;杨书凡;彭日光;李春江;黄瑜臣;张维;李浪
分类号 G06F9/50(2006.01)I 主分类号 G06F9/50(2006.01)I
代理机构 长沙市融智专利事务所 43114 代理人 颜勇
主权项 1.一种考虑硬件预配置因素的动态软硬件划分方法,其特征在于,在程序运行过程中,进行动态的软硬件划分,在可重构硬件资源上进行一个或多个函数的配置,对待划分函数维护一个待划分函数列表list(f<sub>1</sub>,…,f<sub>m</sub>),其中f<sub>k</sub>为硬件加速比,k为待划分的一个函数;k=1,…,m,m为待划分函数个数,硬件加速比定义为:<maths num="0001"><![CDATA[<math><mrow><mi>f</mi><mo>=</mo><mrow><mo>(</mo><mfrac><mrow><msub><mi>C</mi><mi>k</mi></msub><mo>*</mo><msubsup><mi>Time</mi><mi>sw</mi><mi>k</mi></msubsup></mrow><mrow><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msubsup><mi>X</mi><mi>now</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>*</mo><msubsup><mi>T</mi><mi>rf</mi><mi>k</mi></msubsup><mo>+</mo><msub><mi>C</mi><mi>k</mi></msub><mo>*</mo><mrow><mo>(</mo><msubsup><mi>Time</mi><mi>hw</mi><mi>k</mi></msubsup><mo>+</mo><msub><mi>Comm</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow><mi>k</mi><mo>&Element;</mo><mi>F</mi><mo>,</mo></mrow></math>]]></maths>F对应待划分函数的集合;C<sub>k</sub>为函数k在程序运行过程中被调用的次数,Time<sub>sw</sub><sup>k</sup>为函数k的软件执行时间;<img file="F2010100220855C00012.GIF" wi="266" he="54" />为0时表示函数k当前划分为硬件,反之表示函数k当前为软件;T<sub>rf</sub><sup>k</sup>对应函数k的硬件实现函数的配置时间;Time<sub>hw</sub><sup>k</sup>为函数k的硬件执行时间;Comm<sub>k</sub>为函数k的硬件实现函数的软硬件通信代价,为硬件与软件的参数传递时间;具体划分步骤如下:步骤1:从列表list(f<sub>1</sub>,…,f<sub>m</sub>)中选出最大值f<sub>i</sub>;步骤2:如果f<sub>i</sub>已经被划分为硬件,则从列表中删除f<sub>i</sub>,更新列表,返回步骤1,否则,进入下一步;步骤3:检测当前的可重构资源是否足够,是则将函数i划分为硬件,并配置到可重构资源上,从列表中删除f<sub>i</sub>,更新列表,返回步骤1;否则,进入下一步;步骤4:f<sub>i</sub>与f<sub>j</sub>比较,f<sub>j</sub>为函数j的硬件加速比,函数j为已经配置在可重构资源上的函数中的一个函数,且在所有的已经配置在可重构资源上的函数中,函数j所对应的加速比最小;如果f<sub>i</sub>大于f<sub>j</sub>,则将函数j划分为软件,从可重构资源中删除函数j,返回步骤3;如果fi小于fj,则进入步骤4.1;步骤4.1:检测list是否为空,不空,则保存本次划分结果,结束;如果是空,则计算关系矩阵C<sub>st</sub>,选出该关系矩阵C<sub>st</sub>中最大值元素c<sub>st</sub>,将c<sub>st</sub>对应的函数t加入到待划分函数列表list(f<sub>1</sub>,…,f<sub>m</sub>)中更新待划分函数列表list(f<sub>1</sub>,…,f<sub>m</sub>),进入步骤4.2;所述的C<sub>st</sub>记录函数调用次序信息,关系矩阵C<sub>st</sub>为m*N个元素,N为m个待划分的函数可能调用的所有函数的个数;s元素表示当前划分的所有函数,元素c<sub>ij</sub>表示函数i被调用后立刻就调用了函数j的次数。步骤4.2:判断硬件资源对应函数t是否足够,是则将函数t配置到硬件中,在列表list(f<sub>1</sub>,…,f<sub>m</sub>)中删除函数t,否则,返回步骤4.1。
地址 410082 湖南省长沙市岳麓区岳麓山麓山南路2号