法律状态公告日
法律状态信息
法律状态
2013-05-08
未缴年费专利权终止 IPC(主分类):G06F9/45 授权公告日:20110914 终止日期:20120316 申请日:20090316
专利权的终止
2011-09-14
授权
授权
2009-10-07
实质审查的生效
实质审查的生效
2009-08-12
公开
公开
技术领域
本发明涉及可重配置器件技术领域和应用程序映射技术,特别是涉及一种基于调用图的可重配置器件上的程序映射方法。
背景技术
20世纪人类的杰出成果之一计算机技术把人类社会带入了信息化时代。伴随着信息化技术的不断深入以及半导体技术的发展,芯片的集成度不断提高,为了提高芯片的应用灵活性,出现了可重配置器件。
可重配置器件是计算机芯片的一种。可重配置器件与一般的芯片不同的是,可重配置器件内部的数字电路可以在出厂以后再配置决定,也可以在一次配置以后再次配置决定,而一般的计算机芯片在出厂前就已经决定其内部的数字电路,无法在出厂后再次变更。在可重配置器件被使用之前,必须对其进行配置。可重配置器件的出现使得计算机硬件的灵活度大大提高,一些芯片厂商和研究者已经在芯片之间加入可重配置器件以降低通讯延迟。
现场可编程门阵列FPGA是一种常见的可重配置器件。绝大多数的FPGA,其内部的数字电路配置是属于挥发性的,即是无持续电力供应后数字电路的内容就会消失。目前,FPGA广泛应用于航空航天、军事、医疗、汽车、广播、消费类电子、工业、科学、存储器及服务器、通信等领域。
可重配置计算的目的是更加有效地使用FPGA等可重配置器件。由于FPGA的频率和面积所致,目前FPGA主要用于某些计算密集型并行度较高的应用环境,而且对在FPGA内运行的任务片段的大小有一定的限制。
程序调用图,是指描述应用程序各个函数之间的调用关系的图。应用程序各个函数之间的调用关系一般来说只能在运行时获取,但是可以通过采样的方式获得预测性质的程序调用图。
应用程序映射,是指将应用程序的各个部分映射到计算机系统中不同的器件模块上执行,这是应用程序运行必不可少的。在传统计算机系统的应用程序映射,由于计算机系统的各个部分都是固定不可改变的,映射方式简单。
在传统计算机系统中引入可重配置器件,可以针对不同的应用程序配置不同数字电路,从而使得应用程序获得较高的运行效率。所以,势必要有一种将应用程序映射到含有可重配置器件的计算机系统上的方法。而传统的映射方法不可能对应可重配置器件。
发明内容
本发明的目的在于提供一种基于调用图的可重配置器件上的程序映射方法。
本发明解决其技术问题采用的技术方案如下:
1)函数模块识别:
根据要映射的函数模块确定对应的器件模块,因为所有预先编译好的器件模块都以文件的方式存放在器件模块库中,所以函数模块识别就是找到器件模块的文件名;
2)找到函数映射位置:
处理要映射的应用程序中所有未映射函数在调用图中的通讯量信息和当前系统中所有可重配置器件的使用信息,根据函数之间通讯量的大小确定函数要映射的可重配置器件的位置;
第一步,获得调用图中任意两个函数之间的通讯量Ci,j,
其中
Ci,j:函数i和函数j之间的通信量;
第二步,对这些通信量按照从大到小排序,记为Ci1,j1,Ci2,j2,Ci3,j3,Ci4,j4…,
第三步,以上述序列中的{ik,jk}为一对,获得函数对的序列{i1,j1},{i2,j2},{i3,j3}…,
第四步,按上述函数对序列的顺序对所有函数对中还没有映射的函数进行映射,映射的原则是:
如果函数对中有一个函数已经映射并且这个函数映射的主机上有一块或以上没有被映射的可重配置器件,那么函数对中的另一个函数映射到该主机的可重配置器件上;如果函数对中有一个函数已经映射并且这个函数映射的主机上没有没有被映射的可重配置器件,则函数对中的另一个函数映射到与该主机之间网络连接延迟最小的有没有被映射的重配置器件的主机下的可重配置器件上。如果函数对中两个函数都还没有映射,则选取没有被映射可重配置器件最多的主机下的可重配置配件映射函数对;
3)发送重配置命令:
确定函数映射的可重配置器件的位置以后,向可重配置器件所从属的主机发送重配置命令以及器件模块文件;
4)进行重配置:
可重配置器件所从属的主机接收到重配置命令以及器件模块文件后,对相应的可重配置器件进行重配置。
本发明与背景技术相比,具有的有益的效果是:
本发明是一种基于调用图的可重配置器件上的程序映射方法,其主要功能是结合可重配置器件联网系统的特点,将程序调用图上的各个函数映射到可重配置器件中,并将函数的调用转变为对可重配置器件模块的调用,以实现对应用程序的映射。
(1)高效性。本发明实现了基于调用图的可重配置器件上的应用程序映射,根据通信量信息对应用程序映射进行优化,有利于减少应用程序在各个可重配置器件之间的通信量,提高应用程序的运行效率。
(2)智能性。本发明采取了高效的映射位置计算方式,提高映射的速度。
(3)实用性。本发明可以对各种不同类型的应用程序进行映射,经过反复试验证明有很好的实用性。
附图说明
图1是本发明的实施过程示意图。
图2是本发明实施举例的应用程序的调用图。
图3是本发明实施举例的可重配置器件联网系统的示意图。
具体实施方式
本发明是一种嵌入式软件反编译中的静态库函数识别实现方法,下面结合图1所示,说明本发明的具体实施过程。
1)函数模块识别:
根据要映射的函数模块确定对应的器件模块,因为所有预先编译好的器件模块都以文件的方式存放在器件模块库中,所以函数模块识别就是找到器件模块的文件名。如图2所示,调用图所描述的应用程序为例,图2中的F1、F2、F3、F4表示应用程序的函数名,箭头上的数字表示箭头连接的两个函数之间的通信量,这个应用程序的器件模块库中存储的信息如下表:
上述的第一列为应用程序函数名,第二列器件模块名,第三列为器件模块文件的文件名。
2)找到函数映射位置:
处理要映射的应用程序中所有未映射函数在调用图中的通讯量信息和当前系统中所有可重配置器件的使用信息,根据函数之间通讯量的大小确定函数要映射的可重配置器件的位置。
如图2所示的调用图所描述的应用程序以及图3所示的可重配置器件联网系统为例,在图3中H1、H2表示主机名称,R1、R2、R3、R4、R5表示可重配置器件,主机和可重配置器件之间的连线表示该可重配置器件从属于该主机,主机之间的连线表示主机之间的网络连接。找到函数映射位置就是要确定集合{F1,F2,F3,F4}中的任意函数F对应的可重配置器件R,R属于集合{R1,R2,R3,R4,R5}。
第一步,根据调用图获得任意两个函数之间的通信量,在例子中
CF1,F2=200,
CF1,F3=100,
CF2,F4=50;
第二步,对这些通信量从大到小排序,在例子中得到序列CF1,F2,CF1,F3,CF2,F4;
第三步,根据上述通信量序列,在例子中获得函数对序列{F1,F2},{F1,F3},{F2,F4};
第四步,按上述函数对序列的顺序对所有函数对中还没有映射的函数进行映射;
如果函数对中有一个函数已经映射并且这个函数映射的主机上有一块或以上没有被映射的可重配置器件,那么函数对中的另一个函数映射到该主机的可重配置器件上;如果函数对中有一个函数已经映射并且这个函数映射的主机上没有没有被映射的可重配置器件,则函数对中的另一个函数映射到与该主机之间网络连接延迟最小的有没有被映射的重配置器件的主机下的可重配置器件上。如果函数对中两个函数都还没有映射,则选取没有被映射可重配置器件最多的主机下的可重配置配件映射函数对;
在上面的例子中,依次映射上述三个函数对中未映射的函数:
{F1,F2}:两个函数都没有映射,选取可用可重配置器件最多的主机H1下的任意两个可重配置器件,则F1映射到R1,F2映射到R2,
{F1,F3}:函数F1已经映射到主机H1下的可重配置器件R1,尽量将F3映射到H1下的可重配置器件,则F3映射到R3,
{F2,F4}:函数F2已经映射到主机H1下的可重配置器件R2,但是H1已经没有可用的可重配置器件,因此将F4映射到与H1网络延迟最小的H2下的可重配置器件R4上。
3)发送重配置命令:
确定函数映射的可重配置器件的位置以后,向可重配置器件所从属的主机发送重配置命令以及器件模块文件。在例子中,发送的重配置命令如下:
上述的第一列为接受命令的主机,第二列为要进行重配置的可重配置器件,第三列为对该可重配置器件进行重配置所用的器件模块文件的文件名。
同时还要向H1发送文件M1.bit、M2.bit、M3.bit,向H2发送M4.bit。
4)进行重配置:
可重配置器件所从属的主机接收到重配置命令以及器件模块文件后,对相应的可重配置器件进行重配置。
在实施例子,主机H1用M1.bit重配置R1,用M2.bit重配置R2,用M3.bit重配置R3;主机H2用M4.bit重配置R4。
机译: 在移动设备上实现多平台应用程序的方法,其中在远程执行时可重配置逻辑的布局和实现,以及协议实现由动态翻译的映射组成
机译: 产生互补掩模的方法,计算机程序产品,器件制造方法以及映射到晶片上的方法
机译: 基于可重配置的,基于组件的分层体系结构,框架和方法,用于快速开发支持传感器设备的软件应用程序