DE68925470T2 - Verfahren zum Abrufen von potentiell ungültigen Daten in einem Mehrrechnersystem - Google Patents

Verfahren zum Abrufen von potentiell ungültigen Daten in einem Mehrrechnersystem

Info

Publication number
DE68925470T2
DE68925470T2 DE68925470T DE68925470T DE68925470T2 DE 68925470 T2 DE68925470 T2 DE 68925470T2 DE 68925470 T DE68925470 T DE 68925470T DE 68925470 T DE68925470 T DE 68925470T DE 68925470 T2 DE68925470 T2 DE 68925470T2
Authority
DE
Germany
Prior art keywords
line
cache
sce
computer
status
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 - Fee Related
Application number
DE68925470T
Other languages
English (en)
Other versions
DE68925470D1 (de
Inventor
Lishing Liu
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE68925470D1 publication Critical patent/DE68925470D1/de
Application granted granted Critical
Publication of DE68925470T2 publication Critical patent/DE68925470T2/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories

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)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Description

  • Die Erfindung bezieht sich im allgemeinen auf Cachespeicher in einer Mehrrechnerumgebung und insbesondere auf ein Verfahren zum Abrufen von Daten aus einem Cachespeicher, die potentiell "ungültig", d.h. überholt sind.
  • Moderne, hochleistungsfähige Digitalrechner mit abgespeicherten Programmen rufen Befehle und Daten konventionell aus dem Hauptspeicher ab und speichern die abgerufenen Befehle und Daten in einem Cachespeicher. Ein Cache ist ein lokaler Speicher, der normalerweise viel kleiner und viel schneller als der Hauptspeicher des Computers ist. Alle hochleistungsfähigen Digitalrechner benutzen virtuell einen Cachespeicher und einige im Handel erhältliche Mikroprozessoren haben sogar lokale Cachespeicher.
  • Die Cachespeicher wurden entwickelt, weil es nicht möglich war, extrem große Speicher zu angemessenen Kosten zu bauen, die mit einer Zugriffszeit funktionieren, die den Pipeline- Rechnern unserer Tage entspricht. Es ist jedoch möglich, weniger kostspielige, kleine Speicher zu bauen, die mit dem Rechner Schritt halten können. Da der Rechner sofort auf einen Befehl und seine benötigten Daten im Cachespeicher zugreifen kann, beschleunigen Cachespeicher gewöhnlich die Computerleistung.
  • Normalerweise greift ein Rechner (CP) über seinen Cachespeicher auf die Daten im Hauptspeicher (MS) zu. Ein Cachespeicher ist gewöhnlich als eine zweidimensionale Matrix organisiert, in der jeder Matrixeingang einen festen Formatblock mit MS Daten, Leitung genannt, enthält. Das Verzeichnis eines Cachespeichers beschreibt die Adressierungsinformation für seine Leitungen. Wenn ein Zugriff auf Befehle oder Daten von der CP im Cachespeicher über die Verzeichnistabelle lokalisiert wird, wird der Zugriff auf den Cachespeicher als Treffer bezeichnet. Sonst sprechen wir davon, daß der Zugriff auf den Cachespeicher verfehlt wurde. Nach dieser sogenannten Cachespeicher- Verfehlung erzeugt die Cachesteuerung eine Anforderung, um die angeforderte Leitung in den Cachespeicher zu bringen. Wenn eine Leitung in den Cachespeicher eingefügt wird, kann diese eine vorhandene Leitung ersetzen. Ein Cachespeicher wird normalerweise mit gewissen Ersetzungsstrategien verwaltet, zum Beispiel mit dem wohlbekannten Least-Recently-Used (LRU) Ersetzungsalgorithmus (am längsten nicht benutzter Ersetzungsalgorithmus). Je nach Ausführung des Cachespeichers kann das Ersetzen einer Leitung aus dem Cachespeicher die Aktualisierung der ersetzten Inhalte im MS erforderlich machen, damit die Konsistenz des Speichers erhalten bleibt.
  • Cachespeicher können sowohl in Mehrrechner- als auch in Einzelrechnersystemen verwendet werden. Bei dem Mehrrechnersystem (MP), das als eng verbundenes Mehrrechnersystem bekannt ist, in dem mehrere CPs ihre eigenen Cachespeicher haben, die ein gemeinsames Betriebssystem und einen gemeinsamen Speicher anteilig nutzen, gibt es zusätzliche Probleme, da es notwendig ist, für den Cachespeicher eines jeden Rechners zu wissen, was in den Leitungen geschieht, die gleichzeitig in verschiedenen Cachespeichern sein können. In einem Mehrrechnersystem, in dem es viele CPs gibt, die den gleichen Hauptspeicher anteilig nutzen, wird von jeder CP verlangt, die aktuellste Datenversion gemäß den Architekturspezifikationen zu erhalten, wenn der Zugriff erteilt wird. Aufgrund dieser Bedingung ist es erforderlich, die Datenkonsistenz in den Cachespeichern zu überwachen, was auch als Cache-Kohärenz-Problem bekannt ist.
  • Es gibt verschiedene Arten von Cachespeichern im Stand der Technik von Mehrrechnernsystemen. Eine Art von Cachespeicher ist der Store-Thru-Cache (ST), der in der US Patentschrift 4,142,234 beschrieben ist. Die Konzeption des ST Cachespeichers beeinträchtigt nicht die CP, die Daten direkt im Hauptspeicher (oder Cachespeicher mit zwei Zugriffsebenen) speichert, Änderungen von Daten im Hauptspeicher ständig zu aktualisieren. Nach der Aktualisierung eines Speichers über den Hauptspeicher können geeignete Aktionen durchgeführt werden, um mögliche, ferne Kopien von der gespeicherten Cacheleitung ungültig zu machen. Das Speichersteuerelement (SCE) unterhält richtige Speicherstapel, um die MS Speicheranforderungen einzureihen und durch Standardübertragungen zwischen Puffersteuerelement (BCE) und SCE wird das Ansammeln von Überlaufdaten im Speicher vermieden. Wenn der SCE Speicherstapel voll wird, wird das zugehörige BCE seine MS Speicheranforderungen behalten, bis die Bedingung beseitigt ist.
  • Eine andere Art eines Cachespeichers ist der Store-In-Cache (SIC). SICs sind in den US Patentschriften 3,735,360 und 3,771,137 beschrieben. In einem SIC Cacheverzeichnis, das ausführlich in der US Patentschrift 4,394,731 beschrieben ist, hat jede Leitung in einem Store-In-Cache ihre anteilige Mehrrechnerbenutzbarkeit, die von einem exclusive/read only (EX/RO) Flagbit gesteuert wird. Der Hauptunterschied zwischen ST und SIC Cachespeichern ist der, daß alle Speicherungen im SIC an den Cachespeicher selbst gesteuert werden, (dies kann eine Cache-Verfehlung verursachen, wenn die gespeicherte Leitung nicht im SIC Cache ist). In der US Patentschrift Nr. 4,503,497 wird ebenfalls vorgeschlagen, daß Datenübertragungen nach einem Fehlabruf über einen Cache-To-Cache-Transfer-Bus (CTC) stattfinden können, wenn eine Kopie im Remote-Cache vorhanden ist. Ein SCE wird benutzt, das Kopien von Verzeichnissen in jedem Cache enthält. Dies ermöglicht es, daß Kreuzabfrageentscheidungen (XI) im SCE gelöst werden können. Cacheleitungsänderungen werden gewöhnlich nur im Hauptspeicher aktualisiert, wenn die Leitungen vom Cache ersetzt werden.
  • Eine Cacheleitung, die RO ist, ist nur im Nur-Lese-Status gültig. Der Rechner kann aus dieser Leitung nur abrufen. In der Leitung sind keine Speicherungen zulässig. Mehrere Cachespeicher können zur gleichen Zeit gemeinsam eine RO benutzen.
  • Eine Cacheleitung, die EX ist, ist gültig, erscheint jedoch nur im Cachespeicher eines Rechners. Diese ist in keinem anderen (remote) Cachespeicher vorhanden. Nur der Rechner (zu dem er gehört) ist berechtigt, Speicheroperationen in der Leitung vorzunehmen.
  • Eine Cacheleitung, die CH ist, zeigt an, daß nicht nur Leitung und EX gültig sind, sondern daß in dieser Leitung gespeichert wurde. Das heißt, daß die Kopie im Hauptspeicher möglicherweise nicht aktuell ist. Wenn eine CH Leitung ersetzt wird, wird über eine Castout-Aktion eine Kopie an den Hauptspeicher gesendet.
  • Eine INV Cacheleitung ist eine Leitung, die ungültig ist.
  • In einem typischen Computersystem kann eine erste CP, P&sub1;, auf einen Befehl oder auf Daten von einer Leitung in einem Cache zugreifen. Ihr eigener Cache wird überprüft und wenn die besondere angeforderte Leitung nur zum Lesen (RO) bestimmt ist, kann eine Speicheranforderung durchgeführt und diese Leitung über das Speichersteuerelement (SCE) exklusiv (EX) gemacht werden. Sobald die Leitung exklusiv ist, informiert das Speichersteuerelement (SCE) die anderen Cachespeicher, daß die Leitung ungültig ist, und der erste Cache ist frei, um in diese Leitung zu schreiben.
  • In der Mehrrechner-Cache-Umgebung gibt es ein Problem, das als Kreuzabfrage (XI) Problem bekannt ist, und daß das Ergebnis von relativ dichten Zugriffen auf die gleiche Datenleitung durch verschiedene Rechner (CPs) ist. Wenn zum Beispiel eine Leitung durch CP P&sub1; geändert wird, können andere CPs eine ungültige Kopie aus einer Leitung L abrufen, wenn die Leitung L aus dem Speicher abgerufen wird, bevor die Änderungen durch P&sub1; im Speicher aktualisiert werden.
  • Es wird zunehmend schwerer, das XI Problem wirksam zu handhaben, da mehr CPs in das System eingebracht werden. Zum Zwecke der Darstellung wird im folgenden ein Mehrrechnersystem betrachtet, in dem es N CPs {Pi 1 ≤ N} und einen privaten Cache Ci für jeden Pi gibt. Zum Zwecke der vorliegenden Erörterung wird eine Speicherhierarchie, in welcher der Hauptspeicher anteilig genutzt wird, als die einzige unter den privaten Cachespeichern angenommen.
  • Ein Hauptproblem bei der ST Cachekonzeption ist der Datenverkehr, der von allen CPs in dem System erzeugt wird. In künftigen MP Systemen zeichnet sich ein Trend in Richtung Verfügbarkeit von hochleistungsfähigen, anteilig genutzten Speichern unter allen Rechnern ab. Ein Beispiel für einen schnellen, anteilig genutzten Speicher ist der anteilig genutzte Cache mit zwei Zugriffsebenen (L2). Dank der Bereitstellung eines solch hochleistungsfähigen, anteilig genutzten Speichers wird es attraktiv, MP Systeme mit ST Cachespeichern zu implementieren, da dadurch noch mehr CPs unterstützt werden. Ein weiteres Problem in der ST Konzeption ist der beschäftigte Speicher im Quittungsbetrieb mit dem SCE, wie dies in der US Patentschrift Nr. 4,142,234 dargelegt wird. In dieser Konzeption kann das Datenelement, das von einer CP gespeichert wird, nicht durch die gleiche CP abgerufen werden, solange die CP nicht die Bestätigung des Speichers von dem SCE erhält. Der beschäftigte Speicher im Quittungsbetrieb verlangsamt nicht nur die Rechner-Pipeline-Operation, sondern macht es auch für das SCE schwierig, alle Speicher effizient zu serialisieren, wenn es mehr CPs gibt.
  • Ein bekanntes Verfahren bei der Lösung des Problems bezüglich des beschäftigten Speichers im Quittungsbetrieb im Falle der ST Konzeption ist, die EX/RO Status aus der SIC Konzeption zu benutzen. Betrachten wir eine Store-Thru-Cache MP Umgebung, in der jeden Augenblick eine Cacheleitung irgendeinen der drei Status INV, RO oder EX haben kann. INV gibt Ungültigkeit an. RO zeigt die Möglichkeit des gleichzeitigen Zugriffs auf verschiedene Kopien aus der Leitung von mehr als einer CP. EX garantiert, daß kein anderer Cache eine Kopie aus der Leitung zum Zugriff haben kann. Eine typische Implementierung dieses Mehrrechner-Cache-Schemas ist wie folgt. Nach dem Abruf einer Leitung L wird die Leitung entweder mit dem RO oder dem EX Status in den Cache gebracht (was von dem jeweiligen Beispiel und dem jeweiligen Cacheschema abhängig ist). Wenn jedoch in einer Leitung ein Speicher angefordert wird, sollte das System den EX Status in der Leitung garantieren, bevor die Leitung darin gespeichert werden kann. Diese Gewährung des EX Status kann XI Aktionen enthalten, um Kopien von der Leitung aus anderen Cachespeichern ungültig zu machen. Wenn zum Beispiel eine CP, P&sub2;, eine Leitung L hat, die EX in ihrem Cache hält, und P&sub1; auf L zugreifen möchte, gewährleistet das Speichersteuerelement (SCE), daß P&sub1; berechtigt ist, L in seinen Cache abzurufen. Verarbeitungen, die zwischen dem Zeitpunkt der SCE Signale P&sub2; zwecks Aufgabe des EX Status in L und dem Zeitpunkt liegen, wenn das SCE das Signal empfängt, daß P&sub2; den EX Status mit allen schwebenden Speichern, die im Speicher aktualisiert wurden, aufgegeben hat, wird als Löschprozedur bezeichnet. Zweck dieser Löschprozedur ist es, dafür zu sorgen, daß die XI-Ziel-CP ihre EX Steuerung der Leitung aufgibt und irgendwelche möglichen, nicht erfaßten Speicher in der Leitung zu erhalten, die im Speicher aktualisiert wurden. Der oben beschriebene XI-Treffer im Remote EX (XIEX) verursacht jedoch starke Leistungseinbußen, die besonders dann am größten sind, wenn die XI bei mehr CPs aufgrund der Verzögerung durch die Löschprozeduren häufiger auftreten.
  • In Arbeitsbelastungsanalysen wurde beobachtet, daß es beim Auftreten von XIEX bei der Remote-CP, (welche die Leitung L innehat) sehr selten ist, einen Speicher in einem kurzen Zeitintervall im Verlauf des XIEX Ereignisses zu erzeugen. Die meisten Änderungen in anteilig genutzten Leitungen neigen dazu, in mehr als zehn Referenzen von dem aktuellen Pingpong- Punkt entfernt aufzutreten. Daraus ergibt sich, daß nach einer XIEX Aktivität die Kopie der Leitung in dem schnellen, anteilig genutzten Speicher höchstwahrscheinlich für die anfordernde CP bestätigt werden muß, um diese zu nutzen, sogar bevor die Löschung durchgeführt wird. Daraus ergibt sich, daß in einer solchen Umgebung große Nachteile aus den Löschprozeduren für ein XIEX meistens nicht notwendig und nicht produktiv sind.
  • Eine weitere bekannte Technik in der modernen Rechnerkonzeption ist die bedingte Befehlsausführung, die auf der Verzweigungsvorhersage basiert. Solche Befehlsströme können zur Decodierung und zur Ausführung, die auf der Vorhersage des Verzweigungsbefehlsergebnisses beruhen, abgerufen werden. Falls Befehle nicht korrekt aufgerufen werden, was auf einer falschen Vorhersage beruht, können diese später abgebrochen werden. Vor der Bestätigung eines Befehls wird eine Speicheranforderung, die aus der bedingten Ausführung resultiert, in einem schwebendem Speicherstapel (PSS) zur endgültigen Freigabe nach Abschluß gehalten. Sowohl Befehlsabschlüsse als auch schwebende Speicherfreigaben werden in der Reihenfolge der architektonischen Sequenz durchgeführt, obwohl Befehle außerhalb der ankommenden Sequenz vor Abschluß ausgeführt werden können. Wenn ein bedingter Befehlsstrom abgebrochen wird, werden alle relevanten Befehlswarteschlangen und schwebenden Speicher im PSS korrekt zurückgesetzt. Es gibt keine bekannte Technik, die zuläßt, daß Befehle bedingt ausgeführt werden, die auf Speicherdaten basieren, die aus Cache-Kohärenz-Gründen möglicherweise ungültig sind.
  • Es gibt keine bekannte Technik, die darauf ausgerichtet ist, die Verzögerungen, die durch XIEX verursacht werden, durch vorweggenommenen Datenzugriff zu minimieren. Alle bekannten Verfahren der MP Cache-Konzeption erlauben einer CP, auf eine Cacheleitung nur zuzugreifen, wenn die Leitung für Architekturkonsistenz bereits gelöscht wurde. Nach der XIEX Situation kann die anfordernde CP auf die Cacheleitung nur zugreifen, wenn die Remote-CP, welche den EX Status in der Leitung hält, ihre EX Steuerung freigegeben hat und der Leitung erlaubt, in den anfordernden CP Cache abgerufen zu werden.
  • Gemäß einem bevorzugten, jedoch nichtsdestoweniger illustrierten Ausführungsbeispiel, das Objekte und Einrichtungen der vorliegenden Erfindung - wie angemeldet - zeigt, wird eine Fähigkeit bereitgestellt, einer CP zu ermöglichen, auf eine Cacheleitung im Anschluß an die XIEX Bedingung zuzugreifen, sogar bevor die Löschprozedur abgeschlossen ist. Daraus resultiert, daß bei relativ wenigen Gelegenheiten eine Leitung, auf die eine CP nach der XIEX Situation zugreift, als ungültig herausgeworfen werden kann, und das erneute Starten der richtigen Befehle veranlaßt wird. Dies bietet in bezug auf die Leistung deutliche Vorteile, da dadurch die meisten Nachteile vermieden werden, die mit der Löschprozedur bei der XIEX Verarbeitung verbunden sind.
  • Die vorliegende Erfindung - wie angemeldet - liefert für die Verarbeitung von Datenabrufen im Anschluß an XIEX ein Fetch- Then-Confirm-Verfahren (FTC). Die Erfindung benutzt ein MP System mit ST Cachekonzeption und SIC Cache-Kohärenz-Verwaltung mit EX/RO Status. Es wird ein schneller MS oder ein anteilig genutzter L2 angenommen. Der Abruf und die Benutzung einer angeforderten Datenleitung nach XIEX wird erlaubt, bevor das SCE die Bestätigung über Gültigkeit (oder Ungültigkeit) von der angeforderten Leitung durch die Löschprozedur erhält. Jedesmal, wenn eine Leitung mit ungewisser Gültigkeit von einer CP verwendet wird, sollten die Ergebnisse der Ausführung von Befehlen, die abhängig von der Gültigkeit der Leitung sind, nicht nach außen (z.B. in den Cache) festgeschrieben werden, solange von dem SCE keine Bestätigung vorliegt. Wenn die Bestätigung von dem SCE angibt, daß eine Leitung L als gültig bekannt ist, können alle Ergebnisse, die von der Gültigkeit von L abhängen, wie üblich beendet werden. Wenn das SCE jedoch angibt, daß eine Leitung mit ungewisser Gültigkeit L, die zuvor abgerufen wurde, tatsächlich ungültig ist, sollten alle durchgeführten Operationen, die auf den Inhalten von L basieren, abgebrochen werden und erneut gestartet werden. Deshalb läßt die FTC Police jedesmal, wenn das SCE eine XIEX Situation erkennt, die anfordernde CP eine Kopie von der Leitung aus dem Speicher abrufen, und sendet zur gleichen Zeit ein Signal an die XI-Ziel-CP zur Löschprozedur. In einer solchen Situation sollte die anfordernde CP erkennen, daß die abgerufene Leitung zu denen gehört, deren Gültigkeit noch nicht bestätigt wurde und die folglich nicht gültig sein kann und die Bestätigung vom SCE abwarten. Das SCE sollte auch an die Situation denken und auf die Ergebnisse der Löschprozedur warten, um später der anfordernden CP die korrekte Bestätigung zu liefern.
  • Demgemäß ist es ein Gegenstand der Erfindung, ein Verfahren für frühzeitig abgeruf ene Cacheleitungen bereitzustellen, um das XI-Problem zu überwinden;
  • Es ist ein weiterer Gegenstand der Erfindung, unnötige Verzögerungen bei Ausführung der Befehle zu vermeiden;
  • Es ist noch ein weiterer Gegenstand der Erfindung, Cacheleitungen zu erlauben, vor Bestimmung ihrer Gültigkeit verwendet zu werden.
  • Diese und andere Objekte, Vorteile und Einrichtungen der Erfindung werden dank der Beschreibung und der beiliegenden Zeichnungen klarer:
  • Fig. 1 zeigt ein Mehrrechnersystem, in dem die vorliegende Erfindung verwendet werden kann;
  • Fig. 2 zeigt die Organisation der Befehlssteuerung in der Befehlsausführungseinheit für jeden Rechner;
  • Fig. 3 zeigt die Gesamtorganisation eines Puffersteuerungselements;
  • Fig. 4 zeigt die Organisation einer typischen Cachesteuerung;
  • Figuren 5A, 5B und 5C zeigen die Formate für das Rechner- Cache-Verzeichnis bzw. die Kopieverzeichniseingaben;
  • Fig. 6A zeigt die Struktur des schwebenden Speicherstapels;
  • Fig. 6B zeigt für einen schwebenden Rechner die Formate einer Verzeichniseingabe;
  • Figuren 7A, 7B, 7C und 7D zeigen Flußdiagramme, die zur Erklärung der Funktion der vorliegenden Erfindung nützlich sind;
  • Figuren 8A, 8B und 8C zeigen Flußdiagramme, die zur Erklärung der Funktion der vorliegenden Erfindung dienen;
  • Figuren 9A, 98, 9C und 9D zeigen Flußdiagramme, die zur Erklärung der Funktion der vorliegenden Erfindung dienen;
  • Fig. 10 zeigt ein Flußdiagramm, das die Funktion der vorliegenden Erfindung erklärt; und
  • Fig. 11 zeigt ein Flußdiagramm, das die Funktion der vorliegenden Erfindung erklärt.
  • Fig. 1 stellt ein Mehrrechnersystem (MP) dar, in dem die vorliegende Erfindung benutzt werden kann. Der MP besteht aus vier Zentraleinheiten (CPs), CP0 bis CP3 (10, 11, 12 und 13), in dem jede CP eine Befehlsausführungseinheit (IE) (14, 15, 16 und 17) und eine Pufferspeichereinheit (BCE) (20, 21, 22 bzw. 23) enthält. Jede IE enthält Hardware und Mikrocode, der Befehle ausgibt, welche das Abrufen und Speichern von Operanden im Hauptspeicher (MS) 50 erfordern.
  • Die IE (14-17) beginnt eine Abruf- oder Speicheroperation, indem ein Abruf- oder Speicherbefehl an ihre jeweilige Cachesteuerung (BCE) 20-23 ausgegeben wird, welche einen Rechner- Store-Thru (ST) Cache mit seinem zugehörigem Rechner-Cache- Verzeichnis (PD) und alle Rechner-Cache-Steuerungen enthält, die ausschließlich von der zugehörigen CP (10-13) benutzt werden. Die CP gibt im allgemeinen einen Abruf- oder Steuerbefehl für jede Doppelworteinheit (DW) aus, die von einem Operanden verlangt wird. Wenn die Cacheleitung, welche das Doppelwort enthält, im PD ist, was bedeutet, daß es sich um eine Cache- Treffer-Situation handelt, wird das DW gemäß dem Befehl abgerufen oder im Cache gespeichert. Bei einem Operanden-Abruf- Treffer im Cachespeicher wird der Speicherzugriff beendet, ohne daß es erforderlich ist, außerhalb der BCE zu gehen. Gelegentlich befindet sich das verlangte DW nicht im Cache, was in einer Cache-Verfehlung resultiert.
  • Bevor der IE Abruf- oder Steuerbefehl abgeschlossen werden kann, muß das DW aus dem Hauptspeicher abgerufen werden. Dazu erzeugt das BCE einen entsprechenden Abruf- oder Speicherverfehlungsbefehl, welcher das Speichersteuerelement (SCE) 30 auffordert, aus dem Hauptspeicher 50 eine Leitungseinheit mit Daten zu empfangen, welche das von der IE verlangte DW haben. Die Leitungseinheit befindet sich im Hauptspeicher 50 auf einer Leitungsgrenze, aber das verlangte DW wird das erste DW in der abgerufenen Leitung sein, das an die anfordernde BCE (20- 23) zurückgeführt wird, um die IE Anforderung zu behalten, die vor Abschluß der verfehlten Leitungsübertragung liegt.
  • Das SCE 30 wird mit den CPs 10-13 und dem Hauptspeicher 50 verbunden. Der Hauptspeicher 50 enthält eine Vielzahl von Steuereinheiten BSC0 bis BSC3 (51, 52, 53 bzw. 54) für die Basisspeichermodule (BSM), in denen jede Basisspeicher- Steuereinheit (BSC) 51-54 mit zwei BSMS 0 (60, 62, 64 und 66) und 1 (61, 63, 65 und 67) verbunden ist. Die vier BSCs 0-3 (51-54) werden jeweils mit dem SCE 30 verbunden.
  • Das SCE 30 enthält vier Kopienverzeichnisse (CDs) 31, 32, 33 und 34. Jedes CD enthält ein Bild von den Inhalten eines entsprechenden Rechner-Cache-Verzeichnisses (PD) in einer der BCES auf eine Art, die derjenigen ähnlich ist, die von Flusche et al, in der US Patentschrift Nr. 4,394,731 beschrieben wurde. Sowohl PD als auch CD werden durch die gleichen Bitpositionen von der logischen Adresse adressiert. Die CDs behandeln alle Kreuzabrufanforderungen (XI) und können dadurch besser ihre jeweiligen CPs bedienen. Ein doppelwortbreiter, bidirektionaler Datenbus wird zwischen jedem BSM 60-67 im Hauptspeicher und jedem SCE Port und von jedem SCE 30 zu jeder CP und E/A Kanalsteuereinheit-Rechner 40 bereitgestellt. Entlang der Datenbusse gibt es auch separate Befehlsbussätze für Steuer- und Adreßsignale. Wenn eine CP bei einer DW Zugriffsanforderung auf eine Cache-Verfehlung trifft, ruft ihr BCE 20- 23 eine Leitungszugriffsanforderung im Hauptspeicher auf, indem ein Verfehlungsbefehl an das SCE 30 gesendet wird, das dann den Befehl erneut an ein angefordertes BSM 60-67 im Hauptspeicher ausgibt. Im Falle einer BSM Besetzt-Bedingung wird das SCE 30 die Anforderung in einer Befehlswarteschlange sichern und diese zu einem späteren Zeitpunkt, wenn das angeforderte BSM 60-67 frei ist, erneut ausgeben. Das SCE 30 ordnet die Hauptspeicherbefehle in der richtigen Reihenfolge, so daß alle Befehle in einem besonderen BSM in der Reihenfolge First-in-First-out (FIFO) ausgegeben werden, ausgenommen dann, wenn ihre XI Logik einen Cache-Konflikt feststellt. Während der normalen Bearbeitungssequenz einer Hauptspeicheranforderung überwacht das SCE 30 ständig den Status des Hauptspeichers, analysiert die Abfrageergebnisse des Speicherschutzschlüssels und von allen Cache-Verzeichnissen, untersucht den aktualisierten Status von allen schwebenden Befehlen, die aktuell im SCE 30 gehalten werden, und sucht ebenfalls nach irgendwelchen neuen BCE Befehlen, die im BCE 20-23 warten, um vom SCE 30 empfangen zu werden.
  • SCE 30 unterhält eine Vielzahl von Speicherstapeln S50 bis S53 (35-38), von denen jeder Hauptspeicheranforderungen von bis zu 16 DWs für eine entsprechende CP halten kann. SCE 30 behält genug Informationen für die Speicherstapel zur Angabe von Hauptspeicheradressen und Gültigkeit. Wenn ein Speicherstapel überlaufen zu droht, sendet das SCE 30 eine Prioritätsabfrage an das zugehrige BCE 20-23, um das Senden von mehr Speicheranf orderungen zu halten, bis das BCE 20-23 ein späteres Signal vom SCE 30 empfängt, um die Bedingung "Speicherstapel voll" zu löschen. Daten in den Speicherstapeln werden im Hauptspeicher mit der entsprechenden Zeitablaufplanung aktualisiert, indem die eingehende Reihenfolge innerhalb jedes Speicherstapels beibehalten wird. Eine Leitungsabrufanforderung von einer CP wird von der SCE 30 gehalten, bis das SCE sicherstellt, daß alle vorhandenen Speicher in der Leitung in den Speicherstapeln an das zugehörige BSM 60-67 gesendet wurden.
  • Fig. 2 zeigt die Hintergrundorganisation der Befehlssteuerung in der IE Einheit für jede CP. Die IE in jeder CP hat die Fähigkeit, Befehle auf bedingter Basis auszuführen. Verzweigungsvorhersage kann benutzt werden, ist jedoch nicht erforderlich. Zum Zwecke der Erklärung wurde die vorliegende Beschreibung durch die Annahme vereinfacht, daß der einzige Grund für die bedingte Ausführung im Abruf von potentiell ungültigen Daten in einem XIEX Ereignis liegt, obwohl die Steuerung der bedingten Ausführung viel Ähnlichkeit mit derjenigen von Verzweigungsvorhersagemaschinen aufweist. Insbesondere, wenn ein Befehl abgebrochen wird, kann die IE Einheit den Maschinenstatus (Register) an den Punkt vor Start des Befehls zurücksetzen. Es gibt einen Befehlspuffer (IBUF) 70, der 16 Halbwörter enthält. Es ist zu bemerken, daß in der Architektur des IBM 370 jedes Halbwort (HW) eine Länge von 2 Bytes hat und jeder Befehlscode 1 bis 3 Halbworte lang sein kann.
  • Um das Ausführungsbeispiel der Erfindung zu vereinfachen, wird nur eine serielle Ausführung innerhalb der Sequenz angenommen, obwohl das Konzept der Erfindung komplexere Implementierungen für Ausführungen außerhalb der Sequenz nicht ausschließt. Befehle werden nur gemäß der logischen Sequenz innerhalb des Befehlsstroms, der die bedingten, ausgeführten Befehle enthält, ausgeführt. Abrufe von Operanden und Speichern werden nur gemäß der logischen Sequenz ausgeführt. Die IE Einheit unterhält ein einzelnes Flagregister CNFLG 71, das angibt, ob es sich bei dem aktuell ausgeführten Befehl um einen bedingten Befehl handelt. Die IE unterhält ebenfalls ein Register CNIADDR 72. In der bedingten Ausführungsphase mit CNFLG=1 hält CNIADDR die Adresse des Befehls, der zuerst den bedingten Abruf von Daten aus dem Hauptspeicher aufgerufen hat.
  • Fig. 3 zeigt die Gesamtorganisation eines BCEs, zum Beispiel 20. Das BCE unterhält über die BCE Steuerung 80 einen Adreßumsetzpuffer (TLB) um über die TLB Steuerung 81 logische Hauptspeicherzugriffsadressen in echte Adressen zu übersetzen. Das Rechner-Cache-Verzeichnis (PD) 82 ist das Rechner-Cache-Verzeichnis. Cache-Matrizes 83 enthalten die aktuellen Cachedaten. Der schwebende Speicherstapel (PSS) 84 hat 8 Eingänge. PSS 84 wird benutzt, um DW Speicher aus der IE Ausführung, die noch nicht an Cache und Hauptspeicher gesendet wurden, zu halten. Die BCE Steuerung unterhält ein Flagbit CNPHASE 85, das angibt, ob augenblicklich eine potentiell ungültige Cacheleitung aktiv ist.
  • Fig. 4 beschreibt eine typische Cachesteuerung 80 innerhalb einer BCE (zum Beispiel 20), die den Beschreibungen in der US Patentschrift 4,464,267 ähnlich ist. Die Abruf- oder Speicheranforderungsadresse (logisch oder echt) von der IE bei 90 wird benutzt, um eine Kongruenzklasse aus dem Rechner-Cache- Verzeichnis (PD) 91 auszuwählen. In der beschriebenen 4-Wege satzassoziativen Cachekonzeption gibt es 4 Verzeichniseingänge A-D, die aus der ausgewählten Kongruenzklasse ausgelesen werden. Die absoluten Leitungsadressen, die in diesen 4 PD Eingängen A-D aufgezeichnet werden, werden bei 92 mit der absoluten Anforderungsadresse verglichen, die mit Hilfe der Adreßumsetzeinrichtung 93 erzielt wurde. Diese Adressen werden verglichen, um festzustellen, ob die Leitung im Cache verfehlt wurde, oder welche der 4 Leitungen diesen Zugriff trifft, wie dies durch die SELA, SELB, SELC und SELD Signale angegeben wird. Die Ergebnisse der Adreßvergleiche werden sowohl an die IE Einheit als auch an die Matrixsteuerung gegeben. Die Ersetzungssteuerung 94 unterhält die Ersetzungsstatusmatrizes, aktualisiert, falls erforderlich, diese Statusmatrizes und wählt den Leitungseingang aus, der zu ersetzen ist, wenn eine neue Leitung aus dem MS abgerufen wird. Die Schreibsteuerung 95 des PD Eingangs steuert die Aktualisierung der PD Eingänge. Bei einer DW Abrufanforderung parallel zu den PD Lese- und Übersetzungsverarbeitungen werden die 4 DWS A-D in der ausgewählten Kongruenzklasse aus der Matrix für späte Auswahl 97 ausgelesen, wenn der Verzeichnisadreßvergleich 92 erfolgt ist. Wie dies von der Steuerung 98 bestimmt wird, werden - je nach Bedarf, DW Daten bei 104 entweder in die IE Einheit oder den MS ausgelesen. Wie dies in der US Patentschrift Nr. 4,394,731 beschrieben wird, geht einem DW Speicher aus der IE eine Speicherabrufanforderung (SI) während eines früheren Zyklus voran. Die SI Anforderung wird sicherstellen, daß der Speicher ohne Auslösung eines Konflikts durchgeführt werden kann, wie zum Beispiel Schlüsselverletzung, Speicher-Verfehlung oder Fehlen des EX Status. Nach dem SI Zyklus kann der aktuelle DW Speicher von der IE mit direkter Ablage in der korrekten Matrixposition ausgegeben werden. Die Matrizes 96 werden mittels der Steuerung von 99 und 95 entweder durch Leitungs- oder Doppelwortgranularität aktualisiert. Die Daten für den Matrixspeicher kommen bei 103 entweder von der IE oder vom Hauptspeicher.
  • In der Store-Thru-Cache-Konzeption sollte eine SI Anforderung auch sicherstellen, daß es möglich ist, den DW Speicher im MS auszugeben oder diesen im schwebenden Speicherstapel (PSS) zu halten. Sonst wird die SI Anforderung ein Halten des Speichers in der IE veranlassen, bis der Konflikt in einem späteren Zyklus beigelegt wird.
  • Die Figuren 5A und 5B liefern die Formate für die PD (110) bzw. CD (120) Eingänge, die denjenigen ähnlich sind, die in der US Patentschrift 4,394,731 beschrieben wurden. V (116,122) ist das gültige Bit für den Verzeichniseingang. Eine gültige Leitung ist in exklusivem (EX) Status, wenn das zugehörige EX Bit (115,221) 1 ist, und ist ansonsten im Nur-Lese-Status (RO).
  • Jeder PD Leitungseingang enthält außerdem einen Speicherschutzschlüssel (PROT KEY), ein Leitungsänderungsbit (LC CH), ein Abrufschutzbit (F PROT) und ein Seitenwechselbit (PG CH).
  • Ein CD im SCE wird als Spiegelbild für das PD in der entsprechenden BCE auf die gleiche Weise gehalten, wie dies in der US Patentschrift 4,394,731 beschrieben ist. Die Inhalte (EX, V und ABS ADDR 117 und 12) eines CD Eingangs sollten mit denen im entsprechenden PD Eingang identisch sein, ausgenommen während einer Übergangsphase bei einem Statuswechsel. Merke: Da mit unserer ST Cache-Konzeption alle CP Speicher im Cache im MS reflektiert werden, besteht kein Bedarf am LN/CH (Leitung geändert) Feld (113) im PD Eingang, das angibt, ob die Cacheleitung nicht aufgelistete Daten enthält, die an den MS zu senden sind. Fig. 5C enthält das geänderte Format (125) für einen PD Eingang.
  • In der ST Konzeption entfällt der Castout-Befehl von BCE an SCE. Ein Castout in der SIC Konzeption - wie in der US Patentschrift 4,394,731 beschrieben - veranlaßt, daß eine in einer SIC geänderte Leitung mittels SCE 30 im Hauptspeicher aktualisiert wird. In der ST Konzeption wird der Castout-Befehl durch einen DW Speicherbefehl ersetzt, mit dem die BCE eine DW Speicheranforderung an SCE 30 sendet, um den Hauptspeicher im Anschluß an einen IE Speicher zu aktualisieren. Wenn eine Speicheranf orderung von BCE an SCE erfolgt, werden die DW Daten für den Speicher parallel über den Datenbus nach unten gesendet. Das SCE sollte mit jeder BCE koordinieren, so daß unter normalen Bedingungen eine Speicheranforderung von der BCE immer im zugehörigen Speicherstapel (SS) im SCE empfangen wird. Die Verarbeitung der Kreuzabfrage (XI) im SCE durch Überprüfung der CDs entspricht derjenigen, die in der US Patentschrift 4,394,731 beschrieben ist. In der vorliegenden Erfindung ermöglicht es eine Cache-verfehlung, eine Leitung aus dem Hauptspeicher abzuruf en, bevor die Löschprozedur in der XIEX Situation abgeschlossen ist. Das Antwortsignal von dem SCE in der BCE wird durch ein zusätzliches Löschbit (CLR) verstärkt. Wenn das CLR Bit 0 ist, verarbeitet das BCE diese neu abgerufene Leitung als potentiell ungültige Leitung, die ggf. einem möglichen Abbruch unterliegt. Andernfalls wird die abgerufene Leitung wie üblich als gültig angesehen.
  • Die IE kann einen Abruf oder eine SI Anforderung mit EX Absicht, ebenfalls wie in der US Patentschrift 4,394,731 beschrieben, ausgeben. Eine solche Anforderung kann nur erfolgreich bearbeitet werden, wenn das angeforderte DW auf eine Cacheleitung mit EX Bit=1 trifft. Eine Abrufanforderung mit RO Absicht erfordert nur, daß die Leitung im Cache mit V Bit=1 gültig ist. Schutzfehler und andere Ausnahmen im Cachezugriff werden mit spezieller Ausnahmelogik behandelt.
  • Der schwebende Speicherstapel (PSS) 132 in einer BCE (zum Beispiel 20) wird in Fig. 6A beschrieben. PSS 132 wird als ringförmige FIFO-Warteschlange mit 8 Eingängen implementiert, die von 0 bis 7 gekennzeichnet sind. Jeder PSS Eingang enthält DW Daten für einen Speicher, der von IE ausgegeben wird. Fig. 6B zeigt das Format eines PSS Verzeichniseingangs 140, der seine Größe in Bits enthält. In jedem PSS Verzeichniseingang gibt es wenigstens drei Felder: das absolute DW Adreßfeld STRADDR (28 Bits) 144, zwei Flagbits CRLSE (1 Bit) 141 und MSONLY (1 Bit) 142 und ein Feld STRCOORD 143, das die Cacheposition für das gespeicherte DW aufzeichnet. Wenn das CRLSE Bit 141 im DW Speicher ist, ist es in der bedingten Phase und kann im Hauptspeicher nicht freigegeben werden. Die BCE unterhält 3 Index- Register NXTRLSE 135, CNSTR 136 und NXTSTR 137 für die PSS Verwaltung, von denen jedes einen ganzzahligen Wert zwischen 0-7 hält. Zu Anfang werden alle drei Register auf 0 zurückgestellt. NXTRLSE 135 gibt den PSS Eingang an, der den ersten Speicher hält, und NXTSTR 137 zeigt auf den nächsten Eingang, um den nächsten Speicher einzufügen. CNSTR 136 zeigt auf den PSS Eingang, der den ersten bedingten Speicher hält, wenn CNPHASE = 1 ist. BCE 20 unterhält auch ein Zählerregister PSSFREE 134, um die Anzahl von frei gelassenen Eingängen anzugeben, die anfänglich 8 ist. Die BCE sucht für die Speicher ausgabe ständig nach dem ersten DW in PSS, wenn PSS momentan nicht leer ist. Alle Speicher in PSS werden in Cache und Hauptspeicher in der eingehenden Reihenfolge ausgegeben.
  • Um die Beschreibung der vorliegenden Erfindung zu vereinfachen, wird jede BCE aufgefordert, nicht mehr als eine ausstehende Anforderung zuzulassen, die jederzeit im SCE ausgegeben werden kann, ausgenommen Speicherfreigaben vom PSS in den Hauptspeicher für beendete oder unbedingte, ausgeführte Befehle. Die folgenden Beschreibungen werden ebenfalls die Verarbeitung von Ausnahmebedingungen ignorieren.
  • Fig. 7A ist ein Flußdiagramm, das die BCE Verarbeitung nach Erhalt einer Abrufanforderung (200) mit RO Absicht von der IE Einheit zeigt. Bei einer Cache-Verfehlung (204) wird die BCE eine Fehlabrufanforderung mit RO Absicht an den SCE (Schritt 202) ausgeben, wenn CNPHASE=0 (Schritt 201) in der BCE ist. Andernfalls, wenn CNPHASE=1 (201), wird der Fehlabruf gehalten, bis CNPHASE später gelöscht wird (Schritt 203). Die IE ist bereit und wartet auf das fehlende DW, das vom MS kommt. Nach einem Cache-Treffer (Schritt 204) greift der Cache unverzüglich auf das DW zu, wenn dies zu keinem Konflikt mit irgendeinem der möglicherweise vorhandenen DW Speicher in der PSS (Schritt 205) führt. Die Erkennung eines solchen Konflikts erfolgt über den Operandenspeicherverqleich, welcher die angeforderten Abruf-DW-Adressen allen gültigen DW Adressen in dem PSS gegenüberstellt, der die MSONLY Bits=0 hat. Ein Konflikt wird erkannt, wenn eine Übereinstimmung festgestellt wird. In diesem Fall wird der Abruf später erneut ausgegeben, bis die Konfliktbedingung verschwindet. Fig. 7B enthält ein Flußdiagramm zur BCE Verarbeitung nach Erhalt einer Abrufanforderung mit EX Absicht von der IE Einheit (Schritt 210). Der Abruf wird unverzüglich ausgeführt (Schritt 213), wenn die Leitung im Cache (Schritt 211) mit EX Status (Schritt 212) vorhanden ist. Wenn das DW auf eine RO Leitung im Cache (Schritt 214) trifft, gibt die BCE, wenn möglich, eine Anforderung für den EX Status an das SCE (Schritt 215) aus. Wenn die Leitung im Cache fehlt (Schritt 211), gibt die BCE, wenn möglich, eine Fehlabrufanforderung mit EX Absicht an das SCE (Schritt 218) aus. Solche SCE Anforderungen werden gehalten, wenn die bedingte Ausführung gültig ist (Schritte 216 und 219).
  • Fig. 7C enthält ein Flußdiagramm zur BCE Verarbeitung nach Erhalt einer Speicherabrufanforderung (SI) mit EX Absicht von der IE Einheit (Schritt 220). Die Funktion von BCE ist der ähnlich, die in Fig. 7B beschrieben wurde, ausgenommen, daß kein DW Abruf in IE erforderlich ist. Die BCE zeichnet die Cache-Koordinate auf, die für DW in Erwartung des von IE kommenden Speichers festgestellt wird. Der Abruf wird unverzüglich ausgeführt (Schritt 226), wenn sich die Leitung im Cache (Schritt 221) mit EX Status (Schritt 222) befindet. Wenn das DW auf eine RO Leitung im Cache (Schritt 223) trifft, gibt die BCE, wenn möglich, eine Anforderung für den EX Status im SCE (Schritt 224) aus. Wenn die Leitung im Cache fehlt (Schritt 221), gibt die BCE, wenn möglich, eine Fehlabrufanforderung mit EX Absicht an den SCE (Schritt 228) aus. Solche SCE Anforderungen werden gehalten, wenn die bedingte Ausführung gültig ist (Schritte 225 und 229).
  • Fig. 7D enthält ein Flußdiagramm zur BCE Verarbeitung nach Erhalt einer Speicheranforderung von der IE Einheit (Schritt 230). Bei einer bedingten Ausführung, wenn CNPHASE=1 (Schritt 231), wird der DW Speicher, wenn möglich, in PSS gesetzt (Schritte 232 und 233). Falls der PSS voll ist (Schritt 234) wird der Speicher gehalten, bis der PSS Platz zur Verfügung hat. Jedenfalls wird, wenn eine Speicheranforderung zwecks bedingter Ausführung in den PSS gesetzt wird, der Speicher nicht an die Speichermatrix ausgegeben, und der MSONLY Flag wird im zugehörigen PSS Eingang auf 0 gesetzt, um den Cachespeicher zur Ausgabe zu zwingen, wenn der Speicher später freigegeben wird (Schritt 233). Bei einer Speicherabfrage mit CNPHASE=0 (Schritt 231) wird die BCE versuchen, die DW an den Cache (Schritt 235) auszugeben und, wenn möglich, sofort an den MS zu senden (Schritte 236 und 238). Der Speicher wird an den Cache ausgegeben, wenn es keine weiteren ausstehenden Speicher gibt, die derzeit im PSS belassen wurden (Schritte 237, 241). Wenn die BCE aus irgendeinem Grund die Ausgabe an den Cache nicht abschließen kann oder den Speicher nicht an MS senden kann, wird die BCE die Speicherabfrage an den PSS geben, falls dort Platz verfügbar ist. Falls das DW an den Cache ausgegeben wird, und die Abfrage bei PSS eingereiht wird, da die MS Speicherstapel voll sind, wird das MSONLY Bit im PSS Eingang auf 1 gesetzt, um später wiederholte Cachespeicher zu vermeiden.
  • Wenn das SCE eine DW Speicherabfrage von CPi erhält, wird die Abfrage einfach in den Speicherstapel SSi im SCE eingereiht. Wenn möglich, wird das SCE ständig die DW Speicher aus den Speicherstapeln im Hauptspeicher aktualisieren.
  • Das SCE kann drei Hauptabfragen von einer BCE erhalten. Ein Fehlabruf mit RO Absicht verlangt eine Cacheleitungsübertragung aus dem Hauptspeicher mit RO Status. Ein Fehlabruf mit EX Absicht verlangt eine Leitungsübertragung aus dem Hauptspeicher mit EX Status. Der dritte Abfragetyp ist Upgrade im EX Status, der nur den EX Status für eine Cacheleitung verlangt, die bereits in der BCE mit RO Status vorhanden ist. Eine Anforderung von BCE kann die Kreuzabfrageaktionen (XI) triggern. Das SCE bearbeitet XIs auf eine Art und Weise, die ähnlich ist, sich jedoch von dem Schema, das in der US Patentschrift 4,394,731 beschrieben ist, unterscheidet. Das Unterhalten von CDs und das Suchen nach denselben durch Festlegung der XI Bedingung sind ähnlich, jedoch die Algorithmen, die zur Auflösung der XIs benutzt werden, sind unterschiedlich. Nachfolgend wird die SCE Verarbeitung von BCE Anforderungen anhand einer Anforderung von BCE von CPi beschrieben, wobei 0 i ≤ 3. Die Figuren 8A-C sind Flußdiagramme, welche die SCE Verarbeitung für die drei Abfragen von BCE beschreiben.
  • Fig. 8A enthält das Flußdiagramm zur SCE Verarbeitung einer Leitungsfehlabfrage von der CPi mit RO Absicht (Schritt 270). Wenn die Leitung nicht EX entfernt (271) gehalten wird, legt das SCE einen Leitungsabruf aus dem Hauptspeicher zur CPi fest und informiert die CPi mit einem Empfangsleitungssignal mit CLR Bit=1 (Schritt 272). Nun wird angenommen, daß CPj (j≠i) die Leitung EX hält. Das SCE schickt die Änderung EX in RO (CERO) Signal an CPj (Schritt 273). Dann prüft das SCE, ob die Leitung mit irgendeinem ausstehenden DW im Speicherstapel SSj (Schritt 274) überlappt. Falls nicht, legt das SCE einen bedingten Abruf aus der Leitung vom Hauptspeicher an CPi mit zugeordnetem RO Status fest, und das BCE von CPi wird mit einem Empfangsleitungs-Signal mit CLR Bit=0 benachrichtigt. An diesem Punkt erkennt das SCE, daß CPj immer noch den EX Status in der Leitung annimmt, und erwartet CPj, um die Freigabe des EX Status in einem späteren Zyklus (Schritt 275) zu bestätigen. Andererseits, wenn das SCE erkennt, daß die Leitung zu diesem Zeitpunkt bereits mit einem Speicher in SSj in Konflikt ist, wird das SCE den unbedingten Leitungsabruf (CLR=1) aus dem Hauptspeicher in CPj erst festlegen, nachdem die Freigabe des EX Statussignals von der CPj (Schritt 276) empfangen wurde, und wenn alle in Konflikt stehenden Speicher in SSj an den Hauptspeicher gesendet wurden. Allgemein gilt, daß das SCE keinen Leitungsabruf aus dem Hauptspeicher (Schritt 277) bestimmen kann, solange die in Konflikt stehenden Speicher in den Speicherstapeln nicht gelöscht wurden. Der Grund dafür, daß kein bedingter Leitungsabruf aus dem Hauptspeicher erfolgt, wenn das SCE ausstehende Speicherkonflikte entdeckt, ist, daß die CPj in diesem Fall sehr wahrscheinlich mehr Speicher erzeugen wird.
  • Fig. 8B zeigt die SCE Operationen bei einer Leitungsabrufanforderung mit EX Absicht von CPi (Schritt 280). Diese sind ähnlich wie die Prozeduren, die in Fig. 8A beschrieben wurden, mit Ausnahme, daß das SCE ein ungültiges Leitungs-Signal an alle CPs senden muß, die eine Kopie der Leitung haben, wie diese in den CD's angegeben ist.
  • Wenn die Leitung nicht EX entfernt (281) gehalten wird, wird überprüft, um festzustellen, ob die Leitung im Remote-Cache (Schritt 282) vorhanden ist, und wenn dies der Fall ist, werden die Remote-BCES aufgefordert, die Leitung ungültig zu machen (Schritt 288). Danach oder wenn die Leitung nicht im Remote-Cache (Schritt 282) vorhanden ist, bestimmt das SCE einen Leitungsabruf aus dem Hauptspeicher in die CPi und signalisiert der CPi mit einem Empfangsleitungssignal, daß das CLR Bit=1 ist (Schritt 289). Wenn CPj (j≠i) die EX Leitung hält, fordert das SCE die CPj auf, die Leitung ungültig zu machen (Schritt 283). Dann prüft das SCE, ob die Leitung mit irgendeinem ausstehenden DW im Speicherstapel SSj (Schritt 284) überlappt. Wenn nicht, legt das SCE einen bedingten Abruf der Leitung aus dem Hauptspeicher in CPi mit zugeordnetem RO Status fest, und das BCE von CPi wird mit einem Empfangsleitungs- Signal benachrichtigt, daß das CLR Bit=0 ist. An diesem Punkt erkennt das SCE, daß die CPj immer noch den EX Status in der Leitung annimmt und erwartet CPj, um die Freigabe des EX Status in einem späteren Zyklus (Schritt 285) zu bestätigen (Schritt 285). Andererseits, wenn das SCE erkennt, daß die Leitung zu diesem Zeitpunkt bereits mit einem Speicher in SSj in Konflikt ist, wird das SCE den unbedingten Leitungsabruf (CLR=1) aus dem Hauptspeicher in CPj erst festlegen, nachdem die Freigabe des EX Statussignals von der CPj (Schritt 286) empfangen wurde, und wenn alle in Konflikt stehenden Speicher in SSj an den Hauptspeicher gesendet wurden.
  • Allgemein gilt, daß das SCE keinen Leitungsabruf aus einem Hauptspeicher (Schritt 287) bestimmen kann, solange die in Konflikt stehenden Speicher in den Speicherstapeln nicht gelöscht wurden. Der Grund dafür, daß kein bedingter Leitungsabruf aus dem Hauptspeicher erfolgt, wenn das SCE ausstehende Speicherkonflikte entdeckt, ist, daß die CPj in diesem Fall sehr wahrscheinlich mehr Speicher erzeugen wird.
  • Fig. 8C beschreibt die SCE Operationen für ein Upgrade in einem EX Abruf von der CPi (Schritt 290). In diesem Fall ist die Leitung bereits gültig und RO ist in der BCE von der CPi. Wenn feststeht, daß die Leitung in Remote-Cachespeichern (Schritt 291) gehalten wird, muß das SCE nur ungültige Signale an jene BCEs senden, die Kopien von der Leitung (Schritt 292) enthalten. Die Konzeption sollte sicherstellen, daß alle ungültigen Signalempfänger die Signale nicht erhalten, nachdem die CPi das Signal für das Upgrade des RO Status in EX (Schritt 293) empfängt. Die Zeitsteuerung ist von der spezifischen Implementierungsumgebung abhängig.
  • In den Figuren 8A und 8B kann ein bedingter Leitungsabruf aus dem Hauptspeicher in die CPi festgelegt werden, bevor das SCE die Freigabe des EX Status von der Leitung abschließt, die von CPj (j≠i) gehalten wird. Es ist möglich, daß das SCE von der CPj nachfolgende Speicher in der Leitung empfängt, bevor eine Bestätigung zu der Freigabe des EX Status vorliegt. In diesem Fall sollte das SCE die CPi benachrichtigen, um die bedingten, abgerufenen Daten über ein ungültiges Signal in einer regulären Leitung abzubrechen. Andererseits, wenn das SCE von der CPj die Bestätigung zur Freigabe des EX Status empfängt, ohne daß in der Leitung zusätzliche Speicher erzeugt wurden, kann das SCE die Statusänderung dann abschließen und ein Bestätigungsstatus-Signal an die CPi senden. Danach empfängt die CPi das Bestätigungsstatus-Signal, die BCE wird den bedingten Status der Leitung aufgeben, was später beschrieben wird.
  • Es ist zu bemerken, daß das SCE die Freigabe des EX Status von einer Leitung durch eine CP nicht abschließen wird, bis sicher ist, daß die relevanten Speicher im zugehörigen Speicherstapel SS im Hauptspeicher gelöscht wurden. Dies ist im allgemeinen nicht unbedingt erforderlich. Die Annahme wird in dieser Beschreibung gemacht, um die Beschreibung der Konzeption zu vereinfachen. Es wird ebenfalls angenommen, daß das SCE die Verarbeitung der XIS korrekt serialisiert. Das SCE wird keinen XI Abruf in einer Leitung in einer CP ausgeben, bevor das SCE die Verarbeitung eines früheren Abrufs aus der CP selbst abgeschlossen hat.
  • Das BCE von einer CP kann die folgenden vier Hauptsignale von dem SCE empfangen: Empfangsleitung, Bestätigungsstatus, CERO, und Leitung ungültig. Die Figuren 9A-D sind Flußdiagramme für die BCE Aktionen nach Empfang dieser Signale.
  • Fig. 9A zeigt die BCE Aktion für ein Empfangsleitungssignal von dem SCE (Schritt 300). Das BCE ist bereit, um später Daten aus dem Hauptspeicher zu empfangen (Schritt 301). Wenn das CLR Bit 1 in dem Signal ist (Schritt 302), was einen unbedingten Abruf angibt, wartet das BCE wie üblich auf das Eintreffen der Daten (Schritt 304). Wenn das CLR Bit 0 ist (Schritt 302), was eine bedingte Übertragung angibt, wird das BCE die bedingte Ausführungsphase, wie dies mit Bezug auf Fig. 10 (Schritt 303) beschrieben wird.
  • Fig. 9B beschreibt die BCE Aktionen nach Erhalt eines Bestätigungsstatussignals vom SCE (Schritt 310). In diesem Fall sollte dies bereits eine bedingte abgerufene, ausstehende Leitung sein. Die BCE stellt die bedingte Ausführungsphase zurück, indem ihr CNPHASE Flag zurückgestellt wird und indem alle CRLSE Bits in dem PSS Verzeichnis auf 0 zurückgestellt werden. Die BCE signalisiert ebenfalls der IE Einheit, ihre CNFLG Register auf 0 (Schritt 311) zurückzustellen.
  • Fig. 9 beschreibt die BCE Aktionen nach Erhalt eines CERO Abrufs vom SCE (Schritt 320). Das BCE prüft, ob es irgendeinen schwebenden Speicher aus vorheriger unbedingter Ausführung gibt, der für das SCE bis jetzt noch nicht freigegeben wurde (Schritt 321). Die BCE überprüft dies, indem der PSS (Übereinstimmung mit schwebenden Speichern, die CNSTR=0 haben) geprüft wird und festgelegt wird, ob es eine laufende, jedoch nicht abgeschlossene Speicherfreigabe im SCE und im Cache (Schritt 322) gibt. Wenn die Konfliktbedingung nicht länger besteht, ändert die BCE den EX Status der Leitung in RO (Schritt 324), wenn im Cacheverzeichnis (Schritt 323) vorhanden und signalisiert dem SCE den Abschluß der CERO Operation (327). Wenn die bedingte Ausführungsphase oben ist, wie dies durch CNPHASE=2 in der BCE (Schritt 325) angegeben wird, und wenn der EX Status der Leitung im Cache nicht vorhanden ist (Schritt 323), wird die BCE den Abbruch von allen unbedingten Befehlen (Schritt 326) triggern.
  • Fig. 9D zeigt die BCE Aktionen nach Erhalt eines ungültigen Leitungsabrufs aus dem SCE (330). Die Operation gleicht derjenigen, die für die Verarbeitung eines CERO Abrufs beschrieben wurde.
  • Die BCE prüft, ob es irgendeinen schwebenden Speicher aus einer vorherigen, unbedingten Ausführung gibt (die bis jetzt im SCE noch nicht freigegeben wurde (Schritt 332)), wenn die Leitung im Cache (Schritt 331) gefunden wird. Die BCE überprüft dies, indem der PSS (Übereinstimmung mit schwebenden Speichern, die CRLSE=0 haben) geprüft wird und festgelegt wird, ob es eine laufende, jedoch nicht abgeschlossene Speicherfreigabe im SCE und Cache (Schritt 333) gibt. Danach wird bei Schritt 334 die Leitung ungültig gemacht. Wenn die bedingte Ausführungsphase oben ist, wie dies durch CNPHASE=1 in der BCE (Schritt 335) angegeben wird, wird die BCE den Abbruch von allen bedingten Befehlen (Schritt 336) triggern. Es ist jedoch nicht erforderlich, möglicherweise vorhandene, bedingte Ausführungen abzubrechen, wenn die Leitung im Cache nicht mehr vorhanden ist. Die BCE muß das SCE nicht von dem Abschluß informieren, es sei denn, die Leitung im Cache ist EX (337).
  • Fig. 10 beschreibt die Aktionen von BCE und IE beim Starten der bedingten Ausführungsphase. Sobald die BCE ein Leitungsabrufsignal mit CLR Bit=1 vom SCE (Schritt 340) empfängt, setzt die BCE CNPHASE auf 1, und der Wert des NXTSTR Indexregisters wird dem CNSTR Register für die PSS Verwaltung zugeordnet. Die BCE informiert ebenfalls die IE Einheit, damit diese mit der bedingten Ausführung (Schritt 341) beginnt. Die IE Einheit erkennt die bedingte Ausführungsphase über CNFLG=1. Wenn CNFLG=1, zeichnet die IE Einheit die Befehlsadresse in dem Register CNIADDR (Schritt 342) auf.
  • Während der bedingten Ausführungsphase wird irgendein Speicher, der in PSS eingereiht ist, veranlassen, daß die CRLSE und MSONLY Bits=0 sind, wobei das NXTSTR Register um 1 inkrementiert (Modulo 8) und PSSFREE um 1 dekrementiert wird. Die Position der Cacheleitung wird - wie diese von dem vorhergehenden SI Befehl identifiziert wird - ebenfalls im STRCOORD Feld im neuen PSS Eingang aufgezeichnet. Die PSS Überlaufbedingung für die PSS Einfügung wird erkannt, wenn PSSFREE=0 ist. In dem Fall wird der Speicher durch IE gehalten. Während der unbedingten Ausführungsphase kann ein Speicher ebenfalls in den PSS gedrückt werden, wenn der Speicherstapel im SCE voll ist, obwohl das DW im Cache ausgegeben wird. In diesem Fall sind im PSS Eingang die MSONLY- und CRLSE-Bits=1.
  • Fig. 11 beschreibt die BCE Operationen in CPi, um den nächsten Speicher zur Freigabe aus PSS zu lokalisieren. Die BCE überprüft den PSS ständig auf den nächsten schwebenden Speicher, um diesen im SCE freizugeben. Der nächste Speicher in PSS wird durch das NXTRLSE Register (Schritt 350) indexiert. Der nächste Speicher im PSS kann nicht freigegeben werden, wenn NXTRLSE gleich NXTSTR ist (gibt leeren PSS an) oder wenn das CRLSE Bit=1 (gibt bedingten Speicher an) (Schritt 351). Wenn ein Speicher vom PSS freigegeben wird, inkrementiert die BCE das Register NXTRLSE um 1 (Modub 8) (Schritt 357) und inkrementiert PSSFREE um 1. Wenn der MSONLY Bit des freigegebenen PSS Speichereingangs=0 ist (Schritt 355), wird das DW ebenfalls in dem Cache ausgegeben, der von dem STRCOORD Feld im PSS Verzeichniseingang (Schritt 356) positioniert wird.
  • Der Abbruch der bedingten Ausführung wird durch die BCE getriggert und ebenfalls von der IE Einheit verarbeitet. Die BCE stellt das CNPHASE Flag auf 0 zurück und löscht alle bedingten Speicher im PSS, indem das NXTSTR Register auf den Wert des CNSTR Registers zurückgestellt wird und indem PSSFREE eingestellt wird. Wenn die IE Einheit von dem Abbruch informiert wird, ist CNFLG=0 und die Ausführung des Befehls, der durch das CNIIDX Adreßregister aufgezeichnet wurde, wird erneut gestartet.
  • Das erneute Starten der Ausführung enthält das richtige Rücksetzen des Maschinenstatus gemäß der besonderen Implementierung. Für die IE ist es eine einfache Technik, den Maschinenstatus wie PSW und GPR vor der bedingten Ausführung zu kopieren.

Claims (4)

1. Verfahren, das auf ein Mehrprozessor-Computersystem anwendbar ist, das eine Vielzahl von Prozessoren (10, 11, 12, 13> enthält sowie
einen lokalen Cache (20, 21, 22, 23) für jeden der Rechner (10, 11, 12, 13),
einen Hauptspeicher (50), der unter den Rechnern (10, 11, 12, 13) anteilig genutzt wird, mit Leitungen, die es den Rechnern (10, 11, 12, 13) erlauben, in diesem Hauptspeicher (50) zu operieren,
wobei das Verfahren ein übereinstimmendes Steuerschema enthält, um wenigstens zwei alternative Status der Leitungen anzugeben:
- der erste alternative Status erlaubt irgendeinem Rechner (10, 11, 12, 13) aus der Leitung zu lesen, jedoch nicht in die Leitung zu schreiben,
- der zweite alternative Status für eine Leitung wird durch einen besonderen Rechner (10, 11, 12, 13) gehalten, um aus dieser Leitung zu lesen und in diese zu schreiben,
wobei sich das Verfahren außerdem auf das Abrufen einer Leitung aus dem Hauptspeicher (50) in den lokalen Cache eines ersten Rechners (10, 11, 12, 13) bezieht, wenn ein zweiter Rechner (10, 11, 12, 13) diese Leitung in dem zweiten Status hält, wobei der erste Schritt des Verfahrens
verlangt, daß der Status dieser Leitung in einen Status geändert wird, der es dem ersten Rechner ( 10, 11, 12, 13) erlaubt, aus dieser Leitung auszulesen und wobei das Verfahren durch die weiteren Schritte gekennzeichnet ist:
vorläufiger Abruf dieser Leitung in den lokalen Cache des ersten Rechners (10, 11, 12, 13), ohne auf die angeforderte Änderung im Status dieser Leitung zu warten, indem diese Leitung immer noch im zweiten Status für den zweiten Rechner (10, 11, 12, 13) gehalten wird, wobei der vorläufige Abruf durch den ersten Rechner (10, 11, 12, 13) den Zugriff auf diese Leitung erlaubt, indem dem ersten Rechner (10, 11, 12, 13) nach Durchführung der angeforderten Änderung im Status bestätigt wird, ob diese Leitung geändert wurde, nachdem diese vorläufig abgerufen wurde und indem alle Rechneraktivitäten, die aus dem Zugriff resultieren, bedingt zurückgesetzt werden, wenn die Bestätigung bezüglich der Änderung des Leitungsstatus negativ ist.
2. Verfahren gemäß Anspruch 1, das durch die folgenden Schritte gekennzeichnet wird:
Betrieb mittels Befehlen, die von diesem Leitungsabruf abhängig sind und
bedingter Abbruch aller Operationen, die von der Gültigkeit dieser Leitung abhängig sind und erneutes Starten dieser Operationen, wenn die Bestätigung zu der Änderung von dieser Leitung negativ ist.
3. Verfahren gemäß Anspruch 1 oder 2, das dadurch gekennzeichnet wird, daß
der Status der Leitung, der geändert wird wie dies von dem ersten Verfahrensschritt verlangt wurde, der erste alternative Status ist.
4. Verfahren gemäß Anspruch 1 oder 2, das dadurch gekennzeichnet wird,
daß der Status der Leitung, der geändert wird wie dies von dem ersten Verfahrensschritt verlangt wurde, der zweite alternative Status für den ersten Rechner anstelle für den zweiten Rechner ist.
DE68925470T 1988-12-05 1989-10-16 Verfahren zum Abrufen von potentiell ungültigen Daten in einem Mehrrechnersystem Expired - Fee Related DE68925470T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/280,034 US5018063A (en) 1988-12-05 1988-12-05 Method for reducing cross-interrogate delays in a multiprocessor system

Publications (2)

Publication Number Publication Date
DE68925470D1 DE68925470D1 (de) 1996-02-29
DE68925470T2 true DE68925470T2 (de) 1996-08-14

Family

ID=23071356

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68925470T Expired - Fee Related DE68925470T2 (de) 1988-12-05 1989-10-16 Verfahren zum Abrufen von potentiell ungültigen Daten in einem Mehrrechnersystem

Country Status (4)

Country Link
US (1) US5018063A (de)
EP (1) EP0372201B1 (de)
JP (1) JPH0670779B2 (de)
DE (1) DE68925470T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19983443B4 (de) * 1998-08-06 2007-07-19 Intel Corporation, Santa Clara Außer-der-Reihe-Snooping für Multiprozessor-Computersysteme

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185875A (en) * 1989-01-27 1993-02-09 Digital Equipment Corporation Method and apparatus for reducing memory read latency in a shared memory system with multiple processors
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5214766A (en) * 1989-04-28 1993-05-25 International Business Machines Corporation Data prefetching based on store information in multi-processor caches
JPH04246745A (ja) * 1991-02-01 1992-09-02 Canon Inc 情報処理装置及びその方法
DE69323790T2 (de) * 1992-04-29 1999-10-07 Sun Microsystems, Inc. Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
JP2788836B2 (ja) * 1992-05-15 1998-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション ディジタルコンピュータシステム
JPH06282528A (ja) * 1993-01-29 1994-10-07 Internatl Business Mach Corp <Ibm> データ転送方法及びそのシステム
JPH0793216A (ja) * 1993-09-27 1995-04-07 Hitachi Ltd キャッシュ記憶制御装置
US5590309A (en) * 1994-04-01 1996-12-31 International Business Machines Corporation Storage protection cache and backing storage having system control element data cache pipeline and storage protection bits in a stack array with a stack directory for the stack array
JP2641396B2 (ja) * 1994-08-30 1997-08-13 甲府日本電気株式会社 ページ履歴メモリ装置
JPH0950400A (ja) * 1995-08-10 1997-02-18 Nec Corp マルチプロセッサシステム
US5881303A (en) * 1996-07-01 1999-03-09 Sun Microsystems, Inc. Multiprocessing system configured to perform prefetch coherency activity with separate reissue queue for each processing subnode
US5900015A (en) * 1996-08-09 1999-05-04 International Business Machines Corporation System and method for maintaining cache coherency using path directories
US5991825A (en) * 1997-07-11 1999-11-23 International Business Machines Corporation System for handling missed revolution in a disk drive by aborting the execution of primary command and executing secondary command if a missed revolution occurs
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
US20070260754A1 (en) * 2006-04-13 2007-11-08 Irish John D Hardware Assisted Exception for Software Miss Handling of an I/O Address Translation Cache Miss
US8544687B2 (en) * 2007-08-31 2013-10-01 Momentive Performance Materials, Inc. Display card with viscous material dispenser
US10402324B2 (en) * 2013-10-31 2019-09-03 Hewlett Packard Enterprise Development Lp Memory access for busy memory by receiving data from cache during said busy period and verifying said data utilizing cache hit bit or cache miss bit
US10949919B1 (en) 2017-05-10 2021-03-16 State Farm Mutual Automobile Insurance Company Approving and updating dynamic mortgage applications
US11210734B1 (en) 2017-05-10 2021-12-28 State Farm Mutual Automobile Insurance Company Approving and updating dynamic mortgage applications
US11966992B1 (en) 2017-05-10 2024-04-23 State Farm Mutual Automobile Insurance Company Identifying multiple mortgage ready properties
US10943294B1 (en) 2017-05-10 2021-03-09 State Farm Mutual Automobile Insurance Company Continuously monitoring and updating mortgage ready data
US11094007B1 (en) 2017-05-10 2021-08-17 State Farm Mutual Automobile Insurance Company Continuously updating mortgage ready data

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4208716A (en) * 1978-12-11 1980-06-17 Honeywell Information Systems Inc. Cache arrangement for performing simultaneous read/write operations
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4345309A (en) * 1980-01-28 1982-08-17 Digital Equipment Corporation Relating to cached multiprocessor system with pipeline timing
JPS601656B2 (ja) * 1980-05-14 1985-01-16 日本電気株式会社 緩衝記憶回路
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
US4439829A (en) * 1981-01-07 1984-03-27 Wang Laboratories, Inc. Data processing machine with improved cache memory management
JPS58154044A (ja) * 1982-03-05 1983-09-13 Nec Corp 情報処理装置
US4503497A (en) * 1982-05-27 1985-03-05 International Business Machines Corporation System for independent cache-to-cache transfer
US4686621A (en) * 1983-06-30 1987-08-11 Honeywell Information Systems Inc. Test apparatus for testing a multilevel cache system with graceful degradation capability
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US4727486A (en) * 1986-05-02 1988-02-23 Honeywell Information Systems Inc. Hardware demand fetch cycle system interface
EP0498472B1 (de) * 1986-08-12 1994-10-12 Hitachi, Ltd. Mikroprozessor zur Datentransferwiederholung
US4833601A (en) * 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
JPH0195344A (ja) * 1987-10-07 1989-04-13 Matsushita Electric Ind Co Ltd キャッシュ・メモリー
US4831622A (en) * 1987-12-22 1989-05-16 Honeywell Bull Inc. Apparatus for forcing a reload from main memory upon cache memory error

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19983443B4 (de) * 1998-08-06 2007-07-19 Intel Corporation, Santa Clara Außer-der-Reihe-Snooping für Multiprozessor-Computersysteme

Also Published As

Publication number Publication date
EP0372201A2 (de) 1990-06-13
DE68925470D1 (de) 1996-02-29
US5018063A (en) 1991-05-21
EP0372201B1 (de) 1996-01-17
JPH02166539A (ja) 1990-06-27
JPH0670779B2 (ja) 1994-09-07
EP0372201A3 (de) 1991-09-04

Similar Documents

Publication Publication Date Title
DE68925470T2 (de) Verfahren zum Abrufen von potentiell ungültigen Daten in einem Mehrrechnersystem
DE68922326T2 (de) Speicherwarteschlange für eine festgekoppelte Mehrprozessorenkonfiguration mit einem zweistufigen Cache-Pufferspeicher.
DE69029995T2 (de) Multiprozessor mit relativ atomaren Befehlen
DE69331448T2 (de) Dataprozessor mit einem Cachespeicher
DE68923490T2 (de) Prüfpunkt-Wiederholungssystem.
DE69327981T2 (de) Kombinierte Speicheranordnung mit einem Vorausholungspuffer und einem Cachespeicher und Verfahren zur Befehlenversorgung für eine Prozessoreinheit, das diese Anordnung benutzt.
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
CN112005222B (zh) 鲁棒的事务性存储器
Censier et al. A new solution to coherence problems in multicache systems
DE69331039T2 (de) Rechnersystem mit einem Vorausholungscachespeicher
DE69127111T2 (de) Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher
DE3856552T2 (de) Multiprozessor-Digitaldatenverarbeitungssystem und Verfahren zum Betreiben dieses Systems
DE69327288T2 (de) Verfahren und System zur Aufrechterhaltung der Adressenübersetzungspufferspeicher-Kohärenz eines Multiprozessorsystems
DE68926059T2 (de) Organisation einer integrierten Cache-Einheit zur flexiblen Verwendung beim Entwurf von Cache-Systemen
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
US5588131A (en) System and method for a snooping and snarfing cache in a multiprocessor computer system
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE202007019502U1 (de) Globaler Überlauf für virtualisierten Transaktionsspeicher
KR100567099B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
DE69616465T2 (de) Cachespeicher mit Datenvorausladung
DE69027253T2 (de) Multiprozessor-Cachespeichersystem
EP0514024B1 (de) Verfahren und Vorrichtung für eine verbesserte Speicherarchitektur
EP0843267A2 (de) Verarbeitung von mehreren Datenbanktransaktionen in einem Prozess, um Verarbeitungskosten zu reduzieren und redundante Wiederauffindung von Datenbankanbietern
KR20040007546A (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
CN1908890A (zh) 用于使用记录板机制处理加载锁定指令的方法和装置

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee