Entscheidungsdatum: 30.11.2010
In der Beschwerdesache
betreffend die Patentanmeldung 102 97 581.7-53
hat der 17. Senat (Technischer Beschwerdesenat) des Bundespatentgerichts auf die mündliche Verhandlung vom 30. November 2010 unter Mitwirkung des Vorsitzenden Richters Dipl.-Phys. Dr. Fritsch, der Richterin Eder sowie des Richters Dipl.-Ing. Baumgardt und der Richterin Dipl.-Ing. Wickborn
beschlossen:
Die Beschwerde wird zurückgewiesen.
I.
Die vorliegende Patentanmeldung ist eine PCT-Anmeldung in nationaler Phase, welche die Priorität einer Voranmeldung in den USA vom 20. Dezember 2001 in Anspruch nimmt und als WO 03 / 54 692 A1 in englischer Sprache veröffentlicht wurde. PCT-Anmeldetag ist der 12. Dezember 2002. Ihre deutsche Übersetzung (veröffentlicht als DE 102 97 581 T5) trägt die Bezeichnung:
„Lade/Übertrage- und Duplizier-Anweisungen für einen Prozessor“.
Die Anmeldung wurde durch Beschluss der Prüfungsstelle für Klasse G 06 F des Deutschen Patent- und Markenamts mit der Begründung zurückgewiesen, dass der Gegenstand des jeweiligen Patentanspruchs 1 gemäß Haupt- und Hilfsantrag auf Grund des entgegengehaltenen Standes der Technik nicht auf einer erfinderischen Tätigkeit beruhe.
Gegen diesen Beschluss ist die Beschwerde der Anmelderin gerichtet. Sie stellt (siehe Beschwerdeschriftsatz vom 9. August 2006 und Eingabe vom 26. November 2010) sinngemäß den Antrag,
den Zurückweisungsbeschluss aufzuheben und ein Patent gemäß Haupt- bzw. Hilfsantrag vom 26. November 2010 zu erteilen.
Zur Begründung ihrer Beschwerde erläutert sie, dass die jeweiligen Gegenstände der unabhängigen Patentansprüche 1, 6, 11 und 12 des Hauptantrags neu seien und eine erfinderische Tätigkeit umfassten, da sie weder durch eine einzelne noch durch eine Kombination der im Verfahren befindlichen Entgegenhaltungen nahegelegt würden. Dies gelte ebenso für die unabhängigen Patentansprüche 1, 2, 8 und 9 des Hilfsantrags.
Der Patentanspruch 1 gemäß Hauptantrag , hier mit einer möglichen Gliederung versehen, lautet:
„ 1. Prozessor (10), umfassend:
(a) eine Mehrzahl von Registern (56, 58, 60, 84); und
(b) einen mit den Registern (56, 58, 60, 84) gekoppelten Kern (18), wobei der Kern (18) in Reaktion auf eine Instruktion betrieben werden kann, die einen Quelloperanden und ein Zielregister (84) bezeichnet, um:
(c) einen ersten gepackten Datenwert des Quelloperanden in einem ersten gepackten Datenwert des Zielregisters (84) und einem zweiten gepackten Datenwert des Zielregisters (84) zu speichern; und
(d) einen zweiten gepackten Datenwert des Quelloperanden in einem dritten gepackten Datenwert des Zielregisters (84) und einem vierten gepackten Datenwert des Zielregisters (84) zu speichern,
(e) wobei ein Dritter gepackter Datenwert des Quelloperanden zwischen den ersten und zweiten gepackten Datenwerten des Quelloperanden nicht im Zielregister (84) gespeichert wird.“
Bezüglich der Nebenansprüche 6, 11 und 12 und der Unteransprüche 2 bis 5, 7 bis 10 und 13 wird auf die Akte verwiesen.
Gemäß Hilfsantrag lauten die unabhängigen Patentansprüche 1 und 2:
„ 1. Prozessor (10) mit einer Architektur, umfassend:
einen Kern (18) zur Ausführung von Instruktionen, eine Ausführungsumgebung (50) mit einer Mehrzahl von Registern (52, 56, 58, 60, 62) einschließlich eines 128-Bit-Zielregisters (84) und mit einem Speicher (54),
wobei die Architektur zumindest eine Instruktion umfasst, die wenn sie durch den Kern (18) ausgeführt wird, den Prozessor veranlasst zum:
Laden der Bits [31-0] des Zielregisters (84) mit den Bits [63-32] eines 128-Bit-Quelloperanden,
Laden der Bits [63-32] des Zielregisters (84) mit den Bits [63-32] des Quelloperanden,
Laden der Bits [95-64] des Zielregisters (84) mit den Bits [127-96] des Quelloperanden und
Laden der Bits [127-96] des Zielregisters (84) mit den Bits [127-96] des Quelloperanden.
2. Prozessor (10) mit einer Architektur, umfassend:
einen Kern (18) zur Ausführung von Instruktionen und eine Ausführungsumgebung (50) mit einer Mehrzahl von Registern (52, 56, 58, 60, 62) einschließlich eines 128-Bit-Zielregisters (84) und mit einem Speicher (54),
wobei die Architektur zumindest eine Instruktion umfasst, die wenn sie durch den Kern (18) ausgeführt wird, den Prozessor veranlasst zum:
Laden der Bits [31-0] des Zielregisters mit den Bits [31-0] eines 128-Bit-Quelloperanden,
Laden der Bits [63-32] des Zielregisters (84) mit den Bits [31-0] des Quelloperanden,
Laden der Bits [95-64] des Zielregisters (84) mit den Bits [95-64] des Quelloperanden und
Laden der Bits [127-96] des Zielregisters (84) mit den Bits [95-64] des Quelloperanden.“
Wegen ihrer Unteransprüche 3 - 7 und der formal nebengeordneten, jedoch auf die Ansprüche 1 bzw. 2 rückbezogenen Verfahrensansprüche 8 und 9 wird wiederum auf die Akte verwiesen.
Als zugrundeliegende technische Aufgabe ist in der Eingabe vom 26. November 2010 angegeben, Datenwerte aus einem Quelloperanden derart und mit möglichst wenigen Operationen in einem Zielregister anzuordnen, dass sie unmittelbar in vertikalen Rechenoperationen zur Multiplikation komplexer Zahlen verwendet werden können.
Folgende Druckschriften sind im Laufe des Verfahrens zitiert worden:
D1 Tommesani , S.: SSE Shuffle instructions, 2000, zitiert nach http://web.archive.org, Eintrag vom 4. März 2001
D2 Intel Architecture Software Developer’s Manual, Vol. 2: Instruction Set reference. Intel, 1999, S. 3-646 - 3-650
D3 Using Streaming SIMD Extensions 3 in Algorithms with Complex Arithmetic. Intel, Version 1.0, 01/04, Seiten 1 – 24 (von der Anmelderin zusammen mit der Beschwerdebegründung eingereicht, nachveröffentlicht)
D4 EP 0 743 594 A1
II.
Die frist- und formgerecht eingelegte Beschwerde ist auch sonst zulässig. Sie ist jedoch nicht begründet, weil der Patentanspruch 1 nach Hauptantrag eine Änderung umfasst, die den Gegenstand der Anmeldung erweitert (§ 38 PatG), und weil der jeweilige Gegenstand der Patentansprüche 1 und 2 nach Hilfsantrag, soweit er technische Merkmale betrifft, nicht auf einer erfinderischen Tätigkeit beruht (§§ 1, 4 PatG).
1. Wie in der Beschreibung erläutert, betrifft die vorliegende Patentanmeldung Mikroprozessoren, deren Architektur SIMD- (Single Instruction, Multiple Data-) Befehle für die parallele Berechnung mit gepackten Daten verarbeiten kann; solche SIMD-Befehle sind beispielsweise im Befehlssatz des Intel-Pentium-4-Prozessors enthalten. Die ursprüngliche Anmeldung bezieht sich konkret auf drei neue Befehle ( MOVDDUP, MOVSHDUP, MOVSLDUP ), die zur SSE3-Befehlssatz-Erweiterung (Prescott New Instructions) gehören, zum Laden eines Zielregisters mit bestimmten Bitgruppen aus einem Quelloperanden (Register oder Speicherbereich) nach einer Ordnungsregel.
Der geltende Patentanspruch 1 nach Hauptantrag ist auf eine abstrahierte Form der Regel zum Laden eines Zielregisters gerichtet; die Patentansprüche 1 und 2 nach Hilfsantrag beanspruchen detailliert, welche Bitgruppen eines 128-Bit-Quelloperanden an welche Stelle eines 128-Bit-Zielregisters geladen werden sollen, so wie es die Anmeldung für den MOVSHDUP- und den MOVSLDUP-Befehl aufzeigt.
1.1 Dabei beschreibt die Anmeldung allerdings nur die Wirkung der Befehle, d. h. das konkrete Ergebnis, welche Bitgruppen an welche Stelle im Zielregister gelangen sollen. Besondere Vorteile nennt die Anmeldung selbst nicht; weder geht sie auf eine bestimmte Art der technischen Realisierung ein, noch ist in irgendeiner Weise entnehmbar, dass die Rechenoperationen schneller ablaufen würden. In ihrer Beschwerdebegründung hat die Anmelderin zur näheren Erläuterung auf ihre eigene (nachveröffentlichte) Druckschrift D3 verwiesen, welche feststellt:
„SSE3 provides more flexibility for programmers to choose the optimal data layout and use SSE3 … to do more work with fewer instructions and/or data permutations” (Seite 7 Absatz 2); „When implementing complex multiplication using SSE3 it is possible to reduce the number of instructions needed” (Seite 7 Abschnitt 2.2.1).
Ebenso wird in der Eingabe der Anmelderin vom 26. November 2010 als Vorteil lediglich angegeben, dass die neuen Befehle es ermöglichen, „die Anzahl von Instruktionen zur Durchführung bestimmter Rechenoperationen zu reduzieren“.
1.2 Dies wird für den speziellen Anwendungsfall der Multiplikation zweier komplexer Zahlen ( [ a+ib ] • [ c+id ], vgl. D3 Seite 7 Abschnitt 2.2.1 ) dadurch erreicht, dass - ausgehend von dem Registermodell des Prozessors, siehe Figur 2 der Anmeldung, und der möglichen Zuordnung gepackter Daten, siehe Figur 5 der Anmeldung - für eine bestimmte Speicherbelegung mit Real- und Imaginärteil (zwei Quelloperanden in der Anordnung a1 b1 a0 b0 und c1 d1 c0 d0) eine bestimmte Anordnung der Teildaten in Rechenregistern ausgewählt wird, die mit weiteren, hier nicht beanspruchten Befehlen eine relativ einfache und übersichtliche Multiplikation und Addition zum Ergebnis x + iy ermöglicht (wobei x = a•c – b•d und y = a•d + b•c). Die dafür erforderliche Anordnung der Teildaten in den benutzten Rechenregistern (a1 a1 a0 a0 bzw. b1 b1 b0 b0) soll durch die beschriebenen neuen Befehle bewirkt werden.
Als Fachmann für derartige Überlegungen ist ein Mathematiker oder ein Programmierer anzusehen, der Erfahrung in der Implementierung mathematischer Berechnungen auf einem Mikroprozessor besitzt.
2. Dem geltenden Hauptantrag kann bereits deswegen nicht gefolgt werden, weil zumindest der Gegenstand seines Patentanspruchs 1 den Rahmen der ursprünglichen Offenbarung verlässt.
2.1 Als „ursprüngliche Offenbarung“ ist die englischsprachige PCT-Anmeldung gemäß WO 03 / 54 692 A1 anzusehen (vgl. Busse, PatG, 6. Auflage (2003), § 34 Rdnr. 241 - Fußnote 508 mit Verweis auf EPA T 605/93). Soweit keine Diskrepanzen bestehen, kann die deutsche Übersetzung in Form der DE 102 97 581 T1 herangezogen werden.
2.2 Die Merkmale (c) , (d) und (e) des Patentanspruch 1 nach Hauptantrag gehen von einer Aufteilung von Quelloperand und Zielregister in mehrere „gepackte Datenwerte“ aus. Bezüglich des Zielregisters werden vier gepackte Datenwerte genannt; das Quellregister soll einen ersten und einen zweiten gepackten Datenwert enthalten, die in das Zielregister übertragen werden sollen, und ferner gemäß Merkmal (e) einen dritten gepackten Datenwert, der zwischen dem ersten und dem zweiten genannten liegen und nicht in das Zielregister übertragen werden soll.
2.3 Zunächst ist festzustellen, dass der MOVDDUP-Befehl (siehe Absätze [0052] bis [0054] der DE 102 97 581 T5 ) nicht mehr unter diese Anspruchsfassung fällt, da er beschreibungsgemäß zwei nebeneinander liegende gepackte Datenwerte übertragen soll, ohne dass es einen dritten, nicht zu übertragenden gäbe.
Hingegen umfasst der Patentanspruch 1 in der verallgemeinerten Formulierung gemäß Hauptantrag diejenigen Ladeoperationen, die für den MOVSHDUP- und den MOVSLDUP-Befehl beschrieben sind (siehe Absätze [0055] bis [0058] und [0059] bis [0061] der DE 102 97 581 T5 ).
2.4 Allerdings ist der Begriff „gepackter Datenwert“ des Patentanspruchs 1 wie auch die Zählung „erster … zweiter … „ wenig konkret. Entsprechend Figur 5 der Anmeldung würde auch eine Aufteilung von Quelloperand bzw. Zielregister in acht oder sechzehn „gepackte Datenwerte“ unter die geltende Formulierung fallen. Damit ergäbe sich aber eine Vielzahl von Möglichkeiten, einzelne dieser acht oder sechzehn als „erster“, „zweiter“, „dritter“ oder „vierter“ gepackter Datenwert zu interpretieren. Es entstünden ganz neue Übertragungsanweisungen, die offensichtlich nicht Gegenstand der ursprünglichen Anmeldung waren; denn die gesamte Beschreibung geht für MOVSHDUP und MOVSLDUP von genau vier gepackten Datenwerten in 32-Bit-Größe aus. Lediglich die ursprünglichen Patentansprüche 1, 5 und 9 waren allgemeiner formuliert; trotzdem hätte jedoch, insbesondere bei Berücksichtigung der Beschreibung, kein Fachmann damit rechnen können, dass ein Patentanspruch auf eine (fast) willkürliche Auswahl von zwei aus acht oder sechzehn Datenwerten zur Übertragung in vier beliebige von acht oder sechzehn Bereichen des Zielregisters gerichtet werden könnte.
2.5 Der Patentanspruch 1 gemäß Hauptantrag in der gewählten Verallgemeinerung umfasst somit Fälle, die nicht Gegenstand der ursprünglichen Offenbarung waren und die der Fachmann auch nicht als darunterfallend erkannt hätte. Eine solche Erweiterung des Patentbegehrens über das Offenbarte hinaus ist nicht zulässig.
3. Die unabhängigen Patentansprüche 1 und 2 nach Hilfsantrag ergaben sich hinsichtlich ihrer technischen Aspekte für den Durchschnittsfachmann bereits vor dem Prioritätstag in naheliegender Weise aus dem Stand der Technik.
3.1 Beide Ansprüche betreffen einen Prozessor mit einem Kern zur Ausführung von Befehlen, einer Ausführungsumgebung mit einer Mehrzahl von Registern einschließlich eines 128-Bit-Zielregisters, und mit einem Speicher. Ein derartiger Prozessor liegt beispielsweise der Ausführung des SHUFPS-Befehls zugrunde (siehe D2 ) und ist prinzipiell etwa in D4 (siehe dort insbesondere Seite 3 und Figur 1, für 64-Bit-Register) vorbeschrieben.
Die beanspruchte Besonderheit soll hier darin liegen, dass dieser Prozessor zur Ausführung der beiden neuen Befehle MOVSHDUP und MOVSLDUP eingerichtet ist, wobei diese Befehle in den beiden Ansprüchen exakt definiert sind zur Übertragung zweier bestimmter 32-Bit-Gruppen eines 128 Bit-Quelloperanden in vier jeweils angegebene 32-Bit-Gruppen eines 128-Bit-Zielregisters, so wie es die Beschreibung aufzeigt ( DE 102 97 581 T5 Absatz [0056] / [0057], Absatz [0060]).
3.2 Allein das Ausdenken neuer Prozessorbefehle kann aber nicht als Leistung auf dem Gebiet der Technik anerkannt werden, wenn keine auf technischen Überlegungen beruhende Erkenntnisse zugrunde liegen. Um einen solchen Fall handelt es sich hier:
Wie zuvor dargelegt (s. o. 1.1 / 1.2 ), beruht die Auswahl, welche 32-Bit-Gruppen des Quelloperanden jeweils in welche 32-Bit-Gruppen des Zielregisters übertragen werden sollen, allein auf mathematischen Überlegungen zur Berechnung des Produktes zweier komplexer Zahlen. Dass irgendwelche technischen Aspekte die Auswahl auch nur beeinflusst hätten, ist nicht erkennbar und wurde auch nicht vorgetragen. Der zuständige Fachmann muss keine technischen Fachkenntnisse haben, um die beanspruchte Lehre aufzufinden.
Was die Anmeldung tatsächlich leistet (vgl. BGH BlPMZ 2005, 77 - Anbieten interaktiver Hilfe), besteht darin, die Anzahl benötigter Computerbefehle für ein Programm zur Multiplikation zweier komplexer Zahlen zu reduzieren. Das „objektive Problem“ ist somit darin zu sehen, derartige Programme durch spezielle neue Befehle kürzer und überschaubarer machen zu können. Dieses ist aber kein technisches Problem.
3.3 Daher können die Details, welche Bits des Quelloperanden an welchen Ort des Zielregisters zu übertragen sind, bei der Prüfung der erfinderischen Tätigkeit nicht berücksichtigt werden. Denn Anweisungen, die auf nicht-technischem Gebiet liegen, können das Vorliegen einer erfinderischen Tätigkeit nicht begründen (vgl. BPatG BlPMZ 2009, 499 - Druckvorlagenerstellung).
Soweit die Ansprüche explizit technische Aspekte enthalten, etwa den zugrundeliegenden Prozessor oder generell die Möglichkeit, neue Befehle zu implementieren, waren diese beispielsweise aus D4 Seite 3 / Figur 1 für eine Datenbreite von 64 Bit vorbekannt. Eine Übertragung auf 128 Bit war naheliegend.
Der beanspruchte Prozessor nach Patentanspruch 1 und Patentanspruch 2 beruht daher nicht auf einer erfinderischen Tätigkeit. Somit konnte auch dem Hilfsantrag nicht gefolgt werden.
III.
Nach alledem war die Beschwerde der Anmelderin gegen den Beschluss der Prüfungsstelle zurückzuweisen.