基于调用图的可重配置器件上的程序映射方法

文档序号:6575758阅读:158来源:国知局

专利名称::基于调用图的可重配置器件上的程序映射方法
技术领域
:本发明涉及可重配置器件
技术领域
和应用程序映射技术,特别是涉及一种基于调用图的可重配置器件上的程序映射方法。
背景技术
:20世纪人类的杰出成果之一计算机技术把人类社会带入了信息化时代。伴随着信息化技术的不断深入以及半导体技术的发展,芯片的集成度不断提高,为了提高芯片的应用灵活性,出现了可重配置器件。可重配置器件是计算机芯片的一种。可重配置器件与一般的芯片不同的是,可重配置器件内部的数字电路可以在出厂以后再配置决定,也可以在一次配置以后再次配置决定,而一般的计算机芯片在出厂前就已经决定其内部的数字电路,无法在出厂后再次变更。在可重配置器件被使用之前,必须对其进行配置。可重配置器件的出现使得计算机硬件的灵活度大大提高,一些芯片厂商和研究者已经在芯片之间加入可重配置器件以降低通讯延迟。现场可编程门阵列FPGA是一种常见的可重配置器件。绝大多数的FPGA,其内部的数字电路配置是属于挥发性的,即是无持续电力供应后数字电路的内容就会消失。目前,FPGA广泛应用于航空航天、军事、医疗、汽车、广播、消费类电子、工业、科学、存储器及服务器、通信等领域。可重配置计算的目的是更加有效地使用FPGA等可重配置器件。由于FPGA的频率和面积所致,目前FPGA主要用于某些计算密集型并行度较高的应用环境,而且对在FPGA内运行的任务片段的大小有一定的限制。程序调用图,是指描述应用程序各个函数之间的调用关系的图。应用程序各个函数之间的调用关系一般来说只能在运行时获取,但是可以通过采样的方式获得预测性质的程序调用图。应用程序映射,是指将应用程序的各个部分映射到计算机系统中不同的器件模块上执行,这是应用程序运行必不可少的。在传统计算机系统的应用程序映射,由于计算机系统的各个部分都是固定不可改变的,映射方式简单。在传统计算机系统中弓I入可重配置器件,可以针对不同的应用程序配置不同数字电路,从而使得应用程序获得较高的运行效率。所以,势必要有一种将应用程序映射到含有可重配置器件的计算机系统上的方法。而传统的映射方法3不可能对应可重配置器件。
发明内容本发明的目的在于提供一种基于调用图的可重配置器件上的程序映射方法。本发明解决其技术问题采用的技术方案如下1)函数模块识别根据要映射的函数模块确定对应的器件模块,因为所有预先编译好的器件模块都以文件的方式存放在器件模块库中,所以函数模块识别就是找到器件模块的文件名;2)找到函数映射位置处理要映射的应用程序中所有未映射函数在调用图中的通讯量信息和当前系统中所有可重配置器件的使用信息,根据函数之间通讯量的大小确定函数要映射的可重配置器件的位置;第一步,获得调用图中任意两个函数之间的通讯量C",其中C,;:函数i和函数j之间的通信量;第二步,对这些通信量按照从大到小排序,记为c^,c,^,c,w,c,^…,第三步,以上述序列中的(ik,jk)为一对,获得函数对的序列(il,jl},{i2,J2},"3,j3}.",第四步,按上述函数对序列的顺序对所有函数对中还没有映射的函数进行映射,映射的原则是-如果函数对中有一个函数己经映射并且这个函数映射的主机上有一块或以上没有被映射的可重配置器件,那么函数对中的另一个函数映射到该主机的可重配置器件上;如果函数对中有一个函数己经映射并且这个函数映射的主机上没有没有被映射的可重配置器件,则函数对中的另一个函数映射到与该主机之间网络连接延迟最小的有没有被映射的重配置器件的主机下的可重配置器件上。如果函数对中两个函数都还没有映射,则选取没有被映射可重配置器件最多的主机下的可重配置配件映射函数对;3)发送重配置命令确定函数映射的可重配置器件的位置以后,向可重配置器件所从属的主机发送重配置命令以及器件模块文件;4)进行重配置4可重配置器件所从属的主机接收到重配置命令以及器件模块文件后,对相应的可重配置器件进行重配置。本发明与
背景技术
相比,具有的有益的效果是本发明是一种基于调用图的可重配置器件上的程序映射方法,其主要功能是结合可重配置器件联网系统的特点,将程序调用图上的各个函数映射到可重配置器件中,并将函数的调用转变为对可重配置器件模块的调用,以实现对应用程序的映射。(1)高效性。本发明实现了基于调用图的可重配置器件上的应用程序映射,根据通信量信息对应用程序映射进行优化,有利于减少应用程序在各个可重配置器件之间的通信量,提高应用程序的运行效率。(2)智能性。本发明采取了高效的映射位置计算方式,提高映射的速度。(3)实用性。本发明可以对各种不同类型的应用程序进行映射,经过反复试验证明有很好的实用性。图1是本发明的实施过程示意图。图2是本发明实施举例的应用程序的调用图。图3是本发明实施举例的可重配置器件联网系统的示意图。具体实施例方式本发明是一种嵌入式软件反编译中的静态库函数识别实现方法,下面结合图1所示,说明本发明的具体实施过程。l)函数模块识别根据要映射的函数模块确定对应的器件模块,因为所有预先编译好的器件模块都以文件的方式存放在器件模块库中,所以函数模块识别就是找到器件模块的文件名。如图2所示,调用图所描述的应用程序为例,图2中的F1、F2、F3、F4表示应用程序的函数名,箭头上的数字表示箭头连接的两个函数之间的通信量,这个应用程序的器件模块库中存储的信息如下表<table>tableseeoriginaldocumentpage5</column></row><table>上述的第一列为应用程序函数名,第二列器件模块名,第三列为器件模块文件的文件名。2)找到函数映射位置处理要映射的应用程序中所有未映射函数在调用图中的通讯量信息和当前系统中所有可重配置器件的使用信息,根据函数之间通讯量的大小确定函数要映射的可重配置器件的位置。如图2所示的调用图所描述的应用程序以及图3所示的可重配置器件联网系统为例,在图3中Hl、H2表示主机名称,Rl、R2、R3、R4、R5表示可重配置器件,主机和可重配置器件之间的连线表示该可重配置器件从属于该主机,主机之间的连线表示主机之间的网络连接。找到函数映射位置就是要确定集合(F1,F2,F3,F4)中的任意函数F对应的可重配置器件R,R属于集合(R1,R2,R3,R4,R5}。第一步,根据调用图获得任意两个函数之间的通信量,在例子中CflF2=200,CFlf3=100,C=50.第二步,对这些通信量从大到小排序,在例子中得到序列Cf^,Cw,C^,;第三步,根据上述通信量序列,在例子中获得函数对序列(F1,F2},{Fl,F3},{F2,F4};第四步,按上述函数对序列的顺序对所有函数对中还没有映射的函数进行映射;如果函数对中有一个函数已经映射并且这个函数映射的主机上有一块或以上没有被映射的可重配置器件,那么函数对中的另一个函数映射到该主机的可重配置器件上;如果函数对中有一个函数己经映射并且这个函数映射的主机上没有没有被映射的可重配置器件,则函数对中的另一个函数映射到与该主机之间网络连接延迟最小的有没有被映射的重配置器件的主机下的可重配置器件上。如果函数对中两个函数都还没有映射,则选取没有被映射可重配置器件最多的主机下的可重配置配件映射函数对;在上面的例子中,依次映射上述三个函数对中未映射的函数{Fl,F2}:两个函数都没有映射,选取可用可重配置器件最多的主机HI下的任意两个可重配置器件,则Fl映射到Rl,F2映射到R2,{Fl,F3}:函数F1已经映射到主机H1下的可重配置器件R1,尽量将F36映射到HI下的可重配置器件,则F3映射到R3,{F2,F4}:函数F2已经映射到主机H1下的可重配置器件R2,但是HI已经没有可用的可重配置器件,因此将F4映射到与HI网络延迟最小的H2下的可重配置器件R4上。3)发送重配置命令确定函数映射的可重配置器件的位置以后,向可重配置器件所从属的主机发送重配置命令以及器件莫块文件。在例子中,发送的重配置命令如下:<table>tableseeoriginaldocumentpage7</column></row><table>上述的第一列为接受命令的主机,第二列为要进行重配置的可重配置器件,第三列为对该可重配置器件进行重配置所用的器件模块文件的文件名。同时还要向Hl发送文件Ml.bit、M2.bit、M3.bit,向H2发送M4.bit。4)进行重配置可重配置器件所从属的主机接收到重配置命令以及器件模块文件后,对相应的可重配置器件进行重配置。在实施例子,主机Hl用Ml.bit重配置Rl,用M2.bit重配置R2,用M3.bit重配置R3;主机H2用M4.bit重配置R4。权利要求1.一种基于调用图的可重配置器件上的程序映射方法,其特征在于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)进行重配置可重配置器件所从属的主机接收到重配置命令以及器件模块文件后,对相应的可重配置器件进行重配置。全文摘要本发明公开了一种基于调用图的可重配置器件上的程序映射方法。结合可重配置器件联网系统的特点,将程序调用图上的各个函数映射到可重配置器件中,并将函数的调用转变为对可重配置器件模块的调用,以实现对应用程序的映射。本发明根据通信量信息对应用程序映射进行优化,有利于减少应用程序在各个可重配置器件之间的通信量,提高应用程序的运行效率;采取了高效的映射位置计算方式,提高映射的速度;可以对各种不同类型的应用程序进行映射,经过反复试验证明有很好的实用性。文档编号G06F9/45GK101504614SQ20091009674公开日2009年8月12日申请日期2009年3月16日优先权日2009年3月16日发明者超王,缪良华,蒋冠军,剑陈,陈天洲申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1