Ex Parte Dror et alDownload PDFPatent Trial and Appeal BoardMar 31, 201712631662 (P.T.A.B. Mar. 31, 2017) Copy Citation United States Patent and Trademark Office UNITED STATES DEPARTMENT OF COMMERCE United States Patent and Trademark Office Address: COMMISSIONER FOR PATENTS P.O.Box 1450 Alexandria, Virginia 22313-1450 www.uspto.gov APPLICATION NO. FILING DATE FIRST NAMED INVENTOR ATTORNEY DOCKET NO. CONFIRMATION NO. 12/631,662 12/04/2009 Asael Dror 327994U SNP/104709.0615 2231 41505 7590 Baker & Hostetler LLP (MICROSOFT CORPORATION) CIRA CENTRE, 12TH FLOOR 2929 ARCH STREET PHILADELPHIA, PA 19104-2891 EXAMINER THOMPSON, JAMES A ART UNIT PAPER NUMBER 2616 NOTIFICATION DATE DELIVERY MODE 04/04/2017 ELECTRONIC Please find below and/or attached an Office communication concerning this application or proceeding. The time period for reply, if any, is set in the attached communication. Notice of the Office communication was sent electronically on above-indicated "Notification Date" to the following e-mail address(es): u sdocket @ micro soft .com eofficemonitor@bakerlaw.com PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD Ex parte ASAEL DROR, HAO ZHANG, B. ANIL KUMAR, STUART RAY PATRICK, NEAL D. MARGULIS, LIN TAN, PANDELE STANESCU, MARTIN AMON, and MIRIAM BARBARA SEDMAN Appeal 2016-008446 Application 12/631,6621 Technology Center 2600 Before CAROLYN D. THOMAS, JEFFREY S. SMITH, and TERRENCE W. McMILLIN, Administrative Patent Judges. McMILLIN, Administrative Patent Judge. DECISION ON APPEAL This is a decision on appeal under 35 U.S.C. § 134(a) of the rejection of claims 1—3, 6—13, 15, 16, and 18—22. Non-Final Act. 1. We have jurisdiction under 35 U.S.C. § 6(b). We AFFIRM. 1 According to Appellants, the real party in interest is Microsoft Technology Licensing, LLC (App. Br. 1). Appeal 2016-008446 Application 12/631,662 REJECTIONS ON APPEAL Claims 18—20 stand rejected under 35 U.S.C. § 101 as being directed towards non-statutory subject matter. Non-Final Act. 3. Claims 13, 15, 16, and 18—22 stand rejected under pre-AIA 35 U.S.C. § 102(b) as being anticipated by Blythe (US 2006/0146057 Al, published July 6, 2006). Non-Final Act. 5. Claims 1—3 and 6—12 stand rejected under 35 U.S.C. § 103(a) as being unpatentable over Green (US 2007/0008324 Al, published Jan. 11, 2007), Blythe, andNaegle (US 2005/0001844 Al, published Jan. 6, 2005). THE CLAIMED INVENTION The present invention generally relates to “virtualization to abstract underlying hardware,” and more particularly to “virtualizing a graphics accelerator such as a GPU.” Spec. Tflf 3, 5. Independent claim 1 is directed to a method; independent claim 13 is directed to a system; and independent claim 18 is directed to a computer readable storage medium. App. Br. 30, 31,33. Claim 1 recites 1. In a system comprising a processor, memory, and a graphics accelerator, a method for providing para-virtualized abstracted graphics accelerator functionality configured to present a software interface that is independent of a particular graphics accelerator product, the method comprising: receiving, from an application executing on a first partition, a request for a graphics rendering function, said request corresponding to at least one operation associated with a virtual representation of a graphics processing unit, the virtual representation of an abstracted software-implemented GPU that presents a software interface different from that of the particular graphics accelerator product and configured to provide a set of graphics rendering functions to a virtual 2 Appeal 2016-008446 Application 12/631,662 machine executing in the first partition, wherein said at least one operation is translated to one or more instructions executable on a graphics accelerator associated with a second partition, and wherein the at least one operation is translated based on predetermined relationships between hardware-specific operations on the graphics accelerator and abstracted graphics operations that are independent of the hardware-specific operations of the abstracted software- implemented GPU; causing the execution of said one or more instructions on said graphics accelerator; and providing results of the execution of said one or more instructions to the virtual machine for further processing. Claim 13 recites 13. A system configured to provide para-virtualized abstracted graphics accelerator functionality to a virtual machine, the functionality configured to present a software interface that is independent of a particular graphics accelerator product, the system comprising: at least one processor; and at least one memory communicatively coupled to said at least one processor, the memory having stored therein computer-executable instructions for: generating a virtual machine session, the virtual machine session including a user mode display driver; adapting at least one operation to correspond to one or more instructions executable on an underlying graphics processing unit, the at least one operation corresponding to a graphics primitive of the user mode display driver, the at least one operation associated with a virtual graphics processing unit, the virtual graphics processing unit configured to provide a set of graphics rendering functions, the virtual graphics processing unit comprising an abstracted software-implemented 3 Appeal 2016-008446 Application 12/631,662 GPU that presents a software interface different from that of the particular graphics accelerator product, wherein the at least one operation is adapted based on at least one predetermined relationship between one or more hardware- specific operations on the underlying graphics processing unit and one or more abstracted graphics operations that are independent of the one or more hardware-specific operations of the abstracted software- implemented GPU; and causing execution of said one or more instructions on said underlying graphics processing unit. ANALYSIS We have reviewed the Examiner’s rejections in light of App arguments that the Examiner erred. We axe not persuaded that Appellants identify reversible error. Upon consideration of the arguments presented in the Appeal Brief and Reply Brief, we agree with the Examiner that all the pending claims are unpatentable over the cited combination of references. We adopt as our own the findings and reasons set forth in the rejection from which this appeal is taken and in the Examiner’s Answer. We provide the following explanation to highlight and address specific arguments and findings primarily for emphasis. Rejection under § 101 of Claims 18—22 Claims 18—22 were rejected under 35 U.S.C. § 101 as directed to non- statutory subject matter. Appellants argue that use of the word “storage” to modify “medium” within the phrase “computer readable storage medium” indicates that the claim covers non-transitory embodiments and not transitory embodiments such as signals. App. Br. 7; see Reply Br. 2. 4 Appeal 2016-008446 Application 12/631,662 However, “those of ordinary skill in the art would understand the claim term ‘machine-readable storage medium’ would include signals per se.”2 Ex parte Mewherter, 107 USPQ2d 1857, 1862 (PTAB 2013) (precedential). The Mewherter panel explained, “a signal with embedded data [is a storage medium] for data can be copied and held by a transitory recording medium, albeit temporarily, for future recovery of the embedded data.” Id. We find nothing in Appellants’ Specification that leads us to construe “computer readable storage medium” more narrowly. Specifically, although Appellants argue “every reference to ‘medium’ in Appellants’] specification only discusses tangible devices” and “made no mention of transitory signals,” nothing in Appellants’] Specification excludes transitory signals as a definition of a medium. Reply Br. 2; see App. Br. 8; see also Spec. 23, 30, 117. Therefore, we sustain the rejections of claims 18—22 under 35U.S.C. § 101. Rejection under § 102(b) of Claims 13, 15, 16, and 18—22 Appellants contend Blythe does not describe “generating a virtual machine session, the virtual machine session including a user mode display driver,” as recited in claim 13 (emphasis added). See Reply Br. 3; see also App. Br. 12. The Examiner finds Blythe’s input and output devices “are the kinds of structures that are virtualized by the architectures of the invention” and the “user input device is virtualized through a user input interface connected to the system, allowing the user to enter commands and 2 We note “machine-readable storage medium” and “computer-readable storage medium” are equivalent terms. Mewherter, 107 USPQ2d at 1859 n. 2. 5 Appeal 2016-008446 Application 12/631,662 information to the computer, which are reflected in what is displayed on the display,” and Blythe’s “virtual session (of the virtualized user input device connected to the computer) includes a user mode display driver (driving the display according to the user input).” Ans. 19—20. We agree with the Examiner. Appellants’ argument is based on Appellants’ contention that Blythe makes “no reference to a user mode display driver.” App. Br. 12. However, neither claim 13 nor Appellants’ Specification provides any further limiting definition of a “user mode display driver.” Id. As is understood by those skilled in the art, a “driver (which is always software) provides instructions for reformatting or interpreting software commands for transfer to and from peripheral devices and the central processor unit (CPU). . . [i]n other words, the driver is a software module that ‘drives’ the data out of a specific hardware port.” Driver, Newton’s Telecom Dictionary (20th ed. 2004). Therefore, the broadest reasonable interpretation of the claimed “user mode display driver” encompasses software that processes the virtualization of input devices through a user input interface in Blythe cited by the Examiner. See Ans. 19—20, citing Blythe Fig. 6 and 134. Appellants have not provided persuasive evidence that the “user mode display driver,” as recited in claim 13, is not described by Blythe’s virtualization of input devices through a user input interface. Appellants further contend Blythe does not describe “adapting at least one operation to correspond to one or more instructions executable on an underlying graphics processing unit, the at least one operation corresponding to a graphics primitive of the user mode display driver, the at least one operation associated with a virtual graphics processing unit,” as recited in 6 Appeal 2016-008446 Application 12/631,662 claim 13. See App. Br. 13; see also Reply Br. 4—5. Specifically, Appellants argue that Blythe describes there is no equivalent of program translation, and fails to describe “adaptation of an operation, adaptation to instructions executable on an underlying graphics processing unit, nor a virtual graphics processing unit.” App. Br. 13. The Examiner finds Blythe describes that emulation and translation amount to the same thing, and Blythe describes “operations on virtual machines adapted to corresponding instructions executable on the underlying GPU used to virtualize the machines,” as well as “how the graphics processing pipelines apply graphics primitives.” Ans. 20—21, 5—6. We agree with the Examiner. Blythe discloses: For an API like the graphics device interface (GDI), it may be practical to emulate the entire stack in software, but for newer APIs that depend on hardware acceleration, the performance degradation may be unacceptable. One possibility is to redirect graphics processing requests from the Guest OS to the Host OS, for example, using software emu/a h'o /? /1 r ap p i n g of the low-level hardware interfaces of a well-known graphics hardware device. Blythe 67 (emphasis added). In other words, Blythe describes emulating the entire stack in software for a GDI and emulating graphics processing requests. As such, Blythe describes emulating, or adapting, operations corresponding to a graphics processing unit, the operations associated with a graphics driver and an emulated graphics unit. Appellants have not provided persuasive evidence that the “adapting at least one operation to correspond to one or more instructions executable on an underlying graphics processing unit, the at least one operation corresponding to a graphics primitive of the user mode display driver, the at least one operation associated with a virtual graphics processing unit,” as 7 Appeal 2016-008446 Application 12/631,662 recited in claim 13, is not described by Blythe’s emulating operations corresponding to a graphics processing unit, the operations associated with a graphics driver and an emulated graphics unit. Appellants further contend Blythe does not describe “the virtual graphics processing unit configured to provide a set of graphics rendering functions, the virtual graphics processing unit comprising an abstracted software-implemented GPU that presents a software interface different from that of the particular graphics accelerator product” and wherein the at least one operation is adapted based on at least one predetermined relationship between one or more hardware- specific operations on the underlying graphics processing unit and one or more abstracted graphics operations that are independent of the one or more hardware-specific operations of the abstracted software-implemented GPU, as recited in claim 13. App. Br. 14—15; Reply Br. 6—8 (emphasis added). Specifically, Appellants argue Blythe makes “no reference to a virtual graphics processing unit, nor do the citations disclose an abstracted software-implemented GPU,” “no reference to abstracted graphics operations that are independent of the hardware-specific,” and Blythe’s description of execution of commands from the same graphics architecture contradicts the claimed “abstracted software-implemented GPU that presents a software interface different from that of the particular graphics accelerator product” and the claimed “one or more abstracted graphics operations that are independent of the one or more hardware-specific operations of a particular graphics processing unit.” App. Br. 14, 15, 16; Reply Br. 6, 7—8. The Examiner finds Blythe describes “virtualized GPUs and interfaces emulated in the system, thus performing rendering and other operations (set of graphics rendering functions) which are independent of hardware specific 8 Appeal 2016-008446 Application 12/631,662 operations and different from that of the particular graphics accelerator” since “the virtualization is used to mimic the guest computer” and “the graphics operations can be considered to be abstracted.” Ans. 24. We agree with the Examiner. As cited by the Examiner, Blythe discloses: The virtualizer program acts as the interchange between the hardware architecture of the host machine and the instructions transmitted by the software (e.g., operating systems, applications, etc.) running within the emulated environment. This virtualizer program may be a host operating system (HOS), which is an operating system running directly on the physical computer hardware (and which may comprise a hypervisor, discussed in greater detailed later herein). Alternately, the emulated environment might also be a virtual machine monitor (VMM) which is a software layer that runs directly above the hardware, perhaps running side-by-side and working in conjunction with the host operating system, and which can virtualize all the resources of the host machine (as well as certain virtual resources) by exposing interfaces that are the same as the hardware the VMM is virtualizing . . . For an API like the graphics device interface (GDI), it may be practical to emulate the entire stack in software, but for newer APIs that depend on hardware acceleration, the performance degradation may be unacceptable. One possibility is to redirect graphics processing requests from the Guest OS to the Host OS, for example, using software emu/a h'o /? /1 r ap p i n g of the low-level hardware interfaces of a well-known graphics hardware device. Blythe Tflf 47, 67 (emphasis added). In other words, Blythe describes virtualizing and emulating between hardware and software, and emulating the entire stack in software for a GDI or emulating graphics processing requests. As such, Blythe describes the virtualized abstracted software- implemented GPU with a software interface different than that of the hardware graphics accelerator product. 9 Appeal 2016-008446 Application 12/631,662 Appellants have not provided persuasive evidence that “the virtual graphics processing unit configured to provide a set of graphics rendering functions, the virtual graphics processing unit comprising an abstracted software-implemented GPU that presents a software interface different from that of the particular graphics accelerator product” and wherein the at least one operation is adapted based on at least one predetermined relationship between one or more hardware- specific operations on the underlying graphics processing unit and one or more abstracted graphics operations that are independent of the one or more hardware-specific operations of the abstracted software-implemented GPU, as recited in claim 13 is not described by Blythe’s virtualized abstracted software-implemented GPU with a software interface independent from and different than that of the hardware graphics accelerator product and the underlying graphics processing unit. Accordingly, we sustain the § 102(b) rejection of independent claim 13, as well as the rejection of commensurate independent claim 18, argued for the same reasons as claim 13, as well as the rejections of dependent claims 15, 16, and 19—22, not separately argued. See App. Br. 16—22; see also Reply Br. 8. Rejection under § 103(a) of Claims 1—3 and 6—12 Appellants contend Green does not teach or suggest “an abstracted software-implemented GPU,” as recited in claim 1. App. Br. 25. Specifically, Appellants argue Green’s “virtual graphics adapter is not the same as an abstracted software-implemented GPU.” App. Br. 24. In response, the Examiner finds “Green teaches that there are virtualized processors . . . partitioned and specifically used to execute graphics 10 Appeal 2016-008446 Application 12/631,662 software” and, thereby, “the virtualized processor used in such a way constitutes ‘an abstracted software-implemented GPU.’” Ans. 26. We agree with the Examiner. As cited by the Examiner, Green discloses: FIG. 2A illustrates a virtualized computing system comprising a host operating system (host OS) software layer 204 running directly above physical computer hardware 202, where the host OS 204provides access to the resources of the physical computer hardware 202 by exposing interfaces to partitions A 208 and B 210 for the use by operating systems 212 and 214, respectively. Such virtual graphics adapters, allow applications running in the VCPs to access graphics adapter resources 326 they may need. For example, application A 316 could interface with the virtual graphics adapter A 320 and through the graphics proxy process 314 ultimately access the graphics adapter resources 326. Green || 23, 30 (emphasis added). In other words, Green teaches virtualizing or abstracting the system, providing software layer access to the physical computer resources, including providing virtual graphics adapters access to graphics adapter resources. Appellants have not provided persuasive evidence that “an abstracted software-implemented GPU,” as recited in claim 1, is not taught or otherwise suggested by Green’s virtualizing a system to allow software layer access to physical computer resources including for virtual graphics adapters and graphics adapter resources. Appellants further contend Blythe is deficient for the same reasons as with regards to claim 13. Therefore, we agree with the Examiner with regards to Blythe teaching “the at least one operation is translated based on predetermined relationships between hardware-specific operations on the graphics accelerator and abstracted graphics operations that are independent 11 Appeal 2016-008446 Application 12/631,662 of the hardware-specific operations of the abstracted software-implemented GPU,” as recited in claim 1, as noted supra. Accordingly, we sustain the § 103(a) rejection of claim 1, as well as the rejections of dependent claims 2, 3, 6—12, not separately argued. See App. Br. 29. DECISION The § 101 rejection of claims 18—22 is affirmed. The § 102 rejection of claims 13, 15, 16, and 18—22 is affirmed. The § 103 rejection of claims 1—3 and 6—12 is affirmed. No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a)(l)(iv). AFFIRMED 12 Copy with citationCopy as parenthetical citation