CN105656805A - 一种基于控制块预分配的分组接收方法和装置 - Google Patents
一种基于控制块预分配的分组接收方法和装置 Download PDFInfo
- Publication number
- CN105656805A CN105656805A CN201610034905.XA CN201610034905A CN105656805A CN 105656805 A CN105656805 A CN 105656805A CN 201610034905 A CN201610034905 A CN 201610034905A CN 105656805 A CN105656805 A CN 105656805A
- Authority
- CN
- China
- Prior art keywords
- message
- control block
- hardware
- buffer
- driver
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 239000000872 buffer Substances 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 16
- 238000004064 recycling Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000006835 compression Effects 0.000 claims 1
- 238000007906 compression Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
- H04L47/722—Admission control; Resource allocation using reservation actions during connection setup at the destination endpoint, e.g. reservation of terminal resources or buffer space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9021—Plurality of buffers per packet
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种基于控制块预分配的分组接收方法和装置。通过软件对缓冲区进行预取,下发描述符由硬件管理缓冲区,将报文的控制块和数据块存放在同一块缓冲区中,从而避免了操作系统对报文控制块和数据块的分配开销。通过硬件对报文控制块进行初始化,驱动对报文控制块一些字段进行修改,从而减小报文控制块的赋值开销。通过写寄存器的方式将缓冲区描述符直接回收给硬件进行重利用,不用对缓冲区中数据进行修改,从而避免操作系统对报文的释放开销。解决协议栈处理中报文控制块申请和释放开销大的问题。
Description
技术领域
本发明涉及高速网络处理领域。尤其是在高速网络处理过程中对协议栈处理的报文进行管理。
背景技术
目前,网络流量的不断增长对网络报文处理能力提出更高的要求。现有的许多网络处理应用都是基于内核中的协议栈进行处理,比如OVS。协议栈处理的报文分为控制块和数据块,控制块和数据块分别存放在不同的内存区域内。在FreeBSD操作系统中,报文的控制块结构为mbuf;在Linux操作系统中,报文的控制块结构为sk_buff。控制块用于维护socketbuffer的状态和描述信息,其成员变量在一层向一层传递时会发生修改。数据块用于存储实际报文数据。Linux操作系统维护了skbuffcache和generalcache两种slab缓存,通过slab分配器从skbuffcache中进行控制块的申请和释放,从generalcache中进行数据块的申请和释放,如图1所示。
传统机制中,每个报文的控制块和数据块都需要从slab缓存中进行申请,如果slab缓存中没有足够空间,则需要从内存中进行申请。并且在将控制块和数据块回收到slab缓存时,需要查表获取回收的位置,如果释放报文数目过多,多余的空间将回收到内存中。因此传统机制中频繁的申请和释放给内存系统带来很大压力。
一篇名为《报文接收方法、报文接收模块、装置及系统》的专利中提出通过软件预先初始化报文缓冲区,将报文缓冲区的描述符下发至硬件进行维护。缓冲区用于存放报文的数据块和描述符块。其中,描述符块包括报文的物理地址,虚拟地址,控制信息和下一跳报文的虚拟地址信息。软件中以链表的形式维护接收到的报文,而下一个报文的虚拟地址由DMA写入,CPU可以通过轮询方式顺序读取报文缓冲区的内容,有效提高系统的处理效率。而对于协议栈处理,这种方法只将报文的数据块和描述符信息卸载到硬件进行管理,而报文的控制块依然需要操作系统进行申请和释放。因此,这种方法不能有效解决操作系统对报文控制块管理的开销。
另外,一篇名为《一种多核系统中的SKB重用方法及装置》的专利中提出通过在每个处理器上建立n个SKB重用队列,n为处理器个数。执行SKB缓冲区回收时,将SKB缓冲区插入到为分配该SKB缓冲区的处理器所具有的,并且与执行回收操作的处理器相应的重用对列中。执行重用时,从n个SKB重用队列中分配SKB缓冲区。这种方法通过将SKB缓冲区进行重利用以及减小互斥锁的影响有效提高了系统报文转发性能。但是这种方法中在初始化时,每个SKB重用队列只有一个SKB缓冲区,当重用队列中没有足够的缓冲区时,只能通过系统的分配方法进行分配,开销大。而且每次接收到报文时,软件都要根据报文信息对报文控制块中许多字段进行赋值。
发明内容
本发明要解决的技术问题是通过提供一种基于控制块预分配的分组接收方法和装置,以解决协议栈处理中报文控制块申请和释放开销大的问题。
本发明通过在缓冲区初始化过程中,软件首先预申请报文缓冲区块,通过下发描述符的方式由硬件管理这些缓冲区。每个报文缓冲区大小为2K,依次由32B的描述信息,32B的预留字段headroom,报文数据块,32B的预留字段tailroom和报文控制块组成,如图2所示。其中,描述信息主要包含报文长度,DMA传输使用的DMA地址,下一跳报文虚拟地址,发送和回收报文的寄存器地址等压缩的控制信息;预留字段headroom和tailroom主要用于在报文首尾添加信息,headroom中报文标记用于区分报文是从网卡接收的报文还是系统构造的报文;报文控制块用于在协议栈中处理使用。描述信息,headroom和报文数据块组成FP报文(FastProcessingPacket),用于在驱动或者通过旁路协议栈在用户空间进行快速处理。当报文发送时,通过写寄存器通知硬件进行发送。当发送完成需要进行缓冲区回收时,只需要通过写寄存器的方式将报文描述符交给硬件,不需要对缓冲区数据进行修改,从而实现对缓冲区的重利用。
基于控制块预分配的分组接收方法的处理流程如图3所示,主要分为以下几步:
A、通过在系统初始化阶段,驱动预先申请报文缓冲区,将报文描述符信息下发给硬件进行管理,从而不需要在软件中构造描述符环进行管理;
B、网卡接收到报文,由硬件为报文添加描述信息和报文控制块,请求DMA进行发送。DMA从硬件的描述符池中申请一个报文描述符,将报文写入对应的内存区域中;
C、驱动根据报文首地址对报文链进行轮询,对于需要发送到协议栈的报文,驱动会根据报文的相关信息对控制块字段进行修改,然后将报文发送到协议栈;
D、协议栈对报文进行处理后,调用驱动的发送函数。驱动通过写寄存器的方式完成报文发送;
E、调用驱动的报文释放函数,驱动通过写寄存器的方式进行缓冲区回收。
所述步骤B包括:
B1、硬件首先构造描述信息,根据报文的相关信息对其进行赋值,并在报文的headroom中设置报文标记。
B2、硬件在报文尾部构造报文控制块,并根据报文的相关信息对其中字段进行赋值。
所述步骤D包括:
D1、软件对网卡接收的报文进行发送时,驱动通过写寄存器的方式告诉硬件报文的描述符,然后DMA根据描述符将对应的FP报文读入网卡中,最后网卡发送报文。此过程不需要发送描述符环的支持。
D2、软件对系统构造的报文进行发送时,将报文数据拷贝到软件管理的FP报文缓冲区中,然后驱动通过写寄存器进行发送。
所述步骤E包括:
E1、软件对网卡接收的报文进行释放时,驱动通过直接写寄存器的方式告诉硬件需要回收的报文的描述符信息,硬件将只对描述符进行回收,而不对报文进行处理。这样只通过一次寄存器写操作,完成报文控制块和数据块的回收。
E2、软件对系统构造的报文进行释放时,驱动调用操作系统的释放机制。首先释放报文数据块,然后释放报文控制块。
基于控制块预分配的分组接收装置主要包括描述信息生成模块,控制块生成模块,控制块修改模块,发送回收模块。在硬件中实现描述信息生成模块和控制块生成模块,在驱动中实现控制块修改模块,发送回收模块。
描述信息生成模块,该模块主要用于在网卡接收到报文后,硬件根据报文的相关信息构造压缩的控制信息,包括报文长度,DMA地址,下一跳报文虚拟地址,寄存器地址等信息。
控制块生成模块,该模块主要用于根据报文的相关信息构造报文控制块。
控制块修改模块,该模块主要用于驱动根据报文相关信息对报文控制块中一些字段进行修改。
发送回收模块,该模块主要用于对报文标记进行判断,如果是网卡接收的报文,则通过写寄存器方式进行发送和回收;如果是系统构造的报文,将报文数据拷贝到软件管理的FP报文缓冲区中,然后驱动通过写寄存器进行发送,最后通过系统的报文回收机制进行报文回收。
本发明的有益效果为:
本发明通过软件对缓冲区进行预取,下发描述符由硬件管理缓冲区,将报文的控制块和数据块存放在同一块缓冲区中,从而避免了操作系统对报文控制块和数据块的分配开销。通过硬件对报文控制块进行初始化,驱动对报文控制块一些字段进行修改,从而减小报文控制块的赋值开销。通过写寄存器的方式将缓冲区描述符直接回收给硬件进行重利用,不用对缓冲区中数据进行修改,从而避免操作系统对报文的释放开销。
附图说明
图1为现有技术中操作系统对报文分配和释放的框架图;
图2为本发明的基于控制块预分配的分组接收方法的报文结构图;
图3为本发明的基于控制块预分配的分组接收方法的处理框架图;
图4为本发明的基于控制块预分配的分组接收方法的报文接收流程图;
图5为本发明的基于控制块预分配的分组接收方法的报文发送流程图。
具体实施方式
本发明核心在于根据实际需要,由软件预申请缓冲区,然后将所有缓冲区的描述符信息下发到硬件,在硬件中维护一个描述符池。当硬件接收到报文后,为该报文分配一个描述符。硬件为报文构造好metadata后,在报文尾部根据报文的相关信息对报文控制块的信息进行初始化。当报文被DMA到内存后,驱动根据相关信息对报文控制块进行修改,然后将报文发送到协议栈。当报文需要发送时,通过写发送寄存器的方式完成发送。当报文释放时,通过写寄存器的方式将报文描述符回收到硬件。
本发明中最关键的步骤是替代了传统处理中操作系统对报文控制块的申请与释放过程。因此,下面主要对本发明中报文的接收和发送流程进行详细说明。
报文的接收流程如图4所示,其主要流程包括:
4.1网卡从链路接收报文;
4.2硬件根据报文相关信息构造metadata;
4.3硬件在报文中设置报文标记;
4.4硬件根据报文相关信息构造报文控制块;
4.5DMA将报文写入对应的内存区域;
4.6驱动判断是否将报文发送至协议栈,如果是,继续执行;如果否,跳到步骤4.9;
4.7驱动根据报文信息对控制块字段进行修改;
4.8发送报文至协议栈;
4.9旁路协议栈,在用户空间进行报文处理。
对于报文的发送,驱动只需要通过写寄存器的方式告诉硬件报文地址,然后硬件通过DMA读将FP报文读到网卡中,最后发送到链路上。发送完成后,需要对报文缓冲区进行回收。传统的报文释放机制中,首先对报文数据块进行释放,然后对报文控制块进行释放。而现在,由硬件管理的报文缓冲区在发送完成后需要进行回收利用,所以只需要通过写寄存器的方式告诉硬件要回收的报文地址,硬件将对应的报文描述符存入描述符池中,即可完成报文的回收,不需要对缓冲区数据进行操作。这种方式大大减小了控制块的释放开销。
报文的发送过程如图5所示,主要流程包括:
5.1驱动获取要发送的报文;
5.2判断报文标记是否为网卡接收的报文,如果是,跳到步骤5.4;如果否,则为系统构造的报文,继续执行;
5.3将系统构造的报文的数据块拷贝到软件管理的FP报文缓冲区中;
5.4驱动写寄存器告诉硬件报文的描述符;
5.5DMA读报文到网卡;
5.6硬件发送报文;
5.7判断报文标记是否为网卡接收的报文,如果是,继续执行;如果否,调用操作系统的释放函数,跳到步骤5.10;
5.8驱动写硬件寄存器进行描述符回收;
5.9硬件将描述符回收到描述符池,跳到步骤5.12;
5.10释放报文的数据块;
5.11释放报文的控制块;
5.12完成报文释放。
Claims (6)
1.一种基于控制块预分配的分组接收方法,通过在缓冲区初始化过程中,软件首先预申请报文缓冲区块,通过下发描述符的方式由硬件管理这些缓冲区,其特征在于,每个报文缓冲区大小为2K,依次由32B的描述信息、32B的预留字段headroom、报文数据块、32B的预留字段tailroom和报文控制块组成,
基于控制块预分配的分组接收方法的处理流程分为以下几步:
A、通过在系统初始化阶段,驱动预先申请报文缓冲区,将报文描述符信息下发给硬件进行管理,从而不需要在软件中构造描述符环进行管理;
B、网卡接收到报文,由硬件为报文添加描述信息和报文控制块,请求DMA进行发送,DMA从硬件的描述符池中申请一个报文描述符,将报文写入对应的内存区域中;
C、驱动根据报文首地址对报文链进行轮询,对于需要发送到协议栈的报文,驱动会根据报文的相关信息对控制块字段进行修改,然后将报文发送到协议栈;
D、协议栈对报文进行处理后,调用驱动的发送函数,驱动通过写寄存器的方式完成报文发送;
E、调用驱动的报文释放函数,驱动通过写寄存器的方式进行缓冲区回收;
所述步骤B包括:
B1、硬件首先构造描述信息,根据报文的相关信息对其进行赋值,并在报文的headroom中设置报文标记;
B2、硬件在报文尾部构造报文控制块,并根据报文的相关信息对其中字段进行赋值;
所述步骤D包括:
D1、软件对网卡接收的报文进行发送时,驱动通过写寄存器的方式告诉硬件报文的描述符,然后DMA根据描述符将对应的FP报文读入网卡中,最后网卡发送报文;
D2、软件对系统构造的报文进行发送时,将报文数据拷贝到软件管理的FP报文缓冲区中,然后驱动通过写寄存器进行发送;
所述步骤E包括:
E1、软件对网卡接收的报文进行释放时,驱动通过直接写寄存器的方式告诉硬件需要回收的报文的描述符信息,硬件将只对描述符进行回收,而不对报文进行处理,这样只通过一次寄存器写操作,完成报文控制块和数据块的回收;
E2、软件对系统构造的报文进行释放时,驱动调用操作系统的释放机制,首先释放报文数据块,然后释放报文控制块。
2.根据权利要求1所述的一种基于控制块预分配的分组接收方法,其特征在于,所述描述信息包含报文长度、DMA传输使用的DMA地址、下一跳报文虚拟地址、发送和回收报文的寄存器地址的压缩控制信息。
3.根据权利要求1所述的一种基于控制块预分配的分组接收方法,其特征在于,所述预留字段headroom和预留字段tailroom用于在报文首尾添加信息,headroom中报文标记用于区分报文是从网卡接收的报文还是系统构造的报文。
4.根据权利要求1所述的一种基于控制块预分配的分组接收方法,其特征在于,所述报文控制块用于在协议栈中处理使用。
5.根据权利要求1所述的一种基于控制块预分配的分组接收方法,其特征在于,所述描述信息、预留字段headroom和报文数据块组成FP报文,用于在驱动或者通过旁路协议栈在用户空间进行快速处理,当报文发送时,通过写寄存器通知硬件进行发送,当发送完成需要进行缓冲区回收时,只需要通过写寄存器的方式将报文描述符交给硬件,不需要对缓冲区数据进行修改,从而实现对缓冲区的重利用。
6.一种基于控制块预分配的分组接收装置,包括描述信息生成模块,控制块生成模块,控制块修改模块,发送回收模块,其特征在于,在硬件中实现描述信息生成模块和控制块生成模块,在驱动中实现控制块修改模块,发送回收模块;
所述描述信息生成模块用于在网卡接收到报文后,硬件根据报文的相关信息构造压缩的控制信息,包括报文长度,DMA地址,下一跳报文虚拟地址,寄存器地址信息;
所述控制块生成模块用于根据报文的相关信息构造报文控制块;
所述控制块修改模块用于驱动根据报文相关信息对报文控制块中字段进行修改;
所述发送回收模块用于对报文标记进行判断,如果是网卡接收的报文,则通过写寄存器方式进行发送和回收;如果是系统构造的报文,将报文数据拷贝到软件管理的FP报文缓冲区中,然后驱动通过写寄存器进行发送,最后通过系统的报文回收机制进行报文回收。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610034905.XA CN105656805B (zh) | 2016-01-20 | 2016-01-20 | 一种基于控制块预分配的分组接收方法和装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610034905.XA CN105656805B (zh) | 2016-01-20 | 2016-01-20 | 一种基于控制块预分配的分组接收方法和装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN105656805A true CN105656805A (zh) | 2016-06-08 |
| CN105656805B CN105656805B (zh) | 2018-09-25 |
Family
ID=56487536
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201610034905.XA Expired - Fee Related CN105656805B (zh) | 2016-01-20 | 2016-01-20 | 一种基于控制块预分配的分组接收方法和装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN105656805B (zh) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106603409A (zh) * | 2016-11-30 | 2017-04-26 | 中国科学院计算技术研究所 | 一种数据处理系统、方法及设备 |
| CN108628684A (zh) * | 2017-03-20 | 2018-10-09 | 华为技术有限公司 | 一种基于dpdk的报文处理方法及计算机设备 |
| CN109976877A (zh) * | 2019-03-22 | 2019-07-05 | 优刻得科技股份有限公司 | 利用virtio驱动实现请求的方法、装置和存储介质 |
| CN110515872A (zh) * | 2018-05-21 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 直接内存存取方法、装置、专用计算芯片及异构计算系统 |
| CN113254374A (zh) * | 2021-05-07 | 2021-08-13 | 黑芝麻智能科技(上海)有限公司 | 直接内存访问dma访问数据的方法、处理器 |
| CN113342721A (zh) * | 2021-07-06 | 2021-09-03 | 无锡众星微系统技术有限公司 | 存储控制器dma设计方法 |
| CN114244917A (zh) * | 2020-08-31 | 2022-03-25 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
| CN115190089A (zh) * | 2022-05-26 | 2022-10-14 | 中科驭数(北京)科技有限公司 | 一种报文存储方法、装置、设备及存储介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101286143A (zh) * | 2008-05-26 | 2008-10-15 | 中兴通讯股份有限公司 | 一种管理设备驱动缓存的方法 |
| CN101707564A (zh) * | 2009-12-04 | 2010-05-12 | 曙光信息产业(北京)有限公司 | 用于零拷贝缓冲区队列网络数据发送和接收的处理方法和装置 |
| US8266344B1 (en) * | 2009-09-24 | 2012-09-11 | Juniper Networks, Inc. | Recycling buffer pointers using a prefetch buffer |
| CN102750245A (zh) * | 2012-05-29 | 2012-10-24 | 中国人民解放军国防科学技术大学 | 报文接收方法、报文接收模块、装置及系统 |
| CN103229145A (zh) * | 2010-10-28 | 2013-07-31 | 阿尔卡特朗讯公司 | 用于电信网络应用的无锁缓冲器管理方案 |
| US20140181415A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Prefetching functionality on a logic die stacked with memory |
-
2016
- 2016-01-20 CN CN201610034905.XA patent/CN105656805B/zh not_active Expired - Fee Related
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101286143A (zh) * | 2008-05-26 | 2008-10-15 | 中兴通讯股份有限公司 | 一种管理设备驱动缓存的方法 |
| US8266344B1 (en) * | 2009-09-24 | 2012-09-11 | Juniper Networks, Inc. | Recycling buffer pointers using a prefetch buffer |
| CN101707564A (zh) * | 2009-12-04 | 2010-05-12 | 曙光信息产业(北京)有限公司 | 用于零拷贝缓冲区队列网络数据发送和接收的处理方法和装置 |
| CN103229145A (zh) * | 2010-10-28 | 2013-07-31 | 阿尔卡特朗讯公司 | 用于电信网络应用的无锁缓冲器管理方案 |
| CN102750245A (zh) * | 2012-05-29 | 2012-10-24 | 中国人民解放军国防科学技术大学 | 报文接收方法、报文接收模块、装置及系统 |
| US20140181415A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Prefetching functionality on a logic die stacked with memory |
Non-Patent Citations (2)
| Title |
|---|
| TANG LU, ET AL: ""Towards high-performance packet processing on commodity multi-cores: current issues and future directions"", 《SCIENCE CHINA INFORMATION SCIENCES》 * |
| 刘旭山 等: ""基于NetFPGA的Open vSwitch核心态实现"", 《新型工业化》 * |
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106603409A (zh) * | 2016-11-30 | 2017-04-26 | 中国科学院计算技术研究所 | 一种数据处理系统、方法及设备 |
| CN108628684A (zh) * | 2017-03-20 | 2018-10-09 | 华为技术有限公司 | 一种基于dpdk的报文处理方法及计算机设备 |
| CN108628684B (zh) * | 2017-03-20 | 2021-01-05 | 华为技术有限公司 | 一种基于dpdk的报文处理方法及计算机设备 |
| CN110515872A (zh) * | 2018-05-21 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 直接内存存取方法、装置、专用计算芯片及异构计算系统 |
| CN110515872B (zh) * | 2018-05-21 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 直接内存存取方法、装置、专用计算芯片及异构计算系统 |
| CN109976877A (zh) * | 2019-03-22 | 2019-07-05 | 优刻得科技股份有限公司 | 利用virtio驱动实现请求的方法、装置和存储介质 |
| CN114244917A (zh) * | 2020-08-31 | 2022-03-25 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
| CN113254374A (zh) * | 2021-05-07 | 2021-08-13 | 黑芝麻智能科技(上海)有限公司 | 直接内存访问dma访问数据的方法、处理器 |
| US12487947B2 (en) | 2021-05-07 | 2025-12-02 | Black Sesame Technologies Co. Ltd. | Data access method for direct memory access (DMA), and processor with circular buffer reuse |
| CN113342721A (zh) * | 2021-07-06 | 2021-09-03 | 无锡众星微系统技术有限公司 | 存储控制器dma设计方法 |
| CN113342721B (zh) * | 2021-07-06 | 2022-09-23 | 无锡众星微系统技术有限公司 | 存储控制器dma设计方法 |
| CN115190089A (zh) * | 2022-05-26 | 2022-10-14 | 中科驭数(北京)科技有限公司 | 一种报文存储方法、装置、设备及存储介质 |
| CN115190089B (zh) * | 2022-05-26 | 2024-03-22 | 中科驭数(北京)科技有限公司 | 一种报文存储方法、装置、设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN105656805B (zh) | 2018-09-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105656805B (zh) | 一种基于控制块预分配的分组接收方法和装置 | |
| CN111126589B (zh) | 神经网络数据处理装置、方法和电子设备 | |
| WO2013082809A1 (zh) | 协处理加速方法、装置及系统 | |
| CN104915151A (zh) | 多虚拟机系统中一种主动共享的内存超量分配方法 | |
| CN1859325A (zh) | 基于链表的进程间消息传递方法 | |
| CN105389210A (zh) | 一种存储空间管理方法及装置 | |
| CN114218130B (zh) | 一种内存使用方法、电子设备及存储介质 | |
| CN116489250B (zh) | 一种基于共享内存通信模式的栈内零拷贝发送路径方法 | |
| CN110109677B (zh) | 一种动态对象缓存池分配方法 | |
| CN102270207B (zh) | 一种面向在线多媒体信息挖掘的数据缓存方法和系统 | |
| US7290038B2 (en) | Key reuse for RDMA virtual address space | |
| CN113127139A (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
| CN102750245B (zh) | 报文接收方法、报文接收模块、装置及系统 | |
| CN115168243B (zh) | 一种内存空间管理方法、装置、电子设备及存储介质 | |
| JP2018515859A (ja) | ファイルにアクセスするための方法および装置、ならびに記憶システム | |
| CN110445580B (zh) | 数据发送方法及装置、存储介质、电子装置 | |
| CN114662162B (zh) | 实现动态分配vf的多算法核高性能sr-iov加解密系统及方法 | |
| CN111694765A (zh) | 一种面向移动应用特征的非易失性内存文件系统多粒度空间管理方法 | |
| CN102122268A (zh) | 一种虚拟机内存分配访问方法、装置和系统 | |
| CN120408686A (zh) | 异构计算的加密文件处理方法、程序产品和异构计算系统 | |
| US20150121376A1 (en) | Managing data transfer | |
| CN115086310A (zh) | 一种高吞吐量、低延迟的数据包转发方法 | |
| CN117573041B (zh) | 一种改进vhost-scsi提升虚拟化存储性能的方法 | |
| CN117376343B (zh) | 一种提升发送端设备吞吐量的网络文件传输方法及系统 | |
| CN103488576B (zh) | 一种高性能小区块内存管理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180925 Termination date: 20190120 |