Lead Opinion
Concurring opinion filed by Circuit Judge LOURIE.
Plaintiff Nazomi Communications, Inc. (“Nazomi”) appeals from a decision of the United States District Court for the Northern District of California construing disputed claim language and granting summary judgment of non-infringement in favor of defendants Western Digital Corporation and Western Digital Technologies, Inc. (collectively, “Western”), and Sling Media, Inc. (“Sling”). We affirm.
Background
To function, a computing device requires both hardware and software. Processors are hardware components embedded in computing devices. The central processing unit (“CPU”) enables a computing device to carry out instructions contained in a computer program. Software refers to instructions that tell the device hardware what to do. The hardware then follows these instructions (“executes” the software).
For a software program to run on the CPU of a computing device, the program must be compiled or translated from a high-level programming language that is written in a human-readable syntax (“source code”), into a machine-readable form (“machine code”) that the processor can understand. Machine code is processor-specific. As a result, particular compilers can only translate programs into machine code for particular types of processors. For example, Intel-based processors use one set of native instructions, Macintosh PowerPC-based processors use a different set of native instructions, and ARM Limited processors use another still. Therefore, to run the same source code or software on a different system or platform, it must be recompiled for the new system.
Java is a high-level programming language that addresses this problem by allowing developers to write programs that can run on different processors without being recompiled for each new system. Instead, the Java language uses a single compiler that translates Java programs into “bytecodes” instead of processor-specific machine code. Java bytecodes do not run directly on the CPU, but on a Java Virtual Machine (“JVM”) which translates them into processor-specific machine code. Therefore, programs written in Java can run on any platform and any operating system, providing one of the principal advantages of Java programs — their “portability.”
Computing devices also vary in how they store data in memory, which affects the characteristics of the machine code. Processors using stack-based memory systems “store information on a last-in, first-out basis ..., analogous to a stack of papers in an inbox.” JA 2709. Therefore, “[t]o access a paper at the bottom of the stack, the reader must remove all of the papers above it.” JA 2709. In contrast, register-
Therefore, a device using a register-based processor can run programs written in Java using a JVM that translates the stack-based Java bytecodes into register-based instructions. But executing Java bytecodes using a typical software-based JVM takes longer than executing programs that can run directly on the device’s hardware without translation. One solution to this problem is processing certain Java bytecodes in hardware where the appropriate software is present to “accelerate” the execution of Java programs. However, such hardware-based JVMs may be unable to process legacy applications that are not programmed in Java.
Nazomi’s two patents asserted here aim to address this issue. They describe a hardware-based JVM capable of processing stack-based instructions, that also retains the ability to run legacy (ie., register-based) applications without utilizing the JVM. At issue are four apparatus claims from two related patents, independent claims 48 and 74 of U.S. Patent No. 7,080,362 (“the '362 patent”) and independent claims 1 and 5 of U.S. Patent No. 7,225,436 (“the '436 patent”). Representative claim 48 of the '362 patent reads:
48. A central processing unit (CPU) capable of executing a plurality of instruction sets comprising:
an execution unit and associated register file, the execution unit to execute instructions of a plurality of instruction sets, including a stack-based and a register-based instruction set;
a mechanism to maintain at least some data for the plurality of instruction sets in the register file, including maintaining an operand stack for the stack-based instructions in the register file and an indication of a depth of the operand stack;
a stack control mechanism that includes at least one of an overflow and underflow mechanism, wherein at least some of the operands are moved between the register file and memory; and a mechanism to generate an exception in respect of selected stack-based instructions.
'362 patent col. 10 1. 57 to col. 111. 6.
a decoding mechanism [for a plurality of instruction sets, including stack-based and register-based];
a register file [including an operand stack to store operands for the stack-based instruction set and data associated with the register for register-based instruction set];
at least one of an overflow and underflow mechanism to cause the operands to — be moved between the register file and memory; and
an execution unit that processes the output [of the decoding of the stack-based and register-based instruction sets],
'362 patent col. 12 11. 29-47.
1. A CPU for executing stack and register-based instructions, comprising; execute logic ... for executing the register-based instructions;
*1342 a register file associated with the execute logic; and
a hardware accelerator to process stack-based instructions ..., wherein the hardware accelerator generates a new virtual machine program counter ..., computes the return virtual machine program counter and pushes the return virtual machine program counter.
'426 patent col. 14 11. 30-46.
5. A central processing unit (CPU) comprising: execute logic ...; a hardware accelerator ...; an operand stack ...; an overflow/underflow mechanism ...; a bytecode buffer that receives stack-based instructions ...; and an instruction decode unit ...; and a common program counter....
Defendants Western and Sling are consumer product manufacturers that incorporate various processors into their products. ARM Limited (“ARM”) develops processor designs, which it licenses to third party chip-makers such as Qualcomm and Texas Instruments to build physical processor chips. Although ARM does not make or sell processors, ARM has a suite of processor designs that are used in many computing devices. Chip-makers select a suitable ARM processor design depending on the particular purpose for which the processor will be used. The chips incorporating ARM’s designs are utilized by consumer product manufacturers such as Western and Sling.
Initially, ARM processors could directly execute only two types of machine code, both of which are register-based instructions. They could also execute Java’s stack-based instructions using the method known in the prior art to the Nazomi patent — running a software-based JVM that would translate the Java bytecodes into ARM’s register-based machine code. In 2000, ARM developed a chip design that would accelerate the processing of Java bytecodes. The hardware component of the ARM design was called “Jazelle.” As with its other processor code designs, ARM licensed the ARM 926EJ-S processor core (“ARM core”) to various chip-makers. As with the other ARM processors, this ARM core is often selected by chip-makers for its flexibility; it can be incorporated into chips for different end uses, ranging from smartphones to refrigerators.
Because the ARM core design and the chips based on that core are intended to be used in a wide variety of products, they often contain optional functionality not utilized nor enabled by every manufacturer. The Jazelle hardware is one such optional feature. Both accused products, Western’s MyBook World Edition (“MyBook”) and Sling’s Slingbox Pro-HD (“Slingbox”), have CPUs containing an ARM core with Jazelle hardware. However, the Jazelle hardware on the accused devices cannot perform the functionality described in Na-zomi’s asserted claims without software known as Jazelle Technology Enabling Kit (“JTEK”). Consumer product manufacturers can license JTEK from ARM for a fee. Defendants Western and Sling did not license the JTEK software from ARM and have never installed the JTEK software to enable Jazelle on the accused devices.
In February 2010 Nazomi filed a complaint in the Central District of California against various technology companies, including Western and Sling, alleging infringement of the '362 patent and the '436 patent. In October 2010, the case was transferred to the Northern District of California. In July 2012 Western and Sling filed a motion for summary judgment contending that the claims should be construed to require that the device perform the claimed functions itself, and that the accused products did not infringe the as
The district court granted Western and Sling’s motion for summary judgment and found that the claimed apparatus must itself be capable of performing the claimed functions, and construed the asserted claims to require a hardware and software combination capable of processing both register-based and stack-based instructions. The court concluded that without the enabling JTEK software, Jazelle hardware cannot process stack-based instructions at all. Because Jazelle hardware alone could not process stack-based instructions, and the Western and Sling apparatuses do not include the necessary JTEK software, the district court found that the accused devices do not infringe. The district court then certified the judgment for appeal pursuant to Fed.R.Civ.P. 54(b). Nazomi appeals, and we have jurisdiction under 28 U.S.C. § 1295(a)(1).
Discussion
I. Claim Construction
The first step of the infringement analysis is claim construction, a question of law reviewed de novo. Cybor Corp. v. FAS Techs., Inc.,
The district court construed the claims as claiming an apparatus, comprising both hardware and software, capable of practicing the claimed functionality. The court rejected Nazomi’s construction requiring only hardware that was capable of performing the claimed functionalities. We agree. The face of the claims shows that each particular functionality is a claim limitation. For example, the italicized portions of claim 48 below recite specific claim functionalities that cannot be practiced in hardware alone and require enabling software:
48. A central processing unit (CPU) capable of executing a plurality of instruction sets comprising: an execution unit and associated register file, the execution unit to execute instructions of a plurality of instruction sets, including a stack-based and a register-based instruction set;
a mechanism to maintain at least some data for the plurality of instruction sets in the register file, including maintaining an operand stack for the stack-based instructions in the register file and an indication of a depth of the operand stack;
a stack control mechanism that includes at least one of an overflow and under*1344 flow mechanism, wherein at least some of the operands are moved between the register file and memory; and a mechanism to generate an exception in respect of selected stack-based instructions.
'862 patent col. 10 1. 57 to col. 11 1. 6 (emphases added). The claims recite a CPU that can perform particular functions, namely, the processing of both register-based and stack-based instructions. Since hardware cannot meet these limitations in the absence of enabling software, the claims are properly construed as claiming an apparatus comprising a combination of hardware and software capable of practicing the claim limitations. For example, claim 48 does not recite generic mechanisms, but requires specific functions of “(1) maintaining an operand stack for the stack-based instructions; (2) performing ‘stack control’ of ‘overflow/underflow’ by moving operands between the registers and memory; and (3) generating exceptions for certain stack-based instructions.” JA 3938; see also '362 patent col. 10 1. 57 to col. 11 1. 6. These limitations on the claimed CPU pertain specifically to the processing of stack-based instructions.
Further, the need for the specified functionality is confirmed by the '362 patent specification, which indicates that “the [Java] hardware accelerator can convert the stack-based Java bytecodes into ... register-based native instructions on a CPU.” '362 patent col. 2 11. 23-25. The specification also explains that “[t]he Java hardware accelerator can do[ ] some or all of the following tasks,” and lists functions involved in processing stack-based instructions, including “managing the Java stack on a register file” and “generating exceptions on instructions on predetermined by-tecodes,” mirroring the limitations in claims 48 and 74. '362 patent col. 3 11. 10-19; see, e.g., '362 patent col. 11 11. 5-6, col. 12 11. 33-37. Contrary to Nazomi, there is nothing unusual or improper in construing device claims to require particular functionality. See, e.g., Typhoon Touch Techs., Inc. v. Dell, Inc.,
The cases on which Nazomi relies do not support its position. For example, in Intel Corporation v. U.S. International Trade Commission, the claims only required “programmable selection means,” and the accused product infringed because it could be programmed to perform the infringing use.
Similarly, in Silicon Graphics, Inc. v. ATI Technologies, Inc., the claims contemplated use in an operating system environment and we overturned the district court’s ruling that the accused products did not infringe because they could not meet the claim limitations until combined with a computer operating system.
II. Infringement Analysis
The second step in an infringement analysis is determining whether the particular accused device infringes under the claim construction. Wright Med. Tech., Inc. v. Osteonics Corp.,
However, Nazomi points out that we have held that “an apparatus claim directed to a computer that is claimed in functional terms is nonetheless infringed so long as the product is designed in such a way as to enable the user of that [product] to utilize the function without having to modify the product.” Silicon Graphics,
For example, in Typhoon Touch Technologies, Inc. v. Dell, Inc., the asserted patent claimed “[a] portable, keyboardless, computer, comprising ... a memory for storing at least one data collection application.”
The “key” cases on which Nazomi relies are also to the contrary. In Finjan, Inc. v. Secure Computing Corp., the infringing software capable of practicing the claim limitations was on the accused devices and could be unlocked by purchasing a product key.
Finally, Nazomi argues that the District Court improperly required a showing of intent by the defendants as a predicate to an infringement finding. The district court did no such thing. Rather, it was distinguishing this court’s decision in High Tech Medical, which stated “if a device is designed to be altered or assembled before operation, the manufacturer may be held liable for infringement if the device, as altered or assembled, infringes a valid patent.”
AFFIRMED.
Costs
No costs.
Notes
. The remaining claims at issue mirror the elements of claim 48:
74. A central processing unit (CPU) comprising:
'426 patent col. 15 II. 26-50.
. Nazomi initially alleged infringement of claims 48, 74, and 86 of the '362 patent and claims 1 and 5 of the '436 patent. However, Nazomi withdrew its assertion of claim 86 before this appeal.
. Fantasy Sports is similar to Silicon Graphics. In Fantasy Sports, the asserted patent claimed "[a] computer for playing football,” and set forth a number of functionally defined means that must be included in the computer-executable software, such as "means for scoring ... bonus points.” Fantasy Sports,
Nazomi also relies on Revolution Eyewear, Inc. v. Aspex Eyewear, Inc. for the proposition that a claim can cover particular hardware standing alone.
. Western and Sling argue that the JTEK software could not be installed without hacking the accused devices and that such hacking (or modifying the system for an unintended use) would render the devices useless. We need not address this issue. Even if JTEK could be installed without hacking, the addition of the JTEK software would be still be a modification.
. Nazomi also argued that because the stack-based functionality is bypassed when legacy applications (i.e., register-based) are being processed, the claims contemplate an invention where the hardware required to process stack-based instructions is not enabled by the necessary software. We disagree. The claims are clear that the apparatus must, at all times, be capable of processing stack-based instruction sets in the hardware. This is not possible without the enabling software.
. Another case in which a necessary modification was required to infringe the claims was High Tech Medical Instrumentation v. New Image Industries,
.Although Nazomi asserted claims of indirect infringement under 35 U.S.C. § 271(b)-(c) in its complaint, it did not appeal the district court’s grant of summary judgment on those claims.
Concurrence Opinion
concurring.
I concur in the majority’s decision to affirm the district court’s decision granting summary judgment of noninfringement of the '362 patent. However, I join its opinion only up to and through the first paragraph of Part II, in which the holding of noninfringement is affirmed on the ground that the claim limitation “capable of executing a plurality of instruction sets ...” is not met by Jazelle hardware that is not functional without the JTEK software.
