CN101046771A - 使用闪存的存储系统及其平均读写方法和平均读写程序 - Google Patents
使用闪存的存储系统及其平均读写方法和平均读写程序 Download PDFInfo
- Publication number
- CN101046771A CN101046771A CNA2006101687026A CN200610168702A CN101046771A CN 101046771 A CN101046771 A CN 101046771A CN A2006101687026 A CNA2006101687026 A CN A2006101687026A CN 200610168702 A CN200610168702 A CN 200610168702A CN 101046771 A CN101046771 A CN 101046771A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- storage
- address
- data
- storage 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
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- 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
-
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种使用闪存存储器的存储系统,包括存储控制器和作为存储介质的多个闪存存储器模块。每个闪存存储器模块包括至少一个闪存存储器芯片,以及用于对属于该闪存存储器芯片的存储块的擦除次数进行平均的存储器控制器。存储控制器把多个闪存存储器模块组合成第一逻辑组,把用于访问属于第一逻辑组的闪存存储器模块的第一地址转变成用于在存储控制器中指示第一地址的第二地址,并且把多个第一逻辑组组合成第二逻辑组。
Description
技术领域
本发明涉及一种能够在多个闪存存储器模块之间进行平均读写的使用闪存存储器的存储系统,用于该存储系统的平均读写方法,以及用于该存储系统的平均读写程序。
背景技术
本申请请求2006年3月29日提交的、申请号为2006-092217的日本专利申请的利益,在此处通过参考而引入其公开。
用于存储数据的系统(以下简称“存储系统”)通常包括随机存取非易失性存储介质。随机存取非易失性存储介质包括,例如磁盘或光盘。近来,常见的存储系统具有许多光盘驱动器。
当各种半导体技术进一步提高时,开发了诸如闪存存储器之类的非易失性半导体存储器,在这种非易失性半导体存储器上能够对数据进行擦除。闪存存储器是一种半导体存储器,其是用作只读存储器(ROM)以及既可读又可写的随机存取存储器(RAM)的非易失性存储器。与具有许多小光盘驱动器的存储系统相比,把闪存存储器作为存储介质的存储系统在使用寿命、功耗节约以及存取时间上比较出色。
此处将给出对闪存存储器的说明。
通常,由于其属性的原因,不能把数据直接重写到闪存存储器上。也就是说,为了把数据重写到闪存存储器上,不得不把存储在闪存存储器上的有效数据转移到其他位置。因此,在逐个存储块的基础上(on block by blockbasis)对存储数据进行擦除。此后,把其他数据写入到已经擦除了数据的每个存储块中。存储块表示每次擦除数据的的单位存储区域。
在闪存存储器中,例如,其中擦除了数据的存储区域总是设置为“1”。因此,当重写数据时有可能通过二进制比特转换把“1”重写为“0”。然而,除非擦除了存储数据,否则不可能直接把“0”重写为“1”。为了把数据重写到闪存存储器上,擦除了闪存存储器的整个存储块。因此,当把数据重写到闪存存储器上时,闪存存储器总是需要进行存储块擦除。
闪存存储器有存储块擦除次数的限制。例如,保证了存储块擦除次数高达每个存储块100,000次。如果特定存储块由于密集地进行数据重写的原因而经历了过多的擦除次数,那么就会变得再也不可能对该存储块中的数据进行擦除,这会引起问题。因此,在使用闪存存储器作为存储介质的存储系统中,必须准备平均读写处理以防止在特定存储块上出现密集的擦除次数。
JP-A-8-16482中公开了一种平均读写方法,其中存储系统采用映射管理方法以便提供主机与闪存存储器之间的存储块联系关系(block associationrelationship)的灵活性,以解决当计算机访问逻辑存储块时由逻辑存储块单方面地(one-sidedly)选择闪存存储器的物理存储块的问题。在这个方案中,这种常规存储系统对主机访问的每个逻辑存储块的写入次数,以及由存储系统擦除的每个物理存储块的擦除次数进行管理。如果存在写入次数过大的逻辑存储块和擦除次数过大的物理存储块;以及写入次数较小的逻辑存储块和擦除次数较小的物理存储块,则以下述方式来提供映射,即,允许写入次数过大的逻辑存储块对应于擦除次数较小的物理存储块,并且允许写入次数较小的逻辑存储块对应于擦除次数过大的物理存储块。
通常,闪存存储器模块(以下简称“PDEV”)是由存储器控制器和多个闪存存储器芯片构成的,并且该存储器控制器提供与上述常规方案相同的平均读写处理。在大规模存储系统中,可以想到作为存储介质的许多闪存存储器彼此相连接以建立大容量存储器。在这种情况下,通过利用控制器来为每个闪存存储器提供平均读写。然而,在其中特定闪存存储器模块经历了密集的重写次数的情况中,当闪存存储器模块的擦除次数愈加增大时,模块损耗越快。为了防止特定模块上的擦除次数增大,需要在多个闪存存储器模块之间提供平均读写。
如果把上述平均读写方案施加于具有与之相连接的许多闪存存储器的存储系统,则会存在闪存存储器模块中的存储器控制器会遮蔽闪存存储器芯片中的物理存储块的问题,这将防碍存储系统中的存储控制器管理每个物理存储块的擦除次数。
此外,如果把常规平均读写方案应用于在闪存存储器模块中不使用存储器控制器(那就是说,不为每个闪存存储器模块提供平均读写)的整个存储系统上,则存储系统必须整体地管理非常多的物理存储块的擦除次数,导致管理负担的增加和存储系统性能的恶化。
鉴于上述问题,需要提供一种使用闪存存储器的存储系统,其能够在多个闪存存储器模块之间进行平均读写而不必使用闪存存储器物理存储块上的映射信息,以及需要提供一种用于该存储系统的平均读写方法和用于该存储系统的平均读写程序。
发明内容
在本发明的一个方面,提供了一种使用闪存存储器的存储系统,包括存储控制器和作为存储介质的多个闪存存储器模块。每个闪存存储器模块包括至少一个闪存存储器芯片,以及用于对属于该闪存存储器芯片的存储块的擦除次数进行平均的存储器控制器。存储控制器把多个闪存存储器模块组合成第一逻辑组,把用于访问属于第一逻辑组的闪存存储器模块的第一地址转变成用于在存储控制器中指示第一地址的第二地址,并且把多个第一逻辑组组合成第二逻辑组。
在本发明的另一个方面,提供了一种用于使用闪存存储器的存储系统的平均读写方法,该存储系统包括:闪存存储器模块,包括至少一个闪存存储器芯片和用于对属于该闪存存储器芯片的存储块的擦除次数进行平均的存储器控制器;以及存储控制器,用于把闪存存储器模块组合成第一逻辑组,把用于访问属于第一逻辑组的闪存存储器模块的第一地址转变成用于在存储控制器中指示第一地址的第二地址,以及把多个第一逻辑组组合成第二逻辑组。
该方法包括:允许存储控制器对于闪存存储器模块中的每个预定存储区域的写入量提供次数管理的步骤;允许存储控制器计算平均擦除次数的步骤,该平均擦除次数是通过把经过预定时段每个闪存存储器模块的总写入量除以闪存存储器模块的容量而得到的;以及允许存储控制器判断平均擦除次数的最大值和最小值之间的差是否不小于预定值的第一判断步骤。在第一判断步骤,如果平均擦除次数的差不小于预定值,则该方法进一步包括:允许存储控制器在具有平均擦除次数的最大差值的闪存存储器模块之中,在具有最大写入量的存储区域和具有最小写入量的存储区域之间交换数据,并且改变第一地址与第二地址之间的映射信息的步骤。
在本发明的又一个方面中,提供了一种用于使用闪存存储器的存储系统的平均读写程序,该存储系统包括:闪存存储器模块,包括至少一个闪存存储器芯片和用于对属于该闪存存储器芯片的存储块的擦除次数进行平均的存储器控制器;以及存储控制器,用于把多个闪存存储器模块组合成第一逻辑组,把用于访问属于第一逻辑组的闪存存储器模块的第一地址转变成用于在存储控制器中指示第一地址的第二地址,以及把多个第一逻辑组组合成第二逻辑组。
该程序执行:允许计算机对于闪存存储器模块中的每个预定存储区域的写入量提供次数管理的流程;允许计算机计算平均擦除次数的流程,该平均擦除次数是通过把经过预定时段每个闪存存储器模块的总写入量除以闪存存储器模块的容量而得到的;计算机判断平均擦除次数的最大值和最小值之间的差是否不小于预定值的第一判断的流程。如果差值不小于预定值,则该程序进一步包括用于允许计算机改变第一地址和第二地址之间的映射信息的流程。
当结合附图一起阅读以下的发明的详细说明,本发明的其他特征和优点会变得更加明显。
附图说明
图1是显示根据本发明实施例的存储系统的结构的框图。
图2是显示通道适配器的结构的框图。
图3是显示存储适配器的结构的框图。
图4是显示闪存存储器模块的结构的框图。
图5是显示闪存存储器模块的存储块的结构的框图。
图6是显示根据本发明的该实施例的存储系统的逻辑组结构和地址转换层次(hierarchy)的框图。
图7是显示根据本发明该实施例的存储系统的RAID组的结构的框图。
图8是显示其中闪存存储器模块和硬盘驱动器与存储控制器相连接的例子的框图。
图9是显示用于在多个闪存存储器模块之间进行平均读写的方法的流程图。
图10显示了在根据本发明实施例的平均读写流程所伴随的数据交换流程之前,虚拟页面地址和逻辑页面地址之间的地址转换表。
图11显示了在根据本发明实施例的平均读写流程所伴随的数据交换流程之后,虚拟页面地址和逻辑页面地址之间的地址转换表。
图12显示了存储控制器中管理的用于每个闪存存储器模块的擦除次数管理表。
图13是用于说明平均读写流程所伴随的数据交换流程之前的虚拟页面地址和逻辑页面地址之间的映射的框图。
图14是用于说明平均读写流程所伴随的数据交换流程之后的虚拟页面地址和逻辑页面地址之间的映射的框图。
图15显示了数据交换流程之前的初始状态。
图16显示了数据交换流程期间的状态。
图17显示了另一个数据交换流程期间的状态。
图18显示了另一个数据交换流程期间的状态。
图19显示了另一个数据交换流程期间的状态。
图20显示了另一个数据交换流程期间的状态。
图21显示了另一个数据交换流程期间的状态。
图22显示了另一个数据交换流程期间的状态。
图23显示了另一个数据交换流程期间的状态。
图24显示了数据交换流程之后的最终状态。
图25是显示在数据交换流程之前/之后偏移量值如何转变的表。
图26是显示如图15到图24所述的、偏移量值为“0”的逻辑页面地址区域与偏移量值为“1”的逻辑页面地址区域之间的数据交换流程的流程图。
图27是显示偏移量值为“0”的逻辑页面地址区域与偏移量值为“0”的逻辑页面地址区域之间的数据交换流程的流程图。
图28是显示偏移量值为“1”的逻辑页面地址区域与偏移量值为“1”的逻辑页面地址区域之间的数据交换流程的流程图。
图29是用于说明数据交换流程之前虚拟页面地址和逻辑页面地址之间的映射的框图。
图30是用于说明数据交换流程之后虚拟页面地址和逻辑页面地址之间的映射的框图。
图31是用于说明数据交换流程之前虚拟页面地址与逻辑页面地址之间的地址转换表的一个表格。
图32是用于说明数据交换流程之后虚拟页面地址与逻辑页面地址之间的地址转换表的一个表格。
图33是用于说明数据交换流程之前的自由区域管理表的一个表格。
图34是用于说明数据交换流程之后的自由区域管理表的一个表格。
图35是显示如何替换闪存存储器模块的步骤的流程图。
图36显示了当闪存存储器模块上出现故障时的情况。
图37是用于说明闪存存储器模块替换之后的状态的框图。
图38是显示在闪存存储器模块替换之后如何重建数据的框图。
图39是显示其中将备份组中的闪存存储器模块替换为新模块的情况的框图。
具体实施方式
在下文中参考附图,提供关于本发明的实施例的说明。
<概述>
根据本发明实施例的一种使用闪存存储器的存储系统,包括存储控制器和作为存储介质的多个闪存存储器模块。每个闪存存储器模块(例如,闪存存储器模块P0)包括至少一个闪存存储器芯片(例如,闪存存储器芯片405),以及用于对属于该闪存存储器芯片的存储块(例如,存储块406)的擦除次数进行平均的存储器控制器(例如,控制器MC)。存储控制器(例如,存储控制器SC)把多个闪存存储器模块组合成第一逻辑组(例如,平均读写组W00),并且把用于访问属于第一逻辑组的闪存存储器模块的第一地址(例如,逻辑页面地址600)转换成用于在存储控制器中表示第一地址的第二地址(例如,虚拟页面地址604),并且将多个第一逻辑组进行组合以构成第二逻辑组(例如,RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)组)。
图1是显示根据本实施例的存储系统的结构的框图。
存储系统100包括存储控制器SC和闪存存储器模块P00到P35。
存储控制器SC包括通道适配器CA0、CA1,缓冲存储器CM0、CM1,存储适配器SA0、SA1,以及互连网络NW0、NW1。虽然通道适配器CA0、CA1,缓冲存储器CM0、CM1,存储适配器SA0、SA1在附图中是分别成对显示的,但是那些组件不限制于成对提供,而是可以以任意数量提供。
互连网络NW0、NW1可以是构成存储控制器SC的部分的交换器(Switch)以及互连设备。具体地说,互连网络NW0、NW1将通道适配器CA0、缓冲存储器CM0以及存储适配器SA0相互连接。互连网络NW0、NW1还将通道适配器CA1、缓冲存储器CM1以及存储适配器SA1相互连接。
如随后在图2中所示的通道适配器CA0,经由通道C00、C01、C02、C03而与外部主机系统(未显示)相连接。通道适配器CA1经由通道C10、C11、C12、C13而与外部主机系统(未显示)相连接。主机系统表示用于对根据本实施例的存储系统100进行数据读取和写入的计算机。存储系统100经由光纤通道交换器、FC-AL(光纤频通道仲裁环)、SAS(串行附属SCSI)扩展器等等而与主机系统或其他存储系统相连接。
缓冲存储器CM0暂时地存储从通道适配器CA0和存储适配器SA0所接收到的数据。缓冲存储器CM1暂时地存储从通道适配器CA1和存储适配器SA1中所接收的数据。
存储适配器SA0与闪存存储器模块P00等等(随后在图3中描述)相连接。具体地说,存储适配器SA0经由通道D00而与闪存存储器模块P00到P05相连接。存储适配器SA0还经由通道D01与闪存存储器模块P10到P15相连接。存储适配器SA0更进一步经由通道D02与闪存存储器模块P20到P25相连接。此外,存储适配器SA0经由通道D03而与闪存存储器模块P30到P35相连接。
存储适配器SA1与闪存存储器模块P00等等相连接。具体地说,存储适配器SA1经由通道D10而与闪存存储器模块P00到P05相连接。存储适配器SA1还经由通道D11与闪存存储器模块P10到P15相连接。存储适配器SA1更进一步经由通道D12与闪存存储器模块P20到P25相连接。此外,存储适配器SA1经由通道D13而与闪存存储器模块P30到P35相连接。具体地说,存储适配器和闪存存储器模块经由光纤通道交换器、FC-AL、SAS扩展器等等而相互连接。
通道适配器CA0、CA1和存储适配器SA0、SA1与维护终端SVP相连接。维护终端SVP向通道适配器CA0、CA1和/或存储适配器SA0、SA1发送由存储系统100的管理员所输入的设置信息。代替采用存储适配器SA0和通道适配器CA0,存储系统100可装有单个适配器。在这种情况下,这个适配器执行由存储适配器SA0和通道适配器CA0所执行的流程。
图2是显示通道适配器的结构的框图。通道适配器CA0包括主机通道接口21、缓冲存储器接口22、网络接口23、处理器24、本地存储器25以及处理器外围设备控制单元26。
主机通道接口21经由通道C00、C01、C02、C03而与外部主机系统(未显示)相连接。主机通道接口21在通道C00、C01、C02、C03上的数据传送协议和存储控制器SC内部的数据传送协议之间进行相互转换。
缓冲存储器接口22与互连网络NW0、NW1相连接。网络接口23与维护终端SVP相连接。主机通道接口21和缓冲存储器接口22经由信号线27相互连接。
处理器24通过运行存储在本地存储器25上的每一个程序而执行各种流程。具体地说,处理器24控制主机系统和互连网络NW0、NW1之间的数据传送。
本地存储器25存储由处理器24所运行的程序。本地存储器25存储处理器24所要查阅的表。该表可以由管理员来设置或改变。
在这种情况下,管理员输入关于设置或改变该表的信息。维护终端SVP经由网络接口23把管理员输入的信息发送给处理器24。处理器24根据所接收的信息而生成或改变该表。然后,处理器24将该表存储在本地存储器25上。
处理器外围设备控制单元26控制主机接口通道21、缓冲存储器接口22、网络接口23、处理器24以及本地存储器25之间的数据传送。处理器外围设备控制单元26例如是芯片组等等。通道适配器CA1具有与通道适配器CA0相同的结构。因此,此处省去了对通道适配器CA1的说明。
图3是显示根据本实施例的存储适配器的框图。存储适配器SA0包括缓冲存储器接口31、存储器通道接口32、网络接口33、处理器34、本地存储器35以及处理器外围设备控制单元36。
缓冲存储器接口31与互连网络NW0、NW1相连接。存储器通道接口32与通道D00、D01、D02、D03相连接。存储器通道接口32在通道D00、D01、D02、D03上的数据传送协议和存储控制器SC内部的数据传送协议之间进行相互转换。缓冲存储器接口31和存储器通道接口32经由信号线37相互连接。网络接口33与维护终端SVP相连接。
处理器34通过运行存储在本地存储器35上的每一个程序而执行各种流程。
本地存储器35存储由处理器34所运行的程序。本地存储器35同样存储由处理器34所查阅的表。该表可以由管理员来设置或改变。
在这种情况下,管理员把关于设置或改变该表的信息输入到维护终端SVP中。维护终端SVP经由网络接口33把管理员输入的信息发送给处理器34。处理器34根据所接收的信息而生成或改变该表。然后,处理器34将该表存储在本地存储器35上。
处理器外围设备控制单元36控制缓冲存储器接口31、存储器通道接口32、网络接口33、处理器34和本地存储器35之间的数据传送。处理器外围设备控制单元36可以是芯片组等等。存储适配器SA1具有与存储适配器SA0相同的结构。因此,此处省去了对存储适配器SA1的说明。
图4是显示根据本发明的闪存存储器模块的结构的框图。闪存存储器模块P00包括存储器控制器MC和闪存存储器MEM。闪存存储器MEM存储数据。存储器控制器MC读取/写入或擦除存储在闪存存储器MEM上的数据。
存储器控制器MC包括处理器(μP)401、接口单元(I/F)402、数据传送单元(HUB)403、存储器(RAM)404和存储器(ROM)407。
闪存存储器MEM包括多个闪存存储器芯片405。每个闪存存储器芯片405包括多个存储块406以便在其上存储数据。每个存储块406是存储器控制器MC擦除数据的一个单位,如随后在图5中所描述的那样。
存储块406包括多个页面。页面是存储器控制器MC读/写数据的单位,如随后在图5中所描述的那样。把每个页面分类为有效页面、无效页面、未使用页面或者坏页面。有效页面是存储有效数据的页面。无效页面是存储无效数据的页面。未使用页面是没有存储数据的页面。坏页面是物理上不可用的页面,例如,因为页面包含有损坏的存储元件。
接口单元402经由通道D00而与存储控制器SC中的存储适配器SA0相连接。接口单元402也经由通道D10而与存储控制器SC中的存储适配器SA1相连接。
接口单元402从存储适配器SA0和存储适配器SA1接收指令。来自存储适配器SA0和存储适配器SA1的指令诸如是SCSI命令。具体地说,接口单元402从存储适配器SA0和存储适配器SA1接收数据。然后接口单元402把所接收的数据存储在存储器404上。接口单元402也把存储在存储器404上的数据发送给存储适配器SA0和存储适配器SA1。
存储器404例如是能够以高速来读/写数据的动态随机存取存储器。存储器404暂时地存储由接口单元402发送或接收的数据。存储器407是用于存储要由处理器401来运行的程序的非易失性存储器。当激活闪存存储器模块P00时,把程序从存储器407拷贝到存储器404上从而处理器401能够运行该程序。存储器404存储处理器401所要查阅的表。该表可包括例如闪存存储器MEM的逻辑页面地址和物理页地址之间的地址转换表。逻辑页面地址是当从闪存存储器模块外部(例如,从存储适配器SA0)访问作为在闪存存储器上读/写数据的单位的页面时使用的地址。物理页面地址是当存储器控制器MC访问作为在闪存存储器上读/写数据的单位的页面时所使用的地址。
数据传送单元403可以是例如用于将处理器401、接口单元402、存储器404、存储器407以及闪存存储器MEM相互连接的交换器,并控制这些组件之间的数据传送。
处理器401通过运行存储在存储器404上的每一个程序而执行各种流程。例如,处理器401查阅闪存存储器的逻辑页面地址和物理页面地址之间的地址转换表(存储在存储器404上),然后根据该表在闪存存储器MEM上读/写数据。处理器401为闪存存储器模块中的存储块406提供回收流程(存储块回收流程)和平均读写流程。
回收流程(存储块回收流程)是把存储块406中的无效页面重建成未使用页面的流程,以便能够把含有较少未使用页面的存储块重建为再次有效。此处假定作为回收流程的目标的存储块406包括有效页面、无效页面和未使用页面,其中很多是无效页面。在这种情况下,需要擦除无效页面以便增加未使用页面。然而,擦除流程不是在逐页面基础上进行的,而是在逐存储块基础上进行的。因此,需要以这样一种方式来把存储块重建为有效,即,把目标存储块的有效页面拷贝到空存储块上,然后擦除目标存储块。具体地说,处理器401把作为回收流程的目标的存储块406(即目标存储块)中有效页面上所存储的数据拷贝到未使用的存储块上。处理器401将拷贝了数据的该未使用的存储块的逻辑存储块号码修改为目标存储块的逻辑存储块号码。然后,擦除目标存储块上的所有数据,从而完成回收流程。
例如,随着处理器401把更多数据写入到存储块406上,存储块406中更多的未使用页面被减少。然后,如果存储块406变得缺少未使用页面,则处理器401不能再把数据写到存储块406上。因此,处理器401通过在存储块406上执行回收流程而把无效页面回收成未使用页面。
平均读写流程是用于对存储块406的擦除次数进行平均的流程,从而能够提高闪存存储器MEM耐用性。闪存存储器MEM经历的数据擦除次数越多,闪存存储器MEM最终达到其耐用性的速度就越快。通常,保证闪存存储器MEM的耐用性高达10,000到100,000次。
现在,其他闪存存储器模块P01到P35具有与闪存存储器模块P00相同的结构。因此,省去了对这些模块P01到P35的说明。
图5是显示闪存存储器模块的存储块的结构的图示。闪存存储器模块P00的存储块406包括多个页面501。存储块406通常包括几十个页面501(例如,32个页面、64个页面)。
每个页面501是存储器控制器MC之类读/写数据的一个单位。例如,在NAND型闪存存储器中,存储器控制器MC之类以20到30μs或更低/页面的速度来读数据,并且以0.2到0.3ms/页面的速度写数据。存储器控制器MC之类以2到4ms/存储块的速度来擦除数据。
页面501包括数据段502和冗余段503。例如,数据段502包含512字节,冗余段503包含16字节。数据段502存储顺序的数据(ordinal data)。
冗余段503存储关于页面501的管理信息和错误校正码。管理信息包括偏移量地址和页面状态。偏移量地址是页面501所属的存储块406中的相对地址。页面状态显示了页面501是否是有效页面、无效页面、未使用页面、或正在进行处理的页面。错误校正码是用于检测和校正页面501上的错误的码,诸如Humming码。
图6是显示逻辑组的结构和地址转换的层次的框图。图6中的存储系统具有与图1中的存储系统相同的硬件配置。为了方便起见,仅显示了作为与闪存存储器模块P00到P35连接的存储控制器SC的通道的通道D00、D01、D02、D03,并且在图中省略了通道D10、D11、D12、D13。
在根据本实施例的存储系统100中,在同一个通道上相互连接的闪存存储器模块构成了一个平均读写组(WDEV)。例如,通道D00上的闪存存储器模块P00到P03构成了平均读写组W00。类似地,通道D01上的闪存存储器模块P10到P13构成了平均读写组W10;通道D02上的闪存存储器模块P20到P23构成了平均读写组W20;以及通道D03上的闪存存储器模块P30到P33构成了平均读写组W30。
从存储控制器SC可经由每个闪存存储器模块相应的逻辑页面地址访问每个闪存存储器模块。例如,可经由模块的每个相应的逻辑页面地址600而访问通道D00上的闪存存储器模块P00到P03。类似地,可经由模块的每个相应的逻辑页面地址601而访问通道D01上的闪存存储器模块P10到P13;可经由模块的每个相应的逻辑页面地址602而访问通道D02上的闪存存储器模块P20到P23;以及可经由模块的每个相应的逻辑页面地址603而访问通道D03上的闪存存储器模块P30到P33。
存储控制器SC把属于相同的平均读写组的闪存存储器模块的多个逻辑页面地址放到一起成为一组并且把该组转换成单个虚拟页面地址。例如,存储控制器SC把属于平均读写组W00的闪存存储器模块P00到P03的逻辑页面地址600放在一起,并且把该组转换成虚拟页面地址604。类似地,把属于平均读写组W10的闪存存储器模块P10到P13的逻辑页面地址601放在一起并转换成虚拟页面地址605;把属于平均读写组W20的闪存存储器模块P20到P23的逻辑页面地址602放在一起并转换成虚拟页面地址606;以及把属于平均读写组W30的闪存存储器模块P30到P33的逻辑页面地址603放在一起并转换成虚拟页面地址607。
如上所述,存储控制器SC把逻辑页面地址转换成虚拟页面地址。以这种方式,即使为了平均读写的目的而在闪存存储器模块之间传递数据并且改变了相关的逻辑页面地址,作为较高层次设备的存储控制器SC也能够改变逻辑页面地址与对应于该逻辑地址的虚拟页面地址之间的映射,从而能够不相冲突地访问数据。
在根据本实施例的存储系统100中,将多个平均读写组进行组合从而构成单个RAID组(VDEV)。在图6中,将四个平均读写组W00到W30组合成一个RAID组V00。构成单个RAID组的每一个平均读写组中的每个虚拟页面地址页面区域具有相同的存储容量。将一个或多个RAID组中的区域组合成单个逻辑卷608,其是存储控制器SC向主机系统显示的存储区域。
通道D00上的闪存存储器模块P04、P05构成备份组(YDEV)Y00。类似地,通道D01上的闪存存储器模块P14、P15构成备份组Y10;通道D02上的闪存存储器模块P24、P25构成备份组Y20;以及通道D03上的闪存存储器模块P34、P35构成备份组Y30。随后将描述如何替换模块。
图7是显示根据本实施例的存储系统100的RAID组的结构的框图。RAID组720是处于RAID级5的RAID组,由平均读写组700到703构成。例如,平均读写700由闪存存储器模块730、731构成。需要指出的是,根据功能把RAID分类到一个级别中,诸如RAID级0或RAID级1等等。
RAID组721是由平均读写组704、705构成的处于RAID级1的RAID组。类似地,RAID组722是由平均读写组706、707构成的处于RAID级1的RAID组。
在存储系统100中,如果把RAID分类到级别0、1、3、5、6或1+0中,则为构成相同RAID组的每一个平均读写组的逻辑页面地址区域提供相等的容量。平均读写组容量的上限是由公式1定义的,其下限是由公式2定义的。具体地说,“闪存存储器模块的持续的写入速度”和“系统耐用性”的乘积除以“闪存存储器耐用性”得到第二值(上限)。“对系统进行操作时的闪存存储器模块的有效写入速度”与“系统耐用性”的乘积除以“闪存存储器耐用性”得到第一值(下限)。接着,将每个平均读写组的逻辑页面地址区域的容量设置成不小于第一值且不大于第二值。例如,系统耐用性通常为5到10年,闪存存储器耐用性通常为10,000到100,000次。公式2中的有效写入速度表示考虑从主机系统到存储系统100的写访问率(write access ratio)的有效写入速度。
[公式1]
[公式2]
将平均读写组的容量设置为落入由公式1和公式2所定义的范围。通过为平均读写组中的闪存存储器模块提供平均读写,能够保证闪存存储器模块耐用性在存储系统100的系统耐用期之内。
RAID组723是由平均读写组708到711构成的处于RAID级4的RAID组;平均读写组708到710是用于存储数据的平均读写组;而平均读写组711是用于存储奇偶校验(parity)的平均读写组。用于存储奇偶校验的平均读写组的更新次数比用于存储数据的其他平均读写组的更新次数更多。因此,为了提供处于RAID级4的RAID组中的平均读写流程,将用于存储奇偶校验的平均读写组中的逻辑页面地址区域的容量设置为大于用于存储数据的平均读写组中的逻辑页面地址区域的容量。例如,如果构成RAID组的平均读写组的数量是“n”,则将用于存储奇偶校验的平均读写组的逻辑页面地址区域的容量设置为不小于用于存储数据的平均读写组的逻辑页面地址区域的容量的一倍且不大于用于存储数据的平均读写组的逻辑页面地址区域的容量的(n-1)倍。
图中未示出,在RAID级2上,用于存储冗余信息的平均读写组比用于存储数据的平均读写组具有更多的更新次数。例如,在RAID级2上,如果存在10个用于存储数据的平均读写组以及4个用于存储奇偶校验的平均读写组(10D4P),则将用于存储冗余信息的平均读写组中的逻辑页面地址区域的容量设置为不小于用于存储数据的平均读写组中的逻辑页面地址区域的容量的一倍且不大于用于存储数据的平均读写组中的逻辑页面地址区域的容量的10/4=2.5倍。对于25D5P,将用于存储冗余信息的平均读写组中的逻辑页面地址区域的容量设置为不小于用于存储数据的平均读写组中的逻辑页面地址区域的容量的一倍且不大于该容量的25/5=5倍。
换句话说,在RAID级2或RAID级4上,如果用于存储数据的平均读写组的数量是“n”,而用于存储冗余信息的平均读写组的数量是“m”,则将用于存储冗余信息的平均读写组中的逻辑页面地址区域的容量设置为不小于用于存储数据的平均读写组中的逻辑页面地址区域的容量的一倍且不大于该容量的“n/m”倍。
以这种方式,通过组合平均读写组而构成了存储控制器SC中的每个RAID组。具体地说,存储控制器SC考虑每个RAID组的平均读写组而对其进行管理。因此,每个平均读写组的虚拟页面地址被视为是独立的,而与每个平均读写组中的逻辑页面地址及虚拟页面地址之间的映射无关。因此,存储控制器SC能够把处于不同级别的多个RAID组相互连接。
图8是显示其中闪存存储器模块和硬盘驱动器与存储控制器SC相连接的例子的框图。闪存存储器模块810到812构成了平均读写组830。闪存存储器模块813到815构成了平均读写组831,并且平均读写组830、831构成了RAID组840。
类似于图6,存储控制器SC把逻辑页面地址800转换成虚拟页面地址802以便访问闪存存储器模块810到812中的任何一个。存储控制器SC还把逻辑页面地址801转换成虚拟页面地址803以便访问闪存存储器模块813到815中的任何一个。
将硬盘驱动器820和823组合成RAID组841。类似地,将硬盘驱动器821和824组合成RAID组842;并且将硬盘驱动器822和825组合成RAID组843。存储控制器SC经由逻辑存储块地址804或805而访问每个硬盘驱动器。在由硬盘驱动器构成的RAID组中,因为不需要平均读写所以没有定义平均读写组。存储控制器SC仅在由闪存存储器模块构成的RAID组中定义平均读写组,并且把逻辑页面地址转换成虚拟页面地址。
当激活系统或把存储介质与系统相连接时,存储控制器SC根据是否需要任何地址转换的判断或者如何配置RAID组的判断等等而改变控制,所述判断取决于存储介质是否是闪存存储器或硬盘驱动器。
存储控制器SC通过利用由闪存存储器模块构成的RAID组840或者由硬盘驱动器构成的RAID组841到843中任何一个的区域,或者通过将RAID组840和RAID组841到843的区域组合而构成逻辑卷808。闪存存储器模块的存储区域或硬盘驱动器的存储区域的选择可以是这样的,即在闪存存储器模块上存储读取访问较多并且更新次数较少的数据,并且在硬盘驱动器上存储更新次数较多的数据。闪存存储器模块能够利用潜规则(law latency)访问硬盘驱动器。因此,如果根据存储介质的访问属性而选择存储区域,如上所述,则可实现存储系统的高性能。
将参考附图,给出关于根据本实施例的存储系统100的操作的说明。
将参考图9到图14,给出关于用于根据本实施例的存储系统100的平均读写方法的说明。这个方法在多个闪存存储器模块之间提供平均读写。
图9是显示多个闪存存储器模块之间的平均读写流程的流程图。为了简便,假定目标平均读写组W00具有两个闪存存储器模块P00、P04。
图10显示了根据本实施例的平均读写流程伴随的数据交换流程之前的虚拟页面地址和逻辑页面地址之间的地址转换表。
图11显示了根据本实施例的平均读写流程伴随的数据交换之后的虚拟页面地址和逻辑页面地址之间的地址转换表。
参考图10和图11,表示了虚拟页面地址和逻辑页面地址之间的映射,以及这些映射的偏移量值。在根据本实施例的存储系统中,把逻辑页面地址区域(数据长度)设置为大于相应的虚拟页面地址区域(数据长度)。在逻辑页面地址区域中,如果在起始地址端写有有效数据并且在结束地址端存在自由区域,则指示偏移量值“0”。如果在结束地址端写有有效数据并且在起始地址端存在自由区域,则指示偏移量值“1”。在这种情况下,自由区域的大小是闪存存储器页面的数据段的整数倍(至少一倍),并且等于闪存存储器模块中的存储器控制器一次在闪存存储器上读/写的数据量。
图12显示了由存储控制器SC管理的每个闪存存储器模块的擦除次数管理表。存储控制器SC记录作为闪存存储器模块内的数据交换单位的每个区域的总写入量。如公式3所示,通过把前一平均擦除次数值与平均处理次数相加可以获得闪存存储器模块中的闪存存储器的平均擦除次数,所述平均处理次数是通过把独立的预定时间段中模块的每个逻辑页面地址区域的单独的总写入量的和,除以模块的整个逻辑页面地址区域容量(模块容量)而得到的。
[公式3]
在图12的管理表中,记录了两个平均擦除次数值。一个是最后一次运行平均读写流程时所记录的前一平均擦除次数(f00、f04),另一个是到目前为止的当前平均擦除次数(e00、e04)。从执行前一平均读写流程的上一次的时间直到现在,记录用于管理每个逻辑页面地址区域的写入次数的总写入量。通过公式3可容易地计算出当前平均擦除次数。通过管理每个独立的预定时间段中逻辑页面地址区域的总写入量,可以获得对于逻辑页面地址区域最近的访问频率。在该管理表中,用这样的方式来设置移动标志,即,在数据交换流程之前把该标志设置为“0”,在数据交换流程之后把该标志设置为“1”。在公式3中,在每个独立的时间段中对总写入量进行管理。假定没有独立的预定时间段,则可以由公式4来表示经过整个时间段的总写入量。公式3的结果或公式4的结果得到相同的平均擦除次数值。
[公式4]
即使当诸如电源故障之类的故障出现时或当不在系统服务时间内时,也需要保持图10或图11所示的地址转换表以及图12中的平均擦除次数管理表。因此,存储控制器SC在每个闪存存储器模块的每个预定区域上存储与每个模块的地址转换表以及平均擦除次数管理表有关的数据。
在图9中,当事件出现时(例如每当任何平均读写组(WDEV)的总写入量达到预定值时),或者以每个预定的时间段,存储控制器SC执行平均读写流程。此时,存储控制器SC把平均读写组中的闪存存储器模块的移动标志设置为“0”(S901)。
接下来,存储控制器SC通过查寻图12的平均擦除次数管理表而检验移动标志设置为“0”,并检验平均擦除次数的最大值和最小值(S902)。
存储控制器SC判断平均擦除次数的最大值和最小值之间的差是否不小于预定值(S903)。如果擦除次数的差不小于预定值,则存储控制器SC进行到S904。如果擦除次数的差小于预定值,则存储控制器SC完成该流程。
然后,存储控制器SC从图12的管理表中,在具有最大平均擦除次数的闪存存储器模块(PDEV)中选择具有最大总写入量的逻辑页面地址区域;并且在具有最小平均擦除次数的闪存存储器模块(PDEV)中选择具有最小总写入量的逻辑页面地址(S904)。
接下来,存储控制器SC把图10的虚拟页面与逻辑页面之间的地址转换表的状态字段设置为“交换”。具体地说,存储控制器SC把表示“交换”的值输入到图10的转换表的状态字段中,以便在两个所选择的逻辑页面地址区域之间执行数据交换并且改变与相应的虚拟页面地址的映射(S905)。在访问其上指示了“交换”的存储区域中,存储控制器SC暂时地停留在等待状态,并且在数据交换操作和映射改变操作完成之后,再次尝试访问该存储区域。在这个流程期间,将从主机系统写入的数据存储在存储控制器SC中的缓冲存储器上。
接下来,存储控制器SC在上述两个逻辑页面地址区域之间交换数据(S906)。随后将给出关于数据交换流程的详细说明。
数据交换流程之后,存储控制器SC对数据交换目标区域所属于的闪存存储器模块(PDEV)的字段(其中记录了前一平均擦除次数值)中的当前平均擦除次数值进行更新,并且将总写入量清零(S907)。因此,紧接在数据交换操作之后的平均擦除次数值与前一平均擦除次数值相同。
如图11所示,存储控制器SC改变虚拟页面地址与逻辑页面地址之间的映射和偏移量值,并且清除状态字段,然后把移动标志设置为“1”(S908)。在图12中,要成为平均读写的目标的平均读写组W00包括两个闪存存储器模块P00、P04。因此,如果在闪存存储器模块P00、P04之间执行了任何数据交换,则将闪存存储器模块P00、P04的移动标志都设置为“1”。
存储控制器SC判断是否存在移动标志为“0”的多个闪存存储器模块(PDEV)(S909)。如果判断没有移动标志为“0”的多个闪存存储器模块,则存储控制器SC完成平均读写流程。如果判断存在移动标志为“0”任意多个闪存存储器模块,则存储控制器SC返回到S902。在图12中,如果闪存存储器模块P00、P04的移动标志都设置为“1”,则存储控制器SC完成平均读写流程。例如,如果平均读写组包括四个或更多闪存存储器模块,则存储控制器SC在S902更进一步检验是否能够在其余的闪存存储器模块之间执行数据交换。
每次执行平均读写流程,都改变虚拟页面地址与逻辑页面地址之间的映射,并且同样更新平均擦除次数。因此,每次流程平均读写流程都需要对存储在闪存存储器模块的预定区域上的地址管理表(图10或图11)与图12的平均擦除次数管理表进行更新。
现在,如下描述S906的数据交换流程。
图13是为了说明平均读写流程伴随的数据交换流程之前的虚拟页面地址与逻辑页面地址之间的映射的框图。为了提供例子,此处要说明如何交换数据以及如何改变虚拟页面地址区域的数据区域1301与虚拟页面地址区域的数据区域1302之间的映射。虚拟页面地址区域的数据区域1301与逻辑页面地址区域的数据区域1303相对应。虚拟页面地址区域的数据区域1302与逻辑页面地址区域的数据区域1304相对应。例如,假定在逻辑页面地址区域上,在数据区域之间存在任何自由区域。如果自由区域位于相关的数据区域之后,则把偏移量值设置为“0”;以及如果自由区域位于相关的数据区域之前,则把偏移量值设置为“1”。例如,在图13中,因为数据区域1303具有在其之前的自由区域(虚线所示),从而其偏移量设置为“1”;并且数据区域1304具有在其之后的自由区域(虚线所示),从而其偏移量设置为“0”。因此,设置了逻辑页面地址区域的总存储量大于虚拟页面地址区域的总存储量。
图14是用于说明执行了平均读写流程的伴随的数据交换之后,虚拟页面地址和逻辑页面地址之间的映射的框图。虚拟页面地址区域的数据区域1401与逻辑页面地址区域的数据区域1404相对应;并且虚拟页面地址区域的数据区域1402与逻辑页面地址区域的数据区域1403相对应。数据区域1403的偏移量值是“0”,且数据区域1404的偏移量值是“0”。
为了提供数据交换流程的例子,图15到图24以一步接一步的基础,显示了如何在偏移量值为“0”的数据区域与偏移量值为“1”的数据区域之间交换数据。在图15到图24中,在左边是偏移量值为“0”的逻辑页面地址区域。如图所示,逻辑页面地址区域被分成五段,如分别以“E”、“F”、“G”、“H”和“-”所示。“E”到“H”表示其上写入了有效数据的区域,而“-”表示自由区域。
在图15到图24中,在右边是偏移量值为“1”的逻辑页面地址区域。逻辑页面地址区域被分成五段,如分别以“A”、“B”、“C”、“D”和“-”所示。“A”到“D”表示其上写入了有效数据的区域,而“-”表示自由区域。
图15显示了数据交换流程之前的初始状态。在左边偏移量值是“0”,而在右边偏移量值是“1”。
图16显示了数据交换流程期间的状态,把左边(偏移量值为“0”)的逻辑页面地址区域E上的数据重写到右边(偏移量值为“1”)的自由区域上。
图17显示了数据交换流程期间的状态,把右边的逻辑页面地址区域A上的数据重写到左边的原逻辑页面地址区域E上。
图18显示了数据交换流程期间的状态,把左边的逻辑页面地址区域F上的数据重写到右边的原逻辑页面地址区域A上。
图19显示了数据交换流程期间的状态,把右边的逻辑页面地址区域B上的数据重写到左边的原逻辑页面地址区域F上。
图20显示了数据交换流程期间的状态,把左边的逻辑页面地址区域G上的数据重写到右边的原逻辑页面地址区域B上。
图21显示了数据交换流程期间的状态,把右边的逻辑页面地址区域C上的数据重写到左边的原逻辑页面地址区域G上。
图22显示了数据交换流程期间的状态,把左边的逻辑页面地址区域H上的数据重写到右边的原逻辑页面地址区域C上。
图23显示了数据交换流程期间的状态,把右边的逻辑页面地址区域D上的数据重写到左边的原逻辑页面地址区域H上。
图24显示了数据交换流程之后的最终状态。偏移量值在左边是“0”,且偏移量值在右边也是“0”。
基本上,闪存存储器是这样的一种半导体器件,其中不能在物理地址区域上执行重写流程。具体地说,为了交换物理地址区域上的数据,实际上将数据拷贝到未使用页面上,然后把存储了数据的原始页面设置成无效页面。因此,在这个原始页面上没有执行实际的重写过程。
根据本实施例,上述流程全部在逻辑页面地址区域基础上执行,因此,能够在逻辑页面上重写数据。用这种方式,通过执行这种重写流程可以基于数据交换来执行平均读写流程。
图25是显示数据交换流程之前/之后偏移量值如何转变的表。
如果在偏移量值都为“0”的两个逻辑页面地址区域之间执行数据交换,则数据交换流程之后偏移量值分别变为“0”和“1”。如果在偏移量值为“0”的逻辑页面地址区域与偏移量值为“1”的逻辑页面地址区域之间执行数据交换,则数据交换流程之后偏移量值分别变为“0”和“0”。如果在偏移量值都为“1”的两个逻辑页面地址区域之间执行数据交换,则数据交换流程之后偏移量值分别变为“1”和“0”。
将参考流程图,给出关于数据交换流程的详细说明。
图26是显示偏移量值为“0”的逻辑页面地址区域与偏移量值为“1”的逻辑页面地址区域之间的数据交换流程(如图1 5到图24所述)的流程图。此处,存储控制器SC在偏移量值为“0”的逻辑页面地址区域与偏移量值为“1”的逻辑页面地址区域之间设置数据交换目标(S2601)。
存储控制器SC把目标逻辑页面地址区域分成“n”段;并设置为“i=1”(S2602)。就图15而言,例如,设置为“n=5”,并且把有效数据写入到所分割的(n-1)个段上,剩余的一个段用作自由区域。存储控制器SC把数据从偏移量值为“0”的第i个逻辑页面地址区域中移动到偏移量值为“1”的第i个逻辑页面地址区域中(S2603),然后同样地把数据从偏移量值为“1”的第i+1个逻辑页面地址区域中移动到偏移量值为“0”的第i个逻辑页面地址区域中(S2604);并且使“i”递增“1”(S2605)。然后,存储控制器SC判断是否“i=n”(S2606)。如果判断不是“i=n”,那么存储控制器SC返回到S2603。如果判断为“i=n”,那么存储控制器SC完成数据交换流程。
图27是显示偏移量值为“0”的逻辑页面地址区域与偏移量值为“0”的逻辑页面地址区域之间的数据交换流程的流程图。此处,存储控制器SC在偏移量值为“0”的逻辑页面地址区域与偏移量值为“0”的逻辑页面地址区域之间设置数据交换目标(S2701)。
存储控制器SC把目标逻辑页面地址区域分成“n”段,并设置为“i=n”(S2702)。有效数据写入到所分割的(n-1)个段上,剩余的一个段是自由区域。直到到达“i=1”之前,以逐段的基础重复数据交换流程(S2703到S2706)。在S2706,如果判断为“i=1”,则完成数据交换流程。
图28是显示偏移量值为“1”的逻辑页面地址区域与偏移量值为“1”的逻辑页面地址区域之间的数据交换流程的流程图。此处,存储控制器SC在偏移量值为“1”的逻辑页面地址区域与偏移量值为“1”的逻辑页面地址区域之间设置数据交换目标(S2801)。
存储控制器SC把目标逻辑页面地址区域分成“n”段;并设置为“i=2”(S2802)。有效数据写入到所分割的(n-1)个段上,剩余的一个段是自由区域。直到变成“i>n”之前,以逐段的基础重复数据交换流程(S2803到S2806)。在S2806,如果判断为“i>n”,则完成数据交换流程。
图29到图34是说明根据本发明另一个实施例的平均读写流程的附图。根据上述实施例,在闪存存储器模块中分布有用于数据交换的自由区域。在这个实施例中,将说明把自由区域处理为每个模块中的一个组的方法。
图29是用于说明执行数据交换流程之前的虚拟页面地址和逻辑页面地址之间的映射的框图。
图30是用于说明执行数据交换流程之后的虚拟页面地址与逻辑页面地址之间的映射的框图。为了简便,假定目标平均读写组W00具有两个闪存存储器模块P00、P04。在数据交换之前的状态(图29)中,闪存存储器模块P00、P04的逻辑页面地址区域具有从地址AC0到地址AC4之前的数据区域。地址AC4的区域或更多区域用作用于数据交换的自由区域(2903、2904)。这个自由区域的大小(数据长度)与用于数据交换的数据区域的大小相同以执行平均读写流程。
图31是用于说明执行数据交换流程之前的用于虚拟页面地址与逻辑页面地址之间的数据交换的地址转换表的一个表格。图32是用于说明执行数据交换流程之后的用于虚拟页面地址与逻辑页面地址之间的数据交换的地址转换表的一个表格。在这个实施例中,由于把用于数据交换的自由区域处理为一个组,从而图10和图11的地址转换表所需要的偏移量值管理就不必要了。代之以需要管理自由区域位置。
图33是用于说明执行数据交换流程之前的自由区域管理表的一个表格,而图34是用于说明执行数据交换流程之后的自由区域管理表的一个表格。自由区域管理表管理每个闪存存储器模块中的自由区域的起始逻辑页面地址和大小(数据长度)。
将参考图29,给出如何在虚拟页面地址区域的数据区域2901和数据区域2902之间交换数据以及如何改变虚拟页面地址与逻辑页面地址之间的映射的说明。如图31中的逻辑页面地址与虚拟页面地址之间的地址转换表所示,可以理解虚拟页面地址区域中的数据区域2901与逻辑页面地址区域中的数据区域2905相对应;而虚拟页面地址区域中的数据区域2902与逻辑页面地址区域中的数据区域2906相对应。参考图33中的自由区域管理表,可以理解闪存存储器模块P00中用于数据交换的自由区域是区域2903;而闪存存储器模块P04中用于数据交换的自由区域是区域2904。
接下来,将数据区域2905上的数据写入到自由区域2904上,将数据区域2906上的数据写入到自由区域2903上。如图30所示,将虚拟页面地址区域中的数据区域3001设置为与逻辑页面地址区域中的数据区域3004相对应;并将虚拟页面地址区域中的数据区域3002设置为与逻辑页面地址区域中的数据区域3003相对应。完成上述数据交换流程之后,更新虚拟页面地址与逻辑页面地址之间的转换表,如图32所示。如图34所示,可以理解闪存存储器模块P00中用于数据交换的自由区域是区域3005;而闪存存储器模块P04中用于数据交换的自由区域是区域3006。
根据本实施例,将用于数据交换的自由区域处理为每个模块一个组,而不是象其他实施例所述的那样在闪存存储器模块中分配用于数据交换的自由区域,借此消除了对偏移量值的管理,结果产生了较容易的数据交换控制。
接下来,此处将对在闪存存储器模块(PDEV)上出现故障的情况给出说明。
参考图35到图39,给出了对当闪存存储器模块上出现故障时如何替换闪存存储器模块的方法的说明。
图35是显示如何替换模块的步骤的流程图。
图36到图39是说明图35的流程图的每个步骤的框图。
图36显示了当闪存存储器模块上出现故障时的情况。图36显示了RAID组(VDEV)V00,以及构成RAID组V00的平均读写组(WDEV)W00、W10、W20、W30。备份组(YDEV)Y00连接于连接了平均读写组W00的同一通道D01上。
现在,假定在平均读写组W00中的闪存存储器模块(PDEV)P01上出现故障(S3501)。
然后,选择其中平均读写(WDEV)W00可用的备份组(YDEV)。选择了连接在平均读写组W00的相同通道D01上的备份组Y00(S3502)。然后,从属于该备份组Y00的闪存存储器模块中,选择了闪存存储器模块P04用于替换闪存存储器模块P01(S3503)。
图37是用于说明闪存存储器模块替换之后的状态的框图。如图37所示,把闪存存储器模块P01替换为平均读写组W00与备份组Y00之间的闪存存储器模块P04。在替换中,故障的模块P01停留在待机状态。
接下来,图38是显示在闪存存储器替换之后如何重建数据的框图。如图38所示,将写在闪存存储器模块P01上的数据重建并写入到新合并到平均读写组W00中的闪存存储器模块P04上(S3504)。要指出的是,此时,由于平均读写,用于数据重建的数据存储并分配在不同平均读写组中的闪存存储器模块之间。换句话说,在同一虚拟页面地址中不同的平均读写组中所存储的数据上进行数据重建。
图39是显示其中将备份组中的闪存存储器替换为新的闪存存储器模块的情况的框图。如图39所示,把替换中处于待机状态的闪存存储器模块P01替换为新的闪存存储器模块P06,并且将模块P06合并到备份组Y00中(S3505)。然后,完成闪存存储器模块替换。
根据模块替换之前旧模块的总写入量,判断在模块替换之后是否能够立即执行平均读写流程。要指出的是,除了伴随着数据重建的一些写入之外,新替换的模块在相关的逻辑页面地址区域的整个区域上没有总写入量,因此,不可能知道逻辑页面地址区域的每个预定区域的写入频率。可以使用模块替换之前旧模块的总写入量来获知逻辑页面地址区域的写入频率,以便执行平均读写流程。
本发明提供了一种在多个闪存存储器模块之间提供平均读写的方法,其适用于提高闪存存储器模块耐用性的目的,具体地说适用于利用具有多个闪存存储器模块的大容量闪存存储器的存储系统;一种为此的平均读写方法;以及用于运行上述方法的平均读写程序。
已经如上所述说明了根据本发明的实施例。然而,本发明的实施例不局限于那些说明,本领域技术人员可确定本发明的基本特征并且在不脱离权利要求的精神和范围的情况下可以对本发明进行各种改进和变化以使它适应于各种应用和条件。
Claims (22)
1.一种使用闪存存储器的存储系统,包括存储控制器和作为存储介质的多个闪存存储器模块,
每个闪存存储器模块包括至少一个闪存存储器芯片,以及用于对属于该闪存存储器芯片的存储块的擦除次数进行平均的存储器控制器,
存储控制器:
把多个闪存存储器模块组合成第一逻辑组,
把用于访问属于第一逻辑组的闪存存储器模块的第一地址转变成用于在存储控制器中指示第一地址的第二地址,并且
把多个第一逻辑组组合成第二逻辑组。
2.根据权利要求1所述的使用闪存存储器的存储系统,其中
第二逻辑组包括用于在闪存存储器模块中的任一个上出现故障时重建所记录的数据的冗余信息。
3.根据权利要求1所述的使用闪存存储器的存储系统,其中
第二逻辑组是RAID级0、RAID级1、RAID级1+0、RAID级3、RAID级5或者RAID级6中任何一个上的逻辑组,并且为构成第二逻辑组的每一个第一逻辑组提供相等的容量。
4.根据权利要求1或2所述的使用闪存存储器的存储系统,其中
第一值是存储系统操作期间每个闪存存储器模块的有效写入速度与存储系统耐用性的乘积除以闪存存储器耐用性而得到的商;
第二值是每个闪存存储器模块的持续的写入速度与存储系统耐用性的乘积除以闪存存储器耐用性而得到的商;并且
将第一逻辑组的容量设置为不小于第一值且不大于第二值。
5.根据权利要求1或2所述的使用闪存存储器的存储系统,
其中
第二逻辑组是RAID级2或者RAID级4上的逻辑组;并且
在构成第二逻辑组的第一逻辑组中,如果用于存储冗余信息的第一逻辑组的数目是m,而用于存储数据的第一逻辑组的数目是“n”,
则将用于存储冗余信息的第一逻辑组的容量设置为用于存储数据的第一逻辑组的容量的至少一倍且不大于“n/m”倍。
6.根据权利要求1或2所述的使用闪存存储器的存储系统,其中将经由第一地址访问的存储区域设置为大于经由第二地址访问的存储区域。
7.根据权利要求1或2所述的使用闪存存储器的存储系统,其中存储控制器存储每个闪存存储器模块的第一地址与第二地址之间的映射信息,以及每个闪存存储器模块中存储块的平均擦除次数。
8.根据权利要求1或2所述的使用闪存存储器的存储系统,其中存储控制器构建多个第二逻辑组。
9.根据权利要求1或2所述的使用闪存存储器的存储系统,其中存储控制器构建不同的RAID级上的多个第二逻辑组。
10.根据权利要求1或2所述的使用闪存存储器的存储系统,其中当激活存储系统或者当存储介质连接于存储系统时,存储控制器判断该存储介质是否是闪存存储器。
11.一种用于使用闪存存储器的存储系统的平均读写方法,该存储系统包括:
闪存存储器模块,包括至少一个闪存存储器芯片和用于对属于该闪存存储器芯片的存储块的擦除次数进行平均的存储器控制器;以及
存储控制器,用于
把闪存存储器模块组合成第一逻辑组,
把用于访问属于第一逻辑组的闪存存储器模块的第一地址转变成用于在存储控制器中指示第一地址的第二地址,以及
把多个第一逻辑组组合成第二逻辑组,
该方法包括:
允许存储控制器对于闪存存储器模块中的每个预定存储区域的写入量提供次数管理的步骤;
允许存储控制器计算平均擦除次数的步骤,该平均擦除次数是通过把经过预定时段每个闪存存储器模块的总写入量除以闪存存储器模块的容量而得到的;以及
允许存储控制器判断平均擦除次数的最大值和最小值之间的差是否不小于预定值的第一判断步骤,
其中
在第一判断步骤,如果平均擦除次数的差不小于预定值,则该方法进一步包括:允许存储控制器在具有平均擦除次数的最大差值的闪存存储器模块之中,在具有最大写入量的存储区域和具有最小写入量的存储区域之间交换数据,并且改变第一地址与第二地址之间的映射信息的步骤。
12.根据权利要求11所述的用于使用闪存存储器的存储系统的平均读写方法,进一步包括:
允许存储控制器在执行数据交换步骤之后判断是否存在没有交换数据的多个闪存存储器模块的第二判断步骤,
其中
在第二判断步骤,如果判断存在没有交换数据的多个闪存存储器模块,则该方法进一步包括允许存储控制器回到第一判断步骤的步骤。
13.根据权利要求11或12所述的用于使用闪存存储器的存储系统的平均读写方法,其中
如果每个第一逻辑组的总写入量达到预定值,存储控制器执行第一判断步骤。
14.根据权利要求11或12所述的用于使用闪存存储器的存储系统的平均读写方法,其中
将第一地址的存储区域设置为大于第二地址的存储区域,并且
数据交换步骤包括通过在第一地址的存储区域中重写数据来交换数据的步骤。
15.根据权利要求11或12所述的用于使用闪存存储器的存储系统的平均读写方法,其中
如果每个第一逻辑组的总写入量达到预定值,则存储控制器执行第一判断步骤,
将第一地址的存储区域设置为大于第二地址的存储区域,并且
数据交换步骤包括通过在第一地址的存储区域中重写数据来交换数据的步骤。
16.根据权利要求11所述的用于使用闪存存储器的存储系统的平均读写方法,其中为闪存存储器模块提供自由区域,该自由区域的大小等于存储器控制器对于闪存存储器模块中的每个预定存储区域可以传输的传输数据,为该自由区域提供关于写入量的次数管理。
17.根据权利要求11所述的用于使用闪存存储器的存储系统的平均读写方法,其中为闪存存储器模块提供与闪存存储器模块中的预定存储区域大小相同的自由区域,为该自由区域提供关于写入量的次数管理。
18.根据权利要求11所述的用于使用闪存存储器的存储系统的平均读写方法,其中
如果用新的闪存存储器模块替换闪存存储器模块,
则将对其提供次数管理的前一闪存存储器模块中的每个预定存储区域的写入量设置为新的替换的闪存存储器模块中的每个预定存储区域的写入量。
19.一种用于使用闪存存储器的存储系统的平均读写方法,该存储系统包括:
闪存存储器模块,包括至少一个闪存存储器芯片和用于对属于该闪存存储器芯片的存储块的擦除次数进行平均的存储器控制器;以及
存储控制器,用于
把闪存存储器模块组合成第一逻辑组,
把用于访问属于第一逻辑组的闪存存储器模块的第一地址转变成用于在存储控制器中指示第一地址的第二地址,以及
把多个第一逻辑组组合成第二逻辑组,
该方法包括:
允许存储控制器对于闪存存储器模块中的每个预定存储区域的写入量提供次数管理的步骤;
允许存储控制器计算每个闪存存储器模块的平均擦除次数的步骤,其中通过将预定时间处的第一平均擦除次数加到第二平均擦除次数上来计算平均擦除次数,该第二平均擦除次数是将该预定时间以后的总写入量除以闪存存储器模块的容量而得到的,
允许存储控制器判断平均擦除次数的最大值和最小值之间的差是否不小于预定值的第一判断步骤,
其中
在第一判断步骤,如果判定差不小于预定值,则该方法进一步包括:允许存储控制器在具有擦除次数的最大差值的闪存存储器模块之中,在具有最大写入量的存储区域和具有最小写入量的存储区域之间交换数据,并且改变第一地址与第二地址之间的映射信息的步骤。
20.根据权利要求19所述的用于使用闪存存储器的存储系统的平均读写方法,进一步包括允许存储控制器用第二平均擦除次数替代第一平均擦除次数的步骤。
21.一种用于使用闪存存储器的存储系统的平均读写程序,该存储系统包括:
闪存存储器模块,包括至少一个闪存存储器芯片和用于对属于该闪存存储器芯片的存储块的擦除次数进行平均的存储器控制器;以及
存储控制器,用于
把多个闪存存储器模块组合成第一逻辑组,
把用于访问属于第一逻辑组的闪存存储器模块的第一地址转变成用于在存储控制器中指示第一地址的第二地址,以及
把多个第一逻辑组组合成第二逻辑组,
该程序执行:
允许计算机对于闪存存储器模块中的每个预定存储区域的写入量提供次数管理的流程;
允许计算机计算平均擦除次数的流程,该平均擦除次数是通过把经过预定时段每个闪存存储器模块的总写入量除以闪存存储器模块的容量而得到的;
计算机判断平均擦除次数的最大值和最小值之间的差是否不小于预定值的第一判断的流程,
其中
在第一判断,如果差值不小于预定值,则该程序进一步包括用于允许计算机改变第一地址和第二地址之间的映射信息的流程。
22.根据权利要求21所述的用于使用闪存存储器的存储系统的平均读写程序,进一步包括:
允许计算机在数据交换步骤之后判断是否存在没有交换数据的多个闪存存储器模块的第二判断的流程,
其中
在第二判断流程,如果判断存在没有交换数据的多个闪存存储器模块,则该程序进一步包括允许计算机返回到第一判断流程的流程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006092217 | 2006-03-29 | ||
JP2006092217A JP4863749B2 (ja) | 2006-03-29 | 2006-03-29 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101731304A Division CN101645041B (zh) | 2006-03-29 | 2006-12-19 | 使用闪存的存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101046771A true CN101046771A (zh) | 2007-10-03 |
CN100555244C CN100555244C (zh) | 2009-10-28 |
Family
ID=38180259
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101731304A Active CN101645041B (zh) | 2006-03-29 | 2006-12-19 | 使用闪存的存储系统 |
CNB2006101687026A Active CN100555244C (zh) | 2006-03-29 | 2006-12-19 | 使用闪存的存储系统及其平均读写方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101731304A Active CN101645041B (zh) | 2006-03-29 | 2006-12-19 | 使用闪存的存储系统 |
Country Status (4)
Country | Link |
---|---|
US (6) | US7409492B2 (zh) |
EP (2) | EP1840722B1 (zh) |
JP (1) | JP4863749B2 (zh) |
CN (2) | CN101645041B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727403A (zh) * | 2008-10-15 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 数据存储系统、设备及方法 |
CN102272739A (zh) * | 2009-03-24 | 2011-12-07 | 株式会社日立制作所 | 存储装置及其数据控制方法 |
CN102280126A (zh) * | 2010-06-13 | 2011-12-14 | 宇瞻科技股份有限公司 | 可扩充存储器单元的存储装置 |
CN102449607A (zh) * | 2009-07-22 | 2012-05-09 | 株式会社日立制作所 | 具有多个闪存封装的存储系统 |
CN102498472A (zh) * | 2009-09-16 | 2012-06-13 | 国际商业机器公司 | 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡 |
CN102662791A (zh) * | 2010-12-14 | 2012-09-12 | 西部数据技术公司 | 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法 |
CN102792319A (zh) * | 2010-03-29 | 2012-11-21 | 松下电器产业株式会社 | 数据记录装置、以及数据记录方法 |
CN101655776B (zh) * | 2008-08-18 | 2012-11-28 | 深圳市朗科科技股份有限公司 | 闪存卡管理系统及方法 |
US8402204B2 (en) | 2009-11-13 | 2013-03-19 | Silicon Motion, Inc. | Methods for measuring usable lifespan and replacing an in-system programming code of a memory device, and data storage system using the same |
CN103678157A (zh) * | 2012-09-20 | 2014-03-26 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN104657280A (zh) * | 2007-12-28 | 2015-05-27 | 株式会社东芝 | 存储器系统 |
CN105353977A (zh) * | 2015-10-22 | 2016-02-24 | 捷鼎国际股份有限公司 | 数据储存系统及方法 |
CN107025066A (zh) * | 2016-09-14 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
CN108205423A (zh) * | 2016-12-20 | 2018-06-26 | 华为技术有限公司 | 一种物理硬盘磨损均衡方法、装置及系统 |
CN111414314A (zh) * | 2019-01-07 | 2020-07-14 | 爱思开海力士有限公司 | 数据存储装置、其操作方法及其控制器 |
Families Citing this family (272)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4818812B2 (ja) | 2006-05-31 | 2011-11-16 | 株式会社日立製作所 | フラッシュメモリストレージシステム |
KR20050022798A (ko) * | 2003-08-30 | 2005-03-08 | 주식회사 이즈텍 | 유전자 어휘 분류체계를 이용하여 바이오 칩을 분석하기위한 시스템 및 그 방법 |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US8077535B2 (en) | 2006-07-31 | 2011-12-13 | Google Inc. | Memory refresh apparatus and method |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US8089795B2 (en) | 2006-02-09 | 2012-01-03 | Google Inc. | Memory module with memory stack and interface with enhanced capabilities |
US20080082763A1 (en) | 2006-10-02 | 2008-04-03 | Metaram, Inc. | Apparatus and method for power management of memory circuits by a system or component thereof |
US8335894B1 (en) | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
US7386656B2 (en) | 2006-07-31 | 2008-06-10 | Metaram, Inc. | Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit |
US7580312B2 (en) | 2006-07-31 | 2009-08-25 | Metaram, Inc. | Power saving system and method for use with a plurality of memory circuits |
US8130560B1 (en) | 2006-11-13 | 2012-03-06 | Google Inc. | Multi-rank partial width memory modules |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US8055833B2 (en) * | 2006-10-05 | 2011-11-08 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US8386722B1 (en) | 2008-06-23 | 2013-02-26 | Google Inc. | Stacked DIMM memory interface |
US8090897B2 (en) | 2006-07-31 | 2012-01-03 | Google Inc. | System and method for simulating an aspect of a memory circuit |
US8796830B1 (en) | 2006-09-01 | 2014-08-05 | Google Inc. | Stackable low-profile lead frame package |
US7590796B2 (en) * | 2006-07-31 | 2009-09-15 | Metaram, Inc. | System and method for power management in memory systems |
US20080028136A1 (en) | 2006-07-31 | 2008-01-31 | Schakel Keith R | Method and apparatus for refresh management of memory modules |
US8359187B2 (en) | 2005-06-24 | 2013-01-22 | Google Inc. | Simulating a different number of memory circuit devices |
US7392338B2 (en) | 2006-07-31 | 2008-06-24 | Metaram, Inc. | Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits |
US8081474B1 (en) | 2007-12-18 | 2011-12-20 | Google Inc. | Embossed heat spreader |
US8244971B2 (en) | 2006-07-31 | 2012-08-14 | Google Inc. | Memory circuit system and method |
US8041881B2 (en) | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US7609567B2 (en) | 2005-06-24 | 2009-10-27 | Metaram, Inc. | System and method for simulating an aspect of a memory circuit |
US8327104B2 (en) | 2006-07-31 | 2012-12-04 | Google Inc. | Adjusting the timing of signals associated with a memory system |
US8111566B1 (en) | 2007-11-16 | 2012-02-07 | Google, Inc. | Optimal channel design for memory devices for providing a high-speed memory interface |
US8438328B2 (en) | 2008-02-21 | 2013-05-07 | Google Inc. | Emulation of abstracted DIMMs using abstracted DRAMs |
US7379316B2 (en) | 2005-09-02 | 2008-05-27 | Metaram, Inc. | Methods and apparatus of stacking DRAMs |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
JP4842719B2 (ja) * | 2006-06-28 | 2011-12-21 | 株式会社日立製作所 | ストレージシステム及びそのデータ保護方法 |
US7724589B2 (en) | 2006-07-31 | 2010-05-25 | Google Inc. | System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits |
JP2008059387A (ja) * | 2006-08-31 | 2008-03-13 | Toshiba Corp | 情報処理装置、外部記憶装置および制御方法 |
JP4372134B2 (ja) * | 2006-09-29 | 2009-11-25 | 株式会社日立製作所 | データ比較機能を有するストレージシステム |
US7836380B2 (en) * | 2006-10-31 | 2010-11-16 | Intel Corporation | Destination indication to aid in posted write buffer loading |
US9153337B2 (en) | 2006-12-11 | 2015-10-06 | Marvell World Trade Ltd. | Fatigue management system and method for hybrid nonvolatile solid state memory system |
KR100881669B1 (ko) * | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
TW200828320A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Method for performing static wear leveling on flash memory |
US8140737B2 (en) * | 2007-01-30 | 2012-03-20 | Skymedi Corporation | Method for enhancing life cycle of memory |
US9195602B2 (en) * | 2007-03-30 | 2015-11-24 | Rambus Inc. | System including hierarchical memory modules having different types of integrated circuit memory devices |
US7913032B1 (en) * | 2007-04-25 | 2011-03-22 | Apple Inc. | Initiating memory wear leveling |
TWI385666B (zh) * | 2007-05-25 | 2013-02-11 | Realtek Semiconductor Corp | 適用於快閃記憶體之資料結構、及其資料寫入方法及資料讀取方法 |
JP2009003880A (ja) * | 2007-06-25 | 2009-01-08 | Toshiba Corp | 不揮発性メモリの制御装置及びその制御方法及び記憶装置 |
US8209479B2 (en) | 2007-07-18 | 2012-06-26 | Google Inc. | Memory circuit system and method |
TWI372397B (en) * | 2007-08-06 | 2012-09-11 | Ind Tech Res Inst | Method and system of defect management for storage medium |
US8080874B1 (en) | 2007-09-14 | 2011-12-20 | Google Inc. | Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween |
US8131912B2 (en) * | 2007-09-27 | 2012-03-06 | Kabushiki Kaisha Toshiba | Memory system |
US8775717B2 (en) | 2007-12-27 | 2014-07-08 | Sandisk Enterprise Ip Llc | Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories |
US7925822B2 (en) * | 2008-01-31 | 2011-04-12 | Sandisk Il Ltd | Erase count recovery |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
US7945752B1 (en) * | 2008-03-27 | 2011-05-17 | Netapp, Inc. | Method and apparatus for achieving consistent read latency from an array of solid-state storage devices |
US8074021B1 (en) | 2008-03-27 | 2011-12-06 | Netapp, Inc. | Network storage system including non-volatile solid-state memory controlled by external data layout engine |
US8151048B1 (en) * | 2008-03-31 | 2012-04-03 | Emc Corporation | Managing storage pool provisioning |
KR101517185B1 (ko) | 2008-04-15 | 2015-05-04 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US9501305B2 (en) * | 2008-04-23 | 2016-11-22 | Inernational Business Machines Corporation | System for virtualisation monitoring |
US20090271564A1 (en) * | 2008-04-25 | 2009-10-29 | Hitachi, Ltd. | Storage system |
WO2009140700A1 (en) | 2008-05-16 | 2009-11-19 | Fusion Multisystems, Inc. | Apparatus, system, and method for detecting and replacing failed data storage |
US8554983B2 (en) * | 2008-05-27 | 2013-10-08 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
KR100974954B1 (ko) * | 2008-06-26 | 2010-08-10 | 에스디씨마이크로 주식회사 | 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법 |
JP2010015195A (ja) * | 2008-06-30 | 2010-01-21 | Toshiba Corp | 記憶制御装置及び記憶制御方法 |
JP5242264B2 (ja) * | 2008-07-07 | 2013-07-24 | 株式会社東芝 | データ制御装置、ストレージシステムおよびプログラム |
US20100017649A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation | Data storage system with wear-leveling algorithm |
KR101517761B1 (ko) * | 2008-07-30 | 2015-05-06 | 시게이트 테크놀로지 엘엘씨 | 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템 |
US8091362B2 (en) | 2008-08-20 | 2012-01-10 | Woodward, Inc. | Fuel injector sans support/stem |
JP5489434B2 (ja) | 2008-08-25 | 2014-05-14 | 株式会社日立製作所 | フラッシュメモリ搭載ストレージ装置 |
JP2010055247A (ja) * | 2008-08-27 | 2010-03-11 | Hitachi Ltd | ストレージシステム及び構成管理方法 |
US8386697B2 (en) * | 2008-09-09 | 2013-02-26 | Phison Electronics Corp. | Memory managing method for non-volatile memory and controller using the same |
CN101354681B (zh) * | 2008-09-23 | 2010-12-01 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
US8001318B1 (en) * | 2008-10-28 | 2011-08-16 | Netapp, Inc. | Wear leveling for low-wear areas of low-latency random read memory |
US8244995B2 (en) | 2008-10-30 | 2012-08-14 | Dell Products L.P. | System and method for hierarchical wear leveling in storage devices |
US9208108B2 (en) | 2008-12-19 | 2015-12-08 | Nvidia Corporation | Method and system for improved flash controller commands selection |
US8694750B2 (en) | 2008-12-19 | 2014-04-08 | Nvidia Corporation | Method and system for data structure management |
US8412880B2 (en) | 2009-01-08 | 2013-04-02 | Micron Technology, Inc. | Memory system controller to manage wear leveling across a plurality of storage nodes |
JP4776703B2 (ja) | 2009-01-23 | 2011-09-21 | 株式会社東芝 | 半導体記憶装置を用いたraidシステム及びその制御方法 |
JP2010198441A (ja) * | 2009-02-26 | 2010-09-09 | Toshiba Corp | ミラーリングシステム |
US20100250826A1 (en) * | 2009-03-24 | 2010-09-30 | Micron Technology, Inc. | Memory systems with a plurality of structures and methods for operating the same |
KR101586047B1 (ko) | 2009-03-25 | 2016-01-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
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 |
US8661187B2 (en) | 2009-04-08 | 2014-02-25 | International Business Machines Corporation | System, method, and computer program product for skewing expected wearout times of memory devices |
US8051241B2 (en) | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US8307258B2 (en) | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
JP5400875B2 (ja) * | 2009-05-21 | 2014-01-29 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム |
US8375162B2 (en) * | 2009-06-03 | 2013-02-12 | Ocz Technology Group Inc. | Method and apparatus for reducing write cycles in NAND-based flash memory devices |
WO2010144624A1 (en) | 2009-06-09 | 2010-12-16 | Google Inc. | Programming of dimm termination resistance values |
US8639877B2 (en) * | 2009-06-30 | 2014-01-28 | International Business Machines Corporation | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks |
EP2270672A1 (en) * | 2009-07-02 | 2011-01-05 | Giga-Byte Technology Co., Ltd. | Flash memory control device |
WO2011010348A1 (ja) * | 2009-07-23 | 2011-01-27 | 株式会社日立製作所 | フラッシュメモリ装置 |
US7941696B2 (en) * | 2009-08-11 | 2011-05-10 | Texas Memory Systems, Inc. | Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes |
US8495423B2 (en) * | 2009-08-11 | 2013-07-23 | International Business Machines Corporation | Flash-based memory system with robust backup and restart features and removable modules |
US8176284B2 (en) * | 2009-08-11 | 2012-05-08 | Texas Memory Systems, Inc. | FLASH-based memory system with variable length page stripes including data protection information |
US8930622B2 (en) | 2009-08-11 | 2015-01-06 | International Business Machines Corporation | Multi-level data protection for flash memory system |
US7818525B1 (en) | 2009-08-12 | 2010-10-19 | Texas Memory Systems, Inc. | Efficient reduction of read disturb errors in NAND FLASH memory |
US8189379B2 (en) | 2009-08-12 | 2012-05-29 | Texas Memory Systems, Inc. | Reduction of read disturb errors in NAND FLASH memory |
US20110047316A1 (en) * | 2009-08-19 | 2011-02-24 | Dell Products L.P. | Solid state memory device power optimization |
WO2011021237A1 (en) * | 2009-08-20 | 2011-02-24 | Hitachi,Ltd. | Storage subsystem and its data processing method |
GB2484846A (en) * | 2009-08-21 | 2012-04-25 | Ibm | Data storage system and method for operating a data storage system |
US8464106B2 (en) * | 2009-08-24 | 2013-06-11 | Ocz Technology Group, Inc. | Computer system with backup function and method therefor |
US8266501B2 (en) * | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
JP5336993B2 (ja) * | 2009-10-14 | 2013-11-06 | 株式会社日立国際電気 | 映像記録装置及び映像記録方法 |
US20110231713A1 (en) * | 2009-11-04 | 2011-09-22 | Hitachi, Ltd. | Flash memory module |
JP4912456B2 (ja) * | 2009-12-17 | 2012-04-11 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
US20110161553A1 (en) * | 2009-12-30 | 2011-06-30 | Nvidia Corporation | Memory device wear-leveling techniques |
US9594675B2 (en) | 2009-12-31 | 2017-03-14 | Nvidia Corporation | Virtualization of chip enables |
JP5331018B2 (ja) * | 2010-01-22 | 2013-10-30 | 株式会社日立製作所 | ソリッド・ステート・ドライブ装置およびミラー構成再構成方法 |
US20110215007A1 (en) * | 2010-02-19 | 2011-09-08 | Kenneth Charles Wurtzel | Container or molded package with buffering capacity |
US8365041B2 (en) | 2010-03-17 | 2013-01-29 | Sandisk Enterprise Ip Llc | MLC self-raid flash data protection scheme |
US8621141B2 (en) | 2010-04-01 | 2013-12-31 | Intel Corporations | Method and system for wear leveling in a solid state drive |
US8392670B2 (en) * | 2010-04-12 | 2013-03-05 | Hitachi, Ltd. | Performance management of access to flash memory in a storage device |
US8700841B2 (en) * | 2010-04-19 | 2014-04-15 | International Business Machines Corporation | Sub-LUN input/output profiling for SSD devices |
JP5100789B2 (ja) * | 2010-05-28 | 2012-12-19 | 株式会社東芝 | 半導体記憶装置および半導体記憶装置の制御方法 |
JP5521794B2 (ja) * | 2010-06-03 | 2014-06-18 | 株式会社バッファロー | 記憶装置及びその制御プログラム |
KR20110138707A (ko) * | 2010-06-21 | 2011-12-28 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 쓰기 방법 |
US9135168B2 (en) | 2010-07-07 | 2015-09-15 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error |
US8868852B2 (en) | 2010-07-07 | 2014-10-21 | Marvell World Trade Ltd. | Interface management control systems and methods for non-volatile semiconductor memory |
US9141538B2 (en) | 2010-07-07 | 2015-09-22 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive |
US9465728B2 (en) | 2010-11-03 | 2016-10-11 | Nvidia Corporation | Memory controller adaptable to multiple memory devices |
JP5641900B2 (ja) * | 2010-11-29 | 2014-12-17 | キヤノン株式会社 | 管理装置及びその制御方法、並びにプログラム |
US8601313B1 (en) * | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
KR101180406B1 (ko) * | 2011-01-28 | 2012-09-10 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 블럭 관리 방법 |
WO2012106362A2 (en) | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8621328B2 (en) * | 2011-03-04 | 2013-12-31 | International Business Machines Corporation | Wear-focusing of non-volatile memories for improved endurance |
JP5664347B2 (ja) * | 2011-03-04 | 2015-02-04 | ソニー株式会社 | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
US8700951B1 (en) | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
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 |
KR20120128978A (ko) * | 2011-05-18 | 2012-11-28 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 관리 방법 |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US8909982B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
US9406346B2 (en) | 2011-06-30 | 2016-08-02 | Sandisk Technologies Llc | Smart bridge for memory core |
US8626991B1 (en) * | 2011-06-30 | 2014-01-07 | Emc Corporation | Multi-LUN SSD optimization system and method |
CN103946819B (zh) | 2011-09-30 | 2017-05-17 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
WO2012163027A1 (zh) * | 2011-10-27 | 2012-12-06 | 华为技术有限公司 | 控制缓存映射的方法及缓存系统 |
US9058289B2 (en) | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US9208070B2 (en) * | 2011-12-20 | 2015-12-08 | Sandisk Technologies Inc. | Wear leveling of multiple memory devices |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
JP5844473B2 (ja) * | 2012-02-08 | 2016-01-20 | 株式会社日立製作所 | 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法 |
CN102662695B (zh) * | 2012-03-26 | 2016-03-30 | 华为终端有限公司 | 一种系统启动的方法及装置 |
TWI495998B (zh) * | 2012-08-01 | 2015-08-11 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
US20140052897A1 (en) * | 2012-08-17 | 2014-02-20 | Seagate Technology Llc | Dynamic formation of garbage collection units in a memory |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
JP5820078B2 (ja) * | 2012-09-07 | 2015-11-24 | 株式会社日立製作所 | 記憶装置システム |
JP5949408B2 (ja) * | 2012-10-02 | 2016-07-06 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
JP2014098978A (ja) | 2012-11-13 | 2014-05-29 | Sony Corp | メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法 |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9059736B2 (en) | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
CN103049216B (zh) * | 2012-12-07 | 2015-11-25 | 记忆科技(深圳)有限公司 | 固态硬盘及其数据处理方法、系统 |
US9214963B1 (en) | 2012-12-21 | 2015-12-15 | Western Digital Technologies, Inc. | Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
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 |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9383924B1 (en) * | 2013-02-27 | 2016-07-05 | Netapp, Inc. | Storage space reclamation on volumes with thin provisioning capability |
US8943266B2 (en) | 2013-03-13 | 2015-01-27 | Hitachi, Ltd. | Storage system and method of control for storage system |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
TWI570738B (zh) * | 2013-03-29 | 2017-02-11 | 萬國商業機器公司 | 具有使用歷程記錄的主記憶體模組以及此主記憶體模組於電腦系統之應用 |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
EP2838025B1 (en) * | 2013-06-29 | 2017-04-19 | Huawei Technologies Co., Ltd. | Storage array management method and device, and controller |
JP6381529B2 (ja) | 2013-07-19 | 2018-08-29 | 株式会社日立製作所 | ストレージ装置および記憶制御方法 |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented 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 |
US9361221B1 (en) | 2013-08-26 | 2016-06-07 | Sandisk Technologies Inc. | Write amplification reduction through reliable writes during garbage collection |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9158349B2 (en) | 2013-10-04 | 2015-10-13 | Sandisk Enterprise Ip Llc | System and method for heat dissipation |
US9323637B2 (en) | 2013-10-07 | 2016-04-26 | Sandisk Enterprise Ip Llc | Power sequencing and data hardening architecture |
US10019352B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for adaptive reserve storage |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
JP5673980B2 (ja) * | 2013-11-13 | 2015-02-18 | 国立大学法人 千葉大学 | 記録装置 |
US9229640B2 (en) | 2013-11-15 | 2016-01-05 | Microsoft Technology Licensing, Llc | Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9612773B2 (en) * | 2013-11-21 | 2017-04-04 | Samsung Electronics Co., Ltd. | User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
US9280429B2 (en) | 2013-11-27 | 2016-03-08 | Sandisk Enterprise Ip Llc | Power fail latching based on monitoring multiple power supply voltages in 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 |
US9250676B2 (en) | 2013-11-29 | 2016-02-02 | Sandisk Enterprise Ip Llc | Power failure architecture and verification |
US9092370B2 (en) | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
JP5768118B2 (ja) * | 2013-12-11 | 2015-08-26 | 株式会社日立製作所 | 複数のフラッシュパッケージを有するストレージシステム |
US20170003890A1 (en) * | 2013-12-12 | 2017-01-05 | Fixstars Corporation | Device, program, recording medium, and method for extending service life of memory |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9549457B2 (en) | 2014-02-12 | 2017-01-17 | Sandisk Technologies Llc | System and method for redirecting airflow across an electronic assembly |
US9497889B2 (en) | 2014-02-27 | 2016-11-15 | Sandisk Technologies Llc | Heat dissipation for substrate assemblies |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
US9519319B2 (en) | 2014-03-14 | 2016-12-13 | Sandisk Technologies Llc | Self-supporting thermal tube structure for electronic assemblies |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US9471428B2 (en) | 2014-05-06 | 2016-10-18 | International Business Machines Corporation | Using spare capacity in solid state drives |
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 |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
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 |
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 |
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 |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
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 |
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 |
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 |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US9471451B2 (en) | 2014-06-18 | 2016-10-18 | International Business Machines Corporation | Implementing enhanced wear leveling in 3D flash memories |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
JP6331773B2 (ja) | 2014-06-30 | 2018-05-30 | 富士通株式会社 | ストレージ制御装置、およびストレージ制御プログラム |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US10127157B2 (en) * | 2014-10-06 | 2018-11-13 | SK Hynix Inc. | Sizing a cache while taking into account a total bytes written requirement |
TWI539282B (zh) * | 2014-10-13 | 2016-06-21 | 慧榮科技股份有限公司 | 非揮發性儲存裝置與控制器 |
KR102211868B1 (ko) * | 2014-12-15 | 2021-02-04 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US9946471B1 (en) * | 2015-03-31 | 2018-04-17 | EMC IP Holding Company LLC | RAID groups based on endurance sets |
US11042300B2 (en) | 2015-03-31 | 2021-06-22 | Toshiba Memory Corporation | Command load balancing for NVME dual port operations |
JP5945040B2 (ja) * | 2015-06-19 | 2016-07-05 | 株式会社日立製作所 | 複数のフラッシュパッケージを有するストレージシステム |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
CN105260320B (zh) * | 2015-10-12 | 2020-06-16 | 珠海格力电器股份有限公司 | 用于flash存储器的数据处理方法和装置 |
TWI547801B (zh) * | 2015-10-22 | 2016-09-01 | Accelstor Inc | 資料儲存系統及方法 |
US10146465B1 (en) * | 2015-12-18 | 2018-12-04 | EMC IP Holding Company LLC | Automated provisioning and de-provisioning software defined storage systems |
US10222984B1 (en) * | 2015-12-31 | 2019-03-05 | EMC IP Holding Company LLC | Managing multi-granularity flash translation layers in solid state drives |
TWI591635B (zh) * | 2016-02-05 | 2017-07-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US9959058B1 (en) | 2016-03-31 | 2018-05-01 | EMC IP Holding Company LLC | Utilizing flash optimized layouts which minimize wear of internal flash memory of solid state drives |
JP6138318B2 (ja) * | 2016-05-26 | 2017-05-31 | 株式会社日立製作所 | 複数のフラッシュパッケージを有するストレージシステム |
WO2018124912A1 (en) | 2016-12-28 | 2018-07-05 | EMC IP Holding Company LLC | Data storage system tiering accounting for limited write endurance |
US10860733B1 (en) * | 2017-04-20 | 2020-12-08 | EMC IP Holding Company, LLC | Shredding system and method |
CN108089994B (zh) * | 2018-01-04 | 2021-06-01 | 威盛电子股份有限公司 | 存储装置以及数据保存方法 |
CN108563397B (zh) * | 2018-01-04 | 2021-08-24 | 威盛电子股份有限公司 | 存储装置以及数据保存方法 |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US11416395B2 (en) * | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US12135876B2 (en) | 2018-02-05 | 2024-11-05 | Micron Technology, Inc. | Memory systems having controllers embedded in packages of integrated circuit memory |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US10884889B2 (en) | 2018-06-22 | 2021-01-05 | Seagate Technology Llc | Allocating part of a raid stripe to repair a second raid stripe |
KR102545189B1 (ko) | 2018-09-07 | 2023-06-19 | 삼성전자주식회사 | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 |
KR102663661B1 (ko) * | 2018-12-06 | 2024-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치 |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
CN112764665B (zh) * | 2019-10-21 | 2024-05-10 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、设备和计算机程序产品 |
US11442631B2 (en) | 2019-12-26 | 2022-09-13 | Micron Technology, Inc. | Memory operations with consideration for wear leveling |
US11586385B1 (en) | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3581132A (en) * | 1969-04-03 | 1971-05-25 | Nikolaus Laing | Rotating electrical machine |
US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
DE19540915A1 (de) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundante Anordnung von Festkörper-Speicherbausteinen |
JPH09218754A (ja) * | 1996-02-13 | 1997-08-19 | Ekushingu:Kk | データ記憶システム |
CN1249585C (zh) | 1997-12-16 | 2006-04-05 | Tdk株式会社 | 闪速存储器系统 |
JP2000207137A (ja) * | 1999-01-12 | 2000-07-28 | Kowa Co | 情報記憶装置 |
US7966462B2 (en) * | 1999-08-04 | 2011-06-21 | Super Talent Electronics, Inc. | Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips |
US7934074B2 (en) * | 1999-08-04 | 2011-04-26 | Super Talent Electronics | Flash module with plane-interleaved sequential writes to restricted-write flash chips |
US7457897B1 (en) * | 2004-03-17 | 2008-11-25 | Suoer Talent Electronics, Inc. | PCI express-compatible controller and interface for flash memory |
US8266367B2 (en) * | 2003-12-02 | 2012-09-11 | Super Talent Electronics, Inc. | Multi-level striping and truncation channel-equalization for flash-memory system |
US8037234B2 (en) * | 2003-12-02 | 2011-10-11 | Super Talent Electronics, Inc. | Command queuing smart storage transfer manager for striping data to raw-NAND flash modules |
US8341332B2 (en) * | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
JP2004021811A (ja) * | 2002-06-19 | 2004-01-22 | Hitachi Ltd | 不揮発メモリを使用したディスク制御装置 |
US6941412B2 (en) | 2002-08-29 | 2005-09-06 | Sandisk Corporation | Symbol frequency leveling in a storage system |
CN100483552C (zh) * | 2002-10-28 | 2009-04-29 | 桑迪士克股份有限公司 | 在非易失性存储系统中执行自动磨损平衡的方法 |
US8176238B2 (en) * | 2003-12-02 | 2012-05-08 | Super Talent Electronics, Inc. | Command queuing smart storage transfer manager for striping data to raw-NAND flash modules |
US20090204872A1 (en) * | 2003-12-02 | 2009-08-13 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
US7395404B2 (en) * | 2004-12-16 | 2008-07-01 | Sandisk Corporation | Cluster auto-alignment for storing addressable data packets in a non-volatile memory array |
US20060161724A1 (en) * | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
-
2006
- 2006-03-29 JP JP2006092217A patent/JP4863749B2/ja active Active
- 2006-05-26 US US11/441,192 patent/US7409492B2/en not_active Expired - Fee Related
- 2006-11-10 EP EP06255786A patent/EP1840722B1/en not_active Not-in-force
- 2006-11-10 EP EP11169084.8A patent/EP2365428B1/en not_active Not-in-force
- 2006-12-19 CN CN2009101731304A patent/CN101645041B/zh active Active
- 2006-12-19 CN CNB2006101687026A patent/CN100555244C/zh active Active
-
2008
- 2008-07-02 US US12/216,362 patent/US7734865B2/en not_active Expired - Fee Related
-
2010
- 2010-04-22 US US12/765,594 patent/US7970986B2/en not_active Expired - Fee Related
-
2011
- 2011-06-01 US US13/151,015 patent/US8429340B2/en active Active
-
2013
- 2013-03-26 US US13/850,972 patent/US8788745B2/en active Active
-
2014
- 2014-07-08 US US14/325,469 patent/US9286210B2/en active Active
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12229404B2 (en) | 2007-12-28 | 2025-02-18 | Kioxia Corporation | Memory system and control method thereof |
CN104657280B (zh) * | 2007-12-28 | 2018-01-02 | 东芝存储器株式会社 | 存储器系统 |
US11893237B2 (en) | 2007-12-28 | 2024-02-06 | Kioxia Corporation | Memory system and control method thereof |
US9933941B2 (en) | 2007-12-28 | 2018-04-03 | Toshiba Memory Corporation | Memory system and control method thereof |
US11287975B2 (en) | 2007-12-28 | 2022-03-29 | Kioxia Corporation | Memory system and control method thereof |
US10558360B2 (en) | 2007-12-28 | 2020-02-11 | Toshiba Memory Corporation | Memory system and control method thereof |
CN104657280A (zh) * | 2007-12-28 | 2015-05-27 | 株式会社东芝 | 存储器系统 |
CN101655776B (zh) * | 2008-08-18 | 2012-11-28 | 深圳市朗科科技股份有限公司 | 闪存卡管理系统及方法 |
CN101727403A (zh) * | 2008-10-15 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 数据存储系统、设备及方法 |
CN102272739A (zh) * | 2009-03-24 | 2011-12-07 | 株式会社日立制作所 | 存储装置及其数据控制方法 |
CN102449607B (zh) * | 2009-07-22 | 2015-05-27 | 株式会社日立制作所 | 具有多个闪存封装的存储系统 |
CN102449607A (zh) * | 2009-07-22 | 2012-05-09 | 株式会社日立制作所 | 具有多个闪存封装的存储系统 |
CN102498472A (zh) * | 2009-09-16 | 2012-06-13 | 国际商业机器公司 | 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡 |
CN102498472B (zh) * | 2009-09-16 | 2015-04-22 | 国际商业机器公司 | 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡 |
US8402204B2 (en) | 2009-11-13 | 2013-03-19 | Silicon Motion, Inc. | Methods for measuring usable lifespan and replacing an in-system programming code of a memory device, and data storage system using the same |
CN102792319A (zh) * | 2010-03-29 | 2012-11-21 | 松下电器产业株式会社 | 数据记录装置、以及数据记录方法 |
CN102280126B (zh) * | 2010-06-13 | 2015-11-25 | 宇瞻科技股份有限公司 | 可扩充存储器单元的存储装置 |
CN102280126A (zh) * | 2010-06-13 | 2011-12-14 | 宇瞻科技股份有限公司 | 可扩充存储器单元的存储装置 |
CN102662791B (zh) * | 2010-12-14 | 2015-04-22 | 西部数据技术公司 | 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法 |
CN102662791A (zh) * | 2010-12-14 | 2012-09-12 | 西部数据技术公司 | 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法 |
CN103678157B (zh) * | 2012-09-20 | 2017-01-18 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN103678157A (zh) * | 2012-09-20 | 2014-03-26 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN105353977A (zh) * | 2015-10-22 | 2016-02-24 | 捷鼎国际股份有限公司 | 数据储存系统及方法 |
CN105353977B (zh) * | 2015-10-22 | 2018-11-23 | 捷鼎创新股份有限公司 | 数据储存系统及方法 |
US11287984B2 (en) | 2016-09-14 | 2022-03-29 | Beijing Oceanbase Technology Co., Ltd. | Method and device for writing stored data into storage medium based on flash memory |
CN107025066A (zh) * | 2016-09-14 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 在基于闪存的存储介质中写入存储数据的方法和装置 |
US11099744B2 (en) | 2016-09-14 | 2021-08-24 | Ant Financial (Hang Zhou) Network Technology Co., Ltd. | Method and device for writing stored data into storage medium based on flash memory |
CN108205423A (zh) * | 2016-12-20 | 2018-06-26 | 华为技术有限公司 | 一种物理硬盘磨损均衡方法、装置及系统 |
CN108205423B (zh) * | 2016-12-20 | 2020-06-02 | 华为技术有限公司 | 一种物理硬盘磨损均衡方法、装置及系统 |
CN111414314B (zh) * | 2019-01-07 | 2023-07-14 | 爱思开海力士有限公司 | 数据存储装置、其操作方法及其控制器 |
CN111414314A (zh) * | 2019-01-07 | 2020-07-14 | 爱思开海力士有限公司 | 数据存储装置、其操作方法及其控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20130232297A1 (en) | 2013-09-05 |
EP2365428B1 (en) | 2013-05-08 |
US7734865B2 (en) | 2010-06-08 |
US9286210B2 (en) | 2016-03-15 |
US7970986B2 (en) | 2011-06-28 |
EP1840722A3 (en) | 2009-03-04 |
CN101645041B (zh) | 2013-03-13 |
EP2365428A1 (en) | 2011-09-14 |
US20100205359A1 (en) | 2010-08-12 |
US8429340B2 (en) | 2013-04-23 |
US20080276038A1 (en) | 2008-11-06 |
JP2007265265A (ja) | 2007-10-11 |
US7409492B2 (en) | 2008-08-05 |
CN100555244C (zh) | 2009-10-28 |
EP1840722B1 (en) | 2011-07-27 |
US20140325127A1 (en) | 2014-10-30 |
US20110231600A1 (en) | 2011-09-22 |
US20070233931A1 (en) | 2007-10-04 |
CN101645041A (zh) | 2010-02-10 |
EP1840722A2 (en) | 2007-10-03 |
JP4863749B2 (ja) | 2012-01-25 |
US8788745B2 (en) | 2014-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101046771A (zh) | 使用闪存的存储系统及其平均读写方法和平均读写程序 | |
CN1315057C (zh) | 重映射闪速存储器的方法 | |
CN1256732C (zh) | 快闪存储器及其控制方法 | |
CN1278243C (zh) | 用于合并存贮的数据项的按块擦除存储系统和方法 | |
CN1249586C (zh) | 闪速存储器系统 | |
CN1249585C (zh) | 闪速存储器系统 | |
CN1308851C (zh) | 数据处理系统中执行远程复制的方法和存储数据的方法 | |
CN1230829C (zh) | 快速可电擦写可编程只读存储器系统中的数据处理方法 | |
CN1191518C (zh) | 用于分级存储管理系统的转换廉价磁盘冗余阵列 | |
CN1295622C (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
CN1701309A (zh) | 非易失性存储系统中的损耗平衡 | |
CN1701308A (zh) | 维护非易失性存储系统中的擦除计数 | |
CN1955940A (zh) | Raid系统、raid控制器及其重建/拷回处理方法 | |
CN1516835A (zh) | 数据存储装置 | |
CN1722107A (zh) | 计算机系统以及存储装置系统的迁移方法 | |
CN1591345A (zh) | 存储系统 | |
CN1922571A (zh) | 数据运行编程 | |
CN1648876A (zh) | 闪速存储器的数据管理设备和方法 | |
TWI463313B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TW201346561A (zh) | 儲存單元管理方法、記憶體控制器與記憶體儲存裝置 | |
CN1549133A (zh) | 快闪存储器的平行双轨使用方法 | |
CN1297905C (zh) | 高速缓存控制器、高速缓存控制方法以及计算机系统 | |
CN1947100A (zh) | 非易失性存储系统、非易失性存储装置、存储控制器、存取装置以及非易失性存储装置的控制方法 | |
CN1849577A (zh) | 虚拟磁盘驱动系统和方法 | |
CN1910557A (zh) | 信息记录介质 |
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 |