DE10303752A1 - Steuerung einer Cachespeicheranordnung mit zufälligen Zurückschreibevorgängen - Google Patents

Steuerung einer Cachespeicheranordnung mit zufälligen Zurückschreibevorgängen Download PDF

Info

Publication number
DE10303752A1
DE10303752A1 DE10303752A DE10303752A DE10303752A1 DE 10303752 A1 DE10303752 A1 DE 10303752A1 DE 10303752 A DE10303752 A DE 10303752A DE 10303752 A DE10303752 A DE 10303752A DE 10303752 A1 DE10303752 A1 DE 10303752A1
Authority
DE
Germany
Prior art keywords
memory
cache
data
date
cache memory
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
DE10303752A
Other languages
English (en)
Other versions
DE10303752B4 (de
Inventor
Michael Smola
Gerd Dipl.-Phys. Dirscherl
Berndt Dr.Rer.Nat. Gammel
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10303752A priority Critical patent/DE10303752B4/de
Publication of DE10303752A1 publication Critical patent/DE10303752A1/de
Application granted granted Critical
Publication of DE10303752B4 publication Critical patent/DE10303752B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Eine erfindungsgemäße Vorrichtung zur Steuerung einer Speicheranordnung mit einem Speicher (12) und einem dem Speicher (12) zugeordneten Cache-Speicher (14) umfasst eine Einrichtung (16c) zum Zurückschreiben von Daten aus dem Cache-Speicher (14) in den Speicher (12) unabhängig von einer Verdrängung dieser Daten aus dem Cache-Speicher (14) Der Kerngedanke der vorliegenden Erfindung besteht darin, dass die Korrelation zwischen dem Ereignis von Zurückschreibevorgängen einerseits, den dieselben auslösenden collisions bzw. Kollisionen aufgrund beispielsweise Lade/Speicher-Zugriffen und dem ursprünglichen Schreiben der jeweiligen Datenblöcke bzw. Daten in den Cache, ausgelöst durch beispielsweise einen Lade-/Speicher-Vorgang, andererseits zumindest teilweise, bei geeigneten Zusatzvorkehrungen aber auch vollständig zerstört, und damit die Sicherheit vor DPA-Angriffen erhöht werden kann, wenn unabhängig von einer Verdrängung von Daten aus dem Cache diese Daten aus dem Cache in den Speicher zurückgeschrieben werden.

Description

  • Die vorliegende Erfindung bezieht sich auf Speicheranordnungen mit einem Speicher einer hohen Hierarchieebene, einem Cache, und einem Speicher einer niedrigen Hierarchieebene, wie z.B. einem weiteren Cache und oder einem Hauptspeicher, und insbesondere auf die Steuerung der Zurückschreibevorgänge von dem Speicher höherer Hierarchieebene in den Speicher niedrigerer Hierarchieebene, um die Aktualität der Daten in dem Speicher niedrigerer Hierarchie auch in dem Fall einer Verdrängung eines modifizierten Datums aus dem Speicher hoher Hierarchie sicherzustellen. In Ausführungsbeispielen bezieht sich die vorliegende Erfindung auf eine Verbesserung der Sicherheit von Sicherheitscontrollern, wie z.B. in Chipkarten, gegen DPA- (differential power analysis) Attacken.
  • Heutige Prozessorsysteme enthalten in der Regel einen Cache bzw. einen Cachespeicher für Daten. Dieser wird auch gelegentlich in Form sogenannter Unified Caches bzw. vereinter Caches für Instruktionen und Daten gemeinsam genutzt. Caches werden nicht nur aus performance- bzw. leistungssteigernden Gründen, sondern auch zur Reduktion der elektrischen Verlustleistung eingesetzt. Bei Caches unterscheidet man solche der Writethrough- (Schreibdurchgriff-) Architektur und solche der Writeback- (Rückschreibe-) Architektur. Bei Writeback-Architekturen werden Daten in dem Cache, die von der CPU (central processing unit) modifiziert wurden, wie z.B. durch einen Speicher- bzw. Store-Vorgang, nicht unmittelbar in den Speicher der niedrigeren Hierarchieebene zurückgeschrieben, sondern die Modifikationen an den Daten werden zunächst nur in dem Speicher der höheren Hierarchieebene bzw. dem Cache durchgeführt. Zur Sicherstellung des Abgleichs zwischen Cache einerseits und Speicher der niedrigeren Hierarchieebene andererseits werden jedoch die modifizierten Daten als dirty bzw. manipuliert markiert. Erst wenn eine Verdrängung eines als dirty markierten Datenblocks durch eine sogenannte Kollision (collision) erzwungen wird, d.h. dann, wenn ein anderer Datenblock an dieser Position für eine Lese- oder Schreib- bzw. Load/Store-Operation in dem Cache eingelagert werden soll, wird der als dirty markierte Datenblock in den Speicher der niedrigeren Hierarchieebene zurückgeschrieben, um diesen zu aktualisieren. Dies liefert im allgemeinen einen Performance-Vorteil gegenüber der Writethrough-Strategie, bei der Daten im Falle eines Speicherbefehls von der CPU, also einer Modifikation der Daten, sowohl in den Cache als auch immer sofort in den Speicher der niedrigeren Hierarchieebene zurückgeschrieben werden, da bei der Writeback-Strategie Datenlokalität ausgenutzt wird und damit die Anzahl der Writebacks bzw. Rückschreibevorgänge minimiert wird.
  • Aufgrund der Performance-Vorteile, die die Writeback-Strategie bietet, ist es wünschenswert, diese Strategie trotz ihres erhöhten Aufwandes auch bei Sicherheitscontrollern einzusetzen, wie z.B. solchen, die in Chips von Chipkarten integriert sind. Nachteilhaft an der Verwendung dieser Strategie in Sicherheitscontrollern ist jedoch, dass durch ihre Verwendung die Sicherheitscontroller anfälliger für DPA-Angriffe sind. Bei DPA-Angriffen werden für einen Algorithmus gemessene Stromprofile des Controllers statistisch ausgewertet, wobei für eine Vielzahl von Programmdurchläufen aus der Korrelation von systematischer Datenvariation und jeweiligem Ladungsintegral Rückschlüsse auf die verarbeitete geheime bzw. sensible Information gezogen werden können. DPA-Angriffen kommt zugute, dass sich im allgemeinen ein direkter Zugriff auf den Speicher der niedrigeren Hierarchieebene, wie z.B. ein Cache einer niedrigeren Cache-Hierarchieebene oder aber den Hauptspeicher, von einem direkten Cache-Zugriff, d.h. einen Zugriff auf den Speicher der höheren Hierarchieebene, im Stromverbrauch unterscheidet. Ein DPA-Korrelationsangriff ist hiermit prinzipiell möglich, wenn bei einem gegebenen Algorithmus eine Korrelation zwischen Datenvariati on und Zugriffstyp, d.h. Zugriff auf den Cache oder Zugriff auf den Speicher niedriger Hierarchieebene, besteht. Gleichwohl bei einem Writeback-Cache dieser Zusammenhang im allgemeinen äußerst komplex ist, da die gewählte Ersetzungs-, Verdrängungs- bzw. Replacement-Strategie, wie z.B. die LRU-(least-recently-used = am längsten nicht mehr verwendet) Strategie, abhängig von der Zugriffsadresse, der Reihenfolge und der Anzahl der Zugriffe auf die Datenblöcke in dem Cache entscheidet, wann und ob der Writeback durchgeführt wird, und gleichwohl das Zurückschreiben eines gegebenen Datums erst extrem zeitverzögert durch spätere Operationen, wie z.B. load oder store, bezüglich eines anderen Datums ausgelöst werden kann, ist eine Korrelation auch bei Writeback-Architekturen gegeben. Ist diese Korrelation systematisch, korreliert somit die bei den Writeback- bzw. Zurückschreibevorgängen auftretende Signatur im elektrischen Strom, der beim DPA-Angriff erfasst wird, mit den verarbeiteten Dateninhalten. Über diesen Mechanismus können dann sicherheitsrelevante Informationen, wie z.B. geheime Schlüssel, eruiert werden. Eine Kollision mit einem als dirty markierten Datenblock kann also zu einem erfolgreichen DPA-Angriff führen.
  • Da der vollständige Verzicht auf Caches aus Gründen des hieraus folgenden massiven Performance-Verlustes und des hieraus resultierenden stark erhöhten Strombedarfs keine realistische Alternative zur Verwendung von Caches darstellt, besteht ein Bedarf nach Steuerungsschemata für hierarchisch strukturierte Speicheranordnungen, die bei vergleichbarer Performance ein höheres Maß an Sicherheit gegen DPA-Angriffe ermöglichen.
  • Die Aufgabe der vorliegenden Erfindung besteht folglich darin, eine Vorrichtung und ein Verfahren zur Steuerung einer Speicheranordnung mit Cache und einem Speicher zu schaffen, die bei vergleichbarer Leistungsfähigkeit höhere Sicherheit gegen DPA-Angriffe ermöglichen.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 10 gelöst.
  • Eine erfindungsgemäße Vorrichtung zur Steuerung einer Speicheranordnung mit einem Speicher und einem dem Speicher zugeordneten Cache-Speicher umfasst eine Einrichtung zum Zurückschreiben von Daten aus dem Cache-Speicher in den Speicher unabhängig von einer Verdrängung dieser Daten aus dem Cache-Speicher.
  • Ein erfindungsgemäßes Verfahren zur Steuerung einer Speicheranordnung mit einem Speicher und einem dem Speicher zugeordneten Cache-Speicher, umfasst das Zurückschreiben von Daten aus dem Cache-Speicher in den Speicher unabhängig von einer Verdrängung dieser Daten aus dem Cache-Speicher.
  • Der Kerngedanke der vorliegenden Erfindung besteht darin, dass die Korrelation zwischen dem Ereignis von Zurückschreibevorgängen einerseits, den dieselben auslösenden collisions bzw. Kollisionen aufgrund beispielsweise Lade/Speicher-Zugriffen und dem ursprünglichen Schreiben der jeweiligen Datenblöcke bzw. Daten in den Cache ausgelöst durch beispielsweise einen Lade-/Speicher-Vorgang andererseits zumindest teilweise, bei geeigneten Zusatzvorkehrungen aber auch vollständig zerstört, und damit die Sicherheit vor DPA-Angriffen erhöht werden kann, wenn unabhängig von einer Verdrängung von Daten aus dem Cache diese Daten aus dem Cache in den Speicher zurückgeschrieben werden. Anders ausgedrückt, werden einige oder alle Daten zwischen dem Zeitpunkt, da dieselben in den Cache-Speicher gespeichert wurden, und dem Zeitpunkt, da dieselben durch eine Kollision verdrängt werden, unmotiviert, d.h. ohne Vorliegen einer Kollision, zurückgeschrieben. Bei geeigneter Wahl der durch die unmotivierten, im folgenden als randomisierten bezeichneten, Rückschreibevorgänge zurückgeschriebenen Daten bzw. Cache-Blöcke und geeigneter Einstellung der Auftrittswahrscheinlichkeit bzw. Häufigkeit der randomisierten Rückschreibevorgänge kann das Auftreten von durch Kollisionen erzwungenen Rückschreibevorgängen nahezu vollständig und bei weiteren Vorkehrungen sogar vollständig verhindert werden, so dass die Korrelation der am Stromprofil erkennbaren Rückschreibevorgänge mit dem Zeitpunkt des Schreibens der Daten in den Cache sowie dem Zeitpunkt der Kollisionen nahezu vollständig bzw. vollständig zerstört ist.
  • Bevorzugte Ausgestaltungen der vorliegenden Erfindung gehen aus den abhängigen Patentansprüchen hervor.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockschaltbild einer exemplarischen Controlleranordnung aus CPU, Speicheranordnung mit Speicher und zugehörigem Cache-Speicher und einer Cache-Steuerung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 2 ein Flussdiagramm zur Veranschaulichung der Funktionsweise der Cache-Steuerung nach 1; und
  • 3 ein Flussdiagramm zur Veranschaulichung randomisierter Rückschreibevorgänge gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 1 zeigt zunächst eine exemplarische Controlleranordnung aus CPU 10, einer Speicheranordnung bestehend aus einem Speicher 12 und einem zugeordneten Daten-Cache-Speicher 14 und einer Cache-Steuerung 16 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Obwohl die Anordnung von 1 lediglich einen Datencache 14 enthält, ist klar, dass dieselbe Anordnung neben dem Datencache 14 auch einen Befehlscache 14 zur Speicherung von Instruktionen für einen schnellen Zugriff auf Instruktionen aufweisen kann, oder dass der Cache 14 für sowohl Daten als auch Instruktionen verwendet wird.
  • Der Cache-Speicher 14 besteht aus mehreren Cache-Blöcken 141 14n , in denen aktuelle Werte für Daten bzw. Daten-Blöcke in dem Speicher 12 für einen schnellen Zugriff durch die CPU 10 gespeichert sind. Cache 14 und Speicher 12 sind miteinander über einen Datenpfad 18, wie z.B. ein Bussystem, miteinander verbunden. Über den Datenweg 18 werden Rückschreibevorgänge durchgeführt, d.h. Vorgänge, in welchen der Wert eines Datums bzw. Datenblocks in dem Speicher 12 durch den aktuellen Wert in dem Cache 14 aktualisiert wird. Umgekehrt erhält der Cache 14 über den Datenpfad 18 die Werte von Daten, deren aktuelle Werte noch nicht in dem Cache 14 gespeichert sind, und die dann wiederum andere Daten in dem Cache 14 verdrängen, wie es im folgenden noch näher erläutert wird.
  • Der Cache 14 ist ferner mit der CPU 10 über einen weiteren Datenpfad 20 verbunden, über welchen einerseits die CPU 10 in Lesezugriffen aktuelle Werte von Daten bzw. Datenblöcken erhält und andererseits der Cache 14 aktualisierte bzw. modifizierte Werte von der CPU 10 erhält, beispielsweise im Rahmen von Store- bzw. Speicher-Vorgängen.
  • Die Cache-Steuerung 16 ist sowohl mit der CPU 10 als auch mit dem Cache 14 verbunden. Die CPU 10 signalisiert der Cache-Steuerung 16 Zugriffe auf die Speicheranordnung aus Speicher 12 und Cache 14. Der Cache 14 signalisiert der Cache-Steuerung 16 Informationen über die Verdrängung von aktuellen Datenwerten aus den Cache-Blöcken 141 14n . Anhand der Informationen von der CPU 10 und dem Cache 14 führt die Cache-Steuerung 16 in einer LRU-Tabelle 22 und in Dirty-Bits 24 Buch über die Reihenfolge, in der auf die einzelnen Cacheblöcke zuletzt zugegriffen wurde, und darüber, ob die Inhalte der Cache-Blöcke zwischen Eintragung und Verdrängung modifiziert wurden oder nicht. Insbesondere dient die LRU-Tabelle dazu, in dem Fall einer Kollision den zu verdrängenden Cache- Block zu ermitteln, während die Bedeutung der Dirty-Bits darin besteht, für jeden Cache-Block einzeln anzuzeigen, ob der darin befindliche Datenwert für ein Datum in dem Speicher 12 seit dem Zeitpunkt, da derselbe unter Verdrängung eines anderen Datums in den Cache-Speicher 14 gelangt ist, d.h. seit seiner Einlagerung in den Cache 14, durch beispielsweise einen Speichervorgang durch die CPU 10 modifiziert worden ist oder nicht.
  • Die Cache-Steuerung 16 übernimmt im Hinblick auf die Steuerung von Zugriffen auf die Speicheranordnung aus Speicher 12 und Cache 14 verschiedene Aufgaben, die von einer Lade/Speicher-Steuerung 16a, einer Ersetzungssteuerung 16b und einer Zufallszurückschreibesteuerung 16c übernommen werden, und deren Funktionsweisen aus der Beschreibung zu 2 und 3 deutlich werden. Die Zufallszurückschreibesteuerung 16c ist mit einem Zufallsgenerator 26 verbunden, um von demselben Zufallswerte zu erhalten oder anfordern zu können, die ein in zeitlicher Hinsicht und in Hinblick auf die Auswahl der Cache-Blöcke zufälliges Zurückschreiben von Datenwerten in den Cache-Blöcken 141 14n ermöglichen sollen, wie es Bezug nehmend auf 3 anschließend beschrieben wird.
  • Nachdem im Vorhergehenden der Aufbau der Anordnung von 1 beschrieben worden ist, wird im folgenden die Funktionsweise der Cache-Steuerung 16 bzw. ihrer verschiedenen Teilsteuerungen 16a16c beschrieben. Insbesondere zeigt 2 den Ablauf von Verfahrensschritten, die in der Anordnung von 1 auftreten, wenn ein Zugriff auf ein Datum in der Speicheranordnung aus Speicher 12 und Cache 14 beantragt wird, vorliegend von der CPU 10.
  • Nachdem in einem Schritt 100 beispielsweise die CPU 10 von dem Cache 14 den Zugriff auf ein Datum beantragt hat, prüft der Cache 14 in einem Schritt 102, ob für das betreffende Datum ein aktueller Wert in einem der Cache-Blöcke enthalten ist. Die Überprüfung wird beispielweise assoziativ bzw. inhaltsadressiert auf der Basis der physikalischen Seitenadresse, an der der betreffende Datenblock im Speicher 12 gespeichert ist, oder, in dem Fall einer virtuellen Adressierung, eventuell anhand einer entsprechenden logischen Adresse durchgeführt. Ist ein aktueller Wert des gesuchten Datenblocks bereits im Cache-Speicher 14 enthalten, liegt also eine Cache-Hit bzw. ein Cache-Treffer vor, führt der Cache 14 den Zugriff an dem entsprechenden Cache-Block 141 14n durch, in dem dieser Datenblock gespeichert ist. Insbesondere wird in dem Fall eines Speichervorgangs der aktuellen Wert für das betreffende Datum modifiziert und in dem Fall eines Lese- bzw. Ladevorgangs der aktuelle Wert für das betreffende Datum an den den Zugriff Beantragenden, d.h. die CPU 10, gesendet.
  • Daneben aktualisiert die Cache-Steuerung 16 und genauer die Lade/Speicher-Steuerung 16a in einem Schritt 106 die LRU-Tabelle 22, die ja durch die CPU 10 oder, alternativ, über den Cache 14 über den Zugriff informiert ist. Die LRU-Tabelle 22 wird hierbei derart aktualisiert, dass sie jederzeit für jeden Cache-Block 141 14n anzeigt, auf welchen derselben zuletzt, zuletzt, als vorletztes,... am längsten nicht mehr zugegriffen worden ist.
  • Die Lade/Speicher-Steuerung 16a prüft in einem Schritt 108 ferner, ob es sich bei dem Zugriff um einen Speichervorgang handelt oder nicht, und markiert, falls dies der Fall ist, in einem Schritt 110 den gespeicherten aktuellen Wert als modifiziert. Hierzu stellt dieselbe das dem entsprechenden Cache-Block 141 14n , in welchem der aktuelle Wert gespeichert worden ist, zugeordnete Dirty-Bit entsprechend ein. Beispielsweise zeigt ein gesetztes bzw. auf den logischen Wert von 1 eingestelltes Dirty-Bit an, dass der Inhalt des zugeordneten Cache-Blocks gegenüber dem Inhalt in dem Speicher 12 modifiziert worden ist, während der logische Wert von 0 einen unmodifizierten Zustand anzeigt. Eine Einstellung kann ent fallen, falls das entsprechende Bit bereits auf den die Modifikation anzeigenden Wert eingestellt ist.
  • Die Schritte 104 – 110 betrafen den einfachen Fall, dass sich das betreffende Datum, auf den sich der Zugriff in dem Schritt 100 bezog, in dem Datencache 14 befand und beschäftigten sich im wesentlichen lediglich mit der Durchführung des beschleunigt durchgeführten Zugriffs und der Aktualisierung der LRU-Tabelle bzw. des entsprechenden Dirty-Bits. In diesem Fall, dass sich das entsprechende Datum also in dem Cache 14 befindet, sind durch die Schritte 104 – 110 alle notwendigen Steuermaßnahmen durch die Cache-Steuerung 16 erledigt 112, 114, woraufhin ein nächster Speicherzugriff auf die Speicheranordnung 12, 14 durchgeführt werden kann.
  • Ergibt die Prüfung im Schritt 102, dass sich für das Datum kein aktueller Wert in dem Cache 14 befindet, liegt also eine Cache-Miss bzw. ein Cache-Fehlschlag vor, beantragt der Cache 14 über den Datenweg 18 den Zugriff auf den Speicher 12, woraufhin in einem Schritt 114 der Zugriff auf das entsprechende Datum im Speicher 12 durchgeführt wird. In dem Fall eines Ladezugriffs gibt der Speicher 12 den Wert des Datums über den Datenweg 18 an den Cache 14 weiter. In dem Fall eines Speicherzugriffs speichert der Speicher 12 einen neuen Wert anstelle eines alten Werts für das Datum in dem Speicher 12. Alternativ könnte im Speicherzugriffsfall der Schritt 114 entfallen, indem der neue Wert in dem noch zu erörternden Schritt 122 einfach nur in einen zu verdrängenden Cache-Block gespeichert wird und dabei das entsprechende Dirty-Bit gleich auf einen eine Modifikation anzeigenden Wert eingestellt wird.
  • In jedem Fall ist der Cache 14 nach dem Schritt 114 in Kenntnis des aktuellen Wertes des betreffenden Datums. Um denselben in den Cache 14 eintragen zu können, bestimmt daraufhin in einem Schritt 116 die Ersetzungssteuerung 16b, welcher der Cache-Blöcke 141 14n gemäß der LRU-Strategie verdrängt werden soll. Hierzu bedient sich die Ersetzungssteuerung 16b der LRU-Tabelle 22, die ja denjenigen Block 141 14n anzeigt, welcher die längste Zeit nicht mehr verwendet worden ist. Dieser Block wird als der zu verdrängende Block bzw. das zu verdrängende Datum eingestuft. Freilich ist können auch andere Verdrängungsstrategien verwendet werden, wie z.B. die FIFO- (First-In-First-Out) Strategie, nach welcher der zuerst eingelagerte Datenblock bzw. der entsprechende Cache-Block verdrängt wird, oder LFU- (least-frequently-used) Strategie, nach welcher der Cache-Block verdrängt wird, welcher laut mitprotokollierten Zählern am wenigsten oft verwendet wurde.
  • Bevor jedoch das zu verdrängende Datum in dem Cache 14 durch den aktuellen Wert des neuen Datums, auf den sich der Zugriff bezieht, überschrieben werden kann, muss sichergestellt sein, dass der Speicher 12 den aktuellen Wert des zu verdrängenden Datums enthält. Zu diesem Zweck prüft die Lade/Speicher-Steuerung 16a in einem Schritt 118 das dem zu verdrängenden Datum zugeordnete Dirty-Bit 24, ob dasselbe einen eine Modifikation anzeigenden Wert aufweist, um festzustellen, ob der in dem Speicher 12 enthaltene Wert für das zu verdrängende Datum noch aktuell ist, oder ob der Inhalt des entsprechenden Cache-Blocks seit seiner letzten Eintragung in den Speicher 14 unter Verdrängung eines vorher dort gespeicherten Datums modifiziert worden ist und somit von dem im Speicher 12 gespeicherten Wert abweicht. Wird eine Modifikation angezeigt, weist die Lade/Speicher-Steuerung 16a den Cache-Speicher 14 an, den aktuellen Wert des zu verdrängenden Datums aus dem Cache 14 über den Datenweg 18 in den Speicher 12 zurückzuschreiben, was der Cache 14 in einem Schritt 120 durchführt. Zeigt das Dirty-Bit keine Modifikation an, unterbleibt das Zurückschreiben, da der Wert des zu verdrängenden Datums, wie er in dem Speicher 12 gespeichert ist, bereits mit dem Wert in dem Cache 14 übereinstimmt.
  • In einem Schritt 122 wird daraufhin das zu verdrängende Datum durch den aktuellen Wert für das interessierende Datum letzt endlich ersetzt bzw. verdrängt bzw. das interessierende Datum in den durch die LRU-Strategie angezeigten Cache-Block eingelagert, wonach die Cache-Steuerung 16 für den nächsten Zugriff bereit ist (124). Im Schritt 122 werden ferner die LRU-Tabelle 22 und das Dirty-Bit 24 aktualisiert bzw. vorinitialisiert, so dass die LRU-Tabelle angibt, dass der soeben beschriebene Cache-Block zuletzt verwendet wurde, und dass das zugeordnete Dirty-Bit angibt, der Inhalt dieses Cache-Blocks mit dem entsprechenden Inhalt für das verdrängende Datum übereinstimmt. Wie bereits bezugnehmend auf Schritt 114 erwähnt, ist es im Fall einer Verdrängung eines Datenblocks im Rahmen eines Speicherzugriffes auch möglich, anstelle der sofortigen Eintragung des zu speichernden Wertes in dem Speicher 12 das Dirty-Bit des zu verdrängenden Cache-Blocks auf einen eine Modifikation anzeigenden Wert vorzuinitialisieren.
  • Es sind die Zurückschreibevorgänge 120, die die Controlleranordnung von 1 anfällig gegenüber DPA-Angriffen machen, da einerseits die Zugriffe auf den Speicher 12 einen zu Speicherzugriffen auf den Cache 14 unterschiedlichen Stromverbrauch aufweisen und damit im Stromprofil der Controlleranordnung von 1 unterscheidbar sind, und andererseits die Zurückschreibevorgänge 120 auf eine wenngleich komplizierte, jedoch deterministische Weise von den handzuhabenden, gegebenenfalls sicherheitskritischen Daten, wie z.B. einem Kryptoschlüssel, abhängen. Zur Vermeidung der Zurückschreibevorgänge 120 und zur Zerstörung vorgenannter Korrelation ist in der Cache-Steuerung 16 die Zufallszurückschreibesteuerung 16c vorgesehen, deren Funktionsweise im folgenden Bezug nehmend auf 3 beschrieben wird.
  • Die Zufallszurückschreibesteuerung 16c, deren Funktionsweise in 3 dargestellt ist, führt einen zu den in 2 dargestellten Zugriffsprozessen unabhängigen Prozess aus, der parallel zu denselben ständig ausgeführt wird. Sinn und Zweck der Zurückschreibesteuerung 16c besteht darin, durch randomi sierte bzw. unmotivierte, d.h. ohne Kollision erzwungene, Rückschreibevorgänge bzw. durch das Auslösen von Rückschreibevorgängen unabhängig von einer Verdrängungssituation dafür zu sorgen, dass deterministische Rückschreibevorgänge 120 (2) kaum oder sogar gar nicht vorkommen.
  • Gemäß dem Ausführungsbeispiel von 3 wird zunächst in einem Schritt 200 durch die Zufallszurückschreibesteuerung 16c überprüft, ob ein den Datenpfad 18 bildendes Bussystem, über den Rückschreibevorgänge von Datenblöcken in den Cache-Blöcken 141 -14n stattfinden, eine freie Zeitscheibe bzw. einen freien Timeslot hat. Eine freie Zeitscheibe liegt vor, wenn für die betreffende Zeitscheibe keine andere Einheit als die Steuerung 16c bei einem Busmaster des Bussystems 18 einen Zugriff auf das Bussystem 18 beantragt. Liegt keine freie Zeitscheibe vor, würde der Busmaster des Bussystems 18 eine Arbitrierung vornehmen, in welcher er nach einem bestimmten Prioritätsschema einem der Zugriff beantragenden Einheiten Vorzug vor den anderen geben und den Zugriff auf das Bussystem für diese Zeitscheibe erteilen würde, während die anderen auf die nächste Zeitscheibe warten müssten, um erneut einen Zugriff zu beantragen.
  • Liegt eine freie Zeitscheibe vor, verwendet die Zufallszurückschreibesteuerung 16c in einem Schritt 202 ein Ergebnis des Zufallsgenerators 26, um eine zufällige, von einer gewissen Zufallsverteilung abhängige Entscheidung darüber zu treffen, ob nun ein randomisierter Rückschreibevorgang durchzuführen ist oder nicht, so dass nicht bei jeder freien Zeitscheibe einen randomisierten Rückschreibevorgang durchgeführt wird. Zeigt der Zufallsgenerator 26 eine positiv ausfallende Entscheidung bzw. ein positives Ergebnis an oder liegt keine freie Zeitscheibe vor, so beginnt der Prozess der Zufallszurückschreibesteuerung 16c bei der nächsten Zeitscheibe des Bussystems 18 von neuem.
  • Erst wenn sowohl eine freie Zeitscheibe vorliegt (200) und der Zufallsgenerator einen Rückschreibevorgang gewährt (202), wählt die Zufallszurückschreibesteuerung 16c in einem Schritt 204 den zurückzuschreibenden Daten-Block bzw. das zurückzuschreibende Datum aus potentiellen Kandidaten von Blöcken bzw. Daten aus und schreibt denselben in einem Schritt 206 über das Bussystem 18 zurück in den Speicher 12, um den Speicher 12 zu aktualisieren, woraufhin in einem Schritt 208 das Dirty-Bit, das dem Cache-Block zugeordnet ist, in welchem sich das unmotiviert zurückgeschriebene Datum befindet, auf einen keine Modifikation anzeigenden Wert eingestellt wird, um anzuzeigen, dass nun Inhalt dieses Cache-Blocks mit dem entsprechenden Inhalt in dem Speicher 12 übereinstimmt. Durch Markierung das soeben rückgeschriebene Datums bzw. des soeben rückgeschriebenen Cache-Blocks als nichtmodifiziert führt eine anschließende Verdrängung dieses Cache-Blocks nicht mehr zu einem deterministischen Rückschreibevorgang (siehe 2, 118 und 120).
  • Da durch die Abfrage 200 immer gewährleistet ist, dass das Bussystem einen freien Zeitschlitz hat, kann der randomisierte Rückschreibevorgang 206 über den Datenpfad 18 ohne Performance bzw. Leistungseinbußen durchgeführt werden, da keine andere Einheit davon abgehalten wird, bei dieser Zeitscheibe auf das Bussystem zuzugreifen. Die Zufallsabfrage 202 verringert den deterministischen Zusammenhang zwischen dem Auftreten einer freien Zeitscheibe und der Durchführung eines randomisierten Rückschreibevorgangs 206, wobei durch Einstellung der Zufallsverteilung auch die zeitlichen Abstände zwischen randomisierten Rückschreibevorgängen eingestellt werden können. Bevorzugterweise wird die Zufallsverteilung, d.h. die Wahrscheinlichkeit für ein positives Ergebnis in der Abfrage 202, an die Systemdetails der Controlleranordnung von 1 angepasst, so dass ein Kompromiss aus möglichst wenig „unnützen" Rückschreibevorgängen, d.h. solchen, die zwischen zwei Modifikationen ein und desselben Daten-Blocks in dem Cache stattfinden, und der Vermeidung möglichst vieler deterministischer Rückschreibevorgänge 120 getroffen ist.
  • Die Auswahl im Schritt 204 wird bevorzugter Weise unter den Cache-Blöcken 141 14n getroffen, die durch ihr Dirty-Bit 24 als modifiziert markiert sind. Diese Datenblöcke werden in der vorliegenden Anmeldung als Kandidaten bezeichnet. Alternativ zu dem vorliegenden Fall, da die Cache-Steuerung 16 durch die Dirty-Bits 24 Referenzen auf die modifizierten Cache-Blöcke sammelt, könnte ohne Implementierung einer extra Tabelle auch direkt im Cache 14, parallel oder iterativ, nach solchen Dirty-Blöcken gesucht werden.
  • Die Auswahl 204 unter den Kandidaten kann zufallsgesteuert und mit gleicher Wahrscheinlichkeit für die Kandidaten unter Verwendung des Zufallsgenerators 26 erfolgen. Alternativ oder zusätzlich könnte zur Optimierung der gewünschten Wirkung der randomisierten Rückschreibevorgänge 206, nämlich der Reduktion der deterministischen, d.h. durch Kollision erzwungenen, Rückschreibevorgänge (120 in 2), bzw. zur Steigerung der Effizienz bei der Auswahl 204 unter den Kandidaten eine Gewichtung verwendet werden, die die LRU-Informationen in der LRU-Tabelle 22 berücksichtigt, so dass ältere Blöcke in dem Cache 14, d.h. Blöcke, auf die schon seit längerer Zeit nicht mehr zugriffen worden ist, mit höherer Wahrscheinlichkeit zurückgeschrieben werden als andere, da jüngere Blöcke im allgemeinen eine höhere Wahrscheinlichkeit dafür haben, noch mal beschrieben bzw, modifiziert zu werden, in welchem Fall eine zwischenzeitliche Rückschreibung „unnötig" wäre.
  • Durch Begrenzung der Kandidaten auf den Kreis der als modifiziert markierten Cache-Blöcke würde die durchschnittliche Anzahl der als modifiziert markierten Cache-Blöcke im Cache 14 deutlich verringert werden, so dass die Wahrscheinlichkeit einer Kollision mit einem als modifiziert markierten Cache-Block bzw. einer Verdrängung desselben und eines dadurch erzwungenen deterministischen Rückschreibevorgangs 120 je nach Cache-Architektur, wie z.B. der Assoziativität, der Anzahl der Sets bzw. Sätze, der Direct-Mapping- bzw. Direktabbildungs-Eigenschaften usw. des Caches 14, stark verringert wird.
  • Nach den bisher beschriebenen Teilsteuerungen der Cache-Steuerung 16 verbleibt immer noch ein Rest an möglichen Kollisionen mit als dirty markierten Cache-Blöcken, also die Möglichkeit der Verdrängung von modifizierten Cache-Blöcken, die seit ihrer Modifizierung nicht einem randomisierten Rückschreibevorgang unterzogen worden sind. Um auch in diesem Fall einen zeitlich korrelierten deterministischen Rückschreibevorgang 120 zu vermeiden, kann die Ersetzungsstrategie, vorliegend die LRU-Strategie, bzw. die dieselbe implementierende Ersetzungssteuerung 16b so abgeändert werden, dass in dem Fall, dass in dem Schritt 116 laut der LRU-Tabelle streng genommen ein als modifiziert markierter Cache-Block zu verdrängen wäre, abweichend hiervon ein anderer Cache-Block als der zu verdrängende Cache-Block bestimmt wird, der nicht als modifiziert markiert ist. Auf diese Weise wird ein zeitlich korrelierbarer Rückschreibevorgang verhindert, da ja das Etikett bzw. das Dirty-Bit dieses ausnahmsweise ausgewählten Cache-Blockes keine Modifikation anzeigt (vergleiche 2).
  • Die Änderung der Ersetzungsstrategie ist insbesondere bei voll-assoziativen Caches einfach möglich, bei denen es mehr als einen Cache-Block gibt, in dem ein Speicherblock abgelegt werden kann, sogenannte n-Weg-Caches, als welcher auch der Cache 14 in 1 angedeutet ist. In dem Falle eines Direct-Mapping-Caches mit set-assoziativen Eigenschaften, also einer Parallelschaltung mehrer Direct-Mapping-Caches, bei denen die Cache-Blöcke nur für Datenblöcke aus einem bestimmten Teil des Speichers 12 vorgesehen sind, kann beispielsweise der Block in einem anderen Set abgelegt werden, wobei alle Blöcke dann mit einer eindeutigen Signatur markiert werden müssen.
  • Werden, wie oben beschrieben, bei der Auswahl 204 die LRU-Informationen berücksichtigt, um ältere Cache-Blöcke mit höherer Wahrscheinlichkeit einem randomisierten Rückschreibevorgang zu unterziehen, und ist gleichzeitig die Ersetzungssteuerung 16b wie oben modifiziert, verbleibt nur noch der völlig unwahrscheinliche Fall, dass bei einer Kollision kein einziger freier Cache-Block existiert, der nicht als modifiziert markiert ist, so dass die Kollision unmittelbar zu einem deterministischen Rückschreibevorgang 120 führen muss, da kein alternativer Cache-Block vorhanden ist, der nicht als modifiziert markiert ist. Auch dieser Fall kann vollständig vermieden werden, indem randomisierte Rückschreibevorgänge 206 gegenüber anderen Zugriffen auf das Bussystem 18 durch andere beantragende Einheiten derart priorisiert werden, dass randomisierte Rückschreibevorgänge 206 mindestens so oft durchgeführt werden, bis in jedem Fall in dem Cache 14 bzw. in dem Fall eines set-assoziativen Caches, in jedem Set bzw. Satz mindestens ein als nichtmodifiziert markierter Cache-Block vorhanden ist. Diese Priorisierung würde dafür sorgen, dass der Arbiter bzw. die Entscheidungssteuerung bzw. der Busmaster, der bzw. die unter den einen Zugriff auf das Bussystem beantragenden Einheiten entscheidet, welche der Einheiten den Zugriff auf das Bussystem bekommt, in dem Fall, dass die Zurückschreibesteuerung 16c zu den beantragenden Einheiten gehört, auf jeden Fall diese bevorzugt würde, bis zumindest ein Cache-Block als nichtmodifiziert markiert ist.
  • Obwohl im Vorhergehenden die Rückschreibesteuerung 16c die Auswahl des rückzuschreibenden Cache-Blocks lediglich unter als modifiziert markierten Blöcken vornahm, könnte die Auswahl auch aus allen Cache-Blöcken oder einem zumindest größeren Teil derselben getroffen werden. Die Auswahl von Kandidaten für den Auswahlvorgang 204 könnte also durchgeführt werden, ohne zwischen als modifiziert und als nichtmodifiziert markierten Blöcken zu unterscheiden. Randomisiertes Zurückschreiben von als nichtmodifiziert markierten Blöcken könnte zumindest zur Verrauschung des Stromprofiles und damit der Erschwerung von DPA-Angriffen angewendet werden. Diese Variante hat jedoch den Nachteil, dass die Anzahl von als modifiziert markierten Blöcken in dem Cache 14 nur langsam oder unwesentlich verringert wird, so dass die Wahrscheinlichkeit einer Kollision, die einen Rückschreibevorgang 120 erzwingt, nicht wesentlich kleiner wird. Diese Variante ist deshalb aus sicherheitstechnischen Überlegungen heraus weniger bevorzugt.
  • In bezug auf 3 wird darauf hingewiesen, dass die Abfrage 200 entfallen könnte. Unter geringen Leistungseinbußen könnten die Zurückschreibesteuerung 16c jedwede Zeitscheiben für Rückschreibevorgänge 206 in Anspruch nehmen, die sonst auf dem Bussystem 18 für andere Operationen benutzt würden. Die Entscheidungssteuerung bzw. der Busmaster des Bussystems 18 würde dann eine Arbitrierung bzw. eine Entscheidung unter den den Zugriff auf das System 18 beantragenden Einheiten durchführen. Ferner wäre es möglich, die Abfrage 202 wegzulassen und jeden freien Zeitschlitz für einen randomisierten Rückschreibevorgang 206 zu nutzen.
  • Ferner wird in bezug auf 3 darauf hingewiesen, dass, obwohl die Zufallszurückschreibesteuerung 16c im Vorhergehenden als eine einen zu den Steuerungen 16a und 16b unabhängigen Prozess implementierende Einheit beschrieben wurde, welcher Prozess parallel zu den anderen abläuft, eine Rückschreibemaßnahme nach den Schritten 204 – 208 auch an geeigneter Stelle in das Abrufdiagramm von 2 eingebaut werden könnte, beispielsweise zwischen die Schritte 100 und 102, zu welchen Zeitpunkten dann die Steuerung 16c aktiviert wird.
  • Ferner wird darauf hingewiesen, dass die Bezug nehmend auf die 2 und 3 beschriebene Funktionsweise der Cache-Steuerung in Hardware oder in Software implementiert werden könnte. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung eines Verfahrens zur Steuerung einer Speicheranordnung mit einem Speicher und einem dem Speicher zugeordneten Cache-Speicher realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.
  • Gemäß obiger Ausführungsbeispiele wurden die Writebacks von dirty markierten Datenblöcken im Cache durch einen unabhängigen Zufallsprozess gesteuert. Auf diese Weise wird die Korrelation des Writebacks mit dem Zeitpunkt des Schreibens des Datums in den Cache, sowie dem Schreiben des Datums in den Cache sehr effektiv zerstört. In der beschriebenen Form ist die Maßnahme zudem performance-neutral oder sogar performance steigernd steigend durch Vorsehen der Abfrage 200. Wie oben erwähnt ist jedoch ebenfalls eine Ausführung der Writebacks von dirty markierten Datenblöcken unabhängig von einer Verdrängung derselben aus dem Cache auch auf rein deterministische Weise, also ohne Verwendung des Zufallsgenerators 26, unter Verwendung äußerer Faktoren, wie das Vorhandensein einer freien Zeitscheibe und der LRU-Tabelle, möglich.
  • Obwohl im vorhergehenden eine Speicheranordnung nach dem Look-through-Konzept verwendet wurde, wonach die Zugriffsanfrage zunächst an den Cache gestellt wird und erst dann, wenn die Daten dort nicht vorhanden sind, die Anfrage an den Speicher der niedrigeren Hierarchieebene, der auch ein weitere Cache-Speicher sein könnte, weitergereicht wird, könnte die vorliegende Erfindung auch bei einem Look-aside-Konzept verwendet werden, bei dem die Zugriffsanfrage bezüglich eines Datums parallel an Speicher und Cache gestellt wird.
  • 10
    CPU
    12
    Speicher
    14
    Cache-Speicher
    14x
    Cache-Blöcke
    16
    Cache-Steuerung
    16a
    Lade/Speicher-Steuerung
    16b
    Ersetzungssteuerung
    16c
    Zufallszurückschreibesteuerung
    18
    Datenpfad
    20
    Datenpfad
    22
    LRU-Tabelle
    24
    Dirty-Bit
    26
    Zufallsgenerator

Claims (11)

  1. Vorrichtung zur Steuerung einer Speicheranordnung mit einem Speicher (12) und einem dem Speicher (12) zugeordneten Cache-Speicher (14), mit einer Einrichtung (16c) zum Zurückschreiben von Daten aus dem Cache-Speicher (14) in den Speicher (12) unabhängig von einer Verdrängung (116) dieser Daten aus dem Cache-Speicher (14).
  2. Vorrichtung gemäß Anspruch 1, bei der jedem Datum, für welches in dem Cache-Speicher (14) ein aktueller Wert gespeichert ist, ein Etikett (24) zugeordnet ist, das anzeigt, ob der betreffende aktuelle Wert des Datums gegenüber einem Wert für dasselbe Datum in dem Speicher (12) modifiziert worden ist oder nicht.
  3. Vorrichtung gemäß Anspruch 2, bei der die Einrichtung (16c) zum Zurückschreiben ausgebildet ist, um für das Zurückschreiben eines Datums das Datum unter denjenigen Daten in dem Cache-Speicher auszuwählen, deren zugeordnetes Etikett anzeigt, dass der aktuelle Wert desselben gegenüber dem Wert in dem Speicher (12) modifiziert worden ist.
  4. Vorrichtung gemäß Anspruch 2 oder 3, bei der die Einrichtung (16c) zum Zurückschreiben ausgebildet ist, um beim Zurückschreiben eines Datums das zugeordnete Etikett desselben so einzustellen, dass es anzeigt, dass der betreffende aktuelle Wert desselben gegenüber dem Wert für dasselbe Datum in dem Speicher (12) nicht modifiziert worden ist.
  5. Vorrichtung gemäß einem der Ansprüche 1 bis 4, die ferner folgendes Merkmal aufweist: eine Einrichtung zum Bestimmen eines aus dem Cache-Speicher (14) zu verdrängenden Datums gemäß einer Verdrängungsstrategie, wobei die Einrichtung (16b) zum Bestimmen ausgebildet ist, um abweichend von dem durch die Verdrängungsstrategie angezeigten Datum ein anderes Datum in dem Cache-Speicher (14) als das zu verdrängende Datum zu bestimmen, wenn demselben ein Etikett zugeordnet ist, das anzeigt, dass der aktuelle Wert desselben in dem Cache (14) gegenüber dem Wert für dasselbe in dem Speicher (12) modifiziert worden ist, wobei dem anderen Datum ein Etikett zugeordnet ist, das anzeigt, dass ein aktueller Wert desselben in dem Cache-Speicher (14) gegenüber einem Wert für dasselbe in dem Speicher (12) nicht modifiziert worden ist.
  6. Vorrichtung gemäß einem der Ansprüche 1 bis 5, bei der die Einrichtung (16c) zum Zurückschreiben ausgebildet ist, um die Daten für das Zurückschreiben unter den Daten in dem Cache-Speicher zufällig auszuwählen.
  7. Vorrichtung gemäß Anspruch 6, bei der die Einrichtung (16c) zum Zurückschreiben ausgebildet ist, um Daten, auf die längere Zeit nicht mehr zugegriffen wurde, mit höherer Wahrscheinlichkeit zurückzuschreiben als solche, auf die erst seit kürzerer Zeit zurückgegriffen wurde.
  8. Vorrichtung gemäß einem der Ansprüche 1 bis 7, die ferner folgendes Merkmal aufweist: eine Einrichtung zum Bestimmen, ob ein Bus, der vorgesehen ist, damit über denselben das Zurückschreiben durch die Einrichtung (16c) zum Zurückschreiben durchzuführen ist, einen freien Zeitschlitz hat, in welchem ansonsten kein Zugriff auf den Bus beantragt wird, wobei die Einrichtung (16c) zum Zurückschreiben ausgebildet ist, um das Zurückschreiben nur in freien Zeitschlitzen durchzuführen.
  9. Vorrichtung gemäß einem der Ansprüche 1 bis 8, bei dem die Einrichtung (16c) zum Zurückschreiben derart ausgebildet ist, dass die Zeitpunkte des Zurückschreibens von einem Zufallsgenerator (26) abhängen.
  10. Verfahren zur Steuerung einer Speicheranordnung mit einem Speicher und einem dem Speicher zugeordneten Cache-Speicher, wobei das Verfahren folgenden Schritt aufweist: Zurückschreiben von Daten aus dem Cache-Speicher in den Speicher unabhängig von einer Verdrängung dieser Daten aus dem Cache-Speicher.
  11. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens zur Steuerung einer Speicheranordnung mit einem Speicher und einem dem Speicher zugeordneten Cache-Speicher gemäß Anspruch 10, wenn das Computerprogramm auf einem Computer abläuft.
DE10303752A 2003-01-30 2003-01-30 Steuerung einer Cachespeicheranordnung mit zufälligen Zurückschreibevorgängen Expired - Fee Related DE10303752B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10303752A DE10303752B4 (de) 2003-01-30 2003-01-30 Steuerung einer Cachespeicheranordnung mit zufälligen Zurückschreibevorgängen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10303752A DE10303752B4 (de) 2003-01-30 2003-01-30 Steuerung einer Cachespeicheranordnung mit zufälligen Zurückschreibevorgängen

Publications (2)

Publication Number Publication Date
DE10303752A1 true DE10303752A1 (de) 2004-08-19
DE10303752B4 DE10303752B4 (de) 2012-02-23

Family

ID=32730637

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10303752A Expired - Fee Related DE10303752B4 (de) 2003-01-30 2003-01-30 Steuerung einer Cachespeicheranordnung mit zufälligen Zurückschreibevorgängen

Country Status (1)

Country Link
DE (1) DE10303752B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1715436A2 (de) 2005-04-21 2006-10-25 St Microelectronics S.A. Schutz des Ablaufs eines von einem integrierten Schaltkreis ausgeführten Programms oder von Daten, die in diesem Schaltkreis enthalten sind

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974507A (en) * 1997-04-14 1999-10-26 International Business Machines Corporation Optimizing a cache eviction mechanism by selectively introducing different levels of randomness into a replacement algorithm
WO2001052069A2 (de) * 2000-01-11 2001-07-19 Infineon Technologies Ag Speicherzugriffsverfahren und schaltungsanordung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974507A (en) * 1997-04-14 1999-10-26 International Business Machines Corporation Optimizing a cache eviction mechanism by selectively introducing different levels of randomness into a replacement algorithm
WO2001052069A2 (de) * 2000-01-11 2001-07-19 Infineon Technologies Ag Speicherzugriffsverfahren und schaltungsanordung

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1715436A2 (de) 2005-04-21 2006-10-25 St Microelectronics S.A. Schutz des Ablaufs eines von einem integrierten Schaltkreis ausgeführten Programms oder von Daten, die in diesem Schaltkreis enthalten sind
EP1715436A3 (de) * 2005-04-21 2007-03-28 St Microelectronics S.A. Schutz des Ablaufs eines von einem integrierten Schaltkreis ausgeführten Programms oder von Daten, die in diesem Schaltkreis enthalten sind

Also Published As

Publication number Publication date
DE10303752B4 (de) 2012-02-23

Similar Documents

Publication Publication Date Title
DE69432878T2 (de) Informationsverarbeitungssystem mit Flash-Speicher und Cache-Speicher
DE10232926B4 (de) Verfahren zum Aufrechterhalten der Kohärenz in einer hierarchischen Cacheanordnung eines Computersystems
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE112012004798T5 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
EP3254227B1 (de) Verfahren zum schutz sicherheitsrelevanter daten in einem cachespeicher
DE112013001284T5 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
DE102007012058A1 (de) Synchronisieren von Neuheitsinformation in einer inklusiven Cache-Hierarchie
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE112007000645B4 (de) Dynamisch aktualisierbarer, adaptiver Leerlauf-Zeitgeber
DE10006430B4 (de) Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System
DE112017003203T5 (de) Mehr-ebenen-systemspeicher mit near-memory-scrubbing basierend auf vorhergesagter far-memory-leerlaufzeit
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
EP1118941A1 (de) Mikroprozessoranordnung und Verfahren zum Betreiben einer Mikroprozessoranordnung
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache
DE112004000694T5 (de) Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
DE4234695A1 (de) Speichermanagementsystem und verfahren zur aufrechterhaltung der cache-kohaerenz zwischen einem daten-cache und einem segmentdeskriptor-cache
EP1449091B1 (de) Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage
DE10303752B4 (de) Steuerung einer Cachespeicheranordnung mit zufälligen Zurückschreibevorgängen
EP1247186B1 (de) Speicherzugriffsverfahren und schaltungsanordung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R011 All appeals rejected, refused or otherwise settled
R019 Grant decision by federal patent court
8131 Rejection
R409 Internal rectification of the legal status completed
R082 Change of representative

Representative=s name: ,

R020 Patent grant now final

Effective date: 20120524

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