CN104615488B - 异构多核可重构计算平台上任务调度的方法和装置 - Google Patents

异构多核可重构计算平台上任务调度的方法和装置 Download PDF

Info

Publication number
CN104615488B
CN104615488B CN201510023646.6A CN201510023646A CN104615488B CN 104615488 B CN104615488 B CN 104615488B CN 201510023646 A CN201510023646 A CN 201510023646A CN 104615488 B CN104615488 B CN 104615488B
Authority
CN
China
Prior art keywords
target
task
hardware task
resource bag
restructural resource
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
Application number
CN201510023646.6A
Other languages
English (en)
Other versions
CN104615488A (zh
Inventor
王超
李曦
周学海
张军能
陈鹏
郭琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Huawei Technologies Co Ltd
Original Assignee
University of Science and Technology of China USTC
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC, Huawei Technologies Co Ltd filed Critical University of Science and Technology of China USTC
Priority to CN201510023646.6A priority Critical patent/CN104615488B/zh
Publication of CN104615488A publication Critical patent/CN104615488A/zh
Priority to EP15877614.6A priority patent/EP3239852B1/en
Priority to PCT/CN2015/088955 priority patent/WO2016112701A1/zh
Priority to US15/650,608 priority patent/US10552222B2/en
Application granted granted Critical
Publication of CN104615488B publication Critical patent/CN104615488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种异构多核可重构计算平台上任务调度的方法和装置。该方法包括:在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中;根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核,该优先级表示硬件任务的执行顺序;利用该目标IP核,执行该目标硬件任务队列中的硬件任务。根据本发明实施例,能够确定更加合理的资源重构时机以及采用更合适的可重构资源包进行资源重构,从而能够在任务调度的过程中减少重构开销,提高可重构资源的利用率。

Description

异构多核可重构计算平台上任务调度的方法和装置
技术领域
本发明涉及计算机领域,并且更具体地,涉及异构多核可重构计算平台上任务调度的方法和装置。
背景技术
计算任务现在具有两种表现形式:在通用处理器上,任务通常以软件代码的形式呈现,称为软件任务。软件任务具有灵活性好,易于修改与调试的优点,缺点是计算速度不理想。而在专用集成电路上,任务通常以专用的硬件电路的形式呈现,称为硬件任务。硬件任务具有速度快的优点,但缺点是不够灵活,也不易于调试。异构多核可重构计算平台是权衡传统的通用处理器与专用的集成电路的有效手段,它既可以使用可重构逻辑器件来获得很高的加速比,又可以使用可重构技术或者添加通用处理器核使得其具有很好的灵活性。异构多核可重构计算平台消除了专用集成电路因为前期设计制造的复杂过程带来的高代价和不可重用等缺陷。
异构多核可重构计算平台根据其重构特性可以分为静态重构平台和动态重构平台。静态重构是指目标系统的逻辑功能静态重载,即在系统空闲期间通过各种方式进行在线编程。动态重构是指在系统实时运行当中对可重构逻辑器件的逻辑功能实时地进行动态配置,能够只对其内部需要修改的逻辑单元进行重新配置,而不影响没有被修改的逻辑单元的正常工作。相对于静态重构,动态重构缩短了重构的时间,减少了重构系统的开销,提高了系统运行的效率。因此,未来的异构多核平台支持动态重构是一种必然的趋势。
异构多核可重构平台上的硬件任务通常是并行执行的。在系统运行的某一时刻,系统中存在多个正在运行的硬件任务以及多个处于就绪状态的硬件任务。在进行任务调度时,除了需要考虑硬件任务本身的执行时间和调度开销,还需要考虑重构开销。某一时刻,当系统无法完成硬件任务所请求的功能(例如该功能可以是进行逻辑运算或视频处理等)时,需要进行重构,将系统中空闲的可重构逻辑资源重构为硬件任务所请求的功能。重构开销通常是不可忽略的,硬件任务的调度需要在保证系统整体性能的同时,尽可能减少重构次数,从而达到减少重构开销的目的。
发明内容
有鉴于此,本发明实施例提供了一种异构多核可重构计算平台上任务调度的方法和装置,能够在任务调度的过程中,减少重构开销,提高可重构资源的利用率。
第一方面,提供了一种异构多核可重构计算平台上任务调度的方法,该异构多核可重构计算平台包括多个可重构资源包,该方法包括:在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中;根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核,该优先级表示硬件任务的执行顺序;利用该目标IP核,执行该目标硬件任务队列中的硬件任务。
结合第一方面,在第一方面的第一种可能的实现方式中,该根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核,包括:在该待执行硬件任务的优先级为目标优先级的情况下,根据该多个可重构资源包的使用状况,确定存在用于布局该目标IP核的空闲可重构资源包,其中,该目标优先级对应的硬件任务属于第一硬件任务集,该第一硬件任务集中的每个硬件任务的优先级大于第二硬件任务集中的每个硬件任务的优先级;
将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该方法还包括:根据该目标硬件任务队列的长度和能够执行该待执行硬件任务的IP核的数目,确定该待执行硬件任务的优先级。
结合第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核,包括:确定目标可重构资源包,该目标可重构资源包为该空闲可重构资源包中的任意一个可重构资源包;将该目标可重构资源包重构为该目标IP核。
结合第一方面的第第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:在该待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数达到预设阈值的情况下,重新确定该待执行硬件任务的优先级;
相应的,该将该目标可重构资源包重构为该目标IP核,包括:在该重新确定的该待执行硬件任务的优先级为该目标优先级的情况下,将该目标可重构资源包重构为该目标IP核。
结合第一方面的第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该将该目标可重构资源包重构为该目标IP核,包括:根据配置文件集合中的目标配置文件将该目标可重构资源包重构为该目标IP核,其中该目标配置文件承载该多个可重构资源包中的目标可重构资源包与目标IP核之间的对应关系。
结合第一方面,第一方面的第一种至第五种可能的实现方式中的任一可能的实现方式,在第一方面的第六种可能的实现方式中,该利用该目标IP核,执行该目标硬件任务队列中的硬件任务,包括:利用该目标IP核,按照先到先服务的策略执行该目标硬件任务队列中的硬件任务。
第二方面提供了一种异构多核可重构计算平台上任务调度的装置,该异构多核可重构计算平台包括多个可重构资源包,该装置包括:任务调度模块,用于在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中;资源管理模块,用于根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核,该优先级表示硬件任务的执行顺序;任务执行模块,用于利用该资源管理模块重构完成的该目标IP核,执行该目标硬件任务队列中的硬件任务。
结合第二方面,在第二方面的第一种可能的实现方式中,在根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核的方面,该资源管理模块具体用于:在该待执行硬件任务的优先级为目标优先级的情况下,根据该多个可重构资源包的使用状况,确定存在用于布局该目标IP核的空闲的可重构资源包,其中,该目标优先级对应的硬件任务属于第一硬件任务集,该第一硬件任务集中的每个硬件任务的优先级大于第二硬件任务集中的每个硬件任务的优先级;
以及将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该资源管理模块还用于:根据该目标硬件任务队列的长度和能够执行该待执行硬件任务的IP核的数目,确定该待执行硬件任务的优先级。
结合第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,在将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核的方面,该资源管理模块具体用于:确定目标可重构资源包,该目标可重构资源包为该空闲可重构资源包中的任意一个可重构资源包;
以及将该目标可重构资源包重构为该目标IP核。
结合第二方面第三种可能的实现方式,在第二方面的第四种可能的实现方式中,该资源管理模块还用于:在该待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数达到预设阈值的情况下,重新确定该待执行硬件任务的优先级;
相应的,在将该目标可重构资源包重构为该目标IP核的方面,该资源管理模块具体用于:在重新确定的该待执行硬件任务的优先级为该目标优先级的情况下,将该目标可重构资源包重构为该目标IP核。
结合第二方面的第三种或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,在将该目标可重构资源包重构为该目标IP核的方面,该资源管理模块具体用于:根据配置文件集合中的目标配置文件将该目标可重构资源包重构为该目标IP核,其中该目标配置文件承载该多个可重构资源包中的目标可重构资源包与目标IP核之间的对应关系。
结合第二方面,第二方面的第一种至第五种可能的实现方式中的任一可能的实现方式,在第二方面的第六种可能的实现方式中,在利用该目标IP核执行该目标硬件任务队列中的硬件任务的方面,该任务执行模块具体用于:利用该资源管理模块重构完成的该目标IP核,按照先到先服务的策略执行该目标硬件任务队列中的硬件任务。
与现有的技术相比,本发明实施例具有如下有益效果:在本发明实施例提供的异构多核可重构计算平台上任务调度的方法和装置中,计算平台在确定待执行硬件任务的状态为就绪状态时,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,根据该待执行硬件任务的优先级和该异构多核可重构计算平台包括的多个可重构资源包使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;以及利用该目标IP核执行该目标硬件任务队列中的硬件任务。计算平台根据待执行任务的优先级和可重构资源包的使用状况能够确定更加合理的资源重构时机以及采用更合适的可重构资源包进行资源重构,从而在任务调度的过程中能够减少重构开销,提高可重构资源的利用率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的异构多核可重构计算平台上任务调度的方法的示意性流程图;
图2是根据本发明实施例的根据待执行硬件任务的优先级和多个可重构资源包的使用状况,将多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核的示意性流程图;
图3是根据本发明实施例的异构多核可重构计算平台上的硬件任务的状态转换的示意图;
图4是根据本发明实施例的将空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核的方法的示意性流程图;
图5是根据本发明实施例的将目标可重构资源包重构为目标IP核的方法的示意性流程图;
图6是根据本发明实施例的可重构资源包与功能之间的映射关系的示意图;
图7是根据本发明实施例的异构多核可重构计算平台上资源重构的方法在一种具体情况下的示意性流程图;
图8是根据本发明实施例的异构多核可重构计算平台上计算是否需要重构和在需要重构时进行资源重构的过程的示意性流程图;
图9是根据本发明实施例的异构多核可重构计算平台上任务调度的装置的示意性框图;
图10示出了根据本发明另一实施例的异构多核可重构计算平台上任务调度的装置的示意性框图;
图11示出了根据本发明再一实施例的异构多核可重构计算平台上的任务调度的装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,本发明实施例中的异构多核可重构计算平台指单个物理芯片中同时集成通用处理器(General Purpose Processor,简称为“GPP”),以及现场可编程门阵列(FieldProgrammable Gate Arrays,简称为“FPGA”)的计算系统。具体而言,该多核特征,具体体现在于,在单芯片上集成了计算模块的数量,包括但不限于多个通用处理器、多个IP核、多个专用处理器等。如计算模块的数量大于一,则为多核。在此基础上,该异构特征具体体现在集成的计算模块种类,如计算模块的种类大于一种,则为异构。该可重构特征,具体体现在,功能单元的动态变化状态。如计算单元可以被替换,则为可重构。因此异构多核可重构计算平台,指的是基于计算模块、存储模块、互联模块以及相关外设等模块组成的计算机系统。但本发明并不限于此。
还应理解,知识产权(Intellectual Property,简称为“IP”)核,是在芯片中完成某种特定功能的逻辑电路,一般属于硬件的范畴。在本发明中,其具体实现是通过FPGA上的基本门电路搭建起来的硬件模块。
图1示出了根据本发明实施例的异构多核可重构计算平台上任务调度的方法100的示意性流程图,该异构多核可重构计算平台包括多个可重构资源包。该方法100可以由计算平台(例如该计算平台可以是一台计算机)执行,如图1所示,该方法100包括:
S110,在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中;
S120,根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核,该优先级表示硬件任务的执行顺序;
S130,利用该目标IP核,执行该目标硬件任务队列中的硬件任务。
具体而言,计算平台在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;重构完成后利用该目标IP核,执行该目标硬件任务队列中的硬件任务。
因此,本发明实施例的任务调度的方法,计算平台在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;以及利用该目标IP核,执行该目标硬件任务队列中的硬件任务。计算平台根据待执行硬件任务的优先级和可重构资源包的使用状况决定任务的调度过程,能够确定更加合理的资源重构时机以及采用更合适的可重构资源包进行资源重构,从而在任务调度的过程中能够减少重构开销,提高可重构资源的利用率。
应理解,在本发明实施例中,该异构多核可重构计算平台上的可重构资源(现场可编程门阵列,Field Programmable Gate Arrays,简称为“FPGA”)可以被分成面积相等或不等的多个可重构资源包,可重构资源包的布局在每次系统启动后是固定的,不允许进行更改。系统启动之后,每个可重构资源包上可以布局的IP核是可以动态变化的,即每个可重构资源包能够完成的功能是动态变化的。
应理解,在本发明实施例中硬件任务的功能是指该硬件任务请求的功能或者执行该硬件任务能够完成的功能,例如:该功能可以是逻辑运算、矩阵运算、视频处理等。硬件平台可以通过标记位对用户程序提供传输硬件功能的接口,以此来确定硬件任务的功能。
还应理解,在本发明实施例中,利用该目标IP核,执行该目标硬件任务队列中的硬件任务,具体实现过程是异构平台控制目标IP核,通过给其提供硬件任务的输入来驱动硬件电路,来达到执行硬件任务的目的,并生成输出。
在本发明实施例中,可选地,如果待执行任务为软件任务,则利用CPU执行该待执行任务。
可选地,在S110中,如果该待执行硬件任务未准备就绪,计算平台会等待该待执行硬件任务就绪,此时该待执行硬件任务的状态由未就绪状态转变为就绪状态,其中,就绪状态指的是任务的输入数据均已就绪的状态。
可选地,在S110中,目标硬件任务队列是一种缓冲(特殊的数据结构),用来存储等待执行的硬件任务。待执行硬件任务可以插入到目标硬件任务队列的任意位置,优选地,可以将待执行硬件任务插入到目标硬件任务队列的尾部,本发明对此不做限定。
可选地,在S120中,待执行硬件任务的优先级可以使预先设定的,例如,可以预先设定硬件任务的功能与硬件任务的优先级的对应关系,计算平台根据硬件任务的功能即可确定该任务的优先级。待执行硬件任务的优先级还可以是计算平台实时确定的,例如,可以根据待执行硬件任务所在的目标硬件任务队列的长度和能够执行该待执行硬件任务的IP核的数目确定该待执行硬件任务的优先级。但本发明并不限于此。
在本发明实施例中,优选地,在该计算平台上存在能够执行某一待执行硬件任务的IP核时,该待执行硬件任务的优先级Pi可以设置为d*Ti*Length(Li)/Ki,否则,该待执行硬件任务的优先级Pi设置为Ti*Length(Li)。其中,Pi指硬件任务的优先级;d指计算平台上已经布局的硬件任务与未布局的硬件任务相比的优先参数,d为大于1的自然数,例如,可以为2、3等;Li指完成某种功能的硬件任务队列,Length(Li)为硬件任务队列的长度;Ki指目前已经布局的完成某种功能的IP核的数目;i的取值范围为1至N,N为该计算平台上的硬件能够完成的硬件任务类型的总数。但本发明并不限于此。
下文中将结合图2至图5,对图1所示的根据本发明实施例的任务调度的方法进行详细描述。
如图2所示,在本发明实施例中,可选地,在S120中,该根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核,包括:
S121,在该待执行硬件任务的优先级为目标优先级的情况下,根据该多个可重构资源包的使用状况,确定存在用于布局该目标IP核的空闲可重构资源包,其中,该目标优先级对应的硬件任务属于第一硬件任务集,该第一硬件任务集中的每个硬件任务的优先级大于第二硬件任务集中的每个硬件任务的优先级;
S122,将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核。
应理解,在本发明实施例中,用于布局该目标IP核的空闲可重构资源包,可以理解为该空闲可重构资源包可以重构为该目标IP核。由于用于布局该目标IP核的是空闲可重构资源包,重构过程中不会干扰正在执行任务的可重构资源包,从而在任务调度的过程中能够提升系统的并行性。
在本发明实施例中,可选地,该计算平台上的所有硬件任务可以根据优先级分为多个硬件任务集,该目标优先级对应的硬件任务集中的硬件任务的优先级至少高于该多个硬件任务集中的一个任务集中的硬件任务的优先级。
在本发明实施例中,优选地,该计算平台上的所有硬件任务可以根据优先级分为第一硬件任务集和第二硬件任务集,其中,第一硬件任务集中的所有硬件任务的优先级均高于该第二硬件任务集中的所有硬件任务的优先级,该目标优先级对应的硬件任务属于第一硬件任务集。
优选地,在S121中,该目标优先级对应的硬件任务的优先级不低于所有硬件任务中任意一个硬件任务的优先级,即该目标优先级对应的硬件任务的优先级是所有硬件任务中最高的。
可选地,在S121中,在该计算平台上不存在能够用于布局该目标IP核的空闲可重构资源包时,该待执行硬件任务的状态可以由就绪状态转变为长睡眠状态,该长睡眠状态的硬件任务的睡眠时间为最小Fj与当前时间的差值。其中,Fj表示计算平台上每个IP核预期执行结束时间,j表示可重构资源包的编号,Fj初始化为0。
在本发明实施例中,可选地,在待执行硬件任务的优先级为目标优先级时,如果计算平台上存在空闲可重构资源包,但不存在能够用于布局执行待执行硬件任务的IP核的空闲可重构资源包时,该待执行硬件任务的状态可以由就绪状态转变为短睡眠状态,在每次短睡眠状态结束时,判断计算平台上是否存在能够布局执行待执行硬件任务的IP核的空闲可重构资源包,如果在待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数小于系统预设阈值时,计算平台上出现能够布局待执行硬件任务的IP核的空闲可重构资源包,则选取其中的一个空闲可重构资源包进行资源重构;如果在待执行硬件任务的状态转变为短睡眠状态的次数大于系统预设阈值时,计算平台上仍没有能够用于布局能够执行待执行硬件任务的IP核的空闲可重构资源包,待执行硬件任务的状态可以由短睡眠状态转变为就绪状态,再由就绪状态转变为长睡眠状态,但本发明并不限于此。
在本发明实施例中,可选地,如图3所示,每个硬件任务具有7个状态,可以分别表示为就绪状态、执行状态、僵死状态、重构状态、可中断的睡眠状态、短睡眠状态和长睡眠状态,在满足一定条件的情况下,不同状态之间可以相互转换。其中,就绪状态为任务的输入数据均已就绪,可以开始执行的状态;执行状态为任务被加载到IP核上运行的状态;僵死状态为执行结束退出的状态;重构状态为任务不能立即运行,需将可重构资源包重新配置的状态;可中断的睡眠状态为任务不能立即运行,需要等待资源的状态;短睡眠状态和长睡眠状态均指任务等待唤醒的状态,等待的时间可以为系统预设值。
其中,任务由就绪状态转换为执行状态的条件为任务参与调度,并且任务的优先级最高;任务由执行状态转换为就绪状态的条件为任务的时间片用完;任务由执行状态转换为僵死状态的条件为任务退出;任务由执行状态转换为可中断的睡眠状态的条件为任务资源尚未准备好,任务等待资源;任务由可中断的睡眠状态转换为就绪状态的条件为任务需要的资源到位;任务由就绪状态转换为短睡眠状态的条件为存在空闲IP核,且不存在空闲的IP核能够完成当前任务,且短睡眠的次数没有超过阈值,其中阈值可以设定;任务由短睡眠状态转换为就绪状态的条件为睡眠时间结束;任务由就绪状态转换为长睡眠状态的条件是预期所有的IP核都繁忙;任务由长睡眠状态转换为就绪状态的条件是睡眠时间结束。任务由就绪状态转换为重构状态的条件是任务进入短睡眠状态的次数超过阈值或者任务的优先级超过某个已经布局的IP核上的任务的优先级,且当前存在空闲的IP核能够完成当前任务;任务由重构状态转换为执行状态的条件是系统完成IP核的重构操作。
在本发明实施例中,可选地,在S122中,如图4所示,该将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核,包括:
S123,确定目标可重构资源包,该目标可重构资源包为该空闲可重构资源包中的任意一个可重构资源包;
优选地,在S123中,该目标可重构资源包为该空闲可重构资源包中最久未被使用的一个可重构资源包。
S124,将该目标可重构资源包重构为该目标IP核。
在本发明实施例中,可选地,在S124中,如图5所示,将该目标可重构资源包重构为该目标IP核,包括:
S125,在该待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数达到预设阈值的情况下,重新确定该待执行硬件任务的优先级;
S126,在该重新确定的该待执行硬件任务的优先级为该目标优先级时,将该目标可重构资源包重构为该目标IP核。
可选地,在S125中,该预设阈值可以是根据实际经验设置的任意数值,例如可以是3、4、5等,本发明对此不作限定。
可选的,在S125中,该短睡眠状态的任务的睡眠时间可以是根据实际经验设置的任意数值,例如可以为100ms、200ms等,本发明对此不作限定。
可选地,在S126中,在该优先级不是目标优先级时,计算平台不执行资源重构操作,该待执行硬件任务可以进入长睡眠状态。
在本发明实施例中,可选地,计算平台可以根据配置文件集合将可重构资源包重构为IP核,该配置文件集合中的每个配置文件承载该多个可重构资源包中的一个可重构资源包与IP核之间的对应关系。其中该配置文件集合中的目标配置文件承载该多个可重构资源包中的目标可重构资源包与目标IP核之间的对应关系。也可以根据系统内部的相关参数将可重构资源包重构为IP核,本发明对此不做限定。
在本发明实施例中,可选地,如图6所示,可重构资源包与功能之间满足多对多的映射关系。一个可重构资源包可以布局为不同功能的IP核,同样的功能也可以在不同的可重构资源包上进行布局。例如,假设该计算平台上的可重构资源被分成三个可重构资源包,编号分别为0、1、2,该计算平台可以执行四种功能:功能1(加法运算)、功能2(减法运算)、功能3(矩阵运算)、功能4(视频处理),则可重构资源包和功能之间的对应关系可以体现为:0可以对应功能1和功能2,1可以对应功能1和功能3,2可以对应功能1、功能3和功能4。具体而言,可以设定系统中的可重构资源包的集合为BbSet,集合中的每一个元素表示可重构资源包的编号BbNum;设定功能集合为FunSet,集合中的每一个元素表示功能的编号FunNum,系统中与每一种功能对应的IP核的数量可以有多个。定义BbSet与FunSet之间的映射关系为f:BbSet→FunSet,则映射关系f可以表示为二元组<BbNum,FunNum>的集合,该二元组实际上也表示了可重构资源包与IP核之间的对应关系,定义该集合为IPSet。IPSet决定了IP核库的设计,定义IP核库中的配置文件集合为ConfigSet,集合的每一个元素为一个配置文件FileNum,则IPSet与ConfigSet满足一一映射关系,即每一个二元组<BbNum,FunNum>与一个FileNum对应。但本发明并不限于此。
可选地,可以在进行任务调度前,建立以上可重构资源包与功能之间的映射关系;例如在计算平台初始化的过程中,建立以上可重构资源包与功能之间的映射关系,本发明实施例不做限定。
因此,本发明实施例的任务调度的方法,在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;利用该目标IP核,执行该目标硬件任务队列中的硬件任务。计算平台初始化时,建立了可重构资源包与功能之间的映射关系,可以减少系统进行硬件任务调度和资源管理时需要的设计空间搜索,减少调度开销和资源管理开销;计算平台根据待执行硬件任务的优先级和多个可重构资源包的使用状况决定任务的调度过程,能够确定更加合理的资源重构时机以及采用更合适的可重构资源包进行资源重构,从而在任务调度的过程中能够减少重构开销,提高可重构资源的利用率。
应理解,在本发明实施例中,计算平台完成资源重构操作后,重构完成的能够用于执行待执行硬件任务的该目标IP核,可以执行该目标硬件任务队列中的所有硬件任务,也可以将该目标硬件任务队列中部分任务和该待执行硬件任务迁移到该重构完成的IP核上执行,本发明对此不做限定。
可选地,在S130中,计算平台可以根据先到先服务的策略执行该目标硬件任务队列中的任务,也可以根据硬件任务的优先级、轮询法或其他策略执行该目标硬件任务队列中的任务,本发明对此不作限定。
因此,本发明实施例的任务调度的方法,在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;利用该目标IP核,执行该目标硬件任务队列中的硬件任务。计算平台根据待执行硬件任务的优先级和多个可重构资源包的使用状况决定任务的调度过程,能够确定更加合理的资源重构时机以及采用更合适的可重构资源包进行资源重构,并且重构过程中不会干扰正在执行任务的可重构资源包,从而在任务调度的过程中能够提升系统的并行性,减少重构开销,提高可重构资源的利用率。
上文中结合图1至图6,详细描述了根据本发明实施例的任务调度的方法100,下面将结合图7和图8详细描述根据图1至图6所述的方法,具体实现异构多核可重构计算平台上任务调度的过程。
图7和图8所示为根据图1至图6所述的方法,在一种具体情况下实现异构多核可重构计算平台上任务调度的过程的方法流程示意图。图7将结合图8进行说明。如图7所示,根据本发明实施例的异构多核可重构计算平台上任务调度的方法200包括:
S201,平台初始化,创建任务;
在本发明实施例中,平台初始化过程首先读取IP核库中的信息,确定系统的可重构资源包集合BbSet、功能集合FunSet和两者之间的映射关系ConfigSet。本发明实施例的功能集合指的是硬件任务能够完成的功能的集合,不包含软件任务的功能。初始化时所有的可重构资源包都没有布局任何IP核,即可重构资源包的功能是空。然后初始化系统中的其他参数,包括:
1、硬件能够完成的总的任务类型数目N,N初始化为功能集合FunSet的大小;
2、未就绪队列Lu,Lu初始化为空,其长度初始化为0;
3、就绪软件任务队列LRk,k=1,2,...,G,G表示通用处理器的数目,LRk初始化为空,其长度初始化为0;
4、完成某种功能硬件任务队列Li,i=1,2,...,N,Li初始化为空队列,其长度初始化为0;
5、目前已经布局的完成某种功能的IP核数目Ki,i=1,2,...,N,Ki初始化为0;
6、硬件任务的优先级Pi,i=1,2,...,N,Pi初始化为0;
7、短睡眠的时间阈值det,可选的,det初始化为100ms;
8、任务进入短睡眠的次数的阈值M,可选的,M初始化为5;
9、每种类型的硬件任务执行一次需要的时间Ti,i=1,2,...,N,Ti初始化为每种类型IP核的实际执行时间;
10、已布局硬件任务与未布局硬件任务相比的优先常数d(d>1),可选的,d初始化为2;
11、全局信息表TG,TG中记录了每个可重构资源包上布局的IP核的类型Type,以及每个IP核预期执行结束时间Fj,j表示可重构资源包的编号,Fj初始化为0。
系统初始化完毕后,创建任务。在本发明实施例中,创建任务的过程即为从原始的应用程序中分离出粒度较小的代码段的过程。设置任务的状态为未就绪状态,将任务插入到未就绪队列Lu的末端,并进入任务的处理流程。
S202,判断为就绪队列Lu头部的任务是否已经准备就绪。
应理解,在本发明实施例中,任务准备就绪是指任务的所有的输入数据都已经准备完毕。系统中包含唯一的未就绪任务队列,未就绪硬件任务和软件任务共享该为就绪任务队列。
如果在S202中,就绪队列Lu头部的任务未准备就绪,那么流程进行到S203,等待任务就绪,并将该任务从未就绪队列Lu的头部移动到Lu的尾部。
S204,如果任务就绪,首先将任务的状态设置为就绪状态,然后将任务从未就绪队列Lu中删除并临时保存,最后判断任务的类型是否是硬件任务。
在S204中,如果任务为软件任务,那么流程进行到S205,在处理器上(例如:CPU)上执行该软件任务。
在本发明实施例中,每一个处理器(例如CPU)上都有独立的软件任务队列,软件任务队列之间可以进行负载迁移。软件任务队列不区分软件任务的具体功能,所有就绪的软件任务都可以共享软件任务队列。在S205中,查找所有的软件任务队列LRk,将S204中临时保存的任务插入到任务队列长度最短的LRk中,并将LRk的长度Length(LRk)加1,本发明对任务插入到任务队列中的位置不作限定。
S206,如果任务为硬件任务,将任务加入到对应功能的就绪队列中;
在本发明实施例中,每种功能的硬件任务都有独立的硬件任务队列。每个队列中的任务都可以采用先到先服务FCFS策略执行。一个硬件任务队列可以同时为多个可重构资源包提供任务,从而达到硬件任务并行执行的目的。
在S206中,将S204中临时保存的任务插入到其对应的硬件任务队列Li中,并将Li的长度Length(Li)加1。
S207,计算是否需要重构;
S208,在需要重构时,进行资源重构;
S209,进行任务迁移;
在本发明实施例中,重构完成后,将对应的硬件任务队列头部的任务的状态设置为执行状态,并将该任务迁移到重构完成的IP核上执行。
S210,按照先到先服务的策略执行就绪队列中的任务。
在S210中,每个任务开始执行时,都将全局信息表TG中对应的IP核的Fj设置为任务开始时间与任务执行时间Ti的和。
在本发明实施例中,在任务执行结束后,以中断的方式将结果返回。如果任务为软件任务,则将软件任务队列LRk中的该任务删除,并将Length(LRk)减1;如果任务为硬件任务,则将硬件任务队列Li中的该任务删除,将Length(Li)减1,并且更新全局信息表TG中任务对应的IP核的IP核预期执行结束时间Fj,将其设置为当前时间。
下面结合图8将具体说明步骤S207计算是否需要重构和步骤S208在需要重构时,进行资源重构的过程和方法。
如图8所示,在S301中,计算平台确定可重构资源包集合、IP核功能集合和两者之间的映射关系。
在S302中,计算硬件任务的优先级;
计算平台根据硬件任务完成的功能以及其是否已经布局,计算所有类型硬件任务的优先级。如果硬件任务已经布局,则将任务的优先级Pi设置为d*Ti*Length(Li)/Ki,否则,硬件任务的优先级Pi设置为Ti*Length(Li)。
在S303中,确定待执行硬件任务的优先级是否是所有硬件任务中最高的;
在S304中,确定是否存在空闲的且能够用于布局执行待执行硬件任务的IP核的可重构资源包;
如果在S304中,不存在空闲的可重构资源包,那么流程进行到S305,待执行硬件任务进入长睡眠状态,睡眠时间为最小Fj与当前时间的差值。
在S306中,在存在空闲的且可以用于布局执行待执行硬件任务的IP核的可重构资源包时,选择一个空闲的可重构资源包作为备选可重构资源包,待执行任务进入短睡眠状态,睡眠时间为计算平台初始化时设置的短睡眠的时间阈值;
在S307中,在该待执行硬件任务进入短睡眠状态M次后,判断该待执行硬件任务的优先级是否仍然是所有硬件任务中最高的;
在S308中,在该待执行硬件任务的优先级最高时,进行资源重构,将该备选可重构资源包重构为执行该待执行硬件任务的IP核;
在S309中,更新全局信息表TG中相应可重构资源包对应的IP核的类型(Type)信息,同时将该待执行硬件任务的功能对应的硬件任务队列头部的任务的状态设置为重构状态;更新该待执行硬件任务的Ki,将Ki加1,并根据公式d*Ti*Length(Li)/Ki重新计算系统中与该待执行硬件任务的功能相同的其他硬件任务的优先级Pi
因此,本发明实施例的任务调度的方法,在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;利用该目标IP核,执行该目标硬件任务队列中的硬件任务,计算平台根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,能够确定更加合理的资源重构时机以及采用更合适的可重构资源包进行资源重构,并且重构过程中不会干扰正在执行任务的可重构资源包,从而在任务调度的过程中能够提升系统的并行性,降低重构开销。并且计算平台建立了可重构资源包与功能之间的映射关系,可以减少系统进行任务调度和资源管理时需要的设计空间搜索,从而减少调度开销和资源管理开销。更进一步地,计算平台为每一种功能的硬件任务创建单独的任务队列,采用FCFS的服务方式,可以进一步减少硬件任务的调度开销,提升可重构资源的利用率。
图9是本发明实施例的异构多核可重构计算平台上任务调度的装置的示意性框图,该异构多核可重构计算平台包括多个可重构资源包,如图9所示,该任务调度的装置10包括:
任务调度模块11,用于在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中;
资源管理模块12,用于根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核;
任务执行模块13,用于利用该资源管理模块重构完成的该目标IP核,执行该目标硬件任务队列中的硬件任务。
具体而言,计算平台在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;重构完成后利用该目标IP核,执行该目标硬件任务队列中的硬件任务。
因此,本发明实施例的任务调度的装置,在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;利用该目标IP核,执行该目标硬件任务队列中的硬件任务。任务调度的装置根据待执行硬件任务的优先级和多个可重构资源包的使用状况,能够确定更加合理的资源重构时机以及采用更合适的可重构资源包进行资源重构,从而在任务调度的过程中能够提升系统的并行性,减少重构开销,提高可重构资源的利用率。
在本发明实施例中,可选地,在根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核的方面,该资源管理模块12具体用于:在该待执行硬件任务的优先级为目标优先级的情况下,根据该多个可重构资源包的使用状况,确定存在用于布局该目标IP核的空闲的可重构资源包,其中,该目标优先级对应的硬件任务属于第一硬件任务集,该第一硬件任务集中的每个硬件任务的优先级大于第二硬件任务集中的每个硬件任务的优先级;
以及将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核。
在本发明实施例中,可选地,该资源管理模块12具体用于:根据该目标硬件任务队列的长度和能够执行该待执行硬件任务的IP核的数目,确定该待执行硬件任务的优先级。
在本发明实施例中,可选地,在将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核的方面,该资源管理模块12具体用于:确定目标可重构资源包,该目标可重构资源包为该空闲可重构资源包中的任意一个可重构资源包;
以及将该目标可重构资源包重构为该目标IP核。
在本发明实施例中,可选地,该资源管理模块12还用于:在该待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数达到预设阈值的情况下,重新确定该待执行硬件任务的优先级;
相应的,在将该目标可重构资源包重构为该目标IP核的方面,该资源管理模块12具体用于:在重新确定的该待执行硬件任务的优先级为该目标优先级的情况下,将该目标可重构资源包重构为该目标IP核。
在本发明实施例中,可选地,在将该目标可重构资源包重构为该目标IP核的方面,该资源管理模块12具体用于:根据配置文件集合中的目标配置文件将该目标可重构资源包重构为该目标IP核,其中该目标配置文件承载该多个可重构资源包中的目标可重构资源包与目标IP核之间的对应关系。
在本发明实施例中,可选地,在利用该目标IP核执行该目标硬件任务队列中的硬件任务的方面,该任务执行模块具体用于:利用该资源管理模块重构完成的该目标IP核,按照先到先服务的策略执行该目标硬件任务队列中的硬件任务。
应理解,根据本发明实施例的任务调度装置10的上述和其它操作和/或功能分别为了实现图1、图2、图4和图5中的各个方法,为了简洁,在此不再赘述。
因此,本发明实施例的任务调度的装置,在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;利用该目标IP核,执行该目标硬件任务队列中的硬件任务。任务调度的装置根据待执行硬件任务的优先级和可重构资源包的使用状况,能够确定更加合理的资源重构时机和采用更合适的可重构资源包进行资源重构,并且重构过程中不会干扰正在执行任务的可重构资源包,从而在任务调度的过程中能够提升系统的并行性,减少重构开销,提高可重构资源的利用率。
图10示出了根据本发明另一实施例的异构多核可重构计算平台上任务调度的装置的示意性框图。
如图10所示,异构多核可重构计算平台上的硬件任务调度的装置20的结构分为两个主要部分:硬件部分(100)和软件部分(200)。
其中,硬件部分(100)包括片上多核系统(110)、系统总线(120)、重构控制器(130)和可重构资源(FPGA)(140)等部分。片上多核系统(110)是软件任务执行的载体,由片上互联(111)和多核CPU(112)组成。系统总线连接了多核系统和外围设备,如内存、硬盘等,其中,与可重构平台紧密相关的设备是重构控制器(130),重构控制器接收重构控制信号(302)和重构数据信号(301),对可重构资源进行重构操作。可重构资源被划分为不同的可重构资源包(141),每个可重构资源包都可以作为一个独立的设备使用。
软件部分(200)包括编程模型(210)和调度及资源管理模块(220)两部分。编程模型对用户提供编程接口(211),并通过系统函数库(212)创建任务。系统函数库中的硬件函数库(213)是可重构平台所特有的,硬件函数库(213)定义了调用可重构资源上可重构资源包的接口。调度及管理模块包含任务调度模块(221)和资源管理模块(222)两个子部分。任务调度模块(221)决定任务执行的时机以及任务的执行单元。资源管理模块(222)根据任务调度的结果通过重构控制信号(302)和重构数据信号(301)对可重构资源进行管理。其中,重构控制信号(301)是指控制重构状态和流程的触发信号,重构数据信号(302)为指导可重构资源需要配置的具体功能。
可重构资源中每个可重构资源包上可以布局的IP核的配置信息都保存在IP核库(300)中,其表现形式为网表、门电路等。IP核库(300)根据接收到的重构数据信号(302),向重构控制器(130)提供布局IP核所需要的配置信息。
其中,任务调度模块(221),用于在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中;
资源管理模块(222),用于根据该待执行硬件任务的优先级和该多个可重构资源包(141)的使用情况,将该多可可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核;
可重构资源包(141)中进行资源重构的可重构资源包用于:利用重构完成的目标IP核,执行目标硬件任务队列中的硬件任务。
可选地,作为一个实施例,在根据该待执行硬件任务的优先级和该多个可重构资源包(141)的使用状况,将该多个可重构资源包(141)中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核的方面,该资源管理模块(222)具体用于:在该待执行硬件任务的优先级为目标优先级的情况下,根据该多个可重构资源包的使用状况,确定存在用于布局该目标IP核的空闲的可重构资源包,其中,该目标优先级对应的硬件任务属于第一硬件任务集,该第一硬件任务集中的每个硬件任务的优先级大于第二硬件任务集中的每个硬件任务的优先级;
以及将该多个可重构资源包(141)中的空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核。
可选地,作为另一实施例,该资源管理模块(222)还用于:根据该目标硬件任务队列的长度和能够执行该待执行硬件任务的IP核的数目,确定该待执行硬件任务的优先级。
可选地,作为另一实施例,在将该多个可重构资源包(141)中的空闲可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核的方面,该资源管理模块(222)具体用于:确定目标可重构资源包,该目标可重构资源包为该空闲可重构资源包中的任意一个可重构资源包;
以及将该目标可重构资源包重构为该目标IP核。
可选地,作为另一实施例,该资源管理模块(222)还用于:在该待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数达到预设阈值的情况下,重新确定该待执行硬件任务的优先级;
相应的,在将该目标可重构资源包重构为该目标IP核的方面,该资源管理模块(222)具体用于:在重新确定的该待执行硬件任务的优先级为该目标优先级的情况下,将该目标可重构资源包重构为该目标IP核。
可选地,作为另一实施例,在将该目标可重构资源包重构为该目标IP核的方面,该资源管理模块(222)具体用于:根据配置文件集合中的目标配置文件将该目标可重构资源包重构为该目标IP核,其中该目标配置文件承载该多个可重构资源包中的目标可重构资源包与目标IP核之间的对应关系。
可选地,作为另一实施例,在利用该目标IP核执行该目标硬件任务队列中的硬件任务的方面,可重构资源包(141)中进行资源重构的可重构资源包具体用于:利用重构完成的该目标IP核,按照先到先服务的策略执行该目标硬件任务队列中的硬件任务。
因此,本发明实施例的任务调度的装置,在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中,并根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核;利用该目标IP核,执行该目标硬件任务队列中的硬件任务。任务调度的装置根据待执行硬件任务的优先级和多个可重构资源包的使用状况,能够确定更加合理的资源重构时机和采用更合适的可重构资源包进行资源重构,并且重构过程中不会干扰正在执行任务的可重构资源包,从而在任务调度的过程中能够提升系统的并行性,减少重构开销,提高可重构资源的利用率。
图11示出了根据本发明再一实施例的异构多核可重构计算平台上任务调度的装置30的示意性框图。
如图11所示,该异构多核可重构计算平台上任务调度的装置30的硬件结构可以包括:收发器件31、软件器件32以及硬件器件33三部分。
其中,收发器件31为用于完成包收发的硬件电路;
硬件器件33也可称“硬件处理模块”,或者更简单的,也可简称为“硬件”,硬件器件33主要包括基于FPGA、ASIC之类专用硬件电路(也会配合其他配套器件,如存储器)来实现某些特定功能的硬件电路,其处理速度相比通用处理器往往要快很多,但功能一经定制,便很难更改,因此,实现起来并不灵活,通常用来处理一些固定的功能。需要说明的是,硬件器件33在实际应用中,也可以包括MCU(微处理器,如单片机)、或者CPU等处理器,但这些处理器的主要功能并不是完成大数据的处理,而主要用于进行一些控制,在这种应用场景下,由这些器件搭配的系统为硬件器件。
软件器件32(或者也简单“软件”)主要包括通用的处理器(例如CPU)及其一些配套的器件(如内存、硬盘等存储设备),可以通过编程来让处理器具备相应的处理功能,用软件来实现时,可以根据业务需求灵活配置,但往往速度相比硬件器件来说要慢。软件处理完后,可以通过硬件器件33将处理完的数据通过收发器件31进行发送,也可以通过一个与收发器件31相连的接口向收发器件31发送处理完的数据。
可选地,作为一个实施例,该软件器件32:用于在确定待执行硬件任务的状态为就绪状态的情况下,将该待执行硬件任务添加到与该待执行硬件任务的功能相对应的目标硬件任务队列中;根据该待执行硬件任务的优先级和硬件器件33包括的多个可重构资源包的使用情况,将该多可可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核;该硬件部分33:用于根据该软件部分32重构完成的该目标IP核执行目标硬件任务队列中的硬件任务。
可选地,作为另一实施例,在根据该待执行硬件任务的优先级和该多个可重构资源包的使用状况,将该多个可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标知识产权IP核的方面,该软件器件32具体用于:在该待执行硬件任务的优先级为目标优先级的情况下,根据该多个可重构资源包的使用状况,确定存在用于布局该目标IP核的空闲的可重构资源包,其中,该目标优先级对应的硬件任务属于第一硬件任务集,该第一硬件任务集中的每个硬件任务的优先级大于第二硬件任务集中的每个硬件任务的优先级;将该空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行该待执行硬件任务的目标IP核。
可选地,作为另一实施例,该软件器件32还用于:根据该目标硬件任务队列的长度和能够执行该待执行硬件任务的IP核的数目,确定该待执行硬件任务的优先级。
可选地,作为另一实施例,在将该空闲可重构资源包中的至少一个可重构资源包重构为能够执行该待执行硬件任务的目标IP核的方面,该软件器件32具体用于:确定目标可重构资源包,该目标可重构资源包为该空闲可重构资源包中的任意一个可重构资源包;将该目标可重构资源包重构为该目标IP核。
可选地,作为另一实施例,该软件器件32还用于:在该待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数达到预设阈值的情况下,重新确定该待执行硬件任务的优先级;在重新确定的该待执行硬件任务的优先级为该目标优先级的情况下,将该目标可重构资源包重构为该目标IP核。
可选地,作为另一实施例,在将该目标可重构资源包重构为该目标IP核的方面,该软件器件32具体用于:根据配置文件集合中的目标配置文件将该目标可重构资源包重构为该目标IP核,其中该目标配置文件承载该多个可重构资源包中的目标可重构资源包与目标IP核之间的对应关系。
可选地,作为另一实施例,在利用该目标IP核执行该目标硬件任务队列中的硬件任务的方面,该硬件器件33具体用于:利用重构完成的该目标IP核,按照先到先服务的策略执行该目标硬件任务队列中的硬件任务。
通过本实施例软硬结合的方法,能够确定更加合理的资源重构时机以及采用更合适的可重构资源包进行资源重构,并且重构过程中不会干扰正在执行任务的可重构资源包,从而在任务调度的过程中能够提升系统的并行性,减少重构开销,提高可重构资源的利用率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等,例如,具体可以是前述设备中的处理器)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (12)

