Rechtsprechung / BPatG / 2020

BPatG Beschluss vom 04.08.2020 – 17 W (pat) 2/20

17. Senat · ECLI:DE:BPatG:2020:040820B17Wpat2.20.0

BUNDESPATENTGERICHT

17 W (pat) 2/20 _______________________

(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.

II.

Die Beschwerde wurde frist- und formgerecht eingelegt und ist auch sonst zulässig.

Sie hat jedoch keinen Erfolg, da der Gegenstand des Patentanspruchs 1 nicht neu

ist (§§ 1 und 3 PatG).

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