throbber
Apple Inc. v. Realtime Data, LLC d/b/a/ IXO
`Cases IPR2016-01365, -01366
`
`!1
`
`Ex. 2013
`Page 1 of 145
`
`

`

`Table of Contents
`
`“preloading the boot data into a cache memory” …………3
`“preloading…prior to completion of initialization of 

`the central processing unit” ……………………………..…68
`‘963 Patent’s Claim 18 ……………………………………..89
`“preloading boot data, in compressed form…from a 

`boot device into a cache memory” ……………………….111
`“a plurality of encoders are utilized to provide the
`compressed boot data” ……………………………………121
`
`!2
`
`Ex. 2013
`Page 2 of 145
`
`

`

`“preloading the boot data into a cache
`memory”
`
`!3
`
`Ex. 2013
`Page 3 of 145
`
`

`

`
`
`United States Patent
`um
`um Patent No;
`US 7.181.608 HZ
`Fallon et at.
`:45; Date of Patent;
`Feb. 20. 2007
`
`
`r54,
`
`8Y3? It‘d-'4 N‘vl) ‘III‘III()I).‘1 I'D"
`“(H liRATl‘ll) l‘)‘\[ll\(; ”I" ()I’I‘ZR {I l“;
`SVSI’EMS AND ,\|'Pl.|('\l'l()\ PR1X£RAMS
`
`3.
`.‘tn:.TT'
`-i
`4 {"4174 \
`4 “43‘" -“
`
`\‘vulupu. u .:I
`ll 12ml
`\Vulcrgwn cl at
`7 I‘m;
`z "”9“ ”M8 6' J'
`
`'75'
`
`Invent-in
`
`lamci J Fullnn. .\nii-mk. NY (Hg);
`John Huck. ()L'L’Jlllsldg‘. N3 HIS): Paul
`F. Pickcl. 1'!th 2c. NY UN): Sir hen
`J. Mclierlaln. ’13:“ Yer NY (is?
`
`”P
`
`17.1" Asmgncc Rultimc Dal: l.l.( . he“ \‘uxk. N\
`”is,
`
`I ’ ; Xuljci:
`
`Subiu‘l hum) ducluuucr. [lick-nu ul'lliin
`phlz'nl
`IS umcmlnl of .iduixlcd llllilcr 5“
`ll.\' (‘
`IFJilu hj. 21'“ clay»
`
`'3] “
`
`\ppl No “OFF/0.267
`
`'3‘»,
`
`l ilnj
`
`h.“ I. 200]
`
`”:5 )
`
`Prlur Pnbllnxllun Data
`LS Itlll'tltJh‘US-l ‘\l
`Jun.
`(L 2002
`
`int).
`
`Rent“! ['5'- ‘PPHWHW "“8
`l’nuvisinnal applicmmn Nu ‘JJ‘INHIJ, liltJnii l’L-h.
`I. 2““,
`
`'5' ,
`
`lm. “I.
`(2006.4! )
`(ma; 9/34
`420mg,“
`”(l/,1.- rm”,
`{NHRNH
`6'06} ”/00
`7”,” 7|1v'l‘ 7H4”
`.
`.
`‘
`.
`'52,, LS. (1'
`mm Held "f ('lnsfilflrutlun Sea-VII
`,
`'
`711,2.
`7” l. NM; 7' l
`‘ l'Ml. llK. ll 1
`her application lilu l'nr “”va scurth liislun
`References ('ited
`H St P.\I'[~‘N'l ”(XTMlENI'S
`
`i5!»
`
`IL “mum“!
`lURl'IUN‘ l"\|l-N|
`IXX'I ’Mla‘s I'\
`_
`3"”:
`“3'5"“ ""
`It'i-nmmul)
`
`()llll-R l’l'lll Ill-\lIUNS
`
`$224an “Us An" ”00‘ “h '
`
`I)“ mi L "7“ 'D' W
`
`I( 'ivnllnnoji
`
`llwmas l cc
`I‘rmmri Ifmuunyr
`Luixtum Iiiuminw Sun-sh K Sun‘uumisln
`174) .“IUNIUI
`:lgml. or Ilrm I lbll S Nani: H' [Irl’Ul‘ ul
`Rows & t-m)‘ l LP
`
`157)
`
`”15 TRAC]
`
`S) stun“ and mclhmdv. an: pn‘widcd tnv ucceluruiu’l lnruling
`nfupcnilmy “(mm and application [migraine upon wsium
`b‘""_“r “PP““W’” WWW“ ‘1“ "HF IDWL'I-
`J lehtkl It”
`prim-Ming .iu‘clemlhl
`lundlllg H! on ripe-mung :ysmm
`lllCllldCS mmmuining u list iul' bunl L‘JL-J uscd fur hunting a
`amipulcr syslcm. prelimdng 1hr: brim dam urxin iniliahm-
`nun ul'ihc compmcr >}‘>Iclll. dlld wrwcmg ruqucm ll Ir bun!
`dam [mm the crvmplilcr {mun ming xhv prclmnw bum
`dam.
`Ilw hm! data may Culllpn'u'.‘ pnigmm mdu .hsncmlud
`will; an ”pg-ruling >_\ 51cm Ll llic mmpmcx sznluuL mi appli-
`culii‘n pn'gmm. mid [I nrniimmihmi llwruul
`llw hum dam i»
`i'c1rlc\ul lrum .I himl'dm icc Jilin! nhllL‘d m ti cache munmy
`dew-cc llic hnul (Lulu is .slnrcd in u cmnprmscd lnmml on [lu-
`hum deuce nnu Ihi: prclimlul hm: iluu i». iIccun‘iprmsL-d
`pin-i In uziiNinllnm lllL' pnlluxlcd knot Jam lu ihc n'quml-
`mg \_\'\h.‘1']\
`
`'I‘IET'HK \
`
`ll
`
`I‘JT'k Fwy! al
`
`‘l I‘lulnis. U "ranting .‘IIL‘L'ls
`
`
`
` DATA
`
`COMPRESSlON n CACHE
`
`
` I
`
`
`I.
`
`
`
`
`MAIN OH EXPANSlON COMPUTER BUS
`
`l6
`
`APPLE 1001
`
`ENGINE III
`
`
`BUS INTERFACE
`
`
`
`!4
`
`Ex. 2013
`
`Page 4 of 145
`
`Ex. 2013
`Page 4 of 145
`
`

`

`US 7,181,608 B2
`
`(1:
`
`10
`
`15
`
`
`
`27
`set of decoders, or a sequential set of decoders correspond-
`ing to the extracted compression type descriptor. The decod—
`ers D1 .
`.
`. Dn may include those lossless encoding tech-
`niques currently well known within the art, including: run
`length, Huffman, Lempel-Ziv Dictionary Compression,
`arithmetic coding, data compaction, and data null suppres-
`sion. Decoding techniques are selected based upon their
`ability to elIectively decode the various dilIerent types of
`encoded input data generated by the data compression
`systems described above or originating from any other
`desired source.
`As with the data compression systems discussed in US.
`Pat. No. 6,195,024, the decoder module 165 may include
`multiple decoders of the same type applied in parallel so as
`to reduce the data decoding time. An output data buffer or
`cache 170 may be included for bulTering the decoded data
`block output from the decoder module 165. The output
`buffer 70 then provides data to the output data stream. It is
`to be appreciated by those skilled in the art that the data
`compression system 180 may also include an input data
`counter and output data counter operatively coupled to the
`input and output, respectively, ofthe decoder module 165. In
`this manner,
`the compressed and corresponding decom—
`pressed data block may be counted to ensure that suflicicnt
`decompression is obtained for the input data block.
`Again, it is to be understood that the embodiment of the
`data decompression system 180 ofFlG. 10 is exemplary of
`a preferred decompression system and method which may
`be implemented in the present invention, and that other data
`decompression systems and methods known to those skilled
`in the art may be employed for providing accelerated data
`retrieval in accordance with the teachings herein.
`Although illustrative embodiments have been described
`herein with reference to the accompanying drawings, it is to
`be understood that the present invention is not limited to
`those precise embodiments, and that various other changes
`and modifications may be afiected therein by one skilled in
`the art without departing from the scope or spirit of the
`invention. All such changes and modifications are intended
`to be included within the scope of the invention as defined
`by the appended claims.
`What is claimed is:
`1. A method for providing accelerated loading of an
`operating system, comprising the steps of:
`maintaining a list ofboot data used for booting a computer
`system;
`initializing a central processing unit of the computer
`system;
`preloading the boot data into a cache memory prior to
`completion of initialization of the central processing
`unit of the computer system, wherein preloading the
`boot data comprises accessing compressed boot data
`from a boot device; and
`servicing requests for boot data from the computer system
`using the preloaded boot data after completion of
`initialization of the central processing unit of the com-
`puter system, wherein servicing requests comprises
`accessing compressed boot data from the cache and
`decompressing the compressed boot data at a rate that
`increases the effective access rate of the cache.
`2. The method of claim 1, wherein the boot data com-
`prises program code associated with one of an operating
`system of the computer system, an application program, and
`a combination thereof.
`3. The method of claim 1, wherein the preloading is
`performed by a data storage controller connected to the boot
`device.
`
`28
`4. The method of claim 1, further comprising updating the
`list of hoot data.
`5. The method of claim 4, wherein the step of updating
`comprises adding to the list any boot data requested by the
`computer system not previously stored in the list.
`6. The method of claim 4, wherein the step of updating
`comprises removing from the list any boot data previously
`stored in the list and not requested by the computer system.
`7. A system for providing accelerated loading of an
`operating system of a host system comprising:
`a digital signal processor (DSl’) or controller;
`a cache memory device; and
`a non-volatile memory device, for storing logic code
`associated with the D81’ or controller, wherein the logic
`code comprises instructions executable by the DSP or
`controller for maintaining a list of boot data used for
`booting the host system, for preloading the compressed
`boot data into the cache memory device prior to
`completion of initialization of the central processing
`unit of the 110st system, and for decompressing the
`preloaded compressed boot data, at a rate that increases
`the efi'ective access rate ofthe cache, to service requests
`for boot data from the host system after completion of
`initialization of the central processing unit of the host
`system.
`8. The system of claim 7, wherein the logic code in the
`non-volatile memory device further comprises program
`instructions executable by the DSP or controller for main-
`taining a list of application data associated with an applica-
`tion program; preloading the application data upon launch-
`ing the application program. and servicing requests for the
`application data from the host system using the preloaded
`application data.
`9. The method of claim 1, further comprising:
`maintaining a list of application data associated with an
`application program;
`preloading the application data into the cache memory
`prior to completion of initialization of the central
`processing unit of the computer system, wherein pre-
`loading the application data comprises accessing com-
`pressed application data from a boot device; and
`servicing requests for application data from the computer
`system using the preloaded application data after
`completion of initialization of the central processing
`unit of the computer system, wherein servicing requests
`comprises accessing compressed application data from
`the cache and decompressing the compressed applica-
`tion data.
`10. The method of claim 1, further comprising a data
`compression engine for compressing, wherein the compress-
`ing provides the compressed boot data and the data com-
`pression engine provides the compressed boot data to the
`boot device.
`11. The method of claim 1, wherein the decompressing is
`provided by a data compression engine.
`12. The method of claim 1, further comprising a data
`compression engine for compressing, wherein the compress-
`ing provides the compressed boot data, the data compression
`engine provides the compressed boot data to the boot device,
`and the decompressing is provided by the data compression
`engine.
`13. The method of claim 1, wherein the compressed boot
`data is accessed via direct memory access.
`14. The method of claim 1, wherein l—lufi'man encoding is
`utilized to provide the compressed boot data.
`15. The method of claim 1, wherein Lempel-Ziv encoding
`is utilized to provide the compressed boot data.
`30
`
`3O
`
`40
`
`50
`
`6O
`
`
`
`!5
`
`Ex. 2013
`
`Page 5 of 145
`
`Ex. 2013
`Page 5 of 145
`
`

`

`What is claimed is:
`
`1. A method for providing accelerated loading of an
`operating system; comprising the steps of:
`maintaining a list of boot data used for booting a computer 45
`
`system;
`initializing a central processing unit of the computer
`
`system;
`preloading the boot data into a cache memoQ prior to
`completion of initialization of the central processing 50 I
`unit of the computer system wherein preloading the
`.
`boot data comprises accessing compressed boot data
`l
`from a boot device; and
`l
`servicing requests for boot data from the computer system
`using the preloaded hoot data after completion of 55 1
`initialization of the central processing unit of the com-
`IIIII‘
`
`!6
`
`Ex. 2013
`
`Page 6 of 145
`
`I
`
`‘
`
`.'II 11'...
`
`‘I.
`
`I'
`
`‘I
`
`"
`
`Ex. 2013
`Page 6 of 145
`
`

`

`7. A system for providing accelerated loading of an
`sression
`y other 10 operating system of a host system comprising:
`a digital signal processor (DSP) or controller;
`a cache memory device, and
`in US.
`a non-volatile memofl device, for storing logic code
`include
`associated with the DSP or controller, wherein the logic
`lel so as
`code comprises instructions executable by the DSP or
`~ufier or 15
`controller for maintaining a list of boot data used for
`led data
`booting the host system, for preloading the compressed
`: output
`boot data into the cache memory device prior to
`1m. It is
`:he data Mn of initialization of the central processing
`)ut data 20
`unit of the host system, and for decompressing the
`d to the
`preloaded compressed boot data, at a rate that increases
`: 165. In
`the effective access rate of the cache, to service requests
`decom-
`for boot data from the host system after completion of
`ufficient
`initialization of the central processing unit of the host
`
`25
`
`system.
`
`i
`
`i
`
`i
`
`t
`
`I"
`
`I‘
`
`.
`
`II‘
`
`I
`
`!7
`
`Ex. 2013
`
`Page 7 of 145
`
`Ex. 2013
`Page 7 of 145
`
`

`

`
`
`U 500500093632
`
`(l2) United States Patent
`Hm Patent No;
`US 8.090.936 82
`
`Fallon et al. *Jan. 3. 2012 r45) Date of Patent:
`
`
`SYS'I‘EMS AND METHODS FOR
`ACCELERATEDLOADINGOFOPERA'HXG
`swnus \‘VD wm icmm PROGR-Wls‘
`‘
`'
`‘
`‘
`‘
`‘
`‘
`'
`‘
`‘
`Inventors"
`James .I. Fallon Armonk. NY (US);
`.lnltn Buck. Oceanside. NY (List. Paul
`I". l’ickel. Bctltpagc. NY tUSt. Stephen
`.l. McI-Lrlain. NewYurlx. NY (US)
`Amignue; Reultime Dina. l.It(T. Amtttnk. NY (US)
`Noricc
`Subject to any dsclaimcr. the term nt'tltis
`patent is extaided or adjusted under ‘5
`U S.('. ISM?» b} 286 days
`.
`Hus patient 1.» Subtm lv u tcmttttul div
`cluimcr
`
`_«\ppl. Nu.: Il/55l.204
`
`Filt‘d‘
`
`Oct. I9‘ 2006
`
`l’rlctr Puhllcutittn Data
`
`‘1
`1.491169”
`41121753 A
`““33”? "
`*1.0:-1.')3l A
`“7’75” A
`4'10”“ "
`
`I Wm RFD“ 1“ 3'
`5 I‘m “mama
`“ "’77 Wm
`IU 19"?
`Janka-natal.
`'1 ””3 (‘g‘yvl “1
`H “’8’ “'dc'lm” ‘1 "‘
`(C'onlimlfii)
`..,
`‘
`I
`’
`.
`‘
`‘
`,
`H’kLK’N IAILNI m} “MIN l b
`" ”75“
`3 "”3
`((‘nnttnttctlt
`(Y1 Hl'K l‘i tl‘ll
`l( '.'\l'||’)NS
`
`m
`
`Millmttn llnwnnt "Image and t ulcu compruxsinn".( ummtcmvnrltl.
`\nl 1“. 15‘"an \, Inn IR,
`l'l'7‘) pp 7)}
`
`(Continued)
`
`I’rmmn‘ lit'umr'nw - Sumsh K Sitiyuwanshi
`('74) ,-umrm=t; 1:2an or I-Trm
`§tcmct Kc<<lcr, (iolcktcin
`
`us 2017,!008374t-Al
`
`.w t:. 2007
`
`8“ "*‘X I" ~'
`
`-C~
`
`I133.)
`
`161))
`
`(5|)
`
`lJI
`J-’l:H
`
`lib)
`
`Rt-lated [1.5. .\ppl|t'atlttn llama
`(luttiuualiuu 01‘ application NU 09,770‘2h1 filed “u
`H112. 2001. mm, Put. Nu 7.181.608.
`.
`_
`>
`l‘rm h‘ltmui application No. ntttlSO. l 1-1. 11ch! on I ah.
`1 2000
`.
`lnt.( I‘
`(20"01’”
`((06,: 9/00
`‘2("'"_‘“”"
`((06,: W3"
`(2thth1)
`('06P ”/2”
`”'5' (‘l-
`------------------------------- 7130-- 7l3'l- 7' 1"] '3
`Fk'lll of( 'Iusulllcullun S'L-urvh
`,
`,
`. 713 '3
`3"“ “Pl‘lim‘lmn lilo fl" C‘““Fl‘-‘W “"1”“ 1‘15“"?-
`
`Reference» (Tiled
`‘
`,
`7
`‘
`Il§.l’\H-N11)(XIY\1FNI‘S
`:\
`: 19ml"
`\Vctnttotl ct al.
`
`,t 3‘}: 1‘31;
`
`1.9.7.;_______..__
`
`t
`
`"Uh l K“ I
`‘57)
`Syslcnu and methods. are discltmcd Int pint tdmg uccelcrntml
`luudtugttt upcnittttg symctnatttd:tppltuntiun pmgmttts. Intuit:
`aspect, a method 1hr prnvidtng :tccclcmtcd loading Ilr nn
`“penning gyglcn) C(tntprisex the “cpsnff maintaining it 1mm"
`bmt data; [tn-loading the boot data upon initialization ot llic
`computer system: and scmcing rcqucsts for boot data t'mm
`the computer svstcm usim the preloaded boot data.
`In a
`preferred entbt'vdiment. the 17001 data is retrieved from a boot
`device and stated in a nigh: mcuwr} device.
`In another
`aspect.
`:1 method for accelerated loading of an operating
`systum wntpriscs updating, the list 01‘ bout data durtng tltc
`huul pmcg—gs. “hen-In updating, u‘rt‘npt‘iam; uddius tn the hut
`utly hunt data roqumtcd b} the cmuputcr system nut previ-
`ULlai)‘ SlUl’L’d ll] 11): list .mdmr rcutm‘ing from [I]: list an) bowl
`dutu previuucdy tilfim‘d ut the list and um [\hluflztlgd by the
`cuittputcr system.
`
`24 t Iaints. Lt Drawtng Sheets
`
`i
`
`i
`1
`'
`;
`
`:
`3
`.
`z
`
`23
`
`13»;
`
`D
`ata
`Comptession K
`Englne
`
`Cache
`
`A
`
`"
`
`.
`
`.
`| ‘0le
`n e ace
`
`
`
`’
`
`/ x
`
`_ __
`
`.
`
`1
`
`11
`
`t
`'x/
`15 \
`.2
`\x
`-. - ,v- -
`<
`Busitnter-‘arce
`/
`eeeeett /
`\
`<.,
`_M_att_1_Or_Expansion Computer Bus
`\/\1
`
`APPLE 1001
`
`
`
`!8
`
`Ex. 2013
`
`Page 8 of 145
`
`Ex. 2013
`Page 8 of 145
`
`

`

`US 8,090,936 B2
`
`
`
`27
`such changes and modifications are intended to be included
`within the scope of the invention as defined by the appended
`claims.
`
`What is claimed is:
`l. A method comprising:
`maintaining a list ofboot data used for booting a computer
`system, wherein at least a portion of said boot data is
`compressed by a data compression engine to provide
`said at least a portion of said boot data in compressed
`form, and stored in compressed form on a boot device;
`initializing a central processing unit of said computer sys-
`tem;
`preloading said at lea st a portion of said boot data in corn-
`pressed form from said boot device to a memory;
`accessing and decompressing said at least a portion ofsaid
`boot data in said compressed form from said memory;
`and
`utilizing said decompressed at least a portion of said boot
`data to boot said computer system, wherein said at least
`a portion of said boot data is decompressed by said data
`compression engine.
`2. The method of claim 1, wherein said decompressed at
`least a portion of said boot data comprises program code
`associated with an operating system ofsaid computer system.
`3. The method of claim 1; wherein said decompressed at
`least a portion of said boot data comprises program code
`associated with an application program of said computer
`system.
`4. The method of claim 1; wherein said decompressed at
`least a portion of said boot data comprises program code
`associated with an application program and an operating sys-
`tem of said computer system.
`5. The method of claim 1, wherein said preloading is per-
`formed by a data storage controller connected to said boot
`device.
`6. The method of claim 1, further comprising updating the
`list of boot data.
`7. The method of claim 1; wherein Huffman encoding is
`utilized to provide said at least a portion of said boot data in
`said compressed form.
`8. The method of claim 1, wherein Lempel-Ziv encoding is
`utilized to provide said at least a portion of said boot data in
`said compressed form.
`9. The method of claim 1, wherein a plurality of encoders
`are utilized to provide said at least a portion of compressed
`data in compressed form.
`10. The method of claim I, wherein a plurality of encoders
`in a parallel configuration are utilized to provide said at least
`a portion of said data in compressed fonn.
`l l. A system comprising:
`a processor;
`a memory; and
`a non—volatile memory device for storing logic code asso-
`ciated with the processor, wherein said logic code com-
`prises instructions executable by the processor for main-
`taining a list of boot data used for booting the host
`system, at least a portion of said boot data is stored in
`compressed form in said non—volatile memory device,
`said at least a portion of said boot data in compressed
`form is preloaded into said memory, and said preloaded
`at least a portion of boot data in compressed form is
`decompressed and utilized to boot said computer sys-
`tem; 2md
`
`10
`
`15
`
`20
`
`25
`
`40
`
`45
`
`i0
`
`55
`
`60
`
`48
`
`
`
`
`
`28
`a data compression engine for providing said at least a
`portion of said boot data in compressed form by com-
`pressing said at least a portion of said boot data and
`decompressing said at least a portion ofsaidboot data in
`compressed form to provide said decompressed at least
`a portion of boot data.
`12. The system of claim 11. wherein said logic code further
`comprises program instructions executable by said processor
`for maintaining a list of application data associated with an
`application program,
`13. The system of claim 11, wherein said logic code further
`comprises program instructions executable by said processor
`for maintaining a list of application data associated with an
`application program, and wherein said application data is
`preloaded upon launching the application program and uti—
`lized by said computer system.
`14. The system of claim 11, wherein Huffman encoding is
`utilized to provide said at least a portion of said boot data in
`compressed form.
`15. The system of claim 11, wherein Lempel—Ziv encoding
`is utilized to provide said at least a portion of said boot data in
`compressed form.
`1 6. The system of claim 11; wherein a plurality ofencoders
`are utilized to provide said at least a portion of said boot data
`in compressed form.
`17. The system of claim 11; wherein a plurality ofencoders
`in a parallel configuration are utilized to provide said at least
`a portion of said boot data in compressed form.
`18. A method ofpreloading an operating system for boot-
`ing a computer system comprising:
`storing substantially all of the operating system in com-
`pressed form on a boot device;
`prcloading a first portion of the substantially all of the
`operating system from said boot device to a memory;
`accessing and decompressing the first portion from the
`memory using a data compression engine;
`utilizing the decompressed first portion to partially boot
`said computer system;
`responsive to a request, locating a second portion of the
`substantially all of the operating system using a boot
`data list and prcloading the second portion from the boot
`device to the memory;
`accessing and decompressing the second portion from the
`memory using the data compression engine; and
`utilizing the decompressed second portion to further par-
`tially boot said computer system.
`19. The method of claim 18, wherein the preloading is
`performed by a data storage controller connected to the boot
`device.
`20. The method of claim 18; further comprising updating
`the boot data list.
`21. The method ofclaim 18, wherein Huffman encoding is
`utilized to obtain the substantially all of the operating system
`in compressed form.
`22. The method of claim 18, wherein Lempel-Ziv encoding
`is utilized to obtain the substantially all of the operating
`system in compressed form.
`23. The method of claim 18, wherein a plurality of encod—
`ers are utilized to obtain the substantially all of the operating
`system in compressed form.
`24. The method of claim 18. wherein a plurality of encod—
`ers in a parallel configuration are utilized to obtain the sub—
`stantially all of the operating system in compressed form.
`*
`*
`5‘
`*
`
`*
`
`!9
`
`Ex. 2013
`
`Page 9 of 145
`
`Ex. 2013
`Page 9 of 145
`
`

`

`:ngc3321 03;:
`13
`
`ompressed at 30
`rogram code
`.perating sys-
`
`)ading is per-
`,to said boot 35
`
`; updating the
`
`1 encoding is
`lboot data in 40
`
`v encoding is
`1 boot data in
`
`y of encoders 45
`F compressed
`
`111 El parallel CODllgUI'ElIIOD are Ullllze! l0 prov1!e $31! 8' leasl
`a portion of said boot data in compressed form.
`18. A method of preloading an operating system for boot-
`in acom uters stem com risin :
`g
`p
`y
`p
`g
`storing substantially all of the operating system in com-
`pressed form on a boot device;
`preloading a first portion of the substantially all of the
`operating system from said boot device to a memory;
`accessing and decompressing the first portion from the
`memory using a data compression engine;
`utilizing the decompressed first portion to partially boot
`said computer system;
`responsive to a request; locating a second portion of the
`substantially all of the operating system using a boot
`data list and preloading the second portion from the boot
`device to the memory;
`accessing and decompressing the second portion from the
`memory using the data compression engine; and
`utilizing the decompressed second portion to further par-
`tially boot said computer system.
`19. The method of claim 18; wherein the preloading is
`
`
`
`!10
`
`Ex. 2013
`
`Page 10 of 145
`
`Ex. 2013
`Page 10 of 145
`
`

`

`US. Patent
`
`Feb. 20. 2007
`
`Sheet 8 of 13
`
`US 7.l8|.608 Bz
`
`BOOT PROCESS
`COMPLETE
`
`H
`
`
`
`? YES
`
`STORE LIST
`
`FIG. 7a
`
`!11
`
`Ex. 2013
`
`Page 11 of 145
`
`Ex. 2013
`Page 11 of 145
`
`

`

`U.S. Patent
`
`Feb. 20, 2007
`
`Shaw 9 or I3
`
`US 7.181.608 B:
`
`75
`
`A
`
`
`POWER-UP
`0R SYSTEM
`
`RESET
`YES
`
`76
`
`77 RETRIEVE 8. READ LIST
`
`PREFETCH DATA BLOCKS
`SPECIFIED IN LIST
`
`8
`
`7
`
`COMMENCE BOOT PROCESS
`
`79
`
`RECEIVE READ REQUEST
`FOR BOOT DATA
`
`
`
`
`
`
`
`
`REQUESTED
`BOOT DATA
`PRELOADED
`l’
`-
`
`SERVICE REQUEST USING
`PRELOADED BOOT DATA
`
`84
`
`
`
`N0
`
`RETRIEVE REQUESTED BOOT
`
`DATA FROM BOOT DEVICE
`
`3
`
`UPDATE LIST TO INCLUDE
`BOOT DATA NOT PREVIOUSLY
`SPECIFIED IN LIST
`
`FIG. 7b
`
`12
`
`ouame BOOT
`9
`“03555
`
`
`
`UPDATE LIST TO EXCLUDE
`BOOT DATA NOT PREVIOUSLY
`SPECIFIED IN LIST
`
`
`
`!12
`
`Ex. 2013
`
`Page 12 of 145
`
`Ex. 2013
`Page 12 of 145
`
`

`

`'Ihen. u m each subs
`uent ower-mL/reset ('aflinnative
`result in meg 75 L the data storage controller would retrieve
`an reza
`t to stored list (step 76) and pureed to preload the
`bout data specified un the ltsl tie. the data associated with
`the expected .(lalit requests) mtn the unhnard cache memory
`(step 77).
`ll 15 IU be understood that the depending uu the
`rcsouu‘es of the given system (eg. memmy. etc).
`the
`preloadiug process may be emltpleted prior to cmnmence-
`ment of the boot pmcess. or mntinued after the boot process
`beginzs (in which case booting and pneloading are performed
`
`
`
`simultaneously).
`
`‘
`
`NO
`
`A
`
`75
`
`POWERUP
`OR SYSTEM
`RESET
`7
`
`YES
`
`76
`
`77 RETRIEVE & READ UST
`
`\
`
`PREFETCH DATA BLOCKS
`SPECIFIED |N LIST
`
`78
`
`COMMENCE BOOT PROCESS
`
`79
`
`RECEIVE READ REQUEST
`
`
`
`
`
`FOR BOOT DATA -
`
`
`!13
`
`Ex. 2013
`Page 13 of 145
`
`

`

`'Ihen. upon each subsequent pcvwer—ou/reset ('aflinnative
`result in step 75). the data storage controller would retrieve
`and read the stored list tstL 76) and pn'tcccd to preload the
`bout data specified un the list tie. the data associated with
`the expected .(L'Jlit requests) into the onhnard cache memory
`(step 77).
`It 15 IL) be uuderaluud that the oJcpeudtug~ mt the
`rcsoumcs of the given system (eg. mcmmy. etc).
`the
`preloadiug process may be cmttpleted prior to commence-
`ment of the boot pmcess. or mntinued after the boot process
`bcgims (in which case booting and pneloading are performed
`
`
`
`simuItanemtst).
`
`‘
`
`NO
`
`A
`
`75
`
`POWER’UP
`on SYSTEM
`RESET
`7
`
`YES
`
`76
`
`77 RETRIEVE & READ UST
`
`\
`
`PREFETCH DATA BLOCKS
`SPECIFIED IN LIST
`
`78
`
`COMMENCE BOOT PROCESS
`
`79
`
`RECEIVE READ REQUEST
`
`
`
`
`
`FOR BOOT DATA -
`
`
`!14
`
`Ex. 2013
`Page 14 of 145
`
`

`

`'Ihen. upon each subsequent pcvwer—ou/reset ('aflinnative
`result in step 75). the data storage (:mttroflcr would retrieve
`and read the stored list tstcp 76) and proceed to preload thc
`bout data 5 Cthed an the 1151 tt.c.. the data associated Wllh
`the ex ’cted .datzt rt. nests) into the onhnard cache memorv
`gala-p 77).
`ll 15 IL) be uudcraluud tlmt tlw oJcpcudtug~ mt the
`rcsoumcs of the given system (cg. mcmmy. etc).
`the
`preloudiug process may be cmttpleted prior to commence-
`ment of the boot pmcess. or mntinued after the boot process
`bcgims (in which case boating and pneloading are performed
`
`
`
`simultaneously).
`
`‘
`
`N0
`
`A
`
`75
`
`POWER‘UP
`OR SYSTEM
`RESET
`7
`
`YES
`
`76
`
`77 RETRIEVE & READ UST
`
`\
`
`PREFETCH DATA BLOCKS
`SPECIFIED IN LIST
`
`78
`
`COMMENCE BOOT PROCESS
`
`79
`
`RECEIVE READ REQUEST
`
`
`
`
`
`FOR BOOT DATA -
`
`
`!15
`
`Ex. 2013
`Page 15 of 145
`
`

`

`
`
`
`
`When the boot pmcess begins t. step 78) tie. the storage
`controller is initialized and the system bus reset
`is deas-
`sertedt. the data storage mntmller will receive requests fur
`boot data (step 79). If the host computer issues a request for
`boot dutu that is pro-loaded in the local memory of the data
`storage controller (alfirmative result in step 80). the request
`is immediately serviced using the preloaded hoot dutu (step
`8|). ll'the host computer issues a request for boot data that
`is not preloaded in the local memory of the data storage.
`
`controller (negative detennination in step 80). the controller
`
`-
`
`NO
`
`A
`
`75
`
`POWERUP
`OR SYSTEM
`RESET
`7
`
`76
`
`YES
`
`RETRIEVE & READ LIST
`
`7?
`
`PREFETCH DATA BLOCKS
`SPECIFIED lN LIST
`
`78
`
`COMMENCE BOOT PROCESS
`
`79
`
`RECEIVE READ REQUEST
`
`FOR 3007 DATA -
`
`
`
`
`!16
`
`Ex. 2013
`Page 16 of 145
`
`

`

`When the boot process bquns Istep 78) l_1.e.. the stomgc
`controller is initialized and the system bus reset
`is deris-
`serted). the dam grunge container will receive requests for
`boot data (step 79). II' the llnst computer issues a guest lbr
`boot data that is
`re-Iuadcd in the Inca] memurv of the data
`
`Storage controller galfirmative result in step 80]. the re_qnext
`i3 immediutcl“ acn’iecd usiu the reloaded boot data file.
`
` “
`
`77 RETRIEVE 81 READ LIST
`
`\
`
`PREFETCH DATA BLOTCKS
`SPECIFIED IN LIS
`
`78
`
`COMMENCE BOOT PROCESS
`
`79
`
`RECEIVE READ REQUEST
`FOR BOOT DATA
`
`
`
`ALL. Il'thc lmst computer issues a rmuest for bout data that
`is not preloaded in the local memory of the data storage
`controller (negative detenninatinn in step 80). the controller
`
`
`
`
`
`
`
`SERVICE REQUEST USING
`PRELOADED BOOT DATA
`
`//"‘
`
`!17
`
`Ex. 2013
`Page 17 of 145
`
`

`

`UNITED STATES PATENT AND TRADEMARK OFFICE
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`
`PETITIONER’S REPLY TO PATENT OWNER’S RESPONSE
`
`APPLE INC .,
`Petitioner,
`
`V .
`
`REALTIME DATA LLC,
`Patent Owner.
`
`Case lPR2016-01365
`
`Patent 7,181,608
`
`!18
`
`Ex. 2013
`
`Page 18 of 145
`
`Ex. 2013
`Page 18 of 145
`
`

`

`
`
`Proceeding No.2 [PR2016-01365
`Attomey Docket: 39521-0023lPl
`
`anticipation” of anything, let alone “immediate or near-in-time use.” Because the
`
`”608 Patent does not even use these terms to describe preloading, it would be
`
`improper to import them into the term preloading under BRl.
`
`2)
`
`Realtime’s Preloading Construction is
`Examples of Preloading in the ’608 Patent
`
`Inconsistent with
`
`Contrary to BRI, Realtime’s construction improperly excludes examples of
`
`preloading in the ’608 Patent. POR, 3-7, 12-16, 16-26. Specifically, the claims
`
`require preloading boot data prior to completion of initialization of the central
`
`processing unit. The ’608 Patent describes several examples where preloading
`
`occurs prior to completion of initialization because the preloading occurs prior to
`
`system reset or boot. In these examples, the ’608 Patent simply states that preloading
`
`occurs prior to system reset or boot; it does not qualify how far in advance of reset
`
`or boot the preloading occurs. Thus, these examples align with the claim language,
`
`but are not limited to preloading “in anticipation of immediate or near-in-time use,”
`
`is advantageous for the boot device
`
`as advocated by Realtime.
`
`For example, the ”608 Patent explains that “prior to host system reset, the data
`
`storage controller can proceed to pre-Ioad the portions of the computer operating
`
`system from the boot device (e.g., hard disk) into the on-board cache memory.”
`
`”608, 21:45-65.
`
`In this example, “[s]ince the same portions ofthe operating system
`
`must be loaded upon each boot process,
`
`it
`
`!19
`
`Ex. 2013
`
`Page 19 of 145
`
`Ex. 2013
`Page 19 of 145
`
`

`

`occurs prior to completion of initialization because the preloading occurs prior to
`
`system reset or boot. In these examples, the ’608 Patent simply states that preloading
`
`occurs prior to system reset or boot; it does not qualify how far in advance of reset
`
`or boot the preloading occurs. Thus, these examples align with the claim language,
`
`but are not limited to preloading “in anticipation of immediate or near-in-time use,”
`
`as advocated by Realtime.
`
`For example, the ’608 Patent explains that “prior to host system reset, the data
`
`storage controller can proceed to pre-load the portions of the computer operating system from the boot device (e.g., hard disk) into the on-board cache memory.”
`
`
`
`’608, 2] :45-65.
`
`In this example, “[s]ince the same portions ofthe operating system
`
`must be loaded upon each boot process,
`
`it
`
`is advantageous for the boot device
`
`
`
`!20!20
`
`Ex. 2013
`
`Page 20 of 145
`
`Ex. 2013
`Page 20 of 145
`
`

`

`US 7,181,608 B2
`
`
`
`21
`If orily the PCI Bus and DSP require SDRAM:
`
`PCI Bus Interface
`DSP Accesses
`
`t'A+B)/K
`(A+B)/K
`
`If only the DSP and Disk require SDRAM:
`
`DSP Accesses
`UlLraDMA Drsk Interface
`
`ZA/K
`ZB/K
`
`If only the PCI Bus and Disk require SDRAM:
`
`PCI Bus Interface
`UltraDMA Drsk Interface
`
`ZA/K
`2B/K
`
`It should be noted that the resultant ratios may all be scaled
`by a constant in order to most effectively utilize the band-
`widths of the internal busses and external
`interfaces. In
`addition each ratio can be scale by an adjustment factor
`based upon the time required to complete individual cycles.
`For example if PCI Bus interface takes 20% longer than all
`other cycles, the PCI time slice should be adjusted longer
`accordingly.
`V. Instant Boot Device for Operating System, Application
`Program and Loading
`Typically. with conventional boot device controllers, after
`reset, the boot device controller will wait for a command
`over the computer bus (such as PCI). Since the boot device
`controller will typically be reset prior to bus reset and before
`the computer bus starts sending commands, this wait period
`is unproductive time. The initial bus commands inevitably
`instruct the boot device controller to retrieve data from the
`boot device (such as a disk) for the operating system. Since
`most boot devices are relatively slow compared to the speed
`of most computer busses, a long delay is seen by the
`computer user. This is evident in the time it takes for a
`typical computer to boot.
`It
`is to be appreciated that a data storage controller
`(having an architecture as described herein) may employ a
`technique of data preloading to decrease the computer
`system boot time. Upon host system power-up or reset, the
`data storage controller will perform a self—diagnostic and
`program the progranmrable logic device (as discussed
`above) prior to completion ofthe host system reset (e.g., PCI
`bus reset) so that the logic device can accept PCI Bus
`commands after system reset. Further, prior to host system
`reset, the data storage controller can proceed to pre-load the
`portions of the computer operating system from the boot
`device (eg, hard disk) into the on—board cache memory. The
`data stor

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