DE69533312T2 - Geschütztes speichersystem und verfahren dafür - Google Patents

Geschütztes speichersystem und verfahren dafür Download PDF

Info

Publication number
DE69533312T2
DE69533312T2 DE69533312T DE69533312T DE69533312T2 DE 69533312 T2 DE69533312 T2 DE 69533312T2 DE 69533312 T DE69533312 T DE 69533312T DE 69533312 T DE69533312 T DE 69533312T DE 69533312 T2 DE69533312 T2 DE 69533312T2
Authority
DE
Germany
Prior art keywords
memory
address
access
mode
memory access
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
DE69533312T
Other languages
English (en)
Other versions
DE69533312D1 (de
Inventor
R. Byron GILLESPIE
D. Elliot GARBUS
A. Mitchell KAHN
M. Thomas JOHNSON
M. Dennis O'CONNOR
S. Jay HEEB
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE69533312D1 publication Critical patent/DE69533312D1/de
Publication of DE69533312T2 publication Critical patent/DE69533312T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Das System und das Verfahren der vorliegenden Erfindung betreffen den Schutz des Speichers vor einem nicht-autorisierten Zugriff ohne Leistungsbeeinträchtigung. Insbesondere betreffen das System und das Verfahren der vorliegenden Erfindung den Schutz des Speichers in einem System, das auf einem nicht-virtuellen Speicher basiert, wie z. B. eingebettete Controller.
  • 2. Technischer Hintergrund
  • So wie die Computer-Prozessoren und Controller immer komplizierter werden, wird auch die zum Betreiben der Prozessoren und Controller verwendete Software immer komplizierter. Um die Prozessoren und Controller zu programmieren, wird heute typischerweise eine Gruppe von Programmierern benötigt, um den Code zum Betreiben des Prozessors oder Controllers zu entwickeln. Üblicherweise arbeitet ein Team von Programmierern gleichzeitig an der Entwicklung verschiedener Abschnitte des Codes. Während der Entwicklung treten oft Fehler auf, und es entstehen Konflikte bezüglich der Speicherverwendung. Es ist daher wünschenswert, flexibel spezielle Speicherbereiche schützen zu können. Falls beispielsweise ein bestimmter Abschnitt des Codes getestet worden ist und es dabei festgestellt worden ist, daß er exakt funktioniert, kann es wünschenswert sein, diesen Code vor einer weiteren beabsichtigten oder unbeabsichtigten Änderung zu schützen. Darüber hinaus ist es wünschenswert, bestimmte Speicherbereiche, die von bestimmten vom Code verwendeten Abschnitten verwendet werden, vor dem Zugriff durch andere Abschnitte des Codes zu schützen, um die Fehler während der Entwicklung zu minimieren.
  • In einem Mikroprozessor-basierten System mit einem virtuellen Speicher stellt die Speicher-Management-Einheit (MMU) nicht nur die Funktion des Abbildens von virtuellen Speicher zugriffen auf physikalische Speicherzugriffe zur Verfügung, sondern überprüft auch den Schutz an den verschiedenen Abschnitten des Speichers. Bestimmte Speicherabschnitte können daher als gegen bestimmte Zugriffe geschützt spezifiziert werden, so daß z. B. bestimmte Prozesse auf bestimmte Abschnitte des Speichers nicht zugreifen können.
  • Die MMU verursacht jedoch bedeutendes Overhead bei jedem Zugriff, da der Prozeß des Ausführens einer Übersetzung von virtuellen in physikalische Adressen recht zeitaufwendig ist. Dieser Nachteil ist akzeptabel aufgrund des Vorteils, daß dadurch ein virtueller Speicherzugriff ermöglicht wird. Eingebettete Controller oder Mikroprozessoren brauchen jedoch nicht die Flexibilität des virtuellen Adressierens, da die vom Controller bzw. Mikroprozessor ausgeführte Anwendung sehr speziell ist und üblicherweise nicht so geändert wird, daß die Flexibilität des virtuellen Adressierens benötigt wird. Die eingebetteten Controller und Mikroprozessoren werden während der Entwicklung mittels physikalischer Adressen codiert, da dies viel schneller ist und weniger Hard- und Software-Overhead benötigt wird.
  • Aus diesem Grund haben nicht alle Mikroprozessoren und Controller eine MMU, da kein virtuelles Adressieren stattfindet und da diese Mikroprozessoren bzw. Controller keinen Speicherschutzmechanismus bereitstellen. Weil der zum Betreiben der Controller bzw. Mikroprozessoren benötigte Code immer komplexer geworden ist und immer mehr Programmierer daher benötigt werden, um den Code zu entwickeln, ist der Bedarf entstanden, irgendeine Art von Schutzmechanismus bereitzustellen. Darüber hinaus ist es wünschenswert, daß der Schutzmechanismus nicht dazu führt, daß der Prozessor weniger leistet, oder daß das Bereitstellen dieses Schutzmechanismus zusätzlichen Overhead verursacht.
  • Weitere Beispiele bekannter Anordnungen sind in EP 0 481 735 , US 3.573.855 und US 4.926.316 offenbart.
  • ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, einen Speicherschutzmechanismus bereitzustellen, der bei einer geringen oder ohne Leistungsbeeinträchtigung einen nicht-autorisierten Zugriff auf den Speicher verhindert.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Speicherschutzmechanismus bereitzustellen, der schnell und kostengünstig ist und nicht-autorisierte Speicherzugriffe erfaßt und verhindert.
  • Gemäß der vorliegenden Erfindung wird eine unaufdringliche Einrichtung zum Bereitstellen eines Schutzes vor Speicherzugriffsverletzungen mit einer Mehrzahl von jeweils eine Basisspeicheradresse speichernden Speicherschutzadreßregistern, einem Überwacher zum Lesen irgendeiner auf einem mit einem Prozessor gekoppelten Speicherbus übermittelten Speicherzugriffsanforderung und einer Mehrzahl von jeweils einem der Speicherschutzadreßregister zugeordneten Maskenregister zum Speichern von Maskenbits bereitgestellt, wobei die Einrichtung dadurch gekennzeichnet ist:
    daß die nicht-autorisierten Speicherzugriffsoperationen durch Betriebsmodus und Zugriffstyp identifiziert sind;
    daß der Überwacher für jede Speicherzugriffsanforderung eine Speicheradresse bestimmt, wobei die Speicherzugriffsanforderung einen zugeordneten Betriebsmodus und Zugriffstyp aufweist;
    daß die Maskenbits zum selektiven Bestimmen eines mit einem Abschnitt der Speicheradressen zum Feststellen einer Übereinstimmung zu vergleichenden Abschnitts der Basisspeicheradressen dienen;
    daß ein Moduseingang zum Empfangen von Signalen vorgesehen ist, die einen Betriebsmodus und Zugriffstyp für die Speicherzugriffsanforderung kennzeichnen; und
    daß sie einen Fehlermoduserzeugungsblock aufweist, der ein Fehlersignal an den Prozessor zur Verfügung stellt, wobei das Fehlersignal anzeigt, ob die Speicherzugriffsanforderung eine der nicht-autorisierten Speicherzugriffsoperationen in dem geschützten Bereich des Speichers, wie er von den Maskenbits be stimmt ist, in Übereinstimmung mit dem Betriebsmodus und Zugriffstyp, wie sie von den Attributbits bestimmt sind, ist, wobei der Fehlermoduserzeugungsblock ferner ein Abbruchsignal an eine Bussteuereinheit, die mit dem Speicherbus gekoppelt ist, zur Verfügung stellt, wenn die Speicherzugriffsanforderungsadresse in dem Bereich des Speichers liegt und wenn der Speicherzugriffsbetriebsmodus und Typ des Speicherzugriffs eine der nicht-autorisierten Speicherzugriffsoperationen anzeigen.
  • Gemäß der vorliegenden Erfindung wird ferner ein unaufdringliches Verfahren zum Bereitstellen eines Schutzes vor Speicherzugriffsverletzungen mit den Schritten des Überwachens eines Speicherbusses zum Erfassen einer Speicherzugriffsanforderung, des Feststellens einer Speicheradresse aus der Speicherzugriffsanforderung und des Vergleichens der Speicheradresse mit einer gespeicherten Basisadresse, welche den geschützten Speicherbereich identifiziert, um zu bestimmen, ob die Speicheradresse in dem geschützten Speicherbereich liegt, bereitgestellt, dadurch gekennzeichnet, daß
    • a) ein angeforderter Betriebsmodus für die Speicherzugriffsanforderung bestimmt wird;
    • b) ein Zugriffstyp für die Speicherzugriffsanforderung bestimmt wird;
    • c) selektiv ein Abschnitt der Basisadresse mit einem entsprechenden Abschnitt der Speicheradresse verglichen wird, um zu bestimmen, ob eine Übereinstimmung gegeben ist, wobei die Übereinstimmung anzeigt, daß die Speicheradresse in dem geschützten Speicherbereich liegt;
    • d) die folgenden Schritte dann, wenn die Speicheradresse im geschützten Speicherbereich liegt, ausgeführt werden:
    • i) Vergleichen des angeforderten Betriebsmodus und Zugriffstyps mit gespeicherten Attributbits, die ungültige Betriebsmodi und ungültige Zugriffstypen für den geschützten Speicherbereich kennzeichnen; und
    • ii) Erzeugen eines Fehlersignals an einen mit dem Speicherbus gekoppelten Prozessor, wenn der angeforderte Betriebs modus und Zugriffstyp aufgrund der Attributbits als Speicherzugriffsverletzung identifiziert werden;
    • iii) Ausgeben eines Abbruchsignals auf der Grundlage der aufgrund der Attributbits bestimmten Verletzung an eine mit dem Speicherbus gekoppelte Bussteuereinheit, um die Speicherzugriffsanforderung anzuhalten.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Für einen Fachmann sind die Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung anhand der nachstehenden detaillierten Beschreibung offensichtlich, in der:
  • 1 eine vereinfachte Blockdarstellung des Systems der vorliegenden Erfindung ist, die einen Prozessor bzw. Controller sowie einen gemäß der Lehre der vorliegenden Erfindung geschützten Speicher zeigt.
  • 2 ist eine vereinfachte Blockdarstellung des Prozessors bzw. Controllers, die die gegen Speicherverletzungen geschützte Speichereinheit zeigt.
  • 3a, 3b und 3c sind vereinfachte Ablaufdiagramme, die Ausführungsformen des Prozesses der vorliegenden Erfindung zeigen.
  • 4 zeigt eine Blockdarstellung einer Ausführungsform der geschützten Speichereinheit der vorliegenden Erfindung.
  • 5 ist eine Blockdarstellung, die eine Ausführungsform eines Fehlererzeugungsblocks veranschaulicht, der in der geschützten Speichereinheit der in 4 dargestellten Ausführungsform gefunden worden ist.
  • 6 ist eine Tabelle, die eine Ausführungsform der in der geschützten Speichereinheit gemäß 4 verwendeten Register veranschaulicht.
  • 7 ist eine Veranschaulichung einer Ausführungsform der Speicherschutzadreßregister, die in der geschützten Speichereinheit gemäß 4 verwendet werden.
  • 8 zeigt eine Tabelle, die das Speichermaskenregister und die potentiellen Blockgrößen veranschaulicht, die gemäß der Lehre der vorliegenden Erfindung geschützt werden können.
  • 9a veranschaulicht ein Beispiel der Programmierung der Adreßregister, um gegen nicht-autorisierte Zugriffe zu schützen; und 9b ist ein zweites Beispiel, das die Programmierung der Register zeigt, um gegen nicht-autorisierte Adreßzugriffe zu schützen.
  • 10 veranschaulicht die gemäß de Lehre der vorliegenden Erfindung für die Erfassung der Speicherverletzung verwendeten Register.
  • 11 veranschaulicht ein Beispiel der Programmierung der Erfassungsregister, um nicht-autorisierte Zugriffe zu erfassen.
  • 12 veranschaulicht eine Ausführungsform des geschützten Speichereinheitssteuerregisters, das in der geschützten Speichereinheit der in 4 gezeigten Ausführungsform verwendet wird.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • In der nachfolgenden Beschreibung sind zu Erläuterungszwecken zahlreiche Einzelheiten angegeben, damit die vorliegende Erfindung völlig verstanden wird. Für einen Fachmann ist es jedoch klar, daß die vorliegende Erfindung auch ohne diese speziellen Details ausgeführt werden kann. An anderen Stellen sind bekannte elektrische Strukturen und Schaltungen in Blockdarstellungsform gezeigt, um die vorliegende Erfindung nicht unnötig zu verdecken.
  • Das Speicherschutz- und -erfassungssystem der vorliegenden Erfindung stellt ein Verfahren und Einrichtungen zum Erfassen von Speicherverletzungen und zum Schutz vor Speicherverletzungen bereit, die unaufdringlich sind und kein Overhead verursachen. Das System und das Verfahren werden anhand eines eingebetteten Controllers beschrieben; es ist jedoch offensichtlich, daß das System und das Verfahren ohne weiteres auf verschiedene Arten von Mikroprozessoren und Controllern anwendbar sind, die einen Speichererfassungs- und/oder -schutzmechanismus benötigen.
  • In 1 ist eine vereinfachte Blockdarstellung des Systems gezeigt. Der Prozessor bzw. Controller (der hiernach Prozessor genannt wird) ist mit einem Speicher 15 gekoppelt. Das System und das Verfahren der vorliegenden Erfindung werden nicht-autorisierte Zugriffe auf die Speicher verhindern sowie eventuelle während der Verarbeitung entstehende Speicherverletzungen erfassen.
  • In 2 ist eine ausführlichere Blockdarstellung einer Ausführungsform des Systems gezeigt. Bei der vorliegenden Ausführungsform besteht die Befehlseinheit 50 aus einem Befehls-Cache und einer Befehls-Warteschlange/Scheduler zum Einplanen der Befehle in den Pipeline-Sequenzierer 55. Bei der vorliegenden Ausführungsform gibt der Pipeline-Sequenzierer 55 parallel Steuer-, Speicher- und Registerbefehle an die Mehr-Port-Register 60 zur Verteilung an die entsprechenden Elemente 65, 70, 75, 100, 95, 90, 85 zur Ausführung aus. Bei der vorliegenden Ausführungsform gehören zu diesen Elementen ein Unterbrechungs-Controller 65, eine Multiplizier-/Dividiereinheit 70, eine Ganzzahl-Ausführungseinheit 75, eine Adreßerzeugungseinheit 100, ein lokaler Register-Cache/interner Daten-RAM 95, ein Bus-Controller 90 und eine Daten-Cache-Einheit 85. Es ist für einen Fachmann klar, daß diese Struktur beispielhaft ist und daß andere Prozessorstrukturen verwendet werden können. Der Prozessor enthält außerdem eine geschützte Speichereinheit (GMU 80). Die geschützte Speichereinheit 80 ist auch mit dem Speicherbus 60 so gekoppelt, daß die GMU 80 die auf dem Bus 60 ausgegebenen Speicherzugriffsanforderungen überwachen kann.
  • Die GMU 80 überwacht die Zugriffe, um zu identifizieren, ob eine Speichererfassungsverletzung geschieht (Erfassung durch Erzeugung eines Fehlersignals, aber die Speicheroperation kann vollendet werden) und um Speicherschutzverletzungen zu identifizieren (Abbruch der Speicheroperation und Ausgabe eines Fehlersignals). Im Falle einer Speicherschutzverletzung bewirkt die GMU 80 den Abbruch der gegenwärtigen Speicheranforderung, um zu verhindern, daß die Speicherverletzung geschieht. Darüber hinaus wird ein Fehlersignal an die Befehlseinheit 50 ausgegeben, damit die Befehlseinheit 50 erfährt, daß eine Speicherschutzverletzung stattgefunden hat. Bei der vorliegenden Ausführungsform wird zusätzlich ein Mechanismus bereitgestellt, um bestimmte Speicherverletzungen einfach zu erfassen. Falls eine Speicherverletzung erfaßt wird, wird die Vollendung der Speicheroperation erlaubt, aber ein Fehlersignal wird von der GMU 80 erzeugt und an die Befehlseinheit 50 ausgegeben, damit die Befehlseinheit 50 erfährt, daß eine Speicherverletzung erfaßt worden ist.
  • Der Prozeß kann am besten unter Bezugnahme auf die vereinfachten Ablaufdiagramme der 3a, 3b und 3c erläutert werden. 3a veranschaulicht den Prozeß zum Erfassen von Speicherverletzungen. Bei Schritt 150 wird der Bus auf die Übertragung von Signalen überwacht, die die Initiierung einer Speicheroperation, wie z. B. einer Speicheranforderung, anzeigen. Bei Schritt 152 wird nach dem Erfassen einer Speicheroperation ein Adressenvergleich durchgeführt, um zu bestimmen, ob die Adresse der Speicheroperation sich in einem als Speicherverletzung identifizierten Bereich befindet. Falls die Adresse sich in diesem Adressenbereich befindet, Schritt 154, werden die Speicheroperationsattribute mit den eine Verletzung anzeigenden Attributen verglichen, z. B. dem Operationstyp oder dem Zugriffsmodus. Falls die Attribute übereinstimmen, Schritt 158, gibt die GMU bei Schritt 160 ein Fehlersignal an die CPU bzw. bei der vorliegenden Erfindung an die Befehlseinheit der CPU aus, um die Erfassung einer Speicherverletzung zu melden. In Erwiderung des Fehlersignals verzweigt der Prozessorkern zu einem Fehlerbearbeitungs-Routing, um die Speicherverletzung zu adressieren. Das Fehlerbearbeitungs-Routing kann einfach einen Bericht über die Verletzung erstellen oder einen bestimmten Prozeß durchführen, um den Effekt der Speicherverletzung zu minimieren.
  • Der Speicherschutzprozeß unterscheidet sich von dem Speichererfassungsprozeß, da der Speicherschutzprozeß verhindert, daß bestimmte Speicheroperationen durchgeführt werden. Gemäß 3b überwacht die GMU bei Schritt 170 den Bus auf das Eintreten von Speicheroperationen. Ein Adressenvergleich wird danach durchgeführt, um zu bestimmen, ob die Adresse der Speicheroperation sich in dem Bereich geschützter Speicheradressen befindet, Schritt 172. Falls die Adresse sich in diesem Be reich befindet, Schritt 174, werden die Attribute der Speicheroperation bei Schritt 176 mit den eine Speicherverletzung anzeigenden Attributen verglichen. Falls die Attribute übereinstimmen, hat es eine Schutzverletzung gegeben, Schritt 178, und die GMU gibt bei Schritt 180 ein Abbruchsignal aus, um die Ausführung der Speicheroperation anzuhalten. Bei der bevorzugten Ausführungsform wird das Abbruchsignal über die CTRL-Signalleitungen an die Bussteuereinheit ausgegeben. Nach dem Empfang des Abbruchsignals bricht die Bussteuereinheit die Speicheroperation ab. Bei Schritt 182 stellt die GMU ein Fehlersignal aus, um die Speicherschutzverletzung zu melden, und in Erwiderung des Fehlersignals verzweigt der Prozessor bei Schritt 184 zu dem entsprechenden Fehlerbearbeitungs-Routing.
  • Das System führt vorzugsweise sowohl die Speichererfassung von Verletzungen als auch den Speicherschutz vor Verletzungen durch. Der Prozeß kann so initiiert werden, daß der Speicher bei bestimmten identifizierten Adressen mit bestimmten Attributen gegen Speicherverletzungen geschützt wird, während Speicherverletzungen bei anderen Adressen einfach erfaßt und dem Prozessor gemeldet werden. Dieser Prozeß wird unter Bezugnahme auf 3c beschrieben. Gemäß 3c überwacht die GMU bei Schritt 200 den Bus auf Speicheroperationen und insbesondere auf Speicheranforderungen, die von der Befehlseinheit ausgegeben werden. Falls eine Speicheranforderung bei Schritt 210 ausgegeben wird, wird die Adresse der Anforderung mit den Adressen in den sich in der geschützten Speichereinheit befindlichen Schutz- und Erfassungsregistern verglichen, die die Speicheradressen anzeigen, auf die der Zugriff beschränkt ist. Falls die Adresse nicht eine der Adressen in den Registern ist, Schritt 220, kann die Speicheranforderung verarbeitet werden und die geschützte Speichereinheit überwacht weiterhin den Bus auf nachfolgende Speicheroperationen. Falls die Adresse der Speicheranforderung eine der Adressen ist, die in den Schutz- oder Erfassungsregistern spezifiziert sind, Schritt 230, werden die Attribute der Speicheroperation mit den in den Schutz- oder Erfassungsregistern eingestellten Attributen verglichen, um zu bestimmen, ob der Zugriff autorisiert ist. Sol che Attribute sind beispielsweise, ob die Operation im Benutzermodus oder im Überwachermodus stattfindet oder ob eine Lese-, Schreib- oder Ausführungsoperation durchgeführt wird.
  • Falls es eine Schutzverletzung gibt, Schritt 240, gibt die GMU ein Abbruchsignal an die Bussteuereinheit aus, um zu verhindern, daß die Speicheroperation abgeschlossen wird. Dies schützt den Speicher vor dem tatsächlich nicht-autorisierten Zugriff, Schritt 250. Falls es eine Erfassungsverletzung gibt, Schritt 260, darf die Speicheroperation abgeschlossen werden, und die GMU gibt ein Fehlersignal 270 an den Befehls-Scheduler des Prozessors aus, um dem Prozessor die Speicherschutzverletzung zu melden. Entsprechend gibt die GMU ein Fehlersignal an die Befehlseinheit aus, wenn es eine Schutzverletzung gibt, um auch der Befehlseinheit die Verletzung zu melden. Die Befehlseinheit verzweigt bei Schritt 280 zu Fehlerbearbeitungs-Routinen, um den empfangenen Fehler zu bearbeiten. Auf diese Weise wird ein einfacher unaufdringlicher, aber effektiver Mechanismus zur Erfassung von und zum Schutz gegen Speicherverletzungen bereitgestellt.
  • In 4 ist eine vereinfachte Blockdarstellung einer Ausführungsform der geschützten Speichereinheit gezeigt. Die geschützte Speichereinheit enthält mehrere programmierbare Register 300, die hiernach Speicher-abgebildete Register (MMR) genannt werden. Die Register 300 werden programmiert, um die Adressen und weitere Attribute einer Speicheroperation zu identifizieren, die zu einer Speicherverletzung führt.
  • In 6 ist eine Ausführungsform der Speicher-abgebildeten Register gezeigt. Die Register enthalten vorzugsweise ein Steuerregister, zwei Speicherschutzregisterpaare und sechs Speichererfassungsregisterpaare. Es ist offensichtlich, daß die hierin gezeigte Konfiguration beispielhaft ist und daß andere Konfigurationen verwendet werden können. Die Register können beispielsweise alle Speicherschutzregister sein, wodurch das System gegen das Auftreten von Speicherverletzungen schützt. In ähnlicher Weise können die Register ausschließlich Speichererfassungsregister sein, wobei der Mechanismus Speicherverletzungen nur erfaßt. Darüber hinaus können bei ent sprechender Konfiguration der Register verschiedene Mengen von Speicherschutzregistern und Speichererfassungsregistern verwendet werden.
  • Diese Register werden von der Steuerschaltung 310 gesteuert und programmiert, die als Eingabe Adreß- sowie Lese-/Schreibsteuerinformationen empfängt, um Lese- bzw. Schreiboperationen an den Registern durchzuführen. Bei der vorliegenden Ausführungsform empfängt die Steuerlogikschaltung 310 als Eingangssignal MMR-Lese-, MMR-Schreib-, MMR-Adreß-, SFR-Lese-, SFR-Schreib- und SFR-Adreßsignale, damit im Speicher bzw. in den speziellen Funktionsregistern (SFR) gelesen bzw. an diese(n) geschrieben werden kann. Darüber hinaus wird ein Überwacher-/Benutzermodussignal 340 an die Schaltung 310 sowie an den Fehlererzeugungsblock 350 eingegeben, um festzustellen, ob der Prozessor sich im Überwacher- oder Benutzermodus befindet. Die Schaltung 310 empfängt die Eingangssignale und erzeugt mehrere Freigabesignale an die MMR-Register, um den MMR- oder SFR-Zugriff durchzuführen, um die Daten zu oder von den Speicherregistern zu lenken.
  • Der Speicherregisterblock 330 empfängt als Eingabe den SFR-Datenbus, den MMR-Datenbus und die Freigabesignale von der Steuerlogikschaltung 310. Die Freigabesignale steuern die Annahme der an die Register zu schreibenden Daten bzw. die Ausgabe von Daten, die in den Registern gelesen werden, an den oder von dem SFR- oder MMR-Datenbus. Vorzugsweise enthält der Speicherregisterblock 330 mehrere Register, so wie es in 6 definiert ist, und stellt ein Ausgangssignal an den Fehlermoduserzeugungsblock 350 bereit.
  • Der Fehlermoduserzeugungsblock 350 empfängt als Eingabe die Speicherregisterwerte aus dem Speicherregisterblock 330 sowie Informationen über den gegenwärtigen zu vergleichenden Buszugriff. Diese Eingabe enthält vorzugsweise das gegenwärtige Zugriffslese-Eingangssignal, das Schreib-Eingangssignal, das Ausführungseingangssignal, den internen Adreßbus und das Benutzer-/Überwacher-Eingangssignal. Der Fehlererzeugungsblock 350 führt die Vergleiche durch und gibt das GMU-Abbruch- und das GMU-Fehler-Strobe-Ausgangssignal aus, wenn eine Verletzung geschieht. Die weitere Aufgliederung dieses Blocks wird in 5 veranschaulicht.
  • In 5 wird eine Ausführungsform des Fehlererzeugungsblocks veranschaulicht. Gemäß 5 besteht der Block aus mehreren Fehlermodusschaltungen 550, 560, 570 und 580 sowie aus den Adreßvergleichsschaltungen 555, 565, 575 und 585. Jede Fehlermodusschaltung empfängt als Eingabe das Lese-Eingangssignal, das Schreibe-Eingangssignal, das Ausführungseingangssignal, das Benutzer-/Überwacher-Eingangssignal sowie die gegenwärtige interne Adresse, auf die zugegriffen wird. Die Fehlermodusschaltungen empfangen außerdem die entsprechenden Speicherschutz-Adreßregisterbits, die Speicheroperationsattributinformationen enthalten, bei der vorliegenden Ausführungsform Bits 0–6. Die erste Fehlermodusschaltung 550 empfängt ferner die entsprechenden Attributinformationen MPAR0 (Bits 0–6) aus den Speicherregistern, um zu bestimmen, ob die Attribute des gegenwärtigen Zugriffs mit den im MPAR0-MMR-Register identifizierten Attributen übereinstimmen. Falls diese übereinstimmen, erzeugt die Fehlermodusschaltung ein Freigabe-Ausgangssignal, das an die entsprechenden Adreßvergleichsschaltungen 555, 565, 575, 585 geht.
  • Der Adreßvergleichsfehlererzeugungsblock empfängt als Eingabe ferner die Adresse der durchzuführenden Speicheroperation von dem internen Adreßbus sowie den in den Speicherregistern identifizierten Adressenbereich. Die erste Adreßvergleichsschaltung 555 empfängt beispielsweise als Eingabe MPAR0 und MPMR0 aus den Speicherregistern, die interne Adresse und das Freigabesignal aus dem Fehlermodusblock 550. Der Adreßvergleichsfehlererzeugungsblock vergleicht die Adresse, und falls die Adresse eine der von den Registern spezifizierten ist und falls das Freigabesignal ausgegeben worden ist, werden ein Fehlerausgangssignal sowie ein GMU-Abbruch-Ausgangssignal erzeugt. Die erste Fehlermodusschaltung 550 und die Adreßvergleichsschaltung 555 dienen dazu, eine Speicherschutzoperation durchzuführen. Ähnliche Prozesse geschehen in den Schaltungen, die dazu dienen, eine Speicherverletzungserfassungsoperation durchzuführen. Die Fehlermodusschaltung 570 und die Adreßver gleichsschaltung 575 dienen beispielsweise dazu, eine Speicherverletzungserfassungsoperation durchzuführen. Falls eine Speicherverletzung erfaßt wird, wird ein Fehlerausgangssignal erzeugt. Durch das Bereitstellen mehrerer Fehlermoduserfassungsschaltungen 455, 460, 465 und 470 können die Speichererfassungs- und -schutzvergleiche parallel durchgeführt werden. Es ist ohne weiteres klar, daß ein serielles Verfahren und ein serieller Mechanismus bei entsprechender Anpassung der gezeigten Schaltung auch verwendet werden können.
  • In 7 ist eine Ausführungsform der bei dem vorliegenden Ausführungsbeispiel verwendeten Speicherschutzadreßregister gezeigt. Bei dem vorliegenden Ausführungsbeispiel enthalten die Speicherschutzadreßregister ein Registerpaar, nämlich ein Speicherschutzadreßregister 600 und ein Speicherschutzmaskenregister 610. Das Speicherschutzadreßregister 600 enthält mehrere Bits, die zugewiesen sind, um zu identifizieren, ob bestimmte Modusspeicheroperationen, wie z. B. die Benutzermoduslese-, die Benutzermodusschreib-, die Benutzermodusausführungs-, die Überwachermoduslese-, die Überwachermodusschreib- und die Überwachermodusausführungsoperation, zu erlauben sind. Jedes Bit identifiziert, ob ein bestimmter Modus während der Speicheroperation einen Fehler erzeugt.
  • Das Register 600 enthält außerdem die zu schützende Basisadresse; bei dem vorliegenden Ausführungsbeispiel besteht die Basisadresse aus den oberen 20 Bits einer 32-Bit-Adresse. Es hat sich gezeigt, daß dies genügend Auflösung für den Schutzmechanismus schafft. Es ist jedoch offensichtlich, daß die Basisadresse auch durch 32 Bits oder mehr identifiziert werden kann, je nachdem welcher Speicher verwendet wird.
  • Das Speicherschutzmaskenregister 610 stellt die Maskenbits bereit, die verwendet werden, um die Bits zu bestimmen, die mit der Adresse der Speicheroperation verglichen werden sollen, um zu bestimmen, ob es eine Speicherschutzverletzung gegeben hat. Das Maskenregister 610 ermöglicht eine wechselnde Auflösung des Vergleichs, um die Flexibilität des Mechanismus zu erhöhen. 8 veranschaulicht verschiedene Blockgrößen, die durch die Einstellung des entsprechenden Maskenwertes in dem Speicherschutzmaskenregister erreicht werden können.
  • 9a veranschaulicht ein Beispiel einer Adresse, die gemäß der vorliegenden Erfindung durch die Einstellung der entsprechenden Bits in dem Speicherschutzadreßregister und dem Speicherschutzmaskenregister geschützt ist. 9b veranschaulicht ein alternatives Beispiel, in dem das Speicherschutzmaskenregister so geändert ist, daß mehrere Adressen in 256 K-Byte-Blocks geschützt sind.
  • 10 veranschaulicht ein Ausführungsbeispiel der Speicherverletzungserfassungsregister. Gemäß 10 besteht jeder Registersatz aus einem Obergrenzenregister 650 und einem Untergrenzenregister 660. Das Obergrenzenregister 650 identifiziert die oberen Grenzen eines zu erfassenden Speicheradressenbereichs; bei dem vorliegenden Ausführungsbeispiel werden die oberen 20 Bits der Obergrenzen identifiziert. Das Untergrenzenregister 660 identifiziert die Untergrenzenadresse des zu erfassenden Adressenbereichs. Es ist ohne weiteres klar, daß alle 32 Bits oder alternativ andere Auflösungen verwendet werden können. Die unteren 8 Bits des Registers 650 identifizieren die zu erfassenden Modi. Diese Modi sind bei dem vorliegenden Ausführungsbeispiel beispielsweise die Benutzermoduslese-, die Benutzermodusschreib-, die Benutzermodusausführungs-, die Überwachermoduslese-, die Überwachermodusschreib- und die Überwachermodusausführungsoperation.
  • Es sei angemerkt, daß bei dem vorliegenden Ausführungsbeispiel die Konfiguration der Register, die für den Speicherschutz verwendet werden, sich leicht von der Konfiguration der Register unterscheidet, die für die Speichererfassung verwendet werden. Die Konfigurationen unterscheiden sich leicht wegen der vom System auferlegten Zeitbeschränkungen. Maskenbits werden insbesondere zusammen mit der gespeicherten Adresse verwendet, um anwendbare Adressen für den Speicherschutz zu identifizieren, da die Maskieroperation wenige Taktzyklen für die Vollendung benötigt. Dies ist wichtig, weil das Abbruchsignal so schnell wie möglich ausgegeben werden muß, falls eine Schutzverletzung geschieht, um sicherzustellen, daß die Spei cheroperation angehalten wird, bevor der Speicher von der Ausführung der Speicheroperation beeinflußt wird. Bei einer Speicherverletzungserfassung wird jedoch kein Abbruchsignal ausgegeben, und die Speicheroperation kann vollständig abgeschlossen werden; ein Fehler wird einfach gemeldet. Aus diesem Grund kann ein längeres Adreßvergleichsverfahren verwendet werden. Durch das Spezifizieren des Anfangs und des Endes der Speicheradresse kann bei zusätzlichen Taktzyklen zur Durchführung des Adreßvergleichs eine feinere Auflösung erreicht werden. Es ist für einen Fachmann klar, daß die Konfiguration der für den Speicherschutz verwendeten Register für die Speichererfassung verwendet werden könnte und daß die Konfigurationen der für die Speichererfassung verwendeten Register ebenso für den Speicherschutz verwendet werden könnte. Darüber hinaus können weitere Konfigurationen verwendet werden.
  • 11 veranschaulicht ein Beispiel der Speichererfassungsregister und der zugehörigen Adresse, die gemäß der Lehre der vorliegenden Erfindung erfaßt worden ist. 11 zeigt einen geschützten Bereich von Adressen und geschützte Operationsarten, die bei der gezeigten Einstellung auftreten.
  • Die Speicherregister enthalten außerdem ein Steuerregister, das einige allgemeine Einstellungen bereitstellt, die sowohl auf den Schutzmechanismus als auch auf den Erfassungsmechanismus des Systems anwendbar sind. Bei dem in 12 gezeigten vorliegenden Ausführungsbeispiel können bestimmte Bits gesetzt oder rückgesetzt werden, um die entsprechenden Speicherschutz- und Speichererfassungsmechanismen freizugeben und zu sperren.
  • Damit ist ein effektiver Mechanismus zur Erfassung von und zum Schutz gegen Speicherverletzungen erläutert worden. Die Erfindung ist anhand der bevorzugten Ausführungsform beschrieben worden. Es ist jedoch klar, daß für einen Fachmann auf der Basis der obigen Beschreibung zahlreiche Alternativen, Änderungen, Variationen und Verwendungen offensichtlich sind.

Claims (6)

  1. Eine unaufdringliche Einrichtung zum Bereitstellen eines Schutzes vor Speicherzugriffsverletzungen mit einer Mehrzahl von jeweils eine Basisspeicheradresse speichernden Speicherschutzadreßregistern, einem Überwacher zum Lesen irgendeiner auf einem mit einem Prozessor gekoppelten Speicherbus übermittelten Speicherzugriffsanforderung und einer Mehrzahl von jeweils einem der Speicherschutzadreßregister zugeordneten Maskenregistern zum Speichern von Maskenbits, wobei die Einrichtung dadurch gekennzeichnet ist: daß die nicht-autorisierten Speicherzugriffsoperationen durch Betriebsmodus und Zugriffsart identifiziert sind; daß der Überwacher für jede Speicherzugriffsanforderung eine Speicheradresse bestimmt, wobei die Speicherzugriffsanforderung einen zugeordneten Betriebsmodus und Zugriffstyp aufweist; daß die Maskenbits zum selektiven Bestimmen eines mit einem Abschnitt der Speicheradressen zum Feststellen einer Übereinstimmung zu vergleichenden Abschnitts der Basisspeicheradressen dienen; daß ein Moduseingang zum Empfangen von Signalen vorgesehen ist, die einen Betriebsmodus und Zugriffstyp für die Speicherzugriffsanforderung kennzeichnen; und daß sie einen Fehlermoduserzeugungsblock (350, 550, 560, 570, 580) aufweist, der ein Fehlersignal an den Prozessor zur Verfügung stellt, wobei das Fehlersignal anzeigt, ob die Speicherzugriffsanforderung eine der nicht-autorisierten Speicherzugriffsoperationen in den geschützten Bereich des Speichers, wie er von den Maskenbits bestimmt ist, in Übereinstimmung mit dem Betriebsmodus und Zugriffstyp, wie sie von den Attributbits bestimmt sind, ist, wobei der Fehlermoduserzeugungsblock ferner ein Abbruchsignal an eine Bussteuereinheit, die mit dem Speicherbus gekoppelt ist, zur Verfügung stellt, wenn die Speicherzugriffsanforderungsadresse in dem Bereich des Speichers liegt und wenn der Speicherzugriffsbetriebsmodus und Typ des Speicherzugriffs eine der nicht-autorisierten Speicherzugriffsoperationen anzeigen.
  2. Die Einrichtung nach Anspruch 1, wobei der Fehlermoduserzeugungsblock (350, 550, 560, 570, 580) aufweist: eine Adreßvergleichsschaltung (555, 565, 575, 585) zum Bestimmen, ob die Speicheradresse in dem geschützten Bereich des Speichers liegt; und eine Fehlermodusschaltung (455, 460, 465, 470) zum Bestimmen, ob die Speicherzugriffsanforderung eine nicht-autorisierte Speicherzugriffsoperation ist, wie es durch Vergleichen des Betriebsmodus und Zugriffstyps mit den Attributbits festgestellt wird.
  3. Die Einrichtung nach Anspruch 2, wobei die Fehlermodusschaltung (455, 460, 465, 470) eine Freigabeausgabe an die Adreßvergleichsschaltung erzeugt, wenn der Betriebsmodus eine der nicht-autorisierten Speicherzugriffsoperationen ist.
  4. Ein unaufdringliches Verfahren zum Bereitstellen eines Schutzes vor Speicherzugriffsverletzungen mit den Schritten des Überwachens eines Speicherbusses zum Erfassen einer Speicherzugriffsanforderung (150, 170, 200), des Feststellens einer Speicheradresse aus der Speicherzugriffsanforderung und des Vergleichens der Speicheradresse mit einer gespeicherten Basisadresse, welche den geschützten Speicherbereich identifiziert, um zu bestimmen, ob die Speicheradresse in dem geschützten Speicherbereich liegt (152, 172, 210), dadurch gekennzeichnet, daß a) ein angeforderter Betriebsmodus für die Speicherzugriffsanforderung bestimmt wird; b) ein Zugriffstyp für die Speicherzugriffsanforderung bestimmt wird; c) selektiv ein Abschnitt der Basisadresse mit einem entsprechenden Abschnitt der Speicheradresse verglichen wird, um zu bestimmen, ob eine Übereinstimmung gegeben ist, wobei die Übereinstimmung anzeigt, daß die Speicheradresse in dem geschützten Speicherbereich liegt; d) die folgenden Schritte dann, wenn die Speicheradresse im geschützten Speicherbereich liegt, ausgeführt werden: i) Vergleichen des angeforderten Betriebsmodus und Zugriffstyps mit gespeicherten Attributbits, die ungültige Betriebsmodi und ungültige Zugriffstypen für den geschützten Speicherbereich kennzeichnen; und ii) Erzeugen eines Fehlersignals (160, 182, 270) an einen mit dem Speicherbus gekoppelten Prozessor, wenn der angeforderte Betriebsmodus und Zugriffstyp aufgrund der Attributbits als Speicherzugriffsverletzung identifiziert werden; iii) Ausgeben eines Abbruchsignals auf der Grundlage der aufgrund der Attributbits bestimmten Verletzung an eine mit dem Speicherbus gekoppelte Bussteuereinheit, um die Speicherzugriffsanforderung anzuhalten.
  5. Das Verfahren nach Anspruch 4, ferner umfassend: Vergleichen der Speicheradresse mit einem ungültigen Speicherbereich für eine Bestimmung, ob die Speicheradresse in dem ungültigen Speicherbereich liegt; und Ausführen der folgenden Schritte, sofern die Speicheradresse in dem ungültigen Speicherbereich liegt: i) Vergleichen des angeforderten Betriebsmodus und Zugriffstyps mit gespeicherten Attributbits, die ungültige Modi und ungültige Zugriffstypen für den gespeicherten ungültigen Speicherbereich kennzeichnen; und ii) Erzeugen eines Fehlersignals an einen mit dem Speicherbus gekoppelten Prozessor, wenn der angeforderte Betriebsmodus und Zugriffstyp aufgrund der Attributbits als Speicherzugriffsverletzung identifiziert werden; iii) Ausgeben eines Abbruchsignals an eine mit dem Speicherbus gekoppelte Bussteuereinheit, um die Speicherzugriffsanforderung anzuhalten.
  6. Das Verfahren nach Anspruch 5, wobei die Bestimmung ausgeführt wird, indem die Basisadresse mit Maskenbits maskiert wird, um den zu vergleichenden Abschnitt der Basisadresse zu identifizieren.
DE69533312T 1994-05-25 1995-05-23 Geschütztes speichersystem und verfahren dafür Expired - Fee Related DE69533312T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/249,011 US5513337A (en) 1994-05-25 1994-05-25 System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US249011 1994-05-25
PCT/US1995/006515 WO1995032460A1 (en) 1994-05-25 1995-05-23 Guarded memory system and method

Publications (2)

Publication Number Publication Date
DE69533312D1 DE69533312D1 (de) 2004-09-02
DE69533312T2 true DE69533312T2 (de) 2005-07-21

Family

ID=22941665

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69533312T Expired - Fee Related DE69533312T2 (de) 1994-05-25 1995-05-23 Geschütztes speichersystem und verfahren dafür

Country Status (8)

Country Link
US (2) US5513337A (de)
EP (1) EP0760975B1 (de)
CN (1) CN1147775C (de)
AU (1) AU2646195A (de)
BR (1) BR9507756A (de)
DE (1) DE69533312T2 (de)
TW (1) TW284868B (de)
WO (1) WO1995032460A1 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2728363A1 (fr) * 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Dispositif de protection de l'acces a des mots memoires
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US6289408B1 (en) * 1995-05-08 2001-09-11 Apple Computer, Inc. Bus interface with address mask register for transferring selected data from one bus to another
US7113508B1 (en) 1995-11-03 2006-09-26 Cisco Technology, Inc. Security system for network address translation systems
US5793763A (en) * 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
AU1206097A (en) * 1995-12-28 1997-07-28 Eyal Dotan Method for protecting executable software programs against infection by software viruses
US5754647A (en) * 1996-03-27 1998-05-19 United Microelectronics Corporation Software protection apparatus and the method of protection utilizing read-write memory means having inconsistent input and output data
US5778199A (en) * 1996-04-26 1998-07-07 Compaq Computer Corporation Blocking address enable signal from a device on a bus
US6330648B1 (en) * 1996-05-28 2001-12-11 Mark L. Wambach Computer memory with anti-virus and anti-overwrite protection apparatus
US5974482A (en) * 1996-09-20 1999-10-26 Honeywell Inc. Single port first-in-first-out (FIFO) device having overwrite protection and diagnostic capabilities
US5864692A (en) * 1996-12-16 1999-01-26 Hewlett-Packard Company Method and apparatus for protecting memory-mapped devices from side effects of speculative instructions
JP3082701B2 (ja) * 1997-03-14 2000-08-28 日本電気株式会社 メモリ保護装置およびメモリ保護方法
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6035404A (en) * 1997-09-09 2000-03-07 International Business Machines Corporation Concurrent user access control in stateless network computing service system
US5970246A (en) * 1997-09-11 1999-10-19 Motorola Inc. Data processing system having a trace mechanism and method therefor
US6516395B1 (en) 1997-11-20 2003-02-04 Advanced Micro Devices, Inc. System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6049876A (en) * 1998-02-09 2000-04-11 Motorola, Inc. Data processing system and method which detect unauthorized memory accesses
US6583945B1 (en) 1998-10-30 2003-06-24 Iomega Corporation Method for irreversibly write-securing a magnetic storage cartridge
US6434627B1 (en) 1999-03-15 2002-08-13 Cisco Technology, Inc. IP network for accomodating mobile users with incompatible network addressing
US6453429B1 (en) 1999-04-29 2002-09-17 International Business Machines Corporation Method and apparatus for bus hang detection and identification of errant agent for fail safe access to trapped error information
DE19921536C2 (de) * 1999-05-11 2001-06-07 Bosch Gmbh Robert Elektronisches Gerät
US6488581B1 (en) * 1999-06-22 2002-12-03 Igt Mass storage data protection device for a gaming machine
US6438671B1 (en) * 1999-07-01 2002-08-20 International Business Machines Corporation Generating partition corresponding real address in partitioned mode supporting system
AUPQ321699A0 (en) 1999-09-30 1999-10-28 Aristocrat Leisure Industries Pty Ltd Gaming security system
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
GB0005535D0 (en) * 2000-03-09 2000-04-26 Smiths Industries Plc Processing systems
JP2002042414A (ja) * 2000-07-19 2002-02-08 Toshiba Corp ディスク記憶装置及び同装置に適用するセキュリティ方法
US8037530B1 (en) * 2000-08-28 2011-10-11 Verizon Corporate Services Group Inc. Method and apparatus for providing adaptive self-synchronized dynamic address translation as an intrusion detection sensor
US7043633B1 (en) * 2000-08-28 2006-05-09 Verizon Corporation Services Group Inc. Method and apparatus for providing adaptive self-synchronized dynamic address translation
US6826684B1 (en) * 2000-08-28 2004-11-30 Verizon Corporate Services Group Inc. Sliding scale adaptive self-synchronized dynamic address translation
US6895508B1 (en) * 2000-09-07 2005-05-17 International Business Machines Corporation Stack memory protection
US6763453B2 (en) * 2000-12-28 2004-07-13 Intel Corporation Security on hardware loops
DE10105284A1 (de) * 2001-02-06 2002-08-29 Infineon Technologies Ag Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten
US7231500B2 (en) 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US7516334B2 (en) 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
EP1258807A3 (de) * 2001-05-14 2005-11-02 Matsushita Electric Industrial Co., Ltd. Vorrichtung zur Überwachung unerlaubter Zugriffe, Chipkarte und Verfahren zur Überwachung unerlaubter Zugriffe
US6779099B2 (en) * 2001-07-20 2004-08-17 Chien-Tzu Hou Operation method for controlling access attributes of a memorized page of a memory unit and its structure
US7334049B1 (en) 2001-12-21 2008-02-19 Cisco Technology, Inc. Apparatus and methods for performing network address translation (NAT) in a fully connected mesh with NAT virtual interface (NVI)
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
KR100505106B1 (ko) * 2002-05-29 2005-07-29 삼성전자주식회사 강화된 보안 기능을 갖춘 스마트 카드
JP2004013556A (ja) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法
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
US7165018B2 (en) * 2002-11-22 2007-01-16 Texas Instruments Incorporated Address range comparator for detection of multi size memory accesses with data matching qualification and full or partial overlap
EP1471421A1 (de) 2003-04-24 2004-10-27 STMicroelectronics Limited Steuerung für spekulativen Ladebefehl
US7864780B1 (en) 2003-04-29 2011-01-04 Cisco Technology, Inc. Apparatus and methods for handling name resolution over IPV6 using NAT-PT and DNS-ALG
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US20050283770A1 (en) * 2004-06-18 2005-12-22 Karp Alan H Detecting memory address bounds violations
DE102004033118A1 (de) * 2004-07-08 2006-02-02 Siemens Ag Einrichtung zur Ablaufsteuerung von Prozessen in einem Prozessorsystem
RU2007105099A (ru) * 2004-07-12 2008-08-20 Биометрик Системз Интернэшнл Пти Лтд (Au) Система безопасности
DE102004048945B4 (de) * 2004-10-07 2007-10-11 Nec Electronics (Europe) Gmbh Systemüberwachungseinheit
TWI330783B (en) * 2005-01-13 2010-09-21 Via Tech Inc Memory address monitoring device and method thereof
US20060168414A1 (en) * 2005-01-25 2006-07-27 Micron Technology, Inc. Memory block locking apparatus and methods
US7437599B2 (en) 2005-02-15 2008-10-14 Maxwell Technologies, Inc. System and method for effectively implementing an immunity mode in an electronic device
WO2006136189A1 (de) * 2005-06-23 2006-12-28 Bayerische Motoren Werke Aktiengsellschaft Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug
JP2007052481A (ja) * 2005-08-15 2007-03-01 Matsushita Electric Ind Co Ltd Icカード用lsi
US8683158B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Steering system management code region accesses
US7896823B2 (en) * 2006-01-17 2011-03-01 Theranova, Llc Method and apparatus for treating wound using negative pressure therapy
JP5011818B2 (ja) * 2006-05-19 2012-08-29 富士通セミコンダクター株式会社 半導体記憶装置及びその試験方法
JP4984721B2 (ja) * 2006-07-28 2012-07-25 ソニー株式会社 データ記憶装置、電力制御方法、並びに、通信装置
ITTO20070229A1 (it) * 2007-03-30 2008-09-30 Faiveley Transport Italia Spa Metodo per la protezione della memoria fisica in un sistema a microprocessore
US7917716B2 (en) * 2007-08-31 2011-03-29 Standard Microsystems Corporation Memory protection for embedded controllers
US8719925B1 (en) * 2009-08-25 2014-05-06 Sandia Corporation Content-addressable memory based enforcement of configurable policies
KR20110124992A (ko) 2010-05-12 2011-11-18 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 시스템
EP2461251B1 (de) * 2010-12-03 2017-06-21 Robert Bosch GmbH Speicherschutzeinheit und Verfahren zur Steuerung eines Zugangs zu einer Speichervorrichtung
JP2013196167A (ja) * 2012-03-16 2013-09-30 Toshiba Corp 情報処理装置
US9734333B2 (en) * 2012-04-17 2017-08-15 Heat Software Usa Inc. Information security techniques including detection, interdiction and/or mitigation of memory injection attacks
US9672164B2 (en) 2012-05-31 2017-06-06 Nxp Usa, Inc. Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address
US9720843B2 (en) * 2012-12-28 2017-08-01 Intel Corporation Access type protection of memory reserved for use by processor logic
US9405551B2 (en) 2013-03-12 2016-08-02 Intel Corporation Creating an isolated execution environment in a co-designed processor
US9239801B2 (en) * 2013-06-05 2016-01-19 Intel Corporation Systems and methods for preventing unauthorized stack pivoting
US9886194B2 (en) * 2015-07-13 2018-02-06 Samsung Electronics Co., Ltd. NVDIMM adaptive access mode and smart partition mechanism
US10346306B2 (en) * 2016-04-02 2019-07-09 Intel Corporation Processor and method for memory performance monitoring utilizing a monitor flag and first and second allocators for allocating virtual memory regions
GB2554940B (en) * 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit
US10795997B2 (en) * 2017-06-21 2020-10-06 Intel Corporation Hardened safe stack for return oriented programming attack mitigation
CN116097229A (zh) * 2020-09-02 2023-05-09 斯法夫股份有限公司 屏蔽存储器访问的高效处理

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3377624A (en) * 1966-01-07 1968-04-09 Ibm Memory protection system
US3573855A (en) * 1968-12-31 1971-04-06 Texas Instruments Inc Computer memory protection
GB1329721A (en) * 1970-05-26 1973-09-12 Plessey Co Ltd Data processing devices
JPS4930578B1 (de) * 1970-09-30 1974-08-14
JPS5140772B2 (de) * 1971-07-26 1976-11-05
GB1410631A (en) * 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
US3827029A (en) * 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
FR2323190A1 (fr) * 1975-09-05 1977-04-01 Honeywell Bull Soc Ind Dispositif pour proteger l'information contenue en memoire dans un calculateur numerique
DE2842548A1 (de) * 1978-09-29 1980-04-10 Siemens Ag Programmierbare speicherschutzlogik fuer mikroprozessorsysteme
GB2059652B (en) * 1979-09-29 1983-08-24 Plessey Co Ltd Memory protection system using capability registers
US4488256A (en) * 1981-11-23 1984-12-11 Motorola, Inc. Memory management unit having means for detecting and preventing mapping conflicts
US4926316A (en) * 1982-09-29 1990-05-15 Apple Computer, Inc. Memory management unit with overlapping control for accessing main memory of a digital computer
JPH0782458B2 (ja) * 1985-09-06 1995-09-06 株式会社日立製作所 データ処理装置
US5155829A (en) * 1986-01-21 1992-10-13 Harry M. Weiss Memory system and method for protecting the contents of a ROM type memory
US5051889A (en) * 1987-10-23 1991-09-24 Chips And Technologies, Incorporated Page interleaved memory access
JPH01219982A (ja) * 1988-02-29 1989-09-01 Hitachi Maxell Ltd Icカード
JPH0812646B2 (ja) * 1989-03-03 1996-02-07 三菱電機株式会社 半導体集積回路
JPH02278446A (ja) * 1989-04-20 1990-11-14 Nec Ibaraki Ltd メモリアクセス制御回路
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
FR2683357A1 (fr) * 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.

Also Published As

Publication number Publication date
EP0760975A4 (de) 1997-09-03
EP0760975B1 (de) 2004-07-28
WO1995032460A1 (en) 1995-11-30
CN1149342A (zh) 1997-05-07
US5657475A (en) 1997-08-12
CN1147775C (zh) 2004-04-28
EP0760975A1 (de) 1997-03-12
US5513337A (en) 1996-04-30
DE69533312D1 (de) 2004-09-02
TW284868B (de) 1996-09-01
BR9507756A (pt) 1997-10-07
AU2646195A (en) 1995-12-18

Similar Documents

Publication Publication Date Title
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE102006015106B4 (de) Bereitstellen eines erweiterten Speicherschutzes
DE3048365C2 (de)
DE3901457C2 (de)
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
EP1005676B1 (de) Verfahren zur verbesserung der steuerungsmöglichkeit in datenverarbeitungsanlagen mit adressübersetzung
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE112009000344B4 (de) Zugriffsrechte auf eine Speicher-Map
DE19635204A1 (de) Ausnahme-Sicherheitsschaltung
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
DE102009017496B4 (de) Speicherzugriff in einem System mit Speicherschutz
DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen
DE2414311A1 (de) Speicherschutzeinrichtung
WO2000008558A1 (de) Programmgesteuerte einheit und verfahren zum debuggen derselben
EP0522332A1 (de) Rechner für den Leitstand einer Maschine, insbesondere eine Druckmaschine
DE19847677C2 (de) Computer, Verfahren und Gerät zum Verhindern eines unautorisierten Zugriffs auf ein Computerprogramm
DE10297687B4 (de) Prozessor mit Eingabe/Ausgabeerlaubnisbitstrukturen für in Bereiche aufgeteilte Sicherheit und Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-Instruktion
EP1019819B1 (de) Programmgesteuerte einheit und verfahren zum debuggen derselben
DE2810421C2 (de) Speicherschutzeinrichtung
DE112007002085T5 (de) Zugriffssteuerung für Speicherraum in Mikroprozessorsystemen
DE102006035610B4 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
DE10297686B4 (de) System und Verfahren zum Steuern der Zugriffe zwischen einzelnen Geräten innerhalb eines Computersystems
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee