DE102019118757A1 - Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren - Google Patents

Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren Download PDF

Info

Publication number
DE102019118757A1
DE102019118757A1 DE102019118757.5A DE102019118757A DE102019118757A1 DE 102019118757 A1 DE102019118757 A1 DE 102019118757A1 DE 102019118757 A DE102019118757 A DE 102019118757A DE 102019118757 A1 DE102019118757 A1 DE 102019118757A1
Authority
DE
Germany
Prior art keywords
date
data
task
cache
processor
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.)
Granted
Application number
DE102019118757.5A
Other languages
English (en)
Other versions
DE102019118757B4 (de
Inventor
Philipp Jungklaß
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.)
IAV GmbH Ingenieurgesellschaft Auto und Verkehr
Original Assignee
IAV GmbH Ingenieurgesellschaft Auto und Verkehr
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 IAV GmbH Ingenieurgesellschaft Auto und Verkehr filed Critical IAV GmbH Ingenieurgesellschaft Auto und Verkehr
Priority to DE102019118757.5A priority Critical patent/DE102019118757B4/de
Publication of DE102019118757A1 publication Critical patent/DE102019118757A1/de
Application granted granted Critical
Publication of DE102019118757B4 publication Critical patent/DE102019118757B4/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • 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

Landscapes

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

Abstract

Die Intention des erfindungsgemäßen Verfahrens besteht in der Realisierung eines Cachekohärenzprotokolls für Mehrkernprozessoren (1), welches den prozessorübergreifenden Datenaustausch sowie konkurrierende Zugriffe auf globale Speicher (8, 9) durch die einzelnen Prozessorkerne (2A, 2B, 2C) reduziert und auf diese Art und Weise die Prozessorleistung erhöht sowie die Rechendauer senkt. Hierfür werden Daten, die durch die Prozessorkerne (2A, 2B, 2C) verarbeitet werden, in Abhängigkeit der Sicherheitsrelevanz der Funktionen in unterschiedliche Kategorien (K1, K2, K3) eingestuft. In Abhängigkeit der Einstufung werden den Kategorien (K1, K2, K3) zugeordnete Cachekohärenzprotokolle aktiv, welche unterschiedliche Speicherverwaltungsoperationen ausführen.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft das Gebiet des Speichermanagements von Mehrkernprozessoren mit harter Echtzeitanforderung, sowie insbesondere die Kommunikation zwischen und Speicherverwaltung von einzelnen Prozessorkernen.
  • Stand der Technik
  • Prozessoren können mehrere Prozessorkerne aufweisen, um deren Leistung zu steigern. Prozessoren, die mehr als einen Prozessorkern umfassen, werden im Folgenden als Mehrkernprozessoren bezeichnet. Durch Hinzunahme von weiteren Prozessorkernen in einem Mehrkernprozessor kann dessen Leistung theoretisch linear gesteigert werden. Praktisch wird dieser Zustand nicht erreicht, da abhängig von der Menge der durch die Prozessorkerne zu verarbeitenden Daten, der Größe, Anzahl und des Aufbaus der Speicher, in denen die Daten gespeichert sind, sowie der Bandbreite der Kommunikationseinheiten, über welche Daten ausgetauscht werden, erhöhter Datenverkehr sowie konkurrierender Zugriff auf Speicher erfolgen kann. Besonders, wenn verschiedene Prozessorkerne unterschiedliche Funktionen ausführen, die jedoch gleiche Daten verarbeiten, können konkurrierende Anfragen durch die Prozessorkerne bezüglich der gleichen Daten entstehen. Um diesem Problem vorzubeugen, existieren im Stand der Technik Prozessoren mit hierarchischen Speicherstrukturen. So können Prozessorkerne lokale Datenspeicher, oder mit anderen Worten Caches, umfassen. Caches dienen u.a. dazu, Daten vorzuhalten, sodass ein Prozessorkern einen exklusiven Zugriff auf die Kopie eines Datums aus einem anderen Speicher besitzt. Benötigen verschiedene Prozessorkerne jedoch die gleichen Daten, kann ein Zustand entstehen, in welchem unterschiedliche Versionen eines Datums in den unterschiedlichen Speichern vorhanden sind. Um dieser Inkonsistenz der Daten entgegenzuwirken, existieren im Stand der Technik Kohärenzprotokolle, welche die Aktualität der Daten, die durch die jeweiligen Prozessorkerne verarbeitet werden, überwachen, ordnen und steuern. Das Ziel ist hierbei, die jeweils aktuellste Version eines Datums für jeden Prozessorkern verfügbar zu machen, oder mit anderen Worten eine Kohärenz herzustellen. Um die Kohärenz von Daten herzustellen, die sich in den Caches der Prozessorkerne befinden und mit welchen die Prozessorkerne bevorzugt arbeiten, existieren Cachekohärenzprotokolle.
  • Ein Cachekohärenzprotokoll ist dem Fachmann als „MESI“ bekannt. Hierbei wird einer Cacheline eines Cache durch das Setzen von zwei Statusbits ein eindeutiger Zustand bezüglich der Konsistenz ihrer Daten zugeordnet. Cachlines sind Unterteilungen von Caches und können mehrere Daten enthalten. Durch das Cachekohärenzprotokoll MESI werden die Zustände verändert (modified), exklusiv (exclusive), geteilt (shared) und ungültig (invalid) definiert. Eine veränderte Cacheline enthält durch den Prozessorkern aktualisierte Kopien von Daten, welche im eigentlichen Speicher nunmehr als ältere Versionen vorhanden sind. Eine exklusive Cacheline ist nur im Cache eines einzigen Prozessorkerns vorhanden. Steht dieser im Austausch mit dem eigentlichen Speicher der betreffenden Daten, sind diese stets aktuell und gültig. Geteilte Cachelines sind gleichzeitig in den Caches von mehreren Prozessorkernen vorhanden. Ungültige Cachelines sind durch den Prozessor wissentlich ungültig oder veraltet und entsprechend gekennzeichnet. In diesem Cachekohärenzprotokoll werden permanent Statusinformationen ausgetauscht und verändert, sodass die Aktualität der zu verarbeitenden Daten gewährleistet wird.
  • Cachekohärenzprotokolle können hardware- oder softwareseitig auf unterschiedlichste Art und Weise implementiert werden. In CN102929832A wird ein Mehrkernprozessor mit einem Cachekohärenzprotokoll offenbart, welches ebenfalls Statusinformationen vergibt und austauscht, ähnlich wie bei dem bekannten MESI-Kohärenzprotokoll. Hierbei belauschen die Prozessorkerne eine Datenkommunikationsverbindung über einen Snoopbus bezüglich Veränderungen von Statusinformationen, welche Daten betreffen, die diese verarbeiten.
  • In WO2014187259A1 finden hardwareseitig ein zusätzlicher Konsistenzbus sowie eine Cacheverarbeitungseinheit Anwendung. Hierbei erstellt ein Prozessorkern, der eine Aufgabe, oder mit anderen Worten einen Task, ausführen will, zunächst eine Konsistenzanfrage an die Cacheverarbeitungseinheit. Ist der Status der betreffenden Daten nicht bekannt oder muss von anderen Prozessorkernen bereitgestellt werden, sendet die Cacheverarbeitungseinheit eine Konsistenzanforderung über den Konsistenzbus an den betreffenden Prozessorkern und löst bei diesem die Beantwortung der Konsistenzanfrage aus.
  • In US2004039880A1 wird ein zusätzlicher Sammelcache angewendet, welcher ein zweites MESI-Protokoll verwendet, um ältere oder aktuelle Kopien von Daten der Caches der Prozessorkerne bezüglich ihrer Konsistenz zu verwalten.
  • Die aus dem Stand der Technik bekannten Vorrichtungen und Verfahren zur Realisierung von Cachekohärenzprotokollen bestehen entweder aus aufwendigen Speicherstrukturen, wie zum Beispiel aus mehrstufigen oder geteilten Sammelcaches, oder werden hardwareseitig über eine zusätzliche Verarbeitungslogik abgebildet. Weiterhin werden sämtliche Daten gleichbehandelt, wodurch diese Daten bei erkannter Inkonsistenz für ungültig erklärt und aus globalen Speichern erneut geladen werden müssen. Globale Speicher haben jedoch für die Prozessorkerne die niedrigste Zugriffsgeschwindigkeit, sodass es bei konkurrierendem Zugriff auf Daten durch die Prozessorkerne und durch die Cachekohärenzprotokolle gesteuerte Reihenfolge der Zugriffe zu erheblichen Verzögerungen und Wartezeiten kommen kann.
  • Insbesondere bei Mehrkernprozessoren, die in Steuergeräten Anwendung finden, welche eine harte Echtzeitanforderung aufweisen, sind zusätzliche Wartezeiten, besonders für sicherheitskritische Funktionen, zu reduzieren oder zu verhindern. Um diese Probleme zu beseitigen, muss entweder mehr Speicherplatz in den Caches und eine größere Bandbreite in der Kommunikation zwischen den Prozessorkernen zur Verfügung gestellt oder ein effizientes Speichermanagement implementiert werden. Die Erhöhung von Speicherplatz und Kommunikationsleistung ist direkt mit erweiterter Peripherie, größerem Bauraum sowie erheblichen Kosten verbunden. Insbesondere bei Mehrkernprozessoren, die eine einfache Speicherstruktur aufweisen sowie günstig und platzsparend ausgeführt sein sollen, wie beispielsweise bei Fahrzeugsteuergeräten, ist eine Lösung mit effizientem Speichermanagement daher eher zielführend.
  • Aufgabe der Erfindung
  • Der vorliegenden Erfindung ist es daher Aufgabe, ein computerimplementiertes Verfahren zum Herstellen der Cachekohärenz bei Mehrkernprozessoren bereitzustellen.
  • Lösung der Aufgabe
  • Die Aufgabe wird durch ein Verfahren zur Herstellung der Kohärenz von Datencaches eines Mehrkernprozessors nach den Merkmalen der Patentansprüche 1 bis 8 erfüllt.
  • Figurenliste
  • Die Intention des erfindungsgemäßen Verfahrens besteht in der Realisierung eines Cachekohärenzprotokolls für Mehrkernprozessoren, welches den prozessorübergreifenden Datenaustausch sowie konkurrierende Zugriffe durch die einzelnen Prozessorkerne reduziert und auf diese Art und Weise die Prozessorleistung erhöht sowie die Rechendauer senkt. Da es sich hierbei um ein softwarebasiertes Cachekohärenzprotokoll handelt, wird keine zusätzliche Hardware oder sonstige Peripherie benötigt. Das erfindungsgemäße Verfahren kann somit auf bestehende Mehrkernprozessoren angewendet werden. Zum besseren Verständnis und als Unterstützung der Beschreibung wird sich auf folgende Abbildungen bezogen. Hierbei zeigen:
    • 1 einen Mehrkernprozessor zur Ausführung des erfindungsgemäßen Verfahrens,
    • 2 den Prozessablauf einer Ausführungsform des erfindungsgemäßen Verfahrens für Daten erster Kategorie,
    • 3 den Prozessablauf einer Ausführungsform des erfindungsgemäßen Verfahrens für Daten zweiter und dritter Kategorie,
    • 4 die Speicherallokation eines Datencaches bezüglich dessen Cachelines.
  • Das erfindungsgemäße Verfahren ist auf alle Prozessoren anwendbar, die wenigstens zwei Prozessorkerne, welche jeweils mindestens einen Datencache, wenigstens einen globalen Speicher, wenigstens eine Kommunikationseinrichtung sowie wenigstens eine Signalisierungslogik umfassen oder dem prinzipiellen Aufbau nach 1 entsprechen.
  • In 1 ist ein Mehrkernprozessor (1) zur Ausführung des erfindungsgemäßen Verfahrens abgebildet. Hierbei umfasst der Mehrkernprozessor (1) eine beliebige Anzahl an Prozessorkernen (2A, 2B, 2C), jedoch mindestens einen ersten (2A) und einen zweiten (2B). Der Aufbau eines Mehrkernprozessors (1) nach solcherart ist dem Fachmann als Harvard-Architektur bekannt. Jeder Prozessorkern (2A, 2B, 2C) umfasst hierbei einen Programm- und einen Datenspeicherbereich. Der Programmspeicherbereich umfasst einen Programm-RAM (3A, 3B, 3C) und einen Programm-Cache (4A, 4B, 4C). Der Datenspeicherbereich umfasst einen Daten-RAM (5A, 5B, 5C) und einen Datencache (6A, 6B, 6C). Die RAM-Speicher, wie Programm-RAM und Daten-RAM werden bei der Herstellung des Prozessors durch den Softwareentwickler verwaltet. Die Cache-Speicher, wie Programmcache und Datencache werden durch die Prozessorkerne selbst verwaltet. Programmspeicherbereich und Datenspeicherbereich sind lokal, jedoch voneinander getrennt am Prozessorkern (2A, 2B, 2C) angeordnet und verfügen über je eine separate Schnittstelle zu einer Kommunikationseinrichtung (7). Die Kommunikationseinrichtung (7) ist hierbei als ein Bussystem ausgebildet und ermöglicht den Datenaustausch zwischen den Prozessorkernen (2A, 2B, 2C) sowie zu globalen Speichern (8, 9). Globale Speicher (8, 9) können ebenfalls RAM-Speicher (9) oder Flashspeicher (8) sein. Globale Flash- und RAM-Speicher (8, 9) können einzelne, den jeweiligen Prozessorkernen zugewiesene, Partitionen (8A, 8B, 8C, 9A) umfassen.
  • Entsprechend der Lokalität haben Prozessorkerne (2A, 2B, 2C) einen exklusiven und somit den schnellsten Zugriff auf ihre eigenen lokalen Caches (4A, 4B, 4C, 6A, 6B, 6C), wohingegen der Zugriff auf globale Speicher (8, 9) mit der größten Verzögerung behaftet ist. Zur Synchronisation der Prozessorkerne (2A, 2B, 2C) umfasst der Mehrkernprozessor (1) weiterhin eine Signalisierungslogik (10), welche den Informationsaustausch zwischen den einzelnen Prozessorkernen (2A, 2B, 2C) bezüglich der Datenkonsistenz ermöglicht. Diese kann rein softwareimplementiert ausgebildet sein oder hardwareseitig aus einer zusätzlichen Kommunikationseinrichtung bestehen.
  • Das erfindungsgemäße Verfahren zielt nunmehr darauf ab, die Cachekohärenz des Mehrkernprozessors (1) herzustellen und gleichzeitig konkurrierende Zugriffe, insbesondere auf die globalen Speicher (8, 9), zu minimieren und somit die Effizienz und Leistung des Mehrkernprozessors (1) zu steigern. Im Hinblick auf Steuergeräte mit harter Echtzeitanforderung soll auf diese Art und Weise die Echtzeitfähigkeit von sicherheitskritischen Funktionen gewährleistet werden.
  • Um die maximale Bearbeitungszeit von einem Task durch einen Prozessorkern (2A, 2B, 2C) zu minimieren, ist es von Bedeutung, die gesamte maximale Bearbeitungszeit abzuschätzen. Bearbeitungszeit im Sinne des erfindungsgemäßen Verfahrens ist die Zeit, die ein Prozessorkern (2A, 2B, 2C) benötigt, um die Bearbeitung der aktuellsten Version eines Datums, mittels Speicherverwaltungsoperationen abzuschließen. Speicherverwaltungsoperationen sind lesender und/oder schreibender Zugriff auf einen Speicher. Die Dauer eines Lesezugriffs auf einen Speicher ergibt sich aus der Dauer der reinen Leseoperation auf den entsprechenden Speicher und der Verzögerungszeit durch konkurrierende Zugriffe auf das gleiche Datum, durch andere Prozessorkerne (2A, 2B, 2C).
  • Während der Ausführung eines Tasks kann es erforderlich sein, mehrfach auf das gleiche Datum zuzugreifen. Kommt es beispielsweise während der Ausführung eines Tasks durch einen ersten Prozessorkern (2A) zu einer Aktualisierung des benötigten Datums durch einen zweiten Prozessorkern (2B), informiert dieser den ersten Prozessorkern (2A) über die Signalisierungslogik (10) bezüglich des Updates und muss das aktualisierte Datum in den globalen RAM-Speicher (9A) schreiben. Das bisher verwendete Datum, das der erste Prozessorkern (2A) zur Ausführung seines Tasks verwendet hat, ist nunmehr ungültig und dieser muss das Datum erneut aus dem globalen RAM-Speicher (9A) lesen. Aufgrund des konkurrierenden Zugriffs der beiden Prozessorkerne (2A, 2B) auf den globalen RAM-Speicher (9A) addieren sich zu der reinen Bearbeitungszeit des Tasks durch den ersten Prozessorkern (2A) seine Zeit für den Lesezugriff auf den globalen RAM-Speicher (9A), die Zeit für den Schreibzugriff des zweiten Prozessorkerns (2B) auf den globalen RAM-Speicher (9A) sowie die Zeit zur Signalisierung der Aktualisierung des betreffenden Datums. Gleichsam, wie während der Bearbeitung eines Tasks wiederholt auf ein Datum zugegriffen werden können muss, kann eine wiederholte Aktualisierung dieses Datums durch einen anderen Prozessorkern (2A, 2B, 2C) erfolgen. Infolge der Gleichbehandlung sämtlicher Daten können hier, bedingt durch den konkurrierenden Zugriff auf langsam angebundene globale RAM-Speicher (9A), erhöhte Verzögerungszeiten entstehen.
  • Die Grundlage des erfindungsgemäßen Verfahrens bildet nunmehr eine Kategorisierung von Daten, welche in den Softwarefunktionen des Mehrkernprozessors (1) durch die einzelnen Prozessorkerne (2A, 2B, 2C) verarbeitet werden und die Implementierung von verschiedenen Cachekohärenzprotokollen. Die Intention der Erfindung ergibt sich somit konkretisiert dazu, dass unterschiedlich kategorisierte Daten im erfindungsgemäßen Verfahren unterschiedlichen Cachekohärenzprotokollen zugewiesen werden und entsprechend durch angepasstes Speichermanagement weiterbehandelt werden, um nach solcherart konkurrierende Zugriffe auf globale Speicher (8, 9) zu reduzieren und somit die Gesamtperformance des Mehrkernprozessors (1) zu erhöhen.
  • Die Kategorisierung von Daten erfolgt vorzugsweise bei der Entwicklung des entsprechenden Mehrkernprozessors (1). Die hierzu implementierten Regeln können jedoch auch nachträglich verändert werden, sodass auch zu einem späteren Zeitpunkt die Kategorie eines Datums appliziert werden kann. Sämtliche durch die Prozessorkerne (2A, 2B, 2C) zu verarbeitenden Daten werden erfindungsgemäß in mindestens zwei Kategorien eingeteilt. Bezüglich der Anforderung der Echtzeitfähigkeit der Endanwendungen der Mehrkernprozessoren (1) werden die Daten in „zeitkritisch“ und „zeitunkritisch“ kategorisiert. In einer alternativen Ausführungsform des erfindungsgemäßen Verfahrens werden die Daten zusätzlich in eine dritte Kategorie eingeteilt, welche als „zeitneutral“ bezeichnet wird. Die Bezeichnung der Kategorien ist kein Gegenstand des erfindungsgemäßen Verfahrens. Alternativ können die Kategorien unter der Verwendung von Ziffern, Buchstaben, sonstigen Schriftzeichen oder jeder sonstigen Form nummeriert oder unterteilt werden.
  • Die Einteilung der Daten in Kategorien kann insbesondere unter Berücksichtigung der Sicherheitsrelevanz der Funktionen, in welchen die Daten Anwendung finden, erfolgen. Eine erste Kategorie, welche als „zeitunkritisch“ bezeichnet ist, kann entsprechend Daten umfassen, die nicht sicherheitsrelevant sind und wobei die Echtzeitfähigkeit eine untergeordnete Rolle spielt. In einer Ausführungsform, in welcher der Mehrkernprozessor (1) Teil eines Fahrzeugsteuergerätes ist, können beispielsweise Daten, die zur Steuerung und Regelung der Klimatisierung benötigt werden, als zeitunkritisch kategorisiert werden, da beispielsweise die Fahrzeuginnentemperatur zum einen nicht innerhalb der maximalen Taktfrequenz des Steuergerätes geändert werden kann und zum anderen ein menschlicher Fahrer eine Temperaturänderung nicht in dieser Geschwindigkeit erfassen kann. In diesem Zusammenhang als zeitneutral kategorisierte Daten können beispielsweise jene sein, die für die Visualisierung im Cockpit eines Fahrzeuges verarbeitet werden. So ist beispielsweise die Fahrzeuggeschwindigkeit und deren Kenntnis durch den menschlichen Fahrer zwar sicherheitsrelevant, jedoch ist weder die Darstellung der realen Geschwindigkeit zur maximalen Taktfrequenz des Steuergerätes notwendig, noch kann der menschliche Fahrer diese Änderung in diesen Zeitintervallen erfassen. Hingegen werden beispielsweise an Notbremsfunktionen oder ABS sehr hohe Echtzeitanforderungen gestellt. Diese sind sicherheitsrelevant und sollen möglichst schneller verarbeitet werden, als der menschliche Fahrer die Situation erfassen kann.
  • Die aufgeführten Beispiele sollen das erfindungsgemäße Verfahren nicht eingrenzen, sie dienen lediglich der Charakterisierung der Kategorisierung der Daten. Das erfindungsgemäße Verfahren kann auf eine Vielzahl an Mehrkernprozessoren angewendet werden, welche für sämtliche sonstige Endanwendungen konzipiert sein können.
  • Ein Mehrkernprozessor (1) zur Ausführung des erfindungsgemäßen Verfahrens ist in der Art konzipiert, dass jeweils ein Prozessorkern (2A, 2B, 2C) exklusive Schreibrechte für ein spezielles Datum besitzt. Ein Prozessorkern (2A, 2B, 2C), der exklusive Schreibrechte für ein Datum besitzt, wird nachfolgend als produzierender Kern (PC) für dieses Datum bezeichnet. Andere Prozessorkerne (2A, 2B, 2C) können jedoch ebenfalls mit diesem Datum arbeiten, besitzen jedoch lediglich Leserechte für das spezielle Datum. Prozessorkerne (2A, 2B, 2C), die ausschließlich Leserechte für ein spezielles Datum besitzen, werden nachfolgend als konsumierende Kerne (KC) bezeichnet.
  • Über die Signalisierungslogik (10) eines vorhandenen Mehrkernprozessors (1) ist das erfindungsgemäße Verfahren als ein Cachekohärenzprotokoll bzw. mehrere Cachekohärenzprotokolle softwareseitig implementiert. Dazu sind für die unterschiedlich kategorisierten Daten unterschiedliche Regeln aufgestellt.
  • In 2 sind zwei Prozessabläufe des erfindungsgemäßen Verfahrens für ein erstes Cachekohärenzprotokoll dargestellt, wobei ein erster Prozessorkern (2A) ein Datum der niedrigsten Kategorie „zeitunkritisch“ verarbeiten soll. Das erforderliche Datum der ersten oder auch niedrigsten Kategorie „zeitunkritisch“ wird nachfolgend als Datum K1 bezeichnet. Der Prozessablauf auf der linken Seite beschreibt hierbei den ersten Prozessorkern (2A) als einen produzierenden Kern (PC) für das Datum (K1) und der Prozessablauf auf der rechten Seite beschreibt den ersten Prozessorkern (2A) als einen konsumierenden Kern (KC) für das Datum (K1).
  • Der Prozessablauf für den produzierenden Kern (PC) beginnt in einem ersten Schritt (S101) mit dem Zustand, einen Task verarbeiten zu müssen, in welchem das Datum (K1) benötigt wird. Ein Task im Sinne der Erfindung ist eine in sich geschlossene Aufgabe, die zeitscheibenbasiert unter Ausführung einer Abfolge von einer oder mehreren Rechenoperationen durch einen Prozessorkern (2A, 2B, 2C) erfüllt wird. In einem zweiten Schritt (S102) wird überprüft, ob sich das Datum (K1) bereits im Datencache (6A) des verarbeitenden Prozessorkerns (2A) befindet. Ist das Datum (K1) nicht im Datencache (6A) vorhanden, springt der Prozessablauf zu Schritt (S104) und liest das Datum (K1) aus dem globalen RAM-Speicher (9A), andernfalls wird der Prozessablauf mit dem Schritt (103) fortgesetzt, wobei das Datum (K1) aus dem eigenen Datencache gelesen wird. Im folgenden Schritt (S105) verarbeitet der Prozessorkern (2A) das Datum (K1) in dem ausgeführten Task. In einem weiteren Schritt (106) wird während der Bearbeitung des Tasks überprüft, ob das Datum (K1) zur Laufzeit des Tasks unverändert geblieben ist. Ist das Datum (K1) zur Laufzeit des Tasks unverändert geblieben, springt der Prozessablauf zu Schritt (S111). Wurde das Datum (K1) zur Laufzeit des Tasks verändert, wird in einem weiteren Schritt (S107) überprüft, ob das verwendete Datum (K1) in einem weiteren Prozessorkern (2B, 2C) in die zweite oder dritte Kategorie eingestuft ist. Daten, welche in die zweite Kategorie „zeitneutral“ eingestuft sind, werden nachfolgend als Daten K2 und jene, die in die dritte Kategorie „zeitkritisch“ eingestuft sind, werden als Daten K3 bezeichnet. Die Überprüfung, ob das Datum (K1), welches durch den ersten Prozessorkern (2A) verarbeitet wird, wobei dieser gleichzeitig produzierender Kern (PC) für das Datum (K1) ist, ist für weitere Prozessorkerne (2B, 2C) von Bedeutung, wenn diese das Datum (K1) als K2 oder höher eingestuft haben, da diese permanent den aktuellsten Wert dieses Datums benötigen. In einer alternativen Ausführungsform des erfindungsgemäßen Verfahrens erfolgt diese Überprüfung bereits bei Herstellung des Mehrkernprozessors (1), wobei jeder Prozessorkern (2A, 2B, 2C) Information über die Kategorien (K1, K2, K3) sämtlicher Daten auf sämtlichen weiteren Prozessorkernen (2A, 2B, 2C) erhält.
  • Ist das durch den ersten Prozessorkern (2A) verarbeitete Datum (K1) nicht in einem weiteren Prozessorkern (2B, 2C) als K2 oder höher eingestuft, springt der Prozessablauf zu Schritt (S110), andernfalls wird das Datum (K1) in einem weiteren Schritt (S108) in den globalen RAM-Speicher (9A) geschrieben und in einem darauffolgenden Schritt (S109) wird die Signalisierungslogik (10) bezüglich der Aktualisierung des Datums (K1) informiert. Die Signalisierungslogik (10) teilt nunmehr allen relevanten weiteren Prozessorkernen (2B, 2C) den Aktualisierungszustand des Datums (K1) mit. Für sämtliche das Datum (K1) konsumierenden Kerne (KC), wobei bei diesen das Datum (K1) als K2 oder höher eingestuft ist, werden nunmehr die in Abhängigkeit der Kategorie des Datums (K1) auf dem jeweiligen konsumierenden Kern (KC) zugeordneten Cachekohärenzprotokolle aktiv und führen entsprechende Speicherverwaltungsoperationen aus. Im Prozessablauf des ersten Cachekohärenzprotokolls des ersten Prozessorkerns (2A), welcher der produzierende Kern (PC) für das Datum (K1) ist, wird in einem weiteren Schritt (S110) das Datum (K1) in den eigenen Datencache (6A) geschrieben. Anschließend oder falls das Datum (K1) während der Laufzeit des Tasks unverändert geblieben ist, wird in einem weiteren Schritt überprüft, ob der Task vollständig bearbeitet wurde. Ist der Task noch nicht vollständig bearbeitet, springt der Prozessablauf erneut zu Schritt (S106), andernfalls gilt der Task als beendet (S112). Optional kann der erste Prozessorkern (2A) in einem weiteren Schritt (S108) das Datum (K1) abschließend erneut in den globalen RAM-Speicher (9A) schreiben und die Signalisierungslogik (10) über den Aktualisierungszustand des Datums (K1) informieren (S109) und damit den Prozess beenden (S113). In einer alternativen Ausführungsform fragt die Aktualisierungslogik (10) zyklisch den Aktualisierungszustand der durch die Prozessorkerne (2A, 2B, 2C) verarbeiteten Daten ab.
  • Da ein produzierender Kern (PC) für ein Datum die exklusiven Schreibrechte innehat, wird durch die Cachekohärenzprotokolle nicht bezüglich der Kategorie der Daten unterschieden, welche auf diesem Prozessorkern (2A, 2B, 2C) bearbeitet werden, da dieser der einzige ist, der das Datum verändern kann. Somit ist der Prozessablauf der Cachekohärenzprotokolle für produzierende Kerne (PC) auf sämtliche Datenkategorien anzuwenden. Für konsumierende Kerne (KC) hingegen ist die Unterscheidung der Datenkategorien die Grundlage des erfindungsgemäßen Verfahrens.
  • In 2 auf der rechten Seite ist der Prozessablauf des ersten Cachekohärenzprotokolls dargestellt, wobei ein erster Prozessorkern (2A) einen Task ausführen soll, wobei ein Datum der ersten Kategorie K1 benötigt wird und wobei der erste Prozessorkern (2A) ein konsumierender Kern (KC) für das Datum (K1) ist. Der Prozessablauf beginnt mit dem Zustand, dass der erste Prozessorkern (2A) einen Task, unter Verwendung des Datums (K1), bearbeiten soll (S101). Analog zum Prozessablauf des produzierenden Kerns (PC) wird in einem zweiten Schritt (S102) überprüft, ob sich das Datum (K1) bereits im Datencache (6A) des ersten Prozessorkerns (2A) befindet. Ist dies nicht der Fall, wird das Datum (K1) in einem weiteren Schritt (S104) aus dem globalen RAM-Speicher gelesen. Falls das Datum (K1) bereits im Datencache (6A) vorhanden ist, wird in einem weiteren Schritt (S114) überprüft, ob das Datum (K1) aus dem Datencache (6A) aktuell ist. Teilt die Signalisierungslogik (10) mit, dass sich der Aktualisierungszustand des Datums (K1) zwischenzeitlich gegenüber der Version aus dem Datencache (6A) im globalen RAM-Speicher geändert hat, wird das Datum (K1) in einem weiteren Schritt (S104) erneut aus dem globalen RAM-Speicher (9A) gelesen. Weist das Datum (K1) aus dem Datencache (6A) jedoch einen Aktualisierungszustand auf, der dem im globalen RAM-Speicher (9A) entspricht, wird dieses in einem weiteren Schritt (S103) direkt aus dem Datencache (6A) gelesen. Anschließend wird der Task, unter Verwendung des aktuellen Datums (K1), in einem weiteren Schritt (S105) bearbeitet.
  • Da das Datum (K1) für den verarbeitenden Prozessorkern (2A), welcher für dieses Datum (K1) ein konsumierender Kern (KC) ist, in die niedrigste Kategorie „zeitunkritisch“ eingestuft ist, ist durch das Cachekohärenzprotokoll keine Aktualisierung des Datums (K1) während der Laufzeit der Bearbeitung des Tasks vorgesehen. Der erste Prozessorkern (2A) muss somit nicht während der Laufzeit eines Tasks lesend auf den globalen RAM-Speicher (9A) zugreifen und arbeitet, im Fall der Aktualisierung des Datums (K1) durch den produzierenden Kern (PC) dennoch mit der nunmehr veralteten Version weiter. Auf diese Art und Weise kann die Unterbrechung der Berechnung des Tasks verhindert werden und konkurrierender Lesezugriff auf die globalen Speicher (8, 9) reduziert werden.
  • In einem weiteren Schritt (S112) schließt der erste Prozessorkern (2A) den bearbeiteten Task ab. Optional wird die Signalisierungslogik (10) in einem weiteren Schritt (S109) über den Abschluss der Verwendung des Datums (K1) durch den ersten Prozessorkern (2A) informiert. In einer Ausführungsform des erfindungsgemäßen Verfahrens erfolgt der Informationsaustausch bezüglich des Aktualisierungszustandes eines Datums durch die Signalisierungslogik (10) nur dann, wenn Anforderungen bezüglich der Bearbeitung von Daten durch die Prozessorkerne (2A, 2B, 2C) entstehen. Auf diese Art und Weise muss ein produzierender Kern (PC) den Aktualisierungszustand eines Datums, was dieser verändert und welches gleichzeitig in einem weiteren Prozessorkern (2A, 2B, 2C) als Kategorie K2 oder höher eingestuft ist, nicht während der Laufzeit eines Tasks in den globalen RAM-Speicher (9A) schreiben, wodurch weitere Rechenzeit gespart und konkurrierende Speicherverwaltungsoperationen auf globale Speicher (8, 9) reduziert werden.
  • In einem abschließenden Schritt (S110) schreibt der erste Prozessorkern (2A) das Datum (K1) in seinen Datencache (6A). Wird der Task wiederholt oder muss ein weiterer Task bearbeitet werden, in welchem das Datum (K1) angewendet wird, kann dieser lesend direkt auf seinen Datencache (6A) zugreifen. Der Prozessablauf für das erste Cachekohärenzprotokoll, für einen konsumierenden Kern (KC) ist durch den letzten Zustand (S113) beendet.
  • In 3 sind die Prozessabläufe der Cachekohärenzprotokolle für höher kategorisierte Daten dargestellt, die durch einen ersten Prozessorkern (2A) verarbeitet werden. Auf der linken Seite ist der Prozessablauf für das zweite Cachekohärenzprotokoll für einen konsumierenden Kern (KC), der ein Datum der Kategorie K2 bearbeiten soll, abgebildet. Bei Daten der Kategorie K2 ist das zweite Cachekohärenzprotokoll in derart konzipiert, dass ein Datum (K2) auch während der Laufzeit der Bearbeitung eines Tasks erneut aus dem globalen RAM-Speicher (9A) gelesen wird, sollte sich der Aktualisierungszustand dieses Datums (K2) durch den produzierenden Kern (PC) geändert haben. Der Prozessablauf des zweiten Cachekohärenzprotokolls für einen konsumierenden Kern (KC) beginnt mit dem Zustand (S201), dass der erste Prozessorkern (2A) einen Task verarbeiten soll, unter Verwendung eines Datums (K2). Analog zum Prozessablauf des ersten Cachekohärenzprotokolls für einen konsumierenden Kern (KC) wird in einem zweiten Schritt (S202) überprüft, ob sich das Datum (K2) bereits im Datencache (6A) des ersten Prozessorkerns (2A) befindet. Ist dies nicht der Fall, wird das Datum (K2) in einem weiteren Schritt (S205) aus dem globalen RAM-Speicher (9A) gelesen. Falls das Datum (K2) bereits im Datencache (6A) vorhanden ist, wird in einem weiteren Schritt (S203) überprüft, ob das Datum (K2) aus dem Datencache (6A) aktuell ist. Teilt die Signalisierungslogik (10) mit, dass sich der Aktualisierungszustand des Datums (K2) zwischenzeitlich gegenüber der Version aus dem Datencache (6A) im globalen RAM-Speicher (9A) geändert hat, wird das Datum (K2) in einem weiteren Schritt (S205) erneut aus dem globalen RAM-Speicher (9A) gelesen. Weist das Datum (K2) aus dem Datencache (6A) jedoch einen Aktualisierungszustand auf, der dem im globalen RAM-Speicher (9A) entspricht, wird dieses in einem weiteren Schritt (S204) direkt aus dem Datencache (6A) gelesen. Anschließend wird der Task, unter Verwendung des aktuellen Datums (K2), in einem weiteren Schritt (S206) verarbeitet.
  • Für Daten, welche in die Kategorie K2 „zeitneutral“ eingestuft sind, ist das zweite Cachekohärenzprotokoll nach derart konzipiert, dass stets die aktuellste Version eines verarbeiteten Datums (K2) angewendet wird. Für einen konsumierenden Kern (KC) eines Datums (K2) ist einem produzierenden Kern (PC) dieses Datums (K2) durch das Cachekohärenzprotokoll vorgegeben, dass dieser den Aktualisierungszustand, insbesondere bei Veränderung des Wertes des Datums (K2), auch während der Laufzeit eines Tasks, permanent an die Signalisierungslogik (10) weitergibt oder diese den Aktualisierungszustand entsprechend abfragt. Entsprechend ist im zweiten Cachekohärenzprotokoll für einen konsumierenden Kern (KC) eines Datums (K2) vorgesehen, den gegenwärtigen Aktualisierungszustand auch während der Laufzeit eines Tasks miteinzubeziehen. In einem weiteren Schritt (S207), während der Bearbeitung eines Tasks und unter Verwendung des Datums (K2), wird daher überprüft, ob eine Aktualisierung des Datums (K2) durch einen produzierenden Kern (PC) erfolgte. Existiert eine Aktualisierung des Datums (K2), wird die Bearbeitung des Tasks in einem weiteren Schritt (S208) unterbrochen. In einem weiteren Schritt (S205) wird das Datum (K2) erneut aus dem globalen RAM-Speicher (9A) gelesen. In einem weiteren Schritt (S209) wird die Bearbeitung des Tasks fortgesetzt. Erfolgte keine Aktualisierung des Datums (K2), wird die Bearbeitung des Tasks ohne Unterbrechung fortgesetzt. Da Tasks in echtzeitfähigen Mehrkernprozessoren zeitscheibenbasiert abgearbeitet werden, ist eine wiederholte oder zyklische Verwendung des Datums (K2) in den einzelnen Rechenoperationen möglich. Die Abfrage der Aktualisierung des Datums (K2) erfolgt daher ebenfalls wiederholt, sodass in einem weiteren Schritt (S210) zunächst abgefragt wird, ob die Bearbeitung des Tasks bereits abgeschlossen ist. Ist dies nicht der Fall, springt der Prozessablauf erneut zu Schritt (206). Andernfalls gilt der Task in einem weiteren Zustand (S211) als beendet.
  • Optional wird das Datum (K2) in einem weiteren Schritt (S212) in den Datencache (6A) des Prozessorkerns (6A) geschrieben. Dies ist besonders dann sinnvoll, wenn das Datum (K2) wiederholt während der Bearbeitung aktualisiert wurde. Auf diese Art und Weise kann abschließend das letzte aktualisierte Datum (K2) in den Datencache (6A) geschrieben werden, sodass es bei erneuter Bearbeitung eines Tasks, wobei das Datum (K2) angewendet werden soll, direkt aus dem eigenen Datencache (6A) gelesen werden kann. In einem weiteren Schritt (S213) kann die Signalisierungslogik (10) ebenfalls optional über den Stand der Bearbeitung des Tasks durch den konsumierenden Kern (KC) informiert werden. In einer Ausführungsform, in der ein für das Datum (K2) produzierender Kern (PC) Veränderungen des Datums (K2) während der Laufzeit eines Tasks vornimmt und konsumierende Kerne (KC) lediglich bei Bearbeitung eines Tasks, unter Verwendung des Datums (K2), über den Aktualisierungszustand des Datums (K2) informiert, können so weitere konkurrierende Speicherverwaltungsoperationen reduziert werden. Abschließend ist der Prozess im Zustand (S214) beendet.
  • In 3 auf der rechten Seite ist der Prozessablauf für das dritte Cachekohärenzprotokoll für einen konsumierenden Kern (KC), der ein Datum der Kategorie K3 bearbeiten soll, abgebildet. Bei Daten der Kategorie K3 ist das dritte Cachekohärenzprotokoll in derart konzipiert, dass ein Datum (K3) auch während der Laufzeit der Bearbeitung eines Tasks erneut aus dem globalen RAM-Speicher (9A) gelesen wird, sollte sich der Aktualisierungszustand dieses Datums (K3) durch den produzierenden Kern (PC) geändert haben. Der Prozessablauf des dritten Cachekohärenzprotokolls für einen konsumierenden Kern (KC) beginnt mit dem Zustand (S301), dass der erste Prozessorkern (2A) einen Task verarbeiten soll, unter Verwendung eines Datums (K3). Analog zum Prozessablauf des zweiten Cachekohärenzprotokolls für einen konsumierenden Kern (KC) wird in einem zweiten Schritt (S302) überprüft, ob sich das Datum (K3) bereits im Datencache (6A) des ersten Prozessorkerns (2A) befindet. Ist dies nicht der Fall, wird das Datum (K3) in einem weiteren Schritt (S305) aus dem globalen RAM-Speicher (9A) gelesen. Falls das Datum (K3) bereits im Datencache (6A) vorhanden ist, wird in einem weiteren Schritt (S303) überprüft, ob das Datum (K3) aus dem Datencache (6A) aktuell ist. Teilt die Signalisierungslogik (10) mit, dass sich der Aktualisierungszustand des Datums (K3) zwischenzeitlich gegenüber der Version aus dem Datencache (6A) im globalen RAM-Speicher (9A) geändert hat, wird das Datum (K3) in einem weiteren Schritt (S305) erneut aus dem globalen RAM-Speicher (9A) gelesen. Weist das Datum (K3) aus dem Datencache (6A) jedoch einen Aktualisierungszustand auf, der dem im globalen RAM-Speicher (9A) entspricht, wird dieses in einem weiteren Schritt (S304) direkt aus dem Datencache (6A) gelesen. Anschließend wird der Task, unter Verwendung des aktuellen Datums (K3) in einem weiteren Schritt (S306) bearbeitet.
  • Für Daten, welche in die Kategorie K3 „zeitkritisch“ eingestuft sind, ist das dritte Cachekohärenzprotokoll nach derart konzipiert, dass stets die aktuellste Version eines verarbeiteten Datums (K3) angewendet wird. Für einen konsumierenden Kern (KC) eines Datums (K3) ist einem produzierenden Kern (PC) dieses Datums (K3) durch das Cachekohärenzprotokoll vorgegeben, dass dieser den Aktualisierungszustand, insbesondere bei Veränderung des Wertes des Datums (K3), auch während der Laufzeit eines Tasks, permanent an die Signalisierungslogik (10) weitergibt oder diese den Aktualisierungszustand entsprechend abfragt. Entsprechend ist im dritten Cachekohärenzprotokoll für einen konsumierenden Kern (KC) eines Datums (K3) vorgesehen, den gegenwärtigen Aktualisierungszustand auch während der Laufzeit eines Tasks miteinzubeziehen. In einem weiteren Schritt (S307), während der Bearbeitung eines Tasks und unter Verwendung des Datums (K3), wird daher überprüft, ob eine Aktualisierung des Datums (K3) durch einen produzierenden Kern (PC) erfolgte. Existiert eine Aktualisierung des Datums (K3), wird die Bearbeitung des Tasks in einem weiteren Schritt (S308) unterbrochen. In einem weiteren Schritt (S309) wird zunächst die gesamte Cacheline, in welcher das Datum (K3) gespeichert ist, im Datencache (6A) auf ungültig gesetzt. In einem weiteren Schritt (S310) wird die Cacheline gelöscht und anschließend in einem weiteren Schritt (311) erneut aus dem globalen RAM-Speicher (9A) gelesen. Im darauffolgenden Schritt (S312) wird die Bearbeitung des Tasks dann fortgesetzt. Erfolgte keine Aktualisierung des Datums (K3), wird die Bearbeitung des Tasks ohne Unterbrechung fortgesetzt. Da Tasks in echtzeitfähigen Mehrkernprozessoren zeitscheibenbasiert abgearbeitet werden, ist eine wiederholte oder zyklische Verwendung des Datums (K3) in den einzelnen Rechenoperationen möglich. Die Abfrage der Aktualisierung des Datums (K3) erfolgt daher ebenfalls wiederholt, sodass in einem weiteren Schritt (S313) zunächst abgefragt wird, ob die Bearbeitung des Tasks bereits abgeschlossen ist. Ist dies nicht der Fall, springt der Prozessablauf erneut zu Schritt (306). Andernfalls gilt der Task in einem weiteren Zustand (S314) als beendet.
  • Optional wird das Datum (K3) in einem weiteren Schritt (S315) in den Datencache (6A) des Prozessorkerns (6A) geschrieben. Dies ist besonders dann sinnvoll, wenn die Cacheline des Datums (K3) wiederholt während der Bearbeitung aktualisiert wurde. Auf diese Art und Weise kann abschließend das letzte aktualisierte Datum (K3) in den Datencache (6A) geschrieben werden, sodass es bei erneuter Bearbeitung eines Tasks, wobei das Datum (K3) angewendet werden soll, direkt aus dem eigenen Datencache (6A) gelesen werden kann. Alternativ wird die gesamte Cacheline in den Datencache (6A) geschrieben, sodass sämtliche darin enthaltene Daten aktualisiert vorliegen. In einem weiteren Schritt (S316) kann die Signalisierungslogik (10) ebenfalls optional über den Stand der Bearbeitung des Tasks durch den konsumierenden Kern (KC) informiert werden. In einer Ausführungsform, in der ein für das Datum (K3) produzierender Kern (PC) Veränderungen des Datums (K3) während der Laufzeit eines Tasks vornimmt und konsumierende Kerne (KC) lediglich bei Bearbeitung eines Tasks, unter Verwendung des Datums (K3), über den Aktualisierungszustand des Datums (K3) informiert, können so weitere konkurrierende Speicherverwaltungsoperationen reduziert werden. Abschließend ist der Prozess im Zustand (S317) beendet.
  • Daten der dritten Kategorie K3 sind durch die Kategorisierung als sicherheitsrelevant eingestuft. Um die Genauigkeit der gesamten sicherheitskritischen Funktion zu gewährleisten, in welcher das Datum (K3) verwendet wird, werden hierbei auch Daten ersetzt, die sich in der gleichen Cacheline befinden. Dieses Vorgehen ist insbesondere dann sinnvoll, wenn zusätzlich zu den Cachekohärenzprotokollen Cachecoloring angewendet wird. Cachecoloring im Sinne der Erfindung ist eine Technik der Speicherallokation, wobei Daten, die in einem Task gemeinsam verarbeitet werden, in eine gemeinsame Cacheline gespeichert werden. Das erhöht zum einen die Rechengeschwindigkeit der Prozessorkerne (2A, 2B, 2C), da die Suche sämtlicher für einen Task erforderlichen Daten vereinfacht wird, zum anderen können auf diese Art und Weise funktionsbezogene Daten blockweise gelesen, geschrieben oder ausgetauscht werden.
  • In 4 ist hierzu eine Ausführungsform der Speicherallokation von Datencaches für das erfindungsgemäße Verfahren dargestellt. Verändern Prozessorkerne (2A, 2B, 2C) Daten einer Kategorie, so sind sie automatisch produzierende Kerne (PC). Ein Task, welcher eine Aktualisierung eines Datums nach solcherart produziert, wird nachfolgend als produzierender Task (TP) bezeichnet. Im Gegenzug wird ein Task, der auf einem Prozessorkern (2A, 2B, 2C) ausgeführt wird und Daten verarbeitet, oder mit anderen Worten konsumiert, nachfolgend als konsumierender Task (TK) bezeichnet. Führt ein erster Prozessorkern (2A) eine Funktion aus, in welcher ein konsumierender Task (TK) bearbeitet wird, kann dieser Daten unterschiedlicher Kategorien (K1, K2, K3) aus unterschiedlichen produzierenden Tasks (TP) der Prozessorkerne (2A, 2B, 2C) des Mehrkernprozessors (1) benötigen. Konsumiert der verarbeitende Prozessorkern (2A) beispielsweise Daten von allen drei Kategorien (K1, K2, K3) aus einem produzierenden Task (TP A), werden entsprechende Daten der ersten Kategorie (K1) in eine erste Cacheline (CL 0) allokiert. Analog dazu werden Daten der zweiten Kategorie K2 in eine zweite Cacheline (CL 1), sowie Daten der dritten Kategorie K3 in eine weitere Cacheline (CL 2) allokiert. Auf diese Art und Weise werden sämtliche weitere Daten von produzierenden Tasks (TP B, TP C) weiterer Prozessorkerne (2A, 2B, 2C) im Datencache (6A) des verarbeitenden Prozessorkerns (2A) strukturiert.
  • Die Kategorisierung der Daten obliegt dem Entwickler bzw. Hersteller des Mehrkernprozessors (1). Die Steigerung der Leistungsfähigkeit des Mehrkernprozessors (1) hängt maßgeblich davon ab, welchen Anteil an Rechenoperationen die einzelnen Prozessorkerne (2A, 2B, 2C) ausschließlich über ihren eigenen Datencache (6A, 6B, 6C) bearbeiten können. Umso höher entsprechend der Anteil an Daten der ersten Kategorie K1 ist, umso seltener muss auf globale Speicher (8, 9) zugegriffen werden. Damit sinkt der Anteil an Wartezeit durch konkurrierenden Speicherzugriff. Gleiche Daten können weiterhin auf unterschiedlichen Prozessorkernen (2A, 2B, 2C) unterschiedlich kategorisiert sein. Beispielsweise kann ein Datum, welches zur Bearbeitung eines Tasks, der Teil einer sicherheitsrelevanten Funktion ist, benötigt wird, auf einem ersten Prozessorkern (2A) mit der Kategorie K3 eingestuft sein. Das gleiche Datum kann simultan auf einem zweiten Prozessorkern (2B) zur Berechnung eines Tasks einer anderen Funktion benötigt werden, welche weniger sicherheitsrelevant ist und hierfür mit der Kategorie K2 eingestuft sein. In diesem Fall besitzt der erste Prozessorkern (2A) die höchste Priorität und muss im Fall der Aktualisierung des Datums die entsprechende Cacheline unmittelbar aus dem globalen RAM-Speicher (9A) neu lesen. Durch die variierende Kategorisierung der Daten auf den jeweiligen Prozessorkernen (2A, 2B, 2C) muss beispielsweise ein Datum, welches auf einem ersten Prozessorkern (2A) in der dritten Kategorie K3 eingestuft ist, nicht auf anderen Prozessorkernen (2B, 2C) als K3 behandelt werden und Rechenleistung bzw. Bearbeitungszeit kann eingespart werden.
  • Ausführungsbeispiele
  • Nachfolgend werden Ausführungsbeispiele der beschriebenen Ausführungsformen aufgezeigt. Diese dienen der prinzipiellen Veranschaulichung, wobei das erfindungsgemäße Verfahren nicht durch die aufgezeigten Ausführungsbeispiele limitiert sein soll. Weitere Besonderheiten und Vorteile ergeben sich zusätzlich zu den unterstützenden Schaubildern, hierbei zeigen:
    • 5 einen zeitlichen Programmablauf des Cachekohärenzprotokolls bei der Verarbeitung eines Datums durch einen ersten Prozessorkern (2A),
    • 6 zeitliche Programmabläufe des Cachekohärenzprotokolls bei der konkurrierenden Verarbeitung eines Datums durch die Prozessorkerne (2A, 2B, 2C).
  • Die in den 5 und 6 dargestellten Programmabläufe beziehen sich auf Daten, welche innerhalb der einzelnen Prozessorkerne (2A, 2B, 2C) unterschiedlich kategorisiert sind. Innerhalb des ersten Prozessorkerns (2A) werden die Daten in die dritte Kategorie K3, innerhalb des zweiten Prozessorkerns (2B) in die zweite Kategorie K2, sowie innerhalb des dritten Prozessorkerns (2C) in die erste Kategorie K1 eingestuft. Entsprechend wird auf Daten, die im ersten Prozessorkern (2A) als zeitkritisch (K3) eingestuft sind, das dritte Cachekohärenzprotokoll angewendet. Analog dazu wird auf Daten im zweiten Prozessorkern (2B) das zweite Cachekohärenzprotokoll angewendet und im dritten Prozessorkern (2C) das erste Cachekohärenzprotokoll. Zusätzlich zu den Prozessorkernen (2A, 2B, 2C) werden der globale RAM-Speicher (9A) und die Signalisierungslogik (10) betrachtet. Der Programmablauf ist vertikal durch nummerierte Zeitintervalle (T) erstreckt. Die einzelnen Zeitschritte (T1,...,T11) sind fiktive normierte Zeitintervalle, die lediglich der qualitativen Veranschaulichung des erfindungsgemäßen Verfahrens dienen.
  • In 5 ist ein zeitlicher Programmablauf des erfindungsgemäßen Verfahrens bei der Verarbeitung eines Datums (K3) durch einen ersten Prozessorkern (2A) abgebildet. Der erste Prozessorkern (2A) ist gleichzeitig der produzierende Kern (PC) für das Datum (K3). Im Mehrkernprozessor (1) und in der Signalisierungslogik (10) ist weiterhin bekannt, dass ein zweiter Prozessorkern (2B) ein konsumierender Kern (KC) für das Datum (K3) ist. Im zweiten Prozessorkern (2B) ist das Datum (K3) als K2 eingestuft. Im ersten Zeitschritt (T1) liest der erste Prozessorkern (2A) die Cacheline des betreffenden Datums (K3) aus dem globalen RAM-Speicher (9A). Im zweiten Zeitschritt (T2) bearbeitet der erste Prozessorkern (2A) einen entsprechenden Task, wobei das Datum (K3) verwendet und verändert wird. Im dritten Zeitschritt (T3) informiert der erste Prozessorkern (2A) die Signalisierungslogik (10) über den Aktualisierungszustand des Datums (K3), da diesem bekannt ist, dass der zweite Prozessorkern (2B) konsumierender Kern (KC) ist, sowie, dass dieser das Datum als K2 eingestuft hat und somit jede Veränderung des Aktualisierungszustandes des Datums (K2) unmittelbar erfahren und verarbeiten muss. In einer alternativen Ausführungsform wird der erste Prozessorkern (2A) über den Zustand der Bearbeitung der entsprechenden Daten durch die weiteren Prozessorkerne (2B, 2C) informiert, sodass, wenn dieser alleiniger Nutzer des Datums (K3) ist, es nicht zwingend erforderlich ist, dass dieser die Cacheline mit dem aktualisierten Wert für das Datum (K3) in den globalen RAM-Speicher (9A) schreibt. Im vierten Zeitschritt (T4) erfolgt eine wiederholte Rechenoperation, mit entsprechender Verwendung und Veränderung des Datums (K3), sodass eine erneute Information über den Aktualisierungszustand des Datums (K3) an die Signalisierungslogik (10) gesendet wird. Im fünften Zeitschritt (T5) wiederholt sich der letzte Zeitschritt (T4) erneut und die Bearbeitung des Tasks ist erfolgreich beendet. Es wird nunmehr die Signalisierungslogik (10) erneut darüber informiert, dass der Wert für das Datum (K3) aktualisiert wurde. Anschließend wird die Cacheline mit dem aktualisierten Datum (K3) in den globalen RAM-Speicher (9A) geschrieben. In einer alternativen Ausführungsform, wobei der erste Prozessorkern (2A) exklusiver Nutzer des Datums (K3) ist, informiert dieser nicht bei jeder Aktualisierung des Datums (K3) die Signalisierungslogik (10). Dies kann erfolgen, wenn ein weiterer Prozessorkern (2B, 2C) beginnt das Datum zu verwenden.
  • In 6 auf der linken Seite ist ein zeitlicher Programmablauf des erfindungsgemäßen Verfahrens bei konkurrierendem Zugriff auf das Datum durch den ersten und den dritten Prozessorkern (2A, 2C) abgebildet. In dieser Ausführungsform ist der dritte Prozessorkern (2C) produzierender Kern (PC), wobei das Datum von diesem als K1 eingestuft ist. Der erste Prozessorkern (2A) ist ein konsumierender Kern (KC) für das Datum (K3), wobei dieses bei diesem als K3 eingestuft ist. Im ersten Zeitschritt (T1) liest der dritte Prozessorkern (2C) das Datum (K1) aus dem globalen RAM-Speicher (9A). Im zweiten Zeitschritt (T2) beginnt der dritte Prozessorkern (2C) mit der Bearbeitung eines Tasks, wobei das Datum (K1) verwendet wird.
  • Gleichzeitig liest der erste Prozessorkern (2A) das Datum (K3) aus dem globalen RAM-Speicher (9A). Zu diesem Zeitpunkt besitzt das Datum (K1) für den dritten Prozessorkern (2C) den gleichen Wert, wie für das Datum (K3) des ersten Prozessorkerns (2A) sowie für den globalen RAM-Speicher (9A). Die Konsistenz des Datums ist also gegeben. Im dritten und vierten Zeitschritt (T3, T4) bearbeiten beide Prozessorkerne (2A, 2C) Tasks, unter Verwendung des Datums. Im fünften Zeitschritt (T5) erfolgt eine Veränderung des Datums (K1) innerhalb des dritten Prozessorkerns (2C). Der dritte Prozessorkern (2C) schreibt das Datum (K1) in den globalen RAM-Speicher (9A), informiert die Signalisierungslogik (10) über die Veränderung des Aktualisierungszustandes des Datums (K1) und setzt die Bearbeitung des Tasks fort. Zu diesem Zeitpunkt befindet sich der erste Prozessorkern (2A) noch in Bearbeitung mit der nunmehr älteren Version des Datums (K3). Die Konsistenz des Datums (K3) ist demnach nicht mehr gegeben. Im sechsten Zeitschritt (T6) werden daher die unterschiedlichen Speicheroperationen der Cachekohärenzprotokolle aktiv und signalisieren dem ersten Prozessorkern (2A) die Aktualisierung des Datums (K3). Im siebten Schritt (T7) unterbricht dieser nun die Bearbeitung des Tasks und liest das aktualisierte Datum (K3) aus dem globalen RAM-Speicher (9A) erneut. Der dritte Prozessorkern (2C) ist zu der Zeit weiter in der Bearbeitung seines Tasks, unter Verwendung des Datums (K1). Im achten Zeitschritt (T8) setzt der erste Prozessorkern (2A) die Bearbeitung seines Tasks, unter Verwendung des neu geladenen Datums (K3), fort. Gleichzeitig erfolgt eine Veränderung des Datums (K1) durch den dritten Prozessorkern (2C), der wiederrum den Task beendet hat. Der dritte Prozessorkern (2C) schreibt daher das veränderte Datum (K1) in den globalen RAM-Speicher (9A) und informiert die Signalisierungslogik (10) über den Aktualisierungszustand des Datums (K1). Im neunten Zeitschritt (T9) informiert die Signalisierungslogik (10) den ersten Prozessorkern (2A) über die Veränderung des Datums (K3), wobei sich dieser noch in der Bearbeitung seines Tasks, unter Verwendung des erneut veralteten Datums (K3) befindet. Im zehnten Zeitschritt (T10) hat der erste Prozessorkern (2A) die Bearbeitung seines Tasks jedoch beendet, sodass dieser die neue Version des Datums (K3) nicht erneut liest und optional die Signalisierungslogik (10) informiert.
  • Ein Datum der Kategorie K1 muss erfindungsgemäß durch das erste Cachekohärenzprotokoll nicht während der Laufzeit eines Tasks verändert werden. In diesem Ausführungsbeispiel ist der dritte Prozessorkern (2C) jedoch auch produzierender Kern (PC) für das Datum (K1) und der erste Prozessorkern (2A) ist konsumierender Kern (KC) für das gleiche Datum (K3). Da der erste Prozessorkern (2A) stets die aktuellste Version des Datums (K3) benötigt, erfordert das erste Cachekohärenzprotokoll, dass der dritte Prozessorkern (2C) den Aktualisierungszustand des Datums (K1) auch während der Laufzeit eines Tasks an die Signalisierungslogik (10) sendet und den aktuellen Wert in den globalen RAM-Speicher (9A) schreibt. Werden anteilig mehr Daten durch konsumierende Kerne (KC) in die Kategorie K1 eingestuft, können diese Verzögerungen durch das erfindungsgemäße Verfahren reduziert werden.
  • In 6 auf der rechten Seite ist ein zeitlicher Programmablauf des erfindungsgemäßen Verfahrens bei konkurrierendem Zugriff auf das Datum durch die drei Prozessorkerne (2A, 2B, 2C) abgebildet. In dieser Ausführungsform ist der zweite Prozessorkern (2B) produzierender Kern (PC), wobei das Datum von diesem als K2 eingestuft ist. Die weiteren Prozessorkerne (2A, 2C) sind konsumierende Kerne (KC), wobei das Datum im ersten Prozessorkern (2A) als K3 und im dritten Prozessorkern (2C) als K1 eingestuft ist. Im ersten Zeitschritt (T1) befinden sich der zweite und der dritte Prozessorkern (2B, 2C) bereits in der Bearbeitung eines Tasks, unter Verwendung des Datums (K2, K1). Gleichzeitig liest der erste Prozessorkern (2A) das Datum (K3) aus dem globalen RAM-Speicher (9A). Im zweiten Zeitschritt (T2) beginnt der erste Prozessorkern (2A) die Bearbeitung eines Tasks, unter Verwendung des Datums (K3), der dritte Prozessorkern (2C) befindet sich weiterhin in der Bearbeitung seines Tasks und der zweite Prozessorkern (2B) hat eine Veränderung des Datums (K2) erstellt. Dieser schreibt den aktualisierten Wert für das Daum (K2) in den globalen RAM-Speicher (9A) und informiert die Signalisierungslogik (10) über die Änderung des Aktualisierungszustandes des Datums (K2). Im dritten Zeitschritt (T3) führen die beiden konsumierenden Kerne (KC) die Bearbeitung ihrer Tasks fort und die Signalisierungslogik (10) informiert den ersten Prozessorkern (2A) über die aktualisierte Version des Datums (K3). Im vierten Zeitschritt (T4) führen der zweite und der dritte Prozessorkern (2B, 2C) die Bearbeitung ihrer Tasks fort. Der erste Prozessorkern (2A) unterbricht seinen Task und liest die Cacheline für das Datum (K3) erneut aus dem globalen RAM-Speicher (9A). Der dritte Prozessorkern (2C) muss weder über den Aktualisierungszustand des Datums (K1) informiert werden, noch muss dieser seine Bearbeitung aufgrund einer Aktualisierung des Datums (K1) unterbrechen. Er kann mit der temporär veralteten Version des Datums (K1) weiterarbeiten, da dieses für ihn in die niedrigste Kategorie K1 eingestuft ist. Im sechsten Zeitschritt (T6) verändert der zweite Prozessorkern (2B) das Datum (K2) erneut und beendet die Bearbeitung seines Tasks. Gleichzeitig schreibt er den aktualisierten Wert für das Datum (K2) in den globalen RAM-Speicher (9A) und informiert die Signalisierungslogik (10) über die Veränderung des Datums (K2). Der dritte Prozessorkern (2C) ist ebenfalls mit der Bearbeitung seines Tasks fertig und informiert die Signalisierungslogik (10) über seinen Arbeitszustand. Sollte der dritte Prozessorkern (2C) einen neuen Task bearbeiten, wobei das Datum (K1) benötigt wird, muss dieser dann den Aktualisierungszustand von diesem überprüfen. Der erste Prozessorkern (2A) setzt die Bearbeitung seines Tasks, unter Verwendung des nunmehr veralteten Datums K3 fort. Im siebten Zeitschritt (T7) unterbricht der erste Prozessorkern (2A) die Bearbeitung seines Tasks und liest die Cacheline des Datums (K3) erneut aus dem globalen RAM-Speicher (9A). In den weiteren Zeitschritten (T8, T9) bearbeitet der erste Prozessorkern (2A) seinen Task unter exklusiver Verwendung des Datums (K3). Im zehnten Zeitschritt (T10) beendet er seinen Task und informiert die Signalisierungslogik (10) optional.
  • In diesem Ausführungsbeispiel verarbeiten drei Prozessorkerne (2A, 2B, 2C) das gleiche Datum (K1, K2, K3), mit unterschiedlichen Kategorien. Da lediglich der erste Prozessorkern (2A) ein konsumierender Kern (KC) für das Datum (K3) mit höchster Kategorie ist, der zweite konsumierende Kern (KC) der dritte Prozessorkern (2C) ist, welcher das Datum (K1) in die niedrigste Kategorie eingestuft hat und der produzierende Kern (PC) der zweite Prozessorkern (2B) ist, welcher das Datum (K2) in die mittlere Kategorie eingestuft hat, können durch das erfindungsgemäße Verfahren konkurrierende Speicherverwaltungsoperationen stark reduziert sowie ein erheblicher Anteil an Rechenkapazität des Mehrkernprozessors (1) entlastet werden. Es ist anzumerken, dass sich die Anwendung des erfindungsgemäßen Verfahrens nicht auf Mehrkernprozessoren mit drei Prozessorkernen (2A, 2B, 2C) beschränkt.
  • Bezugszeichenliste
  • 1
    Mehrkernprozessor
    2A, 2B, 2C
    Prozessorkern
    3A, 3B, 3C
    Programm-RAM-Speicher
    4A, 4B, 4C
    Programmcache
    5A, 5B, 5C
    Daten-RAM-Speicher
    6A, 6B, 6C
    Datencache
    7
    Kommunikationseinrichtung
    8, 8A, 8B, 8C
    Globaler Flashspeicher
    9, 9A
    Globaler RAM-Speicher
    10
    Signalisierungslogik
    S101, S201, S301
    Zustand: Prozessorkern erhält Task mit Datum
    S102, S202, S302
    Abfrage: Befindet sich Datum in eigenem Datencache?
    S103, S204, S304
    Prozess: Datum aus eigenem Datencache lesen
    S104, S205, S305
    Prozess: Datum aus globalem RAM-Speicher lesen
    S105, S206, S306
    Prozess: Task mit Datum bearbeiten
    S106
    Abfrage: Datum unverändert?
    S107
    Abfrage: Datum als K2 oder höher eingestuft?
    S108
    Prozess: Datum in globalen Speicher schreiben
    S109, S213, S316
    Prozess: Signalisierungslogik informieren
    S110, S212, S315
    Prozess: Datum in eigenen Cache schreiben
    S111, S210, S313
    Abfrage: Task abgeschlossen?
    S112, S211, S314
    Status: Task beendet
    S113, S214, S317
    Zustand: Prozess abgeschlossen
    S114, S203
    Abfrage: Datum aktuell?
    S207, S307
    Abfrage: Gibt es eine Aktualisierung?
    S208, S308
    Prozess: Task unterbrechen
    S209, S312
    Prozess: Task weiter ausführen
    S309
    Prozess: Cacheline ungültig setzen
    S310
    Prozess: Cacheline Löschen
    S311
    Prozess: Cacheline aus globalem Speicher lesen
    T1,..., T11
    Zeitschritte im Programmablauf
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • CN 102929832 A [0004]
    • WO 2014187259 A1 [0005]
    • US 2004039880 A1 [0006]

Claims (9)

  1. Verfahren zur Herstellung der Cachekohärenz eines Mehrkernprozessors (1), der wenigstens zwei Prozessorkerne (2A, 2B, 2C), die jeweils wenigstens einen lokalen Datencache (6A, 6B, 6C) umfassen, wenigstens einen globalen Speicher (8, 9), wenigstens eine Signalisierungslogik (10) sowie wenigstens eine Kommunikationseinrichtung (7) umfasst, gekennzeichnet durch die Schritte: • Einstufen von Daten, die auf den globalen Speichern (8, 9) gelagert sind und durch die Prozessorkerne (2A, 2B, 2C) verarbeitet werden, in eine von wenigstens zwei Kategorien; • Zuweisen einer jeden Kategorie zu einem separaten Cachekohärenzprotokoll; • sowie Ausführen unterschiedlicher Speicherverwaltungsoperationen durch die Cachekohärenzprotokolle, in Abhängigkeit der Kategorie.
  2. Verfahren nach Patentanspruch 1, dadurch gekennzeichnet, • dass die Einstufung der Daten in Kategorien in Abhängigkeit der Sicherheitsrelevanz der Funktionen erfolgt, in denen diese verarbeitet werden; • sowie, dass einer ersten Kategorie die geringste und einer letzten Kategorie die höchste Sicherheitsrelevanz zugeschrieben wird; • sowie, dass der ersten Kategorie ein erstes und der letzten Kategorie ein letztes Cachekohärenzprotokoll zugewiesen wird.
  3. Verfahren nach Patentanspruch 2, dadurch gekennzeichnet, dass das erste Cachekohärenzprotokoll die Schritte: • Lesen eines Datums durch einen Prozessorkern (2A, 2B, 2C) aus einem globalen Speicher (8, 9) oder dem eigenen Datencache (6A, 6B, 6C), in Abhängigkeit eines Aktualisierungszustandes des Datums, unmittelbar vor der Verarbeitung dieses Datums in einem Task; • Verteilen eines Aktualisierungszustandes an die Signalisierungslogik (10) und Schreiben des Datums in einen globalen Speicher (8, 9), unmittelbar nach erfolgreichem Beenden des Tasks umfasst; sowie, dass das letzte Cachekohärenzprotokoll, zusätzlich zu den Schritten des ersten Cachekohärenzprotokolls die Schritte: • Überprüfung eines Aktualisierungszustandes des Datums während der Verarbeitung dieses Datums in einem Task; • Setzen eines Ungültigkeitsstatus für eine gesamte Cacheline des Datencaches (6A, 6B, 6C) des das Datum verarbeitenden Prozessorkerns (2A, 2B, 2C), in welcher das Datum gespeichert ist, in Abhängigkeit des Aktualisierungszustandes des Datums; • Löschen einer gesamten Cacheline, in der das Datum gespeichert ist und erneutes Lesen dieser Cacheline aus einem globalen Speicher (8, 9), in Abhängigkeit des Ungültigkeitsstatus umfasst.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Einstufung von Daten, die auf den globalen Speichern (8, 9) gelagert sind und durch die Prozessorkerne (2A, 2B, 2C) verarbeitet werden, in eine von wenigstens drei Kategorien erfolgt.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, • dass die Einstufung der Daten in Kategorien in Abhängigkeit der Sicherheitsrelevanz der Funktionen erfolgt, in denen diese verarbeitet werden; • sowie, dass einer ersten Kategorie die geringste, einer zweiten Kategorie eine mittlere, und einer dritten Kategorie die höchste Sicherheitsrelevanz zugeschrieben wird; • sowie, dass der ersten Kategorie ein erstes, der zweiten Kategorie ein zweites und der dritten Kategorie ein drittes Cachekohärenzprotokoll zugewiesen wird.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das erste Cachekohärenzprotokoll die Schritte: • Lesen eines Datums durch einen Prozessorkern (2A, 2B, 2C) aus einem globalen Speicher (8, 9) oder dem eigenen Datencache (6A, 6B, 6C), in Abhängigkeit eines Aktualisierungszustandes des Datums, unmittelbar vor der Verarbeitung dieses Datums in einem Task; • Verteilen eines Aktualisierungszustandes an die Signalisierungslogik (10) und Schreiben des Datums in einen globalen Speicher (8, 9), unmittelbar nach erfolgreichem Beenden des Tasks umfasst; sowie, dass das zweite Cachekohärenzprotokoll, zusätzlich zu den Schritten des ersten Cachekohärenzprotokolls die Schritte: • Überprüfung eines Aktualisierungszustandes des Datums während der Verarbeitung dieses Datums in einem Task; • Unterbrechen der Bearbeitung des Tasks und erneutes Lesen des Datums aus einem globalen Speicher (8, 9), in Abhängigkeit des Aktualisierungszustandes des Datums umfasst; sowie, dass das dritte Cachekohärenzprotokoll, zusätzlich zu den Schritten des ersten Cachekohärenzprotokolls die Schritte: • Überprüfung eines Aktualisierungszustandes des Datums während der Verarbeitung dieses Datums in einem Task; • Setzen eines Ungültigkeitsstatus für eine gesamte Cacheline des Datencaches (6A, 6B, 6C) des das Datum verarbeitenden Prozessorkerns (2A, 2B, 2C), in welcher das Datum gespeichert ist, in Abhängigkeit des Aktualisierungszustandes des Datums; • Löschen einer gesamten Cacheline, in der das Datum gespeichert ist und erneutes Lesen dieser Cacheline aus einem globalen Speicher (8, 9), in Abhängigkeit des Ungültigkeitsstatus umfasst.
  7. Verfahren nach Anspruch 3 oder 6, dadurch gekennzeichnet, • dass das Verteilen des Aktualisierungszustandes durch das Senden einer Information an die Signalisierungslogik (10) erfolgt; • sowie, dass das Überprüfen des Aktualisierungszustandes durch das Abfragen einer Information von der Signalisierungslogik (10) erfolgt oder, dass die Signalisierungslogik (10) den Aktualisierungszustand des Datums an die Prozessorkerne (2A, 2B, 2C) sendet.
  8. Verfahren nach Anspruch 3, 6 oder 7, dadurch gekennzeichnet, dass für Datencaches (6A, 6B, 6C) Cachecoloring angewendet wird, sodass Daten, welche gemeinsam in Funktionen verarbeitet werden, die durch Prozessorkerne (2A, 2B, 2C) ausgeführt werden, in Abhängigkeit ihrer Kategorie und/oder eines produzierenden Tasks und/oder eines konsumierenden Tasks in gemeinsame Cachelines gespeichert werden.
  9. Verfahren nach Anspruch 3, 6, 7 oder 8, dadurch gekennzeichnet, dass die Cachekohärenzprotokolle softwareimplementiert sind, sodass diese auf der bestehenden Peripherie des Mehrkernprozessors (1) angewendet werden.
DE102019118757.5A 2019-07-11 2019-07-11 Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren Active DE102019118757B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019118757.5A DE102019118757B4 (de) 2019-07-11 2019-07-11 Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019118757.5A DE102019118757B4 (de) 2019-07-11 2019-07-11 Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren

Publications (2)

Publication Number Publication Date
DE102019118757A1 true DE102019118757A1 (de) 2021-01-14
DE102019118757B4 DE102019118757B4 (de) 2023-06-22

Family

ID=74092261

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019118757.5A Active DE102019118757B4 (de) 2019-07-11 2019-07-11 Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren

Country Status (1)

Country Link
DE (1) DE102019118757B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704842B1 (en) * 2000-04-12 2004-03-09 Hewlett-Packard Development Company, L.P. Multi-processor system with proactive speculative data transfer
US20190132603A1 (en) * 2017-04-01 2019-05-02 Intel Corporation Lossless Compression for Multisample Render Targets Alongside Fragment Compression

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976131B2 (en) 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
CN102929832B (zh) 2012-09-24 2015-05-13 杭州中天微系统有限公司 基于非写分配的高速缓存一致性的多核处理器数据传输系统
CN104462007B (zh) 2013-09-22 2018-10-02 南京中兴新软件有限责任公司 实现多核间缓存一致性的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704842B1 (en) * 2000-04-12 2004-03-09 Hewlett-Packard Development Company, L.P. Multi-processor system with proactive speculative data transfer
US20190132603A1 (en) * 2017-04-01 2019-05-02 Intel Corporation Lossless Compression for Multisample Render Targets Alongside Fragment Compression

Also Published As

Publication number Publication date
DE102019118757B4 (de) 2023-06-22

Similar Documents

Publication Publication Date Title
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE10255128A1 (de) Computer-implementierte PDF-Dokumentenverwaltung
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE112005002420T5 (de) Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors
DE112013000891T5 (de) Verbessern der Prozessorleistung für Befehlsfolgen, die Sperrbefehle enthalten
DE2430127A1 (de) Einrichtung zur steuerung des speicherzugriffs konkurrierender benutzer
DE102016216843A1 (de) Verteiltes Zusammenführen von Dateien
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE3232675A1 (de) Verfahren zur steuerung des datenzugriffs in einem rechner und daten-kontrollsystem zur durchfuehrung des verfahrens
DE69726795T2 (de) Kodierungsverfahren des Verzeichnisstatus in einem gemeinsamen, verteilten Speichersystem mit koherenten Pufferspeichern
DE69822364T2 (de) Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE102019118757B4 (de) Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren
DE4238593A1 (de) Mehrprozessor-Computersystem
EP1285315B1 (de) Informationsverarbeitungssystem und verfahren zu dessen betrieb
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
WO2004031955A2 (de) Verfahren zur regulierung des datenzugriffs bei einem aus mehreren einzelsystemen bestehenden system auf wenigstens eine datenspeichereinrichtung
EP0482044B1 (de) Virtueller speicher für ein parallelrechnersystem
EP1429254B1 (de) Interrupt-Behandlung in einem CAN-Knoten
DE102023132744A1 (de) Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren und speichermedium mitinformationsverarbeitungsprogramm
DE102013109978A1 (de) Verfahren und Vorrichtung zum Vor-Auswählen, Filtern und Verteilen von Daten in Datenbank-Management-Systemen
EP0825532B1 (de) Verfahren zum Betreiben einer Mehrprozessor-Datenverarbeitungsanlage und nach diesem Verfahren arbeitenden Mehrprozessor-Datenverarbeitungsanlage
DE102023212581A1 (de) Software-hardware-schnittstellenschutz
WO1996033462A1 (de) Cache-speicher

Legal Events

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