DE4019961A1 - Steuerung fuer mehrfache virtuelle adressraeume - Google Patents
Steuerung fuer mehrfache virtuelle adressraeumeInfo
- Publication number
- DE4019961A1 DE4019961A1 DE4019961A DE4019961A DE4019961A1 DE 4019961 A1 DE4019961 A1 DE 4019961A1 DE 4019961 A DE4019961 A DE 4019961A DE 4019961 A DE4019961 A DE 4019961A DE 4019961 A1 DE4019961 A1 DE 4019961A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- register
- access
- logical
- memory
- 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
- 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]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Description
Die vorliegende Erfindung bezieht sich auf Vorrichtungen
und Verfahren zur Speicheradressierung in einer daten
verarbeitenden Anlage, insbesondere auf eine Vorrichtung
und ein Verfahren der Speicheradressierung, die sich in einer
Datenverarbeitungsanlage, die nach einem Verfahren mehr
facher virtueller Räume arbeitet, für einen Adreßüber
setzungs-Indexpuffermechanismus eignen.
Es ist ein Verfahren bekannt, bei dem Adreßräume jeweils
Basisregistern zugeordnet sind, von denen jedes
eine Basisadresse hat, so daß ein Anwenderprogramm auf
die Adreßräume zugreifen kann, ohne einen be
stimmten Adreßraum-Umschaltbefehl zu benutzen. In dem
in der US-Patentschrift 43 55 355 (entsprechend JP-B
60-22 377) beschriebenen Adreßsteuermechanismus sind bei
spielsweise in Verbindung mit einer Gruppe von allgemeinen
Registern, die als Basisregister verwendet werden können,
Zugriffsregister vorgesehen, um einen Segmenttabellenur
sprung (STO - entsprechend englisch segment table origin)
entsprechend den Adreßräumen zu speichern. Wenn mit Hilfe
eines Befehls eines der allgemeinen Register als ein
Basisregister spezifiziert wird, liest das System einen
STO aus dem zugehörigen Zugriffsregister, um ihn in einer
Adreßübersetzung zu benutzen. Durch alleiniges Ändern
der Festlegung der Basisregister kann demzufolge auf die
verschiedenen Adreßräume zugegriffen werden.
Um die Übersetzungsgeschwindigkeit einer Übersetzung von
einer logischen Adresse, die eine virtuelle Adresse dar
stellt, in eine absolute (physikalische) Adresse zu er
höhen, wird ein Adreßübersetzungspuffer, oder genauer
ein Übersetzungsnachschlagepuffer (TLB - von englisch
translation lookaside buffer) vorgesehen. In dem TLB wird
eine logische Adresse eines Bereichs, auf den zuletzt
zugegriffen wurde, paarweise zusammen mit einer damit
in Verbindung stehenden absoluten Adresse gespeichert.
Die Inhalte des TLB werden unter Verwendung einer logi
schen Adresse wiedergewonnen. Eine aus einem Befehl
stammende logische Adresse wird augenblicklich in eine
absolute Adresse unter Verwendung des Adressenpaares in
dem TLB übersetzt, wenn der zugehörige Bereich in dem
TLB registriert wurde. Mit dieser Maßnahme ist es mög
lich, den normalen Adreßübersetzungsvorgang mit Hilfe
von Segmenttabellen, Seitentabellen etc. zu vermeiden.
Sind zwei Adressierungsarten vorgesehen, die die Fest
legung eines virtuellen Raums innerhalb mehrerer virtueller
Räume und einer logischen Adresse in einem einzigen virtu
ellen Raum umfassen, wird normalerweise, wie beispielsweise
in JP-A-56-19 573 beschrieben, ein Flag vorgesehen, das
anzeigt, welcher Modus dem System zugeordnet ist. Eine
Adresse aus dem TLB wird außerdem getrennt benutzt bei
mehreren virtuellen Räumen für ein Feld, das mit einem
Identifizierer eines virtuellen Raums verknüpft ist und
in einem einzigen virtuellen Raum für eine logische Adresse,
wobei die obigen Voraussetzungen benutzt werden.
Andererseits ist ein Verfahren bekannt, bei dem zur
Minimierung der Zugriffszeit auf den Hauptspeicher
ein Hochgeschwindigkeitspufferspeicher kleiner Kapazität (Cache)
vorgesehen ist, um darin die Kopie eines Teils der im
Hauptspeicher gespeicherten Daten zu speichern. Für
den Zugriff auf den Pufferspeicher ist ein Adreßdatenfeld
(oder ein Inhaltsverzeichnis) vorgesehen. Das Adreßdaten
feld speichert absolute Adressen derjenigen Hauptspeicher
bereiche, aus denen Datenabschnitte in den jeweiligen
Bereichen des Pufferspeichers gespeichert sind. Grund
sätzlich sind der Pufferspeicher und das Adreßdatenfeld
einer auf einer absoluten Adresse beruhenden Wiederge
winnung unterworfen. In einem System aber, in dem logi
sche Adressen benutzt werden, wird die logische Adresse
in einem Abschnitt einer Wiedergewinnungsfunktion verwen
det, der dem Pufferspeicher und dem Adreßdatenfeld zuge
ordnet ist. Unter dieser Voraussetzung kann die Wieder
gewinnung aus dem Pufferspeicher und dem Adreßdatenfeld
gleichzeitig mit der Wiedergewinnung aus dem TLB durchge
führt werden, was natürlich die Zugriffszeit verkürzt.
In einem Adreßsteuermechanismus, der einen Teil einer
logischen Adresse als eine Spaltenadresse für die Adres
sierungsoperation des TLB, des Pufferspeichers und des
Adreßdatenfeldes benutzt, entsteht ein Ersetzungsproblem,
das in Verbindung mit einem Adreßraumwechsel in der Um
gebung der mehrfachen virtuellen Adreßräume in Verbindung
mit den gelegentlichen Wechselvorgängen zwischen Adreß
räumen auftauchen kann.
Wenn beispielsweise im TLB, nachdem ein Paar von Adressen
in Verbindung mit einem ersten Adreßraum eingespeichert
worden ist, der Versuch der Adressierung eines Bereichs,
der dieselbe logische Adresse wie oben, jedoch in einem
zweiten Adreßraum hat, gemacht wird, muß das Adressenpaar
durch ein Adressenpaar des zweiten Adreßraumes ersetzt
werden. Wenn danach ein Bereich derselben logischen Adresse
in dem ersten Adreßraum adressiert wird, muß das Adressen
paar für den Zugriff wiederum ersetzt werden. Das kommt
daher, daß tendenziell durch die jeweiligen Programme
logische Adressen beginnend bei einer niederzahligen Adresse
belegt werden. Und nachdem jedes Programm versucht, eine
Eintragung unter einer niederzahligen Adresse in dem Adreß
steuermechanismus abzuspeichern, passiert jedesmal, wenn
ein Programm einen Task-Wechsel in dem mehrfachen virtu
ellen Raum durchführt, eine Konkurrenz zwischen Adressen von
Eintragungen, die bis zu diesem Punkt von Tasks vorher
benutzt wurden, wodurch wieder ein neuer Task-Eintrag
registriert wird. Wenn demzufolge eine vorher ausgetauschte
Task erneut aufgerufen wird, ist, weil der vorher gespeicher
te Inhalt mit Inhalten der anderen Tasks bereits überschrie
ben wurde, eine erneute Adreßübersetzung notwendig, um
im Adreßsteuermechanismus wiederum einen neuen Inhalt
einzuspeichern, was zu einem Problem verschlechterter
Effizienz führt.
Im Falle, daß auf Bereiche mit identischen logischen
Adressen innerhalb mehrerer verschiedener Adreßräume
zyklisch zugegriffen wird, wird die obige Ersetzung dem
zufolge für jede Adreßraumumschaltung notwendig, was letzt
endlich eine regelmäßige Adreßübersetzungsverarbeitung unter
Verwendung einer Gruppe von Übersetzungstabellen für jeden
Adreßraumwechsel notwendig macht. Dies verursacht eine
nennenswerte Verminderung der TLB-Effizienz und eine
nennenswerte Erhöhung des Steuerzeitaufwands. Der zykli
sche Zugriff auf mehrere Adreßräume wie oben beschrieben,
findet beispielsweise statt, wenn mehrere große Datenfel
der in Verbindung mit logischen Adreßbereichen aus mehreren
Adreßräumen vorgesehen sind, so daß wiederholt Berechnungen
zwischen diesen Datenfeldern durchgeführt werden.
In dieser Situation kann ein anderes Problem entstehen,
wenn mehrere Programme relativ kleinen Umfangs in Multi
plextechnik abgearbeitet werden und somit ausschließlich
niederadressige Eintragungen im Adreßsteuermechanis
mus benötigen. Die hochadressigen Eintragungen sind in
diesem Fall dann in keiner Weise effizient genutzt.
Auch der Pufferspeicher und das Adreßdatenfeld begegnen
einem ähnlichen Ersetzungsproblem.
Es ist Aufgabe der vorliegenden Erfindung, die Ersetzung
bei einem Adreßraumwechsel in Verbindung mit dem TLB,
dem Pufferspeicher und dem Adreßdatenfeld überflüssig
zu machen, wodurch das obige Problem beseitigt wird.
Das Problem entsteht aus dem folgenden Grund. Bei Vor
gängen mit mehreren virtuellen Speicherräumen sind alle
Eintragungen des Adreßsteuermechanismus statisch zuge
ordnet und die Anzahl der Eintragungen in den jeweiligen
virtuellen Speicherräumen ist für alle Situationen gleich.
Demzufolge ist es unmöglich, Eintragungen flexibel aufge
teilt zwischen einem virtuellen Adreßraum mit vielen Ein
tragungen und einem virtuellen Adreßraum, dessen Eintra
gungen selten benutzt werden, zu nutzen. Anders gesagt,
im Bereich eines virtuellen Speicherraums mit vielen Ein
tragungen wird das System gelegentlich Eintragungen über
schreiben, wohingegen im Bereich eines virtuellen Speicher
raums, dessen Eintragungen selten benutzt werden, unge
nutzte Eintragungen erscheinen. Außerdem kann das obige
Problem auch durch die Benutzung eines Flags zur Auswahl
eines Adreßerzeugungsverfahrens zwischen einfachen und
mehrfachen virtuellen Speicherraumoperationen entstehen.
Das obige Problem entsteht auch bei einem Adressierungs
vorgang bei einem Zugriffsregister-Übersetzungsindex-
Puffermechanismus oder einem Zugriffsregister-Übersetzungs-
Nachschlagepuffer. In dieser Situation stellt ein verteil
barer Einheiten-Steuertabellenursprung (DUCTO - von englisch
dispatchable unit control table origin) des zweiten Steuer
registers oder ein erster ASN Sekundärtabellen-Eintragungs
ursprung (PASTEO - von englisch primary ASN second table
entry origin) des fünften Steuerregisters einen ersten
Änderungsfaktor dar, und eine Zugriffslisten-Eintragungs
nummer (ALEN - von englisch access list entry number)
des Zugriffslisten-Eintragungs-Token (ALET - von englisch
access list entry token) ist ein zweiter Änderungsfaktor.
In dem Falle nämlich, in dem viele Programme gleichzeitig
betrieben werden, von denen jedes nicht viel Speicherplatz
benötigt, ändert sich hauptsächlich der erste Änderungs
faktor DUCTO oder PASTEO. Demzufolge kann durch Abbildung
des Wechsels auf die Adresse des Zugriffsregister-Über
setzungs-Nachschlagepuffers eine Eintragung effizient
genutzt werden. Andererseits ändert sich in einem Falle,
wo eine kleine Anzahl von Programmen betrieben wird, und
jedes dieser greift auf viele Adreßräume zu, hauptsächlich
der zweite Änderungsfaktor ALEN. Demzufolge können durch
Abbildung des Wechsels auf die Adresse des Zugriffsregister-
Übersetzungs-Nachschlagepuffers die Eintragungen effizient
benutzt werden.
Um diese zwei Änderungsfaktoren in dem Adressierungsver
fahren des Zugriffsregister-Übersetzungs-Nachschlage
puffers in Betracht zu ziehen, kann, wenn die Zahlen der
den jeweiligen Änderungsfaktoren zugeordneten Eintragungen
fest sind, das Problem des obigen Adreßregister-Übersetzungs-
Nachschlagepuffers nicht beseitigt werden.
Erfindungsgemäß wird ein Schaltkreis vorgesehen, in dem
die jeweiligen Abschnitte der logischen Adressen, die
für den Zugriff auf den TLB und/oder den Pufferspeicher
und dessen Adreßdatenfeld vorgesehen sind, mit Adreßraum
identifizierungsinformationen (z. B. STO), wie sie in
einer Übersetzung von einer logischen Adresse in eine
physikalische Adresse benutzt werden, modifiziert oder
bewertet.
Wenn Speicher wie ein Adreßübersetzungs-Nachschlagepuffer
oder ein Zugriffsübersetzungsmechanismus unter Verwendung
einer mit zwei oder mehreren Anderungsfaktoren in Verbin
dung stehenden Adressen adressiert werden, durchläuft
erfindungsgemäß ein Teil oder alle der Bits der in bezug
auf die Adressierungsentscheidung dominanten Änderungs
faktoren eine Exklusiv-ODER-Verknüpfung in aufsteigender
Bitreihenfolge oder durch Invertierung der Bits, so daß
ein Ergebnis der Exklusiv-Oder-Verknüpfung als eine Adresse
übernommen wird, wodurch die Speicher mit der gesamten
Adreßbreite als dem Gegenstand der Adressierung adres
siert werden.
Im Falle, daß ein Adressierungsfaktor im gesamten System
benutzt wird, wird der Faktor in eine Vielzahl von Teil
feldern unterteilt, um die jeweiligen Teilfelder als eigene
Adressenfaktoren anzusehen, um mehrere neue Adressierungs
faktoren aufzustellen. Bei diesen Adresssierungsfaktoren
durchlaufen ein Teil oder alle Bits der im Hinblick
auf die Adressierungsentscheidung dominanten Änderungs
faktoren eine Exklusiv-ODER-Verknüpfung in aufsteigender
Bitreihenfolge oder durch Invertierung der Bits, so daß
ein Ergebnis der Exklusiv-ODER-Verknüpfung als eine
Adresse übernommen wird, wodurch die Speicher
adressiert werden.
Der oben genannte, bewertende oder modifizierende Schalt
kreis ändert Informationen (z. B. Spaltenadressen), die
zum Zugriff auf den TLB, und/oder den Pufferspeicher und
dessen Adreßdatenfeld benutzt werden, auf der Grundlage
von Adreßräumen selbst dann, wenn die Information mit
einer identischen logischen Adresse verknüpft ist. Somit
wird eine logische Adresse desselben Wertes in einem anderen
Adreßraum einer anderen Position zugeordnet. Demzufolge
wird, selbst wenn logische Adressen desselben Wertes in
mehreren verschiedenen Adreßräumen zyklisch adressiert
werden, die Ersetzung nicht in Verbindung mit dem TLB
und/oder dem Pufferspeicher und dessen Adreßdatenfeld
verursacht.
Diese und andere Aufgaben und Vorteile der vorliegenden
Erfindung werden in der folgenden Beschreibung bezug
nehmend auf die Zeichnungen ausgeführt.
Fig. 1 ist ein Blockdiagramm, das schematisch
die Skizze einer Ausführungsform entsprechend
der vorliegenden Erfindung darstellt;
Fig. 2 ist ein Blockdiagramm, das detailliert
eine Spaltenadressenmodifizierende oder
bewertende Einheit der Fig. 1 zeigt;
Fig. 3 ist ein Blockdiagramm, das prinzipiell
eine Ausführungsform eines Adreßübersetzungs-
Steuerungsmechanismus darstellt;
Fig. 4 ist ein Blockdiagramm, das eine Ausführungs
form zeigt, bei der die vorliegende Erfindung
auf die Adressierung eines Zugriffsregister-
Übersetzungs-Nachschlagepuffers angewendet
wird;
Fig. 5 ist ein Blockdiagramm, das eine andere
Ausführungsform darstellt, bei der die
vorliegende Erfindung auf die Adressierung
eines Pufferspeichers angewendet wird;
und
Fig. 6 ist ein schematisches Diagramm, das Daten
speicherinformation des Pufferspeichers
darstellt.
Fig. 1 ist ein Blockdiagramm, das prinzipiell eine Skizze
einer Ausführungsform entsprechend der vorliegenden Erfin
dung darstellt. Ein Anweisungsdecodierabschnitt 1 decodiert
eine Anweisung, um einen Verschiebungswert (DP - von
englisch displacement value) zu erzeugen, eine Index
registernummer (IX) und eine Basisregisternummer (BR).
Es ist ein Satz allgemeiner Register (GR - von englisch
general register) vorgesehen, der 16 allgemeine Register
beinhaltet. Der Inhalt eines durch die Indexregisternummer
festgelegten allgemeinen Registers, der Inhalt eines durch
das Basisregister bestimmten allgemeinen Registers und
der Verschiebungswert werden in einem Adressenaddierer
3 addiert, um eine logische Adresse 20 aus 31 Bits zu
erzeugen.
Das System umfaßt eine Reihe von Zugriffsregistern 4 (AR -
von englisch access register) mit 16 Zugriffsregistern.
Die Basisregisternummer wird auch zur Auswahl eines dieser
Zugriffsregister benutzt. Jedes Zugriffsregister beinhaltet
Informationen, die einen virtuellen Adreßraum festlegen.
Auf der Grundlage dieser Informationen wird eine Zugriffs
registerübersetzung durchgeführt, um einen Abschnitts
tabellenursprung (STO) aus 19 Bits zu erhalten, der eine
erste Adresse einer Abschnittstabelle festlegt, die für
die Adreßübersetzung benutzt wird. Ein Adreßübersetzungs
abschnitt 5 ist ausgebildet, um auf der Grundlage eines
aus dem ausgewählten Zugriffsregister ausgelesenen STO
21 und einer logischen Adresse 20 aus dem Adressenaddierer
3 durch eine bestimmte Abfolge eine absolute Adresse 22
aus 31 Bits zu erzeugen. 12 niederwertige Bits der logi
schen Adresse, die die Bits 20 bis 31 umfassen, werden
direkt als 12 niederwertige Bits der absoluten Adresse
verwendet, wohingegen die verbleibenden Bits 1 bis 19
als ein Index für eine Abschnittstabelle und eine Seiten
tabelle verwendet werden. Ein Abschnitt der auf diese
Weise erzeugten absoluten Adresse wird in den TLB 6 zu
sammen mit einem Teil der entsprechenden logischen Adresse
und des STO geladen, was später erklärt wird.
Der TLB 6 besteht in dieser Ausführungsform aus 512 Spal
ten und einer Zeile. Aus dem Abschnitt der logischen
Adresse, der als ein Index für eine Adreßübersetzungs
tabelle verwendet wird, werden neun niederwertige Bits oder
die Bits 11 bis 19 zur Auswahl einer Spalte benutzt. Je
der Eintrag in dem TLB 6 umfaßt ein Feld logischer Adres
sen (LA), ein STO-Feld, ein Gültigkeits-Feld (V - von
englisch validity), und ein Feld für absolute Adressen
(AA). In den Zeichnungen bezeichnen eingeklammerte Num
mern Bitnummern der einzelnen Felder. Das LA-Feld spei
chert zehn hochwertige Bits, nämlich die Bits 1 bis 10 der
logischen Adresse. Das daran anschließende STO-Feld spei
chert den STO aus 19 Bits in der ursprünglichen Form.
Das V-Feld aus einem Bit enthält einen Wert "1" oder "0",
wenn der zugehörige Eintrag entweder gültig oder ungül
tig ist. Das AA-Feld speichert die Bits 1 bis 19 der ab
soluten Adresse, nämlich eine Basisrahmenadresse im
Hauptspeicher. Eine TLB-Bit-Erfassungs- oder Entscheidungs-
Einheit 7 erzeugt ein TLB-Bit-Signal 23, wenn jeweils
die Werte der LA und des ASTO-Feldes, das aus dem TLB
6 gelesen wird, gleich den Werten der Bits 1 bis 10 des
Adreßaddierers 3 und des Wertes von STO 21 aus dem Adreß
register sind und das V-Feld den Wert "1" enthält.
Eine Pufferspeicher-Adreßzeile (BAA - von englisch buffer
storage address array) 8 umfaßt 512 Spalten und eine Zeile
in dieser Ausführungsform. Zur Auswahl einer dieser Spal
ten werden die Bits 16 bis 24 der logischen Adresse be
nutzt. Die jeweiligen Eintragungen entsprechen den 128-
Byte-Blöcken in dem Pufferspeicher. Jede Eintragung umfaßt
ein Feld absoluter Adressen (AA) und ein Gültigkeitsfeld
(V). Das AA-Feld ist vorgesehen, die Bits 1 bis 19 der
absoluten Adresse eines Registerblocks zu speichern. Das
V-Feld enthält einen Wert "1" oder "0", wenn der zuge
hörige Eintrag gültig oder ungültig ist. Eine BAA-Erfolgs-
Erfassungseinheit 9 erzeugt ein BAA-Erfolgs-Signal 24,
wenn der Wert des AA-Feldes aus dem TLB 6 identisch mit
dem Wert des AA-Feldes aus dem BAA 8 ist und wenn das
V-Feld aus dem BAA 8 den Wert "1" enthält.
Ein Pufferspeicher (BS - von englisch buffer storaqe)
10 umfaßt in dieser Ausführungsform 8000 Spalten und ei
ne Zeile. Die Bits 16 bis 28 der logischen Adresse werden
benutzt, um eine Spalte auszuwählen. Jede Spalte enthält
Daten zu 8 Bytes. Wenn sowohl das TLB-Erfolgs-Signal 23
und auch das BAA-Erfolgs-Signal 24 erzeugt sind, enthält
eine aus dem Pufferspeicher 10 ausgewählte Spalte den
Inhalt einer Hauptspeicheradresse, die einer speziellen
logischen Adresse eines speziellen virtuellen Adreßraumes
zugeordnet ist, was einer Ausführungseinheit den Zugriff
auf den Inhalt erlaubt.
Erfindungsgemäß ist eine Modifikationseinheit 11 zur
Modifikation oder Bewertung einer Spaltenadresse vorge
sehen. Kurz gesagt, kombiniert die Modifizierungseinheit
11 einen Abschnitt der logischen Adresse 20 aus dem Adreß
addierer 3 logisch mit einem Abschnitt des STO 21 aus
dem ausgewählten Zugriffsregister, um Spaltenadressen
25, 26 und 27 jeweils für den TLB 6, den BAA 8 und den
Pufferspeicher 10 zu erzeugen.
Fig. 2 zeigt detailliert die Modifikationseinheit 11.
Die Bits 11 bis 19 des STO 21 aus dem Zugriffsregister
werden umgeordnet durch einen Bitvertauschungs- oder
-ersetzungsschaltkreis oder eine Hash-Schaltung 30. Dieser
Schaltkreis 30 kann beispielsweise durch ein zyklisches
Schieberegister oder einen Schaufelschaltkreis aufgebaut
werden. Ein Exklusiv-ODER (EOR) Schaltkreis 31 führt bit
weise eine Exklusiv-ODER-Verknüpfung zwischen einer Aus
gabe des Bitersetzungsschaltkreises 30 und den Bits 11
bis 19 der logischen Adresse, einer Gruppe von Bits, die
für die Auswahl einer TLB-Spalte verwendet werden, durch.
Das Ergebnis wird als eine TLB-Spaltenadresse 25 weiter
geleitet. Ein weiterer Exklusiv-ODER-Schaltkreis 32 führt
eine bitweise Exklusiv-ODER-Verknüpfung zwischen einer
Ausgabe aus dem Bitersetzungsschaltkreis 30 und den Bits
16 bis 24 der logischen Adresse, einer Gruppe von Bits,
die für die Auswahl einer BAA-Spalte verwendet werden,
durch. Das Ergebnis wird als eine BAA-Spaltenadresse 26
weitergeleitet. Die Ausgabe aus dem Exklusiv-ODER-Schalt
kreis 32 wird durch die Bits 25 bis 28 der logischen
Adresse als niederwertige Bits ergänzt, um eine BS-Spalten
adresse 27 zu bilden.
Wie weiter oben werden die Spaltenadressen des TLB 6,
des BAA 8 und des BS 10 durch den STO modifiziert. Wenn
demzufolge die virtuellen Adressen, insbesondere die STO′s
voneinander verschieden sind, werden verschiedene Spalten
adressen identischen logischen Adressen zugeordnet.
Das Zugriffsregister kann anstelle des STO selbst auch
mit einer Information eines anderen Formates, die einen
virtuellen Adreßraum identifiziert, geladen sein, z. B.
mit einer Adreßraumnummer. Die Information zur Identifi
kation eines virtuellen Adreßraumes kann ebenso zur Modi
fizierung der Spaltenadresse verwendet werden.
Für die Modifikation der Spaltenadresse kann ein beliebi
ger und angepaßter Logikschaltkreis und/oder eine arith
metisch-logische Einheit verwendet werden. Vorzugsweise
wird aber ein Schaltkreis ausgewählt, der für die Diffe
renz zwischen den Werten, die dem STO oder anderen In
formationen zur Identifizierung eines virtuellen Adreß
raumes zugeordnet sind, einen großen Verstärkungswert
hat.
Fig. 3 zeigt eine andere Ausführungsform, in der die vor
liegende Erfindung auf die Adressierung eines Adreßüber
setzungs-Steuerungsmechanismus angewendet wird. Der Aufbau
nach Fig. 3 umfaßt einen Adreßübersetzungs-Steuerungs
mechanismus oder einen Übersetzungs-Nachschlagepuffer
(im folgenden TLB genannt) 6, der für 256 Eintragungen
ausgelegt ist. Jeder Eintrag im TLB 6 umfaßt ein
Gültigkeitsbit V, einen Abschnitt einer logischen Adresse
L, einen Identifizierer STO für einen virtuellen Adreßraum,
einen Abschnitt einer reellen Adresse R und ein
Paritätsteil P. Das System umfaßt außerdem ein logisches
Adreßregister 20 zur Speicherung einer logischen Adresse
LA einer Speicherabfrage und ein Register für einen Iden
tifizierer eines virtuellen Adreßraumes (im folgenden
als STO abgekürzt) 21 zur Speicherung eines gerade in
Bearbeitung befindlichen Identifizierers STO für virtuelle
Adreßräume. Bezugsnummer 11 bezeichnet einen Adreß
erzeugungsschaltkreis, der einen Bitfolge-Umkehrschalt
kreis 41 und einen Exklusiv-ODER-Schaltkreis 42 umfaßt.
Die Anordnung umfaßt Komparatoren 51 und 61 und einen
UND-Schaltkreis 71.
Das System nach Fig. 3 arbeitet wie folgt. Die Bits 1
bis 11, 12 bis 19 und 20 bis 31 der logischen Adresse
LA in dem logischen Adreßregister 20 sind jeweils ein
Segmentindex, ein Seitenindex und ein Byteindex. Es sei
hier angenommen, daß die logische Adresse LA in einem
virtuellen Speicherraum, der bei einer in etwa nieder
zahligen Adresse (Adresse 0) beginnt, zugeordnet ist und
daß der STO auch in Vorgängen mit mehreren virtuellen
Speicherräumen beginnend bei der niederrangigen Adresse
(STO = 0) benutzt wird. Da der betrachtete TLB 6
256 Eintragungen aufweist, werden acht Bits zu dessen
Adressierung benötigt. Um einer Adreßerzeugung des TLB′s
zugeordnet zu sein, werden die Bits, die sich bei einer
dynamischen Adreßübersetzung am häufigsten ändern, acht
niederrangige Bits (Bits 12 bis 19) des Seitenindex und
die des STO zur Adreßerzeugung verwendet.
Beim Adressieren des TLB 6 werden acht Bits, die die Bits
12 bis 19 des STO-Registers 21 umfassen, in ihrer Abfolge
durch den Bitfolge-Umkehrschaltkreis 41 des Adressener
zeugungsschaltkreises 11 umgekehrt. Anders gesagt, wird
das niederwertigste Bit oder Bit 19 auf die nöchstwertige
Bitposition gesetzt und das höchstwertige Bit wird auf
die niederwertigste Bitposition bewegt. Die anderen Bits
werden in ähnlicher Weise ersetzt. Nachdem die Umordnung
der Bits beendet ist, werden acht Seitenindex-Bits, die die
Bits 12 bis 19 des logischen Adreßregisters 20 umfassen,
und acht Bits des Seitenindex an die Exklusiv-ODER-Schalt
kreise 42 geliefert, die dann zwischen ihnen eine Exklusiv-
ODER-Verknüpfung durchführen. Das Ergebnis der Exklusiv-
ODER-Verknüpfung wird als eine Referenzadresse des TLB
6 gesetzt. Aus dem unter Verwendung der Adresse gewonnenen
Eintrag des TLB wird das L-Feld mit den Bits 1 bis 19
des logischen Adreßregisters 20 in dem Komparatorschalt
kreis 51 verglichen, wohingegen das STO-Feld mit allen
Bits des STO-Registers 21 im Komparator-Schaltkreis 61
verglichen wird. Die Ergebnisse dieser Vergleiche und
das Gültigkeitsbit V werden im UND-Schaltkreis 71 UND
verknüpft. Durch diese Maßnahme erfolt ein TLB-
Erfolg, wenn das Gültigkeitsbit gleich Eins und die
Anpaßbedingung in beiden Vergleichen erfüllt ist. Und
wenn die Anpassungsbedingung für einen der Vergleiche
nicht erfüllt ist, werden die L- und STO-Felder des zu
gehörigen Eintrags im TLB 6 jeweils wieder mit den Bits
1 bis 19 des logischen Adreßregisters und allen Bits des
STO-Registers 21 geladen.
Als ein erster Fall sei nun ein sehr umfangreiches Pro
gramm angenommen. Wenn in dieser Situation die logische
Adresse LA und der Identifizierer STO für einen virtuellen
Adreßraum STO eine Exklusiv-ODER-Verknüpfung durch
laufen, erfolgt als Ergebnis eine Veränderung der LA,
weil der STO in jedem Fall unverändert beibehalten wird.
Dann ist die Adressierung des TLB 6 durch den Inhalt der
LA bestimmt und somit kann der Wechsel der Bits 12 bis
19 des logischen Adreßregisters 20 in seiner Gesamtheit
als eine Adresse des TLB 6 benutzt werden. Anders gesagt,
ist in diesem Fall jede der 256 Eintragungen des TLB 6 zur
Benutzung durch eine beliebige logische Adresse in einem
durch den STO angezeigten virtuellen Speicherraum bestimmt
Als ein weiterer Fall seien acht kleine Programme angenommen,
von denen jedes eine relativ geringe Größe aufweist. In
diesem Fall werden drei niederwertige Bits des Identifi
zierers STO für virtuelle Adreßräume des STO-Registers
21 zur Identifizierung der acht virtuellen Adreßräume vari
iert. Nachdem der Adressenerzeugungsschaltkreis 11 eine
Bitfolge von acht Bits umkehrt oder umordnet, insbeson
dere Bits 12 bis 19 des STO-Registers 21, wenn die logi
sche Adresse LA des logischen Adreßregisters 20 und der
STO einer Exklusiv-ODER-Verknüpfung unterworfen werden,
ändern sich lediglich drei hochwertige Bits der Adresse des
TLB 6 in Verbindung mit einer Veränderung des STO. Dem
zufolge sind von den acht Bits zur Adressierung der 256
Eintragungen des TLB 6 fünf niederwertige Bits für eine
Variation in der logischen Adresse (LA) verfügbar. Wenn
demzufolge jedes Programm nur 32 Eintragungen in dem
TLB 6 benötigt, können, nachdem sich die Bits, die in
der Exklusiv-ODER-Verknüpfung von LA und STO variieren,
nicht überlappen, für jeden der facht virtuellen Adreßräu
me 32 Eintragungen im TLB 6 zugeordnet werden, wodurch der
TLB 6 effizient benutzt wird.
Als ein dritter Fall seien die acht Programme des zweiten
Falles angenommen, von denen eines sehr umfangreich ist,
so daß 32 Eintragungen im TLB nicht mehr ausreichen.
Wenn die logischen Adressen des umfangreichen Programms
mit den 32 Seiten der fünf niederwertigen Bits des Seiten
index nicht mehr bewältigt werden können, werden sechs
oder mehr niederwertige Bits davon benötigt; als Ergebnis
der Exklusiv-ODER-Verknüpfung zwischen der logischen Adresse
und dem STO ereignet sich in Verbindung mit den nieder
wertigen Bits des STO, in dem nur drei hochwertige Bits
variieren, eine Überlappung. Als Konsequenz wird beispiels
weise in einem Fall, bei dem sechs niederwertige Bits
des Seitenindex benutzt werden und 64 Seiten zum Betreiben
des langen Programms ausreichen, von den Eintragungen,
die von den sieben anderen Programmen benutzt werden,
eine Eintragung, die einem der sieben Programme zugeordnet
ist, überschrieben. Aber auch in diesem Fall werden die
Eintragungen von sechs anderen Programmen nicht über
schrieben und verbleiben somit für den weiteren Gebrauch un
verändert. Außerdem werden in einem Fall, bei dem der
Adressenerzeugungsschaltkreis 11 gemäß der vorliegenden
Erfindung nicht angewendet wird, die TLB-Eintragungen
aller Programme nur durch logische Adressen adressiert,
so daß möglicherweise Eintragungen jedesmal, wenn ein
Task-Wechsel stattfindet, überschrieben werden. Die Tat
sache nämlich, daß die TLB-Eintragungen der sechs Pro
gramme unverändert beibehalten werden, kann als Auswirkung
einer Verbesserung der Systemeigenschaften angesehen wer
den. Außerdem können in einem Fall, bei dem ein sehr großes
Programm nicht mit 64 Seiten, die den sechs niederwertigen
Bits des Seitenindex zugeordnet sind, zu Rande kommt,
nämlich wenn 128 Seiten notwendig sind, obwohl TLB-Ein
tragungen dreier ausgewählter der sieben Programme über
schrieben werden, die TLB-Eintragungen der verbleibenden
vier Programme effizient benutzt werden.
Fig. 4 ist ein Blockdiagramm, das eine andere Ausführungs
form entsprechend der vorliegenden Erfindung zeigt, bei
der die Konfiguration nach Fig. 1 ein Zugriffsregister-
Übersetzungsindex-Puffermechanismus oder einen Zugriffs
register-Übersetzungs-Nachschlagepuffer umfaßt, um ein
STO unter Benutzung des Zugriffsregisters 4 zu erhalten,
wodurch die Systemeigenschaften verbessert werden. Bezugs
ziffer 80 bezeichnet einen Zugriffsregister-Übersetzungs-
Nachschlagepuffer (im folgenden ALB genannt, von englisch
access register translation look-aside buffer), der wie
im Falle des TLB 6 der Fig. 3 256 Eintragungen aufweist.
Jeder Eintrag in dem ALB 80 umfaßt ein Gültigkeitsbit
V, ein ALET-Feld, ein ALDSO-Feld, ein STO-Feld und ein
Paritätsteil P. Das System umfaßt ein ALET-Register 81,
ein DUCTO 82 im zweiten Steuerregister (CR2), ein
PASTEO 83 im fünften Steuerregister (CR5) und ein
ALDSO-Register 84.
ALET wird im ALET-Register 81 eines Zugriffsregisters
gespeichert, das eine Nummer identisch zu einer Nummer
eines allgemeinen Registers, das als ein Basisregister
ausgewählt wurde, hat. Das ALET umfaßt ein Privat-Bit
P zur Auswahl des DUCTO 82 oder des PASTEO 83, wenn ent
weder das Bit 0 oder 1 ist. ALEN in ALET zeigt eine
Eintragungsnummer in der Adreßraumsteuertabelle an. Die
Eintragung in der Adreßraumsteuertabelle umfaßt eine
Adresse für einen Zugriff auf den STO. Im Zugriffsre
gister-Übersetzungsmodus wird eine Zugriffsregister
Übersetzung unter Verwendung von ALET durchgeführt, um
einen Identifizierer STO für einen virtuellen Adreßraum
zu erhalten. Der ALB 80 ist zur Speicherung eines Über
setzungsergebnisses und ähnlichem vorgesehen. Das DUCTO
82 wird mit Mitteln für den Zugriff auf eine erste Position der
Adreßraumsteuertabelle, die jeder Task zugeordnet ist,
geladen, wohingegen PASTEO 83 zur Speicherung von Zu
griffsmitteln auf eine erste Adresse einer Adreßraum
steuertabelle, die jedem Programm zugeordnet ist, benutzt
wird.
Die Anordnung nach Fig. 4 arbeitet wie folgt. Das ALET
des Zugriffsregisters 4 wird in dem ALET-Register 81 ge
speichert, dann wird DUCTO 82 oder PASTEO 83 in Abhängig
keit vom Bit 7 oder dem Privat-Bit 83 von ALET ausge
wählt. Das ausgewählte Ergebnis wird in das ALDSO-Register
84 geladen. In ALEN und ALDSO ändern sich deren Inhalte
beginnend bei der niederwertigen Bitseite. Demzufolge
werden, wenn ein ALB 80 mit 256 Eintragungen benutzt wird,
acht niederwertige Bits jeweils zur Adressierung des ALB
80 verwendet. Die Bits 18 bis 25 des ALDSO werden in ihrer
Bit-Reihenfolge durch einen Bitfolge-Umkehrschaltkreis
86 eines Adressenerzeugungsschaltkreises 87 umgekehrt.
Beispielsweise wird das höchstwertige Bit oder Bit 18
auf die niederwertigste Bitposition bewegt und das nieder
wertigste Bit oder Bit 25 in der höchstwertigen Bit
position gespeichert. Die Daten der Bitsequenz von ALDSO
durchlaufen die Bit-Reihenfolgenumkehr und die Daten von
ALEN werden einer Exklusiv-ODER-Verknüpfung für jedes
Bit in dem Exklusiv-ODER-Schaltkreis 85 unterworfen, um
eine Referenzadresse für ALB 80 zu erzeugen. Die an
schließenden Vergleiche und UND-Verknüpfungen sind prin
zipiell ähnlich zu denen aus dem Beispiel der Fig. 3.
In einem Fall, in dem ein Programm oder ein Task viele
virtuelle Adreßräume benutzt, ändern sich Inhalte oder
Bits in ALEN. In einem Fall, in dem beispielsweise 256
Adreßräume von einem Programm oder einer Task benutzt
werden, werden acht niederrangige Bits des ALEN zur
Adressierung aller 256 Eintragungen im ALB 80 be
nutzt. Und wenn eine hohe Anzahl von Programmen oder
Tasks existiert, von denen jedes nur einen Adreßraum be
nutzt, ändern sich Inhalte oder Bits in ALDSO. In einem
Fall, in dem beispielsweise 256 Programme oder Tasks ver
arbeitet werden, werden acht niederwertige Bits von ALDSO
zur Adressierung aller 256 Eintragungen im ALB 80 benutzt.
Im Adressenerzeugungsschaltkreis 87 werden acht nieder
wertige Bits von ALDSO invertiert, um eine Exklusiv-ODER-
Verknüpfung über die gesamte Bitbreite mit den acht Bits
von ALEN zu durchlaufen. Demzufolge können die 256 Ein
tragungen des ALB 80 effizient genutzt werden. Beim Ent
wurf des Systems wurde außerdem ein Augenmerk auf die
effiziente Nutzung der Eintragungen im ALB auch in einem
gemischten Fall geworfen, nämlich in einem Fall, in dem
mehrere Programme oder Tasks verarbeitet werden und auf
eine große und/oder kleine Anzahl von Adreßräumen von
den Programmen situationsabhängig zugegriffen wird. Anders
ausgedrückt ändert sich, wenn die Anzahl der zu verarbei
tenden Programme oder Tasks zunimmt, die Eintragungs
adresse beginnend bei den hochwertigen Bits (bei der
obigen Zunahme umfaßt der Zählvorgang das ALDSO beginnend
bei den niederwertigen Bits; die Bits der ALDSO-Information
werden aber in ihrer Bitreihenfolge durch den Adressen
erzeugungsschaltkreis 87 vertauscht). Wenn außerdem die
Anzahl der virtuellen Adreßräume, die von den jeweiligen
Programmen benutzt werden, erhöht wird, ändert sich die
Eintragungsadresse beginnend bei den niederwertigen Bits.
Demzufolge werden, selbst wenn mehrere Tasks oder Pro
gramme relativ kleiner Größe existieren, so daß ALEN nur
eine kleine Anzahl von Eintragungen (Adreßräumen) anzei
gen muß, die Eintragungen für die anderen Programme oder
Tasks nicht überschrieben. Außerdem überschreibt das Sy
stem auch in einem Fall, in dem einige aus mehreren Tasks
oder Programmen eine große Anzahl von Adreßräumen benutzt,
nicht alle Eintragungen der anderen gleichzeitig zu ver
arbeitenden Tasks oder Programme. Stattdessen wird nur
ein Teil der Eintragungen der Tasks oder Programme über
schrieben. Demzufolge können die unverändert belassenen
Eintragungen effizient für andere Tasks oder Programme
benutzt werden.
Fig. 5 ist ein Blockdiagramm, das eine weitere Ausführungs
form des Pufferspeichers BS 10 der Fig. 1 gemäß der vor
liegenden Erfindung zeigt.
Die Anordnung nach Fig. 5 umfaßt ein Adreßregister 20
und einen Pufferspeicher 10. Der Pufferspeicher 10 wird
in einer Einheit von 32 Bytes, die einen Block bilden, ge
steuert. Insbesondere zeigen Bits 24 bis 28 des Adreß
registers 20 eine Adresse in einem Block oder eine Byte-
Position in einem 32-Byte-Block an. Bits 1 bis 23 be
zeichnen zusätzlich eine Blockadresse eines Blocks im
Pufferspeicher 10. Da der Pufferspeicher 10 eine be
grenzte Größe hat, können nicht alle 223 Eintragungen,
die durch die Bits 1 bis 23 des Adreßregisters 20 re
präsentiert werden, im Pufferspeicher 10 gespeichert
werden. In der Struktur nach Fig. 5 nimmt der Puffer
speicher 10 256 Blocks auf, somit also 256 Eintragungen
×32 Bytes=8192 Bytes. Für die Adressierung der Blocks
im Pufferspeicher 10 können, wenn die Bits 16 bis 23 des
Adreßregisters 20 benutzt werden, die Blocks beginnend
beim Block 1 bis Block 256 im den Pufferspeicher 10 ge
laden werden. Wenn aber die Adressierung nur unter Be
nutzung der Bits 16 bis 23 des Adreßregisters 20 durchge
führt wird, ist es unmöglich, im Pufferspeicher 10 gleich
zeitig die Blocks 1 bis 64 und die Blocks 257 bis 320,
was dem Fall eines Adreßraumes nach Fig. 6 entspricht,
zu laden. In einem solchen Fall durchlaufen gemäß Fig. 5
die Bits 14 und 15 und die Bits 16 und 17 jeweils des
Adreßregisters 20 eine Exklusiv-ODER-Verknüpfung im
Exklusiv-ODER-Schaltkreis 111, um ein Ergebnis dieser
Verknüpfung als zwei hochrangige Bits einer Adresse für
die Adressierung des Pufferspeichers 10 zu verwenden.
Demzufolge können die Blocks 1 bis 64 und die Blocks 257
bis 320 mit Datenteilen beginnend jeweils bei den Adressen
"00000000" und "01000000" geladen werden. Außerdem kann
eine konventionelle Speichermethode, bei der der Puffer
speicher 10 gleichzeitig die Blöcke 1 bis 256 speichert,
auf die vorliegende Erfindung angewendet werden. Ein Bit
paar 14 und 15 und ein Bitpaar 16 und 17 des Adreßregisters
sind jeweils als Adressenfaktoren definiert.
Erfindungsgemäß werden logische Adressen, die zu ver
schiedenen Adreßräumen gehören und die identische logi
sche Adressen haben, unterschiedlichen Positionen des
TLB, des Pufferspeichers und des ALB zugeordnet. Demzu
folge findet, selbst wenn logische Adressen eines identi
schen Wertes zum Zugriff auf unterschiedliche Adreßräume
benutzt werden, eine Ersetzung in Verbindung mit dem TLB,
dem Pufferspeicher und dessen Adreßspeicherfeld nicht
statt. Demzufolge wird die Geschwindigkeit der Befehlsver
arbeitung erhöht. Außerdem führt die Anwendung der vorlie
genden Erfindung nicht zu einer Reduktion der Ausführungs
geschwindigkeit eines Programms, das nur einen einzigen
Adreßraum benutzt.
Obwohl spezielle Ausführungsformen der Erfindung dargestellt
und beschrieben wurden, ist es für den Fachmann einsichtig,
daß verschiedene Änderungen und Modifikationen durchgeführt
werden können, ohne den eigentlichen Kern der Erfindung
zu verändern.
Claims (6)
1. Steuerung für mehrere virtuelle Adreßräume mit:
mehreren ersten Registern (2), die als Basisregister verwendet werden können;
mehreren zweiten Registern, die jeweils den ersten Registern (4) zugeordnet sind, um darin Informationen für die Adreßraumidentifizierung zu halten;
Mitteln (5), um eine aus einem Befehl erhaltene logische Adresse in eine physikalische Adresse unter Verwendung der Information zur Identifizierung des Adreßraums aus dem mit dem ersten Register, das durch den Befehl als Basisregister definiert wurde, verknüpften zweiten Register zu übersetzen;
einem Adreßübersetzungspuffer (6) zum paarweisen Halten eines Teils der übersetzten physikalischen Adresse zusammen mit einem Teil der damit verbundenen logischen Adresse sowie zum Zugriff unter Verwendung des Abschnitts der logischen Adresse; und
einem Schaltkreis (11) zur Modifizierung des Teils der logischen Adresse, der für den Zugriff auf den Adreßübersetzungspuffer benutzt wird, mit der Information zur Identifizierung eines Adreßraumes aus dem zweiten Register.
mehreren ersten Registern (2), die als Basisregister verwendet werden können;
mehreren zweiten Registern, die jeweils den ersten Registern (4) zugeordnet sind, um darin Informationen für die Adreßraumidentifizierung zu halten;
Mitteln (5), um eine aus einem Befehl erhaltene logische Adresse in eine physikalische Adresse unter Verwendung der Information zur Identifizierung des Adreßraums aus dem mit dem ersten Register, das durch den Befehl als Basisregister definiert wurde, verknüpften zweiten Register zu übersetzen;
einem Adreßübersetzungspuffer (6) zum paarweisen Halten eines Teils der übersetzten physikalischen Adresse zusammen mit einem Teil der damit verbundenen logischen Adresse sowie zum Zugriff unter Verwendung des Abschnitts der logischen Adresse; und
einem Schaltkreis (11) zur Modifizierung des Teils der logischen Adresse, der für den Zugriff auf den Adreßübersetzungspuffer benutzt wird, mit der Information zur Identifizierung eines Adreßraumes aus dem zweiten Register.
2. Steuerung für mehrere virtuelle Adreßräume mit
mehreren ersten Registern (2), die als Basisregister
verwendet werden können;
mehreren zweiten Registern, die jeweils den ersten Registern (4) zugeordnet sind, um darin Informationen für die Adreßraumidentifizierung zu halten;
Mitteln (5), um eine aus einem Befehl erhaltene logische Adresse in eine physikalische Adresse unter Verwendung der Information zur Identifizierung des Adreßraums aus dem mit dem ersten Register, das durch den Befehl als Basisregister definiert wurde, verknüpften zweiten Register zu übersetzen;
einem Pufferspeicher (10) zum Halten einer Kopie eines Datenabschnitts des Hauptspeichers, auf den unter Verwendung einer logischen Adresse zugegriffen werden kann;
einem Adreßdatenfeld (8) zum Halten von Haupt speicheradressen der in dem Pufferspeicher gespeicherten Daten, auf das unter Verwendung eines Abschnitts einer logischen Adresse zugegriffen werden kann; und
einem Schaltkreis (11) zur Modifizierung des Abschnitts der logischen Adresse, der für den Zugriff auf den Pufferspeicher verwendet wird, und des Abschnitts der logischen Adresse, der für den Zugriff auf das Adreß datenfeld benutzt wird.
mehreren zweiten Registern, die jeweils den ersten Registern (4) zugeordnet sind, um darin Informationen für die Adreßraumidentifizierung zu halten;
Mitteln (5), um eine aus einem Befehl erhaltene logische Adresse in eine physikalische Adresse unter Verwendung der Information zur Identifizierung des Adreßraums aus dem mit dem ersten Register, das durch den Befehl als Basisregister definiert wurde, verknüpften zweiten Register zu übersetzen;
einem Pufferspeicher (10) zum Halten einer Kopie eines Datenabschnitts des Hauptspeichers, auf den unter Verwendung einer logischen Adresse zugegriffen werden kann;
einem Adreßdatenfeld (8) zum Halten von Haupt speicheradressen der in dem Pufferspeicher gespeicherten Daten, auf das unter Verwendung eines Abschnitts einer logischen Adresse zugegriffen werden kann; und
einem Schaltkreis (11) zur Modifizierung des Abschnitts der logischen Adresse, der für den Zugriff auf den Pufferspeicher verwendet wird, und des Abschnitts der logischen Adresse, der für den Zugriff auf das Adreß datenfeld benutzt wird.
3. Steuerung nach Anspruch 2, die außerdem aufweist:
einen Adreßübersetzungspuffer (6) zum paarweisen Halten eines Abschnitts der übersetzten physi kalischen Adresse zusammen mit einem damit in Ver bindung stehenden Abschnitt der logischen Adresse, auf den unter Verwendung eines Teils einer logischen Adresse zugegriffen werden kann; und
einen Schaltkreis (11) zur Modifizierung des Abschnitts der logischen Adresse, der für den Zugriff auf den Adreßübersetzungspuffer benutzt wird, mit den In formationen zur Identifizierung eines Adreßraums aus dem zweiten Register.
einen Adreßübersetzungspuffer (6) zum paarweisen Halten eines Abschnitts der übersetzten physi kalischen Adresse zusammen mit einem damit in Ver bindung stehenden Abschnitt der logischen Adresse, auf den unter Verwendung eines Teils einer logischen Adresse zugegriffen werden kann; und
einen Schaltkreis (11) zur Modifizierung des Abschnitts der logischen Adresse, der für den Zugriff auf den Adreßübersetzungspuffer benutzt wird, mit den In formationen zur Identifizierung eines Adreßraums aus dem zweiten Register.
4. Speicheradressierungsverfahren, bei dem ein Speicher
mit einer Adresse adressiert wird, die zwei oder mehrere
Änderungsfaktoren enthält, wobei Abschnitte oder alle
Abschnitte der Änderungsfaktoren eine Exklusiv-ODER-
Verknüpfung durchlaufen, um ein Ergebnis der Exklusiv-
ODER-Verknüpfung als eine Adresse für den Zugriff auf
einen Speicher mit einer Gesamtadreßbreite als Zugriffs
objekt zu verwenden.
5. Speicheradressierverfahren, bei dem ein darin benutzter
Adressenfaktor in mehrere Teilfelder unterteilt ist,
die als Adreßfaktoren für die Adressierung eines
Speichers gesetzt werden, worin Teile oder alle Teile
von zumindest zweien dieser Teilfelder eine Exklusiv-
ODER-Verknüpfung durchlaufen, um ein Ergebnis der
Exklusiv-ODER-Verknüpfung als eine Adresse für den
Zugriff auf einen Speicher mit einer Gesamtadreßbrei
te als Zugriffsobjekt zu benutzen.
6. Verfahren nach Anspruch 5, bei dem ein Abschnitt oder
alle Abschnitte zumindest eines Adreßfaktors oder eines
seiner Teilfelder in ihrer Reihenfolge invertiert werden,
um eine Exklusiv-ODER-Verknüpfung mit einem Abschnitt
oder allen Abschnitten eines anderen Adreßfaktors oder
eines Teilfeldes davon zu durchlaufen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1159649A JPH0648470B2 (ja) | 1989-06-23 | 1989-06-23 | 多重仮想アドレス空間制御装置 |
JP1187166A JPH0351933A (ja) | 1989-07-19 | 1989-07-19 | メモリ・アドレッシング方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4019961A1 true DE4019961A1 (de) | 1991-01-10 |
DE4019961C2 DE4019961C2 (de) | 1994-11-24 |
Family
ID=26486378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4019961A Expired - Fee Related DE4019961C2 (de) | 1989-06-23 | 1990-06-22 | Steuerung für den Zugriff auf einen Adreßumsetzungsspeicher in einem Prozessorsystem |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4019961C2 (de) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0484008A2 (de) * | 1990-10-20 | 1992-05-06 | Fujitsu Limited | Informationsverarbeitungseinheit mit Übersetzungspuffer |
EP0528584A1 (de) * | 1991-08-12 | 1993-02-24 | International Business Machines Corporation | Adressenübersetzungspufferspeicher für ein virtuelles Datenspeichersystem |
GB2352065A (en) * | 1999-07-14 | 2001-01-17 | Element 14 Ltd | A memory access system |
CN113312277A (zh) * | 2021-06-29 | 2021-08-27 | 合肥忆芯电子科技有限公司 | 存储体地址映射装置、方法及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4145738A (en) * | 1976-06-08 | 1979-03-20 | Fujitsu Limited | Plural virtual address space processing system |
US4355355A (en) * | 1980-03-19 | 1982-10-19 | International Business Machines Corp. | Address generating mechanism for multiple virtual spaces |
-
1990
- 1990-06-22 DE DE4019961A patent/DE4019961C2/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4145738A (en) * | 1976-06-08 | 1979-03-20 | Fujitsu Limited | Plural virtual address space processing system |
US4355355A (en) * | 1980-03-19 | 1982-10-19 | International Business Machines Corp. | Address generating mechanism for multiple virtual spaces |
Non-Patent Citations (1)
Title |
---|
DE-Z.: Electronics, H.6, March 15, 1979, S.111-113 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0484008A2 (de) * | 1990-10-20 | 1992-05-06 | Fujitsu Limited | Informationsverarbeitungseinheit mit Übersetzungspuffer |
EP0484008A3 (en) * | 1990-10-20 | 1993-05-19 | Fujitsu Limited | Information processing unit having translation buffer |
EP0528584A1 (de) * | 1991-08-12 | 1993-02-24 | International Business Machines Corporation | Adressenübersetzungspufferspeicher für ein virtuelles Datenspeichersystem |
GB2352065A (en) * | 1999-07-14 | 2001-01-17 | Element 14 Ltd | A memory access system |
US6662292B1 (en) | 1999-07-14 | 2003-12-09 | Broadcom Corporation | Memory access system |
GB2352065B (en) * | 1999-07-14 | 2004-03-03 | Element 14 Ltd | A memory access system |
US6816959B2 (en) | 1999-07-14 | 2004-11-09 | Broadcom Corporation | Memory access system |
US7143265B2 (en) | 1999-07-14 | 2006-11-28 | Broadcom Corporation | Computer program product memory access system |
CN113312277A (zh) * | 2021-06-29 | 2021-08-27 | 合肥忆芯电子科技有限公司 | 存储体地址映射装置、方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
DE4019961C2 (de) | 1994-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3932675C2 (de) | ||
DE3011552C2 (de) | ||
EP0230437B1 (de) | Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens | |
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE2455047C2 (de) | Datenverarbeitungssystem mit einem Informationsspeicher | |
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
DE3805107A1 (de) | Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers | |
DE10002120A1 (de) | Logikstruktur eines Adressumsetzpuffers | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
WO1994027222A1 (de) | Verfahren zum umsetzen einer virtuellen speicheradresse mit einer ersten länge in eine realadresse mit einer zweiten länge | |
DE3618163A1 (de) | Speicher-management fuer ein mikroprozessorsystem | |
EP0026459A2 (de) | Datenverarbeitungsanlage mit virtueller Speicheradressierung | |
DE2117581C3 (de) | Einrichtung zur Adressenprüfung | |
DE2134816B2 (de) | Einrichtung zur adressenuebersetzung | |
DE4019961A1 (de) | Steuerung fuer mehrfache virtuelle adressraeume | |
DE4234695A1 (de) | Speichermanagementsystem und verfahren zur aufrechterhaltung der cache-kohaerenz zwischen einem daten-cache und einem segmentdeskriptor-cache | |
DE3216238C1 (de) | Datenverarbeitungsanlage mit virtueller Teiladressierung des Pufferspeichers | |
DE3633227A1 (de) | Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage | |
DE19643688C2 (de) | Verfahren zur Steuerung einer Cachespeichereinheit mit konfliktfreiem Parallelzugriff auf virtuelle, 2-dimensionale Adreßräume | |
EP0217232B1 (de) | Schaltungsanordnung zur Generierung von Splitting-Adressen | |
DE4405845C2 (de) | Verfahren zum Umsetzen einer virtuellen Speicheradresse eines virtuellen Speichers in eine Realadresse eines Realspeichers | |
DE102005055665B4 (de) | Verfahren zur Interpolation von Volumendaten | |
DE10260606B4 (de) | Vorrichtung zur Übersetzung mehrerer virtueller Adressen auf eine einzige physikalische Adresse |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |