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

文档序号:8269297阅读:536来源:国知局
用于非易失性主存储器系统中的自适应高速缓存更换的装置、系统和方法
【专利说明】用于非易失性主存储器系统中的自适应高速缓存更换的装 置、系统和方法
【背景技术】
[0001] 1 ?技术领域 本申请一般地涉及计算机系统中的高速缓存,并且更具体地但非排他性地涉及用于更 换高速缓存中的组块的方法。
[0002] 2?【背景技术】 高速缓存提供对用于处理计算机的资源的重要信息的相当接近、快速的访问。例如,高 速缓存经常用来存储已经由中央处理单元(CPU)在最近访问的存储器组块。但是,使高速 缓存足够大以存储所有可用存储器组块是不实际的。除这样大的高速缓存会使主存储器不 必要这一明显事实之外,缓存的存储器比主存储器更昂贵。为了保持成本下降,高速缓存往 往具有相对主存储器更小的尺寸。
[0003] 因为高速缓存不能存储主存储器中的每一个组块,所以在需要从高速缓存分配新 组块时,高速缓存必须使用更换策略来决定要更换当前高速缓存中的哪一组块。良好的更 换策略对于有效的高速缓存利用而言是高度有价值的。最不频繁使用(LFU)更换策略追踪 高速缓存中的每一个组块已经多么频繁地使用并且更换具有最低使用频率的组块。最近最 少使用(LRU)更换策略追踪自高速缓存中的每一个组块已经被使用开始经过了多久并且更 换自其上次使用之后已经过去最久的组块。LRU和LFU是两种常用的高速缓存更换策略。 然而,不管是LRU还是LFU都不适用于所有计算应用的要求。随着存储器系统的尺寸和速 度伴随集成电路技术的更新换代的发展,这样的存储器系统的性能对于高速缓存管理中的 低效的敏感不断增长。
【附图说明】
[0004] 通过示例的方式而非限制的方式在随附各图的图中对本发明的各个实施例进行 说明,并且在附图中: 图1是图示了根据实施例的用于提供自适应高速缓存更换的系统的元件的框图。
[0005] 图2是图示了根据实施例的用于确定高速缓存更换策略的参数的策略单元的元 件的框图。
[0006] 图3是图示了根据实施例的用于确定高速缓存更换策略的方法的元素的流程图。
[0007] 图4A是图示了根据实施例的用于提供自适应高速缓存更换的一组优先级的元素 的表格。
[0008] 图4B是图示了根据实施例的用于确定高速缓存更换参数的算法的元素的伪代 码。
[0009] 图4C是图示了根据实施例的用于收回缓存的数据的方法的元素的流程图。
[0010] 图5是图示了根据实施例的经受高速缓存更换的高速缓存系统的元件的框图。
[0011] 图6是图示了根据实施例的用于提供高速缓存更换的计算机平台的元件的框图。
【具体实施方式】
[0012] 某些实施例以各种方式提供自适应高速缓存更换,其例如考虑到非易失性主存储 器的非对称读取/写入性能并且基于非易失性存储器中的写入性能的当前状态来在更换 策略之间自适应地改变。在本文关于用于扇区高速缓存的高速缓存更换来讨论各实施例的 某些特征。扇区高速缓存例如可以以三个参数来表征:行尺寸(L)、扇区尺寸(S)和道尺寸 (W)。行尺寸(L)是高速缓存行的尺寸。扇区尺寸(S)是高速缓存行中的每一个扇区的尺 寸,其中高速缓存行中的扇区的数目于是为L/S。道尺寸(W)是一组中的道的数目。然而, 这样的讨论可以扩展成附加地或可替换地适用于任何各种其它高速缓存类型。
[0013] 图1示出根据实施例的用于对数据进行缓存的说明性计算机系统100的元件。计 算机系统100可以例如包括个人计算机的硬件平台,诸如台式计算机、笔记本计算机、超级 本或其它膝上型计算机、手持式计算机(例如平板、掌上电脑、手机、媒体播放器等)和/或其 它这样的计算机系统。可替换地或附加地,计算机系统100可以提供作为服务器、工作站或 者其它这样的计算机系统的操作。在实施例中,计算机系统100包括在不同策略之间自适 应地改变以用于施行高速缓存更换操作的一个或多个机制。
[0014]在实施例中,计算机系统100包括计算机系统100的至少一个处理器的一个或多 个核110,所述一个或多个核110在存储于计算机系统100中的数据上以各种方式访问和/ 或操作。一个或多个核110中的一些或所有可以驻留在任何各种处理器中,包括但不限于: 中央处理单元(CPU)、图形处理器、协处理器、安全性处理器等。例如,一个或多个核110可 以包括驻留在计算机系统100的相应不同处理器上的核,但是当然某些实施例不受这方面 的限制。
[0015] 计算机系统100还可以包括非易失性存储器130以存储用于由一个或多个核110 访问的数据。例如,非易失性存储器130可以包括随机存取存储器(RAM),包括但不限于 : 闪速存储器、非易失性静态RAM (nvSRAM)、铁电RAM (FRAM)、磁阻RAM (MRAM)、相变存储器 (PCM)、具有开关的相变存储器(PCMS)和任何各种其它这样的非易失性存储器硬件中的一 个或多个。非易失性存储器130可以作为计算机系统100的主存储器中的一些或所有操作, 但是当然某些实施例不受这方面的限制。
[0016] 在实施例中,计算机系统100还包括高速缓存120,例如包括易失性高速缓冲存储 器,其以各种方式(直接或间接)耦合到一个或多个核110和非易失性存储器130。高速缓 存120可以对用于由一个或多个核110访问的数据进行缓存,例如包括对存储在非易失性 存储器130中的数据版本进行缓存。在实施例中,高速缓存120中的一些或所有驻留在诸 如CPU之类的处理单元内,该处理单元包括一个或多个核110。可替换地或附加地,高速缓 存120中的一些或所有可以在这样的处理单元外部。通过说明而非限制的方式,高速缓存 120可以包括L1高速缓存、L2高速缓存和/或L3高速缓存等中的一个或多个。
[0017] 高速缓存120的操作可以由计算系统100的任何各种常规高速缓存管理技术和/ 或机制来支持。例如,高速缓存120可以是计算机系统100的多个高速缓存中的一个,例如 其中这样的高速缓存的状态通过计算机系统100的高速缓存一致性逻辑来追踪。这样的高 速缓存一致性逻辑可以例如追踪存储在高速缓存120中的数据的状态。通过说明而非限制 的方式,各种缓存的数据可以在不同时间利用多个分类中的一个进行分类。这样的分类可 以例如包括指示高速缓存的行当前不存储有用数据的"无效"分类。可替换地或附加地,这 样的分类可以包括指示高速缓存的行存储非易失性存储器130中所存储的数据的最新版 本的"干净"分类。可替换地或附加地,这样的分类可以包括指示高速缓存的行已经被写入 并且存储在非易失性存储器130中的对应数据已经过时的"脏"分类。在实施例中,数据的 分类可以是隐含的,例如其中未能将高速缓存的行分类为无效的隐含地将该高速缓存的行 分类为有效的,其中未能将高速缓存的行分类为脏的隐含地将该高速缓存的行分类为干净 的,等等。可以根据不同实施例使用追踪缓存的数据的状态的任何各种附加的或可替换的 分类。在某些实施例中,缓存的数据的这样的状态的追踪可以根据常规技术。为了避免混 淆各实施例的特征,在计算机系统100中未示出某些常规的高速缓存管理技术和/或机制。
[0018] 在实施例中,计算机系统100还包括高速缓存更换单元140,其包括例如硬件、固 件和/或执行软件的逻辑以选择用于收回的高速缓存120的行。用于收回的行的选择可以 根据高速缓存更换策略,例如从计算机系统100的多个高速缓存更换策略选择的策略。高 速缓存更换单元140可以例如包括或耦合到根据常规技术施行高速缓存更换的逻辑。在实 施例中,高速缓存更换单元140包括补充任何这样的常规高速缓存更换技术的逻辑。
[0019] 通过说明而非限制的方式,高速缓存更换单元140可以包括或以其它方式访问用 于在不同时间以各种方式实现不同高速缓存更换策略的逻辑。这样的策略可以包括用于将 高速缓存的组块(例如行)标识为具有要被收回的数据的相应不同标准。这样的数据的收回 可以使高速缓存120的行可用于对来自非易失性存储器130的其它数据进行缓存。在实施 例中,高速缓存更换单元140可以在计算机系统100的操作期间的给定时间点处从实现一 个高速缓存更换策略自适应地改变到实现另一高速缓存更换策略。这样的自适应改变例如 可以基于计算机系统100的状态的检测。通过说明而非限制的方式,这样的自适应策略改 变可以基于一个或多个性能度量,其描述访问高速缓存120中的数据和/或访问非易失性 存储器130中的数据的一个或多个操作。
[0020] 计算机系统10
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1