DE102016121947B4 - Optimiertes Speicherlayout durch Data Mining - Google Patents

Optimiertes Speicherlayout durch Data Mining Download PDF

Info

Publication number
DE102016121947B4
DE102016121947B4 DE102016121947.9A DE102016121947A DE102016121947B4 DE 102016121947 B4 DE102016121947 B4 DE 102016121947B4 DE 102016121947 A DE102016121947 A DE 102016121947A DE 102016121947 B4 DE102016121947 B4 DE 102016121947B4
Authority
DE
Germany
Prior art keywords
memory
correlation
global
correlation values
value
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
DE102016121947.9A
Other languages
English (en)
Other versions
DE102016121947A1 (de
Inventor
Shuqing Zeng
Shige Wang
Stephen G. Lusko
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102016121947A1 publication Critical patent/DE102016121947A1/de
Application granted granted Critical
Publication of DE102016121947B4 publication Critical patent/DE102016121947B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Abstract

Verfahren zum Ordnen von Speicherzugriff durch einen Anweisungs-Cache-Speicher einer Zentraleinheit (10) in einer globalen Speichereinrichtung (12), folgende Schritte umfassend:Extrahieren einer Signalliste aus einer Link-Map-Datei (14) in der globalen Speichereinrichtung (12);Aufzeichnen von Speicherzugriffskurven zu den ausgeführten Tasks aus der Signalliste;Identifizieren von Speicherplätzen (20), auf die in der globalen Speichereinrichtung (12) zugegriffen wird, aus den Zugriffskurven;Bestimmen eines Korrelationswertes für jedes Speicherplatzpaar in der globalen Speichereinrichtung (12), wobei die Korrelationswerte anhand der Nähe der entsprechenden ausführbaren Anweisungen zueinander berechnet werden, die das entsprechende Speicherplatzpaar nutzen, wobei das Bestimmen der Korrelationswerte der Speicherplatzpaare umfasst, dass eine Korrelationsmatrix (W) generiert wird, wobei die einzelnen Speicherplätze (20) untereinander mit Querverwiesen versehen sind;Neuordnen der Speicherplätze (20), auf die innerhalb der globalen Speichereinrichtung (12) zugegriffen wurde, als Funktion der bestimmten Korrelationswerte; undÄndern einer ausführbare Datei mit Zugriff auf die globale Speichereinrichtung, wobei die ausführbare Datei das Speicherlayout beim Zugriff auf die globale Speichereinrichtung (12) optimiert; dadurch gekennzeichnet , dassdie Korrelationsmatrix (W) zur Ermittlung einer gewünschten Permutation neu geordnet wird, wobei die neu geordnete Korrelationsmatrix (W) eine diagonale Reihe von Einträgen mit jeweils einem Korrelationswert null beinhaltet und wobei Korrelationswerte mit einem jeweils höchsten Wert unter allen Korrelationswerten der Korrelationsmatrix (W) am nächsten bei den Null-Diagonaleneinträgen angeordnet sind.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf die Zuordnung von Speicherplätzen und insbesondere auf ein Verfahren gemäß dem Oberbegriff des Anspruchs 1 zum Ordnen von Speicherzugriff durch einen Anweisungs-Cache-Speicher einer Zentraleinheit in einer globalen Speichereinrichtung, wie es der Art nach im Wesentlichen aus der US 5 889 999 A bekannt ist.
  • Eine zentrale Verarbeitungseinheit (CPU) nutzt Cache-Speicher, die in einem Direktzugriffsspeicher (RAM) gespeicherte Daten zur Verwendung durch die Zentraleinheit laden. Cache-Speicher bieten eine schnelle Lösung zum lokalen Lesen und Schreiben von Daten im Gegensatz zum Lesen und Schreiben von Daten auf RAM. Ein Cache-Speicher hält in seiner Speichereinheit Daten, die am häufigsten verwendet werden.
  • Die CPU beinhaltet Anweisungen zu den Adressen, die bei der Ausführung von Codes verwendet werden, um Daten zu speichern. Das Speicherlayout der jeweiligen Adressenplätze beeinflusst die Speicherbandbreite der cacheaktivierten Architektur für ein elektronisches Steuermodul (ECU). Wenn das Speicherlayout zum Beispiel falsch konzipiert ist (z. B. ineffizient), kann sich der Datenabruf verlangsamen, insbesondere für die Speicherplätze, die wiederholt in RAM-Speichern verwendet werden, denn die Speicherzuweisung ist für eine jeweils ausgeführten Anweisungsstrom vorbestimmt. Wenn die CPU auf verschiedene RAM-Speicherplätze zugreifen soll, werden CPU-Operationen verlangsamt. Das heißt, wenn die Speicherzuordnung nicht effizient organisiert ist, dann werden CPU-Verarbeitungszeiten ebenso ineffizient. Das Speicherlayout beeinflusst die Speicherbandbreite der cacheaktivierten Architektur für die CPU. Wenn sich ein RAM-Speicherlayout beim Zugriff durch ausführbare Anweisungen als ineffizient erweist, können sich Engstellen beim Datenabruf ergeben, wenn die Tasks ständig auf verschiedene RAM-Speicherplätze zugreifen müssen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Ein Vorteil einer Ausführungsform ist die Optimierung des Speicherlayouts beim Zugriff auf einen Direktzugriffsspeicher (RAM). Die zentralen Datenverarbeitungseinheiten (CPU) nutzen in Cache-Speichern gespeicherte Daten in einem Direktzugriffsspeicher für Schreib-/Lesedaten, die am häufigsten von der CPU verwendet werden. RAM-Speicher wird von der Hardware als Speicherblock zur Zwischenspeicherung von in der CPU verarbeiteten Daten implementiert. Die im Cache- und RAM-Speicher gespeicherten Daten können für eine vorhergehende Operation oder eine neue Operation genutzte Daten sein. Wenn die zu verarbeitenden Daten nicht im Cache-Speicher sind, lädt das System einen anderen Datenblock in den RAM-Speicher, um einen Cache-Speicherblock zu ersetzen. Die hierin beschriebene Technik identifiziert Signalgrößenpaare, die in unmittelbarer Nähe zueinander ausgeführte RAM-Speicherplätze nutzen (d. h. im Wesentlichen nebeneinander angeordnete ausführbare Anweisungen) und ordnet benachbarte Speicherorte den in unmittelbarer Nähe zueinander angeordneten Signalgrößen zu. In dieser Weise reduziert in Kenntnis der Tatsache, dass auf zwei Speicherplätze im Wesentlichen häufig und im Wesentlichen sequentiell zugegriffen wird, die Zuordnung der Signalgrößen zu nahe beieinander liegenden Speicherplätzen die Verarbeitungszeit der CPU, die versucht, Cache-Speicherblöcke zu ersetzen. Als Ergebnis ordnet die hier beschriebene Technik den entsprechenden Signalgrößen effektiv Speicherlayouts zu, sodass den gewöhnlich häufig abgerufenen Signalgrößenpaaren RAM-Speicherplätze zugeordnet werden, die beim Zugriff auf den RAM-Speicher nahe beieinander liegen. Dies verbessert den Wirkungsgrad der CPU und reduziert Engstellen.
  • Erfindungsgemäß wird ein Verfahren zum Ordnen von Speicherzugriff durch einen Anweisungs-Cache-Speicher einer Zentraleinheit in einer globalen Speichereinrichtung vorgeschlagen, das sich durch die Merkmale des Anspruchs 1 auszeichnet.
  • Figurenliste
    • 1 ist ein Hardware-Blockschaltbild zur Optimierung von Task-Partitionierung.
    • 2 ist eine beispielhafte gewichtete Korrelationsmatrix.
    • 3 ist ein Ablaufdiagramm eines Verfahrens zur Optimierung von Speicherlayout.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist ein Hardware-Blockschaltbild zur Optimierung von Speicherlayout. Die entsprechenden Algorithmen zur Ausführung von Anwendungscodes werden auf einer elektronischen Steuereinheit (ECU) 10 ausgeführt. Die ausgeführten Algorithmen sind die Programme, die in der Fertigung ausgeführt würden (z. B. Motorsteuerung, Rechnern, Spiele, Werkseinrichtungen oder andere elektronische Steuerungen, die eine elektronische Steuereinheit verwenden). Daten werden geschrieben und gelesen zu/von verschiedenen Adressen innerhalb einer globalen Speichereinrichtung 12 (z. B. RAM-Direktzugriffsspeicher).
  • Eine Map-Link-Datei 14 ist eine Textdatei, die angibt, wo Daten und Codes in den ausführbaren Dateien innerhalb der globalen Speichereinrichtung 12 abgelegt sind. Die Map-Link-Datei 14 beinhaltet Kurvendateien, in denen ein Ereignisprotokoll mit der Beschreibung der innerhalb der globalen Speichereinrichtung 12 erfolgten Transaktionen sowie Codes und Daten gespeichert sind. Daraus kann eine Map-Link-Datei 14 zur Identifizierung aller Signale und der zugehörigen Speicheradressen resultieren, auf die während der Ausführung der durch die ECU 10 ausführbaren Anweisungen zugegriffen wurde.
  • Ein Mining-Prozessor 16 wird zum Data-Mining 18 aus der globalen Speichereinrichtung 12 verwendet, wobei die zugeordneten Speicherplätze 20 neu geordnet werden, unter Bestimmung einer Minimalenergiefunktion in Verbindung mit einer Permutation 22 zur Identifizierung eines optimalen Speicherlayouts, dem zum Lesen und Schreiben von Daten Signalgrößen zugeordnet werden können.
  • Ein Anweisungsausführungsstrom beinhaltet Codes (d. h. ausführbare Codes), die von der ECU 10 ausgeführt werden. Der Code beinhaltet einen Adressenplatz innerhalb der globalen Speichereinrichtung 12, auf die zum Schreiben oder Abrufen von Daten aus den jeweiligen Adressenplätzen zugegriffen wird. Ein beispielhafter Anweisungsstrom zum Laden von Anweisungen kann folgendes Format aufweisen: A D D R   X L D   # s a , R x .
    Figure DE102016121947B4_0001
  • Ein beispielhafter Anweisungsstrom zum Schreiben von Anweisungen an eine Adresse in der globalen Speichereinrichtung 12 kann folgendes Format aufweisen: A D D R   Y W R   R x ,   # s b ,
    Figure DE102016121947B4_0002
    wo sa und sb Signalgrößen der ausführbaren Anweisungen darstellen, die die Speicherplätze identifizieren, auf die in der globalen Speichereinrichtung 12 zum Schreiben oder Lesen von Daten zugegriffen wird. Für alle Signalgrößen {si|i = 1,...,N} wird eine Korrelationsmatrix W zur Feststellung einer Korrelation zwischen alle Variablen aufgestellt. Jede Signalgröße ist auf einer vertikalen Seite der Korrelationsmatrix W und einer horizontalen Seite der Korrelationsmatrix W zum Quervergleich aufgelistet. Ein Korrelationsfaktor w wird für jedes entsprechende Variablenpaar bestimmt. Beispielsweise befindet sich für die Signalgrößen sa und sb, ein Korrelationsfaktor wab am Querschnitt der beiden Signalgrößen in der Korrelationsmatrix W. Die Signalgrößenpaare, die im Wesentlichen benachbarte Anweisungen im i-Cache-Speicher sind, erzeugen einen höheren Korrelationswert w als Signalgrößenpaare, die nicht dicht nahe beieinander liegen. Ein entsprechendes Signalgrößenpaar, auf das sich benachbarte Anweisungen in einem Anweisungsausführungsstrom beziehen, gibt an, dass diesen im auszuführenden Code jeweils zeitlich nahe beieinander ausgeführten Signalgrößen ein höherer Korrelationswert in der Korrelationsmatrix erteilt wird. Daher wird einem entsprechenden Signalgrößenpaar, das in benachbarten Anweisungen ausgeführt wird, ein höherer Korrelationsfaktor erteiltw, als einem entsprechenden Signalgrö-ßenpaar, dessen Anweisungen weiter voneinander entfernt sind.
  • 2 stellt eine beispielhafte Korrelationsmatrix W dar. Die Signalgrößen sind in der Korrelationsmatrix W sowohl horizontal (z.B. in Reihen) als auch vertikal (z. B. in Spalten) gekennzeichnet. Wie gezeigt, wird für alle Signalgrößen {si|i = 1, ...,N} ein Korrelationswert für jedes entsprechende Signalgrößenpaar erteilt. Diese im Anweisungsausführungsplan näher beieinander ausgeführten Signalgrößen erhalten einen höheren Korrelationswert. Zusätzlich dazu steigt der Korrelationswert für die Signalgrößenpaare, auf die sich häufiger bezogen wird.
  • Der Korrelationswert kann als eine Funktion der Nähe eines Signalgrößenpaars innerhalb des Anweisungsausführungsstroms normalisiert werden. Nachfolgend wird eine Beispielfunktion zur Normalisierung von Korrelationswerten angegeben: i ƒ | A D D R   X A D D R   Y | < 1 K , w a b = w a b + 1.
    Figure DE102016121947B4_0003
  • Wie in der vorstehenden Funktion gezeigt, werden Korrelationswerte normalisiert, wenn ihre Differenz kleiner ist als 1K; jedoch versteht es sich, dass die Größe des Vergleichswerts von 1K beispielhaft ist und andere Werte verwendet werden können, die von verschiedenen Faktoren, wie der Größe des Anweisungs-Cache-Speichers abhängen.
  • Nach der Erzeugung der Korrelationsmatrix W wird die Korrelationsmatrix W zur Identifizierung einer Permutation neu geordnet, die zur Unterstützung der Identifikation eines effizienten Speicherlayouts in eine Sortier-Minimalenergiefunktion eingegeben werden kann. Zum Nachsortieren der Korrelationsmatrix W muss die Position des entsprechenden Signals in der Korrelationsmatrix W permutiert werden. Zunächst sind die Signalgrößen der Korrelationsmatrix W neu zu positionieren, sodass alle Diagnonaleneinträge der Korrelationsmatrix W den Wert Null aufweisen. Anschließend sind die höchsten Korrelationswerte unter allen Korrelationswerten der Korrelationsmatrix W am nächsten zu der durch die Nullwerteinträge in die Korrelationsmatrix W dargestellten diagonalen Linie zu setzen. Die Signalgrößen der Korrelationsmatrix sind zur Neuordnung der Korrelationswerte ebenfalls neu zu positionieren. Als Ergebnis sind die höchsten Korrelationswerte näher an der Null-Diagonale angeordnet und die niedrigen Korrelationswerte sind in abnehmende Maße von der Null-Diagonale entfernt angeordnet.
  • Nach der Neupositionierung der Korrelationswerte und der zugehörigen Signalgröße ist die permutierte Korrelationsmatrix W in die Minimalenergiefunktion, wie unten beschrieben, einzugeben.
  • Mit Bezug auf die Korrelationsmatrix W wird die gewünschte Ordnung der Speicherplätze durch die Ermittlung einer Permutation (π1,..., πN} von Eckpunkten hergestellt, sodass benachbarte Eckpunkte am stärksten korreliert werden. Die ausgewählte Permutation zeigt an, dass die häufig von dem gleichen Task-Satz abgerufenen Daten im lokalen Cache-Speicher abgelegt werden können. Mathematisch kann die gewünschte Neuordnungspermutation als folgende Minimalenergiefunktion ausgedrückt werden: min  J ( π ) = l = 1 N 1 l 2 l = 1 N l w π i , π i + l .
    Figure DE102016121947B4_0004
  • Dies entspricht der Ermittlung der inversen Permutation π-1 sodass die folgende Energiefunktion minimiert wird: min π 1 J ( π 1 ) = a , b ( π a 1 π b 1 ) w ab
    Figure DE102016121947B4_0005
  • Die Lösung des obigen Problems wird durch Berechnen des Eigenvektors (q2) mit dem zweitkleinsten Eigenwert für folgende Eigengleichung angenähert: ( D W ) q = λ Dq
    Figure DE102016121947B4_0006
    wobei die Laplace-MatrixL = D - W ist und die Gradmatrix D eine Diagonale ist, definiert als d i j = { i w i j ,   i = j 0, Andernfalls .
    Figure DE102016121947B4_0007
  • Der so ermittelte q2 wird dann in aufsteigender Ordnung sortiert. Der Index der Eckpunkte nach einer Sortierung ist die gesuchte Permutation (π1,..., πN}. Die Reihenfolge der Speicherstellen kann dann aus dieser Permutation durch Umordnen der Speicherplätze nach dem Permutationsergebnis abgeleitet werden.
  • 3 stellt ein Flussdiagramm der Technik zur Optimierung des Speicherlayouts der globalen Speichereinrichtung bei Zugriff durch die ECU. In Schritt 30 werden Anwendungscodes für ein Softwareprogramm durch die Task-Programme einer jeweiligen ECU ausgeführt. Lese- und Schreiboperationen werden in der globalen Speichereinrichtung durchgeführt (z. B. nicht auf dem Mining-Prozessor befindlicher Speicher).
  • In Schritt 31 wird eine Signalliste durch einen Mining-Prozessor aus einer Link-Map-Datei in einem globalen Speicher extrahiert. Die Signalliste identifiziert Speicherplatzkurven, die von den durch die ausführbaren Anweisungen ausgeführten Tasks betroffen sind.
  • In Schritt 32 werden die Speicherzugriffskurven vom Mining-Prozessor gesammelt.
  • In Schritt 33 wird eine Korrelationsmatrix W mit Korrelationswerten für Signalgrößenpaare ausgebildet, die den Grad der Häufigkeit darstellen, mit der durch den gleichen Task-Satz in einem lokalen Anweisungs-Cache-Speicher auf entsprechende Speicherplätze zugegriffen wird. Jedes entsprechende Signalgrößenpaar wird einem Korrelationswert zugeordnet. Der Korrelationswert kann anschließend normalisiert werden, je nachdem, ob die Adressen der jeweiligen Signalgrö-ßen innerhalb einer vorbestimmten Größenordnung liegen. Der Korrelationswert kann auch auf der Häufigkeit beruhen, mit der die jeweiligen Signalgrößenpaare im ausführbaren Anweisungsstrom ausgeführt werden.
  • In Schritt 34 wird die Korrelationsmatrix neu geordnet, sodass höhere Korrelationswerte unter der Vielzahl von Korrelationswerten in der Korrelationsmatrix W näher an der Null-Diagonale der Matrix angeordnet werden. Übrige Korrelationswerte mit abnehmendem Wert werden in der Korrelationsmatrix in abnehmender Reihenfolge ausgehend von der Null-Diagonale entfernt angeordnet.
  • In Schritt 35 wird die permutierte Korrelationsmatrix zum Berechnen des Eigenvektors (q2) mit dem zweitkleinsten Eigenwert für jeden Korrelationswert in die Minimalenergiefunktion eingefügt. Jeder berechnete Eigenwert wird dann in aufsteigender Reihenfolge geordnet, um eine gewünschte Permutation für den Speicherlayout in der globalen Speichereinrichtung zu identifizieren.
  • In Schritt 36 wird die ausführbare binäre Datei modifiziert, um das Speicherlayout, wie in Schritt 35 bestimmt, zuzuordnen.
  • Die hierin beschriebenen Techniken identifizieren Signalgrößenpaare, die in unmittelbarer Nähe zueinander ausgeführte RAM-Speicherplätze nutzen (d. h. im Wesentlichen benachbarte ausführbare Anweisungen). Benachbarte Speicherplätze werden den Signalgrößen zugeordnet, von denen festgestellt wird, dass sie sich in den ausführbaren Anweisungen in enger Nähe zueinander befinden. Auf diese Weise werden entsprechende, häufig und im Wesentlichen sequentiell ausgeführte Signalgrößen im Wesentlichen Speicherplätzen in der globalen Speichereinrichtung zugeordnet, wodurch die Verarbeitungszeiten der CPU beim Suchen und Ermitteln der entsprechenden Speicherplätze reduziert werden. Als Ergebnis ordnet die hierin beschriebene Technik effektiv Speicherlayouts zu entsprechenden Signalgrößen von ausführbaren Anweisungen zu, die dicht aneinander liegen, um die Verarbeitungszeiten zu reduzieren. Dies verbessert den Wirkungsgrad der CPU und reduziert Engstellen.

Claims (9)

  1. Verfahren zum Ordnen von Speicherzugriff durch einen Anweisungs-Cache-Speicher einer Zentraleinheit (10) in einer globalen Speichereinrichtung (12), folgende Schritte umfassend: Extrahieren einer Signalliste aus einer Link-Map-Datei (14) in der globalen Speichereinrichtung (12); Aufzeichnen von Speicherzugriffskurven zu den ausgeführten Tasks aus der Signalliste; Identifizieren von Speicherplätzen (20), auf die in der globalen Speichereinrichtung (12) zugegriffen wird, aus den Zugriffskurven; Bestimmen eines Korrelationswertes für jedes Speicherplatzpaar in der globalen Speichereinrichtung (12), wobei die Korrelationswerte anhand der Nähe der entsprechenden ausführbaren Anweisungen zueinander berechnet werden, die das entsprechende Speicherplatzpaar nutzen, wobei das Bestimmen der Korrelationswerte der Speicherplatzpaare umfasst, dass eine Korrelationsmatrix (W) generiert wird, wobei die einzelnen Speicherplätze (20) untereinander mit Querverwiesen versehen sind; Neuordnen der Speicherplätze (20), auf die innerhalb der globalen Speichereinrichtung (12) zugegriffen wurde, als Funktion der bestimmten Korrelationswerte; und Ändern einer ausführbare Datei mit Zugriff auf die globale Speichereinrichtung, wobei die ausführbare Datei das Speicherlayout beim Zugriff auf die globale Speichereinrichtung (12) optimiert; dadurch gekennzeichnet , dass die Korrelationsmatrix (W) zur Ermittlung einer gewünschten Permutation neu geordnet wird, wobei die neu geordnete Korrelationsmatrix (W) eine diagonale Reihe von Einträgen mit jeweils einem Korrelationswert null beinhaltet und wobei Korrelationswerte mit einem jeweils höchsten Wert unter allen Korrelationswerten der Korrelationsmatrix (W) am nächsten bei den Null-Diagonaleneinträgen angeordnet sind.
  2. Verfahren nach Anspruch 1, wobei das Bestimmen der Korrelationswerte der Speicherplatzpaare ferner umfasst: Bestimmen eines Korrelationswertes für jedes entsprechende Speicherplatzpaar, auf das jeweils von ausführbaren Anweisungen zugegriffen wird, wobei jeder Korrelationswert ein anhand der Nähe der entsprechenden ausführbaren Anweisungen zueinander in einem Anweisungsausführungsstrom gewichteter Wert ist.
  3. Verfahren nach Anspruch 2, wobei der gewichtete Wert ferner als Funktion der Zugriffshäufigkeit auf jedes jeweilige Speicherplatzpaar durch die entsprechenden ausführbaren Anweisungen bestimmt wird.
  4. Verfahren nach Anspruch 3, wobei der gewichtete Wert normalisiert ist.
  5. Verfahren nach Anspruch 4, wobei der gewichtete Wert mit folgender Normalisierungsfunktion normalisiert wird: i ƒ   | A D D R   X A D D R   Y | < S , w a b = w a b + 1
    Figure DE102016121947B4_0008
    wo ADDR X eine erste im globalen Speicher abgerufene Adresse ist, ADDR Y eine zweite im globalen Speicher abgerufene Adresse ist, S eine vorbestimmten Byte-Größe ist und wab der gewichtete Wert für die Speicherplatzpaare in der Korrelationsmatrix (W) ist.
  6. Verfahren nach Anspruch 1, wobei die Korrelationswerte in dem Ma-ße niedriger werden, in dem sich die die Einträge von den Null-Diagnonaleneinträgen entfernen.
  7. Verfahren nach Anspruch 6, wobei die Korrelationswerte der permutierten Korrelationsmatrix (W) in eine Minimalenergiefunktion zur Ermittlung eines optimalen Zugriffsspeicherlayouts eingegeben werden.
  8. Verfahren nach Anspruch 7, wobei die Minimalenergiefunktion durch folgende Gleichung dargestellt wird: min  J ( π ) = l = 1 N 1 l 2 i = 1 N l w π i , π i + l .
    Figure DE102016121947B4_0009
  9. Verfahren nach Anspruch 8, wobei eine inverse Permutation der Minimalenergiefunktion zur Bestimmung des Speicherlayouts genutzt wird, wobei die inverse Permutation, durch folgende Gleichung dargestellt wird: min π 1  J ( π 1 ) = a , b ( π a 1 π b 1 ) 2 w ab .
    Figure DE102016121947B4_0010
DE102016121947.9A 2015-11-25 2016-11-15 Optimiertes Speicherlayout durch Data Mining Active DE102016121947B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/951,656 2015-11-25
US14/951,656 US9830270B2 (en) 2015-11-25 2015-11-25 Optimized memory layout through data mining

Publications (2)

Publication Number Publication Date
DE102016121947A1 DE102016121947A1 (de) 2017-06-01
DE102016121947B4 true DE102016121947B4 (de) 2023-08-17

Family

ID=58693397

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016121947.9A Active DE102016121947B4 (de) 2015-11-25 2016-11-15 Optimiertes Speicherlayout durch Data Mining

Country Status (3)

Country Link
US (1) US9830270B2 (de)
CN (1) CN106802868B (de)
DE (1) DE102016121947B4 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889999A (en) 1996-05-15 1999-03-30 Motorola, Inc. Method and apparatus for sequencing computer instruction execution in a data processing system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947052B2 (en) * 2001-07-13 2005-09-20 Texas Instruments Incorporated Visual program memory hierarchy optimization
CN101196889A (zh) * 2006-12-08 2008-06-11 国际商业机器公司 优化存储系统中的文件放置的方法及装置
US8122437B2 (en) * 2008-03-31 2012-02-21 Freescale Semiconductor, Inc. Method and apparatus to trace and correlate data trace and instruction trace for out-of-order processors
US8832659B2 (en) * 2010-12-06 2014-09-09 University Of Washington Through Its Center For Commercialization Systems and methods for finding concurrency errors
CN102722341B (zh) * 2012-05-17 2014-12-24 杭州中天微系统有限公司 存储载入单元投机执行控制装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889999A (en) 1996-05-15 1999-03-30 Motorola, Inc. Method and apparatus for sequencing computer instruction execution in a data processing system

Also Published As

Publication number Publication date
US9830270B2 (en) 2017-11-28
CN106802868B (zh) 2021-01-05
CN106802868A (zh) 2017-06-06
US20170147495A1 (en) 2017-05-25
DE102016121947A1 (de) 2017-06-01

Similar Documents

Publication Publication Date Title
DE69434728T2 (de) Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel
DE102008034519B4 (de) Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw.
DE60224552T2 (de) Fehlerbehandlung für beschreibbare referenz-speicherzellen zum verfolgen von einsatzspannungsdriften
DE68925412T2 (de) Dateisystem
DE69114333T2 (de) Rechner mit der Fähigkeit mehrere Befehle gleichzeitig auszuführen.
DE112009000431T5 (de) Vorrichtung und Verfahren zur Nutzung eines aus mehreren Ebenen bestehenden Cache
DE112011105774B4 (de) Verschiebbarer Speicher, der In-Memory-Datenstrukturen unterstützt
DE3688640T2 (de) Suchgerät.
DE112005003265T5 (de) Registerdateibereiche für ein Verarbeitungssystem
DE112004001214T5 (de) Schnelles Merkmalsauswahlverfahren und System zur Maximalentropiemodellierung
DE1952158A1 (de) Speicherschutzverfahren und Einrichtung zur Durchfuehrung dieses Verfahrens
DE112009002214T5 (de) Wiederherstellungsverfahren für eine LSB-Speicherseite zur Verwendung in einer Multi-Level-Cell-Flashspeichervorrichtung
DE112007003602T5 (de) Backup-Reihen-Zuordnungsvorrichtung, Speicher-Reparaturvorrichtung, Backup-Reihen-Zuordnungsverfahren, Speicher-Herstellungsverfahren und Programm
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE3688581T2 (de) Sortierverfahren in einem hierarchisch geordneten Speichersystem.
DE102009038453A1 (de) System und Verfahren zum Identifizieren von Eingangspunkten einer hierarchischen Struktur
DE102020119205A1 (de) Speichervorrichtung, speichersystem und betriebsverfahren hierfür
DE112021002290T5 (de) Partitionierbares neuronales netz für festkörperlaufwerke
DE102020133266A1 (de) Technologien zur Verfeinerung von stochastischen Ähnlichkeitssuchekandidaten
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE60003426T2 (de) Statusbits für cachespeicher
DE102019126788A1 (de) Beschleunigter zugriff auf aus in speichervorrichtungen gespeicherten daten erzeugte rechenergebnisse
DE68921214T2 (de) ZUR SPEICHERUNG VON ZWEI ZUGEHöRIGEN DATENEINHEITEN ANGEPASSTES SPEICHERSYSTEM.
DE102016121947B4 (de) Optimiertes Speicherlayout durch Data Mining
DE19939764A1 (de) Verfahren zum Betrieb eines Speichersystems sowie Speichersystem

Legal Events

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

Representative=s name: MANITZ FINSTERWALD PATENT- UND RECHTSANWALTSPA, DE

Representative=s name: MANITZ FINSTERWALD PATENTANWAELTE PARTMBB, DE

R082 Change of representative

Representative=s name: MANITZ FINSTERWALD PATENT- UND RECHTSANWALTSPA, DE

Representative=s name: MANITZ FINSTERWALD PATENTANWAELTE PARTMBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final