CN102279817B - 用于持久存储器的高速缓冲存储器相干性协议 - Google Patents

用于持久存储器的高速缓冲存储器相干性协议 Download PDF

Info

Publication number
CN102279817B
CN102279817B CN201110159791.9A CN201110159791A CN102279817B CN 102279817 B CN102279817 B CN 102279817B CN 201110159791 A CN201110159791 A CN 201110159791A CN 102279817 B CN102279817 B CN 102279817B
Authority
CN
China
Prior art keywords
memory
cache
state
long
primary memory
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
Application number
CN201110159791.9A
Other languages
English (en)
Other versions
CN102279817A (zh
Inventor
约翰·吕德利克
奥古斯特·坎贝尔
穆斯塔法·纳吉布·阿卜杜拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN102279817A publication Critical patent/CN102279817A/zh
Application granted granted Critical
Publication of CN102279817B publication Critical patent/CN102279817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling 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状态而确定是否发出对所述特定高速缓冲存储器线的高速缓冲存储器相干性管理请求。
发明内容
本文公开了存储器装置的实施例。在某些实施例中,存储器装置包括存储器控制器,存储器控制器具有到主存储器的至少一第一接口及到两个或两个以上处理实体的至少一第二接口,其中存储器控制器能够使处理实体能够根据高速缓冲存储器相干性协议存取主存储器,高速缓冲存储器相干性协议包括过程中状态和确认状态;其中过程中状态指示主存储器中的信息正在被更新,且存储器控制器能够:等待直到过程中状态被移除以重新加载信息;且忽略过程中状态且加载先前的高速缓冲存储器内容;其中确认状态指示存储更新完成且高速缓冲存储器可以从主存储器重新加载信息以使高速缓冲存储器与主存储器同步;且其中主存储器的至少一部分包括持久存储器。
本文还公开了用于操作计算机的方法的实施例。在某些实施例中,所述方法包括:管理高速缓冲存储器相干性协议以允许多个处理实体共享主存储器,高速缓冲存储器相干性协议包括过程中状态和确认状态;其中过程中状态指示主存储器中的信息正在被更新,且存储器控制器能够:等待直到过程中状态被移除以重新加载信息;且忽略过程中状态且加载先前的高速缓冲存储器内容;其中确认状态指示存储更新完成且高速缓冲存储器可以从主存储器重新加载信息以使高速缓冲存储器与主存储器同步;且其中主存储器的至少一部分包括持久存储器。
本文还公开了用于操作计算机的系统的实施例。在某些实施例中,所述系统包括:多个处理实体;及存储器装置,其包括:存储器控制器,其具有到主存储器的至少一第一接口及到多个处理实体的至少一第二接口,其中存储器控制器能够使多个处理实体能够根据高速缓冲存储器相干性协议存取主存储器,高速缓冲存储器相干性协议包括过程中状态和确认状态;其中过程中状态指示主存储器中的信息正在被更新,且存储器控制器能够:等待直到过程中状态被移除以重新加载信息;且忽略过程中状态且加载先前的高速缓冲存储器内容;其中确认状态指示存储更新完成且高速缓冲存储器可以从主存储器重新加载信息以使高速缓冲存储器与主存储器同步;且其中主存储器的至少一部分包括持久存储器。
本文还公开了主存储器的实施例。在某些实施例中,所述主存储器包括:动态随机存取存储器(DRAM)部分及持久存储器部分;及高速缓冲存储器相干性协议块,其用以实施适应DRAM部分与持久存储器部分之间的等待时间差异的代码,高速缓冲存储器相干性协议块包括过程中状态和确认状态;其中过程中状态指示主存储器中的信息正在被更新,且存储器控制器能够:等待直到过程中状态被移除以重新加载信息;且忽略过程中状态且加载先前的高速缓冲存储器内容;且其中确认状态指示存储更新完成且高速缓冲存储器可以从主存储器重新加载信息以使高速缓冲存储器与主存储器同步。
附图说明
将参考以下各图描述非限制性及非穷尽性实施例,其中除非另有说明,否则所有各图中相似参考编号指代相似部件。
图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相关联的CPU410及与高速缓冲存储器435相关联的CPU415。在一实例中,CPU410可具有指向主存储器420中的位置的高速缓冲存储器线。CPU415可具有指向主存储器420中的相同位置的高速缓冲存储器线。CPU410及CPU415两者可向/从所述主存储器位置写入或读取。如果CPU415在CPU410正向所述主存储器位置写入时尝试从高速缓冲存储器线读取,那么可发生冲突。在一个实施方案中,CPU415可不在意此潜在冲突。在另一实施方案中,为了避免此冲突,CPU415可监视过程中及/或确认状态以确保来自CPU410的过程中写入已完成。在一实施方案中,过程中状态可对应于本文中称为I位的特定位、旗标或信号,且确认状态可对应于本文中称为C位的特定位、旗标或信号。此些位可在设定与复位状态当中转变以指示更新主存储器的过程的状态,如上文所描述。在特定实施方案中,如果C位及I位均未设定,那么CPU415可从高速缓冲存储器线读取。举例来说,如果设定I位,那么CPU410可正更新主存储器且CPU415可等待更新完成。在完成CPU410的更新之后,C位可即刻转变以指示此完成。因此,CPU415可响应于CPU410转变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可包含(举例来说)DRAM624及/或持久存储器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 (17)

1.一种存储器装置,其包括:
存储器控制器,其具有到主存储器的至少一第一接口及到两个或两个以上处理实体的至少一第二接口,其中所述存储器控制器能够使所述处理实体能够根据高速缓冲存储器相干性协议存取所述主存储器,所述高速缓冲存储器相干性协议包括过程中状态和确认状态;
其中所述过程中状态指示所述主存储器中的信息正在被更新,且所述存储器控制器能够:
等待直到所述过程中状态被移除以重新加载所述信息;且
忽略所述过程中状态且加载先前的高速缓冲存储器内容;
其中所述确认状态指示存储更新完成且高速缓冲存储器可以从所述主存储器重新加载信息以使所述高速缓冲存储器与所述主存储器同步;且
其中所述主存储器的至少一部分包括持久存储器。
2.根据权利要求1所述的存储器装置,其中所述高速缓冲存储器相干性协议包括存储器描述符,以识别所述主存储器的包括持久存储器的所述至少一部分。
3.根据权利要求1所述的存储器装置,其中所述持久存储器包括相变存储器(PCM)。
4.根据权利要求1所述的存储器装置,其中所述持久存储器包括具有非对称读取/写入速度的存储器。
5.根据权利要求1所述的存储器装置,其中所述两个或两个以上处理实体包括多个中央处理单元(CPU)。
6.根据权利要求1所述的存储器装置,其中所述存储器控制器进一步能够启用包含在所述两个或两个以上处理实体当中共享的一个或多个高速缓冲存储器层级的存储器分级。
7.根据权利要求6所述的存储器装置,其中所述一个或多个高速缓冲存储器层级的至少一部分包括持久存储器。
8.一种用于操作计算机的方法,所述方法包括:
管理高速缓冲存储器相干性协议以允许多个处理实体共享主存储器,所述高速缓冲存储器相干性协议包括过程中状态和确认状态;
其中所述过程中状态指示所述主存储器中的信息正在被更新,且所述存储器控制器能够:
等待直到所述过程中状态被移除以重新加载所述信息;且
忽略所述过程中状态且加载先前的高速缓冲存储器内容;
其中所述确认状态指示存储更新完成且高速缓冲存储器可以从所述主存储器重新加载信息以使所述高速缓冲存储器与所述主存储器同步;且
其中所述主存储器的至少一部分包括持久存储器。
9.根据权利要求8所述的方法,其中所述持久存储器包括相变存储器(PCM)。
10.根据权利要求8所述的方法,其中所述持久存储器包括具有非对称读取/写入速度的存储器。
11.根据权利要求8所述的方法,其中所述高速缓冲存储器相干性协议至少部分地基于所述持久存储器的一个或多个等待时间性质。
12.根据权利要求8所述的方法,其中所述多个处理实体包括中央处理单元(CPU)。
13.一种用于操作计算机的系统,所述系统包括:
多个处理实体;及
存储器装置,其包括:
存储器控制器,其具有到主存储器的至少一第一接口及到所述多个处理实体的至少一第二接口,其中所述存储器控制器能够使所述多个处理实体能够根据高速缓冲存储器相干性协议存取所述主存储器,所述高速缓冲存储器相干性协议包括过程中状态和确认状态;
其中所述过程中状态指示所述主存储器中的信息正在被更新,且所述存储器控制器能够:
等待直到所述过程中状态被移除以重新加载所述信息;且
忽略所述过程中状态且加载先前的高速缓冲存储器内容;
其中所述确认状态指示存储更新完成且高速缓冲存储器可以从所述主存储器重新加载信息以使所述高速缓冲存储器与所述主存储器同步;且
其中所述主存储器的至少一部分包括持久存储器。
14.根据权利要求13所述的系统,其中所述存储器控制器进一步能够向所述多个处理实体中的至少一者发出在所述更新过程期间等待存取所述主存储器的信号。
15.根据权利要求13所述的系统,其中所述处理实体能够在所述更新过程期间等待存取所述主存储器。
16.一种主存储器,其包括:
动态随机存取存储器(DRAM)部分及持久存储器部分;及
高速缓冲存储器相干性协议块,其用以实施适应所述DRAM部分与所述持久存储器部分之间的等待时间差异的代码,所述高速缓冲存储器相干性协议块包括过程中状态和确认状态;
其中所述过程中状态指示所述主存储器中的信息正在被更新,且存储器控制器能够:
等待直到所述过程中状态被移除以重新加载所述信息;
且忽略所述过程中状态且加载先前的高速缓冲存储器内容;且
其中所述确认状态指示存储更新完成且高速缓冲存储器可以从所述主存储器重新加载信息以使所述高速缓冲存储器与所述主存储器同步。
17.根据权利要求16所述的主存储器,其中所述高速缓冲存储器相干性协议块包括持久存储器描述符,以识别所述持久存储器部分中的存储器位置的地址或地址范围。
CN201110159791.9A 2010-06-09 2011-06-09 用于持久存储器的高速缓冲存储器相干性协议 Active CN102279817B (zh)

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 CN102279817A (zh) 2011-12-14
CN102279817B true 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)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
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 한국전자통신연구원 이동 통신 단말 및 방법
WO2013101038A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Heterogeneous memory die stacking for energy efficient computing
US20140114928A1 (en) 2012-10-22 2014-04-24 Robert Beers Coherence protocol tables
KR101598746B1 (ko) * 2012-10-22 2016-02-29 인텔 코포레이션 고성능 상호연결 물리 계층
US9367472B2 (en) * 2013-06-10 2016-06-14 Oracle International Corporation Observation of data in persistent memory
CN105164656B (zh) 2013-08-30 2018-03-06 慧与发展有限责任合伙企业 完成包的返回
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
US20170192886A1 (en) * 2014-07-31 2017-07-06 Hewlett Packard Enterprise Development Lp 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
CN108959133B (zh) * 2017-05-22 2021-12-10 扬智科技股份有限公司 可共用存储器的电路结构与数字视频转换装置
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1504902A (zh) * 2002-12-05 2004-06-16 国际商业机器公司 在存储器部件之间保持数据一致性的方法和系统
CN1864140A (zh) * 2003-10-08 2006-11-15 艾利森电话股份有限公司 用于具有多个处理器和一个存储器系统的系统的存储器接口

Family Cites Families (39)

* Cited by examiner, † Cited by third party
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
CN101180612A (zh) 2005-03-31 2008-05-14 日本电气株式会社 计算机系统、存储器管理方法及其程序
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 マルチプロセッサシステム、プロセッサ、およびキャッシュ制御方法
WO2008040028A2 (en) * 2006-09-28 2008-04-03 Virident Systems, Inc. Systems, methods, and apparatus with programmable memory control for heterogeneous main memory
US7827360B2 (en) 2007-08-02 2010-11-02 Freescale Semiconductor, Inc. Cache locking device and methods thereof
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
KR101038167B1 (ko) 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1504902A (zh) * 2002-12-05 2004-06-16 国际商业机器公司 在存储器部件之间保持数据一致性的方法和系统
CN1864140A (zh) * 2003-10-08 2006-11-15 艾利森电话股份有限公司 用于具有多个处理器和一个存储器系统的系统的存储器接口

Also Published As

Publication number Publication date
CN102279817A (zh) 2011-12-14
DE102011076895B4 (de) 2014-12-24
TWI530786B (zh) 2016-04-21
US20110307653A1 (en) 2011-12-15
JP5348429B2 (ja) 2013-11-20
DE102011076895A1 (de) 2011-12-15
KR101385430B1 (ko) 2014-04-29
KR20110134855A (ko) 2011-12-15
US9448938B2 (en) 2016-09-20
TW201222252A (en) 2012-06-01
JP2011258193A (ja) 2011-12-22

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
CN102331974B (zh) 用于处理器主存储器的持久存储器
CN107506312B (zh) 在不同高速缓存一致性域之间共享信息的技术
US11210020B2 (en) Methods and systems for accessing a memory
US10678702B2 (en) Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
CN104115129A (zh) 用于从处理器到存储器子系统智能刷新数据的系统和方法
CN103946810A (zh) 具有包含可配置分区的非易失性随机访问存储器的平台储存层次结构
US11675326B2 (en) Method and apparatus for remote field programmable gate array processing
CN108701003A (zh) 用于对远程节点的许多存储操作的原子写入的结构弹性支持
US10613999B2 (en) Device, system and method to access a shared memory with field-programmable gate array circuitry without first storing data to computer node
US9507534B2 (en) Home agent multi-level NVM memory architecture
US20210334143A1 (en) System for cooperation of disaggregated computing resources interconnected through optical circuit, and method for cooperation of disaggregated resources
CN104115230A (zh) 高效pcms刷新机制背景
US6035376A (en) System and method for changing the states of directory-based caches and memories from read/write to read-only
US20130297883A1 (en) Efficient support of sparse data structure access
US10331385B2 (en) Cooperative write-back cache flushing for storage devices
US20230409478A1 (en) Method and apparatus to reduce latency of a memory-side cache
CN114238165B (zh) 数据处理方法、数据处理装置以及存储介质
CN117632781A (zh) 用于共享存储器快照的系统、非暂时性计算机可读存储媒体和方法
US8862826B2 (en) Method and apparatus for increasing capacity of cache directory in multi-processor systems
US8230173B2 (en) Cache memory system, data processing apparatus, and storage apparatus
CN116049031A (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
C14 Grant of patent or utility model
GR01 Patent grant