DE4019961A1 - Steuerung fuer mehrfache virtuelle adressraeume - Google Patents

Steuerung fuer mehrfache virtuelle adressraeume

Info

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
Application number
DE4019961A
Other languages
English (en)
Other versions
DE4019961C2 (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 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.
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.
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.
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.
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 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)

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

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

Patent Citations (2)

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

* Cited by examiner, † Cited by third party
Title
DE-Z.: Electronics, H.6, March 15, 1979, S.111-113 *

Cited By (9)

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