CN105493052B - 用于存储器管理的高速缓存操作 - Google Patents

用于存储器管理的高速缓存操作 Download PDF

Info

Publication number
CN105493052B
CN105493052B CN201380079190.4A CN201380079190A CN105493052B CN 105493052 B CN105493052 B CN 105493052B CN 201380079190 A CN201380079190 A CN 201380079190A CN 105493052 B CN105493052 B CN 105493052B
Authority
CN
China
Prior art keywords
cache
memory
victim
address
entries
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.)
Expired - Fee Related
Application number
CN201380079190.4A
Other languages
English (en)
Other versions
CN105493052A (zh
Inventor
T.克拉尼奇
M.格里斯
N.林克维特施
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105493052A publication Critical patent/CN105493052A/zh
Application granted granted Critical
Publication of CN105493052B publication Critical patent/CN105493052B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

按照本说明书,在后备存储器(诸如字节可寻址非易失性存储器)前面的存储器侧高速缓存的高速缓存操作包含组合第一操作、第二操作和第三操作中的至少两个操作,其中第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从高速缓存存储器中逐出受害者高速缓存条目。第二操作包含将受害者高速缓存条目从初级高速缓存存储器逐出到高速缓存存储器的受害者高速缓存存储器,并且第三操作包含转换存储器位置地址以在后备存储器的地址范围内置乱并散布存储器位置地址。相信,这些操作的各种组合可提供存储器的改进操作。本文描述了其它方面。

Description

用于存储器管理的高速缓存操作
技术领域
本说明书一般涉及计算机系统领域。更具体地说,本说明书涉及用于实现多级存储器层级的设备和方法。
背景技术
今天计算机创新的限制因素之一是存储器和存储装置技术。在常规计算机系统中,系统存储器(也称为主存储器、主要存储器、可执行存储器)通常由动态随机存取存储器(DRAM)实现。基于DRAM的存储器甚至在没有存储器读或者写发生时通常也耗电,以给内部电容器再充电。基于DRAM的存储器是易失性的,这意味着,一旦掉电,存储在DRAM存储器中的数据就丢失了。
附图说明
图1是按照本说明书一方面采用高速缓存操作进行存储器管理的存储器层级的一个实施例的示意图。
图2是图1存储器层级的存储器侧高速缓存的一个实施例的示意图。
图3描绘了按照本说明书一方面的操作的一个实施例,响应于监视的条件而有选择地启用和禁用写回过滤和业务均衡操作。
图4描绘了按照本说明书一方面用于存储器管理的高速缓存操作的一个实施例。
图5a和5b描绘了按照本说明书响应于监视的条件可由存储器侧高速缓存有选择地采用的备选替换策略。
图6描绘了按照本说明书一方面的多级地址转换操作的一个实施例。
图7a-7c描绘了按照本说明书一方面的基于异或的多级地址转换操作的一个实施例。
图8a-8c描绘了按照本说明书一方面的基于异或的多级地址转换操作的更详细示例。
图9是图1存储器层级的字节可寻址非易失性存储器的一个实施例的示意图。
图10是按照本说明书一方面采用高速缓存操作进行存储器管理的计算机架构的一个示例的示意图。
具体实施方式
常规计算机系统频繁依赖于多级高速缓存来改进性能。高速缓存是位于处理器与主存储器之间的高速度存储器,以比可能从系统存储器服务于存储器访问请求更快地服务于它们。从而,当处理器需要从系统存储器中的位置读或向其写时,它首先检查那个位置是否在高速缓存中。如果是,则高速缓存“命中”已经发生,并且处理器立即从高速缓存读或向其写,这比从主存储器读或向其写更快。相反,如果处理器未发现高速缓存中的存储器位置,则高速缓存“未中”已经发生。如果是,则高速缓存分配新条目,并且从主存储器拷贝数据。然后,从高速缓存的内容满足该请求。数据通常在主存储器与高速缓存之间以固定大小的块(称为高速缓存线)传送。当高速缓存线从主存储器拷贝到高速缓存中时,创建高速缓存条目。高速缓存条目将包含拷贝的数据以及请求的存储器位置(经常称为标签)。
此类高速缓存通常用易失性存储器诸如静态随机存取存储器(SRAM)实现。高速缓存管理协议可用于确保最频繁访问的数据和指令被存储在高速缓存的其中一级内,由此减少存储器访问事务处理的数量并改进性能。为了在高速缓存未中时为新条目腾出空间,高速缓存可能不得不逐出其中一个现有条目。它用于选择条目逐出的启发式被称为替换策略,其适应于若干设置条目上的关联式高速缓存,通常在整个高速缓存上不全面。在设置的关联式高速缓存中,高速缓存的多于一个存储器位置可被映射到主存储器的对应存储器位置。任何替换策略的根本问题是,它必须预测哪个现有高速缓存在将来最不可能使用。最近最少使用的(LRU)的一个流行的替换策略替换最近最少访问的条目。
计算机系统通常还包含非易失性大容量存储装置(也称为次级存储装置或盘存储装置)。常规大容量存储装置常常包含磁介质(例如硬盘驱动器)、光学介质(例如压缩盘(CD)驱动器、数字多功能盘(DVD)等)、全息介质和闪存(例如固态驱动器(SSD)、可移动闪速驱动器等)。一般而言,这些存储装置被视为输入/输出(I/O)装置,因为它们由处理器通过实现各种I/O协议的各种I/O适配器访问。这些I/O适配器和I/O协议消耗大量电力,并且可对平台的小片面积和形状因子具有重大影响。
便携式或移动装置(例如膝上型计算机、上网本、平板计算机、个人数字助理(PDA)、便携式媒体播放器、便携式游戏装置、数字相机、移动电话、智能电话、特色电话等)当未连接到永久电源时经常具有有限的电池寿命。此类移动装置可包含可移动非易失性大容量存储装置(例如嵌入式多媒体卡(eMMC)、安全数字(SD)卡),它们通常经由低功率互连和I/O控制器耦合到处理器以便满足活动和空闲功率预算。
计算机系统也常常具有非易失性存储器以存储固件(诸如引导存储器(也称为BIOS闪存))。常规计算机系统通常使用闪存装置来存储经常读取但很少(或从不)写入的永久系统信息(例如固件)。例如,由处理器执行的在引导过程期间初始化关键系统组件的初始指令(基本输入和输出系统(BIOS)映像)通常存储在闪速存储器装置中。当前在市场上可买到的闪速存储器装置一般具有有限的速度(例如50 MHz)。此速度由用于读协议的开销进一步降低(例如2.5 MHz)。为了加速BIOS执行速度,常规处理器一般在引导过程的预先可扩展固件接口(PEI)阶段期间高速缓存一部分BIOS代码。处理器高速缓存的大小对在PEI阶段中使用的BIOS代码(也称为“PEI BIOS代码”)的大小施加了约束。
三维(3D)交叉点存储器装置(例如相变存储器(PCM))是非易失性计算机存储器类型。PCM,有时也称为相变随机存取存储器(PRAM或PCRAM)、PCME、双向统一存储器或硫属化物RAM(C-RAM)),采用硫属化物玻璃的唯一行为。作为由电流经过而产生的热量的结果,硫属化物玻璃可在两种状态:结晶与非结晶之间切换。PCM的当前版本可获得两种附加的截然不同的状态。PCM经常比闪存提供更高的性能,因为PCM的存储元件可更快速地开关。还有,在PCM,可以字节为基础执行写(将各个位改变成1或0),而无需首先删除单元的整个块。另外,来自写的降级通常更慢(PCM装置可存活近似1亿个写循环)。PCM降级通常由于在编程、金属(和其它材料)迁移以及其它机制期间的热膨胀引起。
其它类型的NVRAM包含字节可寻址永久存储器 (BPRAM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻性存储器(RRAM)、RESET(非结晶)单元、SET(结晶)单元、PCME、奥氏存储器、铁电存储器(也称为聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称为自旋电子器件、自旋转移扭矩(SST)存储器、SPRAM(自旋转移扭矩RAM)、STRAM(自旋遂穿RAM)、磁阻存储器、磁存储器、磁随机存取存储器(MRAM))以及半导体-氧化物氮化物-氧化物-半导体(SONOS,也称为介电存储器)。
NVRAM的特性根据所采用的具体技术而变化。例如,具体NVRAM相比其它存储器技术在一些区域中可提供更高性能特性,同时提供更高访问等待时间和能耗。
存储器容量和性能要求随着处理器核以及新使用模型(诸如虚拟化)数量的增加而继续增加。此外,存储器功率和成本已经分别变成电子系统的总体功率和成本的重要组成部分。按照本说明书,在诸如字节可寻址非易失性存储器的主存储器(本文称为后备存储器)前面的存储器侧高速缓存的高速缓存操作包含组合第一操作、第二操作和第三操作中的至少两个操作,其中第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从高速缓存存储器中逐出受害者(victim)高速缓存条目。脏高速缓存线是在高速缓存中已经修改但尚未写回到字节可寻址非易失性存储器的数据线。受害者高速缓存条目是已经选择成从高速缓存中逐出的高速缓存条目。
第二操作包含将受害者高速缓存条目从初级高速缓存存储器逐出到高速缓存存储器的受害者高速缓存存储器和从受害者高速缓存存储器逐出受害者高速缓存条目中的至少一项(或二者),并且第三操作包含转换存储器位置地址以在字节可寻址非易失性存储器的地址范围内置乱并散布存储器位置地址。相信,这些操作的各种组合可提供存储器的改进操作。
在一个实施例中,存储器侧高速缓存主要充当过滤器以便对字节可寻址非易失性存储器进行写访问。例如,可实现备选替换策略,其比起脏高速缓存线宁愿干净高速缓存线进行高速缓存线逐出,以减少对字节可寻址非易失性后备存储器的写回的次数。此备选替换策略(本文称为干净逐出首先(CEF)策略)可与向存储器侧高速缓存的主高速缓存分区添加受害者高速缓存分区组合,其中在一个实施例中,受害者高速缓存分区专用于仅存储脏高速缓存线以将写业务进一步分开。
要认识到,干净逐出优先策略和受害者高速缓存分区之一或二者的实现可影响系统性能。然而,相信,在一些实施例中,性能度可有用地进行交易以对来自字节可寻址非易失性存储器的写业务进行过滤,并增强能效和存储器耐久性。
对于干净逐出优先策略,或者对于受害者高速缓存分区的供应(或对于二者),可在一个或多个存储元件(诸如存储器侧高速缓存)的输入或在一个或多个存储元件的输出添加地址转换,以提供在字节可寻址非易失性存储器的可用地址空间之间的业务置乱和散布,以促进或增强字节可寻址非易失性后备存储器的地址位置的耗损均衡。而且,在一些实施例中,多级地址转换可通过沿存储器操作路径的多个位置的地址转换来实现。从而,例如,可在存储元件(诸如存储器侧高速缓存)的输入和输出提供地址转换。要认识到,在分区之间也可提供此类地址转换。相信,按照本说明书的多级地址转换可降低字节可寻址非易失性存储器的耗损均衡算法上的压力,并且还降低或消除了对字节可寻址非易失性后备存储器的有限耐久力的某些恶意攻击的脆弱性。要认识到,作为对本文提到这些的补充或替代,可实现其它特征。
因而,在按照本说明书的存储器侧高速缓存的一个实施例中,初级高速缓存的使用可与脏受害者高速缓存和高速缓存的地址转换的使用组合。在另一实施例中,干净逐出优先策略可与高速缓存的地址映射组合。在又一实施例中,初级高速缓存的干净逐出优先策略可与脏受害者高速缓存的使用组合。在又一实施例中,初级高速缓存的干净逐出优先策略可与脏受害者高速缓存和高速缓存的地址映射的使用组合。根据具体应用,可实现其它组合。
按照本说明书的另一方面,要认识到,写过滤策略(诸如干净逐出优先策略)以及受害者高速缓存分区策略和耗损均衡策略(诸如地址转换策略)中的一个或多个可交替启用和禁用,并且在各种组合中“运行时”或者当装置在引导过程中初始化时,例如,以便改进装置寿命、能效或性能,当系统操作并且可操作条件改变时,诸如在工作载荷的执行阶。从而,系统可从干净逐出优先策略转变到更加性能驱动的最近最少使用的策略,并且再次返回到干净逐出优先策略,当条件保证时。例如,如果系统正在经历相对轻的工作载荷,则可使干净逐出优先策略能够在存储器操作性能降低可对总体系统性能具有较少影响的点减少到字节可寻址非易失性存储器的写业务。类似地,受害者分区可被刷新并禁用,并且然后随后用脏受害者线启用和重新加载,取决于诸如工作载荷的执行阶段的各种因素。类似地,当装置被引导和重新引导时,并且当条件保证时,地址转换可被交替启用和禁用。用这种方式,写过滤和地址转换策略的各种组合的有选择启用和禁用提供了用于权衡装置寿命和能效的性能的附加灵活性,当装置操作并且装置操作条件改变时。
图1图示了根据本说明书一个实施例采用高速缓存操作进行存储器管理的系统100,包含处理器核104、后备存储器108和存储器侧高速缓存110。存储器侧高速缓存110结合字节可寻址非易失性后备存储器108执行高速缓存操作,在图示的实施例中字节可寻址非易失性后备存储器108例如可以是非易失性随机存取存储器("NVRAM")。在一个实施例中,系统100除了存储器侧高速缓存110还可包含各级高速缓存,包含1级高速缓存120、2级高速缓存124和较低级高速缓存(LLC)高速缓存130。要认识到,取决于具体应用,按照本说明书的系统可比所描绘的那些具有更大或更少数量的高速缓存、存储器和处理器核。
在所图示的实施例中,性能增强可通过用相对小量的相对更高速度的存储器(诸如DRAM)实现像存储器侧高速缓存110这样的高速缓存,同时实现后备存储器108,其在此实施例中是系统存储器的主体,使用显著更便宜并且更密集的字节可寻址非易失性随机存取存储器(NVRAM)。除了系统存储器之外,要认识到,存储器侧高速缓存110和后备存储器114例如根据具体应用可实现为其它类型存储器装置,诸如存储装置。
对于NVRAM实现后备存储器108存在许多可能的技术选择,包含PCM、字节可寻址持久存储器(BPRAM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻性存储器(RRAM)、RESET(非结晶)单元、SET(结晶)单元、PCME、奥氏存储器、铁电存储器(也称为聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称为自旋电子器件、SPRAM(自旋转移扭矩RAM)、STRAM(自旋遂穿RAM)、磁阻存储器、磁存储器、磁随机存取存储器(MRAM))以及半导体-氧化物氮化物-氧化物-半导体(SONGS,也称为介电存储器)。为了用在本文描述的系统100的一个实施例中,NVRAM具有如下特性:
(1)即便掉电它也保存其内容,类似于在固态盘(SSD)中使用的闪存,并且不同于是易失性的SRAM和DRAM;
(2)当空闲时比易失性存储器(诸如SRAM和DRAM)更低的功耗;
(3)类似于SRAM和DRAM的随机存取(也称为随机可寻址);
(4)以比用在SSD中的FLASH更低级的粒度(例如字节级、字级、高速缓存线级等)可重写并可擦除(其仅能在某个时间被重写并擦除“块”——对于NOR FLASH的大小最低限度是64K字节,而对于NAND FLASH是16K字节);
(5)可用作系统存储器并且分配所有或部分系统存储地址空间;以及
(6)如下一项或多项:
a)比非易失性存储器/存储装置技术(诸如FLASH)更快的写速度以及比DRAM更高的写等待时间;
b)非常高的读速度(比闪存更快,并且接近或相当于DRAM读速度);
c)直接可写(而不是在写数据(比如在SSD中使用的闪存)之前需要擦除(用I覆写));
d)在失效之前的高(例如2或3)数量级的写耐久力(比在SSD中使用的引导ROM和FLASH大);和/或
e)写与读相比较,能量成本更高,而可用峰值带宽更低。
如上面所提到的,与FLASH形成对照,FLASH通常在某个时间被重写并且擦除整个“块”,在任何给定实现中访问NVRAM的粒度级都可取决于具体存储器控制器和具体存储器总线或NVRAM耦合到的其它类型总线。例如,在NVRAM被用作系统存储器的一些实现中,NVRAM可以以高速缓存线(例如64字节或128字节高速缓存线)的粒度访问,尽管固有能力是以字节粒度访问,因为高速缓存线是存储器子系统访问存储器的那级。从而,当NVRAM被部署在存储器子系统内时,它可以以与在同一存储器子系统中使用的DRAM(例如“存储器侧高速缓存”)相同的粒度级访问。即便如此,存储器控制器和存储器总线或其它类型总线对NVRAM的访问粒度级小于FLASH使用的块大小和I/O子系统的控制器和总线的访问大小的粒度级。NVRAM还可合并耗损均衡算法以考虑到在字节可寻址非易失性存储器级的存储单元可开始于在若干写访问之后耗尽的事实,特别是在显著数量的写可发生的情况下,诸如在系统存储器实现中。由于用这种方式高循环计数块最有可能耗尽,因此耗损均衡通过互换高循环计数块与低循环计数块的地址而在字节可寻址非易失性存储器单元上散布写。要指出,大部分地址互换通常对应用程序是透明的,因为它由硬件、低级软件(例如低级驱动程序或操作系统)或二者的组合处置。相信,按照本说明书的高速缓存级的地址转换可允许NVRAM自身内的耗损均衡操作中的放松或减少。
本说明书一些实施例的后备存储器108用NVRAM实现,但不一定局限于任何具体存储器技术。后备存储器108在存储器/存储装置层级中的其特性和/或其应用方面与其它指令和数据存储器/存储装置技术有区别。例如,后备存储器108不同于:
1)静态随机存取存储器(SRAM),其可用于一个或多个高速缓存120-130,这些高速缓存可在处理器核内部(例如在与处理器核104相同的管芯上)或在处理器核外部(例如在与处理器核104相同或不同的封装中),并且可专用于具体处理器核,或可由各种处理器核共享;
2)动态随机存取存储器(DRAM),其可用于一个或多个高速缓存120-130,这些高速缓存可在处理器核内部(例如在与处理器核104相同的管芯上)或在处理器核外部(例如在与处理器核104相同或不同的封装中),并且可专用于具体处理器核,或可由各种处理器核共享;
3)闪存/磁盘/光盘,应用为大容量存储装置(未示出);以及
4)存储器(诸如闪存或其它只读存储器(ROM)),应用为固件存储器(其可以指的是引导ROM、BIOS FLASH和/或TPM FLASH)(未示出)。
后备存储器108可被用作可直接由处理器104寻址并且能够充分跟上处理器104的指令和数据存储装置,与应用为大容量存储装置的FLASH/磁盘/光盘形成对照。此外,如上面所讨论和下面详细描述的,后备存储器108可被放置在存储器总线上,并且可与存储器控制器直接通信,存储器控制器又与处理器104直接通信。
后备存储器108可与其它指令和数据存储技术(例如DRAM)组合以形成混合存储器(也称为协同定位的PCM和DRAM;第一级存储器和第二级存储器;FLAM(FLASH和DRAM))。要指出,至少其中一些以上技术(包含PCM)可用于大容量存储装置,作为系统存储器的补充或替代,并且当用这种方式应用时不需要由处理器可随机访问、字节可寻址或直接可寻址。
为了便于说明,大部分剩余应用将是指的是“NVRAM”,或者更确切地说是“3D交叉点存储器”,作为用于字节可寻址非易失性存储器108的技术选择。因此,术语NVRAM、3D交叉点存储器和后备存储器在如下论述中可互换使用。然而,应该意识到,如上面所论述的,对于后备存储器也可利用不同技术。还有,NVRAM不限于用作后备存储器。
“存储器侧高速缓存”110是配置在后备存储器108前面的中级存储器,其在一个实施例中相对于字节可寻址非易失性存储器具有更低读/写访问等待时间和/或更对称读/写访问等待时间(即具有大致相当于写时间的读时间)。在一些实施例中,存储器侧高速缓存110比字节可寻址非易失性存储器108具有显著低的写等待时间,但类似的(例如略低的或相等的)读等待时间;比如,存储器侧高速缓存110可以是易失性存储器(诸如易失性随机存取存储器(VRAM)),并且可包括DRAM或其它高速基于电容器的存储器。然而,要指出,本说明书的基本原理不限于这些特定存储器类型。此外,存储器侧高速缓存110可具有相对低的密度,和/或可能比字节可寻址非易失性存储器108制造起来更昂贵。在一个实施例中,存储器侧高速缓存110配置在字节可寻址非易失性存储器108与处理器高速缓存120-130之间。在下面描述的一些实施例中,存储器侧高速缓存110配置为一个或多个存储器侧高速缓存(存储器侧高速缓存110)以掩蔽字节可寻址非易失性存储器的性能和/或使用限制,例如包含读/写等待时间限制和存储器降级限制。在这些实现中,高速缓存120-130、存储器侧高速缓存110和后备存储器108的组合操作在近似、相当于或超过仅使用DRAM作为系统存储器的系统的性能级。如下面详细论述的,尽管在图1中显示为“高速缓存”,但存储器侧高速缓存110可包含它作为执行高速缓存角色的补充或替代而执行其它角色的模式。
存储器侧高速缓存110可位于处理器管芯上,和/或位于处理器管芯外部(例如在位于CPU封装上、位于CPU封装外部的单独管芯上(具有到CPU封装的高带宽链路),例如在存储器双列直插式存储器模块(DIMM)、竖板/夹层或计算机母板上)。存储器侧高速缓存110可使用单个或多个高带宽链路(诸如DDR或其它事务高带宽链路)与处理器核104通信耦合。在一个实施例中,存储器侧高速缓存110具有是工作载荷的活动工作组大小(WSS)的至少1/8大小的存储器容量。要认识到,工作载荷的活动工作组大小(WSS)的大小可根据应用(诸如手持装置、客户端装置或服务器)而变化。要进一步认识到,取决于具体应用,其它相对大小可以是适当的。
高速缓存常常被组织为组关联的,其中存储器侧高速缓存110的多于一个存储器位置可被映射到字节可寻址非易失性存储器104的对应存储器位置。高速缓存通常局限于基本上小于从中获得高速缓存条目的字节可寻址非易失性存储器大小的大小。因此,为了保持高速缓存的有限容量内的高速缓存条目的数量,常常采用替换策略来用被视为处理器核更可能请求的不同高速缓存条目来替换被视为处理器核不太可能请求的高速缓存条目。
公共替换策略是最近最少使用(LRU)替换策略,其中在存储器请求中最近最少使用的高速缓存条目被从高速缓存中逐出,并用有希望更可能是存储器请求目标的高速缓存条目来替换。LRU替换策略的LRU算法通常不考虑用于在受害者选择期间标记脏高速缓存条目的脏标志。
图2是按照本说明书的一方面具有可被启用以选择备选高速缓存条目替换策略210的逐出逻辑200的存储器侧高速缓存110的一个实施例的示意图。在所图示的实施例中,可被选择的一个备选高速缓存条目替换策略210是干净逐出首先(CEF)策略,其表示偏爱逐出干净高速缓存线而不喜欢逐出脏高速缓存线以减少到字节可寻址非易失性存储器108的写回业务的一类策略。
在本说明书的另一方面,存储器侧高速缓存110可被有选择地启用以将其存储器位置分区成两个或更多分区,诸如主分区220和第二分区,其在所图示的实施例中是受害者分区224。例如,代替向字节可寻址非易失性存储器108排出脏高速缓存受害者,依照可有选择地启用的脏受害者高速缓存策略228,可在专用高速缓存分区、受害者分区224中捕获由逐出逻辑200从主分区220逐出的那些脏高速缓存条目。按照干净逐出优先策略210,又可从脏受害者分区224逐出脏高速缓存线。如果受害者分区224仅专用于脏受害者,则脏受害者分区224将不含有干净高速缓存线。从脏受害者分区224逐出的脏高速缓存线被写回到字节可寻址非易失性存储器108以保存写到那个高速缓存条目的写数据。
在所图示的实施例中,只要关注高速缓存读和写操作,两个高速缓存分区,主分区220和受害者分区224,就有效地操作为一个高速缓存。从而,高速缓存查找扫描两个分区220、224。从而,在此实施例中,高速缓存线存在于主分区220中或者受害者分区224中。在填充存储器侧高速缓存时,在一个实施例中,按照主分区高速缓存策略230,新高速缓存线可被插入到主分区220中而不是受害者分区224中,使得受害者分区224仅保存来自主分区220的脏逐出。
在所图示的实施例中,存储器侧高速缓存110的可用高速缓存容量的具体部分可仅仅专用于受害者分区224以便高速缓存脏高速缓存线。相信,启用专用受害者分区(诸如分区224)中的脏受害者高速缓存可便于将存储器侧高速缓存110的总体容量降低25%那么多,而没有显著影响到字节可寻址非易失性存储器108的写回业务量。因而,在一些实施例中,用较小不太昂贵的存储器侧高速缓存110可替代较大更昂贵的高速缓存,其中作为高速缓存110大小的总体降低的结果,到字节可寻址非易失性存储器108的写回业务上的任何增大都保持在可接受极限内。
在一个实施例中,受害者分区224的容量的可行分配是主分区220容量的至少1/4到1/2,这是容量的有效分配。还有,相信,受害者分区224的关联性有利地执行主分区220的关联性的一半。如果受害者分区224太小,则相信,一种情况可导致相比脏高速缓存线上的命中存在从受害者分区224的更多逐出。如果是,则可降低高速缓存受害者的功效。相反,如果太多高速缓存空间被指配给受害者分区224,则相信,总体高速缓存性能可下降,因为高速缓存命中可有利于对脏高速缓存线的读和写,但损失了对主分区220中的干净高速缓存线的高速缓存命中。一般而言,相信,具体分区的适合大小和关联性可根据具体应用而变化。
在本说明书的又一方面,可对于存储器侧高速缓存110有选择地启用地址转换。在所图示的实施例中,输入地址映射逻辑240提供在存储器侧高速缓存110的输入端,以映射来自处理器核104的存储器请求的地址。此外,输出地址映射逻辑244提供在存储器侧高速缓存110的输出端,以再次映射输入地址映射逻辑240的映射地址。相信,一个或多个此类映射或重新映射操作可实现在字节可寻址非易失性存储器108的可用地址空间内的改进的业务置乱和散布。相信,增大的业务分布便于通过降低对耗损均衡算法的压力并降低恶意攻击的影响来延长非易失性存储器(诸如字节可寻址非易失性存储器108)的平均寿命。如下面更详细说明的,所图示实施例的地址映射逻辑可包含专用或基于的映射函数。要认识到,根据具体应用可使用其它映射函数。
在本说明书的又一方面,存储器侧高速缓存110包含装置监视和策略选择逻辑250。图3描绘了存储器侧高速缓存110的操作实例,写过滤策略(诸如干净逐出优先策略)以及受害者高速缓存分区策略和耗损均衡策略(诸如地址转换策略)中的一个或多个可有选择地并且交替地启用和禁用,并且在各种组合中“运行时”为了改进装置寿命、能效或性能,当系统操作并且可操作条件改变时,诸如在工作载荷的执行阶段。
在第一操作,监视装置操作(块300)。例如,诸如图2的装置监视逻辑250的逻辑可监视装置所经历的工作载荷级别。还有,可监视装置的状态。例如,装置可处于引导过程中,其中初始指令由处理器执行以在引导过程(基本输入和输出系统(BIOS)镜像)期间初始化关键系统组件。基于现有条件(诸如装置工作载荷或装置状态),当装置操作时,逻辑250可实时判定例如是否应该采用备选替换策略(诸如干净逐出优先策略)(块310)。如果是,则启用干净逐出优先策略(块314)。相反,基于现有条件(诸如装置状态或工作载荷),当装置操作时,逻辑250进行实时判定以便禁用(块318)干净逐出优先策略。从而,系统例如可从干净逐出优先策略转变到更加性能驱动的最近最少使用的策略,并且再次返回到干净逐出优先策略,当条件保证时。例如,如果系统正在经历相对轻的工作载荷,则可使干净逐出优先策略能够在存储器操作性能降低可对总体系统性能具有较少影响的点减少到字节可寻址非易失性存储器的写业务。类似地,在引导过程期间可启用或禁用干净逐出优先策略。
另外,基于现有条件(诸如装置状态或工作载荷),当装置操作时,逻辑250可进行实时判定是否应该采用(块320)脏受害者分区。如果是,则启用脏受害者分区(块324)。相反,基于现有条件(诸如工作载荷),当装置操作时,逻辑250可进行实时判定以便禁用(块328)先前启用的脏受害者分区。如果是,则受害者分区可被刷新并禁用,并且然后随后用脏受害者线启用和重新加载,取决于诸如工作载荷的执行阶段的各种因素。类似地,在引导过程期间可启用或禁用受害者分区。
而且,基于现有条件(诸如装置状态),逻辑250可进行判定是否应该采用(块330)输入地址映射。如果是,则启用输入地址映射(块334)。相反,基于装置状态,逻辑250可进行判定以禁用(块338)先前启用的输入地址映射。用类似方式,逻辑250可进行判定是否应该采用(块340)输出地址映射。如果是,则启用输出地址映射(块344),或者如果否,则禁用(块348)。例如,在引导过程期间,在高速缓存存储器输入端、输出端和/或在分区之间,可响应于用户选择的输入或为装置安装的具体引导指令,而有选择地启用或禁用地址转换。用这种方式,写过滤和地址转换策略的各种组合的有选择启用和禁用提供了用于权衡装置寿命和能效的性能的附加灵活性,当装置操作并且装置操作条件改变时,或者例如当装置在引导过程中初始化时。
要认识到,在其它实施例中,替换策略、受害者分区和地址映射中的一项或多项在采用按照本说明书的高速缓存操作的装置的制造时可以是固定的。从而,替换策略、受害者分区和地址映射中的一项或多项在采用按照本说明书的高速缓存操作的装置的制造时可以是永久启用或禁用的。
图4描绘了存储器侧高速缓存110的高速缓存替换操作的示例,其中写过滤策略(诸如干净逐出优先策略和受害者高速缓存分区策略)以及耗损均衡策略(诸如地址转换策略)中的一项或多项已经在各种组合中被启用或禁用,制造时是永久的,或者响应于所监视的装置操作是暂时的。在所图示的实施例中,备选替换策略包含最近最少使用的(LRU)替换策略和基于最近最少使用的策略的干净逐出优先策略。因而,在初始化(块400)高速缓存替换策略时,确定(块404)高速缓存替换搜索窗口500(图5a)中的最近最少使用的(LRU)高速缓存线是干净的。图5a图示了基于最近最少使用的策略的干净逐出优先策略的实现的一个示例。在此示例中,干净逐出优先策略将高速缓存条目510a-n所表示的高速缓存条目按处理器核最近对它们的使用(如果有的话)进行分类,其中最近使用由箭头514表示。从而,在此示例中,在箭头514底部的高速缓存条目510a是最近最少使用的高速缓存条目,而在箭头514尖部的高速缓存条目510n是最近最多使用的高速缓存条目。
如果确定(块404)最近最少使用的高速缓存条目(也就是高速缓存条目510a)的线是干净的,则可从存储器侧高速缓存110逐出最近最少使用的高速缓存条目的干净线(块408)。然而,在图5a的示例中,最近最少使用的高速缓存条目510a的线被描绘为脏。因而,确定(块410)是否已经启用干净逐出优先策略(诸如干净逐出策略210(图2))。如果是,则确定(块414)在搜索窗口500中是否存在干净线。在图5a的示例中,搜索窗口500中的最近最少使用的干净线是高速缓存条目510c的线。因而,启用了干净逐出优先策略,最近最少使用的干净线被指定为受害者,由标示520a所指示,并从存储器侧高速缓存110逐出(块408)。
相反,如果干净逐出优先策略尚未启用(块410)(或者如果确定(块414)搜索窗口500不含有任何干净线),则高速缓存条目510a的最近最少使用的脏线被指定为受害者,如图5b中的标示520b所指示的,而不是图5a中的高速缓存条目510c。图5b图示了作为备选策略的最近最少使用的策略的实现的一个示例,其可作为对干净逐出优先策略的备选有选择地启用。
在指定脏线作为受害者时,因为搜索窗口500不含有任何干净线,或者因为干净逐出优先策略尚未启用,所以确定(块418)脏受害者高速缓存分区是否已经启用。如果是,则从主分区220(图2)逐出高速缓存条目510a的最近最少使用的脏线(块420),并将其传送到受害者分区224。
如果脏受害者分区尚未启用(块418),则确定(块440)输出地址映射逻辑244(图2)的输出地址映射已经启用。如果是,则最近最少使用的高速缓存条目510a的脏线的地址可由输出地址映射逻辑244(图2)映射(块444)(或重新映射),并且最近最少使用的高速缓存条目510a的脏线可从存储器侧高速缓存110逐出(块448),并写回到字节可寻址非易失性存储器108。作为输出地址映射的结果(块444),写回可被更均匀地分布在字节可寻址非易失性存储器108的整个地址空间上,以将写回的耗损更均匀地分布在字节可寻址非易失性存储器108的存储器位置之间。如果输出地址映射尚未启用(块440),则最近最少使用的高速缓存条目510a的脏线可从存储器侧高速缓存110逐出(块450),并写回到字节可寻址非易失性存储器108,无需输出地址映射。
通过从存储器侧高速缓存110逐出干净线(块408)或脏线(块448、450),先前由逐出的高速缓存线占用的高速缓存存储器位置可由来自字节可寻址非易失性存储器108的数据的新线占用。因而,如果启用输出地址映射(块440用于脏线逐出,或者块454用于干净线逐出),则可映射向字节可寻址非易失性存储器108请求数据新线的读请求的存储地址(块458)(或者如果也启用输入地址映射,则重新映射),之后从字节可寻址非易失性存储器108读取数据新线,并在存储器侧高速缓存110中高速缓存(块460)。如果不启用输出地址映射(块440用于脏线逐出,或者块454用于干净线逐出),则向字节可寻址非易失性存储器108请求数据新线的读请求的存储地址可被直接施加到字节可寻址非易失性存储器108,无需输出地址映射(或重新映射)以从字节可寻址非易失性存储器108读取数据新线,并在存储器侧高速缓存110中高速缓存它(块460)。
在一个实施例中,逐出操作可包含每次从主分区的逐出和从受害者分区的脏线逐出。相信,此类布置可改进高速缓存性能。在另一实施例中,逐出操作常常可局限于从主分区的脏线逐出改进写业务减少。
在所图示的实施例中,相信,作为一般情况,大搜索窗口500可便于从存储器侧高速缓存110到字节可寻址非易失性存储器108的写回的改进减少。相反,相信,就高速缓存命中相对高速缓存未中而言,存储器侧高速缓存110的大搜索窗口没有在很大程度上负面影响存储器侧高速缓存110的高速缓存质量。搜索窗口大小(SWS)指的是高速缓存关联性(每个高速缓存组的路数)。相信,所有高速缓存路的至少50%的SWS对于良好的写业务减少是有益的。
在本说明书的另一方面,多级地址转换可通过沿存储器操作路径的多个位置的地址转换来实现。从而,例如,可在存储元件(诸如存储器侧高速缓存)的输入和输出提供地址转换。要认识到,在分区之间也可提供此类地址转换。相信,按照本说明书的多级地址转换可增强在整个可用地址空间上写回操作的散布以降低字节可寻址非易失性存储器的耗损均衡算法上的压力,并且还降低或消除了对字节可寻址非易失性存储器的有限耐久力的某些恶意攻击的脆弱性。图6示出了按照本说明书的多级地址转换操作的一个实施例。在第一操作,接收(块600)存储器I/O操作,例如诸如存储器写请求。如果地址输入映射被启用(块610),则输入地址映射逻辑(诸如图2的逻辑240)映射存储器位置的地址(块614),并对由映射的输入地址标识的存储器侧高速缓存110的高速缓存条目执行写操作(块620)。如果地址输入映射未被启用,则对由未修改的输入地址标识的存储器侧高速缓存110的高速缓存条目执行写操作(块620)。
在一个实施例中,地址映射基于异或(XOR)映射函数。相信,取决于具体应用,由此类函数施加的任何计算开销可能都是最小的。例如,如图7a中所示出的,请求的存储器操作(块600,图6)的原始地址700可被分成标签地址(t)和组地址(s)。例如,在一些实施例中,标签地址(t)可表示请求的存储器位置,而组地址(s)可表示与请求的存储器位置关联的存储器侧高速缓存110的存储器位置。在此实施例中,异或映射函数710修改组地址(s),并且标签地址(t)保持不修改。映射的组地址(s')由异或映射函数710生成,其在图8中描绘为如下:s'=A*s+B*t,其中映射的组地址(s')是一系列运算的结果,这些运算包含将输入组地址(s)与固定矩阵A异或(函数800),将输入标签地址(t)与固定矩阵B异或(函数810),并将这些直接结果彼此相加(函数820)以提供映射的组地址(s'),其被级联到未修改的标签地址(t)以提供映射的存储地址714。在所图示的实施例中,矩阵A和矩阵B是固定位串,在数量上分别对应于组地址(s)和标签地址(t)的位数。要认识到,取决于具体应用,在其它实施例中可使用其它类型数字、数字运算和逻辑运算以及映射函数。
按照由存储器侧高速缓存110实现的替换策略,在由输入地址映射逻辑240(图2)映射的映射存储地址714的脏高速缓存条目可易受(块624,图6)被逐出到脏受害者分区224(图2)。如果是,并且如果脏分区映射已经被启用(块630),则存储地址714可被再次映射(块634),也就是,由分区内地址映射逻辑260(图2)重新映射到重新映射的地址720,如图7b中所示出的。在所图示的实施例中,映射逻辑260(像映射逻辑240)包含如图7b中所示出的映射逻辑710。
因而,异或映射函数修改组地址(s'),并且标签地址(t)保持不修改。如图8b所示,重新映射的组地址(s")以类似于图8a中描绘的方式由异或映射函数生成,如下:
s"=C*s'+D*t ,
其中重新映射的组地址(s")是一系列运算的结果,这些运算包含将输入组地址(s)与固定矩阵C异或(函数800,图8b),将输入标签地址(t)与固定矩阵D异或(函数810),并将这些直接结果彼此相加(函数820)以提供重新映射的组地址(s"),其被级联到未修改的标签地址(t)以提供重新映射的存储地址720。脏受害者高速缓存条目然后可被逐出(块640)到脏受害者分区224(图2),在由重新映射的组地址(s")和标签(t)标识的高速缓存条目位置。如果分区内地址映射未被启用,则脏受害者高速缓存条目可被逐出(块640)到脏受害者分区224(图2),如果输入地址映射被启用,则在由映射的组地址(s')标识的高速缓存条目位置,或者如果输入地址映射未被启用,则在由未映射的组地址(s)标识的脏受害者分区存储器位置。
按照由存储器侧高速缓存110实现的替换策略,在由分区内地址映射逻辑260(图2)重新映射的重新映射的存储地址720的脏高速缓存条目可易受被逐出(块644,图6)到脏受害者分区224(图2)并写回到字节可寻址非易失性存储器108。如果是,并且如果输出地址映射已经被启用(块650),则存储地址720可被再次映射(块654),也就是,由映射逻辑710重新映射到重新映射的地址724,如图7c中所示出的。
因而,异或映射函数710修改组地址 (s"),并且标签地址(t)保持不修改。如图8c所示,重新映射的组地址(s")以类似于图8a中描绘的方式由异或映射函数生成,如下:
s'"=E*s"+F*t ,
其中映射的组地址(s''')是一系列运算的结果,这些运算包含将输入组地址(s")与固定矩阵E异或(函数800,图8c),将输入标签地址(t)与固定矩阵F异或(函数810),并将这些直接结果彼此相加(函数820)以提供映射的组地址(s'"),其被级联到未修改的标签地址(t)以提供重新映射的存储地址724。脏受害者高速缓存条目然后可被逐出并写回(块660)到字节可寻址非易失性存储器108,在由重新映射的组地址(s'")和标签(t)标识的存储器位置。如果输出地址映射未被启用,则脏高速缓存条目可被写回(块660)到字节可寻址非易失性存储器108(图2),如果分区内地址映射和输入地址映射被启用,则在由重新映射的组地址(s")和标签(t)标识的存储器位置,或者如果输入地址映射被启用,则写回到字节可寻址非易失性存储器108(图2)在由映射的组地址(s')和标签(t)标识的存储器位置,或者如果输入地址映射未被启用,则写回到字节可寻址非易失性存储器108(图2)在由未映射的组地址(s)和标签(t)标识的存储器位置。
在所图示的实施例中,存储器侧高速缓存110包含用于执行上面所描述的各种操作的逻辑。例如包含逐出逻辑200、装置监视和策略选择逻辑250、输入地址映射逻辑240、分区内地址映射逻辑260和输出地址映射逻辑244的这个逻辑可实现在一个或多个控制器中,控制器包含硬件、软件、固件以及它们的各种组合中的一个或多个。
图9示出了用在图1存储器层级中的后备存储器108的一个示例。后备存储器108包含3D交叉点存储器后备存储器控制器900和一组3D交叉点存储器后备存储器模块910a-n。在一个实施例中,3D交叉点存储器后备存储器530a-i的单池可在系统存储器与存储使用之间动态共享。
本文所使用的系统存储器是对在处理器核104上执行的软件可见和/或由其直接可寻址的存储器;而高速缓存存储器110、120-130可对软件透明地操作,在某种意义上,它们未形成系统地址空间的直接可寻址部分,但核也可支持指令的执行以允许软件向一些或所有高速缓存提供某种控制(配置、策略、线索等)。系统存储器细分成区域可作为系统配置过程的一部分(例如由系统设计者)人工执行,和/或可通过软件自动执行。
在此实施例中,整个3D交叉点存储器池530a-i可被细分成4KB大小的“块”,并且可使用表排除坏块,并提供用于耗损均衡操作的备用块。此外,该表还可包含每个块到软件所使用的“逻辑”块地址的映射。
无论何时由于耗损均衡而移动块时,都可更新地址间接表(AIT) 920。当这发生时,软件所使用的逻辑块地址可映射到不同3D交叉点存储器装置地址(PDA)。在一个实施例中,此映射被存储在AIT 中,并且在每次耗损均衡移动时更新。相信,按照本说明书的高速缓存级的地址转换可允许NVRAM自身内的耗损均衡操作中的放松或减少。
如所图示的,3D交叉点存储器控制器900包含地址映射逻辑924以响应于耗损管理单元930和地址间接单元934将系统地址映射到3D交叉点存储器块而映射系统地址(其可能之前已经由存储器侧高速缓存110映射了,如上面论述的)。在一个实施例中,耗损管理逻辑930实现耗损均衡算法以考虑如下事实:在太多写访问和/或擦除访问之后,3D交叉点存储器910a-n的存储单元开始耗尽。耗损均衡跨3D交叉点存储器装置的存储单元散布写和擦除,例如通过迫使具有低循环计数的数据块偶尔移动,并由此允许高循环数据块被放入存储低循环数据块的存储单元中。通常,大多数块不循环,但高循环计数块最有可能失败,并且耗损均匀化将高循环计数块的地址与低循环计数块互换。耗损管理逻辑930可使用一个或多个计数器和寄存器跟踪循环计数(例如,每当检测到循环时,计数器可递增1,并且结果可被存储在该组寄存器中)。在一个实施例中,地址间接逻辑934包含地址间接表(AIT),含有写操作应该指向的3D交叉点存储器块的指示。AIT可用于自动在存储器与存储装置用途之间移动块。从软件角度看,对所有块的访问使用传统存储器载荷/存储语义(即,耗损均衡和地址间接操作对软件透明地发生)。在一个实施例中,AIT用于将软件生成的系统地址转换成PDA。此转换便于均匀地耗损3D交叉点存储器装置。因此,数据将在PDA空间中来回移动以避免热点。当此类移动发生时,系统地址空间与PDA之间的关系将改变,并且AIT将被更新以反映此新转换。
示例
如下示例涉及另外实施例。
示例1是一种用于具有存储器位置的字节可寻址非易失性存储器的装置,包括:
高速缓存,具有高速缓存存储器和多个高速缓存条目,并适合于在所述高速缓存存储器的高速缓存条目中高速缓存来自字节可寻址非易失性存储器中的存储器位置的数据,其中所述高速缓存存储器具有初级高速缓存存储器或者具有初级高速缓存存储器和受害者高速缓存存储器二者,并且其中所述高速缓存具有用于执行第一操作的第一操作控制器、用于执行第二操作的第二操作控制器和用于执行第三操作的第三操作控制器中的至少两个控制器,
其中第一操作控制器包含用于执行第一操作的逻辑,第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,
其中第二操作控制器包含用于执行第二操作的逻辑,第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的所述受害者高速缓存存储器,并且
其中第三操作控制器包含用于执行第三操作的逻辑,第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址。
在示例2中,示例1的主题可选地可包含:其中所述高速缓存具有第一操作控制器、第二操作控制器和第三操作控制器中的全部三个。
在示例3中,示例1的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
在示例4中,示例3的主题可选地可包含:监视逻辑,用于监视所述装置的操作,并根据监视的操作有选择地启用和禁用第一操作、第二操作和第三操作中的至少一个。
在示例5中,示例1的主题可选地可包含:其中所述高速缓存具有第二操作控制器,所述装置进一步包括具有用于从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器的逻辑的控制器。
在示例6中,示例1的主题可选地可包含:其中用于转换所述存储器位置地址的第三操作控制器逻辑包含实现用于置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址的异或函数的逻辑。
在示例7中,示例1的主题可选地可包含:用于有选择地启用和禁用第一操作控制器、第二操作控制器和第三操作控制器中的至少一个作为装置引导以将所述高速缓存存储器配置为装置引导的逻辑。
在示例8中,示例1的主题可选地可包含:其中第三操作控制器包含用于多级地址转换的逻辑,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
在示例9中,示例1-7中任一示例的主题可选地可包含:其中第三操作控制器包含用于多级地址转换的逻辑,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
示例10是本文参考附图所充分描述的并通过附图所图示的装置。
示例11是用于高速缓存操作的方法,包括:
在包含初级高速缓存存储器的高速缓存存储器的高速缓存条目中高速缓存来自字节可寻址非易失性存储器中的存储器位置的数据;以及
执行第一操作、第二操作和第三操作中的至少两个,
其中第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,其中第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的所述受害者高速缓存存储器,并且
其中第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址。
在示例12中,示例11的主题可选地可包含:其中所述执行第一操作、第二操作和第三操作中的至少两个包含执行第一操作、第二操作和第三操作中的全部三个。
在示例13中,示例11的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
在示例14中,示例13的主题可选地可包含:有选择地启用和禁用第一操作、第二操作和第三操作中的至少一个作为系统引导以将所述高速缓存存储器配置为系统引导。
在示例15中,示例11的主题可选地可包含:其中执行的所述操作进一步包含执行第二操作,所述方法进一步包括从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器。
在示例16中,示例11的主题可选地可包含:其中所述转换所述存储器位置地址包含使用异或函数置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址。
在示例17中,示例11的主题可选地可包含:监视具有所述高速缓存存储器的装置的操作,并根据监视的操作有选择地启用和禁用第一操作、第二操作和第三操作中的至少一个。
在示例18中,示例11的主题可选地可包含:多级地址转换,所述多级地址转换包含在所述高速缓存存储器的分区之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
在示例19中,示例11-17中任一示例的主题可选地可包含:多级地址转换,所述多级地址转换包含在所述高速缓存存储器的分区之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
示例20是包括执行在以上任一示例中阐述的方法的部件的设备。
示例21是机器可读存储装置,包含机器可读指令,所述指令当执行时实现在以上任一示例中阐述的方法或设备。
示例22是本文参考附图所充分描述的并通过附图所图示的方法。
示例23是适合于高速缓存操作的系统,包括:
处理器;
视频显示器,耦合到所述处理器的输出;
字节可寻址非易失性存储器,具有存储器位置;
高速缓存,耦合到所述处理器和所述字节可寻址非易失性存储器,所述高速缓存具有高速缓存存储器和多个高速缓存条目,并适合于在所述高速缓存存储器的高速缓存条目中高速缓存来自所述字节可寻址非易失性存储器中的存储器位置的数据,其中所述高速缓存存储器具有初级高速缓存存储器或者具有初级高速缓存存储器和受害者高速缓存存储器二者,并且其中所述高速缓存具有用于执行第一操作的第一操作控制器、用于执行第二操作的第二操作控制器和用于执行第三操作的第三操作控制器中的至少两个控制器,
其中第一操作控制器包含用于执行第一操作的逻辑,第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,
其中第二操作控制器包含用于执行第二操作的逻辑,第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的所述受害者高速缓存存储器,并且
其中第三操作控制器包含用于执行第三操作的逻辑,第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址。
在示例24中,示例23的主题可选地可包含:其中所述高速缓存具有第一操作控制器、第二操作控制器和第三操作控制器中的全部三个。
在示例25中,示例23的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
在示例26中,示例25的主题可选地可包含:监视逻辑,用于监视所述系统的操作,并根据监视的操作有选择地启用和禁用第一操作控制器、第二操作控制器和第三操作控制器中的至少一个。
在示例27中,示例23的主题可选地可包含:其中所述高速缓存具有第二操作控制器,所述高速缓存进一步包括具有用于从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器的逻辑的控制器。
在示例28中,示例23的主题可选地可包含:其中用于转换所述存储器位置地址的第三操作控制器逻辑包含实现用于置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址的异或函数的逻辑。
在示例29中,示例23的主题可选地可包含:用于有选择地启用和禁用第一操作控制器、第二操作控制器和第三操作控制器中的至少一个作为系统引导以将所述高速缓存存储器配置为系统引导的逻辑。
在示例30中,示例23的主题可选地可包含:其中第三操作控制器包含用于多级地址转换的逻辑,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
在示例31中,示例23-29中任一示例的主题可选地可包含:其中第三操作控制器包含用于多级地址转换的逻辑,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
示例32是本文参考附图所充分描述的并通过附图所图示的系统。
示例33是一种用于具有存储器位置的字节可寻址非易失性存储器的装置,包括:
高速缓存部件,具有高速缓存存储器和多个高速缓存条目,用于在所述高速缓存存储器的高速缓存条目中高速缓存来自所述字节可寻址非易失性存储器中的存储器位置的数据,其中所述高速缓存存储器具有初级高速缓存存储器或者具有初级高速缓存存储器和受害者高速缓存存储器二者,并且其中所述高速缓存具有第一操作控制器、第二操作控制器和第三操作控制器中的至少两个控制器,
其中第一操作控制器包含用于执行第一操作的逻辑部件,第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,
其中第二操作控制器包含用于执行第二操作的逻辑部件,第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的所述受害者高速缓存存储器,并且
其中第三操作控制器包含用于执行第三操作的逻辑部件,第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址。
在示例34中,示例33的主题可选地可包含:其中所述高速缓存具有第一操作控制器、第二操作控制器和第三操作控制器中的全部三个。
在示例35中,示例33的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
在示例36中,示例35的主题可选地可包含:监视部件,用于监视所述装置的操作,并根据监视的操作有选择地启用和禁用第一操作控制器、第二操作控制器和第三操作控制器中的至少一个。
在示例37中,示例33的主题可选地可包含:其中所述高速缓存具有第二操作控制器,所述装置进一步包括具有用于从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器的逻辑部件的控制器。
在示例38中,示例33的主题可选地可包含:其中用于转换所述存储器位置地址的第三操作控制器逻辑包含实现用于置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址的异或函数的逻辑部件。
在示例39中,示例33的主题可选地可包含:用于有选择地启用和禁用第一操作控制器、第二操作控制器和第三操作控制器中的至少一个作为装置引导以将所述高速缓存存储器配置为装置引导的逻辑部件。
在示例40中,示例33的主题可选地可包含:其中第三操作控制器包含用于多级地址转换的逻辑部件,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
在示例41中,示例33-40中任一示例的主题可选地可包含:其中第三操作控制器包含用于多级地址转换的逻辑部件,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
示例42是一种包括计算机可读存储介质的计算机程序产品,所述存储介质其中包含有计算机可读存储代码,所述代码执行以与字节可寻址非易失性存储器和具有初级高速缓存存储器或者具有初级高速缓存存储器和受害者高速缓存存储器二者的高速缓存存储器通信并执行操作,所述操作包括:
在包含初级高速缓存存储器的高速缓存存储器的高速缓存条目中高速缓存来自字节可寻址非易失性存储器中的存储器位置的数据;以及
执行第一操作、第二操作和第三操作中的至少两个,
其中第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,其中第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的所述受害者高速缓存存储器,并且
其中第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址。
在示例43中,示例42的主题可选地可包含:其中所述执行第一操作、第二操作和第三操作中的至少两个包含执行第一操作、第二操作和第三操作中的全部三个。
在示例44中,示例42的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
在示例45中,示例44的主题可选地可包含:有选择地启用和禁用第一操作、第二操作和第三操作中的至少一个作为系统引导以将所述高速缓存存储器配置为系统引导。
在示例46中,示例42的主题可选地可包含:其中执行的所述操作进一步包含执行第二操作,所述操作进一步包括从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器。
在示例47中,示例42的主题可选地可包含:其中所述转换所述存储器位置地址包含使用异或函数置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址。
在示例48中,示例42的主题可选地可包含:其中所述操作进一步包括监视具有所述高速缓存存储器的装置的操作,并根据监视的操作有选择地启用和禁用第一操作、第二操作和第三操作中的至少一个。
在示例49中,示例42的主题可选地可包含:其中所述操作进一步包括多级地址转换,所述多级地址转换包含在所述高速缓存存储器的分区之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
在示例50中,示例42-49中任一示例的主题可选地可包含:其中所述操作进一步包括多级地址转换,所述多级地址转换包含在所述高速缓存存储器的分区之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
示例51是本文参考附图所充分描述的并通过附图所图示的计算机程序产品。
在示例52中,示例11的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目,其中执行的所述操作进一步包含执行第二操作,所述方法进一步包括从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器,其中所述转换所述存储器位置地址包含使用异或函数置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址,并且其中所述方法进一步包括监视具有所述高速缓存存储器的装置的操作,并根据监视的操作有选择地启用和禁用第一操作、第二操作和第三操作中的至少一个。
在示例53中,示例23的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目,其中所述高速缓存具有第二操作控制器,所述高速缓存进一步包括具有用于从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器的逻辑的控制器,其中用于转换所述存储器位置地址的第三操作控制器逻辑包含实现用于置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址的异或函数的逻辑,并且其中所述系统进一步包括用于有选择地启用和禁用第一操作控制器、第二操作控制器和第三操作控制器中的至少一个作为系统引导以将所述高速缓存存储器配置为系统引导的逻辑。
在示例54中,示例33的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目,其中所述高速缓存具有第二操作控制器,所述装置进一步包括具有用于从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器的逻辑部件的控制器,其中用于转换所述存储器位置地址的第三操作控制器逻辑包含实现用于置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址的异或函数的逻辑部件,其中所述装置进一步包括用于有选择地启用和禁用第一操作控制器、第二操作控制器和第三操作控制器中的至少一个作为装置引导以将所述高速缓存存储器配置为装置引导的逻辑部件,并且其中第三操作控制器包含用于多级地址转换的逻辑部件,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
在示例55中,示例42的主题可选地可包含:其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目,其中执行的所述操作进一步包含执行第二操作,所述操作进一步包括从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述脏高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述字节可寻址非易失性存储器,其中所述转换所述存储器位置地址包含使用异或函数置乱存储器位置地址以在所述字节可寻址非易失性存储器的地址范围内散布所述存储器位置地址,其中所述操作进一步包括监视具有所述高速缓存存储器的装置的操作,并根据监视的操作有选择地启用和禁用第一操作、第二操作和第三操作中的至少一个,并且其中所述操作进一步包括多级地址转换,所述多级地址转换包含在所述高速缓存存储器的分区之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
所描述的操作可使用标准编程和/或工程设计技术来产生软件、固件、硬件或它们的任何组合而实现为方法、设备或计算机程序产品。所描述的操作可实现为在“计算机可读存储介质”中保存的计算机程序代码,其中处理器可读取并执行来自计算机可读存储介质的代码。计算机可读存储介质包含电子电路、存储材料、无机材料、有机材料、生物材料、壳体、外壳、涂层和硬件中的至少一项。计算机可读存储介质可包括但不限于磁存储介质(例如硬盘驱动器、软盘、磁带等)、光存储装置(CD-ROM、DVD、光盘等)、易失性和非易失性存储器装置(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)、固态装置(SSD)等。实现本文描述的操作的代码可进一步在硬件装置(例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)中实现的硬件逻辑中实现。此外,实现所描述操作的代码可在“传送信号”中实现,其中传送信号可通过空间或通过传送介质(诸如光纤、铜线等)传播。对代码或逻辑进行编码的传送信号可进一步包括无线信号、卫星传送、无线电波、红外信号、蓝牙等。嵌入在计算机可读存储介质上的程序代码可作为传送信号从传送站或计算机传送到接收站或计算机。计算机可读存储介质不仅仅由传送信号组成。本领域技术人员将认识到,可对此配置进行许多修改,并不脱离本说明书的范围,并且制品可包括在本领域已知的适合的信息承载介质。当然,本领域技术人员将认识到,可对此配置进行许多修改,并不脱离本说明书的范围,并且制品可包括在本领域已知的任何有形信息承载介质。
在某些应用中,按照本说明书的装置可实施在计算机系统中,计算机系统包含向监视器上的显示器或耦合到计算机系统的其它显示器再现信息的视频控制器、装置驱动和网络控制器(诸如包括台式计算机、工作站、服务器、主机、膝上型计算机、手持计算机等的计算机系统)。
备选地,装置实施例可实施在计算装置中,计算装置例如不包含视频控制器(诸如交换机、路由器等),或者例如不包含网络控制器。
附图图示的逻辑可示出按某种次序发生的某些事件。在备选实施例中,某些操作可按不同次序执行、修改或移除。而且,操作可被添加到上面描述的逻辑,并且仍符合所描述的实施例。另外,本文描述的操作可顺序发生,或者某些操作可并行处理。又进一步,操作可由单个处理单元或分布式处理单元执行。
图10图示了按照本说明书具有存储器侧高速缓存的存储器层级(诸如图1的存储器层级100)的计算机架构1000的一个实施例。计算机架构1000可包括本领域已知的任何计算装置,诸如主机、服务器、个人计算机、工作站、膝上型计算机、手持计算机、电话装置、网络设施、虚拟化装置、存储控制器等。架构1000可包含处理器1002(例如微处理器)、存储器1004(例如易失性或非易失性存储器装置)和存储装置1006(例如非易失性存储装置,诸如磁盘驱动器、光盘驱动器、磁带驱动器等)。存储装置1006可包括内部存储装置或附连的或网络可访问的存储装置。存储装置1006中的程序被加载到存储器1004中,并由处理器1002以本领域已知的方式执行。架构进一步包含网络控制器或适配器1008以使能够与网络(诸如以太网、光纤信道仲裁环等)通信。另外,在某些实施例中,架构可包含视频控制器1009以在显示监视器上再现信息,其中视频控制器1009可实施在视频卡上或集成在安装在母板上的集成电路组件上。输入装置1010用于向处理器1002提供用户输入,并且可包含键盘、鼠标、触控笔、麦克风、触敏显示屏或本领域已知的任何其它激活或输入机制。输出装置1012能够再现从处理器1002或其它组件(诸如显示监视器、打印机、存储装置等)传送的信息。
网络适配器1008可实施在网卡(诸如外围组件互连(PCI)卡、PCI快速或某种其它I/O卡)上或安装到母板上的集成电路组件上。存储装置1006可包括内部存储装置或附连的或网络可访问的存储装置。存储装置1006中的程序被加载到存储器1004中,并由处理器1002执行。计算机架构1000的任一个或多个装置可包含具有如本文所描述的片上转换测试电路的一个或多个集成电路。
为了说明和描述目的,已经呈现了各种实施例的前述描述。它并不意图是穷尽的或限于所公开的精确形式。根据以上教导,许多修改和改变是可能的。

Claims (33)

1.一种用于具有存储器位置的后备存储器的装置,包括:
高速缓存,具有高速缓存存储器和多个高速缓存条目,并适合于在所述高速缓存存储器的高速缓存条目中高速缓存来自所述后备存储器中的存储器位置的数据,其中所述高速缓存存储器具有初级高速缓存存储器和受害者高速缓存存储器中的至少一项,并且其中所述高速缓存具有用于执行第一操作的第一操作控制器、用于执行第二操作的第二操作控制器和用于执行第三操作的第三操作控制器中的至少两个控制器,
其中所述第一操作控制器包含用于执行第一操作的逻辑,所述第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,
其中所述第二操作控制器包含用于执行第二操作的逻辑,所述第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的所述受害者高速缓存存储器,并且
其中所述第三操作控制器包含用于执行第三操作的逻辑,所述第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述后备存储器的地址范围内散布所述存储器位置地址。
2.如权利要求1所述的装置,其中所述高速缓存具有所述第一操作控制器、所述第二操作控制器和所述第三操作控制器中的全部三个。
3.如权利要求1所述的装置,其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
4.如权利要求3所述的装置,其中所述受害者高速缓存存储器是所述初级高速缓存存储器的容量的至少四分之一。
5.如权利要求1所述的装置,其中所述高速缓存具有所述第二操作控制器,所述装置进一步包括具有用于从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述受害者高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述后备存储器的逻辑的控制器。
6.如权利要求1所述的装置,其中用于转换所述存储器位置地址的所述第三操作控制器逻辑包含实现用于置乱存储器位置地址以在所述后备存储器的地址范围内散布所述存储器位置地址的异或函数的逻辑。
7.如权利要求1所述的装置,进一步包括:用于有选择地启用和禁用所述第一操作控制器、所述第二操作控制器和所述第三操作控制器中的至少一个作为装置引导以将所述高速缓存存储器配置为装置引导的逻辑。
8.如权利要求1-7中任一项所述的装置,其中所述第三操作控制器包含用于多级地址转换的逻辑,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行所述第三操作。
9.一种用于计算机系统的方法,包括:
在包含初级高速缓存存储器的高速缓存存储器的高速缓存条目中高速缓存来自后备存储器中的存储器位置的数据;以及
执行第一操作、第二操作和第三操作中的至少两个,
其中所述第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,其中所述第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的受害者高速缓存存储器,并且
其中所述第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述后备存储器的地址范围内散布所述存储器位置地址。
10.如权利要求9所述的方法,其中所述执行所述第一操作、所述第二操作和所述第三操作中的至少两个包含执行所述第一操作、所述第二操作和所述第三操作中的全部三个。
11.如权利要求9所述的方法,其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
12.如权利要求11所述的方法,其中所述受害者高速缓存存储器是所述初级高速缓存存储器的容量的至少四分之一。
13.如权利要求9所述的方法,其中执行的所述操作进一步包含执行所述第二操作,所述方法进一步包括从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述受害者高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述后备存储器。
14.如权利要求9所述的方法,其中所述转换所述存储器位置地址包含使用异或函数置乱存储器位置地址以在所述后备存储器的地址范围内散布所述存储器位置地址。
15.如权利要求9所述的方法,进一步包括监视具有所述高速缓存存储器的装置的操作,并根据监视的操作有选择地启用和禁用所述第一操作、第二操作和第三操作中的至少一个。
16.如权利要求9-15中任一项所述的方法,进一步包括多级地址转换,所述多级地址转换包含在所述高速缓存存储器的分区之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行所述第三操作。
17.一种计算机系统,包括:
处理器;
视频控制器,耦合到所述处理器的输出;
具有存储器位置的后备存储器;
高速缓存,耦合到所述处理器和所述后备存储器,所述高速缓存具有高速缓存存储器和多个高速缓存条目,并适合于在所述高速缓存存储器的高速缓存条目中高速缓存来自所述后备存储器中的存储器位置的数据,其中所述高速缓存存储器具有初级高速缓存存储器和受害者高速缓存存储器中的至少一项,并且其中所述高速缓存具有用于执行第一操作的第一操作控制器、用于执行第二操作的第二操作控制器和用于执行第三操作的第三操作控制器中的至少两个控制器,
其中所述第一操作控制器包含用于执行第一操作的逻辑,所述第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,
其中所述第二操作控制器包含用于执行第二操作的逻辑,所述第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的所述受害者高速缓存存储器,并且
其中所述第三操作控制器包含用于执行第三操作的逻辑,所述第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述后备存储器的地址范围内散布所述存储器位置地址。
18.如权利要求17所述的系统,其中所述高速缓存具有所述第一操作控制器、所述第二操作控制器和所述第三操作控制器中的全部三个。
19.如权利要求17所述的系统,其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
20.如权利要求19所述的系统,其中所述受害者高速缓存存储器是所述初级高速缓存存储器的容量的至少四分之一。
21.如权利要求17所述的系统,其中所述高速缓存具有所述第二操作控制器,所述高速缓存进一步包括具有用于从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线并将从所述受害者高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述后备存储器的逻辑的控制器。
22.如权利要求17所述的系统,其中用于转换所述存储器位置地址的所述第三操作控制器逻辑包含实现用于置乱存储器位置地址以在所述后备存储器的地址范围内散布所述存储器位置地址的异或函数的逻辑。
23.如权利要求17所述的系统,进一步包括:用于有选择地启用和禁用所述第一操作控制器、所述第二操作控制器和所述第三操作控制器中的至少一个作为系统引导以将所述高速缓存存储器配置为系统引导的逻辑。
24.如权利要求17-23中任一项所述的系统,其中所述第三操作控制器包含用于多级地址转换的逻辑,所述多级地址转换包含在所述高速缓存存储器的所述初级高速缓存存储器与所述受害者高速缓存存储器之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行第三操作。
25.一种机器可读介质,其上面存储指令,所述指令在被执行时导致所述机器执行如权利要求9-16中任一项所述的方法。
26.一种用于计算机系统的装置,包括:
用于在包含初级高速缓存存储器的高速缓存存储器的高速缓存条目中高速缓存来自后备存储器中的存储器位置的数据的部件;以及
用于执行第一操作、第二操作和第三操作中的至少两个的部件,
其中所述第一操作包含按照比起逐出具有脏高速缓存线的高速缓存条目来偏向于逐出具有干净高速缓存线的高速缓存条目的替换策略从所述高速缓存存储器中逐出受害者高速缓存条目,其中所述第二操作包含将受害者高速缓存条目从所述初级高速缓存存储器逐出到所述高速缓存存储器的受害者高速缓存存储器,并且
其中所述第三操作包含基于存储器位置的地址访问所述高速缓存存储器的高速缓存条目,所述高速缓存条目访问包含转换所述存储器位置地址以在所述后备存储器的地址范围内散布所述存储器位置地址。
27.如权利要求26所述的装置,其中所述用于执行第一操作、第二操作和第三操作中的至少两个的部件包含用于执行所述第一操作、所述第二操作和所述第三操作中的全部三个的部件。
28.如权利要求26所述的装置,其中在所述受害者高速缓存存储器中高速缓存的所述受害者高速缓存条目仅仅是具有脏高速缓存线的高速缓存条目。
29.如权利要求28所述的装置,其中所述受害者高速缓存存储器是所述初级高速缓存存储器的容量的至少四分之一。
30.如权利要求26所述的装置,其中执行的所述操作包含执行所述第二操作,所述装置进一步包括用于从所述受害者高速缓存存储器中逐出具有脏高速缓存线的高速缓存线的部件以及用于将从所述受害者高速缓存存储器逐出的高速缓存线中的所述脏高速缓存线写回到所述后备存储器的部件。
31.如权利要求26所述的装置,其中所述转换所述存储器位置地址包含使用异或函数置乱存储器位置地址以在所述后备存储器的地址范围内散布所述存储器位置地址。
32.如权利要求26所述的装置,进一步包括用于监视具有所述高速缓存存储器的装置的操作的部件,以及用于根据监视的操作有选择地启用和禁用所述第一操作、第二操作和第三操作中的至少一个的部件。
33.如权利要求26-32中任一项所述的装置,进一步包括用于多级地址转换的部件,所述多级地址转换包含在所述高速缓存存储器的分区之间以及所述高速缓存存储器的输入、所述高速缓存存储器的输出中的至少两个处执行所述第三操作。
CN201380079190.4A 2013-09-27 2013-09-27 用于存储器管理的高速缓存操作 Expired - Fee Related CN105493052B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/062467 WO2015047348A1 (en) 2013-09-27 2013-09-27 Cache operations for memory management

Publications (2)

Publication Number Publication Date
CN105493052A CN105493052A (zh) 2016-04-13
CN105493052B true CN105493052B (zh) 2019-05-03

Family

ID=52744241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380079190.4A Expired - Fee Related CN105493052B (zh) 2013-09-27 2013-09-27 用于存储器管理的高速缓存操作

Country Status (5)

Country Link
US (1) US9645938B2 (zh)
EP (1) EP3049937A4 (zh)
KR (1) KR101826073B1 (zh)
CN (1) CN105493052B (zh)
WO (1) WO2015047348A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6131170B2 (ja) * 2013-10-29 2017-05-17 株式会社日立製作所 計算機システム、及びデータ配置制御方法
US20160283385A1 (en) * 2015-03-27 2016-09-29 James A. Boyd Fail-safe write back caching mode device driver for non volatile storage device
US9952973B2 (en) 2015-10-29 2018-04-24 Western Digital Technologies, Inc. Reducing write-backs to memory by controlling the age of cache lines in lower level cache
US9846652B2 (en) * 2016-03-31 2017-12-19 Intel Corporation Technologies for region-biased cache management
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US10152262B2 (en) 2016-05-03 2018-12-11 Micron Technology, Inc. Memory access techniques in memory devices with multiple partitions
EP3258382B1 (en) * 2016-06-14 2021-08-11 Arm Ltd A storage controller
US10223305B2 (en) * 2016-06-27 2019-03-05 International Business Machines Corporation Input/output computer system including hardware assisted autopurge of cache entries associated with PCI address translations
US10248571B2 (en) * 2016-08-11 2019-04-02 Hewlett Packard Enterprise Development Lp Saving position of a wear level rotation
US11556462B2 (en) * 2016-08-24 2023-01-17 Futurewei Technologies, Inc. Wear-leveling method for cross-point memory for multiple data temperature zones
KR102593552B1 (ko) 2016-09-07 2023-10-25 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그의 동작 방법
US20180107602A1 (en) * 2016-10-13 2018-04-19 Intel Corporation Latency and Bandwidth Efficiency Improvement for Read Modify Write When a Read Operation is Requested to a Partially Modified Write Only Cacheline
CN108073527B (zh) * 2016-11-07 2020-02-14 华为技术有限公司 一种缓存替换的方法和设备
US10540281B2 (en) * 2017-01-17 2020-01-21 Arm Limited Cache allocation based on quality-of-service monitoring
US10810164B2 (en) * 2017-01-27 2020-10-20 Wyse Technology L.L.C. Securing access to functionality of a file-based write filter
US10372446B2 (en) * 2017-07-01 2019-08-06 Intel Corporation Technology to dynamically modulate memory device read granularity
WO2019061270A1 (zh) * 2017-09-29 2019-04-04 深圳市大疆创新科技有限公司 数据缓存装置及控制方法、数据处理芯片、数据处理系统
US10705590B2 (en) 2017-11-28 2020-07-07 Google Llc Power-conserving cache memory usage
US10528283B2 (en) * 2018-01-23 2020-01-07 Dell Products, Lp System and method to provide persistent storage class memory using NVDIMM-N with an NVDIMM-P footprint
US11074151B2 (en) 2018-03-30 2021-07-27 Intel Corporation Processor having embedded non-volatile random access memory to support processor monitoring software
US20190042351A1 (en) * 2018-04-02 2019-02-07 Intel Corporation Self-healing in a computing system using embedded non-volatile memory
US10691466B2 (en) * 2018-04-02 2020-06-23 Intel Corporation Booting a computing system using embedded non-volatile memory
KR102052312B1 (ko) * 2018-05-08 2019-12-05 주식회사 애포샤 캐싱 장치 및 방법
KR20200082323A (ko) 2018-12-28 2020-07-08 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 그 동작 방법
KR20200127793A (ko) 2019-05-03 2020-11-11 에스케이하이닉스 주식회사 메모리 장치의 캐시 시스템 및 캐시 시스템의 데이터 캐싱 방법
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system
US11176052B2 (en) 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
US11237730B2 (en) 2019-05-12 2022-02-01 International Business Machines Corporation Favored cache status for selected volumes within a storage system
US11169919B2 (en) 2019-05-12 2021-11-09 International Business Machines Corporation Cache preference for selected volumes within a storage system
US11163698B2 (en) 2019-05-12 2021-11-02 International Business Machines Corporation Cache hit ratios for selected volumes using synchronous I/O
US11663144B2 (en) 2020-01-20 2023-05-30 International Business Machines Corporation LRU list reorganization for favored and unfavored volumes
CN113392042B (zh) * 2020-03-12 2024-04-09 伊姆西Ip控股有限责任公司 用于管理缓存的方法、电子设备和计算机程序产品
US11467937B2 (en) * 2020-06-26 2022-10-11 Advanced Micro Devices, Inc. Configuring cache policies for a cache based on combined cache policy testing
KR20220006913A (ko) 2020-07-09 2022-01-18 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11847062B2 (en) 2021-12-16 2023-12-19 Advanced Micro Devices, Inc. Re-fetching data for L3 cache data evictions into a last-level cache
WO2024196368A1 (en) * 2023-03-22 2024-09-26 Google Llc Dynamic control of cache mode

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609823A (zh) * 2003-10-23 2005-04-27 英特尔公司 用于维持共享高速缓存一致性的方法和设备
CN104714848A (zh) * 2013-12-12 2015-06-17 国际商业机器公司 利用用于聚结内存事务的指示的方法和系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0603552D0 (en) * 2006-02-22 2006-04-05 Advanced Risc Mach Ltd Cache management within a data processing apparatus
US8001331B2 (en) 2008-04-17 2011-08-16 Arm Limited Efficiency of cache memory operations
KR20100021868A (ko) * 2008-08-18 2010-02-26 삼성전자주식회사 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
US20100228922A1 (en) 2009-03-09 2010-09-09 Deepak Limaye Method and system to perform background evictions of cache memory lines
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8285936B2 (en) * 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9135181B2 (en) * 2010-10-27 2015-09-15 International Business Machines Corporation Management of cache memory in a flash cache architecture
US8615636B2 (en) 2011-03-03 2013-12-24 International Business Machines Corporation Multiple-class priority-based replacement policy for cache memory
US8402223B2 (en) * 2011-03-21 2013-03-19 Microsoft Corporation Cache eviction using memory entry value
KR101915073B1 (ko) 2011-12-20 2018-11-06 인텔 코포레이션 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609823A (zh) * 2003-10-23 2005-04-27 英特尔公司 用于维持共享高速缓存一致性的方法和设备
CN104714848A (zh) * 2013-12-12 2015-06-17 国际商业机器公司 利用用于聚结内存事务的指示的方法和系统

Also Published As

Publication number Publication date
EP3049937A1 (en) 2016-08-03
CN105493052A (zh) 2016-04-13
WO2015047348A1 (en) 2015-04-02
US9645938B2 (en) 2017-05-09
EP3049937A4 (en) 2017-05-17
US20160203085A1 (en) 2016-07-14
KR20160033737A (ko) 2016-03-28
KR101826073B1 (ko) 2018-02-06

Similar Documents

Publication Publication Date Title
CN105493052B (zh) 用于存储器管理的高速缓存操作
US10719443B2 (en) Apparatus and method for implementing a multi-level memory hierarchy
US10102126B2 (en) Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
CN103999161B (zh) 用于相变存储器漂移管理的设备和方法
US9317429B2 (en) Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
CN103988183B (zh) 2级存储器分级结构中的存储器侧高速缓存的动态部分断电
CN103946816B (zh) 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram)
US9600407B2 (en) Generation of far memory access signals based on usage statistic tracking
US20140229659A1 (en) Thin translation for system access of non volatile semicondcutor storage as random access memory
WO2013095437A1 (en) System and method for intelligently flushing data from a processor into a memory subsystem
US20170109277A1 (en) Memory system
US20170109072A1 (en) Memory system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190503

Termination date: 20210927