WO2011103828A2 - 系统缓存中数据替换方法及多核通信处理器 - Google Patents

系统缓存中数据替换方法及多核通信处理器 Download PDF

Info

Publication number
WO2011103828A2
WO2011103828A2 PCT/CN2011/072932 CN2011072932W WO2011103828A2 WO 2011103828 A2 WO2011103828 A2 WO 2011103828A2 CN 2011072932 W CN2011072932 W CN 2011072932W WO 2011103828 A2 WO2011103828 A2 WO 2011103828A2
Authority
WO
WIPO (PCT)
Prior art keywords
header data
packet
data
packet header
system cache
Prior art date
Application number
PCT/CN2011/072932
Other languages
English (en)
French (fr)
Other versions
WO2011103828A3 (zh
Inventor
夏晶
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201180000402.6A priority Critical patent/CN102439574B/zh
Priority to PCT/CN2011/072932 priority patent/WO2011103828A2/zh
Publication of WO2011103828A2 publication Critical patent/WO2011103828A2/zh
Publication of WO2011103828A3 publication Critical patent/WO2011103828A3/zh
Priority to US14/057,171 priority patent/US9304939B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种系统缓存中数据替换方法,包括:系统缓存获取所述系统缓存中各包头数据对应的访问统计值,其中,包头数据对应的访问统计值表示包头数据的预定访问次数减去所述包头数据已被CPU访问的次数的差;所述系统缓存根据各包头数据对应的访问统计值,获取待转移的包头数据;所述系统缓存将所述待转移的包头数据转移到外部存储器。

Description

系统緩存中数据替换方法及多核通信处理器 技术领域
本发明涉及多核通信处理技术领域,特别涉及一种系统緩存中数据替换方 法及多核通信处理器。 背景技术
緩存 Cache通常是为提升 CPU性能而设计的高速緩冲存储器, 它与主储 存器以块为单位进行数据交换。 目前, Cache不仅仅用于在对 CPU的本地应 用程序数据或者指令进行緩冲, 而且也用于对网络中的各种数据包进行緩存, 以提升 CPU处理各种数据包的效率。
现在随着用户需求的逐渐增多, 多核通信处理器的应用也越来越广泛, 多 核通信处理器中会有多个 CPU, 和多个网口 (网口是多核通信处理器最主要 的 IO ), 其工作的主要流程就是由 CPU对网口进来的数据包进行分类、 封装 等处理, 然后再通过网口发送出去。 其中, 每个 CPU都会有各自独立的 Local Cache,这些 Local Cache都是 CPU各自独享的,专用于优化 CPU的读写效率, 而系统总线上还有一个 System Cache, 该 System Cache是各个 CPU及各个网 口共用的, 用以存放 CPU之间、 CPU和网口之间的数据, 以进一步提升 CPU 的数据读写效率。 此外, 多核通信处理器中包括包调度模块, 主要用于调度处 理数据包的 CPU。 其中, 调度 CPU处理数据包有 Pipeline (流水线 )和 RTC ( Run to Complete, 跑完为止) 两种处理方式, Pipeline是指将一个数据包分 为多个处理步骤, 分别由多个 CPU依次处理, RTC是指一个数据包从头到尾 由一个 CPU处理完。
具体的, 数据包的处理流程包括如下步骤:
1 )、 网口接收数据包, 解析数据包, 获得包头描述符, 将包头描述符发送 给包调度模块; 将数据包写入 System Cache.
2 )、 包调度模块根据特定的调度算法, 确定由某个空闲的 CPU处理该数 据包,将该数据包的包头描述符发送给该 CPU,以通知该 CPU处理该数据包; 3 )、 CPU从 System Cache中读取该数据包并进行处理; 4 )、 CPU处理完成后, 将处理后的数据包写回到 System Cache中;
5 )、 网口将数据包发送出去。
其中, 如果采用 RTC模式, 则 3、 4两步由一个 CPU执行, 并仅执行一 次; 如果采用 Pipeline模式, 则 3、 4两步由多个 CPU执行, 且执行多次。
从上述处理流程可以看出,影响多核通信处理器性能的最重要因素是: 步 骤 3中 CPU在 System Cache的命中率, 即步骤 3中 CPU在 System Cache中 查找到数据包的概率。 由于 System Cache的容量是有限的, 数据包不断从网 口进入的时候,新的数据包会不断将老的 Packet替换到 System Cache,老的数 据包将被转存到 DDR ( Double Data Rate , 双倍速率同步动态随机存储器 )中。 从上述处理流程可以看出, 如果步骤 3中 CPU能够直接从 System Cache获取 到数据包, 则将提高该 CPU对数据包的访问效率, 相反, 如果步骤 3中 CPU 无法直接从 System Cache获取到数据包, 则需要到 DDR中查找该数据包, 大 大降低了 CPU对数据包的访问效率。
现有技术提供一种 System Cache 中数据包的替换算法, 即 LRU ( Least Recently Used, 最近最少使用)方法, 该方法假设 CPU具有时间和空间的局 部性, 最近被 CPU访问的数据很可能接下来会被 CPU频繁访问, 相反, 很长 时间没有被 CPU访问的数据, 在未来一段时间内也不会被 CPU访问。 因此, 当需要替换掉 System Cache中的 Packet时, 会将最近最少使用的 Packet从 System Cache中转移到 DDR中。 业内的很多多核通信处理器均采用上述 LRU 算法。也有一些多核通信处理器采用类似 LRU的算法,比如 FreeScale的 P4080 芯片的 System Cache采用 PLRU ( PseudoLRU, 伪最近最少使用)算法; LSI 的 ACP芯片的 System Cache采用 True LRU (真最近最少使用 ) 算法。 发明内容
本发明实施例提供一种系统緩存中数据替换方法及多核通信处理器,能够 将系统緩存中的包头数据转移到外部存储器中。
有鉴于此, 本发明实施例提供:
一种系统緩存中数据替换方法, 包括: 系统緩存获取所述系统緩存中各包头数据对应的访问统计值,其中, 包头
CPU访问的次数的差;
所述系统緩存根据各包头数据对应的访问统计值 , 获取待转移的包头数 据;
所述系统緩存将所述待转移的包头数据转移到外部存储器。
一种多核处理器, 包括: 系统緩存,
所述系统緩存包括:
数据保存单元, 用于保存各包头数据;
访问统计值获取单元,用于获取所述各包头数据对应的访问统计值,其中, 已被 CPU访问的次数的差;
待转移包头数据获取单元, 用于根据各包头数据对应的访问统计值,获取 待转移的包头数据;
转移单元, 用于将所述待转移的包头数据转移到外部存储器。
本发明实施例在需要将系统緩存中的包头数据转移到外部存储器时,根据 的包头数据, 并将该待转移的包头数据从系统緩存转移到外部存储器中。 由于 在获取待转移的包头数据时,考虑了包头数据的预定访问次数减去包头数据已 被 CPU访问的次数的差,所以能够加大转移出的包头数据是已完成最后一次被 CPU读取的包头数据的概率。 附图说明
为了更清楚地说明本发明实施例的技术方案 ,下面将对实施例中所需要使 用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一些 实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可 以根据这些附图获得其他的附图。
图 1是本发明实施例提供的一种系统緩存中数据替换方法流程图; 图 2是本发明实施例提供的另一种系统緩存中数据替换方法流程图; 图 3是本发明实施例提供的多核处理器结构图。 具体实施方式
参阅图 1,本发明实施例提供一种系统緩存中数据替换方法,该方法包括: 101、 系统緩存获取所述系统緩存中各包头数据对应的访问统计值,其中, 已被 CPU访问的次数的差。
其中, 在步骤之前, 系统緩存会接收网口发送的预定访问次数。 其中, 网 据包是否需要执行 IP报文分片重组操作、是否需要执行深度包解析操作, 以及 包头数据所对应的数据包是否是 Internet协议安全类型的数据包,确定该包头数 据的预定访问次数。
102、 所述系统緩存根据各包头数据对应的访问统计值, 获取待转移的包 头数据。
由于访问统计值最小的包头数据已完成 CPU最后一次访问的概率最大,因 此,优选的获取待转移的包头数据的具体实现方式是:从系统緩存中各包头数 据对应的访问统计值中查找最小值 ,获取可选的包头数据中的至少一个包头数 据作为所述待转移的包头数据,其中,可选的包头数据为所述最小值所对应的 包头数据。
其中, 在该步骤之前, 多核处理器中的网口会接收客户端发出的数据包, 该数据包包括包头数据和净荷, 网口解析该包头数据,获得该包头数据对应的 初始服务质量(Quality of Service, QoS )等级。 由于 QoS等级高表示服务的优 先级高, QoS等级低表示服务的优先级低, 通常, QoS等级高的服务需要优先 得到保证, 因此, 在需要将系统緩存中的包头数据替换出去时, 可以将 QoS等 级低的替换出去, 让 QoS等级高的保留在系统緩存中, 这样能够保证 QoS等级 高的数据包的服务质量。所以当可选的包头数据有多个时,根据各可选的包头 数据所对应的 QoS等级, 获取各可选的包头数据中 QoS等级最低的包头数据作 为待转移的包头数据, 具体的, 可以根据各可选的包头数据所对应的初始 QoS 等级, 选择初始 QoS等级最低的包头数据作为待转移的包头数据; 或者, 根据 发出各包头数据的客户端的端口信息、 各包头数据对应的用户等级中至少一 个,对各包头数据对应的初始 QoS等级进行更新,得到各包头数据对应的新 QoS 等级, 将新 QoS等级最低的包头数据作为待转移的包头数据。 其中, 发出包头 数据的客户端的端口信息可以是发出包头数据的客户端的端口流量。其中,对 各包头数据对应的初始 QoS等级进行更新, 得到各包头数据对应的新 QoS等级 的方式可以是: 在根据发出各包头数据的客户端的端口信息、各包头数据对应 的用户等级中至少一个, 在各包头数据的初始 QoS等级上增加新的 QoS信息, 得到新 QoS等级, 具体方式见后续实施例详细描述。
可选的,在另一种实施方式中,获取待转移的包头数据的具体实现方式也 可以是: 从系统緩存中各包头数据对应的访问统计值中查找最小值和次小值, 然后在最小值和次小值对应的包头数据中查找 QoS等级最低的包头数据, 将查 找到的包头数据作为待转移的包头数据。
103、 所述系统緩存将所述待转移的包头数据转移到外部存储器。
其中, 外部存储器可以是 DDR。
本发明实施例在需要将系统緩存中的包头数据转移到外部存储器时,根据 的包头数据, 并将该待转移的包头数据从系统緩存转移到外部存储器中。 由于 在获取待转移的包头数据时,考虑了包头数据的预定访问次数减去包头数据已 被 CPU访问的次数的差 ,所以能够加大转移出的包头数据是已完成最后一次被 CPU读取的包头数据的概率。 为了使本发明提供的技术方案更加清楚明白 ,如下实施例对本发明提供的 技术方案进行详细描述:
参阅图 2, 本发明实施例提供另一种系统緩存中数据替换方法, 该方法包 括:
201、 多核处理器中的网口接收客户端发出的数据包, 该数据包包括包头 数据和净荷, 网口解析包头数据, 确定数据包的新 QoS等级和包头数据对应 的预定访问次数。
具体的, 网口确定数据包的新 QoS等级的过程包括: 网口解析包头数据, 获得该数据包的初始 QoS等级, 并根据发出该数据包的客户端的端口流量和 该数据包所对应的用户等级中至少一个,在该初始 QoS等级上增加额外的 QoS 信息, 得到新的 QoS等级。 其中, 该数据包所对应的用户等级可以通过如下 方式获得: 网口根据该数据包的源 IP地址, 和本地保存的 IP地址和用户等级 的对应关系, 确定该数据包所对应的用户等级。
具体的, QoS是由一些二进制位组成, 其大小表示 QoS等级。 其中, 初 始 QoS等级是与业务类型相关的, 比如对于电话业务, 其初始 QoS等级就比 较高, 对于 BT等下载业务, 其初始 QoS等级就比较低。 网口解析数据包中的 包头数据, 可以得到初始 QoS等级, 网口再根据发出该数据包的客户端的端 口流量、 用户等级再扩展 QoS, 在初始 QoS等级的基础上增加额外的 QoS信 息, 得到新 QoS等级。 比如, 在初始 QoS等级之前增加 2比特, 用于表示发 出数据包的客户端的端口流量,如果端口流量比较大的 ,这 2比特的值比较大, 如果端口流量比较小, 则这 2比特的值比较小; 再如, 在初始 QoS等级之后 增加 3比特, 用于表示该数据包对应的用户等级, 如果用户等级比较大的, 这 3比特的值比较大, 如果用户等级比较小, 则这 3比特的值比较小。 于网口接收到数据包之后,一定会查找该数据包的下一跳路由,一定需要 CPU 对该数据包进行路由查找, 所以至少需要 CPU对系统緩存中的该数据包的包 头数据进行读取一次。 然后网口判断该数据包是否需要执行 IP报文分片重组 操作, 如果是, 则 N加 1, 此时 N为 2; 然后网口再判断该数据包是否需要执 行深度包解析操作, 如果是, 则 N加 1 , 此时 N为 3; 然后网口再判断该数据 包是否是 Internet协议安全(简称 IPSec )类型的数据包, 如果是, 则 N加 2, 此时 N为 5。 需要说明的是, 上述各判断没有必然的先后执行顺序, 也可以先 判断该数据包是否是 IPSec类型的数据包, 不影响本发明的实现。
202、多核处理器中的网口向多核处理器中的包调度模块发送包头描述符, 该包头描述符中携带该数据包的新 QoS等级。
203、 多核处理器中的网口向多核处理器中的系统緩存发送包头数据、 该 数据包的新 QoS等级和以及预定访问次数 N, 网口将数据包的净荷发给外部 存储器。 其中, 步骤 202和步骤 203没有执行上的先后顺序, 可以是并行处理的。
204、 多核处理器中的系统緩存保存包头数据、 新 QoS等级和预定访问次 已被 CPU访问的次数 M。
具体的, 系统緩存可以根据包头数据的大小, 将该包头数据存入一个或者 多个 Cache Line中, 系统緩存针对每个 Cache Line保存有额外信息, 该额外 信息包括新 QoS等级和预定访问次数 N和已被 CPU访问的次数 M。 比如,一 个 Cache Line有 64byte, 系统緩存另外为该 Cache Line分配 1 byte, 该 1 byte 用于保存额外信息。
205、 多核处理器中的包调度模块确定本次需要处理该数据包的 CPU, 将 该数据包的包头描述符发送给所确定的多核处理器中的 CPU。
其中, 包调度模块中保存有多个数据包的包头描述符,根据各数据包的包 头描述符中的新 QoS等级, 包调度模块确定当前需要 CPU处理哪个数据包, 对于新 QoS等级高的, 可以优先处理, 然后确定空闲的 CPU, 将需要处理的 数据包的包头描述符发送给所确定的 CPU。
206、 多核处理器中的该 CPU根据该包头描述符, 从系统緩存中读取该包 头描述符所对应的包头数据并进行处理。
具体的, 该 CPU根据该包头描述符, 从系统緩存的 Cache Line中读取包 头数据, 保存在该 CPU的本地緩存中,假定本次处理是执行深度包解析操作, 则 CPU可以解析该包头数据, 并采用特征识别方式、 行为识别方式、 启发式 识别方式或者关联识别方式等识别数据包的业务类型。
207、 多核处理器中的该 CPU将处理后的包头数据写回到系统緩存中, 系 统緩存将该包头数据对应的已访问次数 M加 1。
具体的, 该 CPU将处理后的包头数据写入 Cache Line中, 系统緩存将该 Cache Line的额外信息中的已访问次数 M力口 1。
需要说明的是, 在步骤 206中, CPU从系统緩存中读取该包头描述符所 对应的包头数据并保存到本地緩存中, 然后对本地緩存中的包头数据进行处 理, 由于 CPU具有时间和空间的局限性, 所以保存在本地緩存中的包头数据 会保存一段时间而不被删除。 这样, 如果该 CPU下一次从包调度模块接收到 的包头描述符与本次接收到的相同 ,则直接在本地緩存中查找包头数据并进行 处理, 因此, 如果包调度模块连续几次调度同一 CPU处理相同的包头数据, 则系统緩存中记录的该包头数据对应的已访问次数 M仅增加一次。
208、 在需要转移系统緩存中的包头数据时, 多核处理器中的系统緩存根 据各包头数据对应的访问统计值, 查找访问统计值最小的包头数据。 该包头数据的已访问次数 M的差。
209、 多核处理器中的系统緩存当访问统计值最小的包头数据有多个时 , 选择新 QoS等级最低的包头数据。
210、 多核处理器中的系统緩存将新 QoS等级最低的包头数据转移到外部 存储器中。
需要说明的是,在另一种实施方式中, 无论访问统计值最小的包头数据有 一个还是多个,都会将其转移到外部存储器中,此时,就不需要执行步骤 209, 而是在步骤 210中直接将访问统计值最小的包头数据转移到外部存储器中。
后续, 网口需要将数据包发送出去时,从系统緩存中读取数据包的包头数 据, 并从外部存储器中读取数据包的净荷,将包含包头数据和净核的数据包发 送出去。在数据包从系统緩存中读取数据包的包头数据之后, 系统緩存就将该 数据包的包头数据从系统緩存中删除,这样,可以为系统緩存节省空间。比如, 包头数据的预定访问次数 N过大, 而实际上该包头数据被 CPU访问的次数 M 比较小, 或者, 由于该包头数据连续多次由同一 CPU处理所以该包头数据被 CPU访问的次数 M比较小, 这样, 预定访问次数 N减去已被 CPU访问的次 数 M的差值就比较大, 不容易被系统緩存转移到外部存储器中, 所以在网口 读取该数据包的包头数据后, 就将其删除。
本发明实施例在需要将系统緩存中的包头数据转移到外部存储器时,根据 其预定访问次数 N减去已访问次数 M的差, 查找 N-M最小的包头数据, 并将该 包头数据从系统緩存转移到外部存储器中。现有技术提供的系统緩存中数据替 换算法假定 CPU具有时间和空间的局部性,但是包调度模块在向处理数据包的 CPU发送包头描述符之前,由于包头描述符在包调度模块本地排队时可能出现 阻塞, 导致 CPU在访问该数据包的包头数据时, 该包头数据已经由于长久没有 被访问而被替换出系统緩存, 所以大大降低了 CPU对该包头数据的访问效率; 本发明在确定待转移的包头数据时, 是选择 N-M最小的包头数据转移出去的, N-M最小则表示该包头数据已完成最后一次被 CPU读取的概率增大, 这样, 没 有完成最后一次被 CPU读取的包头数据还在系统緩存中,后续 CPU从系统緩存 中获取需要处理的包头数据时, 提高了命中率。 参阅图 3 , 本发明实施例提供一种多核处理器, 其包括: 系统緩存 10, 系统緩存 30包括:
数据保存单元 31 , 用于保存各包头数据;
访问统计值获取单元 32, 用于获取所述各包头数据对应的访问统计值, 数据已被 CPU访问的次数的差;
待转移包头数据获取单元 33 , 用于根据各包头数据对应的访问统计值, 获取待转移的包头数据;
转移单元 34, 用于将所述待转移的包头数据转移到外部存储器。
其中, 所述预定访问次数和已被 CPU访问的次数可以保存在该系统緩存 中, 也可以保存在系统緩存之外, 当两者需要保存在系统緩存中时, 该系统緩 存还包括: 额外信息保存单元 35 , 用于保存所述数据保存单元 31所保存的包 头数据的预定访问次数和已被 CPU访问的次数; 和更新单元 36, 用于在所述 数据保存单元 31所保存的包头数据被 CPU访问时,更新所述包头数据的已被 CPU访问的次数。
具体的, 访问统计值获取单元 32, 具体用于从各包头数据对应的访问统 计值中查找最小值,获取可选的包头数据中的至少一个包头数据作为所述待转 移的包头数据, 其中, 可选的包头数据为所述最小值所对应的包头数据。
在一种实施方式中, 额外信息保存单元 35还用于保存所述数据保存单元 31所保存的包头数据所对应的 QoS等级。待转移包头数据获取单元 33具体包 括:最小值查找单元 331 ,用于从各包头数据对应的访问统计值中查找最小值; 获取单元 332, 用于当可选的包头数据有多个时, 根据可选的包头数据所对应 的 QoS等级, 获取各可选的包头数据中 QoS等级最低的包头数据作为所述待 转移的包头数据。其中, QoS等级可以为根据客户端发出的包头数据解析出的 初始 QoS等级, 也可以是在初始 QoS等级增加额外 QoS信息得到的新 QoS 等级。
为了获得 QoS等级, 该多核处理器还包括: 网口 40, 用于解析各包头数 据, 确定各包头数据对应的初始 QoS等级, 根据发出各包头数据的客户端的 端口信息、各包头数据对应的用户等级中至少一个,分别对各包头数据对应的 初始 QoS等级进行更新, 得到各包头数据对应的新 QoS等级, 即分别对各包 头数据对应的初始 QoS等级增加额外 QoS信息得到的新 QoS等级。
可选的, 为了确定包头数据的预定访问次数, 该网口 40, 还用于根据各 包头数据所对应的数据包是否需要执行 IP报文分片重组操作、 是否需要执行 深度包解析操作和各包头数据所对应的数据包是否是 IPSec类型的数据包,确 定各包头数据对应的预定访问次数,将各包头数据对应的预定访问次数发送給 系统緩存。
可选的, 该多核处理器还包括: CPU 50和包调度模块 60, 其中, 网口 40 还用于将包头描述符发送给包调度模块 60, 包头描述符中包括 QoS等级, 即 初始 QoS等级或者新 QoS等级, 包调度模块 60根据包头描述符中的 QoS等 级, 确定需要 CPU 50对包头数据进行处理, 向 CPU 50发送该包头数据的包 头描述符, 后续 CPU 50根据该包头描述符从数据保存单元 31中读取该包头 数据。
本发明实施例在需要将系统緩存中的包头数据转移到外部存储器时,根据 其预定访问次数减去已访问次数的差, 查找差值最小的包头数据, 并将该包头 数据从系统緩存转移到外部存储器中。 由于在确定待转移的包头数据时,考虑 加大转移出的包头数据是已完成最后一次被 CPU读取的包头数据的概率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可 读存储介质中, 例如只读存储器, 磁盘或光盘等。
以上对本发明实施例所提供的系统緩存中数据替换方法及多核通信处理 阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时, 对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围 上均会有改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。

Claims

权 利 要 求
1、 一种系统緩存中数据替换方法, 其特征在于, 包括:
系统緩存获取所述系统緩存中各包头数据对应的访问统计值,其中, 包头 CPU访问的次数的差;
所述系统緩存根据各包头数据对应的访问统计值 , 获取待转移的包头数 据;
所述系统緩存将所述待转移的包头数据转移到外部存储器。
2、 根据权利要求 1所述的方法, 其特征在于, 该方法还包括:
在系统緩存中的包头数据每次被 CPU访问时,所述系统緩存更新所述包头 数据已被 CPU访问的次数。
3、 根据权利要求 1所述的方法, 其特征在于,
所述系统緩存根据各包头数据对应的访问统计值,获取待转移的包头数据 包括:
所述系统緩存从各包头数据对应的访问统计值中查找最小值;
所述系统緩存获取可选的包头数据中的至少一个包头数据作为所述待转 移的包头数据, 其中, 可选的包头数据为所述最小值所对应的包头数据。
4、 根据权利要求 3所述的方法, 其特征在于,
所述系统緩存获取可选的包头数据中的至少一个包头数据作为所述待转 移的包头数据包括:
根据可选的包头数据所对应的服务质量 QoS等级, 获取各可选的包头数据 中 QoS等级最低的包头数据作为所述待转移的包头数据。
5、 根据权利要求 4所述的方法, 其特征在于,
在获取各可选的包头数据中 QoS等级最低的包头数据作为所述待转移的 包头数据之前, 该方法还包括:
解析各包头数据, 确定各包头数据对应的初始 QoS等级;
根据发出各包头数据的客户端的端口信息、各包头数据对应的用户等级中 至少一个, 分别对各包头数据对应的初始 QoS等级进行更新, 得到各包头数据 对应的新 QoS等级; 根据可选的包头数据所对应的 QoS等级, 获取各可选的包头数据中 QoS等 级最低的包头数据作为所述待转移的包头数据具体为:
根据可选的包头数据所对应的新 QoS等级, 获取各可选的包头数据中新 QoS等级最低的包头数据。
6、根据权利要求 1所述的方法, 其特征在于, 在系统緩存获取所述系统緩 存中各包头数据对应的访问统计值之前, 该方法还包括:
网口根据包头数据所对应的数据包是否需要执行 IP报文分片重组操作、是 否需要执行深度包解析操作,以及包头数据所对应的数据包是否是 Internet协议 安全类型的数据包,确定所述包头数据的预定访问次数,将所述包头数据的预 定访问次数发送給所述系统緩存。
7、 一种多核处理器, 其特征在于, 包括: 系统緩存,
所述系统緩存包括:
数据保存单元, 用于保存各包头数据;
访问统计值获取单元,用于获取所述各包头数据对应的访问统计值,其中, 已被 CPU访问的次数的差;
待转移包头数据获取单元, 用于根据各包头数据对应的访问统计值,获取 待转移的包头数据;
转移单元, 用于将所述待转移的包头数据转移到外部存储器。
8、 根据权利要求 7所述的多核处理器, 其特征在于,
所述系统緩存还包括:
额外信息保存单元,用于保存所述数据保存单元所保存的包头数据的预定 访问次数和已被 CPU访问的次数;
更新单元, 用于在所述数据保存单元所保存的包头数据被 CPU访问时, 更新所述包头数据的已被 CPU访问的次数。
9、 根据权利要求 7所述的多核处理器, 其特征在于,
所述待转移包头数据获取单元 ,用于从各包头数据对应的访问统计值中查 找最小值,获取可选的包头数据中的至少一个包头数据作为所述待转移的包头 数据, 其中, 可选的包头数据为所述最小值所对应的包头数据。
10、 根据权利要求 9所述的多核处理器, 其特征在于, 还包括: 额外信息保存单元,用于保存所述数据保存单元所保存的包头数据所对应 的服务质量 QoS等级;
所述待转移包头数据获取单元包括:
最小值查找单元, 用于从各包头数据对应的访问统计值中查找最小值; 获取单元, 用于当可选的包头数据有多个时,根据可选的包头数据所对应 的 QoS等级, 获取各可选的包头数据中 QoS等级最低的包头数据作为所述待 转移的包头数据。
11、 根据权利要求 10所述的多核处理器, 其特征在于,
该多核处理器还包括:
网口, 用于解析各包头数据, 确定各包头数据对应的初始 QoS等级, 根 据发出各包头数据的客户端的端口信息、各包头数据对应的用户等级中至少一 个, 分别对各包头数据对应的初始 QoS等级进行更新, 得到各包头数据对应 的新 QoS等级;
所述获取单元, 用于根据可选的包头数据所对应的新 QoS等级, 获取各 可选的包头数据中新 QoS等级最低的包头数据。
12、 根据权利要求 7所述的多核处理器, 其特征在于,
该多核处理器还包括:
网口, 用于根据包头数据所对应的数据包是否需要执行 IP报文分片重组 操作、 是否需要执行深度包解析操作, 以及包头数据所对应的数据包是否是 Internet协议安全类型的数据包, 确定所述包头数据的预定访问次数, 将所述 包头数据的预定访问次&^送給所述系统緩存。
PCT/CN2011/072932 2011-04-18 2011-04-18 系统缓存中数据替换方法及多核通信处理器 WO2011103828A2 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201180000402.6A CN102439574B (zh) 2011-04-18 2011-04-18 系统缓存中数据替换方法及多核通信处理器
PCT/CN2011/072932 WO2011103828A2 (zh) 2011-04-18 2011-04-18 系统缓存中数据替换方法及多核通信处理器
US14/057,171 US9304939B2 (en) 2011-04-18 2013-10-18 Method and multi-core communication processor for replacing data in system cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/072932 WO2011103828A2 (zh) 2011-04-18 2011-04-18 系统缓存中数据替换方法及多核通信处理器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/057,171 Continuation US9304939B2 (en) 2011-04-18 2013-10-18 Method and multi-core communication processor for replacing data in system cache

Publications (2)

Publication Number Publication Date
WO2011103828A2 true WO2011103828A2 (zh) 2011-09-01
WO2011103828A3 WO2011103828A3 (zh) 2012-03-22

Family

ID=44507273

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/072932 WO2011103828A2 (zh) 2011-04-18 2011-04-18 系统缓存中数据替换方法及多核通信处理器

Country Status (3)

Country Link
US (1) US9304939B2 (zh)
CN (1) CN102439574B (zh)
WO (1) WO2011103828A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521162A (zh) * 2011-11-30 2012-06-27 华为技术有限公司 用于缓存数据处理的方法和装置
US9325639B2 (en) 2013-12-17 2016-04-26 At&T Intellectual Property I, L.P. Hierarchical caching system for lossless network packet capture applications

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850508B (zh) * 2015-04-09 2018-02-09 深圳大学 基于数据局部性的访存方法
CN106126121A (zh) * 2016-06-22 2016-11-16 广东睿江云计算股份有限公司 一种基于qos的云主机磁盘资源保障方法及系统
EP3413619B1 (en) * 2016-11-04 2021-02-03 Huawei Technologies Co., Ltd. Network hotspot control method and related device
CN109286577A (zh) * 2017-07-21 2019-01-29 东软集团股份有限公司 一种多核系统中的分片重组方法、装置及设备
WO2019178813A1 (zh) 2018-03-22 2019-09-26 华为技术有限公司 处理报文分片的方法、装置和系统
WO2020026036A1 (en) 2018-07-31 2020-02-06 Marvell World Trade Ltd. Metadata generation at the storage edge
CN112350957A (zh) * 2019-08-09 2021-02-09 中兴通讯股份有限公司 一种网络报文发送的方法、装置和网络处理器
CN112866308B (zh) * 2019-11-12 2023-03-10 华为技术有限公司 一种数据重组的方法以及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232464A (zh) * 2008-02-28 2008-07-30 清华大学 基于时间权参数的p2p实时流媒体缓存替换方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678793B1 (en) * 2000-09-27 2004-01-13 International Business Machines Corporation User-based selective cache content replacement technique
CN100584061C (zh) * 2005-09-30 2010-01-20 华为技术有限公司 一种应用业务的媒体数据缓存方法及系统
US8074028B2 (en) * 2007-03-12 2011-12-06 Citrix Systems, Inc. Systems and methods of providing a multi-tier cache
US7921260B2 (en) * 2007-10-24 2011-04-05 International Business Machines Corporation Preferred write-mostly data cache replacement policies
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232464A (zh) * 2008-02-28 2008-07-30 清华大学 基于时间权参数的p2p实时流媒体缓存替换方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HU MAOZHI ET AL.: 'Time Over Weight a New Cache Replacement Algorithm for P2P Live Media Streaming' JOURNAL OF CHINESE COMPUTER SYSTEMS vol. 30, no. 8, August 2009, pages 1484 - 1489 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521162A (zh) * 2011-11-30 2012-06-27 华为技术有限公司 用于缓存数据处理的方法和装置
US9325639B2 (en) 2013-12-17 2016-04-26 At&T Intellectual Property I, L.P. Hierarchical caching system for lossless network packet capture applications
US9577959B2 (en) 2013-12-17 2017-02-21 At&T Intellectual Property I, L.P. Hierarchical caching system for lossless network packet capture applications

Also Published As

Publication number Publication date
US9304939B2 (en) 2016-04-05
US20140047188A1 (en) 2014-02-13
CN102439574A (zh) 2012-05-02
CN102439574B (zh) 2015-01-28
WO2011103828A3 (zh) 2012-03-22

Similar Documents

Publication Publication Date Title
WO2011103828A2 (zh) 系统缓存中数据替换方法及多核通信处理器
US9253277B2 (en) Pre-fetching stored data from a memory
JP4621747B2 (ja) 通信制御装置および情報処理装置
TWI407733B (zh) 在高速網路應用上使用一個接收先進先出緩衝區來處理接收封包之系統與方法
US10042576B2 (en) Method and apparatus for compressing addresses
US20130304926A1 (en) Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
US10761781B2 (en) Apparatus and methods for a distributed memory system including memory nodes
WO2020199760A1 (zh) 数据存储方法、存储器和服务器
WO2013107029A1 (zh) 一种基于块存储的数据处理方法、装置及系统
JP2004023450A (ja) ルータ装置
US9690713B1 (en) Systems and methods for effectively interacting with a flash memory
WO2018032510A1 (zh) 应用于存储设备中的访问请求的处理方法和装置
US20150256601A1 (en) System and method for efficient content caching in a streaming storage
CN105095109A (zh) 缓存访问方法、缓存访问路由器和计算机系统
JP2009218743A (ja) Ipプロトコル処理装置及びその処理方法
JP2014175781A (ja) 並列パケット処理装置、方法およびプログラム
WO2013185660A1 (zh) 一种网络处理器的指令存储装置及该装置的指令存储方法
WO2014206232A1 (zh) 基于多内核处理器的一致性处理方法和装置
WO2018006786A1 (zh) 转发表项访问
JP2004260532A (ja) ネットワークプロセッサ
US11176064B2 (en) Methods and apparatus for reduced overhead data transfer with a shared ring buffer
WO2019201091A1 (zh) 一种数据处理方法、设备和计算机可读存储介质
US8732351B1 (en) System and method for packet splitting
KR100898345B1 (ko) Toe의 패킷 수신 하드웨어 장치 및 toe 패킷 수신하드웨어를 이용한 수신 시스템 및 수신 방법
CN116483739B (zh) 基于hash计算的KV对快速写架构

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180000402.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11746870

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11746870

Country of ref document: EP

Kind code of ref document: A2