DE102009017496A1 - Speicherzugriff in einem System mit Speicherschutz - Google Patents

Speicherzugriff in einem System mit Speicherschutz Download PDF

Info

Publication number
DE102009017496A1
DE102009017496A1 DE102009017496A DE102009017496A DE102009017496A1 DE 102009017496 A1 DE102009017496 A1 DE 102009017496A1 DE 102009017496 A DE102009017496 A DE 102009017496A DE 102009017496 A DE102009017496 A DE 102009017496A DE 102009017496 A1 DE102009017496 A1 DE 102009017496A1
Authority
DE
Germany
Prior art keywords
memory
access
processor
memory location
requested
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102009017496A
Other languages
English (en)
Other versions
DE102009017496B4 (de
Inventor
Erik Knutsen Renno
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.)
Atmel Corp
Original Assignee
Atmel 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 Atmel Corp filed Critical Atmel Corp
Publication of DE102009017496A1 publication Critical patent/DE102009017496A1/de
Application granted granted Critical
Publication of DE102009017496B4 publication Critical patent/DE102009017496B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Abstract

Die vorliegende Erfindung gibt unter anderem Methoden, Systeme, Programmprodukte und Vorrichtungen für einen Zugriff auf einen Speicher in einem System mit einem Speicherschutz an. Eine Anforderung wird von einem Prozessor für einen Speicherzugriff an einer ersten Speicherposition empfangen. Eine zweite Speicherposition wird bestimmt. Die zweite Speicherposition ist mit der ersten Speicherposition assoziiert und wird vor einem Zugriff durch den Prozessor geschützt. Der angeforderte Speicherzugriff wird an der zweiten Speicherposition durchgeführt.

Description

  • Die vorliegende Erfindung betrifft allgemein digitale Speicher.
  • Moderne Computersysteme können Peripheriegerät-Steuerregister auf einen einzelnen einheitlichen Speicherraum abbilden. Der Speicherraum kann also sowohl Peripheriegerät-Steuerregister als auch herkömmliche Speicher wie etwa DRAMs und Festplattenlaufwerke umfassen. Die Peripheriegeräte können gesteuert werden, indem die Peripheriegerät-Steuerregister unter Verwendung von Lade- und Speicherbefehlen aus einem Prozessor programmiert werden.
  • 1 ist ein Diagramm, das ein Beispiel einer Speichermap 100 zeigt. Die Bereiche 102, 104, 106 und 108 der Speichermap entsprechen dem physikalischen Speicher. Der Speicher kann zum Beispiel einen DRAM, Peripheriegerät-Steuerregister, einen Flash-Speicher, einen Festplattenspeicher usw. umfassen.
  • In 1 sind die Bereiche 102 und 104 Peripheriegerät-Steuerregister. Der Bereich 102 entspricht einem UART (eine universellen asynchronen Empfänger und Sender), und der Bereich 104 entspricht einem PWM (einem Pulsweitenmodulator). Der Bereich 106 entspricht einem Flash-Speicher, und der Bereich 108 entspricht einem RAM wie etwa einem DRAM.
  • Die Speicherbereiche können Unterbereiche enthalten. Zum Beispiel enthält der Bereich 102 UART-Steuerregister 110, 112, 114 und 116. Ein UART kann konfiguriert werden, indem Werte in die UART-Steuerregister geschrieben werden. Die durch den UART zu sendenden Daten werden in das Send-Holding-Register 112 geschrieben, und die durch den UART empfangenen Daten werden aus dem Receive-Holding-Register 110 gelesen. Die Baudrate kann konfiguriert werden, indem ein Wert in das Baudrate-Register geschrieben wird. Andere Steuerinformationen wie etwa die Parität können in ein Control-Register 116 geschrieben werden.
  • In verschiedenen Systemen ist es vorteilhaft, einen irrtümlichen Zugriff auf kritische Peripheriegeräte zu verhindern. Ein Beispiel für ein derartiges Peripheriegerät ist ein PWM, der zum Steuern von Elektromotoren verwendet wird. Der PWM gibt eine Impulsfolge zum Steuern des Motors aus. Wenn die Steuerregister des PWM-Moduls versehentlich mit falschen Werten aktualisiert werden, kann der Motor außer Kontrolle gestartet werden und möglicherweise eine Anwendung oder die Umgebung beschädigen. Ein versehentlicher Zugriff kann zum Beispiel durch Fehler im Softwarecode, durch elektrisches Rauschen usw. verursacht werden.
  • Die vorliegende Patentanmeldung gibt unter anderem Verfahren, Systeme, Programmprodukte und Vorrichtungen an, um einen Speicherzugriff in einem System mit einem Speicherschutz vorzusehen. Es wird eine Anforderung von einem Prozessor für einen Speicherzugriff an einer ersten Speicherposition empfangen. Es wird eine zweite Speicherposition bestimmt. Die zweite Speicherposition ist mit der ersten Speicherposition assoziiert und wird vor einem Zugriff durch den Prozessor geschützt. Der angeforderte Speicherzugriff wird an der zweiten Speicherposition durchgeführt.
  • Besondere Implementierungen des in dieser Anmeldung beschriebenen Gegenstands können einen oder mehrere der folgenden Vorteile erzielen. So kann etwa ein Prozessor zuverlässig auf fein gekörnte Speicherbereiche in einem System mit einem grob gekörnten Speicherschutz zugreifen. Eine entsperrende Hardware kann innerhalb einer einzelnen konfigurierbaren Einrichtung gehalten werden, sodass verschiedene Anwendungen je nach ihren Anforderungen eine Entsperrung zu verschiedenen Registern hinzufügen können. Derselbe Entsperrungsalgorithmus kann für mehrere geschützte Speicherbereiche verwendet werden.
  • 1 ist ein Diagramm, das eine beispielhafte Speichermap zeigt.
  • 2 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Zugreifen auf einen Speicher in einem System mit einem Speicherschutz zeigt.
  • 3 ist ein Diagramm, das eine beispielhafte Speichermap mit einer Einheit für einen sichereren Zugriff zeigt.
  • 4 ist ein Diagramm, das ein beispielhaftes System mit einem Prozessor und einem geschützten Speicher zeigt.
  • 5A ist ein Blockdiagramm, das eine beispielhafte Vorrichtung zeigt, die für einen Speicherzugriff in einem System mit einem Speicherschutz konfiguriert ist.
  • 5B enthält eine Tabelle mit beispielhaften Steuerregistern.
  • In den Figuren werden durchgehend gleiche Bezugszeichen verwendet, um identische Komponenten anzugeben.
  • Im Folgenden wird auf 2 Bezug genommen. Das Verfahren wird beispielhaft mit Bezug auf ein System (z. B. einen Prozessor, eine Einheit für einen sicheren Zugriff (SAU = Secure Access Unit) oder ähnliches) zum Durchführen des Verfahrens beschrieben.
  • Das System empfängt Konfigurationsinformationen (Schritt 202). In einigen Implementierungen spezifizieren die Konfigurationsinformationen eine Abbildung zwischen einer ersten Vielzahl von Speicherpositionen und einer zweiten Vielzahl von Speicherpositionen. In anderen Implementierungen ist die Abbildung in Hardware oder in einem ROM fixiert. In einigen Implementierungen spezifizieren die Konfigurationsinformationen andere Werte. Zum Beispiel können die Konfigurationsinformationen gültige Entsperrungsschlüssel oder Verfahren zum Bestimmen von gültigen Entsperrungsschlüsseln spezifizieren.
  • In einigen Implementierungen empfängt das System einen Entsperrungsschlüssel (Schritt 204). Der Entsperrungsschlüssel kann zum Beispiel eine einzelne Zahl, eine Reihe von Zahlen, eine Reihe von Zeichen usw. sein.
  • Wenn das System einen Entsperrungsschlüssel empfängt, bestimmt das System, ob der Entsperrungsschlüssel gültig ist (Schritt 206). In einigen Implementierungen vergleicht das System den empfangenen Entsperrungsschlüssel mit einem in den Konfigurationsinformationen empfangenen Entsperrungsschlüssel. In anderen Implementierungen führt das System ein anderes Verfahren durch, um zu bestimmen, ob der Entsperrungsschlüssel gültig ist. Zum Beispiel kann das System einen gültigen Entsperrungsschlüssel auf der Basis der Uhrzeit oder dem aktuellen Taktzyklus bestimmen und den bestimmten Entsperrungsschlüssel mit dem empfangenen Entsperrungsschlüssel vergleichen.
  • In verschiedenen Implementierungen basiert der Entsperrungsschlüssel auf einer angeforderten Speicherposition. Zum Beispiel kann der Entsperrungsschlüssel nur ein bestimmtes Register oder einen bestimmten Speicherbereich entsperren. In einigen Implementierungen ist der Entsperrungsschlüssel nur für eine spezifizierte Anzahl von Taktzyklen gültig. In anderen Implementierungen wird der Entsperrungsschlüssel gleichzeitig mit dem angeforderten Speicherzugriff empfangen und ist nur für diesen angeforderten Speicherzugriff gültig.
  • Wenn der Entsperrungsschlüssel nicht gültig ist, ignoriert das System Anforderungen für einen Speicherzugriff (Schritt 208). In einigen Implementierungen sendet das System eine Meldung, die angibt, dass es einen ungültigen Entsperrungsschlüssel empfangen hat. Zum Beispiel kann das System eine Ausnahme erzeugen.
  • Das System empfängt eine Anforderung von einem Prozessor für einen Speicherzugriff an einer ersten Speicherposition (Schritt 210). Ein Prozessor ist eine Vorrichtung, ein System oder ähnliches zum Ausführen von Befehlen, wobei es sich etwa um eine CPU handeln kann. Prozessoren können in eingebetteten Architekturen vorgesehen sein. Ein Beispiel für einen eingebetteten Prozessor ist der AVR32-Prozessor von Atmel Inc. in San Jose.
  • Der Speicherzugriff kann eine Operation wie etwa Lesen, Schreiben, Ausführen oder ähnliches sein. Die Anforderung spezifiziert den Speicherzugriff. Wenn der Speicherzugriff eine Schreiboperation ist, kann die Anforderung die zu schreibenden Daten spezifizieren. Wenn der Speicherzugriff eine Leseoperation ist, kann die Anforderung die zu lesenden Daten spezifizieren. Wenn der Speicherzugriff eine Ausführungsoperation ist, kann die Anforderung die zu lesenden und auszuführenden Daten spezifizieren.
  • Eine Speicherposition ist mit einem Bereich einer Speichermap oder eines Speicherraums assoziiert. Die Speicherposition kann zum Beispiel eine Speicheradresse, ein Zeiger auf eine Speicheradresse oder ähnliches sein. Ein Prozessor kann unter Verwendung von Speicherpositionen auf Speicherbereiche zugreifen (z. B. von denselben lesen oder in dieselben schreiben).
  • Das System bestimmt eine zweite Speicherposition, die mit der ersten Speicherposition assoziiert ist (Schritt 212). Die zweite Speicherposition wird vor einem Zugriff durch den Prozessor geschützt. Die zweite Speicherposition kann zum Beispiel einem kritischen Peripheriegerät entsprechen.
  • Gewöhnlich verwendet das System die Konfigurationsinformationen, um die zweite Speicherposition zu bestimmen. Zum Beispiel kann das System die zweite Speicherposition in einer Tabelle mit assoziierten Speicherpositionen nachschlagen. In einigen Implementierungen umfasst das System Kanalregister. Die erste Speicherposition ist die Position eines Kanalregisters, wobei das System die zweite Speicherposition durch das Lesen der Inhalte des Kanalregisters bestimmt.
  • Alternativ hierzu ist eine Abbildung zwischen den Speicherpositionen fixiert, beispielsweise in Hardware oder in einem ROM. Das System bestimmt die zweite Speicherposition, indem sie den fixierten Befehlen oder der fixierten Abbildung folgt.
  • In einigen Implementierungen wird die zweite Speicherposition durch eine Speicherschutzeinrichtung geschützt. Beispiele für Speicherschutzeinrichtungen sind Speicherverwaltungseinheiten (MMUs) und Speicherschutzeinheiten (MPUs). In einigen Implementierungen schützt die Speicherschutzeinrichtung einen Speicherbereich, der wesentlich größer als ein Bereich ist, auf den an der zweiten Speicherposition zugegriffen werden soll. In diesen Fällen wird die Speicherschutzeinrichtung als „grob gekörnt” bezeichnet.
  • In verschiedenen Implementierungen verhindert die Speicherschutzeinrichtung, dass der Prozessor unter bestimmten Bedingungen auf die zweite Speicherposition zugreift. In einigen Implementierungen beruht die Verhinderung auf einem Ausführungszustand des Prozessors. Zum Beispiel kann die Speicherschutzeinrichtung verhindern, dass der Prozessor auf die zweite Speicherposition zugreift, wenn der Prozessor in einem nicht-privilegierten Modus arbeitet, während sie dem Prozessor den Zugriff auf die zweite Speicherposition gewähren kann, wenn der Prozessor in einem privilegierten Modus arbeitet (z. B. in einem Verwaltungsmodus).
  • In einigen Implementierungen beruht die Verhinderung weiterhin auf dem angeforderten Speicherzugriff. Zum Beispiel kann die Speicherschutzeinrichtung einen Zugriff verhindern, wenn der angeforderte Speicherzugriff eine Schreiboperation ist, während sie einen Zugriff gestattet, wenn der angeforderte Speicherzugriff eine Leseoperation ist.
  • Das System führt den angeforderten Speicherzugriff an der zweiten Speicherposition (Schritt 214) durch. Wenn der angeforderte Speicherzugriff eine Schreiboperation ist, schreibt das System Daten an der zweiten Speicherposition.
  • Wenn der angeforderte Speicherzugriff eine Leseoperation ist (Schritt 216), sendet das System die gelesenen Daten zum Beispiel zu dem Prozessor (Schritt 218).
  • 3 ist ein Diagramm einer beispielhaften Speichermap 300 mit einer Einheit für einen sicheren Zugriff (SAU = Secure Access Unit). Eine SAU ist eine Vorrichtung oder Einheit, die betrieben werden kann, um Zugriff auf einen Speicher in einem System mit Speicherschutz zu gewähren, zum Beispiel unter Verwendung des Verfahrens von 2. In diesem Beispiel sieht die SAU Zugriffskanäle auf spezifizierte Speicherpositionen vor.
  • Die SAU weist einen Speicher auf, der mit zwei Bereichen 302 und 304 in der Speichermap gezeigt ist. Die beispielhafte Speichermap weist auch Bereiche für einen UART 306, einen PWM 308, einen Flash-Speicher 310 und einen RAM 312 auf.
  • Die SAU enthält Steuerregister 304 und Kanalregister 302. Die Steuerregister 304 der SAU werden wie die anderen Speicherbereiche (in diesem Beispiel der UART-Speicher 306 und der PWM-Speicher 308) zum Beispiel durch eine Speicherschutzeinheit (MPU) oder ähnliches geschützt. Die geschützten Adressen 304, 306 und 308 sind in 3 grau dargestellt. Die UART-Register 314, 316, 318 und 320 befinden sich in dem UART-Speicherbereich 306 und sind also geschützt, sodass sie grau dargestellt sind.
  • Die MPU (oder eine andere Speicherschutz-Hardware wie etwa eine MMU oder ähnliches) unterteilt den Speicherraum in Abschnitte und weist jedem Abschnitt einen Satz von Zugriffsbeschränkungen zu. Die Zugriffsbeschränkungen können zum Beispiel Lesen/Schreiben für einen Prozessor im Verwaltungsmodus und Nur-Lesen für einen Prozessor im Anwendungsmodus sein. Die Abschnitte können jeweils verschiedene Größen aufweisen. In einigen Implementierungen ist jeder Abschnitt groß relativ zu einer Größe eines Registers und beträgt etwa 1 KB des Adressraums oder mehr. Weiterhin kann der Zugriff auf jeden Abschnitt durch den Ausführungszustand eines Prozessors, z. B. Verwaltungs- oder Anwendungsmodus, gesteuert werden.
  • Die SAU-Steuerregister 304 werden für die Konfiguration der SAU verwendet. Durch das Schreiben von Werten in diesen Registern wird bestimmt, wie Adressen in den SAU-Kanalregistern 302 auf einen anderen Speicher abgebildet werden. Die SAU-Steuerregister 304 können auch für das Steuern von Zugriffsbeschränkungen, Entsperrungsschlüsseln usw. verwendet werden. Sobald diese Register 304 konfiguriert wurden, schützt eine MPU sie vor weiteren Modifikationen.
  • Die SAU-Kanalregister 302 spezifizieren Kanäle (d. h. virtuelle Adressen oder Speicherpositionen), auf die ein Prozessor zugreifen kann. Die Kanalregister sind nicht geschützt (und deshalb in 3 nicht grau dargestellt). Ein fixiertes oder konfigurierbares Abbildungsschema assoziiert diese (durch die Kanalregister spezifizierten) Kanäle mit echten Speicherpositionen etwa in Peripheriegeräten oder anderen Speichern.
  • Eine Kanalmap kann eine einzelne Adresse oder einen Bereich von Adressen aus einem Speicherraum in der SAU (z. B. die Kanalregister) auf Adressen in anderen Speichern wie etwa in Peripheriegeräten abbilden. Wenn ein Prozessor auf ein SAU-Kanalregister wie z. B. 322 zugreift, funktioniert die SAU wie ein Gateway oder Proxy und führt einen Zugriff auf den abgebildeten Speicher für den anfordernden Prozessor durch.
  • Der abgebildete Speicher wird vor einem Zugriff durch den Prozessor z. B. durch eine MPU geschützt.
  • Mechanismen zum Entsperren eines Kanals können in den SAU-Steuerregistern 304 platziert werden. Zum Beispiel muss in einigen Implementierungen ein Entsperrungsschlüssel wie etwa 0x55 in ein Entsperrungssregister in den SAU-Steuerregistern 304 geschrieben werden. Das Schreiben eines Entsperrungsschlüssels kann ein Fenster mit einer spezifizierten Anzahl von Taktzyklen öffnen, während welchen die SAU einen Zugriff auf ein SAU-Kanalregister wie etwa 322 gestattet. Die SAU kann Zugriffe blockieren, die keinen gültigen Entsperrungsschlüssel angeben.
  • Die SAU kann auch den Prozessor (oder eine Anwendung, die einen Speicherzugriff durchführen möchte und z. B. den Prozessor verwendet) darüber informieren, dass ein unzulässiger Zugriff versucht wird, indem sie etwa eine Unterbrechung oder eine Ausnahme ausgibt. Auf diese Weise kann die Anwendung ein kontrolliertes Herunterfahren (Graceful Shutdown) durchführen oder versuchen, das den unzulässigen Zugriff verursachende Problem zu lösen.
  • Die SAU kann mehrere Kanäle umfassen, die z. B. durch Kanalregister 322, 324, 326 und 328 spezifiziert werden und geschützt sind, um nur gültige Zugriffe zu gestatten. In einigen Implementierungen weist jeder Kanal einen einzigartigen Entsperrungsmechanismus auf. In anderen Implementierungen wird derselbe Entsperrungsmechanismus für jeden Kanal verwendet.
  • In 3 ist ein UART-Steuerregister 320 gezeigt, das eine Adresse X aufweist. Der Kanal 0 in der SAU (z. B. das Kanalregister 328) weist eine Adresse Z auf. Indem entsprechende Werte in assoziierte Register in den SAU-Steuerregistern 304 geschrieben werden, kann der Kanal 10 mit der Adresse X assoziiert werden. Weil das UART-Steuerregister 320 (bei der Adresse X) geschützt ist, kann ein Prozessor nicht auf dasselbe zugreifen.
  • Das SAU-Kanalregister 328 (z. B. der Kanal 0 an der Adresse Z) ist nicht geschützt. Wenn der Prozessor von der Adresse Z liest, beendet die SAU den Lesevorgang und leitet selbst einen Lesevorgang von der assoziierten Adresse, z. B. der Adresse X, ein. Dieser Zugriff ist nicht geschützt. Der SAU-Zugriff ist nicht geschützt, weil die SAU zum Beispiel einen anderen Kommunikationspfad als der Prozessor verwenden kann, der nicht über eine MPU verläuft. Alternativ hierzu kann die MPU konfiguriert werden, um Zugriffe von einer SAU zu gestatten und Zugriffe von anderen Prozessoren zu unterbinden.
  • Wenn die SAU das Lesen von der Adresse X durchgeführt hat, werden die gelesenen Daten zu dem Prozessor gegeben. In einigen Implementierungen bemerkt der Prozessor nicht, dass das Lesen von der Adresse Z tatsächlich von der Adresse X erfolgt ist. Der Prozessor erfährt nur eine etwas längere Leselatenz, weil die SAU einen Zugriff durchführen muss, bevor die gelesenen Daten ausgegeben werden. Ähnliche Operationen werden durchgeführt, wenn die CPU an der Adresse Z schreibt, wobei die SAU in diesem Fall ein Schreiben an der Adresse X ausführt.
  • 4 ist ein Diagramm eines beispielhaften Systems mit einem Prozessor (CPU 402) und einem geschützten Speicher. Das beispielhafte System umfasst eine Speicherschutz-Hardware (MPU 404). Die MPU 404 schützt den Speicher für einen UART 406 und einen PWM 408. Eine SAU 410 und 412 gewährt der CPU 402 Zugriff auf einen Teil des durch die MPU 404 geschützten Speichers.
  • Ein Bus-Master (z. B. 414 und 416) ist ein Modul, das eine Übertragung auf dem Systembus 418 einleiten kann, während ein Slawe (z. B. 420, 422, 424 und 426) nur auf eine Übertragung von einem Master reagieren kann. Eine Übertragung kann eine Lese- oder eine Schreiboperation sein. Das beispielhafte System weist ein hierarchisches Bussystem mit einem Systembus 418 mit großer Bandbreite und einem Peripheriebus 428 mit geringer Bandbreite auf. Peripheriegeräte mit geringer Bandbreite (in diesem Beispiel der UART 406 und der PWM 408) sind mit dem Peripheriebus 428 verbunden, während Module mit großer Bandbreite (z. B. der Flash-Speicher 432 und der RAM 434) mit dem Systembus 418 verbunden sind. Der Peripheriebus 428 weist eine kleinere Fläche auf und verbraucht weniger Energie als der Systembus 418. Eine Busbrücke 430 verbindet den Peripheriebus mit dem Systembus. Die Busbrücke übersetzt Zeitangaben und Signale von einer Busdomain zur anderen.
  • Die MPU 404 ist zwischen der CPU 402 und dem Bus-Master 414 eingefügt. Die MPU überwacht die Zugriffe, die durch die CPU 402 versucht werden. Wenn die Zugriffe über keine ausreichenden Privilegien verfügen, wird der Zugriff abgebrochen und benachrichtigt die MPU 404 die CPU 402. Wenn der Zugriff über ausreichende Privilegien verfügt, wird der Zugriff auf den Systembus 418 platziert und wie durch die CPU 402 vorgegeben durchgeführt.
  • Die CPU 402 kann auf bestimmte Bereiche zugreifen, die durch die MPU 404 über die SAU geschützt werden. Wenn die SAU zum Beispiel konfiguriert ist, um einen Zugriff auf ein Steuerregister in der UART 406 zu gewähren, kann die CPU 402 über die SAU auf dieses Register zugreifen. Die SAU kommuniziert nicht über die MPU 404 mit dem UART 406 und ist deshalb nicht derselben Zugriffsbeschränkung unterworfen wie die CPU 402.
  • Das Blockdiagramm von 5A zeigt eine beispielhafte Vorrichtung 500, die konfiguriert ist, um auf einen Speicher in einem System mit einem Speicherschutz wie etwa eine SAU zuzugreifen. Die SAU 500 weist einen Steuerabschnitt 502 und einen Kanalabschnitt 504 auf.
  • Die SAU 500 kann unter Verwendung einer Beschreibungssprache (HDL) wie etwa Verilog oder VHDL implementiert werden. In einigen Implementierungen wird die SAU durch eine digitale Schaltung wie etwa ein Feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) oder ähnliches implementiert. In anderen Implementierungen wird die SAU unter Verwendung eines Universalprozessors implementiert.
  • In einigen Implementierungen weist die SAU eine Steuerschnittstelle 506 für den Zugriff auf die SAU-Steuerregister 508 auf. Gewöhnlich ist die Steuerschnittstelle 506 eine Peripheriebus-Schnittstelle mit einer geringen Bandbreite. In einigen Implementierungen wird die Kanalschnittstelle 150 verwendet, um Übertragungen von der CPU in die SAU-Kanalregister 512 zu gestatten. Gewöhnlich stellt die Kanalschnittstelle 510 eine Verbindung zu einem Systembus mit großer Bandbreite über einen Bus-Slawe her. In verschiedenen Implementierungen wird die Master-Schnittstelle 514 verwendet, um einen Zugriff auf ein Peripheriegerät oder einen anderen Speicher durchzuführen, das bzw. der durch die SAU abgebildet werden. Gewöhnlich stellt die Master-Schnittstelle 514 eine Verbindung zu einem Systembus mit einer hohen Bandbreite über einen Bus-Master her. In diesen Implementierungen kann die Schnittstelle den Bus blockieren, wenn eine Leseoperation durchgeführt werden soll. Andere Konfigurationen können dieselben Aufgaben bewerkstelligen.
  • Allgemein können die SAU-Steuerregister, die Abbildungen (z. B. zu assoziierten Speicherpositionen) spezifizieren, auf der Basis der einzelnen Kanäle konfiguriert werden. Diese Steuerregister können durch eine MPU geschützt werden. Alternativ kann Siliciumfläche gespart werden, indem eine fixierte Abbildung von jedem Kanal zu der assoziierten Speicherposition vorgesehen wird. In anderen Implementierungen können andere Anzahlen von Kanälen in Abhängigkeit von der Anzahl und der Komplexität der Vorrichtung sowie von der gewünschten Anwendung implementiert werden.
  • In einigen Implementierungen gestattet eine Zustandsmaschine (FSM) 516 in dem Kanalabschnitt 504 der SAU Anforderungen auf einer Schnittstelle 510 und prüft, ob die Anforderungen gültig sind und auf einen entsperrten Kanal verweisen. Wenn dies der Fall ist, leitet die FSM 516 eine Übertragung auf der Master-Schnittstelle 514 ein. Die FSM kann Zustände wie etwa Warten, Prüfen einer Anforderung, Einleiten einer Übertragung, Senden von Lesedaten usw. aufweisen. In einigen Implementierungen ist die FSM 516 auch konfiguriert, um Fehlerbedingungen auf dem Bus und Kanalsperrfehler handzuhaben.
  • 5B zeigt eine Tabelle, die beispielhafte Steuerregister enthält. In einigen Implementierungen umfassen die SAU-Steuerregister wenigstens die beispielhaften Steuerregister von 5B. In anderen Implementierungen werden andere Steuerregister oder andere Konfigurationen der beispielhaften Steuerregister verwendet.
  • In einigen Implementierungen umfassen die SAU-Steuerregister Neuabbildungszielregister (RTR = Remap Target Register) wie etwa 550. Jedes RTR entspricht einem Kanal oder einem Kanalregister. In einigen Implementierungen bildet die SAU bis zu 63 Adressen neu mit RTRs ab. In einigen Implementierungen füllen die RTRs bis zu 1024 Byte-Adressen in Entsprechung zu eine 1 KB großen Schutzbereich in einer Speicherschutzvorrichtung.
  • In verschiedenen Implementierungen verwenden eingebettete Architekturen einen 32-Bit-Speicherraum. Peripheriegeräte können in einen kleinen Abschnitt dieses Speicherraums abgebildet werden. In einigen Implementierungen werden Peripheriegeräte in den Adressbereich 0xFFFE0000 bis 0xFFFFFFFF abgebildet. In anderen Implementierungen sind die Peripheriegerätregister wortadressierbar, sodass die Bits 1:0 in der Adresse gleich 0 sind. Die RTRs können physikalisch unter Verwendung von 15 Flipflops implementiert werden, wobei sie wie folgt auf eine 32-Bit-Neuabbildungsadresse erweitert werden:
    Figure 00150001
  • Wen ein 32-Bit-Wert in ein RTR geschrieben wird, kann der geschriebene Wert wie folgt auf die 15 Flipflops abgebildet werden:
    Figure 00150002
    In einigen Implementierungen können also die oberen 16 Bits eines RTR auf 1 Bit komprimiert werden, weil nur zwei unterschiedliche Werte dieser 16 oberen Bits verwendet werden.
  • In verschiedenen Implementierungen funktionieren die RTRs auch als Kanalregister. In alternativen Implementierungen sind die Kanalregister separat vorgesehen. Zum Beispiel können die Kanalregister mit den RTRs assoziiert sein.
  • In einigen Implementierungen umfassen die SAU-Steuerregister ein Entsperrungsregister (UR = Unlock Register) wie z. B. 552. Das Entsperrungsregister muss mit einem Schlüssel und einen Kanal geschrieben werden, bevor ein Zugriff auf einen Kanal durchgeführt werden kann. Der Schlüssel ist in einem Bitfeld in einem anderen Register spezifiziert, z. B. in dem Schlüsselregister (Key Register) 554.
  • In verschiedenen Implementierungen wird der Kanal für eine Anzahl von Zyklen entsperrt, die in einem anderen Bitfeld in einem anderen Steuerregister wie z. B. dem Schlüsselregister (Key Register) 554 spezifiziert sind. In einigen Implementierungen kann jeweils nur ein Kanal zu einem Zeitpunkt entsperrt werden. Wenn sich in diesen Implementierungen ein Kanal in einem entsperrten Zustand befindet und ein anderer Kanal durch das Schreiben in das Entsperrungsregister (UR) entsperrt wird, kann der erste Kanal automatisch erneut gesperrt werden. In einigen Implementierungen ist das Entsperrungsregister (UR) in demselben 1KB-Adressbereich platziert wie die Neuabbildungszielregister (RTR).
  • In einigen Implementierungen weist das Entsperrungsregister (UR) die folgenden Bitfelder auf:
    UR[7:0] – Entsperrungsschlüssel
    UR[5:0] – Kanalzahl für das Entsperren
  • In einigen Implementierungen enthalten die SAU-Steuerregister ein Schlüsselregister (KR = Key Register) 554. Das Schlüsselregister (KR) kann die folgenden Bitfelder aufweisen:
    KR[0] – SAU aktiviert
    KR[15:8] – Entsperrungsschlüssel. Der Wert in diesem
  • Bitfeld muss in das Entsperrungsregister (UR) geschrieben werden, um einen Kanal zu entsperren.
    KR[23:16] – Entsperren einer Anzahl von Taktzyklen. Sobald ein Kanal entsperrt wurde, bleibt er für diese Anzahl von Taktzyklen oder bis zu einem Zugriff auf einen Kanal entsperrt.
  • In einigen Implementierungen umfassen die SAU-Steuerregister ein Statusregister (SR = Status Register) 556. Ein Prozessor kann Informationen aus dem Statusregister (SR) zu lesen, um den Betriebszustand des SAU zu bestimmen. Das Statusregister (SR) kann die folgenden Bitfelder aufweisen:
    SR[0] – Entsperrung abgelaufen. Eine Entsperrungsoperation wurde durchgeführt, aber sie ist abgelaufen, bevor ein Zugriff auf einen Kanal durchgeführt wurde.
    SR[1] – Kanalzugriff erfolgreich. Der letzte Zugriff auf einen Kanal war erfolgreich. Kann automatisch zurückgesetzt werden, wenn in das UR geschrieben wird.
    SR[2] – Kanalzugriff nicht erfolgreich. Es wurde versucht, auf einen gesperrten oder deaktivierten Kanal zuzugreifen.
  • In einigen Implementierungen umfassen die SAU-Steuerregister Kanalaktivierungsregister (Channel Enable Register) wie z. B. 558 und 560. Die Kanalaktivierungsregister können ein Bit pro Kanal enthalten, wobei durch das Setzen des Bits der entsprechende Neuabbildungskanal aktiviert wird.
  • In einigen Implementierungen enthalten die SAU-Steuerregister ein Statuslöschregister (SCR = Status Clear Register) 562. Die Bits in dem Statuslöschregister (SCR) entsprechen den Bits in dem Statusregister (SR) 556. Durch das Schreiben eines Bits in das Statuslöschregister (SCR) wird das entsprechende Bit in dem Statusregister (SR) gelöscht.
  • In einigen Implementierungen enthalten die SAU-Steuerregister ein Unterbrechungsmaskenregister (IMR = Interrupt Mask Register) 564. Die Bits in dem Unterbrechungsmaskenregister (IMR) entsprechen den Bits in dem Statusregister (SR) 556. Wenn ein Bit in dem Unterbrechungsmaskenregister (IMR) gesetzt ist, wird eine Unterbrechungsanforderung erzeugt, wenn das entsprechende Bit in dem Statusregister (SR) gesetzt ist. Zum Beispiel SAU_IRQ (SAU-Unterbrechungsanforderung) = ♠ (SR & IMR), wobei ♠ eine bitweise ODER-Verknpfung ist und & eine bitweise UND-Verknüpfung ist.
  • In einigen Implementierungen enthalten die SAU-Steuerregister ein Unterbrechungsaktivierungsregister (IER = Interrupt Enable Register) 566. Die Bits in dem Unterbrechungsaktivierungsregister (IER) entsprechen den Bits in dem Unterbrechungsmaskenregister (IMR) 564. Das Schreiben einer Eins in ein Bit in dem Unterbrechungsaktivierungsregister (IER) setzt das entsprechende Bit in dem Unterbrechungsmaskenregister (IMR).
  • In einigen Implementierungen enthalten die SAU-Steuerregister ein Unterbrechungsdeaktivierungsregister (IDR = Interrrupt Disable Register) 568. Die Bits in dem Unterbrechungsdeaktivierungsregister (IDR) entsprechen den Bits in dem Unterbrechungsmaskenregister (IMR) 564. Das Schreiben einer Eins in ein Bit in dem Unterbrechungsaktivierungsregister (IER) löscht das entsprechende Bit in dem Unterbrechungsmaskenregister (IMR).
  • Jedes der beispielhaften Steuerregister kann eine Zugriffsbeschränkung wie zum Beispiel Nur-Lesen, Nur-Schreiben, Lesen oder Schreien aufweisen. Die Spalte 570 zeigt Beispiele für Zugriffsbeschränkungen für jedes der beispielhaften Steuerregister.
  • Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können durch einen digitalen elektronischen Schaltungsaufbau, einen integrierten Schaltungsaufbau, durch ASICs (anwendungsspezifische integrierte Schaltungen), Computer-Hardware, Firmware, Software und/oder Kombinationen aus denselben realisiert werden. Diese verschiedenen Implementierungen können eine Implementierung in einem oder in mehreren Computerprogrammen umfassen, die auf einem programmierbaren System mit wenigstens einem programmierbaren Prozessor, das spezifisch oder allgemein ausgebildet sein kann und für das Empfangen und Senden von Daten und Befehlen mit einem Speichersystem, mit wenigstens einer Eingabeeinrichtung und mit wenigstens einer Ausgabeeinrichtung verbunden ist, ausgeführt und/oder interpretiert werden können.
  • Diese Computerprogramme (auch als Programme, Software, Softwareanwendungen oder Code bezeichnet) umfassen Maschinenbefehle für einen programmierbaren Prozessor und können in einer prozeduralen und/oder objektorientierten Programmiersprache einer höheren Ebene und/oder in einer Maschinen-/Assembliersprache implementiert werden. Unter einem „maschinenlesbaren Medium” und einem „computerlesbaren Medium” ist hier ein beliebiges Computerprogrammprodukt, eine Vorrichtung und/oder ein Gerät (wie z. B. eine Magnetscheibe, eine optische Scheibe, ein Speicher, eine PLD) zu verstehen, die verwendet wird, um Maschinenbefehle und/oder Daten zu einem programmierbaren Prozessor zu geben, der ein maschinenlesbares Medium enthält, das Maschinenbefehle als ein maschinenlesbares Signal empfängt. Unter einem „maschinenlesbaren Signal” ist ein Signal zu verstehen, das verwendet wird, um Maschinenbefehle und/oder Daten zu einem programmierbaren Prozessor zu geben.
  • Um eine Interaktion mit einem Benutzer vorzusehen, können die hier beschriebenen Systeme und Techniken auf einem Computer implementiert werden, der eine Anzeigeeinrichtung (z. B. eine Kathodenstrahlröhre oder eine Flüssigkristallanzeige) zum Anzeigen von Informationen für den Benutzer und eine Tastatur und eine Zeigeeinrichtung (z. B. eine Maus oder einen Trackball) umfasst, über die der Benutzer Eingaben in den Computer eingeben kann. Es können auch andere Arten von Geräten verwendet werden, um eine Interaktion mit einem Benutzer vorzusehen, wobei zum Beispiel eine Rückmeldung für den Benutzer in der Form einer visuellen, akustischen oder taktilen Rückmeldung gegeben werden kann und wobei eine Eingabe von dem Benutzer in der Form einer akustischen, sprachlichen oder taktilen Eingabe gegeben werden kann.
  • Die hier beschriebenen Techniken und Systeme können in einem Computersystem implementiert werden, das eine Backend-Komponente (z. B. einen Datenserver), eine Middleware-Komponente (z. B. einen Anwendungsserver), eine Frontend- Komponente (z. B. einen Client-Computer mit einer grafischen Benutzerschnittstelle oder ein Web-Browser, über den eine Benutzer mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann) oder eine Kombination aus denselben umfasst. Die Komponenten des Systems können über eine beliebige digitale Datenkommunikation (z. B. über ein Kommunikationsnetz) miteinander verbunden sein. Beispiele für derartige Kommunikationsnetze sind ein LAN, ein WAN und das Internet.
  • Die vorliegende Beschreibung enthält viele Implementierungsdetails, die die Erfindung jedoch nicht einschränken, sondern lediglich als spezifische und beispielhafte Implementierungen der Erfindung aufzufassen sind. Bestimmte Merkmale, die in dieser Spezifikation in dem Kontext von separaten Implementierungen beschrieben werden, können auch in einer einzelnen Implementierung miteinander kombiniert werden. Umgekehrt können bestimmte Merkmale, die im Kontext einer einzelnen Implementierung beschrieben werden, auch auf verschiedene separate Implementierungen oder auf geeignete Teilimplementierungen aufgeteilt werden. Und auch wenn bestimmte Merkmale vorstehend in bestimmten Kombinationen beschrieben oder auch in dieser Form beansprucht werden, können sie unter Umständen aus der Kombination ausgegliedert werden und auf eine Teilkombination oder eine Variation einer Teilkombination angewendet werden.
  • Entsprechend müssen die in den Zeichnungen in einer bestimmten Reihenfolge gezeigten Operationen nicht in der gezeigten Reihenfolge oder überhaupt aufeinander folgend ausgeführt werden, wobei die gezeigten Operationen also beliebig ausgeführt werden können, um die gewünschten Ergebnisse zu erzielen. Unter bestimmten Umständen kann ein Multitasking oder eine parallele Verarbeitung vorteilhaft sein. Weiterhin ist die Aufteilung der verschiedenen Systemkomponenten in den oben beschriebenen Implementierungen nicht zwingend erforderlich, wobei die beschriebenen Programmkomponenten und Systeme allgemein auch zu einem einzelnen Softwareprodukt integriert oder in mehrere Softwareprodukte gepackt sein können.
  • Es wurden bestimmte Implementierungen der Erfindung beschrieben. Andere Implementierungen können innerhalb des durch die folgenden Ansprüche definierten Erfindungsumfangs realisiert werden. Zum Beispiel können die in den Ansprüchen genannten Operationen auch in einer anderen Reihenfolge ausgeführt werden und dennoch wünschenswerte Ergebnisse erzielen.

Claims (27)

  1. Verfahren, das folgende Schritte umfasst: Empfangen einer Anforderung von einem Prozessor für einen Speicherzugriff an einer ersten Speicherposition, Bestimmen einer zweiten Speicherposition, die mit der ersten Speicherposition assoziiert ist, wobei die zweite Speicherposition vor einem Zugriff durch den Prozessor geschützt ist, und Durchführen des angeforderten Speicherzugriffs an der zweiten Speicherposition.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren folgende Schritte umfasst: Empfangen eines Entsperrungsschlüssels, Bestimmen, ob der Entsperrungsschlüssel gültig ist, und Durchführen des angeforderten Speicherzugriffs an der zweiten Speicherposition, wen der Entsperrungsschlüssel gültig ist.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der angeforderte Speicherzugriff nur durchgeführt wird, wenn der Entsperrungsschlüssel innerhalb eines spezifizierten Bereichs von Taktzyklen vor dem Empfang der Anforderung empfangen wird.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die zweite Speicherposition durch eine Speicherschutzeinrichtung geschützt wird, die verhindert, dass der Prozessor auf die zweite Speicherposition zugreift, wobei die Verhinderung auf dem Ausführungszustand des Prozessors beruht.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Speicherschutzeinrichtung einen Speicherbereich schützt, der wesentlich größer als ein Bereich ist, auf den an der zweiten Speicherposition zugegriffen wird.
  6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Verhinderung weiterhin auf dem angeforderten Speicherzugriff beruht.
  7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die zweite Speicherposition mit einem Peripheriegerät assoziiert ist.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass: das Empfangen der Anforderung die Verwendung eines Systembusses umfasst, und das Durchführen des angeforderten Speicherzugriffs an der zweiten Speicherposition das Verwenden eines Peripheriebusses umfasst.
  9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren weiterhin umfasst: Empfangen von Konfigurationsinformationen, die eine Abbildung zwischen einer ersten Vielzahl von Speicherpositionen und einer zweiten Vielzahl von Speicherpositionen spezifizieren.
  10. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der angeforderte Speicherzugriff umfasst: Lesen einer spezifizierten Datenmenge von der zweiten Speicherposition und Senden der Daten zu dem Prozessor, oder Schreiben von Daten an der zweiten Speicherposition.
  11. Computerprogrammprodukt, das auf einem computerlesbaren Medium codiert ist und betrieben werden kann, um zu veranlassen, dass eine Datenverarbeitungsvorrichtung Operationen ausführt, die umfassen: Empfangen einer Anforderung von einem Prozessor für einen Speicherzugriff an einer ersten Speicherposition, Bestimmen einer zweiten Speicherposition, die mit der ersten Speicherposition assoziiert ist, wobei die zweite Speicherposition vor einem Zugriff durch den Prozessor geschützt ist, und Durchführen des angeforderten Speicherzugriffs an der zweiten Speicherposition.
  12. Programmprodukt nach Anspruch 11, dadurch gekennzeichnet, dass die Operationen weiterhin umfassen: Empfangen eines Entsperrungsschlüssels, Bestimmen, ob der Entsperrungsschlüssel gültig ist, und Durchführen des angeforderten Speicherzugriffs an der zweiten Speicherposition, wenn der Entsperrungsschlüssel gültig ist.
  13. Programmprodukt nach Anspruch 12, dadurch gekennzeichnet, dass der angeforderte Speicherzugriff nur durchgeführt wird, wenn der Entsperrungsschlüssel innerhalb eines spezifizierten Bereichs von Taktzyklen vor dem Empfang der Anforderung empfangen wird.
  14. Programmprodukt nach Anspruch 11, dadurch gekennzeichnet, dass die zweite Speicherposition durch eine Speicherschutzeinrichtung geschützt wird, die verhindert, dass der Prozessor auf die zweite Speicherposition zugreift, wobei die Verhinderung auf dem Ausführungszustand des Prozessors beruht.
  15. Programmprodukt nach Anspruch 14, dadurch gekennzeichnet, dass die Speicherschutzeinrichtung einen Speicherbereich schützt, der wesentlich größer als ein Bereich ist, auf den an der zweiten Speicherposition zugegriffen wird.
  16. Programmprodukt nach Anspruch 14, dadurch gekennzeichnet, dass die Verhinderung auf dem angeforderten Speicherzugriff beruht.
  17. Programmprodukt nach Anspruch 11, dadurch gekennzeichnet, dass die zweite Speicherposition mit einem Peripheriegerät assoziiert ist.
  18. System mit einem Prozessor, einer Speicherschutzeinrichtung und einer Einheit für den sicheren Zugriff (SAU), wobei die Einheit für den sicheren Zugriff betrieben werden kann, um die folgenden Operationen auszuführen: Empfangen einer Anforderung von dem Prozessor für einen Speicherzugriff an einer ersten Speicherposition, Bestimmen einer zweiten Speicherposition, die mit der ersten Speicherposition assoziiert ist, wobei die zweite Speicherposition durch die Speicherschutzeinrichtung vor einem Zugriff durch den Prozessor geschützt wird, und Durchführen des angeforderten Speicherzugriffs an der zweiten Speicherposition.
  19. System nach Anspruch 18, weiterhin gekennzeichnet durch folgende Operationen: Empfangen eines Entsperrungsschlüssels, Bestimmen, ob der Entsperrungsschlüssel gültig ist und Durchführen des angeforderten Speicherzugriffs an der zweiten Speicherposition, wenn der Entsperrungsschlüssel gültig ist.
  20. System nach Anspruch 19, dadurch gekennzeichnet, dass die Einheit für den sicheren Zugriff den angeforderten Speicherzugriff nur durchführt, wenn die Einheit für den sicheren Zugriff den Entsperrungsschlüssel innerhalb eines vorbestimmten Bereichs von Taktzyklen vor dem Empfang der Anforderung empfängt.
  21. System nach Anspruch 18, dadurch gekennzeichnet, dass die Speicherschutzeinrichtung auf der Basis des Ausführungszustands des Prozessors und des angeforderten Speicherzugriffs verhindert, dass der Prozessor auf die zweite Speicherposition zugreift.
  22. System nach Anspruch 18, dadurch gekennzeichnet, dass die Speicherschutzeinrichtung einen Speicherbereich schützt, der wesentlich größer als der Bereich ist, auf den an der zweiten Speicherposition zugegriffen wird.
  23. System nach Anspruch 18, dadurch gekennzeichnet, dass das System weiterhin einen Systembus und einen Peripheriebus umfasst und dass: das Empfangen der Anforderung weiterhin die Verwendung des Systembusses umfasst, die zweite Speicherposition mit einem Peripheriegerät assoziiert ist, und das Durchführen des angeforderten Speicherzugriffs weiterhin die Verwendung des Peripheriebusses umfasst.
  24. Vorrichtung, die umfasst: eine erste Schnittstelle, die konfiguriert ist, um eine Anforderung von einem Prozessor für einen Speicherzugriff an einer ersten Speicherposition zu empfangen, einen Speicher, der konfiguriert ist, um eine zweite Speicherposition zu spezifizieren, die mit der ersten Speicherposition assoziiert ist, wobei die zweite Speicherposition vor einem Zugriff durch den Prozessor geschützt ist, und eine zweite Schnittstelle, die konfiguriert ist, um den angeforderten Speicherzugriff an der zweiten Position durchzuführen.
  25. Vorrichtung nach Anspruch 24, dadurch gekennzeichnet, dass: die erste Schnittstelle konfiguriert ist, um einen Entsperrungsschlüssel zu empfangen, und die Vorrichtung betrieben werden kann, um zu bestimmen, ob der Entsperrungsschlüssel gültig ist, und um den angeforderten Speicherzugriff an der zweiten Speicherposition durchzuführen, wenn der Entsperrungsschlüssel gültig ist.
  26. Vorrichtung nach Anspruch 24, dadurch gekennzeichnet, dass der Speicher ein oder mehrere Steuerregister und ein oder mehrere Kanalregister umfasst.
  27. Vorrichtung nach Anspruch 26, dadurch gekennzeichnet, dass die erste Speicherposition einem der Kanalregister entspricht.
DE102009017496.6A 2008-05-13 2009-04-16 Speicherzugriff in einem System mit Speicherschutz Active DE102009017496B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/120,165 2008-05-13
US12/120,165 US8209509B2 (en) 2008-05-13 2008-05-13 Accessing memory in a system with memory protection

Publications (2)

Publication Number Publication Date
DE102009017496A1 true DE102009017496A1 (de) 2009-11-19
DE102009017496B4 DE102009017496B4 (de) 2020-09-10

Family

ID=41180619

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009017496.6A Active DE102009017496B4 (de) 2008-05-13 2009-04-16 Speicherzugriff in einem System mit Speicherschutz

Country Status (4)

Country Link
US (1) US8209509B2 (de)
CN (1) CN101582107A (de)
DE (1) DE102009017496B4 (de)
TW (1) TW200949557A (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009386B2 (en) 2010-12-13 2015-04-14 International Business Machines Corporation Systems and methods for managing read-only memory
US9323533B2 (en) 2011-12-29 2016-04-26 Intel Corporation Supervisor mode execution protection
US9858207B2 (en) 2013-02-06 2018-01-02 International Business Machines Corporation Page level key-based memory protection
US9348608B2 (en) 2013-04-24 2016-05-24 QRC, Inc. System and method for registering application and application transforms on a radiofrequency digitization and collection device
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
WO2021150594A1 (en) 2020-01-20 2021-07-29 Parsons Corporation Narrowband iq extraction and storage
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions
JP2022129555A (ja) * 2021-02-25 2022-09-06 セイコーエプソン株式会社 回路装置及び電子機器

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943507A (en) * 1994-12-22 1999-08-24 Texas Instruments Incorporated Interrupt routing circuits, systems and methods
US5825878A (en) * 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
GB2319705B (en) * 1996-11-21 2001-01-24 Motorola Ltd Arrangement for encryption/decryption of data and data carrier incorporating same
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
US7337360B2 (en) * 1999-10-19 2008-02-26 Idocrase Investments Llc Stored memory recovery system
US6594780B1 (en) * 1999-10-19 2003-07-15 Inasoft, Inc. Operating system and data protection
US6532533B1 (en) * 1999-11-29 2003-03-11 Texas Instruments Incorporated Input/output system with mask register bit control of memory mapped access to individual input/output pins
TW519651B (en) * 2000-06-27 2003-02-01 Intel Corp Embedded security device within a nonvolatile memory device
US7043640B2 (en) * 2001-02-14 2006-05-09 Pritchard James B Apparatus and method for protecting a computer system
US7159120B2 (en) * 2001-11-19 2007-01-02 Good Technology, Inc. Method and system for protecting data within portable electronic devices
US6854039B1 (en) * 2001-12-05 2005-02-08 Advanced Micro Devices, Inc. Memory management system and method providing increased memory access security
US7107459B2 (en) * 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
US6820177B2 (en) * 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US20050015611A1 (en) * 2003-06-30 2005-01-20 Poisner David I. Trusted peripheral mechanism
US7185178B1 (en) * 2004-06-30 2007-02-27 Sun Microsystems, Inc. Fetch speculation in a multithreaded processor
US7216216B1 (en) * 2004-06-30 2007-05-08 Sun Microsystems, Inc. Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window
US7178005B1 (en) * 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor
US7240160B1 (en) * 2004-06-30 2007-07-03 Sun Microsystems, Inc. Multiple-core processor with flexible cache directory scheme
US7424584B2 (en) * 2004-08-12 2008-09-09 International Business Machines Corporation Key-controlled object-based memory protection
US8788787B2 (en) * 2005-03-02 2014-07-22 The Boeing Company Systems, methods and architecture for facilitating software access to acceleration technology
US7941860B2 (en) * 2005-05-13 2011-05-10 Intel Corporation Apparatus and method for content protection using one-way buffers
US8572329B2 (en) * 2005-10-04 2013-10-29 Arm Limited Multi-region default memory map
GB0718817D0 (en) * 2007-09-26 2007-11-07 British Telecomm Password management
US20090113155A1 (en) * 2007-10-31 2009-04-30 Echostar Technologies Corporation Hardware anti-piracy via nonvolatile memory devices

Also Published As

Publication number Publication date
DE102009017496B4 (de) 2020-09-10
US8209509B2 (en) 2012-06-26
CN101582107A (zh) 2009-11-18
US20090287894A1 (en) 2009-11-19
TW200949557A (en) 2009-12-01

Similar Documents

Publication Publication Date Title
DE102009017496A1 (de) Speicherzugriff in einem System mit Speicherschutz
DE112005002298B4 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
DE112005002405B4 (de) Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung
DE69530776T2 (de) Zweiwege set-assoziativer cache-speicher
DE2854485C2 (de) Datenverarbeitungsanlage
DE112012004550B4 (de) Verfahren, System und Vorrichtung zur Zustandsmigration für einen Remote Direct Memory Access-Adapter in einer virtuellen Umgebung
DE112010002778B4 (de) Rauschunterdrückung zur Begrenzung von falschem Wecken
DE112004002259B4 (de) Zugriff auf private Daten zum Status einer datenverarbeitenden Maschine von einem öffentlich zugänglichen Speicher
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE112005002328T5 (de) Cachespeicherungsunterstützung für Direktspeicherzugriffsadreßübersetzung
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
DE202016107447U1 (de) Adressvalidierung unter Verwendung von Signaturen
DE102013022299B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
DE102014014076A1 (de) Reduzierte Adressenkonvertierung mit mehreren Seitengrößen
DE102012208751A1 (de) Datensicherheit für eine Datenbank in einer Mehrknotenumgebung
DE102013114091A1 (de) System und Verfahren zum Schutz von Daten
DE112021000537T5 (de) Verschlüsselung auf arbeitsspeicher-grundlage
DE102017104080A1 (de) Generalisiertes verifizierungsschema für sichere metadaten-modifizierung
DE19882617B4 (de) Speicherattributpalette
DE112017003822T5 (de) Automatische hardware-zlw-einführung für ipu-bildströme
DE3832758A1 (de) Computerisierte arbeitsstation
DE112007002327T5 (de) Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit
EP2747071A1 (de) Anzeige eines fälschungssicheren Identitätsindikators
DE3235264C2 (de)

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final