一种算法加速的软硬件协同设计方法技术

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

【技术实现步骤摘要】

本专利技术涉及一种设计方法,尤其涉及。它是基于硬件原型演化的网络安全RSA算法,属于集成电路、片上系统(SOC)、 嵌入式系统设计
(二)
技术介绍
软硬件协同设计不仅是一种设计技术,同时也是一种新的设计方法学,其 核心问题是协调软件子系统和硬件子系统。软硬件协同设计的定义至今仍没有完全一致的表述,主要有以下几种大卫.W .弗兰克(David W.Franke)与马丁 ■ K .帕维斯(Martin K. Purvis ) 认为软硬件协同设计是一种在设计过程的最初阶段就将软件与硬件两个方面 结合起来考虑,以获得设计的灵活性与功能的有效分配的一种设计方法,有时 简称为协同设计。乔瓦尼.德 米切(Giovanni De Micheli)认为软硬件协同设计是指通综上所述,可以认为软硬件协同设计是一种在设计的最初阶段就将软件 与硬件两方面结合起来权衡功能的分配,在软件与硬件的并行设计过程中实现 软硬件的交互,以满足系统的功能与性能要求的设计方法。片上系统(SOC)设计技术始于20世纪90年代中期,它是一种系统级的 设计技术。关于片上系统(SOC)目前还没有统一的定义,部分专家认为片上 系统(SOC)是一种复杂的集成电路,它将终端产品的主要功能单元完全集成 在单个芯片或芯片组中。通常片上系统(SOC)包括一个可编程处理器、片上 存储器和硬件实现的加速功能单元,片上系统(SOC)作为一个系统需要直接 与外部世界打交道,因此它一般还包括模拟部件以及数模混合部件,未来它还 可能会将光微电子机械系统(0/MEMS )部件集成在一起;有的专家则将片上系统 (SOC)定义为一种将多个超大规模集成电路(VLSI)设计集成在一起、针对5某一种应用提供完全功能的集成电路。软硬件协同设计国外的成果大体可分为基于智财模块(IP )和不基于智财模 块(IP)两大类。其中,基于智财模块(IP)库的系统生成算法是最大主流。不 基于智财模块(IP)库的协同设计,研究者很少,且发展緩慢。基于智财模块(IP)的软硬件协同设计方法的缺陷1)失去了高层次综合的精细性,不能根据数据流图的特点对所选智财模块(IP)进行具体功能调整、优化;2)虽然为适应大规模任务流图的需要,将功能单元的规模由简单算子上 升为智财模块(IP),但这种机掩性的上升仍不能做到依特定系统约束类型的指 向真正灵活地把握硬件的规模和性能;3)需要认真调整各智财模块(IP)间接 口时序,增加了设计负担,同时使系统不够优化。在软硬件协同设计的意义上 即是说基于智财模块(IP)的软硬件协同设计方法是一种半定制设计方法, 不能依系统约束指向真正灵活地调整软硬件比例关系。
技术实现思路
1、 目的本专利技术的目的是提供,该方 法克服了现有技术的不足,它思路敏捷,易学易用,适应面广;它具有良好兼 容性,适应于多核片上系统(SOC)设计的迫切要求,促进多核设计工具的完善。2、 技术方案针对软硬件协同设计现存的问题,本专利提出了一种基于硬件原型演化 RSA算法的软硬件协同设计方法。图1表示出了在设计迭代条件下演化方法软硬件相互关系的;f莫型。这个V 字形模型,既表明了硬件相对于软件一个运行基础的地位,又表明了软硬件协 同设计中可配置硬件在系统设计中的枢纽地位。而对于以前几乎是二元对立并 行的软件、硬件设计过程,课题认为对大多数系统而言,特别对复杂算法系统 而言,系统设计从软件算法分析入手,采用统一建才莫i吾言(UML)等软件建模 工具描述系统是必需而且有利的。图2表示出了石更件原型演化方法下的设计过程,可以看出其与瀑布形的4欠 件开发流程有相似之处。硬件开发与軟件相比,具有投资大的特点,若出现设 计周期迭代,损失的将不仅仅是宝贵的开发时间。这个特点决定了硬件开发要 遵循更稳妥的开发路线。而硬件原型演化可使开发者选择已有的硬件平台,步 步为营,渐变前进,确保每一步方案都可在原有基础上有所提高,根据帕累托6最优原理,我们可以肯定这样最终所得的设计方案是符合帕累托最优的。这种方法还有另外一个大的技术背景中央处理器(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)。步骤四用建^i工具描述系统整体,该步骤推荐釆用对软件元素进行硬件 化扩展的统一建模语言(UML)。任一计算系统都必然具有通用的硬件处理平台, 软硬件协同主要是指的软件与替代软件功能的专用硬件模块之间的交互协同, 对应到统一建模语言(UML)中也就是首要在对象图这一层进行讨论和设计。 至于类图(class diagram),类是面向对象理论的精华,其核心是用软件的数据结 构对物理实体进行抽本文档来自技高网
...

【技术保护点】
一种算法加速的软硬件协同设计方法,其特征在于:该方法具体步骤如下: 步骤一:算法和软件静态分析;算法数学原理可用Matlab等软件实现验证,然后转化为C语言等可运行语言在pc机或专用目标硬件平台即嵌入式设备上实现; 步骤二:使用 软件分析工具对软件运行进行动态实测分析,获得软件运行基本数据图,该步骤需要的软件工具有生成函数调用图的IBM公司Rational套件中的quantify软件;生成函数运行时间和访问次数的profile剖析软件,如Windows环境Visual C下的VC profile、Linux环境下的GDB以及相应嵌入式开发环境下的剖析工具; 步骤三:结合系统要求、算法分析和软件实测分析数据,作出多核硬件系统的总体结构和功能设计,该步骤要结合硬件设计经验,对系统功能进行粗粒度细 化分割,对有必要独立的任务设计由单独的以处理器为中心模块担当,对这些模块分别用演化方法进行设计,再讨论接口基础上的信息交流,对具有信息安全特性的RSA加速本设计来说,协处理模块具有独立的数据存储空间,与主处理器即MP内存空间实现硬件隔离,是防止主存空间非法地址操作导致敏感信息泄漏的根本性措施,所以只用设计一个专属的CPM协处理模块; 步骤四:用建模工具描述系统整体,该步骤推荐采用对软件元素进行硬件化扩展的统一建模语言即UML;任一计算系统都必然具有通用的硬件处理平台,软 硬件协同主要是指的软件与替代软件功能的专用硬件模块之间的交互协同,对应到统一建模语言UML中也就是首要在对象图这一层进行讨论和设计,至于类图class diagram,类是面向对象理论的精华,其核心是用软件的数据结构对物理实体进行抽象和封 装,以实现可继承性; 步骤五:在步骤二基础上构造函数过程抽象图G↓[CG],包含运行时间参数的函数调用图,以此为对象讨论软件在这种多核系统中的分布;把所研究程序段中所有函数抽象为G↓[CG]中一个个执行的节点,F即是所研究程序段中所有 这种函数节点的集合,V是运行期中所有被访问的全局变量的集合,E是G↓[CG]中代表函数直接调用的单向边的集合,E′是G↓[CG]中代表某函数访问某间接前驱函数数据结构的单向边的集合,E″是G↓[CG]中代表函数访问全局变量过程单向边的集合,所以可得G↓[CG]其元素集合为(F+V,E+E′+E″);对每一个v∈F,cyc↓[M](v)和cyc↓[C](v)分别代表...

【技术特征摘要】
1、一种算法加速的软硬件协同设计方法,其特征在于该方法具体步骤如下步骤一算法和软件静态分析 id=icf0001 file=A2009100766930002C1.tif wi=2 he=5 top= 44 left = 91 img-content=drawing img-format=tif orientation=portrait inline=yes/>算法数学原理可用Matlab等软件实现验证,然后转化为C语言等可运行语言在pc机或专用目标硬件平台即嵌入式设备上实现;步骤二使用软件分析工具对软件运行进行动态实测分析,获得软件运行基本数据图 id=icf0002 file=A2009100766930002C2.tif wi=2 he=2 top= 78 left = 42 img-content=drawing img-format=tif orientation=portrait inline=yes/>该步骤需要的软件工具有生成函数调用图的IBM公司Rational套件中的quantify软件;生成函数运行时间和访问次数的profile剖析软件,如Windows环境Visual C下的VC profile、Linux环境下的GDB以及相应嵌入式开发环境下的剖析工具;步骤三结合系统要求、算法分析和软件实测分析数据,作出多核硬件系统的总体结构和功能设计 id=icf0003 file=A2009100766930002C3.tif wi=2 he=3 top= 117 left = 73 img-content=drawing img-format=tif orientation=portrait inline=yes/>该步骤要结合硬件设计经验,对系统功能进行粗粒度细化分割,对有必要独立的任务设计由单独的以处理器为中心模块担当 id=icf0004 file=A2009100766930002C4.tif wi=2 he=1 top= 126 left = 178 img-content=drawing img-format=tif orientation=portrait inline=yes/>对这些模块分别用演化方法进行设计,再讨论接口基础上的信息交流 id=icf0005 file=A2009100766930002C5.tif wi=2 he=2 top= 134 left = 163 img-content=drawing img-format=tif orientation=portrait inline=yes/>对具有信息安全特性的RSA加速本设计来说,协处理模块具有独立的数据存储空间,与主处理器即MP内存空间实现硬件隔离,是防止主存空间非法地址操作导致敏感信息泄漏的根本性措施,所以只用设计一个专属的CPM协处理模块;步骤四用建模工具描述系统整体,该步骤推荐采用对软件元素进行硬件化扩展的统一建模语言即UML;任一计算系统都必然具有通用的硬件处理平台,软硬件协同主要是指的软件与替代软件功能的专用硬件模块之间的交互协同,对应到统一建模语言UML中也就是首要在对象图这一层进行讨论和设计 id=icf0006 file=A2009100766930002C6.tif wi=1 he=2 top= 191 left = 175 img-content=drawing img-format=tif orientation=portrait inline=yes/>至于类图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′),传输的字节数为<maths id=math0001 num=0001 ><math><![CDATA[ <mrow><mi>wt</mi><mrow> <mo>(</mo> <mi>e</mi> <mo>)</mo></mrow><mo>=</mo><msubsup> <mi>&Sigma;</mi> <mrow><mi>i</mi><mo>=</mo><mn>0</mn> </mrow> <mrow><mi>i</mi><mo>=</mo><msub> <mi>e</mi> <mi>N</mi></msub> </mrow></msubsup><msub> <mi>ac</mi> <mi>i</mi></msub><mo>*</mo><msub> <mi>sz</mi> <mi>i</mi></msub><mo>,</mo> </mrow>]]></math> id=icf0007 file=A2009100766930003C1.tif wi=13 he=4 top= 53 left = 153 img-content=drawing img-format=tif orientation=portrait inline=yes/></maths>其中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)),<maths id=math0002 num=0002 ><math><![CDATA[ <mrow><mo>&ForAll;</mo><mi>v</mi><mo>&Element;</mo><msub> <mi>fn</mi> <mi>M</mi></msub><mo>;</mo> </mrow>]]></math> id=icf0008 file=A2009100766930003C3.tif wi=17 he=4 top= 148 left = 106 img-content=drawing img-format=tif orientation=portrait inline=yes/></ma...

【专利技术属性】
技术研发人员:王翔左可
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1