DE2131066C3 - Anordnung zum Adressieren eines Tabellenspeichers - Google Patents
Anordnung zum Adressieren eines TabellenspeichersInfo
- Publication number
- DE2131066C3 DE2131066C3 DE2131066A DE2131066A DE2131066C3 DE 2131066 C3 DE2131066 C3 DE 2131066C3 DE 2131066 A DE2131066 A DE 2131066A DE 2131066 A DE2131066 A DE 2131066A DE 2131066 C3 DE2131066 C3 DE 2131066C3
- Authority
- DE
- Germany
- Prior art keywords
- page
- address
- length
- entry
- counter
- 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/1063—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 virtually addressed
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
Description
Die Erfindung betrifft eine Anordnung zum sequentiellen Adressieren eines Tabellenspeichers, in dem zu
virtuellen Seitenadressen die zugeordneten wirklichen
Adressen gespeichert sind, zum Auffinden einer geeigneten Speicherstelle beim Einspeichern von
einander zugeordneten virtuellen und wirklichen Adressen, oder zum Auslesen der in den Speicherstellen
enthaltenen, einander zugeordneten virtuellen und wirklichen Adressen.
Bei neueren Datenverarbeitungsanlagen benutzt man häufig ein hierarchisches Speichersystem mit zwei oder
mehreren Speicherstufen. Ein typisches derartiges Speichersystem weist z. B. einen mit dem Prozessor der
Anlage verbundenen schnellen Pufferspeicher auf, in den Datenblöcke aus dem Hauptspeicher der Anlage
geladen werden können. Da auch die Kapazität des Hauptspeichers in den meisten Fällen für die meisten
Anwendungen zu niedrig ist, wird ein externer Großraumspeicher, z. B. ein Plattenspeicher, vorgesehen,
der die Gesamtmenge der Daten und Anwendungsprogramme speichert. Dieser externe Speicher wird mit
sogenannten virtuellen Adressen adressiert die den gesamten Adressenbereich umfassen. Da ein durch eine
bestimmte virtuelle Adresse gekennzeichneter Datenblock im Verlauf der Verarbeitung jeweils an verschiedenen
Stellen im Hauptspeicher gespeichert sein kann, muß eine Zuordnungstabeile vorgesehen werden, die für
diesen Datenblock jeweils die reale Hauptspeicheradresse angibt, an der z. B. der Block, der oft auch als
Seite bezeichnet wird, beginnt
Der Prozessor der Anlage verwendet zur Adressierung der benötigten Daten zumeist virtuelle Adressen,
die also jeweils vor dem Zugriff zum Hauptspeicher in reale Adressen umgesetzt werden müssen. Das gleich»·
gilt für einen Zugriff des Prozessors zu dem eventuell zur direkten Bedienung des Prozessors vorgesehenen
schnellen Pufferspeicher. Auch hier muß eine Zuordnungstabelle zwischen den virtuellen Adressen und den
realen Pufferspeicheradressen verwendet werden. Da mit Hilfe dieser Tabellen nur der Seitenanfang gefunden
werden muß, genügt die Abspeicherung der höherstelligen Anteile der realen Adressen. Die Verwendung eines
solchen Tabellenspeichers zur Speicherung der Zuordnungstabelle ist z.B. durch die US-PS 33 17 898
bekanntgeworden.
Der Tabellenspeicher hat die Aufgabe, die angebotene virtuelle Adresse mit allen gespeicherten virtuellen
Adressen zu vergleichen und bei positivem Vergleich die zugeordnete reale Adresse auszulesen. Hierzu kann
ein solcher Tabellenspeicher vorteilhaft als assoziativer Speicher ausgeführt werden. Zur Erzielung eine- extrem
raschen Arbeitsweise kann bekanntlich in einem solchen assoziativen Speicher die angebotene Suchadresse
parallel mit allen gespeicherten Adressen verglichen werden. Bei größerer Speicherkapazität wird jedoch
eine solche parallel und damit extrem rasch arbeitende Einrichtung sehr teuer. Eine andere Arbeitsweise
besteht darin, mit der angebotenen Suchadresse sequentiell alle gespeicherten Kennadressen abzufragen,
d. h. den Vergleich sequentiell auszuführen. Ist die gesuchte Adresse in einem solchen Fall am Ende des
Speichers gespeichert, ergibt sich eine relativ lange Suchzeit.
In einer Datenverarbeitungsanlage, die Dalenseiten verschiedener Größe verwendet, werden Datenseiten
größerer Länge naturgemäß öfters gebraucht als Datenseiten kleineren Umfangs. In den bekannten
sequentiell arbeitenden Tabellenspeichern ist keine Unterscheidung der Eintragungen möglich und es kann
also nicht verhindert werden, daß Eintragungen zu Datenseiten großen Umfanges am Ende der Zuordnungstabelle
vorgenommen werden. Da zu solchen Eintragungen relativ oft zugegriffen werden muß, ergibt
sich ein hoher Zeitverlust.
In der DE-AS 12 80 592 ist eine Anordnung zum Adressieren eines aus drei Speicherteilen bestehenden Datenspeichers beschrieben, wobei jeweils zu den Daten auch ihre Adresse, d. h. ihr Kennzeichen, gespeichert wird. Es handelt sich also insofern um einen iahaltsadressierten Speicher. Beim Einschreiben von
In der DE-AS 12 80 592 ist eine Anordnung zum Adressieren eines aus drei Speicherteilen bestehenden Datenspeichers beschrieben, wobei jeweils zu den Daten auch ihre Adresse, d. h. ihr Kennzeichen, gespeichert wird. Es handelt sich also insofern um einen iahaltsadressierten Speicher. Beim Einschreiben von
ίο neuen Daten samt ihrer Adresse werden aus der
Adresse der einzuschreibenden Daten durch drei separate Adressentransformationsschaltungen drei
voneinaner verschiedene Speicheradressen für die drei Speicherteile erzeugt und die Daten samt ihrer Adresse
in eine willkürlich gewählte dieser transformierten Adressen eingeschrieben. Wenn alle drei durch Transformation
gefundenen Adressen des Datenspeichers schon besetzt sind, wird die in einer dieser Adressen
gespeicherte Information ausgelesen und damit Platz gemacht für die neu einzuschreibende Information. Die
ausgelesene Information wird daraufhin den Adressentransformationsschaltungen zum Wiedereinschreiben
aufs neue zugeführt und das Verfahren somit für diese ausgelesene Information wiederholtes Mit dieser Anordnung soll eine bessere Ausnutzung
des Speicherraumes erreicht werden. Hierbei geht man in der bekannten Einrichtung davon aus, daß die Daten
mit einem bestimmten Kennzeichen (Suchadresse) durch die definierte Adressentransformation an einer
bestimmten Stelle des Speichers gespeichert werden, womit das Wiederauffinden dieser Daten durch die
direkte Adressierungsmöglichkeit erleichtert wird und insbesondere ein sequentielles Absuchen des Speichers
und das damit verbundene sequentielle Vergleichen der ausgelesenen Suchadressen mit der angebotenen
Suchadresse vermieden wird. Da jedoch, durch den Transformations-Algorithmus bedingt, verschiedene
Suchadressen eine gleiche Speicheradresse ergeben würden, und somit viele Informationen von der
Eintragung ausgeschlossen würden, wenn der betreffende Speicherplatz schon besetzt ist, sind mehrere
Speicherteile vorgesehen, wobei für jeden der Speicherteile ein anderer Transformations-Algorithmus verwendet
und somit eine Adressenvariation erzielt wird.
Hierdurch wird die Möglichkeit erweitert, daß für neu
einzuspeichernde Informationen noch ein freier Platz gefunden wird. Ist kein freier Platz vorhanden, bleibt
noch die Möglichkeit, eine der drei gespeicherten Eintragungen nach einer der beiden anderen zu der
Eintragung gehörenden Speicheradressen zu transferieren.
Um also eine schnelle Zugreifbarkeit zu den gewünschten Informationen und eine gute Speicherausnutzung
zu erzielen, muß in der bekannten Einrichtung der Aufwand ganz wesentlich erhöht werden. Um die
Abspeicherung von verschiedenartigen Daten, die über die Adressentransformation jeweils die gleiche Speicheradresse
ergeben würden überhaupt zu ermöglichen, muß der Speicheraufwand vervielfacht, im vorliegenden
ho Falle verdreifacht werden. Für jeden der Speicherteile
sind dabei eigene Ansteuerschaltungen und insbesondere eigene Adressentransformationsschaltungen notwendig.
Trotz dieses vervielfachten Aufwandes ergibt sich beim Einspeichern in manchen Fällen noch ein
<>5 Zeitnachteil dadurch, daß Eintragungen nach anderen
Plätzen verschoben werden müssen.
Der Erfindung liegt die Aufgabe zugrunde, eine Anordnung zum sequentiellen Adressieren eines Tabel-
lenspeichers derart zu gestalten, daß durch eine bestimmte Eintragungsstrategie für die Zuordnungsinformation
zwischen virtuellen und wirklichen Adressen für Seiten verschiedener Länge die Eintragungen
längerer Seiten früher gefunden werden. >
Diese Aufgabe wird durch die im Anspruch 1 genannten Maßnahmen gelöst.
Gegenüber der Einrichtung gemäß DE-AS 12 80 592 hat die Erfindung den Vorteil, daß die Vervielfachung
der Speichereinrichtungen und insbesondere der mi Speichersteuereinrichtungen und Adressentransformationsschaltungen
vermieden werden kann und trotzdem die Möglichkeit erhalten bleibt, zu einer bestimmten
virtuellen Adresse eine Vielzahl von möglichen Speicheradressen zu erzeugen. Die maximale Anzahl ■
der Speicherplätze, an denen die Zuordnungsinformation zu einer bestimmten virtuellen Adresse gespeichert
werden kann ergibt sich aus der Kapazität des erfindungsgemäßen Zählers. Bei einer fünfstelligen
Kapazität dieses Zählers wären im Vergleich nach der bekannten Anordnung 32 Speicherteile mit 32 Adresseninformationsschaltungen
und 32 Ansteuerschaltungen nötig. Erfindungsgemäß wird dabei trotz der im Wesen sequentiellen Adressierung des Umsetzerspeichers
für Eintragungen, die rasch gefunden werden sollen (Seiten großer Länge) die Suchzeit im Vergleich
zu den bekannten Einrichtungen ganz wesentlich
herabgesetzt. Die Erfindung ergibt also durch die sequentielle Adressierung den Vorteil der Einfachheit,
wobei trotzdem eine kurze Suchzeit erzielt wird, die v> ansonsten nur mit Vervielfachung der Einrichtung, d. h.
bei paralleler Arbeitsweise erreicht werden könnte.
Vorteilhafte Weiterbildungen der Erfindung sind den Unteranspriichen zu entnehmen.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird im folgenden näher
beschrieben. Es zeigt
Fig. 1 ein Blockdiagramm eines zweistufigen Speichersystems, in dem ein Tabellenspeicher vorgesehen
ist,
Fig. 2 eine schematische Darstellung der Zuordnungs-Tabelle
aus dem Tabellenspeicher,
Fig. 3 eine Abfrage-Einrichtung zum Absuchen der
Zuordnungs-Tabelle,
Fig.4 das Schema der Stellengruppierung einer 4s
virtuellen Adresse für die Zuordnung bei verschiedenen Seitengrößen,
F i g. 5 eine schematische Darstellung eines Auswahl-Algorithmus, nach welchem Eintragungen in die
Zuordnungs-Tabelle vorgenommen werden und so
Fig. 6 eine Eintragungs-Einrichtung zur Durchführung von Eintragungen in die Zuordnungs-Tabelle unter
Berücksichtigung des Schemas der F i g. 5.
Aufbau ss
F i g. 1 zeigt ein allgemeines Blockdiagramm eines zweistufigen Speichersystems, in welchem ein Tabellenspeicher
Anwendung findet Der Prozessor 3 ist über die Leitung 5 mit dem Schnellspeicher 1 verbunden. Der
Prozessor liefert eine Anforderung in Form einer fto
virtuellen Adresse an den Schnellspeicher 1. Wenn die durch die virtuelle Adresse bezeichneten Daten
gegenwärtig im Schnellspeicher stehen, werden sie direkt zur Verarbeitung über die Datenleitung zum
Prozessor übertragen. Der Schnellspeicher ist über die fts
VA-Leitung mit dem Tabellenspeicher 11 verbunden, welcher an den Hauptspeicher9 angeschlossen ist
Wenn die von der virtuellen Adresse angeforderten Daten gegenwärtig nicht im Schnellspeicher stehen,
wird die virtuelle Adresse in den Tabellenspeicher 11 eingegeben, welcher zur Ermittlung der wirklichen
Hauptspeicheradresse, an der die die gewünschten Daten enthaltende Seite beginnt, eine Zuordnungs-Tabelle
absucht. Der Hauptspeicher wird dann adressiert und eine Anzahl von Datenwörtern, zu denen auch die
von der ursprünglichen virtuellen Adresse angeforderten Daten gehören, in den Schnellspeicher übertragen.
Die angeforderten Daten werden schließlich über die Datenleitung an den Prozessor gesendet.
In Fig. 2 ist die Zuordnungs-Tabelle des Tabellenspeichers
11 dargestellt. Die Tabelleneintragungen sind fortlaufend mit 0 bis N numeriert. Jede Eintragung
besteht im wesentlichen aus einer virtuellen Adresse und einer wirklichen Adresse im Hauptspeicher, welche
der zugehörigen virtuellen Adresse entspricht. Außerdem gehört zu jeder Eintragung die Größe der Seite, in
der die durch die virtuelle Adresse bezeichneten Daten zu finden sind. Weiterhin kann ein Gültigkeitsbit (Wt
eingeschlossen werden, um anzuzeigen, daß die Eintragung gegenwärtig gültig ist. Die Seitengröße ist
nicht in der Anforderung der virtuellen Adresse enthalten, kann jedoch in der Tabelle zur Eintragung
durch das Betriebssystem hinzugefügt werden, und zwar auf verschiedene bekannte Weisen, z. B. durch eine
Tabellensuchoperation, welche eine gegebene virtuelle Adresse mit einer gegebenen Seitengröße verbindet.
Suchoperation in der Zuordnungs-Tabelie
F i g. 3 zeigt den Tabellenspeicher, in dem die Zuordnungs-Tabelle abgesucht wird, wenn feststeht,
daß die über eine virtuelle Adresse vom Prozessor angeforderten Daten gegenwärtig nicht zur Verarbeitung
im Schnellspeicher stehen. Für die Suchoperation wird die virtuelle Adresse über die Leitung 12 an den
Adreßgenerator 13 und auch über die Leitung 19 an den Vergleicher 17 geleitet. Der Adreßgenerator 13 erzeug!
eine Zuordnungs-Zwischenadresse auf der Leitung 15 mit welcher eine Eintragung in der Zuordnungs-Tabelle
adressiert wird. Der VA-Teil dieser Eintragung wird an die Vergleicherschaltung 17 geleitet. Wenn er mit der
virtuellen Adresse übereinstimmt, wird die wirkliche Adresse (WA) aus dieser Eintragung über das Tor 21
geleitet und zur Adressierung der gewünschten Seite im Hauptspeicher benutzt. Bestimmte wertniedere Bits der
virtuellen Adressen können zur Adressierung einer bestimmten Untermenge von Wörtern benutzt werden
die in den Schnellspeicher zu übertragen sind. Diesel Vorgang wird später genauer erklärt.
Wenn andererseits der VA-Teil nicht mit der hereinkommenden virtuellen Adresse übereinstimmt
wird ein Signal über die Leitung 25 gegeben, welche· den Zähler 27 um eine Stelle weiterschaltet, so daß eine
neue Adresse erzeugt wird und der Prozeß weiterläuft Wie aus der nachfolgenden genaueren Beschreibung
des Adreßgenerators hervorgeht, sind für das Ausführungsbeispiel
insgesamt 512 mögliche Zuordnungs-Zwischenadressen vorgesehen. Jede virtuelle Adresse kanr
auf Grund des nachfolgend beschriebenen Pseudo-Zufallszahlen-Algorithmus, der im Adreßgenerator 13
verwendet wird, in einer Untermenge von 32 Hinweisadressen innerhalb der 512 möglichen Adressen stehen
Diese Zahl kann durch Veränderung des Algorithms natürlich beliebig erhöht oder erniedrigt werden. Dci
Zähler 27 läuft bei 0 los. Wenn bis zum Zählerstand »31 < kein erfolgreicher Vergleich stattfand, können dii
üblichen Seitenübertragungs-Vorgänge ausgelöst wer
den, die beim Fehlen einer Seite im Schnellspeicher vorgesehen sind. Die Erfindung wird jedoch hiervon
nicht betroffen, und daher wird dieser Punkt nicht näher beschrieben.
Adreßgenerator
Der in F i g. 3 als Block 13 gezeigte Pseuso-Zufalls-Adreßgeneratur
kann nach folgenden Prinzipien aufgebaut werden. Für das vorliegende Ausführungsbeispiel
wird eine virtuelle Adresse von 36 Bits angenommen. Die Zahl im Zähler 27 der F i g. 3 ändert sich zwischen 0
und 31; somit ergeben sich fünf Bits für die Eingabe in den Adreßgenerator. Die Zuorunungs-Zwischenadresse
besteht aus elf Bits zur Darstellung der Adressen in der Zuordnungs-Tabelle. Die Adressen bzw. Zählwerte
haben also folgende Bitstruktur:
Virtuelle Adresse ao3ia2... a»
Zähl wert CoCiftCjC*
Zuordnungs-Zwischenadresse p»p\... pu>
Mittels Schieberegister sowie Antivalenz-, ODER- und UND-Schaltungen erzeugt der Adreßgenerator
eine Pseudo-Zufallsadresse jeweils aus einem Zählwert und einer virtuellen Adresse. Dabei werden die Bits
aia2... a22 um In Stellen nach links verschoben, wobei η
der Wert im Zähler ist, was zu folgendem Zwischenergebnis führt:
X"X"i ■■■ Xh
Die Zuordnungs-Zwischenadresse wird dann folgendermaßen gebildet:
P(I = Xn Φ Xu ί- (['Λ V C4] Λ «23)'
Pi = Xw 4= Xu ^ ([C3 ν C4] a (J24),
P2 = S3 Φ 814 3 (C3 Λ Ü2s) ,
Seitengröße finden. Hierfür wird das Zählargument des Pseudo-Zufallsalgorithmus verwendet. Die zwei wertniederen Zählbits maskieren Paare virtueller Adreßbits
S2J bis a?«, je nach dem die Zahl 0,1,2 oder 3 modulo 4 ist.
Diese Bitpaare unterscheiden zwischen Seiten derselben Größe. Hieraus ergibt sich die Eingabestrategie, bei
der eine Eintragung für eine Seite mit 4096 Wörtern nur mit einem Zählerstand von 0,4,8 ... eingegeben werden
kann. Eine Eintragung für eine Seite mit 1024 Wörtern kann nur mit den Zählwerten 0, 1, 4, 5, 8, 9 ..., für eine
Seite mit 256 Wörtern nur mit den Zählwerten 0, 1, 2, 4, 5, 6, 8, 9, 10..., und für eine Seite mit 64 Wörtern mit
jedem Zählwert eingegeben werden. Wenn also eine Eintragung in die Zuordnungs-Tabelle gemacht wird,
erfolgt sie in die erste Stelle der zuständigen »Kette« (wie die oben angegebenen Folgen von Steilen hier
genannt sein sollen), die gegenwärtig entweder eine ungültig gewordene Eintragung oder eine Eintragung
einer kleineren Seite enthält. Da eine größere Seite öfters adressiert wird als eine kleinere, ist die
durchschnittliche Suchzeit in der Zuordnungs-Tabelle minimal. Diese Vorgänge werden durch F i g. 5 deutlich.
Aus der Untersuchung des oben aufgeführten Algorithmus läßt sich die Art erkennen, in welcher der
Zählwert zum Maskieren bestimmter Paare virtueller Adreßbits beim Suchprozeß benutzt wird, je nachdem
ob der Zählwert 0, 1, 2 oder 3 modulo 4 ist. Wenn z. B. der Zählwert 0 modulo 4 ist, sind die Zählwertbits ei und
ca beide 0. In diesem Falle wird das virtuelle Adreßbit an
durch po maskiert, ajA durch p\, an durch /%, a2b durch pi,
327 durch Pa und an durch ps. Somit gelangen nur die Bits
0 bis 22 zum Adreßgenerator für eine Seite mit 4096 Wörtern (entsprechend einem Zählwert 0 modulo 4).
Nachfolgend ist für jeden der vier möglichen Modulo-4-Zählwerte eine Zusammenstellung der maskierten Bits
und der Bits gegeben, die zur Verarbeitung in den Adreßgenerator gelangen.
Pi | = Xh = | rt~ | (C3 | A «2h) ■ | A U21) , | Zählwerl | Maskierte Bits | 24, 25, 26, 27, 28 | In Adrcßgcncralor | : Bits |
A «2b) . | (modulo 4) | 26, 27, 28 | verarbeitete | |||||||
Pa | - Zi 3 | i- | ([C3 | Λ C4] | 28 | |||||
Ps | I | ([C3 | A C4] | C.I C4 | ||||||
+ | OO | 23, | - | |||||||
Ph | = S? =- | C4 , | 45 01 | 25, | 23,24 | 26 | ||||
10 | 27, | 23, 24, 25, | 26, 27, 28 | |||||||
Pl | = xl = | C3 . | 11 | - | 23, 24, 25, | |||||
k Xl5 | ||||||||||
h gi"„ | ||||||||||
t= Χΐκ | ||||||||||
y ΧΪ» | ||||||||||
Pk =
C2
Xli
Die erzeugte Zuordnungs-Zwischenadresse ist also der virtuellen Adresse nicht proportional, aber andererseits
durch die Verwendung des geschilderten Algorithmus auch nicht beliebig statistisch verteilt, weshalb sie
hier als »Pseudo-Zufallsadresse« bezeichnet wird.
Dieser Algorithmus wird aus dem Zusammenhang mit Fig.4 klarer. Die durch eine virtuelle Adresse
bezeichnete Datencinhcit steht bekanntlich in der Datenseite, welche die zugeordnete wirkliche Adresse
enthält. Die Seite kann aus 64, 256, 1024 oder 4096 Wörtern bestehen. Welche Seitengröße zutrifft ist nicht
in der virtuellen Adresse selbst angegeben. Die Folge der durch den Adreßgenerator erzeugten Zuordnungs-Zwischcnadrcssen
muß die richtige Seite ungeachtet der Aus F i g. 4 und dem obigen Algorithmus ist zu
ersehen, daß die Bits 0 bis 22 für eine 4096 Wörter große Seite und eine kleinere zum Adreßgenerator gelangen.
Die Bits 0 bis 24 gelangen zur Zufallsverarbeitung für eine Seite mit 1024 Wörtern und darunter, die Bits 0 bis
26 für eine Seite mit 256 Wörtern und darunter, und die Bits 0 bis 28 für eine Seite mit 64 Wörtern.
Wenn also eine hereinkommende virtuelle Adresse umgewandelt werden soll, wird der oben aufgeführte
Algorithmus dazu verwendet, um Zuordnungs-Zwischenadressen
zu erzeugen. Diese werden dann benutzt, um die wirkliche Adresse (WA) zu bestimmen, die dem
Anfang der Seite im Hauptspeicher entspricht, welche das durch die virtuelle Adresse bezeichnete Wort
enthält. Diese wirkliche Adresse wird dann zur Adressierung des Seitenanfangs benutzt. Die jeweilige
Anzahl von Wörtern (einschließlich des angeforderten Wortes), die aus dem Hauptspeicher in den Schncllspcicher
übertragen werden, kann auf zahlreiche Weise
bestimmt werden. Zum Beispiel können hierfür bestimmte wertniedere Bits der virtuellen Adresse (s.
Fig. 3) benutzt werden. Von der ursprünglichen virtuellen Adresse adressieren die wertniederen sechs
Bits, nämlich die Bits 30 bis 35 im Ausführungsbeispiel, s das jeweils gewünschte Wort oder Halbwort. Die Bits
23 bis 29 können dann benutzt werden, bestimmte Wortblöcke innerhalb einer gegebenen Seite voneinander
zu unterscheiden. Aus F i g. 4 ist die Art zu sehen, in welcher dieser Vorgang bei Blöcken mit je 64 Wörtern ι ο
abläuft. Wenn die durch die virtuelle Adresse bezeichnete Dateneinheit in einer 64 Wörter großen Seite steht,
dann können alle 64 Wörter als ein Block in der Schnellspeicher der Fig. 1 unter Verwendung des Bit
a-B gelesen werden. Wenn die virtuelle Adresse in einer
256 Wörter großen Seite gefunden wird, können die Bits 27 und 28, die nicht zur Erzeugung der Zuordnungs-Zwischenadresse
benutzt werden, zur Auswahl je eines von vier 64-Wort-Blöcken benutzt werden, der dann in den
Schnellspeicher übertragen wird. Dieser Vorgang ist mit A in Fig.4 bezeichnet. In gleicher Weise können für
eine Seite mit 1024 Wörtern die Bits 25 bis 28 zur Festlegung dafür benutzt werden, welcher der sechzehn
64-Wort-Blöcke in den Schnellspeicher übertragen wird. Dieser Vorgang ist bei B in Fig.4 zu sehen.
Weiterhin können die Bits 23 bis 28, die bei einer 4096 Wörter großen Seite nicht zur Pseudo-Zufallsadreß-Erzeugung
gelangen, dazu benutzt werden, festzulegen, welcher der 64 Blöcke mit je 64 Wörtern innerhalb der
4096 Wörter großen Seite aus dem Hauptspeicher zur Verarbeitung in den Schnellspeicher übertragen wird.
Um den aus dem Hauptspeicher in den Schnellspeicher zu setzenden Teil der Seite zu bestimmen, gibt es noch
zahlreiche andere allgemein bekannte Möglichkeiten.
Eintragungsstrategie
Eintragungen in die Zuordnungstabelle werden wie folgt vorgenommen (s. Fig.5). Eine neue Eintragung
mit einer vorliegenden virtuellen Adresse muß in der nach der Seitengröße zuständigen Kette von Tabellenplatzen
in der eisten Stelle erfolgen, die gegenwärtig entweder eine ungültige Eintragung enthält (z. B. leer
ist) oder die Eintragung einer kleineren Seite. Dadurch kann es erforderlich werden, eine kleinere Seite weiter
unten in der für diese Seitengröße zuständigen Kette neu einzusetzen. Der Vorteil dieser Strategie besteht
gemäß obigen Ausführungen darin, daß die Eintragung der größeren Seite, die häufiger adressiert wird, früher
in der Kette gefunden wird als die Eintragung einer kleineren Seite.
Eine Information über die Seitengröße ist in der virtuellen Adresse nicht enthalten. Sie ergibt sich jedoch
aus der Lage der Eintragung innerhalb der Zuordnungs-Tabelle. Schaltungseinzelheiten eines Tabellenspeichers,
die zur Feststellung der Seitengröße dienen, sind in F i g. 6 gezeigt Der Adreßgenerator 100 ist von
derselben Art wie der in F i g. 3 gezeigte. Ein Ringzähler, der genauso gebaut sein kann wie der Zähler 27 in
F i g. 3, ist über die Leitung 104 mit dem Adreßgenerator verbunden. Ein zweiter Eingang zum Generator 100 ist
für die virtuelle Adresse vorgesehen. Die Leitung 106 ist mit dem Ringzähler verbunden; ein Signal auf ihr zeigt
an, daß eine Eintragung erfolgt und der Zähler auf 0 initialisiert werden soll. Der Zähler ist außerdem über
die Leitung 108 mit dem Decodierer 110 verbunden, der
den laufenden Zählwert decodiert Der Decodierer 110
erregt die Leitung 112, wenn der Zähl wert 0 modulo 4
ist die Leitung 114, wenn der Zählwert 0 oder 1 modulo
4 ist, und die Leitung 116, wenn der Zählwert 0, 1 oder 2
modulo 4 ist. Die Leitungen, welche die Seitengröße für die vorgesehene Eintragung anzeigen, sind mit 118,120,
122 und 124 bezeichnet. Die UND-Verknüpfung der Signale auf den Leitungen 112,114 und 116 mit den eine
vorliegende Seitengröße anzeigenden Leitungen ermöglicht es, die Eintragung in der richtigen Kette
(gemäß F i g. 5) vorzunehmen. Dieser Vorgang geht aus einem nachfolgenden detaillierten Beispiel genauer
hervor. Jede der Leitungen 118, 120, 122 und 124 ist mit
einem der ODER-Glieder 126, 128, 130 und 132 verbunden, deren Ausgänge je zwei UND-Gliedern
zugeführt werden. So ist z. B. der Ausgang des ODER-Gliedes 132 mit dem UND-Glied 134 und über
den Inverter 138 mit dem UND-Glied 136 verbunden. Das Ausgangssignal der Leitung 112 wird als zweites
Eingangssignal den UND-Gliedern 134 und 136 zugeführt. Ähnliche Anordnungen sind für den Ausgang
des ODER-Gliedes 130 und die Leitung 114 bzw. des ODER-Glieder 128 und die Leitung 116 vorgesehen. Die
Ausgänge der UND-Glieder 134, 140 und 144 und der Ausgang des ODER-Gliedes 126 sind mit dem
ODER-Glied 141 verbunden. Das ODER-Glied 126 ist direkt mit dem ODER-Glied 141 verbunden, da sein
Eingangssignal eine Seitengröße von 64 Wörtern anzeigt, die mit jedem Zählwert gemäß Darstellung in
F i g. 5 eingetragen werden kann. Ein aktives Ausgangssignal vom ODER-Glied 141 dient dazu, das Gültigkeitsbit (V) und die Größenangabe (S) aus der Stelle der
Zuordnungs-Tabelle, die durch den Adreßgenerator bezeichnet wird, auszulesen, um festzustellen, ob die
Bedingungen für eine Eintragung vorliegen. Der Ausgang der UND-Glieder 136,142 und 146 ist mit dem
ODER-Glied 148 verbunden, dessen Ausgangssignal dazu dient, den Inhalt des Ringzählers 103 um jeweils 1
zu erhöhen.
Die ebenfalls vorgesehene Vergleicherschaltung 152 verfügt über eine Eingangsleitung 154, auf welcher die
gerade ausgelesene Seitengrößen-Angabe fSJ erscheint.
Ein zweiter Satz von Eingängen für die Vergleicherschaltung 152 wird gebildet durch eine Gruppe von
Leitungen, durch welche die Seitengröße für die zu machende Eintragung angegeben wird. Diese Leitungen
können mit den Leitungen 118, 120, 122 und 124 verbunden sein. Die Leitung 156 ist von der Vergleicherschaltung
zum UND-Glied 158 geführt und zeigt im erregten Zustand an, daß die zu der Eintragung, die
gerade adressiert wird, gehörende Seitengröße mindestens ebenso groß ist wie die Seite, für die gerade eine
Eintragung gemacht werden soll. Die Leitung 160 ist zwischen die Vergleicherschaltung 152 an das UND-Glied
162 gelegt und gibt im erregten Zustand an, daß die Seitengröße der gerade adressierten bestehenden
Eintragung unter der Seitengröße liegt, für die eine Eintragung erfolgen soll. Die Leitung 164 ist vom
Gültigkeitsbitteil der Zuordnungs-Tabclle zu den UND-Gliedern 158 und 162 geführt und gibt im
erregten Zustand an, daß die gerade adressierte Stelle der Zuordnungs-Tabelle eine gültige Eintragung aufweist
Der Ausgang des UND-Gliedes 162 ist die Leitung 166, die im erregten Zustand angibt daß die
gerade adressierte Steile in der Zuordnungs-Tabelle eine Eintragung enthält, deren zugehörige Seitengröße
unter der Seitengröße der vorzunehmenden Eintragung liegt Daher dient das Signal auf der Leitung 166 als
Einschaltsignal für das Tor 168, welches die Eintragung von der gerade adressierten Stelle in das Register 170
zur vorübergehender Speicherung überträgt damit sie
entsprechend der Eintragungsstrategie in eine neue
Stelle eingeschrieben wird, die weiter unten in der Kette
liegt. Die neue Eintragung wird über die Leitung 101 in
die gerade adressierte (eigentlich schon besetzt
gewesene) Stelle in der Zuordnungs-Tabelle über das 5
Tor 188 eingeschrieben. Die Leitung 174 verbindet die
Komplementseite des Gültigkeitsbit-Merkers der
adressierten Stelle mit dem ODER-Glied 172. Wenn die
Leitung 174 erregt ist, bedeutet das, daß das
Gültigkeitsbit für die adressierte Stelle eine 0 ist (d. h., io
die Stelle ist leer) und daher die Stelle die vorzunehmende Eintragung empfangen kann, ohne daß eine kleinere
Eintragung weiter unten in die Kette gesetzt werden
muß.
Stelle eingeschrieben wird, die weiter unten in der Kette
liegt. Die neue Eintragung wird über die Leitung 101 in
die gerade adressierte (eigentlich schon besetzt
gewesene) Stelle in der Zuordnungs-Tabelle über das 5
Tor 188 eingeschrieben. Die Leitung 174 verbindet die
Komplementseite des Gültigkeitsbit-Merkers der
adressierten Stelle mit dem ODER-Glied 172. Wenn die
Leitung 174 erregt ist, bedeutet das, daß das
Gültigkeitsbit für die adressierte Stelle eine 0 ist (d. h., io
die Stelle ist leer) und daher die Stelle die vorzunehmende Eintragung empfangen kann, ohne daß eine kleinere
Eintragung weiter unten in die Kette gesetzt werden
muß.
Das Zwischen-Speicherregister 170 enthält Plätze für 15
die virtuelle Adresse, die wirkliche Adresse und die
Seitengrößen-Angabe einer Eintragung, die weiter
unten in die Kette gesetzt werden muß. Das
Größenfeld S ist über die Leitung 176 mit dem
Decodierer 178 allgemein bekannter Bauart verbunden, 20
der das Größenfeld in eine 1-aus-n-Darstellung auf den
Leitungen 180, 182, 184 und 186 decodiert. Diese
Leitungen sind mit den ODER-Gliedern 126, 128, 130
und 132 verbunden, um die Adressierung der Stelle zu
steuern, die in der Zuordnungs-Tabelle weiter unten in 25
der Kette liegt und in welche die Eintragung vom
Register 170 neu eingeschrieben wird.
die virtuelle Adresse, die wirkliche Adresse und die
Seitengrößen-Angabe einer Eintragung, die weiter
unten in die Kette gesetzt werden muß. Das
Größenfeld S ist über die Leitung 176 mit dem
Decodierer 178 allgemein bekannter Bauart verbunden, 20
der das Größenfeld in eine 1-aus-n-Darstellung auf den
Leitungen 180, 182, 184 und 186 decodiert. Diese
Leitungen sind mit den ODER-Gliedern 126, 128, 130
und 132 verbunden, um die Adressierung der Stelle zu
steuern, die in der Zuordnungs-Tabelle weiter unten in 25
der Kette liegt und in welche die Eintragung vom
Register 170 neu eingeschrieben wird.
Die Arbeitsweise der in F i g. 6 gezeigten Anordnung
ist aus der gleichzeitigen Betrachtung der Fi g. 5 und 6
zu ersehen. Es wird angenommen, daß die zu machende 3°
Tabellen-Eintragung sich auf eine 4096 Wörter große
Seite im Hauptspeicher bezieht und daß die ersten fünf
Stellen mit den Zahlen 0 bis 4 vorhergehende
Eintragungen in den nachfolgenden Größen aufweisen
(der Buchstabe »K« steht jeweils für »1024 Bit«): 35
ist aus der gleichzeitigen Betrachtung der Fi g. 5 und 6
zu ersehen. Es wird angenommen, daß die zu machende 3°
Tabellen-Eintragung sich auf eine 4096 Wörter große
Seite im Hauptspeicher bezieht und daß die ersten fünf
Stellen mit den Zahlen 0 bis 4 vorhergehende
Eintragungen in den nachfolgenden Größen aufweisen
(der Buchstabe »K« steht jeweils für »1024 Bit«): 35
Seitengröße der Eintragung
Lfd. Nr. | Seiten^ |
(Zählerstand) | |
0 | 4K |
1 | \K |
2 | 1/16K |
3 | 1/16K |
4 | \K |
5 | leer |
40
Wie aus der obigen Tabelle zu ersehen ist, steht eine
sich auf die Seitengröße von ΛΚ beziehende Eintragung 50
an einer Stelle, deren Adresse unter Verwendung des
Zählwerts 0 erzeugt wurde. In ähnlicher Weise wurde
vorher eine sich auf die Seitengröße von 1K beziehende
Eintragung an einer Stelle eingeschrieben, für deren
Adresse der Zählwert 1 benutzt wurde, usw. 55
sich auf die Seitengröße von ΛΚ beziehende Eintragung 50
an einer Stelle, deren Adresse unter Verwendung des
Zählwerts 0 erzeugt wurde. In ähnlicher Weise wurde
vorher eine sich auf die Seitengröße von 1K beziehende
Eintragung an einer Stelle eingeschrieben, für deren
Adresse der Zählwert 1 benutzt wurde, usw. 55
Wenn jetzt eine andere Eintragung die in Zuordnungstabelle vorgenommen werden soll, die sich auf
eine 4K-Seite bezieht, wird die in Fig.6 gezeigte
Leitung 124 erregt Ein Signal auf der Leitung 106
startet den Ringzähler 102, der eine Adresse 0 an den 60
Adreßgenerator 100 sendet, welcher dann eine Zuordnungs-Zwischenadresse erzeugt. Der Decodierer 110
empfängt ebenfalls die Zahl 0 über die Leitung 108 und
erregt die Leitung 112, die das UND-Glied 134
einschaltet; über das ODER-Glied 141 gesteuert, wird 65
das Gültigkeitsbit (V) und das Größenfeld (S) aus der
adressierten Stelle der Zuordnungs-Tabelle 150 ausgelesen. Da gemäß obenstehender Tabelle an dieser Stelle
bereits ein 4 Ai-Wort steht, wird die Leitung 164 erregt.
Außerdem wird die 4AC-Leitung als ein Eingang zur Vergleicherschaltung 152 erregt. Da sich die hereinkommende
Eintragung auf dieselbe Seitengröße (4/CJ
bezieht, wie sie bereits an der adressierten Stelle steht, wird die Leitung 156 erregt. Die Kombination der
Signale auf den Leitungen 16-' und 156 betätigt das UND-Glied 158, so daß der Zähler auf die nächste Zahl,
nämlich »0001« erhöht wird. Dieser Zählwert und die virtuelle Adresse der vorzunehmenden Eintragung
veranlassen den Adreßgenerator 100 zur Erzeugung einer zweiten Adresse. Da die Zahl jetzt 0001 ist, erregt
der Decodierer 110 nur noch die Leitungen 114 und 116.
Da jedoch keines der ODER-Glieder 128 oder 130 zu diesem Zeitpunkt erregt ist, wird auch das ODER-Glied
141 nicht erregt. Durch die an die Ausgänge der ODER-Glieder 128 und 130 angeschlossenen inverter
werden jedoch die UND-Glieder 142 und 146 betätigt, die ihrerseits wiederum das ODER-Glied 148 dazu
veranlassen, den Zähler auf die nächste Position vorzuschalten. Die Operation läuft in ähnlicher Weise
weiter, bis der Zähler zur Zahl »4« vorgeschaltet ist. An diesem Punkt wird die Leitung 112 wieder erregt. Da die
vorzunehmende Eintragung sich auf eine 4A£-Seite bezieht, ist die Leitung 124 erregt. Daher veranlaßt das
Ausgangssignal des UND-Gliedes 134 das ODER-Glied 141 dazu, das Gültigkeitsbit und das Größenfeld aus der
unter Verwendung des Zählwertes 4 adressierten Stelle auszulesen. Die Größenangabe, die laut Beispiel \K
betrug, wird über die Leitung 154 auf die Vergleicherschaltung 152 geleitet. Außerdem wird die 4Ai-Leitung
zur Vergleicherschaltung 152 wieder erregt. Daher wird die Leitung 160 erregt, da die sich auf die Eintragung
beziehende Seitengröße an der adressierten Stelle geringer ist als die Seitengröße, die sich auf die
vorzunehmende Eintragung bezieht. Die Leitung 164 wird ebenfalls erregt. Dadurch gibt das UND-Glied 162
ein Signal auf die Leitung 166. Dieses Steuersignal bewirkt die Weiterleitung der IAC-Eintragung über das
Tor 168 auf das Speicherregister 170. Außerdem schaltet die Leitung 166 das ODER-Glied 172 nach einer
zum Auslesen der Eintragung ausreichenden Verzögerung ein, um die neue Eintragung von der Leitung 101
auf die adressierte Position in der Tabelle zu leiten. Damit ist die neue Eintragung an der gewünschten
Stelle gespeichert. Die in das Register 170 übertragene Eintragung muß jedoch weiter unten in der Kette
wieder in eine passende Stelle eingesetzt werden. Daher wird das Größenfeld aus dem Register 170 im
Decodierer 178 decodiert. Da die Größe \K (1024 Bit) betrug, schaltet die Leitung 184 das ODER-Glied 130
ein. Die virtuelle Adresse wird über die Leitung 145 auf den Adreßgenerator 100 geleitet. Außerdem wird das
Oder-Glied 143 eingeschaltet, welches den Ringzähler auf seine nächste Zahl, nämlich »5« weiterschaltet, um
eine Pseudo-Zufalls-Adreßerzeugung zu ermöglichen.
An diesem Punkt wird die Leitung 114 vom Decodierer 110 erregt Da das ODER-Glied 130 durch die sich auf
die weiter unten in der Kette neu einzusetzende Eintragung beziehende Seitengröße erregt wurde,
schaltet das UND-Glied 140 das ODER-Glied 141 ein, welches jetzt die Ausgabe des GQItigkeitsbits und des
Größenfeldes aus der adressierten Stelle bewirkt. Da bei dieser Adresse im angenommenen Beispiel noch
keine Eintragung stand, erregt ein Signal auf der Leitung 174 das ODER-Glied 172 welches die
Eintragung vom Register 170 auf die gerade adressierte Stelle leitet
Hierzu 3 Blatt Zeichnungen
Claims (10)
1. Anordnung zum sequentiellen Adressieren eines Tabellenspeichers, in dem zu virtuellen Seitenadressen
die zugeordneten wirklichen Adressen gespeichert sind, zum Auffinden einer geeigneten
Speicherstelle beim Einspeichern von einander zugeordneten virtuellen und wirklichen Adressen,
oder zum Auslesen von in den Speicherstellen enthaltenen, einander zugeordneten, virtuellen und
wirklichen Adressen, gekennzeichnet durch einen Adreßgenerator (13, 100), welcher aus der
virtuellen Adresse (VA) einer Seite bestimmter Länge (S) und dem Zählerstand eines bei der
Adressierung des Tabellenspeichers (11) fortschaltenden Zählers (27,102) eine Adresse des Tabellenspeichers
auf die gleiche Weise zum Einspeichern oder zum Auslesen der zugeordneten Adressen
derart bildet, daß bei K möglichen Zählerständen zu jeder virtuellen Adresse eine Kette von maximal K
Tabellenspeicheradressen bis zum Auffinden oder Auslesen gebildet werden können, wobei durch eine,
durch die Seitenlänge (S) beim Einspeichern gesteuerte Auswahl der fortschreitenden Zählerstände
die Anzahl der zu verwendenden Adressen, an denen Eintragungen zu einer Seite bestimmter
Länge eingespeichert werden können, umgekehrt proportional ist der Länge der Seite, und Eintragungen
zu einer Seite größerer Länge bei der ersten Gelegenheit innerhalb der Kette der zu verwendenden
Adressen eingespeichert werden, wenn der adressierte Speicherplatz leer oder durch eine
Eintragung zu einer Seite kleinerer Länge besetzt ist, in welchem Falle diese Eintragung weiter nach
hinten in der Eintragungskette verschoben wird.
2. Anordnung nach Anspruch 1, gekennzeichnet durch einen Decoder (110, F i g. 6), welcher aus dem
Stand des Zählers (102) die niedrigsten N—\ Signale modulo Nerzeugt (112,114,116, d. h. drei Signale für
/V=4), wobei N gleich ist der Anzahl verwendeter
Seitenlängen, sowie gekennzeichnet durch logische Schaltungen (144, 140, 134, 141), zur Auswahl der
fortschreitenden Zählerstände, welche ein Signal zum Überprüfen des Inhalts eines adressierten
Tabellenspeicherplatzes zum Einspeichern einer Eintragung erzeugen, wenn das Signal modulo Λ/und
das auswählende Signal der entsprechenden Seitenlänge (Ausgang der ODER-Glieder 126, 128, 130,
132) vorliegen, derart daß Eintragungen zur kleinsten Seitenlänge an allen N Tabellenspeicherplätzen,
Eintragungen zur zweitkleinsten Seitenlänge an (N-1) Plätzen usw. vorgenommen werden
können.
3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß in der im Tabellenspeicher (11)
gespeicherten Zuordnungstabelle (150, Fig. 2, F i g. 6) in jeder Stelle ein Feld (S) zur Angabe einer
Seitenlänge sowie ein Feld (V) zur Angabe darüber, ob die Stelle frei oder belegt ist, vorgesehen ist, daß
eine Vergleicherschaltung (152) vorgesehen ist, um die aus dem Tabellenspeicher ausgelesene Seitenlängenangabe
(S) mit der Seitenlängenangabe zu vergleichen, die sich auf eine neu einzugebende
Tabelleneintragung bezieht, und daß logische Schaltungen (158, 162, 172, 188) vorgesehen sind, um die
Eintragung (101, VA/WA/S) einzuspeichern, wenn die überprüfte Speicherstelle leer (174), oder durch
eine Eintragung zu einer kleineren Seitenlänge (166) besetzt ist, oder aber um den Zähler (102)
weiterzuschalten, wenn die Stelle durch eine Eintragung zu einer Seite gleicher oder größerer
Seitenlänge (156) besetzt ist (164).
4. Anordnung nach Anspruch 3, gekennzeichnet durch logische Schaltungen (146, 142,136,148) zum
Weiterschalten des Zählers (102), wenn der Zählerstand eine Eintragung zu der vorliegenden Seitenlänge
nicht ermöglicht
5. Anordnung nach Anspruch 3, gekennzeichnet durch durch eine Torschaltung (168) und ein mit dem
Adreßgenerator (100) und dem Eingang (Torschaltung 188) des Tabellenspeichers (11) verbundenes
Register (170) zum Auslesen und Zwischenspeichern einer Eintragung zu einer kleineren Seitenlänge
wenn diese durch eine Eintragung zu einer größeren Seitenlänge verdrängt wurde, sowie durch einen
Decoder (178) der zwischengespeicherten Seitenangäbe (176) und Torschaltungen (143, 126, 128, 130,
132) derart, daß für die zwischengespeicherte Ang?be eine geeignete Speicherstelle gesucht
werden kann.
6. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß zur Adressenbildung durch den
Adreßgenerator (13,100) nur die höherwertigen Bits der virtuellen Adresse herangezogen werden, wobei
die Anzahl dieser Bits jedoch größer ist, als die Anzahl der Bits der erzeugten Tabellenspeicheradresse
(F i g. 4).
7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß für größere Seitenlängen weniger Bits
der virtuellen Adresse zur Adressenbildung herangezogen werden, als für kleinere Seitenlängen,
.15 wobei die nichtherangezogenen Bits zu Adressenangaben
innerhalb der Seite verwendet werden und durch entsprechende Bits des Zählers (27, 102) bei
der Adressenbildung maskiert werden (F i g. 4).
8. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß die höherwertigen Bits erst einer
Ringverschiebung unterzogen werden, wobei die Anzahl der Verschiebungen gleich ist dem doppelten
Wert des Standes des Zählers (27, 102) und hierauf mit den Zählerbits logisch verknüpft werden, so daß
eine Pseudo-Zufalls-Adressengeneration erzielt wird.
9. Anordnung nach Anspruch 2, dadurch gekennzeichnet,
daß für N= 4 (vier verschiedene Seitengrößen) die Eintragungen bei den Zählerständen 0, 4, 8
usw.; 0,1,4, 5,8, 9 ... usw.; 0,1, 2,4,5,6,8,9,10 usw.;
U, 1, 2, 3, 4, 5... usw.; für die größte Seitenlänge; zweitgrößte Seitenlänge; drittgrößte Seitenlänge;
kleinste Seitenlänge, gespeichert werden.
10. Anordnung nach Anspruch 2, gekennzeichnet durch N-1 UND-Glieder (136, 142, 146) an deren
Eingänge die N— 1 Signale der Zählerstände modulo N(0,4, 8,...; 0, 1, 4, 5,...; 0, 1, 2, 4, 5, 6,...;) und über
Inverterglieder (z. B. 138) die entsprechenden auszuwählenden Seitenlängensignale (124, größte
ho Länge; 122,'zweitgrößte Länge; 120, drittgrößte
Länge usw.) anliegen wobei die Ausgänge der UND-Glieder über ein ODER-Glied (148) ein Signal
zum Fortschalten des Zählers (102) liefern.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5048570A | 1970-06-29 | 1970-06-29 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2131066A1 DE2131066A1 (de) | 1972-01-05 |
DE2131066B2 DE2131066B2 (de) | 1977-11-03 |
DE2131066C3 true DE2131066C3 (de) | 1978-06-22 |
Family
ID=21965513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2131066A Expired DE2131066C3 (de) | 1970-06-29 | 1971-06-23 | Anordnung zum Adressieren eines Tabellenspeichers |
Country Status (7)
Country | Link |
---|---|
US (1) | US3675215A (de) |
JP (1) | JPS4937289B1 (de) |
CA (1) | CA945685A (de) |
CH (1) | CH530054A (de) |
DE (1) | DE2131066C3 (de) |
FR (2) | FR2096544B1 (de) |
GB (1) | GB1327856A (de) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3786427A (en) * | 1971-06-29 | 1974-01-15 | Ibm | Dynamic address translation reversed |
US3829840A (en) * | 1972-07-24 | 1974-08-13 | Ibm | Virtual memory system |
US4010451A (en) * | 1972-10-03 | 1977-03-01 | National Research Development Corporation | Data structure processor |
US3820078A (en) * | 1972-10-05 | 1974-06-25 | Honeywell Inf Systems | Multi-level storage system having a buffer store with variable mapping modes |
US3854126A (en) * | 1972-10-10 | 1974-12-10 | Digital Equipment Corp | Circuit for converting virtual addresses into physical addresses |
US3781808A (en) * | 1972-10-17 | 1973-12-25 | Ibm | Virtual memory system |
US3858183A (en) * | 1972-10-30 | 1974-12-31 | Amdahl Corp | Data processing system and method therefor |
US3839704A (en) * | 1972-12-06 | 1974-10-01 | Ibm | Control for channel access to storage hierarchy system |
GB1447297A (en) * | 1972-12-06 | 1976-08-25 | Amdahl Corp | Data processing system |
US4087794A (en) * | 1973-01-02 | 1978-05-02 | International Business Machines Corporation | Multi-level storage hierarchy emulation monitor |
US3825904A (en) * | 1973-06-08 | 1974-07-23 | Ibm | Virtual memory system |
FR130806A (de) * | 1973-11-21 | |||
US3938100A (en) * | 1974-06-07 | 1976-02-10 | Control Data Corporation | Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques |
US4047243A (en) * | 1975-05-27 | 1977-09-06 | Burroughs Corporation | Segment replacement mechanism for varying program window sizes in a data processing system having virtual memory |
US4035778A (en) * | 1975-11-17 | 1977-07-12 | International Business Machines Corporation | Apparatus for assigning space in a working memory as a function of the history of usage |
US4122530A (en) * | 1976-05-25 | 1978-10-24 | Control Data Corporation | Data management method and system for random access electron beam memory |
US4179747A (en) * | 1976-12-14 | 1979-12-18 | Pitney-Bowes, Inc. | Mailing system |
US4357656A (en) * | 1977-12-09 | 1982-11-02 | Digital Equipment Corporation | Method and apparatus for disabling and diagnosing cache memory storage locations |
US4241401A (en) * | 1977-12-19 | 1980-12-23 | Sperry Corporation | Virtual address translator utilizing interrupt level code |
US4373179A (en) * | 1978-06-26 | 1983-02-08 | Fujitsu Limited | Dynamic address translation system |
US4218743A (en) * | 1978-07-17 | 1980-08-19 | International Business Machines Corporation | Address translation apparatus |
US4254463A (en) * | 1978-12-14 | 1981-03-03 | Rockwell International Corporation | Data processing system with address translation |
US4264953A (en) * | 1979-03-30 | 1981-04-28 | Honeywell Inc. | Virtual cache |
US4356549A (en) * | 1980-04-02 | 1982-10-26 | Control Data Corporation | System page table apparatus |
JPS57162165A (en) * | 1981-03-30 | 1982-10-05 | Fanuc Ltd | Re-editing system for storage area |
US4497020A (en) * | 1981-06-30 | 1985-01-29 | Ampex Corporation | Selective mapping system and method |
JPS61235977A (ja) * | 1985-04-12 | 1986-10-21 | Hitachi Ltd | カナ漢字変換装置 |
JPS6392696U (de) * | 1986-11-29 | 1988-06-15 | ||
US5317717A (en) * | 1987-07-01 | 1994-05-31 | Digital Equipment Corp. | Apparatus and method for main memory unit protection using access and fault logic signals |
JP2589713B2 (ja) * | 1987-11-20 | 1997-03-12 | 株式会社日立製作所 | データプロセッサ及びデータ処理システム |
US5276826A (en) * | 1988-01-04 | 1994-01-04 | Hewlett-Packard Company | Apparatus for transforming addresses to provide pseudo-random access to memory modules |
US5257395A (en) * | 1988-05-13 | 1993-10-26 | International Business Machines Corporation | Methods and circuit for implementing and arbitrary graph on a polymorphic mesh |
US5072372A (en) * | 1989-03-03 | 1991-12-10 | Sanders Associates | Indirect literal expansion for computer instruction sets |
US5133058A (en) * | 1989-09-18 | 1992-07-21 | Sun Microsystems, Inc. | Page-tagging translation look-aside buffer for a computer memory system |
CA2045789A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Granularity hint for translation buffer in high performance processor |
US5222222A (en) * | 1990-12-18 | 1993-06-22 | Sun Microsystems, Inc. | Apparatus and method for a space saving translation lookaside buffer for content addressable memory |
US5263140A (en) * | 1991-01-23 | 1993-11-16 | Silicon Graphics, Inc. | Variable page size per entry translation look-aside buffer |
EP0508577A1 (de) * | 1991-03-13 | 1992-10-14 | International Business Machines Corporation | Adressübersetzungseinrichtung |
EP0506236A1 (de) * | 1991-03-13 | 1992-09-30 | International Business Machines Corporation | Adressübersetzungseinrichtung |
US5568415A (en) * | 1993-02-19 | 1996-10-22 | Digital Equipment Corporation | Content addressable memory having a pair of memory cells storing don't care states for address translation |
US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
JP3490742B2 (ja) * | 1993-09-08 | 2004-01-26 | 松下電器産業株式会社 | メモリ管理装置 |
US5526504A (en) * | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
WO1996002035A1 (de) * | 1994-07-09 | 1996-01-25 | Gmd-Forschungszentrum Informationstechnik Gmbh | Verfahren zum umsetzen einer virtuellen adresse in eine reale adresse |
DE19602872A1 (de) * | 1995-01-27 | 1996-08-08 | Gmd Gmbh | Verfahren zum Betreiben einer Adreßumsetzvorrichtung |
US5822759A (en) * | 1996-11-22 | 1998-10-13 | Versant Object Technology | Cache system |
US9495386B2 (en) | 2008-03-05 | 2016-11-15 | Ebay Inc. | Identification of items depicted in images |
US10936650B2 (en) | 2008-03-05 | 2021-03-02 | Ebay Inc. | Method and apparatus for image recognition services |
US9449342B2 (en) | 2011-10-27 | 2016-09-20 | Ebay Inc. | System and method for visualization of items in an environment using augmented reality |
US9240059B2 (en) | 2011-12-29 | 2016-01-19 | Ebay Inc. | Personal augmented reality |
US10846766B2 (en) | 2012-06-29 | 2020-11-24 | Ebay Inc. | Contextual menus based on image recognition |
US20140067564A1 (en) | 2012-08-30 | 2014-03-06 | Ebay Inc. | Shopping list creator and optimizer |
US9773018B2 (en) | 2013-08-13 | 2017-09-26 | Ebay Inc. | Mapping item categories to ambiguous queries by geo-location |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3327294A (en) * | 1964-03-09 | 1967-06-20 | Gen Precision Inc | Flag storage system |
US3331056A (en) * | 1964-07-15 | 1967-07-11 | Honeywell Inc | Variable width addressing arrangement |
US3340512A (en) * | 1964-07-20 | 1967-09-05 | Burroughs Corp | Storage-pattern indicating and decoding system |
US3387274A (en) * | 1965-06-21 | 1968-06-04 | Sperry Rand Corp | Memory apparatus and method |
US3412382A (en) * | 1965-11-26 | 1968-11-19 | Massachusetts Inst Technology | Shared-access data processing system |
FR1509022A (de) * | 1965-11-26 | 1968-03-25 | ||
US3435420A (en) * | 1966-01-03 | 1969-03-25 | Ibm | Contiguous bulk storage addressing |
US3482214A (en) * | 1966-10-03 | 1969-12-02 | Burroughs Corp | Buffering of control word and data word system memory transfers in a communications control module |
US3487370A (en) * | 1966-12-22 | 1969-12-30 | Gen Electric | Communications control apparatus in an information processing system |
GB1196752A (en) * | 1967-05-04 | 1970-07-01 | Int Computers Ltd | Improvements relating to Data Handling Arrangements. |
US3546677A (en) * | 1967-10-02 | 1970-12-08 | Burroughs Corp | Data processing system having tree structured stack implementation |
US3569938A (en) * | 1967-12-20 | 1971-03-09 | Ibm | Storage manager |
-
0
- FR FR10582A patent/FR10582E/fr not_active Expired
-
1970
- 1970-06-29 US US50485A patent/US3675215A/en not_active Expired - Lifetime
-
1971
- 1971-05-06 FR FR7118041A patent/FR2096544B1/fr not_active Expired
- 1971-06-11 CA CA115,395A patent/CA945685A/en not_active Expired
- 1971-06-15 JP JP46042245A patent/JPS4937289B1/ja active Pending
- 1971-06-21 CH CH901071A patent/CH530054A/de not_active IP Right Cessation
- 1971-06-22 GB GB2932171A patent/GB1327856A/en not_active Expired
- 1971-06-23 DE DE2131066A patent/DE2131066C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2131066A1 (de) | 1972-01-05 |
FR10582E (fr) | 1909-07-30 |
CA945685A (en) | 1974-04-16 |
GB1327856A (en) | 1973-08-22 |
CH530054A (de) | 1972-10-31 |
DE2131066B2 (de) | 1977-11-03 |
FR2096544A1 (de) | 1972-02-18 |
US3675215A (en) | 1972-07-04 |
JPS4937289B1 (de) | 1974-10-08 |
FR2096544B1 (de) | 1975-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2131066C3 (de) | Anordnung zum Adressieren eines Tabellenspeichers | |
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE2523414C3 (de) | Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen | |
DE69636761T2 (de) | Speichern und wiederauffinden von geordneten schlüsselmengen in einem kompakten 0-kompletten baum | |
DE3011552C2 (de) | ||
DE2346525A1 (de) | Virtuelle speichereinrichtung | |
DE1956604B2 (de) | Datenverarbeitungsanlage | |
CH627580A5 (de) | Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie. | |
DE2455047A1 (de) | Datenverarbeitungssystem | |
DE2441754A1 (de) | Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors | |
DE2856133A1 (de) | Verarbeitungssystem fuer einen assoziativspeicher | |
DE2260353A1 (de) | Verfahren und vorrichtung zur speichersteuerung und adressenumsetzung | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE4334294C1 (de) | Prozessor für Zeichenketten variabler Länge | |
DE2218839C3 (de) | Einrichtung zur Zuteilung von Speicheradressen zu einer Gruppe von Datenelementen | |
DE2047062A1 (de) | Verfahren und Einrichtung zur Messung der Effektivität einer Daten Verarbeitungsanlage mit virtueller Adre»»ici uiig | |
DE2221442A1 (de) | Assoziativspeicher | |
DE2357654C2 (de) | Assoziativspeicher | |
DE3518818A1 (de) | Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen | |
DE2062164A1 (de) | Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten | |
DE102006059626A1 (de) | Verfahren zum Auslesen von Daten aus einem Speichermedium | |
DE2525287A1 (de) | Assoziativspeicher | |
DE2816838C2 (de) | Verfahren und Prioritätssteuereinheit zum Zuordnen von Prioritäten | |
DE4429905C1 (de) | Verfahren zum Betrieb eines virtuellen Speichers | |
DE4342521C1 (de) | Verfahren und Anordnung zur Expansion komprimierter Daten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |