DE4022885A1 - Verfahren zum neuadressieren eines speichers und speichersystem mit einer rangordnung - Google Patents
Verfahren zum neuadressieren eines speichers und speichersystem mit einer rangordnungInfo
- Publication number
- DE4022885A1 DE4022885A1 DE4022885A DE4022885A DE4022885A1 DE 4022885 A1 DE4022885 A1 DE 4022885A1 DE 4022885 A DE4022885 A DE 4022885A DE 4022885 A DE4022885 A DE 4022885A DE 4022885 A1 DE4022885 A1 DE 4022885A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- memory
- data
- block
- absolute
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die Erfindung betrifft einen Speicher für einen Computer, beispielsweise und
insbesondere ein Neuadressieren von in dem Speicher gespeicherten Daten.
Viele von existierenden großen Computern sind mit einer Übersetzungstabelle
ausgestattet, die FAR (relatives Adressenregister) genannt wird, zum Übersetzen
einer absoluten Adresse in eine physikalische Adresse, und können jede
vorbestimmte Teileinheit eines absoluten Adressenraums einem willkürlichen
physikalischen Speicherelement zuordnen. Dieses Merkmal ist beispielsweise zum
Beibehalten von Speichereinheiten nützlich. Im allgemeinen kann das FAR nur
geändert werden, während ein System nicht arbeitet.
Bis jetzt wären folgende Verfahren notwendig zum Verhindern irgendeines
Fehlbetriebs wenn man ein FAR ändern wollte, während das System arbeitet.
Zuerst wird ein Zugriff auf einen Speicher zeitweise gestoppt. Dann werden
physikalische Adressen geändert und Speicherdaten werden von alten physikalischen
Adressen zu neuen physikalischen Adressen übertragen, woraufhin ein Zugriff zu
dem Speicher neu gestartet wird.
Eine derartige frühere Technologie ist in der japanischen Patentveröffentlichung Nr.
21 222/1988 erklärt. Die Betriebsprinzipien eines unten beschriebenen Cachespeichers
sind herkömmlich und beispielsweise in der japanischen Patent-Offenlegungsschrift
Nr. 2 90 550/1986 beschrieben.
Bei dem voranstehenden Stand der Technik ist es während eines Bewegens der
gespeicherten Daten mit einem Ändern der physikalischen Adressen notwendig, den
Zugriff zu dem Speicher zu stoppen. Während jener Zeit würde daher der Betrieb
eines Gerätes, das den Speicher benutzt, gestoppt werden.
Es ist ein Problem bei einigen Arten von Geräten, daß die Antwortgeschwindigkeit
des Speichers aufgrund dieses Anhaltens erniedrigt werden würde.
Es ist daher eine Aufgabe dieser Erfindung, ein Verfahren zum Neuadressieren
eines Speichers und ein Speichersystem mit einer Rangordnung zu schaffen, das
eine Verringerung einer Anhaltezeit eines Speichers, während der Speicher neu
adressiert wird, und ein Minimieren des Erniedrigens der Anhaltegeschwindigkeit
bzw. der niedrigen Anhaltegeschwindigkeit ermöglicht.
Eine weitere Aufgabe der Erfindung ist es, ein Verfahren zum Neuadressieren
des Speichers und ein Speichersystem mit einer Rangordnung zu schaffen, das ein
Neuadressieren eines Hauptspeichers durch Regenerieren eines FAR ermöglicht,
und zwar während ein System arbeitet.
Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zum Neuadressieren
eines Speichers geschaffen, dem eine physikalische Adresse gegeben ist in einem
Speichersystem mit dem Speicher, einem Cachespeicher, der durch eine absolute
Adresse zum Erhalten einer Kopie eines Teils des Speichers verwaltet wird, einer
Adressenübersetzungseinrichtung zum Verbinden der absoluten Adresse mit einer
physikalischen Adresse, wobei das Verfahren aufweist: Holen des Inhaltes eines
physikalischen Bereichs des mit einem absoluten Zieladressenbereich verbundenen
Speichers in den Cachespeicher, um neu adressiert zu werden; nach dem Holen
Übersetzen der Verbindung der Adressenübersetzungseinrichtung, so daß der
absolute Adressenbereich mit einem neuen physikalischen Adressenbereich
verbunden ist; und darauffolgendes Schreiben des Inhalts, der in den Cachespeicher
geholt worden ist, zurück zu dem neuen physikalischen Adressenbereich, der
neu mit dem absoluten Adressenbereich assoziiert ist, unabhängig davon, ob der
Inhalt geändert worden ist oder nicht.
Gemäß einem zweiten Aspekt der Erfindung ist ein Verfahren geschaffen zum
Neuadressieren eines Speichers durch Benutzen eines Einspeicherungs-Cachespeicher
zum Halten einer Kopie des Inhalts des Speichers und einer Adressenübersetzungseinrichtung
zum Verbinden einer absoluten Adresse mit einer
physikalischen Adresse, wobei das Verfahren aufweist: Holen des Inhalts eines
Quellenspeichers, der neu zu adressieren ist, in einen Block des Cachespeichers;
nach dem Holen Halten einer Information, die anzeigt, daß der Inhalt des Blocks
des Cachespeichers verschieden ist von dem Inhalt des Speichers; und Ändern
einer Adressenverbindung der Adressenübersetzungseinrichtung, so daß eine absolute
Adresse, die mit einer physikalischen Adresse des Quellenbereichs verbunden ist,
mit einer physikalischen Adresse eines Bestimmungsbereichs des Speichers
verbunden ist, um neu adressiert zu werden.
Gemäß einem dritten Aspekt der Erfindung ist ein Verfahren geschaffen zum Neuadressieren
eines Speichers, während ein Speichersystem arbeitet, und zwar durch
Benutzen eines Einspeicherungs-Cachespeichers zum Halten einer Kopie des Inhalts
des Speichers und einer Adressenübersetzungseinrichtung zum Verbinden einer
absoluten Adresse mit einer physikalischen Adresse, wobei das Verfahren aufweist:
Holen von Daten aus einem Quellenbereich in den Speicher, der neu zu
adressieren ist, in den Cachespeicher, in Antwort auf eine Verschiebungs- bzw.
eine Neuadressierungsnachfrage von einem Hostgerät; und Ändern einer
Adressenverbindung der Adressenübersetzungseinrichtung, so daß die geholten
Speicherdaten in einem Bestimmungsbereich in dem Speicher zurückgeschrieben
werden.
Gemäß einem vierten Aspekt der Erfindung ist ein Speichersystem mit einer Rangordnung
geschaffen, das aufweist: einen Speicher; einen Einspeicherungs-Cachespeicher
zum Halten einer Kopie des Inhalts des Speichers in vielen Blöcken davon;
einer Adressenübersetzungseinrichtung zum Verbinden einer absoluten Adresse mit
einer physikalischen Adresse; einer Einrichtung zum Erzeugen einer Neuadressierungs-
bzw. Verschiebungsnachfrage, zusätzlich zu einer Holnachfrage und einer
Speichernachfrage an den Speicher, zum Holen von Daten eines Quellenbereichs
in dem Speicher, der neu zu adressieren ist, in einen Block des Cachespeichers
und zum Umwandeln eines Änderungsbits des Blocks in einen veränderten
Zustand; und einer Einrichtung zum Ändern einer Adressenverbindung der
Adressenübersetzungseinrichtung, so daß die geholten Speicherdaten in einen
Bestimmungsbereich in dem Speicher zurückgeschrieben werden.
Gemäß einem fünften Aspekt der Erfindung ist ein Speichersystem mit einer Rangordnung
geschaffen, das aufweist: einen Speicher; eine Adressenübersetzungseinrichtung
zum Verbinden einer absoluten Adresse und einer physikalischen Adresse
miteinander für jede vorbestimmte Teilspeichereinheit; einen Einspeicherungs-
Cachespeicher mit einer Datenfolge, die aus vielen Blöcken zum Speichern eines
Teils der in dem Speicher gespeicherten Daten zusammengesetzt ist, und einer
Änderungsbitfolge zum Speichern von Änderungsbits, wobei jedes zeigt, daß in
einem Block der Datenfolge gespeicherte Daten von Daten eines verbundenen
Teils des Speichers verschieden sind; eine Einrichtung zum Lesen aus dem
Speicher von Daten eines Bereichs des Speichers, der durch eine physikalische
Adresse bezeichnet ist, die einer bezeichneten absoluten Adresse entspricht, zum
Speichern der gelesenen Daten in einen Block des Cachespeichers und zum
Umwandeln des Inhalts der Änderungsbitfolge, entsprechend dem Block, in einen
Zustand, der anzeigt, daß die Daten des Blocks von dem Inhalt des Speichers
verschieden sind; und einer Einrichtung zum Steuern der
Adressenübersetzungseinrichtung, so daß die bezeichnete absolute Adresse mit einer
physikalischen Adresse eines Bestimmungsbereichs in dem Speicher verbunden ist,
um neu adressiert zu werden.
Gemäß einem sechsten Aspekt der Erfindung ist ein Speichersystem mit einer
Rangordnung geschaffen, das aufweist: einen Speicher; eine Adressenübersetzungstabelle
zum Verbinden einer absoluten Adresse mit einer physikalischen Adresse für jede
vorbestimmte Teilspeichereinheit; einen Einspeicherungs-Cachespeicher mit einer
Datenfolge, die aus vielen Blöcken zusammengesetzt ist, zum Speichern eines Teils
von in dem Speicher gespeicherten Daten und einer Änderungsbitfolge zum
Speichern von Änderungsbits, wobei jedes zeigt, daß in einem Block der
Datenfolge gespeicherte Daten verschieden sind von Daten eines verbundenen Teils
des Speichers, wobei die vorbestimmte Teilspeichereinheit größer als ein Block des
Cachespeichers ist; eine erste Adressenhalteeinrichtung zum Halten einer
physikalischen Adresseninformation eines Bestimmungsbereichs in dem Speicher,
um neu adressiert zu werden; eine zweite Adressenhalteeinrichtung zum Halten
einer absoluten Adresseninformation einer Ziel-Teilspeichereinheit, die neu zu
adressieren ist; eine dritte Adressenhalteeinrichtung zum Halten einer absoluten
Grenzadresse zwischen einem nicht neu adressierten Block und einem neu
adressierten Block; eine Grenzadressenaktualisierungseinrichtung zum Aktualisieren
von einem Adressenblock der dritten Adressenhalteeinrichtung für jede Blockneuadressierung;
eine erste Entscheidungseinrichtung zum Entscheiden, ob eine absolute
Adresse, auf die zuzugreifen ist, der Ziel-Teilspeichereinheit, die neu zu adressieren
ist, zugeteilt worden ist oder nicht; eine zweite Entscheidungseinrichtung zum
Entscheiden, welche größer oder kleiner ist, und zwar zwischen einer absoluten
Adresse, auf die zuzugreifen ist, und der absoluten Grenzadresse; eine Auswahleinrichtung
zum Auswählen, gemäß den Entscheidungsergebnissen der ersten und
zweiten Entscheidungseinheit, einer physikalischen Adresseninformation von der
Adressenübersetztabelle oder von der ersten Adressenhalteeinrichtung, um die
Ausgewählte zu dem Speicher zu geben; und eine Schreibeinrichtung zum
Schreiben des Inhalts der ersten Adressenhalteeinrichtung in einen entsprechenden
Teil der Adressenübersetztabelle, nachdem alle Blöcke in der Teilspeichereinheit
neu adressiert worden sind.
Hier, in dieser Beschreibung bedeutet der Ausdruck "absolute Adresse" eine
Adresse, die mit einer physikalischen Adresse eines Speichers durch die
Adressenübersetzungseinrichtung verbunden werden muß, d. h. das FAR, und die
beispielsweise in einem großen Computer durch Übersetzen einer virtuellen Adresse
mit einem bekannten dynamischen Adressenübersetzungsmechanismus zu erhalten
ist, um eine reale Adresse zu erhalten, und danach durch Durchführen einer
bekannten vorangestellten Übersetzung der realen Adresse. Bei einem System ohne
vorangestellte Übersetzung ist eine reale Adresse selbst eine absolute Adresse.
Im Betrieb ist der Cachespeicher ein Speicher geringer Qualität und mit hoher
Geschwindigkeit, der eine Kopie eines Teils eines Speichers (z. B. eines Hauptspeichers)
speichern kann, um eine effektive Geschwindigkeit eines Holens von und
eines Speicherns in den Speicher durch ein Hostgerät (z. B. eine zentrale
Prozeßeinheit) zu verbessern. Wenn ein Ziel, auf das zugegriffen werden soll,
während des Zugriffs des Speichers in dem Cachespeicher existiert, kann auf den
Cachespeicher anstelle des Speichers zugegriffen werden. Mit diesem Merkmal des
Cachespeichers ersonnen die Erfinder, daß durch Benutzen eines Cachespeichers
ein Verschieben eines Speichers durchgeführt werden kann, während das System
arbeitet. Insbesondere um die Speicherneuadressierung durchzuführen, werden Daten
des Bereichs physikalischer Adressen eines Ziels, die neu zu adressieren sind, in
einen Block des Cachespeichers geholt, und dann werden den absoluten Adressen,
denen die alten physikalischen Adressen zugeordnet worden sind, neue physikalische
Adressen des Speichers zugeordnet. Als Einrichtung zum Ändern dieser Zuordnung
von Adressen kann bisher eine Adressenübersetzungseinrichtung (z. B. das zuvorgenannte
FAR), die eine absolute Adresse mit einer physikalischen Adresse
verbindet, benutzt werden, um seinen Inhalt dynamisch zu ändern.
Da vor einem Ändern einer physikalischen Adresse die Daten in einem Quellenbereich,
der neu zu adressieren ist, nämlich Daten in dem Adressenbereich, der ein
Ziel zum Ändern der physikalischen Adressen ist, die zugeordnet werden müssen,
in bestimmte abslolute Adressen in den Cachespeicher geholt werden, ist das
Lesen/Schreiben der in dem Zieladressenbereich gespeicherten Daten erlaubt, der
neu adressiert werden muß, sogar während der Änderung der physikalischen Adresse,
und zwar durch Benutzen von Daten, die in dem Cachespeicher gespeichert
sind. Während des Verschiebens bzw. Neuadressierens ist es nicht nötig, ein
Lesen/Schreiben zu verbieten oder normale Prozesse zu verzögern. Um die Speicherneuadressierung zu beenden, ist es notwendig, die Zieldaten, die in einen
Block des Cachespeichers geholt sind, zurück in den Bestimmungsadressenbereich
des Speichers zu schreiben. Dieses Zurückschreiben kann gemäß einem Vertauschungsalgorithmus
des Cachespeichers durchgeführt werden, wenn der Block
gewählt worden ist, um ein Ziel für eine Vertauschung zu sein. Aus diesem Grund
ist es vorzuziehen, einen Einspeicherungs-Cachespeicher zu verwenden. Der
Einspeicherungs-Cachespeicher hat ein Änderungsbit in jedem Block, und zwar zum
Halten einer Information (die anzeigt, daß der Inhalt geändert worden ist) darüber,
ob der Inhalt eines Blocks verschieden ist von dem Inhalt eines Speichers oder
nicht. Beim Neuadressieren, wenn die Zieldaten in einem bestimmten Block geholt
sind, wird ein Änderungsbit, das mit einem Block verbunden ist, dazu veranlaßt,
in einem "geänderten" Zustand zu sein. Danach, wenn der Block ein Ziel für eine
Vertauschung ist, wird der Inhalt des Blocks automatisch in einen neuen
physikalischen Adressenbereich des Speichers zurückgeschrieben werden. Daher
endet ein Verschiebungsprozeß praktisch bei der Stufe, wo Daten in dem
Zieladressenbereich, der neu adressiert werden muß, in den Cachespeicher geholt
worden sind, um das Änderungsbit und die physikalischen Adressen zu ändern.
Eine aktive Übertragung von Daten von einem alten physikalischen Adressenbereich
zu einem neuen physikalischen Adressenbereich, der bei dem Stand der Technik
nötig war, wird nämlich nicht mehr nötig sein.
Wenn die Teilspeichereinheit, nämlich eine neuadressierbare Einheit, größer ist als
ein Block des Cachespeichers, werden die Inhalte vieler Blöcke in der Teilspeichereinheit
aufeinanderfolgend zu dem Cachespeicher übertragen. Beim
Übergang während dieser Neuadressierung ändert sich der physikalische Adressenbereich,
der damit zu verbinden ist, in Abhängigkeit davon, ob Zugriffsadressen zu
einem nicht neuadressierten Block oder einem neuadressierten Block zugeteilt
werden, auch wenn sie zu einer Teilspeichereinheit eines gemeinsamen absoluten
Adressenbereichs zugeteilt werden. Begleitet von einer Neuadressierung für jeden
Block, wird die Grenze absoluter Adressenbereiche vor und nach einer Neuadressierung
aufeinanderfolgend aktualisiert, und eine Entscheidung wird darüber
getroffen, auf welcher Seite der Grenze eine Zugriffsadresse angeordnet ist, und
eine alte physikalische Adresse oder eine neue physikalische Adresse wird
ausgewählt und gemäß diesem Entscheidungsergebnis ausgegeben. Als Folge davon
ist es möglich, die gesamte Teilspeichereinheit neu zu adressieren, auch wenn die
Teilspeichereinheit größer als die Blockkapazität des Cachespeichers ist.
Wie oben beschrieben ist, ist es gemäß dieser Erfindung möglich, mit den Daten,
die in den Cachespeicher geholt sind, in bezug auf den Bereich zu lesen/schreiben,
der neuadressiert ist, auch während eines Durchführens einer Verschiebung bzw.
Neuadressierung von in einem Hauptspeicher gespeicherten Daten. Daher wird,
verglichen mit dem Stand der Technik, weniger Zeit benötigt, während der der
Betrieb eines Programmlaufs für ein Neuadressieren gestoppt wird. Da die Daten,
die neuadressiert werden müssen, in einem Speichersystem mit einer Rangordnung
übertragen werden, ist zusätzlich die Verarbeitungszeit kurz. Da, verglichen mit
dem Stand der Technik, die Funktion eines Hostgeräts, das ein Speichersystem mit
einer Rangordnung benutzt, darüber hinaus nur weniger häufig benutzt wird für
das Übertragen von Daten, die neuadressiert werden müssen, wird dies nicht die
ursprüngliche Arbeit des Hostgeräts verhindern.
Sogar in einem Speicher, der eine Adressenfolge der Adressenübersetzungseinrichtung
benutzt, deren Zuordnungsadresseneinheit größer ist als die Kapazität eines
Cachespeicherblocks, ist eine Quantität der Hardware, die für die obigen Effekte
erfordert wird, kleiner verglichen mit dem Verfahren nach dem Stand der Technik,
wonach die Kapazität der Adresseneinheit erhöht wird, um die Größe der
Teilspeichereinheit zu verringern.
Weitere Vorteile, Merkmale und Anwendungsmöglichkeiten der vorliegenden
Erfindung ergeben sich aus den Unteransprüchen und aus der nachfolgenden
Beschreibung von Ausführungsbeispielen in Verbindung mit der Zeichnung.
Fig. 1 ist ein Blockdiagramm eines Speichersystems mit einer
Rangordnung gemäß einem ersten Ausführungsbeispiel dieser
Erfindung;
Fig. 2 ist ein Blockdiagramm eines weiteren Speichersystems mit einer
Rangordnung gemäß einem zweiten Ausführungsbeispiel;
Fig. 3 ist ein Diagramm, das die Beziehung zwischen einem absoluten
Adressenraum und einem physikalischen Adressenraum eines
Hauptspeichers bei dem ersten Ausführungsbeispiel zeigt;
Fig. 3B ist ein Diagramm ähnlich dem aus der Fig. 3A, das die Beziehung
zwischen einem absoluten Adressenraum und einem
physikalischen Adressenraum eines Hauptspeichers bei dem
zweiten Ausführungsbeispiel zeigt;
Fig. 4A bis 4D sind jeweils Flußdiagramme, die verschiedene Prozesse des ersten
Ausführungsbeispiels zeigen; und
Fig. 5A und 5B sind Flußdiagramme, die jeweils zwei Prozesse des zweiten
Ausführungsbeispiels zeigen.
Fig. 1 zeigt ein Speichersystem mit einer Rangordnung gemäß einem ersten
Ausführungsbeispiel dieser Erfindung. In der folgenden Beschreibung sind die
Parameter N, B und U natürliche Zahlen.
Das Speichersystem mit einer Rangordnung des ersten Ausführungsbeispiels weist
ein Adressenregister 1, ein Speicherflag 2, ein Neuadressierungsflag 3, ein Speicherdatenregister
4, ein Datenholregister 5, einen Einspeicherungs-Cachespeicher 20,
einen Adressenübersetzer 50 und einen Hauptspeicher 80 auf.
Das Adressenregister 1 ist ein N-Bit-Register zum Einstellen einer absoluten
Adresse des Ortes, von dem ein Wort gelesen wird oder in den ein Wort eingeschrieben
wird. Das Speichersystem mit einer Rangordnung kann drei Arten von
Anfragen beantworten, d. h. eine Holanfrage, eine Speicheranfrage und eine
Neuadressierungsanfrage; das Speicherflag 2 und das Verschiebungs- bzw.
Neuadressierungsflag 3 sind Flags zum Auswählen einer Anfrage aus den obigen
drei Anfragen. Das Speicherflag 2 ist "0" in den Fällen der Holanfrage und der
Speicheranfrage, und "1" in dem Fall der Neuadressierungsanfrage. Weiterhin ist
das Neuadressierungsflag 3 "1" in dem Fall einer Neuadressierungsanfrage und "0"
in den übrigen Fällen. Das Speicherdatenregister 4 ist ein Register zum Einstellen
von Daten von zu speichernden Worten. Das Datenholregister 5 ist ein Register
zum Einstellen geholter Daten.
Der Einspeicherungs-Cachespeicher 20 enthält eine Datenfolge 23 zum Speichern
einer Vielzahl von Blöcken von je 2B Worten, eine Änderungsbitfolge 22 mit
einer Vielzahl von Positionen, die den Positionen der Datenfolge 23 entsprechen,
eine Steuerschaltung 21 zum Erzeugen von Steuersignalen an diesen einen Teil
bildenden Elementen, Gatter 26 bis 30 und Auswahlvorrichtungen 24 und 25; der
Einspeicherungs-Cachespeicher 20 gibt ein Adressensignal 6 und ein Neuadressierungssignal
7 und ein Datenschreibsignal 8 aus, und empfängt ein Datenlesesignal
9 von dem Hauptspeicher 80.
Der Adressenübersetzer 50 ist das oben beschriebene FAR und führt eine
Adressenübersetzung für jede Hauptspeichereinheit derselben Größe wie die
Cacheblöcke bei diesem Ausführungsbeispiel durch und übersetzt eine absolute
Adresse des Adressensignals 6 in eine physikalische Adresse, um die letztere als
ein Adressensignal 10 zu dem Hauptspeicher 80 zu geben. In Antwort auf das
Neuadressierungssignal 7 wird eine Neuadressierung einer Hauptspeicherteileinheit
durchgeführt.
Der Hauptspeicher 80 hat eine Speicherkapazität von 2N Worten, gibt als ein
Datenlesesignal 9 Daten des durch das Adressensignal 10 bestimmten Blocks aus,
während er liest, und speichert Daten eines Datenschreibsignals während des
Speicherns in den durch das Adressensignal 10 bestimmten Block.
Wenn Blockdaten, die an einer Position gespeichert sind, verschieden von Daten
des entsprechenden Blocks in dem Hauptspeicher 80 sind, wird in der Datenfolge
23 die Position der Änderungsbitfolge 22, die mit dem Block verbunden ist, "1"
sein. Wenn sie gleich sind, wird jene Position "0" sein. Ein Speichern in die
Änderungsbitfolge 22 wird durch ein Änderungsbitsignal 37 und ein Schreibsignal
38 gesteuert. Wenn das Schreibsignal 38 in "1" umgewandelt wird, wird der Wert
des Änderungsbitsignals 37 an der durch ein Positionsauswahlsignal 31 bestimmten
Position gespeichert werden. Die Steuerschaltung 21 wählt absolute Adressen der
Blöcke, die an jeder Position der Datenfolge 23 und der Änderungsbitfolge 22 aus.
Die Datenfolge 23 ermöglicht ein Lesen/Schreiben eines ganzen Datenblocks, der
dem Block entspricht, der an der durch das Positionsauswahlsignal 31 bestimmten
Position gespeichert ist, und sie ermöglicht auch ein Lesen/Schreiben eines Wortes
in den Block. Die Auswahlvorrichtung 24 wählt in die Datenfolge 23
einzuspeichernde Daten aus. Die Auswahlvorrichtung 25 wählt in das Datenholregister
5 einzugebende Daten aus. Ein ODER-Gatter 26, ein UND-Gatter 27 und ein
ODER-Gatter 28 bilden gemeinsam eine Schaltung zum Steuern des Aktualisierens
der Änderungsbitfolge 22.
Ein ODER-Gatter 29 und ein UND-Gatter 30 steuern einen Neuadressierungs-
bzw. Verschiebungsprozeß in einem Adressübersetzer 50. Einige einen Teil
bildende Elemente des Einspeicherungs-Cachespeichers 20, die nicht notwendig sind,
um dieses Ausführungsbeispiel zu beschreiben, sind hier der Klarheit halber
weggelassen.
Der Adressenübersetzer 50 enthält eine Adressenfolge 51 und ein physikalisches
Adressenregister 52. Die Adressenfolge 51 ist ein RAM zum Speichern einer
Adressenzuordnungsinformation an jede Position, und zwar mit oberen (N-B) Bits
der absoluten Adresse, die als eine Zugriffsadresse vorgesehen ist. Das physikalische
Adressenregister 52 speichert eine Adressenzuordnungsinformation, die nach
einer Neuadressierung bzw. Verschiebung zu einer Hauptspeicherteileinheit gegeben
werden muß. Die Hauptspeicherteileinheit ist eine minimale Einheit des
Hauptspeichers, der durch den Adressenübersetzer 50 verschiebbar ist.
Die Adressenzuordnungsinformationen sind obere (N-B) Bits einer physikalischen
Adresse. Die physikalische Adresse kann durch Verbinden der Adressenzuordnungsinformation
mit dem unteren B Bit der absoluten Adresse erhalten werden.
Nimmt man an, daß der Wert des Verschiebungssignals 7 in "1" umgewandelt wird,
wird darüber hinaus der Inhalt des physikalischen Adressenregisters 52 in die
Position der Adressenfolge gespeichert, die durch das Adressensignal 6 bestimmt ist,
so daß es möglich ist, den Ort der entsprechenden Hauptspeicherteileinheit zu
verändern. Diese Adressenübersetzungsaktion selbst ist in Verbindung mit dem
FAR bekannt, aber der Adressenübersetzer 50 hat eine zusätzliche Funktion zum
Aktualisieren der Position gemäß dem physikalischen Adressenregister 52 und dem
Verschiebungssignal 7.
Die Verbindung zwischen der Datenfolge 23, der Hauptspeicherteileinheit, der
Adressenfolge 5, dem Hauptspeicher 80, usw. bei diesem Ausführungsbeispiel wird
in Fig. 3A gezeigt. Die Positionszahl der Datenfolge 23 ist in Fig. 3A "3" für eine
vereinfachte Darstellung, ist aber in Wirklichkeit größer. In Fig. 3A ist z. B. ein
Block 91 der Datenfolge 23 mit einem Block 93 des absoluten Adressenraums
verbunden, und dieser Block 91 wird der Reihe nach mit einem Block 95 des
Hauptspeichers 80 durch den Adressenübersetzer 50 verbunden. Wenn der Block
93 des absoluten Adressenraums von dem Block des Hauptspeichers 80 in einen
Block 97 verschoben werden muß, werden die Daten des Blocks 95 in einen Block
91 des Cachespeichers 20 gelesen, während das entsprechende Änderungsbit
veranlaßt wird, "1" zu sein. Auch der Inhalt der Position 94 der Adressenfolge
51 in dem Adressenübersetzer 50, wobei die Position dem Block 93 der absoluten
Adresse entspricht, wird wieder in eine physikalische Adresse geschrieben, die mit
einem neuen Block 97 verbunden ist, und so ist eine Neuadressierung bzw.
Verschiebung erreicht worden. Anschließend, wenn der Block 91 des Cachespeichers
20 als ein Ziel für eine Verschiebung ausgewählt ist, werden die Daten des Blocks
91 in den Block 97 des Hauptspeichers 80 eher als in den Block 95 zurückgeschrieben.
Drei Anfrageprozesse, d. h. die Holanfrage, die Speicheranfrage und die Neuadressierungs- bzw. Verschiebungsanfrage, werden beschrieben werden.
Als erstes wird ein Blockholprozeß beschrieben werden, der bei diesen drei
Anfragen gemeinsam durchgeführt werden muß. Dann werden der Holprozeß, der
Speicherprozeß und der Verschiebungsprozeß beschrieben werden. Die drei
Prozesse, d. h. der Blockholprozeß, der Holprozeß und der Speicherprozeß bilden
gemeinsam einen Algorithmus eines sogenannten Einspeicherungs-Caches.
Fig. 4A ist ein Flußdiagramm des Blockholprozesses. Wenn ein Blockholen
durchgeführt werden muß, wählt die Steuerschaltung 21 eine geeignete Position der
Datenfolge 23 (S11) aus, um den zu holenden Block zu speichern, und sie
untersucht (S12), ob die Position der Änderungsbitfolge 22, die der gewählten
Position entspricht, "1" ist oder nicht. Wenn die Position "1" ist, wird eine
Blockzurückschreibaktion durchgeführt, um die an der Position gespeicherten
Blockdaten zu sichern. Die Blockzurückschreibaktion legt eine absolute Adresse,
die mit dem Block verbunden ist, über die Auswahlvorrichtung 34 an den
Adressenübersetzer 50, übersetzt die absolute Adresse über den Adressenübersetzer
50 in eine physikalische Adresse und sendet die physikalische Adresse zu dem
Hauptspeicher 80 (S13). Nachdem Daten des Blocks von der Datenfolge 23 gelesen
sind und als ein Datenschreibsignal 8 zu dem Hauptspeicher 80 gesendet wird,
wird ein Speicherbefehl zu dem Hauptspeicher 80 gegeben, um die Blockdaten
zurück zu dem Hauptspeicher 80 zu schreiben (S14).
Dann wählt die Auswahlvorrichtung 34 den Ausgang des Adressenregisters 1 aus,
um denselben Ausgang als ein Adressensignal 6 auszugeben, während die
Steuerschaltung 21 dem Hauptspeicher 80 befiehlt, den Block zu lesen. Danach
wird die Position der Adressenfolge 51, wobei die Position mit der in dem
Adressenregister 1 gespeicherten absoluten Adresse verbunden ist, und sie
wird als ein Adressensignal 10 zusammen mit einem unteren B Bit der absoluten
Adresse ausgegeben (S15). Der Block in dem Hauptspeicher 80, der durch das
Adressensignal bestimmt ist, wird als Lesedaten gelesen (S16). Die als ein
Datenlesesignal 9 von dem Hauptspeicher 80 erhaltenen Daten werden über die
Auswahlvorrichtung 24 an der gewählten Position der Datenfolge 23 gespeichert
(S17).
Wenn alle Daten des Blocks an der gewählten Position gespeichert sind, veranlaßt
die Steuerschaltung 21 das Holbeendigungssignal 36 "1" zu sein. Durch die Aktion
des ODER-Gatters 28 wird das Schreibsignal 38 "1" sein. Die Änderungsbitfolge
23 speichert (S18) den Wert des Änderungsbitsignals 37 an der Position, die durch
das Positionsauswahlsignal 31 gewählt ist. Der Wert des Änderungsbitsignals 37
ändert sich in Abhängigkeit von der Anfrage, die verarbeitet werden muß. In
dieser Art ist der Blockholprozeß beendet worden.
Fig. 4B ist ein Flußdiagramm des Holprozesses. Die Holanfrage stellt in dem
Adressenregister 1 eine absolute Adresse des zu lesenden Wortes ein, und sie
stellt auch eine "0" sowohl bei dem Speicherflag und dem Verschiebungsflag 3 ein,
woraufhin ein Operationsbefehl befiehlt, den Holanfrage-Prozeß zu beginnen (S21).
Dann wird eine Untersuchung durchgeführt (S22), ob die Daten des Wortes, das
durch das Adressenregister 1 bestimmt ist, in dem Einspeicherungs-Cachespeicher
20 gespeichert sind oder nicht. Wenn sie gespeichert sind, gibt die Steuerschaltung
21 das Positionsauswahlsignal 31 aus, das die Position, die die Daten enthält, mit
einem in eine "1" umgewandeltes Treffersignal 35 bestimmt. Die Datenfolge 23 gibt
dann das als das Blockdatensignal 32 Daten des Blocks aus, der durch das
Positionsauswahlsignal 31 bestimmt ist (S23). Die Auswahlvorrichtung 25 wählt aus
dem Blockdatensignal 32 Daten des Wortes aus, das durch das Adressenregister
1 bestimmt ist und speichert die ausgewählten Daten in dem Datenholregister 5
(S24).
Wenn die Daten in dem Schritt S22 nicht gespeichert sind, wird der oben
beschriebene Blockholprozeß durchgeführt (S25). Die Auswahlvorrichtung 25 wählt
aus den Blockdaten, die als das Datenlesesignal 9 enthalten sind, Daten des
Wortes aus, das durch das Adressenregister 1 bestimmt ist, und speichert die
ausgewählten Daten in dem Datenholregister 5 (S26). Da sowohl das Speicherflag
2 und das Verschiebungsflag bzw. Neuadressierungsflag 3 "0" sind, ist darüberhinaus
das Änderungsbitsignal 37 "0". Demgemäß wird als das Ergebnis des Blockholprozesses
eine "0" in die Position der Änderungsbitfolge 22 gespeichert, deren
entsprechende Position der Datenfolge die Blockdaten geladen hat, und prägt sich
so ein, daß der Inhalt des Blocks, der in dem Einspeicherungs-Cachespeicher 20
gespeichert ist, mit dem Inhalt des Blocks übereinstimmt, der in dem Hauptspeicher
gespeichert ist. Auf diese Art ist der Holprozeß beendet worden.
Fig. 4C ist ein Flußdiagramm eines Speicherprozesses. Die Speicheranfrage stellt
in dem Adressenregister 1 eine absolute Adresse des zu lesenden Wortes ein, und
sie stellt auch die gespeicherten Daten in dem Datenspeicherregister 4 ein und
stellt eine "1" und "0" jeweils in dem Speicherflag 2 und dem Verschiebungsflag
3 ein, woraufhin ein Operationsbefehl ausgegeben wird, um den Speicherprozeß zu
beginnen (S31).
Dann wird eine Untersuchung durchgeführt (S32), ob die Daten des Wortes, das
durch das Adressenregister 1 bestimmt ist, in dem Einspeicherungs-Cachespeicher
20 gespeichert sind oder nicht. Wenn sie gespeichert sind, gibt die Steuerschaltung
21 als das Positionsauswahlsignal 31 ein Signal aus, das die Position bestimmt, in
der die Daten gespeichert sind, und sie gibt auch eine "1" als das Treffersignal
35 aus. Die Auswahlvorrichtung 24 wählt den Ausgang des Datenspeicherregisters
4 aus und sendet den gewählten Ausgang zu der Datenfolge 23. Wie oben
beschrieben ist, sind Daten des durch das Adressenregister 1 bestimmten Wortes
in dem Block enthalten, der an der durch das Positionsauswahlsignal 31
bestimmten Position gespeichert ist, und die Datenfolge 23 ersetzt die Daten mit
durch die Auswahlvorrichtung 24 ausgegebenen Daten (S34). In der Zwischenzeit
wird das Änderungsbitsignal 34 durch die Wirkung des ODER-Gatters 26 "1" sein,
und sowohl das UND-Gatter 27 als auch das ODER-Gatter 28 werden dazu
dienen, ein Schreibsignal 38 in eine "1" umzuwandeln. Deshalb wird eine "1" an
der Position gespeichert, die durch das Positionsauswahlsignal 31 der Änderungsbitfolge
22 bestimmt ist (S35). Auf diese Art ist der Speicherprozeß beendet
worden.
Bei dem Schritt 32 wird, wenn die Daten des Wortes, das durch das Adressenregister
1 bestimmt ist, nicht in dem Einspeicherungs-Cachespeicher 20 gespeichert
sind, der oben beschriebene Blockholprozeß durchgeführt werden (S33). Zu jener
Zeit wird, da der Inhalt des Speicherflags 2 "1" ist, der Wert des Änderungsbitsignals
37 durch die Wirkung des ODER-Gatters 26 "1" werden.
Als das Ergebnis des Blockholprozesses wird eine "1" an der Position der
Änderungsbitfolge 22 gespeichert, und zwar bei der Datenfolgeposition, entsprechend
der die Datensicherung durchgeführt wird, woraufhin derselbe Prozeß wie
in dem Fall durchgeführt wird, bei dem das bestimmte Wort in dem Einspeicherungs-Cachespeicher 20 gespeichert wird, wodurch der Speicherprozeß
beendet wird.
Fig. 4D ist ein Flußdiagramm eines Verschiebungsprozesses. Die Verschiebungsanfrage
stellt in dem Adressenregister 1 eine führende oder erste Adresse des zu
verschiebenden Blocks ein und stellt auch ein "0" und eine "1" jeweils in dem
Speicherflag 2 und dem Verschiebungsflag 3 ein, woraufhin ein Operationsbefehl
ausgegeben wird, um den Verschiebungsprozeß zu beginnen (S41). Daraufhin wird
eine Untersuchung durchgeführt (S42), ob Daten des durch das Adressenregister
1 bestimmten Wortes in dem Einspeicherungs-Cachespeicher 20 gespeichert sind
oder nicht. Wenn sie gespeichert sind, gibt die Steuerschaltung 21 als das
Positionsauswahlsignal 31 ein Signal aus, das die Position bestimmt, an der die
Daten gespeichert werden, und sie gibt auch eine "1" als das Treffersignal 35 aus.
Da der Inhalt des Verschiebungsflags "1" ist, wird darüber hinaus der Wert des
Änderungsbitsignals 37 durch die Wirkung des ODER-Gatters 26 "1" werden. Da
sowohl die Werte des Treffersignals 35 und des Änderungsbitsignals 37 "1" sind,
wird in der Zwischenzeit das Schreibsignal durch die Wirkung des UND-Gatters
27 und des ODER-Gatters 28 "1" werden, so daß eine "1" an der Position
gespeichert werden wird, die durch das Positionsauswahlsignal 31 der Änderungsbitfolge
22 bestimmt ist (S46). Zu jener Zeit wird das Verschiebungssignal 7 durch
die Wirkung des ODER-Gatters 29 und des UND-Gatters 30 in eine "1"
umgewandelt (S44). Wenn das Verschiebungssignal 7 "1" wird, speichert die
Adressenfolge 51 den Inhalt des physikalischen Adressenregisters 52 in die Position
der Adressenfolge 51, die durch das Adressensignal 6 bestimmt ist (S45). Als ein
Ergebnis wird der Block, der durch das Adressenregister 1 bestimmt ist, verschoben
werden.
In der Zwischenzeit wird bei Schritt 42, wenn die Daten des Wortes, das durch
das Adressenregister 1 bestimmt ist, nicht in dem Einspeicherungs-Cachespeicher
20 gespeichert sind, der oben beschriebene Blockholprozeß durchgeführt werden
(S43). Da der Inhalt des Verschiebungsflags 3 "1" ist, wird zu jener Zeit der Wert
des Änderungsbitsignals 37 durch die Wirkung des ODER-Gatters 26 "1" werden.
Als das Ergebnis des oben beschriebenen Blockholprozesses wird eine "1" an der
Position gespeichert werden, die durch das Positionsauswahlsignal 31 der
Änderungsbitfolge 22 bestimmt ist. Darüber hinaus wird, da das Holbeendigungssignal
36 bei dem Blockholprozeß "1" sein wird, das Verschiebungssignal 7 durch
die Wirkung des ODER-Gatters 29 und des UND-Gatters 30 in eine "1"
umgewandelt werden (S44). Die Adressenfolge 51 speichert dann den Inhalt des
physikalischen Adressenregisters 52 in die Position der Adressenfolge 51, wobei die
Position durch das Adressensignal 6 bestimmt ist (S45). Als ein Ergebnis wird der
Block verschoben, der durch das Adressenregister 1 bestimmt ist. Der schraffierte
Teil in Fig. 3A stellt einen Zielblock dar, der verschoben werden muß, wenn das
Verschiebungssignal 7 "1" ist.
Bei dem vorangehenden Verschiebungsprozeß wird ein Speichern in den
Hauptspeicher des verschobenen Blocks nicht durchgeführt, wobei bedeutungslose
Daten noch in dem entsprechenden Block in dem Hauptspeicher 80 gelassen
werden. Da jedoch das Änderungsbit, das dem Block entspricht, "1" ist, wird der
Block, der in dem Einspeicherungs-Cachespeicher gespeichert ist, als die einzig
korrekten Daten angesehen, und die Daten in dem Hauptspeicher 80 werden nicht
beachtet, und zwar gemäß dem Algorithmus des Einspeicherungs-Cachespeichers,
was keinen Widerspruch erzeugt.
Es gibt keine Beschränkung bezüglich der Beziehung zwischen einem Bereich,
bevor er geändert worden ist, und einem Bereich, nachdem er geändert worden
ist; d. h. es kann eine Überlappung der Bereiche auftreten.
Fig. 2 zeigt ein geändertes Speichersystem mit einer Rangordnung gemäß einem
zweiten Ausführungsbeispiel der vorliegenden Erfindung, das im Aufbau mit dem
ersten Ausführungsbeispiel identisch ist, mit der Ausnahme eines Adressenübersetzers
50.
Verschiedene einen Teil bildende Elemente des Adressenübersetzers 50 werden
nun beschrieben werden. Bei diesem Ausführungsbeispiel ist die Größe der
Hauptspeicherteileinheit 2U Worte, nämlich U < B. Deshalb enthält die Hauptspeicherteileinheit
2(U-B) Blöcke. Weiterhin ist eine Adressenzuordnungsinformation
ein oberes (N-U) Bit der physikalischen Adresse, und die
physikalische Adresse kann erhalten werden durch Verbinden der Adressenzuordnungsinformation
von (N-U) Bits mit den unteren U-Bits der absoluten Adresse.
Die Adressenfolge 51 ist ein RAM zum Speichern der Adressenzuordnungsinformation
an jeder Position davon, und zwar mit den oberen (N-U) Bits der
absoluten Adresse, die als eine Adresse angelegt ist, und sie ist zu dem
herkömmlichen FAR, wie dem ersten Ausführungsbeispiel, äquivalent. Ein
Verschiebungsbereichsregister 56 speichert die oberen (N-U) Bits einer führenden
absoluten Adresse der zu verschiebenden Hauptspeicherteileinheit. Das physikalische
Adressenregister 52 speichert eine zu gebende Adressenzuordnungsinformation,
nachdem die Hauptspeicherteileinheit, die durch das Verschiebungsbereichsregister
56 bestimmt ist, verschoben worden ist; d. h. das physikalische Adressenregister 52
speichert die oberen (N-U) Bits der physikalischen Adresse. Ein Grenzadressenregister
57 speichert eine Grenzadresse von N Bits und stellt den Ausgang
eines Grenzadressenaddierers 60 in Antwort auf den Befehl des Verschiebungssignals
7 ein. Ein Komparator 58 vergleicht die oberen (N-U) Bits des Inhalts
des Adressenregisters 1 mit dem Verschiebungsbereichsregister 56, gibt eine "1" aus,
wenn ihre Werte dieselben sind, und gibt eine "0" aus, wenn ihre Werte
unterschiedlich sind. Ein Komparator 59 vergleicht den Inhalt des Adressenregisters
1 mit dem Inhalt des Grenzadressenregisters 57, gibt eine "1" aus, wenn die
Zugriffsadresse kleiner ist als die Grenzadresse und gibt andererseits eine "0" aus.
Der Grenzadressenaddierer 60 gibt eine absolute Adresse aus, die die Grenzadresse
ist, zu der 2B addiert ist. Die Auswahlvorrichtung 62 ist eine Auswahlschaltung
zum Auswählen des Ausgangs der Adressenfolge 51, wenn der Ausgang des UND-
Gatters 61 "0" ist, und zum Auswählen des Ausgangs des physikalischen
Adressenregisters 52, wenn der Ausgang des UND-Gatters 61 "1" ist. Das gültige
Bit 55 ist ein Flag, das anzeigt, daß der Adressenübersetzer 50 in einem
Verschiebungsausführmode ist. Wenn der Inhalt des gültigen Bits 55 "1" ist,
ist es der Verschiebungsmode; wenn der Inhalt "0" ist, ist es nicht der Verschiebungsmode.
Weiterhin ist das Schreibsignal 11 ein Signal, das ein Speichern in der Adressenfolge
51 bestimmt. Wenn der Wert "1" ist, wird der Inhalt des physikalischen
Adressenregisters 52 in der Position der Adressenfolge 51 gespeichert werden,
wobei die Position durch das Adressensignal 6 bestimmt wird.
Die Beziehung zwischen der Datenfolge, der Hauptspeicherteileinheit, der
Adressenfolge, dem Speicher 80, usw. bei dem zweiten Ausführungsbeispiel, wird
in der Fig. 3B gezeigt. Auch in der Fig. 3B ist die Positionszahl der Datenfolge
23 nur "3", und zwar der Klarheit halber. Bei diesem Ausführungsbeispiel ist
beabsichtigt, daß ein Block (2B Worte) des Cachespeichers 20 kleiner ist als die
Hauptspeicherteileinheit (2U Worte). Weil jedoch eine Verschiebung durch den
Cachespeicher 20 nur in einer Blockeinheit durchgeführt werden kann, ist es
unmöglich, eine Teileinheit des Hauptspeichers 80 auf einmal zu verschieben. Bei
einer Verschiebung einer Teileinheit des Hauptspeichers 80 werden daher viele
Blöcke, die in der Teileinheit enthalten sind, aufeinanderfolgend auf einer Block-für-Block-Basis
verschoben werden. Während dieser Verschiebung existieren Blöcke,
bevor sie verschoben worden sind, und andere Blöcke nachdem sie verschoben
worden sind, zeitweise in derselben Hauptspeicherteileinheit.
Mit anderen Worten muß sogar in demselben absoluten Adressenbereich die
originale physikalische Adresse an die nicht verschobenen Blöcke angepaßt werden,
und eine neue physikalische Adresse muß an die verschobenen Blöcke angepaßt
werden. Der Adressenübersetzer 50 der Fig. 2 kann diese Anforderung erfüllen.
Beim Betrieb, wenn eine Verschiebung nicht durchgeführt werden darf, da das
gültige Bit 55 "0" ist, kann nur die Adressenzuordnungsinformation, die aus der
Adressenfolge 51 durch das UND-Gatter 61 und die Auswahlvorrichtung 62
ausgegeben ist, für eine Adressenübersetzung benutzt werden.
Danach, während eine Verschiebung durchgeführt wird, da das gültige Bit 55 "1"
ist, wenn der Inhalt des Adressenregisters 1 in der Hauptspeicherteileinheit
enthalten ist, die durch das Verschiebungsbereichsregister 56 bestimmt ist, und
wenn der Inhalt des Adressenregisters 1 kleiner ist als die Grenzadresse, wird der
Ausgang des physikalischen Adressenregisters 52 für eine Adressenübersetzung
benutzt, und sonst wird der Ausgang der Adressenfolge 51 für die Adressenübersetzung
durch die Wirkung des Komparators 58, des Komparators 59, des UND-
Gatters 61 und der Auswahlvorrichtung 62 benutzt. Wenn daher das gültige Bit
"1" ist, wird die Speichereinheit einer Adressenzuordnung bei der Grenzadresse in
zwei Hälften geteilt, so daß den jeweiligen Hälften der Speichereinheit einer
Adressenzuteilung verschiedene physikalische Adressen zugeordnet werden können.
Mit dem Verschiebungssignal 7 von "1", wird der Inhalt des Grenzadressenregisters
57 um die Größe des Blocks erhöht, während die physikalische Adresse des
Blocks, die vor dem Erhöhen durch die Grenzadresse bestimmt worden ist, von
jener verändert werden wird, die durch die Adressenfolge 51 bestimmt ist, und
zwar zu jener, die durch das physikalische Adressenregister 52 bestimmt ist. Diese
Veränderung ist der Veränderung der physikalischen Adresse äquivalent, die in
Antwort auf das Verschiebungssignal 7 bei dem Verschiebungsprozeß des ersten
Ausführungsbeispiels gemacht ist. Eine Zuteilung einer physikalischen Adresse zu
einer absoluten Adresse der Hauptspeicherteileinheit entspricht dem Ausgang der
Adressenfolge 51, wenn die Grenzadresse am Anschlag der Hauptspeicherteileinheit
ist, und entspricht dem Ausgang des physikalischen Adressenregisters 52, wenn die
Grenzadresse größer ist als die maximale absolute Adresse der Hauptspeicherteileinheit.
Das Speichersystem mit einer Rangordnung dieses Ausführungsbeispiels kann wie
das erste Ausführungsbeispiel drei Anfragen ausführen, d. h. eine Holanfrage, eine
Speicheranfrage und eine Verschiebungsanfrage. Die Prozesse für die Hol- und
Speicheranfragen sind mit jenen des ersten Ausführungsbeispiels identisch, und
daher wird hier eine Beschreibung der Klarheit halber weggelassen. Die
Verschiebungsanfrage erfolgt, um einen Block wie bei dem ersten Ausführungsbeispiel
zu verschieben; jedoch wird die Verschiebungsanfrage nur als ein Schritt des
ganzen Verschiebungsprozesses der Hauptspeicherteileinheit verwendet, und folglich
wird der Verschiebungsprozeß in der Beschreibung des Verschiebungsprozesses
beschrieben werden.
Fig. 5A ist ein Flußdiagramm eines Blockholprozesses. Bei dem Blockholprozeß
wird zuerst die Position der Datenadresse 23 geeignet gewählt, um den Block zu
speichern, der das bestimmte Wort enthält (S51). Dann wird eine Untersuchung
durchgeführt (S52), ob die Position der Änderungsbitfolge 22 "1" ist oder nicht,
wobei die Position der ausgewählten Position entspricht. Wenn sie "1" ist, bedeutet
dies, daß der Inhalt verändert worden ist; daher ist es notwendig, zurück zu dem
Hauptspeicher zu schreiben. Danach wird eine Untersuchung durchgeführt (S53),
ob die oberen (N-U) Bits der absoluten Adresse des Blocks, der an der
ausgewählten Position gespeichert ist, dem Inhalt des Verschiebungsbereichsregisters
56 gleich sind oder nicht, und ob die absolute Adresse kleiner ist als der Inhalt
des Grenzregisters 57 oder nicht. Bei diesem Schritt wird in anderen Worten eine
Untersuchung durchgeführt, ob der Block dem Verschobenen zugeteilt ist oder
nicht. Wenn das Ergebnis positiv ist, wird der Inhalt zusammen mit den unteren
U Bits der absoluten Adresse ausgegeben (S54). Wenn es negativ ist, wird die
Position der Adressenfolge 51 gelesen, die der absoluten Adresse entspricht, und
die Auslesedaten werden als ein Adressensignal 10 zusammen mit den unteren U Bits
der absoluten Adresse ausgegeben (S61). Dann werden Daten des Blocks zu
der Adresse des Hauptspeichers 80 geschrieben, wobei die Adresse durch das
Adressensignal 10 bestimmt werden muß (S55). Wenn bei dem Schritt 52 die
Position der Änderungsbitfolge 22 "0" ist, weist der Inhalt des Blocks keine
Änderung auf, und daher werden die Schritte S52 bis S55 und S61 zum
Zurückschreiben ausgelassen.
Danach wird eine Untersuchung durchgeführt (S56), ob die oberen (N-U) Bits
der absoluten Adresse, die in dem Adressenregisters 1 gespeichert sind, dem Inhalt
des Verschiebungsbereichsregisters 56 gleich sind oder nicht, und auch, ob die
absolute Adresse kleiner ist als jene in dem Grenzregister 57 oder nicht. Dieser
Schritt entspricht dem Schritt 53. Wenn das Ergebnis positiv ist, wird der Inhalt
des physikalischen Adressenregisters 52 als ein Adressensignal 10 zusammen mit
den unteren U Bits der absoluten Adresse ausgegeben (S57). Wenn es negativ ist,
wird die Position der Adressenfolge 51 gelesen werden, die der absoluten Adresse
entspricht, und Daten der Position werden als ein Adressensignal 10 zusammen mit
den unteren U Bits der absoluten Adresse ausgegeben werden. Danach wird der
Block in dem Hauptspeicher 80 als ein Datenlesesignal 9 gelesen werden, wobei
der Block durch das Adressensignal 10 bestimmt ist (S58). Die Daten des
Datenlesesignals 9 werden in der ausgewählten Position der Datenfolge (S59)
gespeichert, und der Wert des Änderungsbitsignals 37 wird in der ausgewählten
Position der Änderungsbitfolge 22 gespeichert (S60). Auf diese Art ist der
Blockholprozeß beendet worden.
Der Verschiebungsprozeß der Hauptspeichereinheit gemäß dem zweiten
Ausführungsbeispiel wird nun beschrieben werden. Dieser Verschiebungsprozeß wird
durch aufeinanderfolgendes Ausführen der folgenden Verfahren 1) bis 7)
durchgeführt werden, und zwar durch ein Verarbeitungsgerät, das das Speichersystem
mit einer Rangordnung benutzt. Fig. 5B ist ein Flußdiagramm des
Verschiebungsprozesses.
Bei dem Verschiebungsprozeß wird eine Verschiebung der Hauptspeicherteileinheit,
die aus mehreren Blöcken zusammengesetzt ist, durch Wiederholen der Verschiebung
eines Blocks durch eine Verschiebungsanfrage durchgeführt.
- 1) Die oberen (N-U) Bits der absoluten Adresse der zu verschiebenden Hauptspeicherteileinheit werden in dem Verschiebungsbereichsregister 56 eingestellt.
- 2) Die oberen (N-U) Bits der physikalischen Adresse, in der die Hauptspeicherteileinheit neu angeordnet wird, werden in dem physikalischen Adressenregister 52 eingestellt.
- 3) Die führende absolute Adresse der zu verschiebenden Hauptspeicherteileinheit wird in dem Grenzadressenregister 57 eingestellt.
- 4) Das gültige Bit 55 wird umgewandelt, um "1" zu sein (vorangehende Verfahren 1) bis 4): S71).
- 5) Der folgende Verschiebungsanfrageprozeß wird 2(U-B) Male wiederholt (S72 bis S77 und S81).
- Die absolute Adresse, die jener gleich ist, die in dem Grenzadressenregister 57 gehalten ist, wird in dem Adressenregister 1 eingestellt, das Speicherflag 2 wird auf "0" gesetzt, und der Verschiebungsflag 3 wird auf die "1" gesetzt und dadurch wird das Speichersystem mit einer Rangordnung gestartet.
- 6) Das Schreibsignal 11 muß "1" sein (S78), worauf der Inhalt des physikalischen Registers 52 in der Position gespeichert wird, die durch das Adressenregister bestimmt ist (S79).
- 7) Das gültige Bit wird umgewandelt, um "0" zu sein (S80).
Die Verfahren 1) bis 4) sind Initialisierungen der in dem Verschiebungsgerät zu
benutzenden Register. Für die Blöcke, die eine Hauptspeicherteileinheit bilden, die
durch das Verschiebungsbereichsregister 56 bestimmt ist, wiederholt das Verfahren
5) den Verschiebungsprozeß, der in Verbindung mit dem ersten Ausführungsbeispiel
erläutert ist, und es verschiebt alle Blöcke in der Hauptspeicherteileinheit in der
physikalischen Adresse, die durch das physikalische Adressenregister 52 bestimmt
ist. Bei dem Verschiebungsprozeß von jedem Block unternimmt der Einspeicherungs-
Cachespeicher 20 dieselben Schritte wie der oben in Verbindung mit dem
ersten Ausführungsbeispiel diskutierte Verschiebungsanfrageprozeß. Das Verschiebungssignal 7 erhöht den Inhalt des Grenzadressenregisters 57, anstatt die
Position der Adressenfolge 51 neu zu laden. Das Ergebnis bei diesem Ausführungsbeispiel
ist jedoch ähnlich zu jenem bei dem ersten Ausführungsbeispiel.
Das Verfahren 6) speichert den Inhalt des physikalischen Adressenregisters 52 in
der Adressenfolge 51, die durch das Adressensignal 6 bestimmt ist, und spiegelt
die Verschiebung wieder, die durch das Verfahren 5) in der Adressenfolge 51
erzielt ist. Da durch diesen Prozeß der Inhalt der Adressenfolge 51 mit dem
Inhalt des physikalischen Adressenregisters 52 übereinstimmt, kann das gültige Bit
55 in "0" umgewandelt werden.
Der Prozeß 7) gibt Register zur Verschiebung frei, die in dem Adressenübersetzer
50 enthalten sind, und ermöglicht eine Verschiebung einer weiteren Hauptspeicherteileinheit.
Bei dem ersten Ausführungsbeispiel ist die Größe der Hauptspeicherteileinheit
dieselbe wie die Blockgröße des Cachespeichers. Diese Erfindung sollte keinesfalls
auf dieses besondere Beispiel begrenzt sein. Beispielsweise kann diese Erfindung
anders angewendet werden, wie das zweite Ausführungsbeispiel, bei dem vorgesehen
ist, daß die Größe der Hauptspeicherteileinheit ein ganzzahliges Vielfaches der
Blockgröße ist und kleiner ist als die Kapazität des Einspeicherungs-Cachespeichers.
Obwohl bei dem ersten und dem zweiten Ausführungsbeispiel die Adressenzuteilungsinformation
obere Bits der physikalischen Adresse sind, kann irgendeine
Information benutzt werden, wenn sie die absoluten Adressen in der Hauptspeicherteileinheit
mit den physikalischen Adressen des Hauptspeichers in einer
Eins-zu-Eins-Beziehung verbindet. Wenn z. B. die Hauptspeicherteileinheit in dem
Hauptspeicher verschachtelt ist, können Daten die Information enthalten, die ein
Verschachtelungsmuster bestimmt.
Weiterhin ist die Hauptspeicherteileinheit bei dem ersten und zweiten Ausführungsbeispiel
konstant in der Größe. Die Größe der Hauptspeicherteileinheit kann
jedoch variieren.
Bei dem zweiten Ausführungsbeispiel werden die Blöcke innerhalb des Hauptspeicherteils in dem Cachespeicher in aufsteigender Adressenreihenfolge gespeichert.
Andere Reihenfolgen können möglich sein, wenn der Komparator 59 und der
Grenzadressenaddierer 60 eingerichtet werden, um sich für jene Reihenfolge zu
eignen.
Auch das zweite Ausführungsbeispiel benutzt das gültige Bit. Wenn das Verschiebungsbereichsregister 56 und das Grenzregister 57 "0" sind, ist es möglich,
dasselbe Ergebnis wie "gültiges Bit = 0" zu erreichen. Daher ist das gültige Bit
kein wesentlicher Faktor.
Sogar während eine Verschiebung der Daten, die in dem Hauptspeicher gespeichert
sind, durchgeführt wird, ist es gemäß dieser Erfindung möglich, in bezug auf den
Bereich, der verschoben ist, zu lesen/schreiben, und zwar unter Verwendung von
Daten, die in einem Cachespeicher gespeichert sind. Daher ist es nicht nötig, das
laufende Programm zeitweise für eine Verschiebung anzuhalten, und deshalb ist es
möglich, eine Verschiebung des Hauptspeichers durchzuführen, während das System
arbeitet.
Claims (6)
1. Verfahren zum Neuadressieren eines Speichers, dem eine physikalische
Adresse gegeben ist, in einem Speichersystem, das enthält: den Speicher,
einen Cachespeicher, der durch eine absolute Adresse zum Halten einer
Kopie eines Teils des Speichers verwaltet wird, eine Adressenübersetzungseinrichtung
zum Verbinden der absoluten Adresse mit einer physikalischen
Adresse, wobei das Verfahren aufweist:
- (a) Holen des Inhalts eines physikalischen Bereichs des Speichers, der mit einem neu zu adressierenden absoluten Zieladressenbereich verbunden ist, in den Cachespeicher;
- (b) nach dem Holen Übersetzen der Verbindung der Adressenübersetzungseinrichtung so, daß der absolute Adressenbereich mit einem neuen physikalischen Adressenbereich verbunden wird; und
- (c) darauffolgendes Schreiben des Inhalts, der in den Cachespeicher geholt worden ist, zurück in den neuen physikalischen Adressenbereich, der mit dem absoluten Adressenbereich verbunden ist, ohne Rücksicht darauf, ob der Inhalt geändert worden ist oder nicht.
2. Verfahren zum Neuadressieren eines Speichers unter Verwendung eines
Einspeicherungs-Cachespeichers zum Halten einer Kopie des Inhalts des
Speichers und einer Adressenübersetzungseinrichtung zum Verbinden einer
absoluten Adresse mit einer physikalischen Adresse, wobei das Verfahren
aufweist:
- (a) Holen des Inhalts eines Quellenbereichs in dem neu zu adressierenden Speicher in einen Block des Cachespeichers;
- (b) nach dem Holen Halten einer Information, die anzeigt, daß der Inhalt des Blocks des Cachespeichers verschieden ist von dem Inhalt des Speichers; und
- (c) Ändern der Adressenverbindung der Adressenübersetzungseinrichtung so, daß eine absolute Adresse, die mit einer physikalischen Adresse des Quellenbereichs verbunden ist, mit einer physikalischen Adresse eines Bestimmungsbereichs des neu zu adressierenden Speichers verbunden wird.
3. Verfahren zum Neuadressieren eines Speichers während ein Speichersystem
arbeitet, und zwar unter Verwendung eines Einspeicherungs-Cachespeichers
zum Halten einer Kopie des Inhalts eines Speichers und einer Adressenübersetzungseinrichtung
zum Verbinden einer absoluten Adresse mit einer
physikalischen Adresse, wobei das Verfahren aufweist:
- (a) Holen einer Quellenspeicherinformation, die neu adressiert werden muß, in den Cachespeicher gemäß einer Neuadressierungsanfrage von einem Hostgerät; und
- (b) Ändern der Adressenverbindung der Adressenübersetzungseinrichtung so, daß die geholten Speicherdaten zu einem Bestimmungsbereich in dem Speicher zurückgeschrieben werden.
4. Speichersysten mit einer Rangordnung, das aufweist:
- (a) einen Speicher;
- (b) einen Einspeicherungs-Cachespeicher zum Halten einer Kopie des Inhalts des Speichers in vielen Blöcken davon;
- (c) eine Adressenübersetzungseinrichtung zum Verbinden einer absoluten Adresse mit einer physikalischen Adresse;
- (d) eine Einrichtung zum Vorsehen einer Neuadressierungsanfrage zusätzlich zu einer Holanfrage und einer Speicheranfrage für den Speicher zum Holen von Daten eines Quellenbereichs in dem Speicher, der neu adressiert werden muß, in einen Block des Cachespeichers und zum Umwandeln eines Änderungsbits des Blocks in einen geänderten Zustand; und
- (e) eine Einrichtung zum Ändern einer Adressenverbindung der Adressenübersetzungseinrichtung so, daß die geholten Speicherdaten zu einem Bestimmungsbereich in dem Speicher zurückgeschrieben werden.
5. Speichersystem mit einer Rangordnung, das aufweist:
- (a) einen Speicher;
- (b) eine Adressenübersetzungseinrichtung zum Verbinden einer absoluten Adresse und einer physikalischen Adresse miteinander für jede vorbestimmte Teilspeichereinheit;
- (c) einen Einspeicherungs-Cachespeicher, der eine Datenfolge enthält, die aus vielen Blöcken zusammengesetzt ist, zum Speichern eines Teils der in dem Speicher gespeicherten Daten, und eine Änderungsbitfolge enthält zum Speichern von Änderungsbits, von denen jedes anzeigt, daß in einem Block der Datenfolge gespeicherte Daten verschieden sind von Daten eines verbundenen Teils des Speichers;
- (d) eine Einrichtung zum Lesen aus dem Speicher von Daten eines Bereichs des Speichers, der durch eine physikalische Adresse bestimmt ist, die einer bestimmten absoluten Adresse entspricht, zum Speichern der Lesedaten in einem Block des Cachespeichers und zum Umwandeln des Inhalts der Änderungsbitfolge entsprechend dem Block in einem Zustand, der anzeigt, daß die Daten des Blocks verschieden sind von dem Inhalt des Speichers; und
- (e) eine Einrichtung zum Steuern der Adressenübersetzungseinrichtung so, daß die bestimmte absolute Adresse mit einer physikalischen Adresse eines Bestimmungsbereiches in dem neu zu adressierenden Speicher verbunden ist.
6. Speichersystem mit einer Rangordnung, das aufweist:
- (a) einen Speicher;
- (b) eine Adressenübersetztabelle zum Verbinden einer absoluten Adresse mit einer physikalischen Adresse für jede vorbestimmte Teilspeichereinheit;
- (c) einen Einspeicherungs-Cachespeicher, der eine Datenfolge enthält, die aus vielen Blöcken zusammengesetzt ist, zum Speichern eines Teils von dem in dem Speicher gespeicherten Daten, und eine Änderungsbitfolge enthält zum Speichern von Änderungsbits, von denen jedes anzeigt, daß in einem Block der Datenfolge gespeicherte Daten verschieden sind von Daten eines verbundenen Teils des Speichers, wobei die vorbestimmte Teilspeichereinheit größer ist als ein Block des Cachespeichers;
- (d) eine erste Adressenhalteeinrichtung zum Halten physikalischer Adreßdaten eines Bestimmungsbereichs in dem neu zu adressierenden Speicher;
- (e) eine zweite Adressenhalteeinrichtung zum Halten einer absoluten Adresseninformation einer zu verschiedenen Teilspeichereinheit eines Ziels;
- (f) eine dritte Adressenhalteeinrichtung zum Halten einer absoluten Grenzadresse zwischen einem nicht verschobenen Block und einem verschobenen Block;
- (g) eine Grenzadressenaktualisierungseinrichtung zum Aktualisieren eines Blocks von Adressen der dritten Adressenhalteeinrichtung für jede Blockneuadressierung;
- (h) eine erste Entscheidungseinrichtung zum Entscheiden, ob eine absolute Adresse, auf die zugegriffen werden muß, der neu zu adressierenden Teilspeichereinheit des Ziels zugeteilt ist oder nicht;
- (i) eine zweite Entscheidungseinrichtung zum Entscheiden, was größer oder kleiner ist zwischen einer absoluten Adresse, auf die zugegriffen werden muß, und der absoluten Grenzadresse;
- (j) eine Auswahleinrichtung zum Auswählen gemäß den Entscheidungsergebnissen der ersten und zweiten Entscheidungseinrichtung einer physikalischen Adresseninformation aus der Adressenübersetztabelle oder aus der ersten Adressenhalteeinrichtung, um die Ausgewählte zu dem Speicher zu geben; und
- (k) eine Schreibeinrichtung zum Schreiben des Inhalts der ersten Adressenhalteeinrichtung in einen entsprechenden Teil der Adressenübersetztabelle, nachdem alle Blöcke in der Teilspeichereinheit neu adressiert worden sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1185749A JPH0661068B2 (ja) | 1989-07-18 | 1989-07-18 | 記憶再配置方法および階層化記憶システム |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4022885A1 true DE4022885A1 (de) | 1991-01-31 |
DE4022885C2 DE4022885C2 (de) | 1996-12-12 |
Family
ID=16176193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4022885A Expired - Fee Related DE4022885C2 (de) | 1989-07-18 | 1990-07-18 | Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem |
Country Status (3)
Country | Link |
---|---|
US (1) | US5317704A (de) |
JP (1) | JPH0661068B2 (de) |
DE (1) | DE4022885C2 (de) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH087717B2 (ja) * | 1991-09-03 | 1996-01-29 | 富士通株式会社 | 動的アドレス変換処理装置 |
JP2737820B2 (ja) * | 1992-09-24 | 1998-04-08 | インターナショナル・ビジネス・マシーンズ・コーポレイション | メモリアクセス方法およびシステム |
US5873126A (en) * | 1995-06-12 | 1999-02-16 | International Business Machines Corporation | Memory array based data reorganizer |
US6742080B1 (en) | 1996-09-06 | 2004-05-25 | Intel Corporation | Disk block allocation optimization methodology and application |
US6105117A (en) * | 1997-06-30 | 2000-08-15 | Intel Corporation | Source oriented data block relocation methodology and applications |
GB2358491A (en) * | 1999-09-03 | 2001-07-25 | Sgs Thomson Microelectronics | A relocation format for linking |
GB9920916D0 (en) | 1999-09-03 | 1999-11-10 | Sgs Thomson Microelectronics | A relocation format for linking |
JP2001142773A (ja) | 1999-11-17 | 2001-05-25 | Fujitsu Ltd | 交換システムのデータ管理装置及び記録媒体 |
US6252821B1 (en) * | 1999-12-29 | 2001-06-26 | Intel Corporation | Method and apparatus for memory address decode in memory subsystems supporting a large number of memory devices |
US6745313B2 (en) | 2002-01-09 | 2004-06-01 | International Business Machines Corporation | Absolute address bits kept in branch history table |
GB2395824B (en) * | 2002-02-07 | 2004-08-25 | Sun Microsystems Inc | Object addressed memory hierarchy |
US6859868B2 (en) * | 2002-02-07 | 2005-02-22 | Sun Microsystems, Inc. | Object addressed memory hierarchy |
GB0301448D0 (en) | 2003-01-22 | 2003-02-19 | Falanx Microsystems As | Microprocessor systems |
US7685399B2 (en) * | 2007-01-07 | 2010-03-23 | International Business Machines Corporation | Method, system, and computer program products for data movement within processor storage |
US7917806B2 (en) * | 2007-12-18 | 2011-03-29 | International Business Machines Corporation | System and method for indicating status of an on-chip power supply system |
US8132131B2 (en) * | 2007-12-18 | 2012-03-06 | International Business Machines Corporation | Design structure including failing address register and compare logic for multi-pass repair of memory arrays |
US20090154270A1 (en) * | 2007-12-18 | 2009-06-18 | Barth Jr John E | Failing address register and compare logic for multi-pass repair of memory arrays |
US8661169B2 (en) * | 2010-09-15 | 2014-02-25 | Lsi Corporation | Copying data to a cache using direct memory access |
US9436606B2 (en) * | 2014-01-02 | 2016-09-06 | Qualcomm Incorporated | System and method to defragment a memory |
US9348524B1 (en) | 2014-11-19 | 2016-05-24 | International Business Machines Corporation | Memory controlled operations under dynamic relocation of storage |
US9495107B2 (en) | 2014-11-19 | 2016-11-15 | International Business Machines Corporation | Dynamic relocation of storage |
US9459998B2 (en) | 2015-02-04 | 2016-10-04 | International Business Machines Corporation | Operations interlock under dynamic relocation of storage |
US10552340B2 (en) | 2017-02-28 | 2020-02-04 | Oracle International Corporation | Input/output direct memory access during live memory relocation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61290550A (ja) * | 1985-06-19 | 1986-12-20 | Hitachi Ltd | 階層記憶制御方式 |
JPS6321222A (ja) * | 1986-07-10 | 1988-01-28 | Nippon Kokan Kk <Nkk> | オキシ塩化ジルコニウムの製造方法 |
DE3832912A1 (de) * | 1987-10-02 | 1989-05-03 | Sun Microsystems Inc | Arbeitsstation mit virtueller adressierung in multibenutzer-betriebssystemen |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1984002784A1 (en) * | 1982-12-30 | 1984-07-19 | Ibm | Virtual memory address translation mechanism with controlled data persistence |
US4719568A (en) * | 1982-12-30 | 1988-01-12 | International Business Machines Corporation | Hierarchical memory system including separate cache memories for storing data and instructions |
US4612612A (en) * | 1983-08-30 | 1986-09-16 | Amdahl Corporation | Virtually addressed cache |
US4680700A (en) * | 1983-12-07 | 1987-07-14 | International Business Machines Corporation | Virtual memory address translation mechanism with combined hash address table and inverted page table |
US4860192A (en) * | 1985-02-22 | 1989-08-22 | Intergraph Corporation | Quadword boundary cache system |
US4928239A (en) * | 1986-06-27 | 1990-05-22 | Hewlett-Packard Company | Cache memory with variable fetch and replacement schemes |
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
US4991088A (en) * | 1988-11-30 | 1991-02-05 | Vlsi Technology, Inc. | Method for optimizing utilization of a cache memory |
US5131087A (en) * | 1988-12-29 | 1992-07-14 | Storage Technology Corporation | Computer system having apparatus for automatically redistributing data records stored therein |
US5067078A (en) * | 1989-04-17 | 1991-11-19 | Motorola, Inc. | Cache which provides status information |
-
1989
- 1989-07-18 JP JP1185749A patent/JPH0661068B2/ja not_active Expired - Fee Related
-
1990
- 1990-07-18 DE DE4022885A patent/DE4022885C2/de not_active Expired - Fee Related
- 1990-07-18 US US07/553,699 patent/US5317704A/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61290550A (ja) * | 1985-06-19 | 1986-12-20 | Hitachi Ltd | 階層記憶制御方式 |
JPS6321222A (ja) * | 1986-07-10 | 1988-01-28 | Nippon Kokan Kk <Nkk> | オキシ塩化ジルコニウムの製造方法 |
DE3832912A1 (de) * | 1987-10-02 | 1989-05-03 | Sun Microsystems Inc | Arbeitsstation mit virtueller adressierung in multibenutzer-betriebssystemen |
Also Published As
Publication number | Publication date |
---|---|
JPH0661068B2 (ja) | 1994-08-10 |
JPH0350651A (ja) | 1991-03-05 |
DE4022885C2 (de) | 1996-12-12 |
US5317704A (en) | 1994-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4022885C2 (de) | Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem | |
DE2231146C3 (de) | Datenverarbeitungsanlage mit virtueller Adressierung | |
DE2856133C2 (de) | Datenverarbeitungsvorrichtung mit einem Hauptspeicher und einem Assoziativspeicher als Pufferspeicher | |
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE69332458T2 (de) | Vektorprozessor | |
DE2637054C3 (de) | Steuervorrichtung für einen Pufferspeicher | |
DE2455047A1 (de) | Datenverarbeitungssystem | |
DE3011552A1 (de) | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer | |
DE2630323A1 (de) | Datenspeichereinrichtung | |
DE1956604A1 (de) | Datenverarbeitungsanlage mit einem Speichersystem | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE60132229T2 (de) | Speichervorrichtung, speichersteuerverfahren und programm | |
DE69031696T2 (de) | Cache-Speicher mit der Möglichkeit im Fehlgriffsfall gleichzeitig zu aktualisieren und eine Entscheidung über die nächste Adresse zu treffen | |
DE3588061T2 (de) | Speicherzugriffs-Steuerungssystem und -Verfahren für ein Informationsverarbeitungsgerät. | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE69726795T2 (de) | Kodierungsverfahren des Verzeichnisstatus in einem gemeinsamen, verteilten Speichersystem mit koherenten Pufferspeichern | |
DE2117581B2 (de) | Einrichtung zur Adressenprüfung | |
DE69227740T2 (de) | Verarbeitungsanordnung zur dynamischen Adressübersetzung in einem Datenverarbeitungssystem | |
DE69629331T2 (de) | System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie | |
DE4323929A1 (de) | Software-geführtes Mehrebenen-Cache-Speichersystem | |
EP0009625B1 (de) | Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher | |
DE19810784B4 (de) | Rechnersystem | |
DE69726062T2 (de) | Verfahren und Vorrichtung zur Speichervorrichtungssteuerung in einem Informationsverarbeitungssystem | |
DE2331394B1 (de) | Datenverarbeitungsanlage mit virtueller adressierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |