CN103946811B - 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 - Google Patents
用于实现具有不同操作模式的多级存储器分级结构的设备和方法 Download PDFInfo
- Publication number
- CN103946811B CN103946811B CN201180075096.2A CN201180075096A CN103946811B CN 103946811 B CN103946811 B CN 103946811B CN 201180075096 A CN201180075096 A CN 201180075096A CN 103946811 B CN103946811 B CN 103946811B
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- pcm
- write
- level
- 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.)
- Active
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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
-
- 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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- 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/0815—Cache consistency protocols
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
- G11C14/0045—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
- G06F2212/6046—Using a specific cache allocation policy other than replacement policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
描述用于在计算机系统中集成包括非易失性存储器层的存储器和存储分级结构的系统和方法。在一个实施例中,PCMS存储器装置用作分级结构中的一层,有时称作“远存储器”。更高性能存储器装置(例如DRAM)放置在远存储器前面并且用来掩蔽远存储器的性能限制的一些。这些更高性能存储器装置称作“近存储器”。在一个实施例中,“近存储器”配置成工作在多个不同操作模式中,包括(但不限于):第一模式,其中近存储器作为远存储器的存储器高速缓存进行操作;以及第二模式,其中向近存储器分配系统地址空间的第一地址范围,其中向远存储器分配系统地址空间的第二地址范围,其中第一范围和第二范围表示整个系统地址空间。
Description
技术领域
一般来说,本发明涉及计算机系统领域。更具体来说,本发明涉及用于实现多级存储器分级结构的设备和方法。
背景技术
A.当前存储器和存储配置
当今计算机革新的限制因素之一是存储器和存储技术。在常规计算机系统中,系统存储器(又称作主要存储器、主存储器、可执行存储器)通常由动态随机存取存储器(DRAM)来实现。基于DRAM的存储器甚至在没有存储器读取或写入发生时也消耗功率,因为它必须不断对内部电容器进行再充电。基于DRAM的存储器是易失性的,这意味着,一旦去除功率,则DRAM存储器中存储的数据丢失。常规计算机系统还依靠多级缓存来改进性能。高速缓存是定位在处理器与系统存储器之间的高速存储器,以便比可以从系统存储器服务于存储器存取请求更快地服务于存储器存取请求。这类高速缓存通常采用静态随机存取存储器(SRAM)来实现。高速缓存管理协议可用来确保将最频繁存取的数据和指令存储在高速缓存级之一中,由此减少存储器存取事务的数量并且改进性能。
关于大容量存储(又称作辅助存储或磁盘存储),常规大容量存储装置通常包括磁介质(例如硬盘驱动器)、光介质(例如压缩盘(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代码”)的大小提出限制。
B.相变存储器(PCM)及相关技术
有时又称作相变随机存取存储器(PRAM或PCRAM)、PCME、奥式统一存储器或硫属化物RAM(C-RAM)的相变存储器(PCM)是一种类型的非易失性计算机存储器,其利用硫属化物玻璃的独特行为。由于通过电流的经过所产生的热量,硫属化物玻璃能够在两种状态之间来切换:结晶和非晶。PCM的最近版本能够实现两种附加的不同状态。
PCM提供比闪存要高的性能,因为PCM的存储器元件能够更快速切换,写入(将单独位改变成1或0)能够在无需首先擦除单元的整个块的情况下进行,以及来自写入的降级较慢(PCM装置可经受得住大约1亿次写循环;PCM降级归因于编程、金属(和其它材料)迁移和其它机制期间的热膨胀)。
附图说明
以下的描述和附图用来说明本发明的实施例。附图中:
图1示出按照本发明的实施例的高速缓存和系统存储器布置;
图2示出本发明的实施例中采用的存储器和存储分级结构;
图3示出其上可实现本发明的实施例的计算机系统;
图4A示出按照本发明的实施例包括PCM的第一系统架构;
图4B示出按照本发明的实施例包括PCM的第二系统架构;
图4C示出按照本发明的实施例包括PCM的第三系统架构;
图4D示出按照本发明的实施例包括PCM的第四系统架构;
图4E示出按照本发明的实施例包括PCM的第五系统架构;
图4F示出按照本发明的实施例包括PCM的第六系统架构;
图4G示出按照本发明的实施例包括PCM的第七系统架构;
图4H示出按照本发明的实施例包括PCM的第八系统架构;
图4I示出按照本发明的实施例包括PCM的第九系统架构;
图4J示出按照本发明的实施例包括PCM的第十系统架构;
图4K示出按照本发明的实施例包括PCM的第十一系统架构;
图4L示出按照本发明的实施例包括PCM的第十二系统架构;以及
图4M示出按照本发明的实施例包括PCM的第十三系统架构;
图5A示出包括易失性近存储器和非易失性远存储器的系统架构的一个实施例;
图5B示出存储器侧高速缓存(MSC)的一个实施例;
图5C示出包括集成标签高速缓存和ECC生成/校验逻辑的存储器侧高速缓存(MSC)的另一个实施例;
图5D示出示范标签高速缓存和ECC生成器/校验单元的一个实施例;
图5E示出包括PCM控制器的PCM DIMM的一个实施例;
图6A示出按照本发明的一个实施例专用于某些所指定系统物理地址(SPA)范围的MCE控制器和高速缓存;
图6B示出按照本发明的一个实施例的系统存储器映射、近存储器地址映射和PCM地址映射之间的示范映射;
图6C示出按照本发明的一个实施例的系统物理地址(SPA)与PCM物理装置地址(PDA)或者近存储器地址(NMA)之间的示范映射;以及
图6D示出按照本发明的一个实施例的系统物理地址(SPA)空间与存储器通道地址(MCA)空间内的存储器页之间的交织。
具体实施方式
在以下描述中,阐述了诸如逻辑实现、操作码、用于指定操作数的装置、资源划分/共享/重复实现、系统组件的类型和相互关系以及逻辑划分/集成选择的许多具体细节,以便提供对本发明的更透彻了解。然而,本领域的技术人员将会理解,即使没有这类具体细节,也可实施本发明。在其它情况下,没有详细示出控制结构、门级电路和完整软件指令序列,以免影响混淆本发明。通过所包含的描述,本领域的技术人员将能够实现适当的功能性而无需过度的实验。
说明书中提到“一个实施例”、“实施例”、“一个示例实施例”等表示所述的实施例可包括特定特征、结构或特性,但可能不一定每一个实施例都包括该特定特征、结构或特性。此外,这类词语不一定指同一个实施例。此外,在结合一个实施例描述特定特征、结构或特性时,无论是否明确描述,认为结合其它实施例来实现这种特征、结构或特性是在本领域的技术人员的知识范围之内的。
在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其派生。应当理解,这些术语并不是要作为彼此的同义词。“耦合”用于表示彼此可以有或者可以没有直接物理或电接触的两个或更多元件相互配合或交互。“连接”用于表示相互耦合的两个或更多元件之间的通信的建立。
加括号的文本以及具有虚线边界的框(例如长划线、短划线、点划线、点)在本文中有时用来示出可选操作/组件,其对本发明的实施例添加附加特征。但是,这种标记法不应当被理解为意味着这些是唯一选项或者可选的操作/组件,和/或具有实线边界的框在本发明的某些实施例中不是可选的。
介绍
随着不断增加数量的处理器核和新使用模型(例如虚拟化),存储器容量和性能要求持续增加。另外,存储器功率和成本分别成为电子系统的总功率和成本的显著成分。
本发明的一些实施例通过在存储器技术之间智能地细分性能要求和容量要求,来解决上述难题。这种方式集中于采用相对少量的相对更高速率存储器,例如DRAM来提供性能,同时使用明显更廉价和密集的非易失性随机存取存储器(NVRAM)来实现系统存储器块。下面所述的本发明的实施例定义平台配置,其能够实现NVRAM的使用的分级存储器子系统组织。存储器分级结构中的NVRAM的使用还实现新使用,例如扩展引导空间和大容量存储实现,如下面详细描述。
图1示出按照本发明的实施例的高速缓存和系统存储器布置。具体来说,图1示出存储器分级结构,包括:一组内部处理器高速缓存120,充当远存储器高速缓存121的“近存储器”,其可包括一个或多个内部高速缓存106和外部高速缓存107-109,以及“远存储器”122。在本发明的一些实施例中可用于“远存储器”的一种特定类型的存储器是非易失性随机存取存储器(“NVRAM”)。因此,下面提供NVRAM的概述,之后接着远存储器和近存储器的概述。
A.非易失性随机存取存储器(“NVRAM”)
存在NVRAM的许多可能技术选择,包括PCM、相变存储器和开关(PCMS)(后者是前者的更具体实现)、字节可寻址永久存储器(BPRAM)、存储类存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻存储器(RRAM)、RESET(非晶)单元、SET(结晶)单元、PCME、Ovshinsky存储器、铁电存储器(又称作聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(又称作自旋电子、SPRAM(自旋转移矩RAM)、STRAM(自旋隧穿RAM)、磁阻存储器、磁存储器、磁随机存取存储器(MRAM))以及半导体-氧化物-氮化物-氧化物-半导体(SONOS,又称作介电存储器)。
NVRAM具有下列特性:
(1) 它即使在去除功率之后也保持其内容,与固态硬盘(SSD)中使用的闪速存储器相似,但是与易失性的SRAM和DRAM不同;
(2)比诸如SRAM和DRAM的易失性存储器要低的功率消耗;
(3) 与SRAM和DRAM相似的随机存取(也称作随机可寻址);
(4) 以比SSD中存在的闪存(其只能够每次一个“块”来重写和擦除—在大小方面对于NOR闪存最小为64 Kbyte以及对NAND闪存为16 Kbyte)要低的粒度等级可重写和可擦除;
(5) 用作系统存储器并且分配有系统存储器地址空间的全部或者一部分;
(6) 能够使用事务协议(支持区分不同事务的事务标识符(ID)以使得那些事务能够无序完成的协议)通过总线耦合到处理器,并且允许以足够小的粒度等级的存取以支持作为系统存储器的NVRAM的操作(例如,诸如64或128字节的高速缓存线大小)。例如,总线可以是存储器总线(例如,诸如DDR3、DDR4等的DDR总线),通过其运行事务协议(与正常使用的非事务协议相反)。作为另一个示例,总线可以是通过其正常运行事务协议(本地事务协议)的总线,例如PCI express(PCIE)总线、桌面管理界面(DMI)总线或者利用事务协议和足够小的事务有效载荷大小(例如,诸如64或128字节的高速缓存线大小)的任何其它类型的总线;以及
(6) 下列一个或多个:
a)比非易失性存储器/存储技术(例如闪存)要快的写入速度;
b)极高的读取速度(比闪存和近存储器要快或者等于DRAM读取速度);
c)直接可写(而不是像SSD中使用的闪速存储器那样要求在写入数据之前进行擦除(以1s进行重写));
d)在故障之前更大数量的写入(比SSD中使用的闪存和引导ROM要多);和/或
如上所述,与闪速存储器(其必须每次一个完整“块”来重写和擦除)相对照,在任何给定实现中用以存取NVRAM的粒度等级可取决于特定存储器控制器和特定存储器总线或者NVRAM耦合到其的其它类型的总线。例如,在NVRAM用作系统存储器的一些实现中,尽管以字节的粒度来存取的固有能力,但是NVRAM可以以高速缓存线(例如64字节或128字节高速缓存线)的粒度来存取,因为高速缓存线是存储器子系统存取存储器的等级。因此,当NVRAM部署在存储器子系统中时,它可在与同一存储器子系统中使用的DRAM(例如“近存储器”)相同的粒度等级来存取。即使如此,由存储器控制器和存储器总线或者其它类型的总线对NVRAM的存取的粒度等级也比由闪存所使用的块大小以及I/O子系统的控制器和总线的存取大小要小。
NVRAM还可合并损耗平衡算法以考虑如下事实:在远存储器级的存储单元在多个写入存取之后开始损耗,特别是在大量写入例如在系统存储器实现中可发生的情况下。由于高循环计数块最可能这样损耗,所以损耗平衡通过与低循环计数块交换高循环计数块的地址,来扩展跨远存储器单元的写入。注意,大多数地址交换通常对应用程序是透明的,因为它由硬件、低级软件(例如低级驱动程序或操作系统)或者两者的组合来处理。
B.远存储器
本发明的一些实施例的远存储器122采用NVRAM来实现,但是不一定局限于任何特定存储器技术。远存储器122根据其特性和/或它在存储器/存储分级结构中的应用与其它指令和数据存储器/存储技术是可加以区分的。例如,远存储器122不同于:
静态随机存取存储器(SRAM),其可用于分别专门用于处理器核101-104的每个的第0级和第1级内部处理器高速缓存101a-b、102a-b、103a-b、103a-b和104a-b以及由处理器核所共享的低级高速缓存(LLC)105;
动态随机存取存储器(DRAM),配置为处理器100内部(例如在与处理器100相同的管芯上)的高速缓存106,和/或配置为处理器外部(例如在与处理器100相同或不同的封装中)的一个或多个高速缓存107-109;以及
闪速存储器/磁盘/光盘,作为大容量存储(未示出)来应用;以及
存储器,例如闪速存储器或者其它只读存储器(ROM),作为固件存储器(其可以指引导ROM、BIOS闪存和/或TPM闪存)(未示出)来应用。
远存储器122可用作指令和数据存储,其是由处理器100直接可寻址的,并且与作为大容量存储所应用的闪存/磁盘/光盘相对照,能够与处理器100保持同步。此外,如上所述以及如以下详细描述,远存储器122可放置于存储器总线上,并且可与存储器控制器(其又与处理器100直接通信)直接通信。
远存储器122可与其它指令和数据存储技术(例如DRAM)相结合,以便形成混合存储器(又称作并存PCM和DRAM;第一级存储器和第二级存储器;FLAM(闪存和DRAM))。注意,包括PCM/PCMS的上述技术的至少一些可用作大容量存储来作为对系统存储器的替代或补充,并且在以这种方式应用时无需是由处理器随机可存取的、字节可寻址的或者直接可寻址。
为了便于说明,应用的其余部分的大多数将涉及作为远存储器122的技术选择的“NVRAM”或者更具体来说是“PCM”或“PCMS”。因此,术语NVRAM、PCM、PCMS和远存储器可在下列论述中可互换地使用。但是,应当认识到,如上所述,不同技术也可用于远存储器。而且,NVRAM也并不局限于用作远存储器。
C.近存储器
“近存储器”121是在远存储器122前面所配置的存储器的中间级,其具有相对于远存储器的较低读取/写入存取等待时间,和/或更加对称读取/写入存取等待时间(即,具有大致等于写入时间的读取时间)。在一些实施例中,近存储器121具有比远存储器122明显要低的写入等待时间但是具有相似(例如略低或相等)读取等待时间;例如,近存储器121可以是易失性存储器,例如易失性随机存取存储器(VRAM),并且可包括DRAM或者其它高速基于电容器的存储器。但是要注意,本发明的基本原理并不局限于这些特定存储器类型。另外相比于远存储器122,近存储器121可具有相对更低密度,和/或更高的制造费用。
在一个实施例中,近存储器121配置在远存储器122与内部处理器高速缓存120之间。在以下所述的实施例的一些中,近存储器121配置为一个或多个存储器侧高速缓存(MSC)107-109,以掩蔽远存储器的性能和/或使用限制,包括例如读取/写入等待时间限制和存储器降级限制。在这些实现中,MSC 107-109和远存储器122的组合以近似、相当或超过仅使用DRAM作为系统存储器的系统的性能等级进行操作。如下面详细论述,虽然在图1中示为“高速缓存”,但是近存储器121可包括其中它执行其它作用的模式,作为对执行高速缓存的作用的补充或替代。
近存储器121能够位于处理器管芯上(如(一个或多个)高速缓存106)和/或位于处理器管芯外部(如高速缓存107-109)(例如在位于CPU封装的独立管芯上,位于具有到CPU封装的高带宽链路的CPU封装外部,例如在存储器双列直插存储器模块(DIMM)、扩充卡/夹层卡或者计算机主板上)。近存储器121可耦合成使用单个或多个高带宽链路,例如DDR或其它事务高带宽链路(如以下详细描述)与处理器100进行通信。
示范系统存储器分配方案
图1示出在本发明的实施例中如何相对系统物理地址(SPA)空间116-119来配置各级高速缓存101-109。如所述,这个实施例包括具有一个或多个核101-104的处理器100,其中各个核具有其自己的专用上级高速缓存(L0)101a-104a和中间级高速缓存(MLC)(L1)高速缓存101b-104b。处理器100还包括共享LLC 105。这些各个高速缓存级的操作是很好被理解的,并且在这里不作详细描述。
图1所示的高速缓存107-109可专用于特定系统存储器地址范围或者一组非邻近地址范围。例如,高速缓存107专用于充当系统存储器地址范围#1 116的MSC,以及高速缓存108和109专用于充当系统存储器地址范围#2 117和#3 118的非重叠部分的MSC。后一种实现可用于其中将由处理器100所使用的SPA空间交织为由高速缓存107-109所使用的地址空间(例如,当配置为MSC时)的系统。在一些实施例中,这后一个地址空间称作存储器通道地址(MCA)空间。在一个实施例中,内部高速缓存101a-106执行整个SPA空间的缓存操作。
如本文所使用的系统存储器是对于运行于处理器100的软件可见的和/或直接可寻址的;而在高速缓冲存储器101a-109没有形成系统地址空间的直接可寻址部分的意义上可对软件透明地操作,但是核还可支持指令的执行,以允许软件向一个或多个高速缓存的部分或全部提供某种控制(配置、策略、暗示等)。系统存储器细分为区域116-119可作为系统配置过程的一部分手动执行(例如由系统设计人员),和/或可由软件自动执行。
在一个实施例中,系统存储器区域116-119使用远存储器(例如PCM)、以及在一些实施例中使用配置为系统存储器的近存储器来实现。系统存储器地址范围#4表示一个地址范围,其使用高速存储器,例如DRAM(其可以是按照系统存储器模式(与缓存模式相反)所配置的近存储器)来实现。
图2示出按照本发明的实施例的存储器/存储分级结构140以及近存储器144和NVRAM的不同可配置操作模式。存储器/存储分级结构140具有多级,其中包括:(1) 高速缓存级150,其可包括处理器高速缓存150A(例如图1中的高速缓存101A-105)和作为远存储器150B的高速缓存的可选近存储器(按照如本文所述的某些操作模式);(2) 系统存储器级151,其可包括远存储器151B(例如,NVRAM,如PCM)(当近存储器存在时),(或者当近存储器不存在时只是作为系统存储器174的NVRAM)以及可选地作为系统存储器151A进行操作的近存储器(按照如本文所述的某些操作模式);(3) 大容量存储级152,其可包括闪速/磁/光大容量存储152B和/或NVRAM大容量存储152A(例如NVRAM 142的一部分);以及(4) 固件存储器级153,其可包括BIOS闪存170和/或BIOS NVRAM 172和可选的可信平台模式(TPM)NVRAM173。
如所示,近存储器144可实现成工作在多种不同模式,包括:第一模式,其中它作为远存储器的高速缓存进行操作(作为FM 150B的高速缓存的近存储器);第二模式,其中它作为系统存储器151A进行操作,并且占用SPA空间的一部分(有时称作近存储器“直接存取”模式);以及一个或多个附加操作模式,例如暂存器192或者写缓冲器193。在本发明的一些实施例中,近存储器是可分区的,其中各分区可并发地工作在所支持模式的不同模式;以及不同实施例可通过硬件(例如熔丝、引脚)、固件和/或软件(例如经过MSC控制器124中的一组可编程范围寄存器,例如其中可存储不同的二进制代码以识别各模式和分区)来支持分区的配置(例如大小、模式)。
图2中的系统地址空间A 190用来示出当近存储器配置为远存储器150B的MSC时的操作。在这种配置中,系统地址空间A 190表示整个系统地址空间(并且系统地址空间B 191不存在)。备选地,系统地址空间B 191用来示出在为近存储器的全部或者一部分被指派系统地址空间的一部分时的实现。在这个实施例中,系统地址空间B 191表示向近存储器151A所指派的系统地址空间的范围,以及系统地址空间A 190表示向NVRAM 174所指派的系统地址空间的范围。
另外,在充当远存储器150B的高速缓存时,近存储器144可在MSC控制器124的控制下工作在各种子模式中。在这些模式的每个中,在近存储器没有形成系统地址空间的直接可寻址部分的意义上,近存储器地址空间(NMA)对软件是透明的。这些模式包括但并不限于以下:
(1) 回写缓存模式:在这种模式中,充当FM高速缓存150B的近存储器的全部或部分用作NVRAM远存储器(FM)151B的高速缓存。在处于回写模式时,每一个写操作最初定向到作为FM 150B的高速缓存的近存储器(假定对其定向写入的高速缓存线存在于高速缓存中)。仅当作为FM 150B的高速缓存的近存储器中的高速缓存线将由另一个高速缓存线来替代时,才执行对应写操作以更新NVRAM FM 151B(与以下所述的直写模式相反,其中每个写操作立即传播到NVRAM FM 151B)。
(2) 近存储器旁路模式:在这种模式中,所有读和写绕过充当FM高速缓存150B的NM,并且直接转到NVRAM FM 151B。例如当应用不是高速缓存友好的或者要求数据以高速缓存线的粒度致力于持久化时,可使用这种模式。在一个实施例中,由处理器高速缓存150A和充当FM高速缓存150B的NM所执行的缓存相互无关地进行操作。因此,数据可缓存在充当FM高速缓存150B的NM中,其没有缓存在处理器高速缓存150A中(并且其在一些情况下可能不准许被缓存在处理器高速缓存150A中),反过来也是一样。因此,可指定为在处理器高速缓存中“不可缓存的”某些数据可缓存在充当FM高速缓存150B的NM中。
(3) 近存储器读-高速缓存写旁路模式:这是上述模式的变化,其中允许来自NVRAM FM 151 B的永久数据的读缓存(即,永久数据缓存在作为用于只读操作的远存储器150B的高速缓存的近存储器中)。当永久数据的大多数是“只读”并且应用使用是高速缓存友好时,这是有用的。
(4) 近存储器读-高速缓存直写模式:这是近存储器读-高速缓存写旁路模式的变化,其中除了读缓存之外还缓存写命中。对作为FM 150B的高速缓存的近存储器的每一个写入引起对FM 151B的写入。因此,由于高速缓存的直写性质,高速缓存线持久仍然得到保证。
在近存储器直接存取模式中起作用时,作为系统存储器151A的近存储器的全部或部分是软件直接可见的,并且形成SPA空间的部分。这种存储器可完全在软件控制之下。这种方案可创建软件的非均匀存储器地址(NUMA)存储器域,其中它相对于NVRAM系统存储器174从近存储器144获得更高性能。作为举例而不是限制,这种使用可用于某些高性能计算(HPC)和图形应用(其要求对某些数据结构的极快速存取。
在一个备选实施例中,近存储器直接存取模式通过“牵制”近存储器中的某些高速缓存线(即,具有也并发地存储在NVRAM 142中的数据的高速缓存线)来实现。这种牵制可在较大的多路组关联高速缓存中有效地进行。
图2还示出NVRAM 142的一部分可用作固件存储器。例如,BIOS NVRAM 172部分可用来存储BIOS镜像(作为对在BIOS闪存170中存储BIOS信息的替代或补充)。BIOS NVRAM部分172可以是SPA空间的一部分,并且是由运行于处理器核101-104上的软件直接可寻址的,而BIOS闪存170是经过I/O子系统115可寻址的。作为另一个示例,可信平台模块(TPM)NVRAM173部分可用来保护敏感系统信息(例如加密密钥)。
因此,如所示,NVRAM 142可实现成工作在多种不同模式,包括作为远存储器151B(例如,当近存储器144存在/进行操作时,无论近存储器是否经由MSC控制124充当FM的高速缓存(在一个或多个高速缓存101A-105之后并且在没有MSC控制124的情况下直接存取));只是NVRAM系统存储器174(不是作为远存储器,因为没有近存储器存在/进行操作;并且在没有MSC控制124的情况下存取);NVRAM大容量存储152A;BIOS NVRAM 172;以及TPM NVRAM173。虽然不同实施例可按照不同方式来指定NVRAM模式,图3描述解码表333的使用。
图3示出其上可实现本发明的实施例的示范计算机系统300。计算机系统300包括处理器310以及具有用于系统存储器、大容量存储和可选固件存储器的NVRAM 142的存储器/存储子系统380。在一个实施例中,NVRAM 142包括由计算机系统300用于存储数据、指令、状态和其它永久和非永久信息的整个系统存储器和存储分级结构。如先前所述,NVRAM142能够配置成实现系统存储器、大容量存储和固件存储器、TPM存储器等的典型存储器和存储分级结构中的作用。在图3的实施例中,NVRAM 142分区为FM 151B、NVRAM大容量存储152A、BIOS NVRAM 173和TMP NVRAM 173。还预期具有不同作用的存储分级结构,并且NVRAM142的应用并不局限于上述作用。
作为举例,描述当作为FM 150B的高速缓存的近存储器处于回写缓存中时的操作。在一个实施例中,虽然作为FM 150B的高速缓存的近存储器处于上述回写缓存模式中,但是读操作将首先到达MSC控制器124,其将执行查找以确定所请求数据是否存在于充当FM150B的高速缓存的近存储器中(例如利用标签高速缓存342)。如果存在的话,则它将经过I/O子系统115将数据返回到请求CPU核101-104或I/O装置。如果数据不存在的话,则MSC控制器124将向NVRAM控制器332发送请求连同系统存储器地址。NVRAM控制器332将使用解码表333来将系统存储器地址转换成NVRAM物理装置地址(PDA),并且将读操作定向到远存储器151B的这个区域。在一个实施例中,解码表333包括地址间接表(AIT)组件,NVRAM控制器332使用其在系统存储器地址与NVRAM PDA之间进行转换。在一个实施例中,作为实现成分配存储器地址操作并且由此降低对NVRAM FM 151B的损耗的损耗平衡算法的一部分来更新AIT。备选地,AIT可以是NVRAM控制器332中存储的独立表。
在接收来自NVRAM FM 151B的所请求数据时,NVRAM控制器332将所请求数据返回给MSC控制器124,其将数据存储在充当FM高速缓存150B的MSC近存储器中,并且还通过I/O子系统115将数据发送给请求处理器核101-104或I/O装置。对这个数据的后续请求可直接从充当FM高速缓存150B的近存储器来服务,直到它由其它某些NVRAM FM数据替代。
如所述,在一个实施例中,存储器写操作也首先转到MSC控制器124,其将它写入充当FM高速缓存150B的MSC近存储器中。在回写缓存模式中,在接收写操作时,数据可能没有直接发送给NVRAM FM 151B。例如,仅当充当FM高速缓存150B(其中存储数据)的MSC近存储器中的位置必须再用于存储不同系统存储器地址的数据时,数据才可发送给NVRAM FM151B。当这种情况发生时,MSC控制器124注意到数据在NVRAM FM 151B中不是当前的,以及因此将从充当FM高速缓存150B的近存储器中对它进行检索,并且将它发送给NVRAM控制器332。NVRAM控制器332查找系统存储器地址的PDA,并且将数据写到NVRAM FM 151B。
图3中,NVRAM控制器332示为使用三个独立线路连接到FM 151B、NVRAM大容量存储152A和BIOS NVRAM 172。但是,这不一定意味着存在将NVRAM控制器332连接到NVRAM 142的这些部分的三个独立物理总线或通信通道。而是在一些实施例中,公共存储器总线或者另一类型的总线(例如以下针对图4A-M所述的那些总线)用来在通信上将NVRAM控制器332连接到FM 151B、NVRAM大容量存储152A和BIOS NVRAM 172。例如,在一个实施例中,图3中的三个线条表示总线,例如存储器总线(例如DDR3、DDR4等总线),NVRAM控制器332通过其实现与NVRAM 142进行通信的事务协议。NVRAM控制器332还可通过支持本地事务协议的总线(例如PCI express总线、桌面管理界面(DMI)总线或者利用事务协议和足够小的事务有效载荷大小(例如,诸如64或128字节的高速缓存线大小)的任何其它类型的总线)来与NVRAM 142进行通信。
在一个实施例中,计算机系统300包括集成存储器控制器(IMC)331,其执行处理器310的中央存储器存取控制,存储器控制器(IMC)331耦合到:1) 存储器侧高速缓存(MSC)控制器124,以控制对充当远存储器高速缓存150B的近存储器(NM)的存取;以及2) NVRAM控制器332,以控制对NVRAM 142的存取。虽然图3中示为独立单元,但是MSC控制器124和NVRAM控制器332可在逻辑上形成IMC 331的一部分。
在所示实施例中,MSC控制器124包括一组范围寄存器336,其指定用于充当远存储器高速缓存150B的NM的操作模式(例如,回写缓存模式、近存储器旁路模式等,以上所述)。在所示实施例中,DRAM 144用作用于充当远存储器150B的高速缓存的NM的存储器技术。响应存储器存取请求,MSC控制器124可确定(根据范围寄存器336中指定的操作模式)该请求是否能够从充当FM 150B的高速缓存的NM来服务或者该请求是否必须发送给NVRAM控制器332,其然后可从NVRAM 142的远存储器(FM)部分151B来服务于该请求。
在NVRAM 142采用PCMS来实现的一个实施例中,NVRAM控制器332是PCMS控制器,其采用符合PCMS技术的协议来执行存取。如先前所述,PCMS存储器固有地能够以字节的粒度来存取。然而,NVRAM控制器332可在较低粒度等级,例如高速缓存线(例如64位或128位高速缓存线)或者符合存储器子系统的任何其它粒度等级来存取基于PCMS的远存储器151B。本发明的基本原理并不局限于用于存取基于PCMS的远存储器151B的任何特定粒度等级。但是,一般来说,当基于PCMS的远存储器151B用来形成系统地址空间的一部分时,粒度等级将高于传统上用于例如闪存的其它非易失性存储技术的粒度等级,闪存只能以“块”等级来执行重写和擦除操作(在大小方面对于NOR闪存最小为64 Kbyte以及对于NAND闪存为16Kbyte)。
在所示实施例中,NVRAM控制器332能够读取配置数据,以便从解码表333来建立NVRAM 142的先前所述模式、大小等,或者备选地能够依靠从IMC 331和I/O子系统315所传递的解码结果。例如,在制造时或者在现场,计算机系统300能够将解码表333编程为将NVRAM 142的不同区域标记为系统存储器、经由SATA接口所展示的大容量存储、经由USB批量传输(BOT)接口所展示的大容量存储、支持TPM存储的加密存储等等。将存取导向NVRAM装置142的不同分区的方法是经由解码逻辑进行。例如,在一个实施例中,各分区的地址范围在解码表333中定义。在一个实施例中,当IMC 331接收存取请求时,请求的目标地址经过解码以揭示该请求是定向到存储器、NVRAM大容量存储还是I/O。如果它是存储器请求,则IMC331和/或MSC控制器124还从目标地址来确定该请求是定向到作为FM 150B的高速缓存的FM或者定向到FM 151B。对于FM 151B存取,将请求转发到NVRAM控制器332。如果请求被定向到I/O(例如非存储和存储I/O装置),则IMC 331将这个请求传递给I/O子系统115。I/O子系统115还对地址进行解码,以确定该地址指向NVRAM大容量存储152A、BIOS NVRAM 172还是其它非存储或存储I/O装置。如果这个地址指向NVRAM大容量存储152A或BIOS NVRAM 172,则子系统115将该请求转发到NVRAM控制器332。如果这个地址指向TMP NVRAM 173,则I/O子系统115将该请求传递给TPM 334以执行安全存取。
在一个实施例中,转发到NVRAM控制器332的各请求伴随指示存取类型的属性(又称作“事务类型”)。在一个实施例中,NVRAM控制器332可模拟所请求存取类型的存取协议,使得平台的其余部分仍然不知道由NVRAM 142在存储器和存储分级结构中执行的多个作用。在备选实施例中,NVRAM控制器332可执行对NVRAM 142的存储器存取,而不管它是哪一种事务类型。要理解,解码路径能够与以上所述的不同。例如,IMC 331可对存取请求的目标地址进行解码,并且确定它是否定向到NVRAM 142。如果它定向到NVRAM 142,则IMC 331按照解码表333来生成属性。基于该属性,IMC 331则将请求转发到适当的下游逻辑(例如NVRAM控制器332和I/O子系统315)以执行所请求数据存取。在又一个实施例中,如果对应属性没有从上游逻辑(例如IMC 331和I/O子系统315)传递,则NVRAM控制器332可对目标地址进行解码。也可实现其它解码路径。
诸如本文所述的新存储器架构的存在提供大量新的可能性。虽然下面进一步更为详细地进行论述,但是下面立即快速强调这些可能性的一部分。
按照一个可能实现,NVRAM 142充当系统存储器中的传统DRAM技术的完全替代或补充。在一个实施例中,NVRAM 142表示引入第二级系统存储器(例如,系统存储器可被看作具有包括作为高速缓存150B(DRAM装置340的一部分)的近存储器的第一级系统存储器以及包括远存储器(FM)151B(NVRAM 142的一部分)的第二级系统存储器)。
按照一些实施例,NVRAM 142充当闪速/磁/光大容量存储152B的完全替代或补充。如先前所述,在一些实施例中,即使NVRAM 152A能够具有字节级可寻址性,NVRAM控制器332仍然可根据实现(例如,64 Kbyte、128 Kbyte等)按照多个字节的块来存取NVRAM大容量存储152A。由NVRAM控制器332从NVRAM大容量存储152A存取数据的特定方式可对处理器310所运行的软件是透明的。例如,即使可从闪速/磁/光大容量存储152A以不同方式来存取NVRAM大容量存储152A,操作系统仍然可将NVRAM大容量存储152A看作是标准大容量存储装置(例如串行ATA硬盘驱动器或者其它标准形式的大容量存储装置)。
在NVRAM大容量存储152A充当闪速/磁/光大容量存储152B的完全替代的一个实施例中,不需要将存储驱动程序用于块可寻址存储存取。去除来自存储存取的存储驱动程序开销能够增加存取速度并且节省功率。在期望NVRAM大容量存储152A对OS和/或应用看来是作为块可存取并且与闪速/磁/光大容量存储152B是不可区分的备选实施例中,模拟存储驱动程序能够用来向用于存取NVRAM大容量存储152A的软件展示块可存取接口(例如,通用串行总线(USB)批量传输(BOT) 1.0、串行高级技术附连(SATA)3.0等)。
在一个实施例中,NVRAM 142充当固件存储器,例如BIOS闪存362和TPM闪存372(图3中以虚线示出,以指示它们是可选的)的完全替代或补充。例如,NVRAM 142可包括BIOSNVRAM 172部分以补充或替代BIOS闪存362,并且可包括TPM NVRAM 173部分以补充或替代TPM闪存372。固件存储器还能够存储由TPM 334用来保护敏感系统信息(例如加密密钥)的系统永久状态。在一个实施例中,将NVRAM 142用于固件存储器消除了对第三方闪存部件存储对系统操作关键的代码和数据的需要。
然后继续图3的系统的论述,在一些实施例中,计算机系统100的架构可包括多个处理器,但是为了简洁起见,图3中示出单个处理器310。处理器310可以是任何类型的数据处理器,包括通用或专用中央处理器单元(CPU)、专用集成电路(ASIC)或者数字信号处理器(DSP)。例如,处理器310可以是通用处理器,例如Core™ i3、i5、i7、2 Duo和Quad、Xeon™或者Itanium™处理器,其全部可从加利福尼亚圣克拉拉的Intel Corporation得到。备选地,处理器310可来自另一个公司,例如ARM Holdings, Ltd(Synnyvale,CA)、MIPSTechnologies(Synnyvale,CA)等。处理器310可以是专用处理器,例如网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等。处理器310可在一个或多个封装中包含的一个或多个芯片上实现。处理器310可以是一个或多个衬底的一部分和/或可使用多种工艺技术的任一种(例如BiCMOS、CMOS或NMOS)在一个或多个衬底上实现。在图3所示的实施例中,处理器310具有芯片上系统(SOC)配置。
在一个实施例中,处理器310包括集成图形单元311,其包括用于运行图形命令,例如3D或2D图形命令的逻辑。虽然本发明的实施例并不局限于任何特定集成图形单元311,但是在一个实施例中,图形单元311能够运行工业标准图形命令,例如由Open GL和/或DirectX应用编程接口(API)(例如OpenGL 4.1和Direct X 11)所规定的那些命令。
处理器310还可包括一个或多个核101-104,但是再次为了清楚起见,图3中示出单个核。在许多实施例中,一个或多个核101-104包括内部功能块,例如一个或多个执行单元、退出单元、一组通用和特定寄存器等。如果一个或多个核是多线程或超线程的,则各硬件线程也可被认为是“逻辑”核。核101-104在架构和/或指令集方面可以是同构或异构的。例如,一部分核可以是有序的,而其它核是无序的。作为另一个示例,两个或更多核可以能够运行同一指令集,而其它核可以能够仅运行那个指令集的子集 或者不同的指令集。
处理器310还可包括一个或多个高速缓存,例如高速缓存313,其可实现为SRAM和/或DRAM。在未示出的许多实施例中,除了高速缓存313之外的附加高速缓存实现成使得多级高速缓存存在于一个或多个核101-104中的执行单元与存储器装置150B、151B之间。例如,共享高速缓存单元集合可包括上级高速缓存(例如第1级(L1)高速缓存)、中间级高速缓存(例如第2级(L2)、第3级(L3)、第4级(L4)或者其它级高速缓存)、(LLC)和/或其不同组合。在不同的实施例中,高速缓存313可按照不同方式来分配,并且在不同实施例中可以是许多不同大小其中之一。例如,高速缓存313可以是8兆字节(MB)高速缓存、16 MB高速缓存等。另外,在不同实施例中,高速缓存可以是直接映射高速缓存、全关联高速缓存、多路组关联高速缓存或者具有另一种类型的映射的高速缓存。在包括多个核的其它实施例中,高速缓存313可包括在所有核之间共享的一个大部分,或者可分为若干独立功能层面(例如每个核一个层面)。高速缓存313还可包括在所有核之间共享的一部分以及作为每个核的独立功能层面的若干其它部分。
处理器310还可包括归属代理314,其包括协调和操作一个或多个核101-104的那些组件。归属代理单元314可包括例如功率控制单元(PCU)和显示单元。PCU可以是或者包括调节一个或多个核101-104和集成图形单元311的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
如所述,在一些实施例中,处理器310包括集成存储器控制器(IMC)331、近存储器高速缓存(MSC)控制器和NVRAM控制器332,其全部能够在与处理器310相同的芯片上或者在连接到处理器310的独立芯片和/或封装上。DRAM装置144可以在与IMC 331和MSC控制器124相同的芯片或者不同的芯片上;因此,一个芯片可具有处理器310和DRAM装置144;一个芯片可具有处理器310和另一个DRAM装置144以及(这些芯片可以在相同或不同的封装中);一个芯片可具有一个或多个核101-104和另一个IMC 331、MSC控制器124和DRAM 144(这些芯片可以在相同或不同的封装中);一个芯片可具有一个或多个核101-104、另一个IMC 331和MSC控制器124和另一个DRAM 144(这些芯片可以在相同或不同的封装中);等等。
在一些实施例中,处理器310包括耦合到IMC 331的I/O子系统115。I/O子系统115实现处理器310与下列串联或并行I/O装置之间的通信:一个或多个网络336(例如局域网、广域网或因特网)、存储I/O装置(例如闪速/磁/光大容量存储152B、BIOS 闪存 362、TPM 闪存 372)以及一个或多个非存储I/O装置337(例如显示器、键盘、扬声器等)。I/O子系统115可包括平台控制集线器(PCH)(未示出),其还包括若干I/O适配器338和其它I/O电路,以提供对存储和非存储I/O装置和网络的存取。为了实现这个方面,I/O子系统115可具有用于所使用的每个I/O协议的至少一个集成I/O适配器338。I/O子系统115能够在与处理器310相同的芯片上或者在连接到处理器310的独立芯片和/或封装上。
I/O适配器338将处理器310中利用的主机通信协议转换成与特定I/O装置兼容的协议。对于闪速/磁/光大容量存储152B,I/O适配器338可转换的协议的一些包括外设部件互连(PCI)-Express(PCI-E)3.0、USB 3.0、SATA 3.0、小型计算机系统接口(SCSI)Ultra-640以及电气和电子工程师协会(IEEE)1394“Firewire”等等。对于BIOS 闪存362,I/O适配器338可转换的协议的一些包括串行外设接口(SPI)、Microwire等等。另外,可存在一个或多个无线协议I/O适配器。无线协议等等的示例用于个人区域网络(例如IEEE 802.15和蓝牙4.0)、无线局域网(例如基于IEEE 802.11的无线协议)和蜂窝协议中。
在一些实施例中,I/O子系统115耦合到TPM控制334以控制对系统永久状态(例如安全数据、加密密钥、平台配置信息等)的存取。在一个实施例中,这些系统永久状态存储在TMP NVRAM 173中,并且经由NVRAM控制器332来存取。
在一个实施例中,TPM 334是具有密码功能性的安全微控制器。TPM 334具有多个信任相关能力,例如用于确保由TPM所保护的数据只可用于同一TPM的SEAL能力。TPM 334能够使用其加密能力来保护数据和密钥(例如秘密)。在一个实施例中,TPM 334具有唯一和秘密RSA密钥,这允许它认证硬件装置和平台。例如,TPM 334能够验证寻求对计算机系统300中存储的数据的存取的系统是预期的系统。TPM 334也能够报告平台(例如计算机系统300)的完整性。这允许外部资源(例如网络上的服务器)确定平台的可信度,但是不防止用户接入平台。
在一些实施例中,I/O子系统315还包括管理引擎(ME)335,其是允许系统管理员监测、维护、更新、升级和修复计算机系统300的微处理器。在一个实施例中,系统管理员能够通过经由网络336编辑解码表333的内容来远程配置计算机系统300。
为了便于说明,应用的其余部分有时表示作为PCMS装置的NVRAM 142。PCMS装置包括多层(垂直堆叠)PCM单元阵列,其是非易失性的,具有低功率消耗,并且在比特级是可修改的。因此,术语NVRAM装置和PCMS装置可在下列论述中可互换地使用。但是,应当知道,如上所述,除了PCMS之外的不同技术也可用于NVRAM 142。
应当理解,计算机系统能够将NVRAM 142用于系统存储器存取、大容量存储、固件存储器和/或其它存储器和存储目的,即使那个计算机系统的处理器没有处理器310的所有上述组件,或者具有比处理器310要多的组件。
在图3所示的具体实施例中,MSC控制器124和NVRAM控制器332位于与处理器310相同的管芯或封装(称作CPU封装)上。在其它实施例中,MSC控制器124和/或NVRAM控制器332可位于管芯外或CPU封装外,通过诸如存储器总线(例如DDR总线(例如DDR3、DDR4等))、PCIexpress总线、桌面管理接口(DMI)总线或者任何其它类型总线的总线耦合到处理器310或CPU封装。
示范PCM总线和封装配置
图4A-M示出多种不同部署,其中处理器、近存储器和远存储器按照不同方式来配置和封装。具体来说,图4A-M所示的平台存储器配置系列实现新非易失性系统存储器的使用,例如PCM技术或者更具体来说是PCMS技术。
虽然相同数字标号用于图4A-M中的多个附图,但是这不一定意味着由那些数字标号所标识的结构始终是相同的。例如,虽然相同数字在若干附图中用来标识集成存储器控制器(IMC)331和CPU 401,但是这些组件可在不同附图中以不同方式来实现。没有强调这些差别中的一些,因为它们不是与了解本发明的基本原理相关的。
虽然下面描述若干不同系统平台配置方式,但是这些方式分成两大类别:分离架构,以及统一架构。简言之,在分离架构方案中,存储器侧高速缓存(MSC)控制器(例如位于处理器管芯中或者CPU封装中的独立管芯上)截取所有系统存储器请求。存在两个独立接口,其从那个控制器(其离开CPU封装)“向下游流动”,以耦合到近存储器和远存储器。各接口设计用于特定类型的存储器,并且各存储器能够在性能和容量方面单独缩放。
在统一架构方案中,单个存储器接口离开处理器管芯或CPU封装,并且所有存储器请求均发送给这个接口。MSC控制器连同近和远存储器子系统一起合并在这单个接口上。这个存储器接口必须设计成满足处理器的存储器性能要求,并且必须至少支持事务、无序协议,因为PCMS装置可能不是按顺序处理读取请求。按照上述一般类别,可采用下列特定平台配置。
以下所述的实施例包括各种类型的总线/通道。术语“总线”和“通道”在本文中同义地使用。每个DIMM插槽的存储器通道数量将取决于计算机系统(具有支持例如每个插槽三个存储器通道的一些CPU封装)中使用的特定CPU封装。
另外,在使用DRAM的以下所述的实施例中,实际上可使用任何类型的DRAM存储器通道,作为举例而非限制包括DDR通道(例如DDR3、DDR4、DDR5等)。因此,虽然DDR因其在工业中的广泛接受、所产生价格点等是有利的,但是本发明的基本原理并不局限于任何特定类型的DRAM或易失性存储器。
图4A示出包括作为充当CPU封装401中在处理器管芯上或者在独立管芯上)的FM(即,MSC)的高速缓存的近存储器进行操作的一个或多个DRAM装置403-406以及一个或多个NVRAM装置,例如驻留在DIMM 450-451上、充当远存储器的PCM存储器的分离架构的一个实施例。CPU封装401上的高带宽链路407将单个或多个DRAM装置403-406互连到处理器310,其寄宿集成存储器控制器(IMC)331和MSC控制器124。虽然图4A和以下所述的其它附图中示为独立单元,但是在一个实施例中,MSC控制器124可集成在存储器控制器331中。
DIMM 450-451使用定义具有DDR地址、数据和控制线和电压的DDR通道440(例如,如电子器件工程联合委员会(JEDEC)所定义的DDR3或DDR4标准)的DDR插槽和电连接。DIMM450-451上的PCM装置提供这个分离架构的远存储器容量,其中到CPU封装401的DDR通道440能够携带DDR和事务协议。与其中处理器310或者CPU封装中的其它逻辑(例如IMC 331或MSC控制器124)传送命令和接收直接响应的DDR协议相对照,用来与PCM装置进行通信的事务协议允许CPU 401发出各自通过唯一事务ID来识别的一系列事务。命令由PCM DIMM的接收PCMDIMM上的PCM控制器来服务,其向CPU封装401潜在无序地回送响应。处理器310或者CPU封装401中的其它逻辑通过其事务ID(其随响应所发送)来识别各个事务响应。上述配置允许系统支持基于标准DDR DRAM的DIMM(通过DDR电连接使用DDR协议)和基于PCM的DIMM配置(通过相同DDR电连接使用事务协议)。
图4B示出分离架构,其使用通过DDR通道440所耦合的基于DDR DRAM的DIMM 452来形成近存储器(其充当MSC)。处理器310寄宿存储器控制器331和MSC控制器124。NVRAM装置,例如PCM存储器装置驻留在基于PCM的DIMM 453上,其使用CPU封装401外的附加DDR通道442上的DDR插槽和电连接。基于PCM的DIMM 453提供这个分离架构的远存储器容量,其中到CPU封装401的DDR通道442基于DDR电连接并且能够携带DDR和事务协议。这允许系统采用变化数量的DDR DRAM DIMM 452(例如DDR4 DIMM)和PCM DIMM 453来配置,以实现预期容量和/或性能点。
图4C示出分离架构,其寄宿充当CPU封装401上(在处理器管芯上或者在独立管芯上)的存储器侧高速缓存(MSC)的近存储器403-406。CPU封装上的高带宽链路407用来将单个或多个DRAM装置403-406互连到处理器310,其寄宿存储器控制器 331和MSC控制器124,如分离架构所定义的。NVRAM(例如PCM存储器)装置驻留在PCI Express卡或扩充卡455上,其通过PCI Express总线454使用PCI Express电连接和PCI Express协议或者不同事务协议。PCI Express卡或扩充卡455上的PCM装置提供这个分离架构的远存储器容量。
图4D是分离架构,其使用基于DDR DRAM的DIMM 452和DDR通道440来形成近存储器(其充当MSC)。处理器310寄宿存储器控制器331和MSC控制器124。NVRAM(例如PCM存储器)装置455驻留在PCI Express卡或扩充卡上,其通过PCI Express链路454使用PCI Express电连接和PCI Express协议或者不同事务协议。PCI Express卡或扩充卡455上的PCM装置提供这个分离架构的远存储器容量,其中CPU封装401外的存储器通道接口提供DDR DRAM DIMM452的多个DDR通道440。
图4E示出统一架构,其寄宿充当MSC的近存储器以及远存储器NVRAM,例如PCIExpress卡或扩充卡456(其通过PCI Express总线454来使用PCI Express电连接和PCIExpress协议或者不同事务协议)上的PCM。处理器310寄宿集成存储器控制器331,但是在这种统一架构情况下,MSC控制器124连同DRAM近存储器和NVRAM远存储器一起驻留在卡或扩充卡456上。
图4F示出统一架构,其寄宿充当MSC的近存储器以及远存储器NVRAM,例如使用DDR通道457的DIMM 458上的PCM。这个统一架构中的近存储器包含各个DIMM 458上充当那个相同DIMM 458上的PCM装置(其形成那个特定DIMM的远存储器)的存储器侧高速缓存的DRAM。MSC控制器124连同近存储器和远存储器一起驻留在各DIMM 458上。在这个实施例中,DDR总线457的多个存储器通道被提供在CPU封装外。这个实施例的DDR总线457通过DDR电连接来实现事务协议。
图4G示出混合分离结构,由此MSC控制器124驻留在处理器310上,以及近存储器和远存储器接口共享同一DDR总线410。这个配置使用基于DRAM的DDR DIMM 411a作为充当MSC的近存储器,其中基于PCM的DIMM 411b(即,远存储器)使用DDR插槽和NVRAM(例如PCM存储器装置)驻留在DDR总线410的同一存储器通道上。这个实施例的存储器通道同时携带DDR和事务协议,以便分别对近存储器和远存储器DIMM 411a、411b进行寻址。
图4H示出统一架构,其中充当存储器侧高速缓存的近存储器461a驻留在夹层卡或扩充卡461上,采取基于DRAM的DDR DIMM的形式。存储器侧高速缓存(MSC)控制器124位于扩充卡的DDR和PCM控制器460上,其可具有连接到夹层卡/扩充卡461上的DDR DIMM通道470并且通过(一个或多个)高性能互连462,例如差分存储器链路互连到CPU的两个或更多存储器通道。关联远存储器461b位于同一夹层卡/扩充卡461上,并且由使用DDR通道470并且装载有NVRAM(例如PCM装置)的DIMM来形成。
图4I示出统一架构,其能够用作对通过DDR总线471连接到其DDR存储器子系统上的CPU封装401的DDR存储器子系统和DIMM 464的存储器容量扩展。对于这个配置中的附加的基于NVM的容量,充当MSC的近存储器驻留在夹层卡或扩充卡463上,采取基于DRAM的DDRDIMM 463a的形式。MSC控制器124位于扩充卡的DDR和PCM控制器460上,其可具有连接到夹层卡/扩充卡上的DDR DIMM通道470并且通过一个或多个高性能互连462(例如差分存储器链路)互连到CPU的两个或更多存储器通道。关联远存储器463b位于同一夹层卡/扩充卡463上,并且由使用DDR通道470并且装载有NVRAM(例如PCM装置)的DIMM 463b来形成。
图4J是统一架构,其中充当存储器侧高速缓存(MSC)的近存储器采取DRAM的形式驻留在每一个DIMM 465上。DIMM 465在将CPU封装401与位于DIMM上的MSC控制器124耦合的高性能互连/通道462,例如差分存储器链路上。关联远存储器位于相同DIMM 465上,并且由NVRAM(例如PCM装置)来形成。
图4K示出统一架构,其中充当MSC的近存储器采取DRAM的形式驻留在每个DIMM466上。DIMM在将CPU封装401与位于DIMM上的MSC控制器124连接的一个或多个高性能互连470上。关联远存储器位于相同DIMM 466上,并且由NVRAM(例如PCM装置)形成。
图4L示出分离架构,其使用DDR总线471上的基于DDR DRAM的DIMM 464来形成必要的近存储器(其充当MSC)。处理器310寄宿集成存储器控制器331和存储器侧高速缓存控制器124。NVRAM(例如PCM存储器)形成远存储器,远存储器驻留在使用高性能互连468的卡或扩充卡467上,高性能互连468使用事务协议向CPU封装401进行传递。寄宿远存储器的卡或扩充卡467寄宿单个缓冲器/控制器,其能够控制多个基于PCM的存储器或者在那个扩充卡上连接的多个基于PCM的DIMM。
图4M示出统一架构,其可使用卡或扩充卡469上的DRAM来形成必要的近存储器(其充当MSC)。NVRAM(例如PCM存储器)装置形成远存储器,远存储器也驻留在卡或扩充卡469(其使用到CPU封装401的高性能互连468)上。寄宿远存储器的卡或扩充卡469寄宿单个缓冲器/控制器,其能够控制多个基于PCM的装置或者在那个扩充卡469上的多个基于PCM的DIMM,并且还集成存储器侧高速缓存控制器124。
在上述实施例的一些,例如图4G所示的实施例中,DRAM DIMM 411a和基于PCM的DIMM 411b驻留在同一存储器通道上。因此,相同的地址/控制和数据线集合用来将CPU连接到DRAM和PCM存储器。为了减少经过CPU网格互连的数据业务量,在一个实施例中,与基于PCM的DIMM的公共存储器通道上的DDR DIMM配置成充当基于PCM的DIMM中存储的数据的唯一MSC。在这种配置中,基于PCM的DIMM中存储的远存储器数据仅缓存在同一存储器通道内的DDR DIMM近存储器中,由此将存储器事务定位到那个特定存储器通道。
另外,为了实现上述实施例,系统地址空间在逻辑上可在不同存储器通道之间细分。例如,如果存在四个存储器通道,则系统地址空间的¼可分配给各存储器通道。如果各存储器通道提供有一个基于PCMS的DIMM和一个DDR DIMM,则DDR DIMM可配置成充当系统地址空间的那个¼部分的MSC。
系统存储器和大容量存储装置的选择可取决于其上采用本发明的实施例的电子平台的类型。例如,在个人计算机、平板计算机、笔记本计算机、智能电话、移动电话、特征电话、个人数字助理(PDA)、便携媒体播放器、便携游戏装置、游戏控制台、数码相机、开关、集线器、路由器、机顶盒、数字录像机或者具有较小的大容量存储要求的其它装置中,大容量存储可单独使用NVRAM大容量存储152A或者使用NVRAM大容量存储152A与闪速/磁/光大容量存储152B相结合来实现。在具有较大的大容量存储要求的其它电子平台(例如大规模服务器)中,大容量存储可使用磁存储(例如硬盘驱动器)或者磁存储、光存储、全息存储、大容量闪速存储器和NVRAM大容量存储152A的任何组合来实现。在这样的情况下,负责存储的系统硬件和/或软件可实现各种智能永久存储分配技术,以按照有效或者有用的方式在FM151B/NVRAM存储152A与闪速/磁/光大容量存储152B之间分配永久程序代码和数据块。
例如,在一个实施例中,大功率服务器配置有近存储器(例如DRAM)、PCMS装置和用于大量永久存储的磁大容量存储装置。在一个实施例中,笔记本计算机配置有近存储器和PCMS装置,其执行远存储器和大容量存储装置的作用(即,其在逻辑上分区以执行如图3所示的这些作用)。家用或办公台式计算机的一个实施例与笔记本计算机相似地配置,但是还可包括一个或多个磁存储装置以提供大量永久存储能力。
平板计算机或蜂窝电话装置的一个实施例配置有PCMS存储器,但是潜在地没有近存储器并且没有附加大容量存储(为了节约成本/省电)。但是,平板/电话可配置有可拆卸大容量装置,例如闪存或PCMS存储棒。
各种其它类型的装置可如上所述来配置。例如,便携媒体播放器和/或个人数字助理(PDA)可按照与上述平板/电话相似的方式来配置,游戏控制台可按照与台式计算机或膝上型计算机相似的方式来配置。可相似地配置的其它装置包括数码相机、路由器、机顶盒、数字录像机、电视机和汽车。
MSC架构的实施例
在本发明的一个实施例中,系统存储器中的DRAM块采用PCM来替代。如先前所述,PCM以相对于DRAM明显要低的成本提供存储器容量的显著改进,并且是非易失性的。但是,某些PCM特性,例如不对称读-写性能、写循环持续极限以及其非易失性的性质使它对于在没有引起主要软件改变的情况下直接替代DRAM是棘手的。以下所述的本发明的实施例经过软件增强来提供集成PCM,同时还实现更新使用的软件透明方式。这些实施例促进存储器子系统架构的成功转变,并且提供使用单个PCM池来合并存储器和存储的方式,因而减轻对平台中的独立非易失性存储层的需要。
图5A所示的具体实施例包括:一个或多个处理器核501,其具有内部存储器管理单元(MMU)502,用于生成存储器请求;以及一个或多个内部CPU高速缓存503,用于按照所指定高速缓存管理策略来存储程序代码和数据线。如先前所述,高速缓存管理策略可包括排他的高速缓存管理策略(其中存在于分级结构的一个特定高速缓存级中的任何线在任何其它高速缓存级中不存在)或者包含高速缓存管理策略(其中复制高速缓存线存储在高速缓存分级结构的不同级。)。可用于管理内部高速缓存503的特定高速缓存管理策略是本领域的技术人员完全了解的,并且因此在这里将不作详细描述。本发明的基本原理并不局限于任何特定高速缓存管理策略。
还在图5A中示出的是归属代理505,其通过生成存储器请求的存储器通道地址(MCA)来提供对MSC 510的存取。归属代理505负责管理所指定存储器地址空间,并且解析定向到那个存储器空间的存储器存取冲突。因此,如果任何核需要存取给定地址空间,则它将向那个归属代码505发送请求,归属代理505则将向那个特定MMU 502发送请求。在一个实施例中,每个MMU 502分配一个归属代理505;但是,在一些实施例中,单个归属代理505可服务于一个以上存储器管理单元502。
如图5A所示,MSC 510配置在基于PCM的远存储器519前面。MSC 510管理对近存储器518的存取,并且在适当时(例如在无法从近存储器518来服务请求时)向远存储器控制器521转发存储器存取请求(例如读和写)。MSC 510包括高速缓存控制单元512,其响应标签高速缓存511而进行操作,标签高速缓存511存储识别近存储器518中包含的高速缓存线的标签。在操作中,当高速缓存控制单元512确定存储器存取请求能够从近存储器518来服务(例如响应高速缓存命中)时,它生成近存储器地址(NMA)以识别近存储器518中存储的数据。近存储器控制单元515解释NMA,并且响应地生成电信号以存取近存储器518。如先前所述,在一个实施例中,近存储器是动态随机存取存储器(DRAM)。在这种情况下,电信号可包括行地址选通(RAS)和列地址选通(CAS)信号。但是应当注意,本发明的基本原理并不局限于DRAM用于近存储器。
确保软件透明的存储器应用的另一个组件是优化的PCM远存储器控制器521,其管理PCM远存储器530特性,同时仍然提供所需的性能。在一个实施例中,PCM控制器521包括地址间接表520,其将高速缓存控制单元515所生成的MCA转换成用来对PCM远存储器530直接寻址的PDA。这些转换可在通常为5 KB的“块”粒度发生。要求转换,这是因为在一个实施例中,远存储器控制器521在整个PCM装置地址空间连续移动PCM块,以便确保没有因对任何特定块的高频率写入引起的损耗热点。如先前所述,这种技术在本文中有时称作“损耗平衡”。
因此,MSC 510由高速缓存控制单元512来管理,高速缓存控制单元512允许MSC510吸收、聚合和过滤对PCM远存储器530的事务(例如读和写)。高速缓存控制单元512管理近存储器518与PCM远存储器530之间的所有数据移动和一致性要求。另外,在一个实施例中,MSC高速缓存控制器512与一个或多个CPU进行接口,并且提供传统基于DRAM的存储器子系统中使用的标准同步加载/存储接口。
现在将在图5A所示架构的上下文中描述示范读和写操作。在一个实施例中,读操作将首先到达MSC控制器512,其将执行查找以确定所请求数据是否存在(例如利用标签高速缓存511)。如果存在的话,则它将数据返回到请求CPU核501或I/O装置(未示出)。如果数据不存在的话,MSC控制器512将向PCM远存储器控制器521发送该请求连同系统存储器地址(本文中又称作存储器通道地址或MCA)。PCM控制器521将使用地址间接表520来将地址转换成PDA,并且将读操作定向到PCM的这个区域。在接收来自PCM远存储器530的所请求数据时,PCM控制器521将所请求数据返回到MSC控制器512,其将数据存储在MSC近存储器518中,并且还将数据发送给请求CPU核501或I/O装置。对这个数据的后续请求可直接从MSC近存储器518来服务,直到它由另外某些PCM数据来替代。
在一个实施例中,存储器写操作还首先去到MSC控制器512,其将它写入MSC近存储器518。在这个实施例中,当接收写操作时,数据不可直接发送给PCM远存储器530。例如,仅当其中存储数据的MSC近存储器518中的位置必须再用于存储不同系统存储器地址的数据时,数据才可发送给PCM远存储器530。当这种情况发生时,MSC控制器512注意到数据在PCM远存储器530中不是最近的,以及因而将从近存储器518中对它进行检索,并且将它发送给PCM控制器521。PCM控制器521查找系统存储器地址的PDA,并且然后将数据写到PCM远存储器530。
在一个实施例中,MSC近存储器518的大小将通过工作负荷存储器要求以及近和远存储器性能来规定。对于基于DRAM的MSC,大小可设置成工作负荷存储器占用面积的大小或者PCM远存储器530大小的1/10。与当前处理器/系统架构中存在的常规高速缓存相比,这种MSC非常大。作为举例而不是限制,对于128 GB的PCM远存储器大小,MSC近存储器的大小能够大至16 GB。
图5B示出与MSC 510的一个实施例关联的附加细节。这个实施例包括一组逻辑单元,其负责命令和寻址,其中包括:命令缓冲器跟踪单元542,用于缓冲命令/地址;以及高速缓存取模式校验单元544,其响应来自MSC范围寄存器(RR)单元545的控制信号而选择MSC操作模式。下面描述若干示范操作模式。简言之,这些可包括近存储器用于传统缓存作用中的模式以及近存储器518形成系统存储器的一部分的模式。标签校验/命令调度器550使用来自标签高速缓存511的标签来确定是否特定高速缓存线存储在近存储器518中,并且近存储器控制器515生成通道地址信号(例如CAS和RAS信号)。
这个实施例还包括负责数据路由选择和处理的一组逻辑单元,其包括一组数据缓冲器546用于存储从近存储器所取的或者存储到近存储器的数据。在一个实施例中,还包括预取数据高速缓存547用于存储从近存储器和/或远存储器所预取的数据。但是,预取数据高速缓存547是可选的,并且不是遵照本发明的基本原理必要的。
纠错码(ECC)生成器/校验器单元552生成和校验ECC以确保写到近存储器或者从其中读取的数据没有差错。如以下所述,在本发明的一个实施例中,ECC生成器/校验器单元552修改成存储高速缓存标签。特定ECC是本领域的技术人员完全了解的,并且因此在这里不作详细描述。通道控制器553将近存储器518的数据总线耦合到MSC 510,并且生成存取近存储器518的必要电信令(例如DRAM近存储器的RAS和CAS信令)。
还在图5B中示出的是用于将MSC 510耦合到远存储器的远存储器控制接口548。具体来说,远存储器控制接口548生成对远存储器进行寻址所需的MCA,并且在数据缓冲器546与远存储器之间传递数据。
如所述,与当前处理器/系统架构中存在的常规高速缓存相比,一个实施例中采用的近存储器518非常大。因此,保持到近存储器地址的系统存储器地址转换的标签高速缓存511也可能非常大。存储和查找MSC标签的成本能够是对构建大高速缓存的明显阻碍。因此,在本发明的一个实施例中,这个问题使用新方案来解决,新方案将高速缓存标签存储于MSC中分配的存储中供ECC保护,由此基本上消除标签的存储成本。
这个实施例在图5C中一般示出,图5示出集成标签高速缓存和ECC单元554,其用于存储/管理高速缓存标签、存储ECC数据并且执行ECC操作。如所示,当执行标签校验操作(例如以确定特定的数据块是否存储在近存储器高速缓存518中)时,所存储标签根据请求而提供给标签校验/命令调度器550。
图5D示出一组示范数据524的组织以及对应ECC 523和标签522。如所示,标签522与ECC 523并存于标签高速缓存/ECC单元544的存储器(例如在一个实施例中的DDR DRAM)中。在这个示例中,总共64字节的若干数据块已经读入标签高速缓存/ECC单元554中。ECC校验/生成器单元554a使用数据525来生成ECC,并且将所生成ECC与关联数据的现有ECC 523进行比较。在这个示例中,对64字节的数据525生成4字节ECC。但是,本发明的基本原理并不局限于ECC的任何特定类型或大小。另外应当注意,术语“数据”在本文中广义地用来表示可执行程序代码和数据,其均可存储在图5D所示的数据存储525中。
在一个实施例中,3字节(24位)标签522与图5D所示的位指派一起使用。具体来说,位00至16是地址位,其提供高速缓存线的高地址位。对于具有56位的系统地址(例如SPA[55:00]),位00至16映射到系统地址的位55-29,从而允许512 MB的最小高速缓存大小。返回到3字节标签,保留位17-19;位20-21是目录位,其提供关于高速缓存线的远程CPU缓存的信息(例如提供关于其上缓存该线的其它CPU的指示);位21-22指示高速缓存线的当前状态(例如,00=干净;01=脏;10和11=未使用);以及位23指示高速缓存是否有效(例如,1=有效;0=无效)。
利用如上所述的直接映射高速缓存架构(其允许近存储器地址从系统存储器地址直接被提取)降低或消除在MSC 510能够读取之前查找标签存储的等待时间成本,由此显著改进性能。此外,也消除校验高速缓存标签以判定MSC 510是否具有所需数据的时间,因为它与从MSC读取的数据的ECC校验并行地进行。
在某些条件下,存储具有数据的标签可对写入造成问题。写入首先读取数据,以便确保它没有改写另外某个地址的数据。每一个写入之前的这种读取可能变为高成本的。本发明的一个实施例采用脏线标签高速缓存,其保持最近存取的近存储器地址(NMA)的标签。由于许多写入针对最近存取的地址,所以适当的小标签高速缓存能够获得有效命中率,以在写入之前过滤大多数读取。
与包括PCM远存储器控制器521和一组PCM远存储器模块530a-i的PCM DIMM 519的一个实施例关联的附加细节在图5E中示出。在一个实施例中,单个PCM远存储器池530a-i在系统存储器与存储使用之间共享。在这个实施例中,整个PCM池530a-i可细分为4 KB大小的“块”。PCM描述符表(PDT)565将每个PCM块的使用识别为存储器或存储。例如,PDT的每行可表示具有识别每个块的使用的特定列的特定块(例如,1=存储器;0=存储)。在这个实施例中,初始系统配置能够将PCM 530a-i中的PCM块在存储与存储器使用之间分区(即,通过对PDT 565编程)。在一个实施例中,同一个表用来排除不良块,并且为损耗平衡操作提供共享块。另外,PDT 565还可包括将每个PCMS块映射到由软件所使用的“逻辑”块地址。在系统存储器的情况下,逻辑块地址与MCA或SPA是相同的。每当因损耗平衡而移动PCMS块时,需要这种关联以更新地址间接表(AIT)563。当这种情况发生时,由软件所使用的逻辑块地址必须映射到不同的PCMS装置地址(PDA)。在一个实施例中,这种映射存储在AIT中,并且对每一损耗平衡移动来更新。
如所示,PCM控制器521包括系统物理地址(SPA)-PCM映射器556,其响应损耗管理单元555和地址间接单元563而进行操作,以将SPA映射到PCM块。在一个实施例中,损耗管理逻辑555实现损耗平衡算法,以考虑PCM 530a-530i的存储单元在过多写入和/或擦除存取之后开始损耗的事实。损耗平衡通过例如迫使具有低循环计数的数据块移动,并且由此允许高循环数据块被放置在存储低循环数据块的存储单元中,来将写入和擦除散布于PCM装置的存储器单元。通常,块的大多数没有循环,但是高循环计数块最可能出故障,并且损耗平衡将高循环计数块的地址与低循环计数块交换。损耗管理逻辑555可使用一个或多个计数器和寄存器来跟踪循环计数(例如,每次检测到循环时可使计数器递增1,并且结果可存储在寄存器集合中)。
在一个实施例中,地址间接逻辑563包括地址间接表(AIT),其包含应当将写操作定向到其中的PCM块的指示。AIT可用来在存储器与存储使用之间自动移动块。从软件角度来看,对所有块的存取使用传统存储器加载/存储语义(即,损耗平衡和地址间接操作对软件透明的发生)。在一个实施例中,AIT用来将软件所生成的SPA转换成PDA。因为对均匀损耗PCMS装置的需要而要求这种转换,数据将需要绕PDA空间移动以避免任何热点。当这种移动发生时,SPA与PDA之间的关系将发生变化,以及AIT将被更新以反映这个新转换。
接着SPA到PCM映射,调度器单元557将基本PCM操作(例如读取和/或写入)调度到PCM装置530a-I,并且PCM协议引擎558生成执行读/写操作所需的电信令。ECC单元562执行检错和纠错操作,以及数据缓冲器561暂时缓冲从PCM装置530a-I所读取或者写到PCM装置530a-I的数据。永久写缓冲器559用来保存被保证回写到PCMS的数据,甚至在非预计功率故障的情况下(例如,它使用非易失性存储来实现)。包括刷新支持逻辑560,以便周期地和/或按照所指定数据刷新算法(例如在永久写缓冲器达到所指定阈值之后)将永久写缓冲器刷新到PCMS。
在一个实施例中,MSC 510自动将存储存取直接路由到PCM远存储器控制器521以及将存储器存取路由到MSC高速缓存控制单元512。到达PCM远存储器控制器521的存储存取被看作是常规读取和写入,以及如常应用本文所述的地址间接和损耗平衡机制。在本发明的一个实施例中采用附加优化,其能够当数据需要在存储与存储器之间移动时实现。由于使用公共PCM池530a-I,所以数据移动能够通过只改变转换表(例如AIT)中的指针来消除或推迟。例如,当数据从存储传送到存储器时,识别特定物理PCM存储位置中的数据的指针可被更新以指示同一物理PCM存储位置这时是系统存储器中的存储器位置。在一个实施例中,这由硬件按照软件透明的方式进行以提供性能和功率有益效果。
除了软件透明操作模式之外,MSC控制器512的一个实施例还提供如MSC范围寄存器(RR)545所指示的备选操作模式。这些操作模式可包括但并不限于以下方面:
1)存储类应用的PCM存储器的直接存取。这种使用还将要求MSC控制器512确保提交给PCM 519的写入实际上提交到永久状态。
2)近存储器518的混合使用,向软件展示人用于直接使用的部分,同时将其余部分保持为MSC。在向软件展示近存储器518的一部分供直接使用时,那个部分在系统地址空间中是直接可寻址的。这允许某些应用在高性能小区域(近存储器518)与相对更低性能块区(远存储器530)之间显式划分其存储器分配。相比之下,作为MSC中的高速缓存所分配的部分没有形成系统地址空间的部分(而是充当远存储器530的高速缓存,如本文所述)。
如先前所述,MSC架构定义成使得若干不同系统分区方式是可能的。这些方式分成两大类:
(1)分离架构:在这个方案中,MSC控制器512位于CPU中,并且截取所有系统存储器请求。存在来自退出CPU的MSC的两个独立接口,连接近存储器(例如DRAM)和远存储器(例如PCM)。各接口设计用于特定类型的存储器,并且各存储器能够在性能和容量方面单独缩放。
(2)统一架构:在这个方案中,单个存储器接口退出CPU,并且将所有存储器请求发送给这个接口。MSC控制器512连同近存储器(例如DRAM)和远存储器(例如PCM)子系统在CPU外部合并在这个单接口上。在一个实施例中,这个存储器接口设计成满足CPU的存储器性能要求,并且支持事务无序协议。近和远存储器要求在这些接口的每个上按照“统一”方式来满足。
在上述类的范围之内,若干不同划分选项是可行的,下面描述其中一部分。
(1)分离示例:
近存储器:DDR5 DIMM
近存储器接口:一个或多个DDR5通道
远存储器:PCI express(PCIe)卡上的PCM控制器/装置
远存储器接口:x16 PCIe,Gen 3
2)统一示例:
CPU存储器接口:一个或多个KTMI(或QPMI)通道
扩充卡上具有MSC/PCM控制器的近/远存储器
MSC/PCM控制器外的近存储器接口:DDR5接口
MSC/PCM控制器外的远存储器接口:PCM装置接口
具有不同近存储器操作模式的实施例
如上所述,两级存储器分级结构可用于引入快速非易失性存储器,例如作为系统存储器的PCM,同时使用非常大的基于DRAM的近存储器。近存储器可用作硬件管理高速缓存。但是,一些应用不是硬件高速缓存友好的,并且因此会获益于使用这种存储器的备选方式。因为在任何给定时间可存在运行于服务器上的若干不同应用,所以本发明的一个实施例允许并发地实现多种使用模式。另外,一个实施例提供控制为这些使用模式的每个分配近存储器的能力。
在一个实施例中,MSC控制器512提供使用近存储器的下列模式。如先前所述,在一个实施例中,当前操作模式可通过MSC范围寄存器(RR)545中存储的操作码来指定。
(1)回写缓存模式:在这种模式中,近存储器518的全部或部分用作PCM存储器530的高速缓存。在处于回写模式时,每一个写操作最初定向到近存储器518(假定对其定向写入的高速缓存线存在于高速缓存中)。仅当近存储器518中的高速缓存线将由另一个高速缓存线来替代时,才执行对应写操作以更新PCM远存储器(与以下所述的直写模式相反,其中每个写操作直接传播到远存储器530)。
在一个实施例中,读操作将首先到达MSC高速缓存控制器512,其将执行查找,以确定所请求数据是否存在于PCM远存储器518中(例如利用标签高速缓存511)。如果存在的话,则它将数据返回到请求CPU核501或I/O装置(图5A中未示出)。如果数据不存在的话,则MSC高速缓存控制器512将向PCM远存储器控制器521发送请求连同系统存储器地址。PCM远存储器控制器521将系统存储器地址转换成PCM物理装置地址(PDA),并且将读操作定向到远存储器530的这个区域。如先前所述,这种转换可利用地址间接表(AIT)563,PCM控制器521使用其在系统存储器地址与PCM PDA之间进行转换。在一个实施例中,作为实现成分配存储器地址操作并且由此降低对PCM FM 530的损耗的损耗平衡算法的一部分,来更新AIT。
在接收来自PCM FM 530的所请求数据时,PCM FM控制器521将所请求数据返回到MSC控制器512,其将数据存储在MSC近存储器518中,并且还将数据发送给请求处理器核501或I/O装置(图5A中未示出)。对这个数据的后续请求可直接从MSC近存储器518来服务,直到它由另外某个PCM FM数据来替代。
在一个实施例中,存储器写操作也首先转到MSC控制器512,其将它写入充当FM高速缓存518的MSC近存储器中。在这个实施例中,当接收写操作时,数据不可直接发送给PCMFM 530。例如,仅当其中存储数据、充当FM高速缓存1,315.72 cm的MSC近存储器中的位置必须再用于存储不同系统存储器地址的数据时,数据才可发送给PCM FM 530。当这种情况发生时,MSC控制器512注意到数据在PCM FM 530中不是最近的,以及因此将从充当FM高速缓存518的近存储器中对它进行检索,并且将它发送给PCM FM控制器521。PCM控制器521查找系统存储器地址的PDA,并且然后将数据写到PCM FM 530。
(2) 近存储器旁路模式:在这种模式中,所有读和写绕过充当FM高速缓存518的NM,并且直接转到PCM远存储器530。例如当应用不是高速缓存友好的或者要求数据以高速缓存线的粒度提交为持久化时,可使用这种模式。在一个实施例中,由处理器高速缓存503和充当FM高速缓存518的NM所执行的缓存相互无关地进行操作。因此,数据可缓存在充当FM高速缓存518的NM,其没有缓存在处理器高速缓存503中(并且其在一些情况下可能不准许被缓存在处理器高速缓存503中),反过来也是一样。因此,可指定为在处理器高速缓存503中“不可缓存的”某些数据可缓存在充当FM高速缓存518的NM中。
(3) 近存储器读-高速缓存写旁路模式:这是上述模式的变化,其中允许来自PCM519的永久数据的读缓存(即,永久数据缓存在用于只读操作的MSC 510中)。当永久数据的大多数是“只读”并且应用使用是高速缓存友好的时,这是有用的。
(4) 近存储器读-高速缓存直写模式:这是前一种模式的变化,其中除了读缓存之外还缓存写命中。对MSC近存储器518的每一个写入引起对PCM远存储器530的写入。因此,由于高速缓存的直写性质,高速缓存线持久化仍然得到保证。
(5) 近存储器直接存取模式:在这种模式中,近存储器的全部或部分是软件直接可见的,并且形成系统存储器地址空间的部分。这种存储器可完全在软件控制之下。从PCM存储器519到近存储器的这个区域的任何数据移动要求显式软件副本。这种方案可创建软件的非均匀存储器地址(NUMA)存储器域,其中它相对于PCM远存储器530从近存储器518获得高许多的性能。这种使用可用于某些高性能计算(HPC)和图形应用(其要求对某些数据结构的极快速存取。这种近存储器直接存取模式相当于“牵制”近存储器中的某些高速缓存线。这种牵制可在较大的多路组关联高速缓存中有效地进行。
下表A概括上述操作模式的每个。
用来实现上述操作模式的处理器和芯片组组件包括以下:
(1)存储器侧高速缓存控制器512,其管理两层存储器(2LM)分级结构中的近存储器。
(2)存储器侧高速缓存510中的一组范围寄存器545(参见图5B),其确定上述操作模式的每个的系统地址范围。
(3)确认从PCM存储器子系统519到MSC控制器515的写完成的机制。
(4)使近存储器518中的线失效的机制。
(5)将脏线逐出到PCM并且使近存储器地址空间的所指定区域失效的刷新引擎。
在一个实施例中,使用模式的每个的存储器范围在系统地址空间中是邻近的。但是,多个分离区域可使用同一模式。在一个实施例中,MSC RR 545集合中的各模式范围寄存器提供下列信息:
(1)操作模式(例如回写、近存储器旁路模式等);
(2)系统地址空间中的范围基础(例如以2 MB粒度或更大);以及
(3)识别区域的大小的范围掩码字段。
在一个实施例中,所支持模式的数量是实现特定的,但是假定只有一个邻近系统地址范围可用于各操作模式。如果指定近存储器直接存取范围寄存器,则假定这将映射到邻近区域,开始于近存储器地址空间的底部。这种邻近区域必须小于近存储器的大小。另外,如果使用缓存模式的任一个,则直接存取区域大小必须小于近存储器大小,以允许所需性能的充分高速缓存大小。各种模式的近存储器的这种分配可由用户来配置。
总之,本发明的一个实施例按照下列操作集合来实现:
(1) 当任何读或写存取到达存储器侧高速缓存控制器512时,它检查范围寄存器545(图5B),以确定当前操作模式。
(2) 对于任何读高速缓存/写旁路存取,MSC控制器512检查当前是否缓存了地址。如果是的话,则它必须在向源回送写完成之前使该线失效。
(3) 对于任何写旁路直接PCM操作,MSC控制器512等待从PCM控制器521返回的完成,以确保将写入提交到全局可见缓冲器。
(4) 对近存储器中的直接存取模式空间的任何读或写定向到近存储器的适当区域。没有事务发送给PCM存储器。
(5) 范围寄存器配置中增加或减小任何现有区域或者添加新区域的任何变化将要求将适当缓存区域刷新到PCM。例如,如果软件想要通过减小回写高速缓存区域来增加直接存取模式区域的大小,则它可通过首先逐出近存储器区域的适当部分并且使其失效,然后改变近存储器直接存取模式范围寄存器,来进行这种操作。MSC控制器510则将知道对较小近存储器地址空间进行将来的缓存。
图6A中示出本发明的一个具体实施例,其中系统物理地址(SPA)空间在多个MSC之间划分。在所示实施例中,MSC高速缓存654和控制器656与SPA区域667a关联、MSC高速缓存655和控制器657与SPA区域667b关联;MSC高速缓存661和控制器663与SPA区域667c关联;以及MSC高速缓存660和控制器662与SPA区域667d关联。示出两个CPU、即670和671,各分别具有四个核650和651以及归属代理652和653。两个CPU 670和671分别经由存储器接口659和665耦合到公共远存储器控制器666。
因此,图6A中,整个SPA存储器空间细分为区域,其中各区域与特定MSC和控制器关联。在这个实施例中,给定MSC可具有非邻近SPA空间分配,但是没有两个MSC将具有重叠SPA空间。此外,MSC与非重叠SPA空间关联,并且不要求MSC间相干性技术。
可在图6A所示的架构上采用上述近存储器模式的任一种。例如,每个MSC控制器656-657、662-663可配置成工作在回写缓存模式、近存储器旁路模式、近存储器读-高速缓存写旁路模式、近存储器读-高速缓存直写模式或者近存储器直接存取模式。如先前所述,特定模式在范围寄存器(RR)655中为每个MSC 610来指定。
在一个实施例中,不同MSC可并发地实现不同操作模式。例如,MSC控制器656的范围寄存器可指定近存储器直接存取模式,MSC控制器657的范围寄存器可指定回写高速缓存模式,MSC控制器662的范围寄存器可指定读高速缓存/写旁路模式,以及MSC控制器663可指定读高速缓存/直写模式。另外,在一些实施例中,单独MSC可并发地实现不同操作模式。例如,MSC控制器656可配置成对某些系统地址范围实现近存储器直接存取模式,以及对其它系统地址范围实现近存储器旁路模式。
上述组合当然只是说明可对MSC控制器单独编程的方式。本发明的基本原理并不限于这些或任何其它组合。
如针对上述实施例的一部分(例如针对图4G所述)所述,MSC及其MSC控制器配置成在与负责那个特定SPA范围的PCM DIMM相同的存储器通道(例如相同的物理DDR总线)上进行操作。因此,在这个实施例中,在所指定SPA范围之内发生的存储器事务定位在同一存储器通道中,由此降低经过CPU网格互连的数据业务。
图6B提供按照本发明的实施例可如何配置系统存储器地址映射620、近存储器地址映射621和PCM地址映射622的图形表示。如先前所述,MSC控制器606工作在由范围寄存器(RR)605所识别的模式。系统存储器映射620具有为近存储器直接存取模式所分配的第一区域602、为近存储器旁路模式所分配的第二区域603以及为回写高速缓存模式所分配的第三区域。MSC控制器606如近存储器地址映射621所示来提供对近存储器的存取,近存储器地址映射621包括对回写高速缓存模式所分配的第一区域608以及对近存储器直接存取模式所分配的第二区域609。如所示,近存储器高速缓存旁路操作直接提供给按照PCM地址映射622进行操作的PCM控制器610,PCM地址映射622包括近存储器旁路区域611(对于近存储器旁路模式)和回写高速缓存区域612(对于回写高速缓存模式)。因此,系统存储器映射620、近存储器地址映射621和PCM地址映射622可基于由MSC控制器所实现的特定模式来细分。
图6C和图6D示出本发明的一个实施例中采用的寻址技术(其中一部分可能已经一般描述)。具体来说,图6C示出系统物理地址(SPA)675如何映射到近存储器(NMA)或PCM装置地址(PDA)。具体来说,SPA首先由处理器中的解码逻辑676来解码,以识别归属代理605(例如负责解码地址空间的归属代理)。与所选归属代理605关联的解码逻辑677还对SPA 675(或者其部分)进行解码,以生成识别对那个特定SPA空间所分配的适当MSC高速缓存控制器612的存储器通道地址(MCA)。所选高速缓存控制器612则或者在678将存储器存取请求映射到近存储器地址、之后可选地接着在680的交织操作(下面描述),或者备选地在679执行可选交织操作、之后接着由PCM远存储器控制器映射681成PCM装置地址PDA(例如使用如上所述的地址间接和损耗管理)。
可选的交织过程的一个实施例在图6D中示出,图6示出软件页如何能够使用交织来分解于多个MSC和PCM地址空间。在图6D所示的示例中,SPA空间中的两个页682-683由高速缓存线交织逻辑685来交织,以生成MCA空间中的两组交织线685-686。例如,来自存储器页682-683的所有奇数线(例如线1、3、5等)可发送给第一MCA空间685,以及来自存储器页682-683的所有偶数线(例如线2、5、6等)可发送给第二MCA空间686。在一个实施例中,页为5Kbyte页,但是本发明的基本原理并不局限于任何页大小。按照地址间接表(AIT)进行操作的PCM控制器687-688和损耗管理逻辑则重新排列PCM装置地址(PDA)存储器空间中的高速缓存线(如上所述)。这种性质的交织可用来将工作负荷分配于MSC 610和/或PCM装置619(例如,作为对非均匀存储器地址(NUMA)的替代)。
本发明的实施例可包括以上所述的各种步骤。步骤可包含在机器可执行指令中,其中指令可用来使通用或专用处理器执行步骤。备选地,这些步骤可由包含用于执行步骤的硬连线逻辑的特定硬件组件来执行,或者由已编程计算机组件和定制硬件组件的任何组合来执行。
如本文所述,指令可表示诸如配置成执行某些操作或具有预定功能性的专用集成电路(ASIC)的硬件的特定配置或者非暂时性计算机可读介质中包含的存储器中存储的软件指令。因此,附图所示的技术能够使用在一个或多个电子装置(例如端站、网络元件等)上存储和运行的代码及数据来实现。这样的电子装置使用诸如非暂时性计算机机器可读存储介质(例如磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置、相变存储器)和暂时性计算机机器可读通信介质(例如电、光、声或其它形式的传播信号—如载波、红外信号、数字信号等)的计算机机器可读介质来存储和传递(内部通信和/或通过网络与其它计算装置进行通信)代码和数据。另外,这类电子装置通常包括一组一个或多个处理器,处理器耦合到诸如一个或多个存储装置(非暂时性机器可读存储介质)、用户输入/输出装置(例如键盘、触摸屏和/或显示器)和网络连接的一个或多个其它组件。该组处理器和其它组件的耦合通常通过一个或多个总线和桥接器(又称作控制器)进行。存储装置以及携带网络业务的信号分别表示一个或多个机器可读存储介质和机器可读通信介质。因此,给定电子装置的存储装置通常存储代码和/或数据,用于那个电子装置的该组一个或多个处理器上执行。当然,本发明的一个实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。在本详细描述中,为了便于说明,提出大量具体细节,以便透彻地了解本发明。然而,本领域的技术人员十分清楚,即使没有这些具体的详细资料其中的一部分,也可以实现本发明。在某些情况下,没有详细描述众所周知的结构和功能,以免影响对本发明的主题的理解。相应地,本发明的范围和精神应当根据以下权利要求书来判定。
Claims (34)
1.一种多级存储器系统,包括:
处理器,具有用于运行指令和处理数据的多个核以及用于按照第一高速缓存管理策略来缓存指令和数据的一个或多个处理器高速缓存;
第一级存储器,具有与其关联的第一组特性,所述第一组特性包括第一读存取速度和第一写存取速度;以及
第二级存储器,具有与其关联的第二组特性,所述第二组特性包括其中至少一个分别比所述第一读存取速度或第一写存取速度相对更低的第二读和写存取速度、使得所述第二级存储器在功率被去除时保持其内容的非易失性、使得其中存储的指令或数据可在相当于所述多级存储器系统的存储器子系统的粒度来存取的随机存取和存储器子系统可寻址性;
存储器控制器,用于接收存储器请求并且在所述第一与所述第二级存储器之间分配所述存储器请求,所述存储器控制器指定所述第一级存储器的多种不同操作模式,包括第一模式,其中所述第一级存储器作为所述第二级存储器的存储器高速缓存进行操作;以及第二模式,其中向所述第一级存储器分配系统地址空间的第一地址范围,其中向所述第二级存储器分配所述系统地址空间的第二地址范围,其中所述第一范围和第二范围表示整个系统地址空间,
其中,在第一模式中,第一级存储器被组织到为相应系统地址范围提供高速缓存的不同高速缓存区域中,其中,所述相应系统地址范围与第二级存储器的具体物理存储器装置的相应系统地址范围对准。
2.如权利要求1所述的系统,其中,当所述存储器控制器在处于所述第一操作模式时指定多个子模式时,所述子模式包括回写缓存操作模式,使得仅当所述第一级存储器中的高速缓存线将由另一个高速缓存线替代时才执行写操作以更新所述第二级存储器。
3.如权利要求1所述的系统,其中,当所述存储器控制器在处于所述第一操作模式时指定多个子模式时,所述子模式包括第一级存储器旁路模式,其中所有读和写直接去到所述第二级存储器。
4.如权利要求1所述的系统,其中,当所述存储器控制器在处于所述第一操作模式时指定多个子模式时,所述子模式包括第一级存储器读-高速缓存-写模式,其中写直接去到所述第二级存储器,并且准许所述第一级存储器中的永久数据的读缓存。
5.如权利要求1所述的系统,其中,当所述存储器控制器在处于所述第一操作模式时指定多个子模式时,所述子模式包括第一级存储器读-高速缓存直写模式,其中准许所述第一级存储器中的永久数据的读缓存,并且还缓存写命中。
6.如权利要求1所述的系统,其中,所述第一组特性之一包括第一功率消耗等级,以及所述第二组特性包括比所述第一功率消耗等级相对更低的第二功率消耗等级。
7.如权利要求1所述的系统,其中,所述第一组特性之一包括第一密度,以及所述第二组特性包括比所述第一密度相对更高的第二密度。
8.如权利要求1所述的系统,其中,所述第二组特性之一包括所述第二级存储器直接可写,使得不要求在写之前擦除现有数据。
9.如权利要求1所述的系统,其中,所述第一级存储器包括动态随机存取存储器(DRAM),以及其中所述一个或多个处理器高速缓存包括静态随机存取存储器(SRAM)。
10.如权利要求9所述的系统,其中,所述第二级存储器包括相变存储器(PCM)。
11.如权利要求10所述的系统,其中,所述PCM存储器包括相变存储器和开关(PCMS)。
12.如权利要求1所述的系统,还包括:
大容量存储装置,用于永久地存储指令和数据,所述大容量存储装置在通信上通过接口耦合到所述第一级存储器和所述第二级存储器。
13.如权利要求1所述的系统,其中,所述第一写存取速度比所述第二写存取速度相对更高,但是所述第一读存取速度近似于所述第二读存取速度。
14.如权利要求13所述的系统,其中,所述第一写存取速度比所述第二写存取速度至少要高一个数量级。
15.如权利要求1所述的系统,其中,所述第一组特性包括第一读存取等待时间和第一写存取等待时间,以及所述第二组特性包括第二读存取等待时间和第二写存取等待时间,其中至少一个分别比所述第一读存取等待时间或第二写存取等待时间相对更高。
16.如权利要求1所述的系统,其中,制造每单位大小的所述第二级存储器比所述第一级存储器要便宜。
17.如权利要求1所述的系统,其中,所述第一高速缓存管理策略与第二高速缓存管理策略无关地进行操作。
18.如权利要求1所述的系统,其中,存储器子系统可寻址性包括以高速缓存线的粒度的可寻址性。
19.一种计算机系统,包括:
处理器,具有用于运行指令和处理数据的多个核以及用于按照第一高速缓存管理策略来缓存指令和数据的一个或多个处理器高速缓存;
第一级存储器,具有与其关联的第一组特性,所述第一组特性包括第一读存取速度和第一写存取速度;以及
第二级存储器,具有与其关联的第二组特性,所述第二组特性包括其中至少一个分别比所述第一读存取速度或第一写存取速度相对更低的第二读和写存取速度、使得所述第二级存储器在功率被去除时保持其内容的非易失性、使得其中存储的指令或数据可在相当于所述计算机系统的存储器子系统的粒度来存取的随机存取和存储器子系统可寻址性;
存储器控制器,用于接收存储器请求并且在所述第一与所述第二级存储器之间分配所述存储器请求,所述存储器控制器可配置成使所述第一级存储器按照多种不同操作模式进行操作,其中所述第一级存储器作为所述第二级存储器的存储器高速缓存进行操作,其中,在第一模式中,第一级存储器被组织到为相应系统地址范围提供高速缓存的不同高速缓存区域中,其中,所述相应系统地址范围与第二级存储器的具体物理存储器装置的相应系统地址范围对准,所述模式的至少一个包括回写缓存操作模式,使得仅当所述第一级存储器中的高速缓存线将由另一个高速缓存线替代时,才执行写操作以更新所述第二级存储器。
20.如权利要求19所述的系统,其中,所述模式之一包括第一级存储器旁路模式,其中所有读和写直接去到所述第二级存储器。
21.如权利要求19所述的系统,其中,所述模式之一包括第一级存储器读-高速缓存-写模式,其中写直接去到所述第二级存储器,并且准许所述第一级存储器中的永久数据的读缓存。
22.如权利要求19所述的系统,其中,所述模式之一包括第一级存储器读-高速缓存直写模式,其中准许所述第一级存储器中的永久数据的读缓存,并且还缓存写命中。
23.如权利要求19所述的系统,其中,所述第一组特性之一包括第一功率消耗等级,以及所述第二组特性包括比所述第一功率消耗等级相对更低的第二功率消耗等级。
24.如权利要求19所述的系统,其中,所述第一组特性之一包括第一密度,以及所述第二组特性包括比所述第一密度相对更高的第二密度。
25.如权利要求19所述的系统,其中,所述第二组特性之一包括所述第二级存储器直接可写,使得不要求在写之前擦除现有数据。
26.如权利要求19所述的系统,其中,所述第一级存储器包括动态随机存取存储器(DRAM),以及其中所述一个或多个处理器高速缓存包括静态随机存取存储器(SRAM)。
27.如权利要求26所述的系统,其中,所述第二级存储器包括相变存储器(PCM)。
28.如权利要求27所述的系统,其中,所述PCM存储器包括相变存储器和开关(PCMS)。
29.如权利要求19所述的系统,还包括:
大容量存储装置,用于永久地存储指令和数据,所述大容量存储装置在通信上通过接口耦合到所述第一级存储器和所述第二级存储器。
30.如权利要求19所述的系统,其中,所述第一写存取速度比所述第二写存取速度相对更高,但是所述第一读存取速度近似于所述第二读存取速度。
31.如权利要求30所述的系统,其中,所述第一写存取速度比所述第二写存取速度至少要高一个数量级。
32.如权利要求19所述的系统,其中,所述第一组特性包括第一读存取等待时间和第一写存取等待时间,以及所述第二组特性包括第二读存取等待时间和第二写存取等待时间,其中至少一个分别比所述第一读存取等待时间或第二写存取等待时间相对更高。
33.如权利要求19所述的系统,其中,制造每单位大小的所述第二级存储器比所述第一级存储器要便宜。
34.如权利要求19所述的系统,其中,所述第一高速缓存管理策略与第二高速缓存管理策略无关地进行操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710753816.5A CN107608910B (zh) | 2011-09-30 | 2011-09-30 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/054444 WO2013048503A1 (en) | 2011-09-30 | 2011-09-30 | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710753816.5A Division CN107608910B (zh) | 2011-09-30 | 2011-09-30 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103946811A CN103946811A (zh) | 2014-07-23 |
CN103946811B true CN103946811B (zh) | 2017-08-11 |
Family
ID=47996234
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710753816.5A Active CN107608910B (zh) | 2011-09-30 | 2011-09-30 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
CN201180075096.2A Active CN103946811B (zh) | 2011-09-30 | 2011-09-30 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710753816.5A Active CN107608910B (zh) | 2011-09-30 | 2011-09-30 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9378142B2 (zh) |
EP (2) | EP2761464B1 (zh) |
CN (2) | CN107608910B (zh) |
TW (1) | TWI454915B (zh) |
WO (1) | WO2013048503A1 (zh) |
Families Citing this family (113)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5520747B2 (ja) * | 2010-08-25 | 2014-06-11 | 株式会社日立製作所 | キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体 |
EP3382556A1 (en) | 2011-09-30 | 2018-10-03 | INTEL Corporation | Memory channel that supports near memory and far memory access |
CN103999067A (zh) | 2011-12-21 | 2014-08-20 | 英特尔公司 | 以多个非易失性存储器为特征的高性能存储结构和系统 |
BR112014015441B1 (pt) | 2011-12-22 | 2021-05-25 | Intel Corporation | conservação de energia por meio de desligamento de canal de memória |
WO2013101209A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Thin translation for system access of non volatile semicondcutor storage as random access memory |
US9418700B2 (en) | 2012-06-29 | 2016-08-16 | Intel Corporation | Bad block management mechanism |
US9390020B2 (en) | 2012-07-06 | 2016-07-12 | Seagate Technology Llc | Hybrid memory with associative cache |
US9104578B2 (en) | 2012-07-06 | 2015-08-11 | Seagate Technology Llc | Defining address ranges used to cache speculative read data |
US9529724B2 (en) * | 2012-07-06 | 2016-12-27 | Seagate Technology Llc | Layered architecture for hybrid controller |
US9594685B2 (en) | 2012-07-06 | 2017-03-14 | Seagate Technology Llc | Criteria for selection of data for a secondary cache |
US9477591B2 (en) | 2012-07-06 | 2016-10-25 | Seagate Technology Llc | Memory access requests in hybrid memory system |
US9772948B2 (en) | 2012-07-06 | 2017-09-26 | Seagate Technology Llc | Determining a criterion for movement of data from a primary cache to a secondary cache |
US9424198B2 (en) * | 2012-11-30 | 2016-08-23 | Intel Corporation | Method, system and apparatus including logic to manage multiple memories as a unified exclusive memory |
WO2014092698A1 (en) * | 2012-12-11 | 2014-06-19 | Hewlett-Packard Development Company | Application server to nvram path |
US9075952B2 (en) * | 2013-01-17 | 2015-07-07 | Intel Corporation | Controlling bandwidth allocations in a system on a chip (SoC) |
US9183057B2 (en) * | 2013-01-21 | 2015-11-10 | Micron Technology, Inc. | Systems and methods for accessing memory |
CN103970219B (zh) * | 2013-01-30 | 2018-03-20 | 鸿富锦精密电子(天津)有限公司 | 存储设备及支持所述存储设备的主板 |
US9547594B2 (en) * | 2013-03-15 | 2017-01-17 | Intel Corporation | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage |
US20160139807A1 (en) * | 2013-07-09 | 2016-05-19 | Hewlett-Packard Development Company, L.P. | Write flow control for memory modules that include or interface with non-compliant memory technologies |
US9367247B2 (en) | 2013-08-20 | 2016-06-14 | Seagate Technology Llc | Memory access requests in hybrid memory system |
US9785564B2 (en) | 2013-08-20 | 2017-10-10 | Seagate Technology Llc | Hybrid memory with associative cache |
US9507719B2 (en) | 2013-08-20 | 2016-11-29 | Seagate Technology Llc | Garbage collection in hybrid memory system |
JP6366717B2 (ja) * | 2013-09-27 | 2018-08-01 | インテル・コーポレーション | 複数のデバイスにわたる複数のメモリリソースを構成するための技術 |
US9304941B2 (en) * | 2014-02-27 | 2016-04-05 | Mangstor, Inc. | Self-encrypting flash drive |
GB2524063B (en) | 2014-03-13 | 2020-07-01 | Advanced Risc Mach Ltd | Data processing apparatus for executing an access instruction for N threads |
US10235103B2 (en) | 2014-04-24 | 2019-03-19 | Xitore, Inc. | Apparatus, system, and method of byte addressable and block addressable storage and retrival of data to and from non-volatile storage memory |
GB2529148B (en) | 2014-08-04 | 2020-05-27 | Advanced Risc Mach Ltd | Write operations to non-volatile memory |
US10318153B2 (en) * | 2014-12-19 | 2019-06-11 | Advanced Micro Devices, Inc. | Techniques for changing management modes of multilevel memory hierarchy |
US9658963B2 (en) * | 2014-12-23 | 2017-05-23 | Intel Corporation | Speculative reads in buffered memory |
US9851919B2 (en) * | 2014-12-31 | 2017-12-26 | Netapp, Inc. | Method for data placement in a memory based file system |
US20160224252A1 (en) * | 2015-01-30 | 2016-08-04 | Intel Corporation | Hybrid memory architecture |
EP3254287A4 (en) | 2015-02-06 | 2018-08-08 | Micron Technology, INC. | Apparatuses and methods for memory device as a store for program instructions |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
US9547361B2 (en) * | 2015-04-29 | 2017-01-17 | Qualcomm Incorporated | Methods and apparatuses for memory power reduction |
US10387259B2 (en) | 2015-06-26 | 2019-08-20 | Intel Corporation | Instant restart in non volatile system memory computing systems with embedded programmable data checking |
US10073659B2 (en) | 2015-06-26 | 2018-09-11 | Intel Corporation | Power management circuit with per activity weighting and multiple throttle down thresholds |
JP6403162B2 (ja) * | 2015-07-23 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
CN106528491A (zh) * | 2015-09-11 | 2017-03-22 | 展讯通信(上海)有限公司 | 移动终端 |
TWI553478B (zh) * | 2015-09-23 | 2016-10-11 | 瑞昱半導體股份有限公司 | 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置 |
US10108549B2 (en) | 2015-09-23 | 2018-10-23 | Intel Corporation | Method and apparatus for pre-fetching data in a system having a multi-level system memory |
US10185501B2 (en) | 2015-09-25 | 2019-01-22 | Intel Corporation | Method and apparatus for pinning memory pages in a multi-level system memory |
US10261901B2 (en) | 2015-09-25 | 2019-04-16 | Intel Corporation | Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory |
US10678719B2 (en) | 2015-10-01 | 2020-06-09 | Rambus Inc. | Memory system with cached memory module operations |
US20170109067A1 (en) * | 2015-10-16 | 2017-04-20 | SK Hynix Inc. | Memory system |
US20170109066A1 (en) * | 2015-10-16 | 2017-04-20 | SK Hynix Inc. | Memory system |
US20170109068A1 (en) * | 2015-10-16 | 2017-04-20 | SK Hynix Inc. | Memory system |
US9792224B2 (en) | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
CN105404673B (zh) * | 2015-11-19 | 2018-11-09 | 清华大学 | 基于nvram的高效文件系统构建方法 |
KR102406267B1 (ko) | 2015-11-19 | 2022-06-08 | 삼성전자주식회사 | 불휘발성 메모리 모듈 및 이를 포함하는 전자 장치 |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
US10303372B2 (en) | 2015-12-01 | 2019-05-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and operation method thereof |
US20170177482A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Computing system having multi-level system memory capable of operating in a single level system memory mode |
US20170185292A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Memory Management of High-Performance Memory |
US10437731B2 (en) | 2015-12-24 | 2019-10-08 | Intel Corporation | Multi-level non-volatile cache with selective store |
KR102407437B1 (ko) | 2015-12-30 | 2022-06-10 | 삼성전자주식회사 | 불휘발성 메모리 모듈을 포함하는 메모리 시스템 및 전자 장치 |
US10310547B2 (en) * | 2016-03-05 | 2019-06-04 | Intel Corporation | Techniques to mirror a command/address or interpret command/address logic at a memory device |
TWI647565B (zh) * | 2016-03-31 | 2019-01-11 | 物聯智慧科技(深圳)有限公司 | 計算堆疊大小之計算系統及方法 |
US20170288705A1 (en) * | 2016-04-05 | 2017-10-05 | Alibaba Group Holding Limited | Shared memory with enhanced error correction |
US10157134B2 (en) * | 2016-04-11 | 2018-12-18 | International Business Machines Corporation | Decreasing the data handoff interval for a reserved cache line based on an early indication of a systemwide coherence response |
US20170329711A1 (en) * | 2016-05-13 | 2017-11-16 | Intel Corporation | Interleaved cache controllers with shared metadata and related devices and systems |
CN113515471A (zh) * | 2016-06-14 | 2021-10-19 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和装置 |
US10120806B2 (en) | 2016-06-27 | 2018-11-06 | Intel Corporation | Multi-level system memory with near memory scrubbing based on predicted far memory idle time |
US20180004660A1 (en) * | 2016-06-30 | 2018-01-04 | Microsoft Technology Licensing, Llc | Direct store to coherence point |
WO2018001528A1 (en) * | 2016-07-01 | 2018-01-04 | Intel Corporation | Apparatus and methods to manage memory side cache eviction |
US20190042423A1 (en) * | 2018-04-19 | 2019-02-07 | Intel Corporation | Data center environment with customizable software caching levels |
US10402110B2 (en) | 2016-08-04 | 2019-09-03 | Rambus Inc. | Adjustable access energy and access latency memory system and devices |
US9971691B2 (en) * | 2016-09-12 | 2018-05-15 | Intel Corporation | Selevtive application of interleave based on type of data to be stored in memory |
JP2018049385A (ja) * | 2016-09-20 | 2018-03-29 | 東芝メモリ株式会社 | メモリシステムおよびプロセッサシステム |
CN109416656B (zh) | 2016-10-31 | 2023-08-11 | 拉姆伯斯公司 | 混合存储器模块 |
US10915453B2 (en) | 2016-12-29 | 2021-02-09 | Intel Corporation | Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures |
US10445261B2 (en) | 2016-12-30 | 2019-10-15 | Intel Corporation | System memory having point-to-point link that transports compressed traffic |
US10114795B2 (en) * | 2016-12-30 | 2018-10-30 | Western Digital Technologies, Inc. | Processor in non-volatile storage memory |
KR20180107351A (ko) * | 2017-03-16 | 2018-10-02 | 에스케이하이닉스 주식회사 | 상변화메모리의 전력소모량 연산장치 및 이를 포함하는 상변화메모리 시스템과, 상변화메모리의 전력소모량 연산방법 |
JP2018156573A (ja) * | 2017-03-21 | 2018-10-04 | 東芝メモリ株式会社 | メモリ装置および情報処理システム |
US11175853B2 (en) | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
US10304814B2 (en) | 2017-06-30 | 2019-05-28 | Intel Corporation | I/O layout footprint for multiple 1LM/2LM configurations |
US10783252B2 (en) * | 2017-08-23 | 2020-09-22 | Qualcomm Incorporated | System and method for booting within a heterogeneous memory environment |
US11188467B2 (en) | 2017-09-28 | 2021-11-30 | Intel Corporation | Multi-level system memory with near memory capable of storing compressed cache lines |
CN111433749B (zh) | 2017-10-12 | 2023-12-08 | 拉姆伯斯公司 | 具有dram高速缓存的非易失性物理存储器 |
US10860474B2 (en) * | 2017-12-14 | 2020-12-08 | Micron Technology, Inc. | Multilevel addressing |
US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
US10891228B2 (en) | 2018-02-12 | 2021-01-12 | International Business Machines Corporation | Cache line states identifying memory cache |
US20190042451A1 (en) * | 2018-02-20 | 2019-02-07 | Intel Corporation | Efficient usage of bandwidth of devices in cache applications |
US11099995B2 (en) | 2018-03-28 | 2021-08-24 | Intel Corporation | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory |
US10929033B2 (en) * | 2018-04-25 | 2021-02-23 | Micron Technology, Inc. | Allocating variable media types of memory devices in a memory system |
US11355176B2 (en) * | 2018-05-02 | 2022-06-07 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
KR102631380B1 (ko) | 2018-05-17 | 2024-02-01 | 에스케이하이닉스 주식회사 | 데이터 연산을 수행할 수 있는 다양한 메모리 장치를 포함하는 반도체 시스템 |
US11968843B2 (en) * | 2018-06-28 | 2024-04-23 | Taiwan Semiconductor Manufacturing Co., Ltd. | Processing core and MRAM memory unit integrated on a single chip |
CN109117088B (zh) * | 2018-07-24 | 2021-02-19 | 联想(北京)有限公司 | 一种数据处理方法及系统 |
WO2020024733A1 (en) * | 2018-08-01 | 2020-02-06 | Huawei Technologies Co., Ltd. | Multi-instance 2lm architecture for scm applications |
KR20200044312A (ko) * | 2018-10-19 | 2020-04-29 | 삼성전자주식회사 | 반도체 장치 |
US11249918B2 (en) | 2018-10-30 | 2022-02-15 | Hewlett Packard Enterprise Development Lp | Mapping entry invalidation |
US10847198B2 (en) * | 2018-11-01 | 2020-11-24 | Spin Memory, Inc. | Memory system utilizing heterogeneous magnetic tunnel junction types in a single chip |
US10971681B2 (en) | 2018-12-05 | 2021-04-06 | Spin Memory, Inc. | Method for manufacturing a data recording system utilizing heterogeneous magnetic tunnel junction types in a single chip |
US10831658B2 (en) | 2019-01-03 | 2020-11-10 | Intel Corporation | Read-with-invalidate modified data in a cache line in a cache memory |
US11055228B2 (en) | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
US11043246B2 (en) * | 2019-04-18 | 2021-06-22 | Samsung Electronics Co, Ltd. | Memory modules including a mirroring circuit and methods of operating the same |
US11163490B2 (en) | 2019-09-17 | 2021-11-02 | Micron Technology, Inc. | Programmable engine for data movement |
US11416422B2 (en) | 2019-09-17 | 2022-08-16 | Micron Technology, Inc. | Memory chip having an integrated data mover |
US20210081318A1 (en) * | 2019-09-17 | 2021-03-18 | Micron Technology, Inc. | Flexible provisioning of multi-tier memory |
US11397694B2 (en) | 2019-09-17 | 2022-07-26 | Micron Technology, Inc. | Memory chip connecting a system on a chip and an accelerator chip |
JP2021047736A (ja) * | 2019-09-19 | 2021-03-25 | キオクシア株式会社 | 学習装置及び学習方法 |
US11036412B2 (en) | 2019-09-27 | 2021-06-15 | Intel Corporation | Dynamically changing between latency-focused read operation and bandwidth-focused read operation |
CN111079882B (zh) * | 2019-12-09 | 2022-07-15 | 国网福建省电力有限公司厦门供电公司 | 一种基于WiFi信号检测的安全USB闪存驱动器 |
US11474941B2 (en) | 2020-03-09 | 2022-10-18 | International Business Machines Corporation | Using multi-tiered cache to satisfy input/output requests |
US11163700B1 (en) | 2020-04-30 | 2021-11-02 | International Business Machines Corporation | Initiating interconnect operation without waiting on lower level cache directory lookup |
US11687468B2 (en) | 2020-07-02 | 2023-06-27 | International Business Machines Corporation | Method and apparatus for securing memory modules |
CN112380147B (zh) * | 2020-11-12 | 2022-06-10 | 上海壁仞智能科技有限公司 | 计算装置以及用于加载或更新数据的方法 |
US11841796B2 (en) * | 2021-01-21 | 2023-12-12 | Micron Technology, Inc. | Scratchpad memory in a cache |
CN112885867B (zh) * | 2021-01-29 | 2021-11-09 | 长江先进存储产业创新中心有限责任公司 | 中央处理器的制造方法、中央处理器及其控制方法 |
JP2022147909A (ja) * | 2021-03-24 | 2022-10-06 | キオクシア株式会社 | メモリシステム |
US11467988B1 (en) * | 2021-04-14 | 2022-10-11 | Apple Inc. | Memory fetch granule |
US11914527B2 (en) | 2021-10-26 | 2024-02-27 | International Business Machines Corporation | Providing a dynamic random-access memory cache as second type memory per application process |
Family Cites Families (154)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713755A (en) | 1985-06-28 | 1987-12-15 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
EP0332117B1 (en) | 1988-03-09 | 1994-05-11 | Kabushiki Kaisha Toshiba | Portable electronic apparatus |
US5068823A (en) | 1988-07-11 | 1991-11-26 | Star Semiconductor Corporation | Programmable integrated circuit using topological and parametric data to selectively connect and configure different high level functional blocks thereof |
US5230052A (en) | 1990-10-01 | 1993-07-20 | International Business Machines Corp. | Apparatus and method for loading bios into a computer system from a remote storage location |
US5519843A (en) | 1993-03-15 | 1996-05-21 | M-Systems | Flash memory system providing both BIOS and user storage capability |
US5511202A (en) | 1993-07-26 | 1996-04-23 | International Business Machines Corporation | Desktop computer system having zero-volt system suspend and control unit for ascertaining interrupt controller base address |
US6161208A (en) | 1994-05-06 | 2000-12-12 | International Business Machines Corporation | Storage subsystem including an error correcting cache and means for performing memory to memory transfers |
JPH08137634A (ja) | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
US5822581A (en) | 1995-09-29 | 1998-10-13 | Intel Corporation | Method for CMOS configuration information storage and retrieval in flash |
US6018806A (en) | 1995-10-16 | 2000-01-25 | Packard Bell Nec | Method and system for rebooting a computer having corrupted memory using an external jumper |
US6470405B2 (en) | 1995-10-19 | 2002-10-22 | Rambus Inc. | Protocol for communication with dynamic memory |
US5974576A (en) | 1996-05-10 | 1999-10-26 | Sun Microsystems, Inc. | On-line memory monitoring system and methods |
JP3210590B2 (ja) | 1996-11-29 | 2001-09-17 | 株式会社日立製作所 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
US6035432A (en) | 1997-07-31 | 2000-03-07 | Micron Electronics, Inc. | System for remapping defective memory bit sets |
US5822251A (en) | 1997-08-25 | 1998-10-13 | Bit Microsystems, Inc. | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers |
US6202129B1 (en) | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
US6038166A (en) | 1998-04-01 | 2000-03-14 | Invox Technology | High resolution multi-bit-per-cell memory |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US6483736B2 (en) | 1998-11-16 | 2002-11-19 | Matrix Semiconductor, Inc. | Vertically stacked field programmable nonvolatile memory and method of fabrication |
US6326973B1 (en) | 1998-12-07 | 2001-12-04 | Compaq Computer Corporation | Method and system for allocating AGP/GART memory from the local AGP memory controller in a highly parallel system architecture (HPSA) |
US6345349B1 (en) | 1998-12-30 | 2002-02-05 | Intel Corporation | Combined memory and mass storage device |
US7889544B2 (en) | 2004-04-05 | 2011-02-15 | Super Talent Electronics, Inc. | High-speed controller for phase-change memory peripheral device |
US6868472B1 (en) * | 1999-10-01 | 2005-03-15 | Fujitsu Limited | Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
US8341332B2 (en) | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
US6567897B2 (en) | 2001-03-01 | 2003-05-20 | International Business Machines Corporation | Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls |
US7058779B1 (en) | 2001-03-05 | 2006-06-06 | Advanced Micro Devices, Inc. | Computer system initialization via boot code stored in a non-volatile memory having an interface compatible with synchronous dynamic random access memory |
US6704840B2 (en) | 2001-06-19 | 2004-03-09 | Intel Corporation | Computer system and method of computer initialization with caching of option BIOS |
US6804799B2 (en) | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
US7752423B2 (en) | 2001-06-28 | 2010-07-06 | Intel Corporation | Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor |
US7107386B1 (en) | 2001-08-08 | 2006-09-12 | Pasternak Solutions, Llc | Memory bus arbitration using memory bank readiness |
US6990577B2 (en) | 2001-08-10 | 2006-01-24 | Intel Corporation | Updating a BIOS image by replacing a portion of the BIOS image with a portion of another BIOS image |
EP1387274A3 (en) | 2002-07-31 | 2004-08-11 | Texas Instruments Incorporated | Memory management for local variables |
FI20021620A (fi) | 2002-09-10 | 2004-03-11 | Nokia Corp | Muistirakenne, järjestelmä ja elektroniikkalaite sekä menetelmä muistipiirin yhteydessä |
DE60306488D1 (de) * | 2003-02-27 | 2006-08-10 | St Microelectronics Srl | Eingebautes Testverfahren in einem Flash Speicher |
US20050010811A1 (en) | 2003-06-16 | 2005-01-13 | Zimmer Vincent J. | Method and system to support network port authentication from out-of-band firmware |
US7836248B2 (en) | 2003-07-29 | 2010-11-16 | International Business Machines Corporation | Methods and systems for managing persistent storage of small data objects |
US7165170B2 (en) | 2003-09-12 | 2007-01-16 | Intel Corporation | System and method for firmware to export pre-boot data into the operating system runtime environment |
US20050120265A1 (en) | 2003-12-02 | 2005-06-02 | Pline Steven L. | Data storage system with error correction code and replaceable defective memory |
US20050251617A1 (en) | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US7475174B2 (en) | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US20050223157A1 (en) | 2004-04-02 | 2005-10-06 | Matti Floman | Fast non-volatile random access memory in electronic devices |
EP1870814B1 (en) | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US7269708B2 (en) | 2004-04-20 | 2007-09-11 | Rambus Inc. | Memory controller for non-homogenous memory system |
US20050273584A1 (en) | 2004-06-07 | 2005-12-08 | Wisecup George D | Locating environment variables in non-volatile memory |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US7475190B2 (en) * | 2004-10-08 | 2009-01-06 | International Business Machines Corporation | Direct access of cache lock set data without backing memory |
US20060184719A1 (en) | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7457928B2 (en) | 2005-10-28 | 2008-11-25 | International Business Machines Corporation | Mirroring system memory in non-volatile random access memory (NVRAM) for fast power on/off cycling |
US8637342B2 (en) | 2005-11-10 | 2014-01-28 | Ovonyx, Inc. | Phase change memory with threshold switch select device |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
CN101512661B (zh) | 2006-05-12 | 2013-04-24 | 苹果公司 | 用于存储设备的失真估计与纠错编码的组合 |
JP4700562B2 (ja) | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
US7930468B2 (en) | 2006-05-23 | 2011-04-19 | Dataram, Inc. | System for reading and writing on flash memory device having plural microprocessors |
US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
US7478197B2 (en) | 2006-07-18 | 2009-01-13 | International Business Machines Corporation | Adaptive mechanisms for supplying volatile data copies in multiprocessor systems |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US7587559B2 (en) | 2006-08-10 | 2009-09-08 | International Business Machines Corporation | Systems and methods for memory module power management |
US8051253B2 (en) | 2006-09-28 | 2011-11-01 | Virident Systems, Inc. | Systems and apparatus with programmable memory control for heterogeneous main memory |
US7555605B2 (en) | 2006-09-28 | 2009-06-30 | Freescale Semiconductor, Inc. | Data processing system having cache memory debugging support and method therefor |
US7636832B2 (en) | 2006-10-26 | 2009-12-22 | Intel Corporation | I/O translation lookaside buffer performance |
US8683139B2 (en) * | 2006-10-31 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Cache and method for cache bypass functionality |
WO2008055271A2 (en) | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Seamless application access to hybrid main memory |
WO2008070814A2 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for a scalable, composite, reconfigurable backplane |
US7554855B2 (en) | 2006-12-20 | 2009-06-30 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
US7617340B2 (en) | 2007-01-09 | 2009-11-10 | International Business Machines Corporation | I/O adapter LPAR isolation with assigned memory space |
TW200845014A (en) | 2007-02-28 | 2008-11-16 | Aplus Flash Technology Inc | A bit line structure for a multilevel, dual-sided nonvolatile memory cell array |
US7725645B2 (en) | 2007-03-16 | 2010-05-25 | Intel Corporation | Dual use for data valid signal in non-volatile memory |
KR100949877B1 (ko) | 2007-04-10 | 2010-03-25 | 주식회사 하이닉스반도체 | 반도체 패키지 |
US8427891B2 (en) | 2007-04-17 | 2013-04-23 | Rambus Inc. | Hybrid volatile and non-volatile memory device with a shared interface circuit |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
WO2008150927A2 (en) | 2007-05-30 | 2008-12-11 | Schooner Information Technology | System including a fine-grained memory and a less-fine-grained memory |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8296534B1 (en) | 2007-06-29 | 2012-10-23 | Emc Corporation | Techniques for using flash-based memory in recovery processing |
TWI327319B (en) | 2007-07-03 | 2010-07-11 | Macronix Int Co Ltd | Double programming methods of a multi-level-cell nonvolatile memory |
KR101498673B1 (ko) | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
US8145893B2 (en) | 2007-10-26 | 2012-03-27 | Intel Corporation | Hot-plugging a memory device |
US8239665B2 (en) | 2007-10-31 | 2012-08-07 | Dell Products L.P. | Methods, systems and media for configuring boot options |
US8108609B2 (en) | 2007-12-04 | 2012-01-31 | International Business Machines Corporation | Structure for implementing dynamic refresh protocols for DRAM based cache |
KR101472967B1 (ko) * | 2007-12-14 | 2014-12-16 | 삼성전자주식회사 | 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템 |
US8185685B2 (en) * | 2007-12-14 | 2012-05-22 | Hitachi Global Storage Technologies Netherlands B.V. | NAND flash module replacement for DRAM module |
EP2077559B1 (en) | 2007-12-27 | 2012-11-07 | Hagiwara Solutions Co., Ltd. | Refresh method of a flash memory |
US7882341B2 (en) | 2007-12-31 | 2011-02-01 | Intel Corporation | System and method to enable parallelization of early platform initialization |
US8825965B2 (en) | 2008-01-08 | 2014-09-02 | Cisco Technology, Inc. | System and methods for memory expansion |
US8275945B2 (en) * | 2008-02-05 | 2012-09-25 | Spansion Llc | Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer |
TWI373768B (en) | 2008-02-05 | 2012-10-01 | Phison Electronics Corp | System, controller and method for data storage |
JP5163220B2 (ja) * | 2008-03-26 | 2013-03-13 | 富士通株式会社 | キャッシュ制御装置、情報処理装置 |
US7663957B2 (en) | 2008-05-27 | 2010-02-16 | Via Technologies, Inc. | Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US20090327837A1 (en) | 2008-06-30 | 2009-12-31 | Robert Royer | NAND error management |
US8166229B2 (en) | 2008-06-30 | 2012-04-24 | Intel Corporation | Apparatus and method for multi-level cache utilization |
US9575889B2 (en) | 2008-07-03 | 2017-02-21 | Hewlett Packard Enterprise Development Lp | Memory server |
US8176233B1 (en) | 2008-07-17 | 2012-05-08 | Virident Systems Inc. | Using non-volatile memory resources to enable a virtual buffer pool for a database application |
JP5581577B2 (ja) | 2008-08-29 | 2014-09-03 | 富士通株式会社 | データ処理装置 |
WO2010041852A2 (ko) | 2008-10-06 | 2010-04-15 | Noh Sam Hyuk | 비휘발성 램을 이용한 영속적 컴퓨팅 방법 및 시스템 |
US9152569B2 (en) | 2008-11-04 | 2015-10-06 | International Business Machines Corporation | Non-uniform cache architecture (NUCA) |
KR101001147B1 (ko) | 2008-12-12 | 2010-12-17 | 주식회사 하이닉스반도체 | 상변화 메모리 장치 |
KR101573047B1 (ko) | 2009-01-23 | 2015-12-02 | 삼성전자주식회사 | 복합 메모리 장치 및 이를 이용한 i/o 처리 방법 |
KR20100091544A (ko) | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | 메모리 시스템 및 그 마모도 관리 방법 |
US8375241B2 (en) | 2009-04-02 | 2013-02-12 | Intel Corporation | Method and system to improve the operations of a registered memory module |
US8103822B2 (en) * | 2009-04-26 | 2012-01-24 | Sandisk Il Ltd. | Method and apparatus for implementing a caching policy for non-volatile memory |
US8331857B2 (en) | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8180981B2 (en) | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US20100306453A1 (en) | 2009-06-02 | 2010-12-02 | Edward Doller | Method for operating a portion of an executable program in an executable non-volatile memory |
US8159881B2 (en) | 2009-06-03 | 2012-04-17 | Marvell World Trade Ltd. | Reference voltage optimization for flash memory |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
US7898859B2 (en) | 2009-06-15 | 2011-03-01 | Micron Technology, Inc. | Use of emerging non-volatile memory elements with flash memory |
US9208084B2 (en) | 2009-06-29 | 2015-12-08 | Oracle America, Inc. | Extended main memory hierarchy having flash memory for page fault handling |
JP2011022657A (ja) | 2009-07-13 | 2011-02-03 | Fujitsu Ltd | メモリシステムおよび情報処理装置 |
US8626997B2 (en) * | 2009-07-16 | 2014-01-07 | Micron Technology, Inc. | Phase change memory in a dual inline memory module |
CN102473140B (zh) | 2009-07-17 | 2015-05-13 | 株式会社东芝 | 存储器管理装置 |
US8341387B2 (en) | 2009-08-18 | 2012-12-25 | Dell Products, Lp | System and method to manipulate a system setting when booting an information handling system |
US8249099B2 (en) | 2009-08-27 | 2012-08-21 | Texas Instruments Incorporated | External memory data management with data regrouping and channel look ahead |
US20110060869A1 (en) | 2009-09-08 | 2011-03-10 | Ocz Technology Group, Inc. | Large capacity solid-state storage devices and methods therefor |
KR20110029402A (ko) | 2009-09-15 | 2011-03-23 | 삼성전자주식회사 | 비휘발성 메모리 장치, 및 그것을 포함한 메모리 시스템, 그것의 쓰기 전류 제어 방법 |
WO2011042939A1 (en) | 2009-10-09 | 2011-04-14 | Hitachi, Ltd. | Storage control device building a logical unit based on storage devices coupled with different switches |
CN101694640B (zh) * | 2009-10-22 | 2011-04-27 | 浙江大学 | 多核架构下共享二级Cache的替换策略的实现方法 |
US8832415B2 (en) | 2010-01-08 | 2014-09-09 | International Business Machines Corporation | Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests |
JP2011108306A (ja) | 2009-11-16 | 2011-06-02 | Sony Corp | 不揮発性メモリおよびメモリシステム |
US8230172B2 (en) * | 2009-12-03 | 2012-07-24 | Intel Corporation | Gather and scatter operations in multi-level memory hierarchy |
US8489803B2 (en) | 2009-12-14 | 2013-07-16 | Smsc Holdings S.A.R.L. | Efficient use of flash memory in flash drives |
WO2011075167A1 (en) * | 2009-12-15 | 2011-06-23 | Memoir Systems,Inc. | System and method for reduced latency caching |
US8806231B2 (en) | 2009-12-22 | 2014-08-12 | Intel Corporation | Operating system independent network event handling |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US20110197031A1 (en) | 2010-02-05 | 2011-08-11 | Nokia Corporation | Update Handler For Multi-Channel Cache |
US20110208900A1 (en) * | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
KR101678911B1 (ko) * | 2010-03-12 | 2016-11-23 | 삼성전자주식회사 | 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템 |
JP2011198091A (ja) | 2010-03-19 | 2011-10-06 | Toshiba Corp | 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
GB201011146D0 (en) | 2010-07-02 | 2010-08-18 | Vodafone Ip Licensing Ltd | Mobile computing device |
US8838935B2 (en) | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US20120221785A1 (en) * | 2011-02-28 | 2012-08-30 | Jaewoong Chung | Polymorphic Stacked DRAM Memory Architecture |
US8462577B2 (en) | 2011-03-18 | 2013-06-11 | Intel Corporation | Single transistor driver for address lines in a phase change memory and switch (PCMS) array |
US8462537B2 (en) | 2011-03-21 | 2013-06-11 | Intel Corporation | Method and apparatus to reset a phase change memory and switch (PCMS) memory cell |
US8935484B2 (en) | 2011-03-31 | 2015-01-13 | Hewlett-Packard Development Company, L.P. | Write-absorbing buffer for non-volatile memory |
KR20120119092A (ko) | 2011-04-20 | 2012-10-30 | 삼성전자주식회사 | 반도체 메모리 시스템 및 이의 구동 방법 |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US20120311262A1 (en) | 2011-06-01 | 2012-12-06 | International Business Machines Corporation | Memory cell presetting for improved memory performance |
CN102209262B (zh) | 2011-06-03 | 2017-03-22 | 中兴通讯股份有限公司 | 一种内容调度的方法、装置和系统 |
US20120324195A1 (en) | 2011-06-14 | 2012-12-20 | Alexander Rabinovitch | Allocation of preset cache lines |
US20120324156A1 (en) | 2011-06-17 | 2012-12-20 | Naveen Muralimanohar | Method and system of organizing a heterogeneous memory architecture |
US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
US8767482B2 (en) | 2011-08-18 | 2014-07-01 | Micron Technology, Inc. | Apparatuses, devices and methods for sensing a snapback event in a circuit |
US8639918B2 (en) * | 2011-08-31 | 2014-01-28 | Dell Products L.P. | Memory compatibility system and method |
CN103946819B (zh) | 2011-09-30 | 2017-05-17 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
US20150089102A1 (en) | 2013-09-23 | 2015-03-26 | Lsi Corporation | Solid state drives that cache boot data |
US9690491B2 (en) | 2014-12-17 | 2017-06-27 | Sandisk Technologies Llc | System and method for managing data in a memory device |
-
2011
- 2011-09-30 WO PCT/US2011/054444 patent/WO2013048503A1/en active Application Filing
- 2011-09-30 US US13/994,731 patent/US9378142B2/en active Active
- 2011-09-30 EP EP11873012.6A patent/EP2761464B1/en active Active
- 2011-09-30 EP EP18201341.7A patent/EP3451176B1/en active Active
- 2011-09-30 CN CN201710753816.5A patent/CN107608910B/zh active Active
- 2011-09-30 CN CN201180075096.2A patent/CN103946811B/zh active Active
-
2012
- 2012-09-03 TW TW101132014A patent/TWI454915B/zh active
-
2016
- 2016-06-24 US US15/192,871 patent/US10102126B2/en active Active
-
2018
- 2018-08-01 US US16/052,581 patent/US11132298B2/en active Active
Non-Patent Citations (2)
Title |
---|
Operating System Implications of Fast, Cheap, Non-Volatile Memory;Katelin Bailey 等;《HotOS"13 Proceedings of the 13th USENIX conference on Hot topics in operating systems》;20110509;正文第2页左栏第4段,图1(C) * |
Scalable High Performance Main Memory System Using Phase-Change Memory Technology;Moinuddin K. Qureshi 等;《ISCA》;20090624;正文第1部分第1-2段,第3部分第1段,第3.1部分,图1和图5 * |
Also Published As
Publication number | Publication date |
---|---|
EP2761464A1 (en) | 2014-08-06 |
TW201324148A (zh) | 2013-06-16 |
US20170031821A1 (en) | 2017-02-02 |
US20130268728A1 (en) | 2013-10-10 |
CN107608910A (zh) | 2018-01-19 |
CN107608910B (zh) | 2021-07-02 |
US10102126B2 (en) | 2018-10-16 |
TWI454915B (zh) | 2014-10-01 |
CN103946811A (zh) | 2014-07-23 |
EP2761464A4 (en) | 2015-06-17 |
US9378142B2 (en) | 2016-06-28 |
EP2761464B1 (en) | 2018-10-24 |
WO2013048503A1 (en) | 2013-04-04 |
US11132298B2 (en) | 2021-09-28 |
EP3451176A1 (en) | 2019-03-06 |
EP3451176B1 (en) | 2023-05-24 |
US20180341588A1 (en) | 2018-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN103988183B (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
CN103946812B (zh) | 用于实现多级别存储器分级体系的设备和方法 | |
CN103946826B (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
CN103946813B (zh) | 基于使用统计量追踪的远存储器访问信号的生成 | |
CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
CN104050112B (zh) | 用于标记需要写回持久存储的非事务代码区的开头和结束的指令 | |
CN104025060B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
CN103999161B (zh) | 用于相变存储器漂移管理的设备和方法 | |
CN103946816B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
CN103946814B (zh) | 计算机系统中的非易失性随机存取存储器的自主初始化 | |
CN106257400B (zh) | 处理设备、计算系统及处理设备访问主存储器的方法 | |
CN104115132B (zh) | 借助于存储器通道关闭的功率节约 | |
CN103975287B (zh) | 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持 | |
CN104115230B (zh) | 基于高效pcms刷新机制的计算装置、方法和系统 | |
CN103635968B (zh) | 包含存储器系统控制器的设备和相关方法 | |
CN104106057B (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 | |
TWI596474B (zh) | 用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片 | |
CN105493052A (zh) | 用于存储器管理的高速缓存操作 |
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 |