DE112010005269T5 - Beschränken von Speicherbereichen für ein Behelfsauslesen in Abhängigkeit von einer Hardwarebetriebsart und einem Sicherheitsflag - Google Patents

Beschränken von Speicherbereichen für ein Behelfsauslesen in Abhängigkeit von einer Hardwarebetriebsart und einem Sicherheitsflag Download PDF

Info

Publication number
DE112010005269T5
DE112010005269T5 DE112010005269T DE112010005269T DE112010005269T5 DE 112010005269 T5 DE112010005269 T5 DE 112010005269T5 DE 112010005269 T DE112010005269 T DE 112010005269T DE 112010005269 T DE112010005269 T DE 112010005269T DE 112010005269 T5 DE112010005269 T5 DE 112010005269T5
Authority
DE
Germany
Prior art keywords
memory
processor
mode
control circuit
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112010005269T
Other languages
English (en)
Inventor
Richard Roy Grisenthwaite
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of DE112010005269T5 publication Critical patent/DE112010005269T5/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/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Datenverarbeitungsvorrichtung (2) umfassend einen Prozessor (8), einen Speicher (6) und einen Speichersteuerschaltkreis (12). Der Prozessor (8) arbeitet in einer Mehrzahl von Hardwarebetriebsarten einschließlich einer privilegierten Betriebsart und einer Benutzerbetriebsart. Wenn in der privilegierten Betriebsart betrieben, ist der Prozessor (8) durch den Speichersteuerschaltkreis (12) daran gehindert, Befehle aus Speicheradressbereichen (34, 38, 42) innerhalb des Speichers (6) abzurufen, die innerhalb der Benutzerbetriebsart beschreibbar sind, wenn ein Sicherheitsflag innerhalb eines Registers 46 so eingestellt ist, dass es anzeigt, dass dieser Hinderungsmechanismus aktiv ist.

Description

  • Diese Erfindung betrifft das Gebiet von Datenverarbeitungssystemen. Insbesondere betrifft diese Erfindung Datenverarbeitungssysteme mit einer Mehrzahl von Hardwarebetriebsarten und die Steuerung eines Speicherzugriffs in Abhängigkeit von einer derzeitigen Hardwarebetriebsart.
  • Es ist bekannt, Datenverarbeitungssysteme bereitzustellen, in denen der Prozessor eine Mehrzahl von Hardwarebetriebsarten hat. Zum Beispiel kann der Prozessor in Hardwarebetriebsarten einschließlich einer bevorzugten Betriebsart und einer Benutzerbetriebsart arbeiten. Es kann auch weitere Hardwarebetriebsarten für weitere Zwecke geben. Die bevorzugte Betriebsart wird normalerweise für einen vertrauenswürdigeren Programmcode verwendet, wie zum Beispiel einen Betriebssystemkernel, und wird Zugriff auf mehr Speicherbereiche haben als wenn der Prozessor in der Benutzerbetriebsart arbeitet. Die Benutzerbetriebsart wird typischerweise für weniger vertrauenswürdige Programme verwendet, wie zum Beispiel Anwendungsprogramme. Auf diese Weise kann ein bösartiger oder unbeabsichtigter Zugriff von einem Programm auf vorbestimmte Speicherbereiche verhindert werden durch Verwenden einer Speicherverwaltungseinheit oder einer Speicherschutzeinheit, die auf die derzeitige Betriebsart des Prozessors reagiert und die einen Zugriff auf vorbestimmte Speicherbereiche verhindert, wenn der Prozessor nicht in der privilegierten Betriebsart ist. Das Modell innerhalb solcher Systeme ist, dass die privilegierte Betriebsart Zugriff auf mehr der Systemressourcen, zum Beispiel Bereiche innerhalb des Speichers, hat, als die Benutzerbetriebsart.
  • Ein Typ eines bösartigen Sicherheitsangriffs oder einer unglücklichen fehlerhaften Bedienung, die auftreten kann, ist, dass das System unangemessen veranlasst wird, Programmbefehle auszuführen, die in Speicherbereichen gespeichert sind, die in der Benutzerbetriebsart schreibbar sind, während sie in der bevorzugten Betriebsart ausgeführt werden. Auf diese Weise kann beispielsweise eine Person bösartige Programmbefehle in Speicherbereiche schreiben, auf die in der Benutzerbetriebsart zugegriffen werden kann und dann den Prozessor in die privilegierte Betriebsart schalten, in der ein Zugriff auf sichere Bereiche des Speichers ausgeführt werden kann, während die aus dem in der Benutzerbetriebsart verfügbaren Speicherbereich ausgelesenen bösartigen Programmbefehle ausgeführt werden.
  • Unter einem Aspekt betrachtet stellt die vorliegende Erfindung eine Vorrichtung zur Datenverarbeitung bereit mit:
    einem Prozessor, der auf einen Strom von Programmbefehlen so reagiert, dass er Verarbeitungsoperationen ausführt, und
    einem Speichersteuerschaltkreis, der mit dem Prozessor und einem Speicher verbunden ist und der so eingerichtet ist, dass er einen Zugriff auf den Speicher durch den Prozessor steuert, wobei
    der Prozessor eine Mehrzahl von Hardwarebetriebsarten aufweist einschließlich mindestens einer ersten Betriebsart und einer zweiten Betriebsart,
    der Speichersteuerschaltkreis einen Zugriff auf den Speicher steuert, sodass:
    • (i) wenn der Prozessor in der ersten Betriebsart ist, der Speichersteuerschaltkreis einen Schreibzugriff auf einen ersten Abschnitt des Speichers erlaubt und mindestens einen Schreibzugriff auf einen zweiten Abschnitt des Speichers nicht erlaubt, und
    • (ii) wenn der Prozessor in der zweiten Betriebsart ist, der Speichersteuerschaltkreis einen Schreibzugriff auf den ersten Abschnitt des Speichers erlaubt und einen Schreibzugriff auf einen zweiten Abschnitt des Speichers erlaubt, und
    der Speichersteuerschaltkreis auf ein Sicherheitsflag mit einem eingestellten Wert so reagiert, dass er verhindert, dass der Prozessor aus dem ersten Abschnitt des Speichers Programmbefehle zum Ausführen durch den Prozessor in der zweiten Betriebsart ausliest.
  • Die vorliegende Technik erkennt, dass es in der Praxis wenig Anlass gibt für ein System, Programmbefehle legitim in der privilegierten Betriebsart auszuführen, wenn diese Programmbefehle aus einem Bereich des Speichers ausgelesen werden, der in der Benutzerbetriebsart beschrieben werden kann. Auszuführender Code in der privilegierten Betriebsart wird normalerweise innerhalb eines Speichers gespeichert, der nur in der privilegierten Betriebsart beschreibbar ist. Dies schützt die in der privilegierten Betriebsart auszuführenden Programmbefehle vor unpassender unbeabsichtigter Änderung sowie vor bösartiger Änderung. Entsprechend bewegt sich die vorliegende Technik gegen das allgemeine technische Vorurteil auf diesem Gebiet des Vergebens von mehr Zugriffsrechten an die privilegierte Betriebsart als an die Benutzerbetriebsart durch Verwenden des Speichersteuerschaltkreises, um zu verhindern, dass der Prozessor Programmbefehle zum Ausführen in der privilegierten Betriebsart aus Bereichen des Speichers ausliest, die in der Benutzerbetriebsart beschrieben werden können. Diese Tätigkeit des Speichersteuerschaltkreises kann global durch das Sicherheitsflag an- und ausgeschaltet werden, sodass die Hardware in der Lage ist, Systeme zu unterstützen, in denen es der Erschaffer nicht wünscht, Programmbefehle in der privilegierten Betriebsart auszuführen, die innerhalb von Bereichen des Speichers gespeichert sind, die in der Benuterbetriebsart beschreibbar sind, während eine einfache Weise bereitgestellt wird, diese Fähigkeit mit einem Sicherheitsflag, das einen Hardwaredurchsetzungsmechanismus, der von dem Speichersteuerschaltkreis bereitgestellt wird, steuert, auszuschalten. Es ist offensichtlich, dass zuvor die Hardwarebetriebsarten als eine privilegierte Betriebsart und eine Benutzerbetriebsart bezeichnet wurden, aber dass die vorliegende Technik nicht auf eine Verwendung in Systemen beschränkt ist, die solche Betriebsarten aufweisen, und allgemeiner verwendet werden könnte in Systemen mit einer ersten Betriebsart und einer zweiten Betriebsart, wobei die zweite Betriebsart Zugriff auf mehr Bereiche des Speichers hat als die erste Betriebsart und dennoch selektiv am Ausführen von Programmbefehlen gehindert wird, die aus Bereichen des Speichers ausgelesen wurden, die in der ersten Betriebsart beschrieben werden können.
  • Der Speichersteuerschaltkreis kann auf Steuerdaten so reagieren, dass er einen oder mehrere Speicheradressbereiche innerhalb des Speichers als einen Teil des ersten Abschnittes und eine oder mehrere Speicheradressbereiche innerhalb des Speichers als einen Teil des zweiten Abschnittes identifiziert. Daher müssen der erste Abschnitt und der zweite Abschnitt in dem Speicher nicht zusammenhängend sein und können durch die Steuerdaten definiert werden, die von dem Speicherschaltkreis ausgelesen werden. In einigen Ausführungsformen können dies Speicherseitentabellendaten sein, so wie sie von einer Speicherverwaltungseinheit gelesen werden.
  • Die vorliegende Technik ist insbesondere nützlich in Systemen, in denen die erste Betriebsart eine Benutzerbetriebsart zum Ausführen von Anwendungsprogrammen ist und die zweite Betriebsart eine privilegierte Betriebsart zum Ausführen mindestens eines Betriebssystemkernelprogramms ist.
  • Wenn das Sicherheitsflag einen eingestellten Wert aufweist, kann es dem in der zweiten Betriebsart arbeitenden Prozessor von dem Speichersteuerschaltkreis erlaubt werden, Datenwerte aus dem ersten Abschnitt des Speichers auszulesen, da solche Datenwerte nicht als auszuführende Befehle abgerufen werden, sondern als zu bearbeitende Datenwerte in den Datenpfad abgerufen werden.
  • Es ist offensichtlich, dass der Speichersteuerschaltkreis eine Vielzahl von verschiedenen Formen annehmen kann. Einige Beispiele des Speichersteuerschaltkreises sind eine Speicherverwaltungseinheit und eine Speicherschutzeinheit.
  • Das Sicherheitsflag kann bequem unter Programmbefehlssteuerung geschrieben werden, wenn der Prozessor in der zweiten Betriebsart ist, und das Sicherheitsflag kann nicht unter Programmbefehlssteuerung beschrieben werden, wenn der Prozessor in der ersten Betriebsart ist. Auf diese Weise kann die von dem Sicherheitsflag bereitgestellte Sicherheit nicht umgangen werden durch Ändern des Werts des Sicherheitsflags, wenn in der ersten Betriebsart gearbeitet wird.
  • Unter einem weiteren Aspekt betrachtet stellt die vorliegende Erfindung eine Vorrichtung zur Datenverarbeitung bereit mit:
    einem Prozessormittel zum Ausführen von Verarbeitungsoperationen als Reaktion auf einen Strom von Programmbefehlen und
    einem Speichersteuerschaltkreismittel, das mit dem Prozessormittel und einem Speichermittel zum Speichern von Daten verbunden ist, um einen Zugriff auf das Speichermittel durch das Prozessormittel zu steuern, wobei
    das Prozessormittel eine Mehrzahl von Hardwarebetriebsarten einschließlich mindestens einer ersten Betriebsart und einer zweiten Betriebsart aufweist,
    das Speichersteuermittel einen Zugriff auf das Speichermittel so steuert, dass:
    • (i) wenn das Prozessormittel in der ersten Betriebsart ist, das Speichersteuermittel einen Schreibzugriff auf einen ersten Abschnitt des Speichermittels erlaubt und mindestens einen Schreibzugriff auf einen zweiten Abschnitt des Speichermittels nicht erlaubt und
    • (ii) wenn das Prozessormittel in der zweiten Betriebsart ist, das Speichersteuermittel einen Schreibzugriff auf den ersten Abschnitt des Speichermittels erlaubt und einen Zugriff auf einen zweiten Abschnitt des Speichermittels erlaubt und
    das Speichersteuermittel auf ein Sicherheitsflag mit einem eingestellten Wert so reagiert, dass es verhindert, dass das Prozessormittel Programmbefehle zum Ausführen durch das Prozessormittel in der zweiten Betriebsart aus dem ersten Abschnitt des Speichermittels ausliest.
  • Unter einem weiteren Aspekt betrachtet stellt die vorliegende Erfindung ein Verfahren zum Verarbeiten von Daten bereit, wobei das Verfahren die Schritte aufweist:
    Ausführen von Verarbeitungsoperationen in einem Prozessor als Reaktion auf einen Strom von Programmbefehlen und
    Steuern eines Zugriffes auf einen Speicher durch den Prozessor, wobei ein mit dem Prozessor und dem Speicher verbundener Speichersteuerschaltkreis verwendet wird, wobei
    der Prozessor eine Mehrzahl von Hardwarebetriebsarten einschließlich mindestens einer ersten Betriebsart und einer zweiten Betriebsart aufweist,
    der Speichersteuerschaltkreis einen Zugriff auf den Speicher steuert, sodass:
    • (i) wenn der Prozessor in der ersten Betriebsart ist, der Speichersteuerschaltkreis einen Schreibzugriff auf einen ersten Abschnitt des Speichers erlaubt und mindestens einen Schreibzugriff auf einen zweiten Abschnitt des Speichers nicht erlaubt und
    • (ii) wenn der Prozessor in der zweiten Betriebsart ist, der Speichersteuerschaltkreis einen Schreibzugriff auf den ersten Abschnitt des Speichers erlaubt und einen Schreibzugriff auf einen zweiten Abschnitt des Speichers erlaubt und
    der Speichersteuerschaltkreis auf ein Sicherheitsflag mit einem eingestellten Wert so reagiert, dass er verhindert, dass der Prozessor Programmbefehle zum Ausführen durch den Prozessor in der zweiten Betriebsart aus dem ersten Abschnitt des Speichers ausliest.
  • Die Erfindung kann auch in der Form einer virtuellen Maschine mit den oben genannten Merkmalen implementiert werden.
  • Ausführungsformen der Erfindung werden nun lediglich in Form eines Beispiels beschrieben unter Bezugnahme auf die beigefügten Zeichnungen, in denen:
  • 1 schematisch ein Datenverarbeitungssystem einschließlich einem Prozessor und einem Speicher darstellt,
  • 2 ein Flussdiagramm ist, das schematisch die Steuerung einer Speicherausleseoperation darstellt in Abhängigkeit von: der Hardwarebetriebsart des Prozessors; ob das Auslesen ein Befehlsabruf ist; und ob das Auslesen aus einem Speicherort erfolgt, auf den in einer Benutzerbetriebsart zugegriffen werden kann,
  • 3 mehrere Hardwarebetriebsarten für einen Betrieb und ihre zugeordneten Zugriffsrechte und typischen Verwendungen veranschaulicht und
  • 4 schematisch eine virtuelle Maschinenimplementierung veranschaulicht.
  • 1 stellt schematisch ein Datenverarbeitungssystem 2 mit einem integrierten Schaltkreis 4, der mit einem Speicher 6 verbunden ist, dar. Der integrierte Schaltkreis 4 umfasst einen Prozessor 8, einen Speicherschnittstellenschaltkreis 10 und eine Speicherverwaltungseinheit 12. Innerhalb des Prozessors 8 sind eine Mehrzweckregisterbank 14, ein Multiplizierer 16, ein Verschieber 18 und ein Addierer 20 vorgesehen, die einen Datenpfad zum Anwenden von Verarbeitungsoperationen auf aus dem Speicher 6 unter Steuerung von Programmbefehlen I abgerufenen Datenwerten D bilden. Die aus dem Speicher 6 von einer Befehlsabrufeinheit 22 abgerufenen Programmbefehle I werden an eine Befehlspipeline 24 bereitgestellt. Die Befehlspipeline 24 steuert einen Befehlsdecoder 26, sodass Steuersignale für den Datenpfad 14, 16, 18, 20 erzeugt werden, um den Datenpfad 14, 16, 18, 20 so zu konfigurieren und zu steuern, dass die gewünschten von den decodierten Programmbefehlen spezifizierten Verarbeitungsoperationen oder die Operation ausgeführt werden. Es ist für den Fachmann offensichtlich, dass der Prozessor 8 typischerweise viele andere Schaltkreiselemente aufweisen wird, die in 1 aus Gründen der Klarheit weggelassen wurden.
  • Auch innerhalb des integrierten Schaltkreises 4 enthalten sind der Speicherschnittstellenschaltkreis 10 und die Speicherverwaltungseinheit 12. Der Speicherschnittstellenschaltkreis 10 ist verantwortlich zum Erzeugen der Speicherzugriffssignale (die Auslese- oder Schreibbefehle sein können), die von dem integrierten Schaltkreis 4 an den Speicher 6 gesendet werden. Diese Speicherzugriffssignale verwenden physikalische Adressen innerhalb des Speichers 6. Der Prozessor 8 arbeitet, wobei er virtuelle Adressen verwendet, obwohl diese Anordnung nur ein Beispiel eines Systems ist, in dem die vorliegende Technik verwendet werden kann. Die Speicherverwaltungseinheit 12 übersetzt die virtuellen Adressen in physikalische Adressen, wobei Seitentabellendaten 30 verwendet werden. Diese Seitentabellendaten sind Steuerdaten für die Speicherverwaltungseinheit 12. Die Seitentabellendaten von Speicherbereichen, auf die zuletzt zugegriffen wurde, sind innerhalb eines Übersetzungsseitenpuffers 28 innerhalb der Speicherverwaltungseinheit 12 gespeichert. Wenn die Seitentabellendaten für einen bestimmten Speicherzugriff nicht innerhalb des Übersetzungsseitenpuffers 28 vorhanden sind, dann werden die passenden Seitentabellendaten aus dem vollständigen Speicher der Seitentabellendaten 30 innerhalb des Speichers 6 ausgelesen.
  • Der Speicher 6 stellt einen Speicheradressenraum bereit, der adressiert wird, wobei die von dem Speicherschnittstellenschaltkreis 10 erzeugten physikalischen Adressen verwendet werden. Der Speicher 6 kann keinen Speicher bereitstellen, der dem gesamten möglichen Speicheradressraum entspricht. Der Speicheradressraum ist in Speicheradressbereiche 32, 34, 36, 38, 40, 42, etc. unterteilt. Jeder dieser Speicheradressbereiche 32 bis 42 hat zugeordnete Seitentabellendaten, die von der Speicherverwaltungseinheit 12 verwendet werden, um einen Zugriff auf diese Speicherbereiche zu steuern. So wie es von einem Fachmann auf diesem technischen Gebiet verstanden wird, können diese Seitentabellendaten Daten umfassen, die anzeigen, ob auf den betreffenden Speicheradressbereich zugegriffen werden kann oder nicht (entweder Nur-Lesen oder Lesen/Schreiben), wenn der Prozessor 8 in der privilegierten Betriebsart arbeitet oder entweder in der privilegierten Betriebsart oder der Benutzerbetriebsart arbeitet. Dieser Abschnitt der Seitentabellendaten ist durch die P/U-Flagdaten 44 dargestellt, die als ein Teil des Übersetzungsseitenpuffers 28 gezeigt sind. Die Seitentabellendaten umfassen auch R/W-Flagdaten 43, die anzeigen, ob der erlaubte Zugriff ein Nur-Lesen oder ein Lesen/Schreiben ist. Die in 1 gezeigte Tabelle gibt ein Beispiel verschiedener Werte der P/U-Flagdaten 44 und der R/W-Flagdaten 43, die auf verschiedene Zugriffsrechte verweisen. Die Speicheradressbereiche 32, 34, 36, 40 bilden zusammen einen zweiten Abschnitt des Speichers 6, der nicht beschreibbar ist, wenn der Prozessor 8 in der Benutzerbetriebsart ist. Auf die Speicheradressbereiche 32, 36 und 40 kann nur in der privilegierten Betriebsart zugegriffen werden. Auf den Speicheradressbereich 34 kann in der Benutzerbetriebsart nur lesend zugegriffen werden, aber er kann in der Benutzerbetriebsart nicht beschrieben werden. Die Speicheradressbereiche 38 und 42 bilden einen ersten Abschnitt des Speichers 6, der beschrieben und ausgelesen werden kann, wenn der Prozessor in der Benutzerbetriebsart ist und der beschrieben werden kann, wenn der Prozessor 8 in der privilegierten Betriebsart ist, aus ihm können Datenwerte ausgelesen werden, wenn der Prozessor 8 in der privilegierten Betriebsart ist, aber aus ihm können keine Befehlswerte ausgelesen werden, wenn der Prozessor 8 in der privilegierten Betriebsart ist.
  • Dieses Verhalten wird in dieser beispielhaften Ausführungsform von der Speicherverwaltungseinheit 12 durchgesetzt. Die Speicherverwaltungseinheit 12 empfängt ein Eingangssignal P/U von dem Prozessor 8, das anzeigt, ob der Prozessor 8 derzeit in der privilegierten Betriebsart oder der Benutzerbetriebsart ist. Die Speicherverwaltungseinheit 12 empfängt auch ein Eingangssignal I/D von dem Speicherschnittstellenschaltkreis 10, das anzeigt, ob ein ausgeführter Speicherzugriff einen Befehlsabruf oder eine Datenzugriffsoperation betrifft. Diese Eingangssignale und einen Wert eines in einem Register 46 innerhalb der Speicherverwaltungseinheit 12 gespeicherten Sicherheitsflag verwendend kann das Verhindern eines Ausführens von in der privilegierten Betriebsart aus dem ersten Abschnitt 38 und 42 des Speichers 6 ausgelesenen Programmbefehlen durchgesetzt werden.
  • 2 ist ein Flussdiagramm, das schematisch einen Teil des Betriebs der Speicherverwaltungseinheit 12 darstellt. Es ist offensichtlich, dass die Speicherverwaltungseinheit 12 auch in der Form einer Speicherschutzeinheit vorgesehen sein könnte. Bei Schritt 48 wartet die Verarbeitung bis eine Speicherausleseanfrageoperation von dem Prozessor 8 an dem Speicherschnittstellenschaltkreis 10 empfangen wird. Schritt 50 bestimmt dann, ob der Prozessor 8 derzeit in der privilegierten Betriebsart ist, wobei das P/U-Eingangssignal an die Speicherverwaltungseinheit 12 verwendet wird. Wenn der Prozessor 8 nicht in der privilegierten Betriebsart ist, dann wird der Prozessor 8 in diesem einfachen Beispiel in der Benutzerbetriebsart sein und die Verarbeitung schreitet zu Schritt 52 fort. Schritt 52 bestimmt, ob die Speicheradresse, auf welche ein Auslesezugriff versucht wird, in den Seitentabellendaten 30 als nur in der privilegierten Betriebsart verfügbar markiert ist. Wenn die Speicheradresse nicht als nur-privilegiert markiert ist, dann schreitet die Verarbeitung zu Schritt 54 fort, bei dem der Lesezugriff erlaubt wird. Wenn jedoch die Speicheradresse als eine nur-privilegierte Adresse markiert ist, dann verhindert Schritt 56 den Zugriff.
  • Wenn die Bestimmung in Schritt 50 ist, dass der Prozessor 8 derzeit in der privilegierten Betriebsart ist, dann schreitet die Verarbeitung zu Schritt 58 voran. Schritt 58 bestimmt, ob das in Register 46 gespeicherte Sicherheitsflag derzeit eingestellt ist oder nicht. Wenn das Sicherheitsflag eingestellt ist (einen Wert eingestellt hat), dann wird die Durchsetzung der Politik des Nichtzulassens, dass der Prozessor 8 aus dem ersten Abschnitt 38 und 42 des Speichers 6 ausgelesene Programmbefehle ausführt, durchgesetzt. Wenn die Bestimmung in Schritt 58 ist, dass das Sicherheitsflag nicht eingestellt ist, dann fährt die Verarbeitung mit Schritt 60 fort, wo der Zugriff erlaubt wird.
  • Wenn das Sicherheitsleck eingestellt ist, wie in Schritt 58 bestimmt, dann fährt die Verarbeitung mit Schritt 62 fort, wo eine Bestimmung ausgeführt wird, ob der ausgeführte Zugriff ein Befehlsauslesen oder ein Datenauslesen ist, oder nicht. Diese Bestimmung kann dann ausgeführt werden, wobei das I/D-Eingangssignal an die Speicherverwaltungseinheit 12 verwendet wird. Wenn der ausgeführte Speicherzugriff ein Datenzugriff ist, dann schreitet die Verarbeitung zu Schritt 60 fort, wo der Zugriff erneut erlaubt wird. Jedoch wenn das Sicherheitsflag wie in Schritt 58 bestimmt eingestellt ist und die Zugriffsoperation ein Befehlsabruf wie in Schritt 62 bestimmt ist, dann schreitet die Verarbeitung zu Schritt 64 voran, wo eine Bestimmung durchgeführt wird, ob die betroffene Speicheradresse ein Teil des ersten Abschnitts des Speichers 6 ist, d. h. in diesem Beispiel einer der Speicherbereiche 38 und 42 ist wie durch die Seitentabellendaten angedeutet, (d. h. die P/U-Flagdaten 44 und die R/W-Flagdaten 43) für die Adresse, auf die ein Lesezugriff versucht wird, oder nicht. Wenn die Speicheradresse nicht innerhalb des ersten Abschnitts ist, dann kann die Befehlsabrufoperation erlaubt werden und die Verarbeitung schreitet zu Schritten 60 fort. Jedoch wenn die Befehlsabrufoperation von dem ersten Abschnitt des Speichers 38 und 42 versucht wird, dann schreitet die Verarbeitung zu Schritt 66 fort, wo der betreffende Zugriff verhindert wird.
  • Wenn ein Speicherzugriff verhindert wird, wie zum Beispiel entweder in Schritten 56 oder 66, dann kann ein Speicherabbruch angestoßen werden, sodass ein Speicherabbruchausnahmebearbeitungsprogrammcode ausgeführt wird. Dieser Typ von Speicherabbruchverarbeitung wird dem Fachmann auf diesem technischen Gebiet geläufig sein.
  • 3 stellt schematisch mehrere Hardwarebetriebsarten des Prozessors 8 dar (oder Betriebsarten, die solche Hardwarebetriebsarten in einer virtuellen Maschinenimplementierung emulieren). In diesem Beispiel sind nur zwei Betriebsarten dargestellt, nämlich eine privilegierte Betriebsart und eine Benutzerbetriebsart. Es ist offensichtlich, dass die vorliegenden Techniken mit Prozessoren verwendet werden können, die eine größere Anzahl von Betriebsarten aufweisen. Die privilegierte Betriebsart erlaubt entweder einen Nur-Lesezugriff oder einen Lese-/Schreibzugriff auf als privilegiert markierte Speicheradressbereiche. Die privilegierte Betriebsart erlaubt auch entweder einen Nur-Lesezugriff oder Lese-/Schreibzugriff über den Datenpfad auf als Benutzerbetriesbart lese-/schreibzugreifbar markierte Speicheradressbereiche. Innerhalb der privilegierten Betriebsart wird, wenn das Sicherheitsflag innerhalb des Registers 46 eingestellt ist, dann eine Ausführung von Befehlen aus im Benutzermodus lese-/schreibzugreifbarem Speicher nicht erlaubt. Jedoch erlaubt es der Nur-Lese- oder Lese-/Schreibzugriff auf privilegierten oben bezeichneten Speicher aus einem privilegierten Speicher abgerufene Befehle auszuführen, wenn in der privilegierten Betriebsart befindlich.
  • Wenn in der Benutzerbetriebsart arbeitend, wird kein Nur-Lese- oder Lese-/Schreibzugriff auf als privilegierte Betriebsartspeicheradressbereiche markierte Speicheradressbereiche erlaubt. Jedoch ist ein Nur-Lese- oder Lese-/Schreibzugriff auf als Benutzerbetriebsartspeicheradressbereiche markierte Speicheradressbereiche erlaubt.
  • Es ist offensichtlich, dass verschiedene Typen von Programmen typischerweise in den unterschiedlichen Hardwarebetriebsarten ausgeführt werden. Vertrauenswürdigere Programme, wie zum Beispiel ein Betriebssystemkernelprogramm, werden typischerweise innerhalb der privilegierten Betriebsart arbeiten. Anwendungsprogramme werden typischerweise innerhalb der Benutzerbetriebsart arbeiten.
  • Das Sicherheitsflag innerhalb des Registers 46, das steuert, ob eine Ausführung von in dem Speicher, der in einer Benutzerbetriebsart beschreibbar ist, gespeicherten Programmbefehlen in der privilegierten Betriebsart erlaubt ist oder nicht, wird unter Programmbefehlsteuerung eingestellt. Das Register 46 kann als ein Coprozessorregister eingerichtet sein, das beschrieben werden kann, sodass der Sicherheitsflag eingestellt wird, wobei ein Coprozessorbefehl verwendet wird. Um die Sicherheit des Mechanismus, der bereitgestellt wird durch Verwenden des Sicherheitsflag, zu schützen, kann das Sicherheitsflag nur in der privilegierten Betriebsart beschrieben werden. Dies verhindert, dass ein bösartiges oder zumindest unautorisiertes Programm in der Benutzerbetriebsart das Sicherheitsflag zurücksetzt, wodurch eine Ausführung von in einem in der Benutzerbetriebsart beschreibbaren Speicher gespeicherten Programmbefehlen in der privilegierten Betriebsart erlaubt wird.
  • 4 stellt solch eine virtuelle Maschinenimplementierung dar, die verwendet werden kann. Während die zuvor beschriebenen Ausführungsformen die vorliegende Erfindung in Form von Vorrichtungen und Verfahren zum Betreiben spezifischer Verarbeitungshardware, welche die betreffenden Techniken unterstützt, implementieren, ist es auch möglich, sogenannte virtuelle Maschinenimplementierungen von Hardwarevorrichtungen bereitzustellen. Diese virtuellen Maschinenimplementierungen laufen auf einem Hostprozessor 530, auf dem ein Hostbetriebssystem 520 läuft, welches ein virtuelles Maschinenprogramm 510 unterstützt. Typischerweise werden große leistungsfähige Prozessoren benötigt, um virtuelle Maschinenimplementierungen bereitzustellen, welche mit einer annehmbaren Geschwindigkeit ausgeführt werden, aber solch ein Ansatz kann unter bestimmten Umständen gerechtfertigt sein, wie zum Beispiel wenn es eine Nachfrage danach gibt, aus Gründen der Kompatibilität oder Wiederverwendung Code ablaufen zu lassen, der für einen anderen Prozessor nativ ist. Das virtuelle Maschinenprogramm 510 stellt eine Anwendungsprogrammschnittstelle an ein Anwendungsprogramm 500 bereit, welche die gleiche ist wie die Anwendungsprogrammschnittstelle, die von der realen Hardware bereitgestellt würde, welche die von dem virtuellen Maschinenprogramm 510 modellierte Vorrichtung ist. Daher können die Programmbefehle einschließlich der oben beschriebenen Steuerung von Speicherzugriffen, innerhalb des Anwendungsprogramms 500 ausgeführt werden, wobei das virtuelle Maschinenprogramm 510 verwendet wird, um ihre Wechselwirkung mit der virtuellen Maschinenhardware zu modellieren.

Claims (15)

  1. Datenverarbeitungsvorrichtung mit: einem Prozessor, der auf einen Strom von Programmbefehlen so reagiert, dass er Verarbeitungsoperationen ausführt und einem Speichersteuerschaltkreis, der mit dem Prozessor und einem Speicher verbunden ist und der so eingerichtet ist, dass er einen Zugriff durch den Prozessor auf den Speicher steuert, wobei der Prozessor eine Mehrzahl von Hardwarebetriebsarten einschließlich mindestens einer ersten Betriebsart und einer zweiten Betriebsart aufweist, der Speichersteuerschaltkreis einen Zugriff auf den Speicher steuert, sodass: (i) wenn der Prozessor in der ersten Betriebsart ist, der Speichersteuerschaltkreis einen Schreibzugriff auf einen ersten Abschnitt des Speichers erlaubt und mindestens einen Schreibzugriff auf einen zweiten Abschnitt des Speichers nicht erlaubt und (ii) wenn der Prozessor in der zweiten Betriebsart ist, der Speichersteuerschaltkreis einen Schreibzugriff auf den ersten Abschnitt des Speichers erlaubt und einen Schreibzugriff auf einen zweiten Abschnitt des Speichers erlaubt und der Speichersteuerschaltkreis auf ein Sicherheitsflag mit einem eingestellten Wert so reagiert, dass verhindert wird, dass der Prozessor aus dem ersten Abschnitt des Speichers Programmbefehle zur Ausführung durch den Prozessor in der zweiten Betriebsart ausliest.
  2. Vorrichtung nach Anspruch 1, wobei der Prozessor Programmbefehle zum Ausführen aus dem zweiten Abschnitt des Speichers ausliest.
  3. Vorrichtung nach Anspruch 1 oder 2, wobei der Speichersteuerschaltkreis auf Steuerdaten so reagiert, dass er einen oder mehrere Speicheradressbereiche innerhalb des Speichers als Teil des ersten Abschnitts und einen oder mehrere Speicheradressbereiche innerhalb des Speichers als Teil des zweiten Abschnitts identifiziert.
  4. Vorrichtung nach einem der Ansprüche 1, 2 oder 3, wobei die erste Betriebsart eine Benutzerbetriebsart zum Ausführen von Anwendungsprogrammen ist und die zweite Betriebsart eine privilegierte Betriebsart zum Ausführen mindestens eines Betriebssystemkernelprogramms ist.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei wenn das Sicherheitsflag den eingestellten Wert hat und der Prozessor in der zweiten Betriebsart ist, es der Speichersteuerschaltkreis dem Prozessor erlaubt, Datenwerte aus dem ersten Abschnitt des Speichers auszulesen.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei der Speichersteuerschaltkreis eines der folgenden Elemente aufweist: eine Speicherverwaltungseinheit und eine Speicherschutzeinheit.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei das Sicherheitsflag unter der Programmbefehlsteuerung geschrieben wird, wenn der Prozessor in der zweiten Betriebsart ist, und das Sicherheitsflag nicht unter Programmbefehlsteuerung geschrieben werden kann, wenn der Prozessor in der ersten Betriebsart ist.
  8. Vorrichtung zur Datenverarbeitung mit: einem Prozessormittel zum Ausführen von Verarbeitungsoperationen als Reaktion auf einen Strom von Programmbefehlen und einem Speichersteuermittelschaltkreis, der mit dem Prozessormittel und einem Speichermittel zum Speichern von Daten verbunden ist, um einen Zugriff auf das Speichermittel durch das Prozessormittel zu steuern, wobei das Prozessormittel eine Mehrzahl von Hardwarebetriebsarten einschließlich mindestens einer ersten Betriebsart und einer zweiten Betriebsart aufweist, das Speichersteuermittel einen Zugriff auf das Speichermittel steuert, sodass: (i) wenn das Prozessormittel in der ersten Betriebsart ist, das Speichersteuermittel einen Schreibzugriff auf einen ersten Abschnitt des Speichermittels erlaubt und mindestens einen Schreibzugriff auf einen zweiten Abschnitt des Speichermittels nicht erlaubt und (ii) wenn das Prozessormittel in der zweiten Betriebsart ist, das Speichersteuermittel einen Schreibzugriff auf den ersten Abschnitt des Speichermittels erlaubt und einen Schreibzugriff auf einen zweiten Abschnitt des Speichermittels erlaubt und das Speichersteuermittel auf einen Sicherheitsflag mit einem eingestellten Wert so reagiert, dass es verhindert, dass das Prozessormittel Programmbefehle zur Ausführung durch das Prozessormittel in der zweiten Betriebsart aus dem ersten Abschnitt des Speichermittels ausliest.
  9. Verfahren zur Datenverarbeitung, wobei das Verfahren die Schritte aufweist: Ausführen von Verarbeitungsoperationen mit einem Prozessor als Reaktion auf einen Strom von Programmbefehlen und Steuern eines Zugriffs auf einen Speicher durch den Prozessor, wobei ein mit dem Prozessor und dem Speicher verbundener Speichersteuerschaltkreis verwendet wird, wobei der Prozessor eine Mehrzahl von Hardwarebetriebsarten einschließlich mindestens einer ersten Betriebsart und einer zweiten Betriebsart aufweist, der Speichersteuerschaltkreis einen Zugriff auf den Speicher steuert, sodass: (i) wenn der Prozessor in der ersten Betriebsart ist, der Speichersteuerschaltkreis einen Schreibzugriff auf einen ersten Abschnitt des Speichers erlaubt und mindestens einen Schreibzugriff auf einen zweiten Abschnitt des Speichers nicht erlaubt und (ii) wenn der Prozessor in der zweiten Betriebsart ist, der Speichersteuerschaltkreis einen Schreibzugriff auf den ersten Abschnitt des Speichers erlaubt und einen Schreibzugriff auf einen zweiten Abschnitt des Speichers erlaubt und der Speichersteuerschaltkreis auf ein Sicherheitsflag mit einem eingestellten Wert so reagiert, dass er verhindert, dass der Prozessor Programmbefehle zur Ausführung durch den Prozessor in der zweiten Betriebsart aus dem ersten Abschnitt des Speichers ausliest.
  10. Verfahren nach Anspruch 9, wobei der Prozessor Programmbefehle zum Ausführen aus dem zweiten Abschnitt des Speichers ausliest.
  11. Verfahren nach einem der Ansprüche 9 oder 10, wobei der Speichersteuerschaltkreis auf Steuerdaten so reagiert, dass er einen oder mehrere Speicheradressbereiche innerhalb des Speichers als einen Teil des ersten Abschnitts und einen oder mehrere Speicheradressbereiche innerhalb des Speichers als einen Teil des zweiten Abschnitts identifiziert.
  12. Verfahren nach einem der Ansprüche 9, 10 und 11, wobei die erste Betriebsart eine Benutzerbetriebsart zum Ausführen von Anwendungsprogrammen ist und die zweite Betriebsart eine privilegierte Betriebsart zum Ausführen mindestens eines Betriebssystemkernelprogramms ist.
  13. Verfahren nach einem der Ansprüche 9 bis 12, wobei wenn das Sicherheitsflag den eingestellten Wert aufweist und der Prozessor in der zweiten Betriebsart ist, es der Speichersteuerschaltkreis dem Prozessor erlaubt, Datenwerte aus dem ersten Abschnitt des Speichers auszulesen.
  14. Verfahren nach einem der Ansprüche 9 bis 13, wobei der Speichersteuerschaltkreis eines der folgenden Elemente aufweist: eine Speicherverwaltungseinheit und eine Speicherschutzeinheit.
  15. Datenverarbeitungsvorrichtung mit einem Verarbeitungsschaltkreis, der von einem Computerprogramm gesteuert wird, sodass eine virtuelle Maschinenvorrichtung zum Ausführen eines Verfahrens nach Anspruch 9 bereitgestellt wird.
DE112010005269T 2010-02-16 2010-12-16 Beschränken von Speicherbereichen für ein Behelfsauslesen in Abhängigkeit von einer Hardwarebetriebsart und einem Sicherheitsflag Pending DE112010005269T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/656,786 US8301856B2 (en) 2010-02-16 2010-02-16 Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
US12/656,786 2010-02-16
PCT/GB2010/052105 WO2011101609A1 (en) 2010-02-16 2010-12-16 Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag

Publications (1)

Publication Number Publication Date
DE112010005269T5 true DE112010005269T5 (de) 2013-04-25

Family

ID=43629421

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010005269T Pending DE112010005269T5 (de) 2010-02-16 2010-12-16 Beschränken von Speicherbereichen für ein Behelfsauslesen in Abhängigkeit von einer Hardwarebetriebsart und einem Sicherheitsflag

Country Status (10)

Country Link
US (1) US8301856B2 (de)
JP (1) JP5571201B2 (de)
KR (1) KR101799261B1 (de)
CN (1) CN102763092B (de)
BR (1) BR112012017703B1 (de)
DE (1) DE112010005269T5 (de)
GB (1) GB2488938B (de)
IL (1) IL220417A (de)
RU (1) RU2513909C1 (de)
WO (1) WO2011101609A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9672164B2 (en) 2012-05-31 2017-06-06 Nxp Usa, Inc. Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address
KR20150035602A (ko) 2012-06-29 2015-04-06 해피 클라우드 인코포레이티드 데이터 저장 디바이스에 데이터세트의 기입 관리
CN102799489B (zh) * 2012-07-19 2014-04-16 腾讯科技(深圳)有限公司 对终端进行控制的方法、装置及终端
US9489316B2 (en) * 2013-03-15 2016-11-08 Freescale Semiconductor, Inc. Method and device implementing execute-only memory protection
US10275593B2 (en) * 2013-04-01 2019-04-30 Uniquesoft, Llc Secure computing device using different central processing resources
US10061940B2 (en) * 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
JP5920595B2 (ja) * 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
US20150254145A1 (en) * 2014-03-07 2015-09-10 Microsoft Corporation Operating system/hypervisor efficiencies for sub-divided privilege levels
GB2525596B (en) * 2014-04-28 2021-05-26 Arm Ip Ltd Access control and code scheduling
US10489309B2 (en) * 2014-10-21 2019-11-26 Intel Corporation Memory protection key architecture with independent user and supervisor domains
US9594687B2 (en) * 2015-04-14 2017-03-14 Google Inc. Virtualization-aware prefetching
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
GB2554940B (en) * 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit
FR3065553B1 (fr) * 2017-04-20 2019-04-26 Idemia Identity And Security Procede d'execution d'un programme destine a etre interprete par une machine virtuelle protege contre des attaques par injection de faute
CN108154032B (zh) * 2017-11-16 2021-07-30 中国科学院软件研究所 具有内存完整性保障功能的计算机系统信任根构建方法
US10635831B1 (en) * 2018-01-06 2020-04-28 Ralph Crittenden Moore Method to achieve better security using a memory protection unit
EP3828708B1 (de) * 2019-11-29 2024-04-24 Johannes Gutenberg-Universität Mainz Verfahren und system zur steuerung eines schalters im ausführungsmodus eines prozessors
CN111274555B (zh) * 2020-01-15 2022-11-18 福建杰木科技有限公司 Flash存储器中的代码保护方法及保护装置
CN112612519B (zh) * 2020-12-11 2022-06-21 成都海光微电子技术有限公司 一种取指方法、装置、电子设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US6895479B2 (en) * 2000-11-15 2005-05-17 Texas Instruments Incorporated Multicore DSP device having shared program memory with conditional write protection
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
EP1537500A2 (de) 2002-09-03 2005-06-08 Sap Ag Dynamischer zugriff auf daten
JP2004145605A (ja) * 2002-10-24 2004-05-20 Matsushita Electric Ind Co Ltd プロセッサ
JP4347582B2 (ja) * 2003-02-04 2009-10-21 パナソニック株式会社 情報処理装置
US20040243783A1 (en) * 2003-05-30 2004-12-02 Zhimin Ding Method and apparatus for multi-mode operation in a semiconductor circuit
WO2006056988A2 (en) * 2004-11-24 2006-06-01 Discretix Technologies Ltd. System, method and apparatus of securing an operating system
CN101233525A (zh) * 2005-05-26 2008-07-30 松下电器产业株式会社 数据处理装置
US20070192826A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation I/O-based enforcement of multi-level computer operating modes
JP4818793B2 (ja) * 2006-04-20 2011-11-16 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びメモリアクセスの制御方法
CN101154212B (zh) * 2006-09-29 2012-01-25 上海海尔集成电路有限公司 一种8位兼容c51指令集微控制器
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US8051263B2 (en) * 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
CN201177809Y (zh) * 2008-04-11 2009-01-07 吴治杰 可调整读写状态的储存装置

Also Published As

Publication number Publication date
BR112012017703A2 (pt) 2016-04-05
IL220417A0 (en) 2012-08-30
KR101799261B1 (ko) 2017-11-20
CN102763092B (zh) 2015-08-12
BR112012017703B1 (pt) 2020-12-15
US20110202739A1 (en) 2011-08-18
RU2513909C1 (ru) 2014-04-20
JP5571201B2 (ja) 2014-08-13
IL220417A (en) 2015-02-26
GB201210574D0 (en) 2012-08-01
GB2488938B (en) 2017-03-08
RU2012139625A (ru) 2014-03-27
CN102763092A (zh) 2012-10-31
JP2013519934A (ja) 2013-05-30
GB2488938A (en) 2012-09-12
KR20130036189A (ko) 2013-04-11
US8301856B2 (en) 2012-10-30
WO2011101609A1 (en) 2011-08-25

Similar Documents

Publication Publication Date Title
DE112010005269T5 (de) Beschränken von Speicherbereichen für ein Behelfsauslesen in Abhängigkeit von einer Hardwarebetriebsart und einem Sicherheitsflag
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE10393679B9 (de) Prozessor, der einen Übergang zwischen einem virtuellen Maschinen Betriebsmodus (VM) und einem virtuellen Maschinen Monitor Betriebsmodus (VMM) unterstützt
DE102007006190B4 (de) Techniken zur Verwendung von Speicher-Attributen
DE10197121B4 (de) Neuer Prozessormodus zum Begrenzen des Betriebes von auf einer virtuellen Maschine laufender Gast-Software mit Unterstützung eines Virtuelle-Maschine-Monitors
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE102013014172B4 (de) Schutz globaler register in einem multithreaded-prozessor
DE69630329T2 (de) Verfahren zur Verwaltung des Deaktivierens und Ausschaltens eines Servers
DE10357804B4 (de) Neu-Beanspruchung vorhandener Felder in Adressübersetzungsdatenstrukturen zum Erweitern der Kontrolle über Speicherzugriffe
DE102010046892A1 (de) Management und Implementierung von Metadaten in der Zentraleinheit unter Verwendung von Registererweiterungen
EP2807558B1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem-kern zur exklusiven bereitstellung an virutelle maschinen
DE112004000464T5 (de) Ungültigmachen von Speichereinträgen, Löschen von Pufferspeicher-Einträgen
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112004001605T5 (de) Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist
DE112009000344T5 (de) Zugriffsrechte auf eine Speicher-Map
DE112013001711T5 (de) Optimieren von Unterroutine-Aufrufen auf der Grundlage der Architekturebene einer aufgerufenen Unterroutine
DE112005003098T5 (de) Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE112010003595T5 (de) Verfahren, System und maschinenverarbeitbares Medium zur Bereitstellung einer verteiltenPrädikatvorhersage
DE112010004963T5 (de) Synchronisieren von SIMD Vektoren
DE112017004980T5 (de) Technologien für objektorientiertes speichermanagement mit erweiterter segmentierung
DE112005002304T5 (de) Adreßumsetzung für Eingabe/Ausgabe- Vorrichtungen mittels hierarchischer Umsetzungstabellen
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE10297433T5 (de) Speicherverwaltungssystem und Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse
DE112016004297T5 (de) Technologien für mehrstufige virtualisierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: D YOUNG & CO LLP, DE