CN101827072A - 虚拟内存协议分段卸载 - Google Patents
虚拟内存协议分段卸载 Download PDFInfo
- Publication number
- CN101827072A CN101827072A CN200910147461A CN200910147461A CN101827072A CN 101827072 A CN101827072 A CN 101827072A CN 200910147461 A CN200910147461 A CN 200910147461A CN 200910147461 A CN200910147461 A CN 200910147461A CN 101827072 A CN101827072 A CN 101827072A
- Authority
- CN
- China
- Prior art keywords
- payload data
- address
- memory
- installed system
- transmission control
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/621—Individual queue per connection or flow, e.g. per VC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3045—Virtual queuing
-
- 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/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开虚拟内存协议分段卸载,提供有效传输网络流量的方法与系统。依据实施例,提供了执行分段卸载的方法,例如:传输控制协议分段卸载(TSO)。接口以网络处理器的名义执行用户内存空间的直接虚拟存储寻址,从而获取由在主机处理器上运行的用户进程发出的有效载荷数据。然后,网络处理器通过一个或多个数据包将有效载荷数据进行分段。
Description
技术领域
本发明涉及网络流量加速,尤其协议分段卸载等问题。例如:传输控制协议(TCP)分段卸载(TSO:Transmission Control Protocol segmentationoffloading)。
背景技术
图1所示为通常实施的传输控制协议分段卸载(TSO)操作。大块向外的网络流量例如有效载荷数据(payload data)157,通常被分割为小段,例如数据包170。该操作称为分段,通常通过传输控制协议在主机上执行。如果通过单个硬件或一单个处理器,例如集成了网络接口控制器(NIC:network interfacecontroller)的硬件或处理器,以主机的名义执行该操作,即称为TCP数据包分段卸载(TSO)。
传统操作系统通常将虚拟内存划分为内核空间(kernel space)140与用户空间(user space)150。禁止用户模式应用程序例如用户进程120,写入或进行其他访问内核空间140的操作。允许用户模式应用程序在内存区域用户空间150中运行。
通常,TCP有效载荷数据,例如有效载荷数据157,由一用户进程例如用户进程120发出。一内核进程110可以创建报头数据145,并保存该报头数据145于一系统内存(system space)130的内核空间140中。TSO用于提高系统吞吐率(throughput),减少中央处理器(CPU)的使用,但是在TSO的传统实施中,为确保传输控制协议分段单元160的物理寻址,存储在用户空间150中的有效载荷数据157必须通过中央处理器(未显示)从用户空间150复制至邻接(contiguous)的内核空间140,从而创建一有效载荷数据的备份147。将系统内存130中有效载荷数据从用户空间150至内核空间140的操作属中央处理器密集型,将降低流向向外的TCP流量吞吐。
因此,现有技术需要改进向外的网络流量的操作。
发明内容
本发明涉及网络流量有效传输的方法与系统。根据一实施例提供一种执行分段卸载的方法。一接口为一网络处理器执行一系统内存的一用户存储空间(user memory space)的直接虚拟存储寻址,从而获取由运行在一主机处理器上的一用户进程发出的有效载荷数据。然后,该网络处理器通过(across)一个或多个数据包将有效载荷数据进行分段。
在上述实施例中,通过一个或多个数据包进行有效载荷数据分段,可以涉及通过执行TCP分段创建一个或多个传输控制协议(TCP)数据包。
在上述实施例的各种实例中,该方法进一步涉及在系统内存中存储一缓冲器描述符。该缓冲器描述符包含(i)描述包含至少一部分该有效载荷数据的系统内存中的一数据包缓冲器的一起始地址的信息以及(ii)描述该起始地址为虚拟或物理地址的信息。
在上述各实施例中,该方法可以进一步涉及在系统内存中存储多个缓冲器描述符。例如,一第一缓冲器描述符可以包含:(i)描述包含该有效载荷数据的一第一部分的系统内存中的一第一数据包缓冲器的一第一起始地址的信息以及(ii)描述该第一起始地址为虚拟或物理地址的信息,以及一第二缓冲器描述符可以包含:(i)描述包含该有效载荷数据的一第二部分的系统内存中的一第二数据包缓冲器的一第二起始地址的信息以及(ii)描述该第二起始地址为虚拟或物理地址的信息。
在某些例子中,缓冲器描述符也可以包含描述一页目录(page directory)的一虚拟存储基址的信息。在所述例子中,执行用户存储空间的虚拟存储直接寻址可以进一步涉及利用该起始地址定义的页目录的目录项目(directoryentry)将该起始地址转换为用户存储中与数据包缓冲器相关的一物理地址。
本发明的其它实施例提供一种执行传输控制协议(TCP)分段卸载的方法。通过一互连总线连结至一系统内存的一主机接口接收描述用户存储空间内TCP有效载荷数据虚拟内存地址的信息,以响应一主机处理器上运行的一用户进程并将TCP有效载荷数据存储至系统内存的用户内存空间内。该主机接口基于存储在系统内存中的一页表与虚拟存储地址代表一网络处理器执行直接虚拟存储寻址,并代表该网络处理器从用户存储空间获取TCP有效载荷数据。然后,该网络处理器通过一个或多个TCP数据包对TCP有效载荷数据进行分段。
本发明的其它实施例提供一网络装置,其包括一处理器、一系统内存、一网络接口、一个与该处理器及该系统内存连结的互连总线,以及一个与该网络接口及该互连总线连结的接口。该处理器负责执行一个或多个内核进程以及一个或多个用户进程。该系统内存存储有一页表数据结构,其包含用于将虚拟地址与物理地址相关联的信息。该系统内存的一第一部分用于运行一个或多个内核进程,该系统内存的一第二部分用于运行一个或多个用户进程。该网络接口用于通过一个或多个网络数据包对有效载荷数据进行分段,并通过网络传输该一个或多个网络数据包至一目的地。该接口基于与有效载荷数据及页表数据结构相关的一虚拟存储地址以网络处理器的名义执行该系统内存的直接虚拟存储寻址,以代表该网络接口从该系统内存的第二部分获取有效载荷数据。
在上述实施例的多个例子中,有效载荷数据可以是传输控制协议(TCP)有效载荷数据,该一个或多个网络数据包可以是一个或多个TCP数据包。
上述实施例的各种实例中,可以进一步操作接口以从系统内存获取一缓冲器描述符。缓冲器描述符可以包含(i)一虚拟存储地址以及(ii)一个页表数据结构的页目录的虚拟存储基址。在所述例子中,执行系统内存的直接虚拟存储寻址可以涉及利用虚拟存储地址定义的页目录的目录项目,将虚拟存储地址转换为系统内存第二部分内的一物理地址。
本发明的其它实施例提供一种执行分段卸载的方法。该方法涉及:通过以网络处理器的名义执行一系统内存的一用户存储空间的直接虚拟存储寻址,获取主机处理器运行的用户进程发出的有效载荷数据的步骤,以及网络处理器通过一个或多个数据包对有效载荷数据进行分段的步骤。
在上述实施例中,通过一个或多个数据包对有效载荷数据进行分段,可以涉及通过执行TCP分段创建一个或多个传输控制协议(TCP)数据包。
本发明的其它实施例提供了一个可由一个或多个网络装置处理器读取的程序存储装置,该装置嵌入一个可由一个或多个处理器执行的指令程序,从而实现传输控制协议(TCP)分段卸载的方法步骤。接收描述传输控制协议有效载荷数据的虚拟存储地址的信息,以对存储在系统内存用户存储空间的TCP有效载荷数据进行响应。然后,基于存储在系统内存中的页表与虚拟存储地址,执行系统内存的直接虚拟存储寻址,从而自用户存储空间中获取TCP有效载荷数据。最后,通过一个或多个传输控制协议数据包,对TCP有效载荷数据进行分段。
本发明的其它实施例详见附图及以下详细描述。
附图说明
本发明实施例通过附图为示例性说明,但并不用于限制本发明的范围。附图中相似的部件使用相同的附图标记,其中:
图1所示为传统方式实现的TSO卸载处理;
图2所示为依照本发明不同实施例的传输控制协议分段卸载处理;
图3为本发明实施例所应用的系统示意图;
图4A-4B示出可应用于本发明各个相关实施例的示例性虚拟寻址机制;
图5为依照本发明实施例的向外的TCP流量处理流程图。
具体实施方式
本发明涉及有效传输网络流量的方法与系统。依据实施例,传输控制协议分段卸载(TSO)处理无需将有效载荷数据从用户空间复制至内核空间以由或以网络接口的名义对虚拟内存直接寻址,。此外,一实施例中提供数据分散/聚集(scatter-gather)功能,该功能使数据可以存储于非连续用户空间及/或非连续内核空间且在该非连续用户空间及/或非连续内核空间形成一个或多个TCP数据包以获取所述数据包并将其连接在一起。在各个实施例中,数据分散/聚集功能所采用的缓冲器描述符可以指向物理内存或虚拟内存。
为简单起见,本发明的实施例描述于TCP流量分段的背景之下。但是需要注意的是,本发明所描述当TSO操作通常足以实现其它传输层协议的卸载分段,或者通过网际协议(IP)对本身不支持分段的协议进行分段,例如:通用数据报协议(UDP)。因此,本发明实施例提供的技术方案可以通过降低CPU开销来提高高带宽网络连接的向外吞吐率。
下述说明中介绍了多个具体细节以提供对本发明实施例的充分理解。但是,本领域技术人员可在无需熟悉部分具体细节的情况下执行本发明实施例。在其它实例中,主要结构与装置详见流程图。
本发明实施例包括多个步骤,描述如下。所述步骤可通过硬件部件执行或者采用可执行机器指令实施。所述步骤可由硬件装置执行,也可内嵌于机器可执行指令中,通过调用指令自身通用或特定的程序予以执行。所述步骤亦可通过软、硬件、固件与/或人工操作相结合执行。
本发明实施例可以一计算机程序产品提供,其可以包括一存储所述指令的机读介质,所述指令能够为一计算机(或其他电子设备)编写程序以执行一操作。该机读介质可以包括但不局限于软盘、光盘、压缩盘只读存储器(CD-ROM)、磁光碟、ROM、随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)、磁卡或光卡、闪存存储器或者任何其它形式的可存储电子指令的媒体/计算机可读介质。此外,本发明的实施例也可以是下载的一计算机程序产品,所述程序可以自一远程计算机通过通信链接(例如调制解调器或网络连接)传输附于载波或其他传播介质的数据信号至一发出请求的计算机。
本发明涉及术语定义见下。
“连接”或“连结”以及相关应用于操作范畴中的术语,并不单单局限于直接连接或连结。
“在一实施例中”“根据本发明的一实施例”以及类似的表述通常指代下述的特定的性能、结构或特点包括于本发明的至少一个实施例中,以及可能包括在本发明的多于一个实施例中。需要说明的是,这样的表达并不特指同一个实施例。
如果说明书中在陈述一个部件或功能被包括或者具有某种属性时使用了“可能”“可以”“能够”这样的表述,是指这样的部件或功能并不是必须被包括或具有某种属性。
“响应”包括全部或部分的响应。
图2所示为本发明实施例的TSO技术。可以理解的是本实例为包括硬件及软件的多个功能单元的简要逻辑视图,。因此,图2无需示出所示硬件及/或软件或其之间连接的实际物理视图。
与图1表示的TSO技术相比,本实例中,不需将TCP有效载荷数据从用户内存空间复制至内核内存空间,也不需存储在邻近存储器上。本例中,可以认为(正如现实中的)TCP有效载荷由一个或多个用户进程发出,例如用户进程220。
本实施例中,网络驱动器215、内核进程210及/或用户进程220可通过存储拟用于介质接入控制(MAC)传输的数据或支持该传输的信息,影响系统内存230的内容。所示系统内存230包含多个缓冲器描述符240、一报头缓冲器250、一页表255,以及多个有效载荷缓冲器(例如:有效载荷缓冲器1至有效载荷缓冲器N)。
页表255是一个转换数据结构,详见下文,该页表允许接口硬件与系统内存联接以直接寻址虚拟内存而从确保有效进行TSO处理。根据一项实施例,该页表转换数据结构模拟32位英特尔架构(IA32)页表。在该实施例中,采用IA32系统时,网络驱动器215可以重复使用该系统的自身页表结构。采用其它系统时,网络驱动器215可以从该自身页表创建所需的页表结构。
缓冲器描述符240指向对应的包含有TCP有效载荷数据的有效载荷缓冲器。在本实例中,用户进程220可以发出TCP有效载荷数据并通过网络(未显示)传输该有效载荷数据。用户进程220通过网络驱动器215,将传输控制协议有效载荷数据存储至系统内存230。在一项实施例中,网络驱动器215可以应用多个缓冲器描述符240(例如:缓冲器描述符1至缓冲器描述符N)以指定多个存储在非邻接的存储器上的有效载荷数据缓冲器260(例如:缓冲器描述符1至缓冲器描述符N)。通过缓冲器描述符260,用户进程发出的TCP有效载荷数据得以分配。单个缓冲器描述符也可以表示存储有TCP有效载荷数据的单个有效载荷缓冲器,或多个缓冲器描述符也可被限于表示存储在邻接存储器上的多荷载缓冲器。特别的,在多个缓冲器描述符存储于物理上不邻近存储器的实施例中,可以提供一数据分散/聚集功能以确保有效地从用户存储空间检索获取非邻接的有效载荷缓冲器。该数据分散/聚集功能将在后文详述。
内核进程210可以创建适当的传输控制协议模板报头(未显示),并将传输控制协议模板报头存储在内核存储空间中的报头缓冲器250中,以备数据包290后续使用。
在一项实施例中,每个缓冲器描述符240均包括一页目录基地址寄存器字段(PDBR field)241、一缓冲器地址字段242、一MSS字段243、一CMD字段244、以及一长度字段245。网络驱动器215可创建缓冲器描述符240以指向存储器(缓冲器)片,该存储器片起始于由缓冲器地址242指定的一地址并具有由长度字段245规定的一定数量的字节。MMS字段243规定一最大分段大小(maximum segment size,MMS),TCP分段进程280利用该最大分段大小将TCP有效载荷数据合理分段为适当数量的数据包290。网络驱动器215可以采用多个缓冲器描述符描述一个数据包的多个缓冲器。然后,数据分散/聚集硬件270能够获取并连接该多个缓冲器以形成一个数据包,用于介质接入控制传输。
缓冲器描述符240可以指向物理内存或虚拟内存。在一项实施例中,CMD字段244规定了虚拟内存的位数,从而描述缓冲器地址字段242包含的地址为虚拟地址或物理地址。按照下文规定,当缓冲器地址字段242包含的地址为一虚拟地址时,PDBR字段241则包含可用于将该虚拟地址转换为一物理地址的页表255中页目录基地址,从而实现用户存储空间的直接虚拟内存寻址,以从相应有效载荷缓冲器恢复有效载荷数据。
在一项实施例中,一个或多个上述功能单元的功能性可以进行多种组合。例如:数据分散/聚集模块270与TCP分段模块280可以组合。而且,可以采用任何适当的通信方法(例如:通过一个或多个通信路径传递信息、参数、及/或信号等)连接各个功能单元。此外,所述功能单元可以按照任何适当的互连架构(例如:完全连接、超链接等)实现物理联接。
依据本发明实施例,功能单元可以采用任何适当的逻辑类型(例如:数字逻辑、软件代码等)执行本发明所述的操作。本发明实施例相关的任何功能单元可以包括机器可读介质,该可读介质包括本发明所述的操作执行指令。机器可读介质包括任何采用机器(例如:计算机)可读形式提供信息(例如:存储及/或传输)的机制。例如:可用计算机处理的介质包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储器、光学存储介质或闪存装置。
依据一项实施例及如下文所述,连接至系统总线的一总线/存储接口以网络装置的名义的网络接口执行数据散/聚功能。网络接口执行TCP分段处理。
至于用户进程220,值得注意的是,在不同实施例中,如果有效载荷缓冲器260可以重新使用及/或相关存储器可以释放,则可通过锁定及/或信令技术与用户空间进程通信。在一实施例中,一旦网络装置215针对一特殊有效载荷缓冲器创建相应的缓冲器描述符,则该网络装置215可以标记页面为用户空间应用程序只读。采用这种方法时,如果该用户空间应用程序220再次写入缓冲器,则例外情况将被提出,内核将能够制出一份适于用户应用程序220的可写复件。在其它替代实施例中,用户空间进程220可以等待,直至尝试再次写入有效载荷缓冲器之前已经发出来自效载荷缓冲器的有效载荷数据。例如:在Linux vmsplice()系统调用情况下,页面停止分享之前,用户进程220不应再次写入页面。在其它实施例中,可以按照一个较高的级别执行同步处理(例如:其它终端确认收到有效载荷数据的高级协议)。
图3为本发明实施例所应用的网络装置300的示意图。本实施例中,网络装置300包括一网络接口350、一总线或存储器接口340、一互连总线、一通用处理器310、以及一系统内存。通用处理器320可为适于执行由操作系统发出的软件指令的处理器。因此,通用处理器可以但不限于采用个人计算机当前使用的多种类型的处理器例如Intel、AMD处理器等。按照本发明所公开的,本领域技术人员必须能够了解本发明不同实施例中可能采用的多种通用处理器。在一项实施例中,处理器320可以由半导体器件实现,例如可编程门阵列或专用集成电路。
总线或存储器接口340控制互连总线330及对系统内存320的访问。在本发明特定实施例中,互连总线330采用外设部件互连标准(PCI)总线,系统内存320采用随机存取存储器330,总线或存储器接口340为可控制外设部件互连标准(PCI)总线并提供系统内存330访问的芯片集。需要注意的是互连总线330可以但不限于采用外设部件互连标准(PCI)接口、扩充外设部件互连标准(PCI-X:Peripheral Component Interconnect Extended)接口、快捷外设部件互连标准(PCIe:Peripheral Component Interconnect Express)接口或超传输(HT:HyperTransport)接口。
按照图2所示,系统内存320可能已存储一个或多个缓冲器描述符(例如:缓冲器描述符240)、一包含在报头缓冲器(例如:报头缓冲器250)的传输控制协议模板报头、一页表以及一个或多个有效载荷缓冲器(例如:有效载荷缓冲器1至有效载荷缓冲器N)及其它信息。页表255是一种转换数据结构,下文将作进一步描述,该页表允许接口硬件连结至系统内存以实现直接虚拟内存寻址,从而确保有效实现传输控制协议分段卸载处理。
依据特定实施例,网络接口350可以为一网络接口装置(NIU:networkinterface unit),例如:网络接口卡(NIC),或其它网络接口装置,以确保网络装置300与外网连接。在一项实施例中,网络接口350包括一网络处理器或其它数字逻辑(未显示)以确保执行通用处理器310的传输控制协议分段卸载处理。在一项实施例中,可以通过网络处理器执行传输控制协议分段卸载处理。或者,可在硬件中执行传输控制协议分段卸载处理,内核仅对数据分散/聚集表中的各个向量进行存储地址转换处理。
在一项实施例中,总线或存储器接口340执行数据分散/聚集处理,能够基于存储于系统内存320的页表转换数据结构或基于芯片内缓存(称作转换后备缓冲器或TLB345)中最近使用的页目录项目及页表项目,执行系统内存320的直接虚拟内存寻址。在本发明的部分实施例中,总线或存储器接口340执行虚拟寻址的目的仅在于通过外设部件互连标准(PCI)总线,访问储存在用户存储空间的有效载荷缓冲器内的TCP有效载荷数据。在这种情况下,总线或存储器接口340仅包括一系统内存320的转换后备缓冲器TLB345。按照下文所述,上述TLB可能包括4-KB与4-MB页面两者的参考。多数情况下,采用同一任务项下的转换后备缓冲器TLB,进行内存分页。PCI总线循环至页面目录,且仅当转换后备缓冲器TLB345不包含被请求页面的转换信息时,需执行系统内存320内的页表。当页目录项目或页表项目在不同任务间变更时,可以停止转换后备缓冲器TLB 345的运行。
图4A-4B示出可应用于本发明各个相关实施例的示例性虚拟寻址机制。图4A表示将虚拟地址400映射至示例性4-KB页面440时,页目录410及页表430的数据层次。页目录410中的各项目,例如:目录项目411,指向页表430。页表430各项目,例如:页表项目431,指向特定物理地址指定的物理内存中的页面440,例如:物理地址441。
根据(i)可由上述缓冲器描述符的页目录基地址寄存器PDBR字段420指定的页目录410的基地址以及(ii)虚拟地址400的偏移字段403、目录字段401、页表字段402,总线/存储器接口340可以执行用户存储空间的直接虚拟内存寻址,从而以网络处理器的名义,例如以网络接口350的名义,从相应的有效载荷缓冲器上获取有效载荷数据。
如果相关通用处理器中止页目录410的一项或多项,可以采用寄存器(未显示)示出。在该中止发生时,应由网络接口350及/或总线或存储器接口340通过访问系统内存320刷新页表。
图4B所示为采用页目录460将虚拟地址映射至示例性4-MB页面480的制程。页目录460的各项目,例如:目录项目461,指向物理内存中的4-MB页面480。
根据(i)可由上述缓冲器描述符的页目录基地址寄存器PDBR字段470指定的页目录460的基地址以及(ii)虚拟地址450的偏移字段452、目录字段451,总线/存储器接口340可以执行用户存储空间的直接虚拟内存寻址,从而以网络处理器的名义,例如以网络接口350的名义,从相应的有效载荷缓冲器上获取有效载荷数据。
如果相关通用处理器中止页目录460的一项或多项,可以采用寄存器(未显示)。在这种情况下,应由网络接口350及/或总线或存储器接口340通过访问系统内存320刷新页表。
图5为示出本发明实施例的向外TCP处理流程图。依据特定实施例,本发明所述之各个步骤及判断单元可以通过硬件部件实现,内嵌于机器可执行指令中,通过调用指令自身通用或特定的程序予以执行。所述步骤亦可通过软、硬件、固件与/或人工操作相结合执行。
依据本实施例,向外TCP流量处理从判断流程510起始。在判断流程510,判断是否存在有效载荷数据。如果存在,继续至判断流程520;如不存在,返回至判断流程510直至出现有效载荷数据。在本发明一项实施例中,网络接口(例如:网络接口350)或总线/存储器接口(例如:总线或存储器340)定期中断以触发检查待处理的向外的有效载荷数据是否可用。或者,每当网络驱动器(网络驱动器215)将缓冲器描述符存储至系统内存(例如:系统内存230)时,该中断可被事件触发并被接收。此外,该中断可基于一存储至系统内存的一有效载荷缓冲器得以接收。采用本技术领域内任何现有中断机制接收上述中断,包括但不限于采用轮询结构体系或采用与网络接口相关的网络处理器的异步中断端口。其中在该轮询结构体系中,总线/存储器接口或网络接口定期检测一中断寄存器。此外或者作为替代方案,当网络接口具备进程及存储资源,能够通过网络传输附加数据至与网络相联接装置时,可以按照需要基准控制网络接口或总线/存储器接口。按照本申请书规定,本领域技术人员能够识别本发明不同实施例中可能采用的多种中断及/或轮询机制。
如果已经确认判断流程520存在有效载荷数据,需要进一步判断有效载荷数据存储在一虚拟地址缓冲器(例如:存储于用户空间)或存储在一物理地址缓冲器(例如:存储于内核空间)。如果有效载荷数据存储在虚拟地址缓冲器上,继续进行流程540;否则,执行流程530。根据一项实施例,参照与有效载荷数据相关的一缓冲器描述符,判断有效载荷数据是否存储在虚拟地址缓冲器上。例如:如上所述,各有效载荷缓冲器可以具备一对应的缓冲器描述符,其包含定义系统内存中有效载荷数据起始地址的一个或多个地址的相关信息、有效载荷数据长度(例如:字节)的相关信息、应用于有效载荷数据的最大分段大小的相关信息、定义上述地址的类型为虚拟地址或物理地址的虚拟存储指示器的相关信息以及其它用于定位、获取、或处理有效载荷数据的信息。在其它实施例中,由于全部有效载荷数据均存储至虚拟内存中,因此不需上述确认工作。
在流程530,已经判断该有效载荷数据存储在物理地址缓冲器上。因此,该有效载荷数据的地址(例如:依据对应缓冲器描述符所确定的)得以识别并将其作为物理地址。
在流程540上,已经确认有效载荷数据存储在虚拟地址缓冲器上。因此,采用虚拟寻址机制(例如:页表转换数据结构,如页表255或图4A、图4B所示的机制),将有效载荷数据地址(例如:由对应缓冲区描述符所规定的)转换为物理地址。在一项实施例中,利用地址不同部分提供的信息,移动页表,从页表转换数据结构中提取物理地址。
在流程550上,利用在流程540中确认的物理地址、或在判断流程520中确认为物理地址的原始缓冲器地址,从系统内存获取有效载荷数据。依据一项实施例,总线或存储器接口执行虚拟内存直接寻址,并以网络接口的名义从系统内存获取数据。在一项实施例中,获取动作以数据分散/聚集进程结束。在数据分散/聚集进程中,多组有效载荷数据存储在非邻近存储器上,作为多荷载缓冲器的构成部分,并通过获取多荷载缓冲器的方式拼凑数据。在多数可能使用情况下,一个数据包包含一个指向由内核创建的(MAC+IP+TCP)报头的物理地址缓冲器、一个或多个指向由用户模式应用程序发出的传输控制协议有效载荷的虚拟地址缓冲器。通过虚拟内存寻址功能,不得从用户存储空间复制至内核存储空间,避免在网络流量分段处理过程中网络装置通用处理器的资源使用量增加。
在流程560上执行传输控制协议分段处理。在一项实施例中,从物理地址缓冲器及虚拟地址缓冲器获取所有数据(分别为报头及有效载荷数据)之后,执行传输控制协议分段卸载,将有效载荷分段为多个符合最大分片尺寸要求的数据包。例如:通过对从适当数量符合最大分片尺寸要求的数据包收集的有效载荷数据进行划分,形成一个或多个数据包(例如:数据包290)。依据一项实施例,采用独立于发出有效载荷数据的通用处理器的网络处理器,进行分段处理,提高系统吞吐率,减少通用处理器的运行磨损。通过校验与卸载(CSO),计算正确的网际协议IP,并校验各段传输控制协议。依据本发明实施例,可在不需网络装置通用处理器干预的情况下,完成传输控制协议分段卸载、校验与卸载。
虽然本文中提出并描述了一些特殊的实施例。但应该理解的是这些特殊的实施例仅作为示例提出,并不作为对本发明的限制。本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (12)
1.一种执行分段卸载的方法:该方法包括:
一接口为一网络处理器执行一系统内存的一用户存储空间的直接虚拟内存寻址,从而获取由运行在主机处理器上的用户进程发出的有效载荷数据;以及
所述网络处理器通过一个或多个数据包对有效载荷数据进行分段处理。
2.根据权利要求1所述的方法,其中,所述通过一个或多个数据包对有效载荷数据进行分段处理的步骤包括通过执行传输控制协议分段,创建一个或多个传输控制协议数据包。
3.根据权利要求2所述的方法,其进一步包括在该系统内存中存储一缓冲器描述符,该缓冲器描述符包含:
i、描述包含该有效载荷数据至少一部分的该系统内存中的一数据包缓冲器的一起始地址的信息;以及
ii、描述该起始地址为虚拟地址或物理地址的信息。
4.根据权利要求2所述的方法,其进一步包括在该系统内存中存储多个缓冲器描述符,该系统内存中包括:
所述多个缓冲器描述符的第一缓冲器描述符包含:
i描述包含该有效载荷数据的一第一部分的系统内存中第一个数据包缓冲器的一第一个起始地址的信息;以及
ii描述该第一个起始地址为虚拟地址或物理地址的信息;
所述多个缓冲器描述符的一第二缓冲器描述符包含:
i描述包含该有效载荷数据的一第二部分的系统内存中第二个数据包缓冲器的一第二个起始地址的信息;以及
ii描述该第二个起始地址为虚拟地址或物理地址的信息。
5.根据权利要求3所述的方法,其中,该缓冲器描述符进一步包含描述一页目录的一虚拟内存基地址的信息,且其中所述执行用户存储空间直接虚拟内存寻址进一步包括采用由所述起始地址指定的该页目录的一目录项目,将该起始地址转换为该用户存储中的与该数据包缓冲器相关的一物理地址。
6.一种执行传输控制协议分段卸载的方法,该方法包括:
主机接口对运行在中主机处理器上的用户进程发出响应,将传输控制协议有效载荷数据存储至一系统内存的用户存储空间,该主机接口通过互连总线连接至系统内存,接收描述该用户存储空间内该传输控制协议有效载荷数据的一虚拟内存地址的信息;
该主机接口按照存储在该系统内存上的一页表及该虚拟内存地址,为该网络处理器执行该系统内存的直接虚拟内存寻址,从而为该网络处理器从该用户存储空间获取该传输控制协议有效载荷数据;以及
该网络处理器通过一个或多个传输控制协议数据包对该传输控制协议有效载荷数据进行分段。
7.一种网络装置包括:
处理器,负责执行一个或多个内核进程以及一个或多个用户进程;
系统内存,其与该处理器连接,其内存储有一页表数据结构,该页表数据结构包含与将虚拟地址转换为物理地址相关的信息,该系统内存包含一第一部分内存,通过一个或多个内核进程运行,第二部分通过一个或多个用户进程运行;
操作网络接口,通过一个或多个网络数据包对有效载荷数据进行分段,并通过网络传输一个或多个网络数据包;
互连总线与处理器及系统内存连结;以及
操作与网络接口及互连总线联接的接口,按照与有效载荷数据及页表数据结构相关的虚拟存储地址,执行系统内存的虚拟存储直接寻址,以网络接口的名义从系统内存的第二部分获取有效载荷数据。
8.根据权利要求7所述的网络装置,其中该有效载荷数据包含传输控制协议有效载荷数据;所述一个或多个网络数据包包含一个或多个传输控制协议数据包。
9.根据权利要求7所述的网络装置,其中该接口可进一步用于从该系统内存获取一缓冲区描述符,该缓冲区描述符包含:
i、描述虚拟存储地址的信息;以及
ii、该页表数据结构的一页目录的虚拟存储基地址的信息,以及所述执行该系统内存的虚拟内存直接寻址包括利用由该虚拟存储地址定义的该页目录的一目录项目,在该系统内存的第二部分内存中,将该虚拟存储地址转换为一物理地址。
10.一种执行分段卸载的方法包括:
通过为一网络处理器执行一系统内存的一用户存储空间的直接虚拟内存寻址,获取由运行在一主机处理器上的一用户进程发出的有效载荷数据的步骤;以及
该网络处理器通过一个或多个数据包,对该有效载荷数据进行分段的步骤。
11.根据权利要求10所述的方法,其中所述通过一个或多个数据包对有效载荷数据进行分段的步骤,包括通过执行传输控制协议分段处理,创建一个或多个传输控制协议数据包。
12.一个或多个网络装置处理器的可读程序存储装置,执行由一个或多个处理器可执行的指令程序,实施传输控制协议分段卸载所需的方法步骤,具体包括以下方面:
对存储在系统内存用户存储空间的传输控制协议有效载荷数据发出响应,接收描述传输控制协议有效载荷数据虚拟存储地址的有关信息;
按照存储在系统内存中的页表及虚拟存储地址,执行系统内存虚拟存储直接寻址,从用户存储空间获取传输控制协议有效载荷数据;以及
通过一个或多个传输控制协议数据包对传输控制协议有效载荷数据进行分段。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6011408P | 2008-06-09 | 2008-06-09 | |
US61/060,114 | 2008-06-09 | ||
US12/254,931 US7944946B2 (en) | 2008-06-09 | 2008-10-21 | Virtual memory protocol segmentation offloading |
US12/254,931 | 2008-10-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101827072A true CN101827072A (zh) | 2010-09-08 |
CN101827072B CN101827072B (zh) | 2014-03-12 |
Family
ID=41400275
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910147461.0A Active CN101827072B (zh) | 2008-06-09 | 2009-06-09 | 执行分段卸载的方法和网络装置 |
CN200910147460.6A Active CN101827071B (zh) | 2008-06-09 | 2009-06-09 | 网络协议集合加速方法与网络装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910147460.6A Active CN101827071B (zh) | 2008-06-09 | 2009-06-09 | 网络协议集合加速方法与网络装置 |
Country Status (2)
Country | Link |
---|---|
US (9) | US7944946B2 (zh) |
CN (2) | CN101827072B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9247032B2 (en) | 2011-03-23 | 2016-01-26 | Mediatek Inc. | Method for offloading packet segmentations and device using the same |
CN110445580A (zh) * | 2019-08-09 | 2019-11-12 | 浙江大华技术股份有限公司 | 数据发送方法及装置、存储介质、电子装置 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7944946B2 (en) | 2008-06-09 | 2011-05-17 | Fortinet, Inc. | Virtual memory protocol segmentation offloading |
US9565207B1 (en) | 2009-09-04 | 2017-02-07 | Amazon Technologies, Inc. | Firmware updates from an external channel |
US10177934B1 (en) | 2009-09-04 | 2019-01-08 | Amazon Technologies, Inc. | Firmware updates inaccessible to guests |
US8214653B1 (en) | 2009-09-04 | 2012-07-03 | Amazon Technologies, Inc. | Secured firmware updates |
US8887144B1 (en) | 2009-09-04 | 2014-11-11 | Amazon Technologies, Inc. | Firmware updates during limited time period |
US8971538B1 (en) | 2009-09-08 | 2015-03-03 | Amazon Technologies, Inc. | Firmware validation from an external channel |
US8601170B1 (en) | 2009-09-08 | 2013-12-03 | Amazon Technologies, Inc. | Managing firmware update attempts |
US8300641B1 (en) | 2009-09-09 | 2012-10-30 | Amazon Technologies, Inc. | Leveraging physical network interface functionality for packet processing |
US8959611B1 (en) | 2009-09-09 | 2015-02-17 | Amazon Technologies, Inc. | Secure packet management for bare metal access |
US8381264B1 (en) | 2009-09-10 | 2013-02-19 | Amazon Technologies, Inc. | Managing hardware reboot and reset in shared environments |
US8654784B2 (en) | 2010-03-11 | 2014-02-18 | Microsoft Corporation | Multi-stage large send offload |
US8989185B2 (en) * | 2010-08-05 | 2015-03-24 | Thomson Licensing | Method and apparatus for converting a multicast session to a unicast session |
US9363193B2 (en) * | 2013-11-19 | 2016-06-07 | Cavium, Inc. | Virtualized network interface for TCP reassembly buffer allocation |
US9485333B2 (en) * | 2013-11-22 | 2016-11-01 | Freescale Semiconductor, Inc. | Method and apparatus for network streaming |
CN103761060B (zh) * | 2014-01-27 | 2017-02-15 | 华为技术有限公司 | 一种数据处理方法及服务器 |
US10346330B2 (en) * | 2014-01-29 | 2019-07-09 | Red Hat Israel, Ltd. | Updating virtual machine memory by interrupt handler |
US9959203B2 (en) | 2014-06-23 | 2018-05-01 | Google Llc | Managing storage devices |
GB2544515B (en) * | 2015-11-19 | 2020-02-12 | Canon Kk | System for receiving or transmitting data with a fast-path protocol processing architecture |
US20170249162A1 (en) * | 2016-02-25 | 2017-08-31 | Red Hat Israel, Ltd. | Safe transmit packet processing for network function virtualization applications |
US10339065B2 (en) * | 2016-12-01 | 2019-07-02 | Ampere Computing Llc | Optimizing memory mapping(s) associated with network nodes |
US10936405B2 (en) * | 2017-11-13 | 2021-03-02 | Weka.IO Ltd. | Efficient networking for a distributed storage system |
US10887252B2 (en) * | 2017-11-14 | 2021-01-05 | Mellanox Technologies, Ltd. | Efficient scatter-gather over an uplink |
CN110069422B (zh) * | 2018-01-23 | 2021-06-18 | 普天信息技术有限公司 | 基于mips多核处理器的内存缓冲区回收方法 |
EP3642684B1 (en) * | 2018-08-24 | 2021-10-06 | Baidu.com Times Technology (Beijing) Co., Ltd. | Data transfer logic for transferring data between sensors and planning and control of autonomous driving vehicle |
JP7044033B2 (ja) * | 2018-11-06 | 2022-03-30 | 日本電信電話株式会社 | アクセス制御方法、アクセス制御装置、およびデータ処理装置 |
CN111642137A (zh) * | 2018-12-14 | 2020-09-08 | 华为技术有限公司 | 快速发送写数据准备完成消息的方法、设备和系统 |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
CN111209229B (zh) * | 2019-12-30 | 2021-12-21 | 苏州艾利特机器人有限公司 | 一种基于虚拟设备的现场总线方法 |
US11750699B2 (en) | 2020-01-15 | 2023-09-05 | Mellanox Technologies, Ltd. | Small message aggregation |
CN113468090B (zh) * | 2020-03-30 | 2024-04-05 | 浙江宇视科技有限公司 | 一种PCIe通信方法、装置、电子设备及可读存储介质 |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
CN113438097B (zh) * | 2021-05-21 | 2022-08-23 | 翱捷科技股份有限公司 | 一种网络加速的实现方法及装置 |
CN116136826B (zh) * | 2021-11-17 | 2024-07-30 | 华为技术有限公司 | 内存访问方法、芯片、电子设备及计算机可读存储介质 |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2512201B2 (ja) * | 1990-04-27 | 1996-07-03 | 松下電器産業株式会社 | デ―タの文字列変換表示における通信制御方法及びその回線モニタ及びその通信システム |
US5586264A (en) * | 1994-09-08 | 1996-12-17 | Ibm Corporation | Video optimized media streamer with cache management |
US5760767A (en) * | 1995-10-26 | 1998-06-02 | Sony Corporation | Method and apparatus for displaying in and out points during video editing |
US5933602A (en) * | 1996-07-31 | 1999-08-03 | Novell, Inc. | System for selecting command packet and corresponding response packet from communication stream of packets by monitoring packets sent between nodes on network |
US6430628B1 (en) | 1998-12-08 | 2002-08-06 | Intel Corporation | Method and apparatus for reducing direct memory access transfers using smart coalescing |
US6650640B1 (en) * | 1999-03-01 | 2003-11-18 | Sun Microsystems, Inc. | Method and apparatus for managing a network flow in a high performance network interface |
US6449656B1 (en) * | 1999-07-30 | 2002-09-10 | Intel Corporation | Storing a frame header |
US6973040B1 (en) | 2000-03-13 | 2005-12-06 | Netzentry, Inc. | Method of maintaining lists of network characteristics |
US6708292B1 (en) * | 2000-08-18 | 2004-03-16 | Network Associates, Inc. | System, method and software for protocol analyzer remote buffer management |
US20020144004A1 (en) | 2001-03-29 | 2002-10-03 | Gaur Daniel R. | Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing |
US7149189B2 (en) * | 2001-07-17 | 2006-12-12 | Mcafee, Inc. | Network data retrieval and filter systems and methods |
US6826639B2 (en) * | 2001-07-27 | 2004-11-30 | Computer Access Technology Corporation | Hierarchical display of multilevel protocol for communication data |
US7327747B2 (en) | 2001-08-30 | 2008-02-05 | Tellabs Operations, Inc. | System and method for communicating data using a common switch fabric |
US8190765B2 (en) | 2002-06-25 | 2012-05-29 | Intel Corporation | Data reception management apparatus, systems, and methods |
US7346701B2 (en) * | 2002-08-30 | 2008-03-18 | Broadcom Corporation | System and method for TCP offload |
US8417913B2 (en) * | 2003-11-13 | 2013-04-09 | International Business Machines Corporation | Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages |
US7249241B1 (en) * | 2004-04-29 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for direct virtual memory address caching |
US7930422B2 (en) * | 2004-07-14 | 2011-04-19 | International Business Machines Corporation | Apparatus and method for supporting memory management in an offload of network protocol processing |
US7512684B2 (en) * | 2004-09-30 | 2009-03-31 | Intel Corporation | Flow based packet processing |
US7721299B2 (en) * | 2005-08-05 | 2010-05-18 | Red Hat, Inc. | Zero-copy network I/O for virtual hosts |
US20070255866A1 (en) * | 2006-05-01 | 2007-11-01 | Eliezer Aloni | Method and system for a user space TCP offload engine (TOE) |
CN101123567A (zh) * | 2006-05-01 | 2008-02-13 | 美国博通公司 | 用于处理网络信息的方法及系统 |
KR100923991B1 (ko) * | 2007-12-17 | 2009-10-28 | 한국전자통신연구원 | 보안터널을 이용한 이동성 지원 방법 |
US7944946B2 (en) | 2008-06-09 | 2011-05-17 | Fortinet, Inc. | Virtual memory protocol segmentation offloading |
US9645934B2 (en) * | 2013-09-13 | 2017-05-09 | Samsung Electronics Co., Ltd. | System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer |
-
2008
- 2008-10-21 US US12/254,931 patent/US7944946B2/en active Active
- 2008-10-22 US US12/255,916 patent/US20090307363A1/en not_active Abandoned
-
2009
- 2009-06-09 CN CN200910147461.0A patent/CN101827072B/zh active Active
- 2009-06-09 CN CN200910147460.6A patent/CN101827071B/zh active Active
-
2011
- 2011-04-28 US US13/096,973 patent/US8411702B2/en active Active
-
2013
- 2013-03-29 US US13/853,326 patent/US8964785B2/en active Active
-
2014
- 2014-12-12 US US14/568,499 patent/US9319490B2/en active Active
-
2016
- 2016-01-14 US US14/995,922 patent/US9319491B1/en active Active
- 2016-04-18 US US15/131,451 patent/US9401976B1/en active Active
- 2016-06-30 US US15/198,936 patent/US9825885B2/en active Active
-
2017
- 2017-11-18 US US15/817,180 patent/US10009295B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9247032B2 (en) | 2011-03-23 | 2016-01-26 | Mediatek Inc. | Method for offloading packet segmentations and device using the same |
CN110445580A (zh) * | 2019-08-09 | 2019-11-12 | 浙江大华技术股份有限公司 | 数据发送方法及装置、存储介质、电子装置 |
CN110445580B (zh) * | 2019-08-09 | 2022-04-19 | 浙江大华技术股份有限公司 | 数据发送方法及装置、存储介质、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
US10009295B2 (en) | 2018-06-26 |
US20160234352A1 (en) | 2016-08-11 |
US9319490B2 (en) | 2016-04-19 |
US20130215904A1 (en) | 2013-08-22 |
US8411702B2 (en) | 2013-04-02 |
US20110200057A1 (en) | 2011-08-18 |
US20150110125A1 (en) | 2015-04-23 |
CN101827071A (zh) | 2010-09-08 |
US20160352652A1 (en) | 2016-12-01 |
CN101827072B (zh) | 2014-03-12 |
US20090307363A1 (en) | 2009-12-10 |
US7944946B2 (en) | 2011-05-17 |
US9319491B1 (en) | 2016-04-19 |
US9401976B1 (en) | 2016-07-26 |
US9825885B2 (en) | 2017-11-21 |
US8964785B2 (en) | 2015-02-24 |
US20180077087A1 (en) | 2018-03-15 |
CN101827071B (zh) | 2014-05-28 |
US20160134724A1 (en) | 2016-05-12 |
US20090304029A1 (en) | 2009-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101827072B (zh) | 执行分段卸载的方法和网络装置 | |
EP3716546B1 (en) | Data transmission method and first device | |
US10324873B2 (en) | Hardware accelerated communications over a chip-to-chip interface | |
CN101304373B (zh) | 一种实现局域网内高效传输大块数据的方法及系统 | |
EP3042297B1 (en) | Universal pci express port | |
JP5902834B2 (ja) | 暗示的なメモリの登録のための明示的なフロー制御 | |
US9430432B2 (en) | Optimized multi-root input output virtualization aware switch | |
CN101409675A (zh) | 网络分组净荷压缩 | |
KR20180082579A (ko) | 저장된 데이터에 액세스하기 위한 방법, 및 관련 컨트롤러, 장치, 호스트와 시스템 | |
CN114095427A (zh) | 一种处理数据报文的方法和网卡 | |
US11829323B2 (en) | Method of notifying a process or programmable atomic operation traps | |
JP2006325054A (ja) | Tcp/ip受信処理回路及びそれを具備する半導体集積回路 | |
US9015380B2 (en) | Exchanging message data in a distributed computer system | |
CN113742269B (zh) | 用于epa设备的数据传输方法、处理设备和介质 | |
CN115396527B (zh) | 一种基于fpga的pcie和srio协议转换系统及方法 | |
US10769096B2 (en) | Apparatus and circuit for processing data | |
WO2022017454A1 (zh) | 一种报文处理方法、网络设备以及相关设备 | |
US6708258B1 (en) | Computer system for eliminating memory read-modify-write operations during packet transfers | |
CN104102550A (zh) | 一种多主机进程间通信的方法 | |
CN116529721A (zh) | 按需可编程原子内核加载 | |
CN112019450A (zh) | 设备间流式通信 | |
US20230418697A1 (en) | Data transmission system and related device | |
WO2023040412A1 (zh) | 一种报文处理方法、网卡及服务器 | |
KR102148448B1 (ko) | 데이터 처리 장치와 회로 | |
CN115982090B (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 |