CN107783911A - 一种数据过滤方法及终端设备 - Google Patents
一种数据过滤方法及终端设备 Download PDFInfo
- Publication number
- CN107783911A CN107783911A CN201610797468.7A CN201610797468A CN107783911A CN 107783911 A CN107783911 A CN 107783911A CN 201610797468 A CN201610797468 A CN 201610797468A CN 107783911 A CN107783911 A CN 107783911A
- Authority
- CN
- China
- Prior art keywords
- data
- return
- value
- shared
- terminal device
- 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
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种数据过滤方法及终端设备,该方法应用于终端设备,终端设备设置有至少一个处理器,每个处理器包括共享高速缓存和至少两个内核,共享高速缓存被该至少两个内核所共享,包括:接收第一数据;判断第一数据是否是预取返回的数据;当第一数据是预取返回的数据时,判断第二数据是否是共享数据,第二数据是将要被第一数据替换的数据;当第二数据是共享数据时,获取第一数值,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量;当第一数值大于或等于第一预设值时,丢弃第一数据。本发明实施例,可以提高系统性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据过滤方法及终端设备。
背景技术
随着计算机技术的不断发展,存储时延已成为限制多内核系统性能的一个重要因素。为了解决上述问题,业界提出数据预取机制,即通过软件指令或硬件数据预取引擎,将数据提前取到高速缓存或专用的预取缓存。在多内核处理器系统中,可能同时运行着多个线程,这些线程间通常会共享末级高速缓存(Last level cache,LLC)和片外存储器。为了维持处于LLC和片外存储器中共享数据的一致性,如果一个正在被共享的数据块被来自于预取请求的数据替换,这个共享数据块的所有共享者都需要对该数据块在其本地的备份做无效化处理。因此,数据预取请求会导致线程间的数据无效化,以及导致缓存缺失率增加,以致降低了系统性能。
发明内容
本发明实施例公开了一种数据过滤方法及终端设备,用于提高系统性能。
第一方面公开一种数据过滤方法,该方法应用于终端设备,终端设备设置有至少一个处理器,每个处理器可以包括共享高速缓存和至少两个内核,共享高速缓存被这至少两个内核所共享,接收第一数据,判断第一数据是否是预取返回的数据,当第一数据是预取返回的数据时,判断第二数据是否是共享数据,当第二数据是共享数据时,获取第一数值,当第一数值大于或等于第一预设值时,丢弃第一数据。其中,第二数据是将要被第一数据替换的数据,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量。当接收的数据是预取返回的数据,且将要被替换的数据是共享数据时,将根据上一采样周期采样的预取返回的数据中未被使用的数据的数量来确定是否过滤预取返回的数据,当采样的预取返回的数据中未被使用的数据的数量大于或等于一个阈值时才过滤预取返回的数据,而不是盲目的过滤所有预取返回的数据,也不是所有的预取返回的数据均不过滤,因此,可以合理的对预取返回的数据进行处理,从而可以提高系统性能。
在一个实施例中,当第一数值小于第一预设值时,获取第二数值,当第二数值大于或等于第二预设值时,获取第三数值,当第三数值小于第三预设值时,丢弃第一数据。其中,第二数值是与当前采样周期相邻的上一采样周期统计的被预取返回的数据替换的共享数据被替换后被访问的数据的数量,第三数值是与当前采样周期相邻的上一采样周期中预取返回的数据中被使用的数据的数量与预取返回的数据的总数量的比值。当上一采样周期中采样的预取返回的数据中未被使用的数据的数量小于一个阈值时,先考虑上一采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量,当被预取返回的数据替换的共享数据被替换后被访问的数据的数量大于或等于另一阈值时,考虑上一采样周期中预取返回的数据的使用概率,当使用概率小于又一阈值时,才过滤预取返回的数据,而不是盲目的过滤所有预取返回的数据,也不是所有的预取返回的数据均不过滤,因此,可以合理的对预取返回的数据进行处理,从而可以提高系统性能。
在一个实施例中,当第二数值小于第二预设值,或第三数值大于或等于第三预设值时,使用第一数据替换第二数据。当上一采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量小于另一阈值,或者上一采样周期中预取返回的数据的使用概率大于或等于又一阈值时,将不过滤预取返回的数据,而不是盲目的过滤所有预取返回的数据,也不是所有的预取返回的数据均不过滤,因此,可以合理的对预取返回的数据进行处理,从而可以提高系统性能。
在一个实施例中,根据缓存块被替换的次数确定采样周期,缓存块是高速缓存中用于存储数据的最小单位,以便根据采样周期对预取返回的数据进行处理。
在一个实施例中,统计当前采样周期中预取返回的数据的数量,统计当前采样周期中预取返回的数据中被使用的数据的数量,统计当前采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量,以便在下一采样周期使用这些统计的数值对下一采样周期预取返回的数据进行处理,从而可以提高系统性能。
第二方面公开一种终端设备,该终端设备包括用于执行第一方面或第一方面的任一种可能实现方式所提供的数据过滤方法的单元。
第三方面公开一种终端设备,该终端设备包括至少一个处理器和内存,每个所述处理器包括预取过滤器、共享高速缓存和至少两个内核,所述共享高速缓存被所述至少两个内核所共享,其中:
所述内存,用于存储数据;
每个所述处理器通过内存总线与所述内存连接,所述共享高速缓存用于缓存数据,所述内核用于:
接收第一数据;
判断所述第一数据是否是预取返回的数据;
当所述第一数据是预取返回的数据时,将所述第一数据发送给所述预取过滤器;
所述预取过滤器用于:
判断第二数据是否是共享数据中,所述第二数据是将要被所述第一数据替换的数据;
当所述第二数据是共享数据时,获取第一数值,所述第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量;
当所述第一数值大于或等于第一预设值时,丢弃所述第一数据。
第四方面公开一种可读存储介质,该可读存储介质存储了终端设备用于执行第一方面或第一方面的任一种可能实现方式所公开的数据过滤方法的程序代码。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种终端设备的结构示意图;
图2是本发明实施例公开的另一种终端设备的结构示意图;
图3是本发明实施例公开的又一种终端设备的结构示意图;
图4是本发明实施例公开的一种数据过滤方法的流程示意图;
图5是本发明实施例公开的另一种数据过滤方法的流程示意图;
图6是本发明实施例公开的又一种终端设备的结构示意图;
图7是本发明实施例公开的一种二级共享高速缓存的示意图;
图8是本发明实施例公开的一种一级数据高速缓存的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据过滤方法及终端设备,用于提高系统性能。以下分别进行详细说明。
为了更好地理解本发明实施例,下面先对本发明实施例的应用场景进行描述。在本发明实施例中,数据预取是通过硬件数据预取引擎来实现的。终端设备设置有内存和至少一个中央处理器(Central Processing Unit,CPU),每个CPU中设置有至少两个内核、至少一个私有高速缓存、共享高速缓存、数据预取引擎和预取过滤器。每个私有高速缓存被一个内核所私有,即每个私有高速缓存只能被一个内核使用。共享高速缓存被至少两个内核所共享,即这至少两个内核可以共同使用共享高速缓存,共享高速缓存中的一个缓存块(Cache line)可以被一个内核独占,也可以被多个内核共享,当这个缓存块被至少两个内核共享,即存储在这个缓存块中的数据可以被这至少两个内核使用时,存储在这个缓存块中的数据即共享数据。数据预取引擎用于管理数据的预取。预取过滤器用于对预取返回的数据进行处理。
请参阅图1,图1是本发明实施例公开的一种终端设备的结构示意图。如图1所示,该终端设备可以包括至少一个处理器101和内存102,每个处理器101包括预取过滤器1011、共享高速缓存1012和至少两个内核1013,共享高速缓存1012被至少两个内核1013所共享,其中:
内存102,用于存储数据;
每个处理器101通过内存总线与内存102连接,共享高速缓存1012用于缓存数据,内核1013用于:
接收第一数据;
判断第一数据是否是预取返回的数据;
当第一数据是预取返回的数据时,将第一数据发送给预取过滤器1011;
预取过滤器1011用于:
判断第二数据是否是共享数据,第二数据是将要被第一数据替换的数据;
当第二数据是共享数据时,获取第一数值,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量;
当第一数值大于或等于第一预设值时,丢弃第一数据。
作为一种可能的实施方式,预取过滤器1011还用于:
当第一数值小于第一预设值时,获取第二数值,第二数值是与当前采样周期相邻的上一采样周期统计的被预取返回的数据替换的共享数据被替换后被访问的数据的数量;
当第二数值大于或等于第二预设值时,获取第三数值,第三数值是与当前采样周期相邻的上一采样周期中预取返回的数据中被使用的数据的数量与预取返回的数据的总数量的比值;
当第三数值小于第三预设值时,丢弃第一数据。
作为一种可能的实施方式,预取过滤器1011还用于:
当第二数值小于第二预设值,或第三数值大于或等于第三预设值时,将第一数据发送给共享高速缓存1012;
共享高速缓存1012,还用于使用第一数据替换第二数据。
作为一种可能的实施方式,内核1013,还用于根据缓存块被替换的次数确定采样周期,缓存块是高速缓存中用于存储数据的最小单位。
作为一种可能的实施方式,每个处理器101还包括采样器1014,采样器1014用于:
统计当前采样周期中预取返回的数据的数量,以及统计当前采样周期中预取返回的数据中被使用的数据的数量;
统计当前采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量。
在图1所描述的终端设备中,接收第一数据,当第一数据是预取返回的数据时,判断将要被第一数据替换的第二数据是否是共享数据,当第二数据是共享数据时,获取第一数值,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量,当第一数值大于或等于第一预设值时,丢弃第一数据,没有盲目的过滤所有预取返回的数据,也不是所有的预取返回的数据均不过滤,因此,可以合理的对预取返回的数据进行处理,从而可以提高系统性能。
请参阅图2,图2是本发明实施例公开的另一种终端设备的结构示意图。如图2所示,该终端设备可以包括:
接收单元201,用于接收第一数据;
第一判断单元202,用于判断接收单元201接收的第一数据是否是预取返回的数据;
第二判断单元203,用于当第一判断单元202的判断结果为第一数据是预取返回的数据时,判断第二数据是否是共享数据,第二数据是将要被第一数据替换的数据;
获取单元204,用于当第二判断单元203的判断结果为第二数据是共享数据时,获取第一数值,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量;
丢弃单元205,用于当获取单元204获取的第一数值大于或等于第一预设值时,丢弃接收单元201接收的第一数据。
在图2所描述的终端设备中,接收第一数据,当第一数据是预取返回的数据时,判断将要被第一数据替换的第二数据是否是共享数据,当第二数据是共享数据时,获取第一数值,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量,当第一数值大于或等于第一预设值时,丢弃第一数据,没有盲目的过滤所有预取返回的数据,也不是所有的预取返回的数据均不过滤,因此,可以合理的对预取返回的数据进行处理,从而可以提高系统性能。
请参阅图3,图3是本发明实施例公开的又一种终端设备的结构示意图。图3所示的终端设备是由图2所示的终端设备优化得到的。其中:
获取单元204,还用于当第一数值小于第一预设值时,获取第二数值,第二数值是与当前采样周期相邻的上一采样周期统计的被预取返回的数据替换的共享数据被替换后被访问的数据的数量;
获取单元204,还用于当第二数值大于或等于第二预设值时,获取第三数值,第三数值是与当前采样周期相邻的上一采样周期中预取返回的数据中被使用的数据的数量与预取返回的数据的总数量的比值;
丢弃单元205,还用于当获取单元204获取的第三数值小于第三预设值时,丢弃第一数据。
作为一种可能的实施方式,该终端设备还可以包括:
替换单元206,用于当获取单元204获取的第二数值小于第二预设值,或获取单元204获取的第三数值大于或等于第三预设值时,使用接收单元201接收的第一数据替换第二数据。
具体地,替换单元206,用于当第一判断单元201的判断结果为第一数据不是预取返回的数据,或第二判断单元203的判断结果为第二数据不是共享数据,或获取单元204获取的第二数值小于第二预设值,或获取单元204获取的第三数值大于或等于第三预设值时,使用接收单元201接收的第一数据替换第二数据。
作为一种可能的实施方式,该终端设备还可以包括:
确定单元207,用于根据缓存块被替换的次数确定采样周期,缓存块是高速缓存中用于存储数据的最小单位。
具体地,获取单元204,用于获取第一数值,第一数值是与确定单元207确定的当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量。
作为一种可能的实施方式,该终端设备还可以包括:
统计单元208,用于统计当前采样周期中预取返回的数据的数量,以及统计当前采样周期中预取返回的数据中被使用的数据的数量;
统计单元208,还用于统计当前采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量。
作为一种可能的实施方式,统计单元208,还用于统计上一采样周期中预取返回的数据的数量,以及统计上一采样周期中预取返回的数据中被使用的数据的数量;
具体地,获取单元204,用于获取第一数值,第一数值是统计单元208在与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量。
在图3所描述的终端设备中,接收第一数据,当第一数据是预取返回的数据时,判断将要被第一数据替换的第二数据是否是共享数据,当第二数据是共享数据时,获取第一数值,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量,当第一数值大于或等于第一预设值时,丢弃第一数据,没有盲目的过滤所有预取返回的数据,也不是所有的预取返回的数据均不过滤,因此,可以合理的对预取返回的数据进行处理,从而可以提高系统性能。
请参阅图4,图4是本发明实施例公开的一种数据过滤方法的流程示意图。如图4所示,该数据过滤方法可以包括以下步骤。
401、接收第一数据,并判断第一数据是否是预取返回的数据,当第一数据是预取返回的数据时,执行步骤402,当第一数据不是预取返回的数据时,执行步骤405。
本实施例中,终端设备接收到第一数据时,将判断第一数据是否是预取返回的数据,即判断第一数据是不是执行预取请求后返回的结果,当第一数据是执行预取请求后返回的结果时,表明第一数据是预取返回的数据,将执行步骤402。当第一数据不是执行预取请求后返回的结果时,表明第一数据不是预取返回的数据,将执行步骤405。
402、判断将要被第一数据替换的第二数据是否是共享数据,当第二数据是共享数据时,执行步骤403,当第二数据不是共享数据时,执行步骤405。
本实施例中,当第一数据是预取返回的数据时,将继续判断将要被第一数据替换的第二数据是否是共享数据,即判断将要被第一数据替换的第二数据是否被存储在被至少两个内核共享的共享高速缓存中的缓存块中,当第二数据被存储在被至少两个内核共享的共享高速缓存中的缓存块中时,表明第二数据是共享数据,将执行步骤403。当第二数据未被存储在被至少两个内核共享的共享高速缓存中的缓存块中时,表明第二数据不是共享数据,将执行步骤405。
403、获取第一数值。
本实施例中,当第二数据是共享数据时,将获取第一数据,即获取与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量。
404、当第一数值大于或等于第一预设值时,丢弃第一数据。
本实施例中,当第一数值大于或等于第一预设值时,表明预取会造成污染,将阻止预取返回的数据进行缓存块替换,即对预取返回的数据进行过滤,也即阻止第一数据替换第二数据,也即是丢弃第一数据。
405、使用第一数据替换第二数据。
本实施例中,当第一数据不是预取返回的数据,或者第二数据不是共享数据时,使用第一数据替换第二数据,即第一数据进行缓存块替换。
在图4所描述的数据过滤方法中,接收第一数据,当第一数据是预取返回的数据时,判断将要被第一数据替换的第二数据是否是共享数据,当第二数据是共享数据时,获取第一数值,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量,当第一数值大于或等于第一预设值时,丢弃第一数据,没有盲目的过滤所有预取返回的数据,也不是所有的预取返回的数据均不过滤,因此,可以合理的对预取返回的数据进行处理,从而可以提高系统性能。
请参阅图5,图5是本发明实施例公开的另一种数据过滤方法的流程示意图。如图5所示,该数据过滤方法可以包括以下步骤。
501、根据缓存块被替换的次数确定采样周期。
本实施例中,缓存块是高速缓存中用于存储数据的最小单位。由于缓存块替换的频率实质上反应了缓存块竞争的激烈程度,因此,可以根据共享高速缓存中缓存块被替换的次数来确定采样周期,以便能够有效地反应共享资源竞争的情况。例如:可以将共享高速缓存中缓存块被替换1024次确定为一个采样周期。
502、统计当前采样周期中预取返回的数据的数量,统计当前采样周期中预取返回的数据中被使用的数据的数量,以及统计当前采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量。
本实施例中,在当前采样周期中,可以统计当前采样周期中预取返回的数据的数量,统计当前采样周期中预取返回的数据中被使用的数据的数量,以及统计当前采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量,这些数据可以在与当前采样周期相邻的下一采样周期中进行预取返回的数据处理时进行调用。
举例说明,请参阅图6,图6是本发明实施例公开的又一种终端设备的结构示意图。如图6所示,该终端设备可以包括处理器、一级数据高速缓存、二级共享高速缓存、预取过滤器、存储器和采样器。请参阅图7,图7是本发明实施例公开的一种二级共享高速缓存的示意图。如图7所示,二级共享高速缓存中由Set Index索引缓存块的行,由Tag(标签)索引Cacheline的列,一个Set Index和一个Tag可以唯一确定一个Cache line。为了统计预取返回的数据的情况,可以为二级共享高速缓存中的每个Tag增加两个额外的标志位Pr和PA。Pr可以标识该Tag位对应的Cache line中存储的数据是否是预取返回的数据,当Cache line中存储的数据是预取返回的数据时,Pr位被置1,当Cache line中存储的数据不是预取返回的数据时,Pr位被置0。PA可以标识该Tag位对应的Cache line中存储的数据是否被访问过,PA的初始值设置为0,表示Cache line中存储的数据未被访问过,当Cache line中存储的数据被访问过时,PA位置将被置1。统计当前采样周期中预取返回的数据的数量,即统计Pr位为1的Tag的数量。统计当前采样周期中预取返回的数据中被使用的数据的数量,即统计PA位为1的Tag的数量。
举例说明,请参阅图8,图8是本发明实施例公开的一种一级数据高速缓存的示意图。如图8所示,为了统计预取返回的数据对被替换的共享数据的影响情况,为每个Set增加多个(图中示意出了2个)额外的Tag位,这些额外的Tag位只包括Tag信息,并不指向具体的Cache line,将这些Tag位称为影子Tag。当发生预取返回的数据替换共享数据的情况时,将被替换的共享数据的Tag信息保存在影子Tag中。当在后续调用数据发生缺失时,将发生缺失的数据的地址与影子Tag相比较,当两者相匹配时,表明该数据的缺失是由于预取返回的数据替换共享数据导致的。统计当前采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量,即统计匹配的影子Tag的数量。
503、接收第一数据,并判断第一数据是否是预取返回的数据,当第一数据是预取返回的数据时,执行步骤504,当第一数据不是预取返回的数据时,执行步骤509。
本实施例中,终端设备接收到第一数据时,将判断第一数据是否是预取返回的数据,即判断第一数据是不是执行预取请求后返回的结果,当第一数据是执行预取请求后返回的结果时,表明第一数据是预取返回的数据,将执行步骤504。当第一数据不是执行预取请求后返回的结果时,表明第一数据不是预取返回的数据,将执行步骤509。
504、判断将要被第一数据替换的第二数据是否是共享数据,当第二数据是共享数据时,执行步骤505,当第二数据不是共享数据时,执行步骤509。
本实施例中,当第一数据是预取返回的数据时,将继续判断将要被第一数据替换的第二数据是否是共享数据,即判断将要被第一数据替换的第二数据是否被存储在被至少两个内核共享的共享高速缓存中的缓存块中,当第二数据被存储在被至少两个内核共享的共享高速缓存中的缓存块中时,表明第二数据是共享数据,将执行步骤505。当第二数据未被存储在被至少两个内核共享的共享高速缓存中的缓存块中时,表明第二数据不是共享数据,将执行步骤509。
505、获取第一数值。
本实施例中,当第二数据是共享数据时,将获取第一数据,即获取与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量。
506、当第一数值小于第一预设值时,获取第二数值。
本实施例中,当第一数值小于第一预设值时,表明预取不会造成污染,将获取第二数据,第二数值是与当前采样周期相邻的上一采样周期统计的被预取返回的数据替换的共享数据被替换后被访问的数据的数量。
507、当第二数值大于或等于第二预设值时,获取第三数值。
本实施例中,当第二数值大于或等于第二预设值时,表明预取返回的数据造成了危害,将获取第三数值,第三数值是与当前采样周期相邻的上一采样周期中预取返回的数据中被使用的数据的数量与预取返回的数据的总数量的比值。
508、当第一数值大于或等于第一预设值,或第三数值小于第三预设值时,丢弃第一数据。
本实施例中,当第一数值大于或等于第一预设值时,表明预取会造成污染,将阻止预取返回的数据进行缓存块替换,即对预取返回的数据进行过滤,也即阻止第一数据替换第二数据,也即是丢弃第一数据。当第三数值小于第三预设值时,表明预取返回的数据的使用率较低,将丢弃第一数据。
509、使用第一数据替换第二数据。
本实施例中,当第一数据不是预取返回的数据,或者第二数据不是共享数据,或者第二数值小于第二预设值,或者第三数值大于或等于所述第三预设值时,使用第一数据替换第二数据,即第一数据进行缓存块替换。
在图5所描述的数据过滤方法中,接收第一数据,当第一数据是预取返回的数据时,判断将要被第一数据替换的第二数据是否是共享数据,当第二数据是共享数据时,获取第一数值,第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量,当第一数值大于或等于第一预设值时,丢弃第一数据,没有盲目的过滤所有预取返回的数据,也不是所有的预取返回的数据均不过滤,因此,可以合理的对预取返回的数据进行处理,从而可以提高系统性能。
本发明实施例还公开了一种可读存储介质,该可读存储介质存储了终端设备用于执行图4或图5所示的数据过滤方法的程序代码。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,ROM)、随机存取器(random accessmemory,RAM)、磁盘或光盘等。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上对本发明实施例公开的数据过滤方法及终端设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据过滤方法,其特征在于,所述方法应用于终端设备,所述终端设备设置有至少一个处理器,每个所述处理器包括共享高速缓存和至少两个内核,所述共享高速缓存被所述至少两个内核所共享,包括:
接收第一数据;
判断所述第一数据是否是预取返回的数据;
当所述第一数据是预取返回的数据时,判断第二数据是否是共享数据,所述第二数据是将要被所述第一数据替换的数据;
当所述第二数据是共享数据时,获取第一数值,所述第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量;
当所述第一数值大于或等于第一预设值时,丢弃所述第一数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一数值小于所述第一预设值时,获取第二数值,所述第二数值是与当前采样周期相邻的上一采样周期统计的被预取返回的数据替换的共享数据被替换后被访问的数据的数量;
当所述第二数值大于或等于第二预设值时,获取第三数值,所述第三数值是与当前采样周期相邻的上一采样周期中预取返回的数据中被使用的数据的数量与预取返回的数据的总数量的比值;
当所述第三数值小于第三预设值时,丢弃所述第一数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述第二数值小于所述第二预设值,或所述第三数值大于或等于所述第三预设值时,使用所述第一数据替换所述第二数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
根据缓存块被替换的次数确定采样周期,所述缓存块是高速缓存中用于存储数据的最小单位。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
统计当前采样周期中预取返回的数据的数量,以及统计当前采样周期中预取返回的数据中被使用的数据的数量;
统计当前采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量。
6.一种终端设备,其特征在于,所述终端设备设置有至少一个处理器,每个所述处理器包括共享高速缓存和至少两个内核,所述共享高速缓存被所述至少两个内核所共享,包括:
接收单元,用于接收第一数据;
第一判断单元,用于判断所述接收单元接收的第一数据是否是预取返回的数据;
第二判断单元,用于当所述第一判断单元的判断结果为所述第一数据是预取返回的数据时,判断第二数据是否是共享数据,所述第二数据是将要被所述第一数据替换的数据;
获取单元,用于当所述第二判断单元的判断结果为所述第二数据是共享数据时,获取第一数值,所述第一数值是与当前采样周期相邻的上一采样周期统计的预取返回的数据中未被使用的数据的数量;
丢弃单元,用于当所述获取单元获取的所述第一数值大于或等于第一预设值时,丢弃所述接收单元接收的第一数据。
7.根据权利要求6所述的终端设备,其特征在于,所述获取单元,还用于当所述第一数值小于所述第一预设值时,获取第二数值,所述第二数值是与当前采样周期相邻的上一采样周期统计的被预取返回的数据替换的共享数据被替换后被访问的数据的数量;
所述获取单元,还用于当所述第二数值大于或等于第二预设值时,获取第三数值,所述第三数值是与当前采样周期相邻的上一采样周期中预取返回的数据中被使用的数据的数量与预取返回的数据的总数量的比值;
所述丢弃单元,还用于当所述获取单元获取的所述第三数值小于第三预设值时,丢弃所述第一数据。
8.根据权利要求7所述的终端设备,其特征在于,所述终端设备还包括:
替换单元,用于当所述获取单元获取的所述第二数值小于所述第二预设值,或所述获取单元获取的所述第三数值大于或等于所述第三预设值时,使用所述接收单元接收的所述第一数据替换所述第二数据。
9.根据权利要求6-8任一项所述的终端设备,其特征在于,所述终端设备还包括:
确定单元,用于根据缓存块被替换的次数确定采样周期,所述缓存块是高速缓存中用于存储数据的最小单位。
10.根据权利要求9所述的终端设备,其特征在于,所述终端设备还包括:
统计单元,用于统计当前采样周期中预取返回的数据的数量,以及统计当前采样周期中预取返回的数据中被使用的数据的数量;
所述统计单元,还用于统计当前采样周期中被预取返回的数据替换的共享数据被替换后被访问的数据的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610797468.7A CN107783911B (zh) | 2016-08-31 | 2016-08-31 | 一种数据过滤方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610797468.7A CN107783911B (zh) | 2016-08-31 | 2016-08-31 | 一种数据过滤方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107783911A true CN107783911A (zh) | 2018-03-09 |
CN107783911B CN107783911B (zh) | 2021-06-08 |
Family
ID=61451767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610797468.7A Active CN107783911B (zh) | 2016-08-31 | 2016-08-31 | 一种数据过滤方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107783911B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897701A (zh) * | 2018-06-20 | 2018-11-27 | 珠海市杰理科技股份有限公司 | cache存储架构 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689147A (zh) * | 2007-07-10 | 2010-03-31 | 高通股份有限公司 | 数据预取调节 |
CN102023931A (zh) * | 2010-12-17 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种自适应缓存预取方法 |
CN102707966A (zh) * | 2012-04-12 | 2012-10-03 | 腾讯科技(深圳)有限公司 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
CN103235764A (zh) * | 2013-04-11 | 2013-08-07 | 浙江大学 | 线程感知多核数据预取自调方法 |
CN103250141A (zh) * | 2010-12-01 | 2013-08-14 | 国际商业机器公司 | 联网的客户端-服务器体系结构中的预读处理 |
CN104063330A (zh) * | 2014-06-25 | 2014-09-24 | 华为技术有限公司 | 数据预取方法及装置 |
US20150019820A1 (en) * | 2013-03-05 | 2015-01-15 | International Business Machines Corporation | Prefetching for a parent core in a multi-core chip |
CN104981787A (zh) * | 2013-03-05 | 2015-10-14 | 国际商业机器公司 | 具有母核和侦察核的芯片的数据预取 |
CN105279105A (zh) * | 2014-07-17 | 2016-01-27 | 三星电子株式会社 | 用于调整预取流的程度的自适应机制 |
CN105786717A (zh) * | 2016-03-22 | 2016-07-20 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
-
2016
- 2016-08-31 CN CN201610797468.7A patent/CN107783911B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689147A (zh) * | 2007-07-10 | 2010-03-31 | 高通股份有限公司 | 数据预取调节 |
CN103250141A (zh) * | 2010-12-01 | 2013-08-14 | 国际商业机器公司 | 联网的客户端-服务器体系结构中的预读处理 |
CN102023931A (zh) * | 2010-12-17 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种自适应缓存预取方法 |
CN102707966A (zh) * | 2012-04-12 | 2012-10-03 | 腾讯科技(深圳)有限公司 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
US20150019820A1 (en) * | 2013-03-05 | 2015-01-15 | International Business Machines Corporation | Prefetching for a parent core in a multi-core chip |
CN104981787A (zh) * | 2013-03-05 | 2015-10-14 | 国际商业机器公司 | 具有母核和侦察核的芯片的数据预取 |
CN103235764A (zh) * | 2013-04-11 | 2013-08-07 | 浙江大学 | 线程感知多核数据预取自调方法 |
CN104063330A (zh) * | 2014-06-25 | 2014-09-24 | 华为技术有限公司 | 数据预取方法及装置 |
CN105279105A (zh) * | 2014-07-17 | 2016-01-27 | 三星电子株式会社 | 用于调整预取流的程度的自适应机制 |
CN105786717A (zh) * | 2016-03-22 | 2016-07-20 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
Non-Patent Citations (1)
Title |
---|
于绩洋等: ""片上光电互连的多核系统仿真方法"", 《浙江大学学报(工学版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897701A (zh) * | 2018-06-20 | 2018-11-27 | 珠海市杰理科技股份有限公司 | cache存储架构 |
CN108897701B (zh) * | 2018-06-20 | 2020-07-14 | 珠海市杰理科技股份有限公司 | cache存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107783911B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9164676B2 (en) | Storing multi-stream non-linear access patterns in a flash based file-system | |
KR100974024B1 (ko) | 내장형 디지털 신호 처리기용 캐시 메모리 시스템 및 캐시제어기 | |
US8606994B2 (en) | Method for adapting performance sensitive operations to various levels of machine loads | |
WO2017211240A1 (zh) | 一种处理器芯片以及指令缓存的预取方法 | |
US8301836B2 (en) | Methods for determining alias offset of a cache memory | |
US11016695B2 (en) | Methods and apparatus to perform memory copy operations | |
US8285931B2 (en) | Methods for reducing cache memory pollution during parity calculations of RAID data | |
US9792228B2 (en) | Enhancing lifetime of non-volatile cache by injecting random replacement policy | |
CN107562806B (zh) | 混合内存文件系统的自适应感知加速方法及系统 | |
EP1304619A1 (en) | Cache memory operation | |
CN112506823A (zh) | 一种fpga数据读写方法、装置、设备及可读存储介质 | |
US8219751B2 (en) | Methods for optimizing performance of transient data calculations | |
CN112612728B (zh) | 缓存管理方法及装置、设备 | |
JP7038656B2 (ja) | キャッシュへのアクセス | |
CN107783911A (zh) | 一种数据过滤方法及终端设备 | |
CN110737475B (zh) | 一种指令缓存装填过滤装置 | |
CN116820765A (zh) | 内存延时的确定方法、装置、电子设备和介质 | |
CN111736900A (zh) | 一种并行双通道的cache设计方法和装置 | |
CN111831587A (zh) | 数据写入方法、装置和电子设备 | |
CN107861819B (zh) | 一种缓存组负载均衡的方法、装置和计算机可读存储介质 | |
CN115563031A (zh) | 指令高速缓存的预取控制方法、装置、芯片及存储介质 | |
CN1165000C (zh) | 动态索引的微处理器高速缓存方法 | |
US9767043B2 (en) | Enhancing lifetime of non-volatile cache by reducing intra-block write variation | |
Kim et al. | Comparison of hybrid and hierarchical swap architectures in Android by using NVM | |
CN110210232B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200422 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou Applicant before: Huawei Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |