`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