DE3618163A1 - Speicher-management fuer ein mikroprozessorsystem - Google Patents

Speicher-management fuer ein mikroprozessorsystem

Info

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
Application number
DE19863618163
Other languages
English (en)
Other versions
DE3618163C2 (de
Inventor
John H. Santa Clara Calif. Crawford
Paul S. San Jose Calif. Ries
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE3618163A1 publication Critical patent/DE3618163A1/de
Application granted granted Critical
Publication of DE3618163C2 publication Critical patent/DE3618163C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/10Address translation
    • G06F12/1027Address 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.
Mikroprozessor-Gesamtarchitektur
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.
Segmentierungsmechanismus
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.
Seiten-Deskriptor-Cachespeicher
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.
Seiten-Adressierung für die Kein-Treffer-Bedingung
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.
Seitenverzeichnis-Attribute
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.
Organisation des Seiten-Deskriptor-Cachespeichers
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.
Assoziativspeicher (CAM)
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)

PATENTANWÄLTE ZENZ & HELBER · D 4300 ESSfiN 1 · AM RUHRSTEIN 1 · TEL.: (02 01) '4126 INTEL CORPORATION Ansprüche
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.
DE3618163A 1985-06-13 1986-05-30 Speichermanagementanordnung für ein Mikroprozessorsystem Expired - Lifetime DE3618163C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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