DE69823180T2 - Speicherzugangsschutz - Google Patents

Speicherzugangsschutz Download PDF

Info

Publication number
DE69823180T2
DE69823180T2 DE69823180T DE69823180T DE69823180T2 DE 69823180 T2 DE69823180 T2 DE 69823180T2 DE 69823180 T DE69823180 T DE 69823180T DE 69823180 T DE69823180 T DE 69823180T DE 69823180 T2 DE69823180 T2 DE 69823180T2
Authority
DE
Germany
Prior art keywords
address
memory
logical
area
areas
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 - Lifetime
Application number
DE69823180T
Other languages
English (en)
Other versions
DE69823180D1 (de
Inventor
Anthony Simon SEGARS
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Application granted granted Critical
Publication of DE69823180D1 publication Critical patent/DE69823180D1/de
Publication of DE69823180T2 publication Critical patent/DE69823180T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine Datenverarbeitungsvorrichtung und ein Verfahren zum Zugriff auf einen Speicher mit einer Mehrzahl von Speicherplätzen zum Speichern von Datenwerten, und genauer gesagt auf eine solche Datenverarbeitungsvorrichtung und ein Verfahren, das Speicherzugriffe schützt. Der Begriff 'Datenwert' wird hier verwendet, um sowohl Befehle als auch Einträge oder Blöcke von Daten wie Datenworte zu bezeichnen.
  • Beschreibung des Standes der Technik
  • Es ist bekannt, Arbeitsspeicher in eine Anzahl von separaten logischen Bereichen zu segmentieren und Schutzattribute für jeden der Bereiche zu spezifizieren wie z. B., ob die Bereiche nur im Supervisormodus zugreifbar sind, ob die Bereiche im Cache abgelegt werden dürfen, in einem Cache-basierten System gepuffert werden dürfen, etc., um den Zugriff auf diese Speicherbereiche zu steuern. Somit können, wenn ein Prozessor eine Speicheradresse ausgibt, die in einen bestimmten Speicherbereich fällt, dann die Schutzattribute für diesen Bereich verwendet werden, um festzustellen, ob der Prozessor in seinem aktuellen Betriebsmodus berechtigt ist, auf diese Speicheradresse zuzugreifen, und um festzustellen, ob von diesem Speicherbereich abgeholte Datenwerte im Cache ablegbar sind, ob Datenwerte, die in diesen Speicherbereich geschrieben werden sollen, gepuffert werden dürfen, etc. Oft, aber nicht ausschließlich werden solche Schutzmechanismen in virtuellen Speichersystemen in Verbindung mit der Übersetzung von virtuellen in physikalische Adressen verwendet.
  • In den meisten Implementierungen ist eine eingeschränkte Flexibilität zum Definieren der logischen Bereiche vorgesehen. Die logischen Bereiche können typischerweise von einer festen Größe wie 4 kb-Bereiche sein, obwohl einige Techniken die Flexibilität in gewissem Maße verbessern, indem einige wenige Bereiche mit unterschiedlicher Größe wie 1 kb-, 2 kb- und 4 kb-Bereiche zur Verfügung gestellt werden. Wenn Bereiche mit unterschiedlicher Größe vorgesehen werden, sind sie typischerweise darauf beschränkt, um Potenzen von zwei zu variieren, da die Hardware, die zum Vergleichen von Adressen notwendig ist, um die diese Adressen beinhaltenden logischen Bereiche zu bestimmen, weniger komplex sein kann, wenn die Bereiche auf Größen beschränkt sind, die um eine Potenz von zwei variieren.
  • Mit dem obigen Ansatz ist es möglich, Benutzerbereiche des Speichers und Supervisorbereiche des Speichers zu spezifizieren. Betrachtet man zum Beispiel den Fall, in dem logische Bereiche von der festen Größe von 4 kb vorgesehen sind, und das System 4 kb Supervisorcode und 12 kb Benutzercode benötigt, die beide in ein 16 kb RAM abgebildet werden müssen. Es müssen vier logische Bereiche definiert werden, um dies zu erreichen, d. h. ein 4 kb-Bereich für den Supervisorcode und drei 4 kb-Bereiche für den Benutzercode.
  • Es wäre wünschenswert, die obige Funktionalität bereitzustellen, während weniger Bereiche definiert werden, als mit der oben beschriebenen Methode nach dem Stand der Technik benötigt werden, um dadurch die Flexibilität des Systems zu verbessern.
  • EP-A-0.700.002 beschreibt einen modularen Chipauswahl-Steuerschaltkreis für einen Mikroprozessor. Der Chipauswahlschaltkreis ist in der Lage, eine überlappende Speicherkarte bzw. -abbildung zu implementieren, so daß ein Unterblock des Speichers die Grenzen eines Hauptblocks entweder überlappen oder vollständig innerhalb der Grenzen liegen kann. Dekoder werden für jeden Speicherblock verwendet, und ein Schaltkreis zum Durchsetzen einer Priorität ist dafür ausgelegt, die Ausgaben der Dekoder zu empfangen und basierend auf einem Prioritätsmechanismus zu bestimmen, ob ein externes Steuersignal wie ein Chipaktivierungssignal zu aktivieren ist.
  • EP-A-0.656.592 beschreibt eine Speichenrerwaltungseinheit (Memory Management Unit, MMU), die einen Betriebsmodus hat, in dem Übersetzungsattributbits entweder von einem ersten transparenten Übersetzungsregister (Transparent Translation Register, TTR), einem zweiten TTR oder einer Standardspeicherstelle geliefert werden. Von den TTRs kann jedes unterschiedliche Adreßräume und unterschiedliche adressierte Speichergrößen abbilden, und die Standardspeicherstelle deckt jedweden Speicher ab, der nicht von einem der TTRs abgebildet wird.
  • US-A-3.827.029 beschreibt ein Digitalcomputersystem kleiner Größe, das so ausgelegt ist, daß ein Hardware-Subsystem zum Schutz gegen Speicherverletzung als eine Hardware-Option zu dem Computersystem hinzugefügt werden kann.
  • Zusammenfassung der Erfindung
  • Unter einem ersten Aspekt betrachtet stellt die vorliegende Erfindung eine Datenverarbeitungsvorrichtung zur Zugriffssteuerung auf einen Speicher mit einer Mehrzahl von Speicherstellen zum Speichern von Datenwerten bereit, wobei jede Speicherstelle eine entsprechende Adresse hat, wobei die Vorrichtung aufweist: einen Adreßbereichsspeicher zum Speichern von Information, die Adreßbereiche für eine Mehrzahl von logischen Bereichen innerhalb des Arbeitsspeichers identifiziert; einen Attributspeicher zum Speichern von Attributen für jeden logischen Bereich, die zur Zugriffssteuerung auf Speicherstellen innerhalb der logischen Bereiche verwendet werden; eine Adreßvergleicherlogik zum Vergleichen einer von einem Prozessor ausgegebenen Adresse, die einer der Speicherstellen entspricht, mit den Adreßbereichen für die Mehrzahl von logischen Bereichen und für den Fall, daß eine oder mehrere der logischen Bereiche die Adresse enthält, zum Erzeugen eines Signal, das diese logischen Bereiche anzeigt, die diese Adresse beinhalten; eine Attributbestimmungslogik, die auf das von der Adreßvergleicherlogik erzeugte Signal zur Anwendung zuvor festgelegter Prioritätskriterien reagiert, um zu bestimmen, welcher logische Bereich, der die Adresse enthält, die höchste Priorität hat, und die Ausgabe der Attribute in dem Attributspeicher, der diesem Bereich höchster Priorität entspricht, zur Verwendung bei der Zugriffssteuerung auf die von der Adresse angegebene Speicherstelle zu veranlassen: wobei einer der logischen Bereiche ein Hintergrundbereich ist, der den gesamten Arbeitsspeicher abdeckt und die niedrigste Priorität der logischen Bereich hat, wobei dann, wenn die von dem Prozessor ausgegebene Adresse einer Speicherstelle entspricht, die nicht innerhalb irgendeiner der anderen logischen Bereich liegt, die Attri butbestimmungslogik dafür ausgelegt ist, die Ausgabe der mit dem Hintergrundbereich verbundenen Attribute zu veranlassen.
  • Gemäß der vorliegenden Erfindung können überlappende logische Bereiche definiert werden, und relative Prioritäten können jedem logischen Bereich zugewiesen werden. Wenn der Prozessor eine Adresse spezifiziert, die in zwei oder mehr logische Bereiche fällt, dann werden die Prioritätskriterien verwendet, um zu bestimmen, welcher logische Bereich die höchste Priorität hat. Jeder logische Bereich hat eine Anzahl von Attributen für diesen Bereich angegeben, die zur Steuerung des Zugriffs auf die Speicherstellen in diesem logischen Bereich verwendet werden. Basierend auf dieser Bestimmung, welcher Bereich die höchste Priorität hat, werden daraufhin die Attribute für diesen Bereich mit der höchsten Priorität verwendet, um den Zugriff auf von dem Prozessor angegebene, spezifische Speicherstellen zu steuern.
  • Folglich kann unter Bezug auf das zuvor erwähnte Beispiel, bei dem es gewünscht war, 4 kb von Supervisorcode und 12 kb von Benutzercode in einem 16 kb RAM zur Verfügung zu stellen, dies gemäß der vorliegenden Erfindung durch Bereitstellen zweier überlappender Bereiche erreicht werden, eines 4 kb Bereiches für den Supervisorcode und eines 16 kb Bereiches für den Benutzercode. Für den Supervisorbereich würde eine höhere Priorität als für den Benutzerbereich festgelegt werden, wodurch sichergestellt würde, daß jeder Versuch eines Zugriffs auf den 4 kb überlappenden Bereich durch die mit dem Supervisorbereich verbundenen Attribute bestimmt würde. Folglich brauchen gemäß der vorliegenden Erfindung in diesem Beispiel nur zwei Bereiche definiert zu werden statt der vier Bereiche, die gemäß der Methode nach dem Stand der Technik definiert werden mußten.
  • In der vorliegenden Erfindung wird einer der logischen Bereiche als ein Hintergrundbereich verwendet, der den gesamten Speicher abdeckt und die niedrigste Priorität der logischen Bereich hat, wobei in dem Fall, daß die von dem Prozessor ausgegebene Adresse einer Speicherstelle entspricht, die nicht in irgendeinem der anderen logischen Bereiche liegt, dann die mit dem Hintergrundbereich verbundenen Attribute verwendet werden, um den Zugriff auf die durch diese Adresse angegebene Speicherstelle zu regeln.
  • Es ist möglich, daß die definierten Speicherbereiche den Adreßraum des Speichers nicht vollständig ausfüllen und es daher "Löcher" in der Adreßabbildung gibt. Indem jedoch der Bereich mit der niedrigsten Priorität so eingerichtet wird, daß er den gesamten Speicheradreßbereich abdeckt, und passende Attribute für diesen logischen Speicherbereich angegeben werden, ist es dann möglich zu definieren, was passiert, wenn ein Zugriff auf ein Loch erfolgt (zum Beispiel könnten die Attribute auf vollen Zugriff oder keinen Zugriff gesetzt werden).
  • Nach bevorzugten Ausführungsformen sind die Adreßbereiche für die logischen Bereiche durch eine Basisadresse spezifiziert, die angibt, an welcher Speicherstelle der logische Bereich anfängt, und ein Größenattribut, welches die Größe des logischen Bereiches angibt. Nach bevorzugten Ausführungsformen wird die Basisadresse als eine Funktion des Größenattributs bestimmt, so daß ein Speicherbereich der Größe X eine Basisadresse haben muß, die ein Vielfaches des Wertes X ist. Dieser Ansatz dient dazu, die Hardwareanforderungen zu vereinfachen. Die Basisadresse und das Größenattribut sind typischerweise benutzerprogrammierbar. Als eine Alternative zum Verwenden einer Basisadresse und eines Größenattributs können die Adreßbereiche für die logischen Bereiche durch eine Startadresse und eine Endadresse spezifiziert werden, die den Beginn und das Ende des logischen Bereiches angeben.
  • Die Adreßvergleicherlogik kann in jeder geeigneten Weise eingerichtet werden. Nach bevorzugten Ausführungsformen weist die Adreßvergleicherlogik eine Anzahl von Vergleichern auf, einen für jeden Adreßbereich.
  • Der Adreßbereichspeicher kann durch jede geeignete Speichereinrichtung bereitgestellt werden. Jedoch weist der Adreßbereichspeicher nach bevorzugten Ausführungsformen eine Anzahl von Registern auf. Vorzugsweise sind separate Register jedem Vergleicher der Adreßvergleicherlogik zugeordnet.
  • Der Attributspeicher kann jede passende Form annehmen. Jedoch weist der Attributspeicher nach bevorzugten Ausführungsformen eine Mehrzahl von Attributregistern auf, die an einen Multiplexer angeschlossen sind, wobei jedes Register die Attribute für einen logischen Bereich enthält, wobei die Attributbestimmungslogik ein Signal an den Multiplexer ausgibt, um den Multiplexer zu veranlassen, die Attribute aus dem Attributregister auszugeben, das dem die Adresse enthaltenden Bereich mit der höchsten Priorität entspricht.
  • Nach bevorzugten Ausführungsformen hat die Adreßvergleicherlogik eine Mehrzahl von Ausgaben bzw. Ausgängen, wobei ein Ausgang für jeden logischen Bereich bereitgestellt wird und ein Signal auf den Ausgängen erzeugt wird, um anzuzeigen, ob der zugehörige logische Bereich die Adresse enthält, wobei die Attributbestimmungslogik eine entsprechende Mehrzahl von Eingängen bzw. Eingaben zum Empfang der Signale von der Mehrzahl von Ausgängen hat und die Mehrzahl von Eingängen über relative Prioritäten verfügen, die von der Attributbestimmungslogik verwendet werden, um die zuvor festgelegten Prioritätskriterien anzuwenden.
  • Man erkennt jedoch, daß auch alternative Techniken zum Anwenden der zuvor festgelegten Prioritätskriterien verwendet werden könnten. Zum Beispiel können die zuvor festgelegten Prioritätskriterien als eine Prioritätsinformation in einem Speicher gespeichert werden, auf den die Attributbestimmungslogik zugreifen kann, wobei die Prioritätsinformation die relativen Prioritäten der logischen Bereiche angibt.
  • Nach bevorzugten Ausführungsformen weist die Datenverarbeitungsvorrichtung ferner einen Prozessorkern zur Ausgabe von Adressen, die Speicherstellen innerhalb des Speichers entsprechen, auf, wo von dem Prozessor benötigte Datenwerte gespeichert sind, oder wo von dem Prozessor verarbeitete Datenwerte gespeichert werden sollen. Darüber hinaus kann der Datenverarbeitungsschaltkreis einen Cachespeicher zum Speichern von Datenwerten aufweisen, auf die der Prozessorkern zugreifen kann. In einer solchen Anordnung erfolgt die Bestimmung der Attribute für den Bereich mit der höchsten Priorität zum Verbessern der Effizienz vorzugsweise, während ein Nachsehen im Cache stattfindet.
  • Ein einzelner Cachespeicher kann sowohl zum Speichern der Befehle als auch der Daten vorgesehen werden, wobei ein solcher Cachespeicher oft als ein Cachespeicher mit einer Von- Neumann-Cachearchitektur bezeichnet wird. Jedoch kann alternativ ein erster Cachespeicher zum Speichern von Befehlen und ein zweiter Cachespeicher zum Speichern von Daten vorgesehen werden, wobei ein solcher Cachespeicher oft als ein Cachespeicher mit einer Harvard-Architektur bezeichnet wird, wobei die Adreßvergleicherlogik und die Attributbestimmungslogik für jeden der ersten und zweiten Cachespeicher repliziert wird. Wenn separate Daten- und Befehlscachespeicher verwendet werden, werden folglich die Elemente des Datenverarbeitungsschaltkreises, die zum Bestimmen der Attribute benötigt werden, die zum Steuern des Zugriffs auf den Speicher verwendet werden, vorzugsweise für jeden Cachespeicher repliziert. Wie zuvor erwähnt erfolgt das Bestimmen der Attribute für den Bereich mit der höchsten Priorität vorzugsweise, während ein Nachsehen im Cache stattfindet. Wenn es zwei Cachespeicher gibt, kann ein Nachsehen im Datencachespeicher erfolgen, während eine Operation zum Nachsehen auch in dem Befehlscachespeicher stattfindet, und somit werden zwei Sätze von Schaltkreisen zum Bestimmen der Attribute benötigt, die für den Zugriff auf Speicheradressen verwendet werden, die sowohl in dem Befehls- als auch in dem Datencachespeicher den Operationen zum Nachsehen entsprechen.
  • Unter einem zweiten Aspekt betrachtet stellt die vorliegende Erfindung ein Verfahren für den Betrieb einer Datenverarbeitungsvorrichtung zur Verfügung, um den Zugriff auf einen Speicher mit einer Mehrzahl von Speicherstellen zum Speichern von Datenwerten zu steuern, wobei jede Speicherstelle eine zugehörige Adresse hat und wobei das Verfahren die folgenden Schritte aufweist: (a) Speichern von Information, die Adreßbereiche für eine Mehrzahl von logischen Bereichen innerhalb des Speichers angibt; (b) Speichern von Attributen für jeden logischen Bereich, wobei die Attribute zum Steuern des Zugriffs auf Speicherstellen innerhalb dieser logischen Bereiche verwendet werden; (c) Vergleichen einer von einem Prozessor ausgegebenen Adresse, die einer dieser Speicherstellen entspricht, mit den Adreßbereichen für diese Mehrzahl von logischen Bereichen; (d) falls einer oder mehrere der logischen Bereiche diese Adresse enthält, Generieren eines Signals, das diese logischen Bereiche angibt, die diese Adresse enthalten; (e) in Reaktion auf das in Schritt (d) erzeugte Signal Anwenden von zuvor festgelegten Prioritätskriterien, um festzustellen, welcher logische Bereich, der diese Adresse enthält, die höchste Priorität hat; und (f) Ausgeben der gespeicherten Attribute, die diesem Bereich mit der höchsten Priorität entsprechen, zur Verwendung beim Steuern des Zugriffs auf die Speicherstelle, die von der Adresse spezifiziert wird; wobei einer der logischen Bereiche ein Hintergrundbereich ist, der den gesamten Speicher überdeckt und die niedrigste Priorität dieser logischen Bereiche hat, wobei für den Fall, daß das bei Schritt (d) erzeugte Signal anzeigt, daß die von dem Prozessor ausgegebene Adresse einer Speicherstelle entspricht, die nicht innerhalb irgendeines der anderen logischen Bereiche liegt, dann bei Schritt (f) die mit dem Hintergrundbereich verbundenen, gespeicherten Attribute ausgegeben werden.
  • Kurzbeschreibung der Zeichnungen
  • Eine Ausführungsform der Erfindung wird nachstehend nur als Beispiel unter Bezug auf die beigefügten Zeichnungen beschrieben, in denen gleiche Bezugszeichen für gleiche Merkmale verwendet werden und in denen:
  • 1 ein Blockdiagramm ist, das eine Datenverarbeitungsvorrichtung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 2 eine Tabelle ist, die veranschaulicht, wie logische Bereiche unterschiedlicher Größe innerhalb des Speichers durch ein Größenfeld von fünf Bits gemäß bevorzugter Ausführungsformen der vorliegenden Erfindung angegeben werden können;
  • 3 ein Flußdiagramm ist, das die Verarbeitungsschritte veranschaulicht, die gemäß bevorzugter Ausführungsformen der vorliegenden Erfindung durchgeführt werden, um die Attribute zu bestimmen, die zum Steuern des Zugriffs auf einen Speicher verwendet werden; und
  • 4A und 4B Ausführungsformen der vorliegenden Erfindung veranschaulichen, in denen separate Daten- und Befehlscachespeicher verwendet werden.
  • Beschreibung einer bevorzugten Ausführungsform
  • Ein Datenverarbeitungsschaltkreis gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung wird hier unter Bezug auf das Blockdiagramm von 1 beschrieben. Wie in 1 gezeigt, hat der Datenverarbeitungsschaltkreis einen Prozessorkern 10, der darauf ausgerichtet ist, von dem Speicher 120 empfangene Befehle zu verarbeiten. Daten, die von dem Prozessorkern 10 zum Ausführen dieser Befehle benötigt werden, können auch aus dem Speicher 120 geholt werden. Ein Cachespeicher 30 zum Speichern von aus dem Speicher 120 geholten Daten und Befehlen steht zur Verfügung, so daß sie anschließend leicht für den Prozessorkern 10 verfügbar sind. Die Cachesteuereinheit 40 steht auch zur Verfügung, um die Speicherung von Befehlen und Daten in dem Cachespeicher 30 zu steuern, und das Abholen von Daten und Befehlen aus dem Cachespeicher zu steuern.
  • Gemäß bevorzugten Ausführungsformen der vorliegenden Erfindung kann eine Mehrzahl von logischen Bereichen innerhalb des Speichers 120 definiert werden, wobei jeder logische Bereich eine unabhängig programmierbare Größe hat. Zum Zweck der Beschreibung einer bevorzugten Ausführungsform wird ein Speicher 120 mit einem Adreßraum von 4 GB betrachtet und es wird angenommen, daß 8 logische Bereiche innerhalb des Adreßbereiches definiert werden können. Natürlich ist es den Fachleuten auf diesem Gebiet klar, daß die tatsächliche Größe des Speichers und die Anzahl von definierbaren logischen Bereichen nach Bedarf verändert werden kann, um spezielle Anforderungen des Datenverarbeitungsschaltkreises zu erfüllen.
  • Jeder logische Bereich ist vorzugsweise durch eine Basisadresse definiert, die angibt, wo der Bereich im Speicher beginnt, und durch ein Größenfeld, das die Größe dieses logischen Bereiches definiert. Um die Hardwareanforderungen des Vergleichers innerhalb der Schutzeinheit (die Schutzeinheit wird später genauer diskutiert) zu vereinfachen, wird eine Einschränkung auferlegt, daß die Basisadresse einer "Größen"grenze entsprechen muß. Demnach würde zum Beispiel ein logischer Bereich mit einer Größe von 1 MB so eingerichtet werden, daß er bei einer Basisadresse, die einer 1 MB-Grenze innerhalb des Speichers entspricht, beginnt. Fachleute auf diesem Gebiet erkennen, daß diese der Basisadresse in bevorzugten Ausführungsformen auferlegte Einschränkung nicht wesentlich ist, und daß es durch Bereitstellen komplexerer Hardware in der Schutzeinheit möglich wäre zuzulassen, daß die Basisadresse bei einer anderen Speicherstelle als einer Größengrenze beginnt.
  • Gemäß bevorzugten Ausführungsformen kann die Größe eines logischen Bereiches innerhalb des Bereiches von 4 KB bis 4 GB gewählt werden. Man sieht jedoch, daß diese Wahl des Bereiches je nach Wunsch geändert werden kann. 2 veranschaulicht eine Tabelle, die zeigt, wie ein Größenregister mit einem 5-Bit-Feld für unterschiedliche Speichergrößen programmiert werden kann. In dem in 2 dargestellten Beispiel kann die Größe um Potenzen von zwei variieren. Jedoch ist es Fachleuten auf diesem Gebiet klar, daß es keine Notwendigkeit gibt, die Größe in der Weise zu beschränken, daß sie um Potenzen von zwei variiert, und daß es durch Bereitstellen eines Größenregisters mit einer größeren Anzahl von Bits möglich ist, zusätzliche Flexibilität bei der Programmierung der Größe jedes Bereiches bereitzustellen.
  • Als eine Alternative zur Verwendung von Basis- und Größenregistern können auch Start- und Enderegister verwendet werden, um die logischen Bereiche zu definieren. In solchen Fällen würde die Information, die den tatsächlichen Adressen des Beginns und des Endes jedes logischen Bereiches entspricht, statt der Basisadresse und der Größe des Bereichs in Registern gespeichert werden.
  • Indem es ermöglicht wird, die logischen Bereiche mittels entweder der Basis- und Größenregister oder der Start- und Enderegister zu definieren, wie oben diskutiert, ist der Benutzer in der Lage, überlappende logische Bereiche im Speicher zu definieren. Nach bevorzugten Ausführungsformen der vorliegenden Erfindung hat jeder logische Bereich unabhängige Attribute wie damit verbundene Schutzattribute, im Cache speicherbare und pufferbare Attribute. Mit der Möglichkeit von überlappenden logischen Bereichen ist es natürlich wichtig, daß jeder Zugriff auf den Speicher in einer vorhersehbaren Weise behandelt wird. Nach bevorzugten Ausführungsformen wird dies durch Verwenden der in 1 dargestellten Schutzeinheit 20 erreicht, und die Funktionsweise dieser Schutzeinheit wird nun genauer beschrieben.
  • Wenn der Prozessorkern 10 einen Befehl oder ein Datenelement (im Anschluß werden sowohl Befehle als auch Daten als Datenwerte bezeichnet) benötigt, stellt er die Speicheradresse dieses Datenwertes auf die Busleitung 54 des Prozessorbusses 50. Darüber hinaus gibt der Prozessorkern 10 ein Prozessorsteuersignal auf der Busleitung 52 aus. Das Prozessorsteuersignal umfaßt Information wie diejenige, ob die Adresse einer Lese- oder einer Schreibanforderung entspricht, die Art des Zugriffs (z. B. sequentiell), die Größe des Zugriffs (z. B. Wort, Byte), die Betriebsart des Prozessors (z. B. Supervisor oder Benutzer), etc. Dieses Prozessorsteuersignal wird von der Cachesteuereinheit 40 empfangen und fordert die Cachesteuereinheit auf, zu bestimmen, ob der angeforderte Datenwert innerhalb des Cachespeichers 30 gespeichert ist. Die Cachesteuereinheit 40 weist den Cachespeicher 30 an, die Adresse auf der Busleitung 54 mit den Adressen in dem Cachespeicher zu vergleichen, um festzustellen, ob der Datenwert, der dieser Adresse entspricht, in dem Cachespeicher gespeichert ist. Falls ja, wird der Datenwert aus dem Cachespeicher 30 auf der Datenbusleitung 56 ausgegeben, aus der er dann von dem Prozessorkern 10 gelesen wird. Wenn der Datenwert, der der Adresse entspricht, nicht im Cachespeicher 30 ist, dann übergibt die Cachesteu ereinheit 40 ein Signal über die Leitung 130 an die Busschnittstelleneinheit 95, um anzuzeigen, daß der Datenwert aus dem Speicher 120 geholt werden muß.
  • Während dieser Vorgang des Nachsehens im Cachespeicher stattfindet, empfängt die Schutzsteuerung 150 innerhalb der Schutzeinheit 20 auch das Prozessorsteuersignal auf der Busleitung 52 und beim Feststellen, daß sich das Prozessorsteuersignal auf einen möglichen Lese- oder Schreibzugriff auf den Speicher 120 oder den Cachespeicher 30 bezieht, weist er die Adreßvergleicher 70 an, die von dem Prozessorkern 10 auf die Busleitung 54 gestellte Adresse zu prüfen. Nach bevorzugten Ausführungsformen gibt es einen Adreßvergleicher für jeden logischen Bereich und jeder der Vergleicher hat ein zugeordnetes Register, das den Adreßbereich für einen bestimmten logischen Bereich enthält. Jeder Vergleicher ist darauf ausgerichtet, diesen Adreßbereich mit der speziellen Adresse auf der Busleitung 54 zu vergleichen, um festzustellen, ob die Adresse in dem zugehörigen logischen Bereich enthalten ist. Jedesmal wenn ein Vergleicher feststellt, daß die Adresse in dem Adreßbereich des logischen Bereiches liegt, gibt er ein Treffersignal an den Prioritätskodierer 75 über eine entsprechende Leitung 160 aus.
  • Der Prioritätskodierer 75 empfängt die Signale, die von allen Vergleichern 70 ausgegeben werden. Wenn der Prioritätskodierer ein einziges Treffersignal empfängt, dann zeigt dies an, daß die Adresse nur innerhalb eines logischen Bereichs liegt. In diesem Fall sendet der Prioritätskodierer 75 ein Signal an den Multiplexer 80, um den Multiplexer 80 anzuweisen, aus den Attributregistern 85 die diesem logischen Bereich entsprechenden Attribute auszuwählen. Diese Attribute werden danach verwendet, um den Zugriff auf den Speicher 120 oder die Verwendung der aus dem Cachespeicher 30 geholten Datenwertes zu steuern. Nach bevorzugten Ausführungsformen gibt es immer mindestens ein erzeugtes Treffersignal, da einer der logischen Bereiche ein Hintergrundbereich ist, der den gesamten Adreßraum des Speichers 120 abdeckt. Es ist jedoch nicht wesentlich, daß ein Hintergrundbereich definiert ist, und somit ist es nach alternativen Ausführungsformen möglich, daß kein Treffersignal von den Adreßvergleichern 70 erzeugt werden kann. In diesem Fall wird der Prioritätskodierer 75 darauf ausgerichtet, ein Signal zu erzeugen, das angibt, daß keine Treffer entdeckt wurden, und dieses Signal wird von dem Prioritätskodierer 75 an die Logik 90 ausgegeben. Wie der Datenverarbeitungsschaltkreis auf diesen Fall reagiert, würde davon abhängen, wie die Logik 90 eingerichtet ist. Zum Beispiel kann die Logik so eingerichtet werden, daß jeder Versuch, auf eine Adresse zuzugreifen, die nicht innerhalb irgendeines der logischen Bereiche enthalten ist, in einem Abbruchsignal resultiert, das an den Prozessorkern 10 über die Leitung 140 zurückgeliefert wird.
  • Angenommen mehr als ein Treffersignal wird durch die Adreßvergleicher 70 ausgegeben, dann ist der Prioritätskodierer 75 darauf ausgelegt, Prioritätskriterien anzuwenden, um die relativen Prioritäten jedes der definierten logischen Bereiche zu bestimmen. Die Prioritätsinformation, die sich auf jeden logischen Bereich bezieht, kann innerhalb der Schutzeinheit 20 gespeichert sein, und für jeden logischen Bereich, für den die Adreßvergleicher ein Treffersignal erzeugt haben, kann der Prioritätskodierer darauf ausgelegt sein, die entsprechende Prioritätsinformation zu verwenden, um festzustellen, welcher logische Bereich die höchste Priorität hat.
  • Nach bevorzugten Ausführungsformen werden die relativen Prioritäten der logischen Bereiche jedoch durch die Anordnung der Eingaben an bzw. Eingänge zu dem Prioritätskodierer 75 festgelegt. Wenn es acht Adreßvergleicher 70 (Vergleicher 0–7) gibt, die acht logischen Bereichen (logische Bereiche 0–7) entsprechen, dann gibt es vorzugsweise acht entsprechende Drähte 160, die mit acht Eingängen (Eingänge 0–7) an dem Prioritätskodierer 75 verbunden sind. Den Eingängen, die den logischen Bereichen entsprechen, können dann Prioritäten zugewiesen werden, so daß die Priorität mit der Eingangsnummer ansteigt, d. h. die Eingangsnummer 7 hat die höchste Priorität, die Eingangsnummer 0 hat die niedrigste Priorität.
  • Der Prioritätskodierer ist dann dafür ausgelegt, bedingte Logik anzuwenden, indem er zuerst bestimmt, ob ein Treffersignal an dem dem logischen Bereich 7 entsprechenden Eingang Nummer 7 empfangen wurde. Wenn ja, dann wird von dem Prioritätskodierer 75 ein Signal an den Multiplexer 80 ausgegeben, das anzeigt, daß die Attribute für den logischen Bereich 7 aus den Attributregistern 85 ausgegeben werden sollten. Wenn kein Treffersignal am dem logischen Bereich 7 entsprechenden Eingang empfangen wurde, stellt der Prioritätskodierer 75 fest, ob ein Treffersignal am dem logischen Bereich 6 entsprechenden Eingang 6 empfangen wurde. Falls ja, dann wird von dem Prioritätskodierer 75 ein Signal an den Multiplexer 80 ausgegeben, das anzeigt, daß die Attribute für den logischen Bereich 6 aus den Attributregistern 85 ausgegeben werden sollten. Wenn kein Treffersignal am dem logischen Bereich 6 entsprechenden Eingang empfangen wurde, dann wird derselbe Vorgang für jeden Eingang nacheinander wiederholt, bis ein Eingang mit einem Treffersignal gefunden wird. Wenngleich die obige Beschreibung den Vorgang in logischen Begriffen angibt, wird eingeräumt, daß der tatsächliche Vorgang typischerweise nicht wie beschrieben sequentiell durchgeführt würde, sondern stattdessen eine passende Logik vorgesehen würde, um alle acht Eingänge zusammen zu empfangen und eine Ausgabe zu erzeugen, die den Bereich mit der höchsten Priorität angibt.
  • Nach bevorzugten Ausführungsformen gibt es immer ein Treffersignal in dem Bereich mit der niedrigsten Priorität (Bereich 0), da dieser als ein Hintergrundbereich eingerichtet wird, der den gesamten Speicheradreßraum abdeckt. Somit führt die von dem Prioritätskodierer 75 durchgeführte Verarbeitung zu einem Signal, das an den Multiplexer 80 gesendet wird und den Multiplexer anweist, die Attribute aus den Attributregistern 85 zu holen, die demjenigen Bereich mit der höchsten Priorität entsprechen, der die von dem Prozessorkern 10 ausgegebene Adresse enthält. Die von dem Multiplexer 80 ausgegebenen Attribute werden dann der Logikeinheit 90 und der Busschnittstelleneinheit 95 übergeben. Die Logikeinheit 90 empfängt auch das Prozessorsteuersignal von der Busleitung 52. Dieses Prozessorsteuersignal definiert unter anderem die Betriebsart des Prozessorkerns 10. Daher kann die Logik 90 diese Information verwenden, um zu bestimmen, ob die von dem Multiplexer 80 ausgegebenen Attribute es dem Prozessorkern 10 in seiner aktuellen Betriebsart erlauben, auf die angeforderte Speicheradresse zuzugreifen. Wenn zum Beispiel die Logikeinheit 90 ermittelt, daß der Prozessorkern 10 in einem Benutzermodus ist und die von dem Multiplexer 80 ausgegebenen Attribute anzeigen, daß auf die Speicheradresse nur im Supervisormodus zugegrif fen werden kann, dann kann die Logik 90 dafür ausgelegt sein, ein Abbruchsignal auf dem Pfad 140 an den Prozessorkern 10 und auf dem Pfad 170 an die Busschnittstelleneinheit 95 zu erzeugen.
  • Die von der Schutzeinheit 20 durchgeführte Verarbeitung geschieht vorzugsweise zur selben Zeit wie der Vorgang des Nachsehens im Cachespeicher, um eine ausreichende Verarbeitungsgeschwindigkeit aufrecht zu erhalten. Wenn der angeforderte Datenwert in dem Cachespeicher 30 verfügbar ist und die Logikeinheit 90 kein Abbruchsignal auf der Leitung 140 erzeugt, dann verwendet der Prozessorkern 10 die aus dem Cachespeicher 30 geholten Daten. Wenn jedoch der angeforderte Datenwert nicht im Cachespeicher verfügbar ist, dann wird, wie zuvor diskutiert, ein Signal über den Pfad 130 gesendet, das die Busschnittstelleneinheit (Bus Interface Unit, BIU) 95 anweist, für den Datenwert auf den Speicher 120 zuzugreifen.
  • Die BIU 95 prüft das Prozessorsteuersignal auf der Busleitung 52, um festzustellen, ob der von dem Prozessorkern 10 ausgegebene Befehl ein Lese- oder Schreibbefehl ist. Angenommen, es ist ein Lesebefehl und es wird kein Abbruchsignal über den Pfad 170 aus der Logik 90 empfangen, dann weist die BIU 95 den Multiplexer 100 an, die Adresse von der Busleitung 54 an die externe Adreßbusleitung 64 von Bus 60 zu übergeben (das heißt anzunehmen, daß keine anhängigen Schreibbefehle auf den Speicher 120 in dem Schreibpuffer 105 anhängig sind – wenn irgendwelche solchen anhängigen Schreibbefehle vorhanden sind, werden diese vor dem Lesebefehl zu Ende geführt. Die Aktion des Schreibpuffers wird später genauer diskutiert). Ein Steuersignal wird auch auf die Busleitung 62 eingestellt, das von der Speichersteuerung 180 verwendet wird, um den Zugriff auf den Speicher 120 zu steuern. Die Speichersteuerung 180 stellt aus dem Steuersignal auf der Busleitung 62 fest, daß ein Speicherlesevorgang angefordert ist, und weist den Speicher an, die Daten an der auf der Adreßbusleitung 64 angegebenen Adresse auf der Datenbusleitung 66 auszugeben.
  • Die BIU 95 sendet ein Signal an den Puffer 110, um den Puffer 110 zu veranlassen, die von dem Speicher 120 auf die externe Busleitung 66 eingestellten Daten an die Prozessorbusleitung 56 zu übergeben. Darüber hinaus wird dann die BIU 95, wenn die von der BIU 95 aus dem Multiplexer 80 der Schutzeinheit 20 empfangenen Attribute anzeigen, daß die Adresse einen im Cache speicherbaren Datenwert enthält, ein Signal über den Pfad 135 an die Cachesteuerung 40 senden, um die Cachesteuerung anzuweisen, den geholten Datenwert in dem Cachespeicher 30 zu speichern. Der aus dem Speicher 120 geholte und auf die Busleitung 56 eingestellte Datenwert wird danach in dem Cachespeicher 30 gespeichert und auch an den Prozessorkern 10 übergeben. Anschließend kann auf diesen Datenwert von dem Prozessorkern 10 einfach aus dem Cachespeicher zugegriffen werden. Wenn die von der BIU 95 empfangenen Attribute anzeigen, daß der Datenwert nicht im Cache speicherbar ist, dann werden die Daten nicht im Cachespeicher gespeichert, und der Prozessorkern 10 liest den Datenwert von der Busleitung 56.
  • Die obige Beschreibung hat verdeutlicht, wie die Schutzeinheit 20 verwendet wird, um den Zugriff auf den Speicher 120 zum Zweck des Lesens von Datenwerten aus dem Speicher 120 zu steuern. Für den Fall, daß die von dem Prozessorkern 10 ausgegebene Adresse eine Adresse ist, auf die der Prozessor einen Datenwert schreiben will, so findet die folgende Prozedur statt.
  • Der Prozessorkern stellt ein Prozessorsteuersignal auf die Busleitung 52, eine Adresse auf die Busleitung 54 und den zu speichernden Datenwert auf die Busleitung 56. Die Schutzsteuerung 150 innerhalb der Schutzeinheit 20 prüft das Prozessorsteuersignal auf der Busleitung 52 und beim Feststellen, daß sich das Prozessorsteuersignal auf einen Schreibzugriff auf den Speicher 120 bezieht, weist sie die Adreßvergleicher 70 an, die von dem Prozessorkern 10 auf die Busleitung 54 eingestellte Adresse zu überprüfen. Die Schutzeinheit führt dann dieselbe Prozedur wie zuvor unter Bezug auf einen Schreibbefehl beschrieben aus, um den logischen Bereich mit der höchsten Priorität, der diese Adresse enthält, zu ermitteln. Das führt dazu, daß die diesem Bereich entsprechenden Attribute an die BIU 95 und die Logik 90 ausgegeben werden.
  • Die BIU 95 überprüft das Prozessorsteuersignal auf der Busleitung 52, um festzustellen, ob der von dem Prozessorkern 10 ausgegebene Befehl ein Lese- oder ein Schreibbefehl ist. Angenommen es ist ein Schreibbefehl, dann stellt die BIU fest, daß ein Schreibvorgang angewendet werden muß und verwendet die von der Schutzeinheit 20 empfangene Attributinformation, um diesen Schreibvorgang zu steuern.
  • Die Logikeinheit 90 hat aus den von dem Multiplexer 80 ausgegebenen Attributen und aus dem Prozessorsteuersignal ermittelt, ob der Prozessorkern in der Lage ist, in seiner aktuellen Betriebsart auf die spezielle Adresse zu schreiben, und hat, falls nicht, ein Abbruchsignal ausgegeben. Jegliches Abbruchsignal wird über den Pfad 170 an die BIU 95 gesendet, um sie anzuweisen, den Schreibbefehl zu ignorieren, und auch über den Pfad 140 an den Prozessorkern 10 gesendet, um zu veranlassen, daß die Daten, die Adresse und die Steuerinformation von den Busleitungen 56, 54 bzw. 52 weggenommen werden, und den Prozessorkern 10 in die Lage zu versetzen, irgendeine Ausnahmeprozedur auszuführen, die im Fall eines solchen Abbruchs erforderlich ist.
  • Angenommen jedoch, der Prozessorkem ist berechtigt, auf die auf die Busleitung 54 eingestellte Adresse zu schreiben, und empfängt demnach von der BIU 95 kein Abbruchsignal, dann verwendet die BIU 95 die Attributinformation von dem Multiplexer 80, um festzustellen, ob die zu schreibenden Daten gepuffert werden können oder nicht. Wenn die Daten gepuffert werden können, dann weist die BIU 95 den Schreibpuffer 105 an, die Daten, die Adresse und die Steuersignale vom Bus 50 zu holen. Sobald dies erfolgt ist, kann der nächste Befehl von dem Prozessorkern 10 verarbeitet werden, ohne darauf zu warten, daß der Schreibbefehl abgeschlossen ist.
  • Der Schreibpuffer ist vorzugsweise ein FIFO-Puffer. Wenn der externe Bus 60 frei ist, weist die BIU 95 den Multiplexer 100 an, den nächsten Eintrag aus dem Schreibpuffer auf den externen Bus 60 auszugeben. Der Multiplexer 100 gibt daraufhin die notwendigen Steuer-, Adreß- und Datensignale auf die Busleitungen 62, 64 bzw. 66 aus, wobei die Speichersteuerung 180 das Steuersignal verwendet, um den Schreibzugriff auf den Speicher 120 zu steuern. Zu diesem Zeitpunkt werden die Daten in dem Speicher 120 gespeichert. Da die zu speichernden Daten aus dem Schreibpuffer 105 sequentiell verarbeitet werden, werden demnach zu einem gewissen Zeitpunkt die Daten, die der von dem Prozessor auf der Busleitung 54 ausgegebenen Adresse entsprechen, in dem Speicher 120 gespeichert sein.
  • Wenn jedoch die Busschnittstelleneinheit 95 feststellt, daß die Adresse, auf die die Daten zu speichern sind, nicht gepuftert werden kann, dann weist die Busschnittstelleneinheit 95 den Multiplexer 100 an, die Prozessorsteuer-, Adreß- und Dateninformation aus den Busleitungen 52, 54 und 56 direkt auszuwählen. Der Multiplexer 100 gibt dann diese Information auf den externen Bus 60 aus, um zu veranlassen, daß die Daten an der entsprechenden Adresse in dem Speicher 120 gespeichert werden. Jedoch bevor dies erfolgt, würde der Schreibpuffer 105 typischerweise von allen Einträgen in ihm geleert werden, um dadurch sicherzustellen, daß die Schreibbefehle in der richtigen Reihenfolge verarbeitet werden. Sobald die nicht pufferbaren Daten, die dem aktuellen Schreibbefehl entsprechen, gespeichert wurden, kann danach der nächste Befehl verarbeitet werden.
  • Der Vorgang, der von der Schutzeinheit 20 durchgeführt wird, wird nun unter Bezug auf 3 diskutiert, die ein Flußdiagramm der innerhalb der Schutzeinheit 20 durchgeführten Verarbeitungsschritte ist. Bei Schritt 300 wartet die Schutzeinheit 20 darauf, daß die Adresse von dem Prozessorkern 10 auf die Adreßbusleitung 54 eingestellt wird. Wie zuvor erwähnt, reagiert die Schutzsteuerung 150 innerhalb der Schutzeinheit 20 auf ein Steuersignal auf dem PC-Bus 52, um die Adreßvergleicher 70 anzuweisen, die von dem Prozessorkern 10 auf die Busleitung 54 gestellte Adresse zu überprüfen. Nach bevorzugten Ausführungsformen ist ein Adreßvergleicher für jeden logischen Bereich vorgesehen und somit gibt es in bevorzugten Ausführungsformen acht Adreßvergleicher innerhalb des Adreßvergleicherblocks 70. Jeder Adreßvergleicher besitzt ein zugeordnetes Adreßregister, das den Adreßbereich für den zugehörigen logischen Bereich enthält. Die aus der Adreßleitung 54 empfangene Adresse wird bei Schritt 310 mit dem Adreßbereich in dem zugeordneten Adreßregister verglichen, und wenn die Adresse innerhalb dieses Adreßbereiches liegt, wird ein "Treffer"-Signal von diesem Adreßvergleicher bei Schritt 320 auf einem zugehörigen Draht 160 ausgegeben.
  • Alle von den Adreßvergleichern 70 erzeugten Signale werden dem Prioritätskodierer 75 übergeben, wo bei Schritt 330 die Prioritätskriterien angewandt werden, um den die Adresse enthaltenden logischen Bereich zu ermitteln, der die höchste Priorität hat. Wie zuvor erwähnt, wird dies nach bevorzugten Ausführungsformen dadurch ausgeführt, daß der Prioritätskodierer dafür ausgelegt wird, bedingte Logik anzuwenden, indem zuerst ermittelt wird, ob ein Treffersignal auf dem Eingang, der dem Bereich mit der höchsten Priorität entspricht, empfangen wurde. Falls nicht, wird der Eingang, der dem Bereich mit der nächst höchsten Priorität entspricht, geprüft und so weiter, bis ein Treffersignal erkannt wird. Da der Prioritätskodierer 75 die Eingänge logisch in der Reihenfolge abnehmender Priorität prüft, entspricht das erste erkannte Treffersignal dem logischen Bereich mit der höchsten Priorität, der die von dem Prozessorkern 10 ausgegebene Adresse enthält. Man erkennt, daß dieser Vorgang nicht sequentiell Eingang für Eingang durchgeführt werden muß und daß nach bevorzugten Ausführungsformen eine geeignete Logik vorgesehen werden würde, um alle acht Eingänge zusammen zu empfangen und eine Ausgabe zu erzeugen, die den Bereich mit der höchsten Priorität angibt.
  • Nach bevorzugten Ausführungsformen gibt es immer mindestens ein Treffersignal, da entweder der gesamte Adreßraum von den verschiedenen logischen Bereichen überdeckt wird oder einer der logischen Bereiche ein Hintergrundbereich ist, der den gesamten Adreßraum des Speichers 120 abdeckt. Jedoch ist es nicht notwendig, daß ein logischer Hintergrundbereich definiert ist, und somit ist es möglich, daß ein Treffersignal nicht erzeugt werden kann, womit angezeigt wird, daß die von dem Prozessorkern 10 ausgegebene Adresse einem "Loch" im Speicher 120 entspricht. In solchen Fällen, wenn ein Hintergrundbereich fehlt, wird das System typischerweise hart verdrahtet, um festzulegen, wie Zugriffe auf Löcher behandelt werden; zum Beispiel kann es dafür ausgelegt sein, daß jeder Zugriff auf ein Loch zu einem Abbruchsignal führt, das von der Logik 90 erzeugt wird. Wenn andererseits ein logischer Hintergrundbereich definiert ist, dann gibt es keine Notwendigkeit, sich darauf zu verlassen, da die Attribute, die diesem Hintergrundbereich entsprechen, zur Steuerung des Zugriffs verwendet werden.
  • Angenommen ein Hintergrundbereich soll als der Bereich mit der niedrigsten Priorität definiert werden, dann kann dieser Hintergrundbereich hart verdrahtet werden, um den gesamten Adreßraum zu überdecken. Dann kann dieser Bereich mit der niedrigsten Priorität von dem Vergleichsprozeß, der von den Adreßvergleichern 70 durchgeführt wird, ausgeschlossen werden, was zu einem Vergleicher weniger und einem Draht 160 weniger zu dem Prioritätskodierer 75 führt. Für den Fall, daß von den Adreßvergleichern 70 keine Treffersignale erzeugt werden, was anzeigt, daß keiner der anderen logischen Bereich die Adresse enthält, kann dann der Prioritätskodierer 75 dafür ausgelegt sein, ein Signal an den Multiplexer 80 zu senden, um ihn anzuweisen, die mit dem Bereich niedrigster Priorität verbundenen Attribute auszuwählen. Dieser Ansatz kann die Effizienz verbessern, wenngleich dadurch die Flexibilität leicht reduziert wird, da die Adreßvergleicher die Adresse nicht mit dem Adreßbereich für den Bereich mit der niedrigsten Priorität vergleichen, weshalb die Attribute für diesen Bereich mit der niedrigsten Priorität als eine direkte Konsequenz daraus verwendet werden, daß die Adreßvergleicher feststellen, daß kein anderer logischer Bereich die Adresse enthält.
  • Sobald der Prioritätskodierer 75 festgestellt hat, welcher die Adresse enthaltende logische Bereich die höchste Priorität hat, gibt er ein Signal an den Multiplexer 80 aus, um den Multiplexer anzuweisen, bei Schritt 340 die Attribute aus demjenigen Attributregister 85 auszuwählen, das die Attribute für diesen logischen Bereich enthält. Sobald die Attribute von dem Multiplexer 80 ausgewählt sind, werden diese Attribute bei Schritt 350 zur Verwendung bei der Steuerung des Speicher- oder Cachespeicherzugriffs ausgegeben.
  • Nach bevorzugten Ausführungsformen wird von der Logikeinheit 90 eine abschließende Prüfung durchgeführt, ob die bei Schritt 350 ausgegebenen Attribute anzeigen, daß der Prozessorkern 10 in seiner aktuellen Betriebsart keinen Zugriff auf die Speicheradresse innerhalb des logischen Bereiches definiert durch diese Attribute haben sollte. Wenn zum Beispiel der Prozessorkern 10 in einem Benutzermodus arbeitet und eines der bei Schritt 370 ausgegebenen Attribute anzeigt, daß auf die Adresse nur im Supervisormodus zugegriffen werden darf, gibt die Logikeinheit 90 ein Abbruchsignal über den Pfad 140 an den Prozessorkern 10 aus, um anzuzeigen, daß der Prozessorkern 10 nicht auf diesen Speicherbereich zugreifen kann, und sendet das Abbruchsignal auch über den Pfad 170 an die BIU 95.
  • Die obenstehende Beschreibung hat eine Datenverarbeitungsvorrichtung diskutiert, in der eine Mehrzahl von logischen Speicherbereichen variabler Größe definiert werden kann und in der sich diese logischen Bereiche überlappen können, um die Flexibilität der Vorrichtung zu verbessern.
  • Obwohl hier eine bestimmte Ausführungsform beschrieben wurde, erkennt man, daß die Erfindung nicht hierauf beschränkt ist und daß viele Abwandlungen und Ergänzungen hierzu innerhalb des Anwendungs- bzw. Geltungsbereiches der Erfindung vorgenommen werden können. Zum Beispiel kann der Cachespeicher 30 verwendet werden, um sowohl Befehle als auch Daten wie in 1 dargestellt zu speichern, oder alternativ kann ein Cachespeicher zum Speichern von Befehlen und ein separater Cachespeicher zum Speichern von Daten vorgesehen werden. In diesem letzteren Fall würden vorzugsweise zwei Schutzeinheiten 20 verwendet werden, eine für Befehle und eine für Daten. Zwei Möglichkeiten, wie dies implementiert werden könnte, sind in den 4A und 4B dargestellt.
  • In 4A kann auf den Befehlscachespeicher 430 und den Datencachespeicher 440 von dem Prozessorkern 10 gleichzeitig zugegriffen werden. Wenn eine Befehlsadresse für ein Nachsehen in dem Befehlscachespeicher 430 verwendet wird, wird diese Adresse auch für die Schutzeinheit 400 angewandt, um die Attribute zu bestimmen, die zur Zugriffssteuerung auf den Speicher verwendet werden sollten, falls erforderlich. In ähnlicher Weise wird, wenn eine Datenadresse für ein Nachsehen in dem Datencachespeicher 440 verwendet wird, diese Adresse auch auf die Schutzeinheit 410 angewandt, um die Attribute zu bestimmen, die zur Zugriffssteuerung auf den Speicher verwendet werden sollten, falls benötigt. Die Schutzeinheiten 400 und 410 sind vorzugsweise dieselben wie die in 1 dargestellte Schutzeinheit 20, mit der Ausnahme, daß die Attributregister und die Register, die die logischen Bereiche definieren, nun durch einen Satz von Registern 420 bereitgestellt werden. Somit werden in 4A dieselben logischen Bereiche und Attribute sowohl für Daten- als auch Befehlszugriffe auf den Speicher verwendet.
  • Ein alternativer, in 4B dargestellter Ansatz ist jedoch, daß die Schutzeinheiten 400 und 410 separate Register 450 bzw. 460 haben, wodurch es möglich wird, logische Bereiche unterschiedlicher Größe mit unterschiedlichen Attributen für Zugriffe auf Daten und Befehle zu spezifizieren. Dies stellt eine größere Flexibilität zur Verfügung, da es zum Beispiel einen Bedarf für Datenbereiche mit anderer Größe als bei Befehlsbereichen geben kann.

Claims (16)

  1. Datenverarbeitungsvorrichtung für die Steuerung des Zugriffs auf einen Speicher (120), der eine Mehrzahl von Speicherstellen zum Speichern von Datenwerten hat, wobei jede Speicherstelle eine entsprechende Adresse hat und wobei die Vorrichtung aufweist: einen Adreßbereichsspeicher (70) zum Speichern von Information, welche Adreßbereiche für eine Mehrzahl von logischen Bereichen innerhalb des Speichers bezeichnet, einen Attributspeicher (85), um für jeden logischen Bereich Attribute zu speichern, die verwendet werden, um den Zugriff auf Speicherstellen innerhalb des logischen Bereiches zu kontrollieren, eine Adreßvergleichslogik (70), um eine Adresse, die durch einen Prozessor ausgegeben wurde und einer der Speicherstellen entspricht, mit den Adreßbereichen für die Mehrzahl von logischen Bereichen zu vergleichen, und, falls einer oder mehrere der logischen Bereiche die Adresse enthalten, ein Signal zu erzeugen, welches diese logischen Bereiche kennzeichnet, welche die Adresse enthalten, eine Attributbestimmungslogik (75), die auf das durch die Adreßvergleichslogik erzeugte Signal reagiert, um vorbestimmte Prioritätskriterien anzuwenden, um zu bestimmen, welcher logische Bereich, der die Adresse enthält, die höchste Priorität hat, und um die Ausgabe der Attribute in dem Attributspeicher (85) zu veranlassen, welcher dem Bereich der höchsten Priorität entspricht, und zwar für die Verwendung bei der Steuerung des Zugriffs auf die Speicherstelle, welche durch die Adresse angegeben wurde, wobei einer der logischen Bereiche ein Hintergrundbereich ist, der den gesamten Speicher abdeckt und die niedrigste Priorität der logischen Bereiche hat, wobei, wenn die durch den Prozessor ausgegebene Adresse einer Speicherstelle entspricht, die nicht innerhalb irgendeines der anderen logischen Bereiche liegt, die Attributbestimmungslogik (55) dafür ausgelegt ist, die Ausgabe der Attribute zu veranlassen, die mit dem Hintergrundbereich verknüpft sind.
  2. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei die Adreßbereiche für die logischen Bereiche durch eine Basisadresse angegeben werden, welche kennzeichnet, bei welcher Speicherstelle der Bereich beginnt und wobei ein Größenattribut die Größe des logischen Bereichs kennzeichnet.
  3. Datenverarbeitungsvorrichtung nach Anspruch 2, wobei die Basisadresse als eine Funktion des Größenattributs bestimmt wird, so daß ein Speicherbereich der Größe X eine Basisadresse haben muß, die ein Mehrfaches des Wertes X ist.
  4. Datenverarbeitungsvorrichtung nach Anspruch 2 oder 3, wobei die Basisadresse und das Größenattribut durch den Benutzer programmierbar sind.
  5. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei die Adreßbereiche für die logischen Bereiche durch eine Startadresse und eine Endadresse spezifiziert werden, welche den Beginn und das Ende des logischen Bereichs kennzeichnen.
  6. Datenverarbeitungsvorrichtung nach Anspruch 5, wobei die Startadresse und die Endadresse durch den Benutzer programmierbar sind.
  7. Datenverarbeitungsvorrichtung nach einem der vorstehenden Ansprüche, wobei die Adreßvergleichslogik eine Anzahl von Komparatoren aufweist, und zwar für jeden Adreßbereich einen.
  8. Datenverarbeitungsvorrichtung nach einem der vorstehenden Ansprüche, wobei der Adreßspeicherbereich eine Anzahl von Registern aufweist.
  9. Datenverarbeitungsvorrichtung nach Anspruch 8, soweit dieser von Anspruch 7 abhängig ist, wobei jedem Komparator getrennte Register zugeordnet sind.
  10. Datenverarbeitungsvorrichtung nach einem der vorstehenden Ansprüche, wobei der Attributspeicher eine Mehrzahl von Attributregistern aufweist, die mit einem Multiplexer verbunden sind, wobei jedes Register die Attribute für einen logischen Bereich enthält, und wobei die Attributbestimmungslogik ein Signal an den Multiplexer ausgibt, um zu bewirken, daß der Multiplexer die Attribute aus dem Attributregister ausgibt, welches dem Bereich der höchsten Priorität entspricht, der die Adresse enthält.
  11. Datenverarbeitungsvorrichtung nach einem der vorstehenden Ansprüche, wobei die Adreßvergleichslogik eine Mehrzahl von Ausgängen hat, wobei ein Ausgang für jeden logischen Bereich vorgesehen ist und wobei ein Signal an den Ausgängen erzeugt wird, um anzuzeigen, ob der entsprechende logische Bereich die Adresse enthält, wobei die Attributbestimmungslogik eine entsprechende Mehrzahl von Eingängen für den Empfang der Signale aus der Mehrzahl von Ausgängen hat und die Mehrzahl von Eingängen relative Prioritäten haben, welche durch die Attributbestimmungslogik verwendet werden, um die vorbestimmten Prioritätskriterien anzuwenden.
  12. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1 bis 10, wobei die vorbestimmten Prioritätskriterien als Prioritätsinformation in einem Speicher gespeichert sind, welcher für die Attributbestimmungslogik zugänglich ist, wobei die Prioritätsinformation die relativen Prioritäten der logischen Bereiche spezifiziert.
  13. Datenverarbeitungsvorrichtung nach einem der vorstehenden Ansprüche, welche weiterhin aufweist: einen Prozessorkern für das Ausgeben von Adressen, die Speicherstellen innerhalb des Speichers entsprechen, wo Datenwerte, die durch den Prozessor benötigt werden, gespeichert sind, oder Datenwerte, die durch den Prozessorkern verarbeitet werden, gespeichert werden sollen.
  14. Datenverarbeitungsvorrichtung nach Anspruch 13, welche weiterhin einen Cache zum Speichern von Datenwerten aufweist; die für den Prozessorkern zugänglich sind.
  15. Datenverarbeitungsvorrichtung nach Anspruch 14, wobei ein erster Cache für das Speichern von Befehlen und ein zweiter Cache für das Speichern von Daten vorgesehen ist, wobei die Adreßvergleichslogik und die Attributbestimmungslogik für jeden der ersten und zweiten Caches abgeglichen werden.
  16. Verfahren zum Betreiben einer Datenverarbeitungsvorrichtung für die Steuerung von Zugriff auf einen Speicher (120), der eine Mehrzahl von Speicherstellen zum Speichern von Datenwerten hat, wobei jede Speicherstelle eine entsprechende Adresse hat und wobei das Verfahren die Schritte aufweist: (a) Speichern von Information, welche Adreßbereiche für eine Mehrzahl von logischen Bereichen innerhalb des Speichers kennzeichnet, (b) für jeden logischen Bereich Speichern von Attributen, die verwendet werden, um Zugriff auf Speicherstellen innerhalb des logischen Bereichs zu steuern bzw. zu kontrollieren, (c) Vergleichen einer Adresse, die durch einen Prozessor ausgegeben wird und welche einer der Speicherstellen entspricht, mit den Adreßbereichen für die Mehrzahl von Speicherbereichen, (d) falls einer oder mehrere der logischen Bereiche die Adresse enthalten, Erzeugen eines Signals, welches diejenigen logischen Bereiche kennzeichnet, welche die Adresse enthalten, (e) in Reaktion auf das in Schritt (d) erzeugte Signal Anwenden vorbestimmter Prioritätskriterien, um zu bestimmen, welcher der logischen Bereiche, die die Adresse enthalten, die höchste Priorität hat, und (f) Ausgeben der gespeicherten Attribute, welche dem Bereich der höchsten Priorität entsprechen, für die Verwendung bei der Steuerung des Zugriffs auf die Speicherstelle, welche durch die Adresse angegeben wurde, wobei einer der logischen Bereiche ein Hintergrundbereich ist, welcher den gesamten Speicher abdeckt und welcher die niedrigste Priorität der Speicherbereiche hat, wobei dann, wenn das in Schritt (d) erzeugte Signal anzeigt, daß die durch den Prozessor ausgegebene Adresse einer Speicherstelle entspricht, die nicht innerhalb irgendeines der anderen logischen Speicherbereiche liegt, in Schritt (f) die zu dem Hintergrundbereich gehörenden, gespeicherten Attribute ausgegeben werden.
DE69823180T 1997-04-30 1998-02-03 Speicherzugangsschutz Expired - Lifetime DE69823180T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9708822A GB2325061B (en) 1997-04-30 1997-04-30 Memory access protection
GB9708822 1997-04-30
PCT/GB1998/000344 WO1998049623A1 (en) 1997-04-30 1998-02-03 Memory access protection

Publications (2)

Publication Number Publication Date
DE69823180D1 DE69823180D1 (de) 2004-05-19
DE69823180T2 true DE69823180T2 (de) 2004-11-11

Family

ID=10811626

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69823180T Expired - Lifetime DE69823180T2 (de) 1997-04-30 1998-02-03 Speicherzugangsschutz

Country Status (12)

Country Link
US (1) US6021476A (de)
EP (1) EP0979456B1 (de)
JP (1) JP3710490B2 (de)
KR (1) KR100563222B1 (de)
CN (1) CN1118027C (de)
DE (1) DE69823180T2 (de)
GB (1) GB2325061B (de)
IL (1) IL132418A (de)
MY (1) MY114810A (de)
RU (1) RU2215321C2 (de)
TW (1) TW376475B (de)
WO (1) WO1998049623A1 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272605B1 (en) * 1998-06-01 2001-08-07 International Business Machines Corporation System using priority data of a host recall request to determine whether to release non-volatile storage with another host before processing further recall requests
US6832257B1 (en) * 1998-12-07 2004-12-14 Sony Corporation Computer, recorded medium on which address validity checking program is recorded, and address validity checking method
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
JP2003006046A (ja) * 2001-06-25 2003-01-10 Sanyo Electric Co Ltd メモリプロテクション方法および回路
JP2003060906A (ja) * 2001-08-21 2003-02-28 Canon Inc 画像処理装置及びその方法
US7134139B2 (en) * 2002-02-12 2006-11-07 International Business Machines Corporation System and method for authenticating block level cache access on network
US6851056B2 (en) 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US7089419B2 (en) 2002-04-18 2006-08-08 International Business Machines Corporation Control function with multiple security states for facilitating secure operation of an integrated system
US7266842B2 (en) * 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
US7266786B2 (en) 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US7203798B2 (en) * 2003-03-20 2007-04-10 Matsushita Electric Industrial Co., Ltd. Data memory cache unit and data memory cache system
DE10335643B4 (de) * 2003-08-04 2007-10-31 Infineon Technologies Ag Vorrichtung und Verfahren zum Steuern des Zugriffs von mehreren Datenverarbeitungseinrichtungen auf einen Speicher
US7231499B2 (en) * 2003-12-17 2007-06-12 Broadcom Corporation Prioritization of real time / non-real time memory requests from bus compliant devices
US7461268B2 (en) * 2004-07-15 2008-12-02 International Business Machines Corporation E-fuses for storing security version data
US7068545B1 (en) * 2005-01-04 2006-06-27 Arm Limited Data processing apparatus having memory protection unit
US20070005932A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Memory management in a multiprocessor system
JP4519738B2 (ja) * 2005-08-26 2010-08-04 株式会社東芝 メモリアクセス制御装置
US8572329B2 (en) * 2005-10-04 2013-10-29 Arm Limited Multi-region default memory map
TW200805065A (en) 2006-01-17 2008-01-16 Nxp Bv Region protection unit, instruction set and method for protecting a memory region
JP5100133B2 (ja) * 2007-01-19 2012-12-19 株式会社東芝 情報処理装置
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
KR101405319B1 (ko) * 2007-04-16 2014-06-10 삼성전자 주식회사 가상화 환경에서의 안전한 시스템 보호 장치 및 방법
US8051263B2 (en) * 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
US8417916B2 (en) * 2008-01-11 2013-04-09 International Business Machines Corporation Perform frame management function instruction for setting storage keys and clearing blocks of main storage
US8738860B1 (en) * 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
GB2484927A (en) * 2010-10-26 2012-05-02 Advanced Risc Mach Ltd Provision of access control data within a data processing system
US8949551B2 (en) 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
US9116845B2 (en) 2011-02-23 2015-08-25 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor
US8775754B2 (en) * 2011-06-24 2014-07-08 Arm Limited Memory controller and method of selecting a transaction using a plurality of ordered lists
US8639895B2 (en) 2011-07-14 2014-01-28 Freescale Semiconductor, Inc. Systems and methods for memory region descriptor attribute override
US8572345B2 (en) 2011-09-16 2013-10-29 Freescale Semiconductor, Inc. Memory management unit (MMU) having region descriptor globalization controls and method of operation
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
US10353826B2 (en) 2017-07-14 2019-07-16 Arm Limited Method and apparatus for fast context cloning in a data processing system
US10489304B2 (en) * 2017-07-14 2019-11-26 Arm Limited Memory address translation
US10613989B2 (en) 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
US10467159B2 (en) 2017-07-14 2019-11-05 Arm Limited Memory node controller
US10534719B2 (en) 2017-07-14 2020-01-14 Arm Limited Memory system for a data processing network
US10565126B2 (en) 2017-07-14 2020-02-18 Arm Limited Method and apparatus for two-layer copy-on-write
US10592424B2 (en) 2017-07-14 2020-03-17 Arm Limited Range-based memory system
US10884850B2 (en) 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
US11232039B2 (en) * 2018-12-10 2022-01-25 Advanced Micro Devices, Inc. Cache for storing regions of data
JP2021022061A (ja) 2019-07-25 2021-02-18 キオクシア株式会社 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3827029A (en) * 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
US4038645A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Non-translatable storage protection control system
JPS58225442A (ja) * 1982-06-25 1983-12-27 Toshiba Corp 優先順位制御回路
JPH01229353A (ja) * 1988-03-09 1989-09-13 Fujitsu Ltd Dmaコントローラ
US5335334A (en) * 1990-08-31 1994-08-02 Hitachi, Ltd. Data processing apparatus having a real memory region with a corresponding fixed memory protection key value and method for allocating memories therefor
US5465343A (en) * 1993-04-30 1995-11-07 Quantum Corporation Shared memory array for data block and control program storage in disk drive
US5623636A (en) * 1993-11-09 1997-04-22 Motorola Inc. Data processing system and method for providing memory access protection using transparent translation registers and default attribute bits
DE69509717T2 (de) * 1994-08-31 1999-11-11 Motorola Inc Modulare Chipauswahl-Steuerschaltung
US5742826A (en) * 1994-11-09 1998-04-21 International Business Machines Corporation Object encapsulation protection apparatus

Also Published As

Publication number Publication date
IL132418A0 (en) 2001-03-19
GB9708822D0 (en) 1997-06-25
US6021476A (en) 2000-02-01
CN1118027C (zh) 2003-08-13
EP0979456B1 (de) 2004-04-14
RU2215321C2 (ru) 2003-10-27
MY114810A (en) 2003-01-31
KR20010012133A (ko) 2001-02-15
KR100563222B1 (ko) 2006-03-22
TW376475B (en) 1999-12-11
JP3710490B2 (ja) 2005-10-26
DE69823180D1 (de) 2004-05-19
GB2325061A (en) 1998-11-11
CN1254424A (zh) 2000-05-24
EP0979456A1 (de) 2000-02-16
IL132418A (en) 2003-11-23
WO1998049623A1 (en) 1998-11-05
GB2325061B (en) 2001-06-06
JP2001522492A (ja) 2001-11-13

Similar Documents

Publication Publication Date Title
DE69823180T2 (de) Speicherzugangsschutz
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE3438869C2 (de)
DE60118622T2 (de) Benutzer-konfigurierbares on-chip speichersystem
DE19526007C2 (de) Horizontal partitionierter Befehls-Cache-Speicher
DE69637294T2 (de) Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
DE69332663T2 (de) Datenprozessor mit einem Cachespeicher
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE3909896C2 (de)
DE112005003863B3 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE69724572T2 (de) Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE69625486T2 (de) Speichersteuerung zur nicht sequentiellen ausführung von schreibbefehlen
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE102006030879B4 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE19526960A1 (de) Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung
DE112008001666T5 (de) Hierarchische Cache-Tag-Architektur
DE2939411C2 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE2641722A1 (de) Hierarchisch geordnetes speichersystem fuer eine datenverarbeitende anlage mit virtueller adressierung
WO2007017373A1 (de) Vorrichtung und verfahren zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle
DE102021108478A1 (de) System und Verfahren zur Cache-Verzeichnis-TCAM-Fehlererkennung und - Korrektur

Legal Events

Date Code Title Description
8364 No opposition during term of opposition