DE2630323C3 - Datenspeichereinrichtung mit einem Hauptspeicher, einem HilfsSpeicher und einer Vorausschaulogik - Google Patents
Datenspeichereinrichtung mit einem Hauptspeicher, einem HilfsSpeicher und einer VorausschaulogikInfo
- Publication number
- DE2630323C3 DE2630323C3 DE2630323A DE2630323A DE2630323C3 DE 2630323 C3 DE2630323 C3 DE 2630323C3 DE 2630323 A DE2630323 A DE 2630323A DE 2630323 A DE2630323 A DE 2630323A DE 2630323 C3 DE2630323 C3 DE 2630323C3
- Authority
- DE
- Germany
- Prior art keywords
- word
- memory
- address
- sequence
- look
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
45
Die Erfindung bezieht sich auf Datenspeichereinrichtungen mit einem Hauptspeicher, einem Hilfsspeicher
geringerer Größe, aber mit schnellerem Zugriff als dem so des Hauptspeichers, mit einem Adressenregister, das die
Adresse der Wortstelle, zu der zugegriffen werden soll,
speichert, mit Speicheradressenschaltungen, die prüfen,
ob der Inhalt der von der Adresse im Adressenregister spezifizierten Wortstelle durch ein Gültigskeitsbit als
gültig markiert ist, und — wenn dies nicht der Fall ist —
das Wort vom Hauptspeicher in den Hilfsspeicher einführen, und mit einer Vorausschaulogik zum
Einführen von Datenwörtern aus dem Hauptspeicher in den Hilfsspeicher, bevor sie erforderlich werden. μ
Datenspeichereinrichtungen dieser Art sind z. B. aus
IBM Technical Disclosure Bulletin, Volume 15, Nr. 4, September 1972, Seiten UOO und 1101 und US-PS
33 075 bekannt Dabei mufl unter bestimmten Bedingungen die Vorausschauwirkung unterbrochen
werden, bis die tatsachlich erforderliche Umspeicherung
stattfindet Im Falle der Anordnung nach der vorgenannten IBM-Druckschrift handelt es sich um eine
»Pipeline«-Verarbeitungseinrichtung, bei der Befehle zuerst geprüft werden, um herauszufinden, welche
Daten sie erfordern, und die entsprechenden Daten vorher abgerufen und in den schnellen Speicher oder
Stapel gebracht werden. Zu dem Zeitpunkt, zu dem die
entsprechende Vorrichtung zur Ausführung des Befehles bereit ist, stehen die erforderlichen Daten im Stapel
zur Verfügung.
Im Falle der vorgenannten US-PS 35 33 075 -enthält
die Instruktion die Information, die die Anzahl von Bytes in Operanden angibt, und hieraus läßt sich
ableiten, ob der Operand eine Seitenbegrenzung schneidet Wenn dies der Fall ist, wird die Seite, auf die
sich der Operand erstreckt, vorher abgerufen. In beiden
bekannten Vorschlägen wird die Entscheidung darüber,
welche Daten vorher abgerufen werden, nach dem Prüfen des entsprechenden Befehles durchgeführt
Die Verwendung eines hierarchischen Speichersystems stellt eine Möglichkeit dar, die an sich miteinander
nicht zu vereinbarenden Forderungen hoher Zugriffsgeschwindigkeit und hoher Speicherkapazität in einem
gegebenen Datenspeicher zu vereinen. Derartige hierarchische Speichersysteme sind beispielsweise aus
dem Aufsatz »Concepts for Buffer Storage« von C. J. Co η t i in Computer Group News, März 1969, Seiten 9
bis 13 erläutert Grundsätzlich weist ein hierarchisches Speichersystem einen großen, verhältnismäßig langsam
arbeitenden Hauptspeicher und einen kleineren, rascher arbeitenden Hilfsspeicher (auch als Pufferspeicher
bezeichnet) auf. Wenn ein Speicherzugriff aufgerufen wird, wird dies zuerst im Hilfsspeicher versucht, und nur
dann, wenn dies nicht erfolgreich ist, d.h., wenn der
zugegriffene Datenausdruck im Hilfsspeicher nicht vorhanden ist, wird der Zugriff aus dem Hauptspeicher
vorgenommen. Auf diese Weise wird die effektive mittlere Zugriffszeit für das System im allgemeinen
kleiner als die des Hauptspeichers und im Idealfall gleich der des Hauptspeichers. Die Leistungsfähigkeit eines
solchen Systems hängt von dem A^orithmus ab, der
zum Fortschreiten des Hilfsspeichers verwendet wird.
Ein leistungsfähiger Algorithmus gewährleistet, daß der Hilfsspeicher nur mit Daten gefüllt ist, bei denen eine
hohe Wahrscheinlichkeit besteht, daß sie in kürzerer Zeit zugegriffen werden.
Allgemein besteht das Grundprinzip der Algorithmen
für das Fortschreiben des Hilfsspeichers darin, daß Datenausdrücke, die aus dem Hauptspeicher zugegriffen werden, in den Hilfsspeicher eingeschrieben werden,
da kurz vorher zugegriffene Ausdrücke im allgemeinen eine hohe Wahrscheinlichkeit bieten, daß sie wieder
benötigt werden. Ferner können Daten im Hauptspeicher in Blöcken angeordnet sein; wenn Daten in einem
bestimmten Block zugegriffen werden, kann der ganze Block in den Hilfsspeicher eingeführt werden, da eine
hohe Wahrscheinlichkeit dafür besteht, daß andere Daten in diesem Block ebenfalls innerhalb kürzerer Zeit
benötigt werden.
In dem vorstehend genannten Aufsatz von C ο η t i ist bereits erläutert, daß Datenblocke vorab abgerufen
werden, bevor sie benötigt werden. Bei der dort erläuterten Sektorpufferanordnung sind Hilfsspeicher
und Hauptspeicher in eine Anzahl von Sektoren aufgeteilt, und jeder Sektor enthält eine Anzahl von
Blöcken von Daten. Jeder Block besitzt sein eigenes Gültigkeitsbit Im Betrieb kann ein beliebiger Sektor des
Hilfsspeichers in einen beliebigen Sektor des Hauptspeichers eingetragen werden, so daß er Datenblöcke
aus dem Sektor des Hauptspeichers aufnehmen kann.
Zu Beginn sind alle Gültigkeilsbits auf »Null« gesetzt,
und wenn ein Datenblock in den Hilfsspeicher eingeschrieben wird, wird sein Gültigkeitsbit auf »Eins«
gesetzt. Bei dieser Anordnung werden Gültigkeitsbits Blöcken zugeordnet Insgesamt ist ein derartiges
Vorabrufen von Datenblöcken verhältnismäßig unwirksam, da in vielen Fällen das vorherige Abrufen
überflüssig ist, in manchen Fällen jedoch verhältnismäßig häufig vorkommt, so daß eine solche Methode dann
besonders unwirtschaftlich wird.
Schließlich ist es aus GB-PS 13 43 375 bekannt, in
schneiten Hilfsspeichern Wörter durch bestimmte Bits für ungültig zu erklären, wenn das entsprechende Wort
im Hauptspeicher geändert wurde.
Aufgabe vorliegender Erfindung ist es, bei einer Speichereinrichtung der gattungsgemäßen Art, bei der
Daten vorab abgerufen werden, unabhängig von einer vorausgehenden gründlichen Befehlsanalyse die Anzahl
von nichtnotwendigen Vorabrufungen so gering wie möglich zu halten und mit Hufe der Vorausschaulogik
jeweils das nächste zu adressierende Wert vorher abzurufen und in den Hilfsspeicher einzuführer:, wenn es
dort nicht bereits vorhanden ist.
Gemäß der Erfindung wird dies dadurch erreicht, daß
a) die Vorausschaulogik mit einer Abfrageeinrichtung
ausgestattet ist, die im Hilfsspeicher die benachbarten Wortstellen derjenigen Wortstelle auf Vorliegen
eines Gültigkeitsbits prüft, die durch die laufende Adresse im Adressenregister angegeben
ist, wobei jede Wortstelle im Hilfsspeicher ein Gültigkeitsbit besitzt, das gesetzt wird, wenn Daten
in die Wortstelle eingeschrieben werden, und das rückgesetzt wird, wenn die Daten nicht mehr gültig
sind;
b) beim Auffinden von Wortstellen, deren Inhalt als gültig in Richtung höherer Adressen oder als
ungültig in Richtung niedrigerer Adressen markiert sind, der Inhalt des Adressenregisters verringert
wird, oder beim Auffinden von Wortstellen, deren Inhalt als ungültig in Richtung höherer Adressen
oder als gültig in Richtung niedrigerer Adressen markiert sind, der Inhalt des Adressenregisters
erhöht wird, und
c) der erhöhte oder verringerte Inhalt des Adressenregisters verwendet wird, um entsprechende
Wörter aus dem Hauptspeicher in den Hilfsspeicher abzurufen.
Grundsaulich wird also das Schema der Gültigkeitsbits im Hilfsspeicher in der Nihe der Daten geprüft, die
gerade adressiert werden, und die Richtung der Folge abgeleitet, d. h. festgestellt, ob die Daten einer Folge
zunehmender oder abnehmender Adressen angehören.
Auf diese Weise IiBt sich die nächste Adresse in der
Folge voraussagen und die echenden Daten lassen sich vorher abrufen.
Der Hilfsspeicher ist in Zellen unterteilt, deren jede
zwei Wortpaare enthalt Jedes Wort besitzt sein eigenes Gfiltigkettsbit und kann durch Adressieren der entsprechenden Zelle und durch Auswahl des ereenden
Wortes innerhalb der ZeOe zr werden. Wird w>
ein Wort zugegriffen, stehen die GaKgkehsbits aller
vier Wörter in der gleichen Zelle zur PlMHg1 und dies
ergibt eine ausreichende Information, die ei gestattet,
die mögliche Richtung der Folge abzuleiten. Es wird davon ausgegangen, da£ die GflttigkeHsbHs des ω
adressierten Wortpaares, d. h. des Wortpaares, das das
gerade adressierte Wort Enthalt, beide »Eins« sind, da
dieses Wortpaar vermutlich gerade aus dem Hauptspeicher abgerufen worden ist. Somit ist es nur erforderlich,
die Gültigkeitsbits des nichtadressierten Wortpaares in der Zelle zu betrachten.
Mit dem erfindungsgemäßen Vorschlag wird erreicht,
daß die Anzahl von überflüssigen Vorausschauvorgängen vermindert und die Anzahl von nützlichen
Vorausschauvorgängen erhöht wird, indem die Vorausschaulogik in beiden Richtungen vorausschaut, d. h, daß
im einfachsten Fall, wenn das Datenwort N adressiert
wird, entweder das Wort N +1 oder das Wort N— 1
vorher abgerufen wird, je nachdem, welches Wort in
naher Zukunft am wahrscheinlichsten erforderlich ist Während beispielsweise bei bekannten Einrichtungen
die Entscheidung darüber, welche Daten vorher abgerufen werden, nach dem Prüfen des entsprechenden
Befehles durchgeführt wird, wird im Falle vorliegender Erfindung die Entscheidung durch Prüfen
der Umgebung des gerade adressierten Daten wortes im Hilfsspeicher durchgeführt, so daß die Entscheidung
getroffen werden kann, bevor der nächste Befehl zur Verfugung steht
Die beschriebene Einrichtung sieht zwei Klassen von Speicherzugriffsbefehlen vor, deren einer eine Vorausschauwirkung
ergibt, und deren anderer nicht Befehle der erstsren Klasse sollen nur in solchen Fällen
verwendet werden, in denen es wahrscheinlich ist, daß
der gerade zugegriffene Datenausdruck einen Teil einer Folge bildet (z. B. zum Zugriff von Instruktionen, die
überlicherweise sequentiell gespeichert sind). Somit versetzt die Einrichtung den Programmierer in die Lage,
zu spezifizieren, ob eine Vorausschauwirkung erforderlich ist oder nicht und dies ist von großem Wert für die
Verringerung der Anzahl von nicht erforderlichen Vorausschauzugriffsvorgängen. Femer werden mit der
erfindungsgemäßen Einrichtung Datenausdrücke vorab abgerufen, die einen Teil einer Folge bilden, in der es
nicht von vornherein bekannt ist in welcher Richtung die Folge wahrscheinlich enthalten ist, d. h. ob es sich
um eine Folge aufsteigender oder absteigender Adressen handelt Unter einer aufsteigenden Folge wird
dabei eine Folge mit aufeinanderfolgend zunehmenden Adressen verstanden, und umgekehrt unter einer
absteigenden Folge eine Folge mit aufeinanderfolgend abnehmenden Adressen.
Nachstehend wird ein Ausführungsbeispiet der
Erfindung in Verbindung mit der Zeichnung erläutert Die Figuren zeigen
F ii g. 1 ein Blockschaltbild der gesamten Datenverarbeitiingseinrichtung,
Fig. 2 eine Speicherzugriffseinheit, die einen Teil der
Datenverarbeitungseinrichtung bildet,
F i g. 3 eine Vorausschaulogikschaltung und
F i >t 4 eine Folgesteuerschaltung.
Nach Fig. 1 weist die Datenverarbeitungseinrichtung
einen Hauptspeicher 10, eine mikroprcgrammierte Verarbeitungseinheit 11, einen Scheduler 12 und eine
Speicherzugriffseinheit 13 auf.
Der Hauptspeicher 10 enthalt verschiedene Arten
von Daten einschiLBlich Instruktionen zur Ausführung
von Operanden und Deskriptoren mit Hilfe der Einrichtung. Beispielsweise hat der Speicher eine
Kapazität von 256 K Wörtern und eine Zujritfszeit von
840 Nanosekunden. Der Speicherzugriffspfad 14 besitzt
eine Breite von zwei Wörtern, was bedeutet, daß jeder
Zugriff ein Paar \©a Wörtern aus dem Speicher rückführt
Die Speicherzugriffseinheit wirkt als eine Zwischeneinrichtung
zwischen der Verarbeitungseinheit 12 und
dem Scheduler U einerseits und dem Mauptspeicher 10 andererseits, indem Speicherzugriffsbefehle aus der
Verarbeitungseinheit und dem Scheduler aufgenommen und in der entsprechenden Weise gewartet werden,
wobei je nach Erfordernis ein Lese- oder Schreibzugriff
zum Hauptspeicher vorgenommen wird. Diese Befehle können echte oder virtuelle Adressen enthalten, und die
Speicherzugriffseinheit enthält einen Adressenumsetzer zur Umwandlung virtueller Adressen in echte Adressen,
wo dies erforderlich ist
Ferner enthält die Speicherzugriffseinheit einen Datenhilfsspeicher, der ein kleiner, schneller Speicher
ist, welcher virtuell adressierte Daten speichert, die wahrscheinlich in Kürze für einen Zugriff benötigt
werden.
Das Grundprinzip der Arbeitsweise des Hilfsspeichers
besteht darin, daß ein in den Hauptspeicher durch gramm in der Verarbeitungseinheit in gleicher Weise
wie andere Instruktionen bewertet, wenn jedoch eine Änderung der Folge angezeigt wird, beginnt das
Mikroprogramm mit dem Abrufen der Sprungbestimmungsinstruktion,
bevor die Ausführung der laufenden Instruktion abgeschlossen ist Alle vorher vorabgerufenen
Instruktionen im Scheduler werden beseitigt.
Die Verarbeitungseinheit ist eine mikroprogrammierte Universaleinheit mit einem Arbeitsspeicher mit 256
Wörtern mit einer Zykluszeit von 125 Nanosekunden, einem Stapelspeicher mit 32 Wörtern mit einer
Zykluszeit von 62,5 Nanosekunden und einem Mikroprogrammspeicher,
der 8—16 K Wörter hält. Mikroprogramminstruktionen werden normalerweise mit der
Geschwindigkeit von einer Instruktion je 125 Nanosekunden ausgeführt, die Zeitsteuerung kann jedoch
aufgehalten werden, damit eine Synchronisierung
Datenausdruck auch in den Hilfsspeicher eingeschrieben
wird, und in ähnlicher Weise ein Ausdruck, der von einem virtuell adressierten Befehl aus dem Hauptspeicher
ausgelesen wird, in den Hilfsspeicher kopien wird. Dieses Prinzip kann für bestimmte Befehle modifiziert
werden, generell wird jedoch erreicht, daß vor kurzem zugegriffene Ausdrücke im Hilfsspeicher zur Verfugung
stehen. Im Falle eines nachfolgenden Lesebefehles können sie somit automatisch aus dem Hilfsspeicher
ohne die Verzögerung, die durch einen Hauptspeicherzugriff auftritt, Zugriffen werden.
Bestimmte virtuell adressierte Lesebefehle zeigen der Speicherzugriffseinheit an, daß der laufende Zugriff
wahrscheinlich eine aus einer Folge von fortlaufenden Adressen ist Die Speicherzugriffseinheit behandelt
diese Befehle so, daß zuerst das adressierte Wort in der normalen Weise aus dem Hilfsspeicher (falls es dort
vorhanden ist) oder aus dem Hauptspeicher zugegriffen wird und daß dann gewährleistet wird, daß der
Hilfsspeicher mit dem nächsten Paar von Wörtern in der möglichen Folge (als das Vorausschau-Wortpaar
bezeichnet) gefüllt wird Zu diesem Zweck wird ein Test rltirrheeführt. um tu bestimmen, ob das Vorausschau-Wortpaar
bereits im Hilfsspeicher vorhanden ist; wenn dies nicht der Fall ist, wird dieses Wortpaar aus dem
Hauptspeicher geholt und in den Hilfsspeicher eingeführt. Dies wird als Vorausschaufunktion bezeichnet Im
Falle einiger Befehle weist die Vorausschaufunktion eine Entscheidung in bezug auf die wahrscheinliche
Richtung der Folge auf.
Die grundlegende Funktion des Schedulers besteht darin, Instruktionen zur Ausführung durch die Verarbeitungseinheit
vorher abzurufen, ehe sie benötigt werden, indem Lesebefehle in die Speicherzugriffseinheit eingegeben
werden. Der Scheduler decodiert auch jede Instruktion, während die vorausgehende Instruktion
gerade durchgeführt wird, und gibt auf Anfrage einen Satz von Parametern, die die Aufgaben definieren,
welche durch die Verarbeitungseinheit durchgeführt werden sollen, um die Ausführung der Instruktion zu
vervollständigen, in die Verarbeitungseinheit Eine Instruktion wird normalerweise in zwei Aufgaben (in
Ausnahmen eine oder drei) durchgeführt, und die Parameter, die in die Verarbeitungseinheit für jede
Aufgabe eingeführt werden, weisen normalerweise eine Mikroprogrammstartadresse, eine Aufgabenlängenanzeigevorrichtung,
eine Kopie der Instruktion und andere Kennzeicheneinstelhings- und Schleifenzählinformationen
auf.
Sprunginstruktionen werden durch das Mikropro-
anucfcr iyuiiiciicii iiiOguCn ist (insbesondere, Uni aiii
Daten aus der Speicherzugriffseinheil zu warten).
Speicherzugriffseinheit
Speicherzugriffseinheit
In F i g. 2 nimmt die Speicherzugriffseinheit bei jedem
Speicherzugriffsbefehl aus dem Scheduler oder der Verarbeitungseinheit eine Adresse von 30 Bits über
einen Multiplexer 20 auf. Die ersten 28 Bits (0—27) dieser Adresse können als die Adresse eines bestimmten,
aus vier Wörtern bestehenden Abschnittes des Speichers betrachtet werden, während Bit 28 ein
Wortpaar in diesem Abschnitt auswählt und Bit 29 ein Wort des ausgewählten Paares spezifiziert.
Diese Adresse wird in ein Adressenregister 21 übernommen, dessen Bits mit ADO bis AD 29 in der
Reihenfolge abnehmender Bedeutung bezeichnet sind.
Der Inhalt des Adressenregisters wird einer Adressenumsetzungseinheit
22 aufgegeben, die virtuelle Adressen in entsprechende echte Adressen umwandelt,
und sie dem Hauptspeicher aufgibt Zu diesem Zweck enthält die Adressenumsetzeinheit eine Anzahl von
laufenden Seitenregistern, die die echten Basisadressen von Seiten halten, die gerade von dem System
verwendet werden, wobei eine Seite als ein Teil mit 256 Worten des virtuellen Speichers festgelegt wird. Um
somit eine virtuelle Adresse in eine echte Adresse umzuwandeln, wird zuerst das entsprechende laufende
Seitenregister ausgewählt und dann die in diesem Register enthaltene Basisadresse einem Verschiebungsteil
der virtuellen Adresse hinzugefügt Wenn die erforderliche Basisadresse in Wirklichkeit nicht in
einem der laufenden Seitenregister vorhanden ist, wird ein Unterbrechungssignal in die Verarbeitungseinheit
gegeben und leitet eine Mikroprogrammfolge zum Fortschalten der laufenden Seitenregister ein.
Fig.2 zeigt auch den Dateahilfsspeicher 23 der
Speicherzugriffseinheit Der Hilfsspeicher ist ein Speicher mit direktem Zugriff, der eine Zugriffszeit von 45
Nanosekunden besitzt und der insgesamt 256 Wörter hält, die in 64 Zeilen mit jeweils vier Wörtern unterteilt
sind. Zu einem bn Zeitpunkt ist jede aktive Zelle einem bestimmten Abschnitt aus vier Wörtern des
virtuellen Speichers zugeordnet und einzelne beliebige, alle oder keine dieser Wörter können gültige Daten
enthalten. Jedem Wort im Hüfsspeicher ist deshalb ein
Gültigkeitsbit zugeordnet damit angezeigt wird, ob es
gültige Daten enthih. {ede aktive ZeDe enthält auch die
virtuelle Adresse des Abscs nut vier Wörtern des virtuellen Speichers, dem sie zugeordnet ist
Wenn die Speieherznheit einen virtuell
adressierten Befehl wird eine KontroUadres-
se mit fünf Bits in einer Kontrollcodierschallung 24 aus
ausgewählten Bits der virtuellen Adresse im Adressenregister 21 gebildet, und zwar wie folgt:
Konlrollhil
Ableitung
Al)O
(.ΊΟ24) = (AD 12)
(A 1)25)= (Al)\l) A I) 26
11)27
(A 1)25)= (Al)\l) A I) 26
11)27
wobei das Symbol die Äquivalenz der beiden Bits bezeichnet.
Diese Kontrolladresse wird dem Adresseneingang des HilfsSpeichers aufgegeben, so daß ein Paar von
Zellen ausgewählt wird. Dann wird ein Vergleich zwischen der virtuellen Adresse, die in jeder dieser
Zellen gespeichert ist, und den Inhalten des Adressenregjsters vorgenommen. Wird für eine dieser Zellen eine
Übereinstimmung festgestellt, wird eine Prüfung durchgeführt, ob das adressierte Wort in dieser Zelle gültig ist.
Wenn dies der Fall ist, wird die gewünschte Fortschreibung oder der Lesezugriff zu dem Wort vorgenommen,
ist das Wort nicht gültig, wird ein erforderlicher Hauptspeicherzugriff zur Korrektur vorgenommen.
Wenn andererseits keine Zelle des Paares den Inhalten des Adressenregisters entspricht, wird die Zelle des
zuletT» verwendeten Paares ausgewählt und der neuen virtuellen Adresse wieder zugeordnet. Diese Zelle wird
dann in der erforderlichen Weise fortgeschrieben, indem ein Zugriff zum Hauptspeicher vorgenommen
wird.
Da der Zugriffspfad zum Hauptspeicher eine Breite von zwei Wörtern besitzt, wird immer dann, wenn ein
Wort aus dem Hauptspeicher zugegriffen wird, das andere Wort des Paares auch in die Speicherzugriffseinheit
zurückgeführt und in den Hilfsspeicher eingeschrieben.
Es wird jedoch nur das adressierte Wort des Paares in die Verarbeiiungseinheit oder den scheduler zurückgeführt.
Jede Zelle im Hilfsspeicher enthält auch Kennzeichen, die angeben, ob die Daten in dieser Zelle zum Lesen,
Schreiben oder zum Durchführen einer Instruktion oder einer Kombination dieser Vorgänge zur Verfugung
stehen. Diese Kennzeichen werden in die entsprechenden Zustände gesetzt, wenn die Zelle zugeteilt wird, und
werden für Zugriffszulassungsprüfungeii verwendet, wenn die Zelle zugegriffen wird.
Der Hilfsspeicher erzeugt auch zwei Ausgangssignale A WPV und OWPV zur Verwendung bei der Vorausschau-Aktion.
A WPV(adressiertes Wortpaar gültig) ist »echt«, wenn beide Wörter des adressierten Wortpaares
(d.h. das Wortpaar, das das adressierte Wort enthält) gültig sind, während OrVPV(anderes Wortpaar
gültig) »echt« ist, wenn beide Wörter des anderen Paares in der gleichen Zelle gültig sind.
Speicherzugriffseinheit-Funktionen
Die Speicherzugriffseinheit kann eine Vielzahl von Funktionen in Abhängigkeit von Speicherzugriffsbefehlen
aus dem Scheduler oder der Verarbeitungseinheit ausführen.
Jede dieser Funktionen beginnt mit einer Folge von Arbeitsvorgängen, die als die Anfangszugriffsfolge
bezeichnet ist, in welcher das durch das Adressenregister 21 spezifizierte Wort zum Auslesen oder Fortschreiben
zugegriffen und in den Scheduler und/oder die Verarbeitungseinheit zurückgeführt wird. An diese
Folge können sich in manchen Fällen ein oder mehrere '< weitere Folgen zur Durchführung der Vorausschaufunktion
anschließen.
Im Falle eines Befehls aus der Verarbeitungseinheit wird die spezielle Funktion, die durchgeführt werden
soll, durch einen Funktionscode mit fünf Bits in dem in Befehl spezifiziert. Einige dieser Funktionen können
eine Vorausschaufunktion enthalten, während andere eine solche Funktion nicht enthalten.
Zwei Beispiele für Funktionen, die keine Vor.iiisschaufunktion
enthalten, sind folgende:
RV
Virtuelles Auslesen. Dies ist die Grundfunktion zum Alislesen eines Wortes ans dem virtiieMen Snpicher. DBS
Wort wird aus dem Hilfsspeicher oder aus dem -Ή Hauptspeicher ausgelesen, wie oben beschrieben. Es
wird eine Auslesezugriffszulässigkeitsprüfung durchgeführt und das Wort wird, wenn diese Prüfung erfolgreich
ist, in die Verarbeitungseinheit geführt.
RJ
Auslesesprungbestimmung. Diese Funktion wird zur Einleitung einer Änderung der Instruktionsfolge verwendet.
Die Funktion bewirkt, daß ein Wort aus dem virtuellen Speicher wie in RVausgelesen wird. Es wird
in eine Ausführungszugriffszulässigkeitsprüfung durchgeführt
und das Wort, wenn diese Prüfung erfolgreich ist, sowohl der Verarbeitungseinheit als auch dem Scheduler
als die Sprungbestimmungsinstruktion zugeführt. Die virtuelle Adresse des Wortes wird in den Scheduler
π als die Sprungadresse eingeführt.
Eine vollständige Liste von Nicht-Vorausschau-Funktionen ist nicht aufgeführt, da sie für das Verständnis der
Erfindung nicht wesentlich ist. Es sei jedoch darauf hingewiesen, daß andere solche Funktionen Schreiben
funktionen wie auch Lesefunktionen enthalten, und einige dieser Funktionen eine echte Adressierung an
Stelle einer virtuellen Adressierung umfassen.
Nachstehend werden die Funktionen angegeben, die durch die Verarbeitungseinheit erzeugt werden und die
j "> zu einer Vorausschau führen.
RVLi
Virtuelles Auslesen mit Vorausschau (ein Wort). Diese Funktion dient zum Auslesen eines Ausdruckes
-><> einer Folge von Einzelwortausdrücken, die wahrscheinlich
an benachbarten Adressen auftreten, von denen jedoch nicht bekannt ist, ob sie in aufsteigender oder
absteigender Folge vorliegen. Dies ist ähnlich der R V-Funktion, kann jedoch eine Vorausschaufunktion
enthalten, die weiter unten beschrieben wird.
RVL2
Virtuelles Auslesen mit Vorausschau (Doppelwort). Diese Funktion dient zum Auslesen des höher
adressierten Wortes eines Ausdruckes einer Folge von Doppelwortausdrücken, die an aufeinanderfolgenden
Adressen vorhanden sind (in absteigender oder aufsteigender Reihenfolge). Dies ist ähnlich RVLI.
jedoch mit einer unterschiedlichen Vorausschauaktion.
" RVM
Virtuelles Auslesen, Mehrfachwort. Diese Funktion
dient zur Verwendung dort, wo eine Folge vor
Lesezugriffen in einer aufsteigenden Reihe von fortschreitenden Adressen vorgenommen werden.
Grundsätzlich ist diese Funktion ähnlich RV, enthält jedoch eine Vorausschau.
R VMF
Virtuelles Les^n, Mehrfachwort, zuerst. Diese Funktion
dient zum Vorbereiten des Datenhilfsspeichers für eine Folge von ffVM-Funktionen. Grundsätzlich ist
diese Funktion die gleiche wie RVM, mit der Ausnahme, daß sie eint· doppelte Vorausschau-Funktion darstellt.
R/L
Lesesprungbestimmung mit Vorausschau. Diese ist grundsätzlich die gleiche wie RJ, kann jedoch eine
Vorausschau enthalten.
Im Falle eines Speicherzugriffsbefehles aus dem Scheduler in SAU wird die folgende Funktion
durchgeführt:
RVLS
Virtuelles Lesen mit Vorausschau; Scheduler. Diese Funktion wird von dem Scheduler verwendet, um
Instruktionen zur Ausführung vorab zu rufen. Sie kann nicht durch die Verarbeitungseinheit erzeugt werden.
Ein Wort wird aus dem virtuellen Speicher ausgelesen, wie in RV, in diesem Fall jedoch wird eine
AusführungszugriffszulässigkeitsprUfung durchgeführt. Ist die Prüfung erfolgreich, wird das Wort in den
Scheduler zurückgeführt. Daran kann sich eine Vorausschau-Funktion anschließen.
Die Vorausschau-Funktion kann deshalb nur durch
sechs unterschiedliche Funktionen angerufen werden, von denen fünf aus der Verarbeitungseinheit und eine
aus dem Scheduler kommen.
In allen Fällen umfaßt die Vorausschau-Funktion einen Test, um zu bestimmen, ob das Vorausschau-Wortpaar
(d. h. das nächstmögliche Wortpaar in der Foige) im Hiiisspeicher vorhanden ist. ist es dort nicht
vorhanden, wird dieses Wortpaar aus dem Hauptspeicher abgerufen und in den Hilfsspeicher eingeführt. Im
Falle von R VMF wird das nächste, mögliche Wortpaar wieder geprüft und abgerufen, falls dies erforderlich ist.
Die Funktionen RVM und RVMFwerden, wie oben
erwähnt, verwendet, um Folgen von Daten bei aufsteigenden Adressen auszulesen, während die Funktionen
R/L und RVLS verwendet werden, um Instruktionen auszulesen, von denen angenommen wird,
daß sie in aufsteigender Folge gespeichert sind. Deshalb erfol"t die Vorausschau-Funktion für diese vier
Funktionen stets in der Vorwärtsrichtung.
Die Funktionen RVLX und RVL2 andererseits
dienen zum Auslesen von Folgen, bei denen nicht bekannt ist, ob die Adressen aufsteigend oder
absteigend sind. Die Vorausschau für diese Funktionen schließt deshalb eine Entscheidung mit ein, mit der die
wahrscheinliche Richtung der Folge festgelegt wird. Die
erste Vorausschau einer Folge kann auf diese Weise in der falschen Richtung erfolgen und somit urpsonst sein,
anschließende Zugriffe haben jedoch dann die korrekte Vorausschau.
Wenn einmal eine Vorausschaufunkiion festgelegt worden ist, erhält sie eine höhere Priorität als eine neue
Funktionsanfrage.
Vorausschaulogik
Nach Fig. 2 wt-ist die Speicherzugriffseinheit eine logische Vorausschauschaltung 26 auf, die die Vorausschaufunktion
steuert. Diese Schaltung steuert die Arbeitsweise einer Addierschaltung 27, die die acht Bits
4Z? 22—29 geringster Bedeutung des Adressenregisters
um 0, +2, —2, +4 oder —4 anheben kann, so daß die Adresse des Vorausschauwortpaares erzeugt wird. Die
erhöhte Adresse kann in das Adressenregister über den Multiplexer 20 eingeschrieben werden. Wenn ein
Überlauf aus dieser Addition eintritt, der anzeigt, daß die Grenze einer 256 Worte umfassenden Seite
gekreuzt worden ist, wird die Vorausschaufunktion aufgehoben. Somit kann keine Vorausschau an den
Grenzen von Seiten erfolgen.
In F i g. 3 weist die logische Vorausschauschaltung drei Verriegelungen (bistabile Schaltungen) 30-32 und
einen Satz von UND-Gliedern 40-53 auf.
Die logische Schaltung nimmt Eingangssignal RVL 1, RVL2, RVM, RVMF, R/L und RVLS während
der anfänglichen Zugriffsfolgen dieser Funktionen auf und kann eines von fünf Zuwachssignalen 0, + 2, - 2, + 4
und —4 erzeugen. Diese Zuwachssignale werden der Addierschaltung 27 (Fig. 2) aufgegeben, so daß die
Adresse im Adressenregister um den entsprechenden Betrag erhöht wird.
Am Ende einer jeden Anfangszugriffsfolge werden die Zustände der Verriegelungen 30, 31 geprüft. Wenn
die Verriegelung 30 gesetzt wird, wird eine weitere Folge, die als DOLA (Vorausschauen)-Folge bezeichnet
wird, eingeführt, während dann, wenn die Verriegelung 31 gesetzt wird, eine Folge, die als TRYLA (Versuch
einer Vorausschau)-Folge bezeichnet wird, eingeführt wird. Am Ende einer jeden TRYLA-Folge werden die
Verriegelungen 31 wieder geprüft, und wenn die Verriegelung 30 gesetzt ist, wird eine DOLA-Folge
eingeleitet, während dann, wenn die Verriegelung 31 gesetzt wird, eine andere TRYLA-Folge eingeleitet
wird. Am Ende einer jeden DOLA-Folge wird die Verriegelung 31 geprüft und, wenn sie gesetzt wird, wird
eine TRYLA-Folge eingeleitet.
Die Verriegelung 30 wird während einer jeden anfänglichen Zugrifistoige und piner TRYLA-Foige
getaktet. Die Verriegelung 31 wird normalerweise nur während der anfänglichen Zugriffsfolge getaktet, wird
jedoch im Falle einer R VMF- Funktion auch während der DOLA- und TRYLA-Folgen getaktet. Die Verriegelung
32 wird nur während der TRYLA-Folgen getaktet.
Die Arbeitsweise der Vorausschaulogik ist grundsätzlich folgende: Während der Anfangszugriffsfolge wird,
wenn die Logik feststellt, daß das Vorausschau-Wortpaar im gleichen Vier-Wort-Abschnitt des Speichers
wie das laufend adressierte Wort ist, das entsprechende
·*"*--! ——[- — — - — - o O~l —
Wenn das Wortpaar nicht gültig ist (d. h. eines oder
beide Wörter nicht gültig sind), wird ein Signal der Verriegelung 30 aufgegeben, das bewirkt, daß die
Verklinkung gesetzt wird, wenn sie getaktet ist Eine DOLA-Folge schließt sich somit an.
In der DOLA-Folge wird die erhöhte Adresse aus der Addierschaltung 27 (die die Adresse des Vorausschau-Wortpaares
darstellt) in das Adressenregister 21 getaktet, und es wird dann ein Hauptspeicherzugriff
vorgenommen, um das Vorausschau-Wortpaar abzurufen und es in den Hilfsspeicher einzuführen. Andererseits
wird während der Anfangszugriffsfolge, wenn die Logik feststellt, daß das Vorausschau-Wortpaar in
einem anderen Vier-Wort-Abschnitt des Speichers in
Il
Hinblick auf das laufend adressierte Wort vorhanden ist, ein Signal der Verriegelung 31 aufgegeben, das bewirkt,
'aß die Verriegelung gesetzt wird, wenn sie getaktet ist. Deshalb schließt sich eine TRYLA-Folge an.
In der TRYLA-Folge wird die Adresse des Vorausschau-Wortpaares in das Adressenregister getaktet, so
daß die entsprechende Zelle des Hilfsspeichers adressiert wird. Gleichzeitig wird ein Signal einem Eingang
des UND-Gliedes 40 aufgegeben. Wenn das adressierte Wortpaar im Hilfsspeicher nicht gültig ist (d. h. A WPV
= 0), wird dieses Gatter wirksam gemacht, wodurch ein NULL-Zuwachssignal erzeugt und eine Eingabe der
Verriegelung 30 aufgegeben wird, wodurch die Verriegelung gesetzt 'v'.rd, wenn sie getaktet ist. Es schließt
sich deshalb eine DOLA-Folge an, damit das Vorausschau-Wortpaar abgerufen wird, wie vorstehend beschrieben.
Es ergibt sich somit, daß die Vorausschau-Logik stets
prült, ob das Vorausschau-Wortpaar im Hillsspeicher vorhanden ist· ist es nicht vorhanden, wird eine
DOLA-Folge eingeleitet, damit das Wortpaar aus dem Hauptspeicher abgerufen wird. Wenn das Vorausschau-Wortpaar
im gleichen Vier-Wort-Abschnitt wie das anfänglich adressierte Wort sich befindet, kann die
Prüfung unmittelbar vorgenommen werden, da der Zugriff zur entsprechenden Zelle des Hilfsspeichers
bereits erfolgt. Wenn andererseits das Vorausschau-Wortpaar in einem anderen Vier-Wort-Abschnitt
vorhanden ist, kann die Prüfung nicht unmittelbar
vorgenommen werden, so daß eine TRYLA-Folge eingeleitet wird, in der ein Zugriff zur entsprechenden
Zelle des Hilfsspeichers vorgenommen wird. Die einzige Ausnahme hierbei ist die R VMF- Funktion, wie weiter
unten noch erläutert wird.
Die Arbeitsweise der Vorausschaulogik wird nachstehend im einzelnen für jede Vorausschaufunktion der
Reihe nach in Verbindung mit F i g. 3 beschrieben. Zweckmäßigerweise werden die vier Wörter in der
Zelle, die während der Anfangszugriffsfolge adressiert werden, als Wörter 0 bis 3 bezeichnet, während die
Wörter in den Zellen, die den beiden aufeinanderfolgen-Diese Vorgänge werden nachstehend in einer Tabelle
zusammengestellt:
■I/J28, 2M OWPV Glied Erhöhung Folge
41
49
49
+ 2
+ 2
DOLA
TRYLA
TRYLA
RVLX
Wie vorstehend erwähnt, wird diese Funktion vei wendet, wenn nicht bekannt ist, ob die Folge von
Adressen aufsteigend oder absteigend ist. Eine Prüfung ist deshalb in diese Funktion eingeschlossen, um die
wahrscheinliche Richtung der Folge auf der Basis der verfügbaren Evidenz zu bestimmen. Wenn beispielsweise
das Wort 0 adressiert ist und das Wortpaar 2,3 gültig ist, wird angenommen, daß die Folge absteigend ist,
während dann, wenn das Wortpaar 2, 3 nicht gültig ist, die Folge als aufsteigend angenommen wird.
Die Vorausschau dieser Funktion wird in der folgenden Tabelle zusammengefaßt:
.-10 28. 29 | OWPV | Glied | Erhöhung | Folge |
0 | 1 | 46 | -2 | TRYLA |
1 | 0 | 41 | + 2 | DOLA |
2 | 0 | 44 | -2 | DOLA |
τ, | I | 48 | +2 | TRYLA |
RVL2
Diese Funktion umfaßt eine Prüfung in bezug auf die wahrscheinliche Richtung der Folge. Die Prüfung trägt
der Tatsache Rechnung, daß das anfangs adressierte Wort als das höher adressieno Wort eines Doppelwortausdruckes
angenommen wird.
Die folgende Tabelle zeigt die Vorausschau dieser
ibii Uta
ι uiirvtiwti
sind, als Wörter —4 bis —1 und 4—7 bezeichnet sind.
RJL
Für diese Funktion ist keine Vorausschau notwendig, wenn das adressierte Wort 0 oder 2 ist, da das nächste
Wort in der (aufsteigend angenommenen) Folge bereits im Hilfsspeicher vorhanden ist.
Wenn das Wort 1 adressiert wird (d.h. AD28 = 0,
AD 29 = 1), und wenn das Wortpaar 2,3 nicht gültig ist
(d.h. OWPV = 0\ wird das UND-Glied 41 wirksam
gemacht Dies erzeugt ein +2-Signal und setzt auch die Verriegelung 30. Somit wird eine DOLA-Folge eingeleitet,
in der das Adressenregister um +2 erhöht wird und auf Wort 3 hinweist Das Wortpaar 2, 3 wird auf diese
Weise aus dem Hauptspeicher abgerufen.
Wenn das Wort 3 adressiert wird, wird das UND-Glied 49 wirksam gemacht, es wird +2 erzeugt
und die Verriegelung 31 gesetzt Auf diese Weise wird eine TRYLA-Folge eingeleitet in der das Adressenregister
um + 2 erhöht wird, so daß es auf Wort 5 weist (d. h. das zweite Wort in der nächsten Zelle). Wenn das
Wortpaar 4, 5 nicht gültig ist, wird das UND-Glied 40 wirksam gemacht und die Verriegelung 30 eingestellt
Somit wird eine DOLA-Folge eingeleitet, damit dieses Wortpaar aus dem Hauptspeicher abgerufen wird.
AD 28, 29 | OWPV | Glied | Erhöhung | Folge |
0 | 0 | 42 | +2 | DOLA |
0 | 1 | 53 | -4 | TRYLA |
1 | 0 | 42 | +2 | DOLA |
1 | 1 | 47 | -2 | TRYLA |
2 | - | 50 | +2 | TRYLA |
3 | 0 | 45 | -2 | no L a |
3 | 1 | 48 | +2 | TRYLA |
RVLS
Da diese Funktion sich nur mit aufsteigenden Folgen befaßt, ist keine Vorausschau notwendig, wenn das
Wort 0 oder 2 adressiert wird.
Die Vorausschau-Funktion ist folgende:
AD 28, 29 | owpv | Glied | Erhöhung | Folge |
0 | _ | _ | ||
1 | 0 | 41 | +2 | DOLA |
2 | - | — | _ | _ |
3 | - | 49 | +2 | TRYLA |
R VM
Diese Funktion leitet stets eine TRYLA-Folge ein, wobei die Adresse um +4 erhöht wird.
RVMF
Diese Funktion macht das UND-Glied 52 wirksam und ergibt eine TRYLA-Folge, wobei die Adresse um
+ 2 erhöht wird. Während der TRYLA-Folge wird die Verriegelung 32 getaktet und damit gesetzt, so daß
RVMFi nunmehr »echt« ist.
Während der TRYLA-Folge wird, wenn das adressierte Wortpaar (d. h. das Wortpaar an der erhöhten
Adresse) nicht gültig ist, das UND-Glied 40 wirksam gemacht, und es wird eine DOLA-Folge eingeleitet, um
dieses Wortpaar abzurufen. Während der DOLA-Folge wird das UND-Glied 51 wirksam gemacht und dies
ergibt eine zweite TRYLA-Folge, wobei die Adresse weiter um + 2 erhöht wird. Andererseits wird, wenn das
adressierte Wortpaar während der ersten TRYLA-Folge gültig ist, das UND-Glied 51 wirksam gemacht, und
die zweite TRYLA-Folge beginnt unmittelbar anschließend daran, ohne daß eine DOLA-Folge zwischengeschaltet wird.
Während der zweiten TRYLA-Folge wird, wenn das adressierte Wortpaar (d. h. das Wortpaar an der
zweifach erhöhten Adresse) nicht gültig ist, das UND-Glied wirksam gemacht, wodurch eine DOLA-Folge eingeleitet wird, um dieses Wortpaar abzurufen.
Die Verriegelung wird wieder während dieser zweiten TRYLA-Folge getaktet, und die Verriegelung
32 wird rückgesetzt, da RVMF nun in »falsch« umgewandelt worden ist
Zusammenfassend ergibt sich, daß die R VMF-Funktion gewährleistet, daß zwei Vorausschau-Wortpaare
im Hilfsspeicher vorhanden sind. Wenn beispielsweise
der Anfangszugriff bei Wort 2 erfolgt, prüft die Vorausschau, ob die Wortpaare 4, 5 und 6, 7 ebenfalls
vorhanden sind, und wenn eines von beiden nicht
vorhanden ist, wird dieses Paar aus dem Hauptspeicher
abgerufen.
ι In F i g. 4 ist die Folgesteuerlogik zur Steuerung der
verschiedenen Folgen, die von der Speicherzugriffseinheit durchgeführt werden, gezeigt
Drei Schieberegister 51 —53 sind zur Steuerung der Anfangszugriffsfolge, der DOLA-FoI^e und TRYLA-
Folgen vorgesehen. Wenn eine dieser Folgen angefor
dert wird, wird eine binäre »1« in das linke Ende des entsprechenden Registers eingeführt, und diese »1«
wird dann längs des rechten Endes des Registers getaktet, indem eine Serie von Steuersignalen für die
i) Speicherzugriffseinheit erzeugt werden. Wenn die »1«
das rechte Ende des Registers erreicht hat, leitet sie eine
eingeleitet wird, und zwar wie folgt:
2« Verriegelung 30 gesetzt ist, das UND-Glied 64 wirksam
gemacht und bewirkt, daß eine »1« in das linke Ende des
DOLA-Registers 52 eingeführt wird und somit eine DOLA-Folge eingeleitet wird. Wenn andererseits die
Klinke 31 gesetzt wird, wird das UND-Glied 61 wirksam
2> gemacht und bewirkt, daß eine »1« in das TRYLA-Register 53 eingeführt und somit eine TRYLA-Folge
eingeleitet wird.
Am Ende einer DOLA-Folge wird, wenn die Verriegelung 31 gesetzt ist, daß UND-Glied 63 wirksam
jo gemacht, und damit eine TRYLA-Folge eingeleitet
Am Ende einer TRYLA-Folge wird, wenn die Verriegelung 30 gesetzt ist, das UND-Glied 65 wirksam
gemacht, so daß eine DOLA-Folge eingeleitet wird, während dann, wenn die Verriegelung 31 gesetzt ist, das
j*i UND-Glied 62 wirksam gemacht und damit eine
TRYLA-Folge eingeleitet wird.
Wenn alle Folgen abgeschlossen sind, kann eine neue
Funktion eingeleitet werden, indem eine »1« in das linke Ende des Registers 51 eingeführt wird, so daß eine neue
4Ii Anfangszugriffsfolge gestartet wird.
Claims (1)
- Patentanspruch:Datenspeichereinrichtung mit einem Hauptspeicher, einem Hüfsspeicher geringerer Größe, aber s mit schnellerem Zugriff als dem des Hauptspeichers, mit einem Adressenregister, das die Adresse der Wortstelle, zu der zugegriffen werden soll, speichert, mit Speicheradressenschaltungen, die prüfen, ob der Inhalt der von der Adresse im Adressenregister spezifizierten Wortstelle durch ein Gültigkeitsbit als gültig markiert ist, und — wenn dies nicht der Fall ist — das Wort vom Hauptspeicher in den Hilfsspeicher einführen, und mit einer Vorausschaulogik zum Einführen von Datenwörtern aus dem Hauptspeieher in den Hilfsspeicher, bevor sie erforderlich werden, dadurch gekennzeichnet, daßa) die Vorausschaulogik (26) mit einer Abfrageeinrichtung ausgestattet ist, die im Hilfsspeicher (23) die benachbarten Wertstellen derjenigen Wortstelle auf Vorliegen eines Gültigkeitsbits prüft, die durch die laufende Adresse im Adressenregister (21) angegeben ist, wobei jede Wortstelle im Hilfsspeicher ein Gültigkeitsbit besitzt, das gesetzt wird, wenn Daten in die Wortstelle eingeschrieben werden, und das rückgesetzt wird, wenn die Daten nicht mehr gültig sind;b) beim Auffinden von Wortstellen, deren Inhalt als gültig <n Richtung höherer Adressen oder als ungültig in Richtung niedrigerer Adressen markiert sind, der Inhalt des Adressenregisters (21) verringert wird, oöer beim Auffinden von Wortstellen, deren Inhah als ungültig in Richtung höherer Adressen oder als gültig in Richtung niedrigerer Adressen markiert sind, der Inhalt des Adressenregisters (21) erhöht wird, undc) der erhöhte oder verringerte Inhalt des Adressenregisters (21) verwendet wird, um entsprechende Wörter aus dem Hauptspeicher (10) in den Hilfsspeicher (23) abzurufen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB28800/75A GB1515376A (en) | 1975-07-09 | 1975-07-09 | Data storage systems |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2630323A1 DE2630323A1 (de) | 1977-02-03 |
DE2630323B2 DE2630323B2 (de) | 1979-02-01 |
DE2630323C3 true DE2630323C3 (de) | 1979-09-20 |
Family
ID=10281386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2630323A Expired DE2630323C3 (de) | 1975-07-09 | 1976-07-06 | Datenspeichereinrichtung mit einem Hauptspeicher, einem HilfsSpeicher und einer Vorausschaulogik |
Country Status (11)
Country | Link |
---|---|
US (1) | US4086629A (de) |
JP (1) | JPS5210639A (de) |
AU (1) | AU497095B2 (de) |
CS (1) | CS222228B2 (de) |
DE (1) | DE2630323C3 (de) |
FR (1) | FR2317731A1 (de) |
GB (1) | GB1515376A (de) |
HU (1) | HU175243B (de) |
NL (1) | NL181150C (de) |
SE (1) | SE416500B (de) |
ZA (1) | ZA763978B (de) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4247893A (en) * | 1977-01-03 | 1981-01-27 | Motorola, Inc. | Memory interface device with processing capability |
JPS54112130A (en) * | 1978-02-22 | 1979-09-01 | Fujitsu Ltd | Buffer memory transfer system |
FR2431732A1 (fr) * | 1978-07-19 | 1980-02-15 | Materiel Telephonique | Dispositif de conversion d'adresse virtuelle en adresse reelle |
FR2437300A1 (fr) * | 1978-09-26 | 1980-04-25 | Cii Honeywell Bull | Procede de detection anticipee de franchissement de limite de page et dispositif comportant application de ce procede |
JPS5560601U (de) * | 1978-10-20 | 1980-04-24 | ||
GB2052117B (en) * | 1979-07-04 | 1982-10-20 | Int Computers Ltd | Data processing systems |
USRE36989E (en) * | 1979-10-18 | 2000-12-12 | Storage Technology Corporation | Virtual storage system and method |
US4371924A (en) * | 1979-11-09 | 1983-02-01 | Rockwell International Corp. | Computer system apparatus for prefetching data requested by a peripheral device from memory |
US4467411A (en) * | 1981-03-06 | 1984-08-21 | International Business Machines Corporation | Scheduling device operations in a buffered peripheral subsystem |
JPS57164484A (en) * | 1981-03-31 | 1982-10-09 | Fujitsu Ltd | Replace system |
US4489378A (en) * | 1981-06-05 | 1984-12-18 | International Business Machines Corporation | Automatic adjustment of the quantity of prefetch data in a disk cache operation |
US4490782A (en) * | 1981-06-05 | 1984-12-25 | International Business Machines Corporation | I/O Storage controller cache system with prefetch determined by requested record's position within data block |
US4468730A (en) * | 1981-11-27 | 1984-08-28 | Storage Technology Corporation | Detection of sequential data stream for improvements in cache data storage |
JPS6047623B2 (ja) * | 1982-02-12 | 1985-10-22 | 株式会社日立製作所 | アドレス変換方式 |
JPS58149552A (ja) * | 1982-03-02 | 1983-09-05 | Fujitsu Ltd | 仮想計算機システムにおけるマスストレ−ジのプレステ−ジ方式 |
JPS59218691A (ja) * | 1983-05-27 | 1984-12-08 | Fujitsu Ltd | プリフエツチ方式 |
DE3477616D1 (en) * | 1983-09-12 | 1989-05-11 | Motorola Inc | Prefetch validation |
JPS60138653A (ja) * | 1983-12-27 | 1985-07-23 | Hitachi Ltd | 階層記憶制御方式 |
US4873629A (en) * | 1984-06-20 | 1989-10-10 | Convex Computer Corporation | Instruction processing unit for computer |
JPH0731627B2 (ja) * | 1985-08-10 | 1995-04-10 | 株式会社リコー | メモリ−装置 |
US4803651A (en) * | 1986-02-10 | 1989-02-07 | Ibm Corporation | Method for encoding and decoding acyclic, linked-list data structures for efficient storage, retrieval and searching |
SE453617B (sv) * | 1986-06-26 | 1988-02-15 | Ellemtel Utvecklings Ab | Sett och anordning for att i en dator bestemma vilka av programmen som far utnyttja ett snabbt minne |
US4928239A (en) * | 1986-06-27 | 1990-05-22 | Hewlett-Packard Company | Cache memory with variable fetch and replacement schemes |
GB8814077D0 (en) * | 1988-06-14 | 1988-07-20 | Int Computers Ltd | Data memory system |
US5093777A (en) * | 1989-06-12 | 1992-03-03 | Bull Hn Information Systems Inc. | Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack |
JPH0452741A (ja) * | 1990-06-14 | 1992-02-20 | Toshiba Corp | キャッシュメモリ装置 |
AU634354B2 (en) * | 1990-08-31 | 1993-02-18 | Sun Microsystems, Inc. | Method and apparatus for predictive caching |
US5594885A (en) * | 1991-03-05 | 1997-01-14 | Zitel Corporation | Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry |
WO1992015933A1 (en) * | 1991-03-05 | 1992-09-17 | Zitel Corporation | Cache memory system and method of operating the cache memory system |
US5590300A (en) * | 1991-03-05 | 1996-12-31 | Zitel Corporation | Cache memory utilizing address translation table |
US5371893A (en) * | 1991-12-27 | 1994-12-06 | International Business Machines Corporation | Look-ahead priority arbitration system and method |
US5485589A (en) * | 1991-12-31 | 1996-01-16 | Dell Usa, L.P. | Predictive addressing architecture |
US5659713A (en) * | 1992-04-24 | 1997-08-19 | Digital Equipment Corporation | Memory stream buffer with variable-size prefetch depending on memory interleaving configuration |
JP3005402B2 (ja) * | 1993-09-29 | 2000-01-31 | 三洋電機株式会社 | Romの読出切換回路 |
JP3096576B2 (ja) * | 1994-07-29 | 2000-10-10 | 三洋電機株式会社 | メモリ制御回路とその回路を内蔵した集積回路素子 |
US5926831A (en) * | 1996-10-11 | 1999-07-20 | International Business Machines Corporation | Methods and apparatus for control of speculative memory accesses |
US6658526B2 (en) | 1997-03-12 | 2003-12-02 | Storage Technology Corporation | Network attached virtual data storage subsystem |
EP1008051A4 (de) | 1997-03-12 | 2007-04-25 | Storage Technology Corp | Netzwerkangehängtes virtuelles banddaten-speicheruntersystem |
US5933855A (en) | 1997-03-21 | 1999-08-03 | Rubinstein; Richard | Shared, reconfigurable memory architectures for digital signal processing |
US6895452B1 (en) | 1997-06-04 | 2005-05-17 | Marger Johnson & Mccollom, P.C. | Tightly coupled and scalable memory and execution unit architecture |
WO1999060480A1 (en) * | 1998-05-15 | 1999-11-25 | Richard Rubinstein | Shared, reconfigurable cache memory execution subsystem |
US6094605A (en) * | 1998-07-06 | 2000-07-25 | Storage Technology Corporation | Virtual automated cartridge system |
US6330621B1 (en) | 1999-01-15 | 2001-12-11 | Storage Technology Corporation | Intelligent data storage manager |
US6834324B1 (en) | 2000-04-10 | 2004-12-21 | Storage Technology Corporation | System and method for virtual tape volumes |
US20030126132A1 (en) * | 2001-12-27 | 2003-07-03 | Kavuri Ravi K. | Virtual volume management system and method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3292153A (en) * | 1962-10-01 | 1966-12-13 | Burroughs Corp | Memory system |
US3533075A (en) * | 1967-10-19 | 1970-10-06 | Ibm | Dynamic address translation unit with look-ahead |
US3898624A (en) * | 1973-06-14 | 1975-08-05 | Amdahl Corp | Data processing system with variable prefetch and replacement algorithms |
GB1443777A (en) * | 1973-07-19 | 1976-07-28 | Int Computers Ltd | Data processing apparatus |
JPS5039427A (de) * | 1973-08-10 | 1975-04-11 | ||
US3928857A (en) * | 1973-08-30 | 1975-12-23 | Ibm | Instruction fetch apparatus with combined look-ahead and look-behind capability |
FR111576A (de) * | 1973-12-13 | 1900-01-01 |
-
1975
- 1975-07-09 GB GB28800/75A patent/GB1515376A/en not_active Expired
-
1976
- 1976-06-28 US US05/700,720 patent/US4086629A/en not_active Expired - Lifetime
- 1976-07-05 AU AU15570/76A patent/AU497095B2/en not_active Expired
- 1976-07-05 ZA ZA763978A patent/ZA763978B/xx unknown
- 1976-07-06 DE DE2630323A patent/DE2630323C3/de not_active Expired
- 1976-07-06 FR FR7620667A patent/FR2317731A1/fr active Granted
- 1976-07-07 NL NLAANVRAGE7607479,A patent/NL181150C/xx not_active IP Right Cessation
- 1976-07-07 JP JP51079983A patent/JPS5210639A/ja active Granted
- 1976-07-07 HU HU76IE749A patent/HU175243B/hu unknown
- 1976-07-08 CS CS764535A patent/CS222228B2/cs unknown
- 1976-07-08 SE SE7607814A patent/SE416500B/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
ZA763978B (en) | 1977-05-25 |
DE2630323B2 (de) | 1979-02-01 |
SE7607814L (sv) | 1977-01-10 |
NL181150C (nl) | 1987-06-16 |
AU497095B2 (en) | 1978-11-30 |
HU175243B (hu) | 1980-06-28 |
DE2630323A1 (de) | 1977-02-03 |
CS222228B2 (en) | 1983-05-27 |
JPS5651429B2 (de) | 1981-12-05 |
GB1515376A (en) | 1978-06-21 |
AU1557076A (en) | 1978-01-12 |
JPS5210639A (en) | 1977-01-27 |
FR2317731B1 (de) | 1982-09-03 |
NL181150B (nl) | 1987-01-16 |
FR2317731A1 (fr) | 1977-02-04 |
US4086629A (en) | 1978-04-25 |
NL7607479A (nl) | 1977-01-11 |
SE416500B (sv) | 1981-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2630323C3 (de) | Datenspeichereinrichtung mit einem Hauptspeicher, einem HilfsSpeicher und einer Vorausschaulogik | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE69133302T2 (de) | Registerabbildung in einem einzigen Taktzyklus | |
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE3151745C2 (de) | ||
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE2241257B2 (de) | Datenverarbeitende Anlage | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE3781794T2 (de) | Vorrichtung und verfahren zum versehen eines cachespeichers mit einer schreiboperation mit zwei systemtaktzyklen. | |
DE2523414B2 (de) | Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen | |
DE4019135A1 (de) | Serieller speicher auf ram-basis mit parallelem voraus-lesen | |
DE2746505C2 (de) | ||
DE2023354A1 (de) | Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit | |
DE69522426T2 (de) | Wort-Wiederauffindungsapparat für ein Wörterbuch | |
DE3900246C2 (de) | ||
DE69618831T2 (de) | ECC-geschützte Speicherorganisation mit Lese-Änderungs-Schreib-Pipelinezugriff | |
DE19824289A1 (de) | Pipelineverarbeitungsmaschine | |
DE3107568A1 (de) | Datenverarbeitungseinrichtung | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE68928782T2 (de) | Datenverwaltungssystem | |
DE2710436C2 (de) | Datenverarbeitungseinrichtung | |
DE2610428A1 (de) | Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher | |
DE2355814C2 (de) | Kanalzugriffseinrichtung für eine hierarchische Speicheranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |