数据传输方法及装置制造方法及图纸

技术编号:26970131 阅读:28 留言:0更新日期:2021-01-05 23:59
本申请实施例提供了一种数据传输方法及装置,方法包括:发送BD表读取模块中的传输层包TLP发送引擎与发送仲裁单元相通信,经PCIE总线发出第一BD读取指令;发送BD表读取模块中的TLP接收引擎接收并经PCIE总线返回的连续多个BD,并存入第一FIFO队列;发送报文读取模块中的TLP发送引擎从第一FIFO队列获得连续多个BD的每个BD,并根据BD与发送仲裁单元相通信,经PCIE总线发出数据读取指令;发送报文读取模块中的TLP接收引擎接收经PCIE总线返回的数据,并将数据存入发送缓冲区。第一BD读取指令和数据读取指令是事先生成的,在经过与发送仲裁单元的通信之后便可以经PCIE总线发出,与现有技术相比,省去了切换通道后进行准备工作耗费的时间,提高了PCIE总线的带宽利用率。

【技术实现步骤摘要】
数据传输方法及装置
本申请涉及通信
,具体而言,涉及一种数据传输方法及装置。
技术介绍
现有技术在利用高速串行计算机扩展总线标准(PeripheralComponentInterconnect-express,简称PCIE)总线的多通道直接内存访问(DirectMemoryAccess,简称DMA)进行数据传输时,往往是通过DMA控制器对多通道进行控制,当多通道中的一个通道正在工作时,其它通道就得等这个通道完成工作任务后才可能得到使用总线的机会。多通道DMA进行通道的切换时,切换后新通道DMA的一些必要准备工作需要等待时间,上述的等待时间会造成PCIE总线带宽利用率的下降。
技术实现思路
有鉴于此,本申请实施例提供了一种数据传输方法及装置,以改善现有技术中PCIE总线带宽利用率下降的问题。第一方面,本申请实施例提供了一种数据传输方法,应用于PCIE总线多通道的每条通道,所述每条通道均有对应的发送直接内存访问DMA单元,发送DMA单元包括发送BD表读取模块和发送报文读取模块,所述发送BD表读取模块与所述发送报文读取模块连接,且所述发送BD表读取模块以及所述发送报文读取模块均与发送仲裁单元连接,所述发送BD表读取模块包括TLP发送引擎和TLP接收引擎,所述发送报文读取模块也包括TLP发送引擎和TLP接收引擎;所述方法包括:所述发送BD表读取模块中的传输层包TLP发送引擎与所述发送仲裁单元相通信,经所述PCIE总线发出第一BD读取指令;所述发送BD表读取模块中的TLP接收引擎接收经所述PCIE总线返回的连续多个BD,并将所述连续多个BD存入第一FIFO队列,其中,所述连续多个BD中的每个BD均包括数据指针信息和数据长度信息;所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列获得所述连续多个BD的每个BD,并根据所述BD与所述发送仲裁单元相通信,经所述PCIE总线发出数据读取指令;所述发送报文读取模块中的TLP接收引擎接收经所述PCIE总线返回的数据,并将所述数据存入发送缓冲区。发送BD表读取模块通过TLP发送引擎以及TLP接收引擎与发送仲裁单元通信,经PCIE总线发出第一BD读取指令,获取经PCIE总线返回的连续多个BD并将连续多个BD存入第一FIFO队列。发送报文读取模块从第一FIFO队列中获得连续多个BD中的每个BD,并根据BD与发送仲裁单元通信,经PCIE总线发出数据读取指令,接收经PCIE总线返回的数据,并将数据存放的发送缓冲区。第一BD读取指令和数据读取指令分别是发送BD表读取模块和发送报文读取模块事先生成的,在经过与发送仲裁单元的通信之后便可以经PCIE总线发出,与现有技术相比,省去了切换通道后进行准备工作耗费的时间,提高了PCIE总线的带宽利用率。在一个可能的设计中,所述发送BD表读取模块中的传输层包TLP发送引擎与所述发送仲裁单元相通信,经所述PCIE总线发出第一BD读取指令,包括:所述发送BD表读取模块中的传输层包TLP发送引擎根据BD基地址完成第一内存读指令TLP的组帧;所述发送BD表读取模块中的TLP发送引擎向所述发送仲裁单元传递第一发送请求,并在接收到所述发送仲裁单元返回的第一发送确认指令后,经所述PCIE总线发出所述第一内存读指令TLP;所述发送BD表读取模块中的TLP接收引擎接收经所述PCIE总线返回的连续多个BD,并将所述连续多个BD存入第一FIFO队列,其中,所述连续多个BD中的每个BD均包括数据指针信息和数据长度信息,包括:所述发送BD表读取模块中的TLP接收引擎接收经所述PCIE总线返回的第一CPLD包,并将所述第一CPLD包中的连续多个BD存入第一FIFO队列,其中,所述第一CPLD包包括发送BD表的连续多个BD,所述发送BD表的连续多个BD中的每个BD均包括数据指针信息和数据长度信息;所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列获得所述连续多个BD的每个BD,并根据所述BD与所述发送仲裁单元相通信,经所述PCIE总线发出数据读取指令,包括:所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列中获得所述连续多个BD的每个BD,并根据所述每个BD的数据指针信息和数据长度信息完成第二内存读指令TLP的组帧;所述发送报文读取模块中的TLP发送引擎向所述发送仲裁单元传递第二发送请求,并在接收到所述发送仲裁单元返回的第二发送确认指令后,经所述PCIE总线发出所述第二内存读指令TLP;所述发送报文读取模块中的TLP接收引擎接收经所述PCIE总线返回的数据,并将所述数据存入发送缓冲区,包括:所述发送报文读取模块中的TLP接收引擎接收经所述PCIE总线返回的第二CPLD包,并将所述第二CPLD包中的数据存入发送缓冲区。在一个可能的设计中,所述发送报文读取模块配置有多个互不相同的顺序标号;所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列中获得所述连续多个BD的每个BD,并根据所述每个BD的数据指针信息和数据长度信息完成第二内存读指令TLP的组帧,包括:所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列中获得所述连续多个BD的每个BD时,从所述多个互不相同的顺序标号选取顺序标号;根据所述每个BD的数据指针信息和数据长度信息完成第二内存读指令TLP的组帧,并将所述顺序标号添加进所述第二内存读指令TLP中。按照一定的顺序对每个BD对应的第二内存读指令TLP进行编号,每个第二内存读指令TLP经PCIE总线发出后会获得相应的数据段,而数据段返回的顺序不一定与经PCIE总线发出的顺序一致,因此,可以按照顺序标号来为发送顺序进行编号,并根据编号的顺序对返回的数据段进行排序,保证了报文的有序性。其中,顺序标号可以存储在第二内存读指令TLP的8bit的TAG区间内。在一个可能的设计中,所述第二CPLD包中包括与所述第二内存读指令TLP对应的顺序标号,所述将所述第二CPLD包中的数据存入发送缓冲区,包括:根据携带有所述顺序标号的多个所述第二内存读指令的发出顺序得到所述顺序标号的排序;将多个所述第二CPLD包中的数据按照所述顺序标号的排序存入所述发送缓冲区。由于返回的第二CPLD包携带有与发出的第二内存读指令对应的顺序标号,因此,即使返回的第二CPLD包的顺序为乱序,也可以根据其携带的顺序标号对第二CPLD包的顺序进行重新排列,从而保证了第二CPLD包中数据的顺序性,提高了通信的可靠性。其中,顺序标号可以存储在第二CPLD包中的8bit的TAG区间内。在一个可能的设计中,所述发送BD表读取模块中的传输层包TLP发送引擎根据BD基地址完成第一内存读指令TLP的组帧之前,所述方法还包括:所述发送BD表读取模块接收控制器的BD有效提示信息,其中,所述控制器每构建一个新的BD,便向所述发送BD表读取模块发送所述BD有效提示信息。发送BD表读取模块可以将控制器的BD有效提示信息作为依据来决定是否发出第一BD读取指令去读取BD,避免了内存中无BD时发送BD表读取模块频繁地读取BD无果,造成总线资源的浪本文档来自技高网...

【技术保护点】
1.一种数据传输方法,其特征在于,应用于高速串行计算机扩展总线标准PCIE总线多通道的每条通道,所述每条通道均有对应的发送直接内存访问DMA单元,发送DMA单元包括发送缓存描述符BD表读取模块和发送报文读取模块,发送BD表读取模块与所述发送报文读取模块连接,且所述发送BD表读取模块以及所述发送报文读取模块均与发送仲裁单元连接,所述发送BD表读取模块包括传输层包TLP发送引擎和TLP接收引擎,所述发送报文读取模块也包括TLP发送引擎和TLP接收引擎;/n所述方法包括:/n所述发送BD表读取模块中的TLP发送引擎与所述发送仲裁单元相通信,经所述PCIE总线发出第一BD读取指令;/n所述发送BD表读取模块中的TLP接收引擎接收经所述PCIE总线返回的连续多个BD,并将所述连续多个BD存入第一先进先出FIFO队列,其中,所述连续多个BD中的每个BD均包括数据指针信息和数据长度信息;/n所述发送报文读取模块中的TLP发送引擎从第一FIFO队列获得所述连续多个BD的每个BD,并根据所述BD与所述发送仲裁单元相通信,经所述PCIE总线发出数据读取指令;/n所述发送报文读取模块中的TLP接收引擎接收经所述PCIE总线返回的数据,并将所述数据存入发送缓冲区。/n...

【技术特征摘要】
1.一种数据传输方法,其特征在于,应用于高速串行计算机扩展总线标准PCIE总线多通道的每条通道,所述每条通道均有对应的发送直接内存访问DMA单元,发送DMA单元包括发送缓存描述符BD表读取模块和发送报文读取模块,发送BD表读取模块与所述发送报文读取模块连接,且所述发送BD表读取模块以及所述发送报文读取模块均与发送仲裁单元连接,所述发送BD表读取模块包括传输层包TLP发送引擎和TLP接收引擎,所述发送报文读取模块也包括TLP发送引擎和TLP接收引擎;
所述方法包括:
所述发送BD表读取模块中的TLP发送引擎与所述发送仲裁单元相通信,经所述PCIE总线发出第一BD读取指令;
所述发送BD表读取模块中的TLP接收引擎接收经所述PCIE总线返回的连续多个BD,并将所述连续多个BD存入第一先进先出FIFO队列,其中,所述连续多个BD中的每个BD均包括数据指针信息和数据长度信息;
所述发送报文读取模块中的TLP发送引擎从第一FIFO队列获得所述连续多个BD的每个BD,并根据所述BD与所述发送仲裁单元相通信,经所述PCIE总线发出数据读取指令;
所述发送报文读取模块中的TLP接收引擎接收经所述PCIE总线返回的数据,并将所述数据存入发送缓冲区。


2.根据权利要求1所述的方法,其特征在于,
所述发送BD表读取模块中的TLP发送引擎与所述发送仲裁单元相通信,经所述PCIE总线发出第一BD读取指令,包括:
所述发送BD表读取模块中的TLP发送引擎根据BD基地址完成第一内存读指令TLP的组帧;
所述发送BD表读取模块中的TLP发送引擎向所述发送仲裁单元传递第一发送请求,并在接收到所述发送仲裁单元返回的第一发送确认指令后,经所述PCIE总线发出所述第一内存读指令TLP;
所述发送BD表读取模块中的TLP接收引擎接收经所述PCIE总线返回的连续多个BD,并将所述连续多个BD存入第一FIFO队列,其中,所述连续多个BD中的每个BD均包括数据指针信息和数据长度信息,包括:
所述发送BD表读取模块中的TLP接收引擎接收经所述PCIE总线返回的第一带数据的完成报文CPLD包,并将第一CPLD包中的连续多个BD存入第一FIFO队列,其中,所述第一CPLD包包括发送BD表的连续多个BD,所述发送BD表的连续多个BD中的每个BD均包括数据指针信息和数据长度信息;
所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列获得所述连续多个BD的每个BD,并根据所述BD与所述发送仲裁单元相通信,经所述PCIE总线发出数据读取指令,包括:
所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列中获得所述连续多个BD的每个BD,并根据所述每个BD的数据指针信息和数据长度信息完成第二内存读指令TLP的组帧;
所述发送报文读取模块中的TLP发送引擎向所述发送仲裁单元传递第二发送请求,并在接收到所述发送仲裁单元返回的第二发送确认指令后,经所述PCIE总线发出所述第二内存读指令TLP;
所述发送报文读取模块中的TLP接收引擎接收经所述PCIE总线返回的数据,并将所述数据存入发送缓冲区,包括:
所述发送报文读取模块中的TLP接收引擎接收经所述PCIE总线返回的第二CPLD包,并将所述第二CPLD包中的数据存入发送缓冲区。


3.根据权利要求2所述的方法,其特征在于,所述发送报文读取模块配置有多个互不相同的顺序标号;
所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列中获得所述连续多个BD的每个BD,并根据所述每个BD的数据指针信息和数据长度信息完成第二内存读指令TLP的组帧,包括:
所述发送报文读取模块中的TLP发送引擎从所述第一FIFO队列中获得所述连续多个BD的每个BD时,从所述多个互不相同的顺序标号选取顺序标号;
根据所述每个BD的数据指针信息和数据长度信息完成第二内存读指令TLP的组帧,并将所述顺序标号添加进所述第二内存读指令TLP中。


4.根据权利要求3所述的方法,其特征在于,所述第二CPLD包中包括与所述第二内存读指令TLP对应的顺序标号,所述将所述第二CPLD包中的数据存入发送缓冲区,包括:
根据携带有所述顺序标号的多个所述第二内存读指令TLP的发出顺序得到所述顺序标号的排序;
将多个所述第二CPLD包中的数据按照所述顺序标号的排序存入所述发送缓冲区。


5.根据权利要求1所述的方法,其特征在于,所述发送BD表读取模块中的TLP发送引擎根据BD基地址完成第一内存读指令TLP的组帧之前,所述方法还包括:
所述发送BD表读取模块接收控制器的BD有效提示信息,其中,所述控制器每构建一个新的BD,便向所述发送BD表读取模块发送所述BD有效提示信息。


6.根据权利要求1所述的方法,其特征在于,所述每条通道均有对应的接收DMA单元,所述接收DMA单元包括接收BD表读取模块和接收报文写入模块,所述接收BD表读取模块与所述接收报文写入模块连接,且所述接收BD表读取模块以及所述接收报文写入模块均与所述发送仲裁单元连接;
所述方法还包括:
所述接收BD表读取模块中的TLP发送引擎与所述发送仲裁单元相通信,经所述PCIE总线发出第二BD读取指令;
所述接收BD表读取模块中的TLP接收引擎接收经所述PCIE总线返回的连续多个BD,并将所述连续多个BD存入第二FIFO队列,其中,所述接收BD表的连续多个BD中的每个BD内的指针所指向的内存空间均为有效的可写空间;
所述接收报文写入模块的TLP发送引擎从所述第二FIFO队列获得所述多个B...

【专利技术属性】
技术研发人员:李建国
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1