双cpu通信方法、系统和片上系统芯片的制作方法

文档序号:8339573阅读:476来源:国知局
双cpu通信方法、系统和片上系统芯片的制作方法
【技术领域】
[0001]本发明涉及嵌入式设备技术领域,具体涉及一种双CPU通信方法、系统和片上系统芯片。
【背景技术】
[0002]随着移动通信的发展,智能终端软件功能越来越复杂,对CPU (中央处理器)的要求也越来越高,单个CPU已经无法满足系统性能的需求。越来越多的移动终端采用多CPU的架构,特别在移动手机领域,BB (Base Band,基带处理器)+AP (Applicat1n Processor,应用处理器)双CPU架构的SoC (System on a Chip,片上系统)已经成为市场主流。同时,如何让双CPU之间实现稳定、高效通信也成为了当前必须解决的课题。
[0003]现有技术中的双CPU通信常用的方案如图1所示,首先在双CPU之间的共享存储器中划分两个区域,这两个区域用来缓存需要发送到对方的数据及数据信息(长度、起始地址等等)。以双CPU分别为CPU A和CPU B为例,当CPU A向CPU B发送数据时,先将需要发送的数据放到“A to B Data”区域中,然后再将数据信息存入到“A to B Data Informat1n”区域,接着CPUA触发中断信号通知CPU B数据发送。CPU B接收到中断以后,到共享存储区中“A to B Data Informat1n”区域先取得数据信息Data Informat1n,然后再到“A toB Data”区域中取走要接收的数据,CPU B向CPU A发送数据同理,不再详述。
[0004]现有技术中的上述方案明显有如下几个缺点:
[0005]1、CPU上运行的都是支持多任务的系统,一般情况下多个应用程序同时在运行,当出现这样的场景:CPU A的一个应用程序正在向CPU B发送数据,CPU A的另一个应用程序也需要向CPU B发送数据时,由于CPU间单向数据通道只有一个,为了不造成通道数据的混舌L第二个有发送请求的应用程序只能等待第一个应用程序数据发送完成以后才能发送自己的数据,即各应用程序需要“排队”,造成应用程序的反应延迟;
[0006]2、为了及时将数据发送到对方,而又由于无法预知多任务系统后续是否有数据要发送,导致应用程序每发送一次数据就要向对方CPU发送一次irq( Interrupt Request,中断请求)信号以通知数据发送事件,造成频繁产生中断,影响CPU的正常运行。

【发明内容】

[0007]本发明实施例所要解决的技术问题是提供一种双CPU通信方法、系统和片上系统芯片,用于实现并行的CPU间的通信。
[0008]本发明实施例提供一种双CPU通信方法,所述双CPU包括第一 CPU和第二 CPU,所述方法包括:
[0009]接收运行在第一 CPU上的第一应用程序通过应用程序接口 API传递的待发送给所述第二 CPU的数据;
[0010]将第一虚拟数据通道的状态更新为发送态;所述第一虚拟数据通道是所述第一应用程序独享的虚拟数据通道;
[0011]将所述待发送给所述第二 CPU的数据进行组装,并将组装后得到的数据放入所述第一虚拟数据通道独享的第一缓存区;
[0012]判断运行在所述第一 CPU上的其它应用程序的虚拟数据通道的状态是否均不为发送态,如果是,向所述第二 CPU发送中断信号以通知所述第二 CPU读取所述第一缓存区中的数据。
[0013]相应的,本发明实施例还提供一种双CPU通信系统,所述双CPU包括第一 CPU和第二 CPU,所述系统包括:
[0014]接收单元,用于接收运行在所述第一 CPU上的第一应用程序通过应用程序接口API传递的待发送给所述第二 CPU的数据;
[0015]通道状态管理单元,用于将第一虚拟数据通道的状态更新为发送态;所述第一虚拟数据通道是所述第一应用程序独享的虚拟数据通道;
[0016]通道数据处理单元,用于将所述待发送给所述第二 CPU的数据进行组装,并将组装后得到的数据放入所述第一虚拟数据通道独享的第一缓存区;
[0017]第一判断单元,用于判断运行在所述第一 CPU上的其它应用程序的虚拟数据通道的状态是否均不为发送态;
[0018]中断信号发送单元,用于在所述第一判断单元的判断结果为是时,向所述第二 CPU发送中断信号以通知所述第二 CPU读取所述第一缓存区中的数据。
[0019]相应的,本发明实施例还提供一种片上系统芯片,所述片上系统芯片包括双CPU和共享存储器,所述片上系统芯片还包括如前所述的双CPU通信系统。
[0020]本发明实施例公开的双CPU通信方法、系统和片上系统芯片,运行在一个CPU上的应用程序可利用其独享的虚拟数据通道向另一个CPU发送数据,由于各个应用程序均拥有独享的虚拟数据通道,其虚拟数据通道的缓存区也是独享的,因此在数据发送过程中,各应用程序可以并行的向对方CPU发送数据而互不干扰,提升数据发送的速度,缩短应用程序的反应延迟,提升用户体验;并且,本实施例中,运行在同一 CPU的多个应用程序并行的向对方CPU发送数据时,只需向对方CPU发送一个中断信号即可通知对方CPU读取数据,可以避免频繁的产生中断给对方CPU的运行带来影响。
【附图说明】
[0021]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是现有技术中的片上系统芯片的结构示意图;
[0023]图2是本发明实施例一提供的双CPU通信方法的流程示意图;
[0024]图3是本发明实施例二提供的双CPU通信方法的流程第一示意图;
[0025]图4是本发明实施例二提供的双CPU通信方法的流程第二示意图;
[0026]图5是本发明实施例二提供的双CPU通信方法的流程第三示意图;
[0027]图6是本发明实施例三提供的双CPU通信系统的结构示意图;
[0028]图7是本发明实施例四提供的双CPU通信系统的结构示意图;
[0029]图8是本发明实施例五提供的片上系统芯片的结构示意图。
【具体实施方式】
[0030]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]本发明实施例中提供了一种双CPU通信方法、系统和片上系统芯片,用于克服现有技术中双CPU之间通信存在的数据发送速度慢、频繁产生中断的问题。以下分别进行详细说明。
[0032]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0033]实施例一:
[0034]本发明提供一种双CPU通信方法,该双CPU可包括第一 CPU和第二 CPU,如图2所示,该双CPU通信方法可包括:
[0035]201、接收运行在第一 CPU上的第一应用程序通过APKApplicat1n ProgrammingInterface,应用程序接口)传递的待发送给上述第二 CPU的数据;
[0036]需要说明的是,第一 CPU是双CPU中的任意一个CPU,第二 CPU是双CPU中的另一个 CPU ;
[0037]第一应用程序可以是运行在第一 CPU上的任意一个应用程序;
[0038]202、将第一虚拟数据通道的状态更新为发送态;
[0039]其中,上述第一虚拟数据通道是上述第一应用程序独享的虚拟数据通道,在本实施例中,独享的含义为该第一虚拟通道仅可供第一应用程序使用以通过该第一虚拟通道向第二 CPU发送数据或接收第二 CPU返回的数据;
[0040]203、将上述待发送给上述第二 CPU的数据进行组装,并将组装后得到的数据放入上述第
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1