Storage device array architecture with copyback cache

Share
Save
Discuss
Claim

Share On Facebook Share On Twitter Share By Email
Save Item
Save Item
Add to
my lists

Filing Information

  • Patent Number: US5911779
  • Application Number: US8825625
  • Filing date: 03/31/1997
  • Issue date: 06/15/1999
  • Predicted expiration date: 01/04/2011
Explore Your Innovation Network™ for an introduction to:

Innovation Network Your First Name:
Last Name:
 
Already a member? Sign In
  • U.S. Classifications: 714/6  · 711/114  ·
  • International Classifications: G06F 1110 ·
  • International Classifications: 395182.04;441;182.05;182.07;440;182 ·
  • Related U.S. Application Data:
    RELATED APPLICATION
    This application is a continuation of application Ser. No. 08/579,545 for IMPROVED STORAGE DEVICE ARRAY ARCHITECTURE WITH COPYBACK CACHE, filed Dec. 27, 1995, to issue Apr. 1, 1997 as U.S. Pat. No. 5,617,530. Ser. No. 08/579,545 was a continuation of Ser. No. 08/112,791, filed Aug. 26, 1993, now U.S. Pat. No. 5,526,482. Ser. No. 08/112,791 was a continuation-in-part of application Ser. No. 07/638,167 of William A. Brant, filed Jan. 4, 1991, entitled Storage Device Array Architecture With Copyback Cache, now U.S. Pat. No. 5,274,799.
  • View document at: (opens new window):
    USPTO  ·  PAIR  ·  esp@cenet  ·  Patent Family
    * Related patent documents may or may not exist on these sites
25 Claims, No Drawings


Abstract

A fault-tolerant storage device array using a copyback cache storage unit for temporary storage. When a Write occurs to the RAID system, the data is immediately written to the first available location in the copyback cache storage unit. Upon completion of the Write to the copyback cache storage unit, the host CPU is immediately informed that the Write was successful. Thereafter, further storage unit accesses by the CPU can continue without waiting for an error-correction block update for the data just written. In a first embodiment of the invention, Read-Modify-Write operations are performed during idle time. In a second embodiment of the invention, normal Read-Modify-Write operation by the RAID system controller continue use Write data in the controller's buffer memory. In a third embodiment, at least two controllers, each associated with one copyback cache storage unit, copy Write data from controller buffers to the associated copyback cache storage unit. If a copyback cache storage unit fails, more than one controller share a single copyback storage unit. In a fourth embodiment, Write data is copied from a controller buffer to a reserved area of each storage unit comprising the array.

References Cited

U.S. Patent Documents

Document NumberAssigneesInventorsIssue/Pub Date
US3893178 INFORMATION STORAGE SYSTEMS Sordello Jul 1975
US4092732 International Business Machines Corporation Ouchi May 1978
US4430701 International Business Machines Corporation Christian et al. Feb 1984
US4467421 Storage Technology Corporation White Aug 1984
US4562576 International Computers Limited Ratcliffe Dec 1985
US4593354 Tokyo Shibaura Denki Kabushiki Kaisha Ushiro Jun 1986
US4604750 Digital Equipment Corporation Manton Aug 1986
US4667326 Advanced Micro Devices, Inc. Young et al. May 1987
US4722085 Unisys Corp. Flora et al. Jan 1988
US4733396 Kabushiki Kaisha Toshiba Baldwin Mar 1988
US4754397 Tandem Computers Incorporated Varaiya et al. Jun 1988
US4761785 International Business Machines Corporation Clark et al. Aug 1988
US4768193 Fujitsu Limited Takemae Aug 1988
US4775978 Magnetic Peripherals Inc. Hartness Oct 1988
US4791642 Amdahl Corporation Taylor Dec 1988
US4817035 Cii Honeywell Bull Timsit Mar 1989
US4849929 Cii Honeywell Bull (Societe Anonyme) Timsit Jul 1989
US4870643 Micropolis Corporation Bultman et al. Sep 1989
US4899342 Thinking Machines Corporation Potter et al. Feb 1990
US4914656 Storage Technology Corporation Dunphy, Jr. et al. Apr 1990
US4920539 Prime Computer, Inc. Albonesi Apr 1990
US4958351 Unisys Corp. Flora Sep 1990
US4993030 Amdahl Corporation Krakauer et al. Feb 1991
US4995041 Digital Equipment Corporation Hetherington Feb 1991
US5058116 International Business Machines Corporation Chao Oct 1991
US5185876 Micro Technology, Inc. Nguyen et al. Feb 1993
US5274799 Array Technology Corporation Brant et al. Dec 1993
US5341381 Tandem Computers, Incorporated Fuller Aug 1994
US5398253 EMC Corporation Gordon Mar 1995
US5548711 EMC Corporation Brant et al. Aug 1996

Foreign Patent Documents

Document NumberAssigneesInventorsIssue/Pub Date
EP0416968FUJITSU LIMITEDAug 1990
JP59153251TOSHIBA CORPSep 1984
JP62110902MULTI GIKEN KKMay 1987
WO20WO89909468Oct 1989

Other Publications

Patterson, D.A., Gibson, G., and Katz, H.; A Case For Redundant Arrays of Inexpensive Disks (RAID) (Jun. 1, 1988).
Lee, E.K.; Software and Performance Issues in the Implementation of a RAID Prototype (May 1990).
Chen, P., Gibson, G., Katz, R.H., Patterson, D.A., and Schulze, M.; Introduction to Redundant Arrays of Inexpensive Disks (RAID) (Dec. 1988).
Chen, P., Gibson, G., Katz, R.H., Patterson, D.A., and Schulze, M., et al.; Evolution of the Raid 2 Architecture (Jun. 12, 1990).
Chen, P., Gibson, G., Katz, R.h., Patterson, D.A., and Schulze, M.; How Reliable is RAID? (Feb. 1988).
Maximum Strategy, Inc., San Jose, CA; Strategy 2 Disk Array Controller Operation Manual (Nov. 2, 1988).
Maximum Strategy, Inc., San Jose, CA; Strategy 1 Disk Array Controller Operation Manual (Date Unknown).
Gibson, G.A., Performance and Reliability in Redundant Arrays of Inexpensive Disks (Date Unknown).
Chen, P., An Evaluaiton of Redundant Arrays of Disks Using an Amdahl 5890; (May 1989).
Katz, R.H., Gibson, G.A. and Patterson, D.A.; Disk System Architectures for High Performance Computing (Mar. 1989).
Gray, J., Horst, B., and Walker, M.; Parity Striping and Disc Arrays: Low-Cost Reliable Storage with Acceptable Throughput (Jan. 1990).
Schultz, M.E.; Considerations in the Design of Raid Prototype (Aug. 1988).
Clark and Corrigan; IBM Systems Journal, vol. 28, No. 3, 1989.
Schulze, M., et al.; "How Reliable is RAID?"; COMPCOM, Spring 1989, pp. 1-12.
Ousterhout, J., and Douglis, F., Beating the I/O Bottleneck: A Case for Log-Structured File Systems (Aug. 4, 1988).

Referenced By

