CN110297661B - 基于amp构架dsp操作系统的并行计算方法、系统及介质 - Google Patents

基于amp构架dsp操作系统的并行计算方法、系统及介质 Download PDF

Info

Publication number
CN110297661B
CN110297661B CN201910426070.6A CN201910426070A CN110297661B CN 110297661 B CN110297661 B CN 110297661B CN 201910426070 A CN201910426070 A CN 201910426070A CN 110297661 B CN110297661 B CN 110297661B
Authority
CN
China
Prior art keywords
task
tasks
operating system
kernel
thread
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
CN201910426070.6A
Other languages
English (en)
Other versions
CN110297661A (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.)
CETC 32 Research Institute
Original Assignee
CETC 32 Research Institute
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 CETC 32 Research Institute filed Critical CETC 32 Research Institute
Priority to CN201910426070.6A priority Critical patent/CN110297661B/zh
Publication of CN110297661A publication Critical patent/CN110297661A/zh
Application granted granted Critical
Publication of CN110297661B publication Critical patent/CN110297661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units

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

本发明提供了一种基于AMP构架DSP操作系统的并行计算方法、系统及介质,包括:操作系统使用步骤:混合式内存机制提供步骤:根据所使用的嵌入式DSP操作系统,通过共享内存和分布式内存混合机制,完成任务池中的任务分配,输出分配任务,在任务执行完成后,同步任务结果;任务发布和执行步骤:根据获得的分配任务,基于多核导航进行任务发布和执行。本发明在操作系统内核中引入核间同步、任务分配和回收机制,减少了系统的调度层级和次数、提高了并行计算的效率,对于实时性要求非常高的嵌入式DSP操作系统有着非常重要的意义。

Description

基于AMP构架DSP操作系统的并行计算方法、系统及介质
技术领域
本发明涉及AMP构架的并行计算技术领域,具体地,涉及基于AMP构架DSP操 作系统的并行计算方法、系统及介质。
背景技术
随着集成电路技术的快速发展,嵌入式处理器已经进入到多核时代。多核处理 器操作系统按体系结构可分为对称多处理SMP(Symmetric Multi-Processing)构架 和非对称多处理AMP(Asymmetric Multi-Processing)构架。在SMP构架的系统中, 处理器的所有核共享系统内存和外设资源,由操作系统负责处理器间协作,并保持 数据结构的一致性,在AMP构架的系统中,用户需要对各个操作系统使用的硬件资 源进行划分,核间的协作仅限于使用共享存储器的情况。
对主流的DSP处理器来说,因为芯片内部的各个核之间没有共享Cache,几乎都 采用AMP构架的操作系统,也就是每个核上运行一个操作系统实例,每个操作系统 都有自己独占的资源,如CPU、Cache等,其它外设资源由多个系统共享。其优点 是,各个核都可根据需求单独参与运算和数据处理,理论上可以达到很高的计算效 率,AMP构架的实时响应能力要好于SMP构架,这对实时性要求极高的DSP操作系 统来说至关重要。
在基于DSP芯片的并行计算中,每个内核作为一个节点。通过多核并行计算, 可以解决更大规模、更加复杂的问题,单个内核在某个时间段内只能完成一个任务, 多内核协同可以同时完成多个任务,充分利用DSP芯片内部的计算资源,以提高运 行效率。
由于DSP芯片使用AMP构架的嵌入式系统,其缺点也显而易见,程序设计比较 复杂,用户必须手动将计算任务分配到指定的核上,并且由用户完成核间的通信、 同步和共享资源的分配,无形中增加了并行计算的难度。特别是对于并行计算算法 的设计人员来说,不习惯AMP构架的编程方式,效率低下。
为了降低并行编程的难度和复杂度,使用户可以更专注于算法本身,而非与处 理器构架相关的细节,本发明提出了一种基于AMP构架的DSP操作系统的并行计算 方法。
针对上述现有技术中的缺陷,本发明要解决的技术问题体现在以下几点:
1)降低并行编程的难度,在本发明中,DSP处理器的每个核都会参与并行计算, 但对于用户来说,仅需要在单个核上编程并指定参与运算的核的数量,然后用户指 定的任务会自动的分配到多个核上,任务完成后,将结果由单一核返回给用户,用 户无需关注处理器内部各个核之间的协作。
2)提高嵌入式操作系统的并行效率,在操作系统内核中引入核间同步、任务分 配和回收机制,替代现有的AMP构架中通过调用操作系统接口和驱动接口完成同步 的方法,在操作系统内核完成任务分配,可减少系统的调度层级和次数、提高实时 性和并行计算的效率。
3)均衡DSP芯片各个核的负载,本发明通过建立任务队列、任务状态列和DSP 芯片内部的多核导航资源完成负载均衡功能,使闲置的DSP运算资源得到最大限度 的发挥。
专利文献CN105045566B(申请号:201510496959.3)公开了一种嵌入式并行计 算系统及采用其的并行计算方法,所述系统包括一个数据输入模块、多个完全相同 的机箱和一个数据输出模块;每一个所述机箱包括两个交换模块、多个计算模块、 一个底板和一个电源管理模块;每一个所述交换模块包括一个光纤转换器、一个 SRIO交换芯片和一个GbE交换芯片,每一个所述计算模块包括两片多核DSP、一个 SRIO交换芯片和一个FPGA。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于AMP构架DSP操作系统的并行计算方法、系统及介质。
根据本发明提供的一种基于AMP构架DSP操作系统的并行计算方法,包括:
混合式内存机制提供步骤:根据所使用的嵌入式DSP操作系统,通过共享内存和分布式内存混合机制,完成任务池中的任务分配,输出分配任务,在任务执行完成后, 同步任务结果;
任务发布和执行步骤:根据获得的分配任务,基于多核导航进行任务发布和执行;
并行处理步骤:根据操作系统内核级的并行处理机制,将计算任务分配到不同核上,实现并行计算;
负载均衡步骤:根据负载均衡策略,在内核之间分配大约相等数量的任务。
优选地,所述嵌入式DSP操作系统为锐华DSP操作系统。
优选地,所述混合式内存机制提供步骤:
所述共享内存和分布式内存混合机制:
任务管理步骤:收到并行计算任务后,首先根据任务管理策略,使用共享内存完成任务管理、任务间的数据协同,并将任务分解,然后添加到共享内存的任务池中;
任务分配步骤:根据操作系统的任务调度策略完成对任务池中的任务的分配,进入 并行处理步骤继续执行;
任务同步步骤:任务执行完成后,将计算结果放置在共享内存中,并通过操作系统提供的Cache函数完成内存数据的同步,Cache函数的功能是将当前Cache的数据写入到 共享内存,使其它核能够看到当前的任务结果,从而实现同步;
所述任务管理策略、任务调度策略、Cache函数均属于嵌入式DSP操作系统的 基本功能,根据嵌入式DSP操作系统获得。
优选地,所述任务发布和执行步骤:
通过多核导航将获得的分配任务分配到指定的内核上,当内核收到来自于多核导航的任务后,开始执行任务,任务的执行是以时间片的形式执行的,在时间片轮 换时刻执行以下操作:
idle线程判断步骤:根据任务ID,判断当前的任务是否是idle线程:如果不是idle线程,继续执行前当计算任务,等到下一个时间片轮换时刻;如果是idle线程,表示 当前没有进行任何计算,进入任务描述表读取步骤;
任务描述表读取步骤:读取任务描述表,判断任务描述表是否为空:若是空,则表示没有需要进行计算的任务,返回idle线程判断步骤继续执行;如果不是空,则进入 任务执行步骤;
任务执行步骤:根据读取的任务描述表解析任务的入口地址、参数、返回数据的地址等信息,并执行该任务。
优选地,所述并行处理步骤:
所述并行处理机制:
在每个内核上运行一个操作系统实例,每个内核都是独立的计算单元,内核中 仅有一个主核,主核的操作系统实例对用户可见,用户仅在主核上编程实现多核参 与运算;
所述主核包括主线程和工作线程,从核只有工作线程;
所述主线程用于解析用户任务、将其分割成每个内核可独立执行的最小单元, 并按照指定的格式放入到任务池,工作线程会按照任务进入到任务池的先后顺序获 取任务,执行计算任务,执行完成后,向主核的主线程发送执行结果;
当主线程解析到不可独立执行的任务时,即当前任务的执行必须依赖于前面任务的执行结果,主线程会在当前任务前设置屏障点,遇到屏障点时必须等到任务池 中所有的任务执行完毕时才能放入新的任务。
优选地,所述负载均衡步骤:
根据负载均衡策略,在内核之间分配大约相等数量的任务
所述任务包括:已知工作量任务、未知工作量任务;
为已知工作量任务和未知工作量任务分别设置任务队列,将执行时间长大于预设时 长的任务和执行次数多于预设次数的任务平均分配到各个内核中。
根据本发明提供的一种基于AMP构架DSP操作系统的并行计算系统,包括:
混合式内存机制提供模块:根据所使用的嵌入式DSP操作系统,通过共享内存和分布式内存混合机制,完成任务池中的任务分配,输出分配任务,在任务执行完成后, 同步任务结果;
任务发布和执行模块:根据获得的分配任务,基于多核导航进行任务发布和执行;
并行处理模块:根据操作系统内核级的并行处理机制,将计算任务分配到不同核上,实现并行计算;
负载均衡模块:根据负载均衡策略,在内核之间分配大约相等数量的任务。
优选地,所述嵌入式DSP操作系统为锐华DSP操作系统;
所述混合式内存机制提供模块:
所述共享内存和分布式内存混合机制:
任务管理模块:收到并行计算任务后,首先根据任务管理策略,使用共享内存完成任务管理、任务间的数据协同,并将任务分解,然后添加到共享内存的任务池中;
任务分配模块:根据操作系统的任务调度策略完成对任务池中的任务的分配,进入 并行处理模块继续执行;
任务同步模块:任务执行完成后,将计算结果放置在共享内存中,并通过操作系统提供的Cache函数完成内存数据的同步,Cache函数的功能是将当前Cache的数据写入到 共享内存,使其它核能够看到当前的任务结果,从而实现同步;
所述任务管理策略、任务调度策略、Cache函数均属于嵌入式DSP操作系统的 基本功能,根据嵌入式DSP操作系统获得;
所述任务发布和执行模块:
通过多核导航将获得的分配任务分配到指定的内核上,当内核收到来自于多核导航的任务后,开始执行任务,任务的执行是以时间片的形式执行的,在时间片轮 换时刻执行以下操作:
idle线程判断模块:根据任务ID,判断当前的任务是否是idle线程:如果不是idle线程,继续执行前当计算任务,等到下一个时间片轮换时刻;如果是idle线程,表示 当前没有进行任何计算,调用任务描述表读取模块;
任务描述表读取模块:读取任务描述表,判断任务描述表是否为空:若是空,则表示没有需要进行计算的任务,调用idle线程判断模块;如果不是空,则调用任务执行 模块;
任务执行模块:根据读取的任务描述表解析任务的入口地址、参数、返回数据的地址等信息,并执行该任务。
优选地,所述并行处理模块:
所述并行处理机制:
在每个内核上运行一个操作系统实例,每个内核都是独立的计算单元,内核中 仅有一个主核,主核的操作系统实例对用户可见,用户仅在主核上编程实现多核参 与运算;
所述主核包括主线程和工作线程,从核只有工作线程;
所述主线程用于解析用户任务、将其分割成每个内核可独立执行的最小单元, 并按照指定的格式放入到任务池,工作线程会按照任务进入到任务池的先后顺序获 取任务,执行计算任务,执行完成后,向主核的主线程发送执行结果;
当主线程解析到不可独立执行的任务时,即当前任务的执行必须依赖于前面任务的执行结果,主线程会在当前任务前设置屏障点,遇到屏障点时必须等到任务池 中所有的任务执行完毕时才能放入新的任务;
所述负载均衡模块:
根据负载均衡策略,在内核之间分配大约相等数量的任务
所述任务包括:已知工作量任务、未知工作量任务;
为已知工作量任务和未知工作量任务分别设置任务队列,将执行时间长大于预设时 长的任务和执行次数多于预设次数的任务平均分配到各个内核中。
根据本发明一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算 机程序被处理器执行时实现上述中任一项所述的基于AMP构架DSP操作系统的并行计算方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、性能提升:本发明在操作系统内核中引入核间同步、任务分配和回收机制, 减少了系统的调度层级和次数、提高了并行计算的效率,对于实时性要求非常高的 嵌入式DSP操作系统有着非常重要的意义。
2、易用性好:但对于用户来说,仅需要在单个核上编程,即可完成并行计算, 尤其是对于不熟悉操作系统构架和芯片技术细节的用户同样可以设计出高效率的 并行计算程序。
3、通用性好:本发明的方法基本兼容当前SMP构架的并行计算方法,只需要进 行适当的配置,即可将已有的程序移植到AMP构架的操作系统上来,提高了灵活性 和通用性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的优选例提供的操作系统的体系构架示意图。
图2为本发明的优选例提供的内存构架示意图。
图3为本发明的优选例提供的基于多核导航的任务分配机制。
图4为本发明的优选例提供的负载均衡策略示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人 员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于 本发明的保护范围。
根据本发明提供的一种基于AMP构架DSP操作系统的并行计算方法,包括:
混合式内存机制提供步骤:根据所使用的嵌入式DSP操作系统,通过共享内存和分布式内存混合机制,完成任务池中的任务分配,输出分配任务,在任务执行完成后, 同步任务结果;
任务发布和执行步骤:根据获得的分配任务,基于多核导航进行任务发布和执行;
并行处理步骤:根据操作系统内核级的并行处理机制,将计算任务分配到不同核上,实现并行计算;
负载均衡步骤:根据负载均衡策略,在内核之间分配大约相等数量的任务。
具体地,所述嵌入式DSP操作系统为锐华DSP操作系统。
具体地,所述混合式内存机制提供步骤:
所述共享内存和分布式内存混合机制:
任务管理步骤:收到并行计算任务后,首先根据任务管理策略,使用共享内存完成任务管理、任务间的数据协同,并将任务分解,然后添加到共享内存的任务池中;
任务分配步骤:根据操作系统的任务调度策略完成对任务池中的任务的分配,进入 并行处理步骤继续执行;
任务同步步骤:任务执行完成后,将计算结果放置在共享内存中,并通过操作系统提供的Cache函数完成内存数据的同步,Cache函数的功能是将当前Cache的数据写入到 共享内存,使其它核能够看到当前的任务结果,从而实现同步;
所述任务管理策略、任务调度策略、Cache函数均属于嵌入式DSP操作系统的 基本功能,根据嵌入式DSP操作系统获得。
具体地,所述任务发布和执行步骤:
通过多核导航将获得的分配任务分配到指定的内核上,当内核收到来自于多核导航的任务后,开始执行任务,任务的执行是以时间片的形式执行的,在时间片轮 换时刻执行以下操作:
idle线程判断步骤:根据任务ID,判断当前的任务是否是idle线程:如果不是idle线程,继续执行前当计算任务,等到下一个时间片轮换时刻;如果是idle线程,表示 当前没有进行任何计算,进入任务描述表读取步骤;
任务描述表读取步骤:读取任务描述表,判断任务描述表是否为空:若是空,则表示没有需要进行计算的任务,返回idle线程判断步骤继续执行;如果不是空,则进入 任务执行步骤;
任务执行步骤:根据读取的任务描述表解析任务的入口地址、参数、返回数据的地址等信息,并执行该任务。
具体地,所述并行处理步骤:
所述并行处理机制:
在每个内核上运行一个操作系统实例,每个内核都是独立的计算单元,内核中 仅有一个主核,主核的操作系统实例对用户可见,用户仅在主核上编程实现多核参 与运算;
所述主核包括主线程和工作线程,从核只有工作线程;
所述主线程用于解析用户任务、将其分割成每个内核可独立执行的最小单元, 并按照指定的格式放入到任务池,工作线程会按照任务进入到任务池的先后顺序获 取任务,执行计算任务,执行完成后,向主核的主线程发送执行结果;
当主线程解析到不可独立执行的任务时,即当前任务的执行必须依赖于前面任务的执行结果,主线程会在当前任务前设置屏障点,遇到屏障点时必须等到任务池 中所有的任务执行完毕时才能放入新的任务。
具体地,所述负载均衡步骤:
根据负载均衡策略,在内核之间分配大约相等数量的任务
所述任务包括:已知工作量任务、未知工作量任务;
为已知工作量任务和未知工作量任务分别设置任务队列,将执行时间长大于预设时 长的任务和执行次数多于预设次数的任务平均分配到各个内核中。
本发明提供的基于AMP构架DSP操作系统的并行计算系统,可以通过本发明给的基于AMP构架DSP操作系统的并行计算方法的步骤流程实现。本领域技术人员可以将所述 基于AMP构架DSP操作系统的并行计算方法,理解为所述基于AMP构架DSP操作系统的 并行计算系统的一个优选例。
根据本发明提供的一种基于AMP构架DSP操作系统的并行计算系统,包括:
混合式内存机制提供模块:根据所使用的嵌入式DSP操作系统,通过共享内存和分布式内存混合机制,完成任务池中的任务分配,输出分配任务,在任务执行完成后, 同步任务结果;
任务发布和执行模块:根据获得的分配任务,基于多核导航进行任务发布和执行;
并行处理模块:根据操作系统内核级的并行处理机制,将计算任务分配到不同核上,实现并行计算;
负载均衡模块:根据负载均衡策略,在内核之间分配大约相等数量的任务。
具体地,所述嵌入式DSP操作系统为锐华DSP操作系统;
所述混合式内存机制提供模块:
共享内存和分布式内存混合机制:
任务管理模块:收到并行计算任务后,首先根据任务管理策略,使用共享内存完成任务管理、任务间的数据协同,并将任务分解,然后添加到共享内存的任务池中;
任务分配模块:根据操作系统的任务调度策略完成对任务池中的任务的分配,进入 并行处理模块继续执行;
任务同步模块:任务执行完成后,将计算结果放置在共享内存中,并通过操作系统提供的Cache函数完成内存数据的同步,Cache函数的功能是将当前Cache的数据写入到 共享内存,使其它核能够看到当前的任务结果,从而实现同步;
所述任务管理策略、任务调度策略、Cache函数均属于嵌入式DSP操作系统的 基本功能,根据嵌入式DSP操作系统获得;
所述任务发布和执行模块:
通过多核导航将获得的分配任务分配到指定的内核上,当内核收到来自于多核导航的任务后,开始执行任务,任务的执行是以时间片的形式执行的,在时间片轮 换时刻执行以下操作:
idle线程判断模块:根据任务ID,判断当前的任务是否是idle线程:如果不是idle线程,继续执行前当计算任务,等到下一个时间片轮换时刻;如果是idle线程,表示 当前没有进行任何计算,调用任务描述表读取模块;
任务描述表读取模块:读取任务描述表,判断任务描述表是否为空:若是空,则表示没有需要进行计算的任务,调用idle线程判断模块;如果不是空,则调用任务执行 模块;
任务执行模块:根据读取的任务描述表解析任务的入口地址、参数、返回数据的地址等信息,并执行该任务。
具体地,所述并行处理模块:
所述并行处理机制:
在每个内核上运行一个操作系统实例,每个内核都是独立的计算单元,内核中 仅有一个主核,主核的操作系统实例对用户可见,用户仅在主核上编程实现多核参 与运算;
所述主核包括主线程和工作线程,从核只有工作线程;
所述主线程用于解析用户任务、将其分割成每个内核可独立执行的最小单元, 并按照指定的格式放入到任务池,工作线程会按照任务进入到任务池的先后顺序获 取任务,执行计算任务,执行完成后,向主核的主线程发送执行结果;
当主线程解析到不可独立执行的任务时,即当前任务的执行必须依赖于前面任务的执行结果,主线程会在当前任务前设置屏障点,遇到屏障点时必须等到任务池 中所有的任务执行完毕时才能放入新的任务;
所述负载均衡模块:
根据负载均衡策略,在内核之间分配大约相等数量的任务
所述任务包括:已知工作量任务、未知工作量任务;
为已知工作量任务和未知工作量任务分别设置任务队列,将执行时间长大于预设时 长的任务和执行次数多于预设次数的任务平均分配到各个内核中。
根据本发明一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算 机程序被处理器执行时实现上述中任一项所述的基于AMP构架DSP操作系统的并行计算方法的步骤。
下面通过优选例,对本发明进行更为具体地说明。
优选例1:
本优选例的方法包括如下步骤:
步骤1:使用嵌入式DSP操作系统
在本方案中,使用锐华DSP操作系统,该操作系统的内核采用了锐华嵌入式实 时操作系统,是中国电科32所研发的针对DSP芯片的基础软件解决方案,在海、 陆、空、天等军工项目中都得到了应用。操作系统部署在每个DSP核上,每个核都 有自己的存储空间和任务队列、上下文操作空间、堆栈等,核间提供了多核屏障、 自旋锁等多核同步和资源保护机制。
锐华DSP操作系统具有强实时、高可靠特征,基于微内核及组件技术,能根据 DSP应用需要对操作系统内核进行配置、裁剪、扩展与定制。基于优先级抢占的强 实时调度保证了系统强实时响应能力。每个核执行不同分支代码,支持模块的动态 加卸载,易于系统重构及应用升级,解决了多核DSP难于使用的问题,改变了原有 的DSP处理器编程模式,提高了用户的软件开发效率。
锐华DSP操作系统除了提供嵌入式操作系统的基本功能(如任务管理、内存管 理、对象管理、中断和异常、时钟和定时器、Cache管理)外,还提供DSP芯片的 基本驱动功能,如多核导航、硬件队列等。
操作系统的体系构架如图1所示。
步骤2:提供共享内存和私有内存混合机制
本步骤中用到的任务管理、任务调度策略、Cache函数均属于嵌入式操作系统 的基本功能,由“步骤1”中的DSP操作系统提供。
在多核DSP芯片中,包括两种内存,即共享内存和私有内存。DSP芯片的所有 内核可以用全局寻址的方式访问共享内存,每个内核可以独立地对共享内存操作, 一个内核对共享内存地址的改变对其它内核来说是可见的。私有内存是每个内核专 属的,每个核独立进行操作,一个内核私有内存上所发生的变化并不会影响到其它 内核。
在本发明中,根据DSP芯片的内存特点采用混合式内存机制,在该机制中,任 务调度时会使用共享内存和私有内存,过程如下:
1)当收到并行计算任务后,首先使用共享内存完成任务管理、任务间的数据协同,并将任务分解,然后添加到共享内存的任务池中;
2)根据操作系统的任务调度策略完成任务池中的任务分配,然后由“步骤3” 将任务通知其它核并执行任务;
3)任务执行完成后,将计算结果放置在共享内存中,并通过操作系统提供的Cache函数完成内存数据的同步,Cache函数的功能是将当前Cache的数据写入到共 享内存,以便其它核能够看到当前的任务结果,从而实现同步的目的。
内存的构架如图2所示。
步骤3:基于多核导航的任务发布和执行
本步骤衔接“步骤2”中任务池中的任务分配。
实际参与运算的并行计算节点分布在DSP芯片的各个核上,某个节点执行任务时,需要在参与的节点之间进行协调,这是通过多核导航完成的。
多核导航是DSP芯片的一种硬件模块,仅需要指定发送的内核编号,任务执行 所需的数据将会自动分配到指定的核上。
当某个核收到来自于多核导航的任务后,开始执行任务,任务的执行是以时间 片的形式执行的,在时间片轮换时刻执行以下操作:
1)根据任务ID,判断当前的任务是否是idle线程(idle线程是嵌入式操作系 统的标准术语,表示内核进入空闲状态)。如果不是idle线程,继续执行前当计 算任务,等到下一个时间片轮换时刻,如果是idle线程,表示当前没有进行任何 计算,可执行下一步;
2)通过操作系统提供的多核导航接口读取任务描述表,如果任务描述表为空, 表示没有需要进行计算的任务,返回上一步;如果不空,则执行下一步;
3)根据任务描述表解析任务的入口地址、参数、返回数据的地址等信息,并执 行该任务。
这里采用多核导航而非全局的共享内存实现任务分配,多核导航的优点是速度快,可提高并行计算的效率,因为多核导航是DSP的硬件资源,执行过程中无需占 用宝贵的CPU时间,也不需要考虑多核共享内存的数据同步问题。
基于多核导航的任务分配机制见图3.
步骤4:提供操作系统内核级的并行处理机制
在本发明中,并行处理机制是通过每个内核上运行一个操作系统实例来实现的,每个核都是独立的计算单元,但仅有一个核(主核)的操作系统实例对用户来说可 见的,用户仅在主核上编程即可实现多核参与运算。为实现这种机制,主核和从核 采取不同的策略,主核包括两个线程,分别是主线程和工作线程,从核只有一个线 程,即工作线程。
主线程用于解析用户任务、将其分割成每个内核可独立执行的最小单元,并按 照指定的格式放入到任务池,工作线程会按照任务进入到任务池的先后顺序获取任 务,执行计算任务,执行完成后,向主核的主线程发送执行结果。
当主线程解析到不可独立执行的任务时,即当前任务的执行必须依赖于前面任务的执行结果,主线程会在当前任务前设置屏障点。遇到屏障点时必须等到任务池 中所有的任务执行完毕时才能放入新的任务。
通过本步骤,可将用户的计算任务分配到不同核上去,以实现并行计算的目的。用户无需关注其它核上操作系统的运行,这可以减小并行计算的复杂度。
步骤5:提供负载均衡策略
负载均衡是指在内核之间分配大约相等数量的任务的做法,以便所有内核都保持繁忙,出于性能方面的考虑,负载均衡对并行程序很重要。
对DSP操作系统而言,任务分为两类,一种是任务的工作量是可预测的,如已 知规模的矩阵、向量的计算等,有些任务的工作量是未知的,如网络任务、外设的 读写操作等。通常,对DSP芯片的应用来说,已知工作量任务的执行时间和执行次 数远大于未知工作量任务。因此这里为已知工作量任务和未知工作量任务分别设置 任务队列,确保执行时间长、执行次数多的任务能够平均分配到各个核中。即使未 知工作量的任务分配不平均,对整体的性能影响有限。
负载均衡策略见图4。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、 “竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示 的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装 置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的 限制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、 装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系 统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以 被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件 内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以 是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上 述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改, 这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的 特征可以任意相互组合。

Claims (6)

1.一种基于AMP构架DSP操作系统的并行计算方法,其特征在于,包括:
混合式内存机制提供步骤:根据所使用的嵌入式DSP操作系统,通过共享内存和分布式内存混合机制,完成任务池中的任务分配,输出分配任务,在任务执行完成后,同步任务结果;
任务发布和执行步骤:根据获得的分配任务,基于多核导航进行任务发布和执行;
并行处理步骤:根据操作系统内核级的并行处理机制,将计算任务分配到不同核上,实现并行计算;
负载均衡步骤:根据负载均衡策略,在内核之间分配大约相等数量的任务;
所述嵌入式DSP操作系统为锐华DSP操作系统;
所述混合式内存机制提供步骤:
所述共享内存和分布式内存混合机制:
任务管理步骤:收到并行计算任务后,首先根据任务管理策略,使用共享内存完成任务管理、任务间的数据协同,并将任务分解,然后添加到共享内存的任务池中;
任务分配步骤:根据操作系统的任务调度策略完成对任务池中的任务的分配,进入并行处理步骤继续执行;
任务同步步骤:任务执行完成后,将计算结果放置在共享内存中,并通过操作系统提供的Cache函数完成内存数据的同步,Cache函数的功能是将当前Cache的数据写入到共享内存,使其它核能够看到当前的任务结果,从而实现同步;
所述任务管理策略、任务调度策略、Cache函数均属于嵌入式DSP操作系统的基本功能,根据嵌入式DSP操作系统获得;
所述任务发布和执行步骤:
通过多核导航将获得的分配任务分配到指定的内核上,当内核收到来自于多核导航的任务后,开始执行任务,任务的执行是以时间片的形式执行的,在时间片轮换时刻执行以下操作:
idle线程判断步骤:根据任务ID,判断当前的任务是否是idle线程:如果不是idle线程,继续执行当前 计算任务,等到下一个时间片轮换时刻;如果是idle线程,表示当前没有进行任何计算,进入任务描述表读取步骤;
任务描述表读取步骤:读取任务描述表,判断任务描述表是否为空:若是空,则表示没有需要进行计算的任务,返回idle线程判断步骤继续执行;如果不是空,则进入任务执行步骤;
任务执行步骤:根据读取的任务描述表解析任务的入口地址、参数、返回数据的地址等信息,并执行该任务。
2.根据权利要求1所述的基于AMP构架DSP操作系统的并行计算方法,其特征在于,所述并行处理步骤:
所述并行处理机制:
在每个内核上运行一个操作系统实例,每个内核都是独立的计算单元,内核中仅有一个主核,主核的操作系统实例对用户可见,用户仅在主核上编程实现多核参与运算;
所述主核包括主线程和工作线程,从核只有工作线程;
所述主线程用于解析用户任务、将其分割成每个内核可独立执行的最小单元,并按照指定的格式放入到任务池,工作线程会按照任务进入到任务池的先后顺序获取任务,执行计算任务,执行完成后,向主核的主线程发送执行结果;
当主线程解析到不可独立执行的任务时,即当前任务的执行必须依赖于前面任务的执行结果,主线程会在当前任务前设置屏障点,遇到屏障点时必须等到任务池中所有的任务执行完毕时才能放入新的任务。
3.根据权利要求2所述的基于AMP构架DSP操作系统的并行计算方法,其特征在于,所述负载均衡步骤:
根据负载均衡策略,在内核之间分配大约相等数量的任务;
所述任务包括:已知工作量任务、未知工作量任务;
为已知工作量任务和未知工作量任务分别设置任务队列,将执行时间长大于预设时长的任务和执行次数多于预设次数的任务平均分配到各个内核中。
4.一种基于AMP构架DSP操作系统的并行计算系统,其特征在于,包括:
混合式内存机制提供模块:根据所使用的嵌入式DSP操作系统,通过共享内存和分布式内存混合机制,完成任务池中的任务分配,输出分配任务,在任务执行完成后,同步任务结果;
任务发布和执行模块:根据获得的分配任务,基于多核导航进行任务发布和执行;
并行处理模块:根据操作系统内核级的并行处理机制,将计算任务分配到不同核上,实现并行计算;
负载均衡模块:根据负载均衡策略,在内核之间分配大约相等数量的任务;
所述嵌入式DSP操作系统为锐华DSP操作系统;
所述混合式内存机制提供模块:
所述共享内存和分布式内存混合机制:
任务管理模块:收到并行计算任务后,首先根据任务管理策略,使用共享内存完成任务管理、任务间的数据协同,并将任务分解,然后添加到共享内存的任务池中;
任务分配模块:根据操作系统的任务调度策略完成对任务池中的任务的分配,进入并行处理模块继续执行;
任务同步模块:任务执行完成后,将计算结果放置在共享内存中,并通过操作系统提供的Cache函数完成内存数据的同步,Cache函数的功能是将当前Cache的数据写入到共享内存,使其它核能够看到当前的任务结果,从而实现同步;
所述任务管理策略、任务调度策略、Cache函数均属于嵌入式DSP操作系统的基本功能,根据嵌入式DSP操作系统获得;
所述任务发布和执行模块:
通过多核导航将获得的分配任务分配到指定的内核上,当内核收到来自于多核导航的任务后,开始执行任务,任务的执行是以时间片的形式执行的,在时间片轮换时刻执行以下操作:
idle线程判断模块:根据任务ID,判断当前的任务是否是idle线程:如果不是idle线程,继续执行当前 计算任务,等到下一个时间片轮换时刻;如果是idle线程,表示当前没有进行任何计算,调用任务描述表读取模块;
任务描述表读取模块:读取任务描述表,判断任务描述表是否为空:若是空,则表示没有需要进行计算的任务,调用idle线程判断模块;如果不是空,则调用任务执行模块;
任务执行模块:根据读取的任务描述表解析任务的入口地址、参数、返回数据的地址等信息,并执行该任务。
5.根据权利要求4所述的基于AMP构架DSP操作系统的并行计算系统,其特征在于,所述并行处理模块:
所述并行处理机制:
在每个内核上运行一个操作系统实例,每个内核都是独立的计算单元,内核中仅有一个主核,主核的操作系统实例对用户可见,用户仅在主核上编程实现多核参与运算;
所述主核包括主线程和工作线程,从核只有工作线程;
所述主线程用于解析用户任务、将其分割成每个内核可独立执行的最小单元,并按照指定的格式放入到任务池,工作线程会按照任务进入到任务池的先后顺序获取任务,执行计算任务,执行完成后,向主核的主线程发送执行结果;
当主线程解析到不可独立执行的任务时,即当前任务的执行必须依赖于前面任务的执行结果,主线程会在当前任务前设置屏障点,遇到屏障点时必须等到任务池中所有的任务执行完毕时才能放入新的任务;
所述负载均衡模块:
根据负载均衡策略,在内核之间分配大约相等数量的任务;
所述任务包括:已知工作量任务、未知工作量任务;
为已知工作量任务和未知工作量任务分别设置任务队列,将执行时间长大于预设时长的任务和执行次数多于预设次数的任务平均分配到各个内核中。
6.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的基于AMP构架DSP操作系统的并行计算方法的步骤。
CN201910426070.6A 2019-05-21 2019-05-21 基于amp构架dsp操作系统的并行计算方法、系统及介质 Active CN110297661B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910426070.6A CN110297661B (zh) 2019-05-21 2019-05-21 基于amp构架dsp操作系统的并行计算方法、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910426070.6A CN110297661B (zh) 2019-05-21 2019-05-21 基于amp构架dsp操作系统的并行计算方法、系统及介质

Publications (2)

Publication Number Publication Date
CN110297661A CN110297661A (zh) 2019-10-01
CN110297661B true CN110297661B (zh) 2021-05-11

Family

ID=68027084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910426070.6A Active CN110297661B (zh) 2019-05-21 2019-05-21 基于amp构架dsp操作系统的并行计算方法、系统及介质

Country Status (1)

Country Link
CN (1) CN110297661B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459647B (zh) * 2020-06-17 2020-09-25 北京机电工程研究所 基于嵌入式操作系统的dsp多核处理器并行运算方法及装置
CN112035346B (zh) * 2020-08-25 2023-09-12 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于嵌入式dsp操作系统的自动化测试方法、系统及介质
CN112527514B (zh) * 2021-02-08 2021-05-18 浙江地芯引力科技有限公司 基于逻辑扩展的多核心安全芯片处理器及其处理方法
CN115421918B (zh) * 2022-09-16 2023-05-12 河南省职工医院 一种基于RT-Linux的经颅磁刺激设备及系统
CN116414542B (zh) * 2023-06-12 2023-11-14 宁德时代新能源科技股份有限公司 任务调度方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261591A (zh) * 2008-04-28 2008-09-10 艾诺通信系统(苏州)有限责任公司 多核dsp系统中自适应的任务调度方法
CN101331465A (zh) * 2005-12-21 2008-12-24 英特尔公司 分区的共享高速缓存
CN101354693A (zh) * 2008-09-11 2009-01-28 重庆邮电大学 一种异构多核处理器的核间通信调度系统及方法
CN102404211A (zh) * 2011-11-15 2012-04-04 北京天融信科技有限公司 一种amp架构下处理器负载均衡的实现方法及装置
CN103473031A (zh) * 2013-01-18 2013-12-25 龙建 协同并发式消息总线、主动构件组装模型及构件拆分方法
CN105045566A (zh) * 2015-08-13 2015-11-11 山东华宇航天空间技术有限公司 一种嵌入式并行计算系统及采用其的并行计算方法
CN105446798A (zh) * 2014-07-31 2016-03-30 展讯通信(上海)有限公司 一种多核处理系统及方法以及移动终端
CN107357666A (zh) * 2017-06-26 2017-11-17 西安微电子技术研究所 一种基于硬件保护的多核并行系统处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266561B (zh) * 2008-04-29 2010-06-09 中兴通讯股份有限公司 一种在多核多线程处理器中的核间消息通信方法
CN102184125B (zh) * 2011-06-02 2013-11-13 首都师范大学 异构多核环境下基于程序行为在线分析的负载均衡方法
US9304945B2 (en) * 2013-01-24 2016-04-05 Raytheon Company Synchronizing parallel applications in an asymmetric multi-processing system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101331465A (zh) * 2005-12-21 2008-12-24 英特尔公司 分区的共享高速缓存
CN101261591A (zh) * 2008-04-28 2008-09-10 艾诺通信系统(苏州)有限责任公司 多核dsp系统中自适应的任务调度方法
CN101354693A (zh) * 2008-09-11 2009-01-28 重庆邮电大学 一种异构多核处理器的核间通信调度系统及方法
CN102404211A (zh) * 2011-11-15 2012-04-04 北京天融信科技有限公司 一种amp架构下处理器负载均衡的实现方法及装置
CN103473031A (zh) * 2013-01-18 2013-12-25 龙建 协同并发式消息总线、主动构件组装模型及构件拆分方法
CN105446798A (zh) * 2014-07-31 2016-03-30 展讯通信(上海)有限公司 一种多核处理系统及方法以及移动终端
CN105045566A (zh) * 2015-08-13 2015-11-11 山东华宇航天空间技术有限公司 一种嵌入式并行计算系统及采用其的并行计算方法
CN107357666A (zh) * 2017-06-26 2017-11-17 西安微电子技术研究所 一种基于硬件保护的多核并行系统处理方法

Also Published As

Publication number Publication date
CN110297661A (zh) 2019-10-01

Similar Documents

Publication Publication Date Title
CN110297661B (zh) 基于amp构架dsp操作系统的并行计算方法、系统及介质
US11915057B2 (en) Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric
CN112465129B (zh) 片内异构人工智能处理器
US20220188265A1 (en) Loop Thread Order Execution Control of a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric
CN101366004A (zh) 用于带有专用线程管理的多核处理的方法和设备
CN108351783A (zh) 多核数字信号处理系统中处理任务的方法和装置
KR20210057184A (ko) 이종 cpu/gpu 시스템에서 데이터 흐름 신호 처리 애플리케이션 가속화
CN103999051A (zh) 用于着色器核心中着色器资源分配的策略
CN113434284B (zh) 一种隐私计算服务端设备、系统及任务调度方法
CN104050137B (zh) 一种异构操作系统中内核运行的方法及装置
CN104090826B (zh) 基于相关性的任务优化部署方法
IL264794B2 (en) Scheduling of tasks on a multi-processor device
CN115033356B (zh) 一种基于异构可重构的动态资源调度方法及系统
CN110187970A (zh) 一种基于Hadoop MapReduce的分布式大数据并行计算方法
Pagani et al. Towards real-time operating systems for heterogeneous reconfigurable platforms
CN116382861A (zh) Numa架构的服务器网络进程自适应调度方法、系统及介质
CN115775199A (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
Singla et al. Task Scheduling Algorithms for Grid Computing with Static Jobs: A Review
Das Algorithmic Foundation of Parallel Paging and Scheduling under Memory Constraints
CN112463388B (zh) 一种基于多线程的sgrt数据处理方法及装置
Ramasubramanian et al. Studies on Performance Aspect of Scheduling Algorithms on Multicore Platform
CN117632520B (zh) 基于申威众核处理器的主从核监测交互的计算量调度方法
CN112732416B (zh) 有效消除数据访问延迟的并行数据处理方法及并行处理器
Liu et al. Inter-Core Communication Mechanisms for Microkernel Operating System based on Signal Transmission and Shared Memory
Labarta et al. Hybrid Parallel Programming with MPI/StarSs

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