一种PCIe传输管理方法、系统和装置与流程

文档序号:20486575发布日期:2020-04-21 21:43阅读:164来源:国知局
一种PCIe传输管理方法、系统和装置与流程

本发明涉及计算机技术领域,特别涉及一种pcie传输管理方法、系统和装置。



背景技术:

目前越来越多的soc芯片带有pcie(peripheralcomponentinterconnectexpress,是一种高速串行计算机扩展总线标准)接口,为了将多片soc级联起来,可以使用pcie总线实现。实现pcie链路层的连接较为简单,但是由于pcie有多个地址域的转换以及低时延的需求,就需要配套设计一种符合pcie域特点的传输管理模型,以求达到传输速率最大化。并且,互联的soc可能是不同厂家的,那么也需要不依赖于硬件的一些同步机制实现。本案设计了一种低延时的pcie传输管理模型。



技术实现要素:

本发明要解决的技术问题,在于提供一种pcie传输管理方法、系统和装置,达到pcie传输速率的最大化,从而具有更低的延时。

第一方面,本发明提供了一种pcie传输管理方法,其特征在于:包括:

接受对pcie传输的发送端和接收端各自的存储域与pcie总线域的映射关系的配置;

发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位、包大小和数据段;

发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕;

接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中。

第二方面,本发明提供了一种pcie传输管理系统,包括发送端和接收端;

所述发送端接受对存储域与pcie总线域的映射关系的配置;

所述接收端接受对存储域与pcie总线域的映射关系的配置;

所述发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位、包大小和数据段;

所述发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕;

所述接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中。

第三方面,本发明提供了一种pcie传输管理装置,该装置为发送端,包括:

映射配置模块,用于接受对存储域与pcie总线域的映射关系的配置;

数据包设置模块,用于发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位、包大小和数据段;

传输模块,用于发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕。

第四方面,本发明提供了一种pcie传输管理装置,该装置为接收端,包括:

映射配置模块,用于接受对存储域与pcie总线域的映射关系的配置;

拟合模块,用于接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中。

判断模块,用于接收端通过一线程不断扫描数据起始标志位信息,若扫描到该数据起始标志位信息则判断已经正确接收数据序号和数据包大小的信息;再利用包大小来获取数据结束标志位进行扫描,若扫描到数据结束标志位则判断buffer已经接收完毕;

清理模块,用于接收端将接收的数据取走后,清理对应buffer的数据起始标志位和数据结束标志位,并发送传输层数据包,回写至发送端对应的buffer,将发送端与之对应的检索位清理。

本发明实施例中提供的方法、系统和装置,至少具有如下技术效果或优点:

1、通过对pcie传输的发送端和接收端各自的存储域与pcie总线域的映射关系的配置,可以实现总线域地址与存储域地址的无序映射;从而可实现哪个buffer空闲,就先由哪个buffer先进行数据传输,无需顺序等待,大大提高传输效率从而降低了时延;

2、通过设置发送端每个buffer所保存的将要传输的数据包结构,使数据包具有检索位,从而可作为接收端进行顺序拟合的依据,实现多个buffer的乱序管理;

3、通过在数据包结构中设置包大小、数据起始标志位和数据结束标志位位信息,可以实现不同长短数据校验和完整性检查机制,保证数据成功传输;

4、使用软件查询方式实现协议交互,不需要额外的硬件不依赖于板间的额外物理连接信号以及带内的vendor中断信号实现低延时处理;

5、配置存储域与pcie总线域的映射关系时可以支持动态地址映射,对buffer个数进行限制,既可支持异步传输也可支持同步传输,实现了高稳定低时延,易于迁移。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明系统的框架示意图;

图2为本发明实施例一中方法中的流程图;

图3为本发明数据包的结构示意图;

图4为本发明将传输数据按设置的包大小进行切割时的示意图;

图5为本发明实施例二中装置为发送端时的结构示意图;

图6为本发明实施例三中装置为接收端时的结构示意图。

具体实施方式

本申请实施例通过提供一种pcie传输管理方法、系统和装置,达到pcie传输速率的最大化,从而具有更低的延时。

本申请实施例中的技术方案,总体思路如下:通过对pcie传输的发送端和接收端各自的存储域与pcie总线域的映射关系的配置,可以实现总线域地址与存储域地址的无序映射;从而可实现哪个buffer空闲,就先由哪个buffer先进行数据传输,无需顺序等待。

在介绍具体实施例之前,先介绍本申请实施例方法所对应的系统框架,系统使用pcie总线将多个soc芯片级联起来,以实现pcie链路层的连接,两个soc芯片传输数据时,如图1所示,soc芯片所在的设备根据传输数据过程承担的角色的不同,可分为两个部分:

发送端,用于向接收端通过总线传输数据,如可以是rc(rootcomplex,根组件);

接收端,用于接收发送端通过总线传输来的数据,如可以是ep(endponint,会议终端)。

发送端与接收端的链路连接可以认为是host与slave的关系,二者角色可随机调换。双方的总线域地址与各自的存储域地址依赖于对各自的iatu单元进行无序映射,可以动态随机调整,也可以顺序一一映射。

实施例一

本实施例提供一种pcie传输管理方法,如图2所示,包括:

接受对pcie传输的发送端和接收端各自的存储域与pcie总线域的映射关系的配置;所述所述映射关系包括全无序映射,全顺序映射,以及部分无序部分顺序映射。

如图3所示,发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位(记为“i”)、包大小(记为“size”)和数据段(记为“payload”);所述数据包还具有数据起始标志位(记为“st”)和数据结束标志位“bt”,检索位、包大小、数据起始标志位依序位于数据包的头部位置,数据结束标志位位于位于数据包的尾部位置,数据段位于数据起始标志位和数据结束标志位之间;其中,检索位用于乱序传输管理,对端乱序接收后按照检索顺序拟合,保证一致性。包大小表征数据包的大小,包大小只要不大于buffer大小即可,若大于,需要拆分到下一个buffer。数据起始标志位用于对端接收后,确定检索和包大小正确接收。数据段是保存将传输的实际数据。数据结束标志位是紧接在数据段之后的buffertag,用于对端接收后表明完成接收到所有数据(pcie总线的单项传输会保证tlporder)。

发送端在发送数据时,如图4所示,用户态将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕;其中,所述总线状态在非空闲之时,总线传输所需的配置预先设置好,以待空闲时能立刻执行总线传输,以更好地降低软件延时,比如,总线传输需配置10个寄存器,则可以在总线状态在非空闲之时,预先配置好9个寄存器,到该总线处于空闲状态时,立即将剩下的1个寄存器配置好,10个寄存器一经配置好即可立刻执行总线传输。

接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中,从而保证数据传输前后的一致性。

在传输过程中,接收端通过一线程不断扫描数据起始标志位信息,若扫描到该数据起始标志位信息,则说明检索和包大小接收完成;再利用包大小来获取数据结束标志位进行扫描,若扫描到数据结束标志位则判断buffer已经接收完毕;

接收端将接收的数据取走后,清理对应buffer的数据起始标志位和数据结束标志位,并发送传输层数据包,回写至发送端对应的buffer,将发送端与之对应的检索位清理;发送端的用户态也有一个线程在每个buffer启动传输后,扫描本地的与之对应的传输buffer中的检索位,一旦发现检索位被清理,表明接收端已经接收完成,则该buffer不再被需要,可以重新提供给发送端的用户态进行传输。

发送端的用户态程序不断的扫描空闲的发送端的buffer,乱序提交数据,pcie传输管理模型周而复始的按照上述策略进行数据推送。如果是接收端反过来发起传输,则发送端和接收端的地位对调,实现的传输机制相同。

以上传输机制是描述异步传输模型。如果对buffer个数进行限制,即可退化位同步传输模型。另外,也可以限制检索位不进行乱序,即不同的数据包按照检索位的大小从小到大或者从大到小的顺序填充到buffer1--buffern。

基于同一发明构思,本申请还提供了与实施例一中的方法对应的系统,详见实施例二。

实施例二

在本实施例中提供了一种pcie传输管理系统,如图1所示,包括发送端和接收端;

所述发送端接受对存储域与pcie总线域的映射关系的配置;所述映射配置模块提供的可供选择的映射关系包括全无序映射,全顺序映射,以及部分无序部分顺序映射;

所述接收端接受对存储域与pcie总线域的映射关系的配置;所述映射配置模块提供的可供选择的映射关系包括全无序映射,全顺序映射,以及部分无序部分顺序映射;

所述发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位(记为“i”)、包大小(记为“size”)和数据段(记为“payload”);所述数据包还具有数据起始标志位(记为“st”)和数据结束标志位“bt”,检索位、包大小、数据起始标志位依序位于数据包的头部位置,数据结束标志位位于位于数据包的尾部位置,数据段位于数据起始标志位和数据结束标志位之间;其中,检索位用于乱序传输管理,对端乱序接收后按照检索顺序拟合,保证一致性。包大小表征数据包的大小,包大小只要不大于buffer大小即可,若大于,需要拆分到下一个buffer。数据起始标志位用于对端接收后,确定检索和包大小正确接收。数据段是保存将传输的实际数据。数据结束标志位是紧接在数据段之后的buffertag,用于对端接收后表明完成接收到所有数据(pcie总线的单项传输会保证tlporder)。

所述发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕;

所述接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中。

所述接收端在接收数据过程中,通过一线程不断扫描数据起始标志位信息,若扫描到该数据起始标志位信息则判断已经正确接收数据序号和数据包大小的信息;再利用包大小来获取数据结束标志位进行扫描,若扫描到数据结束标志位则判断buffer已经接收完毕;

所述接收端接收完毕一个数据包后,清理对应buffer的数据起始标志位和数据结束标志位,并发送传输层数据包,回写至发送端对应的buffer,将发送端与之对应的检索位清理;

所述发送端在每个buffer启动传输后,扫描本地的传输buffer中的检索位,一旦发现检索位被清理,表明接收端已经接收完成,则重新提供该buffer给发送端的用户态进行传输。

由于本发明实施例二所介绍的系统,为实施本发明实施例一的方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的pcie传输管理装置实施例,该装置为发送端,详见实施例三。

实施例三

本实施例提供了一种pcie传输管理装置,如图5所示,包括:

映射配置模块,用于接受对存储域与pcie总线域的映射关系的配置;

数据包设置模块,用于发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位、包大小和数据段;

传输模块,用于发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕。

buffer管理模块,用于发送端在每个buffer启动传输后,扫描本地的传输buffer中的检索位,一旦发现检索位被清理,表明接收端已经接收完成,则重新提供该buffer给发送端的用户态进行传输;

总线预设模块,用于在所述总线状态在非空闲之时,预先设置好总线传输所需的配置,以待空闲时能立刻执行总线传输。

由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的发送端,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的pcie传输管理装置实施例,该装置为接收端,详见实施例四。

实施例四

本实施例提供一种pcie传输管理装置,如图6所示,包括:

映射配置模块,用于接受对存储域与pcie总线域的映射关系的配置;

拟合模块,用于接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中。

判断模块,用于接收端通过一线程不断扫描数据起始标志位信息,若扫描到该数据起始标志位信息则判断已经正确接收数据序号和数据包大小的信息;再利用包大小来获取数据结束标志位进行扫描,若扫描到数据结束标志位则判断buffer已经接收完毕;

清理模块,用于接收端将接收的数据取走后,清理对应buffer的数据起始标志位和数据结束标志位,并发送传输层数据包,回写至发送端对应的buffer,将发送端与之对应的检索位清理。

由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的发送端,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:本申请实施例提供的方法、系统和装置,通过对pcie传输的发送端和接收端各自的存储域与pcie总线域的映射关系的配置,可以实现总线域地址与存储域地址的无序映射;从而可实现哪个buffer空闲,就先由哪个buffer先进行数据传输,无需顺序等待,大大提高传输效率从而降低了时延;通过设置发送端每个buffer所保存的将要传输的数据包结构,使数据包具有检索位,从而可作为接收端进行顺序拟合的依据,实现多个buffer的乱序管理;通过在数据包结构中设置包大小、数据起始标志位和数据结束标志位信息,可以实现不同长短数据校验和完整性检查机制,保证数据成功传输。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

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