Method and apparatus for storing a data to memory devices

Information

  • Patent Application
  • 20070150652
  • Publication Number
    20070150652
  • Date Filed
    September 28, 2006
    17 years ago
  • Date Published
    June 28, 2007
    16 years ago
Abstract
A method and apparatus for enhancing performance of parity check in computer readable media is provided. For example, in a RAID (N+1) configuration, a virtual data strip is added for a calculation of parity. Data of the virtual data strip is set so that a predetermined portion of a data area in the virtual data strip has a predetermined value. Consequently, performance of parity check performed in a data processing system having a RAID configuration can be enhanced.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates a format of a phantom block, according to an embodiment of the present invention.



FIG. 2 illustrates a state of each disk device in a stripe, according to an embodiment of the present invention.



FIG. 3 is a diagram illustrating a state in which a phantom block is used in FIG. 2, according to an embodiment of the present invention.



FIG. 4 is a diagram illustrating a calculation method according to an embodiment of the present invention.



FIG. 5 illustrates an example of a system configuration for implementing an embodiment of the present invention.



FIG. 6 illustrates an example of a format of a block of data, according to an embodiment of the present invention.



FIG. 7 illustrates an example of a BCC structure, according to an embodiment of the present invention.



FIG. 8 illustrates RAID 1.



FIG. 9A illustrates RAID 5.



FIG. 9B illustrates a state in which a plurality of stripes in RAID 5 can be managed, according to an embodiment of the present invention.



FIG. 10 illustrates a relationship between addresses and data.



FIG. 11 illustrates a relationship between a strip and a stripe.



FIG. 12 illustrates a generation procedure of a parity strip.



FIG. 13 illustrates an exclusive OR (XOR) operation.



FIG. 14 illustrates a calculation procedure of a parity block ID, when N is an odd number.



FIG. 15 illustrates a case in which a phantom strip is added.



FIG. 16 is a flowchart for creating parity data, according to an embodiment of the present invention.


Claims
  • 1. A method of storing data and corresponding parity data in a plurality of storage devices, said data distributed into a plurality of data strips stored in said storage devices, respectively, the method comprising: calculating a parity data based on the data stored in said storage devices;determining whether said calculated parity data coincides with a predetermined value; andstoring an alternative parity data instead of said calculated parity data into one of said storage devices storing the parity data, when said calculated parity data coincide with said predetermined value.
  • 2. The method of according to claim 1, wherein the predetermined value is “0” of all bits.
  • 3. The method of according to claim 1, wherein the predetermined value is “1” of all bits.
  • 4. The method of according to claim 1, wherein a part of bits of the alternative parity data is “1”.
  • 5. An apparatus, comprising: a plurality of computer readable media to store data and corresponding parity data, said data distributed among a plurality of data strips stored in said computer readable media, respectively; andcalculating a parity data based on the data stored in said storage devices;determining whether said calculated parity data coincides with a predetermined value; andstoring an alternative parity data instead of said calculated parity data into one of said storage devices storing the parity data, when said calculated parity data coincide with said predetermined value.
  • 6. The apparatus according to claim 5, further comprising a settable register to store an initial value of the predetermined value.
  • 7. The apparatus of according to claim 6, wherein the predetermined value is “0” of all bits.
  • 8. The apparatus of according to claim 6, wherein the predetermined value is “1” of all bits.
  • 9. The apparatus of according to claim 6, wherein the predetermined parity data is “1” of a part of bits.
  • 10. The apparatus according to claim 5, further comprising a settable register storing a phantom data, and the process of the programmed processor further comprises: changing the phantom data to an alternative phantom data;calculating the alternative parity data based upon the data stored in the storage devices and the alternative phantom data; andstoring the alternative parity data in the parity storage device.
  • 11. The apparatus according to claim 10, wherein the alternative phantom data has a value other than all zeros or all ones.
  • 12. The apparatus according to claim 11, wherein the changing of the phantom data comprises setting a lower portion of the phantom data to all ones.
  • 13. The apparatus according to claim 12, wherein the changing of the phantom data comprising appending information about the alternative phantom data to the alternative parity data.
  • 14. The apparatus according to claim 13, wherein the data is a block of data comprising a data area portion, a cyclic redundancy check (CRC) portion and a block identifier portion, and the information about the phantom data is appended to the block ID portion of the alternative parity data.
  • 15. An apparatus, comprising: a plurality of computer readable media to store data and corresponding parity data among a plurality of data strips stored in the computer readable media;means for calculating the parity data based on the data to be stored in the computer readable media;means for changing the calculated parity data to an alternative parity data, according a value condition of the calculated parity data; andmeans for storing and/or reading the data and the corresponding alternative parity data and/or the calculated parity data to and/from the computer readable media.
Priority Claims (1)
Number Date Country Kind
2005-376838 Dec 2005 JP national