DE3688978T2 - Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen. - Google Patents

Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen.

Info

Publication number
DE3688978T2
DE3688978T2 DE86907117T DE3688978T DE3688978T2 DE 3688978 T2 DE3688978 T2 DE 3688978T2 DE 86907117 T DE86907117 T DE 86907117T DE 3688978 T DE3688978 T DE 3688978T DE 3688978 T2 DE3688978 T2 DE 3688978T2
Authority
DE
Germany
Prior art keywords
pmmu
address
register
access
descriptor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE86907117T
Other languages
English (en)
Other versions
DE3688978D1 (de
Inventor
Michael Cruess
William Keshlear
William Moyer
John Zolnowsky
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of DE3688978D1 publication Critical patent/DE3688978D1/de
Application granted granted Critical
Publication of DE3688978T2 publication Critical patent/DE3688978T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

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

    Hintergrund der Erfindung
  • In manchen Datenbearbeitungs-Systemen mit "virtuellem Speicher" wird eine Seitenspeicher-Verwaltungseinheit (paged memory management unit PMMU) benutzt, um einen Logischen Abschnitt einer durch einen Prozessor geschaffenen Adresse für einen Speicher über einen Adreßbus in einen entsprechenden Abschnitt einer Physikalischen Adresse zu übersetzen. Oft ist der PMMU ein Übersetzungs-Cache (schneller Hilfsspeicher) zugeordnet, der eine Vielzahl von Speicherplätzen zum Speichern letzthin benutzter Übersetzungsworte umfaßt. In Reaktion auf jede durch den Prozessor geschaffene Logische Adresse sucht die PMMU den Übersetzungs-Cache für ein entsprechendes Logisch/Physikalisches Übersetzungswort. Wenn keines gefunden wird, wird der Prozessor angeleitet, den Zugriffzyklus abzubrechen und den Systembus zu lösen, so daß die PMMU auf eine Reihe von in dem Speicher bespeicherten Übersetzungswort-Tabellen Zugriff nehmen kann, um das richtige Logisch/Physikalische Adressen-Übersetzungswort zu bestimmen und es in den Übersetzungs-Cache einzuschreiben. Wenn daraufhin der Prozessor den abgebrochenen Zugriff-Zyklus neu startet, benutzt die PMMU das neue Übersetzungswort in dem Übersetzer-Cache, um die richtige Physikalische Adresse zur Weitergabe an den Speicher zu bestimmen. Wenn der Prozessor wieder auf eine Logische Adresse in der gleichen Logischen Seite Zugriff nimmt, benutzt die PMMU das Übersetzungswort in dem Übersetzungs-Cache wieder.
  • Bei einfachen virtuellen Speichersystemen besteht nur ein einziger "logischer Adreßraum", der des gegenwärtig in dem Prozessor in Ausführung begriffenen Programms. Da die PMMU nur zu einer einzigen Reihe von Übersetzer-Tabellen Zugriff hat, werden die gleichen Schutz- und Übersetzungskriterien bei allen durch das Programm unternommenen Zugriffen angewendet. Bei manchen Anwendungen ist es jedoch erwünscht, unterschiedliche Schutz- oder Übersetzungs-Kriterien für gewisse breite Klassen von Zugriffen zu schaffen, die durch das Programm benutzt werden können.
  • Bei einigen virtuellen Speichersystemen ist eine Vielzahl von separaten und bestimmten "Adreßräumen" vorgesehen, und nötigenfalls bestimmten Programmen zugeordnet. Beispielsweise schafft in US 4 430 705 der Prozessor eine "Adreßraumzahl" zusammen mit jeder Logischen Adresse, so daß die PMMU den auf den diesem Adreßraum zugeordnete Programm zutreffenden Satz von Übersetzungs-Tabellen zugreifen kann. Damit können unterschiedliche Schutz- und/oder Übersetzungs-Kriterien in angemessener Weise an jeden unterschiedlichen Adreßraum angelegt werden. Da andererseits jedes Programm typischerweise nur einem einzigen Adreßraum zugeordnet ist, gibt es immer noch keinen Weg, unterschiedliche Schutz- oder Übersetzungs-Kriterien anzuwenden in Abhängigkeit von der Zugriffart, die durch ein bestimmtes Programm getätigt wird.
  • Bei anderen virtuellen Speichersystemen sind nicht nur unterschiedliche Adreßräume den Überwacher- und Benutzerprogrammen zugeordnet, sondern es sind auch getrennte Adreßräume für die Befehle und die Daten jeder dieser Programmkategorien vorgesehen. Beispielsweise sorgt der Prozessor in US 4 084 226 zusammen mit jeder Logischen Adresse für einen "Aufgabenamen", um die PMMU anzuweisen, welcher Adreßraum zum übersetzen dieser Logischen Adresse zu verwenden ist. Während dieser Mechanismus die Benutzung unterschiedlicher Schutz- und/oder Übersetzungs-Kriterien für die Anwendungen zuläßt, die solches erfordern, gibt es für Anwendungen, die dieses Steuerniveau nicht erfordern, keinen Mechanismus, die Adreßraum-Abbildung zu sperren. So ziehen alle Anwendungen automatisch den bei der Adreßraum-Steuerung vorgesehenen Organisationsaufwand auf sich, auch wenn diese Steuerung manchmal gar nicht benötigt wird. Es ist deswegen erwünscht, die PMMU fähig zu machen, wahlweise den Adreßraum-Abbildungsmechanismus freizugeben.
  • Zusammenfassung der Erfindung
  • Deswegen ist es ein Ziel der vorliegenden Erfindung, einen Mechanismus zum wahlweisen Freigeben oder Sperren der Adreßraumabbildung durch eine Seitenspeicher-Verwaltungseinheit (PMMU) zu schaffen.
  • Die vorliegende Erfindung schafft eine Seitenspeicher-Verwaltungseinheit (PMMU) nach Anspruch 1.
  • Kurzbeschreibung der Zeichnung
  • Fig. 1 ist ein Blockschaltbild eines Datenbearbeitungs-Systems mit einer nach einer bevorzugten Ausführung der vorliegenden Erfindung aufgebauten Seitenspeicher-Verwaltungseinheit (PMMU).
  • Fig. 2 ist ein Blockschaltbild der PMMU der Fig. 1.
  • Fig. 3 stellt den Übersetzungstabellen-Durchlaufvorgang der PMMU der Fig. 2 dar.
  • Fig. 4 zeigt die frühe Beendigung des Tabellen- Durchlaufvorgangs der Fig. 3.
  • Fig. 5 stellt den Übersetzertabellengrößen-Gültigkeitsmechanismus des Tabellen-Durchlaufvorgangs der Fig. 3 dar.
  • Beschreibung der Erfindung 1. Zusammenfassung des Betriebs:
  • Bei einem einfachen Datenbearbeitungs-System ist der Prozessor direkt mit dem Speicher verbunden. Es ist keine Speicherabbildung oder Speicherschutz ist erforderlich, da die durch den Prozessor erzeugten Adressen bereits Physikalische Adressen sind. In ausgeklügelteren Systemen ist eine Speicherverwaltungseinheit erforderlich, um die zur Unterstützung des Anforderungs-Seitenbetriebs nötige Abbildungs-Fähigkeit zu schaffen. Bei dem in Fig. 1 gezeigten Datenbearbeitungs- System 10 ist der Adreßbus aufgeteilt in einen von dem Prozessor 14 kommenden Logischen Adreßbus 12 und einen zu dem Speicher 18 gehenden Physikalischen Adreßbus 16, wobei eine Seitenspeicher-Verwaltungseinheit (PMMU) 20 zwischen den Busen 12 und 16 eingesetzt ist. Im allgemeinen ist die PMMU 20 auch an dem Datenbus 22 und den zugehörigen Bussteuersignalen 24 angeschlossen.
  • In der in Fig. 2 gezeigten bevorzugten Form der PMMU 20 speichert ein voll assoziativer Adreßübersetzungs-Cache (Address Translation Cache ATC) 26 eine Vielzahl von beispielsweise 64 zur Zeit verwendeten Übersetzungen von Logikadressen zu Physikalischen Adressen. Während der Adreß-Übersetzung vergleicht der ATC 26 gleichzeitig den Logikadreß- und den Funktionskode an dem Logikadreßbus 12 mit jedem von 64 Einträgen. Wenn ein Eintrag paßt < ein "Treffer") gibt der ATC 26 die gespeicherte Physikalische Adresse nach außen zu dem externen Physikalischen Adreßbus. Wenn keine Ausnahmebedingungen erfaßt werden, teilt die PMMU 90 dann einen Physikalischen Adreßimpuls (PAS) zu, um dem Speicher 18 anzuzeigen, daß die Physikalische Adresse gültig ist.
  • Zusätzlich zu den Logischen und den Physikalischen Adressen enthält jeder Eintrag in ATC 26 auch Bits zum Ausführen einer externen Daten-Cache-Sperre und gewisser Schreibschutz-Funktionen. Wenn angemessen, kann der ATC 26 ausgewählte Einträge verriegeln, um zu garantieren, daß die entsprechenden Adressen immer treffen. Ein Warn-Mechanismus ist vorgesehen, um das Verriegeln aller Einträge in dem ATC 26 zu verhindern.
  • Um eine verbesserte Cache-Verwendung zu schaffen, hat die PMMU 20 die Fähigkeit, Einträge für Mehrfachaufgaben gleichzeitig in den ATC 26 zu speichern. Um dies zu vollbringen, besitzt der ATC 26 zusätzliche Bits in dem Logikadreßabschnitt des Cache-Eintrages. Dieses Feld wird die "task alias (Aufgaben-Parallelbezeichnung)" genannt und benutzt, um zu bestimmen, ob ein Treffer erfolgt. Die PMMU 20 enthält auch eine Wurzelzeiger-Tabelle (Root Pointer Table RPT) 28, welche zur Zeit benutzte Werte des CPU-Wurzelzeiger-(CRP-)Registers enthält. Wenn das CPU-Wurzelzeiger-Register mit einem neuen Wert beladen wird, wird in der RPT 28 ein Eintrag gemacht, ein task-alias-Wert zugeordnet und der ATC 26 von allen Einträgen befreit, die die gleichen task-alias besitzen. Dieser task-alias-Wert wird benutzt als ein Zusatz zur Logischen Adresse. Wenn ein Wert in das CRP-Register eingeladen wird, der sich bereits in der RPT 28 befindet, wird der alte task-alias-Wert benutzt, und der Cache wird nicht befreit ("gespült").
  • Falls der ATC 26 keine Übersetzung für eine Logikadresse besitzt, wirkt eine Mikromaschine 30 mit einer Ausführungseinheit 32 und einiger zugehöriger Steuerlogik 34 während einer Suche oder eines "Durchlaufs" durch die Übersetzungs-Tabellen im Speicher für die korrekte Übersetzung zusammen. Vor dem Einleiten des Suchens unterbricht die Bus-Schnittstellen-Einheit (BIU) 36 jedoch den gerade ablaufenden Buszyklus und entscheidet für die Buse 12, 16 und 22. Die BIU 36 setzt dann Bussteuersignale durch, die die gegenwärtige Busführung veranlassen, den laufenden Buszyklus zu beenden, den Bus zu lösen und auf Wiederholung des abgebrochenen Zyklus zu warten, sobald seine "Bus-Führung" wieder eingesetzt ist. Auf die daraufhin erfolgende Aufnahme der Leitung der Buse, signalisiert BIU 36 der Mikromaschine 30, daß der Tabellendurchlauf vorangehen kann. Nachdem der Tabellendurchlauf vollendet ist, signalisiert die Mikromaschine 30 der BIU 43, die Buse zu lösen.
  • In der bevorzugten Form besitzen die durch die PMMU 20 gestützten Übersetzungs-Tabellen eine Baumstruktur. Auf die Wurzel eines Übersetzungs-Tabellenbaums zeigt eins von drei
  • Wurzelzeiger-Registern: CPU, Ablaufsteuerung oder DMA. Tabelleneinträge an den oberen Pegeln des Baums sind Zeiger zu anderen Tabellen. Einträge in Blatt-Tabellen sind Seitenrahmenzahlen. Alle Adressen in den Übersetzungs-Tabellen sind Physikalische Adressen.
  • Bei der bevorzugten Form kann der Prozessor 14 wahlweise bestimmte für die Mikromaschine 30 verfügbare Steuerinformation initialisieren, um verschiedene Aspekte des Tabellen- Durchgangs zu bestimmen. Z.B. kann, auch wenn die erste Nachschau in der Tabelle normalerweise durch Funktionskode geschieht, dies unter Benutzung eines besonderen Befehlsbits unterdrückt werden. Ein anderes Steuerfeld ist verfügbar, um anzugeben, daß bis zu 15 Logikadreßbits hoher Ordnung während des Tabellendurchgangs zu ignorieren sind. Gewisse andere Steuerfelder sind auch vorgesehen, so daß der Prozessor 14 die Anzahl von Pegeln von 1 bis 4 in der Übersetzungstabelle angeben kann und die Anzahl von Logikadreßbits, bis zu 15, die zum Indexieren in jeden Pegel benutzt werden können.
  • 2. Koprozessor-Schnittstelle:
  • Bei der bevorzugten Form steht der Prozessor 14 mit der PMMU 20 in erster Linie unter Benutzung der in der anhängigen Anmeldung Ser.Nr. 631 518 beschriebenen Koprozessor-Schnittstelle in Verbindung. Im allgemeinen ergibt diese in der Mikromaschine 30 und der BIU 36 ausgeführte Schnittstelle Zugriff zu dem PMMU 20-Programmier-Modell, steuert die Tabellendurchlauf-Funktionen und stützt den Betrieb des virtuellen Speichers. Die Mikromaschine 30 und BIU 36 führt auch die CALLM/RTM-Schnittstelle aus, die in der anhängigen Anmeldung Ser.No. 626 363 beschrieben ist, um Modul-Aufrufe und -Rückläufe und die zugeordnete Zugriffpegel-Überprüfung zu stützen.
  • Entsprechend zu der Schnittstelle für den Koprozessor 14 steht der Prozessor 14 mit der PMMU 20 in Verbindung durch Ausführen von Bus lese- und Schreibvorgängen von/zu einer Reihe von "Busregistern" in der Ausführungseinheit 32. Die BIU 36 bestimmt, daß auf die Busregister zugegriffen wird durch Dekodieren der Logischen Adresse und des Funktionskodes, die während eines Buszyklus dargeboten werden. Falls der Funktionskode einen CPU-Raumzugriff (0111) anzeigt und die angebotene Adresse eine von den in der BIU 36 hart verdrahteten Adressen ist, läßt die BIU 36 Zugriff auf das entsprechende Busregister zu. In diesem Fall wird der Physikalische Adressimpuls (PAS) nicht ausgegeben.
  • Die PMMU 20 enthält zwei Sätze von Busregistern in ihrer Busschnittstelle: Koprozessor-Schnittstellen-Busregister und Zugriffpegelsteuerungs-Busregister. Die Koprozessor-Schnittstellen-Busregister bestehen aus folgenden:
  • Ansprechregister ist ein 16Bit-Register, das durch die PMMU 20 benutzt wird, um vom Prozessor 14 die Ausführung von Funktionen anzufordern, die ausgeführt werden müssen, damit die PMMU 20 den Befehl vervollständigen kann. Die PMMU 20 reagiert immer, wenn auf das Ansprechregister zugegriffen wird; Zugriffe sind immer gültig und keine Protokollverletzung kann erfolgen.
  • Steuerregister ist ein 16Bit-Register, auf das durch den Prozessor zugegriffen wird, um eine Ausnahmeanforderung der PMMU 20 zu quittieren oder einen Befehl der PMMU 20 abzubrechen, der ein illegales Wirksames Adreßfeld enthält. Der Prozessor 14 schreibt eine Maske in das Steuerregister. Eine Maske mit gesetztem Bit 1 quittiert und löscht, wie nachstehend beschrieben, wartende Ausnahmen. Eine Maske mit gesetztem Bit 0 leitet die PMMU 20 an, Bearbeitung des gegenwärtigen Befehls abzubrechen und in den Zustand Leerlauf-Fertig zurückzukehren.
  • Abspeicherregister ist ein 16Bit-Register, welches, wenn es durch den Prozessor gelesen wird, die PMMU 20 veranlaßt, einen Abspeichervorgang wie nachstehend beschrieben zu initiieren. Die durch die PMMU 20 zugeführten Daten sind ein Wort im 16Bit-Format des internen Zustandes des PMMU 20. Der Prozessor 14 liest das Abspeicherregister, bis die PMMU 20 anzeigt, daß sie bereit ist, die Abspeichersequenz zu einzuleiten.
  • Wiederherstellregister ist ein 16Bit-Register, das, wenn durch den Prozessor 14 eingeschrieben wird, die PMMU veranlaßt, unmittelbar jeden aktuellen Betrieb aufzuschieben und einen wie nachstehend beschriebenen Wiederherstellbetrieb vorzubereiten. Die durch den Prozessor 14 zugeführten Daten sinsdt das 16Bit-Formatwort des internen Zustandes des Koprozessors. Nach dem Prüfen des Formatwortes zeigt die PMMU 20 dem Prozessor 14 an, ob das Formatwort gültig ist oder nicht durch Einsetzen eines Kodes in das Ansprech-Register. Zusätzlich kann die PMMU 20 anzeigen, daß die PMMU 20 mit der Vorbereitung zur Wiederherstellung beschäftigt ist oder daß die PMMU 20 für die Übertragung des Restes des Zustandes bereit ist.
  • Betriebswortregister wird in der bevorzugten Form der PMMU 20 nicht verwirklicht.
  • Befehlsregister ist ein 16Bit-Register, in das der Prozessor 14 einen Befehl zum Initiieren einer PMMU 20-Instruktion einschreibt.
  • Bedingungsregister ist ein 16Bit-Register, in den der Prozessor 14 einen Bedingungsauswahlkode einschreibt, um eine durch die PMMU 20 zu bewertende Bedingung zu spezifizieren.
  • Operandenregister ist ein 32Bit-Register, durch welches der Prozessor durch die PMMU 20 angeforderte Datenoperanden überträgt.
  • Registerwähler ist ein 16Bit-Register, durch welches die PMMU 20 dem Prozessor 14 anzeigen kann, welche der verschiedenen Register im Prozessor 14 zu der PMMU 20 zu übertragen sind.
  • Instruktions-Adreßregister wird in der bevorzugten Form der PMMU 20 nicht verwirklicht.
  • Operanden-Adreßregister ist ein 32Bit-Register, das durch den Prozessor benutzt wird, um die Quell- oder die Bestimmungsadresse eines Operanden durchzuleiten, wenn die PMMU 20 solche Information anfordert.
  • In der bevorzugten Form ist der PMMU 20 immer Koprozessor Nummer 0 zugeordnet. Dementsprechend dekodiert die BIU 36 intern Logische Adressen $00020000 bis einschließlich $0002001F, mit einem Funktionskode 0111, als die Koprozessor-Schnittstellen-Busregister. Da jedoch nicht alle diese Register gleichzeitig verfügbar zu sein brauchen, enthält die Ausführungseinheit 32 einen Minimalsatz von Physikalischen Registern, die wie erforderlich benutzt werden, um einen oder mehrere dieser Busregister zu verwirklichen. Die Funktionen dieser Busregister sind in der gleichzeitigen Anmeldung Ser.Nr. 631 518 im Detail beschrieben.
  • Die PMMU 20 verwirklicht vorzugsweise die nachfolgenden Koprozessor-Instruktionen:
  • PMOVE bewegt Daten zu oder von Registern der PMMU 20 unter Benutzung der beim Prozessor 14 verfügbaren Adressierarten. Der Betrieb geschieht in Byte, Wort, Langwort oder Doppellangwort, je nach der Größe des betreffenden Registers der PMMU 20.
  • PVALID prüft die Zugriffniveaubits einer Logischen Operanden-Adresse und führt einen vorzeichenlosen Vergleich mit den Zugriffniveaubits des VAL-Registers aus. Falls die LA-Bits arithmetisch weniger als die VAL-Bits sind, verursacht diese Instruktion ein Trap mit dem Zugriffpegel-Verletzungsvektor.
  • PTEST nimmt eine Logische Adresse und einen zugehörigen Funktionskode, sucht in der ATC 26 oder den Übersetzungs- Tabellen nach einem Eintrag, der diese Adresse übersetzt. Die Ergebnisse dieser Suche sind in dem Statusregister verfügbar. Wahlweise kann die Adresse des zuletzt verwendeten Beschreibers zurückgeführt werden.
  • PLOAD nimmt eine Logische Adresse und einen zugehörigen Funktionskode, durchsucht die Übersetzer-Tabelle und lädt den ATC mit einem Eintrag zum Übersetzen der Adresse.
  • PFLUSH läßt die PMMU 20 den ATC 26 auf verschiedene Weise "spülen": Spülen durch Effektive Adresse < ea> , durch Funktionskode, oder sowohl durch < ea> als auch durch Funktionskode.
  • PFLUSHR läßt das "Spülen" aller Einträge im ATC 26 zu, die einem ungültig zu machenden CPU-Wurzelzeiger-Wert zugeordnet sind. Die so bewertete < ea> wird benutzt, ein Doppellangwort zu holen, der RPT wird nach diesem Wert durchsucht und der ATC "gespült", falls der Wert im RPT gefunden wird.
  • Bedingungsinstruktionen, wie verzweigebedingt und setzbedingt, schafft Tests für die nachfolgenden Bits im Statusregister: B, L, S, A, W, I, G und C. Die Negation der vorstehenden Bedingungen kann auch überprüft werden.
  • PSAVE unterstützt die virtuelle Speicherfähigkeit durch Abspeichern des internen Status der PMMU 20, der sich mit Koprozessorbetrieb befaßt, und der CALLM/RTM-Funktionen.
  • PRESTORE unterstützt auch die virtuelle Speicherfähigkeit durch Wiederherstellen des internen Status der PMMU 20, der mit PSAVE abgespeichert wurde.
  • Alle PMMU 20-Instruktionen sind mit Ausnahme von PVALID privilegiert. Ein Versuch, irgendeine andere PMMU 20-Instruktion durchzuführen, während der Prozessor 14 sich im Benutzerzustand befindet, verursacht eine Koprozessor-Privileg- Ausnahme.
  • Die Zugangssteuerbus-Register erlauben der PMMU 20 die in der schwebenden Anmeldung Ser.No. 626 363 beschriebenen-Instruktionen CALLM und RTM zu unterstützen. Die BIU 36 dekodiert intern die Adressen $00010000 bis $0001005F mit einem Funktionskode 0111 als ihre Zugangsniveau-Steuerbusregister. Die Zugangs-Steuerbus-Register bestehen aus nachfolgenden:
  • Gegenwärtiger Zugriffpegel (CAL) führt, wenn gelesen, den Wert der CAL- und VAL-Register zurück. Wenn geschrieben, werden die Daten verworfen und der Buszyklus wird normal beendet.
  • Zugriffniveau-Status (ALS) führt, wenn gelesen, einen Kode zurück zu den CALLM- und RTM-Instruktionen, der anzeigt, welche Aktion bei einem Modulaufruf oder einer -Rückkehr unternommen werden sollte. Wenn geschrieben, werden die Daten verworfen und der Buszyklus normal beendet.
  • Zugriffpegel erhöhen (IAL) veranlaßt, wenn geschrieben, die PMMU 20, den geschriebenen Wert gegenüber dem aktuellen Zugriffpegel zu überprüfen, um zu bestimmen, ob der neue Wert eine gültige Zugriffniveau-Änderung darstellt. Das Ergebnis dieser Überprüfung wird im ALS-Busregister verfügbar gemacht. Dieses Busregister wird durch die CALLM-Instruktion benutzt.
  • Zugriffniveau vermindern (DAL) veranlaßt, wenn geschrieben, die PMMU 20, den geschriebenen Wert gegenüber dem aktuellen Zugriffniveau zu überprüfen, um zu bestimmen, ob der neue Wert eine gültige Zugriffpegel-Änderung darstellt. Die Ergebnisse dieser Überprüfung werden in dem ALS-Busregister verfügbar gemacht. Dieses Busregister wird durch die RTM-Instruktion benutzt.
  • Beschreiberadressen (DA1-DA8) sind adressierbare Plätze, von denen jeder einen jeweiligen der 8 Funktionskoden darstellt. Wenn eine geschrieben wird, überprüft die PMMU 20 die Logische Adresse und den Funktionskode anhand der Übersetzungs-Tabellen (wie eine PTEST-Instruktion). Die Testergebnisse sind in dem ALS-Register verfügbar.
  • 3. Register der PMMU 20:
  • Bei der bevorzugten Form der PMMU 20 sind verschiedene Register in der Ausführungseinheit 32 vorhanden, die zum Steuern oder Überwachen der Übersetzungs- und Schutzmerkmale der PMMU 20 benutzt werden: Das CPU-Wurzelzeiger-(DRP)-Register, das Überwacher-Wurzelzeiger-(SRP)-Register, das DMA-Wurzelzeiger-(DRP)-Register, das Cache-Status-(CH)-Register, das Übersetzungs-Steuer-(TC)-Register, das Zugriffsteuer-(AC)-Register, das aktuelle Zugriffniveau-(CAL)-Register, das Gültigzugriffniveau-(VAL)-Register, das Stapeländerungs- Steuer-(SCC)-Register und ein Status-(STATUS)-Register.
  • Alle Register der PMMU 20 sind nur für im Überwachungs- (supervisor-)-zustand arbeitende Programme direkt zugänglich, jedoch können gewisse Benutzerinstruktionen in begrenzter Weise auf einige Register zugreifen. Die CALLM- und RTM-Instruktionen können CAL und VAL lesen und ändern. Die PVALID-Instruktion benutzt den Inhalt des VAL-Registers, um zu bestimmen, ob sie ein Trap verursachen soll.
  • Der CPU-Wurzelzeiger (CRP) ist ein 64Bit-Register, das einen Zeiger zu der Wurzel des Übersetzungs-Tabellenbaums für die aktuelle Benutzeraufgabe des Prozessors 14 enthält. In es wird eingeschrieben bei einer Aufgabenänderung, um für die neue Aufgabe auf die Wurzel eines Übersetzungsbaumes zu zeigen. Einschreiben in dieses Register läßt auch das Cache- Status-Register aktualisieren. Der CPU-Wurzelzeiger steht in Wechselwirkung mit der Wurzelzeiger-Tabelle (RPT), um die Benutzung des ATC 26 zu verbessern.
  • Der Überwachungs(supervisor)-Wurzelzeiger (SRP) ist ein 64Bit-Register, welches auf die Wurzel der zum Übersetzen von Supervisorzugriffen zu benutzenden Übersetzer-Tabelle zeigt. Jedoch wird der SRP nur benutzt, wenn das SRE-Bit des Übersetzungs-Steuerregisters gesetzt ist. Nachladen des SRP verursacht ein Spülen aller ATC 26-Einträge, die als Supervisor markiert sind. Falls das SRE-Bit des Übersetzungs-Steuerregisters gelöscht ist, wird das CRP für alle prozessorinitiierten Tabellendurchläufe benutzt.
  • Der DMA Wurzelzeiger (DRP) ist ein 64Bit-Register, das auf die Wurzel der Übersetzungs-Tabelle zeigt, welche benutzt werden kann, wenn ein anderer Logikbusmeister durch die PMMU 20 übersetzt. Die Einträge in dem ATC 26, die geladen sind, wenn ein anderer Busmeister zu übersetzen beginnt, werden als solche markiert. Ein Nachladen dieses Registers verursacht ein Spülen aller ATC 26-Einträge, die unter Benutzung des DRP gebildet wurden.
  • Das Cache-Status-(CS)Register ist ein 16Bit-Register mit dem nachfolgenden Format: UNBENUTZT
  • wobei:
  • F anzeigt, ob Einträge mit dem im TA-Feld gezeigten task-alias-Wert von dem ATC 26 der PMMU 20 gespült wurden.
  • 0 = nicht gespült
  • 1 = gespült
  • LW ein Rastwarnbit, das anzeigt, daß alle Einträge bis auf einen im ATC 26 gerastet wurden. Keine zusätzlichen Einträge werden in den ATC 26 gerastet, bis andere entfernt wurden.
  • 0 = Normalbetrieb
  • 1 = 63 Einträge im ATC 26 gerastet.
  • TA zeigt den aktuellen Wert der internen task alias.
  • Im allgemeinen ist CS dazu vorgesehen, bei der Aufrechterhaltung eines externen Logikdaten-Cache zu unterstützen. Die PMMU 20 hält Aufträge für mehr als eine Aufgabe in dem ATC 26 und einige ihrer internen Daten sind für andere Cache nützlich. Dieses Register wird aktualisiert, wenn das CRP-Register geschrieben wird. Der Inhalt gibt die Ergebnisse der RPT-Suche wieder. Dieses Register kann mit der Instruktion PMOVE gelesen werden.
  • Das Übersetzungs-Steuerregister (TC) ist ein 32Bit-Register mit dem folgenden Format:
  • wobei:
  • E (Enable) Adressenübersetzung freigibt oder sperrt.
  • 0 = gesperrt
  • 1 = freigegeben
  • Bei Freigabe werden eingegebene Logikadressen als Physikalische Adressen ausgegeben. Reset löscht dieses Bit.
  • SRE (Supervisor-Wurzelzeiger-Freigabe) anzeigt, ob Supervisor-Referenzen mit dem SRP übersetzt werden.
  • 0 = Supervisor-Wurzelzeiger gesperrt
  • 1 = Supervisor-Wurzelzeiger freigegeben.
  • Falls der SRP freigegeben ist, wird der (CRP) für Supervisor-Übersetzungen benutzt.
  • FCL (Funktionskode-Nachschau) anzeigt, ob die Tabelle mit oberstem Niveau in dem Übersetzungsbaum mit dem Funktionskode bei Benutzung des CRP oder SRP weitergeschaltet werden sollte.
  • 0 = Funktionskodenachschau gesperrt
  • 1 = Funktionskodenachschau freigegeben.
  • Falls der Funktionskodenachschau unterdrückt ist, wird die erste Nachschau durchgeführt unter Benutzung von Bits von der Logischen Adresse als Index. Falls die Funktionskodenachschau freigegeben ist, wird das für Übersetzungen benutzte LIMIT-Feld des Wurzelzeigers ignoriert. Der Funktionskodenachschau wird immer durchgeführt, wenn der DMA-Wurzelzeiger für Übersetzungen durch einen anderen Busmeister benutzt wird.
  • PS (Seitengröße) die aktuelle Seitengröße zeigt, welche die PMMU 20 unterstützt:
  • 1000 256 Byte
  • 1001 512 Byte
  • 1010 1K Byte
  • 1011 2K Byte
  • 1100 4K Byte
  • 1101 8K Byte
  • 1110 16K Byte
  • 1111 32K Byte.
  • Es wird immer angenommen, daß das Seitengröße-Bit 3 eine 1 ist. Ein Wert 0 in Bit 3 dieses Feldes ist für zukünftige Erweiterungen reserviert. Ein Einschreiben von 0 auf Bit 3 in diesem Feld über die PMOVE-Instruktion läßt eine Gestaltungs-Ausnahme signalisieren.
  • IS (Eingangs-Verschiebung) bestimmt, wieviele obere Logische Adressenbits durch die PMMU 20 während der Tabellendurchschau ignoriert werden. Der Wert dieses Feldes wird als eine ganze Zahl von 0 bis 15 genommen, welche die Anzahl von abzulegenden Bits aus der Logischen Adresse anzeigt, beginnend mit Bit 31. Dadurch kann die PMMU 20 leicht an Systeme angepaßt werden, die Logische Adressen von 17 bis 32 Bits benutzen.
  • TIx (Tabellenindex N) gibt die Anzahl an Bits von Logischen Adressen an, die als ein Index in die Tabellen an jedem Niveau zu benutzen sind. In der bevorzugten Form werden vier Tabellenindices vorgesehen. Die erste Nachschau unter Benutzung von Logischen Adreßbits (welches die zweite sein wird, falls die Nachschau auf Funktionskode nicht unterdrückt wird) benutzt TIA, die zweite TIB usw. Der Wert des Feldes ist eine vorzeichenlose ganze Zahl von 0 bis 15, welche die Anzahl von Bits darstellt, welche von der Logischen Adresse als ein Index zu nehmen sind. Ein 0-Wert in einem TIx-Feld gibt an, daß keine weiteren Tabellen für diese Übersetzung zu benutzen sind.
  • Im allgemeinen enthält TC Steuerbits, um die Seitengröße, die Anzahl von Niveaus in dem Übersetzungsbaum und die Größe der Tabelle bei jedem Niveau einzustellen. Das IS- (Eingangsverschiebungs-)Feld steuert, wieviele obere Logische Adreßbits durch die PMMU 20 am Eingang vor einem Tabellendurchlauf verworfen werden, was es erlaubt, die PMMU 20 leicht Systemen mit Logischen Adressen anzupassen, welche kleiner als 32 Bits sind. Die vier TIx-Felder, TIA (Tabellenindex A), TIB (Tabellenindex B), TIC (Tabellenindex C), und TID (Tabellenindex D) steuern, wieviele Bits der Logischen Adresse benutzt werden, um in die Übersetzungstabellen an jedem Nachschauniveau zu indizieren. Das PS (Seitengröße)-Feld definiert indirekt die Seitengröße dadurch, daß es steuert, wieviele untere Logische Adreßbits als die Seitenversetzung durchzulassen sind. Da in der bevorzugten Form jede Logische Adresse 32 Bits umfaßt, muß die Anzahl der anfangs verschobenen Bits plus die Anzahl der zum Indexieren in jede der Tabellen benutzten Bits plus die Anzahl der Seitenversetzungs- Bits für die richtige Adressen-Übersetzung gleich 32 sein. Dementsprechend führt jedesmal, wenn TC geschrieben wird die PMMU 20 eine Konsistenzüberprüfung der Werte von IS, von TIx und PS aus, wie in Fig. 3 gezeigt, und signalisiert einen Konfigurationsfehler an den Prozessor 14, falls die Summe nicht gleich 32 ist. Wenn erwünscht, kann eines oder können mehrere TIx-Felder Null sein. Jedoch müssen in einem solchen Fall alle nachfolgenden TIx-Felder auch Null sein. Das Schreiben in TC verursacht auch ein Spülen des ATC 26.
  • Das aktuelle Zugriffpegel-(CAL)-Register enthält den kodierten Zugriffpegel für den aktuellen Modul. Das Register ist 8Bit breit, jedoch sind in der bevorzugten Form nur die obersten drei Bits besetzt. Die unbesetzten Bits lesen sich als Nullen. Dieses Register wird automatisch durch die CALLM- und RTM-Instruktionen geladen. Es kann auch mit der PMOVE-Instruktion geladen werden.
  • Das gültige Zugriffpegel-(VAL)-Register enthält den Zugriffpegel für den Aufruf des gegenwärtigen Moduls. Das Register ist 8 Bit breit, es sind jedoch in der bevorzugten Form nur die oberen drei Bits aufgefüllt. Unaufgefüllte Bits lesen sich als Nullen. Dieses Register wird automatisch mit dem Inhalt des CAL-Registers durch die CALLM-Instruktion geladen und von dem Stapelrahmen durch die RTM-Instruktion nachgeladen. Es wird auch durch die PVALID-Instruktion zur Gültigmachung von Parametern benutzt. Es kann auch mit der PMOVE-Instruktion geladen werden.
  • Das Stapeländerungs-Steuer-(SCC)Register ist ein 8Bit-Register, das bestimmt, ob eine Stapeländerung während einer CALLM-Instruktion erfolgen soll.
  • Das Zugriffsteuer-(AC)Register ist ein 16Bit-Register mit dem folgenden Format:
  • wobei:
  • MC (Modulsteuerung), wenn gesetzt, einen Modulbetrieb ermöglicht; falls gelöscht, werden die Module gesperrt, Einschreibungen in IAL und DAL ändern CAL nicht und alles Lesen von ALS kehrt zum illegalen Kode zurück. Das läßt alle CALLM- und RTM-Instruktionen zu trap kommen. Auch die PVALID-Instruktion wird immer eine Ausnahme verursachen.
  • 0 gesperrt
  • 1 freigegeben.
  • ALC (Zugriffpegelsteuerung) bestimmt die Anzahl der oberen Bits der Logischen Adresse, die als Zugriffpegel-Information benutzt werden, und ob Zugriffpegel freigegeben sind. Das Feld wird kodiert als:
  • 00 keine Adreßbits: Zugriffpegel gesperrt
  • 01 ein Adreßbit: 2 Zugriffpegel von jeweils 2 31 Byte
  • 10 zwei Adreßbits: 4 Zugriffpegel von jeweils 2 30 Byte
  • 11 drei Adreßbits: 8 Zugriffpegel von jeweils 2 29 Byte.
  • Dieses Feld wird bei einem Reset auf 00 initialisiert.
  • GS (Gate-Größe) bezeichnet die Größe von Gates und demzufolge die Grenze, bei der ein Gate zu Fallen zugelassen ist. Das Feld ist wie folgt kodiert:
  • 00 keine Gates gültig
  • 01 Gates sind 16 Bytes
  • 10 Gates sind 32 Bytes
  • 11 Gates sind 64 Bytes.
  • Im allgemeinen wird das AC-Register benutzt, verschiedene Zugriffsteuerungen zu konfigurieren, welche die PMMU 20 unterstützt. Das Register steuert, ob die Zugriffpegel freigegeben werden, wieviele obere Adreßbits Zugriffpegel-Information enthalten (bis maximal 3) und bezeichnet auch die Größe eines Gates und demzufolge die Grenze, bei dem ein Gate zu Fallen zugelassen ist.
  • Das Status (STATUS)-Register ist ein 16Bit-Register mit dem folgenden Format:
  • wobei:
  • B (Bus-Fehler) gesetzt wird, wenn ein Bus-Fehler während des Tabellen-Durchlaufs zur PMMU 20 zurückgeführt wird.
  • L (Grenzwert-Verletzung) gesetzt wird, wenn ein Index eine Grenzwert bei dem Test überschreitet; sonst gelöscht.
  • S (Supervisor-Verletzung) gesetzt wird, wenn eine Supervisor-Verletzung erfaßt wurde; sonst gelöscht.
  • A (Zugriffpegel-Verletzung) gesetzt wird, wenn der geprüfte Zugriff RAL verletzte, wenn gelesen wurde, oder WAL oder RAL überschritt, wenn geschrieben wurden; sonst gelöscht.
  • W (Schreibschutz) gesetzt wird, wenn die Adresse nicht überschreibbar ist; sonst gelöscht.
  • I (ungültig) gesetzt wird, wenn die Adresse keine Übersetzung in der Tabelle besitzt; sonst gelöscht.
  • M (modifiziert) gesetzt wird, wenn die Adresse im Cache gefunden wurde und das M-Bit gesetzt hat.
  • G (Gate) gesetzt wird, wenn die Adresse eine gültige Gate-Adresse ist.
  • C gesetzt wird, wenn die Adresse global anteilfähig markiert ist.
  • N (Zahl) auf die Anzahl von bei der Übersetzung einer Adresse benutzten Tabellen gesetzt wird.
  • Im allgemeinen enthält Status Information, welche den Status der PMMU 20 betrifft, und wird nur durch die PTEST-Instruktion beeinflußt. Die Bits wirken jedoch in der folgenden Weise aufeinander ein: Falls B gesetzt, dann ist I gesetzt und L, S, A, G und C sind gelöscht; oder wenn L gesetzt ist, ist auch I gesetzt und S, A, G und C sind gelöscht. Die unterschiedlichen Fälle haben, wenn sie gesetzt sind, typischerweise die folgenden Implikationen:
  • B Schlechter Zeiger beim Tabellen/Hauptspeicher-Versagen
  • L Adressierfehler durch Aufgabe/Anforderung für Stapelerweiterung
  • S Versuch des Benutzers, Supervisorkode auszuführen
  • A Versuch, den Zugriffpegel zu überschreiten
  • W Versuch, in geschützten Speicher zu schreiben
  • I Seitenfehler
  • 4. Zugriffschutz:
  • Die PMMU 20 schafft Mechanismen, Kode und Daten gegen unauthorisierten Zugriff zu schützen, um bei unterschiedlichen Zugriffpegeln laufenden Koden unterschiedliche Speicherprivilegien zuzulassen und Änderungen im Zugriffpegel zu steuern.
  • Im allgemeinen ergeben Zugriffpegel ein Mittel, unterschiedlichen Abschnitten einer Benutzeraufgabe unterschiedliche Privilegien zu dem Raum der Logischen Adresse zuzulassen. Bei der bevorzugten Form unterstützt die PMMU 20 Zugriffpegel 0, 2, 4 oder 8. Dies wird durch das ALC-Feld des AC-Registers gesteuert. Die in diesem Feld gesetzten Werte haben die folgenden Auswirkungen:
  • 00 Keine Zugriffpegel. Kein Buszyklus-Privileg geprüft gegen CAL. Keine Stapeländerung auf CALLM-Instruktionen angefordert.
  • 01 2 Zugriffpegel. Bit 31 der Logischen Adresse, Bit 7 von CAL und Bit 7 von VAL sind die Zugriffpegel-Bits. Bit 0 des SCC-Registers wird benutzt.
  • 10 4 Zugriffpegel. Bits 31-30 der Logischen Adresse. Bits 7-6 von CAL und Bits 7-6 von VAL sind die Zugriffpegel-Bits. Bits 0, 2 und 4 des SCC-Registers werden benutzt.
  • 11 8 Zugriffpegel. Bits 31-29 der Logischen Adresse, Bits 7-5 von CAL und Bits 7-5 von VAL sind die Zugriffpegel-Bits. Bits 0-6 des SCC-Registers werden benutzt.
  • Jeder Buszyklus-Lauf durch den Logischen Busmeister wird durch die PMMU 20 auf ausreichendes Privileg überprüft. Das wird dadurch erledigt, daß (ohne Vorzeichen) die Zugriffpegel-Bits der Logischen Adresse mit den Zugriffpegel-Bits des gültigen Zugriffpegel-(CAL)-Registers verglichen werden. Falls die ankommenden Adreßbits geringer als die CAL-Bits sind, mittels eines numerischen ohne Vorzeichen-Berücksichtigung durchgeführten Vergleichs festgestellt, und die Funktionskode einen Benutzer-Raumzugriff anzeigen, fordert der Buszyklus ein Privileg an, das die Routine nicht hat. In diesem Fall beendet die PMMU 20 den Buszyklus durch Ausgabe des BERR-Signals. Falls die Referenz zum Supervisorraum gehört, wird diese Überprüfung nicht durchgeführt. Es sei bemerkt, daß eine Aufgabe Adressen erzeugen kann, für die sie nicht den Benutzungszugriff besitzt, und daß gültige Übersetzungen in dem ATC 26 von höher privilegierten Routinen übrig sind. Die Überprüfung garantiert in diesen Fällen Schutz.
  • Die PMMU 20 enthält Unterstützung für Modulaufrufe mit den Rufmodul-(CALLM)- und Rückkehr vom Modul-(RTM)-Instruktionen. Modulaufrufe sind einfach das Mittel, durch das ein Modul einen Betriebszugriff durchführt oder in diesem Falle auf einen Modul im Speicher zuzugreift. Die CALLM-Instruktion schafft einen Modulstapelrahmen und speichert den Zustand des Rufmoduls in diesem Rahmen. Die RTM-Instruktion gewinnt den Status des Rufmoduls von dem Modulstapelrahmen zurück, bevor sie zum Rufmodul zurückkehrt. Die Formate des Modulbeschreibers und des Modulstapelrahmens werden in der anhängigen Anmeldung Ser.No. 626 363 beschrieben, auf die hier zur Referenz verwiesen wird. Während der Ausführung der CALLM-Instruktion erhält der Prozessor 14 den Zugriffpegel des gerufenen Moduls von dem Modulbeschreiber; und später gewinnt er den Zugriffpegel des rufenden Moduls von dem Modulstapel während der Ausführung der RTM-Instruktion. Obwohl der Prozessor 14 typischerweise diese Zugriffsteuer-Information nicht interpretiert, verbindet er sich mit der PMMU 20, wenn die Zugriffsteuerung zu ändern ist, und verläßt sich auf die PMMU 20, daß sie nachprüft, ob die Änderungen legal sind. Bei der vorliegenden Erfindung wird diese Verbindung über eine Busschnittstelle begrenzter Breite ausgeführt.
  • Im allgemeinen unterstützt der Modulmechanismus einen feineren Pegel von Zugriffsteuerung, als den durch die Unterscheidung zwischen Benutzer- und Supervisor-Referenzen geschaffenen. Der Modulmechanismus gestattet einem Modul mit begrenzten Zugriffrechten, einen Modul mit größeren Zugriffrechten zu rufen. Mit Hilfe der PMMU 20 kann der Prozessor 14 überprüfen, daß der rufende Modul seine Zugriffrechte erhöhen darf, und kann Versuche eines rufenden Moduls erfassen, Zugriffrechte zu erhalten, zu denen er nicht berechtigt ist.
  • Bei der Ausführung von CALLM- oder RTM-Instruktionen, deren Referenz-Zugriffpegel Modulbeschreiber oder -Rahmen ändern, geht der Prozessor 14 mit der Zugriff-Steuerlogik der PMMU 20 in Verbindung über Zugriffe in dem CPU-Raum. Falls bei einem dieser CPU-Raum-Zugriffe während der Ausführung einer CALLM- oder RTM-Instruktion ein Busfehler auftritt, nimmt der Prozessor 14 eine Formatfehler-Ausnahme.
  • Im Betrieb kann der Prozessor 14 die Zugriffrechte des aktuellen Moduls durch Lesen des aktuellen Zugriffpegel-(CAL)-Busregisters bestimmen. Das erhöhte Zugriffpegel-(IAL)-Busregister wird durch den Prozessor 14 benutzt, erhöhte Zugriffrechte anzufordern. Das verminderte Zugriffpegel-(DAL)-Busregister wird durch den Prozessor 14 benutzt, verminderte Zugriffrechte anzufordern. Die Formate dieser drei Busregister sind durch den Prozessor 14 nicht definiert, jedoch nimmt der Prozessor 14 an, daß aus dem CAL-Busregister ausgelesene Information bedeutungsvoll in den IAL- oder den DAL-Busregister eingeschrieben werden kann. Das Zugriffpegelstatus- (ALS)-Busregister erlaubt dem Prozessor 14, die PMMU 20 nach der Legalität der beabsichtigten Zugriffpegel-Übergänge wie folgt zu befragen: Wert Gültigkeit Betätigung Prozessor 14 ungültig Formatfehler gültig keine Änderung der Zugriffrechte Änderung nur von Zugriffrechten Änderung v. Zugriffr. u. Stapelzeiger andere undefiniert
  • Der Prozessor 14 benutzt die Beschreiberadressen-(DA)-Busregister während CALLM zur Verbindung mit der Adresse des Modulbeschreibers. Das läßt die PMMU 20 verifizieren, daß die Adresse eine gültige Adresse für den Beschreiber ist. Dies hindert auch einen Modul daran, einen Zugriffpegel-Änderungsbeschreiber zu schaffen, um unberechtigt seine Zugriffrechte zu erhöhen.
  • Im allgemeinen wird die CALLM-Instruktion benutzt, sowohl Zugriffpegel-Änderungs- als auch Nicht-Zugriffpegel-Änderungs- Modulanrufe herzustellen. Für die letzte Art von Modulanrufen schafft und füllt der Prozessor 14 einfach den Modulstapelrahmen oben auf dem aktiven Systemstapel. Die Bedingungskode des anrufenden Moduls werden in einem entsprechenden Feld des Rahmens abgespeichert. Je nach gewisser Steuerinformation kann der Prozessor 14 den Stapelzeiger des anrufenden Moduls abspeichern oder nicht. Der Prozessor 14 wird jedoch das Zeigerregister des Moduldatenbereichs abspeichern und laden, bevor die Ausführung des gerufenen Moduls beginnt.
  • Für den Zugriffänderungstyp des Modulbeschreibers muß der Prozessor 14 zuerst den aktuellen Zugriffpegel von der PMMU 20 erhalten. Er verifiziert auch, daß der rufende Modul das Recht hat, aus dem Gebiet auszulesen, auf das der aktuelle Wert des Stapelzeigers zeigt. Er reicht dann die Beschreiberadresse und den neuen Zugriffpegel an die PMMU 20 zur Gültigkeitüberprüfung weiter. Der Prozessor 14 liest dann den Zugriffstatus, um die Entscheidung der PMMU 20 bezüglich der Gültigkeit der angeforderten Zugriffpegel-Änderung zu bestimmen. Falls die PMMU 20 bestimmt, daß die Änderung des Zugriffpegels nicht gewährt werden sollte, ist der Zugriffstatus Null und der Prozessor 14 nimmt eine Formatfehler-Ausnahme. Keine sichtbaren Register des Prozessors 14 sind geändert, noch ändert die PMMU 20 den aktuellen Zugriffpegel. Falls die PMMU 20 bestimmt, daß die Änderung gewährt werden sollte, ändert die PMMU 20 den aktuellen Zugriffpegel und läßt den Prozessor 14 fortfahren. Falls der Zugriffstatus eine Änderung bei dem Stapelzeiger erfordert, lädt der Prozessor 14 den neuen Wert von dem Modulbeschreiber ein und kopiert alle Argumente von dem Stapel des rufenden Moduls auf den neuen Stapel. Schließlich schafft und füllt der Prozessor 14 den Modulstapelrahmen oben auf dem neuen Stapel. Die Bedingungskoden des rufenden Moduls werden in einem zugehörigen Feld des Rahmens abgespeichert. Die Ausführung des gerufenen Moduls beginnt mit dem Nicht-Zugriffpegel-Änderungstyp des Modulbeschreibers.
  • Die RTM-Instruktion wird zum Rückkehren von einem Modul benutzt. Für den Nicht-Zugriffpegel-Änderungstyp des Modulstapelrahmens lädt der Prozessor die Bedingungskoden, den Programmzähler und das Moduldatenbereichs-Zeigerregister von dem Rahmen. Der Rahmen wird dann von der Oberseite des Stapels entfernt, die Argumentzählung wird zum Stapelzeiger hinzugefügt und die Ausführung kehrt zu dem rufenden Modul zurück.
  • Für den Zugriffpegel-Änderungstyp des Modulstapelrahmens liest der Prozessor 14 den Zugriffpegel, die Bedingungskoden, den Programmzähler, das abgespeicherte Moduldatengebiet und den abgespeicherten Stapelzeiger von dem Rahmen. Der alte Zugriffpegel wird der PMMU 20 zur Gültigkeitsüberprüfung eingeschrieben. Der Prozessor 14 liest dann den Zugriffstatus, um die Entscheidung der PMMU 20 bezüglich der Gültigkeit der angeforderten Zugriffpegeländerung zu bestimmen. Falls die PMMU 20 bestimmt, daß die Änderung beim Zugriffpegel nicht gewährt werden sollte, ist der Zugriffstatus Null und der Prozessor 14 nimmt eine Formatfehler-Ausnahme. Keine sichtbaren Register des Prozessors 14 werden geändert, noch ändert die PMMU 20 den gültigen Zugriffpegel. Falls die PMMU 20 bestimmt, daß die Änderung gewährt wird, ändert die PMMU 20 den aktuellen Zugriffpegel und läßt den Prozessor 14 fortfahren. Der Prozessor 14 lädt dann die Werte von dem Modulstapelrahmen in die entsprechenden Register, für den Argumentzählwert zu dem neuen Stapelzeigerwert hinzu und kehrt zu dem rufenden Modul zurück.
  • Wenn der gerufene Modul nicht wünscht, daß der Moduldatenzeiger in ein Register geladen wird, kann das RTM-Instruktionswort dies bezeichnen und der geladene Wert wird dann mit dem korrekten Stapelzeigerwert überlegt.
  • Während der Ausführung der CALLM-Instruktion haben der Prozessor 14 und die PMMU 20 ganz bestimmte Verantwortlichkeiten. Anfangs muß der Prozessor 14 den aktuellen Wert in dem CAL-Register über das CAL-Busregister zurückgewinnen und ihn in dem Modulstapelrahmen für späteren Gebrauch speichern. In der bevorzugten Form führt die PMMU 20 Bits 7-5 des CAL-Registers in Bits 7-5 des CAL-Busregisters zurück, und Bits 7-5 des VAL-Registers in Bits 3-1 des CAL-Busregisters.
  • Als nächstes muß der Prozessor 14 die Adresse des Modulbeschreibers des gerufenen Moduls in das zugehörige der acht DA-Busregister schreiben. Wenn ein Wert in eines der DA-Busregister eingeschrieben ist, wird die aus dem Inhalt des DA-Busregisters und dem diesem DA-Busregister zugehörigen Funktionskode bestehende Logische Adresse in den Übersetzungs-Tabellen und/oder dem Übersetzungs-Cache nachgesehen. Normalerweise sollte ein Cache-Eintrag für die Adresse bereitgestellt sein, da die CALLM-Instruktion bereits das erste Wort des gerufenen Moduls gelesen hat, um den Typ und die Zugriffpegel-Information zu erhalten. Wenn jedoch kein Cache-Eintrag lokalisiert wird, wird eine Tabellensuche unternommen und ein Eintrag in den Cache eingesetzt. Wenn keine Übersetzung in den Tabellen festgestellt werden kann, wird der Aufruf unerlaubt gemacht. Eine Adresse ist für ein Gate gültig, falls die Seite, in der es sich befindet, zugelassen ist, Gates zu enthalten (d. h. das G-Bit in dem Beschreiber gesetzt ist), und falls die Adresse gleich 0 Modulo-Gategröße ist (Gategröße wird bestimmt durch das GS-Feld des AC-Registers). Der Erfolg oder das Versagen der Beschreiber-Überprüfung wird durch die PMMU 20 zur Verwendung bei der Rückkehr zu einem Zugriffstatuswert zurückgehalten.
  • Als nächstes fordert der Prozessor 14 die PMMU 20 auf, das CAL-Register durch Einschreiben des neuen Zugriffpegels zu dem IAL-Busregister zu aktualisieren. In der bevorzugten Form vergleicht die PMMU 20 (ohne Vorzeichen-Berücksichtigung) den in das IAL-Busregister geschriebenen Wert mit den Zugriffpegel-Bits des CAL-Registers. Falls IAL größer als CAL, versagt die Zugriffpegel-Überprüfung. Falls IAL kleiner als CAL ist und das Gate-Bit für die Seite, welche den Modulbeschreiber des aufgerufenen Moduls enthält, gesetzt ist, ist die Änderung zugelassen. Falls IAL gleich CAL ist, läuft die Zugriffpegel-Überprüfung durch. CAL wird auf VAL kopiert und IAL in CAL eingesetzt. Der Erfolg oder das Versagen der Zugriffpegel-Änderung wird durch die PMMU 20 für die Verwendung bei Rückkehr in den Zugriffstatuswert zurückgehalten.
  • Information über Stapeländerungen ist in dem SCC-Register enthalten. Bei einem erfolgreichen Anwachsen des Zugriff-Privilegs, werden die Bits im SCC-Register mit Bitpositionszahl kleiner als der aktuelle Zugriffpegel und größer als der neue Zugriffpegel oder ihm gleich geprüft. Wenn irgendeines dieser Bits eine Eins ist, wird eine Stapeländerung angezeigt. Die Notwendigkeit oder die fehlende Notwendigkeit für eine Stapeländerung wird intern zur Verwendung bei der Rückkehr eines Zugriffstatuswertes zurückgehalten.
  • Die durch den Prozessor 14 in einer CALLM-Sequenz ausgeführte abschließende Aktion ist, das ALS-Busregister der PMMU 20 zu lesen, um den Zugriffstatus zu erhalten. Der zurückgeführte Wert ist wie oben definiert.
  • Bei einer RTM-Instruktion schreibt der Prozessor 14 den alten (abgespeicherten) Zugriffpegel in das DAL-Busregister der PMMU 20. Er prüft dann den Status der Zugriffpegel-Änderung. Wenn ein Wert in das DAL-Busregister eingeschrieben ist, vergleicht die PMMU 20 die Zugriffpegel-Bits (ohne Berücksichtigung der Vorzeichen) mit den Zugriffpegel-Bits des CAL-Registers. In einer Ausführung der Erfindung wird, wenn das DAL-Feld größer oder gleich dem CAL-Feld ist, die Änderung zugelassen und die Bits 7-5 des DAL in CAL eingesetzt und Bits 3-1 des DAL in VAL gesetzt. Falls das DAL-Feld kleiner als das CAL-Feld ist, wird die Änderung nicht zugelassen. Der Erfolg oder das Versagen der Zugriffpegel-Änderung wird durch die PMMU 20 zur Verwendung bei der Rückkehr eines Zugriffstatuswertes zurückgehalten.
  • Die abschließende durch den Prozessor 14 bei einer RTM-Sequenz ausgeführte Aktion ist das Lesen des ALS-Busregisters der PMMU 20, um den Zugriffstatus zu erhalten. Der zurückgeführte Wert ist wie vorstehend definiert.
  • Bei der bevorzugten Form schafft die PMMU 20 zusätzlichen Zugriffschutz. Beispielsweise wird eine Anzeige von Schreibschutz bei jedem Niveau des Übersetzerbaumes gespeichert. Eine Seite wird als mit diesem Attribut versehen betrachtet, wenn irgendeine Tabelle bei irgendeinem Niveau das Schreibschutz-(WP)-Bit gesetzt hat.
  • Der wirksame Schreibschutz einer Seite wird bestimmt durch Logisches ODERn der WP-Bits jedes während des Tabellendurchgangs geholten Beschreibers und überprüfen der Lese- und Schreib-Zugriffpegel-Bits der Adresse anhand der jeweiligen RAL- und WAL-Felder (falls Zugriffpegel freigegeben sind). Am Ende des Tabellendurchgangs wird, wenn die Seite wirksam schreibgeschützt ist, ein Eintrag für diese Logische Adresse in dem Beschreiber-Cache mit gesetztem WP-Bit gemacht.
  • Eine Seite kann nur gesperrt sein oder ein Gate enthalten, falls das entsprechende Bit am untersten Niveau der Tabelle gesetzt ist. Die Anzeige von modifizierter und von Cache- Sperre sind auch nur an dem untersten Niveau der Tabelle vorhanden.
  • Für feinere Steuerung bezüglich der einer Seite zugeordneten Rechte können Langbeschreiber benutzt werden, um Zugriffe aufgrund von Benutzer/Supervisor zu begrenzen und 8 Privileg-Niveaus sind sowohl für Lese- wie Schreibzugriffe verfügbar, um einen wirksamen hierarchischen Schutzmechanismus zu schaffen. Falls Zugriffrecht-Verletzungen während des Tabellendurchgangs erfaßt werden, wird ein Eintrag von der ankommenden Logischen Adresse gebildet, und das BERR- oder das WP-Bit wird in dem ATC-26-Eintrag gesetzt für Lesezugriff- Verletzungen bzw. Schreibzugriff-Verletzungen. Aufeinanderfolgende Zugriffe zu dieser Logischen Adresse verursachen die Abgabe des BERR-Stiftes, falls ein Treffer in dem AT 26 mit dem gesetzten BERR-Bit des Eintrags auftritt, oder falls ein Schreibversuch mit dem gesetzten WP-Bit auftritt.
  • 5. Übersetzungs-Tabellen:
  • In der bevorzugten Form sind die Übersetzungs-Tabellen als ein Baum strukturiert. Diese Baumstruktur verringert die Größe der Seitentabellen, die für die meisten Programme aufgesetzt werden müssen, da nur ein Abschnitt des vollständigen Baumes vorhanden zu sein braucht.
  • Es gibt zwei Arten von Übersetzungs-Tabellen: Zeiger-Tabellen und Seiten-Tabellen. Zeiger-Tabellen bilden die Zweige des Übersetzungs-Tabellenbaumes, während Seiten-Tabellen die Blätter sind. Die Tabellen sind aus Beschreibern zusammengesetzt. Das Format ist gleichartig für Seiten- wie für Zeiger-Beschreiber und besteht aus einem Adreßfeld und einem Steuer/Status-Feld. Im allgemeinen wird das Adreßfeld eines Seitenbeschreibers benutzt, um die Aufzeichnung Logische gegen physikalische Adresse einer Seite zu definieren, während das Adreßfeld eines Zeigerbeschreibers benutzt wird, auf andere Übersetzungs-Tabellen in dem Baum zu zeigen.
  • Der Wurzelzeiger-Beschreiber wird benutzt, um auf die Wurzel eines Übersetzer-Baums zu zeigen. Diese Art von Beschreiber wird nur in den Wurzelzeiger-Registern benutzt. Übersetzer- Bäume können auf einer aufgabenbezogenen Basis existieren, oder sie können von Aufgaben gemeinsam benutzt werden, jenachdem, ob der CPE-Wurzelzeiger (CRP)-Beschreiber an einem Kontext-Schalter geändert wird. Zusätzlich benutzen für einen anderen Busmeister ausgeführte Übersetzungen einen Übersetzer-Baum, auf den durch den DMA-Wurzelzeiger (DRP) gezeigt wird. Falls erwünscht, können Supervisor-Zugriffe mit Benutzung eines anderen Übersetzer-Baums übersetzt werden als dem, auf den durch den CRP gezeigt wird durch Benutzung des Supervisor-Wurzelzeigers SRP.
  • Jeder Wurzelzeiger hat das folgende Format: GRENZE STATUS ADRESSE UNBEN.
  • wobei STATUS:
  • Im Falle des ungültigen Wurzelzeiger-Beschreibers ist das Ausführen von Übersetzungen nicht möglich, und so wird eine Konfigurations-Fehler-Ausnahme signalisiert, wenn die Registerbeladung versucht wird. Falls der Wurzelzeiger ein Seitenbeschreiber ist, wird die Logische Adresse durch die PMMU 20 als die Physikalische Adresse durchgelassen. Die Gültigkurz- und Gültig-lang-Typen bezeichnen einen gültigen Wurzelzeiger und bezeichnen auch die Länge der Beschreiber in der Tabelle beim nächsten Niveau. Es sei bemerkt, daß die Verwendung von DRP immer eine Nachschau durch Funktionskode an der Tabelle erstes Niveau mit sich führt und das L/U-Bit und Grenzfelder werden nicht benutzt, wenn eine Nachschau durch Funktionskode unter Benutzung irgendeines Wurzelzeigers ausgeführt wird.
  • Die PMMU 20-Auslegung spezifiziert verschiedene unterschiedliche Tafelbeschreiber-Typen. Alle Beschreiber haben ein Element gemeinsam: Bits 0 und 1 des ersten Langwortes aller Typen sind das DT-Feld des Beschreibers. Der Wert dieser Bits beeinflußt die Bedeutung der anderen Bits des Beschreibers.
  • Das Format eines Beschreibers wird bestimmt durch drei Dinge: den Wert des DT-Feldes des vorhergehenden Beschreibers, den Wert des DT-Feldes des Beschreibers und den Status der Tabellensuche. Der Wert des vorhergehenden DT-Feldes bestimmt, ob der aktuelle Beschreiber von Lang- oder Kurzform ist. Die anderen zwei Dinge bestimmen seinen Typ nach der vorliegenden Tabelle: Suchstatus der aktuellen Tabelle gegenwärtiges DT-Feld mehr TI-Felder zur Verwendung TI-Felder aufgebraucht Indirekt Ungültig Seitenbeschr. Typ 2 KURZ Zeiger Indirekt LANG
  • Der Kurzzeiger-Beschreiber hat das folgende Format: Tabellen-Adresse STATUS
  • wobei STATUS:
  • Der Langzeiger-Beschreiber hat das folgende Format: GRENZE STATUS TABELLEN-ADRESSE UNBEN.
  • wobei STATUS:
  • In der bevorzugten Form gibt es zwei Typen von Seiten- Beschreibern: Typ 1, der nur in Seiten-Tabellen auftritt, und Typ 2, der nur in Zeiger-Tabellen auftritt. So zeigt, wie in Fig. 4 dargestellt, die Anwesenheit eines Seiten-Beschreibers Typ 2 in einer Zeigertabelle, daß die Tabellensuche zu Ende ist, bevor alle TI-Felder benutzt sind. Auch wenn keine weiteren Tabelleneinträge abgeholt werden, wird das nächste TI-Feld mit dem Grenzfeld verglichen. Falls die Überprüfung versagt, wird ein Übersetzungs-Cacheeintrag für die Logische Adresse mit gesetztem BERR-Bit hergestellt.
  • Der Kurzseiten-Beschreiber Typ 1 hat das folgende Format: SEITEN-ADRESSE STATUS
  • wobei STATUS:
  • Der Langseiten-Beschreiber Typ 1 hat das folgende Format: UNBENUTZT STATUS SEITENADRESSE UNBENUTZT
  • wobei STATUS:
  • Der Kurzseiten-Beschreiber Typ 2 hat das folgende Format: SEITENADRESSE STATUS
  • wobei STATUS:
  • Der Langseiten-Beschreiber Typ 2 hat das folgende Format: GRENZE STATUS SEITEN-ADRESSE UNBEN.
  • wobei STATUS:
  • Ungültige Beschreiber halten in Tabellen Plätze für Daten, die entweder ausgeseitet oder nicht zugeordnet sind.
  • Der Kurz-ungültig-Beschreiber hat das folgende Format: UNBENUTZT
  • Der Lang-ungültig-Beschreiber hat das folgende Format: UNBENUTZT
  • Indirekte Beschreiber fügen ein zusätzliches Nachschau-Niveau hinzu, so daß einzelne Seiten gemeinsam bei Aufgaben benutzt werden können mit nur einem Satz von Archiv-Bits für die Seite.
  • Der Kurz-Indirekt-Beschreiber hat das folgende Format: BESCHREIBER-ADRESSE
  • Der Lang-Indirekt-Beschreiber hat das folgende Format: UNBENUTZT BESCHREIBERADRESSE UNBEN.
  • Bei den verschiedenen Beschreibern sind die Bits und Felder wie folgt definiert:
  • L/U (Untere/Obere) zeigt an, ob die Seiten dieses Speicherbereichs die untersten verfügbaren Adressen oder die höchsten besetzen. Das führt dazu, daß der Vergleich des Grenzfeldes mit dem Abschnitt der Logischen Adresse, der zum Indexieren in die Tabellen benutzt wird, wie folgt durchgeführt wird: Falls L/U - 0, enthält das Grenzfeld eine obere (vorzeichenlose) Grenze an dem Index, so daß der Index < = Grenze sein muß. Falls L/U = 1, enthält das Grenzfeld eine untere Grenze für den Index, und der Index muß > = Grenze sein. Falls der Index außerhalb der Grenzen liegt, wird ein Übersetzungs-Cacheeintrag für die Logische Adresse mit gesetztem BERR-Bit gemacht. Sonst wird die Tabellensuche fortgesetzt. (Siehe Fig. 5).
  • GRENZE bezeichnet den maximalen oder minimalen Wert für den Index in das nächste Niveau der Tabelle. Dieses Feld wird benutzt, um die Größe der Tabelle beim nächsten Niveau zu begrenzen. Siehe vorstehendes L/U-Bit.
  • RAL (Lesezugriff-Pegel) bezeichnet den Zugriffpegel der Logischen Adresse, der zu einem Zugriff auf einen Bereich des Logischen Adreßraums erforderlich ist. Es wird wie folgt kodiert:
  • 000 Zugriffpegel 0 oder Supervisor
  • 001 Zugriffpegel 1&rarr;0 oder Supervisor
  • 010 Zugriffpegel 2&rarr;0 oder Supervisor
  • 011 Zugriffpegel 3&rarr;0 oder Supervisor
  • 100 Zugriffpegel 4&rarr;0 oder Supervisor
  • 101 Zugriffpegel 5&rarr;0 oder Supervisor
  • 110 Zugriffpegel 6&rarr;0 oder Supervisor
  • 111 Zugriffpegel 7&rarr;0 oder Supervisor.
  • Zugriffpegel mit einer kleineren (ohne Vorzeichen) Kodierung sind privilegierter als die mit einer höheren (ohne Vorzeichen) Kodierung. Eine Kodierung von 100 erfordert mehr Privileg zum Zugriff zu einem Beschreiber oder einer Seite als eine Kodierung 101. Wenn ein Beschreiber eingeladen ist und der Zugriff ein Benutzerraum-Zugriff ist, wird die Anzahl der oberen Logischen Adreßbits, die durch das ALC-Feld im AC-Register bezeichnet sind, mit dem RAL-Feld jedes Langbeschreibers bei dem Baum-Durchgang verglichen. Falls irgendein RAL anzeigt, daß der Zugriff verweigert werden sollte, wird ein Beschreiber gebildet und mit gesetztem BERR-Bit in den ATC 26 geladen.
  • WAL (Schreibzugriff-Pegel) zeigt den zum Einschreiben in einen Bereich des Logischen Adreßraums erforderlichen Zugriffpegel an. Es ist wie folgt kodiert:
  • 000 Zugriffpegel 0 oder Supervisor
  • 001 Zugriffpegel 1&rarr;0 oder Supervisor
  • 010 Zugriffpegel 2&rarr;0- oder Supervisor
  • 011 Zugriffpegel 3&rarr;0 oder Supervisor
  • 100 Zugriffpegel 4&rarr;0 oder Supervisor
  • 101 Zugriffpegel 5&rarr;0 oder Supervisor
  • 110 Zugriffpegel 6&rarr;0 oder Supervisor
  • 111 Zugriffpegel 7&rarr;0 oder Supervisor.
  • Wenn ein Beschreiber eingeladen wird und der Zugriff ein Benutzerraum-Schreibzugriff ist, wird die durch das ALC-Feld in dem AC-Register angezeigte Anzahl von oberen Logischen Adreßbits verglichen mit dem WAL-Feld jedes langen Beschreibers, der bei dem Tabellen-Durchgang benutzt wird. Falle irgendein WAL anzeigt, daß Schreiben mit dieser Adresse nicht zugelassen ist, wird der Beschreiber mit gesetztem WP-Bit geladen.
  • S (Supervisor) zeigt an, ob die Adresse nach dem Funktionskode, der verwendet werden kann, beschränkt ist:
  • 0 jede Adreßraum-Referenz
  • 1 nur Supervisor-Raumreferenzen.
  • SG (Globale Mitbenutzung) zeigt an, ob dieser Bereich des Logischen Adreßraumes von allen Aufgaben im System mitbenutzt (sharing) wird oder nicht. Falls der Bereich mitbenutzt wird, wird nur ein Eintrag im ATC 26 gemacht und alle Aufgaben benutzen mit. Das Bit wird wie folgt definiert:
  • 0 nicht mitbenutzt
  • 1 mitbenutzt.
  • G (Gate) wird gesetzt, wenn die Seite Gates enthalten kann; sonst gelöscht.
  • CI (Cache-Sperrung) wird in Systemen mit Daten-Cache benutzt, um Seiten zu markieren, die nicht gecached werden sollten, um Probleme mit schwer lesbaren Daten zu vermeiden. Die PMMU 20 zeigt dieses Bit während Übersetzungen in dem externen System. L (Rastung) wird gesetzt, um einen Beschreiber in dem ATC 26 zu rasten, so daß er zum Ersetzen unverfügbar gemacht wird. Der ATC 26-Eintrag muß gespült werden, um den Beschreiber zu entrasten. Die Wurzelzeiger-Tabelle kann jedoch mit gerasteten Beschreibern in Wechselwirkung treten.
  • M (modifiziert) wird gesetzt, falls der Seite zugeschrieben wurde; sonst gelöscht. Die PMMU 20 setzt M, falls es vorher gelöscht war und eine Einschreibung zu der Seite dieses Beschreibers vorgekommen ist. Dieses Bit wird durch die PMMU 20 nicht gelöscht.
  • U (verwendet) wird gesetzt, wenn das Beschreiber-Adreßfeld zum Zugriff zu einer Seite oder Tabelle benutzt wurde; sonst gelöscht. Dieses Bit wird durch die PMMU 20 gesetzt, wenn es vorher gelöscht war, und das Beschreiber-Adreßfeld durch die PMMU 20 während des Übersetzungs-Vorgangs benutzt wurde. Dieses Bit wird durch die PMMU 20 niemals gelöscht.
  • WP (Schreibschutz) wird gesetzt, wenn die Seite absolut schreibgeschützt ist; sonst gelöscht. Ein Beschreiber wird mit gesetztem WP-Bit ausgebildet und in den ATC 26 geladen. Ein Eintrag kann bedingt schreibgeschützt werden durch das vor stehend beschriebene WAL-Feld. Ein versuchtes Schreiben auf eine schreibgeschützte Seite läßt die PMMU 20 die Übersetzung durch Ausgeben von BERR abbrechen.
  • DT (Beschreibertyp) bezeichnet den Typ des Beschreibers. Es tritt in der gleichen Position in einem Beschreiber auf, ohne Rücksicht auf den Typ. Es wird benutzt mit dem Wert des vorhergehenden DT-Feldes und dem Zustand der Tabellensuche, um das Schreiberformat zu bestimmen.
  • 00 UNGÜLTIG: Ein Beschreiber mit diesem DT-Wert ist immer ungültig. Das kann bezeichnen, daß die Seite oder Tabelle nicht resistent (ausgeseitet) ist oder die Logische Adresse außer Bereich ist.
  • Wenn ein ungültiger Beschreiber angetroffen wird, wird ein Übersetzungs-Cacheeintrag für die Logische Adresse gemacht mit gesetztem BERR-Bit.
  • 01 SEITENBESCHREIBER: Dieser Weg wird benutzt, um den Tabellendurchgang zu beenden. Er bezeichnet entweder einen Seitenbeschreiber vom Typ 1 oder vom Typ 2. Wenn ein Seitenbeschreiber angetroffen wird, endet der Tabellendurchgang und ein Eintrag wird für die Logische Adresse im ATC 26 gemacht. Das Physikalische Adreßfeld für den Eintrag wird gebildet durch Addieren der restlichen Logischen Adreßbits (die bisher noch nicht als ein Index in eine Tabelle vorheriger Niveaus benutzt wurden) Null-erstreckt auf das Seiten- Adreßfeld des Beschreibers. (Siehe Fig. 4).
  • 10 KURZ: dieser Wert bezeichnet, daß der nächste zu holende Beschreiber von einem kurzen Format ist. Er kann in einem Zeiger-Beschreiber (kurz oder lang) oder in einem indirekten Beschreiber (kurz oder lang) auftreten. Wenn dieser Wert in einem Zeiger-Beschreiber auftritt, bedeutet das, daß das Tabellen-Adreßfeld auf eine Tabelle kurzer Beschreiber zeigt und daß der Index mit 4 multipliziert werden sollte. Wenn ein KURZ-Wert angetroffen wird und die Logische Adresse erschöpft wurde (alle TI-Felder benutzt), zeigt dieser Wert einen Beschreiber vom indirekten Typ an, der zu einem Kurzbeschreiber zeigt.
  • 11 LANG: dieser Wert zeigt an, daß der nächste zu holende Beschreiber vom Langformat ist. Er kann in einem Zeiger-Beschreiber (kurz oder lang) oder in einem indirekten Beschreiber (kurz oder lang) auftreten. Wenn dieser Wert in einem Zeiger-Beschreiber auftritt, bedeutet das, daß das Tabellen-Adreßfeld auf eine Tabelle von langen Beschreibern zeigt und daß der Index mit 8 multipliziert werden sollte. Wenn ein LANG-Wert angetroffen wird und die Logische Adresse erschöpft wurde (alle TI-Felder benutzt), bezeichnet dieser Wert einen Beschreiber von indirektem Typ, der auf einen Lang-Beschreiber zeigt.
  • TABELLENADRESSE besteht aus 28 Bits und zeigt immer auf die Basis einer Beschreiber-Tabelle.
  • SEITENADRESSE enthält die Physikalische Adresse einer Seite (die Seitenrahmenzahl). Sie besteht aus 24 Bits, jedoch brauchen nicht alle diese Bits benutzt sein. Wenn die Seitengröße mehr als 256 Bytes beträgt, werden nicht alle Bits erforderlich sein. Insbesondere werden die unteren (Wert des PS-Feldes des TC-Registers) minus 8 Bits unterer Ordnung dieses Feldes nicht verwendet. Beispielsweise wird bei einer Seitengröße von 1024 Bytes der Wert des PS-Feldes 10 (1010 binär), und so werden die untersten 10-8 = 2 Bits des Seitenadreßfeldes nicht benutzt. Die unbenutzten Bits können durch Software benutzt werden.
  • INDIREKTE ADRESSE besteht aus 30 Bits, die auf einen individuellen Beschreiber zeigen. Wenn das DT-Feld LANG anzeigt, dann muß das Bit niedriger Ordnung dieses Feldes 0 sein.
  • UNBENUTZTe Bits sind durch die PMMU 20 nicht verwendet.
  • 6. Tabellen-Durchgang:
  • Die PMMU 20 holt einen Beschreiber durch Ausführen aufeinanderfolgender Tabellen-Nachschauen, bis ein Seitenbeschreiber gefunden ist (oder ein Ausnahmezustand auftritt). Diese Tabellen-Nachschauen werden ausgeführt durch Benutzen von Abschnitten der Logischen Adresse, um in eine Tabelle von Beschreibern an jedem Niveau im Übersetzerbaum zu indexieren. Auf die Basis der Tabelle wird durch den in der vorhergehenden Tabelle ein Niveau höher in dem Baum erhaltenen Beschreiber gezeigt. Die maximale Größe einer Tabelle wird bestimmt durch die Anzahl von Logischen Adreßbits, die als ein Index in die Tabelle benutzt werden, wie auch durch die Größe der Beschreiber in der Tabelle. Tabellen können über ein Begrenzerfeld in bestimmten Beschreibern auf Größen beschränkt sein, die kleiner als dieses Maximum sind. Sobald ein Beschreiber von einer Tabelle erhalten wird, wird er auf Gültigkeit überprüft. Falls er gültig ist, bestimmt er den Typ von Beschreibern beim nächsten Niveau des Baumes. Dieser Nachschau-Vorgang wird fortgesetzt unter Benutzung von Stükken der restlichen Logischen Adresse, bis ein Seiten-Beschreiber erhalten wird oder ein Ausnahme auftritt. Sobald ein Seiten-Beschreiber erhalten ist, wurde die Abbildung Logisch zu Physikalisch für diese Seite definiert.
  • Wenn DMA-Zugriffe unter Benutzung des DMA-Wurzelzeigers (DRP) übersetzt werden, wird die Tabelle des ersten Niveaus immer durch Funktionskode indexiert. Falls der Supervisor- Wurzelzeiger (SRP) oder der CPU-Wurzelzeiger (CRP) zur Übersetzung benutzt wird und das FCL (Funktionskode-Nachschau)- Bit des TC-Registers gesetzt ist, wird die Nachschau im ersten Niveau durch Funktionskode indexiert. Falls das FCL- Bit gelöscht ist, wird keine Funktionskode-Nachschau ausgeführt und die erste Nachschau geschieht wie im nächsten Absatz beschrieben. Dieser Tabellen-Durchgang ist in Fig. 3 gezeigt. Der Seiten-Beschreiber wird wie folgt abgeholt: falls Bit 3 des Funktionskodes FC[3] nicht ausgegeben war, wird der ankommende Wert von FC2-0 benutzt, um in die Tabelle zu indexieren, auf die das CRP oder SRP-Register zeigt. Falls FC[3] durch ein anderes Gerät als die PMMU 20 abgegeben wurde, wenn die ATC 26-Fehlsuche auftrat, werden Bits 2-0 des Funktionskodes FC[2-0] benutzt, um in die Tabelle zu indexieren, auf die durch den DRP gezeigt wird. Ein Beschreiber wird dann von der Tabelle des oberen Niveaus abgeholt. Der Typ des zu holenden Beschreibers wird bestimmt durch das Beschreibertypfeld in dem verwendeten Wurzelzeiger. Vorausgesetzt, der abgeholte Beschreiber ist gültig, wird das Adreßfeld des Beschreibers benutzt, um die oberen Bits eines Zeigers zum nächsten Übersetzungs-Niveau zu bilden.
  • Die Anzahl von oberen Logischen Adreßbits, die durch das IS-Feld des TC-Registers bezeichnet ist, wird durch die PMMU 20 verworfen. Die Anzahl von Bits, die durch das TIA-Feld bezeichnet ist, wird von dem oberen Abschnitt der Logischen Adresse abgenommen. Sie werden als eine nicht mit Vorzeichen versehene ganze Zahl behandelt. Falls das DT-Feld des aktuellen Beschreibers (oder Wurzelzeigers, falls dies im ersten Niveau geschieht) anzeigt, daß der Beschreiber am nächsten Niveau des Baumes ein Kurzbeschreiber (32 Bit) ist, werden die Logischen Adreßbits um 2 nach links verschoben und zu dem Adreßfeld des geholten Beschreibers addiert. Falls das DT-Feld bezeichnet, daß der Beschreiber beim nächsten Niveau des Baumes ein Lang-Beschreiber (64 Bits) ist, werden die Logischen Adreßbits um 3 nach links verschoben und zu dem Adreßfeld des abgeholten Beschreibers addiert. Dieser Zeiger wird benutzt, um den Beschreiber beim nächsten Niveau des Baumes abzuholen.
  • Dieser Vorgang hält an unter Benutzung des Adreßfeldes dieses neuen Beschreibers, des nächsten TIx-Feldes und der nächsten oberen Logischen Adreßbits zum Holen eines anderen Beschreibers usw., bis ein Seiten-Beschreiber abgeholt wird oder keine TIx-Felder mehr vorhanden sind, oder das nächste Null ist (oder der Tabellen-Durchgang unterbrochen wird, wie später diskutiert).
  • Wenn ein Beschreiber lang ist, wird die Grundadresse der Tabelle des nächsten Niveaus als Bits 31-4 des zweiten Langwortes genommen. Bits 3-0 werden ignoriert und können durch den Benutzer für Status- oder andere Funktionen verwendet werden (sie sind für Adreßberechnungen nullgefüllt). Falls ein Beschreiber kurz ist, wird die Grundadresse der Tabelle mit nächstem Niveau als ein einziges Langwort genommen, wobei die Bits 3-0 (die Statusbits) nullgefüllt sind. Der Abschnitt, der durch TIx bezeichneten Logischen Adresse, der nach links verschoben wurde, um auf eine Beschreiber-Begrenzung zu zeigen, wird zu der Grundadresse der Tabelle addiert, um den nächsten Beschreiber zu lokalisieren. Da nur 28 Bits Adreßinformation im Beschreiber vorhanden sind, füllen Adreßrechnungen die vier Statusbits unterer Ordnung eines Beschreiber-Adreßfeldes mit Nullen.
  • Der Tabellen-Durchgang kann von dem vorstehend beschriebenen Normalfall aus einer Anzahl von Gründen abweichen:
  • 1) Wenn die benutzten und/oder modifizierten Bits eines Beschreibers nicht gesetzt sind, wird die PMMU 20 sie angemessen setzen und dann das Statusbyte des Beschreibers aktualisieren. Falls der so aktualisierte Beschreiber schon das Modifizierungs-Bit gesetzt hat, wird das Aktualisieren als ein einziger Lese-Modifiziere-Schreibe-Zyklus erledigt. Sonst wird einfaches Schreiben benutzt;
  • 2) falls das FCL-Bit des TC-Registers gelöscht ist, geschieht die erste Nachschau durch Logische Adresse; oder
  • 3) falls während des Tabellen-Durchgangs ein Seiten-Beschreiber angetroffen wird, hört der Durchgang auf und es wird ein Eintrag für die Logische Adresse im ATC 26 gemacht. Das Physikalische Adreßfeld für den Eintrag wird gebildet durch Addieren der restlichen Anzahl von Logischen Adreßbits (solche, die noch nicht als ein Index in die Tabelle bei einem vorherigen Niveau benutzt wurden), nullverlängert, zu dem Physikalischen Adreßfeld des Beschreibers, wobei die unteren PS-Bits nullgefüllt sind. Nachdem der Eintrag gemacht ist und die PMMU 20 den Bus freigibt, kann der Buszyklus neu versucht werden.
  • 7. ADRESSÜBERSETZER-CACHE
  • Um den Organisationsaufwand des Durchgehens der Übersetzungstabellen bei jedem Zugriff zu vermeiden, werden in letzter Zeit benutzte Logisch/Physikalisch-Übersetzer im ATC 26 gehalten. Der ATC 26 ist ausgelegt, eine hohe Trefferrate und rasche Übersetzungszeit zu schaffen. Wenn der ATC 26 verfehlt, unterbricht die PMMU 20 den aktuellen Buszyklus mit einer Anzeige an den Busmeister, daß der Zyklus später neu versucht wird. Die PMMU 20 übernimmt dann für die Logischen und Physikalischen Buse Verantwortung und sucht in den Übersetzungs-Tabellen im Speicher nach dem korrekten Seiten-Beschreiber. Dieser Beschreiber wird dann benutzt, einen Übersetzer im ATC 26 aufzubauen. Wenn die PMMU 20 die Buse freigibt, kann der alte Busmeister übernehmen und den abgebrochenen Buszyklus neu versuchen. Dieses Mal sollte die PMMU 20 im ATC 26 "treffen" und der Buszyklus kann normal weitergehen.
  • Im ATC 26 besitzt jeder Cache-Eintrag einen Logischen Abschnitt (Markierung) und einen Physikalischen Abschnitt (der Markierung entsprechende Information). Der Logische Gehalt der Einträge ist jedoch nicht benutzer-sichtbar. Der Logische 31Bit-Abschnitt jedes Eintrages umfaßt die folgenden Felder: LOGISCHE ADRESSE
  • wobei:
  • V (gültig) 1 ist, wenn der Eintrag einen gültigen Übersetzer enthält; sonst gelöscht. Dieses Bit wird gesetzt, wenn ein Übersetzer in den Eintrag geladen wird. Es wird gelöscht durch PFLUSH- oder PFLUSHR-Instruktion, die an einen Übersetzer gepaßt ist, durch eine PLOAD-Instruktion, die an einen Übersetzer gepaßt ist, durch eine Spülung, die durch Neuanordnung eines Wurzelzeiger-Tabelleneintrags an einem PMOVE nach CRP verursacht wird, und bei Reset.
  • TA (Task Alias) schafft einen Mechanismus zur Unterscheidung zwischen Zugriffen unterschiedlicher Aufgaben zu einer sonst identischen Logischen Adresse. Kombination der Task Alias-Information mit der Fähigkeit, eine maskierbare Löschung von Eintrag-Gültigkeits-Bits (maskierbare Spülung von Übersetzern) durchzuführen, gibt der PMMU 20 die Fähigkeit, Übersetzer mit Mehrfach-Aufgaben gleichzeitig in dem ATC 26 zu halten. Wenn ein "Task Alias" wieder zu einer anderen Aufgabe ausgegeben werden muß, werden zuerst alle dieses Task Alias enthaltenden Übersetzer gespült. Das stellt sicher, daß die neue Aufgabe nicht irrigerweise die Übersetzer der vorherigen Aufgabe benutzt, und beseitigt die Notwendigkeit des Spülens des gesamten ATC 26 an einer Kontext-Schaltstelle. Vergleich mit diesem Feld wird unterdrückt, falls die Tabellensuche, die diesen Übersetzer geladen hat, einen Beschreiber mit einem gesetzten SG-Bit antrifft. Das verwirklicht den allgemeinen Teilhabe- (sharing)-Betrieb.
  • FC (Funktionskode) enthält die Funktionskode-Bits FC[3 : 0] von dem Buszugriff, der das Einladen des Übersetzers verursachte.
  • LOGISCHE ADRESSE enthält die Logischen Adreßbits LA[31:8] des Buszugriffs, der das Laden des Übersetzers verursachte. Falls die Seitengröße mehr als 256 B-ytes beträgt, werden einige LA-Bits niedriger Ordnung in diesem 24Bit-Feld während des im Verlauf der normalen Übersetzung angestellten Adreßvergleichs nicht beachtet.
  • Der Physikalische 30Bit-Abschnitt für jeden Eintrag besteht aus den folgenden Feldern: PHYSIKALISCHE ADRESSE
  • wobei:
  • L (gerastet) gesetzt wird, wenn der Cache-Eintrag für Neuverwendung nicht verfügbar ist; sonst gelöscht. Falls der ATC 26 mit Gültigen Übersetzern gefüllt ist, muß ein gegenwärtig gültiger Übersetzer bei einer Übersetzer-Einladung überschrieben werden. Falls L = 1, ist der Cache-Eintrag zur Neuverwendung nicht verfügbar. Wenn alle Einträge bis auf einen gerastet werden, wird das LW-Bit im CS-Register gesetzt, um diesen Zustand anzuzeigen. Keine weitere Rastung von Übersetzern wird dann unternommen, ohne Rücksicht auf das Vorhandensein einer "Rast" -Anzeige in einem Beschreiber, um ein vollständiges Füllen des Caches mit gerasteten Übersetzern zu verhindern. Bis die Übersetzer gespült sind, wird der ATC 26 fortfahren, den gleichen (ungerasteten) Eintrag für neue Übersetzer bei allen Cache-Fehlversuchen zu benutzen. Aus diesem Grund muß das Betriebssystem sorgfältig sein, nicht so viele Übersetzer zu rasten, daß die Wirksamkeit des Übersetzer-Mechanismus verringert wird. Ein gerasteter Übersetzer kann ungültig gemacht werden, wenn er unter Benutzung der CRP geladen wurde. Wenn ein neuer Eintrag im RPT gemacht wird, werden alle Übersetzer im ATC 26 mit passendem TA-Feld ungültig ohne Rücksicht auf den Zustand ihrer L-Bits. Mit-dem SRP oder DRP geladene-Übersetzer werden auf diese Weise nicht ungültig.
  • BERR (Busfehler) gesetzt wird, wenn ein Fehler in der Tabellensuche erfaßt wurde, welche diesen Übersetzer ergab; sonst gelöscht. Falls BERR = 1, wird die PMMU 20 das BERR Ausgangssignal behaupten, wenn auf die Seite zugegriffen wird. Kein PAS wird erzeugt. Dies ergibt einen Mechanismus, dem gegenwärtigen Busmaster auf den Wiederversuch-Zugang zu einem vorher fehlerhaften (in dem ATC 26 nicht residenten) Ort, daß in den Tabellen keine Übersetzung für diese Adresse besteht. Das ergibt auch einen Mechanismus, redundante Tabellen-Nachschau-Versuche zu einem nicht-residenten Platz durch andere Busmaster zu vermeiden. Das BERR-Bit braucht nicht explizit gelöscht zu werden. Die Busfehler-Behandlungs-Routine sollte ein PLOAD für die fehlerhafte Adresse enthalten, nachdem die Tabellen aktualisiert wurden. Das PLOAD wird die PMMU 20 veranlassen, gepaßte Übersetzer in ihrem Cache zu spülen und dann den Cache mit neuen Daten von den Tabellen zu beladen.
  • CI (Cache-Sperrung) zeigt an, wenn Zugriffe innerhalb der Seite dagegen zu sperren sind, daß sie in einem Daten-Cache gespeichert werden. Falls CI = 1, wird die PMMU 20 das CLI-Ausgangssignal behaupten, wenn auf die Seite zugegriffen wird, konkurrierend mit dem Buszyklus, so daß eine Cache-Steuerung Bescheid weiß, keine "Füllung" zu versuchen, wenn dieser Buszugriff in dem Cache "verfehlt". Einige typische Arten von Zugriffen, die unter diese Kategorie fallen, sind I/O-Zugriffe, Zugriffe zu einem zeitweiligen Pufferbereich oder Zugriffe zu einem Mailbox- Bereich.
  • WP (Schreibschutz) gibt den "effektiven" Schreibschutz einer Seite wieder. Falls WP = 1, sind Schreibzugriffe zu der Seite nicht legal. Der effektive Schreibschutz ist das ODER aller während eines Tabellen- Durchgangs angetroffener WP-Bits (je eines bei jedem Niveau) und der an allen angetroffenen WAL-Feldern ausgeführten Überprüfung. Es werde bemerkt, daß das unterschiedlich zu dem aktuellen Wert des WP-Bits in dem Übersetzungstabellen-Seitenbeschreiber sein kann. Falls ein Schreiben unter Benutzung eines Übersetzers in dem ATC 26 versucht wird, bei dem das WP-Bit gesetzt wird, wird kein PAS erzeugt und BERR wird behauptet. Das gleiche trifft für die durch den Prozessor 14 ausgeführten Lese-Modifiziere-Schreibe- Zyklen (RMC) zu, die ein RMC-Signal benutzen. Wenn jedoch der Prozessor 14 kein RMC-Ausgangssignal besitzt, wird der Leseabschnitt des Buszyklus in der normalen-Weise übersetzt und ein Schreib-Sperr- (WIN)-Ausgangssignal wird ggf. behauptet. Wenn der Prozessor 14 R/W-Signalübergänge abgibt zum Anzeigen des Schreib-Abschnitts des Lese-Modifiziere-Schreibe-Zyklus, sollte das WIN-Signal den Übergang des Physikalischen R/W-Signals blockieren und die PMMU 20 die Schreib-Verletzung erfassen, PAS negieren und BERR behaupten.
  • M (Modifiziert) wird gesetzt, wenn die Seite modifiziert worden ist; sonst gelöscht. Falls ein Schreiben auf eine beschreibbare Seite erfolgt, die kein M-Bit in dem Übersetzer gesetzt hat, wird die PMMU 20 ein "Lösen und Neuversuchen" an den aktuellen Busmeister ausgeben. Nach Erhalt des Bus wird die PMMU 20 die Tabellen durchgehen, das M-Bit des zugehörigen Beschreibers in den Tabellen setzen, den alten Übersetzer ungültig machen, einen neuen Übersetzer mit gesetztem Modifiziert-Bit laden und dann den Bus freigeben. Wenn der vorherige Busmeister den Schreibzyklus neu versucht, wird die PMMU 20 das M-Bit gesetzt vorfinden und die Physikalische Adresse und PAS in der normalen Weise schaffen. Auf diese Weise wird das Modifiziert-Bit- eines Beschreibers-in den Seitentabellen auf das erste Schreiben zu dieser Seite setzen, ob nun der Übersetzer von einem vorherigen Lesen gecached ist oder nicht.
  • G (Gate) zeigt an, ob diese Seite Gates enthalten kann oder nicht. Falls G = 1 ist die Seite eine, die Gates zum Übergang zwischen unterschiedlichen Privileg-Niveaus enthalten kann. Bei einem Schreiben zu einem Beschreiberadreß-Busregister prüft die PMMU 20, um zu sehen, ob die durch diese Adresse bezeichnete Seite das G-Bit gesetzt hat. Falls diese Seite das Attribut Gates zu enthalten, (G-Bit gesetzt) nicht hat, wird ein entsprechender Fehlerkode in das ALS-Register eingegeben.
  • PA (Physikalische Adresse) enthält Bits 31-8 der Physikalischen Adresse PA[31 : 8], gebildet aus dem Seiten- Beschreiber der Tabellen-Nachschau. Falls die Seitengröße größer als 256 Bytes ist, werden nicht alle gespeicherten 24 Physikalischen Adreßbits zu dem externen Physikalischen Bus während der Übersetzung getrieben. Die Physikalischen Adreßbits, welche einen Bereich innerhalb einer Seite adressieren, werden so gemultiplext, daß die entsprechenden Logischen Adreßbits direkt zu dem externen Physikalischen Bus durchgeleitet werden.
  • Wenn die PMMU 20 einen Reset-Betrieb ausführt, kommt sie mit gesperrtem ATC 26 "heraus" (E-Bit des TC-Registers gelöscht). Logische Adressen werden direkt durchgeleitet, um an dem Physikalischen Adreßbus als eine "transparente Übersetzung" ausgegeben zu werden. Das ist notwendig, damit die Rücksetz-Vektoren von dem Speicher gelesen werden und die Übersetzer-Tabellen aufgestellt werden können. Zusätzlich wird die Zugriffpegel-Überprüfung gesperrt, so daß keine Zugriffe einen Fehler infolge Versuchen, den aktuellen Zugriffpegel zu überschreiten" erzeugen können. Nachdem die Tabellen aufgestellt sind, kann das E-Bit gesetzt werden, um den Betrieb des ATC 26 freizugeben.
  • Falls die PMMU 20 keinen weiteren Betrieb ausführt und der ATC 26 freigegeben ist, ist sie im "Übersetzungs-Seitenblick"-Betrieb. Bei dieser Betriebsart führt der ATC 26 einen vorangehenden Vergleich zwischen durch den gegenwärtigen Busmeister geschaffener Logischer Information und der entsprechenden, in dem Markierungsbereich jedes Eintrags im ATC 26 gespeicherten Logischen Information durch. Die aktuelle Buszyklus-Logische-Information besteht aus einer ankommenden Logischen Adresse, einem ankommenden Funktionskode, und der gegenwärtigen Task Alias (Index des gegenwärtigen CRP- Wertes in der Wurzelzeiger-Tabelle). Es sind entsprechende Felder in dem Markierungsbereich jedes ATC 26-Eintrags. Falls die aktuelle Information mit der in einem gültigen Übersetzer gespeicherten Information paßt, sagt man, der ATC 26 "trifft". Die Übersetzer mit gesetztem SG-Bit werden den Vergleich zwischen den andere Aufgabe-Feldern "nicht beachten", um gemeinsame Teilnahme der Übersetzer zuzulassen.
  • Wenn es einen Treffer gibt, wird der ATC 26 die gespeicherte Physikalische Adresse, die der gepaßten Logischen Adresse entspricht, zu den PA-Ausgangspuffern durchleiten, während er die entsprechende Physikalische Zugriffinformation zu anderen Bewertungsschaltungen oder Ausgangspuffern durchleitet. Falls der Physikalische Bus von der PMMU 20 wegverwaltet wurde, wird die PMMU 20 den Physikalischen Bus nicht ansteuern, bis sie wieder Meister des Physikalischen Bus wird. Die gesamte Zugriffrecht-Überprüfungs-Schaltung und die zugeordneten Steuersignale arbeiten weiterhin ohne Rücksicht auf die Identität des aktuellen Physikalischen Busmeisters. Auf diese Weise ist es möglich, daß eine Logische Busaktivität besteht, welche Zugriffrechte und Ausnahme-Überprüfung ausgeführt erhält, parallel zur total weggeordneten Physikalischen Busaktivität. Zum Beispiel kann der Prozessor 14 Buszyklen aus einem Daten-Cache laufen lassen, der an dem Logischen Bus residiert und kann seine Zugriffrechte durch die PMMU 20 überwachen lassen- parallel zu dem Betrieb eines DMA-Gerätes, das den Physikalischen Bus von der PMMU 20 weg "verwaltet" hat.
  • Die Physikalische Information von einem "treffenden" Übersetzer im ATC 26 wird wie folgt geleitet:
  • 1) BERR-, WP-, M- und G-Bits zu der Zugriffrecht-Überprüfungsschaltung;
  • 2) Physikalische Adreßbits und Cache-Sperr-Bits zu Ausgabepuffern.
  • Falls diskrete Zugriffpegel verwirklicht werden, wird der Zugriffpegel eines bestimmten Buszyklus kodiert, in Abhängigkeit von der Anzahl der Zugriffniveaus in Logischen Adressenbits LA[31 : 29], LA[31 : 30] oder LA[31]. Diese Bits werden in der gleichen Weise verglichen wie die anderen Adreßbits, um die Passung des Übersetzers zu bestimmen, so daß die Verwendung von diskreten Zugriffniveaus keine funktionelle Erfordernis für ATC 26 ist. Ein separater Vergleich wird parallel zur ATC 26 Nachschau zwischen Adreßbits hoher Ordnung und den freigegebenen Bits im CAL-Register durchgeführt. Falls das in der Adresse kodierte Zugriffniveau das im CAL-Register gespeicherte Zugriffniveau übersteigt, besteht eine Ausnahme und BERR wird behauptet, um den aktuellen Zugriffversuch zu beenden. Supervisor-Zugriffe sind eine Ausnahme von dieser Regel, da alle Supervisor-Zugriffe den CAL-Prüfmechanismus sperren.
  • Die "Entscheidungs-Zeitablauf"-Schaltung gibt an, durch welche Taktkanten nach LAS erfaßt (Asynchron-Betrieb) oder eingesetzt (Synchron-Betrieb) wurde, daß die PMMU 20 ausreichend Zeit besitzt, um zu entscheiden, welches externe Steuersignal zu behaupten ist. Die Entscheidungs-Zeitablauf-Taktkante muß nach einem Zeitraum auftreten, der garantiert, daß die Ausgabe der Zugangsrecht-Überprüfung, Ausnahmeerfassung und ATC 26 Anpaß-Schaltung an ihren Bestimmungsorten gültig ist. Falls die Zugriffrecht-Über-prüfungs-, Ausnahmeerfassungs- oder ATC 26-Passungs-Schaltung zu diesem Entscheidungs-Zeitpunkt nicht auflöst, kann die PMMU 20 eine irrige Reaktion erzeugen (die falschen Steuersignalen behaupten). Die Entscheidungszeit kann von ihrem Minimalwert aus beim Rücksetz/Konfigurations-Zeitpunkt erhöht werden.
  • Falls es einen Treffer gibt, keine Zugangsrecht-Verletzungen und keine Ausnahmen erfaßt sind, wird PAS bei der "minimalen PAS-Behauptungszeit" (von dem Übersetzungsbetrieb abhängig) behauptet plus irgendwelche Verzögerung, die bei Rückstellung/Konfigurations-Zeit angegeben sind. PAS wird bis zur Negierung von LAS angesteuert und wird zu diesem Zeitpunkt inaktiv gesteuert. Wenn die PMMU 20 Physikalischer Busmeister ist, wird der Physikalische Adreßbus immer angesteuert und wird gültig sein, während Logische Adressen und Funktionskode gültig sind, nachdem Zugriffzeit-Anforderungen erfüllt sind.
  • Wenn kein Treffer besteht oder Zugriffrechte überschritten wurden oder aufgetreten ist, wird die PMMU 20 PAS nicht erzeugen. Stattdessen wird die PMMU 20 die diesem Zustand angemessenen Steuersignale an der "Zeitablauf"-Taktkante behaupten. Ausnahmebedingungen oder Zugangsrechts-Verletzungen, die während des normalen Seitenblick-Betriebs erfaßt werden, und eine Erzeugung von anderen Reaktionen als Physikalische Adresse und PAS verursachen, sind:
  • 1) von dem Logischen Bus dekodierte PMMU-Koprozessor-Register-Zugriffe lassen die kodierte Instruktion ausführen;
  • 2) Zugriffe mit Versuchen, den gespeicherten "aktuellen Zugriffpegel" zu überschreiten, verursachen, falls freigegeben, die Behauptung von BERR;
  • 3) das gesetzte BERR-Bit verursacht die Behauptung von BERR;
  • 4) Schreibzugriff zu einer schreibgeschützten Seite verursacht Behauptung von BERR;
  • 5) kein Treffer in ATC 26 verursacht die Erzeugung von Steuersignalen für Löse- und Neuversuch-Betrieb;
  • 6) Schreibzugriff zu einer vorher unmodifizierten Seite verursacht die Erzeugung von Steuersignalen für Löse- und Neuversuch-Betrieb;
  • 7) Zugriffe zu PMMU 20-Busregistern durch CALLM/RTM- Instruktionen;
  • 8) CPU-Raumzugriffe (FC = 0111) auf den Logischen Adreßbus, zu dem Physikalischen Adreßbus durchgeleitet, erzeugen kein PAS. Falls die Adresse kein Busregister der PMMU 20 ist, wird CLI mit der normalen PAS-Zeitgebung behauptet und kann extern mit CPU- Raumdekodierung konditioniert werden, um einen CPU- Adreßraum-Impuls zu schaffen. Falls die Adresse ein Busregister der PMMU 20 ist, wird CLI nicht behauptet. Der Betrieb wird durch die folgende Tabelle definiert: CPU-Raum Übersetzung freigegeben Koprozessor, Modul oder Fixpunkt Abbildg Normale Übersetzung
  • wobei:
  • Y = ja
  • N = nein oder negiert
  • A = behauptet
  • X = nicht beachtet.
  • 8. WURZELZEIGER-TABELLE (RPT):
  • Um die Benutzung des ATC 26 zu verbessern, enthält die PMMU 20 eine Mehrfacheintrag-Wurzelzeiger-Tabelle (RPT) 28, um Wurzelzeiger für die jüngsten Aufgaben zu halten. Alle Einträge in dem ATC 26, die mit Durchsuchen des Übersetzungs- Baums gemacht wurden, auf den durch den CPU-Wurzelzeiger (CRP) gezeigt wurde, sind mit einer Anzeige des Index des Eintrages in der RPT 28 markiert, der gegenwärtig angepaßt ist. Dieser Index wird die Task Alias genannt. Falls das CRP-Register geschrieben und ein passender Eintrag in der RPT 28 gefunden ist, können immer noch Einträge in dem ATC 26 sein, die gültig sind. Falls der neue CRP-Wert nicht mit einem Eintrag in der RPT 28 paßt, wird ein Eintrag in der RPT 28 ausgewählt und der ATC 26 wird von Einträgen gespült, die den gleichen Index haben. Zusätzlich wird diese Information in dem CS-Register geschaffen, so daß ein externer Daten-Cache in der gleichen Weise wie die RPT 28 gemanagt werden kann.
  • Die RPT 28 besitzt einen Markierungsabschnitt mit einer Markierung für jeden Eintrag. Jede Markierung hat die gleichen Felder wie das CRP-Register. Eine Markierung ist gepaßt, falls das Adreßfeld der Markierung mit dem Adreßfeld des CRP-Wertes paßt. Eine gültige Passung tritt auf, wenn das Adreßfeld paßt und alle anderen Felder passen. Eine ungültige Passung tritt auf, wenn das Adreßfeld und das L/U-Bit paßt, jedoch ein anderes Feld oder mehrere andere Felder nicht passen.
  • Es besteht kein expliziter Datenabschnitt der Tabelle. Bei einer Passung ist das Ausgangssignal der Tabelle der Index 0-7 des Eintrages, der gepaßt ist. Es liegt in der Verantwortung der PMMU 20, sicherzustellen, daß mehrfach gepaßte Einträge niemals gleichzeitig auftreten.
  • Wenn das CRP-Register beschrieben ist, wird die RPT 28 nach einem Eintrag mit passendem Adreßfeld und L/U-Feld durchsucht. Falls das DT-Feld in STATUS und das GRENZ-Feld auch passen, wird die Passung als gültige Passung angesehen. Wenn jedoch das Adreß- und das L/U-Feld passen, jedoch das DT- Feld in STATUS und das GRENZ-Feld nicht passen, wird die Passung als ungültig angesehen.
  • Falls eine gültige Passung vorhanden ist, wird in das TA- Feld des CS-Registers der Index des Eintrags in der Tabelle geladen und das F-Bit im CS-Register gelöscht. Das zeigt an, daß die durch den neuen CRP beschriebene Aufgabe gültige Einträge in dem ATC 26 haben kann.
  • Wenn eine ungültige Passung vorhanden ist, wird der ATC 26 von allen Einträgen gespült, welche mit dem durch die RPT 28 ausgegebenen Indexwert passen. Das TA-Feld des CS-Registers wird mit dem Index des Eintrags in der Tabelle beladen, und das F-Bit im CS-Register gesetzt. Das zeigt an, daß irgendwelche Einträge in einem externen Daten-Cache mit diesem Index ungültig gemacht werden sollen.
  • Wenn keine Passung besteht, wird ein Eintrag in der RPT 28 zum Ersetzen durch die PMMU 20 ausgewählt. Der Index des ausgewählten Eintrags wird zum Spülen des ATC 26 von allen Einträgen benutzt, die diese Task Alias enthalten. Der neue Wurzelzeiger-Wert wird dann in die Tabelle geladen, die Indexnummer wird in das CS-Register gesetzt und das F-Bit wird gesetzt, um die Tatsache wiederzugeben, daß diese Task Alias neu gebraucht wird.
  • Falls der gleiche Wurzelzeiger-Wert für eine andere Aufgabe und einen anderen Übersetzer-Baum neu zu brauchen ist, muß der ATC 26 zuerst von allen Einträgen befreit (gespült) werden, dessen Aufgabe mit der dem Eintrag in dem Wurzelzeiger-Cache zugeordneten paßt, unter Benutzung der PFLUSHR-Instruktion. Einträge in die RPT 28 werden zum Ersatz unter Benutzung eines Pseudo-LRU-Algorithmus ausgewählt. Die Ersatz- und Mehraufgabe-(Multitask-)Behandlung, die durch die RPT 28 geschaffen werden, können durch externe Daten-Caches benutzt werden. Nach jedem Einschreiben in das CRP-Register sollte das CS-Register gelesen und sein Inhalt in die Daten- Cache-Hardware geschrieben werden. Diese externe Daten- Cache-Hardware sollte mit einer 3Bit-Verlängerung zur Logischen Adresse konfiguriert werden. Diese Verlängerung sollte von einem Zwischenspeicher gespeist werden, der mit den unteren 3 Bits des CS-Registers geladen wird. Nachdem dieser Zwischenspeicher geladen und das F-Bit im CS-Register gesetzt ist, sollten alle Einträge in dem Cache, die zu dem Wert im Zwischenspeicher passen, gelöscht werden.

Claims (1)

  1. Seitenspeicher-Verwaltungseinheit (PMMU), die ausgelegt ist zum wahlweisen Zugriff auf eine Vielzahl von in einem Speicher gespeicherten Zeiger-(PT)-Tabellen (TA, TB, TC) und Seiten-(PG)-Tabellen zum Übersetzen einer ausgewählten logischen Adresse (LA) in eine entsprechende physikalische Adresse (PA) durch Kombinieren eines ersten Abschnitts der logischen Adresse mit einem Tabellenzeiger zum Zugriff auf eine vorbestimmte (TA) Zeigertabelle, um davon einen Seitentabellenzeiger auf eine ausgewählte (TD) Seitentabelle (PG) zu erhalten, und darauffolgendes Kombinieren eines zweiten Abschnitts der logischen Adresse mit dem Seitentabellenzeiger zum Zugriff auf die ausgewählte Seitentabelle, um davon die physikalische Adresse zu erhalten, dadurch gekennzeichnet, daß der Funktionskode (FC) wahlweise freigegeben ist, die logische Adresse (LA) als einen Adreßraum-Auswahlabschnitt zu erstrecken; und daß die PMMU wahlweise durch ein Funktionskode-Nachschau- (FCL-) Bit in der logischen Adresse freigegeben ist, anfangs einen durch einen Supervisor eines Computersystems, in welchem die PMMU eingesetzt ist, geschaffenen Wurzeltabellenzeiger (SRP, CRP) mit dem Adreßraum-Auswahlabschnitt (FC) der logischen Adresse zu kombinieren zum Zugriff auf eine andere vorbestimmte (TF) der Zeigertabellen (PT), um davon den Tabellenzeiger zu erhalten, der dann mit dem ersten Abschnitt der logischen Adresse kombiniert wird zum Zugriff auf die vorbestimmte (TA) Zeigertabelle, um von dieser den Seitentabellen-(PG)-Zeiger zu erhalten.
DE86907117T 1986-01-15 1986-11-06 Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen. Expired - Fee Related DE3688978T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/819,180 US4763244A (en) 1986-01-15 1986-01-15 Paged memory management unit capable of selectively supporting multiple address spaces

Publications (2)

Publication Number Publication Date
DE3688978D1 DE3688978D1 (de) 1993-10-07
DE3688978T2 true DE3688978T2 (de) 1994-01-20

Family

ID=25227414

Family Applications (1)

Application Number Title Priority Date Filing Date
DE86907117T Expired - Fee Related DE3688978T2 (de) 1986-01-15 1986-11-06 Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen.

Country Status (6)

Country Link
US (2) US4763244A (de)
EP (1) EP0253824B1 (de)
JP (1) JP2567594B2 (de)
KR (1) KR940011668B1 (de)
DE (1) DE3688978T2 (de)
WO (1) WO1987004544A1 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4890223A (en) * 1986-01-15 1989-12-26 Motorola, Inc. Paged memory management unit which evaluates access permissions when creating translator
USRE36462E (en) * 1986-01-16 1999-12-21 International Business Machines Corporation Method to control paging subsystem processing in virtual memory data processing system during execution of critical code sections
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
JPH0221342A (ja) * 1987-02-27 1990-01-24 Hitachi Ltd マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法
US5109348A (en) 1987-09-14 1992-04-28 Visual Information Technologies, Inc. High speed image processing computer
US4888688A (en) * 1987-09-18 1989-12-19 Motorola, Inc. Dynamic disable mechanism for a memory management unit
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
IT1216087B (it) * 1988-03-15 1990-02-22 Honeywell Bull Spa Sistema di memoria con selezione predittiva di modulo.
IT1219238B (it) * 1988-04-26 1990-05-03 Olivetti & Co Spa Dispositivo di traslazione dell'indirizzo per un memoria operativa di computer
US5239635A (en) * 1988-06-06 1993-08-24 Digital Equipment Corporation Virtual address to physical address translation using page tables in virtual memory
US5247632A (en) * 1989-01-23 1993-09-21 Eastman Kodak Company Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system
US5121487A (en) * 1989-02-21 1992-06-09 Sun Microsystems, Inc. High speed bus with virtual memory data transfer capability using virtual address/data lines
US5237668A (en) * 1989-10-20 1993-08-17 International Business Machines Corporation Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
JP2503702B2 (ja) * 1989-12-19 1996-06-05 日本電気株式会社 アドレス変換装置
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
EP0473767A1 (de) * 1990-03-23 1992-03-11 Eastman Kodak Company Anordnung zum verwalten und zuordnen von virtuellen speichern für eine digitale datenverarbeitungsanlage
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5410671A (en) * 1990-05-01 1995-04-25 Cyrix Corporation Data compression/decompression processor
US5355469A (en) * 1990-07-30 1994-10-11 Delphi Data, A Division Of Sparks Industries, Inc. Method for detecting program errors
US5771368A (en) * 1990-10-29 1998-06-23 Sun Microsystems, Inc. Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers
GB2251102B (en) * 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
US5285528A (en) * 1991-02-22 1994-02-08 International Business Machines Corporation Data structures and algorithms for managing lock states of addressable element ranges
US5640528A (en) * 1991-10-24 1997-06-17 Intel Corporation Method and apparatus for translating addresses using mask and replacement value registers
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5696925A (en) * 1992-02-25 1997-12-09 Hyundai Electronics Industries, Co., Ltd. Memory management unit with address translation function
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
US5493661A (en) * 1992-03-06 1996-02-20 International Business Machines Corporation Method and system for providing a program call to a dispatchable unit's base space
CA2131627A1 (en) * 1992-03-09 1993-09-16 Yu-Ping Cheng High-performance non-volatile ram protected write cache accelerator system
US5555395A (en) * 1993-05-28 1996-09-10 Dell U.S.A. L.P. System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US5682495A (en) * 1994-12-09 1997-10-28 International Business Machines Corporation Fully associative address translation buffer having separate segment and page invalidation
US5752275A (en) * 1995-03-31 1998-05-12 Intel Corporation Translation look-aside buffer including a single page size translation unit
US5724604A (en) * 1995-08-02 1998-03-03 Motorola, Inc. Data processing system for accessing an external device and method therefor
US5802541A (en) * 1996-02-28 1998-09-01 Motorola, Inc. Method and apparatus in a data processing system for using chip selects to perform a memory management function
US5914730A (en) * 1997-09-09 1999-06-22 Compaq Computer Corp. System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
US6249906B1 (en) * 1998-06-26 2001-06-19 International Business Machines Corp. Adaptive method and system to minimize the effect of long table walks
EP1471421A1 (de) * 2003-04-24 2004-10-27 STMicroelectronics Limited Steuerung für spekulativen Ladebefehl
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US8181004B2 (en) * 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US8375247B2 (en) * 2005-08-29 2013-02-12 The Invention Science Fund I, Llc Handling processor computational errors
US8255745B2 (en) * 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US20070050605A1 (en) * 2005-08-29 2007-03-01 Bran Ferren Freeze-dried ghost pages
US20070050608A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporatin Of The State Of Delaware Hardware-generated and historically-based execution optimization
US8214191B2 (en) * 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
US8516300B2 (en) * 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US7774558B2 (en) * 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US7644251B2 (en) * 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
US7376807B2 (en) * 2006-02-23 2008-05-20 Freescale Semiconductor, Inc. Data processing system having address translation bypass and method therefor
US7401201B2 (en) * 2006-04-28 2008-07-15 Freescale Semiconductor, Inc. Processor and method for altering address translation
US9697211B1 (en) * 2006-12-01 2017-07-04 Synopsys, Inc. Techniques for creating and using a hierarchical data structure
US8621154B1 (en) 2008-04-18 2013-12-31 Netapp, Inc. Flow based reply cache
US8161236B1 (en) 2008-04-23 2012-04-17 Netapp, Inc. Persistent reply cache integrated with file system
US8171227B1 (en) 2009-03-11 2012-05-01 Netapp, Inc. System and method for managing a flow based reply cache
TWI492051B (zh) * 2012-09-05 2015-07-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2230258A5 (de) * 1973-05-16 1974-12-13 Honeywell Bull Soc Ind
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4173783A (en) * 1975-06-30 1979-11-06 Honeywell Information Systems, Inc. Method of accessing paged memory by an input-output unit
US4084226A (en) 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4455603A (en) * 1981-05-22 1984-06-19 Data General Corporation System for resolving pointers in a digital data processing system
US4468728A (en) * 1981-06-25 1984-08-28 At&T Bell Laboratories Data structure and search method for a data base management system
US4536837A (en) * 1982-05-25 1985-08-20 Elxsi Improved disk file allocation and mapping system utilizing cylinder control blocks and file map having unbalanced tree structure
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
US4644461A (en) * 1983-04-29 1987-02-17 The Regents Of The University Of California Dynamic activity-creating data-driven computer architecture
US4584639A (en) * 1983-12-23 1986-04-22 Key Logic, Inc. Computer security system
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4727485A (en) * 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4730249A (en) * 1986-01-16 1988-03-08 International Business Machines Corporation Method to operate on large segments of data in a virtual memory data processing system
US4718008A (en) * 1986-01-16 1988-01-05 International Business Machines Corporation Method to control paging subsystem processing in a virtual memory data processing system during execution of critical code sections

Also Published As

Publication number Publication date
EP0253824B1 (de) 1993-09-01
EP0253824A4 (de) 1990-03-21
DE3688978D1 (de) 1993-10-07
WO1987004544A1 (en) 1987-07-30
KR940011668B1 (ko) 1994-12-23
KR880700972A (ko) 1988-04-13
US4763244A (en) 1988-08-09
EP0253824A1 (de) 1988-01-27
US4800489A (en) 1989-01-24
JP2567594B2 (ja) 1996-12-25
JPS63502224A (ja) 1988-08-25

Similar Documents

Publication Publication Date Title
DE3688978T2 (de) Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen.
DE69424767T2 (de) Kohärente Schreibtransaktionen für Teilzeilen eines Cache-Speichers
DE68917326T2 (de) Organisation eines integrierten Cachespeichers zur flexiblen Anwendung zur Unterstützung von Multiprozessor-Operationen.
DE69031433T2 (de) Speicherzugriffsausnahmebehandlung bei vorausgelesenen Befehlswörtern in dem Befehlsfliessband eines Rechners mit virtuellem Speicher
DE68926059T2 (de) Organisation einer integrierten Cache-Einheit zur flexiblen Verwendung beim Entwurf von Cache-Systemen
DE68917325T2 (de) Verfahren und Vorrichtung zum Schreiben gegenseitiger verriegelter Variablen in einen integrierten Cachespeicher.
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE60222402T2 (de) Verfahren und system zur spekulativen ungültigkeitserklärung von zeilen in einem cachespeicher
DE68922326T2 (de) Speicherwarteschlange für eine festgekoppelte Mehrprozessorenkonfiguration mit einem zweistufigen Cache-Pufferspeicher.
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE69132005T2 (de) Vorrichtung und Verfahren für einen raumsparenden Adressenübersetzungspuffer für inhaltsadressierbaren Speicher
DE68924720T2 (de) Verfahren und Vorrichtung für Zugriffsrechtensteuerung.
DE69526996T2 (de) Ein-/Ausgabeadressübersetzungsmechanismen
DE69231743T2 (de) Prozessintervalabhängige Adressraumverwaltung
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE69127111T2 (de) Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher
DE3587694T2 (de) Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher.
DE69223386T2 (de) Umsetzungspuffer für virtuelle maschinen mit adressraumübereinstimmung
DE4040963C2 (de) Datenverarbeitungssystem
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE69029173T2 (de) Mikroprozessor
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE60036960T2 (de) Unterscheidung von feinkorntranslation
DE69634315T2 (de) Verfahren und Gerät zur Verwendung eines Ladebefehls der keinen Fehler verursacht

Legal Events

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