CN105683897B - 具有陈旧数据机制的数据贮存系统及其操作方法 - Google Patents

具有陈旧数据机制的数据贮存系统及其操作方法 Download PDF

Info

Publication number
CN105683897B
CN105683897B CN201480044938.1A CN201480044938A CN105683897B CN 105683897 B CN105683897 B CN 105683897B CN 201480044938 A CN201480044938 A CN 201480044938A CN 105683897 B CN105683897 B CN 105683897B
Authority
CN
China
Prior art keywords
outmoded
mark
logical address
write
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480044938.1A
Other languages
English (en)
Other versions
CN105683897A (zh
Inventor
J.M.希金斯
T.W.弗金
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN105683897A publication Critical patent/CN105683897A/zh
Application granted granted Critical
Publication of CN105683897B publication Critical patent/CN105683897B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • 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/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]

Landscapes

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

Abstract

使用系统、方法和设备用于使能陈旧数据机制。在一个方面,该方法包括:(1)接收指定要写到的逻辑地址的写命令,(2)确定是否设置了与该逻辑地址对应的陈旧标志,(3)根据没有设置陈旧标志的确定,设置陈旧标志并且释放要处理的写命令,以及(4)根据设置了陈旧标志的确定,检测重叠,其中该重叠指示两个或更多未完成的写命令正在相同的存储器空间上操作。

Description

具有陈旧数据机制的数据贮存系统及其操作方法
技术领域
本发明大体涉及数据贮存系统,更具体地涉及具有陈旧(stale)数据机制的系统。
背景技术
通常称为贮存器或者存储器的数据贮存器指保留数字数据的计算机组件和记录介质。数据贮存器是消费和工业电子产品、尤其是诸如计算机、电视、蜂窝电话、移动设备和数字摄像机的设备的核心功能和基础组件。
近来,除了电动机械硬盘之外的长期贮存的形式对于用在计算机中变为可行。非-AND(NAND)快闪是在固态贮存设备中使用的非易失性存储器的一种形式。存储器单元以典型的行和列的方式布置,具有用于访问各个单元的电路。那些单元的存储器晶体管被放置以贮存可以被解译的模拟值以在单级单元(SLC)的情况下保持两个逻辑状态或者在多级单元(MLC)的情况下保持多于两个逻辑状态。
快闪存储器单元的重量轻,占据很少的空间,并且比电动机械盘驱动器消耗更少的功率。具有此类型的存储器的贮存系统的构造允许比典型的电动机械盘驱动器高得多的带宽和每秒的输入/输出操作(IOPS)。更重要的是,其尤其强健并且可以以非常大的温度范围而操作。其可以经受重复的掉落而没有不利影响,每次掉落将损坏典型的电动机械硬盘驱动器。快闪存储器表现出的问题是其趋向于具有有限的操作速度。
因此,仍需要更快速的数据贮存系统。鉴于对于数据贮存系统的增加的需求,越来越至关重要的是为这些问题找到答案。鉴于日益增加的商业竞争压力以及对于市场上的有意义的产品差异的增长的消费者期望和逐渐减少的机会,为这些问题找到答案至关重要。另外,降低成本、改进效率和性能以及满足竞争压力的需求为对这些问题找到答案的至关重要的必要性增加了甚至更大的紧迫性。
长期在寻求对这些问题的解决方案,但是现有的发展还没有教导或提出任何解决方案,因此,本领域技术人员始终无法掌握对这些问题的解决方案。
附图说明
图1是本发明的实施例中的数据贮存系统的框图。
图2是根据一些实施例的数据贮存系统的存储器图的示例。
图3是根据一些实施例的命令重叠的示例。
图4是根据一些实施例的逻辑到物理表的示例。
图5是根据一些实施例的写处理的第一示例。
图6是根据一些实施例的写处理的第二示例。
图7是根据一些实施例的读处理的示例。
图8是根据一些实施例的数据贮存系统的操作的方法的流程图。
具体实施方式
在此所述的各种实现方式包括用于使能陈旧数据机制的系统、方法和/或设备。一些实现方式包括用于确定是否设置了与写命令的逻辑地址对应的陈旧标志并且根据设置了陈旧标志的确定检测重叠的系统、方法和/或设备,该重叠指示两个或更多未完成的(outstanding)写命令正在相同的存储器空间上操作。
更具体地,一些实施例包括数据贮存系统的操作的方法。在一些实施例中,该方法包括:(1)接收指定要写到的逻辑地址的写命令,(2)确定是否设置了与该逻辑地址对应的陈旧标志,(3)根据没有设置陈旧标志的确定,设置陈旧标志并且释放要处理的写命令,以及(4)根据设置了陈旧标志的确定,检测重叠,其中该重叠指示两个或更多未完成的写命令正在相同的存储器空间上操作。
在一些实施例中,该方法还包括响应于检测到重叠,进行写合并操作,其中该写合并操作整合对于该逻辑地址的两个或更多未完成的写命令。
在一些实施例中,该方法还包括(1)完成写命令的处理以及(2)更新陈旧标志。
在一些实施例中,更新陈旧标志包括清除该陈旧标志。
在一些实施例中,该陈旧标志是与各个逻辑地址相关联的未完成的写命令的数量的计数,并且更新陈旧标志包括将该计数递减。
在一些实施例中,该方法还包括:(1)接收指定从其读取的第二逻辑地址的读取命令,(2)确定是否设置了与该第二逻辑地址对应的第二陈旧标志,(3)根据没有设置第二陈旧标志的确定,进行该读取命令,其中进行该读取命令包括从与该第二逻辑地址对应的物理地址读取数据,其中使用逻辑到物理表确定该物理地址,以及(4)根据设置了第二陈旧标志的确定,跳过该读取命令的进行直到没有设置第二陈旧标志。
在一些实施例中,该方法还包括根据设置了第二陈旧标志的确定,使陈旧写入优先,其中陈旧写入的完成清除该第二陈旧标志。
在一些实施例中,该方法还包括:(1)接收指定从其读取的第二逻辑地址的读取命令,(2)确定是否设置了与该第二逻辑地址对应的第二陈旧标志,(3)根据没有设置第二陈旧标志的确定,进行该读取命令,其中进行该读取命令包括从与该第二逻辑地址对应的物理地址读取数据,其中使用逻辑到物理表确定该物理地址,以及(4)根据设置了第二陈旧标志的确定,通过从对于该第二逻辑地址的进行中的写入数据读取数据来为该读取命令服务。
在一些实施例中,多个逻辑地址的每个逻辑地址具有相应的陈旧标志,并且每个陈旧标志被贮存在用于将逻辑地址映射到物理地址的逻辑到物理表中。
在一些实施例中,多个逻辑地址的每个逻辑地址具有相应的陈旧标志,并且每个陈旧标志被贮存在与用于将逻辑地址映射到物理地址的逻辑到物理表分开的表中。
在另一方面,上述的任意方法由数据贮存系统进行,该数据贮存系统包括:(1)一个或多个处理器,以及(2)存储器,贮存要由该一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于进行在此所述的任意方法或者控制在此所述的任意方法的进行的指令。
在另一方面,一些实施例包括非暂时计算机可读贮存介质,存储配置为由数据贮存系统的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于进行在此所述的任意方法或者控制在此所述的任意方法的进行的指令。
充分详细地描述以下实施例以使得本领域技术人员能够做出和使用本发明。将理解,基于本公开,其他实施例将是显然的,并且可以不脱离本发明的范围进行系统、处理或机械上的改变。
在以下描述中,给出了许多具体细节以通过本发明的透彻理解。但是,将显而易见的是,可以没有这些具体细节而实践本发明。为了避免混淆本发明,没有详细公开一些公知的电路、系统配置和处理步骤。
示出了系统的实施例的附图是半图解式的并且不是按比例的,特别是一些尺寸是为了清楚地呈现并且在附图中放大地示出。
其中公开和描述了具有一些共同特征的多个实施例,为了清楚以及易于例示、描述和理解这些实施例,将通常利用类似的参考标记来描述彼此类似或者相同的特征。为了方便描述实施例已经被标号为第一实施例、第二实施例等等,不意图具有任何其他意义或者提供对本发明的限制。
在此提及的术语“模块”可以根据使用该数据的上下文在本发明中包括软件、硬件或其组合。例如,软件可以是机器代码、固件、嵌入式代码和应用软件。而且,例如,硬件可以是电路、处理器、计算机、集成电路、集成电路核、微机电系统(MEMS)、无源器件、包括温度传感器的环境传感器或其组合。
在此提及的术语“SSD”被定义为固态盘驱动器(solid-state disk drive),现如今这些类型的设备使用NAND闪存作为贮存介质。在此提及的术语“读取-修改-写入”被定义为从存储器读取存储器块、更新该存储器的操作的子区域、然后将整个存储器区域写回到介质的处理。
在此提及的术语“擦除块”被定义为一组页,其是一次被擦除的最少数量的页。在此提及的术语“存储器页”被定义为被编程为单独的单元的擦除块内的存储器组件。存储器页是从擦除块读取或者被写到擦除块中的最小组的数据字节。
在此提及的术语“位错误率”(BER)被定义为在包括NAND的存储器设备中贮存的数据流中的不正确的位的数量。在此提及的术语“错误校正码”被定义为经过用于校正错误的数据集产生的数据。
在此提及的术语“保持力(retention)”被定义为存储器单元保持编程的或者正确的信息的能力。保持力指在给定时间段之后的正确数据的量,该给定时间段是驱动器被通电、未被通电或其组合的时间。在此提及的术语“编程擦除周期”(PE(program erase)周期)被定义为在擦除块内如何替换数据的基准水平操作。例如,包括NAND和其他类型的存储器设备可以具有有限数量的有用的PE周期。
在此提及的术语“年龄”指示贮存系统或者存储器组件已经存在了多久或者已经操作了多久。例如,年龄可以基于擦除周期的数量、自从擦除块最后一次被写入起已经多久、擦除块正在产生的平均BER、设备已经运行在的温度或其组合。
在此提及的术语“DMA”被定义为允许硬件子系统独立于CPU访问存储器子系统的现代计算机的特征。在此提及的术语“逻辑到物理表”(L2P)被定义为将逻辑页映射到物理快闪存储器地址的存储器中的表。
在此提及的术语“命令重叠”被定义为同时具有在进行中的到重叠的存储器位置的多个命令的动作。在此提及的术语“重叠检测”被定义为确定两个未完成的命令是否正在相同的存储器空间上操作的动作。
在此提及的术语“逻辑页”被定义为在SSD内部可被单独寻址的最小数据块。在此提及的术语“主机”被定义为与SSD交互的外部系统。术语“主机操作”被定义为由在SSD外部的系统提交的读取和写入。
在此提及的术语“陈旧标志”被定义为与逻辑页或者逻辑页集合相关联的参数,其指示介质上的数据是否是对于该逻辑页或者逻辑页集合的最新的数据。在此提及的术语“队列深度”被定义为贮存设备一次可以进行工作的主机命令的数量。
现在参考图1,示出了本发明的一个实施例中的数据贮存系统的框图。该数据贮存系统包括经由存储器总线耦合到控制器的存储器阵列。
该控制器是用于管理存储器阵列中的数据的贮存和检索的处理单元。该控制器可以是嵌入式处理器、控制逻辑或其组合。该控制器可以将贮存的数据从存储器阵列转移到主机设备。
该存储器阵列是用于贮存数据的非易失性存储器单元。该存储器阵列可以包括NAND快闪存储器阵列、NOR快闪存储器阵列、其他非易失性存储器阵列或其组合。
该存储器阵列可以利用存储器裸芯形成。存储器裸芯是用于贮存信息的半导体器件。存储器裸芯是可以独立地执行令和报告状态的最小单位。例如,存储器裸芯可以是快闪存储器器件、NAND快闪存储器芯片、NOR快闪存储器器件或其组合。
存储器总线是通信通道。存储器总线在控制器和存储器阵列之间传送数据和控制信息。
存储器裸芯可以包括单元阵列。单元阵列是用于贮存数据的非易失性快闪存储器单元的集合。例如,单元阵列可以包括单级单元快闪存储器、多级单元快闪存储器、混合功能单元或其组合。
单元阵列可以包括存储器单元。存储器单元是用于贮存信息的电子结构。例如,存储器单元可以是浮置栅极快闪存储器器件。
存储器阵列可以包括耦合到单元阵列的阵列逻辑单元。阵列逻辑单元是用于提供寻址、数据转移和感测、以及用于控制存储器阵列的其他支持的电路,用于保存以及从单元阵列检索信息。
控制器可以包括耦合到存储器阵列的存储器接口。存储器接口可以包括用于通过存储器总线与存储器阵列通信的电路。
控制器可以包括耦合到存储器接口和主机接口的控制单元。只读存储器可以耦合到该控制单元。随机存取存储器可以耦合到该控制单元以及该只读存储器。随机存取存储器可以被用作缓冲存储器用于暂时贮存被写到存储器阵列或者从存储器阵列读取的数据。
随机存取存储器可以包括控制器数据库。控制器数据库可以是数据贮存和检索(retrieval)系统。控制器数据库可以贮存关于数据贮存系统的信息。
只读存储器可以包括用于操作控制单元的软件。该软件是用于实现数据贮存系统的智能性(intelligence)的可执行代码。
控制器可以包括耦合到控制单元的错误校正码单元。错误校正码单元是用于计算可以用于在贮存的或者从存储器阵列传输的数据中检测错误、校正错误或其组合的错误校正码的处理硬件。
错误校正码单元可以使用诸如里德-所罗门码、汉明码、Bose-Chauduri-Hocquenghem(BCH)码或其组合的不同技术来计算一个或多个错误校正码值。尽管错误校正码单元是用于计算错误校正码的专用元件,但是可以理解,也可以以其他方式计算错误校正码,诸如使用控制单元计算错误校正码。
控制器可以包括经由数字连接耦合到主机设备的主机接口。主机设备是可以使用数据贮存系统来贮存数据的计算设备。例如,主机设备可以是膝上型计算机、桌面型计算机、服务器、智能电话或其组合。
主机接口可以利用数字连接在主机设备和控制器之间传送命令和数据。例如,主机接口可以检测到主机设备的连接并且基于到主机设备的连接传输命令。
数据贮存系统可以利用数字连接而连接到主机设备。该数字连接是用于在数据贮存系统和主机设备之间转移数字信息的通信链接。
数字连接可以按各种方式形式。例如,数字连接可以是用于转移信息的通用串行总线(USB)连接。在另一示例中,数字连接可以是诸如无线高保真(Wi-Fi)无线通信机制、红外通信机制、光通信系统、近场通信系统、或其组合。
现在参考图2,示出了图1的数据贮存系统的存储器图的示例。该存储器图示出了数据贮存系统包括存储器页、存储器块和数据寄存器。该数据贮存系统可以使用图1的存储器裸芯而形成。存储器裸芯包括图1的存储器单元用于贮存数据。
数据贮存系统可以具有由用于形成数据贮存系统的存储器裸芯的数量而确定的各种贮存容量。例如,数据贮存系统可以包括2千兆字节(GB)的快闪存储器、8GB、16GB或其他的存储器大小。
数据贮存系统可以包括多个存储器块。存储器块是图1的存储器阵列的部分。例如,具有2GB的容量的数据贮存系统可以具有4096个存储器块。
存储器块可以包括擦除块。擦除块是可以一次作为单个实体被擦除的存储器的最小单位。
每个擦除块可以具有编程擦除周期计数。当擦除块被擦除时,则编程擦除周期计数可以递增。编程擦除周期计数可以表示存储器块之一的年龄或者损耗程度。编程擦除周期计数是对在擦除块之一内的使用程度的测量。诸如NAND快闪的快闪存储器设备具有有限数量的有用的编程擦除周期。
存储器块可以被划分为存储器页。存储器页是可以在数据贮存系统中读取或写入的最小组的数据字节。存储器页是可以被编程的存储器的最小的可寻址单位。例如,每个存储器块可以具有64个存储器页。
存储器页包括数据区和备用(spare)区。数据区是用于贮存用户数据的一组存储器单元。数据区可以是各种大小。例如。一个存储器页的数据区可以是数个字节。
备用区是用于存储关于数据区的元数据的一组存储器单元。例如,备用区可以包括错误校正码信息、状态信息或其组合。备用区可以具有各种大小。例如,备用区可以是数个字节。存储器页可以具有用于数据区和备用区的数个字节的大小。
可以通过擦除存储器块并且将新数据编程到已经被擦除的存储器块中来更新图1的存储器阵列。编程存储器块将数据写到存储器块中。
读取存储器页之一可能导致读取错误,其中存储器页中的一个或多个为不正确。数据流中的各个位错误的数量被描述为位错误率。位错误率被定义为在数据贮存系统中贮存的数据流中的不正确位的数量。可以在由错误校正码保护的码字内检测不正确的位。
码字指由多个ECC奇偶校验字(parity words)的单个实例覆盖的一组数据字节。错误校正码指经过被分组为码字的主机或用户数据的集合而产生的奇偶校验或冗余数据。位错误率是在快闪存储器中贮存的数据流中的不正确位的数量。
数据贮存系统可以被划分为两个物理平面。平面分别可以包括所有的奇数号的块和所有的偶数号的块。将数据贮存系统配置为多个平面可以允许对每个平面的同时访问以提高性能。通过被配置具有两个平面的数据贮存系统,数据贮存系统可以进行两个同时的读取、进行两个同时的擦除操作、同时编程两页或其组合。可以对平面之一的存储器块进行每个单独的操作。数据贮存系统被描述为具有两个平面,但是可以理解可以配置多于两个平面。
现在参考图3,示出了命令重叠的示例。到来的命令队列可以包括多个主机写命令,每个主机写命令具有相关联的目标逻辑页。主机写命令之一可以与另一个主机写命令重叠,如果这两个写命令以相同的逻辑页为目标。
当存在SSD正在同时工作的多个主机命令时,整体检测处理可以有效地执行主机命令。在数据贮存系统中,有利的是从主机的角度一次进行来自命令队列的多个主机命令。另外,有利的是一旦保证命令的数据被保护,甚至在SSD完成对其工作之前,向主机宣称该命令已完成。数据贮存系统可以得到另一主机命令以开始对其工作并且立刻对甚至更多的命令工作。
但是,较早宣称命令完成要求:一旦宣称命令完成,必须保留在对于相同的地址空间的写入和读取、以及读取和写入之间的原始顺序,以确保数据完整性。对相同位置的写命令必须保留数据先后顺序(chronology),并且任何读取必须从最后完成的写入返回数据。
由于SSD的并行操作特性,不是所有的命令都按相继的顺序被处理。保留对于相同的地址空间的命令的顺序的一种方式是检查使用相同地址空间的命令是否已经正被处理并且管理该命令的分派(dispatch)。例如,如果检测到重叠,则可以通过停止、优先(prioritize)、重新排序、修改或其组合来管理该命令。
一种类型的传统的重叠检测处理可以检查对于相同地址空间的现有操作。处理此问题的最常用的方式是保持具有未完成的操作的逻辑地址的列表,并且针对此列表检查新操作何时入队。
另一种类型的传统的重叠检测处理可以通过创建一个表、然后在未完成的写命令经过数据贮存系统时输入以及从表移除条目来进行,该表保存在任意时间的未完成的写命令的最大数量。传统的重叠检测处理在以软件实现时可能是慢的。以硬件进行传统的重叠检测处理可以通过以表可以支持的条目数量的灵活性作为交换而提供改善的输入-输出性能,并且在SSD管线(pipeline)情况下,可以进行传统的重叠检测。
但是,甚至在硬件中,传统的检测引擎在高队列深度的情况下也花费可观的时间量。每个新命令的地址范围必须与所有其他未完成的命令的地址范围比较以检查重叠。陈旧标志重叠检测处理可以提供具有以软件运行的灵活性而以硬件速度检测重叠的机制。
现在参考图4,其中示出了逻辑到物理表的示例。数据贮存系统可以使用已经利用陈旧标志改进的逻辑到物理表进行陈旧标志重叠检测。
可以使用直接访问表进行陈旧标志重叠检测,其中系统中的每个逻辑页地址映射到该表中的唯一存储器页位置。这样的映射表提供了对现有条目的快速单个访问检测。逻辑到物理表可以提供对于100%的逻辑页的映射。
具有对于每个可能的逻辑地址的单个条目的映射表对于高容量驱动器将消耗大量的存储器。但是,数据贮存系统的逻辑到物理表包含对于每个单个逻辑地址的条目以将逻辑地址空间映射到物理地址空间。因为不是逻辑到物理表中的所有位都需要寻址整个物理地址空间,所以可以向逻辑到物理表添加另外的字段以提供陈旧标志。
逻辑到物理表可以驻留在随机存取存储器中,诸如在双数据速率RAM(DDR)中,以提供对映射信息的快速访问。随机存取存储器的大小必须足够映射逻辑到物理表。逻辑到物理表可能需要尺寸为数据贮存系统的逻辑地址空间的近似1%的本地贮存存储器,以用于逻辑到物理表。例如,100GB的SSD需要100MB的RAM以容纳逻辑到物理表。
可以按各种方式贮存和检索逻辑到物理表。逻辑到物理表可以贮存在非易失性存储器中并且在需要时被检索。在另一示例中,逻辑到物理表可以贮存在其他非易失性贮存介质中,诸如磁阻RAM、铁电RAM或其组合中。逻辑到物理表是可以以随机存取的方式被访问的线性地址空间。
数据贮存系统可以在通电时通过从包括日志文件、超级块和物理块的冗余贮存区恢复逻辑到物理信息来重建逻辑到物理表。当数据贮存系统已经完成重建逻辑到物理表时,可以产生逻辑到物理表就绪信号以传达逻辑到物理表的状态。另外,可以在通电时复位所有的陈旧标志。
逻辑到物理表的部分可以贮存在非易失性存储器单元中以提供数据完整性和恢复。例如,可以使用日志文件恢复逻辑到物理表的部分。在另一示例中,逻辑到物理表的部分可以贮存在超级块的页脚(footer)中,并且逻辑地址也可以贮存在物理页中,逻辑到物理表冗余地贮存在数据贮存系统内。
已经发现向逻辑到物理表中的每个表条目添加陈旧标志字段可以增加数据转移性能。使用陈旧标志来指示表中的物理地址条目在处理中并且还没有被写到快闪(即使其对主机已经完成)可以允许同时进行多个操作。因为陈旧标志指示数据地址不再准确但是新数据在进行中,所以可以利用单个存储器读取检测重叠状况。
已经发现陈旧标志可以被添加到逻辑到物理表以用最小的开销而增加数据转移性能。逻辑到物理表可以包括另外的未使用的存储器空间,使得陈旧标志可以通过将每个地址与陈旧标志相关联来提供完整的覆盖而不用另外的表。
现在参考图5,其中示出了写处理的第一示例。写处理可以向逻辑页之一写入。
写处理中的第一步骤是针对陈旧标志的任何正面地设置的(positively set)值而检查写命令的所有物理地址的逻辑到物理表。如果没有设置陈旧标志,则逻辑到物理表可以设置当前条目的陈旧标志部分,并且释放要处理的命令。如果已经设置了陈旧标志,则数据贮存系统可以进行写合并操作以整合未完成的写操作。
现在参考图6,其中示出了写处理的第二示例。写处理可以更新逻辑到物理表的陈旧标志。
当写命令完成时,可以用新的物理地址更新逻辑到物理表。当地址被更新时,可以同时清除陈旧标志。以铺盖(blanket)方式清除陈旧标志使得在给定时间可以仅存在一个版本的进行中的写数据。能够使得陈旧标志成为计数以应对多个版本,但是基于陈旧标志可用的位数量,总是存在上限。尽管描述了单个位实现方式,但是可以理解,多个位实现方式对于增加允许的进行中的版本的数量也将是有效的。
命令队列可以缓冲多个写命令。例如,数据贮存系统通常可以缓冲32到300个写命令。但是,可以理解,数据贮存系统可以配置为容纳经历(subject to)对于命令序列可用的物理存储器量的任意数量的写命令。缓冲的写命令的数量可以基于当电力故障发生时能够存储的数据的量。缓冲的写命令的数量可以基于对于电力故障操作可用的电容性电力(capacitive power)的量。
现在参考图7,其中示出了读取处理的示例。读取处理可以在重叠情况下读取逻辑页。
当处理读取命令时,读取命令必须访问逻辑到物理表以标识其应该访问哪个存储器以对该读取进行服务。因为陈旧标志是该表的一部分,所以对于读取命令不需要另外的读取来检测重叠。
如果看到读取命令并且设置了陈旧标志,则存在一些选择用于数据贮存系统来继续。1)驱动器跳过该特定读取直到表中的标志被写入清除,这仅在保证写入足够快地被处理以允许完成读取而不破坏任何等待时间要求的情况下才是合理的。2)读取命令对陈旧标志的检测可以触发陈旧的写入被优先对待使得陈旧标志将在短期内被清除。3)可以通过返回对于相同地址空间的进行中的写数据来对读取命令进行服务。
当大块写入在进行中并且驱动器必须更新在该范围内的每个逻辑页的陈旧标志时,利用陈旧标志保护数据可能承受性能损失。为了降低大范围更新所有陈旧标志的影响,可以实施二进制混合方法,其中驱动器在对于大块访问使用传统的重叠检测与当在处理小块时使用基于逻辑到物理表的陈旧标志重叠检测之间切换。
数据贮存系统还可以包括用于映射陈旧标志信息的单独的表,诸如陈旧表。陈旧表可以是高度压缩的。单独的表可以编码整个逻辑地址空间用于映射到逻辑到物理表中。单独的表可以通过将多个陈旧标志映射到单个存储器字中而提供压缩。
这意味着对于较大的转移大小、每个主机请求多个逻辑页、单独的表方法可以减少存储器访问。其还保留在主处理中的重叠检测的恒定成本。单独的表处理在非常高的队列深度的情况下是有益的。因此,具有用于陈旧标志的单独的表是对于重叠检测的可行的变型。
陈旧标志信息可以是具有在大量的条目上分散的一些值的备用数据。例如,对于具有两千万个逻辑页的驱动器,可以具有近似100个陈旧页。
已经发现使用利用陈旧标志而改进的逻辑到物理表提供了对于陈旧标志重叠检测的有效处理。在逻辑到物理制表系统中分配陈旧标志可以在单个查找操作中迅速地检测重叠。
因为陈旧标志与逻辑到物理条目协同定位,所以多个存储器访问可以减少并且不需要另外的存储器来支持本发明。使用陈旧标志增加了有效和无效/陈旧数据的可见性。
在示意性示例中,陈旧标志可以被协同定位在跟踪逻辑到物理表的单独的表中。该单独的表可以被放置在与逻辑到物理表不同的存储器位置中,并且通过使用单个位来表示每个逻辑页而被压缩以使用更少的存储器。
该单独的表可以使用压缩的位字段以提供在大的读取和写入时检查位的有效方式。如果设置了陈旧标志,则通过再循环操作(pass over recycling operation)可能是冗余的。例如,可以使用符号检查或者非零状态检查来提高性能并且降低计算周期。
陈旧标志也可以被贮存在多级独立陈旧标志表中,其中最高级将驱动器的逻辑空间划分为不同的层级。例如,最高级可以包括100段(pieces)或分区(partitions)。
每个多级表中的条目可以指向另一表,该另一表还细分该逻辑空间为不同的分级。最终的分级表可以包括对于每个单独的逻辑页的陈旧标志位置。
已经发现使用分级的多级表来编码对于每个单独的逻辑页的陈旧标志可以通过减少整体的数据足迹而提高性能。每个表仅在其在其表的范围内包括陈旧标志时才可以驻留在随机存取存储器中。如果表不在存储器中,则可以确定其不是陈旧的。
因为陈旧标志被稀疏地分布,所以整体数据要求被最小化,并且相关的表可以被保存在更快的存储器中,诸如SRAM中。因为对于表的每级仅需要一个读取来检测重叠,所以增加了陈旧标志重叠检测性能。如果新的表部分不存在,添加新的陈旧标志需要创建新的表部分,并且在最低级的表中标记该陈旧标志。
在用于再循环存储器的垃圾收集操作期间,垃圾收集处理可以使用陈旧标志来提高性能。如果设置了陈旧标志,则垃圾收集处理可以跳过对于一些存储器页的再循环的写步骤。例如,如果设置了陈旧标志,则不需要进行再循环读取操作,因为不需要移除旧的数据。如果没有设置陈旧标志,则再循环读取可以读取逻辑块并且在新位置中写入逻辑块。
合并多个写入操作可以减少写入放大。因为可以整合来自几个计划的写入命令以及去往相同位置的新数据写入命令的数据,所以整体上存在更少的写入操作。
已经发现使陈旧标志直接与逻辑到物理表相关联可以减少驱动访问操作的数量。陈旧标志重叠检测所需的操作的数量是以相对于队列深度的一的量级(O(1)),其中传统的算法是以相对于队列深度的N的量级(O(N))。
数据贮存系统包括用于陈旧标志重叠检测的多个功能。功能之一调度命令队列中的命令的执行。另一功能组检测共享逻辑地址目标的写命令。另一功能可以基于逻辑到物理表的陈旧标志而读取逻辑块。
上述的功能提供了在针对具体应用或目的而不同的、数据贮存系统的元件中实现的处理。例如,处理可以用具有更多能力的组件或者非易失性存储器设备形成数据贮存系统,并且用具有更少能力的组件形成另一组驱动器。上述的特征可以建立可以使用预定宽度范围的组件和系统特性的数据贮存系统以帮助提高性能和操作完整性。
数据贮存系统可以基于数据贮存系统的操作能力重新配置和再循环存储器元件,诸如擦除块。存储器元件被连续地再分组、再循环、重组为获得数据贮存系统的性能、耐用性和可靠性的布置。换句话说,存储器元件在运行时间操作期间正被使用时并不全部被一致地对待或确定。
可以使用模块实现如上所述的数据贮存系统的控制器的功能或操作。控制器的功能或操作可以以硬件、软件或其组合而实现。可以使用控制单元、只读存储器单元、随机存取存储器单元、存储器接口单元、主机接口单元、ECC单元或其组合实现各模块。
作为例子以模块功能或顺序描述了数据贮存系统。模块可以被不同地划分。每个模块可以单独地并且独立于其他模块而操作。
此外,在一个模块中产生的数据可以由蓝牙模块使用而不用彼此直接耦合。更进一步,模块可以被实现为控制单元内的硬件加速器(未示出),或者可以被实现为控制器中或控制器外部的硬件加速器。控制器可以耦合到存储器阵列和主机。控制单元可以耦合到主机接口、存储器接口、ECC单元、只读存储器和随机存取存储器。
确定数据贮存系统的存储器块中的数据位的配置的物理变换得到实体世界中的移动,诸如人们基于陈旧标志和逻辑到物理表的操作而使用数据贮存系统。在真实世界中的移动发生时,移动本身创建了另外的信息,该另外的信息被转换回以分配用户数据。在数据贮存系统的运行时间操作期间使用被更新的用户数据可以继续真实世界中的移动。例如,数据贮存系统可以在两个不同的主机之间物理地移动以将在该数据贮存系统中编码的数据位从一个系统转移到另一系统。
现在参考图8,其中示出了在本发明的进一步的实施例中的图1的数据贮存系统的操作的方法的流程图。该方法包括:将对于存储器块的逻辑地址的写命令贮存在块中;基于块中的写命令检测重叠;以及基于块中的重叠更新逻辑到物理表中的陈旧标志。
因此,已经发现本发明的数据贮存系统提供了对于具有陈旧数据机制的数据贮存系统的重要的并且目前为止未知的并且不可用的方案、能力和功能方面。得到的方法、处理、装置、设备、产品和/或系统是直接的、成本高效的、不复杂的、高度通用的、准确的、灵敏的且高效的,并且可以通过采用用于容易、有效且经济的制造、应用和利用的已知组件来实现。
本发明的另一重要方面是其有价值地支持并且服务于降低成本、简化系统以及提高性能的历史趋势。
本发明的这些和其他有价值的方面因而使技术状态前进到至少下一级。
将理解,尽管在此可能使用了术语“第一”、“第二”等来描述各种元素,这些元件不应被这些术语限制。这些术语仅用于将元素彼此区分。例如,第一名可以被称作第二命令,并且类似地,第二命令可以称为第一命令,而不改变描述的含义,只要所有出现的“第一命令”一致地重新命名并且所有出现的“第二命令”被一致地重新命名。第一命令和第二命令都是命令,但是它们不是相同的命令。
在此使用的术语是仅仅为了描述具体实施例的目的并且不意图限制权利要求。如在实施例的描述和所附权利要求书中所使用的,单数形式“一”、“一个”和“该”意图也包括复数形式,除非上下文清楚表明不是这样。还将理解,在此使用的术语“和/或”指代并且包含相关联的列出的条目的一个或多个的任意及所有可能的组合。还将理解,术语“包括”和/或“包含”当在此说明书中使用时指定所述的特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。
如在此使用的,取决于上下文,术语“如果”可以理解为意味着“当在先所述的条件是真时”、“在在先所述的条件是真时”或者“响应于确定在先所述的条件是真”或者“根据在先所述的条件是真的确定”或者“响应于检测到在先所述的条件是真”。类似地,取决于上下文,短语“如果确定[在先所述的条件是真]”或者“如果[在先所述的条件是真]”或者“当[在先所述的条件是真]时”可以理解为意味着“在确定在先所述的条件是真时”或者“响应于确定在先所述的条件是真”或者“根据在先所述的条件是真的确定”或者“在检测到在先所述的条件是真时”或者“响应于检测到在先所述的条件是真”。
为了解释的目的已经参考具体实施例描述了以上描述。但是,以上示意性的讨论不意图是穷尽的或者将权利要求限制到所公开的精确形式。考虑到以上教导,许多修改和变型是可能的。选择和描述这些实施例以便最佳地解释操作原理和实际应用,由此使本领域其他技术人员能够实现。

Claims (25)

1.一种数据贮存系统的操作的方法,包括:
接收指定要写入到的逻辑地址的写入命令;
确定是否设置了与该逻辑地址对应的陈旧标志,其中该陈旧标志是与该逻辑地址相关联的参数,该参数指示存储器中的数据是否是对于该逻辑地址的最新数据;
根据没有设置陈旧标志的确定,设置陈旧标志并且释放要处理的写入命令;
根据设置了陈旧标志的确定,检测重叠,其中该重叠指示两个或更多未完成的写入命令正在相同的存储器空间上操作,
接收指定从其读取的第二逻辑地址的读取命令;
确定是否设置了与该第二逻辑地址对应的第二陈旧标志;
根据没有设置第二陈旧标志的确定,进行该读取命令,其中进行该读取命令包括从与该第二逻辑地址对应的物理地址读取数据,其中使用逻辑到物理表确定该物理地址;以及
根据设置了第二陈旧标志的确定,跳过该读取命令的进行直到没有设置第二陈旧标志。
2.如权利要求1所述的方法,还包括:
响应于检测到重叠,进行写入合并操作,其中所述写入合并操作整合对于该逻辑地址的两个或更多未完成的写入命令。
3.如权利要求1所述的方法,还包括:
完成写入命令的处理;以及
更新陈旧标志。
4.如权利要求3所述的方法,其中更新陈旧标志包括清除陈旧标志。
5.如权利要求3所述的方法,其中所述陈旧标志是与各个逻辑地址相关联的未完成的写入命令的数量的计数,并且更新陈旧标志包括将该计数递减。
6.如权利要求1所述的方法,还包括:
根据设置了第二陈旧标志的确定,使陈旧写入优先,其中陈旧写入的完成清除该第二陈旧标志。
7.如权利要求1-5中任意一项所述的方法,其中多个逻辑地址的每个逻辑地址具有相应的陈旧标志,并且每个陈旧标志被贮存在用于将逻辑地址映射到物理地址的逻辑到物理表中。
8.如权利要求1-5中任意一项所述的方法,其中多个逻辑地址的每个逻辑地址具有相应的陈旧标志,并且每个陈旧标志被贮存在与用于将逻辑地址映射到物理地址的逻辑到物理表分开的表中。
9.一种数据贮存系统的操作的方法,包括:
接收指定要写入到的逻辑地址的写入命令;
确定是否设置了与该逻辑地址对应的陈旧标志,其中该陈旧标志是与该逻辑地址相关联的参数,该参数指示存储器中的数据是否是对于该逻辑地址的最新数据;
根据没有设置陈旧标志的确定,设置陈旧标志并且释放要处理的写入命令;
根据设置了陈旧标志的确定,检测重叠,其中该重叠指示两个或更多未完成的写入命令正在相同的存储器空间上操作;
接收指定从其读取的第二逻辑地址的读取命令;
确定是否设置了与该第二逻辑地址对应的第二陈旧标志;
根据没有设置第二陈旧标志的确定,进行该读取命令,其中进行该读取命令包括从与该第二逻辑地址对应的物理地址读取数据,其中使用逻辑到物理表确定该物理地址;以及
根据设置了第二陈旧标志的确定,通过从对于该第二逻辑地址的进行中的写入数据读取数据来为该读取命令服务。
10.如权利要求9所述的方法,还包括:
响应于检测到重叠,进行写入合并操作,其中所述写入合并操作整合对于该逻辑地址的两个或更多未完成的写入命令。
11.如权利要求9所述的方法,还包括:
完成写入命令的处理;以及
更新陈旧标志。
12.如权利要求11所述的方法,其中更新陈旧标志包括清除陈旧标志。
13.如权利要求11所述的方法,其中所述陈旧标志是与各个逻辑地址相关联的未完成的写入命令的数量的计数,并且更新陈旧标志包括将该计数递减。
14.如权利要求9所述的方法,还包括:
根据设置了第二陈旧标志的确定,使陈旧写入优先,其中陈旧写入的完成清除该第二陈旧标志。
15.如权利要求9-13中任意一项所述的方法,其中多个逻辑地址的每个逻辑地址具有相应的陈旧标志,并且每个陈旧标志被贮存在用于将逻辑地址映射到物理地址的逻辑到物理表中。
16.如权利要求9-13中任意一项所述的方法,其中多个逻辑地址的每个逻辑地址具有相应的陈旧标志,并且每个陈旧标志被贮存在与用于将逻辑地址映射到物理地址的逻辑到物理表分开的表中。
17.一种数据贮存系统,包括:
一个或多个处理器;以及
存储器,贮存要由该一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于进行以下步骤的指令:
接收指定要写入到的逻辑地址的写入命令;
确定是否设置了与该逻辑地址对应的陈旧标志,其中该陈旧标志是与该逻辑地址相关联的参数,该参数指示存储器中的数据是否是对于该逻辑地址的最新数据;
根据没有设置陈旧标志的确定,设置陈旧标志并且释放要处理的写入命令;
根据设置了陈旧标志的确定,检测重叠,其中该重叠指示两个或更多未完成的写入命令正在相同的存储器空间上操作;
接收指定从其读取的第二逻辑地址的读取命令;
确定是否设置了与该第二逻辑地址对应的第二陈旧标志;
根据没有设置第二陈旧标志的确定,进行该读取命令,其中进行该读取命令包括从与该第二逻辑地址对应的物理地址读取数据,其中使用逻辑到物理表确定该物理地址;以及
根据设置了第二陈旧标志的确定,跳过该读取命令的进行直到没有设置第二陈旧标志。
18.如权利要求17所述的数据贮存系统,其中所述一个或多个程序还包括用于进行以下步骤的指令:
响应于检测到重叠,进行写入合并操作,其中所述写入合并操作整合对于该逻辑地址的两个或更多未完成的写入命令。
19.如权利要求17-18的任意一项所述的数据贮存系统,其中所述一个或多个程序还包括用于进行以下步骤的指令:
完成写入命令的处理;以及
更新陈旧标志。
20.如权利要求17所述的数据贮存系统,其中所述一个或多个程序还包括用于进行以下步骤的指令:
根据设置了第二陈旧标志的确定,使陈旧写入优先,其中陈旧写入的完成清除该第二陈旧标志。
21.一种数据贮存系统,包括:
一个或多个处理器;以及
存储器,贮存要由该一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于进行以下步骤的指令:
接收指定要写入到的逻辑地址的写入命令;
确定是否设置了与该逻辑地址对应的陈旧标志,其中该陈旧标志是与该逻辑地址相关联的参数,该参数指示存储器中的数据是否是对于该逻辑地址的最新数据;
根据没有设置陈旧标志的确定,设置陈旧标志并且释放要处理的写入命令;
根据设置了陈旧标志的确定,检测重叠,其中该重叠指示两个或更多未完成的写入命令正在相同的存储器空间上操作;
接收指定从其读取的第二逻辑地址的读取命令;
确定是否设置了与该第二逻辑地址对应的第二陈旧标志;
根据没有设置第二陈旧标志的确定,进行该读取命令,其中进行该读取命令包括从与该第二逻辑地址对应的物理地址读取数据,其中使用逻辑到物理表确定该物理地址;以及
根据设置了第二陈旧标志的确定,通过从对于该第二逻辑地址的进行中的写入数据读取数据来为该读取命令服务。
22.一种数据贮存系统,包括:
用于接收指定要写入到的逻辑地址的写入命令的部件;
用于确定是否设置了与该逻辑地址对应的陈旧标志的部件,其中该陈旧标志是与该逻辑地址相关联的参数,该参数指示存储器中的数据是否是对于该逻辑地址的最新数据;
用于根据没有设置陈旧标志的确定而设置陈旧标志并且释放要处理的写入命令的部件;
用于根据设置了陈旧标志的确定而检测重叠的部件,其中该重叠指示两个或更多未完成的写入命令正在相同的存储器空间上操作;
用于接收指定从其读取的第二逻辑地址的读取命令的部件;
用于确定是否设置了与该第二逻辑地址对应的第二陈旧标志的部件;
用于根据没有设置第二陈旧标志的确定而进行该读取命令的部件,其中进行该读取命令包括从与该第二逻辑地址对应的物理地址读取数据,其中使用逻辑到物理表确定该物理地址;以及
用于根据设置了第二陈旧标志的确定而跳过该读取命令的进行直到没有设置第二陈旧标志的部件。
23.如权利要求22所述的数据贮存系统,还包括:
用于响应于检测到重叠进行写入合并操作的部件,其中所述写入合并操作整合对于该逻辑地址的两个或更多未完成的写入命令。
24.如权利要求22-23的任意一项所述的数据贮存系统,还包括用于完成写入命令的处理以及更新陈旧标志的部件。
25.一种数据贮存系统,包括:
用于接收指定要写入到的逻辑地址的写入命令的部件;
用于确定是否设置了与该逻辑地址对应的陈旧标志的部件,其中该陈旧标志是与该逻辑地址相关联的参数,该参数指示存储器中的数据是否是对于该逻辑地址的最新数据;
用于根据没有设置陈旧标志的确定而设置陈旧标志并且释放要处理的写入命令的部件;
用于根据设置了陈旧标志的确定而检测重叠的部件,其中该重叠指示两个或更多未完成的写入命令正在相同的存储器空间上操作;
用于接收指定从其读取的第二逻辑地址的读取命令的部件;
用于确定是否设置了与该第二逻辑地址对应的第二陈旧标志的部件;
用于根据没有设置第二陈旧标志的确定,进行该读取命令的部件,其中进行该读取命令包括从与该第二逻辑地址对应的物理地址读取数据,其中使用逻辑到物理表确定该物理地址;以及
用于根据设置了第二陈旧标志的确定,通过从对于该第二逻辑地址的进行中的写入数据读取数据来为该读取命令服务的部件。
CN201480044938.1A 2013-08-07 2014-08-05 具有陈旧数据机制的数据贮存系统及其操作方法 Active CN105683897B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361863420P 2013-08-07 2013-08-07
US61/863,420 2013-08-07
US14/332,259 US9448946B2 (en) 2013-08-07 2014-07-15 Data storage system with stale data mechanism and method of operation thereof
US14/332,259 2014-07-15
PCT/US2014/049734 WO2015021022A1 (en) 2013-08-07 2014-08-05 Data storage system with stale data mechanism and method of operation thereof

Publications (2)

Publication Number Publication Date
CN105683897A CN105683897A (zh) 2016-06-15
CN105683897B true CN105683897B (zh) 2018-11-06

Family

ID=52449634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480044938.1A Active CN105683897B (zh) 2013-08-07 2014-08-05 具有陈旧数据机制的数据贮存系统及其操作方法

Country Status (3)

Country Link
US (1) US9448946B2 (zh)
CN (1) CN105683897B (zh)
WO (1) WO2015021022A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946644B2 (en) * 2015-03-25 2018-04-17 SK Hynix Inc. Memory system and operating method thereof
KR102425470B1 (ko) * 2015-04-06 2022-07-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9904607B2 (en) 2015-11-13 2018-02-27 International Business Machines Corporation Logical to physical table restoration from stored journal entries
US10884914B2 (en) 2016-02-19 2021-01-05 International Business Machines Corporation Regrouping data during relocation to facilitate write amplification reduction
US9852025B2 (en) 2016-03-29 2017-12-26 Alibaba Group Holding Limited Protecting data stored on a solid state drive
CN107391544B (zh) * 2017-05-24 2020-06-30 阿里巴巴集团控股有限公司 列式存储数据的处理方法、装置、设备及计算机储存介质
US10459803B2 (en) * 2017-06-28 2019-10-29 Western Digital Technologies, Inc. Method for management tables recovery
CN109213423B (zh) * 2017-06-30 2024-01-26 北京忆恒创源科技股份有限公司 基于地址屏障无锁处理并发io命令
US10572391B2 (en) 2018-02-09 2020-02-25 Western Digital Technologies, Inc. Methods and apparatus for implementing a logical to physical address mapping in a solid state drive
TWI709042B (zh) * 2018-11-08 2020-11-01 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統
CN109460193B (zh) * 2018-11-15 2021-06-29 郑州云海信息技术有限公司 一种存储系统中io处理方法、装置及终端
KR20200078101A (ko) * 2018-12-21 2020-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11481152B2 (en) * 2019-12-30 2022-10-25 Micron Technology, Inc. Execution of commands addressed to a logical block
CN111158607B (zh) * 2019-12-31 2023-11-17 潍柴动力股份有限公司 数据擦写操作的处理方法、系统、电子设备及存储介质
WO2022120517A1 (en) * 2020-12-07 2022-06-16 Micron Technology, Inc. Techniques to reduce write amplification
US11640264B2 (en) 2021-08-30 2023-05-02 Western Digital Technologies, Inc. Parallel commands overlap detection based on queue-depth

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201111986A (en) * 2009-09-29 2011-04-01 Silicon Motion Inc Memory apparatus and data access method for memories

Family Cites Families (293)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4048481A (en) 1974-12-17 1977-09-13 Honeywell Information Systems Inc. Diagnostic testing apparatus and method
JPH02128522A (ja) 1988-11-09 1990-05-16 Nakamichi Corp デグリッチ回路
EP0618535B1 (en) 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
US5210854A (en) 1989-06-14 1993-05-11 Digital Equipment Corporation System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5450354A (en) 1992-08-31 1995-09-12 Nippon Steel Corporation Non-volatile semiconductor memory device detachable deterioration of memory cells
US5311395A (en) 1992-10-29 1994-05-10 Ncr Corporation Surface mount heat sink
US5479638A (en) 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
CA2121852A1 (en) 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
JPH07336483A (ja) 1994-06-03 1995-12-22 Canon Inc ファクシミリ装置およびメモリ管理方式
GB2291991A (en) 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US5949785A (en) 1995-11-01 1999-09-07 Whittaker Corporation Network access communications system and methodology
JP3197815B2 (ja) 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
GB9614551D0 (en) 1996-07-11 1996-09-04 Memory Corp Plc Memory system
US5930504A (en) 1996-07-22 1999-07-27 Intel Corporation Dynamic nonvolatile memory update in a computer system
US6381670B1 (en) 1997-01-07 2002-04-30 Aplus Flash Technology, Inc. Flash memory array having maximum and minimum threshold voltage detection for eliminating over-erasure problem and enhancing write operation
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
JP3321555B2 (ja) 1997-11-21 2002-09-03 日本オプネクスト株式会社 光伝送用モジュールの製造方法並びにビット・エラーレート特性検査システム
US6091652A (en) 1998-12-11 2000-07-18 Lsi Logic Corporation Testing semiconductor devices for data retention
US6412080B1 (en) 1999-02-23 2002-06-25 Microsoft Corporation Lightweight persistent storage system for flash memory devices
US7333364B2 (en) 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US7620769B2 (en) 2000-01-06 2009-11-17 Super Talent Electronics, Inc. Recycling partially-stale flash blocks using a sliding window for multi-level-cell (MLC) flash memory
US7827348B2 (en) 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
KR100577380B1 (ko) 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
US6854070B2 (en) 2000-01-25 2005-02-08 Hewlett-Packard Development Company, L.P. Hot-upgrade/hot-add memory
US6728913B1 (en) 2000-02-25 2004-04-27 Advanced Micro Devices, Inc. Data recycling in memory
EP1130600A1 (en) 2000-03-01 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Data balancing scheme in solid state storage devices
US20020056025A1 (en) 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US6249434B1 (en) 2000-06-20 2001-06-19 Adc Telecommunications, Inc. Surface mounted conduction heat sink
US6529997B1 (en) 2000-08-11 2003-03-04 Storage Technology Corporation Apparatus and method for writing and reading data to and from a virtual volume of redundant storage devices
US6552581B1 (en) 2000-08-25 2003-04-22 Agere Systems Inc. Current recycling circuit and a method of current recycling
KR100644602B1 (ko) 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6862692B2 (en) 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US6775792B2 (en) 2001-01-29 2004-08-10 Snap Appliance, Inc. Discrete mapping of parity blocks
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US6948026B2 (en) 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
JP3963692B2 (ja) 2001-10-15 2007-08-22 富士通株式会社 複数の情報処理装置の電源制御方法、その情報処理装置、及びプログラム
US6618249B2 (en) 2002-02-05 2003-09-09 Quantum Corporation Thermal cooling system for densely packed storage devices
US20030163633A1 (en) 2002-02-27 2003-08-28 Aasheim Jered Donald System and method for achieving uniform wear levels in a flash memory device
WO2004001605A1 (en) 2002-06-19 2003-12-31 Tokyo Electron Device Limited Memory device, memory managing method and program
US7082495B2 (en) 2002-06-27 2006-07-25 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory
US6871304B2 (en) 2002-08-12 2005-03-22 Nortel Networks Limited Method and apparatus for adjusting receiver voltage threshold and phase sampling point using FEC counts
CN100347685C (zh) 2002-08-29 2007-11-07 松下电器产业株式会社 用于将数据写入快闪存储设备的半导体存储器的装置和方法
US7298888B2 (en) 2002-10-23 2007-11-20 Hamar Laser Instruments, Inc. Electronic level sensor
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US6868473B2 (en) 2002-10-30 2005-03-15 Scientific-Atlanta, Inc. Non-volatile memory access control
US7350101B1 (en) 2002-12-23 2008-03-25 Storage Technology Corporation Simultaneous writing and reconstruction of a redundant array of independent limited performance storage devices
US6975028B1 (en) 2003-03-19 2005-12-13 Delta Design, Inc. Thermal apparatus for engaging electronic device
US7330927B1 (en) 2003-05-07 2008-02-12 Avago Technologies General Ip (Singapore) Pte. Ltd. Apparatus and methodology for a pointer manager
ITMI20031126A1 (it) 2003-06-05 2004-12-06 St Microelectronics Srl Dispositivo di memoria di massa basato su una memoria
US20040252670A1 (en) 2003-06-12 2004-12-16 Nokia Corporation Adaptive power margin adjustment for a 1xEV-DV system
US6906961B2 (en) 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US6903972B2 (en) 2003-07-30 2005-06-07 M-Systems Flash Disk Pioneers Ltd. Different methods applied for archiving data according to their desired lifetime
US7116584B2 (en) 2003-08-07 2006-10-03 Micron Technology, Inc. Multiple erase block tagging in a flash memory device
US20050038792A1 (en) 2003-08-14 2005-02-17 Johnson Ted C. Apparatus and method for operating circular files
US7454495B2 (en) 2003-09-18 2008-11-18 Raritan America, Inc. Intelligent modular server management system for selectively operating and locating a plurality of computers
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7159068B2 (en) 2003-12-22 2007-01-02 Phison Electronics Corp. Method of optimizing performance of a flash memory
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US20080082736A1 (en) 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US7788427B1 (en) 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US7536506B2 (en) 2004-06-21 2009-05-19 Dot Hill Systems Corporation RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
KR100858756B1 (ko) 2004-07-12 2008-09-16 가부시끼가이샤 도시바 저장 디바이스 및 호스트 장치
US8607016B2 (en) 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7427027B2 (en) 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
KR100622349B1 (ko) 2004-08-04 2006-09-14 삼성전자주식회사 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법.
US7693422B2 (en) 2004-09-28 2010-04-06 Alcatel-Lucent Usa Inc. Constraint-based design of optical transmission systems
US20070276973A1 (en) 2004-09-30 2007-11-29 Intel Corporation Managing queues
US7233497B2 (en) 2004-10-06 2007-06-19 Hewlett-Packard Development Company, L.P. Surface mount heat sink
JP2006107311A (ja) 2004-10-08 2006-04-20 Hitachi Ltd ディスクアレイ装置およびその制御方法
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7464243B2 (en) 2004-12-21 2008-12-09 Cisco Technology, Inc. Method and apparatus for arbitrarily initializing a portion of memory
US7770003B2 (en) 2004-12-29 2010-08-03 Intel Corporation Updating firmware securely over a network
US7509474B2 (en) 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
JP4688584B2 (ja) 2005-06-21 2011-05-25 株式会社日立製作所 ストレージ装置
KR20060134395A (ko) 2005-06-22 2006-12-28 엘지전자 주식회사 케이블 방송 수신기 및 펌웨어 업그레이드 방법
US7853749B2 (en) 2005-09-01 2010-12-14 Cypress Semiconductor Corporation Flash drive fast wear leveling
KR101215350B1 (ko) 2005-09-14 2012-12-26 엘지전자 주식회사 케이블 방송 수신기 및 펌웨어 업그레이드 방법
US7533215B2 (en) 2005-09-15 2009-05-12 Intel Corporation Distributed and packed metadata structure for disk cache
US7661054B2 (en) 2005-09-30 2010-02-09 Intel Corporation Methods and arrangements to remap degraded storage blocks
US7472292B2 (en) 2005-10-03 2008-12-30 Hewlett-Packard Development Company, L.P. System and method for throttling memory power consumption based on status of cover switch of a computer system
JP4764696B2 (ja) 2005-10-07 2011-09-07 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US7516267B2 (en) 2005-11-03 2009-04-07 Intel Corporation Recovering from a non-volatile memory failure
US7620710B2 (en) 2005-12-19 2009-11-17 Commvault Systems, Inc. System and method for performing multi-path storage operations
US7355896B2 (en) 2005-12-22 2008-04-08 Chartered Semiconductor Manufacturing Ltd. System for improving endurance and data retention in memory devices
KR101300683B1 (ko) 2006-02-06 2013-08-26 삼성디스플레이 주식회사 액정 표시 장치
CN101288056A (zh) 2006-03-13 2008-10-15 松下电器产业株式会社 闪速存储器用的存储控制器
US7810017B2 (en) 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
JP2007272635A (ja) 2006-03-31 2007-10-18 Toshiba Corp メモリシステム及びコントローラ
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7778077B2 (en) 2006-05-15 2010-08-17 Sandisk Corporation Non-volatile memory system with end of life calculation
US7568135B2 (en) 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US7743216B2 (en) 2006-06-30 2010-06-22 Seagate Technology Llc Predicting accesses to non-requested data
US20080028246A1 (en) 2006-07-31 2008-01-31 Witham Timothy D Self-monitoring and self-adjusting power consumption computer control system
US20080046630A1 (en) 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7738502B2 (en) 2006-09-01 2010-06-15 Intel Corporation Signal noise filtering in a serial interface
US8117396B1 (en) 2006-10-10 2012-02-14 Network Appliance, Inc. Multi-level buffer cache management through soft-division of a uniform buffer cache
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7558109B2 (en) 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US7747813B2 (en) 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
US8560760B2 (en) 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
JP5026102B2 (ja) 2007-02-07 2012-09-12 株式会社日立製作所 ストレージ制御装置及びデータ管理方法
JP5283845B2 (ja) 2007-02-07 2013-09-04 株式会社メガチップス ビットエラーの予防方法、情報処理装置
JP4810469B2 (ja) 2007-03-02 2011-11-09 株式会社東芝 検索支援装置、プログラム及び検索支援システム
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
JP2008269363A (ja) 2007-04-20 2008-11-06 Hitachi Ltd 記憶制御装置および記憶制御方法
KR100909902B1 (ko) 2007-04-27 2009-07-30 삼성전자주식회사 플래쉬 메모리 장치 및 플래쉬 메모리 시스템
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US8209677B2 (en) 2007-05-21 2012-06-26 Sony Corporation Broadcast download system via broadband power line communication
KR100857761B1 (ko) 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US8000161B2 (en) 2007-06-28 2011-08-16 University Of Virginia Patent Foundation Method and system for encoding to eliminate parasitics in crossbar array memories
US8041989B2 (en) 2007-06-28 2011-10-18 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US8296534B1 (en) 2007-06-29 2012-10-23 Emc Corporation Techniques for using flash-based memory in recovery processing
US7747903B2 (en) 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory
US7949817B1 (en) 2007-07-31 2011-05-24 Marvell International Ltd. Adaptive bus profiler
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
WO2009042298A1 (en) 2007-09-26 2009-04-02 Rambus Inc. Flash memory refresh
US8138803B2 (en) 2007-09-26 2012-03-20 Intel Corporation Apparatus and method for selectively enabling and disabling a squelch circuit across AHCI and SATA power states
TWI366828B (en) 2007-09-27 2012-06-21 Phison Electronics Corp Wear leveling method and controller using the same
KR101403429B1 (ko) 2007-10-09 2014-06-03 삼성전자주식회사 멀티 비트 프로그래밍 장치 및 방법
US7639532B2 (en) 2007-10-10 2009-12-29 Micron Technology, Inc. Non-equal threshold voltage ranges in MLC NAND
KR20090042039A (ko) 2007-10-25 2009-04-29 삼성전자주식회사 불휘발성 메모리 장치의 데이터 관리 방법
TWM332248U (en) 2007-11-16 2008-05-11 Carry Technology Co Ltd Display apparatus for phonic recording and playing electronically digital picture
US8341335B2 (en) 2007-12-05 2012-12-25 Densbits Technologies Ltd. Flash memory apparatus with a heating system for temporarily retired memory portions
US8335977B2 (en) 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
JP5207720B2 (ja) 2007-12-07 2013-06-12 ルネサスエレクトロニクス株式会社 Oob検出回路およびシリアルataシステム
US8140746B2 (en) 2007-12-14 2012-03-20 Spansion Llc Intelligent memory data management
KR101498669B1 (ko) 2007-12-20 2015-03-19 삼성전자주식회사 반도체 메모리 시스템 및 그것의 액세스 방법
US8656083B2 (en) 2007-12-21 2014-02-18 Spansion Llc Frequency distributed flash memory allocation based on free page tables
US20090172248A1 (en) 2007-12-27 2009-07-02 Guangqing You Management of a flash memory device
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US9389921B2 (en) 2008-01-14 2016-07-12 Hewlett Packard Enterprise Development Lp System and method for flexible device driver resource allocation
JP5045448B2 (ja) 2008-01-16 2012-10-10 ソニー株式会社 信号処理回路、信号処理方法、再生装置
US8095724B2 (en) 2008-02-05 2012-01-10 Skymedi Corporation Method of wear leveling for non-volatile memory and apparatus using via shifting windows
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US20090259819A1 (en) 2008-04-09 2009-10-15 Skymedi Corporation Method of wear leveling for non-volatile memory
TWI381390B (zh) 2008-04-10 2013-01-01 Phison Electronics Corp 快閃記憶體的損壞區塊辨識方法、儲存系統及其控制器
US8028123B2 (en) 2008-04-15 2011-09-27 SMART Modular Technologies (AZ) , Inc. Circular wear leveling
US7830164B2 (en) 2008-04-22 2010-11-09 Honeywell International Inc. Ducted test socket
US20090271562A1 (en) 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US7957187B2 (en) 2008-05-09 2011-06-07 Sandisk Corporation Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution
KR101506655B1 (ko) 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
US7925807B2 (en) 2008-05-27 2011-04-12 Microsoft Corporation Dynamic microcode for non-volatile memory
US7679948B2 (en) 2008-06-05 2010-03-16 Sun Microsystems, Inc. Write and read assist circuit for SRAM with power recycling
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
KR100974954B1 (ko) 2008-06-26 2010-08-10 에스디씨마이크로 주식회사 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법
US8010738B1 (en) 2008-06-27 2011-08-30 Emc Corporation Techniques for obtaining a specified lifetime for a data storage device
US20090327581A1 (en) 2008-06-30 2009-12-31 Coulson Richard L Nand memory
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US7941591B2 (en) 2008-07-28 2011-05-10 CacheIQ, Inc. Flash DIMM in a standalone cache appliance system and methodology
US8213229B2 (en) 2008-08-22 2012-07-03 HGST Netherlands, B.V. Error control in a flash memory device
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
JP4769853B2 (ja) 2008-09-19 2011-09-07 株式会社日立製作所 記憶制御装置及び記憶装置のデータ消去方法
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8275933B2 (en) 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
US7764550B2 (en) 2008-11-25 2010-07-27 Freescale Semiconductor, Inc. Method of programming a non-volatile memory
KR101555022B1 (ko) 2008-12-02 2015-09-23 삼성전자주식회사 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법
US8261009B2 (en) 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US20100174845A1 (en) 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
WO2010092576A1 (en) 2009-02-11 2010-08-19 Xsignnet Ltd. Virtualized storage system and method of operating it
US8086783B2 (en) 2009-02-23 2011-12-27 International Business Machines Corporation High availability memory system
US9753887B2 (en) 2009-02-24 2017-09-05 Seagate Technology Llc Receiver training during a SATA out of band sequence
JP5268710B2 (ja) 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8095765B2 (en) 2009-03-04 2012-01-10 Micron Technology, Inc. Memory block management
US8239614B2 (en) 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8166232B2 (en) 2009-04-02 2012-04-24 Hitachi, Ltd. Metrics and management for flash memory storage life
US8380946B2 (en) 2009-04-08 2013-02-19 International Business Machines Corporation System, method, and computer program product for estimating when a reliable life of a memory device having finite endurance and/or retention, or portion thereof, will be expended
US8316173B2 (en) 2009-04-08 2012-11-20 International Business Machines Corporation System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention
US8572443B2 (en) 2009-04-08 2013-10-29 International Business Machines Corporation System, method, and computer program product for determining a retention behavior for at least one block of a memory device having finite endurance and/or retention
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8051241B2 (en) 2009-05-07 2011-11-01 Seagate Technology Llc Wear leveling technique for storage devices
US8190873B2 (en) 2009-05-13 2012-05-29 Dell Products L.P. System and method for optimizing performance of an information handling system component
US20100318719A1 (en) 2009-06-12 2010-12-16 Micron Technology, Inc. Methods, memory controllers and devices for wear leveling a memory
US8732389B2 (en) 2009-06-23 2014-05-20 Seagate Technology Llc Memory wear control
US20100332726A1 (en) 2009-06-26 2010-12-30 Solid State System Co., Ltd. Structure and method for managing writing operation on mlc flash memory
JP5353494B2 (ja) 2009-07-03 2013-11-27 富士通株式会社 通信装置、および通信方法
US8516166B2 (en) 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8332578B2 (en) 2009-07-31 2012-12-11 Intel Corporation Method and system to improve the performance of a multi-level cell (MLC) NAND flash memory
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US8072805B2 (en) 2009-08-18 2011-12-06 Skymedi Corporation Method and system of finding a read voltage for a flash memory
US8464106B2 (en) 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
US8463826B2 (en) 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
US8463983B2 (en) 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
EP2333661B1 (en) 2009-09-18 2015-06-10 Yamaha Corporation Firmware update apparatus and program
US8254172B1 (en) 2009-09-30 2012-08-28 Western Digital Technologies, Inc. Wear leveling non-volatile semiconductor memory based on erase times and program times
US8285956B2 (en) 2009-10-22 2012-10-09 Symantec Corporation Efficient logging for asynchronously replicating volume groups
US8560770B2 (en) 2009-11-13 2013-10-15 Seagate Technology Llc Non-volatile write cache for a data storage system
CN101876949B (zh) 2009-11-30 2012-04-25 威盛电子股份有限公司 数据储存系统与方法
US8589302B2 (en) 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US8473669B2 (en) 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8285918B2 (en) 2009-12-11 2012-10-09 Nimble Storage, Inc. Flash memory cache for data storage device
US8607124B2 (en) 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
EP2354864A1 (en) 2010-01-29 2011-08-10 Eurocopter Deutschland GmbH Method and system for an optimized utilization of energy resources of an electrical system
KR101623119B1 (ko) 2010-02-01 2016-05-20 삼성전자주식회사 솔리드 스테이트 드라이브의 에러 제어 방법
US20110191522A1 (en) 2010-02-02 2011-08-04 Condict Michael N Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory
KR101655306B1 (ko) 2010-02-24 2016-09-07 삼성전자주식회사 메모리 시스템 및 그것의 액세스 방법
US8601203B2 (en) 2010-03-12 2013-12-03 Standard Microsystems Corporation Firmware flashing of a portable device using a serial bus hub
US8726126B2 (en) 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
CN102201259A (zh) 2010-03-24 2011-09-28 建兴电子科技股份有限公司 非易失性存储器的平均抹写方法
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
TWI447733B (zh) 2010-04-14 2014-08-01 Phison Electronics Corp 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器
US8510637B2 (en) 2010-04-14 2013-08-13 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
WO2011132227A1 (en) 2010-04-22 2011-10-27 Hitachi, Ltd. System and method of controlling migration of data based on deduplication efficiency
US8799747B2 (en) 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US8397101B2 (en) 2010-06-03 2013-03-12 Seagate Technology Llc Ensuring a most recent version of data is recovered from a memory
WO2011156466A2 (en) 2010-06-08 2011-12-15 Hewlett-Packard Development Company, L.P. Storage caching
US8612669B1 (en) 2010-06-28 2013-12-17 Western Digital Technologies, Inc. System and method for performing data retention in solid-state memory using copy commands and validity and usage data
US8386714B2 (en) 2010-06-29 2013-02-26 International Business Machines Corporation Reducing write amplification in a cache with flash memory used as a write cache
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US9069688B2 (en) 2011-04-15 2015-06-30 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US8503238B1 (en) 2010-07-21 2013-08-06 Sk Hynix Memory Solutions Inc. Error recovery for flash memory
US20120023144A1 (en) 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
US9037778B2 (en) 2010-08-20 2015-05-19 Samsung Electronics Co., Ltd. Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device
KR101702392B1 (ko) 2010-08-20 2017-02-06 삼성전자주식회사 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법
US8832507B2 (en) 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US8363413B2 (en) 2010-09-13 2013-01-29 Raytheon Company Assembly to provide thermal cooling
US20120079348A1 (en) 2010-09-24 2012-03-29 Helia Naeimi Data with appended crc and residue value and encoder/decoder for same
US8627175B2 (en) 2010-09-27 2014-01-07 Seagate Technology Llc Opportunistic decoding in memory systems
US8219724B1 (en) 2010-09-29 2012-07-10 Emc Corporation Flexibly managing I/O operations based on application awareness
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US20120254686A1 (en) 2010-10-01 2012-10-04 SIGLEAD Inc. Non-volatile semiconductor memory devices and error correction methods
WO2012051600A2 (en) 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
JP5534024B2 (ja) * 2010-10-21 2014-06-25 富士通株式会社 ストレージ制御装置およびストレージ制御方法
US8694811B2 (en) 2010-10-29 2014-04-08 Texas Instruments Incorporated Power management for digital devices
US8806106B2 (en) 2010-11-12 2014-08-12 Seagate Technology Llc Estimating wear of non-volatile, solid state memory
US8843489B2 (en) 2010-11-16 2014-09-23 Actifio, Inc. System and method for managing deduplicated copies of data using temporal relationships among copies
US8656086B2 (en) 2010-12-08 2014-02-18 Avocent Corporation System and method for autonomous NAND refresh
US8521981B2 (en) 2010-12-16 2013-08-27 Microsoft Corporation Memory power tokens
JP2012129859A (ja) 2010-12-16 2012-07-05 Nec Corp 無線アクセスネットワークシステム、遠隔監視装置、アンテナ角度制御方法、及びアンテナ角度制御プログラム
KR101703106B1 (ko) 2011-01-04 2017-02-06 삼성전자주식회사 부분-이레이즈 동작을 수행할 수 있는 비휘발성 메모리 장치와 상기 비휘발성 메모리 장치를 포함하는 장치들
US8364888B2 (en) 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
JP2012169006A (ja) 2011-02-14 2012-09-06 Toshiba Corp 半導体記憶装置
KR101875142B1 (ko) 2011-02-17 2018-07-06 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
CN102890966B (zh) 2011-03-08 2016-12-14 凌力尔特有限公司 低电力应用中擦除储存于非易失性存储器中的数据的方法和系统
US8732518B2 (en) 2011-04-13 2014-05-20 Netapp, Inc. Reliability based data allocation and recovery in a storage system
US8918595B2 (en) 2011-04-28 2014-12-23 Seagate Technology Llc Enforcing system intentions during memory scheduling
US8862804B2 (en) 2011-04-29 2014-10-14 Western Digital Technologies, Inc. System and method for improved parity determination within a data redundancy scheme in a solid state memory
US8656088B2 (en) 2011-05-20 2014-02-18 International Business Machines Corporation Optimized flash based cache memory
TWI479495B (zh) 2011-06-02 2015-04-01 Phison Electronics Corp 資料讀取方法、記憶體控制器及記憶體儲存裝置
US8806108B2 (en) 2011-06-07 2014-08-12 Hitachi, Ltd. Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
US8719531B2 (en) 2011-06-14 2014-05-06 Western Digital Technologies, Inc. System and method for performing data retention that incorporates environmental conditions
US8694719B2 (en) 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
US8954689B2 (en) 2011-06-30 2015-02-10 Seagate Technology Llc Limiting activity rates that impact life of a data storage media
US8645773B2 (en) 2011-06-30 2014-02-04 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9069468B2 (en) 2011-09-11 2015-06-30 Microsoft Technology Licensing, Llc Pooled partition layout and representation
US9477590B2 (en) 2011-09-16 2016-10-25 Apple Inc. Weave sequence counter for non-volatile memory systems
JP5481453B2 (ja) 2011-09-21 2014-04-23 株式会社東芝 メモリデバイス
US8760932B2 (en) 2011-10-18 2014-06-24 Seagate Technology Llc Determination of memory read reference and programming voltages
CN103064478A (zh) 2011-10-19 2013-04-24 鸿富锦精密工业(深圳)有限公司 具有导风罩的电脑系统
US8811081B2 (en) 2011-12-09 2014-08-19 Sandisk Technologies Inc. Systems and methods of updating read voltages in a memory
US9141166B2 (en) 2011-12-13 2015-09-22 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains
US8832506B2 (en) 2012-01-20 2014-09-09 International Business Machines Corporation Bit error rate based wear leveling for solid state drive memory
US8792272B2 (en) 2012-01-30 2014-07-29 HGST Netherlands B.V. Implementing enhanced data partial-erase for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8892811B2 (en) 2012-03-01 2014-11-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Reducing write amplification in a flash memory
US8935459B2 (en) 2012-03-08 2015-01-13 Apple Inc. Heuristics for programming data in a non-volatile memory
US8760922B2 (en) 2012-04-10 2014-06-24 Sandisk Technologies Inc. System and method for micro-tiering in non-volatile memory
US9116625B2 (en) * 2012-05-11 2015-08-25 Micron Technology, Inc. Write command overlap detection
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9058281B2 (en) 2012-06-01 2015-06-16 Seagate Technology Llc Allocating memory usage based on quality metrics
TWI467376B (zh) 2012-06-11 2015-01-01 Phison Electronics Corp 資料保護方法、記憶體控制器與記憶體儲存裝置
US9064575B2 (en) 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US9405355B2 (en) 2012-08-21 2016-08-02 Micron Technology, Inc. Memory operation power management by data transfer time adjustment
US8862818B1 (en) 2012-09-27 2014-10-14 Emc Corporation Handling partial stripe writes in log-structured storage
US8914670B2 (en) 2012-11-07 2014-12-16 Apple Inc. Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
US9145311B2 (en) 2012-12-11 2015-09-29 Anthony Elmer Greene Apparatus for controlling an electrolytic cell in a water purification system
US9411718B2 (en) 2012-12-21 2016-08-09 Seagate Technology Llc Method to apply fine grain wear leveling and garbage collection
US20140195482A1 (en) 2013-01-08 2014-07-10 Lyve Minds, Inc. Data synchronization in a storage network
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9043668B2 (en) 2013-02-08 2015-05-26 Seagate Technology Llc Using ECC data for write deduplication processing
US8972776B2 (en) 2013-03-06 2015-03-03 Seagate Technology, Llc Partial R-block recycling
US9229525B2 (en) 2013-06-17 2016-01-05 Apple Inc. Adaptive latency tolerance for power management of memory bus interfaces

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201111986A (en) * 2009-09-29 2011-04-01 Silicon Motion Inc Memory apparatus and data access method for memories

Also Published As

Publication number Publication date
CN105683897A (zh) 2016-06-15
WO2015021022A1 (en) 2015-02-12
US9448946B2 (en) 2016-09-20
US20150046665A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
CN105683897B (zh) 具有陈旧数据机制的数据贮存系统及其操作方法
US8438361B2 (en) Logical block storage in a storage device
US10475518B2 (en) Memory system, memory system control method, and program
US10776264B2 (en) Data storage device with power recovery procedure and method for operating non-volatile memory
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
CN109800180A (zh) 用于地址映射的方法和存储器系统
CN107077427A (zh) 跨电源周期来跟踪对写入命令和解除映射命令的混合
CN107870740A (zh) 用于控制存储器的设备和方法
US8489942B1 (en) Memory management method, and memory controller and memory storage device using the same
CN110244907A (zh) 存储器系统及该存储器系统的操作方法
US10963160B2 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
CN110442529B (zh) 可配置的存储器系统及配置和使用该存储器系统的方法
US20200089566A1 (en) Apparatus for diagnosing memory system and operating method thereof
US10089255B2 (en) High performance host queue monitor for PCIE SSD controller
US10140215B1 (en) Low overhead mapping for highly sequential data
US20150339069A1 (en) Memory system and method
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
CN110532195A (zh) 存储器系统的工作负荷分簇及执行其的方法
US8972650B2 (en) Methods and systems for performing efficient page reads in a non-volatile memory
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
US20140025863A1 (en) Data storage device, memory control method, and electronic device with data storage device
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11698856B2 (en) Maintaining sequentiality for media management of a memory sub-system
CN113010447B (zh) 用于存储器子系统的媒体管理的快照读取优化
US11714577B2 (en) Snap read optimization for media management for a memory sub-system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: texas

Applicant after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Applicant before: Sandisk Corp.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant