Court Opinion

ID: 210059
Source: CourtListenerOpinion
Date Created: 2011-03-13 08:03:11+00
Date Added: 2024-06-11T17:27:59.570150
License: Public Domain

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