CN107613529B - 消息处理方法以及基站 - Google Patents
消息处理方法以及基站 Download PDFInfo
- Publication number
- CN107613529B CN107613529B CN201710640484.XA CN201710640484A CN107613529B CN 107613529 B CN107613529 B CN 107613529B CN 201710640484 A CN201710640484 A CN 201710640484A CN 107613529 B CN107613529 B CN 107613529B
- Authority
- CN
- China
- Prior art keywords
- message
- processor core
- target
- queue
- message queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000012546 transfer Methods 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims description 24
- 239000000872 buffer Substances 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 22
- 238000004891 communication Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000013500 data storage Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 20
- 238000013461 design Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
- H04W28/14—Flow control between communication endpoints using intermediate storage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请涉及通信技术领域,更具体的说涉及一种消息处理技术。在本申请的一种消息处理方法中,消息中转模块监控处理器核内的消息队列对应的消息存储状态;并在该消息存储状态表明该处理器核的消息队列中未存储有消息的情况下,从缓存的消息中确定出待推送给该处理器核的目标消息,并将该目标消息发送给处理器核,以使得处理器核将该目标消息存储到该处理器核内的消息队列中,并在满足消息读取条件时,从该处理器核内的消息队列中读取消息,从而避免了处理器核等待消息中转模块调度消息所需的耗时,也可以避免由于从消息中转模块的寄存器中读取消息所需的较高耗时,从而提高了处理器核获取消息的效率,提高了处理器核处理消息的性能。
Description
技术领域
本申请涉及通信技术领域,更具体地说,涉及一种消息处理技术。
背景技术
包保序是指按照先进先出顺序依次处理消息或者数据包,使得接收到消息或者数据包的顺序与发送该消息或数据包的顺序一致。在通信系统,为了实现包保序,基站中所有待处理的消息都会先缓存在消息中转模块中,处理器根据需要从该消息中转模块中获取消息并处理。
其中,消息中转模块中具有消息池和设备寄存器,消息池用于缓存所有待处理的消息。当处理器需要获取消息时,处理器会通过总线访问该消息中转模块内的设备寄存器,从而触发消息中转模块按照先进先出的原则,从消息池中调度消息,并将调度出的消息写入设备寄存器,这样,处理器便可以从设备寄存器中读取出消息。然而由于消息中转模块每次调度消息需要耗费一定的时长,而且,在消息中转模块将消息调度到该消息中转模块的寄存器之后,处理器从该消息中转模块的寄存器读取消息也需要耗费一定的时长,使得每次处理器从消息中转模块获取消息时,都需要耗费较长的时间,影响了处理器获取消息的性能,进而影响到处理器处理消息的性能。
发明内容
有鉴于此,本申请实施例提供了一种消息处理方法以及基站,以提高处理器核获取消息的效率,提高处理器核处理消息的性能。
为实现上述目的,本申请的第一方面提供了一种消息处理方法,在该方法中,消息中转模块(基站中用于缓存需要处理器核处理的消息的模块)监控处理器核内的消息队列对应的消息存储状态;并在该消息存储状态表明该处理器核的消息队列中未存储有消息的情况下,从缓存的消息中确定出待推送给该处理器核的目标消息,将该目标消息发送给处理器核,以使得处理器核将该目标消息存储到该处理器核内的消息队列中,这样,消息中转模块可以在处理器核需要读取消息之前,将消息推送给处理器核,当处理器核需要读取消息时,只需要从该处理器核内的消息队列中读取消息即可,从而避免了等待消息中转模块调度消息所需的时间,而且处理器核从其内部的消息队列中读取消息所需的时长也大大减少,提高了处理器核读取消息所需的耗时,进而提高了处理器获取消息的性能,并有利于提高处理器处理消息的性能。
在一种可能的设计中,为了能够保证该处理器核的消息队列对应的消息存储状态与该处理器核中消息队列内存储消息的状态一致,在消息中转模块将目标消息发送给该处理器核之后,还可以将该处理器核的消息队列对应的消息存储状态设置为非空闲状态,该非空闲状态表明处理器核的消息队列中存储有消息。如,该消息存储状态可以通过消息中转模块中记录的该处理器核的有效标志位来表示,如果处理器核的有效标志位为1,则说明处理器核的消息队列处于非空闲状态。
在一种可能的设计中,为了使得消息中转模块能够及时获取该处理器核内的消息队列中是否存储有消息,在处理器核从该处理器核的消息队列中读取出消息之后,还可以向该消息中转模块发送空闲通知,相应的,消息中转模块在接收到该空闲通知时,将该消息存储状态设置为空闲状态,其中,消息存储状态为空闲状态表明该处理器核的消息队列中未存储有消息。如,将该消息中转模块中记录的该处理器核的有效标志位设置为0,以表示该处理器核的消息队列处于空闲状态。
在一种可能的设计中,在基站的处理器为多核处理器的情况下,该处理器包括多个处理器核,相应的,该消息中转模块可以监控该多个处理器核的消息队列各自对应的消息存储状态(如,维护并监控每个处理器核对应的有效标志位的取值),当存在消息存储状态为空闲状态的至少一个处理器核时,从该至少一个处理器核中,确定当前待推送消息的目标处理器核;并从缓存的消息中,确定待推送给该目标处理器核的目标消息并发送给该目标处理器核,从而保证可以依次向消息队列处于空闲状态的处理器核推送消息。
在本申请的第二方面,本申请还提供了又一种消息处理方法,在该方法中,处理器核接收消息中转模块发送的消息,并将消息缓存到该处理器核内的消息队列中,这样,当满足消息读取条件时,该处理器核可以从该消息队列中读取消息,从而无需再访问消息中转模块的寄存器,避免了等待消息中转模块将消息调度到该消息中转模块的寄存器中,而且由于消息队列为处理器核内部的空间(如,处理器核内部的寄存器的存储空间),因此,相对于从消息中转模块中读取消息,从该处理器核内部的消息队列中读取消息所需的耗时更少,从而大大减少了处理器核读取消息所需的耗时,提高了消息读取性能。
在一种可能的设计中,在处理器核从该消息队列中读取消息之后,该处理器核还可以向消息中转模块发送空闲通知,以将处理器核的消息队列中不存在消息的信息通知给消息中转模块,以便消息中转模块更新该处理器核的消息队列所对应的消息存储状态。
在一种可能的设计中,为了能够更方便的确定消息队列中是否存储有消息,在处理器核将消息缓存处理器核内的消息队列中之后,还可以将消息队列中存储的状态值(该状态值可以存储在消息队列中的状态存储区)设置为1,其中,该状态值为1表明该处理器核的消息队列中存储有消息。相应的,当满足消息读取条件时,该处理器核可以读取该消息队列中存储的状态值,并在该状态值为1时,从消息队列中读取消息。
在一种可能的设计中,在处理器核读取出该消息队列中存储的该消息的全部数据时,将该状态值设置为0,该状态值为0表明该消息队列中不存在未被读取的消息。
在一种可能的设计中,为了能够明确消息队列中存储的消息的大小,并从消息队列读取消息时,有利于确定消息队列中的消息的数据是否被全部取出,在处理器核将消息缓存到消息队列中之后,还可以根据消息所占据的比特位(消息中包含数据的比特位数),设置该消息队列中存储的消息大小的取值,该消息大小的取值与该消息所占据的比特位相同;相对应的,该处理器核可以根据该消息大小的取值,从消息队列中读取该消息的数据,直至该消息的全部数据均被读取出。
在本申请的第三方面,本申请还提供了一种基站,该基站包括:处理器以及消息中转模块,该处理器包括至少一个处理器核,该处理器核内部具有消息队列;该消息中转模块为所述基站中用于缓存需要所述处理器核处理的消息的模块。其中,该消息中转模块,用于监控该处理器核的消息队列对应的消息存储状态;在该消息存储状态表明该处理器核的消息队列中未存储有消息的情况下,从缓存的消息中,确定待推送给该处理器核的目标消息;将该目标消息发送给该处理器核。相应的,处理器核,用于将该目标消息缓存在该处理器核内的消息队列中;在满足消息读取条件时,从该处理器核的消息队列中读取该目标消息。
在一种可能的设计中,该消息中转模块,还用于在将所述目标消息发送给处理器核之后,将所述处理器核的消息队列对应的消息存储状态设置为非空闲状态,所述非空闲状态表明所述处理器核的消息队列中存储有消息。
在一种可能的设计中,该处理器核,还用于在读取该消息队列中缓存的目标消息之后,向消息中转模块发送空闲通知,该空闲通知表明所述处理器核的消息队列中不存在消息;相应的,消息中转模块,还用于当接收到所述处理器核发送的空闲通知时,将所述处理器核对应的消息存储状态设置为空闲状态,所述空闲状态表明所述处理器核的消息队列中未存储有消息。
在一种可能的设计中,该处理器包括多个处理器核;该消息中转模块,具体用于监控所述多个处理器核的消息队列各自对应的消息存储状态;当所述多个处理器核中存在消息存储状态为空闲状态的至少一个处理器核时,从所述至少一个处理器核中,确定当前待推送消息的目标处理器核,其中,所述处理器核对应的消息存储状态为空闲状态表明所述处理器核的消息队列中未存储有消息;从缓存的消息中,确定待推送给所述目标处理器核的目标消息;将所述目标消息发送给所述目标处理器核。
在一种可能的设计中,该处理器核,还用于在将该目标消息缓存到该处理器核内的消息队列中之后,将该消息队列中存储的状态值设置为1,其中,该状态值为1表明该消息队列中存储有消息;相应的,处理器在从该处理器核的消息队列中读取该目标消息时,具体用于,读取该消息队列中存储的状态值;在该状态值为1时,从该消息队列中读取该目标消息。
在一种可能的设计中,处理器核,还用于当读取出该消息队列中存储的该目标消息的全部数据时,将该状态值设置为0,该状态值为0表明该消息队列中不存在未被读取的消息。
在一种可能的设计中,该处理器核,还用于在将该目标消息缓存到该处理器核内的消息队列中之后,根据该目标消息所占据的比特位,设置该消息队列中存储的消息大小的取值,该消息大小的取值与该目标消息所占据的比特位相同;相应的,处理器核在从该消息队列中读取该目标消息时,具体用于根据该消息大小的取值,从该消息队列中读取该目标消息的数据,直至该目标消息的全部数据均被读取出。
在一种可能的设计中,该消息中转模块在从缓存的消息中,确定待推送给该处理器核的目标消息时,具体用于按照先进先出原则,从消息缓存空间缓存的消息中,确定出待推送给该处理器核的目标消息。
本申请实施例的第三方面与第一方面以及第二方面的设计思路一致,技术手段类似,技术方案带来的具体有益效果请参考第一方面以及第二方面,不再赘述。
附图说明
图1示出了本申请实施例的消息处理方法所适用的一种应用场景的组成结构示意图;
图2示出了本申请实施例的基站内部消息传递的示意图;
图3示出了本申请中基站的一种组成结构示意图;
图4示出了本申请一种消息处理方法一个实施例的流程示意图;
图5示出了本申请中的处理器核从消息队列中读取消息的一种流程示意图。
具体实施方式
本申请实施例的消息处理方法和基站,适用于多种不同的通信系统。为了便于理解,以一种应用场景为例进行介绍。
如,以移动通信系统为例,参见图1,其示出了本申请的消息处理方法所适用的一种应用场景的组成结构示意图。
该场景可以包括:基站101、终端102以及移动交换中心(Mobile SwitchingCenter,MSC)103。
需要说明的是,该基站也可以认为是一个基站子系统。终端可以包括用户设备(User Equipment,UE)等用户终端。而该移动交换中心属于核心网中的设备,在核心网中除了包括移动交换中心之外,还可以包括其他设备,在此不一一列举。
其中,该基站101负责接收终端102发送的消息,并将消息处理之后发送给移动交换中心103。
移动交换中心将该消息处理之后返回给该终端102,或者其他终端,以实该现终端102与移动交换中心或者其他终端之间的通信。
其中,本申请实施例中所提到的消息也可以称为包任务,一条消息就是一个包任务。
可以理解的是,在基站接收到以及发送消息的过程中,基站就会产生一些待处理的消息,这些待处理的消息会缓存在基站中具备包保序功能的消息中转模块,以便处理器依次处理该消息中转模块中的消息。
需要说明的是,图1仅仅是本申请的消息处理方法所适用的一种应用场景,在实际应用中使得基站可以接收到待处理的消息的应用场景还可以有其他多种,在此不加以限制。
另外,除了基站从外部接收消息,并将消息处理后转发的情况之外,基站在处理业务的过程中,也可以会产生一些需要处理器处理的消息,这些消息也会先缓存在消息中转模块中,以便CPU依次获取消息并处理。如,在基站的处理器具有多个处理器核的情况下,处理器核之间会存在交互的消息,那么这些消息会先从一个处理器核转发到该消息中转模块,然后由另一个处理器核从该消息中转模块中读取消息并处理。
无论以上哪种情况,基站内所有的待处理消息都需要先缓存在该消息中转模块,然后处理器也可以从消息中转模块中获取到待处理消息。如,基站内加速器、安全模块以及报文处理引擎模块等硬件模块中所需处理或转发的消息都需要先转发给消息中转模块进行缓存,并由处理器对消息中转模块内的消息进行处理之后,再转发给相应的硬件模块或者将处理后的消息发送给基站之外的其他设备。
为了便于理解,以基站的一种消息处理场景为例进行介绍,参见图2,其示出了消息在基站内各个硬件之间传递的一种示意图。
结合图2可以看出,基站中的报文处理引擎模块对获取到的消息(也可以称为报文)进行解析之后,将消息添加到消息中转模块;当处理器从消息中转模块读取消息并处理之后,处理器将处理后的消息添加到该消息中转模块,以便安全引擎模块继续处理该消息;相应的,安全引擎模块对从消息中转模块获取到的消息进行加密或者解密处理,并将处理后的消息添加到该消息中转模块;然后,处理器再从消息中转模块获取消息进行处理,并将处理后的消息发送给流量管理模块;最后,流量管理模块将消息推送给报文处理引擎模块的网口。
由图2的流程可知,在该消息传递过程中,处理器从消息中转模块中获取消息的次数为两次。
当然,图2仅仅是基站处理消息的一种场景,在实际应用中,使得消息中转模块中缓存有可供处理器处理的消息的情况可以有多种,本申请对此不加以限制。
为了提高处理器获取消息的性能,在本申请实施例中,将处理器从消息中转模块读取消息的方式,变更为消息中转模块主动向处理器推送待处理的消息。为了便于理解本申请的方案,先对基站的组成结构进行介绍。
如,参见图3,其示出了本申请一种基站的组成结构示意图。如图3,该基站包括:处理器30和消息中转模块31。
为了提高消息处理性能,在本申请实施例中,该处理器30可以为多核处理器,其包括多个处理器核32,每个处理器核32也可以称为该多核处理器的内核。
在本申请实施例中,每个处理器核32内维护有一个消息队列321。消息队列321是一个存储空间,该消息队列可以包括数据存储区3211,该数据存储区3211用于存储待处理的消息。
为了快速确定数据存储区中是否存储有消息,以及数据存储区中存储的消息所占据的比特状态存储区用于记录数据存储区中是否存储有消息以及消息的大小,该消息队列中还可以包括状态存储区3212,其中,该状态存储区3212用于记录该数据存储区是否存储有消息,以及存储的消息的大小。其中,消息的大小也就是该消息所占据的比特位(比特位也称为比特),如,消息中包含的数据为128比特位、512比特位等等。
如,状态存储区存储有状态值以及消息大小这两个记录项,其中,状态值可以为0或1,当状态值为0时,表征消息队列中不存在消息;当状态值为1时,表示消息队列中存在消息。消息大小的取值表示消息队列中当前存储的消息中数据量的大小,如,该消息大小可以为128比特位或者256比特位等。例如,当处理器核向其消息队列的数据存储区中存储待处理的消息时,处理器核将该状态值设置为1,并根据该消息包含的数据的比特位数,设置该消息大小的取值。
可以理解的是,为了区分出消息队列中所存储的消息,在该消息队列的状态存储区3212还可以存储消息的标识,如图3中消息队列的状态存储区3212中还记录的消息的标识,在图3中以MSG ID表示消息的标识。
当然,为了区分出不同处理器核所维护的消息队列,还可以为不同的消息队列分配不同的消息队列的标识,如,参见图3,在该图3中,处理器核0所维护的消息队列的标识为MSQG0,处理器核X所维护的消息队列的标识为MSQGX。
在一种可能的实现方式中,处理器核所维护的消息队列是由该处理器核内的一组寄存器构成,相应的,这一组寄存器的存储空间就是该消息队列的存储空间。其中,消息队列所包括的寄存器的数量可以根据需要设定,具体可以依据基站中待处理的一条消息所需占据的比特位的最大值来确定。
如,一个消息队列可以包括9个寄存器,其中,一个寄存器的存储空间作为状态存储区,另外8个寄存器的存储空间作为数据存储区,如,在图3中,每个消息队列对应着九个存储区域,每个存储区域就是一个寄存器的存储空间,其中,第一个寄存器中存储了状态值以及消息大小等信息,第二个到第八个寄存器的存储空间则分别存储一条消息所包含的数据。例如,假设一个寄存器的存储空间为64比特位,如果一条消息的大小为128比特位,则可以将需要占用两个寄存器的存储空间,在该种情况下,可以利用第一个以及第二个寄存器来存储该条消息。
在本申请实施例中,该消息中转模块为基站中用于实现消息中转,且按照先进先出原则向处理器核提供待处理的消息的模块。
其中,该消息中转模块31包括消息缓存空间311,该消息缓存空间也可以认为俗称的消息池,如图3中是以消息池表示消息缓存空间。其中,该基站中其他硬件发送给该消息中转模块的所有消息都会依次缓存在该消息缓存空间中。
同时,该消息中转模块31中还维护有一个状态记录空间312。其中,该状态记录空间312用于记录该处理器中每个处理器核的消息队列中是否存储有消息。对于任意一个处理器核,如果当前时刻处理器核的消息队列中存在待处理的消息,则该消息中转模块在该状态存储空间记录该处理器核的消息队列处于非空闲状态;如果当前时刻处理器核的消息队列中不存在待处理的消息,则该消息中转模块在该状态存储空间中记录有该处理器核的消息队列处于空闲状态。
如,消息中转模块可以在该状态存储空间中分别记录每个处理器核各自的有效标志位,如果处理器核的消息队列处于非空闲状态,则将该处理器核的有效标志位设置为1;如果该处理器核的消息队列处于空闲状态,则将该处理器核的有效标志位设置为0。
相应的,该消息中转模块可以在处理器核的消息队列处于空闲状态时,从该消息缓存空间中调取待处理的消息,并将待处理的消息推送给该待处理器核。
需要说明的是,图3仅仅是基站的一种简化示意图,其不构成对基站的限制,在实际中,该基站可以包括比图示更多的部件,如,该基站还可以包括发射机、接收机等等部件或模块,在此不加以限制。
下面结合以上共性,对本申请实施例的消息处理方法进行详细介绍。
参见图4,其示出了本申请一种消息处理方法一个实施例的流程示意图,本实施例的方法应用于基站,该方法可以包括:
S401,消息中转模块监控状态记录空间中记录的各个处理器核的有效标志位。
其中,处理器核的有效标志位用于表征该处理器核的消息队列是否处于空闲状态,如,当处理器核的有效标志位为1,说明该处理器核内的消息队列中存储有未被处理的消息;当该处理器核的有效标志位为0,说明该处理器核内的消息队列中不存在未被处理的消息。当然,具体可参见前面的介绍,在此不再赘述。
其中,消息中转模块可以实时监控各个处理器核的有效标志位,也可以按照预先设定的时间间隔,定期扫描该状态记录空间,以监控每个处理器核的有效标志位。
可以理解的是,如果消息中转模块的消息缓存空间中未缓存有消息,则说明该消息中转模块中不存在需要处理器核处理的消息,也就是说,消息中转模块不存在需要向处于空闲状态的处理器核推送消息的需求,在该种情况下,消息中转模块也就无需检测处理器核的消息队列是否处于空闲状态,因此,在步骤S401中,可以消息中转模块也可以在检测到消息缓存空间存储有待处理的消息时,监控各个处理器核的有效标志位。
S402,当消息中转模块检测到当前存在至少一个有效标志位为0的处理器核时,从该至少一个有效标志位为0的处理器核中,确定当前待推送消息的目标处理器核。
如果处理器核的有效标志位为0,则说明该处理器核内部的消息队列中未存储有待处理的消息,在该种情况下,消息中转模块可以从消息缓存空间中调度消息,并推送给处理器核。而考虑到消息队列处于空闲状态的处理器核有可能不止一个,因此,消息中转模块可以依次向有效标志位为0的处理器核中推送消息。具体的,消息中转模块可以从有效标志位为0的处理器核中,选取出一个当前需要推送消息的处理器核,并执行后续的消息推送,为了便于区分,将当前需要推送消息的处理器核称为目标处理器核。
其中,从该至少一个有效标志位为0的处理器核中,选取目标处理器核的方式可以有多种,如,可以随机选取一个有效标志位为0的处理器核作为目标处理器核;又如,在处理器核存在优先顺序的情况下,可以按照优先顺序,将有效标志位为0且当前时刻优先级最靠前的处理器核作为目标处理器核。
可以理解的是,在消息中转模块未向任意处理器核推送过消息之前,消息中转模块可以将每个处理器核的有效标志位均设置为0,如,在初始化阶段,消息中转模块将每个处理器核的有效标志位的初始化为0。
可以理解的是,在消息中转模块确定出目标处理器核,并执行后续步骤,向该目标处理器核推送了消息之后,在消息中转模块中存在未被处理的消息的前提下,该消息中转模块会重复执行该步骤S402,直至完成向所有有效标志位为0的处理器核推送消息为止。
需要说明的是,在本申请实施例中,是以消息中转模块分别存储各个处理器核的有效标志位为例进行介绍,但是可以理解的是,如果消息中转模块通过其他方式记录各个处理器核中的消息队列对应的消息存储状态的情况,如,记录处理器核的消息队列对应的消息存储状态为空闲状态,或者为非空闲状态等,对于其他记录处理器核的队列对应的消息存储状态的方式也适用于本申请,只要是能够保证该消息中转模块可以判断出处理器核中的消息队列中是否处于空闲状态即可。
S403,消息中转模块检测消息中转模块的消息缓存空间中是否存储有消息,如果是,则执行步骤S404;如果否,则返回步骤S401。
其中,消息缓存空间中缓存的消息均为待处理的消息,如果该消息缓存空间中未存储有消息,则说明当前时刻基站中不存在需要处理器核处理的消息,在该种情况下,则无需执行后续步骤,可以返回步骤S401,以继续监控各个处理器核的有效标志位,并等待消息中转模块的消息缓存空间中出现待处理的消息。
可以理解的是,该步骤S403并不限于图4所示,在实际应用中,也可以在选取目标处理器核之前,先执行该步骤S403。当然,如果在确定有效标志位为0的处理器核之前,已经确定该消息中转模块的消息缓存空间中存储有待处理的消息,则无需再执行该步骤S403。
S404,消息中转模块从该消息缓存空间中确定当前待处理的目标消息。
其中,为了便于区分,本申请实施例中,将消息缓存空间中当前待处理(也可以称为待调度)的消息称为目标消息。
如,该消息中转模块可以按照先进先出的原则,从该消息缓存空间存储的消息中,确定出当前待处理的目标消息。具体的,可以根据该消息缓存空间中消息的存储时刻,从该消息缓存空间中选取存储时刻最靠前的消息作为当前待处理的目标消息,从而使得存储时间靠前消息,被优先取出。其中,存储时间是指消息被存储到该消息缓存空间的时刻。
可以理解的是,在处理器中所有处理器核所处理的业务相同的情况下,消息中转模块无需区分哪些消息需要分配给哪些处理器核,在该种情况下,只需要按照先进先出的原则,从消息缓存空间中确定出存储时间最靠前的目标消息即可。但是,如果不同处理器核负责不同业务相关的消息,那么消息中转模块需要根据该目标处理器核所负责的业务,从消息缓存空间缓存的属于该目标处理器核所负责处理的消息中,确定出目标消息,如,目标消息为属于目标处理器核负责处理的消息中,存储时间最靠前的消息。
当然,在实际应用中,消息中转模块在确定目标消息时,还可能会考虑其他因素,在此不加以限制。
S405,消息中转模块从该消息缓存空间中取出该目标消息,将该目标消息发送给该目标处理器核。
其中,消息中转模块从消息缓存空间中确定目标消息以及取出目标消息的过程就是调度消息的过程。可见,在本申请实施例中,消息中转模块无需等待处理器核向消息中转模块请求读取消息,而是在确定出处理器核内的消息队列处于空闲状态时,便执行消息调度,从而可以在处理器核需要处理该目标消息之前,提前将处理器核所需处理的目标消息发送给处理器核。
可以理解的是,消息中转模块从该消息缓存空间取出该目标消息可以理解为,从该消息缓存空间中读取该目标消息,并删除该消息缓存空间中存储的该目标消息,这样,消息缓存空间中存储的消息都属于尚未被处理的消息。
S406,消息中转模块将该目标处理器核的有效标志位设置为1,并返回步骤S401。
由于消息中转模块向目标处理器核推送了消息之后,目标处理器核会将消息中转模块推送的消息存储到消息队列中,使得该目标处理器核的消息队列不再处于空闲状态,在该种情况下,该消息中转模块会将该目标处理器核的有效标志位设置为1,以记录该目标处理器核的消息队列当前处于非空闲状态。
可以理解的是,消息中转模块向该目标处理器核推送了目标消息之后,该消息中转模块则可以继续监控各个处理器核的有效标志位,如果当前时刻仍存在有效标志位为0的处理器核,则该消息中转模块会继续向其他处理器核推送消息,直到所有处理器核的有效标志位均为0或者是消息缓存空间中不存在待处理的消息为止。当然,在实际应用中,将该目标处理器核的有效标志位设置为1之后,如果返回步骤S402也同样适用于本实施例。
需要说明的是,在本申请实施例中,是以消息中转模块将消息缓存在消息缓存空间,且将有效标志位缓存在状态记录空间为例进行说明,但是可以理解的是,如果消息中转模块在同一个存储空间分别缓存消息和各个处理器核中消息队列的空闲状态也同样适用于本申请实施例。
S407,处理器核接收到消息中转模块发送的目标消息时,将该目标消息存储到该处理器核中消息队列的数据存储区。
如,处理器核根据该目标消息中的数据所对应的比特数,从消息队列的数据存储区确定出需要存储该目标消息的目标存储空间,并将该目标消息存储到该目标存储空间中。
可以理解的是,在处理器核中的消息队列为一组寄存器所包含的存储空间的情况下,处理器核可以将目标消息存储到消息队列中用于存储数据的寄存器中。如,假设每个寄存器的存储空间为64比特位,而一条目标消息的大小为256比特位,那么可以将该按照用于存储数据的寄存器的排序,将该条目标消息存储到用于存储数据的前四个寄存器中。例如,结合图3进行说明,消息队列321由9个寄存器组成,其中,第一个寄存器相当于状态存储器3212,而第2个到第9个寄存器组成了数据存储区3211,由于该目标消息为256比特位,则存储该目标消息需要占据第2个至第5个寄存器,即图3中标注有Date0、Date1、Date2以及Date3的寄存器。
可以理解的是,该步骤S407中的处理器核可以认为是消息中转模块中确定出的目标处理器核,虽然在不同时刻该消息中转模块确定出的目标处理器核不同,但是对于接收到消息中转模块发送的目标消息的处理器核而言,处理器核处理该目标消息的过程却是相同的。
需要说明的是,为了便于统一,将处理器核接收到的由消息中转模块发送的消息也称为目标消息,但是可以理解的是,在本申请的不同地方,也可以将该目标消息直接称为消息。
S408,处理器核将该消息队列的状态存储区中的状态值设置为1,并根据该目标消息包含的数据的比特位数,设置该消息队列的状态存储区中的消息大小的取值。
其中,设置状态存储区的状态值有利于处理器核根据状态值快速确定出消息队列中是否存储有待处理的消息,因此,在处理器核将消息中转模块推送的消息存储到消息队列的同时,可以将该状态存储区中的该状态值设置为1,以表明该处理器核的消息队列中存储有未处理的消息。
相应的,为了便于确定消息队列中存储的消息的大小,该处理器核还可以根据该目标消息对应的比特数,设置该消息大小的取值,如,该目标消息包含128比特的数据,则该消息大小的取值可以为128比特。
S409,在处理器核确定当前满足消息读取条件时,读取该处理器核中消息队列的状态存储区存储的状态值以及消息大小。
其中,该消息读取条件也可以为处理器获取待处理的消息的条件,如,消息读取条件可以为处理器核完成一条消息的处理,当然,该消息读取条件还可以为根据需要设置为其他条件,在此不加以限制。
其中,读取该状态值和消息大小的目的是为了辅助后续从消息队列中读取消息,以提高消息读取的便捷性。
S410,当该状态值为1时,处理器核依据该消息大小的取值,读取该消息队列的数据存储区中存储的目标消息。
在处理器核内部的消息队列存储有消息的情况下,处理器核可以直接从该消息队列中读取需要处理的目标消息。其中,根据状态存储区中存储的该消息大小的取值,有利于确定数据存储区中哪些存储空间中存储有该目标消息的数据,从而完成该目标消息的读取。
其中,处理器核从该消息队列中的数据存储区读取该目标消息时,也可以是一次读取出该目标消息的所有数据,也可以是多次读取该目标消息的数据。当然,处理器核读取该目标消息所需的次数也与该目标消息的大小有关。
如,在一种可能的实现方式中,可以预先设置处理器核每次读取的最大比特数,这样,在从该消息队列的数据存储区读取该目标消息时,可以从该数据存储区中读取该最大比特数个比特位;然后根据该消息大小的取值,判断该数据存储区中是否仍存在该目标消息的数据,如果是,继续从该数据存储区中读取该最大比特数个比特位,直至该数据存储区中存储的该目标消息的所有数据均被读取完为止。
可以理解的是,在每个处理器核的消息队列包括一组寄存器的情况下,也可以根据消息可能的大小,以及每次读取寄存器的最小个数,来从消息队列的寄存器中读取目标消息。如,仍以每个处理器核的消息队列包括9个寄存器为例,这9个寄存器依次为寄存器0、寄存器1、寄存器2、寄存器3、寄存器4、寄存器5、寄存器6、寄存器7和寄存器8,其中,寄存器0的存储空间为状态存储区,寄存器1到寄存器8的存储空间为数据存储区。同时,假设每个寄存器包含的比特位为64比特位,而每条消息包含的数据大小不会超过64*8个比特位,即每条消息最大包含数据为512比特位。在此基础上,假设处理器核每次从该消息队列读取数据的最小比特数为128比特位,即每次最少读取两个寄存器中存储的数据,则处理器核从该消息队列中读取目标消息的过程可以参见图5,由图5可知,该处理器核读取目标消息的过程可以包括:
S501,从消息队列的寄存器1和寄存器2中读取目标消息的数据,得到目标消息中的第一部分数据;
其中,为了便于区分,将从寄存器1和寄存器2中读取出的,属于该目标消息的数据称为目标消息的第一部分数据。根据目标消息的大小不同,该第一部分数据有可能是目标消息的一部分数据,也可以是目标消息的全部数据。
S502,根据该消息大小的取值,判断该目标消息包含的数据是否大于128比特位,如果是,则执行步骤S503;如果否,则目标消息读取完毕。
如果目标消息的大小超过128比特位,则说明目标消息的数据未被全部读取出,其他寄存器也存储有该目标消息的数据,在该种情况下,则需要继续执行后续步骤;如果该目标消息的大小不超过128比特位,则说明该目标消息的第一部分数据就是该目标消息的全部数据,目标消息的所有数据均读取完毕,无需再执行后续步骤。
其中,该步骤的128比特位可以认为是每次读取数据的最小比特数。其中,每次读取数据的最小比特数可以根据设定。
当然,设定每次读取数据的最小比特数仅仅是一种可能的实现方式,在实际应用中,也可以根据基站所需处理的消息所可能包含的数据量大小,将该128比特位设置为其他可能的比特数,如,假设基站中处理器核所处理的消息的大小只能是128比特位、256比特位或者512比特位,而在每个寄存器的存储空间为64比特位的情况下,则第一次可以读取128比特位/64比特位个寄存器内的数据,即读取前两个寄存器中存储的数据。然后判断该消息是否大于128比特,如果是,则说明该目标消息的大小可能是256比特位,在该种情况下,则可以继续执行后续步骤S503。
S503,从消息队列的寄存器3和寄存器4中读取目标消息的数据,得到目标消息中的第二部分数据。
与第一部分数据相似,将从寄存器3和寄存器4中读取出的该目标消息的数据称为第二部分数据,该第二部分数据为目标消息的部分数据。
S504,将第一部分数据与第二部分数据进行组合,得到目标消息的第一组合数据。
为了还原出该目标消息,需要将第一部分数据与第二部分数据组合,为了便于区分,将第一部分数据与第二部分数据组合后的数据称为目标消息的第一组合数据。
S505,根据该消息大小的取值,判断该目标消息包含的数据是否大于256比特位,如果是,则执行步骤S506;如果否,则确定第一组合数据为目标数据所包含的全部数据。
经过步骤S503,处理器核读取了寄存器1到寄存器4的存储空间,而寄存器1到寄存器4的存储空间为256比特位,因此,如果该目标消息包含的数据不大于256比特位,则说明目标消息读取完毕,在该种情况下,该目标消息的第一组合数据就是目标消息的全部数据;如果该目标消息包含的数据大小超过256比特位,则说明其他寄存器中仍可能会存储有目标消息的数据,仍需要继续执行后续步骤。
S506,从消息队列的寄存器5、寄存器6、寄存器7和寄存器8中读取目标消息的数据,得到目标消息中的第三部分数据。
考虑到基站的处理器核所需处理的消息的大小一般为128比特位、256比特位和512比特位,因此,如果该目标消息包含的数据超过256比特位,则说明该目标消息的大小为512比特位,在该种情况下,则可以从寄存器5到寄存器8中读取该目标消息剩余的256比特位的数据。
为了便于区分,将从寄存器5到寄存器8读取出的数据称为该目标消息的第三部分数据。
当然,该步骤S506仅仅是一种实现方式,在实际应用中,可以按照每次最多读取128比特位的方式,先从寄存器5和寄存器6中读取该目标消息的数据,然后根据消息大小的取值,判断出目标消息的数据大于384,则继续从寄存器7和寄存器8中读取该目标消息的数据。
S507,将目标消息的第一组合数据与该第三部分数据进行组合,得到目标消息的所有数据。
可以理解的是,在目标消息的大小为512比特位的情况下,需要依次将寄存器1到寄存器8中读取出的数据进行组合,从而组合得到该目标消息的所有数据。
需要说明的是,图5仅仅是为了便于理解处理器核从消息队列中读取目标消息,而以一种读取方式为例进行介绍,但是可以理解的是,处理器核可以根据实际需要采用其他方式从消息队列中读取出该目标消息,对于其他方式也同样适用于本申请实施例。
可以理解的是,在该状态值为0时,说明该消息队列中不存在消息,在该种情况下,处理器核无法读取到消息,则无需进行任何处理。
可见,在本申请实施例中,在处理器核需要读取消息之前,如果处理器核的消息队列处于空闲状态,则消息中转模块会主动向处理器核推送消息,而且处理器核会将接收到的消息缓存在消息队列中,这样,当处理器核需要读取消息时,只需要从该处理器核内的消息队列中读取消息即可,从而避免了等待消息中转模块调度消息所需的时间,而且处理器核从其内部的消息队列中读取消息所需的时长也大大减少,提高了处理器核读取消息所需的耗时,进而提高了处理器获取消息的性能,并有利于提高处理器处理消息的性能。
S411,当处理器核确定该数据存储区中的目标消息的数据被全部取出时,将该消息队列的状态存储区的状态值设置为0。
如,处理器核依据该状态存储区中消息大小的取值,可以确定从消息队列中取出的该目标消息的数据是否与该消息大小的取值一致,如果是,则可以确定该目标消息的数据被全被取出。
在该数据存储区中存储的目标消息的数据被全部取出时,该数据存储区不存在未被处理的消息,即该数据存储区处于空闲状态,因此,可以将该状态存储区的状态值设置为0,以便处理器核可以了解到该消息队列中存储消息的情况。
S412,处理器核向消息中转模块发送空闲通知。
其中,该空闲通知用于将该处理器核内的消息队列处于空闲状态的信息通知给该消息中转模块。
可以理解的是,为了使得消息中转模块可以理解到该处理器核内的消息队列中是否存储有消息,在处理器核取出该消息队列中存储的消息之后,还可以向消息中转模块发送空闲通知。
需要说明的是,该步骤S411和步骤S412的顺序并不限于图4所示,在实际应用中,可以在执行步骤S411的同时,执行该步骤S412;也可以是在处理器核确定出消息队列内的消息的数据被全部取出时,先向消息中转模块发送空闲通知,再将该状态存储区的状态值设置为0。
S413,消息中转模块基于该空闲通知,将状态记录空间中该处理器核的有效标志位设置为0。
为了使得消息中转模块中记录的各个处理器核的消息队列的空闲状态,与处理器核中消息队列中实际存储消息的状态一致,当该消息中转模块接收到某个处理器核发送给空闲通知时,会将该处理器核的有效标志位设置为0。
当然,在消息中转模块通过其他方式记录处理器核的消息队列中存储消息的情况,则消息中转模块在接收到该空闲通知时,也可以通过其他方式记录该处理器核的消息队列处于空闲状态。
需要说明的是,步骤S412到S413并非处理器核读取消息所必须的步骤,其仅仅是为了保证后续消息中转模块仍可以继续向处理器核推送消息而执行的操作。
需要说明的是,在以上实施例中是以处理器为多核处理器为例进行介绍,但是可以理解的是,如果处理器为单核处理器,即处理器仅仅包括一个处理器核的情况下,也同样适用于本申请实施例,在处理器包含单个处理器核的情况下,当消息中转模块检测到该处理器核的消息队列处于空闲状态,同样可以从缓存的消息中确定待推送给该处理器核的目标消息,并将该目标消息发送给该处理器核,相应的,处理器核也会将接收到的消息缓存在该处理器核内部的消息队列中,并在满足该处理器核的消息读取条件时,从该消息队列中读取消息,该过程与上面处理器核与消息中转模块的交互过程相似,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可能全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介绍传输。例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘(Solid State Disk(SSD))等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (16)
1.一种消息处理方法,其特征在于,应用于消息中转模块,所述消息中转模块为基站中用于缓存需要处理器核处理的消息的模块,包括:
监控处理器核的消息队列对应的消息存储状态,所述处理器核的消息队列为所述处理器核内部用于缓存消息的空间;
在所述消息存储状态表明所述处理器核的消息队列中未存储有消息的情况下,从缓存的消息中,确定待推送给所述处理器核的目标消息;
将所述目标消息发送给所述处理器核,以使得所述处理器核将所述目标消息缓存在所述处理器核的消息队列中,并在满足消息读取条件时,从所述消息队列中读取所述目标消息;
所述从缓存的消息中,确定待推送给所述处理器核的目标消息,包括:
按照先进先出的原则,从消息缓存空间缓存的消息中,确定出当前时刻待推送给所述处理器核的目标消息。
2.根据权利要求1所述的消息处理方法,其特征在于,在所述将所述目标消息发送给所述处理器核之后,还包括:
将所述处理器核的消息队列对应的消息存储状态设置为非空闲状态,所述非空闲状态表明所述处理器核的消息队列中存储有消息。
3.根据权利要求1或2所述的消息处理方法,其特征在于,还包括:
当接收到所述处理器核发送的空闲通知时,将所述消息存储状态设置为空闲状态,所述空闲状态表明所述处理器核的消息队列中未存储有消息,所述空闲通知为所述处理器核在读取出所述处理器核的消息队列中存储的消息之后发送的。
4.根据权利要求1所述的消息处理方法,其特征在于,所述监控处理器核的消息队列对应的消息存储状态,包括:
监控处理器的多个处理器核的消息队列各自对应的消息存储状态;
所述在所述消息存储状态表明所述处理器核的消息队列中未存储有消息的情况下,从缓存的消息中,确定待推送给所述处理器核的目标消息,包括:
当所述多个处理器核中存在消息存储状态为空闲状态的至少一个处理器核时,从所述至少一个处理器核中,确定当前待推送消息的目标处理器核,其中,所述处理器核对应的消息存储状态为空闲状态表明所述处理器核的消息队列中未存储有消息;
从缓存的消息中,确定待推送给所述目标处理器核的目标消息;
所述将所述目标消息发送给所述处理器核,包括:
将所述目标消息发送给所述目标处理器核。
5.一种消息处理方法,其特征在于,包括:
处理器核接收消息中转模块发送的消息,所述消息中转模块为基站中用于缓存需要所述处理器核处理的消息的模块;所述消息中转模块用于按照先进先出的原则,从其缓存的消息中确定出当前时刻待推送给所述处理器 核的所述消息;
所述处理器核将所述消息缓存到所述处理器核内的消息队列中;
当满足消息读取条件时,所述处理器核从所述消息队列中读取所述消息。
6.根据权利要求5所述的消息处理方法,其特征在于,在所述处理器核从所述消息队列中读取所述消息之后,还包括:
向所述消息中转模块发送空闲通知,所述空闲通知表明所述处理器核的消息队列中不存在消息。
7.根据权利要求5所述的消息处理方法,其特征在于,在所述处理器核将所述消息缓存到所述处理器核内的消息队列中之后,还包括:
将所述消息队列中存储的状态值设置为1,其中,所述状态值为1表明所述消息队列中存储有消息;
所述当满足消息读取条件时,所述处理器核从所述消息队列中读取所述消息,包括:
当满足消息读取条件时,所述处理器核读取所述消息队列中存储的状态值;
在所述状态值为1时,所述处理器核从所述消息队列中读取所述消息。
8.根据权利要求7所述的消息处理方法,其特征在于,在所述处理器核从所述消息队列中读取所述消息之后,还包括:
当读取出所述消息队列中存储的所述消息的全部数据时,将所述状态值设置为0,所述状态值为0表明所述消息队列中不存在未被读取的消息。
9.根据权利要求5或7所述的消息处理方法,其特征在于,在所述处理器核将所述消息缓存到所述处理器核内的消息队列中之后,还包括:
根据所述消息所占据的比特位,设置所述消息队列中存储的消息大小的取值,所述消息大小的取值与所述消息所占据的比特位相同;
所述处理器核从所述消息队列中读取所述消息,包括:
所述处理器核根据所述消息大小的取值,从所述消息队列中读取所述消息的数据,直至所述消息的全部数据均被读取出。
10.一种基站,其特征在于,包括:
处理器以及消息中转模块,所述处理器包括至少一个处理器核,所述处理器核内部具有消息队列;所述消息中转模块为所述基站中用于缓存需要所述处理器核处理的消息的模块;
其中,所述消息中转模块,用于监控所述处理器核的消息队列对应的消息存储状态;在所述消息存储状态表明所述处理器核的消息队列中未存储有消息的情况下,从缓存的消息中,确定待推送给所述处理器核的目标消息;将所述目标消息发送给所述处理器核;
所述消息中转模块在从缓存的消息中,确定待推送给所述处理器核的目标消息时,具体用于按照先进先出原则,从消息缓存空间缓存的消息中,确定出待推送给所述处理器核的目标消息;
所述处理器核,用于将所述目标消息缓存在所述处理器核内的消息队列中;在满足消息读取条件时,从所述处理器核内的消息队列中读取所述目标消息。
11.根据权利要求10所述的基站,其特征在于,所述消息中转模块,还用于在将所述目标消息发送给所述处理器核之后,将所述处理器核的消息队列对应的消息存储状态设置为非空闲状态,所述非空闲状态表明所述处理器核的消息队列中存储有消息。
12.根据权利要求10所述的基站,其特征在于,所述处理器核,还用于在从所述处理器核内的消息队列中读取出所述目标消息之后,向所述消息中转模块发送空闲通知,所述空闲通知表明所述处理器核的消息队列中不存在消息;
所述消息中转模块,还用于当接收到所述处理器核发送的空闲通知时,将所述处理器核对应的消息存储状态设置为空闲状态,所述空闲状态表明所述处理器核的消息队列中未存储有消息。
13.根据权利要求10所述的基站,其特征在于,所述处理器包括多个处理器核;
所述消息中转模块,具体用于监控所述多个处理器核的消息队列各自对应的消息存储状态;当所述多个处理器核中存在消息存储状态为空闲状态的至少一个处理器核时,从所述至少一个处理器核中,确定当前待推送消息的目标处理器核,其中,所述处理器核对应的消息存储状态为空闲状态表明所述处理器核的消息队列中未存储有消息;从缓存的消息中,确定待推送给所述目标处理器核的目标消息;将所述目标消息发送给所述目标处理器核。
14.根据权利要求10所述的基站,其特征在于,所述处理器核,还用于在将所述目标消息缓存到所述处理器核内的消息队列中之后,将所述消息队列中存储的状态值设置为1,其中,所述状态值为1表明所述消息队列中存储有消息;
所述处理器核在从所述处理器核内的消息队列中读取所述目标消息时,具体用于,读取所述消息队列中存储的状态值;在所述状态值为1时,从所述消息队列中读取所述目标消息。
15.根据权利要求14所述的基站,其特征在于,所述处理器核,还用于当读取出所述消息队列中存储的所述目标消息的全部数据时,将所述状态值设置为0,所述状态值为0表明所述消息队列中不存在未被读取的消息。
16.根据权利要求10或14所述的基站,其特征在于,所述处理器核,还用于在将所述目标消息缓存到所述处理器核内的消息队列中之后,根据所述目标消息所占据的比特位,设置所述消息队列中存储的消息大小的取值,所述消息大小的取值与所述目标消息所占据的比特位相同;
所述处理器核在从所述消息队列中读取所述目标消息时,具体用于根据所述消息大小的取值,从所述消息队列中读取所述目标消息的数据,直至所述目标消息的全部数据均被读取出。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710640484.XA CN107613529B (zh) | 2017-07-31 | 2017-07-31 | 消息处理方法以及基站 |
PCT/CN2018/096941 WO2019024727A1 (zh) | 2017-07-31 | 2018-07-25 | 消息处理方法以及基站 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710640484.XA CN107613529B (zh) | 2017-07-31 | 2017-07-31 | 消息处理方法以及基站 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107613529A CN107613529A (zh) | 2018-01-19 |
CN107613529B true CN107613529B (zh) | 2021-06-01 |
Family
ID=61064108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710640484.XA Active CN107613529B (zh) | 2017-07-31 | 2017-07-31 | 消息处理方法以及基站 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107613529B (zh) |
WO (1) | WO2019024727A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613529B (zh) * | 2017-07-31 | 2021-06-01 | 上海华为技术有限公司 | 消息处理方法以及基站 |
CN110225102B (zh) * | 2019-05-23 | 2022-06-03 | 北京小米移动软件有限公司 | 推送信息的方法、设备及系统 |
CN111290856B (zh) * | 2020-03-23 | 2023-08-25 | 优刻得科技股份有限公司 | 数据处理装置和方法 |
CN112616090B (zh) * | 2020-12-07 | 2023-07-18 | 青岛海信传媒网络技术有限公司 | 显示设备系统升级方法及显示设备 |
CN113177883B (zh) * | 2021-05-18 | 2024-06-07 | 深圳市数存科技有限公司 | 一种基于数据队列的排列传输系统 |
CN114253741B (zh) * | 2021-12-02 | 2022-11-08 | 国汽智控(北京)科技有限公司 | 多核微处理器的核间通信方法和多核微处理器 |
CN114564420B (zh) * | 2022-01-19 | 2023-08-18 | 中国电子科技集团公司第十研究所 | 多核处理器共享并行总线的方法 |
CN114979056B (zh) * | 2022-05-20 | 2023-12-29 | 甬矽电子(宁波)股份有限公司 | 一种电子邮件处理方法、装置、存储介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095604A (zh) * | 2016-06-21 | 2016-11-09 | 京信通信技术(广州)有限公司 | 一种多核处理器的核间通信方法及装置 |
CN106959929A (zh) * | 2017-03-17 | 2017-07-18 | 数据通信科学技术研究所 | 一种多端口访问的存储器及其工作方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840328B (zh) * | 2010-04-15 | 2014-05-07 | 华为技术有限公司 | 一种数据处理方法及系统以及相关设备 |
WO2012092894A2 (zh) * | 2012-02-01 | 2012-07-12 | 华为技术有限公司 | 一种多核处理器系统 |
CN102638402B (zh) * | 2012-03-28 | 2015-04-01 | 中兴通讯股份有限公司 | 流媒体双缓存技术中填充数据的方法及装置 |
CN107613529B (zh) * | 2017-07-31 | 2021-06-01 | 上海华为技术有限公司 | 消息处理方法以及基站 |
-
2017
- 2017-07-31 CN CN201710640484.XA patent/CN107613529B/zh active Active
-
2018
- 2018-07-25 WO PCT/CN2018/096941 patent/WO2019024727A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095604A (zh) * | 2016-06-21 | 2016-11-09 | 京信通信技术(广州)有限公司 | 一种多核处理器的核间通信方法及装置 |
CN106959929A (zh) * | 2017-03-17 | 2017-07-18 | 数据通信科学技术研究所 | 一种多端口访问的存储器及其工作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107613529A (zh) | 2018-01-19 |
WO2019024727A1 (zh) | 2019-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107613529B (zh) | 消息处理方法以及基站 | |
EP2871809B1 (en) | Message processing method, device and system for internet of things | |
US8352710B2 (en) | Off-loading of processing from a processor blade to storage blades | |
CN111221638B (zh) | 并发任务的调度处理方法、装置、设备和介质 | |
US11425057B2 (en) | Packet processing | |
CN112698959A (zh) | 一种多核通信方法和装置 | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN110740145A (zh) | 消息消费方法、装置、存储介质及电子设备 | |
CN111538694B (zh) | 一种用于网络接口支持多链接和重传的数据缓存方法 | |
WO2022211724A1 (en) | Method and apparatus for transmitting messages, and device and storage medium thereof | |
CN107924330A (zh) | 用于集成的线程调度的技术 | |
CN114691595A (zh) | 多核电路、数据交换方法、电子设备及存储介质 | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
CN106354724B (zh) | 文件存档方法、文件读取方法及装置 | |
CN110232029A (zh) | 一种基于索引的fpga中ddr4包缓存的实现方法 | |
CN116633875B (zh) | 一种多业务耦合并发通信的时间保序调度方法 | |
CN114402313A (zh) | 标签更新方法、装置、电子设备及存储介质 | |
CN107911317B (zh) | 一种报文调度方法及装置 | |
CN109254860A (zh) | 一种异构多核平台的数据处理系统及终端设备 | |
US9338219B2 (en) | Direct push operations and gather operations | |
JP2007221522A (ja) | ポーリング装置及び端末装置及びポーリング方法及びプログラム | |
CN117499351A (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
CN112181671B (zh) | 一种延时消息处理的方法及装置 | |
CN110351223B (zh) | 定时提醒方法、装置和计算机程序介质 | |
CN108874560B (zh) | 进行通信的方法和通信设备 |
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 |