CN118295954A - 基于PCIe协议的处理卡的数据传输方法和通信系统 - Google Patents

基于PCIe协议的处理卡的数据传输方法和通信系统 Download PDF

Info

Publication number
CN118295954A
CN118295954A CN202410503692.5A CN202410503692A CN118295954A CN 118295954 A CN118295954 A CN 118295954A CN 202410503692 A CN202410503692 A CN 202410503692A CN 118295954 A CN118295954 A CN 118295954A
Authority
CN
China
Prior art keywords
data
pcie
host
downlink
tlp
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.)
Pending
Application number
CN202410503692.5A
Other languages
English (en)
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202410503692.5A priority Critical patent/CN118295954A/zh
Publication of CN118295954A publication Critical patent/CN118295954A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种基于PCIe协议的处理卡的数据传输方法和通信系统,其中,该方法包括:预先将传输通道虚拟为8个虚拟数据通道和3个虚拟信令通道;建立主机上的存储空间与PCIe的BAR空间的地址区间之间的映射关系;PCIe根据映射关系接收主机向目标硬件设备传输的下行数据;PCIe对下行数据进行处理,并通过硬件高速通信接口向目标硬件设备输出协议报文和用于标识报文所属的BAR空间的标志信号;目标硬件设备将报文携带的下行数据送至对应的虚拟通道。通过上述方案达到了有效降低硬件资源浪费、降低通信网络忙碌和阻塞的概率、提升数据传输的吞吐量、提升大流量数据和小流量数据传输效率的技术效果。

Description

