CN101493862A - 一种算法加速的软硬件协同设计方法 - Google Patents

一种算法加速的软硬件协同设计方法 Download PDF

Info

Publication number
CN101493862A
CN101493862A CNA2009100766931A CN200910076693A CN101493862A CN 101493862 A CN101493862 A CN 101493862A CN A2009100766931 A CNA2009100766931 A CN A2009100766931A CN 200910076693 A CN200910076693 A CN 200910076693A CN 101493862 A CN101493862 A CN 101493862A
Authority
CN
China
Prior art keywords
software
function
hardware
design
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2009100766931A
Other languages
English (en)
Inventor
王翔
左可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Beijing University of Aeronautics and Astronautics
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CNA2009100766931A priority Critical patent/CN101493862A/zh
Publication of CN101493862A publication Critical patent/CN101493862A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明是一种算法加速的软硬件协同设计方法,该方法有六个步骤:步骤一:算法和软件静态分析;步骤二:使用软件分析工具对软件运行进行动态实测分析,获得软件运行基本数据图;步骤三:结合系统要求、算法分析和软件实测分析数据,作出多核硬件系统的总体结构和功能设计;步骤四:用合适的建模工具(RML)描述系统整体;步骤五:在步骤二基础上构造函数过程抽象图GCG(包含运行时间参数的函数调用图),以此为对象讨论软件在这种多核系统中的分布;步骤六:按步骤五所得方案进行原型系统的软硬件实现,对实现的结果进行评估。该方法具有良好兼容性,适应于多核片上系统(SOC)设计的迫切要求,促进多核设计工具的完善。它有很好的实用价值和应用前景。

Description

一种算法加速的软硬件协同设计方法
(一)技术领域
本发明涉及一种设计方法,尤其涉及一种算法加速的软硬件协同设计方法。它是基于硬件原型演化的网络安全RSA算法,属于集成电路、片上系统(SOC)、嵌入式系统设计技术领域。
(二)背景技术
软硬件协同设计不仅是一种设计技术,同时也是一种新的设计方法学,其核心问题是协调软件子系统和硬件子系统。
软硬件协同设计的定义至今仍没有完全一致的表述,主要有以下几种:
大卫·W·弗兰克(David W.Franke)与马丁·K·帕维斯(Martin K.Purvis)认为:“软硬件协同设计是一种在设计过程的最初阶段就将软件与硬件两个方面结合起来考虑,以获得设计的灵活性与功能的有效分配的一种设计方法,有时简称为协同设计。”
乔瓦尼·德·米切(Giovanni De Micheli)认为:“软硬件协同设计是指通过在软硬件的并行设计过程中研究软硬件之间的交互以满足系统级的目标。”
综上所述,可以认为:软硬件协同设计是一种在设计的最初阶段就将软件与硬件两方面结合起来权衡功能的分配,在软件与硬件的并行设计过程中实现软硬件的交互,以满足系统的功能与性能要求的设计方法。
片上系统(SOC)设计技术始于20世纪90年代中期,它是一种系统级的设计技术。关于片上系统(SOC)目前还没有统一的定义,部分专家认为片上系统(SOC)是一种复杂的集成电路,它将终端产品的主要功能单元完全集成在单个芯片或芯片组中。通常片上系统(SOC)包括一个可编程处理器、片上存储器和硬件实现的加速功能单元,片上系统(SOC)作为一个系统需要直接与外部世界打交道,因此它一般还包括模拟部件以及数模混合部件,未来它还可能会将光微电子机械系统(O/MEMS)部件集成在一起;有的专家则将片上系统(SOC)定义为一种将多个超大规模集成电路(VLSI)设计集成在一起、针对某一种应用提供完全功能的集成电路。
软硬件协同设计国外的成果大体可分为基于智财模块(IP)和不基于智财模块(IP)两大类。其中,基于智财模块(IP)库的系统生成算法是最大主流。不基于智财模块(IP)库的协同设计,研究者很少,且发展缓慢。
基于智财模块(IP)的软硬件协同设计方法的缺陷:1)失去了高层次综合的精细性,不能根据数据流图的特点对所选智财模块(IP)进行具体功能调整、优化;2)虽然为适应大规模任务流图的需要,将功能单元的规模由简单算子上升为智财模块(IP),但这种机械性的上升仍不能做到依特定系统约束类型的指向真正灵活地把握硬件的规模和性能;3)需要认真调整各智财模块(IP)间接口时序,增加了设计负担,同时使系统不够优化。在软硬件协同设计的意义上即是说:基于智财模块(IP)的软硬件协同设计方法是一种“半定制”设计方法,不能依系统约束指向真正灵活地调整软硬件比例关系。
(三)发明内容
1、目的:本发明的目的是提供一种算法加速的软硬件协同设计方法,该方法克服了现有技术的不足,它思路敏捷,易学易用,适应面广;它具有良好兼容性,适应于多核片上系统(SOC)设计的迫切要求,促进多核设计工具的完善。
2、技术方案:
针对软硬件协同设计现存的问题,本专利提出了一种基于硬件原型演化RSA算法的软硬件协同设计方法。
图1表示出了在设计迭代条件下演化方法软硬件相互关系的模型。这个V字形模型,既表明了硬件相对于软件一个运行基础的地位,又表明了软硬件协同设计中可配置硬件在系统设计中的枢纽地位。而对于以前几乎是二元对立并行的软件、硬件设计过程,课题认为对大多数系统而言,特别对复杂算法系统而言,系统设计从软件算法分析入手,采用统一建模语言(UML)等软件建模工具描述系统是必需而且有利的。
图2表示出了硬件原型演化方法下的设计过程,可以看出其与瀑布形的软件开发流程有相似之处。硬件开发与软件相比,具有投资大的特点,若出现设计周期迭代,损失的将不仅仅是宝贵的开发时间。这个特点决定了硬件开发要遵循更稳妥的开发路线。而硬件原型演化可使开发者选择已有的硬件平台,步步为营,渐变前进,确保每一步方案都可在原有基础上有所提高,根据帕累托最优原理,我们可以肯定这样最终所得的设计方案是符合帕累托最优的。
这种方法还有另外一个大的技术背景:中央处理器(CPU)设计现在已经进入多核时代,片上系统(SOC)也相应正在进入多核或片上网络(NOC)时代,而根据国外相关课题研究认为:对于复杂片上系统(SOC)设计来说,最好的方法是从现在以中央处理器(CPU)+功能智财模块(IP)为模式的设计,转变为以处理器为中心的可配置模块相组合的设计模式。这意味着以后的片上系统(SOC)每个模块中都有一个中央处理器(CPU),都是一个有自主性的分系统。所以这种情况下的每个模块都可适用本文的原型演化过程,而且将项目分割为分系统进行独立设计演化是极为重要而合理的设计手段。
图2表示的是一个单线的原型演化设计过程,在工程实践中可根据前期算法剖析结果和工程需要,在相同的算法剖析研究之后,同时开始两个、三个乃至更多的原型演化进程,选择不同的演化路径和方案,最后在几个演化结果方案中选择一个最优的结果。这种处理可加快原型的演化,甚至可由不同团队并行开发,确保最终方案成功的可能性,当然代价是更多的原型成本支出。
需要说明的是,原型演化方法最终方案的最优性是通过试验性探索而得到的,这里的演化主要是建立在现场可编程门阵列(FPGA)等逻辑器件形成的片上系统(SOC)的可编程性,主要不是指电路板的反复修改试验。实际中有的情况下电路板的修改演化也是可能需要的,这种条件下,要注意演化步长的选择,一般到最终方案演化次数不要超过三次,避免原型成本的过度消耗。
综上所述,本发明一种算法加速的软硬件协同设计方法,该方法具体步骤如下:
步骤一:算法和软件静态分析。算法数学原理可用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中代表函数访问全局变量过程单向边的集合。图6是该图一个片段节选的示例。所以可得GCG其元素集合为(F+V,E+E′+E″)。对每一个v∈F,cycM(v)和cycC(v)分别代表函数在主处理器(MP)和协处理模块(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+Ecost+E′cost+E″cost。其中, MP cos t = Σi ( cyc M ( v ) * count ( v ) ) , ∀ v ∈ fn M ; CPM cos t = Σi ( cyc C ( v ) * count ( v ) ) , ∀ v ∈ fn C ; E cos t = Σwt ( e ( p , q ) ) , ∀ e ∈ E , p ∈ fn M , q ∈ fn C ; E ′ ′ cos t = Σwt ( e ( n , q ) ) , ∀ e ∈ E ′ ′ , q ∈ fn C , n ∈ g M . 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字型模型。
3、优点及功效:
(1)本发明可避免基于智财模块(IP)的软硬件协同设计方法“半定制”、不够灵活的特点。
(2)本发明可改变不基于智财模块(IP)的软硬件协同设计方法长期停滞的现状,推动其进一步研究。
(3)本发明对现有软硬件协同设计方法均具有良好兼容性,可在整体也可在局部设计中使用,适应面广。
(4)本发明可辅助解决系统设计初期对软硬件分布难以求解的复杂讨论,思路简洁,易学易用,便于推广。
(5)本发明适应于多核片上系统(SOC)设计的迫切要求,立足现有开发工具进行多核设计,促进多核设计工具的完善。
(四)附图说明
图1:设计迭代条件下演化方法软硬件关系模型示意图
图2:硬件原型演化的过程示意图
图3:函数运行时间统计示意图
图4:多核硬件结构示意图
图5:扩展统一建模语言(UML)描述系统示意图
图6:函数过程抽象示意图
图中符号说明如下:
MP:主处理器
CPM:协处理模块
MCU:微控制器(基本中央处理器模块)
F:所研究程序段中函数节点
V:运行期中被访问的全局变量
E:代表函数直接调用的单向边
E′:代表某函数访问某间接前驱函数数据结构的单向边
E″:代表函数访问全局变量过程单向边
wt(e):相应调用过程传输的字节数
(五)具体实施方式
见图1、图2、图3、图4、图5、图6所示,本发明一种算法加速的软硬件协同设计方法,该方法具体实施步骤如下:
步骤一:算法和软件静态分析。算法数学原理可用Matlab等软件实现验证,然后转化为C语言等可运行语言在pc机或专用目标硬件平台(如嵌入式设备)上实现。
步骤二:使用软件分析工具对软件运行进行动态实测分析,获得软件运行基本数据图。该步骤需要的软件工具有生成函数调用图的IBM公司Rational套件中的quantify;生成函数运行时间和访问次数(如图3)的剖析(profile)软件,如Windows环境Visual C下的VC profile、Linux环境下的GDB以及相应嵌入式开发环境下的剖析工具等。
步骤三:结合系统要求、算法分析和软件实测分析数据,作出多核硬件系统的总体结构和功能设计。该步骤要结合硬件设计经验,对系统功能进行粗粒度细化分割,对有必要独立的任务设计由单独的以处理器为中心模块担当。对这些模块分别用演化方法进行设计,再讨论接口基础上的信息交流。对具有信息安全特性的RSA加速本设计来说,协处理模块具有独立的数据存储空间,与主处理器(MP)内存空间实现硬件隔离,是防止主存空间非法地址操作导致敏感信息泄漏的根本性措施,所以只用设计一个专属的协处理模块(CPM)(如图4)。
步骤四:用建模工具描述系统整体,该步骤推荐采用对软件元素进行硬件化扩展的统一建模语言(UML)。任一计算系统都必然具有通用的硬件处理平台,软硬件协同主要是指的软件与替代软件功能的专用硬件模块之间的交互协同,对应到统一建模语言(UML)中也就是首要在对象图这一层进行讨论和设计(如图5)。至于类图(class diagram),类是面向对象理论的精华,其核心是用软件的数据结构对物理实体进行抽象和封装,以实现可继承性。
步骤五:在步骤二基础上构造函数过程抽象图GCG(包含运行时间参数的函数调用图),以此为对象讨论软件在这种多核系统中的分布。把所研究程序段中所有函数抽象为GCG中一个个执行的节点,F即是所研究程序段中所有这种函数节点的集合。V是运行期中所有被访问的全局变量的集合。E是GCG中代表函数直接调用的单向边的集合。E′是GCG中代表某函数访问某间接前驱函数数据结构的单向边的集合。E″是GCG中代表函数访问全局变量过程单向边的集合。图6是该图一个片段节选的示例。所以可得GCG其元素集合为(F+V,E+E′+E″)。对每一个v∈F,cycM(v)和cycC(v)分别代表函数在主处理器(MP)和协处理模块(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+Ecost+E′cost+E″cost。其中, MP cos t = Σi ( cyc M ( v ) * count ( v ) ) , ∀ v ∈ fn M ; CPM cos t = Σi ( cyc C ( v ) * count ( v ) ) , ∀ v ∈ fn C ; E cos t = Σwt ( e ( p , q ) ) , ∀ e ∈ E , p ∈ fn M , q ∈ fn C ; E ′ ′ cos t = Σwt ( e ( n , q ) ) , ∀ e ∈ E ′ ′ , q ∈ fn C , n ∈ g M . 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字型模型。

Claims (1)

1、一种算法加速的软硬件协同设计方法,其特征在于:该方法具体步骤如下:
步骤一:算法和软件静态分析
Figure A2009100766930002C1
算法数学原理可用Matlab等软件实现验证,然后转化为C语言等可运行语言在pc机或专用目标硬件平台即嵌入式设备上实现;
步骤二:使用软件分析工具对软件运行进行动态实测分析,获得软件运行基本数据图该步骤需要的软件工具有生成函数调用图的IBM公司Rational套件中的quantify软件;生成函数运行时间和访问次数的profile剖析软件,如Windows环境Visual C下的VC profile、Linux环境下的GDB以及相应嵌入式开发环境下的剖析工具;
步骤三:结合系统要求、算法分析和软件实测分析数据,作出多核硬件系统的总体结构和功能设计
Figure A2009100766930002C3
该步骤要结合硬件设计经验,对系统功能进行粗粒度细化分割,对有必要独立的任务设计由单独的以处理器为中心模块担当
Figure A2009100766930002C4
对这些模块分别用演化方法进行设计,再讨论接口基础上的信息交流
Figure A2009100766930002C5
对具有信息安全特性的RSA加速本设计来说,协处理模块具有独立的数据存储空间,与主处理器即MP内存空间实现硬件隔离,是防止主存空间非法地址操作导致敏感信息泄漏的根本性措施,所以只用设计一个专属的CPM协处理模块;
步骤四:用建模工具描述系统整体,该步骤推荐采用对软件元素进行硬件化扩展的统一建模语言即UML;任一计算系统都必然具有通用的硬件处理平台,软硬件协同主要是指的软件与替代软件功能的专用硬件模块之间的交互协同,对应到统一建模语言UML中也就是首要在对象图这一层进行讨论和设计
Figure A2009100766930002C6
至于类图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字型模型。
CNA2009100766931A 2009-01-15 2009-01-15 一种算法加速的软硬件协同设计方法 Pending CN101493862A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2009100766931A CN101493862A (zh) 2009-01-15 2009-01-15 一种算法加速的软硬件协同设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2009100766931A CN101493862A (zh) 2009-01-15 2009-01-15 一种算法加速的软硬件协同设计方法

Publications (1)

Publication Number Publication Date
CN101493862A true CN101493862A (zh) 2009-07-29

Family

ID=40924458

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2009100766931A Pending CN101493862A (zh) 2009-01-15 2009-01-15 一种算法加速的软硬件协同设计方法

Country Status (1)

Country Link
CN (1) CN101493862A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763288B (zh) * 2010-01-19 2012-09-05 湖南大学 考虑硬件预配置因素的动态软硬件划分方法
CN102902569A (zh) * 2011-12-23 2013-01-30 同济大学 在异构可重构环境下区分软硬算粒的信息处理方法
CN106650137A (zh) * 2016-12-29 2017-05-10 北京华大九天软件有限公司 一种加速标准单元增量布局合理化的方法
CN107392308A (zh) * 2017-06-20 2017-11-24 中国科学院计算技术研究所 一种基于可编程器件的卷积神经网络加速方法与系统
CN108763145A (zh) * 2017-04-13 2018-11-06 杜根股份公司 多核架构、接口卡和处理数据包的方法
CN110045992A (zh) * 2019-04-24 2019-07-23 北京翼辉信息技术有限公司 一种适用于多核板卡的通用系统及方法
CN110113169A (zh) * 2019-04-15 2019-08-09 北京三未信安科技发展有限公司 基于rsa的协同数字签名方法、装置及电子设备
CN111445383A (zh) * 2020-03-20 2020-07-24 北京迈格威科技有限公司 影像参数的调节方法、装置及系统
CN112003792A (zh) * 2020-07-23 2020-11-27 烽火通信科技股份有限公司 一种软硬件协同的报文加速方法和装置
CN112989751A (zh) * 2021-05-11 2021-06-18 中国人民解放军国防科技大学 基于分支定界法的电路通道布线方法、装置及电子设备
CN116720585A (zh) * 2023-08-11 2023-09-08 福建亿榕信息技术有限公司 基于自主可控软硬件平台的低功耗ai模型推理优化方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763288B (zh) * 2010-01-19 2012-09-05 湖南大学 考虑硬件预配置因素的动态软硬件划分方法
CN102902569A (zh) * 2011-12-23 2013-01-30 同济大学 在异构可重构环境下区分软硬算粒的信息处理方法
CN102902569B (zh) * 2011-12-23 2015-10-28 同济大学 在异构可重构环境下区分软硬算粒的信息处理方法
CN106650137A (zh) * 2016-12-29 2017-05-10 北京华大九天软件有限公司 一种加速标准单元增量布局合理化的方法
CN108763145A (zh) * 2017-04-13 2018-11-06 杜根股份公司 多核架构、接口卡和处理数据包的方法
CN108763145B (zh) * 2017-04-13 2023-08-18 杜根股份公司 多核架构、接口卡和处理数据包的方法
CN107392308A (zh) * 2017-06-20 2017-11-24 中国科学院计算技术研究所 一种基于可编程器件的卷积神经网络加速方法与系统
CN107392308B (zh) * 2017-06-20 2020-04-03 中国科学院计算技术研究所 一种基于可编程器件的卷积神经网络加速方法与系统
CN110113169B (zh) * 2019-04-15 2021-11-12 北京三未信安科技发展有限公司 基于rsa的协同数字签名方法、装置及电子设备
CN110113169A (zh) * 2019-04-15 2019-08-09 北京三未信安科技发展有限公司 基于rsa的协同数字签名方法、装置及电子设备
CN110045992B (zh) * 2019-04-24 2020-03-13 北京翼辉信息技术有限公司 一种适用于多核板卡的通用系统及方法
CN110045992A (zh) * 2019-04-24 2019-07-23 北京翼辉信息技术有限公司 一种适用于多核板卡的通用系统及方法
CN111445383A (zh) * 2020-03-20 2020-07-24 北京迈格威科技有限公司 影像参数的调节方法、装置及系统
CN111445383B (zh) * 2020-03-20 2024-02-13 北京迈格威科技有限公司 影像参数的调节方法、装置及系统
CN112003792A (zh) * 2020-07-23 2020-11-27 烽火通信科技股份有限公司 一种软硬件协同的报文加速方法和装置
CN112003792B (zh) * 2020-07-23 2022-04-15 烽火通信科技股份有限公司 一种软硬件协同的报文加速方法和装置
CN112989751A (zh) * 2021-05-11 2021-06-18 中国人民解放军国防科技大学 基于分支定界法的电路通道布线方法、装置及电子设备
CN116720585A (zh) * 2023-08-11 2023-09-08 福建亿榕信息技术有限公司 基于自主可控软硬件平台的低功耗ai模型推理优化方法
CN116720585B (zh) * 2023-08-11 2023-12-29 福建亿榕信息技术有限公司 基于自主可控软硬件平台的低功耗ai模型推理优化方法

Similar Documents

Publication Publication Date Title
CN101493862A (zh) 一种算法加速的软硬件协同设计方法
Hasert et al. Complex fluid simulations with the parallel tree-based lattice Boltzmann solver Musubi
Spafford et al. Aspen: A domain specific language for performance modeling
Moreau et al. SNNAP: Approximate computing on programmable SoCs via neural acceleration
Salinger et al. Albany: using component-based design to develop a flexible, generic multiphysics analysis code
Xiao et al. Plasticity-on-chip design: Exploiting self-similarity for data communications
Zuo et al. A polyhedral-based systemc modeling and generation framework for effective low-power design space exploration
Gawlok et al. Hiflow3–technical report on release 2.0
Kirby et al. Gpu-accelerated discontinuous galerkin methods: 30x speedup on 345 billion unknowns
Laird et al. Large-scale nonlinear programming for multi-scenario optimization
Tran Structural-damage detection with big data using parallel computing based on MPSoC
Balandin et al. Co-Modeling of Embedded Networks Using SystemC and SDL
Flasskamp et al. Performance estimation of streaming applications for hierarchical MPSoCs
Il’In The conception, requirements and structure of the integrated computational environment
Menard et al. Mocasin—rapid prototyping of rapid prototyping tools: A framework for exploring new approaches in mapping software to heterogeneous multi-cores
Muttillo et al. A design methodology for soft-core platforms on FPGA with SMP Linux, OpenMP support, and distributed hardware profiling system
Carothers et al. Computational challenges in modeling and simulation
Patil et al. Survey of memory, timing, and power management verification methods for multi-core processors
Gorobets Adapting a scientific CFD code to industrial applications on hybrid supercomputers
Alexandru et al. Machine learning optimization of quantum circuit layouts
Sjöström Parallelizing the Edge application for GPU-based systems using the SkePU skeleton programming library
Cérin et al. Where are the optimization potential of machine learning kernels
Li et al. Multiprocessor Systems Auto-Design for Multiple Use-Case Applications on FPGA
Nugroho Control Node and Sensor Selection in Dynamical Systems
Jakobsen Formal methods for design and simulation of embedded systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090729