DE102015218589A1 - Verfahren und Vorrichtung zum Betreiben eines Many-Core-System - Google Patents

Verfahren und Vorrichtung zum Betreiben eines Many-Core-System Download PDF

Info

Publication number
DE102015218589A1
DE102015218589A1 DE102015218589.3A DE102015218589A DE102015218589A1 DE 102015218589 A1 DE102015218589 A1 DE 102015218589A1 DE 102015218589 A DE102015218589 A DE 102015218589A DE 102015218589 A1 DE102015218589 A1 DE 102015218589A1
Authority
DE
Germany
Prior art keywords
memory module
data element
memory
data
access time
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.)
Pending
Application number
DE102015218589.3A
Other languages
English (en)
Inventor
Matthias Knauss
Matias Maspoli
Marcin Hubert Nowacki
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102015218589.3A priority Critical patent/DE102015218589A1/de
Priority to US15/267,855 priority patent/US20170090820A1/en
Priority to KR1020160123997A priority patent/KR20170037851A/ko
Publication of DE102015218589A1 publication Critical patent/DE102015218589A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)

Abstract

Vorrichtung, welche zum Betreiben eines Systems mit einer Mehrzahl von Speichermodulen und einer Ein- oder Mehrzahl von Recheneinheiten, eingerichtet ist, wobei die Vorrichtung eingerichtet ist, für ein erstes Speichermodul der Mehrzahl von Speichermodulen eine Gesamtzugriffszeit (T_CV) einer Recheneinheit der Ein- oder Mehrzahl von Recheneinheiten auf dieses eine Datenelement in diesem ersten Speichermodul abhängig von einer Lesezugriffshäufigkeit (LACC_CV) zu ermitteln, wobei die Lesezugriffshäufigkeit (LACC_CV) angibt, wie häufig diese Recheneinheit des Systems, Lesezugriffe auf dieses Datenelement durchführt, und wobei die Vorrichtung auch eingerichtet ist, die Gesamtzugriffszeit (T_CV) auch abhängig von Dauer (LTicks_CR) eines Lesezugriffs dieser Recheneinheit auf dieses erste Speichermodul zu ermitteln, wobei die Vorrichtung eingerichtet ist, abhängig von dieser ermittelten Gesamtzugriffszeit (T_CV) dieser Recheneinheit auf dieses Datenelement in diesem ersten Speichermodul darauf zu entscheiden, ob das Datenelement in diesem ersten Speichermodul oder in einem anderen Speichermodul der Mehrzahl von Speichermodulen gespeichert wird.

Description

  • Die Erfindung betrifft eine Vorrichtung und ein Verfahren zum Betreiben eines Systems mit einer Mehrzahl von Speichermodulen und einer Mehrzahl von Recheneinheiten, sowie eine Vorrichtung und ein Verfahren zur Generierung von Programmcode für ein solches System.
  • Stand der Technik
  • Aus der DE 10 2013 224 702 A1 ist ein Steuergerät für ein Kraftfahrzeug bekannt, wobei das Steuergerät wenigstens zwei Prozessorkerne und einen globalen Speicher umfasst, wobei jeder Prozessorkern jeweils einen lokalen Speicher umfasst und wobei jeder Prozessorkern dazu eingerichtet ist, nur auf seinen eigenen lokalen Speicher zuzugreifen und dazu eingerichtet ist, weder auf die lokalen Speicher der übrigen Prozessorkerne noch auf den globalen Speicher zuzugreifen, wobei eine Koordinationseinheit dazu eingerichtet ist, Daten aus dem globalen Speicher des Steuergeräts einzulesen und in die lokalen Speicher der einzelnen Prozessorkerne zu schreiben und Daten aus den lokalen Speichern der einzelnen Prozessorkerne einzulesen und in den globalen Speicher und/oder in den lokalen Speicher der übrigen Prozessorkerne zu schreiben.
  • Offenbarung der Erfindung
  • Will man ein System mit einer Ein- oder Mehrzahl an Recheneinheiten und einer Mehrzahl an Speichermodulen optimieren, ist ein wichtiger Schritt, das Datenelemente, die von einer oder mehrerer der Recheneinheiten benutzt werden, in einem optimal ausgewählten Speichermodul abgelegt werden.
  • In embedded Systemen, insbesondere in Steuergeräten in Kraftfahrzeugen, wird bereits bei der Erzeugung von Programmcode für jedes Datenelement festgelegt, in welchem Speichermodul das Datenelement gespeichert wird.
  • Die Erfindung mit den Merkmalen der unabhängigen Ansprüche hat den Vorteil, dass effizient automatisiert entschieden werden kann, in welchem der Speichermodule das Datenelement gespeichert wird. Vorteilhafte Weiterbildungen sind Gegenstand der abhängigen Ansprüche.
  • In einem ersten Aspekt betrifft die Erfindung daher ein Verfahren zum Betreiben eines Systems mit einer Mehrzahl von Speichermodulen und einer Ein- oder Mehrzahl von Recheneinheiten, wobei entschieden wird ob in einem ersten Speichermodul einer Mehrzahl von Speichermodulen des System ein Datenelement, insbesondere eine Variable, gespeichert wird, wobei für das erste Speichermodul der Mehrzahl von Speichermodulen eine Gesamtzugriffszeit einer Recheneinheit einer Ein- oder Mehrzahl von Recheneinheiten auf dieses eine Datenelement in diesem ersten Speichermodul abhängig von einer Lesezugriffshäufigkeit ermittelt wird, wobei die Lesezugriffshäufigkeit angibt, wie häufig diese Recheneinheit des Systems, insbesondere über eine Kommunikationsverbindung, Lesezugriffe auf dieses Datenelement durchführt, und wobei die Gesamtzugriffszeit auch abhängig von einer durchschnittlichen Dauer eines Lesezugriffs dieser Recheneinheit auf dieses erste Speichermodul ermittelt wird, wobei diese durchschnittliche Dauer die Dauer eines solchen Lesezugriffs angibt, wenn das Datenelement in dieser Recheneinheit gespeichert ist, wobei abhängig von dieser ermittelten Gesamtzugriffszeit dieser Recheneinheit auf dieses Datenelement in diesem ersten Speichermodul darauf entschieden wird, ob das Datenelement in diesem ersten Speichermodul oder in einem anderen Speichermodul der Mehrzahl von Speichermodulen gespeichert wird.
  • Die Häufigkeit der Lesezugriffe dieser Recheneinheit auf dieses Datenelment kann hierbei eine relative Häufigkeit sein. Die Datenelemente können insbesondere Variablen sein, aber auch größere Datenblöcke.
  • Die Häufigkeit der Lesezugriffe und/oder die durchschnittliche, also zu erwartende, Dauer des Lesezugriffs kann beispielsweise in einer Tabelle hinterlegt sein.
  • In einer Weiterbildung dieses Aspekts wobei die Gesamgzugriffszeit dieser Recheineinheit auf dieses Datenelement in diesem ersten Speichermodul auch abhängig von einer Schreibzugriffshäufigkeit ermittelt wird, wobei die Schreibzugriffshäufigkeit angibt, wie häufig die Recheneinheit der Ein- oder Mehrzahl von Recheneinheiten des Systems, insbesondere über eine Kommunikationsverbindung Schreibzugriffe auf dieses Datenelement durchführt, und wobei die Gesamtzugriffszeit auch abhängig von einer durchschnittlichen Dauer eines Schreibzugriffs dieser Recheneinheit auf dieses erste Speichermodul ermittelt wird. Durch die Berücksichtigung von Schreibzugriffen ist die Genauigkeit dieses Verfahrens erhöht.
  • In einem weiteren Aspekt kann vorgesehen sein, dass eine Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul als Summe der Gesamtzugriffszeiten jeder der Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul ermittelt wird und wobei abhängig von dieser Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul darauf entschieden wird, ob das Datenelement in diesem ersten Speichermodul oder in einem anderen Speichermodul der Mehrzahl von Speichermodulen gespeichert wird. Insbesondere kann vorgesehen sein, dass das Datenelement dann, in diesem ersten Speichermodul gespeichert wird, wenn die Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul kleiner ist als eine Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in jedem anderen der Mehrzahl von Speichermodulen. Dies ist ein besonderes einfaches Optimalverfahren, um den optimalen Speicherort des Datenelements zu bestimmen.
  • In einem weiteren Aspekt kann vorgesehen sein, dass dann wenn, entschieden wird, dass dieses Datenelement in diesem ersten Speichermodul gespeichert wird, dieses Datenelement einer Liste von in diesem ersten Speichermodul zur Speicherung vorgesehenen Datenelementen hinzugefügt wird, und wobei dann, wenn eine Speicherkapazität dieses ersten Speichermoduls nicht ausreicht, um alle diese Datenelemente dieser Liste gleichzeitig zu speichern, ermittelt wird, welche dieser Datenelemente zur Speicherung in anderen der Mehrzahl von Speichermodulen vorgesehen werden. Durch diese nachträgliche Umverteilung von Datenelementen zu Speicherplätzen ist es auf besonders einfache Weise möglich, unter der Randbedingung von begrenzter Speicherkapazität in den Speichermodulen eine möglichst gute Zurodnung von Datenelementen zu Speichermodulen zu bekommen.
  • Ein besonders einfaches Verfahren, um diese Zuordnung zu erhalten, kann dadurch gegeben sein, dass zu jedem anderen der Mehrzahl von Speichermodulen vorgesehen ist, eine Liste mit allen zur Speicherung in dem ersten Speichermodul vorgesehenen Datenelementen erstellt wird, und wobei mit jedem dieser Datenelemente eine Transferkostengröße assoziiert ist, und wobei für die Datenelemente, mit denen die geringste Transferkostengröße assoziiert ist, entschieden wird, dass diese nicht im ersten Speichermodul sondern in einem anderen der Mehrzahl von Speichermodulen gespeichert werden.
  • In einer weiteren einfachen Weiterbildung kann hier vorgesehen sein, dass die Transferkostengröße in der Liste für ein zweites Speichermodul als Differenz zwischen der Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem zweiten Speichermodul und der Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in dem ersten Speichermodul ermittelt wird.
  • Hierbei kann insbesondere vorgesehen sein, dass bei der Ermittlung der Transferkostengröße diese Differenz durch eine Größe des Datenelements (beispielsweise in Byte) dividiert wird. Dadurch lässt sich das Verfahren auf einfache Weise auch auf Datenelemente unterschiedlicher Größe anwenden.
  • In einer Weiterbildung kann vorgesehen sein, dass das beschriebene Verfahren rekursiv angewendet wird. Insbesondere kann vorgesehen sein, dass für jedes der Datenelemente, für das entschieden wurde, dass es nicht im ersten Speichermodul sondern in einem anderen der Mehrzahl von Speichermodulen gespeichert wird, das beschriebene Verfahren nach Anspruch angewendet wird, um ein weiteres Speichermoduls aus einer reduzierten Mehrzahl von Speichermodulen zu ermitteln, in dem dieses Datenelement gespeichert wird, wobei die reduzierte Mehrzahl von Speichermodulen gleich der Mehrzahl von Speichermodulen ohne das erste Speichermodul ist. Auf diese Weise lässt sich auf besonders einfache und effiziente Weise eine vollständige Zurodnung der Datenelemente zu den Speichermodulen erhalten.
  • Bezeichnet v die Anzahl der Datenelemente und m die Anzahl der Speichermodule, so ist das Problem der Zuordnung der Datenelemente zu Speichermodule von der Komplexität O(vmv). Die Komplexität des vorgeschlagenen Algorithmus hingegen ist O(v + fa), wobei f die Anzahl der Speichermodule bezeichnet, deren Speicherkapazität aufgrund der Zuordnung der Datenelemente zu diesem Speicherelement überschritten wäre, und a die Anzahl der Datenelemente, die einem anderen Speichermodul zugeordnet werden mussten.
  • In einem weiteren Aspekt betrifft die Erfindung ein Verfahren zur automatischen Generierung von Programmcode für ein Sysem mit einer Mehrzahl von Rechenmodulen und einer Mehrzahl von Speichermodulen, wobei für ein Datenelement mit einem der erfindungsgemäßen Verfahren entschieden wird, in welchem der Speichermodule dieses Datenelement gespeichert wird, und der Programmcode entsprechend generiert wird.
  • In weiteren Aspekten betrifft die Erfindung ein Computerprogramm zur Durchführung des Verfahrens und ein maschinenlesbares Speichermedium, auf dem das Computerprogramm gespeichert ist. Das Verfahren kann beispielsweise in einem Kraftfahrzeug zur Anwendung kommen.
  • Die Figuren zeigen beispielhaft besonders vorteilhafte Ausführungsformen der Erfindung. Es zeigen:
  • 1 den Aufbau eines Systems mit einer Mehrzahl von Recheneinheiten und einer Mehrzahl von Speichermodulen;
  • 2 verschiedene Ausführungsformen eines Datenstroms;
  • 3 den Aufbau eines erfindungsgemäßen Systems gemäß einer Ausführungsform;
  • 4 den Ablauf eines Verfahrens gemäß einer Ausführungsform der Erfindung;
  • 5 den Ablauf eines Verfahrens gemäß einer weiteren Ausführungsform der Erfindung.
  • Beschreibung der Ausführungsbeispiele
  • 1 zeigt den Vorteil eines Systems, insbesondere eines Steuergeräts, welches beispielsweise in einem Kraftfahrzeug zum Einsatz kommen kann. Vorgesehen ist eine Mehrzahl von Recheneinheite 101, 102, 103, welche über einen Datenbus 300 mit einer Mehrzahl von Speichermodulen 201, 202, 203, 204 kommunzieren. Datenelemente, insbesondere Variablen, auf die die Recheneinheiten 101, 102, 103 zugreifen, sind jeweils auf einem der Speichermodule 201, 202, 203, 204 gespeichert. Die Erfindung ist allgemein anwendbar auf jedes System mit mindestens einer Recheneinheit und mindestens zwei Speichermodulen.
  • 2 zeigt ein bevorzugtes System zur Generierung von Programmcode zum Ablauf auf dem System nach 1. Dargestellt ist ein Initialisierungsblock 301, ein Zuordnungsblock 302, ein Umordnungsblock 303 und ein Rekursionsblock 304. Diese 4 Blöcke kommunizieren über ein Netzwerk N mit einem Speicherblock 500.
  • Die Pfeile illustrieren die Informationsflüsse in diesem System. Ein Codegenerierungsblock 400 hält den Informationen zur Generierung von Programmcode vor, der auf dem in 1 dargestellten System ablaufen soll. Im Codegenerierungsblock liegt eine Liste von Datenelementen vor, die der Programmcode beim Ablauf auf dem in 1 dargestellten System in den Speichermodulen 201, 202, 203, 204 speichern soll.
  • Der Intialisierungsblock 301 ruft den Zuordnungsblock 302 auf, der Zuordnungsblock 302 den Umordungsblock 303, der Umordnungsblock 303 den Rekursionsblock 304, und der Rekursionsblock 304 erneut den Zuordnungsblock 302. Die Rücksprünge der Blöcke sind gestrichelt eingezeichnet. Aus dem Rekursionsblock 304 wird zurück in den Umordnungblock 303 verzweigt, und aus dem Umordungsblock 303 in den Zuordnungsblock 302. Aus dem Zuordnungsblock 302 wird abhängig von dem aufrufenden Block zurückverzweigt: Wurde der Zuordnungsblock 302 vom Iinitialisierungsblock 301 aufgerufen, wird in den Intialisierungsblock 301 zurückverzweigt. Wurde der Zuordnungsblock 302 vom Zuordnungsblock 302 aufgerufen, wird zum Zuordnungsblock 302 zurückverzweigt. Im Initialisierungsblock 301 endet der Algorithmus der Zuordnung von Datenelementen zu Speichermodulen 201, 202, 203, 204. Im Anschluss kann in den Codegenerierungsblock 400 verzweigt werden, in dem Programmcode für das in 1 dargestellte System derart generiert wird, dass die Datenelemente in den gemäß dem beschriebenen Algorithmus ausgewählten Speichermodulen 201, 202, 203, 204 gespeichert werden.
  • 3 zeigt den Ablauf des Verfahrens, das im Initialisierungsblock 301 ablaufen kann. Das Verfahren beginnt in Schritt 1000. Im folgenden Schritt 1010 wird ein ein leeres Speichermodell generiert, in dem die Zuordnungen der Datenelemente zu den Speichermodulen 201, 202, 203, 204 hinterlegt werden soll. Eine Variable, welche die summierten Gesamtkosten der Speicherzuordnungen in diesem Speichermodell angibt, wird auf den Wert 0 initialisiert.
  • Im folgenden Schritt 1020 wird ein erstes Datenelement aus der Liste der Datenelemente ausgewählt. Dieses Datenelment wird als „aktuelles Datenelement” bezeichnet. Das Verfahren kann auch als Schleife über alle Datenelemente der Liste ausgestaltet sein.
  • Im folgenden Schritt 1030 wird in den Zuordnungsblock 302 verzweigt. Dem Zuordnungsblock werden das Speichermodell und das aktuelle Datenelement übergeben.
  • In Schritt 2110 kehrt das Verfahren nach Ablauf des Zuordnungsblocks 302 zurück in den Initialisierungsblock 301. Der Initialisierungsblock 301 empfängt vom Zurodnungsblock das aktualisierte Speichermodell. Im folgenden Schritt 1040 wird überprüft, ob der Zuordnungsblock 302 bereits für alle Variablen der Liste der Datenelemente aufgerufen wurde. Ist dies der Fall, wird optional in Schritt 1050 die automatische Generierung von Programmcode durch den Codegenerierungsblock 400 aufgerufen. Im folgenden Schritt 1060 endet das Verfahren.
  • Wurde der Erstzuodnungsblock 302 noch nicht für alle Variablen der Liste aufgerufen, wird zu Schritt 1020 zurückverzweigt.
  • 4 zeigt den Ablauf des Verfahrens, das im Zuordnungsblock 302 abläuft. In Schritt 1030 wird das Verfahren aufgerufen.
  • Es folgt Schritt 2000, in dem für jedes der Speichermodule 201, 202, 203, 204 eine Gesamtzugriffszeit T_CVR einer der Recheneinheiten 101, 102, 103 auf das in Schritt 1020 ausgewählte Datenelement ermittelt, wenn die Variable auf einem der Speichermodule 201, 202, 203, 204 gespeichert ist.
  • Der Buchstabe C bezeichne eine konkrete Recheneinheit, der Buchstabe R ein konkretes Speichermodul. Die Gesamtzugriffszeit T_CVR beizeichnet dann die Zugriffsdauer der Recheneinheit C, wenn das Datenelement auf dem Speichermodul R gespeichert ist. Beispielsweise aus einer Tabelle kann ermittelt werden, wie oft die Recheneinheit C lesend auf das Datenelement V zugreift. Diese Zahl, die auch als relative Häufigkeit bezogen auf die Gesamtheit aller lesenden Zugriffe einer der Recheneinheiten 101, 102, 103 auf irgendeines der Datenelmente normiert sein kann, wird mit LACC_CV bezeichnet. Eine durchschnittliche Zugriffsdauer, die die Recheneinheit C auf das Speichermodul R benötigt, ist beispielsweise ebenfalls in einer Tabelle hinterlegt und wird mit LTicks_CR bezeichnet.
  • Die Gesamtzugriffszeit T_CVR wird dann berechnet zu T_CVR = LACC_CV·LTicks_CR/fC, wobei fC eine Frequenz der Recheneinheit C bezeichnet.
  • Optional könne für die Berechnung der Gesamtzugriffszeit T_CVR auch die Schreibzugriffe der Recheneinheit C auf das Datenelement V berücksichtigt werden. Bezeichnet analog SACC_CV die Häufigkeit der Schreibzugriffe der Recheneinheit C auf das Datenelement V, ud STicks_CR die durchschnittliche Zugriffsdauer, so kann die Gesamtzugriffszeit T_CVR berechnet werden zu T_CVR = LACC_CV·LTicks_CR/fC + SACC_CV·STicks_CR/fC.
  • Bei der Normierung der Häufigkeiten LACC_CV und SACC_CV ist dann es dann vorteilhaft, wenn sie sich auf die gleiche Grundgesamtheit beziehen, also dann die Gesamtheit aller lesenden oder schreibenden Zugriffe einer der Recheneinheiten 101, 102, 103 auf irgendeines der Datenelemente.
  • Anschließend kann eine Gesamtzugriffszeit aller Recheneinheiten auf das Datenelement V im Speichermodul R ermittelt werden als T_VR = ΣCT_CVR, wobei in der Summe die laufende Variable C über alle Recheneinheiten 101, 102, 103 des Systems läuft. Diese Gesamtzugriffszeit wird für jedes der Speichermodule 201, 202, 203, 204 ermittelt, d. h. für jedes Speichermodul R wird die Gesamtzugriffszeit T_VR ermittelt.
  • Im folgenden Schritt 2010 wird ermittelt, für welches der Speichermodule R die ermittelte Gesamtzugriffszeit T_VR am geringsten ist. Das Datenelement V wird diesem Speichermodul R zugeordnet. Das Speichermodul R wird im folgenden auch als „aktuelles Speichermodul” R bezeichnet.
  • In Schritt 2020 wird überprüft, ob das Speichermodul R, dem das Datenelement V zugeordnet wurde, groß genug ist, um alle ihm zugeordneten Datenelemente gleichzeitig zu halten. Beispielsweise kann geprüft werden, ob die Summe der Speicherbedarfe jedes der dem Speichermodul R zugeordneten Datenelemente kleiner ist als ein verfügbarer Gesamtspeicher des Speichermoduls R. Ist dies der Fall, folgt Schritt 2100, andernfalls folgt Schritt 2030.
  • Kann garantiert werden, dass das Speichermodul R auf jeden Fall groß genug ist, kann auf Schritt 2020 verzichtet werden, und von Schritt 2010 unmittelbar zu Schritt 2100 verzweigt werden.
  • In Schritt 2030 wird überprüft, ob bereits Umordnungslisten generiert wurden. Wurden noch keine Umordnungslisten erzeugt, folgt Schritt 2040, in dem für jedes andere der Speichermodule 201, 202, 203, 204, also für jedes der Speichermodule 201, 202, 203, 204 außer dem Speichermodul R, eine Liste mit all den Datenelementen generiert wird, die zum Speichern im Speichermodul R vorgesehen sind. Dieses andere Speichermodul sei mit R2 bezeichnet. Das Datenelement V wird den Umordnungslisten noch nicht hinzugefügt. Jedem Datenelement V' der Liste wird die Transferkostengröße ΔTV' zugeordnet, die den Zuwachs an Gesamtzugriffszeit bezeichnet, wenn das Datenelement nicht im Speichermodul R, sondern stattdessen im Speichermodul R' abgespeichert wird. Die Umordnungslisten werden dem Speichermodell hinzugefügt.
  • Analog zur oben beschriebenen Ermittlung der Größe T_VR kann man die Größe T_V'R' ermitteln, indem die in Schritt 2000 beschriebenen Schritte nicht für Speichermodul R, sondern für Speichermodul R' und nicht für das Datenelement V, sondern für das Datenelement V' durchgeführt werden. Ebenso kann man die Größe T_V'R ermitteln, indem die in Schritt 2000 beschriebenen Schritte nicht für das Datenelement V, sondern für das Datenelement V' durchgeführt werden. Die Transferkostengröße lässt sich dann ermitteln als ΔTV' = (T_V'R' – T_V'R)/nV', wobei nV' die Größe, also den Speicherbedarf, des Datenelements V' (z. B. in einer Anzahl Bytes) bezeichnet.
  • Es folgt Schritt 2050. Wurde in Schritt 2030 festgestellt, dass bereits Umordnungslisten vorliegen, folgt ebenfalls Schritt 2050. In Schritt 2050 wird das Datenelement V jeder der Umordnungslisten hinzugefügt, und mit ihm die Transferkostengröße ΔTV = (T_VR' – T_VR)/nV.
  • Es folgt Schritt 2060, in dem in den Umordungsblock 303 verzweigt wird.
  • In Schritt 3040 wird aus dem Umordnungsblock 303 zurückverzweigt in den Zuordnungsblock 302. Die folgenden Schritte 2070 bis 2090 werden weiter unten beschrieben.
  • In Schritt 2100 wird dem in Schritt 1010 generierten Speichermodell die Zuordnung hinzugefügt, dass Datenelement C im Speichermodeul R gespeichert wird. Ferner werden zu den summierten Gesamtkosten die Gesamtkosten der Zurodnung des Datenelements V zum Speichermodul R, also T_VR, hinzuaddiert.
  • Es folgt Schritt 2110, in dem in den aufrufenden Block, beispielsweise den Initialisierungsblock 301, zurückverzweigt wird. Hierbei werden die durch die Zuordnung des Datenelements V zum Speichermodul R entstandenen Kosten, also T_VR, und das Datenmodell an den aufrufenden Block übergeben.
  • 5 illustriert das Verfahren im Umordnungsblock 303. In Schritt 2060 wird aus dem Zuordnungsblock 302 in den Umordnungsblock 303 verzweigt. Im folgenden Schritt 3000 wird eine erste der Umordnungslisten, die dem aktuellen Speichermodul R zugeordnet sind, d. h. die eine mögliche Umordnung eines Datenelements vom Speichermodul R zu einem anderen Speichermodul R' beschreiben, ausgewählt. Diese Umordnungsliste wird im folgenden als „aktuelle Umordnungsliste” bezeichnet.
  • In Schritt 3000 wird ferner eine um das Speichermodul R reduzierte Kopie des Datenmodells erzeugt. D. h., des wird eine Kopie des Datenmodells erzeugt, aber alle Zuordnungen von Datenelementen zum Speichermodul R werden nicht kopiert. Umordnungslisten vom Speichermodul R zu einem anderen Speichermodul R' oder von einem anderen Speichermodul R' zum Speichermodul R werden ebenfalls nicht kopiert.
  • Es folgt Schritt 3010, in dem in den Rekursionsblock 304 verzweigt wird. In Schritt 4030 wird aus dem Rekursionsblock 304 zurückverzweigt in den Umordnungsblock 303.
  • 6 illustriert das Verfahren im Rekursionsblock 304. In Schritt 3010 wird aus dem Umordnungsblock 303 in den Rekursionsblock 303 verzweigt. Im folgenden Schritt 4000 werden überschüssige Datenelemente der aktuellen Umordnungsliste identifiziert. Dies sind die Datenelemente der aktuellen Umordnungsliste, mit denen die niedrigsten Transferkosten assoziiert sind. Diese können beispielsweise so identifziziert werden, dass die Datenelemente der aktuellen Umordnungsliste nach assoziierten Transferkosten geordnet angeordnet werden, und dass dann beginnend mit den geringsten assoziierten Transferkosten sukzessive Datenelemente aus der aktuellen Transferliste entfernt werden, so lange, bis der Speicherbedarf der in der aktuellen Transferliste verbleibenden Datenelemente kleiner ist als der verfügbare Gesamtspeicher im aktuellen Speichermodul R. Die so entfernten Datenelemente bilden die überschüssigen Datenelemente. Eine Variable, die die Umordnungskosten der überschüssigen Datenelemente angibt, wird auf den Wert 0 initialisiert.
  • In Schritt 4000 wird nun ein erstes dieser überschüssigen Datenelemente ausgewählt. Dies sei als aktuelles überschüssiges Datenelment bezeichnet. Anschließend wird Schritt 1030 rekursiv in den Zuordnungsblock 302 verzweigt. Dieser Aufruf erfolgt anders als beim Aufruf aus dem Intialisierungsblock 301 nicht mit dem aktuellen Datenelement und dem Speichermodell, sondern, mit dem aktuellen überschüssigen Datenelement und dem reduzierten Speichermodell.
  • In Schritt 2110 wird aus dem Zuordnungsblock 302 zurückverzweigt in den Rekursionsblock 304. Der Zuordnungsblock 302 übergibt dem Rekursionsblock 304 die Zusatzkosten zum Hinzufügen des aktuellen überschüssigen Datenelements und das von ihm modifizierte reduzierte Datenmodell.
  • Im folgenden Schritt 4010 werden diese Zusatzkosten den Umordnungskosten der überschüssigen Datenelemente hinzuaddiert. Es folgt Schritt 4020, in dem ein nächstes der überschüssigen Datenelemente als aktuelles überschüssiges Datenelement identifiziert und zu Schritt 1030 verzweigt, wo erneut rekursiv in den Zuordnungsblock 302 verzweigt wird.
  • Wurde Schritt 1030 für jedes der überschüssigen Datenelemente aufgerufen, folgt Schritt 4030, in dem die Umordnungskosten und das modifizierte reduzierte Datenmodell an den Umordnungsblock 303 zurückübergeben werden.
  • Diese Zusatzkosten werden im folgenden Schritt 3020 (5) der aktuellen Umordnungsliste zugeordnet. Es folgt Schritt 3030, in dem geprüft wird, ob noch Umordnungslisten verbleiben. Ist dies der Fall, wird eine nächste Umordnungsliste als aktuelle Umordnungsliste ausgewählt. Es folgt Schritt 3010, in dem erneut in den Rekursionsblock 304 verzweigt wird.
  • Anderfalls folgt Schritt 3040, in dem in den Zuordnungsblock 302 zurückverzweigt wird. Vom Zurodnungsblock 302 werden das modifizierte reduzierte Datenmodell und die Umordnungskosten empfangen. Im Zuordnungsblock 302 folgt Schritt 2070, in dem die Umordnungskosten der Umordnungslisten miteinander verglichen werden und von den Umordnungslisten diejenige ausgewählt wird, deren Umordnungskosten am geringesten sind. Diese Umordnungsliste wird als „optimale Umordnung” bezeichnet.
  • Es folgt Schritt 2080, in dem die optimale Umordnung umgesetzt wird, d. h. im Speichermodell wird die Zuordnung der überschüssigen Datenelemente zum aktuellen Datenspeicher R gelöscht und stattdessen dem anderen Datenspeicher R' zugeordnet, mit dem diese optimale Umordnung assoziiert ist.
  • Es folgt Schritt 2110, in dem in den aufrufenden Block, beispielsweise den Initialisierungsblock 301, zurückverzweigt wird. Hierbei werden die durch die Zuordnung des Datenelements V zum Speichermodul R entstandenen Kosten, also die Umordnungskosten, und das Datenmodell an den aufrufenden Block übergeben.
  • Es versteht sich für den Fachmann, dass dieses Verfahren sowohl in Hardware als auch in Software implementiert werden kann. Ferner ist es dem Fachmann geläufig, dass der beschriebene rekursive Algorithmus wie jeder rekursive Algorithmus auch sequentiell implementiert werden kann.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • 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.
  • Zitierte Patentliteratur
    • DE 102013224702 A1 [0002]

Claims (21)

  1. Verfahren zum Betreiben eines Systems mit einer Mehrzahl von Speichermodulen und einer Ein- oder Mehrzahl von Recheneinheiten, wobei entschieden wird ob in einem ersten Speichermodul einer Mehrzahl von Speichermodulen des System ein Datenelement, insbesondere eine Variable, gespeichert wird, wobei für das erste Speichermodul der Mehrzahl von Speichermodulen eine Gesamtzugriffszeit (T_CVR) einer Recheneinheit der Ein- oder Mehrzahl von Recheneinheiten auf dieses eine Datenelement in diesem ersten Speichermodul R abhängig von einer Lesezugriffshäufigkeit (LACC_CV) ermittelt wird, wobei die Lesezugriffshäufigkeit (LACC_CV) angibt, wie häufig diese Recheneinheit des Systems, Lesezugriffe auf dieses Datenelement durchführt, und wobei die Gesamtzugriffszeit (T_CV) auch abhängig von einer Dauer (LTicks_CR) eines Lesezugriffs dieser Recheneinheit auf dieses erste Speichermodul ermittelt wird, wobei abhängig von dieser ermittelten Gesamtzugriffszeit (T_CV) dieser Recheneinheit auf dieses Datenelement in diesem ersten Speichermodul darauf entschieden wird, ob das Datenelement in diesem ersten Speichermodul oder in einem anderen Speichermodul der Mehrzahl von Speichermodulen gespeichert wird.
  2. Verfahren nach Anspruch 1, wobei die Gesamgzugriffszeit (T_CV) dieser Recheineinheit auf dieses Datenelement in diesem ersten Speichermodul auch abhängig von einer Schreibzugriffshäufigkeit (SACC_CV) ermittelt wird, wobei die Schreibzugriffshäufigkeit (SACC_CV) angibt, wie häufig die Recheneinheit der Ein- oder Mehrzahl von Recheneinheiten des Systems Schreibzugriffe auf dieses Datenelement durchführt, und wobei die Gesamtzugriffszeit (T_CV) auch abhängig von einer Dauer (STicks_CR) eines Schreibzugriffs dieser Recheneinheit auf dieses erste Speichermodul ermittelt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Gesamtzugriffszeit (T_CV) dieser Recheneinheit auf dieses Datenelement in diesem ersten Speichermodul abhängig von der Formel T_CV = LACC_CV·LTicks_CR + SACC_CV·STicks_CR ermittelt wird.
  4. Verfahren nach einem der vorherigen Ansprüche, wobei eine Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul als Summe der Gesamtzugriffszeiten jeder der Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul ermittelt wird und wobei abhängig von dieser Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul darauf entschieden wird, ob das Datenelement in diesem ersten Speichermodul oder in einem anderen Speichermodul der Mehrzahl von Speichermodulen gespeichert wird.
  5. Verfahren nach einem der vorherigen Ansprüche, wobei dann wenn entschieden wird, dass dieses Datenelement in diesem ersten Speichermodul gespeichert wird, dieses Datenelement einer Liste von in diesem ersten Speichermodul zur Speicherung vorgesehenen Datenelementen hinzugefügt wird, und wobei dann, wenn eine Speicherkapazität dieses ersten Speichermoduls nicht ausreicht, um alle diese Datenelemente dieser Liste gleichzeitig zu speichern, ermittelt wird, welche dieser Datenelemente zur Speicherung in anderen der Mehrzahl von Speichermodulen vorgesehen werden.
  6. Verfahren nach Anspruch 5, wobei zu jedem anderen der Mehrzahl von Speichermodulen vorgesehen ist, eine Liste mit allen zur Speicherung in dem ersten Speichermodul vorgesehenen Datenelementen erstellt wird, und wobei mit jedem dieser Datenelemente eine Transferkostengröße assoziiert ist, und wobei für die Datenelemente, mit denen die geringste Transferkostengröße assoziiert ist, entschieden wird, dass diese nicht im ersten Speichermodul sondern in einem anderen der Mehrzahl von Speichermodulen gespeichert werden.
  7. Verfahren nach Anspruch 6, wobei die Transferkostengröße in der Liste für ein zweites Speichermodul als Quotient zwischen einer Differenz zwischen der Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem zweiten Speichermodul und der Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in dem ersten Speichermodul geteilt durch eine Größe des Datenelements ermittelt wird.
  8. Verfahren nach Anspruch 7, wobei für jedes der Datenelemente, für das entschieden wurde, dass es nicht im ersten Speichermodul sondern in einem anderen der Mehrzahl von Speichermodulen gespeichert wird, das Verfahren nach Anspruch 7 angewendet wird, um ein weiteres Speichermoduls aus einer reduzierten Mehrzahl von Speichermodulen zu ermitteln, in dem dieses Datenelement gespeichert wird, wobei die reduzierte Mehrzahl von Speichermodulen gleich der Mehrzahl von Speichermodulen ohne das erste Speichermodul ist.
  9. Verfahren zur automatischen Generierung von Programmcode für ein System mit einer Ein- oder Mehrzahl von Rechenmodulen und einer Mehrzahl von Speichermodulen, wobei für ein Datenelement mit einem der Verfahren nach einem der Ansprüche 1 bis 8 entschieden wird, in welchem der Speichermodule dieses Datenelement gespeichert wird, und der Programmcode entsprechend generiert wird.
  10. Vorrichtung, welche zum Betreiben eines Systems mit einer Mehrzahl von Speichermodulen und einer Ein- oder Mehrzahl von Recheneinheiten eingerichtet ist, wobei die Vorrichtung eingerichtet ist, für ein erstes Speichermodul der Mehrzahl von Speichermodulen eine Gesamtzugriffszeit (T_CV) einer Recheneinheit der Ein- oder Mehrzahl von Recheneinheiten auf dieses eine Datenelement in diesem ersten Speichermodul abhängig von einer Lesezugriffshäufigkeit (LACC_CV) zu ermitteln, wobei die Lesezugriffshäufigkeit (LACC_CV) angibt, wie häufig diese Recheneinheit des Systems, Lesezugriffe auf dieses Datenelement durchführt, und wobei die Vorrichtung auch eingerichtet ist, die Gesamtzugriffszeit (T_CV) auch abhängig von Dauer (LTicks_CR) eines Lesezugriffs dieser Recheneinheit auf dieses erste Speichermodul zu ermitteln, wobei die Vorrichtung eingerichtet ist, abhängig von dieser ermittelten Gesamtzugriffszeit (T_CV) dieser Recheneinheit auf dieses Datenelement in diesem ersten Speichermodul darauf zu entscheiden, ob das Datenelement in diesem ersten Speichermodul oder in einem anderen Speichermodul der Mehrzahl von Speichermodulen gespeichert wird.
  11. Vorrichtung nach Anspruch 1, wobei die Vorrichtung eingerichtet ist, die Gesamgzugriffszeit (T_CV) dieser Recheineinheit auf dieses Datenelement in diesem ersten Speichermodul auch abhängig von einer Schreibzugriffshäufigkeit (SACC_CV) zu ermitteln, wobei die Schreibzugriffshäufigkeit (SACC_CV) angibt, wie häufig die Recheneinheit der Ein- oder Mehrzahl von Recheneinheiten des Systems Schreibzugriffe auf dieses Datenelement durchführt, und wobei die Vorrichtung auch eingerichtet ist, die Gesamtzugriffszeit (T_CV) auch abhängig von einer Dauer (STicks_CR) eines Schreibzugriffs dieser Recheneinheit auf dieses erste Speichermodul zu ermittleln.
  12. Vorrichtung nach Anspruch 1 oder 2, wobei die Vorrichtung eingerichtet ist, die Gesamtzugriffszeit (T_CV) dieser Recheneinheit auf dieses Datenelement in diesem ersten Speichermodul abhängig von der Formel T_CV = LACC_CV·LTicks_CR + SACC_CV·STicks_CR zu ermitteln.
  13. Vorrichtung nach einem Ansprüche 10 bis 12, wobei die Vorrichtung eingerichtet ist, eine Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul als Summe der Gesamtzugriffszeiten jeder der Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul zu ermitteln, und wobei die Vorrichtung eingerichtet ist, abhängig von dieser Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem ersten Speichermodul darauf zu entscheiden, ob das Datenelement in diesem ersten Speichermodul oder in einem anderen Speichermodul der Ein- oder Mehrzahl von Speichermodulen gespeichert wird.
  14. Vorrichtung nach einem der Ansprüche 10 bis 13, wobei die Vorrichtung eingerichtet ist, dann wenn sie entschieden hat, dass dieses Datenelement in diesem ersten Speichermodul gespeichert wird, dieses Datenelement einer Liste von in diesem ersten Speichermodul zur Speicherung vorgesehenen Datenelementen hinzuzufügen, und wobei die Vorrichtung eingerichtet ist, dann, wenn eine Speicherkapazität dieses ersten Speichermoduls nicht ausreicht, um alle diese Datenelemente dieser Liste gleichzeitig zu speichern, zu ermitteln, welche dieser Datenelemente zur Speicherung in anderen der Mehrzahl von Speichermodulen vorgesehen werden.
  15. Vorrichtung nach Anspruch 14, wobei die Vorrichtung eingerichtet ist, zu jedem anderen der Mehrzahl von Speichermodulen vorzusehen, eine Liste mit allen zur Speicherung in dem ersten Speichermodul vorgesehenen Datenelementen zu erstellen, und wobei die Vorrichtung eingerichtet ist, mit jedem dieser Datenelemente eine Transferkostengröße zu assoziieren, und wobei die Vorrichtung eingerichtet ist, für die Datenelemente, mit denen die geringste Transferkostengröße assoziiert ist, zu entscheiden, dass diese nicht im ersten Speichermodul sondern in einem anderen der Mehrzahl von Speichermodulen gespeichert werden.
  16. Vorrichtung nach Anspruch 15, wobei die Vorrichtung eingerichtet ist, die Transferkostengröße in der Liste für ein zweites Speichermodul als Differenz zwischen der Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in diesem zweiten Speichermodul und der Gesamtzugriffszeit aller Recheneinheiten auf dieses Datenelement in dem ersten Speichermodul zu ermitteln.
  17. Vorrichtung nach Anspruch 16, wobei die Vorrichtung eingerichtet ist, für jedes der Datenelemente, für das entschieden wurde, dass es nicht im ersten Speichermodul sondern in einem anderen der Mehrzahl von Speichermodulen gespeichert wird, das Verfahren nach Anspruch 7 anzuwenden, um ein weiteres Speichermoduls aus einer reduzierten Mehrzahl von Speichermodulen zu ermitteln, in dem dieses Datenelement gespeichert wird, wobei die reduzierte Mehrzahl von Speichermodulen gleich der Mehrzahl von Speichermodulen ohne das erste Speichermodul ist.
  18. Vorrichtung zur automatischen Generierung von Programmcode für ein System mit einer Ein- oder Mehrzahl von Rechenmodulen und einer Mehrzahl von Speichermodulen, wobei die Vorrichtung eingerichtet ist, für ein Datenelement mit einem der Verfahren nach einem der Ansprüche 1 bis 8 zu entscheiden, in welchem der Speichermodule dieses Datenelement gespeichert wird, und wobei die Vorrichtung eingerichtet ist, den Programmcode entsprechend zu generieren.
  19. Computerprogramm, das eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 9 auszuführen.
  20. Maschinenlesbares Speichermedium, auf dem ein Computerprogramm gespeichert ist, welches eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 9 auszuführen.
  21. Computer, der eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 9 auszuführen.
DE102015218589.3A 2015-09-28 2015-09-28 Verfahren und Vorrichtung zum Betreiben eines Many-Core-System Pending DE102015218589A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102015218589.3A DE102015218589A1 (de) 2015-09-28 2015-09-28 Verfahren und Vorrichtung zum Betreiben eines Many-Core-System
US15/267,855 US20170090820A1 (en) 2015-09-28 2016-09-16 Method and device for operating a many-core system
KR1020160123997A KR20170037851A (ko) 2015-09-28 2016-09-27 매니코어 시스템을 작동하기 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015218589.3A DE102015218589A1 (de) 2015-09-28 2015-09-28 Verfahren und Vorrichtung zum Betreiben eines Many-Core-System

Publications (1)

Publication Number Publication Date
DE102015218589A1 true DE102015218589A1 (de) 2017-03-30

Family

ID=58282197

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015218589.3A Pending DE102015218589A1 (de) 2015-09-28 2015-09-28 Verfahren und Vorrichtung zum Betreiben eines Many-Core-System

Country Status (3)

Country Link
US (1) US20170090820A1 (de)
KR (1) KR20170037851A (de)
DE (1) DE102015218589A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022202335A1 (de) 2022-03-09 2023-09-14 Robert Bosch Gesellschaft mit beschränkter Haftung Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6327994B2 (ja) * 2014-07-28 2018-05-23 ルネサスエレクトロニクス株式会社 制御システムおよび半導体装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013224702A1 (de) 2013-12-03 2015-06-03 Robert Bosch Gmbh Steuergerät für ein Kraftfahrzeug

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020141438A1 (en) * 2001-02-09 2002-10-03 Smith J. Howard Data communication controller and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013224702A1 (de) 2013-12-03 2015-06-03 Robert Bosch Gmbh Steuergerät für ein Kraftfahrzeug

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022202335A1 (de) 2022-03-09 2023-09-14 Robert Bosch Gesellschaft mit beschränkter Haftung Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems

Also Published As

Publication number Publication date
US20170090820A1 (en) 2017-03-30
KR20170037851A (ko) 2017-04-05

Similar Documents

Publication Publication Date Title
DE69526751T2 (de) Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
EP1020815A2 (de) Vorrichtung und Verfahren zur automatischen Diagnose eines technischen Systems mit effizienter Wiederverwendung von Informationen
DE112017007656T5 (de) Verschobene aktualisierung von datenbank-hashcode in einer blockchain
DE2517302C2 (de) Mehrprogramm-Datenverarbeitungsgerät
DE69905776T2 (de) Sprachenverarbeitungsverfahren mit geringem Aufwand und Speicherbedarf bei der Profildatensammlung
DE102020104652A1 (de) Programmupdatesystem, Steuerungssystem, mobiler Körper, Programmupdateverfahren und Programm
DE3855494T2 (de) Abfragevorrichtung und -methode
DE102017108211A1 (de) Verfahren zum Auslesen einer Fehlerspeicher-Historie aus einem Fehlerspeicher eines Steuergerätes eines Kraftfahrzeuges
DE102015218589A1 (de) Verfahren und Vorrichtung zum Betreiben eines Many-Core-System
DE102008001162A1 (de) Zurücksetzverfahren und Informationsverarbeitungsvorrichtung, die dieses ausführt
DE102018220701A1 (de) Diskretisierung von Zahlenwerten mit adaptiver Genauigkeit
DE102012210482A1 (de) Verfahren und System zum Migrieren von Geschäftsprozessinstanzen
DE69119286T2 (de) Verfahren und Gerät zur Schattenprozessgenerierung
DE102016219449A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
EP1159655B1 (de) Automatisierungssystem mit aus modulkomponenten bestehenden automatisierungsobjekten
DE112020001541T5 (de) Informationsverarbeitungsvorrichtung, beweglicher gegenstand und informationsverarbeitungsverfahren
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
DE112021000801T5 (de) Informationsverarbeitungsvorrichtung und Informationsverarbeitungsverfahren
DE102021117739B4 (de) Verwaltung von Zugriffen mehrerer Applikationen auf einen Datenspeicher
WO2021116429A1 (de) Verfahren zum aktualisieren eines steuerprogramms eines automatisierungssystems mit datenmigration eines programmzustands des steuerprogramms
DE102014016884A1 (de) Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren
DE102022202335A1 (de) Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems
DE102019217416A1 (de) Verfahren zum Erstellen eines Zugriffsrechteschemas für einen elektronischen Speicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed