When hardware is claimed in terms of functional limitations, and the 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.”
Background / Facts: The patents asserted here are directed to a hardware-based Java Virtual Machine (JVM) capable of processing stack-based instructions for Java programs, while retaining the ability to run legacy (i.e., register-based) applications without utilizing the JVM. This allows Java programs to run directly on a device’s hardware without translation, which accelerates execution of Java bytecodes as compared to the typical software-based JVM. In this regard, the claims recite CPU hardware provided for the 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.” The accused devices include processors that have the hardware for performing similar functions, but not the associated software for implementing those functions (which was not desired and therefore not licensed from the chip manufacturer).
Issue(s): Whether the asserted claims require a hardware and software combination capable of processing both register-based and stack-based instructions, rather than hardware alone.
Holding(s): Yes. “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. … [T]he need for the specified functionality is confirmed by the … patent specification, which indicates that ‘the [Java] hardware accelerator can convert the stack-based Java bytecodes into … register-based native instructions on a CPU.’” Thus, while it is true that the similar hardware is physically present as part of the accused devices, it is undisputed that the accused hardware is not functional without accompanying software, and therefore the accused device does not by itself infringe without substantial modification (i.e., the purchase and installation of the necessary software).