CN117389766A - 消息的发送方法及装置、存储介质及电子装置 - Google Patents
消息的发送方法及装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN117389766A CN117389766A CN202311420872.9A CN202311420872A CN117389766A CN 117389766 A CN117389766 A CN 117389766A CN 202311420872 A CN202311420872 A CN 202311420872A CN 117389766 A CN117389766 A CN 117389766A
- Authority
- CN
- China
- Prior art keywords
- target
- sent
- message
- priority
- messages
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012163 sequencing technique Methods 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 17
- 239000000758 substrate Substances 0.000 claims 6
- 239000000523 sample Substances 0.000 claims 4
- 238000012545 processing Methods 0.000 description 11
- 230000001960 triggered effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种消息的发送方法及装置、存储介质及电子装置,其中,该消息的发送方法包括:在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息;对所述多个待发送消息进行排序,以得到排列顺序和排序后的多个待发送消息;根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中,以使目标内核获取所述目标消息接收队列中的待发送消息,其中,所述目标消息接收队列为所述目标内核对应的消息接收队列。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种消息的发送方法及装置、存储介质及电子装置。
背景技术
随着电子信息技术的发展,对芯片的功能要求越来越高。过去单核心的处理器在日益复杂的应用场景下,显得力不从心,逐渐被多核处理器所替代。多核心处理器中每个核心负责专项的工作,比如逻辑运算、外设调度或者算法加速等。伴随核数的增加,核间通信的协同变得困难复杂。
相关技术中的系统级(System on a Chip,简称为SOC)芯片内部可能包含多个中央处理器(Central Processing Unit,简称为CPU)核,各CPU核拥有私有的缓存cache,中断管理等硬件资源,以及共享的随机存取存储器(Random Access Memory,简称为RAM),寄存器等硬件资源。但多个CPU核本身硬件架构不同,可能运行不同的程序代码,很难共享程序代码,会导致不同CPU间通信困难,很难相互协调工作,需要提供一套协商通信协议来保证。
目前的实现方式主要有两种,一种是基于Mailbox中断,每个cpu有一个相应的32bit的mailbox寄存器,每一位可被单独地设置或清零。任意cpu可直接通过其它cpu的mailbox对其它cpu发出中断。当mailbox被置位时,相应cpu的中断寄存器也同时被置位,软件可实现其中断处理。
一种是基于共享内存的核间通信方式,比如软件框架OpenAMP,为通用系统、实时系统和裸机程序开发提供统一接口,使用RPMsg组件进行系统间的通信,而恩智浦公司对RPMsg进行简化提出了RPMsg-Lite组件。RPMsg利用核间中断和共享内存机制完成通信,首先将消息以规定格式进行封装,然后写入共享内存中,最后触发核间中断通知对方进行读取,完成一次通信。
虽然上述两种方法均可以在实现核间通信,但方法一传递的消息数量单一,方法二可以发送多条消息,但其方式为纯软件实现,通信速度方面容易受限于芯片多核架构设计以及软件系统调度的影响,并且增加了硬件资源的占用。且上述两种方法均无法实现优先级传输(插队传输),可能会导致后发送的重要的消息被之前发送的低优先级消息堵塞,影响核间通信效果。
针对相关技术中,SOC芯片中的多个CPU核之间的通信无法实现优先级传输的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种消息的发送方法及装置、存储介质及电子装置,以至少解决相关技术中SOC芯片中的多个CPU核之间的通信无法实现优先级传输的问题。
根据本申请的一个实施例,提供了一种消息的发送方法,包括:在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息;对所述多个待发送消息进行排序,以得到排列顺序和排序后的多个待发送消息;根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中,以使目标内核获取所述目标消息接收队列中的待发送消息,其中,所述目标消息接收队列为所述目标内核对应的消息接收队列。
在一个示例性实施例中,对所述多个待发送消息进行排序,以得到排序后的多个待发送消息,包括:获取每个所述待发送消息中携带的待接收所述待发送消息的内核的标识信息;根据所述内核的标识信息对所述多个待发送消息进行分组,以得到多个分组,其中,每个分组中的待发送消息中携带的内核的标识信息一致;分别对所述多个分组中的待发送消息进行排序,以得到每个分组分别对应的排序后的多个待发送消息。
在一个示例性实施例中,分别对所述多个分组中的待发送消息进行排序,包括:确定所述多个分组对应的内核,以及确定每个内核的第一目标优先级;根据所述每个内核的第一目标优先级确定所述每个内核对应的分组的第二目标优先级;根据所述第二目标优先级依次对所述多个分组中的待发送消息进行排序。
在一个示例性实施例中,根据所述第二目标优先级依次对所述多个分组中的待发送消息进行排序之后,所述方法还包括:根据预设方式调整所述每个内核的第一目标优先级,其中,所述预设方式包括:在内核的个数为N,且所述第一目标优先级为第A优先级的情况下,将所述第一目标优先级调整为第A-1优先级;在所述内核的个数为N,且所述第一目标优先级为第一优先级的情况下,将所述第一目标优先级调整为第N优先级,其中,所述N为大于1的正整数,A为大于1且小于N的正整数,所述第一优先级为最高优先级,所述第N优先级为最低优先级。
在一个示例性实施例中,根据所述第二目标优先级依次对所述多个分组中的待发送消息进行排序,包括:根据所述第二目标优先级依次获取所述每个分组中的每个待发送消息的第三目标优先级;根据所述第三目标优先级对所述每个分组中的待发送消息进行排序。
在一个示例性实施例中,获取所述每个分组中的每个待发送消息的第三目标优先级,至少包括以下之一:获取所述每个分组中的每个待发送消息的消息内容,根据所述消息内容确定所述每个分组中的每个待发送消息的第三目标优先级;获取所述每个分组中的每个待发送消息的消息类型,根据所述消息类型确定所述每个分组中的每个待发送消息的第三目标优先级;获取所述每个分组中的每个待发送消息的消息发送方,根据所述消息发送方的优先级确定所述每个分组中的每个待发送消息的第三目标优先级。
在一个示例性实施例中,根据所述第三目标优先级对所述每个分组中的待发送消息进行排序,包括:确定多个所述第三目标优先级中是否存在优先级一致的第三目标优先级;在所述多个所述第三目标优先级中存在优先级一致的第四目标优先级的情况下,确定所述第四目标优先级对应的待发送消息;确定获取所述第四目标优先级对应的待发送消息的时间戳;根据所述时间戳对所述第四目标优先级对应的待发送消息进行排序。
在一个示例性实施例中,根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中之后,所述方法还包括:确定所述目标消息接收队列中的待发送消息的第五目标优先级;确定所述第五目标优先级与优先级阈值的第一大小关系,其中,所述优先级阈值为所述目标消息接收队列对应的目标内核预先设定的优先级阈值;根据所述第一大小关系确定是否触发所述目标内核执行中断服务程序。
在一个示例性实施例中,根据所述第一大小关系确定是否触发所述目标内核执行中断服务程序,包括:在所述第一大小关系指示所述第五目标优先级高于或者等于所述优先级阈值的情况下,触发所述目标内核执行中断服务程序;在所述第一大小关系指示所述第五目标优先级低于所述优先级阈值的情况下,禁止触发所述目标内核执行中断服务程序。
在一个示例性实施例中,触发所述目标内核执行中断服务程序之后,所述方法还包括:接收所述目标内核发送的用于获取所述第五目标优先级对应的待发送消息的第一请求信息;响应所述第一请求信息,以将所述第五目标优先级对应的待发送消息发送至所述目标内核;禁止触发所述目标内核执行中断服务程序之后,所述方法还包括:接收所述目标内核发送的用于获取所述目标消息接收队列中的待发送消息的第二请求信息;响应所述第二请求信息,以根据所述目标消息接收队列中的待发送消息的优先级向所述目标内核发送目标待发送消息。
在一个示例性实施例中,根据排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中之后,所述方法还包括:确定所述目标消息接收队列中的待发送消息的数量;确定所述数量与数量阈值的第二大小关系,其中,所述数量阈值为所述目标消息接收队列对应的目标内核预先设定的数量阈值;根据所述第二大小关系确定是否触发所述目标内核执行中断服务程序。
在一个示例性实施例中,根据所述第二大小关系确定是否触发所述目标内核执行中断服务程序,包括:在所述第二大小关系指示所述数量大于或者等于所述数量阈值的情况下,触发所述目标内核执行中断服务程序;在所述第二大小关系指示所述数量小于所述数量阈值的情况下,禁止触发所述目标内核执行中断服务程序。
在一个示例性实施例中,触发所述目标内核执行中断服务程序或者禁止触发所述目标内核执行中断服务程序之后,所述方法还包括:接收所述目标内核发送的用于获取所述目标消息接收队列中的待发送消息的第三请求信息;响应所述第三请求信息,以根据所述目标消息接收队列中的待发送消息的优先级向所述目标内核发送目标待发送消息。
在一个示例性实施例中,在每个内核对应的消息发送队列中获取预设数量的待发送消息之前,所述方法还包括:接收目标对象发送的配置信息,其中,所述配置信息包括:通信接口数量、消息发送队列中的消息数量和消息大小;根据所述配置信息对通信接口数量、消息发送队列中的消息数量和消息大小进行配置。
根据本申请的另一个实施例,提供了一种消息的发送装置,包括:获取模块,用于在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息;排序模块,用于对所述多个待发送消息进行排序,以得到排列顺序和排序后的多个待发送消息;发送模块,用于根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中,以使目标内核获取所述目标消息接收队列中的待发送消息,其中,所述目标消息接收队列为所述目标内核对应的消息接收队列。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,由于每个内核将待发送消息发送至的每个内核对应的消息发送队列中,在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息,对多个待发送消息进行了排序,并根据排序结果将待发送消息发送至每个内核对应的消息接收队列中,以使每个内核根据排序结果获取对应的待发送消息,因此,可以解决SOC芯片中的多个CPU核之间的通信无法实现优先级传输问题,达到了通过优先级配置保证消息发送与接收的实时性,加快消息传递效率和速度的效果。
附图说明
图1是本发明实施例的消息的发送方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的消息的发送方法的流程图;
图3是本发明实施例的消息的发送方法的系统整体架构图;
图4是本发明实施例的消息的发送方法的系统流程图;
图5是本发明实施例的消息的发送方法的工作流程图;
图6是根据本申请实施例的消息的发送方法装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本申请实施例的一种消息的发送方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的消息的发送方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种消息的发送方法,图2是根据本发明实施例的消息的发送方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息;
需要说明的是,每一个在每个内核对应的消息发送队列中获取预设数量的待发送消息,其中,所述预设数量包括但不限于:一个、两个、三个。
本申请实施例中的,每个内核发送消息与接收消息各对应一个队列,即每个消息内核对应一个消息发送队列和一个消息接收队列,每个队列可以存放若干条消息。举例:cpu1核与cpu2核各自需要发送5条消息给对方,这些消息会分别存放进cpu1核对应的消息发送队列1与cpu2核对应的消息发送队列2中,再经过分组以及仲裁后放入对方的消息接收队列中。
步骤S204,对所述多个待发送消息进行排序,以得到排列顺序和排序后的多个待发送消息;
步骤S206,根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中,以使目标内核获取所述目标消息接收队列中的待发送消息,其中,所述目标消息接收队列为所述目标内核对应的消息接收队列。
通过上述步骤,由于每个内核将待发送消息发送至的每个内核对应的消息发送队列中,在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息,对多个待发送消息进行了排序,并根据排序结果将待发送消息发送至每个内核对应的消息接收队列中,以使每个内核根据排序结果获取对应的待发送消息,因此,可以解决SOC芯片中的多个CPU核之间的通信无法实现优先级传输问题,达到了通过优先级配置保证消息发送与接收的实时性,加快消息传递效率和速度的效果。
其中,上述步骤的执行主体可以为服务器、计算机终端等,但不限于此。
可选地,上述步骤S204中的对所述多个待发送消息进行排序,以得到排序后的多个待发送消息,可以通过以下方法实现:获取每个所述待发送消息中携带的待接收所述待发送消息的内核的标识信息;根据所述内核的标识信息对所述多个待发送消息进行分组,以得到多个分组,其中,每个分组中的待发送消息中携带的内核的标识信息一致;分别对所述多个分组中的待发送消息进行排序,以得到每个分组分别对应的排序后的多个待发送消息。
由于本申请实施例中的每个消息内核对应一个消息发送队列和一个消息接收队列,因此,需要将获取到的多个待发送消息进行分组,以将携带的内核的标识信息一致的待发送消息分为同一分组,进而将同一分组中的待发送消息发送至内核对应的消息接收队列中。
需要说明的是,由于待发送消息的优先级不同,即待发送消息的传输时限不同,因此,需要将每一分组中的待发送消息进行排序,进而根据排序结果将排序后的待发送消息发送至对应的内核对应的消息接收队列中,即将紧急的待发送消息先传输至内核对应的消息接收队列中,将不紧急的待发送消息稍后传输至内核对应的消息接收队列中。
通过上述实施例,通过优先级排序的方式进行待发送消息仲裁,因此,可以解决SOC芯片中的多个CPU核之间的通信无法实现优先级传输问题,达到了通过优先级配置保证消息发送与接收的实时性,加快消息传递效率和速度的效果。
进一步地,可以通过以下方式分别对所述多个分组中的待发送消息进行排序:确定所述多个分组对应的内核,以及确定每个内核的第一目标优先级;根据所述每个内核的第一目标优先级确定所述每个内核对应的分组的第二目标优先级;根据所述第二目标优先级依次对所述多个分组中的待发送消息进行排序。
由于本申请实施例中的待发送消息被分为多个分组,因此,在对每个分组中的待发送消息进行排序之前,需要确定以何种顺序对每个分组中的待发送消息进行排序。本申请实施例中,将每个分组对应的内核的第一目标优先级确定为每个分组的第二目标优先级,进而根据第二目标优先级的排序对每个分组中的待发送消息进行排序。
举例来讲,在分组1中的待发送消息需要发送至内核1,分组2中的待发送消息需要发送至内核2,分组3中的待发送消息需要发送至内核3,且内核1的优先级为第一优先级,内核2的优先级为第二优先级,内核3的优先级为第三优先级的情况下,确定分组1的优先级为第一优先级,分组2的优先级为第二优先级,分组3的优先级为第三优先级。
进一步地,为了提高程序的执行效率、降低响应时间、提高系统资源的利用率,从而改善系统性能和用户体验,本申请实施例中提出了一种循环调整内核优先级的方案,具体的:根据预设方式调整所述每个内核的第一目标优先级,其中,所述预设方式包括:在内核的个数为N,且所述第一目标优先级为第A优先级的情况下,将所述第一目标优先级调整为第A-1优先级;在所述内核的个数为N,且所述第一目标优先级为第一优先级的情况下,将所述第一目标优先级调整为第N优先级,其中,所述N为大于1的正整数,A为大于1且小于N的正整数,所述第一优先级为最高优先级,所述第N优先级为最低优先级。
举例来讲,在内核1的优先级为第一优先级,内核2的优先级为第二优先级,内核3的优先级为第三优先级的情况下,确定分组1的优先级为第一优先级,分组2的优先级为第二优先级,分组3的优先级为第三优先级,进而根据优先级顺序将每个分组中的待发送消息发送至对应的消息接收队列中。在根据优先级顺序将每个分组中的待发送消息发送至对应的消息接收队列中之后,对所有内核的优先级进行调整,将内核1的优先级设置为第3优先级,内核2的优先级为第一优先级,内核3的优先级为第二优先级,进而根据调整后的优先级设置分组的优先级。
进一步地,在确定所述每个内核对应的分组的第二目标优先级之后,还需要执行以下步骤:根据所述第二目标优先级依次获取所述每个分组中的每个待发送消息的第三目标优先级;根据所述第三目标优先级对所述每个分组中的待发送消息进行排序。
可选地,至少通过以下方式之一获取所述每个分组中的每个待发送消息的第三目标优先级:
方式1:获取所述每个分组中的每个待发送消息的消息内容,根据所述消息内容确定所述每个分组中的每个待发送消息的第三目标优先级;
方式2:获取所述每个分组中的每个待发送消息的消息类型,根据所述消息类型确定所述每个分组中的每个待发送消息的第三目标优先级;
方式3:获取所述每个分组中的每个待发送消息的消息发送方,根据所述消息发送方的优先级确定所述每个分组中的每个待发送消息的第三目标优先级。
也就是说,本申请实施例中的每个待发送消息的第三目标优先级是通过每个待发送消息的消息内容、消息类型、消息发送方的优先级中的一个或者多个确定每个待发送消息的第三目标优先级。
在通过每个待发送消息的消息内容、消息类型、消息发送方的优先级中的多个确定每个待发送消息的第三目标优先级时,从维度方向来看,提高了确定待发送消息的优先级的准确性。
可选地,在待发送消息的数量较大的情况下,很有可能存在待发送消息的优先级相同的情况下,因此,需要确定多个所述第三目标优先级中是否存在优先级一致的第三目标优先级;在所述多个所述第三目标优先级中存在优先级一致的第四目标优先级的情况下,确定所述第四目标优先级对应的待发送消息;确定获取所述第四目标优先级对应的待发送消息的时间戳;根据所述时间戳对所述第四目标优先级对应的待发送消息进行排序。
即对同一个目标内核的优先级消息队列中的待发送消息进行优先级排序时,将优先级高的数据优先放入目标内核对应的目标消息接收队列中。如果存在相同优先级的情况,则根据获取消息的先后顺序,依次放入目标内核对应的目标消息接收队列中。
在一个示例性实施例中,根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中之后,还包括:确定所述目标消息接收队列中的待发送消息的第五目标优先级;确定所述第五目标优先级与优先级阈值的第一大小关系,其中,所述优先级阈值为所述目标消息接收队列对应的目标内核预先设定的优先级阈值;根据所述第一大小关系确定是否触发所述目标内核执行中断服务程序。
进一步地,在所述第一大小关系指示所述第五目标优先级高于或者等于所述优先级阈值的情况下,触发所述目标内核执行中断服务程序;在所述第一大小关系指示所述第五目标优先级低于所述优先级阈值的情况下,禁止触发所述目标内核执行中断服务程序。
需要说明的是,本申请实施例可以配置优先级阈值,在配置优先级阈值的情况下,只有接收到大于或者等于优先级阈值的待发送消息时,会触发目标内核执行中断服务程序,进而避免消息延误,在仅接收到低于优先级阈值的待发送消息时,将不会触发目标内核执行中断服务程序,只能通过目标内核轮询状态寄存器获取相关信息。
举例来讲,在优先级阈值为第二优先级的情况下,在接收到第一优先级的待发送消息和第二优先级的待发送消息的情况下,会触发目标内核执行中断服务程序;在仅接收到第三优先、第四优先级的待发送消息的情况下,将不会触发目标内核执行中断服务程序。
在一个示例性实施例中,触发所述目标内核执行中断服务程序之后,还包括:接收所述目标内核发送的用于获取所述第五目标优先级对应的待发送消息的第一请求信息;响应所述第一请求信息,以将所述第五目标优先级对应的待发送消息发送至所述目标内核;禁止触发所述目标内核执行中断服务程序之后,所述方法还包括:接收所述目标内核发送的用于获取所述目标消息接收队列中的待发送消息的第二请求信息;响应所述第二请求信息,以根据所述目标消息接收队列中的待发送消息的优先级向所述目标内核发送目标待发送消息。
需要说明的是,在接收到大于或者等于优先级阈值(相当于上述第五目标优先级)的待发送消息时,响应目标内核发送的第一请求信息,以将大于或者等于优先级阈值对应的待发送消息发送至所述目标内核;在未接收到大于或者等于优先级阈值(相当于上述第五目标优先级)的待发送消息时,此时目标内核会轮询状态寄存器,即响应目标内核发送的第二请求信息,以将根据待发送消息的优先级依次将发送至所述目标内核。
在一个示例性实施例中,根据排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中之后,还包括:确定所述目标消息接收队列中的待发送消息的数量;确定所述数量与数量阈值的第二大小关系,其中,所述数量阈值为所述目标消息接收队列对应的目标内核预先设定的数量阈值;根据所述第二大小关系确定是否触发所述目标内核执行中断服务程序。
进一步地,在所述第二大小关系指示所述数量大于或者等于所述数量阈值的情况下,触发所述目标内核执行中断服务程序;在所述第二大小关系指示所述数量小于所述数量阈值的情况下,禁止触发所述目标内核执行中断服务程序。
需要说明的是,本申请实施例可以配置数量阈值,在配置数量阈值的情况下,消息接收队列中的待发送消息的数量大于或者等于数量阈值时,会触发目标内核执行中断服务程序,进而避免消息延误,在消息接收队列中的待发送消息低于数量阈值时,将不会触发目标内核执行中断服务程序,只能通过目标内核轮询状态寄存器获取相关信息。
举例来讲,如果设置目标内核的数量阈值为10,在消息接收队列中的待发送消息的数量大于或者等于10时会触发中断。在消息接收队列中的待发送消息的数量小于10时会触发中断,目标内存通过读取目标内存的接收消息队列的状态寄存器获取待发送消息。
通过本申请实施例,对消息接收队列设置数量阈值,可以防止队列溢出,然而队列溢出可能导致消息丢失或系统崩溃,通过设置数量阈值可以避免这种情况的发生;可以控制消息处理速度,进而避免消息处理过快,导致系统负载过高或资源不足的问题;可以平衡系统负载,进而可以提高系统的稳定性和可扩展性;可以提高系统响应速度,设置数量阈值可以帮助提高系统的响应速度。当消息数量超过阈值时,可以立即暂停消息的处理,以处理更为重要或紧急的消息,进而可以确保系统能够及时响应重要的业务需求。
在一个示例性实施例中,触发所述目标内核执行中断服务程序或者禁止触发所述目标内核执行中断服务程序之后,还包括:接收所述目标内核发送的用于获取所述目标消息接收队列中的待发送消息的第三请求信息;响应所述第三请求信息,以根据所述目标消息接收队列中的待发送消息的优先级向所述目标内核发送目标待发送消息。
由于本申请实施例中的目标消息队列中存储有一个或多个待发送消息,因此,在接收到第三请求信息的情况下,根据待发送消息的优先级依次向目标内核发送目标待发送消息。
需要说明的是,本申请实施例中可以配置通信接口数量、消息发送队列中的消息数量和单条消息大小,具体的:接收目标对象发送的配置信息,其中,所述配置信息包括:通信接口数量、消息发送队列中的消息数量和消息大小;根据所述配置信息对通信接口数量、消息发送队列中的消息数量和消息大小进行配置。
举例来讲,在配置通信接口数量时,可以根据应用场景,支持16个、18个、20个等通信接口,如图4的流程图中所示,图4中设定内核的数量最多为16个。
在配置消息发送队列中的消息数量时,由于系统中每个通信通信接口拥有一个消息发送队列和一个消息接收队列(也可以理解为每个内核对应一个消息发送队列和一个消息接收队列),支持对队列中的消息数量单独配置,数量范围为16至256。
在配置单条消息大小时,消息大小支持选择16、32以及64byte。
显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。为了更好的理解上述球机的变倍跟踪方法,以下结合实施例对上述过程进行说明,但不用于限定本发明实施例的技术方案,具体地:
在一个可选的实施例中,图3是本发明实施例的消息的发送方法的系统整体架构图,具体包括如下:
用于发送消息的多核系统、与用于发送消息的多核模块连接的消息处理模块,与消息处理模块连接的用于接收消息的多核系统;
其中,消息处理模块中主要用于接收消息、仲裁、以及消息分组等功能。
在另外一个示例性实施例中,图4是本发明实施例的消息的发送方法的系统流程图,如图4所示,具体包括如下:
步骤1:多核系统的CORE(相当于上述实施例中的内核)通过Cpu_Group_Interfac接口,将消息(相当于上述实施例中的待发送消息)发送至对应的消息发送队列中;
需要说明的是,在多核系统中,Cpu_Group_Interface是多个cpu发送或接收数据的接口。
举例说明,4个cpu 均使用AXI接口发送或接收消息,那么 Cpu_Group_Interface即为AXI。也存在多个核使用一个接口,或者每个核单独使用独立接口的情况,这里统一用Cpu_Group_Interface表示。
需要说明的是,消息发送队列主要用于存放各个CORE发出的消息,每个核的发送与接收各对应一个消息发送队列和消息接收队列。每个队列可以存放若干条消息。举例:cpu1与cpu2需要发送5条消息给对方,这些消息会分别存放进消息发送队列1与消息发送队列2中,再经过分组以及仲裁后放入对方的消息接收队列。
步骤2:消息发送队列将消息发送至消息分组模块中,以使消息分组模块对消息进行分组;
需要说明的是,由于每个CORE在发送消息时都会有个目标CORE。消息分组模块根据目标CORE的目标地址将消息进行分组。
步骤3:优先级仲裁模块,对消息进行优先级排序;
将目标CORE中接收到的消息根据优先级高低进行排序,本申请实施例中的排序方式包括固定优先级以及循环优先级,以及支持最多4级优先级。
步骤4:将排序后的消息发送至目标CORE对应的消息接收队列中;
步骤5:目标CORE在对应的消息接收队列获取消息。
在另外一个示例性实施例中,图5是本发明实施例的消息的发送方法的工作流程图,如图5所示,具体包括如下步骤:
步骤S501:配置通信接口数量;
根据应用场景,如图4所示,本装置最多支持16个通信接口,即图4中CORE的数量最多为16。
步骤S502:配置消息发送队列中的消息数量;
需要说明的是,系统中每个通信通信接口拥有一个消息发送队列以及一个消息接收队列,装置支持对队列中的消息数量单独配置,数量范围可以为16至256。
步骤S503:配置单条消息大小;
本申请实施例中的消息大小支持选择16、32以及64byte。
步骤S504:各个CORE将消息通过cpu_group_interface写入对应的消息发送队列;
步骤S505:消息分组模块从各个不为空的消息发送队列中各取出一条消息,并根据目标CORE的ID 将接收的消息进行分组,转化成每个CORE的优先级消息队列;
步骤S506:消息仲裁;
在消息仲裁模块中,本申请实施例提供了两种优先级仲裁方式,分别为固定优先级以及循环优先级,具体的:
固定优先级仲裁:对同一个目标CORE的优先级消息队列进行固定优先级仲裁,将优先级高的数据优先放入接收队列中。如果存在相同优先级的情况,则根据取消息的先后顺序,进行排序。
循环优先级仲裁:当一个优先级队列得到了仲裁许可之后,它的优先级在接下来的仲裁中就变成了最低,也就是说每个优先级队列的优先级不是固定的,而是会在最高(获得了仲裁)之后变为最低,并且根据其他优先级队列的许可情况进行相应的调整。这样当有多个优先级队列的时候,仲裁器可以依次给每个优先级队列,即使之前高优先级的优先级队列再次有新的仲裁请求,也会等前面的优先级队列都仲裁之后再轮到它。
步骤S507:消息重排序;
在经过消息仲裁后,每一个优先级队列中的消息都根据优先级进行了重新排序。
步骤S508:配置中断阈值;
本申请实施例中的中断阈值可以配置优先级阈值以及数量阈值。
在配置优先级阈值后,只有出现大于优先级阈值的消息时,会触发响应中断,避免消息延误,低于优先级阈值的消息,将不会触发中断,只能通过轮询状态寄存器获取相关信息。
举例:如果设置cpu0 的中断阈值为1,只有优先级大于1的消息才会触发中断。较低优先级的信息,只能通过读取cpu0的接收消息队列的状态寄存器才能获取。
在配置数量阈值后,当接收消息队列中的消息数量大于配置的数量阈值将会触发中断信号。
步骤S509:接收消息。
目标cpu通过轮询或者中断信号获取到需要进行读操作。发起一次读操作,装置依次接收消息队列中的消息根据优先级由高到低发出。
本申请实施例中提供了基于优先级排序的核间实时消息传递机制;通信端口数量以及消息数量的可配置,增加了装置的通用性;支持中断的不同触发方式,减少了软件轮询的时间,加速了消息的传递。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种消息的发送装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的消息的发送装置的结构框图,如图6所示,该装置包括:
获取模块62,用于在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息;
排序模块64,用于对所述多个待发送消息进行排序,以得到排列顺序和排序后的多个待发送消息;
发送模块66,用于根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中,以使目标内核获取所述目标消息接收队列中的待发送消息,其中,所述目标消息接收队列为所述目标内核对应的消息接收队列。
通过上述装置,由于每个内核将待发送消息发送至的每个内核对应的消息发送队列中,在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息,对多个待发送消息进行了排序,并根据排序结果将待发送消息发送至每个内核对应的消息接收队列中,以使每个内核根据排序结果获取对应的待发送消息,因此,可以解决SOC芯片中的多个CPU核之间的通信无法实现优先级传输问题,达到了通过优先级配置保证消息发送与接收的实时性,加快消息传递效率和速度的效果。
在一个示例性实施例中,排序模块64,用于获取每个所述待发送消息中携带的待接收所述待发送消息的内核的标识信息;根据所述内核的标识信息对所述多个待发送消息进行分组,以得到多个分组,其中,每个分组中的待发送消息中携带的内核的标识信息一致;分别对所述多个分组中的待发送消息进行排序,以得到每个分组分别对应的排序后的多个待发送消息。
在一个示例性实施例中,排序模块64,用于确定所述多个分组对应的内核,以及确定每个内核的第一目标优先级;根据所述每个内核的第一目标优先级确定所述每个内核对应的分组的第二目标优先级;根据所述第二目标优先级依次对所述多个分组中的待发送消息进行排序。
在一个示例性实施例中,排序模块64,用于根据预设方式调整所述每个内核的第一目标优先级,其中,所述预设方式包括:在内核的个数为N,且所述第一目标优先级为第A优先级的情况下,将所述第一目标优先级调整为第A-1优先级;在所述内核的个数为N,且所述第一目标优先级为第一优先级的情况下,将所述第一目标优先级调整为第N优先级,其中,所述N为大于1的正整数,A为大于1且小于N的正整数,所述第一优先级为最高优先级,所述第N优先级为最低优先级。
在一个示例性实施例中,排序模块64,用于根据所述第二目标优先级依次获取所述每个分组中的每个待发送消息的第三目标优先级;根据所述第三目标优先级对所述每个分组中的待发送消息进行排序。
在一个示例性实施例中,排序模块64,还至少用于以下之一:获取所述每个分组中的每个待发送消息的消息内容,根据所述消息内容确定所述每个分组中的每个待发送消息的第三目标优先级;获取所述每个分组中的每个待发送消息的消息类型,根据所述消息类型确定所述每个分组中的每个待发送消息的第三目标优先级;获取所述每个分组中的每个待发送消息的消息发送方,根据所述消息发送方的优先级确定所述每个分组中的每个待发送消息的第三目标优先级。
在一个示例性实施例中,排序模块64,用于确定多个所述第三目标优先级中是否存在优先级一致的第三目标优先级;在所述多个所述第三目标优先级中存在优先级一致的第四目标优先级的情况下,确定所述第四目标优先级对应的待发送消息;确定获取所述第四目标优先级对应的待发送消息的时间戳;根据所述时间戳对所述第四目标优先级对应的待发送消息进行排序。
在一个示例性实施例中,上述装置还包括:触发模块,用于确定所述目标消息接收队列中的待发送消息的第五目标优先级;确定所述第五目标优先级与优先级阈值的第一大小关系,其中,所述优先级阈值为所述目标消息接收队列对应的目标内核预先设定的优先级阈值;根据所述第一大小关系确定是否触发所述目标内核执行中断服务程序。
在一个示例性实施例中,触发模块,用于在所述第一大小关系指示所述第五目标优先级高于或者等于所述优先级阈值的情况下,触发所述目标内核执行中断服务程序;在所述第一大小关系指示所述第五目标优先级低于所述优先级阈值的情况下,禁止触发所述目标内核执行中断服务程序。
在一个示例性实施例中,发送模块66,用于接收所述目标内核发送的用于获取所述第五目标优先级对应的待发送消息的第一请求信息;响应所述第一请求信息,以将所述第五目标优先级对应的待发送消息发送至所述目标内核;发送模块66,用于接收所述目标内核发送的用于获取所述目标消息接收队列中的待发送消息的第二请求信息;响应所述第二请求信息,以根据所述目标消息接收队列中的待发送消息的优先级向所述目标内核发送目标待发送消息。
在一个示例性实施例中,触发模块,还用于确定所述目标消息接收队列中的待发送消息的数量;确定所述数量与数量阈值的第二大小关系,其中,所述数量阈值为所述目标消息接收队列对应的目标内核预先设定的数量阈值;根据所述第二大小关系确定是否触发所述目标内核执行中断服务程序。
在一个示例性实施例中,触发模块,还用于在所述第二大小关系指示所述数量大于或者等于所述数量阈值的情况下,触发所述目标内核执行中断服务程序;在所述第二大小关系指示所述数量小于所述数量阈值的情况下,禁止触发所述目标内核执行中断服务程序。
在一个示例性实施例中,发送模块66,用于接收所述目标内核发送的用于获取所述目标消息接收队列中的待发送消息的第三请求信息;响应所述第三请求信息,以根据所述目标消息接收队列中的待发送消息的优先级向所述目标内核发送目标待发送消息。
在一个示例性实施例中,上述装置还包括:配置模块,用于接收目标对象发送的配置信息,其中,所述配置信息包括:通信接口数量、消息发送队列中的消息数量和消息大小;根据所述配置信息对通信接口数量、消息发送队列中的消息数量和消息大小进行配置。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种消息的发送方法,其特征在于,
包括:
在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息;
对所述多个待发送消息进行排序,以得到排列顺序和排序后的多个待发送消息;
根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中,以使目标内核获取所述目标消息接收队列中的待发送消息,其中,所述目标消息接收队列为所述目标内核对应的消息接收队列。
2.根据权利要求1所述的方法,其特征在于,
对所述多个待发送消息进行排序,以得到排序后的多个待发送消息,包括:
获取每个所述待发送消息中携带的待接收所述待发送消息的内核的标识信息;
根据所述内核的标识信息对所述多个待发送消息进行分组,以得到多个分组,其中,每个分组中的待发送消息中携带的内核的标识信息一致;
分别对所述多个分组中的待发送消息进行排序,以得到每个分组分别对应的排序后的多个待发送消息。
3.根据权利要求2所述的方法,其特征在于,
分别对所述多个分组中的待发送消息进行排序,包括:
确定所述多个分组对应的内核,以及确定每个内核的第一目标优先级;
根据所述每个内核的第一目标优先级确定所述每个内核对应的分组的第二目标优先级;
根据所述第二目标优先级依次对所述多个分组中的待发送消息进行排序。
4.根据权利要求3所述的方法,其特征在于,
根据所述第二目标优先级依次对所述多个分组中的待发送消息进行排序之后,所述方法还包括:
根据预设方式调整所述每个内核的第一目标优先级,其中,所述预设方式包括:在内核的个数为N,且所述第一目标优先级为第A优先级的情况下,将所述第一目标优先级调整为第A-1优先级;在所述内核的个数为N,且所述第一目标优先级为第一优先级的情况下,将所述第一目标优先级调整为第N优先级,其中,所述N为大于1的正整数,A为大于1且小于N的正整数,所述第一优先级为最高优先级,所述第N优先级为最低优先级。
5.根据权利要求3所述的方法,其特征在于,
根据所述第二目标优先级依次对所述多个分组中的待发送消息进行排序,包括:
根据所述第二目标优先级依次获取所述每个分组中的每个待发送消息的第三目标优先级;
根据所述第三目标优先级对所述每个分组中的待发送消息进行排序。
6.根据权利要求5所述的方法,其特征在于,
获取所述每个分组中的每个待发送消息的第三目标优先级,至少包括以下之一:
获取所述每个分组中的每个待发送消息的消息内容,根据所述消息内容确定所述每个分组中的每个待发送消息的第三目标优先级;
获取所述每个分组中的每个待发送消息的消息类型,根据所述消息类型确定所述每个分组中的每个待发送消息的第三目标优先级;
获取所述每个分组中的每个待发送消息的消息发送方,根据所述消息发送方的优先级确定所述每个分组中的每个待发送消息的第三目标优先级。
7.根据权利要求5所述的方法,其特征在于,
根据所述第三目标优先级对所述每个分组中的待发送消息进行排序,包括:
确定多个所述第三目标优先级中是否存在优先级一致的第三目标优先级;
在所述多个所述第三目标优先级中存在优先级一致的第四目标优先级的情况下,确定所述第四目标优先级对应的待发送消息;
确定获取所述第四目标优先级对应的待发送消息的时间戳;
根据所述时间戳对所述第四目标优先级对应的待发送消息进行排序。
8.根据权利要求1所述的方法,其特征在于,
根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中之后,所述方法还包括:
确定所述目标消息接收队列中的待发送消息的第五目标优先级;
确定所述第五目标优先级与优先级阈值的第一大小关系,其中,所述优先级阈值为所述目标消息接收队列对应的目标内核预先设定的优先级阈值;
根据所述第一大小关系确定是否触发所述目标内核执行中断服务程序。
9.根据权利要求8所述的方法,其特征在于,
根据所述第一大小关系确定是否触发所述目标内核执行中断服务程序,包括:
在所述第一大小关系指示所述第五目标优先级高于或者等于所述优先级阈值的情况下,触发所述目标内核执行中断服务程序;
在所述第一大小关系指示所述第五目标优先级低于所述优先级阈值的情况下,禁止触发所述目标内核执行中断服务程序。
10.根据权利要求9所述的方法,其特征在于,
触发所述目标内核执行中断服务程序之后,所述方法还包括:
接收所述目标内核发送的用于获取所述第五目标优先级对应的待发送消息的第一请求信息;响应所述第一请求信息,以将所述第五目标优先级对应的待发送消息发送至所述目标内核;
禁止触发所述目标内核执行中断服务程序之后,所述方法还包括:
接收所述目标内核发送的用于获取所述目标消息接收队列中的待发送消息的第二请求信息;响应所述第二请求信息,以根据所述目标消息接收队列中的待发送消息的优先级向所述目标内核发送目标待发送消息。
11.根据权利要求1所述的方法,其特征在于,
根据排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中之后,所述方法还包括:
确定所述目标消息接收队列中的待发送消息的数量;
确定所述数量与数量阈值的第二大小关系,其中,所述数量阈值为所述目标消息接收队列对应的目标内核预先设定的数量阈值;
根据所述第二大小关系确定是否触发所述目标内核执行中断服务程序。
12.根据权利要求11所述的方法,其特征在于,
根据所述第二大小关系确定是否触发所述目标内核执行中断服务程序,包括:
在所述第二大小关系指示所述数量大于或者等于所述数量阈值的情况下,触发所述目标内核执行中断服务程序;
在所述第二大小关系指示所述数量小于所述数量阈值的情况下,禁止触发所述目标内核执行中断服务程序。
13.根据权利要求12所述的方法,其特征在于,
触发所述目标内核执行中断服务程序或者禁止触发所述目标内核执行中断服务程序之后,所述方法还包括:
接收所述目标内核发送的用于获取所述目标消息接收队列中的待发送消息的第三请求信息;响应所述第三请求信息,以根据所述目标消息接收队列中的待发送消息的优先级向所述目标内核发送目标待发送消息。
14.根据权利要求1所述的方法,其特征在于,
在每个内核对应的消息发送队列中获取预设数量的待发送消息之前,所述方法还包括:
接收目标对象发送的配置信息,其中,所述配置信息包括:通信接口数量、消息发送队列中的消息数量和消息大小;
根据所述配置信息对通信接口数量、消息发送队列中的消息数量和消息大小进行配置。
15.一种消息的发送装置,其特征在于,
包括:
获取模块,用于在每个内核对应的消息发送队列中获取待发送消息,以获取多个待发送消息;
排序模块,用于对所述多个待发送消息进行排序,以得到排列顺序和排序后的多个待发送消息;
发送模块,用于根据所述排列顺序将排序后的多个待发送消息发送至对应的目标消息接收队列中,以使目标内核获取所述目标消息接收队列中的待发送消息,其中,所述目标消息接收队列为所述目标内核对应的消息接收队列。
16.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至14任一项中所述的方法的步骤。
17.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现所述权利要求1至14任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311420872.9A CN117389766A (zh) | 2023-10-30 | 2023-10-30 | 消息的发送方法及装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311420872.9A CN117389766A (zh) | 2023-10-30 | 2023-10-30 | 消息的发送方法及装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117389766A true CN117389766A (zh) | 2024-01-12 |
Family
ID=89440543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311420872.9A Pending CN117389766A (zh) | 2023-10-30 | 2023-10-30 | 消息的发送方法及装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117389766A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012798A (zh) * | 2024-04-07 | 2024-05-10 | 摩尔线程智能科技(北京)有限责任公司 | 芯片间互联控制方法、装置和存储介质 |
-
2023
- 2023-10-30 CN CN202311420872.9A patent/CN117389766A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012798A (zh) * | 2024-04-07 | 2024-05-10 | 摩尔线程智能科技(北京)有限责任公司 | 芯片间互联控制方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8051212B2 (en) | Network interface adapter with shared data send resources | |
CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
CN113711173A (zh) | 促进网络接口控制器(nic)中的数据请求管理的系统和方法 | |
CN107124286B (zh) | 一种海量数据高速处理、交互的系统及方法 | |
CN111163018B (zh) | 网络设备及其降低传输时延的方法 | |
WO2022068697A1 (zh) | 任务调度方法及装置 | |
US10397144B2 (en) | Receive buffer architecture method and apparatus | |
US20100268852A1 (en) | Replenishing Data Descriptors in a DMA Injection FIFO Buffer | |
CN109408243B (zh) | 一种基于rdma的数据处理方法、装置和介质 | |
CN117389766A (zh) | 消息的发送方法及装置、存储介质及电子装置 | |
WO2022227693A1 (zh) | 用于命令分发的装置、方法、芯片、计算机设备及介质 | |
CN111190854A (zh) | 通信数据处理方法、装置、设备、系统和存储介质 | |
US20140281099A1 (en) | METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS | |
CN113138801B (zh) | 命令分发装置、方法、芯片、计算机设备及存储介质 | |
CN116868553A (zh) | 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度 | |
CN112181887B (zh) | 数据传输方法及装置 | |
CN116414534A (zh) | 任务调度方法、装置、集成电路、网络设备及存储介质 | |
US9128771B1 (en) | System, method, and computer program product to distribute workload | |
CN117834556A (zh) | 多队列组织和调度方法、系统、存储介质及电子设备 | |
CN113407357B (zh) | 进程间数据搬移的方法及装置 | |
CN110868364B (zh) | 一种带宽隔离装置及方法 | |
CN114125936A (zh) | 一种资源调度方法、装置和存储介质 | |
CN112114971A (zh) | 一种任务分配方法、装置及设备 | |
US20240231888A9 (en) | Method for improving processor utilization in an event-driven cooperatively scheduled environment | |
CN105991475B (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 |