throbber
US005535399A
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket