CN102549554A - 基于条带的存储器操作 - Google Patents
基于条带的存储器操作 Download PDFInfo
- Publication number
- CN102549554A CN102549554A CN201080043681XA CN201080043681A CN102549554A CN 102549554 A CN102549554 A CN 102549554A CN 201080043681X A CN201080043681X A CN 201080043681XA CN 201080043681 A CN201080043681 A CN 201080043681A CN 102549554 A CN102549554 A CN 102549554A
- Authority
- CN
- China
- Prior art keywords
- band
- data
- control circuit
- write
- accumulator system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明包含用于基于条带的存储器操作的方法及装置。一个方法实施例包含将数据写入跨越多个存储器装置的存储卷的第一条带中。通过将经更新数据写入跨越所述多个存储器装置的所述存储卷的第二条带的一部分中来更新所述第一条带的一部分。使所述第一条带的所述部分无效。维持所述第一条带的所述无效部分及所述第一条带的剩余部分直到所述第一条带被回收为止。本发明还揭示其它方法及装置。
Description
技术领域
本发明一般来说涉及半导体存储器装置、方法及系统,且更特定来说,涉及基于条带的存储器操作。
背景技术
通常提供存储器装置作为计算机或其它电子装置中的内部半导体集成电路。存在包含易失性及非易失性存储器在内的许多不同类型的存储器。易失性存储器可需要电力来维持其数据且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在不供电时仍保持所存储的信息来提供持久数据且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及相变随机存取存储器(PCRAM)以及其它存储器。
可将若干个存储器装置组合在一起以形成固态驱动器(SSD)。固态驱动器可包含非易失性存储器(例如,NAND快闪存储器及NOR快闪存储器)及/或可包含易失性存储器(例如,DRAM及SRAM)以及各种其它类型的非易失性及易失性存储器。可利用包含浮栅快闪装置及电荷陷获快闪(CTF)装置(其使用将信息存储在氮化物层中的电荷陷阱中的半导体-氧化物-氮化物-氧化物-半导体及金属-氧化物-氮化物-氧化物-半导体电容器结构)的快闪存储器装置作为广泛电子应用的非易失性存储器。快闪存储器装置通常使用允许高存储器密度、高可靠性及低功率消耗的单晶体管存储器单元。
可使用SSD来替换硬盘驱动器作为计算机的主要存储装置,这是因为固态驱动器可在性能、大小、重量、耐用性、操作温度范围及功率消耗方面具有胜于硬盘驱动器的优点。举例来说,SSD可在与磁盘驱动器相比较时因其缺少移动部件而具有优越性能,缺少移动部件可避免寻道时间、延时及与磁盘驱动器相关联的其它机电延迟。SSD制造商可使用非易失性快闪存储器来形成可不使用内部电池电源的快闪SSD,因此允许所述驱动器更通用且更紧凑。
SSD可包含若干个存储器装置,例如,若干个存储器芯片(如本文中所使用,“若干个”某物可指一个或一个以上此类事物,例如,若干个存储器装置可指一个或一个以上存储器装置)。如所属领域的技术人员将了解,存储器芯片可包含若干个裸片及/或逻辑单元(LUN)。每一裸片上可包含若干个存储器阵列及外围电路。所述存储器阵列可包含组织成若干个物理页的若干个存储器单元,且所述物理页可组织成若干个块。
独立磁盘冗余阵列(RAID)是用于在多个存储器装置间划分及/或复制数据的计算机数据存储方案的涵盖性术语。RAID阵列中的多个存储器装置在用户及计算机的操作系统看来似乎是单个存储器装置,例如,磁盘。在历史上,RAID与多个硬盘驱动器(HDD)一起操作。
发明内容
附图说明
图1是根据本发明的一个或一个以上实施例的包含至少一个存储器系统的计算系统的功能性框图。
图2是根据本发明的一个或一个以上实施例的存储器系统的功能性框图。
图3是根据本发明的一个或一个以上实施例的非易失性存储器控制电路的功能性框图。
图4图解说明根据本发明的一个或一个以上实施例的在条带基础上操作的存储卷的框图。
图5图解说明根据本发明的一个或一个以上实施例的存储器装置的一部分的图示。
具体实施方式
本发明包含用于基于条带的存储器操作的方法及装置。一个方法实施例包含将数据写入跨越多个存储器装置的存储卷的第一条带中。通过将经更新数据写入跨越所述多个存储器装置的所述存储卷的第二条带的一部分中来更新所述第一条带的一部分。使所述第一条带的所述部分无效。维持所述第一条带的所述无效部分及所述第一条带的剩余部分直到所述第一条带被回收为止
在以下对本发明的详细说明中,参考形成本发明的一部分且其中以图解说明方式展示可如何实践本发明的一个或一个以上实施例的随附图式。足够详细地描述所述实施例以使得所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下作出过程、电、及/或结构改变。如本文中所使用,标示符“N”、“M”、“P”、“R”及“S”(特定来说关于图式中的参考编号)指示本发明的一个或一个以上实施例可包含如此标示的若干个特定特征。
本文中的图遵循其中第一个数字或前几个数字对应于图式图编号且剩余数字识别图式中的元件或组件的编号惯例。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,108可指代图1中的元件“08”,且在图2中可将类似元件指代为“208”。如将了解,可添加、交换及/或去除本文中各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,如将了解,图中所提供的元件的比例及相对比例尺是打算图解说明本发明的实施例且不应视为限定意义。
图1是根据本发明的一个或一个以上实施例的包含至少一个存储器系统104的计算系统100的功能性框图。在图1中所图解说明的实施例中,存储器系统104(例如,固态驱动器(SSD))可包含物理主机接口106、存储器系统控制电路108(例如,SSD控制器)及一个或一个以上固态存储器装置110-1、...、110-N。固态存储器装置110-1、...、110-N可为存储器系统提供存储卷,例如,借助格式化到存储器装置的文件系统。在一个或一个以上实施例中,存储器系统控制电路108可为耦合到包含物理接口106及固态存储器装置110-1、...、110-N的印刷电路板的专用集成电路(ASIC)。
如图1中所图解说明,存储器系统控制电路108可耦合到物理主机接口106且耦合到固态存储器装置110-1、...、110-N。物理主机接口106可用于在存储器系统104与另一装置(例如,主机系统102)之间传递信息。主机系统102可包含存储器存取装置,例如,处理器。所属领域的技术人员将了解,“处理器”可意指一个或一个以上处理器,例如,并行处理系统、若干个共处理器等。主机系统的实例包含膝上型计算机、个人计算机、数码相机、数字记录及回放装置、移动电话、PDA、存储器读卡器、接口集线器及类似装置。对于一个或一个以上实施例,物理主机接口106可呈标准化接口的形式。举例来说,当存储器系统104用于计算系统100中的数据存储时,物理主机接口106可为串行高级技术附件(SATA)、高速外围组件互连(PCIe)或通用串行总线(USB)以及其它连接器及接口。然而,一般来说,物理主机接口106可提供用于在存储器系统104与具有用于物理主机接口106的兼容接收器的主机系统102之间传递控制、地址、数据及其它信号的接口。
存储器系统控制电路108可与固态存储器装置110-1、...、110-N通信以读取、写入及擦除数据以及进行其它操作。存储器系统控制电路108可具有可为一个或一个以上集成电路及/或离散组件的电路。对于一个或一个以上实施例,存储器系统控制电路108中的电路可包含用于控制跨越固态存储器装置110-1、...、110-N的存取的控制电路,及用于在主机系统102与存储器系统104之间提供翻译层的电路。因此,存储器控制器可选择性地耦合固态存储器装置110-1、...、110-N的I/O连接(在图1中未展示)以在适当的时间在适当的I/O连接处接收适当的信号。类似地,主机系统102与存储器系统104之间的通信协议可不同于存取固态存储器装置110-1、...、110-N所需的协议。存储器系统控制电路108然后可将从主机接收的命令翻译成适当的命令以实现对固态存储器装置110-1、...、110-N的所期望存取。
固态存储器装置110-1、...、110-N可包含一个或一个以上存储器单元(例如,非易失性存储器单元)阵列。举例来说,所述阵列可为具有NAND架构的快闪阵列。在NAND架构中,一“行”的存储器单元的控制栅极可与存取线(例如,字线)耦合在一起,同时存储器单元可以一“串”形式源极至漏极地串联耦合于选择栅极源极晶体管与选择栅极漏极晶体管之间。所述串可通过选择栅极漏极晶体管连接至数据线(例如,位线)。术语“行”及“串”的使用既不暗示存储器单元的线性布置也不暗示存储器单元的正交布置。如所属领域的技术人员将了解,存储器单元至位线及源极线的连接方式相依于所述阵列是NAND架构、NOR架构还是某一其它存储器阵列架构。
固态存储器装置110-1、...、110-N可包含可分组的若干个存储器单元。如本文中所使用,群组可包含一个或一个以上存储器单元,例如,页、块、平面、裸片、整个阵列或其它存储器单元群组。举例来说,某些存储器阵列可包含构成存储器单元块的若干个存储器单元页。若干个块可包含于存储器单元平面中。若干个存储器单元平面可包含于裸片上。作为实例,128GB存储器装置可包含每页4314个字节的数据,每块128个页,每平面2048个块及每装置16个平面。
存储器系统104可实施损耗均衡以控制固态存储器装置110-1、...、110-N的耗损速率。固态存储器阵列在若干个编程及/或擦除循环之后可经历错误,例如,故障。损耗均衡可减少对特定群组执行的编程及/或擦除循环的数目。损耗均衡可包含动态损耗均衡以最小化为回收块而移动的有效块的量。动态损耗均衡可包含称为无用单元收集的技术。无用单元收集可包含(例如)根据“贪婪算法”回收(例如,擦除并使其可用于写入)具有最多无效页的块。另一选择为,无用单元收集可包含回收具有多于阈值量的无效页的块。如果针对写入操作存在足够自由块,那么可不发生无用单元收集操作。举例来说,无效页可为已经更新为不同页的数据页。静态损耗均衡包含将静态数据写入到具有高擦除计数的块以延长所述块的寿命。本发明的一个或一个以上实施例可在条带基础上而非在块基础上执行损耗均衡,例如,无用单元收集及/或回收。根据本发明的一个或一个以上实施例,可响应于少于阈值数目个自由块可用而起始回收过程。
写入放大是在将数据写入到固态存储器装置110-1、...、110-N时发生的过程。当将数据随机写入存储器阵列中时,控制电路扫描所述阵列中的自由空间。存储器阵列中的自由空间可为当前未存储数据及/或已被擦除的个别单元、存储器单元页及/或存储器单元块。如果在选定位置中存在足够自由空间来写入数据,那么将数据写入到存储器阵列中的选定位置。如果在所述选定位置中不存在足够自由空间,那么通过将已存在于选定位置中的数据读取、拷贝、移动或以另外方式重写并擦除到新位置来重新布置存储器阵列中的数据,从而为待写入于所述选定位置中的新数据留出自由空间。对存储器阵列中的旧数据重新布置称为写入放大,这是因为由存储器装置执行的写入量相比于在选定位置中存在足够自由空间的情况下将发生的写入量被放大。本发明的一个或一个以上基于条带的存储器操作实施例可用于减少如本文中所描述的写入放大。
图1的实施例可包含为不使本发明的实施例模糊而未图解说明的额外电路。举例来说,存储器系统104可包含用以锁存通过I/O电路经由I/O连接提供的地址信号的地址电路。地址信号可由行解码器及列解码器接收并解码以存取固态存储器装置110-1、...、110-N。所属领域的技术人员将了解,地址输入连接的数目可相依于固态存储器装置110-1、...、110-N的密度及架构。
图2是根据本发明的一个或一个以上实施例的存储器系统204的功能性框图。存储器系统204可包含存储器系统控制电路208。存储器系统控制电路208可耦合到一个或一个以上固态存储器装置,例如,非易失性存储器210及/或易失性存储器212。存储器系统204及存储器系统控制电路208可分别类似于图1中所图解说明的存储器系统104及存储器系统控制电路108。
存储器系统控制电路208可包含主机接口电路214、主机-存储器翻译电路216,存储器管理电路218、开关220、非易失性存储器控制电路222及/或易失性存储器控制电路224。如本文中所描述,存储器系统控制电路208可以ASIC的形式提供,然而,实施例并不限于此。
主机接口电路214可耦合到主机-存储器翻译电路216。主机接口电路214可耦合到主机系统的物理接口及/或与主机系统的物理接口并在一起,例如图1中所图解说明的物理接口106。主机接口电路214可透过若干个层(包含物理层、链路层及/或传输层)与主机系统(例如,图1中的主机系统102)介接。所属领域的技术人员将了解,用于特定主机接口的层数目可由接口标准(例如,串行高级技术附件(SATA)、高速外围组件互连(PCIe)、通用串行总线(USB)等)界定。如本文中所使用,传输层可至少指示作为SATA标准的一部分的传输层及/或作为PCIe标准的一部分的事务层。所属领域的技术人员将了解,根据SATA标准的传输层可类似于根据PCIe标准的事务层。主机接口电路214可包含高级主机控制器接口(AHCI)兼容主机总线适配器(HBA)。
一般来说,主机接口电路214负责将从主机系统(例如,从PCIe总线)接收的命令包转换成用于主机-存储器翻译电路216的命令指令且负责将主机-存储器翻译响应转换成主机系统命令以供传输到请求主机。举例来说,主机接口电路214可从基于PCIe的事务层包构建SATA命令包。主机接口电路214可经配置以从主机系统接收与多个地址相关联的数据。主机接口电路214可接收与所述多个地址中的一者或一者以上相关联的经更新数据。
主机-存储器翻译电路216可耦合到主机接口电路214、耦合到存储器管理电路218及/或耦合到开关220。主机-存储器翻译电路216可经配置以将主机地址翻译为存储器地址,例如,与所接收命令(例如读取及/或写入命令)相关联的地址。主机-存储器翻译电路216可(例如)将主机扇区读取及写入操作转换为定向至非易失性存储器210的特定部分的命令。每一主机操作可被翻译成单扇区或多扇区非易失性存储器210操作。举例来说,主机读取及写入命令可被翻译成非易失性存储器210读取及写入命令。主机-存储器翻译电路216可包含第二级错误检测/校正电路,例如RAID“异或(XOR)”电路226。RAID XOR电路226可基于从主机接口电路214接收的数据计算奇偶校验数据。
根据本发明的一个或一个以上实施例,在RAID操作中可跨越多个固态存储器装置将写入数据条带化。如所属领域的技术人员将了解,条带化包含分割数据以使其存储于多于一个装置上。多于一个装置的存储分割数据的部分统称为条带。相比来说,镜像化可包含将数据的副本存储于多于一个装置上。结合图4更详细地描述条带化。作为实例,可跨越八个存储器装置中的七个存储器装置将写入数据条带化,其中奇偶校验数据可存储在第八存储器装置中,例如,存储器系统204可包含多个非易失性存储器装置210,每一非易失性存储器装置通过单独通道耦合到存储器系统控制电路208。对于写入到八个存储器装置中的七个存储器装置的每一位,可通过RAID XOR电路226计算奇偶校验位并将所述奇偶校验位写入到第八存储器装置,例如,可使用来自所述七个存储器装置中的每一者的位0产生奇偶校验(第八)存储器装置中的位0。
存储器管理电路218可耦合到主机-存储器翻译电路216且耦合到开关220。存储器管理电路218可(例如)经由处理器228的操作控制若干个过程,包含(但不限于)初始化、损耗均衡(例如,无用单元收集及/或块回收)及/或错误检测/校正。存储器管理电路218可存取块表(例如,块表236)以确定损耗均衡(无用单元收集)的候选者。存储器管理电路218可经配置以在块表(例如,块表236)中提供关于条带的一部分(例如,一个或一个以上块)是有效还是无效的指示。存储器管理电路218可在更新与逻辑地址相关联的数据时用对应于所述逻辑地址的新物理地址来更新LBA表(例如,LBA表234)。关于基于条带的操作,存储器管理电路218可经配置以响应于与特定条带的一部分相关联的所检测到的错误而从特定条带有效地移除所述特定条带的所述部分。
举例来说,作为损耗均衡操作的一部分,存储器管理电路218可在块表(例如,块表236)中搜寻具有高擦除计数的块。存储器管理电路可将特定块的擦除计数与阈值计数相比较。举例来说,可从所述特定块减去具有最低擦除计数的块的擦除计数。如果差大于阈值计数,那么可将所述特定块指示为块回收的候选者。
举例来说,作为动态损耗均衡操作的一部分,存储器管理电路218可在其中搜寻具有无用单元收集阈值量的无效(例如未使用)部分(例如,页)的块。在搜寻块表(例如,块表236)之后,存储器管理电路218可将具有带有最多无效页的块的条带指示为基于条带的回收过程的候选者。存储器管理电路218可包含回收电路230。回收是可作为损耗均衡的一部分由存储器管理电路218调用的过程。回收涉及在擦除欲擦除的块之前将来自所述块的所有有效页移动到新位置。
开关220可耦合到主机-存储器翻译电路216、存储器管理电路218、非易失性控制电路222及/或易失性存储器控制电路224。开关220可为纵横开关且可包含及/或耦合到一个或一个以上缓冲器,例如,静态随机存取存储器(SRAM)缓冲器。开关220可在存储器系统控制电路208的各种组件之间提供接口。开关220可计及所界定信令协议(其可与存储器系统控制电路208的不同组件相关联)的变化以便在组件之间提供一致存取及实施方案。在一个或一个以上实施例中,开关220可为直接存储器存取(DMA)模组。
非易失性存储器控制电路222(例如,控制器)可耦合到开关220且耦合到一个或一个以上非易失性存储器装置210。除其它信息外,一个或一个以上非易失性存储器装置210可存储逻辑块地址(LBA)表234-C及/或块表236-C的副本,如本文中所描述。在一些实施例中,存储器系统控制电路208可包含用于所有存储器通道的一个非易失性存储器控制器。在一个或一个以上其它实施例中,每一存储器通道耦合到离散非易失性存储器控制器。
包含针对每一通道的离散非易失性存储器控制器的一个或一个以上实施例可包含耦合到每一控制器的离散第一级错误检测/校正电路232及/或可与多于一个通道一起使用的一个或一个以上第一级错误检测/校正电路232。如所属领域的技术人员所理解,第一级错误检测/校正电路232可经配置以应用错误校正(例如BCH错误校正)来检测及/或校正与存储于非易失性存储器210中的数据相关联的错误。举例来说,所述第一级错误检测/校正电路可经由1080-位码字提供29个位的错误校正。第一级错误检测/校正电路232可经配置以为单层级(SLC)及/或多层级单元(MLC)操作提供不同错误校正方案。第一级错误检测/校正电路232可(例如)通过确定存在多于阈值量的可校正错误来检测不可通过所述第一级错误检测/校正来校正的错误(例如,UECC错误)。如下文结合图4更详细地描述,本发明的一个或一个以上实施例提供UECC错误校正。举例来说,可从条带有效地移除所述条带的具有UECC错误或其它错误的一部分且非易失性存储器控制电路222可经配置以操作不包括所述经移除部分的所述条带。
非易失性存储器控制电路222可经配置以跨越如本文中所描述的若干个存储器通道将数据写入第一条带中。非易失性存储器控制电路222可经配置以跨越所述若干个存储器通道将经更新数据写入第二条带中而不读取或拷贝所述第一条带中的数据。在一个或一个以上实施例中,非易失性存储器控制电路222可经配置以在页基础上读取条带的若干部分而不读取所述条带的剩余部分。非易失性存储器控制电路222可经配置以将与存储器通道的数目相关联的若干个非易失性存储器装置操作为RAID。所述若干个存储器通道中的至少一者可操作为奇偶校验通道,且因此与所述若干个存储器通道中的至少一者相关联的一个或一个以上存储器装置可操作为奇偶校验存储器装置。下文结合图4且在本发明的通篇中提供关于基于条带的存储器操作的额外细节。
易失性存储器控制电路224可耦合到开关220且耦合到一个或一个以上易失性存储器装置212。除其它信息外,一个或一个以上易失性存储器装置可存储LBA表234及/或块表236。LBA表234可存储一个或一个以上非易失性存储器装置210中的页的物理页地址且包含对应逻辑地址。LBA表234可由包含于相关联SATA命令中的LBA来加索引。LBA表234可用于查找对应于其中可存储对应信息的逻辑块地址的物理页地址。块表236可存储一个或一个以上非易失性存储器装置210中的可擦除块的信息。存储于块表236中的信息可包含有效页信息、擦除计数及其它状况信息。从块表236存取的信息可由物理块地址来加索引。
图3是根据本发明的一个或一个以上实施例的非易失性存储器控制电路322的功能性框图。非易失性存储器控制电路322可类似于图2中所图解说明的非易失性存储器控制电路222。非易失性存储器控制电路322可耦合到一个或一个以上固态存储器装置310-1、...、310-N。在一个或一个以上实施例中,每一固态存储器装置310-1、...、310-N可通过单独通道耦合到非易失性存储器控制电路322。每一通道可与离散通道存储器控制电路338-1、...、338-N相关联。然而,实施例并不限于此,这是因为在一个或一个以上实施例中,较少(例如,一个)非易失性存储器控制电路322可向多个通道提供控制。非易失性存储器控制电路可对一个或一个以上固态存储器装置310-1、...、310-N执行若干个操作,包含页读取、条带写入及条带擦除。
页读取操作可允许对存储器页进行存取。可将页读取命令发送(例如,排队)到特定通道存储器控制器338-1、...、338-N且在一个或一个以上固态存储器装置310-1、...、310-N上执行。举例来说,页读取操作可相依于页大小及元数据而支持4千字节(KB)、8KB或另一数据量。举例来说,在DMA操作中,来自页读取操作的数据可由通道存储器控制器338-1、...、338-N从固态存储器装置310-1、...、310-N中的页传送到读取缓冲器。可在完成对存储器通道的操作之后提供装置状况。
条带写入操作可包含多个页写入操作,例如,与非易失性存储器控制电路322相关联的每一通道一个页写入操作。在一个或一个以上实施例中,可跨越所述多个通道大致同时执行条带写入操作中的多个页写入操作。页写入操作可允许对存储器页进行存取。可将页写入命令发送(例如,排队)到所期望通道存储器控制器338-1、...、338-N且在一个或一个以上固态存储器装置310-1、...、310-N上执行。举例来说,页写入操作可相依于固态存储器装置310-1、...、310-N页大小及元数据而支持4千字节(KB)、8KB或另一数据量。来自页写入操作的数据可由通道存储器控制器338-1、...、338-N从写入缓冲器传送到固态存储器装置310-1、...、310-N中的页。可从主机系统(例如,图1中的主机系统102)接收用于条带写入操作的写入数据。
可跨越多个固态存储器装置310-1、...、310-N的存储卷将写入数据条带化。举例来说,可将从主机接收的第一写入数据页写入到第一存储器装置,将第二页写入到第二存储器装置等等。在另一实例性实施例中,可将从主机接收的第一写入数据页的第一片段(例如,扇区)写入到第一存储器装置,将所述第一页的第二片段写入到第二装置等等。虽然可在基于条带的操作中写入数据,但仍可在基于页的操作中读取数据。
条带回收操作可包含多个块擦除操作,例如,与非易失性存储器控制电路322相关联的每一通道一个块擦除操作。在一个或一个以上实施例中,可跨越多个通道大致同时执行条带回收操作中的多个块擦除操作。可在一个或一个以上固态存储器装置310-1、...、310-N上执行块擦除命令。在本文中提供关于基于条带的操作的额外细节。
图4图解说明根据本发明的一个或一个以上实施例的在条带基础上操作的存储卷440的框图。存储卷440可由格式化到若干个固态存储器装置(例如,图1中的固态存储器装置110-1、...、110-N)的文件系统提供于存储器系统(例如,图1中的存储器系统104)中。如本文中所描述,每一固态存储器装置可与存储器通道442-1、...、442-(N-1)、442-N相关联。数据可写入跨越由所述若干个固态存储器装置提供的存储卷440的若干个条带444-1、444-2、...、444-P中。
存储器系统可从主机系统接收写入数据。存储器系统(例如,与图2中的主机-存储器翻译电路216相关联的RAID XOR电路226)可计算用于写入数据的奇偶校验数据。在一个或一个以上实施例中,可跨越存储卷440将写入数据及奇偶校验数据条带化,以使得跨越若干个可用通道的子组(例如,通道442-1、...、442-(N-1))写入写入数据且可跨越若干个可用通道的第二子组(例如,通道442-N)写入奇偶校验数据。举例来说,存储器系统可包含八个通道,其中七个通道用于写入写入数据且一个通道用于写入奇偶校验数据,然而,实施例并不限于此。然而,实施例并不限于将N个通道中的N-1个通道用于写入数据且将单个通道用于奇偶校验数据。根据本发明的一个或一个以上实施例,RAID结构及/或条带大小可为可编程选项。
RAID结构可表示经设计以跨越多个存储器装置划分及/或复制数据的RAID存储方案的实施方案。举例来说,可跨越两个或两个以上装置将数据条带化及/或镜像化。同样,条带化可包含将写入数据划分成若干个片段且将至少一个片段存储于若干个存储器装置中的每一者中。镜像化可包含将写入数据的副本冗余地存储于至少两个存储器装置中。条带化与镜像化两者均可包含使用第一级及/或第二级错误检测/校正。奇偶校验数据可存储于与写入数据相同的存储器装置中及/或存储于不同于存储写入数据的装置的装置中。根据本发明的一个或一个以上实施例,待由存储器系统实施的特定RAID结构可为可编程选项。
如本文中所使用,条带大小可指跨越其将数据条带化的存储器装置的数目。根据本发明的一个或一个以上实施例,存储器系统的条带大小可为可编程选项,以使得存储器系统可用的任一数目个存储器装置可用于条带。举例来说,包含32个通道及32个对应存储器装置的存储器系统可具有从2个到32个存储器装置的任一条带大小。此外,条带大小可在如本文中所描述的存储器系统的操作期间(例如)响应于存储器条带的经有效移除的部分而改变。如本文中所描述,块表可用于跟踪存储器系统的哪些部分构成哪些条带。
存储奇偶校验数据可允许重新形成与存储器条带的经有效移除的部分(例如,经历UECC错误的一部分)相关联的数据。存储器通道、存储器装置、存储器块、存储器页或存储器装置的另一部分可经历不可校正错误或其它错误。举例来说,可跨越通道442-1、...、442-(N-1)将写入数据写入第一条带444-1中。可跨越通道442-N将奇偶校验数据写入第一条带444-1中。如果第一通道442-1经历不可校正错误或其它错误,那么与直到442-(N-1)的通道相关联的写入数据及与通道442-N相关联的奇偶校验数据可用于重新形成跨越第一通道442-1写入的数据。类似于形成奇偶校验数据的情况,存储器系统(例如,图2中的RAID XOR电路226)可将奇偶校验数据连同写入数据一起用于计算与存储器系统的经历不可校正错误或其它错误的一部分相关联的数据的替换数据。
与图2中的非易失性存储器控制电路222相关联的ECC电路232可计算待存储于存储器装置中的写入数据446及/或奇偶校验数据450的片段的错误校正数据448。图4包含对与通道442-1、...、442-(N-1)相关联地存储的写入数据446及错误校正数据448以及与通道442-N相关联地存储的奇偶校验数据450及错误校正数据448的图解说明。在写入条带时,可一同写入写入数据及错误校正数据两者。如果在数据(无论是写入数据还是奇偶校验数据)中检测到错误,那么可使用错误校正数据尝试在实施第二级错误校正(例如,与上文所描述的奇偶校验数据相关联的校正)之前及/或在不实施第二级错误校正的情况下在第一级错误校正中校正所述错误。存储器系统可存储足够的错误校正数据以使得能够校正阈值量的错误位。如果在读取操作期间检测到错误(例如,包含比可用错误校正数据来校正的位错误多的位错误的UECC错误),那么可(例如)使用上文所描述的奇偶校验数据来实施第二级错误校正,例如,可使用奇偶校验数据及写入数据的剩余部分重新形成与所述错误相关联的数据。
可将数据写入第一条带444-1中。将数据写入条带中可包含将写入数据分割成若干个片段(例如,页、扇区等),及将所述片段写入到与每一通道442-1、...、442-(N-1)、442-N相关联的存储器装置。一个或一个以上实施例可包含将至少一个片段写入到多个存储器装置中的每一者,例如,写入至每一通道442-1、...、442-(N-1)、442-N。在包含连同写入数据一起写入奇偶校验数据的某些实施例中,可将写入数据的至少一个片段写入到与所述通道的第一子组(例如,通道442-1、...、442-(N-1))相关联的一个或一个以上存储器装置,且可将奇偶校验数据写入到与所述通道的第二子组(例如,通道442-N)相关联的一个或一个以上存储器装置。
存储器系统可接收写入命令、写入数据及与写入数据相关联的若干个LBA。可将与所述若干个LBA相关联的写入数据写入第一条带444-1中。随后,所述存储器系统可接收写入命令及与LBA中与被写入第一条带444-1中的数据相关联的特定一者或一者以上(例如,与被写入第一条带444-1中的数据相关联的至少一个LBA相同的LBA)相关联的经更新写入数据。在某些实例中,除经更新数据外,随后写入命令可附有不相关数据,例如,与其相关联数据未写入第一条带444-1中的LBA相关联的数据。在某些实例中,可将包含经更新数据的随后写入命令与包含不相关数据的另一随后写入命令组合在一起。
在一个或一个以上实施例中,可通过将经更新数据写入第二条带444-2的一部分中(跨越存储卷440写入)来更新第一条带444-1的一部分。存储器系统可将经更新数据写入第二条带444-2中,且同时写入其它不相关数据。与单独将经更新数据写入第二条带444-2中相比较,将经更新数据及不相关数据写入第二条带444-2中增加对第二条带444-2的存储卷的利用。“不相关数据”意指不与其相关联数据被写入第一条带中的LBA相关联的数据。与写入第二条带444-2相关联,所述存储器系统可用LBA表(例如,图2中的LBA表234)的经更新数据的位置来更新特定LBA。存储器系统可更新块表(例如,图2中的块表236)以指示第一条带444-1的与所更新数据相关联的部分现在无效。
根据用于更新存储于第一条带中的数据的片段的一些先前方法,将读取整个数据条带,将更新(例如,修改)所述片段,且将把条带(包含经更新数据及来自第一条带的数据的剩余部分)写入相同第一条带或第二条带中。然而,根据本发明的一个或一个以上实施例,可更新第一条带中的数据的片段而不读取或拷贝第一条带。所述实施例可通过允许更新不包含读取或拷贝操作的写入操作来相对于一些先前方法改进装置性能,例如,可改进小的随机写入性能。
可维持第一条带444-1的无效部分及第一条带444-1的剩余部分直到第一条带444-1为被回收止。维持第一条带444-1的无效部分可包含防止擦除第一条带444-1的无效部分,即使第一条带444-1的无效部分位于与第一条带444-1的剩余部分不同的擦除块中。维持第一条带444-1的剩余部分可包含读取第一条带444-1的剩余部分的至少一部分。在一些实施例中,可读取未经更新数据的一部分而不读取未经更新数据的剩余部分。维持第一条带444-1的剩余部分可包含防止擦除第一条带444-1的剩余部分。即,第一条带444-1的剩余部分可继续操作,好似尚未更新第一条带的无效部分。
可如本文中所描述维持第一条带444-1以促进包含使用如上文中所描述的奇偶校验数据的错误校正。即,继使第一条带444-1的所述部分无效之后,UECC错误可发生在第一条带444-1的有效部分中。由于已基于第一条带444-1中的未经更新(本文中称为“原始”)写入数据计算存储于第一条带中的奇偶校验数据,因此将使用未经更新写入数据来计算第一条带444-1的具有UECC错误的有效部分的替换数据。可将响应于UECC错误计算的替换数据写入到第三条带(例如,条带444-P)而不写入来自第一条带444-1的数据的剩余部分。在一些实施例中,可与和第一条带444-1及/或第二条带444-2中的数据不相关的数据同时将替换数据写入到第三条带。根据本发明的一个或一个以上实施例,无效数据可在所述无效数据已用不同条带中的有效数据更新之后维持于条带中。相对于包含在更新条带的一部分时读取并拷贝整个条带的一些先前方法,此些实施例可减少操作额外开销量。
可回收第一条带444-1,例如,擦除且使其可用于未来写入操作。回收第一条带444-1可包含响应于(例如)如本文中所描述的损耗均衡操作而将第一条带444-1的剩余部分(例如,有效部分)拷贝到第三条带(例如,条带444-P)。举例来说,可在第一条带444-1的所有部分无效(例如,已在其它条带中更新)时回收第一条带444-1。将第一条带444-1的有效部分拷贝到第三条带可包含同时将来自有效部分的数据及其它不相关数据写入第三条带中。回收第一条带可包含擦除固态存储器装置的与第一条带相关联的部分。本发明的一个或一个以上实施例可包含在条带基础上而非如根据一些先前方法可发生地在块基础上回收存储器系统的若干个部分。基于条带的回收可进一步提供维持条带中的无效数据以供与用奇偶校验数据、有效数据及无效数据的稍后UECC校正的可能使用的能力。
本发明的一个或一个以上实施例可包含检测与第一条带444-1的部分相关联的错误,从第一条带444-1有效地移除(例如,使无效)第一条带444-1的所述部分,及操作不包括经移除部分的第一条带444-1。举例来说,UECC错误可与特定通道(例如,通道442-(N-1))相关联。可通过使用来自与第一条带444-1相关联的通道的剩余部分的写入数据及奇偶校验数据(且在适用时错误校正数据)计算替换数据来重新形成跨越通道442-(N-1)写入的数据。举例来说,可将替换数据写入到第二条带444-2而不写入来自第一条带444-1的数据的剩余部分。随后,可在不使用经移除通道442-(N-1)的情况下操作第一条带444-1。举例来说,第一条带444-1中的随后写入操作可包含基于与除经移除通道442-(N-1)外的通道相关联的数据计算奇偶校验数据,例如,每奇偶校验位一个较少位。
块表(例如,图2中的块表236)可具有有效地移除第一条带444-1的经移除部分(例如,通道442-(N-1))的指示。操作不包括经移除通道442-(N-1)的第一条带444-1可包含在回收第一条带444-1之后,将数据及奇偶校验数据写入跨越由若干个存储器装置提供的存储卷440的第一条带444-1中而不将数据及/或奇偶校验数据写入到经移除通道442-(N-1)。经移除部分无需为通道。经移除部分可为存储器装置、裸片、块、页或存储器系统的某一其它部分。
图5图解说明根据本发明的一个或一个以上实施例的存储器装置510的一部分的图示。虽然在图5中未展示,但所属领域的技术人员将了解,存储器装置510可连同与其操作相关联的各种外围电路一起位于半导体裸片上。存储器装置510可包含一个或一个以上存储器单元阵列。
如在图5中所展示,存储器装置510可包含若干个存储器单元物理块560-1(块1)、560-2(块2)、...、560-M(块M)。在图5中所展示的实例中,指示符“M”用于指示存储器装置510可包含若干个物理块。作为实例,存储器装置510中物理块的数目可为128个块、4,096个块或32,768个块,然而,实施例并不限于存储器装置中的特定数目个或倍数个物理块。此外,实施例并不限于阵列中所使用的存储器类型,例如,非易失性、易失性等。在图5中所图解说明的实施例中,存储器装置510可(例如)为NAND快闪存储器装置510,以使得(例如)每一物理块560-1、560-2、...、560-M中的存储器单元可作为一单元一同擦除,例如,可以大致同时方式擦除每一物理块中的单元。举例来说,每一物理块中的单元可在单个擦除操作中一同擦除。
虽然未如图5中具体指定,但可将若干个块指定为备用块以减少与将数据写入固态存储器装置(例如,图1中的固态存储器装置110-1、...、110-N)中相关联的写入放大量。备用块可为存储器阵列中可被指定为其中无法写入数据的块的块。写入放大可通过增加存储器阵列上指定为自由空间(即,其中将不写入静态数据)的空间的量而减小,因此允许由于将必须重新布置较少数据而较少地放大必须写入的数据的量。此外,备用块可用作在存储器系统的操作期间经历不可校正错误或其它错误的块的替换块。举例来说,存储器系统可经配置以使得将特定数目个块保留为每通道的备用块。如果通道中正操作为条带的一部分的特定块经历不可校正错误或其它错误,那么可使用来自所述通道的备用块中的一者来替换特定块,以使得所述条带可继续保持相同大小,例如,包含相同数目个通道及/或存储器装置。可更新块表以使得用替换块的地址来更新与所述特定块相关联的地址,从而允许所述条带继续以相同大小操作。
使用指示符“R”指示物理块(例如,560-1、560-2、...、560-M)可包含若干个行。在一些实施例中,每一物理块中的行(例如,字线)的数目可为32,但实施例并不限于每物理块特定数目个行570-1、570-2、...、570-R。如所属领域的技术人员将了解,每一行570-1、570-2、...、570-R可包含一个或一个以上物理页,例如,偶数页及奇数页。物理页是指写入及/或读取单元,例如,一同或作为功能性存储器单元群组写入及/或读取的若干个单元。因此,可借助单独写入及/或读取操作写入及/或读取偶数页及奇数页。对于包含多层级单元(MLC)的实施例,可将物理页在逻辑上划分成上部数据页及下部数据页。举例来说,一个存储器单元可将一个或一个以上位贡献给上部数据页且将一个或一个以上位贡献给下部数据页。因此,可写入及/或读取上部数据页及下部数据页作为一个写入及/或读取操作的一部分,因为逻辑上部页及逻辑下部页两者均为相同物理页的一部分。为便于图解说明,图5中的每一行570-1、570-2、...、570-R仅包含一个物理及逻辑页,然而实施例并不限于此。
在本发明的一个或一个以上实施例中,且如在图5中所展示,页可将数据存储于若干个扇区580-1、580-2、...、580-S中。使用指示符“S”指示页可包含若干个扇区。每一扇区580-1、580-2、...、580-S可存储系统及/或用户数据且可包含额外开销信息,例如错误校正码(ECC)信息及逻辑块地址(LBA)信息。如所属领域的技术人员将了解,逻辑块寻址是可由主机用于识别信息扇区的方案,例如,每一扇区可对应于唯一LBA。在一个或一个以上实施例中,扇区是存储卷的最小可寻址部分。作为实例,数据扇区可为若干个数据字节,例如,256个字节、512个字节或1,024个字节。举例来说,SSD可在页中具有4个、8个或16个扇区,其中扇区可为512个字节,且SSD可每物理块具有128个、256个或512个页,因此物理块大小为131072个字节、262144个字节及524288个字节。实施例并不限于所述实例。
应注意,可存在物理块560-1、560-2、...、560-M;行570-1、570-2、...、570-R;扇区580-1、580-2、...、580-S及页的其它配置。举例来说,物理块560-1、560-2、...、560-M的行570-1、570-2、...、570-R可各自存储对应于单个扇区的数据,所述单个扇区可包含(例如)多于或少于512个数据字节。
结论
本发明包含用于基于条带的存储器操作的方法及装置。一个方法实施例包含将数据写入跨越多个存储器装置的存储卷的第一条带中。通过将经更新数据写入跨越所述多个存储器装置的所述存储卷的第二条带的一部分中来更新所述第一条带的一部分。使所述第一条带的所述部分无效。维持所述第一条带的所述无效部分及所述第一条带的剩余部分直到所述第一条带被回收为止。
将理解,当称元件“在另一元件上”、“连接到另一元件”或“与另一元件耦合在一起”时,其可直接位于其它元件上、连接至其它元件或与其它元件耦合在一起或可存在介入元件。相反,当称元件“直接在另一元件上”、“直接连接到另一元件”或“直接与另一元件耦合在一起”时,不存在介入元件或层。如本文中所使用,术语“及/或(and/or)”包含所列举相关联物项中的一者或一者以上的任何及所有组合。
如本文中所使用,术语“及/或(and/or)”包含所列举相关联物项中的一者或一者以上的任何及所有组合。如本文中所使用,除非另有说明,否则术语“或(or)”意指在逻辑上包含或。即,“A或B”可包含(仅A)、(仅B)或(A及B两者)。换句话说,“A或B”可意指“A及/或B”或“A及B中的一者或一者以上”。
将理解,虽然可在本文中使用术语第一、第二、第三等来描述各种元件,但所述元件不应受到所述术语的限制。所述术语仅用于将一个元件与另一元件区分开。因此,可在不背离本发明的教示的情况下将第一元件称为第二元件。
虽然本文中已图解说明且描述了特定实施例,但所属领域的技术人员将了解,可用旨在达成相同结果的布置来替代所展示的特定实施例。本发明打算涵盖本发明的一个或一个以上实施例的修改或变化。应理解,以上说明是以说明性方式而非限定性方式作出。在审阅以上说明之后,所属领域的技术人员将明了,在本文中未具体描述的以上实施例的组合及其它实施例。本发明的一个或一个以上实施例的范围包含其中使用以上结构及方法的其它应用。因此,应参考所附权利要求书连同授权所述权利要求书的等效内容的全部范围一起来确定本发明的一个或一个以上实施例的范围。
在前述实施方式中,出于简化本发明的目的而将一些特征一同集合于单个实施例中。不应将本发明的此方法解释为反映本发明的所揭示实施例必须使用比每一权利要求中明确陈述的特征多的特征的意图。而是,如以上权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,以上权利要求书据此并入到实施方式中,其中每一权利要求独立地作为一单独实施例。
Claims (53)
1.一种用于基于条带的存储器操作的方法,其包括:
将数据写入跨越多个存储器装置的存储卷的第一条带中;
更新所述第一条带的一部分,其包含:
将经更新数据写入第二条带的一部分中,所述第二条带跨越所述多个存储器装置的所述存储卷;及
使所述第一条带的所述部分无效;及
维持所述第一条带的所述无效部分及所述第一条带的剩余部分直到所述第一条带被回收为止。
2.根据权利要求1所述的方法,其中将数据写入所述第一条带中包含将写入数据分割成若干个片段且将所述若干个片段写入到所述多个存储器装置。
3.根据权利要求2所述的方法,其中将所述若干个片段写入到所述多个存储器装置包含将至少一个片段写入到所述多个存储器装置中的每一者。
4.根据权利要求2所述的方法,其中将所述若干个片段写入到所述多个存储器装置包含将至少一个片段写入到所述多个存储器装置的子组中的每一者。
5.根据权利要求4所述的方法,其中将至少一个片段写入到所述多个存储器装置的子组中的每一者包含将所述写入数据的相应页写入到所述多个存储器装置的子组中的每一者。
6.根据权利要求1到5中任一权利要求所述的方法,其中更新所述第一条带的所述部分包含将经更新数据写入所述第二条带的所述部分中而不读取或拷贝被写入所述第一条带中的所述数据。
7.根据权利要求1到5中任一权利要求所述的方法,其中:
将数据写入所述第一条带中包含写入与若干个逻辑块地址LBA相关联的数据;且
更新所述第一条带的所述部分包含写入与所述若干个LBA中的至少一者相关联的经更新数据。
8.根据权利要求1到5所述的方法,其中维持所述第一条带包含防止擦除所述第一条带。
9.根据权利要求1到5中任一权利要求所述的方法,其中维持所述第一条带包含读取所述第一条带的所述剩余部分的至少一部分。
10.根据权利要求1到5中任一权利要求所述的方法,其进一步包括回收所述第一条带。
11.根据权利要求10所述的方法,其中回收所述第一条带包含:
响应于损耗均衡操作而将所述第一条带的所述剩余部分拷贝到第三条带;及擦除所述第一条带。
12.根据权利要求1到5中任一权利要求所述的方法,其进一步包括在页基础上读取所述第二条带的所述部分而不读取所述第一条带的所述剩余部分或所述第二条带的另一部分。
13.一种用于基于条带的存储器操作的方法,其包括:
将原始数据写入跨越多个存储器装置的存储卷的第一条带中;及
更新所述原始数据的至少一片段,其中更新包含将经更新数据写入第二条带中而不读取或拷贝所述原始数据。
14.根据权利要求13所述的方法,其中所述方法包含在将所述经更新数据写入所述第二条带中的同时将不相关数据写入所述第二条带中,其中所述不相关数据与所述第一条带中的所述原始数据及所述第二条带中的所述经更新数据不相关。
15.根据权利要求13所述的方法,其中:
写入原始数据包含写入与若干个逻辑块地址LBA相关联的原始数据;且
更新所述原始数据的至少所述片段包含写入与所述若干个LBA中的至少一者相关联的经更新数据。
16.根据权利要求13所述的方法,其中所述方法进一步包含:
基于所述原始数据的每一片段计算相应第一级错误校正数据;及
基于所述原始数据计算第二级错误校正数据;
其中写入所述原始数据包含将所述原始数据及所述第一级错误校正数据写入所述多个存储器装置的第一子组中,且将所述第二级错误校正数据写入所述多个存储器装置的第二子组中。
17.根据权利要求16所述的方法,其中所述方法包含检测所述第一条带中的所述原始数据的片段中的错误且用所述第一级错误校正数据来校正所述错误。
18.根据权利要求16所述的方法,其中所述方法包含:
检测所述第一条带中的原始数据的片段中的错误,其中所述错误不可用所述第一级错误校正数据来校正;及
校正所述错误,其中校正所述错误包含:
基于所述第一条带中的原始数据的至少剩余部分及所述第二级错误校正数据形成所述原始数据的所述片段的替换数据;及
将所述替换数据写入第三条带中而不将所述原始数据的所述剩余部分写入所述第三条带中。
19.根据权利要求18所述的方法,其中所述方法包含在将所述替换数据写入所述第三条带中的同时将不相关数据写入所述第三条带中,其中所述不相关数据与所述第一条带中的所述原始数据或所述第三条带中的所述替换数据不相关。
20.根据权利要求16所述的方法,其中所述第二级错误校正数据包括奇偶校验数据。
21.根据权利要求13到20中任一权利要求所述的方法,其中所述方法包含读取未经更新原始数据的片段而不读取所述原始数据的剩余部分。
22.一种用于基于条带的存储器操作的方法,其包括:
将数据写入跨越多个存储器装置的存储卷的条带中;
检测与所述条带的一部分相关联的错误;
从所述条带有效地移除所述条带的所述部分;及
操作不包括所述经移除部分的所述条带。
23.根据权利要求22所述的方法,其中操作不包括所述经移除部分的所述条带包含随后将数据写入跨越所述多个存储器装置的所述存储卷的所述条带中而不将数据写入所述经移除部分中。
24.根据权利要求22所述的方法,其中将数据写入所述条带中包含将第一级错误校正数据与所述数据一起写入。
25.根据权利要求24所述的方法,其中检测与所述条带的所述部分相关联的错误包含检测可使用所述第一级错误校正数据来校正的错误;且
其中所述方法包含用所述第一级错误校正数据来校正所述错误。
26.根据权利要求24所述的方法,其进一步包括将第二级数据写入所述条带中;且
其中检测与所述条带的所述部分相关联的错误包含检测不可使用所述第一级错误校正数据来校正的错误;且
其中所述方法包含基于所述数据的剩余部分及所述第二级错误校正数据形成与所述条带的所述经移除部分相关联的数据的替换数据。
27.根据权利要求26所述的方法,其中所述方法包含将所述替换数据写入额外条带中而不将所述数据的所述剩余部分写入所述额外条带中。
28.根据权利要求26所述的方法,其中所述方法包含响应于检测到所述不可使用所述第一级错误校正数据来校正的错误而从所述条带有效地移除所述条带的所述部分。
29.根据权利要求22到28中任一权利要求所述的方法,其中移除所述条带的所述部分包含在块表中提供所述部分是无效的指示。
30.一种存储器系统控制电路,其包括:
非易失性存储器控制电路,其经配置以:
跨越多个通道将与多个地址相关联的原始数据写入第一条带中;及
跨越所述多个通道将与所述多个地址中的至少一者相关联的经更新数据写入第二条带中而不读取或拷贝所述第一条带中的所述原始数据。
31.根据权利要求30所述的存储器系统控制电路,其进一步包括:
开关,其耦合到所述非易失性存储器控制电路;及
主机接口电路,其耦合到所述开关且经配置以:
接收所述原始数据;及
接收所述经更新数据。
32.根据权利要求31所述的存储器系统控制电路,其中:
所述主机接口控制电路跨越主机-存储器翻译电路耦合到所述开关;且
所述主机-存储器翻译电路经配置以将所述多个地址从主机地址翻译为存储器地址。
33.根据权利要求32所述的存储器系统控制电路,其中与所述原始数据相关联的逻辑存储器地址和与所述经更新数据相关联的逻辑存储器地址相同。
34.根据权利要求30到33中任一权利要求所述的存储器系统控制电路,其中:
所述非易失性存储器控制电路包含用于所述多个通道中的每一者的离散通道存储器控制电路;且
所述非易失性存储器控制电路经配置以将与所述多个通道相关联的多个非易失性存储器装置操作为条带式独立磁盘冗余阵列RAID。
35.根据权利要求34所述的存储器系统,其中所述非易失性存储器控制电路经配置以操作具有可编程条带大小的所述条带式RAID以使得包含于所述条带中的若干个非易失性存储器装置为可编程的。
36.根据权利要求34所述的存储器系统,其中所述非易失性存储器控制电路经配置以操作具有可编程RAID结构的所述条带式RAID以使得待实施的特定RAID存储方案为可编程的。
37.根据权利要求36所述的存储器系统控制电路,其中所述非易失性存储器控制电路经配置以将所述多个通道中的一者操作为奇偶校验通道。
38.根据权利要求37所述的存储器系统控制电路,其进一步包括经配置以基于所述原始数据计算奇偶校验数据的“异或(XOR)”电路。
39.一种存储器系统控制电路,其包括:
非易失性存储器控制电路,其经配置以:
跨越多个通道将所接收的数据写入条带中;及
检测与所述条带的一部分相关联的错误;及
存储器管理电路,其经配置以从所述条带有效地移除所述条带的所述部分;
其中所述非易失性存储器控制电路进一步经配置以操作不包括所述条带的所述经移除部分的所述条带。
40.根据权利要求39所述的存储器系统控制电路,其中所述条带的所述部分包括包含存储器装置、裸片、块、页及扇区的部分的群组中的一者。
41.根据权利要求39所述的存储器系统控制电路,其进一步包括开关及主机接口电路,其中所述非易失性存储器控制电路耦合到所述开关,其中:
主机接口控制电路经由主机-存储器翻译电路耦合到所述开关,其中:
所述主机-存储器翻译电路包含经配置以基于原始数据计算第二级错误校正数据的“异或(XOR)”电路,且其中:
所述非易失性存储器控制电路经配置以大致同时跨越所述多个通道将所述原始数据及所述第二级错误校正数据写入所述条带中。
42.根据权利要求41所述的存储器系统控制电路,其中所述非易失性存储器控制电路经配置以跨越所述多个通道中的一者将所述第二级错误校正数据写入所述条带中且跨越所述多个通道的剩余部分将所述原始数据写入所述条带中。
43.根据权利要求39到42中任一权利要求所述的存储器系统控制电路,其中:
所述非易失性存储器控制电路包含错误检测/校正电路,其中所述错误检测/校正电路经配置以:
计算所述原始数据的片段的第一级错误校正数据;及
检测从所述条带读取的数据的片段中的错误;且
所述非易失性存储器控制电路经配置以跨越所述多个通道将所述第一级错误校正数据与所述原始数据一起写入所述条带中。
44.根据权利要求39到42中任一权利要求所述的存储器系统控制电路,其中所述非易失性控制电路经配置以在页基础上读取所述条带的部分而不读取所述条带的剩余部分。
45.根据权利要求39到42中任一权利要求所述的存储器系统控制电路,其中所述存储器管理电路经配置以:
在块表中将所述条带的所述部分指示为无效;及
用先前与所述条带的所述部分相关联的至少一个逻辑块地址LBA的新物理地址来更新LBA表。
46.一种存储器系统,其包括:
控制电路;
多个固态存储器装置,其中:
所述多个固态存储器装置中的每一者通过多个通道中的相应一者耦合到所述控制电路;且
所述多个固态存储器装置为所述存储器系统提供存储卷;
其中所述控制电路经配置以:
跨越所述多个通道将数据写入跨越所述多个固态存储器装置的所述存储卷的条带中;
跨越所述多个通道中的一者从所述条带的一部分读取数据;及
在条带基础上回收所述存储卷的部分。
47.根据权利要求46所述的存储器系统,其中所述控制电路经配置以:
维持具有关于所述条带的部分的有效性的信息的块表;
响应于对应于所述条带的一部分的经更新数据正被写入到另一条带而在所述块表中指示所述条带的所述部分无效;且
操作不包括所述无效部分的所述条带。
48.根据权利要求47所述的存储器系统,其中所述控制电路经配置以响应于包含以下各项的群组中的一者或一者以上而回收特定条带:
所述特定条带的所有部分在所述块表中具有无效指示;及
所述特定条带的部分的无用单元收集阈值量在所述块表中具有无效指示。
49.根据权利要求47所述的存储器系统,其中:
所述存储器系统包含易失性存储器;且
所述块表存储于所述易失性存储器中。
50.根据权利要求49所述的存储器系统,其中所述块表的副本存储于所述多个固态存储器装置中的至少一者中。
51.根据权利要求46到50中任一权利要求所述的存储器系统,其中所述控制电路包含用于所述多个通道中的每一者的离散通道存储器控制电路。
52.根据权利要求46到50中任一权利要求所述的存储器系统,其中:
所述控制电路包括专用集成电路ASIC;
所述多个固态存储器装置包括NAND快闪芯片;且
所述存储器系统包括固态驱动器SSD。
53.根据权利要求46到50中任一权利要求所述的存储器系统,其中所述条带包括所述多个固态存储器装置的存储被写入所述条带中的所述数据的部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/569,412 | 2009-09-29 | ||
US12/569,412 US8266501B2 (en) | 2009-09-29 | 2009-09-29 | Stripe based memory operation |
PCT/US2010/002556 WO2011043791A2 (en) | 2009-09-29 | 2010-09-20 | Stripe-based memory operation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102549554A true CN102549554A (zh) | 2012-07-04 |
CN102549554B CN102549554B (zh) | 2015-04-08 |
Family
ID=43781636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080043681.XA Active CN102549554B (zh) | 2009-09-29 | 2010-09-20 | 基于条带的存储器操作 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8266501B2 (zh) |
EP (1) | EP2483785B1 (zh) |
JP (1) | JP5841056B2 (zh) |
KR (1) | KR101459861B1 (zh) |
CN (1) | CN102549554B (zh) |
TW (1) | TWI489486B (zh) |
WO (1) | WO2011043791A2 (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336727A (zh) * | 2013-06-20 | 2013-10-02 | 酷丰实业(上海)有限公司 | Nand闪存存储设备及对其进行数据操作的方法 |
CN103577111A (zh) * | 2012-07-23 | 2014-02-12 | 上海宝存信息科技有限公司 | 基于非易失性存储器的动态独立冗余阵列存储系统及方法 |
CN103631676A (zh) * | 2013-11-06 | 2014-03-12 | 华为技术有限公司 | 一种只读快照的快照数据生成方法及装置 |
CN103858114A (zh) * | 2012-09-12 | 2014-06-11 | 株式会社东芝 | 对阵列中的纠错编码区块配置位置进行管理的存储装置、存储控制器以及方法 |
CN104641419A (zh) * | 2012-07-13 | 2015-05-20 | 三星电子株式会社 | 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质 |
CN105718213A (zh) * | 2014-10-27 | 2016-06-29 | 桑迪士克科技股份有限公司 | 改进在低队列深度工作负载中的混合随机性能的方法 |
CN103902465B (zh) * | 2014-03-19 | 2017-02-08 | 华为技术有限公司 | 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器 |
CN107357687A (zh) * | 2017-07-21 | 2017-11-17 | 长沙曙通信息科技有限公司 | 一种容灾备份新型重复数据删除实现方法 |
CN108062258A (zh) * | 2016-11-08 | 2018-05-22 | 爱思开海力士有限公司 | 用于错误恢复的循环交错的xor阵列 |
CN108121509A (zh) * | 2017-12-19 | 2018-06-05 | 深圳忆联信息系统有限公司 | 一种提高ssd读操作时raid效率的方法及ssd |
CN109144407A (zh) * | 2017-06-16 | 2019-01-04 | 希捷科技有限公司 | 用于监测存储器以便引退的系统和方法 |
CN109814805A (zh) * | 2018-12-25 | 2019-05-28 | 华为技术有限公司 | 存储系统中分条重组的方法及分条服务器 |
CN109947842A (zh) * | 2017-07-27 | 2019-06-28 | 杭州海康威视数字技术股份有限公司 | 分布式存储系统中的数据存储方法、装置及系统 |
CN110633047A (zh) * | 2018-06-21 | 2019-12-31 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器及电子装置 |
CN111367863A (zh) * | 2018-12-25 | 2020-07-03 | 深圳市茁壮网络股份有限公司 | 一种文件的部分修改方法及系统 |
US10732856B2 (en) | 2016-03-03 | 2020-08-04 | Sandisk Technologies Llc | Erase health metric to rank memory portions |
CN111796774A (zh) * | 2020-07-07 | 2020-10-20 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN118467236A (zh) * | 2024-07-09 | 2024-08-09 | 济南浪潮数据技术有限公司 | 数据存储方法、系统、程序产品、电子设备及存储介质 |
Families Citing this family (117)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US8904098B2 (en) | 2007-06-01 | 2014-12-02 | Netlist, Inc. | Redundant backup using non-volatile memory |
US8621137B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
US8266501B2 (en) * | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
US8549223B1 (en) * | 2009-10-29 | 2013-10-01 | Symantec Corporation | Systems and methods for reclaiming storage space on striped volumes |
US8335123B2 (en) * | 2009-11-20 | 2012-12-18 | Sandisk Technologies Inc. | Power management of memory systems |
KR101090394B1 (ko) * | 2009-12-24 | 2011-12-07 | 주식회사 하이닉스반도체 | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 |
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US8862817B2 (en) | 2010-06-09 | 2014-10-14 | Taejin Info Tech Co., Ltd. | Switch-based hybrid storage system |
US8631271B2 (en) | 2010-06-24 | 2014-01-14 | International Business Machines Corporation | Heterogeneous recovery in a redundant memory system |
US8484529B2 (en) | 2010-06-24 | 2013-07-09 | International Business Machines Corporation | Error correction and detection in a redundant memory system |
US8898511B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Homogeneous recovery in a redundant memory system |
US8549378B2 (en) * | 2010-06-24 | 2013-10-01 | International Business Machines Corporation | RAIM system using decoding of virtual ECC |
WO2012099937A2 (en) | 2011-01-18 | 2012-07-26 | Lsi Corporation | Higher-level redundancy information computation |
US9727414B2 (en) * | 2010-12-01 | 2017-08-08 | Seagate Technology Llc | Fractional redundant array of silicon independent elements |
US8522122B2 (en) | 2011-01-29 | 2013-08-27 | International Business Machines Corporation | Correcting memory device and memory channel failures in the presence of known memory device failures |
US9086983B2 (en) | 2011-05-31 | 2015-07-21 | Micron Technology, Inc. | Apparatus and methods for providing data integrity |
US8621113B2 (en) * | 2011-05-31 | 2013-12-31 | Micron Technology, Inc. | Apparatus including host bus adapter and serial attachment programming compliant device and related methods |
US9514838B2 (en) | 2011-05-31 | 2016-12-06 | Micron Technology, Inc. | Apparatus including memory system controllers and related methods for memory management using block tables |
US8762671B2 (en) * | 2011-06-28 | 2014-06-24 | Hitachi, Ltd. | Storage apparatus and its control method |
US8626991B1 (en) * | 2011-06-30 | 2014-01-07 | Emc Corporation | Multi-LUN SSD optimization system and method |
KR101335343B1 (ko) | 2011-10-14 | 2013-12-02 | 성균관대학교산학협력단 | 메모리 관리 장치 및 방법 |
US9092316B2 (en) | 2011-10-28 | 2015-07-28 | International Business Machines Corporation | Methods and storage devices for managing write operations |
US9053809B2 (en) * | 2011-11-09 | 2015-06-09 | Apple Inc. | Data protection from write failures in nonvolatile memory |
US8966172B2 (en) | 2011-11-15 | 2015-02-24 | Pavilion Data Systems, Inc. | Processor agnostic data storage in a PCIE based shared storage enviroment |
US8892828B2 (en) | 2011-11-18 | 2014-11-18 | Micron Technology, Inc. | Apparatuses and methods for storing validity masks and operating apparatuses |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US8782485B2 (en) | 2012-01-19 | 2014-07-15 | International Business Machines Corporation | Hierarchical channel marking in a memory system |
US20130191685A1 (en) * | 2012-01-19 | 2013-07-25 | International Business Machines Corporation | Per-rank channel marking in a memory system |
US8843806B2 (en) | 2012-01-19 | 2014-09-23 | International Business Machines Corporation | Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems |
US9652182B2 (en) | 2012-01-31 | 2017-05-16 | Pavilion Data Systems, Inc. | Shareable virtual non-volatile storage device for a server |
KR101826051B1 (ko) * | 2012-02-27 | 2018-02-07 | 삼성전자주식회사 | 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템 |
US9026887B2 (en) | 2012-03-15 | 2015-05-05 | Micron Technology, Inc. | Physical page, logical page, and codeword correspondence |
CN104220991B (zh) | 2012-03-16 | 2017-08-29 | 马维尔国际贸易有限公司 | 用于允许数据在nand闪存上的有效存储的架构 |
JP2013196276A (ja) * | 2012-03-19 | 2013-09-30 | Fujitsu Ltd | 情報処理装置、プログラムおよびデータ配置方法 |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9106260B2 (en) * | 2012-12-19 | 2015-08-11 | Advanced Micro Devices, Inc. | Parity data management for a memory architecture |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9361040B1 (en) * | 2013-02-27 | 2016-06-07 | Marvell International Ltd. | Systems and methods for data storage management |
US9026891B2 (en) * | 2013-03-13 | 2015-05-05 | Lsi Corporation | Method for format savings in coherently written fragmented sectors |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9098445B2 (en) * | 2013-03-14 | 2015-08-04 | Apple Inc. | Selection of redundant storage configuration based on available memory space |
US20140281802A1 (en) * | 2013-03-15 | 2014-09-18 | SEAKR Engineering, Inc. | Multi-dimensional error detection and correction memory and computing architecture |
US9436600B2 (en) * | 2013-06-11 | 2016-09-06 | Svic No. 28 New Technology Business Investment L.L.P. | Non-volatile memory storage for multi-channel memory system |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
CN104516679B (zh) * | 2013-09-30 | 2017-10-17 | 杭州宏杉科技股份有限公司 | 一种raid数据处理方法及装置 |
JP6062060B2 (ja) * | 2013-10-11 | 2017-01-18 | 株式会社日立製作所 | ストレージ装置、ストレージシステム、及びストレージ装置制御方法 |
CN103513941B (zh) * | 2013-10-18 | 2016-08-17 | 华为技术有限公司 | 写入数据的方法及装置 |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9529710B1 (en) | 2013-12-06 | 2016-12-27 | Western Digital Technologies, Inc. | Interleaved channels in a solid-state drive |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9454551B2 (en) * | 2014-03-13 | 2016-09-27 | NXGN Data, Inc. | System and method for management of garbage collection operation in a solid state drive |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9652381B2 (en) * | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9846661B2 (en) | 2014-07-17 | 2017-12-19 | Empire Technology Development Llc | Utilization of solid state memory devices |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
CN104156174A (zh) * | 2014-07-31 | 2014-11-19 | 记忆科技(深圳)有限公司 | 基于条带的固态硬盘raid实现方法及装置 |
US20160070644A1 (en) * | 2014-09-10 | 2016-03-10 | Netapp, Inc. | Offset range operation striping to improve concurrency of execution and reduce contention among resources |
JP2016057876A (ja) * | 2014-09-10 | 2016-04-21 | 富士通株式会社 | 情報処理装置、入出力制御プログラム、及び入出力制御方法 |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
KR102248207B1 (ko) * | 2014-10-30 | 2021-05-06 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
US9712619B2 (en) | 2014-11-04 | 2017-07-18 | Pavilion Data Systems, Inc. | Virtual non-volatile memory express drive |
US9565269B2 (en) | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
CN104461926A (zh) * | 2014-11-27 | 2015-03-25 | 记忆科技(深圳)有限公司 | 一种基于二维raid的固态硬盘数据保护方法 |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US9766837B2 (en) * | 2015-06-10 | 2017-09-19 | Micron Technology, Inc. | Stripe mapping in memory |
KR102277731B1 (ko) * | 2015-07-21 | 2021-07-14 | 삼성전자주식회사 | 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러 |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US10437666B2 (en) * | 2015-08-06 | 2019-10-08 | Nxp B.V. | Integrated circuit device and method for reading data from an SRAM memory |
US10223197B2 (en) | 2015-08-06 | 2019-03-05 | Nxp B.V. | Integrated circuit device and method for applying error correction to SRAM memory |
US10228990B2 (en) | 2015-11-12 | 2019-03-12 | Sandisk Technologies Llc | Variable-term error metrics adjustment |
TWI631565B (zh) * | 2015-12-09 | 2018-08-01 | 慧榮科技股份有限公司 | 快閃記憶體之廢料收集方法以及使用該方法的裝置 |
TWI602186B (zh) | 2015-12-09 | 2017-10-11 | 慧榮科技股份有限公司 | 快閃記憶體之廢料收集方法以及使用該方法的裝置 |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
KR102580123B1 (ko) * | 2016-05-03 | 2023-09-20 | 삼성전자주식회사 | Raid 스토리지 장치 및 그것의 관리 방법 |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US10474527B1 (en) * | 2017-06-30 | 2019-11-12 | Seagate Technology Llc | Host-assisted error recovery |
US11221958B2 (en) * | 2017-08-29 | 2022-01-11 | Samsung Electronics Co., Ltd. | System and method for LBA-based RAID |
US10970204B2 (en) * | 2017-08-29 | 2021-04-06 | Samsung Electronics Co., Ltd. | Reducing read-write interference by adaptive scheduling in NAND flash SSDs |
TWI656442B (zh) * | 2017-11-30 | 2019-04-11 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
US11392544B2 (en) * | 2018-02-06 | 2022-07-19 | Samsung Electronics Co., Ltd. | System and method for leveraging key-value storage to efficiently store data and metadata in a distributed file system |
CN112074816A (zh) | 2018-03-16 | 2020-12-11 | 美光科技公司 | Nand数据放置模式的集群奇偶校验 |
US11521690B2 (en) | 2018-03-16 | 2022-12-06 | Micron Technology, Inc. | NAND data placement schema |
US10963186B2 (en) | 2018-03-22 | 2021-03-30 | Seagate Technology Llc | Latent multiplicity detection |
US11593262B1 (en) * | 2018-04-25 | 2023-02-28 | Seagate Technology Llc | Garbage collection command scheduling |
US10922014B1 (en) * | 2018-06-05 | 2021-02-16 | Seagate Technology Llc | Die access order variation |
US11169961B2 (en) * | 2018-06-29 | 2021-11-09 | Weka.IO Ltd. | Data migration in a distributive file system |
US11914860B2 (en) * | 2018-08-20 | 2024-02-27 | Macronix International Co., Ltd. | Data storage for artificial intelligence-based applications |
KR102627873B1 (ko) | 2018-10-25 | 2024-01-23 | 에스케이하이닉스 주식회사 | 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법 |
US10877671B2 (en) * | 2018-12-03 | 2020-12-29 | Vast Data Ltd. | Techniques for prolonging lifespan of storage drives |
US11342029B2 (en) | 2020-09-28 | 2022-05-24 | Sandisk Technologies Llc | Non-volatile memory with switchable erase methods |
US11960754B2 (en) | 2020-12-30 | 2024-04-16 | Micron Technology, Inc. | Memory sub-system memory bank search component |
US11409601B1 (en) | 2021-01-26 | 2022-08-09 | Micron Technology, Inc. | Memory device protection |
US11782642B2 (en) * | 2021-06-14 | 2023-10-10 | Western Digital Technologies, Inc. | Systems and methods of determining degradation in analog compute-in-memory (ACIM) modules |
US20230009642A1 (en) * | 2021-07-07 | 2023-01-12 | Micron Technology, Inc. | Programmable metadata |
US11995314B2 (en) | 2021-12-06 | 2024-05-28 | Micron Technology, Inc. | Memory management |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161972A1 (en) * | 2001-04-30 | 2002-10-31 | Talagala Nisha D. | Data storage array employing block checksums and dynamic striping |
US20050050283A1 (en) * | 2003-08-29 | 2005-03-03 | Eddie Miller | Multi-channel memory access arbitration method and system |
US20060156059A1 (en) * | 2005-01-13 | 2006-07-13 | Manabu Kitamura | Method and apparatus for reconstructing data in object-based storage arrays |
US20080320214A1 (en) * | 2003-12-02 | 2008-12-25 | Super Talent Electronics Inc. | Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537534A (en) * | 1995-02-10 | 1996-07-16 | Hewlett-Packard Company | Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array |
JPH1153235A (ja) * | 1997-08-08 | 1999-02-26 | Toshiba Corp | ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム |
JPH11194899A (ja) | 1997-12-26 | 1999-07-21 | Toshiba Corp | ディスク記憶システム及び同システムに適用するデータ更新方法 |
JP2000010738A (ja) * | 1998-06-17 | 2000-01-14 | Toshiba Corp | ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体 |
JP2000105675A (ja) * | 1998-09-29 | 2000-04-11 | Nec Corp | ディスクアレイ装置 |
JP2001075741A (ja) * | 1999-09-02 | 2001-03-23 | Toshiba Corp | ディスク制御システムおよびデータ保全方法 |
JP3557994B2 (ja) * | 2000-04-05 | 2004-08-25 | 日本電気株式会社 | ファイルデータ格納装置及び方法並びに記録媒体 |
US6745284B1 (en) * | 2000-10-02 | 2004-06-01 | Sun Microsystems, Inc. | Data storage subsystem including a storage disk array employing dynamic data striping |
US6745310B2 (en) * | 2000-12-01 | 2004-06-01 | Yan Chiew Chow | Real time local and remote management of data files and directories and method of operating the same |
JP2002215336A (ja) * | 2001-01-15 | 2002-08-02 | Hitachi Ltd | 記憶装置の制御方法および記憶サブシステム |
JP2003036146A (ja) * | 2001-07-23 | 2003-02-07 | Hitachi Ltd | ディスクアレイ制御方式 |
US7055058B2 (en) | 2001-12-26 | 2006-05-30 | Boon Storage Technologies, Inc. | Self-healing log-structured RAID |
US6904498B2 (en) * | 2002-10-08 | 2005-06-07 | Netcell Corp. | Raid controller disk write mask |
GB2400935B (en) | 2003-04-26 | 2006-02-15 | Ibm | Configuring memory for a raid storage system |
US7523257B2 (en) | 2003-08-27 | 2009-04-21 | Adaptec, Inc. | Method of managing raid level bad blocks in a networked storage system |
JP2005284643A (ja) * | 2004-03-29 | 2005-10-13 | Canon Inc | ディスクアレイ制御装置、ディスクアレイ制御装置の制御方法、及び制御プログラム |
JP2006040264A (ja) * | 2004-06-21 | 2006-02-09 | Toshiba Corp | メモリカードの制御方法および不揮発性半導体メモリの制御方法 |
WO2005124530A2 (en) | 2004-06-21 | 2005-12-29 | Kabushiki Kaisha Toshiba | Method for controlling memory card and method for controlling nonvolatile semiconductor memory |
JP2006023941A (ja) * | 2004-07-07 | 2006-01-26 | Canon Inc | ディスクアレイ装置、ディスクアレイ装置の制御方法、プログラム |
JP2006134026A (ja) * | 2004-11-05 | 2006-05-25 | Matsushita Electric Ind Co Ltd | ディスクアレイ装置およびraidレベル設定方法 |
JP4437953B2 (ja) * | 2004-12-10 | 2010-03-24 | 富士通株式会社 | データ書込み方法とチャネルアダプタ |
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
JP5008845B2 (ja) * | 2005-09-01 | 2012-08-22 | 株式会社日立製作所 | ストレージシステムとストレージ装置及びその制御方法 |
JP4863749B2 (ja) * | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
US9632870B2 (en) * | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US8046542B2 (en) | 2007-11-21 | 2011-10-25 | Micron Technology, Inc. | Fault-tolerant non-volatile integrated circuit memory |
US20090172335A1 (en) * | 2007-12-31 | 2009-07-02 | Anand Krishnamurthi Kulkarni | Flash devices with raid |
JP2011053235A (ja) | 2009-08-31 | 2011-03-17 | Hitachi Displays Ltd | 液晶表示装置および配向膜印刷版 |
US8266501B2 (en) * | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
-
2009
- 2009-09-29 US US12/569,412 patent/US8266501B2/en active Active
-
2010
- 2010-09-20 JP JP2012530857A patent/JP5841056B2/ja active Active
- 2010-09-20 CN CN201080043681.XA patent/CN102549554B/zh active Active
- 2010-09-20 EP EP10822339.7A patent/EP2483785B1/en active Active
- 2010-09-20 KR KR1020127008833A patent/KR101459861B1/ko active IP Right Grant
- 2010-09-20 WO PCT/US2010/002556 patent/WO2011043791A2/en active Application Filing
- 2010-09-29 TW TW099133099A patent/TWI489486B/zh active
-
2012
- 2012-09-06 US US13/605,124 patent/US8448018B2/en active Active
-
2013
- 2013-05-21 US US13/899,147 patent/US8788876B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161972A1 (en) * | 2001-04-30 | 2002-10-31 | Talagala Nisha D. | Data storage array employing block checksums and dynamic striping |
US20050050283A1 (en) * | 2003-08-29 | 2005-03-03 | Eddie Miller | Multi-channel memory access arbitration method and system |
US20080320214A1 (en) * | 2003-12-02 | 2008-12-25 | Super Talent Electronics Inc. | Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices |
US20060156059A1 (en) * | 2005-01-13 | 2006-07-13 | Manabu Kitamura | Method and apparatus for reconstructing data in object-based storage arrays |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104641419A (zh) * | 2012-07-13 | 2015-05-20 | 三星电子株式会社 | 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质 |
CN103577111B (zh) * | 2012-07-23 | 2017-05-31 | 上海宝存信息科技有限公司 | 基于非易失性存储器的动态独立冗余阵列存储系统及方法 |
CN103577111A (zh) * | 2012-07-23 | 2014-02-12 | 上海宝存信息科技有限公司 | 基于非易失性存储器的动态独立冗余阵列存储系统及方法 |
CN103858114A (zh) * | 2012-09-12 | 2014-06-11 | 株式会社东芝 | 对阵列中的纠错编码区块配置位置进行管理的存储装置、存储控制器以及方法 |
CN103336727B (zh) * | 2013-06-20 | 2016-06-22 | 酷丰实业(上海)有限公司 | 对nand闪存存储设备进行数据操作的方法 |
CN103336727A (zh) * | 2013-06-20 | 2013-10-02 | 酷丰实业(上海)有限公司 | Nand闪存存储设备及对其进行数据操作的方法 |
CN103631676A (zh) * | 2013-11-06 | 2014-03-12 | 华为技术有限公司 | 一种只读快照的快照数据生成方法及装置 |
CN103631676B (zh) * | 2013-11-06 | 2016-08-24 | 华为技术有限公司 | 一种只读快照的快照数据生成方法及装置 |
CN103902465B (zh) * | 2014-03-19 | 2017-02-08 | 华为技术有限公司 | 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器 |
CN105718213B (zh) * | 2014-10-27 | 2019-01-15 | 桑迪士克科技有限责任公司 | 改进在低队列深度工作负载中的混合随机性能的方法 |
CN105718213A (zh) * | 2014-10-27 | 2016-06-29 | 桑迪士克科技股份有限公司 | 改进在低队列深度工作负载中的混合随机性能的方法 |
US10732856B2 (en) | 2016-03-03 | 2020-08-04 | Sandisk Technologies Llc | Erase health metric to rank memory portions |
CN108062258B (zh) * | 2016-11-08 | 2021-05-25 | 爱思开海力士有限公司 | 用于错误恢复的循环交错的xor阵列 |
CN108062258A (zh) * | 2016-11-08 | 2018-05-22 | 爱思开海力士有限公司 | 用于错误恢复的循环交错的xor阵列 |
CN109144407A (zh) * | 2017-06-16 | 2019-01-04 | 希捷科技有限公司 | 用于监测存储器以便引退的系统和方法 |
CN109144407B (zh) * | 2017-06-16 | 2021-12-21 | 希捷科技有限公司 | 用于监测存储器以便引退的系统和方法 |
CN107357687A (zh) * | 2017-07-21 | 2017-11-17 | 长沙曙通信息科技有限公司 | 一种容灾备份新型重复数据删除实现方法 |
CN109947842A (zh) * | 2017-07-27 | 2019-06-28 | 杭州海康威视数字技术股份有限公司 | 分布式存储系统中的数据存储方法、装置及系统 |
CN109947842B (zh) * | 2017-07-27 | 2021-06-18 | 杭州海康威视数字技术股份有限公司 | 分布式存储系统中的数据存储方法、装置及系统 |
CN108121509A (zh) * | 2017-12-19 | 2018-06-05 | 深圳忆联信息系统有限公司 | 一种提高ssd读操作时raid效率的方法及ssd |
CN108121509B (zh) * | 2017-12-19 | 2020-10-16 | 深圳忆联信息系统有限公司 | 一种提高ssd读操作时raid效率的方法及ssd |
CN110633047A (zh) * | 2018-06-21 | 2019-12-31 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器及电子装置 |
CN111367863A (zh) * | 2018-12-25 | 2020-07-03 | 深圳市茁壮网络股份有限公司 | 一种文件的部分修改方法及系统 |
CN109814805B (zh) * | 2018-12-25 | 2020-08-25 | 华为技术有限公司 | 存储系统中分条重组的方法及分条服务器 |
CN109814805A (zh) * | 2018-12-25 | 2019-05-28 | 华为技术有限公司 | 存储系统中分条重组的方法及分条服务器 |
US11899533B2 (en) | 2018-12-25 | 2024-02-13 | Huawei Cloud Computing Technologies Co., Ltd. | Stripe reassembling method in storage system and stripe server |
CN111796774A (zh) * | 2020-07-07 | 2020-10-20 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN111796774B (zh) * | 2020-07-07 | 2024-03-08 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN118467236A (zh) * | 2024-07-09 | 2024-08-09 | 济南浪潮数据技术有限公司 | 数据存储方法、系统、程序产品、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2483785A4 (en) | 2013-08-07 |
US20110078496A1 (en) | 2011-03-31 |
EP2483785A2 (en) | 2012-08-08 |
WO2011043791A2 (en) | 2011-04-14 |
US8448018B2 (en) | 2013-05-21 |
JP2013506190A (ja) | 2013-02-21 |
TW201126540A (en) | 2011-08-01 |
EP2483785B1 (en) | 2017-09-20 |
US20130254627A1 (en) | 2013-09-26 |
WO2011043791A3 (en) | 2011-07-21 |
US8266501B2 (en) | 2012-09-11 |
KR20120055725A (ko) | 2012-05-31 |
JP5841056B2 (ja) | 2016-01-06 |
TWI489486B (zh) | 2015-06-21 |
US20120331253A1 (en) | 2012-12-27 |
CN102549554B (zh) | 2015-04-08 |
KR101459861B1 (ko) | 2014-11-07 |
US8788876B2 (en) | 2014-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102549554B (zh) | 基于条带的存储器操作 | |
US10564690B2 (en) | Power interrupt management | |
CN110874188B (zh) | 数据存储装置、其操作方法以及具有其的存储系统 | |
KR101491943B1 (ko) | 트랜잭션 로그 복구 | |
CN110442529B (zh) | 可配置的存储器系统及配置和使用该存储器系统的方法 | |
CN109727630B (zh) | 存储系统及其操作方法 | |
CN113687769A (zh) | 用于提高数据处理系统中的操作效率的设备和方法 | |
US20240329865A1 (en) | Data Storage Device and Method for Releasing a Source Block Having an Uncorrectable Error | |
CN112068983B (zh) | 存储器系统及其操作方法 | |
CN116909802A (zh) | 用于经分区存储系统的动态rain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |