DE10303752B4 - 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
DE10303752B4
DE10303752B4 DE10303752A DE10303752A DE10303752B4 DE 10303752 B4 DE10303752 B4 DE 10303752B4 DE 10303752 A DE10303752 A DE 10303752A DE 10303752 A DE10303752 A DE 10303752A DE 10303752 B4 DE10303752 B4 DE 10303752B4
Authority
DE
Germany
Prior art keywords
memory
cache
data
date
control
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.)
Expired - Fee Related
Application number
DE10303752A
Other languages
English (en)
Other versions
DE10303752A1 (de
Inventor
Michael Smola
Dipl.-Phys. Dirscherl Gerd
Dr.rer.nat. Gammel Berndt
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

Images

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

Vorrichtung zur Steuerung einer Speicheranordnung mit einem Speicher (12) und einem dem Speicher (12) zugeordneten Cache-Speicher (14), mit einer Zurückschreibesteuerung (16c) zum Zurückschreiben von Daten aus dem Cache-Speicher (14) in den Speicher (12) zu mittels eines Zufallsgenerators (26) erzeugten Zeitpunkten unabhängig von einer Verdrängung (116) dieser Daten aus dem Cache-Speicher (14) durch eine Ersetzungssteuerung (16b).

Description

  • Die vorliegende Erfindung bezieht sich auf eine Steuerung einer Speicheranordnung mit einem Speicher und einem dem Speicher zugeordneten Cache-Speicher und in anderen Worten ausgedrückt 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 modifiziert wurden, wie z. B. durch einen Speicher-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 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 Datenvariation 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-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 US 5,974,507 A beschäftigt sich mit der Optimierung eines Cache-Auslagerungsmechanismus durch selektives Einführen unterschiedlicher Pegel von Zufall in einen Ersetzungsalgorithmus. Insbesondere wird dort versucht, Nachteile üblicher Caches zu überwinden, die darin bestehen, daß diese Caches starr aufgebaut sind, d. h. eine feste Assoziativität, ein festes Verhältnis zwischen Raum für Daten und Raum für Befehle und eine feste Ersetzungsstrategie aufweisen. Zur Optimierung wird vorgeschlagen, einen Cache derart auszulegen, daß er auf vier verschiedene Weisen umstellbar ist. Gemäß einem ersten Aspekt sollte ein Cache hinsichtlich seiner Assoziativität umstellbar sein. Gemäß einem zweiten Aspekt wird die Abbildungsfunktion, die beschreibt, welche spezifischen Speicherblöcke welcher Kongruenzklasse zugewiesen werden, geändert. Gemäß einem dritten Aspekt sollte ein Cache-Speicher hinsichtlich seines Befehl/Daten-Teilungsverhältnisses programmierbar sein. Gemäß dem vierten Aspekt wird nun der Verdrängungsalgorithmus, d. h. derjenige Algorithmus, der den Block bestimmt, der verdrängt werden soll, randomisiert, indem die Bits, die nach dem Verdrängungsalgorithmus den zu verdrängenden Block angeben, zufällig eingestellt werden, wobei verschiedene Stufen der Randomisierung dadurch erzielt werden, daß eine verschiedene Anzahl der Bits zufällig eingestellt wird, während die anderen Bits auf den durch den Verdrängungsalgorithmus eingestellten Wert belassen werden. Alle vier verschiedenen Maßnahmen verhindern, daß bei Auftreten bestimmter Programmroutinen, Algorithmen oder dergleichen eine Abfolge von Schritten eintritt, die zu einem ständigen Verdrängen von Daten in dem Cache-Speicher führen würde und dort mit Stride bezeichnet wird. Die Umstellung findet entweder basierend auf Hardware oder auf Software aber auf jeden Fall deterministisch statt, nämlich dann, wenn für eine bestimmte Kongruenzklasse eine maximale Fehlschlag-Rate überschritten worden ist, oder mehr als eine bestimmte Anzahl von Kongruenzklassen existieren, die Fehlschlag-Raten oberhalb eines oder mehrerer Schwellenwerte aufweisen. Alternativ könnte die Umstellung auch befehlsgesteuert vorgenommen werden bzw. manuell. Ferner könne das Betriebssystem die Umstellung auf eine vorhersagende Weise bestimmen, nämlich wie effizient die Prozeduren mit beispielsweise bestimmten Assoziativitätspegeln arbeiten. Wird nun auf diese Weise eine Umstellung durch eine Änderung der Kongruenzklassenabbildungsfunktion durchgeführt, so müsse der Cache bei Umstellung einmal geräumt werden, um Kohärenz sicherzustellen
  • Die WO01/52069A2 setzt sich zum Ziel, die DPA-Sicherheit bei Nutzung eines Caches dadurch zu erhören, daß in dem Fall eines Cache-Hits das angeforderte Datum nicht einfach aus dem Cache-Speicher ausgelesen wird, sondern dass dasselbe zufällig entweder aus dem Cache-Speicher oder aus dem Speicher ausgelesen wird. Hierzu wird ein ständig vorliegendes Zufallssignal zufällig zwischen zwei Werten hin und hergeschaltet. Die Wahrscheinlichkeit dafür, daß das Zufallssignal die Auslese aus dem Speicher anstelle des Cache-Speichers anzeigt, wird gemäß einem Aspekt abhängig von der CPU-Auslastung eingestellt.
  • 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.
  • Der Kerngedanke der vorliegenden Erfindung besteht darin, dass die Korrelation zwischen dem Ereignis von Zurückschreibevorgängen einerseits, den dieselben auslosenden 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 14114n, 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 14114n. 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 14114n 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 14114n 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 14114n 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 14114n, 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 entfallen, falls das entsprechende Bit bereits auf den die Modifikation anzeigenden Wert eingestellt ist.
  • Die Schritte 104110 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 104110 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 14114n gemäß der LRU-Strategie verdrängt werden soll. Hierzu bedient sich die Ersetzungssteuerung 16b der LRU-Tabelle 22, die ja denjenigen Block 14114n 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 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 letztendlich 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 randomisierte 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 14114n 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 14114n 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 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 204208 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.

Claims (10)

  1. Vorrichtung zur Steuerung einer Speicheranordnung mit einem Speicher (12) und einem dem Speicher (12) zugeordneten Cache-Speicher (14), mit einer Zurückschreibesteuerung (16c) zum Zurückschreiben von Daten aus dem Cache-Speicher (14) in den Speicher (12) zu mittels eines Zufallsgenerators (26) erzeugten Zeitpunkten unabhängig von einer Verdrängung (116) dieser Daten aus dem Cache-Speicher (14) durch eine Ersetzungssteuerung (16b).
  2. Vorrichtung zur Steuerung einer Speicheranordnung mit einem Speicher (12) und einem dem Speicher (12) zugeordneten Cache-Speicher (14), wobei jedem Datum, für welches in dem Cache-Speicher (14) ein aktueller Wert gespeichert ist, ein Etikett (Dirty-Bit 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, mit einer Zurückschreibesteuerung (16c) zum Zurückschreiben von durch die Etiketten (Dirty-Bit 24) als modifiziert gekennzeichneten Daten aus dem Cache-Speicher (14) in den Speicher (12) unabhängig von einer Verdrängung (116) dieser Daten aus dem Cache-Speicher (14) durch eine Ersetzungssteuerung (16b), wobei die Zurückschreibesteuerung (16c) ausgebildet ist, um zu bestimmen, ob ein zur Übertragung der unter den als modifiziert gekennzeichneten Daten ausgewählten zurückzuschreibenden Daten vom Cachespeicher (14) zum Speicher (12) vorgesehene Bus (18) einen freien Zeitschlitz hat, in welchem ansonsten kein Zugriff auf den Bus beantragt wird, um das Zurückschreiben der Daten nur in freien Zeitschlitzen durchzuführen und die diesen Daten zugeordneten Etiketten (Dirty-Bit 24) auf einen keine Modifikation gegenüber dem Wert für diese Daten in dem Speicher (12) anzeigenden Wert einzustellen.
  3. Vorrichtung gemäß Anspruch 1, bei der die Zurückschreibesteuerung (16c) ausgebildet ist, um für das Zurückschreiben eines Datums das Datum unter denjenigen Daten in dem Cache-Speicher auszuwählen, dessen zugeordnetes Etikett (Dirty-Bit24) anzeigt, dass der aktuelle Wert desselben gegenüber dem Wert in dem Speicher (12) modifiziert worden ist.
  4. Vorrichtung gemäß Anspruch 3, bei der die Zurückschreibesteuerung (16c) 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: die Ersetzungssteuerung (16b) zum Bestimmen eines aus dem Cache-Speicher (14) zu verdrängenden Datums gemäß einer Verdrängungsstrategie ist ausgebildet, um abweichend von dem durch die Verdrängungsstrategie angezeigten als modifiziert markierten zu verdrängenden Datum ein anderes Datum, dessen Etikett keine Modifikation anzeigt, zu bestimmen.
  6. Vorrichtung gemäß einem der Ansprüche 1 bis 5, bei der die Zurückschreibesteuerung (16c) 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 Zurückschreibesteuerung (16c) 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. 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, zu mittels eines Zufallsgenerators (26) erzeugten Zeitpunkten.
  9. Verfahren zur Steuerung einer Speicheranordnung mit einem Speicher und einem dem Speicher zugeordneten Cache-Speicher unabhängig von einer Datumsverdrängung aus dem Cache-Speicher, wobei jedem Datum, für welches in dem Cache-Speicher (14) ein aktueller Wert gespeichert ist, ein Etikett (Dirty-Bit 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, und wobei das Verfahren folgende Schritte aufweist: Bestimmen, ob ein zwischen dem Cachespeicher (14) und dem Speicher (12) vorhandener Bus, über den das Zurückschreiben der Daten durch die Zurückschreibesteuerung (16c) durchzuführen ist, einen freien Zeitschlitz hat, in welchem ansonsten kein Zugriff auf den Bus beantragt wird; Zurückschreiben von durch die Etiketten (24) als modifiziert gekennzeichneten Daten aus dem Cache-Speicher (14) in den Speicher (12) zu einem Zeitpunkt, zu dem auf dem Bus ein freier Zeitschlitz vorliegt; und Einstellen des zugeordneten Etiketts des Datums auf einen keine Modifikation gegenüber dem Wert für diese Daten in dem Speicher (12) anzeigenden Wert.
  10. Digitales Speichermedium mit auslesbaren Steuersignalen, das so mit einem programmierbaren Computersystem zusammenwirkt, dass das Verfahren gemäß Anspruch 8 oder 9 ausgeführt wird.
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 DE10303752A1 (de) 2004-08-19
DE10303752B4 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MESSMER, Hans-Peter: PC-Hardwarebuch, 5. Aufl., Addison-Wesley, 1997, S. 344, 345 *

Also Published As

Publication number Publication date
DE10303752A1 (de) 2004-08-19

Similar Documents

Publication Publication Date Title
DE69130086T2 (de) Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
DE69635663T2 (de) vERFAHREN FÜR DAS EINSPEICHERN VON DATEN IN EINEM FLASH-EEPROM-HAUPTSPEICHER IN EINEM RECHNERSYSTEM
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
DE69518676T2 (de) Cache-Speicheranordnung für einen Speicher
DE112011102487B4 (de) Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
DE69322683T2 (de) Verfahren und Vorrichtung zur Durchführung eines pseudo-LRU Cachespeicherersetzungsschemas mit einer Verriegelungsfunktion
DE102012103869B4 (de) Optimierter Flash-basierender Cache-Speicher
EP1668516B1 (de) Entschlüsselung und verschlüsselung bei schreibzugriffen auf einen speicher
DE69620807T2 (de) Datenverarbeitungsvorrichtung zum Vorziehen einer Datenstruktur aus dem Hauptspeicher oder seinem Cachespeicher
DE69023568T2 (de) Cache-Speicheranordnung.
DE69616465T2 (de) Cachespeicher mit Datenvorausladung
DE69224084T2 (de) Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür
DE102011076894B9 (de) Persistenter Speicher für einen Hauptspeicher eines Prozessors
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE112006000339B4 (de) System für einen beschränkten Cache-Zugriff während des Datentransfers und Verfahren dazu
EP3254227B1 (de) Verfahren zum schutz sicherheitsrelevanter daten in einem cachespeicher
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
EP1118941B1 (de) Mikroprozessoranordnung und Verfahren zum Betreiben einer Mikroprozessoranordnung
DE10006430B4 (de) Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System
DE69626070T2 (de) Verfahren und Vorrichtung zum Etikettieren eines Mehrweg-assoziativen Cache-Speichers
DE69930983T2 (de) Pseudo-genaue I-Cache-Speichereinschliessbarkeit für vertikale Cache-Speicher
DE69709226T2 (de) Einzelzyklus mehrfachzugreifbarer verschachtelter Cache-Speicher
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache

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