DE102018107860A1 - System und Verfahren zum Zugriff auf Daten in einem Mehrkern-Verarbeitungssystem, um Zugriffe auf externe Speicher zu verringern - Google Patents

System und Verfahren zum Zugriff auf Daten in einem Mehrkern-Verarbeitungssystem, um Zugriffe auf externe Speicher zu verringern Download PDF

Info

Publication number
DE102018107860A1
DE102018107860A1 DE102018107860.9A DE102018107860A DE102018107860A1 DE 102018107860 A1 DE102018107860 A1 DE 102018107860A1 DE 102018107860 A DE102018107860 A DE 102018107860A DE 102018107860 A1 DE102018107860 A1 DE 102018107860A1
Authority
DE
Germany
Prior art keywords
memory
area
segment
access
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102018107860.9A
Other languages
English (en)
Inventor
Shige Wang
J. David Rosa
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 DE102018107860A1 publication Critical patent/DE102018107860A1/de
Withdrawn 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/12Replacement control
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

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)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Es ist ein Speicherzugriffsverfahren in einer integrierten Mehrkernprozessorschaltung (IC) vorgesehen. Das Verfahren umfasst das Partitionieren lokaler Speicher auf der IC in eine Vielzahl von Speicherbereichen, worin jeder Speicherbereich ein oder mehrere Speichersegmente umfasst und die Zuordnung jedes Speicherbereichs zu einer oder mehreren Verarbeitungseinheiten oder Anwendungen, worin jede Verarbeitungseinheit einen Prozessorkern oder eine Verarbeitungsvorrichtung umfasst, die durch einen Prozessorkern gesteuert wird und worin die Anwendung von einer der Verarbeitungseinheiten ausgeführt werden kann. Das Verfahren umfasst ferner das Überwachen der Verwendung jedes Speichersegments in jedem Bereich, welcher der Verarbeitungseinheit und den von der Verarbeitungseinheit ausgeführten Anwendungen zugeordnet ist, mit jeder Verarbeitungseinheit und das Austauschen der Daten in einem Speichersegment aus einem Speicherbereich, in dem ein Fehler auftritt, gegen gewünschte Daten, wenn der Fehler einen Datenzugriff mit einem externen Speicher verursacht.

Description

  • TECHNISCHES GEBIET
  • Die in dieser Patentschrift beschriebene Technologie betrifft im Allgemeinen Computersysteme und insbesondere Computersysteme mit Multicore-Prozessoren, die um gemeinsam genutzte Speicherressourcen wetteifern.
  • HINTERGRUND
  • Moderne Fahrzeuge nutzen unterschiedliche eingebettete elektronische Steuerungen, welche die Leistung, den Komfort und die Sicherheit usw. des Fahrzeugs verbessern. Derartige Steuerungen beinhalten Motorsteuerungen, Fahrwerkssteuerungen, Lenkungssteuerungen, Antriebsstrangsteuerungen, Klimaregelungen, Infotainmentsystem-Steuerungen, Fahrwerksystemsteuerungen, usw. Diese Steuerungen können mit Multicore-Prozessorchips implementiert werden, die mit einem externen Speicher gekoppelt sind. Eine Vielzahl von Multicore-Verarbeitungschips kann über einen gemeinsamen Bus mit dem externen Speicher verbunden werden. Bei einer hohen Auslastung des externen Speichers kann zwischen den Multicores eine hohe Konkurrenzsituation für den Zugriff auf den gemeinsamen Bus zum Zugriff auf den externen Speicher bestehen. Ein umfangreicher Speicherzugriff von einem/einer Kern/Aufgabe kann zu erheblichen Verzögerungen von anderen führen, was wiederum zu einer unzureichenden Freigabe führt.
  • Dementsprechend ist es wünschenswert, ein System mit einer verbesserten gemeinsamen Nutzung des gemeinsamen Speicherbusses und des externen Speichers bereitzustellen. Außerdem werden andere wünschenswerte Merkmale und Eigenschaften der vorliegenden Erfindung aus der nachfolgenden ausführlichen Beschreibung der Erfindung und den hinzugefügten Ansprüchen in Verbindung mit den zugehörigen Zeichnungen und dem Hintergrund der Erfindung sichtbar.
  • KURZDARSTELLUNG
  • Es ist ein Speicherzugriffssystem in einer integrierten Mehrkernprozessorschaltung (IC) vorgesehen. Das System beinhaltet lokalen Speicher auf der IC, der in eine Vielzahl von Speicherbereichen unterteilt ist, wobei jeder Speicherbereich ein oder mehrere Speichersegmente beinhaltet und jeder Speicherbereich einer oder mehreren Verarbeitungseinheiten oder Anwendungen zugeordnet ist, jede Verarbeitungseinheit einen Prozessorkern oder eine Verarbeitungsvorrichtung umfasst, die durch einen Prozessorkern gesteuert wird, und die Anwendung von einer der Verarbeitungseinheiten ausgeführt werden kann. Das System beinhaltet ferner einen Monitor, der konfiguriert ist, um die Verwendung jedes Speichersegments zu überwachen, und einen Manager, der konfiguriert ist, um Daten-Swaps in den Speichersegmenten zu verwalten, wobei ein Daten-Swap die Daten in einem Speichersegment aus einem Speicherbereich beinhaltet, in dem ein Fehlversuch gegen gewünschte Daten ausgetauscht wird.
  • Es ist ein Speicherzugriffsverfahren in einer integrierten Mehrkernprozessorschaltung (IC) vorgesehen. Das Verfahren beinhaltet die Aufteilung lokaler Speicher auf der integrierten Schaltung in eine Vielzahl von Speicherbereichen, worin jeder Speicherbereich ein oder mehrere Speichersegmente beinhaltet und die Zuordnung jedes Speicherbereichs zu einer oder mehreren Verarbeitungseinheiten oder Anwendungen, worin jede Verarbeitungseinheit einen Prozessorkern oder eine Verarbeitungsvorrichtung beinhaltet, die durch einen Prozessorkern gesteuert wird und worin die Anwendung von einer der Verarbeitungseinheiten ausgeführt werden kann. Das Verfahren beinhaltet ferner das Überwachen der Verwendung jedes Speichersegments in jedem Bereich durch die Verarbeitungseinheit und die von der Verarbeitungseinheit ausgeführten Anwendungen und das Austauschen der Daten in einem Speichersegment aus einem fehlerhaften Speicherbereich, wenn der Fehler einen Datenzugriff mit externem Speicher unter Verwendung eines externen Speicherbusses verursacht.
  • Figurenliste
  • Aspekte der vorliegenden Offenbarung werden am besten aus der folgenden ausführlichen Beschreibung verstanden, wenn sie mit den zugehörigen Figuren gelesen wird, wobei gleiche Bezugszeichen gleiche Elemente bezeichnen, und
    • 1 ist ein Blockdiagramm das gemäß einigen Ausführungsformen ein Beispiel für ein Computersystem darstellt;
    • 2 ist ein Blockdiagramm das gemäß einigen Ausführungsformen ein weiteres Beispiel für ein Computersystem darstellt;
    • 3 ist ein Blockdiagramm das gemäß einigen Ausführungsformen ein Beispiel für ein Speicherverteilungsschema für den lokalen Speicher veranschaulicht;
    • 4 ist ein Blockdiagramm das einen exemplarischen Datensatz in einer exemplarischen Datenstruktur zur Verwendung beim Aufzeichnen der dynamischen Zugriffsmuster verschiedener Aufgaben und Speicherbereiche gemäß einigen Ausführungsformen veranschaulicht;
    • 5 ist ein Verfahrensablaufdiagramm, das ein exemplarisches Verfahren zur Verwendung durch einen Zugriffsmonitor gemäß einigen Ausführungsformen darstellt;
    • 6 ist ein Verfahrensablaufdiagramm, das ein exemplarisches Verfahren zur Verwendung eines Partitionsmanagers gemäß einigen Ausführungsformen darstellt; und
    • 7 ist ein Verfahrensablaufdiagramm, das ein exemplarisches Verfahren in einem Multicore-Prozessor zur Verwaltung von Speicherzugriffen gemäß einigen Ausführungsformen darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Offenbarung stellt viele verschiedene Ausführungsformen oder Beispiele für das Implementieren verschiedener Merkmale des bereitgestellten Gegenstands bereit. Die folgende ausführliche Beschreibung ist lediglich exemplarischer Natur und soll die Erfindung oder die Anwendung und die Verwendungen der Erfindung nicht einschränken. Darüber hinaus besteht keinerlei Verpflichtung zur Einschränkung auf eine der im vorstehenden Hintergrund oder in der folgenden ausführlichen Beschreibung dargestellten Theorien.
  • Der hierin beschriebene Gegenstand offenbart Vorrichtungen, Systeme, Techniken und Artikel zum Reduzieren von Verzögerungen beim Zugriff auf den gemeinsamen Speicher in Computersystemen mit Multicore-Prozessoren und lokalem Speicher. Die folgende Offenbarung stellt viele verschiedene Beispiele zum Reduzieren von Verzögerungen beim Zugriff auf den gemeinsamen Speicher zur Verfügung, indem mehr Speicherzugriffe auf den lokalen Speicher und weniger Speicherzugriffe auf den gemeinsamen Speicher geleitet werden. Die beschriebenen Beispiele nutzen Dienste, wie beispielsweise ein Speicherverteilungsschema, einen Zugriffsmonitor zur Überwachung lokaler Speicherzugriffe und einen Partitionsmanager zum Durchführen von Daten-Swaps und zur dynamischen Anpassung des Speicherverteilungsschemas basierend auf überwachten lokalen Speicherzugriffsinformationen. Die in diesen Beispielen verwendeten Dienste können dazu beitragen, Speicherzugriffsverzögerungen zu reduzieren.
  • 1 ist ein Blockdiagramm das ein exemplarisches Computersystem 100 darstellt. Das exemplarische Computersystem 100 kann verwendet werden, um eine Mehrkern-Fahrzeugsteuerung für den Einsatz in einem Fahrzeug 101, wie beispielsweise einem Automobil, zu implementieren. Das exemplarische Computersystem 100 beinhaltet einen ersten Multicore-Prozessor 102, einen zweiten Multicore-Prozessor 104 und einen gemeinsamen Speicher 106. Jeder der Multicore-Prozessoren 102, 104 enthält eine Vielzahl von Verarbeitungseinheiten 102a, 102b, 104a, 104b. Obwohl für jeden Multicore-Prozessor 102, 104 in diesem Beispiel nur zwei Verarbeitungseinheiten angezeigt werden, können die Multicore-Prozessoren 102, 104 viel mehr als zwei Verarbeitungseinheiten beinhalten. In diesem Beispiel befinden sich jeder Multicore-Prozessor 102, 104 und der gemeinsame Speicher 106 jeweils auf einer separaten integrierten Schaltung (IC). In einem weiteren Beispiel können sich die Multicore-Prozessoren 102, 104 auf derselben IC und der gemeinsame Speicher auf einer anderen IC befinden. In einem weiteren Beispiel befinden sich die Multicore-Prozessoren 102, 104 und der gemeinsame Speicher 106 auf derselben IC wie ein System auf einem Chip (SOC).
  • Eine Verarbeitungseinheit kann einen Prozessorkern, wie beispielsweise den Prozessorkern 102a, oder eine Verarbeitungsvorrichtung unter der Steuerung eines Prozessorkerns, wie die Verarbeitungsvorrichtung 104a, umfassen. Beispiele für eine Verarbeitungsvorrichtung sind eine Grafikprozessoreinheit (GPU), ein mathematischer Co-Prozessor und sonstige. Jede der Verarbeitungseinheiten hat Zugriff auf den lokalen Speicher und kann eine oder mehrere Anwendungen ausführen. Im veranschaulichten Beispiel beinhalten die vom Prozessorkern 102a ausgeführten Anwendungen die Aufgaben 108a, 108b und die von der Verarbeitungsvorrichtung 104a ausgeführten Anwendungen die Softwarekomponenten 110a, 110b.
  • Zur Durchführung ihrer jeweiligen Anwendungen versuchen die Verarbeitungseinheiten, den lokalen Speicher für Datenzugriffe (d. h. Datenspeicherung und/oder -abruf) zu nutzen. In diesem Beispiel versucht der Prozessorkern 102a, beim Ausführen seiner Aufgaben 108a, 108b seinen lokalen Speicher 112 für den Datenzugriff zu verwenden. Ebenso versucht die Vorrichtung 104a, beim Ausführen ihrer Softwarekomponenten 110a, 110b, ihren lokalen Speicher 114 für den Datenzugriff zu verwenden. In einem Beispiel umfasst der lokale Speicher den Cache-Speicher. In einem weiteren Beispiel umfasst der lokale Speicher den Nicht-Cache-Speicher.
  • Wenn der lokale Speicher aufgrund eines Fehlers nicht für den Datenzugriff zur Verfügung steht (d. h., wenn die für die Verarbeitung durch eine Verarbeitungseinheit oder Anwendung angeforderten Daten nicht im lokalen Speicher gefunden werden), versucht die Verarbeitungseinheit, auf den gemeinsamen Speicher 106 über einen gemeinsamen Bus 116 zuzugreifen. Der Speicherzugriff über den gemeinsamen Bus 116 durch verschiedene Aufgaben oder Softwarekomponenten auf verschiedenen Kernen oder Vorrichtungen erfolgt nacheinander. Ein großer Speicherzugriff von einem Kern, einer Vorrichtung, einer Aufgabe oder einer Softwarekomponente kann andere Kerne, Vorrichtungen, Aufgaben oder Softwarekomponenten verzögern, wenn diese vor dem weiteren Betrieb auf den Datenzugriff mit dem gemeinsamen Speicher warten. Die hierin offenbarten Vorrichtungen, Systeme, Techniken und Artikel ermöglichen es, Verzögerungen beim Zugriff auf den gemeinsamen Speicher zu reduzieren, indem mehr Speicherzugriffe auf den lokalen Speicher und weniger Speicherzugriffe auf den gemeinsamen Speicher geleitet werden.
  • 2 ist ein Blockdiagramm das ein weiteres exemplarisches Computersystem 200 darstellt. Das exemplarische Computersystem 200 kann ebenfalls verwendet werden, um eine Mehrkern-Fahrzeugsteuerung für den Einsatz in einem Fahrzeug, wie beispielsweise einem Automobil, zu implementieren. Das exemplarische Computersystem 200 beinhaltet einen Multicore-Prozessor 202 mit einer Vielzahl von Verarbeitungseinheiten 204, Anwendungen 206, die von den Verarbeitungseinheiten ausgeführt werden, und einen lokalen Speicher 208. Obwohl für den Multicore-Prozessor 202 in diesem Beispiel nur zwei Verarbeitungseinheiten angezeigt werden, kann der Multicore-Prozessor 202 mehr als zwei Verarbeitungseinheiten beinhalten. Das exemplarische Computersystem 200 beinhaltet auch den gemeinsamen Speicher 210, der mit anderen Prozessoren (nicht dargestellt) oder anderen Multicore-Prozessoren (nicht dargestellt) über einen gemeinsamen Bus 212 geteilt werden kann. Der lokale Speicher 208 kann vom Multicore-Prozessor 202 verwendet werden, um eine Teilmenge der Speicherplätze des gemeinsamen Speichers 210 zu speichern, um die Zugriffshäufigkeit des Multicore-Prozessors 202 auf die im gemeinsamen Speicher 210 gespeicherten Daten zu reduzieren.
  • Der exemplarische Multicore-Prozessor 202 leitet Speicherzugriffe auf bestimmte Bereiche des lokalen Speichers 208, um Zugriffe und Interferenzen über den gemeinsamen Speicherbus 212 zu reduzieren. Der exemplarische Multicore-Prozessor 202 bietet eine Architektur mit Diensten zur Überwachung und Verwaltung von Speicherzugriffen. Insbesondere implementiert der Multicore-Prozessor 202 eine Speicherorganisation oder ein Verteilungsschema 214, das zwischen einem gemeinsamen Zugriff und einem privaten Zugriff unterscheidet, einen Monitor 216, um dynamische Speicherzugriffsmuster für verschiedene Aufgaben/Anwendungen und Speicherbereiche (Partitionen) zu sammeln, und einen Manager 218, um den verfügbaren Speicher basierend auf dem Zugriffsmuster der Aufgaben/Anwendungen anzupassen.
  • Das in diesem Beispiel verwendete Verteilungsschema 214 ermöglicht im Gegensatz zu anderen möglichen Verteilungsschemata die gemeinsame Nutzung von Daten und Speicherplätzen durch Aufgaben/Anwendungen. Das Speicherverteilungsschema 214 wird verwendet, um den lokalen Speicher in verschiedene Bereiche zu unterteilen. Die Implementierung des Verteilungsschemas 214 führt zur Unterteilung des lokalen Speichers 208 in eine Anzahl an Teilbereichen oder Speicherbereichen, wie beispielsweise ein erster Teilbereich 220, ein zweiter Teilbereich 222 und ein dritter Teilbereich 224, wie in diesem Beispiel dargestellt. Wie ebenfalls dargestellt, kann jeder Speicherbereich ein oder mehrere Speichersegmente oder Seiten beinhalten.
  • 3 ist ein Blockdiagramm das ein Beispiel für ein Speicherverteilungsschema für den exemplarischen lokalen Speicher 300 veranschaulicht. Der exemplarische lokale Speicher 300 ist in zwei gemeinsame lokale Speicherbereiche S1, S2 und drei private Speicherbereiche P1, P2, P3 unterteilt. Jeder Bereich umfasst ein oder mehrere Speichersegmente oder Seiten. In diesem Beispiel ist der erste gemeinsame Speicherbereich S1 aus drei Speichersegmenten, der zweite gemeinsame Speicherbereich S2 aus sieben nicht zusammenhängenden Speichersegmenten, der erste private Speicherbereich P1 aus zwei Speichersegmenten, der zweite private Speicherbereich P2 aus drei Speichersegmenten und der dritte private Speicherbereich P3 aus drei Speichersegmenten, zusammengesetzt. Wie durch den zweiten gemeinsamen Speicherbereich S2 veranschaulicht, müssen die Bereiche innerhalb des Speichers 300 nicht zusammenhängend sein. Der lokale Speicher 300 kann verwendet werden, um eine Teilmenge der Speicherplätze des gemeinsamen externen Speichers 310 zur Reduzierung der Zugriffshäufigkeit auf den gemeinsamen externen Speicher 310 zu speichern.
  • Die privaten Speicherbereiche P1, P2, P3 sind jeweils für eine Anwendung oder Verarbeitungseinheit reserviert. In diesem Beispiel ist jedem privaten Speicherbereich eine minimale Segmentanzahl und eine normale Segmentanzahl zugeordnet. Die minimale Segmentanzahl stellt die minimale Anzahl der Segmente dar, die im Speicherbereich gepflegt werden müssen, und die normale Segmentanzahl stellt die Anzahl der Segmente dar, die normalerweise im Speicherbereich gepflegt werden. Wie im Folgenden erläutert wird, können Segmente aus den privaten Speicherbereichen von gemeinsamen Speicherbereichen ausgeliehen werden. Die gemeinsamen Speicherbereiche S1, S2 speichern Daten, die von mehreren Verarbeitungseinheiten und/oder Anwendungen verwendet werden können.
  • Werden von einer Anwendung benötigte Daten nicht in einem Speichersegment in einem der Anwendung zugeordneten Speicherbereich des lokalen Speichers gespeichert (d. h. ein Fehler im Speicherbereich), kann der Inhalt eines Speichersegments in dem der Anwendung zugeordneten Bereich im lokalen Speicher mit dem Inhalt eines Speichersegments im gemeinsamen externen Speicher getauscht werden, das der Anwendung zur Datenspeicherung zugewiesen wurde (d. h. ein Datenaustausch). Durch die Beschränkung des Datenaustauschs auf Speichersegmente im gleichen Speicherbereich, in dem der Fehler aufgetreten ist, kann die Isolierung der Speicherbereiche auf ihre zugeordneten Verarbeitungseinheiten und/oder Anwendungen beibehalten werden.
  • Eine dynamische Anpassung der Größe eines Speicherbereichs im lokalen Speicher kann ebenfalls möglich sein. Wenn beispielsweise ein Speicherbereich eine hohe Anzahl an Datenzugriffen und Daten-Swaps (Datenaustausch) erfährt, können ein oder mehrere Speichersegmente aus einem Speicherbereich ausgeliehen oder neu zugewiesen werden, der eine geringe Anzahl an Datenzugriffen auf den Speicherbereich mit einer hohen Anzahl an Datenzugriffen und Daten-Swaps (Datenaustausch) aufweist. Durch die Überwachung der Anzahl der Datenzugriffe in den einzelnen Bereichen können die Speicherbereichsgrößen intelligent an die Speicherzugriffsmuster und die Historie in den verschiedenen Speicherbereichen angepasst werden. Eine korrekte Größenänderung der Speicherbereiche kann zu weniger Fehlern in den Speicherbereichen des lokalen Speichers und weniger Zugriffen auf den gemeinsamen externen Speicher führen. In einem Beispiel können nur die gemeinsamen Speicherbereiche Speichersegmente ausleihen. In einem anderen Beispiel können Speichersegmente nur aus privaten Bereichen ausgeliehen oder neu zugeordnet werden. In einem weiteren Beispiel können Speichersegmente nur von einem privaten Speicherbereich in einen gemeinsamen Speicherbereich umgeleitet werden. Die Neuzuordnung kann auftreten, wenn die Zugriffsrate und die Swap-Rate im gemeinsamen Speicherbereich hoch und die Zugriffsrate im privaten Speicherbereich niedrig sind.
  • Wenn die Zugriffsrate in einem Speicherbereich, dem ein oder mehrere Speichersegmente neu zugeordnet wurden, erheblich abnimmt, kann ein neu zugewiesenes oder ausgeliehenes Speichersegment an einen ausleihenden Speicherbereich zurückgegeben werden. Das zurückgegebene Speichersegment kann an den Speicherbereich zurückgegeben werden, der das zurückgegebene Speichersegment oder einen anderen ausleihenden Speicherbereich bereitgestellt hat. Somit kann die Größe der Speicherbereiche je nach rechnerischem Bedarf dynamisch angepasst werden.
  • Der exemplarische Multicore-Prozessor 202 von 2 implementiert einen exemplarischen Monitor zur Aufzeichnung der dynamischen Zugriffsmuster verschiedener Anwendungen und Speicherbereiche (Partitionen). Der exemplarische Monitor verfolgt die Verwendung der einzelnen Segmente in den lokalen Speicherbereichen. Die Überwachung beinhaltet das Sammeln der Identität der Aufgabe(n) (oder Anwendung(en)), die auf das Speichersegment zugreifen, die Zugriffshäufigkeit (d. h. die Trefferrate) und die Häufigkeit von Swaps (Datenaustauschen) (d. h. die Fehlquote). Die überwachten Informationen können vom Partitions-Manager verwendet werden, um die Zuordnung der Segmente zu Anwendungen/Kernen anzupassen.
  • Der exemplarische Monitor setzt sich aus einer Vielzahl von exemplarischen Monitoreinheiten 216 zusammen, die jeweils von einer anderen der Verarbeitungseinheiten implementiert werden. Infolgedessen wird die Überwachung in diesem Beispiel von der Vielzahl der exemplarischen Monitoreinheiten 216 durchgeführt. Jede exemplarische Monitoreinheit 216 ist konfiguriert, um Speicherzugriffe in jedem der Verarbeitungseinheit zugeordneten Speicherbereich zu überwachen, welche die Monitoreinheit 216 implementiert. Jede exemplarische Monitoreinheit 216 ist auch konfiguriert, um Speicherzugriffe in jedem den Anwendungen zugeordneten Speicherbereich zu überwachen, die durch die Verarbeitungseinheit ausgeführt werden und die die Monitoreinheit 216 implementiert. Jede exemplarische Monitoreinheit 216 ist konfiguriert, um bei jedem Zugriff auf die im Speichersegment gespeicherten Daten einen Zugriffszähler für ein Speichersegment zu erhöhen und bei jedem Datenaustausch mit dem Segment einen Auslagerungszähler für das Speichersegment zu erhöhen. Jede exemplarische Monitoreinheit 216 ist auch konfiguriert, um den Zugriffszähler nach jedem Datenaustausch zurückzusetzen. Der exemplarische Monitor und die exemplarische Monitoreinheit 216 werden von den Verarbeitungseinheiten implementiert und durch Programmieranweisungen so konfiguriert, dass in einer Datenstruktur für jedes überwachte Segment ein Datensatz aufgezeichnet wird. Jeder Datensatz umfasst einen Identifikator für das überwachte Segment, einen Identifikator für den Bereich, in dem das überwachte Segment ein Teil ist, eine Anwendungsliste, welche die Identität jeder Anwendung beinhaltet, die auf die im überwachten Segment gespeicherten Daten zugegriffen hat, den Zugriffszähler für das Segment und den Austauschzähler für das Segment.
  • 4 ist ein Blockdiagramm das einen exemplarischen Datensatz 400 in einer exemplarischen Datenstruktur zum Aufzeichnen der dynamischen Zugriffsmuster verschiedener Aufgaben und Speicherbereiche veranschaulicht. Ein exemplarischer Monitor zeichnet die überwachten Informationen zu einem Speichersegment im exemplarischen Datensatz auf. Der exemplarische Datensatz 400 umfasst einen Identifikator 402 für das überwachte Segment, einen Identifikator 404 für den Bereich, in dem das überwachte Segment ein Teil ist, eine Anwendungsliste 406, welche die Identität jeder Anwendung beinhaltet, die auf die im überwachten Segment gespeicherten Daten zugegriffen hat, den Zugriffszähler 408 für das Segment und den Austauschzähler 410 für das Segment. Bezüglich der Anwendungsliste werden in diesem Beispiel nur Anwendungen aufgezeichnet, die auf die Partition zugreifen, wobei die Anwendungsliste monoton angewachsen ist (d. h. Anwendungen werden nicht aus der Liste entfernt), Bitvektoren werden für die effiziente Speicherung und den Zugriff verwendet, wobei jedes Bit eine zugreifende Anwendung darstellt, eine eindeutige Darstellung liefert und eine Bitanzahloperation verwendet werden kann, um Anwendungen zu identifizieren, die auf der Liste aufgeführt sind.
  • 5 ist ein Verfahrensablaufdiagramm, das ein exemplarisches Verfahren 500 zur Verwendung durch einen Zugriffsmonitor darstellt. Eine Datenzugriffsanforderung wird erkannt (Operation 502), z. B. durch eine exemplarische Monitoreinheit 216. Die exemplarische Monitoreinheit 216 identifiziert das Speichersegment (Operation 504), welches das Ziel der Datenzugriffsanforderung ist. Die exemplarische Monitoreinheit 216 entscheidet, ob eine Aufgabe (oder eine andere Anwendung), die den Datenzugriff anfordert, auf der Anwendungsliste steht (Operation 506). Wenn die anfordernde Aufgabe nicht in der Anwendungsliste steht, wird die Aufgabe in die Anwendungsliste aufgenommen (Operation 508). Wenn die anfordernde Aufgabe in der Anwendungsliste steht oder wenn die Aufgabe in die Anwendungsliste aufgenommen wurde, wird eine Entscheidung zum Austausch von Segmenten getroffen (Vorgang 510). Wenn kein Segment vorhanden ist, das die Datenzugriffsanforderung erfüllen kann (d. h. die Entscheidung für den Segmenttausch ist ja), kann der Partitions-Manager aufgerufen werden, um den Inhalt eines Speichersegments auszutauschen, damit das Speichersegment die Datenzugriffsanforderung erfüllen kann, die exemplarische Monitoreinheit 216 kann die Anzahl der ausgetauschten Segmente erhöhen, und die exemplarische Monitoreinheit kann den Zugriffszähler für das ausgetauschte Segment zurücksetzen (Operation 512). Wenn ein Segment vorhanden ist, das die Datenzugriffsanforderung (d. h., die Entscheidung für den Segmenttausch ist nein) erfüllen kann, dann kann die exemplarische Monitoreinheit 216 den Zugriffszähler für das Speichersegment erhöhen (Operation 514). Der Prozess wird beendet (Vorgang 516).
  • Der exemplarische Multicore-Prozessor 202 von 2 implementiert auch einen exemplarischen Partitions-Manager zum Anpassen der Speichersegmente und Speicherpartitionen basierend auf dem Speichersegment-Zugriffsmuster. Der exemplarische Partitions-Manager kann ein Segment anpassen, indem er Daten im Segment austauscht, wenn ein Datenzugriffsfehler in einem Speicherbereich festgestellt wird. Wenn der Datenzugriff fehlschlägt, wird der Manager aufgerufen. Der exemplarische Manager tauscht Daten in einem Speichersegment, das sich im gleichen Speicherbereich befindet, in dem der Datenzugriff fehlgeschlagen ist.
  • In einem Beispiel ist die folgende Swap-Policy implementiert. Das für den Austausch ausgewählte Speichersegment ist das Speichersegment in derselben Partition mit der niedrigsten Zugriffszahl. Wenn mehr als ein Segment mit der niedrigsten Zugriffszahl verbunden ist, kann das verbundene Segment mit der kleinsten Aufgabenliste ausgewählt werden.
  • Der exemplarische Partitions-Manager kann auch die Größe von Speicherbereichen ändern, indem er ein oder mehrere Speichersegmente neu zuordnet. Der exemplarische Manager kann die Größe eines Bereichs erweitern, wenn der Zugriffszähler und der Austauschzähler in dem Bereich hoch sind, und die Größe eines Bereichs verringern, wenn der Zugriffszähler in dem Bereich niedrig ist. Als Beispiel kann ein Partitions-Manager ein Speichersegment von einem ersten Bereich zu einem zweiten Bereich neu zuweisen, wenn der Zugriffszähler und der Austauschzähler im zweiten Bereich über einem ersten Schwellenwert liegen (z. B. in Bezug auf die Anzahl der Zählungen in anderen Bereichen oder einen festen Satzpegel hoch), liegt der Zugriffszähler im ersten Bereich unter einem zweiten Schwellenwert (z. B. niedrig im Vergleich zu den Zählungen in anderen Bereichen oder einem festen Pegel), und der Zugriffszähler für das neu zuzuordnende Speichersegment liegt auf oder unter einem dritten Schwellenwert (z. B. Null).
  • In einem Beispiel ist das Größenänderungsverhalten implementiert. Nur gemeinsam genutzte Partitionen können sich Speichersegmente ausleihen oder neu zuweisen lassen. Die ausgeliehenen oder neu zugeordneten Speichersegmente stammen aus privaten Partitionen. Eine gemeinsame Partition kann ihre Partitionsgröße erhöhen, wenn die Anzahl der Austausche höher als ein Schwellenwert ist. Die private Partition mit der niedrigsten Zugriffszahl wird für die Bereitstellung des neu zugewiesenen Speichersegments gewählt. Bei einer Verknüpfung zwischen zwei oder mehreren privaten Partitionen wird die private Partition mit der unwichtigsten Aufgabe/Zuordnung für die Bereitstellung des neu zugewiesenen Speichersegments gewählt. Wenn der Zugriffszähler für das neu zugeordnete Speichersegment für eine vordefinierte Zeitdauer auf null sinkt, wird das neu zugeordnete Speichersegment in seinen ursprünglichen Speicherbereich zurückgesetzt.
  • Der exemplarische Partitions-Manager wird von den Verarbeitungseinheiten implementiert und durch Programmieranweisungen konfiguriert. Der exemplarische Monitor setzt sich ebenfalls aus einer Vielzahl von Partitionsmanager-Einheiten 218 zusammen, von denen jede durch eine andere der Verarbeitungseinheiten implementiert ist.
  • 6 ist ein Verfahrensablaufdiagramm, das ein exemplarisches Verfahren 600 zur Verwendung durch einen Partitions-Manager darstellt. Es wird eine Segmenttauschanforderung erzeugt (Operation 602). Der Partitions-Manager identifiziert ein Ersatzsegment gemäß seiner Swap-Policy (Operation 604). Der Partitions-Manager führt eine Größenanpassung basierend auf den überwachten Zugriffsinformationen durch (Operation 606). Wenn der Partitions-Manager bestimmt, dass eine Partition in der Größe geändert werden muss, passt der Partitions-Manager die Größe der Partition entsprechend seinem Größenänderungsverhalten an (Operation 608). Wenn der Partitions-Manager bestimmt, dass eine Größenänderung nicht erforderlich ist oder die Größe der Partition angepasst wurde, aktualisiert er die Partition durch Zuweisen eines neuen Segments (Operation 610). Der Prozess wird beendet (Vorgang 612).
  • 7 ist ein Verfahrensablaufdiagramm, das ein exemplarisches Verfahren 700 in einem Multicore-Prozessor zur Verwaltung von Speicherzugriffen darstellt. Lokaler Speicher auf einer integrierten Schaltung aufgeteilt in eine Vielzahl von Speicherbereichen (Operation 702). Die Partitionierung des lokalen Speichers kann auch die Partitionierung des lokalen Speichers in eine Vielzahl von privaten und gemeinsamen Speicherbereichen beinhalten. Jeder Speicherbereich kann ein oder mehrere Speichersegmente aufweisen.
  • Jeder Speicherbereich ist einer oder mehreren Verarbeitungseinheiten oder Anwendungen zugeordnet (Operation 704). Eine Verarbeitungseinheit kann ein Prozessorkern oder eine Vorrichtung sein, die unter der Steuerung eines Prozessorkerns steht. Die Anwendung kann eine Aufgabe oder eine Softwarekomponente sein. Das Zuordnen kann das Zuordnen jedes privaten Bereichs zu einer einzelnen Verarbeitungseinheit oder Anwendung und das Zuordnen jedes gemeinsamen Bereichs zu einer Vielzahl von Verarbeitungseinheiten und/oder Anwendungen umfassen.
  • Die Verwendung jedes Speichersegments in jedem Bereich wird überwacht (Operation 706). Die Überwachung kann von mehreren Monitoreinheiten durchgeführt werden, wobei jede Monitoreinheit durch eine der Verarbeitungseinheiten implementiert wird. Jede Monitoreinheit kann konfiguriert sein, um Speicherzugriffe in jedem den Anwendungen zugeordneten Speicherbereich zu überwachen, welche die Monitoreinheit implementiert und durch die Verarbeitungseinheit ausgeführt werden. Die Nutzungsüberwachung kann das Überwachen von Treffern auf die Speichersegmente, das Austauschen von Daten in Speichersegmenten und das Fehlen von Speicherbereichen beinhalten. In einem Beispiel beinhaltet die Nutzungsüberwachung eine Erhöhung des Zugriffszählers für das Speichersegment bei jedem Zugriff auf die im Speichersegment gespeicherten Daten und eine Erhöhung des Austauschzählers für das Speichersegment bei jedem Datenaustausch, der mit dem Segment stattfindet. Die Nutzungsüberwachung kann auch das Zurücksetzen des Zugriffszählers nach jedem Datenaustausch beinhalten. Die individuellen Monitoreinheiten können dazu konfiguriert sein, bei jedem Zugriff auf die im Speichersegment gespeicherten Daten den Zugriffszähler für ein Speichersegment zu erhöhen und bei jedem Datenaustausch mit dem Segment den Austauschzähler für das Speichersegment zu erhöhen. Die Monitoreinheiten können auch dazu konfiguriert sein, den Zugriffszähler nach jedem Datenaustausch zurückzusetzen. In einem weiteren Beispiel kann die Nutzungsüberwachung das Aufzeichnen in einer Datenstruktur für jedes überwachte Segment beinhalten, worin jeder Datensatz einen Identifikator für das überwachte Segment, einen Identifikator für den Bereich, in dem das überwachte Segment ein Teil ist, eine Anwendungsliste, welche die Identität jeder Anwendung beinhaltet, die auf die im überwachten Segment gespeicherten Daten zugegriffen hat, den Zugriffszähler für das Segment und den Austauschzähler für das Segment beinhalten.
  • Daten in einem Speichersegment können als Reaktion auf ein Fehlen im lokalen Speicher gegen gewünschte Daten ausgetauscht werden (Operation 708). Ein Partitions-Manager kann den Austausch von Daten in den Speichersegmenten verwalten. Bei einem Datentausch werden die Daten in einem Speichersegment aus einem Speicherbereich gegen die gewünschten Daten ausgetauscht. In einem Beispiel ist das für den Austausch ausgewählte Speichersegment das Speichersegment in derselben Partition mit der niedrigsten Zugriffszahl. Wenn mehr als ein Segment mit der niedrigsten Zugriffszahl verbunden ist, kann das verbundene Segment mit der kleinsten Aufgabenliste ausgewählt werden.
  • Partitionen können durch Zuordnen eines Speichersegments zu einem anderen Partitionsbereich basierend auf bestimmten überwachten Bedingungen (Operation 710) in der Größe verändert werden. In einem Beispiel wird ein Speichersegment von einem ersten Bereich in einen zweiten Bereich verschoben, wenn der Zugriffszähler und der Austauschzähler im zweiten Bereich über einem ersten Schwellenwert liegen (z. B. in Bezug auf die Anzahl der Zählungen in anderen Bereichen oder einen festen Satzpegel hoch), liegt der Zugriffszähler im ersten Bereich unter einem zweiten Schwellenwert (z. B. niedrig im Vergleich zu den Zählungen in anderen Bereichen oder einem festen Pegel), und der Zugriffszähler für das neu zuzuordnende Speichersegment liegt auf oder unter einem dritten Schwellenwert (z. B. Null).
  • Hierin offenbart werden Vorrichtungen, Systeme, Techniken und Artikel zum Reduzieren von Verzögerungen beim Zugriff auf den gemeinsamen Speicher in Computersystemen mit Multicore-Prozessoren und lokalem Speicher durch Leiten von mehr Speicherzugriffen auf den lokalen Speicher und weniger Speicherzugriffen auf den gemeinsamen Speicher. Die Vorrichtungen, Systeme, Techniken und Artikel zum Reduzieren der Anzahl der Zugriffe auf den gemeinsamen Speicher können ein oder mehrere Speicherpartitionsschemata, einen Zugriffsmonitor zum Überwachen lokaler Speicherzugriffe und einen Partitions-Manager zum Durchführen von Daten-Swaps und zum dynamischen Anpassen des Speicherpartitionsschemas basierend auf überwachten lokalen Speicherzugriffsinformationen einbeziehen.
  • In einer Ausführungsform ist ein Speicherzugriffsverfahren in einer integrierten Mehrkernprozessorschaltung (IC) vorgesehen. Das Verfahren umfasst die Aufteilung lokaler Speicher auf der integrierten Schaltung in eine Vielzahl von Speicherbereichen, worin jeder Speicherbereich ein oder mehrere Speichersegmente umfasst und die Zuordnung jedes Speicherbereichs zu einer oder mehreren Verarbeitungseinheiten oder Anwendungen, worin jede Verarbeitungseinheit einen Prozessorkern oder eine Verarbeitungsvorrichtung umfasst, die durch einen Prozessorkern gesteuert wird und worin die Anwendung von einer der Verarbeitungseinheiten ausgeführt werden kann. Das Verfahren umfasst ferner das Überwachen der Verwendung jedes Speichersegments in jeder Region durch die Verarbeitungseinheit und die von der Verarbeitungseinheit ausgeführten Anwendungen und das Austauschen der Daten in einem Speichersegment aus einem fehlerhaften Speicherbereich, wenn der Fehler einen Datenzugriff mit externem Speicher unter Verwendung eines externen Speicherbusses verursacht.
  • Diese Aspekte und andere Ausführungsformen können eines oder mehrere der folgenden Merkmale beinhalten. Die Partitionierung des lokalen Speichers kann auch die Partitionierung des lokalen Speichers in eine Vielzahl von privaten und gemeinsamen Speicherbereichen umfassen. Das Zuordnen jedes Speicherbereichs kann das Zuordnen jedes privaten Bereichs zu einer einzelnen Verarbeitungseinheit oder Anwendung und das Zuordnen jedes gemeinsamen Bereichs zu einer Vielzahl von Verarbeitungseinheiten oder Anwendungen umfassen. Die Nutzungsüberwachung kann eine Erhöhung des Zugriffszählers für das Speichersegment bei jedem Zugriff auf die im Speichersegment gespeicherten Daten und eine Erhöhung des Austauschzählers für das Speichersegment bei jedem Datenaustausch, der mit dem Segment stattfindet, umfassen. Das Verfahren kann ferner das Zurücksetzen des Zugriffszählers nach jedem Datenaustausch umfassen. Das Verfahren kann ferner das Bestimmen des Zugriffszählers und des Austauschzählers in jedem Bereich umfassen, indem die Zugriffszähler und Austauschzähler für jedes Segment in dem Bereich summiert werden und ein Speichersegment von einem ersten Bereich zu einem zweiten Bereich neu zugeordnet wird, wenn der Zugriffszähler und der Austauschzähler im zweiten Bereich über einem ersten Schwellenwert liegen, der Zugriffszähler im ersten Bereich unter einem zweiten Schwellenwert liegt und der Zugriffszähler für das neu zuzuordnende Speichersegment auf oder unter einem dritten Schwellenwert liegt. Die Nutzungsüberwachung kann ferner das Aufzeichnen in einer Datenstruktur für jedes überwachte Segment umfassen, worin jeder Datensatz einen Identifikator für das überwachte Segment, einen Identifikator für den Bereich, in dem das überwachte Segment ein Teil ist, eine Anwendungsliste, welche die Identität jeder Anwendung beinhaltet, die auf die im überwachten Segment gespeicherten Daten zugegriffen hat, den Zugriffszähler für das Segment und den Austauschzähler für das Segment.
  • In einer weiteren Ausführungsform ist ein Speicherzugriffssystem in einer integrierten Mehrkernprozessorschaltung (IC) vorgesehen. Das System umfasst lokalen Speicher auf der IC, der in eine Vielzahl von Speicherbereichen unterteilt ist, wobei jeder Speicherbereich ein oder mehrere Speichersegmente umfasst und jeder Speicherbereich einer oder mehreren Verarbeitungseinheiten oder Anwendungen zugeordnet ist, jede Verarbeitungseinheit einen Prozessorkern oder eine Verarbeitungsvorrichtung umfasst, die durch einen Prozessorkern gesteuert wird, und die Anwendung von einer der Verarbeitungseinheiten ausgeführt werden kann. Das System umfasst ferner einen Monitor, der konfiguriert ist, um die Verwendung jedes Speichersegments zu überwachen, und einen Manager, der konfiguriert ist, um Daten-Swaps in den Speichersegmenten zu verwalten, worin ein Daten-Swap die Daten in einem Speichersegment aus einem Speicherbereich beinhaltet, in dem ein Fehlversuch gegen gewünschte Daten ausgetauscht wird.
  • Diese Aspekte und andere Ausführungsformen können eines oder mehrere der folgenden Merkmale beinhalten. Die Speicherbereiche können einen oder mehrere private Speicherbereiche und einen oder mehrere gemeinsame Speicherbereiche umfassen, worin jeder private Bereich einer einzelnen Verarbeitungseinheit oder Anwendung zugeordnet werden kann und jeder gemeinsame Bereich einer Vielzahl von Verarbeitungseinheiten oder Anwendungen zugeordnet werden kann. Der Monitor kann eine Vielzahl von Monitoreinheiten umfassen, worin jede Monitoreinheit durch eine der Verarbeitungseinheiten implementiert ist und jede Monitoreinheit konfiguriert ist, um Speicherzugriffe in jedem der Verarbeitungseinheit zugeordneten Speicherbereich zu überwachen, welche die Monitoreinheit implementiert und den von der Verarbeitungseinheit ausgeführten Anwendungen zugeordnet ist. Jede Monitoreinheit kann konfiguriert sein, um bei jedem Zugriff auf die im Speichersegment gespeicherten Daten einen Zugriffszähler für ein Speichersegment zu erhöhen und bei jedem Datenaustausch mit dem Segment einen Auslagerungszähler für das Speichersegment zu erhöhen. Der Monitor kann konfiguriert sein, um den Zugriffszähler und den Swap-Zähler in jeder Region durch Summieren der Zugriffszähler und Austauschzähler für jedes Segment in diesem Bereich zu bestimmen, und der Manager kann konfiguriert sein, um ein Speichersegment von einem ersten Bereich zu einem zweiten Bereich neu zuzuordnen, wenn der Zugriffszähler und der Austauschzähler in dem zweiten Bereich über einem ersten Schwellenwert liegen, der Zugriffszähler im ersten Bereich unter einem zweiten Schwellenwert liegt und der Zugriffszähler für das neu zuzuordnende Speichersegment auf oder unter einem dritten Schwellenwert liegt. Der erste Bereich kann ein privater Bereich und der zweite Bereich ein gemeinsamer Bereich sein. Der Manager kann so konfiguriert werden, dass er das neu zugeordnete Speichersegment aus dem zweiten Bereich in den ersten Bereich zurückführt, wenn der Zugriffszähler im zweiten Bereich für einen bestimmten Zeitraum unter einen vierten Schwellenwert fällt. Der Monitor kann ferner konfiguriert werden, um in einer Datenstruktur einen Datensatz für jedes überwachte Segment aufzuzeichnen, worin jeder Datensatz einen Identifikator für das überwachte Segment, einen Identifikator für den Bereich, in dem das überwachte Segment ein Teil ist, eine Anwendungsliste, welche die Identität jeder Anwendung, die auf die im überwachten Segment gespeicherten Daten zugegriffen hat, den Zugriffszähler für das Segment und den Austauschzähler für das Segment beinhaltet. Der Monitor kann von einer oder mehreren der Verarbeitungseinheiten implementiert und durch erste Programmieranweisungen konfiguriert werden und der Manager kann von einer oder mehreren der Verarbeitungseinheiten implementiert und durch zweite Programmieranweisungen konfiguriert werden.
  • In einer anderen Ausführungsform wird eine Multicore-Fahrzeugsteuerung bereitgestellt. Die Multicore-Fahrzeugsteuerung umfasst eine Vielzahl von Prozessorkernen auf einer integrierten Schaltung. Die Prozessorkerne sind so konfiguriert, dass sie jeden Speicherbereich im aufgeteilten lokalen Speicher, der sich auf der IC befindet, einem oder mehreren Prozessorkernen oder ausführbaren Anwendungen zuordnen, worin jeder Speicherbereich ein oder mehrere Speichersegmente umfasst. Die Prozessorkerne sind ferner so konfiguriert, dass sie für jedes Speichersegment einen Zugriffszähler für das Speichersegment bei jedem Zugriff auf die im Speichersegment gespeicherten Daten erhöhen und einen Austauschzähler für das Speichersegment bei jedem Datenaustausch mit dem Segment erhöhen, ein Speichersegment aus einem Speicherbereich auswählen, in dem ein Datenaustausch fehlschlägt, wobei das ausgewählte Speichersegment den niedrigsten Zugriffszähler aller Speichersegmente in dem Speicherbereich aufweist, und die Daten in dem ausgewählten Speichersegment gegen gewünschte Daten austauschen, wenn das Fehlschlagen einen Datenzugriff mit einem externen Speicher unter Verwendung eines externen Speicherbusses verursacht.
  • Diese Aspekte und andere Ausführungsformen können eines oder mehrere der folgenden Merkmale beinhalten. Der partitionierte lokale Speicher kann eine Vielzahl von privaten und gemeinsamen Speicherbereichen umfassen, wobei jeder der privaten Bereiche einer einzelnen Verarbeitungseinheit oder Anwendung zugeordnet ist, jeder der privaten Bereiche eine minimale Segmentanzahl zugeordnet ist, welche die minimale Anzahl an Segmenten für den Bereich darstellt, und jeder gemeinsame Bereich einer Vielzahl von Verarbeitungseinheiten oder Anwendungen zugeordnet ist. Die Prozessorkerne können ferner konfiguriert werden, um den Zugriffszähler und den Austauschzähler in jedem Bereich zu bestimmen, indem die Zugriffszähler und Austauschzähler für jedes Segment in dem Bereich summiert werden, ferner konfiguriert werden, um ein Speichersegment für die Neuzuordnung von einem ersten Bereich zu einem zweiten Bereich auszuwählen, und ferner konfiguriert werden, um das zur Neuzuordnung ausgewählte Speichersegment dem zweiten Bereich zuzuordnen, wenn der Zugriffszähler und der Austauschzähler im zweiten Bereich über einem ersten Schwellenwert liegen, der Zugriffszähler im ersten Bereich unter einem zweiten Schwellenwert liegt und der Zugriffszähler für das zur Neuzuordnung ausgewählte Speichersegment auf oder unter einem dritten Schwellenwert liegt. Der erste Bereich kann ein privater Bereich sein, der zweite Bereich kann ein gemeinsamer Bereich sein, und der erste Bereich kann eine Anzahl an Segmenten umfassen, die größer ist als die minimale Segmentanzahl für den Bereich.
  • In einer weiteren Ausführungsform ist ein Datenzugriffsverfahren in einer integrierten Schaltung mit mehreren Verarbeitungseinheiten, lokalem Speicher und einem externen Speicherbus vorgesehen, wobei jede Verarbeitungseinheit eine Anwendung ausführen kann und einen Prozessorkern oder eine Verarbeitungsvorrichtung unter der Steuerung eines Prozessorkerns umfasst und wobei die Anwendung eine Aufgabe oder eine Softwarekomponente umfasst und jeder Prozessorkern in der Lage ist, eine Aufgabe auszuführen und jede Verarbeitungsvorrichtung in der Lage ist, eine Softwarekomponente auszuführen. Das Verfahren umfasst das Aufteilen des lokalen Speichers in eine Vielzahl von privaten und gemeinsamen Speicherbereichen, wobei jeder Speicherbereich ein oder mehrere Speichersegmente umfasst, das Zuordnen jedes privaten Bereichs zu einer einzelnen Verarbeitungseinheit oder Anwendung und das Zuordnen jedes gemeinsamen Bereichs zu einer Vielzahl von Verarbeitungseinheiten oder Anwendungen und das Überwachen, mit jeder Verarbeitungseinheit, der Verwendung jedes Speichersegments in jedem Bereich, welcher der Verarbeitungseinheit zugeordnet und den von der Verarbeitungseinheit durchgeführten Anwendungen zugeordnet ist. Das Verfahren umfasst ferner das Erhöhen eines Zugriffszählers für das Speichersegment bei jedem Zugriff auf im Speichersegment gespeicherten Daten, das Erhöhen eines Austauschzählers für das Speichersegment bei jedem Datenaustausch, der mit dem Segment stattfindet, und das Zurücksetzen des Zugriffszählers nach jedem Datenaustausch. Das Verfahren umfasst ferner das Aufzeichnen eines Datensatzes in einer Datenstruktur für jedes überwachte Segment, wobei jeder Datensatz eine Kennung für das überwachte Segment, eine Kennung für den Bereich, in dem das überwachte Segment ein Teil ist, eine Anwendungsliste, welche die Identität jeder Anwendung, die auf im überwachten Segment gespeicherte Daten zugegriffen hat, den Zugriffszähler für das Segment und den Austauschzähler für das Segment umfasst. Das Verfahren umfasst ferner das Austauschen der Daten in einem Speichersegment aus einem Speicherbereich, in dem ein Fehlen von gewünschten Daten auftritt, wenn das Fehlen einen Datenzugriff mit externem Speicher unter Verwendung eines externen Speicherbusses verursacht, das Bestimmen des Zugriffszählers und des Austauschzählers in jedem Bereich umfassen, indem die Zugriffszähler und Austauschzähler für jedes Segment in dem Bereich summiert werden und ein Speichersegment von einem ersten Bereich zu einem zweiten Bereich neu zugeordnet wird, wenn der Zugriffszähler und der Austauschzähler im zweiten Bereich über einem ersten Schwellenwert liegen, der Zugriffszähler im ersten Bereich unter einem zweiten Schwellenwert liegt und der Zugriffszähler für das neu zuzuordnende Speichersegment auf oder unter einem dritten Schwellenwert liegt.
  • In einer weiteren Ausführungsform ist ein Verfahren in einer integrierten Mehrkernschaltung mit mehreren Prozessorkernen, einem lokalen Speicher und einem externen Speicherbus vorgesehen. Das Verfahren umfasst das Bereitstellen einer Vielzahl von Verarbeitungseinheiten auf einer integrierten Schaltung (IC), eines lokalen Speichers, der durch die Vielzahl von Verarbeitungseinheiten zugänglich ist, und eines externen Speicherbusses, der durch die Vielzahl von Verarbeitungseinheiten zugänglich ist, worin jede Verarbeitungseinheit einen Prozessorkern oder eine Verarbeitungsvorrichtung umfasst. Das Verfahren umfasst ferner das Bereitstellen von Infrastrukturdiensten für jede Verarbeitungseinheit zum Überwachen und Verwalten von Zugriffen, worin die Infrastrukturdienste ein Speicherpartitionsschema zum Differenzieren von gemeinsamem Zugriff und privatem Zugriff, einen Zugriffsmonitor zum Sammeln dynamischer Zugriffsmuster verschiedener Aufgaben und Speicherbereiche und einen Partitions-Manager zum Anpassen des verfügbaren Speichers entsprechend den Zugriffsmustern umfassen. Das Verfahren umfasst ferner das Partitionieren des lokalen Speichers in verschiedene Bereiche gemäß dem Speicherpartitionsschema, worin die verschiedenen Bereiche eine oder mehrere private Bereiche und eine oder mehrere gemeinsame Bereiche umfassen. Die privaten Bereiche sind für die Verwendung durch eine bestimmte Komponente reserviert, worin eine bestimmte Komponente ein bestimmter Kern, eine bestimmte Aufgabe, die durch einen bestimmten Kern ausführbar ist, eine bestimmte Vorrichtung oder eine bestimmte Softwarekomponente, die durch eine bestimmte Vorrichtung ausführbar ist. Die gemeinsamen Bereiche sind für eine oder mehrere Komponenten, Kerne, Aufgaben oder Softwarekomponenten reserviert. Das Verfahren umfasst ferner eine Nutzungsüberwachung der einzelnen Segmente in den Bereichen mithilfe des Zugriffsmonitors und das Anpassen der Segmente mithilfe des Partitions-Managers.
  • Das Vorangehende umreißt Merkmale verschiedener Ausführungsformen, sodass der Fachmann auf dem Gebiet die Aspekte der vorliegenden Offenbarung besser verstehen kann. Der Fachmann auf dem Gebiet sollte erkennen, dass er die vorliegende Offenbarung ohne weiteres als Grundlage für das Entwerfen oder Modifizieren anderer Verfahren und Strukturen für das Ausführen der gleichen Zwecke und/oder für das Erreichen der gleichen Vorteile der hierin vorgestellten Ausführungsformen verwenden kann. Der Fachmann auf dem Gebiet sollte auch erkennen, dass solche äquivalenten Konstruktionen nicht von dem Geist und Umfang der vorliegenden Offenbarung abweichen, und dass sie hierin verschiedene Änderungen, Ersetzungen und Abänderungen vornehmen können, ohne von dem Geist und Umfang der vorliegenden Offenbarung abzuweichen.

Claims (10)

  1. Speicherzugriffsverfahren in einer integrierten Mehrkernprozessorschaltung (IC), umfassend: das Partitionieren des lokalen Speichers auf der integrierten Schaltung in mehrere Speicherbereiche, wobei jeder Speicherbereich ein oder mehrere Speichersegmente umfasst; das Zuordnen jedes Speicherbereichs zu einer oder mehreren Verarbeitungseinheiten oder Anwendungen, wobei jede Verarbeitungseinheit einen Prozessorkern oder eine Verarbeitungsvorrichtung umfasst, die unter der Steuerung eines Prozessorkerns steht, wobei die Anwendung von einer der Verarbeitungseinheiten ausgeführt werden kann; mit jeder Verarbeitungseinheit, das Überwachen der Verwendung eines jeden Speichersegments in jedem Bereich, welcher der Verarbeitungseinheit zugeordnet ist, sowie der von der Verarbeitungseinheit ausgeführten Anwendungen; und das Austauschen der Daten in einem Speichersegment aus einem Speicherbereich, in dem ein Fehlen der gewünschten Daten vorliegt, wenn das Fehlen einen Datenzugriff mit externem Speicher über einen externen Speicherbus verursacht.
  2. Verfahren nach Anspruch 1, worin das Partitionieren des lokalen Speichers das Partitionieren des lokalen Speichers in eine Vielzahl von privaten und gemeinsamen Speicherbereichen umfasst.
  3. Verfahren nach Anspruch 2, worin das Zuordnen jedes Speicherbereichs das Zuordnen jedes privaten Bereichs zu einer einzelnen Verarbeitungseinheit oder Anwendung und das Zuordnen jedes gemeinsamen Bereichs zu einer Vielzahl von Verarbeitungseinheiten oder Anwendungen umfasst.
  4. Verfahren nach Anspruch 1, worin die Nutzungsüberwachung ein Erhöhen des Zugriffszählers für das Speichersegment bei jedem Zugriff auf die im Speichersegment gespeicherten Daten und ein Erhöhen des Austauschzählers für das Speichersegment bei jedem Datenaustausch, der mit dem Segment stattfindet, umfasst.
  5. Verfahren nach Anspruch 4, des Weiteren umfassend das Zurücksetzen des Zugriffszählers nach jedem Datenaustausch.
  6. Verfahren nach Anspruch 4, des Weiteren umfassend: das Ermitteln des Zugriffszählers und des Austauschzählers in jedem Bereich durch Summieren der Zugriffs- und Austauschzähler für jedes Segment in dem Bereich; und das Neuzuordnen eines Speichersegments von einem ersten Bereich zu einem zweiten Bereich, wenn der Zugriffszähler und der Austauschzähler im zweiten Bereich über einem ersten Schwellenwert liegen, der Zugriffszähler im ersten Bereich unter einem zweiten Schwellenwert liegt und der Zugriffszähler für das neu zuzuordnende Speichersegment auf oder unter einem dritten Schwellenwert liegt.
  7. Speicherzugriffssystem in einer integrierten Mehrkernprozessorschaltung (IC), das System umfassend: einen lokalen Speicher auf der IC, der in eine Vielzahl von Speicherbereichen unterteilt ist, wobei jeder Speicherbereich ein oder mehrere Speichersegmente umfasst, jeder Speicherbereich einer oder mehreren Verarbeitungseinheiten oder Anwendungen zugeordnet ist, jede Verarbeitungseinheit einen Prozessorkern oder eine Verarbeitungsvorrichtung umfasst, die unter der Steuerung eines Prozessorkerns steht, wobei die Anwendung von einer der Verarbeitungseinheiten ausgeführt werden kann; einen Monitor, der dazu konfiguriert ist, um die Nutzung jedes Speichersegments zu überwachen; und einen Manager, der konfiguriert ist, um Datenaustausche in den Speichersegmenten zu verwalten, wobei ein Daten-Swap die Daten in einem Speichersegment aus einem Speicherbereich beinhaltet, in dem ein Fehler gegen gewünschte Daten ausgetauscht wird.
  8. System nach Anspruch 7, worin die Speicherbereiche einen oder mehrere private Speicherbereiche und einen oder mehrere gemeinsame Speicherbereiche umfassen und worin jeder private Bereich einer einzelnen Verarbeitungseinheit oder Anwendung zugeordnet ist und jeder gemeinsame Bereich einer Vielzahl von Verarbeitungseinheiten oder Anwendungen zugeordnet ist.
  9. System nach Anspruch 8, worin: der Monitor eine Vielzahl von Monitoreinheiten umfasst, wobei jede Monitoreinheit durch eine der Verarbeitungseinheiten implementiert ist und jede Monitoreinheit konfiguriert ist, um Speicherzugriffe in jedem der Verarbeitungseinheit zugeordneten Speicherbereich zu überwachen, welche die Monitoreinheit implementiert und den von der Verarbeitungseinheit ausgeführten Anwendungen zugeordnet ist; jede Monitoreinheit dazu konfiguriert ist, bei jedem Zugriff auf die im Speichersegment gespeicherten Daten einen Zugriffszähler für ein Speichersegment zu erhöhen und bei jedem Datenaustausch mit dem Segment einen Austauschzähler für das Speichersegment zu erhöhen; der Monitor dazu konfiguriert ist, den Zugriffszähler und den Austauschzähler in jedem Bereich zu ermitteln, indem er die Zugriffszähler und Austauschzähler für jedes Segment in dem Bereich summiert; und der Manager dazu konfiguriert ist, ein Speichersegment von einem ersten Bereich zu einem zweiten Bereich neu zuzuordnen, wenn der Zugriffszähler und der Austauschzähler in dem zweiten Bereich über einem ersten Schwellenwert liegen, der Zugriffszähler in dem ersten Bereich unter einem zweiten Schwellenwert liegt und der Zugriffszähler für das neu zuzuordnende Speichersegment auf oder unter einem dritten Schwellenwert liegt.
  10. System nach Anspruch 9, worin: der erste Bereich ein privater Bereich ist und der zweite Bereich ein gemeinsamer Bereich ist; und der Manager so konfiguriert ist, dass er das neu zugeordnete Speichersegment aus dem zweiten Bereich in den ersten Bereich zurückführt, wenn der Zugriffszähler im zweiten Bereich für einen bestimmten Zeitraum unter einen vierten Schwellenwert fällt.
DE102018107860.9A 2017-04-07 2018-04-03 System und Verfahren zum Zugriff auf Daten in einem Mehrkern-Verarbeitungssystem, um Zugriffe auf externe Speicher zu verringern Withdrawn DE102018107860A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/482,195 2017-04-07
US15/482,195 US20180292988A1 (en) 2017-04-07 2017-04-07 System and method for data access in a multicore processing system to reduce accesses to external memory

Publications (1)

Publication Number Publication Date
DE102018107860A1 true DE102018107860A1 (de) 2018-10-11

Family

ID=63587678

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018107860.9A Withdrawn DE102018107860A1 (de) 2017-04-07 2018-04-03 System und Verfahren zum Zugriff auf Daten in einem Mehrkern-Verarbeitungssystem, um Zugriffe auf externe Speicher zu verringern

Country Status (3)

Country Link
US (1) US20180292988A1 (de)
CN (1) CN108694141A (de)
DE (1) DE102018107860A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064550A (zh) * 2021-03-19 2021-07-02 珠海市一微半导体有限公司 一种缩短外部存储器访问时间的控制装置及控制方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210126925A (ko) * 2020-04-13 2021-10-21 에스케이하이닉스 주식회사 데이터 처리 시스템
US11741043B2 (en) * 2021-01-29 2023-08-29 The Trustees Of Dartmouth College Multi-core processing and memory arrangement
US20220244870A1 (en) * 2021-02-03 2022-08-04 Alibaba Group Holding Limited Dynamic memory coherency biasing techniques

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620630B2 (en) * 2003-11-12 2009-11-17 Oliver Lloyd Pty Ltd Directory system
KR100690804B1 (ko) * 2005-06-13 2007-03-09 엘지전자 주식회사 휴대단말기의 메모리 정리 방법
US8001331B2 (en) * 2008-04-17 2011-08-16 Arm Limited Efficiency of cache memory operations
US9235500B2 (en) * 2010-12-07 2016-01-12 Microsoft Technology Licensing, Llc Dynamic memory allocation and relocation to create low power regions
CN103038755B (zh) * 2011-08-04 2015-11-25 华为技术有限公司 多节点系统中数据缓存的方法、装置及系统
WO2015045046A1 (ja) * 2013-09-26 2015-04-02 株式会社日立製作所 計算機システムおよび計算機システムのメモリ割当調整方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064550A (zh) * 2021-03-19 2021-07-02 珠海市一微半导体有限公司 一种缩短外部存储器访问时间的控制装置及控制方法

Also Published As

Publication number Publication date
CN108694141A (zh) 2018-10-23
US20180292988A1 (en) 2018-10-11

Similar Documents

Publication Publication Date Title
DE102018107860A1 (de) System und Verfahren zum Zugriff auf Daten in einem Mehrkern-Verarbeitungssystem, um Zugriffe auf externe Speicher zu verringern
DE102005029852B4 (de) Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem
DE69737709T2 (de) Verfahren und Vorrichtung für Informationsverarbeitung und Speicherzuordnungsanordnung
DE102004012056B4 (de) System und Verfahren zum Überwachen von Ressourcenausnutzung und Anwendungsleistungsfähigkeit
DE102016221811A1 (de) Zuordnung von Ressourcen mit mehrschichtigem Speicher
DE69722979T2 (de) Betriebsmittelverwaltungsverfahren und -einrichtung eines Multitasking-Datenverarbeitungssystems
DE102005022893B3 (de) Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte
DE102016013577B4 (de) Systeme und Verfahren zum adaptiven Partitionieren in verteilten Cache-Speichern
EP1228432B1 (de) Verfahren zur dynamischen speicherverwaltung
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102021121062A1 (de) System, vorrichtung und verfahren zur dynamischen bereitstellung kohärenter speicherdomänen
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE102009056282A1 (de) Technik zum Steuern von Verarbeitungsressourcen
DE112014003699T5 (de) Indexbaumsuchverfahren und Indexbaumsuchcomputer
DE112016003466T5 (de) Vorinstallieren von Seitentabellen-Cachezeilen einer virtuellen Maschine
DE10234138A1 (de) Verwalten einer Speicherkonkurrenz bei automatisierten Speichersystemen
DE102020132767A1 (de) Verwaltung der Dienstgüte (QoS) eines Speichersystems
DE102018114322A1 (de) Architektur und Dienste zur Unterstützung der rekonfigurierbaren Synchronisation in einem Multiprozessorsystem
DE112013000770B4 (de) Höhere Auslagerungseffizienz
DE102006046717A1 (de) Dynamisch migrierende Kanäle
DE10059145B4 (de) Fahrzeuginformationsprozessor zum Bereitstellen von Karteninformation auf Grundlage von Kartendaten

Legal Events

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

Representative=s name: SCHWEIGER PARTNERSCHAFT PATENTANWALT UND RECHT, DE

Representative=s name: SCHWEIGER & PARTNERS, DE

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