DE3853104T2 - Vorrichtung und Verfahren für den Hauptspeicherschutz mit Verwendung von Zugriffs- und logischen Fehlersignalen. - Google Patents

Vorrichtung und Verfahren für den Hauptspeicherschutz mit Verwendung von Zugriffs- und logischen Fehlersignalen.

Info

Publication number
DE3853104T2
DE3853104T2 DE3853104T DE3853104T DE3853104T2 DE 3853104 T2 DE3853104 T2 DE 3853104T2 DE 3853104 T DE3853104 T DE 3853104T DE 3853104 T DE3853104 T DE 3853104T DE 3853104 T2 DE3853104 T2 DE 3853104T2
Authority
DE
Germany
Prior art keywords
access
processor
information
application
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE3853104T
Other languages
English (en)
Other versions
DE3853104D1 (de
Inventor
Dileep Bhandarkar
Wayne Cardoza
David N Cutler
David A Orbits
Richard T Witek
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE3853104D1 publication Critical patent/DE3853104D1/de
Application granted granted Critical
Publication of DE3853104T2 publication Critical patent/DE3853104T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

    1. Gebiet der Erfindung
  • Diese Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere die Steuerung der Befehls- und Datenelemente, die durch das Datenverarbeitungssystem verarbeitet werden.
  • 2. Beschreibung des zugehörigen Standes der Technik
  • In Datenverarbeitungssystemen werden die Datenelemente, die durch das Datenverarbeitungssystem manipuliert werden, sowie auch Befehlselemente, die ein Programm bilden, das die Manipulationen steuert, typischerweise in einer Hauptspeichereinheit gespeichert. Die Hauptspeichereinheit kann Befehls- und Datenelemente speichern, die zu einer Vielfalt von Programmen gehören, die durch das Datenverarbeitungssystem ausgeführt werden. Aus einer Vielzahl von Gründen, wie beispielsweise der Integrität der Befehls- und Datenelemente, ist es häufig wünschenswert, die Manipulationsart zu steuern, der die Befehls- und Datenelemente unterzogen werden können. Beispielsweise können inkonsistente Ergebnisse auftreten, wenn ein Benutzer des Datenverarbeitungssystems die fundamentalen Teile des Qperationssystem-Programms oder ausgewählte Unterprogramme selbst ändern kann.
  • In der Vergangenheit ist eine Vielzahl von Techniken zum Steuern der Art der Manipulation verwendet worden, der eine Logiksignalgruppe unterzogen werden kann. Jede Logiksignalgruppe, die die beabsichtigte Verwendung des zugehörigen Befehls- oder Datenelements bestimmt, kann einem Feld (oder Feldern) zugeteilt werden. Aufgrund der Vielzahl von Zugriffsrechten, die dem Befehls- oder Datenelement zugeordnet werden können, kann den zugehörigen Befehls- oder Datenelementen nur eine Untergruppe aller möglichen Zugriffsrechte zugeordnet werden ohne daß die erforderlichen Zugriffsrechts-Felder außerordentlich groß werden. Dieses Problem ist auf eine etwas andere Art von dem Multics-(Multiplexed Information and Computing Service)-System angegangen, wobei für den Betrieb des Datenverarbeitungssystems eine Vielzahl von Privilegebenen definiert ist und ein Übergang zwischen diesen Ebenen genauestens gesteuert wird. Das Multics- System ist in "The Multics System: An Examination of its Structure" von Elliott 1.
  • Orgnick, veröffentlicht von MIT Press, beschrieben. Das Multics-System und ähnliche Datenverarbeitungssysteme benötigen komplizierte Hardware-/Software- Privilegebenen-Schnittstellen, was typischerweise eine große Menge an Verarbeitungszeit zum Implementieren mit sich bringt. Zum Multics-System gehörende Zugriffsrechte sind für jede Privilegebene definiert und müssen auf Konsistenz untersucht werden, wenn sie zwischen Privilegebenen fallen.
  • Daher ist die Notwendigkeit für eine Technik zum Steuern der Manipulation der Befehls- und Datenelemente aufgetreten, die flexibel genug ist, verfügbare Verarbeitungsoptionen bereitzustellen, ohne daß dafür eine große Menge an dazu gehöriger Verarbeitungskapazität erforderlich ist oder daß relativ große Zugriffsrechts-Felder nötig sind, die jedem Befehls- oder Datenelement zuzuordnen sind. Ein Gerät wie auch ein Verfahren des im jeweiligen Oberbegriff der Patentansprüche 1 und 20 bestimmten Typs ist beispielsweise aus folgendem Dokument bekannt: Computer, Bd. 20, März 1987, Nr. 3, NY USA, Seiten 48-67; Borivoje Furht et al: "A survey of Microprocessor Architectures for Memory Management".
  • MERKMALE DER ERFINDUNG
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine verbesserte Datenverarbeitungseinheit zu schaffen.
  • Es ist ein Merkmal der vorliegenden Erfindung, die Art der Manipulation zu steuern, der Programm-Befehls- und -Datenelemente unterzogen werden können.
  • Es ist ein spezielleres Merkmal der vorliegenden Erfindung, eine Steuerung der Zugriffsrechte auf Befehls- oder Datenelemente durch Speichern von Zugriffsrechts- Signalen im Seitentabelleneintrag zu schaffen.
  • Es ist ein weiteres spezielles Merkmal der vorliegenden Erfindung, den Lese/Schreibzugriff auf den Datenverarbeitungssystem-Speicher zu einer Funktion der Operationsweise der Operation des Datenverarbeitungssystems zu machen.
  • Es ist ein weiteres spezielles Merkmal der vorliegenden Erfindung, die Verwendung eines Befehlselements auf eine Verwendung von "nur Ausführen" zu begrenzen.
  • Es ist ein weiteres spezielles Merkmal der vorliegenden Erfindung, die Datenverarbeitungseinheit davon abzuhalten, zu versuchen, Daten-(d.h. Nichtbefehls-)-Felder auszuführen.
  • Es ist ein weiteres Merkmal der vorliegenden Erfindung, eine Vorrichtung zum Anzeigen dafür zu schaffen, wann eine gültige "Lese-", "Schreib-" oder "Ausführ-"Operation gerade versucht wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die zuvor genannten und andere Merkmale werden gemäß der beanspruchten vorliegenden Erfindung erreicht durch Bereitstellen eines Geräts zum Zugreifen auf Seitentabelleneintrags-Felder, wenn die Zentralverarbeitungseinheit versucht, in der zugehörigen Seite auf Daten zuzugreifen, die die Verarbeitung definieren, die an den die Informationsseite aufweisenden Befehls- und Datenelementen durchgeführt werden kann. Die Seitentabelleneintrags-Zugriffsrechts-Felder enthalten Freigabesignale für Lese- und Schreiboperationen in einem Anwender-Operationsmodus (in dem nicht privilegierte Befehle ausgeführt werden können) und Freigabesignale für Lese- und Schreiboperationen durch einen Kernel-Operationsmodus (in dem privilegierte und nicht privilegierte Befehle ausgeführt werden können). Zusätzlich erlauben die Seitentabelleneintrags-Zugriffsrechts-Felder, daß ein Fehler bezüglich der Ausführsignale, ein Fehler bezüglich der Schreibsignale und ein Fehler bezüglich der Lesesignale bestimmt wird. Diese Signale lassen zu, daß ein Befehlselement als Nur-Ausführen-Feld und daß ein Datenelement als Nicht-Ausführen-Feld bestimmt wird, und sind ein Mittel zum Sammeln von Zugriffs- und Änderungsinformation.
  • Diese und andere Merkmale der vorliegenden Erfindung werden beim Lesen der folgenden Beschreibung im Zusammenhang mit den Zeichnungen verstanden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1A und Fig. 1B sind Beispiele von Datenverarbeitungssystem- Implementierungen, die die vorliegende Erfindung verwenden können.
  • Fig. 2 ist ein Beispiel einer Zentralverarbeitungseinheit einer Datenverarbeitungseinheit, die die vorliegende Erfindung verwenden kann.
  • Fig. 3 ist eine Darstellung einer Datenverarbeitungssystem- Organisation für einen virtuellen Speicher.
  • Fig. 4A ist ein Seitentabelleneintrags-Format gemäß dem bevorzugten Ausführungsbeispiel.
  • Fig. 4B stellt das Testen der Seitentabelleneintrags-Felder dar zum Bestimmen, ob ein Zugriff auf eine zugehörige Seitentabelle erlaubt ist.
  • Fig. 5 stellt die Technik der indirekten Adressierung dar, die die vorliegende Erfindung verwendet.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS 1. Detaillierte Beschreibung der Figuren
  • Nimmt man nun Bezug auf Fig. 1A und 1B sind zwei beispielhafte Datenverarbeitungssystem-Konfigurationen gezeigt, die die vorliegende Erfindung verwenden können. In Fig. 1A ist die Zentralverarbeitungseinheit (#1) 11 mit einem Systembus 19 gekoppelt. Auch andere zentrale Verarbeitungseinheiten (z.B.#N) 12 können mit dem System gekoppelt sein. Die zentrale Verarbeitungseinheit(en) 11 (bis 12) verarbeitet (verarbeiten) Daten gemäß der Struktur der zentralen Verarbeitungseinheit(en) in Verbindung mit Steuerprogrammen der zentralen Verarbeitungseinheit, wobei die Steuerprogramme aus Befehlen bestehen, die in der Hauptspeichereinheit 15 speicherresident sind. Die nicht speicherresidenten Daten und Befehle sind typischerweise in der (den) Massenspeichereinheit(en) gespeichert und werden über den Systembus 19 zu und von der Hauptspeichereinheit 15 übertragen. Eingabe-/Ausgabeeinheit(en) {#1} 16 (bis {#M} 17) koppeln Vorrichtungen wie beispielsweise Massenspeichereinheiten, Benutzer-Endgeräte und Kommunikationsvorrichtungen mit dem Datenverarbeitungssystem mittels dem Systembus 19. Die Massenspeichereinheiten speichern die Daten und Befehle, die von der (den) Datenverarbeitungseinheit(en) benötigt werden. Gruppen von Daten und/oder Befehlen, die typischerweise als Seiten von Daten und/oder Befehlen bezeichnet sind, die für die Operation der zentralen Verarbeitungseinheiten 11 bis 12 erforderlich sind, werden von den Massenspeichereinheiten mit relativ geringer Zugriffsmöglichkeit zu der Hauptspeichereinheit übertragen, auf die durch die zentrale Verarbeitungseinheit relativ schnell zugegriffen werden kann. Das auf einen Bus ausgerichtete System hat einen Vorteil darin, daß es relativ einfach ist, das System neu zu konfigurieren, hat aber den Nachteil, daß jede Systemkomponente ein Steuergerät zum Bereitstellen einer Schnittstelle zu dem Systembus benötigt. Nimmt man als nächstes auf Fig. 1B Bezug, ist ein Datenverarbeitungssystem gezeigt, bei dem die zentrale Verarbeitungseinheit(en) 11 (bis 12) und die Eingabe-/Ausgabeeinheit(en) 16 (bis 17) mit der Hauptspeichereinheit 15 über eine Speichersteuereinheit 14 gekoppelt sind, wobei die Speichersteuereinheit 14 den Systembus 19 und die Steuerfunktion ersetzt, die durch einzelne Datenverarbeitungssystem-Komponenten bei der auf einen Bus ausgerichteten in Fig. 1A gezeigten Datenverarbeitungskonfiguration durchgeführt wird. Die Speichersteuereinheit 14 bietet eine zentralisierte Steuerung und ein Überwachen der Übertragung der Daten und Befehle, die effizienter als bei der auf einen Bus ausgerichteten Konfiguration der Fig. 1A sein können, bringt aber einen Verlust an Flexibilität mit sich.
  • Nimmt man als nächstes Bezug auf Fig. 2, ist ein Blockdiagramm einer beispielhaften zentralen Verarbeitungseinheit dargestellt, die die vorliegende Erfindung effektiv verwenden kann. Die Ausgabeeinheit 22 ist verantwortlich für ein Liefern (decodierter) Befehle zu der Vielzahl spezialisierter Ausführungseinheiten, die eine Skalaroperations-Adressen-Erzeugungseinheit 24, wenigstens eine Ausführungseinheit (#1) 25 (bis zur Ausführungseinheit {#Q} 26) und eine Vektoroperationseinheit 28 umfassen, wobei die Vektoroperationseinheit 28 eine Vektoroperations- Verarbeitungseinheit 28A, eine Vektoroperations-Adressen-Erzeugungseinheit 28B und Vektoroperationsregister 28C enthält. Die durch die Ausführungseinheiten verarbeiteten Daten werden typischerweise aus den Skalarregistern 23 oder den Vektorregistern 28C extrahiert. Die resultierenden Daten aus den Ausführungseinheiten werden in den Skalarregistern 23, in den Vektorregistern 28C oder in der Daten- Cachespeichereinheit 27 gespeichert. Die Daten-Cachespeichereinheit 27 kann eine Cachespeichereinheit angesehen werden, die eine Schnittstelle zwischen der Hauptspeichereinheit 15 und der zentralen Verarbeitungseinheit 11 ist. (Die Daten- Cachespeichereinheit 27 ist in Fig. 2 direkt mit der Hauptspeichereinheit gekoppelt gezeigt. Wie es in Fig. 1A und Fig. 1B dargestellt ist, kann die aktuelle Kopplung uber ein dazwischenliegendes Datenverarbeitungsgerät erfolgen.) Die Ausgabeeinheit 22 enthält ein Gerät zum Bestimmen, welche Ausführungseinheit ausgewählte Daten verarbeitet, und zum Bestimmen, wann die ausgewählte Ausführungseinheit zum Verarbeiten von Daten verfügbar ist. Dieses letztere Merkmal enthält eine Bestätigung, daß die Zielort-Speicherstelle zum Speichern der verarbeiteten Daten verfügbar ist. Die Befehls-Cachespeichereinheit 21 speichert die Befehle, die decodiert und durch die Ausgabeeinheit zu der geeigneten Ausführungseinheit weitergeleitet werden. Die Ausgabeeinheit 22 hat das Gerät, um zu versuchen, die Verarbeitungsoperationen der Ausführungseinheiten zu maximieren. Somit enthält die Ausgabeeinheit 22 ein Hervorhol-Gerät und einen Algorithmus zum Sicherstellen, daß der geeignete Befehl (einschließlich irgendeines Verzweigungsbefehls) für die Ausgabeeinheit 22 verfügbar ist, wenn es nötig ist. Die vielen Ausführungseinheiten sind, wie es durch die Skalaroperations-Adressen-Erzeugungseinheit 24 und die Vektoroperationseinheit 28 gezeigt ist, spezialisierte Verarbeitungsvorrichtungen zum Verarbeiten bestimmter Klassen von Verarbeitungsoperationen. Beispielsweise kann eine Ausführungseinheit dafür aufgebaut sein, Gleitkomma-Operationen, geradzahlige arithmetische Operationen, etc. zu verarbeiten. Zu der Ausgabeeinheit 22 gehören Skalarregister 23, die Daten speichern können, die für das Ausführen des Programms oder zum Bereitstellen einer Aufzeichnung der Datenverarbeitungsoperation erforderlich sind. Beispielsweise ist ein Register das Programmzähler-Register, das die (virtuelle) Adresse des als nächstes zu verarbeitenden Befehls in der Befehlsfolge des ausgeführten Programms speichert. Die Skalaroperations- Adressen-Erzeugungseinheit 24 wird dafür verwendet, virtuelle Adressen in physikalische Stellen in der Hauptspeichereinheit 15 umzuwandeln. Die Ausgabeeinheit 22 ist auch verantwortlich für ein Neuordnen der Daten von den Ausführungseinheiten in der richtigen Reihenfolge, wenn die Ausführungseinheiten Befehle mit unterschiedlichen Geschwindigkeiten verarbeiten.
  • Die Vektoroperationseinheit 28 enthält eine Vektoroperations-Verarbeitungseinheit 28A, eine Vektoroperations-Adressen-Erzeugungseinheit 28B und Vektoroperationsregister 28C. Die Aktivität der Vektoroperations-Verarbeitungseinheit kann die Verteilung der Daten zu den Ausführungseinheiten 24 bis 26 und die Ausführung der Befehle darin steuern. Gemäß einem anderen Ausführungsbeispiel (nicht gezeigt) können Ausführungseinheiten, die zur Ausführung von Befehlen durch die Vektoroperationseinheit 28 bestimmt sind, in dem Datenverarbeitungssystem vorhanden sein. Wenn die Ausführungseinheiten sowohl für Vektor- als auch Skalaroperationen verfügbar sind, erfolgt eine Steuerung mittels der Gesamtsystem- Steuerung der Ausgabeeinheit 22, die der Datenverarbeitungseinheit die Betriebsmittel zuordnet.
  • Nimmt man als nächstes Bezug auf Fig. 3, ist eine Beschreibung der virtuellen Adressierung des bevorzugten Ausführungsbeispiels dargestellt. Zu einem Befehl 301 in der Ausgabeeinheit gehört eine virtuelle Adresse 302, die das Datenelement identifiziert, woraufhin die Operation des Befehls durchzuführen ist. Die Ausgabeeinheit überträgt die virtuelle Adresse 302 zu der Skalar-Adressen- Erzeugungseinheit 24 (oder, wo es geeignet ist, der Vektor-Adressen- Erzeugungseinheit 28B). In der Adressen-Erzeugungseinheit 24 (oder 28B) wird ein Teil der virtuellen Adresse verwendet, um (durch ein Gerät 303 in der Adressen- Erzeugungseinheit) einen Seitentabelleneintrag 304 in der Hauptspeichereinheit 15 zu identifizieren. Der Seitentabelleneintrag 304 wird zu der Adressen- Erzeugungseinheit 24 (oder 28B) übertragen, und ein Test 305 testet ausgewählte Felder in dem Seitentabelleneintrag, um zu bestimmen, ob der in bezug auf das Datenelement versuchte Zugriff zugelassen wird. Wenn der Zugriff nicht zugelassen wird, wird eine Zugriffsverletzung 306 identifiziert, und ein geeignetes Operationssystem-Programm wird aufgerufen, um zu bestimmen, wie auf die Zugriffsverletzung zu antworten ist. Wenn der Test 305 bestimmt, daß der Zugriff auf das Datenelement 312 zugelassen ist, wird ein Test 307 an dem Seitentabelleneintrag 304 durchgeführt, um zu bestimmen, ob das für den Befehl erforderliche Datenelement in der Hauptspeichereinheit 15 verfügbar ist. Wenn der Test 307 anzeigt, daß das Datenelement nicht vorhanden ist, wird ein Seitenfehler 308 erzeugt, und ein geeignetes Operationssystem-Programm wird aufgerufen, um das Datenelement zu dem Hauptspeicher 15 (an die Stelle 312) zu übertragen. Wenn durch den Test 307 bestimmt wird, daß das erforderliche Datenelement in der Hauptspeichereinheit verfügbar ist, testet ein Test 309 den Seitentabelleneintrag 304, um zu bestimmen, ob die Aktivität, für die das Datenelement von dem zugehörigen Befehl benötigt wird, dazu bestimmt wird, in einem Fehler zu resultieren. Wenn die durch den Befehl bestimmte Aktivität zu einem Fehlerzustand bestimmt wird, wird ein Fehler beim Lesen, ein Fehler beim Schreiben oder ein Fehler beim Ausführen ein Operationssystem-Programm aufrufen, um auf den Fehlerzustand zu antworten. Wenn der Test 309 anzeigt, daß die Aktivität des Befehls in bezug auf das zugehörige Datenelement nicht als Fehlerzustand bestimmt ist, bestimmt die Adressen- Erzeugungseinheit 24 (oder 28B) die physikalische Adresse 311 in der Hauptspeichereinheit 15, wo das erforderliche Datenelement gespeichert ist. Das Datenelement 312 bei dieser Adresse wird zu einer Speicherstelle 313 in den Skalarregistern 23, den Vektoroperationsregistern 28C oder zu der Befehls-Cachespeichereinheit 21 (d.h. wenn das Datenelement ein Befehl ist) übertragen. Auf diese Weise wird das durch eine virtuelle Adresse identifizierte erforderliche Datenelement zur Verarbeitung durch den Befehl 301 verfügbar.
  • Nimmt man Bezug auf Fig. 4A ist der Seitentabelleneintrag 400 gezeigt, der zum Umsetzen der virtuellen Adressen in die physikalischen Adressen verwendet wird. Das Feld V (gültig) an der 0-Bit-Position 401 zeigt die Gültigkeit der DCV-, ASM-, FOE-, FOW-, FOR- und PFN-Felder an. Wenn das Gültigkeitsbit gesetzt ist, werden diese Felder zur Verwendung durch die Hardware-Vorrichtung gültig. Wenn dieses Bit gelöscht ist, dann wird das PFN-(Seitenzahl-)Feld zur Verwendung durch das Operationssystem-Programm reserviert. Das Feld KRE (Kernel-Lesefreigabe) in der Bit-1-Position 402 ermöglicht ein Lesen, wenn die zentrale Verarbeitungseinheit in dem privilegierten oder Kernel-Modus ist. Wenn dieses Bit Null ist und eine Datenleseoperation oder ein Befehlsholen in einem Kernel-Modus versucht wird, tritt eine Zugriffsverletzungs-Ausnahme auf. Das Feld KWE (Kernel-Schreibfreigabe) in der Bit-2-Position 403 ermöglicht Schreiboperationen, wenn die zentrale Verarbeitungseinheit in dem privilegierten oder Kernel-Modus ist. Wenn dieses Bit Null ist und eine Datenschreiboperation in einem Kernel-Modus versucht wird, tritt eine Zugriffsverletzungs-Ausnahme auf. Das URE-(Anwender-Lesefreigabe)-Feld in einer Bit-3-Position 404 ermöglicht Leseoperationen, wenn die zentrale Verarbeitungseinheit in einem nicht privilegierten oder Anwender-Modus ist. Wenn dieses Feld Null ist und eine Daten-Leseoperation oder ein Befehlsholen versucht wird, während die zentrale Verarbeitungseinheit in dem Anwender-Modus arbeitet, tritt eine Zugriffsverletzungs-Ausnahme auf. Das UWE-(Anwender-Schreibfreigabe)-Feld in der Bit-4-Position 405 ermöglicht Schreiboperationen von dem nicht privilegierten oder Anwender-Modus. Wenn dieses Feld Null ist und eine Daten-Schreiboperation in dem URE-Modus versucht wird, tritt eine Zugriffsverletzungs-Ausnahme auf. Die KRE-, KWE-, URE- und UWE-Felder sind selbst dann gültig, wenn das V-Feld Null ist. Das FOR-(Fehler-beim-Lesen)-Feld in der Bit-5-Position 406 resultiert dann, wenn es auf logisch Eins gesetzt ist, in einer Fehler-beim-Lesen-Ausnahme, wenn ein Versuch zum Lesen irgendeiner Stelle (d.h. ein Ladebefehl, der Daten von einer Stelle auf der Seite liest) von der zugehörigen Seite durchgeführt wird. Das FOW-(Fehlerbeim-Schreiben)-Feld in der Bit-6-Position 407 resultiert dann, wenn es auflogisch Eins gesetzt ist, in einer Fehler-beim-Schreiben-Ausnahme, wenn ein Versuch zum Durchführen einer Schreiboperation durchgeführt wird (d.h. ein Speicherbefehl, der Daten zu einer Stelle auf der Seite schreibt) zu irgendeiner Stelle in dem zugehorigen Speicher. Das FOE-(Fehler-beim-Ausführen)-Feld in der Bit-7-Position 408 resultiert dann, wenn es auflogisch Eins gesetzt ist, in einem Fehler-beim-Ausführen, wenn ein Versuch zum Ausführen eines Befehls von der zugehörigen Seite durchgeführt wird. Das ASM-(Adressenraumanpassungs)-Feld in der Bit-8-Position 409 zeigt, daß alle Adressenraumzahlen (ASNS) bei versuchten Zugriffen auf die zugehörige Seite übereinstimmen (d.h. im Umsetzungspuffer wird ASN von den Komparatoren nicht verwendet). Das DCV-(kein-virtueller-Cachespeicher)-Feld in der Bit-9- Position 410 verhindert, wenn es auflogisch Eins gesetzt ist, daß die Inhalte der zugehörigen Seite in einem virtuellen Cachespeicher gespeichert werden. Das Feld in den Bit-10-12-Positionen 411 ist für eine zukünftige Verwendung reserviert. Das PFN-(Seitenzahl)-Feld in den Bit-13-44-Positionen enthalten die Seitenzahl. Das PFN-Feld zeigt immer auf eine Grenze einer physikalischen Seite. Wenn das V-Feld 401 gesetzt ist, wird das Byte innerhalb von Seiten-(d.h. Verschiebungs)-Bits von der virtuellen Adresse mit dem PFN-Feld verkettet, um die physikalische Adresse auszubilden, die von der Hardware-Vorrichtung verwendet wird.
  • Nimmt man als nächstes Bezug auf Fig. 4B sind das Testen der Seitentabelleneintrags-Felder, die allgemein in Fig. 3 als Tests 305, 307 und 309 gezeigt sind, bezüglich der Seitentabelleneintrags-Felder dargestellt, die in Fig. 4A gezeigt sind. Im Test 305 werden die Zugriffsrechte, die zu dem Seitentabelleneintrag gehören, mit den Zugriffsparametern des Befehls verglichen, der versucht, auf ein Datenelement innerhalb der Seite zuzugreifen, um zu bestimmen, ob der beabsichtigte Zugriff zugelassen ist. Insbesondere werden die KRE-, die KWE-, die URE- und die UWE- Felder (d.h. die Felder 402 bis 405) mit dem Operationsmodus des Datenverarbeitungssystems und mit der Zugriffsaktivität (d.h. einer Lese- oder einer Schreiboperation) verglichen, um zu bestimmen, ob der Zugriff zugelassen ist. Wenn der Zugriff nicht zugelassen ist, wird eine Zugriffsverletzung 452 identifiziert, und ein geeignetes Operationssystem-Programm 453 wird aufgerufen. Im Test 307 wird das Gültigkeitsbit V (d.h. das Feld 401) getestet, um zu bestimmen, ob die Gültigkeitsdaten in der Seite der Daten und/oder Befehle gespeichert sind, die zu der virtuellen Adresse gehören. Wenn die Gültigkeitsdaten nicht zu der Seite der Datenelemente gehören, dann wird ein Seitenfehler 455 identifiziert, und ein geeignetes Operationssystem- Programm 456 wird aufgerufen. In dieser Situation besteht die geeignete Operationssystem-Antwort darin, die Seite der Datenelemente von dem Hintergrundspeicher zu der Hauptspeichereinheit zu bewegen und den Befehl erneut auszuführen, der den Seitenfehler verursacht hat. In bezug auf den Test 309 der Fig. 3 werden die Seitentabelleneintrags-Felder FOR (Fehler-beim-Lesen), FOW (Fehler-beim-Schreiben) und FOE (Fehler-beim-Ausführen), d.h. die Felder 406 bis 408, gegenüber Parametern des zugehörigen Befehls getestet, um zu bestimmen, ob der Versuch zum Durchführen der Befehlsoperation an einem Datenelement der Seite der Datenelemente in einem Fehlerzustand resultieren sollte. Wenn ein Fehlerzustand identifiziert wird (458), wird ein Operationssystem-Programm 459 aufgerufen. Sonst wird die physikalische Adresse erzeugt.
  • Nimmt man als nächstes Bezug auf Fig. 5, ist die Technik der Umsetzung einer indirekten Adresse dargestellt, bei der die vorliegende Erfindung angewendet wird. Die Bestimmung einer physikalischen Adresse wird in der Skalaroperations-Adressen- Erzeugungseinheit 24 oder in der Vektoroperations-Adressen-Erzeugungseinheit 28B der Fig. 2 durchgeführt. Die Inhalte des Seitentabellen-Basisregisters 501 und des Adressenraumzahlregisters 521 werden in der Skalaroperations-Adressen- Erzeugungseinheit 24 und in der Vektoroperations-Adressen-Erzeugungseinheit 28B der Fig. 2 gespeichert. Zum Erhalten eines Datenelementes (d.h. des Datenelements 505A), das einer virtuellen Adresse entspricht, wird die virtuelle Adresse der Daten in die Skalaroperations-Adressen-Erzeugungseinheit 24 oder die Vektoroperations-Adressen-Erzeugungseinheit 28B der Fig. 2 eingegeben. Die Inhalte des Seitentabellen-Basisadressenregisters 501 werden als Anfangsstelle in einem Satz eines Datengruppen-Segments 1 503 interpretiert, und die 10 Bits höchster Ordnung (Feld A) der virtuellen Adresse 502 werden in dem Segment 1 503 als Index interpretiert. Durch diese Operation wird die Datengruppe 503A identifiziert, und diese Datengruppe 503A wird zu der Skalaroperations-Adressen- Erzeugungseinheit 24 oder der Vektoroperations-Adressen-Erzeugungseinheit 28B der Fig. 2 übertragen. Der PFN-(Seitenzahl)-Teil der Datengruppe 503A wird als Basisadresse des Satzes der Datengruppen verwendet, die als Segment 2 504 bezeichnet ist. Ein Feld B (d.h. die nächsten 10 Bits der virtuellen Adresse 502) wird als Indexwert für das Segment 2 verwendet, um das Datenelement 504A des Segments 2 504 zu erhalten. Die Datengruppe 504A wird zu der Skalaroperations- Adressen-Erzeugungseinheit 24 oder der Vektoroperations-Adressen- Erzeugungseinheit 28B der Fig. 2 übertragen. In der Datengruppe 504A sind die Zugriffs-Steuerbits enthalten, die unter Bezugnahme auf Fig. 4 beschrieben sind. Zu dieser Zeit werden diese Zugriffs-Steuerbits überprüft und, wo es geeignet ist, wird eine dafur bestimmte Ausnahme erzeugt. (Bei dem bevorzugten Ausführungsbeispiel werden auch die Zugriffs-Steuerbits getestet, die zu dem Segment 1 und dem Segment 2 gehoren, aber nur fur einen Kernel Lesezugriff). Zusätzlich kann das V Feld auf der Segment-1- oder Segment-2-Ebene uberpruft werden, um zu bestimmen, ob der Seitentabelleneintrag auf der Segment-2- oder Segment-3-Ebene in dem Hauptspeicher speicherresident ist.) Der PFN-Teil des Datenelements 504A wird verwendet, um die Basisadresse des Segments 3 509 zu bestimmen. Ein Feld C (d.h. die nächsten 10 Bits der virtuellen Adresse) wird zusammen mit der Basisadresse des PFN-Feldes 504A des Segments 2 als Indexwert des Segments 3 verwendet, um die Adresse der Datengruppe 509A zu erhalten. Schließlich bezieht sich der PFN-Teil der Datengruppe 509A auf die Basisadresse der Datenseite 505. Die am wenigstens signifikanten 13 Bits der virtuellen Adresse 502 (Feld D) bestimmen einen Versatz in der Datenseite 505 und identifizieren die Datengruppe 505A, nämlich die Datengruppe, die durch die virtuelle Adresse identifiziert wird. Zum Eliminieren zweier Stufen einer Speicherreferenz bei dem vorangehenden Verfahren kann ein Umsetzungspuffer 506 in der Skalaroperations-Adressen- Erzeugungseinheit 24 und/oder der Vektoroperations-Adressen-Erzeugungseinheit der Fig. 2 vorgesehen sein. Gemäß einem Ausführungsbeispiel kann das Feld C (10 Bits) der virtuellen Adresse verwendet werden, um eine Stelle in dem Umsetzungspuffer zu identifizieren. Ein Erkennungsfeld der adressierten Stelle wird mit den 20 Bit des Feldes A und des Feldes B der virtuellen Adresse 502 verglichen, um die Richtigkeit der Identifizierung zu bestätigen. Die Datengruppe 504A wird im Umsetzungspuffer gespeichert und kann durch die Skalar- oder Vektoroperations- Adressen-Erzeugungseinheit verwendet werden. Ein Adressenumsetzungspuffer kann auf andere Weise implementiert werden, um die Adressenumsetzung zu beschleunigen. Zusätzlich zu den 20 Bits des Felds A und des Felds B gehört zu dem Umsetzungspuffer-Erkennungsfeld eine Adressenraumzahl (ASN) 522. Wenn das ASM-Bit von der Datengruppe 504A auf 1 gesetzt wird, ist eine Übereinstimmung zwischen den 20 Bits des Felds A und des Felds B von der virtuellen Adresse mit den 20 Erkennungsbits des Felds A und des Felds B ausreichend, um eine richtige Umsetzung zu identifizieren. Wenn jedoch das ASM-Bit von der Datengruppe 504A Null ist, müssen nicht nur die 20 Bits des Felds A und des Felds B von der virtuellen Adresse mit den 20 Bits des Erkennungsfelds übereinstimmen, sondern es muß auch das gegenwärtige ASN 521 mit dem Feld 522 von dem Umsetzungspuffer übereinstimmen.
  • 2. Operation des bevorzugten Ausführungsbeispiels
  • Bei dem bevorzugten Ausführungsbeispiel wurde die zentrale Verarbeitungseinheit mit für eine Fließband-Verarbeitung angeordneten Ausführungseinheiten der Fig. 2 implementiert, die mehreren Beschränkungen unterworfen ist, jedoch können auch Implementierungen anderen Aufbaus die vorliegende Erfindung verwenden. Die zentrale Verarbeitungseinheit enthält eine Vielzahl von Ausführungseinheiten, die jeweils geeignet sind, eine Klasse von Befehlen auszuführen. Beispielsweise steuert eine Ausführungseinheit, nämlich die Skalaroperations-Adressen-Erzeugungseinheit 24, die Übertragung der Datenelemente zwischen der zentralen Verarbeitungseinheit und der Hauptspeichereinheit, d.h. sie führt die skalaren Lade-/Speicherbefehle aus. Eine Ausführungseinheit ist geeignet, Datenverschiebeoperationen auszuführen, eine Ausführungseinheit soll Gleitkomma-, Addier-/Subtrahier-Operationen ausführen, eine Ausführungseinheit ist geeignet für Multiplizieroperationen im ganzzahligen und Gleitkommaformat, und eine Ausführungseinheit ist geeignet für Dividieroperationen im ganzzahligen und Gleitkommaformat. Die spezialisierten Ausführungseinheiten können in einer Konfiguration zur Fließband-Verarbeitung implementiert sein, sind es aber nicht notwendigerweise. Die anderen Merkmale der zentralen Verarbeitungseinheit sind folgende. Der Befehl in der gerade ausgeführten Ablauffolge von Befehlen wird von der Befehls-Cachespeichereinheit 21 zu der Ausgabeeinheit 22 übertragen. In der Ausgabeeinheit wird der Befehl in seine Einzelteile aufgeteilt und daraus werden datenabhängige Steuersignale und Adressensignale erzeugt. Jedoch müssen vor einem Beginn einer Ausführung eines Befehls (d.h. der Befehl ausgegeben wird) mehrere Bedingungen erfüllt sein. Alle Quellenund Zielortregister für den Befehl müssen verfügbar sein, d.h. es dürfen keine Schreiboperationen zu einem benötigten Register ausstehend sein. Der Register- Schreibpfad muß beim zukünftigen Zyklus verfügbar sein, in dem dieser Befehl die verarbeitete Menge speichern wird. Die Ausführungseinheit, die zum Verarbeiten des Befehls während der Ausführung erforderlich ist, muß zum Durchführen der Operation verfügbar sein. In bezug auf die Vektoroperationseinheit reserviert eine Vektoroperation eine Ausführungseinheit für die Dauer der Vektoroperation. Wenn ein Speicher-Lade-/Speicher-Befehl ein Fehlen einer Cachespeichereinheit erfährt, wird das Lade-/Speicher-Einheits-Besetztflag für eine Verzögerung der nachfolgenden Lade-/Speicherbefehle sorgen, bis die Cachespeicher-kein-Treffer-Antwort fertig ist. Wenn ein Befehl eine Ausgabe durchführt, werden das Zielortregister und der Schreibpfadzyklus für das Ergebnis reserviert. Während eines Einstellens von Operanden werden alle befehlsunabhängigen Registeradressen erzeugt, Operanden werden gelesen und gespeichert, und datenabhangige Steuersignale werden erzeugt. Die Befehlsoperanden und Steuersignale werden zur Ausfuhrung zu der zugehörigen Ausfuhrungseinheit gefuhrt. Das durch die Ausfuhrungseinheit erzeugte Ergebnis wird je nach Eignung in den Registerdateien oder in der Daten- Cachespeichereinheit 15 gespeichert. Wenn ein Befehl einmal ausgegeben wird, kann das Ergebnis der Verarbeitung für mehrere Maschinenzyklen nicht verfügbar sein. Zwischenzeitlich kann im nächsten Maschinenzyklus der nächste Befehl decodiert werden, und er kann ausgegeben werden, wenn die erforderlichen Ausgabebedingungen erfüllt sind. Somit werden die Befehle in der normalen Befehlsablauffolge decodiert und ausgegeben, aber die Ergebnisse können aufgrund der sich ändernden Befehls-Ausführungszeiten der Ausführungseinheiten in einer anderen Reihenfolge gespeichert werden. Dieses Speichern mit anderer Reihenfolge kompliziert die Ausnahmeverarbeitung und das nochmalige Versuchen fehlgeschlagener Befehle. Jedoch sind diese Ereignisse relativ selten und das Speichern außerhalb der Reihenfolge bietet Vorteile bezüglich der Ausführung und der Hardware.
  • In Fig. 3 ist allgemein das Verwenden von Techniken einer virtuellen Adressierung implementiert worden. Diese Technik erlaubt dem Programmierer, sich nicht um eine aktuelle Stelle der Daten- und Befehlselemente, den Adressen- Erzeugungsmechanismus, der für eine Schnittstelle zwischen den Programmadressen und den Daten- und Befehlselementen innerhalb der Datenverarbeitungseinheit sorgt, zu kümmern. Durch das Verwenden von Seiten von Daten- und Befehlselementen wird die Übertragung der Daten- und Befehlselemente von den Haupt- oder Massenspeichermedien beschleunigt, und es gibt keine Notwendigkeit zum Übertragen einzelner Daten- und Befehlselemente. Zusätzlich werden Programme im allgemeinen in einem Format geschrieben, das Daten- und Befehlselemente, die für eine sequentielle Befehlsausführung benötigt werden, relativ nahe beieinander in dem Programm oder einer Datei speichert. Somit wird eine Seite von Daten- und Befehlselementen typischerweise eine Vielzahl von zu der Programmausführung gehörenden Daten- und Befehlselemente enthalten. Nichts desto weniger hat die relative Starrheit der Granularität der Seitenimplementierung insbesondere bei der Vektorbefehlsausführung zum Ergebnis, daß sich die Gruppe zugehöriger Daten- und Befehlselemente über die Seitengrenze hinausgehend erstrecken kann, die nicht in der Hauptspeichereinheit des Datenverarbeitungssystems vorhanden ist. Bei dem bevorzugten Ausführungsbeispiel enthält der Adressen- Erzeugungsmechanismus 34 Geräteteile zur Adressenumsetzung und zur Erzeugung einer Ausnahme (d.h. eines Tests 307), wenn die erforderliche Informationsseite nicht in der Hauptspeichereinheit 15 ist, und enthält einen Software- Programmteil als Teil des Operationssystems zum Übertragen von Informationsseiten zwischen dem Haupt- bzw. Massenspeichergerät und der Hauptspeichereinheit. Der Adressen-Erzeugungsmechanismus 34 erzeugt dann, wenn eine Seite von Daten- und Befehlselementen in die Hauptspeichereinheit 15 übertragen wird, zugehörige Seitentabelleneinträge in dem Hauptspeicher 15, wobei das gegenwärtig ausführende Programm alle Seiten von Daten- und Befehlselementen (die zu virtuellen Adressen gehören) identifizieren kann, die in der Hauptspeichereinheit 15 gespeichert sind, und kann daher einen Seitenfehler aufzeigen, wenn das zugehörige Daten- oder Befehlselement nicht in der Hauptspeichereinheit 15 ist. Wie es in Fig. 3 gezeigt ist, enthält die Datenverarbeitungseinheit typischerweise Verfahren, die zu der Technik des virtuellen Adressierens gehören, wie beispielsweise das Gerät zum Anzeigen, daß die erforderliche Informationsseite nicht in der Hauptspeichereinheit ist, wie auch die Programme zum Antworten auf einen Seitenfehler durch Wiederhervorholen der fehlenden Informationsseite.
  • Das Operationssystem ändert die Seitentabelleneinträge als Teil der Speicherverwaltungsfunktion. Das Operationssystem kann das gültige Bit setzen oder löschen, das Seitenzahl-Feld ändern, wenn die Seiten zu und von externen Speichermedien bewegt werden, oder die Software-Bits ändern.
  • Die vorliegende Erfindung ist auf ein Gültigmachen gerichtet, daß ein bestimmter Zugriffstyp auf einen spezifischen Satz von Information von einem bestimmten Zugriffsmodus zugelassen ist. Ein Zugriff zu jedem Satz von Information (d.h. einer Seite) wird durch einen Schutzcode gesteuert, der für jeden Zugriffsmodus (Kernel oder Anwender) bestimmt, ob Lese- oder Schreibreferenzen zugelassen werden. Die zentrale Verarbeitungseinheit hat die folgende Information verfügbar, um einen versuchten Zugriff zu steuern. Die virtuelle Adresse, die zum Indizieren von Seitentabellen verwendet wird, der Typ eines beabsichtigten Zugriffs (d.h. Lesedaten, Schreibdaten oder Holen eines Befehls) und der gegenwärtige Zugriffsmodus (von dem Prozessor-Zustandsregister) sind verfügbar, um den Zustand der zentralen Verarbeitungseinheit zu definieren. Wenn der Zugriff auf die Seitentabelle zugelassen wird (d.h. der Seitentabelleneintrag stimmt mit dem Zustand des Typs des beabsichtigten Zugriffs der zentralen Verarbeitungseinheit überein), kann eine virtuelle Adresse dazu gebracht werden, einer physikalischen Adresse zu entsprechen.
  • Bei dem bevorzugten Ausführungsbeispiel wird jede Seite im virtuellen Adressenraum gemäß seiner Anwendung geschützt. Ein Programm kann daher davon abgehalten werden, von Teilen seines Adressenraums zu lesen oder in sie zu schreiben. Zu jeder Seite gehört ein Schutzcode, der die Zugriffsmöglichkeit jedes Operationsmodus des Datenverarbeitungssystems beschreibt. Die Code-Implementierung erlaubt eine Auswahl eines Lese- oder Schreibschutzes für jeden Modus der zentralen Verarbeitungseinheit. Jeder Verarbeitungseinheitsmodus kann ein Lese/Schreib-, ein Nur-Lese- oder kein Zugriff sein. Die Lese- und Schreib- Zugriffsmöglichkeit werden unabhängig voneinander bestimmt. Der Schutzmodus jedes Modus kann unabhängig bestimmt werden. Eine Seite kann als Ausführung nur durch Einstellen des Lesefreigabe-Bits auf den Zugriffsmodus und durch Einstellen des Fehler-beim-Lesen- und des Fehler-beim-Schreiben-Feldes im Seitentabelleneintrag bestimmt werden. Der Fehler-beim-Ausführen-Modus zusammen mit den geeigneten Zugriffssignalen können das Datenverarbeitungssystem davon abhalten, zu versuchen, Datenelemente auszuführen.
  • Insbesondere haben die Skalar- und Vektoroperations-Adressen- Erzeugungseinheiten Information verfügbar, die die bestimmte Operation beschreibt, für die die Datengruppe gerade erforderlich ist. Bei Information bezüglich der Zugriffsmöglichkeit der Datengruppe wie auch der Operation, für die die Datengruppe beabsichtigt war, ist folgender Schutz verfügbar:
  • 1. Zugriffsschutz (UWE, URE, KWE, KRE)
  • 2. Modifizierte Daten (UWE, KWE, FOW. Ein versuchtes Schreiben resultiert im gerade eingegebenen geeigneten Operationssystem-Programm, das ein Software-definiertes Modifizierbit einstellt.
  • 3. Kopieren oder Modifizieren (UWE, KWE, FOW. Ein versuchtes Schreiben resultiert in einem gerade eingegebenen Operationssystem-Programm, das die Seite kopiert).
  • 4. Nur Lesen (URE, KRE, FOW, FOE)
  • 5. Nur Schreiben (UWE, KWE, FOR, FOE)
  • 6. Nur Ausführen (URE, KRE, FOR, FOW)
  • 7. Geschützter Eintrag im Operationssystem (URE, KRE, FOR, FOE)
  • Das ASM-(Adressenraumübereinstimmung)-Feld erzeugt ein Bit, das dann, wenn es gesetzt ist, das Verwenden der ausgewählten Adresse im Umsetzungspuffer zuläßt, wenn das Umsetzungspufferstellen-Erkennungsfeld mit der virtuellen Adresse übereinstimmt. Wenn das ASM-Feld nicht eingestellt ist, dann muß ein zusätzliches Feld, das ASN-Feld, das sowohl zu der Umsetzungspufferstelle als auch zu der virtuellen Adresse gehört, identisch sein.
  • Bei einigen Anwendungen kann es nützlicher sein, eine Adresse in einem Cachespeicher der virtuellen Adresse zuzuordnen, als der physikalischen Adresse. In bestimmten Situationen kann das Verwenden virtueller Adressen durch die Cachespeichereinheit zu fehlerhaften Datengruppen-Identifizierungen führen (eine physikalische Adresse mit mehr als einer virtuellen Adressentabelle). Die DCV-Bit- Position bestimmt, ob zu einer virtuellen Adresse gehörigen Daten erlaubt wird, dem Cachespeicher zugeordnet zu werden, der ein virtuelles Adressieren verwendet.
  • Die vorangehende Beschreibung stellt die Operation des bevorzugten Ausführungsbeispiels dar und hat nicht die Bedeutung, den Schutzumfang der Erfindung zu begrenzen. Der Schutzumfang der Erfindung soll nur durch die folgenden Ansprüche beschränkt sein.

Claims (20)

1. Gerät zum Steuern eines Zugriffs auf gespeicherte Elemente (312) und einer Anwendung von ihnen durch einen Prozessor (11) der Art, die den Zugriff durch Identifizieren eines der Elemente und Anzeigen einer eines Satzes von Anwendungen für das eine Element nachfragt, wobei das Gerät folgendes aufweist:
einen Speicher (15), der eine Vielzahl von Bereichen enthält, von denen jeder viele der Elemente (312) speichert,
einen Speicher für eine Vielzahl von Aufzeichnungen (304), von denen jede einem der Bereiche entspricht und folgendes enthält:
eine Zugriffsinformation (KRE, KWE, URE, UWE), die Zugriffsrechte auf den einen Bereich definiert, und
eine Anwendungsinformation (FOR, FOW, FOE), die eine oder mehrere der Anwendungen des Satzes von Anwendungen für die in dem einen Bereich gespeicherten Elemente bestimmt,
gekennzeichnet durch:
eine Steuerung (303) zum Antworten auf eine der Anfragen durch Verwenden der Aufzeichnung (304), die dem Bereich entspricht, in dem das in der Anfrage identifizierte Element gespeichert ist, um:
dem Prozessor (11) basierend auf der Zugriffsinformation selektiv Zugriff auf den Bereich zu gewähren, und
wenn der Zugriff gewährt ist, eine Anwendung des Elementes durch den Prozessor basierend auf der Anwendungsinformation und der in der Anfrage angezeigten Anwendung zu regeln.
2. Gerät nach Anspruch 1, wobei der Prozessor (11) eine Vielzahl von Betriebsarten aufweist, wobei die Zugriffsinformation (KRE, KWE, URE, UWE) für jede der Arten definiert, ob dem Prozessor ein Zugriff auf den Bereich erlaubt ist, wobei die Steuerung geeignet ist, die Anfrage zu bestreiten und ein Zugriffsverbot (452) zu erzeugen, bis die Betriebsart des Prozessors eine ist, die die Information als eine Art definiert, für die ein Zugriff auf den Bereich erlaubt ist.
3. Gerät nach Anspruch 2, wobei die Steuerung geeignet ist, die Anfrage ungeachtet der Anwendung zu bestreiten, die in der Anfrage angezeigt ist, bis die Betriebsart des Prozessors eine ist, die die Information als eine Art definiert, für die ein Zugriff auf den Bereich erlaubt ist.
4. Gerät nach Anspruch 1, wobei die Anwendungsinformation (FOR, FOW, FOE) keine, einige oder alle der Anwendungen bestimmen kann, wobei die Steuerung geeignet ist, ein Ausnahmeprogramm hervorzurufen, wenn die Anwendung, die in der Anfrage angezeigt ist, unterschiedlich von der Anwendung ist, die durch die Anwendungsinformation bestimmt ist.
5. Gerät nach Anspruch 4, wobei das Ausnahmeprogramm veranlaßt, daß dem Prozessor die Anwendung bestritten wird, die in der Anfrage angezeigt ist.
6. Gerät nach Anspruch 4, wobei das Ausnahmeprogramm dem Prozessor erlaubt, die Anwendung durchzuführen, die in der Anfrage angezeigt ist, aber veranlaßt, daß ein Betriebssystem darüber informiert wird, daß die Anwendung, die in der Anfrage angezeigt ist, versucht worden ist.
7. Gerät nach Anspruch 1, wobei die Elemente unterschiedliche Typen von Elementen umfassen und die Anwendungsinformation (FOR, FOW, FOE) die eine oder die mehreren der Anwendungen des Satzes von Anwendungen basierend auf den Elementtypen bestimmt, wobei die Steuerung die Anwendung des Elementes, das in jeder der Anfragen identifiziert ist, durch selektives Gewähren oder Bestreiten der Anwendung, die in der Anfrage angezeigt ist, basierend auf dem Typ des identifizierten Elementes und der Anwendungsinformation regelt.
8. Gerät nach Anspruch 7, wobei die Typen von Elementen Datenelemente und Befehlselemente enthalten, wobei die Steuerung geeignet ist, die Anwendung zu bestreiten, die in der Anfrage angezeigt ist, wenn das Element, das in der Anfrage identifiziert ist, ein Befehlselement ist, bis die Anwendung, die in der Anfrage angezeigt ist, eine Ausführung ist.
9. Gerät nach Anspruch 1, wobei die Bereiche Seiten eines virtuellen Speichers umfassen.
10. Gerät nach Anspruch 9, wobei jede einzelne der Aufzeichnungen (304) einen Seitentabelleneintrag (400) für eine Seite umfaßt, der die Aufzeichnung entspricht, wobei die Zugriffsinformation (KRE, KWE, URE, UWE) und die Anwendungsinformation (FOR, FOW, FOE) in Feldern (402-408) des Seitentabelleneintrags (400) enthalten sind.
11. Gerät nach Anspruch 1, wobei der Prozessor (11) geeignet ist, selektiv in einem Benutzermodus oder einem Kernelmodus zu arbeiten, wobei die Zugriffsinformation (KRE, KWE, URE, UWE) die Zugriffsrechte für jeden einzelnen der Moden definiert, wobei die Steuerung den Zugriff zu den gespeicherten Elementen gemäß dem Modus, in dem der Prozessor arbeitet, und gemäß der Zugriffsinformation für den Modus selektiv gewährt.
12. Gerät nach Anspruch 1, wobei die gespeicherten Elemente Befehlselemente enthalten und eine der Anwendungen des Satzes von Anwendungen eine Ausführung ist, wobei die Steuerung geeignet ist, auf eine der Anfragen, die ein Befehlselement identifiziert, durch Verwenden der Anwendungsinformation zu antworten, um den Prozessor davon abzuhalten, das Befehlselement zu verwenden, bis die Anwendung, die in der Anfrage angezeigt ist, eine Ausführung ist.
13. Gerät nach Anspruch 1, wobei der Prozessor (11) eine Cache-Speichereinheit (27) enthält, wobei das Gerät weiterhin eine Adreß-Steuerung, die auf eine Adreßinformation in jeder der Aufzeichnungen antwortet, zum Adressieren von Elementen in der Cache-Speichereinheit aufweist.
14. Gerät nach Anspruch 1, wobei der Prozessor (11) eine Vielzahl virtueller Adressen (502) für die Elemente erzeugt, und eine erste Adreßraumzahl, die zu jeder der virtuellen Adressen gehört, wobei das Gerät weiterhin folgendes aufweist:
einen Umsetzungspuffer (506) zum Umsetzen der virtuellen Adressen in physikalische Adressen, wobei der Umsetzungspuffer eine zweite Adreßraumzahl aufweist, die jeder umzusetzenden virtuellen Adresse entspricht; und
einen Komparator, der für jede durch den Umsetzungspuffer umzusetzende virtuelle Adresse die erste Adreßraumzahl, die der virtuellen Adresse entspricht, mit der entsprechenden zweiten Adreßraumzahl in Antwort auf eine Adreßraumzahl-Information in der Aufzeichnung vergleicht, wobei der Umsetzungspuffer verwendet wird, um eine virtuelle Adresse nur dann umzusetzen, wenn der Komparator bestimmt, daß entsprechende erste und zweite Adreßraumzahlen identisch sind.
15. Gerät nach Anspruch 1, wobei die Aufzeichnung (400) eine Information (DCV) enthält, die identifiziert, ob die Elemente in dem Bereich, der der Aufzeichnung entspricht, in einem virtuellen Cache gespeichert werden können.
16. Gerät nach Anspruch 1, wobei die Steuerung geeignet ist, ein Betriebssystem zu informieren, wenn eine der Anfragen eine ausgewählte oder mehrere der Anwendungen des Satzes von Anwendungen anzeigt, die durch die Anwendungsinformation in der Aufzeichnung bestimmt sind, die dem Bereich entspricht, in dem das Element, das in der Anfrage identifiziert ist, gespeichert ist.
17. Gerät nach Anspruch 1, wobei der Datenprozessor einen Benutzer-Betriebsmodus zum Ausführen nichtprivilegierter Befehle und einen Kernel-Betriebsmodus zum Ausführen nichtprivilegierter und privilegierter Befehle aufweist, und wobei der Satz von Anwendungen ein Lesen und Schreiben enthält, wobei die Zugriffsinformation für jeden der Bereiche in einem Zugriffsfeld in der Aufzeichnung (400) enthalten ist, die dem Bereich entspricht, wobei das Zugriffsfeld folgendes aufweist:
eine erste Feldposition (404), die einen Lesezugriff für den Benutzermodus freigibt;
eine zweite Feldposition (405), die einen Schreibzugriff für den Benutzermodus freigibt;
eine dritte Feldposition (402), die einen Lesezugriff für den Kernel-Modus freigibt; und
eine vierte Feldposition (403), die einen Schreibzugriff für den Kernel-Modus freigibt.
18. Gerät nach Anspruch 1, wobei die Anwendungsinformation für jeden der Bereiche in einem Anwendungsfeld in der Aufzeichnung (400) enthalten ist, die dem Bereich entspricht, wobei das Anwendungsfeld folgendes aufweist:
eine erste Feldposition (407) zum Anzeigen eines Fehlers, wenn der Prozessor eine Schreiboperation anfragt;
eine zweite Feldposition (406) zum Anzeigen eines Fehlers, wenn der Prozessor eine Leseoperation anfragt; und
eine dritte Feldposition (408) zum Anzeigen eines Fehlers, wenn der Prozessors eine Ausführungsoperation anfragt.
19. Gerät nach Anspruch 1, wobei jede der Aufzeichnungen (400) eine Gültigkeitsinformation (V) enthält, die das Vorhandensein gültiger gespeicherter Elemente in dem entsprechenden Bereich in dem Speicher anzeigt.
20. Verfahren zum Steuern eines Zugriffs auf und einer Anwendung von gespeicherten Elementen (312) durch einen Prozessor (11) der Art, die den Zugriff durch Identifizieren eines der Elemente und Anzeigen einer eines Satzes von Anwendungen für das eine Element anfragt, wobei das Verfahren folgendes aufweist:
Vorsehen eines Speichers (15), der eine Vielzahl von Bereichen enthält, von denen jeder viele der Elemente (312) speichert,
Speichern einer Vielzahl von Aufzeichnungen (304), von denen jede einem der Bereiche entspricht und folgendes enthält:
eine Zugriffsinformation (KRE, KWE, URE, UWE), die Zugriffsrechte auf den einen Bereich definiert, und
eine Anwendungsinformation (FOR, FOW, FOE), die eine oder mehrere der Anwendungen des Satzes von Anwendungen für die in dem einen Bereich gespeicherten Elemente bestimmt,
und gekennzeichnet ist durch:
Antworten auf eine der Anfragen durch Verwenden der Aufzeichnung, die dem Bereich entspricht, in dem das Element, das in der Anfrage identifiziert ist, gespeichert ist, um:
dem Prozessor (11) basierend auf der Zugriffsinformation selektiv Zugriff auf den Bereich zu gewähren, und
wenn der Zugriff gewährt wird, eine Anwendung des Elementes durch den Prozessor basierend auf der Anwendungsinformation und der in der Anfrage angezeigten Anwendung zu regeln.
DE3853104T 1987-07-01 1988-06-30 Vorrichtung und Verfahren für den Hauptspeicherschutz mit Verwendung von Zugriffs- und logischen Fehlersignalen. Expired - Lifetime DE3853104T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US6929087A 1987-07-01 1987-07-01

Publications (2)

Publication Number Publication Date
DE3853104D1 DE3853104D1 (de) 1995-03-30
DE3853104T2 true DE3853104T2 (de) 1995-10-26

Family

ID=22087981

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3853104T Expired - Lifetime DE3853104T2 (de) 1987-07-01 1988-06-30 Vorrichtung und Verfahren für den Hauptspeicherschutz mit Verwendung von Zugriffs- und logischen Fehlersignalen.

Country Status (10)

Country Link
EP (1) EP0297891B1 (de)
JP (1) JPH07120318B2 (de)
KR (1) KR960014827B1 (de)
CN (1) CN1016830B (de)
AU (1) AU618268B2 (de)
BR (1) BR8803376A (de)
CA (1) CA1308812C (de)
DE (1) DE3853104T2 (de)
IE (1) IE68308B1 (de)
IN (1) IN169635B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0425771A3 (en) * 1989-11-03 1992-09-02 International Business Machines Corporation An efficient mechanism for providing fine grain storage protection intervals
DE19709975C2 (de) * 1997-03-11 1999-04-22 Siemens Ag Mikrocomputer
US6529905B1 (en) 2000-01-11 2003-03-04 Frontline Solutions, Inc. Method and system for allowing multiple users to edit a hierarchical data structure
US7444668B2 (en) * 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
US7487448B2 (en) * 2004-04-30 2009-02-03 Microsoft Corporation Document mark up methods and systems
GB2482700A (en) * 2010-08-11 2012-02-15 Advanced Risc Mach Ltd Memory access control
CN102375801A (zh) * 2011-08-23 2012-03-14 孙瑞琛 一种多核处理器存储系统装置及方法
KR101964605B1 (ko) * 2017-06-16 2019-04-02 최영환 순간 저탕식 구조를 갖는 전기 온수기
CN112558861B (zh) * 2020-09-29 2023-03-10 北京清微智能科技有限公司 一种面向多核处理器阵列的数据加载和存储系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4038645A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Non-translatable storage protection control system
JPS57195394A (en) * 1981-05-23 1982-12-01 Nippon Telegr & Teleph Corp <Ntt> Memory protection system by processor

Also Published As

Publication number Publication date
AU618268B2 (en) 1991-12-19
AU1863888A (en) 1989-01-05
JPH07120318B2 (ja) 1995-12-20
EP0297891A3 (de) 1992-03-18
IE68308B1 (en) 1996-06-12
IN169635B (de) 1991-11-23
KR890002777A (ko) 1989-04-11
CA1308812C (en) 1992-10-13
DE3853104D1 (de) 1995-03-30
BR8803376A (pt) 1989-01-24
JPH0192856A (ja) 1989-04-12
EP0297891A2 (de) 1989-01-04
CN1030654A (zh) 1989-01-25
IE881986L (en) 1989-01-01
CN1016830B (zh) 1992-05-27
KR960014827B1 (en) 1996-10-21
EP0297891B1 (de) 1995-02-22

Similar Documents

Publication Publication Date Title
DE3889816T2 (de) Virtuelle Ein/Ausgabebefehle.
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
DE3587694T2 (de) Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher.
DE68923627T2 (de) Steuerungsverfahren und -vorrichtung für Nullursprungsdatenräume.
DE112009000344B4 (de) Zugriffsrechte auf eine Speicher-Map
DE3587039T2 (de) Computer mit virtuellem maschinenmodus und mehrfachen schutzringen.
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE3689287T2 (de) Datenverarbeitungsgerät.
DE69029504T2 (de) Verfahren zum Übersetzen und Kopieren von Adressen
DE3689209T2 (de) Direkte Ein-- und Ausgabe in einer virtuellen Speicheranordnung.
DE68921775T2 (de) Prozessorssimulation.
DE68924720T2 (de) Verfahren und Vorrichtung für Zugriffsrechtensteuerung.
DE2350884C2 (de) Adreßumsetzungseinheit
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE3853759T2 (de) Datenprozessor mit zwei Betriebsmoden.
EP0319134A2 (de) Zugriff auf einen geschützten Speicher
DE68924546T2 (de) Verfahren und Vorrichtung zur Ausführung von Befehlen für ein Vektorverarbeitungssystem.
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
DE3750806T2 (de) Eingeschlossene Domänenadressierung.
DE3587031T2 (de) Zugriffpruefungseinrichtung fuer digitale datenverarbeitungsanordnung, welche einen speicher mit seitenabruf hat.
DE3853104T2 (de) Vorrichtung und Verfahren für den Hauptspeicherschutz mit Verwendung von Zugriffs- und logischen Fehlersignalen.
DE69231278T2 (de) Anwendungs-software für hardware-unterbrechungen.
DE68927306T2 (de) Emulationssystem, fähig zur Anpassung an Mikrorechner mit verschiedenen On-Chip-Speicherkapazitäten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN