CN117880222A - 一种toe的加速系统及方法 - Google Patents
一种toe的加速系统及方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000001133 acceleration Effects 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims description 18
- 230000003139 buffering effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 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/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering 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的加速系统及方法。
背景技术
传统以太网环境中,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数据对第二报文进行处理。
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) |
-
2023
- 2023-12-25 CN CN202311804802.3A patent/CN117880222A/zh active Pending
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 |