throbber
1111111111111111111111111111111111118111111111111111111111111111111
`
`US005822781A
`[11] Patent Number:
`[111 Patent Number: (cid:9)
`[45] Date of Patent: (cid:9)
`[45] Date of Patent:
`
`5,822,781
`5,822,781
`Oct. 13, 1998
`Oct. 13, 1998
`
`United States Patent [19]
`Ulllted States Patent [19]
`Wells et al. (cid:9)
`Wells et al.
`
`[54] SECTOR-BASED STORAGE DEVICE
`[54] sECTOR-BAsEI) STORAGE DEVICE
`EMULATOR HAVING VARIABLE-SIZED
`EMULATOR HAVING VARIABLE-SIZED
`SECTOR
`SECTOR
`
`[75] Inventors: Steven Wells, Citrus Heights; Robert
`[75] Inventors: Steven Wells, Citrus Heights; Robert
`N. Hasbun, Shingle Springs; Kurt
`Robinson, Newcastle, all of Calif.
`
`
`NI Hasbun, ROblIlSOIl, Newcastle, all of Calif. [73] Assignee: Intel Corporation, Santa Clara, Calif. - Springs; Kurt -
`
`
`
`[73] Assignee: Intel Corporation, Santa Clara, Calif.
`
`21 A L N _. 969 131
`[21] Appl. No.: 969,131
`[
`1
`pp
`0
`’
`Oct. 30, 1992
`[22] Filed: (cid:9)
`[22] Filed:
`Oct. 30, 1992
`6
` GO6F 12/04
`[51] Int. C1.6
`[51]
`Int. Cl. .................................................... .. G06F 12/04
`[52] U.S. Cl. (cid:9)
` 711/171; 395/500
`[52] US. Cl. .......... ..
`711/171; 395/500
`[58] Field of Search (cid:9)
` 395/400, 425,
`[58] Field of Search ................................... .. 395/400, 425,
`395/412, 430, 497.01, 497.02, 497.03, 497.04,
`395/412, 430, 497.01, 497.02, 497.03, 497.04,
`500; 365/900 MS, 185; 711/171, 172
`500; 365/900 MS, 185; 711/171, 172
`
`[56]
`[56]
`
`References Cited
`References Cited
`
`U.S. PATENT DOCUMENTS
`U.S. PATENT DOCUMENTS
`
`7
`
`7
`
`u er_
`
`3,648,255 3/1972 Beausoleil et al. (cid:9)
` 340/172.5
`3,648,255
`3/1972 Beausoleil et a1. ................ .. 340/1725
`4,430,727 2/1984 Moore et al. (cid:9)
` 395/425
`4,430,727
`2/1984 Moore et al. ......................... .. 395/425
`4,642,759 2/1987 Foster .
`i/(fsltler -
`4,644,494 2/1987 Muller
`4758 944 7/1988 Bartley e161. ........................ .. 395/425
`4,758,944 7/1988 Bartley et al. (cid:9)
` 395/425
`’
`’
`4,763,305 8/1988 Kuo
`4,763,305
`8/1988 K110 .
`478027117
`1/1989 Chrosny et a1"
`1/1989 Chrosny et al. .
`4,802,117 (cid:9)
`4,849,878
`7/1989 Roy ....................................... .. 395/600
`4,849,878 7/1989 Roy (cid:9)
` 395/600
`4,864,497
`9/1989 Lowry et a],
`395/650
`4,864,497 9/1989 Lowry et al. (cid:9)
` 395/650
`4,896,262 1/1990 Wayama et al. (cid:9)
` 395/500
`4,896,262
`1/1990 Wayama et a1. ..
`395/500
`4,958,315 9/1990 Balch (cid:9)
` 395/500
`4,958,315
`9/1990 Balch ------------------------------------ -- 395/500
`5,012,425 4/1991 Brown .
`5,012,425
`4/1991 BTOWII-
`5,067,128 11/1991 Nakane .
`¥§I1::1:t~a1
`5,070,474 12/1991 Tuma et al. .
`5,077,737 12/1991 Leger et al. ......................... .. 371/10.1
`5,077,737 12/1991 Leger et al. (cid:9)
` 371/10.1
`5 109 498 4/1992 Kamiya et al'
`N 395/49703
`5,109,498 4/1992 Kamiya et al. (cid:9)
` 395/497.03
`5’111’385
`5/1992 Hattori ________ __
`395/425
`5,111,385 5/1992 Hattori (cid:9)
` 395/425
`5:131:089
`7/1992 Cole ________________ __
`395/500
`5,131,089 7/1992 Cole (cid:9)
` 395/500
`5,210,854 5/1993 Beaverton et al. (cid:9)
` 395/430
`5,210,854
`5/1993 Beaverton et a1,
`395/430
`5,237,460 8/1993 Miller et al. (cid:9)
` 360/8
`5,237,460
`8/1993 Miller et a1. . . . . . .
`. . . . . .. 360/8
`5,280,611 1/1994 Mohan et al. (cid:9)
` 395/600
`5,280,611
`1/ 1994 Mohan et al
`395/600
`5,291,584 3/1994 Challa et al. (cid:9)
` 395/500
`glam‘? 6: ‘11L
`3379171583
`5,297,148 3/1994 Harari et al. (cid:9)
` 371/10.2
`5,305,295 4/1994 Chu (cid:9)
` 369/30
`5,313,429 5/1994 Chevallier et al. (cid:9)
` 365/226
`5,313,429
`5/1994 Chevallier et al.
`365/226
`5,359,205 10/1994 Orshinsky (cid:9)
` 257/3
`5,359,205 10/1994 Orshinsky ................................. .. 257/3
`
`,
`
`,
`
`arari e a .
`
`..
`
`..
`
`.
`
`5,305,295
`
`4/1994 Chu . . . . . . . . . . . . . . . . . . .
`
`. . . . .. 369/30
`
`
`5,493,574 2/1996 McKinley (cid:9)
`371/40.1
`5,493,574
`2/1996 McKinley ............................ .. 371/401
`FOREIGN PATENT DOCUMENTS
`FOREIGN PATENT DOCUMENTS
`
`2088442 7/1993 Canada (cid:9)
` 13/16
`2088442 7/1993 Canada .................................... .. 13/16
`0175458A2 3/1986 European Pat. Off. .
`0175458A2 3/1986 European Pat. Off. .
`0392895 10/1990 European Pat. Off. (cid:9)
`2251323 1/1992 United Kingdom (cid:9)
`2251324 1/1992 United Kingdom (cid:9)
`
`
`
`2251323 ................... .. European Pat. 1/1992 United Kingdom 2251324 1/1992 United Kingdom OTHER PUBLICATIONS
`
`
` 16/6
` 12/2
` 12/2
`
`
`OTHER PUBLICATIONS
`
`Robinson, Kurt, "Trends in Flash Memory System Design",
`Robinson, Kurt, “Trends in Flash Memory System Design”,
`Wescon Conference Record, Nov. 1990, pp. 468-472.
`Wescon Conference Record, Nov. 1990, pp. 468—472.
`Markus A. Levy and Dave Elbert, "Solutions for High
`Markus A. Levy and Dave Elbert, “Solutions for High
`Density Applications Using Intel Flash Memory,” Intel
`Density Applications Using Intel Flash Memory," Intel
`Application Note AP—343, pp- 6—297 through 6—364 (Oct
`Application Note AP-343, pp. 6-297 through 6-364 (Oct.
`1990).
`199())_
`Solid–State Mass Storage Arrives, Product Feature, Memory
`Solid—State Mass Storage Arrives, Product Feature, Memory
`Card Systems & Design, Jul./Aug. 1992.
`Card Systems & Design, Jul./Aug. 1992.
`_
`_
`_
`Primary Examiner—Eddie P. Chan
`Primary Examtner—Edd1e P. Chan
`Assistant Examiner—Hiep T. Nguyen
`Assistant Examiner—Hiep T. Nguyen
`Attorney, Agent, or Firm—Blakely, Sokoloff, Taylor &
`Attorney, Agent, or Firm—Blakely, Sokoloff, Taylor &
`Zafman
`Zafman
`
`[57] (cid:9)
`[57]
`
`ABSTRACT
`ABSTRACT
`
`.
`
`.
`
`.
`
`.
`
`.
`
`A solid state memory disk that stores data on a sector basis
`A solid state memory disk that stores data on a sector basis
`is described. The solid state disk includes an array of
`15 descnbed' The 50.1101 State. dlsk Includes an array of
`FLASH memory devices, which store the sectors of data.
`FLASH memory devices, WhlCh store the sectors of data.
`E h M k f
`.th. th FLASH
`.
`1 d
`Each block of memory within the FLASH array includes
`ac
`oc 0 memory W1 in
`e
`array 1ncu es
`data space for storing many sectors of data and a block
`data Space for Stonng many Sectors of data and a block
`sector translation table. The block sector translation table
`sector translation table. The block sector translation table
`identifies each sector of data stored in the block's data space
`identi?es each sector of data stored in the block’s data space
`by a sector number. The solid state disk also includes a
`by a sector number. The solid state disk also includes a
`controller. Among its many responsibilities, the controller
`controller. Among its many responsibilities, the controller
`manages the writing of sector data into the array and the
`manages the Writing of sector data into the array and the
`reading of sectors of data from the array. The controller
`readmgd of Seem.“ of data 5mm {:16 may‘ {he Comfone;
`responds to a write request by seeking an earlier version of
`respon s to a vvrite request‘ y see ing an ear 1er version o
`the sector which has a logical sector number equal to the
`the sector Which has a logical sector number equal to the
`sector's sector number and marking that sector dirty.
`sector’s sector number and marking that sector dirty.
`Afterward, the controller allocates free memory space for
`Afterward, the controller allocates free memory space for
`the sector of data. The sector of data is then written into the
`the sector of data. The sector of data is then Written into the
`allocated memory space. The controller reads sectors of data
`allocated memory space. The controller reads sectors of data
`by seeking a sector header translation table to convert sector
`by seeking a sector header translation table to convert sector
`numbers into physical addresses.
`
`~
`
`-
`
`numbers Into physlcal addresses‘
`
`31 Claims, 22 Drawing Sheets
`31 Claims, 22 Drawing Sheets
`
`BLOCK SECTOR
`BLOCK SECTOR
`TRANSLATION
`TFtTAIrIBSLI-EITlJN
`TABLE 84
`GROWS
`GROWS
`DOWNWARD
`DOWNWARD
`
`HEADER FOR LSNB1
`HEADER FOR LSNB1
`BSO1
`(INCLUDES BSO1)
`(INCLUDES BSO1) \ B802
`HEADER FOR LSNB2
`HEADER FOR LSNB2
`(INCLUDES BSO2)
`(INCLUDES B502)
`
`88“
`88
`DATA SPACE 86
`DATA SPACE E
`GROWS
`enows
`UPWARD
`UPWAHD
`
`1
`
`SLACK (FFFF)
`SLACK (FFFF)
`
`DATA FOR LSNB2
`DATA FOR LSNB2
`DATA FOR LSNB1
`Q
`DATA FOR LSNB1
`89
`BLOCKATI'RIBUTE DATA E
`BLOCK ATTRIBUTE DATA LO
`
`16 BITS WIDE
` 16 BITS WIDE (cid:9)
`
`
`
`HIGH BYTE -+- LOW BYTE
`STORED IN
`STORED IN
`
`
`Sega]? * 24242515 HIGH CHIP @ LOW CHIPE
`HIGH CHIP 68
`DIRTY LOW CHIP 70
`
`BAD
`TRACK (cid:9)
`
` DIRTY
`BIT
`
`BIT (cid:9)
`
`
`an, IIrN‘NNXI/I‘I a?” a?“
`
`1111011 ge1111 (cid:9)
`COMPRESSION k DATA
`COMPRESSION
`DATA
`ATTACHED
`ATTACHED
`
`85
`85
`4 WORDS
`/4 WORDS
`LONG
`I
`LONG
`)
`CRC LSNB
`CRC
`LSN
`LSNB I LSN:
`LSNB LSNB
`ATTRIBUTE WORD
`ATTRIBUTE WORD
`BLOCK SECTOR
`BLOCK SECTOR
`OFFSET
`P1311128
`16 BITS (cid:9)
`WIDE
`REVISION
`nevso
`NUMBER
`
`
`
`IIIII
`NENE
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0001
`
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`

`
`U.S. Patent (cid:9)
`
`Oct. 13, 1998 (cid:9)
`
`Sheet 1 of 22 (cid:9)
`
`5,822,781
`
`—SIG (cid:9)
`
`50
`
`52
`
`CENTRAL
`PROCESSING
`UNIT
`CPU)
`
`SOLID STATE DISK
`
`SOLID STATE
`DISK CONTROLLER
`
`FLASH MEMORY
`ARRAY
`
`66
`
`64
`
`62
`
`T64
`
`-96
`
`RAM SECTOR
`BUFFER
`
`98
`
`93
`
`WINDOW
`ASIC
`
`5V TO 12V
`CHARGE PUMP
`
`10
`
`92
`
`MICROPROCESSOR
`
`FLASH ARRAY
`DATABASES
`(RAM)
`
`/- 94
`
`SECTOR HEADER
`TRANSLATION
`TABLE (RAM)
`
`1
`
`95
`
`FLASH MEMORY
`STORING
`SSD
`CONTROLLER
`ALGORITHIMS
`
`TO
`HOST CPU
`52
`
`r
`
`62
`
`68
`
`BLOCK 0
`
`80a
`
`BLOCK 0
`
`BLOCK 1
`•
`• •
`BLOCK 15
`
`80
`
`BLOCK 1
`•
`•
`•
`
`BLOCK 15
`
`HIGH CHIP (cid:9)
`
`LOW CHIP
`
`CHIP PAIR 66
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0002
`
`(cid:9)
`(cid:9)
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`0a. 13, 1998
`Oct. 13, 1998 (cid:9)
`
`Sheet 2 0f 22
`Sheet 2 of 22 (cid:9)
`
`5,822,781
`5,822,781
`
`—1F" I G (cid:9) 3
`E‘ I E _ 3
`
`r
`
`BLOCK SECTOR
`BLOCK SECToR
`TRANSLATION
`TRANSLATION
`TABLE a_4
`TABLE 84
`GROWS
`GROWS
`DOWNWARD
`DoWNWARD
`<>
`
`BSO1
`HEADER FOR LSNB1
`B801
`HEADER FoR LSNB1
`INCLUDES 580
`(INCLUDES BS01)
`(
`1) \ B802
`BS \2'''.--
`HEADER FOR LSNB2
`/
`HEADER FOR LSNB2
`(INCLUDES B802)
`(INCLUDES BSO2)
`;
`
`•
`•
`•
`k
`A
`.
`88 -----
`t SLACK (FFFF)
`88 m "
`SLACK (FFFF)
`r
`DATA SPACE 86
`DATA SPACE @
`GROWS
`GROWS <
`UPWARD
`uPWARD
`
`’
`
`4
`
`‘
`
`s5
`85
`4 WORDS
`/4 WORDS
`LONG
`LONG)
`
`L
`
`4}
`
`\
`
`HIGH BYTE —46— LOW BYTE
`<- HIGH BYTE
`LOW BYTE ——>
`STORED IN (cid:9)
`STORED IN
`SToRED IN
`SToRED IN
`HIGH CHIP 68 (cid:9)
`LOW CHIP 70
`HIGH CHIPg
`LOW CHIPE
`
`14
`
`A
`
`v
`
`DATA FOR LSNB2
`DATA FOR LSNB2
`
`89
`DATA FOR LSNB1
`Q
`DATA FoR LSNB1
`BLCCK A‘ITRIB TE DATA 90
`BLOCK ATTRIBUTE DATA 90
`U
`_
`
`CRC LSNB
`CR0
`LSNB
`LSNB LSNB
`LSNB
`LSNB
`ATTRIBUTE WORD
`-ATTRIBuTE WoRD
`16 BITS WIDE
`<--— 16 BITS WIDE ——>
`BLOCK SECTOR
`BLOCK SECToR
`OFFSET
`OFFSET
`16 ms
`16 BITS H
`W|DE
`WIDE
`REVISION
`EE‘A/A'S'ON
`NUMBER
`U BER
`a,..—........A..,
`l
`l
`l
`I
`
`BAD
`DIRTY DIRTY
`DIRTY
`DIRTY
`BAD
`TRACK
`BIT (cid:9)
`BIT
`BIT
`BITw
`TRACKv
`IIII'll 'Eli
`L II
`I
`l
`1
`LCOMPRESSION k DATA
`COMPRESSION (cid:9)
`DATA
`ATTACHED
`ATTACHED
`
`Ir
`
`L
`
`'
`
`—SIG 4
`P I E _ 4
`94
`ADDRESS IN
`ADDRESS IN
`94
`
`LSN
`LSN
`
`r
`
`83,300
`83,300
`ENTR|ES
`ENTRIES
`IN
`IN
`SHTT
`SHTT
`
`<
`
`SECTOR HEADER
`SECTOR HEADER
`TRANSLATION
`TRANSLATION
`TABLE
`TABLE
`(SHTT)
`(SHTT)
`
`\
`
`DATA OUT
`DATA OUT
`
`16 BITS OF A
`16 BITS OF A
`PHYSICAL
`PHYSICAL
`ADDRESS
`ADDRESS
`WITHIN FLASH
`WITHIN FLASH
`ARRAY 62
`ARRAY Q
`
`CHIP PAIR (4 BITS)
`CHIP PAIR (4 BITS)
`BLOCK (4 BITS)
`BLOCK (4 BITS)
`:> AND
`* AND
`HEADER POINTER
`HEADER POWER
`(8 BITS)
`(8 BITS)
`
`16 BITS WIDE
`H--— 16 BITS WIDE —>
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0003
`
`(cid:9)
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`Oct. 13,1998
`Oct. 13, 1998 (cid:9)
`
`Sheet 3 0122
`Sheet 3 of 22 (cid:9)
`
`5,822,781
`5,822,781
`
`PII_i_E
`"BUILDING SHTT"
`"BUILDING SHTT"
`
`I
`110
`110
`INITIALIzE SHTT TO EMPTY /
`INITIALIZE SHTT TO EMPTY
`I
`INITIALIZE TFFA TO MAX SIZE
`INITIALIZE TFFA TO MAX SIZE
`111
`111
`INITIALIzE TI=I=C (ALL CHIPS) /
`INITIALIZE TFFC (ALL CHIPS)
`TO MAX SIZE
`TO MAX SIzE
`
`NO
`
`136
`
`RETURN
`
`>}
`
`112
`112
`
`ARE
`ARE
`THERE
`THERE
`ANY MORE BLOCKS
`ANY MORE BLOCKS
`TO BE SCANNED?
`TO BE SCANNED?
`
`114
`
`SELECT A BLOCK TO SCAN
`115
`I
`lNlTlALlZE TFFBC TO /
`INITIALIZE TFFBC TO
`MAX SIZE
`MAX SIzE
`116
`+
`READ THE NEXT HEADER |;_—
`READ THE NEXT HEADER
`120
`120
`I f
`UPDATE TDFA AND
`UPDATE TDFA AND
`TDFB
`TDFB
`I
`UPDATE TFFA, TFFB &
`UPDATE TFFA, TFFB &
`TFFC BY SUBTRACTING
`TFFC BY SUBTRACTING +0
`SECTOR SIZE
`SECTOR SIZE
`
`IS THE
`SECTOR
`DIRTY?
`
`121 (cid:9)
`
`"
`124 \
`UPDATE TFFA, TFFC, & TFFB
`UPDATE TFFA, TFFC, & TFFB
`BY SUBTRACTING SECTOR SIZE
`BY SUBTRACTING SECTOR SIZE
`
`126
`126
`
`DOES AN
`DOES AN
`ENTRY ALEADY
`ENTRY ALEADY
`EXIST IN SHTT FOR THE
`EXIST IN SHTT FOR THE
`SECTOR NUMBER
`SECTOR NUMBER
`EQUAL TO THIS
`EQUAL TO THIS
`LSN?
`
`128
`
`NO
`
`L
`
`WRITE INTO SHTT CHIP PAIR,
`WRITE INTO SHTT CHIP PAIR,
`BLOCK, AND HEADER
`BLOCK, AND HEADER
`POINTER OF CURRENT LSN
`POINTER OF CURRENT LSN
`
`END OF
`BSTT
`REACHED?
`REACHED?
`
`YES
`YES
`
`IV
`
`/ 130
`130
`I /
`READ REVISION NUMBERS
`READ REVISION NUMBERS
`FOR BOTH SECTORS
`FOR BOTH SECTORS
`I
`MARK DIRTY HEADER WITH
`MARK DIRTY HEADER WITH
`132
`132 \ EARLIER REv NUMBER
`EARLIER REV NUMBER
`I
`133
`133 \ UPDATE TDFB AND TDFA
`UPDATE TDFB AND TDFA
`BY ADDING SECTOR SIZE
`BY ADDING SECToR SIzE
`4,
`I
`IF NECESSARY, WRITE INTO
`IF NECESSARY, WRITE INTO
`134
`134
`\ SHTT CHIP PAIR, BLOCK AND
`SHTT CHIP PAIR, BLOCK AND
`HEADER POINTER OF SECTOR
`HEADER POINTER OF SECTOR
`WITH LATER REV. NO.
`WITH LATER REV. NO.
`
`V
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0004
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`Oct. 13, 1998 (cid:9)
`Oct. 13,1998
`
`Sheet 4 of 22 (cid:9)
`Sheet 4 0f 22
`
`5,822,781
`5,822,781
`
`IIG (cid:9) 6
`FI[i___E
`150
`150
`TOP LEVEL /
`TOP LEVEL
`SCHEDULER
`scI-IEDULER
`—| |_—
`,c,
`
`156 ---\, (cid:9)
`
`INTERFACE
`INTERFACE
`
`CLEANUP
`CLEANUP
`
`‘
`
`:
`
`FLASH
`POWER
`
`162
`
`158 -N
`\
`SECTOR
`SECTOR
`BUFFER
`BUFFER
`M
`
`HOST I/F 15_2
`HOST I/F 152
`
`‘
`‘
`
`\ V
`>
`
`DISK
`
`SECTORS
`; sEcToRs / To
`TO
`FLASH
`ARRAY
`ARRAY
`62
`Q ‘
`'
`
`II
`FLASH ARRAY
`FLASH ARRAY
`INTERFACE
`INTERFACE
`
`I
`
`FLASH MEDIA 1_54
`FLASH MEDIA 154
`
`x167
`
`98
`98
`--\
`X
`SECTOR
`sEcToR
`BUFFER
`BUFFER
`
`168
`i-168
`II f
`SEQUENCER
`4
`4 U
`L , SEQUENCER L
`
`TO
`TO
`FLASH
`XFLI?',
`ARRAY
`62
`62
`
`— L
`7
`
`PIE__7
`----m i
`"DISK READ"
`"DISK READ"
`
`SECTOR NUMBER
`SECTOR NUMBER
`
`170
`170
`
`YES
`YES
`
`IS
`IS
`SECTOR NUMBER
`SECTOR NUMBER
`WITHIN VALID
`WITHIN VALID
`RANGE?
`RANGE?
`
`NO
`
`176 \ II
`SEEK SHTT FOR CHIP, BLOCK AND
`SEEK SHTT FoR CHIP, BLOCK AND
`HEADER POINTER CORRESPONDING
`HEADER PoINTER CORRESPONDING
`TO SECTOR NUMBER
`TO sEcToR NUMBER
`
`1s2\
`
`/172
`172
`II /
`SET RETURN STATUS
`SET RETURN STATUS
`TO INVALID
`TO INvALID
`SECTOR NUMBER RANGE
`sEcToR NUMBER RANGE
`
`CALL SECTORS
`SEEK
`
`184
`
`SECTOR
`FOUND?
`
`186
`\
`sEcTCgR'READ
`
`180
`" /
`RETURN
`551L522
`HEADER
`NOT FOUND
`NOT FOUND
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0005
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`Oct. 13, 1998 (cid:9)
`Oct. 13,1998
`
`Sheet 5 of 22 (cid:9)
`Sheet 5 0f 22
`
`5,822,781
`5,822,781
`
`P IIE=_3 "SEEK"
`1: "SEEK"
`
`SECTOR NUMBER (SNi)
`SECTOR NUMBER (SNi)
`
`190
`190
`x LAST
`LAST
`READ HEADER =
`READ HEADER =
`LAST HEADER IN
`LAST HEADER IN
`BLOCK?
`BLOCK?
`
`YES
`
`NO [192
`READ NEXT HEADER FROM
`READ NEXT HEADER FROM
`LAST HEADER READ BY
`LAST HEADER READ BY
`CALLER
`CALLER
`
`194
`
`SECTOR
`NUMBER =
`LSNc ?
`
`HEADER
`
`198
`YES
`
`CRCG =
`CRC STORED?
`
`READ SECTOR HEADER
`READ SECTOR HEADER
`TRANSLATION TABLE
`TRANSLATION TABLE
`
`‘
`
`IS
`VALUE OF
`CHIP PAIR, BLOCK AND
`HEADER OFFSET
`< FFFF?
`
`200
`T
`200
`DETERMINE SECTOR SIZE
`DETERMINE SECTCR SIzE /
`
`7-210
`210
`L f
`SET SCAN COUNT
`SET SCAN CouNT
`TO 0
`TO 0
`
`212
`212
`
`YES
`
`SCAN COUNT
`SCAN COUNT
`= MAXIMUM SCAN
`= MAXIMUM SCAN
`COUNT?
`COUNT?
`
`224
`s/
`RETURN
`HEADER
`HEADER
`NOT FOUND
`NOT FOUND
`
`NO
`
`214
`
`LSNC = SN ?
`
`216
`YES f 216
`YES
`
`GENERATE CRC FOR
`GENERATE CRC FOR
`CURRENT HEADER
`CURRENT HEADER
`
`218
`
`YES
`
`M
`
`IS CRCG =
`IS CRCG =
`CRC STORED ?
`CRC STORED ?
`
`220
`NO [ 220
`
`MARK HEADERS DIRTY
`MARK HEADERS DIRTY
`
`T
`\ (cid:9)
`RETURN CHIP PAIR, BLOCK,
`RETURN CHIP PAIR, BLOCK,
`OFFSET, SECTOR SIZE,
`AND ATTRIBUTE
`AND A‘ITRIBUTE
`
`\OFFSET, SECTOR SIZE, i
`
`202
`202
`
`RETURN
`
`204
`204
`
`INCREMENT SCAN COUNT
`INCREMENT SCAN COUNT —>
`
`si-- 222
`" f 222
`
`(cid:9) k
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0006
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`Oct. 13, 1998 (cid:9)
`Oct. 13,1998
`
`Sheet 6 of 22 (cid:9)
`Sheet 6 0f 22
`
`5,822,781
`5,822,781
`
`I: I IE: _ El "DISK WRITE"
`II X IIG ni "DISK WRITE"
`
`SECTOR NUMBER (SNi)
`SECTOR NUMBER (SNi)
`
`230
`
`NO
`NO
`
`SN i
`VALID ?
`
`
`
`YES (cid:9)
`
`2 236
`
`/236
`
`1- 232
`‘ f 232
`RETURN INvALID RANGE
`RETURN INVALID RANGE
`
`ENABLE CHARGE PUMP
`ENABLE CHARGE PUMP
`
`‘
`
`238
`{y CALL SEEK /
`
`CALL SEEK
`
`240
`240
`
`f 242
`242
`
`244
`
`Vpp
`VALID?
`
`YES
`
`246
`246
`
`YES
`
`HEADER
`HEADER
`ALREADY EXIST
`ALREADY ExIST
`FoR SM?
`FOR SN i?
`
`NO
`NO
`4
`
`ATTRIBUTE
`ATTRIBUTE
`woRD INDICATE
`WORD INDICATE
`TRACK
`TRACK
`BAD?
`BAD?
`
`YES
`YES
`
`RETURN
`BESTTLIJR'X'EK
`BAD TRACK
`
`>
`-O.
`
`NO
`NO
`/ 247 (cid:9)
`/ 247
`
`2423
`248
`
`MARK DIRTY
`MARK DIRTY
`HEADER OF
`HEADER OF
`PREVIOUS COPY
`PREvIoUS CCPY
`
`CACHE
`MARK DIRTY?
`
`YES
`
`NO
`
`1'
`249
`V
`249
`\ INCREMENT REv #
`INCREMENT REV #
`FOR LSN
`FOR LSN
`4
`I
`
`II
`
`V
`250
`ALLOCATE FREE PHYSICAL
`ALLoCATE FREE PHYSICAL / 250
`SECTOR
`SECTOR
`4
`Y
`252
`GENERATE CR0 FOR / 252
`GENERATE CRC FOR
`HEADER
`HEADER
`4
`+
`254
`254
`WRITE HEADER TO BSTT /
`WRITE HEADER TO BSTT
`
`4
`l
`256
`WRITE SECTOR DATA & ECC /256
`WRITE SECTOR DATA & ECC (cid:9)
`INTO DATA SPACE
`INTO DATA SPACE
`
`V
`
`. r
`
`258
`258
`f
`‘
`UPDATE SHTT TO PoINT MoST
`UPDATE SHTT TO POINT MOST
`RECENT VERSION OF SECTOR
`RECENT vERSIoN OF SECTOR
`I
`f 260
`,/- 260
`4,
`DISABLE CHARGE PUMP
`DISABLE CHARGE PUMP
`,7-- 262
`f 262
`l
`ENABLE CLEANUP STATE
`ENABLE CLEANUP STATE
`MACHINE
`MACHINE
`
`4
`
`V
`
`234
`
`RETURN
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0007
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`Oct. 13, 1998 (cid:9)
`Oct. 13, 1998
`
`Sheet 7 of 22 (cid:9)
`Sheet 7 0f 22
`
`5,822,781
`5,822,781
`
`G (cid:9) 10A
`PIE_1I]A
`"ALLOCATE FREE PHYSICAL MEMORY"
`IIALLOCATE FREE PHYSICAL MEMORY"
`
`SECTOR SIZE, CALLER TYPE
`SECTOR SIZE, CALLER TYPE
`271
`
`CALLER
`= HOST?
`YES (cid:9)
`
`272
`
`RESERVES - SECTOR SIZE > FLASH WARN1?
`
`NO
`
`YES (cid:9)
`
`274
`
`274 /
`
`RESERVE STATUS = OK I
`RESERVE STATUS = OK
`
`RESERVE STATUS = FLASH WARN1 I
`RESERVE STATUS : FLASH WARN1
`
`YES
`
`RESERVES - SECTOR SIZE > FLASH WARN2?
`RESERVES — SECTOR SIZE > FLASH WARN2?
`
`275
`275
`
`NO
`NO (cid:9)
`
`‘I
`
`276
`f 276
`
`RESERVE STATUS = FLASH WARN 2 I
`RESERVE STATUS = FLASH WARN 2
`
`YES
`
`RESERVES - SECTOR SIZE > STANDBY?
`RESERVES — SECTOR SIZE > STANDBY?
`
`278
`278
`
`140
`
`282
`282
`
`NO (cid:9)
`NO
`
`279
`279 f
`II
`RESERVE STATUS = STANDBY I
`RESERvE STATUS = STANDBY
`I
`f 280
`/- 280
`
`DISK NO MORE WRITES
`DISK NO MORE wRITES
`
`>
`
`(cid:9)
`285
`285
`\
`\
`SELECT A
`SELECT A
`NEW BLOCK
`NEW BLOCK
`CHAIN
`CHAIN
`‘I
`
`HAVE ALL
`HAVE ALL
`BLOCK CHAINS BEEN
`BLOCK CHAINS BEEN
`SEARCHED?
`SEARCHED?
`
`YES
`YES
`
`NO
`
`306
`306
`
`NO
`NO
`
`CALLER
`CALLER
`TYPE
`TYPE
`CLEAN-UP?
`CLEAN-UP?
`
`SET CSM STATE
`SET CSM STATE
`TO IDLE
`TO IDLE
`308 A
`FORCE FOREGROUND
`FORCE FOREGROUND
`CLEANUP
`CLEANUP
`
`SINGLE BLOCK
`SINGLE BLOCK
`MODE
`MODE
`
`*1, NO
`
`284
`284
`
`YES
`
`HAVE
`HAVE
`ALL CHIP
`ALL CHIP
`PAIRS IN CURRENT
`PAIRS IN CURRENT
`BLOCK CHAIN BEEN
`BLOCK CHAIN BEEN
`SEARCHED
`SEARCHED
`
`288
`
`SELECT ANOTHER
`SELECT ANOTHER YES
`6-4-CHIP PAIR IN CURREN
`‘<—CHIP PAIR IN CURRENT
`BLOCK CHAIN
`BLOCK CHAIN
`
`(PD
`
`I FIG. _1OB I
`4, FIG. _10B 4,
`
`286
`
`IS
`IS
`CURRENT
`CURRENT
`CH“: PA|R
`CHIP PAIR
`USY?
`USY?
`'
`NO
`NO
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0008
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`Oct. 13, 1998
`Oct. 13, 1998 (cid:9)
`
`Sheet 8 of 22 (cid:9)
`Sheet 8 0f 22
`
`5,822,781
`5,822,781
`
`0 PIE_ IIIIB
`,---IF" I G _ 1_ 1111 111
`t FIG. _10A f
`L_AJ . (cid:9)
`A M
`T FIG. _1OA T
`290 -,
`290 X
`SELECT ANOTHER
`SELECT ANOTHER
`CHIP PAIR IN
`‘
`CHIP PAIR IN
`4-
`A
`CURRENT
`CURRENT
`BLOCK CHAIN
`BLOCK CHAIN
`
`289
`
`YES
`IS CURRENT
`CHIP PAIR ALLOCATE
`TO ANOTHER
`TO ANOTHER
`- HD0533?
`ROCESS9
`
`NO
`
`292
`292 \
`SELECT ANOTHER
`SELECT ANOTHER
`CHIP PAIR IN
`CH'P PA'R 'N
`CURRENT
`CURRENT
`BLOCK CHAIN
`BLOCK CHAIN
`
`A‘
`A
`
`291
`
`NO
`
`YES
`
`IS CURRENT
`IS CURRENT
`CHIP PAIR FOCUS OF
`CHIP PAIR FOCUS OF
`CLEANUP,
`CLEAN-UP?
`-
`
`294 -,
`
`294x
`
`‘
`1E-
`“
`
`SELECT ANOTHER
`SELECT ANOTHER
`CHIP PAIR IN
`CHIP PAIR IN
`CURRENT
`CURRENT
`BLOCK CHAIN
`BLOCK CHAIN
`
`293
`
`YES
`
`NO
`
`MAX NUMBER
`IAIQXHEXQIEESR
`OF HEADERS
`STORED IN
`STORED IN
`BSTT?
`
`296 -\
`296 K
`SELECT ANOTHER
`SELECT ANOTHER
`BLOCK IN
`BLOCK IN
`CURRENT
`CURRENT
`BLOCK CHAIN
`BLOCK CHAIN
`298 -----\
`
`A- 4—
`<
`“
`
`NO
`
`‘A
`
`SELECT ANOTHER
`SELECT ANOTHER
`BLOCK IN
`BLOCK IN
`CURRENT
`CURRENT
`BLOCK CHAIN
`BLOCK CHAIN
`
`YES
`
`NO
`
`/- 295
`
`SPACE
`AVAILABLE
`AVAILABLE
`ON BLOCK?
`ON BLOCK?
`
`YES
`
`297
`
`BLOCK
`BAD?
`
`NO
`299 --
`STORE CHIP PAIR AND BLOCK
`299 \ STORE CHIP PAIR AND BLOCK
`NUMBERS IN RAM
`NUMBERS IN RAIvI
`II
`300
`WRITE BSO IN HEADER IN BSTT OF
`300 \ WRITE BSO IN HEADER IN BSTT OF
`CURRENT CHIP PAIR AND BLOCK
`CURRENT CHIP PAIR AND BLOCK
`III
`4,
`301
`301 \ DECREASE TFFA, TFFB, TFFC
`DECREASE TFFA, TFFB, TFFC
`+
`302 (cid:9)
`RETURN CHIP PAIR, BLOCK AND
`302 \ RETURN CHIP PAIR, BLOCK AND
`OFFSET TO HEADER TO CALLER
`OFFSET TO HEADER TO CALLER
`
`304
`304
`
`RETURN
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0009
`
`

`
`U.S. Patent (cid:9)
`Oct. 13,1998
`U.S. Patent
`Oct. 13, 1998 (cid:9)
`—FIG (cid:9) 11
`I_:' I I3: _ 1 1
`
`Sheet 9 0f 22
`Sheet 9 of 22 (cid:9)
`
`5,822,781
`5,822,781
`
`STARTING BLOCK OF WRITE
`STARTING BLOCK OF WRITE
`
`•
`•
`Q
`
`CP1O,
`B1
`
`. .
`
`.' \ 320
`.
`320
`•
`•
`'
`
`'
`.
`
`STARTING DESTINATION
`STARTING DESTINATION
`BLOCK OF CSM1
`BLOCK OF CSM1
`
`CP15,
`B15
`
`•
`•
`
`CF10,
`B15
`
`• • •
`
`Se (cid:9)
`•
`
`322
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0010
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`Oct. 13, 1998 (cid:9)
`061. 13, 1998
`
`Sheet 10 of 22 (cid:9)
`Sheet 10 0f 22
`
`5,822,781
`5,822,781
`
`-----IX G (cid:9)
`II I E _12 A "ALLOCATE FREE PHYSICAL MEMORY TO HOST"
`11_ (cid:9)
`Ar\_ "ALLOCATE FREE PHYSICAL MEMORY TO HOST"
`i
`
`1205
`1 205
`
`SECTOR SIZE
`SECTOR SIZE
`
`YES (cid:9)
`YES
`
`1202
`1202
`
`IF
`IF
`FREE FLASH -
`FREE FLASH -
`SECTORSIZE <
`SECTORSIZE <
`STANDBY
`STANDBY
`FLASH?
`FLASH?
`
`NO
`
`YES
`YES
`
`1204
`1204
`
`RETuRN IN
`RETURN IN
`STANDBY
`STANDBY
`
`
`
`IS THERE
`IS THERE
`SUFFICIENT FREE
`SUFFICIENT FREE
`MEMORY IN BLOCK HOST
`MEMORY IN BLOCK HOST
`LAST ALLOCATED INTO
`LAST ALLOCATED INTO
`TO STORE THIS
`TO STORE THIS
`SECTOR?
`SECTOR?
`,i, NO
`
`MOST FREE BLOCK = 0
`MOST FREE BLOCK = 0
`
`1206
`1206
`<-----'
`
`I
`1208
`1208
`MOST FREE CHIP = o /
`MOST FREE CHIP = 0
`+
`I
`1210
`1210
`<....___./
`GREATEST SCORE = 0
`GREATEST SCORE = 0 V
`
`MOST FREE <
`SECTOR SIZE?
`
`1212
`
`YES
`YES ALL BLOCKS IN ARRAY
`ALL BLOCKS IN ARRAY
`SEARCHED?
`SEARCHED?
`
`:
`
`1260
`/
`DO A FOREGROUND
`DO A FOREGROUND
`CLEANUP
`CLEANUP
`‘_—
`4
`1262
`SCAN FoR NEXT AVAILABLE 1262
`SCAN FOR NEXT AVAILABLE
`HEADER IN CURRENT
`>
`HEADER IN cuRRENT /
`CHIP PAIR AND BLOCK
`CHIP PAIR AND BLOCK
`1264
`I
`1264
`4
`WRITE 880 IN /
`WRITE BSO IN
`HEADER
`HEADER
`
`4,
`DECREASE TFFA, TFFB,
`DEcREAsE TFFA, TFFB,
`TFFC
`TFFC
`4
`1266
`1266
`\ RETURN CHIP PAIR,
`RETuRN CHIP PAIR,
`,---
`BLOCK, AND /
`BLOCK, AND
`HEADER OFFSET
`HEADER OFFSET
`
`II
`
`RETURN
`
`(cid:9))04
`
`+ NO 1214
`YES
`CURREN
`CHIP PAIR
`BUSY?
`NO 1216
`CURREN
`CHIP PAIR
`TARGETED FOR
`LEANUP?
`
`YES
`
`NO
`
`1218
`
`IS
`CURENT BLOCK
`ALLOCATED BY
`A CSM?
`NO 1220
`
`YES
`
`(cid:9)o*
`
`BLOCK BAD?
`
`YES
`
`(cid:9)>41
`
`1230
`
`,1, NO (cid:9)
`MAX
`NUMBER OF
`NUMBER OF
`HEADERS ALREADY
`HEADERS ALREADY
`WRITTEN
`WRITTEN
`IN BLOCK?
`IN BLOCK?
`
`YES
`YES
`
`IFIGURE12B I
`FIGURE 12B
`
`NO
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0011
`
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`Oct. 13, 1998 (cid:9)
`Oct. 13,1998
`
`Sheet 11 of 22 (cid:9)
`Sheet 11 0f 22
`
`5,822,781
`5,822,781
`
`-----m X n (cid:9)
`I: I E __1 2 B "ALLOCATE FREE PHYSICAL MEMORY TO HOST"
`1_I XII "ALLOCATE FREE PHYSICAL MEMORY TO HOST"
`lo
`fF|GURE12Af
`(E)
`
`t FIGURE 12A t yi
`
`"
`
`RULE 1 = TFFBC * W1
`RULE 1 = TFFBC * W1
`
`RULE 2 = (TPDFC - TDFC) * W2
`RULE 2 = (TPDFC - TDFC) * W2
`T
`4
`RULE 3 = TDFB * W3
`RULE 3 = TDFB * W3
`T
`4
`RULE 4 = DELTA CYCLE COUNT * W4
`RULE 4 = DELTA CYCLE COUNT * W4
`
`4
`RULE 5=
`RULE 5 =
`BLOCK IN CHIP NOT ALLOCATED * W5
`BLOCK IN CHIP NOT ALLOCATED * W5
`T
`4
`TOTAL =
`TOTAL =
`RULE 1 + RULE 2 + RULE 3 + RULE 4 + RULE 5
`RULE 1 + RULE 2 + RULE 3 + RULE 4 + RULE 5
`
`1232
`1232 /
`
`[1234
`1234
`
`1235
`1235
`/
`
`-1236
`/123s
`
`e„-1238
`/1238
`
`1240
`/1240
`
`1242
`1242
`
`TOTAL >
`GREATEST
`SCORE?
`
`YES
`
`NO
`NO
`
`•
`a»
`
`GREATEST SCORE = TOTAL
`GREATEST SOORE = TOTAL
`
`v
`MOST FREE = TFFBC
`MOST FREE = TFFBC
`
`v
`
`MOST FREE BLOCK = CURRENT BLOCK
`MOST FREE BLOCK = OURRENT BLOCK
`
`v
`
`MOST FREE CHIP = CURRENT CHIP
`MOST FREE CHIP = OURRENT CHIP
`
`1243
`
`/124s
`
`/ 1244
`/ 1244
`
`1246
`1246 /
`
`1248
`1248 /
`
`E
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0012
`
`(cid:9)
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`0a. 13, 1998
`Oct. 13, 1998 (cid:9)
`
`Sheet 12 0f 22
`Sheet 12 of 22 (cid:9)
`
`5,822,781
`5,822,781
`
`I IG (cid:9) 1 (cid:9)
`P IE_ 1 3 "MARK DIRTY"
`"MARK DIRTY"
`SN AND CHIP, BLOCK, POINTER TO HEADER
`SN AND CHIP, BLOCK, POINTER TO HEADER
`OF EARLIER REV.
`OF EARLIER REV.
`
`320
`320
`
`IS CHIP PAIR (cid:9)
`IS CHIP PAIR
`CONTAINING THAT
`CONTAINING THAT
`LOCATION
`LOCATION
`BUSY?
`
`BUSY?
`
`322 --\
`
`322
`
`YES
`YES
`
`NO
`NO
`
`324 f
`
`[324
`
`V
`'I
`
`SET DIRTY BITS OF
`sET DIRTY BITS OF
`ATI'RIBUTE WORD TO Ib
`ATTRIBUTE WORD TO ch
`
`CACHE THE CHIP PAIR,
`CACHE THE CHIP PAIR,
`BLOCK AND OFFSET
`BLOCK AND OFFSET
`
`326
`
`RETURN
`
`ey-} 326
`
`—FIG (cid:9) 1
`E‘ I E _ 1 E
`"ENABLE CSM"
`"ENABLE CSM"
`
`,--- 340
`/ 340
`
`NO
`NO
`
`CSM1 : ACTIVE?
`
`II
`ENABLE CSM1
`ENABLE CSM1
`(SET CSM1.STATUS TO ACTIVE)
`(SET CSM1.STATUS TO ACTIVE)
`
`362
`362
`
`YES
`YES
`
`V
`CSM1 NEXT STATE =
`CSM1 NEXT STATE =
`EVALUATE IF CLEANUP
`EVALUATE lF CLEANUP
`IS NEEDED
`IS NEEDED
`
`364
`/364
`
`"
`
`361
`361
`
`RETURN
`RETURN
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0013
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`0a. 13, 1998
`Oct. 13, 1998 (cid:9)
`
`Sheet 13 0f 22
`Sheet 13 of 22 (cid:9)
`
`5,822,781
`5,822,781
`
`co
`Cr)
`
`wwm \
`
`:
`
`EXECUTE ONE STATE
`
`3% \,
`
`>
`
`P _io_
`DD
`MZ
`Lil <
`OW
`11-10
`0
`LL
`
`FORCE CLEANUP
`
`ENABLE CSM
`
`CLEANUP SERVICES
`
`
`
`win |H-H|H.|
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0014
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`0a. 13, 1998
`Oct. 13, 1998 (cid:9)
`
`Sheet 14 0f 22
`Sheet 14 of 22 (cid:9)
`
`5,822,781
`5,822,781
`
`—E-1 G 16
`"EXECUTE ONE STATE"
`"EXECUTE ONE STATE"
`
`366
`
`346
`346
`K
`
`NO
`NO
`
`CSM2 = ACTIVE’?
`
`NO
`
`CSM1 = ACTIVE?
`
`368 X
`
`EXECUTE CSM2.NEXTSTATE
`
`EXECUTE CSM1.NEXTSTATE
`
`374
`
`RETURN
`
`—Jr' I G (cid:9) 1-7 "STATES OF CLEAN-UP STATE MACHINE"
`1: I E: _ 17 "STATES OF CLEAN-UP STATE MACHINE"
`
`380
`380
`
`NO
`
`EVALUATE IF
`CLEANUP
`NEEDED
`
`382
`
`382 \
`
`YES
`
`CHOOSE BLOCK TO CLEANUP
`CHOOSE BLOCK To CLEANUP
`
`10 KEEP EXECUTING
`KEEP EXECUTING
`UNTIL BLOCK CHOSEN
`UNTIL BLOCK CHOSEN
`
`383
`383
`
`BLOCK
`BLOCK
`SELECTED
`SELECTED
`
`NO MORE SECTORS TO COPY OUT
`NO MORE SECTORS TO COPY OUT
`
`390
`390
`v /
`START ERASE
`START ERASE I
`
`NEED TO
`NEED TO
`ALLCCATE FREE
`ALLOCATE FREE
`PHYSICAL
`PHYSICAL
`MEMORY?
`MEMORY?
`COPY SECTOR TO
`COPY SECTOR TO I
`384 SECTOR (cid:9) BUFFER
`SECTOR BUFFER
`384
`Q
`l \ 385
` \ 385
`ALLOCATE I--
`ALLCCATE
`386 n
`ERASE NOT
`ERASE NOT
`386
` COMPLETE
`392
`\ F— COMPLETE
`" f 392
`COPY PART 0|: SECTOR 6 WAIT FOR ERASE COMPLETE
`WAIT FOR ERASE COMPLETE I
`COPY PART OF SECTOR
`ERASE
`T
`ERASE
`COMPLETE
`POSTCOPY DATABASE UPDATE I
`v COMPLETE
`— POSTCOPY DATABASE UPDATE
`
`y
`SET CSM
`SET CSM (cid:9)
`TO IDLE
`TO IDLE
`
`
`
`396 \
`396 \ 388
`388
`
`POSTERASE DATABASE UPDATE H
`POSTEHASE DATABASE UPDATE ->
`\
`394
`394
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0015
`
`(cid:9)
`(cid:9)
`(cid:9)
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`0a. 13, 1998
`Oct. 13, 1998 (cid:9)
`
`Sheet 15 0f 22
`Sheet 15 of 22 (cid:9)
`
`5,822,781
`5,822,781
`
`11C
`E‘ I E _ 1 3
`"EVALUATE WHETHER CLEAN-UP
`"EVALUATE WHETHER CLEAN-UP
`IS NECESSARY"
`IS NECESSARY"
`tz-- 380
`380
`1/
`
`400
`400
`
`BLOCKS TO
`BLOCKS T0
`CLEANUP > 0?
`CLEANUP > 0?
`
`NO
`N0
`
`401
`401
`K
`CSM NEXT STATE =
`CSM NEXT STATE :
`CHOOSE BLOCK TO CLEANUP
`CHOOSE BLOCK TO CLEANUP
`
`YES
`
`\ (cid:9)
`
`409
`\ T
`SET CSM
`S$E1TS§¥O
`STATUS TO
`IDLE
`IDLE
`
`V
`
`402
`402
`I f
`CALCULATE TOTAL DIRTY
`CALCULATE TOTAL D|RTY
`AS PERCENTAGE OF TOTAL
`AS PERCENTAGE OF TOTAL
`REsERvEs
`RESERVES
`
`404
`404
`
`NQ
`NO
`
`PERCENTAGE
`PERCENTAGE
`OF DIRTY EXCEED
`OF DIRTY EXCEED
`TRIGGER
`TRIGGER
`POINT
`POINT
`406
`\ YES
`YES
`BLOCKS TO CLEANUP COUNT =
`BLOCKS TO CLEANUP COUNT =
`NUMBER OF BLOCKS TO CLEAN
`NUMBER OF BLOCKS TO CLEAN
`
`408
`408
`
`"
`CSM.NEXTSTATE =
`CSM.NEXTSTATE =
`CSM_CHOOSE BLOCK TO
`CSM_CHOOSE BLOCK TO
`CLEANUP
`CLEANUP
`I
`
`410
`410
`
`—JrI G (cid:9) 19 "ADAPTIVE ADJUSTMENT OF
`I I E — 1 5‘ "ADAPTIVE ADJUSTMENT OF
`CLEAN-UP TRIGGER"
`sTART
`CLEAN-UP TRIGGER"
`START (cid:9)
`
`412
`
`HAVE
`THERE BEEN
`SOME NUMBER OF
`SOME NUMBER OF
`FOREGROUND
`FOREGROUND
`CLEAN-UPS IN LAST
`CLEAN-UPS IN LAST
`M WRITES?
`M WRITES?
`
`414
`
`YES
`
`DECREASE TRIGGER POINT
`DECREASE TRIGGER POINT
`BY SOME DELTA
`BY SOME DELTA
`
`NO
`
`416
`416
`
`NO
`NO
`
`HAS
`THERE NOT BEEN A
`THERE NOT BEEN A
`FOREGROUND ERASE IN
`FOREGROUND ERASE IN
`THE LAST N WRITES?
`THE LAST N WRITES?
`
`418
`YES f 418
`YES
`
`INCREASE TRIGGER POINT
`INCREASE TRIGGER POINT
`BY SOME DELTA
`BY SOME DELTA
`
`420
`420
`
`RETURN
`RETURN
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0016
`
`

`
`U.S. Patent
`U.S. Patent
`
`Oct. 13, 1998
`Oct. 13, 1998
`
`Sheet 16 of 22 (cid:9)
`Sheet 16 0f 22
`
`5,822,781
`5,822,781
`
`G (cid:9)
`I ILI "CHOOSE BLOCK TO CLEAN-UP"
`1: I [i __ 2 I] "CHOOSE BLOCK TO CLEAN-UP"
`382
`K 382
`
`440
`440
`
`1
`
`ALL CHIPS SEARCHED
`ALI- CHIPS SEARCHED
`LOOP UNTIL ALL CHIP
`LOOP UNT L ALL CHIP
`PAIRS SEARCHED /
`PAIRS SEARCHED
`ALL CHIPS
`ISSL'IEICHED
`ALL BLOCKS
`NOT SEARCHED
`SEARCHED
`444
`SEARCHED
`"
`444
`LQQP UNT|L
`LOOP UNTIL
`ALL BLOCKS ON CH":
`ALL BLOCKS ON CHIP
`PAIR SEARCHED
`PAIR SEARCHED
`
`45s
`458
`v /
`WRITE CHIP PAIR AND BLOCK
`WRITE CHIP PA R AND BLOCK
`WITH GREATEST SCORE
`WITH GREATEST SCORE
`INTO FOCUS WINDOW
`INTO FOCUS WINDOW
`
`445
`
`NO
`
`V
`RULE 0 = CHIP PAIR
`RULE O = CHIP PAIR
`TARGETED FOR ERASE*
`TARGETED FOR ERASE*
`WEIGHTO
`WEIGHTO
`
`446
`446
`
`448
`448
`
`449
`449
`
`II
`RULE 1 = AMOUNT DIRTY*
`RULE 1 = AMOUNT DIRTY*
`WEIGHT1
`WEIGHT1
`I
`4,
`RULE 2 =
`RULE 2 =
`FREE FLASH ON SAME CHIP
`FREE FLASH ON SAME CHIP
`PAIR* WEIGHT2
`PAIR* WEIGHT2
`I
`4,
`RULE 3 =
`RULE 3 =
`LAST CHIP PAIR ERASED*
`LAST CHIP PAIR ERASED*
`WEIGHT3
`WEIGHT3
`I
`450
`450 \
`RULE 4 =
`RULE 4 =
`(BYTE PER BLOCK — CLEAN
`(BYTE PER BLOCK - CLEAN
`WORDS THIS BLOCK)*
`WORDS THIS BLOCK)*
`WEIGHT4
`WEIGHT4
`
`451
`
`I
`RULE 5 =
`A CYCLE COUNT*
`WEIGHT5
`I
`1
`TOTAL SCORE =
`TOTAL SCORE =
`RULE 1 — RULE 2 — RULE 3
`RULE1 — RULE2 — RULE3
`+ RULE 4 + RULE 5 — RULE 0
`+ RULE4 + RULE5 — RULEO
`
`452
`
`452 \
`
`460
`460
`I /
`CSM NEXTSTATE =
`CSM NEXTSTATE =
`ALLOCATE FREE PHYSICAL
`ALLOCATE FREE PHYSICAL
`SECTOR
`SECTOR
`
`462
`462
`
`( RETURN
`
`TOTAL SCORE =
`TOTAL SCORE =
`GREATEST
`GREATEST
`SCORE?
`SCORE?
`
`NO
`
`456 'x
`SAVE BLOCK AND CHIP PAIR
`SAVE BLOCK AND CHIP PAIR
`INFO AND TOTAL SCORE
`INFO AND TOTAL SCORE
`
`APPLE INC.
`EXHIBIT 1205 - PAGE 0017
`
`

`
`U.S. Patent (cid:9)
`U.S. Patent
`
`0a. 13, 1998
`Oct. 13, 1998 (cid:9)
`
`Sheet 17 of 22 (cid:9)
`Sheet 17 0f 22
`
`5,822,781
`5,822,781
`
`—SIG Z 1
`"CSM ALLOCATE FREE
`TI I; _ 2 1 "CSM ALLOCATE FREE
`PHYSICAL SECTOR
`PHYSICAL SECTOR
`
`z-- 384
`/ 384
`480
`
`480 /
`
`CSM.NEXTSTATE =
`CSM.NEXTSTATE =
`START ERASE
`START ERASE
`
`472
`472
`
`VALID
`VALID
`SECTOR LEFT
`SECTOR LEFT
`IN FOCUS BLOCK?
`IN FOCUS BLOCK?
`
`NO
`
`474
`YES
`CALL SECTORS_ALLOCATE /
`CALL SECTORS_ALLOCATE
`FREE PHYSICAL SECTOR
`FREE PHYSICAL SECTOR
`
`\ CSM.NEXTSTATE =
`CSM.NEXTSTATE =
`COPY SECTOR TO SECTOR
`COPY SECTOR TO SECTOR
`BUFFER
`BUFFER
`
`476 (cid:9)
`476
`
`478
`478
`
`RETURN
`
`I: I [i _ 2 3 "COPY SECTOR TO SECTOR BUFFER"
`—lir I L (cid:9)
`"COPY SECTOR TO SECTOR BUFFER"
`.k„---- 385
`480 K 385
`‘
`r 480
`/
`COPY SECTOR DATA TO SECTOR BUFFER
`COPY SECTOR DATA TO SECTOR BUFFER
`l
`1
`CSM.NEXTSTATE = COPY PART OF SECTOR
`CSM.NEXTSTATE = COPY PART OF SECTOR
`if
`
`
`
`482
`/ 482
`
`/ 484
`
`I? I I; __ 34 "COPY PART OF SECTOR"
`--ir 11 L7 (cid:9)
`At "COPY PART OF SECTOR" (cid:9)
`
`.- 386
`386
`1/
`
`496

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