CN103516627B - 多芯片通信中数据包发送、接收的方法和装置 - Google Patents

多芯片通信中数据包发送、接收的方法和装置 Download PDF

Info

Publication number
CN103516627B
CN103516627B CN201210205373.3A CN201210205373A CN103516627B CN 103516627 B CN103516627 B CN 103516627B CN 201210205373 A CN201210205373 A CN 201210205373A CN 103516627 B CN103516627 B CN 103516627B
Authority
CN
China
Prior art keywords
chip
data packet
transmitting terminal
signal
data
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
Application number
CN201210205373.3A
Other languages
English (en)
Other versions
CN103516627A (zh
Inventor
陈威
曹臻
邱昊
肖聪
高伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
Nanjing ZTE New Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing ZTE New Software Co Ltd filed Critical Nanjing ZTE New Software Co Ltd
Priority to CN201210205373.3A priority Critical patent/CN103516627B/zh
Publication of CN103516627A publication Critical patent/CN103516627A/zh
Application granted granted Critical
Publication of CN103516627B publication Critical patent/CN103516627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种多芯片通信中数据包发送的方法和装置,该方法包括:源端芯片对应的发送端缓存所述源端芯片待发送的数据包,所述数据包中携带多个目的端芯片的指示信息;所述发送端解析所述数据包,根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;所述发送端接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;所述发送端接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送缓存的所述数据包。通过采用本发明实施例的提供的方法和装置,对相同数据包,源端芯片可以同时向多个目的端传输数据包,提高传输效率。

Description

多芯片通信中数据包发送、接收的方法和装置
技术领域
本发明涉及一种芯片互联通信的技术,特别是涉及多芯片通信中数据包发送、接收的方法和装置。
背景技术
随着计算机***的功能的日趋强大和性能的不断提升,需要板内或板间多芯片协作,以完成更加复杂的业务需求。有限的芯片互联数据端口中承载越来越多类型的数据业务,使得业务调度和连接关系越来越复杂。如何使用简单低耗的方法实现高效灵活的芯片互联通信,是实现多芯片协作的关键。
现有技术提供一种芯片互联通信的方法。该方法是将业务数据切割打包,采用包交换的方式进行多芯片间的互联通信,通过在芯片间点对点使用握手信号进行交换控制,避免了复杂的调度和存储资源的大量消耗。但是这种方法传输效率较低。在芯片间互联通信时,会存在大量点对多点传输数据的情况。例如,当单个芯片需要向M(M>1)个芯片发送相同数据时,如果使用这种方法,考虑芯片之间的传输路径无阻塞的情况,总共需要M次点对点传输,即M个传输周期。采用这种方法时较低的传输效率成为多芯片***性能的瓶颈。
发明内容
本发明实施例提供一种多芯片通信中数据包发送、接收的方法和装置以及多芯片通信的装置,对于芯片间点对多点数据传输达到有效减少传输时间的目的。
为实现上述目的,本发明实施例提供一种多芯片通信中数据包发送的方法,包括:
源端芯片对应的发送端缓存所述源端芯片待发送的数据包,所述数据包中携带多个目的端芯片的指示信息;
所述发送端解析所述数据包,根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;
所述发送端接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;
所述发送端接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送缓存的所述数据包。
所述指示信息包括预设位置的比特bit,每一比特对应一个目的端芯片,所述比特的取值指示是否向所述比特对应的目的端芯片发送所述数据包。
所述发送端解析所述数据包,根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号之后,还包括:
所述发送端记录与每一目的端芯片对应的请求信号,在向发送所述响应信号的目的端芯片发送所述就绪信号后且传输数据包完成后清除对应的所述请求信号;
如果预设时间内没有收到与记录的所述请求信号对应的响应信号,丢弃所述数据包并记录。
所述发送端接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号包括:
所述发送端记录所述响应信号,在向发送所述响应信号的目的端芯片传输所述数据包完成后删除记录的所述响应信号;
当向发送所述响应信号的目的端芯片传输所述数据包失败时,所述发送端重新向发送所述响应信号的目的端芯片传输所述数据包,当传输次数达到预设值时丢弃所述数据包并记录。
本发明实施例还提供一种多芯片通信中数据包接收的方法,包括:
当目的芯片的接收端接收多个请求信号时,所述接收端选择其中一个请求信号发送响应信号;
所述接收端接收与所述响应信号对应的就绪信号,并发送读使能信号,接收发送端根据所述读使能信号发送的数据包。
所述接收端选择其中一个请求信号发送响应信号包括:
当芯片的数量为N时,所述接收端设置循环计数器在未进行数据传输时在m到m+N-1之间循环,m为非零整数,m到m+N-1分别对应一个源端芯片;当进行数据传输时,所述计数器暂停循环;
如果当前循环计数器的取值为k,m≤k≤(m+N-1),则选择k对应的源端芯片的发送端发送的请求信号。
所述发送读使能信号包括:
在所述发送端向所述接收端传输的数据包长度小于最小数据包长度时,所述接收端从数据包中得到数据包长度信息;
根据所述数据包长度信息和所述就绪信号向所述发送端发送所述读使能信号。
接收所述发送端根据所述读使能信号发送的数据包之后,还包括:所述接收端缓存所述数据包,并向所述目的端芯片传输所述数据包。
本发明实施例还提供一种多芯片通信中数据包发送的装置,其特征在于,包括:
发送端数据接收控制模块,用于控制源端芯片将数据包写入发送端数据缓存模块;
所述发送端数据缓存模块,用于缓存所述数据包,所述数据包中携带多个目的端芯片的指示信息;
发送端数据解析模块,用于解析所述数据包得到所述多个目的端芯片的指示信息;
发送端请求产生模块,用于根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;
发送端响应处理模块,用于接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;
发送端数据发送模块,用于接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送所述发送端数据缓存模块缓存的所述数据包。
所述指示信息包括预设位置的比特bit,每一比特对应一个目的端芯片,所述比特的取值指示是否向所述比特对应的目的端芯片发送所述数据包。
所述发送端请求产生模块还用于:
记录与每一目的端芯片对应的请求信号,在所述发送端响应处理模块向发送所述响应信号的目的端芯片发送所述就绪信号后且传输数据包完成后清除对应的所述请求信号;
如果预设时间内没有收到与记录的所述请求信号对应的响应信号,丢弃所述数据包并记录。
所述发送端响应处理模块还用于:记录所述响应信号,在所述发送端数据发送模块向发送所述响应信号的目的端芯片传输所述数据包完成后删除记录的所述响应信号;
所述发送端数据发送模块还用于:当向发送所述响应信号的目的端芯片传输所述数据包失败时,重新向发送所述响应信号的目的端芯片传输所述数据包,当传输次数达到预设值时丢弃所述数据包并记录。
本发明实施例还提供一种多芯片通信中数据包接收的装置,包括:
接收端请求仲裁模块,用于当目的芯片的接收端接收多个请求信号时,选择其中一个请求信号;
接收端响应产生模块,用于根据所述接收端请求仲裁模块选择的请求信号发送响应信号;
接收端数据控制选择模块,用于接收与所述响应信号对应的就绪信号,并发送读使能信号,接收发送端根据所述读使能信号发送的数据包。
该装置还包括循环计数模块,用于当芯片的数量为N时,在未发生数据传输时在m到m+N-1之间循环,m为非零整数,m到m+N-1分别对应一个源端芯片;当发生数据传输时,暂停循环;
所述接收端请求仲裁模块具体用于:如果当前循环计数器的取值为k,m≤k≤(m+N-1),则选择k对应的源端芯片的发送端发送的请求信号。
所述接收端数据控制选择模块具体用于:在所述发送端向所述接收端传输的数据包长度小于最小数据包长度时,从数据包中得到数据包长度信息;根据所述数据包长度信息和所述就绪信号向所述发送端发送所述读使能信号。
该装置还包括:
接收端数据缓存模块,用于缓存所述接收端数据控制选择模块接收的数据包;
接收端数据发送控制模块,用于根据所述接收端数据缓存模块的数据包缓存状态向所述目的端芯片发送传输指示,传输所述数据包。
本发明实施例还提供一种多芯片通信的装置,每一芯片配置一发送端和一接收端,每一发送端连接所有接收端,每一接收端连接所有发送端,其中
所述发送端包括:
发送端数据接收控制模块,用于控制源端芯片将数据包写入发送端数据缓存模块;
所述发送端数据缓存模块,用于缓存所述数据包,所述数据包中携带多个目的端芯片的指示信息;
发送端数据解析模块,用于解析所述数据包得到所述多个目的端芯片的指示信息;
发送端请求产生模块,用于根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;
发送端响应处理模块,用于接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;
发送端数据发送模块,用于接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送所述发送端数据缓存模块缓存的所述数据包;
所述接收端包括:
接收端请求仲裁模块,用于当目的芯片的接收端接收多个请求信号时,选择其中一个请求信号;
接收端响应产生模块,用于根据所述接收端请求仲裁模块选择的请求信号发送响应信号;
接收端数据控制选择模块,用于接收与所述响应信号对应的就绪信号,并发送读使能信号,接收发送端根据所述读使能信号发送的数据包。
通过采用本发明实施例的提供的方法和装置,当源端芯片向多个目的端芯片发送数据包时,源端芯片对应的发送端解析数据包,根据数据包中携带的目的端芯片的指示信息向多个目的端芯片发送请求信号,接收对该请求信号的响应信号,向发送该响应信号的目的端芯片发送就绪信号,并接收与该就绪信号对应的数据读取信号,向发送该数据读取信号的目的端芯片发送上述数据包,通过上述过程,对相同数据包,源端芯片可以同时向多个目的端传输数据包,可以有效减少数据包传输时间,提高传输效率,单个芯片向M(M>1)个芯片发送相同数据,考虑无阻塞,仅需1个传输周期,是未使用本发明效率的M倍。
附图说明
图1是本发明实施例提供的多芯片通信中数据包发送的方法的流程示意图;
图2是本发明实施例提供的多芯片通信中数据包接收的方法的流程示意图;
图3a是芯片个数为4时芯片之间的连接示意图;
图3b是芯片0向芯片1、2、3发送相同的数据包的过程示意图;
图4是本发明实施例提供的多芯片通信中数据包发送的装置的结构示意图;
图5是本发明实施例提供的多芯片通信中数据包接收的装置的结构示意图;
图6是本发明实施例提供的多芯片通信的装置的参考示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供一种多芯片通信中数据包发送的方法,如图1所示,包括以下步骤:
步骤101,源端芯片对应的发送端缓存该源端芯片待发送的数据包,该数据包中携带多个目的端芯片的指示信息。
发送端可以配置到源端芯片上或者独立于源端芯片之外。发送端配置缓存部件用于缓存数据包,具体的,该缓存部件可以采用双缓存区存储数据。发送端检测到源端芯片的发送请求后,检测缓存部件的状态,当缓存部件中有空的缓存区时则向源端芯片发送指示信息指示源端芯片将数据包写入空的缓存区。在缓存区内缓存数据包时必须使数据包携带目的端芯片的指示信息,该指示信息存储在预先确定的特定位置,例如数据包缓存的开始位置。目的端芯片的指示信息具体可以采用多种方式,本实施例提供一种图标方式,具体的,使用预设位置的比特(bit),每一比特对应一个目的端芯片,比特的取值指示是否向该比特对应的目的端芯片发送数据包,例如,比特的取值为0或1,0表示向该比特对应的目的端芯片发送数据包,1表示不向该比特对应的目的端芯片发送数据包。
另外,由于各个芯片时钟独立,甚至同一芯片的发送时钟和接收时钟也不相同,需将各时钟域在互联时进行统一,本实施例中,缓存的写入侧为源端芯片时钟域,读出侧互联***时钟域。缓存部件的每一个缓存区的容量设置为最大数据包容量,缓存整个数据包,每个缓存区需标记空满状态:当缓存区内写入整个数据包后,该缓存区即标记为满,该缓存区内的数据被发送到所有目的端芯片后标记为空。而且,源端芯片写入与目的接收端读出可以在多个缓存区之间交替进行,互不干扰,从而保证无阻塞情况下不间断数据流程。
步骤102,发送端解析数据包,根据目的端芯片的指示信息向多个目的端芯片发送请求信号。
发送端知晓任意一个缓存区标记为满时,解析该缓存区的数据包。解析的位置为上一步骤中的特定位置,例如在数据包开始处,解析得到对应的目的端芯片指示信息,例如目的端芯片的端口。优选的,发送端可以同时向解析得到的多个目的端芯片的端口发送请求信号。
步骤103,发送端接收对请求信号的响应信号,向发送响应信号的目的端芯片发送就绪信号。
优选的,发送端记录与每一目的端芯片对应的请求信号,在向发送响应信号的目的端芯片发送就绪信号后且传输数据包完成后清除对应的请求信号;如果预设时间内没有收到与记录的请求信号对应的响应信号,丢弃所述数据包并记录。
优选的,发送端向所有响应的接收端发送就绪信号,只有回复了响应的接收端才能够接收到就绪信号。并且,发送端对响应信号进行记录,在向发送该响应信号的目的端芯片传输数据包完成后删除记录的响应信号;当向发送该响应信号的目的端芯片传输数据包失败时,重新向发送该响应信号的目的端芯片传输数据包,当传输次数达到预设值时丢弃所述数据包并记录。
步骤104,发送端接收与就绪信号对应的数据读取信号,向发送数据读取信号的目的端芯片发送缓存的数据包。
发送端根据由读使能信号控制从缓存中将数据包读出,送到所有目的端芯片对应的数据总线上。所有接收到就绪信号的目的接收端可以同时接收该发送端发送的数据包,传输结束。
通过本发明实施例的上述数据包的发送方法,单个源芯片可以同时向多个目的芯片传输数据包,提高了多芯片间数据传输的效率。
本发明实施例还提供一种多芯片通信中数据包接收的方法,如图2所示,包括:
步骤201,当目的芯片的接收端接收多个请求信号时,接收端选择其中一个请求信号发送响应信号。
该接收端可以是目的芯片的一部分或者独立于目的芯片之外。
当芯片的数量为N(N为自然数)时,接收端设置循环计数器在未进行数据传输时在m到m+N-1之间循环,其中,m为整数,m到m+N-1分别对应一个源端芯片;当进行数据传输时,计数器暂停循环;如果当前循环计数器的取值为k,m≤k≤(m+N-1),则选择k对应的源端芯片的发送端发送的请求信号。当然,为了保证数据有效存储,在选择请求信号时还可以考虑接收数据包的缓存区的状态,即只在缓存区有空余的情况下选择请求信号。例如,对于数量为N的芯片阵列,接收端使用一个循环计数器在0到N-1中计数,未进行发送端到接收端数据传输状态下,每个时钟周期计数器都增加1,在发送端到接收端数据传输时,循环计数器值保持不动;0到N-1分别对应第1个到第N个芯片,若当前计数值为0,且数据缓冲有空区域,则第1个芯片对应的请求就被选中。采用这种循环机制,使各请求信号机会均等,可以保证所有请求都会被处理。
需要说明,上述请求信号的选择方法只是一种具体示例,还可以采用其他方法,例如设置各芯片的优先级,优先选择高优先级芯片发送的请求信号。
步骤202,接收端接收与响应信号对应的就绪信号,并发送读使能信号,接收发送端根据读使能信号发送的数据包。
接收端接收与响应信号对应的就绪信号后,发送读使能信号,源端芯片将缓存区的整个数据包向接收端发送。另外,还可以由接收端发送对读取数据包长度的指示信息,此时接收端在接收的数据包长度小于最小数据包长度(该最小数据包长度根据实际传输的数据包情况设定)时,从接收到的数据包中得到数据包长度信息,根据数据包长度信息和就绪信号发送读使能信号,这种情况下,接收端可以发送两次读使能信号,第一次用于指示发送端发送数据包,第二次用于指示发送数据包的长度;或者,源端芯片在接收到响应信号后可以自发发送数据包,接收端在得到要读取的数据包长度信息后发送读使能信号。
本发明实施例还提供一种多芯片通信的方法,应用于板内或板间多个芯片之间的数据包传输,每一芯片包括对应的发送端和接收端,每一发送端连接所有接收端,每一接收端连接所有发送端。芯片的数据包的发送通过其对应的发送端实现,数据包的接收通过其对应的接收端实现。其中,当任意发送端向多个接收端发送数据包时,该任意发送端可以采用上述步骤101-104描述的过程同时向多个接收端发送数据包,其具体过程此处不再赘述;当任意接收端同时接收多个发送端发送的数据包时,该任意接收端可以采用上述步骤201-202描述的过程同时向多个接收端发送数据包,其具体过程此处不再赘述。
下面通过一具体示例对本发明上述方法进行介绍。
以需要互联通信的芯片个数为4为例,芯片的编号分别为0、1、2、3。芯片0需要向芯片1、2、3发送相同的数据包,芯片0具有缓存区0和1,以最大包长为2048个字节为例,每个缓存区容量则为2048个字节,以保证可以缓存整包数据。对于更多数量的芯片互联通信只需进行相同操作的简单扩大。如图3a所示,每一发送端连接所有接收端,每一接收端连接所有发送端,同一芯片发送端和接收端可以互联以支持芯片数据自环。
如图3b所示,芯片0向芯片1、2、3发送相同的数据包的过程包括:
步骤301,芯片0对应的发送端检测到芯片0的数据包发送请求,如果此时检测到缓存区0为空,发送端向芯片0发送传送指示信号。
步骤302,芯片0收到传送指示信号后,将数据包写入缓存区0。
写入缓存区0的数据包的前4bit为1110,指示该数据包需要发送到芯片1、芯片2、芯片3。数据端口位宽以8bit为例,剩余4bit可以填入源端芯片标识,为0001。第2、3字节填入包的长度,以512为例。其余510个字节填充包的内容。
芯片数据接口时钟以频率245.76MHz为例,则选择发送端时钟频率为245.76MHz,但这两个时钟相位不同,为保证数据采样正确,使用芯片数据接收时钟作为缓存写操作时钟,使用发送端时钟作为缓存读操作时钟。
数据包写入缓存区0完成后,如果芯片0有下一数据包需要传输,则下一数据包可写入缓存区1,不影响缓存区0的数据发送操作。数据包写入缓存区0完成后,将缓存区0标记为满状态。
步骤303,发送端在检测到缓存区0状态为满后,解析数据包从前4bit解析出目的芯片编号为1、2、3,向对应接收端1、2、3同时发送请求信号。
该请求信号需要被记录,即发送端记录与每一目的端芯片对应的请求信号。在向发送响应信号的目的端芯片发送就绪信号后且传输数据包完成后清除对应的请求信号;如果预设时间内没有收到与记录的请求信号对应的响应信号,丢弃所述数据包并记录。
步骤304,发送端根据接收到接收端1、2、3发回的响应信号,向接收端1、2、3发送就绪信号。
发送端向所有响应的接收端发送就绪信号,只有回复了响应的接收端才能够接收到就绪信号,例如如果接收端1没有发送响应信号,则就绪信号指向接收端2和3发送。并且,发送端对响应信号进行记录,在向接收端1、2、3传输数据包完成后删除记录的响应信号;当向接收端1、2、3中的任意,例如接收端2传输数据包失败时,发送端重新向发送该接收端传输数据包,当传输次数达到预设值时丢弃所述数据包并记录。
步骤305,发送端使用接收端1、2、3发送的读使能信号将缓存区0中的数据包读出,发送到接收端1、2、3的接收数据总线上。
接收端1、2、3同时接收到就绪信号,同时接收数据总线上的数据包,该数据包的传输结束。
接收端1、2、3均配置仲裁装置使用0~3的循环计数器。为方便表述,以下以接收端1为例进行说明,其他接收端2、3的处理过程同接收端1类似,可参考接收端1的处理过程。
步骤306,接收端1计数器每个245.76MHz时钟周期数值增加1,当接收到请求信号且循环计数器数值为0时,且接收端数据缓存有空区域时,芯片0发送端的请求就被选中。需要说明,在发送端到接收端进行数据传输时,循环计数器计数保持不变。
步骤307,接收端1向芯片0发送端发送响应信号。
此时如果接收到其他请求,接收端1由仲裁装置保证不会响应其他请求。
步骤308,接收端1接收芯片0发送端发送的就绪信号,选择第0路输入信号,从第2、3字节中解析出数据包的长度为512,据此确定发送给发送端的读使能信号的长度为512,确定读使能信号并发送给芯片0发送端,并控制数据写入接收端的缓存。
步骤309,接收端1的缓存区达到满状态后,接收端1向对应的芯片1发送传输指示,触发芯片1读取数据。由于双缓存结构,读取数据的过程不影响写过程,接收端1继续接收芯片0的发送端发送的下一数据包。
通过本发明实施例的上述数据包的发送方法,单个源芯片可以同时向多个目的芯片传输数据包,提高了多芯片间数据传输的效率。
基于与上述多芯片通信中数据包发送的方法实施例相同的技术构思,本发明实施例还提供一种多芯片通信中数据包发送的装置,如图4所示,包括:
发送端数据接收控制模块11,用于控制源端芯片将数据包写入发送端数据缓存模块12;
所述发送端数据缓存模块12,用于缓存所述数据包,所述数据包中携带多个目的端芯片的指示信息;
发送端数据解析模块13,用于解析所述数据包得到所述多个目的端芯片的指示信息;
发送端请求产生模块14,用于根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;
发送端响应处理模块15,用于接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;
发送端数据发送模块16,用于接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送所述发送端数据缓存模块12缓存的所述数据包。
优选的,所述指示信息包括预设位置的比特,每一比特对应一个目的端芯片,所述比特的取值指示是否向所述比特对应的目的端芯片发送所述数据包。
优选的,所述发送端请求产生模块14还用于:
记录与每一目的端芯片对应的请求信号,在所述发送端响应处理模块15向发送所述响应信号的目的端芯片发送所述就绪信号后且传输数据包完成后清除对应的所述请求信号;
如果预设时间内没有收到与记录的所述请求信号对应的响应信号,丢弃所述数据包并记录。
优选的,所述发送端响应处理模块15还用于:记录所述响应信号,在所述发送端数据发送模块16向发送所述响应信号的目的端芯片传输所述数据包完成后删除记录的所述响应信号;
所述发送端数据发送模块16还用于:当向发送所述响应信号的目的端芯片传输所述数据包失败时,重新向发送所述响应信号的目的端芯片传输所述数据包,当传输次数达到预设值时丢弃所述数据包并记录。
基于与上述多芯片通信中数据包接收的方法实施例相同的技术构思,本发明实施例还提供一种多芯片通信中数据包接收的装置,如图5所示,包括:
接收端请求仲裁模块21,用于当目的芯片的接收端接收多个请求信号时,选择其中一个请求信号;
接收端响应产生模块22,用于根据所述接收端请求仲裁模块选择的请求信号发送响应信号;
接收端数据控制选择模块23,用于接收与所述响应信号对应的就绪信号,并发送读使能信号,接收发送端根据所述读使能信号发送的数据包。
优选的,上述装置还包括循环计数模块24,用于当芯片的数量为N时,在未发生数据传输时在m到m+N-1之间循环,m为非零整数,m到m+N-1分别对应一个源端芯片;当发生数据传输时,暂停循环;
所述接收端请求仲裁模块21具体用于:如果当前循环计数模块24的取值为k,m≤k≤(m+N-1),则选择k对应的源端芯片的发送端发送的请求信号。
优选的,所述接收端数据控制选择模块23具体用于:在所述发送端向所述接收端传输的数据包长度小于最小数据包长度时,从数据包中得到数据包长度信息;根据所述数据包长度信息和所述就绪信号向所述发送端发送所述读使能信号。
优选的,该装置还包括接收端数据缓存模块,用于缓存所述接收端数据控制选择模块接收的数据包;接收端数据发送控制模块,用于根据所述接收端数据缓存模块的数据包缓存状态向所述目的端芯片发送传输指示,传输所述数据包。
基于与上述多芯片通信的方法实施例相同的技术构思,本发明实施例还提供一种多芯片通信的装置,其中,每一芯片配置一发送端和一接收端,每一发送端连接所有接收端,每一接收端连接所有发送端,该发送端相当于上述多芯片通信中数据包发送的装置,该接收端相当于上述多芯片通信中数据包接收的装置。该发送端和接收端分别可以配置到芯片内或芯片外,参考图6所示,所述发送端包括:
发送端数据接收控制模块,用于控制源端芯片将数据包写入发送端数据缓存模块;
所述发送端数据缓存模块,用于缓存所述数据包,所述数据包中携带多个目的端芯片的指示信息;
发送端数据解析模块,用于解析所述数据包得到所述多个目的端芯片的指示信息;
发送端请求产生模块,用于根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;
发送端响应处理模块,用于接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;
发送端数据发送模块,用于接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送所述发送端数据缓存模块缓存的所述数据包;
所述接收端包括:
接收端请求仲裁模块,用于当目的芯片的接收端接收多个请求信号时,选择其中一个请求信号;
接收端响应产生模块,用于根据所述接收端请求仲裁模块选择的请求信号发送响应信号;
接收端数据控制选择模块,用于接收与所述响应信号对应的就绪信号,并发送读使能信号,接收发送端根据所述读使能信号发送的数据包。
接收端还可以包括接收端数据缓存模块,用于缓存数据包,将***时钟域与芯片时钟域隔离,保证数据采样正确。可以采用双缓冲存储数据,2个缓冲区在***侧和芯片侧切换,保证不间断的数据传输流程。
接收端还可以包括接收端数据发送控制模块,与目的端芯片外部接口相连,用于控制接收端数据缓存模块将数据包发送给目的端芯片。
通过本发明实施例的上述数据包的发送方法,单个源芯片可以同时向多个目的芯片传输数据包,提高了多芯片间数据传输的效率。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

Claims (17)

1.一种多芯片通信中数据包发送的方法,其特征在于,包括:
源端芯片对应的发送端缓存所述源端芯片待发送的数据包,所述数据包中携带多个目的端芯片的指示信息;
所述发送端解析所述数据包,根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;
所述发送端接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;
所述发送端接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送缓存的所述数据包;
其中,每一所述源端芯片或所述目的端芯片配置一发送端和一接收端,每一发送端连接所有接收端,每一接收端连接所有发送端。
2.如权利要求1所述的方法,其特征在于:
所述指示信息包括预设位置的比特bit,每一比特对应一个目的端芯片,所述比特的取值指示是否向所述比特对应的目的端芯片发送所述数据包。
3.如权利要求1所述的方法,其特征在于,所述发送端解析所述数据包,根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号之后,还包括:
所述发送端记录与每一目的端芯片对应的请求信号,在向发送所述响应信号的目的端芯片发送所述就绪信号后且传输数据包完成后清除对应的所述请求信号;
如果预设时间内没有收到与记录的所述请求信号对应的响应信号,丢弃所述数据包并记录。
4.如权利要求1所述的方法,其特征在于,所述发送端接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号包括:
所述发送端记录所述响应信号,在向发送所述响应信号的目的端芯片传输所述数据包完成后删除记录的所述响应信号;
当向发送所述响应信号的目的端芯片传输所述数据包失败时,所述发送端重新向发送所述响应信号的目的端芯片传输所述数据包,当传输次数达到预设值时丢弃所述数据包并记录。
5.一种多芯片通信中数据包接收的方法,其特征在于,包括:
当目的端芯片的接收端接收多个请求信号时,所述接收端选择其中一个请求信号,向发送所述请求信号的发送端发送响应信号;
所述接收端接收与所述响应信号对应的就绪信号,并向所述发送端发送读使能信号,接收所述发送端根据所述读使能信号发送的数据包;
其中,所述多个请求信号是源端芯片的发送端根据多个目的端芯片的指示信息向多个目的端芯片发送的,每一所述源端芯片或所述目的端芯片配置一发送端和一接收端,每一发送端连接所有接收端,每一接收端连接所有发送端。
6.如权利要求5所述的方法,其特征在于,所述接收端选择其中一个请求信号发送响应信号包括:
当芯片的数量为N时,所述接收端设置循环计数器在未进行数据传输时在m到m+N-1之间循环,m为整数,m到m+N-1分别对应一个源端芯片;当进行数据传输时,所述循环计数器暂停循环;
如果当前循环计数器的取值为k,m≤k≤(m+N-1),则选择k对应的源端芯片的发送端发送的请求信号。
7.如权利要求5所述的方法,其特征在于,所述发送读使能信号包括:
在所述发送端向所述接收端传输的数据包长度小于最小数据包长度时,所述接收端从数据包中得到数据包长度信息;
根据所述数据包长度信息和所述就绪信号向所述发送端发送所述读使能信号。
8.如权利要求5所述的方法,其特征在于,接收所述发送端根据所述读使能信号发送的数据包之后,还包括:
所述接收端缓存所述数据包,并向所述目的端芯片传输所述数据包。
9.一种多芯片通信中数据包发送的装置,其特征在于,包括:
发送端数据接收控制模块,用于控制源端芯片将数据包写入发送端数据缓存模块;
所述发送端数据缓存模块,用于缓存所述数据包,所述数据包中携带多个目的端芯片的指示信息;
发送端数据解析模块,用于解析所述数据包得到所述多个目的端芯片的指示信息;
发送端请求产生模块,用于根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;
发送端响应处理模块,用于接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;
发送端数据发送模块,用于接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送所述发送端数据缓存模块缓存的所述数据包;
其中,每一所述源端芯片或所述目的端芯片配置一发送端和一接收端,每一发送端连接所有接收端,每一接收端连接所有发送端。
10.如权利要求9所述的装置,其特征在于,所述指示信息包括预设位置的比特bit,每一比特对应一个目的端芯片,所述比特的取值指示是否向所述比特对应的目的端芯片发送所述数据包。
11.如权利要求9所述的装置,其特征在于,所述发送端请求产生模块还用于:
记录与每一目的端芯片对应的请求信号,在所述发送端响应处理模块向发送所述响应信号的目的端芯片发送所述就绪信号后且传输数据包完成后清除对应的所述请求信号;
如果预设时间内没有收到与记录的所述请求信号对应的响应信号,丢弃所述数据包并记录。
12.如权利要求9所述的装置,其特征在于,所述发送端响应处理模块还用于:记录所述响应信号,在所述发送端数据发送模块向发送所述响应信号的目的端芯片传输所述数据包完成后删除记录的所述响应信号;
所述发送端数据发送模块还用于:当向发送所述响应信号的目的端芯片传输所述数据包失败时,重新向发送所述响应信号的目的端芯片传输所述数据包,当传输次数达到预设值时丢弃所述数据包并记录。
13.一种多芯片通信中数据包接收的装置,其特征在于,包括:
接收端请求仲裁模块,用于当目的芯片的接收端接收多个请求信号时,选择其中一个请求信号;
接收端响应产生模块,用于根据所述接收端请求仲裁模块选择的请求信号发送响应信号;
接收端数据控制选择模块,用于接收与所述响应信号对应的就绪信号,并发送读使能信号,接收发送端根据所述读使能信号发送的数据包;
其中,所述多个请求信号是源端芯片的发送端根据多个目的端芯片的指示信息向多个目的端芯片发送的,每一所述源端芯片或所述目的端芯片配置一发送端和一接收端,每一发送端连接所有接收端,每一接收端连接所有发送端。
14.如权利要求13所述的装置,其特征在于,还包括循环计数模块,用于当芯片的数量为N时,在未发生数据传输时在m到m+N-1之间循环,m为非零整数,m到m+N-1分别对应一个源端芯片;当发生数据传输时,暂停循环;
所述接收端请求仲裁模块具体用于:如果当前循环计数模块的取值为k,m≤k≤(m+N-1),则选择k对应的源端芯片的发送端发送的请求信号。
15.如权利要求13所述的装置,其特征在于,所述接收端数据控制选择模块具体用于:在所述发送端向所述接收端传输的数据包长度小于最小数据包长度时,从数据包中得到数据包长度信息;根据所述数据包长度信息和所述就绪信号向所述发送端发送所述读使能信号。
16.如权利要求13所述的装置,其特征在于,还包括:
接收端数据缓存模块,用于缓存所述接收端数据控制选择模块接收的数据包;
接收端数据发送控制模块,用于根据所述接收端数据缓存模块的数据包缓存状态向所述目的端芯片发送传输指示,传输所述数据包。
17.一种多芯片通信的装置,其特征在于,每一芯片配置一发送端和一接收端,每一发送端连接所有接收端,每一接收端连接所有发送端,其中
所述发送端包括:
发送端数据接收控制模块,用于控制源端芯片将数据包写入发送端数据缓存模块;
所述发送端数据缓存模块,用于缓存所述数据包,所述数据包中携带多个目的端芯片的指示信息;
发送端数据解析模块,用于解析所述数据包得到所述多个目的端芯片的指示信息;
发送端请求产生模块,用于根据所述目的端芯片的指示信息向所述多个目的端芯片发送请求信号;
发送端响应处理模块,用于接收对所述请求信号的响应信号,向发送所述响应信号的目的端芯片发送就绪信号;
发送端数据发送模块,用于接收与所述就绪信号对应的数据读取信号,向发送所述数据读取信号的目的端芯片发送所述发送端数据缓存模块缓存的所述数据包;
所述接收端包括:
接收端请求仲裁模块,用于当目的芯片的接收端接收多个请求信号时,选择其中一个请求信号;
接收端响应产生模块,用于根据所述接收端请求仲裁模块选择的请求信号发送响应信号;
接收端数据控制选择模块,用于接收与所述响应信号对应的就绪信号,并发送读使能信号,接收发送端根据所述读使能信号发送的数据包。
CN201210205373.3A 2012-06-20 2012-06-20 多芯片通信中数据包发送、接收的方法和装置 Active CN103516627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210205373.3A CN103516627B (zh) 2012-06-20 2012-06-20 多芯片通信中数据包发送、接收的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210205373.3A CN103516627B (zh) 2012-06-20 2012-06-20 多芯片通信中数据包发送、接收的方法和装置

Publications (2)

Publication Number Publication Date
CN103516627A CN103516627A (zh) 2014-01-15
CN103516627B true CN103516627B (zh) 2018-08-21

Family

ID=49898687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210205373.3A Active CN103516627B (zh) 2012-06-20 2012-06-20 多芯片通信中数据包发送、接收的方法和装置

Country Status (1)

Country Link
CN (1) CN103516627B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111382109B (zh) * 2018-12-29 2022-12-09 上海寒武纪信息科技有限公司 数据通信方法、装置及相关产品
CN111382110A (zh) * 2018-12-29 2020-07-07 上海寒武纪信息科技有限公司 接收装置、神经网络处理器芯片、组合装置以及电子设备
CN111382858A (zh) * 2018-12-29 2020-07-07 上海寒武纪信息科技有限公司 数据发送方法、装置及相关产品
CN111124997B (zh) * 2019-12-25 2021-07-23 海光信息技术股份有限公司 数据发送方法、接收方法及装置、处理器芯片、服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
US6145041A (en) * 1998-04-24 2000-11-07 Alcatel Usa Sourcing, Lp Remote multi-level control bus
CN102163184A (zh) * 2011-03-22 2011-08-24 中兴通讯股份有限公司 一种基于专用多芯片串行互连接口的主从传输***及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138575A1 (en) * 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
US6145041A (en) * 1998-04-24 2000-11-07 Alcatel Usa Sourcing, Lp Remote multi-level control bus
CN102163184A (zh) * 2011-03-22 2011-08-24 中兴通讯股份有限公司 一种基于专用多芯片串行互连接口的主从传输***及方法

Also Published As

Publication number Publication date
CN103516627A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
US7596641B2 (en) System and method for transmitting data packets in a computer system having a memory hub architecture
US20200393965A1 (en) Memory Access Technology and Computer System
US9929972B2 (en) System and method of sending data via a plurality of data lines on a bus
CN104135741A (zh) 蓝牙低功耗通信的方法、蓝牙设备和***
CN103516627B (zh) 多芯片通信中数据包发送、接收的方法和装置
CN110334040B (zh) 一种星载固态存储***
EP1591906A1 (en) Efficient data transfer from an ASIC to a host using DMA
WO2009000794A1 (en) Data modification module in a microcontroller
WO2014092551A1 (en) System and method for optimal memory management between cpu and fpga unit
CN102916902A (zh) 数据存储方法及装置
CN112328523B (zh) 传输双倍速率信号的方法、装置及***
JP2002281063A (ja) パケットスイッチ及びそれに用いるパケットメモリアクセス方法
CN101938453A (zh) 一种实现中央处理器与以太网进行数据传输的装置与方法
CN103268278B (zh) 支持多核处理器的sram控制器及其跟踪信息处理方法
CN105718401B (zh) 一种多路smii信号到一路mii信号的复用方法及***
US10461957B2 (en) System and method for supporting both bulk storage and Ethernet communications
JP2022096389A (ja) 半導体集積回路、半導体記憶装置、および制御方法
CN112765066B (zh) 用于serdes接口的桥接模块
CN112637027B (zh) 基于uart的帧边界界定装置及发送方法和接收方法
JP4904136B2 (ja) 双方向データ通信用単一ポートメモリ制御装置およびその制御方法
CN101674335A (zh) 具有多个传输端口的单一网络接口装置与其方法
JP3880415B2 (ja) パケット交換装置
KR100785892B1 (ko) 양방향 데이터 통신용 단일 포트 메모리 제어 장치 및 그제어 방법
CN103544123A (zh) Sdram控制器及对sdram存储空间的访问方法
CN115658576A (zh) PCIe和RapidIO复合任务包传递***及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20180518

Address after: 210012 No. 68 Bauhinia Road, Yuhuatai District, Jiangsu, Nanjing

Applicant after: Nanjing Zhongxing New Software Co., Ltd.

Address before: 518057 Nanshan District high tech Industrial Park, Shenzhen, Guangdong, Ministry of justice, Zhongxing Road, South China road.

Applicant before: ZTE Corporation

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191106

Address after: 518057 Nanshan District science and Technology Industrial Park, Guangdong high tech Industrial Park, ZTE building

Patentee after: ZTE Communications Co., Ltd.

Address before: Yuhuatai District of Nanjing City, Jiangsu province 210012 Bauhinia Road No. 68

Patentee before: Nanjing Zhongxing New Software Co., Ltd.

TR01 Transfer of patent right