面向边缘计算的ARM-FPGA协同硬件资源局部动态重构处理方法技术

技术编号:28295368 阅读:27 留言:0更新日期:2021-04-30 16:19
本发明专利技术请求保护一种面向边缘计算的ARM‑FPGA协同硬件资源局部动态重构处理方法,针对面向边缘计算的异构体系中,任务间频繁的任务切换,而不考虑硬件平台处理特性的问题,将硬件处理器(FPGA)独立用作可重构的加速运算单元,把大量计算任务迁移至可重构的硬件资源上,以保证高性能计算任务的独立性,实现局部资源动态重构中协处理器FPGA硬件任务调度优化、任务处理间的更大的并行性和各任务时间的可预测性,提高了面向边缘计算异构平台的整体运行效率。

【技术实现步骤摘要】
面向边缘计算的ARM-FPGA协同硬件资源局部动态重构处理方法
本专利技术属于嵌入式异构平台和软硬件协同处理的边缘计算
,特别是基于ARM-FPGA面向边缘计算的协同硬件资源局部动态重构方式。
技术介绍
随着复杂场景数据驱动下的高带宽、低时延,复杂计算带来了越来越大的挑战,受到了研究学者的广泛关注。复杂场景所需计算能力已经远远超过了数据增长的速度,如自动驾驶、虚拟现实、在线游戏和网络直播等应用场景,其计算量大、延迟性敏感、数据安全和隐私要求越来越高,传统的集中式云计算模型处理方式已无法满足需求,带来了新的突出挑战。尤其2020年新型冠状疫情全球大爆发,各行各业无法正常开展线下的营运模式,如公司需要网上会议、学校需要网上上课等,如何保障各行各业无法现场作业同时可以不影响正常工作,也是目前亟需解决的重大问题。诸如这一系列挑战,边缘计算模式应运而生。2020年,工信部发布的加快新基建建设,包含5G网络、人工智能、物联网、大数据等方向。而边缘计算作为其中的关键技术,不仅是当前面临的新冠疫情,更从长远来看,都有着举足轻重的作用。摩尔定律的推论,仅以不断集成晶体管形成单核强大处理器的处理方式已无法满足以上需求。因此,不同处理器所构成的异构体系联合处理海量原始数据成为研究热点。而边缘计算将大量需要上载至云端的计算数据全部或部分迁移至边缘侧,以降低数据传输带来的高带宽和计算负载的消耗,同时,降低了数据处理时延和数据安全和隐私的保护。目前,面向边缘计算的异构体系主要以两种计算资源组成,其主流方式:CPU+GPU、CPU+ASIC、CPU+FPGA,这三种异构体系相比,FPGA架构中具有更低延迟、低功耗、可重构行和并行性等突出优点,能很好满足边缘计算中对海量数据的处理时效性要求,同时,可以实现诸如数据加密和解密的能力,以维护数据的安全性。因此,在边缘计算的场景中广泛应用。然而,FPGA最突出的优点是它的动态可重构的能力,它可以完成在任务运行时动态分配它所闲置的资源,使得在不影响正在实施的任务同时划分出空闲资源,让其设备或任务可以并行实施。但是,动态局部重构也会带来一些弊端,如它的重配置时间远超于单个任务间切换的时间等问题,对于任务调度过程中频繁的局部资源重构必将带来巨大的代价,必须通过其他的的方式有效降低这一代价,否则它将严重影响系统效率。为了解决这一问题,一些研究学者通过设计外围接口来增大数据吞吐量、将异构体系CPU处理器和FPGA处理器抽象为软硬件任务的新模型和FPGA中硬件线程的方式等,极大减少了局部重构所需的时间。因此,学者们认为局部重构的时间消耗在今后仍可以继续缩减,这种方式在资源受限边缘侧应用尤其有价值,它的动态可重构的能能力仍是我们不能忽略的重点,仍是我们研究的热点之一。
技术实现思路
本专利技术旨在解决以上现有技术的问题。提出了一种面向边缘计算的ARM-FPGA协同硬件资源局部动态重构处理方法。本专利技术的技术方案如下:一种面向边缘计算的ARM-FPGA协同硬件资源局部动态重构处理方法,其包括以下步骤:步骤一:确定函数集H。针对特定的任务场景有着不同的功能任务,例如,JPEG图编码,它主要分为四个阶段:颜色的空间转换、二维离散的余弦变换、量化和Huffman熵编码。前面的主要三个阶段有固定的输入输出参数量,更适合在FPGA上运行,而最后的Huffman熵编码更适合在ARM处理器上执行。因此,可根据数据特性等层面筛选出适合FPGA硬件加速执行的任务,以函数集H;步骤二:黑盒功能对应比特流存储,整个系统根据FPGA硬件资源和每个黑盒函数集合H总资源以确定FPGA需要执行黑盒集合A,其中,包含黑盒的大小、位置及函数集H,最终生成对应的IP核库,存储每个黑盒对应的比特流;步骤三:系统C头文件建立:依据步骤二的比特流结果编写系统的C头文件,使驱动程序能进行重新配置和使用黑盒对应功能于系统中;步骤四:获取相应黑盒接口加速任务处理速度:根据步骤三的C头文件获取相应的黑盒的功能和接口,调用相关加法器或减法器函数接口使用FPGA加速,直到整个FPGA硬件线程结束,该任务才终止;步骤五:判定操作:当收到加法器或减法器的请求时,系统会确定执行任务和执行时间的关系,检查是否有合适的黑盒用作执行组件;如果有,则执行步骤六,否则,执行步骤七;步骤六:FPGA任务加速执行:当判定符合FPGA执行的任务时,其硬件任务通过驱动程序模块发送至FPGA,直到整个任务执行完成;步骤七:局部重构计算资源黑盒:根据步骤五判定没有符合该任务处理的黑盒加速器时,则会重新调用资源管理的模块重构新的黑盒,以满足任务需求。至此,重新返回步骤五进行判定。进一步的,所述步骤二整个系统根据FPGA硬件资源和每个黑盒函数集合H总资源以确定FPGA需要执行黑盒集合A,具体包括:黑盒子用集合A表示,黑盒子的总数用a表示,单个黑匣子用ai表示,i=0,1,...,a,FPGA所提供的函数集,每个黑匣子表示的函数集合为Hi,所有函数集合的并集由H来表示,整个系统执行过程中,黑盒用位置和函数的形式表示,其中,位置信息用存储单元对应的物理地址来表示,整个系统通过使用物理地址来重新分配局部重构过程和驱动程序过程。进一步的,当整个FPGA硬件资源被分为a=4个黑盒时,所有黑盒位置被标记,包含每个黑盒所代表的功能,如:黑盒1表示{AES编码,AES解码},黑盒2表示(AES编码,AES解码,FFT)。此外,驱动模块包含了操作黑盒的驱动程序,驱动程序为重构黑盒、线程与黑盒通信的程序,整个处理过程都是在内核模式下处理它们的响应。进一步的,所述当所面临的任务无对应的FPGA黑盒相匹配时,则驱动模块将进行黑盒重构,其驱动模块中包含必要的黑盒通信与线程调配过程。硬件FPGA处理的线程全部都是硬件线程,其它的任务均为软件线程。显而易见,硬件线程中上下文包含更多信息,如电路状态等,如果通过挂起硬件线程方式,不但会非常耗时,而且需要很大的额外空间,因此,将硬件线程设为抢占式模式,软件线程设为非抢占式模式,整个任务的调度执行都不会影响正在FPGA硬件上执行的任务。进一步的,所述步骤三:系统C头文件“core.h”建立:依据步骤二的比特流结果编写系统的C头文件,使驱动程序能进行重新配置和使用黑盒对应功能于系统中;以创建加法器为例:第一步:输入参数和测试类型;第二步:for(j=1;j<5;j++);第三步:创造加法器,结束。紧接着线程执行,第一步:for(i=0;i<5;i++);第二步:等待线程执行;第三步:结束线程。进一步的,所述步骤四:获取相应黑盒接口加速任务处理速度:根据步骤三的C头文件“core.h”获取相应的黑盒的功能和接口,调用相关与之对应加法器函数接口使用FPGA加速,直到整个FPGA硬件线程结束,该任务才终止。进一步的,所述步骤五:判定操作。根据步骤四,例如,当收到加法器的请求时,系统会确定执行任务和执行时间的关系,检查是否有合适的黑盒用作执行组件。进一步的本文档来自技高网
...

【技术保护点】
1.一种面向边缘计算的ARM-FPGA协同硬件资源局部动态重构处理方法,其特征在于,包括以下步骤:/n步骤一:确定函数集H,针对特定的任务场景有着不同的功能任务,当在JPEG图编码时,它主要分为四个阶段:颜色的空间转换、二维离散的余弦变换、量化和Huffman熵编码,前面的主要三个阶段有固定的输入输出参数量,更适合在FPGA上运行,而最后的Huffman熵编码更适合在ARM处理器上执行,因此,可根据数据特性等层面筛选出适合FPGA硬件加速执行的任务,以函数集H;/n步骤二:不同黑盒功能对应比特流存储,整个系统根据FPGA硬件资源和每个黑盒函数集合H总资源以确定FPGA需要执行黑盒集合A,其中,包含黑盒的大小、位置及函数集H,最终生成对应的IP核库,存储每个黑盒对应的比特流;/n步骤三:系统C头文件建立,依据步骤二的比特流结果编写系统的C头文件“core.h”接口,使驱动程序能进行重新配置和使用黑盒对应功能于系统中;/n步骤四:获取相应黑盒接口加速任务处理速度,根据步骤三的C头文件“core.h”获取相应的黑盒的功能和接口,调用相关加法器函数接口使用FPGA加速,直到整个FPGA硬件线程结束,该任务才终止;/n步骤五:判定操作,当收到加法器或减法器的请求时,系统会确定执行任务和执行时间的关系,检查是否有合适的黑盒用作执行组件;如果有,则执行步骤六,否则,执行步骤七;/n步骤六:FPGA任务加速执行,当判定符合FPGA执行的任务时,其硬件任务通过驱动程序模块发送至FPGA,直到整个任务执行完成;/n步骤七:局部重构计算资源黑盒,根据步骤五判定没有符合该任务处理的黑盒加速器时,则会重新调用资源管理的模块重构新的黑盒,以满足任务需求,至此,重新返回步骤五进行判定。/n...

