CN113110950A - 处理器及通信方法、存储介质及计算设备 - Google Patents
处理器及通信方法、存储介质及计算设备 Download PDFInfo
- Publication number
- CN113110950A CN113110950A CN202110538472.2A CN202110538472A CN113110950A CN 113110950 A CN113110950 A CN 113110950A CN 202110538472 A CN202110538472 A CN 202110538472A CN 113110950 A CN113110950 A CN 113110950A
- Authority
- CN
- China
- Prior art keywords
- processor core
- message
- mailbox
- processor
- communication
- 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.)
- Granted
Links
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
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- 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/544—Buffers; Shared memory; Pipes
-
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/544—Remote
-
- 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/547—Messaging middleware
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
本申请公开一种处理器及通信方法、存储介质及计算设备,处理器包含多个处理器核,每个处理器核上均配置有mailbox驱动,方法包括:源处理器核调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针;源处理器核调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据。本申请解决现有技术中处理器核之间传输数据过程繁琐的技术问题。
Description
技术领域
本申请涉及处理器技术领域,具体而言,涉及一种处理器及通信方法、存储介质及计算设备。
背景技术
目前,普通芯片核间通信需要使用中断进行消息通知,再配合共享内存机制传递数据信息,这种方式比较繁琐,针对即时消息的传递不能很好的支持,这种方法有较大的缺陷和不足:
①驱动代码复杂、维护难度大
原来通信方式首先需要适配中断控制器,再使用每个核私有的中断控制器的功能触发消息,之后在进行内存相关申请与使用。两大驱动功能组件互相结合使用,增加了驱动代码的维护难度,对于不同的板卡需要重新进行共享内存相关代码的修改,导致增加了许多不同版本驱动代码的数量,驱动程序版本不宜维护。
②应用代码复杂、维护难度大
应用层调用底层驱动时需要分别调用两个模块的驱动,针对不同驱动的规则封装不同的函数,针对贡献内存封装的要求填写消息。这样的处理机制在增加了驱动代码的复杂度的同时,则增加了应用代码的复杂度,应用代码维护更困难。
③多并发使用风险性高
共享内存无互斥机制,在多并发环境中无法保证数据可以正确的被读取,容易造成数据错乱导致程序的错误。
针对上述现有技术中处理器核之间传输数据过程繁琐的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种处理器及通信方法、存储介质及计算设备,以至少解决现有技术中处理器核之间传输数据过程繁琐的技术问题。
根据本申请实施例的一个方面,提供了一种处理器通信方法,处理器包含多个处理器核,每个处理器核上均配置有mailbox驱动,方法包括:源处理器核调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针;源处理器核调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据。
根据本申请实施例的另一个方面,提供了一种处理器,处理器包含多个处理器核,用于发送消息的源处理器核与用于接收消息的目的处理器核均为所述多个处理器核中的任一个,每个处理器核上均配置有mailbox驱动,其中,源处理器核被配置为:调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针,调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核被配置为:处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据。
在上述任一实施例的基础上,在源处理器核调用mailbox驱动中的接口函数封装待发送消息之前,方法还包括:源处理器核和目标处理器核分别初始化各自配置的mailbox驱动。
在上述任一实施例的基础上,mailbox驱动包括源处理器核控制和状态寄存器,目的处理器核控制和状态寄存器,通信管道以及中断发生器。
在上述任一实施例的基础上,在将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器之前,方法还包括:源处理器核确定待发送消息的数据量大小,从预先生成的多个通信管道中确定与数据量大小对应的通信管道;或者源处理器核确定待发送消息的数据量大小,触发mailbox生成与数据量大小对应的通信管道。
在上述任一实施例的基础上,在将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器之前,方法还包括:确定处理器中包含的所有处理器核,针对每两个处理器核均配置一通信管道,并为每一通信管道配置一组寄存器。
在上述任一实施例的基础上,为每一通信管道配置一组寄存器包括:确定每两个处理器核之间通过通信管道发送的多个历史消息数据的数据量大小;针对数据量大小为通信管道分配一组寄存器,其中一组寄存器的大小足以存储预设比例的历史消息数据。
在上述任一实施例的基础上,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器包括:源处理器从预先配置的通信管道中确定针对源处理器核和目的处理器核配置的第一通信管道;源处理器调用第一通信管道,以将封装完毕的消息数据写入第一通信管道对应的一组寄存器中。
根据本申请实施例的另一个方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任一实施例的方法。
根据本申请实施例的另一个方面,提供了一种计算设备,包括处理器,处理器用于运行程序,其中,程序运行时执行上述任一实施例的方法。
在本申请实施例中,通过源处理器核调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针;源处理器核调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据,既能够达到给其他核发消息的功能,又能传递数据信息,使用起来比较方便,不用增加其他手段即可完成完整的通信,解决了现有技术中处理器核之间传输数据过程繁琐的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现处理器通信方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种处理器通信方法的流程图;
图3是根据本申请实施例的一种处理器芯片的结构示意图;
图4是根据本申请实施例的另一种处理器通信方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,还提供了一种处理器通信方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现处理器通信方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据融合电路在本文中通常可以被称为“数据融合电路”。该数据融合电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据融合电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据融合电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的产品激活确定方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据融合,即实现上述的处理器通信方法方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处,需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
本申请在上述运行环境下运行如图2所示的一种处理器通信方法。处理器包含多个处理器核,每个处理器核上均配置有mailbox驱动。
图2是根据本申请实施例的一种处理器通信方法的流程图,如图2所示,处理器通信方法可以包括:
步骤S202:源处理器核调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针;
在上述步骤S202中,源处理器核为多个处理器核中的任一个,源处理器核上配置有mailbox驱动,mailbox是两个处理器核心之间的一种可选通信方式,源处理器核在初始化其上配置的mailbox驱动后即可启用该通信方式进行数据传输,mailbox包括相关的多个寄存器,通信管道,中断发生器等控制单元。通过mailbox驱动通过驱动封装相关函数,应用只需要注意参数传递即可。Mailbox驱动中封装的函数包括但不限于中断使能函数、消息传递函数等。本申请在多核处理器通信时,主要传递目的处理器的核号与具体指向数据存储地址的消息指针,代码简单,操作容易。其中,源处理器核有一组寄存器,包括FIFO寄存器、消息完成寄存器、中断使能寄存器。指定寄存器例如前述的FIFO寄存器,用于存放通信数据。消息指针指向指定寄存器的地址。
步骤S204:源处理器核调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;
在上述步骤S204中,目的处理器核为多个处理器核中的任一个,目的处理器核上配置有mailbox驱动,目的处理器核在初始化其上配置的mailbox驱动后即可启用该通信方式进行数据传输。当源处理器核将数据写入通信管道时,数据被存储,当最后一个数据写入完整的指定寄存器时,会自动生成一个可用的中断消息,传递到目的处理器核。
步骤S206:目的处理器核处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据。
在上述步骤S206中,目的处理器核可以对中断消息进行处理,使用中断消息中传递的参数如消息指针来从指定寄存器中读取待发送消息。
在本申请实施例中,通过源处理器核调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针;源处理器核调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据,既能够达到给其他核发消息的功能,又能传递数据信息,使用起来比较方便,不用增加其他手段即可完成完整的通信,解决了现有技术中处理器核之间传输数据过程繁琐的技术问题。
本申请的有益效果如下:
①应用代码简洁,接口简单。通过驱动封装相关函数,应用只需要注意参数传递即可。主要传递通信核号与具体消息指针,代码简单,操作容易。
②驱动更简洁。仅需要处理mailbox的初始化即可实现核间通信,无需通过两个互不兼容的组件来实现,代码量少,代码结构简单。
③通信效率更高。Mailbox触发时即可获取通信数据,无需单独的共享内存流程进行数据读取,使通信效率更高。
根据本申请实施例的另一个方面,提供了一种处理器,处理器包含多个处理器核,用于发送消息的源处理器核与用于接收消息的目的处理器核均为所述多个处理器核中的任一个,每个处理器核上均配置有mailbox驱动,其中,源处理器核被配置为:调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针,调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核被配置为:处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据。
可选地,在源处理器核调用mailbox驱动中的接口函数封装待发送消息之前,方法还包括:源处理器核和目标处理器核分别初始化各自配置的mailbox驱动。
可选地,mailbox驱动包括源处理器核控制和状态寄存器,目的处理器核控制和状态寄存器,通信管道以及中断发生器。具体的,每个处理器核都有一组相同的寄存器配置,包括FIFO寄存器、消息完成寄存器、中断使能寄存器。其中,FIFO只用于存放通信数据;中断寄存器,用于使能中断;消息完成寄存器,用于消息填充完成信号;其他寄存器用于复位、清除数据等操作。
可选地,在步骤S202:将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器之前,方法还包括:
步骤S201a:源处理器核确定待发送消息的数据量大小,从预先生成的多个通信管道中确定与数据量大小对应的通信管道;或者
步骤S201b:源处理器核确定待发送消息的数据量大小,触发mailbox生成与数据量大小对应的通信管道。
在上述步骤S201a中,处理器中的其他处理单元预先生成多个通信管道,其中预先生成的方式可以有多种,例如预先生成多个同等大小的通信管道、预先生成多个不同大小、且大小均匀分布的通信管道且通信管道、尽可能生成适合发送的消息的数据量大小的多个通信管道等等。
在上述步骤S201b中,通信管道并非预先生成,而是在即将发送数据时才生成,可以最大限度的减少通信管道所造成的资源消耗,且通过使通信管道与待发送消息的数据量大小适配,充分利用了即将分配的通信管道资源,这种配置方式虽不如步骤S201a所示方式那般快速便捷,但在处理器资源紧缺时发挥的作用将尤为显著。
可选地,步骤S201a中,预先生成多个通信管道包括:
步骤S201a1:获取源处理器核预设时间段内的多个历史发送消息,确定每个历史发送消息的数据量大小;
步骤S201a3:根据多个历史发送消息的数据量大小生成多个数据区间;
在上述步骤S201a3中,由于处理器核之间传送消息的数据量大小会不断变化,因而收集多个历史发送消息的数据量大小后,将构成一个较宽的数据区间,可以将这一较宽的数据区间粗略划分为第一数量的数据区间,根据数据落入最两端的数据区间的概率,确定最两端的数据区间是保留还是舍弃,如舍弃概率小于第一阈值的最两端区间,保留概率大于第一阈值的最两端区间。举例来说,整体数据区间为1-30,最两端数据区间为1-5,26-30,数据落入1-5区间的概率为1%,数据落入26-30区间的概率为30%,因此舍弃概率小于一定阈值的1-5区间,保留26-30区间。随后,确定数据落入每一中间数据区间的概率,若概率小于第二阈值则将该中间数据区间与相邻的中间数据区间进行合并,若概率大于第二阈值则不进行合并操作。在进行合并时,若当前数据区间两侧均有数据区间,则将其合并至概率较大的数据区间或者值较大的数据区间。例如数据落入区间11-15概率为15%,数据落入区间16-20的概率为8%,数据落入区间21-25概率为20%,其中区间16-20的概率小于第二阈值,则将区间16-20与区间21-25合并,得到区间16-25,概率为28%。如此可以减少区间数量,提高区间对应的通信管道的利用率。
步骤S201a5:确定落入各个数据区间的历史发送消息个数在所有历史发送消息个数中的占比;
在上述步骤S201a5中,如区间6-10概率27%,区间11-15概率15%,区间16-25概率28%,区间26-30概率30%,则可根据概率确定各个数据区间的消息的占比。
步骤S201a7:根据该占比配置每一数据区间对应的通信管道数量在预设数量的通信管道中的占比。
通过上述方式,通过预先生成多个通信管道,可以提高源处理器并行发送消息的效率,而使区间对应的通信管道数量与该区间的消息数量相对应,可以进一步减少通信管道所占资源,并使其占用的资源实现最大化。
可选地,在将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器之前,方法还包括:确定处理器中包含的所有处理器核,针对每两个处理器核均配置一通信管道,并为每一通信管道配置一组寄存器。
通过上述方式,在一种可选方式中,mailbox的通信管道不受限于处理器核,即任意处理器核都可以在不同时间使用同一通信管道,这种方式可以提高资源复用率。在另一种可选方式中,mailbox的通信管道与源处理器核和目的处理器核相对应,即任意两个处理器核之间都配置一通信管道,这种方式可以提高处理器间数据传输的安全性和稳定性,由于只有对应的处理器核可以使用该通信管道,避免了中断信号丢失或处理器核标识丢失而造成的数据传输错误。同时,每一通信管道都配置各自独立的寄存器组,每一通信管道都只能将数据写入自己对应的寄存器组中,这样即便中断信号丢失或处理器核标识,只要目的处理器核执行定期查询操作,当查询到与自身关联的寄存器组中存入数据时,就可自动读取对应寄存器组中的数据。
可选地,为每一通信管道配置一组寄存器包括:确定每两个处理器核之间通过通信管道发送的多个历史消息数据的数据量大小;针对数据量大小为通信管道分配一组寄存器,其中一组寄存器的大小足以存储预设比例的历史消息数据。
可选地,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器包括:源处理器从预先配置的通信管道中确定针对源处理器核和目的处理器核配置的第一通信管道;源处理器调用第一通信管道,以将封装完毕的消息数据写入第一通信管道对应的一组寄存器中。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的处理器通信方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
实施例2
根据本申请实施例,还提供了一种用于实施上述处理器通信方法的处理器。处理器包含多个处理器核,用于发送消息的源处理器核与用于接收消息的目的处理器核均为前述多个处理器核中的任一个,每个处理器核上均配置有mailbox驱动,其中,源处理器核被配置为:调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针,调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核被配置为:处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据。
图3是根据本申请实施例的一种处理器芯片的结构示意图,如图3所示,CPU0单独运行一套SylixOS,CPU1单独运行一套SylixOS,每个核上面都具备MAILBOX驱动,MAILBOS即此次通信方法。两个核上面的应用通过MAILBOX驱动封装的接口函数进行消息的传递。MAILBOX由源处理器端控制和状态寄存器、目的端控制和状态寄存器、通信管道、中断发生器组成。
图4是根据本申请实施例的另一种处理器通信方法的流程图。如图4所示,当源处理器将数据写入通信管道时,数据被存储,当最后一个数据写入完整的寄存器(例如FIFO寄存器)时,会自动生成一个可用的中断消息,传递到目标主机,目标主机可以使用此信息来读取消息。
一切流程由MAILBOX控制,MAILBOX分别初始化使能中断寄存器,填写消息寄存器,填写目的处理器编号。一切流程简单方便,易于维护。
可选地,源处理器核和目标处理器核还被配置为:分别初始化各自配置的mailbox驱动。
可选地,mailbox驱动包括源处理器核控制和状态寄存器,目的处理器核控制和状态寄存器,通信管道以及中断发生器。具体的,每个处理器核都有一组相同的寄存器配置,包括FIFO寄存器、消息完成寄存器、中断使能寄存器。其中,FIFO只用于存放通信数据;中断寄存器,用于使能中断;消息完成寄存器,用于消息填充完成信号;其他寄存器用于复位、清除数据等操作。
可选地,源处理器核还被配置为:将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器之前,确定待发送消息的数据量大小,从预先生成的多个通信管道中确定与数据量大小对应的通信管道;或者确定待发送消息的数据量大小,触发mailbox生成与数据量大小对应的通信管道。
可选地,源处理器核还被配置为:预先生成多个通信管道,具体被配置为:获取源处理器核预设时间段内的多个历史发送消息,确定每个历史发送消息的数据量大小;根据多个历史发送消息的数据量大小生成多个数据区间;确定落入各个数据区间的历史发送消息个数在所有历史发送消息个数中的占比;步骤S201a7:根据该占比配置每一数据区间对应的通信管道数量在预设数量的通信管道中的占比。
通过上述方式,通过预先生成多个通信管道,可以提高源处理器并行发送消息的效率,而使区间对应的通信管道数量与该区间的消息数量相对应,可以进一步减少通信管道所占资源,并使其占用的资源实现最大化。
可选地,该处理器还被配置为:在将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器之前,确定处理器中包含的所有处理器核,针对每两个处理器核均配置一通信管道,并为每一通信管道配置一组寄存器。
可选地,为实现为每一通信管道配置一组寄存器,处理器被配置为:确定每两个处理器核之间通过通信管道发送的多个历史消息数据的数据量大小;针对数据量大小为通信管道分配一组寄存器,其中一组寄存器的大小足以存储预设比例的历史消息数据。
可选地,为实现将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,源处理器被配置为:从预先配置的通信管道中确定针对源处理器核和目的处理器核配置的第一通信管道;调用第一通信管道,以将封装完毕的消息数据写入第一通信管道对应的一组寄存器中。
实施例3
本申请的实施例可以提供一种计算设备,该计算设备可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算设备也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述计算设备包括一个或多个处理器、存储器、以及传输装置。其中,存储器可用于存储软件程序以及模块,如本申请实施例中的处理器通信方法和装置对应的程序指令/模块。处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据融合,即实现上述的处理器通信方法。
可选地,存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备120。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本实施例中,上述计算设备中的处理器运行存储的程序代码时可以执行以下方法步骤:源处理器核调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针;源处理器核调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据。
进一步地,在本实施例中,上述计算设备中的处理器运行存储的程序代码时可以执行实施例1中所列举的任一方法步骤,囿于篇幅不再赘述。
实施例3
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述处理器通信方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:源处理器核调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于指定寄存器的消息指针;源处理器核调用mailbox驱动中的中断发生器生成包含有消息指针和目的处理器核标识的中断请求,将中断请求发送至目的处理器核;目的处理器核处理中断请求,根据中断请求中包含的消息指针从指定寄存器中读取消息数据。
进一步地,在本实施例中,存储介质被设置为存储用于执行实施例1中所列举的任一方法步骤的程序代码,囿于篇幅不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种处理器通信方法,其特征在于,所述处理器包含多个处理器核,每个处理器核上均配置有mailbox驱动,所述方法包括:
源处理器核调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于所述指定寄存器的消息指针;
源处理器核调用mailbox驱动中的中断发生器生成包含有所述消息指针和目的处理器核标识的中断请求,将所述中断请求发送至目的处理器核;
目的处理器核处理所述中断请求,根据所述中断请求中包含的消息指针从所述指定寄存器中读取所述消息数据。
2.根据权利要求1所述的方法,其特征在于,在源处理器核调用mailbox驱动中的接口函数封装待发送消息之前,所述方法还包括:源处理器核和目标处理器核分别初始化各自配置的mailbox驱动。
3.根据权利要求1所述的方法,其特征在于,所述mailbox驱动包括源处理器核控制和状态寄存器,目的处理器核控制和状态寄存器,通信管道以及中断发生器。
4.根据权利要求1所述的方法,其特征在于,在将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器之前,所述方法还包括:
源处理器核确定所述待发送消息的数据量大小,从预先生成的多个通信管道中确定与所述数据量大小对应的通信管道;或者
源处理器核确定所述待发送消息的数据量大小,触发mailbox生成与所述数据量大小对应的通信管道。
5.根据权利要求1所述的方法,其特征在于,在将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器之前,所述方法还包括:
确定所述处理器中包含的所有处理器核,针对每两个处理器核均配置一通信管道,并为每一通信管道配置一组寄存器。
6.根据权利要求5所述的方法,其特征在于,为每一通信管道配置一组寄存器包括:
确定每两个处理器核之间通过通信管道发送的多个历史消息数据的数据量大小;
针对所述数据量大小为所述通信管道分配一组寄存器,其中所述一组寄存器的大小足以存储预设比例的历史消息数据。
7.根据权利要求5或6所述的方法,其特征在于,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器包括:
所述源处理器从预先配置的通信管道中确定针对源处理器核和目的处理器核配置的第一通信管道;
所述源处理器调用所述第一通信管道,以将封装完毕的消息数据写入所述第一通信管道对应的一组寄存器中。
8.一种处理器,其特征在于,所述处理器包含多个处理器核,用于发送消息的源处理器核与用于接收消息的目的处理器核均为所述多个处理器核中的任一个,每个处理器核上均配置有mailbox驱动,其中,
源处理器核被配置为:调用mailbox驱动中的接口函数封装待发送消息,将封装完毕的消息数据通过mailbox的通信管道写入指定寄存器,并生成对应于所述指定寄存器的消息指针,调用mailbox驱动中的中断发生器生成包含有所述消息指针和目的处理器核标识的中断请求,将所述中断请求发送至目的处理器核;
目的处理器核被配置为:处理所述中断请求,根据所述中断请求中包含的消息指针从所述指定寄存器中读取所述消息数据。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1-7任一项所述的方法。
10.一种计算设备,包括处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110538472.2A CN113110950B (zh) | 2021-05-18 | 2021-05-18 | 处理器及通信方法、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110538472.2A CN113110950B (zh) | 2021-05-18 | 2021-05-18 | 处理器及通信方法、存储介质及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113110950A true CN113110950A (zh) | 2021-07-13 |
CN113110950B CN113110950B (zh) | 2023-05-26 |
Family
ID=76722611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110538472.2A Active CN113110950B (zh) | 2021-05-18 | 2021-05-18 | 处理器及通信方法、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113110950B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114595186A (zh) * | 2022-05-09 | 2022-06-07 | 深圳比特微电子科技有限公司 | 一种多核处理器的核间通信方法、通信装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198422A1 (en) * | 2003-12-18 | 2005-09-08 | Arm Limited | Data communication mechanism |
CN103324599A (zh) * | 2013-06-04 | 2013-09-25 | 北京创毅讯联科技股份有限公司 | 处理器间通信方法与系统级芯片 |
CN103729329A (zh) * | 2012-10-12 | 2014-04-16 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
CN111930676A (zh) * | 2020-09-17 | 2020-11-13 | 湖北芯擎科技有限公司 | 多处理器间的通信方法、装置、系统及存储介质 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
-
2021
- 2021-05-18 CN CN202110538472.2A patent/CN113110950B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198422A1 (en) * | 2003-12-18 | 2005-09-08 | Arm Limited | Data communication mechanism |
CN103729329A (zh) * | 2012-10-12 | 2014-04-16 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
CN103324599A (zh) * | 2013-06-04 | 2013-09-25 | 北京创毅讯联科技股份有限公司 | 处理器间通信方法与系统级芯片 |
CN111930676A (zh) * | 2020-09-17 | 2020-11-13 | 湖北芯擎科技有限公司 | 多处理器间的通信方法、装置、系统及存储介质 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114595186A (zh) * | 2022-05-09 | 2022-06-07 | 深圳比特微电子科技有限公司 | 一种多核处理器的核间通信方法、通信装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113110950B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536940A (zh) | 发送具有扩展头部的分组 | |
CN114706808B (zh) | 一种基于spi菊花链结构的通信系统、方法及设备 | |
CN104798010B (zh) | 至少部分的串行存储协议兼容帧转换 | |
CN114138700B (zh) | 一种串口数据传输的流控方法、装置、设备及存储介质 | |
CN103838516B (zh) | 一种用于多核处理器高效访问iSCSI磁盘阵列的方法及系统 | |
CN105786752B (zh) | 一种计算设备与fpga间的usb通信方法和通信系统 | |
CN104461698A (zh) | 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统 | |
CN113778611A (zh) | 数据传输方法、装置、系统及存储介质 | |
CN115298656A (zh) | 用于调度可共享pcie端点设备的系统和方法 | |
CN116243853A (zh) | 数据传输方法、装置、电子设备及非易失性存储介质 | |
CN113110950A (zh) | 处理器及通信方法、存储介质及计算设备 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN109040221A (zh) | 一种数据传输方法、系统、设备及存储阵列和存储介质 | |
CN114077500A (zh) | 数据处理方法、装置、计算机可读存储介质和处理器 | |
CN103488601B (zh) | 一种时钟延时、数据访问方法、系统及设备 | |
CN103581036A (zh) | 一种虚拟机网络流量的控制方法、装置和系统 | |
CN108874699A (zh) | 多系统使用mtp功能的方法、装置及电子设备 | |
CN114637574A (zh) | 基于半虚拟化设备的数据处理方法、装置和系统 | |
CN110971696B (zh) | 一种实现虚拟电子卡通讯的系统和方法 | |
CN107168909A (zh) | 转接设备、远程通信系统、数据传输方法及装置 | |
CN110618868A (zh) | 对数据进行批量写入的方法、装置以及存储介质 | |
CN111970264A (zh) | 一种spi使用协议栈 | |
CN104394100A (zh) | 信用分配方法和交换机 | |
CN111614794B (zh) | 报文传输方法、装置、电子设备及存储介质 | |
CN215773156U (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 |