`
`James J. Fallon, et al.
`In re Patent of:
`8,880,862 Attorney Docket No.: 39521-0025IP1
`U.S. Patent No.:
`November 4, 2014
`Issue Date:
`Appl. Serial No.: 13/118,122
`Filing Date:
`May 27, 2011
`Title:
`SYSTEMS AND METHODS FOR ACCELERATED
`LOADING OF OPERATING SYSTEMS AND
`APPLICATION PROGRAMS
`
`DECLARATION OF DR. CHARLES J. NEUHAUSER
`
`I.
`
`Introduction
`
`1. My name is Dr. Charles J. Neuhauser. I understand that I am submitting a
`
`declaration in connection with an Inter Partes review (“IPR”) proceeding before
`
`the United States Patent and Trademark Office for U.S. Patent No. 8,880,862
`
`(“the ’862 Patent”).
`
`
`
`2.
`
`I have been retained on behalf of Apple Inc. to offer technical opinions with
`
`respect to the ’862 Patent and the prior art references cited in this IPR. My
`
`compensation is not based on the outcome of this matter.
`
`
`
`3.
`
`I am not a lawyer. However, counsel has advised me of legal concepts that are
`
`relevant to IPR proceedings and to the opinions that I offer in this declaration. I
`
`understand that, during IPR, claims of the subject patent are given a broadest
`
`reasonable interpretation. Counsel has advised me that the broadest reasonable
`
`
`
`1
`
`Apple v. Realtime
`Proceeding No. IPR2016-01737
`APPLE 1043
`
`
`
`
`
`interpretation must be consistent with the specification, and that claim language
`
`should be read in light of the specification and teachings in the underlying patent.
`
`
`
`4.
`
`I have reviewed the ’862 Patent, including the claims of the patent in view of the
`
`specification, and I have reviewed the ’862 Patent’s prosecution history. In
`
`addition, I have reviewed the following documents: U.S. Patent No. 6,374,353
`
`(“Settsu”), U.S. Patent No. 6,145,069 (“Dye”), U.S. Patent No. 7,190,284 (“Dye
`
`’284”), Burrows et al., “On-line Data Compression in a Log-structured File
`
`System” (1992) (“Burrows”), U.S. Patent No. 6,317,818 (“Zwiegincew”), U.S.
`
`Patent No. 6,633,968 (“Zwiegincew ’968”), U.S. Patent No. 6,434,695
`
`(“Esfahani”), U.S. Patent No. 6,073,232 (“Kroeker”), Jeff Prosise, DOS 6 – The
`
`Ultimate Software Bundle?, PC Magazine, Apr. 13, 1993 (“Prosise”), Decoder,
`
`File, Program File, Direct Memory Access, RAM, and RAM Cache, Microsoft
`
`Press Computer Dictionary (3d ed. 1997)(“MSFT Dictionary”), Jacob Ziv &
`
`Abraham Lempel, A Universal Algorithm for Sequential Data Compression, IT-
`
`23 No. 3 IEEE Transactions on Information Theory 337 (1977)(“Ziv”), James A.
`
`Storer & Thomas G. Szymanski, Data Compression via Textual Substitution, 19
`
`No. 4 Journal of the Association for Computing Machinery (1982)(“Storer”),
`
`Kyle Loudon, Mastering Algorithms with C (1999) (“Loudon”), Michael Barr,
`
`Programming Embedded Systems in C and C++ (1999)(“Barr”), Eric Pearce,
`
`
`
`2
`
`
`
`
`
`Windows NT in a Nutshell (1999)(“Pearce”), and Tim O’Reilly, Troy Mott, and
`
`Walter Glenn, Windows 98 in a Nutshell (1999)(“O’Reilly”).
`
`
`
`5.
`
`I provided details of my professional background with my earlier-submitted
`
`declarations, and I do not repeat those details here.
`
`
`
`II. Detailed Discussion
`
`A. One of Ordinary Skill
`
`6.
`
`It is my understanding that I must analyze and apply the prior art cited above
`
`from the perspective of a person having ordinary skill in the art as of February 3,
`
`2000 (“one of ordinary skill”), which I understand to be the ’862 Patent’s earliest
`
`possible priority date.
`
`
`
`7. The ’862 Patent relates to accessing data in conventional computer systems.
`
`Figure 1 is an exemplary figure that illustrates the basic structure of one
`
`embodiment of the ’862 Patent’s system [’862 Patent, 4:36-37, 5:63-65]. This
`
`and other similar figures of the ’862 Patent show straightforward and well known
`
`structures related to conventional computer systems, such as the widely used
`
`personal computer. In my opinion, one of ordinary skill would be a person with a
`
`Bachelor’s Degree in electrical engineering, computer engineering, or a related
`
`
`
`3
`
`
`
`
`
`area of study. In addition, this person would have between three and five years
`
`of practical experience in the design and implementation of computer systems,
`
`such as personal computers. Alternatively, a person with a Master’s Degree in
`
`the area of electrical engineering, computer engineering, or a related area of study
`
`and somewhat less practical experience would be similarly qualified.
`
`
`
`8.
`
`I am well aware of the qualifications of such a person because I have worked
`
`with, supervised, and hired engineers with similar capabilities. By the year 2000,
`
`I had been awarded a Ph.D. in CS/EE with a specialization in computer
`
`engineering and had over 30 years of practical experience. Thus, by February 3,
`
`2000, I was at least as qualified as the person having ordinary skill in the art that I
`
`have identified above. Moreover, I understand the perspective of one of ordinary
`
`skill, which I have applied in my analysis.
`
`
`
`B.
`
`Prior Art and the Claims of the ’862 Patent
`
`9. The Patent Owner has requested amendment of the challenged claims,
`
`conditional on the Board finding independent claims 1, 6, and 13 unpatentable.
`
`Alleged patentability rests with the amendments to the independent claims, with
`
`amendments to the dependent claims serving the purpose of conforming the
`
`dependent claims to the changes in the independent claims.
`
`
`
`4
`
`
`
`
`
`
`
`
`
`10. The amendments introduced by Patent Owner in its proposed substitute claims
`
`are directed toward trivial features that one of ordinary skill would have
`
`considered obvious over the prior art.
`
`
`
`11. As I discuss below, for example, one of ordinary skill would have been aware of
`
`the relatively high cost of non-volatile flash memory used by Sukegawa, and
`
`related constraints on the capacity of Sukegawa’s flash memory. In seeking to
`
`reduce utilization of this expensive and limited flash memory, one of ordinary
`
`skill would have found it obvious to make use of less costly volatile memory
`
`(e.g., RAM) when preloading boot data in a manner otherwise consistent with
`
`Sukegawa. Beyond reducing costs, one of ordinary skill would expect this
`
`approach to enhance performance.
`
`
`
`12. Esfahani and Kroeker each provide specific teachings that would further motivate
`
`and support such an approach to the implementation of Sukegawa’s system, and
`
`if Sukegawa’s system were implemented in the manner described, it would meet
`
`the amended claim language.
`
`
`
`
`
`5
`
`
`
`
`
`As another example, Settsu, both alone and in combination with Zwiegincew,
`
`renders obvious every feature of the proposed substitute claims, including the
`
`amended features.
`
`
`
`C.
`Sukegawa in view of Dye and Kroeker
`13. Sukegawa – one of ordinary skill would have been aware that Sukegawa’s non-
`
`volatile flash memory was both expensive and not of limited capacity, and would
`
`have been faced with design choices of how to best preload in a situation where
`
`cost precludes preloading all of the boot data into non-volatile flash memory.
`
`Seeking to reduce the use of this expensive and limited flash memory, one of
`
`ordinary skill would have found it obvious to make use of less costly volatile
`
`memory (e.g., RAM) when preloading boot data in a manner otherwise consistent
`
`with Sukegawa.
`
`
`
`14. In this situation, one of ordinary skill would have still been motivated by
`
`Sukegawa to preload any boot data that exceeds the capacity of the flash memory
`
`as quickly as possible after power-on. Indeed, to the extent the non-volatile flash
`
`memory lacks such capacity, one of ordinary skill would have found it obvious to
`
`preload some boot data into flash memory and then preload any remaining boot
`
`data into volatile memory (e.g., RAM) upon power-on. One of ordinary skill
`
`
`
`6
`
`
`
`
`
`would have viewed this solution as advantageous for reducing the need for of
`
`Sukegawa’s expensive non-volatile memory, without necessarily slowing
`
`Sukegawa’s boot process, as it leverages the time needed to start the boot process
`
`to preload additional boot data that would otherwise just be waiting on disk.
`
`
`
`15. Kroeker – Kroeker’s system preloads boot data associated with a boot data list
`
`by transferring boot data into volatile memory during the same boot sequence in
`
`which a boot device controller receives a command over a computer bus to load
`
`the boot data [Kroeker, Abstract, 2:29-47].
`
`
`
`16. Specifically, Kroeker recognized that, “[w]hen a computer undergoes a hardware
`
`reset (i.e., a power-on or reset), the computer” and its “hard disk drive” execute
`
`“power on/reset procedures,” and further recognized that it was typically only
`
`after these procedures were complete that the computer “requests data from the
`
`disk drive” to initialize an OS “program,” such as “DOS, Windows, UNIX, OS/2,
`
`AIX, etc.” [Kroeker, 1:14-29]. Seeking to speed the boot process, Kroeker
`
`found an opportunity in the fact “that during hardware resets the disk drive
`
`associated with a host computer typically completes its booting process before
`
`the host computer is ready for program transfer,” and proposed a preloading
`
`solution that uses “this period” to more rapidly communicate an OS program to
`
`
`
`7
`
`
`
`
`
`the host computer [Kroeker, 1:55-64]. In Kroeker’s solution, “before the host
`
`computer is ready for data but after the disk drive has completed its reset
`
`routine,” Kroeker uses a “prefetch table” to access OS data from the disk and
`
`“copies it onto the cache of the disk drive, from where it is transferred to the host
`
`computer when the host computer requests it” [Kroeker, Abstract]. Because data
`
`is transmitted to the host computer more quickly from the cache than the disk
`
`drive, Kroeker’s preloading “increas[es] boot speed of a host computer” by
`
`“shortening the load time” [Kroeker, Abstract, 1:9-12].
`
`
`
`17. As shown in FIG. 1, Kroeker’s disk drive 12 includes data storage disks 16, a
`
`“random access memory (RAM) data cache 18” (i.e., volatile memory), and a
`
`controller 20 [Kroeker, 3:61-4:21]. Kroeker preloads OS data into cache 18
`
`using a process that is illustrated in FIG. 3 and that begins “immediately after the
`
`hard disk drive 12 has completed its power-on/reset…routine.” [Kroeker, 4:63-
`
`67]. In Kroeker’s process, a “prefetch table is read…into the RAM cache 18,”
`
`the prefetch table (i.e., boot data list) including “a listing of the disk locations and
`
`lengths of data records that were requested by the host computer 14 in the
`
`immediately previous power-on/reset” (i.e., boot data)” [Kroeker, 5:3-7]. Data
`
`“represented by the prefetch table” is then read “from the disks 16 into the RAM
`
`cache 18” [Kroeker, 4:63-5:21]. A read command (command to load) is then
`
`
`
`8
`
`
`
`
`
`received by the controller “indicating that the host computer 14, pursuant to its
`
`initialization, is requesting data records that are part of a computer program such
`
`as DOS or Windows,” and the requested records are transferred “from cache 18
`
`to the host computer 14” [Kroeker, 5:41-6:13]. Kroeker’s process repeats until
`
`“all records designated in the prefetch table have been loaded into cache and then
`
`transferred to the host computer 14” [Kroeker, 6:14-36].
`
`
`
`18. Kroeker relates to shortening the load time of computer programs from a hard
`
`disk to a host computer [Kroeker 1:9-12]. In particular, Kroeker describes an
`
`approach to shortening the boot time of a host computer [Kroeker Abstract]. The
`
`basic approach of Kroeker is to generate a prefetch table that indicates hard disk
`
`records requested by the host computer during processing that follows a power-
`
`on/reset. On a subsequent power-on/reset the disk controller will load the records
`
`indicated in the prefetch table from hard disk to a cache located on the disk
`
`controller. This process occurs while the host computer is being reset and before
`
`it makes its first request for data from the hard disk. Once host computer reset is
`
`completed the requests for data generated by the host computer can be handled
`
`quickly from the cache rather than accessing the hard disk [Kroeker Abstract,
`
`2:38-47]. Because the cache is composed of RAM it has a much faster access
`
`time than the disk and the time to boot the host computer is improved.
`
`
`
`9
`
`
`
`
`
`
`
`19. Kroeker Fig. 1 illustrates the system of Kroeker as it might be configured for a
`
`personal computer or work station [3:61-4:3]. On this figure I have made
`
`annotations showing how the components of Kroeker relate to certain
`
`terminology in the ‘862. The annotations here are consistent with those I have
`
`presented for prior art discussed in may prior declarations.
`
`20. Disk drive 12 contains a data storage disk 16 and an onboard controller 20.
`
`[Kroeker 4:11-16]. Disk drive 12 also includes cache 18 composed of RAM that
`
`
`
`
`
`10
`
`
`
`
`
`is used to store data from data storage disk 16 according to the approach I will
`
`describe below. [Kroeker 2:38-47, 4:5-10]. Disk drive 12 connects to host
`
`computer 14. [Kroeker 3:61-4:3]. Onboard controller 20 includes an adaptive
`
`cache module 24, which is storage containing instructions for the onboard
`
`controller 20. [Kroeker 4:17-21]. The adaptive cache module 24 holds
`
`microcode that provides microinstructions for execution by the onboard
`
`controller 20. The adaptive cache module may be ROM, RAM, EEPROM or
`
`DRAM. [Kroeker 3;49-54 4:21-28].
`
`
`
`21. Kroeker Fig. 3 illustrates the operation of the microcode that controls the onboard
`
`controller 20 [Kroeker 3:55-56]. Table 1 also illustrates the operation of the
`
`controller in a pseudo-language [Kroeker 6:63-67].
`
`
`
`22. Combination - with this background, one of ordinary skill would have been
`
`motivated by Kroeker to update Sukegawa’s system to take advantage of the
`
`period “before the host computer is ready for data but after the disk drive has
`
`completed its reset routine” to further “increas[e] boot speed of a host computer”
`
`by “shortening the load time” [Kroeker, Abstract; 1:9-12; 1:55-2:14]. Indeed,
`
`one of ordinary skill would have found it obvious that a portion of Sukegawa’s
`
`operating system would not have been preloaded into flash memory unit 1. For
`
`
`
`11
`
`
`
`
`
`that portion, one of ordinary skill would have been motivated to apply Kroeker’s
`
`preloading techniques to shorten the load time from the hard disk and, thereby,
`
`increase boot speed [Kroeker, Abstract, 1:9-12; 1:55-2:14].
`
`
`
`As explained in more detail below, one of ordinary skill would have been
`
`motivated to add Kroeker’s volatile cache to Sukegawa’s system as an addition to
`
`Sukegawa’s HDD 2. In doing so, one of ordinary skill would have found it
`
`obvious to transfer boot data expected to be needed most quickly after power-on
`
`into Sukegawa’s non-volatile flash memory 1, and to transfer the remaining boot
`
`data from Sukegawa’s HDD 2 into Kroeker’s volatile cache using Kroeker’s
`
`prefetch table and/or Sukegawa’s management information table 3A, “before the
`
`host computer is ready for data but after the disk drive has completed its reset
`
`routine” [Kroeker, Abstract].
`
`
`
`23. In fact, based on Kroeker’s disclosure, one of ordinary skill would have found
`
`reducing the size of Sukegawa’s flash memory 1 to make use of the period when
`
`the disk drive is ready, but the host computer is not, to be an “easy to use and
`
`cost-effective” solution “for increasing boot speed” [Kroeker, Abstract, 1:9-
`
`2:14]. Sukegawa and Kroeker work well together because Sukegawa’s flash
`
`
`
`12
`
`
`
`
`
`memory reduces disk accesses during the boot process and thus allows the
`
`loading of RAM to continue efficiently beyond the disk reset period.
`
`
`
`24. In Sukegawa, boot data that has been identified in a previous power-on/reset
`
`cycle is preserved in two ways. First, the actual data is stored in flash memory
`
`unit 1 (specifically, permanent storage area 10A and non-volatile cache area
`
`10C). Second, the information about where the stored information resides on
`
`disk and in the flash memory unit 1 is stored in management information table
`
`3A [Sukegawa 5:5-9, 5:43-46, 5:58-63, see also discussion in Ex 1003 ¶¶28-34].
`
`One of ordinary skill would have recognized that this arrangement is a type of
`
`disk cache because Sukegawa describes it as such [Sukegawa 1:50-61]. In
`
`Sukegawa the flash memory unit 1 corresponds to the RAM cache memory of a
`
`conventional disk cache. The advantage of using the flash memory (non-volatile
`
`memory) instead of conventional RAM (volatile memory) for the disk cache is
`
`that the cache contents area available immediately upon power-on/reset, thus
`
`saving considerable time during the boot process [Sukegawa 1:55-61].
`
`
`
`25. Despite the advantage of using non-volatile memory, such as flash memory, in
`
`Sukegawa, one of ordinary skill in the art would have understood that some of
`
`the advantages described in Sukegawa could be obtained by using a volatile
`
`
`
`13
`
`
`
`
`
`memory, such as DRAM, for at least part of the memory storage requirements of
`
`the flash memory unit 1. In fact, one of ordinary skill would have recognized
`
`several very good reasons for doing this. First, in February of 2000 the cost of
`
`DRAM was significantly less than the cost flash memory [Dye 1:35-38, 2:28-32].
`
`Second, as Dye discloses, flash memory is slower to access than DRAM [Dye
`
`‘069 1:53-59, 2:32-39]. Third, flash memory is significantly slower to write than
`
`RAM.
`
`
`
`26. In my first declaration I discussed the following combinations of Sukegawa with
`
`Dye and additional prior art: Sukegawa and Dye; Sukegawa, Dye, and Settsu;
`
`Sukegawa, Dye, and Burrows; Sukegawa, Dye, Setsu, and Burrows; Sukegawa,
`
`Dye, and Zwiegincew. In the discussion that follows I will demonstrate how one
`
`of ordinary skill would have extended these combinations with the disclosure of
`
`Kroeker. Beyond the details of this discussion, the additional combinations of
`
`Sukegawa and Dye discussed previously are unaffected by the inclusion of
`
`Kroeker. Thus, the analysis offered in my first declaration [APPLE-1003] would
`
`be unaffected as to the dependent claims.
`
`
`
`27. In February 2000, one of ordinary skill in the art would have been aware of the
`
`cost, read access time and write access time characteristics of both flash memory
`
`
`
`14
`
`
`
`
`
`and DRAM. At that point in time flash memory would have been more
`
`expensive than DRAM, and also slower. Of course, the non-volatile
`
`characteristic of flash is an important advantage, and is used by Sukegawa to
`
`preserve boot data over a power-on/reset cycle. Similarly, the contents of
`
`management information table 3A must be preserved over power-on/reset
`
`because it contains information about the location of data previously loaded into
`
`the flash memory unit 1. Specifically, management information table 3A defines
`
`which blocks of data have been read from the hard disk drive (HDD) 2, and
`
`where those blocks are stored in the flash memory unit 3.
`
`
`
`28. However, based on the better cost and performance characteristics of DRAM
`
`relative to flash memory, one of ordinary skill in the art would have been
`
`motivated to consider whether utilization of the expensive flash memory unit 1
`
`might be reduced by using DRAM. Indeed, doing so would reduce the cost and
`
`improve the read and write access time of the system, and a completely workable
`
`approach is found in Kroeker. As I have explained above, the principle of
`
`Kroeker is that information stored on a disk drive 16 may be loaded into a
`
`DRAM based cache 18. Because the cache 18 is composed of DRAM this
`
`loading must be done following power on because any contents of DRAM would
`
`have been lost while power was off. Indeed, Kroeker makes use of exactly the
`
`
`
`15
`
`
`
`
`
`same approach as the ‘862 patent, namely loading data from a disk to a cache
`
`during the period of time when the host computer is not yet fully initialized, but
`
`the disk controller has come out of reset. [Kroeker 2:38-47, 3:58-64]. Thus,
`
`DRAM can be used to augment the memory resources of Sukegawa in a way that
`
`provides improved performance at reduced cost.
`
`
`
`29. Here are the details. In my first Declaration [APPLE-1003] I described a system
`
`in which the basic structure of Sukegawa is combined with the compression
`
`caching capability of Dye. To illustrate this combination, I presented the figure
`
`shown below. [APPLE-1003, ¶87].
`
`
`
`
`
`
`
`
`
`16
`
`
`
`30. This figure simply shows the basic system of Sukegawa Fig. 1 in which the cache
`
`
`
`system controller 3 is extended with the data compression/decompression engine
`
`of Dye (items 240, 260, 280). [APPLE-1003 ¶87]. The inclusion of the data
`
`compression/decompression engine of Dye allows the system of Sukegawa to
`
`take advantage of data compression to both reduce the amount of flash memory
`
`required by flash memory unit 1 and to enhance the effective transfer rate
`
`between the HDD (Hard Disk Drive) 2 of Sukegawa and the flash memory unit 1.
`
`[see e.g., Dye Abstract, 3:23-28, 7:31-33, 17:19-38]. To accomplish this high
`
`speed data compression and decompression Dye discloses a highly parallel
`
`compression/decompression engine. [Dye Figs. 10B, 13, 14, 18:44-49, 18:60-
`
`19:3021:30-35]. I have provided a summary of the Dye approach in a previous
`
`Declaration. [APPLE-1003, ¶¶48-61]. Aside from improved effective storage
`
`density, Dye also discloses that the high speed parallel data
`
`compression/decompression engine also improves the effective bandwidth of the
`
`disk to cache path because it allows data to be effectively transferred faster than
`
`if the data was not compressed. [see, e.g., Dye 17:19-38]. I have discussed the
`
`motivation to extend Sukegawa with the teachings of Dye in my previous
`
`Declaration. [APPLE-1003, ¶¶ 87-91].
`
`
`
`
`
`17
`
`
`
`31. Based on the state of the art with respect to flash memory and DRAM in
`
`
`
`February of 2000, one of ordinary skill in the art would have been motivated to
`
`extend the system of Sukegawa and Dye with the teachings of Kroeker. The
`
`motivation would be to gain the advantage of cost and speed that DRAM would
`
`provide. In considering the use of DRAM in a system such as Sukegawa
`
`extended by Dye one of ordinary skill in the art would have understood that
`
`DRAM does not retain its data contents after a power-off/power-on sequence
`
`because this is common engineering knowledge.
`
`
`
`32. Thus, to use DRAM it is necessary to consider approaches that would effectively
`
`preserve prefetched contents. One of ordinary skill, by simply reading the
`
`abstract of Kroeker, would have understood that the disclosure of Kroeker solves
`
`the problem. The key to Kroeker is that a description of the data to be prefetched
`
`directly following power-on/reset is maintained in the prefetch table, which is
`
`stored in a reserved area of disk (i.e. a type of non-volatile memory that does not
`
`lose information during a power-off situation). [Kroeker 2:66-3:6, 5:22-33].
`
`Functionally, the prefetch table of Kroeker is equivalent to the management
`
`information table 3A of Sukegawa in that both describe the location and extent of
`
`data stored on disk that is to be used following a power-on/reset. In the case of
`
`
`
`18
`
`
`
`
`
`Sukegawa this information is stored in the flash memory unit 1 because it, like
`
`disk, flash memory is non-volatile. [Sukegawa 5:5-9].
`
`
`
`33. The figure below is similar to the figure from my first Declaration [APPLE-1003
`
`¶87], but further modified to show how a system of Sukegawa as extended by
`
`Dye and Kroeker would be constructed.
`
`
`
`
`
`34. In this figure I have shown the addition of DRAM to Sukegawa’s cache system
`
`controller 3, which would have been straightforward for one of ordinary skill. In
`
`the proposed system the DRAM would function just like the flash memory of
`
`area 10A, although it would be faster and less expensive.
`
`
`
`
`
`19
`
`
`
`
`
`35. In the system of Sukegawa and Dye as enhanced by the disclosure of Kroeker
`
`part of the management information table 3A could be assigned to perform the
`
`function of the prefetch table in Kroeker. This is would be a straightforward
`
`modification for one of ordinary skill in the art because the prefetch table of
`
`Kroeker and the management information table 3A of Sukegawa perform a
`
`nearly identical function. That function is storing information that indicates
`
`where a disk block (or a “record” in the terminology of Kroeker) is stored (or will
`
`be stored) in cache. [Sukegawa 5:5-9, 5:43-46, 5:58-63; Kroeker Abstract, 2:30-
`
`46, steps 30, 40].
`
`
`
`36. Operation of the system of Sukegawa and Dye would be as I have described in
`
`my previous Declaration [APPLE-1003, ¶¶85-91]. In this system as enhanced by
`
`Kroeker the only difference in operation would be that the DRAM added to
`
`Sukegawa’s system would be loaded from HDD 2 directly following the release
`
`of the reset signal, so that by the time the Host System 4 was ready to issue disk
`
`requests the DRAM would be filled with prefetched information identified in the
`
`management information table 3A.
`
`
`
`37. Sukegawa in view of Dye and Kroeker renders obvious all aspects of the
`
`amended independent claims. For the sake of brevity, I limit my discussion to
`
`
`
`20
`
`
`
`
`
`the amended language of substitute independent claim 118. In claim 118, the
`
`original language for “loading” has been amended to “preloading”. Additionally,
`
`the target of the “preloading” has been amended to a “volatile memory”, and
`
`“preloading” has been amended to occur “during the same boot sequence in
`
`which a boot device controller receives a command over a computer bus to load
`
`the portion of boot data.”
`
`
`
`38. Other aspects of the claim that remain unchanged include the type of data that is
`
`preloaded, namely, “boot data”, and the association of the “boot data” with a
`
`“boot data list”. I have discussed these aspects with respect to the combination of
`
`Sukegawa and Dye in my previous Declaration [APPLE-1003 ¶¶130-136] and
`
`that discussion applies here.
`
`
`
`39. In Kroeker, boot data is prefetched from the disk 16 to the volatile cache 18.
`
`This is done during the period following power-on/reset when the host computer
`
`14 is being reset. [Kroeker Abstract, 2:38-47, 3:9-18, Fig. 3, steps 28-29, 5:1-8,
`
`5:17-20, 5:40-50, Table 1]. One of ordinary skill in the art would have
`
`understood that the purpose in Kroeker of prefetching the disk information during
`
`host system reset is to provide this information to the host computer 14 (i.e. the
`
`host computer 4 of Sukegawa combination) for use immediately after the host
`
`
`
`21
`
`
`
`
`
`computer completes its reset. [Kroeker Abstract, 1:14-28, 3:58-64, 2:38-47].
`
`Thus, one of ordinary skill in the art would have understood that the system of
`
`Sukegawa and Dye as modified by Kroeker discloses “preloading” into volatile
`
`memory.
`
`
`
`40. Moreover, one of ordinary skill would have understood from Kroeker that
`
`preloading related to Fig. 3, steps 28-30 would be accomplished “by transferring
`
`the portion of the boot data” from the disk to the cache (i.e. the “memory’).
`
`Kroeker describes this explicitly. [Kroeker Abstract, 1:14-28, 2:38-47, Fig. 3,
`
`step 30, 5:17-20]. One of ordinary skill would further have understood that, in
`
`the system of Sukegawa as modified by Dye and Kroeker, boot data would be
`
`transferred in compressed form, for the reasons that I have discussed in my
`
`previous Declaration [see, e.g., APPLE-1003 ¶¶130-139]. Further, one of
`
`ordinary skill would have understood that, in this system, at least a “portion of
`
`boot data in compressed form” would be transferred into the DRAM.
`
`
`
`41. In the system of Sukegawa and Dye the “boot device controller” is the cache
`
`system controller 3. One of ordinary skill would have understood this because
`
`the HDD 2 is the boot device and the cache system controller 3 controls this
`
`device. [Sukegawa Fig. 1, item 3, 2:58-64]. In the system of Sukegawa and Dye
`
`
`
`22
`
`
`
`
`
`as modified by Kroeker the functions of the Kroeker onboard controller 20 would
`
`be incorporated into the cache system controller 3 of Sukegawa to the extent that
`
`those functions were not already included in Sukegawa cache controller 3.
`
`
`
`42. In the system of Sukegawa and Dye as modified by Kroeker one of ordinary skill
`
`would have understood that the cache system controller 3 “receives a command
`
`over a computer bus to load” data from HDD 2 (similar to Kroeker disk 16).
`
`This is described explicitly by Sukegawa and Kroeker. [Sukegawa Fig. 1, 4:25-
`
`30, Fig. 2, 4:38-46; Kroeker Fig. 1,1:23-28, 2:40-46]. Immediately after a
`
`power-on/reset these commands relate to the loading of “the boot data”.
`
`[Sukegawa 1:39-49, 1:55-61, 2:11-16, 6:49-58; Kroeker Abstract, 1:23-28, 2:38-
`
`47, 5:40-50].
`
`
`
`43. In the system of Sukegawa and Dye as modified by Kroeker the “preloading” of
`
`the DRAM occurs while the host computer 14 is in reset following a power-
`
`on/reset. One of ordinary skill would have understood this because this is shown
`
`explicitly in Kroeker. [Kroeker Abstract, Fig. 3 steps 26-30, 5:1-8, 5:17-20,
`
`Table 1]. Thus, one of ordinary skill would have understood that in Kroeker (and
`
`in the system of Sukegawa and Dye as enhanced by Kroeker) that “preloading
`
`
`
`23
`
`
`
`
`
`occurs during the same boot sequence in which a boot device controller receives
`
`a command over a computer bus to load the portion of boot data”.
`
`D.
`Sukegawa in view of Dye and Esfahani
`44. Sukegawa – as discussed above with respect to Sukegawa in view of Dye and
`
`Kroeker, one of ordinary skill would have found it obvious to make use of less
`
`costly volatile memory (e.g., RAM) in Sukegawa’s system when preloading boot
`
`data in a manner otherwise consistent with Sukegawa.
`
`
`
`45. Esfahani – Esfahani is directed toward booting a computer system in which an
`
`operating system includes a “low-level portion…stored in a relatively small read-
`
`only memory (ROM)” and an “intermediate-level portion…stored as a
`
`compressed ROM image on a disk” [Esfahani, Abstract]. As background,
`
`Esfahani described that a “computer's permanent read-only memory (ROM)…has
`
`traditionally…contained both low-level and high-level operating system (OS)
`
`code” [Esfahani, 1:14-26]. Esfahani explained that computers employed this
`
`design because “ROM was cheaper than random access memory (RAM), and the
`
`available disk space…was at a premium.” [Esfahani, 1:26-35]. As technology
`
`advanced, Esfahani recognized that operating system code “has expanded beyond
`
`the practical limits provided by ROMs” and that, “[t]oday, RAM and disk space
`
`
`
`24
`
`
`
`are inexpensive, have high capacity, and are fast compared to the ROM”
`
`
`
`[Esfahani, 1:36-41, 5:3-5].
`
`
`
`46. With these considerations in mind, Esfahani proposed a change to background
`
`systems that stored both low-level and high-level OS code in ROM. Specifically,
`
`Esfahani proposed storing low-level OS code “in a relatively small Boot ROM”
`
`and storing intermediate-level OS code “as a compressed ROM image on a disk”
`
`[Esfahani, 2:54-61]. “Upon power-up or reset of the computer system, the code
`
`in the boot ROM is executed to read the compressed ROM image into RAM,”
`
`which “is then decompressed and executed as part of the boot sequence.” Id.,
`
`2:63-67. With this “improved OS” where OS code is “separated into logically
`
`distinct pieces” and preloaded into both ROM and RAM, Esfahani realized
`
`several “benefits” [Esfahani, 4:38-5:21]. Notably, by reducing the size of ROM,
`
`“costs tend to be reduced” [Esfahani, 4:38-5:21].
`
`
`
`47. Combination - with this background, one of ordinary skill would have been
`
`motivated to achieve Esfahani’s benefits in Sukegawa. For instance, one of
`
`ordinary skill would have found Esfahani’s benefits directly applicable to
`
`Sukegawa’s system, and would therefore have been motivated to modify
`
`Sukegawa to preload OS data into both non-volatile and volatile memories as
`
`
`
`25
`
`
`
`
`
`discussed in Esfahani, so as “to reduce time to market, development costs, and
`
`manufacturing costs for computer systems.” Esfahani, 2:1-3.
`
`
`
`48. Specifically, to achieve Esfahani’s cost benefit, one of ordinary skill would have
`
`reduced utilization of Sukegawa’s flash memory 1 by preloading into flash
`
`memory 1 only those portions of the OS that are expected to be needed soon after
`
`power-on. Additionally, one of ordinary skill would have maintained portions
`
`expected to be