CA2098988A1 - Parity calculation in an efficient array of mass storage devices - Google Patents

Parity calculation in an efficient array of mass storage devices

Info

Publication number
CA2098988A1
CA2098988A1 CA002098988A CA2098988A CA2098988A1 CA 2098988 A1 CA2098988 A1 CA 2098988A1 CA 002098988 A CA002098988 A CA 002098988A CA 2098988 A CA2098988 A CA 2098988A CA 2098988 A1 CA2098988 A1 CA 2098988A1
Authority
CA
Canada
Prior art keywords
parity
data
old
drive
controller
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
Application number
CA002098988A
Other languages
French (fr)
Other versions
CA2098988C (en
Inventor
Michael H. Anderson
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.)
Shiva US Network Corp
Original Assignee
Michael H. Anderson
Micropolis Corporation
Streamlogic Corporation
Farrington Investments Ltd.
Intel Network Systems, Inc.
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 Michael H. Anderson, Micropolis Corporation, Streamlogic Corporation, Farrington Investments Ltd., Intel Network Systems, Inc. filed Critical Michael H. Anderson
Publication of CA2098988A1 publication Critical patent/CA2098988A1/en
Application granted granted Critical
Publication of CA2098988C publication Critical patent/CA2098988C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/1054Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity

Abstract

An efficient redundant array of mass storage devices includes a plurality of hard disk drives (22), a controller (20) or processor asso-ciated with each hard disk drive for calculating partial parity data and parity data; a host computer (12) and at least one bus (16) for communications between the host computer (12) and the plurality of hard disk drives (22). "The controller (20) of a drive calculates the par-tial parity which is the Exclusive Or function of the old data and the new data which is to be stored into the drive (22). New data is written to fhe location in the disk drive from which the old data was obtained.
The partial parity data is transferred to the Controller (20) of another drive which contains the old parity data for the location to which the new data was written; and that controller calculates the new parity which is the Exclusive Or of the partial parity and the old parity. The new parity is written to the location on that disk drive which formerly held the old parity:
CA002098988A 1991-02-20 1992-02-18 Parity calculation in an efficient array of mass storage devices Expired - Lifetime CA2098988C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/658,317 US5191584A (en) 1991-02-20 1991-02-20 Mass storage array with efficient parity calculation
US658,317 1991-02-20
PCT/US1992/001257 WO1992015057A1 (en) 1991-02-20 1992-02-18 Parity calculation in an efficient array of mass storage devices

Publications (2)

Publication Number Publication Date
CA2098988A1 true CA2098988A1 (en) 1992-08-21
CA2098988C CA2098988C (en) 2003-02-11

Family

ID=24640749

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002098988A Expired - Lifetime CA2098988C (en) 1991-02-20 1992-02-18 Parity calculation in an efficient array of mass storage devices

Country Status (5)

Country Link
US (1) US5191584A (en)
EP (1) EP0572564B1 (en)
CA (1) CA2098988C (en)
DE (1) DE69227896T2 (en)
WO (1) WO1992015057A1 (en)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04184634A (en) * 1990-11-20 1992-07-01 Matsushita Electric Ind Co Ltd Microcomputer
DE69133216T2 (en) * 1990-11-09 2003-12-18 Seagate Technology Llc Disk drive control architecture with multiple microcontrollers
JP2913917B2 (en) 1991-08-20 1999-06-28 株式会社日立製作所 Storage device and storage device system
US5522065A (en) * 1991-08-30 1996-05-28 Compaq Computer Corporation Method for performing write operations in a parity fault tolerant disk array
US5506977A (en) * 1991-12-17 1996-04-09 Dell Usa, L.P. Method and controller for minimizing reads during partial stripe write operations to a disk drive
US5287462A (en) * 1991-12-20 1994-02-15 Ncr Corporation Bufferless SCSI to SCSI data transfer scheme for disk array applications
US5337322A (en) * 1992-03-02 1994-08-09 Acer Incorporated Method of processing stored data containing parity data
US5398253A (en) * 1992-03-11 1995-03-14 Emc Corporation Storage unit generation of redundancy information in a redundant storage array system
US5724539A (en) * 1992-03-19 1998-03-03 Digital Equipment Corporation System for selectively storing stripes of data in tracks of disks so that sum of transfer rates of stripes match communication bandwidth to host
WO1994003857A1 (en) * 1992-08-10 1994-02-17 Advanced Logic Research, Inc. Computer interface for concurrently performing plural seeks on plural disk drives
DE4309148A1 (en) * 1993-03-22 1994-09-29 Siemens Nixdorf Inf Syst Disk array with load balancing
US5617425A (en) * 1993-05-26 1997-04-01 Seagate Technology, Inc. Disc array having array supporting controllers and interface
JP3264465B2 (en) * 1993-06-30 2002-03-11 株式会社日立製作所 Storage system
US5530948A (en) * 1993-12-30 1996-06-25 International Business Machines Corporation System and method for command queuing on raid levels 4 and 5 parity drives
CA2134016A1 (en) * 1994-01-07 1995-07-08 Peter B. Bandy Data storage device and method of operation
WO1995026103A1 (en) * 1994-03-18 1995-09-28 Micropolis Corporation On-demand video server system
JPH07281840A (en) * 1994-04-14 1995-10-27 Ibm Japan Ltd Dual-disk recording device
US5519435A (en) * 1994-09-01 1996-05-21 Micropolis Corporation Multi-user, on-demand video storage and retrieval system including video signature computation for preventing excessive instantaneous server data rate
JP3661205B2 (en) * 1994-09-09 2005-06-15 株式会社日立製作所 Disk array system and method for generating parity data of disk array system
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks
US5634033A (en) * 1994-12-16 1997-05-27 At&T Global Information Solutions Company Disk array storage system architecture for parity operations simultaneous with other data operations
US5745671A (en) * 1995-02-28 1998-04-28 International Business Machines Corporation Data storage system with localized XOR function
US5630054A (en) * 1995-04-18 1997-05-13 Mti Technology Center Method and apparatus for storing and retrieving error check information
US5862312A (en) * 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6484269B1 (en) * 1995-11-09 2002-11-19 Emc Corporation Data storage system and method with improved data integrity value calculation
US5742752A (en) * 1995-12-29 1998-04-21 Symbios Logic Inc. Method for performing a RAID stripe write operation using a drive XOR command set
DE69621214T2 (en) * 1996-01-31 2002-12-05 Toshiba Kawasaki Kk I / O control procedure with recovery function
US6161165A (en) * 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly
JP3133004B2 (en) * 1996-11-21 2001-02-05 株式会社日立製作所 Disk array device and control method therefor
US5946707A (en) * 1997-02-28 1999-08-31 Adaptec, Inc. Interleaved burst XOR using a single memory pointer
US5968182A (en) * 1997-05-12 1999-10-19 International Business Machines Corporation Method and means for utilizing device long busy response for resolving detected anomalies at the lowest level in a hierarchical, demand/response storage management subsystem
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6704838B2 (en) 1997-10-08 2004-03-09 Seagate Technology Llc Hybrid data storage and reconstruction system and method for a data storage device
US6430701B1 (en) 1998-01-27 2002-08-06 Aiwa Co., Ltd. Data recording and reproducing method and apparatus using plurality of data recording and reproducing units, and computer-readable recording medium
US6343343B1 (en) 1998-07-31 2002-01-29 International Business Machines Corporation Disk arrays using non-standard sector sizes
US6986097B1 (en) * 2002-02-21 2006-01-10 Ciena Corporation Method and apparatus for generating parity bits in a forward error correction (FEC) system
US6971042B2 (en) * 2002-04-18 2005-11-29 Huge Systems, Inc. Media server with single chip storage controller
US6950894B2 (en) * 2002-08-28 2005-09-27 Intel Corporation Techniques using integrated circuit chip capable of being coupled to storage system
US20040059954A1 (en) * 2002-09-20 2004-03-25 Rainer Hoehler Automatic low power state entry
US7017017B2 (en) 2002-11-08 2006-03-21 Intel Corporation Memory controllers with interleaved mirrored memory modes
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US6944733B2 (en) * 2002-12-11 2005-09-13 Intel Corporation Data storage using wireless communication
US7418646B2 (en) * 2004-03-02 2008-08-26 Intel Corporation Integrated circuit using wireless communication to store and/or retrieve data and/or check data
US7496785B2 (en) * 2006-03-21 2009-02-24 International Business Machines Corporation Enclosure-based raid parity assist
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
KR101375955B1 (en) * 2006-05-12 2014-03-18 애플 인크. Distortion estimation and cancellation in memory devices
KR101202537B1 (en) 2006-05-12 2012-11-19 애플 인크. Combined distortion estimation and error correction coding for memory devices
WO2007132452A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
WO2008026203A2 (en) * 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
CN101601094B (en) * 2006-10-30 2013-03-27 苹果公司 Reading memory cells using multiple thresholds
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) * 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7706182B2 (en) * 2006-12-03 2010-04-27 Anobit Technologies Ltd. Adaptive programming of analog memory cells using statistical characteristics
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7751240B2 (en) * 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US8369141B2 (en) * 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) * 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) * 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
WO2009050703A2 (en) * 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009063450A2 (en) * 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) * 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) * 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) * 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US7924613B1 (en) * 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) * 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
WO2010137178A1 (en) 2009-05-25 2010-12-02 Hitachi,Ltd. Storage subsystem
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8458515B1 (en) * 2009-11-16 2013-06-04 Symantec Corporation Raid5 recovery in a high availability object based file system
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
GB201003407D0 (en) * 2010-03-01 2010-04-14 Extas Global Ltd Distributed storage and communication
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
EP2831735A1 (en) 2012-04-27 2015-02-04 Hitachi, Ltd. Storage system and storage apparatus
EP2823398A1 (en) 2012-04-27 2015-01-14 Hitachi, Ltd. Storage system and storage control apparatus
US20150113204A1 (en) * 2013-10-17 2015-04-23 National Chiao Tung University Data storage device and computing system with the same
WO2018229944A1 (en) * 2017-06-15 2018-12-20 株式会社日立製作所 Storage system and storage system control method
US20190034306A1 (en) * 2017-07-31 2019-01-31 Intel Corporation Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs
KR20200122407A (en) 2018-03-16 2020-10-27 마이크론 테크놀로지, 인크. NAND data placement schema
CN112074816A (en) * 2018-03-16 2020-12-11 美光科技公司 Cluster parity for NAND data placement mode
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3789204A (en) * 1972-06-06 1974-01-29 Honeywell Inf Systems Self-checking digital storage system
US3887901A (en) * 1974-04-29 1975-06-03 Sperry Rand Corp Longitudinal parity generator for mainframe memories
US4016409A (en) * 1976-03-01 1977-04-05 Burroughs Corporation Longitudinal parity generator for use with a memory
US4433388A (en) * 1980-10-06 1984-02-21 Ncr Corporation Longitudinal parity
US4849978A (en) * 1987-07-02 1989-07-18 International Business Machines Corporation Memory unit backup using checksum
US4870643A (en) * 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US5007053A (en) * 1988-11-30 1991-04-09 International Business Machines Corporation Method and apparatus for checksum address generation in a fail-safe modular memory
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access

Also Published As

Publication number Publication date
US5191584A (en) 1993-03-02
EP0572564B1 (en) 1998-12-16
WO1992015057A1 (en) 1992-09-03
DE69227896T2 (en) 1999-06-02
EP0572564A1 (en) 1993-12-08
DE69227896D1 (en) 1999-01-28
CA2098988C (en) 2003-02-11
EP0572564A4 (en) 1994-02-16

Similar Documents

Publication Publication Date Title
CA2098988A1 (en) Parity calculation in an efficient array of mass storage devices
GB9226725D0 (en) Cache system for disk array
US7370145B2 (en) Write back method for RAID apparatus
US7526624B2 (en) Apparatus and method to adjust data transfer rate
EP0639811A3 (en) Memory systems with data storage redundancy management
EP0722141A2 (en) Failure prediction for disk arrays
EP0871120A3 (en) Method of storing data in a redundant group of disks and redundant array of disks
DE69324974D1 (en) Optimized line recognition for redundant disk array
JPH08212018A (en) Method and apparatus for dynamic extension of raid
AU6671098A (en) Fly-by xor
CA2089836A1 (en) High availability disk arrays
Menon et al. Comparison of sparing alternatives for disk arrays
EP0686907A3 (en) Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
EP1324200A3 (en) Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
CA2172075A1 (en) Computer method and apparatus for asynchronous ordered operations
KR0162124B1 (en) System and method for command queuing on raid levels 4 and 5 parity drives
EP0167093A3 (en) Multiple system disk
EP0320107A3 (en) Parallel disk drive array storage system
EP0364176A3 (en) System and method for formatting high density storage media
EP0594464A3 (en) Method of operating a data storage disk array
JPH10105344A (en) Data recorder system and data write method therefor
MY114751A (en) Method for simulating a computer storage device
CA2218296A1 (en) Method and apparatus for storing and retrieving error check information
CN1607515A (en) Apparatus and method to select a captain from a plurality of control nodes
MY113983A (en) An improved data storage device and method of operation

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry