CN110832590A - 在基于相变存储器的存储设备中减轻写入放大的方法和系统 - Google Patents

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

Info

Publication number
CN110832590A
CN110832590A CN201880045150.0A CN201880045150A CN110832590A CN 110832590 A CN110832590 A CN 110832590A CN 201880045150 A CN201880045150 A CN 201880045150A CN 110832590 A CN110832590 A CN 110832590A
Authority
CN
China
Prior art keywords
data
pcm
sector
volatile memory
written
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
Application number
CN201880045150.0A
Other languages
English (en)
Other versions
CN110832590B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110832590A publication Critical patent/CN110832590A/zh
Application granted granted Critical
Publication of CN110832590B publication Critical patent/CN110832590B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

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

Description

在基于相变存储器的存储设备中减轻写入放大的方法和系统
技术领域
本公开总体上涉及数据存储领域。更具体地,本公开涉及用于减轻基于相变存储器的存储设备中的写入放大的方法和系统。
背景技术
互联网和电子商务的激增继续创造了大量的数字内容。已经创建了各种存储系统来访问和存储这些数字内容。一种这样的存储系统使用相变存储器(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通信的CPU 122。PCM控制器124可以与相变存储介质(诸如PCM 132、134、136、138、140和142)通信,并且可以进一步包括DRAM控制器126。DRAM控制器126可以与易失性存储器(诸如DRAM 128和130)通信,并且可以进一步包括数据缓冲器(未示出)。
通过在基于PCM的存储设备116中包括CPU 122、DRAM控制器126以及DRAM 128和DRAM 130,本文所述的实施例可以避免通过主机结构(例如外围组件接口快速(PCIe)总线)的频繁数据传输。DRAM控制器126可以直接从本地PCM 132-142读取旧数据到其自己的数据缓冲器中,进行修改,并将数据写回。因为这些操作的全部发生在基于PCM的存储设备116中,所以系统可以避免与通过PCIe总线传输和读取数据相关的成本。
因此,如本文所述的实施例中,服务器116描绘了基于PCM的存储设备的示例性架构。下面结合图2描述一般的数据流。下面结合图3A、图3B和图4描述写操作中的示例性数据流,并且下面结合图5A和图5B描述读操作中的示例性数据流。
从易失性存储器到PCM的数据处理流程
图2示出了根据本申请的实施例的用于在易失性存储器中累积更新的用户数据并将更新的用户数据写入PCM的示例性流程。为了确保存储的数据的安全性,系统可以在将数据存储在PCM中之前对数据执行纠错码(ECC)编码。在时间T0 210,易失性存储器(例如,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)。因此,在时间T5 215,用户增量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包括六个扇区:扇区A 610包括原始用户比特611和原始奇偶校验位612;扇区B 620包括原始用户比特621和原始奇偶校验位622;扇区C 630包括原始用户比特631和原始奇偶校验位632;扇区D 640包括原始用户比特641和原始奇偶校验位642;扇区E 650包括原始用户比特651和原始奇偶校验位652;以及扇区F 660包括原始用户比特661和原始奇偶校验位662。图6A中示出的统计上不均匀的热分布600导致本文所述的实施例的优选分布。用户数据的新块(即,更新后的数据)仅被写入到所描绘的六个扇区中的两个,这导致需要更少的整体写入操作(例如,刷新更新后的数据)。将三个新用户数据块(新数据A 614、616和618)在原始用户比特611中写入到扇区A,如图所示并如上结合图2所述,覆写先前的位。三个其他的新用户数据块(新数据E 654、656和658)在原始用户比特651中写入到扇区E,类似地如图所示覆写先前的位。
相反,即使在每个扇区中仅更新了一个小数据块,统计上均匀的热分布也会导致刷新扇区。图6B示出了根据本申请的实施例的基于统计上均匀的热分布的用户数据在易失性存储器中的示例性分布670以及用于重新混洗数据的方法。将六个新用户数据块写入六个扇区中的每个扇区:将新数据A 672写入扇区A 610;将新数据B 674被写入扇区B 620;将新数据C 676写入扇区C 630;将新数据D 678写入扇区D 640;将新数据E 680写入扇区E650;并将新数据F 682写入扇区F 660。基于PCM的存储设备的控制器可以监测数据块A-F(即,672-682)的访问频率,并且例如通过使用优先映射算法为这些频繁更新的块分配新的物理位置。控制器可以将频繁访问的块聚合或分组到单个扇区中,并且只执行对PCM的一次写入,而不是效率低地(并且频繁地)对PCM进行六次单独的写入(每次更新仅针对一小块数据)。例如,控制器可以检测或确定频繁访问的数据块A-F,对这些确定的块A-F进行重新混洗(重新混洗操作690),并将它们作为重新混洗的用户数据691与新的奇偶校验位692一起放置在新的扇区M 670中。这样,系统只执行一次写入,而不是六次写入,从而使存储系统效率更高,同时增加了延时和PCM的使用寿命。
采用这种优先映射算法的另一个优点是,系统不再需要等待块A-F中的任何一个块自然到期以将数据写入PCM。取而代之的是,系统可以将经常被访问的数据块放在一个物理位置,并且通过一次操作将整个数据块写入PCM。系统不仅可以基于访问频率而且可以基于控制器检测到的任何其他可观察或预先配置的条件来进行块选择(例如,优先映射算法)。
示例性计算机系统和设备
图7示出了根据本申请的实施例的有助于减轻基于相变存储器(PCM)的存储设备中的写入放大的示例性计算机系统700。计算机系统700包括处理器702、易失性存储器704、控制器705、相变存储器(PCM)706和存储设备708。计算机系统700可以是客户端服务机。易失性存储器704可以包括例如RAM,其用作托管存储器,并且可以用于存储一个或更多个存储器池。PCM 706可以包括通过控制器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)以及现在已知或以后开发的其他可编程逻辑设备。当激活硬件模块时,硬件模块执行硬件模块中包含的方法和过程。
仅出于说明和描述的目的给出了本文描述的前述实施例。它们并不旨在穷举或将本文描述的实施例限制为所公开的形式。因此,许多修改和变化对于本领域技术人员将是显而易见的。另外,以上公开内容并非旨在限制本文描述的实施例。本文描述的实施例的范围由所附的权利要求限定。

Claims (20)

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之前,所述方法还包括:
为聚合数据生成奇偶校验位;以及
包括与聚合数据一起生成的奇偶校验位。
CN201880045150.0A 2017-07-06 2018-06-27 在基于相变存储器的存储设备中减轻写入放大的方法和系统 Active CN110832590B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/643,210 US10564856B2 (en) 2017-07-06 2017-07-06 Method and system for mitigating write amplification in a phase change memory-based storage device
US15/643,210 2017-07-06
PCT/US2018/039813 WO2019010044A1 (en) 2017-07-06 2018-06-27 METHOD AND SYSTEM FOR MITIGATING WRITE AMPLIFICATION IN A PHASE CHANGE MEMORY BASED STORAGE DEVICE

Publications (2)

Publication Number Publication Date
CN110832590A true CN110832590A (zh) 2020-02-21
CN110832590B CN110832590B (zh) 2023-05-09

Family

ID=64903842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880045150.0A Active CN110832590B (zh) 2017-07-06 2018-06-27 在基于相变存储器的存储设备中减轻写入放大的方法和系统

Country Status (3)

Country Link
US (1) US10564856B2 (zh)
CN (1) CN110832590B (zh)
WO (1) WO2019010044A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782156A (zh) * 2020-08-17 2020-10-16 Oppo广东移动通信有限公司 存储器寿命指标制定方法、装置、存储介质以及终端
CN113535092A (zh) * 2021-07-20 2021-10-22 阿里巴巴新加坡控股有限公司 用于减少内存元数据的存储引擎、方法和可读介质

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891057B1 (en) * 2015-12-31 2021-01-12 EMC IP Holding Company LLC Optimizing flash device write operations
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10496829B2 (en) 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10789011B2 (en) 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10445190B2 (en) * 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10838812B2 (en) * 2018-11-13 2020-11-17 Micron Technology, Inc. Storing parity data mid stripe
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US10860420B2 (en) 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10783035B1 (en) 2019-02-28 2020-09-22 Alibaba Group Holding Limited Method and system for improving throughput and reliability of storage media with high raw-error-rate
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11372984B2 (en) * 2019-08-14 2022-06-28 International Business Machines Corporation Key-compressible encryption
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
TWI711049B (zh) * 2020-01-06 2020-11-21 華邦電子股份有限公司 記憶體裝置及資料寫入方法
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) * 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
KR20220027488A (ko) * 2020-08-27 2022-03-08 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US11842059B2 (en) * 2021-09-01 2023-12-12 Micron Technology, Inc. Memory sub-system address mapping

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1421871A (zh) * 2001-11-22 2003-06-04 富士通株式会社 具有奇偶校验单元阵列的存储电路
US20110029715A1 (en) * 2009-07-29 2011-02-03 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US20120203958A1 (en) * 2011-02-08 2012-08-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US20140136759A1 (en) * 2012-11-09 2014-05-15 SanDisk Techologies Inc. De-duplication techniques using nand flash based content addressable memory
CN104011692A (zh) * 2011-12-26 2014-08-27 瑞萨电子株式会社 数据处理装置
US20150235706A1 (en) * 2014-02-20 2015-08-20 Phison Electronics Corp. Data transmitting method, memory control circuit unit and memory storage apparatus
DE102015008380A1 (de) * 2014-07-15 2016-01-21 HGST Netherlands B.V. Implementierung von verbesserter Leistungsfähigkeit mit Lesen vor Schreiben in Phasenänderungsspeicher, um Schreibabbrüche zu vermeiden

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775932A (en) 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
EP0681721B1 (en) 1993-02-01 2005-03-23 Sun Microsystems, Inc. Archiving file system for data servers in a distributed network environment
JPH06332664A (ja) * 1993-03-23 1994-12-02 Toshiba Corp 表示制御システム
JP3183993B2 (ja) * 1993-03-31 2001-07-09 株式会社東芝 ディスク制御システム
JP2981711B2 (ja) * 1994-06-16 1999-11-22 日本アイ・ビー・エム株式会社 ディスク記憶装置
US6226650B1 (en) 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
US7889544B2 (en) * 2004-04-05 2011-02-15 Super Talent Electronics, Inc. High-speed controller for phase-change memory peripheral device
WO2001040903A2 (en) 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for enhancing operation of a web server cluster
US6981005B1 (en) 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US7228441B2 (en) 2000-09-27 2007-06-05 Huron Ip Llc Multi-server and multi-CPU power management system and method
US20020161890A1 (en) 2000-12-22 2002-10-31 Kailai Chen System and method for intelligently distributing content over a communicatons network
US20040010612A1 (en) 2002-06-11 2004-01-15 Pandya Ashish A. High performance IP processor using RDMA
EP3321769A1 (en) 2003-05-07 2018-05-16 Conversant Intellectual Property Management Inc. Managing power on integrated circuits using power islands
US20050038954A1 (en) 2003-06-04 2005-02-17 Quantum Corporation Storage drive having universal format across media types
US7051215B2 (en) 2003-06-13 2006-05-23 Intel Corporation Power management for clustered computing platforms
US7565454B2 (en) 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
JP4371739B2 (ja) 2003-09-02 2009-11-25 株式会社東芝 シリアルataインタフェースを持つ電子機器及びシリアルataバスのパワーセーブ方法
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7676603B2 (en) * 2004-04-20 2010-03-09 Intel Corporation Write combining protocol between processors and chipsets
US7490239B2 (en) 2005-01-07 2009-02-10 First Data Corporation Facilitating digital signature based on ephemeral private key
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7631162B2 (en) * 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US8260924B2 (en) 2006-05-03 2012-09-04 Bluetie, Inc. User load balancing systems and methods thereof
WO2007138601A2 (en) 2006-05-31 2007-12-06 Storwize Ltd. Method and system for transformation of logical data objects for storage
WO2008007273A2 (en) 2006-06-27 2008-01-17 Koninklijke Philips Electronics N.V. A device and a method for managing power consumption of a plurality of data processing units
JP2008097053A (ja) * 2006-10-05 2008-04-24 Hitachi Global Storage Technologies Netherlands Bv ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置
US7822921B2 (en) * 2006-10-31 2010-10-26 Netapp, Inc. System and method for optimizing write operations in storage systems
CN101246452B (zh) * 2007-02-12 2010-12-15 国际商业机器公司 执行快速的mmu模拟的方法和装置、以及全系统模拟器
US8127197B2 (en) * 2008-03-13 2012-02-28 Motorola Mobility, Inc. Method and apparatus for radio link control padding for enhanced general packet radio service
KR101497074B1 (ko) * 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8954654B2 (en) 2008-06-18 2015-02-10 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US9547589B2 (en) 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
WO2010076828A1 (en) 2008-12-30 2010-07-08 Emanuele Confalonieri Non-volatile memory with extended operating temperature range
WO2010093683A2 (en) 2009-02-10 2010-08-19 Uniloc Usa, Inc. Web content access using a client device identifier
US8996812B2 (en) 2009-06-19 2015-03-31 International Business Machines Corporation Write-back coherency data cache for resolving read/write conflicts
US8918365B2 (en) 2009-06-19 2014-12-23 Blekko, Inc. Dedicating disks to reading or writing
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US9390035B2 (en) 2009-12-21 2016-07-12 Sanmina-Sci Corporation Method and apparatus for supporting storage modules in standard memory and/or hybrid memory bus architectures
US8370297B2 (en) 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data
JP2011198133A (ja) 2010-03-19 2011-10-06 Toshiba Corp メモリシステムおよびコントローラ
US8688897B2 (en) 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
JP4886877B2 (ja) 2010-05-31 2012-02-29 株式会社東芝 記録媒体制御装置、及びその方法
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US8516284B2 (en) 2010-11-04 2013-08-20 International Business Machines Corporation Saving power by placing inactive computing devices in optimized configuration corresponding to a specific constraint
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
WO2012109679A2 (en) 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for application direct virtual memory management
US9141527B2 (en) * 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8452819B1 (en) 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
KR101717081B1 (ko) 2011-03-23 2017-03-28 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
KR20130031046A (ko) 2011-09-20 2013-03-28 삼성전자주식회사 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
US20130103889A1 (en) * 2011-10-25 2013-04-25 Ocz Technology Group Inc. Page-buffer management of non-volatile memory-based mass storage devices
US9213645B2 (en) 2011-12-29 2015-12-15 Sandisk Technologies Inc. Command aware partial page programming
US9043545B2 (en) 2012-01-06 2015-05-26 Netapp, Inc. Distributing capacity slices across storage system nodes
US8880815B2 (en) 2012-02-20 2014-11-04 Avago Technologies General Ip (Singapore) Pte. Ltd. Low access time indirect memory accesses
US9645917B2 (en) 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9092223B1 (en) 2012-05-31 2015-07-28 Google Inc. Systems and methods to save power in data-center networks
US8756237B2 (en) 2012-10-12 2014-06-17 Architecture Technology Corporation Scalable distributed processing of RDF data
US9405621B2 (en) 2012-12-28 2016-08-02 Super Talent Technology, Corp. Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US9432755B2 (en) 2013-02-15 2016-08-30 Futurewei Technologies, Inc. Downstream burst transmission in passive optical networks
US8984171B2 (en) 2013-03-01 2015-03-17 Silicon Motion, Inc. Data storage device and flash memory control method
US9280472B1 (en) * 2013-03-13 2016-03-08 Western Digital Technologies, Inc. Caching data in a high performance zone of a data storage system
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US20140304452A1 (en) * 2013-04-03 2014-10-09 Violin Memory Inc. Method for increasing storage media performance
US9183103B2 (en) 2013-05-31 2015-11-10 Vmware, Inc. Lightweight remote replication of a local write-back cache
US9785545B2 (en) 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
WO2015039320A1 (en) 2013-09-19 2015-03-26 Intel Corporation Techniques for distributed processing task portion assignment
EP3049944B1 (en) 2013-09-26 2022-01-12 Intel Corporation Block storage apertures to persistent memory
US9251154B2 (en) 2013-11-15 2016-02-02 International Business Machines Corporation Priority based reliability mechanism for archived data
US9240722B2 (en) 2014-06-19 2016-01-19 Dell Products Lp Methods and systems for improving light load efficiency for power stages of multi-phase voltage regulator circuits
US9588977B1 (en) 2014-09-30 2017-03-07 EMC IP Holding Company LLC Data and metadata structures for use in tiering data to cloud storage
US9626286B2 (en) 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US9710330B2 (en) 2014-10-15 2017-07-18 Empire Technology Development Llc Partial cloud data storage
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9734051B2 (en) 2015-02-16 2017-08-15 Quantum Corporation Garbage collection and defragmentation for solid state drives (SSD) and shingled magnetic recording (SMR) drives
US9911487B2 (en) 2015-05-19 2018-03-06 EMC IP Holding Company LLC Method and system for storing and recovering data from flash memory
US20160350002A1 (en) 2015-05-29 2016-12-01 Intel Corporation Memory device specific self refresh entry and exit
US10324832B2 (en) 2016-05-25 2019-06-18 Samsung Electronics Co., Ltd. Address based multi-stream storage device access
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US9841918B2 (en) * 2015-12-02 2017-12-12 Samsung Electronics Co., Ltd. Flash memory device including deduplication, and related methods
US20170162235A1 (en) 2015-12-02 2017-06-08 Qualcomm Incorporated System and method for memory management using dynamic partial channel interleaving
US9965441B2 (en) 2015-12-10 2018-05-08 Cisco Technology, Inc. Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics
US10649681B2 (en) 2016-01-25 2020-05-12 Samsung Electronics Co., Ltd. Dynamic garbage collection P/E policies for redundant storage blocks and distributed software stacks
US10389839B2 (en) 2016-06-01 2019-08-20 Intel Corporation Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node
US10514862B2 (en) 2016-07-21 2019-12-24 Micron Technology, Inc. Memory device including concurrent suspend states for different operations
JP6274589B1 (ja) 2016-09-28 2018-02-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および連続読出し方法
US10055292B2 (en) * 2016-10-03 2018-08-21 International Buisness Machines Corporation Parity delta caching for short writes
US10496544B2 (en) * 2016-12-29 2019-12-03 Intel Corporation Aggregated write back in a direct mapped two level memory
US10275162B2 (en) * 2017-06-23 2019-04-30 Dell Products L.P. Methods and systems for managing data migration in solid state non-volatile memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1421871A (zh) * 2001-11-22 2003-06-04 富士通株式会社 具有奇偶校验单元阵列的存储电路
US20110029715A1 (en) * 2009-07-29 2011-02-03 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US20120203958A1 (en) * 2011-02-08 2012-08-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
CN104011692A (zh) * 2011-12-26 2014-08-27 瑞萨电子株式会社 数据处理装置
US20140136759A1 (en) * 2012-11-09 2014-05-15 SanDisk Techologies Inc. De-duplication techniques using nand flash based content addressable memory
US20150235706A1 (en) * 2014-02-20 2015-08-20 Phison Electronics Corp. Data transmitting method, memory control circuit unit and memory storage apparatus
DE102015008380A1 (de) * 2014-07-15 2016-01-21 HGST Netherlands B.V. Implementierung von verbesserter Leistungsfähigkeit mit Lesen vor Schreiben in Phasenänderungsspeicher, um Schreibabbrüche zu vermeiden

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782156A (zh) * 2020-08-17 2020-10-16 Oppo广东移动通信有限公司 存储器寿命指标制定方法、装置、存储介质以及终端
CN113535092A (zh) * 2021-07-20 2021-10-22 阿里巴巴新加坡控股有限公司 用于减少内存元数据的存储引擎、方法和可读介质
CN113535092B (zh) * 2021-07-20 2024-05-17 阿里巴巴创新公司 用于减少内存元数据的存储引擎、方法和可读介质

Also Published As

Publication number Publication date
CN110832590B (zh) 2023-05-09
WO2019010044A1 (en) 2019-01-10
US20190012111A1 (en) 2019-01-10
US10564856B2 (en) 2020-02-18

Similar Documents

Publication Publication Date Title
CN110832590B (zh) 在基于相变存储器的存储设备中减轻写入放大的方法和系统
US10642522B2 (en) Method and system for in-line deduplication in a storage drive based on a non-collision hash
US8621328B2 (en) Wear-focusing of non-volatile memories for improved endurance
US10423508B2 (en) Method and system for a high-priority read based on an in-place suspend/resume write
KR101912596B1 (ko) 리던던트 어레이들을 통한 비휘발성 메모리 프로그램 실패 복구
US10127166B2 (en) Data storage controller with multiple pipelines
US9069703B2 (en) Encrypted-transport solid-state disk controller
US9727244B2 (en) Expanding effective storage capacity of a data storage system while providing support for address mapping recovery
US10891065B2 (en) Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US20200264973A1 (en) Method and apparatus for managing map data in memory system
US10996886B2 (en) Method and system for facilitating atomicity and latency assurance on variable sized I/O
KR20220001222A (ko) 베드 블록을 처리하는 메모리 시스템 및 동작 방법
US10101938B2 (en) Data storage system selectively employing multiple data compression techniques
JP6460940B2 (ja) 記憶装置およびデータ退避方法
US20170242789A1 (en) Garbage collection techniques for a data storage system
US11074124B2 (en) Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11449386B2 (en) Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
KR20200100956A (ko) 메모리 시스템의 맵 데이터 관리 방법 및 장치
US9430327B2 (en) Data access method, memory control circuit unit and memory storage apparatus
CN114780018A (zh) 用于促进多流顺序读取性能改进并减少阅读放大的方法和系统
US9430375B2 (en) Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency
US11886741B2 (en) Method and storage device for improving NAND flash memory performance for intensive read workloads
US10073685B2 (en) Methods of system optimization by over-sampling read
US20170371741A1 (en) Technologies for providing file-based resiliency

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant