CN102439574B - 系统缓存中数据替换方法及多核通信处理器 - Google Patents
系统缓存中数据替换方法及多核通信处理器 Download PDFInfo
- Publication number
- CN102439574B CN102439574B CN201180000402.6A CN201180000402A CN102439574B CN 102439574 B CN102439574 B CN 102439574B CN 201180000402 A CN201180000402 A CN 201180000402A CN 102439574 B CN102439574 B CN 102439574B
- Authority
- CN
- China
- Prior art keywords
- header data
- system cache
- packet
- data
- transferred
- 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.)
- Active
Links
Classifications
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies 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能够直接从SystemCache获取到数据包,则将提高该CPU对数据包的访问效率,相反,如果步骤3中CPU无法直接从System Cache获取到数据包,则需要到DDR中查找该数据包,大大降低了CPU对数据包的访问效率。
现有技术提供一种System Cache中数据包的替换算法,即LRU(LeastRecently 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访问的次数的差,所以能够加大转移出的包头数据是已完成最后一次被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访问的次数的差,所以能够加大转移出的包头数据是已完成最后一次被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等级和预定访问次数N、已被CPU访问的次数M。
具体的,系统缓存可以根据包头数据的大小,将该包头数据存入一个或者多个Cache Line中,系统缓存针对每个Cache Line保存有额外信息,该额外信息包括新QoS等级和预定访问次数N和已被CPU访问的次数M。比如,一个Cache Line有64byte,系统缓存另外为该Cache Line分配1byte,该1byte用于保存额外信息。
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、在需要转移系统缓存中的包头数据时,多核处理器中的系统缓存根据各包头数据对应的访问统计值,查找访问统计值最小的包头数据。
其中,包头数据对应的访问统计值是该包头数据的预定访问次数N减去该包头数据的已访问次数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访问的次数的差,所以能够加大转移出的包头数据是已完成最后一次被CPU读取的包头数据的概率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,例如只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的系统缓存中数据替换方法及多核通信处理器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种系统缓存中数据替换方法,其特征在于,包括:
多核处理器中的系统缓存获取所述系统缓存中各包头数据对应的访问统计值,其中,包头数据对应的访问统计值表示包头数据的预定访问次数减去所述包头数据已被多核处理器中的各CPU访问的次数的差;
所述系统缓存根据各包头数据对应的访问统计值,获取待转移的包头数据;
所述系统缓存将所述待转移的包头数据转移到外部存储器;
所述方法还包括:
在所述系统缓存中的包头数据被读取之后,而且当被读取的包头数据连续预定多次由多核处理器中的同一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访问的次数的差;
待转移包头数据获取单元,用于根据各包头数据对应的访问统计值,获取待转移的包头数据;
转移单元,用于将所述待转移的包头数据转移到外部存储器;
所述多核处理器还用于在所述系统缓存中的包头数据被读取之后,而且当被读取的包头数据连续预定多次由多核处理器中的同一CPU处理时,所述系统缓存将所述被读取的包头数据从系统缓存中删除;
所述多核处理器还用于当网口需要将数据包发送出去时,而且在网口从所述系统缓存中读取所述数据包的包头数据之后,所述系统缓存将所述数据包的包头数据从所述系统缓存中删除。
8.根据权利要求7所述的多核处理器,其特征在于,
所述系统缓存还包括:
额外信息保存单元,用于保存所述数据保存单元所保存的包头数据的预定访问次数和已被CPU访问的次数;
更新单元,用于在所述数据保存单元所保存的包头数据被CPU访问时,更新所述包头数据的已被CPU访问的次数。
9.根据权利要求7所述的多核处理器,其特征在于,
所述待转移包头数据获取单元,用于从各包头数据对应的访问统计值中查找最小值,获取可选的包头数据中的至少一个包头数据作为所述待转移的包头数据,其中,可选的包头数据为所述最小值所对应的包头数据。
10.根据权利要求9所述的多核处理器,其特征在于,还包括:
额外信息保存单元,用于保存所述数据保存单元所保存的包头数据所对应的服务质量QoS等级;
所述待转移包头数据获取单元包括:
最小值查找单元,用于从各包头数据对应的访问统计值中查找最小值;
获取单元,用于当可选的包头数据有多个时,根据可选的包头数据所对应的QoS等级,获取各可选的包头数据中QoS等级最低的包头数据作为所述待转移的包头数据。
11.根据权利要求10所述的多核处理器,其特征在于,
该多核处理器还包括:
网口,用于解析各包头数据,确定各包头数据对应的初始QoS等级,根据发出各包头数据的客户端的端口信息、各包头数据对应的用户等级中至少一个,分别对各包头数据对应的初始QoS等级进行更新,得到各包头数据对应的新QoS等级;
所述获取单元,用于根据可选的包头数据所对应的新QoS等级,获取各可选的包头数据中新QoS等级最低的包头数据。
12.根据权利要求7所述的多核处理器,其特征在于,
该多核处理器还包括:
网口,用于根据包头数据所对应的数据包是否需要执行IP报文分片重组操作、是否需要执行深度包解析操作,以及包头数据所对应的数据包是否是Internet协议安全类型的数据包,确定所述包头数据的预定访问次数,将所述包头数据的预定访问次数发送給所述系统缓存。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/072932 WO2011103828A2 (zh) | 2011-04-18 | 2011-04-18 | 系统缓存中数据替换方法及多核通信处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102439574A CN102439574A (zh) | 2012-05-02 |
CN102439574B true CN102439574B (zh) | 2015-01-28 |
Family
ID=44507273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180000402.6A Active CN102439574B (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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126121A (zh) * | 2016-06-22 | 2016-11-16 | 广东睿江云计算股份有限公司 | 一种基于qos的云主机磁盘资源保障方法及系统 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521162B (zh) * | 2011-11-30 | 2014-12-31 | 华为技术有限公司 | 用于缓存数据处理的方法和装置 |
US9325639B2 (en) | 2013-12-17 | 2016-04-26 | At&T Intellectual Property I, L.P. | Hierarchical caching system for lossless network packet capture applications |
CN104850508B (zh) * | 2015-04-09 | 2018-02-09 | 深圳大学 | 基于数据局部性的访存方法 |
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 | 华为技术有限公司 | 处理报文分片的方法、装置和系统 |
US11068544B2 (en) | 2018-07-31 | 2021-07-20 | Marvell Asia Pte, Ltd. | Systems and methods for generating metadata describing unstructured data objects at the storage edge |
CN112350957B (zh) * | 2019-08-09 | 2024-06-07 | 中兴通讯股份有限公司 | 一种网络报文发送的方法、装置和网络处理器 |
CN112866308B (zh) * | 2019-11-12 | 2023-03-10 | 华为技术有限公司 | 一种数据重组的方法以及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941952A (zh) * | 2005-09-30 | 2007-04-04 | 华为技术有限公司 | 一种应用业务的媒体数据缓存方法及系统 |
CN101232464A (zh) * | 2008-02-28 | 2008-07-30 | 清华大学 | 基于时间权参数的p2p实时流媒体缓存替换方法 |
Family Cites Families (4)
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 |
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 |
-
2011
- 2011-04-18 WO PCT/CN2011/072932 patent/WO2011103828A2/zh active Application Filing
- 2011-04-18 CN CN201180000402.6A patent/CN102439574B/zh active Active
-
2013
- 2013-10-18 US US14/057,171 patent/US9304939B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941952A (zh) * | 2005-09-30 | 2007-04-04 | 华为技术有限公司 | 一种应用业务的媒体数据缓存方法及系统 |
CN101232464A (zh) * | 2008-02-28 | 2008-07-30 | 清华大学 | 基于时间权参数的p2p实时流媒体缓存替换方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126121A (zh) * | 2016-06-22 | 2016-11-16 | 广东睿江云计算股份有限公司 | 一种基于qos的云主机磁盘资源保障方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US9304939B2 (en) | 2016-04-05 |
US20140047188A1 (en) | 2014-02-13 |
WO2011103828A2 (zh) | 2011-09-01 |
WO2011103828A3 (zh) | 2012-03-22 |
CN102439574A (zh) | 2012-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102439574B (zh) | 系统缓存中数据替换方法及多核通信处理器 | |
US10938581B2 (en) | Accessing composite data structures in tiered storage across network nodes | |
CN101650698B (zh) | 直接存储器访问的实现方法 | |
US7000048B2 (en) | Apparatus and method for parallel processing of network data on a single processing thread | |
US20160132541A1 (en) | Efficient implementations for mapreduce systems | |
US9058357B1 (en) | Strategies for prefetching database blocks | |
US20150067695A1 (en) | Information processing system and graph processing method | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
WO2015110046A1 (zh) | Cache的管理方法及装置 | |
WO2020199760A1 (zh) | 数据存储方法、存储器和服务器 | |
CN112632069B (zh) | 哈希表数据存储管理方法、装置、介质和电子设备 | |
US7457845B2 (en) | Method and system for TCP/IP using generic buffers for non-posting TCP applications | |
US9690713B1 (en) | Systems and methods for effectively interacting with a flash memory | |
JP2009193430A (ja) | 通信制御装置、情報処理装置およびプログラム | |
EP2972911B1 (en) | Apparatus and methods for a distributed memory system including memory nodes | |
WO2014168025A1 (ja) | データ転送装置、データ転送システム、データ圧縮転送方法、およびプログラム | |
CN115129621B (zh) | 一种内存管理方法、设备、介质及内存管理模块 | |
CN110059024B (zh) | 一种内存空间数据缓存方法及装置 | |
US11176064B2 (en) | Methods and apparatus for reduced overhead data transfer with a shared ring buffer | |
CN109743350B (zh) | 一种科学计算应用影像区交换通信模式的卸载实现方法 | |
CN107832121B (zh) | 一种应用于分布式串行长事务的并发控制方法 | |
CN111694777B (zh) | 基于PCIe接口的DMA传输方法 | |
CN108228323A (zh) | 基于数据本地性的Hadoop任务调度方法及装置 | |
US20030217232A1 (en) | Data transfer unit with support for multiple coherency granules | |
CN116483739B (zh) | 基于hash计算的KV对快速写架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |