DE3131341C2 - - Google Patents

Info

Publication number
DE3131341C2
DE3131341C2 DE3131341A DE3131341A DE3131341C2 DE 3131341 C2 DE3131341 C2 DE 3131341C2 DE 3131341 A DE3131341 A DE 3131341A DE 3131341 A DE3131341 A DE 3131341A DE 3131341 C2 DE3131341 C2 DE 3131341C2
Authority
DE
Germany
Prior art keywords
buffer memory
register
data
memory
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE3131341A
Other languages
English (en)
Other versions
DE3131341A1 (de
Inventor
David Ontario Ca Kroft
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.)
Control Data Corp
Original Assignee
Control Data Corp
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 Control Data Corp filed Critical Control Data Corp
Publication of DE3131341A1 publication Critical patent/DE3131341A1/de
Application granted granted Critical
Publication of DE3131341C2 publication Critical patent/DE3131341C2/de
Granted 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Description

Die Erfindung bezieht sich auf eine Pufferspeicheranordnung der im Oberbegriff des Patentanspruchs 1 genannten Art.
Pufferspeicher, die auch als Notizblockspeicher verwendet werden, weisen eine höhere Zugriffsgeschwindigkeit als der Hauptspeicher eines Digitalrechnersystems auf und werden zur Speicherung häufig benötigter Daten verwendet, um auf diese Weise die Gesamtzugriffszeit des Systems zu verkleinern.
In der US-PS 39 49 379 ist die Idee eines Pufferspeichers, der an dieser Stelle als Parallelspeicher bezeichnet wird, hinsichtlich der Verhinderung einer Sperrung oder Blockierung nach einem Fehlzugriff auf eine Adresse für den Fall nur gestreift, bei dem Daten in dem Parallelspeicher nicht vorhanden sind. Die Blockierung oder Sperrung wird weitgehend dadurch erreicht, daß drei getrennte Parallelspeicher verwendet werden. Die Sperrung wird weiterhin dadurch verhindert, daß eine Block- Werterneuerung für eine vorhergehende Fehlzugriff-Adresse parallel zu nachfolgenden Zugriffen durch die Verwendung eines Schreib-Speicherregisters ermöglicht wird. Diese letztere Verhinderung einer Blockierung oder Sperrung wird jedoch lediglich in den einfachsten Situationen erreicht, bei denen beispielsweise lediglich ein Datenblock zu einer vorgegebenen Zeit erneuert wird, oder wenn keine Zugriffe an einen Datenblock erfolgen, der erneuert wird, oder wenn lediglich ein Schreibbefehl für jedes Wort des Blockes bei jeder Gesamt-Blockerneuerung vorhanden sein kann. Insgesamt zeigt diese US-PS die Möglichkeit und den Vorteil der Verhinderung einer Blockierung eines Parallelspeichers oder eines Pufferspeichers, schlägt die Verwendung eines derartigen Speichers jedoch nur in den einfachsten Fällen vor. Es ist darauf hinzuweisen, daß eine große Wahrscheinlichkeit eines Zugriffs an ein anderes Wort in dem gleichen Datenblock besteht, wobei das Prinzip unter dem Nutzen des Pufferspeichers als Nebenzugriff bezeichnet wird.
Die US-PS 38 96 419 zeigt die Möglichkeit des Verhinderns einer Sperrung eines Pufferspeichers, wobei diese Sperrung jedoch nur bei Speicheroperationen verhindert wird. Dieser bekanne Pufferspeicher ermöglicht autonome nichtüberlappte Blockladevorgänge, doch ergibt sich eine Sperrsituation bei einem Fehlzugriff oder bei einer fehlenden Übereinstimmung. Lediglich das Laden des Pufferspeichers nach dem Empfang der Daten von dem Hauptspeicher erfolgt hierbei überlappt.
In der US-PS 39 28 857 ist das Problem einer Befehlseinheit-Sperrung aufgrund einer Speicherkonkurrenz beschrieben. Die beschriebene Lösung dieses Problems besteht darin, einen getrennten Befehlspuffer vorzusehen, um die Speicherkonkurrenzsituation von den Operanden-Abruf- und den Befehls-Abruf-Teilen des Zyklus auf die Operanden-Abruf- und Befehls- Vorabruf-Teile des Speicherzyklus zu verlagern. Wenn der Befehlspuffer ausreichend groß wäre und Operanden-Abrufeigenschaften aufweisen würde, so würde dieses Problem im wesentlichen beseitigt sein. Eine weitere Möglichkeit des genannten Problems besteht darin, einen Pufferspeicher für sowohl Operanden als auch Befehle vorzusehen, wobei ein Mechanismus vorgesehen wird, der eine Sperrung in einem Fehlzugriff-Fall verhindert. Diese Patentschrift löst jedoch nicht das Problem einer Pufferspeichersperrung aufgrund eines Mißerfolges beim ersten Zugriff eines aus vielen Operandenzugriffen bestehenden Befehls. Dies ist die Situation, bei der alle Speicherzugriffe von einer Ablaufsteuereinheit erfolgen. Weiterhin ergibt sich bei dieser bekannten Mehrfachspeichersituation ein erhebliches Problem dann, wenn die Daten in mehr als einem der Speicher möglicherweise die gleichen Daten sind, und die Werterneuerung wird äußerst unhandlich.
Aus der DE-OS 28 54 286 ist weiterhin eine Pufferspeicheranordnung der eingangs genannten Art bekannt. Wenn bei dieser Pufferspeicheranordnung die Zentralverarbeitungseinheit die Adresse der benötigten Daten in dem Hauptspeicher bestimmt hat, wird die Adresse an eine Pufferspeicher- Steuereinheit gesandt und in ein Adressenregister eingeführt. Der Speicherplatz-Adressenteil des Adressenregisters ermöglicht die Weiterleitung von Statussignalen an ein Entscheidungsnetzwerk, wobei diese Statussignale beispielsweise eine Voll-Leer-Anzeige, eine Anzeige für ein anstehendes Bit und eine Fehler-Block-Anzeige umfassen. Wenn ein Treffer festgestellt wird, so befinden sich die gültigen Daten in der Pufferspeichereinheit. Bei einem Fehlzugriff müssen die benötigten Daten aus dem Hauptspeicher entnommen werden. Auch in diesen Fall tritt daher eine Blockierung auf, weil bei einem derartigen Fehlzugriff die Daten erst aus dem Hauptspeicher entnommen werden müssen.
Der Erfindung liegt die Aufgabe zugrunde, ein Blockieren bis zu einer vorgegebenen Anzahl von Fehlzugriffen auf den Pufferspeicher zu verhindern und eine Feststellung der Übereinstimmung der Daten während der Übertragung von dem Zentralspeicher zum Pufferspeicher zu ermöglichen, wobei das Blockladen des Pufferspeichers vollständig autonom und vollständig überlappt erfolgen kann.
Diese Aufgabe wird durch die im kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale gelöst.
Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
Die erfindungsgemäße Pufferspeicheranordnung ermöglicht die Verwendung eines einzigen Pufferspeichers, wobei eine Sperrung der Pufferspeicheranordnung bei Auftreten von Fehlzugriffen sehr weitgehend verhindert ist, ohne daß sich ein unerwünscht hoher Aufwand ergibt. Die erfindungsgemäße Pufferspeicheranordnung verhindert nicht nur eine Sperrung bis zu einer vorgegebenen Anzahl von Fehlzugriff-Situationen, sondern ermöglicht weiterhin den Zugriff auf Daten, die von einem Reservespeicher oder dem Hauptspeicher überführt werden, wobei das blockweise Laden des Pufferspeichers vollständig autonom und vollständig überlappt erfolgt. Auf diese Weise ermöglicht die Verwendung eines einzigen Pufferspeichers einen wirkungsvollen Betrieb bei geringem Aufwand.
Ausführungsbeispiele der Erfindung werden im folgenden anhand der Zeichnungen erläutert.
In der Zeichnung zeigt
Fig. 1 ein Blockschaltbild einer Ausführungsform der Pufferspeicheranordnung
Fig. 2A und 2B zusammen bei Anordnung von links nach rechts ein Blockschaltbild einer Ausführungsform eines Fehl-Informationshalteregisters und eines Fehl-Informations-Vergleicher- und Status-Sammelnetzwerks
Fig. 3 eine Tabelle, die die Vorgänge angibt, die die Markier- und -Steuereinheit bei einem vorhergehenden Fehl-Treffer ausführt.
Die in Fig. 1 dargestellte Ausführungsform der Pufferspeicheranordnung weist einen Pufferspeicher 12 auf, der über eine Sammelschiene 16 mit einem eine Auswahleinrichtung bildenden Auswahlnetzwerk 14 für Pufferspeicher-Adressen- und -Dateneingänge gekoppelt ist. Das Auswahlnetzwerk 14 weist zwei mögliche Eingänge für den Pufferspeicher 12 auf.
Eine Markier- und -steuereinheit 18 ist über eine Adressen- und Datensammelschiene 20 mit dem Auswahlnetzwerk 14 gekoppelt. Die Markier- und -steuereinheit 18 empfängt Eingänge von einer (nicht gezeigten) Zentraleinheit- Befehlseinheit an einer Sammelschiene 22 und von einer (nicht gezeigten) Zentraleinheit-Ablaufeinheit an einer Sammelschiene 24. Die Markier- und -steuereinheit 18 weist eine Zentralspeicher- Adressen- und -Sammelschiene 23 auf, die mit einer Speicheranforderungseinheit 26 in Verbindung steht, die ihrerseits mit einem (nicht gezeigten) Rechner-Zentralspeicher über eine Sammelschiene 28 verbunden ist. Ein Fehl-Informationshalteregister 30 liefert einen weiteren Eingang für die Pufferspeicheradresse an das Auswahlnetzwerk 14. Das Fehl-Informationshalteregister 30 empfängt weiterhin einen Eingang von der Markier- und -steuereinheit 18 über eine Adressen- und Steuersammelschiene 32. Die von dem Fehl-Informationshalteregister 30 empfangenen Adressen sind sowohl die Eingangsanforderungsadressen als auch die Pufferspeicheradressen.
Ein Fehl-Informations-Vergleicher- und -Status-Sammelnetzwerk 34 ist über eine Anzahl von Adressen und Status- Sammelschienen 33 mit dem Fehl-Informationshalteregister 30 verbunden. Das Fehl-Informations-Vergleicher- und -Status-Sammelnetzwerk 34 empfängt eine Eingangsanforderungsadresse an einer Sammelschiene 36 von der Markier- und -steuereinheit 18 und gibt Statusinformationen an eine Sammelschiene 38 und dann an die Markier- und -steuereinheit 18 ab.
Ein Eingangsstapelspeicher 40 liefert einen zweiten Dateneingang an das Auswahlnetzwerk 14 an einer Datensammelschiene 42, die mit einer Adressensammelschiene 31 von dem Fehl-Informationshalteregister 30 kombiniert wird, um den vollständigen zweiten Eingang an das Auswahlnetzwerk 14 zu bilden. Der Eingangsstapelspeicher 40 empfängt Daten von einem Zentralspeicherempfänger 44, der seinerseits das Ausgangssignal von dem Rechner-Zentralspeicher an einer Sammelschiene 48 empfängt. Ein Steuerpfad 46 ist zwischen dem Zentralspeicherempfänger 44 und dem Fehl-Informationshalteregister 30 vorgesehen. Daten können von dem Zentralspeicherempfänger 44 direkt an einen Datenpfad 50 zu einem Auswahlnetzwerk 56 ausgegeben werden, das einen Ausgang 58 aufweist, der mit einer (nicht gezeigten) Zentraleinheit eines Rechnersystems verbunden ist. Der Eingangsstapelspeicher 40 weist weiterhin einen Datenpfad 52 auf, der mit dem Auswahlnetzwerk 56 verbunden ist. Schließlich weist der Pufferspeicher 12 einen Datenausgangspfad 54 auf, der mit der Auswahleinheit 56 verbunden ist, so daß irgendeiner der drei Dateneingänge als Ausgang an die Zentraleinheiten (ZE) des Rechnersystems ausgewählt werden kann.
In den Fig. 2A und 2B ist der Aufbau des Fehl-Informationshalteregisters 30 und des Fehl-Informations- Vergleicher- und -Status-Sammelnetzwerkes 34 gezeigt. Das Fehl-Informationshalteregister besteht seinerseits aus einer vierfachen Anzahl von getrennten Registern: A) Pufferspeicher-Adressenregister 110, B) Eingangsanforderungsadressenregister 112, C) Markierregister 114, D) Sende-an-ZE-Markierregister 116, E) In-Eingangsstapel-Markierregister 118, F) Teilschreibcoderegister 120, und G) Steuerinformationsregister 122. Die Register 110, 112, 114, 116, 118, 120, 122 speisen das Fehl-Informations-Vergleicher- und -Status-Sammelnetzwerk 34.
Das Fehl-Informations-Vergleicher- und -Status-Sammelnetzwerk 34 besteht aus einem Vierweg-Vergleicher 124, einem Satz von Wählern 126, 128, 130, 132 zum Aussenden von Statusinformationen an die Markier- und -steuereinheit 18, einem Satz von Wählern 134, 136 zur Aussendung der Pufferspeicheradresse und des Teilschreibcodes an das Auswahlnetzwerk 14, einem Satz von Wählern 138, 140, 142, 144 zur Aussendung von Steuersignalen, ausgewählten Markierungen und Sende-an-ZE-Indikatoren an den Zentralspeicherempfänger 44, aus zwei Netzwerken 146, 148 zur Bildung des logischen Produktes bzw. der logischen Summe für den "vollständig geschrieben"- und den "teilweise geschrieben"- Status sowie aus einem Treffer-Auflösungsnetzwerk 150 zur Bestimmung des Einfach- und Mehrfach-Treffer-Status für die Markier- und -steuereinheit 18 aus den vier Vergleicherausgängen 152. Die Wähler 138, 140, 142, 144 weisen eine Wählersteuerung 154 auf, die von dem Zentralspeicherempfänger 44 geliefert wird. Diese Wählersteuerung 154 wird von dem zurück gelieferten Markier-Code des Rechner-Zentralspeichers abgeleitet. Die Wähler 134, 136 weisen eine Wählersteuerung 156 auf, die von der verzögerten Wählersteuerung 154 abgeleitet ist. Die Wähler 126, 128, 130, 132 weisen eine Wählersteuerung 158 auf, die aus den Ausgängen 152 und einer Markier- Wählsteuerung 160 zusammengesetzt ist. Die Markier- Auswahlsteuerung wird von den Eingangsanforderungs-Adressen-Bits niedriger Ordnung abgeleitet.
In den vergangenen Jahren wurden in der Literatur über Rechenanlagen verschiedene Pufferspeicheranordnungen in großem Umfang beschrieben, die bestimmte allgemeine Programmier-Idiosynkrasien verwenden, um eine maximale Trefferrate zu erzielen. In der vorliegenden Beschreibung wird die Trefferrate als die Wahrscheinlichkeit definiert, daß ein angeforderter Datenteil in dem Pufferspeicher gespeichert ist. Einige dieser Konzepte sind in den eingangs genannten Patentschriften erläutert, doch nutzen diese Konzepte weder die dem Pufferspeicher eigene Dual- Eingangseigenschaft noch die Zentraleinheit-Befehle vom Vielfach-Datenbezugstyp aus. Es wurde festgestellt, daß unabhängig davon, wie hoch die Pufferspeicher-Trefferrate ist, ein Pufferspeicher-Fehlzugriff unerwünschte Rückwirkungen auf nachfolgende Pufferspeicher-Bezugnahmen hat. Diese unerwünschten Folgen bestehen in der Notwendigkeit, darauf zu warten, bis die nicht vorhandenen angeforderten Daten oder Informationen, die im folgenden als Fehl-Informationen bezeichnet werden, von dem Rechner-Zentralspeicher empfangen wurden, wobei weiterhin möglicherweise auch eine Erneuerung der Speicherinformationen des Pufferspeichers abgewartet werden muß. Für bestimmte Fälle erfordern die Pufferspeicher-Bezugnahmen nach einem Fehl-Zugriff keine Informationen über Daten, die nicht in dem Pufferspeicher enthalten sind, doch können diese Informationen und Daten dem Pufferspeicher nicht entnommen werden, solange der Pufferspeicher gesperrt ist, um die Daten aus dem Rechner-Zentralspeicher zu entnehmen.
Zur Vervollständigung der Definition ist festzustellen, daß ein Pufferspeicher irgendein kleiner Speicher mit schnellem Zugriff ist, der die Daten in einem Rechnersystem enthält, auf die zuletzt zugegriffen wurde, und die Daten, die sich in der unmittelbaren Nachbarschaft dieser Daten in einem logischen Sinne befinden. Weil die Zugriffszeit dieses Pufferspeichers üblicherweise um eine Größenordnung schneller ist als die Zugriffszeit des Rechner-, Haupt- oder -Zentralspeichers, und weil die übliche Programmpraxis darin besteht, auf örtlich lokalisierte Daten zuzugreifen, kann die effektive Speicherzugriffszeit in einem Rechnersystem, in dem ein Pufferspeicher eingefügt ist, beträchtlich verringert werden. Die zusätzlichen Kosten für den Pufferspeicher zeigen im Vergleich zu den Kosten eines Rechner-Zentralspeichers allein den guten Kostenwirkungsgrad des Pufferspeichers aufgrund der verringerten Zugriffszeit.
Der Konstruktion des Pufferspeichers und insbesondere dem Problem der Auswahl der optimalen Pufferspeicher-Puffergröße und den Speicherplatzzuordnungs- und Ersatzalgorithmen wurden viele Untersuchungen der möglichst weitgehenden Vergrößerung der Trefferrate gewidmet. In der vorliegenden Beschreibung ist die Blockgröße als die Anzahl von Bytes, die bei einem Fehl-Zugriff oder einer Fehl-Information angefordert werden müssen, definiert. Ein weiteres Verfahren der Pufferspeicher-Betriebseigenschaften zur Vergrößerung der Trefferrate besteht darin, einen selektiven Vor-Abruf vorzusehen. Derartige Verfahren setzen voraus, daß ein Pufferspeicher lediglich eine Eingangsanforderung zu einer vorgegebenen Zeit bearbeiten kann, und daß bei einem Fehl-Zugriff der Pufferspeicher besetzt bleibt und die Anforderung erfüllt, bis die Daten von dem Rechner-Zentralspeicher empfangen worden sind. Dies wird als Pufferspeicher-Sperrung oder Eingangssperrung bezeichnet.
Die dargestellte Ausführungsform des Pufferspeichers vergrößert die Wirksamkeit eines normalen Pufferspeichers dadurch, daß die natürliche Dual-Eingangseigenart des Pufferspeichers und vieler Datenbezugsbefehle ausgenutzt wird. Mit anderen Worten heißt dies, daß es äußerst zweckmäßig sein würde, eine Eingangsanforderung in den Pufferspeicher unabhängig von irgendwelchen Fehl-Zugriffen zu leiten, und zwar mit der Pufferspeicher-Treffer- Durchsatzrate. In diesem Fall würde der Befehlsabruf und/oder -vorabruf für die Rechner-Ablaufeinheit vollständig transparent sein. Für Befehle, die eine Anzahl von Datenbezugnahmen erfordern, kann ihre Anforderung fast vollständig überlappt werden. Es ist nicht notwendigerweise möglich, ohne übermäßige Kosten zu dieser Zeit Anforderungen in den Pufferspeicher unbegrenzt mit der Treffer-Durchsatzrate einzuleiten. Unter der Annahme eines Systems mit annehmbaren Kosten ergibt sich eine Grenze, die auftritt, wenn eine Anzahl von Fehl-Zugriffen nahe aufeinander folgt. Diese Grenze wird durch die Anzahl von Fehl-Zugriffen hervorgerufen, die noch nicht vollständig verarbeitet wurden und die der Pufferspeicher gleichzeitig ohne Eingangssperrung verfolgen muß. Die Eingangsdatenstromrate bei anderen bekannten Pufferspeicherorganisationen hängt vollständig von der Trefferrate ab.
Das Fehl-Informationshalteregister 30 enthält ein Fehl-Informations-/Statushalte-Register für jeden noch nicht gelösten Fehl-Zugriff, der gleichzeitig verarbeitet wird. Der Vergleicher 124 ist ein dedizierter n-Weg-Vergleicher, wobei n die Anzahl von Registern in dem Fehl- Informationshalteregister 30 ist, um Treffer für Daten zu registrieren, die gerade vom Zentralspeicher des Rechnersystems aus überführt werden. Der Eingangsstapelspeicher 40 muß die Gesamtzahl von empfangenen Datenworten halten können, die möglicherweise noch ausstehen. Die Größe des Eingangsstapelspeichers 40 ist entsprechend gleich der Blockgröße in Worten, multipliziert mit der Anzahl von Registern, die in dem Fehl-Informationshalteregister 30 enthalten sind. Bei dem hier beschriebenen System wurde festgestellt, daß die Anzahl von vier Registern in dem Fehl-Informationshalteregister 30 eine optimale Anzahl hinsichtlich des Kostenwirkungsgrades der ausgeführten Konstruktion darstellt. Es ist zu erkennen, daß innerhalb des Rahmens der vorliegenden Erfindung mehr oder weniger Fehl-Informationshalteregister vorgesehen werden können, und zwar in Abhängigkeit von den Notwendigkeiten der jeweiligen Anwendung. Je mehr Fehl-Informationshalteregister vorgesehen sind, desto mehr nähert man sich der theoretischen Grenze der Pufferspeicher-Trefferdurchsatzrate an.
Unter erneuter Bezugnahme auf Fig. 1 kann die Pufferspeicheranordnung spezieller als ein teilassoziativer Pufferspeicher unter Verwendung einer Markier- und -steuereinheit 18 und eines Pufferspeichers 12 beschrieben werden, wobei diese Teile an sich bekannt sind. In gleicher Weise sind die Zentralspeicher- Schnittstellenblöcke, die aus der Speicheranforderungseinheit 26 und dem Zentralspeicherempfänger 44 bestehen, an sich bekannt. Die speziellen Elemente, die in der Fig. 1 gezeigt sind und die die Verbesserung der Pufferspeicheranordnung ergeben, sind das Fehl-Informationshalteregister 30, das Fehl-Informations-Vergleicher- und -Status-Sammelnetzwerk 34 und der Eingangsstapelspeicher 40. Die Fehl-Informationshalteregister enthalten alle erforderlichen Informationen sowohl zur richtigen Handhabung der von dem Rechner-Zentralspeicher empfangenen Daten als auch zur Information der Haupt-Pufferspeichersteuereinheit über das Fehl-Informations-Vergleicher- und -Status-Sammelnetzwerk 34 hinsichtlich aller Treffer und anderer Statusbedingungen von Daten bei der Überführung von dem Rechner-Zentralspeicher. Der Eingangsstapelspeicher 40 ist erforderlich, damit der Hauptpuffer des Pufferspeichers für überlappte Lese- und Schreibvorgänge zur Verfügung bleibt. Diese Pufferspeicheranordnung ermöglicht es, daß Daten, die gerade von dem Rechner-Zentralspeicher empfangen werden oder sich im Eingangsstapelspeicher befinden, unmittelbar der anfordernden Zentraleinheit über die Auswahleinheit 56 und den Datenpfad 58 zugeführt werden.
Die Anzahl der Register in dem gesamten Fehl-Informationshalteregister 30 ist wesentlich. Die durch zusätzliche einzelne Register erzielte Verbesserung, nämlich die Verringerung der mittleren Systemverzögerung, nimmt sehr schnell mit der Anzahl von Registern hinsichtlich der Betriebseigenschaften der Einheit ab. Diese Tatsache ist vorteilhaft, weil sich die Kosten mit der Anzahl der Register, die zur Ausführung des Systems verwendet werden, beträchtlich vergrößern. Die mittlere Verzögerungszeit in diesem System ergibt sich aufgrund einer Sperrung bei ausstehenden, nicht bearbeiteten Fehl- Zugriffen. Diese Verzögerungszeit hängt selbstverständlich auch von Pufferspeicher-Eingangsanforderungs- und -Trefferraten ab. Im entarteten Fall ist ein Fehl-Informationshalteregister mit verringerter Größe für die hier beschriebene Pufferspeicheranordnung erforderlich. Zwei Fehl-Informationshalteregister ermöglichen eine Überlappung, während ein Fehl-Zugriff noch aussteht, doch würde eine Sperrung in dem Pufferspeichereingang auftreten, wenn Mehrfach-Zugriffe noch ausstünden. Kostenerwägungen und Erwägungen hinsichtlich der jeweils erzielten zusätzlichen Verbesserung des Wirkungsgrades scheinen anzudeuten, daß vier Register optimal sind.
Im folgenden wird die notwendige Information, die in einem der Register in dem Fehl-Informationshalteregister 30 enthalten sein muß, beschrieben. Zunächst muß die Pufferspeicheradresse für den Pufferspeicher 12 zusammen mit der Eingangsanforderungsadresse gespeichert werden. Die Pufferspeicheradresse wird gespeichert, damit bekannt ist, wo die zurückkehrenden Daten von dem Rechner-Zentralspeicher untergebracht werden müssen. Die Eingangsanforderungsadresse wird gespeichert, damit bestimmt werden kann, ob bei nachfolgenden den Anforderungen die angeforderten Daten sich auf ihrem Weg vom Rechner-Zentralspeicher befinden. Zweitens werden Eingangsanforderungs-Markierungen zusammen mit den Sende-an-ZE-Markierungen gespeichert. Die Leitungen für die Markiersignale für Eingangs- und Rechner-Zentralspeicheranforderungen sind in Fig. 1 nicht gezeigt um diese Zeichnung nicht zu kompliziert zu machen; die Markierung wird Adressen bei der Eingabe und Daten bei der Ausgabe zugeordnet. Diese Information ermöglicht es dem Pufferspeicher, den anfordernden Einheiten der Zentraleinheit lediglich die angeforderten Daten zu liefern und sie mit der richtigen Markierung zurückzuleiten. Drittens werden In-Eingangsstapel-Markierungen verwendet, um das Auslesen von Daten direkt aus dem Eingangsstapel zu ermöglichen. Viertens wird ein Teilschreibcode, der beispielsweise ein Bit pro Byte für jedes Byte des Teilschreibvorganges sein kann, für jedes Wort gespeichert, um anzuzeigen, welche Bytes der Worte, die überführt werden, in den Pufferspeicher eingeschrieben wurden. Dieser Code steuert daher den Pufferspeicher-Pufferschreiberneuerungsvorgang und ermöglicht die Vernichtung von Daten für Bereiche, die nach einer Anforderung vollständig geschrieben wurden. Daher hat der Pufferspeicher die Fähigkeit, Teilschreib- Eingangsanforderungen ohne Löschen des Pufferspeichers zu verarbeiten. Dieser Teilschreibcode kann fortgelassen werden, wenn es in einer Systemkonstruktion annehmbar ist, einen Block des Pufferspeichers 12 bei allen Teilschreib-Eingangsanforderungen oder vorzugsweise lediglich bei Teilschreib-Eingangsanforderungen für ein Wort in einem Block zu löschen, der gerade von dem Haupt-Speicher überführt wird. Schließlich enthält das Fehl-Informationshalteregister bestimmte Steuerinformationen 122, wie beispielsweise das Daten-gültig-Bit für das Register, das Überhol-Bit zur Anzeige dafür, daß das Register gültige Informationen lediglich zur Rückführung von angeforderten Daten, nicht jedoch für Erneuerungen der Daten in dem Puffer des Pufferspeichers oder Daten für Treffer bei der Datenübertragung sowie die Anzahl von Worten des Blockes, die empfangen und, falls erforderlich, in den Pufferspeicher eingeschrieben wurden. Entsprechend enthält jedes Fehl-Informationshalteregister 30 Mehrfach-Register, die jeweils zur Speicherung bestimmter Daten bestimmt sind und die zusammen eine vollständige Einheit bilden. Diese einzelnen Teile können wie folgt zusammengefaßt werden:
  • (a) Pufferspeicheradresse; Pufferspeicheradressenregister 110 (C-Bits)
  • (b) Eingangsanforderungsadresse; Eingangsanforderungsadresse 112 (I-Bits)
  • (c) Eingangsmarkierung, eine pro Wort; Markierregister 114 (T-Bits pro Markierung)
  • (d) Sende-an-ZE-Markierungen, eine pro Wort; Sende-an-ZE- Markierregister 116 (ein Bit pro Markierung)
  • (e) In-Eingangsstapel-Markierungen, eine pro Wort; In- Eingangsstapelspeicher-Register 118 (ein Bit pro Markierung)
  • (f) Teilschreibcodes, eines pro Wort; Teilschreib-Coderegister 120 (P Bits pro Code)
  • (g) Steuerinformation; Steuerinformationsregister 122
  • (h) Anzahl der verarbeiteten Worte von Blöcken (zwei Bits pro Code)
  • (i) Gültig-Informations-Markierung; (ein Bit pro Markierung) und
  • (j) Veraltet-Markierung für Informationen, die für Pufferspeicher- Datenerneuerung nicht gültig sind, oder für Fehl-Informationshalteregister-Treffer bei gerade überführten Daten (ein Bit pro Markierung).
