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 Prozessorsystem

Info

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
Application number
DE4019961A
Other languages
English (en)
Other versions
DE4019961A1 (de
Inventor
Toshiaki Kawamura
Nobuyuki Shimura
Akihiro Tamano
Shuichi Abe
Masakazu Fukagawa
Michitaka Yamamoto
Takahiro Onitsuka
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.)
Hitachi Ltd
Hitachi Computer Engineering Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Computer Engineering Co Ltd
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
Priority claimed from JP1159649A external-priority patent/JPH0648470B2/ja
Priority claimed from JP1187166A external-priority patent/JPH0351933A/ja
Application filed by Hitachi Ltd, Hitachi Computer Engineering Co Ltd filed Critical Hitachi Ltd
Publication of DE4019961A1 publication Critical patent/DE4019961A1/de
Application granted granted Critical
Publication of DE4019961C2 publication Critical patent/DE4019961C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address 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)

  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.
DE4019961A 1989-06-23 1990-06-22 Steuerung für den Zugriff auf einen Adreßumsetzungsspeicher in einem Prozessorsystem Expired - Fee Related DE4019961C2 (de)

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)

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

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

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