`5,535,399
`(11] Patent Number:
`United States Patent 19
`Blitz et al.
`[45] Date of Patent:
`Jul. 9, 1996
`
`
`OD OQ0 AARATA
`
`[54] SOLID STATE DISK DRIVE UNIT HAVING
`ON-BOARD BACKUP NON-VOLATILE
`MEMORY
`
`[75]
`
`Inventors: Martin C. Blitz, Worcester; James C.
`Stegeman; Peter B. Bareham, both of
`Acton,all of Mass.
`
`[73] Assignee: Quantum Corporation, Milpitas, Calif.
`
`OTHER PUBLICATIONS
`Christopher,
`“Solid-state
`SCSI—affordable
`Amaru,
`luxury.” Digital Review, v. 9, N. 13 p. 27(2), Jul. 13, 1992.
`Chen, Peter M.et al, “Storage Performance—Méetrics and
`Benchmarks.” Proc. of the IEEE, Aug. 1993, v. 81, Issue 8,
`pp. 1151-1165.
`Primary Examiner—Rebecca L. Rudolph
`Attorney, Agent, or Firm—David B. Harrison
`[57]
`ABSTRACT
`
`[21] Appl. No.: 130,047
`
`Disclosed is a solid state disk drive, including a volatile,
`Sep. 30, 1993
`(22] Filed:
`electronic RAM, memory and a non volatile, magnetic disk.
`
`[51] Tint, C1. oescessceensernneeeesensssnssesssnsseneees GO6F 12/00=‘The drive continuously saves unique data stored in the
`[52] US. Cl
`395/750: 395/182.04: 395/471:
`memory backto the disk. Additionally, the drive includes a
`— ,
`7 "395/431
`‘Dumberoftables andbitfields, in both volatile electronic
`‘
`memory and disk, for generally keeping track of what data
`[58] Field of Search 2.0...eesesesssnseees 395/400, 425
`has been restored from disk to memory, what data in the
`Refi
`Cited
`memory has been modified since it was restored from disk,
`[56]
`ererences we
`and what modified data in the memory has been saved back
`U.S. PATENT DOCUMENTS
`to disk. In the eventof a primary power outage, the drivefirst
`7/1983 SWeNSOM sescssssessssnsseetsc 395/425
`4,394,732
`Savesthe volatile tables onto disk, and then saves the
`3/1985 Pusic et al. .............
`305/425
`4.506.323
`volatile, modified data onto disk, while using auxiliary
`4.811.203 3/1989 Hamtra ssecssssssseseoreerseneeee 305/425|power. If, however, auxiliary poweris lost before any orall
`
`
`5,034,915
`7/1991 Sturnaetal.
`ee 395/425
`of the modified data is saved on disk, the saved tables
`5,197,026
`3/1993 Butler .0.....eeesesesesccessessssessesees 365/104
`provide information which enables the drive to distinguish
`5,379,415
`1/1995 Papenberg et al.
`.......ssseseeees 395/575
`the valid from the invalid data on disk.
`
`5,396,637
`3/1995 Harwell et ab. wc.
`eessesceseee 395/750
`5,418,925
`5/1995 DeMossetal. o..sssccesssecseessers 395/425
`
`27 Claims, 22 Drawing Sheets
`
`TABLES MEMORY (VOLATILE)
`
`42~|
`
`Aigs
`
`DISK (NON-VOLATILE)
`
`
`
`
`2|44Lela
`YOSSIOOUd
`JNddSIGFLViSdros YIINdWODLSOH
`
`
`
` 20
`
`
`
`YIMOdAYVFIXNV
`
`
`
`MEMORY ARRAY
`(VOLATILE)
`
`Vervain Ex. 2019, p.1
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.1
`Micron v. Vervain
`IPR2021-01550
`
`
`
`ry
`
`|an
`
`e
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 1 of 22
`
`5,535,399
`
`SOLID STATE DISK DRIVE
`
`2
`:
`a
`T
`S
`>
`=
`as
`S
`
`ye
`eo
`XE
`S38
`>
`at
`=
`
`PROCESSOR
`
`AUXILIARY POWER
`
`»
`
`i)
`
`HOST COMPUTER
`
`20
`
`FIG.1
`
`Vervain Ex. 2019, p.2
`Micron v. Vervain
`IPR2021-01550
`
`@:
`
`8
`=
`>
`3
`O&
`Y
`ey
`ty
`
`Vervain Ex. 2019, p.2
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 2 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`a
`
`|0|DATA|e
`
`
`
`
`ptfet FIG. 3A (AT 71)
`
`
`FIG. 2A (AT T1)
`
`DISK 50
`(NON—VOLATILE)
`
`
`
`40|42 |44
`
`pte|e|
`
`
`1
`
`TABLES MEMORY 34
`(VOLITILE)
`
`
`
`
`Vervain Ex. 2019, p.3
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.3
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 3 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`ppo4#|
`
`|Oo|
`
`FIG. 2B (AT 72)
`
`DISK 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`(VOLITILE,)
`
`SBT
`
`
`
`Vervain Ex. 2019, p.4
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.4
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 4 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`|
`
`MEMORY ARRAY 32
`
`(VOLITILE)
`
`
`DISK 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`(VOLITILE)
`
`~~
`
`vA
`VAL.
`60
`nv
`nv
`52|54
`62
`oopote
`ptfo
`|2|0|0|
`
`Vervain Ex. 2019, p.5
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.5
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 5 of 22
`
`5,535,399
`
`DISK 50
`(NON—VOLATILE)
`
`MEMORY ARRAY 32
`
`(VOLITILE)
` DISK 50
`
`nv
`ny
`
`52|54 62
`po|olor
`pt|0]o|
`2|0]a|
`|3|of}oF
`|4[|o|o|
`|5|o|0]
`6[olol
`poe{eefe
`}(N-2)|0|0|
`(N-1)| 0|0|(N-1)|0|0|0°
`cNIR|Oo|7.
`90
`92
`FIG. 3D (AT T4)
`
`FIG. 2D (AT 74)
`
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`(VOLITILE)
`
`Vervain Ex. 2019, p.6
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.6
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 6 of 22
`
`5,535,399
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`DISK 50
`(NON-VOLATILE)
`DISK
`TAGS
`
`pt
`
`
`1
`|oo
`
`
`
`Ppp
`
`FIG. 2E (AT 75)
`
`DIS
`K 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`(VOLITILE)
`
`54
`
`62
`
`polrial
`
`Vervain Ex. 2019, p.7
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.7
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 7 of 22
`
`5,535,399
`
`(N-1) &
`FIG. 3F (ATT6)
`(VOLITILE)
`
`s|
`Lz)|
`
`FIG. 2F (AT 76)
`
`DISK 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`
`Vervain Ex. 2019, p.8
`Micron v. Vervain
`IPR2021-01550
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`ADDR.
`
`DATA
`
`o_o
`oar
`2oa
`
`545 1 2 J 4 5|6p
`
`Vervain Ex. 2019, p.8
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 8 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`
`
`
`
`FIG. 2G (AT 77)
`
`
`
`
`DISK 50
`(NON—VOLATILE)
`
`TABLES MEMORY 34
`(VOLITILE)
`
`
`
`
`
`
`
`
`52|54 62
`po[olol[ijoa.
`|7|ofol
`2|0]o|
`|3[olol
`|4|ofoT
`|5|0]o|
`6[o!|o|
`pe.|e.|.
`|(N-2)|0|0|(N-2)|1|7|oO]
`
`(N-1)| 0|0|N-)|7[7|a|
`cnlR|0|0|
`90
`92
`FIG. 3G (AT T7)
`
`
`
`Vervain Ex. 2019, p.9
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.9
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 9 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`ADDR.
`
`DATA
`|0|
`
`54
`62
`pololiieal
`
`FIG. 2H (AT 78)
`
`DISK 5
`0
`(NON—VOLATILE)
`
`TABLES MEMORY 34
`(VOLITILE)
`
`Vervain Ex. 2019, p.10
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.10
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 10 of 22
`
`5,535,399
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`ADDR.
`
`
`
`2 J 4 5
`
`DATA 1
`(VOLITILE)
`
`FIG. 2]
`
`(AT 79)
`
`DISK 50
`
`TABLES MEMORY 34
`
`Vervain Ex. 2019, p.11
`Micron v. Vervain
`IPR2021-01550
`
`a|4|D
`
`DISK 50
`(NON-VOLATILE)
`
`1 / / 1 i 1 p
`
`1 4 J 4 5
`
`
`
`
`
`(NON-VOLATILE)
`
`
`
`|0|
`|baTA|ot
`pt
`|DATA|ot
`|2|
`|DATA|
`|DATAg|
`ATA|
`|4|oar|ot
`|5
`|5|am|ot
`BN
`|6
`|6
`||
`e
`en
`poe
`
`Vervain Ex. 2019, p.11
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9,1996
`
`Sheet 11 of 22
`
`5,535,399
`
`IATA
`
`DATA
`
`DATA
`
`
`eee
` DISK 50
`
`
`MEMORY ARRAY 32
`DISK 50
`(VOLITILE)
`(NON-VOLATILE)
`DATA
`Appr.|pata|DSK
`TAGS
`ADDR.
`
`
`
`
`
`
`
`
`[sonra]
`
`
`
`TABLES MEMORY 34
`
`(VOLITILE)
`oneVOLATILE)
`
`ST|74g|TBL.||ADDR, SBTy
`
`
`2|By|60 40|42 |44
`rotoi]o
`ptt7]ol
`
`|0|oT ptt7|ol
`
`po|oO ptttfoe
`
`po|o| pitatol
`0|0|pt|tf|
`jo}o
`pttrt}ol
`pO|0|pttto
`|.
`eff
`-2{ 0|0|pttto|
`
`=| 0|0 (W-)| 1]7]2|
`po|7
`90
`92
`FIG. 3J (AT 710)
`
`Vervain Ex. 2019, p.12
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.12
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 12 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`DISK
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`ADDR.|DATA|7470
`
`
`
`|oO pt
`pt|bara|ot
`
`2|3|p
`/ 2 J 4 5|6
`
`ara|
`|4
`|5
`
`
`pe
`(VOLITILE) FIG. 3K (aT 111)
`
`pf
`|(N=2)|DATA|__|
`|N=1)|data|ot
`
`FIG. 2K (AT 711)
`
`DISK 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`
`Vervain Ex. 2019, p.13
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.13
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 13 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`DISK
`
`ADDR.|DATA|rye ADDR.|DATA
`
`
`MEMORY ARRAY 32
`(VOLITILE)
`
` |0|bara|ot
`
`
`(VOLITILE) FIG. SL (AT 712)
`
`FIG. 2L (AT 712)
`
`DISK 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`
`Vervain Ex. 2019, p.14
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.14
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`DISK 50
`(NON-VOLATILE)
`
`— 5,535,399
`Sheet14 of 22
`MEMORY ARRAY 32
`
`FIG. 2M (AT 113)
`
`TABLES MEMORY 34
`DISK 50
`(VOLITILE)
`(NON-VOLATILE)
`ADDR.|SBT|SBT|qag|TAL.
`
`
`Av mW|60 VAL.
`52_|
`54
`62
`poft}olay
`pt
`ar
`r3s_[ol
`rafot
`Psa7|
`|6|oT
`p...|..
`(N=2)|1
`
`;P
`
`(VOLITILE)
` (N=2)
`
`
`
` No
`
` Oh]ATW
`
`CNIR
`
`2
`90
`
`92
`
`FIG. 3M (AT 713)
`
`Vervain Ex. 2019, p.15
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.15
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 15 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`
`TABLES MEMORY 34
`(VOLITILE)
`
`DISK 50
`(NON-VOLATILE)
`
`
`
`(VOLITILE)
` EB po|ti}iio
`
`ptftfol
`p22[7|0]
`
`|3|ol}of
`4|olol
`
`5|7]ot
`
`(6|o|ot
`aee
`|(N-2)|1|0|
`(v-1)| 1[0|
`
`
`
`CNTR
`
`90
`
`92
`
`FIG. 3N (AT T14)
`
`Vervain Ex. 2019, p.16
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.16
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 16 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`
`(VOLITILE)
`(VOLITILE) FIG. 30 (AT 715)
`
`DISK 50
`(NONVOLATILE)
`
`FIG. 20 (AT 715)
`
`TABLES MEMORY 34
`
`Vervain Ex. 2019, p.17
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.17
`Micron v. Vervain
`IPR2021-01550
`
`
`
`US. Patent
`
`Jul. 9, 1996
`
`Sheet 17 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`
`TABLES MEMORY 34
`DISK 50
`(VOLITILE)
`(NON-VOLATILE)
`ADDR.|SBT|SBT|tag TBL.
`
`
`
`nv WV|69 VAL.
`
`52|54 62
`
`
`
`(VOLITILE)
`p22ft
`
` pofritietal
`
`
`
`
`
`1 1 1
`
`90
`
`92
`
`FIG. 3P (AT T16)
`
`Vervain Ex. 2019, p.18
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.18
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 18 of 22
`
`5,535,399
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`
`
`
`DISK 50
`(NON—VOLATILE)
`
`
`
`para [1
`
`
`/ /
`
`és|om|1
`Cop
`po
`
`
`
`
`FIG. 2Q (AT T17)
`
`DISK 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`(VOLITILE)
`
`ADDR.|SBT|SBT|rac TBL.
`
`
`
`nv mW|69 VAL.
`
`52|54 62
`po|tttyeta
`
`
`
`
`
`
`
`
`
`
`
`
`Pspope
`pafopo
`Cor
`refopo
`Tete
`
`=)
`
`
`
`FIG. 3Q (AT 117)
`
`Vervain Ex. 2019, p.19
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.19
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 19 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`oom
`
`FIG. 2R (AT 718)
`
`DISK 50
`
`TABLES MEMORY 34
`
`2[ona7]
`
`
`(NON-VOLATILE)
`(VOLITILE)
`
`pawsfefeefe
`[w-2)|o|0|7|
`
`[w-)]o|o|7|
`
`FIG. 3R (ar 718)
`
`Vervain Ex. 2019, p.20
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.20
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 20 of 22
`
`5,535,399
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`(NON—VOLATILE)
`
`
`
`oma
`
`Ty sp
`imes
`stomfs|fosp+
`efor} le
`Pf}
`Tiafs
`
`FIG. 2S (AT 719)
`
`DISK 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`
` DISK 50
`(VOLITILE) FIG. 3S (AT 719)
`
`Vervain Ex. 2019, p.21
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.21
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 21 of 22
`
`5,535,399
`
`DISK 50
`(NON-VOLATILE)
`DISK
`DATA
`TAGS
`ADDR.
`[1
`oom
`DATA
`1
`1 [ona |
`[2[oar|
`3 [ara
`[4[amg|2
`[5foam[1
`[om |i
`[6poar[1
`ap
`Don
`(=z)|bara]
`Tay[oa[1
`N-2
`1
`
`>
`
`7
`
`Z
`
`3 4 5
`
`
`
`MEMORY ARRAY 32
`(VOLITILE)
`
`ADDR.
`
`DATA
`
`
`
`1
`
`1
`
`1
`
`
`
`pooftpt2d
`
`
`FIG. 2T (AT 120)
`
`
`DIS;K 50
`(NON-VOLATILE)
`
`TABLES MEMORY 34
`(VOLITILE)
`
`
`
`52_|54 62
`
`FIG. 3T (AT 720)
`
`Vervain Ex. 2019, p.22
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.22
`Micron v. Vervain
`IPR2021-01550
`
`
`
`U.S. Patent
`
`Jul. 9, 1996
`
`Sheet 22 of 22
`
`5,535,399
`
`120
`
`122
`
`124
`
`(
`
`POWER OFF
`
`
`POWER ON
`
`
`
`
`RESTORE
`TABLE AND
`
`
`SUSPECT
`
`
`DATE -
`
`
` WP
`
` 125
` RESTORE
`DATA 134
`
`196
`
`
`RESTORE
`AND
`
`
`SAVE
`DATA
`
`
`
`FIG. 4
`
`Vervain Ex. 2019, p.23
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.23
`Micron v. Vervain
`IPR2021-01550
`
`
`
`5,535,399
`
`1
`SOLID STATE DISK DRIVE UNIT HAVING
`ON-BOARD BACKUP NON-VOLATILE
`MEMORY
`
`FIELD OF THE INVENTION
`
`This invention relates to a solid state disk drive, and more
`particularly a solid state disk drive which continuously saves
`unique data in the volatile memory into the non-volatile
`memory, and keeps track of which data in the volatile
`memory has not been backed up after a power outage.
`
`10
`
`BACKGROUND OF THE INVENTION
`
`A disk drive is typically used as a mass storage device for
`an individual computer, or multiple computers linked
`together in a network configuration. One type of disk drive,
`used to service one or more host computers, is a solid state
`disk drive. Unlike the more common disk drives, which
`typically include only a magnetic disk for data storage,solid
`state disk drives include a combination of a magnetic disk
`and electronic RAM memory.
`Although even commondisk drives may have some RAM
`memory, that electronic memory is relatively very small
`compared to the storage capacity of the disk. Usually that
`small electronic RAM is used as a temporary storage buffer
`for data transmitted to or from the magnetic disk. In solid
`state disks, however, the capacity of the RAM memory is
`approximately the same as the capacity of the magnetic disk.
`This is due to the fact that the RAM is the memory source
`used directly by the host computer during processing opera-
`tions, with the disk used principally to back up the RAM.
`Whena solid state disk is powered up, the data stored in
`the magnetic disk will be copied to the RAM. During
`processing operations, a connected host computer will typi-
`cally retrieve data from the RAM, modify that data, and
`ultimately write the modified data back into the RAM.In
`this respect, it is not uncommonfor the RAMto contain the
`only valid version of the data, since the RAM datais written
`back to the magnetic disk only when there is an unplanned
`loss of primary electric power, or there is a planned shut
`down ofthe drive.
`Given that the RAM portionof the solid state disk drive
`can operate only when electric power is supplied,
`the
`electronic memory is considered a “volatile” memory. On
`the other hand, the magnetic diskis a “non-volatile” memory
`given that once it is written to, data is preserved even if
`electric poweris lost. Thusit is quite important to insure that
`all of the data that is contained in RAM isalso contained on
`the magnetic disk before powerto the drive is completely
`terminated, or else unique data in the RAM will belost.
`One problem that has been encountered in connection
`with many solid state disk drives is that it is not always
`possible to predict when power to the system may be lost. An
`unexpected power shortage, such as a black out, is a com-
`mon cause of an unplanned loss of primary power to the
`system. In order to protect against such unplanned losses of
`power, many solid state disk drives include an auxiliary
`power supply, such as batteries. Thus, in the event of a
`powershortage, the batteries will power the system so that
`data can be saved from the volatile Ram to the non-volatile
`disk.
`On the other hand, even those systems supported with
`back up power can loose data stored in the RAM. For
`example, certain solid state disk drives have very large
`capacity memories such that it may take as long as 20
`
`20
`
`25
`
`30
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`minutes to completely saved the contents of the RAM
`memory ontothe disk. Using such a drive as an example,if
`there was a powershortage, and the batteries did not contain
`enough powerto run the system for the full 20 minutes, not
`all of the data in the RAM would have been backed up
`before the battery power was lost. Consequently, when
`power wasrestored at a later time, it would not be possible
`to distinguish between data on the disk that is good, because
`it was saved from RAM,and data on the disk that is bad,
`because it is an older version of the data never replaced by
`the newer data in the
`Accordingly, what is needed is a solid state disk drive
`which protects against
`the loss of data in the volatile
`memory. Morespecifically, what is neededis a drive which
`continuously saves the data in the RAM onto the disk, so
`that, to the greatest extent possible,
`the disk contains a
`redundant copy of the data in the RAM.Furthermore, what
`is neededis a solid state disk drivethat, if it should loose its
`auxiliary power before it has completely saved the RAM
`data onto the disk, the drive is later able to differentiate the
`data on the disk that is good from the data that is bad when
`power is restored. Thereby the drive is able to at least
`partially restore the data on the disk to the RAM, and
`identify which disk data is bad.
`SUMMARY OF THE INVENTION
`
`This invention relates to a storage apparatus, such as a
`solid state disk drive which may be used to support a host
`computer. The apparatus has a non volatile memory device,
`such as a disk, and volatile memory device, such as an
`electronic RAM. At the commencementof the operation of
`the apparatus, data is typically restored from the disk drive
`to the RAM,sothat the data in the RAM is accessible to a
`host computerin as short a time as possible, the access times
`of the RAM being shorter than the access timesof the disk.
`During ordinary operation, data restored from the disk to
`the RAM maybeused and modified by the host computer,
`with the modified data being stored by the host in the RAM.
`Consequently, there may be times when the RAM includes
`the only valid copy of data, namely the data as modified by
`the host. Accordingly,
`the present
`invention includes a
`meansfor indicating that data stored in the RAM has been
`modified after it was restored from the disk to the RAM.For
`example, that indicating means couldbe a table which stores
`data indicating which data in the RAM has been modified.
`In other embodiments of the invention the apparatus
`includes a processing means which scans the indicating
`means, and then saves back to the disk the modified data
`which is in the RAM.In this manner, the disk is constantly
`updated with the most current version of the data, tending to
`achieve an identity between the data stored in the disk and
`the data stored in the RAM, even though the data in the
`RAM can be modified by the host.
`Yet other embodiments of the invention include the
`method of keeping track of modified data in the RAM,and
`saving the modified data on the disk.
`Given that this description only briefly summarizes the
`invention, a more complete understanding of the invention,
`as well as its objects, features, and advantages will be
`appreciated upon consideration of the following detailed
`description of the preferred embodiment, presented in con-
`junction with the accompanying drawings, and the claims.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram of a disk drive in accordance
`with the present invention, the drive containing a processor,
`
`Vervain Ex. 2019, p.24
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.24
`Micron v. Vervain
`IPR2021-01550
`
`
`
`5,535,399
`
`3
`a volatile tables memory, a volatile memory array, a non
`volatile magnetic disk, and auxiliary power.
`FIGS. 2A-2T are a series of time based, block illustra-
`tions ofthe contents of the disk and memory array shown in
`FIG. 1.
`
`FIGS. 3A~3T are a series of time based, block illustra-
`tions of the contents of the disk and tables memory shown
`in FIG,1.
`
`FIG. 4 is a state diagram illustrating the method of
`operation of the drive shown in FIG.1, by reference to the
`various states in which the drive operates.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`A. Disk Drive Overview
`
`Referring first to FIG. 1, an embodimentofa solid state
`disk drive in accordance with the present
`invention is
`provided. Host computer 20 is coupled over /O bus 22 to
`solid state disk drive 24. Drive 24 includes processor 30,
`which is the central processing unit controlling all opera-
`tions within drive 24. Processor 30 is coupled via an internal
`bus structure 31 to memory array 32, which is a volatile,
`electronic RAM memory having a storage capacity typically
`ranging from 100 Mbytes to 1 Gbytes. Memory array 32
`contains the data used by host 20 during processing opera-
`tions.
`
`10
`
`15
`
`20
`
`25
`
`In addition, processor 30 is coupled to tables memory 34,
`which is also a volatile, electronic RAM,albeit considerably
`smaller than memory array 32. As seen in FIG. 1, tables
`memory 34 contains three memory tables, “Array Valid
`Table” (AVT 40), Disk Valid Table” (DVT 42), and “Suspect
`In order to discuss the operation of drive 24, it is first
`Bit Table (volatiley’ (SBTv 44).
`helpful to consider the means by which data on disk 50 and
`Still referring to FIG. 1, in drive 24 processor 30 is also
`memory array 32 is configured and addressed. Recalling that
`coupled to a non-volatile magnetic disk 50, which also has
`during the operation of drive 24, host 20 will exchange data
`a storage capacity ranging from 100 Mbytes to 1 Gbytes.
`with memory array 32, when drive 24 is started up, the data
`Disk 50 is coupled to tables memory 34 and memory array
`stored on disk 50 must be restored to memory array 32.
`32 via bus structure 31 so that data can be copied back and
`It should be notedat the outset of this detailed description
`forth from either to disk 50. Although in the preferred
`that when informationis transferred from disk 50 to memory
`embodimentdisk 50 is a magnetic disk, in other embodiment
`array 32 that transfer will be generally referred to as a
`other non-volatile memory devices could be used. For
`“restore”, while the transfer of information from memory
`example, other disk drives combine magnetics and optics to
`array 32 to disk 50 will be generally referred to as a “save”.
`provide a magneto-optical disk drive. The important feature
`By following this convention, it is hoped that the exchange
`of the non volatile memory is that the data in the memory is
`of information in drive 24 will be simpler to follow.
`not lost when power to drive 24 is lost.
`Although many storage and addressing methods may be
`In addition to being able to generally store memory array
`used in different embodiments, general reference is now
`32 data, disk 50 further includes two “Suspect Bit Tables
`made to FIG. 2A to explain the storage and addressing
`(non-volatile)”, one of which is identified as SBT1nv 52 and
`method used in the preferred embodiment. It may be noted
`the other SBT2nv 54. As will be detailed below, SBTInv 52
`that FIG. 2A is actually one of a series of similar illustra-
`and SBT2nv 54 are almost redundant copies of DVT 42.
`tions, extending from FIGS. 2A—2T, with each such drawing
`They are used for the purpose of preserving a back up copy
`providingablockstyleillustration of the contents of disk 50,
`of DVT 42 on disk. As will be detailed below, there will
`on the left, and memory array 32, on the right.
`typically be some differences in their contents, however, due
`Asseen by referring to FIG. 2A, disk 50 is divided into
`to the fact that they receive copies the of contents of DVT
`a numberoflogical addresses ranging from O-(N—1). Each
`42 at different times, and the contents of DVT 42 typically
`such address location contains a block of data, designated
`changes over time.
`“DATA”on FIG. 2A. In the preferred embodiment, each
`Also seen in FIG. 1, disk 50 further includes two addi-
`such block of data is made up offive sectors of disk 50, so
`tional data fields, TAG 60 and TABLES VALID 62.
`that each single address location effectively accesses five
`Although through this brief overview each of the major
`sectors of disk 50. Also shown on FIG. 2A, stored and
`associated with each such block of data is a DISK TAG
`componentsof drive 24 are identified, details relating to the
`configuration and purpose of the tables and data fields in
`value, which is a field capable of accommodating the storage
`table memory 34 and disk 50 are provided below.
`of a number, not just a single binary bit. Still generally
`To the extent that drive 24 is a solid state disk drive, in its
`referring to FIG. 2A, another block diagram illustrates the
`format of memory array 32 andits address locations, which
`normal mode of operation, host 20 will periodically “read”
`data from drive 24 so that host 20 can use that data forits
`also range from 0 to (N-1).
`
`30
`
`35
`
`45
`
`55
`
`60
`
`65
`
`4
`processing operations. Additionally, host 20 will periodi-
`cally “write” data to drive 24 so that the data is stored for
`later access. Most of the time, drive 24 is freely accessible
`for such read/write operations, referred to as the “WRITE
`ENABLE” mode. Under certain conditions however drive
`24 may haveto protectitself from write access by host 20
`because it is not yet ready for host 20 access, or drive 24
`needs to take measures to preserve the integrity of the data
`in drive 24. This is referred to as a “WRITE PROTECT”
`mode, and may occur whendrive 24 is first started, or when
`there is a loss of primary power. Underyet other conditions,
`drive 24 may be inaccessible to host 20 for either read or
`write access, which is referred to as the “OFF LINE” mode.
`A further characteristic of drive 24, as a solid state disk
`drive, is that when host 20 reads from or writes to drive 24,
`itis actually exchanging data directly with memory array 32,
`instead of disk 50. In other words, the advantage of a solid
`state disk drive 24 is that the data sought by the host 20 is
`directly accessed in the electronic memory, which makesthe
`data available to host 20 much faster than if it had to be
`retrieved from a mechanically operated, and therefore
`slower, magnetic disk 50. On the other hand, in drive 24 disk
`50 is used for back up storage purposes.
`Finally with respect to FIG. 1, drive 24 includes auxiliary
`power 70, which in the preferred embodiment is a Ni:Cad
`battery back up. Thus, in the event that the main power
`source, such as a wall outlet having 120 V AC weretofail,
`due to a power outageor the like, auxiliary power 70 is able
`to run drive 24, so long asthe batteries can provide adequate
`power.
`
`B. Data Configuration on the Drive
`
`Vervain Ex. 2019, p.25
`Micron v. Vervain
`IPR2021-01550
`
`Vervain Ex. 2019, p.25
`Micron v. Vervain
`IPR2021-01550
`
`
`
`5,535,399
`
`5
`Comparing the left and right sides of FIG. 2A, it can be
`seen that there is a direct correspondence between the
`address locations of disk 50 and memory array 32. Accord-
`ingly, when data is restored from disk 50 to memory array
`32 the data in a given address on disk 50 will be copied to
`the corresponding address on memory array 32, and vice
`versa. For example, data in disk 50 addresslocation 0 will
`be copied to memory array 32 address location 0, disk 50
`address location 1 to memory array 32 addresslocation 1,
`and so on.
`Still considering the arrangement of data in drive 24,
`general reference is now madeto FIG. 3A, whichis also one
`of a series block diagram illustrations of AVT 40, DVT 42,
`SBTv 44 of tables memory 34, and SBTInv 52, SBT2nv 54,
`TAG 60, and TABLES VALID 62 of disk 50. These block
`illustrations, extending from FIG. 3A-3T, will be used to
`discuss the method by which drive 24 manages data in
`memory array 32 and disk 50, in order to provide the speed
`of a solid state disk drive, while further providing maximum
`protection for the integrity of the data in memory array 32
`and on disk 50.
`In FIG. 3A, the three tables in tables memory 34 have
`address locations, ranging from 0-(N—1), which correspond
`to the similar address locations of memory array 32 and disk
`50. Likewise the two tables on disk 50 have address loca-
`tions, ranging from 0-(N—1), which also correspond to the
`address locations of memory array 32 and disk 50. At each
`of the address locations O-(N—1) each of the five tables
`contain a single bit field, which can be set to the binary
`values 1 or 0. The significance of the settings in these fields
`is further detailed below.
`Additionally,
`tables SBT1lnv 52 and SBT2nv 54 each
`contain one additional counterfield, respectively CNTR 90
`and CNTR 92. Unlike the portions of the tables which
`contain a single binary bit, the counter fields are each able
`to store a non binary number,the purpose of which will also
`be discussed below.
`FIG. 3Afurtherillustrates the inclusion on disk 50 of TAG
`60 and TABLES VALID 62, both of which were shown on
`FIG. 1. TAG 60is also capable of holding a number, while
`TABLES VALID 62is a single bit field such that it can be
`set to only binary 1 or 0.
`In connection with the general consideration of FIGS.
`2A-2T and 3A-3T, it should be noted that these figures
`provide a time based sequenceofblock drawingsillustrating
`the changing contents disk 50, memory array 32, and the five
`tables and the otherfields on disk 50 or tables memory 34.
`Such changing contents corresponding to the restoring,
`saving, and modifying of data in memory array 32 and disk
`50. Accordingly, each of figures effectively provide a ‘snap
`shot’ of the contents of the disk 50, memory array 32, and
`the tables and fields by reference to a specific time, such as
`“T1”, “T2” and so on
`With respectto the use of the terms “TY”, “T2”, and so on
`each is intended to indicate the relative sequence of time
`segments, but does not necessarily indicate any proximal
`relationship between or relative duration of the time seg-
`ments. In other words, TI is a time segmentthat occurs prior
`to T2, T2 is a time segment that occurs prior to T3, and
`likewise with respect to the other identified time segments.
`Onthe other hand, T2 is not necessarily the very next time
`segmentafter T1, as measured bya specific clocking mecha-
`nism, such as a system clock for example. Additionally, the
`use of the terms T1 and T2, for example, is not intended to
`suggest that the duration of any. two such segments are
`necessarily the same.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`Having considered the major components in drive 50 and
`the addressing and formatting of the data stored in drive 24,
`consideration can now be directed to the method by which
`drive 24 operates. Such consideration begins with a review
`of the method by whichdrive 24 initializesitself, so that data
`on disk 50 is copied into memory array 32 for access by host
`20.
`
`C. Disk Drive Initialization
`
`In order to commence the operation of drive 24 it is
`necessary for the data on disk 50 to be restored into memory
`array 32 as part of an initialization process. Referring again
`to FIG. 2A,theillustration showsthe state of disk 50 and
`memory array 32 at a point in time, Tl, whichis prior to the
`time that drive 24 is actually turned on. For the purpose of
`this hypothetical initialization, it will be assumed that at T1
`disk 50 containsvalid data that is to be restored into memory
`array 32. Accordingly,
`in FIG. 2A each of the address
`locations of disk 50 contain DATA.
`Onthe otherhand,it will be assumedthat the DISK TAGS
`on disk 50 andall of memory array 32 effectively contain no
`data, or stated differently, contain no reliable data. This is
`especially true of memory array 32, given that, as a volatile
`memory, when the power to drive 24 is turned off, the
`electronic RAM cells do not contain anything other than
`possibly stray capacitative charges. Accordingly, in FIG. 2A
`the DISK TAGSondisk 50 the DATAfield of memory array
`32 are represented by the symbol ‘“*”, to indicate that at T1
`these memory locations are effectively empty.
`Referring once again to FIG. 3A,the contents of AVT 40,
`DVT 42, SBTv 44, SBTInv 52, SBT2nv 54, TAG 60, and
`TABLES VALID 62 are shown duringthe time segment T1.
`Similar to the discussion above with respect to the DISK
`TAGSof disk 50 and memory array 32, as of T1 all of the
`contents of the listed tables and fields are assumed to be
`empty before the power to drive 24 is turned on.
`Although for the purpose of explaining the initialization
`of drive 50 it has been assumedthat the tables andfields on
`disk 50 are empty, it will be explained below that, in actual
`practice, after data is loaded onto disk 50, the tables and
`fields would also have informationstoredin them. For the
`purpose of more clearly explaining the origination of that
`information, however, in this portion of the detailed descrip-
`tion they are assumed to be empty.
`Referring next to FIGS. 2B and 3B, which takes place
`during time segment T2,it will be further assumed thatat
`this point in time drive 24 is turned on. Duringinitialization,
`processor 30 first places drive 24 in an OFF LINE mode,
`which, as will be detailed in connection with the discussion
`of FIGS. 2R-2T, 3R-3T and 4 below,
`transitions to a
`WRITE PROTECT mode. Until
`the WRITE PROTECT
`modeis changed to a WRITE ENABLE mode,host 20 will
`not beable to write to drive 24, although host 20 will be able
`to read from drive 24.
`Additionally, during this initialization procedure, virtually
`all of the bits in the five tables, AVT 40, DVT 42, SBTv.44,
`SBTInv 52, and SBT2nv 54, are initialized to “O” by
`processor 30, as shown in FIG. 3B. The CNTR 92bit in
`SBT2nv, however, is set to binary 1, for reasons that will be
`discussed below.
`
`Also, in FIG. 3B, it can be seen that in accordance with
`the initialization process the numerical value in TAG 60 is
`set to 1. Also, the binary TABLES VALID 62 bit is set to 1
`indicating that, so long as d