基于PCIe协议的处理卡的数据传输方法和通信系统
技术领域
本申请属于数字信息的传输技术领域,尤其涉及一种基于PCIe协议的处理卡的数据传输方法和通信系统。
背景技术
PCIe(Peripheral Component Interconnect Express)是一种高速串行总线标准,被广泛应用于计算机内部组件之间的通信。随着计算机技术的不断发展,PCIe的应用场景越来越广泛,例如:显卡、固态硬盘、网络适配器等设备都是通过PCIe总线进行数据传输的。
目前,处理PCIe信令和数据时,一般是采用单一的处理路径处理的,这样势必会导致无法充分利用硬件资源,造成硬件资源的浪费。
针对现有的采用单一处理路径对PCIe信令数据和计算数据进行处理,而导致的硬件资源浪费的问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种基于PCIe协议的处理卡的数据传输方法和通信系统,可以实现对PCIe信令数据和计算数据的高效并行传输,从而达到减少硬件资源的浪费的技术效果。
本申请提供一种基于PCIe协议的处理卡的数据传输方法和通信系统是这样实现的:
一种基于PCIe协议的处理卡的数据传输方法,所述方法包括:
通过主机上的软件建立主机上的存储空间与PCIe的BAR空间的地址区间之间的映射关系;
PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据,其中,主机与所述目标硬件设备之间通过PCIe连接;
PCIe对所述下行数据进行处理,并通过硬件高速通信接口向目标硬件设备输出协议报文(TLP,Transaction Layer Packet)和用于标识所述TLP所属的BAR空间的标志信号,其中,TLP中携带有报文头部信息和下行数据;
所述目标硬件设备根据所述报文头部信息和所述TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道。
在一个实施方式中,在所述目标硬件设备根据所述报文头部信息和TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道之前还包括:
预先将通道虚拟为8个虚拟数据通道和3个虚拟信令通道,其中,8个虚拟数据通道包括:4个大流量数据通道和4个小流量数据通道,3个虚拟信令通道包括:传输配置初始环境相关内容的信令通道、传输大流量数据上下行相关信息的信令通道、传输业务相关内容的信令通道。
在一个实施方式中,所述目标硬件设备根据所述报文头部信息和TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道,包括:
所述目标硬件设备对所述报文头部信息进行解析,以确定所述TLP携带的下行数据的类型,其中,TLP携带的下行数据的类型包括:信令数据和计算数据;
在下行数据的类型为信令数据的情况下,根据报文头部信息中的地址信息,将下行数据送至对应的虚拟信令通道;
在下行数据的类型为计算数据的情况下,根据报文头部信息中的地址信息,将下行数据送至对应的虚拟数据通道。
在一个实施方式中,PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据,包括:
通过主机上的软件,将主机向目标硬件设备传输的下行数据放至主机的存储空间的目标地址中;
通过主机上的软件调用PCIe驱动提供的函数,根据所述映射关系,向PCIe的BAR空间中写所述下行数据。
在一个实施方式中,所述报文头部信息中包括:数据长度、数据在BAR空间的地址区间等。
在一个实施方式中,在PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据,所述下行数据为大流量数据之前,还包括:
接收用户通过下行信令访问PCIe所连接的目标硬件设备当前正在执行的任务信息的请求;
响应所述请求,确定当前目标硬件设备是否处于繁忙状态;
在确定处于繁忙状态的情况下,返回繁忙信息以指示当前无法进行下行大流量数据传输;
在确定处于空闲状态的情况下,返回空闲信息以指示当前可进行下行大流量数据传输;
将预传输的大流量数据作为主机向目标硬件设备传输的下行数据。
在一个实施方式中,还包括:
在下行大流量数据传输完成后,通过下行信令通知释放本次下行大流量数据传输所占用的大流量数据通道和资源。
一种基于PCIe协议的处理卡的数据通信系统,包括:主机、PCIe和目标硬件设备,其中,主机与目标硬件设备之间通过PCIe连接;
主机,通过主机上的软件建立主机上的存储空间与PCIe的BAR空间的地址区间之间的映射关系;
PCIe,根据所述映射关系接收主机向目标硬件设备传输的下行数据,并对所述下行数据进行处理,并通过硬件高速通信接口向目标硬件设备输出协议报文TLP和用于标识所述TLP所属的BAR空间的标志信号,其中,TLP中携带有所述下行数据和报文头部信息;
目标硬件设备,根据所述报文头部信息和TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道。
在一个实施方式中,所述主机为网络中提供服务的计算机,包括:服务器、桌面电脑等。
在一个实施方式中,所述目标硬件设备为基于PCIe协议的处理卡。
本申请提供的基于PCIe协议的处理卡的数据传输方法和通信系统,通过虚拟出多个传输通道,在接收到主机向目标硬件设备传输的下行数据情况下,确定TLP所属的PCIeBAR空间,以及下行数据的类型,从而将下行数据送入对应的虚拟传输通道。因为携带下行数据的TLP从硬件高速通信接口输出之后,在硬件设备上就由串行改为了多路并行,从而极大地降低了高速传输通信网络忙碌和阻塞的概率,提升了数据
传输的吞吐量,有效降低了硬件资源浪费、提升了大流量数据和小流量数据的传输效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的基于PCIe协议的处理卡的数据传输方法一种实施例的方法流程图;
图2是本申请提供的主机与硬件设备的连接示意图;
图3是本申请提供的PCIe的数据处理装置的结构框图;
图4是本申请提供的BAR空间的分配示意图;
图5是本申请提供的PCIe下行大流量数据的处理流程图;
图6是本申请提供的一种基于PCIe协议的处理卡的数据传输方法的电子设备的硬件结构框图;
图7是本申请提供的基于PCIe协议的处理卡的数据传输装置一种实施例的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
PCIe通信通常包括信令传输和数据传输,信令传输通常用于控制和配置,数据传输通常用于实际数据的传递。在PCIe通信中,信令和数据通常需要分开处理,以确保高效的通信。针对现有的处理PCIe信令和数据时,一般是采用单一的处理路径进行处理而导致的缺乏灵活性、造成硬件资源浪费的问题,考虑到现有的PCIe信令和数据,一般是采用单一的处理路径进行处理的,这样势必会导致无法充分利用硬件资源,造成硬件资源的浪费。基于此,在本例中将PCIe信令和数据的传输通道虚拟为多个通道,不同的通道传输不同的信令或数据,从而达到并行处理的目的,以有效提升硬件资源的利用率。
图1是本申请提供的基于PCIe协议的处理卡的数据传输方法一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体的,如图1所示,上述的基于PCIe协议的处理卡的数据传输方法可以包括如下步骤:
步骤101:通过主机上的软件建立主机上的存储空间与PCIe的BAR空间(PCIe设备中的一个概念,用于存储设备的特定地址信息)的地址区间之间的映射关系;
步骤102:PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据,其中,主机与所述目标硬件设备之间通过PCIe连接;
步骤103:PCIe对所述下行数据进行处理,并通过硬件高速通信接口向目标硬件设备输出协议报文(TLP,Transaction Layer Packet)和用于标识所述TLP所属的BAR空间的标志信号,其中,TLP中携带有所述下行数据和报文头部信息;
其中,报文头部信息中可以包括有:数据长度、数据在BAR空间的地址区间。
步骤104:目标硬件设备根据所述报文头部信息和TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道。
其中,TLP携带的下行数据的类型包括:信令数据和计算数据。其中,信令数据包括:传输涉及配置初始环境相关内容的信令、传输大流量数据上下行控制信息的信令、传输其他业务相关内容的信令。计算数据包括:大流量数据和小流量数据。
基于此,可以预先将下行计算数据和信令数据拆分解码的通道虚拟为8个数据通道和3个信令通道,其中,8个数据通道可以包括:4个大流量数据通道和4个小流量数据通道,3个信令通道可以包括:传输涉及配置初始环境相关内容的信令通道、传输大流量数据上下行控制相关信息的信令通道、传输其他业务相关内容的信令通道。通过将数据通道划分为大流量和小流量两种类型,使用起来更为灵活,且每种类型的数据通道均有4个,能够适配集群环境下的多用户使用场景,且可以解决可能存在的互联集群的某个节点的单一传输通道阻塞的问题。
基于此,目标硬件设备根据所述报文头部信息和TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道,可以包括:
S1:目标硬件设备对所述报文头部信息进行解析,以确定所述TLP携带下行数据的类型,其中,下行数据的类型包括:信令数据和计算数据;
S2:在所述下行数据的类型为信令数据的情况下,根据报文头部信息中的地址信息,将所述TLP中携带的下行数据送至对应的虚拟信令通道;
S3:在所述下行数据的类型为计算数据的情况下,根据报文头部信息中的地址信息,将所述TLP中携带的下行数据送至对应的虚拟数据通道。
在实现的时候,PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据,可以包括:通过主机上的软件,将主机向目标硬件设备传输的下行数据放至主机的存储空间的目标地址中;通过主机上的软件调用PCIe驱动提供的函数,根据所述映射关系,向PCIe的BAR空间中写所述下行数据。
以下行大流量数据传输为例,在PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据之前,还包括:
S1:接收用户通过下行信令访问PCIe所连接的目标硬件设备当前正在执行的任务信息的请求;
S2:响应所述请求,确定当前目标硬件设备是否处于繁忙状态;
S3:在确定处于繁忙状态的情况下,返回繁忙信息以指示当前无法进行下行大流量数据传输;
S4:在确定处于空闲状态的情况下,返回空闲信息以指示当前可进行下行大流量数据传输;
S5:将预传输的大流量数据作为主机向目标硬件设备传输的下行数据。
即,在存在下行大流量数据传输需求的情况下,可以通过用户进行申请,在用户申请通过后,可以通过某个大流量数据传输通道传输下行大流量数据。在下行大流量数据传输的过程中,如果出现异常致使下行数据任务失败,那么监控单元可以通过传输信令的方式将异常反馈至用户层以及异常处理单元,使得下行数据任务能够正常运行。如果下行的数据量过大,超出单一大流量数据传输通道的地址区间范围,那么可以多次执行下行数据传输操作,直到完成下行大流量数据的任务。
进一步的,在下行大流量数据传输完成后,可以通过下行信令通知释放本次下行大流量数据传输所占用的大流量数据通道和资源。
下面结合一个具体实施例对上述方法进行说明,然而,值得说明的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
针对现有的PCIe信令和数据时,通常是采用单一的处理路径进行处理的,这样势必会导致无法充分利用硬件资源,造成硬件资源的浪费消息;进一步的,在PCIe信令和数据量较大的情况下,现有的方式无法满足实时性和效率的要求,在处理大规模数据时,现有的数据处理方法可能会导致延迟和性能瓶颈,从而影响整个系统的性能。为此,在本例中考虑到可以虚拟出多个虚拟传输通道,将PCIe消息中的数据按照类型拆分为多种,对这些部分进行并行处理,从而提高数据的处理效率,充分利用硬件资源。
如图2所示,主机(Host)和硬件设备之间通过PCIe连接,建立Host的储存空间与PCIe BAR空间的地址之间的映射关系,其中,Host指在网络中提供服务的计算机,它可以是一台服务器,也可以是一台桌面电脑。PCIe一端连接主机,主机能识别到PCIe,主机加载PCIe的驱动后,就可以通过使用主机上的软件向PCIe所连接的硬件设备传输数据,硬件设备也可以通过PCIe向主机传输数据。
具体的,在本例中提供了一种针对PCIe的下行数据处理装置,如图3所示,可以包括如下模块:
1)数据接收与解析模块:
其中,数据的接收是装置通过PCIe接口实时接收外部发送的信息,其中,信息可以包括但不限于:报文(TLP,Transaction Layer Packet)、标志信号等。
其中,数据的解析是在接收到消息后,装置内部的数据解析模块根据协议规范,对报文的头部信息进行解析,以识别出报文的类型和报文携带的下行数据长度。在解析过程可以包括:报文错误校验、报文头部信息提取等步骤。
2)数据拆分模块:
在进行数据拆分的时候,需要根据策略对解析得到的数据进行拆分,具体的,可以根据解析得到的数据类型和数据量信息,确定对应的拆分策略,例如,可以按固定大小拆分、按数据块拆分、按优先级拆分等。
根据确定出的拆分策略,可以将报文中的下行数据拆分成多个子数据流,这些子数据流将分别进入不同的数据处理路径。
具体的,现有的PCIe数据和信令拆分解码处理,一般是将数据和信令做同样处理,且偏向于串行处理方式,在本例中提供了一种拆分解码方法,对于接收到的硬件高速通信接口传输的报文(TLP,Transaction Layer Packet),根据报文所属的不同的BAR空间或者相同BAR空间下不同的起始地址,以区分所接收的不同种类、不同用途的报文,将所有性质不同或目标不同的数据及信令经一个拆分解码(私有协议中命名为Rx unpack)模块,完成拆分解码处理。在此基础上,后续所有数据和信令的更为细节的处理,均为并行处理,从而提升数据处理效率。
以PCIe下行小流量数据(私有协议中命名为direct)类型的transaction包为例,假设当前的transaction包为小流量数据类型,该类型的transaction包的下行传输通过直接写PCIe BAR4空间的某段地址来实现,通过这种方式来传输数据,相较于现有的处理方式而言,可以在加强专有属性的基础上,提升灵活性和扩展性。
进一步的,在本例中提出了多个虚通道的概念,使得传输数据更为高效灵活。具体的,一般的PCIe数据和信令拆分解码方法仅分为一个数据通道和一个信令通道。在本例中,在PCIe的数据和信令拆分解码的处理上,分为了8个数据通道和3个信令通道。
其中,8个数据通道中有4个数据通道为大流量数据通道,另外4个数据通道为小流量数据通道。其中,大流量数据通道的特性为,通过信令下行大流量数据所存放的地址区间的信息,硬件设备据此获取大流量数据。其中,小流量数据通道的特性为,用户直接将数据写到PCIe BAR4空间的某段较小的地址区间内,来实现数据的下行。通过将数据通道划分为大流量和小流量两种类型,使用起来更为灵活,且每种类型的数据通道均有4个,能够适配集群环境下的多用户使用场景,且可以解决可能存在的互联集群的某个节点的单一传输通道阻塞的问题。
其中,3个信令通道分别为:传输涉及配置初始环境相关内容的信令通道、传输大流量数据包上下行相关信息的信令通道、传输其他业务相关内容的信令通道。这3个信令通道分别简称为配置信令通道、大流量传输控制信令通道、业务信令通道。
例如:如图4所示,PCIe BAR2空间的地址0000_0000~0000_007F为下行业务信令通道所在的地址区间;PCIe BAR2空间的地址0000_0080~0000_3FFF为配置信令通道所在的地址区间;PCIe BAR4空间的地址0000_0000~0000_1FFF为下行小流量数据包的小流量数据通道0所在的地址区间;BAR4空间的地址0000_2000~0000_3FFF为下行小流量数据包的小流量数据通道1所在的地址区间等。
3)数据处理模块:
并行处理,针对拆分后的数据流会进入不同的数据处理单元,这些数据处理单元可以并行工作,以提升数据处理的速度和效率。在实现的时候,根据实际需求,不同的数据处理单元可以采用不同的处理方式,例如:计算、存储等。
4)反馈与控制模块:
通过反馈和控制模块实时监控整个处理流程的状态,以确保数据的完整性和正确性。进一步的,根据实际运行情况和需求变化,反馈与控制模块可以对数据处理流程进行动态调整和控制,以实现最佳性能。
进一步的,考虑到在整个数据处理过程中,可能会出现各种错误或异常情况。为此,上述处理装置可以设置错误处理和恢复机制,以确保数据处理的稳定性和可靠性。为了方便用户进行配置、监控和调试,上述数据处理装置可以提供友好的用户界面和调试工具,用户可以通过用户界面查看处理状态、设置参数、进行故障排除等操作。同时,调试工具可以帮助开发人员快速定位问题并进行优化。上述数据处理装置还具备良好的兼容性和互操作性,能够与其他设备进行连接和通信,从而确保在实际应用中的可靠性和广泛适用性。上述的数据处理装置的设计应遵循行业标准和规范,确保其具有良好的可维护性和可升级性,通过标准化接口和模块化设计提高装置的易用性和可扩展性。
具体的,在本例中提供了一种数据传输方法,可以包括:
S1:软件可以对主机上某段地址区间(即,主机的某块储存空间)与PCIe的某个BAR空间的某段地址区间完成地址映射;
S2:软件调用PCIe驱动提供的函数向PCIe的BAR空间内容写数据;
S3:PCIe在接收到主机的下行数据时,向另一段的连接设备,也就是硬件,传输接收到的主机的下行数据;
S4:下行数据在PCIe内做一定的处理;
S5:处理后的数据从硬件高速通信接口输出,输出报文,报文包含了头部信息以及下行数据,其中,报文头部信息中携带有数据长度、地址等信息。硬件高速通信接口除了报文之外,还有专门用以标志当前传输报文属于哪个BAR空间的标志信号。
S6:硬件主要从硬件高速通信接口接收到两个信息,一个是报文,另一个是报文属于PCIe的哪个BAR空间,报文中包含有头部信息和下行数据。
S7:硬件设备根据报文属于PCIe的哪个BAR空间的标志信号,以及报文头部信息中所包含各种信息,做拆分解码处理。具体的,硬件的拆分解码处理装置,可以根据解析的BAR空间的标志信号以及报文头部信息,将报文中携带的原始下行数据送到对应的虚拟通道(即8个虚拟数据传输通道和3个信令传输通道,共11个虚拟传输通道中的一个)。
举例而言,软件人员和硬件逻辑人员协定私有协议。以下行传输业务信令为例:软件人员会将业务信令写到PCIe的BAR2空间的地址0000_0000~0000_007F区间,基于上述的步骤S1至S7,当硬件的拆分处理装置接收到包含下行业务信令的报文时,硬件高速通信接口的传输报文属于哪个BAR空间的标志信号会标志当前传输的报文属于BAR2空间,且报文的头部信息中的起始地址信息会是0000_0000。这样硬件的拆包解码装置就知道,主机下行的报文中的数据内容是业务信令。然后拆包解码装置就可以区分业务信令,并将业务信令送往业务信令所对应的虚拟业务信令通道中。
在上例中,通过拆分PCIe信令数据和计算数据路径,使得可以在短时间内处理大量的数据,从而减少了数据处理的时间延迟,提高了数据吞吐量,满足了高带宽、低延迟的高速传输通信需求。相较于现有的采用单一处理路径的处理方式所导致的硬件资源浪费的问题,本例中的拆分路径处理方法可以根据数据特性和需求,选择出最适合的处理路径,从而充分利用硬件资源,提高了整体的处理效率。进一步的,通过模块化的设计思想,在有新的高速传输设备或协议出现时,只需要增加或修改相应的处理模块,而不需要对整个系统进行大的改动,这大大增强了系统的可扩展性。上例的方法可以适用于各种需要进行大规模高速传输通信的场景,除现有的集群环境外,例如:数据中心、高性能计算、实时图像处理等都适用,以更好地应对高数据量、高传输速率的需求。
如图5所示,为PCIe下行大流量数据的处理流程图,以某位用户下行大流量数据任务为例。硬件环境可以包括但不限于:单一硬件处理卡、互联大规模集群等,在初次上电后,需要对环境做一定的配置,该配置可以通过PCIe下行配置相关信令实现。
具体的,PCIe数据和信令拆分解码方法和装置适配多用户、多任务的互联集群环境,所以如果用户想完成下行大流量数据的任务,可以先通过下行信令访问PCIe所连接的硬件环境当前正在执行任务的信息。如果当前硬件环境业务繁忙,则申请无法通过,如果业务有空闲,允许执行下行大流量数据的任务,则申请通过。
在用户申请通过后,通过PCIe的某个大流量数据传输通道,下行大流量数据。
在下行大流量数据的过程中,如果出现异常致使下行数据任务失败,则部分监控单元逻辑会通过传输信令的方式将异常反馈至用户层以及异常处理单元,使得下行数据任务能够正常运行。如果用户下行的数据较大,超过单一大流量数据传输通道的地址区间范围,则需要多次执行下行数据操作,直到完成下行大流量数据的任务。进一步的,为了保证硬件环境的资源能充分利用,当用户任务完成后,可以通过PCIe下行信令通知本次任务所占用的通道及其他资源可以释放。
本申请上述实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在电子设备上为例,图6是本申请提供的一种基于PCIe协议的处理卡的数据传输方法的电子设备的硬件结构框图。如图6所示,电子设备10可以包括一个或多个(图中仅示出一个)处理器02(处理器02可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器04、以及用于通信功能的传输模块06。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备10还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。
存储器04可用于存储应用软件的软件程序以及模块,如本申请实施例中的基于PCIe的数据传输方法对应的程序指令/模块,处理器02通过运行存储在存储器04内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的基于PCIe协议的处理卡的数据传输方法。存储器04可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器04可进一步包括相对于处理器02远程设置的存储器,这些远程存储器可以通过网络连接至电子设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块06用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备10的通信供应商提供的无线网络。在一个实例中,传输模块06包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块06可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在软件层面,上述基于PCIe协议的处理卡的数据传输装置可以如图7所示,包括:
接收模块701,用于接收目标报文;
第一确定模块702,用于确定目标报文所属的PCIe BAR空间;
第二确认模块703,用于确定所述目标报文所属的PCIe BAR空间的起始地址和报文携带的数据长度;
传输模块704,用于基于目标报文所属的BAR空间信息以及目标报文的头部信息,将目标报文携带的原始下行数据传输至对应的虚拟传输通道。
因为对于携带下行数据的报文从硬件高速传输接口输出之后,在硬件设备上就由串行改为多路并行,从而极大地降低了高速传输通信网络忙碌和阻塞的概率,提升了数据传输的吞吐量。
本申请的实施例还提供能够实现上述实施例中的基于PCIe协议的处理卡的数据传输方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的基于PCIe协议的处理卡的数据传输方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1,用于接收目标报文;
步骤2:确定目标报文所属的PCIe BAR空间;
步骤3:确定所述目标报文所属的PCIe BAR空间的起始地址和报文中携带的数据长度;
步骤4:基于目标报文所属的BAR空间信息以及目标报文头部信息,将目标报文携带的下行数据传输至对应的虚拟传输通道。
本申请的实施例还提供能够实现上述实施例中的基于PCIe协议的处理卡的数据传输方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于PCIe协议的处理卡的数据传输方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1,用于接收目标报文;
步骤2:确定目标报文所属的PCIe BAR空间;
步骤3:确定所述目标报文所属的PCIe BAR空间的起始地址和报文携带的数据长度;
步骤4:基于目标报文所属的BAR空间信息以及目标报文头部信息,将目标报文携带的下行数据传输至对应的虚拟传输通道。
从上述描述可知,本申请实施例本申请提供的基于PCIe协议的处理卡的数据传输方法和通信系统,通过虚拟出多个传输通道,在接收到主机向目标硬件设备传输的下行数据情况下,确定报文所属的PCIe BAR空间,以及原始下行数据的类型,从而将原始下行数据送入对应的虚拟传输通道。因为携带下行数据的报文从硬件高速通信接口输出之后,在硬件设备上就由串行改为了多路并行,从而极大地降低了高速传输通信网络忙碌和阻塞的概率,提升了数据传输的吞吐量,提升了大流量数据和小流量数据的传输效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

Claims (10)

1.一种基于PCIe协议的处理卡的数据传输方法,其特征在于,所述方法包括:
通过主机上的软件建立主机上的存储空间与PCIe的BAR空间的地址区间之间的映射关系;
PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据,其中,主机与所述目标硬件设备之间通过PCIe连接;
PCIe对所述下行数据进行处理,并通过硬件高速通信接口向目标硬件设备输出协议报文TLP和用于标识所述TLP所属的BAR空间的标志信号,其中,TLP中携带有报文头部信息和下行数据;
所述目标硬件设备根据所述报文头部信息和所述TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道。
2.根据权利要求1所述的方法,其特征在于,在所述目标硬件设备根据所述报文头部信息和TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道之前还包括:
预先将通道虚拟为8个虚拟数据通道和3个虚拟信令通道,其中,8个虚拟数据通道包括:4个大流量数据通道和4个小流量数据通道,3个虚拟信令通道包括:传输配置初始环境相关内容的信令通道、传输大流量数据上下行相关信息的信令通道、传输业务相关内容的信令通道。
3.根据权利要求1所述的方法,其特征在于,所述目标硬件设备根据所述报文头部信息和TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道,包括:
所述目标硬件设备对所述报文头部信息进行解析,以确定所述TLP携带的下行数据的类型,其中,TLP携带的下行数据的类型包括:信令数据和计算数据;
在下行数据的类型为信令数据的情况下,根据报文头部信息中的地址信息,将下行数据送至对应的虚拟信令通道;
在下行数据的类型为计算数据的情况下,根据报文头部信息中的地址信息,将下行数据送至对应的虚拟数据通道。
4.根据权利要求1所述的方法,其特征在于,PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据,包括:
通过主机上的软件,将主机向目标硬件设备传输的下行数据放至主机的存储空间的目标地址中;
通过主机上的软件调用PCIe驱动提供的函数,根据所述映射关系,向PCIe的BAR空间中写所述下行数据。
5.根据权利要求1所述的方法,其特征在于,所述报文头部信息中包括:数据长度、数据在BAR空间的地址区间等。
6.根据权利要求1所述的方法,其特征在于,在PCIe根据所述映射关系接收主机向目标硬件设备传输的下行数据,所述下行数据为大流量数据之前,还包括:
接收用户通过下行信令访问PCIe所连接的目标硬件设备当前正在执行的任务信息的请求;
响应所述请求,确定当前目标硬件设备是否处于繁忙状态;
在确定处于繁忙状态的情况下,返回繁忙信息以指示当前无法进行下行大流量数据传输;
在确定处于空闲状态的情况下,返回空闲信息以指示当前可进行下行大流量数据传输;
将预传输的大流量数据作为主机向目标硬件设备传输的下行数据。
7.根据权利要求6所述的方法,其特征在于,还包括:
在下行大流量数据传输完成后,通过下行信令通知释放本次下行大流量数据传输所占用的大流量数据通道和资源。
8.一种基于PCIe协议的处理卡的数据通信系统,其特征在于,包括:主机、PCIe和目标硬件设备,其中,主机与目标硬件设备之间通过PCIe连接;
主机,通过主机上的软件建立主机上的存储空间与PCIe的BAR空间的地址区间之间的映射关系;
PCIe,根据所述映射关系接收主机向目标硬件设备传输的下行数据,并对所述下行数据进行处理,并通过硬件高速通信接口向目标硬件设备输出协议报文TLP和用于标识所述TLP所属的BAR空间的标志信号,其中,TLP中携带有所述下行数据和报文头部信息;
目标硬件设备,根据所述报文头部信息和TLP所属的BAR空间的标志信号,将所述TLP中携带的下行数据送至对应的虚拟通道。
9.根据权利要求8所述的系统,其特征在于,所述主机为网络中提供服务的计算机,包括:服务器、桌面电脑等。
10.根据权利要求8所述的系统,其特征在于,所述目标硬件设备为基于PCIe协议的处理卡。
CN202410503692.5A 2024-04-25 2024-04-25 基于PCIe协议的处理卡的数据传输方法和通信系统 Pending CN118295954A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410503692.5A CN118295954A (zh) 2024-04-25 2024-04-25 基于PCIe协议的处理卡的数据传输方法和通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410503692.5A CN118295954A (zh) 2024-04-25 2024-04-25 基于PCIe协议的处理卡的数据传输方法和通信系统

Publications (1)

Publication Number Publication Date
CN118295954A true CN118295954A (zh) 2024-07-05

Family

ID=91685993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410503692.5A Pending CN118295954A (zh) 2024-04-25 2024-04-25 基于PCIe协议的处理卡的数据传输方法和通信系统

Country Status (1)

Country Link
CN (1) CN118295954A (zh)

Similar Documents

Publication Publication Date Title
US10868767B2 (en) Data transmission method and apparatus in optoelectronic hybrid network
CN107133109B (zh) 一种模块间通信的方法、装置及计算设备
US12034604B2 (en) MQTT protocol simulation method and simulation device
CN112463614A (zh) 一种基于硬件板卡接入的软件虚拟化测试环境构建方法
CN112422485B (zh) 一种传输控制协议的通信方法及装置
WO2006121247A1 (en) High speed data processing communication method and apparatus for embedded system
CN112367196B (zh) 一种检测网络通信故障的方法、装置及电子设备
CN104038446A (zh) 链路发现方法以及装置
CN110430110B (zh) 一种现场总线网关及其协议转换方法
CN115580667B (zh) 数据传输方法、装置、设备及存储介质
CN112532447A (zh) 一种rdma参数配置的方法、装置及存储介质
CN118295954A (zh) 基于PCIe协议的处理卡的数据传输方法和通信系统
CN116340111A (zh) 一种Linux套接字监听事件监控方法及装置
CN116126756A (zh) 一种基于fmql的srio实现装置及方法
CN111556043B (zh) 一种报文处理方法、装置、系统、设备及可读存储介质
CN110687854B (zh) 一种pa总线控制器以及一种pa总线控制系统
CN105376341B (zh) 自动跟踪设备多ip配置的方法
CN118260237B (zh) 一种接口控制器、通信方法、系统、存储介质及程序产品
CN116302850B (zh) 一种Linux套接字连接事件监控方法及装置
CN111435930B (zh) 一种控制pdu发送方法、装置、电子设备及存储介质
CN115842852A (zh) 一种节点间通信方法、系统、存储介质和电子设备
CN118400415A (zh) 一种pcie节点反向管理处理系统及方法
CN117061270A (zh) 一种基于分布式软总线实现远程设备本地化虚拟与访问的方法
An et al. A Programmable Routing System for Semi-physical Simulation
CN117240758A (zh) 多节点异常环路处理方法、系统、设备及可读存储介质

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