一种通信方法及通信系统与流程

文档序号:17790295发布日期:2019-05-31 20:05阅读:122来源:国知局
一种通信方法及通信系统与流程

本发明涉及通信技术领域,特别是涉及一种通信方法及通信系统。



背景技术:

传统的两个芯片之间的通信包括数据的传输,其中,两个芯片包括主芯片和从芯片。数据传输由主芯片中的处理器(cpu)发起,通过高速接口传输到从芯片中的处理器,再由从芯片中的处理器执行完成命令后返回与命令对应的响应到主芯片的处理器;数据传输由主芯片的主处理器发起数据搬移。这种数据交互方式最大的缺点有以下几点:

1、cpu负载明显提高,cpu需要频繁参与数据启动和结束。

2、由于芯片间通信一般要比芯片内部通信延迟大很多,导致cpu访问效率大大降低。

3、cpu参与导致数据实时响应时间变长,对数据吞吐量影响非常大。



技术实现要素:

本发明提供一种通信方法及通信系统,能够实现降低处理器的占用率的同时提高数据的传输效率。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种通信方法,应用于第一芯片和第二芯片,其中,第一芯片包括两两相互连接的第一处理器、第一通信接口和第一闪存,第二芯片包括两两相互连接的第二处理器、第二通信接口和第二闪存,第一通信接口包括第一控制模块、第一环状缓冲模块和第一总线接口,第二通信接口包括第二控制模块、第二环状缓冲模块和第二总线接口,第一通信接口的第一总线接口通过系统总线与第二通信接口的第二总线接口连接;该方法包括:第一控制模块从第一闪存获取消息数据,其中,消息数据包括读数据和写数据;第一控制模块控制消息数据写入第一环状缓冲模块,并控制消息数据从第一环状缓冲模块通过系统总线发送至第二环状缓冲模块;第二环状缓冲模块通过系统总线从第一环状缓冲模块接收消息数据,以使第二处理器获取消息数据。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种通信系统,包括第一芯片和第二芯片,第一芯片包括两两相互连接的第一处理器、第一通信接口和第一闪存,第二芯片包括两两相互连接的第二处理器、第二通信接口和第二闪存,第一通信接口包括第一控制模块、第一环状缓冲模块和第一总线接口,第二通信接口包括第二控制模块、第二环状缓冲模块和第二总线接口,第一通信接口的第一总线接口通过系统总线与第二通信接口的第二总线接口连接;其中,第一控制模块从第一闪存获取消息数据,其中,消息数据包括读数据和写数据;第一控制模块控制消息数据写入第一环状缓冲模块,并控制消息数据从第一环状缓冲模块通过系统总线发送至第二环状缓冲模块;第二环状缓冲模块通过系统总线从第一环状缓冲模块接收消息数据,以使第二处理器获取消息数据。

本发明的有益效果是:本发明的通信方法及通信系统通过第一控制模块从第一闪存获取消息数据后,控制消息数据从第一环状缓冲模块通过系统总线发送至第二环状缓冲模块,第二环状缓冲模块通过系统总线从第一环状缓冲模块接收消息数据以使第二处理器获取消息数据,从而能够降低处理器的占用率的同时提高消息数据的传输效率。

附图说明

图1是本发明实施例的通信系统的结构示意图;

图2是本发明第一实施例的通信方法的流程示意图;

图3为图2中第一控制模块控制消息数据写入第一环状缓冲模块,并控制消息数据从第一环状缓冲模块通过系统总线发送至第二环状缓冲模块的子流程图;

图4是本发明第二实施例的通信方法的流程示意图;

图5为图4中第二控制模块控制消息数据写入第二环状缓冲模块,并控制消息数据从第二环状缓冲模块通过系统总线发送至第一环状缓冲模块的子流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

图1是本发明实施例的通信系统的结构示意图。如图1所示,通信系统100包括第一芯片10和第二芯片20。

第一芯片10包括两两相互连接的第一处理器11、第一通信接口12和第一闪存13,第二芯片20包括两两相互连接的第二处理器21、第二通信接口22和第二闪存23。

第一通信接口12包括第一总线接口121,第二通信接口22包括第二总线接口221,第一通信接口12的第一总线接口121通过系统总线30与第二通信接口22的第二总线接口221连接。

优选地,第一总线接口121以及第二总线接口221为pcie接口,系统总线30为pcie总线。

第一通信接口12进一步包括第一控制模块122和第一环状缓冲模块123,其中,第一控制模块122分别和第一环状缓冲模块123和第一总线接口121连接。第二通信接口22包括第二控制模块222和第二环状缓冲模块223,其中,第二控制模块222分别和第二环状缓冲模块223和第二总线接口221连接。

优选地,第一环状缓冲模块123和第二环状缓冲模块223为脉冲缓冲器(pulsebuffer)或突发缓冲器(burstbuffer)。

优选地,第一环状缓冲模块123和第二环状缓冲模块223均包括写数据缓冲单元和读数据缓冲单元,其分别用于存储消息数据中的写数据和读数据。

第一芯片10和第二芯片20之间传输消息数据的过程具体为:第一控制模块122从第一闪存13获取消息数据,其中,消息数据包括读数据和写数据;第一控制模块122控制消息数据写入第一环状缓冲模块123,并控制消息数据从第一环状缓冲模块123通过系统总线30发送至第二环状缓冲模块223;第二环状缓冲模块223通过系统总线30从第一环状缓冲模块123接收消息数据,以使第二处理器21获取消息数据。

在本实施例中,第二环状缓冲模块223通过系统总线30从第一环状缓冲模块123接收消息数据,以使第二处理器21获取消息数据的操作具体可以为:第二环状缓冲模块223通过系统总线30从第一环状缓冲模块123接收消息数据;第二控制模块222控制消息数据发送至第二闪存23,以使第二处理器2从第二闪存23获取消息数据。

在其它实施例中,第二环状缓冲模块223通过系统总线30从第一环状缓冲模块123接收消息数据,以使第二处理器21获取消息数据的具体还可以为:第二环状缓冲模块223通过系统总线30从第一环状缓冲模块123接收消息数据;第二处理器21通过内部总线从第二环状缓冲模块123接收消息数据。

其中,当第一芯片10为主芯片、第二芯片20为从芯片时,消息数据为存储在第一闪存13、并由主芯片写入从芯片的写数据,也即写数据可定义为主芯片写入从芯片中的数据。

其中,当第一芯片10为从芯片、第二芯片20为主芯片时,消息数据为存储在第二闪存33、并由主芯片从从芯片读取的读数据,也即读数据可定义为主芯片从从芯片读取的数据。

图2是本发明第一实施例的通信方法的流程示意图,图2所示的通信方法基于图1所示的通信系统,其中,第一芯片10为主芯片,第二芯片20为从芯片。如图2所示,该方法基于主芯片向从芯片写入写数据,该方法包括如下步骤:

步骤s101:第一控制模块从第一闪存获取消息数据,其中,消息数据为写数据。

在步骤s101中,当主芯片需要将消息数据写入从芯片时,主芯片中的第一通信接口中的第一控制模块首先从第一闪存获取消息数据,其中,消息数据为写数据。

步骤s102:第一控制模块控制消息数据写入第一环状缓冲模块,并控制消息数据从第一环状缓冲模块通过系统总线发送至第二环状缓冲模块。

在步骤s102中,第一控制模块控制写数据写入第一环状缓冲模块中的写数据缓冲单元后,第一控制模块和第二控制模块进行状态握手并通知第二控制模块“第一环状缓冲模块存储有写数据”后,第一控制模块将存储在第一环状缓冲模块中的写数据通过系统总线发送至第二环状缓冲模块。

请一并参考图3,图3为图2中第一控制模块控制消息数据写入第一环状缓冲模块,并控制消息数据从第一环状缓冲模块通过系统总线发送至第二环状缓冲模块的子流程图,该子流程图包括步骤:

步骤s1021:第一控制模块根据存储在第一环状缓冲模块中的消息数据对应的写地址指针获取消息数据的数据量。

在步骤s1021中,第一控制模块主动去读存储在第一环状缓冲模块中的写数据缓冲单元中的写数据对应的写地址指针,并根据写地址指针获取写数据的数据量。

步骤s1022:第一控制模块根据第二环状缓冲模块中的写地址指针获取第二环状缓冲模块的可用空间。

在步骤s1022中,第一控制模块根据第二环状缓冲模块中的写数据缓冲单元的写地址指针获取第二环状缓冲模块中的写数据缓冲单元的可用空间。

步骤s1023:第一控制模块比较消息数据的数据量和第二环状缓冲模块的可用空间。

在步骤s1023中,第一控制模块比较存储在第一环状缓冲模块中的写数据的数据量和第二环状缓冲模块中写数据缓冲单元的可用空间。

步骤s1024:若比较结果为数据量小于第二环状缓冲模块的可用空间,第一控制模块控制所有消息数据写入第二环状缓冲模块的可用空间。

在步骤s1024中,若比较结果为数据量小于第二环状缓冲模块的可用空间,第一控制模块控制所有写数据写入第二环状缓冲模块中写数据缓冲单元的可用空间。

步骤s1025:若比较结构为数据量大于第二环状缓冲模块的可用空间,第一控制模块按照可用空间的大小控制部分消息数据写入第二环状缓冲模块的可用空间。

在步骤s1025中,若比较结果为数据量大于第二环状缓冲模块的可用空间,第一控制模块按照可用空间的大小控制部分写数据写入第二环状缓冲模块中写数据缓冲单元的可用空间。

步骤s103:第二环状缓冲模块通过系统总线从第一环状缓冲模块接收消息数据,以使第二处理器获取消息数据。

在步骤s103中,在本实施例中,第二环状缓冲模块通过系统总线从第一环状缓冲模块接收消息数据,以使第二处理器获取消息数据的步骤可以包括:第二环状缓冲模块通过系统总线从第一环状缓冲模块接收消息数据;第二控制模块控制消息数据发送至第二闪存,以使第二处理器从第二闪存获取消息数据。具体来说,第二环状缓冲模块通过系统总线从第一环状缓冲模块接收写数据并存储在第二环状缓冲模块的写数据缓冲单元后,第二控制模块控制消息数据发送至第二闪存,进而通知第二处理器,从而实现由主芯片向从芯片写入写数据的操作。

在其它实施例中,第二环状缓冲模块通过系统总线从第一环状缓冲模块接收消息数据,以使第二处理器获取消息数据的步骤可以包括:第二环状缓冲模块通过系统总线从第一环状缓冲模块接收消息数据;第二处理器通过内部总线从第二环状缓冲模块接收消息数据。具体来说,第二环状缓冲模块通过系统总线从第一环状缓冲模块接收写数据并存储在第二环状缓冲模块的写数据缓冲单元后,第二控制模块通知第二处理器后第二处理器通过内部总线从第二环状缓冲模块接收消息数据,从而实现由主芯片向从芯片写入写数据的操作。

通过上述方式,本发明通过通信接口中的控制模块和环状缓冲模块来实现写数据在主从芯片之间的传输,也即其不需要主从芯片中处理器的参与即可实现主芯片向从芯片写入写数据,大大提高了主芯片向从芯片写入写数据的效率。

图4是本发明第二实施例的通信方法的流程示意图,图4所示的通信方法基于图1所示的通信系统,其中,第一芯片10为主芯片,第二芯片20为从芯片。如图4所示,该方法基于主芯片从从芯片读取读数据,该方法包括如下步骤:

步骤s201:第二控制模块从第二闪存获取消息数据,其中,消息数据为读数据。

在步骤s201中,当主芯片需要从从芯片读取消息数据时,从芯片中的第二通信接口中的第二控制模块首先从第二闪存获取消息数据,其中消息数据为读数据。

步骤s202:第二控制模块控制消息数据写入第二环状缓冲模块,并控制消息数据从第二环状缓冲模块通过系统总线发送至第一环状缓冲模块。

在步骤s202中,第二控制模块控制读数据写入第二环状缓冲模块中的读数据缓冲单元后,第二控制模块将存储在第二环状缓冲模块中的读数据通过系统总线发送至第一环状缓冲模块。

请一并参考图5,图5为图4中第二控制模块控制消息数据写入第二环状缓冲模块,并控制消息数据从第二环状缓冲模块通过系统总线发送至第一环状缓冲模块的子流程图,该子流程图包括如下步骤:

步骤s2021:第二控制模块获取存储在第二环状缓冲模块中的消息数据对应的读地址指针,并根据读地址指针获取消息数据的数据量。

在步骤s2021中,从芯片的第二控制模块获取主芯片中第一环状缓冲模块中的读数据缓冲单元的读地址指针。

步骤s2022:第二控制模块根据第一环状缓冲模块中的读地址指针获取第一环状缓冲模块的可用空间。

在步骤s2022中,第二控制模块根据读地址指针获取第一环状缓冲模块中的读数据缓冲单元的可用空间。

步骤s2023:第二控制模块比较消息数据的数据量和第一环状缓冲模块的可用空间。

在步骤s2023中,第二控制模块比较已存储在第二环状缓冲模块中的读数据的数据量和第一环状缓冲模块中读数据缓冲单元的可用空间。

步骤s2024:若比较结果为数据量小于第一环状缓冲模块的可用空间,第二控制模块控制所有消息数据发送至第一环状缓冲模块的可用空间。

在步骤s2024中:若比较结果为数据量小于可用空间,第二控制模块控制所有读数据发送至第一环状缓冲模块中的读数据缓冲单元的可用空间。

步骤s2025:若比较结构为数据量大于第一环状缓冲模块的可用空间,第二控制模块按照可用空间的大小控制部分消息数据发送至第一环状缓冲模块的可用空间。

在步骤s2025中,若比较结果为数据量大于可用空间,第二控制模块按照可用空间的大小控制部分读数据发送至第一环状缓冲模块中的读数据缓冲单元的可用空间。

步骤s203:第一环状缓冲模块通过系统总线从第二环状缓冲模块接收消息数据,以使第一处理器获取消息数据。

在步骤s203中,在本实施例中,第一环状缓冲模块通过系统总线从第二环状缓冲模块接收消息数据,以使第一处理器获取消息数据的步骤可以包括:第一环状缓冲模块通过系统总线从第二环状缓冲模块接收消息数据;第一控制模块控制消息数据发送至第一闪存,以使第一处理器从第一闪存获取消息数据。具体来说,第一环状缓冲模块通过系统总线从第二环状缓冲模块接收读数据并存储在第一环状缓冲模块的读数据缓冲单元后,第一控制模块控制读数据发送至第一闪存以使第一处理器从第一闪存获取读数据,从而实现由主芯片从从芯片读取读数据的操作。

在其它实施例中,第一环状缓冲模块通过系统总线从第二环状缓冲模块接收消息数据,以使第一处理器获取消息数据的步骤可以包括:第一环状缓冲模块通过系统总线从第二环状缓冲模块接收消息数据;第一处理器通过内部总线从第一环状缓冲模块接收消息数据。具体来说,第一环状缓冲模块通过系统总线从第二环状缓冲模块接收写数据并存储在第一环状缓冲模块的写数据缓冲单元后,第一控制模块将“读取读数据”的消息发送给第一处理器,第一处理器通过内部总线从第一环状缓冲模块接收读数据,从而实现由主芯片从从芯片读取读数据的操作。

通过上述方式,本发明通过通信接口中的控制模块和环状缓冲模块来实现读数据在主从芯片之间的传输,大大降低主从芯片中处理器的占用率的同时提高了主芯片从从芯片读取读数据的效率。

以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1