INFORMATION FROM THE CONTRACTING / EXTENSION STATES
DE Germany
Decision of the Bundesgerichtshof (Federal Court of Justice), 10th Civil Senate, dated 11 June 1991
(X ZB 13/88)*
Headword: Seitenpuffer (Cache)
Section: 1(1) PatG 1968 (Patent Law 1968)
Keyword: "Technical character of a teaching relating to the operation of a data processing unit - not dependent on whether a specific physical design of the unit or new uses are being taught" - "Technicality of an invention not dependent on the existence of other prerequisites for patentability"
Headnote
1. Teaching related to a computer program is technical if it concerns the functional capabilities of the data processing unit as such, and consequently enables the direct interaction of its constituent elements (supplement to BGHZ 67, 22, 29 -Dispositionsprogramm).
2. A process that consists in the capture and storage of data on the current memory area of a computational program running on a data processing unit, and in a specific loading strategy for a memory device (cache) with preferential access but containing only a selection of memory pages is a process that concerns the functional capabilities of the data processing unit as such; it contains instructions for a direct specific manner of use of the elements of the data processing unit in operation.
3. The existence of a technical teaching does not depend on whether the teaching is novel, progressive or inventive.
Summary of Facts and Submissions
I. Patent application No. P 25 42 845.9-53 of 28 September 1975 relating to a method of operating a hierarchically structured multi-level user memory system and a circuit arrangement to carry out the process, was disclosed (...) on 13 March 1980 (...).
In opposition proceedings the patent was refused on the ground that the teaching of Claim 1 was not technical (...).
The Bundespatentgericht (Federal Patent Court) dismissed the applicants' appeal. (...)
In their admissible further appeal the applicants contend that the Federal Patent Court wrongly ruled against the patentability of the specific application of an organisational rule for controlling the system of internal processes of a data processing unit. They request that the contested decision be set aside and the case remitted to the Federal Patent Court for reconsideration and decision.
The opponents request that the appeal be dismissed.
The President of the German Patent Office (...) considers the appeal to be well-founded.
Reasons for the Decision
II. (...)
III. On appeal the contested decision is set aside and the case is remitted to the Federal Patent Court.
1. In their appeal the applicants argue that developments in the field of semi-conductor technology mean that the operating and control systems of data processing units no longer consist of hard-wired circuits (hardware). In state-of-the-art data processing units functions once performed by hard-wired circuits can now be divided up into sequences of individual steps and triggered by micro instructions which act on predetermined circuits within the unit to perform the required functions (...). One and the same task can therefore be performed by means of either hard-wired circuits or a program, and in the latter case software and hardware can be separated from one another. This does not however mean that the two should be viewed in isolation; it is the arrangement of the two parts combined or the resultant process that must be considered. It should therefore be immaterial whether only the hardware, only the software, or a combination of the two solves the problem. In practice data processing units are designed in such a way that they cannot function without a certain minimum of software (their operating or system control programs). The programs determine the internal workings and the interaction of the individual hardware components in a data processing unit and thus supplement the hardware.
The subject-matter in question is a technical process; the teaching is not restricted to a mere organisational rule because its application in the data processing unit triggers a control function within the process. The method claimed requires a means of monitoring the request signals, a temporary store, a means of controlling storage of the page addresses in the temporary store (...), a means of controlling the reloading of the desired data page from the main memory to a free page frame of the cache, of monitoring the loading of all the required pages in the cache and of generating a corresponding acknowledgment. Each of these steps is accomplished by means of circuits, their intended purpose being achieved by technical means without the use of human intellectual activity.
Even if the program itself were not held to be technical, the method claimed teaches a novel use for a data processing unit. Contrary to the view taken by the Federal Patent Court, the use of identical hardware configurations with different operating programs does not produce identical data processing units. Differences in the operating system produce different circuit configurations, so that the necessity for interaction between the software and hardware must be borne in mind. The fact that the claimed method relates to the internal workings of a data processing unit means that it is more than a non-technical program (...). If the system as a whole, comprising both hardware and software, results in a data processing unit operating in a different way, it must involve a technical teaching.
2. The President of the German Patent Office argues that the contested decision is based on an excessively narrow concept of technology. The technical nature of a teaching can also be justified by a new manner of use of a known device. The Federal Patent Court's view that any use to which a data processing unit is put is an intended use provided it is within the inherent capabilities of the unit, fails to recognise that this is only true of known uses to which the unit can be put. Intended use cannot be made of capabilities which are novel, hitherto unusual and non-obvious. The possibility of patenting a novel, inventive use of a data processing unit already known in terms of its elements and its structure must remain open if the use is derived from the algorithm or from the computational rule (...). The method described in Claim 1 must be viewed as a new use of the data processing unit because it speeds up and improves what were hitherto known procedures.
3. The opponents contend that a teaching essentially restricted to a rule for the selection, organisation and assignment of certain data is not technical even if technical means are the best or only way of applying it and it produces technically usable results (...). Whether a program is classified as hardware or software is arbitrary and irrelevant to whether the teaching is regarded as technical or not. If the solution to a problem involves the use of a data processing unit and a program, the skilled person developing the solution is involved in a purely organisational activity. The resulting program sequence is itself the solution and does not become technical until actually applied (...). System control programs likewise consist of an organisational structure, and while their creation presupposes complete familiarity with the structure of the unit's hardware, and hence gives the appearance of being "more technical", the existing hardware structure of the data processing unit is not altered by such programs. Nor is the distinction between system control programs and application programs clear. As a rule application programs also have an effect on a data processing unit's mode of operation and the interaction between its individual circuits.
Moreover, the opponents consider that merely speeding up individual processes or expanding the user memory does not constitute a new technical use for a data processing unit.
4. Contrary to the view of the Federal Patent Court there is no denying the technical character of the teaching described in Claim 1.
(a) The teaching claimed is based on the problem of a data processing unit simultaneously running a number of programs and with a hierarchically structured multi-level user memory which can be accessed rapidly but which has at its disposal only limited memory capacity, the cache of which must be occupied with memory pages from the main memory, which contains all the data but with much slower access, in a manner best suited to the process or program currently being run.
(b) As a solution to this problem, the applicants propose that, when a previously used process is reactivated, the memory pages needed but no longer in the cache should not be called individually from the main memory, which would involve delays, but rather that they be registered when they are first called, and the registered memory pages transferred as a whole to the cache when the process is reactivated.
(c) The subject-matter of the teaching claimed is therefore a process for the operation of the user memory system of a data processing unit that simultaneously runs a number of programs,
(1) the user memory being arranged as follows:
(1.1) it is organised hierarchically on a number of levels,
(1.2) its two lowest memory levels consist
(1.2.1) of a main memory containing all the data of the programs running simultaneously and
(1.2.2) of a cache containing only a selection of memory pages,
(1.3) the cache
(1.3.1) is subject to preferential access by means of a cache controller unit, and
(1.3.2) any memory page missing during an access to memory is transferred to it,
(2) with the following process stages:
(2.1) when a program is run, every call for a memory access to the cache is registered in the cache controller unit,
(2.1.1) access is registered by temporarily storing the addresses of the memory pages selected,
(2.1.2) which calculates the current memory area of the program,
(2.2) when changing to another program, the page addresses temporarily stored are transferred to the main memory,
(2.3) when the program is subsequently reactivated by a processor of the data processing unit
(2.3.1) the information on the previous current memory (of this program) is first read from the main memory,
(2.3.2) the stored page addresses are used to select sequentially the assigned memory pages in the main memory and
(2.3.3) to transfer to the cache any memory pages displaced from the cache while other programs were being processed,
(2.4) once the previous current memory of the program to be activated has been made available, this program then runs in the cache unimpeded by page change requirements for as long as the memory area is not changed,
(2.5) changes in the current memory area caused by calls for memory pages not previously required are registered in the cache controller unit.
5. (a) The patentability of the subject-matter of the present application is governed by Section 1(1) of the Patent Law 1968. In its case law, the Senate has only affirmed the existence of an invention if the teaching claimed is part of a field of technology (BGHZ 52, 74 et seq. - Rote Taube). It has held instructions for a planned activity using known natural laws to achieve a causally predictable result to constitute a technical teaching, and has denied the existence of an invention in the case of mere computational and organisational rules, irrespective of their manner of linguistic expression (BGHZ 67, 22, 27 Dispositionsprogramm; BGH GRUR 1977, 657, 658 - Straken; GRUR 1978, 102 et seq. - Prüfverfahren; GRUR 1980, 849 et seq. -Antiblockiersystem; BGHZ 78, 98 et seq. - Walzstabteilung; GRUR 1986, 531, 533 - Flugkostenminimierung). The Senate upholds these principles.
(b) According to the teaching in Claim 1, a specific selection rule is applied to determine which memory pages are to be taken from the main memory and entered and kept available in the cache when a particular computer program is reactivated. This selection rule consists in registering the memory pages during the previous run of the same program and retaining the result in the form of information about the current memory area of the same program. In the wording of Claim 1 this is done by first determining this area, temporarily storing the memory addresses and transferring them to the main memory when a change of program takes place, and reading the information from the main memory when the program is reactivated. In the patent description it is stated that hitherto a memory page was only transferred to the cache if it had been missing when required. This loading strategy had the disadvantage of causing a dead time whenever a page was transferred (col. 3, lines 12 to 25). (...)
The present application claims to overcome this problem, so that instead of repeatedly calling up pages, by determining and storing the current memory area of the processor (features 2.1 with subfeatures, and 2.2), whenever the latter is reactivated, the information concerning the previous active memory area is read, the assigned memory pages are selected sequentially from the main memory and, after they have been compared with those in the cache, are transferred to the latter (feature 2.3 with subfeatures), thus avoiding repeated page calls for as long as the current page area of the program is not changed (feature 2.4).
(c) The teaching thus consists firstly in the capture and storage of information on the current memory area of a program, assigning the necessary memory pages to this program (continuous updating, feature 2.5), and secondly in a specific loading strategy for the cache designed in such a way that the memory pages required are not transferred to the cache individually but "bundled" according to the assignment procedure applied, and stored there as a "data bundle". The teaching is not restricted to the selection, organisation and assignment of data, but improves the operation of the data processing unit. This use of the cache enables the unit to work more rapidly by avoiding dead time. This has a direct effect on the operation of the data processing unit.
(d) In the Dispositionsprogramm decision (BGHZ 67, 22, 29) the Senate held that the teaching describing the operation of a data processing unit according to a specific computational program could only be patentable if the program required and taught a new, inventive structure for the said unit, or if instructions for the use of the device in a new, hitherto unusual and non-obvious manner could be derived from it. This statement requires clarification. Concerning the question of whether the subject-matter of the application contains technical teaching, it is irrelevant whether the teaching is novel, progressive and inventive. Teaching related to a program is technical if it relates to the functional capabilities of the data processing unit as such and hence permits the direct interaction of its components. Whether there are other program-related teachings whose subject-matter is a technical teaching, is an issue that need not be settled in the present case.
(e) The applicants do not question the Federal Patent Court's view that the application does not describe a specific structure of a data processing unit in the sense of a physical design; nor are there any legal objections to this. On the other hand, the Federal Patent Court's view that the subject-matter of the application does not contain any teaching for the direct specific manner of use of the elements of the device in operation cannot be upheld.
There is no evidence that the teaching claimed opens up possibilities for using the data processing unit for purposes other than those already available; nor do the applicants assert such a claim. The teaching does however enable a data processing unit to make better use of the user memory and to reduce memory access times. Since this is achieved by a direct specific manner of use of the elements of the data processing unit, the technical nature of the teaching cannot be denied.
The Senate held that an organisational or computational rule formulated for a data processing unit can be patented if it teaches a novel, inventive use for such a device (BGH GRUR 1978, 102 - Prüfverfahren; BGH GRUR 1978, 420, 421 et seq. -Fehlerortung). In other decisions, it referred to the use of a device in a new, hitherto unusual and also non-obvious manner (BGHZ 67, 22, 29 - Dispositionsprogramm; BGH GRUR 1980, 849, 851 - Antiblockiersystem), or to an inventive change in the use of a technical means (BGHZ 78, 98, 106 - Walzstabteilung). While adopting different wording in each case, the Senate's intention was to express the same thing, which it explained in more detail in the Straken decision (GRUR 1977, 657, 658); the wording was chosen with the express aim of leaving open the possibility of patenting a novel, inventive use for a data processing unit already known in terms of its elements and its structure should such a use be derived from the details of the computer program.
(f) The teaching set out in the present application relates to a process that consists in the capture and storage of data on the current memory area of a computational program running on a data processing unit, and in a specific loading strategy for a memory device (cache) with preferential access but containing only a selection of memory pages. This process relates to the functional capabilities of the data processing unit as such, since it contains instructions for a direct specific manner of use of the elements of the data processing unit in operation. This is a technical teaching (...).
DE 3/93
* Translation of the official text abridged for publication; the full text of the original was reported in Bl.f. PMZ 1991, 345, GRUR 1992, 33 and IIC 1992, 824.