Die Betriebsweise der dargestellten Ausführungsform der Pufferspeicheranordnung kann in zwei grundlegenden Abschnitten erläutert werden. Der erste Abschnitt bezieht sich auf die Zentralspeicherempfänger-/Eingangsstapel-Operationen, während sich der zweite auf die Markier-Steueroperationen bezieht. Für Speicherempfänger- Eingangsstapelspeicher-Operationen sind die Felder in dem Fehl-Informationshalteregister, die abgefragt werden, die folgenden:
  • (a) Sende-an-ZE-Markierung,
  • (b) Eingangsmarkierung,
  • (c) Pufferadresse des Pufferspeichers,
  • (d) Teilschreibcodes,
  • (e) Veraltet-Markierung und
  • (f) Gültig-Markierung.
Wenn ein Wort vom Speicher empfangen wird, wird es der anfordernden Einheit der Zentraleinheit (ZE) zugeführt, wenn die Sende-an-ZE-Markierung gesetzt ist. Die richtige Markierung begleitet die Daten. Dieses Wort wird weiterhin in den Eingangsstapelspeicher 40 eingeschrieben, wenn das Wort nicht vorher vollständig in den Pufferspeicher 12 eingeschrieben wurde oder die Fehl-Informationshalteregister- Markierung nicht "überholt" oder "veraltet" ist. Die Datenworte werden aus dem Eingangsstapelspeicher 40 auf einer "Erster ein, Erster aus" -Basis entfernt, wenn der Pufferspeicher zur Verfügung steht, und sie werden in den Pufferspeicher 12 unter Verwendung der Pufferspeicheradressen- und Teilschreibcode-Felder eingeschrieben. Selbstverständlich muß das Fehl-Informationshalteregister 30 eine gültige Information enthalten, wenn sie abgefragt wird, oder es wird ein Fehlersignal erzeugt.
Es ist erforderlich, die Pufferspeicher-Datenmarkierungen vollständiger zu erläutern. Bei einem Fehl-Zugriff fordert der Pufferspeicher einen Block von Worten von dem Rechner-Zentralspeicher an. Zusammen mit jedem Wort wird eine Pufferspeicher-Markierung ausgesandt, die auf ein bestimmtes zugeordnetes Fehl-Informationshalteregister in dem Fehl-Informationshalteregister 30 zeigt und anzeigt, auf welches Wort des Blockes derzeit zugegriffen werden soll. Es sei bemerkt, daß die Pufferspeicheranordnung in dem Register des Fehl- Informationshalteregisters 30 die Markierung der anfordernden Einheit speichert. Diese Markierung schließt das verbleibende offene Glied für die Handhabung von Daten, die von dem Rechner-Zentralspeicher zurückgeführt werden, und beseitigt alle Einschränkungen für den Speicher hinsichtlich der Reihenfolge der Antworten. Das heißt, daß früher angeforderte Worte für einen Fehlzugriff oder für Fehlzugriffe außer der Reihe rückgeführt werden können, und zwar in Abhängigkeit von der Organisation des Rechner-Zentralspeichers. Diese Tatsache allein könnte andere Pufferspeicherorganisationen einschränken.
Die Felder des Fehl-Informationshalteregisters 30, die während der Speicherempfänger-/Eingangsstapel-Operationen hinsichtlich ihrer Daten erneuert werden, sind folgende:
  • (a) In-Eingangsstapelspeicher-Markierungen,
  • (b) Teilschreibcodes,
  • (c) Anzahl der verarbeiteten Worte des Blockes und
  • (d) Information-gültig-Markierung.
