CN118113638A - Rdma数据传输方法及设备 - Google Patents
Rdma数据传输方法及设备 Download PDFInfo
- Publication number
- CN118113638A CN118113638A CN202410341929.4A CN202410341929A CN118113638A CN 118113638 A CN118113638 A CN 118113638A CN 202410341929 A CN202410341929 A CN 202410341929A CN 118113638 A CN118113638 A CN 118113638A
- Authority
- CN
- China
- Prior art keywords
- memory
- network card
- network
- equipment
- user program
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000005540 biological transmission Effects 0.000 title abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims abstract description 20
- 230000006854 communication Effects 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims abstract description 17
- 238000012546 transfer Methods 0.000 claims description 16
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种RDMA数据传输方法及设备,该方法包含:将网卡设备内存地址空间映射到系统总线地址空间;网卡驱动创建数据结构用于统一管理网卡设备内存资源;用户程序申请网卡设备内存,网卡驱动分配设备内存,并将其映射到用户程序虚拟地址空间;用户程序注册网卡设备内存,在注册表项中填入设备内存信息;用户程序下发网络任务,网卡驱动通知硬件任务信息;网卡硬件处理网络任务,查找内存注册表得到设备内存系统总线地址,对本地设备内存进行读写。本发明所提供的RDMA数据传输方法及设备,将网络数据存放在网卡设备内存上,实现CPU与网卡设备内存之间的直接数据传输路径,以及网卡在本地进行网络数据读写操作,从而提升RDMA网卡的网络通信性能。
Description
技术领域
本发明属于网络技术领域,具体涉及一种RDMA数据传输方法及设备。
背景技术
随着高性能计算和分布式存储场景对节点间网络通信性能需求的提高,越来越多的算力系统采用RDMA网卡进行网络互联。RDMA是一种高带宽、低延时的网络传输协议,通过在网卡中预先注册数据缓冲区的虚拟地址到总线地址的映射关系,实现在数据传输过程中的内核旁路功能。
在现有RDMA网络通信模型中,数据缓冲区位于主机内存,网卡要读写数据缓冲区时,需要使用内存注册表中的总线地址,向DMA控制器发起内存读写请求。尽管DMA访存方式减轻了CPU的负担,但受限于系统总线的通信带宽和延时,并且DMA操作需要独占网卡到主机内存的上游系统总线链路带宽,当多张网卡同时收发数据时,上游总线链路会成为网络通信的性能瓶颈。尤其是对于短报文通信场景来说,DMA初始化在整个通信过程中的延时占比很大,大大影响了RDMA网络的传输效率。
在现有RDMA网络数据传输方法中,数据存放在主机内存,网卡收发数据需要通过DMA控制器向系统总线发出读写主机内存的请求,网络的带宽和延时受限于系统总线的通信性能。
发明内容
本发明提供了一种RDMA数据传输方法及设备解决上述提到的技术问题,具体采用如下的技术方案:
一种RDMA数据传输方法,包括:
网卡驱动初始化,将网卡设备内存地址空间映射到系统总线地址空间;
网卡驱动创建数据结构用于统一管理网卡设备内存资源;
用户程序申请网卡设备内存,网卡驱动分配设备内存,并将其映射到用户程序虚拟地址空间;
用户程序注册网卡设备内存,在注册表项中填入设备内存信息;
用户程序下发网络任务,网卡驱动通知硬件任务信息;
网卡硬件处理网络任务,查找内存注册表得到设备内存系统总线地址,对本地设备内存进行读写。
进一步地,所述网卡设备内存可以是网卡的片上存储空间,也可以是网卡的片外存储空间。
进一步地,网卡驱动在内部使用比特表记录每一个网卡设备内存块的分配和释放情况,每个网卡设备内存块为64字节大小,用户程序以64字节为最小细粒度向驱动申请或释放网卡设备内存。
进一步地,网卡在初始化过程中为片上内存和片外内存分别申请一块系统总线地址空间,网卡驱动创建两个比特表分别管理网卡的片上内存和片外内存对应的总线地址空间,网卡驱动优先分配片上内存资源,并在片上资源不能满足需求时分配网卡的片外内存。
进一步地,网卡驱动通过内存映射机制建立系统总线地址到虚拟地址的映射关系,允许用户程序使用load或store指令读写网卡设备内存。
进一步地,网卡驱动维护一张内存注册表,内存注册表由若干大小固定的表项组成,表项中的多个字段共同描述一次内存注册的信息,包括:设备内存的访问密钥、设备内存系统总线基地址、长度、读写权限信息;
内存注册表可以存放在网卡硬件设备内存中,也可以存放在主机内存中,网卡硬件在内部维护一个内存注册表缓存,缓存最常使用的设备内存注册表项信息。
进一步地,网卡驱动和硬件共同维护一个异步的任务队列,网卡驱动往任务队列的末尾位置添加任务,网卡硬件从任务队列的头部位置取出任务并进行处理;
网卡硬件处理网络任务时,根据访问密钥查找设备内存注册表项,将虚拟偏移地址翻译为系统总线地址,从而对本地设备内存进行读写。
一种RDMA数据传输设备,用于实现权前述的RDMA数据传输方法,包括:
主机内存、CPU、网卡设备及总线接口,主机内存、CPU以及网卡设备通过系统总线互联,总线接口作为三者之间的通信桥梁,负责路由转发CPU或网卡发出的总线事务至目标设备。
进一步地,主机内存作为存储介质,加载了操作系统和用户程序;
CPU负责从主机内存中取指、译码、执行、访存、写回操作。
进一步地,网卡设备包含FPGA模块、DMA引擎模块和设备内存模块;
所述FPGA模块中包含执行硬件代码的逻辑单元电路,负责与网卡驱动进行交互,以及发送和接收网络数据包;
所述DMA引擎模块为网卡与系统总线接口的交互接口,负责接收来自系统总线的请求事务,以及向外发出读写主机内存的总线事务;
所述设备内存模块分为网卡片上内存和片外内存,用于存储网络数据、网络读写任务队列,以及网卡硬件与网卡驱动通信的寄存器资源。
本发明的有益之处还在于所提供的RDMA数据传输方法及设备,将网络数据存放在网卡设备内存上,实现CPU与网卡设备内存之间的直接数据传输路径,实现网卡在本地进行网络数据读写操作,从而提升RDMA网卡的网络通信性能。
本发明所提供的RDMA数据传输方法及设备,通过将网卡的设备内存映射到用户程序所在虚拟地址空间,允许发送方用户程序直接将待发送数据写入网卡设备内存,接收方直接从网卡设备内存读取接收到的网络数据,大大降低了通信延时,提升了网络带宽。一方面,通过地址映射机制将网卡设备内存地址空间映射到用户程序虚拟地址空间,从而允许用户程序可以使用虚拟地址直接对网卡设备内存进行读写,而无需陷入内核态读写网卡设备内存,减少了上下文切换开销。另一方面,通过设备内存注册机制,用户程序将设备内存注册为一块用于收发网络数据的内存区域,在网卡硬件中建立设备内存虚拟地址到总线地址的映射关系,从而允许网卡硬件通过查找设备内存注册表去指定的设备内存中读写网络数据,而无需访问主机内存,减少了内存拷贝的次数。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种RDMA数据传输方法实施例的结构示意图;
图2为本发明提供的一种RDMA数据传输方法的流程图;
图3为本发明提供的一种网卡设备内存映射关系的示意图;
图4为本发明提供的一种网卡设备内存注册表项的示意图;
图5为本发明提供的一种RDMA数据传输设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
以下首先通过一实施例对本发明提供的一种RDMA数据传输方法进行说明。如图1所示,该实施例的目的是将数据存放在网卡设备内存而非主机内存,用户程序能直接读写网卡设备内存而无需陷入内核态,网卡硬件在本地设备内存空间读写网络数据并与远端主机通信而无需依赖系统总线读写主机内存数据,从而提升RDMA网络的通信性能。
如图2所示为本申请的一种RDMA数据传输方法,具体包括:
步骤S1:网卡驱动初始化,将网卡设备内存地址空间映射到系统总线地址空间。
其中,网卡设备内存可以是网卡的片上存储空间,也可以是网卡的片外存储空间。系统总线统一将其视为网卡的内部设备存储空间,即网卡设备内存。
具体地,网卡驱动初始化时,通过写配置寄存器的方式向系统总线申请所需的总线地址空间大小和类型。系统总线接口为网卡分配可用的总线地址空间,并将分配给网卡的总线地址空间基地址写入配置寄存器中。基于从系统总线接口申请所得的总线地址,网卡在内部创建设备内存到系统总线的映射关系。当网卡收到对其系统总线地址的读写请求时,会根据映射关系得到系统总线地址对应的设备内存地址,并执行具体的读写操作。
步骤S2:网卡驱动创建数据结构用于统一管理网卡设备内存资源。
网卡驱动作为操作系统内核的一个模块,向下通过读写寄存器的方式与网卡硬件进行通信交互,向上为用户程序提供了网卡硬件的抽象接口,用户程序通过调用网卡驱动对外暴露的接口申请或释放网卡设备内存资源。
网卡驱动在内部需要创建一个数据结构用于管理网卡设备内存的状态。作为一种可选方案,在本实施例中选择使用比特表记录每一个网卡设备内存块的分配和释放情况,每个网卡设备内存块为64字节大小,即用户程序需要以64字节为最小细粒度向驱动申请或释放网卡设备内存。当网卡驱动收到申请网卡设备内存的请求时,查找比特表并找出其中连续可用的网卡设备内存块,将比特表中对应的比特置1;当网卡驱动收到释放网卡设备内存的请求时,查找比特表中与待释放设备内存地址对应的比特,将其置0表示释放设备内存。
在步骤S1和S2中,作为一种优选方式,网卡在初始化过程中可以为片上内存和片外内存分别申请一块系统总线地址空间,网卡驱动创建两个比特表分别管理网卡的片上内存和片外内存对应的总线地址空间,并优先分配片上内存资源,只有当片上资源不能满足需求时,才分配网卡的片外内存,从而实现更快的数据访问速度。
步骤S3:用户程序申请网卡设备内存,网卡驱动分配设备内存,并将其映射到用户程序虚拟地址空间。
用户程序调用网卡驱动的对外接口,并将所需的设备内存大小作为参数传入。网卡驱动收到来自用户程序的申请设备内存请求后,首先通过查找比特表得到满足要求的连续设备内存块,接着将这些比特置1表示已被分配,最后返回第一个比特对应的系统总线地址。应用程序在得到申请所得设备内存对应的系统总线地址后,需要将系统总线地址映射到当前进程的虚拟地址空间中,从而让应用程序可以像访问主机内存数据一样,通过虚拟地址访问设备内存,即可以使用CPU的load或store指令读写网卡设备内存,而无需陷入内核态读写设备内存,减少了上下文切换的开销。
作为一种优选的实施方式,本实施例通过内存映射(Memory Map,mmap)机制建立系统总线地址到虚拟地址的映射关系。首先找到当前用户程序虚拟地址空间中的可用范围,用于建立映射关系,接着网卡驱动为这段虚拟地址空间建立页表项,将其映射到设备内存总线地址上,最后返回映射后的虚拟首地址。
至此,用户程序可以使用映射后的虚拟地址对设备内存进行读写操作。如图3所示,对于处理器来说,主机内存和网卡设备内存都是系统总线上的外部设备,它们共享同一片系统总线地址空间。上述步骤S1为网卡的设备内存分配了系统总线地址空间,步骤S3将申请得到的网卡片上内存总线地址映射到用户程序虚拟地址空间,从而实现直接读写网卡设备内存的目的。
当用户程序执行load或store指令读写网卡设备内存的虚拟地址时,CPU的内存翻译单元会根据虚拟地址查找页表项。由于页表项中的地址类型为设备地址,系统总线接口会将读写操作路由转发至网卡,网卡解析总线读写请求,最终完成实际的设备内存读或写操作。与传统陷入内核态读写网卡设备内存的方法相比,本实施方式在用户态即可完成读写设备内存操作,避免了操作系统上下文切换操作,提升了读写性能。
本实施例的另一特征是网卡可以解析用户下发的网络发送或接收任务,读写指定的设备内存地址,将发送任务的数据发往目标主机或将来自远端主机的数据写入接收任务指定的设备内存中。需要注意的是,对用户程序而言,可见的是步骤S3中将网卡设备内存映射后的虚拟地址,因此用户程序下发的网络任务中携带的是网卡设备内存虚拟地址信息。然而对网卡而言,可见的是步骤S1中为网卡分配的系统总线地址。因此,网卡完成网络任务的前提是需要在内部建立设备内存虚拟地址到设备内存总线地址的翻译表,这个过程称为设备内存注册,具体过程描述如下。
步骤S4:用户程序注册网卡设备内存,在注册表项中填入设备内存信息。
在本申请的实施方式中,网卡驱动维护一张内存注册表,内存注册表由若干大小固定的表项组成,表项中的多个字段共同描述一次内存注册的信着息,包括:设备内存的访问密钥、设备内存系统总线基地址、长度、读写权限信息。图4示出了设备内存注册表项中每一字段的含义。
在本申请的实施方式中,内存注册表位于网卡设备内存中,网卡驱动和硬件代码共同约定一个设备内存地址,作为内存注册表的基地址,每一个表项在内存注册表都拥有一个唯一的索引值。当网卡驱动注册一块设备内存时,首先要为注册的设备内存分配一个注册表项,得到表项在内存注册表中的索引值。其次,将注册表项的索引值传入自定义的哈希函数,计算得出访问密钥,填入注册表项的第一个字段中。接着将该设备内存块的访问密钥、系统总线基地址、长度、读写权限信息一并填入注册表项的对应字段中。最后,通过写寄存器的方式通知网卡硬件添加了一个设备内存注册表项。
可以理解的是,内存注册表也可以存放在主机内存中,网卡硬件则在内部维护一个内存注册表缓存,缓存最常使用的设备内存注册表项信息。
步骤S5:用户程序下发网络任务,网卡驱动通知硬件任务信息。
具体地,用户程序下发发送或接收网络数据的任务,网卡驱动通知硬件数据所在设备内存的虚拟偏移地址、数据长度以及内存注册表项访问密钥。
在本申请的实施方式中,网卡驱动和硬件共同维护一个异步的任务队列,网卡驱动往任务队列的末尾位置添加任务,网卡硬件从任务队列的头部位置取出任务并进行处理。
设备内存虚拟偏移地址指的是待收发数据所在位置相对于设备内存系统总线基地址的偏移量,用户程序可以由待收发数据相对于步骤S3中为其分配的设备内存虚拟基地址的偏移量计算得出,并下发至网卡驱动。
就发送任务而言,网卡驱动下发的发送任务中携带待发送数据所在设备内存虚拟偏移地址、待发送数据的长度、待发送数据对应内存注册表项的访问密钥,以及目标主机的地址信息、目标网卡设备内存的虚拟偏移地址、目标网卡设备内存注册表项的访问密钥。
就接收任务而言,网卡驱动下发的接收任务中携带待接收数据所在设备内存的虚拟偏移地址、待接收数据的长度、待接收数据对应内存注册表项的访问密钥。
步骤S6:网卡硬件处理网络任务,查找内存注册表得到设备内存系统总线地址,对本地设备内存进行读写。
具体地,网卡硬件处理网络任务时,根据访问密钥查找设备内存注册表项,将虚拟偏移地址翻译为系统总线地址,从而对本地设备内存进行读写。
硬件逻辑代码将设备内存虚拟偏移地址翻译为总线地址的过程如下:硬件逻辑代码首先根据自定义哈希函数求出网络任务中访问密钥对应的内存注册表项索引值,从而可以访问内存注册表的字段;其次将任务中携带的虚拟偏移地址加上表项中的系统总线基地址,得出数据所在的设备内存总线地址。在得到设备内存的总线地址后,硬件逻辑代码根据步骤S1的映射关系,对设备内存实际地址进行读或写操作。
就处理发送任务而言,硬件代码根据上述过程将任务中的虚拟偏移地址翻译为设备内存总线地址,从而可以从设备内存中读出待发送的数据,将数据与任务中携带的目标主机信息一并打包,发送到网络中。
就处理接收任务而言,网卡硬件在接收到网络数据包时,会解析出数据包中携带的目标设备内存访问密钥、目标虚拟偏移地址及长度信息,根据上述过程将虚拟偏移地址转换成目标设备内存总线地址后,将数据包中的数据写入本地的设备内存中。
如图5所示,本申请还提供一种RDMA数据传输设备,用于实现前述的RDMA数据传输方法。在RDMA数据传输设备上安插有主机内存、CPU、网卡设备及总线接口。主机内存、CPU以及网卡设备通过系统总线互联,总线接口作为三者之间的通信桥梁,负责路由转发CPU或网卡发出的总线事务至目标设备。
在本申请的实施方式中,RDMA数据传输设备的主机内存作为存储介质,加载了操作系统模块和用户程序模块。其中,操作系统模块中有网卡驱动程序,负责为用户程序提供网卡抽象接口,并控制网卡硬件的行为。用户程序通过调用系统函数以及网卡驱动接口函数,申请网卡设备内存,通过内存映射机制将网卡设备内存映射至进程虚拟地址空间,从而实现对网卡设备内存的直接读写操作,并且在注册设备内存的基础上,下发网络任务,实现上述RDMA数据传输方法。
RDMA数据传输设备的CPU负责从主机内存中取指、译码、执行、访存、写回操作。
在本申请的实施方式中,网卡设备包含FPGA模块、DMA引擎模块和设备内存模块。其中,FPGA模块中包含执行硬件代码的逻辑单元电路,负责与网卡驱动进行交互,以及发送和接收网络数据包。DMA引擎模块为网卡与系统总线接口的交互接口,负责接收来自系统总线的请求事务,以及向外发出读写主机内存的总线事务。设备内存模块分为网卡片上内存和片外内存,在本申请中,用于存储网络数据、网络读写任务队列,以及网卡硬件与网卡驱动通信的寄存器资源。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (10)
1.一种RDMA数据传输方法,其特征在于,包括:
网卡驱动初始化,将网卡设备内存地址空间映射到系统总线地址空间;
网卡驱动创建数据结构用于统一管理网卡设备内存资源;
用户程序申请网卡设备内存,网卡驱动分配设备内存,并将其映射到用户程序虚拟地址空间;
用户程序注册网卡设备内存,在注册表项中填入设备内存信息;
用户程序下发网络任务,网卡驱动通知硬件任务信息;
网卡硬件处理网络任务,查找内存注册表得到设备内存系统总线地址,对本地设备内存进行读写。
2.根据权利要求1所述的一种RDMA数据传输方法,其特征在于,
所述网卡设备内存可以是网卡的片上存储空间,也可以是网卡的片外存储空间。
3.根据权利要求2所述的一种RDMA数据传输方法,其特征在于,
网卡驱动在内部使用比特表记录每一个网卡设备内存块的分配和释放情况,每个网卡设备内存块为64字节大小,用户程序以64字节为最小细粒度向驱动申请或释放网卡设备内存。
4.根据权利要求3所述的一种RDMA数据传输方法,其特征在于,
网卡在初始化过程中为片上内存和片外内存分别申请一块系统总线地址空间,网卡驱动创建两个比特表分别管理网卡的片上内存和片外内存对应的总线地址空间,网卡驱动优先分配片上内存资源,并在片上资源不能满足需求时分配网卡的片外内存。
5.根据权利要求4所述的一种RDMA数据传输方法,其特征在于,
网卡驱动通过内存映射机制建立系统总线地址到虚拟地址的映射关系,允许用户程序使用load或store指令读写网卡设备内存。
6.根据权利要求1所述的一种RDMA数据传输方法,其特征在于,
网卡驱动维护一张内存注册表,内存注册表由若干大小固定的表项组成,表项中的多个字段共同描述一次内存注册的信息,包括:设备内存的访问密钥、设备内存系统总线基地址、长度、读写权限信息;
内存注册表可以存放在网卡硬件设备内存中,也可以存放在主机内存中,网卡硬件在内部维护一个内存注册表缓存,缓存最常使用的设备内存注册表项信息。
7.根据权利要求1所述的一种RDMA数据传输方法,其特征在于,
网卡驱动和硬件共同维护一个异步的任务队列,网卡驱动往任务队列的末尾位置添加任务,网卡硬件从任务队列的头部位置取出任务并进行处理;
网卡硬件处理网络任务时,根据访问密钥查找设备内存注册表项,将虚拟偏移地址翻译为系统总线地址,从而对本地设备内存进行读写。
8.一种RDMA数据传输设备,用于实现权利要求1-7任一所述的RDMA数据传输方法,其特征在于,包括:
主机内存、CPU、网卡设备及总线接口,主机内存、CPU以及网卡设备通过系统总线互联,总线接口作为三者之间的通信桥梁,负责路由转发CPU或网卡发出的总线事务至目标设备。
9.根据权利要求8所述的一种RDMA数据传输设备,其特征在于,
主机内存作为存储介质,加载了操作系统和用户程序;
CPU负责从主机内存中取指、译码、执行、访存、写回操作。
10.根据权利要求8所述的一种RDMA数据传输设备,其特征在于,
网卡设备包含FPGA模块、DMA引擎模块和设备内存模块;
所述FPGA模块中包含执行硬件代码的逻辑单元电路,负责与网卡驱动进行交互,以及发送和接收网络数据包;
所述DMA引擎模块为网卡与系统总线接口的交互接口,负责接收来自系统总线的请求事务,以及向外发出读写主机内存的总线事务;
所述设备内存模块分为网卡片上内存和片外内存,用于存储网络数据、网络读写任务队列,以及网卡硬件与网卡驱动通信的寄存器资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410341929.4A CN118113638A (zh) | 2024-03-25 | 2024-03-25 | Rdma数据传输方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410341929.4A CN118113638A (zh) | 2024-03-25 | 2024-03-25 | Rdma数据传输方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118113638A true CN118113638A (zh) | 2024-05-31 |
Family
ID=91218756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410341929.4A Pending CN118113638A (zh) | 2024-03-25 | 2024-03-25 | Rdma数据传输方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118113638A (zh) |
-
2024
- 2024-03-25 CN CN202410341929.4A patent/CN118113638A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9935899B2 (en) | Server switch integration in a virtualized system | |
US6049808A (en) | System and method for efficient remote disk I/O | |
US7275123B2 (en) | Method and apparatus for providing peer-to-peer data transfer within a computing environment | |
CN102571925B (zh) | 一种在光纤通道环境中利用rdma存取数据的方法 | |
CN112948149A (zh) | 一种远端内存共享方法、装置、电子设备及存储介质 | |
JP6763984B2 (ja) | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 | |
CN106598752B (zh) | 远程零拷贝方法 | |
CN113986791B (zh) | 一种智能网卡快速dma设计方法、系统、设备及终端 | |
US7469309B1 (en) | Peer-to-peer data transfer method and apparatus with request limits | |
WO2024082944A1 (zh) | 一种多处理器数据交互方法、装置、设备及存储介质 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
CN111881104A (zh) | 一种nfs服务器及其数据写入方法、装置和存储介质 | |
CN114296646B (zh) | 基于io业务的缓存方法、装置、服务器和存储介质 | |
CN113127139A (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
US20060120376A1 (en) | Method and apparatus for providing peer-to-peer data transfer within a computing environment | |
CN113296691B (zh) | 数据处理系统、方法、装置以及电子设备 | |
CN116700604B (zh) | 一种基于sas hba的数据传输方法 | |
CN116489250A (zh) | 一种基于共享内存通信模式的栈内零拷贝发送路径方法 | |
US9665519B2 (en) | Using a credits available value in determining whether to issue a PPI allocation request to a packet engine | |
US8898353B1 (en) | System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface | |
CN118113638A (zh) | Rdma数据传输方法及设备 | |
CN114610660A (zh) | 控制接口数据的方法、装置及系统 | |
CN113778937A (zh) | 用于执行片上网络(NoC)中的事务聚合的系统和方法 | |
WO2024217333A1 (zh) | 一种基于块存储的io访问方法、装置、电子设备及介质 | |
US9104637B2 (en) | System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface |
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 |