DE3618163A1 - Speicher-management fuer ein mikroprozessorsystem - Google Patents
Speicher-management fuer ein mikroprozessorsystemInfo
- Publication number
- DE3618163A1 DE3618163A1 DE19863618163 DE3618163A DE3618163A1 DE 3618163 A1 DE3618163 A1 DE 3618163A1 DE 19863618163 DE19863618163 DE 19863618163 DE 3618163 A DE3618163 A DE 3618163A DE 3618163 A1 DE3618163 A1 DE 3618163A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- page
- data
- address
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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/145—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Description
PATENTANWÄLTE ZENZ & HELBER · D 4300 ESSSN 1 · \M RuHRSIEiN 1 ■ TEL.: (02 01) 4126
]3ftl8163
INTEL CORPORATION 3065 Bowers Avenue, Santa Clara, Kalifornien 95051, V.St.A.
Speicher-Management für ein Mikroprozessorsystem
Die Erfindung betrifft das Gebiet der Adressenumsetzübertragungseinheiten
für das Speicher-"Management", insbesondere in einem Mikroprozessorsystem.
Es gibt viele bekannte Mechanismen für das Speicher-"Management".
In einigen Systemen wird eine größere Adresse (virtuelle Adresse) in eine kleinere physikalische Adresse umgesetzt.
In anderen wird eine kleinere Adresse benutzt, um zu einem größeren Speicherplatz zuzugreifen, indem z.B. die Speicherbankumschaltung
(bank switching) benutzt wird. Die vorliegende Erfindung bezieht sich auf die erstere Kathegorie, bei der
eine größere virtuelle Adresse benutzt wird, um auf einen beschränkten physikalischen Speicher Zugriff zu nehmen.
Für Speicher-"Management"-Systeme ist es ebenfalls bekannt, verschiedene Schutzmechanismen vorzusehen. Z.B. kann ein System
einen Benutzer daran hindern, in ein arbeitendes System einzuschreiben oder sogar das arbeitende System an externe
Ports auszulesen. Wie noch gezeigt wird, implementiert die vorliegende Erfindung einen Schutzmechanismus als Teil eines
größeren Steuerschemas, welches sogenannte "Attribute" den Daten auf zwei unterschiedlichen Niveaus zuordnet.
Der dem Anmelder bekannte nächstliegende Stand der Technik wird in der US-PS 4 442 48 4 beschrieben. Dieses Patent beschreibt
das Speicher-"Management" sowie Schutzmechanismen innerhalb eines am Markt erhältlichen Mikroprozessors, den
Intel 286. Dieser Mikroprozessor weist Segmentierungs-Deskriptor-Register auf, die Segment-Basis-Adressen, Grenz-Informationen
(limit information) und Attribute, z.B. Schutz-Bits enthalten. Die Segment-Deskriptor-Tabelle und die Segment-Deskriptor-Register
enthalten beide Bits, die verschiedene Steuermechanismen, wie Privileg-Level, Schutztypen usw. definieren. Diese Steuermechanismen sind im Detail in der US-PS 4 442
484 beschrieben.
Ein Nachteil des Intel 286 besteht darin, daß das Segment-Offset auf 64k Bytes begrenzt ist. Er erfordert außerdem fortlaufende
Speicherplätze im physikalischen Speicher für ein Segment, was nicht immer leicht aufrechtzuerhalten ist. Wie noch
zu sehen sein wird, besteht ein Vorteil des erfindungsgemäßen Systems darin, daß das Segment-Offset so groß wie der physikalische
Adressraum ist. Dennoch schafft das erfindungsgemäße System immer noch die Kompatibilität mit dem bekannten Segmentierungsmechanismus
aus dem Intel 286. Andere Vorteile und Unterschiede zu dem bekannten, in der oben erwähnten Patentschrift
erörterten System und seiner kommerziellen Realisierung (Mikroprozessor Intel 28 6) werden sich aus der detaillierten
Beschreibung der vorliegenden Erfindung ergeben.
Die Erfindung betrifft ein verbessertes Mikroprozessorsystem, welches einen Mikroprozessor und einen Datenspeicher enthält.
Der Mikroprozessor enthält einen Segmentierungsmechanismus zum Umsetzen einer virtuellen Speicheradresse in eine zweite Speicheradresse
(lineare Adresse) sowie zum Testen und Steuern der Attribute von Datenspeicher-Segmenten. Die erfindungsgemäße
Verbesserung umfaßt einen Seiten-Cachespeicher in Zuordnung zum Mikroprozessor zum Umsetzen eines ersten Feldes von der
linearen Adresse für eine Treffer- oder Abgleich-Bedingung (hit or match condition). Der Datenspeicher speichert ebenfalls
Seiten-Abbildungsdaten, insbesondere ein Seiten-Inhaltsverzeichnis
und eine Seitentabelle. Das erste Feld hat auf das Seiten-Inhaltsverzeichnis und die Seitentabelle Zugriff, wenn
keine Trefferbedingung (hit) im Seiten-Cachespeicher auftritt. Der Ausgang entweder des Seiten-Cachespeichers oder der Seiten-Tabelle
liefert eine physikalische Basisadresse für eine Seite im Speicher. Ein anderes Feld der linearen Adresse
stellt ein Offset innerhalb der Seite bereit.
Sowohl, der Seiten-Cachespeicher als auch die Seiten-Abbildungsdaten
in dem Datenspeicher speichern Signale, die Attribute der Daten in einer speziellen Seite repräsentieren. Diese
Attribute enthalten einen Lese/Schreib-Schutz, zeigen an, ob die Seite vorher eingeschrieben wurde, und andere Informationen.
Wichtig ist, daß der Seiten-"Level"-Schutz eine zweite Kontrollebene über Daten in dem Speicher bereitstellt, die von
den Segment-Attributen getrennt und unterschiedlich ist.
In den Zeichnungen zeigt:
Fig. 1 ein Blockdiagramm, das die Gesamtarchitektur des Mikroprozessors, in dem die Erfindung verwirklicht
ist, darstellt;
Fig. 2 ein Blockdiagramm, das den Segmentierungsmechanismus darstellt, der in dem Mikroprozessor nach
Fig. 1 enthalten ist;
Fig. 3 ein Blockdiagramm, das die Seiten-Feldabbildung (page field mapping) für einen Treffer (hit)
oder Abgleich (match) in dem Seiten-Cachespeicher darstellt;
Fig. 4 ein Blockdiagramm, das die Seiten-Feldabbildung bei fehlendem Treffer oder Abgleich in dem Seiten-Cachespeicher
gemäß Fig. 3 darstellt. Für diesen Fall werden das Seiten-Inhaltsverzeichnis (page directory) und die Seitentabelle im Hauptspeicher
benutzt und sind entsprechend in Fig. 4 dargestellt;
Fig. 5 ein Diagramm, das die in dem Seiten-Inhaltsverzeichnis der Seitentabelle und dem Seiten-Cachespeicher
gespeicherten Attributmerkmale darstellt;
Fig. 6 ein Blockdiagramm, das die Organisation des Assoziativspeichers (CAM) und der im Seiten-
-Cachespeicher enthaltenen Datenspeicherung darstellt;
Fig. 7 ein elektrisches Schema eines Teils des Assoziativspeichers
gemäß Fig. 6; und
Fig. 8 ein elektrisches Schema der dem Detektor in Fig. 6 zugeordneten Logikschaltungen.
Es wird ein Mikroprozessorsystem und insbesondere der Speicherorganisationsmechanismus
für das System beschrieben. In der folgenden Beschreibung sind zahlreiche spezielle Details
dargelegt, wie spezielle Anzahlen von Bits usw., um ein genaues Verstehen der Erfindung zu ermöglichen. Für den Fachmann
dieses Sachgebietes liegt es aber auf der Hand, daß die Erfindung auch ohne diese speziellen Details ausführbar ist. In
anderen Fällen sind allgemein bekannte Strukturen nicht im Detail dargestellt, um das Erfindungswesentliche klarer heraustreten
zu lassen.
In seiner gegenwärtig bevorzugten Ausführungsform enthält das
Mikroprozessor-System den Mikroprozessor 10 gemäß Fig. ' 1 . Dieser Mikroprozessor ist auf einem einzigen Siliziumsubstrat
unter Verwendung der CMOS-Halbleiter-Technik hergestellt. Jede
der vielen allgemein bekannten CMOS-Techniken kann verwendet werden. Wie auf der Hand liegt, kann die Erfindung auch mit
anderen Technologien realisiert werden, z.B. mit: N-Kanal- -Technik, bipolarer Technik, SOS (Silizium-auf-Saphir) Technik,
usw. .
Der Speicherorganisationsmechanismus verlangt für einige Ausgangsbedingungen
Zugriff zu im Hauptspeicher gespeicherten Tabellen. Ein Direktzugriffsspeicher (RAM) 13, der als Hauptspeicher
für das System fungiert, ist in Fig. 1 dargestellt. Jeder gewöhnliche RAM kann verwendet werden, so z.B. ein solcher,
der dynamische Speicher verwendet.
Wie in Fig. 1 dargestellt, weist der Mikroprozessor 10 eine physikalische Adresse von 3 2 Bits auf, und der Prozessor
selbst ist ein 32-Bit-Prozessor. Andere üblicherweise verwendete Komponenten eines Mikroprozessorsystems, wie Treiber
(drivers), mathematische Prozessoren usw. sind in Fig. 1 nicht dargestellt.
Das erfindungsgemäße Speichermanagement macht sowohl von der
Segmentierung als auch dem Seitenwechselverfahren (Paging) Gebrauch. Segmente werden durch einen Satz von Segment-Deskriptor-Tabellen
definiert, die von den zum Beschreiben der Seitenumsetzung benutzten Seitentabellen separiert sind. Die
beiden Mechanismen sind völlig getrennt und unabhängig. Eine
virtuelle Adresse wird in eine physikalische Adresse in zwei getrennten Schritten umgesetzt, wozu zwei getrennte Abbildungsmechanismen
verwendet werden. Für den ersten Umsetzschritt wird eine Segmentierungsmethode verwendet und für den
zweiten Umsetzschritt eine Paging-Methode. Die Paging-Umsetzung kann abgeschaltet werden, um eine Ein-Schritt-Umsetzung
ausschließlich mittels Segmentierung zu realisieren, welche mit dem Intel 286 kompatibel ist.
Die Segmentierung (erste Umsetzung) setzt eine virtuelle 48-Bit-Adresse in eine 32-Bit-(Zwischen-)Adresse um. Die virtuelle
48-Bit-Adresse setzt sich aus einem 16-Bit-Segment-Selektor und einem 3 2-Bit-Offset innerhalb dieses Segmentes
zusammen. Der 16-Bit-Segment-Selektor identifiziert das Segment
und wird verwendet, um auf einen Eingang der Segment-Deskriptor-Tabelle Zugriff zu nehmen. Dieser Segment-Desriptor-
-Eingang enthält eine Basisadresse des Segments, das Format (Grenze) des Segments und verschiedene Attributmerkmale des
Segments. Der Umsetzschritt fügt die Segment-Basis dem 32-Bit- -Offset in der virtuellen Adresse hinzu, um eine lineare
32-Bit-Adresse zu erhalten. Gleichzeitig wird der 32-Bit-Offset in der virtuellen Adresse mit der Segmentgrenze verglichen,
und die Art des Zugriffs wird an den Segment-Attributmerkmalen überprüft. Ein Fehler wird erzeugt und der Adressierprozeß
wird vorzeitig abgebrochen, falls das 32-Bit-Offset außerhalb der Segmentgrenze ist, oder falls die Art des Zugriffs
durch die Segment-Attributmerkmale nicht zugelassen ist.
Das Paging (zweite Umsetzung) setzt eine lineare 32-Bit-Adresse in eine physikalische 3 2-Bit-Adresse unter Verwendung einer
zwei-Stufen-Paging-Tabelle in einer Weise um, wie sie weiter
unten im Detail beschrieben wird.
Die zwei Schritte sind völlig unabhängig voneinander. Dieses erlaubt es, daß ein (großes) Segment aus mehreren Seiten zusammengesetzt
ist oder daß eine Seite aus mehreren (kleinen) Segmenten zusammengesetzt ist.
Ein Segment kann an einem beliebigen Rand (boundary) beginnen und von beliebiger Größe sein und ist nicht darauf beschränkt,
an einem Seitenrand zu beginnen oder eine Länge aufzuweisen, die exakt das Vielfache von Seiten ist. Dies gestattet es, daß
Segmente getrennt geschützte Bereiche des Speichers beschreiben, die bei beliebigen Adressen beginnen und beliebige Größen
haben.
Die Segmentierung kann zum Zusammenfassen einer Anzahl kleiner
Segmente, und zwar jedes mit seinen eigenen Schutzattributen und spezieller Größe, auf einer einzigen Seite benutzt werden.
In diesem Fall stellt die Segmentierung die Schutzattribute bereit, und das Paging liefert eine zweckmäßige Methode zum
Abbilden einer Gruppe von verknüpften Einheiten, die gesondert geschützt werden müssen, in einem physikalischen Speicher
dar.
Das Paging kann benutzt werden, um sehr lange Segmente für das physikalische Speichermanagement in kleine Einheiten zu unterteilen.
Dies schafft ein einziger Identifizierer (der Segment- -Selektor) und ein einziger Deskriptor (der Segment-Deskriptor)
für eine gesondert geschützte Einheit des Speichers, anstelle der Verwendungsnotwendigkeit einer Vielzahl von Seiten-Deskriptoren.
Innerhalb eines Segmentes stellt das Paging eine zusätzliche Aufzeichnungsstufe bereit, die es erlaubt,
große Segmente auf getrennten Seiten, die in dem physikalischen Speicher nicht benachbart sein müssen, abzubilden. In
der Tat erlaubt das Paging, ein großes Segment derart im Speicher aufzuzeichnen, daß nur wenige Seiten im physikalischen
Speicher zur gleichen Zeit vorhanden sind, während die verbleibenden
Teile des Segmentes auf Platte aufgezeichnet sind. Das Paging unterstützt auch die Definition von SubStrukturen
innerhalb eines großen Segmentes, z.B. den Schreibschutz eini ger Seiten eines großen Segmentes, während andere Seiten eingeschrieben
werden können.
Die Segmentierung stellt ein sehr umfassendes Schutzmodell dar, das mit den "natürlichen" von einem Programmierer verwen
deten Einheiten arbeitet: willkürlich groß bemessene Stücke eines linear adressierten Speichers. Paging stellt die zweckmäßigste
Methode zum Betreiben des physikalischen Speichers sowohl des Hauptsystemspeichers als auch des ergänzenden Plat
tenspeichers dar. Die Kombination der beiden Methoden in der vorliegenden Erfindung stellt sein sehr flexibles und wirkungsvolles
Speicherschutzmodell dar.
In Fig. 1 weist der Mikroprozessor eine Bus-Interface-Einheit
14 auf. Die Interface-Einheit weist Puffer auf, die es erlauben, die 32-Bit-Adressen-Signale zu übertragen und die 32
Datenbits zu empfangen und zu senden. Die Interface-Einheit kommuniziert über den internen Bus 19 innerhalb des Mikroprozessors.
Die Interface-Einheit enthält eine Vorabruf-Einheit zum Abrufen von Befehlen aus dem RAM 13 und eine Vorabruf-Warteschlange,
die mit der Befehlseinheit einer Befehlsdekodiereinheit 16 in Verbindung steht. Die in die Warteschlange eingereihten
Befehle werden innerhalb der Ausführungseinheit 18 (Rechen- und Steuerwerk ALU), welche eine 32-Bit-Speicher-Datei
enthält, verarbeitet. Diese Einheit sowie die Dekodiereinheit stehen mit dem internen Bus 19 in Verbindung.
Die Erfindung dreht sich um die Adressenumsetzungseinheit 20. Diese Einheit erfüllt zwei Funktionen; eine ist den Segment-
-Deskriptor-Registern und die andere dem Seiten-Deskriptor- -Cachespeicher zugeordnet. Die Segment-Deskriptor-Register
sind weitgehend aus dem Stande der Technik bekannt; gleichwohl werden sie in Verbindung mit Fig. 2 genauer beschrieben. Der
Seiten-Cachespeicher und seine Wechselwirkung mit dem Seitenverzeichnis und der Seitentabelle, die innerhalb des Hauptspeichers
(RAM) 13 gespeichert sind, werden in Verbindung mit Figuren 3 bis 7 erörtert und bilden die Grundlage für die
vorliegende Erfindung.
Die Segmentierungseinheit gemäß Fig. 1 erhält eine virtuelle Adresse von der Ausführungseinheit 18 und greift auf die entsprechende
Register-Segmentierungs-Information zu. Das Register
enthält die Segment-Basisadresse, welche gemeinsam mit dem Offset von der virtuellen Adresse über Leitungen 23 mit
der Seiten-Einheit gekoppelt werden.
Fig. 2 illustriert den Zugriff der Tabellen im Hauptspeicher, wenn die Segmentierungs-Register mit der Abbildungsinformation
für ein neues Segment geladen werden. Das Segmentfeld indiziert die Segment-Deskriptor-Tabelle im Hauptspeicher 13. Der
Inhalt der Tabelle liefert eine Basisadresse und darüberhinaus Attribute, die den Daten im Segment zugeordnet sind. Die Basisadresse
und das Offset werden mit den Segmentgrenzen in einem Komparator 2 7 verglichen; der Ausgang dieses Komparators
liefert ein Fehlersignal. Ein Addierer 26, der Teil des Mikroprozessors ist, verknüpft die Basisadresse und das Offset und
liefert eine "physikalische" Adresse auf Leitungen 31. Diese Adresse kann von dem Mikroprozessor als eine physikalische
10
Adresse oder von der Paging-Einheit verwendet werden. Dies geschieht, um eine Kompatibilität mit bestimmten Programmen zu
gewährleisten, die für einen älteren Mikroprozessor, Intel 286, geschrieben wurden. Für den Intel 28 6 beträgt der Platz
für die physikalische Adresse 24 Bits.
Die Segmentattribute, die Details über die verwendeten Deskriptoren
enthalten, wie die verschiedenen privilegierten Niveaus (levels) sind in der US-PS 4 442 484 beschrieben.
Der Umstand, daß der Segmentierungs-Mechanismus bekannter Stand der Technik ist, ist in Fig. 2 durch die gestrichelte
Linie 28 veranschaulich, welche andeutet, daß die bekannten Strukturen sich links der gestrichelten Linie befinden.
Die Seiten-Feld-Abbildung (Block 30), die die Seiten-Einheit
aus Fig. 1 enthält, sowie deren Wechselwirkung mit dem Seitenverzeichnis und der Seitentabelle, gespeichert im Hauptspeicher, ist in Figuren 3 bis 7 dargestellt.
Während in der gegenwärtig bevorzugten Ausführungsform der
Segmentierungsvorgang Schattenregister verwendet, könnte er auch durch einen Cachespeicher wie beim Paging-Vorgang implementiert
werden.
In Fig. 3 ist der Seiten-Deskriptor-Cachespeicher der Seiteneinheit
22 aus Fig. 1 innerhalb einer gestrichelten Umrandung 22a dargestellt. Dieser Speicher enthält zwei Speicherfelder,
einen Assoziativspeicher (CAM) 34 und einen Seiten-Daten(basis )speicher 35. Beide Speicher sind mit statischen Speicherzellen
implementiert. Die Organisation der Speicher 34 und 35
11
wird in Verbindung mit Fig. 6 beschrieben. Die spezifische, für CAM 34 verwendete Schaltung mit ihrem speziellen Maskier-
-Merkmal wird in Verbindung mit Fig. 7 und 8 beschrieben.
Die linearen Adressen von der Segmentierungs-Einheit 21 werden an die Seiten-Einheit 22 aus Fig. 1 angelegt. Wie in Fig. 3
dargestellt, umfaßt diese lineare Adresse zwei Felder, das Seiten-Informationsfeld (20 Bit) und ein Distanzfeld (displacement
field) (12 Bit). Außerdem ist ein Vier-Bit-Seiten- -Attributfeld im Mikrocode vorgesehen. Das 2 0-Bit-Seiten-Informationsfeld
wird mit dem Inhalt des CAM 34 verglichen. Auch die vier Attribut-Bits ("dirty", "valid", "U/S" und "W/R")
müssen ebenfalls zu denen im CAM passen, bevor ein Treffer (hit) auftritt. (Hierzu gibt es eine Ausnahme, wenn, wie noch
zu erörtern, eine "Maskierung" verwendet wird.)
Im Falle einer Trefferbedingung entwickelt der Seiten-Daten-
-Speicher 35 ein 20-Bit-Basiswort, welches mit dem 12-Bit-Distanzfeld
der linearen Adresse kombiniert wird, - wie durch den Summierer 3 6 in Fig. 3 dargestellt -, und die resultierende
physikalische Adresse wählt von einem 4k Byte Seiten-Rahmen (page frame) im Hauptspeicher 13 aus.
Ein Seiten-(Inhalts)Verzeichnis 13a und eine Seiten-Tabelle
13b sind im Hauptspeicher 13 gespeichert (siehe Fig. 4). Die
Basis-Adresse für das Seitenverzeichnis wird von dem Mikroprozessor geliefert und ist in Fig. 4 als Seitenverzeichnis-Basis
38 dargestellt. Zehn Bits des Seiten-Informationsfeldes werden (nach Skalierung mit einem Faktor 4) als Index in dem Seitenverzeichnis
verwendet, wie in Fig. 4 durch den Summierer 40 dargestellt. Das Seitenverzeichnis liefert ein 32-Bit-Wort.
12
Zwanzig Bits dieses Wortes werden als Basis für die Seiten-Tabelle
benutzt. Die anderen zehn Bits des Seiten-Informationsfeldes werden in ähnlicher Weise als Index (nach Skalierung
mit einem Faktor 4) in der Seiten-Tabelle benutzt, wie durch den Summierer 41 dargestellt. Die Seiten-Tabelle stellt ebenfalls
ein 32-Bit-Wort bereit, von denen zwanzig Bits die Seiten-Basis der physikalischen Adresse sind. Diese Seiten-Basisadresse
wird, wie durch den Summierer 42 dargestellt, mit dem 12-Bit-Distanzfeld kombiniert, um eine 32-Bit physikalische
Adresse zu schaffen.
Fünf Bits des 12-Bit-Feldes des Seitenverzeichnisses und der
Seiten-Tabelle werden für Attribute verwendet, insbesondere "dirty", "access", "U/S", "R/W" und "present". Diese werden in
Verbindung mit Fig. 5 detaillierter erläutert werden. Verbleibende Bits dieses Feldes werden nicht zugeordnet.
Die gespeicherten Attribute aus dem Seitenverzeichnis und der Seiten-Tabelle werden zusammen mit den der linearen Adresse
zugeordneten vier Bits der Attribut-Information an eine Steuerlogikschaltung 75 angelegt. Teile dieser Logikschaltung sind
in nachfolgenden Figuren dargestellt und werden im Zusammenhang mit diesen erörtert.
In Fig. 5 sind wiederum das Seitenverzeichnis-Wort, das Seiten-Tabellen-Wort
und das CAM-Wort dargestellt. Die Schutz/-Steuer-Attribute, die den vier Bits des Seitenverzeichnis-Wortes
zugeordnet sind, sind in Klammer 43 aufgelistet. Dieselben vier Attribute mit einem zusätzlichen Attribut werden für das
Seiten-Tabellen-Wort benutzt und sind in Klammer 4 4 wiedergegeben. Die vier für das CAM-Wort benutzten Attribute sind in
13
Klammer 45 angegeben.
Die Attribute werden für den folgenden Zweck benutzt:
1. "DIRTY". Dieses Bit zeigt, ob eine Seite eingeschrieben wurde. Dieses Bit wird geändert, wenn eine Seite eingeschrieben
worden ist. Dieses Bit wird z.B. benutzt, um das Verarbeitungssystem darüber zu informieren, daß eine
ganze Seite nicht "sauber" ("clean") ist. Dieses Bit wird in der Seiten-Tabelle und in dem CAM gespeichert (nicht
im Seitenverzeichnis). Der Prozessor setzt dieses Bit in der Seiten-Tabelle, wenn eine Seite eingeschrieben wird.
2. "ACCESSED". Dieses Bit wird nur in dem Seitenverezeichnis und der Seiten-Tabelle (nicht in dem CAM) gespeichert
und wird benutzt, um anzuzeigen, daß eine Seite zugegriffen
wurde. Wenn eine Seite zugegriffen wird, wird dieses
Bit durch den Prozessor im Speicher geändert. Anders als beim "dirty" Bit, zeigt dieses Bit an, ob eine Seite
entweder zum Schreiben oder zum Lesen zugegriffen wurde.
3. "U/S". Der Zustand dieses Bits zeigt an, ob der Inhalt der Seite durch den Benutzer und den Supervisor zugreifbar
ist (binär 1) oder ausschließlich durch den Supervisor (binär Null).
4. "R/W". Dieses Lese/Schreib-Schutz-Bit muß eine binäre 1
sein, um ein Schreiben der Seite durch ein Benutzerniveauprogramm zu ermöglichen.
5. "PRESENT". Dieses Bit in der Seiten-Tabelle zeigt an, ob die zugehörige Seite im physikalischen Speicher vorliegt.
Dieses Bit im Seitenverzeichnis zeigt an, ob die zugehörige Seiten-Tabelle im physikalischen Speicher
14
vorliegt.
6. "VALID". Dieses Bit, das nur im CAM gespeichert ist, wird benutzt, um anzuzeigen, ob der Inhalt des "CAM"
gültig ist. Dieses Bit wird beim Initiieren auf einen ersten Zustand gesetzt und dann geändert, wenn ein gültiges
CAM-Wort geladen wird.
Die fünf Bits vom Seitenverzeichnis der Seiten-Tabelle sind mit der Steuerlogikschaltung 75 gekoppelt, um geeignete Fehlersignale
innerhalb des Mikroprozessors zu erzeugen.
Die Benutzer/Supervisor-Bits von dem Seitenverzeichnis und der Seiten-Tabelle werden logisch UND-verknüpft, wie durch UND-
-Gatter 46 dargestellt, um das "R/W"-Bit, das in dem CAM 34 gemäß Fig. 3 gespeichert ist, bereitzustellen. Ähnlich werden
die "read/write"-Bits von dem Seitenverzeichnis und der Seiten-Tabelle durch das UND-Gatter 4 7 logisch UND-verknüpft, um
das in dem CAM gespeicherte "W/R"-Bit bereitzustellen. Das "dirty"-Bit von der Seiten-Tabelle wird in dem CAM gespeichert.
Diese Gatter sind Teile der Steuerlogikschaltung 75 gemäß Fig. 4.
Die in dem CAM gespeicherten Attribute werden "automatisch" getestet, da sie als Teil der Adresse behandelt werden und auf
die vier Bits vom Mikrocode abgestimmt werden. Eine Fehlerbedingung ergibt sich sogar dann, wenn eine gültige Seitenbasis
in dem CAM gespeichert wird, falls, z.B. die lineare Adresse anzeigt, daß ein "Benutzer"-Schreibzyklus in eine Seite mit
R/W = 0 vorkommen soll.
Die UND-Verknüpfung der U/S-Bits von dem Seitenverzeichnis und der Seiten-Tabelle gewährleistet, daß der "ungünstigste Fall"
in dem Cachespeicher gespeichert wird. Ähnlich bewirkt das
15
ÜND-Verknüpfen des R/W-Bits den ungünstigsten Fall für den
Cachespeicher.
Der CAM 34 ist - wie in Fig. 6 dargestellt - in 8 Sätze mit 4 Wörtern in jedem Satz organisiert. 21 Bits (17 für die Adresse
und 4 für Attribute) werden benutzt, um eine Übereinstimmung in diesem Datenfeld (array) zu finden. Die vier Komparatorleitungen
für die vier in jedem Satz gespeicherten Wörter sind mit einem Detektor verbunden. Z.B. sind die Komparatorleitungen
für die vier Wörter von Satz 1 mit Detektor 53 verbunden. Entsprechend sind die Komparatorleitungen für die vier Wörter
in den Sätzen 2 bis 8 mit Detektoren verbunden. Die Komparatorleitungen werden von den Detektoren abgefragt, um zu bestimmen,
welches Wort in dem Satz mit der Eingabe (21 Bits) am CAM-Feld übereinstimmt. Jeder der Detektoren enthält eine
"fest verdrahtete" Logik, die die Auswahl eines der Detektoren in Abhängigkeit vom Zustand der drei Bits von dem mit den
Detektoren verbundenen 20-Bit-Seiten-Informationsfeld gestattet.
(Beachte: Die anderen 17 Bits dieses Bit-Seiten-Informationsfeldes
sind mit der CAM-Matrix gekoppelt.)
Zum Zwecke der Erläuterung: acht Detektoren sind in Fig. 6 impliziert. In dem dargestellten Ausführungsbeispiel wird nur
ein Detektor benutzt, wobei drei Bits einen Satz von vier Leitungen für die Verbindung mit dem Detektor auswählen. Der
Detektor selbst ist in Fig. 8 dargestellt.
Der Datenspeicherteil des Cachespeichers ist in vier als Felder 35a bis 35d dargestellten Speicherfeldern bzw. Matrizen
organisiert. Die zu jedem Satz des CAM korrespondierenden Datenwörter sind verteilt, wobei ein Wort in jeder der vier
16
Matrizen gespeichert ist. Z.B. ist das durch einen Treffer mit
Wort 1 des Satzes 1 ausgewählte Datenwort (Basisadresse) in Matrix 35a und das von einem Treffer mit Wort 2 des Satzes 1
ausgewählte Datenwort ist in Matrix 35b usw. gespeichert. Die drei zum Auswählen eines Detektors benutzten Bits werden auch
verwendet, um ein Wort in jeder der Matrizen auszuwählen. Auf diese Weise werden Wörter von jeder der vier Matrizen gleichzeitig
ausgewählt. Die endgültige Auswahl eines Wortes von den Matrizen erfolgt durch den Multiplexer 55. Dieser Multiplexer
wird von den vier Komparatorleitungen in dem Detektor gesteuert.
Wenn auf den Cachespeicher Zugriff genommen ist, beginnt der Abgleichprozeß (matching), ein relativ langsamer Prozeß, unter
Verwendung der 21 Bits. Die anderen drei Bits sind in der Lage, sofort einen Satz von vier Leitungen auszuwählen, und
der Detektor wird zum Feststellen eines Potentialabfalls in den Komparatorleitungen vorbereitet. (Wie noch ausgeführt
wird, sind alle Komparatorleitungen (Zeilen) vorgeladen, wobei die ausgewählte (getroffene) Leitung geladen bleibt, während
die nicht-ausgewählten Leitungen sich entladen.) Gleichzeitig werden vier Wörter des ausgewählten Satzes in den Matrizen 35a
bis 35d zugegriffen. Falls und sobald eine Übereinstimmung (match) eintritt, ist der Detektor in der Lage, das Wort innerhalb
des Satzes zu identifizieren, und diese Information wird an den eine Auswahl des Datenwortes gestattenden Multiplexer
55 übertragen. Diese Organisation verbessert die Zugriff szeit in dem Cachespeicher.
In Fig. 7 sind die mit der CAM-Matrix gekoppelten 21 Bits wiederum gezeigt, wobei 17 Bits an eine Komplementgenerator·
1 7
und Korrekturschaltung 56 und die vier Attribut-Bits an eine VUDW-Logikschaltung 5 7 angelegt sind. Die 3 mit der Detektorauswahl
zusammenhängenden, in Verbindung mit Fig. 6 beschriebenen Bits sind in Fig. 7 nicht dargestellt.
Die Schaltung 56 erzeugt das richtige (true) und das komplementäre
Signal für jedes der Adressensignale und legt sie an parallele Leitungen, wie Leitungen 59 und 60, in der CAM-Matrix.
In ähnlicher Weise erzeugt die VÜDW-Logik 5 7 sowohl das richtige als auch das komplementäre Signal für die Attribut-
-Bits und koppelt sie mit parallelen Leitungen in der Matrix. Die Leitungen 59 und 60 sind für jede der richtigen und der
komplementären Bit-Leitungen dupliziert (d.h., 21 Paare von Bit- und Bit-Leitungen).
Jede der 32 Zeilen in der CAM-Matrix weist ein Paar paralleler Zeilen-Leitungen, wie Leitungen 6 8 und 70, auf. Eine gewöhnliche
statische Speicherzelle, wie Speicherzelle 67, ist zwischen jeder der Bit- und Bit-Leitungen (Spalten) gekoppelt und
ist mit dem Paar der Zeilen-Leitungen verbunden. In der gegenwärtig bevorzugten Ausführungsform enthalten die Speicherzellen
gewöhnliche statische Flip-Flop-Zellen mit p-Kanal-Transistoren. Eine Leitung jedes Paares von Zeilen-Leitungen (Leitung
70) gestattet es, die Speicherzelle mit der Bit- und Bit-Leitung zu koppeln, wenn Daten in die Matrix geschrieben
werden. Andererseits wird der Inhalt der Speicherzelle mit den Daten auf den Spalten-Leitungen verglichen, und das Ergebnis
des Vergleichs wird auf die Trefferleitung 68 übertragen. Der
Vergleich erfolgt über Komparatoren, von denen einer mit jeder Zelle verbunden ist. Der Komparator weist die n-Kanal-Transistoren
61 bis 64 auf. Jedes Paar der Komparator-Transistoren, z.B. Transistoren 61 und 62, ist zwischen einer Seite der
Speicherzelle und der gegenüberliegenden Bit-Leitung angeordnet.
18
Es sei angenommen, daß eine Information in der Speicherzelle 67 gespeichert ist und daß der der Bit-Leitung 59 nächste
Knoten auf einem hohen Potential (hoch) liegt. Wenn die Inhalte des CAM geprüft werden, wird zunächst die Trefferleitung
durch den Transistor 69 vorgespannt. Dann werden die mit dem CAM gekoppelten Signale auf die Spalten-Leitungen gegeben. Es
sei angenommen, daß die Leitung 59 zunächst auf einem hohen Potential liegt. Transistor 62 ist nicht leitend, da die Leitung
60 auf einem niedrigen Potential (niedrig) liegt. Transistor 63 leitet nicht, weil die Seite der Zelle, mit der er
verbunden ist, niedrig liegt. Bei diesen Bedingungen wird Leitung 68 nicht entladen, was anzeigt, daß ein Abgleich
(match) in der Zelle stattgefunden hat. Die Trefferleitung 68 bewirkt eine UND-Verknüpfung der entlang der Zeile stattfindenden
Vergleiche. Wenn ein Abgleich nicht stattfindet, bewirken einer oder mehrere der Komparatoren ein Entladen der Trefferleitung.
Während des Vorspannens erzeugen die Elemente 56 und 57 ein Korrektursignal (override signal), das alle Spalten-Leitungen
(beide, Bit und Bit) niedrig setzt. Dieses verhindert es, daß die Komparatoren die Ladung von den Trefferleitungen abziehen,
bevor der Vergleich beginnt.
Es sei erwähnt, daß die Komparatoren die "binär Eins"-Bedingung prüfen und die "binär NuI!"-Situation nicht beachten. Das
heißt zum Beispiel, daß die Transistoren 63 und 64 den Vergleich steuern, wenn das Gate des Transistors 6 4 hoch liegt
(Leitung 59 hoch). Ähnlich steuern die Transistoren 61 und 62 den Vergleich, wenn die Bit-Leitung 60 hoch liegt. Diese
Eigenheit des Komparators erlaubt es, Zellen nicht zu beachten. Auf diese Weise können, wenn ein Wort mit dem CAM gekoppelt
ist, bestimmte Bits von dem Vergleichsprozeß (Abgleich)
19
dadurch ausgeblendet werden, daß sowohl die Bit- als auch die Bit-Leitungen, niedrig gelegt werden. Dadurch wird offenbar,
daß sich der Inhalt der Zelle dem Zustand auf den Spalten-Leitungen anpaßt. Dieses Merkmal wird von der VUDW-Logik-Schaltung
57 benutzt.
Mikrocodesignale, die mit der Logikschaltung 57 gekoppelt sind, bewirken, daß die Bit- und Bit-Leitungen für ausgewählte
Attribut-Bits als Funktion der Mikrocode-Bits niedrig liegen. Dies führt dazu, daß das mit diesem Bit assoziierte Attribut
ignoriert wird. Dieses Merkmal wird z.B. verwendet, um das U/S-Bit beim Supervisor-Modus zu ignorieren. Das bedeutet, daß
der Supervisor-Modus auf Benutzer-Daten Zugriff haben kann. Ähnlich kann das Lese-/Schreib-Bit ignoriert werden, wenn
gelesen wird oder wenn der Supervisor-Modus aktiv ist. Das "dirty"-Bit wird ebenfalls beim Lesen ignoriert (das Merkmal
wird nicht für das "gültig"-Bit benutzt).
Wenn die Attribut-Bits im Hauptspeicher gespeichert werden, können sie zugegriffen und geprüft und Logik-Schaltungen benutzt
werden, um den Zugriff, z.B. basierend auf dem Einsoder Null-Zustand des "U/S"-Bits zu steuern. Jedoch wird zusammen
mit dem Cachespeicher keine separate Logik verwendet. Wird erzwungen, daß sowohl die Bit- als auch die Bit-Leitung
niedrig liegen, wird im Ergebnis die zusätzliche Logik durch das Gestatten eines Abgleiches oder durch das Verhindern eines
Fehlers geschaffen, obwohl die Bit-Muster der Attribut-Bits nicht angepaßt sind.
Der Detektor aus Fig. 6 beinhaltet, wie in Fig. 8 dargestellt, eine Mehrzahl von NOR-Gattern, wie die Gatter 81, 82, 83 und
84. Drei der Trefferleitungen aus dem ausgewählten Satz von CAM-Leitungen sind mit dem Gatter 81 gekoppelt; diese sind als
Leitungen A, B und C dargestellt. Eine andere Kombination der
20
Leitungen ist mit jedem der anderen NOR-Gatter verbunden. Z.B. erhält das NOR-Gatter 84 die Trefferleitungen D, A und B. Der
Ausgang jedes der NOR-Gatter ist ein Eingang für ein NAND-Gatter, wie NAND-Gatter 86. Eine Trefferleitung bildet einen
Eingang für jedes NAND-Gatter. Diese Leitung ist diejenige (der vier A, B, C, D), die kein Eingang zu dem NOR-Gatter ist.
Dies ist auch die Bit-Leitung von dem auszuwählenden Satz-Eingang. Z.B. sollte das Gatter 86 den Satz auswählen, der der
Trefferleitung D zugeordnet ist. Z.B. ist die Trefferleitung D
im Falle des NOR-Gatters 81 mit dem NAND-Gatter 86 gekoppelt.
Ähnlich sind die Trefferleitung C und der Ausgang des Gatters
84 die Eingänge für das NAND-Gatter 90. Ein Lese-Freigabesignal
ist ebenfalls mit den NAND-Gattern gekoppelt, um zu verhindern, daß die Ausgänge dieser Logik für ein Schreiben freigegeben
werden. Der Ausgang der NAND-Gatter, z.B. Leitung 87, wird benutzt, um den Multiplexer 55 aus Fig. 6 zu steuern.
Praktisch steuert das Signal des NAND-Gatters, wie das Signal auf Leitung 87, den Multiplexer durch p-Kanal-Transistoren.
Zur Erläuterung ist ein zusätzlicher Inverter 88 mit einer Ausgangsleitung 89 dargestellt.
Der Vorteil dieses Detektors ist, daß er die Verwendung von Vorspann-Leitungen im Multiplexer 55 ermöglicht. Alternativ
dazu könnte eine statische Anordnung verwendet werden, die aber merklich mehr Leistung erfordern würde. Mit der in Fig. 8
dargestellten Anordnung bleibt der Ausgang der Inverter solange in demselben Zustand, bis ein Potentialabfall auf einer der
Trefferleitungen auftritt. Wenn dies passiert, fällt des Potential auf nur einer einzigen Ausgangsleitung ab, so daß der
Multiplexer das korrekte Wort auswählen kann.
Vorstehend wurde eine besondere Adressen-Umsetzeinheit beschrieben,
die zwei Niveaus des Cache-Speichers benutzt, eines für die Segmentierung und eines für das Paging. Eine unabhän-
21
2A
gige Daten-Attribut-Steuerung (z.B. Schutz) ist auf jedem
Niveau vorgesehen.
Claims (25)
1. Mikroprozessor-System mit einem Mikroprozessor (10) und einem Datenspeicher (13), wobei der Mikroprozessor einen Segmentierungsmechanismus
zum Umsetzen einer virtuellen Speicheradresse in eine zweite Speicheradresse und zum Steuern von
Daten auf der Basis von Attributen aufweist, dadurch gekennzeichnet ,
daß mit dem Mikroprozessor ein Seiten-Cachespeicher (22a) integriert ist, der ein erstes Feld der zweiten Speicheradresse
aufnimmt und mit dem Inhalt des Seiten-Cachespeichers vergleicht, um unter bestimmten Bedingungen ein zweites Feld
bereitzustellen,
daß der Datenspeicher (13) einen Speicher für Seiten-Abbildungsdaten
aufweist und das erste Feld der zweiten Speicheradresse mit dem Datenspeicher gekoppelt ist, um ein drittes
Feld aus den Seiten-Daten auszuwählen, wenn die bestimmten Bedingungen des Seiten-Cachespeichers nicht erfüllt sind, und
daß das Mikroprozessorsystem eine Schaltung zum Kombinieren des zweiten oder dritten Feldes mit einem Offset-Feld der
ersten Adresse zur Schaffung einer physikalischen Adresse für den Datenspeicher aufweist,
wodurch die physikalische Adressierbarkeit des Datenspeichers verbessert wird.
2. Mikroprozessorsystem nach Anspruch 1, dadurch gekennzeichnet, daß der Seiten-Cachespeicher und der Speicher für
die Seitendaten Informationen über die Attribute von Speicherseiten
enthält.
3. Mikroprozessorsystem nach Anspruch 2, dadurch gekennzeichnet, daß der Speicher für die Seiten-Abbildungsdaten
zumindest ein Seiten-Verzeichnis und zumindest eine Seiten-Tabelle aufweist.
4. Mikroprozessorsystem nach Anspruch 3, dadurch gekennzeichnet,
daß sowohl das Seiten-Verzeichnis als auch die Seiten-Tabelle
die Attribute für die Speicherseiten speichern.
5. Mikroprozessorsystem nach Anspruch 4, dadurch gekennzeichnet, daß zumindest einige der Attribute, die in dem Seiten-Verzeichnis
und der Seiten-Tabelle gespeichert sind, in dem Seiten-Cachespeicher logisch kombiniert und gespeichert
sind.
6. Mikroprozessorsystem nach Anspruch 5, dadurch gekennzeichnet,
daß der Mikroprozessor eine Seiten-Verzeichnis-Basis
für das Seiten-Verzeichnis bereitstellt.
7. Mikroprozessorsystem nach Anspruch 6, dadurch gekennzeichnet, daß ein erster Abschnitt des ersten Feldes einen
Index in die Seiten-Verzeichnis-Basis an einen Platz in dem Seiten-Verzeichnis bereitstellt.
8 . Mikroprozessorsystem nach Anspruch 7, dadurch gekennzeichnet,
daß die Plätze in dem Seiten-Verzeichnis Seiten-Tabellen-Basen
speichern und daß ein zweiter Abschnitt des ersten Feldes einen Index in die Seiten-Tabelle an einem Seiten-Tabellen-Platz
in dem Datenspeicher liefert.
9. Mikroprozessorsystem nach Anspruch 8, dadurch gekennzeichnet, daß die Plätze in der Seiten-Tabelle eine Basis für
Seiten in dem Datenspeicher bereitstellen.
10. Mikroprozessorsystem nach Anspruch 2, dadurch gekennzeichnet,
daß der Seiten-Cachespeicher einen Assoziativspeicher (CAM) und einen Seiten-Basisspeicher aufweist, wobei der
Ausgang des CAM Seitenbasen für den Datenspeicher von dem Seiten-Basis-Speicher auswählt.
11. Mikroprozessorsystem nach Anspruch 10, dadurch gekennzeichnet,
daß der CAM Attribute von Datenspeicherseiten speichert.
12. Mikroprozessorsystem nach Anspruch 11, dadurch gekennzeichnet,
daß der CAM Mittel zum selektiven Ausblenden (masking) von zumindest einem der Attribute während des Vergleichs
aufweist.
13. Speichermanagementanordnung für ein Mikroprozessorsystem,
dadurch gekennzeichnet, daß mit dem Mikroprozessor ein Seiten-Cachespeicher (22a) integriert ist, der ein erstes Feld
der zweiten Speicheradresse aufnimmt und mit dem Inhalt des Seiten-Cachespeichers vergleicht, um unter bestimmten Bedingungen
ein zweites Feld bereitzustellen, daß der Datenspeicher einen Speicher für Seiten-Abbildungsdaten
aufweist und das erste Feld der zweiten Speicheradresse mit dem Datenspeicher gekoppelt ist, um ein drittes Feld aus
den Seiten-Daten auszuwählen, wenn die bestimmten Bedingungen des Seiten-Cachespeichers nicht erfüllt sind und daß das Mikroprozessorsystem
eine Schaltung zum Kombinieren des zweiten oder dritten Feldes mit einem Offset-Feld der ersten Adresse
zur Schaffung einer physikalischen Adresse für den Datenspeicher aufweist,
wodurch die physikalische Adressierbarkeit des Datenspeichers verbessert wird.
14. Anordnung nach Anspruch 13, dadurch gekennzeichnet, daß
der Segmentierungsmechanismus mit dem Mikroprozessor (10) integrale Segment-Deskriptor-Register (21) zum Bereitstellen
einer Segmentbasis aufweist und der Datenspeicher (13) eine Segment-Deskriptor-Tabelle (25) enthält, welche von einem
Segment-Feld der ersten Adresse zugreifbar ist.
15. Anordnung nach Anspruch 14, dadurch gekennzeichnet, daß
der Seiten-Cachespeicher und der Speicher für die Seiten-Daten Informationen über die Attribute der Speicher-Seiten enthält.
16. Anordnung nach Anspruch 15, dadurch gekennzeichnet, daß
der Speicher für die Seiten-Abbildungs-Daten ein Seiten-Verzeichnis und eine Seiten-Tabelle aufweist.
17. Anordnung nach Anspruch 16, dadurch gekennzeichnet, daß
sowohl das Seiten-Verzeichnis als auch die Seiten-Tabelle zur Speicherung der Attribute für die Speicher-Seiten vorgesehen
sind.
18. Anordnung nach Anspruch 17, dadurch gekennzeichnet, daß
zumindest einige der in dem Seiten-Verzeichnis und der Seiten- -Tabelle gespeicherten Attribute in dem Seiten-Cachespeicher
logisch verknüpft und gespeichert sind.
19. Adressen-Umsetzeinheit als Teil eines mit einem Datenspeicher
zusammenarbeitenden Mikroprozessors, dadurch gekennzeichnet, daß Segment-Deskriptor-Register (21) vorgesehen
sind, die eine virtuelle Adresse aufnehmen und eine Segment- -Basis bereitstellen, daß eine Segment-Deskriptor-Tabelle (25)
in dem Datenspeicher (13) vorgesehen ist, die in Abhängigkeit vom Anlegen einer Adresse an den Datenspeicher (13) durch den
Mikroprozessor (10) adressierbar ist und eine zweite Segment- -Basis-Adresse liefert, daß die zweite Basisadresse und ein
Teil der virtuellen Adresse von dem Mikroprozessor (10) zur Erzeugung einer zweiten Speicheradresse verwendbar ist, daß
ein Seiten-Cachespeicher (22) vorgesehen ist, der ein erstes Feld der zweiten Speicheradresse aufnimmt und mit dem Inhalt
des Seiten-Cachespeichers vergleicht, um unter gewissen zweiten Bedingungen ein zweites Feld zu erzeugen, und daß der
Mikroprozessor das erste Feld an eine Seiten-Datentabelle im Datenspeicher anlegt, um das zweite Feld bereitzustellen, wenn
die zweiten Bedingungen nicht erfüllt sind, wobei das zweite Feld eine Seiten-Basis für den Datenspeicher bildet.
20. Adressen-Umsetzeinrichtung nach Anspruch 19, dadurch gekennzeichnet, daß die Segment-Deskriptor-Register (21) zur
Speicherung von Segment-Daten-Attributen und der Seiten-Cachespeicher (22) zur Speicherung von Seiten-Daten-Attributen
vorgesehen ist.
21. Assoziativspeicher (CAM), insbesondere für ein Mikroprozessorsystem
nach einem der Ansprüche 1 bis 12, gekennzeichnet durch
mehrere Puffer (56), die jeweils erste Signale (BIT) aufnehmen und die ersten Signale (BIT) und zweite Signale
(BIT) ausgeben, wobei die zweiten Signale Komplementärwerte der ersten Signale sind,
mehrere, generell parallele Leitungspaare (59, 60), die so angeordnet sind, daß sie jeweils mit einem der ersten und
zweiten Signale beaufschlagt sind,
mehrere zwischen jedem Leitungspaar angeordnete Speicherzellen (67), die generell quer zu den Leitungspaaren in Zeilen
angeordnet sind, mehrere Zeilen-Komparator-Leitungen (68), von denen eine jeder der Zeilen zugeordnet ist,
mehrere Komparatoren (61 ... 64), die jeweils das zugehörige
Leitungspaar (59, 60) und eine der Komparatorleitungen zwischen jeder der Speicherzellen koppeln und einen in der
Speicherzelle gespeicherten Binärzustand mit den ersten und zweiten Signal vergleichen, und Lademittel zum Laden von Daten
aus den Leitungspaaren in die Zellen, wobei die Komparatoren entaktiviert werden, wenn die ihnen zugeordneten Paare von
Leitungen beide in einem vorgegebenen Binärzustand gehalten sind, wobei die Anordnung so getroffen ist, daß ausgewählte
Zellen für den Vergleich ignonierbar sind, wenn wenigstens einige der Puffer zur Herstellung des vorgegebenen Binärzustandes
für die ersten und zweiten Signale veranlaßt werden.
22. Assoziativspeicher nach Anspruch 21, dadurch gekennzeichnet, daß Mittel (69) zum Vorspannen der Zeilen-Komparator-Leitungen
(68) vorgesehen sind.
23. Assoziativspeicher nach Anspruch 21 oder 22, dadurch gekennzeichnet, daß ein mehrere Abschnitte enthaltender Speicher
vorgesehen ist, bei dem auf Daten in allen Abschnitten gleichzeitig Zugriff genommen wird, und daß ein Ausgang eines
der Abschnitte durch die Zeilen-Leitungen selektierbar ist.
24. Assoziativspeicher nach einem der Ansprüche 21 bis 23, dadurch gekennzeichnet, daß mit einer vorgegebenen Anzahl der
Zeilen-Leitungen Detektoren gekoppelt sind, die abfragen, welche der vorbestimmten Anzahl von Leitungen geladen bleibt.
25. Assoziativspeicher nach Anspruch 23 oder 24, dadurch gekennzeichnet, daß die Ausgabe von einem der Abschnitte durch
die Detektoren bewirkt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74438985A | 1985-06-13 | 1985-06-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3618163A1 true DE3618163A1 (de) | 1986-12-18 |
DE3618163C2 DE3618163C2 (de) | 1995-04-27 |
Family
ID=24992533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3618163A Expired - Lifetime DE3618163C2 (de) | 1985-06-13 | 1986-05-30 | Speichermanagementanordnung für ein Mikroprozessorsystem |
Country Status (8)
Country | Link |
---|---|
JP (1) | JPH0622000B2 (de) |
KR (1) | KR900005897B1 (de) |
CN (1) | CN1008839B (de) |
DE (1) | DE3618163C2 (de) |
FR (1) | FR2583540B1 (de) |
GB (2) | GB2176918B (de) |
HK (1) | HK53590A (de) |
SG (1) | SG34090G (de) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1988007721A1 (en) * | 1987-04-02 | 1988-10-06 | Unisys Corporation | Associative address translator for computer memory systems |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5251308A (en) * | 1987-12-22 | 1993-10-05 | Kendall Square Research Corporation | Shared memory multiprocessor with data hiding and post-store |
US5341483A (en) * | 1987-12-22 | 1994-08-23 | Kendall Square Research Corporation | Dynamic hierarchial associative memory |
US5226039A (en) * | 1987-12-22 | 1993-07-06 | Kendall Square Research Corporation | Packet routing switch |
US5761413A (en) | 1987-12-22 | 1998-06-02 | Sun Microsystems, Inc. | Fault containment system for multiprocessor with shared memory |
CA2078312A1 (en) | 1991-09-20 | 1993-03-21 | Mark A. Kaufman | Digital data processor with improved paging |
US5313647A (en) * | 1991-09-20 | 1994-05-17 | Kendall Square Research Corporation | Digital data processor with improved checkpointing and forking |
CA2078315A1 (en) * | 1991-09-20 | 1993-03-21 | Christopher L. Reeve | Parallel processing apparatus and method for utilizing tiling |
GB2260629B (en) * | 1991-10-16 | 1995-07-26 | Intel Corp | A segment descriptor cache for a microprocessor |
US5895489A (en) * | 1991-10-16 | 1999-04-20 | Intel Corporation | Memory management system including an inclusion bit for maintaining cache coherency |
CN1068687C (zh) * | 1993-01-20 | 2001-07-18 | 联华电子股份有限公司 | 存录多段语音的存储器动态分配方法 |
EP0613090A1 (de) * | 1993-02-26 | 1994-08-31 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Verfahren zur Prüfung der Zulässigkeit von direkten Speicherzugriffen in Datenverarbeitungsanlagen |
US5548746A (en) * | 1993-11-12 | 1996-08-20 | International Business Machines Corporation | Non-contiguous mapping of I/O addresses to use page protection of a process |
US5590297A (en) * | 1994-01-04 | 1996-12-31 | Intel Corporation | Address generation unit with segmented addresses in a mircroprocessor |
US6622211B2 (en) * | 2001-08-15 | 2003-09-16 | Ip-First, L.L.C. | Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty |
KR100406924B1 (ko) * | 2001-10-12 | 2003-11-21 | 삼성전자주식회사 | 내용 주소화 메모리 셀 |
US7689485B2 (en) | 2002-08-10 | 2010-03-30 | Cisco Technology, Inc. | Generating accounting data based on access control list entries |
GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
US7171539B2 (en) | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
GB2396930B (en) | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
KR101015456B1 (ko) | 2002-11-18 | 2011-02-22 | 에이알엠 리미티드 | 디바이스에 의한 메모리로의 억세스 제어 |
US7149862B2 (en) | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
US7900017B2 (en) * | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
EP1654657A4 (de) * | 2003-07-29 | 2008-08-13 | Cisco Tech Inc | Force-no-hit-anzeigen für cam-einträge auf der basis von richtlinienabbildungen |
US20060090034A1 (en) * | 2004-10-22 | 2006-04-27 | Fujitsu Limited | System and method for providing a way memoization in a processing environment |
GB2448523B (en) * | 2007-04-19 | 2009-06-17 | Transitive Ltd | Apparatus and method for handling exception signals in a computing system |
US8799620B2 (en) | 2007-06-01 | 2014-08-05 | Intel Corporation | Linear to physical address translation with support for page attributes |
KR101671494B1 (ko) | 2010-10-08 | 2016-11-02 | 삼성전자주식회사 | 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법 |
FR3065826B1 (fr) * | 2017-04-28 | 2024-03-15 | Patrick Pirim | Procede et dispositif associe automatises aptes a memoriser, rappeler et, de maniere non volatile des associations de messages versus labels et vice versa, avec un maximum de vraisemblance |
KR20200077287A (ko) * | 2018-12-20 | 2020-06-30 | 에스케이하이닉스 주식회사 | 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4376297A (en) * | 1978-04-10 | 1983-03-08 | Signetics Corporation | Virtual memory addressing device |
US4442482A (en) * | 1982-09-30 | 1984-04-10 | Venus Scientific Inc. | Dual output H.V. rectifier power supply driven by common transformer winding |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA784373A (en) * | 1963-04-01 | 1968-04-30 | W. Bremer John | Content addressed memory system |
GB1281387A (en) * | 1969-11-22 | 1972-07-12 | Ibm | Associative store |
US3761902A (en) * | 1971-12-30 | 1973-09-25 | Ibm | Functional memory using multi-state associative cells |
GB1457423A (en) * | 1973-01-17 | 1976-12-01 | Nat Res Dev | Associative memories |
GB1543736A (en) * | 1976-06-21 | 1979-04-04 | Nat Res Dev | Associative processors |
GB1595740A (en) * | 1978-05-25 | 1981-08-19 | Fujitsu Ltd | Data processing apparatus |
US4377855A (en) * | 1980-11-06 | 1983-03-22 | National Semiconductor Corporation | Content-addressable memory |
GB2127994B (en) * | 1982-09-29 | 1987-01-21 | Apple Computer | Memory management unit for digital computer |
WO1984002784A1 (en) * | 1982-12-30 | 1984-07-19 | Ibm | Virtual memory address translation mechanism with controlled data persistence |
-
1985
- 1985-08-08 GB GB8519991A patent/GB2176918B/en not_active Expired
- 1985-08-30 FR FR858512931A patent/FR2583540B1/fr not_active Expired - Lifetime
- 1985-08-30 JP JP60189994A patent/JPH0622000B2/ja not_active Expired - Lifetime
- 1985-09-05 KR KR1019850006490A patent/KR900005897B1/ko not_active IP Right Cessation
- 1985-09-06 CN CN85106711A patent/CN1008839B/zh not_active Expired
-
1986
- 1986-05-23 GB GB8612679A patent/GB2176920B/en not_active Expired
- 1986-05-30 DE DE3618163A patent/DE3618163C2/de not_active Expired - Lifetime
-
1990
- 1990-05-15 SG SG340/90A patent/SG34090G/en unknown
- 1990-07-19 HK HK535/90A patent/HK53590A/xx not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4376297A (en) * | 1978-04-10 | 1983-03-08 | Signetics Corporation | Virtual memory addressing device |
US4442482A (en) * | 1982-09-30 | 1984-04-10 | Venus Scientific Inc. | Dual output H.V. rectifier power supply driven by common transformer winding |
Non-Patent Citations (3)
Title |
---|
Honeywell "DPS 8 Assembly Instructions", April 1980 * |
TANENBAUM, A.S.: "Structured Computer organi- sation, Prentice Hall, Inc., Englewoods Cliffs, N.J. 1976, S. 249-280 * |
US-Z.: COMPUTER DESIGN, Oktober 1983, S. 213-214, 216-218, 220 * |
Also Published As
Publication number | Publication date |
---|---|
JPS61286946A (ja) | 1986-12-17 |
KR900005897B1 (ko) | 1990-08-13 |
GB2176918B (en) | 1989-11-01 |
KR870003427A (ko) | 1987-04-17 |
HK53590A (en) | 1990-07-27 |
GB8519991D0 (en) | 1985-09-18 |
CN1008839B (zh) | 1990-07-18 |
CN85106711A (zh) | 1987-02-04 |
GB2176920B (en) | 1989-11-22 |
DE3618163C2 (de) | 1995-04-27 |
FR2583540A1 (fr) | 1986-12-19 |
SG34090G (en) | 1990-08-03 |
JPH0622000B2 (ja) | 1994-03-23 |
GB8612679D0 (en) | 1986-07-02 |
GB2176918A (en) | 1987-01-07 |
GB2176920A (en) | 1987-01-07 |
FR2583540B1 (fr) | 1991-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3618163A1 (de) | Speicher-management fuer ein mikroprozessorsystem | |
DE3724317C2 (de) | ||
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE3011552C2 (de) | ||
DE69637294T2 (de) | Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE19526007C2 (de) | Horizontal partitionierter Befehls-Cache-Speicher | |
DE3909896A1 (de) | Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten | |
DE19526960A1 (de) | Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung | |
DE102004027121B4 (de) | Ein Mehrfachbankchip, der mit einer Steuerung kompatibel ist, die für eine geringere Anzahl von Banken entworfen ist, und ein Verfahren zum Betreiben | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
EP1291878B1 (de) | Steuereinrichtung zur Steuerung von Burst-Zugriffen | |
DE3151745A1 (de) | Multitasking-datenverarbeitungsanlage | |
DE2059917A1 (de) | Datenspeicher | |
DE10307244A1 (de) | Automatische Vorladesteuerungsschaltung und zugehöriges Vorladesteuerungsverfahren | |
DE3534356A1 (de) | Halbleiter-speichervorrichtung | |
EP0282976B1 (de) | Verfahren und Schaltungsanordnung zum parallelen Einschreiben von Daten in einen Halbleiterspeicher | |
DE2134816A1 (de) | Einrichtung zur adressenuebersetzung | |
DE19641237B4 (de) | Halbleiterspeichervorrichtung | |
DE1574502A1 (de) | Assoziativspeicher | |
DE112007003117T5 (de) | Neue Implementierung der Spaltenredundanz für einen Flash-Speicher mit einem hohen Schreibparallelismus | |
DE4330100A1 (de) | Verfahren und Vorrichtung für die Auffrischung eines dynamischen Random-Speichers | |
EP0134822B1 (de) | Digitalspeicher | |
DE69907800T2 (de) | Schnelle DRAM-Anordnung | |
DE3216238C1 (de) | Datenverarbeitungsanlage mit virtueller Teiladressierung des Pufferspeichers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 12/08 |
|
D2 | Grant after examination | ||
8363 | Opposition against the patent | ||
8365 | Fully valid after opposition proceedings |