Rechtsprechung / BPatG / 17. Senat / 2020
BPatG Beschluss vom 04.08.2020 – 17 W (pat) 2/20
17. Senat · ECLI:DE:BPatG:2020:040820B17Wpat2.20.0
Gewerblicher RechtsschutzBundVolltext
BUNDESPATENTGERICHT
_______________________
(Aktenzeichen) Verkündet am 04. August 2020 …
B E S C H L U S S
In der Beschwerdesache
betreffend die Patentanmeldung 10 2013 205 886.1 …
hat der 17. Senat (Technischer Beschwerdesenat) des Bundespatentgerichts auf die mündliche Verhandlung vom 04. August 2020 unter Mitwirkung des Vorsitzenden Richters Dipl.-Phys. Dr. Morawek, des Richters Dipl.-Phys. Dr. Forkel, des Richters Dipl.-Ing. Hoffmann und der Richterin Akintche
ECLI:DE:BPatG:2020:040820B17Wpat2.20.0
beschlossen:
Die Beschwerde wird zurückgewiesen.
G r ü n d e
I. Die vorliegende Patentanmeldung wurde am 03. April 2013 beim Deutschen Patent- und Markenamt in englischer Sprache eingereicht. Sie nimmt eine US-Priorität (US 13/440,945) vom 05. April 2012 in Anspruch und trägt in der deutschen Übersetzung die Bezeichnung „Dynamische Bankmodus-Adressierung für Speicherzugriff“.
Die Anmeldung wurde von der Prüfungsstelle für Klasse G06F des Deutschen Patent- und Markenamtes mit Beschluss vom 10. Januar 2017 zurückgewiesen. Zur Begründung führt die Prüfungsstelle sinngemäß aus, dass der Gegenstand des jeweiligen Anspruchs 1 nach Haupt- und Hilfsantrag nicht neu sei.
Gegen diesen Beschluss ist die am 13. Februar 2017 eingegangene Beschwerde gerichtet. Die Anmelderin beantragt, den Beschluss der Prüfungsstelle aufzuheben und das nachgesuchte Patent auf der Grundlage folgender Unterlagen zu erteilen:
Patentansprüche 1 bis 10, eingereicht am 24. Juli 2020, Beschreibung Seiten 1 bis 44 und 9 Blatt Zeichnungen mit Figuren 1 bis 5, jeweils vom 03. Juli 2013. Der nunmehr geltende Patentanspruch 1, hier mit einer möglichen Gliederung versehen, lautet:
M1 M2 Ein Verarbeitungssubsystem aufweisend:
eine Adressenerzeugungseinheit, die konfiguriert ist zum:
M2.1 Empfangen von mehreren Speicherzugriffsinstruktionen mit einer ersten Speicherzugriffsinstruktion, die eine individuelle Speicheradresse spezifiziert, M2.2 wobei ein Speicherbankmodus für jede der mehreren Speicherzugriffsinstruktionen spezifiziert wird; M2.3 Empfangen eines Speicherbankmodus für die erste Speicherzugriffsinstruktion, der die Bitbreite pro Speicherbank eines Multibank-Speichers spezifiziert, M2.4 wobei der Speicherbankmodus zu einem ersten Mapping einer Speicheradresse zu einer Speicherbank führt, wenn der Speicherbankmodus ein erster Speicherbankmodus ist, und der Speicherbankmodus zu einem zweiten Mapping einer Speicheradresse zu einer Speicherbank führt, das sich von dem ersten Mapping unterscheidet, wenn der Speicherbankmodus ein zweiter Speicherbankmodus ist; und M2.5 dynamischen Mappens der individuellen Speicheradresse basierend auf dem Speicherbankmodus, um eine gemappte individuelle Speicheradresse zu erzeugen; und M3 eine Laden/Speichern-Einheit, M3.1 die zwischen der Adressenerzeugungseinheit und dem Multibank- Speicher gekoppelt ist und konfiguriert ist M3.2 zum Senden einer Leseanforderung oder einer Schreibeanforderung an den Multibank-Speicher, um die erste Speicherzugriffsinstruktion auszuführen.
Zu den weiteren Ansprüchen 2 bis 10 wird auf die Akte verwiesen. Im Verfahren wurden folgende Druckschriften genannt:
D1: DE 10 2009 012 409 A1, D2: US 6 889 304 B2 sowie D3: US 2010/0076941 A1. Zu den Einzelheiten wird auf die Akte verwiesen.
1. Die vorliegende Anmeldung bezieht sich generell auf Parallelverarbeitung und spezifischer auf eine parallele Architektur, die dynamisches Mappen von Speicherbankadressen für Zugriffe auf Multibank-Speicher unterstützt (vgl. Offenlegungsschrift, Absatz [0001]). Gemäß der Anmeldung (vgl. Offenlegungsschrift, Absätze [0002] und [0003]) seien in einer einzelne-Instruktions-, mehrfache-Threads-(SIMT)-Verarbeitungsumgebung (engl. „single-instruction, multiple-thread (SIMT) processing environment”) die Threads in Gruppen bestehend aus P parallelen Threads organisiert. Diese würden Warps genannt und führten das gleiche Programm aus. Obwohl die P Threads einer Threadgruppe jede Instruktion des Programmes parallel ausführten, führe jeder Thread einer Threadgruppe unter Verwendung seiner eigenen Daten und Register die Instruktion unabhängig aus. Jeder Thread in der Threadgruppe sei dazu konfiguriert, auf einen Multibank-Speicher zuzugreifen. Dieser Zugriff erfolge unter Verwendung eines festen Mappings von Adressen pro Thread (engl. „per-thread adresses”) auf die Speicherbänke des Multibank-Speichers. Wenn mehrere Threads auf zwei oder mehr Stellen in der gleichen Speicherbank zugreifen müssten, als innerhalb eines einzigen Taktzyklus zugegriffen werden könnten, dann liege ein Speicherbankkonflikt vor.
Anwendungsprogramme seien typischerweise so geschrieben, dass Speicherbankkonflikte vermieden werden, wenn die parallelen Threads einer Threadgruppe den Multibank-Speicher ausliest und beschreibt, so dass Daten für alle der parallelen Threads in der Threadgruppe in einem einzigen Taktzyklus gelesen oder geschrieben werden. Ein Programm könne zum Beispiel so geschrieben werden, dass von einer Threadgruppe auf entweder eine Zeile oder eine Säule von einem Array von Daten zugegriffen wird, ohne dass ein Speicherbankkonflikt auftritt. Wenn Speicherbankkonflikte aufträten, müssten die Zugriffe für Adressen, die auf die gleiche Speicherbank gemappt sind, in separaten Taktzyklen durchgeführt werden, wobei die Performance reduziert werde.
Vor diesem Hintergrund ist es die Aufgabe der Anmeldung ein Verfahren zur Vermeidung von Speicherbankkonflikten anzugeben, wenn parallele Threads einer Threadgruppe auf einen Multibank-Speicher zugreifen (vgl. Offenlegungsschrift, Absatz [0004]). Zur Lösung dieser Aufgabe schlägt der Patentanspruch 1 ein Verarbeitungssubsystem vor (Merkmal M1), das eine Adressenerzeugungseinheit umfasst (Merkmal M2). Das Verarbeitungssubsystem ermöglicht den Zugriff auf einen Multibankspeicher (vgl. Offenlegungsschrift, Absatz [0008]). Die Adressenerzeugungseinheit ermöglicht die Ausführung von sogenannten Adressenberechnungstasks (vgl. Offenlegungsschrift, Absatz [0078]). Die Adressenerzeugungseinheit empfängt mehrere Speicherzugriffsinstruktionen, die eine individuelle Speicheradresse spezifizieren (Merkmal M2.1), mit denen ein Speicherbankmodus für jede der mehreren Speicherzugriffsinstruktionen spezifiziert wird (Merkmal M2.2). Außerdem empfängt die Adressenerzeugungseinheit einen Speicherbankmodus für die erste Speicherzugriffsinstruktion, der die Bitbreite pro Speicherbank eines Multibank-Speichers spezifiziert (Merkmal M2.3). Damit werden der Adressenerzeugungseinheit Anweisungen bzw. Parameter übergeben, die die Grundlage für die Berechnung der Speicheradressen bilden. Der Wortlaut dieser Merkmale lässt dabei offen, ob die individuelle Speicheradresse, der Speicherbankmodus sowie die Bitbreite zusammen mit der Speicherzugriffsinstruktion übergeben werden, oder diese Daten in der Speicherzugriffsinformation bereits enthalten sind und aus dieser erst berechnet werden müssen. Merkmal M2.4 sieht zwei unterschiedliche Speicherbankmodi (erster und zweiter Speicherbankmodus) vor, die jeweils zu einem anderen Mapping einer Speicheradresse (erstes bzw. zweites Mapping einer Speicheradresse) zu einer Speicherbank führen. Basierend auf dem Speicherbankmodus erfolgt ein dynamisches Mappen der individuellen Speicheradresse, um eine gemappte individuelle Speicheradresse zu erzeugen (Merkmal M2.5). Somit wird in Abhängigkeit vom jeweiligen Speicherbankmodus die Speicheradresse dynamisch erzeugt, um bspw.
Zugriffe auf den Speicher von Programmen zu ermöglichen, die für unterschiedliche Speicherbankbreiten geschrieben sind. Das Verarbeitungssubsystem beinhaltet weiterhin eine Laden/Speichern-Einheit (Merkmal M3), die zwischen der Adressenerzeugungseinheit und dem Multibank-Speicher angeordnet ist (Merkmal M3.1) und die das Ausführen einer Speicherzugriffsinstruktion bewirkt, d.h. das Senden einer Lese- oder Schreibanforderung (Merkmal M3.2). Mit dieser Einheit wird demnach der eigentliche Speichervorgang ausgeführt wie bspw. ein Lese- oder Schreibzugriff auf einen Speicher.
Als Fachmann, der mit der Aufgabe betraut wird, ein Verfahren zur Vermeidung von Speicherbankkonflikten beim Zugriff paralleler Threads einer Threadgruppe auf einen Multibank-Speicher zu verbessern, ist ein Diplom-Ingenieur der Fachrichtung Elektrotechnik oder ein Informatiker mit mehrjähriger Berufserfahrung im Bereich der Entwicklung und Implementierung von Speichersteuerungen (Memory-Controllern) anzusehen.
2. Der Gegenstand des Patentanspruchs 1 ist nicht neu. Als im Stand der Technik besonders relevant sieht der Senat die Druckschrift D2 an. Aus der D2 (Abstract, Anspruch 1, Fig.3) ist ein System für die Speicherverwaltung zu entnehmen. Das System kann dabei bspw. als eigenes Teilsystem bzw. Verarbeitungssubsystem auf einem Motherboard (Sp.8 Z.13-19) implementiert sein (Merkmal M1).
Das System erhält den Befehl, einen Speicherzugriff bzw. mehrere Speicherzugriffe auszuführen, wobei der Befehl bzw. die Befehle eine Speicheradresse umfasst (Sp.2 Z.29-58, Sp.4 Z.38-66, Fig.3). Wird der Befehl ausgeführt, so werden Daten in den Speicher geschrieben bzw. aus dem Speicher ausgelesen, wobei hierzu die Speicheradressen bestimmt werden (Fig.3, Sp.4 Z.63 – Sp.5 Z.6, Sp.13 Z.49-65, Sp.14 Z.37-42). Die Daten werden dabei zu einem Speicherort „geroutet“, d.h. es erfolgt die Bestimmung des Speicherplatzes und somit eine Adressumsetzung. Als Adressumsetzungseinheit i.S.d. Merkmals M2 fungiert die Logik 310 (Sp.4 Z.63 – Sp.5 Z.6, Fig.3 „configuration logic“), der Speicherzugriffsbefehle zugeführt werden, auf deren Basis die Speicheradressen festgelegt werden (Merkmale M2 und M2.1).
Die Zugriffssignale, d.h. die Anforderung für den Speicherzugriff, enthalten weitere Informationen. Die weiteren Informationen, wie z.B. die Speicherbank, die Speicherbankbreite sowie der Speicherplatz, werden vor dem Zugriff generiert und mit dem Zugriffssignal übertragen (Sp.5 Z.50-64, Sp.7 Z.25-31, Sp.14 Z.24-25). Auf Basis der Bitbreite der logischen Speicherbank wird ein entsprechender Modus ausgewählt und bei mehreren Zugriffen werden unterschiedliche Modi ausgewählt (Sp.7 Z.25-31, Sp.14 Z.24-42 „mode select“). Damit sind die Merkmale M2.2 und M2.3 aus der D2 zu entnehmen.
Die Zugriffsadressen werden dynamisch festgelegt (Sp.5 Z.50-64, Sp.14 Z.24-42), wobei ein erster Zugriff auf eine oder einen ersten Teil der Speicherbänke und ein zweiter Zugriff auf eine andere oder einen anderen Teil der Speicherbänke „geroutet“ wird (Sp.4 Z.46-51, Sp.5 Z.7-40, Sp.5 Z.50-64, Sp.14 Z.24-42). Mit dem „Routing“ wird demnach für eine erste Speicherbank in einem ersten Modus und für eine zweite Speicherbank in einem zweiten Modus die entsprechende Adresse dynamisch festgelegt. Weiterhin wird der Fachmann in dem „Routing“ der D2 das anspruchsgemäße „Mapping“ erkennen. Ihm ist dabei geläufig, dass ein solches „Mapping“ nichts Anderes bedeutet, als dass die Speicheradresse aus dem Speicherzugriffsbefehl berechnet bzw. diese aus einer Speicherzugriffstabelle ausgelesen wird. Aus der D2 entnimmt der Fachmann hinsichtlich der Berechnung und Umsetzung der Adressen, dass diese auf Basis von Parametern ermittelt und anschließend durch Anlegen von Signalen auf die Adresssteuerleitungen angesteuert werden. Dabei ist konkret ausgeführt, dass die Signale (Schreib- bzw. Lesesignale) anhand von der programmierten Datenbreite, d.h. der Datenbreite des zugreifenden Programms, und von weiteren Adressinformationen generiert und weitergegeben werden (Sp.5 Z.58-64). Weiter ist eine dynamische Auswahl zwischen verschiedenen Speichermodi in Abhängigkeit von der Datenbreite des Programms und somit eine dynamische Auswahl des Speichermodus sowie der dem Modus entsprechenden Adressumsetzung gezeigt (Sp.14 Z.34-46). Somit offenbart die D2 die in der vorliegenden Anmeldung beanspruchte Ermittlung der Speicheradresse und insbesondere ein „Mapping“ i.S.d. Merkmale M2.4 und M2.5. Schließlich ist in der D2 (Fig.3, Sp.5 Z.65 – Sp.6 Z.61, „Data control circuit“ 315) eine Schreib-/Lese-Einheit (Laden/Speichern-Einheit) gezeigt, die zwischen der Adresserzeugungseinheit 310 und dem Multibankspeicher 305 angeordnet ist.
Diese Einheit führt die übertragenen Befehle und somit die Speicherzugriffe aus. Damit sind auch die Merkmale M3, M3.1 und M3.2 aus der Druckschrift zu entnehmen. Nach alledem gehen sämtliche Merkmale des Anspruchs 1 aus der D2 hervor. Die Ausführungen der Anmelderin vermochten nicht zu überzeugen.
Die Anmelderin führt aus, dass aus der D2 lediglich eine feste Zuordnung der Speicherbänke (ähnlich einer festen Verdrahtung) zu den Speicherbankmodi zu entnehmen sei. Damit sei jedem Speicherzugriff eine Speicherbank entsprechend der Wortbreite des Zugriffs zugeordnet. Dies gehe durch die Bezeichnung „Routing“ und die Verwendung von „Latches“ aus der D2 hervor.
Diesem Einwand kann nicht gefolgt werden. Denn aus der D2 ist zwar zu entnehmen, dass jeder physikalischen Speicherbank sogenannte „Latches“ zugeordnet sind (Sp.5 Z.50-51). Jedoch erfolgt die Ansteuerung der Speicherbänke über Signale, welche von der Steuerungslogik („Configuration logic 310“) auf Basis der Bitbreite der Programmdaten und weiteren Adressinformationen generiert und damit ebenfalls für jeden Schreib- bzw. Lesezugriff berechnet werden (Sp.5 Z.58-64).
Weiter gibt der Vertreter der Anmelderin an, dass die D2 nicht zeige, dass mit den Speicherzugriffsinstruktionen eine individuelle Andresse sowie ein Speicherbankmodus mitgegeben werden. Diese Darstellung greift zu kurz. Wie bereits ausgeführt lässt der Anspruchswortlaut offen, ob diese Vorgaben bereits zusammen mit der Speicherzugriffsinstruktion übergeben werden, oder ob sie aus der Speicherzugriffsinformation berechnet werden. Aus der D2 ist jedenfalls die Berechnung der Adressierung anhand der Bitbreite der Programmdaten sowie weiteren Adressinformationen (Sp.5 Z.58-64) zu entnehmen, was nach fachmännischem Verständnis der zweiten Alternative entspricht. Schließlich führt die Anmelderin aus, dass ein erstes Mapping zu einer ersten Speicherbank in einem ersten Speicherbankmodus und ein zweites Mapping zu einer zweiten Speicherbank in einem zweiten Speicherbankmodus, welches dynamisch basierend auf dem Speicherbankmodus erzeugt wird, nicht aus der D2 zu entnehmen sei. Auch diesen Ausführungen kann nicht beigetreten werden. Denn die D2 zeigt, dass die Zugriffsadressen dynamisch festgelegt (Sp.5 Z.50-64, Sp.14 Z.24-42) werden. Dabei erfolgt in Abhängigkeit der aus der Speicherzugriffsinstruktion berechneten Zugriffsdaten ein erster Zugriff auf eine oder einen ersten Teil der Speicherbänke und ein zweiter Zugriff auf eine andere oder einen anderen Teil der Speicherbänke (Sp.4 Z.46-51, Sp.5 Z.7-40, Sp.5 Z.50-64, Sp.14 Z.24-42).
3. Mit dem Anspruch 1 fallen auch die Ansprüche 2 bis 10, da über einen Antrag nur einheitlich entschieden werden kann (BGH GRUR 1997, 120 - Elektrisches Speicherheizgerät).
4. Eine Zurückverweisung der Sache an das Deutsche Patent- und Markenamt kam nicht in Betracht, denn die Sache war entscheidungsreif, es bedarf keiner weiteren Aufklärung des Sachverhalts.
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 1. das beschließende Gericht nicht vorschriftsmäßig besetzt war, 2. 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, 3. einem Beteiligten das rechtliche Gehör versagt war, 4. 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, 5. der Beschluss aufgrund einer mündlichen Verhandlung ergangen ist, bei der die Vorschriften über die Öffentlichkeit des Verfahrens verletzt worden sind, oder 6. 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 schriftlich einzulegen. Morawek Forkel Hoffmann Akintche