【技术特征摘要】
1.一种面向边缘计算的ARM-FPGA协同硬件资源局部动态重构处理方法,其特征在于,包括以下步骤:
步骤一:确定函数集H,针对特定的任务场景有着不同的功能任务,当在JPEG图编码时,它主要分为四个阶段:颜色的空间转换、二维离散的余弦变换、量化和Huffman熵编码,前面的主要三个阶段有固定的输入输出参数量,更适合在FPGA上运行,而最后的Huffman熵编码更适合在ARM处理器上执行,因此,可根据数据特性等层面筛选出适合FPGA硬件加速执行的任务,以函数集H;
步骤二:不同黑盒功能对应比特流存储,整个系统根据FPGA硬件资源和每个黑盒函数集合H总资源以确定FPGA需要执行黑盒集合A,其中,包含黑盒的大小、位置及函数集H,最终生成对应的IP核库,存储每个黑盒对应的比特流;
步骤三:系统C头文件建立,依据步骤二的比特流结果编写系统的C头文件“core.h”接口,使驱动程序能进行重新配置和使用黑盒对应功能于系统中;
步骤四:获取相应黑盒接口加速任务处理速度,根据步骤三的C头文件“core.h”获取相应的黑盒的功能和接口,调用相关加法器函数接口使用FPGA加速,直到整个FPGA硬件线程结束,该任务才终止;
步骤五:判定操作,当收到加法器或减法器的请求时,系统会确定执行任务和执行时间的关系,检查是否有合适的黑盒用作执行组件;如果有,则执行步骤六,否则,执行步骤七;
步骤六:FPGA任务加速执行,当判定符合FPGA执行的任务时,其硬件任务通过驱动程序模块发送至FPGA,直到整个任务执行完成;
步骤七:局部重构计算资源黑盒,根据步骤五判定没有符合该任务处理的黑盒加速器时,则会重新调用资源管理的模块重构新的黑盒,以满足任务需求,至此,重新返回步骤五进行判定。


2.根据权利要求1所述的一种面向边缘计算的ARM-FPGA协同硬件资源局部动态重构处理方法,其特征在于,所述步骤二整个系统根据FPGA硬件资源和每个黑盒函数集合H总资源以确定FPGA需要执行黑盒集合A,具体包括:
黑盒子用集合A表示,黑盒子的总数用a表示,单个黑匣子用ai表示,i=0,1,...,a,FPGA所提供的函数集,每个黑匣子表示的函数集合为Hi,所有函数集合的并集由H来表示,整个系统执行过程中,黑盒用位置和函数的形式表示,其中,位置信息用存储单元对应的物理地址来表示,整个系统通过使用物理地址来重新分配局部重构过程和驱动程序过程。


3.根据权利要求2所述的一种面向边缘计算的ARM-FPGA协同硬件资源局部动态重构处理方法,其特征在于,...

【专利技术属性】
技术研发人员:罗志勇何禹辰王耀马国喜
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆;50

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

1