Document NumberAssigneeInventorsIssue/Pub Date
US6170067Micron Technology, Inc.Ji-hwan Liu et al.Jan 2001
US6154835Micron Electronics, Inc.Michael Chrabaszcz et al.Nov 2000
US6606690Hewlett-Packard Development Company, L.P.Michael PadovanoAug 2003
US6804819Hewlett-Packard Development Company, L.P.John W. Bates et al.Oct 2004
US7380059Pillar Data Systems, Inc.David Alan BurtonMay 2008
US6253334Micron Electronics, Inc.Carlton G. Amdahl et al.Jun 2001
US6192434Micron Electronics, INCWalter August Wallach et al.Feb 2001
US6330642Bull HN Informatin Systems Inc.Daniel CarteauDec 2001
US6484226Micron Technology, Inc.Walter August Wallach et al.Nov 2002
US6282673Micron Technology, Inc.Ji-hwan Liu et al.Aug 2001
US7392347Hewlett-Packard Development Company, L.P.Theodore C. BriggsJun 2008
US7559088NETAPP, Inc.Gavin David Cohen et al.Jul 2009
US7562188Intel CorporationJoseph S. CavalloJul 2009
US7487009Netapp, Inc.Don Alvin Trimmer et al.Feb 2009
US6249828Micron Electronics, Inc.Walter August Wallach et al.Jun 2001
US6247079Micron Electronics, INCStephen E. J. Papa et al.Jun 2001
US6332202Micron Technology, Inc.Tahir Q. Sheikh et al.Dec 2001
US6697963Micron Technology, Inc.Ahmad Nouri et al.Feb 2004
US6629199EMC CorporationNatan Vishlitzky et al.Sep 2003
US7263570Micron Technology, Inc.Stephen E. J. Papa et al.Aug 2007
US7386610Hewlett-Packard Development Company, L.P.Nicos A. VekiaridesJun 2008
US6330690Micron Electronics, Inc.Ahmad Nouri et al.Dec 2001
US6243773Micron Electronics, Inc.Mallikarjunan MahalingamJun 2001
US6532549Hitachi, Ltd.Akira Yamamoto et al.Mar 2003
US6598173Micron Technology, Inc.Tahir Q. Sheikh et al.Jul 2003
US6973537EMC CorporationMichael Kowalchik et al.Dec 2005
US7197599Intel CorporationFrancis R. CorradoMar 2007
US7437387Netapp, Inc.Gavin David Cohen et al.Oct 2008
US7392458International Business Machines CorporationCarl Edward Forhan et al.Jun 2008
US6145091Ltd. HitachiAkira Yamamoto et al.Nov 2000
US6327673Hitachi, Ltd.Akira Yamamoto et al.Dec 2001
US6523131Micron Technology, Inc.Bruce Findlay et al.Feb 2003
US6865717International Business Machines CorporationBryan John WrightMar 2005
US6977927Hewlett-Packard Development Company, L.P.John W. Bates et al.Dec 2005
US7321905International Business Machines CorporationJeffrey R. Hartline et al.Jan 2008
US7401198NetAppCraig Anthony Johnston et al.Jul 2008
US7567993Netapp, Inc.Don Alvin Trimmer et al.Jul 2009
US7581118Netapp, Inc.William P. McGovernAug 2009
US6202111Micron Electronics, Inc.Walter August Wallach et al.Mar 2001
US6205503Mallikarjunan MahalingamMar 2001
US6247080Micron Electronics, Inc.Walter August Wallach et al.Jun 2001
US6272648Micron Electronics, Inc.Bruce Findlay et al.Aug 2001
US6484225Micron Technology, Inc.Tahir Q. Sheikh et al.Nov 2002
US7228381Hewlett-Packard Development Company, LPMustafa Uysal et al.Jun 2007
US7318119International Business Machines CorporationClaudio Matthias Fleiner et al.Jan 2008
US7370226Micron Technology, Inc.Bruce Findlay et al.May 2008
US7454529Netapp, Inc.Roger Keith Stager et al.Nov 2008
US6249885Karl S. Johnson et al.Jun 2001
US6324608Micron ElectronicsStephen E. J. Papa et al.Nov 2001
US6604207Micron Technology, Inc.Tahir Q. Sheikh et al.Aug 2003
US6757839Hitachi, Ltd.Akira Yamamoto et al.Jun 2004
US7325159Network Appliance, Inc.Roger Keith Stager et al.Jan 2008
US7437492Netapp, IncRoger Stager et al.Oct 2008
US7392428International Business Machines CorporationCarl Edward Forhan et al.Jun 2008
US7444550Micron Technology, Inc.Bruce Findlay et al.Oct 2008
US7315965Network Appliance, Inc.Roger Keith Stager et al.Jan 2008
US6170028Micron Electronics, Inc.Walter August Wallach et al.Jan 2001
US6212585Micron Electronics, Inc.Michael ChrabaszczApr 2001
US6263387Micron Electronics, Inc.Michael ChrabaszczJul 2001
US6195717Micron Electronics, Inc.Michael G. Henderson et al.Feb 2001
US6499073Micron Electronics, Inc.Walter A. Wallach et al.Dec 2002
US6895526Micron Technology, Inc.Bruce Findlay et al.May 2005
US6922752Hewlett-Packard Development Company, L.P.Mustafa Uysal et al.Jul 2005
US7159139EMC CorporationNatan Vishlitzky et al.Jan 2007
US7490103NetApp, Inc.Roger Keith Stager et al.Feb 2009
US7502886EMC CorporationMichael Kowalchik et al.Mar 2009
US6175490Micron Electronics, Inc.Stephen E. J. Papa et al.Jan 2001
US6189109Micron Electronics, Inc.Tahir Q. Sheikh et al.Feb 2001
US6421746Micron Electronics, Inc.Tahir Q. Sheikh et al.Jul 2002
US6418492Micron ElectronicsStephen E. J. Papa et al.Jul 2002
US6874101Hitachi, Ltd.Akira Yamamoto et al.Mar 2005
US6769088Maxtor CorporationLih-Jyh WengJul 2004
US7065600Micron Technology, Inc.Stephen E. J. Papa et al.Jun 2006
US7017078Koninklijke Philips Electronics N.V.Emmanuel David Lucas Michael FrimoutMar 2006
US7426617Network Appliance, Inc.Roger Keith Stager et al.Sep 2008
US7451343Micron Technology, Inc.Bruce Findlay et al.Nov 2008
US6249834Micron Technology, Inc.Michael G. Henderson et al.Jun 2001
US6134668Micron Electronics, Inc.Tahir Q. Sheikh et al.Oct 2000
US6202160Micron Electronics, Inc.Tahir Q. Sheikh et al.Mar 2001
US6173346Micron Electronics, Inc.Walter August Wallach et al.Jan 2001
US6269417Micron Technology, Inc.Mallikarjunan MahalingamJul 2001
US6292905Micron Technology, Inc.Walter A. Wallach et al.Sep 2001
US6742069Micron Technology, Inc.Stephen E. J. Papa et al.May 2004
US6996668Seagate Technology LLCMark A. Gaertner et al.Feb 2006
US7441146Intel CorporationJoseph S. CavalloOct 2008
US7552364Micron Technology, Inc.Karl S. Johnson et al.Jun 2009
US7487394International Business Machines CorporationCarl Edward Forhan et al.Feb 2009
US6163853Micron Electronics, Inc.Bruce Findlay et al.Dec 2000
US6223234Micron Electronics, Inc.Mallikarjunan MahalingamApr 2001
US6341322Micron Electronics, Inc.Ji-hwan Liu et al.Jan 2002
US6363497Micron Technology, Inc.Michael ChrabaszczMar 2002
US6304929Micron Electronics, Inc.Walter August Wallach et al.Oct 2001
US6678462Sony CorporationShuichi ChiharaJan 2004
US7318121Seagate Technology LLCMark A. Gaertner et al.Jan 2008
US7320089Hitachi, Ltd.Akira Yamamoto et al.Jan 2008
US7444537Micron Technology, Inc.Bruce Findlay et al.Oct 2008
US7370225Micron Technology, Inc.Bruce Findlay et al.May 2008
US6163825Micron Electronics, Inc.Walter August Wallach et al.Dec 2000
US6199173Micron Electronics, Inc.Karl S. Johnson et al.Mar 2001
US6179486Micron Electronics, Inc.Walter August Wallach et al.Jan 2001

Patent Family

The current document is not in a family.

Read Patent

Read patent

View Drawings


Independent Claims | See all claims (25)

  1. 1. A fault-tolerant storage device array including:a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks;b. at least one copyback cache storage unit for temporarily storing data blocks; andc. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for:(1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks;(2) during idle time of at least some of the plurality of storage units:(a) reading at least one pending data block from at least one copyback cache storage unit;(b) accessing the storage units and reading information corresponding to each read pending data block;(c) generating an associated error-correction block from the read information and each read pending data block; and(d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and(3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
  2. 5. A fault-tolerant storage device array including:a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks;b. at least one copyback cache storage unit for temporarily storing data blocks, at least one of said at least one copyback cache storage unit being non-volatile; andc. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for:(1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks;(2) during idle time of at least some of the plurality of storage units:(a) reading at least one pending data block from at least one copyback cache storage unit;(b) accessing the storage units and reading information corresponding to each read pending data block;(c) generating an associated error-correction block from the read information and each read pending data block; and(d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units.
  3. 9. A fault-tolerant storage device array including:a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks;b. at least one copyback cache storage unit for temporarily storing data blocks, at least one of said at least one copyback cache storage unit being non-volatile; andc. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for:(1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks;(2) during idle time of at least some of the plurality of storage units:(a) reading at least one pending data block from at least one copyback cache storage unit;(b) accessing the storage units and reading information corresponding to each read pending data block;(c) generating an associated error-correction block from the read information and each read pending data block; and(d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and(3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
  4. 12. A fault-tolerant storage device array including:a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks;b. at least one copyback cache storage unit for temporarily storing data blocks; andc. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for:(1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks;(2) reading at least one pending data block from at least one copyback cache storage unit;(3) accessing the storage units and reading information corresponding to each read pending data block;(4) generating an associated error-correction block from the read information and each read pending data block;(5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units; and(6) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
  5. 17. A fault-tolerant storage device array including:a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks;b. at least one copyback cache storage unit for temporarily storing data blocks, at least one of said at least one copyback cache storage unit being non-volatile; andc. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for:(1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks;(2) reading at least one pending data block from at least one copyback cache storage unit;(3) accessing the storage units and reading information corresponding to each read pending data block;(4) generating an associated error-correction block from the read information and each read pending data block; and(5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units.
  6. 22. A fault-tolerant storage device array including:a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks;b. at least one copyback cache storage unit for temporarily storing data blocks, at least one of said at least one copyback cache storage unit being non-volatile; andc. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for:(1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks;(2) reading at least one pending data block from at least one copyback cache storage unit;(3) accessing the storage units and reading information corresponding to each read pending data block;(4) generating an associated error-correction block from the read information and each read pending data block;(5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units; and(6) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.