ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:17.84KB ,
资源ID:24644540      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24644540.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于应用特征的启发式可重构SoC任务分配.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于应用特征的启发式可重构SoC任务分配.docx

1、基于应用特征的启发式可重构SoC任务分配基于应用特征的启发式可重构SoC任务分配摘要:本文提出了一种基于应用特征的启发式任务分配方法,适用于对可重构SoC进行系统级任务划分。实验以可重构密码处理SoC为目标,对密码处理任务进行任务划分,实验结果验证了任务分配方法的有效性和实用性。关键词:启发式 任务分配 SoC 设计与实现任务分配是SoC设计与实现中的重要过程。它负责在满足系统约束的条件下,将SoC应用功能的各个任务分配到SoC的各个处理器核上,以使应用任务在SoC上高效运行。SoC任务分配方法决定了应用功能在SoC体系结构上的实现方式、系统性能与效率。因此,SoC任务分配度方法成为亟需研究的

2、关键问题之一。任务分配方法有双路分配和多路分配两种方式。双路分配主要研究由单个处理器和若干专用硬件模块所构成系统的任务分配方法,多路分配主要研究由多个(两个或更多)处理器和若干专用硬件模块所构成系统的任务分配问题。本项目针对传统任务分配方法的不足,提出一种基于应用特征的启发式任务分配方法。该方法使用程序特征分析技术提取应用中的任务,之后采用启发式任务分配规则,实现任务在SoC上的分配。1 相关研究鉴于在SoC设计中的重要性,任务分配工作得到了研究人员的广泛关注与研究。已有的SoC任务分配方法可以分为人工分配与自动分配两种。人工分配方法依靠SoC设计人员进行任务分配。这种做法在传统的多处理器So

3、C设计中非常常见。该方法借助SoC设计人员的设计经验可以获得较好的效果。然而,对于复杂的应用而言,SoC设计人员在进行人工任务分配时,难以准确掌握并利用任务的特征信息,无法实现处理任务的高效分配。自动任务分配方法依靠自动化的算法或工具进行任务分配。典型的自动分配方法有:(1)郭晓东等人1提出的使用遗传算法进行带约束的SoC任务分配方法;(2)Gang Wang和Wenrui Gong等人2提出的应用基本蚁群算法求解SoC任务分配问题的一般方法,该方法综合运用局部和全局启发式信息,通过蚂蚁间的协作,进行有效的随机搜索,以获取最优划分解;(3)Theerayod Wiangtong3面向细粒度可重

4、构SoC实现了自动化的编译时划分与调度算法,并进行了遗传算法、模拟退火和禁忌搜索的实验比较与分析。然而,上述自动分配方法却没有利用SoC设计人员的专家经验。某些任务分配经验,例如:处理任务的核心函数应该分配到可重构处理器上,这对于SoC设计人员是显而易见的,却不容易通过自动化算法获得。因此,如果能够充分利用SoC设计人员的设计经验,可以提高处理任务的分配效率。另外,可重构处理器具有强大的处理功能,可以快速处理函数粒度的任务。在以函数粒度进行任务分配过程中,问题规模与复杂性较小,而采用复杂的自动化启发式寻优算法有些“大材小用”,反而不利于提高任务分配效率。针对上述不足,本文提出一种基于程序特征的

5、启发式任务分配方法。使用该方法时,首先使用程序特征分析技术,提取程序中的任务以及任务的运行时间,之后使用基于SoC设计人员经验的启发式任务分配规则,交互式的将处理任务分配到可重构SoC的各个处理器核上。2 问题定义可重构SoC任务分配问题在求解过程中,SoC系统的功能行为采用函数调用图描述。之所以采用函数调用图来描述SoC系统行为,是因为在任务分配中的任务采用函数粒度。函数调用图的定义如下。定义,函数调用图:函数调用图G=(T, E)由节点T、边E构成。其中,T是函数任务集,E(TT)是有向边集,表示函数任务之间的调用关系。使用函数调用图的双着色模型来描述可重构SoC任务分配问题,如图1所示。

6、t0和tn是虚拟任务,用于确保函数调用图中只有一个开始节点和一个结尾节点。分配到主控处理器上的任务用颜色c1表示,分配到可重构处理器上的任务用颜色c2表示。3 基于应用特征的启发式任务分配方法3.1 任务分配粒度任务分配的粒度采用函数粒度。之所以采用函数粒度,是因为可重构处理器的处理能力足够大,可以处理函数粒度的处理功能。相反,如果粒度过小,比如采用循环粒度或者基本块粒度,会导致频繁的主控处理器与可重构处理器之间通信,从而抵消一部分可重构处理器的处理性能。3.2 任务分配过程在任务分配过程中以程序特征分析结果为依据,使用交互的启发式任务分配方法。任务分配分为以下四个过程。第一步:生成处理程序的

7、SUIF中间表示。基于SUIF编译框架,对处理程序进行词法分析、语法分析和语义检查,将C语言表示的处理程序转化成SUIF中间表示。第二步:分析提取处理程序中的函数任务。基于处理程序的SUIF中间表示,提取处理程序所包含的函数。第三步:估算各个函数任务的计算时间。根据处理程序中各个函数任务所包含的SUIF指令条数,估算各个函数任务的计算时间,作为任务分配的依据。第四步:根据启发规则进行任务分配。在第三步中已经得到各个函数任务的计算时间。根据计算时间与专家经验,将各个函数任务分配到SoC各处理器上。根据计算时间的分配是指将运行比较耗时的任务分配到可重构处理器上加速,根据专家经验的分配是指根据SoC

8、设计人员的经验将某些关键任务分配到可重构处理器上加速。3.3 启发式规则以密码处理为例,在任务分配过程中,根据专家经验设定启发式规则,规则如下。if某任务是密码处理的核心函数,且 该任务适合可重构处理器处理。then将该任务分配到可重构处理器上。if某任务不是密码处理的核心函数,且 该任务运行时间>所有任务的平均运行时间且该任务适合可重构处理器处理。then将该任务分配到可重构处理器上。其余情况都将任务分配至可重构处理器实验结果与分析。以DES为例,给出启发式规则:if (fun_infoi0.matches(“s_box”) ) task.setExeTimeOnEstar( “182

9、” );task.setExeTimeOnAsip( “59” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“LS”) ) task.setExeTimeOnEstar( “42” );task.setExeTimeOnAsip( “18” );task.setWhichToAllocation( “EStar” );else if (fun_infoi0.matches(“F”) ) task.setExeTimeOnEstar( “234” );task.setExeTimeOnAsip( “93” )

10、;task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“ip_1”) ) task.setExeTimeOnEstar( “119” );task.setExeTimeOnAsip( “35” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“expand0”) ) task.setExeTimeOnEstar( “81” );task.setExeTimeOnAsip( “32” );task.setWhichToAllocation

11、( “ASIP” );else if (fun_infoi0.matches(“son”) ) task.setExeTimeOnEstar( “118” );task.setExeTimeOnAsip( “36” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“compress0”) ) task.setExeTimeOnEstar( “88” );task.setExeTimeOnAsip( “28” );task.setWhichToAllocation( “ASIP” );else if (fun_i

12、nfoi0.matches(“setkeystar”) ) task.setExeTimeOnEstar( “190” );task.setExeTimeOnAsip( “65” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“ip”) ) task.setExeTimeOnEstar( “95” );task.setExeTimeOnAsip( “33” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“encrypt0”)

13、 ) task.setExeTimeOnEstar( “108” );task.setExeTimeOnAsip( “42” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“discrypt0”) ) task.setExeTimeOnEstar( “108” );task.setExeTimeOnAsip( “42” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“DES”) ) task.setExeTimeOnEsta

14、r( “15” );task.setExeTimeOnAsip( “6” );task.setWhichToAllocation( “EStar” );else if (fun_infoi0.matches(“DES_1”) ) task.setExeTimeOnEstar( “15” );task.setExeTimeOnAsip( “6” );task.setWhichToAllocation( “EStar” );else if (fun_infoi0.matches(“TripleDES”) ) task.setExeTimeOnEstar( “115” );task.setExeTi

15、meOnAsip( “37” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“TripleDES_1”) ) task.setExeTimeOnEstar( “115” );task.setExeTimeOnAsip( “37” );task.setWhichToAllocation( “ASIP” );else if (fun_infoi0.matches(“main”) ) task.setExeTimeOnEstar( “79” );task.setExeTimeOnAsip( “41” );task.

16、setWhichToAllocation( “EStar” );4 实验结果4.1 应用实例任务分配的对象使用DES、AES和MD5算法。任务分配的目标体系结构采用可重构密码处理SoC体系结构。图2给出该SoC的体系结构。任务分配的目标为分别将DES、AES和MD5中各个函数分配到可重构密码处理SoC中的主控处理器或者可重构处理器上。实验环境的主要参数如下:(1)硬件配置:AMD Athlon 5800+,2G内存。(2)操作系统:Red Hat Enterprise Linux AS 4.7(kernel 2.69)。(3)应用软件:Eclipse-x11-opensource -4.4.3

17、,graphViz。(4)实现方法:java语言。4.2 实验结果与分析以DES为例进行任务分配,图3给出DES分配结果。图中的各个结点代表函数。函数之间的边代表各个函数之间的调用关系。各个结点的着色代表将其分配到不同的处理器上。其中浅色部分为分配到可重构处理器上运行的函数,而深色部分为分配到主处理器上运行的函数。5 结语本文提出一种基于程序特征的启发式任务分配方法。该方法借助于程序特征分析结果与专家经验,使用启发式任务分配规则,能够有效地实现处理任务在可重构SoC上的分配。该方法对于应用在可重构SoC上的高效映射和实现具有一定的辅助支持作用。参考文献1 郭晓东,刘积仁,文晖.一种基于遗传算法

18、的硬件/软件划分方法J.计算机辅助设计与图形学学报,2001,13(1):2427.2 Gang Wang,Wenrui Gong and Ryan Kastner,”System Level Partitioning for Programmable Platforms Using the Ant Colony Optimization”,In 13th International Workshop on Logic and Synthesis (IWLS´04),2004.3 T.Wiangtong,P.Cheung,W.Luk. Comparing Three Heuristic Search Methods for Functional Partitioning in Hardware-Software Codesign.Journal of Design Automation for Embedded Systems,2002,7(6):425449.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1