Nazomi Communications, Inc. v. ARM Holdings, PLC

NOTE: This disposition is nonprecedential. United States Court of Appeals for the Federal Circuit 2007-1190 NAZOMI COMMUNICATIONS, INC., Plaintiff-Appellant, v. ARM HOLDINGS, PLC, ARM LIMITED, and ARM, INC., Defendants-Appellees. Thomas J. Friel, Jr., Cooley Godward Kronish LLP, of San Francisco, California, argued for plaintiff-appellant. With him on the brief were Lori R.E. Ploeger, Timothy S. Teter, and Jeffrey S. Karr, of Palo Alto, California. Andrew Y. Piatnicia, Howrey LLP, of East Palo Alto, California, argued for defendants-appellees. With him on the brief were Robert P. Taylor, of East Palo Alto, California, and Ethan B. Andelman, of San Francisco, California. Appealed from: United States District Court for the Northern District of California Judge Jeremy Fogel NOTE: This disposition is nonprecedential. United States Court of Appeals for the Federal Circuit 2007-1190 NAZOMI COMMUNICATIONS, INC., Plaintiff-Appellant, v. ARM HOLDINGS, PLC, ARM LIMITED, and ARM, INC., Defendants-Appellees. Appeal from the United States District Court for the Northern District of California in case no. 02-CV-2521, Judge Jeremy Fogel. _________________________ DECIDED: February 21, 2008 _________________________ Before RADER, SCHALL, and PROST, Circuit Judges. SCHALL, Circuit Judge. DECISION Nazomi Communications, Inc. (“Nazomi”) appeals the January 30, 2007 decision of the United States District Court for the Northern District of California granting summary judgment of non-infringement in favor of ARM Holdings, PLC, ARM Limited, and ARM, Inc. (collectively “ARM”) in Nazomi’s suit against ARM for infringement of U.S. Patent No. 6,332,215 (the “‘215 patent”). Nazomi Commc’ns, Inc. v. ARM Holdings, PLC, No. C02-2521JF (N.D. Cal. Jan. 30, 2007) (“Summary Judgment Decision”). On September 6, 2006, the district court issued an order construing the single claim term “instructions.” Nazomi Commc’ns, Inc. v. ARM Holdings, PLC, No. C02- 2521JF (N.D. Cal. Sept. 6, 2006) (“Claim Construction Order”). Based on that construction, Nazomi conceded that ARM’s products do not infringe the ’215 patent, and the district court granted ARM’s motion for summary judgment of non-infringement. Summary Judgment Decision. Because we see no error in the district court’s claim construction, we affirm. DISCUSSION I. The invention claimed in the ’215 patent is a hardware accelerator that converts stack-based Java bytecode instructions into register-based “native” instructions that are executable by a register-based central processing unit (CPU). E.g., ’215 patent col.2 ll.1–10. The hardware accelerator of the claimed invention is said to significantly speed up the processing of Java bytecodes over prior art systems that used software to perform the conversion from stack-based instructions to register-based instructions. Id. col.2 ll.6–10. Claim 1 is representative of the claims of the ’215 patent: A system comprising: a central processing unit having a register file, the central processing unit adapted to execute register-based instructions; and a hardware unit associated with the central processing unit, the hardware unit adapted to convert stack-based instructions into register-based instructions, wherein a portion of the operand stack is stored in the register file of the central processing unit and wherein the hardware unit is adapted to produce at least one of overflow or underflow indications for the portion of the operand stack stored in the register file, wherein the 2007-1190 2 hardware unit is adapted to swap parts of the operand stack in and out of the register file from a memory, the system including an indication of the depth of the portion of operand stack, wherein a overflow or underflow produces an operand transfer between the register file in the central processing unit and memory. (emphases added). The district court construed the term “instructions” as “either a stack-based instruction that is to be translated into a register-based instruction, or a register-based instructions [sic] that is input to the CPU pipeline.” Claim Construction Order at 11. In either case, the court found that the instruction “must be upstream of the decode stage of the CPU pipeline” and “cannot mean the control signals that are the output of the decode stage.” Id. Based on the district court’s construction of the term “instructions,” ARM moved for summary judgment that its “Jazelle” Revision 3 (and higher) processors do not infringe the ’215 patent. ARM argued that summary judgment of non-infringement was proper because it was undisputed that ARM’s processors do not translate stack-based instructions into register-based instructions upstream of the decode stage. Rather, ARM’s processors merely convert stack-based instructions into “control signals” and, thus, under the district court’s claim construction do not meet the limitation present in every claim of the ’215 patent requiring a conversion of “stack-based instructions into register-based instructions.” Responding, Nazomi conceded that ARM’s “Jazelle” Revision 3 (and higher) processors do not infringe the ’215 patent under the district court’s claim construction, either literally or under the doctrine of equivalents. Accordingly, the district court granted ARM’s motion for summary judgment of non-infringement. Summary Judgment Decision. We have jurisdiction over Nazomi’s appeal pursuant to 28 U.S.C. § 1295(a)(1). 2007-1190 3 II. On appeal, Nazomi argues that the district court erred in construing the term “instructions” to exclude the “control signals” that are the output of the CPU’s decode stage. First, Nazomi argues that the claims themselves are broad, and do not require the instruction translation to be performed at any particular location in relation to the CPU. Rather, Nazomi points out, the patent describes and claims both a co-processor embodiment, wherein the “hardware unit” is located outside of the CPU, ’215 patent claim 3, and an integrated microprocessor embodiment, wherein the “hardware unit” is located within the CPU, id. claim 2. With respect to the integrated microprocessor embodiment, Nazomi contends that the plain language of the claims is broad enough to encompass a system that translates instructions not only prior to the decode stage of the CPU’s pipeline but also as part of the decode stage. Indeed, Nazomi argues that dependent claims 30 and 32 specifically contemplate the existence of “instructions” after the decode stage of the CPU’s pipeline. Referring to the integrated microprocessor embodiment, claim 30 recites “[t]he system of claim 2, wherein the central processing unit includes an execution unit to execute the register- based instructions.” According to Nazomi, the execution unit would never “execute” register-based “instructions” as required by claim 30 if—as the district court found— “instructions” do not exist at the execution stage of the CPU’s pipeline. Nazomi makes essentially the same argument with regard to claim 32, which recites “[t]he system of claim 1, wherein register-based instructions cause the manipulation of the register file.” Referring to figure 3 of the patent, Nazomi notes that the register file element (46) is connected to the CPU’s “execute logic” stage (26c), which is located downstream of the 2007-1190 4 “instruction decode” stage (26b) of the CPU’s pipeline. Nazomi contends that, under the district court’s construction, register-based instructions would therefore never “cause” manipulation of the register file as required by claim 32. For these reasons, Nazomi argues that the language of claims 30 and 32 requires a claim construction that accommodates the existence of “instructions” after the decode stage of the CPU’s pipeline. According to Nazomi, the district court erred by failing to account for the inconsistencies between its construction of the term “instructions” and the language of claims 30 and 32, and by instead simply attributing the inconsistencies to imprecise claim drafting. In addition, Nazomi contends that the written description of the ’215 patent contradicts the district court’s claim construction. For example, the patent states that “[t]he execute logic 26c executes the native instructions.” Id. col.5 ll.14–15. Also, discussing the integrated microprocessor embodiment, the patent states that “the central processing unit has a Java hardware accelerator subunit to translate Java bytecode into the native instructions operated on by the main portion of the CPU.” Id. col.3 ll.35–41 (emphasis added). Nazomi argues that a person of ordinary skill in the art would understand “main portion of the CPU” to refer to the CPU’s execute stage, and that the patent thus instructs that the CPU’s execute logic “operates on” native instructions. According to Nazomi, these provisions of the written description— consistent with the language of claims 30 and 32—demonstrate that “instructions” may exist after the CPU’s decode stage. Nazomi further contends that the district court’s construction improperly limits the claims to the preferred embodiment, shown in figure 3 of the patent, wherein the 2007-1190 5 translation of instructions by the hardware unit is performed prior to the CPU’s decode stage. For the reasons discussed above, Nazomi argues that the patent also discloses and claims other embodiments of the invention, wherein the hardware unit is positioned differently vis-à-vis the CPU’s decode stage. However, even if figure 3 represented the only embodiment disclosed in the specification, Nazomi argues, it would be improper to limit otherwise broad claim language to that single embodiment. 1 Finally, Nazomi asserts that the district court’s construction conflicts with the doctrine of claim differentiation (i.e., that claim 30 is presumed to have different scope than claim 1 from which it depends), and departs from broader uses of the term “instructions” in certain prior art patents cited by the examiner during prosecution and technical treatises. III. Claim construction is a question of law that we review de novo. Cybor Corp. v. FAS Techs., Inc., 138 F.3d 1448, 1454 (Fed. Cir. 1998) (en banc). In determining the meaning of a disputed claim limitation, we look primarily to the intrinsic evidence of record, including the claim language, written description, and prosecution history. Phillips v. AWH Corp., 415 F.3d 1303, 1312 (Fed. Cir. 2005) (en banc). Words of a claim “are generally given their ordinary and customary meaning” as understood by a person of ordinary skill in the art. Id. at 1312–13. Claims are read in view of the 1 In support of this argument, Nazomi cites Liebel-Flarsheim Co. v. Medrad, Inc., 358 F.3d 898, 906 (Fed. Cir. 2004) (“[T]his court has expressly rejected the contention that if a patent describes only a single embodiment, the claims of the patent must be construed as being limited to that embodiment. . . . Even when the specification describes only a single embodiment, the claims of the patent will not be read restrictively unless the patentee has demonstrated a clear intention to limit the claim scope using ‘words or expressions of manifest exclusion or restriction.’” (internal citations omitted)). 2007-1190 6 specification, which is the “single best guide to the meaning of a disputed term.” Id. at 1315. A court “should also consider the patent's prosecution history, if it is in evidence.” Id. at 1317. Finally, although it is generally less significant than the intrinsic record, extrinsic evidence can “shed useful light on the relevant art.” Id. Applying this framework, we conclude that the district court properly construed the term “instructions.” We first note the specific context in which the disputed term “instructions” is used in claim 1. Claim 1 of the ’215 patent requires a hardware unit “adapted to convert stack-based instructions into register-based instructions.” The parties dispute whether the group of signals that forms the output of the CPU’s decode stage (and, correspondingly, the input of the CPU’s execute stage) may be deemed “instructions.” We think that it is more appropriate for purposes of this appeal, however, to focus on the somewhat narrower question of whether those signals constitute “register-based instructions.” The modifier “register-based” appears in the patent’s written description only three times. Each time, it is used in conjunction with the term “native” to describe a specific type of instruction. For example, in the Summary of the Invention, the patent states: The hardware Java accelerator can convert the stack-based Java bytecodes into a [sic] register-based native instructions on a CPU. The hardware accelerators of the present invention are not limited for use with Java language and can be used with any stack-based language that is to be converted to register-based native instructions. Also, the present invention can be used with any language that uses instructions, such as bytecodes, which run on a virtual machine. ’215 patent col.2 ll.19–27 (emphases added). The patent generally provides for the conversion of stack-based instructions (e.g., Java bytecodes) into register-based native instructions. In most instances, the written description refers to the conversion of stack- based instructions into native instructions. See, e.g., id. col.2 ll.3–6 (“The present 2007-1190 7 invention generally relates to a Java hardware accelerator which can be used to quickly translate Java bytecodes into native instructions for a central processing unit . . . .”), col.3 ll.6–11 (“The Java hardware accelerator can do, some or all of the following tasks: . . . translating bytecodes to native instructions . . . .”). The claims only describe the conversion of stack-based-instructions into register-based instructions. Ultimately, both terms (“native instructions” in the written description and “register-based instructions” in the claims) are used as shorthand to describe the same instructions—i.e., register- based instructions that are native to a particular register-based processor. Compare id. claim 30 (claiming the inclusion of “an execution unit to execute the register-based instructions” (emphasis added)), with id. col.5 ll.14–17 (stating that “[t]he execute logic 26c executes the native instructions” (emphasis added)). Continuing, we find the context in which the term “native instructions” is used in the written description particularly informative. In the Background of the Invention section, the patent states that “[i]n conventional programming languages, the source code of a program is sent to a compiler which translates the program into machine code or processor instructions. The processor instructions are native to the system’s processor.” Id. col.1 ll.13–17 (emphasis added). Referring to prior art systems that used software to translate instructions, the patent states: “To execute a Java program, a [software] bytecode interpreter takes the Java bytecode[s and] converts them to equivalent native processor instructions . . . .” Id. col.1 ll.28–30 (emphasis added); see also id. col.2 ll.6–10 (“The hardware accelerator [of the present invention] speeds up the processing of the Java bytecodes significantly because it removes the bottleneck which previously occurred when the Java Virtual Machine is run in software on the CPU to 2007-1190 8 translate Java bytecodes into native instructions.” (emphasis added)). Moreover, when describing figures 5 and 6 of the patent, the written description states that “[t]he Java translating machine translates the Java bytecode into a native instruction such as the instruction ADD R1, R2. This is an instruction native to the CPU indicating the adding of value in register R1 to the value in register R2 and the storing of this result in register R2.” Id. col.5 ll.55–60 (emphases added). Thus, in all cases, the ’215 patent clearly and consistently uses the term “native instructions” to refer to instructions on the machine (or assembly) code level of abstraction—i.e., instructions of the type created by a native-language compiler, stored in memory, fetched upon execution, and input to the CPU’s decode stage. In contrast, the patent never describes the group of signals at the output of the CPU’s decode stage as “instructions” of any type. Indeed, the prosecution history expressly contradicts the notion that the inventor intended the term “native instructions” to encompass those signals. In distinguishing over a specialized Java processor cited as prior art by the examiner, the inventor stated: [T]he first approach of Krall uses a specialized Java processor, such as the PicoJava microprocessor developed by Sun, which does not require any such hardware subunit. Specialized Java processors do not translate Java bytecodes into instructions native to a processor. For specialized Java processors, the Java bytecodes are the native instructions, and no translation is required. Nazomi does not dispute that Sun’s picoJava processors do, in fact, decode Java bytecodes into lower-level signals. 2 Thus, the statement that specialized Java 2 Nazomi’s expert admitted in a deposition that Sun’s picoJava processors decode Java bytecodes into lower-level signals (which he referred to as “low-level instructions”). Nazomi apparently does not dispute this characterization of the picoJava processors. 2007-1190 9 processors “do not translate Java bytecodes into instructions native to a processor” demonstrates that the inventor did not use the term “native instructions” to encompass the low-level signals at the output of the processor’s decode stage. In sum, the specification and prosecution history clearly indicate that the terms “native instructions” and “register-based instructions” refer only to processor instructions prior to decoding, and do not encompass the low-level signals generated at the output of the processor’s decode stage. Moreover, those terms do not merely refer to a preferred embodiment of the invention, as they are consistently used in describing the prior art, background of the invention, and invention itself. Contrary to Nazomi’s arguments, we do not think that this interpretation of “instructions” is inconsistent with the patent’s claims and written description. Like the district court, we conclude that the words “execute,” id. claim 30, col.5 ll.14–15, and “cause,” id. claim 32, refer only to indirect causation. The patent uses the term “execute” in an indirect manner elsewhere in describing the prior art conversion of Java bytecodes using software: “To execute a Java program, a bytecode interpreter takes the Java bytecode converts them to equivalent native processor instructions and executes the Java program.” Id. col.1 ll.28–32 (emphasis added). The bytecode interpreter is a software component and, as such, does not directly execute Java programs; rather, it indirectly causes the execution of Java programs. Nor does the patent’s teaching that “native instructions [are] operated on by the main portion of the CPU” compel a different result. Id. col.3 ll.35–41. Nazomi has provided no support for its assertion that one of ordinary skill in the art would understand “main portion of the CPU” to refer in particular to the CPU’s execute stage. 2007-1190 10 Rather, the expert declaration to which Nazomi cites merely states that “[o]ne skilled in the computer art would understand ‘main portion of the CPU’ to include an Execute Logic . . . .” (emphasis added). The patent uses the phrase “main portion of the CPU” when explaining that the hardware accelerator can be incorporated into the CPU as a subunit. Id. col.3 ll.35–41. Understood in that context, we think that “main portion of the CPU” most likely refers to the components of the integrated CPU other than the hardware accelerator. In any event, it does not necessarily establish, as Nazomi argues, that “native instructions” exist at the execution stage of the CPU’s pipeline. Nazomi’s argument with respect to the doctrine of claim differentiation is also inapposite. Dependent claim 30 adds the requirement that the CPU include “an execution unit to execute the register-based instructions” (emphases added). Nazomi contends that “[t]he only difference between claim 30 and the integrated microprocessor embodiment of claim 1 is that claim 30 limits its scope to the execution of register-based instructions by an execution unit, which occurs after the decode stage.” However, even if we agreed with Nazomi’s interpretations of “execute” (as referring to direct execution) and “instructions” (as encompassing the low-level signals output from the CPU’s decode stage), this argument would still lack merit. Nazomi apparently is arguing that the scope of claim 30 is limited to an embodiment wherein instructions are translated as part of the decode stage, whereas claim 1 also encompasses the embodiment wherein instructions are translated prior to the decode stage. Under the construction advanced by Nazomi, however, “register-based instructions” would exist at the execution stage of the CPU’s pipeline in both embodiments, and, accordingly, claim 30 would embrace both embodiments. The doctrine of claim differentiation thus does not motivate us to prefer a 2007-1190 11 construction of “register-based instructions” that encompasses instruction translation as part of the CPU’s decode stage. Finally, given the clear, specific meaning attributed to “native instructions” and “register-based instructions” in the ’215 patent, we do not find it particularly helpful to consult the technical treatises and prior art patents on which Nazomi relies. At best, those references establish that some in the art refer generally to the group of signals generated by the CPU’s decode stage as a type of “instructions” (e.g., “low-level instructions” or “microinstructions”). As discussed above, however, we conclude that one of ordinary skill in the art, reading the claims of the ’215 patent in light of the written description and prosecution history, would attribute a meaning to the claim term “register-based instructions” that does not encompass those signals. For the foregoing reasons, see no error in the district court’s construction of the term “instructions.” Because Nazomi has conceded that ARM’s products do not infringe under that construction, we affirm the district court’s grant of summary judgment of non- infringement in favor of ARM. 2007-1190 12