首页> 中国专利> 使用细粒度级别的重映射的混合主存储器

使用细粒度级别的重映射的混合主存储器

摘要

本发明涉及使用细粒度级别的重映射的混合主存储器。公开了使用转译线路访问混合存储器。该混合存储器包括第一部分。转译线路将第一物理存储器地址映射到第一部分中的第一线路。所述映射提供第一线路在第一部分中不直接可访问的指示。

著录项

  • 公开/公告号CN104572495A

    专利类型发明专利

  • 公开/公告日2015-04-29

    原文格式PDF

  • 申请/专利权人 大卫·R·切里顿;

    申请/专利号CN201410522999.6

  • 发明设计人 D·R·谢里顿;

    申请日2014-09-10

  • 分类号G06F12/08(20060101);

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人马红梅;刘春元

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 08:25:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-28

    授权

    授权

  • 2016-04-20

    专利申请权的转移 IPC(主分类):G06F12/08 登记生效日:20160329 变更前: 变更后: 申请日:20140910

    专利申请权、专利权的转移

  • 2015-05-27

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20140910

    实质审查的生效

  • 2015-04-29

    公开

    公开

说明书

其他申请的交叉引用

本申请要求2013年9月10日提交的名称为HYBRID MAIN  MEMORY USING A FINE-GRAIN LEVEL OF REMAPPING(使用细粒 度级别的重映射的混合主存储器)的美国临时专利申请No.61/876,115 的优先权,该美国临时专利申请出于所有目的通过引用并入本文。

背景技术

随着易失性存储器(例如,动态随机存取存储器(“DRAM”)) 的成本下降以及容量的对应增加,许多应用维持大量的其在DRAM存 储器中的状态(即,DRAM的吉字节)现在是可行的。与在辅储存器 (诸如,盘)和主存储器(传统地,DRAM)之间来回翻页该状态相 比,结果是更快、更可预测的响应。

这加宽了存储器中合适的应用与不合适的应用(例如,需要数太 字节的数据而不是仅数吉字节的存储器的那些应用)之间在性能可预 测性方面的差距。此外,由于从辅储存器取数据的软件开销和等待时 间,这些大应用进一步受损害。

附图说明

在下面的详细描述和附图中公开了本方面的各种实施例。

图1是图示了根据一些实施例的用于分布式工作流的编程计算机 系统的功能图。

图2是图示了传统存储器层级的架构的实施例的逻辑视图的框 图。

图3是图示了混合存储器的架构的实施例的逻辑视图的框图。

图4A是存储器控制器和混合存储器重映射的构思图示。

图4B是用于存储器控制器和混合存储器重映射的预取的构思图 示。

图5是混合存储器重映射的虚拟和物理存储器翻页的构思图示。

图6是混合存储器重映射如何提供事务更新支持的构思图示。

图7是图示了混合存储器系统的框图。

具体实施方式

本发明可以以许多方式实现,包括作为:过程;设备;系统;物 质组成;体现在计算机可读储存介质上的计算机程序产品;和/或处理 器,诸如被配置为执行指令的处理器,该指令被存储在与该处理器耦 合的存储器上和/或由该存储器提供。在本说明书中,这些实施方式或 者本发明可采取的任何其他形式可以被称为技术。一般地,所公开的 过程的步骤的顺序可以在本发明范围内更改。除非另有声明,被描述 为被配置为执行任务的部件(诸如处理器或存储器)可以被实现为暂 时被配置为在给定时间处执行任务的一般部件或被制造为执行任务 的具体部件。如本文所使用,术语“处理器”指代被配置为处理数据 (诸如计算机程序指令)的一个或多个设备、电路和/或处理核心。

下面连同图示本发明原理的附图一起提供本发明的一个或多个 实施例的详细描述。本发明是结合这种实施例描述的,但是本发明不 限于任何实施例。本发明的范围仅由权利要求限定,并且本发明涵盖 许多替换、修改和等同物。在下面的描述中阐述了许多具体细节,以 提供对本发明的透彻理解。这些细节是出于示例的目的提供的,并且, 可以在没有这些具体细节中的一些或全部的情况下根据权利要求来 实施本发明。出于清楚的目的,未详细描述本发明所属技术领域中公 知的技术材料,使得本发明不会被不必要地模糊。

公开了一种使用细粒度级别的重映射的混合主存储器。如上所 述,主存储器中合适的应用与不合适的应用(例如,需要数太字节的 数据而不是仅数吉字节的存储器的那些应用)之间在性能可预测性方 面,差距加宽。此外,由于从辅储存器取数据的软件开销和等待时间, 这些大应用进一步受损害。

易失性存储器定义。贯穿本说明书,术语“易失性存储器”一般 指代且不限于下述存储器技术:其需要功率以维持所存储的数据和/ 或典型地用于主存储器、主要存储器、计算机存储器、传统存储器、 和/或主要储存器、或具有类似性能的任何存储器,包括随机存取存储 器(“RAM”)、DRAM、静态RAM(“SRAM”)、同步DRAM (“SDRAM”)、异步RAM、双数据速率SDRAM(“DDR SDRAM”)、 晶闸管RAM(“TRAM”)、零电容器RAM(“ZRAM”)等等。 贯穿本说明书,术语DRAM一般指代而不限于易失性存储器。

例如,传统数据库将数据划分成盘高速缓存中的主存储器中仍高 速缓存的盘上存储的块。因此,对盘上存储的数据的访问需要:

a)将数据的标识映射到包含数据的块的块Id,以及可选地映射 到偏移;

b)如果该块存在于块高速缓存中,则确定该块的存储器位置, 并且否则,发起将数据移动到该块高速缓存中的I/O操作;以及然后

c)在块被应用所使用时,将块锁定到块高速缓存中。通过对比, 可以通过简单地解除参考指向包含该数据的记录的指针来访问存储 器中的记录。

除提供太字节规模量的易失性存储器的过高资本成本和维持这 种大存储器的功率成本外,大存储器可能在重新启动上需要过多恢复 时间。例如,如果在传统以太网网络上以10Gbps(其自身中的有挑 战性的速率)提供要恢复的数据,则太字节的数据需要大致1000秒 或16分钟来恢复/重新加载该数据。

大主存储器还可能遭受过多存储器差错,这是由于存储器差错的 概率与存储器的大小成比例。对存储器差错的增加的揭露和较长恢复 时间可以组合,以显著降低系统或应用的可用性和响应级别。

非易失性存储器定义。已经开发或正在开发可替换的存储器(诸 如非易失性存储器),其提供了大得多的容量,同时还提供了持久性。 贯穿本说明书,术语“非易失性存储器”一般指代且不限于下述存储 器技术:其甚至在不被供电时也可以存储数据和/或典型地用于计算机 储存器或具有类似性能的任何存储器,包括闪存、非易失性RAM (“NVRAM”)、电阻性RAM(“RRAM”)、相变存储器(“PCM”)、 相变RAM(“PRAM”)、非易失性SRAM(“nvSRAM”)、铁电 RAM(“FRAM”)、磁阻RAM(“MRAM”)、可编程磁化单元 (“PMC”)、SONOS、纳米RAM等等。非易失性存储器还可以指 代比DRAM具有更密集或更功率高效的存储器技术的存储器技术。

不幸的是,对于读取或写入或这两者,这些技术的性能基本上比 易失性存储器低。它们还可能需要更低的写入耐久性和更高的写入功 率,并施加限制,诸如需要块擦除。

同时,存在向着增加“巨大”存储器页(例如,工业标准架构上 的两个兆字节页)的使用的趋势。这意味着:以页粒度迁移和重映射 数据的传统虚拟翻页映射方法引发应用上的过多开销。

混合存储器定义。在实现与易失性存储器足够接近的性能的同时 将可替换和/或非易失性存储器技术并入到易失性存储器和/或主存储 器系统中作为混合主存储器系统将解决上述问题。公开了被实现为传 统存储器技术和/或易失性存储器(例如,DRAM)以及可替换存储器 技术和/或非易失性存储器(例如,闪存)的混合组合的主存储器。贯 穿本说明书,“混合”存储器和/或混合主存储器一般指代且不限于易 失性/传统和非易失性/可替换存储器的任何组合。

图1是图示了根据一些实施例的用于分布式工作流的编程计算机 系统的功能图。如所示,图1提供了根据一些实施例的被编程为执行 工作流的通用计算机系统的功能图。如将显而易见的那样,可以使用 其他计算机系统架构和配置来执行工作流。包括如下所述的各种子系 统的计算机系统100包括至少一个微处理器子系统,被称为处理器和 中央处理单元(“CPU”)102。例如,处理器102可以由单芯片处 理器或由多个核和/或处理器实现。在一些实施例中,处理器102是对 计算机系统100的操作进行控制的通用数字处理器。使用从存储器110 检索的指令,处理器102控制输入数据的接收和操控以及在输出设备 (例如,显示器118)上对数据的输出和显示。

处理器102与存储器110双向耦合,存储器110可以包括第一主 要储存器(典型地,随机存取存储器(“RAM”))和第二主要储存 区(典型地,只读存储器(“ROM”))。如本领域中公知的,主要 储存器可以被用作一般储存区和便笺式存储器,且还可以被用于存储 输入数据和经处理的数据。除了针对在处理器102上操作的过程的其 他数据和指令外,主要储存器还可以以数据对象和文本对象的形式存 储编程指令和数据。同样如本领域中公知的,主要储存器典型地包括 由处理器102使用以执行其功能的基本操作指令、程序代码、数据和 对象,例如编程指令。例如,根据例如数据访问需要是双向的还是单 向的,主要储存设备110可以包括下面描述的任何合适计算机可读储 存介质。例如,处理器102还可以直接且非常快速地在高速缓冲存储 器(未示出)中检索和存储频繁需要的数据。块处理器102还可以包 括协处理器(未示出)作为补充处理部件以辅助处理器和/或存储器 110。如下面将描述的那样,存储器110可以经由存储器控制器(未 示出)和/或协处理器(未示出)耦合到处理器102,并且存储器110 可以是传统存储器、结构化存储器、如上所述的易失性和非易失性存 储器的混合存储器、或者其组合。

可移除大容量储存设备112针对计算机系统100提供附加数据储 存容量,并双向(读/写)或单向(只读)耦合到处理器102。例如, 储存器112还可以包括计算机可读介质,诸如磁带、闪存、PC-CARDS、 便携式大容量储存设备、全息储存设备和其他储存设备。固定大容量 储存器120还可以例如提供附加数据储存容量。大容量储存器120的 最常见示例是硬盘驱动器。大容量储存器112、120一般存储典型地 不被处理器102主动使用的附加编程指令、数据等。将意识到的是, 如果需要的话,大容量储存器112、120内保留的信息可以被以标准 方式并入作为主要储存器110的一部分(例如RAM,作为虚拟存储 器)。

除了给处理器102提供对储存子系统的访问外,还可以使用总线 114来提供对其他子系统和设备的访问。如所示,这些可以包括显示 监视器118、网络接口116、键盘104和指点设备106、以及辅助输入 /输出设备接口、声卡、扬声器和按照需要的其他子系统。例如,指点 设备106可以是鼠标、触笔、轨迹球或写字板,且有益于与图形用户 界面进行交互。

网络接口116允许处理器102使用如所示的网络连接耦合到另一 计算机、计算机网络或电信网络。例如,在执行方法/过程步骤的过程 中,通过网络接口116,处理器102可以从另一网络接收信息,例如 数据对象或程序信息,或者向另一网络输出信息。可以从另一网络接 收并向另一网络输出信息,通常被表示为要在处理器上执行的指令的 序列。可以使用由处理器102实现(例如,在处理器102上执行/实施) 的接口卡或类似设备和适当软件将计算机系统100连接到外部网络并 根据标准协议来传送数据。例如,可以在处理器102上执行本文公开 的各种过程实施例,或者可以结合共享处理的部分的远程处理器跨网 络(诸如互联网、内联网网络或局域网)执行各种过程实施例。贯穿 本说明书,“网络”指代计算机部件之间的任何互连,包括互联网、 以太网、内联网、局域网(“LAN”)、家庭区域网(“HAN”)、 串行连接、并行连接、广域网(“WAN”)、光纤信道、PCI/PCI-X、 AGP、VLbus、高速PCI(PCI Express)、高速卡(Expresscard)、无 限带宽(Infiniband)、ACCESS.bus、无线LAN、WiFi、HomePNA、 光纤、G.hn、红外网络、卫星网络、微波网络、蜂窝网络、虚拟专用 网(“VPN”)、通用串行总线(“USB”)、火线(FireWire)、 串行ATA、1-Wire、UNI/O、或者将同构、异构系统和/或系统组连接 在一起的任何形式。附加大容量储存设备(未示出)也可以通过网络 接口116连接到处理器102。

可以结合计算机系统100使用辅助I/O设备接口(未示出)。辅 助I/O设备接口可以包括一般和定制接口,其允许处理器102发送和 更典型地接收来自其他设备(诸如,麦克风、触摸敏感显示器、换能 器卡读取器、带读取器、语音或手写识别器、生物计量读取器、摄像 机、便携式大容量储存设备和其他计算机)的数据。

另外,本文公开的各种实施例进一步涉及具有计算机可读介质的 计算机储存产品,该计算机可读介质包括用于执行各种计算机实现操 作的程序代码。计算机可读介质是可存储此后可由计算机系统读取的 数据的任何数据储存设备。计算机可读介质的示例包括但不限于上述 所有介质:磁介质,诸如硬盘、软盘和磁带;光介质,诸如CD-ROM 盘;磁光介质,诸如光盘;以及具体配置的硬件设备,诸如专用集成 电路(“ASIC”)、可编程逻辑器件(“PLD”)以及ROM和RAM 设备。程序代码的示例包括例如如编译器所产生的机器代码或包含可 使用解释器执行的更高级代码(例如,脚本)的文件二者。

图1中所示的计算机系统仅是适于与本文公开的各种实施例一起 使用的计算机系统的示例。适于这种使用的其他计算机系统可以包括 附加的或更少的子系统。另外,总线114说明了服务于将子系统链接 的任何互连方案。还可以利用具有子系统的不同配置的其他计算机架 构。

物理存储器定义。贯穿本说明书,“物理存储器实现”或者物理 存储器和/或物理存储器设备主要指代计算机系统的有形主要存储器。 在一些实施例中,主要存储器包括半导体存储器。在一些实施例中, 半导体存储器包括易失性和/或非易失性存储器。物理存储器的示例包 括但不限于下述一项或多项:RAM、动态RAM(DRAM)、静态RAM (SRAM)、闪存、可编程ROM(PROM/EPROM/EEPROM)、非易 失性RAM(NVRAM)、闪存、基于NAND的存储器、基于NOR的 存储器、以及所有形式的可寻址半导体存储器。

图2是图示了传统存储器层级的架构的实施例的逻辑视图的框 图。处理器202耦合到主(易失性)存储器204和辅储存器(例如, 盘或闪速)206二者。处理器202可以由一个或多个核、寄存器和/或 与末级高速缓存(“LLC”)212耦合的高速缓存/高速缓存层级210 组成。LLC 212耦合到存储器控制器214。与将存储器控制器214与 主存储器204耦合的存储器总线相比,处理器内的总线接口可以被视 为高性能,当前示例可能是具有12800MB/s传送速率的DDR3。进而, 存储器总线自身比将处理器202耦合到辅储存器206的外围连接总线 更高性能,当前示例可能是具有600MB/s传送速率的经由SATA 3的 PCIe总线。

图3是图示了混合存储器的架构的实施例的逻辑视图的框图。与 图2类似,处理器302与混合存储器304和辅储存器306耦合。处理 器302可以由一个或多个核、寄存器和/或与LLC 312耦合的高速缓 存/高速缓存层级310组成。LLC 312耦合到结构化存储器控制器314。 尽管存储器控制器314在图3中被描绘为处理器302的一部分,但是 不失一般性,其可以位于处理器302外,例如作为协处理器(未示出) 或分离的封装(未示出)。不失一般性,存储器控制器314可以是组 合的传统和结构化存储器控制器或纯结构化存储器控制器(未示出)。 存储器控制器314经由转译线路的集合耦合到混合存储器304,其中 混合存储器304由易失性存储器322和非易失性存储器324组成。

在指定可替换存储器技术324的物理地址的访问时,由存储器控 制器314将线路内容移动到DRAM 322,并且使用硬件重映射将对该 地址和线路中的其他地址的后续访问重映射到DRAM 322中的内容 (如果该内容已经被迁移到那里的话)。还在适当时间处将经修改的 数据移动回到可替换存储器技术324,从而还原重映射以指示这一点。

公开了作为传统/易失性存储器技术322和可替换/非易失性存储 器技术324的混合的主存储器304。在一个实施例中,主存储器控制 器314使用用于指定要读取或写入的内容的物理存储器地址,给处理 器302提供传统存储器技术322和可替换存储器技术324二者中的访 问状态。

存储器控制器定义。贯穿本说明书,术语“存储器控制器”用于 指定处理存储器负载和储存器的硬件,并可以包括本领域中通常被称 为LCC及其控制器的东西的部分,且还可以指代第一和第二级高速 缓存控制器的部分。

硬件存储器重映射涉及例如结构化存储器。具有结构化存储器控 制器的这种存储器可以连同其他属性一起执行物理存储器的细粒度 在线重映射。本说明书中的混合存储器控制器可以被认为是比结构化 存储器控制器更宽泛和/或更通用的控制器,但是,出于说明性目的, 若干构思在这两者之间共用。例如,用于结构化存储器中的重复删除 的转译间接是对用于高速缓存层级重映射的转译间接来说类似的构 思。

结构化存储器系统/架构的一个示例是HICAMP(层级不可变内容 可寻址存储器处理器),如以其整体特此通过引用而并入的名称为 HIERARCHICAL IMMUTABLE CONTENT-ADDRESSABLE  MEMORY PROCESSOR(层级不可变内容可寻址存储器处理器)的美 国专利7,650,460中所述,以及如以其整体特此通过引用而并入的2010 年7月23日提交的名称为ITERATOR REGISTER FOR STRUCTURED  MEMORY(用于结构化存储器的迭代器寄存器)的美国专利申请US  2011/0010347A1中所述。

这种特殊存储器访问路径可以提供其他属性,如在美国专利 7,650,460中所详述,诸如共享、重复删除、高效快照、压缩、稀疏数 据集访问和/或原子更新。

通过扩展而非替换传统存储器,可以在不显著重写的情况下重用 软件。在一个实施例中,可以通过提供作为专门协处理器的结构化能 力并给物理地址空间的区域提供由传统处理器和关联的操作系统对 结构化存储器的读/写访问来提供像HICAMP之类的结构化存储器的 一些优点给传统处理器/系统,如以其整体特此通过引用而并入的名称 为STRUCTURED MEMORY COPROCESSOR(结构化存储器协处理 器)的美国专利8,407,428中所公开。

更一般地且贯穿本说明书,利用物理地址之间的物理地址转译映 射以及实际物理存储器实现和/或设备来实现物理存储器系统,其中, 映射的单元与虚拟存储器页大小无关。

贯穿本说明书,该映射单元被称为“物理存储器线路”,或为了 简明而被称为线路。该转译映射可以被改变以将关联的地址映射到具 有相同数据内容的分离线路。通过对地址进行重映射,对映射到相同 物理线路的所有邻接物理地址进行重映射。贯穿本说明书,“线路地 址”指代被映射到物理线路的物理地址,例如,其是在整个线路内容 被读取为单个操作时使用的。贯穿本说明书,“物理线路ID”或PLID 指代能够存储物理线路的内容的物理存储器系统中的储存单元的标 识的名称。因此,线路地址被映射到PLID,该PLID标识线路的内容。 在一个实施例中,一个或多个线路地址可以被映射到相同PLID。

在一个实施例中,映射由一个或多个“转译线路”执行,贯穿本 说明书,“转译线路”指代与物理地址的邻接范围相对应的线路,并 包含PLID的序列,针对该地址范围中的内容的每个线路单元一个 PLID。例如,64字节转译线路可以包含16个32比特PLID,从而表 示物理地址的1024字节范围,假定如美国专利8,407,428中所述的64 字节数据线路。

贯穿本说明书,“硬件”指代用于执行任务的数字电路的任何物 理配置,包括定制硅集成电路、专用集成电路(“ASIC”)、现场可 编程门阵列(“FPGA”)或可编程逻辑器件(“PLD”)。所描述的 转译线路映射是硬件,而非软件(例如,操作系统)系统,其不需要 软件资源和/或操作系统资源可实现。所描述的存储器控制器根本不需 要以软件实现,且可以完全以硬件实现。

在一个实施例中,在处理器所使用的物理地址与由PLID指定的 实际存储器内容位置之间提供间接级别。在一个实施例中,该间接级 别由与物理地址空间的一部分相对应的转译线路实现。该转译线路包 含多个PLID,针对其所覆盖的物理地址范围中的每个线路单元一个 PLID。在具体实施例中,每个数据线路是64个字节,并且每个PLID 是40个比特或五个字节,允许每线路存储七个PLID,或每线路存储 具有额外隐藏比特的八个PLID。因此,每个转译线路覆盖物理地址 空间的1024个字节。在每PLID有37个寻址比特和三个元标签比特 的情况下,这允许多达八太字节的主存储器被寻址。DRAM 322中的 转译线路仅参考指代DRAM数据线路的PLID,因此这些可以是每个 PLID 32个比特,从而允许64吉字节的DRAM被寻址,假定仅两个 比特的元标签数据。

元标签可以用于指示线路被修改。在一些实施例中,其还可以用 于指示线路正在被传送到DRAM 322且尚不能被传送。元标签的其他 用途在以其整体特此通过引用而并入的2012年12月12日提交的名 称为HARDWARE-SUPPORTED PER-PROCESS METADATA TAGS (硬件支持的每过程的元数据标签)的美国专利申请No.13/712,878 (代理人案号HICAP010)中描述。

在一个实施例中,在指定可替换存储器区324的物理地址的读取 时,存储器控制器314读取与该地址相对应的转译线路,且然后读取 由转译线路指定的数据线路,并允许处理器302继续使用数据线路内 容,该数据线路内容在此时典型地被加载到处理器LLC 312中。存储 器控制器映射机制存储该转译线路,从而随着数据线路被迁移到 DRAM 322而修订该高速缓存转译线路中的PLID。然后,存储器控制 器生成一旦所有PLID已被改变为指向DRAM 322中的数据线路就执 行页重映射的指示。转译线路也可以被标记为经修改,因此,其然后 被写入到DRAM 322中的关联转译线路,该关联转译线路对应于与被 迁移的页相关联的物理地址。在此时,处理器302对该存储器页中的 任何线路的访问由DRAM 322中的关联页服务,从而提供传统主存储 器性能。操作系统被通知了该页迁移,因此可以确保所有过程知道该 迁移以确保一致性。一旦与新页相对应的转译线路已被初始化到正确 数据线路处的点或被加标签以指示这是未决的,就可以发生页重映 射,假定处理器检验该“未决”标签。