Die In-Eingangsstapelspeicher-Markierungen werden gesetzt, wenn das Datenwort in den Eingangsstapelspeicher 40 eingeschrieben wird, und sie werden gelöscht, wenn die Daten aus dem Eingangsstapelspeicher entfernt und in den Pufferspeicher eingeschrieben werden. Der Teilschreibcode wird weiterhin gesetzt, um "vollständig geschrieben" anzuzeigen, wenn das Datenwort in den Pufferspeicher eingeschrieben wurde. Zusätzlich wird jedesmal dann, wenn ein Datenwort vernichtet wird, weil es vollständig geschrieben wurde, oder weil es eine "veraltet"-Fehl-Informationshalteregister- Anzeige aufweist, oder weil es in den Pufferspeicher eingeschrieben wurde, der Zähler für die Anzahl der verarbeiteten Worte weitergeschaltet. Wenn dieser Zähler überläuft, was anzeigt, daß alle Worte für einen Block empfangen wurden, so wird die "Gültig"- oder "Veraltet"- Fehl-Informationshalteregister-Markierung gelöscht.
Für die Markier-Steueroperation werden die folgenden Felder der Fehl-Informationshalteregistereinheit 30 abgefragt:
  • (a) Eingangsanforderungsadresse,
  • (b) Sende-an-ZE,
  • (c) In-Eingangsstapel-Markierungen,
  • (d) Teilschreibcodes,
  • (e) Gültig-Markierung und
  • (f) Veraltet-Markierung.
Die mit (a), (e) und (f) bezeichneten Felder werden zusammen mit der jeweiligen Eingangsanforderungsadresse und dem Fehl-Informations-Vergleicher- und -Status-Sammelnetzwerk 34 dazu verwendet, um zu bestimmen, ob sich ein Treffer für Daten ergibt, auf die vorher ein Fehl-Zugriff erfolgte und die noch verarbeitet werden, d. h. ein vorhergehender Fehl-Zugriff-Treffer. Wie dies in Fig. 3 gezeigt ist, werden die Teilschreibcodes in geeigneter Weise für einen vorhergehenden Fehl-Zugriff-Treffer mit einer Schreib-Eingangsfunktion gesetzt. Ein Teilschreibcode ist den Adressensammelschienen 20, 31, 32 nach Fig. 1 zugeordnet. Die Felder (b), (c) und (d) erzeugen den folgenden Status für den vorhergehenden Fehl-Zugriff- Treffer:
  • (a) teilweise geschrieben, was bedeutet, daß der Teilschreibcode zumindest ein gesetztes Bit aufweist (logische Summe);
  • (b) vollständig geschrieben, was bedeutet, daß der Teilschreibcode vollständig auf Eins gesetzt ist (logisches Produkt);
  • (c) In-Eingangsstapel und
  • (d) bereits angefordert, was bedeutet, daß die Sende-an- ZE-Markierung bereits gesetzt ist.
