DE2346525C3 - Virtuelle Speichereinrichtung - Google Patents

Virtuelle Speichereinrichtung

Info

Publication number
DE2346525C3
DE2346525C3 DE2346525A DE2346525A DE2346525C3 DE 2346525 C3 DE2346525 C3 DE 2346525C3 DE 2346525 A DE2346525 A DE 2346525A DE 2346525 A DE2346525 A DE 2346525A DE 2346525 C3 DE2346525 C3 DE 2346525C3
Authority
DE
Germany
Prior art keywords
address
memory
virtual
segment
translation
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
Application number
DE2346525A
Other languages
English (en)
Other versions
DE2346525B2 (de
DE2346525A1 (de
Inventor
Thomas Paul Poughkeepsie Ahearn
Robert Stanley Verbank Capowski
Neal Taylor Christensen
Patrick Melvin Gannon
Erlin Earl Lee
John Stephen Liptay
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2346525A1 publication Critical patent/DE2346525A1/de
Publication of DE2346525B2 publication Critical patent/DE2346525B2/de
Application granted granted Critical
Publication of DE2346525C3 publication Critical patent/DE2346525C3/de
Expired 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/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

60 gegenwärtig gebrauchten Daten gehören. Auch wenn
Die F.rlindung betrifft eine virtuelle Speicheret- cine Übereinstimmung zwischen der virtuellen
richtung gemäß Oberbe»rilf des Anspruchs. Adresse der gegenwärtig gebrauchten Daten und
!-.•■,sind verschiedene Techniken bekannt, bei denen einer der in der Nebentabelle gespeicherten Übcr-
mHuciV foinpiiterprouramme entweder durch eine Setzungen vorliegt, kann die /u der gespeicherten
ein;-i!-i. oder mehrere Zentraleinheiten ausgeführt 65 Übersetzung gehörende reale Adresse die falsche
wi.Milen mill gemeinsam einen Speicher benutzen. Ein Adresse sein, da in der Zwischenzeit vielleicht eine
■ !■!■cli Programme in dieser Weise gemeinsam bc- andere Segmenttabelle und damit ein anderer vir-
piMt-1,-1 Speicher erfordert eine extrem hohe Speicher- tueller Ailrcssenraum Verwendung gefunden hat.
Dieses Problem kann dadurch gelöst werden, daß man jedesmal alle Übersetzungen, die in der Nebentabelle gespeichert sind, löscht, wenn neu gewählte Obersetzungstabellen benutzt werden. Dadurch wird der Maschinenbetrieb jedoch beträchtlich langsamer, da die unter Verwendung der Übersetzungstabellen notwendigen Übersetzungen bedeutend zunehmen.
Eine virtuelle Speichereinrichtung, welche die Verwendung von mehreren virtuellen Adressenräumen gestattet, ist in der Zeitschrift Communications of ίο the ACM, Mai 1922, Band 15, Nr. 5, Seiten 308 bis 318 beschrieben. Für jeden virtuellen Adressenraum sind eine Segmenttabelle und dazugehörige Seitentabellen vorgesehen. Die Ursprungsadresse der jeweiligen Segmenttabelle ist in einem Steuerregister zusammen mit einer Angabe der Länge der Segmenttabelle gespeichert. Die Eintragungen in der Segmenttabelle enthalten auch eine Schutzinformation, mit der gewahrleistet sein soll, daß nur der jeweils autorisierte Benutzer Zugriff zu der gewünschten Infonna- ao tion erhält.
Auch in dieser bekannten Einrichtung wird eine Übersetzungsnebentabelle verwendet, die als assoziativer Hochgeschwindigkeitsspeicher ausgeführt ist. In dem Artikel werden jedoch keine Angaben darüber gemacht, was mit den Eintragungen in der Übersetzungsnebentabelle passiert, wenn ein Wechsel von einer Segmenttabelle zur anderen, d. h. von einem virtuellen Adressenraum zum anderen, stattgefunden hat.
Der Erfindung liegt die Aufgabe zugrunde, in einer virtuellen Speichereinrichtung mit einer Übersetzungsnebentabelle die Sicherheit der Adressenübersetzung bei der Verwendung von mehreren virtuellen Adressenräumen und unter Vermeidung einer Löschung vorhandener Übersetzungen in der Übersetzungsnebentabelle die Arbeitsgeschwindigkeit zu erhöhen.
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des Patentanspruchs beschriebene Einrichtung gelöst.
Indem man eine Bezeichnung für jede Übersetzung in der Ncbentabelle speichert, sollen Fehler bei der Übersetzung virtueller in reale Adressen vermieden werden. Außerdem sollen Übersetzungsfehler, die aus der Verwendung von mehr als einer Übersctzungstabelle resultieren, verhindert werden. Weiterhin sollen durch die Erfindung Übersetzungsfehler verhindert werden, die auf Änderungen der Größe des Segment- und Seitenteiles der virtuellen Adresse zurückzuführen sind, und es soll derselbe Speicher durch virtuelle und reale Adressen adressiert werden können.
Die Erfindung gestattet die Verwendung von mehreren Sätzen von Übcrsetzungstabellen nebeneinander, ohne daß bei Übergang von einem Satz zum anderen die in der Nebcntabelle gespeicherten Übersetzungen gelöscht werden müßten.
Eine Ersparnis wird dadurch erzielt, daß die Einrichtungen zur Erzeugung der bei der Erfindung verwendeten Bezeichnung auch gleichzeitig dazu verwendet werden können, zwischen den verschiedenen Größen der Segment- und Seitenteile der virtuellen Adressen und zwischen virtuellen und realen Adressen zu unterscheiJ ;n.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben.
Es zeigt
F i g. 1 ein vorgezogenes Format einer virtuellen Adresse,
F i g. 2 in einem Diagramm die Übersetzung einer virtuellen in eine reale Adresse,
F i g. 3 vorgezogene Formate für Eintragungen in Segmenttabellen und Seitentabellen,
F i g. 4 in einem Blockschema die Beziehung zwischen dem Übersetzungsprozeß und Elementen eines Ausführungsbeispieles der Erfindung,
F i g. 5 ein vorgezogenes Format für Eintragungen in eine Übersetzungsnebentabelle,
Fig. 6a und 6b in einem Blockschema ein Ausführungsbeispiel der Erfindung,
Fig. 7 in einem detaillierten Blockdiagramm die Schrittschaltung der F i g. 6,
F i g. 8 ein Signalablaufdiagramm des Ausführungsbeispieles der Erfindung und
Fig.1.) in einer Tabelle die Bejahung zwischen binärem und Graycode, wie sie im Ausführungsbeispiel der Erfindung verwendet werden.
Virtuelle Adresse
In F1 g. 1 ist ein vorgezogenes Format für eine virtuelle Adresse gezeigt. Die 24 Bit umfassende virtuelle Adresse ist in drei Felder unterteilt: ein Segmentfeld .S1A', welches die Bits 8 bis 15 belegt ein Seitenfeld PX, welches die Bits 16 bis 20 belegt, und ein Bytefeld, welches die Bits 21 bis 31 belegt. Mit diesem Format besteht der virtuelle Speicher aus 256 Segmenten, von denen jedes bis zu 32 Seiten umfaßt, und jede Seite enthält bis zu 2048 Bytes. Die FeIddelinitioncn sind natürlich willkürlich. Das Adreßfeld kann z. B. auch so definiert werden, daß SX die Bits 8 bis U, PX die Bits 12 bis 19 und das Bytefeld die Bits 20 bis 31 belegt. Bei einem solchen Format umfaßt der virtuelle Speicher 16 Segmente mit je bis zu 256 Seiten, und jede Seite umfaßt bis zu 4096 Byt s. Die Bits 0 bis 7 werden in diesem vorgezogenen Ausführungsbeispiel nicht benutzt, können jedoch auf Wunsch zur Erweiterung der virtueiien Adresse in einem 32 Bit umfassenden Adießsystem benutzt werden. Ein solches System hat über 4 Milliarden Bytes eines virtuellen Speichers. Das Segmentfeld dient als Index für eine Eintragung in der Segmenttabelle. Die Eintragung in der Segmenttabelle enthält einen Wert, der die Basisadresse der Seitentabelle enthält, die zu dem durch das Segmentfeld bezeichneten Segment gehört. Das Seitenfeld dient als Index für eine Eintragung in der Seitentabelle. Die Eintrasvng in der Seitentabelle enthält einen Wert, der die echte, d. h. reale Adresse der Seite darstellt. Das Bytefeld wird bei der Übersetzung nicht verändert und wird an die übersetzte Seitenadresse angefügt, wodurch man die reale Hauptspeicheradresse erhält.
Adreßübersetzung
Der Übersetzungsprozeß wird weiter im Zusammenhang mit Fig. 2 erklärt. Der Ubrrse;zungsprozeß ist ein zweistufiges Tabellensuchverfahren auf den Segment- und Seitentabellen vom Hauptspeicher. Der Segmentadreßteil SX der virtuellen Adresse wird zu einer Segmenttabellenursprungsadresse STO addiert, die in einem Steuerregister 2 gespeichert ist, um eine Segmentlabelleneintragung 4 aus der Segmenttabelle 6 zu erhalten (Steuerregister 2 enthält im allgemeinen auch die Länge LTH der Segmenttabelle). Diese Scg-
5 6
nieiitlabellcneintragung enthält eine Scitcnlabcllcn- DLAT und im Ziiordnungsspcichcr enthaltenen Ta-
ursprungsadressc PTO, die zum Seitenadreßteil PX bellen können in jeder bekannten Art angeordnet und
der virtuellen Adresse addiert wird und die Adresse adressiert werden. So kann z. B. jeder ein Assoziativ-
ciner Scitcntabcllcncintrngung 8 in der Scitcntabelle speicher oder ein Speicher sein, der durch in der vir-
10 liefert. Die Scitentabellencintragung 8 enthält eine 5 tncllcn Adresse enthaltene Bits adressiert wird, wobei
reale Adresse, die mit dem Byteteil der virtuellen die DLAT durch Bits adressiert wird, die vom virtu-
AJressc verkettet wird und die reale Adresse eines eilen Teil der Adresse kommen, und der Zuordnunes-
Patcnbytc bildet. Um die Wiederholung dieses Ober- speicher durch Bits adressiert wird, die vom realen
setzungsprozesses für jeden Speicherbezug zu verniei- Teil der Adresse kommen.
den, wird zum Speichern des .VA'-Teiles der virtuellen i° Um zu überprüfen, ob die DLAT richtig adressiert Adresse zusammen mit der entsprechenden aus der wurde, wird ein Teil der virtuellen Adresse aus dem Seitentabcüc für dieses Segment ausgclcsenen realen virtuellen Adreßteil der DLAT ausgelesen und mit Adresse ein eigener Zuordnungsspeicher, im folgen- dem entsprechenden Teil der von der Zentraleinheit den auch Obcrsclziingsncbcntabcllc genannt, vorge- gelieferten virtuellen Adresse 12 im Vcrglcichcr 18 sehen. Der Zuordnungsspeicher wird kontinuierlich '5 verglichen. Um sicherzustellen, daß die in den Hochauf den neuesten Stand gebracht, so daß er die vir- gcschwindigkeiispuffer eingegebenen Daten auch die tuellc und die reale Scitcnadrcsse der zuletzt bezöge- von der virtuellen Adresse 12 angeforderten Daten neu Seilen enthält. Am Anfang einer Übersetzung sind, wird in ähnlicher Weise die aus der DLAT 14 wird daher die zu übersetzende virtuelle Seiten- ausgelescnc reale Adresse mit der aus dem Pufferadresse mit dem Inhalt des Zuordnungsspcichers dar- 2° Zuordnungsspeicher 16 ausgclcsenen realen Adresse aufbin verglichen, ob die reale Adresse bereits ver- im Vergleichcr 20 verglichen.
fiigbar ist. Wenn sie schon verfügbar ist, liefert der Die Ausgangssignale der Vergleichcr 18 und 20
Zuordmingsspeichcr die reale Scitcnadrcsse, die dann werden einem UND-Glied 22 zugeführt, welches auf
mit dem Byteteil der virtuellen Adresse verknüpft der Leitung 24 ein Ausgangssignal erzeugt, wenn die
wird und die reale Haiiptspcichcradrcssc bildet. Wenn 25 angeforderten Daten im HochgcschwindigkeitspufTer
die zu übersetzende virtuelle Adresse nicht im Zuord- stehen. Entsprechende Teile der virtuellen und der
nungsspeicher gefunden wird, wird sie, wie oben be- realen Adresse werden über die Leitungen 26 und 28
schrieben, übersetzt und zusammen mit ihrer realen dem Pufferspeicher-Adreßregister 30 so zugeführt,
Adresse in den Zuordnuncsspeicher gesetzt. daß die Daten vom PufTcr adressiert werden können,
lic. 3 zeigt ein Ausfifhrungsbeispiel für die Seg- 3o Wenn eine der virtuellen Adresse 12 entsprechende
mcnttabellencintragunecn 4 und die Scitentabellen- reale Adresse in der DLAT 14 enthalten ist, die
cintragungen 8. Für jeden virtuellen Adreßraum gibt Daten jedoch nicht im HochgcschwindigkeitspufTer
es eine Seumenttabelle mit entsprechenden Seiten- stehen, veranlaßt das Ausgangssignal des Verglei-
tabellen. Ursprung und Länge der aktiven Segment- chers 20 nach Inversion durch den Inverter 32 zu-
tabellc Mtid im Steuerregister (Fig. 2) enthalten. Die 35 sammen mit dem Ausgnngssignal des Vergleichers 18
Seumentiabcllcncintraming 4 enthält zu Kontroll- das UND-Glied 34 zur Erzeugung eines Signals auf
/wecken ein Längenfeld LTH in den Bits 0 bis 3. der Leitung 36, welches anzeigt, daß auf den Hauptweiches die Lance der Seitentabelle in Schritten an- speicher Bezug genommen werden muß. Wenn die
T - m«. · 1—un_ virlnotln ΛΛι-occo 1 "> nj^l,l m\l „!„η- ;„ .!„.- ΤΛΤ AT ΛΛ
hum. die mcicri einem juLii/.eiuiici uci Kia.Min.uf.vuv ---■ - -■-— -- — — ... —. ——.. ».
vnd. Bit'?l. das /-Bit. eibt die Gültigkeit der in der enthaltenen virtuellen Adresse übereinstimmt, veran-S-umenltabcllcneintragung enthaltenen Information laßt das Ausgangssignal des Vergleichers 18 die .in. Wenn das /-Bit auf Tsteht, kann die Eintragung UND-I-Inverterschaltung 38 zur Erzeugung eines Sim,hi für Übersetzungen benutzt werden. Die Seiten- gnals auf der Leitung 40. welches dem System antiibclleneintracuns 8 enthält in den Bitpositionen 0 bis zeig', daß der oben im Zusammenhang mit Fig. 2 i: die 1 3Werthohen Bits der realen Speicheradresse. 45 beschriebene Übersetzungsprozeß eingeleitet werden ('Die uertniederen realen Bits 20 bis 31 der virtuellen muß. Allgemein bekannt und daher nicht näher be-Speicheradressc werden mit den werthohen Bits aus schrieben ist die Art, wie mit dem Inhalt des P-fTerder Sciientabelle verbunden und liefern die Bytever- Speicher-Adreßregisters 30 und dem Signal auf der si'hicbuna innerhalb der Seite.) Zu jeder Seitentabel- Leitung 24 ein PufferzugriiTszyklus sowie mit den Si- ;cnc-intr:i»un2 cehört ebenfalls ein /-Bit (Ungültig- 5° gnalen auf den Leitungen 36 und 40 eine entspre-V.ehi. Wenn das /-Bit auf 1 steht, kann die Eintra- chende Reaktion des Systems eingeleitet werden kann. eiiiiü nicht für Übersetzungen benutzt werden. Nach Darstellung in F i g. 6 enthält die überset-
zungsnebentabelie 46 insgesamt 64 Wörter, von denen
Übersetzungsnebentabelle ;edes z,vd vjrtue!!e Adreßeintragungen zusammen mit
I'm eine Adresse nicht jedesmal bei Adressierung 55 den entsprechenden realen Adreßeintragungen umdes Speichers übersetzen zu müssen. s;nd laufende faßt. Einzelheiten des Formates der DLAT-Eintra-Cbcrscizungcn virtueller Adressen in reale Adressen gung sind in Fig. 5 gezeigt. Ein 12 Bit großer Teil in einer sogenannten Übersetzungsnebentabelle, im einer jeder Eintragung umfaßt die realen Adreßbits, folgenden auch DLAT genannt, enthalten. Nach die die Übersetzung des SA'-Teiles und des PA'-Teiles Dnrsielkine in Fi e. 4 fragt die von der Zentraleinheit 5° dieser virtuellen Adresse bilden. Außerdem enthält celieferte virtuelle~ Adresse 12 gleichzeitig die Über- jede DLAT-Eintragung acht virtuelle Adreßbits. ein ictÄunesnebcntabclIc 14 und einen. Zuordnungsspei- Paritätsbit P, sechs Speicherschutzbits und drei Bits eher 16 für den Puffer des Speichers ab. Die DLAT mit der Bezeichnung ID. die nach der vorliegenden 14 enthält kürzlich übersetzte virtuelle Adressen zu- Erfindung erzeugt und anschließend beschrieben wersammen mit den zugehörigen realen Adressen, wäh- 65 den.
rend der Pufferzuordnungsspeicher 16 die realen Vorsätze in der DLAT
Adressen von Daten enthält, die in den Hochgeschwindigkeitspuffer eingegeben wurden. Die in der Die in der DLAT 46 gespeicherten realen Adreß-
bits sind nicht die realen Adrcßbits. die man durch den beschriebenen Übcrsctzungsprozeß erhält, sondern leicht veränderte Versionen dieser Adressen, die man durch einen »Vorsatz* genaniii"n Prozeß erhält. Das V»'..'sctzcn oder der Vorsatz ist ι in bei der Mehrfachvcrarbeitung benutztes Verfahren, welches mehr als einem Prozessor den Zugriff zu einem bestimmten Speicher gestattet, ohne daß dadurch die Zustandsinformation eines jeden anderen Prozessors beeinflußt wird. Die Zustandsinformation ist im allgemeinen in einem bestimmten Speicherten gespeichert. Das Vorsetzen besteht aus der Veränderung von Adressen um I Hit. wodurch vermieden wird, daß die Daten eines Prozessors eine Zustandsinlormation von einem anderen Prozessor zerstören. Das vorliegende Aiisl uhrungsbcispici bezieht sieh auf eine ivichriaciivcrarbcitungsmaschine. in der das Vorsetzen so gehandhabt wird, daß man die Daten im Hauptspeicher durch Adressen mit Vorsatz erhält. Alle echten Adressen erhalten daher durch die Vorsatzschaltung 45 einen Vorsatz auf Daten, die von einem Vorsatzregister 47 empfangen werden, bevor sie in die DLAT 14 eingegeben werden, so daß absolute Adressen von der DLAT zum Vergleich mit den im Puffcrzuordnungsspeicher 16 enthaltenen absoluten Adressen verfügbar sind. Das Vorsetzen ist eine allgemein bekannie Technik und wird daher nicht näher beschric-
Dalenschut/schlüssel in der DLAT
in tier DLAT sind Speicherschiitzschlüssel enthalten, mit tlcnen festgestellt werden kann, ob der Zugriff zu Puffcreintraguncen zulässig ist. ohne daß erst der Schutzschlüssel mit der Prozessorspcichcrschutzcinrichtung geprüft werden muß. Wenn also der richtige Speicherschiitzschlüssel in der DLAT steht, wird beim Zugriff keine Zeit verloren. Der Speicherschutz
näher beschrieben.
In der DLAT" gespeicherte Bezeichnunesbits
Zu jeder DLAT-Finiragung gehören drei codierte Bczcichtiungsbits. die sogenannten /O-Bits. Sie dienen hauptsächlich der Bezeichnlina der Übcrsetziingstabellen, die für die jeweilige DLAT-Fin!ra«une Anwendung finden. Sie «eben jedoch auch die Giößc der Seiten- und Segmentteile der virtuellen Adresse an. Die /D-Bits werden durch einen sogenannten STOK-//)-Generator 49 erzeugt. Der Generator erzeugt /Z)-BiIs in den in F i «. 9 sezcigten Kombinationen. Von den dargestellten Kombinationen steilen 010 bis 111 verschiedene Kombinationen von ursprünglicher Secmenttabclle und der Seiten- und Segmcntgrößen dar. Wenn einer dieser sechs /D-Bezcichner erzcuEt wird, werden die /D-Bits vom STOK-//)-Generator 49 der DLAT 46 zugeführt, wo sie mit jeder neuen in die DLAT 46 eingelesenen Übersetzung eingeschoben und in den Vcrgleichern 52 und 54 mit dem Bezeichncr einer jeden aus der DLAT 46 aiiS£e!e:;encn Übersetzung versuchen werden. Wenn der aus der DLAT 46 ausgclcsene Bezeichner ID mit dem durch den STOK-/Z)-Generator 49 erzeugten Bezeichner identisch ist. entsprechen ursprüngliche Segmenttabellc. Seitengrößc und Segmentgröße, die in der virtuellen Adresse der DLAT-Übcrsemmg verwendet wurden, der ursprünglichen Segmenttabcllc.
Seiteimröße und Seumcnlgröße. die in der jetzt die I)LAT abfragenden virtuellen Adresse verwendet wurden. Dieser erfolgreiche I)LAl-Vergleich tier //>Bits eest:ittel die Verwendung der in der DLAT gespeicherten Übersetzung zur Speichciabfragc. Wenn \om STOK-//)-Gcneratoi 49 c;n anderer Bezeichncr geliefert wird, als aus der DLAT 46 ausgelesen wird. hcil.it ilns. daß ursprüngliche Scgmenttabelle. Scik-ngröße oder Segmentgröße der die DIA T abfragenden virtuellen Adresse nicht mit der Übersetzung in der DLAT übereinstimme.. In diesem lall wurde die falsche Adresse ausgelesen. Wenn dieser Fall eintritt, erfolgt kein erfolgreicher DLAT-Verglcich, und dadurch wird verhindert, daß die in der DLAT gespeicherte Übersetzung zur Abfrage des Speichers benutzt wird. Stan dessen wmi auf den üuOisei/"ungs'uibc!
lensatz zurückgegriffen, um eine neue Übersetzung der virtuellen Adresse in eine reale Adresse vorzunehmen. Wenn diese neue Übeiselzung erzeugt wird, wird sie in die Nebcntabcllc 46 mit einem durch den Generator 49 gelieferten neuen Bezeichner eingeschoben.
Die Hingabe zum STOK-//)-Generator 49 ist die Ausgabe ties Worlauswahldecodierers 57, der eines von sechs möglichen im STOK-Speichct 55 gcspciclieiien Wörtern auswählt. Somit umfaßt the Lingabe ,um STOK-Geneiator 49 sechs Datenbits, die bis auf eines alle binäre Nullen sind. Das verbleibende Bit ist eine binäre Lins, deren Bitposition von einem Mal /um anderen abhängig von dem im STOK-Speicher 55 adressierten Wort wechselt. Jedes Wort des STOK-Speichcrs 55 speichert die Biis S bis 25 der Adresse der ursprünglichen Segmenttabelle, wobei ein Bit die Seitengröße und ein Bit die Segmentgröße, beide gespeichert im STOK-Speichcr von den Steuerregistern, angibt, wenn die jeweilige Kombination von ursprünglicher Scumenttabclle. Seitengröße und ScgmcntgröLie benutzt wurde. Die .Ausgabe des SIOK- !!? Gcner2!orh !*■''. illl-.> t-.iK-irhlirh cMiiirrli· Information über die Lage im SlOK-Speicher des die letzte Kombination von ursprünglicher Scgmentiahelle. Seilengrößc und Segmentgröße enthaltenden Wortes, das den Steuerregistern 51 zugeführt wurde.
l.;n Zeigei 59 ist die Ausgabe der Schiiriseii.iiiuiv.! (F ic 7). die drei Datenbits im Graycode an ilen WortwLihldecodicrer 57 so liefert, daß dieser adressiert werden kann, um Zugriff zu jedem der sechs Wörter des STOK-Spciehers in der in Fi g. l) ge/.eigicn Reihenfolge zu nehmen. Linzelhcitcn dieser Sch/ittschalturig sind in Fig." gezeigt und werden später genauer beschrieben. Im Augenblick genüct die Feststellung, daß die SchritNdialtun« frei läuft. an jedem Punkt jedoch durch ein Signal \.m einer Zcieerhaltcverrlcgclung 61 gestoppt werden kann, die ein Schaltsignal an den Zeiger 59 liefert und ihn an dem Wort stoppt, weiches die Bi:s für die leizte benutzte virtuelle Adresse enthält.
Fin F.ingangssignal zur ZeigerhaUcverriegclung 61 ist das Ausgangssignal einer Vcrgleichcrschahung 53. die die Ausgabe des- STOK-Speichers 55 mit den im Steuerreaister 51 gespeicherten Daten vergleicht. Wenn sie übereinstimmen, sendet die Vergleicherschaltung ein Signal an die Zcigcrhalteverriegelung 61 und verriegelt den Zeiger 59 dadurch so. daß er den Hinweis auf die Adresse der verglichenen Bits festhält. Solange sich die verwendete Seitengrößc. Secmentaröße oder Segmenttabellcnursprung in den virtuellen, den Speicher abfragenden Adressen nicht
änden. wird this Ausgangssigiinl der Verriegelung 61 auf einem hohen Sigiialpcgel und damit die Ausgabe iles /eigers festgehalten.
Andern sich verwendete ursprüngliche Segnientlabelle. Scilenuröl.ic und Segmentgrößc in einer bestimmten virtuellen Adresse, wird die Zcigerlialteverriegeliing 61 durch ilen Freigabeimpuls JR entriegelt, der den Zeiger 5') freigibt und durch den Zähler 63 so wciterschiilten läßt, daß die Ausgabe des Woi taiisuahklecodiercrs 57 Wörter des STOK-Speicliers 55 in vorgewählter Reihenfolge adressiert. Bei tier Adressierung eines jeden Wortes wird es in die Vergleichsschaltung 53 ausgelesen und mit den Daten in den Steuerregistern verglichen. Dieser Vor gang läuft weiter, bis ein erfolgreicher Vergleich die Identität der Daten in den Registern 51 mit den in einei Wortzciie des STOK-Speicheis 55 gcspciclierieri Daten anzeigt. Die Vergleichsschaltung verriegelt dann die Zeigerhalleverricgelung 61 und stoppt dadurch den Zeiger an der Adresse der Wort/eile, die zum Identitätsvergleich führte. Die Adresse des Wortes, welches übereinstimmt, wird dann dein SIOK- !!)-(. ieneralor 49 zugeführt und an die Dl A I 4h drei neue codierte //)-Bits geliefert.
Wenn zwischen ilen im STOK-Speicher 55 und den in den Steuerregistern 51 gespeicherten Daten kein identischer Vergleich auftritt, nachdem die Ausgabe der Schrittschaltung die STOK-Anordnung 55 einmal durch alle Wörter hat laufen lassen, wird die Schrittschaltung durch die Zcigerhalteverricgelung 61 gestoppt. Die Ausgabe des Zählers 63 wird dann durch Entfernung des Zählerleitsignals GC zum UND-Glied 65 abgeleitet. Statt dessen wird die Ausgabe eines Registers 67. welches die Graycodewertc für die Erzeugung der Adresse für das Wort, welches die älteste Eintragung für die STOK-Anordnung enthält, durch das l'ND-Glied 69 zum Zeiger 59 von einem Zähler 67 geleitet, der aiuh FIFO- (First in First Out-) Zähler genannt wird. Der Zeiger 59 adressiert daher den
der Erzeugung der Adresse der ältesten Eintragung im STOK-Speicher 55. Die Daten in den Steuerregistern 51 werden dann in dieses Wort gespeichert und ausgelesen, was /u einem identischen Vergleichersignal vom Vcrgleichcr 53 führt, welches die Zeigerhalteverricgelung 61 verriegelt und den Zeiger 59 auf der Adresse der eingegebenen Wörter hält. Ein den FIFO-Zähler 67 festhaltendes //F-Signal wird dann von diesem Zähler weggenommen, so daß er einen Schritt zur nächsten Graycodezah! in der in Fig. 9 «czeigten Reihenfolge weiterlaufen kann, wodurch die Adresse gespeichert wird, an der die nächste Eintragung vorzunehmen ist. Wenn dieser Vorgang einmal abgeschlossen ist, wird das FIFO-WF-Leitsignal weggeiiüinnien, und der STOK-ZO-Generator 49 liefen: eine /D-Anzeige, »velche die Adresse der Eintragung in die DLAT 46 angibt.
Wenn die an einer bestimmten Adresse im STOK-Speicher 55 gespeicherten Daten in der oben beschriebener, Weise verändert werden, müssen alle DLAT-Eintragungen, die sich auf diese Adresse beziehen, aus der DLAT 46 herausgenommen werden. Wenn aiso der Bezeichner ID für diese Adresse zuerst der DLAT zugeführt wird, wird er in den Vergleicherschaltungen 52 mit den ID's in jeder in der DLAT -46 gespeicherten Eintragung verglichen. Die Eintragungen mit demselben/D werden dann da- -.li:t-:h ungültig gemacht, daß man die /D-Bits durch 000 ersetzt, so daß sie unmöglich mit irgendeinem vom STOK-Speicher gelieferten ID übereinstimmen und so eine fehlerhafte DLAT-Übereinstimmung anzeigen können. Somit braucht nur noch eine der
.- ach; möglichen dreistelligen /ß-Kombinationcn erklärt zu werden. Diese /D-Kombination wird benutzt, wenn der Hauptspeicher durch reale Adressen und nicht durch virtuelle Adressen abgefragt wird. Wenn eine reale Adresse verwendet wird, geht der Speicher
in in die dynamische Adressenübersetzung DAT oder den echten Betrieb und liefert einen Impuls an das Schaltglicd 71, welches die adressierten Daten von der Eingabe des STOK-//)-Cienerators 49 ableitet, so dall dieser die Zahlcnkombination 001 erzeugt.
STOK-Schrittschaltung
Einzelheiten der STOK-Schrittschaltune werden im Zusammenhang mit den F i g. 6 und 7 erklärt. Der Zähler 63, der Zeiger 59 und der FIFO-Zähler 67 enthalten jeweils drei UND/ODER-Inverterschaltungen. Im Diagramm werden die FIFO- und die Zählerverriegelungen als Verriegelungen bezeichnet, während die Zeigerschaltungen als Trigger bezeichnet werden. Tatsächlich handelt es sich überall um
a5 identische UND/ODER-Inverterverriegelungen, die sich lediglich dadurch unterscheiden, daß an den Zähler und FIFO Taktimpulse geliefert werden, die /u einer alitieren Zeit auftreten als die an den Trigger gesendeten Taktimpulse. Die Ausgabe der Zeigertrigger liefert drei Bits eines Graycode parallel an den Wortauswahldccodierer 57. Jede der Verriegelungen im Zähler und in der FIFO-Schaltung empfängt einen Taktverriegelungsimpuls LC. während die Verriegelungen im Zeiger 59 einen Taktimpuls empfangen, der zeitlich später auftritt und mit Triggerschaltung TC bezeichnet ist. Entsprechend geht der Zeigerhalteimpuls ///' auf jede der Verriegelungsschaltungen im Zeiger 59. und der FIFO-Halteimpuls HF wird jeder Verriegelung in der FIFO-Schaltung z-igeführt. In
4der Schrittschaltung befinden sich drei separate Sätze von UND-Gliedern 65 bis 69, von denen jeder eine Triggerschaltung an Stelle der schematisch in Fig. 6 dargestellten einen einzigen Schaltung adressiert. Die dargestellte Schaltung liefert die Graycodeausgabe in der in F i g. 9 gezeigten Reihenfolge, wenn sie freigegeben wird.
Einzelheiten der DLAT-Operation
Im allgemeinen treten die Adressen von für ein gegebenes Programm benutzten Tabelleneintragungcn
5" in einer geordneten Reihenfolge auf. Um die Überlagerung von in der DLAT gehaltenen Adressen auf Grund der im allgemeinen regelmäßigen Reihenfolge dieser Tabelleneintragungsadresscn so klein wie möglich zu halten, werden die zur Adressierung der DLAT verwendeten virtuellen Adreßbits (8 bis 20) mit den aktiven Bezeichnungsbits gemäß nachfolgender Aufstellung zur Erzeugung einer 6 Bit großen DLAT-Adresse durch Exklusiv-ODER-Operationen gemischt, die in einer deterministischen Art willkür-Hch festgelegt ist.
Logische AdrcUbits ni.AT-Aiireßbits
15V Q v 8 = I
16 V i4V77J2~ ->
1 7 V 13 V ID 1 v= 3
1 8 V I 2 V J D Φ 4
1 l> V 1 1 5
20 V 10 6
Die in die DLAT übernommenen virtuellen Adreßbits sind für dieses Ausführungsbeispiel die Bits 8 bis 15. Um eine virtuelle Adresse zu übersetzen, wird die DLAT an einer von 64 Adressen abgefragt und die beiden Eintragungen ausgewählt. Die virtuellen Bits 8 bis 15 in der von der Zentraleinheit gelieferten Adresse werden mit den aus der DLAT ausgelesenen werthohen virtuellen Bits verglichen und der Bezeichner ID mit dem laufend aktiven ID verglichen. Wenn eine Übereinstimmung vorliegt, erhält man die übersetzte Adresse und den Schutzschlüssel von dem realen Adressenfeld und dem Schlüssclfeld. Wenn die Schutzbestimmungeii nicht verletzt wurden, wird die reale Adresse mit dem Inhalt des Pufferzuordnungsspeichers 16 bzw. 56 verglichen, um festzustellen, ob sie dort bereits steht.
stehen, wird oer Hauptspeicher angefragt.
Wenn sicli in der DLAT keine Übersetzung findet, nimmt das System die Übersetzung vor (s. Fig. 2) und setzt sie in die DLAT.
Weitere Einzelheiten des Ausführungsbeispiels der Erfindung sind in Fig. 6b gezeigt. Die Bits 8 bis 31 der von der Zentraleinheit gelieferten virtuellen Adresse werden einer Speicheradreß-Sammelleitung 44 zur Verteilung innerhalb des Datenverarbeitungssystems zugeleitet. Mit den Pas 8 bis 20 wird die Übersetzungsnebentabelle 46 adrrssiert, die die virtuellen Adreßbits 8 bis 15 enthält. Die von der Zentraleinheit gelieferten Bits 8 bis 15 der virtuellen Adresse werden ebenfalls einem Vergleicher 52 zugeführt. Wenn dieser Eingangssignale empfängt, die miteinander übereinstimmen, erzeugt er ein Signal auf einer Leitung 72, 74, welches eine DLAT-Übereinstimmung anzeigt. Gleichzeitig mit dem Zugriff zur DLAT wird auch der Pufferzuordnungsspeicher 56 durch die Bits 21 bis 26 der von der Zentraleinheit gelieferten Adresse adressiert. Diese Bits der virtuellen Adresse entsprechen echten Hauptspcicher- <:tp]lpn Onhpr nnRi ihrp Vpru/pnHiino hpi Hrr Adressierung des Zuordnungsspeichers 56 zur realen Adreßorientierung des Pufferspeichers. Im Ausführungsbeispiel enthält der Pufferzuordnungsspeicher 64 Wörter, von denen jedes vier oder acht reale Adressen abhängig von der Puffergröße enthält. Die Bits 21 bis 26 adressieren daher vier bzw. acht reale Adressen. Die Bits 21 bis 28 sind an die drei Bits angehängt, welche eine der vier oder acht Pufferzuordnungscpeicherspalten bezeichnen und im Pufferspeicheradreßregister 68 enthalten sind, und werden zur Adressierung eines von 1024 oder 2048 Doppelwürtern benutzt, die zur Übertragung an die Zentraleinheit im HochgeschwindigkeitspulTcr 77 gespeichert sind. Die Bits 29 bis 31 (die wertniederen realen Adreßbits) der von der Zentraleinheit gelieferten virluellen Adresse brauchen zur Adressierung des Hochgeschwindigkeitspuffers nicht verwendet zu werden, weil im Ausführungsbeispie! jedes Doppelwort ini Puder acht Datenbytes enthält, von denen jedes aus acht Datenbits und einem Paritälsbit besieht. Pie
»5 Zentraleinheit benutzt die drei wertniederen Bits (Bn 29 bis 31) zur Auswahl eines der acht aus dem Hoch '-"CichvviniJi"kcits^uüsr iic!PCilfiiln I3v'.c*
Wenn weder der Vergleicher 58 noch der Verglcicher 66 (keine Übereinstimmung im Pufferzuord-
ί0 nungsspcicher — Daten nicht im Hochgeschwindigkeitspuffer) oder der Vergleicher 52 (keine DLAT-Obercinstimmung — Übersetzung noch nicht verfügbar) keine Übereinstimmung festgestellt hat. läuft das Verfahren in der im Zusammenhang mit Fig. 4 beschriebenen Art weiter.
F i g. 8 enthält ein Ablaufdiagramm für die Bestimmung einer bestimmten logischen oder virtuellen Adresse nach der oben beschriebenen Erfindung.
Obwohl in der obigen Beschreibung verschiedene Parameter entweder explizit oder implizit angegeben wurden, haben diese keinerlei einschränkenden Charakter. Ebenso brauchen die Ausdrücke "virtueller Speicher« und »virtuelle Adresse« nicht auf hier geieiebene Definitionen beschrankt zu werden. Wesem-
3S Hch isi die Umwandlung einer virtuellen Adresse in eine reale Adresse, bevor sie zur Speicheradressierung benutzt wird. Puffenugriffe brauchen nicht unbedingt verzögert zu werden, bis die Adreßvergleiche abgeschlossen sind. Der Zugriff zum Puffer kann z. B.
iinri-h die virtuelle Adresse eingeleitet werden uiui dann abhängig vom Ergebnis des AdreßveriMeiche* die Systembenutzung der aus dem Puffer ausge.«.senen Daten später im Arbeitszyklus verhindert werden. Auch in einem solchen System ist der Puffer in dem Sinne auf reale Adressen ausgerichtet, daß sein Pufferzuordnungsspeicher reale Adressen enthält.
Hierzu 5 Blatt Zeichnungen

Claims (1)

1 2
kapazität, die oft größer ist als die tatsächliche Ka-
Patentanspruch: pazität des Speichers. Um mit dieser Situation fertig
zu werden, verwendet man das Prinzip des virtuellen
Virtuelle Speichereinrichtung mit Segment- und Speichers. Wenn ein System z. El. ein Adreßschema Seitentabellen zur Übersetzung von virtuellen 5 mit 24 Bits verwendet, dann stehen 22* Bytes oder Adressen mit einem Segment- und Seitenteil in annähernd 16 Millionen adressierbare Bytes des virreale Adressen und einer Übersetzungsneben- tuellen Speichers zur Verfügung. Dieser virtuelle tabelle zur Speicherung kurzzeitig benötigter, vir- Speicher wird in Segmente unterteilt, von denen tueller und zugehöriger realer Adressen, wobei jedes in Seiten unterteilt ist, und jede Seite besteht zur Unterscheidung mehrerer virtueller Adressen- io aus einer vorbestimmten Anzahl von Bytes. Die einen räume eine entsprechende Anzahl Sätze von virtuellen Speicher zugeordneten Segment- und Segmenttabellen und jeweils zugehörigen Seiten- Seitenadressen sind willkürliche Programnibezeichtabellen vorgesehen sind und die Ursprungs- aungen und nicht tatsachliche Stellen im Hauptadresse jeder Segmenttabelle in einem Steuer- speicher. Virtuelle Segmente und Seiten können register gespeichert ist, dadurch gekenn- 15 daher nach Bedarf in den Hauptspeicher eingesetzt zeichnet, daß zur Identifizierung jedes von und aus diesem herausgenommen werden,
mehreren virtuellen Adressenräumen und zu- Die willkürliche Lagerung von Segmenten und gehörigen Sätzen von Ubersetzungstabellen (6, Seiten im Hauptspeicher erfordert die Übersetzung 10) ein Bezeichner (/D) festgelegt und zusammen einer virtuellen Adresse in eine reale Adresse unter mit den aktuellen Adressen in der Übersetzungs- ao Verwendung eines Satzes von Übersetzungstabellen nebentabelle (DLAT) gespeichert wird, der auch die im Hauptspeicher stehen. In einem virtuellen Angaben über die Größe des Segment- und Speichersystem wird eine Anzahl derartiger Über-Seitcnteilcs enthält, wobei bei einem Zugriff zur setzungstabellensätze (vgl. US-PS 35 33 075) ver-Nebenlabelle dieser Bezeichner mit dem zu der wendet, von denen jeder aus einer Segmenttabelle zugreifenden virtuellen Adresse gehörenden Be- 25 und einer Anzahl von Seitentabellen besteht. Jede zeichner verglichen wird (52, Fig. 6b) und Seitentabelle in einem Satz von Übersetzungstabellen hierzu folgende Einrichtungen vorgesehen sind: gibt die tatsächliche Lage aller Seiten eines Segmen-
— ein Speicher (55) zur Speicherung der Inhalte tes in der Segment.tabelle an. Enthält z. B. eine bedcr Stc_.;rregister für die verschiedenen Ta- simmte Segmenttabelle 16 Speicherplätze, so entbellensätze, 3° hält der Satz Ubersetzungstabellen 16 Seitentabellen
—· ein weiteres Steuerregister (51) zur Speiche- und eine Segmenttabelle.
rung der gerade verwendeten Segment- Bei einer Übersetzung wird der richtige Satz von
tabellen-Ursprungsadressc (STO) und Große Ubersetzungstabellen ausgewählt und die Segment-
des Segment- und Seitenteils der virtuellen tabelle in diesem Satz zum Auffinden der Lage der
Adresse. 35 Seitentabellen im realen Speicher verwendet. Mit der
— ein Vcrgleicher (53) zum Vergleich der aus richtigen Seitentabelle wird dann die tatsächliche dem Speicher (55) abgelesenen Daten mit Lage der adressierten Sei.'s hei abgefunden. Der den gerade im weiteren Steuerregister (51) Byteteil einer virtuellen Adresse gibt die reale Lage stehenden aktuellen Steuerdaten und durch im Speicher an, so daß der Byteteil mit der Seitencine von diesem Vergleicher gesteuerte Such- 40 lage zur Angabe der echten Adresse im Haupteinrichtung (Fig. 7) /um Absuchen des speicher zusammengefügt wird, wenn Segment- und Speichers (55) /um Auffinden der aktuellen Seitenteil der virtuellen Adresse einmal zur Angabe Steuerdaten und durch einen Wortauswahl- einer Scitenlage übersetzt worden sind.
decodierer (57) /ur Ansteuerung des Spei- Damit man nicht bei jeder Speicheradressierung chers (55), welcher ein im Graycode codiertes 45 die Adresse übersetzen muß, werden laufende Über-Adressensignal empfängt und eine Adresse Setzungen virtueller Adressen in reale Adressen in »1 aus /V« abgibt, sowie durch einen vom einer anderen sogenannten Übersetzungsneben-VVortauswahldccodicrer (57) gesteuerten Be- tabelle festgehalten, wo man solche realen Adressen /eichner-Generatoi (/O-Geneiator 49), wel- mit Hilfe einer virtuellen Adresse erhalten kann, ohne eher aus der Adresse »1 aus /V« ein codiertes 50 den beschriebenen Ubersetzungsprozeß durchlaufen Signal /ur Weiterleitung an die Neben- zu müssen. Die Benutzung der Ubersetzungsncbentabellc (46) und an den an den Ausgang der tabelle reduziert die Anzahl der durchzuführenden Nebentabelle angeschlossenen Vergleicher Übersetzungen wesentlich und verbessert somit die (52) erzeugt. Leistung des virtuellen Speichersystems beträcht-
55 lieh. Dadurch wird jedoch auch insofern eine Fehlermöglichkeit eingeführt, als die bei der Ableitung der
realen in der Nebentabelle gespeicherten Adressen
verwendeten Ubersetzungstabellen evtl. nicht dieselben sein könnten wie die Tabellen, die zu den
DE2346525A 1972-10-17 1973-09-15 Virtuelle Speichereinrichtung Expired DE2346525C3 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29819072A 1972-10-17 1972-10-17
US29810072A 1972-10-17 1972-10-17

Publications (3)

Publication Number Publication Date
DE2346525A1 DE2346525A1 (de) 1974-05-02
DE2346525B2 DE2346525B2 (de) 1974-10-31
DE2346525C3 true DE2346525C3 (de) 1979-10-11

Family

ID=26970474

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2346525A Expired DE2346525C3 (de) 1972-10-17 1973-09-15 Virtuelle Speichereinrichtung

Country Status (5)

Country Link
US (1) US3781808A (de)
CA (1) CA986230A (de)
DE (1) DE2346525C3 (de)
FR (1) FR2203539A5 (de)
GB (1) GB1438039A (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4010451A (en) * 1972-10-03 1977-03-01 National Research Development Corporation Data structure processor
US3846763A (en) * 1974-01-04 1974-11-05 Honeywell Inf Systems Method and apparatus for automatic selection of translators in a data processing system
JPS5615066B2 (de) * 1974-06-13 1981-04-08
US3976978A (en) * 1975-03-26 1976-08-24 Honeywell Information Systems, Inc. Method of generating addresses to a paged memory
US3990051A (en) * 1975-03-26 1976-11-02 Honeywell Information Systems, Inc. Memory steering in a data processing system
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload
FR2348544A1 (fr) * 1976-04-15 1977-11-10 Honeywell Bull Soc Ind Ensemble double de memoire associative
JPS52130532A (en) * 1976-04-27 1977-11-01 Fujitsu Ltd Address conversion system
US4053948A (en) * 1976-06-21 1977-10-11 Ibm Corporation Look aside array invalidation mechanism
US4084230A (en) * 1976-11-29 1978-04-11 International Business Machines Corporation Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
US4096573A (en) * 1977-04-25 1978-06-20 International Business Machines Corporation DLAT Synonym control means for common portions of all address spaces
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4241401A (en) * 1977-12-19 1980-12-23 Sperry Corporation Virtual address translator utilizing interrupt level code
US4170039A (en) * 1978-07-17 1979-10-02 International Business Machines Corporation Virtual address translation speed up technique
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
GB2052117B (en) * 1979-07-04 1982-10-20 Int Computers Ltd Data processing systems
US4507781A (en) * 1980-03-14 1985-03-26 Ibm Corporation Time domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method
US4399504A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
DE3107632A1 (de) * 1981-02-27 1982-09-16 Siemens AG, 1000 Berlin und 8000 München Verfahren und schaltungsanordnung zur adressierung von adressumsetzungsspeichern
US4513368A (en) * 1981-05-22 1985-04-23 Data General Corporation Digital data processing system having object-based logical memory addressing and self-structuring modular memory
JPS5853079A (ja) * 1981-09-25 1983-03-29 Fujitsu Ltd Stoスタツク制御方式
USRE37305E1 (en) * 1982-12-30 2001-07-31 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
JPS59203290A (ja) * 1983-05-04 1984-11-17 Hitachi Ltd アドレス変換制御方式
US4731739A (en) * 1983-08-29 1988-03-15 Amdahl Corporation Eviction control apparatus
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US4674039A (en) * 1984-10-09 1987-06-16 Chouery Farid A Method for determining whether a given value is included in an ordered table of values stored in a computer readable memory
US5347636A (en) * 1985-11-08 1994-09-13 Nec Corporation Data processor which efficiently accesses main memory and input/output devices
US4751670A (en) * 1986-03-31 1988-06-14 Honeywell Inc. High integrity digital processor architecture
WO1988002148A1 (en) * 1986-09-15 1988-03-24 Motorola, Inc. A transparent translation method and apparatus for use in a memory management unit
US4797817A (en) * 1986-12-10 1989-01-10 Ncr Corporation Single cycle store operations in a virtual memory
US5226132A (en) * 1988-09-30 1993-07-06 Hitachi, Ltd. Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
US5109496A (en) * 1989-09-27 1992-04-28 International Business Machines Corporation Most recently used address translation system with least recently used (LRU) replacement
US5584003A (en) * 1990-03-29 1996-12-10 Matsushita Electric Industrial Co., Ltd. Control systems having an address conversion device for controlling a cache memory and a cache tag memory
GB2251102B (en) * 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
JPH0540696A (ja) * 1991-08-02 1993-02-19 Canon Inc 仮想記憶アドレス制御の方法及びその情報処理装置
US5410664A (en) * 1993-03-31 1995-04-25 Intel Corporation RAM addressing apparatus with lower power consumption and less noise generation
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
DE69427734T2 (de) * 1993-10-29 2002-05-23 Advanced Micro Devices Inc Linearadressierter Mikroprozessorcachespeicher
EP0651320B1 (de) 1993-10-29 2001-05-23 Advanced Micro Devices, Inc. Superskalarbefehlsdekoder
EP0651324B1 (de) * 1993-10-29 2006-03-22 Advanced Micro Devices, Inc. Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
US5878245A (en) 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof
US6813699B1 (en) 1995-06-02 2004-11-02 Transmeta Corporation Speculative address translation for processor using segmentation and optional paging
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5724551A (en) * 1996-05-23 1998-03-03 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
TW508494B (en) * 2001-03-28 2002-11-01 Shansun Technology Company Data protection device capable of self-defining address arrangement sequence in protection area of storage device
US6745313B2 (en) 2002-01-09 2004-06-01 International Business Machines Corporation Absolute address bits kept in branch history table
US9081725B2 (en) 2002-03-19 2015-07-14 Shansun Technology Company Digital information protecting method and apparatus, and computer accessible recording medium
US7958374B2 (en) 2002-03-19 2011-06-07 Shansun Technology Company Digital information protecting method and apparatus, and computer accessible recording medium
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3569938A (en) * 1967-12-20 1971-03-09 Ibm Storage manager
US3611316A (en) * 1969-12-24 1971-10-05 Ibm Indirect indexed searching and sorting
US3685020A (en) * 1970-05-25 1972-08-15 Cogar Corp Compound and multilevel memories
FR10582E (fr) * 1970-06-29 1909-07-30 Paul Alexis Victor Lerolle Jeu de serrures avec passe-partout
US3670310A (en) * 1970-09-16 1972-06-13 Infodata Systems Inc Method for information storage and retrieval
US3701107A (en) * 1970-10-01 1972-10-24 Rca Corp Computer with probability means to transfer pages from large memory to fast memory
US3699533A (en) * 1970-10-29 1972-10-17 Rca Corp Memory system including buffer memories
US3701984A (en) * 1971-03-05 1972-10-31 Rca Corp Memory subsystem array
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing

Also Published As

Publication number Publication date
DE2346525B2 (de) 1974-10-31
GB1438039A (en) 1976-06-03
FR2203539A5 (de) 1974-05-10
US3781808A (en) 1973-12-25
CA986230A (en) 1976-03-23
DE2346525A1 (de) 1974-05-02

Similar Documents

Publication Publication Date Title
DE2346525C3 (de) Virtuelle Speichereinrichtung
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE2227882C2 (de) Virtuelle Speicheranordnung
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE2726488C2 (de) Adressenübersetzungseinrichtung
DE2547035C3 (de) Datenverarbeitungseinrichtung
DE19743267C1 (de) Verfahren zum Aufsuchen einer Adresse in einem teilbesetzten, nicht balancierten Binären Baum
DE2231146B2 (de) Datenverarbeitungsanlage mit virtueller Adressierung
DE1956604B2 (de) Datenverarbeitungsanlage
DE2154106A1 (de) Arbeitsspeicherwerk
DE19743266C1 (de) Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten Suchbaum
DE2139731A1 (de) Anordnung und Verfahren zur Code Um Setzung mit einem Assoziativ Speicher
DE2801611A1 (de) Verfahren und anordnung zum adressieren und speichern von daten in speichern mit wahlfreiem zugriff
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE1499182B2 (de) Datenspeichersystem
DE1499687B2 (de) Speicherschutz-einrichtung
DE3330845C2 (de)
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE1271191B (de) Einrichtung zur UEbertragung von Informationseinheiten in die Binaerstellen eines Umlaufspeichers
DE2458525B2 (de) Speicheranordnung mit Haupt- und Pufferspeicher
DE1280592B (de) Schaltungsanordnung zur Ansteuerung eines Speichers
DE2547052C3 (de) Datenverarbeitungseinrichtungen
DE2547031C3 (de) Datenverarbeitungseinrichtung
DE1487637B2 (de) Verfahren und anordnung zur wegesuche in mit schalt matrizen aufgebauten koppelfeldern

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee