DE102017212181A1 - Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor - Google Patents

Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor Download PDF

Info

Publication number
DE102017212181A1
DE102017212181A1 DE102017212181.5A DE102017212181A DE102017212181A1 DE 102017212181 A1 DE102017212181 A1 DE 102017212181A1 DE 102017212181 A DE102017212181 A DE 102017212181A DE 102017212181 A1 DE102017212181 A1 DE 102017212181A1
Authority
DE
Germany
Prior art keywords
checksum
buffer memory
data unit
processor
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102017212181.5A
Other languages
English (en)
Inventor
Simon Hufnagel
Jens Gladigau
Sebastian Bolk
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102017212181.5A priority Critical patent/DE102017212181A1/de
Priority to US16/631,484 priority patent/US11138067B2/en
Priority to PCT/EP2018/069141 priority patent/WO2019016099A1/de
Priority to CN201880047836.3A priority patent/CN110945487B/zh
Publication of DE102017212181A1 publication Critical patent/DE102017212181A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Bestimmen von Prüfsummen für einen Pufferspeicher (100) für einen Prozessor (102), wobei das Verfahren einen Schritt des Einlesens einer durch einen Zugriff des Prozessors (102) als verändert markierten Dateneinheit des Pufferspeichers (100), einen Schritt des Ermittelns einer Prüfsumme für die Dateneinheit unter Verwendung einer Prüfsummeneinheit (309) des Pufferspeichers (100) und einen Schritt des Ergänzens der Dateneinheit (430) um die Prüfsumme und Markieren der Dateneinheit als verändert mit gültiger Prüfsumme umfasst.

Description

  • Stand der Technik
  • Die Erfindung geht von einer Vorrichtung oder einem Verfahren nach Gattung der unabhängigen Ansprüche aus. Gegenstand der vorliegenden Erfindung ist auch ein Computerprogramm.
  • Um die Zugriffszeit eines Prozessors auf in einem Speicher gespeicherte Daten zu verringern werden Pufferspeicher, sogenannte Caches, eingesetzt.
  • Offenbarung der Erfindung
  • Vor diesem Hintergrund werden mit dem hier vorgestellten Ansatz ein Verfahren, weiterhin eine Vorrichtung, die dieses Verfahren verwendet, ein Pufferspeicher und ein Prozessor sowie schließlich ein entsprechendes Computerprogramm gemäß den Hauptansprüchen vorgestellt. Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen der im unabhängigen Anspruch angegebenen Vorrichtung möglich.
  • Vorteilhafterweise kann innerhalb eines Pufferspeichers direkt eine Prüfsumme über eine in dem Pufferspeicher gespeicherten Dateneinheit gebildet werden, die durch einen Zugriff innerhalb des Pufferspeichers verändert wurde. Auf diese Weise kann die Integrität der in dem Pufferspeicher gespeicherten Daten gewährleistet werden.
  • Ein Verfahren zum Bestimmen von Prüfsummen für einen Pufferspeicher für einen Prozessor umfasst die folgenden Schritte:
    • Einlesen einer durch einen Zugriff des Prozessors als verändert markierten Dateneinheit des Pufferspeichers;
    • Ermitteln einer Prüfsumme für die Dateneinheit unter Verwendung einer Prüfsummeneinheit des Pufferspeichers; und
    • Ergänzen der Dateneinheit um die Prüfsumme und markieren der Dateneinheit als verändert mit gültiger Prüfsumme.
  • Bei dem Prozessor kann es sich um eine sogenannte CPU, beispielsweise in Form eines Mikrocontrollers handeln. Der Prozessor kann in einem Fahrzeug, beispielsweise einem Steuergerät eines Fahrzeugs, eingesetzt werden. Bei dem Pufferspeicher kann es sich um einen sogenannten Cache handeln. Der Pufferspeicher wird im Folgenden auch als Cache bezeichnet. Der Pufferspeicher kann sich durch Zugriffszeiten für Lesezugriffe und/oder Schreibzugriffe durch den Prozessor auszeichnen, die kürzer als Zugriffszeiten auf einen Hauptspeicher einer den Prozessor umfassenden Speicherarchitektur sind. Die Dateneinheit kann beispielsweise eine gesamte oder Teil einer Speicherzeile oder Speicherspalte des Pufferspeichers darstellen. Die Dateneinheit kann unter Verwendung eines Markers beispielsweise als „verändert“ oder als „verändert mit gültiger Prüfsumme“ markiert sein. Unter einer Prüfsumme kann ein Wert verstanden werden, der eine Überprüfung der Integrität der Dateneinheit ermöglicht. Bei der Ermittlung der Prüfsumme kann auf bekannte Verfahren zurückgegriffen werden. Bei der Prüfsummeneinheit kann es sich um eine in den Pufferspeicher integrierte Einheit oder Vorrichtung Verfahren zum Bestimmen von Prüfsummen handeln. Bei einer als verändert markierten Dateneinheit kann es sich um eine Dateneinheit handeln, die durch einen Schreibzugriff des Prozessors auf die Dateneinheit verändert wurde. Aufgrund einer solchen Veränderung kann eine Neubestimmung einer der Dateneinheit zugeordneten Prüfsumme erforderlich sein.
  • Die Schritte des Ermittelns und Ergänzen können innerhalb einer Zeitspanne durchgeführt werden, die minimal zwischen dem Zugriff des Prozessors und einem Zurückschreiben der Dateneinheit in einen Hauptspeicher liegt. Eine solche Zeitspanne wird auch als Cache-only Zeit bezeichnet. Auf diese Weise kann sichergestellt werden, das für die veränderte Dateneinheit eine aktuelle Prüfsumme ermittelt wird, bevor die Dateneinheit in einen Hauptspeicher zurückgeschrieben wird.
  • Gemäß einer Ausführungsform können zumindest zwei Schritte des Ermittelns und Ergänzens innerhalb der Zeitspanne durchgeführt werden. Wenn die Schritte des Ermittelns und Ergänzens sehr schnell ausgeführt werden können, können unter Verwendung ein und derselben Prüfsummenermittlungseinrichtung mehrere Prüfsummen für mehrere Dateneinheiten ermittelt werden. Dadurch kann die Anzahl der Prüfsummenermittlungseinrichtungen gering gehalten werden.
  • Das Verfahren kann einen weiteren Schritt des Einlesen einer durch einen weiteren Zugriff des Prozessors als verändert markierten weiteren Dateneinheit des Pufferspeichers, einen weiteren Schritt des Ermittelns einer weiteren Prüfsumme für die weitere Dateneinheit unter Verwendung einer weiteren Prüfsummenermittlungseinrichtung des Pufferspeichers, und einen weiteren Schritt des Ergänzens der weiteren Dateneinheit um die Prüfsumme und des Markierens der weiteren Dateneinheit als verändert mit gültiger Prüfsumme umfassen. Auf diese Weise können für mehrere Dateneinheiten parallel Prüfsummen ermittelt werden. Die Anzahl der Prüfsummenermittlungseinrichtungen des Pufferspeichers kann dabei einer maximalen Anzahl von Dateneinheiten entsprechen, die innerhalb der genannten Zeitspanne durch den Prozessor verändert werden können.
  • Das Verfahren kann einen Schritt des Zählens einer Anzahl von Zugriffen des Prozessors auf die Dateneinheit umfassen. Dabei kann der Schritt des Ermittelns abhängig von der Anzahl der Zugriffe durchgeführt werden. Beispielsweise kann der Schritt des Ermittelns durchgeführt werden, wenn die Anzahl der Zugriffe eine vorbestimmte Anzahl erreicht oder überschreitet. Auf diese Weise kann ein unnötiges Ermitteln von Prüfsummen vermieden werden, wenn die Dateneinheit mehrmals aufeinanderfolgend verändert wird.
  • In einem Schritt des Ladens einer Dateneinheit kann die Prüfsumme der Dateneinheit unter Verwendung der Prüfsummeneinheit zum Überprüfen der Dateneinheit auf Integrität verwendet werden. Auf diese Weise kann die Dateneinheit doppelt genutzt werden.
  • Dieses Verfahren kann beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware beispielsweise in einem Steuergerät implementiert sein.
  • Eine Vorrichtung zum Bestimmen von Prüfsummen für einen Pufferspeicher für einen Prozessor weist die folgenden Merkmale auf:
    • eine Einleseeinrichtung, die ausgebildet ist, um eine durch einen Zugriff des Prozessors als verändert markierten Dateneinheit des Pufferspeichers einzulesen;
    • eine Ermittlungseinrichtung, die ausgebildet ist, um eine Prüfsumme für die Dateneinheit unter Verwendung einer Prüfsummenermittlungseinrichtung des Pufferspeichers zu ermitteln; und
    • eine Ergänzungseinrichtung, die ausgebildet ist, um die Dateneinheit um die Prüfsumme zu ergänzen und als verändert mit gültiger Prüfsumme zu markieren.
  • Die Vorrichtung kann ausgebildet sein, um die Schritte einer Variante eines hier vorgestellten Verfahrens in entsprechenden Einrichtungen durchzuführen, anzusteuern bzw. umzusetzen. Auch durch diese Ausführungsvariante der Erfindung in Form einer Vorrichtung kann die der Erfindung zugrunde liegende Aufgabe schnell und effizient gelöst werden.
  • Ein Pufferspeicher für einen Prozessor umfasst eine genannte Vorrichtung zum Bestimmen von Prüfsummen für den Pufferspeicher. Vorteilhafterweise lassen sich bekannte Pufferspeicherarchitekturen um die Vorrichtung ergänzen.
  • Beispielsweise kann der Pufferspeicher als eine integrierte Schaltung ausgeführt sein, die die genannte Vorrichtung umfasst. Auf diese Weise ist keine externe Schnittstelle zu der Vorrichtung erforderlich.
  • Der Pufferspeicher kann eine Prozessorschnittstelle zum Ermöglichen eines Zugriffs des Prozessors auf Dateneinheiten des Pufferspeichers und eine Hauptspeicherschnittstelle zum Laden und/oder Zurückschreiben von Dateneinheiten in einen Hauptspeicher umfassen. Somit kann der Pufferspeicher für bekannte Speicherarchitekturen eingesetzt werden.
  • Ein Prozessor kann einen entsprechenden Pufferspeicher umfassen. Wenn der Pufferspeicher in den Prozessor integriert ist, ergeben sich sehr schnelle Zugriffszeiten eines Rechenwerks des Prozessors auf die in dem Pufferspeicher gespeicherten Dateneinheiten.
  • Ein solcher Prozessor kann eine Recheneinheit zum Verarbeiten von Signalen oder Daten, zumindest die Pufferspeichereinheit zum Speichern von Daten und zumindest eine Kommunikationsschnittstelle zum Einlesen oder Ausgeben von Daten aufweisen, die in ein Kommunikationsprotokoll eingebettet sind. Der Prozessor und/oder die genannte Vorrichtung kann eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann. Bei einer hardwaremäßigen Ausbildung können die Schnittstellen beispielsweise Teil eines sogenannten System-ASICs sein, der verschiedenste Funktionen der Vorrichtung beinhaltet. Es ist jedoch auch möglich, dass die Schnittstellen eigene, integrierte Schaltkreise sind oder zumindest teilweise aus diskreten Bauelementen bestehen. Bei einer softwaremäßigen Ausbildung können die Schnittstellen Softwaremodule sein, die beispielsweise auf einem Mikrocontroller neben anderen Softwaremodulen vorhanden sind.
  • Von Vorteil ist auch ein Computerprogrammprodukt oder Computerprogramm mit Programmcode, der auf einem maschinenlesbaren Träger oder Speichermedium wie einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert sein kann und zur Durchführung, Umsetzung und/oder Ansteuerung der Schritte des Verfahrens nach einer der vorstehend beschriebenen Ausführungsformen verwendet wird, insbesondere wenn das Programmprodukt oder Programm auf einem Computer oder einer Vorrichtung ausgeführt wird.
  • Ausführungsbeispiele des hier vorgestellten Ansatzes sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:
    • 1 ein Blockschaltbild einer Speicherarchitektur gemäß einem Ausführungsbeispiel;
    • 2 ein Zustandsdiagramm einer Dateneinheit gemäß einem Ausführungsbeispiel;
    • 3 ein Blockschaltbild einer Speicherarchitektur gemäß einem Ausführungsbeispiel;
    • 4 ein Ablaufdiagramm eines Verfahrens zum Bestimmen von Prüfsummen gemäß einem Ausführungsbeispiel;
    • 5 ein Ablaufdiagramm eines Verfahrens zum Bestimmen von Prüfsummen gemäß einem Ausführungsbeispiel; und
    • 6 eine schematische Darstellung einer Vorrichtung zum Bestimmen von Prüfsummen gemäß einem Ausführungsbeispiel.
  • In der nachfolgenden Beschreibung günstiger Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Figuren dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.
  • 1 zeigt ein Blockschaltbild einer Speicherarchitektur gemäß einem Ausführungsbeispiel. Die Speicherarchitektur umfasst einen Pufferspeicher 100 in Form eines Caches, einen Prozessor 102 in Form einer CPU und einen Hauptspeicher 104. Der Pufferspeicher 100 ist über eine Prozessorschnittstelle 110 mit dem Prozessor 102 und über eine Hauptspeicherschnittstelle 112 mit dem Hauptspeicher 104 verbunden. Eine Absicherung der Prozessorschnittstelle 110 erfolgt mittels einer Prüfsumme über ein Datenwort. Eine Absicherung der Hauptspeicherschnittstelle 112 erfolgt mittels einer Prüfsumme über eine komplette Cacheline.
  • Gemäß einem Ausführungsbeispiel wird die Prüfsumme über eine komplette Cacheline, eine sogenannte Hauptspeicherprüfsumme, unter Verwendung des hier vorgestellten Ansatzes ermittelt.
  • Bei der in 1 gezeigten exemplarischen Speicherhierarchie zeichnet sich durch spezielle Charakteristika der Kommunikation zwischen den Komponenten 100, 102, 104 aus. So zeichnet sich die Prozessorschnittstelle 110 durch eine kurze Latenz, beispielsweise von wenigen Takten des Prozessors 102, aus und der Zugriff erfolgt bei jedem Lesebefehl (Load) oder Schreibbefehl (Store) bzw. in jedem Takt zum Laden des nächsten Befehls. Die Zugriffsbreite basiert dabei auf der Datenbusbreite und/oder dem Befehlssatz, z.B. 32 Bit Datenworte, des Prozessors 102. Die Hauptspeicherschnittstelle 112 weist eine hohe Latenz auf. Ein Zugriff erfolgt bei Cache Miss des Caches, wenn also von dem Prozessor 102 angeforderte Daten sich nicht in dem Pufferspeicher 100 befinden, oder beim Schreiben einer geänderten Cacheline aus dem Pufferspeicher 100. Die Zugriffsbreite basiert dabei auf der Cacheline-Breite des Pufferspeichers 100, die mehrere Datenworte des Prozessors 102 pro Zugriff umfassen können.
  • In 1 ist eine hierarchische Speicherarchitektur gezeigt, die beispielsweise für ein rechenintensives automotive Systemen, beispielsweise für die Fahrerassistenz oder das automatisierte Fahren, eingesetzt werden kann.
  • Im Folgenden wird der Pufferspeicher 100 auch als Cache 100 und der Prozessor 102 auch als CPU 102 bezeichnet.
  • Der hierarchische Aufbau umfasst den beispielsweise DRAM basierten Hauptspeicher 104, der meist nicht in die CPU 102, beispielsweise einem Mikroprozessor, integriert ist, sondern als externe(r) Baustein(e) ausgeführt ist. Daraus ergibt sich eine limitierte Bandbreite und eine erhöhte Latenz für den Datenaustausch zwischen CPU 102 und Hauptspeicher 104. Um dem zu begegnen, werden typischerweise Cachehierarchien eingesetzt, die die Daten lokal auf dem Chip des Prozessors 102 zwischenspeichern. Somit sind der Prozessor 102 und der Pufferspeicher 100 gemäß einem Ausführungsbeispiel in ein und demselben Baustein, beispielsweise einer integrierten Schaltung, realisiert.
  • Der Datenaustausch zwischen dem Cache 100 und dem Hauptspeicher 104, oder Caches auf dem nächst höheren Level, erfolgt dabei auf der Basis von als Cachelines bezeichneten Dateneinheiten. Eine Cacheline umfasst dabei meist mehrere Daten- oder Instruktionsworte die von der CPU 102 nacheinander verarbeitet bzw. ausgeführt werden können. Werden Daten benötigt, die aktuell nicht im Cache 100 zwischengespeichert sind (Cache Miss), werden die Daten automatisch aus dem Cache der nächsten Ebene bzw. aus dem Hauptspeicher 104 nachgeladen und andere im Cache 100 zwischengespeicherte Daten überschrieben. D.h. die Daten der betroffenen Cacheline werden „verdrängt“ und sind nur noch in Caches einer höheren Ebene bzw. im Hauptspeicher 104 verfügbar. Die Bestimmung der zu verdrängenden Cacheline kann z.B. durch das Least-recently-used Verfahren erfolgen, bei dem diejenige Cacheline verdrängt wird, deren letzter Zugriff am längsten in der Vergangenheit liegt.
  • Eine exemplarische Architektur einer Speicherhierarchie mit den charakteristischen Eigenschaften der Kommunikation zwischen den jeweiligen Komponenten 100, 102, 104 ist in 1 gezeigt.
  • Dabei erfolgt eine Fehlererkennung mittels Prüfsummen. Werden an die Datenverarbeitung und Programmausführung des Systems Anforderungen bzgl. funktionaler Sicherheit gestellt, führt dies häufig dazu, dass die Komponenten 100, 102, 104 der Speicherarchitektur mit Mechanismen zur Fehlererkennung und ggf. -korrektur ausgerüstet werden. Ein häufig dafür eingesetztes Prinzip ist die Vorwärtsfehlerkorrektur basierend auf Prüfsummen. Dabei wird eine Dateneinheit definierter Größe (z.B. Datenwort oder Cacheline) um eine Prüfsumme ergänzt, die zusätzlich zur Dateneinheit im Cache bzw. im Hauptspeicher abgespeichert wird.
  • Das jeweilige Prüfsummenverfahren und die Größe der dadurch abgesicherten Dateneinheiten können innerhalb einer Speicherhierarchie variieren.
  • Zum Beispiel können zur Absicherung der einzelnen 32 Bit Datenworte zwischen CPU 102 und dem beispielsweise als Level 1 Cache ausgeführten Pufferspeicher 100 Error Correction Codes zum Einsatz kommen, wohingegen für die Absicherung der Daten zwischen Cache 100 und dem Hauptspeicher 104 Prüfsummen über ganze 256 Bit große Cachelines zum Einsatz kommen können. Der Einsatz von Prüfsummen über größere Dateneinheiten führt dabei Prinzip bedingt zu einer Reduktion des Anteils der Prüfbits am Gesamtspeicherbedarf. Beim Datenaustausch zwischen den durch unterschiedliche Verfahren abgesicherten Komponenten wird sowohl eine Auswertung der bestehenden als auch eine Neuberechnung der für die Zielkomponente gültigen Prüfsummen erfolgen (Rekodierung). Erfolgt die Rekodierung im kritischen Timingpfad, wirkt sich die Rekodierung direkt negativ auf die Systemperformanz aus.
  • Daher werden Caching Strategien für durch die CPU 102 veränderten Daten innerhalb des Pufferspeichers 100 vorgeschlagen. Wird durch die Programmausführung ein Datenwort in einer Cacheline verändert, wird diese Veränderung der Daten zwecks Datenkonsistenz in den Hauptspeicher 104 weitergegeben werden. Dafür sind unterschiedliche Strategien möglich:
  • Write-Through: Bei dieser Strategie werden die veränderten Daten sofort an die nächst höhere Cacheebene bzw. an den Hauptspeicher 104 weitergeben. Falls die Daten mit einer Prüfsumme versehen werden müssen, wird die Berechnung der Prüfsumme ebenfalls sofort erfolgen. Somit wirkt sich die Dauer der Prüfsummenberechnung direkt auf die Übertragung der Daten in die nächst höhere Cacheebene bzw. an den Hauptspeicher aus.
  • Write-Back: Bei dieser Strategie werden die veränderten Daten erst zu einem späteren Zeitpunkt an die nächst höhere Cacheebene bzw. an den Hauptspeicher 104 weitergeben. Zwischenzeitlich wird die von der Änderung betroffene Cacheline als modifiziert markiert. Die Weitergabe erfolgt dann in einer der folgenden Situationen, also entweder bei der Verdrängung der modifizierten Daten aus dem Cache 100 oder bei Änderung der betroffenen Cacheline in einem anderen Cache der gleichen Ebene im Rahmen des Cachekohärenzprotokolls. Letzteres ist nur relevant, falls die Speicherhierarchie kohärente Caches enthält.
  • Die Zeitspanne die eine modifizierte Cacheline bis zu ihrer Verdrängung im Cache 100 verbleibt wird im Folgenden als „Cache-only“ Zeit bezeichnet.
  • Der hier beschriebene Ansatz ermöglicht ein Verfahren und ein System zur kosten- und laufzeiteffizienten Berechnung von Hauptspeicherprüfsummen in Speicherarchitekturen mit Datencaches 100. Vorteilhafterweise wird eine kosteneffiziente Berechnung der Hauptspeicherprüfsummen für veränderte Daten in Write-Back Caches 100 ohne zusätzliche Latenz ermöglicht. Hauptspeicherprüfsummen sind dabei Prüfsummen ganzer Cache Lines, die zusätzlich zu den inhaltlichen Daten im Speicher abgelegt sind.
  • Gemäß einem Ausführungsbeispiel ist der Cache 100 dazu mit zumindest einer oder mehreren Einheiten zur Berechnung der Hauptspeicherprüfsummen ausgerüstet. Diese führen die Berechnung der Hauptspeicherprüfsummen automatisch vor der Verdrängung der modifizierten Cacheline, also innerhalb der Cache-only Zeit durch.
  • Vorteilhafterweise ist es dazu nicht erforderlich, dass der Hauptspeicher 104 über explizite Fehlererkennungsmaßnahmen verfügt. Des Weiteren wird die Erkennung von Datenverfälschungen durch auf dem Pfad zwischen Cache 100 und Hauptspeicher 104 liegenden Elemente, wie Chip-interne Kommunikationsstrukturen oder Speichercontroller für den Hauptspeicher 104, ermöglicht. Ferner entsteht keine zusätzliche Latenz durch die Berechnung der Hauptspeicherprüfsummen, da deren Berechnung bereits während der Cache-only Zeit durchgeführt wird und zum Zeitpunkt der Verdrängung die entsprechende Hauptspeicherprüfsumme bereits vorliegt. Da die Berechnung der Hauptspeicherprüfsummen während die Daten im Cache liegen die Latenz nicht beeinflusst, können die Einheiten zur Berechnung der Hauptspeicherprüfsummen mit geringerem Durchsatz und damit kosteneffizienter ausgelegt werden.
  • 2 zeigt ein Zustandsdiagramm einer Dateneinheit, auch als Cacheline bezeichnet, gemäß einem Ausführungsbeispiel. Gezeigt ist ein ungültiger Zustand 220 „invalid“, ein unveränderter Zustand 222 „unmodified“, ein veränderter Zustand 224 mit noch nicht erledigter Prüfsumme „modified_checksum_pending“ und ein veränderter Zustand 226 mit gültiger Prüfsumme „modified_checksum_valid“ der Dateneinheit. Die Zustände 224, 226 werden in der als Cache-only Zeit bezeichneten Zeitspanne 228 durchlaufen.
  • Um von dem Zustand 220 zu dem Zustand 222 zu gelangen, wird eine Cacheline geladen (load cacheline). Wird in dem Zustand 222 die Cacheline erneut geladen (load cacheline), so wird in dem Zustand 222 verblieben. Durch Verändern der Chacheline (modify cacheline) wird von dem Zustand 222 zu dem Zustand 224 gewechselt. Wenn die Ermittlung der Prüfsumme abgeschlossen ist (checksum calculation finished) wird von dem Zustand 224 in den Zustand 226 gewechselt. Wird die Cacheline erneut verändert (modify cacheline), so wird von dem Zusatnd 226 zurück in den Zustand 224 gewechselt. Wird die Cacheline dagegen zurückgeschrieben (write back), so wird von dem Zustand 226 in den Zustand 220 gewechselt.
  • Bei dem in 2 gezeigten exemplarisches Zustandsdiagramm einer Cacheline entsprechen die Zustände 220, 222 „invalid“ und „unmodified“ den Zuständen bei herkömmlichen Caches. Der Zustand „modified“ eines klassischen Caches ist hier in zwei Zustände 224, 226 aufgeteilt. Nach der Änderung einer Cacheline durch die CPU befindet sich diese im Zustand 224 „modified_checksum_pending“, da die Hauptspeicherprüfsumme noch nicht vorliegt. Nachdem die Hauptspeicherprüfsumme berechnet und als Teil der Cacheline abgespeichert wurde, wechselt die Cacheline in den Zustand 226 „modified_checksum_valid“ und kann bei Bedarf ohne zusätzliche Wartezeit in den Hauptspeicher zurückgeschrieben werden.
  • Die Cache-only Zeit als Zeitspanne 228 zwischen Änderung der Cacheline und Zurückschreiben in den Hauptspeicher hängt im Falle einer Speicherhierarchie ohne kohärente Caches ausschließlich vom Zugriffsverhalten der CPU und von der eingesetzten Cacheline-Verdrängungsstrategie ab. Abhängig von der Cacheline-Verdrängungsstrategie lässt sich eine untere Schranke der Cache-only Zeit berechnen. Im Falle des Most-Recently-Used Verfahrens berechnet sich diese zu t cache_only_min_MRU = η clk_per_CPU_acess · t clk_period
    Figure DE102017212181A1_0001
  • η clk_per_CPU_acess:
    Anzahl der Takte, die für einen Zugriff der CPU auf den jeweiligen Cache benötigt werden
    t clk_period:
    Dauer eines Taktzyklus
  • Wird das Least-Recently-Used Verfahren eingesetzt berechnet sich die untere Schranke der Cache-only Zeit zu t cache_only_min_LRU = η way · η clk_per_CPU_acess · t clk_period
    Figure DE102017212181A1_0002
  • η way:
    Anzahl der Cachewege (Anzahl der Cachelines, die für die Zwischenspeicherung eines Speicherwortes in Frage kommen)
  • Innerhalb der entsprechenden Zeit tcache_only_min nach Änderung der Daten erfolgt garantiert keine Verdrängung der betroffenen Cacheline.
  • Diese Zeit kann genutzt werden, um die Hauptspeicherprüfsumme der aktuellen Cacheline zu aktualisieren. Sobald dann eine Verdrängung der Cacheline erfolgen soll (Write-Back), liegt die Hauptspeicherprüfsumme bereits vor und es entsteht keine zusätzliche Wartezeit.
  • Im Falle des Least-Recently-Used Verfahrens ist zu beachten, dass innerhalb tcache_only_min_LRU bis zu ηway Cachelines modifiziert werden können. Dementsprechend sind in einem Ausführungsbeispiel ηway Berechnungseinheiten vorzusehen, die in der Lage sind innerhalb von tcache_only_min_LRU die jeweilige Hauptspeicherprüfsumme zu berechnen.
  • Alternativ können auch weniger Berechnungseinheiten mit geringerer Berechnungsdauer eingesetzt werden, ohne dass die Prüfsummenberechnung zu einer zusätzlichen Latenz führt, solange folgende Bedingungen erfüllt sind: t checksum_duration t cache_only_min_LRU
    Figure DE102017212181A1_0003
    t checksum_duration / η checksum_units t cache_only_min_MRU
    Figure DE102017212181A1_0004
  • Ist der Fall, dass durch die Software zunächst ηway Cachelines der Reihe nach in nur einem Wort modifiziert und nachfolgend der Reihe nach verdrängt werden hinreichend unwahrscheinlich und keine garantierte Latenzfreiheit der Prüfsummenberechnung notwendig, so kann auf die Bedingung 2 verzichtet werden.
  • Der Beginn der Prüfsummenberechnung wird gemäß einem Ausführungsbeispiel so angenommen, dass die Berechnung direkt nach der Änderung der Cacheline startet. Wird die Cacheline vor ihrer Verdrängung erneut geändert, ist die bereits berechnete Hauptspeicherprüfsumme hinfällig und eine Neuberechnung muss erfolgen. Um unnötige Prüfsummenberechnungen zu vermeiden, wird im Falle der LRU-Verdrängungsstrategie die Berechnung der Hauptspeicherprüfsumme gemäß einem Ausführungsbeispiel verzögert, bis die Cacheline in der Reihenfolge ihrer letzten Nutzung einen bestimmten Wert erreicht hat und die Verdrängungswahrscheinlichkeit zu nimmt.
  • 3 zeigt ein Blockschaltbild einer Speicherarchitektur gemäß einem Ausführungsbeispiel. Die Speicherarchitektur umfasst den bereits anhand von 1 beschriebenen Pufferspeicher 100 in Form eines Caches, den Prozessor 102 in Form einer CPU und den Hauptspeicher 104. Zusätzlich ist eine Vorrichtung 306 zum Bestimmen von Prüfsummen für den Pufferspeicher 100 gezeigt. Gemäß unterschiedlichen Ausführungsbeispielen umfasst die Vorrichtung 306 eine oder mehrere Einheiten, hier beispielhaft zwei Einheiten 308, 309 zur Hauptspeicherprüfsummenberechnung, die auch als Prüfsummeneinheiten oder Prüfsummenberechnungseinheiten bezeichnet werden.
  • Gemäß unterschiedlicher Ausführungsbeispiele ist die Vorrichtung 306 als eine externe Einheit zu dem Pufferspeicher 100 ausgeführt, oder in den Pufferspeicher 100 integriert realisiert, beispielsweise auf demselben Chip.
  • Bei der gezeigten exemplarischen Speicherhierarchie, bei der der Cache 100 erfindungsgemäß mit einer oder mehreren Cacheline-Prüfsummenberechnungseinheiten 308, 309 ausgestattet ist, sind diese Einheiten 308, 309 so ausgelegt, dass die Hauptspeicherprüfsumme innerhalb der jeweils gültigen Zeitspanne t cache_only_min berechnet werden kann. Im Folgenden werden zwei exemplarische Abläufe zur Prüfsummenberechnung gezeigt.
  • 4 zeigt ein Ablaufdiagramm eines Verfahrens zum Bestimmen von Prüfsummen gemäß einem Ausführungsbeispiel. Dabei ist ein exemplarisches Ablaufdiagramm für einen Einwegecache 100 bzw. einen Mehrwegecache 100 mit MRU-Verdrängungsstrategie gezeigt.
  • Neben dem Cache 100 sind die CPU 102, eine Vorrichtung 306 zum Bestimmen von Prüfsummen für den Cache 100 in Form einer Prüfsummeneinheit und eine Dateneinheit 430 in Form einer Cacheline 430 dargestellt.
  • Bezüglich der Cacheline 430 ist der Zustand 222 „unmodified“, der Zustand 224 „modified_checksum_pending“, der Zustand 226 „modified_checksum_valid“ und der Zustand 220 „invalid“ gezeigt.
  • Eine Zeitdauer 432 tchecksum_duration zum Ermitteln der Prüfsumme ist dabei kleiner als die Zeitdauer 434 tcache_only_min_MRU.
  • Der Pfeil 450 kennzeichnet das Schreiben von Daten von der CPU 102 in den Cache 100. Dabei handelt es sich um einen sogenannten cache hit 451 oder Treffer. Der Pfeil 452 kennzeichnet das durch den cache hit 451 hervorgerufene Verändern der Cacheline 430 . Der Pfeil 453 kennzeichnet den Anstoß der Prüfsummenberechnung durch die Vorrichtung 306. Nach Ermittlung der Prüfsumme wird die Cacheline 430 durch den Zustand 226 als verändert mit gültiger Prüfsumme markiert, was durch den Pfeil 454 angedeutet ist.
  • Gemäß einem Ausführungsbeispiel kennzeichnet der Pfeil 453 das Einlesen der durch den durch den Pfeil 450 angedeuteten Zugriff des Prozessors 102 veränderte Cacheline 430. Durch den Balken 455 ist das Ermitteln der Prüfsumme für die als verändert markierte Cacheline 430 dargestellt. Durch den Pfeil 454 wird das Ergänzen der als verändert markierten Cacheline 430 um die ermittelte Prüfsumme sowie das markieren der Cacheline 430 als verändert mit gültiger Prüfsumme angedeutet.
  • Der in 4 gezeigte Pfeil 460 kennzeichnet das Lesen oder Schreiben von Daten. Dabei handelt es sich um einen sogenannten cache miss 461. Der Pfeil 462 kennzeichnet das Zurückschreiben von Daten und der Pfeil 463 das Laden einer neuen Cacheline 430.
  • Somit zeigt 4 ein exemplarisches Ablaufdiagramm zur Berechnung der Hauptspeicherprüfsumme innerhalb der Zeitdauer 434 tcache_only_min_MRU im Falle eines Einwegecaches 100 bzw. eines Mehrwegecaches 100 mit MRU-Verdrängungsstrategie. Zunächst befindet sich die Cacheline 430 im Zustand unmodified. Durch einen schreibenden Zugriff der CPU 102 auf diese Cacheline 430 wechselt diese in den Zustand 224 „modified_checksum_pending“ und die Berechnung der Hauptspeicherprüfsumme wird gestartet. Im Sinne einer Rekodierung werden im Rahmen der Berechnung der Hauptspeicherprüfsumme die Datenwortbezogenen Prüfsummen ausgewertet und im Falle einer Abweichung ein Fehler signalisiert. Der Abschluss der Berechnung der Hauptspeicherprüfsumme und der damit verbundene Übergang des Zustands 224 zu dem Zustand 226 „modified_checksum_valid“ erfolgt vor Ablauf der Zeitspanne tcache_only_min_MRU wodurch eine nachfolgende Verdrängung der Cacheline 430 ohne Zeitverzug stattfinden kann.
  • 5 zeigt ein Ablaufdiagramm eines Verfahrens zum Bestimmen von Prüfsummen gemäß einem Ausführungsbeispiel. Gezeigt ist ein exemplarisches Ablaufdiagramm zur Berechnung der Hauptspeicherprüfsummen zweier Cachelines 430, 530 im Falle eines Zweiwegecaches 100 mit LRU-Verdrängungsstrategie. Die beiden Cachelines 430, 530 befinden sich zunächst im Zustand 222 „unmodified“. Beide Cachelines 430, 530 werden der Reihe nach durch die CPU 102 modifiziert. Aufgrund der Tatsache, dass der Cache 100 aus zwei Wegen besteht und LRU als Verdrängungsstrategie eingesetzt wird, kann die zweite Modifikation nicht zur Verdrängung der ersten Cacheline 530 führen. Dementsprechend steht für die Berechnung der jeweiligen Hauptspeicherprüfsumme eine längere Zeitspanne tcache_only_min_LRU zur Verfügung.
  • Das Ablaufdiagramm entspricht dem anhand von 4 beschriebenen Diagramm, mit dem Unterschied, dass zwei Cachelines 430, 530 gezeigt sind. Die Vorrichtung zum Bestimmen von Prüfsummen für den Cache 100 umfasst nun eine erste Prüfsummeneinheit 308, die der ersten Cacheline 530 zugeordnet ist und eine zweite Prüfsummeneinheit 309, die der zweiten Cacheline 430 zugeordnet ist.
  • Korrespondierend zu den bereits anhand von 4 beschriebenen Pfeilen 450, 451, 452, 453, 460, 461, 462, 463, die sich in 5 auf die zweite Cacheline 430 beziehen, zeigt 5 einen Pfeil 550, der ein weiteres Schreiben von Daten von der CPU 102 in den Cache 100 kennzeichnet. Dabei handelt es sich wiederum um einen cache hit 551. Der Pfeil 552 kennzeichnet das durch den chache hit 551 hervorgerufene Verändern der ersten Cacheline 530. Der Pfeil 553 kennzeichnet den Anstoß der Prüfsummenberechnung durch die Prüfsummeneinheit 308. Nach Ermittlung der Prüfsumme wird die erste Cacheline 530 durch den Zustand 226 als verändert mit gültiger Prüfsumme markiert.
  • Gemäß einem Ausführungsbeispiel kennzeichnet der Pfeil 553 das Einlesen der durch den durch den Pfeil 550 angedeuteten Zugriff des Prozessors 102 veränderten weiteren Cacheline 530. Durch den Balken 555 ist das Ermitteln der weiteren Prüfsumme für die als verändert markierte Cacheline 530 dargestellt.
  • 6 zeigt eine schematische Darstellung einer Vorrichtung 306 zum Bestimmen von Prüfsummen gemäß einem Ausführungsbeispiel. Dabei kann es sich um eine Vorrichtung 306 handeln, wie sie im Vorangegangenen beschrieben ist. Die Vorrichtung 306 kann eine oder mehrere Prüfsummeneinheiten umfassen, wobei in dem in 6 gezeigten Ausführungsbeispiel eine Prüfsummeneinheit vorgesehen ist.
  • Die Vorrichtung 306 umfasst eine Einleseeinrichtung 670, die ausgebildet ist, um eine durch einen Zugriff des Prozessors als verändert markierten Dateneinheit des Pufferspeichers einzulesen. Dabei kann es sich um eine sich in dem Zustand „modified_checksum_pending“ befindliche Cacheline handeln. Ferner umfasst die Vorrichtung 306 eine Ermittlungseinrichtung 672, die ausgebildet ist, um eine Prüfsumme für die von der Einleseeinrichtung 670 eingelesene Dateneinheit zu ermitteln sowie eine Ergänzungseinrichtung 674, die ausgebildet ist, um die Dateneinheit um die Prüfsumme zu ergänzen und als verändert mit gültiger Prüfsumme zu markieren.
  • Gemäß einem Ausführungsbeispiel ist die Einleseeinrichtung 670 ausgebildet, um die Cacheline über eine interne Schnittstelle des Pufferspeichers einzulesen und die Ergänzungseinrichtung 674 ist ausgebildet, um die Prüfsumme über die oder eine weitere interne Schnittstelle des Pufferspeichers auszugeben.
  • Die Prüfung der von der Vorrichtung 306 bestimmten Hauptspeicherprüfsumme beim Laden einer Cacheline zur Erkennung von etwaigen Fehlern im Speicher kann durch die gleichen Prüfsummenberechnungseinheiten, also Einheiten der Vorrichtung 306 erfolgen. Der Ablauf der Prüfung kann sich aber abhängig von den Fähigkeiten der CPU, des Caches und den Anforderungen bzgl. funktionaler Sicherheit an das Gesamtsystem unterscheiden.
  • Verfügt der Cache über einen Prefetcher, der Daten spekulativ (voraus-) laden kann, kann die Plausibilisierung der Hauptspeicherprüfsumme und ggf. die Korrektur korrigierbarer Fehler bereits erfolgen, bevor die Daten von der CPU aus dem Cache abgerufen werden. In diesem Fall wirkt sich die Auswertung der Hauptspeicherprüfsumme nicht negativ auf die Systemperformanz aus.
  • Ist kein Prefetcher vorhanden sondern werden stattdessen die Daten erst dann geladen, wenn sie tatsächlich von der CPU benötigt werden, gibt es zwei Optionen für den Ablauf der Plausibilisierung.
  • Verfügt die CPU über die Fähigkeit spekulativ ausgeführte Befehle rückgängig zu machen, dann kann die Auswertung der Hauptspeicherprüfsumme asynchron erfolgen. Dies bedeutet, dass die Daten noch vor der Auswertung der Hauptspeicherprüfsumme an die CPU weitergeleitet werden um die Systemperformanz nicht zu beeinflussen. Wird im Rahmen der Auswertung ein korrigierbarer Fehler festgestellt, werden die von den noch nicht korrigierten Daten betroffenen Befehle verworfen und mit den korrigierten Daten wiederholt. Wird bei der Auswertung ein nicht korrigierbarer Fehler festgestellt, wird das System abgeschaltet.
  • Verfügt die CPU nicht über die Fähigkeit spekulativ ausgeführte Befehle rückgängig zu machen und ist die Abschaltung des Gesamtsystems bei einer verzögerten Fehlerkorrektur nicht möglich, muss die Auswertung der Prüfsumme synchron erfolgen.
  • Wenn eine Fehlererkennung und eine Abschaltung des Systems innerhalb einer maximalen Zeit, z.B. einer Fehlertoleranzzeit, ausreicht, kann auf die Auswertung der Hauptspeicherprüfsumme beim Laden einer Cachezeile verzichtet werden und stattdessen durch eine separate Einheit der (sicherheitsrelevante) Speicherinhalt zyklisch auf Plausibilität geprüft werden.
  • Umfasst ein Ausführungsbeispiel eine „und/oder“-Verknüpfung zwischen einem ersten Merkmal und einem zweiten Merkmal, so ist dies so zu lesen, dass das Ausführungsbeispiel gemäß einer Ausführungsform sowohl das erste Merkmal als auch das zweite Merkmal und gemäß einer weiteren Ausführungsform entweder nur das erste Merkmal oder nur das zweite Merkmal aufweist.

Claims (14)

  1. Verfahren zum Bestimmen von Prüfsummen für einen Pufferspeicher (100) für einen Prozessor (102), wobei das Verfahren die folgenden Schritte umfasst: Einlesen (453) einer durch einen Zugriff des Prozessors (102) als verändert markierten Dateneinheit (430) des Pufferspeichers (100); Ermitteln (432) einer Prüfsumme für die Dateneinheit (430) unter Verwendung einer Prüfsummeneinheit (308) des Pufferspeichers (100); und Ergänzen (454) der Dateneinheit (430) um die Prüfsumme und markieren der Dateneinheit (430) als verändert mit gültiger Prüfsumme.
  2. Verfahren gemäß Anspruch 1, bei dem die Schritte (432, 454) des Ermittelns und Ergänzen innerhalb einer Zeitspanne (228) durchgeführt werden, die minimal zwischen dem Zugriff des Prozessors (102) und einem Zurückschreiben (462) der Dateneinheit (430) in einen Hauptspeicher (104) liegt.
  3. Verfahren gemäß Anspruch 2, bei dem zumindest je zwei Schritte (432, 454) des Ermittelns und Ergänzens innerhalb der Zeitspanne (228) durchgeführt werden.
  4. Verfahren gemäß einem der vorangegangenen Ansprüche, mit einem weiteren Schritt (463) des Einlesens einer durch einen weiteren Zugriff des Prozessors (102) als verändert markierten weiteren Dateneinheit (530) des Pufferspeichers (100), einem weiteren Schritt des Ermittelns einer weiteren Prüfsumme für die weitere Dateneinheit (530) unter Verwendung einer weiteren Prüfsummeneinheit (308) des Pufferspeichers (100), und einem weiteren Schritt des Ergänzens der weiteren Dateneinheit (530) um die Prüfsumme und des Markierens der weiteren Dateneinheit (530) als verändert mit gültiger Prüfsumme.
  5. Verfahren gemäß einem der vorangegangenen Ansprüche, mit einem Schritt des Zählens einer Anzahl von Zugriffen des Prozessors (102) auf die Dateneinheit (430), wobei der Schritt (432) des Ermittelns abhängig von der Anzahl der Zugriffe durchgeführt wird.
  6. Verfahren gemäß einem der vorangegangenen Ansprüche, bei dem die Dateneinheit (430) eine Pufferspeicherzeile ist.
  7. Verfahren gemäß einem der vorangegangenen Ansprüche, bei dem in einem Schritt des Ladens einer Dateneinheit (430) die Prüfsumme der Dateneinheit (430) unter Verwendung der Prüfsummeneinheit (308) zum Überprüfen der Dateneinheit (430) auf Integrität verwendet wird.
  8. Vorrichtung (306) zum Bestimmen von Prüfsummen für einen Pufferspeicher (100) für einen Prozessor (102), wobei die Vorrichtung die folgenden Merkmale aufweist: eine Einleseeinrichtung (670), die ausgebildet ist, um eine durch einen Zugriff des Prozessors (102) als verändert markierten Dateneinheit (430) des Pufferspeichers (100) einzulesen; eine Ermittlungseinrichtung (672), die ausgebildet ist, um eine Prüfsumme für die Dateneinheit (430) zu ermitteln; und eine Ergänzungseinrichtung (674), die ausgebildet ist, um die Dateneinheit (430) um die Prüfsumme zu ergänzen und als verändert mit gültiger Prüfsumme zu markieren.
  9. Pufferspeicher (100) für einen Prozessor (102), wobei der Pufferspeicher (100) eine Vorrichtung (306) gemäß Anspruch 8 zum Bestimmen von Prüfsummen für den Pufferspeicher (100) umfasst.
  10. Pufferspeicher (100) gemäß Anspruch 9, der als eine die Vorrichtung (306) umfassende integrierte Schaltung ausgeführt ist.
  11. Pufferspeicher (100) gemäß einem der Ansprüche 9 oder 10, mit einer Prozessorschnittstelle (110) zum Ermöglichen eines Zugriffs des Prozessors (102) auf Dateneinheiten (430, 530) des Pufferspeichers (100) und einer Hauptspeicherschnittstelle (112) zum Laden und/oder Zurückschreiben von Dateneinheiten (430, 530) in einen Hauptspeicher (104).
  12. Prozessor (102) mit einem Pufferspeicher (100) gemäß einem der Ansprüche 9 bis 11.
  13. Computerprogramm, das dazu eingerichtet ist, das Verfahren gemäß einem der vorangegangenen Ansprüche auszuführen und/oder anzusteuern.
  14. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 13 gespeichert ist.
DE102017212181.5A 2017-07-17 2017-07-17 Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor Pending DE102017212181A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102017212181.5A DE102017212181A1 (de) 2017-07-17 2017-07-17 Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor
US16/631,484 US11138067B2 (en) 2017-07-17 2018-07-13 Method and device for determining check sums, buffer memory and processor
PCT/EP2018/069141 WO2019016099A1 (de) 2017-07-17 2018-07-13 Verfahren und vorrichtung zum bestimmen von prüfsummen, pufferspeicher und prozessor
CN201880047836.3A CN110945487B (zh) 2017-07-17 2018-07-13 用于确定校验和的方法和设备、缓冲存储器和处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017212181.5A DE102017212181A1 (de) 2017-07-17 2017-07-17 Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor

Publications (1)

Publication Number Publication Date
DE102017212181A1 true DE102017212181A1 (de) 2019-01-17

Family

ID=62909547

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017212181.5A Pending DE102017212181A1 (de) 2017-07-17 2017-07-17 Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor

Country Status (4)

Country Link
US (1) US11138067B2 (de)
CN (1) CN110945487B (de)
DE (1) DE102017212181A1 (de)
WO (1) WO2019016099A1 (de)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233616A (en) * 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
US7437597B1 (en) * 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
US7958436B2 (en) * 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
US8719664B1 (en) * 2011-04-12 2014-05-06 Sk Hynix Memory Solutions Inc. Memory protection cache
EP2728477A1 (de) 2012-11-05 2014-05-07 Siemens Aktiengesellschaft Verfahren und Logikschaltung zum Kopieren von Daten, Speichervorrichtung und Datenverarbeitungsvorrichtung

Also Published As

Publication number Publication date
CN110945487B (zh) 2024-03-08
US11138067B2 (en) 2021-10-05
CN110945487A (zh) 2020-03-31
US20200210281A1 (en) 2020-07-02
WO2019016099A1 (de) 2019-01-24

Similar Documents

Publication Publication Date Title
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE112005002180T5 (de) Lösen von Cachekonflikten
DE19929796B4 (de) Vorrichtung und Verfahren zum erneuten Schreiben von Daten aus einem flüchtigen Speicher in einen nichtflüchtigen Speicher
DE102006039747A1 (de) Verfahren für Kontextzustandsmanagement
DE60206555T2 (de) Fehlererkennung von Austauschdaten
DE102017209856A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE102017212181A1 (de) Verfahren und Vorrichtung zum Bestimmen von Prüfsummen, Pufferspeicher und Prozessor
DE4136729C2 (de) Cache-Steuereinrichtung
DE102019212813A1 (de) Verfahren und Überprüfungseinheit zum Überprüfen von Daten in einer Speichereinheit eines System-on-a-Chip
DE102018219700B4 (de) Steuervorrichtung
WO2007017390A1 (de) Verfahren und vorrichtung zur steuerung eines speicherzugriffs bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP1915689A1 (de) Verfahren xmd vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
DE102005040917A1 (de) Datenverarbeitungssystem und Betriebsverfahren dafür
DE2355814A1 (de) Kanalzugriffseinrichtung fuer eine hierarchische speicheranordnung
EP1915685B1 (de) Verfahren und vorrichtung zur steuerung eines speicherzugriffs bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
DE102019208129B4 (de) Elektronische Steuereinheit
WO2007017365A1 (de) Verfahren und vorrichtung zur steuerung eines speicherzugriffs bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP1818817A2 (de) Ausführung von Patches mittels eines Caches
DE102014203963A1 (de) Verfahren und Vorrichtung zum Kontrollieren eines Speichers
DE10128996B4 (de) Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers
DE602004008142T2 (de) Multiprozessor-"Write-Into-Cache"-System, das einen leistungsfähigen Zugang zu einer Vielzahl von Gatterworten enthält
DE102022127544A1 (de) Elektronische Vorrichtung, elektronisches System, Verfahren zum Betreiben einer elektronischen Vorrichtung und Verfahren zum Betreiben eines elektronischen Systems
DE102022102412A1 (de) Störungsdetektion für einen elektronischen Verarbeitungsschaltkreis mit einer arithmetisch-logischen Einheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication