CN1779649A - 在处理数据时检验数据完整性的装置及方法 - Google Patents
在处理数据时检验数据完整性的装置及方法 Download PDFInfo
- Publication number
- CN1779649A CN1779649A CN200510124677.7A CN200510124677A CN1779649A CN 1779649 A CN1779649 A CN 1779649A CN 200510124677 A CN200510124677 A CN 200510124677A CN 1779649 A CN1779649 A CN 1779649A
- Authority
- CN
- China
- Prior art keywords
- data
- identifier
- data mode
- parity
- readable program
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了一种在处理数据时检验完整性的装置及方法。所述方法提供包括多个扇区的存储阵列。所述方法定义了(N)数据状态标识符和(N)奇偶校验状态标识符。所述方法接收处理数据的命令,其中所述命令指定目标扇区。所述方法确定分配给目标扇区的数据状态标识符,确定分配给目标扇区的奇偶校验状态标识符,并比较数据状态标识符和奇偶校验状态标识符。如果所述方法确定了数据状态标识符和奇偶校验状态标识符相同,所述方法执行处理数据的命令。或者,如果所述方法确定了数据状态标识符和奇偶校验状态标识符不同,所述方法生成错误消息。
Description
技术领域
本发明涉及一种处理数据时检验数据完整性的装置及方法。更特别地,本发明涉及一种处理数据时检验数据状态及奇偶校验状态的装置及方法。在某些实施例中,本发明涉及一种写入数据时检验数据状态及奇偶校验状态的装置及方法。在某些实施例中,本发明涉及一种读取数据时检验数据状态及奇偶校验状态的装置及方法。
背景技术
信息存储和检索***用于存储一个或多个主计算机***提供的信息。这种信息存储和检索***接收对一个或多个信息存储设备进行写入及读取信息的请求。该***连续地对存储设备移入和移出信息。
数据存储设备,例如硬盘驱动器,能够“撤销写入”,即未能将数据写入存储介质的指定扇区,和/或对指定扇区执行偏移磁道的写入。随后对所述扇区的读取将接收旧的,即“失效的”数据代替最近一次写入的数据。在RAID-5编码阵列中,如果计算新的奇偶校验时随后写入使无效写入的扇区被读取的奇偶校验条纹,奇偶校验将对于先前的数据来说被恶化,因为用于更新奇偶校验的读取不获得生成奇偶校验时所用的数据,而是获得失效的数据。
为了识别这种撤销的写入/偏移磁道的写入,现有技术教导的是在每次写入之后读回数据,这种读回检验数据能够正确写入。然而,这种读回必须要求对每次写入操作进行一次附加的读取操作。现有技术还教导了对整个存储阵列奇偶校验的定期检查,这种方法不仅烦琐而且需要大量的时间。此外,当这种奇偶校验进行时,奇偶校验恶化会出现在存储介质的不同部分。
需要一种方法,识别撤销写入和/或偏移磁道写入而在每次写入时不用读回,也不用检查整个存储阵列的奇偶校验。申请人的方法通过处理数据时检验扇区的数据状态及奇偶校验状态来识别撤销写入及偏移磁道的写入。
发明内容
申请人的发明包括一种处理数据时检验数据状态和奇偶校验状态的装置及方法。该方法提供了一种信息存储阵列,其包括一个包含多个扇区的信息存储阵列。该方法定义了(N)数据状态标识符及(N)奇偶校验状态标识符。本方法接收处理数据的命令,其中所述命令指定一个目标扇区。
所述方法确定了分配到目标扇区的数据状态标识符及奇偶校验状态标识符,并对数据状态标识符和奇偶校验状态标识符进行比较。
如果所述方法确定数据状态标识符和奇偶校验状态标识符相同,则所述方法执行处理数据的命令。或者,如果该方法确定数据状态标识符和奇偶校验状态标识符不同,则该方法生成错误信息。
附图说明
通过结合附图阅读以下的详细说明,本发明将得到更好的理解,附图中相同的附图标记用来指定相同的元件,其中:
图1是申请人的信息存储和检索***的一个实施例的框图;
图2是表示四个数据状态/奇偶校验状态的框图;
图3A是表示包括数据部分及元数据部分的数据扇区的框图;
图3B是图3A中包括多个数据状态地址的元数据部分的框图;
图4A是表示保持在第一个状态地址用于写入第一个存储介质的信息的数据状态标识符的框图;
图4B是表示保持在第二个状态地址用于写入第二个存储介质的信息的数据状态标识符的框图;
图4C是表示保持在第三个状态地址用于写入第三个存储介质的信息的数据状态标识符的框图;
图4D是表示写入第一个存储介质的保持在第(m)个扇区上的第一个状态地址的数据状态标识符及写入第三个存储介质的保持在第(m)个扇区上的第一个状态地址的相应奇偶校验状态标识符的框图;
图4E是表示写入第二个存储介质的保持在第(m)个扇区上的第二个状态地址的数据状态标识符及写入第三个存储介质的保持在第(m)个扇区上的第二个状态地址的相应奇偶校验状态标识符的框图;
图4F是表示写入第三个存储介质的保持在第(m)个扇区上的第三个状态地址的数据状态标识符及写入第一个存储介质的保持在第(m)个扇区上的第三个状态地址的相应奇偶校验状态标识符的框图;
图5是概括申请人的写入数据方法的步骤的流程图;
图6描述了对图5中所述方法进行编码的算法;及
图7是概括申请人的读取数据方法的步骤的流程图。
具体实施方式
参照附图,同样的数字对应附图中描述的同样的元件。本发明将被实施为一个包括两个或多个群集器的数据存储和检索***,其中每个所述群集器包括一个或多个处理器、一个或多个数据高速缓存及一个或多个非易失性存储装置。但是,下述申请人的在写入数据时分配数据状态及奇偶校验状态的方法的描述不意味着将申请人的发明限于一般的数据处理***或限于包括多个群集器的数据处理***,因为这里的本发明可以一般地适用于将数据写入多个存储介质。
图1所示的实施例中,申请人的信息存储和检索***100包括第一个群集器101A和第二个群集器101B,每个群集器分别包括处理器部分130/140及输入/输出部分160/170,每个群集器的内部PCI总线分别通过处理器部分130/140和设备I/O部分160/170之间的远程I/O桥接器155/165连接。
图1所示的实施例中,***100通过通信链路127能够同主计算机125进行通信。在某些实施例中,通信链路127从串行互连路中被选择出来,串行互连例如RS-232或RS-422、以太网互连、SCSI互连、光纤信道互连、ESCON互连、FICON互连、局域网(LAN)、专用广域网(WAN)、公用广域网、存储区域网(SAN)、传输控制协议/网际协议(TCP/IP)、互联网及其结合。
信息存储和检索***100还包括设置在四个主机架101、106、111及116中的多个主适配器102-105、107-110、112-115及117-120。每个主适配器可以包括一个或多个光纤信道端口、一个或多个FICON端口、一个或多个ESCON端口或者一个或多个SCSI端口。每个主适配器与两个群集器通过一个或多个通用平台互连总线121连接,使每个群集器能够处理任一主适配器的I/O。
处理器部分130包括处理器132及高速缓存134。在某些实施例中,处理器部分130还包括存储器133。在某些实施例中,存储设备133包括随机存取存储器。在某些实施例中,存储设备133包括非易失性存储器。
处理器部分140包括处理器142及高速缓存144。在某些实施例中,处理器部分140还包括存储器143。在某些实施例中,存储设备143包括随机存取存储器。在某些实施例中,存储设备143包括非易失性存储器。
I/O部分160包括非易失性存储器(″NVS″)162及NVS电池164。I/O部分170包括NVS 172及NVS电池174。
I/O部分160还包括多个设备适配器,例如设备适配器165、166、167和168,及组成为两个阵列的信息存储介质,即阵列″A″和阵列″B″。图1所示的实施例描述了两个信息存储阵列。在其他实施例中,申请人的信息存储和检索***包括多于两个的信息存储阵列。每个这种信息存储阵列在主计算机看来就象一个或多个逻辑设备。
在某些实施例中,申请人的信息存储介质包括磁性介质,例如设置在单独的硬盘驱动器单元中的硬盘。在某些实施例中,申请人的信息存储介质包括光学介质,例如CD、DVD等。在某些实施例中,申请人的信息存储介质包括电子存储介质,例如PROM、EPROM、EEPROM、闪速PROM、压缩闪存、智能介质等。
在某些实施例中,阵列“A”和“B”利用RAID协议。在某些实施例中,阵列“A”和“B”包括有时被称为JBOD阵列的阵列,即“单束盘(Just a Bunch of Disk)”,其中的阵列不依照RAID配置。本领域技术人员应当理解,RAID(独立盘冗余阵列)队列包括独立信息存储介质,其以阵列配置以获得超过单个大型存储介质的性能、容量及可靠性。
在某些实施例中,阵列“A”包括硬磁盘驱动器181、182、183、191、192、193及194,阵列“B”包括硬磁盘驱动器185、186、187、188、196、197及198。
申请人的信息存储和检索***,例如***100(图1),从一个或多个主计算机中接收新数据,所述主计算机例如主计算机125,并将新数据写入一个或多个信息存储阵列,例如信息存储阵列180(图1)。图1所示的实施例表示了与一个主计算机互连的***100。在其他实施例中,申请人的信息存储和检索***能够和多个主计算机进行通信。
申请人的信息存储和检索***接收新数据,并将新数据写入一个或多个信息存储介质的一个或多个指定扇区。其中新数据可能没能被编码到存储介质的多个故障模式存在。例如,数据存储设备有时不能正确地将数据写入信息存储介质。另外,数据存储设备有时对扇区执行偏离磁道的写入。不管故障模式如何,随后读取新数据的尝试代替地返回旧的数据。利用RAIDS协议,如果一次扇区写入失败,随后在计算新的奇偶校验时写入使得被无效写入的扇区被读取的奇偶校验条纹,所述奇偶校验将对于先前的数据来说恶化,因为用于更新所述奇偶校验的读取将获得失效的数据而不是当生成奇偶校验时使用的数据。
在某些实施例中,申请人的方法利用RAID 5协议将信息写入指定的扇区。RAID(独立盘的冗余阵列)结合两个协议:并行度和冗余度。RAID用多个并行的信息存储介质提供比单个存储介质高得多的带宽。RAID还能够执行并行的多个操作。奇偶校验的形式的冗余用于保持可靠性。通过存储奇偶校验,数据在单个存储设备故障后可以被完全恢复。
利用RAID 5协议,数据在多个存储介质间被剥离成为块。利用(R)存储介质,(R-l)数据块组在(R-l)介质中被剥离。奇偶校验块通过对这些(R-l)块进行“异或”(″XOR″)被计算,且奇偶校验块被存储在剩余存储介质中。奇偶校验被分布是指连续的奇偶校验块被存储在不同的存储介质以避免专用的奇偶校验介质的瓶颈。每个单独的块称为条纹单元,(R-1)数据块和奇偶校验块的集合称为奇偶校验条纹。
为获得峰值效率,应该立刻写入完整的奇偶校验条纹。这种情况下,能够并行地写出数据和奇偶校验。如果仅部分奇偶校验条纹被修改,奇偶校验必须根据已经在盘上的数据被重算。旧的数据和奇偶校验必须被读取,然后新的数据和重算的奇偶校验被写入。
申请人的一个或多个存储阵列中的每个信息存储介质包括多个扇区,例如扇区300(图3A),其中每个所述扇区包括包含约512字节的信息部分340及包含约12字节的元数据部分350。
在包括(R)存储介质的存储***中,申请人的方法保持了用于写入扇区300的数据的(R)状态地址,其中(R)大于或等于2。数据状态标识符保持在其中一个所述(R)状态地址中。
一般地说,申请人的方法将数据及相应数据状态标识符写入同一扇区。在扇区300写入第(i)个存储介质的情况下,然后申请人的方法利用第(i)个状态地址存储用于写入扇区300的数据的数据状态标识符。
举例来说并参照图4A,在所示的实施例中,申请人的存储***包括三个存储介质,即存储介质410、420及430。在图4A所示的实施例中,扇区300写入第一个存储介质410,因此,申请人的方法利用第一个状态地址,即状态地址310,为扇区300中的数据保持了数据状态标识符。在该图中所示的实施例中,该数据状态标识符为″01″。
在图4B所示的实施例中,扇区300写入第二个存储介质420,因此,申请人的方法利用第二个状态地址,即状态地址320,为扇区300中的数据保持了数据状态标识符。在该图中所示的实施例中,该数据状态标识符为“00”。
在图4C所示的实施例中,扇区300写入第三个存储介质430,因此,申请人的方法利用第三个状态地址,即状态地址330,为扇区300中的数据保持了数据状态标识符。在该图中所示的实施例中,该数据状态标识符为“02”。
本领域技术人员应当理解,信息存储介质可以包括的扇区有数千个或更多。利用申请人的方法,通过检查写入设置在所述扇区元数据部分中的一个状态地址的数据状态标识符,可确定所述任一扇区的数据状态。
参照图2,在某些实施例中,申请人的方法定义了四种不同的数据状态,即状态0、状态1、状态2及状态3。在图2所示的实施例中,状态0分配为标识符″00″,状态1分配为标识符″01″,状态2分配为标识符″10″,状态3分配为标识符″11″。
申请人的方法为每个信息扇区保持了相应的奇偶校验扇区。一般来说,如果申请人的方法将信息写入第(i)个存储介质的第(m)个扇区,那么申请人的方法为第(i)个存储介质的第(m)个扇区的第(i)个状态地址部分的该信息保持了数据状态标识符,也为第(j)个存储介质的第(m)个扇区的第(i)个状态地址部分的信息保持了奇偶校验状态标识符,其中(i)和(j)不同。更一般地说,如果奇偶校验扇区写入第(j)个存储介质的第(m)个扇区,那么第(j)个存储介质的所述第(m)个扇区的第(j)个状态地址部分将不被利用。
例如在图4D所示的实施例中,信息已写入扇区300,即第(i)个存储介质410的″第(m)个″扇区,其中(i)为1。在这种情况下,申请人的方法在第(i)个存储介质的所述第(m)个扇区的第(i)个状态地址部分310保持了数据状态标识符。在图4D所示的实施例中,所述数据状态标识符为″01″。申请人的方法在第(j)个存储介质上保持了相应的第(m)个奇偶校验扇区。在图4D所示的实施例中,(j)为3,即奇偶校验扇区300写入第三个存储介质430。申请人的方法此外还将奇偶校验状态标识符保持在第(i)个状态地址部分中,即第三个存储介质的奇偶校验扇区300的状态地址310部分。在图4D所示的实施例中,所述奇偶校验状态标识符为″01″。因此在图4D所示的实施例中,数据状态标识符及奇偶校验状态标识符对于写入存储介质410的扇区300的信息而言相同。
在图4E所示的实施例中,信息已写入扇区300,即第(i)个存储介质420的″第(m)个″扇区,其中(i)为2。在这种情况下,申请人的方法将数据状态标识符保持在第(i)个存储介质的第(m)个扇区的第(i)个状态地址部分320。在图4E所示的实施例中,所述数据状态标识符为“00”。申请人的方法将相应的第(m)个奇偶校验扇区保持在第(j)个存储介质上。在图4E所示的实施例中,(j)为3,即奇偶校验扇区300写入第三个存储介质430。申请人的方法此外还将奇偶校验状态标识符保持在第(i)个状态地址部分,即第三个存储介质的扇区300的状态地址320部分。在图4E所示的实施例中,所述奇偶校验状态标识符为″00″。因此在图4E所示的实施例中,数据状态标识符及奇偶校验状态标识符相对于写入存储介质410的扇区300的信息而言相同。
在图4F所示的实施例中,信息已写入扇区300,即第(i)个存储介质430的”第(m)个″扇区,其中(i)为3。在这种情况下,申请人的方法将数据状态标识符保持在第(i)个存储介质的第(m)个扇区的第(i)个状态地址部分330。在图4F所示的实施例中,所述数据状态标识符为“02”。申请人的方法将相应的第(m)个奇偶校验扇区保持在第(j)个存储介质上。在图4F所示的实施例中,(j)为1,即奇偶校验扇区300写入第一个存储介质410。申请人的方法此外还将奇偶校验状态标识符保持在第(i)个状态地址部分,即第一个存储介质的扇区300的状态地址330部分。在图4F所示的实施例中,所述奇偶校验状态标识符为″00″。因此在图4F所示的实施例中,数据状态标识符及奇偶校验状态标识符不同表明出现了撤销的写入。
再参照图2,在某些实施例中,申请人的方法定义了四种不同的奇偶校验状态,即状态0、状态1、状态2及状态3。在图2所示的实施例中,状态0分配为标识符″00″,状态1分配为标识符″01″,状态2分配为标识符″10″,状态3分配为标识符″11″。
利用申请人的方法,每次数据写入扇区300时,扇区300的数据状态标识符及奇偶校验标识符加1。一般地说,申请人的方法包括定义(N)状态。扇区300的第(i)个数据状态/奇偶校验状态加1包括给扇区300分配第(i+1)个数据状态及第(i+l)个奇偶校验状态,除非(i)等于(N-1)。如果(i)等于(N-1),则第(i)个数据状态/奇偶校验状态加1意味着设置(i)值等于0。例如其中(N)为4,状态0加1到状态1,状态1加1到状态2,状态2加1到状态3,状态3加1到状态0。
申请人的发明包括一种处理数据时检验数据完整性的方法。附图5概括了所述方法的实施例的写数据步骤。现参照附图5,在步骤510中,申请人的方法定义了(N)第一数据及奇偶校验状态和(M)第二数据及奇偶校验状态。(N)第一状态用在执行小于完整阵列宽度写入的时候。(M)第二状态用在执行完整阵列宽度写入的时候。
在某些实施例中,步骤510包括定义4种第一状态。在某些实施例中,所述4种第一状态相应于状态210(图2)、230(图2)、250(图2)及270(图2),其中所述4种第一状态分别分配标识符220、240、260及280。在某些实施例中,申请人的方法定义超过4种状态。在另一些实施例中,申请人的方法定义2种状态。在另一些实施例中,申请人的方法定义3种状态。
在某些实施例中,步骤510的(N)第一状态由信息存储和检索***的生产商定义,所述***例如***100(图1)。在其它实施例中,步骤510的(N)第一状态由信息存储和检索***的拥有者和/或操作员定义。在另一些实施例中,步骤510的(N)第一状态由主计算机定义,所述主计算机例如主计算机125(图1)。
在步骤520中,申请人的信息存储和检索***接收数据和写入将该数据写入目标扇区的命令,所述目标扇区即指定的逻辑块地址。在某些实施例中,步骤520通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
在步骤530中,申请人的方法确定了步骤520的写入命令是否包括完整阵列宽度的写入,即完整奇偶校验条纹。在某些实施例中,步骤530通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。如果申请人的方法在步骤530中确定了步骤520的写入命令包括完整阵列宽度的写入,那么该方法从步骤530转换到步骤532,其中所述方法随机地分配(M)第二状态中的一种状态既作为数据状态标识符又作为奇偶校验状态标识符。在某些实施例中,步骤532通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
申请人的方法从步骤532转换到步骤534,其中,所述方法写入步骤520中接收的数据,且将步骤532中分配的数据状态标识符写入指定的信息存储阵列。在某些实施例中,步骤534通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
在步骤536中,申请人的方法将步骤532中指定的奇偶校验状态标识符写入设置在申请人的信息存储阵列中的相应的奇偶校验块。在某些实施例中,步骤536通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
如果申请人的方法在步骤530中确定了步骤520的写入命令不包括完整阵列宽度的写入,那么所述方法从步骤530转换到步骤540,其中,所述方法读取每个目标扇区最后分配的数据状态标识符。这里参考的写入“目标扇区”或“该目标扇区”包括写入多于一个的目标扇区,其中写操作包括小于一个完整跨距的写入。在某些实施例中,步骤540通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
申请人的方法从步骤540转换到步骤550,其中,所述方法读取每个目标扇区最后分配的奇偶校验状态标识符。在某些实施例中,步骤550通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
申请人的方法从步骤550转换到步骤560,其中,所述方法将在步骤540中读取的用于每个目标扇区的数据状态标识符同在步骤550中读取的用于每个目标扇区的奇偶校验状态标识符进行比较。在某些实施例中,步骤560通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
如果申请人的方法在步骤560中确定了任一目标扇区的数据状态标识符和奇偶校验状态标识符不同,那么检测到撤销的写入。例如,在图4F所示的实施例中,数据状态标识符和奇偶校验状态标识符不同。如果数据状态标识符和奇偶校验状态标识符不同,那么申请人的方法从步骤560转换到步骤565,其中,所述方法生成错误记录。在某些实施例中,步骤565通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
或者,如果申请人的方法在步骤560中确定了每个目标扇区的数据状态标识符和奇偶校验状态标识符相同,那么申请人的方法转换从步骤560转换到步骤570。例如,在图4D所示的实施例中,数据状态标识符和奇偶校验状态标识符相同。
在步骤570中,申请人的方法将每个目标扇区的数据状态标识符加1,并保存加1的数据状态标识符。在某些实施例中,步骤570通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
在步骤580中,申请人的方法计算每个目标扇区的新的奇偶校验,并将每个目标扇区的奇偶校验状态标识符加1。在某些实施例中,步骤580通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
在步骤590中,申请人的方法将步骤520中接收的数据写入目标扇区的数据部分,且将每个目标扇区的加1的数据状态标识符写入目标扇区的元数据部分。在某些实施例中,步骤590通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
在步骤595中,申请人的方法将每个目标扇区的新的奇偶校验及每个目标扇区的加1的奇偶校验状态标识符写入每个目标扇区的奇偶校验块。在某些实施例中,步骤595通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
现在参照附图5和附图6,在某些实施例中,申请人的方法利用算法600编码。步骤610包括步骤540的元素。步骤620包括步骤550的元素。步骤630包括步骤560的元素。步骤640及650包括步骤570的元素。步骤660包括步骤580的元素。步骤670包括步骤590的元素。步骤680包括步骤595的元素。
申请人的方法还包括读取数据的实施例。现在参照附图7,在步骤710中,申请人的信息存储和检索***接收从目标扇区中读取数据的读取命令,所述目标扇区即指定的逻辑块地址。这里参考的读取“目标扇区”或“该目标扇区”包括读取多于一个的目标扇区。在某些实施例中,步骤710通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
在步骤720中,申请人的方法读取每个目标扇区最后分配的数据状态标识符。在某些实施例中,步骤720通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
申请人的方法从步骤720转换到步骤730,其中,所述方法读取每个目标扇区最后赋值的奇偶校验状态标识符。在某些实施例中,步骤730通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
申请人的方法从步骤730转换到步骤740,其中,所述方法将每个目标扇区的数据状态标识符和每个目标扇区的奇偶校验状态标识符进行比较。在某些实施例中,步骤740通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
如果申请人的方法在步骤740中确定了任一目标扇区的数据状态标识符和奇偶校验状态标识符不同,则检测到撤销的写入。如果任一目标扇区的数据状态标识符和奇偶校验状态标识符不同,那么申请人的方法从步骤740转换到步骤750,其中,所述方法生成错误记录。在某些实施例中,步骤740通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
或者,如果申请人的方法在步骤740中确定了所有目标扇区的数据状态标识符和奇偶校验状态标识符相同,那么申请人的方法从步骤740转换到步骤760,其中,所述方法提供请求信息。在某些实施例中,步骤760通过设置在申请人的信息存储和检索***中的处理器执行,例如处理器132(图1)。
图5所示的方法、图6所示的方法或图7所示的方法,可以被分别执行。在某些实施例中,图5和/或图6和/或图7中描述的单个步骤可以被组合、删去或重新排序。
在某些实施例中,申请人的发明包括存储器133(图1)中的指令,其中通过处理器132(图1)执行所述指令以执行图5中描述的步骤520、530、532、534、536、540、550、560、565、570、580、590及595,或执行图6中描述的步骤610至680,和/或执行图7中描述的步骤710至760。在其他实施例中,申请人的发明包括任何其他计算机程序产品中的指令,其中通过***100外部或内部的计算机执行所述指令以执行附图5中描述的步骤520、530、532、534、536、540、550、560、565、570、580、590及595,或执行图6中描述的步骤610至680,和/或执行图7中描述的步骤710至760。在任一情况下,指令可以被编码到信息存储介质,例如包括磁性信息存储介质、光学信息存储介质、电子信息存储介质等。申请人通过“电子存储介质”来指例如象PROM,EPROM,EEPROM,闪速PROM,压缩闪存,智能介质等设备。
尽管对本发明的优选实施方式已经进行了详细的阐述,应当清楚,对于本领域技术人员来说,对所述实施例的修改和调整是可能作出的,而不背离下述权利要求中所阐述的本发明的范围。
Claims (30)
1、一种在处理数据时检验数据完整性的方法,包括以下步骤:
提供信息存储阵列,所述信息存储阵列包括包含多个扇区的信息存储阵列;
定义(N)数据状态标识符及(N)奇偶校验状态标识符;
接收处理数据的命令,其中所述命令指定目标扇区,且其中所述目标扇区包括所述多个扇区之一;
确定分配给所述目标扇区的数据状态标识符,其中所述数据状态标识符包括所述(N)数据状态标识符之一;
确定分配给所述目标扇区的奇偶校验状态标识符,其中所述奇偶校验状态标识符包括所述(N)奇偶校验状态标识符之一;
比较所述数据状态标识符和所述奇偶校验状态标识符;
如果所述数据状态标识符及所述奇偶校验状态标识符相同,则在操作上执行所述命令;
如果所述数据状态标识符及所述奇偶校验状态标识符不同,则在操作上生成错误信息。
2、如权利要求1所述的方法,其中所述接收处理数据的命令的步骤还包括接收写入指令,所述方法还包括:
接收数据;
如果所述数据状态标识符及所述奇偶校验状态标识符相同,则在操作上执行以下步骤:
给所述目标扇区的所述数据状态标识符加1,其中所述加1的数据状态标识符包括所述(N)数据状态之一;
计算所述目标扇区新的奇偶校验;
将所述数据及所述加1的数据状态标识符写入所述目标扇区;
将所述奇偶校验状态标识符加1,其中所述加1的奇偶校验状态标识符包括所述(N)奇偶校验状态之一;
将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入所述信息存储阵列。
3、如权利要求2所述的方法,还包括以下步骤:
提供包括数据部分及元数据部分的目标扇区;
将所述数据写入所述数据部分;及
所述加1的数据状态标识符写入所述元数据部分。
4、如权利要求3所述的方法,还包括提供包括2个校验位的组的数据状态标识符的步骤。
5、如权利要求3所述的方法,还包括提供包括多于2个校验位的组的数据状态标识符的步骤。
6、如权利要求3所述的方法,其中所述信息存储阵列包括(R)存储介质,所述方法还包括以下步骤:
在所述元数据部分设置(R)数据状态地址;
将所述加1的数据状态标识符写入所述(R)数据状态地址之一。
7、如权利要求2所述的方法,还包括:
提供包括(R)存储介质的信息存储阵列,其中(R)等于或大于2;
提供包括多个奇偶校验块的信息存储阵列,其中所述多个奇偶校验块中的一个或多个写入每个所述(R)存储介质;
其中所述写入新的奇偶校验及加1的奇偶校验状态标识符的步骤还包括将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入所述多个奇偶校验块的一个或多个。
8、如权利要求7所述的方法,其中所述信息存储阵列包括(R)信息存储介质,所述方法还包括将所述数据及所述加1的数据状态标识符写入所述(R)信息存储介质的(R-1)的步骤。
9、如权利要求8所述的方法,还包括将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入所述剩余信息存储介质的步骤。
10、如权利要求1所述的方法,其中所述接收处理数据的命令的步骤还包括接收指定目标扇区的读取命令,所述方法还包括如果所述数据状态标识符及所述奇偶校验状态标识符相同,则提供从所述目标扇区读取的信息的步骤。
11、一种制品,包括包含多个扇区的信息存储阵列和计算机可用介质,所述计算机可用介质具有设置在其中的用于在处理数据时检验数据完整性的计算机可读程序代码,所述计算机可读程序代码包括计算机可读程序步骤的序列以实现:
接收处理数据的命令,其中所述命令指定目标扇区,且其中所述目标扇区包括所述多个扇区之一;
确定分配给所述目标扇区的数据状态标识符;
确定分配给所述目标扇区的奇偶校验状态标识符;
比较所述数据状态标识符和所述奇偶校验状态标识符;
如果所述数据状态标识符和所述奇偶校验状态标识符相同,则在操作上执行所述命令;
如果所述数据状态标识符和所述奇偶校验状态标识符不同,则在操作上生成错误信息。
12、如权利要求11所述的制品,所述计算机可读程序代码还包括计算机可读程序步骤序列以实现:
接收将数据写入目标扇区的写入命令;
接收所述数据;
如果所述数据状态标识符和所述奇偶校验状态标识符相同,则在操作上执行以下步骤:
给所述目标扇区的所述数据状态标识符加1,其中所述加1的数据状态标识符包括(N)预定的数据状态标识符之一;
计算所述目标扇区新的奇偶校验;
将所述数据及所述加1的数据状态标识符写入所述目标扇区;
将所述奇偶校验状态标识符加1,其中所述加1的奇偶校验状态标识符包括(N)预定的奇偶校验状态标识符之一;
将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入所述信息存储阵列。
13、如权利要求12所述的制品,其中所述数据状态标识符包括2个校验位的组。
14、如权利要求12所述的制品,其中所述数据状态标识符包括多于2个的校验位的组。
15、如权利要求12所述的制品,其中所述目标扇区包括元数据部分和数据部分,所述计算机可读程序代码还包括计算机可读程序步骤序列以实现:
将所述数据写入所述数据部分;及
将所述加1的数据状态标识符写入所述元数据部分。
16、如权利要求15所述的制品,其中所述信息存储阵列包括(R)存储介质,且其中元数据部分包括(R)数据状态地址,所述计算机可读程序代码还包括计算机可读程序步骤序列以实现将所述加1的数据状态标识符写入所述(R)数据状态地址之一。
17、如权利要求12所述的制品,其中所述信息存储阵列包括(R)存储介质及多个奇偶校验块,其中所述多个奇偶校验块的一个或多个被写入每个所述(R)存储介质,所述计算机可读程序代码还包括计算机可读程序步骤序列以实现将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入所述多个奇偶校验块的一个或多个。
18、如权利要求12所述的制品,其中所述信息存储阵列包括(R)存储介质,所述计算机可读程序代码还包括计算机可读程序步骤序列以实现将所述数据及所述加1的数据状态标识符写入所述(R)存储介质的(R-1)。
19、如权利要求18所述的制品,所述计算机可读程序代码还包括计算机可读程序步骤序列以实现将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入剩余信息存储介质。
20、如权利要求11所述的制品,所述计算机可读程序代码还包括计算机可读程序步骤序列以实现:
接收指定目标扇区的读取命令;
如果所述数据状态标识符及所述奇偶校验状态标识符相同,则在操作上提供从所述目标扇区中读取的信息。
21、一种可用于可编程计算机处理器的计算机程序产品,所述计算机程序产品具有体现于其中的计算机可读程序代码以利用包括(N)预定数据状态标识符、(N)预定奇偶校验状态标识符和包含多个扇区的信息存储阵列的信息存储和检索***来在处理数据时检验数据完整性,所述计算机程序产品包括:
使所述可编程的计算机处理器接收处理数据的命令的计算机可读程序代码,其中所述命令指定目标扇区,且其中所述目标扇区包括所述的多个扇区之一;
使所述可编程的计算机处理器确定分配到所述目标扇区的数据状态标识符的计算机可读程序代码,其中所述数据状态标识符包括所述(N)数据状态标识符之一;
使所述可编程的计算机处理器确定分配到所述目标扇区的奇偶校验状态标识符的计算机可读程序代码,其中所述奇偶校验状态标识符包括所述(N)奇偶校验状态标识符之一;
使所述可编程的计算机处理器将所述数据状态标识符和所述奇偶校验状态标识符进行比较的计算机可读程序代码;
如果所述数据状态标识符和所述奇偶校验状态标识符相同,使所述可编程的计算机处理器执行所述命令的计算机可读程序代码;
如果所述数据状态标识符和所述奇偶校验状态标识符不同,使所述可编程的计算机处理器生成错误消息的计算机可读程序代码。
22、如权利要求21所述的计算机程序产品,其中接收命令的所述计算机可读程序代码还包括使所述可编程计算机处理器接收将数据写入目标扇区的写入命令的计算机可读程序代码,所述计算机程序产品还包括:
使所述可编程计算机处理器接收所述数据的计算机可读程序代码;
如果所述数据状态标识符和所述奇偶校验状态标识符相同,使所述可编程计算机处理器执行以下操作的计算机可读程序代码:
将所述目标扇区的所述数据状态标识符加1,其中所述加1的数据状态标识符包括所述(N)数据状态标识符之一;
计算所述目标扇区的新的奇偶校验;
将所述数据及所述加1的数据状态标识符写入所述目标扇区;
将所述奇偶校验状态标识符加1,其中所述加1的奇偶校验状态标识符包括所述(N)奇偶校验状态标识符之一;
将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入所述信息存储阵列。
23、如权利要求21所述的计算机程序产品,其中所述目标扇区包括数据部分和元数据部分,所述计算机程序产品还包括:
使所述可编程计算机处理器将所述数据写入所述数据部分的计算机可读程序代码;及
使所述可编程计算机处理器将所述加1的数据状态标识符写入所述元数据部分的计算机可读程序代码。
24、如权利要求23所述的计算机程序产品,还包括使所述可编程计算机处理器产生包括2个校验位的组的加1的数据状态标识符的计算机可读程序代码。
25、如权利要求23所述的计算机程序产品,还包括使所述可编程计算机处理器产生包括多于2个校验位的组的加1的数据状态标识符的计算机可读程序代码。
26、如权利要求23所述的计算机程序产品,其中所述信息存储阵列包括(R)存储介质,且其中所述元数据部分包括(R)数据状态地址,所述计算机程序产品还包括使所述可编程计算机处理器将所述加1的数据状态标识符写入所述(R)数据状态地址之一的计算机可读程序代码。
27、如权利要求22所述的计算机程序产品,其中所述信息存储阵列包括(R)信息存储介质及写入每个所述(R)信息存储介质的多个奇偶校验块,所述计算机程序产品还包括使所述可编程计算机处理器将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入所述多个奇偶校验块的一个或多个的计算机可读程序代码。
28、如权利要求22所述的计算机程序产品,其中所述信息存储阵列包括(R)信息存储介质,所述计算机程序产品还包括使所述可编程计算机处理器将所述数据及所述加1的数据状态标识符写入所述(R)信息存储介质的(R-1)的计算机可读程序代码。
29、如权利要求28所述的计算机程序产品,还包括使所述可编程计算机处理器将所述新的奇偶校验及所述加1的奇偶校验状态标识符写入剩余信息存储介质的计算机可读程序代码。
30、如权利要求21所述的计算机程序产品,还包括:
使所述可编程计算机处理器接收指定一个目标扇区的读取命令的计算机可读程序代码;
如果所述数据状态标识符和所述奇偶校验状态标识符相同,使所述可编程计算机处理器提供从所述目标扇区读取的信息的计算机可读程序代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/995,873 | 2004-11-23 | ||
US10/995,873 US7454686B2 (en) | 2004-11-23 | 2004-11-23 | Apparatus and method to check data integrity when handling data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1779649A true CN1779649A (zh) | 2006-05-31 |
CN100390745C CN100390745C (zh) | 2008-05-28 |
Family
ID=36460838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101246777A Expired - Fee Related CN100390745C (zh) | 2004-11-23 | 2005-11-14 | 在处理数据时检验数据完整性的装置及方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7454686B2 (zh) |
CN (1) | CN100390745C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013181803A1 (en) * | 2012-06-06 | 2013-12-12 | Qualcomm Incorporated | Methods and systems for redundant data storage in a register |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0507912D0 (en) * | 2005-04-20 | 2005-05-25 | Ibm | Disk drive and method for protecting data writes in a disk drive |
US20070192819A1 (en) * | 2006-02-10 | 2007-08-16 | Lewis Scott W | System for distribution of media utilized with a receiver/set top box |
US9740552B2 (en) * | 2006-02-10 | 2017-08-22 | Percept Technologies Inc. | Method and system for error correction utilized with a system for distribution of media |
US8451850B2 (en) * | 2006-02-10 | 2013-05-28 | Scott W. Lewis | Method and system for distribution of media including a gigablock |
US8566894B2 (en) * | 2006-02-10 | 2013-10-22 | Scott W. Lewis | Method and system for distribution of media |
GB0623255D0 (en) * | 2006-11-22 | 2007-01-03 | Ibm | Apparatus and method for resource reclamation in data storage |
US8375177B2 (en) * | 2007-05-01 | 2013-02-12 | International Business Machines Corporation | Apparatus, system, and method for efficiently verifying writes |
US7752489B2 (en) * | 2007-05-10 | 2010-07-06 | International Business Machines Corporation | Data integrity validation in storage systems |
US8751859B2 (en) * | 2007-05-10 | 2014-06-10 | International Business Machines Corporation | Monitoring lost data in a storage system |
GB2462237B (en) * | 2007-06-04 | 2011-11-23 | Fujitsu Ltd | Packet switching system |
US7793167B2 (en) * | 2007-08-23 | 2010-09-07 | International Business Machines Corporation | Detection and correction of dropped write errors in a data storage system |
US7793168B2 (en) * | 2007-08-23 | 2010-09-07 | International Business Machines Corporation | Detection and correction of dropped write errors in a data storage system |
US7873878B2 (en) * | 2007-09-24 | 2011-01-18 | International Business Machines Corporation | Data integrity validation in storage systems |
US8176405B2 (en) * | 2007-09-24 | 2012-05-08 | International Business Machines Corporation | Data integrity validation in a computing environment |
US7908512B2 (en) * | 2008-03-05 | 2011-03-15 | International Business Machines Corporation | Method and system for cache-based dropped write protection in data storage systems |
US8667326B2 (en) | 2011-05-23 | 2014-03-04 | International Business Machines Corporation | Dual hard disk drive system and method for dropped write detection and recovery |
US9720627B2 (en) * | 2013-01-17 | 2017-08-01 | Western Digital Technologies, Inc. | Data management for a data storage device |
US9229813B2 (en) * | 2014-03-06 | 2016-01-05 | HGST Netherlands B.V. | Error correction with on-demand parity sectors in magnetic data storage devices |
US9710320B2 (en) | 2015-03-23 | 2017-07-18 | Microsoft Technology Licensing, Llc | Data processing validation |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4692893A (en) * | 1984-12-24 | 1987-09-08 | International Business Machines Corp. | Buffer system using parity checking of address counter bit for detection of read/write failures |
US5233618A (en) | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
US5223618A (en) * | 1990-08-13 | 1993-06-29 | Isis Pharmaceuticals, Inc. | 4'-desmethyl nucleoside analog compounds |
US5369758A (en) * | 1991-11-15 | 1994-11-29 | Fujitsu Limited | Checking for proper locations of storage devices in a storage array |
US5504858A (en) * | 1993-06-29 | 1996-04-02 | Digital Equipment Corporation | Method and apparatus for preserving data integrity in a multiple disk raid organized storage system |
US5878280A (en) * | 1993-09-23 | 1999-03-02 | Philips Electronics North America Corp. | Data buffering system for plural data memory arrays |
US5913927A (en) * | 1995-12-15 | 1999-06-22 | Mylex Corporation | Method and apparatus for management of faulty data in a raid system |
US6018778A (en) * | 1996-05-03 | 2000-01-25 | Netcell Corporation | Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory |
US5960169A (en) * | 1997-02-27 | 1999-09-28 | International Business Machines Corporation | Transformational raid for hierarchical storage management system |
US6606629B1 (en) * | 2000-05-17 | 2003-08-12 | Lsi Logic Corporation | Data structures containing sequence and revision number metadata used in mass storage data integrity-assuring technique |
US6553511B1 (en) * | 2000-05-17 | 2003-04-22 | Lsi Logic Corporation | Mass storage data integrity-assuring technique utilizing sequence and revision number metadata |
US6886108B2 (en) * | 2001-04-30 | 2005-04-26 | Sun Microsystems, Inc. | Threshold adjustment following forced failure of storage device |
-
2004
- 2004-11-23 US US10/995,873 patent/US7454686B2/en not_active Expired - Fee Related
-
2005
- 2005-11-14 CN CNB2005101246777A patent/CN100390745C/zh not_active Expired - Fee Related
-
2008
- 2008-09-04 US US12/204,673 patent/US20090006904A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013181803A1 (en) * | 2012-06-06 | 2013-12-12 | Qualcomm Incorporated | Methods and systems for redundant data storage in a register |
US9378098B2 (en) | 2012-06-06 | 2016-06-28 | Qualcomm Incorporated | Methods and systems for redundant data storage in a register |
Also Published As
Publication number | Publication date |
---|---|
US20090006904A1 (en) | 2009-01-01 |
US7454686B2 (en) | 2008-11-18 |
US20060109792A1 (en) | 2006-05-25 |
CN100390745C (zh) | 2008-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1779649A (zh) | 在处理数据时检验数据完整性的装置及方法 | |
CN101971148B (zh) | 选择用于数据存储库的重复删除协议 | |
US8839028B1 (en) | Managing data availability in storage systems | |
US10884889B2 (en) | Allocating part of a raid stripe to repair a second raid stripe | |
US9021335B2 (en) | Data recovery for failed memory device of memory device array | |
CN104011642B (zh) | 将擦除码数据分配到磁盘存储器的方法和装置 | |
US7814273B2 (en) | Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method | |
KR101821001B1 (ko) | Raid 어레이에서 장치내 데이터 보호 | |
CN100337209C (zh) | 容忍磁盘阵列中多个相关或任意双盘故障的方法和装置 | |
KR101824286B1 (ko) | 적응적 지오메트리를 구비한 raid 어레이에서의 복원 판독 | |
US20190129614A1 (en) | Load Balancing of I/O by Moving Logical Unit (LUN) Slices Between Non-Volatile Storage Represented by Different Rotation Groups of RAID (Redundant Array of Independent Disks) Extent Entries in a RAID Extent Table of a Mapped RAID Data Storage System | |
US10353787B2 (en) | Data stripping, allocation and reconstruction | |
CN101047010A (zh) | 用于最大化raid***中受保护数据量的方法和*** | |
JP5518201B2 (ja) | 最大n個までの記憶装置故障からの復旧を可能にするnウェイパリティ技術 | |
US8838889B2 (en) | Method of allocating raid group members in a mass storage system | |
US20060156059A1 (en) | Method and apparatus for reconstructing data in object-based storage arrays | |
US20060136778A1 (en) | Process for generating and reconstructing variable number of parity for byte streams independent of host block size | |
US11256447B1 (en) | Multi-BCRC raid protection for CKD | |
JP2006331076A (ja) | データ記憶システム及び記憶方法 | |
US20060031712A1 (en) | Method and system for calculating single and dual parity for networked storaged elements | |
US20190227872A1 (en) | Method, apparatus and computer program product for managing data storage in data storage systems | |
US20220107871A1 (en) | Creating and distributing spare capacity of a disk array | |
TWI607303B (zh) | 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 | |
KR101679303B1 (ko) | 비대칭 분산 파일 시스템 및 그 데이터 처리 방법 | |
EP2130129B1 (en) | System and method for increasing video server storage bandwidth |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080528 Termination date: 20181114 |