CN102279817A - 用于持久存储器的高速缓冲存储器相干性协议 - Google Patents
用于持久存储器的高速缓冲存储器相干性协议 Download PDFInfo
- Publication number
- CN102279817A CN102279817A CN2011101597919A CN201110159791A CN102279817A CN 102279817 A CN102279817 A CN 102279817A CN 2011101597919 A CN2011101597919 A CN 2011101597919A CN 201110159791 A CN201110159791 A CN 201110159791A CN 102279817 A CN102279817 A CN 102279817A
- Authority
- CN
- China
- Prior art keywords
- memory
- long
- processing entities
- primary memory
- cache
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本文涉及包含持久存储器的处理器***的高速缓冲存储器相干性。
Description
技术领域
本文中所揭示的标的物涉及包含持久存储器的处理器***的高速缓冲存储器相干性。
背景技术
计算机***可利用共享的存储器多处理器(SMP)配置。增加共享同一主存储器的此计算机***中的处理器的数目可增强***的性能。计算机***可并入有相干性协议以保证从高速缓冲存储器读取的信息与从主存储器读取的信息之间的相干性。举例来说,如果一个处理器已更新存储于主存储器中的信息,那么所述信息的改变可反映在存储于其它处理器的存储器高速缓冲存储器中的副本中。
举例来说,计算机***可使用若干个相干性协议中的任一者(例如MESI协议)来执行相干性管理。所述MESI协议可通过以下方式来管理高速缓冲存储器中的高速缓冲存储器线:假定所述高速缓冲存储器线处于四个状态中的一者中,即“M”(修改)、“E”(互斥)、“S”(共享)及“I”(无效)状态。在使用MESI协议的计算机***中,个别处理器可至少部分地基于特定高速缓冲存储器线的MESI状态而确定是否发出对所述特定高速缓冲存储器线的高速缓冲存储器相干性管理请求。
发明内容
附图说明
将参考以下各图描述非限制性及非穷尽性实施例,其中除非另有说明,否则所有各图中相似参考编号指代相似部件。
图1是根据一实施例的处理***配置的示意性框图。
图2是根据一实施例的主存储器的示意图。
图3是根据一实施例的高速缓冲存储器相干性协议的时序图。
图4是根据一实施例的多处理器***配置的示意图。
图5是根据另一实施例的多处理器***配置的示意图。
图6是根据一实施例的计算***及存储器装置的示意图。
具体实施方式
本说明书通篇中所提及的“一个实施例”或“一实施例”意指结合所述实施例描述的特定特征、结构或特性包含在所主张标的物的至少一个实施例中。因此,在本说明书通篇中的各个地方出现的短语“在一个实施例中”或“一实施例”未必全部指代相同实施例。此外,可将特定特征、结构或特性组合在一个或一个以上实施例中。
在一实施例中,具有两个或两个以上处理实体(例如中央处理单元(CPU))的***可包含持久存储器。用于此***的高速缓冲存储器相干性协议可包含用以适应持久非易失性存储器的特定方面的一个或一个以上特征。如下文详细地描述,此些特征可包括指示更新持久存储器的过程是否在进行中及/或此过程是否完成的一个或一个以上高速缓冲存储器相干性协议状态。另一特征可包括用以指示包含持久存储器的存储器范围的持久存储器描述符。因此,具有两个或两个以上处理实体的此***还可包括用以提供高速缓冲存储器相干性协议的至少一部分的电路,如下文详细地描述。
举例来说,具有两个或两个以上处理实体的此***可包括用以在若干个环境中的任一者中执行应用程序的计算***,例如计算机、蜂窝电话、PDA、数据记录器及导航设备,此处仅举几个实例。特定来说,可由多个CPU同时执行多个应用程序。在一实施方案中,一个或一个以上此种CPU可个别地与主存储器及/或高速缓冲存储器(其中的任一者的至少一部分可包括持久存储器)相关联。举例来说,主存储器及/或高速缓冲存储器可包括持久存储器及各种随机存取存储器(RAM)中的任一者的一部分。在特定实例中,主存储器可包含相变存储器(PCM)及动态随机存取存储器(DRAM)的至少一部分。在另一特定实例中,高速缓冲存储器可包括PCM及/或DRAM。举例来说,此些存储器配置可提供例如非易失性、相对高的编程/读取速度等益处。当然,存储器的此些描述仅为实例且所主张的标的物在这方面不受限制。
本文中,持久存储器是指非易失性存储器,例如可具有位可更改能力的PCM。持久存储器的另一特征包含不对称读取/写入速度,其中对于给定存储器单元编程速度可比读取速度慢。举例来说,在多处理器***中存在具有此些特征的持久存储器可利用特定高速缓冲存储器相干性协议以允许一个或一个以上处理实体共享主存储器。本文中,主存储器是指由处理实体用来维持可由所述处理实体执行的一个或一个以上应用程序的存储器。此外,可使用存取主存储器的存储器指令将所述主存储器直接或间接链接到处理实体。举例来说,主存储器不同于可经由I/O接口存取的存储器,所述I/O接口使用I/O操作来存取此存储器。在主存储器的另一实例中,CPU可限制于操纵(例如,擦除、写入)驻存在主存储器中的数据的能力。此处,举例来说,词语“主”可用来与例如磁盘驱动器等外部大容量存储装置区分开。当然,主存储器的此些描述仅为实例,且所主张的标的物并不受如此限制。
举例来说,本文中所描述的实施例包含若干个已知的多处理器高速缓冲存储器相干性协议(例如MESI、MOSI及MOESI协议)中的任一者的扩充。特定来说,此些实施例可包含上文所列出的协议的状态及下文详细描述的一个或一个以上额外状态。举例来说,此些实施例可将高速缓冲存储器相干性语义扩展为包含对持久存储器的支持。举例来说,高速缓冲存储器相干性协议可建立用于确保对统一存储器操作的多个处理器之间的高速缓冲存储器相干性的语义。高速缓冲存储器相干性语义可防止其中对同一存储器操作的两个或两个以上处理器可变得不同步的竟争条件。高速缓冲存储器相干性协议可向处理器提供使局部高速缓冲存储器与主存储器同步的指令。举例来说,高速缓冲存储器相干性协议可帮助确保处理器的高速缓冲存储器的内容跟上主存储器的内容。
在一实施例中,PCM可用作计算平台的主存储器。PCM包括具有类似于DRAM的位可更改性质的持久存储器,但DRAM为易失性的。如果PCM用作计算平台上的主存储器,那么PCM可包含适用于DRAM的相同高速缓冲存储器相干性问题中的至少一些问题。因此,如果在一应用中使用PCM来替换DRAM,那么MESI、MOSI及MOESI协议(此处仅举几个实例)可充分地涵盖PCM的高速缓冲存储器相干性。虽然PCM可在位可更改方式上类似于DRAM,但PCM可在PCM包括持久存储器的意义上不同于DRAM。DRAM可在移除电力的情况下丢失所存储的内容,而PCM甚至在移除电力的情况下仍可维持所存储的内容。因此,在一实施方案中,如果PCM构成主存储器的至少一部分,那么可添加高速缓冲存储器相干性语义以支持PCM的此非易失性特性。当然,包含PCM作为主存储器的实施例的此些特征及细节仅为实例,且所主张的标的物并不受如此限制。
在一实施例中,举例来说,扩充高速缓冲存储器相干性语义的额外状态可在存储器分级内的相对高的层级处(例如在存储器数据库中)提供对存储器相干性的支持。在主存储器包括相对快但为易失性的存储器(例如DRAM)的情况下,最终可将所存储的信息复制到相对慢的磁盘、磁带或其它慢的持久存储器。然而,如果由于PCM的持久能力而使用PCM作为主存储器,那么应用程序不需要将所存储的信息冲洗或检验指示到另一存储媒体。然而,可存在用以向各种应用程序过程传递PCM的内容是否处于正被更新过程中及此更新是否已完成的过程。因此,扩充高速缓冲存储器相干性语义的额外状态可在应用程序层级处支持较高层级相干性语义。在特定实施方案中,可使用所谓的持久存储器描述符来指示支持持久性的主存储器范围,如下文详细地解释。
图1是根据一实施例的处理***100的示意性框图。处理***100可包括处理实体110、主存储器120及/或高速缓冲存储器130。特定来说,处理实体110可包括托管维持于主存储器120中的一个或一个以上应用程序的CPU。虽然图1中未展示,但处理***100可包括额外处理实体、额外主存储器及/或额外高速缓冲存储器。举例来说,处理实体110、主存储器120及/或高速缓冲存储器130可共同地构成用于较大多处理器***的构建块。在一个实施方案中,处理***100可使用包含在所述一个或一个以上处理实体当中共享的一个或一个以上高速缓冲存储器层级的存储器分级操作。举例来说,高速缓冲存储器可包括第一层级高速缓冲存储器及第二层级高速缓冲存储器,其中的任一者的至少一部分可包括持久存储器。可对处理***100应用高速缓冲存储器相干性协议以进行相干性管理。举例来说,此协议可导致避免两个或两个以上主存储器120及/或一个或一个以上高速缓冲存储器130当中的读取/写入过程冲突。硬件块150及/或代码块160可共同地或单独地提供高速缓冲存储器相干性协议。在特定实施方案中,此高速缓冲存储器相干性协议可包括协议140,协议140可包含若干个状态,例如修改、互斥、共享及无效状态(例如,MESI),此处仅举几个实例。协议140中可包含过程中状态142以适应处理***100中的持久存储器,如下文详细地解释。协议140中所包含的另一状态可包括下文还详细描述的确认状态144。此些状态可由可选择旗标反映,例如设定或复位位、存储特定状态信息的一个或一个以上存储器单元、在电线上传输的一个或一个以上信号及/或用以传达特定状态的其它类型的信息。当然,协议140中可包含任何数目的状态,且所主张的标的物并不限于本文中所描述的那些状态。在一实施方案中,硬件块150可包括用以提供高速缓冲存储器相干性协议140的至少一部分的电子电路。此电子电路可包括(举例来说)逻辑门的各种配置。代码块160可包括用以提供高速缓冲存储器相干性协议140的至少一部分的一个或一个以上应用程序。代码块160的若干部分可由处理实体110实施。
在一实施例中,过程中状态142可用于向处理***100中的一个或一个以上存储器控制器115指示主存储器120中的存储器位置处于正被更新过程中。因此,具有映射到高速缓冲存储器130中的此特定存储器位置的应用程序可选择等待此更新操作完成。或者,所述应用程序可忽略所述更新并使用当前可用的过时高速缓冲存储器内容(例如,在完成更新内容之前)。在特定实施方案中,确认状态144可用于向处理***100中的存储器控制器115指示存储器更新完成且高速缓冲存储器130可重新加载信息。可选择忽略过程中状态的应用程序的实例为搜索引擎,因为稍旧的信息未必不利地影响搜索结果。相比之下,可不选择忽略过程中状态的应用程序的实例为库应用程序,其依赖于在完成更新过程之后即刻可用的最近信息。因此,此应用程序可等待任何更新操作的完成且可使相关联的高速缓冲存储器信息无效以确保所述应用程序继续具有最近的存储器值。当然,处理***及高速缓冲存储器相干性协议的此些细节仅为实例,且所主张的标的物并不受如此限制。
图2是根据一实施例的主存储器210的示意图。主存储器210的至少一部分可包括持久存储器220。在特定实施方案中,主存储器210的另一部分可包括各种类型的存储器,例如易失性DRAM。持久存储器220的各部分不需要相连地布置于(举例来说)可包括一个或一个以上裸片结构的主存储器210中。高速缓冲存储器相干性协议块255可包括硬件及/或所实施代码以为包含主存储器210的处理***(例如,图1中所示的***100)提供高速缓冲存储器相干性协议。在特定实施方案中,此高速缓冲存储器相干性协议可包括过程中状态142及/或确认状态144以适应持久存储器220,如上文所描述。举例来说,过程中状态142可适应与读取操作相比编程操作的增加的等待时间。因此,过程中状态142可向应用程序指示所述应用程序是否将等待相对长的高速缓冲存储器编程过程。在另一特定实施方案中,高速缓冲存储器相干性协议块255可提供持久存储器描述符以允许计算平台识别主存储器210的哪些部分包括持久存储器。举例来说,此识别可包含主存储器210中的存储器位置的一个或一个以上地址或地址范围。当然,所主张的标的物并不限于此些协议状态,且高速缓冲存储器相干性协议块255可向***提供任何数目的协议状态。
图3是根据一实施例的高速缓冲存储器相干性协议的时序图。在时间T1处,可转变过程中状态以向存储器控制器指示一个或一个以上主存储器中的至少一个存储器位置处于正被更新过程中。在时间跨度T2期间,与更新存储器位置相关联的一个或一个以上应用程序可选择等待此更新操作完成。在另一实施方案中,如上文所描述,应用程序可忽略此更新操作且仅使用当前可用的过时高速缓冲存储器内容。在时间T3处,可完成更新操作,其可(举例来说)由从一个状态转变为另一状态(例如从高到低或从低到高)的硬件信号指示。在完成的更新操作之后,在时间T4处,可转变确认状态以向存储器控制器指示存储器更新完成且高速缓冲存储器可用于重新加载信息。当然,高速缓冲存储器相干性协议的此些时序细节仅为实例,且所主张的标的物并不受如此限制。
图4是根据一实施例的多处理器***配置400的示意图。多处理器***可包含任何数目的处理实体,但图4中展示了两个此种实体。特定来说,此些处理实体可包括与高速缓冲存储器430相关联的CPU 410及与高速缓冲存储器435相关联的CPU 415。在一实例中,CPU 410可具有指向主存储器420中的位置的高速缓冲存储器线。CPU 415可具有指向主存储器420中的相同位置的高速缓冲存储器线。CPU 410及CPU 415两者可向/从所述主存储器位置写入或读取。如果CPU 415在CPU 410正向所述主存储器位置写入时尝试从高速缓冲存储器线读取,那么可发生冲突。在一个实施方案中,CPU 415可不在意此潜在冲突。在另一实施方案中,为了避免此冲突,CPU 415可监视过程中及/或确认状态以确保来自CPU 410的过程中写入已完成。在一实施方案中,过程中状态可对应于本文中称为I位的特定位、旗标或信号,且确认状态可对应于本文中称为C位的特定位、旗标或信号。此些位可在设定与复位状态当中转变以指示更新主存储器的过程的状态,如上文所描述。在特定实施方案中,如果C位及I位均未设定,那么CPU 415可从高速缓冲存储器线读取。举例来说,如果设定I位,那么CPU 410可正更新主存储器且CPU 415可等待更新完成。在完成CPU 410的更新之后,C位可即刻转变以指示此完成。因此,CPU 415可响应于CPU 410转变C位而重新加载高速缓冲存储器线。CPU415可接着含有所述存储器位置的最新的最近值。
在一实施例中,至少一部分包括持久存储器的主存储器的相干性可由操作***虚拟存储器及/或由默认页处置程序维持。此操作***可支持用以识别涉及相干性管理的批量写入操作的方法。举例来说,此批量写入操作可包括数据库写入操作。应用程序可在彼此当中协调使得可将批量写入操作管理为自动写入操作,其中跨越数据库的多个字段可在此更新过程可被视为完成之前更新。应用程序层级语义可以类似于个别高速缓冲存储器线的方式使一个或一个以上应用程序不使用无效数据,但批量操作涉及更大信息量。在一个实施方案中,传递批量写入操作的大小可包含持久直接存储器存取(DMA)命令。在另一实施方案中,传递批量写入操作的大小可包含用以传递存储器池的定义的机制。在又一实施方案中,传递批量写入操作的大小可包含在动态存储器分配的时间使用的旗标。在又一实施方案中,传递批量写入操作的大小可包含由所述应用程序发出信号。举例来说,对持久存储器的应用程序层级相干性管理可利用上文界定为用于建立应用程序层级存储器相干性的原始命令的过程中及/或确认状态。
图5是根据一实施例的多核***500的示意图。举例来说,此***可包括经由一个或一个以上总线彼此连接的处理器节点502、504、506及508。在一个实施方案中,多核***500可包括共享存储器多处理器。个别处理器节点502、504、506及508可分别包含处理器510、512、514及516、高速缓冲存储器530、532、534及536及/或局部存储器520、522、524及526。在特定处理器节点内,此些局部存储器可包括与所述特定处理器节点的处理器相关联的主存储器。举例来说,在处理器节点502中,局部存储器520可包括与处理器510相关联的主存储器。在一实施方案中,局部存储器可由其它处理器节点的处理器共享或存取。一个或一个以上局部存储器520、522、524及526可包括持久存储器的全部或至少一部分。在特定实施方案中,局部存储器的一部分可包括各种类型的存储器,例如易失性DRAM。持久存储器的各部分不需要相连地布置于(举例来说)可包括一个或一个以上裸片结构的局部存储器中。虽然未展示,但处理器单元可包含(举例来说)与处理器集成于同一裸片上或集成于单独裸片上的存储器控制器。此外,虽然图5展示具有四个节点的***,但可包含任何数目的节点且所主张的标的物并不限于此特定布置。
高速缓冲存储器530、532、534及536可包括用于存储从局部存储器520、522、524及526中的任一者获得的信息的副本的高速存储器。举例来说,可使用个别局部存储器的地址的至少一部分来搜索此高速缓冲存储器。存储器地址的用于搜索高速缓冲存储器的此一部分称作高速缓冲存储器索引部分。举例来说,高速缓冲存储器530可包括高速缓冲存储器索引部分及高速缓冲存储器数据部分。举例来说,所述高速缓冲存储器索引部分可包含存储于高速缓冲存储器530中的信息的线地址以及例如MESI状态信息及过程中及/或确认状态信息等状态信息,如上文所描述。当然,多核***的此些细节仅为实例,且所主张的标的物并不受如此限制。
图6是图解说明包含存储器装置610的计算***600的示范性实施例的示意图。计算装置604可表示可为可配置以管理存储器装置610的任何装置、器具或机器。存储器装置610可包含存储器控制器615及存储器622。通过举例而非限制的方式,计算装置604可包含:一个或一个以上计算装置及/或平台,例如,桌上型计算机、膝上型计算机、工作站、服务器装置等;一个或一个以上个人计算或通信装置或器具,例如,个人数字助理、移动通信装置等;计算***及/或相关联服务提供者能力,例如数据库或数据存储服务提供者/***;及/或其任一组合。
在一实施例中,计算装置604可包含由框620表示的多个处理单元。此多个处理单元可通过总线640及主机或存储器控制器615以操作方式耦合到存储器622。举例来说,通过总线640,多个处理单元620可共享可包括主存储器的存储器622。处理单元620表示可配置以执行数据计算程序或过程的至少一部分的一个或一个以上电路。通过举例而非限制的方式,处理单元620可包含多个处理器、控制器、微处理器、微控制器、专用集成电路、数字信号处理器、可编程逻辑装置、现场可编程门阵列等或其任一组合。举例来说,处理单元620可与存储器控制器615通信以处理存储器相关操作,例如读取、写入及/或擦除以及上文所论述的存储器分区过程。处理单元620可包含适于与存储器控制器615通信的操作***。此操作***可(举例来说)产生待经由总线640发送到存储器控制器615的命令。举例来说,此些命令可包含读取/写入指令。
存储器622表示任何数据存储机构。存储器622可包含(举例来说)DRAM 624及/或持久存储器626。在特定实施例中,存储器622可包括包含持久存储器的至少一部分的主存储器,如上文所描述。存储器622还可包括可同样包含持久存储器的至少一部分的高速缓冲存储器。尽管在此实例中图解说明为与处理单元620分离,但应理解,DRAM624的全部或部分可提供于处理单元620内或以其它方式与处理单元620位于同一地点/耦合。
根据一实施例,存储器622的一个或一个以上部分可存储表示存储器622的特定状态所表达的数据及/或信息的信号。举例来说,可通过以下方式将表示数据及/或信息的电子信号“存储”于存储器622的一部分中:影响或改变存储器622的此些部分的状态以将数据及/或信息表示为二进制信息(例如,1及0)。如此,在特定实施方案中,存储器的所述部分的此状态改变以存储表示数据及/或信息的信号构成存储器622到不同状态或事态的变换。
持久存储器626可包含(举例来说)与主要存储器相同或类似类型的存储器及/或一个或一个以上数据存储装置或***,例如,PCM、磁盘驱动器、光盘驱动器、磁带驱动器、固态存储器驱动器等。在某些实施方案中,持久存储器626可以操作方式接纳或可以其它方式配置以耦合到计算机可读媒体628。计算机可读媒体628可包含(举例来说)携载及/或使得可存取用于***600中的装置中的一者或一者以上的数据、代码及/或指令的任一媒体。
在一个实施例中,***600可包括存储器控制器615,其具有到主存储器的至少一第一接口及到处理实体的至少一第二接口(例如,经由总线640到处理器620),其中所述存储器控制器可能够使所述处理实体能够根据高速缓冲存储器相干性协议存取所述主存储器,且其中所述主存储器的至少一部分包括持久存储器。举例来说,此持久存储器可包括PCM。计算装置604可包含(举例来说)输入/输出632。输入/输出632表示可为可配置以接受或以其它方式引入人类及/或机器输入的一个或一个以上装置或特征及/或可为可配置以递送或以其它方式提供人类及/或机器输出的一个或一个以上装置或特征。通过举例而非限制的方式,输入/输出装置632可包含以操作方式配置的显示器、扬声器、键盘、鼠标、轨迹球、触摸屏、数据端口等。
尽管已图解说明及描述了目前被视为实例性实施例的实施例,但所属领域的技术人员将理解可做出各种其它修改且可用等效物替代,此并不背离所主张的标的物。另外,可在不背离本文中所描述的中心概念的情况下做出许多修改以使特定情形适应所主张的标的物的教示内容。因此,打算所主张的标的物不限于所揭示的特定实施例,而是此所主张的标的物还可包含归属于所附权利要求书及其等效物的范围内的所有实施例。
Claims (22)
1.一种存储器装置,其包括:
存储器控制器,其具有到主存储器的至少一第一接口及到两个或两个以上处理实体的至少一第二接口,其中所述存储器控制器能够使所述处理实体能够根据高速缓冲存储器相干性协议存取所述主存储器,且其中所述主存储器的至少一部分包括持久存储器。
2.根据权利要求1所述的存储器装置,其中所述高速缓冲存储器相干性协议包含指示所述主存储器当前是否处于正被更新过程中的第一状态及指示所述更新过程是否完成的第二状态。
3.根据权利要求2所述的存储器装置,其中所述存储器控制器进一步能够向所述两个或两个以上处理实体中的至少一者发出在所述更新过程期间等待存取所述主存储器的信号。
4.根据权利要求1所述的存储器装置,其中所述存储器控制器进一步能够使存储器描述符能够识别所述主存储器的包括持久存储器的所述至少一部分。
5.根据权利要求1所述的存储器装置,其中所述持久存储器包括相变存储器(PCM)。
6.根据权利要求1所述的存储器装置,其中所述持久存储器包括具有非对称读取/写入速度的存储器。
7.根据权利要求1所述的存储器装置,其中所述两个或两个以上处理实体包括多个中央处理单元(CPU)。
8.根据权利要求1所述的存储器装置,其中所述存储器控制器进一步能够启用包含在所述两个或两个以上处理实体当中共享的一个或一个以上高速缓冲存储器层级的存储器分级。
9.根据权利要求8所述的存储器装置,其中所述一个或一个以上高速缓冲存储器层级的至少一部分包括持久存储器。
10.一种方法,其包括:
管理高速缓冲存储器相干性协议以允许多个处理实体共享主存储器,其中所述主存储器的至少一部分包括持久存储器。
11.根据权利要求10所述的方法,其进一步包括:
将所述高速缓冲存储器相干性协议转变为第一状态以指令所述多个处理实体在所述主存储器的更新过程期间等待存取所述主存储器。
12.根据权利要求11所述的方法,其进一步包括:
将所述高速缓冲存储器相干性协议转变为第二状态以告知所述多个处理实体所述更新过程完成。
13.根据权利要求10所述的方法,其中所述持久存储器包括相变存储器(PCM)。
14.根据权利要求10所述的方法,其中所述持久存储器包括具有非对称读取/写入速度的存储器。
15.根据权利要求10所述的方法,其中所述高速缓冲存储器相干性协议至少部分地基于所述持久存储器的一个或一个以上等待时间性质。
16.根据权利要求10所述的方法,其中所述多个处理实体包括一个或一个以***处理单元(CPU)。
17.一种***,其包括:
多个处理实体;及
存储器装置,其包括:
存储器控制器,其具有到主存储器的至少一第一接口及到所述多个处理实体的至少一第二接口,其中所述存储器控制器能够使所述多个处理实体能够根据高速缓冲存储器相干性协议存取所述主存储器,且其中所述主存储器的至少一部分包括持久存储器。
18.根据权利要求17所述的***,其中所述高速缓冲存储器相干性协议包含指示所述主存储器当前是否处于正被更新过程中的第一状态及指示所述更新过程是否完成的第二状态。
19.根据权利要求18所述的***,其中所述存储器控制器进一步能够向所述两个或两个以上处理实体中的至少一者发出在所述更新过程期间等待存取所述主存储器的信号。
20.根据权利要求18所述的***,其中所述处理实体能够在所述更新过程期间等待存取所述主存储器。
21.一种主存储器,其包括:
动态随机存取存储器(DRAM)部分及持久存储器部分;及
高速缓冲存储器相干性协议块,其用以实施适应所述DRAM部分与所述持久存储器部分之间的等待时间差异的代码。
22.根据权利要求21所述的主存储器,其进一步包括用以识别所述持久存储器部分中的存储器位置的地址或地址范围的持久存储器描述符。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/797,522 | 2010-06-09 | ||
US12/797,522 US9448938B2 (en) | 2010-06-09 | 2010-06-09 | Cache coherence protocol for persistent memories |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102279817A true CN102279817A (zh) | 2011-12-14 |
CN102279817B CN102279817B (zh) | 2015-11-25 |
Family
ID=45020214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110159791.9A Active CN102279817B (zh) | 2010-06-09 | 2011-06-09 | 用于持久存储器的高速缓冲存储器相干性协议 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9448938B2 (zh) |
JP (1) | JP5348429B2 (zh) |
KR (1) | KR101385430B1 (zh) |
CN (1) | CN102279817B (zh) |
DE (1) | DE102011076895B4 (zh) |
TW (1) | TWI530786B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025066A (zh) * | 2011-12-29 | 2014-09-03 | 英特尔公司 | 用于能量高效计算的异构存储器晶片堆叠 |
CN108959133B (zh) * | 2017-05-22 | 2021-12-10 | 扬智科技股份有限公司 | 可共用存储器的电路结构与数字视频转换装置 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9037788B2 (en) | 2010-09-30 | 2015-05-19 | Micron Technology, Inc. | Validating persistent memory content for processor main memory |
KR101293260B1 (ko) | 2011-12-14 | 2013-08-09 | 한국전자통신연구원 | 이동 통신 단말 및 방법 |
KR101831550B1 (ko) * | 2012-10-22 | 2018-02-22 | 인텔 코포레이션 | 다중슬롯 링크 계층 플릿에서의 제어 메시징 |
US20140114928A1 (en) | 2012-10-22 | 2014-04-24 | Robert Beers | Coherence protocol tables |
US9367472B2 (en) * | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
EP3039554A1 (en) | 2013-08-30 | 2016-07-06 | Hewlett Packard Enterprise Development LP | Completion packet return |
CN105094686B (zh) | 2014-05-09 | 2018-04-10 | 华为技术有限公司 | 数据缓存方法、缓存和计算机*** |
US9384133B2 (en) | 2014-05-30 | 2016-07-05 | International Business Machines Corporation | Synchronizing updates of page table status indicators and performing bulk operations |
US9785554B2 (en) | 2014-05-30 | 2017-10-10 | International Business Machines Corporation | Synchronizing updates of page table status indicators in a multiprocessing environment |
WO2016018421A1 (en) * | 2014-07-31 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Cache management for nonvolatile main memory |
US9430396B2 (en) * | 2014-12-22 | 2016-08-30 | Intel Corporation | Updating persistent data in persistent memory-based storage |
US10152435B2 (en) | 2016-06-20 | 2018-12-11 | Western Digital Technologies, Inc. | Coherent controller |
US10459824B2 (en) * | 2017-09-18 | 2019-10-29 | Microsoft Technology Licensing, Llc | Cache-based trace recording using cache coherence protocol data |
US11907091B2 (en) | 2018-02-16 | 2024-02-20 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches |
KR102412423B1 (ko) * | 2020-01-09 | 2022-06-23 | 성균관대학교산학협력단 | 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1504902A (zh) * | 2002-12-05 | 2004-06-16 | 国际商业机器公司 | 在存储器部件之间保持数据一致性的方法和*** |
CN1864140A (zh) * | 2003-10-08 | 2006-11-15 | 艾利森电话股份有限公司 | 用于具有多个处理器和一个存储器***的***的存储器接口 |
US20090037666A1 (en) * | 2007-08-02 | 2009-02-05 | Freescale Semiconductor, Inc. | Cache locking device and methods thereof |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0358163A (ja) | 1989-07-26 | 1991-03-13 | Nec Corp | 疎結合型マルチプロセッサシステム |
JPH06150031A (ja) | 1992-10-30 | 1994-05-31 | Nec Corp | Cpuモジュール |
US5442704A (en) | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
JPH0816470A (ja) | 1994-07-04 | 1996-01-19 | Hitachi Ltd | 並列計算機 |
JP3320562B2 (ja) | 1994-09-22 | 2002-09-03 | 株式会社東芝 | キャッシュメモリを有する電子計算機 |
JP3210590B2 (ja) | 1996-11-29 | 2001-09-17 | 株式会社日立製作所 | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 |
JPH10171676A (ja) | 1996-12-10 | 1998-06-26 | Toshiba Corp | マイクロプロセッサのテスト容易化回路 |
US6516384B1 (en) | 1999-12-30 | 2003-02-04 | Intel Corporation | Method and apparatus to perform a round robin and locking cache replacement scheme |
US6760819B2 (en) | 2001-06-29 | 2004-07-06 | International Business Machines Corporation | Symmetric multiprocessor coherence mechanism |
KR20040015818A (ko) | 2001-07-18 | 2004-02-19 | 마츠시타 덴끼 산교 가부시키가이샤 | 기입장치, 반도체 메모리 카드, 기입프로그램 및 기입방법 |
US6658539B2 (en) * | 2001-10-16 | 2003-12-02 | International Business Machines Corporation | Super-coherent data mechanisms for shared caches in a multiprocessing system |
US6983348B2 (en) | 2002-01-24 | 2006-01-03 | Intel Corporation | Methods and apparatus for cache intervention |
US7322042B2 (en) | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
JP4241175B2 (ja) | 2003-05-09 | 2009-03-18 | 株式会社日立製作所 | 半導体装置 |
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US20050160229A1 (en) | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
US7644287B2 (en) | 2004-07-29 | 2010-01-05 | Microsoft Corporation | Portion-level in-memory module authentication |
US7240137B2 (en) | 2004-08-26 | 2007-07-03 | International Business Machines Corporation | System and method for message delivery across a plurality of processors |
US7451166B2 (en) | 2005-01-13 | 2008-11-11 | International Business Machines Corporation | System and method for maintaining checkpoints of a keyed data structure using a sequential log |
US8930659B2 (en) | 2005-03-31 | 2015-01-06 | Nec Corporation | Computer system, memory management method and program thereof |
US7130960B1 (en) * | 2005-04-21 | 2006-10-31 | Hitachi, Ltd. | System and method for managing disk space in a thin-provisioned storage subsystem |
US20060265544A1 (en) | 2005-05-17 | 2006-11-23 | John Rudelic | Internally authenticated flash remediation |
JP2006323739A (ja) | 2005-05-20 | 2006-11-30 | Renesas Technology Corp | メモリモジュール、メモリシステム、及び情報機器 |
US7389402B2 (en) | 2005-06-07 | 2008-06-17 | Advanced Micro Devices, Inc. | Microprocessor including a configurable translation lookaside buffer |
US20070226795A1 (en) | 2006-02-09 | 2007-09-27 | Texas Instruments Incorporated | Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture |
WO2007105256A1 (ja) | 2006-02-24 | 2007-09-20 | Fujitsu Limited | マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法 |
US8051253B2 (en) * | 2006-09-28 | 2011-11-01 | Virident Systems, Inc. | Systems and apparatus with programmable memory control for heterogeneous main memory |
CN100492274C (zh) | 2007-08-17 | 2009-05-27 | 杭州华三通信技术有限公司 | 存储控制***及其处理节点 |
US8015365B2 (en) | 2008-05-30 | 2011-09-06 | Intel Corporation | Reducing back invalidation transactions from a snoop filter |
US8055847B2 (en) | 2008-07-07 | 2011-11-08 | International Business Machines Corporation | Efficient processing of data requests with the aid of a region cache |
US8250350B2 (en) | 2008-08-26 | 2012-08-21 | Texas Digital And Multimedia Systems | Computer system with non-volatile write-protected memory based operating system and secure system architecture |
US9280466B2 (en) | 2008-09-09 | 2016-03-08 | Kabushiki Kaisha Toshiba | Information processing device including memory management device managing access from processor to memory and memory management method |
TW201017421A (en) | 2008-09-24 | 2010-05-01 | Panasonic Corp | Cache memory, memory system and control method therefor |
US8261019B2 (en) | 2009-02-13 | 2012-09-04 | Oracle America, Inc. | Conveying critical data in a multiprocessor system |
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 |
US8291175B2 (en) * | 2009-10-16 | 2012-10-16 | Oracle America, Inc. | Processor-bus attached flash main-memory module |
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
-
2010
- 2010-06-09 US US12/797,522 patent/US9448938B2/en active Active
-
2011
- 2011-05-23 JP JP2011114340A patent/JP5348429B2/ja active Active
- 2011-06-01 DE DE102011076895.5A patent/DE102011076895B4/de active Active
- 2011-06-09 KR KR1020110055706A patent/KR101385430B1/ko active IP Right Grant
- 2011-06-09 CN CN201110159791.9A patent/CN102279817B/zh active Active
- 2011-06-09 TW TW100120245A patent/TWI530786B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1504902A (zh) * | 2002-12-05 | 2004-06-16 | 国际商业机器公司 | 在存储器部件之间保持数据一致性的方法和*** |
CN1864140A (zh) * | 2003-10-08 | 2006-11-15 | 艾利森电话股份有限公司 | 用于具有多个处理器和一个存储器***的***的存储器接口 |
US20090037666A1 (en) * | 2007-08-02 | 2009-02-05 | Freescale Semiconductor, Inc. | Cache locking device and methods thereof |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025066A (zh) * | 2011-12-29 | 2014-09-03 | 英特尔公司 | 用于能量高效计算的异构存储器晶片堆叠 |
US9841920B2 (en) | 2011-12-29 | 2017-12-12 | Intel Corporation | Heterogeneous memory die stacking for energy efficient computing |
CN108959133B (zh) * | 2017-05-22 | 2021-12-10 | 扬智科技股份有限公司 | 可共用存储器的电路结构与数字视频转换装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI530786B (zh) | 2016-04-21 |
KR101385430B1 (ko) | 2014-04-29 |
JP5348429B2 (ja) | 2013-11-20 |
TW201222252A (en) | 2012-06-01 |
DE102011076895A1 (de) | 2011-12-15 |
US9448938B2 (en) | 2016-09-20 |
DE102011076895B4 (de) | 2014-12-24 |
CN102279817B (zh) | 2015-11-25 |
KR20110134855A (ko) | 2011-12-15 |
JP2011258193A (ja) | 2011-12-22 |
US20110307653A1 (en) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279817B (zh) | 用于持久存储器的高速缓冲存储器相干性协议 | |
US10389839B2 (en) | Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node | |
US9852060B2 (en) | Storage class memory (SCM) memory mode cache system | |
US11341059B2 (en) | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations | |
CN102331974B (zh) | 用于处理器主存储器的持久存储器 | |
CN102483719B (zh) | 基于块的非透明高速缓存 | |
US11210020B2 (en) | Methods and systems for accessing a memory | |
CN103999038A (zh) | 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备 | |
US20190171392A1 (en) | Method of operating storage device capable of reducing write latency | |
US9507534B2 (en) | Home agent multi-level NVM memory architecture | |
CN104115230A (zh) | 高效pcms刷新机制背景 | |
US20190155239A1 (en) | Method and apparatus for remote field programmable gate array processing | |
US20160328322A1 (en) | Processor to memory bypass | |
CN117632781A (zh) | 用于共享存储器快照的***、非暂时性计算机可读存储媒体和方法 | |
US20130297883A1 (en) | Efficient support of sparse data structure access | |
CN104050093A (zh) | 用于追踪统一虚拟存储器***中的页面故障的故障缓冲区 | |
US10331385B2 (en) | Cooperative write-back cache flushing for storage devices | |
US11126568B2 (en) | Object coherence in distributed shared memory systems | |
US20230409478A1 (en) | Method and apparatus to reduce latency of a memory-side cache | |
CN104049951A (zh) | 在解决存储器访问故障的同时重播存储器事务 | |
US8230173B2 (en) | Cache memory system, data processing apparatus, and storage apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |