2014年3月18日 星期二

軟硬體結合產生的功能專利主張權利失利(Nazomi Comms. v. Nokia Corp.)

權利範圍如果無法用結構描述來界定,那就用功能描述來界定,特別是軟體方法案。此案例涉及軟體方法、軟硬體搭配與硬體等權利架構。(CAFC案例Nazomi Comms. v. Nokia Corp.)

此案例提到關於專利範圍的議題是,如果專利範圍界定出一個執行特定功能的硬體,被告產品侵權要成立,除非是該產品要執行這些功能,這需要軟硬體搭配,而不是僅涉及被告硬體而已。

Nokia對各手機廠提告的時候,Nokia本身也是別人的告訴對象,比如這件由地院上訴CAFC的案例:Nazomi Comms. v. Nokia Corp.,不過這件訴訟被告還包括了Amazon、Western Digital、Sling Media與Vizio等。

Nazomi通訊公司是一個無晶圓廠的多媒體應用晶片DESIGN HOUSE,提供手持裝置多媒體處理的方案,訴訟中,對Nokia等公司提出侵權告訴,宣稱Nokia等公司,包括手持裝置、電視等多媒體產品侵害US7,225,436US7,080,362兩件專利。相關的被告產品比如是常見於手持裝置上的ARM架構的處理器

在討論侵權議題前,法官們要先搞懂JAVA語言的特性,因此判決書花了一點篇幅討論JAVA語言的特性,包括這是一個跨平台的程式語言,一套程式只要編譯一次,之後可以在裝載有虛擬機器(VM)的作業平台上運作,而不是直接執行在特定作業平台的CPU上...。

Nazomi的兩件專利就是基於JVM的一種指令處理技術。

US7,225,436揭露一種利用微碼引擎的JAVA語言加速器,JAVA硬體加速器包括有解碼與微碼(microcode)兩個程序模組,將JAVA語言分別為解碼與微碼兩個程序時,可以讓兩個程序同時執行,因此達到此發明加速處理JAVA語言的目的。

涉及的專利範圍不多,就兩項Claims 1, 5,都是主張一個處理器,主要特徵用黑體字標示出來。為了迴避僅是程式語言等抽象概念等不符可專利標的(35USC101)的問題,專利範圍確實在連結到硬體做了一些功夫,這點我們可以學習。

1. A CPU for executing stack and register-based instructions, comprising:
execute logic for executing the register-based instructions;
a register file associated with the executed logic; and
a hardware accelerator to process stack-based instructions in cooperation with the execute logic, wherein the hardware accelerator generates a new virtual machine program counter (PC) due to a “jump subroutine JSR” or “jump subroutine wide JSR_W” bytecode by sign extending the immediate branch offset following the “jump subrountine JSR” or “jump subroutine wide JSR_W” byte code and adding it to the virtual machine (PC) of the current byte code instruction, computes the return virtual machine program counter and pushes the return virtual machine program counter.

5. A central processing unit (CPU) comprising:
execute logic to receive and process input corresponding to register-based instruction;
a hardware accelerator to process stack-based instructions to produce an output that can be processed by the execute logic;
an operand stack for the stack-based instructions, the operand stack being maintained in a register file as a ring buffer;
an overflow/underflow mechanism for moving operands in the operand stack between a register file and a memory, said register file also storing data associated with the register-based instructions;
a bytecode buffer that receives stack-based instructions from the memory; and
an instruction decode unit coupled to the bytecode buffer to decode instructions received from the bytecode buffer and to provide an indication of how many bytes have been processed; and
a common program counter for the stack-based instructions and the register-based instructions, wherein the common program counter is incremented by the indication of the number of bytes processed. 

US7,080,362則是揭露在複雜指令集、簡單指令集等處理器上跑的JAVA虛擬機器,涉及的專利範圍為Claims 48, 74:
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.

初步看來,即便在連結硬體上做了不少描述,但是實質是個軟體程式手段卻是遮掩不了的,其中的模糊地帶就是相關訴訟頗為有趣的地方。否則專利系統將可能僅在機構與電路上實現,應該是少了很大一塊!

地院階段:
地院法官並未討論本案的專利性,而是認為侵權產品缺少部份權利範圍所界定出的動作,也就是硬體所執行的動作在特定硬體是看不到的,比如上述請求項中底線部份,認為侵權不成立。專利權人Nazomi接著上訴。

CAFC階段:
由於權利範圍中僅界定出CPU可以執行的動作(典型的功能性語言),CAFC法官根據operating-software-mandatory construction原則重新解釋專利範圍,認為權利範圍界定的發明是軟體與硬體的結合,也就是,如果被告侵權產品(一個CPU)侵權不成立,如果要被認定侵權成立,除非CPU執行了專利範圍所描述的功能一個軟硬體結合的權利主張(甚至又涉及作業系統)對侵權判斷是不利的
另外,要求要在說明書支持的情況下界定出程式是如何辦到上述CPU功能,如果是CPU本來就可以辦到的,顯然侵權成立的可能大增,不過專利技術涉及JAVA的虛擬機器,通常這是外掛的程式,在CPU等硬體之外,有額外的程式需求,而不是僅如描述一般為該CPU可以辦到而已
In contrast, Nazomi has not claimed an apparatus with hardware "programmable" to process stack-based instructions, it has claimed a combination of hardware and software capable of performing that function.

因此解釋專利範圍時,是確認專利範圍是包括了軟硬體結合所產生的功能(除非專利權人證明這是CPU原本可以辦到的功能(capable of))。
Here, in contrast, the claims do not cover hardware that contemplates an environment where it could be combined with software, but rather require a hardware-software combination that must perform the described functions. We (the CAFC) affirm the district court’s claim construction.

因為功能描述限縮了專利範圍所稱的硬體特徵,CAFC判斷侵權不成立。

後語(重要)
其實,在CAFC判決原文中,CAFC法官教導我們如何寫作一個侵權會成立的相關專利範圍,並引用案例Intel Corporation v. U.S. International Trade Commission作為例子,這件案例侵權成立的原因是,權利範圍界定出一個硬體中的可程式化選擇手段(programmable selection means),被告侵權成立是因為該產品可以達到請求項所界定的用途。

CAFC判決:
http://www.cafc.uscourts.gov/images/stories/opinions-orders/13-1165.Opinion.1-8-2014.1.PDF

Ron
資料參考:Ryan Alley

沒有留言: