The European Patent Office refused to grant a software patent for programming, modelling and new programming languages. Here are the practical takeaways from the decision T 1630/11 (Modelling a multiprocessor system/THE MATHWORKS) of Technical Board of Appeal 3.5.06:
The invention related to the modelling and simulation of a multiprocessor system in a graphical programming environment.
For the modelling step, the user could specify a functional model and a deployment model, as well as a mapping of functional units in the functional model to processing units in the deployment model.
The deployment model could be executed in simulation mode or deployed on a real-time system. To make this possible, the deployment model may have to be compiled and linked and then executed, or it may be executed in interpretive mode.
Claim 1 (main request)A method for simulating a multi-processor system in an electronic device that provides a graphical modeling environment using a deployment model and a functional model for the multi-processor system, the method comprising:
providing a functional model of a multi-processor system in the graphical modeling environment, the functional model including one ore more functional units;
creating a deployment model for the functional model in the graphical modeling environment, the deployment model comprising one or more processing units represented by node blocks interconnected via an inter process communication (IPC) channel, wherein:
the IPC channel comprises a shared memory, a bus or a broadcast medium, that exchanges data between one or more processing units represented by the node blocks, and
the node blocks include:
a write block that writes data to the IPC channel, and sends data to the one or more processing units, and
a read block that reads data from the IPC channel, and makes data available to the node blocks;
representing characteristics of the IPC channel with a model for the IPC channel, the model for the IPC channel including an IPC channel input port block, an IPC model and an IPC channel output port block;
mapping the one or more functional units of the functional model to the one or more processing units of the deployment model; and
simulating the deployment model in the graphical modeling environment.
Is it patentable?
As already decided by several other EPO Boards of Appeal, neither modelling nor programming provides a technical contribution that could be the basis for a European software patent:
6. There is broad agreement in the jurisprudence of the boards of appeal that neither modelling nor programming is, by itself, a technical undertaking (with regard to modelling see in particular the catchwords of T 49/99, T 354/07, T 1171/06 and T 42/09, point 2.4 of the reasons; with regard to programming see for instance the catchword of T 1539/09 and T 2270/10, point 7 of the reasons).
Further, the Board questions whether simulation methods can provide a technical contribution even if they are limited to an adequately defined technical purpose:
7. […] Specifically, it was found that “Simulation of a circuit subject to 1/f noise constitutes an adequately defined technical purpose for a computer-implemented method functionally limited to that purpose” (see catchword and point 3.1 of the reasons). In T 1227/05, the deciding board argued that the claimed simulation made it possible to reliably predict how a designed circuit would behave in reality and thus to assess whether manufacturing the circuit would be worthwhile (see T 1227/05, point 3.2.2 of the reasons). As a consequence, all mathematical steps in the claimed method were found to contribute to inventive step (see esp. point 3.2.4 of the reasons).
7.1 It may be questioned whether, for a computer-simulated simulation method to make a technical contribution to the art, it is sufficient that the technical purpose be “adequately defined” and the claim limited to that purpose , as T 1227/05 appears to suggest. Similar doubts were expressed in T 1265/09 (point 1.13 of the reasons, penultimate paragraph) and T 531/09 (point 3 of the reasons).
However, the Board did not decide this question, since the present patent application was said to already fail providing such an adequately defined technical purpose:
7.2 In the present case, however, this question may be left open because the board considers that the technical purpose of the claimed simulation is not adequately defined. Present claim 1 is concerned with simulation only insofar as it specifies the execution of a multi-processor specification developed as a graphical program. The claim is not concerned with the “simulation” of any specific such processor, nor any specific class of processors. Rather than the device being modelled and simulated, the claim indicates the programming means with which the model can be specified, namely “functional units”, “processing units”, “IPC channels”, “read/write blocks” and “input/output blocks”.
8. The major part of claim 1 is thus concerned with the expressions of a graphical programming environment which were found in T 1539/09 (reasons 5) not to contribute to inventive step (see also T 2270/10, reasons 7), even if, as the appellant argues, it “enables users to” develop the program in question “in a convenient and efficient way” (see the grounds of appeal, page 2, paragraph 3) and simplifies the modelling or the model by “enabl[ing] the user to separate the algorithmic model from the final deployment hardware” (see the grounds of appeal, page 2, paragraph 4).
Also the appellant’s arguments in favour of technical character did not convince the Board:
9.2 The appellant also argues that the invention enables users “to efficiently model and simulate a multi-processor system”, in particular a “hierarchical one” (grounds of appeal, page 3, paragraphs 1–2). However, the board follows its earlier jurisprudence according to which modifications to a programming language or system that enable the programmer to develop a program with greater ease and thus, presumably, speed and accuracy, do not make a technical contribution to the art.
Therefore, the Board ultimately decided that the patent application does not provide any technical contribution that could be the basis for an inventive step.
You can read the whole decision here: T 1630/11 (Modelling a multiprocessor system/THE MATHWORKS)