DE102016220639A1 - Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes - Google Patents

Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes Download PDF

Info

Publication number
DE102016220639A1
DE102016220639A1 DE102016220639.7A DE102016220639A DE102016220639A1 DE 102016220639 A1 DE102016220639 A1 DE 102016220639A1 DE 102016220639 A DE102016220639 A DE 102016220639A DE 102016220639 A1 DE102016220639 A1 DE 102016220639A1
Authority
DE
Germany
Prior art keywords
address
access
memory
ranges
address ranges
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.)
Pending
Application number
DE102016220639.7A
Other languages
English (en)
Inventor
Frank Hellwig
Gerhard Wirrer
Glenn Ashley Farrall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102016220639.7A priority Critical patent/DE102016220639A1/de
Priority to US15/784,403 priority patent/US10372630B2/en
Publication of DE102016220639A1 publication Critical patent/DE102016220639A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Eine Speicherschutzeinheit ist dafür ausgelegt, Zugriffsanforderungen auszuwerten, die sich auf einen Speicheradressraum beziehen. Die Zugriffsanforderungen umfassen Adressparameter, die sich auf die Adressen des Speicheradressraums beziehen. Die Speicherschutzeinheit umfasst einen Adressevaluierer, einen Adressergebniskombinierer und ein Datenregister. Der Adressevaluierer ist dafür ausgelegt auszuwerten, ob sich die Adressparameter auf Adressbereiche eines Adressbereichesatzes beziehen, und ist dafür ausgelegt, Ergebnisse bezüglich der Adressbereiche auszugeben. Der Adressergebniskombinierer ist dafür ausgelegt, vom Adressevaluierer gelieferte Ergebnisse zu kombinieren, abhängig von Zugriffsschutzgruppen, denen die Adressbereiche zugeordnet sind. Die Speicherschutzeinheit ist dafür ausgelegt, Zugriffsgewährungsergebnisse basierend auf vom Adressergebniskombinierer gelieferten Kombinationen bereitzustellen. Das Datenregister ist dafür ausgelegt, Daten zu speichern, die den Adressbereichesatz betreffen und die eine Zuordnung der Adressbereiche zu den Zugriffsschutzgruppen betreffen.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft allgemein Einheiten und Verfahren und insbesondere eine Speicherschutzeinheit und ein Verfahren zum Schützen eines Speicheradressraumes.
  • HINTERGRUND DER ERFINDUNG
  • In Computern oder eingebetteten Prozessoren sind interne Speicherschutzeinheiten (Memory Protection Units, MPU) implementiert, um einen Schutz für den Speicher oder den Speicheradressraum bereitzustellen. Während des Betriebs eines Datenverarbeitungssystems wird jede Anforderung, die einen Speicherzugriff beinhaltet, von der MPU gesteuert, die den Zugriff entweder gewährt oder verweigert. Der Zugriff ist mit verschiedenen Ebenen einer Zugriffshierarchie verbunden. Beispiele hierfür sind Supervisor-Ebene, Benutzer-1- und Benutzer-O-Ebene oder, im Fall virtueller Maschinen, Hypervisor, Ebene 0 und Ebene 1. Es ist bekannt, dass der Speicher unter Verwendung von Adressbereichen zugeordnet wird, die den Zugriffsebenen zugewiesen sind. Verschiedene Anwendungen erfordern unterschiedliche Adressbereichesätze. Ferner erlaubt eine größere Anzahl von Adressbereichen eine detailliertere Behandlung der Adressbereiche, verlängert jedoch auch die erforderliche Zeit für die Auswertung von Zugriffsanforderungen hinsichtlich ihrer Gültigkeit.
  • KURZFASSUNG DER ERFINDUNG
  • In einer Ausführungsform ist eine Speicherschutzeinheit dafür ausgelegt, Zugriffsanforderungen auszuwerten, die sich auf einen Speicheradressraum beziehen. Die Zugriffsanforderungen umfassen Adressparameter, die sich auf die Adressen des Speicheradressraums beziehen. Die Speicherschutzeinheit umfasst einen Adressevaluierer, einen Adressergebniskombinierer und ein Datenregister. Der Adressevaluierer ist dafür ausgelegt, auszuwerten, ob sich die Adressparameter auf Adressbereiche eines Adressbereichesatzes beziehen, und ist dafür ausgelegt, Ergebnisse bezüglich der Adressbereiche auszugeben. Der Adressergebniskombinierer ist dafür ausgelegt, vom Adressevaluierer gelieferte Ergebnisse zu kombinieren, abhängig von Zugriffsschutzgruppen, denen die Adressbereiche zugeordnet sind. Die Speicherschutzeinheit ist dafür ausgelegt, Zugriffsgewährungsergebnisse basierend auf vom Adressergebniskombinierer gelieferten Kombinationen bereitzustellen. Das Datenregister ist dafür ausgelegt, Daten zu speichern, die den Adressbereichesatz betreffen und die eine Zuordnung der Adressbereiche zu den Zugriffsschutzgruppen betreffen.
  • In einer anderen Ausführungsform umfasst ein Verfahren zum Schützen eines Speicheradressraumes, einen Adressbereichesatz des Speicheradressraumes Zugriffsschutzgruppen zuzuordnen, und umfasst, eine Zugriffsanforderung, die sich auf den Speicheradressraum bezieht, auszuwerten. Das Auswerten der Zugriffsanforderung umfasst: Auswerten, ob sich in den Zugriffsanforderungen enthaltene Adressparameter auf Adressbereiche des Adressbereichesatzes beziehen, Kombinieren der Ergebnisse bezüglich der Adressbereiche basierend auf der Zuordnung und Bereitstellen eines Zugriffsgewährungsergebnisses basierend auf Kombinationen von Ergebnissen bezüglich der Adressbereiche.
  • Einzelheiten zu einer oder mehreren Ausführungsformen sind in den beigefügten Zeichnungen und in der nachstehenden Beschreibung ausgeführt. Andere Merkmale, Ziele und Vorteile werden aus der Beschreibung und den Zeichnungen und aus den Patentansprüchen ersichtlich.
  • Figurenliste
  • Für ein umfassenderes Verständnis der vorliegenden Offenbarung und der damit verbundenen Vorteile wird nun auf die folgenden Beschreibungen in Verbindung mit den beigefügten Zeichnungen Bezug genommen, in denen:
    • 1 eine schematische Anordnung einer Ausführungsform einer Speicherschutzeinheit als Teil eines Datenverarbeitungssystems zeigt.
    • 2 eine Ausführungsform einer Speicherschutzeinheit zeigt.
    • 3 eine Abfolge von Schritten zum Schützen eines Speicheradressraumes veranschaulicht.
    • 4 einen Fall einander überschneidender Adressbereiche veranschaulicht.
    • 5 eine Ausführungsform einer Speicherschutzeinheit in abstrahierter Form zeigt.
    • 6 die verschiedenen Schritte in einer Ausführungsform einer Speicherschutzeinheit nach einer Zugriffsanforderung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG VON VERANSCHAULICHENDEN AUSFÜHRUNGSFORMEN
  • Die Herstellung und Verwendung der derzeit bevorzugten Ausführungsformen werden im Folgenden ausführlich erörtert. Es ist jedoch zu beachten, dass die vorliegende Erfindung eine Vielzahl anwendbarer erfinderischer Ideen bereitstellt, die in den unterschiedlichsten spezifischen Zusammenhängen ausgeführt werden können. Die hier erläuterten, spezifischen Ausführungsformen zeigen lediglich beispielhaft einige spezifische Möglichkeiten zur Herstellung und Verwendung der Offenbarung und sind nicht als Einschränkung des Schutzbereichs zu verstehen.
  • 1 veranschaulicht eine Ausführungsform einer Speicherschutzeinheit - abgekürzt MPU - 1 als Teil eines Datenverarbeitungssystems 10 (beispielsweise eine zentrale Verarbeitungseinheit/Central Processing Unit, CPU). Die Speicherschutzeinheit 1 schützt in einer Ausführungsform den physischen Speicher, z. B. eines Prozessors, als Speicheradressraum 11. In einer Ausführungsform bezieht sich der Speicher oder Speicheradressraum auf ein für eine CPU-Architektur definiertes „Speichermodell“. Ein solches „Speichermodell“ beschreibt, wie Adressraum definiert ist, auf den die CPU zugreifen kann. Dies beinhaltet beispielsweise die globale Größe des Adressbereichs, wie er organisiert ist, z. B. in Segmenten, die Segmentgröße, ob alle Segmente symmetrisch oder einige für Code/Daten/Register eingeschränkt sind, wo eine Vorauswahl (Prefetching) zulässig ist etc. In einer weiteren Ausführungsform schützt die Speicherschutzeinheit 1 einen Speicheradressraum, der zusätzlich oder alternativ eine Zuordnung zu Registern (Adresse) oder Speichern (Adresse) oder z. B. zu externen Adressbereichen etc. zulässt. Demnach bezieht sich in einer Ausführungsform der Speicheradressraum 11 auf externe Adressbereiche. „Extern“ beschreibt hier Adressbereiche, die nicht zu der betreffenden Einheit - z. B. Prozessor oder ASIC etc. - gehören, auf der die Speicherschutzeinheit 1 läuft. Die Nutzung des Adressspeicherraumes oder seiner Definition in der Praxis schränkt die Anwendbarkeit der beschriebenen Speicherschutzeinheit 1 nicht ein. Der geschützte Speicheradressraum 11 ist ein beliebiger Bereich zum Speichern von Daten. In einer Ausführungsform bezieht sich „Speicheradressraum“ auf einen Speicher an sich, in einer anderen Ausführungsform auf ein Register. Architekturen mit eingebetteten Prozessoren werden in der Regel für sicherheitskritische eingebettete Anwendungen mit einem Schutzsystem - das hier zum Teil durch die MPU 1 realisiert ist - definiert, um die Kernsystemfunktionalität gegen die Auswirkungen von Softwarefehlern zu schützen und zu verhindern, dass nicht berechtigte Softwarefunktionen auf kritische Systemressourcen zugreifen. Ein Schutzsystem beinhaltet in der Regel: eine Speicherschutzeinheit, verschiedene Eingabe/Ausgabe (E/A)-Berechtigungsstufen und ein Trap-System.
  • Die MPU 1 (oder genauer: die Speicheradressraum-Schutzeinheit) ist dafür ausgelegt, durch Zugriffsanforderungen 100 den Zugriff auf den Speicheradressraum 11 des Datenverarbeitungssystems 10 zu kontrollieren. „Kontrollieren“ bedeutet, dass der Zugriff entweder gewährt oder verweigert wird. Im Fall einer Zugriffsverweigerung veranlasst die MPU 1 in der gezeigten Ausführungsform ein TRAP. Ein Trap - auch als Ausnahme oder Fehler bezeichnet - ist in der Regel eine Art von synchroner Unterbrechung und führt in einer Ausführungsform zu einer Umschaltung in den Kernel-Modus, der es dem Betriebssystem ermöglicht, eine beliebige Aktion auszuführen, bevor die Kontrolle an den ursprünglichen Prozess zurückgegeben wird. Bei Gewährung des Zugriffs führt die zugelassene Zugriffsanforderung - als mögliche Ausgabe 101 der MPU 1 - eine Interaktion mit dem Speicheradressraum 11 aus. Die Interaktion gehört zu einer von drei Arten von Interaktionen: Lesen, Schreiben oder Ausführen von Code. Dies impliziert entweder, dass Daten aus dem Speicheradressraum 11 ausgelesen oder in diesen geschrieben werden oder dass Code unter Verwendung des Speicheradressraums 11 ausgeführt wird.
  • Der Zugriff auf den Speicheradressraum 11 ist an wenigstens ein Register des Speicheradressraumes 11 gerichtet, das durch eine Adresse 21 angegeben ist. Die Adressen des Speicheradressraumes 11 sind mit verschiedenen Adressbereichen 20 verknüpft. Die verschiedenen Adressbereiche 20 erlauben wenigstens eine Art von Transaktion und sind über Zugriffsschutzgruppen mit Berechtigungsstufen, auch E/A-Berechtigungsstufe genannt, verknüpft. Die Berechtigungsstufen werden beispielsweise durch den Buchstaben „L“ und eine Ziffer 0, 1, 2.. bezeichnet, wobei eine höhere Ziffer eine niedrigere Ebene und verringerte Zugriffsrechte impliziert.
  • Beispiele verschiedener Berechtigungsstufen sind:
    • • Supervisor (SV)-Modus: erlaubt den Lese/Schreibzugriff auf Systemregister und sämtliche Peripheriegeräte.
    • • Benutzer1-Modus: erlaubt Anwendungsaufgaben den direkten Zugriff auf nicht-kritische Peripheriegeräte des Systems.
    • • Benutzer0-Modus: wird für Aufgaben verwendet, die nicht auf Peripheriegeräte zugreifen.
  • Das gezeigte bereichbasierte Speicherschutzsystem wird z. B. für kleine oder kostengünstige Anwendungen für Systeme verwendet, die keinen virtuellen Speicher benötigen (seitenbasiert, MMU). Die Speicherschutzeinheit 1 wird beispielsweise in Echtzeitanwendungen verwendet, in denen ein virtuelles Speicherschutzsystem (MMU) aufgrund seines nicht-deterministischen Verhaltens Nachteile mit sich bringt (z. B. Neuladen von Seiten).
  • In verschiedenen Ausführungsformen basiert ein solches Schutzsystem auf mehreren konfigurierbaren Schutzbereichen:
    • • Ein Schutzbereich - hier auch als Adressbereich bezeichnet - ist ein zusammenhängender Teil des Adressraums, für den Zugriffsberechtigungen definiert werden.
    • • Ein Schutzbereich definiert die CPU-Zugriffsberechtigungen bezüglich der vorgenannten Arten von Interaktionen: Datenlesezugriff, Datenschreibzugriff, Codeausführungszugriff.
    • • Ein Schutzbereich ist durch eine Untergrenze und eine Obergrenze definiert. Eine Adresse gehört üblicherweise zu einem Adressbereich, falls die Untergrenze kleiner oder gleich der Adresse ist und falls die Adresse kleiner ist als die Obergrenze.
    • • Die Schutzbereiche sind beispielsweise als Datenschutzbereiche vordefiniert, die Datenzugriffsberechtigungen definieren, z. B. Lesen und Schreiben, und/oder Codeschutzbereiche, die Berechtigungen zum Abrufen von Anweisungen definieren.
    • • Ein Beispiel für eine Anzahl von Bereichen / Granularität ist: acht Adressbereiche für Code, 16 Adressbereiche für Daten, Granularität acht Byte.
  • In einer Ausführungsform sind die Bereiche des Speicheradressraumes fest CPU-Codeabrufen und dem CPU-Datenzugriff zugeordnet. Dies verbessert die CPU-Zeitsteuerung insgesamt trotz einer verringerten Flexibilität. In einer anderen Ausführungsform werden über Konfigurationsparameter Universal-Adressbereiche implementiert und dem Codeabruf oder dem Datenzugriff zugewiesen. Die Parameter eines Datenbereichs sind z. B. Ober- und Untergrenze, Leseunterstützung, Schreibunterstützung. Anweisungsbereiche werden durch eine Ober- und Untergrenze definiert.
  • Üblicherweise variiert die Anzahl der Code- und Datenschutzbereiche sowie die Granularität für Ober- und Untergrenzen:
    • • Eine größere Anzahl von Schutzbereichen ergibt eine feinkörnigere Kontrolle des Aufgabenzugriffs auf On-Chip-Ressourcen, ohne eine Neuprogrammierung der MPU-Sätze zu erfordern, wenn von einer Aufgabe zur anderen gewechselt wird.
    • • Eine größere Anzahl von Schutzbereichen ergibt eine größere Komplexität im zeitkritischen Zugriffspfad vom CPU-Kernel zu lokalen CPU-Speichern und On-Chip-Ressourcen. Ferner liegt die Adressvergleichlogik in Bezug auf die Bereichsprüfung per Definition in dem kritischen Pfad vom CPU-Kernel zu Systemspeichern oder Peripheriegeräten. Somit erhöht eine große Zahl von Bereichen die Zugriffslatenz. Daher verringert eine größere Zahl tendenziell die maximale Frequenz, die für einen gegebenen Satz der CPU-Architektur oder Chiptechnologie erreichbar ist. Eine große Zahl erhöht auch die Zugriffslatenz hinsichtlich der Zahl der CPU-Taktzyklen.
  • Eine Reaktion auf eine Speicheradressraum-Schutzverletzung - hier durch eine Zugriffsverweigerung - ist ein TRAP / nichtmaskierbares Interrupt (NMI). Abhängig von der Art der Zugriffsverweigerung wird sie als illegaler Datenzugriff oder als Anweisungsausnahme eingestuft.
  • Ein kompletter Satz von Zugriffsberechtigungen, der für den gesamten genutzten Adressraum definiert ist, wird z. B. als Schutzsatz bezeichnet. Ein Schutzsatz umfasst in einer Ausführungsform einen Satz ausgewählter Codeschutzbereiche und/oder einen Satz von Datenschutzbereichen. Der Schutzsatz definiert in einer Ausführungsform sowohl Datenzugriffsberechtigungen als auch Berechtigungen zum Abrufen von Anweisungen. In einer Ausführungsform ermöglicht es ein Schutzsatz der Software, frei zu definieren, welche Bereiche dem Schutzsatz zugewiesen werden. Ein solcher Schutzsatz ist in vollem Umfang konfigurierbar. In einer anderen Ausführungsform umfasst ein Schutzsatz Daten zu einem Adressbereichesatz, zu den zulässigen/zugehörigen Interaktionen und zu den Zugriffsschutzgruppen, denen die Adressbereiche zugeordnet sind.
  • Verschiedene Schutzsätze zu haben, erlaubt einen schnellen Wechsel des Satzes von Zugriffsberechtigungen, wenn z. B. zwischen Benutzer- und Supervisor-Modus oder zwischen verschiedenen Benutzeraufgaben umgeschaltet wird. Dies bezieht sich beispielsweise auch auf das Umschalten zwischen verschiedenen Schutzebenen und verschiedenen Aufgaben. Beispielsweise könnte eine Aufgabe im Benutzer-Modus sein, während die andere Aufgabe im Supervisor-Modus ausgeführt wird.
  • Ein Schutzsatz bestimmt die Zulässigkeit des Zugriffs auf den Speicheradressraum durch die aktuelle Aufgabe, d. h. die Zugriffsanforderung. Ein prozessorinternes Steuerregisterfeld bestimmt die Nummer des aktuellen Schutzregistersatzes. Bei der Arbeit mit Sätzen besteht in einer Ausführungsform keine Beschränkung auf nur einen Satz, der gleichzeitig aktiv ist, d. h. es können mehrere Sätze aktiv sein. Die Satz-Register sind der bevorzugte Weg zur Aktivierung und/oder Deaktivierung mehrerer Sätze in einem einzigen Zyklus. In einer anderen Ausführungsform ändert die Software oder Anwendung, die die Speicherschutzeinheit nutzt, den Aktivierungsstatus der Bereiche sequenziell.
  • In einer Ausführungsform wird die Zugriffserlaubnis für einander überschneidende Speicherbereiche folgendermaßen eingestellt: Falls einer der Bereiche dies zulässt, wird der Speicherzugriff gewährt. Das bedeutet, dass, wenn sich zwei Bereiche überschneiden, für die betreffende Interaktion der von beiden Bereichen abgedeckte Teilbereich die Berechtigung des Bereichs mit der höchsten Berechtigung erhält. Somit kann die Verschachtelung von Bereichen z. B. dafür genutzt werden, Lese/Schreibzugriffe auf einen Teilbereich eines größeren Bereichs, in dem die aktuelle Aufgabe Lesezugriff hat, zuzulassen. Eine Schreibberechtigung zum Ändern von Steuerregistern in Bezug auf den Speicherschutz ist in einer Ausführungsform nur auf der höchsten Berechtigungsstufe gegeben, die als Betriebssystemstufe dient.
  • In einer anderen Ausführungsform erlaubt die MPU eine flexible Hypervisor-Unterstützung. Dies erfolgt, indem ein E/A-Berechtigungsmodus (Hypervisor) und zwei Ebenen des Speicheradressraumschutzes vorgesehen werden und so wenigstens drei verschiedene Berechtigungsstufen abgedeckt werden:
    • • Eine Hypervisor-Stufe.
    • • Eine Stufe 0 (kurz L0), die von der Hypervisor-Aufgabe kontrolliert wird. Die Stufe L0 definiert die Speicherbereiche, in denen eine virtuelle Maschine aktiviert wird, um auf On-Chip-Ressourcen zuzugreifen. Mit den L0-Speicherschutzbereichen ist der Hypervisor in der Lage, die geforderte Einkapselung zwischen verschiedenen virtuellen Maschinen bereitzustellen. Schreibberechtigungen zum Ändern der LO-Bereiche werden ausschließlich an die Hypervisor-Berechtigungsstufe vergeben.
    • • Eine Stufe 1 (kurz L1), die von der Virtuelle-Maschine (VM)-Aufgabe kontrolliert wird. In einer Ausführungsform wird die Stufe L1 auch durch den Hypervisor kontrolliert, da sie den höchsten E/A-Berechtigungsmodus aufweist. Mit den L1-Speicherschutzbereichen oder -sätzen kann die virtuelle Maschine die Speicheradressraumbereiche kontrollieren, in denen Aufgaben mit niedrigerer E/A-Berechtigungsstufe ablaufen können, jedoch nur in den als L0 definierten Bereichen. Schreibberechtigungen zum Ändern der L1-Bereiche werden in einer Ausführungsform ausschließlich an die Hypervisor- und/oder die VM-Berechtigungsstufe vergeben.
  • In einer Ausführungsform werden die Zugriffsberechtigungen für einander überschneidende Speicheradressraumbereiche in einem solchen Hypervisor-System folgendermaßen vergeben:
    • • LO-Bereiche sind logisch durch eine ODER-Beziehung verknüpft.
    • • L1-Bereiche sind ebenfalls ODER-verknüpft.
    • • LO-Bereiche und L1-Bereiche sind durch eine UND-Beziehung verknüpft.
  • Schutzmerkmale des Speicheradressraumes sind:
    • • Adressbereiche (wenigstens definiert durch Ober- und Untergrenzen) des Speicheradressraumes sind Zugriffsschutzgruppen zugeordnet, die mit verschiedenen Berechtigungsstufen (z. B. Hypervisor, virtuelle Maschine, Benutzer0) verknüpft sind. Damit ist die Zuweisung konfigurierbar.
    • • Die Zuweisung von Adressbereichen zu Zugriffsschutzgruppen wird vorzugsweise nur für Zugriffe mit der zugehörigen Berechtigungsstufe oder einer höheren Berechtigungsstufe zugelassen. Beispielsweise kann nur ein Hypervisor die Adressbereiche entsprechenden Gruppen zuordnen.
    • • Die Adressbereiche können nicht durch jedwede Berechtigungsstufe konfiguriert werden, sondern lediglich durch die definierten Berechtigungsstufen oder -gruppen (z. B. kann eine virtuelle Maschine nur den ihr zugeordneten Adressbereich ändern).
    • • Die Adressbereiche sind in einer Ausführungsform außerdem mit bestimmten Arten von Interaktionen (z. B. Lesen, Schreiben, Ausführen) verknüpft, die für die betreffenden Adressbereiche zulässig sind.
    • • Bezüglich der Gewährung des Zugriffs werden die Ergebnisse der Auswertung der Adressbereiche, die von einer Zugriffsanforderung betroffen sind, ODER-verknüpft, falls sie mit derselben Gruppe verknüpft sind. Dies liefert ein Ergebnis für die aktiven Bereiche (betreffend die Zugriffsanforderung und den beabsichtigten Zugriff). Die Ergebnisse betreffend die aktiven und verschiedenen Gruppen werden UND-verknüpft.
  • In 2 sind Einzelheiten einer konfigurierbaren mehrstufigen Speicherschutzeinheit (MPU) 1 dargestellt. Sie hat den Vorteil, dass sie flexibel genug ist, um die Bedürfnisse verschiedener Anwendungsszenarien zu erfüllen. Ferner erfordert sie keinen großen Überhang an Bereichen, der zu einer verringerten maximalen Frequenz des Designs führt. Die gezeigte MPU 1 empfängt eine Zugriffsanforderung 100 und lässt diese entweder als zulässige Zugriffsanforderung 101 passieren oder verweigert den Zugriff auf den in 1 dargestellten Speicheradressraum. In einer alternativen Ausführungsform veranlasst die MPU 1 im Fall einer Zugriffsverweigerung ein TRAP. Die Zugriffsanforderung 100 ist mit gewissen Parametern verknüpft, die sich in dieser Ausführungsform auf wenigstens eine Adresse des Speicheradressraumes beziehen und sich auf eine Art von Interaktion beziehen.
  • Die MPU 1 umfasst einen Adressevaluierer 2 und einen Adressergebniskombinierer 3. Die Komponenten sind in einer Ausführungsform durch entsprechende Logikbausteine realisiert. Ferner hat die MPU 1 über ein Datenregister 7 Zugriff auf wenigstens einen (oder mehrere) Satz/Sätze von Adressbereichen mit zulässigen Interaktionen und verknüpft mit Zugriffsschutzgruppen. Die Zugriffsschutzgruppen sind in einer Ausführungsform mit verschiedenen Berechtigungsstufen verknüpft, z. B. Hypervisor, Stufe 0 und Stufe 1 oder Supervisor, Benutzer 1 und Benutzer 0. Die Zugriffsschutzgruppen sind im Folgenden nummeriert, d. h. Gruppe 0, Gruppe 1, ... Gruppe x.
  • Der Adressevaluierer 2 vergleicht den wenigstens einen Adressparameter der Zugriffsanforderung 100 mit den Adressbereichen des Adressbereichesatzes. Das impliziert, dass der Adressevaluierer 2 die Adressbereiche identifiziert, auf die sich der wenigstens eine Adressparameter der Zugriffsanforderung 100 bezieht. Insbesondere ist es möglich, dass sich der Adressparameter auf mehr als einen Adressbereich bezieht, da sich die Adressbereiche überlappen oder überschneiden können. In einer Ausführungsform liefert der Adressevaluierer 2 für jeden Adressbereich des Adressbereichesatzes einen logischen Wert „wahr“ oder „falsch“ (bzw. 1 und 0), abhängig davon, ob die Adresse zu dem betreffenden Adressbereich gehört oder nicht. Der Adressevaluierer 2 ist in der gegebenen Ausführungsform ferner dafür ausgelegt, den in der Zugriffsanforderung 100 enthaltenen Interaktionsparameter mit der Art der zulässigen Interaktion des jeweiligen aktiven Adressbereichs zu vergleichen. Das beinhaltet, dass der Adressevaluierer 2 auswertet, ob die durch die Zugriffsanforderung 100 gewünschte und durch einen Interaktionsparameter beschriebene Interaktion für die aktiven Adressbereiche des Adressbereichesatzes zulässig ist. Aktive Adressbereiche sind Adressbereiche, auf die sich die Adressparameter beziehen. In einer Ausführungsform umfasst der Adressevaluierer 2 mehrere Komparatoren, die dafür ausgelegt sind zu entscheiden, ob sich ein Adressparameter auf einen Adressbereich bezieht oder nicht, d. h. ob die Adresse größer oder gleich einer Untergrenze und kleiner als eine Obergrenze ist.
  • Die beiden Vergleiche (die mit zwei Fragen verknüpft sind: Gehört der Adressparameter zu einem Adressbereich? Ist die Art von Interaktion für den Adressbereich zulässig?) werden für alle Adressbereiche durchgeführt, die durch den Adressbereichesatz definiert sind, und führen zu einem einzigen Ergebnis für jeden Adressbereich. Das Ergebnis ist in einer Ausführungsform ein logisches „wahr“ (bzw. 1) oder „falsch“ (bzw. 0). Beispielsweise zeigt ein Wert „wahr“ für einen Adressbereich an, dass sich der Adressparameter auf diesen Adressbereich bezieht und dass der Interaktionsparameter eine mit diesem Adressbereich verknüpfte oder für ihn zulässige Interaktion ist. Ein Wert „falsch“ zeigt an, dass sich entweder der Adressparameter nicht auf einen Adressbereich bezieht oder dass durch die Zugriffsanforderung ein falscher Interaktionsparameter angegeben wurde.
  • Der Adressergebniskombinierer 3 kombiniert die Ergebnisse des Adressevaluierers 2 unter Verwendung der Zugriffsschutzgruppen. Der Adressergebniskombinierer 3 ist dafür ausgelegt, Ergebnisse, die zu Adressbereichen gehören, welche derselben Zugriffsschutzgruppe zugeordnet sind, mit einer ODER-Verknüpfung zu kombinieren. Der Adressergebniskombinierer 3 kombiniert ferner die Ergebnisse in einer UND-Verknüpfung, wenn sie zu verschiedenen aktiven Zugriffsschutzgruppen gehören, wobei aktive Zugriffsschutzgruppen solche Zugriffsschutzgruppen sind, denen aktive Adressbereiche zugeordnet sind. Da nur aktive Zugriffsschutzgruppen UND-verknüpft werden, sind solche Zugriffsschutzgruppen von der Auswertung ausgenommen, denen lediglich Adressbereiche zugeordnet sind, auf welche sich die Adressparameter nicht beziehen. In einer weiteren Ausführungsform werden Zugriffsschutzgruppen von der UND-Verknüpfung basierend darauf ausgenommen, dass Daten des Datenregisters 7 anzeigen, dass diese spezifischen Gruppen abgeschaltet (oder nicht eingeschaltet) sind. Somit erlaubt es diese Ausführungsform, Gruppen zu spezifizieren, die, selbst wenn sie aktiv sind, nicht bei der UND-Verknüpfung berücksichtigt werden.
  • Das Ergebnis der UND-Verknüpfung zeigt an, ob ein Zugriff gewährt oder verweigert wird, d. h. ob die Zugriffsanforderung 100 auf den Speicheradressraum zugreifen kann oder nicht. Dies wird durch den Ausgang 101 der MPU angezeigt. Die notwendigen Daten bezüglich der Adressbereiche, der Zugriffsschutzgruppen und der zulässigen Interaktion sind hier in einem einzigen Datenregister 7 gespeichert, das mit dem Adressevaluierer 2 und dem Adressergebniskombinierer 3 verbunden ist. Das Datenregister 7 ist in einer anderen Ausführungsform in verschiedene Datenregister unterteilt. In einer Ausführungsform kann von außen auf das Datenregister 7 zugegriffen werden, um die jeweiligen Einstellungen zu definieren.
  • Das Datenregister 7, das die Informationen über die Adressbereiche speichert, ist in einer Ausführungsform mit Schreibschutz ausgestattet. Der Schreibschutz erlaubt in einer Ausführungsform nur, dass jede Gruppe ausschließlich auf Daten zugreifen kann, die sich auf Adressbereiche beziehen, welche der betreffenden Gruppe zugeordnet sind. Beispielsweise verfügt die Berechtigungsstufe „virtuelle Maschine“ über Schreibzugriff, um nur die der betreffenden Gruppe zugeordneten Adressbereiche zu definieren. In einer Ausführungsform bezieht sich ein Schreibschutz oder Registerschreibschutz auf einen festen oder konfigurierbaren Mechanismus, der definiert, welche Aufgabe in diese Register (hier z. B. Datenregister) schreiben darf. Der Zugriff auf das Datenregister basiert in einer Ausführungsform auf einer Berechtigungsstufe (beispielsweise hat ein Hypervisor Schreibzugriff zum Zuordnen von Konfiguration, und gruppe0, VM0 und Hypervisor haben Zugriff auf Gruppe1 etc.). In einer anderen Ausführungsform ist der Zugriff konfigurierbar unter Verwendung der Berechtigungsstufe oder einer Identifikation der Ausgabe oder eindeutiger TAG-IDs des On-Chip-Busses.
  • In einer Ausführungsform ist das Datenregister derart konfiguriert, dass das Definieren von Daten betreffend wenigstens einen Adressbereich nur für eine Berechtigungsstufe aktiviert ist, die mit einer Zugriffsschutzgruppe verknüpft ist, der wenigstens ein Adressbereich zugeordnet ist. In einer anderen Ausführungsform ist das Datenregister derart konfiguriert, dass das Definieren von Daten betreffend wenigstens einen Adressbereich nur für eine Berechtigungsstufe, die mit einer Zugriffsschutzgruppe verknüpft ist, der wenigstens ein Adressbereich zugeordnet ist, oder für eine höhere Berechtigungsstufe aktiviert ist. Beide Ausführungsformen schränken den Zugriff auf das Datenregister ein und begrenzen die Möglichkeit zum Definieren, Konfigurieren oder Modifizieren der Daten betreffend die Adressbereiche auf einige Berechtigungsstufen. Dies sind entweder ausschließlich die Berechtigungsstufe, die der Zugriffsschutzgruppe zugeordnet ist, der der Adressbereich zugeordnet ist, oder die erwähnte Berechtigungsstufe und eine höhere Berechtigungsstufe in der betreffenden Hierarchie (z. B. falls sich die Zugriffsschutzgruppe auf eine virtuelle Maschine bezieht, dann kann auch der Hypervisor die Einstellung des Adressbereichs ändern). Insbesondere sind Modifikationen von Gruppen mit niedrigerer Zugriffsebene verboten. Gemäß einer Ausführungsform ist das Datenregister 7 dafür ausgelegt, das Ein- oder Ausschalten von Zugriffsschutzgruppen in Bezug darauf zu konfigurieren, ob sie vom Adressergebniskombinierer beim Kombinieren der Ergebnisse in einer UND-Verknüpfung eingeschlossen werden. Dies ist auch beschränkt auf die zugeordnete Berechtigungsstufe oder in einer anderen Ausführungsform auf die zugeordnete Berechtigungsstufe und eine höhere Berechtigungsstufe. In einer Ausführungsform kann die Zuordnung der Adressbereiche zu Zugriffsschutzgruppen nur geändert werden, wenn die höchste Berechtigungsstufe gegeben ist (z. B. kann nur ein Hypervisor die Daten ändern). Die Definitionen der Adressbereiche sind in einer Ausführungsform begrenzt auf das Definieren der Interaktionen. In einer anderen Ausführungsform beziehen sich die Einschränkung der Änderung und der Schreibschutz auf die Definition der Adressbereiche (d. h. Ober- und Untergrenze) und/oder die Zuordnung der Adressbereiche zu Gruppen und/oder das Zulassen von Interaktionen.
  • Im Fall einer MPU-Schutzverletzung, d. h. im Fall eines negativen Zugriffsgewährungsergebnisses 101, ruft ein Trap die Berechtigungsstufe auf, die mit der Gruppe, in der die Verletzung erkannt wurde, verknüpft ist. Falls sich daher der Adressparameter auf einen Adressbereich bezieht, der einer gruppe1 (welche mit der virtuellen Maschine verknüpft ist) zugeordnet ist, der Interaktionsparameter jedoch von der Interaktion abweicht, die mit diesem Adressbereich verknüpft (oder dafür zulässig) ist, ist es zu einer Verletzung der gruppe1 gekommen und ruft das Trap als Anzeige einer Zugriffsverletzung die virtuelle Maschine, d. h. gruppe1, auf. Falls eine Verletzung der gruppe0 vorkommt, ruft das Trap den Hypervisor auf. In einer anderen Ausführungsform wird im Fall eines negativen Zugriffsgewährungsergebnisses 101 immer die höchste verfügbare Berechtigungsstufe des Systems aufgerufen, zu dem die Speicherschutzeinheit gehört.
  • Das Verfahren zum Schützen des Speicheradressraums wird nochmals im Zusammenhang mit 3 erläutert, die eine Ausführungsform der verschiedenen Schritte des Verfahrens zeigt. Die Sequenz beginnt mit Schritt 1001 durch Empfangen einer Zugriffsanforderung mit einem Adressparameter und einem Interaktionsparameter. In Schritt 1002 werden die Adressparameter mit den Adressbereichen des Adressbereichesatzes verglichen. So werden aktive Adressbereiche identifiziert. In Schritt 1003 wird der Interaktionsparameter mit der Art von Interaktion verglichen, die mit den aktiven Adressbereichen verknüpft ist. Die Ergebnisse der Schritte 1002 und 1003 zeigen somit an, auf welchen Adressbereich sich die Zugriffsanforderung 100 bezieht und ob die Interaktion, die mit der Zugriffsanforderung 100 beabsichtigt ist, für diese Adressbereiche zulässig ist. In Schritt 1004 werden die Ergebnisse der verschiedenen Adressbereiche hinsichtlich der Zugriffsschutzgruppen, denen die aktiven Adressbereiche zugeordnet sind, kombiniert. Die Ergebnisse der Adressbereiche, die derselben Zugriffsschutzgruppe angehören, werden ODER-verknüpft. Im folgenden Schritt 1005 werden die Ergebnisse aus Schritt 1004 mittels einer UND-Verknüpfung kombiniert, indem die Ergebnisse betreffend die aktiven, jedoch verschiedenen Zugriffsschutzgruppen kombiniert werden. Auf der UND-Verknüpfung basiert das Zugriffsgewährungsergebnis 101, das anzeigt, ob der Zugriff gewährt oder verweigert wird.
  • In 4 ist der Effekt einander überschneidender Adressbereiche veranschaulicht. Gezeigt werden Adressbereiche 20, die zu einer Zugriffsschutzgruppe L0 (Kasten oben links) bzw. L1 (Kasten unten links) gehören. Es sind vier Adressbereiche gegeben: R0, R1, R2 und R3. Die Bereiche R0 und R1 sind der Gruppe L0 zugeordnet. Die Bereiche R2 und R3 sind der Gruppe L1 zugeordnet. Ferner sind die Bereiche für den Schreibzugriff (Kennzeichnung „W“) oder den Lesezugriff (Kennzeichnung „R“) konfiguriert. Position und Länge der Bereiche hier vermitteln einen Eindruck von der Position und Ausdehnung von Adressen, die von den jeweiligen Adressbereichen abgedeckt werden. Die beiden Adressbereiche R0 und R1, die ein und derselben Gruppe L0 zugeordnet sind, sind ODER-verknüpft. Da R0 mit Lesezugriff größer ist als R1 mit Schreibzugriff, hat der Adressbereich „R0 oder R1“ die Größe von R0 und ist teilweise für Lese- und Schreibzugriff (Kennzeichnung „R/W“) und teilweise für Lesezugriff ausgelegt. Der Lese- und Schreibzugriff ergibt sich aus dem Überlappungsbereich von R0 und R1. Die beiden Adressbereiche R2 und R3, die der Gruppe L1 zugeordnet sind, sind ebenfalls ODER-verknüpft. R3 umfasst zwei separate Adressbereiche, die für Schreibzugriff ausgelegt sind. Der resultierende Adressbereich „R2 ODER R3“ hat zwei Bereiche, die für Lesezugriff ausgelegt sind, und zwei Bereiche, die für Lese- und Schreibzugriff ausgelegt sind. Falls die zu L0 (R0 ODER R1) und L1 (R2 ODER R3) gehörigen Bereiche UND-verknüpft sind, zeigt der resultierende Adressbereich die Erweiterung der kleineren ODER-Verknüpfung (die hier zu L1 gehört). Ferner hängt die Art des zulässigen Zugriffs von den Adressbereichen ab, in denen derselbe Zugriffstyp zugelassen ist. Das Ergebnis der UND-Verknüpfung ist rechts in dem mittleren Kasten abgebildet.
  • 5 zeigt eine Ausführungsform der MPU 1 und der Verarbeitung einer Zugriffsanforderung 100 in abstrahierter Form. Die Zugriffsanforderung 100 als beabsichtigter Systemzugriff auf MPU-Steuerungsregister erreicht die konfigurierbare MPU 1, die den Systemzugriff auf MPU-Steuerregister zulässt oder verweigert. Die Zugriffsanforderung 100 startet einen Zugriffsschutz für eine globale oder eine statische Konfiguration (Kasten links), was in dieser Ausführungsform beinhaltet, eine statische MPU-Konfiguration anzustoßen, die hier zwei Komponenten impliziert (mittlerer Kasten unten):
    • • Zuordnen der MPU-Adressbereiche zu Zugriffsschutzgruppen.
    • • Optional: Zugriffsschutzkonfiguration für jede der Zugriffsschutzgruppen. Alternativ ist jede Zugriffsschutzgruppe fest einer bestimmten CPU-Berechtigung zugeordnet.
  • Somit sind die Adressbereiche und die Definitionen von Zugriffsschutzgruppen gemäß der aktuellen Anwendung definiert und zum Auswerten der Zugriffsanforderung 100 verwendbar.
  • Zunächst wird, basierend auf den Parametern der Zugriffsanforderung 100, ausgewertet, welche Zugriffsschutzgruppe zu berücksichtigen ist (Block links mit „Zugriffsschutzgruppex“ bis hinunter zu „Zugriffsschutzgruppe0“). Hier ist x+1 die Zahl der Zugriffsschutzgruppen für die aktuelle Anwendung. Diese Auswertung basiert auf den Adressbereichen, die von der Zugriffsanforderung und der Art von Interaktion betroffen sind.
  • Den Zugriffsschutzgruppen folgt ein spezifischer Gruppenzugriff auf Register der zugeordneten Bereiche und auf SATZ-Register. Hier ist Gruppe0 beispielsweise mit L0 oder Hypervisor verknüpft, je nach Art der Anwendung, Gruppe 1 ist mit L1 oder „virtuelle Maschine“ (VM) verknüpft und eine Gruppex deckt die Berechtigungsstufen L1 oder eine andere virtuelle Maschine (VMs) ab. Der in 5 gezeigte Mechanismus stellt in einer Ausführungsform sicher, dass nur ein Benutzer mit der für diesen Zweck spezifizierten Berechtigungsstufe (z. B. der höchsten Berechtigungsstufe, z. B. Hypervisor) Adressbereiche zu Zugriffsschutzgruppen (z. B. virtuelle Maschine oder Hypervisor) zuordnen kann. Ferner können die verschiedenen virtuellen Maschinen (VMx) beispielsweise nur ihnen zugeordnete Adressbereiche konfigurieren. Dies basiert darauf, dass zum Modifizieren der Zuordnungskonfiguration die Berechtigungsstufe des Hypervisor gegeben sein muss (als Beispiel für die Berechtigungsstufe, die höher als die Berechtigungsstufe ist, für die der Zugriff auf den jeweiligen Adressbereich gewährt wird).
  • Insgesamt werden Adressbereiche per Konfiguration (d. h. Definitionen) Zugriffsschutzgruppen zugeordnet, wobei jede dieser Gruppen einer anderen E/A-Berechtigungsstufe zugewiesen ist. In verschiedenen Ausführungsformen sind folgende Merkmale gegeben:
    • • Ein Register beispielsweise, das zur Speicherschutzeinheit 1 gehört, erlaubt die Zuordnung so zu steuern, dass sie einen dedizierten Zugriffsschutzmechanismus hat.
    • • Ein Register beispielsweise, das zur Speicherschutzeinheit 1 gehört, ermöglicht das Aktivieren bzw. Deaktivieren einer Zugriffsschutzgruppe für die UND-Verknüpfung.
    • • Jede Zugriffsschutzgruppe deckt Steuerregister von Adressbereichen ab, die ihr zugeordnet sind.
    • • Die Art des Zugriffsschutzmechanismus der Gruppen ist entweder konfigurierbar oder feststehend. Dies bezieht sich z. B. auf die Möglichkeit, den Zugriff auf Adressbereiche zu gewähren, die „niedrigeren“ Berechtigungsstufen zugewiesen sind. Beispielsweise kann in einer Ausführungsform L0 nur durch „Hypervisor“ modifiziert werden, wohingegen L1 durch „Hypervisor“ und/oder „virtuelle Maschine“ modifiziert werden kann.
    • • Informationen zu den Adressbereichen, die derselben Zugriffsschutzgruppe zugeordnet sind, werden ODER-verknüpft (z. B. alle LO-Bereiche).
    • • Informationen über die verschiedenen aktiven Zugriffsschutzgruppen werden UND-verknüpft (z. B. die L0 zugewiesene Gruppe und die L1 zugewiesene Gruppe).
    • • In einer Ausführungsform besteht eine Option, eine Zugriffsgruppe zu aktivieren oder zu deaktivieren (bzw. aus- und einzuschalten) betreffend die UND-Verknüpfung dieser Gruppe. Dies bezieht sich z. B. auf eine MPU mit mehr als zwei Gruppen.
    • • In einer Ausführungsform ist jede Zugriffsschutzgruppe einem Satz-Register zugeordnet, das die relevanten Einstellungen speichert. Das Satz-Register erlaubt in einer Ausführungsform, Adressbereiche zu aktivieren bzw. zu deaktivieren, die der jeweiligen Gruppe zugewiesen sind. In einer anderen Ausführungsform sind die Satz-Register selbst mit einem dedizierten Zugriffsschutzmechanismus geschützt, der in einer Ausführungsform der Mechanismus der zugehörigen Gruppe ist. Zum Beispiel: Ein Hypervisor kann ein L0-Satz-Register verwenden, um schnell zwischen Einstellungen oder verschiedenen virtuellen Maschinen (VMx) umzuschalten. Jede virtuelle Maschine (VMx) kann ihre Satz-Register verwenden, um schnell zwischen Einstellungen für die verschiedenen Aufgaben umzuschalten.
    • • Bei Erkennung einer Zugriffsschutzverletzung - d. h. im Fall, dass eine ungültige Zugriffsanforderung erkannt wird - wird in einer Ausführungsform ein Trap an die Berechtigungsstufe signalisiert, die sich auf die E/A-Berechtigungsstufe der Gruppe bezieht, in der der Bereich verletzt wurde. Dies impliziert, dass im Fall einer Erkennung, dass der Interaktionsparameter von der Interaktion, die für einen aktiven, einer spezifischen Gruppe zugeordneten Adressbereich zulässig oder diesem zugewiesen ist, die mit dieser spezifischen Gruppe verknüpfte Berechtigungsstufe aufgerufen wird.
  • Einige Ausführungsformen betreffen Optionen, wie die Hardware beispielsweise den Hypervisor beim Umschalten zwischen verschiedenen virtuellen Maschinen unterstützt:
    • • In einer Ausführungsform werden mehrere Gruppen einer virtuellen Maschine zugewiesen. Der Hypervisor aktiviert eine Gruppe oder Gruppen, die in Beziehung zu der gerade ausgeführten virtuellen Maschine stehen. Diese gerade ausgeführte virtuelle Maschine kann nur die Adressbereiche ändern, die der Gruppe zugeordnet sind, welche der virtuellen Maschine zugewiesen ist. Die UND-Verknüpfung zum Kombinieren der Ergebnisse, die von dem Berechtigungsstufenevaluierer bereitgestellt werden, berücksichtigt dementsprechend ausschließlich die aktivierten Gruppen.
    • • Wo eine virtuelle Maschine auf einer einzelnen CPU ausgeführt wird, verwenden in einer Ausführungsform mehrere Gruppen virtueller Maschinen dieselben Hardwarebereiche (gemeinsame Ressourcen). Dies ist in einer Ausführungsform folgendermaßen realisiert: Beim Umschalten von einer virtuellen Maschine VMx auf eine andere virtuelle Maschine VMy speichert der Hypervisor den Inhalt der Bereiche für die VMx und lädt ihn mit den zuletzt gespeicherten VMy-Einstellungen. Eine andere Ausführungsform sieht vor, dass der Hypervisor die Bereiche löscht, die virtuellen Maschinen zugewiesen sind, wenn umgeschaltet wird, wobei jede virtuelle Maschine die Adressbereiche neu konfigurieren muss, die ihr zugewiesen sind, sobald sie neu gestartet wird.
  • 6 zeigt eine weitere Ausführungsform der MPU 1, die eine Zugriffsanforderung als Eingang 100 empfängt und als Ausgang 101 ausgibt, ob der Zugriff gewährt wird oder nicht. Die Zugriffsanforderung 100, bei der es sich um einen CPU-Zugriff handelt, enthält Parameter, z. B. bezüglich der Adresse des Speicheradressraumes und bezüglich einer Interaktion.
  • Die konfigurierbare MPU 1 prüft den CPU-Zugriff auf den Speicheradressraum. Die Zugriffsanforderung 100 erreicht in der gezeigten Ausführungsform zunächst einen Adressevaluierer 2, der sich auf die Adressbereiche bezieht, welche von der MPU 1 abgedeckt werden. Hier sind dies Y Adressbereiche: Bereich 1, Bereich 2, .. Bereich Y. Jeder der Y Adressbereiche wird mit dem oder den Adressparametern der Zugriffsanforderung 100 daraufhin verglichen, ob die Adresse in den betreffenden Bereich fällt. Ferner wird ausgewertet, ob die Art von Interaktion (Lesen, Schreiben, Ausführen), die durch die Zugriffsanforderung 100 beabsichtigt ist, für den betreffenden Adressbereich zulässig ist. Da jeder Vergleich ein Gültig-Signal ergibt, gibt es Y „Gültig-Signale“.
  • Die Gültig-Signale werden von dem angezeigten Adressergebniskombinierer 3 ODER-verknüpft, falls die betreffenden Adressbereiche derselben Zugriffsschutzgruppe zugeordnet sind. Falls beispielsweise zwei Adressbereiche mit der Gruppe0 verknüpft sind, werden die Gültig-Signale der beiden Adressbereiche ODER-verknüpft.
  • Gezeigt werden drei Gruppen: Gruppe0, Guppe1 und Gruppex, die beispielsweise die Berechtigungsstufen L0 oder Hypervisor (Gruppe0), L1 oder VM1 (Gruppe1) bzw. L1 oder VMx (Gruppex) repräsentieren. Bezüglich jeder Gruppe werden in der gezeigten Ausführungsform folgende Schritte ausgeführt:
    1. 1. Maskieren von Gültig-Signalen mit ausgewählten SATZ-Registern
    2. 2. ODER-Verknüpfung von Gültig-Signalen für aktive Adressbereiche.
  • Daten über die Zuordnung der Adressbereiche zu den Gruppen und Informationen über die Deaktivierung oder Aktivierung von Gruppen betreffend die UND-Verknüpfung sind im Datenregister 7 gespeichert.
  • Die Gültig-Signale von den verschiedenen Gruppen - d. h. die Ergebnisse der ODER-Verknüpfungen - werden mit einer UND-Verknüpfung kombiniert. Die Kombination bezieht sich auf Gültig-Signale, die die von der Zugriffsanforderung 100 betroffenen Adressbereiche betreffen. Falls daher die Zugriffsanforderung 100 auf eine Adresse abzielt, die zwei verschiedenen Zugriffsschutzgruppen zugeordnet ist, werden die Gültig-Signale dieser beiden Gruppen UND-verknüpft. Das Ergebnis der UND-Verknüpfung liefert Informationen darüber, ob der Zugriff mittels der Zugriffsanforderung gültig ist oder nicht. Diese Information wird über den Ausgang 101 ausgegeben.
  • Da sich die Beschreibung auf beispielhafte Ausführungsformen bezieht, ist diese Beschreibung keinesfalls als einschränkend zu verstehen. Verschiedene Modifikationen und Kombinationen der beispielhaften Ausführungsformen sowie andere Ausführungsformen sind für Fachleute auf diesem Gebiet der Technik anhand der Beschreibung offenkundig. Daher ist beabsichtigt, dass die beigefügten Patentansprüche alle diese Modifikationen oder Ausführungsformen beinhalten.
  • Obwohl einige Aspekte im Zusammenhang mit einer Vorrichtung beschrieben worden sind, wird deutlich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wobei ein Block oder ein Gerät einem Verfahrensschritt oder einem Merkmal eines Verfahrensschrittes entspricht. Analog stellen Aspekte, die im Zusammenhang mit einem Verfahrensschritt beschrieben werden, eine Beschreibung eines entsprechenden Blocks oder Gegenstands oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle der Verfahrensschritte können von (oder unter Verwendung) einer HardwareVorrichtung wie zum Beispiel einem Mikroprozessor, einem programmierbaren Computer oder einer elektronischen Schaltung ausgeführt werden. In einigen Ausführungsformen können einzelne oder mehrere der wichtigsten Verfahrensschritte durch solch eine Vorrichtung ausgeführt werden.
  • Abhängig von gewissen Implementierungsanforderungen können Ausführungsformen der Erfindung als Hardware oder als Software bzw. wenigstens teilweise als Hardware und teilweise als Software implementiert werden. Die Implementierung kann unter Verwendung eines digitalen Speichermediums durchgeführt werden, zum Beispiel einer Diskette, einer DVD, einer Blu-Ray-Disk, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem dergestalt zusammenarbeiten (oder in der Lage sind, damit zusammenzuarbeiten), dass das entsprechende Verfahren durchgeführt wird. Deswegen kann das digitale Speichermedium computerlesbar sein. Einige erfindungsgemäße Ausführungsformen umfassen einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem dergestalt zusammenzuarbeiten, dass eines der hier beschriebenen Verfahren durchgeführt wird. Im Allgemeinen können Ausführungsformen der vorliegenden Erfindung als ein Computerprogrammprodukt mit einem Programmcode implementiert werden, wobei der Programmcode dazu dient, um eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer läuft. Der Programmcode kann zum Beispiel auf einem maschinenlesbaren Träger gespeichert sein. Andere Ausführungsformen umfassen das Computerprogramm zum Durchführen eines der hier beschriebenen Verfahren, das auf einem maschinenlesbaren Träger gespeichert ist. Anders ausgedrückt, besteht eine Ausführungsform des erfindungsgemäßen Verfahrens deswegen aus einem Computerprogramm mit einem Programmcode zum Durchführen eines der hier beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer läuft. Eine weitere Ausführungsform der erfindungsgemäßen Verfahren besteht deswegen aus einem Datenträger (oder einem digitalen Speichermedium oder einem computerlesbaren Medium), der das darauf aufgezeichnete Computerprogramm zum Durchführen eines der hier beschriebenen Verfahren umfasst. Der Datenträger, das digitale Speichermedium oder das aufgezeichnete Medium sind typischerweise physisch und/oder permanent. Eine weitere Ausführungsform des erfindungsgemäßen Verfahrens besteht deswegen aus einem Datenstrom oder einer Signalsequenz, die das Computerprogramm zum Durchführen eines der hier beschriebenen Verfahren darstellt. Der Datenstrom oder die Signalsequenz kann zum Beispiel konfiguriert sein, um über eine Datenkommunikationsverbindung, zum Beispiel über das Internet, übertragen zu werden. Eine weitere Ausführungsform umfasst Verarbeitungsmittel, zum Beispiel einen Computer oder eine programmierbare Logikschaltung, welche/r konfiguriert oder eingerichtet ist, eines der hier beschriebenen Verfahren durchzuführen. Eine weitere Ausführungsform umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hier beschriebenen Verfahren installiert ist. Eine weitere erfindungsgemäße Ausführungsform umfasst eine Vorrichtung oder ein System, das dafür ausgelegt ist, ein Computerprogramm zum Durchführen eines der hier beschriebenen Verfahren (zum Beispiel elektronisch oder optisch) auf einen Empfänger zu übertragen. Der Empfänger kann beispielsweise aus einem Computer, einer mobilen Vorrichtung, einer Speichervorrichtung oder dergleichen bestehen. Die Vorrichtung oder das System kann zum Beispiel einen Dateiserver zum Transferieren des Computerprogramms auf den Empfänger umfassen. In einigen Ausführungsformen kann eine programmierbare Logikschaltung (zum Beispiel eine frei programmierbare Gatteranordnung) verwendet werden, um einige oder alle der Funktionen der hier beschriebenen Verfahren durchzuführen. In einigen Ausführungsformen kann eine frei programmierbare Gatteranordnung mit einem Mikroprozessor zusammenarbeiten, um eines der hier beschriebenen Verfahren durchzuführen. Im Allgemeinen werden die Verfahren vorzugsweise von irgendeiner HardwareVorrichtung durchgeführt. Die hier beschriebene Vorrichtung kann mittels einer Hardwarevorrichtung oder mittels eines Computers oder mittels einer Kombination aus einer Hardwarevorrichtung und einem Computer implementiert werden. Die hier beschriebenen Verfahren können mittels einer Hardwarevorrichtung oder mittels eines Computers oder mittels einer Kombination aus einer Hardwarevorrichtung und einem Computer ausgeführt werden.

Claims (15)

  1. Speicherschutzeinheit (1), wobei die Speicherschutzeinheit (1) dafür ausgelegt ist, Zugriffsanforderungen (100) auszuwerten, die sich auf einen Speicheradressraum (11) beziehen, wobei die Zugriffsanforderungen (100) Adressparameter umfassen, die sich auf die Adressen des Speicheradressraums (11) beziehen, wobei die Speicherschutzeinheit (1) einen Adressevaluierer (2), einen Adressergebniskombinierer (3) und ein Datenregister (7) umfasst, wobei der Adressevaluierer (2) dafür ausgelegt ist auszuwerten, ob sich die Adressparameter auf Adressbereiche eines Adressbereichesatzes beziehen, und dafür ausgelegt ist, Ergebnisse bezüglich der Adressbereiche auszugeben, wobei der Adressergebniskombinierer (3) dafür ausgelegt ist, vom Adressevaluierer (2) gelieferte Ergebnisse zu kombinieren, abhängig von Zugriffsschutzgruppen, denen die Adressbereiche zugeordnet sind, wobei die Speicherschutzeinheit (1) dafür ausgelegt ist, Zugriffsgewährungsergebnisse (101) basierend auf vom Adressergebniskombinierer (3) gelieferten Kombinationen bereitzustellen, und wobei das Datenregister (7) dafür ausgelegt ist, Daten zu speichern, die den Adressbereichesatz betreffen und die eine Zuordnung der Adressbereiche zu den Zugriffsschutzgruppen betreffen.
  2. Speicherschutzeinheit (1) nach Anspruch 1, wobei die Zugriffsanforderungen (100) Interaktionsparameter umfassen, wobei sich die Interaktionsparameter auf Arten von Interaktionen mit den Adressen des Speicheradressraumes (11), auf die sich die Adressparameter beziehen, beziehen und wobei der Adressevaluierer (2) dafür ausgelegt ist auszuwerten, ob sich die Interaktionsparameter auf Interaktionen beziehen, die mit aktiven Adressbereichen verknüpft sind, und dafür ausgelegt ist, Ergebnisse bezüglich der Adressbereiche und bezüglich der Interaktion auszugeben, wobei aktive Adressbereiche Adressbereiche sind, auf die sich die Adressparameter beziehen.
  3. Speicherschutzeinheit (1) nach Anspruch 1 oder 2, wobei der Adressergebniskombinierer (3) dafür ausgelegt ist, vom Adressevaluierer (2) gelieferte Ergebnisse, die sich auf Adressbereiche beziehen, die derselben Zugriffsschutzgruppe zugeordnet sind, mit einer ODER-Verknüpfung zu kombinieren.
  4. Speicherschutzeinheit (1) nach Anspruch 1 oder 2, wobei der Adressergebniskombinierer (3) dafür ausgelegt ist, vom Adressevaluierer (2) gelieferte Ergebnisse, die sich auf aktive Adressbereiche beziehen, die derselben Zugriffsschutzgruppe zugeordnet sind, mit einer ODER-Verknüpfung zu kombinieren, wobei aktive Adressbereiche Adressbereiche sind, auf die sich die Adressparameter beziehen.
  5. Speicherschutzeinheit (1) nach einem der Ansprüche 1 bis 4, wobei der Adressergebniskombinierer (3) dafür ausgelegt ist, vom Adressevaluierer (2) gelieferte Ergebnisse und/oder Ergebnisse der ODER-Verknüpfungen von Ergebnissen, die vom Adressevaluierer (2) geliefert werden, die sich auf aktive Adressbereiche beziehen, die verschiedenen Zugriffsschutzgruppen zugeordnet sind, mit einer UND-Verknüpfung zu kombinieren, wobei aktive Adressbereiche Adressbereiche sind, auf die sich die Adressparameter beziehen.
  6. Speicherschutzeinheit (1) nach einem der Ansprüche 1 bis 5, wobei der Adressergebniskombinierer (3) dafür ausgelegt ist, vom Adressevaluierer (2) gelieferte Ergebnisse und/oder Ergebnisse der ODER-Verknüpfungen von Ergebnissen, die vom Adressevaluierer (2) geliefert werden, die sich auf aktive Adressbereiche beziehen, die verschiedenen eingeschalteten Zugriffsschutzgruppen zugeordnet sind, mit einer UND-Verknüpfung zu kombinieren, wobei aktive Adressbereiche Adressbereiche sind, auf die sich die Adressparameter beziehen, und wobei das Datenregister (7) Daten umfasst, die eingeschaltete Zugriffsschutzgruppen betreffen.
  7. Speicherschutzeinheit (1) nach einem der Ansprüche 1 bis 6, wobei das Datenregister (7) derart konfiguriert ist, dass das Definieren von Daten betreffend wenigstens einen Adressbereich nur für eine Berechtigungsstufe aktiviert ist, die mit einer Zugriffsschutzgruppe verknüpft ist, der wenigstens ein Adressbereich zugeordnet ist.
  8. Speicherschutzeinheit (1) nach einem der Ansprüche 1 bis 6, wobei das Datenregister (7) derart konfiguriert ist, dass das Definieren von Daten betreffend wenigstens einen Adressbereich nur für eine Berechtigungsstufe, die mit einer Zugriffsschutzgruppe verknüpft ist, der wenigstens ein Adressbereich zugeordnet ist, oder für eine höhere Berechtigungsstufe aktiviert ist.
  9. Speicherschutzeinheit (1) nach einem der Ansprüche 1 bis 8, wobei die Speicherschutzeinheit (1) dafür ausgelegt ist, im Fall eines negativen Zugriffsgewährungsergebnisses (101) eine Berechtigungsstufe aufzurufen, die mit einer Zugriffsschutzgruppe, für die eine Verletzung der Zugriffsanforderung (100) erkannt wurde, verknüpft ist.
  10. Speicherschutzeinheit (1) nach einem der Ansprüche 1 bis 8, wobei die Speicherschutzeinheit (1) dafür ausgelegt ist, im Fall eines negativen Zugriffsgewährungsergebnisses (101) eine höchste verfügbare Berechtigungsstufe aufzurufen.
  11. Verfahren zum Schützen eines Speicheradressraumes (11), umfassend einen Adressbereichesatz des Speicheradressraumes (11) Zugriffsschutzgruppen zuzuordnen, und eine Zugriffsanforderung (100), die sich auf den Speicheradressraum (11) bezieht, auszuwerten, wobei das Auswerten der Zugriffsanforderung (100) umfasst: Auswerten, ob sich in der Zugriffsanforderung (100) enthaltene Adressparameter auf Adressbereiche des Adressbereichesatzes beziehen, Kombinieren der Ergebnisse bezüglich der Adressbereiche basierend auf der Zuordnung, und Liefern eines Zugriffsgewährungsergebnisses (101) basierend auf Kombinationen von Ergebnissen bezüglich der Adressbereiche.
  12. Verfahren nach Anspruch 11, wobei das Auswerten, ob sich in der Zugriffsanforderung (100) enthaltene Adressparameter auf Adressbereiche des Adressbereichesatzes beziehen, ferner umfasst auszuwerten, ob sich in der Zugriffsanforderung (100) enthaltene Interaktionsparameter auf Interaktionen beziehen, die mit aktiven Adressbereichen verknüpft sind, bei denen es sich um Adressbereiche handelt, auf die sich die Adressparameter beziehen.
  13. Verfahren nach Anspruch 11 oder 12, wobei das Auswerten der Zugriffsanforderung (100) ferner umfasst: Kombinieren der Ergebnisse betreffend die Adressbereiche, die derselben Zugriffsschutzgruppe zugeordnet sind, mit einer ODER-Verknüpfung, und Kombinieren der Ergebnisse betreffend aktive Adressbereiche, die aktiven Zugriffsschutzgruppen zugeordnet sind, mit einer UND-Verknüpfung, wobei aktive Adressbereiche Adressbereiche sind, auf die sich die Adressparameter beziehen, und wobei aktive Zugriffsschutzgruppen solche Zugriffsschutzgruppen sind, denen aktive Adressbereiche zugeordnet sind.
  14. Verfahren nach einem der Ansprüche 11 bis 13, wobei das Zuordnen von Adressbereichen zu Zugriffsschutzgruppen und/oder das Zuordnen von Adressbereichen mit Interaktionen derart eingeschränkt ist/sind, dass Änderungen an einem Adressbereich entweder einer Berechtigungsstufe, die mit der Zugriffsschutzgruppe, der der Adressbereich zugeordnet ist, verknüpft ist, oder einer höheren Berechtigungsstufe erlaubt sind.
  15. Verfahren nach einem der Ansprüche 11 oder 14, wobei im Fall eines negative Zugriffsgewährungsergebnisses (100) eine Berechtigungsstufe aufgerufen wird, die einer Zugriffsschutzgruppe zugeordnet ist, für die eine Verletzung erkannt wurde, oder eine höchste verfügbare Berechtigungsstufe aufgerufen wird.
DE102016220639.7A 2016-10-20 2016-10-20 Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes Pending DE102016220639A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102016220639.7A DE102016220639A1 (de) 2016-10-20 2016-10-20 Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
US15/784,403 US10372630B2 (en) 2016-10-20 2017-10-16 Memory protecting unit and method for protecting a memory address space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016220639.7A DE102016220639A1 (de) 2016-10-20 2016-10-20 Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes

Publications (1)

Publication Number Publication Date
DE102016220639A1 true DE102016220639A1 (de) 2018-04-26

Family

ID=61866421

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016220639.7A Pending DE102016220639A1 (de) 2016-10-20 2016-10-20 Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes

Country Status (2)

Country Link
US (1) US10372630B2 (de)
DE (1) DE102016220639A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201700057287A1 (it) * 2017-05-26 2018-11-26 St Microelectronics Srl Procedimento per gestire schede a circuito integrato, scheda ed apparecchiatura corrispondenti
US10613989B2 (en) * 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
CN108197503B (zh) * 2017-12-15 2020-09-15 杭州中天微系统有限公司 一种为间接访问存储控制器增加保护功能的装置
JP6963534B2 (ja) * 2018-05-25 2021-11-10 ルネサスエレクトロニクス株式会社 メモリ保護回路及びメモリ保護方法
JP7056391B2 (ja) * 2018-06-08 2022-04-19 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP6990150B2 (ja) * 2018-06-18 2022-01-12 ルネサスエレクトロニクス株式会社 データ処理装置及びメモリ保護方法
US20240020364A1 (en) * 2022-07-14 2024-01-18 Dell Products L.P. Secured communication protocol layer for authenticated hardware data access

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080276051A1 (en) * 2007-05-04 2008-11-06 Atmel Corporation Configurable Memory Protection
US20110067114A1 (en) * 2002-11-05 2011-03-17 Sonics Inc Methods and apparatus for a configurable protection architecture for on-chip systems
US20120216002A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
WO2014125324A1 (en) * 2013-02-12 2014-08-21 Freescale Semiconductor, Inc. A method of and circuitry for controlling access by a master to a peripheral, a method of configuring such circuitry, and associated computer program products
US9619405B2 (en) * 2014-11-24 2017-04-11 Nxp Usa, Inc. Device having memory access protection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110067114A1 (en) * 2002-11-05 2011-03-17 Sonics Inc Methods and apparatus for a configurable protection architecture for on-chip systems
US20080276051A1 (en) * 2007-05-04 2008-11-06 Atmel Corporation Configurable Memory Protection
US20120216002A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BÄHRING, H.: Mikrorechnertechnik – Band 1: Mikroprozessoren und Digitale Signalprozessoren. 3. Auflage. Berlin/Heidelberg: Springer-Verlag. 2002. Seiten 328 bis 333 *
Segmentation fault. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 14.09.2016. URL: https://en.wikipedia.org/w/index.php?title=Segmentation_fault&oldid=739386672 [abgerufen am 07.06.2017] *

Also Published As

Publication number Publication date
US10372630B2 (en) 2019-08-06
US20180113816A1 (en) 2018-04-26

Similar Documents

Publication Publication Date Title
DE102016220639A1 (de) Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
CN101162492B (zh) 保护数据处理设备中的系统控制寄存器
DE3889816T2 (de) Virtuelle Ein/Ausgabebefehle.
DE3689961T2 (de) Verfahren zur Verarbeitung von Unterbrechungen in einem digitalen Rechnersystem.
DE19635204A1 (de) Ausnahme-Sicherheitsschaltung
CN104866762B (zh) 安全管理程序功能
EP2807558A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
DE112016004330T5 (de) Prozessoren, Verfahren, Systeme und Befehle zum Zulassen sicherer Kommunikationen zwischen einem geschützten Containerspeicher und Eingabe-/Ausgabegeräten
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
DE112013006590T5 (de) Handhabung von Speicherzugriffsvorgängen in einer Datenverarbeitungsvorrichtung
DE102019108266A1 (de) Techniken zum bereitstellen von isolation auf funktionsebene mit auf fähigkeit basierender sicherheit
DE102014003540A1 (de) Erzeugen einer isolierten ausführungsumgebung in einem co-designten prozessor
DE112010005269T5 (de) Beschränken von Speicherbereichen für ein Behelfsauslesen in Abhängigkeit von einer Hardwarebetriebsart und einem Sicherheitsflag
US7779254B1 (en) Mechanism to enhance and enforce multiple independent levels of security in a microprocessor memory and I/O bus controller
DE102012200613A1 (de) System und Verfahren zur Unterstützung von JIT in einem sicheren System und zufällig zugewiesenen Speicherbereichen
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE10196440T5 (de) Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung
DE112017003659T5 (de) Kontextbasiertes schutzsystem
DE102015210539A1 (de) Speicherschutzeinheit, Speicherverwaltungseinheit und Mikrocontroller
DE3853104T2 (de) Vorrichtung und Verfahren für den Hauptspeicherschutz mit Verwendung von Zugriffs- und logischen Fehlersignalen.
EP0966711B1 (de) Mikrocomputer mit einer speicherverwaltungseinheit
DE102018115504A1 (de) Techniken zum Bereitstellen von Schutz vor Zugriff auf gemeinsam verwendeten virtuellen Speicher
DE102022206744B3 (de) Ressourcenschutz
DE112005002314T5 (de) Mechanismus zum Erzeugen eingeschränkter und uneingeschränkter Ausführungsumgebungen
WO2018065213A1 (de) Verfahren und vorrichtung zum schützen eines arbeitsspeichers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication