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,直到整个任务执行完成;
步骤七:局部重构计算资源黑盒,根据步骤五判定没有符合该任务处理的黑盒加速器时,则会重新调用资源管理的模块重构新的黑盒,以满足任务需求,至此,重新返回步骤五进行判定;
所述步骤二整个系统根据FPGA硬件资源和每个函数集H总资源以确定FPGA需要执行黑盒集合A,具体包括:
黑盒用集合A表示,黑盒的总数用a表示,单个黑盒用ai表示,i=0,1,...,a,FPGA所提供的函数集,每个黑盒表示的函数集合为Hi,所有函数集合的并集由H来表示,整个系统执行过程中,黑盒用位置和函数的形式表示,其中,位置信息用存储单元对应的物理地址来表示,整个系统通过使用物理地址来重新分配局部重构过程和驱动程序过程;
当整个FPGA硬件资源被分为a=4个黑盒时,所有黑盒位置被标记,包含每个黑盒所代表的功能,此外,驱动模块包含了操作黑盒的驱动程序,驱动程序为重构黑盒、线程与黑盒通信的程序,整个处理过程都是在内核模式下处理它们的响应。
2.根据权利要求1所述的一种面向边缘计算的ARM‑FPGA协同局部动态重构处理方法,其特征在于,硬件FPGA处理的线程全部都是硬件线程,其它的任务均为软件线程;将硬件线程设为抢占式模式,软件线程设为非抢占式模式,整个任务的调度执行都不会影响正在FPGA硬件上执行的任务。
3.根据权利要求1‑2之一所述的一种面向边缘计算的ARM‑FPGA协同局部动态重构处理方法,其特征在于,所述步骤三:系统C头文件“core.h”建立:依据步骤二的比特流结果编写系统的C头文件“core.h”,使驱动程序能进行重新配置和使用黑盒对应功能于系统中;其中创建加法器的步骤包括:第一步:输入参数和测试类型;第二步:for(j=0;j<5;j++);第三步:创造加法器;第四步:结束;紧接着线程执行,第一步:for(j=0;j<6;j++);第二步:等待线程执行;第三步:结束线程。
4.根据权利要求3所述的一种面向边缘计算的ARM‑FPGA协同局部动态重构处理方法,其特征在于,所述步骤四:获取相应黑盒接口加速任务处理速度:根据步骤三的C头文件“core.h”获取相应的黑盒的功能和接口,调用相关与之对应加法器函数接口使用FPGA加速,直到整个FPGA硬件线程结束,该任务才终止。
5.根据权利要求4所述的一种面向边缘计算的ARM‑FPGA协同局部动态重构处理方法,其特征在于,所述步骤五:判定操作;根据步骤四,当收到加法器的请求时,系统会确定执行任务和执行时间的关系,检查是否有合适的黑盒用作执行组件。
6.根据权利要求5所述的一种面向边缘计算的ARM‑FPGA协同局部动态重构处理方法,其特征在于,所述步骤六,当判定符合FPGA执行的任务时,其硬件任务通过驱动程序模块发送至FPGA,直到整个任务执行完成;所述步骤七,没有符合FPGA执行的任务时,则会重新调用资源管理的模块重构新的黑盒,以满足任务需求;至此,重新返回步骤五进行判定。