`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`UNITED STATES PATENT AND TRADEMARK OFFICE
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`
`VEEAM SOFTWARE CORPORATION
`Petitioner
`
`v.
`
`SYMANTEC CORPORATION
`Patent Owner
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`DECLARATION OF MATTHEW D. GREEN IN SUPPORT OF
`PATENT OWNER’S REPLY TO PETITIONER’S OPPOSITION
`
`Symantec 2028
`Veeam v. Symantec
`IPR2013-00150
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`I, Matthew D. Green, declare as follows:
`
`I.
`
`Background and Qualifications
`
`1.
`
`I am submitting this declaration on behalf of Symantec Corporation. I
`
`have been retained as a technical expert in connection with the above-captioned
`
`action to study and provide my opinions on certain issues related to U.S. Patent
`
`No. 7,093,086 (“the ‘086 Patent”). I understand that Petitioner has submitted an
`
`Opposition to Symantec’s Motion to Amend the claims of the ‘086 Patent , along
`
`with a Declaration by Dr. Shenoy (Veeam Exhibit 1031) in Support of its
`
`Opposition on February 24, 2014. I have been asked to provide my opinions
`
`regarding Petitioner’s Opposition and the corresponding Declaration by Dr.
`
`Shenoy, which are set forth in detail in this declaration.
`
`2.
`
`My compensation as an expert is in no way dependent upon the results
`
`of any investigations I undertake, the substance of any opinion I express, or the
`
`ultimate outcome of this case. Barr Group bills Patent Owner for my time by the
`
`hour, plus reimbursement for travel and other out-of-pocket expenses incurred
`
`during my work on this matter. Barr Group and I are each compensated regardless
`
`of the facts I know or discover and/or the conclusions or opinions I reach. I have
`
`no personal or financial stake or interest in the outcome of this matter.
`
`2
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`3.
`
`An updated version of my curriculum vitae is attached as Appendix A
`
`to this declaration.
`
`4.
`
`I have used my education and my years of experience working in the
`
`field of software design, and my understanding of the knowledge, creativity, and
`
`experience of a person of ordinary skill in the art in forming the opinions expressed
`
`in this report.
`
`5.
`
`In my Declaration in Support of Patent Owner’s Motion to Amend, I
`
`have set forth my understanding of certain legal principles relating to patent claim
`
`construction and validity that I relied upon. I have also set forth what I believe to
`
`be a person of ordinary skill in the art of the subject matter of the ‘086 Patent,
`
`including the skillset, education, experience and knowledge such a person would
`
`have possessed. I have relied on these same principles and definitions in reaching
`
`my opinions in this declaration.
`
`II.
`
`The Backup Program
`
`6.
`
`I understand that it is Petitioner’s position that Patent Owner’s
`
`substitute claim 31 is unpatentable because Lim allegedly discloses the added
`
`feature of a “backup program” that “interfaces with a … virtual machine kernel.”
`
`Opp., pp. 8-9. To support its position, Petitioner relies on Lim’s disclosure of a
`
`graphical user interface as corresponding to the backup program. Lim, col. 26:41-
`
`3
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`49, Shenoy Opp. Dec. paras. 20-22. I will address these arguments in the
`
`following discussion.
`
`7.
`
`First, in my reading of Lim, nowhere have I seen any reference to a
`
`backup program. This is unsurprising, given that Lim focuses on the creation,
`
`management and deployment of virtual machines as I explained in para. 142 of my
`
`Declaration in Support of Patent Owner’s Motion to Amend.
`
`8.
`
`As for the GUI referred to by Petitioner and Dr. Shenoy, it is merely
`
`used to send a checkpoint request to the virtual machine monitor. Lim, col. 26:43-
`
`49; Shenoy Opp. Dec., para. 21. The virtual machine monitor (which Dr. Shenoy
`
`argues is – or could be made – separate from the GUI), would then generate the
`
`checkpoint and extract the state information. Lim, col. 6:45-52; col. 18:2-8,
`
`Shenoy Opp. Dec. paras. 21-22. However, nowhere does Lim state that the GUI is
`
`used to transfer the state vector to a remote virtual machine, which Dr. Shenoy
`
`points to as meeting the copy step (ii) in the ‘086 Patent claims. Shenoy Pet. Dec.
`
`paras. 16-17. When asked specifically whether the GUI is used to transfer the state
`
`vector to another machine, Dr. Shenoy could not state that it does so during his
`
`deposition. Shenoy 2nd Dep., 51:11-19.
`
`9.
`
`Moreover, as I have previously noted in paras. 134-36 of my
`
`Declaration in Support of Patent Owner’s Motion to Amend, the Lim patent does
`
`not describe an invention that is capable of capturing the state of a first virtual
`
`4
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`machine executing on a first computer system. This is because the Lim patent
`
`requires that the virtual machine execution be interrupted prior to capturing the
`
`state, and only when the state has been captured does the virtual machine resume.
`
`Lim, col. 11:12-20, col. 18:2-10. Dr. Shenoy acknowledges the existence of this
`
`interruption, and even discusses techniques to minimize the duration of the
`
`interruption (though not to eliminate it altogether). Shenoy Opp. Dec. para. 28. I
`
`discuss these techniques further below.
`
`10. As a consequence of the above, Lim does not disclose a backup
`
`program, let alone any program that performs both the capture and copy steps (i)
`
`and (ii) as required by substitute claim 31. Indeed, Figure 6 of the patent clearly
`
`indicates that the virtual machine continues to execute during capture. Dr. Shenoy,
`
`when asked about these programs, confirmed that the program of Figure 6
`
`describes an embodiment where the virtual machine continues executing. Shenoy
`
`1st Dep., 68:22-69:6, Shenoy 2nd Dep. 18:24-19:6. This is the embodiment to
`
`which the substitutes claims, including claim 31, are directed.
`
`11.
`
`I understand that Petitioner states that the added feature in substitute
`
`claim 31 is not supported by the ‘086 Patent. More specifically, Petitioner takes
`
`the position that the patent does not describe the backup program performing the
`
`capture step (i), and instead “the ‘086 Patent consistently describes that the
`
`capturing of the state is performed by the VM Kernel.” Petitioner’s Opposition, p.
`
`5
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`4. While it is true that the VM Kernel may generate the virtual machine image, the
`
`specification makes clear that the backup program initiates the capture step and
`
`cooperates with the VM kernel to get the information needed, which is consistent
`
`with the added limitation in substitute claim 31. For example, the ‘086 Patent
`
`specification states that “the backup program 42 may communicate the image data
`
`request to the VM kernel 18, indicating that the virtual machine image is desired,”
`
`thereby requesting “the current state of the virtual machine.” ‘086 Patent, col.
`
`11:32-40; col. 12:61-65. In response to this request, “the VM kernel 18 may
`
`generate a virtual machine image 40.” ‘086 Patent, col. 13:4-6. In addition, the
`
`‘086 Patent describes another embodiment in which the VM kernel provides the
`
`address location for the state information. ‘086 Patent, col. 11:66-12:3, col. 13:13-
`
`15. Under both embodiments, it is clear that the backup program interfaces with
`
`the VM kernel to perform the capture step as specified in the added feature of
`
`substitute claim 31. During his deposition, Dr. Shenoy also confirms that it is the
`
`backup program that causes these actions to occur in order to capture state in both
`
`of these embodiments of the ‘086 Patent. Shenoy 2nd Dep., 20:2 - 21:19.
`
`III. Li
`
`12.
`
`It is my understanding that Petitioner relies on a research paper
`
`entitled “Low-Latency, Concurrent Checkpointing for Parallel Programs” by Li et
`
`al. (“Li”) to fill in some gaps in Lim. Opp., p. 9-14.
`
`6
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`13.
`
`The Li paper describes four techniques for checkpointing memory in
`
`application processes while minimizing – although not eliminating – the
`
`interruption required for the checkpoint procedure to execute. Although Li does
`
`not refer to virtual machine technology or virtual machine kernels, Petitioners
`
`reference one or more of Li’s techniques as being obviously combinable with the
`
`Lim patent. The techniques in question describe a method for using a variant of
`
`copy-on-write technology to perform low-latency checkpointing of application
`
`processes. I will now provide a brief summary of Li.
`
`14.
`
`Li describes a mechanism that is designed to work exclusively on
`
`computer systems that contain multiple processors (CPUs). Li, p. 874. In the Li
`
`proposal, the application is temporarily halted, then resumed. Li, p. 875.
`
`Subsequent to this resumption, one processor performs additional processes
`
`relating to checkpointing the application (e.g., capturing of memory state, writing
`
`to disk) while other processors continue to execute the application being
`
`checkpointed. Li, p. 875.
`
`15. More precisely, the process of Li, p. 875 can be described as follows:
`
`15a. First, execution of the application is interrupted.
`
`15b. Subsequent to the interruption, CPU registers are saved and all
`
`memory pages associated with the main memory of the application
`
`7
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`– but excluding the operating system and other software – are
`
`marked read-only.
`
`15c. Following step (2), the application is resumed on a set of
`
`processors, while a separate processor initiates a copier thread that
`
`copies each page of the main application memory to a
`
`corresponding page in a new memory space.
`
`15d. The copier thread copies each page from the main application
`
`memory to the new memory space, subsequently marking the
`
`original memory pages read-write.
`
`15e.
`
`In the event that the application attempts to write to a read-only
`
`page in the main memory space, that page is immediately copied to
`
`the new memory space, and the page is re-marked read-write.
`
`15f. An additional thread may, either concurrently with the copier
`
`thread or after it has completed operation, write the duplicate
`
`memory pages to a file on disk.
`
`16. Before I address the arguments made regarding Li, I will first address
`
`several inaccuracies in Petitioner’s and Dr. Shenoy’s statements regarding Li. First,
`
`Dr. Shenoy notes that Li’s algorithm “executes concurrently with the target
`
`program executing on the underlying computer system to be checkpointed.”
`
`Shenoy Opp. Dec. para. 25 (emphasis added). However, Li does not checkpoint a
`
`8
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`computer system. As clearly noted in the introduction to the Li paper, Li only
`
`considers checkpointing of a single target program. Li, p. 874. One significant
`
`consequence of this design is that the Li checkpointing process may be ineffective
`
`on programs that depend on system data such as operating system state, including
`
`“open file pointers”. Li acknowledges that these programs are not “guaranteed to
`
`be recoverable”. Li, p. 876. In fact, the limitations of application-only
`
`checkpointing techniques exemplified by Li (including the loss of data not yet
`
`written to files) are among several deficiencies assigned to the prior art by the ‘086
`
`inventors. ‘086 Patent, col. 1:35-45.
`
`17. Dr. Shenoy also mischaracterizes the operation of the Li copy-on-
`
`write mechanism. He states that “[i]f an executing program tries to write to a page
`
`while its protection is set to read-only, the write takes place in the new address
`
`space instead of the frozen original memory space.” Shenoy Opp. Dec. para. 26
`
`(emphasis added). However, Li clearly describes the executing program writing to
`
`the original memory space, and not the new memory space. Li, p. 875. In his
`
`subsequent deposition, Dr. Shenoy acknowledges this as an error. Shenoy 2nd Dep.,
`
`116:12-117:1.
`
`18. While Dr. Shenoy refers to this misunderstanding as a “typo”, the
`
`distinction is fundamental to understanding the operation and limitations of the Li
`
`technique when compared with the ‘086 invention. Indeed, while Li and the ‘086
`
`9
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`Patent both use the term “copy-on-write”, this term can describe very different
`
`technological processes and, contrary to Dr. Shenoy’s analysis, the ‘086 Patent and
`
`Li use the term in different ways. Specifically, the ‘086 Patent teaches that a VM
`
`kernel may “create the memory COW to record subsequent updates to the
`
`memory”, and notes that as a result of this design, “the state of the [main] memory
`
`may remain constant even if the virtual machine continues executing.” ‘086 Patent,
`
`col. 11:58-62 (emphasis added). However, the Li paper states that subsequent
`
`updates will be recorded into the main memory, and it is in fact the new memory
`
`area that reflects the state of the program at the time it was checkpointed. Li, p.
`
`875. This is exactly the opposite of what is taught by the ‘086 Patent. Moreover, in
`
`Li, at least until the copier thread is finished, neither memory area is constant. To
`
`further explain the differences, I have provided an illustration of each invention in
`
`the figures below.
`
`10
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`Target program
`(Processor 1)
`
`Copier thread
`(Processor 2)
`
`(2) Target program
`writes updates to
`main memory area.
`When program
`attempts to write an
`uncopied page, it
`is interrupted until
`the page is copied.
`
`Updated page 1
`...
`...
`...
`...
`Original page N
`
`(1) Copier thread copies
`original pages to
`checkpoint memory area
`
`Target program
`main memory area
`(non-static, mix of original and
`updated memory pages)
`
`Copy of orig. page 1
`...
`...
`...
`...
`Copy of orig. page N
`
`Checkpoint area
`(copy of original memory)
`
`Figure 1: Depiction of the Li checkpointing process.
`
`Virtual Machine
`
`Original page 1
`...
`...
`...
`...
`Original page N
`
`(1) VM writes updates
`to new memory area.
`VM execution need not
`be interrupted when
`writing a page.
`
`Updated page 1
`...
`
`New memory area
`(only stores updated
`pages)
`
`VM main memory area
`(static, does not receive updates)
`
`Figure 2: Depiction of the '086 checkpointing embodiment.
`
`19. Unfortunately, Dr. Shenoy does not explain how his analysis might
`
`have proceeded given a correct characterization of Li. It is my opinion that, from
`
`an accurate understanding of Li, one of ordinary skill in the art would not conclude
`
`that the Li procedure is analogous to the ‘086 Patent invention. For example, a
`
`skilled artisan would recognize the potential for realizing substantial performance
`
`11
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`improvements by allowing the application (or virtual machine) to write directly to
`
`the new memory area as described in the ‘086 Patent, rather than halting the
`
`application so that a copier thread can duplicate the original page data as taught by
`
`Li. This is borne out by the experimental section of Li, much of which is devoted
`
`to analyzing the performance degradation caused by the resulting page faults and
`
`copy operations. Li, p. 877. It is, of course, understandable that Li would employ
`
`the design it uses, given that Li’s technology checkpoints user-space memory
`
`within a single application on a physical machine. However, a checkpointing
`
`process employing a VM kernel would have substantially more flexibility in re-
`
`allocating the location of subsequent application memory updates; indeed, the
`
`ability to rapidly and transparently re-map memory is a fundamental tool used by
`
`virtualization systems. This helps to explain why the ‘086 Patent invention is able
`
`to employ a different and more efficient procedure.
`
`20.
`
`Similar errors appear in Petitioner’s Opposition brief. For example,
`
`Petitioner reiterates that “[i]f a target program tries to write a page during the
`
`copying process the write is redirected to the new address space.” Opp. p. 12. This
`
`statement is attributed directly to Li, rather than to Dr. Shenoy’s declaration.
`
`Additionally, Petitioner states that Li “describes freezing the processor temporarily
`
`to complete a portion of the capturing”. Opp., p. 12. However, Li clearly teaches
`
`12
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`freezing the processor to initiate the capturing process, not to complete a portion of
`
`it. Li, p. 875.
`
`21. Having addressed these technical differences, I will now proceed to
`
`address the remaining arguments offered by Petitioner regarding Li.
`
`22.
`
`First, it is acknowledged by all parties that Li does not describe a
`
`process for backing up or even checkpointing virtual machines. Li is merely an
`
`application checkpointing mechanism intended for use on a limited subset of
`
`physical machines – namely, those with multi-processor capability, which was not
`
`universal at the time the ‘086 Patent was invented. Li, p. 874, Moreover, Li’s
`
`limited checkpointing procedure excludes all system state except for user-space
`
`memory used by the application and the processor registers. Li, p. 876. This
`
`effectively rules out programs that access files and interact with devices via the
`
`operating system; i.e., the most commonly-used software and effectively most of
`
`the state maintained by a virtual machine.
`
`23.
`
`For at least the reasons above, Li is similar to the Hipp reference in
`
`that both are concerned with capturing the state of an application at the expense of
`
`ignoring the state of the computer system for the sake of simplicity.
`
`24. Applying Li to the present matter therefore requires that we accept
`
`Petitioner’s claim that one of ordinary skill in the art would have been motivated to
`
`combine Li with the Lim patent. Petitioner and Dr. Shenoy’s argument for this
`
`13
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`combination can be summarized as follows: (1) both Li and Lim relate to
`
`checkpointing, (2) Li discloses checkpointing application processes, and a virtual
`
`machine monitor is also a process, and (3) Lim’s checkpoints require an
`
`interruption of the processor, therefore a skilled artisan would seek to minimize
`
`(though not eliminate) this interruption. Shenoy Opp. Dec., para. 28.
`
`25. While the first point is certainly true, it does not follow that the
`
`techniques of Li would be applied to a virtual machine monitor solely because the
`
`latter “is a process”. Indeed, the Lim patent does not describe applying its
`
`checkpointing techniques to the virtual machine monitor at all, but rather, it
`
`describes capturing state of the virtual machine itself. The difference is that the
`
`virtual machine monitor is a software component of the VM kernel that is
`
`responsible for executing and providing a hardware interface for virtual machines.
`
`Lim, col. 15-17. Performing the Li checkpoint on the virtual machine monitor
`
`would be unusual, since the monitor will likely contain substantially more state
`
`than just the memory of the virtual machine. Moreover, since virtual machine
`
`monitors frequently reference external state maintained by an operating system or
`
`kernel, such as file pointers and hardware states, Li’s techniques would not be
`
`appropriate and the state captured would not be sufficient to resume the virtual
`
`machine. Li, p. 876. Finally, the Lim patent explicitly describes the virtual machine
`
`monitor (or VM kernel) being involved in the checkpointing of the virtual
`
`14
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`machine, and references the advantages of performing this checkpointing using a
`
`virtual machine monitor (or VM kernel) rather than via an application process.
`
`Lim, col. 5:25-6:21.
`
`26. With reference to point (3) above, it is important to point out that one
`
`of ordinary skill in the art would not necessarily have been motivated to implement
`
`a process that reduces the interruption time, if the cost of implementing said
`
`process was to limit the invention to only working on specific multi-processor
`
`computers, while also explicitly excluding the use of file pointers and other critical
`
`operating system or kernel state. Lim specifically notes that the invention should
`
`be independent of the hardware used. Lim, col. 6:4-21, col. 16:62-64. Moreover,
`
`even when multiple processors are available, Li’s techniques would only reduce
`
`the interruption, not eliminate it. Nor would it even reduce the interruption to a
`
`level that is comparable with the various routine interruptions that occur during
`
`normal program execution (see Section VII). The ‘086 Patent, on the other hand,
`
`does not require such interruption regardless of whether a single or several
`
`processors are used.
`
`IV. The Capture of State While a Virtual Machine is Executing
`
`27.
`
`I understand that it is Petitioner’s position that Patent Owner’s
`
`substitute claims 32-34 are unpatentable over Lim in view of Li. Opp., pp. 8-14. I
`
`have addressed above the shortcomings of Li and the problems with such a
`
`15
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`combination. Here, I will address Petitioner’s and Dr. Shenoy’s arguments
`
`pertaining to the capture of state while the virtual machine is executing as it relates
`
`to those substitute claims.
`
`28.
`
`Specifically, I understand that it is Petitioner’s position that virtual
`
`machines cannot be executing continuously during the entire capturing step.
`
`Shenoy Opp. Dec., para. 10. Dr. Shenoy in particular notes that “to capture state
`
`one must stop, at least momentarily, a register from being updated while it is being
`
`‘captured’.” Id.
`
`29. One of ordinary skill in the art would understand that modern
`
`computers and operating systems do not “execute” programs in the literal sense
`
`that a single executing program continuously occupies every instruction cycle on a
`
`running processor. Instead, operating system and VM kernels routinely switch
`
`between different software tasks, including (but not limited to) the kernel itself,
`
`system management code, low-level drivers, other VMs, and other applications
`
`running on the system. The process of switching between tasks is known as a
`
`“context switch”, while the process of switching between two different running
`
`virtual machines is sometimes referred to as a “machine switch”.1
`
`1 Even machines that include multiple processors routinely perform context switches and machine
`switches during normal operation. Some machines may capture register state by switching future
`execution to use a different set of registers, while others may copy them into RAM.
`16
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`30. During these “context switches”, it is standard for the operating
`
`system to save the state of registers on the processor, sometimes dozens or
`
`hundreds of times per second.2 This operation is common to virtually all general
`
`purpose computers, virtualization kernels, and operating systems such as those
`
`referenced by the ‘086 Patent.3
`
`31.
`
`It is my understanding that patent claims are given their broadest
`
`reasonable interpretation according to one of ordinary skill in the art in light of the
`
`specification. One of ordinary skill in the art would therefore understand that
`
`phrases such as “the virtual machine continues to execute” (e.g., ‘086 Patent, col.
`
`11:50-51) cannot reasonably be interpreted to exclude standard computing
`
`overhead such as context or machine switches by the VM kernel. Nor could such a
`
`phrase exclude other routine processes (such as saving register state) that are
`
`common to normal execution of all software on a modern computing system, and
`
`particularly the exemplary systems referenced by the patent.
`
`2 Operating System Concepts by Silbershatz, Galvin and Gagne (2003 edition, John Wiley and Sons)
`describes context switches at p. 103: “Switching the CPU to another process requires saving the
`state of the old process and loading the saved state for the new process. This task is known as a
`context switch. The context of a process is represented in the PCB of a process, it includes the value
`of the CPU registers… When a context switch occurs, the kernel saves the context of the old
`process in its PCB and loads the saved context of the new process scheduled to run.”
`3 While there exist specialized processors/OS software that lack the ability to context switch, these
`are largely used in embedded devices (e.g., industrial controllers, appliances) and one of ordinary skill
`in the art would understand these computers/OS types to be orthogonal to the computers/OS types
`that are described in the ‘086 Patent.
`
`17
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`32.
`
`Instead, a skilled artisan would understand that an “executing” virtual
`
`machine in the sense of the ‘086 Patent is simply one that executes according to the
`
`plain language meaning of the term – i.e., a machine that continues to perform
`
`computation and input/output processing in the normal manner that it would if the
`
`capture/copy procedure were not taking place. This explicitly rules out capture
`
`procedures that interrupt the machine for non-standard operations and durations,
`
`i.e., prevent it from operating normally.
`
`33.
`
`The prior art – and particularly the Lim patent – explicitly disclose
`
`techniques in which the virtual machine’s execution is interrupted, potentially for a
`
`substantial period of time. For example, in the Lim patent, the virtual machine
`
`execution is (1) interrupted, at which point the machine (2) senses a checkpoint
`
`request, and (3) generates at least one checkpoint. Only subsequent to step (3) does
`
`the virtual machine resume executing. Lim, col. 6:45-50. Neither of steps 1, 2 or 3
`
`represent standard processes that occur during normal virtual machine execution.
`
`Step 3 in particular has the potential to be quite time consuming due to the
`
`substantial size of the virtual machine state. Lim, col. 23:56-62.
`
`34. Dr. Shenoy acknowledges this point, and agrees that the virtual
`
`machine of Lim ceases execution during the state capture process. He addresses the
`
`discrepancy only by noting that, in some embodiments, execution might not be
`
`interrupted “for the whole time”. Shenoy 2nd Dep., 37:1-17. Yet even within these
`
`18
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`embodiments, he is still able to identify cases – such as the construction of the
`
`initial S0 state vector – where the interruption might still be quite substantial.
`
`Shenoy 2nd Dep., 38:4-25.
`
`35. More fundamentally, while the duration of interruption is interesting,
`
`a skilled artisan would realize that the essential distinction between these
`
`inventions is not the quantitative duration of a specific interruption – which in the
`
`case of Lim might sometimes be short and might sometimes be long – but rather
`
`the qualitative fact that Lim features such an interruption, while the inventive
`
`contribution of the ‘086 Patent is to provide a means to explicitly avoid
`
`interruptions that would not be part of the normal machine execution.4
`
`36.
`
`This distinction has practical implications. In a production computing
`
`system, even the possibility of a significant interruption means that software may
`
`occasionally be unable to process requests in a timely fashion. This can have
`
`serious and negative implications in some computing areas e.g., computers that
`
`4 As Dr. Shenoy testifies, a physical machine with a fast processor may be used to emulate a
`virtual machine with a slower processor. Shenoy 2nd Dep., 56-58. As a concrete example,
`consider a 1GHz physical machine emulating a virtual machine with a 1MHz processor. With
`this clock disparity, 1000 clock cycles of the faster processor occur within each clock tick of the
`slower virtual processor. The resolution of the slower system would typically be related to the
`fastest system clock, which is usually the processor clock. Within this timeframe, it may be
`possible to switch the “slow” VM to using the new memory COW area and log for updates.
`Because this switch occurs between clock ticks of the slower virtual processor (i.e., it cannot
`resolve times between clock ticks), the slower virtual machine would not have been suspended
`and instead continued to execute (i.e., it never missed a clock cycle).
`19
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`perform rapid financial transactions or control medical devices.5 On such
`
`computers, it would be necessary to manually disable a backup system built on the
`
`pattern of Lim, lest the computer become non-responsive during critical
`
`operations. I do not believe the Lim and Li combination renders obvious claims
`
`32-34, for example, by describing the added feature where “the first virtual
`
`machine can continue executing during (i) and (ii).”
`
`37.
`
`Enabling non-interrupted capture (or capture and copy) was not
`
`simply a matter of changing some options in existing software, but required
`
`entirely new engineering to accomplish, particularly given that the state of a virtual
`
`machine is constantly changing as it executes. A person of ordinary skill in the art
`
`possessing a skillset consistent with that of a software developer would have opted
`
`to use pre-existing prior art techniques that require interruption or suspension of
`
`the virtual machine as this would have been easier than attempting to re-engineer
`
`existing software.
`
`38.
`
`The Lim and Li combination does not disclose a backup program for a
`
`virtual machine that allows the state of a virtual machine at a point in time to be
`
`captured and copied while the virtual machine continues executing. Indeed, these
`
`references are consistent with my understanding of the state of the art; a person of
`
`5 Examples also include web servers and databases, which must process request within a certain
`duration or the calling software will time the connection out.
`20
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`ordinary skill in the art would have been aware of the existence of prior art
`
`techniques dealing with capture of any state information of a virtual machine and
`
`that they allow for two possibilities: 1) explicit interruption of the VM (e.g.,
`
`through checkpointing techniques that require suspension),which negates the
`
`executing or continuing execution requirement of the substitute claims; or 2)
`
`capturing only a portion of the VM’s state at any single point in time, which would
`
`result in an inconsistent blurred state and faulty backups if used to extract
`
`additional information because it would necessarily occur at a different point in
`
`time when the state of the VM will have changed.
`
`V. Memory COW Area and Writing of Subsequent Updates to New
`Log/Memory COW Area After Capture
`
`39.
`
`I have addressed above certain positions by Petitioner and Dr. Shenoy
`
`with respect to the patentability of the substitute claims over Lim in combination
`
`with Li. With respect to the added features of claims 32 and 34 which are
`
`challenged by Petitioner, I will provide additional reasons that address Petitioner’s
`
`positions.
`
`40.
`
`I do not believe the Lim and Li combination renders obvious claims
`
`32 and 34, for example, by describing the added feature of a memory COW area,
`
`and the writing of subsequent updates to a new log or memory COW area such that
`
`the virtual machine can continue executing. Indeed, these references are consistent
`
`21
`
`
`
`Case IPR2013-00150
`U.S. Patent No. 7,093,086
`
`with my understanding of the state of the art and my conclusion that although a
`
`person of ordinary skill in the art would have been aware of the existence of copy-
`
`on-write techniques for checkpointing processes, such a person would have not
`
`created a structure (such as a memory COW area) in order to capture and copy the
`
`state of a virtual machine while it is executing.
`
`41.
`
`Petitioner and Dr. Shenoy argue that claim 32 is anticipated by the
`
`prior art, specifically Lim. This is surprising, as elsewhere in his report, Dr.
`
`Shenoy acknowledges that Lim does not provide a copy-on-write mechanism
`
`designed to eliminate (or even minimize) interruptions due to state capture. Shenoy
`
`Opp. Dec., para. 17-18, 28. Indeed, the need for such a mechanism is discussed at
`
`length in Dr. Shenoy’s declaration, when he proposes to combine Lim with Li in
`
`order to obtain such a mechanism. Shenoy Opp. Dec., paras. 24-28. While I have
`
`addressed the shortcomings of the Lim and Li combination elsewhere, I agree with
`
`Dr. Shenoy that a memory COW mechanism is a necessary precondition to
`
`“minimize [the interruption of execution] so that the virtual machine could execute
`
`for as long of a period as possible during checkpointing.” Shenoy Opp. Dec., para.
`
`24-28. Without such a mechanism in place, Lim cannot anticipate Claim 32.
`
`Hence it is not possible for Lim to create a memory COW area to capture writes to
`
`a memory of the first virtual machine, such that the first virtual machine can
`
`continue executing during (i) and (ii).
`
`22
`
`
`
`Case IPR2013-0