使用细粒度级别的重映射的混合主存储器。图4A是存储器控制 器和混合存储器重映射的构思图示。混合存储器304耦合到转译线路 404,并且混合存储器304包括DRAM 322和NVRAM 324。转译线路 404可以例如驻留于LLC 312中。转译线路404包括多个PLID,例如 PLID 424和PLID 434。在对与具有关联转译线路PLID 424的NVRAM 324中的线路422中存储的状态相对应的物理地址的访问时,存储器 控制器314检索所述状态,(A)分配该内容在DRAM/易失性存储器 322中的空间,被示为线路432,(B)将经修订的转译线路PLID 434 相关联,以及(C)利用经修订的转译线路PLID 434更新处理器的存 储器重映射,以指示与所述物理地址和对应于相同内容线路432的其 他地址相对应的内容现在位于DRAM/易失性存储器322中。

因此,如果内容被修改且从处理器302(例如,LLC 312)写回, 则其被写回到DRAM 322中的线路432。类似地,如果其被重新读取, 则从DRAM 322中的线路432检索数据。

混合存储器预取。图4B是用于存储器控制器和混合存储器重映 射的预取的构思图示。在一个实施例中,如果所访问的线路422被读 取,则与允许处理器针对该所访问的线路422继续执行的同时,将与 所访问的线路422邻近的线路452从可替换存储器技术414传送到 DRAM 412,用于转译线路PLID 454的重映射被相应地更新,如前所 述。数据线路的该乐观传送或“预取”识别对数据的访问的正常空间 位置。

在一个实施例中,使所述乐观预取取决于一个或多个因素,诸如: 由页表提供的标签、该访问是否针对页的第一线路、以及存储器系统 中维持的其他元数据。

页预取。在一个实施例中,邻近线路454被标识为与所访问的线 路相同的存储器“页”中的那些线路。不论是物理的还是虚拟的,存 储器都通常被组织为页。虚拟存储器将来自传统四千字节页的页映射 到两兆字节的“巨大”页。在一个实施例中,预取四千字节页将需要 64个PLID或四个转译线路。因此,该预取可以被认为是从NVRAM 到DRAM的翻页过程。

在一个实施例中,当内容的页已因此被迁移到DRAM 322时,存 储器控制器314提供指示,使访问该内容的每个过程的页表被更新为 直接参考DRAM 322中的该页。在这种实施例中,存在与由DRAM 322 提供的主存储器的部分相对应的一系列物理存储器地址。

在一个实施例中,一旦具体的所请求的存储器线路已被提供给处 理器,存储器控制器重映射就允许处理器继续,而不是等待整个页被 迁移到DRAM 322。由存储器控制器提供的重映射容量可能是有限的, 这是由于一旦页已经被完全迁移,更全面的重映射就由传统虚拟存储 器页表提供。由于线路访问和重映射是以硬件(并且不是例如由操作 系统或驱动器以软件)处理的,因此处理器可以继续而不将所谓的页 故障陷阱的代价引发到操作系统中来处理页迁移。因此,从可替换存 储器技术到DRAM的页迁移引发了对应用性能的相对较小惩罚,尤 其是与传统翻页方法相比。

例如,在页故障时,存储器控制器314:第一,暂停处理器;第 二,确定DRAM 322中的物理页地址来使用;第三,生成、重映射或 传送该页的转译线路到LLC,使得这些线路中的每一个中的每个条目 指代DRAM线路或故障地址;第四,传送由故障地址的转译条目参 考的数据线路,从而将该条目重映射到DRAM 322;第五,允许处理 器重新开始;以及第六,可选地,预取与相同页相关联的接下来的线 路。因此,取代在4k个页的情况下等待64个线路,处理器仅需要等 待一个(高速缓存)线路。这在2M个页的情况下进一步有利,其中, 取代等待32000个线路,处理器仅需要等待一个线路。在一个实施例 中,访问具有故障地址的转译线路的处理器等待直到存储器控制器 314已将对应数据线路传送到DRAM 322且相应地更新该转译线路为 止。在一个实施例中,操作系统提供DRAM 322中的自由页的队列以 在第二步骤中使用。

图5是混合存储器重映射的虚拟和物理存储器翻页的构思图示。 在图5中描绘了虚拟地址空间502和物理地址空间504并示出了对应 的页映射。例如,示出了虚拟页1(506),其中,标记“NV”指示 虚拟页1映射到非易失性物理存储器。在这种情况下,虚拟页1映射 (508)到物理页5188(510)。类似地,虚拟页3(512)映射到易 失性物理存储器,并且因此,标记被设置成“V”。虚拟页3映射到 物理页2038(516)。其他标签可能包括页是只读的还是可读写的的 指示。在一个实施例中,非易失性或易失性的指示在物理存储器地址 中编码。例如,比指定物理地址更大的所有物理地址被指定为对应于 非易失性存储器。

因此,当虚拟页1(506)上的想要的线路被访问时,由于对应物 理页5118处于NVRAM中,因此存储器控制器传送想要的线路,释 放处理器,并可以继续预取页的剩余部分,从而最终将其拷贝到 DRAM中的物理页1028(518)。

写回。在一个实施例中,在对可替换存储器技术中存储的线路的 写访问时,重映射指示写回要在DRAM位置中发生。

写入陷阱。在一个实施例中,可替换存储器区中的页由操作系统 /虚拟存储器硬件进行写入保护,使得写入导致软件处理该情况的陷 阱,从而简化了硬件支持。

用于减少写入的脏标签。在一个实施例中,仅在从LLC驱逐时, 重映射状态中的转译线路中的数据线路被写(回)到DRAM。元数据 标签之一可以用于指示线路是否已被写入(即,脏)。因此,在页迁 移回到可替换存储器区时,仅脏线路和转译线路需要被写入到该可替 换存储器区中。这因而减少了写入的数目并因此减少了对页进行迁移 所需的时间。

OS页迁移。在一个实施例中,页调出或页迁移由操作系统按照 页调出的传统操作系统方法来处理。即,其对DRAM页进行写入保 护,从而在必要时更新可替换存储器区中的页,且然后将对DRAM页 的页表参考重映射回到可替换存储器区中的页。

NVRAM硬件拷贝机制。在一个实施例中,存储器硬件拷贝机制 执行经修改的数据回到可替换存储器区324的传送,从而减小处理器 /操作系统上的开销。

NVRAM损耗均衡。在一个实施例中,使用转译线路,可以将要 在可替换存储器区中写入的数据线路写入到被选择为实现可替换存 储器的损耗均衡的存储器位置中,如一些这种技术所需的那样。

NVRAM大块擦除/改造。在一个实施例中,可以以便于可替换存 储器的块的大块擦除或改造的方式写入新数据线路。例如,可以按照 基于日志的结构来顺序地写入新数据线路,从而允许旧线路的整个块 被一次擦除,例如诸如当日志被截短时。

重复删除。在一个实施例中,使用转译线路,可以在页之间共享 数据线路。数据线路可以还且进一步在DRAM中被重复删除,例如, 如在如美国专利7,650,460中描述的HICAMP中使用的那样。除了使 DRAM 322能够提供相同数目的DRAM芯片的更大容量外,页迁移代 价减小,这是由于不需要传送任何重复线路。在一个实施例中,使用 转译线路,在可替换存储器区324中重复删除数据线路。

在一个实施例中,在DRAM区322和可替换存储器区324二者中 有重复删除的情况下,通过检测要迁移的页中的线路已经存在于 DRAM区322中来减少要写入以从后者迁移到前者的线路的数目。类 似地,在页从DRAM 322迁移到可替换存储器区324时,通过该重复 删除来减少写入的数目。例如,如果要被迁移到可替换存储器区324 的页的所有数据线路已经存在于该后者区中,则仅转译线路需要被写 回到该可替换存储器区324。因此,重复删除减少了向可替换存储器 区324的写入,从而在其已经限制写入耐久性的情况下增加该存储器 的寿命。其还减少了对页进行迁移所需的带宽和时间。这些优点是除 由重复删除提供的增加的效率和容量之外的。

事务更新支持。图6是混合存储器重映射如何提供事务更新支持 的构思图示。在一个实施例中,可以使存储器的部分持续存在作为在 “原子事务”的数据库意义上提交事务的一部分。即,应用提供提交 指示612,导致存储器在应用一致性的点处持续存在。在实施例中, 通过将存储器的经修改的线路写入到可替换存储器区324中的日志区 602来在事务上使存储器的该部分持续存在。对于这些页,可以在没 有写回的情况下立即改造所提交的页,这是由于其可以是从日志重构 的。可以通过中止事务来改造未提交的页。在期望的实践中,该后者 方法仅在极限存储器强迫下被采用,例如,耗尽存储器。因此,如图 6中所示,映射到然后被修改的数据线路608的PLID 606生成包括 PLID和其他元数据的日志条目610。可以在NVRAM 324中镜像614 经修改的数据线路608。可以将其他顺序改变记录到日志,例如撤销 或重做,其中,单个原子动作是提交记录612到日志的写入。撤销日 志包含在时间上向后延伸的顺序撤销数据,正如重做日志包含在时间 上向前延伸的顺序重做数据那样。撤销和重做日志可以不失一般性地 被一起或分开存储,且在图6中被示为日志区602。

在一个实施例中,使用重复删除,并且该日志602对硬件机制来 说在生成上是简单的,作为段的当前状态与该段的从事务开始时间起 的快照之间的差异。特别地,硬件机制可以扫描被设置为在每个PLID 的转译线路中存储的“经修改的”元标签,或另外将该转译线路与从 事务开始起的快照中的对应线路进行PLID比较。在一个实施例中, PLID可以指代实际存储的物理线路的标识。

在一个实施例中,被写入到可替换存储器区324的数据通常显著 减少,原因在于下述二者:线路可以对应于可替换存储器区中已经存 储的线路内容;以及一个线路是在线路单元中写回,而不是页单元。 当页单元大于四千字节(诸如两兆字节)时,这被期望是特别有益的。 此外,对于一些存储器技术,日志作为顺序地填满存储器块的写入比 如DRAM 322所支持的向存储器的随机写入高效得多。

该日志写回还可以支持原子事务以使用标准预先写入日志技术 来更新存储器。即,可能从若干不同页,将经修改的线路写入到日志 602,并且然后在提交时,将提交记录612写入到日志602作为单个 原子动作,指示改变被提交。

使用持久可替换存储器技术324,事务更新意指存储器状态在崩 溃之后被留在一致状态中的概率增加,这是由于在崩溃时进行中的事 务更新被中止。因此,在应用和系统更新存储器的大部分时,在除过 程栈外的一些情况下,可以依赖于持久存储器状态是一致的,允许系 统在崩溃之后重新启动并在崩溃之前开始使用该状态。该方面可以避 免由具有大主存储器的系统在其需要从盘恢复其状态的情况下所需 的长恢复时间。这还最小化了由于软件崩溃而破坏的存储器状态的风 险。对软件崩溃的一个关注是:应用可以处于在该时间处更新数据结 构中间。原子更新机制意味着:改变被有效地撤销,从而将数据结构 留在先前一致状态中。

在一个实施例中,应用可以对页进行请求截至指定时间,并使存 储器系统提供该页。在一种情况下,其将该指定时间与在时间上最接 近于期望时间的当前DRAM存储322的对应页的指定时间进行比较。 如果不存在这种页,则其对可替换存储器区324中的来自检验点状态 的页进行实例化。如果该指定时间较早,则其可以使用撤销日志602 将当前页内容修订回到该较早时间。如果该时间较晚,则其可以使用 重做日志602将当前页内容修订到该较晚指定时间。在这些情况中的 每一种下,从可替换存储器324或DRAM中的另一实例创建该页的 DRAM 322实例,并且然后,根据日志来修订该实例。

在一个实施例中,硬件存储器控制器314执行该页的回滚或前滚 直到该指定时间,从而避免使处理器引发以软件执行这些动作的高速 缓存中断。

在一个实施例中,如果检验点中的页对应于该指定时间,则应用 可以在没有页故障的情况下如上所述的那样访问该页,其中,处理器 和页表指示页上的时间戳。

在一个实施例中,支持页之间或使用重复删除的线路共享,并且 相同段页仅在不同时间点处的多个拷贝很可能包含相当多的公共数 据,允许重复删除机制减少针对这些操作的存储器需求。

在一个实施例中,页的当前提交状态被周期性地写入到可替换存 储器区324,将这一点记录为该页的检验点截至其提交时间,从而限 制对页进行重构的代价直到当前时间。

在一个实施例中,使用重复删除,使得仅转译线路和未在可替换 存储器区324中已经存在的任何数据线路被写入作为写入该页的该检 验点的一部分。

在一些可替换存储器技术(诸如,闪存)中,日志602的使用受 益于块读取相对于更小读取的效率。即,在单个块读取中读取多个日 志记录是高效的。类似地,日志结构意味着:一旦日志的内容已通过 更新而归入到可替换存储器区中的实际页内容,就可以在稍后的时间 处擦除或重写日志的整个块。

在一个实施例中,撤销/重做日志602包含撤销/重做数据作为与 线路边界对准的数据线路。因此,提交状态的数据线路已经被存储在 可替换存储器区中,因此仅转译线路需要被写入,在一些情况下直到 日志的该部分需要被写入。在一个实施例中,NVRAM 324支持共享 或重复删除的线路,并且因此,日志包含参考与关联于更新的撤销线 路和重做线路相对应的数据线路的元数据,避免在日志与NVRAM 324的其余部分之间重复删除该数据。然后,可以通过确保被指示为 在要截短的日志的部分中修改的每个页的转译线路已被更新至在重 做日志中指定的数据线路来截短日志。

在事务页的情况下,在页重构时对日志的顺序访问可以最小化一 些可替换存储器技术所需的块读取的惩罚。此外,使存储器控制器执 行页构造减小了该重构的等待时间和开销。

图7是图示了混合存储器系统的框图。混合存储器304包括至少 第一部分322,其中,与混合存储器304耦合的硬件存储器控制器314 被配置为(702)使用转译线路来访问混合存储器,其中,该转译线 路将第一物理地址映射到第一部分322中的第一线路。所述映射提供 第一线路在第一部分中不直接可访问(例如,经由预留值)的指示 (704)。该预留值可以是第一部分中的预留地址,诸如针对第一部 分的最大PLID,或者在如美国专利申请No.13/712,878中所述的元数 据标签的意义上,其可以是转译线路中的标签。例如,控制器134还 可以被配置为提供第二物理地址映射到在第一部分322中不直接可访 问的第二线路的指示。

在一个实施例中,转译线路是“子页”,即,物理页的一部分但 不是整个物理页。以虚拟存储器页或更大的粒度映射的物理地址也是 可能的,尽管比较而言,相比于仅使用虚拟存储器机制来重映射不那 么有益。

混合存储器可以进一步包括第二部分324,其中,第一部分322 具有与第二部分324不同的特性(例如,更高的性能)。硬件存储器 控制器314可以进一步被配置为至少部分地基于指示来重映射转译线 路,其中,重映射的转译线路将第二物理地址映射到第一部分中的线 路。第二线路可以使用相同或分离的数据结构来确定其映射。硬件存 储器控制器314可以进一步被配置为从辅助模块(例如,辅助控制器)、 操作系统中的操作模块或其他硬件/软件模块接收转译线路的重映射。 在一个实施例中,第二线路也可以是未映射的,使得当关联处理器试 图访问它时,发生其他干预。重映射可以包括:将与第二物理地址相 关联的线路内容传送到第一部分322。

硬件存储器控制器314可以进一步被配置为在提供指示之前检测 对第二物理存储器地址的访问。如上所述,硬件存储器控制器可以进 一步被配置为预取其他数据线路和/或重映射与虚拟存储器页相关联 的其他线路。重映射虚拟存储器页许可关联处理器在转译线路将至少 一个物理地址映射到第一存储器中的线路之后继续,其中,在一个实 施例中,许可关联处理器继续包括:在不引发关联操作系统中的页故 障陷阱的阻塞代价的情况下许可。

如上所述,硬件存储器控制器314可以进一步被配置为实现事务 更新支持和/或支持将存储器的经修改的线路写入到第二部分324中 的日志区602。可以在日志区602中记录写回,并且硬件存储器控制 器314可以进一步被配置为维持撤销日志区和重做日志区。

在一个实施例中,以硬件支持混合主存储器304包括:使用存储 器控制器314以至少部分地通过转译多个物理存储器地址来进行重映 射,每一个物理存储器地址与多个当前内容位置相关联;将存储器控 制器314与混合主存储器304相关联,其中,混合主存储器包括主要 存储器技术区322和可替换存储器技术区324;将存储器控制器314 与处理器302相关联;在可替换存储器技术区324中当前存储的物理 地址的读取时,将与可替换存储器技术区324中的物理地址相对应的 线路422传送到处理器302,并更新映射状态404以将该线路与主要 存储器区相关联(以便指示其传送位置);以及在从处理器302写回 数据线路时,根据重映射来执行写入432。

在一个实施例中,当对页的第一参考被存储在可替换存储器区 324中时,其使虚拟地址被重映射到与主要存储器区322相关联的物 理地址(并因此被重映射到新转译线路),数据线路被定位在LLC 312 中(即,被传送或被确定为已经存在,如针对重复删除可能发生的那 样),并且与该线路相关联的新转译线路(例如,如果其仅被定位在 LLC 312中)被更新以指示线路与主要存储器区322相关联。在该关 联中,可以为:仅当从LLC 312驱逐该线路(如果有过的话)时,才 确定主要区322中的实际线路位置。在驱逐有发生之前,可以丢弃该 页,因此,从不给该线路分配主要存储器区中的空间。此外,针对重 复删除,在驱逐时,存储器控制器314可以确定线路已经存在于主要 存储器区322中并且可能不需要实际上将线路写入到主要存储器区 322。贯穿本说明书,在不限制的情况下,短语“更新映射状态”包 括处理该场景。

在一个实施例中,传送的单元是存储器线路。一个或多个转译线 路可以至少部分地被用于重映射,每一个转译线路潜在地重映射多个 数据线路。在一个实施例中,另一转译线路被更新以指示关联数据线 路在主要存储器技术区中的可用性。可以在对可替换存储器技术区 324中的线路的参考之后将由另一转译线路参考的附加数据线路预取 到主要存储器技术区322中。在一个实施例中,在转译线路之间提供 线路共享,提供线路粒度重复删除,和/或提供事务更新支持。

其他混合存储器方案。先前混合存储器(诸如,如Dhiman等人 所描述的混合PRAM/DRAM(“PDRAM”))不同于本说明书中以 若干显著方式描述的混合存储器。第一,PDRAM使用虚拟地址到物 理地址的传统虚拟存储器页粒度映射来映射对DRAM或PRAM的 CPU访问,而本说明书中描述的混合存储器可以使用物理地址到 DRAM 322中或可替换存储器技术324中的物理线路的细粒度(例如, 高速缓存线路)映射。第二,作为其主要创新之一,PDRAM需要“访 问映射”,其唯一目的是跟踪向页的写入频率,以便当写入频率高于 适于PRAM的频率时,提供用于在PRAM与DRAM之间对页进行“页 交换”的准则,而本说明书中描述的混合存储器可以不需要这种访问 映射。第三,PDRAM有必要涉及数据的整个页在DRAM与PRAM之 间的传送,或者反之亦然,而本说明书中描述的混合存储器可以允许 页的线路部分的传送,可能根本没有页数据移动。这些区别的出现部 分地由于PDRAM的主要焦点在于降低DRAM的功率消耗而不是增 加主存储器的总体容量。

使用细粒度级别的重映射的混合主存储器的益处

使用例如图3中的架构的计算机可以具有使用混合存储器304的 多太字节的主存储器,其中,其混合性质对软件来说很大程度上是透 明的。可替换存储器技术324具有基本上比DRAM 322更高的密度。 例如,八GB DRAM双列直插式存储器模块(“DIMM”)可以被在 容量上有50倍增加的400GB闪速DIMM替换。在封装中还存在一些 显著益处,以在DIMM上具有闪速而不是需要SSD或PCI卡的空间。 类似益处适用于RRM、PCM和其他可替换存储器技术。

随着微电子技术随时间改进,LLC变得更大并且每处理器的核的 数目增加,使得LLC未中的频率被期望得更低,因此,越来越可行的 是,简单地暂停正在访问可替换存储器324中的数据的核,直到其已 经被传送到DRAM 322为止。该方法消除了在对可替换存储器区324 中的状态的访问时将陷阱带到操作系统中的软件开销和等待时间。

使用如上所述的事务更新,服务器崩溃和恢复的常见情况可以是 更快,这是由于主(混合)存储器304的大块可以被事务确保为一致 且不需要恢复。即,混合存储器的大块将处于NVRAM 324中,因此 将仅在恢复之后需要高速缓存加热以回到完全性能。因此,在由于冷 高速缓存而降低的性能的一些实例中,从崩溃到恢复的时间将比在没 有混合存储器的情况下更低。

在一个实施例中,使用转译线路,使得:

1.对于读取,针对至多从NVRAM 324读取两个线路(即,转译 线路和所请求的数据线路)的时间暂停核,从而避免页故障的代价/ 延迟并提供相对于盘的可预测性。这可以足够快和/或足够罕见,以使 得系统避免在读取时处理器核上的软件上下文切换,不同于页故障。 在可替换实施例中,处理器可以在第一次访问时采取页故障,且一旦 所需数据线路可用就重新开始;

2.在若干高速缓存线路上分摊对NVRAM 324的访问的代价。即, 在一些实施例中,在转译未中之后,设法使整个页在DRAM等待时 间处针对后续LLC请求可用;以及

3.通过线路的重复删除来减少带宽/等待时间。

不失一般性。尽管已经就使用DRAM 322和可替换存储器技术(诸 如闪速324)的实施例而言描述了本公开,但是不失一般性,可以利 用其他技术来实施本公开。例如,所公开的混合存储器可以被推广到 在主存储器内具有两种不同存储器技术的情况,而不必须是易失性 322和非易失性324。还可以将上述内容与多于两种存储器技术一起 使用,其中,重映射一般是在合适时间段内将数据迁移和重映射到最 适于其在任何给定时间点处的特定动态使用的技术。

尽管出于清楚理解的目的相当详细地描述了前述实施例,但是本 发明不限于所提供的细节。存在实现本发明的许多可替换方式。所公 开的实施例是说明性的而非限制性的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号