Rechtsprechung / BPatG / 17. Senat / 2022

BPatG Beschluss vom 15.03.2022 – 17 W (pat) 5/21

17. Senat · ECLI:DE:BPatG:2022:150322B17Wpat5.21.0

Gewerblicher RechtsschutzBundVolltext

Zitiert 1 Entscheidungen 3 zitierte Normen Als PDF speichern

BUNDESPATENTGERICHT

_______________________

(Aktenzeichen) Verkündet am 15. März 2022 …

B E S C H L U S S

In der Beschwerdesache

betreffend die Teilanmeldung 10 2014 020 058.2 …

hat der 17. Senat (Technischer Beschwerdesenat) des Bundespatentgerichts auf die mündliche Verhandlung vom 15. März 2022 unter Mitwirkung des Vorsitzenden Richters Dipl.-Phys. Dr. Morawek, des Richters Dipl.-Phys. Dr. Forkel, der Richterin Akintche und des Richters Dipl.-Phys. Dr. Städele

beschlossen:

ECLI:DE:BPatG:2022:150322B17Wpat5.21.0 Die Beschwerde wird zurückgewiesen.

G r ü n d e

I. Die vorliegende Patentanmeldung ist aufgrund einer Teilungserklärung im Beschwerdeverfahren aus der Patentanmeldung 10 2014 119 048.3 entstanden und trägt die Bezeichnung „ Ausführung von Verarbeitungsvorgängen in einer SIMD-Verarbeitungseinheit “. Die Stammanmeldung, die eine GB-Priorität vom 18. Dezember 2013 in Anspruch nimmt, wurde durch Beschluss der Prüfungsstelle für Klasse G06F des Deutschen Patent- und Markenamts vom 20. Januar 2020 aus Gründen des Bescheids vom 24. September 2019 zurückgewiesen. In dem in Bezug genommenen Bescheid ist sinngemäß ausgeführt, mangels einer ausreichenden Definition des unter Schutz zu stellenden Gegenstands erfülle der (damalige) Patentanspruch 1 nicht die Anforderungen nach §34 Abs. 3 Nr. 3 PatG und sei aus diesem Grund nicht gewährbar. Selbst wenn dieser Mangel keine Berücksichtigung fände, sei der Gegenstand des Patentanspruchs 1 mit Rücksicht auf den der Druckschrift D1 entnehmbaren Stand der Technik nicht neu und beruhe gegenüber der Druckschrift D2 nicht auf einer erfinderischen Tätigkeit.

Die gegen den Beschluss der Prüfungsstelle gerichtete Beschwerde vom 19 Februar 2020 war beim Senat unter dem Aktenzeichen 17 W (pat) 20/20 anhängig und wurde mit Beschluss vom 15. Juni 2021 zurückgewiesen. Im Laufe des Beschwerdeverfahrens erklärte die Anmelderin mit Schriftsatz vom 23. Dezember 2020 die Teilung der Anmeldung gegenüber dem Bundespatentgericht. Das Deutsche Patent- und Markenamt legte für die Trennanmeldung eine Akte mit dem Aktenzeichen 10 2014 020 058.2 an und stellte am 3. März 2021 den fristgerechten Eingang der erforderlichen Unterlagen und der Gebühren fest (siehe Gerichtsakte Bl. 14).

Die Anmelderin stellt den Antrag, 1. das nachgesuchte Patent mit folgenden Unterlagen zu erteilen:

Patentansprüche 1 bis 9, eingegangen am 9. März 2022, Beschreibung Seiten 1 bis 34, eingegangen am 23. Dezember 2020, 9 Blatt Zeichnungen mit Figuren 1 bis 10, eingegangen am 23 Dezember 2020. 2. hilfsweise die Anmeldung zur Fortführung des Prüfungsverfahrens an das Deutsche Patent- und Markenamt zurückzuverweisen.

Im Prüfungsverfahren der Stammanmeldung vor dem Deutschen Patent- und Markenamt sind u.a. die Druckschriften G9 Giesen, Fabian: A trip through the Graphics Pipeline 2011, part 8, 10.07.2011. URL: https://fgiesen.wordpress.com/2011/07/10/a-trip-throughthe-graphics-pipeline-2011-part-8/, [abgerufen am 10.09.2019] und D2 Rhu, Minsoo; Erez, Mattan: Maximizing SIMD Resource Utilization in GPGPUs with SIMD Lane Permutation. In: SIGARCH Comput. Archit. News, Volume 41, June 2013, Issue 3, S. 356-367. - ISSN 0163-5964. http://doi.acm.org/10.1145/2508148.2485953, [abgerufen am 18.04.2016] genannt worden. Vom Senat wurde zusätzlich die Druckschrift D11 US 2007 / 0 182 746 A1 eingeführt.

Der geltende Patentanspruch 1 lautet mit einer möglichen Gliederung versehen:

M1 SIMD(Single Instruction Multiple Data)-Verarbeitungseinheit, die ausgelegt ist, M2 eine Mehrzahl von Verarbeitungsvorgängen zu verarbeiten, M2a die jeweils Arbeitselemente bis zu einer vorbestimmten Höchstanzahl umfassen, M2b wobei die Arbeitselemente eines Verarbeitungsvorgangs ausgelegt sind, eine gemeinsame Sequenz von Befehlen an entsprechenden Datenelementen auszuführen, wobei M2c ein Verarbeitungsvorgang durch Blöcke von Arbeitselementen gebildet wird, die jeweils genau vier Arbeitselemente umfassen und M2d sich auf ein jeweiliges Pixel-Quad beziehen, wobei jedes Pixel-Quad einen 2x2 Block von vier Pixeln umfasst, M3 wobei die SIMD-Verarbeitungseinheit umfasst:

eine Gruppe von Verarbeitungsbahnen, die ausgelegt sind, Befehle von Arbeitselementen eines bestimmten Verarbeitungsvorgangs über vier aufeinander folgende Verarbeitungszyklen auf SIMD-Weise auszuführen, M3a wobei jede der Verarbeitungsbahnen der Gruppe ausgelegt ist, Befehle aller Arbeitselemente für einen jeweiligen Block von Arbeitselementen, der sich auf ein jeweiliges Pixel-Quad bezieht, über die vier aufeinander folgenden Verarbeitungszyklen hinweg auszuführen; und M4 Logik, die mit der Gruppe von Verarbeitungsbahnen gekoppelt ist, die ausgelegt ist, die Gruppe von Verarbeitungsbahnen zu veranlassen, die Ausführung eines gegebenen Verarbeitungszyklus zu überspringen, wenn keine gültigen Arbeitselemente für die Ausführung in der Gruppe von Verarbeitungsbahnen in diesem Verarbeitungszyklus eingeplant sind.

Zu den nebengeordneten Patentansprüchen 8 und 9 sowie zu den Unteransprüchen 2 bis 7 wird auf die Akte verwiesen.

II. Die zulässige Beschwerde konnte keinen Erfolg haben, da der Gegenstand des Patentanspruchs 1 nicht auf einer erfinderischen Tätigkeit beruht und somit nicht patentfähig ist (§ 1 Abs. 1 i. V. m. § 4 Satz 1 PatG).

1. Der Senat ist für die Behandlung der vorliegenden Teilanmeldung zuständig. Durch die Teilungserklärung erhält das

Bundespatentgericht

die Entscheidungskompetenz über die neue Teilanmeldung, weil deren Gegenstand mit der Beschwerde in der Beschwerdeinstanz angefallen ist (Schulte, PatG, 11. Aufl., § 39 Rdnr. 60 m.w.N.; Busse/Keukenschriyver , PatG, 9. Aufl., §39 Rdnr. 24; BGH GRUR 2019, 766 - Abstandsberechnungsverfahren, Leitsatz b)).

Im vorliegenden Fall war das Beschwerdeverfahren gegen die Zurückweisung der Stammanmeldung 10 2014 119 048.3 mit Eingang der Beschwerde am 19. Februar 2020 beim Bundespatentgericht anhängig. Über diese Beschwerde wurde durch Beschluss vom 15. Juni 2021 entschieden. Die Teilungserklärung vom 23. Dezember 2020 ging somit während der Anhängigkeit des Beschwerdeverfahrens beim Bundespatentgericht ein.

2. Ausgehend von der Feststellung des Deutschen Patent- und Markenamts im Schreiben vom 3. März 2021 bestehen an der Wirksamkeit der Teilung keine Zweifel.

3. Die vorliegende Teilanmeldung betrifft die Datenverarbeitung in SIMD- Verarbeitungseinheiten („SIMD“ = „single instruction multiple data“). In der Beschreibungseinleitung der Teilanmeldung wird ausgeführt, dass SIMD- Verarbeitungseinheiten Datenelemente parallel verarbeiten können und daher besonders nützlich sind, wenn derselbe Befehl an einer großen Anzahl von Datenelementen auszuführen ist.

Beispielsweise könne eine Grafikverarbeitungseinheit (GPU) eine SIMD-Verarbeitungseinheit verwenden, um Verarbeitungsvorgänge an einer großen Anzahl von Pixeln eines computergenerierten Bilds durchzuführen (Seite 1, Zeile 6 bis 18 der Beschreibung der Teilanmeldung; alle Seiten- und Zeilenangaben in den Abschnitten II.3 und II.4 dieses Beschlusses beziehen sich auf diese Beschreibung).

Ein Verarbeitungsvorgang könne aus einer Mehrzahl von Arbeitselementen bestehen, bei deren Ausführung eine gemeinsame Sequenz von Befehlen an entsprechenden Datenelementen ausgeführt werde. Eine SIMD- Verarbeitungseinheit könne Verarbeitungsbahnen umfassen, die jeweils ausgelegt sind, einen Befehl eines Arbeitselements in mehreren Verarbeitungszyklen auszuführen. Falls ein Verarbeitungsvorgang nur teilweise belegt sei oder ungültige Arbeitselemente umfasse, blieben einige „Verarbeitungsschlitze“ - d.h. Zeitfenster, in denen jeweils ein Befehl in einer bestimmten Verarbeitungsbahn abgearbeitet werden kann - ungenutzt (Seite 1, Zeile 20 bis Seite 3, Zeile 21 sowie Figuren 1 und 2; der in Figur 1 dargestellte Verarbeitungsvorgang 100 mit 32 Arbeitselementen wird gemäß Figur 2 auf 16 Verarbeitungsbahnen in zwei Verarbeitungszyklen ausgeführt).

Moderne Grafikschnittstellen zur Anwendungsprogrammierung wie OpenGL und DirectX definierten Befehle, die mit Pixeln in einem 2x2-Pixelquad arbeiten. Es sei z.B. häufig erforderlich, die Änderungsrate einer variierenden Menge von verschiedenen Pixeln mittels eines „Gradienten“-Vorgangs zu bestimmen. Die Befehle der Grafikschnittstellen ließen die Entfernung von „leeren“ Pixelverarbeitungsschlitzen (die ungültigen Arbeitselementen entsprechen) nicht zu, wenn Arbeitselemente in Verarbeitungsvorgängen verpackt werden (Seite 3, Zeile 23 bis 29).

Eine Aufgabe wird in der Beschreibung der vorliegenden Teilanmeldung nicht ausdrücklich genannt. Jedoch lässt der Text auf Seite 7, Zeile 25 bis 28 aus Sicht des Senats auf die Aufgabenstellung schließen, eine SIMD-Verarbeitungseinheit bereitzustellen, die ausgelegt ist, die Anzahl von Verarbeitungsschlitzen zu verringern, die aufgrund ungültiger Arbeitselemente in Verarbeitungsvorgängen ungenutzt bleiben.

Als Fachmann, der mit der Lösung dieser Aufgabe betraut wird, ist ein Informatiker oder Ingenieur der Fachrichtung Elektrotechnik mit mehrjähriger Erfahrung in der Entwicklung paralleler Datenverarbeitungsarchitekturen - insbesondere für Grafikanwendungen - anzusehen.

4. Zur Lehre von Patentanspruch 1 Patentanspruch 1 sieht eine SIMD-Verarbeitungseinheit vor (Merkmal M1), d.h. eine Recheneinheit, die es gestattet, denselben Befehl gleichzeitig auf mehrere unterschiedliche Daten anzuwenden (Seite 1, Zeile 6 bis 18). Die SIMD-Verarbeitungseinheit ist ausgelegt, eine Mehrzahl von Verarbeitungsvorgängen zu verarbeiten, die jeweils Arbeitselemente bis zu einer vorbestimmten Höchstanzahl umfassen (Merkmale M2, M2a). Ein Arbeitselement kann einen Teilvorgang eines Verarbeitungsvorgangs und insbesondere eine Sequenz von Befehlen umfassen (Seite 1, Zeile 20 bis 27).

Die Arbeitselemente eines Verarbeitungsvorgangs sollen ausgelegt sein, eine „gemeinsame“ Sequenz von Befehlen an entsprechenden Datenelementen auszuführen (Merkmal M2b). Dies soll bedeuten, dass die Arbeitselemente einer Gruppe von Arbeitselementen des Verarbeitungsvorgangs dieselbe Sequenz von Befehlen umfassen, die auf entsprechende Datenelemente anzuwenden sind (Seite 1, Zeile 23 bis 27).

Ferner soll ein Verarbeitungsvorgang durch Blöcke von Arbeitselementen gebildet werden, die jeweils genau vier Arbeitselemente umfassen und sich auf ein jeweiliges Pixel-Quad beziehen, wobei jedes Pixel-Quad einen 2x2-Block von vier Pixeln umfasst (Merkmale M2c, M2d). Ein Block von Arbeitselementen stellt eine zusammenhängende Menge von Arbeitselementen dar, die in einer oder mehreren Dimensionen angeordnet sind (vgl. z.B. die Figuren 1 und 2 der Teilanmeldung). Die SIMD-Verarbeitungseinheit umfasst ferner eine Gruppe von Verarbeitungsbahnen, die ausgelegt sind, Befehle von Arbeitselementen eines bestimmten Verarbeitungsvorgangs über vier aufeinander folgende Verarbeitungszyklen auf SIMD-Weise auszuführen (Merkmal M3). Dass Befehle von Arbeitselementen „auf SIMD-Weise“ ausgeführt werden, bedeutet aus fachmännischer Sicht, dass einzelne Befehle an alle Verarbeitungsbahnen geschickt und dort in Abhängigkeit ihrer „Breite“ und der Anzahl der Verarbeitungsbahnen entweder in einem einzigen Verarbeitungszyklus oder in mehreren aufeinanderfolgenden Verarbeitungszyklen ausgeführt werden (Seite 1, Zeile 6 bis 18; siehe auch Druckschrift D2, Abschnitt 2.1, erster und zweiter Satz). Jede der Verarbeitungsbahnen der Gruppe soll ferner ausgelegt sein, Befehle aller Arbeitselemente für einen jeweiligen Block von Arbeitselementen, der sich auf ein jeweiliges Pixel-Quad bezieht, über die vier aufeinander folgenden Verarbeitungszyklen hinweg auszuführen (Merkmal M3a). Damit wird insbesondere zum Ausdruck gebracht, dass die einzelnen Pixelwerte eines Pixelquads nacheinander ausschließlich in einer einzigen Verarbeitungsbahn verarbeitet werden (im Beispiel der Figur 6 sollen die Arbeitselemente 0 bis 3, mit denen offensichtlich Berechnungen an den Pixeln eines ersten Pixelquads vorgenommen werden, ausschließlich in der ganz linken Verarbeitungsbahn ausgeführt werden, die Arbeitselemente 4 bis 7 in der zweiten Verarbeitungsbahn von links usw.). Diese spaltenweise „vertikale“ Anordnung der Blöcke von Arbeitselementen wird in der Teilanmeldung auch als „Spalte-zuerst-Ordnung“ bezeichnet (Seite 14, Zeile 21 bis Seite 15, Zeile 13). Da die Befehle der Arbeitselemente gemäß Merkmal M3 über vier aufeinanderfolgende Verarbeitungszyklen auf SIMD-Weise ausgeführt werden sollen, implizieren die Merkmale M3 und M3a im Falle einer „Spalte-zuerst- Ordnung“ der Arbeitselemente, dass auf all diejenigen Pixelquads, deren zugehörige Arbeitselemente jeweils in einer von mehreren benachbarten „Spalten“ eines Verarbeitungsvorgangs liegen, dieselben Befehle angewendet werden.

Ferner soll die SIMD-Verarbeitungseinheit eine mit der Gruppe von Verarbeitungsbahnen gekoppelte „Logik“ - also logische Schaltungen - umfassen, die ausgelegt sind, die Gruppe von Verarbeitungsbahnen zu veranlassen, die Ausführung eines gegebenen Verarbeitungszyklus zu überspringen, wenn keine gültigen Arbeitselemente für die Ausführung in der Gruppe von Verarbeitungsbahnen in diesem Verarbeitungszyklus eingeplant sind (Merkmal M4). Damit wird zum Ausdruck gebracht, dass ein Verarbeitungszyklus übergangen werden kann, in dem ausschließlich ungültige Arbeitselemente ausgeführt werden sollen. Dadurch verringert sich die Anzahl ungenutzter „Verarbeitungsschlitze“ (Seite 20, Zeile 4 bis 14), d.h. die Anzahl von Zeitfenstern, in denen keine Befehle zur Ausführung vorgesehen sind.

Ein Arbeitselement ist dann ungültig, wenn es sich auf ein ungültiges Datenelement bzw. einen ungültigen Pixelwert bezieht (Seite 4, Zeile 14 bis 15). Ein Pixelwert eines Pixelquads wiederum kann ungültig sein, wenn an dem Pixelwert keine oder nur sehr wenige Befehle auszuführen sind (Seite 10, Zeile 10 bis 16; Seite 24, Zeile 12 bis 23). Aus Sicht des Fachmanns stellen auch maskierte oder ausgeblendete Arbeitselemente, deren Ausführungsergebnisse nicht weiterverwendet werden, ungültige Arbeitselemente im Sinne von Merkmal M4 dar (Seite 28, Zeile 4 bis 15).

5. Der Patentanspruch 1 ist so klar und deutlich gefasst, dass sein Schutzbereich hinreichend sicher vorhersehbar ist. Außerdem ist die damit beanspruchte Lehre in der Anmeldung so deutlich und vollständig offenbart, dass ein Fachmann sie ausführen kann.

6. Der Patentanspruch 1 ist nicht gewährbar, da sein Gegenstand nicht auf einer erfinderischen Tätigkeit beruht.

6.1 Für die Beurteilung der beanspruchten Lehre sind die Druckschriften G9 und D2 von besonderer Bedeutung.

6.1.1 Die Druckschrift G9 ist ein Teil einer einführenden Textreihe zur parallelen Datenverarbeitung in einer Grafikpipeline (Seite 1, erster Absatz sowie zweiter Absatz, erster Satz), in dem die Parallelisierung von Rasterungs- und Shadingoperationen (vgl. Abschnitte „Going wide during rasterization“, „You need to go wider!“), die Interpolation von Pixelattributen (vgl. Abschnitte „Attribute interpolation“, „“Centroid“ interpolation is tricky“) und weitere Teilaspekte des Shadings (vgl. Abschnitt „The actual shader body“) diskutiert werden.

Dieser Druckschrift ist insbesondere zu entnehmen, dass bei der Grafikverarbeitungsarchitektur „Fermi“ der Firma NVidia mehrere Warps, die aus maximal 32 Threads bestehen (und somit im Sinne der Merkmale M2 und M2a als eine Mehrzahl von Verarbeitungsvorgängen angesehen werden können, die jeweils eine Höchstanzahl von 32 Arbeitselementen umfassen), an die Shader-Einheiten einer GPU geschickt werden (Abschnitt „You need to go wider!“ - „for NVidia, the unit of dispatch to shader units is 32 threads, which they call a “Warp“.“). Für den Fachmann ist selbstverständlich, dass die Anzahl der Threads pro Warp ein bei der Definition einer Grafikverarbeitungsarchitektur frei wählbarer Designparameter ist, so dass die 32 Threads z.B. auch auf 2, 4 oder 8 einzelne Warps verteilt werden können.

Die Pixelwerte, die bei der Ausführung der Warps verarbeitet werden, sind in Pixelquads angeordnet, d.h. in 2x2-Blöcken (vgl. Figur auf Seite 3), wobei jedes Pixel als ein Thread behandelt werden kann (Abschnitt „You need to go wider!“, erster Absatz - „Each quad has 4 pixels (each of which in turn can be handled as one thread)“). Alle 32 Threads eines Warps führen auf den Pixelwerten von jeweils acht aufeinanderfolgenden Pixelquads gleichzeitig dieselben Befehle aus (vgl. Seite 5, letzter Absatz - „work on all elements of each batch usually proceeds in lockstep. All “threads“ run the same code, at the same time“ i. V. m. Seite 5, vorletzter Absatz- „multiple batches (or „Warps“ on NVidia hardware […])“ sowie Abschnitt „You need to go wider!“, erster Absatz - „we need to grab 8 incoming quads […] before we can send off a batch“; vgl. Merkmal M2b). Daher stellt die in Druckschrift G9 beschriebene GPU eine SIMD-Verarbeitungseinheit dar (Merkmal M1), die ausgelegt ist, eine Mehrzahl von Verarbeitungsvorgängen entsprechend den Merkmalen M2 bis M2b zu verarbeiten. Da ein Warp aus einer durch 4 teilbaren Anzahl von Threads besteht und sich somit in Viererblöcke von Arbeitselementen einteilen lässt, liegt auch Merkmal M2c vor.

Die Druckschrift G9 zeigt jedoch nicht ausdrücklich, dass sich die Arbeitselemente eines solchen Viererblocks gemäß Merkmal M2d auf ein jeweiliges Pixelquad beziehen, und offenbart auch keines der Merkmale M3, M3a und M4, die Einzelheiten der Verarbeitung der Viererblöcke in einer Gruppe von Verarbeitungsbahnen betreffen.

6.1.2 Die Druckschrift D2 befasst sich mit Methoden zur Maximierung der Ressourcenauslastung in Grafikverarbeitungseinheiten, die nach dem SIMD-Prinzip arbeiten und aus mehreren Streaming-Multiprozessoren mit parallelen Verarbeitungsbahnen („execution lanes“, „SIMD lanes“) bestehen. In diesen Bahnen werden Threads (d.h. parallelisierbare Befehlsfolgen) ausgeführt, die ein Programmierer zu sog. kooperativen Threadfeldern („CTAs“ = „cooperative thread arrays“) gruppiert hat, die ihrerseits aus mehreren „Warps“ bestehen - d.h. aus kleineren Threadgruppen, die denselben Code umfassen (vgl. Druckschriftentitel i. V. m. Abschnitt 2.1). Die Anzahl gleichzeitig ausführbarer Threads (die „SIMDwidth“, vgl. Abschnitt 3.3, Gleichung (1) mit darunterstehendem Text - „SIMDwidth designates the width of the SIMD pipeline“) hängt dabei von der verwendeten Grafikarchitektur ab; in den Figuren 1, 2, 5 und 7 sind beispielsweise vier Verarbeitungsbahnen gezeigt.

Damit sind in der Lehre der Druckschrift D2 bereits die Merkmale M1, M2, M2a und M2b verwirklicht. Denn ein nach dem SIMD-Prinzip arbeitender Streaming- Multiprozessor ist eine SIMD-Verarbeitungseinheit im Sinne von Merkmal M1. Die Verarbeitungsbahnen eines solchen Multiprozessors bilden eine Gruppe und sind ausgelegt, die Befehle der Threads mehrerer CTAs - d.h. die Befehle der Arbeitselemente mehrerer Verarbeitungsvorgänge - auszuführen (Merkmal M2). Die Anzahl von Threads pro CTA ist ein Anwendungsparameter und stellt ebenso wie die Anzahl von Threads pro Warp eine Höchstanzahl von Arbeitselementen dar (vgl. Abschnitt 2.1, vorletzter Satz; Merkmal M2a). Da ein Streaming-Multiprozessor eine SIMD-Verarbeitungseinheit ist, wird ein CTA über mehrere Verarbeitungsbahnen hinweg in mehreren Verarbeitungszyklen ausgeführt, so dass jede Verarbeitungsbahn eine Sequenz von Befehlen (selbstverständlich an entsprechenden Datenelementen) ausführt, die sie mit den anderen Bahnen gemeinsam hat (Merkmal M2b).

Ferner ist den einleitenden Abschnitten der Druckschrift D2 zu entnehmen, dass ein sogenanntes SIMT-Ausführungsmodell („SIMT“ = „single-instruction multiplethread“) es ermöglicht, in Grafikprozessoren („GPUs“) effiziente SIMD-Pipelines zu verwenden und gleichzeitig in den ausgeführten Threads beliebige Kontrollflüsse vorzusehen. Die GPU-Hardware würde auch bedingte Verzweigungen unterstützen, so dass jede SIMD-Verarbeitungsbahn ihren eigenen logischen Thread ausführen könne (vgl. Abschnitt 1, erster Absatz sowie Abschnitt 2.1 und Abschnitt 2.2, erster Satz).

Die unabhängige Verarbeitung von Verzweigungen würde durch hardwaregenerierte Bitmasken ermöglicht, welche kennzeichneten, ob ein Thread aktiv sei oder nicht. Gemäß dem SIMT-Ausführungsmodell würde die Ausführung einer divergenten Verzweigung teilweise serialisiert, da der „wahre“ und der „falsche“ Pfad nacheinander ausgeführt und die Threads auf dem jeweils nicht aktiven Pfad maskiert werden müssten. Bei jeder Divergenz würden Threads maskiert und nicht ausgeführt, so dass sich die Anzahl aktiver Threads und damit die Auslastung der SIMD-Verarbeitungsbahnen weiter reduziere und die Anzahl „vergeudeter Verarbeitungsschlitze“ („wasted execution slots“) erhöhe (vgl. Abschnitt 2.2 i. V. m. Figur 1; Abschnitt 2.3, erster Satz; s. auch Abstract und Abschnitt 1, erster Absatz).

Um die Auslastung der SIMD-Verarbeitungsbahnen zu verbessern, beschreibt die Druckschrift D2 u.a. die Methode der Threadblock-Verdichtung („Thread block compaction“ = „TBC“; vgl. Abschnitt 2.3 sowie Figuren 1 und 2). Dabei werden Threads innerhalb eines CTA unter Beibehaltung ihrer Verarbeitungsbahn (ihrer „home lane“) umgeordnet (vgl. Abschnitt 2.3 i. V. m. Figuren 1 und 2 - die Warps „- - - 7“ und „- - A - “ des CTA B und die Warps „4 5 6 -“ und „8 9 - B“ des CTA C werden umgeordnet, so dass die Warps „- - A 7“ und „- - - -“ bzw. „4 5 6 B“ und „8 9 - -“ gebildet werden). Falls nach einer solchen Verdichtung ein Warp entsteht, der ausschließlich maskierte Threads - d.h. ungültige Arbeitselemente im Sinne von Merkmal M4 - enthält, erhöht sich die Auslastung der SIMD-Verarbeitungsbahnen, da der zur Ausführung dieses Warps vorgesehene Verarbeitungszyklus übergangen wird (vgl. Figur 1 - ohne Verdichtung werden die Warps „- - - 7“ und „- - A -“ des CTA B in zwei Verarbeitungszyklen ausgeführt, nach der Verdichtung genügt stattdessen die Ausführung des verdichteten Warps „- - A 7“ in einem einzigen Verarbeitungszyklus). Der Druckschrift D2 ist ebenfalls zu entnehmen, dass Warps übergangen werden, die bereits vor einer Threadblock-Verdichtung ausschließlich aus ungültigen Arbeitselementen bestehen; so ist der in Figur 1 (a) gezeigte Warp „- - - -“ des CTA B bereits in dem in Figur 1 (b) gezeigten Ausführungsablauf nicht mehr vorhanden.

Gemäß Druckschrift D2 können die Threads vor der Verdichtung im Rahmen einer „SIMD lane permutation (SLP)“ über die Verarbeitungsbahnen hinweg permutiert werden (vgl. Abschnitte 4.1 und 4.3 i. V. mit den Figuren 7 bis 9 sowie Abschnitt 4.4 - „Implementation of SLP […] Enabling SLP on top of TBC […]“). Durch diese zusätzliche Maßnahme können in vielen Fällen noch mehr Verarbeitungszyklen übergangen werden, so dass eine noch höhere Auslastung der Verarbeitungsbahnen erzielt wird (vgl. Figur 14).

Es ist selbstverständlich, dass das Übergehen der Warps durch logische Schaltungen der Streaming-Multiprozessoren gesteuert werden muss, die mit den einzelnen Verarbeitungsbahnen gekoppelt sind. Daher verwirklicht die Lehre der Druckschrift D2 auch das Merkmal M4. Die in Figur 7 (a) im Zusammenhang mit einer Threadblock-Verdichtung („TBC“) gezeigten quadratischen Blöcke mit 16 Threads entsprechen jeweils einem CTA, dessen Befehle in vier Verarbeitungsbahnen in vier Verarbeitungszyklen abgearbeitet werden. Ein solcher CTA besteht aus vier „Spalten“, die jeweils genau vier Threads enthalten und als „Blöcke von Arbeitselementen“ im Sinne von Patentanspruch 1 angesehen werden können (z.B. umfasst die ganz linke Spalte des CTA, der dem links in Figur 7 (a) gezeigten quadratischen Block entspricht, die Threads „0 4 8 C“; die zweite Spalte von links die Threads „- - - -“ usw.; Merkmal 2c). Die vier Verarbeitungsbahnen, die gemäß dem in Figur 7 (a) gezeigten Beispiel verwendet werden, sind dazu ausgelegt, die Befehle der 16 Threads über vier aufeinanderfolgende Verarbeitungszyklen auf SIMD-Weise auszuführen, indem einzelne Befehle an alle vier Verarbeitungsbahnen geschickt und dort ausgeführt werden (vgl. Abschnitt 2.1 - „streaming multiprocessors (SM) […] each SM contains a number of parallel execution lanes […] that operate in SIMD fashion“; Merkmal M3).

Jede einzelne dieser vier Verarbeitungsbahnen ist selbstverständlich ausgelegt, die Befehle aller 16 Threads - und damit die Befehle der vier Thread-„Spalten“ - über die vier Verarbeitungszyklen hinweg auszuführen (Teilmerkmal von Merkmal M3a). Die Druckschrift D2 befasst sich allerdings nicht speziell mit der Verarbeitung von Pixelquads und offenbart daher nicht ausdrücklich, dass sich vier Arbeitselemente einer „Spalte“ von Arbeitselementen jeweils auf ein Pixel-Quad beziehen, das einen 2x2-Block von vier Pixeln umfasst (Merkmal M2d sowie verbleibendes Teilmerkmal „[…] Block von Arbeitselementen, der sich auf ein jeweiliges Pixel- Quad bezieht“ von Merkmal M3a).

6.2 Der Gegenstand von Patentanspruch 1 ist durch den aufgezeigten Stand der Technik nahegelegt. In Druckschrift G9 ist beschrieben, dass einige der Pixel eines Pixelquads, die an die Shader-Einheiten der GPU geschickt werden, unsichtbar sind, so dass an ihnen kein Shading durchgeführt werden muss (Seite 2, letzter Absatz und Seite 3, erster Absatz i. V. m. der Figur auf Seite 3 - die Werte der hellgrau hinterlegten unsichtbaren Pixel werden weder für ein Shading noch für Gradientenberechnungen verwendet, die Werte der mittelgrau hinterlegten, ebenfalls unsichtbaren Helferpixel („helper pixels“) nur für Gradientenberechnungen, und die Werte der dunkelgrau hinterlegten sichtbaren Pixel sowohl für ein Shading als auch für Gradientenberechnungen). Die unsichtbaren Pixel sind zwar maskiert, jedoch wird auch an ihnen zwangsläufig ein Shading durchgeführt (vgl. Seite 2, zweiter vollständiger Absatz - „all pixels in a quad, even the masked ones, get shaded“).

Die Werte der unsichtbaren Pixel stellen „ungültige“ Pixelwerte im Sinne des Patentanspruchs 1 dar, da an ihnen selbstverständlich weniger Befehle als an den Werten der sichtbaren Pixel auszuführen sind. Dementsprechend sind die maskierten Threads, die der Verarbeitung der Werte der unsichtbaren Pixel dienen, keine gültigen Arbeitselemente im Sinne von Patentanspruch 1. Gemäß Druckschrift G9 werden 25%-75% der für das Shading eines Pixelquads aufgewendeten Arbeit vergeudet, wenn viele kleine Dreiecke zu rendern sind, da auch für die unsichtbaren Helferpixel ein Shading durchgeführt wird (vgl. Seite 2 - „between 25-75% of the shading work for quads generated for triangle edges is wasted“; Seite 3 - „wasted shading work on quads“; je nachdem ob ein Pixelquad ein, zwei oder drei Helferpixel besitzt, sind 25%, 50% oder 75% der Shading-Arbeit überflüssig). Zum Zeitpunkt der Abfassung der Druckschrift G9 erlaubten weder Programmierschnittstellen noch die Hardware eine Vereinigung von Pixelquads (Seite 3, erster Absatz, vorletzter Satz).

Der Fachmann hatte somit Veranlassung, im Stand der Technik nach Verfahren zu suchen, die es erlauben, ein Pixel-Shading zu beschleunigen, wenn eine große Zahl von Pixeln - und damit auch eine große Zahl der Threads, die zu diesen Pixeln gehören - ungültig ist.

Hierbei konnte er auf die Druckschrift D2 stoßen, die aufzeigt, wie Warps beschleunigt verarbeitet werden können, die ungültige Threads aufweisen (s.o., Abschnitt II.6.1.2). Es bot sich daher für den Fachmann an, die in Druckschrift G9 beschriebenen Pixelquads gemäß der in der Druckschrift D2 beschriebenen Lehre zu verarbeiten, d.h. Streaming-Multiprozessoren mit insbesondere vier parallelen Verarbeitungsbahnen vorzusehen, jeweils 16 Threads auf einen CTA mit vier Warps zu verteilen und gemäß der Methode der Threadblock-Verdichtung mit der Zielsetzung zu komprimieren, dass für einen Verarbeitungszyklus ausschließlich ungültige Arbeitselemente vorgesehen sind, deren Ausführung übergangen werden kann.

Von dieser kombinierten Lehre unterscheidet sich der Gegenstand von Patentanspruch 1 nur durch das Merkmal M2d und das verbleibende Teilmerkmal von Merkmal M3a. Die Druckschriften D2 und G9 überlassen es dem Fachmann, die erforderliche Anfangsverteilung der einzelnen Threads auf den CTA - und damit auch die Anfangsverteilung der Pixelwerte der Pixelquads auf die Verarbeitungsbahnen - festzulegen.

In diesem Zusammenhang war dem Fachmann hinlänglich bekannt, dass sich die Leistungsfähigkeit von Grafikprogrammen, die ein Pixel-Shading durchführen, erhöhen lässt, indem Grafikdaten mit „vertikalen“ Methoden verarbeitet werden. Diese Methoden sind dadurch charakterisiert, dass Teilabschnitte der Grafikdaten - also gerade auch Pixelquads - jeweils in einem einzigen von mehreren parallelen „vertikalen“ Kanälen verarbeitet werden (vgl. D11, Absatz [0044] i. V. m. Absatz [0022] und [0023], jeweils vorletzter Satz).

Daher lag es für den Fachmann auf der Hand, die Threads so auf den CTA zu verteilen, dass jeweils vier auf dasselbe Pixelquad bezogene Threads „vertikal“ in einer einzigen Spalte des CTA angeordnet sind, so dass sie einen Viererblock von Arbeitselementen bilden, bei dessen Ausführung die Pixelwerte des Pixelquads nach einer Threadblock-Verdichtung in einer einzigen Verarbeitungsbahn - je nach Anzahl ungültiger Arbeitselemente in dem CTA in bis zu vier aufeinanderfolgenden Verarbeitungszyklen - verarbeitet werden (vgl. Abschnitt II.6.1.2).

Auf diese Weise konnte der Fachmann somit auch zum Merkmal M2d sowie zum verbleibenden Teilmerkmal von Merkmal M3a gelangen, ohne erfinderisch tätig zu werden.

6.3 Die Anmelderin wendet sinngemäß ein, der Satz “This gives you a very cheap way to get derivatives at the cost of always having to shade groups of 2x2 pixels at once” in Druckschrift G9 lenke den Fachmann gerade von einer vertikalen Anordnung der auf die Pixel eines 2x2-Pixelquads bezogenen Arbeitselemente weg in Richtung einer horizontalen Anordnung. Zudem würden in Druckschrift D2 die Threads über die Verarbeitungsbahnen hinweg permutiert und damit gerade nicht in derselben Verarbeitungsbahn ausgeführt, wie es hingegen gemäß Patentanspruch 1 der Fall sei. Außerdem beträfen die in der Druckschrift D11 beschriebenen „vertikalen“ Verfahren im Gegensatz zu Merkmal M3 keine Verarbeitung „auf SIMD-Weise“, was insbesondere aus den Absätzen [0021] und [0028] der Druckschrift D11 hervorgehe.

Diese Argumente überzeugen allerdings nicht. So differenziert der von der Anmelderin zitierte Satz in Druckschrift G9 nicht danach, ob Gruppen von jeweils vier Threads, die sich auf die Pixel eines 2x2-Quads beziehen, vertikal oder horizontal verarbeitet werden. Denn auch wenn diese Gruppen jeweils in einzelnen vertikalen Spalten eines Verarbeitungsvorgangs liegen, werden sie zeitgleich (“at once”) über insgesamt vier Verarbeitungszyklen hinweg verarbeitet.

Weiterhin trifft es zwar zu, dass Threads, die zunächst in einer Spalte vertikal angeordnet sind, nicht von derselben Verarbeitungsbahn abgearbeitet werden, wenn sie über die Verarbeitungsbahnen hinweg “horizontal” permutiert worden sind. Die aus der Druckschrift D2 bekannte Threadblock-Verdichtung erfordert jedoch keine solchen Permutationen, so dass Threads, die gemäß einer bestimmten Anfangsverteilung in einer Spalte angeordnet worden sind, aufgrund der Verdichtung nur innerhalb dieser Spalte - also nur “vertikal” - umgeordnet werden. Da der Druckschrift D11 die allgemeine Lehre zu entnehmen ist, dass bei einer „vertikalen“ Verarbeitung beliebige Befehle auf beliebige Daten angewendet werden können (vgl. die oben in Abschnitt 6.2 zitierten Textstellen der Druckschrift D11 und ferner auch die von der Anmelderin genannten Absätze [0021] („SIMD or other instructions“) und [0028] („data (e.g., SIMD data) is pre-organized […] when instructions and associated data are such that demand processing in the vertical mode of operation […]“)), können Befehle, die in demselben Kanal „vertikal“ verarbeitet werden, auch gemäß Druckschrift D11 zu verschiedenen SIMD- Befehlen gehören, die nacheinander ausgeführt werden. Die Druckschrift D11 führt den Fachmann also nicht notwendigerweise auf eine Art der SIMD- Instruktionsverarbeitung, die sich von der in der Druckschrift D2 beschriebenen Herangehensweise unterscheidet.

Da auch nach einer Threadblock-Verdichtung über die vier Spalten des CTA hinweg in jedem Verarbeitungszyklus auf den Pixelwerten vier aufeinanderfolgender „vertikal“ verarbeiteter Pixelquads dieselben Befehle ausgeführt werden (vgl. Druckschrift G9, Seite 5, letzter Absatz), können die Streaming-Multiprozessoren diese Befehle auch wie in Druckschrift D2 beschrieben (vgl. Abschnitt II.6.1.2, drittletzter Absatz) „auf SIMD-Weise“ ausführen.

Im Übrigen geht es dem Fachmann im vorliegenden Fall auch nicht darum, die SIMD-Arbeitsweise der Streaming-Multiprozessoren der Druckschrift D2 in technischer Hinsicht abzuändern, sondern es ist ihm vielmehr nur an einer zweckmäßigen Anfangsverteilung der Threads innerhalb des CTA gelegen. Die Druckschrift D11 belegt in diesem Zusammenhang lediglich das fachmännische Wissen, dass es bei einem Pixel-Shading vorteilhaft sein kann, zusammenhängende Datenabschnitte (hier: die Pixelwerte eines Pixelquads) in einer einzigen Verarbeitungsbahn zu verarbeiten, da sich dadurch die Leistungsfähigkeit einer Grafikpipeline erhöht und bei bestimmten Rechenoperationen (etwa bei Gradientenberechnungen, vgl. Absatz [0043] der Druckschrift D11) die Pixelwerte eines Pixelquads nicht zwischen verschiedenen Verarbeitungsbahnen ausgetauscht werden müssen.

7. Da über einen Antrag jeweils nur einheitlich entschieden werden kann, fallen mit dem Patentanspruch 1 auch die übrigen Patentansprüche 2 bis 9 (BGH GRUR 1997, 120 - Elektrisches Speicherheizgerät).

8. Eine Zurückverweisung der Sache an das Deutsche Patent- und Markenamt zur Prüfung der Teilanmeldung, wie von der Anmelderin hilfsweise beantragt, kam aus verfahrensökonomischen Gründen nicht in Betracht. Das Bundespatentgericht hat zwar nach § 79 Abs. 3 PatG die Möglichkeit, die Sache nach seinem pflichtgemäßen Ermessen an Deutsche Patent- und Markenamt zurückzuverweisen. Dem Senat war allerdings eine eigene Entscheidung über die Teilanmeldung möglich, weil die insoweit relevanten Fragen überwiegend bereits im Verfahren über die Beschwerde gegen die Zurückweisung der Stammanmeldung hinreichend aufbereitet waren und im Übrigen mit vertretbarem Aufwand geklärt werden konnten (vgl. BGH, Abstandsberechnungsverfahren, a.a.O., Rdnr. 11 und Rdnr. 13). Die Sache war somit entscheidungsreif und eine Zurückverweisung nicht veranlasst.

Rechtsmittelbelehrung

Gegen diesen Beschluss steht den am Beschwerdeverfahren Beteiligten das Rechtsmittel der Rechtsbeschwerde zu. Da der Senat die Rechtsbeschwerde nicht zugelassen hat, ist sie nur statthaft, wenn gerügt wird, dass das beschließende Gericht nicht vorschriftsmäßig besetzt war, 1. bei dem Beschluss ein Richter mitgewirkt hat, der von der Ausübung des Richteramtes kraft Gesetzes ausgeschlossen oder wegen Besorgnis der Befangenheit mit Erfolg abgelehnt war, 2. einem Beteiligten das rechtliche Gehör versagt war, 3. ein Beteiligter im Verfahren nicht nach Vorschrift des Gesetzes vertreten war, sofern er nicht der Führung des Verfahrens ausdrücklich oder stillschweigend zugestimmt hat, 4. der Beschluss aufgrund einer mündlichen Verhandlung ergangen ist, bei der die Vorschriften über die Öffentlichkeit des Verfahrens verletzt worden sind, oder 5. der Beschluss nicht mit Gründen versehen ist.

Die Rechtsbeschwerde ist innerhalb eines Monats nach Zustellung des Beschlusses beim Bundesgerichtshof, Herrenstr. 45 a, 76133 Karlsruhe, durch einen beim Bundesgerichtshof zugelassenen Rechtsanwalt als Bevollmächtigten einzulegen. Dr. Morawek Dr. Forkel Akintche Dr. Städele Fi