DCT

1:22-cv-11092

MathWorks Inc v. Na

I. Executive Summary and Procedural Information

  • Parties & Counsel:
  • Case Identification: 1:22-cv-11092, D. Mass., 07/07/2022
  • Venue Allegations: Plaintiff The MathWorks alleges venue is proper in the District of Massachusetts because Defendant ZT IP is subject to personal jurisdiction there. The complaint argues that ZT IP's manager, Pueblo Nuevo LLC, has purposefully availed itself of the jurisdiction through prior patent litigation filed by other entities it manages, and that these contacts should be attributed to ZT IP under an "alter ego" theory.
  • Core Dispute: Plaintiff seeks a declaratory judgment that its software products do not infringe two expired patents owned by Defendant related to tools for developing real-time task management software.
  • Technical Context: The technology concerns software development tools that automate the creation of code for real-time and embedded systems, which manage multiple time-critical tasks in devices ranging from industrial controllers to consumer electronics.
  • Key Procedural History: This action follows a lawsuit filed by ZT IP against The MathWorks in the Western District of Texas two months prior. The MathWorks characterizes that filing as the "Wrongly-Venued ZT IP Litigation" and indicates its intent to move for dismissal on venue grounds. The patents-in-suit are expired, limiting any potential remedy to monetary damages for past infringement.

Case Timeline

Date Event
1999-05-10 Priority Date for ’947 and ’488 Patents
2005-08-23 ’947 Patent Issued
2011-02-01 ’488 Patent Issued
2019-05-10 ’947 and ’488 Patents Expired
2022-02-28 Defendant ZT IP, LLC Registered
2022-03-24 Patents-in-Suit Assigned to ZT IP
2022-04-29 ZT IP Files Infringement Suit Against MathWorks in W.D. Tex.
2022-07-07 MathWorks Files This Declaratory Judgment Complaint

II. Technology and Patent(s)-in-Suit Analysis

U.S. Patent No. 6,934,947 - Visual Tool for Developing Real Time Task Management Code, Issued August 23, 2005

The Invention Explained

  • Problem Addressed: The patent describes a trade-off in developing real-time systems. Programmers could use a commercial Real-Time Operating System (RTOS) kernel, which is powerful but can be complex, bulky, and less predictable, or a hand-crafted "polling loop," which is simpler and more efficient but requires significant manual effort and introduces risks like deadlocks. (’947 Patent, col. 1:10-63).
  • The Patented Solution: The invention proposes a "virtual" RTOS, a software tool that automates the creation of a polling loop. It provides a graphical user interface for a programmer to define tasks and their properties (like priority), and then synthesizes the necessary source code to manage those tasks in a polling loop structure, aiming to combine the simplicity of a polling loop with the safety (e.g., deadlock prevention) of an RTOS. (’947 Patent, Abstract; col. 2:1-9).
  • Technical Importance: This approach sought to simplify and accelerate the development of reliable real-time systems by abstracting away the low-level complexities of task scheduling and synchronization. (’947 Patent, col. 2:1-9).

Key Claims at a Glance

  • The complaint asserts non-infringement of at least independent Claim 1. (Compl. ¶56).
  • Claim 1 (Method) Elements:
    • Providing commands to be used in the source codes of a plurality of real time tasks, designed to provide synchronization.
    • Assigning a priority to each of the real time tasks.
    • Synthesizing source code for a polling loop that manages the tasks according to their assigned priority.
    • Synthesizing source code for the commands used in the real time tasks.
    • Converting the synthesized source code for the polling loop and commands for execution by a computer.

U.S. Patent No. 7,882,488 - Software Tool for Synthesizing a Real-Time Operating System, Issued February 1, 2011

The Invention Explained

  • Problem Addressed: Similar to its parent patent, the ’488 Patent addresses the challenges of developing software for real-time embedded systems, specifically the trade-offs between using a commercial RTOS and a custom-built polling loop. (’488 Patent, col. 1:16-63).
  • The Patented Solution: The invention describes a tool for automatically generating a "synthesized" RTOS. It allows a user to define different types of tasks (e.g., initialization tasks, loop tasks) and then synthesizes the task management source code, including a polling loop, to schedule and execute these tasks while preventing deadlocks. (’488 Patent, Abstract; col. 2:1-20). The specification details specific task types such as "INIT tasks" that run once and a "task scheduler" to manage their execution. (’488 Patent, col. 9:25-30).
  • Technical Importance: The tool aimed to provide the performance benefits of a custom polling loop while offering the structured development and safety features typically associated with a full RTOS kernel. (’488 Patent, col. 2:4-16).

Key Claims at a Glance

  • The complaint asserts non-infringement of at least independent Claim 1. (Compl. ¶61).
  • Claim 1 (Method) Elements:
    • Specifying a set of "n" tasks to be scheduled for execution.
    • Specifying "t" init-tasks that are executed only once upon initial execution of a task scheduler.
    • Using a data processor to synthesize source code from commands embedded in source code to implement the task scheduler for controlling execution of the "n" tasks and one execution of the "t" init-tasks.
    • Synthesizing source code from commands embedded in source code to control execution of the "t" init-tasks, which includes generating new source code based on the embedded commands.

III. The Accused Instrumentality

Product Identification

The complaint identifies The MathWorks's "MATLAB Coder, Simulink Coder, and Embedder Coder" products. (Compl. ¶4).

Functionality and Market Context

These products are described as software tools specializing in mathematical modeling and scientific computing. (Compl. ¶4). Their accused functionality is the ability to "generate executable code to run on separate and deployed computing devices." (Compl. ¶4). The complaint positions The MathWorks as having played an important role in the design and development of mathematical computing software for over 35 years. (Compl. ¶5).

IV. Analysis of Infringement Allegations

No probative visual evidence provided in complaint.

’947 Patent Infringement Allegations

The complaint seeks a declaratory judgment of non-infringement of Claim 1, asserting that The MathWorks's products do not perform the claimed method steps. (Compl. ¶56).

Claim Element (from Independent Claim 1) Alleged Infringing Functionality Complaint Citation Patent Citation
providing commands to be used in the source codes of a plurality of real time tasks, said commands being designed to provide synchronization... MathWorks asserts its products do not perform this step. ¶56 col. 5:26-31
assigning a priority to each of said real time tasks MathWorks asserts its products do not perform this step. ¶56 col. 5:32-33
synthesizing source code for a polling loop, that manages said plurality of real time tasks in accordance with said assigned priority... MathWorks asserts its products do not perform this step. ¶56 col. 5:34-37
synthesizing source code for said commands used in said plurality of real time tasks MathWorks asserts its products do not perform this step. ¶56 col. 5:38-40
converting, for execution by a computer, said synthesized source code for said polling loop and said synthesized source code for said commands MathWorks asserts its products do not perform this step. ¶56 col. 5:41-45

’488 Patent Infringement Allegations

The complaint seeks a declaratory judgment of non-infringement of Claim 1, asserting that The MathWorks's products do not perform the claimed method steps. (Compl. ¶61).

Claim Element (from Independent Claim 1) Alleged Infringing Functionality Complaint Citation Patent Citation
specifying a set of n tasks, task(1) through task(n), to be scheduled for execution MathWorks asserts its products do not perform this step. ¶61 col. 9:22-24
specifying t init-tasks that are executed only once upon initial execution of a task scheduler, t being less than or equal to n MathWorks asserts its products do not perform this step. ¶61 col. 9:25-28
using a data processor to synthesize source code from commands embedded in source code to implement the task scheduler for controlling execution of said set of n tasks, the task scheduler further controlling one execution of each of said set of t init-tasks... MathWorks asserts its products do not perform this step. ¶61 col. 9:29-37
synthesizing source code from commands embedded in source code to control execution of said set of t init-tasks, wherein synthesizing source code from commands embedded in source code includes generating new source code based on the commands embedded in source code MathWorks asserts its products do not perform this step. ¶61 col. 9:38-44
  • Identified Points of Contention:
    • Technical Questions: A central question will be whether the general-purpose code generation performed by MATLAB/Simulink Coder constitutes "synthesizing source code for a polling loop" as described in the ’947 Patent, or implementing a "task scheduler" from "commands embedded in source code" as claimed in the ’488 Patent. The dispute may focus on whether MathWorks's tools perform the specific, low-level synthesis and scheduling functions detailed in the patents, or operate at a higher level of abstraction that is technically distinct.
    • Scope Questions: The case will raise the question of whether the claim term "polling loop" can be construed to cover any form of cyclic code execution generated by a software tool, or if it is limited to the specific structures shown in the patent's embodiments, such as the sequential flag-checking logic. (’947 Patent, Fig. 6(b)). Similarly, the scope of "synthesizing source code" will be at issue: does it read on any form of code generation, or is it limited to the patent's specific teaching of replacing placeholder commands (e.g., "VIRTOS_call") with executable code? (’947 Patent, col. 4:46-59).

V. Key Claim Terms for Construction

For the ’947 Patent:

  • The Term: "polling loop"
  • Context and Importance: This term is the central structure of the claimed invention. ZT IP's infringement case may depend on this term being construed broadly enough to read on the executable code generated by MathWorks's products. Practitioners may focus on whether the sophisticated outputs of modern code generators can be considered equivalent to the specific, relatively simple polling loop structures disclosed in the patent.
  • Intrinsic Evidence for Interpretation:
    • Evidence for a Broader Interpretation: The specification describes a polling loop generally as a "task management scheme" that is an "alternative" to a commercial RTOS kernel, suggesting it could encompass various cyclic executive implementations. (’947 Patent, col. 1:41-44).
    • Evidence for a Narrower Interpretation: The patent provides a specific example of the synthesized polling loop code in assembly language, which involves sequentially checking a series of task state flags and branching accordingly. (’947 Patent, col. 5:1-24; Fig. 6(b)). This embodiment may support a narrower construction limited to such explicit, flag-based sequential task management.

For the ’488 Patent:

  • The Term: "synthesize source code from commands embedded in source code to implement the task scheduler"
  • Context and Importance: This limitation defines the core process of the invention. The infringement analysis will likely turn on whether the operation of the accused Coder products matches this specific definition of synthesis. MathWorks will likely argue its products are general-purpose compilers or translators, not tools that "synthesize" a "task scheduler" from "embedded commands" in the manner claimed.
  • Intrinsic Evidence for Interpretation:
    • Evidence for a Broader Interpretation: The summary of the invention describes the tool more generally as "automating the process of creating task management source code," which could support a construction covering a wide range of code generation techniques that result in a schedulable system. (’488 Patent, col. 2:1-3).
    • Evidence for a Narrower Interpretation: The detailed description of the ’947 patent, incorporated by reference, shows a specific implementation where "VIRTOS" commands in user code are replaced by the synthesizer with actual executable code. (’947 Patent, col. 4:52-59). This suggests the "commands embedded in source code" are specific placeholders, and "synthesis" is the process of replacing them, potentially narrowing the claim scope to exclude general-purpose compilers.

VI. Other Allegations

  • Indirect Infringement: The complaint states that MathWorks has not infringed "directly or indirectly" any claim of the patents-in-suit. (Compl. ¶¶ 54, 59). It does not provide further factual detail regarding the basis of any indirect infringement allegations made by ZT IP in the related Texas litigation.
  • Willful Infringement: The complaint does not address the basis for any willfulness allegations made by ZT IP. As this is a declaratory judgment action filed by the accused infringer, it focuses on denying liability rather than asserting claims against the patentee.

VII. Analyst’s Conclusion: Key Questions for the Case

  • A core issue will be one of definitional scope: can the term "polling loop," which the patents describe as a specific, flag-based cyclic task management structure, be construed to cover the potentially more complex and varied executable outputs generated by The MathWorks's sophisticated modeling and code generation tools?
  • A key evidentiary question will be one of technical operation: does the process by which MATLAB and Simulink Coder generate executable code meet the specific claim limitation of "synthesizing source code from commands embedded in source code"? The case may turn on whether the accused products function as general-purpose code compilers or as specialized synthesizers that replace specific, predefined commands as taught in the patents.
  • The final outcome may depend on a functional comparison: do the accused products, which are high-level tools for mathematical modeling, ultimately generate code that creates the specific kind of "task scheduler" for managing "init-tasks" and other low-level real-time operations as envisioned and claimed by the patents, or is there a fundamental mismatch in their purpose and functionality?