抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > 在基于相变存储器的存储设备中减轻写入放大的方法和系统与流程

在基于相变存储器的存储设备中减轻写入放大的方法和系统与流程

时间:2019-08-30 18:33:22

相关推荐

本公开总体上涉及数据存储领域。更具体地,本公开涉及用于减轻基于相变存储器的存储设备中的写入放大的方法和系统。

背景技术:

互联网和电子商务的激增继续创造了大量的数字内容。已经创建了各种存储系统来访问和存储这些数字内容。一种这样的存储系统使用相变存储器(pcm),这是一种非易失性随机存取存储器。pcm使用特定类型的玻璃,并且可以在一个单元(或扇区)中容纳多个位。基于标准pcm的存储设备通常使用相对大的块或扇区大小(例如,4千字节(kb))来写入数据。在以小的块大小频繁地进行输入/输出更新的情况下,基于标准pcm的存储设备可能遭受显著的写入放大(例如,当实际写入到存储介质的信息量是打算写入的逻辑量的倍数时)。

例如,给定一个大小为4kb的扇区,并且只有128个字节的数据的单个更新(例如,写入),基于标准pcm的存储设备系统必须执行以下三个操作:1)从pcm中读出整个4kb扇区;2)用更新的128字节修改读出扇区;以及3)用更新的128字节写回整个4kb扇区。具有三个操作的单次更新可能会导致比直接覆写数据高2-3倍的延时。此外,所得到的写入放大具有32(即,4kb/128字节)的高值。假设pcm介质的使用寿命大约为10-7个程序周期(因为单元被写入10-7次后就磨损了),则基于标准pcm的设备的使用寿命可能是设计和部署存储系统的限制因素。因此,写入放大和较高的延时都会降低存储系统的效率。

技术实现要素:

一个实施例减轻基于相变存储器的存储设备中的写入放大。在操作期间,系统通过存储设备的控制器接收要存储在存储设备的相变存储器(pcm)中的数据。系统通过控制器将数据写入同一存储设备的易失性存储器的扇区,以获得扇区的更新部分。响应于检测到预定条件,系统将更新部分写入pcm。在一些实施例中,系统将更新部分写入pcm而不将整个扇区写入pcm。

在一些实施例中,扇区包括原始数据和原始奇偶校验位。系统通过以下步骤将更新部分写入pcm:将所述扇区的更新部分中的数据与对应的原始数据进行比较以获得第一差异;通过将零预先前置和附加到第一差异来对齐第一差异;对对齐的第一差异进行编码以获得第二差异;将原始奇偶校验位与第二差异进行比较,以获得新的奇偶校验位;以及将更新部分和新的奇偶校验位写入pcm。

在一些实施例中,预定条件基于以下一项或更多项:对于更新部分,达到预定超时或到期时间;达到易失性存储器的预定容量阈值;执行指令以将数据从易失性存储器写入pcm;功率损失;以及检测到用于将数据从易失性存储器写入pcm的预定时间间隔或频率。

在一些实施例中,将更新部分写入pcm是响应于确定更新部分的长度小于预定长度。

在一些实施例中,响应于确定接收到的数据的长度小于对应于与pcm的块大小的预定长度,系统将数据写入易失性存储器的扇区。此外,响应于确定接收到的数据的长度不小于对应于pcm的块大小的预定长度,系统将接收到的数据写入pcm。

在一些实施例中,在将更新部分写入pcm之前,系统:确定已被写入多个扇区的数据;将数据聚合到第二扇区;以及响应于检测到预定条件,将聚合数据写入pcm。

在一些实施例中,系统基于以下一项或更多项来确定已被写入多个扇区的数据:访问频率;预定的访问频率;优先映射算法;可观察条件;以及预定条件。

在一些实施例中,在将聚合数据写入pcm之前,系统:为聚合数据生成奇偶校验位;以及包括与聚合数据一起生成的奇偶校验位。

另一个实施例减轻了基于相变存储器的存储设备中的写入放大。在操作期间,系统通过存储设备的控制器接收读取数据的请求。该系统由控制器从存储设备的相变存储器(pcm)中检索所请求的数据,其中,所请求的数据已预先从同一存储设备的易失性存储器写入pcm中。响应于检测到预定条件,系统通过控制器将检索到的数据写入易失性存储器。

在一些实施例中,检索到的数据对应于pcm的第一扇区的第一部分。该系统通过以下操作将检索到的数据写入易失性存储器:确定易失性存储器的第二扇区,其中,第二扇区对应于第一扇区;将第一部分写入第二扇区;基于第一部分的长度和第二扇区的长度,将第一部分与第二扇区对齐,以获得新的码字;控制器从新的码字返回第一部分。

在一些实施例中,响应于确定所请求的数据没有存储在易失性存储器中,系统从pcm检索所请求的数据。此外,响应于确定所请求的数据被存储在易失性存储器中,系统从易失性存储器返回所请求的数据。

在一些实施例中,预定条件基于以下一项或更多项:执行缓存算法;检测用户生成或主机配置的条件;确定所请求的数据将被写入易失性存储器;分析与数据访问相关的统计数据;确定所请求的数据被请求或访问的可能性大于预定阈值;以及与所请求的数据相关的可观察条件。

附图说明

图1示出了根据本申请的实施例的有助于减轻基于相变存储器(pcm)的存储设备中的写入放大的示例性环境。

图2示出了根据本申请的实施例的用于在易失性存储器中累积更新的用户数据并将更新的用户数据写入pcm的示例性流程。

图3a呈现了一个流程图,该流程图示出了根据本申请的实施例的用于在基于pcm的存储设备中写入数据的方法。

图3b呈现了一个流程图,该流程图示出了根据本申请的实施例的用于在基于pcm的存储设备中写入数据的方法。

图4呈现了一个流程图,该流程图示出了根据本申请的实施例的用于确定用于将数据刷新到pcm的预定条件的方法。

图5a呈现了一个流程图,该流程图示出了根据本申请的实施例的用于在基于pcm的存储设备中读取数据的方法。

图5b呈现了一个流程图,该流程图示出了根据本申请的实施例的用于在基于pcm的存储设备中读取数据的方法。

图6a示出了根据本申请的实施例的基于统计上不均匀的热分布的易失性存储器中的用户数据的示例性分布。

图6b示出了根据本申请的实施例的基于统计上均匀的热分布和用于重新混洗数据的方法的用户数据在易失性存储器中的示例性分布。

图7示出了根据本申请的实施例的有助于减轻基于相变存储器(pcm)的存储设备中的写入放大的示例性计算机系统。

图8示出了根据本申请的实施例的有助于减轻基于相变存储器(pcm)的存储设备中的写入放大的示例性装置。

在附图中,相似的附图标记指代相同的附图元素。

具体实施方式

呈现以下描述以使本领域技术人员能够制造和使用实施例,并且在特定应用及其要求的背景下提供以下描述。对于本领域技术人员来说,对所公开的实施例的各种修改将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文限定的一般原理可以应用于其他实施例和应用。因此,本文所描述的实施例不限于所示的实施例,而是被赋予与本文所揭示的原理和特征一致的最宽范围。

概述

本文描述的实施例通过将易失性存储器以及用于管理数据路径的控制器模块一起添加到基于pcm的存储设备中来解决减轻基于pcm的存储设备中的写入放大的问题。基于标准pcm的存储设备通常使用相对大的块或扇区大小(例如,4kb)来写入数据。然而,在使用小块大小的频繁输入/输出更新的情况下,基于标准pcm的存储设备可能会遭受明显的写入放大。例如,在给定4kb扇区和仅128个字节的更新的情况下,基于标准pcm的存储设备的写入放大倍数为32(4,024字节/128字节)。写入放大会导致pcm介质的整体寿命缩短。此外,由于基于标准pcm的存储设备中的单个更新可能需要三个操作(即,读出、修改和写回),因此基于标准pcm的存储设备可能比直接覆写操作产生更高的延时。写入放大和增加的延时都会降低存储系统的效率。

本文描述的实施例通过在pcm设备中包括易失性存储器(例如dram),有助于减轻基于pcm的存储设备(“pcm设备”)中的写入放大。pcm设备在其内部dram中递增地存储并更新较小的数据块,并基于用于将数据从dram刷新到pcm的预定条件,以单个操作(例如,作为使用纠错码(ecc)编码的单个码字)将更新后的块写入pcm介质。pcm设备还可以包括控制器,该控制器管理去往/来自易失性存储器(例如,dram)和pcm介质的数据路径,以及功率损耗检测电路。控制器可以确定预定的刷新条件,该刷新条件可以基于例如超时、数据缓冲器的容量、显式主机指令、功率损耗和更新频率。

因此,本文描述的实施例提供了一种改善存储系统的效率的系统,其中,所述改进在根本上是技术上的。改进的效率可以包括减轻与基于pcm的存储设备相关的输入/输出操作的写入放大。该系统提供了一种针对减少输入/输出任务中的延时的技术问题的技术解决方案(例如,基于pcm的存储设备,该存储设备将易失性存储器和pcm介质放置在同一存储设备上,并包括控制器模块以管理数据路径),增加了pcm介质的寿命,并提高了系统的整体效率。

术语“存储服务器”是指可以包括多个驱动器和多个存储器模块的服务器。

术语“基于相变存储器的存储设备”或“基于pcm的存储设备”或“pcm设备”是指一种设备,如本文所述,其包括易失性存储器、控制器模块和同一设备上的pcm。现有技术的pcm设备在本文中被称为“基于标准pcm的存储设备”。

术语“易失性存储器”是指在断开电源(例如dram)后会迅速丢失数据的计算机存储。

术语“相变存储器”或“pcm”是指一种非易失性随机存取存储器,其可以用于长期持久性的计算机存储。

术语“ecc-编码”是指基于纠错码的数据编码,而术语“ecc-解码”是指基于纠错码的数据解码。

术语“pcm控制器”是指位于基于pcm的存储设备中的模块,并且包括控制对存储设备上的到/从pcm的数据访问的逻辑。术语“dram控制器”是指位于pcm控制器中的模块,并且包括pcm控制器控制的在同一存储设备上的控制到/从易失性存储器(例如,dram)的数据访问的逻辑。在本文描述的实施例中,控制器位于易失性存储器和pcm之间的数据路径中。dram控制器还包括数据缓冲器,数据被写入其中以进行临时存储,然后被写入或刷新到pcm中。控制器的数据缓冲器还可以包括由控制器处理的数据,包括被比较、对齐和ecc编码/解码的数据,如下面关于图2和3b所描述的。

示例系统

图1示出了根据本申请的实施例的示例性环境100,该示例性环境100有助于减轻基于相变存储器(pcm)的存储设备中的写入放大。环境100可以包括与用户104相关联的计算设备102。计算设备102可以包括例如平板计算机、移动电话、电子阅读器、膝上型计算机、台式计算机或任何其他计算设备。计算设备102可以经由网络110与服务器112、114和116通信,服务器112、114和116可以是分布式存储系统的一部分。服务器112-116可以包括存储服务器,该存储服务器可以包括基于相变存储器(pcm)的存储设备。例如,服务器116可以包括与pcm控制器124通信的cpu122。pcm控制器124可以与相变存储介质(诸如pcm132、134、136、138、140和142)通信,并且可以进一步包括dram控制器126。dram控制器126可以与易失性存储器(诸如dram128和130)通信,并且可以进一步包括数据缓冲器(未示出)。

通过在基于pcm的存储设备116中包括cpu122、dram控制器126以及dram128和dram130,本文所述的实施例可以避免通过主机结构(例如外围组件接口快速(pcie)总线)的频繁数据传输。dram控制器126可以直接从本地pcm132-142读取旧数据到其自己的数据缓冲器中,进行修改,并将数据写回。因为这些操作的全部发生在基于pcm的存储设备116中,所以系统可以避免与通过pcie总线传输和读取数据相关的成本。

因此,如本文所述的实施例中,服务器116描绘了基于pcm的存储设备的示例性架构。下面结合图2描述一般的数据流。下面结合图3a、图3b和图4描述写操作中的示例性数据流,并且下面结合图5a和图5b描述读操作中的示例性数据流。

从易失性存储器到pcm的数据处理流程

图2示出了根据本申请的实施例的用于在易失性存储器中累积更新的用户数据并将更新的用户数据写入pcm的示例性流程。为了确保存储的数据的安全性,系统可以在将数据存储在pcm中之前对数据执行纠错码(ecc)编码。在时间t0210,易失性存储器(例如,dram)中的数据扇区可以包括原始用户比特202和原始奇偶校验位204。原始奇偶校验位204可以是在ecc编码时被添加到原始用户比特202的比特。

