DE102013018602A1 - Data transmission system has distribution circuit module which distributes request to access global shared memory from corresponding graphics processing units (GPUs), so that access conflict between multiple GPUs is avoided - Google Patents

Data transmission system has distribution circuit module which distributes request to access global shared memory from corresponding graphics processing units (GPUs), so that access conflict between multiple GPUs is avoided Download PDF

Info

Publication number
DE102013018602A1
DE102013018602A1 DE201310018602 DE102013018602A DE102013018602A1 DE 102013018602 A1 DE102013018602 A1 DE 102013018602A1 DE 201310018602 DE201310018602 DE 201310018602 DE 102013018602 A DE102013018602 A DE 102013018602A DE 102013018602 A1 DE102013018602 A1 DE 102013018602A1
Authority
DE
Germany
Prior art keywords
shared memory
data
processing units
circuit module
graphics processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE201310018602
Other languages
German (de)
Inventor
Shifu Chen
Yanbing Shao
Jihua Yu
Wenzhi Liu
Wenbo Ji
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/754,069 external-priority patent/US20140132611A1/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Priority to DE201310018602 priority Critical patent/DE102013018602A1/en
Publication of DE102013018602A1 publication Critical patent/DE102013018602A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

The data transmission system (100) has several (GPUs) (101,102), and a global shared memory (106) for storing data which are exchanged between the GPUs. A distribution circuit module (105) connected to the GPUs and global shared memory, is configured to distribute a request to access the global shared memory from corresponding GPUs, so that an access conflict between the multiple GPUs is avoided.

Description

QUERVERWEIS AUF VERWANDTE ANMELDUNGENCROSS-REFERENCE TO RELATED APPLICATIONS

Diese Anmeldung beansprucht die Priorität der chinesischen Patentanmeldung mit der Nummer 201210448813.8 , die am 9. November 2012 eingereicht wurde und hiermit durch Bezugnahme mit eingeschlossen ist.This application claims the priority of Chinese Patent Application No. 201210448813.8 , filed on Nov. 9, 2012, which is hereby incorporated by reference.

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Gebiet der ErfindungField of the invention

Die vorliegende Erfindung betrifft generell die grafische Verarbeitung und insbesondere ein Verfahren und ein System zur Datenübertragung.The present invention relates generally to graphic processing, and more particularly to a method and system for data transmission.

Beschreibung des Stands der TechnikDescription of the Related Art

Eine Grafikkarte, die eine der grundlegenden Komponenten eines Personalcomputers ist, übernimmt die Aufgabe der Ausgabe von Grafik für die Anzeige. Eine grafische Verarbeitungseinheit (GPU), der Kern einer Grafikkarte, entscheidet im Wesentlichen über das Leistungsvermögen einer Grafikkarte. Anfänglich wurde die GPU hauptsächlich zur Erzeugung von Grafik verwendet, und ihr Inneres ist im wesentlichen aus einer festgelegten Anzahl an „Pipelines bzw. Parallelverarbeitungslinien” aufgebaut, die in Pixel-Pipelines und Vertex-Pipelines unterteilt sind. Es wurde eine neue Generation DX 10-Grafikkarte 8800GTX offiziell von NVIDIA im Dezember 2006 eingeführt, und sie ersetzt Pixel-Pipelines und Vertex-Pipelines durch Datenstromprozessoren bzw. Stromprozessoren (SP). Die Leistung der GPU bei gewissen Berechnungen, etwa einer Fließkommaoperation, einer parallelen Berechnung, usw., ist tatsächlich wesentlich besser als die einer CPU, daher ist die Anwendung einer GPU nicht mehr auf grafische Verarbeitung beschränkt, sondern tritt aktuell zunehmend in den Bereich der Hochleistungsberechnungen (HPC) ein. Im Juni 2007 führte NVIDIA eine vereinheitlichte Rechengeräte-Architektur (CUDA) ein, in der eine vereinheitlichte Verarbeitungsarchitektur verwendet wird, um die Programmierschwierigkeiten zu verringern, und auch ein chipinterner gemeinsam benutzte Speicher zur Verbesserung der Effizienz eingeführt wird.A graphics card, which is one of the basic components of a personal computer, takes on the task of outputting graphics for display. A graphics processing unit (GPU), the core of a graphics card, essentially decides on the performance of a graphics card. Initially, the GPU was primarily used to generate graphics, and its interior is essentially composed of a fixed number of "pipelines" that are divided into pixel pipelines and vertex pipelines. A new generation DX 10 8800GTX graphics card was officially launched by NVIDIA in December 2006, and it replaces pixel pipelines and vertex pipelines with stream processors (SP). The performance of the GPU in certain calculations, such as floating-point operation, parallel computation, etc., is actually much better than that of a CPU, so the application of a GPU is no longer limited to graphical processing, but is increasingly entering the field of high-performance computing (HPC). In June 2007, NVIDIA introduced a unified computing device architecture (CUDA) that uses a unified processing architecture to reduce programming difficulties and also introduces on-chip shared memory to improve efficiency.

Aktuell wird eine PCIE-Schnittstelle typischerweise für die Kommunikation unter den unterschiedlichen GPUs in der grafischen Verarbeitung oder in der Berechnung für Allgemeinzwecke in einem Multi-GPU-System eingesetzt. Jedoch muss Bandbreite für eine Kommunikationsbandbreite zwischen einer GPU und einer CPU vorgesehen werden, wenn eine PCIE-Schnittstelle verwendet wird, und die Bandbreite der PCIE-Schnittstelle ist beschränkt, so dass die Übertragungsrate nicht ideal ist und die hohe Rechenleistung einer GPU nicht vollständig ausgenutzt werden kann.Currently, a PCIE interface is typically used for communication among the various GPUs in graphical processing or general purpose computing in a multi-GPU system. However, bandwidth must be provided for a communication bandwidth between a GPU and a CPU when using a PCIE interface, and the bandwidth of the PCIE interface is limited, so that the transmission rate is not ideal and the high computational power of a GPU is not fully utilized can.

Daher gibt es einen Bedarf für ein System und ein Verfahren zur Datenübertragung, um das oben genannte Problem zu lösen.Therefore, there is a need for a system and method for data transmission to solve the above problem.

ÜBERBLICK ÜBER DIE ERFINDUNGOVERVIEW OF THE INVENTION

Es wird eine Reihe von Konzepten im Überblick der Erfindung in verkürzter Form angegeben, die nachfolgend ausführlicher im Teil detaillierte Beschreibung erläutert wird. Dieser Teil der vorliegenden Erfindung soll nicht bedeuten, dass versucht wird, wesentliche Merkmale und essenzielle technischen Merkmale der technischen Lösung, für die Schutz angestrebt wird, zu definieren; es ist auch nicht damit gemeint zu versuchen, den Schutzbereichs der technischen Lösung, für die Schutz gesucht wird, zu bestimmen.A number of concepts in the overview of the invention are given in abbreviated form, which will be explained in more detail in the detailed description below. This part of the present invention is not intended to be an attempt to define essential features and essential technical features of the technical solution for which protection is sought; nor is it meant to attempt to determine the scope of the technical solution for which protection is sought.

Um das oben genannte Problem zu lösen, stellt die vorliegende Erfindung ein System zur Datenübertragung bereit mit: mehreren GPUs; einem globalen gemeinsam benutzten Speicher zur Speicherung von Daten, die zwischen den mehreren GPUs ausgetauscht werden; einem Verteilungsschaltungsmodul, das mit jeder der mehreren GPUs und dem globalen gemeinsam benutzten Speicher verbunden und ausgebildet ist, eine Zugriffsanforderung für den globalen gemeinsam benutzten Speicher aus entsprechenden GPUs so zu verteilen, dass ein Zugriffskonflikt zwischen den mehreren GPUs vermieden wird.In order to solve the above problem, the present invention provides a data transmission system comprising: a plurality of GPUs; a shared global memory for storing data exchanged between the multiple GPUs; a distribution circuit module connected to each of the plurality of GPUs and the global shared memory and configured to distribute a global shared memory access request from respective GPUs so as to avoid an access conflict between the plurality of GPUs.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst das System ferner mehrere lokale Gerätespeicher, wovon jeder einer entsprechend der mehreren GPUs verbunden ist.In an alternative embodiment of the present invention, the system further includes a plurality of local device memories, each of which is associated with one of the plurality of GPUs.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst jede der mehreren GPUs ferner einen Blockpuffer, der ausgebildet ist, Daten zwischenzuspeichern, die von jeder der mehreren GPUs übertragen werden, und eine Größe bzw. ein Volumen des Blockpuffers ist nicht größer als ein Volumen bzw. eine Größe des globalen gemeinsam benutzten Speichers.In an alternative embodiment of the present invention, each of the plurality of GPUs further includes a block buffer configured to latch data transmitted from each of the plurality of GPUs, and a size of the block buffer is not larger than a volume Size of global shared memory.

In einer alternativen Ausführungsform der vorliegenden Erfindung ist die Größe des Blockpuffers konfigurierbar derart, dass: die Daten an den globalen gemeinsam benutzten Speicher über den Blockpuffer in Teilen bzw. Gruppen gesendet werden, wenn eine Größe der Daten größer als die Größe des globalen gemeinsam benutzten Speichers ist; und die Daten alle auf einmal an den globalen gemeinsam benutzten Speicher über den Blockpuffer gesendet werden, wenn die Größe der Daten nicht größer als die Größe des globalen gemeinsam benutzten Speichers ist.In an alternative embodiment of the present invention, the size of the block buffer is configurable such that: the data is sent to the global shared memory via the block buffer in portions when a size of the data is greater than the size of the global shared memory; and the data is sent all at once to the global shared memory via the block buffer if the size of the data is not greater than the size of the global shared memory.

In einer alternativen Ausführungsform der vorliegenden Erfindung ist das Verteilungsschaltungsmodul ausgebildet derart, dass: wenn die Zugriffsanforderung an das Verteilungsschaltungsmodul durch eine einzelne GPU der mehreren GPUs gesendet wird, das Verteilungsschaltungsmodul der einen GPU der mehreren GPUs erlaubt, auf den globalen gemeinsam benutzten Speicher zuzugreifen, wenn der globale gemeinsam benutzte Speicher in einem untätigen Zustand ist; und das Verteilungsschaltungsmodul es der einen GPU der mehreren GPUs nicht erlaubt, auf den globalen gemeinsam benutzten Speicher zuzugreifen, wenn der globale gemeinsam benutzte Speicher in einem beschäftigten Zustand ist.In an alternative embodiment of the present invention, the distribution circuit module is configured such that when the access request to the distribution circuit module is sent by a single GPU of the plurality of GPUs, the distribution circuit module of the one GPU of the plurality of GPUs access the global shared memory when the global shared memory is in an idle state; and the distribution circuit module does not allow the one GPU of the plurality of GPUs to access the global shared memory when the shared global memory is in a busy state.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst jede der mehreren GPUs eine PCIE-Schnittstelle zur Datenübertragung zwischen den mehreren GPUs, wenn der Zugriffskonflikt vorliegt.In an alternative embodiment of the present invention, each of the multiple GPUs includes a PCIE interface for communicating between the multiple GPUs when the access conflict occurs.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst der globale gemeinsam benutzte Speicher ferner Kanäle, die entsprechend mit jeweiligen GPUs gekoppelt sind, und die Daten werden direkt zwischen dem globalen gemeinsam benutzten Speicher und den jeweiligen GPUs über die Kanäle übertragen.In an alternative embodiment of the present invention, the global shared memory further includes channels coupled to respective GPUs, and the data is transferred directly between the shared global memory and the respective GPUs via the channels.

In einer alternativen Ausführungsform der vorliegenden Erfindung ist das Verteilungsschaltungsmodul ausgebildet, in der Lage zu sein, mit entsprechenden GPUs zu kommunizieren, und die Daten werden zwischen dem globalen gemeinsam benutzten Speicher und jeweiligen GPUs über das Verteilungsschaltungsmodul ausgetauscht.In an alternative embodiment of the present invention, the distribution circuit module is configured to be able to communicate with corresponding GPUs and the data is exchanged between the global shared memory and respective GPUs via the distribution circuit module.

In einer alternativen Ausführungsform der vorliegenden Erfindung ist das Verteilungsschaltungsmodul ein einzelnes Modul, ein Teil des globalen gemeinsam benutzten Speichers oder ein Teil entsprechender GPUs.In an alternative embodiment of the present invention, the distribution circuit module is a single module, a portion of the global shared memory, or a portion of corresponding GPUs.

In einer alternativen Ausführungsform der vorliegenden Erfindung besteht das Verteilungsschaltungsmodul aus einem FPGA, einem Einzelchip-Mikrocomputer und/oder einer Logikgatter-Schaltung.In an alternative embodiment of the present invention, the distribution circuit module consists of an FPGA, a single-chip microcomputer, and / or a logic gate circuit.

In einem weiteren Aspekt der Erfindung wird auch ein Verfahren zur Datenübertragung bereitgestellt. Das Verfahren umfasst: Übertragen von Daten von einer GPU von mehreren GPUs zu einer weiteren GPU der mehreren GPUs über einen globalen gemeinsam benutzten Speicher; während der Übertragung Verteilen einer Zugriffsanforderung für den globalen gemeinsam benutzten Speicher aus entsprechenden GPUs der mehreren GPUs mittels eines Verteilungsschaltungsmoduls.In a further aspect of the invention, a method for data transmission is also provided. The method comprises: transferring data from a GPU from multiple GPUs to another GPU of the plurality of GPUs via a global shared memory; during transmission, distributing a global shared memory access request from corresponding GPUs of the plurality of GPUs using a distribution circuit module.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst die Verteilung: wenn die Zugriffsanforderung an das Verteilungsschaltungsmodul durch eine einzelne GPU der mehreren GPUs gesendet wird, Zulassen, mittels des Verteilungsschaltungsmoduls, dass die eine GPU der mehreren GPUs auf den globalen gemeinsam benutzten Speicher zugreift, wenn der globale gemeinsam benutzte Speicher in einem untätigen Zustand ist; und nicht Zulassen, mittels des Verteilungsschaltungsmoduls, dass die eine GPU der mehreren GPUs auf den globalen gemeinsam benutzten Speicher zugreift, wenn mit der globale gemeinsam benutzte Speicher in einem beschäftigten Zustand ist.In an alternative embodiment of the present invention, when the access request to the distribution circuit module is sent by a single GPU of the plurality of GPUs, the distribution comprises, by the distribution circuit module, accessing the global shared memory for the one GPU of the plurality of GPUs global shared memory is in an idle state; and not allowing, by the distribution circuit module, the one GPU of the plurality of GPUs to access the global shared memory when the global shared memory is in a busy state.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst die Übertragung von Daten: Schreiben der Daten in den globalen gemeinsam benutzten Speicher durch die eine GPU der mehreren GPUs; und Lesen der Daten aus dem globalen gemeinsam benutzten Speicher durch eine weitere GPU der mehreren GPUs.In an alternative embodiment of the present invention, the transfer of data comprises: writing the data to the global shared memory by the one GPU of the plurality of GPUs; and reading data from the global shared memory by another GPU of the plurality of GPUs.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst Übertragung von Daten ferner: Lesen der Daten aus einem lokalen Gerätespeicher, der einer GPU der mehreren GPUs zugeordnet ist, durch die eine GPU der mehreren GPUs, bevor die Daten in den globalen gemeinsam benutzten Speicher durch die eine GPU der mehreren GPUs geschrieben werden.In an alternative embodiment of the present invention, transmission of data further comprises: reading the data from a local device memory associated with a GPU of the plurality of GPUs by which a GPU of the plurality of GPUs before the data into the global shared memory through the one GPU of multiple GPUs are written.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst Übertragung von Daten ferner: Schreiben der gelesenen Daten in einen lokalen Gerätespeicher, der der weiteren GPU der mehreren GPUs zugeordnet ist, durch die weitere GPU der mehreren GPUs, nachdem die Daten aus dem globalen gemeinsam benutzten Speicher durch die weitere GPU der mehreren GPUs gelesen werden.In an alternative embodiment of the present invention, transmission of data further comprises: writing the read data into a local device memory associated with the further GPU of the plurality of GPUs by the further GPU of the plurality of GPUs after the data from the global shared memory the more GPU of the several GPUs are read.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst ferner jede der mehreren GPUs einen Blockpuffer, der ausgebildet ist, Daten zwischenzuspeichern, die von jeder der mehreren GPUs übertragen werden, und wobei ein Volumen bzw. eine Größe des Blockpuffers nicht größer als ein Volumen bzw. eine Größe des globalen gemeinsam benutzten Speichers ist.In an alternative embodiment of the present invention, each of the multiple GPUs further includes a block buffer configured to cache data transmitted from each of the plurality of GPUs, and wherein a size of the block buffer is not greater than one volume Size of global shared memory is.

In einer alternativen Ausführungsform der vorliegenden Erfindung ist die Größe des Blockpuffer so konfigurierbar, dass: die Daten an den globalen gemeinsam benutzten Speicher über den Blockpuffer in Teilen bzw. Gruppen gesendet werden, wenn eine Größe der Daten größer ist als die Größe des globalen gemeinsam benutzten Speichers; und die Daten an den globalen gemeinsam benutzten Speicher über den Blockpuffer alle auf einmal gesendet werden, wenn die Größe der Daten nicht größer als die Größe des globalen gemeinsam benutzten Speichers ist.In an alternative embodiment of the present invention, the size of the block buffer is configurable such that: the data is sent to the global shared memory via the block buffer in groups, if a size of the data is larger than the size of the global shared memory; and the data is sent to the global shared memory via the block buffer all at once, if the size of the data is not larger than the size of the shared global memory.