1.一种异构多核可重构计算平台上任务调度的方法,其特征在于,所述异构多核可重构计算平台包括多个可重构资源包,所述方法包括:
在确定待执行硬件任务的状态为就绪状态的情况下,将所述待执行硬件任务添加到与所述待执行硬件任务的功能相对应的目标硬件任务队列中;
根据所述目标硬件任务队列的长度和能够执行所述待执行硬件任务的知识产权IP核的数目,确定所述待执行硬件任务的优先级;
根据所述待执行硬件任务的优先级和所述多个可重构资源包的使用状况,将所述多个可重构资源包中的至少一个可重构资源包重构为能够执行所述待执行硬件任务的目标IP核,所述优先级表示硬件任务的执行顺序;
利用所述目标IP核,执行所述目标硬件任务队列中的硬件任务。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待执行硬件任务的优先级和所述多个可重构资源包的使用状况,将所述多个可重构资源包中的至少一个可重构资源包重构为能够执行所述待执行硬件任务的目标知识产权IP核,包括:
在所述待执行硬件任务的优先级为目标优先级的情况下,根据所述多个可重构资源包的使用状况,确定存在用于布局所述目标IP核的空闲可重构资源包,其中,所述目标优先级对应的硬件任务属于第一硬件任务集,所述第一硬件任务集中的每个硬件任务的优先级大于第二硬件任务集中的每个硬件任务的优先级;
将所述空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行所述待执行硬件任务的目标IP核。
3.根据权利要求2所述的方法,其特征在于,所述将所述空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行所述待执行硬件任务的目标IP核,包括:
确定目标可重构资源包,所述目标可重构资源包为所述空闲可重构资源包中的任意一个可重构资源包;
将所述目标可重构资源包重构为所述目标IP核。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数达到预设阈值的情况下,重新确定所述待执行硬件任务的优先级;
相应的,所述将所述目标可重构资源包重构为所述目标IP核,包括:
在所述重新确定的所述待执行硬件任务的优先级为所述目标优先级的情况下,将所述目标可重构资源包重构为所述目标IP核。
5.根据权利3或4所述的方法,其特征在于,所述将所述目标可重构资源包重构为所述目标IP核,包括:
根据配置文件集合中的目标配置文件将所述目标可重构资源包重构为所述目标IP核,其中所述目标配置文件承载所述多个可重构资源包中的目标可重构资源包与目标IP核之间的对应关系。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述利用所述目标IP核,执行所述目标硬件任务队列中的硬件任务,包括:
利用所述目标IP核,按照先到先服务的策略执行所述目标硬件任务队列中的硬件任务。
7.一种异构多核可重构计算平台上任务调度的装置,其特征在于,所述异构多核可重构计算平台包括多个可重构资源包,所述装置包括:
任务调度模块,用于在确定待执行硬件任务的状态为就绪状态的情况下,将所述待执行硬件任务添加到与所述待执行硬件任务的功能相对应的目标硬件任务队列中;
资源管理模块,用于根据所述目标硬件任务队列的长度和能够执行所述待执行硬件任务的知识产权IP核的数目,确定所述待执行硬件任务的优先级;以及用于根据所述待执行硬件任务的优先级和所述多个可重构资源包的使用状况,将所述多个可重构资源包中的至少一个可重构资源包重构为能够执行所述待执行硬件任务的目标IP核,所述优先级表示硬件任务的执行顺序;
任务执行模块,用于利用所述资源管理模块重构完成的所述目标IP核,执行所述目标硬件任务队列中的硬件任务。
8.根据权利要求7所述的装置,其特征在于,在根据所述待执行硬件任务的优先级和所述多个可重构资源包的使用状况,将所述多个可重构资源包中的至少一个可重构资源包重构为能够执行所述待执行硬件任务的目标知识产权IP核的方面,所述资源管理模块具体用于:
在所述待执行硬件任务的优先级为目标优先级的情况下,根据所述多个可重构资源包的使用状况,确定存在用于布局所述目标IP核的空闲的可重构资源包,其中,所述目标优先级对应的硬件任务属于第一硬件任务集,所述第一硬件任务集中的每个硬件任务的优先级大于第二硬件任务集中的每个硬件任务的优先级;
以及将所述空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行所述待执行硬件任务的目标IP核。
9.根据权利要求8所述的装置,其特征在于,在将所述空闲可重构资源包中的至少一个空闲可重构资源包重构为能够执行所述待执行硬件任务的目标IP核的方面,所述资源管理模块具体用于:
确定目标可重构资源包,所述目标可重构资源包为所述空闲可重构资源包中的任意一个可重构资源包;
以及将所述目标可重构资源包重构为所述目标IP核。
10.根据权利要求9所述的装置,其特征在于,所述资源管理模块还用于:
在所述待执行硬件任务的状态由就绪状态转变为短睡眠状态的次数达到预设阈值的情况下,重新确定所述待执行硬件任务的优先级;
相应的,在将所述目标可重构资源包重构为所述目标IP核的方面,所述资源管理模块具体用于:
在重新确定的所述待执行硬件任务的优先级为所述目标优先级的情况下,将所述目标可重构资源包重构为所述目标IP核。
11.根据权利9或10所述的装置,其特征在于,在将所述目标可重构资源包重构为所述目标IP核的方面,所述资源管理模块具体用于:
根据配置文件集合中的目标配置文件将所述目标可重构资源包重构为所述目标IP核,其中所述目标配置文件承载所述多个可重构资源包中的目标可重构资源包与目标IP核之间的对应关系。
12.根据权利要求7至10中任一项所述的装置,其特征在于,在利用所述目标IP核执行所述目标硬件任务队列中的硬件任务的方面,所述任务执行模块具体用于:
利用所述资源管理模块重构完成的所述目标IP核,按照先到先服务的策略执行所述目标硬件任务队列中的硬件任务。
CN201510023646.6A 2015-01-16 2015-01-16 异构多核可重构计算平台上任务调度的方法和装置 Active CN104615488B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510023646.6A CN104615488B (zh) 2015-01-16 2015-01-16 异构多核可重构计算平台上任务调度的方法和装置
EP15877614.6A EP3239852B1 (en) 2015-01-16 2015-09-06 Method and device for task scheduling on heterogeneous multi-core reconfigurable computing platform
PCT/CN2015/088955 WO2016112701A1 (zh) 2015-01-16 2015-09-06 异构多核可重构计算平台上任务调度的方法和装置
US15/650,608 US10552222B2 (en) 2015-01-16 2017-07-14 Task scheduling method and apparatus on heterogeneous multi-core reconfigurable computing platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510023646.6A CN104615488B (zh) 2015-01-16 2015-01-16 异构多核可重构计算平台上任务调度的方法和装置

Publications (2)

Publication Number Publication Date
CN104615488A CN104615488A (zh) 2015-05-13
CN104615488B true CN104615488B (zh) 2018-01-19

Family

ID=53149944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510023646.6A Active CN104615488B (zh) 2015-01-16 2015-01-16 异构多核可重构计算平台上任务调度的方法和装置

Country Status (4)

Country Link
US (1) US10552222B2 (zh)
EP (1) EP3239852B1 (zh)
CN (1) CN104615488B (zh)
WO (1) WO2016112701A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615488B (zh) * 2015-01-16 2018-01-19 华为技术有限公司 异构多核可重构计算平台上任务调度的方法和装置
US11151446B2 (en) * 2015-10-28 2021-10-19 Google Llc Stream-based accelerator processing of computational graphs
CN106873545A (zh) * 2015-12-14 2017-06-20 重庆森坦科技有限公司 一种基于fpga的实时多任务调度系统
CN107729136B (zh) * 2016-08-12 2021-03-26 腾讯科技(深圳)有限公司 一种基于fpga的处理优先级配置方法及装置
US20180189641A1 (en) 2017-01-04 2018-07-05 Stmicroelectronics S.R.L. Hardware accelerator engine
CN108269224B (zh) 2017-01-04 2022-04-01 意法半导体股份有限公司 可重新配置的互连
CN106844055B (zh) * 2017-01-25 2020-02-28 北京百分点信息科技有限公司 一种任务的执行方法和装置
US10474600B2 (en) 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
CN108363615B (zh) * 2017-09-18 2019-05-14 清华大学 用于可重构处理系统的任务分配方法和系统
CN107808031B (zh) * 2017-09-27 2020-07-24 浙江大学 一种基于fpga的可重构计算系统实现方法
CN110018887A (zh) * 2018-01-10 2019-07-16 苏州智配信息科技有限公司 一种可重构平台上的任务调度和资源管理算法
GB2580178B (en) * 2018-12-21 2021-12-15 Imagination Tech Ltd Scheduling tasks in a processor
CN109785224B (zh) * 2019-01-29 2021-09-17 华中科技大学 一种基于fpga的图数据处理方法和系统
CN110309024B (zh) * 2019-04-23 2023-07-18 网宿科技股份有限公司 数据处理系统及其执行数据处理任务的方法
CN110162399B (zh) * 2019-05-08 2023-05-09 哈尔滨工业大学 一种面向多核实时系统的时间确定性方法
US11687364B2 (en) * 2019-07-30 2023-06-27 Samsung Electronics Co., Ltd. Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (SMP) environment
CN110489223B (zh) * 2019-08-26 2022-03-29 北京邮电大学 一种异构集群中任务调度方法、装置及电子设备
CN110737628A (zh) * 2019-10-17 2020-01-31 辰芯科技有限公司 一种可重构处理器和可重构处理器系统
CN111209112A (zh) * 2019-12-31 2020-05-29 杭州迪普科技股份有限公司 一种异常处理方法及装置
US11593609B2 (en) 2020-02-18 2023-02-28 Stmicroelectronics S.R.L. Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks
CN111582629B (zh) * 2020-03-24 2023-11-17 青岛奥利普奇智智能工业技术有限公司 资源调度方法、装置、设备和存储介质
CN113467901A (zh) * 2020-03-31 2021-10-01 北京华为数字技术有限公司 一种任务调度的方法及相关设备
US11531873B2 (en) 2020-06-23 2022-12-20 Stmicroelectronics S.R.L. Convolution acceleration with embedded vector decompression
CN111880933B (zh) * 2020-07-27 2023-09-22 北京神舟航天软件技术有限公司 一种基于异构计算平台的可重构硬件任务动态分配方法
CN112905317B (zh) * 2021-02-04 2023-12-15 西安电子科技大学 快速可重构信号处理异构平台下任务调度方法和系统
CN113051053B (zh) * 2021-03-24 2023-09-08 博瀚智能(深圳)有限公司 异构资源调度方法、装置、设备和计算机可读存储介质
CN113608976A (zh) * 2021-07-09 2021-11-05 华东师范大学 一种资源综合利用率的层次化分析方法、计算设备及存储介质
CN113806058A (zh) * 2021-10-09 2021-12-17 京东科技控股股份有限公司 任务管理方法及装置、存储介质及电子设备
CN118034880A (zh) * 2022-12-29 2024-05-14 国科础石(重庆)软件有限公司 多核调度的方法、装置、车辆、电子设备及介质
CN116150455B (zh) * 2023-04-17 2023-07-18 华能信息技术有限公司 一种异构数据解析方法
CN116756082B (zh) * 2023-08-16 2023-10-27 沐曦集成电路(上海)有限公司 一种可配置的功能模块文件的生成方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630305A (zh) * 2008-07-16 2010-01-20 中国人民解放军信息工程大学 高效能计算机中可重构部件的柔性管理方法
CN102253920A (zh) * 2011-06-08 2011-11-23 清华大学 一种全互联路由结构动态可重构数据处理方法及处理器
CN102360309A (zh) * 2011-09-29 2012-02-22 中国科学技术大学苏州研究院 片上多核异构系统的调度系统与调度执行方法
CN102508816A (zh) * 2011-11-15 2012-06-20 东南大学 一种应用于粗粒度可重构阵列的配置方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325123B2 (en) * 2001-03-22 2008-01-29 Qst Holdings, Llc Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements
US7200837B2 (en) * 2003-08-21 2007-04-03 Qst Holdings, Llc System, method and software for static and dynamic programming and configuration of an adaptive computing architecture
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US7533249B2 (en) * 2006-10-24 2009-05-12 Panasonic Corporation Reconfigurable integrated circuit, circuit reconfiguration method and circuit reconfiguration apparatus
FR2927438B1 (fr) * 2008-02-08 2010-03-05 Commissariat Energie Atomique Methode de prechargement dans une hierarchie de memoires des configurations d'un systeme heterogene reconfigurable de traitement de l'information
CN101710292B (zh) 2009-12-21 2013-03-27 中国人民解放军信息工程大学 一种可重构任务处理系统、调度器及任务调度方法
CN102629218A (zh) 2012-03-14 2012-08-08 西安交通大学 一种基于任务长宽比的可重构硬件任务放置方法
CN102681901B (zh) 2012-05-08 2014-04-23 西安交通大学 一种分区域的可重构硬件任务放置方法
CN104615488B (zh) * 2015-01-16 2018-01-19 华为技术有限公司 异构多核可重构计算平台上任务调度的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630305A (zh) * 2008-07-16 2010-01-20 中国人民解放军信息工程大学 高效能计算机中可重构部件的柔性管理方法
CN102253920A (zh) * 2011-06-08 2011-11-23 清华大学 一种全互联路由结构动态可重构数据处理方法及处理器
CN102360309A (zh) * 2011-09-29 2012-02-22 中国科学技术大学苏州研究院 片上多核异构系统的调度系统与调度执行方法
CN102508816A (zh) * 2011-11-15 2012-06-20 东南大学 一种应用于粗粒度可重构阵列的配置方法

Also Published As

Publication number Publication date
EP3239852B1 (en) 2022-11-02
EP3239852A1 (en) 2017-11-01
CN104615488A (zh) 2015-05-13
US10552222B2 (en) 2020-02-04
WO2016112701A9 (zh) 2017-07-27
US20170315846A1 (en) 2017-11-02
EP3239852A4 (en) 2018-01-10
WO2016112701A1 (zh) 2016-07-21

Similar Documents

Publication Publication Date Title
CN104615488B (zh) 异构多核可重构计算平台上任务调度的方法和装置
US11222256B2 (en) Neural network processing system having multiple processors and a neural network accelerator
CN105487838B (zh) 一种动态可重构处理器的任务级并行调度方法与系统
EP3757901A1 (en) Schedule-aware tensor distribution module
US9983857B2 (en) Dynamic computational acceleration using a heterogeneous hardware infrastructure
CN102023844B (zh) 并行处理器及其线程处理方法
JP2020537785A (ja) ホスト通信されるマージされた重みと層単位命令のパッケージとを使用するニューラルネットワークアクセラレータによる多層ニューラルネットワーク処理
CN102508712A (zh) 异构多核可重构混合系统中的中间件系统及任务执行方法
TWI827792B (zh) 多路徑神經網路、資源配置的方法及多路徑神經網路分析器
CN103197916A (zh) 用于源操作数收集器高速缓存的方法和装置
CN104375805A (zh) 采用多核处理器仿真可重构处理器并行计算过程的方法
CN107656813A (zh) 一种负载调度的方法、装置及终端
CN109983440A (zh) 数据处理
CN107077390A (zh) 一种任务处理方法以及网卡
EP1845462B1 (en) Hardware emulations system for integrated circuits having a heterogeneous cluster of processors
CN103713944B (zh) 一种内核中线程的处理方法、装置和系统
CN107273527A (zh) 一种Hadoop集群和分布式系统
CN111767995A (zh) 运算方法、装置及相关产品
KR102578762B1 (ko) 뉴럴 프로세서
US9015719B2 (en) Scheduling of tasks to be performed by a non-coherent device
CN105893660B (zh) 一种面向符号bdd操作的cpu设计方法及计算系统
CN106569968A (zh) 用于可重构处理器的阵列间数据传输结构与调度方法
US20240069770A1 (en) Multiple contexts for a memory unit in a reconfigurable data processor
CN107861791A (zh) 处理计算机壳层Shell命令的方法和装置
US20220114234A1 (en) Matrix processing engine with coupled dense and scalar compute

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant