CN101794239B - 一种基于数据流模型的多处理器任务调度管理方法 - Google Patents
一种基于数据流模型的多处理器任务调度管理方法 Download PDFInfo
- Publication number
- CN101794239B CN101794239B CN2010101253818A CN201010125381A CN101794239B CN 101794239 B CN101794239 B CN 101794239B CN 2010101253818 A CN2010101253818 A CN 2010101253818A CN 201010125381 A CN201010125381 A CN 201010125381A CN 101794239 B CN101794239 B CN 101794239B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- port
- task
- program
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种基于数据流模型的多处理器任务调度管理方法,将数据流模型应用到系统任务调度管理中,通过多处理器配置文件的分析,将系统中的应用任务转化为数据流模型中的程序节点;将节点映射在多个处理器上,基于片上互连网络,以数据在节点间的转移来驱动节点程序的运行,最终实现系统对于多处理器系统中节点的调度,从而实现多处理器系统中应用任务的调度和管理。采用该基于数据流模型的多处理器任务调度管理方法,能提升系统效率。
Description
技术领域
本发明涉及分布存储式多处理器系统中的任务调度管理设计,特别是数据流模型在任务调度管理中的应用,以及基于片上互连网络、任务在系统中的映射调度和管理。所涉及的任务调度管理方法更适合于分布存储式多处理器嵌入式系统,属于计算机系统软件设计领域。
背景技术
随着计算机硬件设计的创新和工艺的改进,计算机系统硬件功能越来越强,支持的应用范围越来越广,核心处理器的频率越来越高。而高频率带来的诸如线干扰、线延迟和功耗壁垒等一系列问题渐渐成为计算机系统性能提高的瓶颈。对于嵌入式系统而言,系统面积和系统功耗的限制要求都比较严格,高频率带来的这些问题更加成为嵌入式系统发展的阻碍。
多处理器系统结构弥补了高频率处理器结构带来的不足。多处理器系统可以并行执行多个应用任务,使得系统效率得到大幅提升。从存储结构方面,多处理器系统归为两类:集中式共享存储结构和分布存储式结构。
集中式共享存储结构比较适合于处理器数目较少的系统。在这种结构中,各个处理器共享一个集中式存储器,通过总线将处理器进行互联。然而随着系统中处理器数目的增多,总线承受各个处理器存储访问的压力也越来越大。此时存储器不能采用集中的共享方式组织,而必须分布服务于各个处理器。每个处理器都拥有一个本地存储器,用来存放和运行指令代码。当需要获取其它处理器的存储空间数据时,必须通过片上互连网络(NoC,Network on Chip)进行数据搬运。这种结构被称作分布存储式结构。
片上互连网络是将计算机网络和并行计算机互联网络应用到多处理器系统芯片上的一种技术。在分布存储式结构中,处理器通过通信节点接入网络,网络由许多点对点的链路组成,不存在全局的长连线,减小了长连线效应。
以片上互连网络为构建基础,分布存储式的多处理器结构缩短了本地存储器的访问延迟,存储器带宽得到大幅节约。然而该结构带来的一个问题是针对多处理器的任务调度管理设计相对复杂。在系统软件设计中,需要将串行的任务程序流转化为适合于多处理器结构的并行程序流,同时针对该结构的任务调度需要将程序间数据依赖关系和交互数据量降低至最小,以有效利用片上互连网络的网络带宽,提升系统效率。
发明内容
本发明要解决的技术问题是提供一种能提升系统效率的基于数据流模型的多处理器任务调度管理方法。
为了解决上述技术问题,本发明提供一种基于数据流模型的多处理器任务调度管理方法,将数据流模型应用到系统任务调度管理中,通过多处理器配置文件的分析,将系统中的应用任务转化为数据流模型中的程序节点;将节点映射在多个处理器上,基于片上互连网络,以数据在节点间的转移来驱动节点程序的运行,最终实现系统对于多处理器系统中节点的调度,从而实现多处理器系统中应用任务的调度和管理。
作为本发明的基于数据流模型的多处理器任务调度管理方法的改进:每个程序节点都对应一段任务程序,对每个程序节点的调度等同于对任务的调度;每个程序节点包含一个或多个端口,由端口的连接关系来体现数据流模型中节点间的数据流依赖关系;端口分为输入端口和输出端口两类;每个端口都有对应的数据缓冲区,用于数据在程序节点间的交互;系统通过端口间连接关系判断节点间的数据依赖,完成任务调度。
作为本发明的基于数据流模型的多处理器任务调度管理方法的进一步改进:需要通过3个模块的设计来实现:核心模块、节点控制模块和驱动模块;
核心模块用于识别用户的配置文件,将应用任务转化为数据流模型中的程序节点,并根据程序节点和节点中的端口信息对系统进行初始化,对任务进行调度;
节点控制模块用于提供调用接口,实现关于端口的操作,提供对于核心模块中任务调度方面的功能支持;提供两个函数调用接口:端口数据读入调用接口和端口数据写出调用接口;
驱动模块用于对节点间数据通信的底层硬件进行驱动包装,对片上互连网络的利用提供驱动支持,提供节点控制模块和核心模块正常运行所需的驱动环境。
本发明主要针对分布存储式多处理器结构中的任务调度,提出了一种任务调度的软件管理方法;借用软件模型实现多处理器系统的任务调度,可以缩短系统开发周期;并且采用该方法可以有效降低分布存储式多处理器结构中处理器间通信开销,有效利用片上互连网络的通信带宽,提高处理器利用率,从而降低系统开销。这种方法主要是基于数据流模型来设计实现的。
数据流模型将一个或多个应用程序P表示为不循环有向图G=(V,E,w,c),节点集合V中元素表示程序P中的不同任务,边集合E中元素表示任务vi和vj之间的数据交换关系。非负权值w(v)(v∈V)表示节点v的计算开销。非负权值c(eij)表示节点间的通信开销。如图1所示,一个任务P被划分为101-105一共5个节点,分别由v1到v5表示。模型用E中的元素驱动处理节点v,当且仅当eij(任意i)和ejk(任意k)所代表的数据关系准备完毕时,vj所代表的处理节点才可以被执行。
数据流模型中各节点程序的执行仅受有向边驱动,各节点程序的运行是可以并行化的。以数据流模型来表示任务程序可以有效地发掘程序并行性,方便任务的多处理器调度。同时,数据流模型中的各节点程序相互独立,不需要共享存储数据交换的支持,更适合于分布存储式的多处理器系统结构。
本发明将数据流模型结合到具体的嵌入式系统任务调度管理中,首次提出了在分布存储式多处理器结构中的一种任务调度软件模型实现方法。该方法有助于提升大数据量运算程序的调度管理效率,能够将任务程序针对多处理器结构进行划分映射,能够有效利用片上互连网络的网络带宽,适合于分布存储式多处理器嵌入式系统中的应用。
本发明所公开的多处理器系统中任务调度管理方法,该方法适合于分布存储式多处理器嵌入式系统,将数据流模型应用到系统任务调度管理中,其核心思想是通过多处理器配置文件的分析,将系统中的应用任务转化为数据流模型中的程序节点,以及节点中的端口;将节点映射在多个处理器上,基于片上互连网络,以数据在节点间的转移来驱动节点程序的运行,最终实现了系统对于多处理器系统中节点的调度,同时也就实现了多处理器系统中应用任务的调度和管理。
本发明设计的多处理器任务调度管理方法在实现中分为三个模块的设计:核心模块201,节点控制模块202和驱动模块203。如图2所示。
核心模块201的主要功能是识别用户的配置文件,将应用任务转化为数据流模型中的节点和端口,并根据节点和端口信息对系统进行初始化,对任务进行调度。
节点控制模块202的主要功能是提供一系列调用接口,实现节点中关于端口的操作,提供对于核心模块中任务调度方面的功能支持。主要实现两个调用接口:端口数据读入调用和端口数据写出调用。
驱动模块203的主要功能是对节点间数据通信的底层硬件进行驱动包装,对片上互连网络的利用提供驱动支持,提供节点控制模块和核心模块正常运行所需的驱动环境。
通过核心模块201、节点控制模块202和驱动模块203这三个模块的设计,能够将任务转化为适合在多处理器环境中调度数据流图,并且可以根据数据流模型中数据流驱动的思想对其进行调度,是一种多处理器环境下任务调度的管理方法。
本发明具有以下有益效果:
这种任务调度管理方法更适合于控制关系简单但是数据处理操作复杂的应用任务,更适合于专用性强,数据运算量大的分布存储式嵌入式多处理器系统。对于此类任务,这种调度管理方法可以有效利用片上互连网络带宽,缩减系统调度和通信开销,尤其是多处理器间的调度控制开销,增加处理器利用率。使用该调度方法,程序员在进行多处理器应用程序编程时编写难度大幅度降低,这也适合于研发周期要求严格,硬件环境复杂多样的嵌入式系统开发。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明。
图1为本发明的数据流模型示意图;
图2为任务调度管理的设计方法示意图;
图3为节点与端口示意图;
图4位节点信息与端口信息示意图。
具体实施方式
本发明中多处理器任务调度管理方法在系统软件设计中分为三个模块来实现。这三个模块为核心模块201,节点控制模块202以及驱动模块203。通过它们的协调配合,可以将系统中的应用任务转换成适合于多处理器调度的程序节点和相应端口。节点和端口有以下特点:
系统通过端口间连接关系判断节点间的数据依赖,完成任务调度。
1.核心模块
核心模块201主要完成以下功能:
i.根据配置文件识别任务的数据流图信息,并以此为基础生成每个任务所对应的节点信息,以及对应该节点的端口信息,完成由应用任务向节点和端口数据结构的转换。
ii.基于节点信息,对多处理器硬件设备进行初始化,包括存储空间针对应用任务的划分,以及多处理器间通信设备的初始化。
iii.基于端口信息对应用任务进行调度。
核心模块201需要通过配置文件的读取和分析才能够对任务程序进行多处理器的节点划分。其配置内容包含:
●基本系统信息。包括系统中节点数目、处理器数目、处理器编号、每个节点对应函数入口的名称,等等。
●数据流图信息。主要指各节点之间的连接关系。
如图4所示,系统通过对配置文件的分析,生成组成节点信息402和端口信息403。组成节点信息的要素如表1所列。
表1、组成节点信息的要素
index | 节点所在的处理器编号 |
input_port_num | 节点包含的输入端口数目 |
output_port_num | 节点包含的输出端口数目 |
ready_entry | 节点的端口状态 |
input_port_tbl | 节点中所有输入端口信息 |
output_port_tbl | 节点中所有输出端口信息 |
code_addr | 节点对应的应用任务的函数入口 |
其中ready_entry是32位的无符号长整型的变量,从第30位到第0位中的每个位都代表节点中的一个端口,其代表的意义可以分作以下三种情况:
●该位代表某输入端口。该位为0代表相应输入端口的缓冲区为空,数据仍未准备好,该程序节点不能够被执行。该位为1代表相应输入端口缓冲区满,数据已准备好,程序节点的执行不会被这个端口的状态所阻塞。
●该位代表某输出端口。该位为0代表相应输出端口的缓冲区为满,数据还没有被其他节点对象取走,该程序节点不能够被执行。该位为1代表相应输出端口缓冲区为空,端口已经准备好接收数据,程序节点的执行不会被这个端口的状态所阻塞。
●该位代表某不存在的端口。该位会在核心模块识别数据流图信息时被置1。
第31位是调度器的预留控制位,在初始化时同样会被置1。可以看出,程序节点可以被执行的充要条件是ready_entry为0xFFFF_FFFF。系统对ready_entry的判断,就相对应于对节点端口状态的判断,进而可以决定该程序节点是否可以被调度运行。
组成端口信息的数据结构如表2所列:
表2、组成端口信息的要素
pe_index | 端口所在处理器编号 |
ob_index | 端口所在节点编号 |
port_index | 端口编号 |
p_buffer | 端口对应缓冲区的地址 |
核心模块201通过判断每个节点的ready_entry判断该节点是否可以被执行。如果可以,系统会从该节点对应的函数入口code_addr处开始,调度该应用任务。调度策略可以根据不同的应用进行选择。比如轮转策略,当节点执行完成后,即使可以被再次执行,也会被转移到调度队列的尾部,优先判断其他节点。这样可以防止一个程序节点不停抢占处理器,导致其他节点无法运行的现象。
2.节点控制模块
节点控制模块202的主要功能是提供一系列调用接口,实现节点中关于端口的操作。调用接口有两个:端口数据读入调用和端口数据写出调用。端口数据读入调用主要用于节点从对应端口中读入数据,以便节点中数据的处理。端口数据写出调用主要用于节点向端口的缓冲区中写出数据。节点控制模块主要用于节点间的数据交互,提供对于核心模块中任务调度方面的功能支持。
为方便叙述,将执行调用的程序节点称作目标节点,将为目标节点提供数据的节点称作上游节点,接受目标节点数据输出的节点称作下游节点。
发明中端口数据读入调用的实现流程如下:
i.将输入端口缓冲区中的数据复制到目标节点中申请的地址空间。
ii.更新目标节点状态,表示目标节点的输入端口缓冲区为空,暂不可以被调度执行。
iii.更新上游节点状态,表示上游节点的对应输出端口缓冲区已经被搬空,不会阻塞上游节点的执行。
端口数据写出调用的实现流程如下:
i.将目标节点中的数据复制到输出端口的缓冲区中。
ii.更新目标节点状态,表示目标节点的输出端口缓冲区为满,暂不可以被调度执行。
iii.更新下游节点状态,表示下游节点的对应输入端口需要的数据已经准备完毕,可以被下游节点所读取和处理执行。
3.驱动模块
驱动模块203的主要功能是对节点间数据通信的底层硬件进行驱动包装,也就是对片上互连网络进行驱动接口的设计。涉及到多处理器间数据搬运时,需要根据片上互连网络的通信协议进行端口间数据搬运复制。该模块主要对数据在节点间的转移提供硬件驱动支持,提供节点控制模块和核心模块正常运行所需的驱动环境。
驱动模块203设计所包含的一系列函数调用应包含以下功能:
●实现数据在本地处理器不同地址之间的复制转移,为划分在同一处理器上不同节点之间的数据转移提供驱动支持。
●实现数据在处理器间的复制转移,为不同处理器上节点间的数据转移提供驱动支持。
●实现对处理器的控制功能。当某处理器上所有程序节点执行完毕,或节点仍不满足运行条件时,可以使该处理器进入空闲低功耗状态,节约功耗。
最后,还需要注意的是,以上列举的仅是本发明的若干个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (1)
1.一种基于数据流模型的多处理器任务调度管理方法,其特征在于:将数据流模型应用到系统任务调度管理中,通过多处理器配置文件的分析,将系统中的应用任务转化为数据流模型中的程序节点;将节点映射在多个处理器上,基于片上互连网络,以数据在节点间的转移来驱动节点程序的运行,最终实现系统对于多处理器系统中节点的调度,从而实现多处理器系统中应用任务的调度和管理;
需要通过3个模块的设计来实现:核心模块、节点控制模块和驱动模块;
核心模块用于识别多处理器配置文件,将应用任务转化为数据流模型中的程序节点,并根据程序节点和节点中的端口信息对系统进行初始化,对任务进行调度;
节点控制模块用于提供调用接口,实现关于端口的操作,提供对于核心模块中任务调度方面的功能支持;提供两个函数调用接口:端口数据读入调用接口和端口数据写出调用接口;
驱动模块用于对节点间数据通信的底层硬件进行驱动包装,对片上互连网络的利用提供驱动支持,提供节点控制模块和核心模块正常运行所需的驱动环境;
所述每个程序节点都对应一段任务程序,对每个程序节点的调度等同于对任务的调度;每个程序节点包含一个或多个端口,由端口的连接关系来体现数据流模型中节点间的数据流依赖关系;端口分为输入端口和输出端口两类;每个端口都有对应的数据缓冲区,用于数据在程序节点间的交互;系统通过端口间连接关系判断节点间的数据依赖,完成任务调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101253818A CN101794239B (zh) | 2010-03-16 | 2010-03-16 | 一种基于数据流模型的多处理器任务调度管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101253818A CN101794239B (zh) | 2010-03-16 | 2010-03-16 | 一种基于数据流模型的多处理器任务调度管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101794239A CN101794239A (zh) | 2010-08-04 |
CN101794239B true CN101794239B (zh) | 2012-11-14 |
Family
ID=42586949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101253818A Expired - Fee Related CN101794239B (zh) | 2010-03-16 | 2010-03-16 | 一种基于数据流模型的多处理器任务调度管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101794239B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI550514B (zh) * | 2014-05-09 | 2016-09-21 | Huawei Tech Co Ltd | Computer execution method and computer system for starting a computer system having a plurality of processors |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019743B (zh) * | 2012-12-31 | 2016-02-10 | 清华大学 | 一种模块化的信号处理流图与多处理器硬件平台建模方法 |
CN105468445B (zh) * | 2015-11-20 | 2020-01-14 | Tcl集团股份有限公司 | 一种基于WEB的Spark应用程序调度方法及系统 |
CN109522254B (zh) | 2017-10-30 | 2022-04-12 | 上海寒武纪信息科技有限公司 | 运算装置及方法 |
CN109799973B (zh) * | 2018-12-11 | 2022-02-11 | 极道科技(北京)有限公司 | 一种数据驱动的用户透明的可扩展编程方法 |
CN117178257A (zh) * | 2021-08-13 | 2023-12-05 | 华为技术有限公司 | 任务调度架构和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1602467A (zh) * | 2001-12-14 | 2005-03-30 | 皇家飞利浦电子股份有限公司 | 具有多个处理器的数据处理系统、用于具有多个处理器的数据处理系统的任务调度程序及用于任务调度的对应方法 |
CN101387952A (zh) * | 2008-09-24 | 2009-03-18 | 上海大学 | 单芯片多处理器任务调度管理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080134187A1 (en) * | 2006-11-29 | 2008-06-05 | Nec Laboratories America | Hardware scheduled smp architectures |
US8276143B2 (en) * | 2008-03-10 | 2012-09-25 | Oracle America, Inc. | Dynamic scheduling of application tasks in a distributed task based system |
-
2010
- 2010-03-16 CN CN2010101253818A patent/CN101794239B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1602467A (zh) * | 2001-12-14 | 2005-03-30 | 皇家飞利浦电子股份有限公司 | 具有多个处理器的数据处理系统、用于具有多个处理器的数据处理系统的任务调度程序及用于任务调度的对应方法 |
CN101387952A (zh) * | 2008-09-24 | 2009-03-18 | 上海大学 | 单芯片多处理器任务调度管理方法 |
Non-Patent Citations (1)
Title |
---|
陈科明,刘鹏,王维东,姚庆栋.用于多处理器媒体SoC设计的实时总线调度优化策略.《浙江大学学报(工学版)》.2007,第41卷(第9期), * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI550514B (zh) * | 2014-05-09 | 2016-09-21 | Huawei Tech Co Ltd | Computer execution method and computer system for starting a computer system having a plurality of processors |
Also Published As
Publication number | Publication date |
---|---|
CN101794239A (zh) | 2010-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101794239B (zh) | 一种基于数据流模型的多处理器任务调度管理方法 | |
US10963306B2 (en) | Managing resource sharing in a multi-core data processing fabric | |
CN102360309B (zh) | 片上多核异构系统的调度系统与调度执行方法 | |
CN102023844B (zh) | 并行处理器及其线程处理方法 | |
KR102600852B1 (ko) | 이종 cpu/gpu 시스템에서 데이터 흐름 신호 처리 애플리케이션 가속화 | |
CN103150279B (zh) | 一种主机与基板管理控制器共享设备的方法 | |
CN103207782B (zh) | 基于multi-kernel MOS 的分区系统构建方法 | |
US20160202999A1 (en) | A Computing Platform, A Reconfigurable Hardware Device And A Method for Simultaneously Executing Processes On Dynamically Reconfigurable Hardware Device, Such As An FPGA, As Well As Instruction Set Processors, Such As A CPU, And A Related Computer Readable Medium | |
US8935491B2 (en) | Memory architecture for dynamically allocated manycore processor | |
US20070150854A1 (en) | Method for specifying stateful, transaction-oriented systems for flexible mapping to structurally configurable, in-memory processing semiconductor device | |
CN102375761A (zh) | 业务管理方法和装置、以及设备 | |
CN103793255B (zh) | 可配置的多主模式多os内核实时操作系统架构的启动方法 | |
CN102497411A (zh) | 面向密集运算的层次化异构多核片上网络架构 | |
CN101976204B (zh) | 面向服务的异构多核计算平台及其使用的任务调度方法 | |
CN102193804A (zh) | 一种单板驱动的加载方法和通信设备 | |
CN108874730A (zh) | 一种数据处理器及数据处理方法 | |
CN1464415A (zh) | 一种多处理器系统 | |
Zhu et al. | Pareto efficient design for reconfigurable streaming applications on CPU/FPGAs | |
CN111459871A (zh) | 一种基于fpga异构计算的区块链加速系统及方法 | |
CN202033745U (zh) | 基于星型互联架构的片上异构多核系统 | |
CN113723931A (zh) | 一种适用于多尺度高通量材料计算的工作流建模方法 | |
US20230385103A1 (en) | Intelligent data conversion in dataflow and data parallel computing systems | |
de Niz et al. | On resource allocation in architectural models | |
Attiya et al. | Task allocation for minimizing programs completion time in multicomputer systems | |
Kamrad et al. | An Ada runtime system implementation of the Ravenscar profile for high speed application-layer data switch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121114 Termination date: 20150316 |
|
EXPY | Termination of patent right or utility model |