In einer alternativen Ausführungsform der vorliegenden Erfindung umfasst der globale gemeinsam benutzte Speicher ferner Kanäle, die jeweils mit entsprechenden GPUs verbunden sind, und die Daten werden direkt zwischen dem globalen gemeinsam benutzten Speicher und entsprechenden GPUs über die Kanäle ausgetauscht.In an alternative embodiment of the present invention, the global shared memory further comprises channels each connected to respective GPUs and the data is exchanged directly between the shared global memory and corresponding GPUs over the channels.

In einer alternativen Ausführungsform der vorliegenden Erfindung ist das Verteilungsschaltungsmodul so ausgebildet, dass es in der Lage ist, mit jeweiligen GPUs zu kommunizieren, und die Daten werden zwischen dem globalen gemeinsam benutzten Speicher und entsprechenden GPUs über das Verteilungsschaltungsmodul ausgetauscht.In an alternative embodiment of the present invention, the distribution circuit module is configured to be able to communicate with respective GPUs, and the data is exchanged between the global shared memory and corresponding GPUs via the distribution circuit module.

In einem weiteren Aspekt der Erfindung wird auch eine Grafikkarte bereitgestellt. Die Grafikkarte umfasst ein System zur Datenübertragung, wobei das System zur Datenübertragung umfasst: mehrere GPUs; einen globalen gemeinsam benutzten Speicher zur Speicherung von Daten, die zwischen den mehreren GPUs ausgetauscht werden; ein Verteilungsschaltungsmodul, das mit jeder der mehreren GPUs und dem globalen gemeinsam benutzten Speicher verbunden und ausgebildet ist, eine Zugriffsanforderung für den globalen gemeinsam benutzten Speicher aus entsprechenden GPUs so zu verteilen, dass ein Zugriffskonflikt zwischen den mehreren GPUs vermieden wird.In another aspect of the invention, a graphics card is also provided. The graphics card includes a data transfer system, the data transfer system comprising: multiple GPUs; a shared global memory for storing data exchanged between the multiple GPUs; a distribution circuit module connected to each of the plurality of GPUs and the global shared memory and configured to distribute a global shared memory access request from respective GPUs so as to avoid an access conflict between the multiple GPUs.

Das System und das Verfahren zur Datenübertragung, wie sie von der vorliegenden Erfindung bereitgestellt werden, versetzen die GPUs in dem System in die Lage, Daten über den globalen gemeinsam benutzten Speicher anstatt über eine PCIE-Schnittstelle auszutauschen, so dass eine gemeinsame Nutzung von Bandbreite mit einem CPU-Bus vermieden wird, so dass die Übertragungsgeschwindigkeit höher ist.The system and method of data transmission provided by the present invention enable the GPUs in the system to exchange data over the global shared memory rather than via a PCIE interface, thus sharing bandwidth with a CPU bus is avoided, so that the transmission speed is higher.

KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Die begleitenden Zeichnungen sind hier mit eingeschlossen, um ein weitergehendes Verständnis der Erfindung zu bieten, und sind in dieser Beschreibung enthalten und bilden einen Teil davon. Die Zeichnungen stellen Ausführungsformen der Erfindung dar und dienen zusammen mit der Beschreibung dazu, die Prinzipien der Erfindung zu erläutern. In den Zeichnungen zeigenThe accompanying drawings are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. In the drawings show

1 eine schematische Blockansicht eines Systems zur Datenübertragung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; 1 a schematic block diagram of a system for data transmission according to a preferred embodiment of the present invention;

2 ein Flussdiagramm zur Verteilung einer Zugriffsanforderung einer GPU mittels einem Verteilungsschaltungsmodul gemäß einer vorteilhaften Ausführungsform der vorliegenden Erfindung; 2 a flowchart for distributing an access request of a GPU by means of a distribution circuit module according to an advantageous embodiment of the present invention;

3 eine schematische Blockansicht eines Systems zur Datenübertragung gemäß einer weiteren Ausführungsform der vorliegenden Erfindung; und 3 a schematic block diagram of a system for data transmission according to another embodiment of the present invention; and

4 ein Flussdiagramm eines Verfahrens zur Datenübertragung gemäß einer vorteilhaften Ausführungsform der vorliegenden Erfindung. 4 a flowchart of a method for data transmission according to an advantageous embodiment of the present invention.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

Es wird eine Fülle spezieller Details angegeben, um ein gründlicheres Verständnis der vorliegenden Erfindung in der folgenden Beschreibung zu ermöglichen. Jedoch kann die vorliegende Erfindung auch ohne eines oder mehrere dieser Details umgesetzt werden, wie dies für den Fachmann auf dem Gebiet ersichtlich ist. In anderen Beispielen werden einige der technischen Merkmale, die im Stand der Technik bekannt sind, nicht beschrieben, um eine Verdunkelung der vorliegenden Erfindung zu vermeiden.A great deal of specific details are set forth in order to provide a more thorough understanding of the present invention in the following description. However, the present invention may be practiced without one or more of these details, as will be apparent to those skilled in the art. In other examples, some of the technical features known in the art are not described to avoid obscuring the present invention.

Es werden nun detaillierte Strukturen in der folgenden Beschreibung für eine gründlichere Würdigung der Erfindung präsentiert. Es ist ersichtlich, dass die Umsetzung der Erfindung nicht auf spezielle Details beschränkt ist, die für den Fachmann gut bekannt sind. Nachfolgend werden bevorzugte Ausführungsformen beschrieben; jedoch kann die Erfindung auch andere Möglichkeiten der Umsetzung umfassen.Detailed structures will now be presented in the following description for a more thorough appreciation of the invention. It will be understood that the practice of the invention is not limited to specific details that are well known to those skilled in the art. Hereinafter, preferred embodiments will be described; however, the invention may include other means of implementation.

Die vorliegende Erfindung gibt ein System und ein Verfahren zur Datenübertragung an. Durch die Anwendung des Verfahrens kann eine Datenübertragung bzw. ein Datenaustausch zwischen unterschiedlichen GPUs in einem System ohne Verwendung einer PCIE-Schnittstelle realisiert werden. Die Anzahl an GPUs ist nicht beschränkt, es sind jedoch nur eine erste GPU und eine zweite GPU als Beispiel zur Darstellung verwendet, wie Daten zwischen unterschiedlichen GPUs in einem System in Ausführungsformen der vorliegenden Erfindung ausgetauscht bzw. übertragen werden können.The present invention provides a system and method for data transmission. By using the method, data transmission between a variety of GPUs can be realized in a system without using a PCIE interface. The number of GPUs is not limited, but only a first GPU and a second GPU are used as an example to illustrate how data can be exchanged between different GPUs in a system in embodiments of the present invention.

1 zeigt eine schematische Blockansicht eines Systems zur Datenübertragung 100 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Wie in 1 gezeigt ist, umfasst das System zur Datenübertragung 100 eine erste GPU 101, eine zweite GPU 102, ein Verteilungsschaltungsmodul 105 und einen globalen gemeinsam benutzten Speicher 106. Dabei können die erste GPU 101 und die zweite GPU 102 gleichartige GPUs sein. 1 shows a schematic block diagram of a system for data transmission 100 according to a preferred embodiment of the present invention. As in 1 is shown, the system comprises for data transmission 100 a first GPU 101 . a second GPU 102 , a distribution circuit module 105 and a global shared memory 106 , This can be the first GPU 101 and the second GPU 102 be similar GPUs.

Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung kann das System zur Datenübertragung 100 ferner einen ersten lokalen Gerätespeicher 103, der der ersten GPU 101 zugeordnet ist, und einen zweiten lokalen Gerätespeicher 104, der der zweiten GPU 102 zugeordnet ist, aufweisen. Der erste lokale Gerätespeicher 103 ist mit der ersten GPU 101 verbunden. Der zweite lokale Gerätespeicher 104 ist mit der zweiten GPU 102 verbunden. Der Fachmann erkennt, dass der zuvor genannte lokale Gerätespeicher eine oder mehrere Speichereinheiten sein können. Der lokale Gerätespeicher kann verwendet werden, um Daten zu speichern, die von der GPU verarbeitet worden sind oder zu verarbeiten sind.According to a preferred embodiment of the present invention, the system for data transmission 100 Furthermore, a first local device memory 103 , the first GPU 101 is assigned, and a second local device memory 104 , the second GPU 102 is assigned to have. The first local device memory 103 is with the first GPU 101 connected. The second local device memory 104 is with the second GPU 102 connected. The person skilled in the art recognizes that the abovementioned local device memory can be one or more memory units. The local device memory may be used to store data that has been processed by the GPU or is to be processed.

Gemäß einer vorteilhaften Ausführungsform der vorliegenden Erfindung kann die erste GPU 101 ferner einen ersten Blockpuffer 107 aufweisen, und die zweite GPU 102 kann ferner einen zweiten Blockpuffer 108 aufweisen. Jeder Blockpuffer wird verwendet, um Daten zwischenzuspeichern, die in seiner zugeordneten GPU übertragen werden, und das Volumen bzw. die Größe des Blockpuffer ist nicht größer als das Volumen bzw. die Größe des globalen gemeinsam benutzten Speichers.According to an advantageous embodiment of the present invention, the first GPU 101 a first block buffer 107 and the second GPU 102 may further include a second block buffer 108 exhibit. Each block buffer is used to cache data transferred in its associated GPU, and the volume or size of the block buffer is not greater than the volume of global shared memory.

Wenn beispielsweise Daten von dem ersten lokalen Gerätespeicher 103, der der ersten GPU 101 zugeordnet ist, zu dem globalen gemeinsam benutzten Speicher 106 zu übertragen sind, werden die Daten zunächst an den ersten Blockpuffer 107 in der ersten GPU 101 übertragen und anschließend werden sie von dem ersten Blockpuffer 107 an den globalen gemeinsam benutzten Speicher 106 gesendet. Wenn im Gegensatz dazu Daten von dem globalen gemeinsam benutzten Speicher 106 zu dem ersten lokalen Gerätespeicher 103, der der ersten GPU 101 zugeordnet ist, zu übertragen sind, werden die Daten zunächst an den ersten Blockpuffer 107 in der ersten GPU 101 gesendet, und werden dann von dem ersten Blockpuffer 107 zu dem ersten lokalen Gerätespeicher 103 gesendet. Für den zweiten Blockpuffer 108 ist die Situation die gleiche, wie sie zuvor beschrieben ist.For example, if data from the first local device memory 103 , the first GPU 101 associated with the global shared memory 106 to transfer, the data is first sent to the first block buffer 107 in the first GPU 101 then transfer them from the first block buffer 107 to global shared storage 106 Posted. If, on the contrary, data from the global shared memory 106 to the first local device memory 103 , the first GPU 101 is to be transferred, the data is first sent to the first block buffer 107 in the first GPU 101 are sent, and then from the first block buffer 107 to the first local device memory 103 Posted. For the second block buffer 108 the situation is the same as described above.

Der Fachmann auf dem Gebiet weiß, dass Daten von der ersten GPU 101 an den globalen gemeinsam benutzten Speicher 106 direkt ohne Zwischenschaltung des ersten lokalen Gerätespeichers 103 gesendet werden können. Daten können von dem globalen gemeinsam benutzten Speicher 106 an die erste GPU 101 übertragen werden, um direkt in Berechnungen der ersten GPU 101 eingebunden zu werden.The person skilled in the art knows that data from the first GPU 101 to global shared storage 106 directly without interposing the first local device memory 103 can be sent. Data can be shared by the global shared memory 106 to the first GPU 101 be transferred to directly in calculations of the first GPU 101 to be involved.

Abhängig von der Größe der zu übertragenden Daten und von dem Volumen bzw. der Größe des globalen gemeinsam benutzten Speichers ist die Größe des Blockpuffers so konfigurierbar, dass: die Daten an den globalen gemeinsam benutzten Speicher 106 über den Blockpuffer in Teilen bzw. Gruppen gesendet werden, wenn die Größe der Daten größer ist als die Größe des globalen gemeinsam benutzten Speichers; und die Daten an den globalen gemeinsam benutzten Speicher 106 über den Blockpuffer auf einmal gesendet werden, wenn die Größe der Daten nicht größer als die Größe des globalen gemeinsam benutzten Speichers ist. Wenn beispielsweise die Daten von dem ersten lokalen Gerätespeicher 103 an den zweiten lokalen Gerätespeicher 104 gesendet werden, und wenn die Größe der Daten größer als die Größe des globalen gemeinsam benutzten Speichers 106 ist, können die folgenden Schritte ausgeführt werden. Der erste Blockpuffer 107 wird so konfiguriert, dass er gleich ist zu der Größe des globalen gemeinsam benutzten Speichers 106, und der zweite Blockpuffer 108 wird so konfiguriert, dass er in der Größe gleich ist zu dem ersten Blockpuffer 107. Die Daten werden in mehrere Teile aufgeteilt, wobei die Größe jedes Teils gleich oder kleiner der Größe des ersten Blockpuffers 107 ist. Dann wird zuerst der erste Teil der Daten zu dem ersten Blockpuffer 107 übertragen und wird dann in den globalen gemeinsam benutzten Speicher 106 geschrieben. Dann wird dieser Teil der Daten von dem globalen gemeinsam benutzten Speicher 106 an den zweiten Blockpuffer 108 gesendet und wird dann in den zweiten lokalen Gerätespeicher 104 geschrieben. Anschließend wird der nächste Teil der Daten von dem ersten lokalen Gerätespeicher 103 zu dem zweiten lokalen Gerätespeicher 104 in Übereinstimmung mit der zuvor genannten Sequenz übertragen. Die restlichen Teile der Daten werden in der gleichen Weise übertragen, bis die Datenübertragung abgeschlossen ist. Wenn die Daten aus dem ersten lokalen Gerätespeicher 103 an den zweiten lokalen Gerätespeicher 104 übertragen werden, und wenn die Größe der Daten nicht größer als die Größe des globalen gemeinsam benutzten Speichers 106 ist, können die folgenden Schritte ausgeführt werden. Der erste Blockpuffer 107 wird so konfiguriert, dass er gleich ist der Größe der Daten, und der zweite Blockpuffer 108 wird so konfiguriert, dass er der Größe des ersten Blockpuffers 107 entspricht. Die gesamten Daten können von dem ersten lokalen Gerätespeicher 103 an den zweiten lokalen Gerätespeicher 104 auf einmal gesendet werden. Wenn die Daten aus dem zweiten lokalen Gerätespeicher 104 an den ersten lokalen Gerätespeicher 103 gesendet werden, kann zunächst der zweite Blockpuffer 108 konfiguriert werden und der erste Blockpuffer 107 kann nachfolgend konfiguriert werden, wobei dies in der gleichen Weise erfolgt, wie zuvor beschrieben ist.Depending on the size of the data to be transferred and the volume or size of the shared global memory, the size of the block buffer is configurable such that: the data to the global shared memory 106 be sent across the block buffer in parts or groups if the size of the data is greater than the size of the global shared memory; and the data to the global shared memory 106 sent over the block buffer at once, if the size of the data is not larger than the size of the global shared memory. For example, if the data from the first local device memory 103 to the second local device memory 104 are sent, and if the size of the data is larger than the size of the global shared memory 106 is, the following steps can be performed. The first block buffer 107 is configured to be equal to the size of the global shared memory 106 , and the second block buffer 108 is configured to be equal in size to the first block buffer 107 , The data is split into several parts, with the size of each part equal to or smaller than the size of the first block buffer 107 is. Then first the first part of the data becomes the first block buffer 107 and then transferred to the global shared memory 106 written. Then this part of the data is shared by the global shared memory 106 to the second block buffer 108 is sent and then into the second local device memory 104 written. Subsequently, the next part of the data is from the first local device memory 103 to the second local device memory 104 in accordance with the aforementioned sequence. The remainder of the data is transferred in the same way until the data transfer is complete. When the data from the first local device memory 103 to the second local device memory 104 and if the size of the data does not exceed the size of the global shared memory 106 is, the following steps can be performed. The first block buffer 107 is configured to be equal to the size of the data, and the second block buffer 108 is configured to be the size of the first block buffer 107 equivalent. All data can be from the first local device memory 103 to the second local device memory 104 to be sent at once. If the data from the second local device memory 104 to the first local device memory 103 can be sent, first the second block buffer 108 be configured and the first block buffer 107 can be subsequently configured, in the same way as described above.

Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist das Verteilungsschaltungsmodul 105 mit der ersten GPU 101 und der zweiten GPU 102 entsprechend verbunden. Das Verteilungsschaltungsmodul verteilt die Zugriffsanforderungen für den globalen gemeinsam benutzten Speicher 106 aus der ersten GPU 101 und der zweiten GPU 102 derart, dass Zugriffskonflikte zischen den beiden unterschiedlichen GPUs vermieden werden. Insbesondere kann das Verteilungsschaltungsmodul 105 so konfiguriert werden, dass: wenn eine Zugriffsanforderung an das Verteilungsschaltungsmodul 105 von einer GPU der mehreren GPUs gesendet wird, erlaubt das Verteilungsschaltungsmodul 105 dieser einen GPU der mehreren GPUs, auf den globalen gemeinsam benutzten Speicher 106 zu zugreifen, wenn der globale gemeinsam benutzte Speicher 106 in einem untätigen Zustand ist; und das Verteilungsschaltungsmodul 105 erlaubt es dieser einen GPU der mehreren GPUs nicht, auf den globalen gemeinsam benutzten Speicher 106 zu zugreifen, wenn der globale gemeinsam benutzte Speicher 106 in einem beschäftigten Zustand ist. Insbesondere kennzeichnet ein untätigen Zustand des globalen gemeinsam benutzten Speichers 106, das keine der GPUs auf den globalen gemeinsam benutzten Speicher 106 zugreift, und ein beschäftigter Zustand bzw. besetzter Zustand des globalen gemeinsam benutzten Speichers 106 gibt an, dass zumindest von einer der GPUs auf den globalen gemeinsam benutzten Speicher 106 zugegriffen wird. According to a preferred embodiment of the present invention, the distribution circuit module is 105 with the first GPU 101 and the second GPU 102 connected accordingly. The distribution circuit module distributes the global shared memory access requests 106 from the first GPU 101 and the second GPU 102 such that access conflicts between the two different GPUs are avoided. In particular, the distribution circuit module 105 be configured so that: when an access request to the distribution circuit module 105 is sent from a GPU of multiple GPUs, allows the distribution circuit module 105 this one GPU of multiple GPUs, on the global shared memory 106 to access if the global shared memory 106 is in a dormant state; and the distribution circuit module 105 This one GPU of multiple GPUs does not allow for global shared memory 106 to access if the global shared memory 106 is in a busy state. In particular, an idle state of global shared memory denotes 106 that does not have any of the GPUs on the global shared memory 106 accesses and a busy state of the global shared memory 106 indicates that at least one of the GPUs is sharing the global shared memory 106 is accessed.

Der Verteilungsprozess 200 des Verteilungsschaltungsmoduls 105 ist insbesondere in 2 gezeigt und wird nachfolgend mit Bezug zu 1 und 2 beschrieben. Im Schritt 201 sendet zunächst die erste GPU 101 eine Zugriffsanforderung zum Zugreifen auf den globalen gemeinsam benutzten Speicher 106 an das Verteilungsschaltungsmodul 105. Im Schritt 202 wird bewertet, ob der globale gemeinsam benutzte Speicher 106 in einem untätigen Zustand ist oder nicht, und wenn der globale gemeinsam benutzte Speicher 106 in einem untätigen Zustand ist, dann geht der Verteilungsvorgang 200 weiter zum Schritt 203, in welchem das Verteilungsschaltungsmodul 105 ein Signal an die zweite GPU 102 sendet, um anzuzeigen, dass der globale gemeinsam benutzte Speicher 106 verwendet wird. Danach geht der Verteilungsvorgang 200 weiter zum Schritt 204, in welchem das Verteilungsschaltungsmodul 105 ein Signal an die erste GPU 101 sendet, um anzuzeigen, dass der globale gemeinsam benutzte Speicher 106 verwendet werden kann. Wenn im Schritt 202 der globale gemeinsam benutzte Speicher 106 in einem beschäftigten Zustand ist, dann geht der Verteilungsvorgang 200 weiter zum Schritt 205, in welchem das Verteilungsschaltungsmodul 105 ein Signal an die erste GPU 101 sendet, um anzuzeigen, dass auf den globalen gemeinsam benutzten Speicher 106 nicht zugegriffen werden kann. In dieser Zeit kann die erste GPU 101 regelmäßig den Zustand des Verteilungsschaltungsmoduls 105 erfassen. Wenn das Verteilungsschaltungsmodul 105 anzeigt, dass der globale gemeinsam benutzte Speicher 106 während dieser Zeit in einem untätigen Zustand ist, dann beginnt die erste GPU 101 damit, auf den globalen gemeinsam benutzten Speicher 106 zu zugreifen, oder im anderen Falle würde die erste GPU 101 die Daten über andere Wege übertragen (beispielsweise eine PCIE-Schnittstelle in der ersten GPU 101). Wenn die erste GPU 101 und die zweite GPU 102 gleichzeitig auf den globalen gemeinsam benutzten Speicher 106 zugreifen, dann wird vorzugsweise in Abhängigkeit von einem Prioritätsmechanismus entschieden, welche GPU auf den globalen gemeinsam benutzten Speicher 106 zugreifen darf. Der Prioritätsmechanismus kann beinhalten, dass ermittelt wird, ob die erste GPU 101 oder die zweite GPU 102 auf den globalen gemeinsam benutzten Speicher 106 als letztes zugegriffen hat, und dass definiert wird, dass die Prioritätsebene der anderen GPU höher ist. Die GPU mit der höheren Prioritätsebene kann auf den globalen gemeinsam benutzten Speicher 106 zuerst zugreifen. Wenn die zweite GPU 102 eine Zugriffsanforderung an das Verteilungsschaltungsmodul 105 sendet, ist die Situation die gleiche, wie sie zuvor beschrieben ist.The distribution process 200 of the distribution circuit module 105 is particular in 2 is shown below and with reference to 1 and 2 described. In step 201 sends first the first GPU 101 an access request to access the global shared memory 106 to the distribution circuit module 105 , In step 202 is evaluated, whether the global shared memory 106 is in an idle state or not, and if the global shared memory 106 is in a dormant state, then goes the distribution process 200 continue to step 203 in which the distribution circuit module 105 a signal to the second GPU 102 sends to indicate that the global shared memory 106 is used. Then the distribution process goes 200 continue to step 204 in which the distribution circuit module 105 a signal to the first GPU 101 sends to indicate that the global shared memory 106 can be used. When in step 202 the global shared storage 106 is in a busy state, then goes the distribution process 200 continue to step 205 in which the distribution circuit module 105 a signal to the first GPU 101 sends to indicate that the global shared memory 106 can not be accessed. At this time, the first GPU 101 regularly check the status of the distribution circuit module 105 to capture. If the distribution circuit module 105 indicates that the global shared memory 106 during this time is in an idle state, then begins the first GPU 101 with it, on the global shared memory 106 or else would the first GPU 101 transmit the data through other means (for example, a PCIE interface in the first GPU 101 ). If the first GPU 101 and the second GPU 102 at the same time on the global shared memory 106 access, then it is preferably decided, depending on a priority mechanism, which GPU on the global shared memory 106 may access. The priority mechanism may include determining if the first GPU 101 or the second GPU 102 on the global shared storage 106 last accessed, and defining that the priority level of the other GPU is higher. The higher priority level GPU can access the global shared memory 106 first access. If the second GPU 102 an access request to the distribution circuit module 105 sends, the situation is the same as described above.

Gemäß einer alternativen Ausführungsform der vorliegenden Erfindung kann der Zugriff auf den globalen gemeinsam benutzten Speicher 106 das Schreiben von Daten und/oder das Lesen von Daten beinhalten. Wenn beispielsweise Daten aus der ersten GPU 101 an die zweite GPU 102 übertragen werden, dann ist der Zugriff auf den globalen gemeinsam benutzten Speicher 106 durch die erste GPU 101 ein Schreiben von Daten, und der Zugriff auf den globalen gemeinsam benutzten Speicher 106 durch die zweite GPU 102 ist ein Lesen von Daten.According to an alternative embodiment of the present invention, access to the global shared memory may be provided 106 writing data and / or reading data. For example, if data from the first GPU 101 to the second GPU 102 be transferred, then is the access to the global shared memory 106 through the first GPU 101 a write of data, and access to the global shared memory 106 through the second GPU 102 is a reading of data.

Gemäß einer alternativen Ausführungsform der vorliegenden Erfindung kann der globale gemeinsam benutzte Speicher 106 ferner Kanäle umfassen, die entsprechend mit jeweiligen GPUs verbunden sind, und die Daten werden direkt zwischen dem globalen gemeinsam benutzten Speicher 106 und entsprechenden GPUs über die Kanäle ausgetauscht. Wie in 1 gezeigt ist, ist der globale gemeinsam benutzte Speicher 106 ein Mehrkanal-Speicher mit zwei Kanälen, die entsprechend mit der ersten GPU 101 und der zweiten GPU 102 verbunden sind, und ein Kanal ist mit dem Verteilungsschaltungsmodul 105 verbunden. Es werden Daten zwischen dem globalen gemeinsam benutzten Speicher 106 und dem ersten Blockpuffer 107 der ersten GPU 101 oder dem zweiten Blockpuffer 108 der zweiten GPU 102 über die beiden Kanäle ausgetauscht, und das Verteilungsschaltungsmodul 105 wird nur für die Steuerung der Verteilung der Zugriffe der ersten GPU 101 und der zweiten GPU 102 verwendet.According to an alternative embodiment of the present invention, the global shared memory 106 further comprise channels respectively connected to respective GPUs, and the data is directly shared between the global shared memory 106 and corresponding GPUs exchanged over the channels. As in 1 is the global shared memory 106 a multichannel memory with two channels, corresponding to the first GPU 101 and the second GPU 102 and a channel is connected to the distribution circuit module 105 connected. There will be data between the global shared memory 106 and the first block buffer 107 the first GPU 101 or the second block buffer 108 the second GPU 102 exchanged over the two channels, and the distribution circuit module 105 is only for controlling the distribution of accesses of the first GPU 101 and the second GPU 102 used.

Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung kann das Verteilungsschaltungsmodul 105 ein einzelnes Modul sein. Das Verteilungsschaltungsmodul 105 kann auch ein Teil des globalen gemeinsam benutzten Speichers 106 oder ein Teil entsprechender GPUs sein. Anders ausgedrückt, das Verteilungsschaltungsmodul 105 kann in entsprechenden GPUs oder in dem globalen gemeinsam benutzten Speicher 106 integriert sein. Das Verteilungsschaltungsmodul 105, wenn es als ein einzelnes Modul realisiert ist, vorteilhaft für die Steuerung die Verwaltung benutzt werden und kann beizeiten ausgetauscht werden, wenn ein Fehler auftritt. Die Integration des Verteilungsschaltungsmoduls 105 in entsprechende GPUs oder in den globalen gemeinsam benutzten Speicher 106 erfordert, dass die GPU oder der globale gemeinsam benutzte Speicher separat entworfen oder hergestellt werden. According to a preferred embodiment of the present invention, the distribution circuit module 105 be a single module. The distribution circuit module 105 can also be part of the global shared memory 106 or be part of appropriate GPUs. In other words, the distribution circuit module 105 can work in appropriate GPUs or in the global shared memory 106 be integrated. The distribution circuit module 105 When implemented as a single module, the management can be advantageously used for the control and can be swapped in time when an error occurs. The integration of the distribution circuit module 105 into appropriate GPUs or global shared memory 106 requires that the GPU or global shared memory be designed or manufactured separately.

Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung kann das Verteilungsschaltungsmodul 105 eine beliebige Schaltung sein, die in der Lage ist, den oben genannten Verteilungsmechanismus zu realisieren, wozu gehören, ohne einschränkend zu sein, ein FPGA, ein Einzelchip-Mikrocomputer und eine Logikgatter-Schaltungen, usw. gehören.According to a preferred embodiment of the present invention, the distribution circuit module 105 Any circuit capable of realizing the above-mentioned distribution mechanism including, but not limited to, an FPGA, a single-chip microcomputer, and logic gate circuits, and so forth.

3 ist eine schematische Blockansicht eines Systems zur Datenübertragung 300 gemäß einer weiteren Ausführungsform der vorliegenden Erfindung. Gemäß der Ausführungsform ist das Verteilungsschaltungsmodul 305 so ausgebildet, dass es in der Lage ist, mit entsprechenden GPUs zu kommunizieren, und die Daten werden zwischen dem globalen gemeinsam benutzten Speicher 306 und entsprechenden GPUs über das Verteilungsschaltungsmodul 305 ausgetauscht. Der globale gemeinsam benutzte Speicher 306 ist nur mit dem Verteilungsschaltungsmodul verbunden und kann als eine beliebige Art von Speicher realisiert sein. Wie in 3 gezeigt ist, werden die Daten zwischen dem globalen gemeinsam benutzten Speicher 306 und dem ersten Blockpuffer 307 der ersten GPU 301 oder dem zweiten Blockpuffer 308 der zweiten GPU 302 über das Verteilungsschaltungsmodul 305 ausgetauscht. Das Verteilungsschaltungsmodul 305 kann so ausgebildet sein, dass es für eine Datenübertragung zwischen dem globalen gemeinsam benutzten Speicher 306 und entsprechenden GPUs verwendet wird mit Ausnahme der Verteilungssteuerung der Zugriffe der ersten GPU 301 und der zweiten GPU 302. Durch Verwendung der Konfiguration des Systems 300 kann ein herkömmlicher Speicher, beispielsweise ein SRAM, ein SDRAM, usw., anstelle eines globalen gemeinsam benutzten Speichers mit mehreren Kanälen verwendet werden. 3 is a schematic block diagram of a system for data transmission 300 according to another embodiment of the present invention. According to the embodiment, the distribution circuit module is 305 designed so that it is able to communicate with appropriate GPUs, and the data is shared between the global shared memory 306 and corresponding GPUs via the distribution circuit module 305 replaced. The global shared memory 306 is connected only to the distribution circuit module and can be realized as any type of memory. As in 3 As shown, the data is shared between the global shared memory 306 and the first block buffer 307 the first GPU 301 or the second block buffer 308 the second GPU 302 via the distribution circuit module 305 replaced. The distribution circuit module 305 may be configured to allow for data transfer between the global shared memory 306 and corresponding GPUs except the distribution control of accesses of the first GPU 301 and the second GPU 302 , By using the configuration of the system 300 For example, a conventional memory such as an SRAM, an SDRAM, etc. may be used instead of a multi-channel global shared memory.

Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zur Datenübertragung bereitgestellt. Das Verfahren umfasst: Übertragen von Daten von einer GPU aus mehreren GPUs zu einer weiteren GPU der mehreren GPUs über einen globalen gemeinsam benutzten Speicher; während der Übertragung, Verteilen einer Zugriffsanforderung für den globalen gemeinsam benutzten Speicher von jeweiligen GPUs aus den mehreren GPUs mittels eines Verteilungsschaltungsmoduls.According to another aspect of the present invention, a method of data transmission is provided. The method includes: transmitting data from a GPU from multiple GPUs to another GPU of the plurality of GPUs via a global shared memory; during transmission, distributing a global shared memory access request from respective GPUs from the plurality of GPUs using a distribution circuit module.

Gemäß einer Ausführungsform der vorliegenden Erfindung kann die Verteilung umfassen: wenn die Zugriffsanforderung an das Verteilungsschaltungsmodul durch eine GPU aus den mehreren GPUs gesendet wird, Zulassen, mittels des Verteilungsschaltungsmoduls, dass die eine GPU aus den mehreren GPUs auf den globalen gemeinsam benutzten Speicher zugreift, wenn der globale gemeinsam benutzte Speicher in einem untätigen Zustand ist; und nicht Zulassen, mittels des Verteilungsschaltungsmoduls, dass die eine GPU der mehreren GPUs auf den globalen gemeinsam benutzten Speicher zugreift, wenn der globale gemeinsam benutzte Speicher in einem beschäftigten Zustand ist.According to an embodiment of the present invention, the distribution may include: when the access request to the distribution circuit module is sent by the GPU from the plurality of GPUs, allowing the distribution circuit module to access the global shared memory from the plurality of GPUs the global shared memory is in an idle state; and not allowing, by the distribution circuit module, the one GPU of the plurality of GPUs to access the global shared memory when the shared global memory is in a busy state.

Gemäß einer Ausführungsform der vorliegenden Erfindung kann die Übertragung von Daten umfassen: Schreiben der Daten in den globalen gemeinsam benutzten Speicher durch die eine GPU der mehreren GPUs; und Lesen der Daten aus dem globalen gemeinsam benutzten Speicher durch die weitere GPU der mehreren GPUs.According to one embodiment of the present invention, the transfer of data may include: writing the data to the global shared memory by the one GPU of the plurality of GPUs; and reading the data from the global shared memory by the further GPU of the plurality of GPUs.

Alternativ kann die Übertragung von Daten auch beinhalten, dass Daten aus einem lokalen Gerätespeicher, der der einen GPU der mehreren GPUs zugeordnet ist, durch die eine GPU der mehreren GPUs gelesen werden, bevor die Daten in den globalen gemeinsam benutzten Speicher durch die eine GPU der mehreren GPUs geschrieben werden.Alternatively, the transmission of data may also include reading data from a local device memory associated with the one GPU of the plurality of GPUs by the one GPU of the plurality of GPUs before the data is transferred to the global shared memory by the one GPU multiple GPUs are written.

Alternativ kann die Übertragung von Daten auch umfassen, dass die gelesenen Daten in einen lokalen Gerätespeicher, der der weiteren GPU der mehreren GPUs zugeordnet ist, durch die weitere GPU der mehreren GPUs geschrieben wird, bevor die Daten aus dem globalen gemeinsam benutzten Speicher durch die weitere GPU der mehreren GPUs gelesen werden.Alternatively, the transmission of data may also include writing the read data into a local device memory associated with the other GPUs of the plurality of GPUs by the further GPU of the plurality of GPUs before transferring the data from the global shared memory through the further one GPU of multiple GPUs are read.

4 zeigt ein Flussdiagramm eines Verfahrens zur Datenübertragung 400 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Insbesondere verriegelt im Schritt 401 die erste GPU 101 den globalen gemeinsam benutzten Speicher 106 mittels des Verteilungsschaltungsmoduls 105. Der Verriegelungsvorgang der oben genannte Verteilungsvorgang. Die erste GPU 101 sendet eine Zugriffsanforderung an das Verteilungsschaltungsmodul 105, und das Verteilungsschaltungsmodul 105 deaktiviert die Zugriffsmöglichkeit der zweiten GPU 102 und autorisiert die erste GPU 101. Anschließend wird im Schritt 402 ein Teil oder die Gesamtheit der Daten in dem ersten lokalen Gerätespeicher 103 von der ersten GPU 101 abhängig von der Größe der Daten und der Größe des globalen gemeinsam benutzten Speichers 106 gelesen und in den ersten Blockpuffer 107 in der ersten GPU 101 geschrieben. Im Schritt 403 werden die Daten in dem ersten Blockpuffer 107 in den globalen gemeinsam benutzten Speicher 106 geschrieben. Im Schritt 404 entriegelt die erste GPU 101 den globalen gemeinsam benutzten Speicher 106 mittels des Verteilungsschaltungsmoduls 105, das das Zugriffsrecht für die erste GPU 101 beendet. Im Schritt 405 verriegelt die zweite GPU 102 den globalen gemeinsam benutzten Speicher 106 mittels des Verteilungsschaltungsmoduls 105. Der Verriegelungsvorgang ist der gleiche wie bei der ersten GPU 101. Die zweite GPU 102 hat das Recht, zu dieser Zeit auf den globalen gemeinsam benutzten Speicher 106 zu zugreifen. Im Schritt 406 werden die Daten in dem globalen gemeinsam benutzten Speicher 106 von der zweiten GPU 102 gelesen und in den zweiten Blockpuffer 108 in der zweiten GPU 102 geschrieben. Im Schritt 407 werden die Daten in dem zweiten Blockpuffer 108 in den zweiten lokalen Gerätespeicher 104, der der zweiten GPU 102 zugeordnet ist, geschrieben. Anschließend entriegelt im Schritt 408 die zweite GPU 102 den globalen gemeinsam benutzten Speicher 106 mittels des Verteilungsschaltungsmoduls 105, das das Zugriffsrecht der zweiten GPU 102 beendet. Im Schritt 409 wird beurteilt, ob die Datenübertragung abgeschlossen ist. Wenn die Datenübertragung abgeschlossen ist, dann geht das Verfahren 400 weiter zum Schritt 410, in welchem das Verfahren 400 endet. Wenn die Datenübertragung nicht abgeschlossen ist, dann geht das Verfahren 400 zurück zum Schritt 401 und wiederholt die zuvor genannten Schritte des Verfahrens 400, bis alle Daten aus dem ersten lokalen Gerätespeicher 103, der der ersten GPU 101 zugeordnet ist, in den zweiten lokalen Gerätespeicher 104, der der zweiten GPU 102 zugeordnet ist, übertragen sind. 4 shows a flowchart of a method for data transmission 400 according to a preferred embodiment of the present invention. In particular, locked in step 401 the first GPU 101 the global shared memory 106 by means of the distribution circuit module 105 , The locking process of the above distribution process. The first GPU 101 sends an access request to the distribution circuit module 105 , and the distribution circuit module 105 disables the accessibility of the second GPU 102 and authorizes the first GPU 101 , Subsequently, in step 402 some or all of the data in the first local device memory 103 from the first GPU 101 depending on the size of the data and the size of the global shared memory 106 read and in the first block buffer 107 in the first GPU 101 written. In step 403 the data will be in the first block buffer 107 in the global shared memory 106 written. In step 404 unlocks the first GPU 101 the global shared memory 106 by means of the distribution circuit module 105 that the access right for the first GPU 101 completed. In step 405 locks the second GPU 102 the global shared memory 106 by means of the distribution circuit module 105 , The locking process is the same as the first GPU 101 , The second GPU 102 has the right at this time to the global shared memory 106 to access. In step 406 The data is stored in the global shared memory 106 from the second GPU 102 read and in the second block buffer 108 in the second GPU 102 written. In step 407 the data will be in the second block buffer 108 in the second local device memory 104 , the second GPU 102 is assigned, written. Then unlocked in step 408 the second GPU 102 the global shared memory 106 by means of the distribution circuit module 105 that the access rights of the second GPU 102 completed. In step 409 it is judged if the data transmission is completed. When the data transfer is complete, then the procedure goes 400 continue to step 410 in which the method 400 ends. If the data transfer is not completed, then the procedure goes 400 back to the step 401 and repeats the aforementioned steps of the method 400 until all data from the first local device memory 103 , the first GPU 101 is assigned to the second local device memory 104 , the second GPU 102 is assigned, are transmitted.

Wie in der entsprechenden Beschreibung der Ausführungsformen des Systems zur Datenübertragung beschrieben ist, muss der lokale Gerätespeicher nicht notwendigerweise an dem obigen Datenübertragungsvorgang beteiligt sein.As described in the corresponding description of the embodiments of the data transmission system, the local device memory does not necessarily have to be involved in the above data transfer operation.

Es sind die GPU, der globale gemeinsam benutzte Speicher und das Verteilungsschaltungsmodul, die in dem oben genannten Verfahren beteiligt sind, in der Beschreibung mittels Ausführungsformen des Systems zur Datenübertragung beschrieben. Der Kürze halber ist eine detaillierte Beschreibung davon weggelassen. Der Fachmann versteht die spezielle Struktur und die Funktionsweise davon jedoch mit Verweis auf 1 bis 4 in Verbindung mit der oben genannten Beschreibung.The GPU, the global shared memory and the distribution circuit module involved in the above-mentioned method are described in the description by means of embodiments of the data transmission system. For the sake of brevity, a detailed description thereof is omitted. However, one skilled in the art will understand the specific structure and operation thereof with reference to 1 to 4 in conjunction with the above description.

In einem noch weiteren Aspekt der vorliegenden Erfindung ist auch eine Grafikkarte, die das obige System zur Datenübertragung enthält, bereitgestellt. Der Kürze halber ist eine detaillierte Beschreibung davon jedoch weggelassen. Der Fachmann versteht den speziellen Aufbau und die Funktionsweise der Grafikkarte durch Verweis auf 1 bis 4 in Verbindung mit der vorhergehenden Beschreibung.In yet another aspect of the present invention, a graphics card incorporating the above data transmission system is also provided. For the sake of brevity, however, a detailed description thereof has been omitted. The expert understands the specific structure and operation of the graphics card by reference to 1 to 4 in conjunction with the previous description.

Ein Datenaustausch zwischen unterschiedlichen GPUs kann in der oben genannten Grafikkarte realisiert werden.A data exchange between different GPUs can be realized in the above graphic card.

Das System und das Verfahren zur Datenübertragung, die durch die vorliegende Erfindung bereitgestellt werden, ermöglichen es entsprechenden GPUs in dem System, Daten über den globalen gemeinsam benutzten Speicher anstatt über eine PCIE-Schnittstelle auszutauschen, wodurch eine Nutzung von Bandbreite gemeinsam mit einem CPU-Bus vermieden wird, wodurch somit die Übertragungsgeschwindigkeit größer ist.The data transmission system and method provided by the present invention enable corresponding GPUs in the system to exchange data over the global shared memory rather than via a PCIE interface, thereby sharing bandwidth with a CPU bus is avoided, thus increasing the transmission speed is greater.

Die vorliegende Erfindung ist durch die zuvor genannten Ausführungsformen beschrieben. Zu beachten ist jedoch, dass die zuvor genannten Ausführungsformen dem Zweck der Darstellung und der Beschreibung dienen und nicht zu dem Zwecke gedacht sind, die vorliegende Erfindung auf den Schutzbereich der beschriebenen Ausführungsformen einzuschränken. Der Fachmann erkennt, dass die vorliegende Erfindung nicht auf die zuvor genannten Ausführungsformen beschränkt ist und dass diverse Modifizierungen und Anpassungen entsprechend der Lehre der vorliegenden Erfindung vorgenommen werden können und innerhalb des Schutzbereichs und des Grundgedankens der vorliegenden Erfindung liegen. Der Schutzbereich der vorliegenden Erfindung ist durch die folgenden Patentansprüche und deren Äquivalenzbereich weiter festgelegt.The present invention is described by the aforementioned embodiments. It should be noted, however, that the foregoing embodiments are for the purpose of illustration and description and are not intended to limit the present invention to the scope of the described embodiments. Those skilled in the art will recognize that the present invention is not limited to the aforesaid embodiments and that various modifications and adaptations can be made in accordance with the teachings of the present invention and are within the scope and spirit of the present invention. The scope of the present invention is further defined by the following claims and their equivalents.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • CN 201210448813 [0001] CN 201210448813 [0001]

Claims (10)

Ein System zur Datenübertragung mit: mehreren grafischen Verarbeitungseinheiten; einem globalen gemeinsam benutzten Speicher zur Speicherung von Daten, die zwischen den mehreren grafischen Verarbeitungseinheiten ausgetauscht werden; und einem Verteilungsschaltungsmodul, das mit jeder der mehreren grafischen Verarbeitungseinheiten und dem globalen gemeinsam benutzten Speicher verbunden und ausgebildet ist, eine Zugriffsanforderung für den globalen gemeinsam benutzten Speicher aus entsprechenden grafischen Verarbeitungseinheiten so zu verteilen, dass ein Zugriffskonflikt zischen den mehreren grafischen Verarbeitungseinheiten vermieden wird.A system for data transmission with: several graphical processing units; a shared global memory for storing data exchanged between the plurality of graphics processing units; and a distribution circuit module connected to each of the plurality of graphics processing units and the global shared memory and configured to distribute a global shared memory access request from respective graphics processing units so as to avoid an access conflict between the plurality of graphics processing units. Das System nach Anspruch 1, wobei das System ferner mehrere lokale Gerätespeicher umfasst, wovon jeder mit jeweils einer entsprechenden der mehreren grafischen Verarbeitungseinheiten verbunden ist.The system of claim 1, wherein the system further comprises a plurality of local device memories, each of which is connected to a respective one of the plurality of graphics processing units. Das System nach Anspruch 1, wobei jede der mehreren grafischen Verarbeitungseinheiten einen Blockpuffer aufweist, der ausgebildet ist, Daten zwischenzuspeichern, die von jeder der mehreren grafischen Verarbeitungseinheiten übertragen werden, und wobei eine Größe des Blockpuffers nicht größer als eine Größe des globalen gemeinsam benutzten Speichers ist.The system of claim 1, wherein each of the plurality of graphics processing units includes a block buffer configured to cache data transmitted from each of the plurality of graphics processing units, and wherein a size of the block buffer is not greater than a size of the shared global memory , Das System nach Anspruch 3, wobei die Größe des Blockpuffers so konfigurierbar ist, dass: die Daten an den globalen gemeinsam benutzten Speicher über den Blockpuffer in Gruppen gesendet werden, wenn eine Größe der Daten größer als die Größe des globalen gemeinsam benutzten Speichers ist; und die Daten an den globalen gemeinsam benutzten Speicher über den Blockpuffer auf einmal gesendet werden, wenn die Größe der Daten nicht größer als die Größe des globalen gemeinsam benutzten Speichers ist.The system of claim 3, wherein the size of the block buffer is configurable such that: the data is sent to the global shared memory via the block buffer in groups when a size of the data is greater than the size of the global shared memory; and the data is sent to the global shared memory via the block buffer at a time when the size of the data is not larger than the size of the shared global memory. Das System nach Anspruch 1, wobei das Verteilungsschaltungsmodul so ausgebildet ist, dass: wenn eine Zugriffsanforderung an das Verteilungsschaltungsmodul von einer grafischen Verarbeitungseinheit der mehreren grafischen Verarbeitungseinheiten gesendet wird, das Verteilungsschaltungsmodul es der einen grafischen Verarbeitungseinheit der mehreren grafischen Verarbeitungseinheiten gestattet, auf den globalen gemeinsam benutzten Speicher zuzugreifen, wenn der globale gemeinsam benutzte Speicher in einem untätigen Zustand ist; und das Verteilungsschaltungsmodul es der einen grafischen Verarbeitungseinheit der mehreren grafischen Verarbeitungseinheiten nicht gestattet, auf den globalen gemeinsam benutzten Speicher zuzugreifen, wenn der globale gemeinsam benutzte Speicher in einem beschäftigten Zustand ist.The system of claim 1, wherein the distribution circuit module is configured to: when an access request is sent to the distribution circuit module from a graphical processing unit of the plurality of graphics processing units, the distribution circuit module allows the one graphic processing unit of the plurality of graphics processing units to access the global shared memory when the shared global memory is in an idle state; and the distribution circuit module does not allow the one graphic processing unit of the plurality of graphics processing units to access the global shared memory when the shared global memory is in a busy state. Das System nach Anspruch 1, wobei jede der mehreren grafischen Verarbeitungseinheiten eine PCIE-Schnittstelle zur Datenübertragung zwischen den mehreren grafischen Verarbeitungseinheiten bei Vorhandensein des Zugriffskonflikts umfasst.The system of claim 1, wherein each of the plurality of graphics processing units includes a PCIE interface for communicating data between the plurality of graphics processing units in the presence of the access conflict. Das System nach Anspruch 1, wobei der globale gemeinsam benutzte Speicher ferner Kanäle umfasst, die mit entsprechenden grafischen Verarbeitungseinheiten jeweils verbunden sind, und wobei die Daten direkt zwischen dem globalen gemeinsam benutzten Speicher und entsprechenden grafischen Verarbeitungseinheiten über die Kanäle ausgetauscht werden.The system of claim 1, wherein the global shared memory further comprises channels respectively connected to respective graphics processing units, and wherein the data is exchanged directly between the shared global memory and corresponding graphics processing units via the channels. Das System nach Anspruch 1, wobei das Verteilungsschaltungsmodul so ausgebildet ist, dass es in der Lage ist, mit jeweiligen grafischen Verarbeitungseinheiten zu kommunizieren, und wobei die Daten zwischen dem globalen gemeinsam benutzten Speicher und jeweiligen grafischen Verarbeitungseinheiten über das Verteilungsschaltungsmodul ausgetauscht werden.The system of claim 1, wherein the distribution circuit module is configured to be capable of communicating with respective graphics processing units, and wherein the data is exchanged between the global shared memory and respective graphics processing units via the distribution circuit module. Das System nach Anspruch 1, wobei das Verteilungsschaltungsmodul ein einzelnes Modul, ein Teil des globalen gemeinsam benutzten Speichers oder ein Teil entsprechender grafischer Verarbeitungseinheiten ist.The system of claim 1, wherein the distribution circuit module is a single module, a portion of the global shared memory, or a portion of corresponding graphics processing units. Das System nach Anspruch 1, wobei das Verteilungsschaltungsmodul aus einem FPGA und/oder einem Einzelchip-Mikrocomputer und/oder einer Logikgatter-Schaltung besteht.The system of claim 1, wherein the distribution circuit module consists of an FPGA and / or a single-chip microcomputer and / or a logic gate circuit.
DE201310018602 2012-11-09 2013-11-07 Data transmission system has distribution circuit module which distributes request to access global shared memory from corresponding graphics processing units (GPUs), so that access conflict between multiple GPUs is avoided Withdrawn DE102013018602A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201310018602 DE102013018602A1 (en) 2012-11-09 2013-11-07 Data transmission system has distribution circuit module which distributes request to access global shared memory from corresponding graphics processing units (GPUs), so that access conflict between multiple GPUs is avoided

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201210448813.8 2012-11-09
US13/754,069 US20140132611A1 (en) 2012-11-09 2013-01-30 System and method for data transmission
US13/754,069 2013-01-30
DE201310018602 DE102013018602A1 (en) 2012-11-09 2013-11-07 Data transmission system has distribution circuit module which distributes request to access global shared memory from corresponding graphics processing units (GPUs), so that access conflict between multiple GPUs is avoided

Publications (1)

Publication Number Publication Date
DE102013018602A1 true DE102013018602A1 (en) 2014-05-15

Family

ID=50555917

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201310018602 Withdrawn DE102013018602A1 (en) 2012-11-09 2013-11-07 Data transmission system has distribution circuit module which distributes request to access global shared memory from corresponding graphics processing units (GPUs), so that access conflict between multiple GPUs is avoided

Country Status (1)

Country Link
DE (1) DE102013018602A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115775199A (en) * 2022-11-23 2023-03-10 海光信息技术股份有限公司 Data processing method and device, electronic equipment and computer readable storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115775199A (en) * 2022-11-23 2023-03-10 海光信息技术股份有限公司 Data processing method and device, electronic equipment and computer readable storage medium
CN115775199B (en) * 2022-11-23 2024-04-16 海光信息技术股份有限公司 Data processing method and device, electronic equipment and computer readable storage medium

Similar Documents

Publication Publication Date Title
DE60308150T2 (en) ADDRESS ROOM, BUS SYSTEM, STORAGE CONTROL AND SETUP SYSTEM
DE2227882C2 (en) Virtual storage arrangement
DE69722117T2 (en) Uniform memory architecture with dynamic graphics memory allocation
DE102013106154B4 (en) Memory system and system on chip with linear address remapping logic
DE102007050864B4 (en) Method and apparatus for communicating command and address signals
DE69933328T2 (en) Reusable cache device and method
DE102006032832A1 (en) Network system and method for controlling distributed memory
DE102008005865A1 (en) A semiconductor memory device, method for controlling access to a mailbox in a semiconductor memory device and computer-readable storage medium
DE102013018135B4 (en) Address bit remapping scheme for reducing an access resolution of DRAM accesses
DE112013004783T5 (en) Read and write masks controlled vector move command
DE102006043311A1 (en) storage system
DE112008002273T5 (en) Optimum solution for controlling data channels
DE102008008196A1 (en) Memory card, storage system and method of operating a storage system
DE112010005609T5 (en) Storing data in one of a plurality of buffers in a memory controller
DE102021111195A1 (en) System and method for on-chip memory (OCM) port throttling for machine learning operations
DE112004000694T5 (en) A method and apparatus for improving multi-CPU system performance for memory accesses
DE60009817T2 (en) Shared memory distributing multiprocessor device
DE102019132485A1 (en) Management of access restrictions within a system-on-chip
DE602004008712T2 (en) A memory bandwidth control device
WO1996016366A1 (en) Arrangement with master and slave units
DE2558417A1 (en) DATA PROCESSING SYSTEM
DE102013018602A1 (en) Data transmission system has distribution circuit module which distributes request to access global shared memory from corresponding graphics processing units (GPUs), so that access conflict between multiple GPUs is avoided
DE102005040109B4 (en) Semiconductor memory chip
DE102009027567A1 (en) Cache memory device
DE102005046997B4 (en) Device for storing memory words

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee