DE4019961C2 - Steuerung für den Zugriff auf einen Adreßumsetzungsspeicher in einem Prozessorsystem - Google Patents
Steuerung für den Zugriff auf einen Adreßumsetzungsspeicher in einem ProzessorsystemInfo
- Publication number
- DE4019961C2 DE4019961C2 DE4019961A DE4019961A DE4019961C2 DE 4019961 C2 DE4019961 C2 DE 4019961C2 DE 4019961 A DE4019961 A DE 4019961A DE 4019961 A DE4019961 A DE 4019961A DE 4019961 C2 DE4019961 C2 DE 4019961C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- sto
- bits
- tlb
- logical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
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 eine Steuerung
für den Zugriff auf einen Adreßumsetzungsspeicher gemäß dem
Oberbegriff des Anspruchs. Eine derartige
Steuerung ist aus dem Artikel "Hash index helps manage large
virtual memory", "Electronics", 15. März 1979, Seite 111 bis 113
bekannt.
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 4 355 355
beschriebenen Adreßsteuermechanismus sind bei
spielsweise in Verbindung mit einer Gruppe von allgemeinen
Registern, die als Basisregister verwendet werden können,
Zugriffsregister vorgesehen, um eine Adreßraumidentifizierungsinformation bzw. einen Segmenttabellenur
sprung (STO - 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ßumsetzungsspeicher, oder
ein Übersetzungsnachschlagepuffer (TLB -
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 zu vermeiden.
In einem Adreßsteuermechanismus, der einen Teil einer
logischen Adresse als eine Spaltenadresse für die Adres
sierungsoperation des TLB,
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 einer verschlechterten
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.
Aus der Druckschrift US-A 4 145 738 ist ein Steuersystem
für mehrere virtuelle Adreßräume bekannt. In diesem System
wird eine in einem Register gespeicherte virtuelle Adresse
mittels Zugriff auf einen Übersetzungs-Nachschlagepuffer
in eine physikalische Adresse übersetzt. Der Zugriff auf
den Übersetzungs-Nachschlagepuffer erfolgt dabei ausschließlich
nach Maßgabe eines Teils der im erwähnten
Register gespeicherten virtuellen Adresse.
Aus der Zeitschrift "Electronics", 15. März 1979, Seite
111 bis 113, ist ein Adressierungsverfahren für einen großen
virtuellen Adreßraum bekannt. Es beschreibt die Adressierung
eines einzigen virtuellen Adreßraums. Über eine
einstufige oder zweistufige Übersetzung mittels entsprechender
Tabellen wird eine physikalische Adresse erzeugt.
Ausgangspunkt für die Adressierung der jeweiligen Tabellen
sind jeweils ausschließlich virtuelle Adressen beziehungsweise
Teile hiervon. Bevor diese zur Adressierung
einer der Tabellen verwendet werden, durchlaufen sie einen
Algorithmus zur Adressenberechnung (Hashing).
Das bei der Beschreibung des Standes der Technik auftretende
Problem entsteht aus dem folgenden Grund. Bei Vorgängen
mit mehreren virtuellen Speicherräumen sind alle
Eintragungen des Adreßsteuermechanismus statisch zugeordnet
und die Anzahl der Eintragungen in den jeweiligen
virtuellen Speicherräumen ist für alle Situationen gleich.
Demzufolge ist es möglich, Eintragungen flexibel aufgeteilt
zwischen einem virtuellen Adreßraum mit vielen Eintragungen
und einem virtuellen Adreßraum, dessen Eintragungen
selten benutzt werden, zu nutzen. Anders gesagt,
im Bereich eines virtuellen Speicherraums mit vielen Eintragungen
wird das System gelegentlich Eintragungen überschreiben,
wohingegen im Bereich eines virtuellen Speicherraums,
dessen Eintragungen selten benutzt werden, ungenutzte
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.
Aufgabe der Erfindung ist es, eine Steuerung für den Zugriff
auf einen Adreßumsetzspeicher zu schaffen, die ein zuverlässige
und schnelle Adreßbestimmung auch dann erlaubt, wenn
mit gleichen logischen Adressen verschiedener Adreßräume auf
den Adreßumsetzspeicher zugegriffen wird.
Diese Aufabe wird gemäß den kennzeichnenden Merkmalen des
Anspruchs gelöst.
Ein Ausführungsbeispiel der vorliegenden
Erfindung wird 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 Spaltenadressen modifizierende oder
bewertende Einheit der Fig. 1 zeigt; und
Fig. 3 ist ein Blockdiagramm, das prinzipiell
eine Ausführungsform eines Adreßübersetzungs-
Steuerungsmechanismus 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 -
displacement value) zu erzeugen, eine Index
registernummer (IX) und eine Basisregisternummer (BR).
Es ist ein Satz allgemeiner Register (GR -
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 -
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 Segment- bzw.
Abschnittstabellenursprung (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
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 STO-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
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
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 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
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ßumsetzungsspeicher
(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 Adreßraumidentifizierer 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 Adreßraumiden
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 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 hö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 erfolgt ein TLB-
Treffer, 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 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
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 acht virtuellen Adreßräu
me sind 32 Eintragungen im TLB 6 zugeordnet, 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.
Claims (1)
- Steuerung für den Zugriff auf einen Adreßumsetzungsspeicher (6) in einem Prozessorsystem, mit:
mehreren Basisregistern (2), denen jeweils ein Register (4) für die Adreßraumidentifizierungsinformation (STO) zugeordnet ist,
einem Adreßaddierer (3), um unter Verwendung eines ausgewählten Basisregisters (2) eine logische Adresse (LA) zu erzeugen,
einer Adreßübersetzungseinheit (5), um die logische Adresse unter Verwendung der Adreßraumidentifizierungsinformation (STO) in eine physikalische Adresse zu übersetzen, wobei
der Adreßumsetzungsspeicher (6) mehrere Eintragungen aufweist, die jeweils paarweise einen Teil der physikalischen Adresse zusammen mit einem Teil der damit verbundenen logischen Adresse sowie die Adreßraumidentifizierungsinformation (STO) halten,
dadurch gekennzeichnet, daß die Steuerung eine Adreßmodifizierungseinheit (11) zum Modifizieren eines Teils der logischen Adresse (LA) mit der Adreßraumidentifizierungsinformation (STO) aufweist, wobei auf den Adreßumsetzungsspeicher (6) nach Maßgabe der modifizierten logischen Adresse zugegriffen wird.
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 DE4019961A1 (de) | 1991-01-10 |
DE4019961C2 true 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) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0690688B2 (ja) * | 1990-10-20 | 1994-11-14 | 富士通株式会社 | 変換バッファを具備する情報処理装置 |
US5319761A (en) * | 1991-08-12 | 1994-06-07 | International Business Machines Corporation | Directory look-aside table for a virtual storage system including means for minimizing synonym entries |
GB2352065B (en) | 1999-07-14 | 2004-03-03 | Element 14 Ltd | A memory access system |
CN113312277A (zh) * | 2021-06-29 | 2021-08-27 | 合肥忆芯电子科技有限公司 | 存储体地址映射装置、方法及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52149444A (en) * | 1976-06-08 | 1977-12-12 | Fujitsu Ltd | Multiplex virtual space processing data 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
Also Published As
Publication number | Publication date |
---|---|
DE4019961A1 (de) | 1991-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3525898C2 (de) | ||
DE3011552C2 (de) | ||
DE2455047C2 (de) | Datenverarbeitungssystem mit einem Informationsspeicher | |
DE3932675C2 (de) | ||
DE2346525C3 (de) | Virtuelle Speichereinrichtung | |
DE3338345C2 (de) | ||
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
DE19743266C1 (de) | Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten Suchbaum | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE2260353A1 (de) | Verfahren und vorrichtung zur speichersteuerung und adressenumsetzung | |
DE1499201A1 (de) | Datenaufbereitungs-Einrichtung | |
DE10002120A1 (de) | Logikstruktur eines Adressumsetzpuffers | |
DE3330845C2 (de) | ||
DE2939411A1 (de) | Datenverarbeitungsanlage mit virtueller speicheradressierung | |
DE4019961C2 (de) | Steuerung für den Zugriff auf einen Adreßumsetzungsspeicher in einem Prozessorsystem | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2134816B2 (de) | Einrichtung zur adressenuebersetzung | |
DE3932695A1 (de) | Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ | |
DE3518818A1 (de) | Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen | |
DE2906685C2 (de) | ||
DE1296428B (de) | Einrichtung zur Ermittlung von Speicheradressen aus Schluesselwoertern | |
DE2004436C3 (de) | Datenverarbeitungsanlage mit einer Einrichtung zur Umwandlung von Adressen für rotierende Speicher | |
DE3341339C2 (de) | Befehlsfolgegenerator | |
EP0217232B1 (de) | Schaltungsanordnung zur Generierung von Splitting-Adressen | |
EP0176939B1 (de) | Datenverarbeitungsanlagen mit virtueller Speicheradressierung für eine Vielzahl von Benutzern |
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 |