CN117421112A - 加速单元、网卡、主机和报文处理加速方法 - Google Patents

加速单元、网卡、主机和报文处理加速方法 Download PDF

Info

Publication number
CN117421112A
CN117421112A CN202311352538.4A CN202311352538A CN117421112A CN 117421112 A CN117421112 A CN 117421112A CN 202311352538 A CN202311352538 A CN 202311352538A CN 117421112 A CN117421112 A CN 117421112A
Authority
CN
China
Prior art keywords
message
host
network
heat preservation
subunit
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
Application number
CN202311352538.4A
Other languages
English (en)
Other versions
CN117421112B (zh
Inventor
钱嘉林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yusur Technology Co ltd
Original Assignee
Yusur Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yusur Technology Co ltd filed Critical Yusur Technology Co ltd
Priority to CN202311352538.4A priority Critical patent/CN117421112B/zh
Publication of CN117421112A publication Critical patent/CN117421112A/zh
Application granted granted Critical
Publication of CN117421112B publication Critical patent/CN117421112B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种加速单元、网卡、主机和报文处理加速方法,该加速单元设置于与主机连接的网卡,该加速单元包括:生成子单元,用于在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,生成保温报文,其中,所述后序报文为所述网卡通过网络接收到的网络报文;写入子单元,用于将所述保温报文写入所述接收队列,以使所述保温报文被上传至所述主机后,所述主机的处理器处理所述保温报文,使所述处理器处理报文所需的至少部分协议栈代码和数据驻留在缓存中。本方案提供的加速单元可以使主机中协议栈的至少部分代码和数据驻留在缓存中,以减少处理稀疏报文的时延,提高用户使用体验。

Description

加速单元、网卡、主机和报文处理加速方法
技术领域
本申请实施例涉及芯片技术领域,尤其涉及一种加速单元、网卡、主机和报文处理加速方法。
背景技术
稀疏报文是一连串间隔时间比较长的网络报文,由于稀疏报文的间隔时间较长,因此大部分时间里没有报文到达,主机中的处理器大部分时间处于空轮询状态,协议栈整个处理流程中的大部分代码和数据地址长时间没有被访问,导致这些数据从缓存中交换到内存中。而当新的报文到来时,处理器需要从内存中加载协议栈的代码和数据来处理报文,相比从缓存中加载代码和数据,时延较高。
目前,通过人工手动设置的预取指令来实现针对性的报文预取功能,以应对稀疏报文的情况。通过人工设定的预取功能,可以根据具体的使用场景和数据访问模式,手动指定预取哪些数据存储到缓存中,由此可以防止协议栈的代码和数据被从缓存交换至内存中。
然而,人工手动设置的预取指令主要预取协议栈处理报文时所使用的数据到缓存中,无法预取协议栈处理报文时的代码到缓存中,具体地,由于协议栈处理不同报文时运行的代码地址相差很大,把整个协议栈的代码都预取到缓存中,会导致缓存空间不足,而只预取一部分代码到缓存中,效果不好,因此无法保证协议栈代码驻留在缓存中,且预取指令需要根据具体的使用场景和数据访问模式通过人工手动设置,人工劳动强度较高,因此不适用于对大量稀疏报文的存取情况。
发明内容
有鉴于此,本申请实施例提供一种加速单元、网卡、主机和报文处理加速方法,以至少解决或缓解上述问题。
根据本申请实施例的第一方面,提供了一种加速单元,所述加速单元设置于与主机连接的网卡,包括:生成子单元,用于在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,生成保温报文,其中,所述后序报文为所述网卡通过网络接收到的网络报文;写入子单元,用于将所述保温报文写入所述接收队列,以使所述保温报文被上传至所述主机后,所述主机的处理器处理所述保温报文,使所述处理器处理报文所需的至少部分协议栈代码和数据驻留在缓存中。
在一种可能的实现方式中,加速单元还包括缓存子单元;所述缓存子单元,用于缓存所述网卡通过网络接收到的多个网络报文;所述生成子单元,用于确定所述缓存子单元缓存的所述多个网络报文的报文协议,并根据数量最多的报文协议对应的网络报文,生成所述保温报文。
在一种可能的实现方式中,所述生成子单元,用于将数量最多的报文协议对应的任一网络报文的报文头加入丢弃字符获得所述保温报文,以使所述处理器通过所述协议栈处理所述保温报文时,将所述保温报文丢弃。
在一种可能的实现方式中,所述生成子单元,用于根据预先设定的所述保温报文的报文协议和报文内容,生成所述保温报文。
在一种可能的实现方式中,加速单元还包括计时子单元;所述计时子单元,用于在接收队列中被写入所述后序报文或所述保温报文时重置计时,并在计时时间超过所述时间阈值时产生中断,以使所述生成子单元生成所述保温报文。
在一种可能的实现方式中,所述写入子单元,用于将所述后序报文或所述保温报文写入所述接收队列后,向所述主机发送第一信号,以使所述主机中设置的软件计时器重置计时时间;所述生成子单元,用于接收第二信号,其中,所述第二信号由所述主机中的所述软件计时器在计时时间超过所述时间阈值时生成。
根据本申请实施例的第二方面,提供了一种网卡,包括如上述第一方面所述的加速单元。
根据本申请实施例的第三方面,提供了一种主机,包括处理器和缓存;所述主机与如上述第二方面所述的网卡相连接;所述处理器,用于通过加载所述缓存中缓存的所述协议栈的代码和数据,以处理所述网卡上传的报文。
根据本申请实施例的第四方面,提供了报文处理加速方法,包括:在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,生成保温报文,其中,所述后序报文为所述网卡通过网络接收到的网络报文;将所述保温报文写入所述接收队列,以使所述保温报文被上传至主机后,所述主机的处理器处理所述保温报文,使所述处理器处理报文所需的至少部分协议栈代码和数据驻留在缓存中。
在一种可能的实现方式中,所述在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,生成保温报文,包括:在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,向所述主机中的处理器发送第三信号,以使所述主机中的处理器根据所述主机中缓存的多个网络报文生成所述保温报文;接收所述处理器生成的所述保温报文。
根据本申请实施例提供的方案,通过生成子单元可以在时间阈值内接收队列未被写入后序报文时,生成保温报文,通过写入子单元可以将保温报文写入接收队列,由此可以使接收队列将保温报文发送至主机后,主机中的处理器访问协议栈的至少部分代码和数据,使协议栈的至少部分代码和数据驻留在缓存中,从而可以在接收到后序报文时主机中的处理器可以从缓存中加载协议栈的代码和数据,可以避免由于接收队列中长时间未被写入报文,导致主机长时间未接收到报文,导致协议栈的代码和数据被从缓存交换至内存中,从而可以避免在接收到后序报文时处理器从内存中加载协议栈的代码和数据,降低了处理器处理稀疏报文时的时延,提高了处理器处理报文的效率,且无需人工设定缓存预取功能,降低了人工劳动强度,因此可以适用于大量稀疏报文的场景。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种加速单元的示意图;
图2是本申请实施例提供的一种网卡的接收队列的示意图;
图3是本申请实施例提供的一种包括缓存子单元的加速单元的示意图;
图4是本申请实施例提供的一种保温报文的应用场景的示意图;
图5是本申请实施例提供的一种包括计时子单元的加速单元的示意图;
图6是本申请实施例提供的一种主机的示意图;
图7是本申请实施例提供的一种报文处理加速方法的流程图。
具体实施方式
以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
如前所述,稀疏报文是一连串间隔时间比较长的网络报文,由于稀疏报文间的间隔时间较长,因此大部分时间里没有报文到达,处理器大部分时间处于空轮询状态,具体地,处理器通过加载缓存中的协议栈的代码和数据,通过协议栈处理网络报文后,由于是稀疏网络报文,因此接收到新的网络报文的时间较长,导致处理器长时间不访问缓存中的协议栈的代码和数据,此时由于处理器需要处理其他事件,缓存中需要存储新的数据,导致协议栈的代码和数据被交换至内存中,此时若接收到新的网络报文,处理器需要从内存中加载协议栈的代码和数据,并将协议栈的代码和数据交换至缓存中,由此循环,导致协议栈的代码和数据在缓存和内存中不停地交换,且相对比从缓存中加载协议栈的代码和数据处理器从内存中加载协议栈的代码和数据的时延较高,导致用户体验较差。
目前,通过缓存预取功能来实现针对性的报文预取功能,但是缓存预取功能只能对数据生效,对指令进行预取效果不好,且预取指令需要根据具体的使用场景和数据访问模式通过人工手动设置,人工劳动强度较高,因此不适用于对大量稀疏报文的存取情况。
本申请提供了一种加速单元,通过生成子单元可以在时间阈值内接收队列未被写入后序报文时,生成保温报文,通过写入子单元可以将保温报文写入接收队列,由此可以使接收队列将保温报文发送至主机后,主机中的处理器访问协议栈的至少部分代码和数据,使协议栈的至少部分代码和数据驻留在缓存中,从而可以在接收到后序报文时主机中的处理器可以从缓存中加载协议栈的代码和数据,可以避免由于接收队列中长时间未被写入报文,导致主机长时间未接收到报文,导致协议栈的代码和数据被交换至内存中,从而可以避免在接收到后序报文时处理器从内存中加载协议栈的代码和数据,降低了处理器处理稀疏报文时的时延,提高了处理器处理报文的效率,且无需人工设定缓存预取功能,降低了人工劳动强度,因此可以适用于大量稀疏报文的场景。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
图1是本申请实施例提供的一种加速单元的示意图,该加速单元100设置于与主机相连接的网卡中,如图1所示,该加速单元100包括生成子单元101和写入子单元102,生成子单元101可以在前序报文被写入网卡的接收队列之后的时间阈值内,接收队列未被写入后序报文时,生成保温报文,其中,后序报文为网卡通过网络接收到的网络报文,写入子单元102可以将保温报文写入接收队列,以使保温报文被上传至主机后,主机的处理器处理保温报文,使处理器处理报文所需的至少部分协议栈代码和数据驻留在缓存中。
网卡接收到前序报文后,通过写入子单元102将前序报文写入网卡分配的接收队列中,例如:将前序报文写入网卡分配的接收队列rx queue中。若在预先设定的时间阈值内,接收队列中没被写入后序报文,则通过生成子单元101生成保温报文,后序报文为网卡通过网络接收到的网络报文。前序报文可以为网卡接收到的网络报文或保温报文。
写入子单元102在保温报文生成后,将保温报文从网卡的缓存区中写入至网卡的接收队列中,此时由于保温报文被写入,因此会重新进行计时,并在时间超过时间阈值时,若接收队列中还未被写入后序报文,则生成子单元101继续生成新的保温报文,此时写入子单元102会将新的保温报文写入接收队列中。
写入子单元102还可以在网卡接收到前序报文时,例如:接收到网络报文时,将前序报文写入网卡的接收队列,并在接收到后序报文时,将后序报文写入网卡的接收队列,在此不再赘述。
在一示例中,图2是本申请实施例提供的一种网卡的接收队列的示意图,当接收队列S1被写入网络报文1后,在预先设定的时间阈值内接收队列S2中未被写入后序报文,此时,生成子单元101生成保温报文1,写入子单元102将保温报文1写入接收队列S2。将保温报文1写入接收队列S2后在时间阈值内网络报文2被写入接收队列S3,并在网络报文2被写入接收队列S3后在时间阈值内网络报文3被写入接收队列S4,此时由于在时间阈值内,接收队列S4中被写入后序报文,因此生成子单元101不会生成保温报文。
在网络报文3被写入接收队列S4后,由于在时间阈值内,接收队列S5中未被写入后序报文,因此生成子单元101生成保温报文2,写入子单元102将保温报文2写入接收队列S5后,接收队列S6在被写入保温报文2之后的时间阈值内没有后序报文被写入,因此生成子单元101生成保温报文3,写入子单元102将保温报文3写入接收队列S6。
在本申请实施例中,通过生成子单元101可以在时间阈值内接收队列未被写入后序报文时,生成保温报文,通过写入子单元102可以将保温报文写入接收队列,由此可以使接收队列将保温报文发送至主机后,主机中的处理器访问协议栈的至少部分代码和数据,使协议栈的至少部分代码和数据驻留在缓存中,从而可以在接收到后序报文时主机中的处理器可以从缓存中加载协议栈的代码和数据,可以避免由于接收队列中长时间未被写入报文,导致主机长时间未接收到报文,导致协议栈的代码和数据被从缓存中交换至内存中,从而可以避免在接收到后序报文时处理器从内存中加载协议栈的代码和数据,降低了处理器处理稀疏报文时的时延,提高了处理器处理报文的效率,且无需人工设定缓存预取功能,降低了人工劳动强度,因此可以适用于大量稀疏报文的场景。
图3是本申请实施例提供的一种包括缓存子单元的加速单元的示意图,如图3所示,加速单元100还包括缓存子单元103,缓存子单元103可以缓存网卡通过网络接收到的多个网络报文,生成子单元101可以确定缓存子单元103缓存的多个网络报文的报文协议,并根据数量最多的报文协议对应的网络报文,生成保温报文。
加速单元100中还包括缓存子单元103,缓存子单元103可以缓存被写入接收队列中的多个接收到的网络报文,应理解,缓存子单元103缓存网络报文时按接收顺序缓存一固定数量的网络报文,例如:缓存子单元103可以缓存100个网络报文,此时若接收队列中被写入新的网络报文,则缓存子单元103将第一个缓存的网络报文移除,并缓存新的网络报文。
生成子单元101在生成保温报文时,会访问缓存子单元103中缓存的网络报文,并确定缓存的所有网络报文对应的报文协议,例如:互联网控制报文协议(internet controlmessage protocol,ICMP)的网络报文、传输控制协议(Transmission Control Protocol,TCP)的网络报文等等。确定完缓存子单元103中缓存的网络报文的协议后,生成子单元101根据协议数量最多的报文协议对应的网络报文生成保温报文,例如:缓存子单元103中缓存有100个网络报文。其中65个是ICMP协议的网络报文,35个是TCP协议的网络报文,由于ICMP协议的网络报文的数量大于TCP协议的网络报文的数量,此时会根据ICMP协议的网络报文生成保温报文。
应理解,缓存子单元103还可以暂时缓存生成子单元101生成的保温报文,在写入子单元102将保温报文写入接收队列后,在缓存子单元103中将保温报文删除,还行理解,在确定缓存子单元103中缓存的网络报文的报文协议时,仅会确定接收到的网络报文的报文协议,不会确定保温报文的报文协议,以避免保温报文影响报文协议的数量判断。
在本申请实施例中,加速单元100还包括缓存子单元103,生成子单元101根据缓存子单元103缓存的多个网络报文中报文协议数量最多的报文协议对应的网络报文生成保温报文,由此可以实现保温报文的生成,由于保温报文根据报文协议数量最多的报文协议对应的网络报文生成,因此保温报文可以模拟出现概率最高的网络报文,此时当保温报文被上传至主机后,主机的处理器通过协议栈处理保温报文时,会加载处理该报文协议的协议栈代码和数据,使处理该报文协议的代码和数据驻留在缓存中,提高了处理稀疏网络报文的效率。
在一种可能的实现方式中,生成子单元101可以将数量最多的报文协议对应的任一网络报文的报文头加入丢弃字符获得保温报文,以使处理器通过协议栈处理保温报文时,将保温报文丢弃。
生成子单元101在确定出数量最多的报文协议后,挑选任一该报文协议的网络报文,将该网络报文的报文头加入丢弃字符,获得保温报文,应理解,可以直接将挑选出的网络报文改造成保温报文,或将挑选出的网络报文复制后,将复制的网络报文进行改造获得保温报文,在此本申请实施例不作限定。
图4是本申请实施例提供的一种保温报文的应用场景的示意图,如图4所示,接收队列S1将保温报文4上传至主机200的协议栈202中,主机200的处理器201从主机200的缓存203中加载协议栈202的代码和数据,并通过协议栈202处理保温报文4,由于保温报文4的报文头包括丢弃字符,因此协议栈202处理保温报文4时将保温报文4丢弃。
在本申请实施例中,生成子单元101可以将协议数量最多的报文协议对应的任一网络报文的报文头添加丢弃字符获得保温报文,由于保温报文的报文头存在丢弃字符,因此保温报文被上传至主机200后可以使主机200的处理器201通过协议栈202处理该保温报文后,将该保温报文丢弃,由此可以实现既使至少部分协议栈202代码和数据驻留在缓存203中,也避免影响后序网络报文的处理,也可以避免处理保温报文导致处理稀疏报文时发生错误,因此实用性较高。
在一种可能的实现方式中,生成子单元101可以根据预先设定的保温报文的报文协议和报文内容,生成保温报文。
生成子单元101可以根据人工设定的报文协议和报文内容生成保温报文,应理解,根据人工设定的报文协议和报文内容生成的保温报文内也包括丢弃字符,由此可以在协议栈处理保温报文时将保温报文丢弃。
在本申请实施例中,生成子单元101根据人工设定的保温报文的报文协议和报文内容生成保温报文,由此可以使主机的处理器通过协议栈处理该保温报文时,会加载处理该报文协议的协议栈代码和数据,使处理该报文协议的代码和数据驻留在缓存中,将协议栈处理用户需求报文协议的保温报文对应的代码和数据驻留在缓存中,可以满足用户使用需求,提高处理稀疏报文的效率。
图5是本申请实施例提供的一种包括计时子单元的加速单元的示意图,如图5所示,加速单元100还包括计时子单元104,计时子单元104可以在接收队列中被写入后序报文或保温报文时重置计时,并在计时时间超过时间阈值时产生中断,以使生成子单元101生成保温报文。
计时子单元104可以计时,计时子单元104在接收队列中被写入前序报文时开始计时,例如:接收队列中被写入第一个网络报文时,计时子单元104开始计时。计时子单元104在接收队列中被写入新的报文时,重置计时,例如:接收队列中被写入后序报文或保温报文时重置计时。
计时子单元104在计时时间超过时间阈值时,产生中断,使生成子单元101生成保温报文,由于计时子单元104在接收到后序报文后会重置计时时间,因此当计时子单元104的计时时间超过时间阈值时证明该网络报文为稀疏网络报文,此时为了避免主机长时间未接收到网络报文导致协议栈的代码和数据被交换至内存中,计时子单元104会产生一个中断,生成子单元101会生成保温报文,当保温报文被写入子单元102写入接收队列后,由于接收队列写入保温报文,计时器重置计时,并开始新一轮计时,若新一轮计时超过时间阈值,仍没有后序报文写入,则会产生新的中断,使生成子单元101生成新的保温报文,以此循环。
需要说明的是,当网卡具有多个接收队列时,每个接收队列均对应设置有一个计时子单元104,每个接收队列单独计时,单独触发中断机制,在此不再赘述。
在本申请实施例中,加速单元100还包括计时子单元104,当计时子单元104的计时超过时间阈值时,证明该网络报文为稀疏报文,则触发中断使生成子单元101生成保温报文,由此实现了对接收队列被写入报文的时间间隔进行监控,实现了应对稀疏报文场景,由此可以避免主机中协议栈的代码和数据被交换至内存中,降低了处理器处理稀疏报文的时延。
在一种可能的实现方式中,写入子单元102可以将后序报文或保温报文写入接收队列后,向主机发送第一信号,以使主机中设置的软件计时器重置计时时间,生成子单元101可以获取第二信号,其中,第二信号由主机中的软件计时器在计时时间超过时间阈值时生成。
可以采用主机中设置的软件计时器进行计时,当写入子单元102将前序报文写入接收队列后,会向主机发送信号,使主机中设置的软件计时器开始计时,当写入子单元102将后序网络报文或保温报文写入接收队列后,会向主机发送第一信号,例如:中断信号,主机接收到第一信号后,将软件计时器的计时重置。
主机中设置的软件计时器在计时时间超过时间阈值时会向网卡发送第二信号,例如:中断信号,网卡中的生成子单元101接收到第二信号后,确定当前网络报文为稀疏网络报文,生成保温报文,写入子单元102在生成子单元101生成保温报文后将保温报文写入接收队列,并向主机发送第一信号,使主机中的软件计时器重置计时,开始新一轮计时,以此循环。
在本申请实施例中,主机中设置有软件计时器,写入子单元102将后序报文或保温报文写入接收队列后,会向主机发送第一信号,由此可以重置软件计时器的计时,生成子单元101可以在接收到软件计时器的计时超过时间阈值时,生成保温报文,实现了接收队列被写入报文的时间间隔进行监控,且由于通过主机中的软件计时器进行计时,因此无需设置硬件计时器,降低了加速单元100的成本。
本申请还提供一种网卡,该网卡包括上述任一实施例中的加速单元100。
图6是本申请实施例提供的一种主机的示意图,如图6所示,该主机200包括:处理器201和缓存203,主机200与上述实施例中的网卡相连接,处理器201可以通过加载缓存203中缓存的协议栈的代码和数据,处理网卡上传的报文。
与主机200相连接的网卡300中设置有上述任一实施例中的加速单元100,网卡300与主机200之间的交互、以及网卡300中的加速单元100与主机200和主机200中协议栈之间的交互具体可见上述任一实施例中的描述,在此不再赘述。
下面通过一具体实施例描述加速单元的具体应用。
图7是本申请实施例提供的一种报文处理加速方法的流程图,如图7所示,该报文处理加速方法包括如下步骤701至步骤702:
步骤701:在前序报文被写入网卡的接收队列之后的时间阈值内,接收队列未被写入后序报文时,生成保温报文。
后序报文为网卡通过网络接收到的网络报文,在预先设定的时间阈值内,接收队列未写入后序网络报文时,生成保温报文,在一示例中,保温报文可以由加速单元中的生成子单元生成,生成子单元可以根据网卡中缓存的多个网络报文,或人工设定的报文协议和报文内容生成保温报文。
步骤702、将保温报文写入接收队列,以使保温报文被上传至主机后,主机的处理器处理保温报文,使处理器处理报文所需的至少部分协议栈代码和数据驻留在缓存中。
将保温报文写入接收队列,此时接收队列中被写入保温报文,计时重置,保温报文被上传至主机后,主机中的处理器从主机的缓存中加载协议栈的代码和数据,通过协议栈处理保温报文,从而可以使协议栈的至少部分代码和数据,例如:关键代码和关键数据,驻留在缓存中不会被交换至内存中。
在本申请实施例中,在时间阈值内接收队列未被写入后序报文时,生成保温报文,并将保温报文写入接收队列,由此可以使接收队列将保温报文发送至主机后,主机中的处理器访问协议栈的至少部分代码和数据,使协议栈的至少部分代码和数据驻留在缓存中,从而可以在接收到后序报文时主机中的处理器可以从缓存中加载协议栈的代码和数据,可以避免由于接收队列中长时间未被写入报文,导致主机长时间未接收到报文,导致协议栈的代码和数据被从缓存中交换至内存中,从而可以避免在接收到后序报文时处理器从内存中加载协议栈的代码和数据,降低了处理器处理稀疏报文时的时延,提高了处理器处理报文的效率,且无需人工设定缓存预取功能,降低了人工劳动强度,因此可以适用于大量稀疏报文的场景。
在一种可能的实现方式中,在前序报文被写入网卡的接收队列之后的时间阈值内,接收队列未被写入后序报文时,生成保温报文,可以在前序报文被写入网卡的接收队列之后的时间阈值内,接收队列未被写入后序报文时,向主机中的处理器发送第三信号,以使主机中的处理器根据主机中缓存的多个网络报文生成保温报文,接收处理器生成的保温报文。
在预先设定的时间阈值内,接收队列未被写入后序网络报文时,可以向主机发送第三信号,例如:中断信号,主机在接收到第三信号后,主机中的处理器可以根据主机设置的缓存中缓存的多个网络报文或人工设定的报文协议和报文内容生成保温报文。
在一示例中,处理器可以根据缓存中缓存的网卡的接收队列上传的多个网络报文中出现的协议数量最多的网络报文生成保温报文。在另一示例中,主机中的处理器可以根据缓存中缓存的人工设定的报文协议和报文内容生成保温报文。
在本申请实施例中,在预先设定的时间阈值内,接收队列未被写入后序网络报文时向主机发送第三信号,由此可以实现通过主机的处理器生成保温报文,由于通过主机的处理器生成保温报文,因此可以降低网卡的算力要求,且可以使网卡可以将算力分配至其他事项,且由于主机处理器的算力高于网卡的算力,因此提高了生成保温报文的效率。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,各实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和系统实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。

Claims (10)

1.一种加速单元,所述加速单元设置于与主机连接的网卡,其特征在于,包括:
生成子单元,用于在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,生成保温报文,其中,所述后序报文为所述网卡通过网络接收到的网络报文;
写入子单元,用于将所述保温报文写入所述接收队列,以使所述保温报文被上传至所述主机后,所述主机的处理器处理所述保温报文,使所述处理器处理报文所需的至少部分协议栈代码和数据驻留在缓存中。
2.根据权利要求1所述的加速单元,其特征在于,还包括缓存子单元;
所述缓存子单元,用于缓存所述网卡通过网络接收到的多个网络报文;
所述生成子单元,用于确定所述缓存子单元缓存的所述多个网络报文的报文协议,并根据数量最多的报文协议对应的网络报文,生成所述保温报文。
3.根据权利要求2所述的加速单元,其特征在于,
所述生成子单元,用于将数量最多的报文协议对应的任一网络报文的报文头加入丢弃字符获得所述保温报文,以使所述处理器通过所述协议栈处理所述保温报文时,将所述保温报文丢弃。
4.根据权利要求1所述的加速单元,其特征在于,
所述生成子单元,用于根据预先设定的所述保温报文的报文协议和报文内容,生成所述保温报文。
5.根据权利要求1所述的加速单元,其特征在于,还包括计时子单元;
所述计时子单元,用于在接收队列中被写入所述后序报文或所述保温报文时重置计时,并在计时时间超过所述时间阈值时产生中断,以使所述生成子单元生成所述保温报文。
6.根据权利要求1所述的加速单元,其特征在于,
所述写入子单元,用于将所述后序报文或所述保温报文写入所述接收队列后,向所述主机发送第一信号,以使所述主机中设置的软件计时器重置计时时间;
所述生成子单元,用于接收第二信号,其中,所述第二信号由所述主机中的所述软件计时器在计时时间超过所述时间阈值时生成。
7.一种网卡,其特征在于,包括如权利要求1-6任一所述的加速单元。
8.一种主机,其特征在于,包括:处理器和缓存;
所述主机与如权利要求7所述的网卡相连接;
所述处理器,用于通过加载所述缓存中缓存的协议栈的代码和数据,以处理所述网卡上传的报文。
9.一种报文处理加速方法,其特征在于,包括:
在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,生成保温报文,其中,所述后序报文为所述网卡通过网络接收到的网络报文;
将所述保温报文写入所述接收队列,以使所述保温报文被上传至主机后,所述主机的处理器处理所述保温报文,使所述处理器处理报文所需的至少部分协议栈代码和数据驻留在缓存中。
10.根据权利要求9所述的方法,其特征在于,所述在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,生成保温报文,包括:
在前序报文被写入网卡的接收队列之后的时间阈值内,所述接收队列未被写入后序报文时,向所述主机中的处理器发送第三信号,以使所述主机中的处理器根据所述主机中缓存的多个网络报文生成所述保温报文;
接收所述处理器生成的所述保温报文。
CN202311352538.4A 2023-10-18 2023-10-18 加速单元、网卡、主机和报文处理加速方法 Active CN117421112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311352538.4A CN117421112B (zh) 2023-10-18 2023-10-18 加速单元、网卡、主机和报文处理加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311352538.4A CN117421112B (zh) 2023-10-18 2023-10-18 加速单元、网卡、主机和报文处理加速方法

Publications (2)

Publication Number Publication Date
CN117421112A true CN117421112A (zh) 2024-01-19
CN117421112B CN117421112B (zh) 2024-08-06

Family

ID=89529435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311352538.4A Active CN117421112B (zh) 2023-10-18 2023-10-18 加速单元、网卡、主机和报文处理加速方法

Country Status (1)

Country Link
CN (1) CN117421112B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU8670182A (en) * 1981-08-03 1983-02-10 International Business Machines Corp. Hierarchical store
KR19990013792A (ko) * 1997-07-11 1999-02-25 제프리 엘. 포맨 바이트 범위 API 로킹(byte range ATI locking)을 갖춘 병렬 파일 시스템 및 방법
US20030074492A1 (en) * 2001-05-29 2003-04-17 Cochran Robert A. Method and system for efficient format, read, write, and initial copy processing involving sparse logical units
US20030131098A1 (en) * 2001-07-17 2003-07-10 Huntington Stephen G Network data retrieval and filter systems and methods
CN101030943A (zh) * 2007-04-03 2007-09-05 华为技术有限公司 一种发送报文的方法和路由器
US20100050084A1 (en) * 2008-08-20 2010-02-25 Stephen Knapp Methods and systems for collection, tracking, and display of near real time multicast data
US20100057938A1 (en) * 2008-08-26 2010-03-04 John Osborne Method for Sparse Object Streaming in Mobile Devices
US20170195914A1 (en) * 2015-12-30 2017-07-06 The Chinese University Of Hong Kong Hardware Acceleration for Batched Sparse Codes
CN107547505A (zh) * 2017-06-21 2018-01-05 新华三技术有限公司 一种报文处理方法及装置
CN111240743A (zh) * 2020-01-03 2020-06-05 上海兆芯集成电路有限公司 人工智能集成电路
CN113973091A (zh) * 2020-07-23 2022-01-25 华为技术有限公司 一种报文处理方法、网络设备以及相关设备
CN114285528A (zh) * 2020-09-28 2022-04-05 华为技术有限公司 传输报文的方法及通信装置
CN115794366A (zh) * 2021-09-10 2023-03-14 华为技术有限公司 一种内存预取方法及装置
CN115828044A (zh) * 2023-02-17 2023-03-21 绍兴埃瓦科技有限公司 基于神经网络双重稀疏性矩阵乘法运算电路、方法和装置
CN116233018A (zh) * 2022-12-29 2023-06-06 天翼云科技有限公司 报文处理方法、装置、电子设备及存储介质

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU8670182A (en) * 1981-08-03 1983-02-10 International Business Machines Corp. Hierarchical store
KR19990013792A (ko) * 1997-07-11 1999-02-25 제프리 엘. 포맨 바이트 범위 API 로킹(byte range ATI locking)을 갖춘 병렬 파일 시스템 및 방법
US20030074492A1 (en) * 2001-05-29 2003-04-17 Cochran Robert A. Method and system for efficient format, read, write, and initial copy processing involving sparse logical units
US20030131098A1 (en) * 2001-07-17 2003-07-10 Huntington Stephen G Network data retrieval and filter systems and methods
CN101030943A (zh) * 2007-04-03 2007-09-05 华为技术有限公司 一种发送报文的方法和路由器
US20100050084A1 (en) * 2008-08-20 2010-02-25 Stephen Knapp Methods and systems for collection, tracking, and display of near real time multicast data
US20100057938A1 (en) * 2008-08-26 2010-03-04 John Osborne Method for Sparse Object Streaming in Mobile Devices
US20170195914A1 (en) * 2015-12-30 2017-07-06 The Chinese University Of Hong Kong Hardware Acceleration for Batched Sparse Codes
CN107547505A (zh) * 2017-06-21 2018-01-05 新华三技术有限公司 一种报文处理方法及装置
CN111240743A (zh) * 2020-01-03 2020-06-05 上海兆芯集成电路有限公司 人工智能集成电路
CN113973091A (zh) * 2020-07-23 2022-01-25 华为技术有限公司 一种报文处理方法、网络设备以及相关设备
CN114285528A (zh) * 2020-09-28 2022-04-05 华为技术有限公司 传输报文的方法及通信装置
CN115794366A (zh) * 2021-09-10 2023-03-14 华为技术有限公司 一种内存预取方法及装置
CN116233018A (zh) * 2022-12-29 2023-06-06 天翼云科技有限公司 报文处理方法、装置、电子设备及存储介质
CN115828044A (zh) * 2023-02-17 2023-03-21 绍兴埃瓦科技有限公司 基于神经网络双重稀疏性矩阵乘法运算电路、方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
S. SUBRAMANIAM AND D. L. EAGER: "Affinity scheduling of unbalanced workloads", 《UPERCOMPUTING \'94:PROCEEDINGS OF THE 1994 ACM/IEEE CONFERENCE ON SUPERCOMPUTING》, 6 August 2002 (2002-08-06) *
黎洁: "容迟移动传感器网络中数据传输与数据管理机制的研究", 《中国博士学位论文电子期刊网》, 15 September 2011 (2011-09-15) *

Also Published As

Publication number Publication date
CN117421112B (zh) 2024-08-06

Similar Documents

Publication Publication Date Title
US11934340B2 (en) Multi-path RDMA transmission
US7957392B2 (en) Method and apparatus for high-performance bonding resequencing
US20220303217A1 (en) Data Forwarding Method, Data Buffering Method, Apparatus, and Related Device
Shi et al. Ndn-dpdk: Ndn forwarding at 100 gbps on commodity hardware
US6487627B1 (en) Method and apparatus to manage digital bus traffic
CN113076280B (zh) 一种数据传输方法及相关设备
US8990422B1 (en) TCP segmentation offload (TSO) using a hybrid approach of manipulating memory pointers and actual packet data
KR100816938B1 (ko) 네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을보호하기 위한 방법 및 시스템
CN107277062B (zh) 数据包的并行处理方法及装置
CN117421112B (zh) 加速单元、网卡、主机和报文处理加速方法
WO2024156236A1 (zh) 慢速攻击识别方法、装置、电子设备及存储介质
US9906468B2 (en) Packet traffic control in a network processor
CN111669431B (zh) 消息传输方法、装置、计算机设备和存储介质
US20030223447A1 (en) Method and system to synchronize a multi-level memory
US8842696B1 (en) Guaranteed rate port scheduler
US8233478B2 (en) Method and an apparatus for data storage and communications
CN109327402B (zh) 拥塞管理方法及装置
CN117880222A (zh) 一种toe的加速系统及方法
CN115080258A (zh) 数据传输系统及相关设备
CN116846582A (zh) 基于sip协议的防dos攻击方法、装置及存储介质
JP2000316024A (ja) パケットバッファ管理装置およびパケットバッファ管理方法
CN117135122A (zh) 报文拥塞处理方法和计算机设备
CN118631738A (zh) 网络拥塞控制方法及网络设备
CN114884909A (zh) Dma数据传输方法、dma数据传输装置及数据传输系统
CN115442320A (zh) 一种rdma多队列报文分片重组的实现方法、装置及存储介质

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