Die Tabelle nach Fig. 3 zeigt die Vorgänge, die in der Markier-Steuerung unter all diesen vorstehenden Bedingungen ausgeführt werden. Es sei bemerkt, daß ein Zugriff auf den Rechner-Zentralspeicher nur dann erfolgt, wenn das Wort bereits vorher angefordert wurde oder teilweise geschrieben wurde. Diese wenig häufigen Zentralspeicherzugriffe können durch den Fachmann ebenfalls mit Hilfe zusätzlicher Logik in dem Fehl- Informationshalteregister 30 und der Auswahleinheit 56 beseitigt werden.
Bei einem Fehl-Zugriff wird ein Register in dem Fehl-Informationshalteregister 30 zugeordnet und die folgenden Aufgaben werden erfüllt:
  • (a) die Gültig-Markierung wird gezeigt;
  • (b) die Veraltet-Markierung wird gelöscht;
  • (c) die Pufferspeicheradresse wird in dem Fehl-Informationshalteregister gespeichert;
  • (d) die Eingangsanforderungsadresse wird in dem zugeordneten Fehl-Informationshalteregister gespeichert;
  • (e) eine geeignete Sende-an-ZE-Markierung wird gesetzt und andere gelöscht;
  • (f) die Eingangsmarkierung wird an einer richtigen Position gespeichert;
  • (g) alle Teilschreibcodes, die dem zugeordneten Fehl-Informationshalteregister zugeordnet sind, werden gelöscht und
  • (h) alle Fehl-Informationshalteregister, die auf die gleiche Pufferspeicheradresse gerichtet sind, werden gelöscht, was bedeutet, daß der Teilschreibcode vollständig auf Eins gesetzt wird.
Es sei darauf hingewiesen, daß sich die Vorgänge (e) und (f) ändern, wenn die Pufferspeicherfunktion ein Vorgriff war, was bedeutet, daß alle Sende-an-ZE-Markierungen gelöscht werden und keine Markierung gespeichert wird. Der Vorgang (h) wird durchgeführt, um zu verhindern, daß Daten von einer vorhergehenden Zuordnung eines Pufferspeicher-Pufferblockes die derzeit zugeordneten Daten überschreiben. Bei einem Fehl-Zugriff und einem vorhergehenden Fehl-Zugriffs-Treffer und wenn der Pufferspeicherblock für die gleiche Eingangsadresse neu zugeordnet wurde, bevor alle Daten empfangen wurden, wird das Fehl-Informationshalteregister auf "Veraltet" gesetzt, um mögliche darauffolgende Mehrfach-Treffer in dem Fehl-Informations-Vergleicher- und -Status-Sammelnetzwerk 34 zu verhindern.
Es besteht tatsächlich eine Möglichkeit, daß ein vorhergehender Fehl-Zugriffs-Treffer für ein Datenwort entsteht, das gerade empfangen wird. In Abhängigkeit von dem Steuervorgang kann der entsprechende Sende-an-ZE-Markierungs- Ausgang dieses Wortes auf den Sendezustand gebracht werden oder das Wort kann aus dem Eingangsstapel 40 bei dem nächsten Untergruppenzyklus des Prozessors ausgelesen werden.
Damit es möglich ist, diese Pufferspeicher-Verbesserung einfacher zu untersuchen, ist es vorteilhaft, die Pufferspeicher- Eingangsfunktionen zum Löschen und Setzen der Gültig-Markierungen der Register des Fehl-Informationshalteregisters 30 hinzuzufügen. Ein Funktionscode, der den Pufferspeicher informiert, was zu erfolgen hat, ist jeder Eingangsanforderungsadresse an den Sammelschienen 22, 24 nach Fig. 1 zugeordnet. Dies ermöglicht es, die folgenden Fehlerzustände zu prüfen:
  • (a) die Pufferspeicher-Markierung zeigt auf ein ungültiges Fehl-Informationshalteregister;
  • (b) Mehrfach-Treffer in dem Fehl-Informationshalteregister- Komparator und
  • (c) vorhergehender Fehl-Zugriff-Trefferstatus vollständig geschrieben und nicht teilweise geschrieben.
Alle anderen Felder des Fehl-Informationshalteregisters können durch die Verwendung der vorstehenden speziellen Pufferspeicher-Eingangsfunktionen in Kombination mit den üblichen Eingangsfunktionen überprüft werden, die alle Kombinationen von Adressen, Markierungen und Daten haben.

Claims (4)

1. Pufferspeicheranordnung mit einem Pufferspeicher (12), mit einer Auswahleinrichtung (14), über die dem Pufferspeicher (12) Adressen- und Dateneingangssignale von einen Eingangsstapelspeicher (40) einschließenden Einrichtungen (18, 40) zugeführt werden, und mit einem Ausgangswahlnetzwerk (56), das einer Zentraleinheit Daten entweder von dem Pufferspeicher (12), von dem Eingangsstapelspeicher (40) oder von einem Zentralspeicherempfänger (44) zuführt, der Daten von einem Zentralspeicher des Rechnersystems empfängt, dadurch gekennzeichnet,
daß die Auswahleinrichtung (14) ein erstes Pufferspeicheradressen- und Dateneingangssignal von einer Markier- und Steuereinheit (18) und ein zweites Pufferspeicheradressen- bzw. Dateneingangssignal von einem Fehl-Informationshalteregister (30) bzw. dem Eingangsstapelspeicher (40) empfängt,
daß das Fehl- Informationshalteregister (30) ein Adressen- und Steuersignal von der Markier- und Steuereinheit (18) empfängt, sodaß das Fehl- Informationshalteregister (30) eine vorgegebene Anzahl von Zentralspeicheradressen enthalten kann, deren Daten bei Anforderung nicht in dem Pufferspeicher (12) aufgefunden wurden,
daß ein Fehl-Informationsvergleicher- und Statussammelnetzwerk (34) mit dem Fehl- Informationshalteregister (30) verbunden ist und Zentralspeicher- und Pufferspeicheradressen von der Markier- und Steuereinheit (18) empfängt und Statusinformationen an die Markier- und Steuereinheit (18) liefert,
daß der Zentralspeicherempfänger (44) mit dem Eingangsstapelspeicher (40) und mit dem Fehl-Informationshalteregister (30) verbunden ist, um Zentralspeicheradressen zugeordnete Daten an den Eingangsstapelspeicher (40) unter der Steuerung des Fehl- Informationshalteregisters (30) zu liefern, sodaß ein Blockieren der Pufferspeicheranordnung bei einer Adressierung des Pufferspeichers (12) und einem Fehlzugriff dadurch verhindert wird,
daß das Fehl- Informationshalteregister (30) Fehl-Adressen aufnimmt, bis der Zentralspeicherempfänger (44) die der Fehl-Adresse zugeordneten Daten empfängt, während die Markier- und Steuereinheit (18) weiterhin Pufferspeicheradressen über die Auswahleinrichtung (14) an den Pufferspeicher (12) liefert.
2. Pufferspeicheranordnung nach Anspruch 1, dadurch gekennzeichnet, daß das Fehl-Informationshalteregister (30) aus einer Anzahl von Registersätzen besteht, von denen jeder Satz ein Pufferspeicher-Adressenregister (110), ein Zentralspeicher- Adressenregister (112), ein Markierregister (114), ein Sende-an- Zentraleinheit-Indikatorenregister (116), ein Teilschreibcoderegister (120), ein In-Eingangsstapel-Indikatorenregister (118) und ein Steuerinformationsregister (122) enthält.
3. Pufferspeicheranordnung nach Anspruch 2, dadurch gekennzeichnet, daß das Fehl-Informationshalteregister (30) aus vier Registersätzen besteht.
4. Pufferspeicheranordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß das Fehl- Informationsvergleicher- und Statussammelnetzwerk (34) eine Anzahl von Wählern (126, 128, 130, 132) zur Aussendung von Statusinformationen an die Markier- und Steuereinheit (18), eine Anzahl von Wählern (134, 136) zur Aussendung von Pufferspeicheradressen- und Teilschreibcodes an die Auswahleinrichtung (14), eine Anzahl von Wählern (138, 140, 142, 144) zur Aussendung von Steuerinformationen und ausgewählten Merkier- und Sende-an- Zentraleinheit-Indikatorinformationen an den Zentralspeicherempfänger (44), Netzwerkeinrichtungen (146, 148) zur Bildung des logischen Produktes und der logischen Summe für vollständig ausgeschriebene und teilweise geschriebene Statusregister, und ein Treffer-Auflösungsnetzwerk (150) umfaßt, das aus den Vergleicherausgängen den Einfach- und Mehrfach-Trefferstatus von der Markier- und Steuereinheit (18) bestimmt.
DE19813131341 1980-08-26 1981-08-07 "pufferspeicherorganisation" Granted DE3131341A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/181,529 US4370710A (en) 1980-08-26 1980-08-26 Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses

Publications (2)

Publication Number Publication Date
DE3131341A1 DE3131341A1 (de) 1982-04-15
DE3131341C2 true DE3131341C2 (de) 1988-06-30

Family

ID=22664671

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19813131341 Granted DE3131341A1 (de) 1980-08-26 1981-08-07 "pufferspeicherorganisation"

Country Status (7)

Country Link
US (1) US4370710A (de)
JP (1) JPS5746375A (de)
AU (1) AU537492B2 (de)
CA (1) CA1151293A (de)
DE (1) DE3131341A1 (de)
FR (1) FR2489578B1 (de)
GB (1) GB2082808B (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4533995A (en) * 1981-08-03 1985-08-06 International Business Machines Corporation Method and system for handling sequential data in a hierarchical store
US4536836A (en) * 1981-11-27 1985-08-20 Storage Technology Corporation Detection of sequential data stream
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4897783A (en) * 1983-03-14 1990-01-30 Nay Daniel L Computer memory system
US4757445A (en) * 1983-09-12 1988-07-12 Motorola, Inc. Method and apparatus for validating prefetched instruction
US4710866A (en) * 1983-09-12 1987-12-01 Motorola, Inc. Method and apparatus for validating prefetched instruction
USRE34052E (en) * 1984-05-31 1992-09-01 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
US4942518A (en) * 1984-06-20 1990-07-17 Convex Computer Corporation Cache store bypass for computer
CA1241768A (en) * 1984-06-22 1988-09-06 Miyuki Ishida Tag control circuit for buffer storage
US4774654A (en) * 1984-12-24 1988-09-27 International Business Machines Corporation Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
JP2539357B2 (ja) * 1985-03-15 1996-10-02 株式会社日立製作所 デ−タ処理装置
JPS62145340A (ja) * 1985-12-20 1987-06-29 Toshiba Corp キヤツシユメモリ制御方式
US5029072A (en) * 1985-12-23 1991-07-02 Motorola, Inc. Lock warning mechanism for a cache
US5349672A (en) * 1986-03-17 1994-09-20 Hitachi, Ltd. Data processor having logical address memories and purge capabilities
US5237671A (en) * 1986-05-02 1993-08-17 Silicon Graphics, Inc. Translation lookaside buffer shutdown scheme
US5001624A (en) * 1987-02-13 1991-03-19 Harrell Hoffman Processor controlled DMA controller for transferring instruction and data from memory to coprocessor
CA1300758C (en) * 1988-03-07 1992-05-12 Colin H. Cramm Mechanism for lock-up free cache operation with a remote address translation unit
DE68924896T2 (de) * 1988-04-01 1996-07-25 Digital Equipment Corp Cachespeicher mit mindestens zwei füllgrössen.
US5038278A (en) * 1988-04-01 1991-08-06 Digital Equipment Corporation Cache with at least two fill rates
US5148536A (en) * 1988-07-25 1992-09-15 Digital Equipment Corporation Pipeline having an integral cache which processes cache misses and loads data in parallel
US5202969A (en) * 1988-11-01 1993-04-13 Hitachi, Ltd. Single-chip-cache-buffer for selectively writing write-back and exclusively writing data-block portions to main-memory based upon indication of bits and bit-strings respectively
KR900008516A (ko) * 1988-11-01 1990-06-04 미다 가쓰시게 버퍼 기억장치
US5125092A (en) * 1989-01-09 1992-06-23 International Business Machines Corporation Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5093777A (en) * 1989-06-12 1992-03-03 Bull Hn Information Systems Inc. Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack
GB2234613B (en) * 1989-08-03 1993-07-07 Sun Microsystems Inc Method and apparatus for switching context of state elements in a microprocessor
US5233702A (en) * 1989-08-07 1993-08-03 International Business Machines Corporation Cache miss facility with stored sequences for data fetching
US5506974A (en) * 1990-03-23 1996-04-09 Unisys Corporation Method and means for concatenating multiple instructions
US5224214A (en) * 1990-04-12 1993-06-29 Digital Equipment Corp. BuIffet for gathering write requests and resolving read conflicts by matching read and write requests
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
JPH079632B2 (ja) * 1991-06-18 1995-02-01 インターナショナル・ビジネス・マシーンズ・コーポレイション アドレス変換装置および方法
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
EP0568231B1 (de) * 1992-04-29 1999-03-10 Sun Microsystems, Inc. Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
DE69327981T2 (de) * 1993-01-21 2000-10-05 Advanced Micro Devices Inc Kombinierte Speicheranordnung mit einem Vorausholungspuffer und einem Cachespeicher und Verfahren zur Befehlenversorgung für eine Prozessoreinheit, das diese Anordnung benutzt.
US5689680A (en) * 1993-07-15 1997-11-18 Unisys Corp. Cache memory system and method for accessing a coincident cache with a bit-sliced architecture
US5787465A (en) * 1994-07-01 1998-07-28 Digital Equipment Corporation Destination indexed miss status holding registers
US5802588A (en) * 1995-04-12 1998-09-01 Advanced Micro Devices, Inc. Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer
US5778434A (en) 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
US5829010A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Apparatus and method to efficiently abort and restart a primary memory access
US5987567A (en) * 1996-09-30 1999-11-16 Apple Computer, Inc. System and method for caching texture map information
US6389031B1 (en) 1997-11-05 2002-05-14 Polytechnic University Methods and apparatus for fairly scheduling queued packets using a ram-based search engine
US7136068B1 (en) 1998-04-07 2006-11-14 Nvidia Corporation Texture cache for a computer graphics accelerator
US6081507A (en) * 1998-11-04 2000-06-27 Polytechnic University Methods and apparatus for handling time stamp aging
US6919895B1 (en) 1999-03-22 2005-07-19 Nvidia Corporation Texture caching arrangement for a computer graphics accelerator
US7155539B2 (en) * 2000-04-17 2006-12-26 Circadence Corporation Conductor gateway buffer prioritization
JP2002368850A (ja) * 2001-06-05 2002-12-20 Sony Corp 携帯無線端末装置
JP4417715B2 (ja) * 2001-09-14 2010-02-17 サン・マイクロシステムズ・インコーポレーテッド キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置
US7089362B2 (en) * 2001-12-27 2006-08-08 Intel Corporation Cache memory eviction policy for combining write transactions
EP1361518B1 (de) 2002-05-10 2013-08-07 Texas Instruments Incorporated Verminderung der Zugangsgesuche eines TAG-RAM Speichers und Erhöhung der Cachespeichergeschwindigkeit während eines Cache-Fehltreffers
US6983356B2 (en) * 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
US9858190B2 (en) * 2015-01-27 2018-01-02 International Business Machines Corporation Maintaining order with parallel access data streams
US20220004438A1 (en) * 2020-07-02 2022-01-06 Qualcomm Incorporated Gpu program multi-versioning for hardware resource utilization
CN112579482B (zh) * 2020-12-05 2022-10-21 西安翔腾微电子科技有限公司 一种非阻塞Cache替换信息表超前精确更新装置及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3292153A (en) * 1962-10-01 1966-12-13 Burroughs Corp Memory system
GB1196752A (en) * 1967-05-04 1970-07-01 Int Computers Ltd Improvements relating to Data Handling Arrangements.
GB1443777A (en) * 1973-07-19 1976-07-28 Int Computers Ltd Data processing apparatus
US3928857A (en) * 1973-08-30 1975-12-23 Ibm Instruction fetch apparatus with combined look-ahead and look-behind capability
US3840862A (en) * 1973-09-27 1974-10-08 Honeywell Inf Systems Status indicator apparatus for tag directory in associative stores
US3896419A (en) * 1974-01-17 1975-07-22 Honeywell Inf Systems Cache memory store in a processor of a data processing system
US4047157A (en) * 1974-02-01 1977-09-06 Digital Equipment Corporation Secondary storage facility for data processing
FR129151A (de) * 1974-02-09
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
US4056845A (en) * 1975-04-25 1977-11-01 Data General Corporation Memory access technique
JPS5263038A (en) * 1975-10-01 1977-05-25 Hitachi Ltd Data processing device
US4156906A (en) * 1977-11-22 1979-05-29 Honeywell Information Systems Inc. Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands
AU521383B2 (en) * 1977-12-16 1982-04-01 Honeywell Information Systems Incorp. Cache memory command circuit
US4195341A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Initialization of cache store to assure valid data

Also Published As

Publication number Publication date
FR2489578A1 (fr) 1982-03-05
FR2489578B1 (fr) 1987-08-07
CA1151293A (en) 1983-08-02
DE3131341A1 (de) 1982-04-15
AU7209481A (en) 1982-03-04
JPS5746375A (en) 1982-03-16
AU537492B2 (en) 1984-06-28
US4370710A (en) 1983-01-25
GB2082808A (en) 1982-03-10
GB2082808B (en) 1983-06-02

Similar Documents

Publication Publication Date Title
DE3131341C2 (de)
DE3151745C2 (de)
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE2515696C2 (de) Datenverarbeitungssystem
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE2806045A1 (de) Dv-system mit pufferspeicher
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE2054835C2 (de) Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2750721A1 (de) Ein/ausgabe-system
DE2241257A1 (de) Datenverarbeitende anlage
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE2856680C2 (de)
DE1499182B2 (de) Datenspeichersystem
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE2422732C2 (de) Hierarchische Speicheranordnung
DE2710477C2 (de)
DE3327465C2 (de)
WO2003048943A2 (de) Speicher für die zentraleinheit einer rechenanlage, rechenanlage und verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage
DE2750126C3 (de) Datenverarbeitungssystem mit einem Zwischenpufferspeicher

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee