CN115033356B - 一种基于异构可重构的动态资源调度方法及系统 - Google Patents
一种基于异构可重构的动态资源调度方法及系统 Download PDFInfo
- Publication number
- CN115033356B CN115033356B CN202210487789.2A CN202210487789A CN115033356B CN 115033356 B CN115033356 B CN 115033356B CN 202210487789 A CN202210487789 A CN 202210487789A CN 115033356 B CN115033356 B CN 115033356B
- Authority
- CN
- China
- Prior art keywords
- task
- module
- tasks
- hardware
- fpga module
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000012544 monitoring process Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 10
- 230000002093 peripheral effect Effects 0.000 claims description 7
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于异构可重构的动态资源调度方法和系统,所述方法包括:对待执行任务进行任务分类生成硬件任务和软件任务;将所述硬件任务传输并装载至FPGA模块中,将所述软件任务的全部指令传输装载至DSP模块;控制所述FPGA模块和所述DSP模块分别对所述硬件任务和所述软件任务进行处理;对所述FPGA模块和所述DSP模块的任务处理结果进行整合以获得最终任务处理结果。本发明基于FPGA、DSP和ARM架构下提出一种动态资源调度框架,兼具了硬件设计和软件计算双方的优势,通过主控ARM能够方便地管理不同架构下的资源,实现任务的交替,实用性强,且具有普遍适用性。
Description
技术领域
本发明属于电子技术领域,具体涉及一种基于异构可重构的动态资源调度方法及系统,可用于在异构可重构系统中充分利用异构资源,从而加快任务的执行速度,提升系统资源的利用率。
背景技术
随着电子技术领域中集成电路技术的迅猛发展,单个处理器的计算性能越来越高,摩尔定律也越来越趋向极限。因此,单个处理器组成的系统已经难以满足人们对计算性能及低功耗的需求。由FPGA和多种处理器构成的异构可重构系统将不同架构的计算模块相结合,使在一个系统中能够同时包含多种不同的计算资源,因此能够同时满足高计算性能和低功耗的需求。
尽管异构可重构系统有着如此庞大的计算资源,但现如今对异构可重构系统的使用技术仍然较为简单,更多的是各个异构计算模块单独计算自己的任务,并没有做到异构模块间的并行处理,难以发挥出异构可重构系统的优势,计算资源得不到充分利用,造成了严重的资源浪费。如何充分发挥异构可重构系统应有的计算能力,提高异构可重构系统的资源利用率,已成为急需解决的问题。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于异构可重构的动态资源调度方法和系统,动态地为每一个到来的任务实时进行任务划分和资源分配且不影响正在执行的任务,高效使用异构可重构系统的资源以达到充分发挥系统计算能力的目的。本发明要解决的技术问题通过以下技术方案实现:
本发明的一个方面提供了一种基于异构可重构的动态资源调度方法,包括:
对待执行任务进行任务分类生成硬件任务和软件任务;
将所述硬件任务传输并装载至FPGA模块中,将所述软件任务的全部指令传输装载至DSP模块;
控制所述FPGA模块和所述DSP模块分别对所述硬件任务和所述软件任务进行处理;
对所述FPGA模块和所述DSP模块的任务处理结果进行整合以获得最终任务处理结果。
在本发明的一个实施例中,对待执行任务进行任务分类生成硬件任务和软件任务,包括:
将任务队列中的待执行任务分为硬件任务和软件任务;
为所述硬件任务在所述FPGA模块中划分重构区域,为所述软件任务在所述DSP模块中分配处理内核;
将所述硬件任务发送至所述FPGA模块对应的重构区域中,将所述软件任务发送至所述DSP模块对应的处理内核中,其中,所述硬件任务中的任务可执行文件为.bit文件,所述软件任务中的任务可执行文件为.out文件。
在本发明的一个实施例中,对待执行任务进行任务分类生成硬件任务和软件任务,还包括:
为接收到的任务设置任务标志,将所述任务标志按先后顺序插入任务队列中的队尾,并设定从所述任务队列的队首至队尾依次执行任务,当任务队列的首位任务结束时,从任务队列中删除已结束任务的任务标志。
在本发明的一个实施例中,所述基于异构可重构的动态资源调度方法还包括:
采用循环中断的方式对所述FPGA模块和所述DSP模块的任务执行状态进行监控。
在本发明的一个实施例中,对所述FPGA模块和所述DSP模块的任务执行状态进行监控,包括:
查询所述FPGA模块中硬件任务的执行状态,若为等待状态,则检查是否收到任务能够继续执行的信息,若收到,则发出任务继续执行标志至所述FPGA模块以控制所述FPGA模块继续执行硬件任务,否则所述FPGA模块继续处于等待状态;若为执行状态,则所述FPGA模块继续执行当前操作;
查询所述DSP模块各内核任务的执行状态和资源使用情况,若查询到存在内核处于空闲状态,则为空闲内核分配后续计算任务,若查询到存在内核资源占用超出阈值,则减少为当前内核分配后续计算任务;
查询所有任务是否执行完成,若是,则获取所述FPGA模块和所述DSP模块的任务处理结果,若否,则继续对所述FPGA模块和所述DSP模块的任务执行状态进行监控。
本发明的另一方面提供了一种基于异构可重构的动态资源调度系统,用于执行上述实施例中任一项所述的动态资源调度方法,所述系统包括相互连接的ARM模块、FPGA模块和DSP模块,其中,
所述ARM模块用于将待执行任务分为硬件任务和软件任务,将所述硬件任务传输装载至所述FPGA模块中,将所述软件任务的全部指令传输装载至所述DSP模块,并对所述FPGA模块和所述DSP模块的当前工作状态、资源使用情况及资源调度进行监控;
所述FPGA模块用于在所述ARM模块的控制下进行硬件任务的重构和计算,所述FPGA模块上连接有外设的第一时钟单元和第一存储单元,其中,所述第一时钟单元用于产生所述FPGA模块执行任务所需的系统时钟和通信块时钟,所述第一存储单元用于存储所述FPGA模块的默认配置数据以及任务执行过程中产生或需要使用的大量临时数据;
所述DSP模块用于在所述ARM模块的控制下进行所述软件任务的处理,所述DSP模块上连接有外设的第二时钟单元和第二存储单元,其中,所述第二时钟单元用于为所述DSP模块提供内核时钟,所述第二存储单元用于存储所述DSP模块任务执行过程中产生或需要使用的大量临时数据。
在本发明的一个实施例中,所述ARM模块上连接有外设的第三时钟单元和第三存储单元,其中,
所述第三时钟单元用于为所述ARM模块提供系统时钟,所述第三存储单元用于固化所述异构可重构启动时需要的初始化程序。
在本发明的一个实施例中,所述FPGA模块与所述DSP模块之间通过SRIO通信线路进行连接,所述ARM模块通过GPIO接口与所述FPGA模块和所述DSP模块进行连接。
在本发明的一个实施例中,所述FPGA模块采用JFM7VX690T芯片,所述DSP模块采用FT-M6678芯片。
与现有技术相比,本发明的有益效果在于:
1、本发明基于异构可重构异构可重构的动态资源调度方法基于FPGA、DSP和ARM架构下提出的一种动态资源调度框架,这种异构架构兼具了硬件设计和软件计算双方的优势,通过主控ARM能够方便地管理不同架构下的资源,实现任务的交替,系统实用性强,且具有普遍适用性。
2、本发明的动态资源调度方法简化了任务发布者使用异构可重构进行任务处理的操作。任务发布者仅需要将具体任务输入,调度算法即可自动掌管任务进程,优化任务处理流程,提升资源利用率。
3、本发明的动态资源调度方法能够实时监控系统中各运算单元的运行情况和资源利用率,并依据调度算法自主的进行调度,不需要人为的操作。调度算法实时监控任务进程,充分发挥多核架构和异构架构的并行优势,使整个异构可重构系统的计算能力和计算速度提升。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的一种基于异构可重构的动态资源调度方法的流程图;
图2是本发明实施例提供的异构可重构系统的结构框图;
图3是本发明实施例提供的一种动态资源调度方法的具体流程示意图;
图4是本发明实施例的动态资源调度技术方法的监控过程示意图;
图5是本发明实施例提供的一种动态资源调度系统的结构示意图。
具体实施方式
为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种基于异构可重构的动态资源调度方法及系统进行详细说明。
有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
实施例一
请参见图1,图1是本发明实施例提供的一种基于异构可重构的动态资源调度方法的流程图。该动态资源调度方法包括:
S1:对待执行任务进行任务分类生成硬件任务和软件任务。
具体地,步骤S1包括:
S11:将任务队列中的待执行任务分为硬件任务和软件任务;
S12:为所述硬件任务在所述FPGA模块中划分重构区域,为所述软件任务在所述DSP模块中分配处理内核;
S13:将所述硬件任务发送至所述FPGA模块对应的重构区域中,将所述软件任务发送至所述DSP模块对应的处理内核中,其中,所述硬件任务中的任务可执行文件为.bit文件,所述软件任务中的任务可执行文件为.out文件。
进一步地,步骤S1还包括:为接收到的任务设置任务标志,将所述任务标志按先后顺序插入任务队列中的队尾,并设定从所述任务队列的队首至队尾依次执行任务,当任务队列的首位任务结束时,从任务队列中删除已结束任务的任务标志。
具体地,请参见图2,本实施例采用的异构可重构系统由FPGA模块、DSP模块和ARM模块构成,ARM模块中设置有调度算法,用于进行任务分配和资源调度,FPGA模块和DSP模块作为主要的计算模块,执行调度算法分配的任务。
请参见图3,图3是本发明实施例动态资源调度方法的调度算法流程图。本实施例的动态资源调度方法主要分为任务预处理、任务调度和任务装载三个部分组成。在ARM模块中设置有一个任务队列,用来按先后顺序存放任务标志。每当一个任务执行完,该任务的标志就会从任务标志队列中移除,而每当一个新任务到来时,新任务标志插入到任务队列的队尾,实现先到先执行的任务调度模式。
任务预处理是将任务按任务类别进行分类以及任务执行前的处理。一个完整的任务通常由硬件任务和软件任务共同构成,任务的分类在ARM模块中进行,硬件任务在FPGA模块上执行,软件任务在DSP模块或ARM模块上执行,在FPGA模块中的硬件任务的可执行文件为.bit文件,在DSP模块中的软件任务的可执行文件为.out文件。在ARM模块中可以通过对可执行文件类型的识别来控制任务文件具体在FPGA模块或DSP模块上执行。
S2:将所述硬件任务传输并装载至FPGA模块中,将所述软件任务的全部指令传输装载至DSP模块。
在上一个任务执行完毕后,将所述硬件任务传输并装载至FPGA模块中,将所述软件任务的全部指令传输装载至DSP模块。具体地,在对硬件任务的任务调度中,ARM模块依据调度算法,在任务预处理完成后直接装载任务,在前一个任务结束后开始执行。由于整个系统处于上电运行状态,因此硬件任务需要采用动态重构的方式在FPGA模块上进行完全重构,将重构后新的硬件任务装载到FPGA模块上。
在软件任务的任务调度中,由ARM模块控制整个软件任务的执行流程,为DSP模块的每个内核分配具体的任务。ARM模块将软件任务的全部指令装载到DSP模块的共享内存中后,由ARM模块依据调度算法指定某个时刻某个内核读取哪一条指令,做到ARM模块完全控制每个核的计算。所述调度算法在为每个内核分配任务时,按照尽量平均的原则进行分配,避免出现某一个内核仍有大量任务需要计算,而其他内核已经计算完成的情况,从而实现较高的并行度,发挥出多核计算的速度优势。
S3:控制所述FPGA模块和所述DSP模块分别对所述硬件任务和所述软件任务进行处理。
进一步地,在FPGA模块和DSP模块进行任务处理的同时,所述基于异构可重构的动态资源调度方法还包括:对FPGA模块和DSP模块的任务执行状态进行监控。
请参见图4,在具体监控过程中,首先查询所述FPGA模块中硬件任务的执行状态,若为等待状态,则检查是否收到任务能够继续执行的信息,若收到,则发出任务继续执行标志至所述FPGA模块以控制所述FPGA模块继续执行硬件任务,否则所述FPGA模块继续处于等待状态;若为执行状态,则所述FPGA模块继续执行当前操作。
具体地,ARM模块中的调度算法实时对FPGA模块进行监控,如果硬件任务在执行过程中由于时序要求或是需要软件任务的中间计算结果而需要进行等待,则调度算法在检测到硬件任务能够继续执行的信息后,给FPGA模块发送一个执行标志,控制FPGA模块继续执行任务。若硬件任务与软件任务完全并行,则FPGA模块可直接独立执行完全部的硬件任务。
随后,查询所述DSP模块各内核任务的执行状态和资源使用情况,若查询到存在内核处于空闲状态,则为空闲内核分配后续计算任务,若查询到存在内核资源占用超出阈值,则减少为当前内核分配后续计算任务;查询所有任务是否执行完成,若是,则获取所述FPGA模块和所述DSP模块的任务处理结果,若否,继续对所述FPGA模块和所述DSP模块的任务执行状态进行监控。具体的,调度算法在DSP模块进行计算任务的同时,实时监控DSP模块的各个内核的资源使用情况和运行情况。当出现某一个内核资源占用较多时,调度算法将该内核的部分任务调离给其他资源使用较少的核去处理。
更进一步地,在对于硬件任务的监控过程,由于FPGA模块是并行器件,查询操作与FPGA的任务执行完全并行,如图4所示,每经过一个循环,ARM模块都会对FPGA模块的状态进行一次查询。对于在执行中不需要FPGA模块与DSP模块进行数据交互的任务,由于查询操作与FPGA模块的任务执行并行,不会中断FPGA模块的正常执行,FPGA模块就会一直处于执行状态直至FPGA模块承担的任务执行完毕。
对于软件任务的监控过程,在软件任务未划分完成之前,每隔预定时间周期中断软件任务划分过程并跳转至中断服务程序中,对所述DSP模块的当前工作状态、资源使用情况及资源调度进行监控,当中断服务程序中的内容执行完后返回继续进行软件任务划分;在软件任务划分完成并分配之后,继续以循环中断的方式对所述FPGA模块和所述DSP模块的任务执行状态进行监控。
S4:对所述FPGA模块和所述DSP模块的任务处理结果进行整合以获得最终任务处理结果。
最后,利用ARM模块整合FPGA模块和DSP模块的计算结果,获得最终结果输出,完成该任务的处理流程,并继续进行下一个任务的处理。
本实施例基于异构可重构异构可重构的动态资源调度方法基于FPGA、DSP和ARM架构下提出的一种动态资源调度框架,这种异构架构兼具了硬件设计和软件计算双方的优势,通过主控ARM能够方便地管理不同架构下的资源,实现任务的交替,系统实用性强,且具有普遍适用性。该动态资源调度方法简化了任务发布者使用异构可重构进行任务处理的操作。任务发布者仅需要将具体任务输入,调度算法即可自动掌管任务进程,优化任务处理流程,提升资源利用率。
实施例二
在实施例一得基础上,本实施例提出了一种基于异构可重构的动态资源调度系统,用于执行实施例一中所述的动态资源调度方法,请一并参见图2和图5,所述动态资源调度系统包括相互连接的ARM模块1、FPGA模块2和DSP模块3,其中,ARM模块1用于将待执行任务分为硬件任务和软件任务,将硬件任务传输装载至FPGA模块2中,将软件任务的全部指令传输装载至DSP模块3,并对FPGA模块2和DSP模块3的当前工作状态、资源使用情况及资源调度进行监控;FPGA模块2用于在ARM模块1的控制下进行硬件任务的重构和计算,FPGA模块2上连接有外设的第一时钟单元和第一存储单元,其中,第一时钟单元用于产生FPGA模块2执行任务所需的系统时钟和通信块时钟,第一存储单元用于存储FPGA模块2的默认配置数据以及任务执行过程中产生或需要使用的大量临时数据;DSP模块3用于在ARM模块1的控制下进行软件任务的处理,DSP模块3上连接有外设的第二时钟单元和第二存储单元,其中,第二时钟单元用于为DSP模块3提供内核时钟,第二存储单元用于存储DSP模块3任务执行过程中产生或需要使用的大量临时数据。
进一步地,ARM模块1上连接有外设的第三时钟单元和第三存储单元,其中,所述第三时钟单元用于为所述ARM模块1提供系统时钟,所述第三存储单元用于固化所述异构可重构启动时需要的初始化程序。
具体地,本实施例的动态资源调度系统采用FPGA、DSP和ARM架构构成。FPGA模块2采用JFM7VX690T芯片,JFM7VX690T是一种高性能FPGA,具有动态可重构特性,内部可编程逻辑资源丰富。DSP模块3采用FT-M6678,是一种8核高性能DSP,单核工作频率高且能多核并行工作,I/O资源和接口资源丰富,能快速进行复杂的计算任务。
在该动态资源调度系统中,FPGA模块2负责硬件任务的重构和计算,由FPGA模块2上连接有外设的第一时钟单元和第一存储单元,外部第一时钟单元供给系统时钟和高速通信BANK时钟,所述第一存储单元包括外挂的64位DDR3和SPI协议的FLASH,其中,DDR3(动态随机存储器)用于存储硬件任务执行过程中产生或需要使用的大量临时数据,FLASH用于固化存储一些FPGA模块2的默认配置数据,在FPGA模块上电时直接进行配置。
DSP模块3主要负责软件任务中信号处理方面的软件任务,连接有外设的第二时钟单元和第二存储单元,其中,外部第二时钟单元用于提供内核时钟、三大外设部件(SRIO、PCIE、GMAC)时钟、DDR时钟和高速接口参考时钟,所述第二存储单元包括外挂的64位DDR3和SPI协议FLASH,作为DSP模块3的外部存储.
进一步地,FPGA模块2和DSP模块3之间通过4路SRIO通信线路通信,最高可达到125M时钟的通信速度,能够实现FPGA模块2与DSP模块3之间低延时的并行处理。
本实施例的ARM模块1主要进行上电控制、运行调度算法和任务流程控制,通过GPIO接口与FPGA模块2和DSP模块3进行通信。ARM模块1是整个基于异构可重构的动态资源调度系统的主控,将依据调度算法对任务进行合理分配和实时控制,从而实现高并行性和高资源利用率。ARM模块1上连接有外设的第三时钟单元和第三存储单元,所述第三存储单元包括外挂64位DDR3作为外部大容量高速存储,以及外挂SPI协议FLASH用于固化异构系统启动时需要的一些初始化程序。
具体地,每当有新任务到来时,ARM模块1作为主控部分,为新任务设置任务标志并将标志放置在任务队列队尾。在队首任务正在执行的同时,ARM模块1同时开始做后续任务的预处理工作,如图3所示。ARM模块1首先对任务进行硬件任务和软件任务的分类,并将硬件任务装载到FPGA模块2外接的FLASH中,在前一个任务执行完成后,FPGA模块能够从FLASH中读取后一个任务中包含的重构数据和任务信息,快速切换到下一个任务的执行。随后,ARM模块1对软件任务进行划分,将任务相对平均地划分给DSP模块3的每个内核。由于此时前一个任务还在执行中,而ARM模块1必须实时对系统进行监控,因此ARM模块1对系统的监控采用循环中断的方式进行,即ARM模块1在软件任务未划分完成前,在其中运行的主线程为软件任务划分,但每隔一段时间周期,ARM模块1会进行一次中断,跳转到中断服务程序中去。中断服务程序中包含了对整个系统的监控过程,包括各执行单元的工作状态查询、资源使用情况监测以及资源调度。当中断服务程序中的内容执行完,ARM模块1会回到主线程的断点处,继续进行软件任务划分。直到软件任务划分完成,整个监控过程仍以中断的方式进行。当任务队列的首位任务结束时,任务队列会删除结束任务的任务标志,开始执行下一个任务,按照已经预处理过的任务调度方式先后控制FPGA模块2加载硬件任务以及为DSP模块3装载软件任务,接着由ARM模块1中调度算法调度任务开始执行并实时对整个系统进行监控,进行动态调度。
请参见图4,图4为本发明实施例提供的具体调度算法流程图。当新任务正式开始执行后,由ARM模块1中的调度算法开始掌管整个任务的执行流程。具体地,首先,FPGA模块2和DSP模块3各自执行自己需要执行的任务,在任务执行到某一阶段时,有一些任务可能会需要有FPGA模块2与DSP模块3之间进行数据通信,对于这类任务存在任务执行的时序要求,即在任务执行的某个阶段会有执行顺序的要求,也就存在等待状态,需要由调度算法给出任务继续执行的标志。
具体地,ARM模块1首先查询FPGA模块2中硬件任务的执行状态,若查询结果为等待状态,则检查是否收到任务能够继续执行的信息(此信息来自DSP模块3,说明FPGA模块2与DSP模块3之间的数据通信已经完成),若收到,则ARM模块1发出任务继续执行标志给FPGA模块2,否则不发出任务继续执行标志给FPGA模块2,FPGA模块2继续处于等待状态;若查询结果为FPGA模块2正处于执行状态,则跳过上述查询结果为等待状态的后续操作,使FPGA模块2继续处于执行状态。
由于FPGA模块2是并行器件,查询操作与FPGA的任务执行完全并行,如图4所示,每经过一个循环,ARM模块1都会对FPGA模块2的状态进行一次查询。对于在执行中不需要FPGA模块2与DSP模块3进行数据交互的任务,由于查询操作与FPGA模块2的任务执行并行,不会中断FPGA模块的正常执行,FPGA模块就会一直处于执行状态直至FPGA模块承担的任务执行完毕。
随后,ARM模块1查询DSP模块3中各内核任务的执行状态和内存等资源使用情况,若查询到存在内核处于空闲状态,则为该内核分配后续的计算任务,即将该内核的程序指针指向分配的任务所包含的指令的起始位置;若查询到存在某一内核资源占用过高,如私有内存占用过高,则减少为该内核分配的后续计算任务,将减少的这部分计算任务分配给资源使用处于较低水平的内核去计算,从而达到解决各内核在任务执行过程中的资源占用不均衡的问题的目的。ARM模块1利用调度算法循环执行上述监控步骤,保证各内核高度并行执行的同时平衡各核的资源使用率,直到控制系统执行完该任务。最后,本发明实施例的ARM模块1整合FPGA模块2和DSP模块3的计算结果,获得最终结果输出,完成该任务的处理流程,并继续进行下一个任务的处理。
本实施例的动态资源调度系统能够实时监控系统中各运算单元的运行情况和资源利用率,并依据调度算法自主的进行调度,不需要人为的操作。调度算法实时监控任务进程,充分发挥多核架构和异构架构的并行优势,使整个异构可重构系统的计算能力和计算速度提升。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (7)
1.一种基于异构可重构的动态资源调度方法,其特征在于,包括:
对待执行任务进行任务分类生成硬件任务和软件任务;
将所述硬件任务传输并装载至FPGA模块中,将所述软件任务的全部指令传输装载至DSP模块;
控制所述FPGA模块和所述DSP模块分别对所述硬件任务和所述软件任务进行处理;
对所述FPGA模块和所述DSP模块的任务处理结果进行整合以获得最终任务处理结果,
所述动态资源调度方法还包括:对所述FPGA模块和所述DSP模块的任务执行状态进行监控,具体包括:
查询所述FPGA模块中硬件任务的执行状态,若为等待状态,则检查是否收到任务能够继续执行的信息,若收到,则发出任务继续执行标志至所述FPGA模块以控制所述FPGA模块继续执行硬件任务,否则所述FPGA模块继续处于等待状态;若为执行状态,则所述FPGA模块继续执行当前操作;
查询所述DSP模块各内核任务的执行状态和资源使用情况,若查询到存在内核处于空闲状态,则为空闲内核分配后续计算任务,若查询到存在内核资源占用超出阈值,则减少为当前内核分配后续计算任务;
查询所有任务是否执行完成,若是,则获取所述FPGA模块和所述DSP模块的任务处理结果,若否,则继续对所述FPGA模块和所述DSP模块的任务执行状态进行监控。
2.根据权利要求1所述的基于异构可重构的动态资源调度方法,其特征在于,对待执行任务进行任务分类生成硬件任务和软件任务,包括:
将任务队列中的待执行任务分为硬件任务和软件任务;
为所述硬件任务在所述FPGA模块中划分重构区域,为所述软件任务在所述DSP模块中分配处理内核;
将所述硬件任务发送至所述FPGA模块对应的重构区域中,将所述软件任务发送至所述DSP模块对应的处理内核中,其中,所述硬件任务中的任务可执行文件为.bit文件,所述软件任务中的任务可执行文件为.out文件。
3.根据权利要求2所述的基于异构可重构的动态资源调度方法,其特征在于,对待执行任务进行任务分类生成硬件任务和软件任务,还包括:
为接收到的任务设置任务标志,将所述任务标志按先后顺序插入任务队列中的队尾,并设定从所述任务队列的队首至队尾依次执行任务,当任务队列的首位任务结束时,从任务队列中删除已结束任务的任务标志。
4.一种基于异构可重构的动态资源调度系统,其特征在于,用于执行权利要求1至3中任一项所述的动态资源调度方法,所述系统包括相互连接的ARM模块、FPGA模块和DSP模块,其中,
所述ARM模块用于将待执行任务分为硬件任务和软件任务,将所述硬件任务传输装载至所述FPGA模块中,将所述软件任务的全部指令传输装载至所述DSP模块,并对所述FPGA模块和所述DSP模块的当前工作状态、资源使用情况及资源调度进行监控;
所述FPGA模块用于在所述ARM模块的控制下进行硬件任务的重构和计算,所述FPGA模块上连接有外设的第一时钟单元和第一存储单元,其中,所述第一时钟单元用于产生所述FPGA模块执行任务所需的系统时钟和通信块时钟,所述第一存储单元用于存储所述FPGA模块的默认配置数据以及任务执行过程中产生或需要使用的临时数据;
所述DSP模块用于在所述ARM模块的控制下进行所述软件任务的处理,所述DSP模块上连接有外设的第二时钟单元和第二存储单元,其中,所述第二时钟单元用于为所述DSP模块提供内核时钟,所述第二存储单元用于存储所述DSP模块任务执行过程中产生或需要使用的临时数据。
5.根据权利要求4所述的基于异构可重构的动态资源调度系统,其特征在于,所述ARM模块上连接有外设的第三时钟单元和第三存储单元,其中,
所述第三时钟单元用于为所述ARM模块提供系统时钟,所述第三存储单元用于固化所述异构可重构启动时需要的初始化程序。
6.根据权利要求4所述的基于异构可重构的动态资源调度系统,其特征在于,所述FPGA模块与所述DSP模块之间通过SRIO通信线路进行连接,所述ARM模块通过GPIO接口与所述FPGA模块和所述DSP模块进行连接。
7.根据权利要求4所述的基于异构可重构的动态资源调度系统,其特征在于,所述FPGA模块采用JFM7VX690T芯片,所述DSP模块采用FT-M6678芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210487789.2A CN115033356B (zh) | 2022-05-06 | 2022-05-06 | 一种基于异构可重构的动态资源调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210487789.2A CN115033356B (zh) | 2022-05-06 | 2022-05-06 | 一种基于异构可重构的动态资源调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115033356A CN115033356A (zh) | 2022-09-09 |
CN115033356B true CN115033356B (zh) | 2024-06-04 |
Family
ID=83119747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210487789.2A Active CN115033356B (zh) | 2022-05-06 | 2022-05-06 | 一种基于异构可重构的动态资源调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033356B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225666B (zh) * | 2023-05-06 | 2023-08-15 | 中国第一汽车股份有限公司 | 一种操作系统任务调度方法、装置、电子设备及存储介质 |
CN116719006B (zh) * | 2023-08-11 | 2023-10-20 | 西安电子科技大学 | 基于多核异构架构的星载无源定位方法及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021042A (zh) * | 2014-06-18 | 2014-09-03 | 哈尔滨工业大学 | 基于arm、dsp及fpga的异构多核处理器及任务调度方法 |
CN105550074A (zh) * | 2015-12-08 | 2016-05-04 | 中国计量学院 | 航天计算机 |
CN106843918A (zh) * | 2016-11-17 | 2017-06-13 | 北京京东尚科信息技术有限公司 | 对包括arm芯片、dsp芯片和fpga芯片的嵌入式系统进行程序更新的方法 |
CN106951329A (zh) * | 2017-03-29 | 2017-07-14 | 武汉大学 | 一种基于爬山淘汰粒子群算法的大规模软硬件划分方法 |
CN113010264A (zh) * | 2021-04-16 | 2021-06-22 | 西北工业大学 | 一种基于fpga+dsp的软件化雷达在线可重构平台及实现方法 |
CN113886048A (zh) * | 2021-10-09 | 2022-01-04 | 中科航宇(广州)科技有限公司 | 一种任务处理方法、装置、电子设备、卫星及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929177B2 (en) * | 2016-10-28 | 2021-02-23 | Synopsys, Inc. | Managing resources for multiple trial distributed processing tasks |
-
2022
- 2022-05-06 CN CN202210487789.2A patent/CN115033356B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021042A (zh) * | 2014-06-18 | 2014-09-03 | 哈尔滨工业大学 | 基于arm、dsp及fpga的异构多核处理器及任务调度方法 |
CN105550074A (zh) * | 2015-12-08 | 2016-05-04 | 中国计量学院 | 航天计算机 |
CN106843918A (zh) * | 2016-11-17 | 2017-06-13 | 北京京东尚科信息技术有限公司 | 对包括arm芯片、dsp芯片和fpga芯片的嵌入式系统进行程序更新的方法 |
CN106951329A (zh) * | 2017-03-29 | 2017-07-14 | 武汉大学 | 一种基于爬山淘汰粒子群算法的大规模软硬件划分方法 |
CN113010264A (zh) * | 2021-04-16 | 2021-06-22 | 西北工业大学 | 一种基于fpga+dsp的软件化雷达在线可重构平台及实现方法 |
CN113886048A (zh) * | 2021-10-09 | 2022-01-04 | 中科航宇(广州)科技有限公司 | 一种任务处理方法、装置、电子设备、卫星及存储介质 |
Non-Patent Citations (3)
Title |
---|
"A Modeling and Computational Analysis Method for Multichip DDR Microsystem";Bo Wen;《IEEE Journal on Miniaturization for Air and Space Systems》;20230711;第4卷(第4期);第336-344页 * |
"OpenCL Implementation of FPGA-Based Signal Generation and Measurement";Iman Firmansyah;《IEEE Access》;20190411;第7卷;第48849-48859页 * |
"十六通道数据采集器的设计与实现";史恒吉;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180615(第06期);第I140-599页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115033356A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115033356B (zh) | 一种基于异构可重构的动态资源调度方法及系统 | |
CN112465129B (zh) | 片内异构人工智能处理器 | |
US20140089699A1 (en) | Power management system and method for a processor | |
CN102023844B (zh) | 并行处理器及其线程处理方法 | |
EP2824569A1 (en) | Method and device for scheduling multiprocessor of system on chip (soc) | |
US11687242B1 (en) | FPGA board memory data reading method and apparatus, and medium | |
JP2013506179A (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
EP3436944B1 (en) | Fast transfer of workload between multiple processors | |
CN110297661B (zh) | 基于amp构架dsp操作系统的并行计算方法、系统及介质 | |
CN110300959B (zh) | 用于动态运行时任务管理的方法、系统、设备、装置和介质 | |
CN111190735B (zh) | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 | |
CN103744716A (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
EP4361808A1 (en) | Resource scheduling method and device and computing node | |
CN111191777A (zh) | 一种神经网络处理器及其控制方法 | |
CN112068960A (zh) | 一种cpu资源分配方法、装置、存储介质及设备 | |
CN110399034A (zh) | 一种SoC系统的功耗优化方法及终端 | |
CN113946445A (zh) | 一种基于asic的多线程模块及多线程控制方法 | |
CN115981833A (zh) | 一种任务处理方法及装置 | |
JP2014191655A (ja) | マルチプロセッサ、電子制御装置、プログラム | |
CN111459647A (zh) | 基于嵌入式操作系统的dsp多核处理器并行运算方法及装置 | |
CN110716805A (zh) | 图形处理器的任务分配方法、装置、电子设备及存储介质 | |
CN102945214A (zh) | 基于io延迟时间分布优化中断处理任务的方法 | |
CN111125070A (zh) | 一种数据交换方法及平台 | |
CN102929819A (zh) | 用于处理计算机系统中的存储设备的中断请求的方法 | |
CN116594955B (zh) | 一种基于dsp芯片的动态全局可重构方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |