CN111045817B - 一种PCIe传输管理方法、系统和装置 - Google Patents

一种PCIe传输管理方法、系统和装置 Download PDF

Info

Publication number
CN111045817B
CN111045817B CN201911085811.5A CN201911085811A CN111045817B CN 111045817 B CN111045817 B CN 111045817B CN 201911085811 A CN201911085811 A CN 201911085811A CN 111045817 B CN111045817 B CN 111045817B
Authority
CN
China
Prior art keywords
data
buffer
transmission
data packet
bus
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
CN201911085811.5A
Other languages
English (en)
Other versions
CN111045817A (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.)
Rockchip Electronics Co Ltd
Original Assignee
Rockchip Electronics 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 Rockchip Electronics Co Ltd filed Critical Rockchip Electronics Co Ltd
Priority to CN201911085811.5A priority Critical patent/CN111045817B/zh
Publication of CN111045817A publication Critical patent/CN111045817A/zh
Application granted granted Critical
Publication of CN111045817B publication Critical patent/CN111045817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明提供一种PCIe传输管理方法、系统和装置,方法包括:接受对PCIe传输的发送端和接收端各自的存储域与PCIe总线域的映射关系的配置;发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位、和包大小和数据段;发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕;接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中。本发明可达PCIe传输速率的最大化,从而具有更低的延时。

Description

一种PCIe传输管理方法、系统和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种PCIe传输管理方法、系统和装置。
背景技术
目前越来越多的SoC芯片带有PCIe(peripheral component interconnectexpress,是一种高速串行计算机扩展总线标准)接口,为了将多片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(Root Complex,根组件);
接收端,用于接收发送端通过总线传输来的数据,如可以是EP (endponint,会议终端)。
发送端与接收端的链路连接可以认为是Host与slave的关系,二者角色可随机调换。双方的总线域地址与各自的存储域地址依赖于对各自的iATU 单元进行无序映射,可以动态随机调整,也可以顺序一一映射。
实施例一
本实施例提供一种PCIe传输管理方法,如图2所示,包括:
接受对PCIe传输的发送端和接收端各自的存储域与PCIe总线域的映射关系的配置;所述所述映射关系包括全无序映射,全顺序映射,以及部分无序部分顺序映射。
如图3所示,发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位(记为“I”)、包大小(记为“Size”)和数据段(记为“payload”);所述数据包还具有数据起始标志位(记为“ST”)和数据结束标志位“BT”,检索位、包大小、数据起始标志位依序位于数据包的头部位置,数据结束标志位位于位于数据包的尾部位置,数据段位于数据起始标志位和数据结束标志位之间;其中,检索位用于乱序传输管理,对端乱序接收后按照检索顺序拟合,保证一致性。包大小表征数据包的大小,包大小只要不大于buffer大小即可,若大于,需要拆分到下一个buffer。数据起始标志位用于对端接收后,确定检索和包大小正确接收。数据段是保存将传输的实际数据。数据结束标志位是紧接在数据段之后的buffertag,用于对端接收后表明完成接收到所有数据(PCIe总线的单项传输会保证TLP order)。
发送端在发送数据时,如图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总线的单项传输会保证TLP order)。
所述发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个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、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (8)

1.一种PCIe传输管理方法,其特征在于:包括:
接受对PCIe传输的发送端和接收端各自的存储域与PCIe总线域的映射关系的配置;
发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位、包大小和数据段;
发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕;
接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中;
所述映射关系包括全无序映射,全顺序映射,以及部分无序部分顺序映射。
2.根据权利要求1所述的一种PCIe传输管理方法,其特征在于:所述数据包还具有数据起始标志位和数据结束标志位,检索位、包大小、数据起始标志位依序位于数据包的头部位置,数据结束标志位位于数据包的尾部位置,数据段位于数据起始标志位和数据结束标志位之间;
接收端通过一线程不断扫描数据起始标志位信息,若扫描到该数据起始标志位信息则判断已经正确接收数据序号和数据包大小的信息;再利用包大小来获取数据结束标志位进行扫描,若扫描到数据结束标志位则判断buffer已经接收完毕;
接收端将接收的数据取走后,清理对应buffer的数据起始标志位和数据结束标志位,并发送传输层数据包,回写至发送端对应的buffer,将发送端与之对应的检索位清理;发送端的用户态也有一个线程在每个buffer启动传输后,扫描本地的传输buffer中的检索位,一旦发现检索位被清理,表明接收端已经接收完成,则该buffer重新提供给发送端的用户态进行传输。
3.根据权利要求1所述的一种PCIe传输管理方法,其特征在于:所述总线状态在非空闲之时,总线传输所需的配置预先设置好,以待空闲时能立刻执行总线传输。
4.一种PCIe传输管理系统,其特征在于:包括发送端和接收端;
所述发送端接受对存储域与PCIe总线域的映射关系的配置;
所述接收端接受对存储域与PCIe总线域的映射关系的配置;
所述发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位、包大小和数据段;
所述发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕;
所述接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中;
所述映射关系包括全无序映射,全顺序映射,以及部分无序部分顺序映射;
所述数据包还具有数据起始标志位和数据结束标志位,检索位、包大小、数据起始标志位依序位于数据包的头部位置,数据结束标志位位于数据包的尾部位置,数据段位于数据起始标志位和数据结束标志位之间。
5.根据权利要求4所述的一种PCIe传输管理系统,其特征在于:还包括:
所述接收端在接收数据过程中,通过一线程不断扫描数据起始标志位信息,若扫描到该数据起始标志位信息则判断已经正确接收数据序号和数据包大小的信息;再利用包大小来获取数据结束标志位进行扫描,若扫描到数据结束标志位则判断buffer已经接收完毕;
所述接收端接收完毕一个数据包后,清理对应buffer的数据起始标志位和数据结束标志位,并发送传输层数据包,回写至发送端对应的buffer,将发送端与之对应的检索位清理;
所述发送端在每个buffer启动传输后,扫描本地的传输buffer中的检索位,一旦发现检索位被清理,表明接收端已经接收完成,则重新提供该Buffer给发送端的用户态进行传输。
6.一种PCIe传输管理装置,其特征在于:该装置为发送端,包括:
映射配置模块,用于接受对存储域与PCIe总线域的映射关系的配置;所述映射关系包括全无序映射,全顺序映射,以及部分无序部分顺序映射;
数据包设置模块,用于发送端设置每个buffer所保存的将要传输的数据包结构,数据包具有检索位、包大小和数据段;
传输模块,用于发送端在发送数据时,将传输数据按设置的包大小进行切割,并扫描本地多个buffer,直到获取第一个空闲buffer进行数据填充搬移,在buffer填充完成之后,查询总线状态,获取到总线空闲后,启动总线传输,并根据尾部标签来判断数据包是否传输完毕。
7.根据权利要求6所述的一种PCIe传输管理装置,其特征在于:还包括:
buffer管理模块,用于发送端在每个buffer启动传输后,扫描本地的传输buffer中的检索位,一旦发现检索位被清理,表明接收端已经接收完成,则重新提供该buffer给发送端的用户态进行传输;
总线预设模块,用于在所述总线状态在非空闲之时,预先设置好总线传输所需的配置,以待空闲时能立刻执行总线传输。
8.一种PCIe传输管理装置,其特征在于:该装置为接收端,包括:
映射配置模块,用于接受对存储域与PCIe总线域的映射关系的配置;所述映射关系包括全无序映射,全顺序映射,以及部分无序部分顺序映射;
拟合模块,用于接收端接收数据包后,根据每个数据包的检索位将各个数据包的数据段进行顺序拟合,保存在自己对应的buffer中;
判断模块,用于接收端通过一线程不断扫描数据起始标志位信息,若扫描到该数据起始标志位信息则判断已经正确接收数据序号和数据包大小的信息;再利用包大小来获取数据结束标志位进行扫描,若扫描到数据结束标志位则判断buffer已经接收完毕;
清理模块,用于接收端将接收的数据取走后,清理对应buffer的数据起始标志位和数据结束标志位,并发送传输层数据包,回写至发送端对应的buffer,将发送端与之对应的检索位清理。
CN201911085811.5A 2019-11-08 2019-11-08 一种PCIe传输管理方法、系统和装置 Active CN111045817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911085811.5A CN111045817B (zh) 2019-11-08 2019-11-08 一种PCIe传输管理方法、系统和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911085811.5A CN111045817B (zh) 2019-11-08 2019-11-08 一种PCIe传输管理方法、系统和装置

Publications (2)

Publication Number Publication Date
CN111045817A CN111045817A (zh) 2020-04-21
CN111045817B true CN111045817B (zh) 2023-09-26

Family

ID=70232904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911085811.5A Active CN111045817B (zh) 2019-11-08 2019-11-08 一种PCIe传输管理方法、系统和装置

Country Status (1)

Country Link
CN (1) CN111045817B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905517B (zh) * 2021-03-09 2022-05-20 明峰医疗系统股份有限公司 一种基于fpga的可变包长度数据采集方法
CN114817106B (zh) * 2022-05-11 2023-10-24 湖南泽天智航电子技术有限公司 一种基于飞腾系列pcie总线的通用接口拓展系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873299A (zh) * 2009-04-24 2010-10-27 北京兴大豪科技开发有限公司 串行总线和通信方法及系统
CN102541779A (zh) * 2011-11-28 2012-07-04 曙光信息产业(北京)有限公司 一种提高多数据缓冲区dma效率的系统和方法
CN102693198A (zh) * 2012-05-12 2012-09-26 北京忆恒创源科技有限公司 Dma传输方法及系统
CN102752223A (zh) * 2012-07-26 2012-10-24 杭州海康威视数字技术股份有限公司 并行系统间数据传输方法及其系统
CN103077148A (zh) * 2013-01-04 2013-05-01 浪潮(北京)电子信息产业有限公司 一种基于pcie的主机通讯方法和主机
CN103440219A (zh) * 2013-08-23 2013-12-11 上海航天测控通信研究所 一种新型的通用总线转换桥ip核
CN103853676A (zh) * 2014-03-28 2014-06-11 苏州科达科技股份有限公司 基于PCIe总线的信道分配、释放、数据传输方法和系统
CN105721338A (zh) * 2016-01-29 2016-06-29 浪潮(北京)电子信息产业有限公司 一种接收数据的处理方法及装置
CN106506390A (zh) * 2016-10-20 2017-03-15 厦门理工学院 一种数据流传输方法
CN107193766A (zh) * 2017-05-12 2017-09-22 苏州中科集成电路设计中心有限公司 一种PCIe设备与主机之间的多路有序数据传输方法
CN107870879A (zh) * 2016-09-23 2018-04-03 中国移动通信有限公司研究院 一种数据搬移方法、加速器板卡、主机及数据搬移系统
CN109033004A (zh) * 2018-08-27 2018-12-18 北京计算机技术及应用研究所 一种基于Aurora总线的双机内存数据共享系统
CN109286477A (zh) * 2018-10-30 2019-01-29 佛山市瑞德物联科技有限公司 一种支持乱序传输的数据传输方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858007B2 (en) * 2013-11-12 2018-01-02 Avago Technologies General Ip (Singapore) Pte. Ltd. Decoupling host and device address maps for a peripheral component interconnect express controller

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873299A (zh) * 2009-04-24 2010-10-27 北京兴大豪科技开发有限公司 串行总线和通信方法及系统
CN102541779A (zh) * 2011-11-28 2012-07-04 曙光信息产业(北京)有限公司 一种提高多数据缓冲区dma效率的系统和方法
CN102693198A (zh) * 2012-05-12 2012-09-26 北京忆恒创源科技有限公司 Dma传输方法及系统
CN102752223A (zh) * 2012-07-26 2012-10-24 杭州海康威视数字技术股份有限公司 并行系统间数据传输方法及其系统
CN103077148A (zh) * 2013-01-04 2013-05-01 浪潮(北京)电子信息产业有限公司 一种基于pcie的主机通讯方法和主机
CN103440219A (zh) * 2013-08-23 2013-12-11 上海航天测控通信研究所 一种新型的通用总线转换桥ip核
CN103853676A (zh) * 2014-03-28 2014-06-11 苏州科达科技股份有限公司 基于PCIe总线的信道分配、释放、数据传输方法和系统
CN105721338A (zh) * 2016-01-29 2016-06-29 浪潮(北京)电子信息产业有限公司 一种接收数据的处理方法及装置
CN107870879A (zh) * 2016-09-23 2018-04-03 中国移动通信有限公司研究院 一种数据搬移方法、加速器板卡、主机及数据搬移系统
CN106506390A (zh) * 2016-10-20 2017-03-15 厦门理工学院 一种数据流传输方法
CN107193766A (zh) * 2017-05-12 2017-09-22 苏州中科集成电路设计中心有限公司 一种PCIe设备与主机之间的多路有序数据传输方法
CN109033004A (zh) * 2018-08-27 2018-12-18 北京计算机技术及应用研究所 一种基于Aurora总线的双机内存数据共享系统
CN109286477A (zh) * 2018-10-30 2019-01-29 佛山市瑞德物联科技有限公司 一种支持乱序传输的数据传输方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何广亮 ; .基于PCIE总线的DMA控制器设计与实现.信息技术与网络安全.2018,(第04期),全文. *

Also Published As

Publication number Publication date
CN111045817A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
CN106951388B (zh) 一种基于PCIe的DMA数据传输方法及系统
US4807109A (en) High speed synchronous/asynchronous local bus and data transfer method
TWI416334B (zh) 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器
AU628532B2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with input/output units
RU2401452C2 (ru) Способ передачи данных в сообщениях по линии связи системы связи, а также коммуникационный модуль, абонентское устройство системы связи и система связи для осуществления этого способа
KR100881049B1 (ko) 복수의 어드레스 2 채널 버스 구조
US7705850B1 (en) Computer system having increased PCIe bandwidth
WO2000049507A1 (en) Method and apparatus for extending the range of the universal serial bus protocol
CN111045817B (zh) 一种PCIe传输管理方法、系统和装置
TWI247215B (en) Communication system for raising channel utilization rate and communication method thereof
JPH08116348A (ja) 高速通信装置
CN108959136A (zh) 基于spi的数据传输加速装置、系统及数据传输方法
US20060236001A1 (en) Direct memory access controller
CN101447931B (zh) 一种排他操作的实现方法和装置
AU2003234641A1 (en) Inter-chip processor control plane
US6363076B1 (en) Phantom buffer for interfacing between buses of differing speeds
CN112131176B (zh) 一种基于pcie的fpga快速局部重构方法
JPH117434A (ja) 複数ノードの非同期データ通信システム内で早期到達メッセージを処理するシステム
JPH04108242A (ja) 通信制御装置のデータ転送方式
US20040225707A1 (en) Systems and methods for combining a slow data stream and a fast data stream into a single fast data stream
CN111966623A (zh) Mcu与多个fpga使用spi进行实时全双工可靠通信的方法
US6463491B1 (en) Data transfer making efficient use of time concerning bus arbitration
CN111130675B (zh) 一种基于时间触发网络的时间同步装置
TWI411922B (zh) 通用串列匯流排主機控制器和通用串列匯流排主機控制方法
JP3753622B2 (ja) パケット送受信装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 350000 building 18, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province

Applicant after: Ruixin Microelectronics Co.,Ltd.

Address before: 350000 building 18, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province

Applicant before: FUZHOU ROCKCHIP ELECTRONICS Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant