CN117812148A - 一种基于fpga的高效通用内存数据搬移装置 - Google Patents
一种基于fpga的高效通用内存数据搬移装置 Download PDFInfo
- Publication number
- CN117812148A CN117812148A CN202311712875.XA CN202311712875A CN117812148A CN 117812148 A CN117812148 A CN 117812148A CN 202311712875 A CN202311712875 A CN 202311712875A CN 117812148 A CN117812148 A CN 117812148A
- Authority
- CN
- China
- Prior art keywords
- memory
- data packet
- data
- transaction
- user
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 159
- 230000004044 response Effects 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims abstract description 7
- 239000003795 chemical substances by application Substances 0.000 claims description 79
- 238000012545 processing Methods 0.000 claims description 33
- 239000000872 buffer Substances 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 210000001503 joint Anatomy 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 3
- 238000012546 transfer Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于数据通信技术领域,具体涉及一种基于FPGA的高效通用内存数据搬移装置,包括用户代理组件、内存代理组件以及数据包交换组件:所述数据包交换组件用于接收用户代理组件/内存代理组件上行的请求或是响应数据包;所述用户代理组件,所述用户代理组件接收用户请求,并对用户请求进行处理后,将数据包发送至数据包交换组件的上行端口;所述内存代理组件用于从数据包交换组件的下行端口中获取数据包并进行解析,将数据包发发送至数据包交换组件的上行端口;该发明能够实现不同需求场景的灵活配置,且数据搬移装置和用户协议解耦,可以被不同应用集成,而不需要关心具体的用户协议,另外能够保证内存读写的高效性。
Description
技术领域
本发明属于数据通信技术领域,具体涉及一种基于FPGA的高效通用内存数据搬移装置。
背景技术
随着AI/大数据分析等海量数据应用发展,传统以CPU为核心的计算体系面临着巨大的挑战。随着摩尔定律影响日渐削弱,单纯CPU处理能力已无法满足当前和未来数据中心算力需求,更多的异构计算单元(如FPGA、AI芯片、CPU、DPU等)也逐步走到数据中心计算体系架构的中心舞台,为数据中心算力/算效提升发挥着越来越重要的作用。在异构计算体系中不同异构计算单元内存之间数据搬移效率是整个异构计算系统计算效率的关键。传统内存数据搬移的方案可以分为两类:
CPU软件方案:即在内存统一编址架构下,通过CPU软件编程方式将数据从一个内存空间拷贝到另外一个内存空间。该方案的优势是通用灵活,缺点是在大量数据搬移场景CPU的消耗是巨大的,在当前数据中心应用场景下基本不可行。
硬件DMA方案:即提供一个片上硬件DMA组件,CPU通过特定的交互机制,将数据搬移的内存地址和数据长度传递到片上硬件DMA组件,片上硬件DMA组件根据内存地址和长度实现内存数据搬移后,再通过交互机制(中断或是队列交互机制)通知CPU,从而完成内存数据搬移。该方案的优点是数据搬移的速度快效率高,而且片上DMA硬件组件执行搬移过程,不消耗CPU算力。典型的有AMD的XDMA/QDMA方案。这类片上硬件DMA的方案以下几个问题:
一是DMA交互协议深度定制,通用性不足;二是DMA大多只支持单向操作,即数据只在用户端和内存端之间进行数据搬移。内存之前的数据搬移依赖用户侧进行搬移,降低了搬移效率;三是缺乏有效调度机制,多通道访问效率存在瓶颈。
发明内容
本发明的目的是提供一种基于FPGA的高效通用内存数据搬移装置,能够实现不同需求场景的灵活配置,且数据搬移装置和用户协议解耦,可以被不同应用集成,而不需要关心具体的用户协议,另外能够保证内存读写的高效性。
本发明采取的技术方案具体如下:
一种基于FPGA的高效通用内存数据搬移装置,包括用户代理组件、内存代理组件以及数据包交换组件:
所述数据包交换组件用于接收用户代理组件/内存代理组件上行的请求或是响应数据包,根据目的端口地址将数据包下行转发到对应的端口;
所述用户代理组件,所述用户代理组件接收用户请求,并对用户请求进行处理后,将数据包发送至数据包交换组件的上行端口,用于实现多用户内存访问;
所述内存代理组件用于从数据包交换组件的下行端口中获取数据包并进行解析,对解析后的数据包进行内存事务处理后,将数据包发发送至数据包交换组件的上行端口,其中,所述内存事务处理包括写事务操作、读事务操作以及拷贝事务操作;
且,所述用户代理组件从数据包交换组件的下行端口获取经内存事务处理后的数据包,并将数据包返回给用户。
在一种优选方案中,所述发用户代理组件包括:
第一发送侧,所述第一发送侧用于为每个用户分配1个请求者ID,并为每个用户的请求分配一个事务ID,且所述请求者之间相互独立,同一个请求者不同事务相互独立,其中,所述用户代理组件根据配置数据包大小对用户请求进行切分,然后根据内存访问地址查找地址端口映射表,获取对应内存代理节点端口号,根据数据报文封装格式将数据包封装后发送到数据包交换组件上行端口;
第一接收侧,所述第一接收侧用于从数据包交换组件的下行端口获取内存事务处理后的数据包,进行解析后根据请求者ID将数据包分发到对应用户的接收处理逻辑进行处理,其中,用户接收处理逻辑根据数据事务类型,事务ID查找该事务的上下文信息,同时根据数据包序列号对同一个事务内部的数据报文进行排序后,将数据返回用户。
在一种优选方案中,所述内存代理组件分为PCIe接口内存代理和DDR接口内存代理,所述PCIe接口内存代理和DDR接口内存代理分别对接PCIe接口控制器和DDR控制器。
在一种优选方案中,所述内存代理组件包括:
第二接收侧,所述第二接收侧用从数据包交换组件下行端口获取数据包并进行解析,提取内存操作信息,根据内存操作类型,进行内存事务处理,所述内存事务处理包括写事务操作、读事务操作或拷贝事务操作,其中,所述拷贝事务操作需根据写地址查找地址端口映射表,若端口等于本地端口,则将读回的数据包封装成写操作,返回到当前内存代理组件的接收缓冲区;
第二发送侧,所述第二发送侧用于根据事务处理类型构造应答报文并发送至数据交换组件的上行端口。
在一种优选方案中,所述数据包交换组件的上行侧提供上行缓冲区,缓存端口上行数据包根据数据包目的端口号转发到对应端口下行缓冲区,所述数据包交换组件的下行侧提供多个独立下行缓冲区,用户缓存不同端口转发数据,对多个缓冲区数据进行调度后发送到对应节点。
在一种优选方案中,所述第二接收侧在进行内存事务处理前对数据包进行解封装,用于剥离数据包头,提取内存操作信息、Transaction信息以及数据净荷。
在一种优选方案中,所述写事务操作用于根据写地址和写数据长度,将写数据写入内存中。
在一种优选方案中,所述读事务操作用于根据读地址和读数据长度,从内存中读取数据。
在一种优选方案中,所述拷贝事务操作用于根据读地址和读数据长度,从内存中读取数据,根据写地址查表获取Port ID,若和当前内存代理Port ID相同则根据构造CopyWrite报文,内部转发到写事务处理逻辑,若和当前内存代理Port ID不相同,则需要转发到对应的内存代理组件。
在一种优选方案中,所述第二发送侧根据事务处理类型构造应答报文并发送至数据交换组件的上行端口具体包括:
读事务应答:根据Requester ID查表获得用户对应的Port ID,构造应答报文上行转发到数据包交换组件;
写事务应答:根据Requester ID查表获得用户对应的Port ID,把读回的数据封装成应答报文上行转发到数据包交换组件;
Copy事务请求:根据Requester ID查表获得用户对应的Port ID,构造应答报文上行转发到数据包交换组件。
本发明取得的技术效果为:
本发明中在架构设计上采用了分层的方式;事务层、数据交换层、内存层代理组件相互独立,并可以独立升级扩展;通过增加/减少交换端口和代理组件数量,以及端口配置表项,可以实现不同需求场景的灵活配置。
本发明中通过数据搬移系统和用户协议解耦,可以被不同应用集成,而不需要关心具体的用户协议。
本发明中通过对用户请求按照配置粒度进行切分,并根据带宽分配机制对不同用户进行调度,确保每个用户的访问的带宽,相互不影响;此外内存代理只负责内存读写操作,不需要关心事务层数据的顺序或其他依赖关系,则可以保证内存读写的高效性;而事务层基于事务维护事务内部的数据依赖关系,事务之间相互独立,互不影响,从而确保事务高效处理。
附图说明
图1是本发明的整体架构图;
图2是本发明的写事务处理流程图;
图3是本发明的读事务处理流程图;
图4是本发明的同一个内存节点内拷贝事务流程图;
图5是本发明的不同内存节点见拷贝事务流程图;
图6是本发明的用户代理组件框图;
图7是本发明的内存代理组件框图;
图8是本发明的数据包交换组件框图;
图9是本发明的分层报文封装格式。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个较佳的实施方式中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
请参阅附图1所示,本发明提供了一种基于FPGA的高效通用内存数据搬移装置,包括用户代理组件、内存代理组件以及数据包交换组件:
所述数据包交换组件构成数据包粒度的交换网络,基于可配置的地址端口映射表实现多点代理组件的数据灵活交换,用于接收用户代理组件/内存代理组件上行的请求或是响应数据包,根据目的Port ID(端口地址)将数据包下行转发到对应的端口;
所述用户代理组件工作在事务层。主要完成用户内存操作事务的切分、调度、返回数据排序等功能,保证了用户操作事务的完整性处理,具体的,所述用户代理组件接收用户请求,并对用户请求进行处理后,将数据包发送至数据包交换组件的上行端口,用于实现多用户内存访问;
所述内存代理组件完成基于数据包粒度的高效内存操作,包含内存写,内存读,内存拷贝等基本内存操作,也可以实现原子操作等高级内存操作,具体的,所述内存代理组件用于从数据包交换组件的下行端口中获取数据包并进行解析,对解析后的数据包进行内存事务处理后,将数据包发发送至数据包交换组件的上行端口,其中,所述内存事务处理包括写事务操作、读事务操作以及拷贝事务操作;
且,所述用户代理组件从数据包交换组件的下行端口获取经内存事务处理后的数据包,并将数据包返回给用户。
其中,用户代理组件支持多个用户通道,每个通道分配唯一全局唯一的RequesterID(请求者id)用于区分不同用户(或通道)。用户侧代理组件接收用户的memory(存储器)操作请求,并分配一个Transaction ID(事务id),且每个事务(Transaction)之间相互独立。
采用上述装置,将传统定制化交互协议层剥离由用户设计。分层设计,由用户代理、内存代理和数据包交换组件构成的数据搬移系统可以实现用户代理、内存代理节点的灵活扩展,并通过可配置的交换表项时实现多点之间灵活数据搬移,解决通用性和灵活性问题,同时数据交换组件构成的数据交换层可实现用户和用户节点之间、用户和内存节点之间、内存和内存节点之间的数据搬移,结合分层设计,基于数据包的粒度进行多用户内存数据访问的调度、和内存数据交换,解决多用户之间性能相互影响和抖动问题。
在一个较佳的实施方式中,请参阅图7,所述发用户代理组件包括:
第一发送侧,所述第一发送侧用于为每个用户分配1个请求者ID,并为每个用户的请求分配一个事务ID,且所述请求者之间相互独立,同一个请求者不同事务相互独立,其中,所述用户代理组件根据配置数据包大小对用户请求进行切分,然后根据内存访问地址查找地址端口映射表,获取对应内存代理节点端口号,根据数据报文封装格式将数据包封装后发送到数据包交换组件上行端口;
第一接收侧,所述第一接收侧用于从数据包交换组件的下行端口获取内存事务处理后的数据包,进行解析后根据请求者ID将数据包分发到对应用户的接收处理逻辑进行处理,其中,用户接收处理逻辑根据数据事务类型,事务ID查找该事务的上下文信息,同时根据数据包序列号对同一个事务内部的数据报文进行排序后,将数据返回用户。
为了进一步理解与说明,更为具体的第一发送侧的处理步骤包括如下步骤:
切片:用户代理组件根据配置对用户的事务请求切分成更小粒度的报文,目的是防止单一用户事务长期占用处理逻辑资源,从而影响了其他用户的事务请求的处理。
查表:用户代理组件根据用户事务访问地址进行查表获取memory代理(或用户代理)对应Port ID信息。对于Write/Read(读取写入)事务地址只有一个地址,查询的port作为目的Port ID。而对于Copy事务,用户代理侧只需要处理Copy的源地址。即根据Copy事务的源地址查表获得第1跳内存代理组件的Port ID。
封装:用户代理组件对用户请求进行后如附图9所示数据包格式封装。
第一接收侧的处理步骤包括:
解封装:提取响应数据包头和响应数据净荷。
分发:根据Requester ID分发到对应通道的响应处理单元。
排序:对于读操作,根据报文序列号进行切片排序,将切片按照顺序返回用户逻辑
查表:根据Transaction ID查找记录的用户事务信息与数据包同时返回用户逻辑。
在该实施方式中,用户代理组件通过支持多个用户通道、且各个用户请求或事务独立性、能够实现多用户访问通道调度管理,实现更高效的数据访问,且通过切片机制、查表获取Port ID、封装和解封装、分发和排序、查表返回用户逻辑等功能,提高了系统的并发性、吞吐量、响应速度、性能和灵活性、可靠性以及用户体验。
在一个较佳的实施方式中,请参阅图1,所述内存代理组件分为PCIe接口内存代理和DDR接口内存代理,所述PCIe接口内存代理和DDR接口内存代理分别对接PCIe接口控制器和DDR控制器。
在上述实施方式中,PCIe接口是一种高速总线标准,用于连接处理器和外部设备,包括计算机显卡、声卡、硬盘驱动适配器等,通过PCIe接口内存代理,可以实现与CPU的直接连接,从而提高数据处理速度,同时能够实现多个设备连接在一个节点,使得系统具有更好的灵活性和扩展性。而由于内存控制器通常包含在CPU package中,用于控制对内存的访问。因此通过DDR接口内存代理,可以实现与内存控制器的直接连接,从而优化内存的控制和管理。在实际应用中可能涉及更多的细节和功能,因此通过使用PCIe接口内存代理和DDR接口内存代理,可以简化系统设计,减少系统的复杂性。
在一个较佳的实施方式中,请参阅图6,所述内存代理组件包括:
第二接收侧,所述第二接收侧用从数据包交换组件下行端口获取数据包并进行解析,提取内存操作信息,根据内存操作类型,进行内存事务处理,所述内存事务处理包括写事务操作、读事务操作或拷贝事务操作,其中,所述拷贝事务操作需根据写地址查找地址端口映射表,若端口等于本地端口,则将读回的数据包封装成写操作,返回到当前内存代理组件的接收缓冲区;
第二发送侧,所述第二发送侧用于根据事务处理类型构造应答报文并发送至数据交换组件的上行端口。
为了进一步理解与说明,请参阅图2至图6第二接收侧在进行内存事务处理前对数据包进行解封装,用于剥离数据包头,提取内存操作信息、Transaction信息以及数据净荷,具体的第二接收侧的处理步骤包括如下步骤:
解封装:剥离数据包头,提取内存操作信息、Transaction信息以及数据净荷。
内存事务处理:
Write事务:根据写地址和写数据长度,将写数据写入内存中;
Read事务:根据读地址和读数据长度,从内存中读取数据;
Copy事务:根据读地址和读数据长度,从内存中读取数据。根据写地址查表获取Port ID。如果和当前内存代理Port ID相同则根据构造Copy Write报文,内部转发到写事务处理逻辑。如果和当前内存代理Port ID不相同,则需要转发到对应的内存代理组件。
Copy Write事务:根据写地址和写数据长度,将写数据写入内存中。
第二发送侧主要功能为封装和转发,具体的处理步骤包括
Write事务应答:根据Requester ID查表获得用户对应的Port ID。构造应答报文上行转发到数据包交换组件;
Read事务应答:根据Requester ID查表获得用户对应的Port ID。把读回的数据封装成应答报文上行转发到数据包交换组件
Copy Write事务请求:如果Copy Write操作的Port ID和当前内存代理Port ID不相同,则构造Copy Write请求报文上行转发到数据包交换组件
Copy Write事务应答:根据Requester ID查表获得用户对应的Port ID,构造应答报文上行转发到数据包交换组件。
在该实施方式中,解封装和封装的过程分离,使得数据处理和网络传输可以并行进行,提高了处理效率,内存代理模块可以根据不同的操作类型(Write、Read、Copy)进行相应的处理逻辑,实现了模块化的设计,提高了代码的可维护性和可扩展性,用时通过查表获取Port ID的方式,可以实现对不同端口的数据转发,增加了系统的灵活性和可配置性。
第二发送侧的功能为封装和转发,将数据封装成报文并发送到数据包交换组件,实现了数据的可靠传输和交换。
在其中一个较佳的实施方式中,请参阅图8,数据包交换组件的上行侧提供上行缓冲区,缓存端口上行数据包根据数据包目的端口号转发到对应端口下行缓冲区,所述数据包交换组件的下行侧提供多个独立下行缓冲区,用户缓存不同端口转发数据,对多个缓冲区数据进行调度后发送到对应节点。
在该实施方式中,数据交换组件可实现可实现用户和用户节点之间、用户和内存节点之间、内存和内存节点之间的数据搬移,并通过使用独立的下行缓冲区,可以有效地管理和调度来自不同端口的数据包,从而确保数据包的有序发送,减少了数据丢失的可能性。此外,通过在上行侧提供上行缓冲区,可以提高数据的接收效率,减少了数据包丢失的风险。
在一个可行的实施方式中,该搬移装置可以用于以下场景:
智能网卡和GPU协同场景,实现智能网卡和GPU内存之间高效数据搬移
智能网卡和加速卡协同场景,实现智能网卡和异构加速卡内存之间高效数据搬移
智能网卡和多主机通信场景,实现智能网卡和多主机内存之间高效数据搬移。
本发明的工作原理为:分层设计:交互协议层、用户代理层、数据交换层和内存访问层。在传统定制化交互协议层的基础上,我们将进行剥离,由用户自行设计,对于用户代理层、数据交换层和内存访问层,我们将进行通用化设计,以解决通用性和灵活性的问题,数据交换层具备实现用户与用户节点之间、用户与内存节点之间以及内存节点之间的数据搬移功能。通过这一层的设计,我们可以实现不同用户之间的数据共享和传输,提高数据的可用性和效率。用户代理层可以实现对用户访问粒度的管理。通过对用户的权限和访问控制进行细致的管理,我们可以确保只有授权的用户能够访问特定的资源和数据。同时,内存访问层可以实现多用户访问通道的调度管理,以提高数据访问的效率和并发性能。
通过以上的设计和优化,我们能够实现更高效的数据访问和管理,提升系统的性能和用户体验。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本发明中未具体描述和解释说明的结构、装置以及操作方法,如无特别说明和限定,均按照本领域的常规手段进行实施。
Claims (10)
1.一种基于FPGA的高效通用内存数据搬移装置,其特征在于,包括用户代理组件、内存代理组件以及数据包交换组件:
所述数据包交换组件用于接收用户代理组件/内存代理组件上行的请求或是响应数据包,根据目的端口地址将数据包下行转发到对应的端口;
所述用户代理组件,所述用户代理组件接收用户请求,并对用户请求进行处理后,将数据包发送至数据包交换组件的上行端口,用于实现多用户内存访问;
所述内存代理组件用于从数据包交换组件的下行端口中获取数据包并进行解析,对解析后的数据包进行内存事务处理后,将数据包发发送至数据包交换组件的上行端口,其中,所述内存事务处理包括写事务操作、读事务操作以及拷贝事务操作;
且,所述用户代理组件从数据包交换组件的下行端口获取经内存事务处理后的数据包,并将数据包返回给用户。
2.根据权利要求1所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述发用户代理组件包括:
第一发送侧,所述第一发送侧用于为每个用户分配1个请求者ID,并为每个用户的请求分配一个事务ID,且所述请求者之间相互独立,同一个请求者不同事务相互独立,其中,所述用户代理组件根据配置数据包大小对用户请求进行切分,然后根据内存访问地址查找地址端口映射表,获取对应内存代理节点端口号,根据数据报文封装格式将数据包封装后发送到数据包交换组件上行端口;
第一接收侧,所述第一接收侧用于从数据包交换组件的下行端口获取内存事务处理后的数据包,进行解析后根据请求者ID将数据包分发到对应用户的接收处理逻辑进行处理,其中,用户接收处理逻辑根据数据事务类型,事务ID查找该事务的上下文信息,同时根据数据包序列号对同一个事务内部的数据报文进行排序后,将数据返回用户。
3.根据权利要求1所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述内存代理组件分为PCIe接口内存代理和DDR接口内存代理,所述PCIe接口内存代理和DDR接口内存代理分别对接PCIe接口控制器和DDR控制器。
4.根据权利要求3所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述内存代理组件包括:
第二接收侧,所述第二接收侧用从数据包交换组件下行端口获取数据包并进行解析,提取内存操作信息,根据内存操作类型,进行内存事务处理,所述内存事务处理包括写事务操作、读事务操作或拷贝事务操作,其中,所述拷贝事务操作需根据写地址查找地址端口映射表,若端口等于本地端口,则将读回的数据包封装成写操作,返回到当前内存代理组件的接收缓冲区;
第二发送侧,所述第二发送侧用于根据事务处理类型构造应答报文并发送至数据交换组件的上行端口。
5.根据权利要求1所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述数据包交换组件的上行侧提供上行缓冲区,缓存端口上行数据包根据数据包目的端口号转发到对应端口下行缓冲区,所述数据包交换组件的下行侧提供多个独立下行缓冲区,用户缓存不同端口转发数据,对多个缓冲区数据进行调度后发送到对应节点。
6.根据权利要求4所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述第二接收侧在进行内存事务处理前对数据包进行解封装,用于剥离数据包头,提取内存操作信息、Transaction信息以及数据净荷。
7.根据权利要求4所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述写事务操作用于根据写地址和写数据长度,将写数据写入内存中。
8.根据权利要求4所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述读事务操作用于根据读地址和读数据长度,从内存中读取数据。
9.根据权利要求4所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述拷贝事务操作用于根据读地址和读数据长度,从内存中读取数据,根据写地址查表获取PortID,若和当前内存代理Port ID相同则根据构造Copy Write报文,内部转发到写事务处理逻辑,若和当前内存代理Port ID不相同,则需要转发到对应的内存代理组件。
10.根据权利要求4所述的基于FPGA的高效通用内存数据搬移装置,其特征在于:所述第二发送侧根据事务处理类型构造应答报文并发送至数据交换组件的上行端口具体包括:
读事务应答:根据Requester ID查表获得用户对应的Port ID,构造应答报文上行转发到数据包交换组件;
写事务应答:根据Requester ID查表获得用户对应的Port ID,把读回的数据封装成应答报文上行转发到数据包交换组件;
Copy事务请求:根据Requester ID查表获得用户对应的Port ID,构造应答报文上行转发到数据包交换组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311712875.XA CN117812148A (zh) | 2023-12-13 | 2023-12-13 | 一种基于fpga的高效通用内存数据搬移装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311712875.XA CN117812148A (zh) | 2023-12-13 | 2023-12-13 | 一种基于fpga的高效通用内存数据搬移装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117812148A true CN117812148A (zh) | 2024-04-02 |
Family
ID=90421039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311712875.XA Pending CN117812148A (zh) | 2023-12-13 | 2023-12-13 | 一种基于fpga的高效通用内存数据搬移装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117812148A (zh) |
-
2023
- 2023-12-13 CN CN202311712875.XA patent/CN117812148A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6757768B1 (en) | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node | |
EP1581875B1 (en) | Using direct memory access for performing database operations between two or more machines | |
US6832279B1 (en) | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node | |
US5991797A (en) | Method for directing I/O transactions between an I/O device and a memory | |
EP1896965B1 (en) | Dma descriptor queue read and cache write pointer arrangement | |
US8990801B2 (en) | Server switch integration in a virtualized system | |
US9813283B2 (en) | Efficient data transfer between servers and remote peripherals | |
CN112422615A (zh) | 一种通信的方法及装置 | |
US20030026205A1 (en) | Packet input thresholding for resource distribution in a network switch | |
US7403525B2 (en) | Efficient routing of packet data in a scalable processing resource | |
JPH10301873A (ja) | 通信システムで比較的大きなデータ・オブジェクトの伝送を制御するシステムと方法 | |
CN104821887A (zh) | 通过使用具有不同延迟的存储器来进行分组处理的设备和方法 | |
US20240039995A1 (en) | Data access system and method, device, and network adapter | |
WO2007146343A2 (en) | Sharing data between partitions in a partitionable system | |
CN113986791A (zh) | 一种智能网卡快速dma设计方法、系统、设备及终端 | |
EP1554644A2 (en) | Method and system for tcp/ip using generic buffers for non-posting tcp applications | |
CN111290979B (zh) | 数据传输方法、装置及系统 | |
CN114363269B (zh) | 一种消息传输方法、系统、设备以及介质 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
US20240061802A1 (en) | Data Transmission Method, Data Processing Method, and Related Product | |
US7929439B1 (en) | Multiple network interface core apparatus and method | |
CN113126911A (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
CN113691466A (zh) | 一种数据的传输方法、智能网卡、计算设备及存储介质 | |
US9665519B2 (en) | Using a credits available value in determining whether to issue a PPI allocation request to a packet engine | |
US6108694A (en) | Memory disk sharing method and its implementing apparatus |
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 |