CN117880222A - 一种toe的加速系统及方法 - Google Patents

一种toe的加速系统及方法 Download PDF

Info

Publication number
CN117880222A
CN117880222A CN202311804802.3A CN202311804802A CN117880222A CN 117880222 A CN117880222 A CN 117880222A CN 202311804802 A CN202311804802 A CN 202311804802A CN 117880222 A CN117880222 A CN 117880222A
Authority
CN
China
Prior art keywords
data
qpc
message
target
data corresponding
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
Application number
CN202311804802.3A
Other languages
English (en)
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.)
Chengdu Beizhong Network Core Technology Co ltd
Original Assignee
Chengdu Beizhong Network Core 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 Chengdu Beizhong Network Core Technology Co ltd filed Critical Chengdu Beizhong Network Core Technology Co ltd
Priority to CN202311804802.3A priority Critical patent/CN117880222A/zh
Publication of CN117880222A publication Critical patent/CN117880222A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种TOE的加速系统及方法,涉及硬件设计技术领域,通过在网络芯片中设置cache模块,可以将大部分连接的QPC从主机内存缓存到芯片内部,就会极大的提高对TCP报文的处理速度,减少网络芯片与主机之间的通信占用带宽;并且即使QPC并没有缓存到芯片内部,也能够从主机侧获取QPC,不影响原有的工作方式,在减少带宽占用的同时,保证了正常的报文处理。

Description

一种TOE的加速系统及方法
技术领域
本发明涉及硬件设计技术领域,具体涉及一种TOE的加速系统及方法。
背景技术
传统以太网环境中,TCP(Transmission Control Protocol,传输控制协议)协议处理都是网卡将TCP报文推送到上位机后,在主机CPU(Central Processing Unit/Processor,中央处理器)中进行实现。当连接数过多,数据吞吐量过大的情况下,就会占用大量的CPU资源从而降低系统性能。TOE(即TCP卸载引擎)的目的是在网卡上集成专用电路来替代CPU中对TCP数据处理,从而减轻CPU对TCP的处理负荷。
Cache(高速缓冲存储器)常用CPU与主内存之间的一块SRAM(Static Random-Access Memory,静态随机存取存储器),用于缓存主内存的数据,但因为容量比主内存小的多,所以不可能将主内存的所有数据都缓存。如果将一段时间内经常访问的数据,或者访问数据附近的数据缓存到SRAM中,那么就能提高CPU的数据的访问速度。
如图5所示,应用TOE处理单个报文时,当前连接的QPC(queue pair context,队列上下文)是存储在主机内存中。当芯片的TOE处理TCP报文时,需要从主机侧内存中读取QPC,然后TOE根据读到的QPC处理当前接受到的报文,处理完成后将报文内容发送到主机。
每个报文处理都需要从主机侧读取QPC,芯片与主机的交互会变的很频繁,芯片占用主机的通信带宽会变得很大。如果将支持最大连接数目的QPC全部下载到芯片里面,就需要在芯片内设计一块很大内存,极其占用芯片资源。
发明内容
本发明的目的在于提供一种TOE的加速系统及方法,解决了现有技术中存在的技术问题。
本发明通过下述技术方案实现:
一方面,本发明提供一种TOE的加速系统,包括:设置于网络芯片中的TOE模块、设置于网络芯片中的cache模块以及用于处理数据的主机;
所述cache模块,用于缓存主机中的部分或者全部QPC数据,并将QPC数据对应的FP数据和/或QPN数据作为索引存储;FP数据用于表征报文的指纹信息;
所述cache模块,还用于缓存主机中QPC数据对应的QPC存储地址;
所述TOE模块,用于从cache模块获取与收发报文对应的目标QPC数据或通过cache模块中的QPC存储地址从主机中获取与收发报文对应的目标QPC数据,并根据目标QPC数据对收发报文进行处理,并将收发报文传出;
所述主机,用于响应第一报文以及产生第二报文,且允许cache模块请求主机内部存储的QPC数据;其中,第一报文用于表征接收的报文,第二报文用于表征发送的报文。
另一方面,本发明提供一种TOE的加速方法,包括:报文发送加速过程以及报文接收加速过程;
所述报文接收加速过程,包括:
通过TOE模块接第一报文,并获取第一报文对应的FP数据;
通过TOE模块以第一报文对应的FP数据,在cache模块中进行QPC数据的匹配,以获取QPC数据的第一命中结果;所述第一命中结果包括命中或未命中;
根据所述QPC数据的第一命中结果,通过TOE模块从cache模块或主机获取第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,实现TOE加速;
所述报文发送加速过程,包括:
通过主机发送第二报文,同时携带第二报文对应的FP数据以及QPN数据;
通过TOE模块以第二报文对应的FP数据以及QPN数据为基础,在cache模块中进行QPC数据的匹配,以获取QPC数据的第二命中结果;所述第二命中结果包括命中或未命中;
根据所述QPC数据的第二命中结果,通过TOE模块从cache模块或主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,实现TOE加速。
在一种可能的实施方式中,通过TOE模块接第一报文,并获取第一报文对应的FP数据,包括:
通过TOE模块接第一报文,并解析第一报文对应的五元组;以五元组为基础,通过哈希算法获取第一报文对应的FP数据。
在一种可能的实施方式中,通过TOE模块以第一报文对应的FP数据,在cache模块中进行QPC数据的匹配,以获取QPC数据的第一命中结果,包括:
将第一报文对应的FP数据的低n1比特作为cache模块的第一目标index值;n1表示cache模块中data cache单元的总index数目关于2的对数,data cache单元用于表征cache模块中存储QPC数据的存储单元;
对比第一目标index值的所有tag,并判断是否存在FP与第一报文对应的FP数据相同的tag,若是,则读取该tag的QPC数据,否则确定QPC数据的第一命中结果为未命中;
判断该QPC数据中的五元组是否与第一报文对应的五元组是否一致,若是,则第一命中结果为命中,否则确定QPC数据的第一命中结果为未命中。
在一种可能的实施方式中,根据所述QPC数据的第一命中结果,通过TOE模块从cache模块或主机获取第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
当所述QPC数据的第一命中结果为命中时,根据第一报文对应的FP数据和五元组,通过TOE模块从cache模块匹配第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理;
当所述QPC数据的第一命中结果为未命中,根据第一报文对应的五元组,获取第一报文对应的QPN数据,并根据第一报文对应的FP和QPN数据,通过cache模块从主机获取第一报文对应的第一目标QPC数据,同时将第一目标QPC数据缓存在cache模块中,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。6.根据权利要求5所述的TOE的加速方法,其特征在于,根据第一报文对应的FP数据和五元组,通过TOE模块从cache模块匹配第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
通过TOE模块从cache模块查找FP数据与第一报文对应的FP数据的QPC数据,并再查找得到的QPC数据中匹配五元组与第一报文对应的五元组相同的QPC数据,得到第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
在一种可能的实施方式中,根据第一报文对应的五元组,获取第一报文对应的QPN数据,并根据第一报文对应的FP和QPN数据,通过cache模块从主机获取第一报文对应的第一目标QPC数据,同时将QPC数据缓存在cache模块,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
根据第一报文对应的五元组,查表获取第一报文对应的QPN数据;
根据第一报文对应的QPN数据的低n2比特作为addr cache单元的第三目标index值,对比第三目标index值的所有tag,若存在相同的QPN数据,则确定第三命中结果为命中;若不存在相同的QPN数据,则确定第三命中结果为未命中;所述addr cache单元用于表征cache模块缓存QPC存储地址的存储单元;n2表示cache模块中addr cache总index数目关于2的对数;
当第三命中结果为未命中时,将第一报文对应的QPN数据的高n4比特作为addrSRAM单元的地址,读取存放在主机侧第一报文对应的QPN数据所对应的QPC数据在主机侧的地址集合的连续空间的基地址,再将第一报文对应的QPN数据低n3比特乘以地址位宽字节数之后,并加上当前读出的基地址,得到第一报文对应的第一目标QPC数据地址的地址;所述addr SRAM单元用于表征存储QPC存储地址对应的基地址的存储单元;n4表示支持的QPN总数的分组数目关于2的对数,n3表示每组的QPN数目关于2的对数;
根据第一目标QPC数据地址的地址,向主机侧请求读取第一目标QPC数据地址,并根据第一目标QPC数据地址再向主机侧请求读取第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理;
当第三命中结果为命中时,则通过TOE模块从addr cache单元中确定第一报文对应的QPN数据对应的第一目标QPC数据地址,向主机侧请求读取第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
在一种可能的实施方式中,通过TOE模块以第二报文对应的FP数据以及QPN数据为基础,在cache模块中进行QPC数据的匹配,以获取QPC数据的第二命中结果,包括:
将第二报文对应的FP数据的低n1比特作为cache模块的第二目标index值;n1表示cache模块中data cache单元的总index数目关于2的对数;
对比第二目标index值的所有tag,并判断是否存在QPN数据与第二报文对应的QPN数据相同的tag,若是,则确定QPC数据的第二命中结果为命中,否则确定QPC数据的第二命中结果为未命中。
在一种可能的实施方式中,根据所述QPC数据的第二命中结果,通过TOE模块从cache模块或主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,包括:
当所述QPC数据的第二命中结果为命中时,根据第二报文对应的FP数据和QPN数据,通过TOE模块从cache模块获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理;
当所述QPC数据的第二命中结果为未命中,根据第二报文对应的QPN数据,通过TOE模块从主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理。
在一种可能的实施方式中,当所述QPC数据的第二命中结果为未命中,根据第二报文对应的QPN数据,通过TOE模块从主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,包括:
根据第二报文对应的QPN数据的低n比特作为addr cache的第四目标index值,对比第四目标index值的所有tag,若存在相同的QPN数据,则确定第四命中结果为命中;若不存在相同的QPN数据,则确定第四命中结果为未命中;
当第四命中结果为未命中时,将第二报文对应的QPN数据的高n4比特作为addrSRAM的地址,读取存放在主机侧第一报文对应的QPN数据所对应的QPC数据在主机侧的地址集合的连续空间的基地址,再将第二报文对应的QPN数据低n3比特乘以地址位宽字节数之后,并加上当前读出的基地址,得到第二报文对应的第二目标QPC数据地址的地址;
根据第二目标QPC数据地址的地址,向主机侧请求读取第二目标QPC数据地址;根据第二目标QPC数据地址,通过TOE模块向主机侧请求读取第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理;
当第四命中结果为命中时,则通过TOE模块确定第二报文对应的QPN数据对应的第二目标QPC数据地址,向主机侧请求读取第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理。
本发明提供的一种TOE的加速系统及方法,通过在网络芯片中设置cache模块,可以将大部分连接的QPC从主机内存缓存到芯片内部,就会极大的提高对TCP报文的处理速度,减少网络芯片与主机之间的通信占用带宽;并且即使QPC并没有缓存到芯片内部,也能够从主机侧获取QPC,不影响原有的工作方式,在减少带宽占用的同时,保证了正常的报文处理。
附图说明
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1为本发明实施例提供的一种TOE的加速系统的结构示意图。
图2为本发明实施例提供的cache模块的结构示意图。
图3为本发明实施例2提供的加速系统的工作流程图。
图4为本发明实施例提供的一种TOE的加速方法的流程图。
图5为本发明实施例提供的现有技术示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
如图1所示,本发明实施例提供一种TOE的加速系统,包括:设置于网络芯片中的TOE模块、设置于网络芯片中的cache模块以及用于处理数据的主机。
所述cache模块,用于缓存主机中的部分或者全部QPC数据,并将QPC数据对应的FP数据和/或QPN数据作为索引存储。FP数据用于表征报文的指纹信息。
所述cache模块,还用于缓存主机中QPC数据对应的QPC存储地址。
所述TOE模块,用于从cache模块获取与收发报文对应的目标QPC数据或通过cache模块中的QPC存储地址从主机中获取与收发报文对应的目标QPC数据,并根据目标QPC数据对收发报文进行处理,并将收发报文传出。
所述主机,用于响应第一报文以及产生第二报文,且允许cache模块请求主机内部存储的QPC数据。其中,第一报文用于表征接收的报文,第二报文用于表征发送的报文。
网络安全处理芯片(以下简称:网络芯片)在工作时,TCP连接的活跃数通常维持在几百条,将大部分连接的QPC从主机内存缓存到芯片内部,就会极大的提高对TCP报文的处理速度,减少网络芯片与主机之间的通信占用带宽。
实施例2
本实施例是在实施例1的基础上作出的进一步示例,具体原理如下。
如图1所示,本发明实施例提供一种TOE的加速系统,处理当前报文时,直接访问cache中的QPC数据,当cache中没有该QPC时,将数据从主机缓存到cache模块。
图2是本发明实施例中cache模块的结构图。其中addr SRAM存放的数据为主机侧存放QPN对应QPC数据的地址的连续空间的基地址,需要芯片初始过程中,主机将这个连续空间的基地址写入addr SRAM;addr cache主要缓存的数据是QPN对应QPC数据的地址,数据来源于主机,当TOE模块来首次访问某QPN的QPC时,必然未命中,此时通过QPN数据和addrSRAM中的数据得到QPN对应QPC数据的地址的地址,再向主机侧读取该地址,得到该QPN对应QPC数据的地址,同时将该数据缓存入addr cache;data cache主要缓存的数据为QPC数据,当TOE模块来首次访问某QPN的QPC时,必然未命中,此时通过QPN等数据访问主机侧得到QPC数据,同时将QPC数据缓存如data cache;调度模块的作用为将TOE模块的请求按照FP的不同调度到不同的请求队列中,相同请求队列中的请求必须按照先后顺序执行,不同请求队列中的请求可以同时进行。访问请求按照FP相同进行排队处理,取FP的低n比特作为datacache的索引,然后将该请求信息与该索引中的所有tag里的信息进行对比,如果存在对比一致的tag,则表示当前访问的QPC被缓存在cache中,存在位置位于与tag对应的data。如果不存在则表示当前访问的QPC未被缓存在cache中,需要查询addr cache,命中时根据命中地址向主机侧请求数据,未命中时根据QPN高m比特在addr SRAM中获取主机的基地址,再根据QPN低n比特结合主机基地址算出当前存放QPC地址的地址。
图3是本发明技术方案的流程框图。不同方向的TCP报文处理流程如下:
TX方向:
(1)主机侧通知芯片,将要发送报文,同时携带该报文的FP。
(2)芯片收到报文内容后,携带着FP和QPN访问当前报文的QPC。根据FP低n比特作为data cache的index,对比该index的所有tag,如果有相同QPN的tag则表示命中,跳转到步骤(7),反之则未命中,跳转到步骤(3)。
(3)根据QPN的低n比特作为addr cache的index,对比该index的所有tag,如果有相同的QPN则命中,跳转到步骤(6),反之则未命中,跳转到步骤(4)。
(4)根据QPN高m比特作为addr SRAM的地址,读取该QPN的QPC在主机侧的基地址,再将QPN低n比特乘以地址位宽字节数,加上当前读出的基地址,得到当前QPC地址的地址。
(5)根据得到的QPC地址的地址,向主机侧请求读取QPC的地址。
(6)根据QPC的地址,向主机侧请求读取QPC的数据。
(7)如果此次访问为读访问,则将读到的内容返回给TOE。如果为写访问,则将写数据写入data cache。
RX方向:
(1)芯片接收到报文,根据五元组通过哈希算法算出FP。
(2)芯片收到报文内容后,携带着五元组和FP向cache访问当前报文的QPC。根据FP低n比特作为data cache的index,对比该index的所有tag,如果有相同FP的tag,则跳转到步骤(3),反之则未命中,跳转到步骤(6)
(3)读取有相同FP的tag对应的data的前48B,也就是五元组,将读取到的五元组与此次访问请求中的五元组做对比,如果相同则表示命中,该QPN的QPC已被缓存在cache中。
(4)如果此次访问为读访问,则将读到的内容返回给TOE。如果为写访问,则将写数据写入QPC cache。
(5)根据五元组查表得到QPN,剩余步骤与TX方向一样。
当缓存有QPC的cache_line被淘汰时,就会将cache_line里的脏数据写回主机,保证主机和cache的一致性。
实施例3
如图4所示,本发明提供一种基于权利要求1所述加速系统的TOE的加速方法,包括:报文发送加速过程以及报文接收加速过程;
所述报文接收加速过程,包括:
S101、通过TOE模块接第一报文,并获取第一报文对应的FP数据。
S102、通过TOE模块以第一报文对应的FP数据,在cache模块中进行QPC数据的匹配,以获取QPC数据的第一命中结果。所述第一命中结果包括命中或未命中。
S103、根据所述QPC数据的第一命中结果,通过TOE模块从cache模块或主机获取第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,实现TOE加速。
当某个TCP连接建立之后,这条连接的编号就是QPN,关于这条连接的上下文描述就是QPC,建立连接时QPC存放在主机侧。当首次接收或者发送该连接的报文时,就可以将主机侧的QPC数据缓存进入cache模块,该连接的首次之后的报文访问时,就可以从cache模块读取QPC。
所述报文发送加速过程,包括:
S201、通过主机发送第二报文,同时携带第二报文对应的FP数据以及QPN数据。
S202、通过TOE模块以第二报文对应的FP数据以及QPN数据为基础,在cache模块中进行QPC数据的匹配,以获取QPC数据的第二命中结果。所述第二命中结果包括命中或未命中。
S203、根据所述QPC数据的第二命中结果,通过TOE模块从cache模块或主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,实现TOE加速。
在一种可能的实施方式中,通过TOE模块接第一报文,并获取第一报文对应的FP数据,包括:
通过TOE模块接第一报文,并解析第一报文对应的五元组。以五元组为基础,通过哈希算法获取第一报文对应的FP数据。
在一种可能的实施方式中,通过TOE模块以第一报文对应的FP数据,在cache模块中进行QPC数据的匹配,以获取QPC数据的第一命中结果,包括:
将第一报文对应的FP数据的低n1比特作为cache模块的第一目标index值。n1表示cache模块中data cache单元的总index数目关于2的对数,data cache单元用于表征cache模块中存储QPC数据的存储单元。
由五元组通过哈希得到的FP数据为20比特,cache模块的index总数为2的幂次方,并且由于cache容量大小限制,这个幂通常是小于20的。
对比第一目标index值的所有tag,并判断是否存在FP与第一报文对应的FP数据相同的tag,若是,则读取该tag的QPC数据,否则确定QPC数据的第一命中结果为未命中。
判断该QPC数据中的五元组是否与第一报文对应的五元组是否一致,若是,则第一命中结果为命中,否则确定QPC数据的第一命中结果为未命中。
因为第一报文为接收方向报文,在查cache的阶段是不知道其QPN数据的。由于FP数据是五元组通过哈希算法得出,如果出现哈希碰撞,就会出现不同五元组算出相同的FP的情况。所以需要先匹配FP数据,再匹配五元组数据,两者都匹配上则算命中。
在一种可能的实施方式中,根据所述QPC数据的第一命中结果,通过TOE模块从cache模块或主机获取第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
当所述QPC数据的第一命中结果为命中时,根据第一报文对应的FP数据和五元组,通过TOE模块从cache模块匹配第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
当所述QPC数据的第一命中结果为未命中,根据第一报文对应的五元组,获取第一报文对应的QPN数据,并根据第一报文对应的FP和QPN数据,通过cache模块从主机获取第一报文对应的第一目标QPC数据,同时将第一目标QPC数据缓存在cache模块中,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
在一种可能的实施方式中,根据第一报文对应的FP数据和五元组,通过TOE模块从cache模块匹配第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
通过TOE模块从cache模块查找FP数据与第一报文对应的FP数据的QPC数据,并再查找得到的QPC数据中匹配五元组与第一报文对应的五元组相同的QPC数据,得到第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
由于FP数据是五元组通过哈希算法得出,如果出现哈希碰撞,就会出现不同五元组算出相同的FP的情况。所以需要先匹配FP数据,再匹配五元组数据,两者都匹配上则算命中。
在一种可能的实施方式中,根据第一报文对应的五元组,获取第一报文对应的QPN数据,并根据第一报文对应的FP和QPN数据,通过cache模块从主机获取第一报文对应的第一目标QPC数据,同时将QPC数据缓存在cache模块,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
根据第一报文对应的五元组,查表获取第一报文对应的QPN数据。
根据第一报文对应的QPN数据的低n2比特作为addr cache单元的第三目标index值(比如addr cache的总index数为1024,则取QPN的低10比特作为第三目标index),对比第三目标index值的所有tag,若存在相同的QPN数据,则确定第三命中结果为命中。若不存在相同的QPN数据,则确定第三命中结果为未命中。所述addr cache单元用于表征cache模块缓存QPC存储地址的存储单元。n2表示cache模块中addr cache总index数目关于2的对数。
当第三命中结果为未命中时,将第一报文对应的QPN数据的高n4比特作为addrSRAM单元的地址,读取存放在主机侧第一报文对应的QPN数据所对应的QPC数据在主机侧的地址集合的连续空间的基地址,再将第一报文对应的QPN数据低n3比特乘以地址位宽字节数之后,并加上当前读出的基地址,得到第一报文对应的第一目标QPC数据地址的地址。所述addr SRAM单元用于表征存储QPC存储地址对应的基地址的存储单元。n4表示支持的QPN总数的分组数目关于2的对数,n3表示每组的QPN数目关于2的对数。
QPC数据的地址是存储在主机侧的,addr cache只是缓存了一部分QPC地址。当第三命中结果为未命中时,说明addr cache中未缓存该QPN的QPC数据地址。此时需要根据addr SRAM存储QPC地址的地址去主机侧请求读取该QPN的QPC数据地址,并将其缓存到addrcache中。
假设支持的QPN数目为1M(2的20次方),QPN的位宽为20比特,我们将1M的QPN分为1K(2的10次方)个组,则每个组又有1K个QPN,那么每组QPN对应的QPC数据的地址是存放在一片连续的空间,当知道这片连续空间的基地址就算出这个QPN组内任意存放QPN对应QPC数据的地址的地址。这里的addr SRAM中存放的数据就是存放每个QPN组对应QPC数据的地址的连续空间的基地址。
根据第一目标QPC数据地址的地址,向主机侧请求读取第一目标QPC数据地址,并根据第一目标QPC数据地址再向主机侧请求读取第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
当第三命中结果为命中时,则通过TOE模块从addr cache单元中确定第一报文对应的QPN数据对应的第一目标QPC数据地址,并根据第一目标QPC数据地址向主机侧请求读取第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
在一种可能的实施方式中,通过TOE模块以第二报文对应的FP数据以及QPN数据为基础,在cache模块中进行QPC数据的匹配,以获取QPC数据的第二命中结果,包括:
将第二报文对应的FP数据的低n1比特作为cache模块的第二目标index值。n1表示cache模块中data cache单元的总index数目关于2的对数。
对比第二目标index值的所有tag,并判断是否存在QPN与第二报文对应的QPN数据相同的tag,若是,则确定QPC数据的第二命中结果为命中,否则确定QPC数据的第二命中结果为未命中。
在一种可能的实施方式中,根据所述QPC数据的第二命中结果,通过TOE模块从cache模块或主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,包括:
当所述QPC数据的第二命中结果为命中时,根据第二报文对应的FP数据和QPN数据,通过TOE模块从cache模块获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理。
当所述QPC数据的第二命中结果为未命中,根据第二报文对应的QPN数据,通过TOE模块从主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理。
第二报文携带有FP和QPN数据,第一报文只携带FP数据,所以用FP数据的低n比特作为cache的index。第二报文可以直接用自身携带的QPN对比FP数据对应index中所有tag的QPN,若存在相同QPN,则算命中。
在一种可能的实施方式中,当所述QPC数据的第二命中结果为未命中,根据第二报文对应的QPN数据,通过TOE模块从主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,包括:
根据第二报文对应的QPN数据的低n比特作为addr cache的第四目标index值,对比第四目标index值的所有tag,若存在相同的QPN数据,则确定第四命中结果为命中。若不存在相同的QPN数据,则确定第四命中结果为未命中。
当第四命中结果为未命中时,将第二报文对应的QPN数据的高n4比特作为addrSRAM的地址,读取存放在主机侧第一报文对应的QPN数据所对应的QPC数据在主机侧的地址集合的连续空间的基地址,再将第二报文对应的QPN数据低n3比特乘以地址位宽字节数之后,并加上当前读出的基地址,得到第二报文对应的第二目标QPC数据地址的地址。
根据第二目标QPC数据地址的地址,向主机侧请求读取第二目标QPC数据地址。根据第二目标QPC数据地址,通过TOE模块向主机侧请求读取第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理。
当第四命中结果为命中时,则通过TOE模块确定第二报文对应的QPN数据对应的第二目标QPC数据地址,向主机侧请求读取第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种TOE的加速系统,其特征在于,包括:设置于网络芯片中的TOE模块、设置于网络芯片中的cache模块以及用于处理数据的主机;
所述cache模块,用于缓存主机中的部分或者全部QPC数据,并将QPC数据对应的FP数据和/或QPN数据作为索引存储;FP数据用于表征报文的指纹信息;
所述cache模块,还用于缓存主机中QPC数据对应的QPC存储地址;
所述TOE模块,用于从cache模块获取与收发报文对应的目标QPC数据或通过cache模块中的QPC存储地址从主机中获取与收发报文对应的目标QPC数据,并根据目标QPC数据对收发报文进行处理,并将收发报文传出;
所述主机,用于响应第一报文以及产生第二报文,且允许cache模块请求主机内部存储的QPC数据;其中,第一报文用于表征接收的报文,第二报文用于表征发送的报文。
2.一种基于权利要求1所述加速系统的TOE的加速方法,其特征在于,包括:报文发送加速过程以及报文接收加速过程;
所述报文接收加速过程,包括:
通过TOE模块接第一报文,并获取第一报文对应的FP数据;
通过TOE模块以第一报文对应的FP数据,在cache模块中进行QPC数据的匹配,以获取QPC数据的第一命中结果;所述第一命中结果包括命中或未命中;
根据所述QPC数据的第一命中结果,通过TOE模块从cache模块或主机获取第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,实现TOE加速;
所述报文发送加速过程,包括:
通过主机发送第二报文,同时携带第二报文对应的FP数据以及QPN数据;
通过TOE模块以第二报文对应的FP数据以及QPN数据为基础,在cache模块中进行QPC数据的匹配,以获取QPC数据的第二命中结果;所述第二命中结果包括命中或未命中;
根据所述QPC数据的第二命中结果,通过TOE模块从cache模块或主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,实现TOE加速。
3.根据权利要求2所述的TOE的加速方法,其特征在于,通过TOE模块接第一报文,并获取第一报文对应的FP数据,包括:
通过TOE模块接第一报文,并解析第一报文对应的五元组;以五元组为基础,通过哈希算法获取第一报文对应的FP数据。
4.根据权利要求3所述的TOE的加速方法,其特征在于,通过TOE模块以第一报文对应的FP数据,在cache模块中进行QPC数据的匹配,以获取QPC数据的第一命中结果,包括:
将第一报文对应的FP数据的低n1比特作为cache模块的第一目标index值;n1表示cache模块中data cache单元的总index数目关于2的对数,data cache单元用于表征cache模块中存储QPC数据的存储单元;
对比第一目标index值的所有tag,并判断是否存在FP与第一报文对应的FP数据相同的tag,若是,则读取该tag的QPC数据,否则确定QPC数据的第一命中结果为未命中;
判断该QPC数据中的五元组是否与第一报文对应的五元组是否一致,若是,则第一命中结果为命中,否则确定QPC数据的第一命中结果为未命中。
5.根据权利要求4所述的TOE的加速方法,其特征在于,根据所述QPC数据的第一命中结果,通过TOE模块从cache模块或主机获取第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
当所述QPC数据的第一命中结果为命中时,根据第一报文对应的FP数据和五元组,通过TOE模块从cache模块匹配第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理;
当所述QPC数据的第一命中结果为未命中,根据第一报文对应的五元组,获取第一报文对应的QPN数据,并根据第一报文对应的FP和QPN数据,通过cache模块从主机获取第一报文对应的第一目标QPC数据,同时将第一目标QPC数据缓存在cache模块中,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
6.根据权利要求5所述的TOE的加速方法,其特征在于,根据第一报文对应的FP数据和五元组,通过TOE模块从cache模块匹配第一报文对应的第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
通过TOE模块从cache模块查找FP数据与第一报文对应的FP数据的QPC数据,并再查找得到的QPC数据中匹配五元组与第一报文对应的五元组相同的QPC数据,得到第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
7.根据权利要求6所述的TOE的加速方法,其特征在于,根据第一报文对应的五元组,获取第一报文对应的QPN数据,并根据第一报文对应的FP和QPN数据,通过cache模块从主机获取第一报文对应的第一目标QPC数据,同时将QPC数据缓存在cache模块,并根据第一报文对应的第一目标QPC数据对第一报文进行处理,包括:
根据第一报文对应的五元组,查表获取第一报文对应的QPN数据;
根据第一报文对应的QPN数据的低n2比特作为addr cache单元的第三目标index值,对比第三目标index值的所有tag,若存在相同的QPN数据,则确定第三命中结果为命中;若不存在相同的QPN数据,则确定第三命中结果为未命中;所述addr cache单元用于表征cache模块缓存QPC存储地址的存储单元;n2表示cache模块中addr cache总index数目关于2的对数;
当第三命中结果为未命中时,将第一报文对应的QPN数据的高n4比特作为addr SRAM单元的地址,读取存放在主机侧第一报文对应的QPN数据所对应的QPC数据在主机侧的地址集合的连续空间的基地址,再将第一报文对应的QPN数据低n3比特乘以地址位宽字节数之后,并加上当前读出的基地址,得到第一报文对应的第一目标QPC数据地址的地址;所述addrSRAM单元用于表征存储QPC存储地址对应的基地址的存储单元;n4表示支持的QPN总数的分组数目关于2的对数,n3表示每组的QPN数目关于2的对数;
根据第一目标QPC数据地址的地址,向主机侧请求读取第一目标QPC数据地址,并根据第一目标QPC数据地址再向主机侧请求读取第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理;
当第三命中结果为命中时,则通过TOE模块从addr cache单元中确定第一报文对应的QPN数据对应的第一目标QPC数据地址,向主机侧请求读取第一目标QPC数据,并根据第一报文对应的第一目标QPC数据对第一报文进行处理。
8.根据权利要求2所述的TOE的加速方法,其特征在于,通过TOE模块以第二报文对应的FP数据以及QPN数据为基础,在cache模块中进行QPC数据的匹配,以获取QPC数据的第二命中结果,包括:
将第二报文对应的FP数据的低n1比特作为cache模块的第二目标index值;n1表示cache模块中data cache单元的总index数目关于2的对数;
对比第二目标index值的所有tag,并判断是否存在QPN数据与第二报文对应的QPN数据相同的tag,若是,则确定QPC数据的第二命中结果为命中,否则确定QPC数据的第二命中结果为未命中。
9.根据权利要求8所述的TOE的加速方法,其特征在于,根据所述QPC数据的第二命中结果,通过TOE模块从cache模块或主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,包括:
当所述QPC数据的第二命中结果为命中时,根据第二报文对应的FP数据和QPN数据,通过TOE模块从cache模块获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理;
当所述QPC数据的第二命中结果为未命中,根据第二报文对应的QPN数据,通过TOE模块从主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理。
10.根据权利要求9所述的TOE的加速方法,其特征在于,当所述QPC数据的第二命中结果为未命中,根据第二报文对应的QPN数据,通过TOE模块从主机获取第二报文对应的第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理,包括:
根据第二报文对应的QPN数据的低n比特作为addr cache的第四目标index值,对比第四目标index值的所有tag,若存在相同的QPN数据,则确定第四命中结果为命中;若不存在相同的QPN数据,则确定第四命中结果为未命中;
当第四命中结果为未命中时,将第二报文对应的QPN数据的高n4比特作为addr SRAM的地址,读取存放在主机侧第一报文对应的QPN数据所对应的QPC数据在主机侧的地址集合的连续空间的基地址,再将第二报文对应的QPN数据低n3比特乘以地址位宽字节数之后,并加上当前读出的基地址,得到第二报文对应的第二目标QPC数据地址的地址;
根据第二目标QPC数据地址的地址,向主机侧请求读取第二目标QPC数据地址;根据第二目标QPC数据地址,通过TOE模块向主机侧请求读取第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理;
当第四命中结果为命中时,则通过TOE模块确定第二报文对应的QPN数据对应的第二目标QPC数据地址,向主机侧请求读取第二目标QPC数据,并根据第二报文对应的第二目标QPC数据对第二报文进行处理。
CN202311804802.3A 2023-12-25 2023-12-25 一种toe的加速系统及方法 Pending CN117880222A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311804802.3A CN117880222A (zh) 2023-12-25 2023-12-25 一种toe的加速系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311804802.3A CN117880222A (zh) 2023-12-25 2023-12-25 一种toe的加速系统及方法

Publications (1)

Publication Number Publication Date
CN117880222A true CN117880222A (zh) 2024-04-12

Family

ID=90576558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311804802.3A Pending CN117880222A (zh) 2023-12-25 2023-12-25 一种toe的加速系统及方法

Country Status (1)

Country Link
CN (1) CN117880222A (zh)

Similar Documents

Publication Publication Date Title
US7636810B2 (en) Method, system, and apparatus for memory compression with flexible in-memory cache
US10248350B2 (en) Queue management method and apparatus
US20140047188A1 (en) Method and Multi-Core Communication Processor for Replacing Data in System Cache
US9256555B2 (en) Method and system for queue descriptor cache management for a host channel adapter
US9465743B2 (en) Method for accessing cache and pseudo cache agent
CN115964319A (zh) 远程直接内存访问的数据处理方法及相关产品
CN115033185A (zh) 访存处理方法和装置、存储装置、芯片、板卡、电子设备
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
CN113419973B (zh) 一种报文转发方法及装置
JP2008234059A (ja) データ転送装置および情報処理システム
EP1683321B1 (en) Method and system to protect a protocol control block for network packet processing
CN115794366A (zh) 一种内存预取方法及装置
CN114996023B (zh) 目标缓存装置、处理装置、网络设备及表项获取方法
US11036643B1 (en) Mid-level instruction cache
US11093405B1 (en) Shared mid-level data cache
CN117880222A (zh) 一种toe的加速系统及方法
CN114766090A (zh) 一种报文缓存方法、集成电路系统及存储介质
WO2021008552A1 (zh) 数据读取方法和装置、计算机可读存储介质
CN104378295A (zh) 表项管理装置及表项管理方法
CN113157628A (zh) 存储系统、数据处理方法、装置、存储系统及电子设备
CN112445794A (zh) 一种大数据系统的缓存方法
CN117873744A (zh) 一种队列对状态管理方法及系统
WO2023130953A1 (zh) 数据查找方法及装置、网络设备
CN112559401B (zh) 一种基于pim技术的稀疏矩阵链式访问系统
CN117478626B (zh) 基于组相连缓存的快速匹配查找系统、方法、设备及介质

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