CN102411518B - 控制器、存储装置以及计算机程序产品 - Google Patents

控制器、存储装置以及计算机程序产品 Download PDF

Info

Publication number
CN102411518B
CN102411518B CN201110254403.5A CN201110254403A CN102411518B CN 102411518 B CN102411518 B CN 102411518B CN 201110254403 A CN201110254403 A CN 201110254403A CN 102411518 B CN102411518 B CN 102411518B
Authority
CN
China
Prior art keywords
data
state
parity
memory block
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110254403.5A
Other languages
English (en)
Other versions
CN102411518A (zh
Inventor
福富和弘
矢尾浩
菅野伸一
浅野滋博
桧田敏克
木村康浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japanese Businessman Panjaya Co ltd
Kioxia Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of CN102411518A publication Critical patent/CN102411518A/zh
Application granted granted Critical
Publication of CN102411518B publication Critical patent/CN102411518B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1073Problems due to wear-out failures in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1092Single disk raid, i.e. RAID with parity on a single disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及控制器、存储装置以及计算机程序产品。根据一个实施例,控制器控制向包括第一数据存储单元和第二数据存储单元的存储装置的写入以及从所述存储装置的读出。所述第二数据存储单元存储用户数据和所述用户数据的奇偶校验数据。所述第一数据存储单元存储所述奇偶校验数据。所述控制器包括奇偶校验更新单元和奇偶校验写入单元。当奇偶校验数据被更新时,所述奇偶校验更新单元将更新后的奇偶校验数据写入到所述第一数据存储单元中。当满足特定要求时,所述奇偶校验写入单元读出在所述第一数据存储单元中写入的奇偶校验数据并将由此读出的奇偶校验数据写入到所述第二数据存储单元中。

Description

控制器、存储装置以及计算机程序产品
相关专利申请的交叉引用
本申请基于2010年9月17日递交的日本专利申请2010-209758并要求其优先权的利益,其全部内容以引用方式并入本文中。
技术领域
概括地说,这里描述的实施例涉及控制器、存储装置以及计算机程序产品。
背景技术
要求数据存储装置具有高可靠性。通过应用诸如廉价磁盘冗余阵列(RAID)5的配置,数据存储装置可执行数据的恢复。因此,可以改善组合了多个数据存储装置的存储系统整体的可靠性。
然而,根据传统技术,尽管可改善组合了多个数据存储装置的存储系统整体的可靠性,但是不能改善作为单独装置的数据存储装置的可靠性。
发明内容
各实施例的目的在于提供一种控制器、存储装置以及计算机程序产品,由此可改善作为单独装置的数据存储装置的可靠性。
概括而言,根据一个实施例,一种控制器控制向存储装置的写入和从所述存储装置的读出,所述存储装置包括第一数据存储单元和第二数据存储单元。第二数据存储单元存储用户数据和所述用户数据的奇偶校验数据。第一数据存储单元存储奇偶校验数据。所述控制器包括:奇偶校验更新单元和奇偶校验写入单元。当更新奇偶校验数据时,奇偶校验更新单元将更新的奇偶校验数据写入所述第一数据存储单元中。当满足特定的要求时,奇偶校验写入单元读出在所述第一数据存储单元中写入的奇偶校验数据,并将由此读出的奇偶校验数据写入所述第二数据存储单元。
根据上述控制器,可改善作为单独装置的数据存储装置的可靠性。
附图说明
图1是根据第一实施例的数据存储装置的功能框图;
图2是第一数据存储单元的配置实例的示意图;
图3是第二数据存储单元的配置实例的示意图;
图4是第一状态存储单元的配置实例的示意图;
图5是第二状态存储单元的配置实例的示意图;
图6是根据第一实施例的将存储区改变为第一状态的处理的流程图;
图7是根据第一实施例的将存储区改变为第二状态的处理的流程图;
图8是根据第一实施例的奇偶校验写入处理的流程图;
图9是根据第二实施例的数据存储装置的功能框图;
图10是第三状态存储单元的配置实例的示意图;
图11是根据第二实施例的将存储区改变为第二状态的处理的流程图;
图12是根据第二实施例的奇偶校验写入处理的流程图;
图13是根据第三实施例的数据存储装置的功能框图;
图14是第四状态存储单元的配置实例的示意图;
图15是根据第三实施例的将存储区改变为第一状态的处理的流程图;
图16是根据第三实施例的奇偶校验写入处理的流程图;
图17是根据第四实施例的数据存储装置的功能框图;
图18是根据第四实施例的奇偶校验写入处理的流程图;
图19是根据第五实施例的数据存储装置的功能框图;
图20是根据第五实施例的将存储区改变为第一状态的处理的流程图;
图21是根据第五实施例的恢复奇偶校验数据的处理实例的流程图;
图22是根据第六实施例的数据存储装置的功能框图;
图23是示出存储区的状态与数据的保护状态之间的关系的示意图;以及
图24是根据第六实施例的重复差异校正处理的实例的流程图。
具体实施方式
以下将参照附图详细说明数据存储装置的示例性实施例。
第一实施例
为了提高根据第一实施例的数据存储装置的单独装置(以下称为“数据存储装置”)的可靠性,将数据存储装置配置为在其中包括诸如廉价磁盘冗余阵列(RAID)5的结构(在D.Patterson,G.Gibson和R.Katz的“A Case for Redundant Arrays of Inexpensive Disks(RAID)”,Proceedings of the 1988ACM SIGMOD,第109-116页,1988年6月中进行了描述),以实现数据存储装置中的数据恢复。
数据存储装置还需要降低成本。通常使用价格容量比相对廉价的存储介质。这种价格容量比相对廉价的存储介质通常具有相对低的数据写入速度。
当数据存储装置采用诸如RAID 5的配置时,与在存储介质上由主机设备请求写入的用户数据的写入量相比,数据恢复代码(以下称为“奇偶校验(parity)”)数据的写入量变大。因为在数据存储装置中的存储介质本身上的数据写入速度带存在上限,所以当数据存储装置采用诸如RAID 5的配置时,结果出现用户数据的写入速度变慢的缺点。
一般认为在诸如NAND型闪速存储器的一些存储介质中,在存储介质中包括的存储元件的产品寿命依赖于重写数据的次数而改变。在使用这样的存储介质的数据存储装置中,存在这样的缺点:当奇偶校验数据的写入量变大时,数据存储装置的设计寿命变短。
由于上述情形,当数据存储装置采用诸如RAID 5的配置时,与在存储介质上的用户数据的写入量相比,需要减少在存储介质上的奇偶校验数据的写入量。
因此,除了存储用户数据和奇偶校验数据的存储介质(第二数据存储单元)之外,本实施例还包括仅存储奇偶校验数据的存储介质(第一数据存储单元)。当更新奇偶校验数据时,第一数据存储单元存储更新的奇偶校验数据,然后在特定的时刻将第一数据存储单元中存储的奇偶校验数据写入第二数据存储单元。因此,与在存储介质上的用户数据的写入量相比,可减少在存储介质上的奇偶校验数据的写入量。
图1是示出根据第一实施例的数据存储装置100的配置实例的功能框图。如图1所示,数据存储装置100包括:第一数据存储单元151、第一存取控制单元101、第二数据存储单元152、第二存取控制单元102、第一状态存储单元153、第三存取控制单元103、第二状态存储单元154、第四存取控制单元104、状态更新单元120、控制器110、以及奇偶校验计算单元130。控制器110包括奇偶校验更新单元111和奇偶校验写入单元112。
第一数据存储单元151包括至少一个存储区,如图2所示。每个存储区在其中存储奇偶校验数据。第一数据存储单元151可包括多个存储区,并且每个存储区可在其中存储奇偶校验数据。换句话说,数据存储装置100可具有多个奇偶校验组。奇偶校验组意味着在其中存储由特定的奇偶校验数据保护的用户数据的存储区的集合(aggregation)。当数据存储装置100具有多个奇偶校验组时,数据存储装置100具有与奇偶校验组的数目相应的多个各种信息段(稍后说明)。当数据存储装置100具有多个奇偶校验组时,可据此提供以下描述的配置和处理。
第一存取控制单元101控制对第一数据存储单元151的读出或写入。
第二数据存储单元152包括多个存储区,如图3所示。每个存储区在其中存储用户数据或奇偶校验数据。在存储区当中,存储用户数据的存储区具有两种状态,即,第一状态和第二状态。第一状态是在存储区中存储的用户数据受到由第一数据存储单元151存储的奇偶校验数据保护的状态。第二状态是在存储区中存储的用户数据不受由第一数据存储单元151存储的奇偶校验数据保护的状态。
第二存取控制单元102控制对第二数据存储单元152的读出或写入。
第二数据存储单元152可被配置为在特性上比第一数据存储单元151相对低劣。例如,第二数据存储单元152的数据写入速度可比第一数据存储单元151相对低劣。在第二数据存储单元152包括其寿命取决于数据写入次数的存储元件的另一情况下,第二数据存储单元152可在数据写入耐用性的次数上比第一数据存储单元151相对低劣。在第二数据存储单元152包括其数据写入数据比数据读出速度相对低的存储元件的又一情况下,第二数据存储单元152可在数据写入速度比数据读出速度低的程度上比第一数据存储单元151相对低劣。特性的实例不限于这些实例。
第一状态存储单元153在其中存储第一状态集合信息。第一状态集合信息是在第二数据存储单元152中包括的存储区当中的识别处于第一状态的存储区的集合(第一状态集合)的信息(识别信息)。第一状态集合信息可以例如通过存储区的标识符的列表结构而形成,如图4所示。
第三存取控制单元103控制对第一状态存储单元153的存取。对第一状态存储单元153的存取包括对由第一状态存储单元153存储的第一状态集合信息的读出、由请求源指定的存储区信息向由第一状态存储单元153存储的第一状态集合信息的添加、以及对由请求源指定的存储区信息从由第一状态存储单元153存储的第一状态集合信息的删除。
第二状态存储单元154在其中存储第二状态集合信息。第二状态集合信息是在第二数据存储单元152中包括的存储区当中的识别处于第二状态的存储区的集合(第二状态集合)的信息。第二状态集合信息可以例如通过存储区的标识符的列表结构来形成,如图5所示。
第四存取控制单元104控制对第二状态存储单元154的存取。对第二状态存储单元154的存取包括对由第二状态存储单元154存储的第二状态集合信息的读出、由请求源指定的存储区信息向由第二状态存储单元154存储的第二状态集合信息的添加、以及对由请求源指定的存储区信息从由第二状态存储单元154存储的第二状态集合信息的删除。
奇偶校验计算单元130对从指令源接收的多个输入数据执行奇偶校验计算,并将计算结果返回到指令源。奇偶校验计算是当生成奇偶校验数据、更新奇偶校验数据、恢复数据等等时要执行的计算,并包括例如异或运算的运算。尽管下面说明了使用异或运算作为奇偶校验计算的实例,但是适用的奇偶校验计算不限于此。此外,奇偶校验计算单元130可被配置为被提供在数据存储装置100的外部。
状态更新单元120指示第四存取控制单元104读出由第二状态存储单元154存储的第二状态集合信息,并且在需要时,获取第二状态集合信息。状态更新单元120从获取的第二状态集合信息所指示的存储区的集合(第二状态集合)选择要改变为第一状态的存储区,并且向奇偶校验更新单元111通知关于所选择的存储区的识别信息。
此外,状态更新单元120指示第三存取控制单元103读出由第一状态存储单元153存储的第一状态集合信息,并且在需要时,获取第一状态集合信息。状态更新单元120从获取的第一状态集合信息所指示的存储区的集合(第一状态集合)选择要改变为第二状态的存储区,并且向奇偶校验更新单元111通知关于所选择的存储区的识别信息。
当从状态更新单元120通知了关于要改变为第一状态的存储区的识别信息时,奇偶校验更新单元111指示第二存取控制单元102读出由所通知的存储区存储的数据,并获取由所通知的存储区存储的数据。奇偶校验更新单元111指示第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,并获取在第一数据存储单元151中记录的奇偶校验数据。奇偶校验更新单元111指示奇偶校验计算单元130对所获取的奇偶校验数据以及所获取的由存储区存储的数据执行奇偶校验计算。奇偶校验更新单元111指示第一存取控制单元101将所获取的更新后的奇偶校验数据写入第一数据存储单元151中。奇偶校验更新单元111指示第四存取控制单元104从由第二数据存储单元154存储的第二状态集合信息删除关于所通知的存储区的识别信息。奇偶校验更新单元111指示第三存取控制单元103将关于所通知的存储区的识别信息添加到由第一状态存储单元153存储的第一状态集合信息。
当从状态更新单元120通知了关于要改变为第二状态的存储区的识别信息时,奇偶校验更新单元111指示第二存取控制单元102读出由所通知的存储区存储的数据,并获取由所通知的存储区存储的数据。奇偶校验更新单元111指示第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,并获取在第一数据存储单元151中记录的奇偶校验数据。奇偶校验更新单元111指示奇偶校验计算单元130对所获取的奇偶校验数据和所获取的由存储区存储的数据执行奇偶校验计算,并获取更新后的奇偶校验数据。奇偶校验更新单元111指示第一存取控制单元101将所获取的更新后的奇偶校验数据写入第一数据存储单元151中。奇偶校验更新单元111指示第三存取控制单元103从由第一状态存储单元153存储的第一状态集合信息删除关于所通知的存储区的识别信息。奇偶校验更新单元111指示第四存取控制单元104将关于所通知的存储区的识别信息添加到由第二状态存储单元154存储的第二状态集合信息。
如上所述,状态更新单元120向奇偶校验更新单元111分别通知将处于第二状态的存储区改变为第一状态的通告(notice),以及将处于第一状态的存储区改变为第二状态的通告。此外,奇偶校验更新单元111分别针对将处于第二状态的存储区改变为第一状态的通告和将处于第一状态的存储区改变为第二状态的通告而更新奇偶校验数据,这些通告来自于状态更新单元120。
因此,可以动态地改变这样的存储区的数目,这些存储区存储受到奇偶校验数据保护的用户数据。换句话说,可以动态地改变在奇偶校验组中包括的存储区的数目。
奇偶校验写入单元112指示第一存取控制单元101在预先地或动态地确定的特定时机(timing)读出在第一数据存储单元151中记录的奇偶校验数据,并获取在第一数据存储单元151中记录的奇偶校验数据。然后奇偶校验写入单元112指示第二存取控制单元102将所获取的奇偶校验数据写入第二数据存储单元152中。
预先地或动态地确定的特定时机意味着,例如,当满足预定要求时的时机。作为要求,例如,每当经过一定时间段时,或当奇偶校验数据的更新的次数超过特定数目时的时机,等等,可适用任何要求。
下文中,如果需要,将“指示第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,获取在第一数据存储单元151中记录的奇偶校验数据,并指示第二存取控制单元102将所获取的奇偶校验数据写入第二数据存储单元152中”称为奇偶校验写入指令。
如上所述,奇偶校验更新单元111更新第一数据存储单元151上的奇偶校验数据。此外,独立于第一数据存储单元151上的奇偶校验数据更新处理,奇偶校验写入单元112在预先地或动态地确定的特定时机将第一数据存储单元151上的奇偶校验数据写入第二数据存储单元152中。因此,更新的奇偶校验数据并不是在每次执行奇偶校验更新处理时被写入第二数据存储单元152中。
当第一数据存储单元151和第二数据存储单元152具有存储器的上述特性时,可通过减少向第二数据存储单元152中的写入来抑制作为数据存储装置100的整体在性能上的劣化程度以及在寿命上的减少程度。如上所述,因为根据该实施例,更新的奇偶校验数据并不是在每次执行奇偶校验更新处理时被写入第二数据存储单元152中,所以可减少向第二数据存储单元152中的写入。因此,根据该实施例,可以抑制作为数据存储装置100的整体在性能上的劣化程度以及在寿命上的减少程度。
根据该实施例,仅允许对处于第二状态的存储区进行用户数据的重写。因此,例如,当需要重写在处于第一状态的存储区中存储的用户数据并在重写用户数据之后还保持第一状态时,将随后进行以下过程,例如,状态更新单元120作出将该存储区一次性改变为第二状态的指令,未示出的用户数据重写单元指示第二存取控制单元102重写该存储区中的用户数据,并且状态更新单元120作出将该存储区改变为第一状态的指令。
在不脱离本实施例的目的的范围内,可组合和优化上述的一系列处理,例如,可减少从第二数据存储单元152读出数据的次数。这同样适用于下述实施例。例如,考虑如下情况:将第二数据存储单元152中的数据A改变为数据A’,并且伴随着该改变,奇偶校验数据被更新。根据没有优化的方法,将改变后的数据A’存储到第二数据存储单元152,随后需要从第二数据存储单元152读出所存储的数据A’以更新奇偶校验数据。在该情况下,可通过将改变后的数据A’存储到临时存储单元,例如随机存取存储器(RAM),然后当更新奇偶校验数据时使用在临时存储单元中存储的数据A’,来减少从第二数据存储单元152读出数据的次数。
下面参照图6说明由此配置的根据第一实施例的数据存储装置100所执行的处理。图6是示出根据第一实施例的将存储区改变为第一状态的处理流程的流程图。
开始,如果需要,状态更新单元120从第二状态存储单元154读出第二状态集合(步骤S101)。具体地,状态更新单元120指示第四存取控制单元104读出由第二状态存储单元154存储的第二状态集合信息。第四存取控制单元104读出由第二状态存储单元154存储的第二状态集合信息,并输出至状态更新单元120。状态更新单元120获取第二状态集合信息。状态更新单元120从由所获取的第二状态集合信息指示的存储区的集合选择要改变为第一状态的存储区,并向奇偶校验更新单元111通知关于所选择的存储区的识别信息(步骤S102)。
奇偶校验更新单元111读出在要改变为第一状态的存储区中记录的数据(步骤S103)。具体地,当从状态更新单元120通知关于要改变为第一状态的存储区的识别信息时,奇偶校验更新单元111指示第二存取控制单元102读出由所通知的存储区存储的数据。第二存取控制单元102读出由所通知的存储区存储的数据,并输出至奇偶校验更新单元111。奇偶校验更新单元111获取由所通知的存储区存储的数据。
奇偶校验更新单元111从第一数据存储单元151读出奇偶校验数据(步骤S104)。具体地,奇偶校验更新单元111指示第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据。第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,并输出至奇偶校验更新单元111。奇偶校验更新单元111获取在第一数据存储单元151中记录的奇偶校验数据。
奇偶校验更新单元111更新所获取的奇偶校验数据(步骤S105)。具体地,奇偶校验更新单元111指示奇偶校验计算单元130对所获取的奇偶校验数据和所获取的由存储区存储的数据执行奇偶校验计算。奇偶校验计算单元130对从指令源接收的多个输入数据执行奇偶校验计算,并将计算结果返回到指令源。奇偶校验计算是当生成或更新奇偶校验数据、恢复数据等时要执行的计算,并包括例如异或运算的运算。奇偶校验更新单元111获取更新后的奇偶校验数据。奇偶校验更新单元111指示第一存取控制单元101向第一数据存储单元151中写入所获取的更新后的奇偶校验数据。第一存取控制单元101向第一数据存储单元151中写入更新后的奇偶校验数据。
奇偶校验更新单元111更新关于存储区的状态信息(步骤S106)。具体地,奇偶校验更新单元111指示第四存取控制单元104从由第二状态存储单元154存储的第二状态集合信息删除关于所通知的存储区的识别信息。第四存取控制单元104从由第二状态存储单元154存储的第二状态集合信息删除关于向奇偶校验更新单元111通知的存储区的识别信息。奇偶校验更新单元111指示第三存取控制单元103将关于所通知的存储区的识别信息添加到由第一状态存储单元153存储的第一状态集合信息。第三存取控制单元103将关于向奇偶校验更新单元111通知的存储区的识别信息添加到由第一状态存储单元153存储的第一状态集合信息。
以下参照图7描述将存储区改变为第二状态的处理过程的实例。图7是示出根据第一实施例的将存储区改变为第二状态的处理的流程的流程图。
开始,如果需要,状态更新单元120从第一状态存储单元153读出第一状态集合(步骤S201)。具体地,状态更新单元120指示第三存取控制单元103读出由第一状态存储单元153存储的第一状态集合信息。第三存取控制单元103读出由第一状态存储单元153存储的第一状态集合信息,并输出至状态更新单元120。状态更新单元120获取第一状态集合信息。状态更新单元120从由所获取的第一状态集合信息指示的存储区的集合选择要改变为第二状态的存储区,并向奇偶校验更新单元111通知关于所选择的存储区的识别信息(步骤S202)。
奇偶校验更新单元111读出在要改变为第二状态的存储区中记录的数据(步骤S203)。具体地,当从状态更新单元120通知关于要改变为第二状态的存储区的识别信息时,奇偶校验更新单元111指示第二存取控制单元102读出由所通知的存储区存储的数据。第二存取控制单元102读出由所通知的存储区存储的数据,并输出至奇偶校验更新单元111。奇偶校验更新单元111获取由所通知的存储区存储的数据。
奇偶校验更新单元111随后读出奇偶校验数据(步骤S204),并更新所读出的奇偶校验数据(步骤S205)。该处理与图6中的步骤S104和S105的处理相同,因此省略详细说明。
奇偶校验更新单元111更新关于存储区的状态信息(步骤S206)。具体地,奇偶校验更新单元111指示第三存取控制单元103从由第一状态存储单元153存储的第一状态集合信息删除关于所通知的存储区的识别信息。第三存取控制单元103从由第一状态存储单元153存储的第一状态集合信息删除关于向奇偶校验更新单元111通知的存储区的识别信息。奇偶校验更新单元111指示第四存取控制单元104将关于所通知的存储区的识别信息添加到由第二状态存储单元154存储的第二状态集合信息。第四存取控制单元104将关于向奇偶校验更新单元111通知的存储区的识别信息添加到由第二状态存储单元154存储的第二状态集合信息。
以下参照图8描述奇偶校验写入的处理过程的实例。图8是示出根据第一实施例的奇偶校验写入处理的流程的流程图。
开始,奇偶校验写入单元112从第一数据存储单元151读出奇偶校验数据(步骤S301)。具体地,奇偶校验写入单元112指示第一存取控制单元101在预先地或动态地确定的特定时机读出在第一数据存储单元151中记录的奇偶校验数据。第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,并输出至奇偶校验写入单元112。奇偶校验写入单元112获取在第一数据存储单元151中记录的奇偶校验数据。
奇偶校验写入单元112写入所获取的奇偶校验数据(步骤S302)。具体地,奇偶校验写入单元112指示第二存取控制单元102向第二数据存储单元152写入所获取的奇偶校验数据。第二存取控制单元102向第二数据存储单元152写入由奇偶校验写入单元112获取的奇偶校验数据。
这样,与在存储介质上的用户数据的写入量相比,根据第一实施例的数据存储装置可减少在存储介质上的奇偶校验数据的写入量。
第二实施例
在根据第二实施例的数据存储装置中,每当改变为第二状态的存储区的数目超过预先地或动态地确定的阈值时,从第一数据存储单元151向第二数据存储单元152写入奇偶校验数据。
图9是根据第二实施例的数据存储装置200的配置实例的功能框图。如图9所示,数据存储装置200包括:第一数据存储单元151、第一存取控制单元101、第二数据存储单元152、第二存取控制单元102、第一状态存储单元153、第三存取控制单元103、第二状态存储单元154、第四存取控制单元104、奇偶校验计算单元130、状态更新单元120-2、控制器110-2、第三状态存储单元255、以及第五存取控制单元205。控制器110-2包括奇偶校验更新单元111-2和奇偶校验写入单元112-2。对与已经说明的功能单元相同的单元分配相同的标号,并且省略详细说明。
第三状态存储单元255存储附加的(additional)第二状态集合信息。由第二状态存储单元154存储的第二状态集合信息所指示的处于第二状态的存储区的集合包括以下两个集合。
(1)在当稍后描述的奇偶校验写入单元112-2指示第一存取控制单元101和第二存取控制单元102向第二数据存储单元152中写入在第一数据存储单元151中记录的奇偶校验数据时最后的时刻(以下称为最后的奇偶校验写入时刻)之前起已连续地处于第二状态的存储区的集合。
(2)在最后的奇偶校验写入时刻之后,通过稍后描述的状态更新单元120-2从由第一状态集合信息指示的存储区的集合选择的作为要改变为第二状态的存储区、并作为结果而变为第二状态的存储区的集合。
附加的第二状态集合信息是关于在最后的奇偶校验写入时刻之后变成第二状态的存储区的集合(附加的第二状态集合)的信息。附加的第二状态集合信息通过例如如图10所示的存储区的标识符的列表结构而形成。
第五存取控制单元205控制对第三状态存储单元255的存取。对第三状态存储单元255的存取包括对由第三状态存储单元255存储的附加的第二状态集合信息的读出、由请求源指定的存储区信息向由第三状态存储单元255存储的附加的第二状态集合信息的添加、从由第三状态存储单元255存储的附加的第二状态集合信息对由请求源指定的存储区信息的删除、以及对由第三状态存储单元255存储的附加的第二状态集合信息的删除。
状态更新单元120-2类似于根据第一实施例的状态更新单元120,但通告目的地是奇偶校验更新单元111-2,而不是奇偶校验更新单元111,因此省略详细描述。
奇偶校验更新单元111-2类似于奇偶校验更新单元111,但涉及当从状态更新单元120-2通知关于要改变为第一状态的存储区的识别信息时的处理,通告源是状态更新单元120-2,而不是状态更新单元120,因此省略详细描述。
当从状态更新单元120-2通知关于要改变为第二状态的存储区的识别信息时,除了执行当从状态更新单元120向奇偶校验更新单元111通知关于要改变为第二状态的存储区的识别信息时执行的处理之外,奇偶校验更新单元111-2还指示第五存取控制单元205将关于所通知的存储区的识别信息添加到由第三状态存储单元255存储的附加的第二状态集合信息中。
奇偶校验写入单元112-2指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并获取由第三状态存储单元255存储的附加的第二状态集合信息。奇偶校验写入单元112-2获得关于在所获取的附加的第二状态集合信息中包括的存储区的识别信息(以下称为区域信息)的条数。当所获得的区域信息的条数超过预先地或动态地确定的阈值时,除了由奇偶校验写入单元112给出的奇偶校验写入指令之外,奇偶校验写入单元112-2指示第五存取控制单元205删除由第三状态存储单元255存储的附加的第二状态集合信息。
以下参照图11描述由此配置的根据第二实施例的数据存储装置200所执行的处理。将存储区改变为第一状态的处理的流程类似于根据第一实施例的图6,因此省略描述。图11是示出根据第二实施例的将存储区改变为第二状态的处理的流程的流程图。
步骤S401至S406是类似于由根据第一实施例的数据存储装置100在步骤S201至S206进行的处理的处理,因此省略对其的描述。
在步骤S407,奇偶校验更新单元111-2将关于要改变为第二状态的存储区的识别信息添加到附加的第二状态集合信息中。具体地,奇偶校验更新单元111-2指示第五存取控制单元205将关于从状态更新单元120-2通知的存储区的识别信息添加到由第三状态存储单元255存储的附加的第二状态集合信息中。第五存取控制单元205将关于从状态更新单元120-2向奇偶校验更新单元111-2通知的存储区的识别信息添加到由第三状态存储单元255存储的附加的第二状态集合信息中。
以下参照图12描述奇偶校验写入的处理过程的实例。图12是示出根据第二实施例的奇偶校验写入处理的流程的流程图。
开始,奇偶校验写入单元112-2获得在附加的第二状态集合信息中包括的区域信息的条数(步骤S501)。具体地,奇偶校验写入单元112-2指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息。第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并输出至奇偶校验写入单元112-2。奇偶校验写入单元112-2获取由第三状态存储单元255存储的附加的第二状态集合信息。奇偶校验写入单元112-2获得在所获取的附加的第二状态集合信息中包括的区域信息的条数。
奇偶校验写入单元112-2确定区域信息的条数是否超过预先地或动态地确定的阈值(步骤S502)。如果所获得的区域信息的条数不超过阈值(步骤S502的否),则处理结束。
如果所获得的区域信息的条数超过阈值(步骤S502的是),则奇偶校验写入单元112-2从第一数据存储单元151读出奇偶校验数据(步骤S503)。具体地,奇偶校验写入单元112-2指示第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据。第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,并输出至奇偶校验写入单元112-2。奇偶校验写入单元112-2获取在第一数据存储单元151中记录的奇偶校验数据。
步骤S504的处理类似于图8中的步骤S302的处理,因此省略详细描述。
奇偶校验写入单元112-2从第三状态存储单元255删除附加的第二状态集合信息(步骤S505)。具体地,奇偶校验写入单元112-2指示第五存取控制单元205删除由第三状态存储单元255存储的附加的第二状态集合信息。第五存取控制单元205删除由第三状态存储单元255存储的附加的第二状态集合信息。
第三实施例
在根据第三实施例的数据存储装置中,每当要改变为第一状态的存储区的数目超过预先地或动态地确定的阈值时,从第一数据存储单元151向第二数据存储单元152写入奇偶校验数据。
图13是根据第三实施例的数据存储装置300的配置实例的功能框图。如图13所示,数据存储装置300包括:第一数据存储单元151、第一存取控制单元101、第二数据存储单元152、第二存取控制单元102、第一状态存储单元153、第三存取控制单元103、第二状态存储单元154、第四存取控制单元104、奇偶校验计算单元130、状态更新单元120-3、控制器110-3、第四状态存储单元356、以及第六存取控制单元306。控制器110-3包括奇偶校验更新单元111-3和奇偶校验写入单元112-3。对与已经说明的功能单元相同的单元分配相同的标号,并且省略详细说明。
第四状态存储单元356存储附加的第一状态集合信息。由第一状态存储单元153存储的第一状态集合信息所指示的处于第一状态的存储区的集合包括以下两个集合。
(1)在当稍后描述的奇偶校验写入单元112-3指示第一存取控制单元101和第二存取控制单元102向第二数据存储单元152中写入在第一数据存储单元151中记录的奇偶校验数据时最后的时刻(以下,称为最后的奇偶校验写入时刻)之前起已经连续地处于第一状态的存储区的集合。
(2)在最后的奇偶校验写入时刻之后,通过稍后描述的状态更新单元120-3从由第二状态集合信息指示的存储区的集合选择的作为要改变为第一状态的存储区、并作为结果而变为第一状态的存储区的集合。
附加的第一状态集合信息是关于在最后的奇偶校验写入时刻之后变成第一状态的存储区的集合(附加的第一状态集合)的信息。附加的第一状态集合信息通过例如如图14所示的存储区的标识符的列表结构而形成。
第六存取控制单元306控制对第四状态存储单元356的存取。对第四状态存储单元356的存取包括对由第四状态存储单元356存储的附加的第一状态集合信息的读出、由请求源指定的存储区信息向由第四状态存储单元356存储的附加的第一状态集合信息的添加、对由请求源指定的存储区信息从由第四状态存储单元356存储的附加的第一状态集合信息的删除、以及对由第四状态存储单元356存储的附加的第一状态集合信息的删除。
状态更新单元120-3类似于状态更新单元120,但通告目的地是奇偶校验更新单元111-3,而不是奇偶校验更新单元111,因此省略详细描述。
当从状态更新单元120-3通知关于要改变为第一状态的存储区的识别信息时,除了执行当从状态更新单元120向奇偶校验更新单元111通知关于要改变为第一状态的存储区的识别信息时执行的处理之外,奇偶校验更新单元111-3还指示第六存取控制单元206将关于所通知的存储区的识别信息添加到由第四状态存储单元356存储的附加的第一状态集合信息中。
奇偶校验更新单元111-3类似于奇偶校验更新单元111,但涉及当从状态更新单元120-3通知关于要改变为第二状态的存储区的识别信息时的处理,通告源是状态更新单元120-3,而不是状态更新单元120,因此省略详细描述。
奇偶校验写入单元112-3指示第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息,并获取由第四状态存储单元356存储的附加的第一状态集合信息。奇偶校验写入单元112-3获得关于在所获取的附加的第一状态集合信息中包括的存储区的识别信息(以下称为区域信息)的条数。当所获得的区域信息的条数超过预先地或动态地确定的阈值时,除了由奇偶校验写入单元112给出的奇偶校验写入指令之外,奇偶校验写入单元112-3还指示第六存取控制单元306删除由第四状态存储单元存储的附加的第一状态集合信息。
以下参照图15描述由此配置的根据第三实施例的数据存储装置300所执行的处理。图15是示出根据第三实施例的将存储区改变为第一状态的处理的流程的流程图。
步骤S601至S606是类似于由根据第一实施例的数据存储装置100在步骤S101至S106进行的处理的处理,因此省略对其的描述。
在步骤S607,奇偶校验更新单元111-3将关于要改变为第一状态的存储区的识别信息添加到附加的第一状态集合信息。具体地,奇偶校验更新单元111-3指示第六存取控制单元306将关于从状态更新单元120-3通知的存储区的识别信息添加到由第四状态存储单元356存储的附加的第一状态集合信息中。第六存取控制单元306将关于从状态更新单元120-3向奇偶校验更新单元111-3通知的存储区的识别信息添加到由第四状态存储单元356存储的附加的第一状态集合信息中。
将存储区改变为第二状态的处理流程类似于根据第一实施例的图7,因此省略描述。
以下参照图16描述奇偶校验写入的处理过程的实例。图16是示出根据第三实施例的奇偶校验写入处理的流程的流程图。
开始,奇偶校验写入单元112-3获得在附加的第一状态集合信息中包括的区域信息的条数(步骤S701)。具体地,奇偶校验写入单元112-3指示第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息。第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息,并输出至奇偶校验写入单元112-3。奇偶校验写入单元112-3获取由第四状态存储单元356存储的附加的第一状态集合信息。奇偶校验写入单元112-3获得在所获取的附加的第一状态集合信息中包括的区域信息的条数。
奇偶校验写入单元112-3确定区域信息的条数是否超过预先地或动态地确定的阈值(步骤S702)。如果所获得的区域信息的条数不超过阈值(步骤S702的否),则处理结束。
如果所获得的区域信息的条数超过阈值(步骤S702的是),则奇偶校验写入单元112-3从第一数据存储单元151读出奇偶校验数据(步骤S703)。具体地,奇偶校验写入单元112-3指示第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据。第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,并输出至奇偶校验写入单元112-3。奇偶校验写入单元112-3获取在第一数据存储单元151中记录的奇偶校验数据。
步骤S704的处理类似于图8中的步骤S302的处理,因此省略详细描述。
奇偶校验写入单元112-3从第四状态存储单元356删除附加的第一状态集合信息(步骤S705)。具体地,奇偶校验写入单元112-3指示第六存取控制单元306删除由第四状态存储单元356存储的附加的第一状态集合信息。第六存取控制单元306删除由第四状态存储单元356存储的附加的第一状态集合信息。
第四实施例
在根据第四实施例的数据存储装置中,每当要改变为第一状态的存储区的数目超过阈值时,或每当要改变为第二状态的存储区的数目超过阈值时,从第一数据存储单元151向第二数据存储单元152写入奇偶校验数据。
图17是根据第四实施例的数据存储装置400的配置实例的功能框图。如图17所示,数据存储装置400包括:第一数据存储单元151、第一存取控制单元101、第二数据存储单元152、第二存取控制单元102、第一状态存储单元153、第三存取控制单元103、第二状态存储单元154、第四存取控制单元104、奇偶校验计算单元130、状态更新单元120-4、控制器110-4、第三状态存储单元255、第五存取控制单元205、第四状态存储单元356、以及第六存取控制单元305。控制器110-4包括奇偶校验更新单元111-4和奇偶校验写入单元112-4。对与已经说明的功能单元相同的单元分配相同的标号,并且省略详细说明。
状态更新单元120-4类似于状态更新单元120,但通告目的地是奇偶校验更新单元111-4,而不是奇偶校验更新单元111,因此省略详细描述。
奇偶校验更新单元111-4类似于奇偶校验更新单元111-3,但涉及当从状态更新单元120-4通知关于要改变为第一状态的存储区的识别信息时的处理,通告源是状态更新单元120-4,而不是状态更新单元120-3,因此省略详细描述。
奇偶校验更新单元111-4类似于奇偶校验更新单元111-2,但涉及当从状态更新单元120-4通知关于要改变为第二状态的存储区的识别信息时的处理,通告源是状态更新单元120-4,并非状态更新单元120-2,因此省略详细描述。
奇偶校验写入单元112-4指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并获取由第三状态存储单元255存储的附加的第二状态集合信息。奇偶校验写入单元112-4获得在所获取的附加的第二状态集合信息中包括的区域信息的条数。奇偶校验写入单元112-4指示第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息,并获取由第四状态存储单元356存储的附加的第一状态集合信息。奇偶校验写入单元112-4获得在所获取的附加的第一状态集合信息中包括的区域信息的条数。
当在所获得的附加的第二状态集合信息中包括的区域信息的条数超过预先地或动态地确定的阈值时,或当在所获得的附加的第一状态集合信息中包括的区域信息的条数超过预先地或动态地确定的阈值时,除了由奇偶校验写入单元112给出的奇偶校验写入指令并指示第五存取控制单元205删除由奇偶校验写入单元112-2给出的第三状态存储单元255所存储的附加的第二状态集合信息之外,奇偶校验写入单元112-4还指示第六存取控制单元306删除由第四状态存储单元356存储的附加的第一状态集合信息。
以下参照图18描述由此配置的根据第四实施例的数据存储装置400所执行的处理。将存储区改变为第一状态的处理以及将存储区改变为第二状态的处理分别类似于图15(第三实施例)和图11(第二实施例),因此省略描述。图18是示出根据第四实施例的奇偶校验写入处理的流程的流程图。
在步骤S801,获得在附加的第二状态集合信息中包括的区域信息的条数。该处理与图12中的步骤501的处理相同,但其是通过奇偶校验写入单元112-4执行的,而不是通过奇偶校验写入单元112-2执行的,因此省略详细描述。
在步骤S802,获得在附加的第一状态集合信息中包括的区域信息的条数。该处理与图16中的步骤701的处理相同,但其是通过奇偶校验写入单元112-4执行的,而不是通过奇偶校验写入单元112-3执行的,因此省略详细描述。
奇偶校验写入单元112-4确定区域信息的条数是否超过阈值(步骤S803)。具体地,奇偶校验写入单元112-4确定在步骤S801获得的附加的第二状态集合信息中所包括的区域信息的条数是否超过预先地或动态地确定的阈值(第一阈值),或在步骤S802获得的附加的第一状态集合信息中所包括的区域信息的条数是否超过预先地或动态地确定的阈值(第二阈值)。如果所获得的区域信息的条数不超过阈值(步骤S803的否),则该处理结束。
如果所获得的区域信息的条数超过阈值(步骤S803的是),则奇偶校验写入单元112-4从第一数据存储单元151读出奇偶校验数据(步骤S804)。该处理与图12中的步骤503的处理相同,但其是通过奇偶校验写入单元112-4执行的,而不是通过奇偶校验写入单元112-2执行的,因此省略详细描述。
步骤S805至S806的处理类似于通过根据第二实施例的数据存储装置200在步骤S504至S505进行的处理,因此省略对其的描述。此外,步骤S807的处理类似于通过根据第三实施例的数据存储装置300在步骤705进行的处理,因此省略对其的描述。
第五实施例
当使用具有上述特性的存储器时,在一些情况下,将易失性存储器用于第一数据存储单元151,并将非易失性存储器用于第二数据存储单元152。因此,例如,当关闭数据存储装置的电源时,在第一数据存储单元151上记录的奇偶校验数据丢失。为此,如果发生不期望的断电,当后来开启数据存储装置的电源时,需要恢复在断电之前在第一数据存储单元151上记录的奇偶校验数据。
可通过基于由第一状态存储单元153存储的第一状态集合信息而读出在处于第一状态的存储区中记录的所有数据并执行奇偶校验计算,来恢复在断电之前在第一数据存储单元151中记录的奇偶校验数据。然而,当奇偶校验组中包括大量存储区时,处理时间增加。
根据第五实施例,通过使用由第三状态存储单元255存储的附加的第二状态集合信息和由第四状态存储单元356存储的附加的第一状态集合信息,便于奇偶校验数据恢复的时间的缩短。
执行对在第一数据存储单元151中记录的奇偶校验数据的恢复的处理不限于以上情况。例如,可以当在第一数据存储单元151中记录的奇偶校验数据中检测到错误时,或当因为其他原因而需要恢复在第一数据存储单元151中记录的奇偶校验数据时,执行该处理。
图19是根据第五实施例的数据存储装置500的配置实例的功能框图。如图19所示,数据存储装置500包括:第一数据存储单元151、第一存取控制单元101、第二数据存储单元152、第二存取控制单元102、第一状态存储单元153、第三存取控制单元103、第二状态存储单元154、第四存取控制单元104、奇偶校验计算单元130、状态更新单元120-5、控制器110-5、第三状态存储单元255、第五存取控制单元205、第四状态存储单元356、以及第六存取控制单元306。控制器110-5包括奇偶校验更新单元111-5、奇偶校验写入单元112-4和奇偶校验恢复单元513。对与已经说明的功能单元相同的单元分配相同的标号,并且省略详细说明。
当需要恢复在第一数据存储单元151中记录的奇偶校验数据时,奇偶校验恢复单元513指示第二存取控制单元102读出在第二数据存储单元152中最后记录的奇偶校验数据,并获取在第二数据存储单元152中的最新(latest)记录的奇偶校验数据。
在固态驱动器(SSD)中,例如,为了使删除的次数在每个存储区中分布的目的,当更新一条数据时,在一些情况下,将更新后的数据记录在与更新前记录该数据的存储区不同的存储区中。获取最新记录的奇偶校验数据意味着获取这样的奇偶校验数据,该奇偶校验数据被最后记录为实际有效的奇偶校验数据,即使当通过使用上述数据记录方法将奇偶校验数据记录在多个区域中时也是如此。
奇偶校验恢复单元513指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并获取由第三状态存储单元255存储的附加的第二状态集合信息。
奇偶校验恢复单元513指示第二存取控制单元102从与所获取的附加的第二状态集合信息对应的第二数据存储单元152的各个存储区读出与附加的第二状态集合信息对应的存储区所存储的数据,并获取与附加的第二状态集合信息对应的存储区所存储的数据。
奇偶校验恢复单元513指示第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息,并获取由第四状态存储单元356存储的附加的第一状态集合信息。
奇偶校验恢复单元513指示第二存取控制单元102从与所获取的附加的第一状态集合信息对应的第二数据存储单元152的各个存储区读出与附加的第一状态集合信息对应的存储区所存储的数据,并获取与附加的第一状态集合信息对应的存储区所存储的数据。
奇偶校验恢复单元513指示奇偶校验计算单元130对所获取的在第二数据存储单元152中的最新记录的奇偶校验数据、由与所获取的附加的第二状态集合信息对应的存储区存储的数据的组、以及由与所获取的附加的第一状态集合信息对应的存储区存储的数据的组执行奇偶校验计算,并获取更新后的奇偶校验数据。
以上过程的顺序可在不导致奇偶校验计算的最终结果改变的范围内适当互换。
奇偶校验恢复单元513指示第一存取控制单元101向第一数据存储单元151中记录所获取的更新后的奇偶校验数据。
状态更新单元120-5指示第四存取控制单元104读出由第二状态存储单元154存储的第二状态集合信息(如果需要),并获取第二状态集合信息。状态更新单元120-5指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并获取附加的第二状态集合信息。状态更新单元120-5从这样的集合选择要改变为第一状态的存储区,并向奇偶校验更新单元111-5通知关于所选择的存储区的识别信息,该集合为从由所获取的第二状态集合信息指示的存储区的集合中将由所获取的附加的第二状态集合信息指示的存储区的集合排除在外而得到的集合。
奇偶校验更新单元111-5类似于奇偶校验更新单元111-4,但通告源是状态更新单元120-5,而不是状态更新单元120-4,因此省略详细描述。
以下参照图20描述由此配置的根据第五实施例的数据存储装置500所执行的处理。图20是示出根据第五实施例的将存储区改变为第一状态的处理的流程的流程图。
开始,如果需要,状态更新单元120-5从第二状态存储单元154读出第二状态集合(步骤S901)。具体地,状态更新单元120-5指示第四存取控制单元104读出由第二状态存储单元154存储的第二状态集合信息。第四存取控制单元104读出由第二状态存储单元154存储的第二状态集合信息,并输出至状态更新单元120-5。状态更新单元120-5获取第二状态集合信息。状态更新单元120-5指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息(步骤S902)。第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并输出至状态更新单元120-5。状态更新单元120-5获取附加的第二状态集合信息。状态更新单元120-5从这样的集合选择要改变为第一状态的存储区,并向奇偶校验更新单元111-5通知关于所选择的存储区的识别信息,该集合为从由所获取的第二状态集合信息指示的存储区的集合中将由所获取的附加的第二状态集合信息指示的存储区的集合排除在外而得到的集合(步骤S903)。
步骤S904至S908的处理类似于根据第三实施例由数据存储装置300在步骤S603至S607进行的处理,因此省略对其的描述。
对要改变为第一状态的存储区设置限制的原因是因为当恢复奇偶校验数据(稍后描述)时需要由附加的第二状态集合信息指示的存储区所存储的数据。为此,根据该实施例,仅允许在被包括在这样的集合中的处于第二状态的存储区中进行用户数据的重写处理,该集合为从由第二状态集合信息指示的存储区的集合中将由附加的第二状态集合信息指示的存储区的集合排除在外而得到的集合。换句话说,不允许在由附加的第二状态集合信息指示的存储区的集合中所包括的处于第二状态的存储区中进行用户数据的重写处理。因此,可保持由附加的第二状态集合信息指示的存储区所存储的数据。
将存储区改变为第二状态的处理过程的实例以及奇偶校验写入的处理过程的实例类似于第四实施例,因此省略详细描述。
以下参照图21描述恢复奇偶校验数据的处理过程的实例。
开始,奇偶校验恢复单元513读出最后写入的奇偶校验数据(步骤S1001)。具体地,当需要恢复在第一数据存储单元151中记录的奇偶校验数据时,奇偶校验恢复单元513指示第二存取控制单元102读出被最后记录到第二数据存储单元152中的奇偶校验数据。第二存取控制单元102读出被最后记录到第二数据存储单元152中的奇偶校验数据,并输出至奇偶校验恢复单元513。奇偶校验恢复单元513获取被最后记录到第二数据存储单元152中的奇偶校验数据。
奇偶校验恢复单元513读出与附加的第二状态集合信息对应的存储区所存储的数据。具体地,奇偶校验恢复单元513指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息。第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并输出至奇偶校验恢复单元513。奇偶校验恢复单元513获取由第三状态存储单元255存储的附加的第二状态集合信息(步骤S1002)。针对与所获取的附加的第二状态集合信息对应的第二数据存储单元152的每个存储区,奇偶校验恢复单元513指示第二存取控制单元102读出由与附加的第二状态集合信息对应的存储区存储的数据。第二存取控制单元102读出与由奇偶校验恢复单元513获取的附加的第二状态集合信息对应的存储区所存储的数据,并输出至奇偶校验恢复单元513。奇偶校验恢复单元513获取与附加的第二状态集合信息对应的存储区所存储的数据(步骤S1003)。
奇偶校验恢复单元513读出与附加的第一状态集合信息对应的存储区所存储的数据。具体地,奇偶校验恢复单元513指示第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息。第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息,并输出至奇偶校验恢复单元513。奇偶校验恢复单元513获取由第四状态存储单元356存储的附加的第一状态集合信息(步骤S1004)。针对与所获取的附加的第一状态集合信息对应的第二数据存储单元152的每个存储区,奇偶校验恢复单元513指示第二存取控制单元102读出与附加的第一状态集合信息对应的存储区所存储的数据。第二存取控制单元102读出与由奇偶校验恢复单元513获取的附加的第一状态集合信息对应的存储区所存储的数据,并输出至奇偶校验恢复单元513。奇偶校验恢复单元513获取与附加的第一状态集合信息对应的存储区所存储的数据(步骤S1005)。
奇偶校验恢复单元513更新奇偶校验数据(步骤S1006)。具体地,奇偶校验恢复单元513指示奇偶校验计算单元130对所获取的在第二数据存储单元152中最新记录的奇偶校验数据、与所获取的附加的第二状态集合信息对应的存储区所存储的数据的组、以及与所获取的附加的第一状态集合信息对应的存储区所存储的数据的组执行奇偶校验计算。奇偶校验计算单元130对从指令源接收的多个输入数据执行奇偶校验计算,并将计算结果返回到指令源。奇偶校验恢复单元513获取更新后的奇偶校验数据。
奇偶校验恢复单元513存储奇偶校验数据(步骤S1007)。具体地,奇偶校验恢复单元513指示第一存取控制单元101向第一数据存储单元151中写入所获取的更新后的奇偶校验数据。第一存取控制单元101向第一数据存储单元151中写入所获取的更新后的奇偶校验数据。
这样,通过使用附加的第二状态集合信息和附加的第一状态集合信息,根据第五实施例的数据存储装置可以恢复奇偶校验数据,而无需读出在处于第一状态的存储区域中存储的所有用户数据。因此,可以实现奇偶校验数据的恢复时间的缩短。
第六实施例
如果根据奇偶校验数据提高恢复用户数据的可能性,可以进一步改善数据存储装置的可靠性。在通过异或运算的奇偶校验数据的情况下,可利用奇偶校验数据恢复在同一奇偶校验组中的一条用户数据,但利用奇偶校验数据不能恢复在同一奇偶校验组中的两条或更多条用户数据。通过适当地修改以下实施例,其可适用于通过除了异或运算之外的运算方法的数据恢复代码。
通过使用附加的第二状态集合信息和附加的第一状态集合信息,根据第六实施例的数据存储装置实现了同一奇偶校验组中的两条或更多条用户数据的恢复。下文中,根据第六实施例的用户数据的恢复方法称为重复差异校正(repetitive difference correction)。
图22是根据第六实施例的数据存储装置600的配置实例的功能框图。如图22所示,数据存储装置600包括:第一数据存储单元151、第一存取控制单元101、第二数据存储单元152、第二存取控制单元102、第一状态存储单元153、第三存取控制单元103、第二状态存储单元154、第四存取控制单元104、奇偶校验计算单元130、状态更新单元120-5、控制器110-6、第三状态存储单元255、第五存取控制单元205、第四状态存储单元356、以及第六存取控制单元306。控制器110-6包括奇偶校验更新单元111-5、奇偶校验写入单元112-4和奇偶校验恢复单元614。对与已经说明的功能单元相同的单元分配相同的标号,并且省略详细说明。
在开始对数据恢复单元614的说明之前,以下说明存储区与数据的保护状态之间的关系。图23是示出存储区的状态与通过奇偶校验数据的在存储区中记录的数据的保护状态之间的关系的示意图。
如图23所示,在由第一状态集合信息指示的存储区的集合(第一状态集合)中包括由附加的第一状态集合信息指示的存储区的集合(附加的第一状态集合)。在由第二状态集合信息指示的存储区的集合(第二状态集合)中包括由附加的第二状态集合信息指示的存储区的集合(附加的第二状态集合)。
如图23所示,第一状态集合是记录受到在第一数据存储单元151中记录的奇偶校验数据保护的数据的存储区的集合。将附加的第二状态集合与从第一状态集合排除了附加的第一状态集合而得到的存储区的集合相组合的存储区的集合是记录受到在第二数据存储单元152中的最新记录的奇偶校验数据保护的数据的存储区的集合。
如图23所示,当在其中存储希望被恢复的数据的两个存储区当中,一个存储区(以下称为存储区A)被包括在由附加的第一状态集合信息指示的存储区的集合中,另一存储区(以下称为存储区B)被包括在从第一状态集合排除了附加的第一状态集合而得到的存储区的集合中时,可以执行重复差异校正。在这样的状态下,在其中存储希望利用奇偶校验数据恢复的数据的两个存储区被包括在同一奇偶校验组中(第一状态集合),从而通过利用奇偶校验数据的通常的数据恢复处理不能恢复数据。
返回到对图22中所示的数据恢复单元614的说明。当从未示出的恢复请求源接收到重复差异校正请求(该重复差异校正请求包括关于在其中存储希望被恢复的数据的两个存储区的识别信息)时,数据恢复单元614确定是否:在两个存储区当中,一个存储区(存储区A)被包括在附加的第一状态集合中,而另一存储区(存储区B)被包括在从第一状态集合排除了附加的第一状态集合而得到的存储区的集合中。
具体地,数据恢复单元614指示第三存取控制单元103读出由第一状态存储单元153存储的第一状态集合信息,并获取由第一状态存储单元153存储的第一状态集合信息。数据恢复单元614指示第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息,并获取由第四状态存储单元356存储的附加的第一状态集合信息。数据恢复单元614确定是否:在接收到的重复差异校正请求中包括的两个存储区当中,一个存储区(存储区A)被包括在与所获取的附加的第一状态集合信息对应的存储区的集合中,而另一个存储区(存储区B)被包括在从由所获取的第一状态集合信息指示的存储区的集合中排除了由所获取的附加的第一状态集合信息指示的存储区的集合而得到的存储区的集合中。如果确定结果为假,则数据恢复单元614向未示出的恢复请求源输出不能执行重复差异校正。
数据恢复单元614恢复存储区B中的数据。开始,数据恢复单元614获取第二数据存储单元152中的最新记录的奇偶校正数据、以及利用奇偶校正数据进行恢复所需的用户数据。
具体地,数据恢复单元614指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并获取由第三状态存储单元255存储的附加的第二状态集合信息。数据恢复单元614指示第二存取控制单元102读出第二数据存储单元152中的最新记录的奇偶校验数据,并获取第二数据存储单元152中的最新记录的奇偶校验数据。此外,数据恢复单元614指示第二存取控制单元102读出从这样的存储区的集合排除了存储区B的存储区而得到的存储区的集合中的每个存储区所存储的数据,并获取每个存储区所存储的数据,该存储区的集合为将由所获取的附加的第二状态集合信息指示的存储区的集合与从由所获取的第一状态集合指示的存储区的集合排除了由所获取的附加的第一状态集合信息指示的存储区的集合而得到的存储区的集合进行组合而成的。
然后,数据恢复单元614从所获取的在第二数据存储单元152中的最新记录的奇偶校验数据以及利用奇偶校验数据进行恢复所需的用户数据而恢复存储区B中的数据。
具体地,数据恢复单元614指示奇偶校验计算单元130度所获取的在第二数据存储单元152中的最新记录的奇偶校验数据以及所获取的数据组执行奇偶校验计算,并获取在存储区B中的作为结果而恢复的数据。
数据恢复单元614恢复存储区A中的数据。开始,数据恢复单元614获取在第一数据存储单元151中记录的奇偶校验数据以及利用奇偶校验数据进行恢复所需的用户数据。所恢复的数据将被视为存储区B中的数据。
具体地,数据恢复单元614指示第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,并获取在第一数据存储单元151中记录的奇偶校验数据。此外,数据恢复单元614指示第二存取控制单元102读出由从所获取的第一状态集合所指示的存储区的集合排除了存储区A的存储区和存储区B的存储区而得到的存储区的集合中的每个存储区存储的数据;并获取由每个存储区存储的数据。
数据恢复单元614随后从所获取的在第一数据存储单元151中记录的奇偶校验数据以及利用奇偶校验数据进行恢复所需的用户数据,恢复存储区A中的数据。
具体地,数据恢复单元614指示奇偶校验计算单元130对所获取的奇偶校验数据、所获取的数据组、以及所获取的在存储区B中的恢复的数据执行奇偶校验计算,并获取作为结果而恢复的存储区A中的数据。
以上过程的顺序可在不导致奇偶校验计算的最终结果改变的范围内适当互换。例如,通过单独地存储奇偶校验计算的中间计算结果,可便于优化,例如,减少从第二数据存储单元152读出数据的次数。
数据恢复单元614将在存储区A中的恢复的数据以及在存储区B中的恢复的数据返回到未示出的恢复请求源。
这样,通过适当地使用第二数据存储单元152中的最新记录的奇偶校验数据,有时候,在一些情况下可通过重复差异校正而恢复在同一奇偶校验组中的两条用户数据,从而可以进一步提高数据存储装置的可靠性。
以下参照图24描述由此配置的根据第六实施例的数据存储装置600所执行的处理。将存储区改变为第一状态的处理过程的实例、将存储区改变为第二状态的处理过程的实例、以及奇偶校验写入的处理过程的实例类似于根据第五实施例的情况,因此省略详细描述。图24是示出根据第六实施例的重复差异校正处理的实例的流程图。
开始,数据恢复单元614确定是否可执行重复差异校正(步骤S1101)。换句话说,当从未示出的恢复请求源接收到重复差异校正请求(该重复差异校正请求包括关于在其中存储希望被恢复的数据的两个存储区的识别信息)时,数据恢复单元614确定是否:在这两个存储区当中,一个存储区(存储区A)被包括在附加的第一状态集合中,而另一存储区(存储区B)被包括在从第一状态集合排除了附加的第一状态集合而得到的存储区的集合中。
具体地,数据恢复单元614指示第三存取控制单元103读出由第一状态存储单元153存储的第一状态集合信息。第三存取控制单元103读出由第一状态存储单元153存储的第一状态集合信息,并输出至数据恢复单元614。数据恢复单元614获取由第一状态存储单元153存储的第一状态集合信息。数据恢复单元614指示第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息。第六存取控制单元306读出由第四状态存储单元356存储的附加的第一状态集合信息,并输出至数据恢复单元614。数据恢复单元614获取由第四状态存储单元356存储的附加的第一状态集合信息。数据恢复单元614确定是否:在接收到的重复差异校正请求中包括的两个存储区当中,一个存储区(存储区A)被包括在与所获取的附加的第一状态集合信息对应的存储区的集合中,而另一个存储区(存储区B)被包括在从由所获取的第一状态集合信息指示的存储区的集合中排除了由所获取的附加的第一状态集合信息指示的存储区的集合而得到的存储区的集合中。
如果确定结果为假(S1101的否),则数据恢复单元614向未示出的恢复请求源输出不能执行重复差异校正,并且结束该处理。如果确定结果为真(S1101的是),数据恢复单元614获取在第二数据存储单元152中的最新记录的奇偶校验数据以及利用奇偶校正数据进行恢复所需的用户数据(步骤S1102)。具体地,数据恢复单元614指示第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息。第五存取控制单元205读出由第三状态存储单元255存储的附加的第二状态集合信息,并输出至数据恢复单元614。数据恢复单元614获取由第三状态存储单元255存储的附加的第二状态集合信息。数据恢复单元614指示第二存取控制单元102读出在第二数据存储单元152中的最新记录的奇偶校验数据。第二存取控制单元102读出在第二数据存储单元152中的最新记录的奇偶校验数据,并输出至数据恢复单元614。数据恢复单元614获取在第二数据存储单元152中的最新记录的奇偶校验数据。
此外,数据恢复单元614指示第二存取控制单元102读出从这样的存储区的集合排除了存储区B的存储区而得到的存储区的集合中的每个存储区所存储的数据,该存储区的集合为将由所获取的附加的第二状态集合信息指示的存储区的集合与从由所获取的第一状态集合指示的存储区的集合排除了由所获取的附加的第一状态集合信息指示的存储区的集合而得到的存储区的集合进行组合而成的。第二数据存储单元102读出由每个所指示的存储区存储的数据,并输出至数据恢复单元614。数据恢复单元614获取由所述每个存储区存储的数据。
数据恢复单元614恢复存储区B中的数据(步骤S1103)。具体地,数据恢复单元614指示奇偶校验计算单元130对所获取的在第二数据存储单元152中的最新记录的奇偶校验数据以及所获取的数据组执行奇偶校验计算。奇偶校验计算单元130对从指令源接收到的多个输入数据执行奇偶校验计算,并将计算结果返回到指令源。数据恢复单元614获取在存储区B中作为结果而恢复的数据。
数据恢复单元614获取在第一数据存储单元151中记录的奇偶校验数据以及利用奇偶校验数据进行恢复所需的用户数据(步骤S1104)。具体地,数据恢复单元614指示第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据。第一存取控制单元101读出在第一数据存储单元151中记录的奇偶校验数据,并输出至数据恢复单元614。数据恢复单元614获取在第一数据存储单元151中记录的奇偶校验数据。数据恢复单元614指示第二存取控制单元102读出由从所获取的第一状态集合所指示的存储区的集合排除了存储区A的存储区和存储区B的存储区而得到的存储区的集合中每个存储区存储的数据。第二存取控制单元102读出由每个所指示的存储区存储的数据,并输出至数据恢复单元614。数据恢复单元614获取由所述每个存储区存储的数据。
数据恢复单元614恢复存储区A中的数据(步骤S1105)。具体地,数据恢复单元614指示奇偶校验计算单元130对所获取的奇偶校验数据、所获取的数据组、以及所获取的存储区B中的恢复的数据执行奇偶校验计算。奇偶校验计算单元130对从指令源接收到的多个输入数据执行奇偶校验计算,并将计算结果返回到指令源。数据恢复单元614获取作为结果而恢复的存储区A中的数据。从步骤S1102至步骤S1105的过程的顺序可在不导致奇偶校验计算的最终结果改变的范围内适当互换。通过使从步骤S1102至步骤S1105的过程的顺序互换,例如,通过单独地存储奇偶校验计算的中间计算结果,可便于优化,例如,减少从第二数据存储单元152读出数据的次数。
数据恢复单元614将存储区A中的恢复的数据以及存储区B中的恢复的数据返回到未示出的恢复请求源(步骤S1106)。
这样,通过使用第二数据存储单元152中的最新记录的奇偶校验数据,根据第六实施例的数据存储装置可通过重复差异校正而恢复在同一奇偶校验组中的两条用户数据。因此,可以进一步提高数据存储装置的可靠性。
如上所述,根据第一至第六实施例,可以改善作为单独装置的数据存储装置的可靠性。此外,当更新奇偶校验数据时,更新的奇偶校验数据被存储在第一数据存储单元中,并且在特定的时机将在第一数据存储单元中存储的奇偶校验数据写入到第二数据存储单元中。因此,与在存储介质上的用户数据的写入量相比,可以减少在存储介质上的奇偶校验数据的写入量。
以下说明根据第一至第六实施例的控制器的硬件配置。根据第一至第六实施例的控制器包括诸如中央处理单元(CPU)的控制装置、诸如只读存储器(ROM)和随机存取存储器(RAM)的存储单元、以及连接每个单元的总线。
通过被预先并入例如ROM中而提供通过根据第一至第六实施例的控制器执行的计算机程序。
通过根据第一至第六实施例的控制器执行的计算机程序可被配置为通过在计算机可读的记录介质上以可安装格式或可执行格式将其记录在文件中而作为计算机程序产品来提供,所述计算机可读的记录介质为例如压缩盘只读存储器(CD-ROM)、软盘(FD)、可记录的压缩盘(CD-R)、或数字通用盘(DVD)。
此外,通过根据第一至第六实施例的控制器执行的计算机程序可被配置为通过将其存储在与网络(例如因特网)连接的计算机中并使其通过网络而被下载来提供。此外,通过根据第一至第六实施例的控制器执行的计算机程序可被配置为通过网络(例如因特网)来提供或分布。
通过根据第一至第六实施例的控制器执行的计算机程序可使得计算机用作上述存储装置的每个单元(奇偶校验更新单元、和奇偶校验写入单元)。计算机可通过用CPU将其从计算机可读的存储介质读出到主存储器上来执行计算机程序。
根据上述至少一个实施例的控制器,所述控制器控制向这样的存储装置的写入和从该存储装置的读出,该存储装置包括第一数据存储单元和第二数据存储单元。第二数据存储单元存储用户数据和用户数据的奇偶校验数据。第一数据存储单元存储奇偶校验数据。所述控制器包括奇偶校验更新单元和奇偶校验写入单元。当更新奇偶校验数据时,奇偶校验更新单元将更新的奇偶校验数据写入到第一数据存储单元中。当满足特定要求时,奇偶校验写入单元读出在第一数据存储单元中写入的奇偶校验数据,并将由此读出的奇偶校验数据写入到第二数据存储单元中。因此,可以改善作为单独装置的数据存储装置的可靠性。
尽管描述了某些实施例,但是这些实施例仅通过实例给出,并不旨在限制本发明的范围。实际上,这里所述的新颖实施例可通过各种其他形式实现;此外,在不脱离本发明的精神的情况下,可在这里所述的实施例的形式上进行各种省略、替换和修改。所附权利要求及其等同物旨在涵盖落入本发明的范围和精神内的这样的形式或修改。

Claims (6)

1.一种控制器,其控制向在存储装置中包括的第一数据存储单元和第二数据存储单元的写入以及从所述第一数据存储单元和所述第二数据存储单元的读出,所述第二数据存储单元存储由主机设备请求写入的用户数据和所述用户数据的奇偶校验数据,所述第一数据存储单元存储所述奇偶校验数据,存储用户数据的所述第二数据存储单元中的存储区具有第一状态和第二状态,所述第一状态是在所述存储区中存储的用户数据受到由所述第一数据存储单元存储的奇偶校验数据保护的状态,所述第二状态是在所述存储区中存储的用户数据不受由所述第一数据存储单元存储的奇偶校验数据保护的状态,所述控制器包括:
奇偶校验更新单元,其在所述存储区的状态改变时更新所述奇偶校验数据,并且将第一奇偶校验数据写入到所述第一数据存储单元中,所述第一奇偶校验数据是更新后的奇偶校验数据;以及
奇偶校验写入单元,其在独立于更新所述奇偶校验数据的时机而确定的时机读出在所述第一数据存储单元中写入的所述奇偶校验数据,并将第二奇偶校验数据写入到所述第二数据存储单元中,所述第二奇偶校验数据是所读出的奇偶校验数据。
2.根据权利要求1的控制器,其中
所述存储装置还包括:第一状态存储单元,其存储关于处于所述第一状态的存储区的识别信息;以及第二状态存储单元,其存储关于处于所述第二状态的存储区的识别信息,
当所述第二数据存储单元的存储区从所述第一状态改变为所述第二状态时,所述奇偶校验更新单元向所述第一数据存储单元中写入在改变之后在处于所述第一状态的存储区中存储的用户数据的所述第一奇偶校验数据,从所述第一状态存储单元删除关于改变为所述第二状态的存储区的识别信息,并向所述第二状态存储单元添加关于改变为所述第二状态的存储区的识别信息,以及
当所述第二数据存储单元的存储区从所述第二状态改变为所述第一状态时,所述奇偶校验更新单元向所述第一数据存储单元中写入在改变之后在处于所述第一状态的存储区中存储的用户数据的所述第一奇偶校验数据,向所述第一状态存储单元添加关于改变为所述第一状态的存储区的识别信息,并从所述第二状态存储单元删除关于改变为所述第一状态的存储区的识别信息。
3.根据权利要求2的控制器,其中当向所述第二数据存储单元中写入所述第二奇偶校验数据之后从所述第一状态改变为所述第二状态的存储区的数目超过预定的第一阈值时,或当向所述第二数据存储单元写入所述第二奇偶校验数据之后从所述第二状态改变为所述第一状态的存储区的数目超过预定的第二阈值时,所述奇偶校验写入单元读出在所述第一数据存储单元中写入的奇偶校验数据作为所述第二奇偶校验数据,并将所述第二奇偶校验数据写入到所述第二数据存储单元中。
4.根据权利要求3的控制器,还包括:奇偶校验恢复单元,其向所述第一数据存储单元中写入所述第一奇偶校验数据,所述第一奇偶校验数据是基于在由第三状态存储单元中存储的识别信息所识别的存储区中存储的用户数据、在由第四状态存储单元中存储的识别信息所识别的存储区中存储的用户数据、和在所述第二数据存储单元中存储的所述第二奇偶校验数据而计算出的,所述第三状态存储单元存储关于在向所述第二数据存储单元中写入所述第二奇偶校验数据之后从所述第一状态改变为所述第二状态的存储区的识别信息,所述第四状态存储单元存储关于在向所述第二数据存储单元中写入所述第二奇偶校验数据之后从所述第二状态改变为所述第一状态的存储区的识别信息。
5.根据权利要求3的控制器,还包括:用于恢复第二存储区中的用户数据和第一存储区中的用户数据的数据恢复单元,所述第一存储区和所述第二存储区为存储用户数据的所述第二数据存储单元的存储区,当在所述第一状态存储单元中存储的识别信息所识别的存储区当中,要恢复用户数据的所述第一存储区被包括在由存储于第四状态存储单元中的识别信息所识别的存储区中,并且要恢复用户数据的所述第二存储区被包括在由未存储于所述第四状态存储单元中的识别信息所识别的存储区中时,通过基于从由所述第一状态存储单元中存储的识别信息所识别的存储区排除了由所述第四状态存储单元中存储的识别信息所识别的存储区而得到的存储区、和从由第三状态存储单元中存储的识别信息所识别的存储区排除了所述第二存储区而得到的存储区中存储的用户数据、以及在所述第二数据存储单元中存储的所述第二奇偶校验数据,恢复所述第二存储区中的用户数据,并且基于所恢复的用户数据、在从由所述第一状态存储单元中存储的识别信息所识别的存储区排除了所述第一存储区和所述第二存储区而得到的存储区中存储的用户数据、和在所述第一数据存储单元中存储的所述第一奇偶校验数据,恢复所述第一存储区中的用户数据,所述第三状态存储单元存储关于在向所述第二数据存储单元中写入所述第二奇偶校验数据之后从所述第一状态改变为所述第二状态的存储区的识别信息,所述第四状态存储单元存储关于在向所述第二数据存储单元中写入所述第二奇偶校验数据之后从所述第二状态改变为所述第一状态的存储区的识别信息。
6.一种存储装置,包括:
第一数据存储单元,其存储由主机设备请求写入的用户数据的奇偶校验数据;
第二数据存储单元,存储所述用户数据和所述奇偶校验数据;以及
控制器,其控制向所述第一数据存储单元和所述第二数据存储单元的写入以及从所述第一数据存储单元和所述第二数据存储单元的读出,存储用户数据的所述第二数据存储单元中的存储区具有第一状态和第二状态,所述第一状态是在所述存储区中存储的用户数据受到由所述第一数据存储单元存储的奇偶校验数据保护的状态,所述第二状态是在所述存储区中存储的用户数据不受由所述第一数据存储单元存储的奇偶校验数据保护的状态,其中所述控制器包括:
奇偶校验更新单元,其在所述存储区的状态改变时更新所述奇偶校验数据,并且将第一奇偶校验数据写入到所述第一数据存储单元中,所述第一奇偶校验数据是更新后的奇偶校验数据;以及
奇偶校验写入单元,其在独立于更新所述奇偶校验数据的时机而确定的时机读出在所述第一数据存储单元中写入的所述奇偶校验数据,并将第二奇偶校验数据写入到所述第二数据存储单元中,所述第二奇偶校验数据是所读出的奇偶校验数据。
CN201110254403.5A 2010-09-17 2011-08-31 控制器、存储装置以及计算机程序产品 Active CN102411518B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010209758A JP5279785B2 (ja) 2010-09-17 2010-09-17 コントローラ、記憶装置、およびプログラム
JP209758/2010 2010-09-17

Publications (2)

Publication Number Publication Date
CN102411518A CN102411518A (zh) 2012-04-11
CN102411518B true CN102411518B (zh) 2014-10-08

Family

ID=44677564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110254403.5A Active CN102411518B (zh) 2010-09-17 2011-08-31 控制器、存储装置以及计算机程序产品

Country Status (6)

Country Link
US (1) US8549388B2 (zh)
EP (1) EP2431878A1 (zh)
JP (1) JP5279785B2 (zh)
KR (1) KR101285900B1 (zh)
CN (1) CN102411518B (zh)
TW (1) TWI473006B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
JP5651457B2 (ja) 2010-12-15 2015-01-14 株式会社東芝 半導体記憶装置
US8640013B2 (en) 2011-09-22 2014-01-28 Kabushiki Kaisha Toshiba Storage device
KR102116713B1 (ko) * 2012-07-13 2020-06-01 삼성전자 주식회사 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
EP2975474B1 (en) * 2014-07-17 2018-12-26 Wago Verwaltungsgesellschaft mbH Industrial control system and method for transferring data
US10481803B2 (en) 2017-06-16 2019-11-19 Western Digital Technologies, Inc. Low write overhead consensus protocol for distributed storage
US10289489B2 (en) * 2017-07-11 2019-05-14 Western Digital Technologies, Inc. Update efficient consensus protocols for erasure coded data stores
CN109634771A (zh) * 2018-10-31 2019-04-16 华为技术有限公司 一种数据保护方法、装置及系统
KR20200070686A (ko) * 2018-12-10 2020-06-18 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0690379A2 (en) * 1994-06-20 1996-01-03 International Business Machines Corporation Enhanced data management in data storage subsystems
CN101620517A (zh) * 2009-08-04 2010-01-06 成都市华为赛门铁克科技有限公司 数据写入方法和装置
CN101630281A (zh) * 2009-08-25 2010-01-20 杭州华三通信技术有限公司 一种数据存储的镜像方法和设备
WO2010074352A1 (en) * 2008-12-27 2010-07-01 Kabushiki Kaisha Toshiba Memory system, method of controlling memory system, and information processing apparatus

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2508317B1 (fr) * 1981-06-26 1986-07-25 Charvin Guy Indicateur de sterilisation
US5235601A (en) * 1990-12-21 1993-08-10 Array Technology Corporation On-line restoration of redundancy information in a redundant array system
WO1993018456A1 (en) * 1992-03-13 1993-09-16 Emc Corporation Multiple controller sharing in a redundant storage array
JPH06274282A (ja) * 1993-03-18 1994-09-30 Toshiba Corp 磁気記録装置
JP3270959B2 (ja) * 1993-10-05 2002-04-02 株式会社日立製作所 ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
US5720025A (en) * 1996-01-18 1998-02-17 Hewlett-Packard Company Frequently-redundant array of independent disks
JP3373360B2 (ja) * 1996-06-13 2003-02-04 沖電気工業株式会社 ディスクアレイ装置
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
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
US8266367B2 (en) 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US8195760B2 (en) 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US7379974B2 (en) * 2003-07-14 2008-05-27 International Business Machines Corporation Multipath data retrieval from redundant array
JP3793544B2 (ja) * 2005-07-19 2006-07-05 株式会社日立製作所 ディスクアレイ装置及びその制御方法
TW200807258A (en) * 2006-07-28 2008-02-01 Qnap Systems Inc Data recovery method and system when redundant array of independent disks (RAID) is damaged
JP2008217395A (ja) * 2007-03-05 2008-09-18 Nec Corp ディスクアレイ装置
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4538034B2 (ja) 2007-09-26 2010-09-08 株式会社東芝 半導体記憶装置、及びその制御方法
JP2010015195A (ja) 2008-06-30 2010-01-21 Toshiba Corp 記憶制御装置及び記憶制御方法
JP2010015197A (ja) 2008-06-30 2010-01-21 Toshiba Corp ストレージ制御装置、データ復元装置およびストレージシステム
JP5268710B2 (ja) 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0690379A2 (en) * 1994-06-20 1996-01-03 International Business Machines Corporation Enhanced data management in data storage subsystems
WO2010074352A1 (en) * 2008-12-27 2010-07-01 Kabushiki Kaisha Toshiba Memory system, method of controlling memory system, and information processing apparatus
CN101620517A (zh) * 2009-08-04 2010-01-06 成都市华为赛门铁克科技有限公司 数据写入方法和装置
CN101630281A (zh) * 2009-08-25 2010-01-20 杭州华三通信技术有限公司 一种数据存储的镜像方法和设备

Also Published As

Publication number Publication date
TW201229880A (en) 2012-07-16
KR101285900B1 (ko) 2013-07-12
US20120072811A1 (en) 2012-03-22
KR20120029996A (ko) 2012-03-27
JP5279785B2 (ja) 2013-09-04
CN102411518A (zh) 2012-04-11
EP2431878A1 (en) 2012-03-21
TWI473006B (zh) 2015-02-11
JP2012064139A (ja) 2012-03-29
US8549388B2 (en) 2013-10-01

Similar Documents

Publication Publication Date Title
CN102411518B (zh) 控制器、存储装置以及计算机程序产品
US20190004716A1 (en) Providing redundancy in a virtualized storage system for a computer system
KR101870521B1 (ko) 스토리지 저널링을 개선하는 방법 및 시스템
US6898668B2 (en) System and method for reorganizing data in a raid storage system
CN107484427B (zh) 用于处理存储设备中分条的方法和存储设备
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
CN102929750A (zh) 非易失性介质肮脏区段跟踪
TW201131351A (en) System and method for optimizing redundancy restoration in distributed data layout environments
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
CN104583930A (zh) 数据迁移的方法、控制器和数据迁移装置
US10901646B2 (en) Update of RAID array parity
CN106873908A (zh) 数据存储方法及装置
CN111124262A (zh) 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质
JP4788492B2 (ja) ストレージ装置の容量拡張方法、プログラム、およびストレージ装置
CN109558066B (zh) 存储系统中恢复元数据的方法和装置
US8688938B2 (en) Data copying
JP2021114164A (ja) ストレージ装置及びストレージ制御方法
JP2010026812A (ja) 磁気ディスク装置
JP2011227802A (ja) データ記録装置
CN105573862B (zh) 一种恢复文件系统的方法和设备
JP6556980B2 (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US11513712B2 (en) Method for storage management, device and computer program product
JP7056874B2 (ja) 制御装置、ディスクアレイ装置、制御方法、及びプログラム
JP2004355188A (ja) ハードディスクの制御方法及び制御装置
JP2012203437A (ja) ストレージ装置、方法及びプログラム

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170801

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Japanese businessman Panjaya Co.,Ltd.

Address after: Tokyo, Japan

Patentee after: Kaixia Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220126

Address after: Tokyo, Japan

Patentee after: Japanese businessman Panjaya Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.