DE68920435T2 - Steuereinheit für den speicher. - Google Patents

Steuereinheit für den speicher.

Info

Publication number
DE68920435T2
DE68920435T2 DE68920435T DE68920435T DE68920435T2 DE 68920435 T2 DE68920435 T2 DE 68920435T2 DE 68920435 T DE68920435 T DE 68920435T DE 68920435 T DE68920435 T DE 68920435T DE 68920435 T2 DE68920435 T2 DE 68920435T2
Authority
DE
Germany
Prior art keywords
read
system memory
write
bus
memory
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 - Lifetime
Application number
DE68920435T
Other languages
English (en)
Other versions
DE68920435D1 (de
Inventor
Robert Becker
Kevin Curcur
Kenneth Eng
Martin Schwartz
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.)
LG Electronics Inc
Original Assignee
Wang Laboratories Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22794950&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE68920435(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Wang Laboratories Inc filed Critical Wang Laboratories Inc
Application granted granted Critical
Publication of DE68920435D1 publication Critical patent/DE68920435D1/de
Publication of DE68920435T2 publication Critical patent/DE68920435T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die Erfindung betrifft eine Speichersteuereinneit zum Verbinden eines Systemspeichers mit einem nicht verriegelten Systembus für schnelle Datenübertragung eines Informationsverarbeitungssystems.
  • In einem Informationsverarbeitungssystem, das mit einem zentralen Systemspeicher zum Speichern von Informationseinheiten, z.B. Operanden und Befehlen arbeitet ist die Verbindung zwischen dem Systemspeicher und einem zentralen Systembus von großem Belang. Um eine gewünschte Bandbreite des Systembusses zu erzielen und aufrechtzuerhalten, ist es wichtig, daß Datenlese- und Datenschreiboperationen, die auf den Systemspeicher zugreifen, rasch stattfinden. Bei solchen Systemen, die mit einer oder mehreren Systeinbuseinheiten oder Busanschlüssen arbeiten, ist es auch wichtig, daß zumindest annähernd gleichzeitig auftretende Mehrfachlese- und -schreibzugriffe auf einen bestimmten Speicherplatz so geschehen, daß die Lese- und Schreiboperationen einwandfrei sequentiell geordnet werden. Das heißt, wenn ein Busanschluß aus einem bestimmten Speicherplatz lesen will, während ein anderer Busanschluß in denselben Speicherplatz schreiben will, muß die Abfolge dieser beiden Operationen so sein, daß die Datenleseoperation den laufenden Zustand der Daten wiedergibt.
  • Im US-Patent 4,225,922 ist ein System beschrieben, das eine zwischen einen Hauptspeicher und eine Zentraleinheit zwischengeschaltete Cachespeichereinheit aufweist. Das Puffern sowohl von Lese- als auch von Schreibbefehlen wird in einer Cachespeichereinheit durchgeführt. Eine bei Systemen dieses Typs vorkommende Schwierigkeit ist die korrekte sequentielle Einordnung der Ausführung gepufferter Lese- und Schreibbefehle. Diese Schwierigkeit ist von besonderer Wichtigkeit bei einem System, das eine Speichersteuereinheit zum Steuern eines Hauptsystemspeichers in einein Mehrprozessorsystem aufweist.
  • In Beziehung mit den beiden vorstehend genannten Überlegungen steht ein zugrundeliegendes Ziel der Bereitstellung von Daten an einen anfordernden Busanschluß, ohne daß aus Fehlern bei Hard- oder Softwarespeichervorrichtungen Fehler einfließen. In dieser Hinsicht ist es bekannt, zusätzliche Speichervorrichtungen zum Speichern von Fehlerkorrektur- und Fehlerfeststell-Syndrombit zu schaffen, die vorteilhafterweise Einzelbitfehler korrigieren und Mehrbitfehler feststellen, die in im Systemspeicher gespeicherten Datenwörtern vorkommen. Es ist ebenfalls bekannt, für Speichersysteme, die dynamische Direktzugriffsspeicher (DRAM) verwenden, Fehler"schnüffell" -- und Fehler"schrubb"techniken vorzusehen, die während der erforderlichen Speicherauffrischzyklen Fehler feststellen und korrigieren.
  • Es läßt sich jedoch vorstellen, daß Fehlerfeststell- und Fehlerkorrekturtechniken zu ihrer Durchführung eine bestimmte Zeit benötigen. Bei einer Leseoperation im Systemspeicher fällt diese zusätzliche Zeit bei jedem Speicherzugriff an, was zu einem längeren Zugriffszyklus führt und zu einer daraus folgenden Verkleinerung der Gesamtbandbreite des Systembusses.
  • Kurze Darstellung der Erfindung
  • Die vorstehend genannten Schwierigkeiten werden überwunden und weitere Vorteile erzielt mit einer Speichersteuereinheit, die erfindungsgemäß entsprechend Anspruch 1 ausgebildet ist und betrieben wird.
  • Kurzbeschreibung der Zeichnungen
  • Die vorstehend genannten Merkmale der Erfindung ergeben sich deutlicher aus der nachstehenden detaillierten Beschreibung einer bevorzugten Ausführungsform in Verbindung mit den beigefügten Zeichnungen, in denen zeigt:
  • Fig. 1 ein Blockschaltbild eines Informationsverarbeitungssystems gemäß einer Ausführungsform der Erfindung,
  • Fig. 2 eine Flußdiagrammdarstellung eines Hauptsteuerungsflusses der MCU 22,
  • Fig. 3a, 3b und 3c Zeitdiagramme zur Darstellung der Arbeitsweise des nicht verriegelten Systembusses,
  • Fig. 4a bis 4e Darstellungen des Formats verschiedener System-IPC-Befehle,
  • Fig. 5a ein Blockschaltbild mit einer Entwurfsdarstellung der MCU 22,
  • Fig. 5b ein Blockchaltbild mit einer Darstellung der Implementierung der mit einem Speicherarray 26 verbundenen MCU 22,
  • Fig. 6 ein Blockschaltbild mit einer näheren Darstellung eines Teils der Schaltungsanordnung der MCU 22,
  • Fig. 7 ein Blockschaltbild mit einer näheren Darstellung weiterer Schaltungen der MCU 22,
  • Fig. 8 ein Flußdiagramm mit einer Darstellung der Arbeitsweise der Schaltung zur Feststellung von Leseadressenübereinstimmung, und
  • Fig. 9 ein Flußdiagramm mit einer Darstellung der Arbeitsweise eines Teils des assoziativen Adressenvergleichs in Abhängigkeit vom Typ der Leseoperation.
  • Detaillierte Beschreibung einer bevorzugten Ausführungsform
  • Fig. 1 zeigt ein Informationsverarbeitungssystem (SYSTEM) 10 gemäß einer bevorzugten Ausführungsform der Erfindung. Das SYSTEM 10 umfaßt einen Systembus (SB) 12, der einen Systemadressenbus (SA) 14, einen Systembussteuerbus (SBCB) 15 und einen Systemdatenbus (SD) 16 aufweist. Der SB 12 dient dazu, Informationseinheiten zwischen den verschiedenen Komponenten des SYSTEMs 10 zu transportieren. Informationseinheiten können Adressen, E/A-Eingabe- oder -Ausgabedaten, Operanden, Befehle oder andere Informationstypen sein, die sich zwischen den Komponenten des SYSTEMs 10 bewegen. Bei der bevorzugten Ausführungsform der Erfindung ist der SB 12 ein nicht verriegelter Bus für hohe Übertragungsgeschwindigkeit, der auf ECL- Spannungspegeln arbeitet. D.h., logische Signale auf dem Bus schwingen zwischen etwa -0,9 V und -1,8 V.
  • Mit dem Systembus 12 sind viele Systemeinheiten oder Busanschlüsse verbunden, zu denen eine erste Zentraleinheit (CPU0) 18 und eine optionale zweite CPU1 20 gehören. Ferner ist mit dem SB 12 eine Speichersteuereinheit (MCU) 22 verbunden, an die über eänen Speicherbus 24 eine oder mehrere Speicherkarten, z.B. MEM0 26, MEM1 28 und MEM2 30 angeschlossen sind. Bei der bevorzugten Ausführungsform der Erfindung kann die MCU 22 mit bis zu acht Speicherkarten, z.B. MEM7 32, verbunden sein. Jede Speicherkarte kann abhängig vorn Typ und der Menge der installierten Speichervorrichtungen zwischen z.B. vier Millionen Byte (4MB) und 128 MB Informationen speichern. Ferner sind mit dem SB 12 eine oder mehrere Systembus- Schnittstelleneinheiten (SBI) verbunden, z.B. SB10 bis SB13 34, 36, 38 bzw. 40. Jede der SBI ist weiter mit einem zugehörigen E/A-Datenbus (IODB), z.B. IODB 42 und 43 verbunden, die an die SBI0 34 und SBI2 38 angeschlossen sind. An jeden IODB sind bis zu 15 intelligente E/A-Prozessoren (IOP), z.B. IOP 44 bis 50 und IOP 45 bis 51 angeschlossen. Bei der bevorzugten Ausführungsform der Erfindung arbeiten die IODB 42 und 43 auf TTL-Pegeln. Das heißt, logische Signale auf diesen Bussen schwingen zwischen etwa 0 V und +5,0 V.
  • Die CPU0 18 und die CPU1 20 weisen je einen ihr zugeordneten Hochleistungs-Cachespeicher auf und sind je über einen Cachespeicherdatenbus (CDB) 52 bzw. 54 an ein Rechenwerk (AU0) 56 bzw. AU1 58 angeschlossen. Mit dem SB 12 ist ferner eine Unterstützungssteuereinheit (SCU) 60 verbunden, an die eine Systemkonsole (SC) 62 angeschlossen ist. Ein Unterstützungsverbindungsbus (SLB) 64 ermöglicht Zugriffe und Kommunikationen von der SC 62 über die SCU 60 mit den verschiedenen an den SB 12 angeschlossenen Einheiten. Diagnostik und weitere Informationen, z.B. Systeminitialisierungsdaten, werden im allgemeinen über den SLB 64 bereitgestellt.
  • Im allgemeinen generieren die CPU 18 oder 20 virtuelle Speicheradressen, die in reale Adressen umgewandelt und über den SA-Bus 14 ausgegeben werden. Die Adressen werden von der MCU 22 empfangen und interpretiert, um über den Speicherbus 24 Befehle und Daten zu adressieren, welche in den Speicherkarten 26 bis 32 gespeichert sind. Das Auslesen und Einschreiben von Daten und Befehlen geschieht über den SD-Bus 16 in Übereinstimmung mit den durch den SBCB 15 zugeleiteten Informationen. Ferner lassen sich mit den SBI 34 bis 40 Speicheradressen und Daten über den Systembus 12 zum speichern und Wiedergewinnen von Daten aus den Speicherkarten 26 bis 32 übertragen. Es sei darauf hingewiesen, daß einer oder mehrere der IOP 44 bis 51 mit einem Massenspeicher, z.B. einer Nagnetplatte verbunden sein können. Auch können einige der IOP mit Datenübertragungseinrichtungen verbunden sein, die Daten in und aus dem System ein- bzw. ausgeben. Die IOP können auch mit Bediener-Arbeitsstationen verbunden sein, an denen ein Benutzer Daten in das System eingibt.
  • Zur Vereinfachung der Beschreibung der Erfindung wird nachstehend die Arbeitsweise des SB 12 näher beschrieben.
  • SB 12 ist ein nicht verriegelter Synchronbus mit einem 64- Bit-Datenweg und einem 28-Bit-Adressenweg. Der SB 12 bietet eine Spitzenverbindungsbandbreite von 200 Mb/s und besteht, wie weiter oben angegeben, aus Treiber- und Empfangsschaltungen in emittergekoppelter Logik (ECL).
  • Die nachstehend angegebenen Signale beschreiben die Arbeitsweise und das Protokoll des Systembusses 12.
  • Systemdaten (SDATA(0:63))
  • Systemdatenbus 16. Aller Speicherdatenverkehr zu und von den Busanschlüssen wird über diese 64 Leitungen übertragen. Wenn der noch zu beschreibende CMD-Merker aktiviert ist, werden erfindungsgemäß einige dieser Leitungen zum Übertragen von Befehlskennzeichen(ID)-Informationen benutzt wie weiter unten im Zusammenhang mit CMD und ID beschrieben wird.
  • Datenparität (SDPAR(0:7))
  • Ungerade Datenparität. Ein Paritätsbit für jedes, von insgesamt acht, Datenbyte des SDATA 16.
  • Systemadresse (SA(04:31))
  • Systemadressenbus Ein Busanschluß überträgt während eines Speicherlese- oder Speicherschreibzyklus eine Speicher- adresse an die MCU 22 über diese 28 Leitungen. Die MCU 22 steuert danach diese Leitungen mit der Adresse von Daten an, die einen Buszyklus vor dem Aufgeben der Daten auf den Bus gelesen wurden.
  • Mit dem SB 12 verbundenen Rückschreib-Cachespeicher benutzen die von der MCU 22 angesteuerte Adresse für den Vergleich von Verzeichnissen, um zu bestimmen, wenn eine Busintervention erforderlich ist, und ebenfalls zum Ansteuern der Adressenleitungen während einer Cachespeicher-Weitersendung. Während einer (noch zu beschreibenden) IPC-Transaktion übertragen die Systemadressenleitungen auch die IPC-Nachricht und andere IPC-bezogene Daten.
  • Adressenparität (SAPAR)
  • Bit für ungerade Adressenparität.
  • Befehlsmerker (CMDF)
  • Wenn die Leitung durch einen Busanschluß aktiviert wurde, zeigt sie an, daß der SDATA-Bus 16 vom Busanschluß zur Übertragung von Befehlskennzeichen-Informationen benutzt wird. Wenn diese Leitung nicht aktiviert ist und der Bus (durch nachstehend beschriebenes) BUSVLD freigegeben ist, zeigt CMDF an, daß SDATA 16 Daten übermittelt.
  • Befehl (CMD)
  • Bei aktiviertem CMDF bringt ein Busanschluß während eines Buszyklus den Befehlstyp auf SDATA [48:55], der eine Speicheroperation auslöst oder, im Falle der MCU 22, Daten an einen anfordernden Busanschluß zurückschreibt. Das 8-Bit-CMD- Feld codiert die Art der Busoperation.
  • Bei der bevorzugten Ausführungsform der Erfindung sind die verschiedenen vom CMD-Feld codierten Busoperationstypen folgende:
  • OPERATION
  • Keine Operation
  • Lese Doppelwort
  • Lese Vierfachwort
  • Lese Oktalwort
  • Schreibe Byte
  • Schreibe Wort
  • Schreibe Doppelwort
  • Rückschreibe Daten (Übertragung von MCU)
  • Übertrage IPC
  • Lese MCU
  • Schreibe MCU
  • Weitere Signale auf SB 12 sind folgende:
  • ID (Kennzeichen)
  • jeder Busanschluß hat einen eindeutigen Identifizierer (ID). Wenn ein Busanschluß CMDF aktiviert, bringt der Busanschluß während eines Buszyklus seinen eindeutigen ID auf SDATA [56: 63] zusammen mit dem Busbefehl (CMD) auf SDATA [48:55]. Die MCU 22 steuert den zuvor empfangenen und gepufferten ID eines Busanschlusses, der eine Speicheranforderung gestellt hat, an, wenn die Daten an den anfordernden Busanschluß zurückgeschrieben werden. Während der Aktivierung eines Übertrage-IPC-Befehls auf SDATA [48:55] steuert ein Busanschluß den ID vom Ziel des IPC-Befehls auf SDATA[56:63] an.
  • Besetzt (BSY)
  • Diese Signalleitung wird von einem Busanschluß während aller Zyklen einer Busoperation aktiviert, den letzten Zyklus ausgenommen. BSY wird am Ende jedes Buszyklus von allen Anschlüssen, die den Bus benutzen wollen, abgefragt und zeigt im aktivierten Zustand an, daß der Bus benützt wird und anderen Busanschlüssen nicht zur Verfügung steht. Während eines an einen IOP über eine zugeordnete SBI geleiteten START-IO- IPC-Befehls, steuert die SBI weiterhin die Besetzt-Leitung an, bis die Verbindung mit dem Ziel-IOP hergestellt ist und festgestellt ist, ob der IOP den START-IO-Befehl angenommen hat.
  • Bus Freigegeben (BUSVLD)
  • Dieses Signal wird von einem Busanschluß aktiviert, wenn auf den Bus freigegebene Informationen gebracht werden.
  • Blockierung (LOCK)
  • Wird von einem Busanschluß aktiviert, wenn die Benutzung des Busses durch andere Busanschlüsse (MCU 22 ausgenommen) verhindert werden soll. Diese Signalleitung wird zum Implementieren von Semaforanweisungen benutzt, die Lese-Modifizier- Schreib-Operationen ausführen.
  • CPU Halten (CPUHLD)
  • Es sind zwei CPUHLD-Signale, je eines für jede CPU, vorgesehen. Dieses Signal wird von einer CPU generiert und am Ende jedes Buszyklus von allen anderen Busanschlüssen abgefragt. Dieses Signal zeigt an, daß einer der Rückschreib-Cachespeicher entweder Daten von der MCU 22 weiterleitet oder gespeicherte Informationen aktualisiert. CPUHLD hat die gleiche Wirkung wie BSY; es zeigt an, daß der Bus noch benutzt wird und für alle anderen Busanschlüsse nicht verfügbar ist. Wie BSY wird CPUHLD einen Zyklus vor dem letzten Buszyklus deaktiviert, Es wird auch von einer CPU benutzt, um Abruf/Rückschreib-Operationen für den Cachespeicher zu verriegeln.
  • MCU Halten (MCUHLD)
  • Wird von der MCU generiert und am Ende jedes Buszyklus von allen anderen Busanschlüssen abgefragt. Entsprechend einem Merkmal der Erfindung zeigt dieses Signal an daß die MCU einen korrigierbaren Fehler festgestellt hat und während des nächsten Buszyklus die Daten in korrigierter Form weiterleiten wird. Das Systembusprotokoll für MCUHLD ist dem für CPUHLD ähnlich.
  • Schreibbestätigung (WACK)
  • Die Bestätigung wird von der MCU 22 in Antwort auf Schreiboperationen in dem Buszyklus, der dem Datenzyklus folgt, und von Zielgeräten in Antwort auf Interprozessor(IPC)-Übertragungsoperationen generiert.
  • Ziel Besetzt (TB)
  • Dieses Signal wird von einem Zielgerät in Antwort auf eine IPC-Übertragung generiert. Im aktiven Zustand zeigt TB an, daß das Ziel besetzt ist und daß die Übertragung nicht angenommen wurde.
  • Busfehler (BUSER)
  • Aktivierung durch jeden Busanschluß, der einen Busfehler feststellt.
  • Speicher-Unterbrechung (MEMX)
  • Wird durch die MCU 22 während des einer Adressenübertragung folgenden Zyklus aktiviert, wenn eine ungültige Speicheradresse empfangen wird, oder während des einer Datenübertragung folgenden Zyklus, wenn während einer Speicherleseoperation ein unkorrigierbarer Zweibit-Speicherfehler auftritt.
  • Xmit Rg In (Übertragungsanforderung EIN)/Xmit Rq Out (Übertragungsanforderung AUS) (XRQ1/XRQ0)
  • Dieses Signal wird in serieller Kaskadenschaltung zwischen Busanschlüssen übertragen. Ein Busanschluß, der den Bus benutzen will, aktiviert Xmit Rq Out und startet die Übertragung beim nächsten Zyklus nur, wenn die nachstehenden Bedingungen erfüllt sind:
  • Xmit Rg In von seinem höheren Nachbar ist falsch;
  • Besetzt ist falsch;
  • Halten ist falsch; und
  • LOCK ist falsch (nur wenn nicht von MCU).
  • Ein Busanschluß schaltet Xmit Rg In von seinem Nachbarn mit höherer priorität auf Xmit Rq Out um, das mit seinem Nachbarn niedrigerer Priorität verbunden ist. Entsprechend einem Merkmal der Erfindung ist die MCU 22 in der XRQ1/XRQ0-Kaskadenschaltung als der Busanschluß mit der höchsten Priorität bestimmt. Dies ermöglicht es der MCU 22, die Steuerung des Busses zu übernehmen, um, wie weiter unten näher beschrieben, in einer Warteschlange befindliche Lese- und Schreibanforderungen auszuführen.
  • Die Zeitdiagramme der Fig. 3 erläutern verschiedene Arten Bustransaktionen, einschließlich der Arbeitsweise des multiplex genutzten Befehl/ID und des Datenweges mit zugeordneter Adresse, die während eines Buszyklus angelegt wird, welcher der Aufgabe von Daten auf SDATA 16 vorausgeht. In den Zeitdiagrammen der Fig. 3a bis 3c Last die zeitliche Signalsteuerung auf die Periode eines Systemtaktes (CLK) bezogen, wobei die Taktperiode etwa einen Buszyklus darstellt. Bei einer bevorzugten Ausführungsform der Erfindung ist die Grundeinheit der Zeitsteuerung oder das Zeitintervall, d.h. die CLK- Periode, etwa 40 Nanosekunden.
  • Fig. 3a zeigt eine Byte/Halb/Wort/Doppel-Schreiboperation, unmittelbar gefolgt vom Befehl-ID-Teil einer Doppelwort(64 Bit)-Leseoperation, gefolgt von einer MCU-Datenrückgabe des angeforderten Doppelwortes.
  • Fig. 3b erläutert die Benutzung des CPUHLD bei einer Cachespeicher-Abruf/Rückschreiboperation. Beim gezeigten Beispiel sendet eine CPU eine Befehl-ID-Information an die MCU 22 für eine Oktalwort-Leseoperation und danach eine Doppelwort-Cachespeicher-Rückschreiboperation. Die MCU 22 antwortet mit der Rückgabe von vier Doppelwörtern. CPUHLD verhindert die Benutzung des Busses während dieser Abfolge durch einen anderen Busanschluß.
  • Die Fig 3c erläutert näher die Benutzung der CPUHLD-Leitung. Die Figur zeigt, daß ein Busanschluß eine Doppelwort-Leseoperation anfordert, und daß die MCU 22 das angeforderte Doppelwort zurückschreibt. Der oder die Cachespeicher speichert bzw. speichern die Adresse des Doppelwortes und schlagen im folgenden Zyklus in Verzeichnissen nach. Findet ein Cachespeicher eine "unsaubere" Übereinstimmung, aktiviert dieser Cachespeicher CPUHLD kurz vor dem Zyklusende. Die CPUHLD-Leitung verhindert die Benutzung des Busses durch andere Anschlüsse, bis der Rückschreib-Cachespeicher das Doppelwort und seine Adresse weiterleitet und danach CPUHLD aufhebt. BSY wird während des ersten Zyklus der Weiterleitung aktiviert, und BUSVLD wird während zwei Zyklen aktiviert, wenn die Weiterleitung ausgeführt wird.
  • Eine Einrichtung zur Interprozessor-Kommunikation (IPC) ermöglicht eine direkte Kommunikation von Busanschlüssen miteinander durch Übersenden von IPC-Nachrichten. Das Busprotokoll für das Übersenden dieser Nachrichten ähnelt einer Schreiboperation, mit der Ausnahme, daß statt eines Schreibbefehls der Übertrage-IPC-Befehl benutzt wird. Die Adresse, welche zusammen mit den Befehl-ID-Leitungen übertragen wird, hat das in Fig. 4a dargestellte Format. Der Zustand der acht Zielfeld-Bit spezifiziert ein bestimmtes Ziel, wobei daran erinnert wird, daß der TD des Ziels durch das ID-Feld von SDATA[56:63] übertragen wird.
  • ZIEL
  • SCU
  • CPU0
  • CPU1
  • SBI0
  • SBI1
  • SBI2
  • SBI3
  • Der 64-Bit-SDATA-Bus wird zum Übertragen zusätzlicher, Wahl weiser Nachrichtendaten benutzt, je nach Erfordernis der verschiedenen Arten einer IPC-Nachricht. Die Fig. 4b, 4c, 4d und 4e erläutern eine von einer SBI 34 generierte IPC, eine von einer CPU generierte IPC, die an einen IOP gerichtet ist, eine von der SCu 60 generierte IPC, die an eine CPU gerichtet ist, und eine von der SCU 60 generierte IPC, die über eine SBI 34 an einen IOP gerichtet ist.
  • Fehlerfeststellung
  • Der SB 12 unterstützt vier Arten von Fehlerfeststellmechanismen. Zu ihnen gehören:
  • Feststellung von Datenparitätsfehlern: Auf dem 64-Bit- Datenbus stehen acht Datenparitätsbit an (ein Paritätsbit für jedes Byte).
  • Feststellung von Adressenparitätsfehlern: Auf dem 28- Bit-Adressenbus steht ein Adressenparitätsbit an.
  • Fehlende Bestätigung: Die Bestätigungs-Steuerleitung wird zum Bestätigen von Schreib- und IPC-Transaktionen benutzt. Leseoperationen werden durch den MCu-Zyklus Datenrückgabe-Befehl-ID auf dem Bus bestätigt. Und
  • Ablauffehler: Unzulässige Bussteuerungsabläufe werden durch die an einer bestimmten Bustransaktion beteiligten Busanschlüsse festgestellt.
  • Busanschlüsse, die einen der vorstehend genannten Fehler feststellen, steuern die Busfehler-Leitung nur während eines Systembus-Taktzyklus an. Dies meldet den Fehler an die SCU 60. Diese steuert danach das Busfehler-Signal erneut auf, bis die SCU 60 die Fehlerbedingung behoben hat. Der Busanschluß speichert auch die Art des Fehlers (der Fehler) in einem für die SCU 60 erreichbaren Fehlerregister.
  • Wie weiter oben angegeben wurde, ist der SB 12 ein nicht verriegelter Bus. Eine durch den nicht verriegelten SB 12 ermöglichte bedeutende Verkürzung der Buszyklen führt zu einer für Spitzenbusanforderungsraten und E/A-Verkehr verfügbare größere Busbandbreite Weil die MCU 22 Speicherzugriffe in eine interne Warteschlange bringt, Last es nicht erforderlich, daß die Speicherzugriffszeit zu Lasten eines anfordernden Busanschlusses geht. Dadurch wird der SB 12 für weitere Anforderer freigehalten. Wenn der angeforderte Zugriff eine Schreiboperation ist, wird der Anforderer wie weiter oben angegeben informiert, und wenn der angeforderte Zugriff ein Lesezugriff ist, werden die Daten später zurückübertragen.
  • Das Flußdiagramm der Fig. 2 zeigt in Verbindung mit Fig. 5a und 5b in Form eines Blockschaltbildes die Verbindung der MCU 22 mit einem Speicherarray 26 über den Speicherbus 24. Die MCU 22 ist eine Speichersteuerung mit Pufferspeicher, die Leseoperationen bis zur Länge eines Oktalwortes (32 Byte) ausführen kann. Das Speicherarray 26 ist in einer ungeradzahligen und einer geradzahligen Ebene organisiert, wobei jede Ebene ein Doppelwort breit ist. Als Steuerung des Systemspeichers ist die MCU 22 in einen Zustand bringbar, in dem sie Dienstanforderungen entweder von der CPU0 oder der CPU1, der SBI 34 und der SCU 60 annimmt. Wie weiter oben angegeben, kann die MCU 22 mit bis zu acht Speicherarrays verbunden werden.
  • Im allgemeinen stellt die MCU 22 eine logische Verbindung zwischen dem Systemdatenbus 16 und dem Systemadressenbus 14 und den Speicherarrays her. Entsprechend einem Merkmal der Erfindung sind für Speicherleseoperationen zwei Datenwege vorgesehen. Ein erster Weg ist ein schneller Datenweg, der benutzt wird, wenn keine bei der MCU 22 noch schwebende Anforderungen in einer internen Warteschlange gestapelt sind. Der schnelle Weg legt unkorrigierte Daten direkt an den SB 12 an, wobei die Daten gleichzeitig einer Fehlerfeststell- und Fehlerkorrekturschaltung (ECC) zugeleitet werden. Wird ein korrigierbarer Fehler entdeckt, meldet die MCU dies dem empfangenden Busanschluß und leitet danach die korrigierten Fehle auf den Bus. Ist der Fehler nicht korrigierbar, z.B. ein Zweibitfehler, wird dies dem empfangenden Busanschluß gemeldet. Ein zweiter Datenweg ist ein normaler Weg, der benutzt wird, wenn die MCU 22 in den Warteschlangen gestapelte, noch nicht erledigte Anforderungen aufweist oder auf andere Weise keinen unmittelbaren Zugriff auf den SB 12 hat. Weil die MCU 22 zur Rückübertragung der angeforderten Daten auf einen Zugriff auf den SB 12 warten muß, werden die Daten der ECC- Schaltung zugeleitet, bevor sie auf den SB 12 ausgegeben werden. Es leuchtet ein, daß die Möglichkeit eines Fehlerauftritts während irgendeiner Speicherleseoperation relativ klein ist, speziell deshalb, weil die MCU 22 normalerweise eine Fehlerkorrektur während Auffrischoperationen vornimmt, und daß die Benutzung des schnellen Datenweges zu einer bedeutenden Vergrößerung der gesamten Systembusbandbreite führt.
  • Die MCU 22 weist eine Vielzahl von Zustandsmaschinen auf; hierzu gehören eine Initiator-Zustandsmaschine (ISM) 70, eine Speicherschnittstelle-Zustandsmaschine (MISM) 72 und eine Terminator-Zustandsmaschine (TSM) 74. Ein Systembus-Decodier- Logikblock (SB DECODE) 76 decodiert Signale des SB 12 und liefert Ausgänge an die ISM 70 und die MISM 72. Die ISM 70 liefert im allgemeinen Signale, welche die Operation der MCU 22 in Antwort auf Lese- oder Schreibanforderungen auslöst. Die MISM 72 erzeugt eine Vielzahl von Ausgangssignalen, die durch das allgemeine Signal MEMORY CONTROL (Speichersteuerung) dargestellt sind, das den speicherarrays zugeleitet wird. Zu diesen Signalen gehören Speichertaktsignale und auf Auffrischung bezogene Signale. Die TSM 74 decodiert bestimmte Signale des SB 12 und liefert andere Signale an den SB 12, die benutzt werden, wenn die MCU 22 während einer Datenrückschreibung einen Datenfehler feststellt. Die TSM 74 steuert auch die Folgesteuerung von Daten- und Adreßzwischenspeichern, die benutzt werden, wenn Daten und Befehl/ID-Informationseinheiten an den SB 12 zurückübertragen werden.
  • In dieser Hinsicht sind ein Eingangsdaten-Zwischenspeicher 78, ein Eingangsadressen-Zwischenspeicher 80 und ein entsprechendes Paar Ausgangsdaten- und Ausgangsadressen-Zwischenspeicher 82 und 84 vorgesehen. Zwischen der MCU 22 und den Speicherarrays sind ein Datenzwischenspeicher mit ungeradzahliger Speicherebene 86 und ein Datenzwischenspeicher mit geradzahliger Speicherebene 88 vorgesehen. Speicheradressen werden im Multiplexbetrieb auf die Signalleitungen der geradzahligen Ebene aufgegeben.
  • Schreibdaten vom SB 12 werden in einem Zwischenspeicher oder einer Warteschlange für Oktaldoppelwörter 90 und zugehörige Schreibadressen in einem Oktal-Zwischenspeicher oder einer Oktal-Warteschlange 92 zwischengespeichert. Somit kann die MCU 22 bis zu acht schwebende Schreibanforderungen zwischenspeichern. Ein Vierfach-Leseadressen-Zwischenspeicher oder -Warteschlange 94 ist Pufferspeicher für bis zu vier schwebenden Leseanforderungen. Ein Multiplexer 96 mit vier Eingängen wählt aus der schreibadressen-Warteschlange 92 oder aus der Leseadressen-Warteschlange 94 die Quelle der Adresse für einen bestimmten Speicherzugriff aus. Ein anderer Eingang des Multiplexers 96 kommt direkt vom Eingangsadressen-Zwischenspeicher 80 und wird als schneller Speicherzugriffsweg benutzt, wenn die Warteschlangen umgangen werden sollen. Ein Auffrischadressen-Zähler 98 liefert Auffrischadressen über den Multiplexer 96 während Speicherarray-Auffrischzyklen. Ein Pufferspeicher 100 speichert den gewählten Ausgang des Multiplexers 96 auf die Signalleitungen der geradzahligen Ebene.
  • Erfindungsgemäß vergleicht ein Adressenvergleich-Logikblock 102 eine einer ankommenden Leseanforderung zugeordnete Adresse mit evtl. vorhandenen Schreibadressen, die in der Warteschlange 92 gespeichert sind. Besteht eine Übereinstimmung, wird ein Signal Leseadressenübereinstimmung (RAMTCH) aktiviert. Das aktivierte RAMTCH bewirkt eine Unterbrechung der normalen Verarbeitung von Lese- und Schreibanforderungen und die Ausführung von zwischengespeicherten Lese- und Schreibanforderungen. Dieses Merkmal der Erfindung wird nachstehend näher beschrieben.
  • Die MCU 22 umfaßt auch eine Fehlerkorrektur- und Fehlerfeststell-Logik 104, die zwischen die ungerade- und geradzahligen Speicherdaten-Zwischenspeicher 86 und 88 einerseits und der Schreib-Warteschlange 90 und dem Ausgangsdaten-Zwischenspeicher 82 zwischengeschaltet ist.
  • In Fig 2 ist der Steuerungsfluß der MCU 22 in Antwort auf eine von einem Busanschluß oder einer intern generierten Auffrischanforderung initiierten MCU-Operation dargestellt. Nach Verlassen einer anfänglichen Rücksetzbedingung tritt MCU 22 in einen Ruhezustand (A) ein, der auch prüft ob eine gültige MCU-22-Operation vorliegt (B). Wird eine gültige MCU 22 festgestellt, wird durch einen neuen Test (C) bestimmt, ob die Operation eine Speicheroperation ist, also eine Operation, die auf eines der Speicherarrays zugreifen wird, oder eine interne Operation. Ist die letztgenannte Bedingung wahr, wird heiter geprüft (D), ob die interne Operation eine Diagnostikoperation ist oder eine Operation, die Daten aus bzw. in eine interne Ressource der MCU 22 liest oder schreibt, z.B. eine Lese- oder eine Schreiboperation in eine Referenz- und Änderungstabelle (RCT). Wird eine Diagnostikoperation angegeben, werden Diagnostiksteuerbit gesetzt (E), und es wird in den Ruhezustand (A) eingetreten. Wird ein Zugriff auf eine interne Ressource der MCU 22 angegeben, wird die Initiator-Zustandsmaschine 70 gestartet (F). Es wird geprüft (G), ob die Laufende interne Operation eine RMCU-Operation, die eine Datenrückgabe an den SB 12 erforderlich macht, oder eine Operation ohne Rückübertragung, z.B. eine Schreiboperation an die RCT ist. Ist letzteres wahr, wird geprüft (H), ob die ISM 70 im Ruhezustand ist, und es wird in einen Wartezustand (I) eingetreten, bis die ISM 70 beendet hat; zu diesem Zeitpunkt wird erneut in den Ruhezustand A eingetreten.
  • Ist eine Datenrückübertragung erforderlich, wird die Terminator-Zustandsmaschine 74 gestartet (J), und es wird eine prüfung (K) durchgeführt, mit einem Wartezustand (L), bis die Datenrückgabe beendet ist. Bei Beendigung der Operation der TSM 74 wird erneut in den Ruhezustand A eingetreten.
  • Ist eine Speicheroperation angegeben, wird im Schritt c die Speicherschnittstelle-Zustandsmaschine 72 gestartet (M) und es wird geprüft (N), ob eine Leseoperation, eine Lese-Modifizier-Schreib-Operation oder ein Auffrischzyklus im Gange ist. Wenn keine von ihnen wahr ist, wird angenommen, daß eine Schreiboperation läuft. Während einer Schreiboperation verzweigt die Steuerung auf einen Zustand (O), in dem die Daten notfalls korrigiert werden, und die Daten werden in das speicherarray geschrieben. Wird bei der Prüfung N festgestellt, daß eine Lese-, eine RMW- oder eine Auffrischoperation läuft, wird mit einem begleitenden Wartezustand (Q) geprüft (P), ob ein Signal DTOUT der Speicherschnittsteile-Zustandsmaschine 72 aktiviert ist. Die Aktivierung von DTOUT zeigt an, daß von einem Speicherarray gefordert wird, die Daten bereitzustellen, die gegenwärtig durch die erzeugte Adresse angegeben sind, die auf die der geradzahligen Ebene zugeordneten Daten/Adressen-Signalleitungen gegeben wird. Bei der Rückgabe der Daten an die MCU 22 wird geprüft (R), ob die Daten auf den SB 12 zu geben sind oder an das Speicherarray zurückzuübertragen sind (Auffrisch- oder RMW-Zugriff). Sind die Daten auf den SB 12 zu geben, geht die Flußsteuerung auf J, wo die TSM 74 gestartet wird. Sind die Daten an das Speicherarray zu schreiben, geht die Flußsteuerung zu O, wo die Daten korrigiert und geschrieben werden. Danach wird mit einem begleitenden Wartezustand (T) geprüft (S), ob die Speicherschnittstelle-Zustandsmaschine 72 im Ruhezustand ist was die Beendigung des Schreibzyklus anzeigt. Die Flußsteuerung kehrt dann zum Ruhezustand A zurück.
  • Fig. 6 zeigt nähere Einzelheiten eines Teils der MCU-22- Schaltung. Die in Fig. 6 dargestellte Schaltung ist bei einer bevorzugten Ausführungsform der Erfindung in einem von zwei identischen Gate-Array-Geräten verwirklicht, die zur Pufferspeicherung von Schreibdaten und -Adressen, Pufferspeicherung von Lese-ID-Daten und Ausführung von ECC-Funktionen dienen. Jeder Speicherplatz im Schreibdaten-Zwischenspeicher 110 ist ein Wort oder 32 Bit breit. Ein 3-8-Decodierer 112 liefert acht Wählausgänge zum Wählen eines der acht Zwischenspeicher zum Speichern von Schreibdaten.
  • Eine ECC-Schaltungsanordnung umfaßt eine Logik zur Erzeugung von Syndrom- und Schreibprüfbit, 114, einen Syndrombit-Decodierer 116 und eine Einzelbit-Korrekturschaltung 118. Ein 32- Bit-Multiplexer mit vier Eingängen, 120, wählt eine Datenquelle für die Aufgabe von Daten auf die Ausgangsspeicherdatenleitungen. Eingangsspeicherdaten (MENDAT) werden einem Multiplexer mit zwei Eingängen, 122, zugeleitet, der die Ausgabe an die Systembus-Zwischenspeicher entweder der unkorrigierten Speicherdaten oder der korrigierten CRCDAT ermöglicht. Während des weiter oben beschriebenen schnellen Lesezyklus wird MEMDAT ausgegeben. Wird ein Fehler festgestellt, werden anschließend die korrigierten CRCDAT geliefert.
  • Ein 8-Bit-Lese-ID-Zwischenspeicher mit vier Speicherplätzen, 124, ist zum Zwischenspeichern des Identifizierers ID eines Busanschlusses zum SB 12 während eines Lesezugriffs vorgesehen. Dieser zwischengespeicherte ID wird später auf den SB 12 während der Rückübertragung der angeforderten Lesedaten gegeben, um das Ziel der Daten zu identifizieren.
  • In Fig. 7 ist eine Schaltungsanordnung zum Pufferspeichern von Lese- und Schreibanforderungsadressen und -befehlen dargestellt. Bei einer bevorzugten Ausführungsform der Erfindung ist die Schaltungsanordnung entsprechend Fig. 7 ebenfalls in einem Gate-Array-Gerät verwirklicht.
  • Ein Pufferspeicher für Schreibanforderungsadressen und gültige Bit, 130, speichert 28 Adressenbit an speicherplätzen, die eine Wähllogik für Schreib-Pufferspeichereingangs-Zeiger, 132, bestimmt Ein jedem der Schreib-Pufferspeicherplätze zugeordnetes gültiges Bit wird gesetzt, wenn eine Adresse gespeichert wird, und wird rückgesetzt, wenn die entsprechende Schreiboperation ausgeführt ist. Eine der Schreibadressen wird von einem Multiplexer mit acht Eingängen, 134, gewählt, der die Schreibadresse an den Speicheradressen-Multiplexer 96 sendet. Zu weiteren Eingängen in den Speicheradressen-Multiplexer 96 gehören die Auffrischadresse vom Auffrischadressenzähler 98 und eine Leseadresse von einem Leseadressen-Multiplexer mit vier Eingängen, 134. Eine Adressenparitäts-Logik 136 stellt Paritätsfehler fest, die bei den eingegebenen Lese- und Schreibadressen auftreten können. Der Ausgang des Speicheradressen-Multiplexers 96 wird von einem Speicheradressenausgangs-Zwischenspeicher 138 zwischengespeichert.
  • Ein Pufferspeicher für Vierfach-2-8it-Lesebefehle, 140, und ein Pufferspeicher für Oktal-2-Bit-Schreibbefehle, 142, weisen Ausgänge auf, die von einem Multiplexer 144 bzw. 146 individuell gewählt werden. Die Ausgänge der Multiplexer 144 und 146 werden einem Lese/Schreibbefehl-Multiplexer 148 zugeleitet.
  • Ein Befehlsdecodier-Logikblock 150 decodiert CMD-Bit 0, 2 und 3, um zu bestimmen, wenn eine ankommende angeforderte Leseoperation eine Doppelwort-Leseoperation, eine Vierfach-Leseoperation oder eine Oktal-Leseoperation oder eine Leseoperation ist, die interne Daten aus der MCU 22 ausliest. Diese decodierten Ausgänge werden dem Adressenvergleich-Logikblock 102 zugeleitet, der, wie schon beschrieben wurde, einen assoziativen Adressenvergleich aller puffergespeicherten Schreibadressen mit einer ankommenden Leseanforderungsadresse durchführt. Wird eine Übereinstimmung festgestellt, wird das RAMTCH-Signal aktiviert, das eine spezielle Verarbeitung der Lese- und Schreibpufferspeicher auslöst. Gemäß dem Flußdiagramm in Fig. 9, und abhängig vom Typ der Leseoperation, wird zwischen den ankommenden Leseadressen und den in der Warteschlange befindlichen Schreibadressen eine verschiedene Anzahl Bit verglichen. Beispielsweise werden während einer Oktal-Leseoperation 10 Adressenbit (17:26) verglichen, bei einer Vierfach-Leseoperation 11 Bit (17:27), wogegen bei einer Doppelwort-Leseoperation 12 Adressenbit (17:28) verglichen werden. Während einer internen Leseoperation, üblicherweise des RCM, werden nur vier Bit verglichen; diese Bit entsprecnen einem Speicheradressen-Seitenrahmen, welcher der Referenz- und Änderungstabelle zugeordnet ist.
  • Wegen der nicht verriegelten Arbeitsweise des SB 12 pufferspeichert die MCU 22 ankommende Lese- und Schreibanforderungen, wobei sie es normalerweise ermöglicht, daß ankommende Leseoperationen puffergespeicherten Schreiboperationen vorausgehen. Die MCU 22 umfaßt die Adressenvergleich-Logik 102, um die Ausführung von Anforderungen in die richtige Ablauffolge zu bringen, falls eine ankommende Leseadresse innerhalb eines vorbestimmten Bereiches der Speicheradressen mit einer puffergespeicherten Schreibadresse übereinstimmt. In diesem Falle werden die in der Warteschlange befindlichen Lese- und Schreibanforderungen ausgeführt, bevor die Leseanforderung abläuft, welche die Übereinstimmung hervorgerufen hat. Die zur Durchführung der Übereinstimmungsfunktion benutzte Logik implementiert einen assoziativen Adressenvergleich zwischen allen puffergespeicherten Schreibadressen und einer ankommenden Adresse, die einer Leseoperation zugeordnet ist. Die niedrigstwertigen zwölf Bit der ankommenden Leseadresse werden bis auf Doppelwortebene verglichen, je nach Typ der angeforderten Operation, d.h. am decodierten Ausgang der Befehlsdecodier-Logik 150.
  • Alle von der MCU 22 ausgeführten Leseanforderungen sind ein Doppelwort oder mehr breit. Die MCU 22 kann auch Vierfachwort- und Oktalwort-Leseoperationen wirkungsvoll ausführen, weil die MCU 22 für ankommende Daten über einen Vierfachwort breiten Weg von den Speicherkarten her verfügt. Während einer Oktal-Leseoperation empfängt die MCU 22 von einem Speicherarray zwei Vierfachwörter, die durch drei Speichertaktzyklen zeitlich getrennt sind. Dies ermöglicht die Datenrückgabe an den Anforderer mit einer kleinstmöglichen Zahl Wartezustände, sobald das erste Datendoppelwort auf den SB 12 gegeben worden Last. Schreibanforderungen an die MCU 22 können ein Byte, ein Wort oder ein Doppelwort breit sein. Schreibanforderungen mit einer Breite unter einem Wort (Byte-Schreiboperationen) erzwingen die Ausführung eines Lese-Modifizier-Schreib-Zyklus durch die MCU 22.
  • Der SB 12 ermöglicht es einem Busanschluß, der MCU 22 mehrere aufeinanderfolgende Speicherschreibanforderungen zuzusenden. Die Neuzuteilung des Busses ist während jeder Doppelwortübertragung nicht notwendig, weil der SB 12 durch den Busanschluß gehalten werden kann, der die weiter oben beschriebene LOCK- Signalleitung benutzt. Diese SB-12-LOCK-Bedingung kann bis zu einer Oktalwort-Schreiboperation (vier zeitlich zusammenhängende Schreiboperationen) beibehalten werden. Jedoch muß eine Neuzuteilung vorgenommen werden nach maximal jeder Oktalwort- Schreiboperation, weil die MCU 22 in der Lage sein muß, nach jeder Schreibübertragung die Eigentümerschaft des Systembusses anzufordern und zu erhalten.
  • Die MCU 22 hat die Möglichkeit, einen Busanschluß nach jeder Schreibanforderung zu stoppen und den Bus in einem Quasi-Besetzt-Zustand zu halten, wenn der Schreib-Pufferspeicher nach einer bestimmten Schreibanforderung vollgeschrieben wird. Der gleiche Quasi-Besetzt-Zustand läßt sich durch die MCU 22 herstellen, wenn der Lese-Pufferspeicher vollgeschrieben wird. Dies ermöglicht es der MCU 22, weitere Busanforderungen fernzuhalten, bis sie den vollgeschriebenen Pufferspeicher wenigstens zum Teil leeren kann. Wie weiter oben angegeben, wird zu diesem Zweck die XRQ0-Signalleitung des SB 12 benutzt. Die MCU 22 ist als das Gerät mit der höchsten Priorität auf dem SB 12 definiert und ihre XRQ0-Leitung wird andere Anforderer zwingen, ihre Busoperationen so lange zurückzuhalten, bis die MCU die XRQ0-Leitung deaktiviert.
  • Wie angegeben, werden die Schreibadressen im Zwischenspeicher 130 gespeichert, der während des assoziativen Adressenvergleichs benutzt wird. Dieser Zwischenspeicher ermöglicht es, daß alle acht möglichen, in Warteschlangen geschriebenen Schreibadressen während des assoziativen Adressenvergleichs erreichbar sind. Der Adressenvergleich wird durchgeführt, wenn eine Leseoperation von den CMD(0:3)-Leitungen decodiert wird, die vom Systembus 12 zwischengespeichert waren. Wie ebenfalls angegeben, wird durch den assoziativen Vergleich ein Bit generiert, das als RAMTCH(Leseadressenübereinstimmung)-Bit bezeichnet wird. Im aktivierten Zustand dient dieses Bit als Merker, welches anzeigt, daß die MCU 22 eine spezielle Ablauffolge erfordert. Das aktivierte RAMTCH-Bit bewirkt, daß die Busschnittstellensteuerung XRQ0 zum Blockieren von SB 12 aktiviert, um das Einschreiben weiterer Schreibanforderungen in den Schreib-Pufferspeicher zu verhindern. Somit werden keine weiteren Schreibanforderungen vom Systembus 12 angenommen, bis die MCU 22 durch Ausführen einer RAMTCH- Operationsablauffolge den RAMTCH-Merker gelöscht hat. Die RAMTCH-Operationsablauffolge ist in den Flußdiagrammen entsprechend Fig. 8 und 9 dargestellt.
  • Die Aktivierung des RAMTCH-Merkers zeigt an, daß eine angeforderte Leseoperation einen Speicherplatz lesen wird, an dem ebenfalls eine Schreibanforderung ansteht. Die Schreibanforderung sollte vorzugsweise vor dieser Leseanforderung ausgeführt werden, weil sonst alte Daten an den Anforderer zurückgeschrieben werden und die Datenintegrität nicht gewahrt werden kann. Gemäß einem Merkmal der Erfindung werden die in den Lese-Pufferspeichern 94 und 140 in Warteschlangen stehenden Anforderungen bis zu dem Punkt ausgeführt, an dem die Leseanforderung angetroffen wird, welche die Aktivierung des RAMTCH-Bits hervorgerufen hat. Bevor diese Leseoperation ausgeführt werden kann, werden die Anforderungen ausgeführt, die in Warteschlangen in den Schreib-Pufferspeichern 90 und 92 stehen, einschließlich der in der Warteschlange befindlichen Schreibanforderung, welche die Aktivierung von RAMTCH ausgelöst hat. Die Leseoperation wild dann ausgeführt, und die an den Anforderer zurückübertragenen Daten geben das Ergebnis der gerade ausgeführten Schreiboperation wieder. SB 12 wird dann freigegeben, so daß weitere Systembusaktivität stattfinden kann.
  • Es sei darauf hingewiesen, daß die Aktivierung des RAMTCH-Signals anzeigt, daß der Schreib-Pufferspeicher wenigstens eine, möglicherweise mehr Schreiboperationen enthält, die beendet sein müssen, bevor die Leseanforderung beginnen kann, welche die Aktivierung von RAMTCH hervorgerufen hat. Wie angegeben wurde, muß der Zustand des Schreib-Pufferspeicherinhalts an dieser Stelle gehalten werden. Dies ist dadurch bedingt, daß alle anstehenden Schreibanforderungen ausgeführt werden, bevor die Leseanforderung ausgeführt wird, welche die Übereinstimmung hervorgerufen hat. Wenn es zugelassen würde, daß eine andere Schreiboperation in den Schreib-Pufferspeicher eingeschrieben wird, kann diese Operation als Ziel denselben Speicherplatz haben, den die übereinstimmende Leseoperation haben will. Wenn es zugelassen wird, daß die Daten von dieser späteren Schreiboperation beim Ausräumen des Schreib- Pufferspeichers in den Systemspeicher übergehen, kann es sein, daß die Leseoperation Daten liest, die für sie zu "neu" sind. Somit müssen bis zur Beendigung der Leseoperation, die RAMTCH gesetzt hat, weitere Schreiboperationen angehalten werden. Die nachstehend dargestellte Speicheranforderungs-Ablauffolge erläutert die vorstehende Beschreibung der Arbeitsweise der MCU 22.
  • ABLAUFFOLGE DER ANFORDERUNGEN AN MCU 22
  • Lese A
  • Lese B
  • Schreibe X
  • Lese X
  • Schreibe Y
  • Schreibe X.
  • Wenn zu Beginn der vorstehenden Ablauffolge angenommen wird, daß im Schreib- und im Lese-Pufferspeicher keine Anforderungen anstehen, werden Lese A und Lese B normal ausgeführt, d.h. das RAMTCH-Bit wird nicht aktiviert. Schreibe X wird in den Schreib-Pufferspeicher gebracht und an den Systemspeicher geschrieben, wenn der Lese-Pufferspeicher leer ist. Lese X wird dann in die MCU 22 eingegeben und erzwingt die Aktivierung des RAMTCH-Bits infolge des assoziativen Adressenvergleichs zwischen der ankommenden Lese-X-Adresse und der Adresse von Schreibe X. Die Aktivierung von RAMTCH verursacht auch, daß die MCU 22 den Systembus 22 blockiert, um den Eingang weiterer Schreibanforderungen zu verhindern. In der Zwischenzeit ist Schreibe Y in den Systembus-Zwischenspeicher an der MCU 22 eingegangen. Schreibe Y ist die letzte Operation, die in MCU 22 eintreten kann, bis MCU 22 den Bus freigibt. Jedoch wird die Anforderung Schreibe Y nicht verarbeitet, bis die Leseanforderungen im Lese-Pufferspeicher ausgeführt sind. Die Anforderung Schreibe Y wird in die Schreib-Pufferspeicher eingegeben und, wie nachstehend beschrieben wird, speziell markiert, so daß sie nicht vor der Beendigung der vorhergehenden Lese-X-Operation beginnen wird.
  • Weil vom SB 12 nunmehr keine weiteren Anforderungen empfangen werden können, beendet die MCU 22 die Lese-B-Operation und führt dann die im Pufferspeicher anstehenden Anforderungen aus, bedingt dadurch, daß das RAMTCH-Bit für die Lese-X-Operation aktiviert ist. Die MCU 22 beendet danach die Lese-X- Operation. Nach Beendigung dieser Operation wird der Systembus 12 von der MCU 22 freigegeben, so daß die Schreibe-Y- Operation beginnen kann und die Schreibe-X-Operation in die MCU 22 eintreten und ihrerseits ausgeführt werden kann.
  • Wäre der SB 12 bei der Schreibe-Y-Operation nicht blockiert, könnte die zweite Schreibe-X-Operation in den Schreib-Pufferspeicher eintreten, bevor Lese X ausgeführt wird. Nach Ausführung der Anforderungen im Schreib-Pufferspeicher werden die Daten von der zweiten Schreibe-X-Operation durch die Lese-X-Operation gelesen, und fehlerhafte Daten könnten an den Anforderer zurückgegeben werden.
  • Eine in die MCU 22 eingegebene Leseanforderung, die keine in Warteschlangen stehende Leseanforderungen antrifft, wird unmittelbar zu den Speicherarrays zur Ausführung geleitet. Dies ermöglicht eine kleinstmögliche Wartezeit vom Standpunkt des Anforderers aus gesehen. Schreibanforderungen, die in die MCU 22 eintreten, werden sofort puffergespeichert, es sei denn, daß die MCU 22 im Ruhezustand ist (Fig. 2). In diesem Falle wird die Ausführung der Schreibanforderung sofort begonnen. Das Speichern von Schreibanforderungen im Pufferspeicher ermöglicht es, daß Schreibanforderungen in die MCU 22 eingegeben werden, während eine Leseoperation läuft. Lese- und Schreibanforderungen können somit in die MCU 22 eingegeben werden, während andere Operationen in Ausführung sind, solange der RAMTCH-Merker nicht gesetzt ist. Die Arbeitsweise der MCU 22 geht somit weiter, ermöglicht dabei die Ausführung von Leseoperationen und die Pufferspeicherung von Schreiboperationen, während die Leseoperationen ausgeführt werden. Zu dem Zeitpunkt, in dem alle Leseanforderungen ausgeführt worden sind und keine weiteren Leseanforderungen vom Systembus 12 her ankommen, beginnt die Ausführung von eventuell in Warteschlangen eingeschriebenen Schreibanforderungen. Stehen keine Lese- oder Schreibanforderungen in den Warteschlangen, und kommen vom SB 12 keine Operationen, wird die MCU 22 als im Ruhezustand befindlich betrachtet.
  • Wenn während Leseoperationen eine vorbestimmte Anzahl Schreibanforderungen in Warteschlangen geschrieben werden, wird von der MCU 22 die Eigentümerschaft des SB 12 gefordert. Alle Leseanforderungen im Pufferspeicher werden dann ausgeführt, und es wird zumindest eine Schreibanforderung ausgeführt, bevor die MCU 22 den SB 12 wieder freigibt. Dieselbe Ablauffolge gilt, wenn eine vorbestimmte Anzahl Leseanforderungen zusammenkommt. Dies verhindert den Verlust von Speicheroperationen infolge Überlaufs des Pufferspeichers. Weil auf dem Systembus 12 bei normaler Arbeitsweise die MCU 22 das Gerät mit der höchsten Priorität ist (sie ist die erste in der XRQ0/XRQ1-Kaskadenschaltung), kann sie effektiv zu jedem Zeitpunkt die Hauptsteuerung des SB 12 werden. Weil der SB 12 im wesentlichen nach dem Pipelinesystem arbeitet, kann jedoch eine weitere Speicheroperation in den Systembus-Zwischenspeicher der MCU 22 eingegeben werden, bevor die MCU 22 die Bussteuerung erlangt. Wie weiter oben angegeben, ist diese weitere Speicheroperation bis zu dem Zeitpunkt markiert, in dem die MCU 22 erneut einen normalen Anforderungsfluß zulassen kann.
  • Die vorbestimmte Anzahl anstehender Schreibanforderungen ist wegen der Arbeitsweise des CPU0 18 und CPU1 20 zugeordneten Rückschreib-Cachespeichers vorzugsweise auf vier Doppelwörter eingestellt. Das heißt, die MCU 22 muß bereit sein, zu jedem Zeitpunkt eine Cachespeicher-Rückschreibung von vier Doppelwörtern zu akzeptieren. Durch Beibehalten anstehender, maximal vier Schreibanforderungen kann somit eine Cachespeicher- Rückübertragung jederzeit untergebracht werden.
  • Beim Speicherauffrischen werden alle Speicherarray-Karten gleichzeitig aufgefrischt. Außerdem werden zu diesem Zeitpunkt Daten"schnüffel"- und Daten"schrubb"zyklen durchgeführt, wobei ein Doppelwort von einer Bank des dynamischen RAM-Speichers ausgelesen wird. Somit ist der Auffrischzyklus einer erweiterten Doppelwort-Leseoperation ähnlich. Bei Feststellung eines Fehlers wird der Fehler korrigiert, und die korrigierten Daten werden an die Speicherarrays zurückgeschrieben. Bei einer normalen Doppelwort-Leseoperation erhält nur ein (oberer oder unterer) Teil eines Speicherarrays die Strobe-Impulse RAS und CAS, während der andere Teil im Bereitschaftszustand bleibt (kein RAS, kein CAS). Beim Auffrischen empfangen beide Teile zur gleichen Zeit einen RAS-Impuls. Während des weiter oben beschriebenen speicherns eines korrigierten Doppelwortes bekommt der Speicherarray-Teil, der die korrigierten Daten empfängt, weiterhin einen ihm zugeordneten aktivierten CAS-Impuls.
  • Ein Auffrischzyklus erfordert normalerweise bis zu seiner Beendigung sechs Speichertaktzyklen, unter der Annahme, daß kein Fehler festgestellt wird. Wird ein Fehler festgestellt und ist er korrigierbar, erfordert der Auffrischzyklus eine zusätzliche Zeit von fünf Zyklen für den Schreibe-Doppelwort- Zugriff.
  • Die Schnüffel-Logik korrigiert jeden Einzelbitfehler und Schreibt ihn zurück. Dies bewirkt, daß der Speicher periodisch von Einzelbitfehlern freigeräumt wird. Bei jeder Ausführung einer Auffrischoperation wird ein Datendoppelwort gelesen, falls nötig korrigiert und an den ursprünglichen Speicherplatz zurückgeschrieben. Eine Auffrisch-Adressierlogik enthält bis zu 10 Bit für den RAS-Teil der Adresse und 15 Adressenbit, die aufgeteilt werden zwischen dem CAS-Teil der Adresse, einer Decodierlogik zum Bestimmen einer für eine Leseoperation zu wählenden speicherkarte, und einer Bankdecodierlogik zum Wählen der Bank und des (oberen/unteren) Teils, die gelesen werden sollen.
  • Die MCU 22 weist eine Vielzahl Wege auf, auf denen Adreßinformationen strömen können. Der normale Weg für die Adresse ist der Eintritt über den Eingangsadressen-Zwischenspeicher 80 in die Schreib/Lese-Warteschlangen 92 und 94. Sobald die Adresse in die Schreib/Lese-Warteschlangen 92 und 94 gebracht ist, bleibt sie darin, bis die spezielle Schreiboperation zur Ausführung aufgerufen wird. Im Ruhezustand der MCU umgeht die Adresse sicher die Warteschlangen und wird unmittelbar dem Speicher zugeleitet, wodurch Lese- und Schreiboperationen beschleunigt werden.
  • In den Hauptspeicher einzuschreibende Daten werden durch den 4:1-Multiplexer 120 geleitet. Der Ausgang des Multiplexers 120 wird mehreren Empfängern zugeleitet. Ein direkter Empfänger sind die Speicherarrays. Ein anderer Empfänger ist die ECC-Codier/Decodier-Logik, wo die Prüfbit generiert und bei einer Speicherschreiboperation mit den Daten direkt zum Speicher gesandt werden. Die Signalleitungen für Daten und Prüfbit sind bidirektional. Dies ermöglicht die Ausgabe von Daten und Prüfbit während einer Schreiboperation. Während einer Speicherleseoperation wird die Richtung umgekehrt.
  • Ein komplexerer Datenweg besteht für Lese-Modifizier-Schreib- Operationen. Solche Operationen erfordern es, daß ein Datendoppelwort aus einer Speichereinheit gelesen und die Daten auf Fehler überprüft werden. Tritt ein Fehler auf, wird der Fehler korrigiert und die korrigierten Daten werden mit einem Datenbyte kombiniert, das im Schreib-Pufferspeicher 110 gespeichert war. Dies geschieht durch die Benutzung des Multiplexers 120 und durch Wählen, auf Byte-Basis, als Quelle für den Multiplexer, entweder die zwischengespeicherten und korrigierten Lesedaten oder den Ausgang des Schreib-Pufferspeichers. Die kombinierten Daten werden danach erneut codiert und auf demselben Weg wie eine normale Schreiboperation zum Speicher gesandt.
  • Der Identifizierer ID eines Busanschlusses, an den Daten zurückzuübertragen sind, ist in Lese-ID-Zwischenspeichern 152 gepuffert und während des Datenrückgabezyklus der MCU 22 multiplex auf den Datenweg des SB 12 gegeben. Während einer Leseoperation, wenn die MCU 22 die Rückübertragung von Daten von einem Speicherarray erwartet, erstellt die MCU 22 ID und Adresse der Rückübertragung für den Datenrückgabezyklus des SB 12. Einen Zyklus vor dem Absenden der Daten über den SB 12 werden der ID des Anforderers, ein Datenrückgabe-Befehl und die anfänglich vom Anforderer gelieferte Adresse an den Anforderer zurückgeschrieben. Verzögert sich die Übernahme der Eigentümerschaft am Systembus, wird der Datenrückgabezyklus verzögert. Ressource-Konflikte werden durch die Benutzung der Zwischenspeicher 82 und 84 vermieden, in denen der Rückgabebefehl, der ID und die Adresse bis zur ihrer Aufgabe auf den Bus gespeichert sind.
  • Tritt ein korrigierbarer Fehler auf, wird der Zustand des Datenweg-Multiplexers 122 (ein 2:1-Multiplexer) geändert. Auf einer Seite empfängt dieser Multiplexer 122 Eingänge direkt vom Speicher. Die andere Seite empfängt zwischengespeicherte, korrigierte Daten vom Ausgang der ECC-Schaltung. Wenn somit ein Fehler festgestellt wird, können die korrigierten Daten durch Zustandsänderung des Datenausgangs-Multiplexers 122 rasch gesendet werden. Zur gleichen Zeit werden die korrigierten Daten zum Anforderer zurückgeschrieben, und das nächste Datendoppelwort (falls eine Mehrfach-Doppelwort-Transaktion) wird bis zur Übertragung während des nächsten Zyklus zwischengespeichert. Wenn auch es fehlerhaft ist, wird es gesendet und dann während des folgenden Zyklus korrigiert und, wie das erste Doppelwort, erneut übertragen.
  • Die erfindungsgemäße MCU 22 liefert auch korrekte Daten, wenn bei einer Mehrfachdoppelwort-Leseanforderung mehr als ein Doppelwort mit einem Fehler behaftet ist. In diesem Falle können Zwischenspeicher hinter denen am Ausgang der Speicherarrays benutzt werden, um die Daten zu halten, bis sie die MCU 22 verarbeiten kann. Zur Anpassung an alle möglichen Fälle eines Auftretens von fehlerhaften Daten in Doppelwörtern ist eine vierstufige Pipeline vorgesehen. Die vier Stufen umfassen Zwischenspeicher 26a am Ausgang der Speicherarrays (Fig. 5b), Zwischenspeicher 82 und 84 am Eingang der MCU, und Zwischenspeicher 104a und 104b (Fig. 5a) am Eingang bzw. Ausgang der ECC-Logik 104.
  • Die MCU 22 weist sowohl einen schnellen als auch einen internen Adressenweg auf. Immer dann, wenn die MCU 22 im Ruhezustand ist (keine Verarbeitung irgendwelcher Anforderungen, keine gespeicherte Anforderung in den Lese- oder Schreib-Pufferspeichern), wird eine ankommende Operation (ob Lesen oder Schreiben) unmittelbar begonnen. Der Adressenweg wird auf den schnellen Pfad geschaltet. Dies ermöglicht einen direkten Weg von den Eingangs-Zwischenspeichern des Systembusses zu den Treibern am Rand der MCU 22. Wenn die Operation eine MCU-interne Funktion ist (MCU Lesen oder Schreiben) wird die MCU 22 die Operation unmittelbar beginnen und (wenn Daten an den Anforderer zu senden sind) innerhalb zwei Zyklen nach Eingang der Anforderung in der MCU ansprechen. Die Adresse wird zu den Speicherarrays gesendet, aber der Zeilenadressen-Strobeimpuls (RAS), der alle Speicheroperationen auslöst, wird nicht generiert.
  • Der interne Weg wird benutzt, wenn eine ankommende Anforderung die Beendigung einer zuvor gepufferten Operation abwarten muß. Auf diesem Weg wird die Adresse vom Systembus-Haltespeicher direkt in die Lese-Pufferadressen-Zwischenspeicher 94 bzw. in die Schreib-Pufferadressen-Zwischenspeicher 130 gebracht.
  • Eine Adressenparitätsprüfung wird durchgeführt, wenn Adressen in die MCU 22 eingehen, ebenso wie eine Außer-Grenze-Prüfung. Wird ein Fehler festgestellt, wird zu dessen Anzeige die BUSERR-Leitung aktiviert. Wird ein Adressenfehler beim Eingang einer Anforderung in die MCU 22 festgestellt, bringt die MCU die Operation nicht in den Pufferspeicher und wird sie nicht ausführen. Es ist so, als wäre die Operation nie gesendet worden, mit der Ausnahme, daß die MCU die SCU 60 vom Paritätsfehler in der Adresse benachrichtigen muß. Falls die Außer-Grenze-Prüfung wahr ist, hat die angeforderte Operation einen Zielspeicherplatz außerhalb des Bereiches des verfügbaren Speichers, und die MCU 22 wird die MEMX-Signalleitung zwei Zyklen nach dem Adressenzyklus ansteuern und die Operation übergehen. Diese Bedingung wird der SCU 60 gemeldet.
  • Wird eine Leseoperation ausgeführt, wird die Rückgabeadresse in den Zwischenspeicher 84 zur Rückübertragung an den Anforderer eingegeben. Die dem physikalischen Rahmen entsprechenden Bit (Adressenbit 04:20) werden in einem zweiten Zwischenspeicher gehalten. Die Seitenverschiebe-Bit bis zum Bit 28 (Adressenbit 21:28) werden durch einen Vorwärts-Rückwärts- Zähler 156 geleitet, so daß die Grundadresse durch die MCU 22 bei Mehrfach-Doppelwort-Rückgaben inkrementiert werden kann. Der Zähler muß vorwärts-und rückwärtszählen können wegen der Notwendigkeit, korrigierte Daten nach dem anfänglichen Senden der falschen Daten zu senden (geschieht während einer Ablauffolge für einen korrigierbaren Fehler). LSB-Adressensignale 29:31 werden auf Null gesetzt, bevor sie von der MCU 22 zurückgesandt werden. Die Parität wird einmal an den Adressenbit 04:20 generiert und an den Bit 21:28 erneut generiert und dann bei jedem Zyklus einer Mehrfachdoppelwort-Datenrückübertragung mit der oberen Bitadressenparität kombiniert.
  • Wegen der großen Geschwindigkeit des SB 12 decodiert die MCU 22 die EEC-Fehlerbit sofort, wenn sie die Daten an den Anforderer zurücksendet. Der schnelle Datenweg umgeht die Fehlerkorrekturlogik, und Daten werden an den Anforderer zurückgegeben, auch wenn sie einen Fehler enthalten können. Wenn sie einen Fehler enthalten, müssen die Daten korrigiert und während des folgenden Zyklus an den Anforderer zurückübertragen werden. Um diese Funktion ausführen zu können, ist die Signalleitung MCUHOLD (MCU Halten) des SB 12 vorgesehen. Die MCUHOLD wird von der MCU an alle anderen Busanschlüsse angelegt, um diese von der Absicht der MCU zu benachrichtigen, die Eigentümerschaft des SB 12 zu behalten, obwohl sie BUSY freigegeben hat. MCUHOLD wird ihrerseits wenigstens zum Teil von der Einzelbitfehler-Feststell-Logik angesteuert.
  • Sobald die Prüfbit codiert und an den Speicher gesendet worden sind, bestehen die Eigenschaften des sie produzierenden Codes darin, daß exakt drei Kopien jedes der 32 Datenbit in die Bildung von sieben Prüfbit je Wort in einem Doppelwort eingehen. Bei der Rückgabe der Prüfbit vom Speicher ist jedes gemäß der Exklusives-ODER-Funktion mit den speziellen Datenbit verknüpft, die jedem Prüfbit beim Generieren entsprochen haben. Somit bestimmt die in diesen sieben Bit enthaltene Information, ob keine fehlerhaften Bit vorhanden sind, ob ein fehlerhaftes Einzelbit oder mehrere fehlerhafte Bit vorhanden sind. Ein Einzelbitfehler ist korrigierbar, Mehrfachfehlerbit dagegen nicht. Sind die sieben Prüfbit alle logische Nullen, dann liegen keine Fehlerbit vor. Ist ein einzelnes Bit fehlerhaft, dann sind drei der sieben Prüfbit eine logische Eins. Eine gerade Anzahl Einsen, die innerhalb der sieben Prüfbit gesetzt sind, zeigt an, daß wenigstens zwei Bit fehlerhaft sind. Bei einem Einzelbitfehler wird die Parität der Prüfbit allein ungerade sein. Es gibt somit einen einfachen Weg, um rasch festzustellen, ob ein Einzelbitfehler existiert, indem die parität der sieben Prüfbit ermittelt wird.
  • Das Auftreten eines Doppelbitfehlers braucht erst einen Zyklus nach der Rückgabe der Daten angezeigt werden. Um das Auftreten eines Doppelbitfehlers anzuzeigen, wird die Signalleitung MEMX durch Impulsansteuerung auf hohen Pegel gesetzt. Die Adresse mit einem unkorrigierbaren Fehler und das zugehörige Syndrommuster werden der SCU 60 über den SCB 64 mitgeteilt.

Claims (10)

1. Speichersteuereinheit (22), die zwischen einem Systembus (12) und einem Systemspeicher mit wenigstens einer Speichereinheit (26, 28, 30, 32) angeschlossen ist,
- wobei der Systembus (12) gebildet ist von Adressensignalleitungen (14) zum Spezifizieren von Adressen im Systemspeicher, Datensignalleitungen (16) zum Weiterleiten von Dateneinheiten zwischen mit dem Systembus (12) und dem Systemspeicher (26, 28, 30, 32) verbundenen Busanschlüssen (18, 20, 34, 36, 38, 40, 60) und wenigstens einer Signalleitung (5) zum Spezifizieren, ob eine bestimmte, von einem der Busanschlüsse ausgelöste Systembustransaktion eine Systemspeicher- Lese- oder eine Systemspeicher-Schreibanforderung ist,
- die Speichersteuereinheit (22) ferner an den Systembus (12) angeschlossene Schnittstelleneinrichtungen (76, 78, 80) zum Empfangen von Systemspeicher-Lese- und Systemspeicher- Schreibanforderungen vom Systembus (12) aufweist,
- mit dem Systemspeicher (26, 28, 30, 32) eine Ausführungseinrichtung (72) gekoppelt ist zum Ausführen von Systemspeicher-Lese- und Systemspeicher-Schreibanforderungen,
- mit den Schnittstelleneinrichtungen (76, 78, 80) Schreibpuffereinrichtungen (90, 130, 142) gekoppelt sind zum Zwischenspeichern von Systemspeicher-Schreibanforderungen, einschließlich einer jeder Systemspeicher-Schreibanforderung zugeordneten Systemspeicheradresse, vor der Ausführung von Systemspeicher-Schreibanforderungen, und
- mit den Schnittstelleneinrichtungen (76, 78, 80) Lesepuffereinrichtungen (94, 140, 152) gekoppelt sind zum Zwischenspeichern von Systemspeicher-Leseanforderungen, einschließlich einer jeder Systemspeicher-Leseanforderung zugeordneten Systemspeicheradresse, vor dem Ausführen von Systemspeicher-Leseanforderungen,
dadurch gekennzeichnet, daß
die Speichersteuereinheit (22) ferner umfaßt:
- eine Vergleichseinrichtung (102), mit einem mit den Schnittstelleneinrichtungen gekoppelten ersten Eingang und einem mit der Schreibpuffereinrichtung (13) gekoppelten zweiten Eingang, zum Vergleichen einer empfangenen Systemspeicher-Leseadresse mit, soweit vorhanden, allen gespeicherten Systemspeicher-Schreibadressen, derart, daß festgestellt wird, ob eine empfangene Systemspeicher-Leseadresse einen Adressenwert innerhalb eines vorbestimmten Adressenwert-Bereiches von einem der zwischengespeicherten Systemspeicher- Schreibadressen hat,
- die Vergleichseinrichtung (102) ein Ausgangssignal (RAMTCH) anlegt zur Angabe, daß eine empfangene Systemspeicher-Leseadresse einen Adressenwert innerhalb eines vorbestimmten Adressenwert-Bereiches von einem der zwischengespeicherten Systemspeicher-Schreibadressen hat, und
- das genannte Ausgangssignal (RAMTCH) von der Vergleichseinrichtung (102) an die Ausführungseinrichtung (72) geleitet wird zu Steuerung des Befehls der Ausführung von zwischengespeicherten Lese- und zwischengespeicherten Schreibanforderungen in Abhängigkeit davon, ob das genannte Ausgangssignal angibt, daß die genannte empfangene Systemspeicher-Leseadresse einen Adressenwert innerhalb eines vorbestimmten Adressenwert-Bereiches von einem der zwischengespeicherten Systemspeicher-Schreibadressen hat.
2. Speichersteuereinheit (22) nach Anspruch 1, ferner dadurch gekennzeichnet, daß sie eine Decodiereinrichtung (150) aufweist zum Decodieren der genannten Leseanforderungen für die Bestimmung eines Leseanforderungs-Typs, wobei die Decodiereinrichtung (150) einen mit der Vergleichseinrichtung (102) gekoppelten Ausgang aufweist zum Bestimmen einer Anzahl Bit der genannten empfangenen Leseadresse, die mit den zwischengespeicherten Schreibadressen verglichen werden.
3. Speichersteuereinheit (22) nach Anspruch 2, ferner dadurch gekennzeichnet, daß die Decodiereinrichtung (150) auf Leseanforderungen anspricht, um festzustellen, ob eine der genannen Leseanforderungen zugeordnet ist
einem ersten Anforderungs-Typ, der Daten aus einer Adresse in der Speichersteuereinheit (22) liest,
einem zweiten Leseanforderungs-Typ, der ein Oktaldatenwort aus einer der Speichereinheiten (26, 28, 30, 32) liest,
einem dritten Leseanforderungs-Typ, der ein Vierfach- Wort aus einer der Speichereinheiten (26, 28, 30, 32) liest, oder
einem vierten Leseanforderungs-Typ, der wenigstens ein Doppelwort aus einer der Speichereinheiten (26, 28, 30, 32) liest.
4. Speichersteuereinheit (22) nach Anspruch 3, ferner dadurch gekennzeichnet, daß
- die Vergleichseinrichtung (102) vier Bit vergleicht, wenn die Decodiereinrichtung (150) feststellt, daß eine Leseanforderung dem genannten ersten Leseanforderungs-Typ zugeordnet ist,
- die Vergleichseinrichtung (102) zehn Bit vergleicht, wenn die Decodiereinrichtung (150) feststellt, daß eine Leseanforderung dem genannten zweiten Leseanforderungs-Typ zugeordnet ist,
- die Vergleichseinrichtung (102) elf Bit vergleicht, wenn die Decodiereinrichtung (150) feststellt, daß eine Leseanforderung dem genannten dritten Leseanfordernungs-Typ zugeordnet ist, und
- die Vergleichseinrichtung (102) zwölf Bit vergleicht, wenn die Decodiereinrichtung (150) feststellt, daß eine Leseanforderung dem genannten vierten Leseanforderungs-Typ zugeordnet ist.
5. Speichersteuereinheit (22) nach Anspruch 1, ferner dadurch gekennzeichnet, daß die Ausführungseinrichtung (72) auf ein Anlegen des Ausgangssignals (RAMTCH) der Vergleichseinrichtung (102) anspricht, um
- zuerst alle zwischengespeicherten Systemspeicher-Leseanforderungen in der zeitlichen Reihenfolge des Empfangs der zwischengespeicherten Leseanforderungen vom Systembus (12) bis zu der Systemspeicher-Leseanforderung, diese aber nicht einschließend, auszuführen, die als innerhalb des vorbestimmten Adressenwert-Bereiches liegend festgestellt wurde,
- dann die zwischengespeicherten Systemspeicher-Schreibanforderungen in der zeitlichen Reihenfolge auszuführen, in der die zwischengespeicherten Schreib-Anforderungen vom Systembus (12) empfangen wurden, und
- dann die zwischengespeicherte Systemspeicher-Leseanfordenrung auszuführen, die als innerhalb des vorbestimmten Adressenwert-Bereiches liegend festgestellt wurde.
6. Speichersteuereinheit (22) nach Anspruch 1, ferner dadurch gekennzeichnet, daß
- die Vergleichseinrichtung (102) eine Einrichtung zum Durchführen eines assoziativen Vergleichs zwischen jeder empfangenen Systemspeicher-Leseadresse und, soweit vorhanden, allen zwischengespeicherten Systemspeicher-Schreibadressen, derart, daß festgestellt wird, wenn die empfangene Systemspeicher-Leseadresse einen Adressenwert innerhalb des vorbestimmten Adressenwert-Bereiches von einem der zwischengespeicherten Systemspeicher-Schreibadressen hat, und
- wobei der logische Zustand des genannten Ausgangssignals (RAMTCH) durch die Assoziativvergleichseinrichtung gesteuert wird.
7 Speichersteuereinheit (22) nach Anspruch 1, ferner dadurch gekennzeichnet, daß die Ausführungseinrichtung (72) auf eine Bedingung anspricht, unter der
- eine vorbestimmte Anzahl Systemspeicher-Schreibanforderungen in der Puffereinrichtung für Systemspeicher-Schreibanforderungen zwischengespeichert wird, wobei die vorbestimmte Anzahl kleiner als die maximale Kapazität der Puffereinrichtung für Systemspeicher-Schreibanforderungen ist, um zu bewirken, daß eine Systembus-Ausgangsschnittstelle (74) ein Signal (XRQ0) auf dem systembus (12) aktiviert, um zu verhindern, daß Busanschlüsse weitere Systemspeicher-Lese- oder Systemspeicher-Schreibanforderungen auf den Systembus geben, und
- die Ausführungseinrichtung (72) während der Dauer der Aktivierung des genannten Systembussignals (XRQ0) wenigstens eine zwischengespeicherte Systemspeicher-Schreibanforderung ausführt, derart, daß die verbleibende Anzahl zwischengespeicherter Systemspeicher-Schreibanforderungen kleiner als die vorbestimmte Anzahl ist.
8. Speichersteuereinheit (22) nach Anspruch 1, ferner dadurch gekennzeichnet, daß die Speichersteuereinheit (22) ferner umfaßt:
- eine mit dem Systembus (12) verbundene Datenrückschreibeinrichtung (82, 122), die auf eine Ausführung einer Systemspeicher-Leseanforderung anspricht, um eine oder mehrere Informationseinheiten auf den Systembus (12) zurückzuschreiben, und
- eine Fehlererkennungs- und -korrektureinrichtung (104) zum Erkennen eines oder mehrerer fehlerhafter Bit in einer zum Systembus (12) zurückgeschriebenen Informationseinheit und zur Bereitstellung einer korrigierten Informationseinheit an die Datenrückschreibeinrichtung (82, 122) je Informationseinheit mit einem einzigen fehlerhaften Bit,
- wobei die Datenrückschreibeinrichtung (82, 122) mit der Fehlererkennungs- und -korrektureinrichtung (104) verbunden ist, um von ihr die korrigierte Informationseinheit zu empfangen für die Rückgabe der korrigierten Informationseinheit an den Systembus (12) zu einem Zeitpunkt, der nach einem Zeitpunkt liegt, an dem eine Informationseinheit mit einem einzigen Bitfehler zum Systembus (12) zurückgeschrieben wird.
9. Speichersteuereinheit (22) nach Anspruch 8, ferner dadurch gekennzeichnet, daß sie eine Ansteuereinrichtung (74) aufweist mit einem mit der Fehlererkennungs- und -korrektureinrichtung (104) verbundenen Eingang
- zum Ansteuern einer ersten Signalleitung (MCUHLD) auf dem Systembus (12) zur Angabe, daß eine auf den Systembus (12) zurückgeschriebene Informationseinheit ein einziges fehlerhaftes Bit enthält, und
- zum Ansteuern einer zweiten Signalleitung (MEMX) auf dem Systembus (12) zur Angabe, das eine aus dem Systemspeicher ausgelesene Informationseinheit mehr als ein fehlerhaftes Bit enthält.
10. Speichersteuereinheit (22) nach Anspruch 1, ferner dadurch gekennzeichnet, daß sie eine Systembus-Ausgangsschnittstelle (74) aufweist zum Anlegen eines Signals (XRQ0) an den Systembus (12), um zu verhindern, daß Busanschlüsse weitere Systemspeicher-Lese - oder Systemspeicher-Schreibanforderungen auf den Systembus (12) während einer Zeitspanne geben, in der die Ausführungseinrichtung (72) die Reihenfolge der Ausführung zwischengespeicherter Lese- und zwischengespeicherter Schreibanforderungen abhängig vom genannten angelegten Ausgangssignal (RAMTCH) steuert.
DE68920435T 1988-06-30 1989-06-22 Steuereinheit für den speicher. Expired - Lifetime DE68920435T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US21339588A 1988-06-30 1988-06-30
PCT/US1989/002721 WO1990000284A1 (en) 1988-06-30 1989-06-22 Memory control unit

Publications (2)

Publication Number Publication Date
DE68920435D1 DE68920435D1 (de) 1995-02-16
DE68920435T2 true DE68920435T2 (de) 1995-08-10

Family

ID=22794950

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68920435T Expired - Lifetime DE68920435T2 (de) 1988-06-30 1989-06-22 Steuereinheit für den speicher.

Country Status (6)

Country Link
US (1) US5379379A (de)
EP (1) EP0425550B1 (de)
JP (1) JP3255908B2 (de)
CA (1) CA1322611C (de)
DE (1) DE68920435T2 (de)
WO (1) WO1990000284A1 (de)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450564A (en) * 1990-05-04 1995-09-12 Unisys Corporation Method and apparatus for cache memory access with separate fetch and store queues
GB9019023D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station having multiplexing and burst mode capabilities
JP3191302B2 (ja) * 1990-12-28 2001-07-23 日本電気株式会社 メモリ回路
JP2925818B2 (ja) * 1991-04-05 1999-07-28 株式会社東芝 並列処理制御装置
US6678864B1 (en) * 1992-02-25 2004-01-13 Irving Tsai Method and apparatus for linking designated portions of a received document image with an electronic address
EP0575651A1 (de) * 1992-06-24 1993-12-29 International Business Machines Corporation Mehrprozessorsystem
US5651126A (en) * 1992-06-26 1997-07-22 Apple Computer, Inc. Method and apparatus for reducing transitions on computer signal lines
US5615355A (en) * 1992-10-22 1997-03-25 Ampex Corporation Method and apparatus for buffering a user application from the timing requirements of a DRAM
KR940015838A (ko) * 1992-12-31 1994-07-21 윤종용 메모리 맵 방식의 인터페이스 장치
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
US5813028A (en) * 1993-10-12 1998-09-22 Texas Instruments Incorporated Cache read miss request invalidation prevention method
US5377338A (en) * 1993-10-12 1994-12-27 Wang Laboratories, Inc. Apparatus and methods for reducing numbers of read-modify-write cycles to a memory, and for improving DMA efficiency
US5673415A (en) * 1993-12-03 1997-09-30 Unisys Corporation High speed two-port interface unit where read commands suspend partially executed write commands
JPH07182170A (ja) * 1993-12-24 1995-07-21 Ricoh Co Ltd マイクロプロセッサ
US5826109A (en) * 1994-01-04 1998-10-20 Intel Corporation Method and apparatus for performing multiple load operations to the same memory location in a computer system
TW357295B (en) * 1994-02-08 1999-05-01 United Microelectronics Corp Microprocessor's data writing, reading operations
US5634081A (en) * 1994-03-01 1997-05-27 Adaptec, Inc. System for starting and completing a data transfer for a subsequently received autotransfer command after receiving a first SCSI data transfer command that is not autotransfer
US6021471A (en) * 1994-11-15 2000-02-01 Advanced Micro Devices, Inc. Multiple level cache control system with address and data pipelines
US5566317A (en) * 1994-06-14 1996-10-15 International Business Machines Corporation Method and apparatus for computer disk drive management
US5742831A (en) * 1994-06-30 1998-04-21 Intel Corporation Methods and apparatus for maintaining cache coherency during copendency of load and store operations
JP3164732B2 (ja) 1994-07-04 2001-05-08 富士通株式会社 データ処理装置
US5809550A (en) * 1994-09-30 1998-09-15 Intel Corporation Method and apparatus for pushing a cacheable memory access operation onto a bus controller queue while determining if the cacheable memory access operation hits a cache
US5701433A (en) * 1994-10-14 1997-12-23 Compaq Computer Corporation Computer system having a memory controller which performs readahead operations which can be aborted prior to completion
US5634073A (en) * 1994-10-14 1997-05-27 Compaq Computer Corporation System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation
US5701434A (en) * 1995-03-16 1997-12-23 Hitachi, Ltd. Interleave memory controller with a common access queue
TW388982B (en) * 1995-03-31 2000-05-01 Samsung Electronics Co Ltd Memory controller which executes read and write commands out of order
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US5666494A (en) * 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order
US5625778A (en) * 1995-05-03 1997-04-29 Apple Computer, Inc. Method and apparatus for presenting an access request from a computer system bus to a system resource with reduced latency
US5870625A (en) * 1995-12-11 1999-02-09 Industrial Technology Research Institute Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command
GB2308903B (en) * 1996-01-05 2000-01-26 Advanced Risc Mach Ltd Cache memory circuit
US5790813A (en) * 1996-01-05 1998-08-04 Unisys Corporation Pre-arbitration system allowing look-around and bypass for significant operations
US5737636A (en) * 1996-01-18 1998-04-07 International Business Machines Corporation Method and system for detecting bypass errors in a load/store unit of a superscalar processor
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
US6263411B1 (en) * 1996-09-20 2001-07-17 Matsushita Electric Industrial Co., Ltd. Video server scheduling for simultaneous read-write requests
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
JP3816110B2 (ja) * 1997-02-17 2006-08-30 株式会社ルネサステクノロジ 半導体集積回路装置
DE19712799A1 (de) * 1997-03-26 1998-10-01 Siemens Nixdorf Inf Syst Abhängigkeitssteuerung für überlappende Speicherzugriffe
US6092158A (en) * 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6182181B1 (en) 1997-12-29 2001-01-30 Motorola, Inc. Computer system with interface and method
US6125413A (en) * 1997-12-29 2000-09-26 Motorola, Inc. Computer system with trigger controlled interface and method
US6446149B1 (en) * 1998-03-03 2002-09-03 Compaq Information Technologies Group, L.P. Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system
WO1999059069A1 (de) * 1998-05-07 1999-11-18 Infineon Technologies Ag Cache-speicher für zweidimensionale datenfelder
US6223259B1 (en) * 1998-10-30 2001-04-24 Telefonaktiebolaget Lm Ericsson (Publ) Reducing read cycle of memory read request for data to be partially modified by a pending write request
US6212611B1 (en) * 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller
US6256713B1 (en) * 1999-04-29 2001-07-03 International Business Machines Corporation Bus optimization with read/write coherence including ordering responsive to collisions
US6684270B1 (en) * 2000-06-02 2004-01-27 Nortel Networks Limited Accelerated file system that recognizes and reroutes uncontested read operations to a second faster path for use in high-capacity data transfer systems
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US7194561B2 (en) * 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
JP3823040B2 (ja) * 2001-10-12 2006-09-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、データ処理装置、書き込み要求の実行順序を最適化する方法、データ処理方法およびハード・ディスク・ドライブ
TW564350B (en) * 2002-03-01 2003-12-01 Via Tech Inc Control chip for speeding up memory access and the operation method
US6895493B2 (en) * 2002-07-25 2005-05-17 Texas Instruments Incorporated System and method for processing data in an integrated circuit environment
DE10234933A1 (de) * 2002-07-31 2004-03-18 Advanced Micro Devices, Inc., Sunnyvale Pufferung von Non-Posted-Lesebefehlen und Antworten
US6577548B1 (en) 2002-09-26 2003-06-10 International Business Machines Corporation Self timing interlock circuit for embedded DRAM
US6973550B2 (en) * 2002-10-02 2005-12-06 Intel Corporation Memory access control
US6943804B2 (en) * 2002-10-30 2005-09-13 Hewlett-Packard Development Company, L.P. System and method for performing BLTs
US20040103249A1 (en) * 2002-11-25 2004-05-27 Chang-Ming Lin Memory access over a shared bus
US7062577B2 (en) * 2002-12-18 2006-06-13 Lsi Logic Corporation AMBA slave modular bus interfaces
US7093059B2 (en) * 2002-12-31 2006-08-15 Intel Corporation Read-write switching method for a memory controller
US7047322B1 (en) * 2003-09-30 2006-05-16 Unisys Corporation System and method for performing conflict resolution and flow control in a multiprocessor system
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
JP4887824B2 (ja) * 2006-02-16 2012-02-29 富士通セミコンダクター株式会社 メモリシステム
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US7702841B2 (en) * 2007-03-08 2010-04-20 Ricoh Company, Limited Semiconductor integrated circuit and image processing apparatus having the same
DE102008046681B4 (de) * 2008-09-10 2011-04-14 Atmel Automotive Gmbh Schaltung, Verfahren und Verwendung eines Speichers zum Senden und/oder Empfangen in einem Funknetz
US8108584B2 (en) 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
JP2013178696A (ja) * 2012-02-29 2013-09-09 Hitachi-Lg Data Storage Inc アーカイブシステムおよび処理方法
US9367491B2 (en) * 2013-12-31 2016-06-14 Global Unichip, Corp. Method and apparatus for on-the-fly learning traffic control scheme
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
TWI668704B (zh) * 2018-10-01 2019-08-11 大陸商深圳大心電子科技有限公司 資料處理方法及使用所述方法的儲存控制器
CN114036096B (zh) * 2021-11-04 2024-05-03 珠海一微半导体股份有限公司 一种基于总线接口的读控制器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4354232A (en) * 1977-12-16 1982-10-12 Honeywell Information Systems Inc. Cache memory command buffer circuit
US4225922A (en) * 1978-12-11 1980-09-30 Honeywell Information Systems Inc. Command queue apparatus included within a cache unit for facilitating command sequencing
US4516199A (en) * 1979-10-11 1985-05-07 Nanodata Computer Corporation Data processing system
GB8401804D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Data storage apparatus
US5097442A (en) * 1985-06-20 1992-03-17 Texas Instruments Incorporated Programmable depth first-in, first-out memory
US4864543A (en) * 1987-04-30 1989-09-05 Texas Instruments Incorporated First-in, first-out memory with counter address pointers for generating multiple memory status flags
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4792926A (en) * 1985-12-09 1988-12-20 Kabushiki Kaisha Toshiba High speed memory system for use with a control bus bearing contiguous segmentially intermixed data read and data write request signals
US4833651A (en) * 1986-07-24 1989-05-23 National Semiconductor Corporation High-speed, asynchronous, No-Fall-Through, first-in-first out memory with high data integrity
US5034922A (en) * 1987-12-21 1991-07-23 Motorola, Inc. Intelligent electrically erasable, programmable read-only memory with improved read latency
US4933901A (en) * 1988-01-11 1990-06-12 Texas Instruments Incorporated Method for assigning priority to read and write requests received closely in time

Also Published As

Publication number Publication date
DE68920435D1 (de) 1995-02-16
EP0425550A4 (en) 1992-03-25
EP0425550A1 (de) 1991-05-08
EP0425550B1 (de) 1995-01-04
US5379379A (en) 1995-01-03
JP3255908B2 (ja) 2002-02-12
CA1322611C (en) 1993-09-28
JPH04501326A (ja) 1992-03-05
WO1990000284A1 (en) 1990-01-11

Similar Documents

Publication Publication Date Title
DE68920435T2 (de) Steuereinheit für den speicher.
DE3854368T2 (de) Cachespeicher mit einer Elastizität in der Verarbeitung verschiedener Adressenfehler.
DE3750107T2 (de) Cachespeicherkohärenzsteuerung mit einem Speicher, der ein laufendes Lesen anzeigt.
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE3782335T2 (de) Speichersteuersystem.
DE68924313T2 (de) Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern.
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE68926036T2 (de) Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE69018100T2 (de) Datenübertragung über Busadressleitungen.
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE3689226T2 (de) Multiprozessorsystem mit multihierarchischen Ebenen.
DE3689042T2 (de) Gerät zur Pufferung von Schreibanforderungen.
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
DE68926954T2 (de) Schnittstelle zwischen einer Systemsteuereinheit und einer Dienst-Processoreinheit in einem Digitalrechner
DE102006002526A1 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE3688400T2 (de) Cachespeicherschaltung geeignet zur verarbeitung einer leseanforderung waehrend der uebertragung eines datenblocks.
DE69930307T2 (de) Datenspeichersystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: WANG LABORATORIES, INC., BILLERICA, MASS., US

8327 Change in the person/name/address of the patent owner

Owner name: LG SEMICON CO., LTD., CHEONGJU, KR

8327 Change in the person/name/address of the patent owner

Owner name: LG ELECTRONICS INC., SEOUL/SOUL, KR

8328 Change in the person/name/address of the agent

Representative=s name: COHAUSZ & FLORACK, 40472 DUESSELDORF