首页> 中国专利> 用于持久存储器的高速缓冲存储器相干性协议

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

摘要

本文涉及包含持久存储器的处理器系统的高速缓冲存储器相干性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-11-25

    授权

    授权

  • 2012-02-01

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20110609

    实质审查的生效

  • 2011-12-14

    公开

    公开

说明书

技术领域

本文中所揭示的标的物涉及包含持久存储器的处理器系统的高速缓冲存储器相干 性。

背景技术

计算机系统可利用共享的存储器多处理器(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位而重新加载高速缓冲存储器线。CPU 415可接着含有所述存储器位置的最新的最近值。

在一实施例中,至少一部分包括持久存储器的主存储器的相干性可由操作系统虚拟 存储器及/或由默认页处置程序维持。此操作系统可支持用以识别涉及相干性管理的批量 写入操作的方法。举例来说,此批量写入操作可包括数据库写入操作。应用程序可在彼 此当中协调使得可将批量写入操作管理为自动写入操作,其中跨越数据库的多个字段可 在此更新过程可被视为完成之前更新。应用程序层级语义可以类似于个别高速缓冲存储 器线的方式使一个或一个以上应用程序不使用无效数据,但批量操作涉及更大信息量。 在一个实施方案中,传递批量写入操作的大小可包含持久直接存储器存取(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分离,但应理解,DRAM 624的全部或部分可提供于处理单元620内或以其它方式与处理单元620位于同一地点/ 耦合。

根据一实施例,存储器622的一个或一个以上部分可存储表示存储器622的特定状 态所表达的数据及/或信息的信号。举例来说,可通过以下方式将表示数据及/或信息的 电子信号“存储”于存储器622的一部分中:影响或改变存储器622的此些部分的状态 以将数据及/或信息表示为二进制信息(例如,1及0)。如此,在特定实施方案中,存 储器的所述部分的此状态改变以存储表示数据及/或信息的信号构成存储器622到不同 状态或事态的变换。

持久存储器626可包含(举例来说)与主要存储器相同或类似类型的存储器及/或一 个或一个以上数据存储装置或系统,例如,PCM、磁盘驱动器、光盘驱动器、磁带驱动 器、固态存储器驱动器等。在某些实施方案中,持久存储器626可以操作方式接纳或可 以其它方式配置以耦合到计算机可读媒体628。计算机可读媒体628可包含(举例来说) 携载及/或使得可存取用于系统600中的装置中的一者或一者以上的数据、代码及/或指 令的任一媒体。

在一个实施例中,系统600可包括存储器控制器615,其具有到主存储器的至少一 第一接口及到处理实体的至少一第二接口(例如,经由总线640到处理器620),其中 所述存储器控制器可能够使所述处理实体能够根据高速缓冲存储器相干性协议存取所 述主存储器,且其中所述主存储器的至少一部分包括持久存储器。举例来说,此持久存 储器可包括PCM。计算装置604可包含(举例来说)输入/输出632。输入/输出632表 示可为可配置以接受或以其它方式引入人类及/或机器输入的一个或一个以上装置或特 征及/或可为可配置以递送或以其它方式提供人类及/或机器输出的一个或一个以上装置 或特征。通过举例而非限制的方式,输入/输出装置632可包含以操作方式配置的显示器、 扬声器、键盘、鼠标、轨迹球、触摸屏、数据端口等。

尽管已图解说明及描述了目前被视为实例性实施例的实施例,但所属领域的技术人 员将理解可做出各种其它修改且可用等效物替代,此并不背离所主张的标的物。另外, 可在不背离本文中所描述的中心概念的情况下做出许多修改以使特定情形适应所主张 的标的物的教示内容。因此,打算所主张的标的物不限于所揭示的特定实施例,而是此 所主张的标的物还可包含归属于所附权利要求书及其等效物的范围内的所有实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号