DE4022885A1 - Verfahren zum neuadressieren eines speichers und speichersystem mit einer rangordnung - Google Patents

Verfahren zum neuadressieren eines speichers und speichersystem mit einer rangordnung

Info

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
Application number
DE4022885A
Other languages
English (en)
Other versions
DE4022885C2 (de
Inventor
Satoshi Izawa
Masaya Watanabe
Seiji Kaneko
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Publication of DE4022885A1 publication Critical patent/DE4022885A1/de
Application granted granted Critical
Publication of DE4022885C2 publication Critical patent/DE4022885C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address 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.
(1) Blockholprozeß
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.
(2) Holprozeß
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.
(3) Speicherprozeß
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.
(4) Neuadressierungs- bzw. Verschiebungsprozeß
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.
DE4022885A 1989-07-18 1990-07-18 Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem Expired - Fee Related DE4022885C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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