[发明专利]一种算法加速的软硬件协同设计方法无效
申请号: | 200910076693.1 | 申请日: | 2009-01-15 |
公开(公告)号: | CN101493862A | 公开(公告)日: | 2009-07-29 |
发明(设计)人: | 王翔;左可 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 北京慧泉知识产权代理有限公司 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明是一种算法加速的软硬件协同设计方法,该方法有六个步骤:步骤一:算法和软件静态分析;步骤二:使用软件分析工具对软件运行进行动态实测分析,获得软件运行基本数据图;步骤三:结合系统要求、算法分析和软件实测分析数据,作出多核硬件系统的总体结构和功能设计;步骤四:用合适的建模工具(RML)描述系统整体;步骤五:在步骤二基础上构造函数过程抽象图GCG(包含运行时间参数的函数调用图),以此为对象讨论软件在这种多核系统中的分布;步骤六:按步骤五所得方案进行原型系统的软硬件实现,对实现的结果进行评估。该方法具有良好兼容性,适应于多核片上系统(SOC)设计的迫切要求,促进多核设计工具的完善。它有很好的实用价值和应用前景。 | ||
搜索关键词: | 一种 算法 加速 软硬件 协同 设计 方法 | ||
【主权项】:
1、一种算法加速的软硬件协同设计方法,其特征在于:该方法具体步骤如下:步骤一:算法和软件静态分析
算法数学原理可用Matlab等软件实现验证,然后转化为C语言等可运行语言在pc机或专用目标硬件平台即嵌入式设备上实现;步骤二:使用软件分析工具对软件运行进行动态实测分析,获得软件运行基本数据图
该步骤需要的软件工具有生成函数调用图的IBM公司Rational套件中的quantify软件;生成函数运行时间和访问次数的profile剖析软件,如Windows环境Visual C下的VC profile、Linux环境下的GDB以及相应嵌入式开发环境下的剖析工具;步骤三:结合系统要求、算法分析和软件实测分析数据,作出多核硬件系统的总体结构和功能设计
该步骤要结合硬件设计经验,对系统功能进行粗粒度细化分割,对有必要独立的任务设计由单独的以处理器为中心模块担当
对这些模块分别用演化方法进行设计,再讨论接口基础上的信息交流
对具有信息安全特性的RSA加速本设计来说,协处理模块具有独立的数据存储空间,与主处理器即MP内存空间实现硬件隔离,是防止主存空间非法地址操作导致敏感信息泄漏的根本性措施,所以只用设计一个专属的CPM协处理模块;步骤四:用建模工具描述系统整体,该步骤推荐采用对软件元素进行硬件化扩展的统一建模语言即UML;任一计算系统都必然具有通用的硬件处理平台,软硬件协同主要是指的软件与替代软件功能的专用硬件模块之间的交互协同,对应到统一建模语言UML中也就是首要在对象图这一层进行讨论和设计
至于类图class diagram,类是面向对象理论的精华,其核心是用软件的数据结构对物理实体进行抽象和封装,以实现可继承性;步骤五:在步骤二基础上构造函数过程抽象图GCG,包含运行时间参数的函数调用图,以此为对象讨论软件在这种多核系统中的分布;把所研究程序段中所有函数抽象为GCG中一个个执行的节点,F即是所研究程序段中所有这种函数节点的集合,V是运行期中所有被访问的全局变量的集合,E是GCG中代表函数直接调用的单向边的集合,E′是GCG中代表某函数访问某间接前驱函数数据结构的单向边的集合,E″是GCG中代表函数访问全局变量过程单向边的集合,所以可得GCG其元素集合为(F+V,E+E′+E″);对每一个v∈F,cycM(v)和cycC(v)分别代表函数在主处理器M和协处理模块CPM上执行的周期数,count(v)代表v被调用的次数;通信调用过程实际的处理器耗用周期,通过传输的字节长度乘上一个经验参数α获得;对每个e∈(E∪E′),传输的字节数为wt ( e ) = Σ i = 0 i = e N ac i * sz i , ]]> 其中eN=在e上被复制参数的个数,aci=参数i的访问次数,szi=参数i的长度;对每个e(n,q)∈(E″),传输的字节数为wt(e)=ace(n)*sz(n),其中ace(n)=全局变量n的访问次数,sz(n)=n的字节长度,然后,构造一个数组sol[i],下标i对应GCG中相应标号节点(F或V),数组元素soli取值范围为0或者1,如果该节点在主处理器(MP)进行运算对数组元素soli赋值为0,如果该节点在CPM运算对数组元素soli赋值为1;因此,数组sol[i]的一个二进制排列组合,即可看作对此段程序在两个处理器间的一种分布方案的对应;设fnM为分配在主处理器(MP)上处理的函数的集合,fnC为分配在协处理模块CPM上处理的函数的集合,gM为分配在主处理器MP上全局变量的集合,由此得出处理方案时间消耗函数为:solcost=MPcost+CPMcost+E cost+E′cost+E″cost。其中,MPcost=∑i(cycM(v)*count(v)),∀ v ∈ fn M ; ]]> CPMcost=∑i(cycC(v)*count(v)),∀ v ∈ fn C ; ]]> E cost=∑wt(e(p,q)),∀ e ∈ E , ]]> p∈fnM,q∈fnC;E″cost=∑wt(e(n,q)),∀ e ∈ E ′ ′ , ]]> q∈fnC,n∈gM;E′cost计算方法是这样的:对于每一个v∈fnC,程序中标记出所有与e ( u , v ) ∈ E | ( ∀ u ∈ fn M , v ∈ fn C ) ]]> 相联系的变量;接着,程序查找所有e ( v , u ) ∈ E ′ | ∀ u ∈ fn C , ]]> 遍历所有与它们相联系的参数
如果参数i没有被标记,则现在被标记,而且它的耗费aci*szi被计入到E′cost;应该注意的是,不同分界的E′cost计算结果是不同的;属于E′的边代表一种有条件复制:如果数据尚未被该函数同样在协处理模块CPM上的前驱函数复制到协处理模块CPM内存,它才会被复制到协处理模块CPM;然后通过分支定界等最优化方法对此函数进行求解,寻找一个最优化方案,该步骤实际是软件运行的数学化表述过程,通过运筹学中的最优化算法讨论最佳软件分布;步骤六:按步骤五所得方案进行原型系统的软硬件实现,对实现的结果进行评估,针对原型方案的问题设计演化方案,在演化中构造数量模型讨论演化成果,以指导下一步演化,直到得到最终方案;该步骤类似于软件工程的演化开发或维护再开发过程,在单次演化中采用的具体思路和方法与一般的软硬件开发过程相似,软硬件关系服从图1的大V字型模型。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910076693.1/,转载请声明来源钻瓜专利网。