CN102334104B - 一种基于多核系统的同步处理方法及装置 - Google Patents

一种基于多核系统的同步处理方法及装置 Download PDF

Info

Publication number
CN102334104B
CN102334104B CN2011800014795A CN201180001479A CN102334104B CN 102334104 B CN102334104 B CN 102334104B CN 2011800014795 A CN2011800014795 A CN 2011800014795A CN 201180001479 A CN201180001479 A CN 201180001479A CN 102334104 B CN102334104 B CN 102334104B
Authority
CN
China
Prior art keywords
treatment
facility
group
semaphore
message
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
Application number
CN2011800014795A
Other languages
English (en)
Other versions
CN102334104A (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.)
Huawei Technologies Co Ltd
Original Assignee
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102334104A publication Critical patent/CN102334104A/zh
Application granted granted Critical
Publication of CN102334104B publication Critical patent/CN102334104B/zh
Expired - Fee Related 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation

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

本发明公开一种基于多核系统的同步处理方法及装置,涉及通信网络技术领域,可以提高系统调度的效率,资源消耗较小。本发明提供的方案接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,然后接收第一组处理设备中的任一处理设备发送的通知消息,将计数信号量值相应的减1,当计数信号量值为0时,通过消息发送接口向第二组处理设备发送控制消息。本发明实施例提供的方案适合在处理多处理模块之间的同步和通讯时采用。

Description

一种基于多核系统的同步处理方法及装置
技术领域
本发明涉及通信网络技术领域,尤其涉及一种基于多核系统的同步处理方法及装置。
背景技术
多核技术的发展使得系统越来越复杂,多核之间的交互事件越来越多,现有技术在处理多核之间的同步和通讯时,通常通过中断来完成。
现有技术在处理多核之间的事件同步,对于多个处理器同时申请信号量处理单元内的同一个互斥缓存时,这里,多个处理器即为多核,上述多个处理器和信号量处理单元位于SOC(System On a Chip,片上系统)上,所述互斥缓存为缓存资源在某一时刻只能提供给一个处理器使用。通常信号量处理单元将获取缓存资源的标识通过中断发送给其中一个处理器A,当处理器A响应中断,完成事件处理后清中断,然后信号量处理单元再将获取缓存资源的标识通过中断发送给其他的处理器。
现有技术在处理多核之间的消息同步时,对于多核中的处理器A申请IPC(Inter Processor Communication,进程间通信)处理单元内的一个消息通道X,处理器A将消息写到消息通道X后,IPC处理单元通过中断通知除处理器A以外的需要获取此消息的其他处理器。这时,其他处理器响应中断并读取消息通道X内的消息,然后清中断。
然而,现有技术在处理多核之间的同步和通讯时,通常需要通过中断完成同步操作,导致系统调度的效率较低,资源消耗较大。
发明内容
本发明的实施例提供一种基于多核系统的同步处理方法及装置,可以提高系统调度的效率,资源消耗较小。
为达到上述目的,本发明的实施例采用如下技术方案:
一种基于多核系统的同步处理方法,包括:
接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,所述初始化设置包括设置当前多核同步处理单元的计数信号量值为M和设置所述当前多核同步处理单元启动第二组处理设备的控制消息内容,M为所述一组处理设备同步处理所述当前任务的次数;
接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,所述通知消息的内容为发送所述通知消息的处理设备完成所述当前任务;
当所述计数信号量值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述控制消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。
一种基于多核系统的同步处理装置,包括:
初始化模块,用于接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,所述初始化设置包括设置当前多核同步处理单元的计数信号量值为M和设置所述当前多核同步处理单元启动第二组处理设备的控制消息内容,M为所述一组处理设备同步处理所述当前任务的次数;
处理模块,用于接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,所述通知消息的内容为发送所述通知消息的处理设备完成所述当前任务;
发送模块,用于当所述计数信号量值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述控制消息内容,通过消息发送接口向所述第二组处理设备所述发送控制消息,以便所述第二组处理设备处理所述当前任务。
本发明实施例提供的基于多核系统的同步处理的方法及装置,通过接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,然后接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,当所述计数信号量值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。与现有技术中在处理多核之间的同步和通讯时,通常需要通过中断完成同步操作,导致系统调度的效率较低,资源消耗较大相比,本发明实施例提供的方案通过发送控制消息处理多个处理设备之间的同步和通讯,可以提高系统调度的效率,资源消耗较小。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种基于多核系统的同步处理方法的流程图;
图2为本发明实施例1提供的一种基于多核系统的同步处理装置的框图;
图3为本发明实施例2提供的一种基于多核系统的同步处理方法的流程图;
图4为本发明实施例2提供的各个同步处理单元独立处理的示意图;
图5为本发明实施例2提供的虚拟地址映射的示意图;
图6为本发明实施例2提供的处理设备处理任务的示意图;
图7为本发明实施例2提供的一种基于多核系统的同步处理装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种基于多核系统的同步处理方法,需要说明的是,所述多核系统在本发明实施例中指存在多个处理设备的系统,如图1所示,该方法包括:
步骤101,接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,所述初始化设置包括设置当前多核同步处理单元的计数信号量值为M和设置所述当前多核同步处理单元启动第二组处理设备的控制消息内容,M为所述一组处理设备同步处理所述当前任务的次数;
处理设备可以为处理器,也可以为加速器,加速器可以独立处理任务,也可以协助处理器完成运算处理,以使处理器在处理任务时速度加快。
具体地,通过内部缓存的任一通道接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置;
读取所述通道对应的内部缓存,将内部缓存中的内容更新为所述初始化设置,并保存所述初始化设置。
步骤102,接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,所述通知消息的内容为发送所述通知消息的处理设备完成所述当前任务;
进一步地,通过所述内部缓存的任一通道接收所述第一组处理设备中的任一个处理设备发送的通知消息;
读取所述通道对应的内部缓存,并获取内部缓存中所述计数信号量的当前值;
将所述计数信号量的当前值减1,保存所述当前内部缓存中的计数信号量的值。
步骤103,当所述计数信号量值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述控制消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。
本发明实施例提供的一种基于多核系统的同步处理的方法,通过接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,然后接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,当所述计数信号量值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。与现有技术中在处理多核之间的同步和通讯时,通常需要通过中断完成同步操作,导致系统调度的效率较低,资源消耗较大相比,本发明实施例提供的方案通过发送控制消息处理多个处理设备之间的同步和通讯,可以提高系统调度的效率,资源消耗较小。
本发明实施例提供一种基于多核系统的同步处理的装置,具体地,所述装置为多核同步处理单元,如图2所示,该装置包括:初始化模块201,处理模块202,发送模块203。
初始化模块201,用于接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,所述初始化设置包括设置当前多核同步处理单元的计数信号量值为M和设置所述当前多核同步处理单元启动第二组处理设备的控制消息内容,M为所述一组处理设备同步处理所述当前任务的次数;
所述初始化模块201包括第一接收子模块和更新保存子模块。
所述第一接收子模块,用于通过内部缓存的任一通道接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置;
所述更新保存子模块,用于读取所述通道对应的内部缓存,将内部缓存中的内容更新为所述初始化设置,并保存所述初始化设置。
处理模块202,用于接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,所述通知消息的内容为发送所述通知消息的处理设备完成所述当前任务;
所述处理模块202包括第二接收子模块、获取子模块和更新子模块。
所述第二接收子模块,用于通过所述内部缓存的任一通道接收所述第一组处理设备中的任一个处理设备发送的通知消息;
所述获取子模块,用于读取所述通道对应的内部缓存,并获取内部缓存中所述计数信号量的当前值;
所述更新子模块,用于将所述计数信号量的当前值减1,保存所述当前内部缓存中的计数信号量的值。
发送模块203,用于当所述计数信号量值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述控制消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。
本发明实施例提供的一种基于多核系统的同步处理的装置,通过同步处理相同的当前任务的每个处理设备处理完成当前的任务时,处理模块将计数信号量的值相应的减1,然后当所述计数信号量的值为0时,发送模块向第二组处理设备发送响应消息,以便所述第二组处理设备处理所述当前任务。与现有技术中在处理多核之间的同步和通讯时,通常需要通过中断完成同步操作,导致系统调度的效率较低,资源消耗较大相比,本发明实施例提供的方案通过发送响应控制消息处理多个处理设备之间的同步和通讯,可以提高系统调度的效率,资源消耗较小。
实施例2
需要说明的是,本发明实施例提供一种基于多核系统的同步处理的方法,其应用场景为:同步处理相同的当前任务的第一组处理设备中的每个处理设备需要处理当前任务中的一部分,完成当前任务时,通过发送控制消息通知第二组处理设备处理当前任务。处理设备包括处理器或加速器,在处理当前任务时,可以由处理器完成,也可以由加速器完成。本发明实施例提供的方案以处理当前任务描述基于多核系统的同步处理的方法,如图3所示,该方法包括:
步骤301,多核同步处理单元通过内部缓存的任一通道,接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,所述初始化设置包括设置当前多核同步处理单元的计数信号量值为M和设置所述当前多核同步处理单元启动第二组处理设备的控制消息内容,M为所述一组处理设备同步处理所述当前任务的次数;
这里,信号量是一个非负整数计数,信号量用来协调对资源的访问,其初始化为可用资源的数目,即申请值为M的计数信号量中的M为可用资源的数目,在本发明中同步处理相同的当前任务的第一组处理器中的每个处理器在处理当前任务时,需要占用一个资源,第一组处理器同步处理相同的当前任务的次数为M,总共需要占用M个资源。
具体地,所述初始化设置携带在申请消息中,在发送初始化设置的申请消息时,可以通过多个通道发送。另外,申请消息中还包括申请标识,申请标识用于标识此次申请到的内部缓存中的资源,以免重复申请此资源。
步骤302,所述多核同步处理单元读取所述通道对应的内部缓存,将内部缓存中的内容更新为所述初始化设置,并保存所述初始化设置;
需要说明的是,读取所述通道对应的内部缓存后,还可以检查是否存在异常,具体地,检查是否重复初始化设置,是否存在非法申请进行初始化设置等。
需要说明的是,步骤301和步骤302,为多核同步处理单元接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化的流程,具体为所述多核同步处理单元内的计数域值信号量单元执行的,其中计数域值信号量单元通过配置接口接收初始化设置的申请消息,配置接口设置在多核同步处理单元上。
另外,计数域值信号量单元集成在多核同步处理单元上,多核同步处理单元上还包括直接获取信号量单元、间接获取信号量单元、发送消息单元,所述直接获取信号量单元,用于直接向获取信号量的处理设备发送获取标识;所述间接获取信号量单元,用于通过发送消息或者发送中断向获取信号量的处理设备发送获取标识;所述发送消息单元,用于通过消息发送接口向处理设备发送控制消息或者通知消息;所述计数域值信号量单元,用于控制同时访问多核同步处理单元的处理设备获得的计数信号量。
如图4所示的示意图,其中,直接获取信号量单元、间接获取信号量单元、发送消息单元的处理流程与计数域值信号量单元的处理流程类似,其中,直接获取信号量单元、间接获取信号量单元、发送消息单元,在接收到新的初始化设置后,读取内部缓存,并检查内部缓存是否存在重复申请或者是否存在非法申请等异常,然后将内部缓存中的内容更新为初始化设置的内容,并保存初始化设置内容。需要说明的是,间接获取信号量单元、计算域值信号量单元、发送消息单元还需要发送消息或者中断,以通知多核同步处理单元完成了此次任务。
与现有技术无法实现加速器和处理器之间的消息传递,只能通过中断完成相比,本发明实施例提供的方案中新增加了计数域值信号量单元和发送消息单元,这样,可以有效地实现加速器和处理器之间相互的消息传递,使资源消耗较小。
为了实现所述多核同步处理单元中的所述各个单元的独立访问,可以通过总线配置接口控制总线的访问流量,如图4中,具体地,一次总线访问结束前,总线接口控制总线的继续操作,每次总线的操作均对应一次内部缓存的读取、处理和更新操作,这样,可以实现多个同步处理单元快速无冲突的同步调度机制。
当申请到资源,多核同步处理单元初始化后,各个处理设备可以处理相应的任务。
步骤303,所述多核同步处理单元接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,所述通知消息的内容为发送所述通知消息的处理设备完成所述当前任务;
所述第一组处理设备中的处理设备根据任务列表中的任务顺序占用计数信号量中的资源处理任务,每次第一组处理设备中的一个处理设备完成当前任务时,多核同步处理单元中进行一次对应当前任务的信号量的释放操作,即将所述计数信号量值相应的减1。
具体地,通过所述内部缓存的任一通道读取内部缓存,并获取内部缓存中所述计数信号量的当前值,并检查异常;获取内部缓存中所述计数信号量的当前值时,再将所述计数信号量的当前值减1,保存所述当前内部缓存中的计数信号量的值。
在读取内部缓存时可以通过多条通道读取,并且多核同步处理单元上的直接获取信号量单元、间接获取信号量单元、发送消息单元和计数域值信号量单元采用多通道访问内部缓存,如图5所示的虚拟地址映射的示意图,所述多通道访问为将各个同步单元的访问通过不同的地址映射到同一个内部缓存,与现有技术中信号量处理单元和IPC(Inter Processor Communication,进程间通信)单元是两个独立的单元,无法有效共享通道缓存相比,本发明实施例提供的方案可以实现最大限度的共享内部缓存,节省内部缓存资源,进一步地,内部缓存可以采用资源较小的寄存器代替,并尽量增大通道数,有效地降低了多核之间的竞争几率。
另外,对于共享通道缓存,假设有10个通道,在现有技术中,通过软件可以设置这10个通道中某些通道可以分别实现A、B、C、D的功能,例如,设置4个通道可以实现A的功能,设置2个通道可以实现B的功能,设置2个通道可以实现C的功能,设置2个通道可以实现D的功能;通过本发明实施例提供的方案,这10个通道都可以实现A、B、C、D的功能,这样,可以更加灵活的分配各个通道去实现相应的功能。
步骤304,判断计数信号量的值是否为0;
具体地,判断当前内部缓存中的计数信号量的值是否为0。
步骤305,当计数信号量的值不为0时,则继续由所述第一组处理设备处理当前任务;
如果计数信号量的值不为0时,表示当前需要处理的任务还没有完成,则继续由所述第一组处理设备中的没有处理完成当前任务的处理设备占用计数信号量的资源处理当前任务,然后执行步骤303,当所述第一组处理设备中的某一个处理设备完成当前任务时,再将所述计数信号量值相应的减1,判断此时计数信号量的值是否为0。
步骤306,当计数信号量的值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述控制消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。
需要说明的是,控制消息是在步骤301中同步处理相同的当前任务的第一组处理设备中的任一个处理设备发送的申请消息中,已经初始化设置好的。这里,当计数信号量的值为0时,说明第一组处理设备已经将分配给各个处理设备的当前任务完成了,此时,第一组处理设备开始处理第二个任务,其处理第二个任务的处理流程与处理当前任务的流程相同。
如图6所示的处理各个任务的示意图,第一组处理设备包括处理器1,处理器2,加速器1,第二组处理设备包括加速器2,其中,处理器1处理当前任务中的A部分,处理器2处理当前任务中的B部分,加速器1处理当前任务中的C部分,加速器2处理当前任务中的D部分,处理器1完成A部分任务的时间最短,处理器2完成B部分任务的时间最长,当处理器2完成B部分任务后,处理器1和加速器1都已完成相应的任务,此时,多核同步处理单元的计数信号量值已经减为0,则多核同步处理单元向加速器2发送控制消息,以便加速器2处理任务的D部分。当处理器1、处理器2和加速器1分别完成任务后,再去执行其他的任务。
例如,无线通讯中一个频带上承载多种信道类型,多种信道分离后,需要不同的单元进行后续处理,例如:加速器A处理完当前任务后,多核同步处理单元将控制消息分发到不同的地址,以启动加速器B、启动加速器C并通知处理器D处理所述当前任务,与现有技术中,加速器A处理完当前任务后,通过中断通知处理器D,然后处理器D通过中断启动加速器B和加速器C,如果需要处理N个任务时,至少需要响应3N次中断相比,本发明实施例提供的方案可以有效地降低系统的开销,特别是,当同步后的处理单元为加速器时,本发明实施例提供的方案不需要响应中断。
需要说明的是,如果第二组中的处理设备为加速器时,步骤306中多核同步处理单元给第二组中的加速器发送控制消息,则不需要向第二组中的加速器发送中断;如果第二组中的处理设备为处理器时,步骤306多核同步处理单元给处理器发送控制消息,则可以向第二组中的处理器发送中断,也可以不发送中断。
具体地,如果向第二组中的处理器发送中断时,具体通过中断输出接口发送,中断输出接口设置在多核同步处理单元上,中断输出接口用于多个所述控制消息的合并通知,这样,可以减少通知中断的发送,降低资源消耗。
进一步地,所述第二组处理设备接收到所述多核同步处理单元发送的响应消息,处理所述当前任务。
需要说明的是,如果也接收到中断时,则需要处理中断。当所有的处理设备需要处理N个任务时,由于各个处理设备处理任务的处理时间不定,如果第二组处理设备中的某个处理器处理任务时处理得慢,则处理全部任务的过程中仅需响应一次中断,如果第二组处理设备中的某个处理器处理任务时处理得快,则处理全部任务的过程中最多响应N次中断,这样,有效地减少了系统响应中断的开销。
另外,现有技术中采用调度处理器处理同步时,调度处理器的调动速度受限制,并且调度的效率很低,在高速业务处理时,无法满足需求,例如,无线通讯的业务周期是毫秒量级,调度处理器的处理周期为微妙量级,处理相同的业务时,需要调度几百次调度处理器,本发明实施例提供的方案通过采用多核同步处理单元处理同步时,可以实现快速同步调度多个处理设备,提高了调度的效率,节约了处理的时间。
本发明实施例提供的一种基于多核系统的同步处理的方法,通过同步处理相同的当前任务的每个处理设备都处理完成当前的任务时,计数信号量的值减为0,然后多核同步处理单元向第二组的处理设备发送响应消息,以便通知第二组处理器处理当前任务。与现有技术中在处理多核之间的同步和通讯时,通常需要通过中断完成同步操作,导致系统调度的效率较低,资源消耗较大相比,本发明实施例提供的方案通过发送响应控制消息处理多个处理设备之间的同步和通讯,可以提高系统调度的效率,降低系统的开销,资源消耗较小。
本发明实施例提供的一种基于多核系统的同步处理的装置,该装置可以为多核同步处理单元,多核同步处理单元位于SOC(System On a Chip,片上系统)上。如图7所示,该装置包括:初始化模块701,第一接收子模块702,更新保存子模块703,处理模块704,第二接收子模块705,获取子模块706,更新子模块707,发送模块708。
初始化模块701,用于接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,所述初始化设置包括设置当前多核同步处理单元的计数信号量值为M和设置所述当前多核同步处理单元启动第二组处理设备的控制消息内容,M为所述一组处理设备同步处理所述当前任务的次数;
处理设备为处理器或加速器,在处理当前任务时,可以由处理器完成,也可以由加速器完成。
申请值为M的计数信号量中的M为可用资源的数目,在本发明中同步处理相同的当前任务的一组处理设备中的每个处理设备在处理当前任务时,需要占用一个资源,第一组处理设备同步处理相同的当前任务的次数为M,总共需要占用M个资源。
具体地,所述初始化模块701中的第一接收子模块702,用于通过内部缓存的任一通道接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置;
其中,所述初始化设置携带在申请消息中发送的,在发送初始化设置的申请消息时,可以通过多个通道发送。另外,申请消息中还包括申请标识,申请标识用于标识此次申请到的内部缓存中的资源,以免重复申请此资源。
更新保存子模块703,用于读取所述通道对应的内部缓存,将内部缓存中的内容更新为所述初始化设置,并保存所述初始化设置;
需要说明的是,读取所述通道对应的内部缓存后,还需要检查是否存在异常,具体地,检查是否重复初始化设置,是否存在非法申请进行初始化设置等。
处理模块704,用于接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,所述通知消息的内容为发送所述通知消息的处理设备完成所述当前任务;
具体地,所述处理模块704中的第二接收子模块705,用于通过所述内部缓存的任一通道接收所述第一组处理设备中的任一个处理设备发送的通知消息;
所述通知消息中还包括释放计数信号量的标识,即对申请消息中携带的申请标识进行释放,以便再次使用释放的资源。
获取子模块706,用于读取所述通道对应的内部缓存,并获取内部缓存中所述计数信号量的当前值;
需要说明的是,获取内部缓存中所述计数信号量的当前值时,计数域值信号量单元可以通过多条通道读取内部缓存,并且多核同步处理单元上的直接获取信号量单元、间接获取信号量单元、发送消息单元和计数域值信号量单元采用多通道访问,所述多通道访问为将各个同步单元的访问通过不同的地址映射到同一个内部缓存,可以实现最大限度的共享内部缓存,节省内部缓存资源,进一步地,内部缓存可以采用资源较小的寄存器代替,并尽量增大通道数,有效地降低了多核之间的竞争几率。
另外所述直接获取信号量单元,用于直接向获取信号量的处理设备发送获取标识;所述间接获取信号量单元,用于通过发送消息或者发送中断向获取信号量的处理设备发送获取标识;所述发送消息单元,用于通过消息发送接口向处理设备发送控制消息或者通知消息;所述计数域值信号量单元,用于控制同时访问多核同步处理单元的处理设备获得的计数信号量。具体地,直接获取信号量单元、间接获取信号量单元、发送消息单元,在接收到新的初始化设置后,读取内部缓存,并检查内部缓存是否存在重复申请或者是否存在非法申请等异常,然后将内部缓存中的内容更新为初始化设置的内容,并保存初始化设置内容。
更新子模块707,用于将所述计数信号量的当前值减1,保存所述当前内部缓存中的计数信号量的值;
此时,判断计数信号量的值是否为0,如果计数信号量的值不为0时,则继续由所述第一组处理设备中的处理设备处理当前任务;
当所述计数信号量值为0时,发送模块708,用于根据设置的所述当前多核同步处理单元启动第二组处理设备的所述控制消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。
需要说明的是,现有技术中没有发送模块,即不能发送响应消息,只能通过中断进行同步单元之间的通讯,本发明实施例提供的方案中增加了发送模块,同步单元的同步事件转为消息发送,可以实现多个处理器和加速器之间可以互相同步和通讯。
向所述第二组处理设备发送控制消息是通过消息发送接口发送的,消息发送接口设置在多核同步处理单元上。
需要说明的是,如果发送模块给加速器发送控制消息,则不需要向所述第二组处理设备发送中断,如果发送模块给处理器发送控制消息,则可以向所述第二组处理设备发送中断,也可以不发送中断。
具体地,如果向第二组中的处理器发送中断时,具体通过中断输出接口发送,中断输出接口设置在多核同步处理单元上,中断输出接口用于多个所述控制消息的合并通知,这样,可以减少通知中断的发送,降低资源消耗。。
另外,当所有的处理设备需要处理N个任务时,由于各个处理设备处理任务的处理时间不定,如果第二组处理设备中的处理器处理任务时处理得慢,则处理全部任务的过程中仅需响应一次中断,如果第二组处理设备中的处理器处理任务时处理得快,则处理全部任务的过程中最多响应N次中断,这样,有效地减少了系统响应中断的开销。
例如,无线通讯中一个频带上承载多种信道类型,多种信道分离后,需要不同的单元进行后续处理,例如:加速器A处理完当前任务后,多核同步处理单元将控制消息分发到不同的地址,以启动加速器B、启动加速器C并通知处理器D处理所述当前任务,与现有技术中,加速器A处理完当前任务后,通过中断通知处理器D,然后处理器D通过中断启动加速器B和加速器C,如果需要处理N个任务时,至少需要响应3N此中断相比,本发明实施例提供的方案可以有效地降低系统的开销,特别是,当同步后的处理单元为加速器时,本发明实施例提供的方案不需要响应中断。
本发明实施例提供的一种基于多核系统的同步处理的装置,通过同步处理相同的当前任务的每个处理设备处理完成当前的任务时,处理单元将计数信号量的值减1,当所述计数信号量的值为0时,发送模块向多核同步处理单元发送控制消息,以便通知第二组处理设备处理当前任务。与现有技术中在处理多核之间的同步和通讯时,通常需要通过中断完成同步操作,导致系统调度的效率较低,资源消耗较大相比,本发明实施例提供的方案通过发送响应消息处理多核之间的同步和通讯,可以提高系统调度的效率,降低系统的开销,资源消耗较小。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (7)

1.一种基于多核系统的同步处理方法,其特征在于,包括:
接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,所述初始化设置包括设置当前多核同步处理单元的计数信号量值为M和设置所述当前多核同步处理单元启动第二组处理设备的控制消息内容,M为所述第一组处理设备同步处理所述当前任务的次数;
接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,所述通知消息的内容为发送所述通知消息的处理设备完成所述当前任务;
当所述计数信号量值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述控制消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。
2.根据权利要求1所述的基于多核系统的同步处理方法,其特征在于,在所述接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化包括:
通过内部缓存的任一通道接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置;
读取所述通道对应的内部缓存,将内部缓存中的内容更新为所述初始化设置,并保存所述初始化设置。
3.根据权利要求2所述的基于多核系统的同步处理方法,其特征在于,所述接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1包括:
通过所述内部缓存的任一通道接收所述第一组处理设备中的任一个处理设备发送的通知消息;
读取所述通道对应的内部缓存,并获取内部缓存中所述计数信号量的当前值;
将所述计数信号量的当前值减1,保存所述当前内部缓存中的计数信号量的值。
4.一种基于多核系统的同步处理装置,其特征在于,包括:
初始化模块,用于接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置,并进行初始化,所述初始化设置包括设置当前多核同步处理单元的计数信号量值为M和设置所述当前多核同步处理单元启动第二组处理设备的控制消息内容,M为所述第一组处理设备同步处理所述当前任务的次数;
处理模块,用于接收所述第一组处理设备中的任一处理设备发送的通知消息,将所述计数信号量值相应的减1,所述通知消息的内容为发送所述通知消息的处理设备完成所述当前任务;
发送模块,用于当所述计数信号量值为0时,根据设置的所述当前多核同步处理单元启动第二组处理设备的所述控制消息内容,通过消息发送接口向所述第二组处理设备发送所述控制消息,以便所述第二组处理设备处理所述当前任务。
5.根据权利要求4所述的基于多核系统的同步处理装置,其特征在于,所述初始化模块包括:
第一接收子模块,用于通过内部缓存的任一通道接收同步处理相同的当前任务的第一组处理设备中的任一处理设备发送的初始化设置;
更新保存子模块,用于读取所述通道对应的内部缓存,将内部缓存中的内容更新为所述初始化设置,并保存所述初始化设置。
6.根据权利要求5所述的基于多核系统的同步处理装置,其特征在于,所述处理模块包括:
第二接收子模块,用于通过所述内部缓存的任一通道接收所述第一组处理设备中的任一个处理设备发送的通知消息;
获取子模块,用于读取所述通道对应的内部缓存,并获取内部缓存中所述计数信号量的当前值;
更新子模块,用于将所述计数信号量的当前值减1,保存所述当前内部缓存中的计数信号量的值。
7.根据权利要求6中所述的基于多核系统的同步处理装置,其特征在于,所述多核同步处理单元包括直接获取信号量单元、间接获取信号量单元、发送消息单元、计数域值信号量单元;
所述直接获取信号量单元,用于直接向获取信号量的处理设备发送获取标识;
所述间接获取信号量单元,用于通过发送消息或者发送中断向获取信号量的处理设备发送获取标识;
所述发送消息单元,用于通过消息发送接口向处理设备发送控制消息或者通知消息;
所述计数域值信号量单元,用于控制同时访问多核同步处理单元的处理设备获得的计数信号量。
CN2011800014795A 2011-08-15 2011-08-15 一种基于多核系统的同步处理方法及装置 Expired - Fee Related CN102334104B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/078411 WO2012106943A1 (zh) 2011-08-15 2011-08-15 一种基于多核系统的同步处理方法及装置

Publications (2)

Publication Number Publication Date
CN102334104A CN102334104A (zh) 2012-01-25
CN102334104B true CN102334104B (zh) 2013-09-11

Family

ID=45484998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800014795A Expired - Fee Related CN102334104B (zh) 2011-08-15 2011-08-15 一种基于多核系统的同步处理方法及装置

Country Status (3)

Country Link
US (1) US9424101B2 (zh)
CN (1) CN102334104B (zh)
WO (1) WO2012106943A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281558B (zh) * 2013-07-01 2017-11-17 华为技术有限公司 一种在线升级的方法和芯片
CN103559095B (zh) * 2013-10-30 2016-08-31 武汉烽火富华电气有限责任公司 用于继电保护领域的双核多处理器架构的数据同步方法
CN104462006B (zh) * 2015-01-05 2017-09-19 华为技术有限公司 系统级芯片中的多个处理器核间配置同步方法和设备
US9778951B2 (en) * 2015-10-16 2017-10-03 Qualcomm Incorporated Task signaling off a critical path of execution
DE102017100655A1 (de) * 2017-01-13 2018-07-19 Beckhoff Automation Gmbh Steuerung eines technischen Prozesses auf einer Mehr-Rechenkern-Anlage
CN113821469B (zh) * 2021-09-23 2024-09-10 深圳市元征科技股份有限公司 多处理器的同步方法、装置、终端设备及存储介质
CN114546669B (zh) * 2022-02-25 2024-06-25 苏州浪潮智能科技有限公司 一种基于桶分片的数据同步处理方法、系统及终端
CN117194308A (zh) * 2022-05-30 2023-12-08 华为技术有限公司 一种多核处理器及相关核间通信方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546277A (zh) * 2009-04-27 2009-09-30 华为技术有限公司 一种多核处理器平台及多核处理器同步的方法
CN101561766A (zh) * 2009-05-26 2009-10-21 北京理工大学 一种支持多核帮助线程的低开销的块同步方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007108B2 (en) * 2003-04-30 2006-02-28 Lsi Logic Corporation System method for use of hardware semaphores for resource release notification wherein messages comprises read-modify-write operation and address
CN100492339C (zh) * 2007-01-22 2009-05-27 北京中星微电子有限公司 一种可实现芯片内多核间通信的芯片及通信方法
US9342379B2 (en) * 2011-01-21 2016-05-17 Wind River Systems, Inc. Lock free acquisition and release of a semaphore in a multi-core processor environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546277A (zh) * 2009-04-27 2009-09-30 华为技术有限公司 一种多核处理器平台及多核处理器同步的方法
CN101561766A (zh) * 2009-05-26 2009-10-21 北京理工大学 一种支持多核帮助线程的低开销的块同步方法

Also Published As

Publication number Publication date
US9424101B2 (en) 2016-08-23
CN102334104A (zh) 2012-01-25
US20140075449A1 (en) 2014-03-13
WO2012106943A1 (zh) 2012-08-16

Similar Documents

Publication Publication Date Title
CN102334104B (zh) 一种基于多核系统的同步处理方法及装置
CN101667284B (zh) 用于中央处理单元和图形处理单元之间通信的设备和方法
CN105511954B (zh) 一种报文处理方法及装置
TWI408934B (zh) 網路介面技術
JP3670160B2 (ja) タスクに各リソースを割当てるための回路、複数のリソースを共用するための方法、命令を実行するためのプロセッサ、マルチタスクプロセッサ、コンピュータ命令を実行するための方法、マルチタスク方法、コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置
CN107846443B (zh) 网络中的分布式处理
US8191073B2 (en) Method and system for polling network controllers
US20240118928A1 (en) Resource allocation method and apparatus, readable medium, and electronic device
CN114363170B (zh) 容器服务网络配置方法及相关产品
CN105247817A (zh) 用于源同步电路交换片上网络(NoC)的方法、装置和系统
CN108319513B (zh) 一种多分区操作系统中的消息传递方法及装置
US11347546B2 (en) Task scheduling method and device, and computer storage medium
CN106155960A (zh) 基于gpio握手和edma的uart串口通信方法
CN107133109B (zh) 一种模块间通信的方法、装置及计算设备
WO2013121085A2 (en) Method, apparatus, and computer program product for inter-core communication in multi-core processors
CN101567873B (zh) 一种多任务并行处理方法及系统
CN113535319A (zh) 一种实现多rdma网卡虚拟化的方法、设备及存储介质
US20130227243A1 (en) Inter-partition communication in multi-core processor
CN111427806A (zh) 一种双核amp系统共用串口的方法、存储介质及智能终端
CN117331655A (zh) 多线程调度方法及装置
US20220197696A1 (en) Condensed command packet for high throughput and low overhead kernel launch
CN103281262B (zh) 数据报文收发系统及方法
EP3811210B1 (en) Method and supporting node for supporting process scheduling in a cloud system
CN113608861A (zh) 一种软件化载荷计算资源虚拟化分配方法及装置
CN113535370A (zh) 一种实现负载均衡的多rdma网卡虚拟化的方法、设备

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: 20130911

Termination date: 20190815

CF01 Termination of patent right due to non-payment of annual fee