CN113127183A - 一种用户态协议栈中的内存分配方法和装置 - Google Patents
一种用户态协议栈中的内存分配方法和装置 Download PDFInfo
- Publication number
- CN113127183A CN113127183A CN201911397891.8A CN201911397891A CN113127183A CN 113127183 A CN113127183 A CN 113127183A CN 201911397891 A CN201911397891 A CN 201911397891A CN 113127183 A CN113127183 A CN 113127183A
- Authority
- CN
- China
- Prior art keywords
- memory
- zbuf
- message
- protocol stack
- segments
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 231
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000004044 response Effects 0.000 claims description 12
- 238000011084 recovery Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
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 And Data Communications (AREA)
Abstract
本发明公开了一种用户态协议栈中的内存分配方法和装置,所述分配方法包括:收到报文时,根据所述报文的数据量从内存分配池中确定一个或者多个内存片段存储所述报文,并在所述内存片段中存储所述报文对应的上下文信息;在应用层分配零拷贝内存zbuf,通过应用层在所述zbuf内存上填充数据;将存储所述报文的内存片段的内存地址通过DMA模式传递至协议栈;所述协议栈利用计算机的中央处理单元Pbuf保存所述报文的内存地址和长度信息。实现用户态协议栈中的高性能零拷贝内存分配。
Description
技术领域
本发明涉及数据发送管理技术领域,具体涉及一种用户态协议栈中的内存分配方法和装置。
背景技术
在分布式系统中,点到点的机器之间需要通过网络通信来传输数据,但随着网卡设备带宽和多核CPU性能的日益提升,内核态TCP/IP协议栈处理数据报文的能力成为瓶颈。为了满足用户在分布式系统中的低时延和高吞吐,使用用户态协议栈而旁路内核是高性能系统的重要方向,而应用层数据写给用户态协议栈时,CPU会有一次数据拷贝操作,拷贝带来的性能损耗在高性能系统中不可容忍的。数据在拷贝操作后,应用层即可释放内存或者复用,由协议栈去维护后续内存的释放,可灵活使用内存空间,但会增加CPU的消耗。如何在数据链路上减小不必要的拷贝操作,提供操作简便的内存分配器,进而节省CPU开销来提升性能是高性能系统的必须解决的问题。
发明内容
本发明提供了一种用户态协议栈中的内存分配方法和装置,实现用户态协议栈中的高性能零拷贝内存分配。
为了实现上述发明目的,本发明采取的技术方案如下:
第一方面,本发明提供一种用户态协议栈中的内存分配方法,包括:
收到报文时,根据所述报文的数据量从内存分配池中确定一个或者多个内存片段存储所述报文,并在所述内存片段中存储所述报文对应的上下文信息;
在应用层分配零拷贝内存zbuf,通过应用层在所述zbuf内存上填充数据;
将存储所述报文的内存片段的内存地址通过DMA模式传递至协议栈;所述协议栈利用计算机的中央处理单元Pbuf保存所述报文的内存地址和长度信息。
优选地,所述方法之前还包括:
划分内存分配池,所述内存分配池为在内存空间预留的连续的内存,并将所述内存划分为多种长度的内存片段。
优选地所述的方法,还包括:
在协议栈使用所述报文结束时,发送应答包,应用层依据所述应答包释放对所述zbuf的使用权。
优选地,所述的方法,还包括:
同一个zbuf在协议栈队列上尚未发完时,通过维护引用计数多次写入到协议栈。
优选地,上下文信息包括:内存大小、引用计数、内存首地址。
优选地,在应用层分配零拷贝内存zbuf包括:
从数据量相同的内存片段中选取zbuf;
若数据量相同的内存片段已经分配完,从大于所述数据量的内存片段中长度最小的内存片段中选取zbuf。
优选地,当要分配的zbuf数据量超过内存分配池的最大内存片段的长度时,分配失败。
优选地,为每种长度的内存片段提供空闲链表;所述空闲链表维护对应长度的可分配的内存片段;
从数据量相同的内存片段中选取zbuf或从大于所述数据量的内存片段中长度最小的内存片段中选取zbuf包括:
从对应长度的空闲链表的头部选取内存片段,回收时放到空闲链表的尾部。
优选地,所述的方法,还包括:
接收查询报文的消息,将所述查询报文的消息中的查询地址与内存分配池的起止地址进行比较,判断所述查询地址是否属于内存分配池,若属于内存分配池,使用二分查找定位到查询地址所属的zbuf。
优选地,所述的方法,,还包括:
从所述查询地址所属的zbuf读取上下文信息。
优选地,应用层或者协议栈第一次操作所述内存片段时对引用计数加一,应用层或者协议栈不再操作内存片段时对引用计数减一,将引用计数减为0时释放zbuf的内存。
第二方面,本发明提供一种用户态协议栈中的内存分配装置,
提供内存分配池,所述内存分配池为在内存空间预留的连续的内存,并将所述内存划分为多种长度的内存片段;
所述装置包括:
内存模块,设置为收到报文时,根据所述报文的数据量从所述内存分配池中确定一个或者多个内存片段存储所述报文,并在所述内存片段中存储所述报文对应的上下文信息;
应用模块,设置为在应用层分配零拷贝内存zbuf,通过应用层在所述zbuf内存上填充数据;
协议模块,设置为将存储所述报文的内存片段的内存地址通过DMA模式传递至协议栈;所述协议栈利用计算机的中央处理单元Pbuf保存所述报文的内存地址和长度信息。
本发明与现有技术相比,具有如下有益效果:
本发明实施例的内存分配方法,使用一块很大且连续的空间作为内存分配池,再分割为多个固定长度且对齐的内存对象,从中分配的内存zbuf会预留固定长的空间来保存其上下文信息,包括引用计数、长度和内存首地址。对于任意地址,首先根据内存分配池的起止地址来判断其是否属于该内存分配池,再通过二分查找快速找到其对应的zbuf内存空间,从而可以读写zbuf的引用计数。这样协议栈根据窗口对zbuf进行拆分发送时,任意数据空间的地址都可快速计算出对应的zbuf,对zbuf的生命周期进行维护。
每个模块在第一次操作这个内存块时对引用计数加一,不再操作内存时对引用计数减一,任何模块将引用计数减为0时再去释放zbuf的整个内存,这样可以保证同一zbuf在不同模块间传递时有效管理zbuf的生命周期。
每个zbuf在应用层超时重传时,只要保证zbuf内存空间的数据不变,即可重新写到协议栈,协议栈会因为多次操作同一zbuf,而对引用计数增加多次,直到收到所有响应才依次减引用计数,这可以做到应用层重试时不用额外申请内存空间再准备数据。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例的用户态协议栈中的内存分配方法的流程图图;
图2为本发明实施例的用户态协议栈中的内存分配装置的结构示意图;
图3为本发明实施例的内存分配过程的示意图;
图4为本发明实施例的内存分配过程的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,本发明实施例提供一种用户态协议栈中的内存分配方法,
所述分配方法包括:
收到报文时,根据所述报文的数据量从所述内存分配池中确定一个或者多个内存片段存储所述报文,并在所述内存片段中存储所述报文对应的上下文信息;
在应用层分配零拷贝内存zbuf,通过应用层在所述zbuf内存上填充数据;
将存储所述报文的内存片段的内存地址通过DMA模式传递至协议栈;所述协议栈利用计算机的中央处理单元Pbuf保存所述报文的内存地址和长度信息。
本发明实施例中,提供内存分配池,所述内存分配池为在内存空间预留的连续的内存作为内存分配池,并将所述内存划分为多种长度的内存片段。
本发明实施例中,所述的方法,还包括:
在协议栈使用所述报文结束时,发送应答包,应用层依据所述应答包释放对所述zbuf的使用权。
本发明实施例中,所述的方法,还包括:
同一个zbuf在协议栈队列上尚未发完时,通过维护引用计数多次写入到协议栈。
本发明实施例中,上下文信息包括:内存大小、引用计数、内存首地址。
本发明实施例中,在应用层分配零拷贝内存zbuf包括:
从数据量相同的内存片段中选取zbuf;
若数据量相同的内存片段已经分配完,从大于所述数据量的内存片段中长度最小的内存片段中选取zbuf;
本发明实施例中,当要分配的zbuf数据量超过内存分配池的最大内存片段的长度时,分配失败。
本发明实施例中,为每种长度的内存片段提供空闲链表;所述空闲链表维护对应长度的可分配的内存片段
从数据量相同的内存片段中选取zbuf或从大于所述数据量的内存片段中长度最小的内存片段中选取zbuf包括:
从对应长度的空闲链表的头部选取内存片段,回收时放到空闲链表的尾部。
本发明实施例中,所述的方法还包括:
接收查询报文的消息,将所述查询报文的消息中的查询地址与内存分配池的起止地址进行比较,判断所述查询地址是否属于内存分配池,若属于,使用二分查找定位到查询地址所属的zbuf。
本发明实施例中,所述的方法,还包括:
从所述查询地址所属的zbuf读取上下文信息。
本发明实施例中,应用层或者协议栈第一次操作这个内存片段时对引用计数加一,应用层或者协议栈不再操作内存片段时对引用计数减一,将引用计数减为0时释放zbuf的内存。
如图2所示,本发明实施例中,一种用户态协议栈中的内存分配装置,
提供内存分配池,所述内存分配池为在内存空间预留的连续的内存作为内存分配池,并将所述内存划分为多种长度的内存片段;
所述装置包括:
内存模块,设置为收到报文时,根据所述报文的数据量从所述内存分配池中确定一个或者多个内存片段存储所述报文,并在所述内存片段中存储所述报文对应的上下文信息;
应用模块,设置为在应用层分配零拷贝内存zbuf,通过应用层在所述zbuf内存上填充数据;
协议模块,设置为将存储所述报文的内存片段的内存地址通过DMA模式传递至协议栈;所述协议栈利用计算机的中央处理单元Pbuf保存所述报文的内存地址和长度信息。
实施例1
结合图3说明本实施例的内存分配过程:
本发明实施例使用一块很大且连续的空间作为内存分配池(menpool),将这段空间分割为多个固定长且对齐的片段,大小可设计为4K、8K、16K、32K、64K、128K等,具体大小视应用场景而定。如图3给出了本发明实例中的内存分配器工作流程图。每个内存片段在其头部预留固定长字节来存放对应的上下文信息,包括内存大小、引用计数、内存首地址。内存分配器的分配原理:由于内存分配池里的片段是预先对齐准备好的,所以分配任意大小的zbuf,优先从大小最合适的片段中选取,若当前长度的片段已经分配完,则使用下一长度的片段空间。每种长度的内存片段使用一个空闲链表来存放可分配的片段,分配时优先拿空闲链表的头部片段,回收时则放到空闲链表的尾部,可提高分配性能。当要分配的zbuf大小超过内存分配池的最大片段,则分配失败。内存分配器的查询原理:对于任意查询地址,通过与内存分配池的起止地址比较,可以判断查询地址是否属于内存分配池,若不属于,则不能当做zbuf来操作;若属于,则使用二分查找可快速定位到查询地址所属的zbuf,进而可操作zbuf头部的上下文信息。zbuf的内存结构包括长度length、引用计数ref、内存指针data。其中内存指针data指向真实可读写的数据空间,应用层通过接口分配zbuf时,返回的是zbuf的data字段,即应用层只能直接操作data。
实施例2
结合图3说明本实施例的内存分配过程:
如图3中,内存分配池(menpool)里预分配好多个1K、2K、4K的内存片段,应用层从内存分配池中分配出1K、2K、4K的zbuf,将zbuf的引用计数初始化为1,应用层在zbuf的data字段指向的内存上填充数据,最后调用写接口将data的地址传递给协议栈,注意这里不是传递zbuf的地址。区别于传统协议栈的写接口是使用拷贝模式从应用层拷贝到协议栈的内存空间,本发明实例中分配的zbuf是通过DMA模式将应用层数据空间传递给用户态协议栈,协议栈使用额外的内存保存数据空间的地址和长度,即图3中的pbuf。协议栈从pbuf队列中分配pbuf,每个pbuf的内存结构包括长度length和指针data,根据窗口大小,截取长度合适的数据空间,将pbuf的指针指向数据空间的首地址、pbuf的长度设置为本次截取的数据长度。每次写接口成功,说明协议栈模块拥有zbuf的使用权,那么须根据写入的数据空间查询到对应的zbuf,并对引用计数加一。当不同的zbuf数据空间写到协议栈时,使用不同的pbuf内存来保存地址和长度,所有pbuf以单向链表连接。协议栈发送报文时,从链表头部开始顺序发送每个pbuf指向的数据,每个报文的序列号按照发送长度递增。当收到报文的应答包时,说明协议栈不再使用该数据,进而可以释放对zbuf的使用权,通过数据空间查询zbuf的上下文信息,对引用计数减一即可,并将pbuf从链表上删除。应用层分配的zbuf一般等收到对端的响应后才释放,因为有可能超时后需要重传该数据空间,所以正常情况下zbuf的生命周期是应用层分配zbuf,初始化引用计数为一;以DMA模式写给协议栈,协议栈对引用计数加一;协议栈发送报文,收到报文的应答包后对引用计数减一;应用层收到请求的响应后,对引用计数减一,此时zbuf的引用计数为零,被内存分配器回收。
实施例3
图4中是应用层请求分配一个zbuf后,连续重试2次,将zbuf写三次到协议栈的场景。第一个zbuf写到协议栈后,协议栈已发送了前一半数据出去,剩余后一半在pbuf队列中。应用层重试时,由于协议栈的窗口限制,先写前一半,协议栈使用新的pbuf保存该内存空间,对zbuf的引用计数加一;再写后一半时,由于与当前pbuf指向的内存空间连续,则直接更新pbuf的数据长度为两者之和,不用更新引用计数;重试第二次时,再使用新的pbuf保存,引用计数加一。协议栈顺序发送pbuf队列的数据,当收到每个pbuf的应答包时,依次对引用计数减一。这是本发明实例中的内存分配器提供的内存复用方法,即同一个zbuf在协议栈队列上尚未发完时依然多次写入到协议栈,并通过引用计数来维护生命周期。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种用户态协议栈中的内存分配方法,所述分配方法包括:
收到报文时,根据所述报文的数据量从内存分配池中确定一个或者多个内存片段存储所述报文,并在所述内存片段中存储所述报文对应的上下文信息;
在应用层分配零拷贝内存zbuf,通过应用层在所述zbuf内存上填充数据;
将存储所述报文的内存片段的内存地址通过DMA模式传递至协议栈;所述协议栈利用计算机的中央处理单元Pbuf保存所述报文的内存地址和长度信息。
2.根据权利要求1所述的方法,其特征在于,所述方法之前还包括:
划分内存分配池,所述内存分配池为在内存空间预留的连续的内存,并将所述内存划分为多种长度的内存片段。
3.根据权利要求1所述的方法,其特征在于,还包括:
在协议栈使用所述报文结束时,发送应答包,应用层依据所述应答包释放对所述zbuf的使用权。
4.根据权利要求1所述的方法,其特征在于,还包括:
同一个zbuf在协议栈队列上尚未发完时,通过维护引用计数多次写入到协议栈。
5.根据权利要求1所述的方法,其特征在于,上下文信息包括:内存大小、引用计数、内存首地址。
6.根据权利要求1所述的方法,其特征在于,在应用层分配零拷贝内存zbuf包括:
从数据量相同的内存片段中选取zbuf;
若数据量相同的内存片段已经分配完,从大于所述数据量的内存片段中长度最小的内存片段中选取zbuf。
7.根据权利要求6所述的方法,其特征在于,当要分配的zbuf数据量超过内存分配池的最大内存片段的长度时,分配失败。
8.根据权利要求6所述的方法,其特征在于,为每种长度的内存片段提供空闲链表;所述空闲链表维护对应长度的可分配的内存片段;
从数据量相同的内存片段中选取zbuf或从大于所述数据量的内存片段中长度最小的内存片段中选取zbuf包括:
从对应长度的空闲链表的头部选取内存片段,回收时放到空闲链表的尾部。
9.根据权利要求1所述的方法,其特征在于,还包括:
接收查询报文的消息,将所述查询报文的消息中的查询地址与内存分配池的起止地址进行比较,判断所述查询地址是否属于内存分配池,若属于内存分配池,使用二分查找定位到查询地址所属的zbuf。
10.根据权利要求9所述的方法,其特征在于,还包括:
从所述查询地址所属的zbuf读取上下文信息。
11.根据权利要求5所述的方法,其特征在于,应用层或者协议栈第一次操作所述内存片段时对引用计数加一,应用层或者协议栈不再操作内存片段时对引用计数减一,将引用计数减为0时释放zbuf的内存。
12.一种用户态协议栈中的内存分配装置,其特征在于,
提供内存分配池,所述内存分配池为在内存空间预留的连续的内存,并将所述内存划分为多种长度的内存片段;
所述装置包括:
内存模块,设置为收到报文时,根据所述报文的数据量从所述内存分配池中确定一个或者多个内存片段存储所述报文,并在所述内存片段中存储所述报文对应的上下文信息;
应用模块,设置为在应用层分配零拷贝内存zbuf,通过应用层在所述zbuf内存上填充数据;
协议模块,设置为将存储所述报文的内存片段的内存地址通过DMA模式传递至协议栈;所述协议栈利用计算机的中央处理单元Pbuf保存所述报文的内存地址和长度信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911397891.8A CN113127183B (zh) | 2019-12-30 | 2019-12-30 | 一种用户态协议栈中的内存分配方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911397891.8A CN113127183B (zh) | 2019-12-30 | 2019-12-30 | 一种用户态协议栈中的内存分配方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127183A true CN113127183A (zh) | 2021-07-16 |
CN113127183B CN113127183B (zh) | 2024-06-14 |
Family
ID=76768026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911397891.8A Active CN113127183B (zh) | 2019-12-30 | 2019-12-30 | 一种用户态协议栈中的内存分配方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127183B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060215695A1 (en) * | 2005-03-24 | 2006-09-28 | Jan Olderdissen | Protocol stack |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN101150487A (zh) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | 一种零拷贝网络报文发送方法 |
CN101150488A (zh) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | 一种零拷贝网络报文接收方法 |
CN107302499A (zh) * | 2017-06-26 | 2017-10-27 | 北京赛特斯信息科技股份有限公司 | 无需拷贝报文缓存的nfv协议报文收发方法 |
-
2019
- 2019-12-30 CN CN201911397891.8A patent/CN113127183B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060215695A1 (en) * | 2005-03-24 | 2006-09-28 | Jan Olderdissen | Protocol stack |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN101150487A (zh) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | 一种零拷贝网络报文发送方法 |
CN101150488A (zh) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | 一种零拷贝网络报文接收方法 |
CN107302499A (zh) * | 2017-06-26 | 2017-10-27 | 北京赛特斯信息科技股份有限公司 | 无需拷贝报文缓存的nfv协议报文收发方法 |
Non-Patent Citations (2)
Title |
---|
王佰玲, 方滨兴, 云晓春: "零拷贝报文捕获平台的研究与实现", 计算机学报, no. 01, 12 January 2005 (2005-01-12) * |
赵成青;李宥谋;刘永斌;王涛;: "LWIP中零拷贝技术的研究与应用", 计算机技术与发展, no. 07, 24 February 2018 (2018-02-24) * |
Also Published As
Publication number | Publication date |
---|---|
CN113127183B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5961606A (en) | System and method for remote buffer allocation in exported memory segments and message passing between network nodes | |
CN107888657A (zh) | 低延迟分布式存储系统 | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
CN112948318B (zh) | 一种Linux操作系统下基于RDMA的数据传输方法及装置 | |
CN103607428B (zh) | 一种访问共享内存的方法和装置 | |
CN112948149A (zh) | 一种远端内存共享方法、装置、电子设备及存储介质 | |
CN106598752B (zh) | 远程零拷贝方法 | |
CN115174604B (zh) | 网状架构上的高速nvm | |
CN103389945B (zh) | 一种内存管理的方法及装置 | |
CN107479833B (zh) | 一种面向键值存储的远程非易失内存访问与管理方法 | |
US9311044B2 (en) | System and method for supporting efficient buffer usage with a single external memory interface | |
CN113760560A (zh) | 一种进程间通信方法以及进程间通信装置 | |
CN113127139B (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
US7865632B2 (en) | Memory allocation and access method and device using the same | |
CN116955219B (zh) | 一种数据镜像方法、装置、主机及存储介质 | |
CN107615259B (zh) | 一种数据处理方法及系统 | |
CN113127183B (zh) | 一种用户态协议栈中的内存分配方法和装置 | |
US11675510B2 (en) | Systems and methods for scalable shared memory among networked devices comprising IP addressable memory blocks | |
CN114253733B (zh) | 一种内存管理方法、装置、计算机设备和存储介质 | |
CN114827300A (zh) | 硬件保障的数据可靠传输系统、控制方法、设备及终端 | |
CN113778688A (zh) | 内存管理系统、内存管理方法、内存管理装置 | |
US20140068220A1 (en) | Hardware based memory allocation system with directly connected memory | |
US20040158622A1 (en) | Auto-sizing channel |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |