带宽感知的动态高速缓存替换方法、装置、系统和介质转让专利
申请号 : CN201811623393.6
文献号 : CN109669882B
文献日 : 2021-03-09
发明人 : 张乾龙
申请人 : 贵州华芯通半导体技术有限公司
摘要 :
权利要求 :
1.一种在至少包括第一存储器和第二存储器的存储器系统中基于带宽感知的动态高速缓存替换方法,包括:
监控第一存储器的第一实时带宽和第二存储器的第二实时带宽,其中,所述存储器系统还包括高速缓存,所述高速缓存的每一个缓存行中包括:关于该缓存行中所缓存的数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信息;
将第一实时带宽与第二实时带宽的比值与预定阈值进行比较,以用更新的数据来替换所选择缓存行中缓存的数据,其中当第一实时带宽与第二实时带宽的比值小于或等于预定阈值时,根据第一状态信息来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据;
或者
当第一实时带宽与第二实时带宽的比值大于预定阈值时,根据第一状态信息和第二状态信息两者来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据,并且
其中,第一存储器是普通存储器,第二存储器是高带宽存储器。
2.如权利要求1所述的方法,当第一实时带宽与第二实时带宽的比值小于或等于预定阈值时,根据第一状态信息来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据包括:根据第一状态信息对所述高速缓存中的缓存行进行排序,选择次序最高或最低的一个缓存行,用更新的数据来替换所选择缓存行中所缓存的数据。
3.如权利要求1所述的方法,当第一实时带宽与第二实时带宽的比值大于预定阈值时,根据第一状态信息和第二状态信息两者来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据包括:根据第一状态信息对所述高速缓存中的缓存行进行排序,根据第二状态信息获得所述高速缓存中的多个缓存行,选择所述多个缓存行中根据第一状态信息排序的次序最高或最低的一个缓存行,用更新的数据来替换所选择缓存行中所缓存的数据。
4.如权利要求3所述的方法,其中所获得的所述多个缓存行的第二状态信息所包括的缓存行地址指向第二存储器。
5.如权利要求1所述的方法,其中第一状态信息包括关于所述缓存行中所缓存的数据的使用频率或访问频率的信息,或者包括关于所述缓存行中所缓存的数据的尺寸或访问延迟的信息。
6.如权利要求1所述的方法,其中第二状态信息是缓存行地址所指向的存储器的标识符。
7.如权利要求1所述的方法,还包括:当所述替换完成时,更新所述缓存行的第二状态信息。
8.一种在至少包括第一存储器和第二存储器的存储器系统中基于带宽感知的动态高速缓存替换方法,包括:
监控第一存储器和第二存储器之间的链路的实时带宽,其中,所述存储器系统还包括高速缓存,所述高速缓存的每一个缓存行中包括:关于该缓存行中所缓存的数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信息;
将所述实时带宽与预定阈值进行比较,以用更新的数据来替换所选择缓存行中缓存的数据,其中
当所述实时带宽小于或等于预定阈值时,根据第一状态信息来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据;或者当所述实时带宽大于预定阈值时,根据第一状态信息和第二状态信息两者来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据,并且其中,第一存储器是远程存储器,第二存储器是本地存储器。
9.如权利要求8所述的方法,其中,当所述实时带宽小于或等于预定阈值时,根据第一状态信息来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据包括:
根据第一状态信息对所述高速缓存中的缓存行进行排序,选择次序最高或最低的一个缓存行,用更新的数据来替换所选择缓存行中所缓存的数据。
10.如权利要求8所述的方法,其中,当所述实时带宽大于预定阈值时,根据第一状态信息和第二状态信息两者来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据包括:
根据第一状态信息对所述高速缓存中的缓存行进行排序,根据第二状态信息获得所述高速缓存中的多个缓存行,选择所述多个缓存行中根据第一状态信息排序的次序最高或最低的一个缓存行,用更新的数据来替换所选择缓存行中所缓存的数据。
11.如权利要求10所述的方法,其中所获得的所述多个缓存行的第二状态信息所包括的缓存行地址指向第二存储器。
12.如权利要求8所述的方法,其中第一状态信息包括关于所述缓存行中所缓存的数据的使用频率或访问频率的信息,或者包括关于所述缓存行中所缓存的数据的尺寸或访问延迟的信息。
13.如权利要求8所述的方法,其中第二状态信息是缓存行地址所指向的存储器的标识符。
14.如权利要求8所述的方法,还包括:当所述替换完成时,更新所述缓存行的第二状态信息。
15.一种存储器系统,包括:
多个存储器,所述多个存储器至少包括第一存储器和第二存储器;
高速缓存,所述高速缓存的每一个缓存行中包括:关于该缓存行中所缓存的数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信息;
中央处理单元,被配置为:
监控第一存储器的第一实时带宽和第二存储器的第二实时带宽;
将第一实时带宽与第二实时带宽的比值与预定阈值进行比较,以用更新的数据来替换所选择缓存行中缓存的数据,其中当第一实时带宽与第二实时带宽的比值小于或等于预定阈值时,根据第一状态信息来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据;
当第一实时带宽与第二实时带宽的比值大于预定阈值时,根据第一状态信息和第二状态信息两者来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据,并且
其中,第一存储器是普通存储器,第二存储器是高带宽存储器。
16.一种存储器系统,包括:
多个存储器,所述多个存储器至少包括第一存储器和第二存储器;
高速缓存,所述高速缓存的每一个缓存行中包括:关于该缓存行中所缓存的数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信息;
中央处理单元,被配置为:
监控第一存储器和第二存储器之间的链路的实时带宽;
将所述实时带宽与预定阈值进行比较,以用更新的数据来替换所选择缓存行中缓存的数据,其中
当所述实时带宽小于或等于预定阈值时,根据第一状态信息来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据;
当所述实时带宽大于预定阈值时,根据第一状态信息和第二状态信息两者来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据,并且其中,第一存储器是远程存储器,第二存储器是本地存储器。
17.一种其上记录有用于包括多个存储器的存储器系统中基于带宽感知的动态高速缓存替换的程序代码的非暂时性计算机可读记录介质,所述程序代码在由计算机处理器执行时执行如权利要求1-14中的任意一项所述的方法。
18.一种在至少包括第一存储器和第二存储器的存储器系统中基于带宽感知的动态高速缓存替换装置,包括:
监控模块,被配置为监控第一存储器的第一实时带宽和第二存储器的第二实时带宽,其中,所述存储器系统还包括高速缓存,所述高速缓存的每一个缓存行中包括:关于该缓存行中所缓存的数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信息;
比较模块,被配置为将第一实时带宽与第二实时带宽的比值与预定阈值进行比较,以用更新的数据来替换所选择缓存行中缓存的数据;
处理模块,被配置为当第一实时带宽与第二实时带宽的比值小于或等于预定阈值时,根据第一状态信息来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据;或者当第一实时带宽与第二实时带宽的比值大于预定阈值时,根据第一状态信息和第二状态信息两者来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据,并且其中,第一存储器是普通存储器,第二存储器是高带宽存储器。
19.一种在至少包括第一存储器和第二存储器的存储器系统中基于带宽感知的动态高速缓存替换装置,包括:
监控模块,被配置为监控第一存储器和第二存储器之间的链路的实时带宽,其中,所述存储器系统还包括高速缓存,所述高速缓存的每一个缓存行中包括:关于该缓存行中所缓存的数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信息;
比较模块,被配置为将所述实时带宽与预定阈值进行比较,以用更新的数据来替换所选择缓存行中缓存的数据;
处理模块,被配置为当所述实时带宽小于或等于预定阈值时,根据第一状态信息来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据;或者当所述实时带宽大于预定阈值时,根据第一状态信息和第二状态信息两者来选择所述高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据,并且其中,第一存储器是远程存储器,第二存储器是本地存储器。
说明书 :
带宽感知的动态高速缓存替换方法、装置、系统和介质
技术领域
背景技术
导致访问不同物理地址时的访存特点不同。目前,各大处理器设计厂商都使用了混合存储
器技术,例如,Intel推出的Knights Landing处理器集成了16G的片上MCDRAM(Multi-
Channel Dynamic random-access memory,多通道动态随机存取存储器)(HBM(high
bandwidth memory,高带宽存储器)的一种),Nvidia推出的芯片Pascal集成了片上HBM,AMD
推出的芯片Fiji片上集成了HBM。与普通的DRAM(Dynamic Random Access Memory,动态随
机存取存储器)相比,HBM的带宽要比普通的DRAM大4-5倍,因此,对于带宽需求较高的进程
适合运行在HBM上。而存储器异构系统是指诸如CC-NUMA(Cache Coherence Non-uniform
memory access,缓存一致性非均匀存储器访问)系统等非传统的存储器系统,其中往往也
存在多个不同带宽的存储器。
缓存行(cacheline)中的存储器地址所对应的存储器可能具有不同的带宽。例如,在混合存
储器系统中选择LRU算法作为高速缓存替换算法时,仅考虑了数据使用频率,有可能使所选
择的用于替换的缓存行对应带宽压力本身就很大的普通存储器,导致普通存储器的带宽占
用较高,而系统中HBM又没有得到有效利用,使得系统负载不均衡。同样地,单纯考虑带宽的
高速缓存替换算法可能使得缓存行中常用的数据被频繁替换,导致高速缓存替换性能下
降。
缓存行进行替换,即,替换尽量减少对存储系统的带宽压力,并且尽量争取负载均衡。
发明内容
器系统包括高速缓存,高速缓存的每一个缓存行中包括:关于该缓存行中所缓存的数据的
使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信
息;确定实时带宽是否满足预定条件以判断是否用更新的数据来替换所选择缓存行中缓存
的数据,其中,当实时带宽不满足预定条件时,根据第一状态信息来选择高速缓存中的缓存
行之一,用更新的数据来替换所选择缓存行中所缓存的数据;当实时带宽满足预定条件时,
根据第一状态信息和第二状态信息两者来选择高速缓存中的缓存行之一,用更新的数据来
替换所选择缓存行中所缓存的数据。
于普通存储器的高带宽存储器。高速缓存替换方法包括:监控本地存储器和远程存储器之
间的链路的实时带宽;当实时带宽小于或等于预定阈值时,根据第一状态信息对高速缓存
中的缓存行进行排序,选择次序最高或最低的一个缓存行,用更新的数据来替换所选择缓
存行中所缓存的数据;当实时带宽大于阈值时,根据第一状态信息对高速缓存中的缓存行
进行排序,根据第二状态信息获得其第二状态信息所包括的缓存行的地址指向本地存储器
的多个缓存行,选择多个缓存行中次序最高或最低的一个缓存行,用更新的数据来替换所
选择缓存行中所缓存的数据。
路通信。高速缓存替换方法包括:监控与普通存储器相对应的第一实时带宽和与高带宽存
储器相对应的第二实时带宽;当第一实时带宽与第二实时带宽的比值小于或等于预定阈值
时,根据第一状态信息对高速缓存中的缓存行进行排序,选择次序最高或最低的一个缓存
行,用更新的数据来替换所选择缓存行中所缓存的数据;当第一实时带宽与第二实时带宽
的比值大于预定阈值时,根据第一状态信息对高速缓存中的缓存行进行排序,根据第二状
态信息获得其第二状态信息所包括的缓存行的地址指向高带宽存储器的多个缓存行,选择
多个缓存行中次序最高或最低的一个缓存行,用更新的数据来替换所选择缓存行中所缓存
的数据。
延迟的信息。
的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信息;中央处理单
元,被配置为:监控与存储器系统相关的实时带宽;确定实时带宽是否满足预定条件以判断
是否用更新的数据来替换所选择缓存行中缓存的数据,其中,当实时带宽不满足预定条件
时,根据第一状态信息来选择高速缓存中的缓存行之一,用更新的数据来替换所选择缓存
行中所缓存的数据;当实时带宽满足预定条件时,根据第一状态信息和第二状态信息两者
来选择高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的数据。
介质,程序代码在由计算机执行时执行本公开所提供的方法。
的实时带宽,其中,存储器系统包括高速缓存,高速缓存的每一个缓存行中包括:关于该缓
存行中所缓存的数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向
的存储器的第二状态信息;比较模块,被配置为确定实时带宽是否满足预定条件以判断是
否用更新的数据来替换所选择缓存行中缓存的数据;处理模块,被配置为当实时带宽不满
足预定条件时,根据第一状态信息来选择高速缓存中的缓存行之一,用更新的数据来替换
所选择缓存行中所缓存的数据;当实时带宽满足预定条件时,根据第一状态信息和第二状
态信息两者来选择高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存
的数据。
器的存储器系统中可能出现的负载不均衡的问题。
附图说明
具体实施方式
常在附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因
此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的
范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做
出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
通存储器104,以及带宽比普通存储器更高的高带宽存储器。
器。本发明针对的情况包括(2)和(3),即,只要存储系统中存在不同的带宽的存储器,就需
要考虑高速缓存替换算法是否有利于负载均衡,诸如CC-NUMA系统等异构系统也是如此。
多个存储器的集合。簇0 200包括:不止一个CPU(CPU0 201和CPU1 202),LLC 203,以及存储
器204-206。簇1 200’包括:不止一个CPU(CPU2 201’和CPU3 202’),LLC 203’,以及存储器
204’-206’。簇0 200和簇1 200’之间由NUMA链路207连接。在一个实施例中,簇0 200是本地
存储器系统,簇1 200’是远程存储器系统。可替换地,簇0 200可以是远程存储器系统,簇1
200’可以是本地存储器系统。
第一状态信息、以及关于该缓存行的地址所指向的存储器的第二状态信息。
据。
时带宽满足预定条件可以意味着系统中存储器带宽压力较大,需要考虑带宽来进行高速缓
存替换。该方法能够在监控到系统中存储器带宽压力较大的情况下实现对考虑带宽的高速
缓存替换算法的选择,有利于实现系统中的负载均衡。
宽存储器相对应的第二实时带宽。在一个实施例中,预定条件包括:第一实时带宽与第二实
时带宽的比值大于预定阈值。
包括:关于该缓存行中所缓存的数据的使用情况的特征的第一状态信息、以及关于该缓存
行的地址所指向的存储器的第二状态信息。
存的数据。
选择缓存行中所缓存的数据。
并且,可以监控多个存储器中的一个或多个的实时带宽。并且,预定条件也可以包括任何能
够体现实时带宽压力的一个或多个阈值、数值关系等。
第一状态信息可以与传统的、不考虑存储器系统的实时带宽的高速缓存替换算法相对应。
例如,第一状态信息可以与以下各项中的至少一项或者其中多项的组合相对应:LRU算法、
MRU算法、FIFO(First In First Out,先进先出)算法、Size(基于所替换数据的尺寸)算法、
LLF(Lowest Latency First,最低延迟优先)算法、Hybrid算法、LRV(Lowest Relative
Value,最低相对值)算法、LNCR(Least Normalized Cost Replacement,最低标准化成本)
算法、SLRU(Size-Adjust LRU,尺寸调整LRU)算法等。在一个实施例中,第一状态信息是一
个比特。然而,第一状态信息也可以是多个比特,这取决于所对应算法。可以根据需要灵活
选用算法与本发明的方法相结合。
状态信息的比特数可以取决于存储器或存储器簇的数量,或者可以取决于需要监控的存储
器或链路的数量。在一个实施例中,当高速缓存替换完成时,更新缓存行的第二状态信息。
结合第二状态信息,本发明的方法至少可以确定用哪个存储器地址进行高速缓存替换可以
减轻系统的带宽压力。
选择高速缓存替换算法。
在一个实施例中,预定条件包括:实时带宽是否大于预定阈值。
数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二
状态信息。
据。
或多个的实时带宽。并且,预定条件也可以包括任何能够体现实时带宽压力的一个或多个
阈值、数值关系等。
系统带宽压力,监控链路带宽有利于选择高速缓存替换算法。
过监控链路带宽选择要进行替换的存储器簇,再通过监控所选择存储器簇中各存储器的带
宽来选择具体要进行替换的存储器。当然,本发明不限于此。本领域技术人员可以在特定场
景下对其中一个或多个步骤进行重新排序、删除或结合等来进行应用,以达到相同的目的。
MCDRAM。在一个实施例中,第一状态信息可以是与LRU算法相对应的值。在一个实施例中,第
二状态信息可以用一个F比特来表示。一个F比特足以区分开两个不同的存储器。例如,用1
表示所访问地址属于MCDRAM,用0表示所访问地址属于DDR。
一个F=1的缓存行,即,搜索地址属于MCDRAM并且最近最少使用的缓存行。接着,在步骤607
处,选择搜索到的缓存行。
存行,即,选择最近最少使用的缓存行。
为两个分组:即LRU≥N的分组,LRU<N的分组。例如,N可以是4。
统负载均衡的需求。例如,在图7的实施例中,选择LRU≥4的缓存行执行本发明的替换算法,
可以有效地避开常用的数据,即热数据,避免替换频率过高。
个组(set)中的某一路(way)对应的缓存行进行替换。此时如果所替换的缓存行地址属于
DDR4,则会进一步加剧DDR4的压力,导致CPU0的性能下降,无法做到负载均衡。
最少使用,0表示最近最常使用。
行按照LRU算法的排序划分为两个分组(LRU值<N的一个分组,LRU值≥N的一个分组)。在一
个实施例中,例如,N可以为4。在LRU>=4的缓存行分组中挑选第一个F=1的缓存行进行替
换。如图8所示,如果仅采用LRU算法,则应该选择way4来进行替换。然而,way4的F为0,即,此
时way4中的缓存行地址属于DDR。为了综合考虑实时带宽使得负载更为均衡,在LRU值为4-7
的分组(即way0、way3、way4和way7)内按照LRU值从高到低的顺序(7,6,5,4)选择第一个F=
1的缓存行来进行替换。在图8所示的情况下,应该选择LRU=6且F=1的way0。此时way0中的
缓存行属于MCDRAM,对其进行替换不会对DDR的带宽产生进一步压力。
值。在一个实施例中,第二状态信息可以用两个F比特来表示。例如,F比特包括bit0和bit1。
在一个实施例中,bit1表示对高速缓存的每一组的缓存行的分组,相同值的bit1的缓存行
属于一个分组。分组数越多,则根据带宽情况进行高速缓存替换跳帧的粒度越精细,一个比
特的bit1可以表示缓存行被分成两个分组。可替换地,bit1还可以是两个或更多个比特,以
实现更精细的粒度。在一个实施例中,bit0可以表示是否属于本地存储器簇的存储器,例
如,用1表示属于本地存储器簇,用0表示属于远程存储器簇。
分组。在一个实施例中,可以设定阈值N来进行分组,将MRU值≥N的缓存行分为一个分组,将
MRU值<N的缓存行分为一个分组。可替换地,分组的条件不限于MRU值,也不限于设定阈值。
占用的资源也会越多。因此,在分组时也需要综合考虑各种因素。在一个实施例中,bit1可
以指示根据延迟时间进行的分组。在一个实施例中,bit1可以指示根据数据尺寸进行的分
组。当然,本发明不限于此。
宽更大、速度更快。也就是说,相对于各个存储器的带宽限制,链路带宽对于高速缓存替换
的性能影响更大。相比而言,某个处理器访问属于同一存储器簇的HBM和DDR只有带宽上的
差别,速度差别不大。
最常使用,0表示最近最少使用。
可以包括如图9所示的bit0和bit1。
就可以判断是否需要根据实时带宽情况来选择不同的高速缓存替换算法,然后可以通知所
有处理器CPU0-3实时带宽信息,则CPU0-3在后续进行高速缓存替换时,可以选择是否优先
替换本地存储器簇内部的DDR上的数据。
切换为综合考虑MRU和F(包括bit0和bit1)。
MRU>=4的缓存行分组中挑选第一个F=1的缓存行进行替换。如图10所示,如果仅采用MRU
算法,则应该选择way4来进行替换。然而,在way4的F比特中,bit1=1,且bit0=0,即,此时
way4中的缓存行地址属于远程存储器簇。为了综合考虑实时带宽使得负载更为均衡,可以
在bit1=1的分组中按照MRU值从高到低的顺序搜索第一个bit0=1的缓存行来进行替换。
在图10所示的情况下,应该选择LRU=4且bit1=1、bit0=1的way7。此时way7中的缓存行属
于本地存储器簇,对其进行替换不会对NUMA链路的带宽产生进一步压力。
中,存储器系统包括高速缓存,高速缓存的每一个缓存行中包括:关于该缓存行中所缓存的
数据的使用情况的特征的第一状态信息、以及关于该缓存行的地址所指向的存储器的第二
状态信息;比较模块1103,被配置为确定实时带宽是否满足预定条件以判断是否用更新的
数据来替换所选择缓存行中缓存的数据;以及处理模块1105,被配置为当实时带宽不满足
预定条件时,根据第一状态信息来选择高速缓存中的缓存行之一,用更新的数据来替换所
选择缓存行中所缓存的数据;当实时带宽满足预定条件时,根据第一状态信息和第二状态
信息两者来选择高速缓存中的缓存行之一,用更新的数据来替换所选择缓存行中所缓存的
数据。
个缓存行;以及数据替换模块11055,被配置为用更新的数据来替换所选择缓存行中所缓存
的数据。图11B是在图11A的基础上实现本发明的方法的细化的模块结构,但是本发明不限
于此。
于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中
所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可
以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意
的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行
规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的
组合来实现。
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存
储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要
说明的是,在本文中,诸如第一和第三等之类的关系术语仅仅用来将一个实体或者操作与
另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实
际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包
含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括
没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素
的过程、方法、物品或者设备中还存在另外的相同要素。
改、等同替换、改进等,均应包含在本公开的保护范围之内。应注意到:相似的标号和字母在
下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需
要对其进行进一步定义和解释。
盖在本公开的保护范围之内。因此,本公开的保护范围应以所附权利要求及其等同物的保
护范围为准。