DE2346525C3 - Virtuelle Speichereinrichtung - Google Patents
Virtuelle SpeichereinrichtungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address 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.
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
4„ der 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-
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-
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-
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
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)
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)
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 |
-
1972
- 1972-10-17 US US00298190A patent/US3781808A/en not_active Expired - Lifetime
-
1973
- 1973-07-30 GB GB3612372A patent/GB1438039A/en not_active Expired
- 1973-09-11 CA CA180,753A patent/CA986230A/en not_active Expired
- 1973-09-15 DE DE2346525A patent/DE2346525C3/de not_active Expired
- 1973-09-19 FR FR7334200A patent/FR2203539A5/fr not_active Expired
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 |