CN112363972B - 支持多cpu间通信的电子设备及方法 - Google Patents
支持多cpu间通信的电子设备及方法 Download PDFInfo
- Publication number
- CN112363972B CN112363972B CN202011124594.9A CN202011124594A CN112363972B CN 112363972 B CN112363972 B CN 112363972B CN 202011124594 A CN202011124594 A CN 202011124594A CN 112363972 B CN112363972 B CN 112363972B
- Authority
- CN
- China
- Prior art keywords
- cpu
- data
- register
- cpus
- status register
- 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
Images
Classifications
-
- 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/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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
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)
- Multi Processors (AREA)
Abstract
本申请实施例提供一种支持多CPU间通信的电子设备及方法,用于解决相关技术中多个CPU进行通信时,效率低下,数据延迟的问题。本申请实施例提供的电子设备中,在电子设备上设置有多个CPU且多个CPU无主从之分、共享内存以及中断控制器,其中,针对每个CPU:中断控制器上设置有与该CPU一一对应的寄存器组,寄存器组中包括多个寄存器单元,每个寄存器单元与该CPU的外部CPU一一对应;基于该结构,不同CPU之间能够通过中断控制器作为中间媒介进行通信,能够实现同一CPU可同时和多个CPU进行通信,提高多CPU的通信效率。
Description
技术领域
本申请涉及数据通信领域,尤其涉及一种支持多CPU间通信的电子设备及方法。
背景技术
随着集成电路行业的高速发展,现如今很多复杂的系统或者系统级芯片(SoC,System on Chip)芯片,需要多个中央处理器(CPU,central processing unit)共同协作实现较复杂的功能。各个CPU拥有各自私有的存储器、中断、内存等资源,但又需要共享异步收发传输器、串行外围设备接口等外部设备。因各自CPU属于独立的运行单元,各自运行不同的代码以及编译环境,存在造成多个CPU间共同完成一个任务较困难的问题。为此,相关技术中虽然实现了不同CPU之间的通信,但仅局限于两个主从CPU之间的通信,故此,多个CPU之间相互协作效率低。因此多CPU之间的通信效率有待提高。
发明内容
本申请的目的是提供一种支持多CPU间通信的电子设备,用以解决以下问题:多CPU之间的通信效率有待提高的问题。
本申请实施例提供一种支持多CPU间通信的电子设备,所述电子设备上设置有多个CPU、共享内存以及中断控制器,其中,针对每个CPU:所述中断控制器上设置有与所述CPU一一对应的寄存器组,所述寄存器组中包括多个寄存器单元,每个寄存器单元与所述CPU的外部CPU一一对应;
当所述CPU需要与任一目标CPU进行通信时,所述CPU作为触发CPU向所述共享内存写入待处理数据,并向所述目标CPU对应的寄存器单元写入用于表征通信类型的第一数据;
所述中断控制器,用于根据所述第一数据通知所述目标CPU与所述触发CPU进行通信;
所述目标CPU根据所述通知,从所述目标CPU对应的寄存器单元中读取通信类型;并,对所述共享内存中的待处理数据执行与所述通信类型对应的处理操作,并控制所述中断控制器对所述目标CPU对应的寄存器单元进行复位操作。
在一个实施例中,所述寄存器单元包括:状态寄存器和清除状态寄存器,其中:
所述触发CPU具体用于向所述目标CPU对应的所述状态寄存器中写入所述第一数据;
所述目标CPU具体用于从所述状态寄存器中读取所述第一数据;
所述目标CPU具体用于将用于指示执行所述复位操作的第二数据写入到所述目标CPU对应的所述清除状态寄存器中;
所述中断控制器具体用于基于所述第二数据对所述状态寄存器中的所述第一数据以及所述清除状态寄存器中的所述第二数据进行复位操作。
在一个实施例中,所述状态寄存器和所述清除状态寄存器均设置有n个比特位,且每种通信类型均由对应位置的至少一个比特位表示,其中n为正整数;
所述触发CPU具体用于向所述目标CPU对应的状态寄存器中且与所述通信类型对应位置的比特位上写入所述第一数据。
在一个实施例中,当多个目标CPU同时与所述CPU进行通信时,所述CPU还用于:
根据预先设定的CPU优先级依序执行各所述目标CPU指示的通信类型对应的操作。
在一个实施例中,当所述目标CPU指示的通信类型具有多种类型时,所述CPU还用于:
根据预先设定的类型优先级,依序执行所述多种类型中各通信类型对应的操作。
在一个实施例中,所述多个CPU中每个CPU在所述共享内存中具有一一对应的内存块;当所述CPU需要与任一目标CPU进行通信时,所述CPU作为触发CPU向所述共享内存中与所述触发CPU对应的内存块中写入待处理数据。
在一个实施例中,所述CPU和所述共享内存以及所述中断控制器之间通过总线控制协议进行通信。
第二方面,本申请还提供一种支持多CPU通信的方法应用于上述任一电子设备的CPU,
所述电子设备上设置有多个CPU、共享内存以及中断控制器,其中,针对每个CPU:所述中断控制器上设置有与所述CPU一一对应的寄存器组,所述寄存器组中包括多个寄存器单元,每个寄存器单元与所述CPU的外部CPU一一对应;所述方法包括:
当所述CPU需要与任一目标CPU进行通信时,所述CPU作为触发CPU向共享内存写入待处理数据,并向所述目标CPU对应的寄存器单元写入用于表征通信类型的第一数据,以使所述寄存器单元所在的中断控制器根据所述第一数据通知所述目标CPU执行以下操作:从所述目标CPU对应的寄存器单元中读取通信类型;并,对所述共享内存中的待处理数据执行与所述通信类型对应的处理操作,并控制所述中断控制器对所述目标CPU对应的寄存器单元进行复位操作。
在一个实施例中,所述寄存器单元包括:状态寄存器和清除状态寄存器;所述向所述目标CPU对应的寄存器单元写入用于表征通信类型的第一数据,包括:
向所述目标CPU对应的所述状态寄存器中写入所述第一数据,以使所述目标CPU从所述状态寄存器中读取所述第一数据;
所述方法还包括:
当所述CPU执行其他CPU下发的第三数据对应的通信类型的任务时,所述方法还包括:
将用于指示执行复位操作的第四数据写入到所述其他CPU对应的清除状态寄存器中,以使所述中断控制器基于所述第四数据对其他CPU对应的清除状态寄存器的所述第三数据以及所述其他CPU对应的清除状态寄存器中的所述第四数据进行复位操作。
在一个实施例中,所述状态寄存器和所述清除状态寄存器均设置有n个比特位,且每种通信类型均由对应位置的至少一个比特位表示,其中n为正整数;
所述向所述目标CPU对应的所述状态寄存器中写入所述第一数据,包括:
向所述目标CPU对应的状态寄存器中且与所述通信类型对应位置的比特位上写入所述第一数据。
在一个实施例中,当多个目标CPU同时与所述CPU进行通信时,所述方法还包括:
根据预先设定的CPU优先级,依序执行各所述目标CPU指示的通信类型对应的操作。
在一个实施例中,当所述目标CPU指示的通信类型具有多种类型时,所述方法还包括:
根据预先设定的类型优先级,依序执行所述多种类型中各通信类型对应的操作。
本申请实施例与相关技术相比,各个CPU无主从之分,提高了多个CPU同时通信时的效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的支持多CPU间通信的电子设备的结构示意图;
图2为本申请实施例提供的支持多CPU间通信的电子设备的中断控制器结构图;
图3为本申请实施例提供的支持多CPU间通信的电子设备的寄存器单元应用流程图;
图4为本申请实施例提供的支持多CPU间通信的电子设备的通信流程图;
图5为本申请实施例提供的支持多CPU间通信的电子设备中多个CPU与一个CPU进行通信的示意图;
图6为本申请实施例提供的支持多CPU间通信的电子设备中CPU间通信多个类型的流程图。
具体实施方式
本申请实施例中术语″和/或″,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符″/″一般表示前后关联对象是一种″或″的关系。
本申请实施例中术语″多个″是指两个或两个以上,其它量词与之类似。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人研究发现,现如今很多复杂的系统或者SoC芯片,需要多个CPU共同协作实现较复杂的功能。各个CPU拥有各自私有的存储器、中断、内存等资源,但又需要共享异步收发传输器、串行外围设备接口等外部设备。因各自CPU属于独立的运行单元,各自运行不同的代码以及编译环境,造成多个CPU间共同完成一个任务较困难。因此,需要一种通信方法,使得多个CPU之间相互协作,高效完成任务。
发明人研究发现,虽然相关技术中,实现了CPU之间的通信协议,但仍存在不同程度的问题。而且,部分通信协议规定了主从CPU,同一时间仅有两个CPU进行通信,无法实现多个CPU同时通信。在多个CPU的情况下,会造成效率低下,数据延迟等问题。
有鉴于此,本申请以为多个CPU组成的复杂系统,提供了一种安全、高效、可靠的通信方法,实现多个CPU间的同时高效通信。同时本申请还提供了一种支持多CPU间通信的电子设备。本申请的发明构思为:在电子设备上设置有多个CPU且多个CPU无主从之分、多个CPU共享内存以及中断控制器,其中,针对每个CPU:中断控制器上设置有与该CPU一一对应的寄存器组,寄存器组中包括多个寄存器单元,每个寄存器单元与该CPU的外部CPU一一对应;基于该结构,不同CPU之间能够通过中断控制器作为中间媒介进行通信。例如,当任一CPU与目标CPU进行通信时,需要目标CPU处理的数据可以由发起通信的CPU写入共享内存中。此外,发起通信的CPU可以经由中断寄存器通知需要通信的目标CPU,并通知目标CPU其通信类型。由此,目标CPU能够从终端寄存器中获取通信类型,并从共享内存中获取需要处理的数据,进而基于该通信类型对需要处理的数据进行处理,从而使得不同CPU之间能够协同完成同一任务。本申请中,中断控制器对每个CPU的控制是独立的不受任一CPU当前状态的影响,故此,一个CPU可以同时与多个其他CPU进行通信,多个CPU也可以与同一个CPU进行通信。因而,本申请中,不需要区分主从CPU,可以同时实现不限数量的CPU之间的通信。
下面结合附图对本申请实施例中的支持多CPU间通信的电子设备进行详细说明。
如图1所示,为本申请的支持多CPU间通信的电子设备的结构示意图,图1中包括:CPU0、CPU1、......、CPU n,总线,共享内存101,外接设备102,中断控制器103;
中断控制器103上设置有与各CPU一一对应的寄存器组,每个寄存器组中包括多个寄存器单元,每个寄存器单元与对应的CPU的外部CPU一一对应;例如,如图2所示,以电子设备包括5个CPU为例进行说明。图2中有5个CPU分别为CPU0、CPU1、CPU2、CPU3、CPU4;图2中的CPU0′,CPU1′,CPU2′,CPU3′,CPU4′分别表示寄存器组。由于每个CPU与一组寄存器组一一对应,故此图2中中断控制器中包括5组寄存器组。对每个CPU而言,该CPU的寄存器组中包括与该CPU的外部CPU一一对应的寄存器单元。以CPU0′为例,其外部CPU包括CPU0、CPU1、CPU2、CPU3、CPU4,则图2中第一行表示CPU0对应的寄存器组中包括分别与CPU1、CPU2、CPU3、CPU4一一对应的寄存器单元。此外,该寄存器组中还包括与CPU0对应的寄存器单元CPU0′用于管理CPU0内部的中断控制。
由于对本申请实施例提供的一种支持多CPU间通信的电子设备上的每个CPU的处理是相同的,所以下面以一个CPU为例对该CPU需要与任一目标CPU进行通信时的通信过程进行说明:
该CPU作为触发CPU向共享内存写入待处理数据,并向目标CPU对应的寄存器单元写入用于表征通信类型的第一数据;
中断控制器根据第一数据通知目标CPU与触发CPU进行通信;
目标CPU根据通知,从目标CPU对应的寄存器单元中读取通信类型;并,对共享内存中的待处理数据执行与通信类型对应的处理操作,并控制所述中断控制器对目标CPU对应的寄存器单元进行复位操作。
为了便于理解,下面对本申请实施例提供的一种支持多CPU间进行通信的电子设备中的寄存器单元的工作过程进行详细说明。
在一个实施例中,寄存器单元包括:状态寄存器和清除状态寄存器,如图3所示为该寄存器单元的具体应用方式及结构,图中包括:触发器CPU301、中断控制器302、目标CPU303、寄存器单元304、状态寄存器305、清除状态寄存器306,具体的:
触发CPU301用于:向目标CPU303对应的状态寄存器305中写入第一数据;
在一个实施例中,一种通信类型代表一种处理方式,CPU之间的通信不局限于一种通信类型,为了能够高效的完成CPU之间交互不同的通信类型,本申请实施例中,状态寄存器和清除状态寄存器均设置有n个比特位,且每种通信类型均由对应位置的至少一个比特位表示,其中n为正整数;例如:在一个实施例中,状态寄存器和清除状态寄存器均为32比特,每种通信类型均由一比特位表示,则共有32中通信类型。当然,在另一个实施例中,也可以多个比特位共同表示一种通信类型。
在不同通信类型对应不同比特位时,本申请实施例中,触发CPU在向中断控制器写入第一数据时,可之行为向目标CPU对应的状态寄存器中且与通信类型对应位置的比特位上写入第一数据。
例如:以1个比特位对应一种通信类型,S0=1表示一种通信类型,当触发CPU向目标CPU对应的状态寄存器中写入第一数据,此时状态寄存器=S0=1;目标CPU从状态寄存器中读取第一数据,并将用于指示执行复位操作的第二数据写入到目标CPU对应的清除状态寄存器中,此时清除状态寄存器=S0=1;中断控制器基于第二数据对状态寄存器中的第一数据以及清除状态寄存器中的第二数据进行复位操作,此时状态寄存器=S0=0,清除状态寄存器=S0=0。
中断控制器302用于:根据第一数据通知目标CPU与触发CPU进行通信;
目标CPU303用于:从状态寄存器中读取第一数据;
目标CPU303还用于:将用于指示执行复位操作的第二数据写入到目标CPU对应的清除状态寄存器306中;
中断控制器302用于:基于第二数据对状态寄存器305中的第一数据以及清除状态寄存器306中的第二数据进行复位操作。在本申请实提供的一种支持多CPU通信的电子设备中,各CPU无主从区分,可以和多个CPU同时进行通信,大大提高了通信效率。
从上述可知,本申请实施例是针对一个CPU进行描述的,但在具体实施过程中,对每个CPU的操作相同,因此一个CPU和多个CPU同时进行通信、多个CPU同时与一个CPU进行通信的具体实施过程与上述一个CPU与另一个CPU进行通信的过程相同。
为了便于理解,下面提供3种不同通信方式的例子:
一、一个CPU与另一个CPU用一种通信类型进行通信
本申请以CPU0与CPU4通信,状态寄存器和清除状态寄存器为32比特,每比特表示一种通信状态,则S0=0*01,S1=0*02,S2=0*04,......,S31=0*8000为例对本申请实施例提供的支持多CPU通信的电子设备进行说明。通信过程如图4所示:
在步骤401中:CPU0向共享内存写入待处理数据,并向CPU4的与CPU0对应的状态寄存器写入S0(通信类型1),则状态寄存器中用于表征通信类型的第一数据=S0=1;
实施时,CPU0写待处理数据和写第一数据的执行时机不受限,可以同时执行,也可以先写入待处理数据,写入成功后,在写第一数据,也可以先写第一数据,写入成功后再写入待处理数据。
在步骤402中:中断控制器根据该第一数据通知CPU4与CPU0进行通信;
实施时,中断控制器发送中断信号给CPU4用于通知CPU4与CPU0进行通信。
在步骤403中:CPU4收到该通知后,从相应的状态寄存器中读取第一数据,即读取CPU4中与CPU0对应的状态寄存器中的通信类型S0,然后对共享内存中的待处理数据执行与通信类型S0对应的处理操作;
例如,在对图像分类处理时可包括图像预处理,采用深度神经网络模型对预处理图像进行分类识别,那么对图像的预处理和分类识别可作为两种通信类型。再例如,在智能电视领域,对接收到的视频流的处理可包括多个阶段的处理,每个阶段的处理可单独作为一种通信类型。
在步骤404中:CPU4将指示复位操作的第二数据写到CPU4中与CPU0对应的清除状态寄存器中,即清除状态寄存器=S0=1;
在步骤405中:中断控制器基于该第二数据对状态寄存器中的第一数据以及清除状态寄存器中的第二数据进行复位操作。
二、多个CPU与一个CPU进行通信
在一个实施例中,当多个目标CPU同时与该CPU进行通信时,该CPU还用于根据预先设定的CPU优先级,依序执行各目标CPU指示的通信类型对应的操作。
例如:CPU3与CPU4同时与CPU0进行通信,若预先设定的CPU的优先级为CPU3优先于CPU4,则CPU0先执行CPU3指示的通信类型对应的操作,再执行CPU4指示的通信类型对应的操作,如图5所示:
CPU3用于向共享内存写入待处理数据,并向CPU3的与CPU0对应的状态寄存器写入S0(通信类型1),则状态寄存器中用于表征通信类型的第一数据=S0=1;
CPU4向共享内存写入待处理数据,并向CPU4的与CPU0对应的状态寄存器写入S0(通信类型1),则状态寄存器中用于表征通信类型的第一数据=S0=1;
中断控制器根据CPU3的与CPU0对应的状态寄存器中的S0通知CPU3与CPU0进行通信;
中断控制器根据CPU4的与CPU0对应的状态寄存器中的S0通知CPU4与CPU0进行通信;
CPU0收到该通知后,按照预先设定的优先级依序从相应的状态寄存器中读取第一数据,即读取CPU3的寄存器组中与CPU0对应的状态寄存器中的通信类型S0,然后对共享内存中的CPU3的待处理数据执行与通信类型S0对应的处理操作;并读取CPU4的寄存器组中与CPUO对应的状态寄存器中的通信类型S0,然后对共享内存中CPU4的待处理数据执行与通信类型S0对应的处理操作;
CPU0将指示复位操作的第二数据写到CPU0中与CPU3对应的清除状态寄存器中,即清除状态寄存器=S0=1;
CPU0将指示复位操作的第二数据写到CPU0中与CPU4对应的清除状态寄存器中,即清除状态寄存器=S0=1;
中断控制器基于该第二数据对CPU3的状态寄存器中的第一数据以及清除状态寄存器中的第二数据进行复位操作;
中断控制器基于该第二数据对CPU4的状态寄存器中的第一数据以及清除状态寄存器中的第二数据进行复位操作。
三、一个CPU与另一个CPU通信多种通信类型
在一个实施例中,当目标CPU指示的通信类型具有多种类型时,CPU还用于:根据预先设定的类型优先级,依序执行多种类型中各通信类型对应的操作。
例如:CPU0与CPU4通信多个类型,具体通信过程如图6所示,
在步骤601中:CPU0向共享内存写入待处理数据,并向CPU4的与CPU0对应的状态寄存器写入S1、S2,即状态寄存器中用于表征通信类型的第一数据=S1|S2=6;
在步骤602中:中断控制器根据该第一数据通知CPU4与CPU0进行通信;
在步骤603中:CPU4收到该第一数据,读取CPU4中与CPU0对应的状态寄存器中的通信类型,并对共享内存中的待处理数据执行与通信类型对应的处理操作;
在步骤604中:CPU0继续向CPU4的与CPU0对应的状态寄存器写入S0,即状态寄存器中用于表征通信类型的第一数据=S0=1;
在步骤605中:按照预先设定的类型优先级CPU4将指示复位操作的第二数据写到CPU4中与CPU0对应的清除状态寄存器中,即清除状态寄存器=S0=1,清除状态寄存器=S1|S2=6;
在步骤606中:中断控制器基于该第二数据对状态寄存器中的第一数据以及清除状态寄存器中的第二数据进行复位操作;
在步骤607中:按照预先设定的类型优先级CPU4将指示复位操作的第二数据写到CPU4中与CPU0对应的清除状态寄存器中,清除状态寄存器=S1|S2=6;
在步骤608中:中断控制器基于该第二数据对状态寄存器中的第一数据以及清除状态寄存器中的第二数据进行复位操作。
在本申请提供的支持多CPU通信的电子设备中,CPU可同时接收多种通信类型,有效的提高了通信效率。
在一个实施例中,多个CPU中每个CPU在共享内存中具有一一对应的内存块;当CPU需要与任一目标CPU进行通信时,CPU作为触发CPU向共享内存中与自己对应的内存块中写入待处理数据。
在一个实施例中,CPU和共享内存以及中断控制器之间通过总线控制协议进行通信。
在介绍了本申请示例性实施方式的一种支持多CPU间通信的电子设备之后,基于相同的发明构思,接下来,介绍根据本申请的另一示例性实施方式的方法。
在一个实施例中,电子设备上设置有多个CPU、共享内存以及中断控制器,其中,针对每个CPU:中断控制器上设置有与该CPU一一对应的寄存器组,寄存器组中包括多个寄存器单元,每个寄存器单元与该CPU的外部CPU一一对应;所述方法包括:
当该CPU需要与任一目标CPU进行通信时,该CPU作为触发CPU向共享内存写入待处理数据,并向目标CPU对应的寄存器单元写入用于表征通信类型的第一数据,以使所述寄存器单元所在的中断控制器根据第一数据通知目标CPU执行以下操作:从目标CPU对应的寄存器单元中读取通信类型;并,对共享内存中的待处理数据执行与所述通信类型对应的处理操作,并控制中断控制器对目标CPU对应的寄存器单元进行复位操作。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种支持多中央处理器CPU通信的电子设备,其特征在于,所述电子设备上设置有多个CPU、共享内存以及中断控制器,其中,针对每个CPU:
所述中断控制器上设置有与所述CPU一一对应的寄存器组,所述寄存器组中包括多个寄存器单元,每个寄存器单元与所述CPU的外部CPU一一对应;
当所述CPU需要与任一目标CPU进行通信时,所述CPU作为触发CPU向所述共享内存写入待处理数据,并向所述目标CPU对应的寄存器单元写入用于表征通信类型的第一数据;
所述中断控制器,用于根据所述第一数据通知所述目标CPU与所述触发CPU进行通信;
所述目标CPU根据所述通知,从所述目标CPU对应的寄存器单元中读取通信类型;并,对所述共享内存中的待处理数据执行与所述通信类型对应的处理操作,并控制所述中断控制器对所述目标CPU对应的寄存器单元进行复位操作;
所述寄存器单元包括:状态寄存器和清除状态寄存器,其中:
所述触发CPU具体用于向所述目标CPU对应的所述状态寄存器中写入所述第一数据;
所述目标CPU具体用于从所述状态寄存器中读取所述第一数据;
所述目标CPU具体用于将用于指示执行所述复位操作的第二数据写入到所述目标CPU对应的所述清除状态寄存器中;
所述中断控制器具体用于基于所述第二数据对所述状态寄存器中的所述第一数据以及所述清除状态寄存器中的所述第二数据进行复位操作。
2.根据权利要求1所述的电子设备,其特征在于,所述状态寄存器和所述清除状态寄存器均设置有n个比特位,且每种通信类型均由对应位置的至少一个比特位表示,其中n为正整数;
所述触发CPU具体用于向所述目标CPU对应的状态寄存器中且与所述通信类型对应位置的比特位上写入所述第一数据。
3.根据权利要求1所述的电子设备,其特征在于,当多个目标CPU同时与所述CPU进行通信时,所述CPU还用于:
根据预先设定的CPU优先级,依序执行各所述目标CPU指示的通信类型对应的操作。
4.根据权利要求1所述的电子设备,其特征在于,当所述目标CPU指示的通信类型具有多种类型时,所述CPU还用于:
根据预先设定的类型优先级,依序执行所述多种类型中各通信类型对应的操作。
5.根据权利要求1所述的电子设备,其特征在于,所述多个CPU中每个CPU在所述共享内存中具有一一对应的内存块;当所述CPU需要与任一目标CPU进行通信时,所述CPU作为触发CPU向所述共享内存中与所述触发CPU对应的内存块中写入待处理数据。
6.根据权利要求1所述的电子设备,其特征在于,所述CPU和所述共享内存以及所述中断控制器之间通过总线控制协议进行通信。
7.一种支持多CPU通信的方法,其特征在于,应用于权利要求1-6中任一电子设备的CPU,所述电子设备上设置有多个CPU、共享内存以及中断控制器,其中,针对每个CPU:所述中断控制器上设置有与所述CPU一一对应的寄存器组,所述寄存器组中包括多个寄存器单元,每个寄存器单元与所述CPU的外部CPU一一对应;所述方法包括:
当所述CPU需要与任一目标CPU进行通信时,所述CPU作为触发CPU向共享内存写入待处理数据,并向所述目标CPU对应的寄存器单元写入用于表征通信类型的第一数据,以使所述寄存器单元所在的中断控制器根据所述第一数据通知所述目标CPU执行以下操作:从所述目标CPU对应的寄存器单元中读取通信类型;并,对所述共享内存中的待处理数据执行与所述通信类型对应的处理操作,并控制所述中断控制器对所述目标CPU对应的寄存器单元进行复位操作。
8.根据权利要求7所述的方法,其特征在于,所述寄存器单元包括:状态寄存器和清除状态寄存器;所述向所述目标CPU对应的寄存器单元写入用于表征通信类型的第一数据,包括:
向所述目标CPU对应的所述状态寄存器中写入所述第一数据,以使所述目标CPU从所述状态寄存器中读取所述第一数据;
所述方法还包括:
当所述CPU执行其他CPU下发的第三数据对应的通信类型的任务时,所述方法还包括:
将用于指示执行复位操作的第四数据写入到所述其他CPU对应的清除状态寄存器中,以使所述中断控制器基于所述第四数据对其他CPU对应的清除状态寄存器的所述第三数据以及所述其他CPU对应的清除状态寄存器中的所述第四数据进行复位操作。
9.根据权利要求8所述的方法,其特征在于,所述状态寄存器和所述清除状态寄存器均设置有n个比特位,且每种通信类型均由对应位置的至少一个比特位表示,其中n为正整数;
所述向所述目标CPU对应的所述状态寄存器中写入所述第一数据,包括:
向所述目标CPU对应的状态寄存器中且与所述通信类型对应位置的比特位上写入所述第一数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011124594.9A CN112363972B (zh) | 2020-10-20 | 2020-10-20 | 支持多cpu间通信的电子设备及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011124594.9A CN112363972B (zh) | 2020-10-20 | 2020-10-20 | 支持多cpu间通信的电子设备及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112363972A CN112363972A (zh) | 2021-02-12 |
CN112363972B true CN112363972B (zh) | 2022-09-23 |
Family
ID=74507993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011124594.9A Active CN112363972B (zh) | 2020-10-20 | 2020-10-20 | 支持多cpu间通信的电子设备及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363972B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114675594B (zh) * | 2022-03-31 | 2024-02-09 | 中国电信股份有限公司 | 异构plc协作控制系统、方法、装置、设备和介质 |
CN115208673A (zh) * | 2022-07-15 | 2022-10-18 | 黄策 | 一种在多个cpu之间传输数据的方法 |
CN116662248A (zh) * | 2023-05-12 | 2023-08-29 | 珠海妙存科技有限公司 | 多cpu通信系统和方法、电子设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535427A (zh) * | 2001-07-30 | 2004-10-06 | 皇家菲利浦电子有限公司 | 用于芯片上系统设计的有效中断系统 |
CN106575275A (zh) * | 2014-08-20 | 2017-04-19 | 赛灵思公司 | 用于异构多处理器系统中处理器间中断的机制 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011118508A (ja) * | 2009-12-01 | 2011-06-16 | Renesas Electronics Corp | マルチプロセッサシステム及びマルチプロセッサ制御方法 |
-
2020
- 2020-10-20 CN CN202011124594.9A patent/CN112363972B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535427A (zh) * | 2001-07-30 | 2004-10-06 | 皇家菲利浦电子有限公司 | 用于芯片上系统设计的有效中断系统 |
CN106575275A (zh) * | 2014-08-20 | 2017-04-19 | 赛灵思公司 | 用于异构多处理器系统中处理器间中断的机制 |
Also Published As
Publication number | Publication date |
---|---|
CN112363972A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112363972B (zh) | 支持多cpu间通信的电子设备及方法 | |
US7814295B2 (en) | Moving processing operations from one MIMD booted SIMD partition to another to enlarge a SIMD partition | |
US7979674B2 (en) | Re-executing launcher program upon termination of launched programs in MIMD mode booted SIMD partitions | |
CN111190842B (zh) | 直接存储器访问、处理器、电子设备和数据搬移方法 | |
JPS62159268A (ja) | マルチプロセツサシステム | |
US7831802B2 (en) | Executing Multiple Instructions Multiple Data (‘MIMD’) programs on a Single Instruction Multiple Data (‘SIMD’) machine | |
US7831803B2 (en) | Executing multiple instructions multiple date (‘MIMD’) programs on a single instruction multiple data (‘SIMD’) machine | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
US7689991B2 (en) | Bus management techniques | |
CN113253978A (zh) | 嵌入式软件开发方法、模型、电子设备和介质 | |
CN111694787A (zh) | 一种芯片启动的方法、网络设备和机器可读存储介质 | |
CN110245025B (zh) | 一种基于Actor模型的数据采集方法、装置及存储介质 | |
JPH02123449A (ja) | コンピュータ・システム及びコンピュータ・システムを作動させる方法 | |
CN110770712A (zh) | 运算方法、芯片、系统、可读存储介质及计算机程序产品 | |
JPH02105961A (ja) | マルチプロセッサ同期方式 | |
CN115543343B (zh) | 变量跨线程操作方法及装置 | |
CN118409898A (zh) | 异常os恢复方法及相关设备 | |
JPH01147640A (ja) | マルチプログラミング・デバッグ装置 | |
SU1365086A1 (ru) | Устройство дл контрол блоков управлени | |
RU2024927C1 (ru) | Микропроцессор | |
JP3903688B2 (ja) | バンク切替システム | |
CN118567855A (zh) | 请求的执行方法及装置、存储介质及电子设备 | |
CN115698995A (zh) | 硬件自动加载器 | |
CN118567844A (zh) | 基于设备树的多核共享外设芯片资源互斥方法及装置 | |
CN115547389A (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 |