在本文描述的实施例中,系统可以在处理数据并将经处理的数据刷新到pcm之前递增地更新易失性存储器中的单个扇区中的块。例如,在时间t1211,可以将用户数据220写入扇区的一部分。在时间t2212,可以将用户数据222写入该扇区。在时间t3213,可以将用户数据224.1和224.2写入该扇区。写入该扇区的新用户数据只覆写该扇区的相应部分。因此,在时间t4214,该扇区包括不变部分240、更新部分242和不变部分244。更新部分242可以包括:用户数据224.1;以及用户数据230(其是用户数据220的未被后续用户数据覆写的部分);用户数据224.2;用户数据232(其是用户数据222的未被后续数据覆写的部分)。

系统可以检测预定条件以将更新部分从dram写入pcm。下面结合图4描述示例性条件。系统可以将更新部分242与(原始用户比特202的)原始用户比特250的对应部分进行比较,以获得用户增量260(通过xor运算236和结果252)。因此,在时间t5215,用户增量260是原始用户比特250与更新部分242之间的差。

在时间t6216,系统可以将用户增量260与原始扇区大小对齐(对齐功能252)。例如,基于用户增量260的长度和原始用户比特202的长度,系统可以将零预先前置和附加到用户增量260,这形成了向量264(或对齐并更新的用户比特264)。向量264可以包括对齐部分266、用户增量260和对齐部分268。系统可以对向量264进行编码(通过编码操作270)以获得奇偶校验增量272。随后,系统可以将整个更新的扇区(包括附加在向量264上的奇偶校验增量272)写入pcm介质。

因此,通过在内部dram中累积小块大小的用户更新,并且基于预定条件通过将累积的块刷新到pcm,本文描述的实施例提供了一种基于pcm的存储设备,该存储设备有助于减轻写入放大,并且因此导致更高效的存储系统。

写操作期间的示例性通信

图3a呈现了流程图300,其示出了根据本申请的实施例的用于在基于pcm的存储设备中写入数据的方法。在操作期间,系统通过存储设备的控制器接收要存储在存储设备的相变存储器(pcm)中的数据(操作302)。如果数据的长度不小于4kb(决策304),则系统将整个4kb的数据单元写入pcm(操作306),并且操作在图3b的操作342处继续。如果数据的长度小于4kb(决策304),则系统通过控制器将数据写入同一存储设备的易失性存储器的扇区中,以获取该扇区的更新部分(操作308)。系统确定更新部分是否替换了数据的先前版本(决策310)。如果不是,则系统等待接收输入数据以进行输入/输出合并(操作312),然后操作返回到操作302。

如果系统确实确定更新部分替换了数据的先前版本(决策310),则系统通过控制器将扇区的逻辑地址和更新部分的偏移量映射到pcm的物理块地址(操作314)。系统通过覆写先前版本来累积扇区中的更新部分和任何其他更新部分(操作316)。如果系统未检测到将数据从易失性存储器刷新到pcm的预定条件(决策318),则操作返回到操作302。如果系统确实检测到将数据从易失性存储器刷新到pcm的预定条件(决策318),则操作将继续进行,如图3b的标签a所描述的。

图3b呈现了流程图330,其示出了根据本申请的实施例的用于在基于pcm的存储设备中写入数据的方法。在操作期间,系统将扇区的更新部分中的数据与对应的原始数据进行比较以获得第一差异,其中,该扇区包括原始数据和原始奇偶校验位(操作332)。系统通过将零预先前置和附加到第一差异来对齐第一差异(操作334)(例如,基于第一差异的长度和扇区的长度)。系统对对齐的第一差异进行编码以获得第二差异(操作336)。系统将原始奇偶校验位与第二差异进行比较以获得新的奇偶校验位(操作338)。系统将更新部分和新的奇偶校验位写入pcm(操作340)。系统验证数据已安全地写入pcm(操作342),然后操作返回。

检测从将数据dram刷新到pcm的触发条件

图4呈现了流程图400,其示出了根据本申请的实施例的用于确定将数据刷新到pcm的预定条件的方法。如果系统对更新部分达到预定的超时(决策402),则系统将数据缓冲器中的更新部分写入pcm(操作412)。如果不是,并且如果系统达到易失性存储器的预定容量阈值(决策404),则系统将数据缓冲器中的更新部分写入pcm(操作412)。如果不是,并且如果系统确定执行特定的指令(例如,来自主机)(决策406),则系统将数据缓冲器中的更新部分写入pcm(操作412)。如果不是,并且如果系统检测到(例如,通过基于pcm的存储设备中的功率损耗检测电路)功率损耗(决策408),则系统将数据缓冲器中的更新部分写入pcm(操作412)。如果不是,并且如果系统检测到用于刷新数据的预定时间间隔或频率(决策410),则系统将数据缓冲器中的更新部分写入pcm(操作412)。如果不是,则操作返回。

注意,尽管在流程图400中以特定顺序描绘了决策402-410,但是控制器可以在检测到由决策402-410表示的任何预定条件时执行操作412。

读取操作期间的示例性通信

图5a呈现了流程图500,其示出了根据本申请的实施例的用于在基于pcm的存储设备中读取数据的方法。在操作期间,系统通过存储设备的控制器接收读取数据的请求(操作502)。如果所请求的数据被存储在存储设备的易失性存储器中(决策504),则该操作如在图5b的操作528处所描述地继续。如果所请求的数据没有存储在存储设备的易失性存储器中(决策504),则系统由控制器从存储设备的相变存储器(pcm)中检索所请求的数据,其中,所请求的数据已经被预先从同一存储设备的易失性存储器中写入pcm(操作506)。如果系统确定不用检索到的数据来更新易失性存储器(决策508),操作如在图5b的操作528处所描述地继续。如果系统确实确定使用检索到的数据来更新易失性存储器(决策508),则操作在图5b的标签b处继续。

图5b呈现了流程图520,其示出了根据本申请的实施例的用于在基于pcm的存储设备中读取数据的方法。在操作期间,系统确定易失性存储器的第二扇区,其中,所检索的数据对应于pcm的第一扇区的第一部分,并且其中,第二扇区对应于第一扇区(操作522)。系统将第一部分写入第二扇区(操作524)。系统基于第一部分的长度和第二扇区的长度将第一部分与第二扇区对齐,以获得新的码字(操作526)。系统通过控制器从新的码字返回所请求的数据或第一部分(操作528),并且该操作返回。

显示数据分布的示例用例;重新混洗方法

图6a示出了根据本申请的实施例的基于统计上不均匀的热分布的易失性存储器中的用户数据的示例性分布600。分布600包括六个扇区:扇区a610包括原始用户比特611和原始奇偶校验位612;扇区b620包括原始用户比特621和原始奇偶校验位622;扇区c630包括原始用户比特631和原始奇偶校验位632;扇区d640包括原始用户比特641和原始奇偶校验位642;扇区e650包括原始用户比特651和原始奇偶校验位652;以及扇区f660包括原始用户比特661和原始奇偶校验位662。图6a中示出的统计上不均匀的热分布600导致本文所述的实施例的优选分布。用户数据的新块(即,更新后的数据)仅被写入到所描绘的六个扇区中的两个,这导致需要更少的整体写入操作(例如,刷新更新后的数据)。将三个新用户数据块(新数据a614、616和618)在原始用户比特611中写入到扇区a,如图所示并如上结合图2所述,覆写先前的位。三个其他的新用户数据块(新数据e654、656和658)在原始用户比特651中写入到扇区e,类似地如图所示覆写先前的位。

相反,即使在每个扇区中仅更新了一个小数据块,统计上均匀的热分布也会导致刷新扇区。图6b示出了根据本申请的实施例的基于统计上均匀的热分布的用户数据在易失性存储器中的示例性分布670以及用于重新混洗数据的方法。将六个新用户数据块写入六个扇区中的每个扇区:将新数据a672写入扇区a610;将新数据b674被写入扇区b620;将新数据c676写入扇区c630;将新数据d678写入扇区d640;将新数据e680写入扇区e650;并将新数据f682写入扇区f660。基于pcm的存储设备的控制器可以监测数据块a-f(即,672-682)的访问频率,并且例如通过使用优先映射算法为这些频繁更新的块分配新的物理位置。控制器可以将频繁访问的块聚合或分组到单个扇区中,并且只执行对pcm的一次写入,而不是效率低地(并且频繁地)对pcm进行六次单独的写入(每次更新仅针对一小块数据)。例如,控制器可以检测或确定频繁访问的数据块a-f,对这些确定的块a-f进行重新混洗(重新混洗操作690),并将它们作为重新混洗的用户数据691与新的奇偶校验位692一起放置在新的扇区m670中。这样,系统只执行一次写入,而不是六次写入,从而使存储系统效率更高,同时增加了延时和pcm的使用寿命。

采用这种优先映射算法的另一个优点是,系统不再需要等待块a-f中的任何一个块自然到期以将数据写入pcm。取而代之的是,系统可以将经常被访问的数据块放在一个物理位置,并且通过一次操作将整个数据块写入pcm。系统不仅可以基于访问频率而且可以基于控制器检测到的任何其他可观察或预先配置的条件来进行块选择(例如,优先映射算法)。

示例性计算机系统和设备

图7示出了根据本申请的实施例的有助于减轻基于相变存储器(pcm)的存储设备中的写入放大的示例性计算机系统700。计算机系统700包括处理器702、易失性存储器704、控制器705、相变存储器(pcm)706和存储设备708。计算机系统700可以是客户端服务机。易失性存储器704可以包括例如ram,其用作托管存储器,并且可以用于存储一个或更多个存储器池。pcm706可以包括通过控制器705访问的永久性存储。此外,计算机系统700可以与显示设备710、键盘712和定点设备714联接。存储设备708可以存储操作系统716、内容处理系统718和数据732。

内容处理系统718可以包括指令,所述指令在由计算机系统700执行时可以使计算机系统700执行本公开中描述的方法和/或过程。具体地,内容处理系统718可以包括用于接收和发送数据分组的指令,所述指令包括写入或读取数据的请求以及要被处理(例如,编码、对齐或比较)和存储的数据。内容处理系统718还可包括用于由存储设备的控制器接收要存储在存储设备的相变存储器(pcm)中的数据的指令(通信模块720)。内容处理系统718可以包括用于由控制器将数据写入同一存储设备的易失性存储器的扇区以获得该扇区的更新部分的指令(易失性存储器访问模块722)。内容处理系统718可以包括用于响应于检测到预定条件而将更新部分写入pcm的指令(条件检测模块728和pcm访问模块724)。

内容处理系统718可以包括用于处理要写入pcm的数据的指令,包括:将扇区的更新部分中的数据与对应的原始数据进行比较,以获得第一差异;以及通过将零预先前置和附加到第一差异将第一差异对齐;对对齐的第一差异进行编码,以获得第二差异;将原始奇偶校验位与第二差异进行比较,以获得新的奇偶校验位;将更新部分和新的奇偶校验位写入pcm(扇区处理模块726)。

内容处理系统718可以包括用于确定已经被写入多个扇区的数据以及将数据聚合到第二扇区中的指令(数据混洗模块730)。

内容处理系统718可以包括用于由存储设备的控制器接收读取数据的请求的指令(通信模块720)。内容处理系统718可以包括用于由控制器从存储设备的相变存储器(pcm)检索所请求的数据的指令(pcm访问模块724)。内容处理系统718可以包括用于响应于检测到预定条件而由控制器将所检索的数据写入易失性存储器的指令(条件检测模块728和易失性存储器访问模块722)。

数据732可以包括通过本公开中描述的方法和/或过程作为输入所需或作为输出生成的任何数据。具体而言,数据732可以至少存储:要写入、读取、存储或访问的数据;处理或存储的数据;编码或解码的数据;纠错码(ecc)编码或解码;码字;奇偶校验位;指示数据是否存储在易失性存储器或pcm中的指示符;块;扇区;逻辑块地址;物理块地址;易失性存储器中的数据缓冲器;将数据从易失性存储器刷新到pcm的条件;用于写入、存储或刷新数据的预定条件;功率水平;功率水平损失;扇区;扇区的一部分;数据;对齐部分;向量;比较结果的差异;超时;到期时间;数据缓冲器的容量的百分比;容量阈值;指令;阈值;超时;到期;频率;数据长度,块或扇区;访问频率;优先映射算法;重新混洗方法;可观察条件;和配置条件。

图8示出了根据本申请的实施例的有助于减轻基于相变存储器(pcm)的存储设备中的写入放大的示例性装置800。装置800可以包括可以经由有线、无线、量子光或电通信信道彼此通信的多个单元或装置。装置800可以使用一个或更多个集成电路来实现,并且可以包括比图8所示的单元或装置更少或更多的单元或装置。此外,装置800可以被集成在计算机系统中,或者被实现为能够与其他计算机系统和/或设备进行通信的独立设备。具体地,装置800可以包括执行与图7的计算机系统700的模块720-730类似的功能或操作的单元802-812,包括:通信单元802;易失性存储器访问单元804;pcm访问单元806;扇区处理单元808;条件检测单元810;以及数据混洗单元812。

在该详细描述中描述的数据结构和代码通常被存储在计算机可读存储介质上,该计算机可读存储介质可以是能够存储代码和/或数据以供计算机系统使用的任何设备或介质。所述计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、诸如磁盘驱动器、磁带、cd(光盘)、dvd(数字通用光盘或数字视频光盘)这样的磁和光存储设备,或者其他能够存储现在已知或以后开发的计算机可读介质的介质。

在详细描述部分中描述的方法和过程可以被实现为代码和/或数据,其可以被存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储在计算机可读存储介质内的方法和过程。

此外,上述方法和过程可以被包括在硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(asic)芯片、现场可编程门阵列(fpga)以及现在已知或以后开发的其他可编程逻辑设备。当激活硬件模块时,硬件模块执行硬件模块中包含的方法和过程。

仅出于说明和描述的目的给出了本文描述的前述实施例。它们并不旨在穷举或将本文描述的实施例限制为所公开的形式。因此,许多修改和变化对于本领域技术人员将是显而易见的。另外,以上公开内容并非旨在限制本文描述的实施例。本文描述的实施例的范围由所附的权利要求限定。

技术特征:

1.一种用于减轻基于相变存储器的存储设备中的写入放大的计算机实现的方法,该方法包括:

由所述存储设备的控制器接收要存储在所述存储设备的相变存储器(pcm)中的数据;

由所述控制器将数据写入同一存储设备的易失性存储器的扇区中,以获取该扇区的更新部分;以及

响应于检测到预定条件,将更新部分写入pcm。

2.根据权利要求1所述的方法,其中,所述扇区包括原始数据和原始奇偶校验位,并且其中,将更新部分写入pcm还包括:

将所述扇区的更新部分中的数据与对应的原始数据进行比较,以获得第一差异;

通过将零预先前置和附加到第一差异来对齐第一差异;

对对齐的第一差异进行编码,以获得第二差异;

将原始奇偶校验位与第二差异进行比较,以获得新的奇偶校验位;以及

将更新部分和新的奇偶校验位写入pcm。

3.根据权利要求1所述的方法,其中,所述预定条件基于以下项中的一个或更多个:

对于更新部分,达到预定的超时或到期时间;

达到易失性存储器的预定容量阈值;

执行将数据从易失性存储器写入pcm的指令;

功率损失;以及

检测到用于将数据从易失性存储器写入pcm的预定时间间隔或频率。

4.根据权利要求1所述的方法,其中,将更新部分写入pcm是响应于确定更新部分的长度小于预定长度的。

5.根据权利要求1所述的方法,其中,将数据写入易失性存储器的扇区是响应于确定所接收到的数据的长度小于对应于所述pcm的块大小的预定长度的,并且其中,所述方法还包括:

响应于确定接收到的数据的长度不小于对应于pcm的块大小的预定长度,将接收到的数据写入pcm。

6.根据权利要求1所述的方法,其中,在将更新部分写入pcm之前,该方法还包括:

确定已被写入多个扇区的数据;

将数据聚合到第二扇区;以及

响应于检测到预定条件,将聚合数据写入pcm。

7.根据权利要求6所述的方法,其中,基于以下项中的一个或更多个来确定已被写入多个扇区的数据:

访问频率;

预定的访问频率;

优先映射算法;

可观察条件;以及

预定条件。

8.根据权利要求6所述的方法,其中,在将聚合数据写入pcm之前,所述方法还包括:

为聚合数据生成奇偶校验位;以及

包括与聚合数据一起生成的奇偶校验位。

9.一种用于减轻基于相变存储器的存储设备中的写入放大的计算机实现的方法,该方法包括:

由所述存储设备的控制器接收读取数据的请求;

由所述控制器从所述存储设备的相变存储器(pcm)中检索所请求的数据,其中,所请求的数据已预先从同一存储设备的易失性存储器写入pcm中;以及

响应于检测到预定条件,由控制器将检索到的数据写入易失性存储器。

10.根据权利要求9所述的方法,其中,检索到的数据对应于pcm的第一扇区的第一部分,并且其中,将检索到的数据写入易失性存储器还包括:

确定易失性存储器的第二扇区,其中,第二扇区对应于第一扇区;

将第一部分写入第二扇区;

基于第一部分的长度和第二扇区的长度,将第一部分与第二扇区对齐,以获得新的码字;

由控制器从新的码字返回第一部分。

11.根据权利要求9所述的方法,其中,从pcm检索所请求的数据是响应于确定所请求的数据没有存储在所述易失性存储器中,并且其中,所述方法还包括:

响应于确定所请求的数据存储在易失性存储器中,从易失性存储器返回所请求的数据。

12.根据权利要求9所述的方法,其中,所述预定条件基于以下项中的一个或更多个:

执行缓存算法;

检测用户生成或主机配置的条件;

确定所请求的数据将被写入易失性存储器;

分析与数据访问相关的统计数据;

确定所请求的数据被请求或访问的可能性大于预定阈值;以及

与所请求的数据相关的可观察条件。

13.一种用于减轻基于相变存储器的存储设备中的写入放大的计算机系统,该计算机系统包括:

处理器;以及

存储器,其联接到处理器并存储指令,所述指令在由处理器执行时使处理器执行一种方法,该方法包括:

由所述存储设备的控制器接收要存储在所述存储设备的相变存储器(pcm)中的数据;

由控制器将数据写入同一存储设备的易失性存储器的扇区中,以获取该扇区的更新部分;以及

响应于检测到预定条件,将更新部分写入pcm。

14.根据权利要求13所述的计算机系统,其中,所述扇区包括原始数据和原始奇偶校验位,并且其中,将更新部分写入pcm还包括:

将所述扇区的更新部分中的数据与对应的原始数据进行比较,以获得第一差异;

通过将零预先前置和附加到第一差异来对齐第一差异;

对对齐的第一差异进行编码,以获得第二差异;

将原始奇偶校验位与第二差异进行比较,以获得新的奇偶校验位;以及

将更新部分和新的奇偶校验位写入pcm。

15.根据权利要求13所述的计算机系统,其中,所述预定条件基于以下项中的一个或更多个:

对于更新部分,达到预定的超时或到期时间;

达到易失性存储器的预定容量阈值;

执行将数据从易失性存储器写入pcm的指令;

功率损失;以及

检测到用于将数据从易失性存储器写入pcm的预定时间间隔或频率。

16.根据权利要求13所述的计算机系统,其中,将更新部分写入pcm是响应于确定更新部分的长度小于预定长度的。

17.根据权利要求13所述的计算机系统,其中,将数据写入所述易失性存储器的扇区是响应于确定所接收的数据的长度小于对应于pcm的块大小的预定长度的,并且其中,所述方法还包括:

响应于确定接收到的数据的长度不小于对应于pcm的块大小的预定长度,将接收到的数据写入pcm。

18.根据权利要求13所述的计算机系统,其中,在将所述更新部分写入所述pcm之前,所述方法还包括:

确定已被写入多个扇区的数据;

将数据聚合到第二扇区;以及

响应于检测到预定条件,将聚合数据写入pcm。

19.根据权利要求18所述的计算机系统,其中,基于以下项中的一个或更多个来确定已被写入所述多个扇区的数据:

访问频率;

预定的访问频率;

优先映射算法;

可观察条件;以及

预定条件。

20.根据权利要求18所述的计算机系统,其中,在将聚合数据写入pcm之前,所述方法还包括:

为聚合数据生成奇偶校验位;以及

包括与聚合数据一起生成的奇偶校验位。

技术总结

一个实施例有助于减轻基于相变存储器的存储设备中的写入放大。在操作期间,系统通过存储设备的控制器接收要存储在存储设备的相变存储器(PCM)中的数据。该系统通过控制器将数据写入同一存储设备的易失性存储器的扇区中,以获得该扇区的更新部分。响应于检测到预定条件,系统将更新部分写入PCM。

技术研发人员:李舒;周平

受保护的技术使用者:阿里巴巴集团控股有限公司

技术研发日:.06.27

技术公布日:.02.21

如果觉得《在基于相变存储器的存储设备中减轻写入放大的方法和系统与流程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。