首页> 中国专利> 用于非易失性主存储器系统中的自适应高速缓存更换的装置、系统和方法

用于非易失性主存储器系统中的自适应高速缓存更换的装置、系统和方法

摘要

在用于选择收回的高速缓存的行的更换策略之间自适应地改变的技术和机制。在实施例中,评估逻辑确定针对到非易失性存储器的写入的性能度量的值。基于所确定的性能度量的值,确定更换策略的参数值。在另一实施例中,高速缓存更换逻辑施行高速缓存的行的选择以用于数据收回,其中响应于策略单元提供所确定的参数值的指示而进行该选择。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-21

    未缴年费专利权终止 IPC(主分类):G06F12/0866 授权公告日:20170707 终止日期:20180607 申请日:20130607

    专利权的终止

  • 2017-07-07

    授权

    授权

  • 2015-05-27

    实质审查的生效 IPC(主分类):G06F1/00 申请日:20130607

    实质审查的生效

  • 2015-04-29

    公开

    公开

说明书

背景技术

1. 技术领域

本申请一般地涉及计算机系统中的高速缓存,并且更具体地但非排他性地涉及用于更换高速缓存中的组块的方法。

2. 背景技术

高速缓存提供对用于处理计算机的资源的重要信息的相当接近、快速的访问。例如,高速缓存经常用来存储已经由中央处理单元(CPU)在最近访问的存储器组块。但是,使高速缓存足够大以存储所有可用存储器组块是不实际的。除这样大的高速缓存会使主存储器不必要这一明显事实之外,缓存的存储器比主存储器更昂贵。为了保持成本下降,高速缓存往往具有相对主存储器更小的尺寸。

因为高速缓存不能存储主存储器中的每一个组块,所以在需要从高速缓存分配新组块时,高速缓存必须使用更换策略来决定要更换当前高速缓存中的哪一组块。良好的更换策略对于有效的高速缓存利用而言是高度有价值的。最不频繁使用(LFU)更换策略追踪高速缓存中的每一个组块已经多么频繁地使用并且更换具有最低使用频率的组块。最近最少使用(LRU)更换策略追踪自高速缓存中的每一个组块已经被使用开始经过了多久并且更换自其上次使用之后已经过去最久的组块。LRU和LFU是两种常用的高速缓存更换策略。然而,不管是LRU还是LFU都不适用于所有计算应用的要求。随着存储器系统的尺寸和速度伴随集成电路技术的更新换代的发展,这样的存储器系统的性能对于高速缓存管理中的低效的敏感不断增长。

附图说明

通过示例的方式而非限制的方式在随附各图的图中对本发明的各个实施例进行说明,并且在附图中:

图1是图示了根据实施例的用于提供自适应高速缓存更换的系统的元件的框图。

图2是图示了根据实施例的用于确定高速缓存更换策略的参数的策略单元的元件的框图。

图3是图示了根据实施例的用于确定高速缓存更换策略的方法的元素的流程图。

图4A是图示了根据实施例的用于提供自适应高速缓存更换的一组优先级的元素的表格。

图4B是图示了根据实施例的用于确定高速缓存更换参数的算法的元素的伪代码。

图4C是图示了根据实施例的用于收回缓存的数据的方法的元素的流程图。

图5是图示了根据实施例的经受高速缓存更换的高速缓存系统的元件的框图。

图6是图示了根据实施例的用于提供高速缓存更换的计算机平台的元件的框图。

具体实施方式

某些实施例以各种方式提供自适应高速缓存更换,其例如考虑到非易失性主存储器的非对称读取/写入性能并且基于非易失性存储器中的写入性能的当前状态来在更换策略之间自适应地改变。在本文关于用于扇区高速缓存的高速缓存更换来讨论各实施例的某些特征。扇区高速缓存例如可以以三个参数来表征:行尺寸(L)、扇区尺寸(S)和道尺寸(W)。行尺寸(L)是高速缓存行的尺寸。扇区尺寸(S)是高速缓存行中的每一个扇区的尺寸,其中高速缓存行中的扇区的数目于是为L/S。道尺寸(W)是一组中的道的数目。然而,这样的讨论可以扩展成附加地或可替换地适用于任何各种其它高速缓存类型。

图1示出根据实施例的用于对数据进行缓存的说明性计算机系统100的元件。计算机系统100可以例如包括个人计算机的硬件平台,诸如台式计算机、笔记本计算机、超级本或其它膝上型计算机、手持式计算机(例如平板、掌上电脑、手机、媒体播放器等)和/或其它这样的计算机系统。可替换地或附加地,计算机系统100可以提供作为服务器、工作站或者其它这样的计算机系统的操作。在实施例中,计算机系统100包括在不同策略之间自适应地改变以用于施行高速缓存更换操作的一个或多个机制。

在实施例中,计算机系统100包括计算机系统100的至少一个处理器的一个或多个核110,所述一个或多个核110在存储于计算机系统100中的数据上以各种方式访问和/或操作。一个或多个核110中的一些或所有可以驻留在任何各种处理器中,包括但不限于:中央处理单元(CPU)、图形处理器、协处理器、安全性处理器等。例如,一个或多个核110可以包括驻留在计算机系统100的相应不同处理器上的核,但是当然某些实施例不受这方面的限制。

计算机系统100还可以包括非易失性存储器130以存储用于由一个或多个核110访问的数据。例如,非易失性存储器130可以包括随机存取存储器(RAM),包括但不限于:闪速存储器、非易失性静态RAM(nvSRAM)、铁电RAM(FRAM)、磁阻RAM(MRAM)、相变存储器(PCM)、具有开关的相变存储器(PCMS)和任何各种其它这样的非易失性存储器硬件中的一个或多个。非易失性存储器130可以作为计算机系统100的主存储器中的一些或所有操作,但是当然某些实施例不受这方面的限制。

在实施例中,计算机系统100还包括高速缓存120,例如包括易失性高速缓冲存储器,其以各种方式(直接或间接)耦合到一个或多个核110和非易失性存储器130。高速缓存120可以对用于由一个或多个核110访问的数据进行缓存,例如包括对存储在非易失性存储器130中的数据版本进行缓存。在实施例中,高速缓存120中的一些或所有驻留在诸如CPU之类的处理单元内,该处理单元包括一个或多个核110。可替换地或附加地,高速缓存120中的一些或所有可以在这样的处理单元外部。通过说明而非限制的方式,高速缓存120可以包括L1高速缓存、L2高速缓存和/或L3高速缓存等中的一个或多个。

高速缓存120的操作可以由计算系统100的任何各种常规高速缓存管理技术和/或机制来支持。例如,高速缓存120可以是计算机系统100的多个高速缓存中的一个,例如其中这样的高速缓存的状态通过计算机系统100的高速缓存一致性逻辑来追踪。这样的高速缓存一致性逻辑可以例如追踪存储在高速缓存120中的数据的状态。通过说明而非限制的方式,各种缓存的数据可以在不同时间利用多个分类中的一个进行分类。这样的分类可以例如包括指示高速缓存的行当前不存储有用数据的“无效”分类。可替换地或附加地,这样的分类可以包括指示高速缓存的行存储非易失性存储器130中所存储的数据的最新版本的“干净”分类。可替换地或附加地,这样的分类可以包括指示高速缓存的行已经被写入并且存储在非易失性存储器130中的对应数据已经过时的“脏”分类。在实施例中,数据的分类可以是隐含的,例如其中未能将高速缓存的行分类为无效的隐含地将该高速缓存的行分类为有效的,其中未能将高速缓存的行分类为脏的隐含地将该高速缓存的行分类为干净的,等等。可以根据不同实施例使用追踪缓存的数据的状态的任何各种附加的或可替换的分类。在某些实施例中,缓存的数据的这样的状态的追踪可以根据常规技术。为了避免混淆各实施例的特征,在计算机系统100中未示出某些常规的高速缓存管理技术和/或机制。

在实施例中,计算机系统100还包括高速缓存更换单元140,其包括例如硬件、固件和/或执行软件的逻辑以选择用于收回的高速缓存120的行。用于收回的行的选择可以根据高速缓存更换策略,例如从计算机系统100的多个高速缓存更换策略选择的策略。高速缓存更换单元140可以例如包括或耦合到根据常规技术施行高速缓存更换的逻辑。在实施例中,高速缓存更换单元140包括补充任何这样的常规高速缓存更换技术的逻辑。

通过说明而非限制的方式,高速缓存更换单元140可以包括或以其它方式访问用于在不同时间以各种方式实现不同高速缓存更换策略的逻辑。这样的策略可以包括用于将高速缓存的组块(例如行)标识为具有要被收回的数据的相应不同标准。这样的数据的收回可以使高速缓存120的行可用于对来自非易失性存储器130的其它数据进行缓存。在实施例中,高速缓存更换单元140可以在计算机系统100的操作期间的给定时间点处从实现一个高速缓存更换策略自适应地改变到实现另一高速缓存更换策略。这样的自适应改变例如可以基于计算机系统100的状态的检测。通过说明而非限制的方式,这样的自适应策略改变可以基于一个或多个性能度量,其描述访问高速缓存120中的数据和/或访问非易失性存储器130中的数据的一个或多个操作。

计算机系统100还可以包括策略单元150,其包括例如硬件、固件和/或执行软件的逻辑以检测计算机系统100的状态并且基于所标识的状态来向高速缓存更换单元140指示应用于高速缓存120的管理的高速缓存更换策略。策略单元150可以与高速缓存更换单元140的一些或所有逻辑合并,但是当然某些实施例不受这方面的限制。在实施例中,策略单元150施行重复评估以确定计算机系统100的当前状态。基于这样的重复评估,策略单元150可以连续标识不同高速缓存更换策略。响应于由策略单元150标识的策略的连续,高速缓存更换单元140可以从实现针对高速缓存120的第一高速缓存更换策略自适应地改变到实现针对高速缓存120的第二高速缓存更换策略。

图2图示了根据实施例的用于指示管理高速缓存的高速缓存更换策略的策略单元200的元件。策略单元200例如可以在具有计算机系统100的一些或所有特征的计算机系统中操作。在实施例中,策略单元200提供策略单元150的一些或所有功能性。

策略单元200可以包括评估逻辑210以确定计算机系统的性能度量的值215。在实施例中,评估逻辑210包括例如包含硬件、固件和/或执行软件的逻辑以检测与计算机系统的处理器核、高速缓存和非易失性存储器中的一个或多个交换的通信的指示205。通过说明而非限制的方式,策略单元200可以监听耦合在非易失性存储器与计算机系统的高速缓冲存储器和处理器核中的一个或二者之间的一个或多个信号线,例如包括数据总线、地址总线、控制总线等的信号线。在实施例中,指示205是从计算机系统的非易失性存储器设备、处理器核或高速缓存发送的专用控制信号。某些实施例不受关于指示205通过其提供到策略单元200的特定机制的限制。

确定值215可以包括评估逻辑210评估性能度量,其针对(例如特定于)对非易失性存储器的写入。例如,值215可以基于仅描述写入到这样的非易失性存储器的操作的信息来计算或以其它方式确定。在实施例中,与从这样的非易失性存储器读取的操作的任何评估独立地评估值215。性能度量可以例如特定于通过一个或多个特定处理器核对非易失性存储器的写入,但是当然某些实施例不受这方面的限制。

在实施例中,值215描述在写入到非易失性存储器的操作中发生的失速(stalling)量。这样的失速可能例如是由于一些资源的不可用性而引起的,所述资源例如为总线、缓冲器、调度逻辑等,其施行用于服务给定写入命令的某种下一操作。可以使用用于检测这样的不可用性的任何各种常规机制,并且在一些实施例中不受限制。在实施例中,度量值215描述对非易失性存储器的某一写入命令(或多个写入命令)在其期间失速的时间量,例如时钟周期数目。出于简便起见,这样的周期在本文中被称为失速写入周期。

通过说明而非限制的方式,度量值215可以包括在某一时间段内的失速写入周期的总数目的计数write_stall_count。时间段可以基于预定时间窗口参数T_window。在说明性实施例中,评估逻辑210可以周期性地施行性能度量的评估,其中每一个评估针对每一个具有长度T_window的时间段序列中的相应时间段。度量值215可以例如描述在某一时间段期间写入操作的总数目的计数,其中每一个写入操作在某一阈值时间量以上失速,例如在某一阈值数目的时钟周期以上失速。可替换地或附加地,度量值215可以描述在某一时间段期间的所有写入操作的一部分(例如片断、百分比等),其中每一个写入操作在这样的阈值时间量以上失速。根据不同实施例,任何各种附加的或可替换的度量可以被用来描述写入失速。

策略单元220还可以包括策略参数逻辑230以从评估逻辑210接收标识度量值215的信号220。基于评估逻辑210标识度量值215,策略参数逻辑230可以确定高速缓存更换策略的参数值235。基于所确定的参数值235,策略参数逻辑230可以生成指示要应用于管理计算机系统的高速缓存的更换策略的信号240。在实施例中,信号240向高速缓存更换单元指定参数值235,其中高速缓存更换基于利用信号240的参数值235的指定来确定要实现的高速缓存更换策略。例如,信号240可以包括要由高速缓存更换单元实现的高速缓存更换策略的所有标准。

在实施例中,参数值235包括用于高速缓存行的特性的阈值的值,例如其中特性与阈值的值的比较是用于评估高速缓存行是否为数据收回的候选的基础。这样的阈值例如可以是具有特定分类的高速缓存的组块中(例如高速缓存行中)的最大(或者可替换地,最小)可允许的数据量。通过说明而非限制的方式,这样的阈值可以是被分类为脏的高速缓存行中的扇区的最小数目。相应地,这样的阈值可以是被分类为干净的高速缓存行中的扇区的最大数目。根据不同实施例,这样的阈值可以附加地或可替换地包括一些其它分类(例如有效)的最大(或最小)数据量。

策略参数逻辑230可以包括用于标识不同高速缓存更换策略的相应参数的数据和/或逻辑。这样的多个策略可以例如包括至少部分地基于属于特定分类(例如脏、干净、有效等中的一个)的高速缓存行的数据量来选择用于收回的高速缓存行的第一策略。为了展示某些实施例的特征,在“脏感知”策略的上下文中讨论这样的策略。如在本文中所提及的,脏感知的高速缓存更换策略是基于行中所存储的一些数据是否脏来评估是否要更换高速缓存行的策略。例如,该策略可以确定行中脏的数据量是否在阈值数据量以上。脏感知更换策略可以可替换地被视为和称作“干净感知”更换策略,至少就确定高速缓存行的数据是否脏也是确定这样的数据是否干净而言是这样的。可以使用任何各种附加的或可替换的数据分类以作为根据给定更换策略选择用于收回的高速缓存行的基础。

策略参数逻辑230以各种方式指示的多个策略可以附加地或可替换地包括与该高速缓存行中的数据的特定分类(或任何分类)独立地选择用于收回的高速缓存行的第二策略。例如,这样的第二策略可以施行与数据是否脏独立的评估。出于简便起见,这样的策略在本文被称为脏不可知更换策略。脏不可知更换策略可以可替换地被视为和称为干净不可知更换策略。脏不可知(干净不可知)策略可以例如包括LRU、LFU或随机高速缓存更换策略。

图3图示了根据实施例的用于确定高速缓存更换策略的方法300的元素。方法300可以针对具有计算机系统100的所有或一些特征的系统确定高速缓存更换策略。在实施例中,利用包括策略单元200的所有或一些功能性的逻辑来施行方法300。

方法300可以包括在310处确定针对到非易失性存储器的写入的性能度量的值。在实施例中,非易失性存储器和高速缓存每一个存储用于由计算机系统的一个或多个处理器访问的相应数据。性能度量可以描述例如对非易失性存储器的写入访问的失速。在实施例中,性能度量值在310处基于每一个写入完成时间与阈值时间段的连续比较来确定,其中写入完成时间具有访问非易失性存储器的相应不同写入实例。

通过说明但非限制的方式,在310处确定的值可以是被标识为失速的写入访问的数目。例如,在310处确定的值可以是在具有等于时间窗口参数值的时间段内发生的失速写入访问的总数目。可替换地或附加地,在310处确定的值可以描述作为失速写入实例的某一组访问实例的百分比或其它片断。

方法300还可以包括在320处基于在310处所确定的值来确定更换策略的参数值。在320处的参数值的确定可以例如包括将失速写入访问的数目与访问的阈值数目比较。在实施例中,在320处确定的参数值是用于将高速缓冲存储器的行分类为满足更换策略的给定优先级的阈值。在实施例中,与用于对非易失性存储器的读取访问的性能度量的任何值独立地在320处确定该参数值。

方法300还可以包括在330处基于在320处确定的参数值来生成信号,该信号指示更换策略。在实施例中,基于在330处生成的信号,根据所指示的更换策略来选择用于收回的高速缓冲存储器的行。

某些实施例以各种方式在不同时间将不同高速缓存更换策略适配成动态地适应(accommodate)将高速缓存中的脏数据保持得更久的能力中的变化,例如以减少对非易失性(例如主)存储器的写入通信量。例如,分别令N[1,d]和N[1,c]表示针对任何给定高速缓存行l的脏扇区和干净扇区的数目。然后,N[1,v]=N[1,d]+N[1,c]可以表示该高速缓存行的有效扇区的数目。基于针对每一个高速缓存行l的N[1,d]、N[1,c]和N[1,v]的相应值,高速缓存可以被评估以将高速缓存行标识为用于收回的候选。

在说明性实施例中,诸如高速缓存更换单元140的那个的高速缓存更换逻辑可以评估高速缓存以标识用于收回的高速缓存行,其中评估基于图4A的优先级列表400。图4C图示了根据一个实施例的用于连续重复评估的算法440的元素,其中基于性能度量的当前值对评估的一个或多个元素进行动态地再评估。例如,这样的高速缓存更换逻辑可以施行连续评估,其中每一个评估基于相应牺牲优先级,例如基于优先级列表400的相应一个牺牲优先级。

通过说明而非示例的方式,高速缓存更换逻辑可以基于优先级列表400的优先级0施行第一评估,该第一评估搜索任何无效高速缓存行。例如,如果N[1,v]、N[1,d]和N[1,c]都为零,则可以指示高速缓存行l无效。在第一评估未能标识任何无效高速缓存行的情况下,高速缓存更换逻辑可以在实施例中基于优先级列表400的优先级1施行第二评估,该第二评估标识被视为具有小量有效数据的任何高速缓存以用于收回。在实施例中,高速缓存行l的低有效性可以由N[1,v]与阈值参数T_low1的关系来指示,例如响应于检测到N[1,v]小于(在另一实施例中,小于或等于)T_low1来指示。

在第二评估未能标识任何低有效性高速缓存行的情况下,高速缓存更换逻辑在实施例中可以基于优先级列表400的优先级2施行第三评估,该第三评估标识被视为具有小量脏数据的任何高速缓存行以用于收回。在实施例中,高速缓存行l的低脏性可以由N[1,d]与阈值参数T_low2的关系来指示,例如响应于检测到N[1,d]小于(在另一实施例中,小于或等于)T_low2来指示。在实施例中,T_low1和T_low2是相同的阈值参数。

在第三评估未能标识任何低脏性高速缓存行的情况下,高速缓存更换逻辑可以在实施例中基于优先级列表400的优先级3施行第四评估。第四评估在实施例中可以不可知存储在高速缓存的高速缓存行中的数据的一个或多个分类。通过说明而非限制的方式,第四评估可以与该高速缓存行中的数据是否属于特定分类或分类组(例如有效、脏、干净等中的一个或多个)独立地确定高速缓存行是否为用于收回的候选。根据不同实施例,第四评估可以是LRU高速缓存更换优先级、LFU高速缓存更换优先级、或者任何各种其它这样的脏度不可知(或者其它数据分类不可知)策略。

图4C图示了根据各实施例的用于从根据一个高速缓存更换策略管理高速缓存自适应地改变到根据另一高速缓存更换策略管理高速缓存的方法440的元素。方法440可以例如由包括高速缓存更换单元140和策略单元150的所有或一些特征的电路逻辑来施行。

方法440可以包括在445处检测某一收回事件,其指示至少一个高速缓存行要被选择用于收回,例如其中所选择的高速缓存行的数据要用来自非易失性存储器的其它数据更换。在445处的检测可以例如基于时间段的过期、高速缓存访问的检测、非易失性存储器访问和/或根据用于标识需要选择收回的高速缓存行的任何各种常规技术。

方法440还可以包括任何各种循环序列以重复施行445处的检测直到指示收回事件为止。通过说明而非限制的方式,如果在445处没有检测到收回事件,则方法440可以在485处施行测试以检测任何终止事件,例如系统断电,其指示不需要进一步的高速缓存更换处理。如果在485处没有检测到终止事件,则方法440可以重复445处的确定。

在实施例中,在445处检测收回事件可以开始评估序列以标识要经受数据收回的高速缓存行。这样的评估序列可以包括高速缓存的评估序列中的一个或多个,例如其中序列中的每一个评估根据相应不同策略标准。评估序列可以在阈值参数T_low1被设定为某一第一值时和/或在阈值参数T_low2被设定为某一第二值时施行至少一次。在可替换的实施例中,T_low1和T_low2是相同的阈值参数。

通过说明而非限制的方式,方法440的评估序列可以在450处包括用于标识优先级列表400的无效行(优先级0)的第一评估。如果450处的评估没有标识无效高速缓存行,则方法400可以在455处施行用于标识低有效性行(优先级列表400的优先级1)的第二评估。如果455处的评估没有基于T_low1的当前值标识低有效性高速缓存行,则方法400可以在460处施行用于标识低脏性行(优先级列表400的优先级2)的第三评估。如果460处的评估没有基于T_low2的当前值标识低脏性高速缓存行,则方法400可以在470处施行针对优先级列表400的优先级3的第四评估,例如以标识高速缓存的LRU行。在实施例中,如果操作450,455,460中的任一个标识高速缓存行,或者可替换地,在操作470标识高速缓存行之后,那么方法400可以在475处从所标识的高速缓存行收回数据。根据各实施例,方法400可以包括任何各种一个或多个附加的或可替换的评估以便以各种方式标识用于收回的高速缓存行。

在实施例中,方法400还包括将高速缓存更换策略从评估序列的一个执行自适应地改变到评估系列的下一执行的技术。通过说明而非限制的方式,方法400可以在480处再评估阈值T_low1、T_low2中的一个或二者。图4B的伪代码410图示了根据一个实施例的用于再评估阈值T_low1、T_low2的技术的元素。如在伪代码410的行415中所示,可以例如通过评估逻辑210施行计数write_stall_count是否大于(或者可替换地,大于或等于)某一阈值的值T_adaptive的测试。415处的测试条件可以指示对非易失性存储器的访问是否导致一个或多个系统资源的过度使用。

如果这样的过度使用通过行415的测试来指示,则在行420处,T_low1可以被设定为某一正参考值T_ref1,和/或在行425处,T_low2可以被设定为某一正参考值T_ref2。T_ref1和/或T_ref2的特定值可以特定于实现方式,并且在某些实施例不受限制。在实施例中,将T_low1设定为T_ref1和/或将T_low2设定为T_ref2导致方法400的评估序列实现脏感知(干净感知)高速缓存更换策略。对比之下,如果行415的测试没有指示资源过度使用,则在行430处,T_low1可以被设定为零,和/或在行435处,T_low2可以被设定为零。在实施例中,将T_low1和T_low2设定为零导致方法400的评估序列实现不同的高速缓存更换策略,其在某种意义上为脏不可知(干净不可知)。例如,在T_low1被设定为零时,455处的评估可能永远不会将任何高速缓存行选择为用于收回的低有效性候选。可替换地或附加地,在T_low2被设定为零时,460处的评估可能永远不会将任何高速缓存行选择为用于收回的低脏性候选。相应地,在T_low1和T_low2二者被设定为零时,方法440的评估序列将仅利用操作470选择用于收回的高速缓存行,例如针对优先级列表400的优先级3的脏不可知(或者其它数据分类不可知)评估。

在实施例中,480处的T_low1和/或T_low2的再评估包括伪代码410的一些或所有特征。在这样的再评估之后,方法440可以开始评估序列的另一执行,例如响应于确定没有指示终止事件的操作485和检测到另一高速缓存行要被选择用于收回的操作445而开始。

图5图示了根据实施例的包括实现高速缓存更换的信息的高速缓存系统500的元件。高速缓存系统500可以例如为具有计算机系统100的所有或一些特征的系统的组件。在实施例中,基于方法300的所有或一些技术来管理高速缓存系统500。

高速缓存系统500可以包括高速缓存行520,例如包括说明性的行X 525,其以不同方式对存储在非易失性存储器(未示出)中的相应版本的数据进行缓存。高速缓存行520每一个可以包括一个或多个扇区,例如其中行X 525包括说明性的扇区S1、S2…SZ。

在高速缓存系统500的操作期间的给定时间处,扇区S1、S2…SZ中的相应数据可以处于各种状态,例如针对高速缓存一致性、高速缓存更换和/或任何各种其它高速缓存管理技术来追踪这些状态。为了促进这样的高速缓存管理,高速缓存系统500还可以包括标签阵列510,其包括每一个对应于高速缓存行520中的相应不同一个的标签。通过说明而非限制的方式,标签阵列510可以包括对应于高速缓存行520的行525的标签x 515。在实施例中,标签x 515存储指定行525是否为高速缓存行520中的最近最少使用的一个的值LRU。可替换地或附加地,标签x 515可以存储一个或多个状态值,其每一个特定于扇区S1、S2…SZ中的相应一个。

通过说明而非限制的方式,标签x 515可以存储用于扇区S1的值                                               和,它们分别指定扇区S1的数据是否有效以及扇区S1的数据是否脏。标签x 515可以类似地存储用于S2的对应值、,用于扇区SZ的值、和/或任何各种附加的或可替换的扇区特定状态信息。在实施例中,根据常规高速缓存一致性和/或其它高速缓存管理技术来存储和/或维护标签x 515的一些信息。

高速缓存更换策略在实施例中可以包括基于标签阵列510中的信息来评估一些或所有高速缓存行520。例如,高速缓存更换单元140可以响应于策略单元150对高速缓存更换策略的标识而施行高速缓存行520的一个或多个评估,其中每一个评估根据相应高速缓存更换标准。通过说明而非限制的方式,这样的评估可以包括基于的计数来计算被分类为有效的行525中的总数据量。可替换地或附加地,这样的评估可以包括基于的计数来计算被分类为脏的行525中的总数据量。基于一个或多个这样的计算,高速缓存更换单元140(或者其它这样的逻辑)可以确定行X 525是否满足高速缓存更换策略的标准。例如,这样的计数可以与诸如T_low1和T_low2中的一个的阈值的值进行比较。

图6示出根据一个实施例的用于确定高速缓存更换的说明性计算机平台600的元件。计算机平台600可以例如包括计算机的硬件平台,诸如服务器、工作站、台式计算机、膝上型计算机、手持式计算机(例如平板、掌上电脑、手机、媒体播放器等)和/或其它这样的计算机系统。可替换地,实施例可以在一个或多个嵌入式应用中实现,其中例如嵌入式处理器实现自适应地实现不同高速缓存更换策略的操作,其中每一个高速缓存更换策略选择用于收回的高速缓存行。这样的自适应高速缓存更换可以应用于处理器609的高速缓存608和/或计算机平台600的任何其它高速缓存。

在实施例中,计算机平台600包括由说明性总线601表示的用于传送信息的至少一个互连和用于处理这样的信息的处理器609,例如中央处理单元。处理器609可以包括复杂指令集计算机(CISC)型架构、精简指令集计算机(RISC)型架构和/或任何各种处理器架构类型的功能性。处理器609可以经由总线601与计算机平台600的一个或多个其它组件耦合。通过说明而非限制的方式,计算机平台600可以包括由耦合到总线601的说明性的非易失性主存储器604表示的随机存取存储器(RAM)或其它动态存储设备以存储要由处理器609执行的信息和/或指令。主存储器604还可以用于在处理器609执行指令期间存储临时变量或其它中间信息。计算机平台600可以附加地或可替换地包括只读存储器(ROM)606和/或其它静态存储设备以存储用于处理器609的静态信息和/或指令,例如其中ROM 606经由总线601耦合到处理器609。

在实施例中,计算机平台600附加地或可替换地包括例如经由总线601耦合到处理器609的数据存储设备607(例如,磁盘、光盘和/或其它机器可读媒介)。数据存储设备607可以例如包括要在处理器609上操作和/或以其它方式由处理器609访问的指令或其它信息。在实施例中,处理器609可以基于对主存储器604的访问(例如失速写入访问)来施行高速缓存更换策略评估。

计算机平台600可以附加地或可替换地包括用于将信息显示给计算机用户的显示设备621。显示设备621可以例如包括帧缓冲器、专用图形渲染设备、阴极射线管(CRT)、平板显示器等。附加地或可替换地,计算机平台600可以包括输入设备622,例如包括字母数字和/或其它按键以接收用户输入。附加地或可替换地,计算机平台600可以包括光标控制设备623,诸如鼠标、追踪球、笔、触摸屏或者光标方向键以将位置、选择或其它光标信息传送给处理器609和/或以控制例如在显示设备621上的光标移动。

计算机平台600可以附加地或可替换地具有硬拷贝设备624,诸如将指令、数据或其它信息打印在诸如纸张、膜或相似类型的媒介之类的介质上的打印机。附加地或可替换地,计算机平台600可以包括声音录制/回放设备625,诸如接收和/或输出音频信息的麦克风或扬声器。计算机平台600可以附加地或可替换地包括数字视频设备626,诸如数字化图像的静止或运动相机。

在实施例中,计算机平台600包括或耦合到网络接口690以用于例如经由一个或多个天线695将计算机平台600连接到一个或多个网络(未示出)。这样的一个或多个网络可以例如包括专用存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、虚拟LAN(VLAN)、因特网和/或任何各种其它类型的网络。通过说明而非限制的方式,网络接口690可以包括网络接口卡(NIC)、诸如偶极子天线之类的天线、或者无线收发器中的一个或多个,但是本发明的范围不受这方面的限制。

在一个方面中,装置包括含有评估逻辑的策略单元以确定用于到非易失性存储器的写入的性能度量的值,其中非易失性存储器和高速缓冲存储器每一个存储用于由一个或多个处理器访问的相应数据。策略单元还包括策略参数逻辑以基于性能度量的值来确定更换策略的参数值。策略单元基于参数值来生成指示更换策略的信号,其中高速缓存更换单元选择用于收回的高速缓冲存储器的行,其中基于所述信号根据更换策略来选择该行。

在实施例中,度量描述对非易失性存储器的写入的失速。在实施例中,度量是失速写入访问的数目。在实施例中,度量是在具有等于时间窗口参数值的长度的时间段内的失速写入访问的数目。在实施例中,确定参数值的策略参数逻辑包括将访问的数目与访问的阈值数目比较的策略参数逻辑。在实施例中,参数值是用于优先化高速缓冲存储器的行的阈值的值。在实施例中,参数是用于脏扇区的数目或有效扇区的数目的阈值的值。在实施例中,策略参数逻辑生成用于从脏感知更换策略和最近最少使用更换策略转变的信号。

在另一方面中,方法包括确定针对到非易失性存储器的写入的性能度量的值,其中非易失性存储器和高速缓冲存储器每一个存储用于由一个或多个处理器访问的相应数据。方法还包括基于性能度量的值确定更换策略的参数值,以及基于参数值生成指示更换策略的信号,其中,基于该信号,根据更换策略选择高速缓冲存储器的行以用于收回。

在实施例中,度量描述对非易失性存储器的写入的失速。在实施例中,度量是失速写入访问的数目。在实施例中,度量是在具有等于时间窗口参数值的长度的时间段内的失速写入访问的数目。在实施例中,确定参数值包括将访问的数目与访问的阈值数目相比较。在实施例中,参数值是用于优先化高速缓冲存储器的行的阈值的值。在实施例中,参数是用于脏扇区的数目或有效扇区的数目的阈值的值。在实施例中,生成信号以用于从脏感知更换策略和最近最少使用更换策略转变。

在另一方面中,计算机系统包括一个或多个处理器核、高速缓冲存储器和非易失性存储器,其中每一个用于存储由一个或多个处理器访问的相应数据。计算机系统还包括策略单元,其包含确定针对到非易失性存储器的写入的性能度量的值的评估逻辑以及基于性能度量的值来确定更换策略的参数值的策略参数逻辑。策略单元基于参数值来生成指示更换策略的信号。计算机系统还包括耦合到策略单元的高速缓存更换单元,该高速缓存更换单元选择用于收回的高速缓冲存储器的行,其中基于所述信号根据更换策略来选择该行。

在实施例中,度量描述对非易失性存储器的写入的失速。在实施例中,度量是失速写入访问的数目。在实施例中,度量是在具有等于时间窗口参数值的长度的时间段内的失速写入访问的数目。在实施例中,确定参数值的策略参数逻辑包括将访问的数目与访问的阈值数目比较的策略参数逻辑。在实施例中,参数值是用于优先化高速缓冲存储器的行的阈值的值。在实施例中,参数是用于脏扇区的数目或有效扇区的数目的阈值的值。在实施例中,策略参数逻辑生成用于从脏感知更换策略和最近最少使用更换策略转变的信号。

在另一方面中,计算机可读存储介质具有存储在其上的指令,该指令在由一个或多个处理单元执行时使一个或多个处理单元施行方法。方法包括确定针对到非易失性存储器的写入的性能度量的值,其中非易失性存储器和高速缓冲存储器每一个存储用于由一个或多个处理器访问的相应数据。方法还包括基于性能度量的值来确定更换策略的参数值,以及基于参数值来生成指示更换策略的信号,其中,基于该信号,根据更换策略来选择高速缓冲存储器的行以用于收回。

在实施例中,度量描述对非易失性存储器的写入的失速。在实施例中,度量是失速写入访问的数目。在实施例中,度量是在具有等于时间窗口参数值的长度的时间段内的失速写入访问的数目。在实施例中,确定参数值包括将访问的数目与访问的阈值数目比较。在实施例中,参数值是用于优先化高速缓冲存储器的行的阈值的值。

在本文描述了用于操作高速缓冲存储器的技术和架构。在以上描述中,出于解释的目的,阐述众多具体细节以便提供对某些实施例的全面理解。然而,本领域技术人员将了解的是,可以在没有这些具体细节的情况下实践某些实施例。在其它实例中,以框图形式示出结构和设备以便避免混淆该描述。

在说明书中对“一个实施例”或“实施例”的引用意指结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。短语“一个实施例中”在说明书中不同地方的出现未必都是指相同的实施例。

在计算机存储器内的数据比特上的操作的算法和符号表示方面呈现了本文的详细描述的一些部分。这些算法描述和表示是由计算领域技术人员用来最有效地传达他们的工作的实质内容给本领域其他技术人员的手段。在此并且一般地认为算法是引向期望结果的自相容步骤序列。这些步骤是要求对物理量的物理操纵的步骤。通常但不是必要地,这些量采取能够被存储、传递、组合、比较和以其它方式操纵的电气或磁信号的形式。已经证实,在原理上出于共同使用的原因,将这些信号称为比特、值、元素、符号、字符、项、数字等有时是方便的。

然而,应当谨记的是,所有这些和类似的术语都与适当的物理量相关联并且仅是应用于这些量的方便标记。除非如从本文的讨论清楚的以其它方式明确声明,否则要了解的是,贯穿描述,利用诸如“处理”或“计算”或“运算”或“确定”或“显示”等的术语的讨论是指计算机系统或类似电子计算设备的动作和处理,其将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换成类似地被表示为计算机系统存储器或寄存器或其它这样的信息存储、传送或显示设备内的物理量的其它数据。

某些实施例还涉及用于施行本文的操作的装置。该装置可以出于所要求的目的而被特别地构造,或者其可以包括由存储在计算机中的计算机程序选择性地激活或再配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,诸如但不限于:包括软盘、光盘、CD-ROM和磁光盘的任何类型盘、只读存储器(ROM)、诸如动态RAM(DRAM)之类的随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光学卡、或者适用于存储电子指令并耦合到计算机系统总线的任何类型介质。

本文所呈现的算法和显示并不固有地涉及任何特定计算机或其它装置。各种通用系统可以与程序一起依照本文的教导来使用,或者可以证实构造更专业的装置以施行所要求的方法步骤是方便的。各种这些系统所要求的结构将从本文的描述而清楚。此外,未参照任何特定编程语言描述某些实施例。将了解的是,各种编程语言可以用来实现如本文所描述的这样的实施例的教导。

除本文所描述的之外,可以对所公开的实施例及其实现方式做出各种修改而不脱离其范围。因此,本文的说明和示例应当以说明性而非约束性的意义来解释。本发明的范围应当仅通过对所附权利要求的参考来度量。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号