DE102022003661B3 - Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem - Google Patents

Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem Download PDF

Info

Publication number
DE102022003661B3
DE102022003661B3 DE102022003661.4A DE102022003661A DE102022003661B3 DE 102022003661 B3 DE102022003661 B3 DE 102022003661B3 DE 102022003661 A DE102022003661 A DE 102022003661A DE 102022003661 B3 DE102022003661 B3 DE 102022003661B3
Authority
DE
Germany
Prior art keywords
processor
computing device
processor cores
information
output
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.)
Active
Application number
DE102022003661.4A
Other languages
English (en)
Inventor
Thorsten Wilmer
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.)
Mercedes Benz Group AG
Original Assignee
Mercedes Benz Group AG
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
Application filed by Mercedes Benz Group AG filed Critical Mercedes Benz Group AG
Priority to DE102022003661.4A priority Critical patent/DE102022003661B3/de
Priority to PCT/EP2023/075624 priority patent/WO2024074293A1/de
Application granted granted Critical
Publication of DE102022003661B3 publication Critical patent/DE102022003661B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • G06F15/825Dataflow computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)

Abstract

Die Erfindung betrifft eine Rechenvorrichtung (1) umfassend eine Prozessoreinheit (2) mit einer Vielzahl zusammenwirkender Rechenkerne (2.1) und einer Vielzahl den Rechenkernen (2.1) zugeordneten Speicherelementen (2.2) sowie mit wenigstens einer Eingangsschnittstelle (3) zum Empfangen von den Rechenkernen (2.1) zu verarbeitenden Informationen und wenigstens einer Ausgangsschnittstelle (4) zum Ausgeben von den Rechenkernen (2.1) verarbeiteter Informationen. Die erfindungsgemäße Rechenvorrichtung ist dadurch gekennzeichnet, dass die Speicherelemente (2.2) durch Dual-Port-RAM ausgebildet sind, jeder Prozessorkern (2.1) über genau zwei Eingänge (E) zum Empfangen von Informationen und über genau einen Ausgang (A) zum Ausgeben von Informationen verfügt, wobei jeder Eingang (E) und jeder Ausgang (A) jeweils durch ein Speicherelement (2.2) ausgebildet ist und eine physische Distanz (d) ausgehend von einem jeweiligen Prozessorkern (2.1) zu den an den Prozessorkern (2.1) angeschlossenen Speicherelementen (2.2) äquidistant ist.

Description

  • Die Erfindung betrifft eine Rechenvorrichtung nach der im Oberbegriff von Anspruch 1 näher definierten Art, ein Verfahren zur Lastverteilung für eine solche Rechenvorrichtung sowie ein Computersystem mit einer solchen Rechenvorrichtung.
  • Prozessoren stellen elementare Bestandteile von Computereinrichtungen dar. Prozessoren gibt es in verschiedenen Ausführungen, wie als zentrale Verarbeitungseinheit für PCs, auch als Central Processing Unit oder kurz CPU bezeichnet, oder auch als integrierte Schaltungen in Form von Mikroprozessoren und Mikrocontrollern in eingebetteten Systemen. Eine CPU zeichnet sich durch vergleichsweise wenige, jedoch rechenstarke Rechenkerne bzw. Prozessorkerne aus. Dies ermöglicht das Ausführen von vergleichsweise komplexen und rechenaufwändigen Programmen. Eine Parallelisierung von Programmabläufen ist ebenfalls möglich. CPUs sind dazu ausgelegt eine breite Palette unterschiedlich gearteter Aufgaben- und Problemstellungen zu lösen.
  • Prozessoren sind auch in Form sogenannter Grafikprozessoren, kurz GPU, ausgeführt. Im Vergleich zur CPU zeichnen sich moderne GPUs durch eine Vielzahl an Rechenkernen in einer Größenordnung von mehreren tausend Einheiten pro Chip aus. Hierbei handelt es sich um vergleichsweise leistungsschwache Rechenkerne, welche zur Lösung einer Handvoll spezieller Aufgaben optimiert sind. So werden GPUs hauptsächlich zum Berechnen von Matrizen bzw. Tensoren verwendet, beispielsweise zur Grafikberechnung oder zur Bereitstellung/Beschleunigung künstlicher Intelligenz. GPUs eignen sich daher insbesondere zur parallelen Bearbeitung von Aufgaben.
  • Die Bereitstellung der durch die Prozessorkerne des Grafikprozessors zu verarbeitenden Informationen, insbesondere die Anbindung an eine CPU, erfolgt typischerweise über ein Bussystem wie PCI Express (PCIe). Das Verarbeiten der entsprechenden Informationen durch die Prozessorkerne des Grafikprozessors erfordert es diese Informationen vor, während und nach der Verarbeitung zwischenzuspeichern. Hierzu sind diverse prozessorinterne wie prozessorexterne (jedoch auf einer gemeinsamen Platine angeordnete) Speicherelemente bekannt.
  • Typischerweise werden diese Speicherelemente innerhalb bzw. auf einem Grafikprozessor in einer zweidimensionalen Struktur angeordnet. Dabei sind die einzelnen Komponenten typischerweise rechtwinklig verteilt. Dies führt dazu, dass die physischen Distanzen zwischen den Prozessorkernen und den zur Informationsübertragung verwendeten Schnittstellen, beispielsweise den besagten Speicherelementen, Busanbindungen und/oder weiteren Prozessorkernen, unterschiedlich lang ausfallen. Entsprechend wird mehr Zeit benötigt um die Informationen durch eine entsprechend längere Datenleitung zu versenden. Hierdurch steigen Latenzen an, wodurch der Grafikprozessor weniger effizient arbeitet.
  • Aus der US 2015/0255130 A1 ist ein DDR4-SSD Dual-Port DIMM Gerät bekannt. Es handelt sich hierbei um ein Gerät, welches sowohl als Arbeitsspeicher, als auch als Hauptspeicher, also Massenspeicher wie eine Festplatte oder SSD, verwendbar ist. Das Gerät kann über einen RAM Steckplatz oder PCIe Steckplatz an das Bussystem eines Mainboards angeschlossen werden. Dank der Ausführung der verwendeten Speicherelemente als Dual-Port-Speicherelemente ist ein gleichzeitiger Schreib- sowie ein gleichzeitiger Lesezugriff auf das Gerät durch zwei Hostsysteme möglich. Die Anordnung der Speicherelemente erfolgt auch hier entlang zueinander paralleler bzw. orthogonal verlaufender Linien, also quadratisch bzw. rechteckförmig.
  • Zudem ist es für einen Fachmann gängige Praxis eine Recheneinheit mit einem Mehrkernprozessor zu verwenden, um mehrere Aufgaben parallel und damit auf besonders effiziente Art und Weise abzuarbeiten, was belegt ist durch: Multi-core processor. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 04.09.2022. URL: https://en.wikipedia.org/w/index.php?title=Multi-core_processor&oldid= 1108514820.
  • Die gängige Anbindung von Speicherelementen an die einzelnen Prozessorkerne eines Prozessors ist dem Fachmann beispielsweise geläufig aus: CPU cache. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 30.09.2022. URL:
    • https://en.wikipedia.org/w/index.php?title=CPU_cache&oldid=1113266567. So ist es gängige Praxis mehrstufige Caches vorzuhalten. Dabei wird jedem Prozessorkern ein eigener L1-Cache zugeordnet. Mehrere Prozessorkerne können einen L2 oder auch L3 Cache gemeinsam nutzen. Ein entsprechender Cache kann dabei als multi-ported Cache ausgeführt sein.
  • Zudem offenbart die US 2009 / 0 216 924 A1 ein Verbundsystem, zeigend zu einer Sechseckwabe angeordnete Prozessorkerne.
  • Eine solche Anordnung von Prozessorkernen ist auch aus der US 2020 / 0 243 154 A1 bekannt.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde eine verbesserte Rechenvorrichtung anzugeben, welche sich durch eine gesteigerte Recheneffizienz auszeichnet.
  • Erfindungsgemäß wird diese Aufgabe durch eine Rechenvorrichtung mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen sowie ein Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und ein Computersystem mit einer solchen Rechenvorrichtung ergeben sich aus den hiervon abhängigen Ansprüchen.
  • Eine gattungsgemäße Rechenvorrichtung, umfassend eine Prozessoreinheit mit einer Vielzahl zusammenwirkender Prozessorkerne und einer Vielzahl den Prozessorkernen zugeordneter Speicherelemente sowie mit wenigstens einer Eingangsschnittstelle zum Empfangen von den Prozessorkernen zu verarbeitenden Informationen und wenigstens einer Ausgabeschnittstelle zum Ausgeben von den Prozessorkernen verarbeiteter Informationen, wird erfindungsgemäß dadurch weitergebildet, dass die Speicherelemente durch Dual-Port-RAM ausgebildet sind, jeder Prozessorkern über genau zwei Eingänge zum Empfangen von Informationen und über genau einen Ausgang zum Ausgeben von Informationen verfügt und an genau drei Speicherelemente angeschlossen ist, wobei die ersten zwei dieser drei Speicherelemente jeweils einen der beiden Eingänge des Prozessorkerns ausbilden und das dritte Speicherelement den Ausgang des Prozessorkerns ausbildet, die drei Speicherelemente sternförmig jeweils in einem Winkel von 120° zueinander um den Prozessorkern angeordnet sind, und eine physische Distanz ausgehend von einem jeweiligen Prozessorkern zu den an den Prozessorkern angeschlossenen Speicherelementen äquidistant ist.
  • Der erfindungsgemäßen Rechenvorrichtung liegt die Idee zugrunde, die physische Distanz der Speicheranbindung der jeweiligen Prozessorkerne gleichartig auszugestalten, sodass der Abstand zwischen einem jeweiligen Prozessorkern und den daran angeschlossenen Speicherelementen gleichlang ausfällt. Die erforderliche Zeitdauer, um eine Prozessorkern mit den zu verarbeitenden Informationen zu versorgen bzw. die verarbeiteten Informationen aus einem Prozessorkern auszuleiten, ist somit für jeden Prozessorkern gleich. Dies erhöht die Effizienz der Prozessoreinheit, da somit Informationen von Prozesskern zu Prozessorkern gleichschnell weitergereicht werden und somit ein Prozessorkern, der Informationen von in Datenflussrichtung zwei vorgeordneten Prozessorkernen empfängt, nach dem Empfangen der Informationen von einem ersten Prozessorkern nicht erst noch auf die von einem zweiten Prozessorkern gesendeten Informationen warten muss, da beide Informationen zeitgleich eintreffen. Dies ermöglicht eine besonders schnelle Datenverarbeitung.
  • Bei der Prozessoreinheit kann es sich beispielsweise um eine zentrale Verarbeitungseinheit, kurz CPU, oder auch einen Grafikprozessor, kurz GPU, handeln. Bei der Rechenvorrichtung handelt es sich um einen entsprechenden Chip bzw. eine Leiterplatte oder Platine, wie eine Karte, beispielsweise eine Grafikkarte. Die Grundfläche der Prozessoreinheit kann quadratisch oder rechteckig sein. Auch kommt eine beliebige polygonale Flächenform in Frage. Insbesondere sind die Prozessorkerne gleichartig ausgeführt und weisen besonders bevorzugt dieselbe geometrische Gestalt, also dieselbe geometrische Form und denselben Flächeninhalt, auf.
  • Die Rechenvorrichtung kann in ein übergeordnetes Computersystem integriert sein. Weitere Komponenten der Rechenvorrichtung und/oder des entsprechenden Computersystems können auf die Eingangsschnittstelle bzw. die Ausgangsschnittstelle auch einen direkten Speicherzugriff, also Schreib- und/oder Lesezugriff, aufweisen. Dies wird auch als Direct Memory Access (DMA) bezeichnet.
  • Die einzelnen Prozessorkerne können nun je nach Implementierung ein festes Programm abarbeiten, beispielsweise ein von einem Read Only Memory (ROM) ausgelesenes Programm, wobei der ROM Teil der Rechenvorrichtung oder auch des übergeordneten Computersystems sein kann, oder die Prozessorkerne können Informationen aus einen Random Access Memory (RAM) auslesen und interpretieren, und somit vom RAM umfassten Code als Instruktionen ausführen.
  • Da jeder Prozessorkern zwei Eingänge und einen Ausgang aufweist, kann jede zu verarbeitende Funktion direkt parallel ausgeführt werden, da jeder Prozessorkern auch zwei Operanden gleichzeitig einlesen kann.
  • Dabei sind erfindungsgemäß ein jeweiliger Prozessorkern und die seine beiden Eingänge und seinen Ausgang ausbildenden Speicherelemente sternförmig auf der Prozessoreinheit angeordnet, wobei ein Winkel zwischen den jeweiligen Speicherelementen 120 Grad beträgt. Hiermit ist eine besonders effektive Verteilung der Prozessorkerne auf der Prozessoreinheit möglich. So lässt sich unter Einhalten eines Raumwinkels von 120 Grad zwischen besagten Speicherelementen eine symmetrische Anordnung der Prozessorkerne erreichen und dabei die physische Distanz besonders einfach zwischen den jeweiligen Speicherelementen und Prozessorkernen äquidistant ausführen.
  • Bevorzugt sind dabei jeweils 6 Prozessorkerne auf der Prozessoreinheit in Form einer Sechseckwabe angeordnet. Dies ermöglicht auf einfache und zuverlässige Weise für jeden der Prozessorkerne den besagten Raumwinkel von 120 Grad zu den jeweiligen Speicherelementen einzuhalten und dabei die Distanz zwischen Prozessorkern und Speicherelement gleich auszuführen. Ein weiterer besonderer Vorteil dabei ist, dass sich die Distant entsprechender Datenleitungen gegenüber aus dem Stand der Technik bekannten Ausführungen, insbesondere einer längsten Datenleitung zwischen einem Prozessorkern und dem Prozessorkern zugeordnetem Speicherelement bei einer rechteckförmigen Anordnung, verkürzen lässt. Somit lassen sich Latenzen in der Datenverarbeitung noch weiter reduzieren.
  • Einzelne Prozessorkerne ein und derselben Sechseckwabe können dabei gleichzeitig auch Teil einer daran angrenzenden Sechseckwabe sein. Die Verteilung der Prozessorkerne auf der Prozessoreinheit lässt sich so wie die Waben in einem Bienenstock vergleichen. Besonders bevorzugt weist dann auch die Prozessoreinheit eine sechseckwabenförmige Querschnittsform auf. Die Prozessoreinheit lässt sich hierdurch zum einen besonders kompakt ausführen und ermöglicht dabei zum anderen die einzelnen Prozessorkerne ausreichend weit zueinander zu beabstanden, sodass eine ausreichend große Fläche zur Wärmeabfuhr bereitsteht. Dies verbessert das Thermomanagement der Rechenvorrichtung, sodass auf besonders große und komplexe Kühleinrichtungen verzichtet werden kann. Somit ist eine Kühlung mittels passiver oder einfacher aktiver Kühleinrichtungen möglich.
  • Eine weitere vorteilhafte Ausgestaltung der Rechenvorrichtung sieht ferner vor, dass die wenigstens eine Eingangsschnittstelle und die wenigstens eine Ausgangsschnittstelle jeweils durch Dual-Port-RAM ausgebildet sind und die wenigstens eine Eingangsschnittstelle einen Eingang eines in einer Verschaltungskette der Prozessorkerne am Perimeter der Verschaltungskette angeordneten Eingangskerns ausbildet und die wenigstens eine Ausgangsschnittstelle einen Ausgang eines am Perimeter der Verschaltungskette angeordneten Ausgangskern ausbildet. Die Eingangsschnittstelle und die Ausgangschnittstelle sind durch die Prozessoreinheit lesbar bzw. schreibbar. Ferner können weitere Komponenten der Rechenvorrichtung oder auch des der Rechenvorrichtung übergeordneten Computersystems Schreib- und/oder Lesezugriff auf die Eingangsschnittstelle und die Ausgangsschnittstelle aufweisen. Dank der Ausführung als Dual-Port-RAM ist dabei ein gleichzeitiger Schreibzugriff bzw. gleichzeitiger Lesezugriff durch die Prozessoreinheit sowie eine entsprechende hierzu andere Komponente möglich.
  • Bevorzugt sind dabei die wenigstens eine Eingangsschnittstelle und die wenigstens eine Ausgangschnittstelle an zwei gegenüberliegenden Seiten der Prozessoreinheit angeordnet. Zum Lösen einer Aufgabe, also zum Verarbeiten von Informationen, beispielsweise durch Abarbeiten eines Programms, werden Informationen durch die Prozessorkerne der Prozessoreinheit verarbeitet. Hierzu werden der Prozessoreinheit Informationen über die Eingangsschnittstelle bereitgestellt und die verarbeiteten Informationen an der Ausgangsschnittstelle ausgegeben. Es handelt sich hierbei um einen gerichteten Graphen, entlang welchem Informationen durch die Verschaltungskette der Prozessorkerne weitergereicht werden. Sind die Eingangsschnittstelle und die Ausgangsschnittstelle an den beiden Endpunkten des gerichteten Graphen angeordnet, so lässt sich ein besonders einfacher, und damit schnell durchwanderbarer gerichteter Graph aufbauen.
  • Eine weitere vorteilhafte Ausgestaltung der Rechenvorrichtung sieht ferner vor, dass die Rechenvorrichtung wenigstens eine zweite Eingangsschnittstelle und/oder wenigstens eine zweite Ausgangsschnittstelle aufweist. Somit lassen sich Informationen in den von den Prozessorkernen bereitgestellten Datenflussgraphen an mehreren Stellen zuführen bzw. ausleiten. Hierdurch wird die Parallelisierung von mehreren abzuarbeitenden Aufgaben durch die Prozessoreinheit erleichtert. Auch auf die weiteren Eingangsschnittstellen bzw. Ausgangsschnittstellen kann ein Zugriff mittels DMA möglich sein.
  • Entsprechend einer weiteren vorteilhaften Ausgestaltung der Rechenvorrichtung ist/sind die wenigstens eine zweite Eingangsschnittstelle und/oder die wenigstens eine zweite Ausgangsschnittstelle an einer anderen Seite an der Prozessoreinheit angeordnet, als die erste Eingangsschnittstelle und die erste Ausgangsschnittstelle. Der erfindungsgemäße Aufbau der Rechenvorrichtung erlaubt es Informationen durch die Verschaltungskette der Prozessorkerne, sprich den entsprechenden gerichteten Datenflussgraphen, nicht nur eindimensional entlang einer Linie durchzuleiten, sondern auch zweidimensional. Es lassen sich dann Informationen auch beispielsweise in der Mitte oder an einer sonstigen zwischengelagerten Stelle des entsprechenden Datenflussgraphen in diesen einleiten oder aus diesem ausleiten. Dies ermöglicht zum einen das Abarbeiten besonders komplexer Programme sowie zum anderen eine massive Parallelisierung, da mehrere vergleichsweise einfach lösbare Aufgaben einer Verteilung auf weniger Prozessorkerne erfordern und somit nicht alle Prozessorkerne des Datenflussgraphen in ein und dieselbe Aufgabe eingebunden werden müssen. Hierdurch stehen entsprechende weitere Prozessorkerne zur Lösung weiterer Aufgaben zur Verfügung.
  • Innerhalb der Verschaltungskette der Prozessorkerne in der Prozessoreinheit können somit „Inseln“ verknüpfter Prozessorkerne entstehen, wobei auf jeder Insel unterschiedliche Aufgaben abgearbeitet werden. Für jede Insel ist dann dank der zusätzlichen seitlich angeordneten Eingangs- und Ausgangsschnittstellen eine individuelle Informationszuführung und Informationsabfuhr möglich. Diese Inseln können auch als Gruppierung oder Cluster bezeichnet werden.
  • Die geographische Aufteilung der zu Inseln zusammengefassten Prozessorkerne auf der Prozessoreinheit orientiert sich dabei an der Komplexität der jeweiligen Aufgaben. Komplexe Aufgaben, die vergleichsweise viele Prozessorkerne erfordern, können dabei geographisch in einen zentralen Bereich der Prozessoreinheit ausgelagert sein, da hier eine Anbindung an Eingangs- und Ausgangsschnittstellen entfernt ist, was sich daher besonders gut für Aufgaben eignet, bei denen für längere Zeit bzw. eine Vielzahl an Rechenoperationen keine neuen Informationen in die Prozessorkette eingespeist werden müssen und das Ergebnis erst am Ende bereitgestellt werden muss. Einfachere Aufgaben können dann entsprechend auf Prozessorinseln verteilt sein, die eher im Randbereich der Prozessoreinheit verteilt sind. Dies ermöglicht eine einfache Zuleitung und Ausleitung von Informationen über besagte Eingangs- und Ausgangsschnittstellen.
  • Eine vorteilhafte Weiterbildung der erfindungsgemäßen Rechenvorrichtung sieht ferner vor, dass sämtliche Prozessorkerne mit einem im Wesentlichen identischen Takt arbeiten. Hierdurch lässt sich die Effizienz der erfindungsgemäßen Rechenvorrichtung noch weiter steigern. Wie bereits erwähnt sind die entsprechenden Datenleitungen zum Weiterleiten von Informationen in der Verschaltungskette der Prozessorkerne gleichlang, sodass Informationen gleichschnell zwischen Prozessorkernen ausgetauscht werden. Wenn nun auch die Prozessorkerne selbst jeweils zum Lösen einer Aufgabe durch eine im Wesentlichen identische Taktzeit gleich lange zum Verarbeiten der Informationen brauchen, so lassen sich die Latenzen in der Datenverarbeitung durch die Prozessoreinheit noch weiter senken. Erfordert also ein Prozessorkern Informationen von zwei vorgelagerten Prozessorkernen, so erhalten diese beiden vorgelagerten Prozessorkerne gleichzeitig Eingangsdaten, verarbeiten diese gleichzeitig und stellen diese auch gleichzeitig dem Prozessorkern zur weiteren Verarbeitung zur Verfügung.
  • Bevorzugt sind die Prozessorkerne dazu eingerichtet zwischen einem Schlafmodus und einem Aktivmodus zu wechseln, wobei ein jeweiliger Prozessorkern im Schlafmodus keine Information verarbeitet und im Aktivmodus Informationen verarbeitbar sind. Hierdurch lässt sich die Energieeffizienz der Prozessoreinheit verbessern. Je nach Komplexität der abzuarbeitenden Aufgabe kann es erforderlich sein, eine bestimmte Anzahl an Prozessorkernen an der Aufgabe zu beteiligen. Ist durch das Beteiligen weiterer Prozessorkerne kein Laufzeitgewinn möglich bzw. müssen keine weiteren Aufgaben gelöst werden, so können einzelne Prozessorkerne der Prozessoreinheit in den Schlafmodus versetzt werden. Da diese Prozessorkerne dann nicht mehr „betrieben“ werden, lässt sich der Energieverbrauch der Prozessoreinheit senken.
  • Ein Verfahren zur Lastverteilung für eine im vorigen beschriebene Rechenvorrichtung sieht erfindungsgemäß vor, dass ein Compiler einen durch eine Verkettung der Prozessorkerne der Prozessoreinheit nutzbaren Datenflussgraphen ermittelt und die Lastverteilung der durch die Prozessorkerne zur Lösung einer Aufgabe zu verarbeitenden Informationen durch Anwendung von pattern-matching in Abhängigkeit des ermittelten Datenflussgraphen auf die einzelnen Prozessorkerne verteilt. Hierdurch lässt sich eine besonders gleichmäßige und damit effiziente Lastverteilung erreichen. Entsprechend lassen sich Programme in einer besonders kurzen Laufzeit ausführen, was die Effektivität der erfindungsgemäßen Rechenvorrichtung weiter verbessert. Da jedem Prozessorkern zwei Eingänge und ein Ausgang zugeordnet sind, kommt es bei einer Anordnung der Prozessorkerne in sechseckigen Waben dazu, dass teilweise sich zwei Eingänge zweier benachbarter Prozessorkerne überlappen. Dieser Sachverhalt wird vom Compiler bei der Ermittlung des Datenflussgraphen entsprechend berücksichtigt, sodass eine in eine Richtung gerichtete Informationsweitergabe durch den Datenflussgraphen an dieser Stelle vermieden wird. Da die einzelnen Speicherelemente als Dual-Port-RAM ausgebildet sind, ist ein Lesen bzw. Schreiben von beiden Seiten möglich. Zwei über Eingänge miteinander verbundene Prozessorkerne lassen sich somit nutzen, um in der Verschaltungskette der Prozessorkerne Informationen in einem Kreis weiterzureichen. Dies verbessert die Effizienz der erfindungsgemäßen Rechenvorrichtung noch weiter, da somit keine ungenutzten Prozessorkerne bei der Verarbeitung von Informationen übrigbleiben.
  • Erfindungsgemäß ist eine im vorigen beschriebene Rechenvorrichtung in ein Computersystem integriert. Bei dem Computersystem kann es sich beispielsweise um einen PC, ein eingebettetes System oder auch sonstiges informationstechnisches System handeln. Die erfindungsgemäße Rechenvorrichtung kann beispielsweise als eine steckbare Karte für ein Mainboard eines PCs ausgeführt sein. Als Steckverbindung und entsprechendes Informationsübermittlungsprotokoll kommen alle gängigen Varianten in Frage. Beispielsweise handelt es sich um eine PCIe-Schnittstelle. Das Computersystem kann auch durch ein Fahrzeug ausgebildet sein bzw. eine fahrzeugintegrierte Recheneinheit. Die erfindungsgemäße Rechenvorrichtung kann insbesondere im Zusammenhang mit einem Fahrzeug zur Beschleunigung von künstlicher Intelligenz, beispielsweise unter Verwendung künstlicher neuronaler Netze, eingesetzt werden. Die erfindungsgemäße Rechenvorrichtung lässt sich somit in einem Fahrzeug zur Bereitstellung automatisierter oder gar autonomer Fahrfunktionen einbinden.
  • Weitere vorteilhafte Ausgestaltungen der erfindungsgemäßen Rechenvorrichtung ergeben sich auch aus den Ausführungsbeispielen, welche nachfolgend unter Bezugnahme auf die Figuren näher beschrieben werden.
  • Dabei zeigen:
    • 1 eine schematisierte Darstellung eines Prozessorkerns mit seinen jeweiligen durch Dual-Port-RAM ausgebildeten Eingängen und Ausgang;
    • 2 eine schematisierte Darstellung eines Ausschnitts mehrerer nach Art von Sechseckwaben miteinander zu einer Verschaltungskette verbundener Prozessorkerne; und
    • 3 eine schematisierte Darstellung einer erfindungsgemäßen Rechenvorrichtung.
  • 1 verdeutlicht die erfindungsgemäße Relativanordnung von Prozessorkernen 2.1 und Speicherelementen 2.2 einer in 3 gezeigten Prozessoreinheit 2 einer erfindungsgemäßen Rechenvorrichtung 1. Die exakte Form der Prozessorkerne 2.1 und der Speicherelemente 2.2 ist dabei nur symbolhaft zu verstehen. So können die Prozessorkerne 2.1 auch eine zu einer Kreisform abweichende Geometrie aufweisen und die Speicherelemente 2.2 auch eine zur Rechteckform abweichende Geometrie aufweisen.
  • Ein jeder Prozessorkern 2.1 der Prozessoreinheit 2 ist an genau drei Dual-Port-RAMs angeschlossen. Dabei bilden zwei dieser Speicherelemente 2.2 einen Eingang E zum Zuführen von Informationen dem jeweiligen Prozessorkern 2.1 aus und ein Speicherelement 2.2 bildet einen Ausgang A zum Ausleiten der vom Prozessorkern 2.1 verarbeiteten Informationen aus.
  • Wie 1 entnommen werden kann, sind die Speicherelemente 2.2 sternförmig jeweils in einem Winkel α von 120° um einen jeweiligen Prozessorkern 2.1 angeordnet. Eine Distanz d zwischen dem Prozessorkern 2.1 und einem jeweiligen Speicherelement 2.2 ist dabei äquidistant ausgeführt. Die Distanz d ist somit für jedes der in 1 gezeigten Speicherelemente 2.2 gleich. Gemäß der in 1 gezeigten Ausführung sind ferner sämtliche Speicherelemente 2.2 gleich lang, insbesondere weisen sie die gleiche geometrische Gestalt auf. Dies ermöglicht eine symmetrische Anordnung der Prozessorkerne 2.1 und Speicherelemente 2.2 auf der Prozessoreinheit 2 gemäß eines bestimmten in 2 dargestellten Musters.
  • 2 verdeutlicht somit die Anordnung mehrerer der besagten Prozessorkerne 2.1 und Speicherelemente 2.2. So sind die Prozessorkerne 2.1 und Speicherelemente 2.2 nach Art von Sechseckwaben miteinander verschaltet, um einen Datenflussgraphen aufzubauen. Dieser Aufbau hat den Vorteil, dass die Länge einer Datenleitung zwischen einem jedem Speicherelement 2.2 und angrenzendem Prozessorkern 2.1 gleichlang ist, wodurch zum Weiterleiten von Informationen von einem Speicherelement 2.2. zu einem Prozessorkern 2.1 immer die gleiche Zeitdauer erfordert wird. Zudem können somit Prozessorkerne 2.1 gleichzeitig zwei verschiedene Informationen, beispielsweise unterschiedliche Variablen einlesen, was die Parallelisierung, also das gleichzeitige Abarbeiten unterschiedlicher Aufgaben, begünstigt.
  • Insbesondere rechnen sämtliche Prozessorkerne 2.1 mit demselben Takt, was eine noch effizientere Datenverarbeitung erlaubt. So werden insbesondere Informationen den einzelnen Prozessorkernen 2.1 gleichzeitig bereitgestellt und durch diese gleichzeitig bearbeitet. Entsprechend werden von dem Prozessorkern 2.1 gleichzeitig Informationen über einen jeweiligen Ausgang A bereitgestellt und können dem jeweiligen folgenden Prozessorkern 2.1 über seine jeweiligen Eingänge E gleichzeitig bereitgestellt werden. Der entsprechende durch diese Verkettung der Prozessorkerne 2.1 ausgebildete Netzwerk bzw. Datenflussgraph lässt sich so in besonders effizienter Art und Weise durchlaufen.
  • Dass sich das Netzwerk aus Prozessorkernen 2.1 und Speicherelementen 2.2 mit einer entsprechenden Gestalt weiter ausbreitet ist in 2 durch Punkte „..." angedeutet. Zudem ist die Datenflussrichtung an den jeweiligen Ausgängen A durch einen kleinen Pfeil symbolisiert, um besser zu veranschaulichen welcher Ausgang A welchem Prozessorkern 2.1 zugeordnet ist. Zur Wahrung der Übersichtlichkeit sind nicht alle Elemente mit Bezugszeichen versehen.
  • 3 zeigt dabei die Rechenvorrichtung 1 noch einmal in einer umfassenderen Darstellung. Dabei sind lediglich die wesentlichen Bauelemente dargestellt. Auf eine Darstellung typischer Bauelemente, wie beispielsweise Speichercontroller, wurde verzichtet. 3 zeigt eine an einer ersten Seite S1 angeordnete Eingangsschnittstelle 3 und eine der Prozessoreinheit 2 an einer zweiten Seite S2 gegenüberliegende Ausgangsschnittstelle 4. Die Eingangsschnittstelle 3 und die Ausgangsschnittstelle 4 sind insbesondere ebenfalls durch Dual-Port-RAM ausgebildet. Dies ermöglicht einen gleichzeitigen Lese- und einen gleichzeitigen Schreibzugriff auf die Eingangsschnittstelle 3 und die Ausgangsschnittstelle 4 sowohl durch die Prozessoreinheit 2, als auch eine der Rechenvorrichtung 1 übergeordnete Recheneinheit. Diese übergeordnete Recheneinheit bzw. Computersystem kann auf besagte Schnittstellen, beispielsweise wie in 3 dargestellt auf die Eingangsschnittstelle 3, über einen Speicher-Direktzugriff oder Direct-Memory-Access DMA verfügen. Zum Ansteuern der Rechenvorrichtung 1 muss ein entsprechendes Computersystem dann nicht den Umweg über einen Hauptprozessor wie eine CPU gehen, sondern Informationen lassen sich direkt ohne Umwege über die CPU der Rechenvorrichtung 1 bereitstellen. Dies verbessert die Laufzeit von auszuführenden Aufgaben, sprich Programmen, noch weiter.
  • Die am Rand der Verschaltungskette der Prozessorkerne 2.1, also am Perimeter, angeordnete Prozessorkerne 2.1, können dabei, wie in 3 dargestellt, unmittelbar, also ohne dazwischengeschaltetes Speicherelement 2.2, an die jeweilige Eingangsschnittstelle 3 bzw. Ausgangsschnittstelle 4 angeschlossen sein. Ein unmittelbar an die Eingangsschnittstelle 3 angeschlossener Prozessorkern 2.1 wird auch als Eingangskern 2.E bezeichnet und ein unmittelbar an die Ausgangsschnittstellte 4 angeschlossener Prozessorkern 2.1 als Ausgangskern 2.A. Es können jeweils beliebig viele Prozessorkerne 2.1 an die Eingangsschnittstelle 3 bzw. Ausgangsschnittstelle 4 angeschlossen sein, beispielsweise jeweils ein, zwei, drei oder vier oder auch noch mehr Prozessorkerne 2.1.
  • Ferner kann die Rechenvorrichtung 1 über wenigstens eine zweite Eingangsschnittstelle 3.2 und/oder wenigstens eine zweite Ausgangsschnittstelle 4.2 verfügen. Insbesondere sind die zweite Eingangsschnittstelle 3.2 und die zweite Ausgangsschnittstelle 4.2 an zur ersten und zweiten Seite S1, S2 abweichenden Seiten S3, S4 angeordnet. Es können auch mehrere zweite Eingangsschnittstellen 3.2 bzw. Ausgangsschnittstellen 4.2 an derselben Seite vorgesehen sein. Dies begünstigt die Bereitstellung bzw. das Ausleiten von Informationen auch in einem mittleren Bereich der Verschaltungskette der Prozessorkerne 2.1. Die Verschaltungskette der Prozessorkerne 2.1 ist ebenfalls über Eingangskerne 2.E und Ausgangskerne 2.A an die jeweilige zweite Eingangsschnittstelle 3.2 und zweite Ausgangsschnittstelle 4.2 angeschlossen (nicht dargestellt).

Claims (10)

  1. Rechenvorrichtung (1) umfassend eine Prozessoreinheit (2) mit einer Vielzahl zusammenwirkender Prozessorkerne (2.1) und einer Vielzahl den Prozessorkernen (2.1) zugeordneten Speicherelementen (2.2) sowie mit wenigstens einer Eingangsschnittstelle (3) zum Empfangen von den Prozessorkernen (2.1) zu verarbeitenden Informationen und wenigstens einer Ausgangsschnittstelle (4) zum Ausgeben von den Prozessorkernen (2.1) verarbeiteter Informationen, dadurch gekennzeichnet, dass die Speicherelemente (2.2) durch Dual-Port-RAM ausgebildet sind, jeder Prozessorkern (2.1) über genau zwei Eingänge (E) zum Empfangen von Informationen und über genau einen Ausgang (A) zum Ausgeben von Informationen verfügt und an genau drei Speicherelemente (2.2) angeschlossen ist, wobei die ersten zwei dieser drei Speicherelemente (2.2) jeweils einen der beiden Eingänge (E) des Prozessorkerns (2.1) ausbilden und das dritte Speicherelement (2.2) den Ausgang (A) des Prozessorkerns (2.1) ausbildet, die drei Speicherelemente (2.2) sternförmig jeweils in einem Winkel (α) von 120° zueinander um den Prozessorkern (2.1) angeordnet sind, und eine physische Distanz (d) ausgehend von einem jeweiligen Prozessorkern (2.1) zu den an den Prozessorkern (2.1) angeschlossenen Speicherelementen (2.2) äquidistant ist.
  2. Rechenvorrichtung (1) nach Anspruch 1, dadurch gekennzeichnet, dass jeweils sechs Prozessorkerne (2.1) auf der Prozessoreinheit (2) in Form einer Sechseckwabe angeordnet sind.
  3. Rechenvorrichtung (1) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die wenigstens eine Eingangsschnittstelle (3) und die wenigstens eine Ausgangsschnittstelle (4) jeweils durch Dual-Port-RAM ausgebildet sind und die wenigstens eine Eingangsschnittstelle (3) einen Eingang (E) eines in einer Verschaltungskette der Prozessorkerne (2.1) am Perimeter der Verschaltungskette angeordneten Eingangskerns (2.E) ausbildet und die wenigstens eine Ausgangsschnittstelle (4) einen Ausgang (A) eines am Perimeter der Verschaltungskette angeordneten Ausgangskerns (2.A) ausbildet.
  4. Rechenvorrichtung (1) nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die wenigstens eine Eingangsschnittstelle (3) und die wenigstens eine Ausgangsschnittstelle (4) an zwei gegenüberliegenden Seiten (S1, S2) der Prozessoreinheit (2) angeordnet sind.
  5. Rechenvorrichtung (1) nach einem der Ansprüche 1 bis 4, gekennzeichnet durch wenigstens eine zweite Eingangsschnittstelle (3.2) und/oder wenigstens eine zweite Ausgangsschnittstelle (4.2).
  6. Rechenvorrichtung (1) nach Anspruch 5, dadurch gekennzeichnet, dass die wenigstens eine zweite Eingangsschnittstelle (3.2) und/oder die wenigstens eine zweite Ausgangsschnittstelle (4.2) an einer anderen Seite (S3, S4) an der Prozessoreinheit (2) angeordnet ist/sind, als die erste Eingangsschnittstelle (3) und die erste Ausgangsschnittstelle (4).
  7. Rechenvorrichtung (1) nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass sämtliche Prozessorkerne (2.1) mit einem im Wesentlichen identischen Takt arbeiten.
  8. Rechenvorrichtung (1) nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Prozessorkerne (2.1) dazu eingerichtet sind zwischen einem Schlafmodus und einem Aktivmodus zu wechseln, wobei ein jeweiliger Prozessorkern (2.1) im Schlafmodus keine Informationen verarbeitet und im Aktivmodus Informationen verarbeitbar sind.
  9. Verfahren zur Lastverteilung für eine Rechenvorrichtung (1) nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass ein Compiler einen durch eine Verkettung der Prozessorkerne (2.1) der Prozessoreinheit (2) nutzbaren Datenflussgraphen ermittelt und die Lastverteilung der durch die Prozessorkerne (2.1) zur Lösung einer Aufgabe zu verarbeitenden Informationen durch Anwendung von pattern-matching in Abhängigkeit des ermittelten Datenflussgraphen auf die einzelnen Prozessorkerne (2.1) verteilt.
  10. Computersystem, gekennzeichnet durch wenigstens eine Rechenvorrichtung (1) nach einem der Ansprüche 1 bis 8.
DE102022003661.4A 2022-10-05 2022-10-05 Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem Active DE102022003661B3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102022003661.4A DE102022003661B3 (de) 2022-10-05 2022-10-05 Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem
PCT/EP2023/075624 WO2024074293A1 (de) 2022-10-05 2023-09-18 Rechenvorrichtung, verfahren zur lastverteilung für eine solche rechenvorrichtung und computersystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022003661.4A DE102022003661B3 (de) 2022-10-05 2022-10-05 Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem

Publications (1)

Publication Number Publication Date
DE102022003661B3 true DE102022003661B3 (de) 2023-12-07

Family

ID=88143855

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022003661.4A Active DE102022003661B3 (de) 2022-10-05 2022-10-05 Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem

Country Status (2)

Country Link
DE (1) DE102022003661B3 (de)
WO (1) WO2024074293A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090216924A1 (en) 2005-04-21 2009-08-27 Bennett Jon C R Interconnection system
US20150255130A1 (en) 2014-03-10 2015-09-10 Futurewei Technologies, Inc. Ddr4-ssd dual-port dimm device
US20200243154A1 (en) 2017-07-30 2020-07-30 Neuroblade Ltd. Memory-based processors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090216924A1 (en) 2005-04-21 2009-08-27 Bennett Jon C R Interconnection system
US20150255130A1 (en) 2014-03-10 2015-09-10 Futurewei Technologies, Inc. Ddr4-ssd dual-port dimm device
US20200243154A1 (en) 2017-07-30 2020-07-30 Neuroblade Ltd. Memory-based processors

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CPU cache. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 30.09.2022. URL: https://en.wikipedia.org/w/index.php?title=CPU_cache&oldid=1113266567 [abgerufen am 27.04.2023]
Multi-core processor. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 04.09.2022. URL: https://en.wikipedia.org/w/index.php?title=Multi-core_processor&oldid=1108514820 [abgerufen am 27.04.2023]

Also Published As

Publication number Publication date
WO2024074293A1 (de) 2024-04-11

Similar Documents

Publication Publication Date Title
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
EP0689694B1 (de) Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren
DE60132585T2 (de) Vorrichtung und verfahren zum ausgeben der gruppierung von befehlen in einem vliw-prozessor
DE102015112202A1 (de) Kombinieren von Pfaden
DE102018126001A1 (de) Synchronisation in einem Multi-Kachel-Verarbeitungsarray
DE102018126004A1 (de) Synchronisation in einer Multi-Kachel-Verarbeitungsanordnung
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
EP3101493B1 (de) System und verfahren zur steuerung und/oder analytik eines industriellen prozesses
DE112012004728T5 (de) Verfahren, Programm und System zur Simulationsausführung
DE112019005584T5 (de) Arithmetiksteuervorrichtung
DE102006052757B4 (de) Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
DE102022003661B3 (de) Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem
EP2386949B1 (de) Verfahren und Vorrichtung zum zuweisen einer Mehrzahl von Teilaufgaben einer Aufgabe zu einer Mehrzahl von Recheneinheiten einer vorgegebenen Prozessorarchitektur
DE4328909C2 (de) Informationsverarbeitungssystem, Informationsprozessor in einem Informationsverarbeitungssystem und Interrupt-Controller in einem Informationsverarbeitungssystem
EP1308846B1 (de) Datenübertragungseinrichtung
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
EP2681656B1 (de) Multicore host-system mit einer echtzeit-erweiterung und verfahren zum betreiben eines solchen host-systems
DE10228778B4 (de) Hardware-Verfahren zum Implementieren von atomischen Semaphoroperationen unter Verwendung von Codemakros
EP1770521A2 (de) Multi-Prozessor-Architektur und Verfahren zum Steuern von Speicherzugriff bei einer Multi-Prozessor-Architektur
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe
WO2011064045A1 (de) Verfahren und elektronische einheit zum erzeugen von sequenzen
EP1116107B1 (de) Verfahren zur ausführung einzelner algorithmen mittels einer rekonfigurierbaren schaltung und vorrichtung zur durchführung eines solchen verfahrens
DE102006028939B4 (de) Programm-Pipelining-Verfahren zum Verarbeiten von Streaming-Daten in medizinischen Bildverarbeitungssystemen
DE4307139C2 (de) Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System
DE102015104872A1 (de) Datenverarbeitungssystem für eine grafische Schnittstelle und grafische Schnittstelle, die ein solches Datenverarbeitungssystem aufweist

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division