DE2231146B2 - Datenverarbeitungsanlage mit virtueller Adressierung - Google Patents
Datenverarbeitungsanlage mit virtueller AdressierungInfo
- Publication number
- DE2231146B2 DE2231146B2 DE2231146A DE2231146A DE2231146B2 DE 2231146 B2 DE2231146 B2 DE 2231146B2 DE 2231146 A DE2231146 A DE 2231146A DE 2231146 A DE2231146 A DE 2231146A DE 2231146 B2 DE2231146 B2 DE 2231146B2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- address
- data
- buffer
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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
Description
Die Erfindung betrifft eine Datenverarbeitungsanlage mit virtueller Adressierung mit einer Zentraleinheit,
einem Hauptspeicher hoher Speicherkapazität, einem schnellen Pufferspeicher kleinerer Kapazität, einem
E/A-Kanal und einem Adressenumsetzer, wobei die Zentraleinheit Adreßsignale als virtuelle Adressen
liefert, während in dem mit der Zentraleinheit verbundenen Hauptspeicher Daten blockweise unter
reellen Adressen abspeicherbar sind.
Stand der Technik
In Speicher-Steuersystemen gemäß dem Stand der Technik, wie sie beispielsweise in den US-Patentschriften
32 17 298, 32 18 611 und 32 48 703 beschrieben sind,
erfordert die Steuerung eines mit virtueller Adressierung arbeitenden gepufferten Speichersystems eine
gesonderte Unterroutine unter Steuerung eines Befehlsübertragungsspeichers, der beispielsweise ein Festwertspeicher
sein kann, um Adresseninformation und entsprechende Daten zwischen einem Hauptspeicher
(Hochgeschwindigkeits-Pufferspeicher) und einem sekundären Speicher (eine Speichereinhek mit hoher
Kapazität und relativ geringer Verarbeitungsgeschwindigkeit) zu übertragen. Die in den obengenannten
US-Patentschriften beschriebenen Systeme erfordern neben dem Hauptspeicher und dem Sekundärspeicher
noch einen Arbeitsspeicher und einen Speicher für den Übertragungsbefehl sowie ein Blockregister für den
Hauptspeicher, ein Programmblockregister und ein weiteres Befehlslistenregister. Außerdem ist dort die
Verwendung eines mit virtueller Adressierung arbeitenden gepufferten Speichersystems nur in Verbindung mit
einer Zentraleinheit angegeben.
Die Hauptnachteile der dort beschriebenen Systeme sind die hohen Anforderungen an Speicherraum, die
oben im einzelnen aufgeführt sind. Außerdem ist in diesen Patentschriften nicht gezeigt, wie ein mit
virtueller Adressierung arbeitendes gepuffertes Speichersystem in einer Datenverarbeitungsanlage
dann benutzt werden könnte, wenn mehr als eine der damit zusammenarbeitenden Einheiten gleichzeitig
Zugriff zu dem Speichersystem zu erhalten versucht, wie z. B. in einem Multiprocessing-System, wo mehr als eine
Zentraleinheit mit dem gleichen Speicher zusammenarbeitet oder in einer modular aufgebauten Datenverarbeitungsanlage,
wo die Eingabe-/Ausgabe-Anforderung durch einen Eingabe-/Ausgabe-Kanal bedient wird, der
direkten Zugriff zum Speicher hat. s
In Teilnehmer-Datenverarbeitungi-Systemen mit
gleichzeitigem Ablauf mehrerer Programme werden normalerweise Speicher mit extrem hoher Kapazität
benötigt, eine Kapazität, die wesentlich höher ist at die
des tatsächlichen Hauptspeichers. Die gesamte Kapazitat,
die duicii ein System adressiert werden kann, wird
durch die virtuelle Speicherung innerhalb des Systems bestimmt So kann beispielsweise eine Adressierung mit
24 Bit 224 oder angenähert 16 Mill, adressierbare Bytes
liefern. Zum Adressieren kann der virtuelle Speicher in Segmente und jedes Segment wiederum in Seiten
unterteilt werden, wobei jede Seite aus einer vorbestimmten Anzahl von Bytes besteht Indem man
Programme in Segmente mit Seiten unterteilt, kann der Hauptspeicher seitenweise zugeordnet werden. Somit
können die einzelnen Seiten im Hauptspeicher wahlfrei adressiert werden, in den Hauptspeicher überführt oder
aus diesem wieder ausgespeichert werden, je nachdem, welche Seiten benötigt werden. Eine beliebige Anordnung
der Seiten im Hauptspeicher erfordert natürlich 2> die Einrichtung von Seilentabellen, die die tatsächliche
oder wirkliche Lage der Seite im Speicher anzeigt. Somit gibt eine einzelne Seitentabelle die wirklichen
Speicherplätze aller Seiten eines bestimmten Segments wieder. Andere Seitentabellen geben die wirklichen
Speicherplätze der anderen Segmenten zugeordneten Seietn des virtuellen Speichers wieder. Demgemäß
erfordert die beliebige Verteilung der Seitentabellen die Erstellung einer Segmenttabelle, die die tatsächliche
oder wirkliche Position der Seitentabellen wiedergibt. r> Die Segmenttabellen und Seitentabellen werden für
einen Benutzer im Hauptspeicher gehalten und werden dazu benutzt, die virtuelle Adresse eines Benutzers in
die echte Adresse umzuwandeln, d. h. in eine echte Speicherposition im Hauptspeicher der gewünschten
Seite. Die Adressenumsetzung ist also die Umwandlung der virtuellen Adresse in die tatsächlichen oder echten
Adressen im Hauptspeicher (vgl. Lexikon der Datenverarbeitung, 1969, S. 542 - 545).
Das Format einer aus 24 Bit bestehenden virtuellen v·,
Adresse kann in drei Felder unterteilt werden, nämlich das Segmentfeld (Bits 8-11), das Seitenfeld (Bits
12-19) und das Bytefeld (Bits 20-31). In eirem solchen
Format besteht der virtuelle Speicher aus 16 Segmenten, wobei jedes Segment 256 Seiten und jede Seite bis
zu 4096 Bytes enthält. Auf Wunsch kann das Segmentfeld noch erweitert werden (Bits 0 — 7), um ein
mit 32 Bit arbeitendes Adressiersystem zu schaffen, das dann 4096 Segmente aufweisen würde. Das Se^mentfeld
dient dabei als Index für eine Eintragung in die v,
Segrnenttabelle. Eine Eintragung in die Segmenttabelle enthält dabei einen Wert, der die Basisadresse der dem
durch das Segmentfeld bezeichneten Segment zugeordneten Seitentabelle entspricht. Das Seitenfeld dient als
Index für eine Eintragung in die Seitentabelle. Die t>o Eintragung in der Seitentabelle enthält einen Wert, der
die echte oder tatsächliche Adresse der Seite darstellt. Das Verschiebefeld erfährt während der Adressenumsetzung
eine Änderung und wird mit der umgesetzten Seitenadresse kombiniert, um die tatsächliche oder b5
echte Adresse des Hauptspeicheis zu bilden. Um eine Wiederholung dieser Umsetzung für jede Speicherbeziehung
zu vermeiden, wird ein Assoziativspeicher vorgesehen, der aus einer Anzahl von Registern besteht
Der Assoziativspeiche·· wird mit den echten Seitenadressen
und den zugehörigen virtuellen Seitenadressen (Segment- und Seitenfeld der virtuellen Adresse) der
erst kürzlich angesprochenen Seiten geladen. Demgemäß wird beim Beginn einer Umsetzung die zu
übersetzende virtuelle Seitenadresse mit allen virtuellen Seitenadressen verglichen, die in dem Assoziativspeicher
eingespeichert sind. Wird eine Übereinstimmung festgestellt dann liefert das Register, das die übereinstimmende
virtuelle Adresse enthält, die echte Seitenadresse und die umgesetzte Adresse. Die echte
Seitenadresse ist dann mit dem Byte-Verschiebeabschnitt der virtuellen Adresse zur Bildung der echten
Hauptspeicheradresse kombiniert- Ist die zu übersetzende Adresse im Assoziativspeicher nicht aufzufinden,
wird eine in zwei Ebenen durchzuführende Suche nach einer Segmenttabelle, Seitentabelle durchgeführt, um
die entsprechende echte Seitenadresse aufzufinden. Nach Ansprechen der Tabellen wird die neu aufgefundene
echte Seitenadresse und die ihr zugeordnete virtuelle Seitenadresse in ein Register des Assoziativspeichers
für zukünftige Verwendung geladen. Eine genauere Beschreibung der virtuellen Adressierung und
der dynamischen Adreßumsetzung, vie sie hier verwendet werden soll, findet sich in der US-Patentschrift
35 33 075.
In einem mit virtueller Speicherung arbeitenden System, das eine Zentraleinheit und durch eine
Kanaleinheit gesteuerte Eingabe-/Ausgabe-Einheiten mit einem Hauptspeicher enthält, liefert die Zentraleinheit
bei einer Anforderung an den Hauptspeicher eine virtuelle Adresse, die in einer dynamischen Adressenumsetzereinheit
in eine echte Adresse umgesetzt werden muß, bevor sie dem Steuerteil des Hauptspeichers
zugeführt werden kann, während die Kanaleinheit, wenn sie eine Anforderung an den Hauptspeicher
abgibt, eine echte Adresse liefert, die umittelbar dem Steuerteil des Hauptspeichers zugeführt werden kann.
Mit dem Aufkommen gepufferter Speichersysteme wird meist ein Hochgeschwindigkeits-Pufferspeicher zusätzlich
zum Hauptspeicher vorgesehen. Dieser Hochgeschwindigkeits-Pufferspeicher hat die alleinige Aufgabe,
den Datenabruf zu beschleunigen und hat dabei die Wirkung eines schnelleren Hauptspeichers durch
Speicherung ausgewählter Blocks aus dem Hauptspeicher, bei denen die Wahrscheinlichkeit groß ist, daß sie
demnächst benutzt werden. Wenn ein adressierter Datenblock im Pufferspeicher liegt, kann eine Speicheroder
Abrufinformation rasch durchgeführt werden. Die Gesamtwirkung des Einsatzes von Pufferspeichern und
die Art ihrer Verwendung besteht darin, daß der Hauptspeicher scheinbar eine wesentlich verkürzte
Zykluszeit hat.
Im Betrieb werden daher alle von der Zentraleinheit kommenden Anforderungen daraufhin überprüft, ob der
adressierte Speicherplatz sich im Puffer befindet. Enthält der Pufferspeicher den adressierten Speicherplatz
und ist dies eine Anforderung zum Datenabruf, dann führt der Pufferspeicher einen Arbeitszyklus aus,
und die gewünschten Daten werden an die Zentraleinheit übertragen, während für eine Speicherung die zu
speichernden Daten sowohl dem Pufferspeicher als aucn dem Hauptspeicher zugeführt werden. Enthält der
Pufferspeicher den adressierten Speicherplatz nicht, dann wird die Anforderung sofort an den Hauptspeicher
für einen vollen Arbeitszvklus dieses Speichers weitergeleitet. Bei einem Datenabruf werden die im
Hauptspeicher abgerufenen Daten nach der Zentraleinheit überführt und außerdem für kommende Anforderungen
im Pufferspeicher abgespeichert, während bei einer Speicheranforderung die Daten nur im Hauptspeicher
abgespeichert werden. Beim Betrieb von Datenkanälen ist der Pufferspeicher beim Abruf von Daten aus
dem Hauptspeicher nicht betroffen. Der Hauptspeicher wird adressiert und die Daten werden dem anfordernden
Datenkanal zugeführt. Wenn jedoch aus einem Datenkanal eine Speicheranforderung ergeht, wird der ι ο
Pufferspeicher überprüft, um festzustellen, ob sich der adressierte Speicherplatz im Pufferspeicher befindet,
und wenn dies so ist, werden die aus dem Datenkanal kommenden Daten sowohl im Pufferspeicher als auch
im Hauptspeicher eingespeichert. Befindet sich der adressierte Speicherplatz nicht im Pufferspeicher, dann
werden die aus dem Datenkanal kommenden Daten nur im Hauptspeicher abgespeichert.
Eine Art von Pufferspeichern, die in einem solchen System Verwendung finden kann, besteht aus einem
Adressenspeicher und einem entsprechenden Datenspeicher. Der Datenspeicher kann so aufgebaut sein,
daß er Blocks mit je 32 Bytes oder 4 Doppelwörtern enthält, während der Adressenspeicher so aufgebaut ist,
daß er die Blockadressen in 1 zu 1 Übereinstimmung mit den Datenblocks im Datenspeicher enthält. Demgemäß
werden in einem nicht mit virtueller Speicherung arbeitenden System die Blockadreßabschnitte der von
der Zentraleinheit oder dem Datenkanal kommenden Adressen mit den Blockadressen im Adressenspeicher
des Pufferspeichers verglichen, um zu bestimmen, ob der adressierte Speicherplatz sich im Pufferspeicher
befindet. In einem mit virtueller Speicherung arbeitenden System, bei dem die Zentraleinheit virtuelle
Adressen liefert und die Datenkanäle Echt-Adressen übertragen, ergibt sich das Problem, wie im Pufferspeicher
die verschieden formatierten Adressen behandelt werden sollen.
Der Erfindung liegt die Aufgabe zugrunde, eine Datenverarbeitungsanlage mit virtueller Adressierung
zu schaffen, welche eine oder mehrere Zentraleinheiten, einen Hauptspeicher hoher Speicherkapazität, einen
schnellen Pufferspeicher kleiner Kapazität und einen oder mehrere Eingabe-/Ausgabekanäle enthält und bei
welcher der schnelle Pufferspeicher in der Lage ist, unterschiedlich formatierte Adressen, d. h. reelle Adressen
und virtuelle Adressen zu verarbeiten. Dadurch könnte, wie bereits erwähnt, eine bessere Ausnutzung
der vorhandenen Speicherkapazität erreicht werden.
Die Aufgabe wird dadurch gelöst,
daß der mit der Zentraleinheit und dem Hauptspeicher verbundene schnelle Pufferspeicher aus einem virtuellen
Adreßpuffer und einem Datenpuffer besteht,
daß ferner ein Assoziativspeicher für die Speicherung von virtuellen Adressen und die entsprechenden reellen Adressen für den Hauptspeicher an die Zentraleinheit und an den Hauptspeicher anschaltbar ist,
daß mit dem Assoziativspeicher ein erster Vergleicher verbunden ist, der die von der Zentraleinheit kommenden virtuellen Adressen mit denen im Assoziativspeieher gespeicherten virtuellen Adressen vergleicht und bei erfolgreichem Vergleich ein erstes Steuersignal erzeugt, worauf, gesteuert durch dieses erste Steuersignal, die mit den vorgegebenen virtuellen Adressen verbundenen echten Adressen an den Hauptspeicher weitergegeben werfen und
daß ferner ein Assoziativspeicher für die Speicherung von virtuellen Adressen und die entsprechenden reellen Adressen für den Hauptspeicher an die Zentraleinheit und an den Hauptspeicher anschaltbar ist,
daß mit dem Assoziativspeicher ein erster Vergleicher verbunden ist, der die von der Zentraleinheit kommenden virtuellen Adressen mit denen im Assoziativspeieher gespeicherten virtuellen Adressen vergleicht und bei erfolgreichem Vergleich ein erstes Steuersignal erzeugt, worauf, gesteuert durch dieses erste Steuersignal, die mit den vorgegebenen virtuellen Adressen verbundenen echten Adressen an den Hauptspeicher weitergegeben werfen und
daß weitere mit der Zentraleinheit und dem Pufferspeicher
verbundene Schaltmittel vorgesehen sind, die auf die virtuellen Adressensignale aus der Zentraleinheit
ansprechen und an den Pufferspeicher für einen Zugriff zu einer Speicherposition im Pufferspeicher ein zweites
Signal liefern, das den aus der Zentraleinheit kommenden virtuellen Adressensignalen entspricht, wobei die
Übertragung der echten Adressen an den Hauptspeicher dann gesperrt wird, wenn bei einer Abrufoperation
durch die Zentraleinheit ein Zugriff zum Pufferspeicher erfolgt.
Vorzugsweise ist die Anordnung dabei so getroffen, daß ein echtes Adressensignal liefernde Eingabe-/Ausgabeeinheiten
über den E/A-Kanal bei Datenabruf im Hauptspeicher unmittelbar nach diesen durchschaltbar
sind.
Insbesondere ist es dabei von Vorteil, daß der ein echtes Adressensignal liefernde Eingabe-/Ausgabekanal
für einen Datenspeichervorgang mit einer zweiten Vergleicherschaltung zum Vergleich dieser echten
Adressen mit im Assoziativspeicher gespeicherten echten Adressen verbunden ist, daß bei positivem
Vergleich die im Assoziativspeicher gespeicherten entsprechenden virtuellen Adressen mit den in den
Adressenschaltungen des Adreßpuffers des Pufferspeichers gespeicherten virtuellen Adressen vergleichbar
sind und daß bei positivem Vergleich die von den Eingabe-/Ausgabeeinheiten kommenden Daten zusätzlich
zum Hauptspeicher auch noch an den den aufgefundenen virtuellen Adressen entsprechenden
Speicherplätzen im Datenspeicher abspeicherbar sind, wobei weiterhin der Assoziativspeicher eine Adressenübersetzungsschaltung
enthält, die der Umsetzung der von der Zentraleinheit kommenden virtuellen Adressen
in echte Adressen dient.
Von besonderem Vorteil ist es hierbei, daß die Austauschanordnung vorgesehen ist, in der Listen mit
der Benutzungsreihenfolge der aus dem Datenpuffer abgerufenen Datensätze eingespeichert sind, wobei
jedesmal dann, wenn ein Datenblock im Pufferspeicher erfolgreich angesprochen ist, die Identität dieses Blocks
in der entsprechenden Austauschliste an erster Stelle eingespeichert wird und daß bei erfolgloser Adressierung
des Pufferspeichers bei Überführung von Daten in den Pufferspeicher die Identität dieses Datenblocks in
der Austauschliste an letzter Stelle eingespeichert wird, um die übrigen schon früher benutzten Datenspeicher
im Pufferspeicher zu halten.
Die Erfindung wird nunmehr anhand eines Ausführungsbeispiels in Verbindung mit den Zeichnungen
näher beschrieben. Dabei zeigt
F i g. 1 in einem Blockdiagramm eine die Erfindung enthaltene Datenverarbeitungsanlage,
F i g. 2 in einem Blockdiagramm in größeren Einzelheiten die Steuerung der Adressen- und Dateninformation
in einem die Erfindung enthaltendem gepufferten Speichersystem,
Fig.3 in Form eines Blockdiagranunes im einzelnen
den erfindungsgemäßen Pufferspeicher und die zugehörigen Steuerschaltungen,
F i g. 4 in einem Ablaufdiagramm die beim Betrieb des die Erfindung enthaltenden Speichersystems ausgeführten
Funktionsschritte,
Fig.5 in einem Diagramm das Format einer
virtuellen Adresse und einer entsprechenden echten Adresse,
Fig.6 in einem Diagramm die Tätigkeit einer
Austauschanordnung und
F i g. 7 in einem Diagramm den Austauschalgorithmus für die Austauscheinheit
Da die Erfindung hauptsächlich in der neuen strukturellen Kombination an sich bekannter Schaltungen
der Rechenmaschinentechnik und nicht in deren speziellen Aufbau besteht, sind Steuerung und Anordnung
dieser bekannten Schaltungen und Einheiten in den Zeichnungen durch Blockdarstellungen und Prinzipschaltbild
wiedergegeben, die nur dann spezielle Einzelheiten zeigen, wenn sie sich auf die neue
Anordnung und ihre Arbeitsweise beziehen, um die Beschreibung nicht mit strukturellen Einzelheiten zu
belasten, die dem Fachmann bekannt sind. Verschiedene Teile dieses Systems wurden ebenfalls entsprechend
zusammengefaßt und vereinfacht, um nur die Teile besonders herauszuheben, die sich auf die Erfindung
beziehen.
Gemäß F i g. 1 ist in einer mit Pufferspeichern
arbeitenden Datenverarbeitungsanlage die Zentraleinheit CPU 100 mit dem als dynamische Adreßübersetzungseinheit
arbeitenden Assoziativspeicher 300 über die Leitungen 103, mit dem schnellen Pufferspeicher 200
über die Leitungen 102 und mit dem Hauptspeicher 400 über die Leitungen 201 und 402 verbunden. Der
Eingabe-/Ausgabekanal 500 ist mit dem Pufferspeicher 200 und dem Hauptspeicher 400 über die Leitungen 502
und 204 verbunden. Der Pufferspeicher 200 ist mit dem der dynamischen Adreßübersetzung dienenden Assoziativspeicher
300 über die Leitungen 203 verbunden. Der Hauptspeicher 400 ist mit dem Assoziativspeicher
300 über die Leitungen 403 verbunden.
Der Hauptspeicher 400 kann natürlich aus vielen Speichereinheiten bestehen, die aus unterschiedlichen
Bauelementen wie Magnetkernen, Halbleiterschaltungen usw. aufgebaut sein können. Auch an den
Eingabe-/Ausgabekanal 500 können mehrere Arten von Eingabe-/Ausgabeeinheiten angeschlossen sein, die aüe
über einen oder mehrere gemeinsame Kanäle angeschlossen sein können.
Die Zentraleinheit 100 kann entweder eine Vielzahl von Verarbeitungseinheiten, jede mit ihrem eigenen
Programm, oder eine mit mehreren Programmen arbeitende Verarbeitungseinheit darstellen. Die Programme
arbeiten alle gemeinsam auf den Hauptspeicher 400 durch Anwendung der virtuellen Adressierung,
in welcher die CPU 100 eine virtuelle Adresse und der Eingabe/Ausgabekanal 500 eine echte Adresse der in
F i g. 5 gezeigten Art liefern.
In den F i g. 2a und 2b ist die logische gegenseitige Verbindung der die vorliegende Erfindung bildenden
Stufen im einzelnen gezeigt.
Um die die Erfindung enthaltende Anlage zu beschreiben, müssen im Zusammenhang mit der CPU
100 die CPU-Abrufleitung 101, die CPU-Speicherleitung 103, die CPU-Adreßsammelleitung 105 und die Dateneingangs-Sammelleitung
119 sowie die Datenausgangs-Sammelleitung
131 betrachtet werden.
Um die Operationen im Eingabe-/Ausgabekanal 500
zu beschreiben, müssen die Kanalabrufleitung 501, die Kanalspeicherleitung 507, die Kanaladreßsammelieitung 509 und die E/A-Dateneingangs-Sammelleitung
519 sowie die E/A-Datenausgangs-Sammelleitung 511 bo
betrachtet werden.
Im Zusammenhang mit dem Hauptspeicher 400 sind die Dateneingangs-Sammelleitung 129, die Datenausgangs-Sammelleitung 401, die E/A-Dateneingangs-Sammelleitung 513 und die E/A-Datenausgangs-Sam-
melleitung 405 relevant Außerdem ist für eine Beschreibung der vorliegenden Erfindung die Speicheradreß-SammelIeitung421 von Bedeutung.
CPU-Abruf
Bei einer CPU-Abrufoperation wird die CPU-Abrufleitung 101 erregt und entsperrt das Tor 102 zum
Weiterleiten der auf der Adreßsammelleitung 105 liegenden virtuellen Adreßinformation, Bits 8 bis 31, auf
die Ausgangsleitungen 109. Die Ausgangsleitungen 109 übertragen die virtuelle Adreßinformation der CPU
über die ODER-Glieder 106 an die Ausgangsleitungen 111. Die virtuelle Adresse (Bits 8 bis 31) wird über die
Leitungen 112 an die Eingänge der UND-Glieder 156 gegeben, die im entsperrten Zustand die virtuelle
Adresse der CPU an den als Adreßübersetzungseinheit arbeitenden Assoziativspeicher 300 übertragen, wo eine
Adreßübersetzung durchgeführt wird, um die virtuelle Seitenadresse der CPU in die echte Seitenadresse zu
übersetzen. Die Bits 8 bis 28 der virtuellen CPU-Adresse werden über die Leitungen 113 und 114 an den
Pufferspeicher 200 weitergeleitet, wo die Bits 8 bis 19, die virtuelle Seitenadresse, mit den dort befindlichen
virtuellen Seitenadressen verglichen werden, um festzustellen, ob die adressierte Stelle im Pufferspeicher 200
enthalten ist. Wenn das der Fall ist, wird mit den Bits 21
bis 28 eine Stelle im Pufferspeicher 200 adressiert. Die Bits 20 bis 31 der virtuellen CPU-Adresse stellen das
Bytefeld dar und werden über die Leitung 113 und 115
an die Eingänge der UND-Glieder 148 angelegt und dienen zur Adressierung des Hauptspeichers, wenn die
adressierte Stelle nicht im Pufferspeicher 200 gefunden wird. Die virtuelle Seitenadresse wird ebenfalls über die
Leitungen 116 an den Vergleicher 150 geleitet. Eine zweite Gruppe von Eingängen des Vergleichers 150 ist
mit den Ausgangsleitungen 301 der virtuellen Seitenadressen im Assoziativspeicher 320 verbunden. Die
dern 174 verbunden. Der Ausgang 151 des Vergleichers
150 ist an einen Entsperreingang der UND-Glieder 152, 158, 160, 126 und 128 sowie an den Inverter 154
angeschlossen.
Wenn in dem Vergleicher 150 ein positiver Vergleich erzielt wird, sperrt der Inverter 154 die UND-Glieder
156 über die Leitung 155. Dadurch kann die CPU-Adreßinformation nicht über die Leitungen 157 an
den als Adreßübersetzer arbeitenden Assoziativspeicher 310 übertragen werden. Wenn ein positiver
Vergleich in dem Vergleicher erzielt wird, werden außerdem die UND-Glieder 152 über die Leitung 15!
entsperrt, zur Übertragung der auf den Leitungen 303
liegenden echten Seitenadreßinformation über die Leitungen 153 an die UND-Glieder 146.
Somit verursacht ein erfolgreicher Vergleich zwischen der virtuellen Seitenadreßinformation der CPU
und der virtuellen Seitenadresse vom Assoziativspeicher 320 das Durchschalten der entsprechenden echten
Seitenadreßinformation an die UND-Glieder 146, die
zusammen mit der Byte-Adreßinformation an den Eingängen der UND-Glieder 148 die echte Hauptspeicheradresse liefert Dementsprechend übertragen
die UND-Glieder 146 und 148 im entsperrten Zustand die echte Hauptspeicheradresse über die Leitungen 147
und 149 und über die ODER-Glieder 420 auf die Speicheradreßsammelleitung 421. Während einer CPU-Abnifoperstion sind die UND-Glieder 146 und 148
durch ein vom UND-Glied 158 über das ODER-Glied 162 an die Leitung 159 angelegtes Signal entsperrt
Das UND-Glied 158 wird beim gleichzeitigen Auftreten eines positiven Vergleiches von dem Vergleicher 150 und eines negativen Vergleiches auf der
Leitung 213 wirksam, welcher anzeigt, daß die adressierte Stelle gegenwärtig nicht im Pufferspeicher
200 steht.
Wenn im Pufferspeicher 200 ein positiver Vergleich erzielt wird, wird die Vergleicherleitung 211 erregt, die
zu einem Eingang der UND-Glieder 122 führt, deren andere Eingänge durch die CPU-Abrufleitung 101 und
die Pufferdatensammelleitung 211 gebildet werden.
Bei einer CPU-Abrufoperation, in welcher die Vergleicherleitung 211 erregt und Daten auf der
Pufferdatensammelleitung 221 verfügbar sind, übertragen die UND-Glieder 122 daher die Daten über die
Leitungen 123 und über die ODER-Glieder 130 an die CPU-Datensammelleitung 131.
Wenn im Pufferspeicher 200 kein positiver Vergleich zustande kommt, wird die Leitung 213 erregt, die das
UND-Glied 158 einschaltet, so daß der Hauptspeicher 400 adressiert und ein Ausgangssignal auf die Leitung
125 gegeben werden kann, die einen Entsperreingang für die UND-Glieder 126 bildet. Wenn während einer
CPU-Abrufoperation ein virtueller Seitenadreßvergleich in dem Vergleicher 150 erzielt wird, liefern die
Leitungen 101 und 151 die anderen Entsperrimpulse an die UND-Glieder 126 und leiten die auf der vom
Hauptspeicher kommenden Datenausgangs-Sammelleitung 401 liegenden Daten über die Ausgangsleitungen
127 nach den ODER-Gliedern 130 und 140 durch, welche einmal die Daten über die Leitungen 131 an die
CPU und über die Leitungen 141 zur Speicherung an den Datenpuffer 220 abgeben.
CPU-Speicherung
10
15
20
JO
Für die CPU-Speicheroperation ist die Leitung 103 erreet und liefert ein Entsperrsienal an die UND-Glieder
104, 160, 120 und 128." Die virtuelle CPU-Adreßin, J5
formation auf der Adreßsammelleitung 105 wird über die UND-Glieder 104 auf die Leitungen 107 und über
die ODER-Glieder 106 auf die Ausgangsleitung Ul übertragen. Die virtuelle CPU-Adreßinformation wird
über die UND-Glieder 156, Vergleicher 150, die UND-Glieder 148 und den Pufferspeicher 200 genauso
benutzt, wie es oben für die CPU-Abrufinformation beschrieben wurde.
Wenn ein virtueller Seitenadreßvergleich in dem Assoziativspeicher erzielt wird, gibt dementsprechend
die Leitung 151 ein Entsperrsignal an die UND-Glieder 128 ab. Wenn im Pufferspeicher 200 kein Adreßvergleich
erzielt wird, gelangt ein zweites Entsperrsignal von der Leitung 213 über die Leitung 125 an die
UND-Glieder 128. Die CPU-Datensammelleitung 119 wird dann nach der Ausgangsleitung 129 durchgeschaltet,
wodurch die Daten von der CPU an den Hauptspeicher 400 weitergegeben werden. Das UND-Glied
148 wird wieder wirksam gemacht, wenn ein Vergleich von dem Vergleicher 150 und kein Vergleich
auf der Leitung 213 zusammenfallen, um das Entsperren
der UND-Glieder 146 über das ODER-Glied 162 und
die Leitung 159 zu gestatten und um die echte Hauptspeicheradresse an die Hauptspeichereinheit 400
weiterzuleiten. Wenn ein Pufferadreßvergleich erzielt μ
wird und die Leitung 211 erregt ist, werden die
UND-Glieder 120 entsperrt, so daß die CPU auf den Leitungen 119 liegende Daten über die Leitungen 121 an
die ODER-Glieder 140 abertragen kann, die die Daten
über die Leitungen 141 an den Datenpuffer 220 und über die Dateneingangs-Sammelleitung 129 an den Hauptspeicher
400 abgeben. Das UND-Glied 162 spricht auf von der Vergleicherleitung 151, der CPU-Speicherleitung
103 und der Puffervergleichsleitung 211 kommende aktive Signale an und leitet ein Signal über das
ODER-Glied 162 und die Leitung 159 zum Entsperren der UND-Glieder 146 und 148 weiter, damit diese die
echte Hauptspeicheradresse an den Hauptspeicher 400 abgeben können.
Sowohl bei der Abruf- als auch bei Speicheroperation der CPU ist eine Adreßübersetzungsfolge erforderlich,
um eine echte Seitenadresse zu erhalten, die mit der entsprechenden virtuellen Seitenadresse im Assoziativspeicher
320 gespeichert wird, wenn kein virtueller Seitenadreßvergleich in dem Vergleicher 150 erzielt
wurde. Die Ausgangsleitung 151 des Vergleichers 150 gibt im abgeschalteten Zustand ein Signal über den
Inverter 154 auf die Leitungen 155. Dieses Signal schaltet die UND-Glieder 156 ein, die die virtuelle
Seitenadreßinformation der CPU über die Leitungen 157 an den Adreßübersetzer 310 übertragen. Der
Adreßübersetzer 310 leitet dann eine Übersetzungsfolge zum Hauptspeicher ein, die über die Leitungen 311
und über das ODER-Glied 420 an die Speicheradreß-Sammelleitung 421 laufen. Wenn die übersetzte
Adresse, d. h. die echte Seitenadresse, auf der Datenausgangssammelleitung 401 zur Verfügung steht, wird sie
über die Leitungen 313 an den Adreßübersetzer 310 abgegeben. Der Adreßübersetzer 310 gibt dann die
echte Seitenadresse und ihre entsprechende virtuelle Seitenadresse über die Leitungen 315 an den Assoziativspeicher
320 ab. Die Arbeitsweise des Adreßübersetzers ist in der US-Patentschrift 35 33 075 genauer beschrieben.
Anschließend wird eine Kanaldatenanforderung betrachtet, und zwar zuerst die Adreß- und Datensteuerungen,
die sich auf den Kanalabruf und die Kanalsteueroperationen beziehen.
Kanalabruf
Wenn ein Kanalabruf eingeleitet wird, wird die Leitung 501 erregt, und die UND-Glieder 502 und 510
werden entsperrt. Das UND-Glied 502 überträgt die auf den Leitungen 509 liegende echte Kanaladreßinformation
über die Leitungen 503 an die ODER-Glieder 420 und somit an den Hauptspeicher 400. Wenn die
angeforderte Information auf den E/A-Datenausgangs-Sammelleitungen 405 zur Verfügung steht, übertragen
die UND-Glieder 510 die Daten über die Leitungen 511
an den E/A-Kanal 500 und die Kanalabrufoperation ist abgeschlossen. Bei der Kanalabrufoperation ist weder
der Pufferspeicher 200 noch die Adreßübersetzung in irgendeiner Weise betroffen, sondern es erfolgt nur eine
unmittelbare Verbindung mit dem Hauptspeicher 400.
Kanalspeicherung
Bei einer Kanalspeicheroperation wird die Kanalspeicherleitung 507 betätigt und entsperrt die UND-Giieder
504, 512 und 514. Die UND-Glieder 504 übertragen die echte Kanaladreßinformation über die
Leitungen 505 an die Eingänge der ODER-Glieder 420, die mit der Speicheradreß-Sammelleitung 421 verbunden
sind. Die Bits 8 bis 19 der echten Kanaladresse werden auf eine erste Gruppe von Eingängen des
Vergleichers 170 geleitet Die Bits 21 bis 28 der echten Kanaladresse werden ebenfalls über Leitungen 506 an
den Pufferspeicher 200 geleitet und zur Adressierung einer Stelle in diesem Pufferspeicher 200 benutzt Der
Vergleicher 170 vergleicht eine echte Kanalseitenadresse mit den echten Seitenadressen, die im Assoziativspeicher
320 gespeichert sind und über die Leitungen 303
auf eine zweite Gruppe von Eingängen des Vergleichers 170 geleitet werden. Wenn durch den Vergleicher 170
eine Übereinstimmung festgestellt wird, wird die Vergleicherleitung 171 betätigt und entsperrt die
UND-Glieder 174 zur Übertragung einer entsprechen- r>
den virtuellen Seitenadresse über die Leitungen 175 an den Adreßpuffer 210 des Pufferspeichers 200.
Die entsprechende virtuelle Seitenadresse, die im Assoziativspeicher 320 gefunden wurde, wird mit der in
dem Adreßpuffer 210 liegenden virtuellen Seitenadresse ι η verglichen. Wenn ein Pufferadressenvergleich erzielt
wurde und die Leitung 211 erregt ist, werden die UND-Glieder 514 entsperrt, so daß die auf den
Leitungen 519 liegende E/A-Dateneingangs-Sammelleitungsinformation
über die Leitungen 515 und die r> ODER-Glieder 140 übertragen werden kann, die
Eingangssignale über die Leitungen 141 an den Datenpuffer 220 liefern. Die auf den E/A-Datensammeleingangsleitungen
519 liegenden Signale werden ebenfalls über die UND-Glieder 512 auf die Leitungen 513 2»
geleitet, die die Kanaldaten an den Hauptspeicher 400 abgeben. Die UND-Glieder 512 werden bei einer
Kanalspeicheroperation unabhängig davon entsperrt, ob auf der Leitung 211 ein einen positiven Pufferadreßvergleich
anzeigendes Signal vorhanden ist oder nicht. 2r> Das zeigt an, daß Kanaldaten unter allen Umständen bei
einer Kanalspeicheroperation im Hauptspeicher gespeichert werden, im Pufferspeicher 220 dagegen nur dann,
wenn ein positiver Pufferadreßvergleich auf der Leitung 211 erzielt wurde.
In Verbindung mit den F i g. 3a und 3b werden jetzt der Pufferspeicher 200 und die zugehörige Steuerlogik
genauer beschrieben.
Der Adreßpuffer 210 enthält einen Adressenspeicher 2100, den Adreßdecodierer 2110, die Adreß-UND- r.
Glieder 2 112,2 114,2 116,2 118 sowie die Pufferadreß-Vergleicher
2 122, 2 124, 2 126 und 2 128. Der Adressenspeicher 2 100 ist in Form einer Matrix von 64
Spalten mit den Bezeichnungen 0 bis 63 und vier Blocks mit den Bezeichnungen 0,1,2 und 3 angeordnet.
In einer Ausführungsform werden Teile der CPU-Adreßsammelleitung
114 oder der Kanaladreß-Sammelleitung 506 dazu benutzt, das Speichersteuersystem
zu adressieren. Somit werden während einer CPU-Anforderung die Bits 21 bis 26 von der CPU-Adreß-Sam- ·τ>
melleitung 114 oder während einer Kanalspeicheranforderung
die Bits 21 bis 26 der Kanaladreß-Sammelleitung 506 nach den ODER-Gliedern 2 320 durchgeschaltet,
deren Ausgänge über die Leitungen 2 321 an die Eingänge des Spaltendecodierers 2 110 des Adreßpuf- w
fers 210, mit den Bits 2 bis 7 des Pufferadreßregisters 2 150, mit den Bits 2 bis 7 des Duplikatpufferadreßregisters
2 180 und mit dem Spaltendecodierer 2 166 der Austauschanordnung 2 164 verbunden sind. Die sechs
auf den Leitungen 2 321 liegenden Adreßbits werden zu einer von 64 Spalten decodiert und adressieren über die
Leitungen 2 111 eine Gruppe von vier Blocks in dem Adressenspeicher 2 100 und eine entsprechende Eintragung
in der Austauschanordnung 2 164; z. B. kann eine Spalte des Adressenspeichers 2 100 adressiert werden, w>
wodurch die Blocks 2 101, 2 102, 2 103 und 2 104 durch
die Adreßinformation erreicht werden.
Die auf der CPU-Adreßsammeileitung 114 liegenden,
die virtuelle Adreßinformation darstellenden Bits 8 bis 19 werden an die ODER-Glieder 180 und an die b5
UND-Glieder 2 112, 2 114, 2 116 und 2 118 übertragen,
die bei Entsperren eines UND-Gliedes aufgrund eines nicht zustande gekommenen Vergleiches die gegebene
virtuelle Adresse zur Speicherung in einem angegebenen Block der adressierten Spalte des Adressenspeichers
2 100 übertragen. Die Ausgänge der ODER-Glieder 180 sind mit ersten Eingängen der Vergleicher 2 122,
2 124, 2 126 und 2 128 verbunden. Zweite Eingänge dieser Vergleicher sind mit den vier Blocks der jeweils
adressierten Spalte des Adreßspeichers 2 100 verbunden. Diese Adreßinformation ist über die Leitung 2 131,
2 133, 2 135 bzw. 2 137 mit den Vergleichern 2 122, 2 124,2 126 und 2 128 verbunden. Wenn die vorgegebene
virtuelle Adresse eine Übereinstimmung mit der Adreßinformation in einem der vier Adreßblocks ergibt,
wird auf einer der vier Leitungen 2 141 ein Vergleichersignal erscheinen. Die Vergleicherleitungen 2 141 sind
mit dem Codierer 2 152 verbunden, so daß bei einer Übereinstimmung zwischen der vorgegebenen virtuellen
Adresse und einer in der adressierten Spalte des Adressenspeichers 2100 gespeicherten virtuellen
Adresse die erregte der vier Vergieicherleitungen zu einem 2-Bit-Code codiert wird, der über die Leitungen
2 153 auf die Bits 0 und 1 des Pufferadreßregisters 2 150 und auf einen Fortschreibungscodierer 2 162 geleitet
wird. Die Vergleicherleitungen 2 141 sind ebenfalls über das ODER-Glied 2142 mit der Pufferadreß-Vergleicherleitung
211 verbunden. Die Pufferadreß-Vergleicherleitung 211 ist an die UND-Glieder 2 190,2 192,
2 194, den Fortschreibungsdecodierer 2 162 und den Inverter 2 144 angeschlossen, der dann ein Ausgangssignal
auf die Nicht-Vergleichleitung 213 gibt, wenn die
Puffervergleichsleitung 211 abgeschaltet ist. Die Leitung 213 ist als ein Eingang an die UND-Glieder 2 146,
2 184, 2 186, 2 188 und den Fortschreibungscodierer 2 162 angeschlossen. Die Vergleichsleitung 211 und die
Nicht-Vergleichleitung 213 sind die primären Entsperrleitungen für den Pufferspeicher 200 zur Steuerung der
Datenübertragung zwischen der CPU 100, dem Pufferspeicher 200 und dem Hauptspeicher 400.
Virtuelle Adreßinformation, Bits 27 und 28 auf der CPU-Adreß-Sammelleitung 114 oder die Bits 27 und 28
auf der Kanaladreß-Sammelleitung 506 werden über die Leitungen 2 15 bzw. 2 302 an das ODER-Glied 2 310
übertragen, dessen auf den Leitungen 2 311 liegende Ausgangssignale nach den Bits 8 und 9 des Pufferadreßregisters
2 150 und des Duplikatpuffer-Adreßregisters 2 180 durchgeschaltet sind. Die Adreßbits 8 und 9 des
Puffer-Adreßregisters (BAR) 2 150 oder des DBAR 2180 kennzeichnen eines von vier Doppelwörtern
innerhalb eines von vier Blocks, die durch die Adreßbits 0 und 1 des BAR 2 150 oder des DBAR 2 180 bezeichnet
sind, während die Adreßbits 2 bis 7 des BAR 2 150 oder des DBAR 2 180 eine der 64 Spalten des Datenspeichers
2 200 bezeichnen, der das angegebene Doppelwort in dem angegebenen Block enthält.
Die Blockinformationsbits 0 und 1 des BAR 2 150 werden über die Leitungen 2 155 an die UND-Glieder
2190, die Spalteninformationsbits 2 bis 7 über die Leitungen 2157 an die UND-Glieder 2192 und die
Doppelwortinformationsbits 8 und 9 über die Leitungen 2159 an die UND-Glieder 2 194 übertragen.
Wenn zwischen einer gegebenen virtuellen Adresse und einer virtuellen Adresse in dem Adressenspeicher
2100 bei Vergleich Übereinstimmung festgestellt wird,
entsperrt ein Signal auf der Vergleichsleitung 211 die UND-Glieder 2190, 2192 und 2194 und läßt die
Adreßbits über die ODER-Glieder 2 198, 2 196 bzw. 2178 nach dem Blockdecodierer 2 220, dem Spaltendecodierer
2210 und dem Doppelwortdecodierer 2 230 des Datenpuffers 220 durch. Der Spaltendecodierer
2 210 überträgt die Spaltenadresse über die Leitungen
2 211 zur Auswahl einer von 64 Spalten. Der Blockdecodierer 2 220 überträgt die Blockadresse über
die Leitungen 2 211 zur Auswahl eines von vier Blocks,
z. B. des Blocks 2 2OZ Der Doppelwortdecodiarer 2 230
überträgt die Doppelwortadresse über die Leitungen 2 231 zur Auswahl eines von vier Doppelwörtern, z. B.
der Doppelwortstelle 2 204, 2 206, 2 208 oder 2 212.
Wenn also mit der gegebenen virtuellen Adresse ein positiver Vergleich erzielt wurde, wird daher der Inhalt
des BAR 2 150 zur Adressierung einer bestimmten Doppelwortstelle innerhalb eines ausgewählten Blocks
einer ausgewählten Spalte in dem Datenspeicher 2 200 benutzt Wenn in einer CPU-Abrufoperation ein
erfolgreicher DatenpufferzJgriff stattfindet, steht das in
der gewählten Doppel wc rtstelle, z.B. 2 204 eines ausgewählten Blocks einer ausgewählten Spalte der
Datengruppe 2 200 vorhandene Doppelwort auf den Leitungen 221 zur Übertragung an die CPU 100 zur
Verfügung. Wenn in einer CPU- oder Kanal-Speicheroperation der Datenpuffer 220 erfolgreich adressiert
wird, werden die von der CPU oder dem E/A-Kanal auf den Leitungen 141 liegenden Daten dem Datenpuffer
220 für ein ausgewähltes Doppelwort, einen Block und eine Spalte des Datenspeichers 2 200 als Eingangssignale
zugeführt. Das Doppelwort wird somit in dem Datenspeicher 2 200 so gespeichert, daB nachfolgend
der schnelle Zugriff zu den Daten stattfinden kann.
Mit der Austauschanordnung 2 164 wird während der CPU-Abrufoperationen die Aktivität der Datenblocks
innerhalb einer jeden der Pufferspalten überwacht. Die Austauschanordnung 2 164 besteht aus 64 Aktivitätslisten,
mit je einer Liste für jede Spalte im Puffer. Jede der Listen >n Fig.6 kann als aus vier Eintragungen
bestehend betrachtet werden, eine für jeden Pufferblock in der Spalte. Die Eintragung eines Blocks wird an die
Spitze der Liste für die zugehörige Spalte gesetzt, wenn der Pufferblock angesteuert wird. Diese Lösung stellt
sicher, daß die am längsten innerhalb einer Spalte nicht benutzten Blocks unten in der Liste stehen. Wenn ein
Block innerhalb einer Pufferspalte zugeordnet und geladen werden soll, weil die angeforderten Daten nicht
im Puffer stehen, wird der Pufferblock unten in einer Spalte der Aktivitätsliste angeordnet. Somit werden die
aktiveren Daten im Pufferspeicher 200 gehalten. In dem .r>
in F i g. 6 gezeigten Beispiel zeigt die Spalte A einen Zustand an, bei dem Block 0 den zuletzt benutzten Block
und Block 3 den am längsten ungenutzten Block in einer Spalte darstellen. Wenn eine Anforderung an den
Pufferspeicher gestellt und kein positiver Verglich erzielt wird, dann wird Block 3 als der auszutauschende
Block gekennzeichnet und an die Spitze der Aktivitätsliste gesetzt, während die anderen Blockzahlen nach der
Darstellung in Spalte B nach unten geschoben werden. In den nachfolgenden Spalten C und D führen nicht
erzielte positive Vergleiche bei Abgabe von Anforderungen dazu, daB die Blocks 2, 1 und 0 der Reihe nach
ersetzt und jeder an die Spitze der Liste gesetzt und die anderen Blockzahlen heruntergeschoben werden. In der
Spalte E führt eine Anforderung an den Datenpuffer 2 bo
bei Vergleich zu einer Übereinstimmung mit Block 2. Infolgedessen wird Block 2 an die Spitze der Liste und
die Blocks 0 und 1 mit dem Block 3 nach unten
geschoben, der immer noch als der älteste angeforderte Block gekennzeichnet ist. Auf ähnliche Weise zeigen die μ
Spalten F, G, H und I die Bewegung der Aktivitätsliste, wenn nachfolgend, bei Vergleich Übereinstummungen
festgestellt werden im Block 2 und 3 und keine Übereinstimmung, die den Austausch von Block 1
erfordert
Jede Eintragung in der Austauschanordnung enthält codierte Daten, die den im Bedarfsfall als nächsten
auszutauschenden Block im Pufferspeicher 200 kennzeichnen. Um ein laufendes Bild des auszutauschenden
Blocks aufrechtzuerhalten, überwacht ein Austauschalgorithmus
die Blockbenutzung der Daten im Pufferspeicher 200. Dementsprechend wird die Austauschgruppeninformation
für jede CPU-Abrufoperation fortgeschrieben.
Jede Eintragung in der Austauschanordnung enthält einen 6-Bit-Code, der die Austauschblockzahl nach
folgender Tabelle angibt:
Austauschen | Austauschgruppeninhalt | 02 | 03 | 12 | 13 | 23 |
Block | X | 1 | X | 1 | 1 | |
No. | 01 | 1 | X | 1 | X | 0 |
3(11) | X | X | X | 0 | 0 | X |
2(10) | X | 0 | 0 | X | X | X |
KOl) | 1 | |||||
9(00) | 0 | |||||
In Fig.7 ist ein graphisches Beispiel für den Austauschalgorithmus gezeigt Jede Ecke des Rechtecks
stellt einen der vier auszutauschenden Blocks dar und
die sechs Verbindungslinien den den auszutauschenden Block bezeichnenden 6-Bit-Code. Wenn ein Bit des
Codes eingeschaltet ist, zeigt die Linie zwischen den Ecken zur nächsten höheren Zahl, wogegen sie auf die
nächst niedere Zahl zeigt wenn das Bit ausgeschaltet ist wenn z. B. die die Blockzahlen 0 und 1 verbindende Linie
eingeschaltet ist, zeigt der Pfeil auf die Blockzahl 1. Die Blockzahl 1, auf welche die meisten Linien weisen, wird
jedoch erst ausgetauscht, wenn eine Anforderung keine Übereinstimmung innerhalb der angegebenen Spalte
findet, und der Zustand der auf diese Blockzahl weisenden Bits wird dann umgekehrt Wenn andererseits
eine Anforderung eine Übereinstimmung innerhalb der angegebenen Spalte findet dann wird der Zustand
derjenigen Bits umgekehrt, die auf die Blockzahl hinweisen, in welcher die Übereinstimmung festgestellt
wurde. Somit bezeichnet im Beispiel der Fig.7 der Rückstellzustand den Block Nr. 3 als den Austauschblock,
da drei Bits 0-3, 1-3 und 2-3 auf diese Blockzahl zeigen. Der Block 2 ist der nächst älteste, da
zwei Bits 0 — 2 und 1 —2 auf diese Blockzahl zeigen und der Block 1 ist der nächst älteste nach Block 2, da ein Bit
0— 1 auf diese Blockzahi zeigt Der Block Nr. 0 wurde zuletzt gebraucht, da kein Bit auf diese Blockzahl
hinweist. Nachdem Block 3 ausgetauscht ist, schreibt der Austauschalgorithmus den 6-Bit-Code durch Rückstellung
der auf die Blockzahl 3 deutenden Bits fort Nach der Fortschreibung ist dementsprechend der Block Nr. 2
der zuerst auszutauschende, da dieser jetzt 3 auf die Blockzahl 2 hinweisende Bits vorzuweisen hat Der Rest
der F i g. 7 zeigt den Wechsel der Austauschgruppenbits für eine Spalte der Austauschgruppe 2164 für das in
F i g. 6 gezeigte Beispiel.
Aus den F i g. 3a und 3b ist zu ersehen, daß die durch eine adressierte Spalte der Austauschanordnung 2 153
bestimmte Information über die Leitungen 2 165 an den Decodierer 2 168 geleitet wird, der die sechs Leitungen
zu einer aus 2 Bits bestehenden Nachricht auf den
Leitungen 2 169 decodiert, die mit den ersten Eingängen
der UND-Glieder 2 146 verbunden sind. Die anderen Eingänge der UND-Glieder 2 146 sind an die Nicht-Vergleichleitung
213 angesch'ossen. Die Leitungen 2 171 werden betätigt, wenn im Pufferadreßvergleicher 2 122,
2 124,2 126 oder 2 128 kein Vergleich erzielt wurde. Die Leitungen 2 171 sind mit den Bits 0 und 1 des DBAR
2 180 verbunden. Die Bits 0 und 1 von DBAR 2 180 werden dem Decodierer 2159 zugeleitet, der eingeschaltet
ist, wenn ein Signal »Kein Vergleich« auf der Leitung 213 erscheint. Der Decodierer 2 159 schaltet
eines der UND-Glieder 2 112, 2 114, 2 116 oder 2 118 ein, um die virtuelle Adreßinformation auf den
Leitungen 2 106 nach einem der vier Blocks in einer bestimmten Spalte des Adressenspeichers 2100 zu
leiten.
Die Information darüber, welcher der vier Blocks eingeschaltet ist, wird ebenfalls an den Fortschreibungscodierer
2 162 gegeben, der dann die 6-Bit-Information in der Austauschanordnung 2 164 in der entsprechenden
Spalte fortschreibt.
Wenn also die gegebene virtuelle Adresse bei einer CPU-Abrufoperation nicht mit den in dem Adressenspeicher
2100 gespeicherten virtuellen Adressen übereinstimmt, wird in einem dann stattfindendem
Austauschzyklus die gegebene virtuelle Adresse in einem entsprechenden Block der adressierten Spalte in
dem Adressenspeicher 2100 abgespeichert und die Austauschanordnung 2 164 fortgeschrieben.
Die Blockinformationsbits 0 und 1 des DBAR werden i(i
über die Leitungen 2 187 an die UND-Glieder 2 184 übertragen, die Spalteninformationsbits 2 bis 7 über die
Leitungen 2 185 an die UND-Glieder 2 186 und die Doppelwortinformationsbits 8 und 9 über die Leitungen
2 181 an die UND-Glieder 2 188. Mit einem zum DBAR r,
2 180 gehörenden Zähler 2 182 werden die Doppelwort-Auswahlbits für Pufferspeicheroperationen erhöht. Die
Doppelwort-Auswahlbits 8 und 9 werden in den Zähler 2 182 eingegeben und jedesmal um den Wert 1 erhöht,
wenn eine Pufferspeicheroperation stattfindet. Der 4()
erhöhte Wert wird über die Leitungen 2 183 nach den Bits 8 und 9 des DBAR 2 180 zurückgeführt. Der Zähler
2 182 ist deswegen erforderlich, weil bei Informationsübertragung vom Hauptspeicher in den Pufferspeicher
200 die Information blockweise übertragen wird, d. h. jeweils vier Doppelwörter DlVl, DIV2, DIV3 und
DlV4. Wenn das DW1 gefragt ist, werden die einzelnen
Doppelwörter DWi, DW2, DWZ und DW4 in dieser Reihenfolge geliefert. Wenn jedoch z. B. das DW3
gefragt ist, wird dieses zuerst geliefert, gefolgt von w
DW4, DW\ und DW2. Demzufolge müssen die Wörter in dieser Reihenfolge im Pufferspeicher 200
gespeichert werden, und der Zähler 2 182 muß die Reihenfolge, beginnend an irgendeinem Punkt in der
Reihenfolge dieser Doppelv/örter DlVl bis DIV4 -,-,
aufrechterhalten. Die folgende Tabelle 2 zeigt die binäre Einstellung des Zählers 2 182 für jedes Doppelwort in
einem Block.
Wenn also im Pufferspeicher 200 eine Speicheroperation, beginnend mit dem Doppelwort DIV3, stattfinden
soll, dann wird der Zähler auf den binären Wert 10 eingestellt für die nächste Speicheroperation wird der
inhalt des Zählers 2 182 zur Speicherung des Doppelwortes DIV4 um den Wert 1 erhöht, und dieser Wert
wird an die Bits 8 und 9 des DBAR 2 180 übertragen. Wenn der Inhalt des Zählers 2 182 wieder erhöht wird,
läuft der Zähler über und kehrt auf den Wert 00 zurück und speichert das Doppelwort DWl. Dieser Wert wird
dann an die Bits 8 und 9 des DBAR 2 180 übertragen. Der Zähler 2 182 wird als nächstes zur Speicherung des
Doppelwortes DJV2 auf den Wert 01 erhöht Mit dem Zähler 2 182 kann also mit jedem der Doppelwörter
DlVl bis DIV4 begonnen und jedes dieser Doppelwörter
kann an der richtigen Pufferspeicheradresse gespeichert werden.
Die UND-Glieder 2 184, 2 186, 2 188 werden durch ein Signal auf der Leitung 213 entsperrt Wenn also
keine Übereinstimmung der Pufferadresse festgestellt wird, werden die UND-Glieder 2184, 2186, 2188
entsperrt, so daß die Adreßinformation im DBAR 2 180 über die Leitungen 2 173 an die ODER-Glieder 2 198,
die Leitungen 2 175 an die ODER-Glieder 2 196 und die Leitungen 2 177 an die ODER-Glieder 2 178 übertragen
werden kann. Die Adreßbits laufen über die ODER-Glieder 2 198, 2 196 und 2 178 zum Blockdecodierer
2 220, Spaltendecodierer 2 210 und Doppelwortdecodierer 2 230 des Datenpuffers 220. Wenn also mit der
gegebenen virtuellen Adresse keine Übereinstimmung festgestellt wird, wird mit dem Inhalt des DBAR 2 180
eine bestimmte Doppelwortstelle innerhalb eines ausgewählten Blocks einer ausgewählten Spalte im
Datenpuffer 2 200 adressiert.
Wenn zwischen einer gegebenen virtuellen Adresse und einer Adiesse von dem Adressenspeicher 2 100 eine
Übereinstimmung festgestellt wird, wird mit dem Inhalt des Pufferadreßregisters 2 150 ein bestimmtes Doppelwort
in dem Datenspeicher 2 200 adressiert, und wenn keine Übereinstimmung festgestellt wird, wird mit dem
Inhalt des DBAR 2 180 ein bestimmtes Doppelwort, in dem Datenspeicher 2 200 adressiert. Wenn also bei
einer CPU-Abrufoperation eine Übereinstimmung erzielt wird, schreibt der Fortschreibungscodierer 2 162
die adressierte Eintragung in der Austauschanordnung 2 164 entsprechend der Blockzahl fort, in welcher die
Übereinstimmung festgestellt wurde, wogegen er die adressierte Eintragung in der Austauschanordnung
2 164 nach der durch das DBAR 2 180 angegebenen Blockzahl fortschreibt, wenn keine Übereinstimmung
festgestellt wurde.
Aus der obigen Beschreibung ist daher zu ersehen, daß die den Erfindungsgedanken ausführende Anlage
den Zugriff zum Hauptspeicher 400 und zum Pufferspeicher 200 steuert und Daten in einem virtuell
adressierten Pufferspeichersystem überträgt.
Arbeitsweise
Doppelwort
Binärer Wert
00
01
10
01
10
Anschließend wird die Arbeitsweise der bisher mi beschriebenen Anlage im Zusammenhang mit Fig. 4,
2a, 2b, 3a und 3b genauer beschrieben.
Wenn eine Speicheranforderung eingeleitet wird, muß zuerst festgestellt werden, ob die Anforderung von
der CPU oder vom E/A-Kanal stammt. Diese μ Entscheidung wird automatisch getroffen, je nachdem
welche der Leitungen 101, 103 oder 501 bzw. 507 betätigt ist. Wenn eine der Leitungen 101 oder 103
erregt ist, wird dadurch die SDeicheranforderune als
CPU-Anforderung gekennzeichnet Wenn eine der Leitungen 501 oder 507 erregt ist, wird die Speicheranforderung
als E/A-Kanalspeicheranforderung bezeichnet
CPU-Anforderung
Für eine CPU-Anforderung werden die Bits 8 bis 19
der virtuellen CPU-Adresse (die virtuelle Seitenadresse) an den virtuellen Adreßvergleicher 150 geleitet, der
durch den Entscheidungsblock »Virtueller Adreßvergleich« in F i g. 4 dargestellt ist Wenn eine Übereinstimmung
der virtuellen Adresse festgestellt wird, werden die Bits 8 bis 19 der virtuellen CPU-Adresse dann mit
einer im Adreßpuffer 210 enthaltenen Adresse verglichen (Fig.3a). Wenn dort eine Übereinstimmung
festgestellt und die Pufferadreßvergleichsleitung 211 demzufolge erregt wird, ist daraus λι ersehen, daß für
eine CPU-Abrufoperation, die durch die CPU 100 angeforderten Daten, die im Datenpuffer 220 an der
durch das BAR 2 150 bezeichneten Block-, Spalten- und Doppelwortstelle stehen, über die Leitungen 221 und die
UND-Glieder 122 nach der CPU-Datensammelleitung 131 geleitet werden. Wie bereits beschrieben, reagiert
der Fortschreibungscodierer 2 162 auf den CPU-Abruf, den Puffervergleich und die Bits 0 und 1 am Ausgang des
Codierers 2 152 durch Fortschreiben des Inhaltes der entsprechenden Spalte der Austauschanordnung 2 164.
Wenn die CPU-Speicherleitung 103 erregt ist, werden Daten auf der CPU-Sammelleitung 119 über die
UND-Glieder 120 und über die ODER-Glieder 140 an w den Datenpuffer 220 geleitet. In diesem Fall werden von
der CPU kommende Daten in dem Datenspeicher 2 200 an der durch die Decodierer 2 210, 2 220 und 2 230
entsprechend dem Inhalt des BAR 2 150 gekennzeichneten Spalten-, Block- und Doppelwortstelle gespeichert.
Aus Fig.4 ist zu ersehen, daß die angeforderten
Adressen und Daten über einen Adreßübersetzungszyklus vom Hauptspeicher erhalten werden müssen, wenn
in dem Vergleicher 150 keine Übereinstimmung mit der virtuellen Adresse erzielt wird. Der Inverter 154 erregt
daher das UND-Glied 156, welches dann die virtuelle Adresse von der CPU 10 an den Adreßübersetzer 310
weiterleitet. Dieser führt die Adreßübersetzung aus und erhält die echte Seitenadresse vom Hauptspeicher 400. ^,
Wenn die umgesetzte Adresse in dem Assoziativspeicher 320 verfügbar ist, wird im virtuellen Adreßvergleicher
150 eine Übereinstimmung erzielt, und die entsprechende echte Seitenadresse wird auf der Leitung
303 über die UND-Glieder 152 an die UND-Glieder 146 w abgegeben.
Da unter diesen Umständen in dem Vergleicher 150 eine Übereinstimmung der virtuellen Adresse erzielt
wird, die angeforderte Adresse jedoch nicht im Adreßpuffer 210 enthalten ist, wird die Leitung 213 γ,
erregt und die Einschaltbedingungen für das UND-Glied 158 erfüllt, zur Übertragung einer Übertragungsadresse über das ODER-Glied 162 als ein Hauptspeichersignal
auf der Leitung 159. Daher wird die echte Hauptspeicheradresse über die UND-Glieder 146 und t>n
148 nach der Speicheradreß-Sammelleitung 421 und somit an den Hauptspeicher 400 übertragen.
Wenn die CPU-Anforderung eine Abrufoperation ist und dabei die Leitung 101 erregt ist, werden Daten aus
dem Hauptspeicher 400 auf der Datensammelausgangs- bi
leitung 401 über die UND-Glieder 126 abgerufen und im Datenpuffer 220 an der durch das DBAR 2180
bezeichneten Block-, Spalten- und Doppelwortstelle gespeichert sowje an die CPU 100 übertragen. Wie
bereits beschrieben, spricht der Fortschreibungscodierer 2 162 auf den CPU-Abruf, die Nicht-Übereinstimmung
im Pufferspeicher und die Bits 0 und 1 des DBAR 2 180 an und schreibt den Inhalt der entsprechenden
Spalte der Austauschanordnung 2 164 fort
Wenn die CPU-Anforderung eine Speicheroperation ist und demnach die Leitung 103 erregt ist, werden die
UND-Glieder 128 für die Datenübertragung von der CPU 100 über die Leitung 119 nach der Hauptspeicherdateneingangs-Sammelleitung
129 zur Speicherung im Hauptspeicher 400 entsperrt
Kanalanforderung
Aus den Fig.4 und 2a ist zu ersehen, daß bei
Erregung entweder der Kanalanforderungsleitung 501 für den Kanalabruf oder der Leitung 507 für die
Kanaispeicherung die Anforderung als Kanalanforderung bezeichnet ist Ist die Kanalanforderungsleitung
501 erregt dann werden die UND-Glieder 510 entsperrt und gestatten die Übertragung von Daten auf der
E/A-Datenausgangs-Sammelleitung 405 des Hauptspeichers 400, der durch die Kanaladresse über das
UND-Glied 502 und die ODER-Glieder 420 adressiert wird, über die Leitungen 511 zum E/A-Kanal 500 zur
Durchführung einer Kanalabrufoperation.
Wenn die E/A-Kanalanforderung als Kanalspeicheroperaticn
gekennzeichnet ist, werden über die Kanalspeicherleitung 507 die UND-Glieder 504, 512 und 514
entsperrt Die Kanaladreßinformation wird auf den Leitungen 505 direkt an die ODER-Glieder 420
übertragen, zur Weiterleitung über die Speicheradreß-Sammelleitung 421 an den Hauptspeicher 400, während
Kanaldaten auf den Leitungen 419 über die UND-Glieder 512 an die E/A-Dateneingangs-Sammelleitungen
513 geleitet werden, wodurch eine direkte Speicherung der Kanalinformation an der Zugriffsstelle im Hauptspeicher
400 erreicht wird.
Gleichzeitig werden die Bits 8 bis 19 der Kanaladreßinformation einer Gruppe von Eingängen des Echt-Adreßvergleichers
170 zugeleitet, wo die Kanaladresse mit dem echten Teil aller im Assoziativspeicher 320
gespeicherten Adressen verglichen wird. Wenn keine Übereinstimmung zwischen der gegebenen Kanaladresse
und den echten Adressen in dem Adressenspeicher erzielt wird, wird keine weitere Pufferoperation
ausgeführt Wird jedoch eine Übereinstimmung erzielt, wird die zugehörige virtuelle Adresse über die
UND-Glieder 174, die Leitungen 175 und die ODER-Glieder 180 an die Pufferadreßvergleicher 2 122, 2 124,
2 126 und 2 128 (dargestellt in F i g. 3a) geleitet, wo die entsprechende virtuelle Adresse mit den in dem
Adressenspeicher 2 100 gespeicherten Blockadressen an einer Spaltenstelle verglichen wird, die durch die Bits
21 bis 26 der auf die Leitungen 506 gegebenen Kanaladresse bestimmt wird.
Wenn eine Übereinstimmung der Pufferadresse erzielt wird, werden die UND-Glieder 514 entsperrt und
gestatten eine Übertragung der auf den Leitungen 515 liegenden E/A-DatensammelleitungsinFormation über
die ODER-Glieder 140 und die Leitungen 141 an den Datenpuffer 220, wo sie an der durch das BAR 2 150
angegebenen Block-, Spalten- und Doppelwortstelle gespeichert werden.
Wenn also eine Übereinstimmung der echten Adresse und der Pufferadresse in einer Kanalspeichuroperation
erzielt wird, werden Kanaldaten sowohl im Datenpuffer als auch im Hauptspeicher gespeichert.
Hierzu 7 liliill Zei
Claims (5)
1. Datenverarbeitungsanlage mit virtueller Adressierung mit einer Zentraleinheit, einem Hauptspeieher
hoher Speicherkapazität, einem schnellen Pufferspeicher kleinerer Kapazität, einem E/A-Kanal
und einem Adressenumsetzer, wobei die Zentraleinheit Adreßsignale als virtuelle Adressen
liefert, während in dem mit der Zentraleinheit ι ο verbundenen Hauptspeicher Daten blockweise unter
reellen Adressen abspeicherbar sind, dadurch
gekennzeichnet,
daß der mit der Zentraleinheit (100) und dem Hauptspeicher (400) verbundene schnelle Pufferspeicher
(200) aus einem virtuellen Adreßpuffer (210) und einem Datenpuffer (220) besteht,
daß ferner ein Assoziativspeicher (300, 320) für die Speicherung von virtuellen Adressen und die entsprechenden reellen Adressen für den Hauptspeieher an die Zentraleinheit und an den Hauptspeicher (400) anschaltbar ist,
daß ferner ein Assoziativspeicher (300, 320) für die Speicherung von virtuellen Adressen und die entsprechenden reellen Adressen für den Hauptspeieher an die Zentraleinheit und an den Hauptspeicher (400) anschaltbar ist,
daß mit dem Assoziativspeicher ein erster Vergleicher (150) verbunden ist, der die von der
Zentraleinheit kommenden virtuellen Adressen mit denen im Assoziativspeicher gespeicherten virtuellen
Adressen vergleicht und bei erfolgreichem Vergleich ein erstes Steuersignal erzeugt, worauf,
gesteuert durch dieses erste Steuersignal, die mit den vorgegebenen virtuellen Adressen verbundenen
echten Adressen an den Hauptspeicher (400) weitergegeben werden und
daß weitere mit der Zentraleinheit und dem Pufferspeicher verbundene Schaltmittel vorgesehen
sind, die auf die virtuellen Adressensignale aus der r> Zentraleinheit ansprechen und an den Pufferspeicher
für einen Zugriff zu einer Speicherposition im Pufferspeicher ein zweites Signal liefern, das den aus
der Zentraleinheit kommenden virtuellen Adressensignalen entspricht, wobei die Übertragung der
echten Adressen an den Hauptspeicher dann gesperrt wird, wenn bei einer Abrufoperation durch
die Zentraleinheit ein Zugriff zum Pufferspeicher erfolgt.
2. Anlage nach Anspruch 1, dadurch gekennzeich- 4 >
net, daß ein echtes Adressensignal liefernde Eingabe-/Ausgabeeinheiten über den E/A-Kanal
(500) bei Datenabruf im Hauptspeicher (400) unmittelbar nach diesen durchschaltbar sind.
3. Anlage nach den Ansprüchen 1 und 2, dadurch >o
gekennzeichnet,
daß der ein echtes Adressensignal liefernde Eingabe-/Ausgabekanal (500) für einen Datenspeichervorgang
mit einer zweiten Vergleichsschaltung (170) zum Vergleich dieser echten Adressen mit im v>
Assoziativspeicher (320) gespeicherten echten Adressen verbunden ist,
daß bei positivem Vergleich die im Assoziativspeicher gespeicherten entsprechenden virtuellen
Adressen mit den in den Adreßschaltungen des «> Adreßpuffers (210) des Pufferspeichers (200) gespeicherten
virtuellen Adressen vergleichbar sind, und
daß bei positivem Vergleich die von den Eingabe-/ Ausgabeeinheiten kommenden Daten zusätzlich zum Hauptspeicher (400) auch noch an den den br> aufgefundenen virtuellen Adressen entsprechenden Speicherplätzen im Datenpuffer (220) abspeicherbar sind.
daß bei positivem Vergleich die von den Eingabe-/ Ausgabeeinheiten kommenden Daten zusätzlich zum Hauptspeicher (400) auch noch an den den br> aufgefundenen virtuellen Adressen entsprechenden Speicherplätzen im Datenpuffer (220) abspeicherbar sind.
4. Anlage nach Anspruch 3, dadurch gekennzeichnet, daß der Assoziativspeicher (300) eine Adressen-Obersetzungsschaltung
(310) enthält, die der Umsetzung der von der Zentraleinheit kommenden
virtuellen Adressen in echte Adressen dient.
5. Anlage nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß eine Austauschanordnung
(2164) vorgesehen ist, in der Listen mit der Benutzungsreihenfolge der aus dem Datenpuffer
(220) abgerufenen Datensätze eingespeichert sind, wobei jedesmal dann, wenn ein Datenblock (2202,
2204) im Pufferspeicher erfolgreich angesprochen ist, die Identität dieses Blocks in der entsprechenden
Austauschliste an die erste Stelle eingespeichert rückt, und daß bei erfolgloser Adressierung des
Pufferspeichers bei Überführung von Daten in den Pufferspeicher die Identität dieses Datenblocks in
der Austauschliste an letzter Stelle eingespeichert wird, um die übrigen schon früher benutzten Daten
im Pufferspeicher zu halten.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15791271A | 1971-06-29 | 1971-06-29 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2231146A1 DE2231146A1 (de) | 1973-01-18 |
DE2231146B2 true DE2231146B2 (de) | 1979-11-29 |
DE2231146C3 DE2231146C3 (de) | 1980-08-14 |
Family
ID=22565852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2231146A Expired DE2231146C3 (de) | 1971-06-29 | 1972-06-26 | Datenverarbeitungsanlage mit virtueller Adressierung |
Country Status (7)
Country | Link |
---|---|
US (1) | US3786427A (de) |
JP (1) | JPS529495B1 (de) |
CA (1) | CA971285A (de) |
DE (1) | DE2231146C3 (de) |
FR (1) | FR2143736B1 (de) |
GB (1) | GB1370219A (de) |
IT (1) | IT955885B (de) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1354827A (en) * | 1971-08-25 | 1974-06-05 | Ibm | Data processing systems |
US4010451A (en) * | 1972-10-03 | 1977-03-01 | National Research Development Corporation | Data structure processor |
US3866183A (en) * | 1973-08-31 | 1975-02-11 | Honeywell Inf Systems | Communications control apparatus for the use with a cache store |
FR129151A (de) * | 1974-02-09 | |||
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 |
US3990051A (en) * | 1975-03-26 | 1976-11-02 | Honeywell Information Systems, Inc. | Memory steering in a data processing system |
US4351024A (en) * | 1975-04-21 | 1982-09-21 | Honeywell Information Systems Inc. | Switch system base mechanism |
US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
FR2323190A1 (fr) * | 1975-09-05 | 1977-04-01 | Honeywell Bull Soc Ind | Dispositif pour proteger l'information contenue en memoire dans un calculateur numerique |
DE2605617A1 (de) * | 1976-02-12 | 1977-08-18 | Siemens Ag | Schaltungsanordnung zum adressieren von daten |
JPS52130532A (en) * | 1976-04-27 | 1977-11-01 | Fujitsu Ltd | Address conversion system |
US4079453A (en) * | 1976-08-20 | 1978-03-14 | Honeywell Information Systems Inc. | Method and apparatus to test address formulation in an advanced computer system |
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4084225A (en) * | 1976-09-24 | 1978-04-11 | Sperry Rand Corporation | Virtual address translator |
US4084226A (en) * | 1976-09-24 | 1978-04-11 | Sperry Rand Corporation | Virtual address translator |
US4157586A (en) * | 1977-05-05 | 1979-06-05 | International Business Machines Corporation | Technique for performing partial stores in store-thru memory configuration |
US4092713A (en) * | 1977-06-13 | 1978-05-30 | Sperry Rand Corporation | Post-write address word correction in cache memory system |
US4155119A (en) * | 1977-09-21 | 1979-05-15 | Sperry Rand Corporation | Method for providing virtual addressing for externally specified addressed input/output operations |
US4156906A (en) * | 1977-11-22 | 1979-05-29 | Honeywell Information Systems Inc. | Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands |
US4161024A (en) * | 1977-12-22 | 1979-07-10 | Honeywell Information Systems Inc. | Private cache-to-CPU interface in a bus oriented data processing system |
JPS6013501B2 (ja) * | 1978-09-18 | 1985-04-08 | 富士通株式会社 | 仮想計算機システムにおけるチヤネルアドレス制御方式 |
US4231088A (en) * | 1978-10-23 | 1980-10-28 | International Business Machines Corporation | Allocating and resolving next virtual pages for input/output |
US4277826A (en) * | 1978-10-23 | 1981-07-07 | Collins Robert W | Synchronizing mechanism for page replacement control |
CA1123964A (en) * | 1978-10-26 | 1982-05-18 | Anthony J. Capozzi | Integrated multilevel storage hierarchy for a data processing system |
US4323968A (en) * | 1978-10-26 | 1982-04-06 | International Business Machines Corporation | Multilevel storage system having unitary control of data transfers |
US4264953A (en) * | 1979-03-30 | 1981-04-28 | Honeywell Inc. | Virtual cache |
JPS55157181A (en) * | 1979-05-25 | 1980-12-06 | Nec Corp | Buffer memory control system |
US4320456A (en) * | 1980-01-18 | 1982-03-16 | International Business Machines Corporation | Control apparatus for virtual address translation unit |
US4322795A (en) * | 1980-01-24 | 1982-03-30 | Honeywell Information Systems Inc. | Cache memory utilizing selective clearing and least recently used updating |
EP0039227A3 (en) * | 1980-04-25 | 1982-09-01 | Data General Corporation | Data processing system |
JPS5734251A (en) * | 1980-08-07 | 1982-02-24 | Toshiba Corp | Address conversion and generating system |
US4423479A (en) * | 1980-11-14 | 1983-12-27 | Sperry Corporation | Cache/disk subsystem with acquire write command |
US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
US4400774A (en) * | 1981-02-02 | 1983-08-23 | Bell Telephone Laboratories, Incorporated | Cache addressing arrangement in a computer system |
JPS58129584A (ja) * | 1982-01-27 | 1983-08-02 | Masao Kanazawa | 指紋カ−ド及び指紋カ−ド検出装置 |
JPS58174761U (ja) * | 1982-05-19 | 1983-11-22 | 株式会社日立製作所 | 指紋入力装置 |
US4539637A (en) * | 1982-08-26 | 1985-09-03 | At&T Bell Laboratories | Method and apparatus for handling interprocessor calls in a multiprocessor system |
US4727482A (en) * | 1983-08-30 | 1988-02-23 | Amdahl Corporation | Apparatus for enhancing searches of data tables |
US4587610A (en) * | 1984-02-10 | 1986-05-06 | Prime Computer, Inc. | Address translation systems for high speed computer memories |
US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
JPS63288365A (ja) * | 1987-05-21 | 1988-11-25 | Toshiba Corp | 自動取引装置 |
US4980816A (en) * | 1987-12-18 | 1990-12-25 | Nec Corporation | Translation look-aside buffer control system with multiple prioritized buffers |
JPS63163557U (de) * | 1988-03-31 | 1988-10-25 | ||
JPH01269166A (ja) * | 1988-04-20 | 1989-10-26 | Mitsubishi Electric Corp | 自動取引装置 |
US5276867A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data storage system with improved data migration |
US5276860A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data processor with improved backup storage |
US5218695A (en) * | 1990-02-05 | 1993-06-08 | Epoch Systems, Inc. | File server system having high-speed write execution |
US5278963A (en) * | 1991-06-21 | 1994-01-11 | International Business Machines Corporation | Pretranslation of virtual addresses prior to page crossing |
US5367698A (en) * | 1991-10-31 | 1994-11-22 | Epoch Systems, Inc. | Network file migration system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1218761B (de) * | 1963-07-19 | 1966-06-08 | International Business Machines Corporation, Armonk, N. Y. (V. St. A.) | Datenspeidbereinrichtung |
US3339183A (en) * | 1964-11-16 | 1967-08-29 | Burroughs Corp | Copy memory for a digital processor |
US3470540A (en) * | 1967-04-24 | 1969-09-30 | Rca Corp | Multiprocessing computer system with special instruction sequencing |
US3576543A (en) * | 1967-05-03 | 1971-04-27 | English Electric Computers Ltd | Data handling arrangements |
US3533075A (en) * | 1967-10-19 | 1970-10-06 | Ibm | Dynamic address translation unit with look-ahead |
US3569938A (en) * | 1967-12-20 | 1971-03-09 | Ibm | Storage manager |
US3611315A (en) * | 1968-10-09 | 1971-10-05 | Hitachi Ltd | Memory control system for controlling a buffer memory |
US3588829A (en) * | 1968-11-14 | 1971-06-28 | Ibm | Integrated memory system with block transfer to a buffer store |
US3631405A (en) * | 1969-11-12 | 1971-12-28 | Honeywell Inc | Sharing of microprograms between processors |
US3648254A (en) * | 1969-12-31 | 1972-03-07 | Ibm | High-speed associative memory |
US3647348A (en) * | 1970-01-19 | 1972-03-07 | Fairchild Camera Instr Co | Hardware-oriented paging control system |
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 |
US3693165A (en) * | 1971-06-29 | 1972-09-19 | Ibm | Parallel addressing of a storage hierarchy in a data processing system using virtual addressing |
-
1971
- 1971-06-29 US US00157912A patent/US3786427A/en not_active Expired - Lifetime
-
1972
- 1972-05-26 IT IT24888/72A patent/IT955885B/it active
- 1972-06-08 JP JP47056519A patent/JPS529495B1/ja active Pending
- 1972-06-20 FR FR7222681A patent/FR2143736B1/fr not_active Expired
- 1972-06-22 CA CA145,371A patent/CA971285A/en not_active Expired
- 1972-06-26 DE DE2231146A patent/DE2231146C3/de not_active Expired
- 1972-06-28 GB GB3020272A patent/GB1370219A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
FR2143736A1 (de) | 1973-02-09 |
IT955885B (it) | 1973-09-29 |
US3786427A (en) | 1974-01-15 |
DE2231146A1 (de) | 1973-01-18 |
JPS529495B1 (de) | 1977-03-16 |
DE2231146C3 (de) | 1980-08-14 |
CA971285A (en) | 1975-07-15 |
GB1370219A (en) | 1974-10-16 |
FR2143736B1 (de) | 1976-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2231146C3 (de) | Datenverarbeitungsanlage mit virtueller Adressierung | |
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE3011552C2 (de) | ||
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE2230266A1 (de) | Datenverarbeitungsanlagen mit einer zentraleinheit unter verwendung virtueller adressierung | |
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE2346525C3 (de) | Virtuelle Speichereinrichtung | |
DE2630323A1 (de) | Datenspeichereinrichtung | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
CH617781A5 (de) | ||
DE2523414A1 (de) | Hierarchische speicheranordnung | |
DE1815234A1 (de) | Adressiereinrichtung fuer ein Speichersystem mit einem Grossraumspeicher und einem schnellen Arbeitsspeicher | |
DE2841041A1 (de) | Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren | |
DE1956604B2 (de) | Datenverarbeitungsanlage | |
DE2455047A1 (de) | Datenverarbeitungssystem | |
DE2856133A1 (de) | Verarbeitungssystem fuer einen assoziativspeicher | |
DE2241257B2 (de) | Datenverarbeitende Anlage | |
DE2725395B2 (de) | Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordnete Wörter der Bitlänge n | |
DE1803767A1 (de) | Elektronisches Datenverarbeitungssystem | |
DE2441754A1 (de) | Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors | |
DE4022885A1 (de) | Verfahren zum neuadressieren eines speichers und speichersystem mit einer rangordnung | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE2165765B2 (de) | Informationsspeicher mit Schieberegistern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
C3 | Grant after two publication steps (3rd publication) |