Nothing Special   »   [go: up one dir, main page]

DE68926036T2 - Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher - Google Patents

Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher

Info

Publication number
DE68926036T2
DE68926036T2 DE68926036T DE68926036T DE68926036T2 DE 68926036 T2 DE68926036 T2 DE 68926036T2 DE 68926036 T DE68926036 T DE 68926036T DE 68926036 T DE68926036 T DE 68926036T DE 68926036 T2 DE68926036 T2 DE 68926036T2
Authority
DE
Germany
Prior art keywords
memory
data
scu
segments
acu
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
DE68926036T
Other languages
English (en)
Other versions
DE68926036D1 (de
Inventor
Kumar Chinnaswamy
Michael A Gagliardo
John Lynch
James E Tessari
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE68926036D1 publication Critical patent/DE68926036D1/de
Application granted granted Critical
Publication of DE68926036T2 publication Critical patent/DE68926036T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

  • Diese Erfindung bezieht sich allgemein auf Multiprozessor-Computersysteme. Insbesondere bezieht sich diese Erfindung auf eine Speicherkonfiguration, die für die Verwendung mit einer Schnittstelle geeignet ist, die zwischen der Systemsteuereinheit, die zum Betreiben mehrerer Prozessoren in paralleler Weise verwendet wird, und dem Hauptsystemspeicher in einem Multiprozessorsystem vorgesehen ist, um zwischen jedem der mehreren Prozessoren und den verschiedenen im Systemspeicher enthaltenen Modulen eine effiziente Wechselwirkung zu ermöglichen. Die Erfindung bezieht sich außerdem auf eine Systemsteuereinheit (SCU).
  • Es sind heute viele verschiedene Supercomputer verfügbar, die auf die Erfüllung der Bedürfnisse nach Hochleistungsrechnern gerichtet sind; die hohe Leistung, die typischerweise Betriebsgeschwindigkeiten schafft, die 100-125 Millionen Gleitkommaoperationen pro Sekunde (Mega-FLOPS) leicht übersteigen, wird normalerweise mit unerschwinglichen Kosten und zu Lasten der Benutzerfreundlichkeit und der bequemen Wechselwirkungsfähigkeit erreicht. Am unteren Ende des Leistungsspektrums gibt es heute eine große Anzahl von Computersystemen, die weniger komplexe Rechenbedürfnisse erfüllen; diese Systeme sind jedoch sowohl hinsichtlich der Speicherkapazität als auch hinsichtlich der Eingabe/Ausgabe-Kapazität (E/A-Kapazität) ernsthaft eingeschränkt.
  • Die Familie von Computern mit dem "VAX"-Markenzeichen von Digital Equipment Corporation, Maynard, Massachusetts 01754, zielt auf Rechenbedürfnisse, die in den mittleren Bereich des Leistungsspektrums fallen; diese Computerfamilie ist kraft der einfachen Programmierung, der Kompatibilität, des guten Kosten/Leistungs-Verhältnisses und der höheren Zuverlässigkeit äußerst erfolgreich gewesen. Es besteht jedoch eine Forderung nach einer Erweiterung der populären VAX-Charaktistiken auf ein Computersystem, das eine erhöhte Leistung in Kombination mit wesentlich größerer Speicher- und Eingabe/Ausgabe-Kapazität bereitstellt, ohne den traditionellen Nachteilen von Supercomputern, d. h. der Kostenbeschränkung und dem Fehlen der Benutzerfreundlichkeit und der Wechselwirkung, zu unterliegen.
  • Hochleistungscomputer basieren im allgemeinen auf dem Konzept der Mehrfachverarbeitung auf der Systemebene, wo mehrere Prozessoren verwendet werden, um eine definierte Aufgabe durch geeignete Problemzerlegung abzuarbeiten. Eine solche Mehrfachverarbeitung wird durch den Pipeline- Prozeß vervollständigt, in dem eine gegebene Computeranweisung in eine Reihe kleinerer und weniger komplexer Operationen unterteilt wird, die in der Art einer Pipeline von mehreren hierfür vorgesehenen funktionalen Einheiten ausgeführt werden, die für spezifische Zwecke optimiert sind. In solchen Systemen werden Mehrfach-E/A- Busse verwendet, um parallele Pfade zum Massenspeicher und zu anderen Vorrichtungen zu schaffen, um eine hohe Geschwindigkeit und ein umfassende Anschließbarkeit und Redundanz zu erreichen.
  • Bei der Erweiterung der Architektur des VAX-Typs und der zugehörigen Systemcharakteristiken sowie der Anweisungssätze von Hochleistungs-Computersystemen kann eine Systemsteuereinheit (SCU) verwendet werden, um den Parallelbetrieb der mehreren Zentraleinheiten (CPU) zu koordinieren, die das Multiprozessorsystem in Verbindung mit dem Hauptsystemspeicher, den E/A-Vorrichtungen und anderen Komponenten des Computersystems enthält. In einem System dieses Typs muß jede der Systemkomponenten an die SCU angeschlossen sein, die wiederum sämtliche Kanäle in einer Weise miteinander verbinden muß, die analog zu Funktionen ist, die herkömmlicherweise von Systembussen geschaffen werden. Die SCU arbeitet u. a. in der Weise, daß sämtliche Systemkomponenten aktiv gehalten werden, wobei unter Verwendung einer extensiven Kommunikation und einer Validitätsprüfung Konflikte zwischen den Einheiten vermieden werden.
  • Das Vermögen jeder der Systemeinheiten, insbesondere der CPUs, unabhängig auf den Speicher zuzugreifen, stellt bei der Verwirklichung eines effizienten Parallel- und Pipeline-Betriebs einen kritischen Punkt dar, wobei eine der Hauptfunktionen der SCU darin besteht, den Speicherzugriff in einer Weise zu verwalten, die den Systemeinheiten am effizientesten ermöglicht, parallel zu laufen. Ein kritischer Aspekt dieses Betriebs ist die Schaffung einer effizienten SCU-/Hauptspeicher-Schnittstelle, die für jede der System-CPUs parallele Zugriffe auf verschiedene im Hauptspeicher des Systems enthaltene Module steuert. Es ist außerdem wichtig, daß der Systemspeicher in einer Weise konfiguriert ist und gesteuert wird, die mit der Bereitstellung einer solchen effizienten Schnittstelle kompatibel ist und an diese besonders angepaßt ist.
  • Die Veröffentlichung GB-A-2 171 542 des Standes der Technik offenbart ein Multiprozessor-Computersystem mit mehreren Zentraleinheiten, einem Systemspeicher, der Speichersegmente enthält, auf die unabhängig zugegriffen werden kann, sowie eine Einrichtung zum Setzen von Prioritäten für Speicherzugriffe. Die vorliegende Erfindung unterscheidet sich dadurch, daß sie eine effiziente Wechselwirkung zwischen jedem der mehreren Prozessoren und den verschiedenen den Systemspeicher enthaltenden Modulen schafft. Die vorliegende Erfindung liegt in ihrer weiten Form in einem Multiprozessor-Computersystem, wie es im Anspruch 1 angegeben ist.
  • Eine Speicherkonfiguration, die an die Verwendung mit einer Schnittstelleneinrichtung zwischen einer Systemsteuereinheit (SCU) und einem Hauptspeicher in einem Multiprozessorsystem wie hier beschrieben angepaßt ist, enthält wenigstens eine Speichereinheit, die auf Speichersegmenten basierende DRAMs enthält, auf die unabhängig zugegriffen werden kann, wobei jede Speichereinheit versehen ist mit einer Einrichtung zum Erzeugen eines ersten dedizierten Datenpfades für die Übertragung von Lesedaten ("Lesepfad") von adressierten Speichersegmenten zur Schnittstelleneinrichtung für die Übertragung an die SCU, einer Einrichtung zum Erzeugen eines zweiten dedizierten Datenpfades ("Schreibpfad") für die Übertragung von von der SCU empfangenen Schreibdaten durch die Schnittstelleneinrichtung an adressierte Speichersegmente und einer Einrichtung zum Erzeugen eines dritten dedizierten Pfades für die Übertragung von Speicheradressen ("Adressenpfad") von der SCU für die Identifizierung adressierter Speichersegmente.
  • Gemäß einer bevorzugten Ausführungsform dieser Erfindung ist jede MMU des Hauptspeichers auf zwei Speicherkanäle in der SCU aufgeteilt, wobei der Datenspeicherabschnitt jeder MMU ein Paar von Segmenten enthält, wovon jedes ein Paar von auf Speicheranordnungen basierenden DRAMs enthält. Die Speicheradressen für die Speicheranordnungen sind an Grenzen von Blöcken mit vorgegebener Größe, die der Größe der in den System-CPUs verwendeten Cache-Blöcke entspricht, verschachtelt. Jedes Speichersegment wird unabhängig betrieben, während ein gemeinsamer Datenpfad von den Segmenten gemeinsam genutzt wird. Die zwei Anordnungen, die jedes MMU-Segment enthält, werden in der Weise gesteuert, daß nur eine Anordnung für einen gegebenen Speicherbefehl aktiv sein kann, indem verschiedene Adressenleitungen an die Segmente vorgesehen sind, jedoch gemeinsame Datenleitungen beibehalten werden.
  • Gemäß einer bevorzugten logischen Implementierung ist eine einzelne MMU aus mehreren Speichermodulen (MMs) hergestellt, wovon jedes ein Hauptarraykarten-Modul (MAC- Modul) enthält, das die Pufferung von Schreib- und Lesedaten ermöglicht, die Integrität der DRAM-Daten während einer Leistungsunterbrechung aufrechterhält und die Verbindungen und die logische Unterstützung für zusätzliche Speichermodule schafft. In jedem Speichermodul sind DRAM- Datenpfadmodule (DDP-Module) vorgesehen, um eine Pegelübersetzung zwischen Logikpegeln auszuführen, den Lesedatenpfad und die darauf bezogene Pufferung zu schaffen, den Schreibdatenpfad und die darauf bezogene Pufferung zu schaffen und einen DRAM-Umgehungspfad für spezielle Speicheroperationen zu schaffen. Jedes Speichermodul enthält außerdem ein DRAM-Steuerungs- und DRAM-Adressen-Modul (DCA-Modul) für die Pegelübersetzung, die Pufferung der DRAM-bezogenen Steuersignale und die Erzeugung geeigneter Systemsteuerbefehle.
  • Die Speicherkonfiguration gemäß dieser Erfindung ist besonders an die Verwendung mit dedizierten Schnittstelleneinrichtungen angepaßt, die zwischen der SCU und dem Systemhauptspeicher des Typs vorgesehen ist, der in der europäischen Veröffentlichung EP-A-0 380 844 mit dem Titel "Method and Means for Interfacing A System Control Unit for a Multi-Processor System With The System Main Memory" offenbart ist, wobei die Offenbarung hier durch Literaturhinweis eingefügt ist.
  • Weitere Aufgaben und Vorteile der Erfindung werden deutlich beim Lesen der folgenden genauen Beschreibung und bei Bezugnahme auf die Zeichnungen, in denen:
  • Fig. 1 ein vereinfachtes Blockschaltbild ist, das die Verwendung der vorliegenden Erfindung in einem Multiprozessor-Computersystem zeigt, in dem mehrere Prozessoren unter der Steuerung einer Systemsteuereinheit (SCU) betrieben werden;
  • Fig. 2 eine blockartige Darstellung des Speicher- Untersystems ist, das als Kommunikationsglied zwischen der SCU und dem Systemspeicher gemäß dieser Erfindung dient;
  • Fig. 2A ein Blockschaltbild einer bevorzugten Speicherorganisation ist, die die Verschachtelung von Speichersegmenten an Blockgrenzen zeigt;
  • Fig. 3 eine Aufschlüsselung des modularen Aufbaus der Array-Steuereinheit (ACU) ist, die den Schnittstellenbetrieb zwischen der SCU und dem Systemspeicher schafft;
  • Fig. 4A ein Blockschaltbild ist, das ein Hauptspeichersteuermodul (MMC-Modul) zeigt, das im ACU-Modul verwendet wird;
  • Fig. 4B ein Blockschaltbild ist, das ein Speichersteuer- DRAM-Modul (MCD-Modul) zeigt, das im ACU-Modul verwendet wird;
  • Fig. 4C ein Blockschaltbild ist, das ein Speicherdatenpfad-Modul (MDP-Modul) zeigt, das in dem ACU-Modul verwendet wird;
  • Fig. 5 eine schematische Darstellung ist, die den modularen Aufbau einer Hauptspeichereinheit (MMU) für die Verwendung mit der ACU der Fig. 3 und 4 veranschaulicht, in der die Schnittstelle zwischen der SCU und dem Speicher vorgesehen ist;
  • Fig. 6A ein Blockschaltbild eines DRAM-Datenpfad-Moduls (DDP-Modul) der Bauart ist, die in Speichermodulen der Hauptspeichereinheit (MMU) verwendet wird;
  • Fig. 6B ein Blockschaltbild eines DRAM-Steuer- und Adressenmoduls (DCA-Modul) ist, der in den Speichermodulen der Hauptspeichereinheit (MMU) verwendet wird;
  • Fig. 7 ein Zeitablaufdiagramm ist, das die relative Position der Datenübertragungssignale zwischen der SCU und der ACU zeigt;
  • Fig. 8 ein Blockschaltbild ist, das im einzelnen den modularen Aufbau und den Betrieb der MMU- und MDP-Module veranschaulicht, wenn der Lesepfad für Speicheroperationen bereitgestellt ist;
  • Fig. 9 ein Blockschaltbild ist, das die Erzeugung des Schreibpfades für Speicheroperationen durch die MMU- und MDP-Module veranschaulicht;
  • Fig. 10 ein Blockschaltbild ist, das ein genaueres Diagramm einer bevorzugten Organisation des MMC-Moduls in der ACU bereitstellt;
  • Fig. 11 ein Blockschaltbild ist, das im einzelnen den modularen Aufbau des MCD-Moduls in der ACU veranschaulicht;
  • Fig. 12 eine genaue Darstellung einer bevorzugten modularen Konfiguration für das DDP-Modul von Fig. 6A ist;
  • Fig. 13 eine schematische Darstellung ist, die den Steuersignalpfad in einem DCA-Modul für die Verwendung in Speichermodulen der MMU veranschaulicht;
  • Fig. 14 eine schematische Darstellung ist, die den Adressenpfad im DCA-Modul gemäß der bevorzugten Speicherkonfiguration dieser Erfindung veranschaulicht; und
  • Fig. 15 ein vereinfachtes Flußdiagramm ist, das die Basisprozedur bei der Ausführung einer Speicheroperation gemäß dieser Erfindung veranschaulicht.
  • In Fig. 1 ist ein vereinfachtes Blockschaltbild eines Multiprozessorsystems 10 gezeigt, das mehrere Zentralemheiten (CPUs) 12 verwendet und in der Weise konfiguriert ist, daß es eine simultane, d. h. parallele, Operation der System-CPUs ermöglicht, indem sie ihnen erlaubt, einen gemeinsamen Hauptspeicher 16 für das System gemeinsam zu nutzen. Der Hauptspeicher 16 selbst enthält typischerweise mehrere Speichermodule oder -einheiten 16A und 16B. Eine Systemsteuereinheit (SCU) 14 verbindet die CPUs 12 mit dem Hauptspeicher 16 und mit der Eingabe/Ausgabe- Steuereinrichtung (E/A-Steuerung) 18, die dem Prozessorsystem im allgemeinen und den CPUs im besonderen erlaubt, durch geeignete E/A-Schnittstellen 20 und zugeordnete E/A-Einheiten 20A für das System mit der externen Welt zu kommunizieren. Die SCU 14 verbindet außerdem die verschiedenen Systemmodule mit einer Wartungsprozessor- /Konsoleneinheit (SPU) 22, die herkömmliche Konsolenfunktionen einschließlich der Statusbestimmung und der Steuerung der Gesamtoperation des Verarbeitungssystems ausführt. Insbesondere stellt die SCU 14 für die SPU 22 eine Einrichtung für die Kommunikation mit mehreren der CPUs 12 bereit und schafft einen Zugriff auf sämtliche Speicherelemente in den CPUs.
  • Eine effiziente Kommunikation zwischen sämtlichen an die SCU 14 angeschlossenen Systemeinheiten und dem Hauptspeicher 16 und insbesondere zwischen jeder der CPUs 12 und dem Hauptspeicher 16 ist im Hinblick auf die Sicherstellung einer effizienten Paralleloperation des Verarbeitungssystems kritisch. Gemäß dieser Erfindung wird diese kritische Operation mittels einer dedizierten Schnittstelleneinrichtung 30 geschaffen, die die SCU 14 und den Hauptspeicher 16 verbindet. Die Schnittstelle 30 stellt für die SCU 14 eine Einrichtung bereit, die als Antwort auf Speicherwechselwirkungsbefehle oder -signale, die von jeder der CPUs 12 oder der E/A-Einheiten 20A, die an die SCU angeschlossen sind, Schnittstellen- und Steuerfunktionen für die verschiedenen Module im Hauptspeicher 16 ausführt.
  • Obwohl die Schnittstelleneinrichtung 30 dieser Erfindung, die weiter unten im einzelnen beschrieben wird, nicht auf irgendeine besondere CPU-Architektur eingeschränkt ist, wird darauf hingewiesen, daß jede CPU 12 typischerweise ein Speichermodul 24, das die CPU-Schnittstelle mit dem Speicher bildet, E/A-Einheiten und andere CPU-Einheiten enthält. Insbesondere dient das Speichermodul als Einrichtung zum Annehmen von Speicherbezugnahmen, gewöhnlich von virtueller Art, die die Bezugnahmen auf physikalische Adressen übersetzen, sowie zum Initialisieren von Zugriffen auf Speicherdaten entweder im Hauptspeicher über die SCU 14 und die Schnittstelleneinrichtung 30 oder in einem lokalen Cache-Speicher. Jede CPU 12 enthält außerdem einen Anweisungsmodul 26 zum Holen von Anweisungen, Decodieren von Operationscodes (op-Codes) und von Spezifizierem, zum Holen von Operanden und zum Aktualisieren des Systemprogrammzählers. Weiterhin besitzt jede CPU ein Ausführungsmodul 28, das als Ausführungsstufe für die decodierten Anweisungen und geholten Operanden dient, die von den anderen CPU-Modulen bereitgestellt werden.
  • In Fig. 2 ist eine bevorzugte Ausführungsform einer dedizierten Schnittstelleneinrichtung 30 gezeigt, die die SCU 14 mit dem Hauptspeicher 16 gemäß dem System dieser Erfindung verbindet. Die Schnittstelleneinrichtung 30 ist in Form eines Speicher-Untersystens 32 vorgesehen, das im wesentlichen eine Array-Steuereinheit (ACU) 34, die Befehlssignale und Datenübertragungsanforderungen von der SCU annimmt, sowie eine Hauptspeichereinheit (MMU) 36 enthält, die als Speicherabschnitt des Hauptspeichers 16 arbeitet, mit dem die SCU 14 über eine Schnittstelle verbunden ist. Die ACU 34 enthält die gesamte Steuerlogik für die Bereitstellung der Schnittstellenfunktion und ist vorzugsweise physikalisch im SCU-Modul selbst angeordnet.
  • Die Schnittstelle zwischen der SCU 14 und dem Hauptspeicher 16 wird mittels der ACU 34 über eine bisektionale Schnittstelle geschaffen, die (i) die ACU 34 und die Verbindungsglieder zwischen der SCU 14 und der ACU 34 (zusammenfassend mit 30A bezeichnet) und (ii) das Verbindungsglied zwischen der ACU 34 und der MMU 36 des Hauptspeichers 16 (zusammenfassend mit 30B bezeichnet) umfaßt. Die folgende Beschreibung konzentriert sich auf die ACU, ihre Verbindungsglieder mit der SCU und ihre Operation, die für die SCU ein Mittel schafft, über das die Übertragung von Speicherbefehlen und zugeordneten Daten und Adressendaten zu den Speichermodulen im Hauptspeicher und von diesen ausgeführt werden kann. Eine Speicherkonfiguration für die MMU 36, die für die Verwendung mit dem effizienten Schnittstellenbetrieb der ACU 34 besonders geeignet ist, wird ebenfalls geschaffen.
  • Die SCU 14 ist über die Schnittstelle mit einem Hauptspeicher verbunden, der eine nicht busorientierte, sondern blockorientierte Konfiguration mit hoher Bandbreite besitzt. Sämtliche CPU-Zugriffe auf den oder von dem Speicher erfolgen über die ACU 34 in Blockinkrementen, die eine ausgewählte Anzahl von Bytes (typischerweise 64 Bytes) enthalten. Die Datenspeicherung im Hauptspeicher wird durch die Verwendung erweiterter Hexadezimalgrößen- Module geschaffen, wovon jedes vorzugsweise 64 Megabits (Mbits) an Speicherplatz unter Verwendung eines Mbit-DRAM bereitstellt. Vier solche Speichermodule sind zusammengefaßt, um eine einzelne MMU 36 zu bilden, wobei der Hauptspeicher 16 wenigstens eine solche MMU enthält.
  • Die ACU 34 stellt daher die Schnittstelle und die Steuereinrichtung für die in der MMU 36 enthaltenen Speichermodule dar und enthält eine Einrichtung zum Annehmen von Befehls/Status/Index-Signalen über eine Steuerleitung 38 von der SCU 14, das die besondere Speicheroperation angibt, die erforderlich ist, etwa Lesen-vom-Speicher, Schreiben-in-den-Speicher usw. Dieses Signal gibt außerdem den Status der Puffer im Logikabschnitt der SCU an, der dazu vorgesehen ist, Befehle zu empfangen, die von der ACU zurückgeschickt werden.
  • Es sollte darauf hingewiesen werden, daß die gesamte Decodierung vor der Ausführung von Speicheroperationen von der SCU 14 ausgeführt wird und daß entsprechende Speicheradressen in Adressenpuffern in der SCU gespeichert werden. Genauer nimmt die SCU Speicherzugriffsbefehle von anfordernden Systemeinheiten (wie etwa CPUs oder E/A- Einheiten) an, decodiert den Befehl, beginnt die Übersetzung der virtuellen Adressen in physikalische Adressen, damit sie Byteadressen in den MMU-Segmenten entsprechen, identifiziert auszuführende, nicht in Konflikt stehende Speicherzugriffe und setzt für sie Prioritäten und erzeugt schließlich Befehlssignale zum Beginnen der Ausführung der Speicheroperationen durch Datenübertragung zum Speicher und vom Speicher.
  • Die Operation der ACU zur Schaffung der Schnittstellen wirkung ist von der Weise unabhängig, in der das Setzen von Prioritäten und das Decodieren vor der Ausführung durch die SCU erreicht wird. Es ist lediglich erforderlich, daß die Zeilen/Spalten-Adressen, die den von einer Systemeinheit geforderten Speicherzugriffsoperationen zugeordnet sind, in getrennten Adressenregistern im Steuerlogikabschnitt der SCU gespeichert sind. Die SCU muß dann lediglich diejenigen Informationen an die ACU weiterleiten, die den besonderen Speicheranschluß oder das besondere Speichersegment angehen, welches Gegenstand einer besonderen Speicheroperation ist; die zugehörige Zeilen/Spalten-Adresse kann auf der Grundlage eines Signaloder Indexfeldes von der ACU, das das besondere SCU- Adressenregister identifiziert, das als Quelle der Zeilen/Spalten-Adresse verwendet werden soll, direkt von der SCU an die MMU weitergeleitet werden. Es ist daher möglich, die Übertragung der Speicheradresse synchron mit der Verfügbarkeit von adressierten Speichersegmenten zu steuern. Außerdem können Daten, die sich aus der Ausführung einer Speicheroperation ergeben, auf der Grundlage von Speicherbefehlen an die SCU direkt einem der Adressenregister in der SCU zugeordnet werden; die Notwendigkeit, die Adressen vom Speicher zur SCU zurückzuleiten, ist beseitigt.
  • Um das oben Gesagte auszuführen, ist zwischen der SCU 14 und der entsprechenden MMU 36 ein direkter Adressenpfad 42 vorgesehen, so daß die Zeilen/Spalten-Adresse, die ein besonderes Segment eines Speichers bezeichnet, das durch einen Speicherbefehl adressiert ist, unter der Steuerung der ACU 34 direkt von der SCU 14 zur entsprechenden MMU 36 befördert wird. Das Befehlssignal, das von der SCU auf der Leitung 38 weitergeleitet wird, enthält einen Index, der von der ACU als Grundlage zum Beginnen der direkten Übertragung von der SCU bestimmter der gespeicherten Adressen verwendet wird, welche bestimmte Zeilen oder Spalten in adressierten Speichersegmenten in der MMU 36 bezeichnen. Die ACU nimmt über die Befehl/Status-Signalleitung 38 den einen Speicherbefehl begleitenden Index an und leitet ihn zurück, falls auf das besondere Speichersegment, auf das durch den Befehl Bezug genommen wird, zugegriffen werden kann.
  • Genauer werden die Speicherzugriffsanforderungen, die von der SCU für ihre Ausführung mit Prioritäten versehen worden sind, in in der SCU vorgesehenen Adressenregistern gespeichert. Die Ausführung des besonderen Speicherbefehls, der durch die SCU gewählt wird, um zu einem gegebenen Zeitpunkt ausgeführt zu werden, wird durch Senden eines Ladebefehls zur ACU zusammen mit einem den Ort der entsprechenden Speicheradresse in den SCU-Adressenregistern identifizierenden Index begonnen. Die ACU empfängt anschließend den Index und die zugehörigen Speicherbefehlsinformationen, die eine Bezeichnung des Speichersegments/der Speicheranordnung, auf die zugegriffen werden soll, enthält. Falls die ACU über ihre Verbindungsglieder mit der MMU feststellt, daß das gewünschte Speichersegment tatsächlich verfügbar ist, wird der zugeordnete Index zur SCU zurückgeleitet, so daß die entsprechende Zeilen/Spalten-Adresse, die vom Index identifiziert wird, direkt über den Zeilen/Spalten-Adressenpfad zwischen der SCU und der MMU zur MMU übertragen wird.
  • Falls jedoch festgestellt wird, daß das adressierte Speichersegment nicht verfügbar ist, möglicherweise aus vielen verschiedenen Gründen einschließlich einer Durchlaufverzögerung beim Laden und Entladen der DRAMs und üblicher aufgrund der Notwendigkeit des Speichersystems, die DRAMs periodisch segmentweise aufzufrischen, setzt die ACU die Überwachung des Segments fort und leitet den Index zur SCU nur dann zurück, wenn das Adressensegment verfügbar wird. In der Zwischenzeit setzt die ACU mittels geeigneter Pufferung die Verarbeitung auf sequentieller Basis anderer Speicherzugriffsbefehle fort, die in der SCU protokolliert sind und den Zugriff auf ein Speichersegment erfordern, das momentan verfügbar ist. Genauer verwendet die ACU, wie weiter unten beschrieben wird, für jedes Speichersegment einen Befehlspuffer, um einen ankommenden einem Segment entsprechenden Speicherbefehl anzunehmen, während ein momentaner Speicherbefehl, der auf dasselbe Segment bezogen ist, ausgeführt wird.
  • Wenn zwei oder mehr Speicherbefehle, die an der SCU ankommen, dasselbe Segment im Speicher adressieren, werden sie sequentiell in der Reihenfolge gehandhabt, in der sie empfangen werden, wobei ein Segment, während auf es durch einen gegebenen Befehl zugegriffen wird, für andere Befehle, die dasselbe Segment anfordern, unzugänglich gemacht wird; die ACU erzielt dies durch die Steuerung des Zurücksendens des Indexes zur SCU. Der Index des unverarbeiteten Befehls wird von der SCU so lange zurückgehalten, bis sich die ACU in einer Situation zum Verarbeiten des Befehls befindet. Im wesentlichen nimmt die ACU die Ausführung eines Speicherbefehls auf Segmentbasis vor, während sie nachfolgende Befehls puffert und diese auf der Grundlage der Verfügbarkeit oder der Freigabe adressierter Speichersegmente verarbeitet. In dieser Weise kann die ACU Zugriffe auf Speichersegmente synchronisieren, ohne auf Speichertakte zum Erfassen und Lösen von Zugriffskonflikten zugreifen zu müssen.
  • Weiterhin erlaubt die Verwendung des Indexes der ACU auch, daß sie multiplexierte Signale steuert, die über die Adressenleitungen von der SCU 14 zur MMU 36 weitergeleitet werden. Wie oben erwähnt, leitet die ACU den Index über die Befehls/Statusleitung zur SCU zurück, wenn sie bereit ist, den zugeordneten Speicherbefehl auszuführen.
  • Der zur SCU 14 zurückgeleitete Index identifiziert die gespeicherte Zeilen/Spalten-Adresse, die einem besonderen verfügbaren Segment des Speichers in der MMU entspricht. Der Empfang des weitergeleiteten Index von der ACU leitet die Übertragung der entsprechenden, in der SCU gespeicherten Zeilen/Spalten-Adresse über die Leitung 42 direkt zur MMU ein. Genauer repräsentiert der Index ein vordefiniertes Bitfeld in den von der SCU zur ACU übertragenen Befehlsinformationen, das eines der mehreren Adressenregister identifiziert, die in der SCU vorgesehen sind, um Zeilen/Spalten-Adressen zu speichern, die Speicherbefehlen zugeordnet sind, welche für die Ausführung von der SCU mit Prioritäten versehen worden sind. Der Index besitzt vorzugsweise ein 4-Bit-Feld, so daß er eines von bis zu 16 Adressenregistern identifizieren kann.
  • Die Zeilen/Spalten-Adressen werden in multiplexierter Weise über den direkten Adressenpfad von der SCU zur MMU gesendet. Zusammen mit dem Index leitet die ACU auch ein Signal zur SCU zurück, vorzugsweise in Form eines einzigen Bits, das dem Indexfeld hinzugefügt ist und als Zeilen/Spalten-Wählsignal dient, das angibt, ob eine Zeile oder Spalte in einem Speichersegment durch die Adresse adressiert ist, welche direkt vom ausgewählten SCU- Adressenregister zum Speicher gesendet wurde. Die ACU leitet außerdem zusammen mit dem Index ein Signal zurück, vorzugsweise ein Einzelbit-Signal, das die besondere der Zeilen- und Spaltenadressen angibt, die in den SCU- Adressenregistern gespeichert sind. Das Multiplexieren der Zeilenadressen und der Spaltenadressen wird auf der Grundlage des Zeilen/Spalten-Wählsignals ausgeführt, das von der ACU mittels einer (nicht gezeigten) Standard- Multiplexierungsanordnung, die in der SCU vorgesehen ist, erzeugt wird. Für den Fall, in dem die SCU mit 12 Adressenspeicherregistern versehen ist, kann das Zeilen/Spalten-Wählsignal dazu verwendet werden, bis zu 12 Adressen zu indexieren, wodurch es möglich ist, die Adressierbarkeit von 16 MBits des Speichers zu unterstützen.
  • Der einem Speicherbefehl zugeordnete Index enthält vorzugsweise wenigstens ein gekennzeichnetes Code-Bit für die Identifizierung der System-CPU oder einer E/A- Einheit, von der die momentan ausgeführte Speicheroperation ihren Ausgangspunkt nahm; dies erleichtert das Versehen der Speicherbefehle mit Prioritäten und trägt dazu bei, die Daten, auf die zugegriffen worden ist, geeignet durch die ACU und die SCU zur Systemeinheit zu leiten, von der der Befehl ausging. Weiterhin erlaubt eine solche Anordnung, daß Speicherbefehle in Übereinstimmung mit verschiedenen, im voraus definierten Prozeduren in Abhängigkeit davon, ob die anfordernde Einheit eines System- CPU oder eine E/A-Einheit ist, ausgeführt werden können. Beispielsweise kann es wünschenswert sein, die Schreiboperation durch eine CPU auf eine ausgewählte Anzahl von Viererwörtern zu einem Zeitpunkt einzuschränken, typischerweise acht Viererwörter, während E/A-Einheiten erlaubt wird, Datenmengen von einem Byte bis zu der Anzahl von Bytes, die für CPU-Schreibvorgänge erlaubt sind, zu schreiben.
  • Die ACU 34 ist mit der SCU 14 außerdem über eine Kommunikationsleitung 40 verbunden, über die ein Befehls/Status- Signal zur SCU weitergeleitet wird, um einen Hinweis bezüglich der Verfügbarkeit und des Status der Daten zu schaffen, die durch die SCU vom Speicher angefordert werden. Datenkommunikationsleitungen 44 und 46 dienen als Einrichtung zum Übertragen von Daten zwischen der SCU und der ACU. Es sollte darauf hingewiesen werden, daß die ACU 34 nicht als Einrichtung zum Speichern von Daten für nachfolgende Übertragungen an die oder von der SCU dient; statt dessen arbeitet die ACU lediglich als Einrichtung zum Weiterleiten von Durchgangsdaten von adressierten Abschnitten der Speichermodule in der MMU zur SCU oder umgekehrt. Der modulare Aufbau der ACU und ihre Operation hinsichtlich der Schaffung der obigen Funktionen wird weiter unten genau beschrieben.
  • Am Speicherende des Speicher-Untersystems 32 ist die ACU mit der MMU 36 mittels einer Kommunikationsleitung 48 für die Übertragung von Steuer/Befehls-Signalen von der ACU, die die von der SCU gewünschte besondere Speicheroperation angeben, verbunden. Eine Kommunikationsleitung 50 dient als Einrichtung zum Übertragen des Status der von der MMU angeforderten Daten zur ACU. Datenkommunikationsleitungen 52, 54 sind als Einrichtungen für die Übertragung von Daten zwischen der ACU und der MMU vorgesehen.
  • Wie ebenfalls aus Fig. 2 hervorgeht, ist die ACU 34 mit der SPU 22 über eine Steuerleitung 56 verbunden. Dieses Verbindungsglied dient als Einrichtung für die Anpassung der ACU und folglich dem von ihr geschaffenen Schnittstellenbetrieb für die verschiedenen Zeitablaufbetriebsarten, zwischen denen der Hauptspeicher geschaltet werden kann. Genauer ist die SPU 22 mit dem Hauptspeicher über eine Steuerleitung 58 und über eine Statusleitung 60 verbunden, um den Speicher zu initialisieren und ihn zwischen drei verschiedenen Zeitablaufbetriebsarten zu schalten: (1) einem normalen Modus zum Unterstützen regulärer Systemoperationen; (2) einem Stufenmodus zum Unterstützen einer Einzelstufenoperation auf der Grundlage von Systemtakten; und (3) einem Bereitschaftsmodus zum Aufrechterhalten der Systemintegrität während eines Stromausfalls und einer Abtastoperation. Der Schaltvorgang wird von der SPU 22 als Antwort auf die Übertragung von geeigneten Signalen von der SCU 14 über Steuerleitungen 62 und 64 ausgeführt. Das Verbindungsglied zwischen der ACU und der SPU, das durch die Leitung 56 gebildet ist, ermöglicht, daß die Operation der SCU-ACU-Schnittstelle für die SCU mit der Speicherbetriebsart, die in einem gegebenen Zeitpunkt vorliegt, konsistent ist.
  • Der Takt zum Betreiben der Schnittstelle für den Zugriff auf den Speicher wird günstig durch eine Takteinrichtung 66 geschaffen, die in der SCU vorgesehen ist. Die Takteinrichtung 66 ist vorzugsweise ein programmierbarer Taktgeber, der mehrere zeitversetzte Taktsignale mit im voraus gewählten Taktperioden erzeugen kann. Solche Taktgeber sind bekannt und in Form von ICS erhältlich, die typischerweise bis zu acht Taktsignale mit verschiedenen Zeitperioden erzeugen. Es können verschiedene Taktsignale gewählt werden, um den Speicherzugriff auf der Grundlage der Taktperiode zu steuern, die für einen optimalen Datenübertragungs-Zeitablauf sowie für den Modus, in dem das System zu einer gegebenen Zeit arbeitet, am besten geeignet ist.
  • Obwohl Fig. 2 die Schnittstelle zwischen der SCU und dem Hauptspeicher zeigt, die ein einziges Speicher-Untersystem 32 umfaßt, das seinerseits eine einzige MMU 36 und eine entsprechende ACU 34 enthält, können selbstverständlich weitere MMU-ACU-Paare oder Speicher-Untersysteme verwendet werden, um den System-CPUs zu ermöglichen, daß sie einen vergrößerten Speicher gemeinsam nutzen. In der bevorzugten Ausführungsform zur Verwendung der SCU-ACU- Schnittstelleneinrichtung dieser Erfindung ist jede MMU 36 des Hauptspeichers 16 zwischen zwei Speicheranschlüssen der SCU aufgeteilt, wobei jeder Speicheranschluß zwei Segmente enthält und sämtliche Segmente an Blockgrenzen verschachtelt sind. Die SCU kann dann so verwendet werden, daß sie alle vier Segmente bei Verwendung eines einzigen Speicher-Untersystems parallel durchläuft, wodurch ermöglicht wird, daß bis zu vier Speicherbezugnahmen parallel abgearbeitet werden können; in einem solchen Fall ermöglicht die ACU der SCU 14, eine Speicheranforderung von irgendeiner der CPUs anzunehmen und sie zum bezeich neten Segment im Speicher zu schicken. Die Verschachtelung der Segmente basiert auf der Anpassung der Speicherzugriff-Blockgröße an die Größe der Cache-Blöcke, die in den System-CPUs verwendet werden.
  • Eine bevorzugte segmentbasierte Organisation für jede den Hauptspeicher bildende MMU ist in Fig. 2A dargestellt. Wie darin gezeigt, enthält der Datenspeicherabschnitt jeder MMU 36 ein Paar von Segmenten 124, 126, wovon jedes ein Paar von Speicheranordnungen enthält. Die vier Speicheranordnungen sind mit 128, 130, 132 bzw. 134 bezeichnet. Die Speicheranordnungen basieren auf DRAMs und können jeweils beispielsweise bis zu 64 Megabytes von Daten speichern. Obwohl die allgemeine Organisation eines solchen segmentbasierten Speichers bekannt ist, ist es wichtig, daß die Speicheradressen für die Speicheranordnungen an Blockgrenzen verschachtelt sind. Eine solche Anordnung ist in Fig. 2A gezeigt, wobei die Verschachtelung für eine bevorzugte Datenblockgröße von 64 Bytes gezeigt ist. Ein erster Block (BLOCK 0) besitzt ihm zugeordnete Byteadressen 0-63, wobei dieser Block in der ersten Anordnung 128 des ersten Speichersegments 124 gespeichert ist; der nächste, nachfolgende Block, der die Byteadressen 64-127 enthält, d. h. der zweite Block (BLOCK 1), ist in der ersten Speicheranordnung 132 des zweiten Speichersegments 126 gespeichert; der dritte Block (BLOCK 2) mit den ihm zugeordneten Byteadressen 128-191 ist in der zweiten Speicheranordnung 130 des ersten Speichersegments 124 gespeichert; der vierte Speicherblock (BLOCK 3) besitzt die ihm zugeordneten Byteadressen 192-255 und ist in der zweiten Speicheranordnung 134 des zweiten Speichersegments 126 gespeichert; der fünfte Block (BLOCK 4) besitzt ihm zugeordnete Byteadressen 256-319 und ist in der ersten Speicheranordnung 128 des ersten Speichersegments 124 gespeichert; usw.
  • Weiterhin ist der Hauptspeicher 36, der die mehreren Speichermodule enthält, mit einer Zugriffssteuerschaltung 136 versehen, die einen unabhängigen und gleichzeitigen Zugriff auf mehrere der Speicheranordnungen ermöglicht, um Blöcke von Daten zu erhalten, die über verschiedene Bereiche von Byteadressen verteilt sind. Die Wahl der Datenblockgröße, auf der die Verschachtelung der Speichersegmente basiert, ist an die Größe der Cache-Blöcke, die in den verschiedenen CPUs verwendet werden, welche im Multiprozessorsystem enthalten sind, um eine Entsprechung zwischen von einer CPU angeforderten Datenblöcken und entsprechenden verschachtelten Datenblöcken aufrechtzuerhalten, die von den Segmenten jeder MMU erhalten werden können.
  • In Fig. 3 ist ein Blockschaltbild der physikalischen Aufschlüsselung der Komponenten in der ACU dargestellt. Die ACU-Logik ist in Form von Makrozellen-Arrays implementiert und schafft im wesentlichen den Datenpfad und die Steuerung für das Speichersystem. Die ACU enthält ein Hauptspeicher-Steuermodul (MMC-Modul) 70, das in Kombination mit dem Speichersteuer-DRAM-Modul (MCD-Modul) 72 die Steuerung für den Datenpfad und die Speichermodule schafft. Um diese Steueroperation zu schaffen, sind das MMC 70 und das MCD 72 miteinander verbunden, um Befehlssignale untereinander und über Steuer/Status-Leitungen mit der MMU 36 auszutauschen. Das MMC 70 ist kraft ähnlicher Steuer/Status-Leitungen direkt mit der SCU 14 verbunden.
  • Wie in Fig. 4A gezeigt, ist das MMC 70 ein Gatearray- Modul, das eine Datensteuereinrichtung 77 für die Erzeugung von Steuersignalen für den Datenpfad, eine Adressensteuereinrichtung 78 für die Erzeugung von Steuersignalen für den Adressenpfad, eine DRAM-Steuereinrichtung 79 für die Erzeugung von DRAM-Steuerbefehlen an das MCD (72 in Fig. 3), eine Einrichtung 80 für die Schaffung der Befehis-, Steuer- und Statusschnittstelle mit dem Logikabschnitt der SCU sowie eine Fehlererfassungseinrichtung 82 für die Schaffung einer Fehlererfassung für sämtliche Steuerleitungen des MMC enthält.
  • Das MCD 72 ist ein Gatearray, das eine Steuereinrichtung für die darin enthaltenen DRAMs und für Selbstprüfungsfunktionen enthält. Genauer enthält das MCD 72, wie in Fig. 48 gezeigt, eine Einrichtung 84 zum Erzeugen eines Steuerzeitablaufs für die DRAMs, eine Einrichtung 86 für die Erzeugung von Befehlen an das MMC während der normalen Operationen und an die MMU, wenn das System im Schrittmodus arbeitet, eine Einrichtung 88 für die Fehlererfassung in den Steuerleitungen für das MCD sowie eine Steuereinrichtung 89 zum Steuern der Selbsttestoperation, wie weiter unten genau beschrieben wird.
  • Der Datenpfadabschnitt der ACU 34 ist zwischen zwei Speicherdatenpfad-Modulen (MDP-Module) 74 und 76 aufgeteilt (siehe Fig. 3). Die MDP-Module sind mit dem MCC 70 verbunden, um Befehlssignale anzunehmen und zu quittieren, und sowohl an die SCU als auch an die MMU 36 über geeignete Datenleitungen angeschlossen, um Daten zwischen der SCU und dem Speicher zu übertragen. Darüber hinaus schafft jedes MDP-Modul eine Datenübertragung über einen unabhängigen oder alternativen Weg.
  • Wie in Fig. 4C gezeigt, enthält jedes MDP 74, 76 eine Einrichtung 90 für die Bereitstellung einer Prüfbit- Erzeugung für Schreibdaten, eine Einrichtung 72 für die Erfassung und die Korrektur von Einzelbitfehlern (SBE) in Lesedaten, eine Einrichtung 94 für die Erfassung von Doppelbit-Fehlern (DBE) in Lesedaten sowie eine Einrichtung 96 für die Bereitstellung von Byte-Mischpfaden für empfangene Daten.
  • Aus der obigen Beschreibung wird verständlich, daß der Systemspeicher über eine Schnittstelle mit der Steuerlogik der SCU an drei verschiedenen Verbindungspunkten wie im folgenden angegeben verbunden ist:
  • 1) Sämtliche Befehls- und Statusinformationen laufen durch das in der ACU vorgesehene MMC-Modul;
  • 2) sämtliche Datenübertragungen laufen durch das Paar von MDP-Modulen, die ebenfalls in der ACU vorgesehen und an die SCU angeschlossen sind; und
  • 3) Informationen, die Zeilen- und Spaltenadressen repräsentieren, werden von der SCU an das entsprechende MM-Segment bei Initialisierung durch die ACU weitergeleitet.
  • Nun wird auf Fig. 5 Bezug genommen, in der eine schematische Darstellung des modularen Aufbaus der Hauptspeichereinheit (MMU) 36 gezeigt ist, die einen Teil des Systemhauptspeichers bildet, mit dem die SCU über eine Schnittstelle verbunden ist. Wie oben angegeben, enthält jede MMU vorzugsweise vier Speichermodule (MM) 100, die vier Speicheranordnungen (128, 130, 132 und 134 in Fig. 2A) bereitstellen. Selbstverständlich ist die Operation der ACU nicht auf eine spezifische Konfiguration der MMU eingeschränkt, obwohl die ACU 34 als primäre Einrichtung dient, über die die SCU mit dem Systemspeicher über eine besondere MMU in Wechselwirkung tritt. Ausgedrückt durch eine Speicherzuweisung ist die MMU vorzugsweise in zwei Speichersegmente unterteilt, wovon jede wie oben beschrieben zwei Anordnungen besitzt. Die MMU enthält sämtliche DRAMs, die einem einzelnen Speicher-Untersystem zugeordnet sind, wobei die DRAMs logisch über die vier MMs 100 verteilt sind, so daß ein einzelner Datenpfad zwischen der MNU und der ACU unterstützt wird. Die zwei Segmente der MMU nutzen somit einen gemeinsamen Datenpfad, selbst wenn die Segmente unabhängig voneinander gehandhabt werden. Die zwei Anordnungen, die jedes MMU-Segment enthält, werden von der ACU gesteuert, so daß nur eine Anordnung für einen gegebenen Speicherbefehl aktiv sein kann. Dies wird dadurch erreicht, daß die Adressenleitungen für die Segmente verschieden sind, während die Datenleitungen dieselben sind. Genauer sind beiden Segmenten die Schreibfreigabe- und die Spaltenadressen-Wählsignale gemeinsam, während der Status (bejahend oder verneinend) der Zeilenadressen-Wählsignale unterschiedlich ist und festlegt, welches der zwei Segmente aktiv gemacht wird.
  • Gemäß einer bevorzugten logischen Implementierung ist jedes Speichermodul (MM) aus einem Hauptarraykarten-Modul (MAC-Modul) 102 hergestellt, dem Speicherkapazität hinzugefügt ist, die durch ein Paar von "Tochterarraykarten"- Modulen (EAC-Modulen) 104 geschaffen wird, die in das MAC eingesteckt werden können. Jedes MAC ist ein erweitertes Hexadezimal-Modul, das oberflächenmontierte DRAMs und die zugehörige Logik enthält. insbesondere enthält das MAS eine Einrichtung für die Schaffung der folgenden Funktionen zusätzlich zu der durch die DRAMs geschaffene Speicherkapazität: (1) Bereitstellen einer Schreibdaten- Pufferung; (2) Bereitstellen einer Lesedaten-Pufferung; (3) Sicherstellen der Integrität der DRAM-Daten während eines Stromausfalls, (4) Bereitstellen von Verbindungen und von logischer Unterstützung für die zwei DAC; und (5) Steuern der Speicherzyklen während der Schrittbetriebsart-Operation.
  • Jeder Speichermodul 100 besitzt vier in ihm angeordnete DRAM-Datenpfad-Module (DDP-Module) 106. Wie aus Fig. 6A hervorgeht, ist in jedem DDP eine Einrichtung 108 für die Ausführung der Pegelübersetzung zwischen den im Modul verwendeten Logikpegeln (ICL nach TTL und umgekehrt), einer Einrichtung 110 für die Bereitstellung des Lesedatenpfades und der zugehörigen Pufferung, einer Einrichtung 112 für die Bereitstellung des Schreibdatenpfads und der zugehörigen Pufferung sowie mit einer Einrichtung 114 für die Bereitstellung eines DRAM-Umgehungspfades, falls erforderlich, versehen.
  • Jedes Speichermodul 100 besitzt außerdem ein DRAM-Steuerund Adressen-Modul (DCA-Modul) 116, das, wie in Fig. 6B ersichtlich ist, eine Einrichtung 118 für die Ausführung der Pegelübersetzung, eine Einrichtung 120 für die Ausführung der Pufferung und der Steuersignale an die DDP- Module 106, die Speicherbefehle enthalten, die weiter unten genau diskutiert werden, sowie eine Einrichtung 122 enthält, die Quittierungsfolgen ausführt, wenn zwischen verschiedenen Systemzeitablauf-Betriebsarten unter der Steuerung der SPU 22 (von Fig. 2) geschaltet wird.
  • Nun wird die Operation der Schnittstelle gemäß der Erfindung beschrieben, wobei die gesamte Schnittstellenwirkung, die von der ACU 34 geschaffen wird, in vier verschiedene Segmente unterteilt werden kann:
  • 1) der 'SCU-zum-Speicher'-Befehl;
  • 2) der DRAM-Adressenbetrieb;
  • 3) der 'Speicher-zur-SCU'-Befehl; und
  • 4) der Datenbewegungsbetrieb.
  • Im Fall von Schreibvorgängen in den Speicher sind sämtliche vier Segmente anwendbar, während Lesevorgänge vom Speicher das Segment 3 nicht enthalten, da keine Notwendigkeit besteht, Befehle vom Speicher zur SCU weiterzuleiten.
  • Die Kommunikation zwischen der SCU 14 und insbesondere dem Steuerlogikabschnitt der SCU, der um der Bequemlichkeit willen hier ebenfalls mit SCU bezeichnet wird, wird durch die Übertragung von Speicherbefehlen von der SCU zu dem besonderen MMC 70 erzielt, da er sich in der ACU 34 befindet und mit demjenigen Segnent des Speichers verbunden ist, auf das zugegriffen werden soll. Dieser Vorgang wird unter Verwendung von Segmentbefehlspuffern (180 und 181 in Fig. 10) ausgeführt, die sich in jedem MMC befinden und die den von der MMC gesteuerten Speichersegmenten entsprechen.
  • Bei Empfang eines Speicherbefehls von der SCU lädt die ACU den Befehl in den geeigneten Befehlspuffer. Es werden gekennzeichnete Bits verwendet, um u. a. das Segment oder die Anordnung des Speichers, die adressiert worden ist, die besondere Speicheroperation, die ausgeführt werden soll, die Länge des übertragenen Speicherworts, den Typ der verwendeten Parität und deren Gültigkeit in bezug auf den Taktzyklus, die Verfügbarkeit der Befehlspuffer und folglich der ACU hinsichtlich der Annahme von Speicherbefehlen von der SCU, die Verfügbarkeit der Befehlspuffer für die Annahme angeforderter Daten vom Speicher für die Übertragung zur SCU, die Aufhebung eines spezifischen Speicherbefehls, den Index, der zur SCU zurückgeleitet werden soll, um bei der Spezifizierung der direkt zur MMU zu übertragenden Speicheradresse verwendet zu werden, sowie das Einleiten des Ladens von Befehlen in die Puffer anzugeben. Eine Liste typischer Befehlsbit-Kennzeichnungen (und entsprechender Beschreibungen) für die Verwendung bei der Steuerung des Betriebs der Segmentbefehlspuffer wird im folgenden in Form von Tabelle A angegeben. TABELLE A
  • Die Bits im Längenfeld in Tabelle A werden folgendermaßen decodiert.
  • Wenn das MMC einen Befehl wie durch das LDCMD-Bit angegeben empfängt, wird der Befehl in den geeigneten Segmentbefehlspuffer geladen, indem das höchstwertige Bit (MSB) der BANKADDR-Bits, die die besondere Anordnung des Speichers, auf die zugegriffen werden soll, kennzeichnen, decodiert wird. Wenn das MMC bereit für die Annahme eines weiteren Befehls ist, wird ein BUFAVAIL-Signal für einen Taktzyklus bejaht, was die Verfügbarkeit der Segmentbefehlspuffer für die Annahme von MMC-Befehlen angibt.
  • Die CYCLSTAT-Bits ermöglichen, eine Anforderung aufzuheben, wenn momentan ein Lesezyklus ausqeführt wird. In einem solchen Fall beendet das MCD (72 in Fig. 3) den DRAM- Durchlauf-Zeitablauf, um das Auftreten von Problemen zu vermeiden, die sich aus dem Abbruch des Zyklus ergeben könnten. Die CYCLSTAT-Bits werden während Schreibzyklen ignoriert.
  • Bezüglich der Aktion der ACU in ihrer Eigenschaft als Kommunikationsglied zwischen dem Speicher und der SCU sollte angemerkt werden, daß es vier spezifische Bedingungen gibt, unter denen die ACU dem Speicher erlaubt, mit der SCU zu kommunizieren: (1) wenn eine Leseanforderung ausgegeben wurde und Daten bereit zum Verschicktwerden sind; (2) wenn ein Fehler während der Übertragung von Lesedaten erfaßt wird; (3) wenn ein Fehler während der Übertragung von Schreibdaten erfaßt wird; und (4) wenn ein Befehlspuffer verfügbar ist. Wenn ein Speicherbefehl von der ACU angenommen wird, wird er in den geeigneten Befehlspuffer geladen, auf der Grundlage der Bitkennzeichnungen decodiert und wie gefordert behandelt. Ein Befehl vom Speicher wird beispielsweise über die ACU- Befehlspuffer zur SCU weitergeleitet, während die begleitenden Daten über die ACU übertragen werden, wenn das SENDDATA-Signal empfangen wird, das angibt, daß die SCU bereit ist, Daten zu empfangen, was entweder für die Übertragung vom Speicher gefordert war und für die Übertragung vom Speicher verfügbar ist.
  • Von der ACU werden spezifische Befehlskennzeichnungen verwendet, um der SCU den Status der Datenübertragung anzuzeigen, sowie den momentanen Datenfluß zu steuern, der einem momentan verarbeiteten Speicherbefehl entspricht. Genauer werden bezeichnete Bits, die von der ACU zur SCU weitergeleitet werden, dazu verwendet, das Vorhandensein von Datenfehlern, die Notwendigkeit zum Zurückschicken von Lesedaten, das entsprechende Speichersegment, die Verfügbarkeit der Segmentbefehlspuffer und den Beginn des Ladens in diese Puffer, die Angabe des fehlerfreien Abschlusses von Lesedaten- und Schreibdaten-Operationen sowie den Paritätsstatus von zur SCU weitergeleiteten Daten anzugeben. Eine Liste von typischen Befehlsbit-Kennzeichnungen, die einen Teil eines 8-Bit-Informationsworts bilden, das vom MMC in der ACU erzeugt und dazu verwendet wird, Informationen vom Speicher durch die ACU zur SCU weiterzuleiten, wird im folgenden in Form von Tabelle B angegeben. TABELLE B
  • Die ACU steuert die Datenbewegung zwischen der SCU und dem Speicher in der Weise, daß eine feste Anzahl von Zyklen zwischen dem Empfang eines Datenübertragungsbefehls bei der SCU und dem Punkt bereitgestellt wird, in dem entsprechende Daten an einem Datenschalter in der SCU- Steuerlogik ankommen, um über den Speicher durch die ACU übertragen zu werden.
  • Wenn die ACU bereit ist, Daten von der SCU entsprechend einem gültigen Befehl für die nachfolgende Übertragung von Daten zum Speichern anzunehmen, leitet die ACU die Verfügbarkeit der Segmentbefehlspuffer an die SCU weiter und wartet auf den Empfang eines SENDDATA-Signals von der SCU. Die SCU ist jedoch an diesem Punkt nicht rechtzeitig in einer Lage, in der sie das SENDDATA-Signal senden kann, weil der den Speicherbefehl anfordernden Vorrichtung oder CPU auch das SENDDATA-Signal gemeldet werden muß, damit die entsprechende Speicherübertragung erfolgt, wobei die Übertragung von Signalen durch die Zwischenverbindung zwischen der SCU und der anfordernden CPU wenigstens einen Systemzyklus in jeder Richtung erfordert. Diese Verzögerung wird durch die Bereitstellung eines Datenverzögerungssignals von der SCU an die ACU und insbesondere an das darin befindliche MMC-Modul (70 in Fig. 3) bewogen.
  • Diese Zeitablaufbeziehung zwischen Speicherbefehlen und der Bewegung von Daten zwischen der SCU und dem Speicher wird deutlich bei Bezugnahme auf Fig. 7, die ein Zeitablaufdiagramm ist, das die relative Anordnung von Datenübertragungsbefehlen und der entsprechenden Bewegung von Daten zwischen der SCU und der ACU veranschaulicht. Wie daraus ersichtlich ist, repräsentieren die gestrichelten vertikalen Linien, die abwechselnd mit den Buchstaben A und B bezeichnet sind, aufeinanderfolgende System- Taktzyklen. Nachdem ein gültiger Befehl bei der SCU empfangen worden ist, wird ein Datenverzögerungssignal SENDDATADLY von der SCU zum MMC gesendet und dient als Grundlage für die Bewegung der Verzögerung, die aufgrund der Zeitdauer auftritt, die erforderlich ist, damit Signale die Zwischenverbindung (typischerweise ein Datenkabel) zwischen der SCU und der besonderen, von der Speicheroperation betroffenen CPU durchlaufen können. Genauer sendet die SCU das SENDDATADLY an das MMC mit einer Verzögerung von einem Zyklus, um die Zyklusverzögerung zu berücksichtigen, die das SENDDATA-Signal aufweist, um die CPU zu erreichen. Da MMC verzögert ferner das SENDDATADLY, das von der SCU empfangen wird, um einen weiteren Zyklus, um die Einzyklusverzögerung zu berücksichtigen, die erforderlich ist, damit Daten von der CPU zur SCU übertragen werden können, bevor sie zum entsprechenden Segment im Hauptspeicher gesendet werden.
  • Nun wird die Adressenschnittstelle betrachtet; die MMC empfängt vorzugsweise von der SCU gleichzeitig zum Empfang der Befehlsinformationen die Start-Viererwortdaten (ein 8-Byte-Wort). Diese Informationen enthalten Bitbezeichnungen, die die Adresse der ersten acht Bytes des Speichers, auf den für die Datenübertragung zugegriffen wird, den Paritätsstatus der Adressenbezeichnungsbits sowie den Paritätsstatus sämtlicher Adressenbits spezifizieren. Typische Bitbezeichnungen für die Adressenbefehlsinformationen, die vom MMC geschaffen werden, sind in der folgenden Tabelle C aufgelistet. TABELLE C
  • Es sollte darauf hingewiesen werden, daß die Zeilen- und Spaltenadressen des DRAM, die den Speicheroperationen entsprechen, die von der ACU ausgeführt werden sollen, in der SCU gespeichert sind. Das MMC stellt die Steuersignale für die SCU bereit, um die geeignete Zeilen- oder Spaltenadressen im geeigneten Zeitpunkt im DRAM-Zyklus zu senden. Dies wird durch Verwendung von bitbezeichneten Signalen erzielt, die den von der SCU zu verwendenden Index für die Spezifizierung der Reihen/Spalten-Adresse, die zum Speicher übertragen werden sollen, die Auswahl entweder einer Zeile oder einer Spalte auf der Grundlage der Zeilen/Spalten-Adresse sowie den Paritätsstatus dieser Signale angeben. Typische Bitbezeichnungen für Signale, die hierzu verwendet werden, sind in der folgenden Tabelle D aufgelistet: TABELLE D
  • Die Schnittstellenoperation der ACU 34 (siehe Fig. 3) zusammenfassend werden Speicherbefehlsinformationen, die von einer anfordernden Systemeinheit ausgegeben werden, von der SCU 14 durch das MMC 70 in der ACU empfangen, wo die Informationen decodiert werden und die geeigneten DRAM-Befehle zum MCD 72 geschickt werden. Das MMC 70 stellt die Steuerung über den gesamten Datenpfad bereit, während das MCD 72 den gesamten Steuerungszeitablauf für die DRAMs bereitstellt. Wenn Schreiboperationen ausgeführt werden, treten Daten in die zwei MDP-Module 74 und 76 ein. Jedes MDP arbeitet dann ein Langwort ab, das Fehlerkorrekturcode-Prüfbits (ECC-Prüfbits) für die Schreibdaten bereitstellt. Die Daten werden anschließend zur MMU (36 in Fig. 2) geschickt, wo sie in einem der darin enthaltenen Schreibpuffer gespeichert werden. Wenn Leseoperationen ausgeführt werden, werden Daten von der MMU 36 durch die MDPs 74 und 76 empfangen. Jedes MDP decodiert dann die Prüfbits, die mit den Daten bereitgestellt werden, korrigiert anschließend Einzelbitfehler und erfaßt Doppelbitfehler, bevor die Daten zur SCU 14 übertragen werden. Von der SCU werden die übertragenen Daten zur Systemeinheit geschickt, von der der Speicherbefehl ausging.
  • Die gesamte erforderliche Datenpufferung für Speicheroperationen erfolgt in der MMU 36. Gemäß einer bevorzugten Ausführungsform speichert die MMU 128 Bytes von Schreibdaten in 64-Byte-Schreibpuffern und 1 bis 8 Bytes von Lesedaten in 64-Byte-Lesepuffern. Wenn Schreiboperationen ausgeführt werden sollen, werden Daten durch die MDP- Module geschickt und in der MMU 30 gespeichert. Sobald diese Übertragung abgeschlossen ist, können Daten in die in der MMU vorgesehenen DRAMs geschrieben werden. Wenn Leseoperationen ausgeführt werden sollen, wird ein Block von Daten in die MMU-Lesepuffer geschrieben, wobei alle Daten, vorzugsweise 8 Bytes in einem Zeitpunkt, durch die MDPs hinausgeschoben werden, bis der gesamte Block von Lesedaten übertragen worden ist.
  • Wie oben angegeben, wird die gesamte Speicheradressendecodierung durch die SCU bereitgestellt, wobei für jeden zum MMC geschickten Befehl der begleitende Index durch das MMC zusammen mit einem Zeilen/Spalten-Wählbit zur SCU weitergeleitet wird, wenn das angeforderte Speichersegment verfügbar ist. Dieser weitergeleitete Index wird dann dazu verwendet, die geeignete Zeilen/Spalten-Adresse zu wählen, die anschließend direkt über die Zeilen/Spalten-Adressenleitung 42 (Fig. 2) in die MMU eingegeben wird.
  • Eine genauere Beschreibung des modularen Aufbaus und der zugehörigen Operation der ACU (der Fig. 3 und 4) sowie eine erläuternde Speicherkonfiguration für die MMU (der Fig. 5 und 6) wird im folgenden mit Bezug auf den Schnittstellenbetrieb gegeben, der bei der Ausführung typischer Operationen des Lesens vom Speicher und des Schreibens in den Speicher ausgeführt wird. Zusätzlich werden bestimmte spezialisierte Operationen einschließlich der "Lesen-Modifizieren-Schreiben"-Operation, der "Schreiben-Lesen"-Operation und der "Schreiben-Durchlassen"-Operation, die eine effiziente Nutzung der Speicherbetriebsmittel ermöglichen, beschrieben.
  • Insbesondere in Fig. 8 ist eine genauere Aufschlüsselung der MMU 36 und des MDP 74 der ACU gezeigt, die deutlich den Datenpfad veranschaulicht, der bei der Ausführung einer Leseoperation zwischen der SCU und der MMU betroffen ist. Die bevorzugte Breite des Datenpfads, ausgedrückt durch die Bitzahl, ist an verschiedenen Stellen angegeben, wo die Datenleitungen durch ein Doppelschrägstrich- Symbol (//-Symbol) geschnitten sind. Wie oben angegeben, erfolgen sämtliche Speicheroperationen in 64-Byte-Einheiten. Wenn eine Lesedatenoperation ausgeführt wird, werden eine Anordnung, d. h. 640 DRAMs des Speichers aus einem bezeichneten Speichersegment in der MMU gelesen und durch eine DRAM-Umgehungsleitung MUX 140 in einen ersten Lesepuffer 141 geladen. Die Daten im Lesepuffer 141 werden anschließend an einen Aufzeichnungslesepuffer 142, vorzugsweise in Segmenten von 80 Bits, übertragen, so daß eine zweite Leseoperation vom anderen Segment sofort fortgesetzt werden kann. Daten, die vom Lesepuffer 141 gelesen werden, werden in einen 8:1-Multiplexierer 143 geliefert, um Daten mit 80 Bits pro Taktzyklus zu verpakken. Das erste 80-Bit-Wort, das übertragen werden soll, wird durch das "Start-Viererwort"-Feld im Befehlspuffer der MMU bestimmt. Die Anzahl der nachfolgenden 80-Bit- Wörter, die übertragen werden sollen, wird durch das " Viererwortanzahl"-Feld im Befehlspuffer bestimmt.
  • Das vom Speichermodul ausgegebene 80-Bit-Datenwort wird aufgeteilt und an die zwei MDP-Module 74, 76 (siehe Fig. 3 und 4), die in der ACU vorhanden sind, übertragen. Jedes MDP arbeitet dann an 40 Bits, indem es eine Doppelbitfehler-Korrektur und -erfassung sowie eine Einzelbit- Fehlerkorrektur, falls notwendig, vorzugsweise auf der Grundlage irgendeiner Form eines modifizierten Hamming- Codes, ausführt.
  • Die Operation und der Aufbau des ersten Einzel-MDP 74 wird im folgenden beschrieben, wobei die Beschreibung auch für das zweite MDP 76 gilt. Genauer werden, wie für das erste MDP 74 gezeigt ist, 40 Bits des 80-Bit- Datenworts, das vom MMU-Lesepuffer 141 übertragen wird, in einem Zwischenspeicher 144 zwischengespeichert und dann über einen Syndrom-Decodierer und eine Datenkorrektureinheit 145 übertragen. Der Ausgang des Zwischenspeichers 144 wird außerdem dazu verwendet, ein Prüfbit durch einen Prüfbitgenerator 146 zu erzeugen, dessen Ausgang in der Syndrom-Decodierungseinheit 145 kombiniert und dazu verwendet wird, die Datengültigkeit sicherzustellen und geeignete Korrekturen vorzunehmen oder, falls erforderlich, Fehlersignale zu erzeugen. Auf die korrigierten Daten wirkt anschließend ein Paritätsgenerator 147 ein, wobei die resultierenden Daten im Zwischenspeicher 148 zwischengespeichert werden, von dem aus sie über die SCU (14 in Fig. 3) gesendet werden können. Sobald die Leseoperation abgeschlossen ist, aktualisiert dann das MMC (70 in Fig. 3) die Angabe des "Verfügbar-Status" in seinem entsprechenden Segmentbefehlspuffer (180 in Fig. 10), um anzuzeigen, daß weitere Speicheroperationen vorgenommen werden können.
  • Der Ausgang des Syndrom-Decodierers und der Korrektureinheit 145 wird auch einem Paar von seriell verbundenen E/A-Mischpuffern 149 und 150 zur Verfügung gestellt, wovon die gepufferten Daten an einen Byte-Mischmultiplexierer 151 übertragen werden. Der MUX 151 nimmt außerdem die korrigierten Daten direkt von der Decodierer- /Korrektureinheit 145 an und verwendet ein direkt an den MUX 151 angelegtes Byte-Wählsignal als Index, um Lesedaten zu erzeugen, die auf den Schreibpfad weitergeleitet werden sollen. Ein Markierungsbit-Generator 152 ist dazu vorgesehen, den Ausgang des Prüfbit-Generators 146 anzunehmen und daraus ein Einzelmarkierungsbit zu erzeugen. Das Einzelbit ist verfügbar, um die Datenintegrität im Schreibpfad sicherzustellen, die weiter unten im einzelnen beschrieben wird. Es wird darauf hingewiesen, daß in der obigen Operation die MMC- und MCD-Module die Befehlsinformationen und den Index decodieren und die Adresse direkt von der SCU in die MMU freigeben. Der DRAM- Durchlauf wird mittels des DCA-Moduls 116 (Fig. 68) ausgeführt, um Daten in die DRAM-Anordnungen, die einen Teil eines gegebenen Segments des Speichers bilden, zu laden oder aus diesen Anordnungen auszuladen. Die Zwischenspeicherung der Daten von den DRAMs in den MMU-Lesepuffer 141 (Fig. 8) und die Übertragung der Daten in den Lesepuffer 142 wird unter der Steuerung der MMC- und MDC-Module ausgeführt. Wenn diese Datenübertragung abgeschlossen ist, wird ein "Lese-Fertig"-Befehl zur SCU übertragen, woraufhin die Übertragung von Viererwörtern zu den in der ACU befindlichen MDPs begonnen wird, nachdem ein entsprechender "SENDDATA"-Befehl von der SCU über die Befehlsleitungen empfangen worden ist, die die SCU mit der ACU verbinden.
  • In Fig. 9 ist ein Blockschaltbild der ACU/MMU-Logikblöcke gezeigt, welche bei der Verarbeitung einer Schreibdatenoperation betroffen sind. Wie bei der Lesedatenoperation wird die Schreibdaten-Folge durch die Übertragung geeigneter Befehlsinformationen von der SCU an den ausgewählten Segmentbefehlspuffer im MMC begonnen. Bei der Übertragung von Daten von der SCU zum Speicher- Untersystem decodieren die MMC- und MCD-Module die Befehlsinformationen und den Index, um festzustellen, ob die betreffende besondere Speicheroperation von einer CPU oder von einer E/A-Vorrichtung angefordert wurde. Weiterhin werden die Anordnungswählinformationen decodiert und wird die Adresse von der SCU in das gewählte Segment bestätigt, um den DRAM-Durchlauf-Zeitablauf zu beginnen.
  • Wie in Fig. 9 gezeigt, werden Daten in jedem MDP über einen Zwischenspeicher 160 empfangen, wobei eine Langwort- Parität (4-Byte-Wort-Parität) in jedem übertragenen Viererwort mittels eines Wortparität-Prüfmoduls 162 geprüft wird und ein geeignetes Fehlersignal erzeugt wird, falls die Prüfung positiv ist. Andernfalls werden die zwischengespeicherten Langwortdaten von der SCU an einen 2:1-MUX 164 geliefert, der außerdem einen Langworteingang empfängt, der Lesedaten (vom Lesedatenpfad von Fig. 8) enthält. Der Ausgang des MUX 164 ist ein Langwort, das in einem 2:1-MUX 166 multiplexiert wird, der von einem Datenmustergenerator 168 einen Langworteingang empfängt. Ein Prüfbitgenerator-Modul 170 nimmt die an ihn vom MUX 166 gelieferten Daten an und erzeugt auf der Grundlage eines modifizierten Hamming-Codes für jedes Langwort eine ausgewählte Anzahl von Prüfbits, vorzugsweise 7. Dieser Ausgang wird mit dem vom Markierungsbit-Generator 152 von Fig. 8 erzeugten Bit kombiniert, um einen 40-Bit-Ausgang zu erzeugen. Der Ausgang wird an einen Zwischenspeicher 172 geliefert, von wo aus die 40 Bits der Daten verfügbar sind, um an die entsprechende MMU 36 im Speicher übertragen zu werden.
  • Die modulare Logik und die Operation, wie sie oben in bezug auf das erste MDP 74 beschrieben worden sind, gilt auch für das zweite MDP 76, das ebenfalls die Langwortdaten von der SCU empfängt und 40 Bits zwischengespeicherter Daten erzeugt. Diese Daten werden mit dem Datenausgang vom ersten MDP 74 kombiniert, wobei die resultierenden 80 Bits von Daten an die MMU 36 geliefert werden. Genauer werden die Daten über einen 1:8-Demultiplexierer 174 geliefert und im zugehörigen ersten Schreibpuffer 176 unter der Steuerung des MMC (70 in Fig. 3) und der DCA- Module (116, Fig. 5) wie oben beschrieben, gespeichert. Die demultiplexierten und gepufferten Daten werden anschließend über einen zweiten Schreibpuffer 178 in 80- Bit-Segmenten übertragen, so daß aufeinanderfolgende Blöcke von Daten von der SCU zur MMU bei minimaler Leerlaufzeit übertragen werden können.
  • Vom Schreibpuffer 178 werden die Daten über die ausgewählten DRAM-Anordnungen in einem bezeichneten Speichersegment übertragen. Am Ende der Schreibdatenoperation aktualisiert die MMU den Daten- und den Segmentbefehlspuffer-Status zugunsten der SCU.
  • Der Lesedatenpfad von Fig. 8 und der Schreibdatenpfad von Fig. 9 sind miteinander verbunden, um eine "Lesen- Modifizieren-Schreiben-Operation" zu erleichtern. Wenn ein Schreibbefehl an ein Speicher-Untersystem das Schreiben eines Bytes (d. h. eines partiellen Langworts) erfordert, ist es wesentlich, daß das MMC (70 in Fig. 3) zunächst den vollständigen Block vom Speicher liest, um ausreichende Daten für die Erzeugung von Prüfbits zu erhalten. Der Grund hierfür besteht darin, daß die Erzeugung von Prüfbits für Schreibdaten auf der Grundlage einer festen Anzahl von einem Block von Daten definierenden Bytes vorzugsweise 4 Bytes, ausgeführt wird. Wenn weniger als die minimale Anzahl von Bytes, hier 4 Bytes von Daten in den Speicher geschrieben werden, werden Daten an Speicherplätzen gespeichert, die nacheinander an den besonderen adressierten Speicherplatz angrenzen, der als erster im Schreibpfad gelesen wurde, und mit den zu schreibenden Daten gemischt, um eine minimale Anzahl von Bytes zu schaffen, die für die Prüfbiterzeugung notwendig sind.
  • Die erforderlichen Prüfbits werden anschließend auf der Grundlage der gemischten Daten erzeugt, bevor der vollständige Block von Daten, der die vom Speicher gelesenen Daten und die zu schreibenden Daten enthält, in den Speicher geschrieben wird. Die Integrität der Daten wird auf der Grundlage der für die gemischten Daten erzeugten Prüfbits aufrechterhalten.
  • In dem Diagramm von Fig. 8 werden die Lesedaten für die obenbeschriebene Mischoperation vom Speicher über den Byte-Mischpfad erhalten, der durch die Mischpuffer 149, 150 und durch den Byte-Misch-MUX 151 gebildet wird, von dem die Daten zum Schreibpfad-MUX 164 (Fig. 9) geliefert werden, um vor der Prüfbiterzeugung gemischt zu werden, um anschließend in den Speicher geschrieben zu werden. Dieser Typ einer Anforderung kann durch einen E/A- Schreibvorgang erzeugt werden, der ein Byte- Schreibvorgang sein kann. Während der Anfangfsstufen der Leseoperation werden die E/A-Schreibdaten durch den ersten Schreibpuffer 176 (siehe Fig. 9), den zweiten Schreibpuffer 178, durch den DRAM-Umgehungspfad, der durch den DRAM-Umgehungsmultiplexierer 140 von Fig. 8 definiert ist, und schließlich den zweiten Lesepuffer 142 übertragen. Eines der zwei Viererwörter wird anschließend vom Lesepuffer 142 durch den Wrap-Multiplexierer in das entsprechende MDP für die Byte-Mischung mit den E/A- Schreibdaten durch Mischpuffer 149, 150 und den Byte- Mischmultiplexierer 151 übertragen. Im wesentlichen werden die E/A-Schreibdatenbytes mit den benötigten Lesedatenbytes kombiniert, so daß neue Prüfbits erzeugt werden können. Nach der Prüfbiterzeugung sind die verfügbaren Daten bereit, in die MMU 36 geladen zu werden.
  • Die "Lesen-Modifizieren-Schreiben"-Operationsfolge wird begonnen durch die Übertragung von Befehlsinformationen von der Steuerlogik in der SCU (14 in Fig. 3) an die entsprechenden Segmentbefehlspuffer (180, 181 in Fig. 10) im MMC. Die MMC- und MCD-Module decodieren anschließend in Kombination die Befehlsinformationen (d. h. den Schreibbefehl) und die Informationen bezüglich der zu wählenden besonderen Anordnung (0 oder 1) von DRAMs und schicken die bezeichnete Adresse an die MMU, wobei sie mit der Zeilenadresse beginnen und mit der Spaltenadresse enden. Weiterhin werden von der SCU Statusbits empfangen und decodiert, wobei der DRAM-Lesedurchlauf-Zeitablauf begonnen wird. Unter der Steuerung des MMC schickt das MDP anschließend die E/A-Schreibdaten durch die MMU. Anschließend werden unter der kombinierten Steuerung der MMC- und MCD-Module die E/A-Schreibdaten in Schreibpuffern 176, 178 (Fig. 9) über den zugeordneten 1:8-DEMUX 174 empfangen. Die Daten werden dann durch die DRAM-Umgehung an die beiden Lesepuffer 143 bewegt. Die Daten werden anschließend durch den MUX 143 zum entsprechenden MDP für die Bytemischung übertragen.
  • Unter der Steuerung des MMC empfängt das jeweilige MDP die Schreibdaten von der MMU, prüft auf Fehler und führt Korrekturen aus, falls erforderlich, oder erzeugt geeignete Fehlersignale und mischt die Lesedatenbytes mit den E/A-Schreibdatenbytes in den E/A-Mischpuffern (149, 150 in Fig. 8), um ein gültiges Langwort zu erzeugen. Das MDP erzeugt außerdem sieben Prüfbits für jedes Langwort und setzt das Markierungsbit und überträgt schließlich eines oder zwei Viererwörter von Daten zur MMU, wie vom SCU- Befehlssignal gefordert war. Es können auch zusätzliche Fehlerangabebits wie etwa "Markierungs"-Bits für eine Doppelbit-Fehlererfassung an gespeicherten Daten, die erfaßte Doppelbitfehler enthalten, selbst wenn anschließend zusätzliche Einzelbit-Fehler auftreten, verwendet werden.
  • Von der MMU wird pro Taktzyklus ein Einzeldaten-Viererwort empfangen, wobei jedes solche Viererwort über den zugeordneten DEMUX 174 im Schreibpuffer (176, 178 in Fig. 9) geladen wird. Sämtliche gültigen Langwörter von Schreibdaten werden anschließend auf der Grundlage des geeigneten DRAM-Zeitablaufs in die DRAMs geladen. Die MMC- und MCD-Module vervollständigen die DRAM-Zeitablauffolge und aktualisieren schließlich den Zustand der Daten und der Segmentbefehlspuffer (180, 181) für die SCU.
  • Eine weitere Mischmodus-Speicheroperation wird als "Schreib-Lese-Datenoperation" bezeichnet, wobei in dieser Operation Daten zuerst an einen Platz geschrieben und dann vom selben Platz ausgelesen werden. Vorzugsweise werden während des Schreibzyklus der Operation nicht sämtliche die Speichersegmente bildenden 640 DRAMs beschrieben. Während der Lesephase der Operation werden jedoch sämtliche der 640 DRAMs gelesen. Eine typische Schreib-Lese-Operationsfolge wird durch die Übertragung von geeigneten Befehlsinformationen von der SCU zum gewählten Befehlspuffer im MMC begonnen. Die Übertragung der Daten zum Speicher-Untersystem wird durch die SCU erzielt, indem Daten zum MDP und Maskierungsinformationen zum MMC geschickt werden. Die MMC- und MCD-Module decodieren in Kombination die Befehlsinformationen (den Schreib-Lese-Befehl und die zugeordneten Index- und Anordnungswähl-Informationen). Die bezeichnete Adresse wird anschließend in das ausgewählte Speichersegment eingegeben, woraufhin der DRAM-Durchlauf-Zeitablauf unter der Steuerung des MMC begonnen wird. Die MCDs empfangen ein einzelnes Viererwort von Daten pro Taktzyklus und prüfen die Langwort-Parität in jeder Viererwort-Übertragung. Für jedes Langwort werden sieben Prüfbits erzeugt, wobei Daten vom MDP zur MMU übertragen werden.
  • Unter der Steuerung der MMC- und MCD-Module empfängt die MMU 80 Bits von Daten pro Taktzyklus und lädt die Daten durch den zugeordneten Demultiplexierer 174 in den Schreibpuffer (176 in Fig. 9). Die Daten werden anschließend zum Schreibpuffer 178 bewegt, wobei zum geeigneten DRAM-Zeitpunkt die Daten in die DRAMs geladen werden und der Schreibteil des DRAM-Zyklus abgeschlossen ist.
  • Anschließend beginnt der Leseteil des DRAM-Zyklus, wobei im geeigneten DRAM-Zeitpunkt die Lesedaten an den DRAMs verfügbar sind und in den Lesepuffer 141 (Fig. 8) geladen werden. Unter der Steuerung der MMC- und MCD-Module wird die DRAM-Ablauffolge abgeschlossen, ferner wird ein "Lese-Bereit"-Signal zur SCU gesendet. Jedes Viererwort wird anschließend durch die MDPs zur SCU übertragen, sobald von der SCU ein "SENDDATA"-Befehl empfangen worden ist. Unter der Steuerung des MMC empfangen die MDPs ein einzelnes Viererwort von Daten pro Taktzyklus von der MMU und prüfen auf Fehler und führen geeignete Einzelbit- Korrekturen aus, falls erforderlich, und erzeugen eine Langwort-Parität. Die Daten werden anschließend von den MDPs zur SCU übertragen, wobei das MMC anschließend den Segmentbefehlspuffer-Status für die SCU aktualisiert.
  • Eine nochmals weitere Speicheroperation wird als "Schreiben-Durchlassen-Datenoperation" bezeichnet. Diese Operation basiert auf dem gleichen Schreibzeitablauf wie im normalen Schreibzyklus, wobei während dieser Operation der DRAM-Umgehungspfad verwendet wird, um Daten direkt zu den DRAM-Lesepuffern (141, 142 in Fig. 8) durchzulassen, ummittelbar nachdem die DRAM-Schreibpuffer (176, 178) geladen worden sind. Da sämtliche Daten während des Schreibzyklus gültig sind, werden sämtliche die Segmente des Speichers bildenden DRAMs beschrieben, während die Daten, die sich in den DRAM-Lesepuffern befinden, in exakt der gleichen Weise wie in einer Leseoperation ausgeladen werden.
  • In Fig. 10 ist ein genaueres Blockschaltbild des MMC- Moduls 70 für die Verwendung in der ACU 34 der Fig. 2 und 3 gezeigt. Das MCC 70 enthält ein Paar von Befehlspuffern 180 und 181, wobei jedem der zwei Speichersegmente im MMU-Modul 36, mit dem die ACU verbunden ist, ein einzelner Befehlspuffer zugeordnet ist. Jeder Befehlspuffer ist vorzugsweise ein 16-Bit-Register, das Befehlssignale von der SCU annehmen kann, die Signale enthalten, die die adressierten Speichersegmente, die adresssierte Speicheranordnung, die ausgeführte spezifische Speicheroperation und die gewünschte Anzahl von zu übertragenden Viererwörtern von Daten angeben. Eine verständliche Auflistung der Befehlsbit-Bezeichnungen zum Steuern der Operation des Segmentbefehlspuffer ist oben angegeben worden. Das MCC 70 enthält außerdem ein Paar von Befehlsausführungslogik- Modulen 182 und 183, wobei jeder Logikmodul einem der vom MMC adressierbaren Segmente zugeordnet ist. Die Logikmodule 182, 183 nehmen Signale von der SCU an, die den Status des betreffenden Segments und den Status des zugeordneten Maskierungsdurchlauf angeben, der eine Bestätigung liefert, ob die zugehörigen Daten in den Speicher geschrieben werden sollen oder nicht.
  • Ein Datenpfad-Steuermodul 184 ist für die Erzeugung von Steuersignalen für die Operation der MDP-Module (74, 76 in den Fig. 3 und 4C) und für die Datenpfadsteuerung in den DDP-Modulen (106 in Fig. 5) auf der Grundlage von von der Befehlsausführungslogik 183 erzeugten Befehlen vorgesehen. Auf ähnlicher Basis ist auch ein Adressenpfad- Steuermodul 185 vorgesehen, der den Adressenabschnitt der angenommenen Speicherbefehle von den Befehlsausführungslogik-Modulen 182 und 183 annimmt, um den mit der SCU in Beziehung zu setzenden Index sowie das Zeilen/Spalten- Wählsignal zu erzeugen, das ebenfalls an die SCU weitergeleitet werden soll. Die Befehlsausführunglogik-Module 182 und 183 erzeugen außerdem Signale, die direkt zur SCU weitergeleitet werden und Befehle für das MCD-Modul 72 für das entsprechende Segment sowie Signale enthalten, die den Status des MMC sowie die Verfügbarkeit der entsprechenden Segmentpuffer für die Annahme von Speicherbefehlen von der SCU angeben. In Fig. 11 ist eine genaue diagrammartige Darstellung eines bevorzugten modularen Aufbaus eines MCD-Moduls 72 gezeigt, das für die Verwendung in der ACU 34 dieser Erfindung geeignet ist. Das MCD enthält ein Eingangszwischenspeicher/Startlogik-Modul 200 für die Annahme von Steuer- und Statusbefehlen vom MMC- Modul 70. Die zum Eingangszwischenspeicher 200 gelieferten Signale enthalten Befehle, die an zwei vom MCD-Modul gesteuerte Segmente (Segment 0 und Segment 1) gerichtet sind, das MMC-Statussignal und ein Schrittmodus-Freigabesignal (SM-Freigabesignal), das dem MCD-Modul anzeigt, daß eine besondere Speicheroperation im Operationsschrittmodus ausgeführt werden soll. Als Antwort auf die eingegebenen Steuersignale erzeugt das Eingangszwischenspeicher/Startlogik-Modul 200 einen entsprechenden Satz von Steuersignalen, der die Befehlssignale enthält, die den Durchlauf der Adressen-DRAMs einleiten.
  • Genauer wird ein Durchlaufbefehissignal für das Segment erzeugt und für eine DRAM-Steuereinrichtung 201 für das Segment 0 bereitgestellt; ein entsprechendes Zyklusbefehlssignal für das Segment 1 wird einer zweiten DRAM- Steuereinrichtung 202 für das Segment 1 bereitgestellt. Bei Empfang des Zyklusbefehls erzeugen die DRAM-Steuereinrichtungen 202 die DRAM-Steuersignale, die das Zeilenadressen-Wählsignal (RAS-Signal), das Spaltenadressen- Wählsignal (CAS-Signal) und das Schreibfreigabesignal (WE-Signal) enthalten, die für die Steuerung der Wirkung der in adressierten Segmenten in der MMU befindlichen DRAMs verwendet werden.
  • Das MCD-Modul 72 enthält außerdem eine eingebaute Selbsttest-Steuereinrichtung (BIST-Steuereinrichtung 203) für die Erzeugung von Steuer- und Statussignalen, wenn das Speicher-Untersystem in einem Selbsttest-Modus läuft, um die funktionale Integrität der verschiedenen Module des Untersystems zu prüfen. Genauer nimmt die BIST-Steuereinrichtung 203 die MMC-Statussignale und das Schrittmodus-Freigabesignal an, um einen entsprechenden Selbsttest-Befehl und Statussignale zusammen mit spezifischen Schrittmodus-Freigabesignalen für die Segmente 0 und 1 zu erzeugen. Die BIST-Steuereinrichtung erzeugt außerdem SM- Befehle einschließlich RAS-, CAS- und WE-Signalen für die Verwendung bei der Steuerung der DRAM-Operation in der MMU im Selbsttest-Modus.
  • Im MCD 72 ist eine Schrittmodus-Steuereinrichtung 204 vorgesehen, um SM-Zyklusbefehle anzunehmen, die von der Eingangszwischenspeicher/Startlogik 200 ausgegeben werden, und um entsprechende SM-Befehle zu erzeugen, die den Befehlen ähnlich sind, die von der BIST-Steuereinrichtung 203 ausgegeben werden und die CAS-, RAS- und WE-Signale enthalten, die bei der Steuerung der DRAM-Operation in der MMU im Schrittmodus verwendet werden. Die Schrittmodus-Steuereinrichtung 204 erzeugt außerdem getrennte SM- Statusbefehle für die Segmente 0 und 1. Die zwei Sätze von SM-Befehlen, die von der BIST-Steuereinrichtung 203 und von der Schrittmodus-Steuereinrichtung 204 erzeugt werden, werden an einen 2:1-Multiplexierer 205 geliefert, der die Wahl von SM-Befehlen von einem dieser Module auf der Grundlage des SM-Freigabesignals ermöglicht, welche vom MMC zum MCD weitergeleitet werden.
  • Die vom MUX 205 gewählten SM-Befehle werden an einen weiteren 2:1-Multiplexierer 206 geliefert, der außerdem die von der DRAM-Steuereinrichtung 201 erzeugten Befehissignale für das Segment 0 annimmt und die Wahl eines der eingegebenen Sätze von Befehlen auf der Grundlage des von der BIST-Steuereinrichtung 203 für das Segment 0 erzeugten SM-Freigabebefehls erlaubt. Der Ausgang des Multiplexierers 206 stellt die endgültigen RAS-, CAS- und WE- Befehle dar, die zur MMU weitergeleitet werden sollen, um die Operation der DRAMs im Segment 0 der MMU zu steuern.
  • Annlich werden SM-Befehle vom MUX 205 an einen 2:1-MUX 207 für das Segment 1 geliefert, der ebenfalls die von der entsprechenden DRAM-Steuereinrichtung 202 erzeugten Befehlssignale annimmt und die Wahl eines der zwei eingegebenen Sätze von Befehlen auf der Grundlage des von der BIST-Steuereinrichtung 203 für das Segment 1 erzeugten SM-Freigabebefehls ermöglicht. Der Ausgang des MUX 207 stellt die RAS-, CAS- und WE-Signale dar, die zur MMU weitergeleitet werden sollen, um die Operation der im Segment 1 befindlichen DRAMs der MMU zu steuern.
  • Im wesentlichen ermöglicht die obige Anordnung die Steuerung jedes der zwei DRAM-basierten Speichersegmente der MMU auf der Grundlage der im MCD angeordneten DRAM- Steuereinrichtungen 201 und 202 während der normalen Speicheroperation, während im Verlauf der Schrittmodus- Operation eine MCD-unabhängige DRAM-Steuerung ermöglicht wird. Weiterhin ermöglicht die Anordnung, daß im Verlauf der Schrittmodus-Operation DRAM-Steuersignale entweder von der Schrittmodus-Steuereinrichtung 204 oder von der BIST-Steuereinrichtung 203 ausgehen.
  • Die DRAM-Steuereinrichtungen 201 und 202 besitzen vorzugsweise die Form von Zustandsmaschinen, welche die Abfolge der DRAM-Steuersignale, d. h. der RAS-, CAS- und WE-Signale auf der Grundlage vordefinierter Eingangszyklus-Befehle steuern. Die DRAM-Steuereinrichtungen sind außerdem vorzugsweise vom programmierbaren Typ, so daß sie den Zeitablauf der DRAM-Steuersignale entsprechend einer vorgegebenen Korrespondenz mit der besonderen Frequenz, die für den Speichersystemtakt verwendet wird, steuern können. Es wird darauf hingewiesen, daß die zwei Segmente in einer MMU, die durch das MCD 72 gesteuert werden, über einen gemeinsamen Datenpfad verbunden sind (wie aus der Verschachtelungsanordnung von Fig. 2A hervorgeht). Daher ist den DRAM-Steuereinrichtungen eine Zuteilungs- oder Prioritätenlogik 208 zugeordnet, die die Verwendung eines gemeinsamen Datenpfads in konfliktfreier Weise erlaubt.
  • Jede der DRAM-Steuereinrichtungen 201 und 202 erzeugt außerdem ein Statussignal, das eine normale Speicheroperation der Steuereinrichtung für das entsprechende Speichersegrnent angibt. Diese Signale werden mit den Selbsttest-Statussignalen für das MCD in entsprechenden 2:1- Multiplexierern 209 bzw. 210 auf der Grundlage des von der BIST-Steuereinrichtung 203 erzeugten SM-Freigabesignals multiplexiert. Die Statussignale, die von den DRAM-Steuereinrichtungen erzeugt werden, werden während der normalen Speicheroperation zum MMC weitergleitet; während der Selbsttest-Operation wird das Selbsttest- Statussignal, das von der BIST-Steuereinrichtung 203 erzeugt wird, verwendet.
  • Weiterhin erzeugt jede DRAM-Steuereinrichtung 201 und 202 ein Umgehungs-Wählsignal, das bei der Ausführung der "Schreiben-Durchlassen"-Speicheroperation verwendet wird. Dieses Signal ermöglicht die Steuerung des Speicherschreibpfades in der Weise, daß der Zugriffspfad auf die DRAMs umgangen wird, so daß die in den Speicher geschriebenen Daten direkt von den Schreibpuffern gelesen werden können, ohne daß auf die DRAMs ein zweites Mal zugegriffen werden muß, um dieselben Daten zu lesen. Wie oben angegeben, wird das Umgehungs-Wählsignal an die MMU weitergeleitet und bewirkt, daß Daten, die eben in die DRAMs innerhalb eines gewählten Segments geschrieben worden sind und im entsprechenden Schreibpuffer vorhanden sind, im entsprechenden Lesepuffer zwischengespeichert werden, um sofort ausgelesen zu werden, ohne durch die DRAM- Zugriffsoperation zu gehen.
  • Als Antwort auf den Empfang der Segmentzyklusbefehle erzeugen die DRAM-Steuereinrichtungen 201 und 202 ein Steuersignal, das die Zwischenspeicherung der Daten von den DRAMs im entsprechenden Eingangslesepuffer bewirkt, um eine Datenlesefolge wie mit Bezug auf Fig. 8 beschrieben zu beginnen.
  • In Fig. 12 ist eine genauere Darstellung einer besonderen modularen Konfiguration des DDP-Moduls 106 von Fig. 6 für die Verwendung gemäß der vorliegenden Erfindung gezeigt. Wie in Fig. 12 gezeigt, werden die in das DDP-Modul 106 eintretenden Schreibdaten in einem ersten Schreibpuffer 220 auf der Grundlage eines in der MMU erzeugten Schreibwählsignals zwischengespeichert. Wenn die Daten geschrieben werden, werden sie vorzugsweise mit fünf Bits pro Zeitpunkt getaktet, ferner besitzt das Schreibwählsignal vorzugsweise die Form eines 3-Bit-Signals, das in eine Decodierereinheit 221 anhand eines Schreibaktivierungssignals aktiviert wird, das ebenfalls im MMU-Modul erzeugt wird. Um die ankommenden 5-Bit-Gruppen von Daten aufzunehmen, ist der Schreibpuffer 220 mit mehreren 5- Bit-Zwischenspeichern versehen. Vorzugsweise sind acht Gruppen von Zwischenspeichern vorgesehen, so daß bis zu 40 Bits von Daten im Schreibpuffer 220 zwischengespeichert werden können. Jede ankommende 5-Bit-Gruppe von Daten wird in einer ausgewählten Gruppe von Zwischenspeichern auf der Grundlage eines Ladefreigabesignals zwischengespeichert, das durch die Decodierereinheit 221 als Antwort auf das Schreibwählsignal bereitgestellt wird, das in die Decodierereinheit durch das Schreibaktivierungssignal getaktet wird.
  • Die 40 Bits der im ersten Schreibpuffer 220 gespeicherten Daten werden anschließend in einem zweiten Schreibpuffer 222 auf der Grundlage eines in der MMU erzeugten und dem Puffer 222 bereitgestellten Schreibfreigabesignal in Verbindung mit dem Schreibaktivierungssignal gespeichert. Die Schreibdaten vom Puffer 222 werden dann nach einer geeigneten Pegelübersetzung (typischerweise zwischen der für die DRAMs verwendeten TTL-Logik und der im allgemeinen in den Speichersystem-Modulen verwendeten ICL-Logik) mittels einer Pegelübersetzungseinheit 223 parallel in die DRAMs übertragen, die sich im entsprechenden Speichersegment befinden. Was den Lesedatenpfad betrifft, so werden zunächst Daten von adressierten DRAMs mittels einer Pegelübersetzungseinheit 224 in kompatible Logikpegel übersetzt und an einen 2:1-Multiplexierer 225 geliefert, der außerdem die 40-Bit-Schreibdaten empfängt, die vom Schreibpuffer 222 erzeugt werden, bevor sie im Speicher gespeichert werden. Der Multiplexierer 225 wird durch das vom MCD-Modul (siehe Fig. 11) erzeugte DRAM-Umgehungssignal indexiert, wobei dann, wenn festgestellt wird, daß das Umgehungssignal bejahend ist, die vom Schreibpuffer 222 ausgegebenen Schreibdaten in einen ersten Lesepuffer 226 übertragen werden, um zur SCU weitergeleitet zu werden. Falls andererseits das DRAM-Umgehungssignal nicht bejahend ist, überträgt der Multiplexierer 225 die 40- Bit-Daten, die von den DRAMs gelesen werden, zum ersten Lesepuffer 226 auf der Grundlage entweder des Schrittmodus-Lesefreigabesignals, das vom DCA-Modul erzeugt wird, wenn das Speichersystem im Operations-Schrittmodus betrieben wird, oder auf der Grundlage des Lesefreigabesignals für den Puffer 226, das vom MCD-Modul (siehe Fig. 11) Blöcke (206, 207) während der normalen Speicheroperation erzeugt wird.
  • Anschließend werden Daten vom Lesepuffer 226 auf der Grundlage eines Schreibfreigabesignals für den Puffer als 40-Bit-Datenstrom in einen zweiten Lesepuffer 227 übertragen. Der Lesepuffer 227 ist dem ersten Schreibpuffer 224 ähnlich und enthält mehrere Gruppen von Zwischenspeichern. Jede Gruppe von Zwischenspeichern kann 5 Bits von Daten auf der Grundlage des Lesefreigabesignals für den Puffer in Verbindung mit dem von der MMU erzeugten Lesewählsignal speichern. Die 40 Bits der zwischengespeicherten Daten vom Puffer 227 werden an einen 5-Bit-8:1- Multiplexierer 228 übertragen, von wo die Daten an einen 5-Bit-Ausgangszwischenspeicher übertragen werden, um eventuell als Lesedaten an die SCU auf der Grundlage eines Leseaktivierungssignals gesendet zu werden, das durch die MMU weitergeleitet wird. Das Leseaktivierungssignal ist vorzugsweise ein gepuffertes Taktsignal, das günstigerweise aus dem von der SCU bereitgestellten programmierbaren Taktgeber (66 in Fig. 2) entnommen werden kann.
  • Das Leseaktivierungssignal taktet auch das Lesewählsignal in den Multiplexierer 228, um die besondere 5-Bit-Gruppe von zwischengespeicherten Daten zu identifizieren, die zunächst durch den Ausgangszwischenspeicher 229 an die SCU übertragen werden soll; das Lesewählsignal dient daher dazu, die Weise zu steuern, in der die Daten auf der Grundlage des ersten Viererworts, das von der den Speicherbefehl ausgebenden Systemeinheit angefordert wurde, an die SCU ausgegeben werden.
  • In Fig. 13 ist eine schematische Darstellung des im DCA- Modul (116 in den Fig. 5 und 68) befindlichen Steuersignalwegs, allgemein mit 230 bezeichnet, für die Verwendung in den Speichermodulen (100 in Fig. 5) der MMU (36 in Fig. 2) gezeigt. Das DCA-Modul arbeitet im wesentlichen als Einrichtung zum Puffern von Steuersignalen für die DRAM-basierten Speichersegmente und für die Erzeugung entsprechender Befehlssignale für die Operation der verschiedenen Module, die eine gegebene MMU-Einheit enthält. Genauer enthält das DCA einen 2:1-Multiplexierer 231 für die Annahme sämtlicher DRAM-Steuersignale, die vom MCD- Modul in der ACU erzeugt werden (wie oben im einzelnen beschrieben worden ist). Weiterhin empfängt der Multiplexierer 231 auch Nicht-MMC-Steuersignale wie etwa jene, die von der Schrittmodus-Steuereinrichtung 204 und von der BIST-Steuereinrichtung 203 in Fig. 11 erzeugt werden. Die DRAM-Steuersignale vom MCD werden an den MUX 231 geliefert, nachdem sie durch eine Pegelübersetzungseinrichtung 232 in einen geeigneten Logikpegel übersetzt worden sind.
  • Ein Freigabesignal, das während der Schrittmodusoperation oder während der Selbsttest-Operation bejaht wird, wird zum MUX 231 geliefert und dient als Grundlage für die Freigabe der Nicht-MCD-DRAM-Steuersignale, wenn das Speicher-Untersystem außerhalb des normalen Operationsmodus betrieben wird. Diese Signale werden anschließend durch eine geeignete Pegelübersetzungseinrichtung 233 geschickt und sind verfügbar, um in entsprechende Speichersegmente eingegeben zu werden. Während des normalen Operationsmodus wählt der Multiplexierer 231 die DRAM-Steuersignale aus, die vom MCD als dessen Ausgang erzeugt werden, wobei diese Signale anschließend einer Pegelübersetzung unterworfen werden und verfügbar sind, um in die in entsprechenden Speichersegmenten befindlichen DRAMs eingegeben zu werden.
  • Das DCA-Modul ist so beschaffen, daß es die MCD-DRAM- Steuersignale nach einer Pegelübersetzung in einem Befehlspuffer 34 empfangen kann, der auch andere Systemsteuerbefehle einschließlich Befehlen zum Freigeben des Schrittsteuerungs-MUX 231 annimmt, um die Datenübertragungs-Zwischenspeicher während der Schrittmodus-Operation freizugeben und um Auffrischungsmerker zu empfangen, die die Notwendigkeit von Auffrischungsoperationen in den DRAMs angeben. Der Befehlspuffer 234 ist so beschaffen, daß er als Antwort auf den Empfang der MCD- und der Systemsteuerbefehle und auf der Grundlage von im voraus definierten Befehlsausgängen, die im Befehlspuffer 234 gespeichert sind, entsprechende Befehlsausgänge erzeugt, die ausgewählten Eingangsbefehlen entsprechen. Die Befehlsausgänge, die vom Befehlspuffer 234 erzeugt werden, enthalten Signale, die den Bereitschaftsoperationsmodus, die Tatsache, daß ein gegebenes Modulin der MMU in einem gegebenen Abschnitt des Speicherzyklus beschäftigt ist, und die Freigabe des Selbsttest-Operationsmodus des Speicher-Untersystems angeben.
  • Fig. 14 zeigt eine schematische Darstellung des im DCA- Modul (116 in den Fig. 5 und 68) befindlichen Adressenpfades, allgemein mit 240 bezeichnet, gemäß der bevorzugten Speicherkonfiguration der Erfindung sowie die Weise, in der die Speicheradressen von diesem Modul gehandhabt werden. Der DCA-Adressenpfad 240 enthält einen ersten Adressenzwischenspeicher 241 für die Annahme der von der MMU bereitgestellten Speicheradressen in Kombination mit entsprechenden Adressenparitätsbits nach einer geeigneten Pegelübersetzung durch Übersetzungseinrichtungen 242 bzw. 243. Die Adressendaten werden dann auf der Grundlage des von der MMC-Einheit für das entsprechende Speichersegment nach dem Durchgang durch die Pegelübersetzungseinrichtung 244 in den Adressenzwischenspeicher 241 getaktet. Speicheradressendaten vom Zwischenspeicher 241 werden anschließend an einen Adressenmultiplexierer 245 für das entsprechende Segment (in diesem Fall das Segment 0) übertragen, von wo sie verfügbar sind, um an das adressierte Speichersegment weitergeleitet zu werden, nachdem sie von einer Pegelübersetzungseinrichtung 246 verarbeitet worden sind.
  • Die Speicheradressendaten am Eingangsende werden ebenfalls an einen zweiten Adressenzwischenspeicher 247 geliefert, der dem zweiten Segment des Speichers in der MMU entspricht. Diese Daten werden auf der Grundlage des vom MMC des entsprechenden Segments erzeugten Adressenfreigabesignals nach einer Pegelübersetzung durch die Übersetzungseinrichtung 248 (in diesem Fall Segment 1) in den Zwischenspeicher 247 getaktet. Die Adressendaten vom Zwischenspeicher 247 werden anschließend an einen Multiplexierer 249 für das Segnent 1 geliefert, wo die Daten verfügbar sind, um an das entsprechende Speichersegment weitergeleitet zu werden, nachdem sie durch eine geeignete Pegelübersetzungseinrichtung 250 gegangen sind.
  • Während des Normalbetriebs werden Adressenparitätsdaten in einen der Adressenzwischenspeicher 241 und 247 in Abhängigkeit vom besonderen Speichersegment, das adressiert wird, geschickt. Vorzugsweise wird die Zeilenadresse mit Vorrang vor der Spaltenadresse gespeichert. Die Adressendaten werden anschließend durch den folgenden der Multiplexierer 245, 249 geschickt und sind nach einer Pegelübersetzung verfügbar, um an das gewünschte Segment weitergeleitet zu werden. Die Zeilenadresse wird hinausgetaktet, außerdem ist nach einer vorgegebenen Verzögerung die Spaltenadresse verfügbar. Während der Selbsttest- Operation wird im wesentlichen die gleiche Folge wie oben beschrieben ausgeführt. Die Adressendaten, die in die Adressenzwischenspeicher geliefert werden, sind Speicheradressen, die vom MMU-Modul durch einen herkömmlichen Adressenmuster-Generator (nicht gezeigt) für Testzwecke erzeugt werden. Die nachfolgenden Multiplexierungs- und Pegelübersetzungsoperationen, die an den gelieferten Daten ausgeführt werden, stimmen mit denen, die während des normalen Betriebsmodus ausgeführt werden, überein.
  • Die Adressendaten von den Zwischenspeichern 241 und 247, die dem Segment 0 bzw. dem Segment 1 entsprechen, können auch als getrennte Eingänge an einen Schrittmodus- Multiplexierer 251 geliefert werden, der einen getrennten Adressenpfad bereitstellt, auf dem Adressendaten während der Schrittmodus-Operation von der DRAM- Steuereinrichtung weggeführt werden können. Während der Schrittmodus- Operation arbeitet der Multiplexierer 251 in der Weise, daß er selektiv Zeilen- und Spaltenadressen an entsprechende Speichersegmente liefert. Genauer werden im Schrittmodus Zeilen- und Spaltenadressen nicht nacheinander im selben Adressenspeicher gespeichert. Statt dessen wird die ankommende Speicheradresse in der Weise aufgeteilt, daß die Zeilen- und Spaltenadressen voneinander getrennt werden und getrennt an die Adressenzwischenspeicher geliefert werden. Die Zeilenadresse wird beispielsweise im Zwischenspeicher 241 gespeichert, während die Spaltenadresse im Zwischenspeicher 247 gespeichert wird. Sowohl die Zeilenadresse als auch die Spaltenadresse wird anschließend zwischengespeichert und durch den Schrittmodus-Multiplexierer an das bezeichnete Speichersegment (Segment 0 oder 1) geliefert, nachdem es vom entsprechenden Adressenmultiplexierer (245 oder 249) und vom entsprechenden Pegelübersetzer (246 oder 250) verarbeitet worden ist.
  • In Fig. 15 ist ein vereinfachtes Flußdiagramm gezeigt, das allgemein mit 260 bezeichnet ist, und die Schnittstellenwirkung veranschaulicht, die gemäß dem System dieser Erfindung bei der Ausführung einer typischen "Lesenvom-Speicher"-Anforderung erzeugt wird.
  • Die Schnittstellenwirkung wird im Schritt 261 durch die Übertragung eines Signals von der ACU an die SCU begonnen, welches anzeigt, daß ein Befehlspuffer für die Annahme von Speicherbefehlen verfügbar ist. Im Schritt 262 wird ein Speicherbefehl, der die Priorität besitzt, um von der SCU ausgeführt zu werden, zusammen mit dem entsprechenden Indexfeld zur ACU übertragen. Der empfangene Speicherbefehl wird im Schritt 263 geprüft, um festzustellen, ob der Befehl von einer System-CPU oder von einer E/A-Einheit ausgegangen ist, so daß dem geeigneten Protokoll von Beschränkungen, das entweder auf eine CPUoder eine E/A-Speicheroperation anwendbar ist, gefolgt werden kann. Falls, genauer, die anfordernde Einheit eine CPU ist, wird der Schritt 264 begonnen, wobei das Speichersystem dem CPU-Beschränkungsprotokoll folgt, das vorzugsweise die Beschränkung von Schreibübertragungen auf acht Viererwörter in einem Zeitpunkt sowie die Spezifikation eines Einzelmaskierungsbits für jedes Langwort von übertragenen Daten enthält.
  • Falls die anfordernde Einheit eine E/A-Einheit ist, wird der Schritt 265 ausgeführt, in dem das E/A-Protokoll von Beschränkungen befolgt wird, indem Schreibübertragungen vorzugsweise für irgendeines von 1, 2, 4, 6 oder 8 Viererwörtern zulässig ist. Weiterhin wird vorzugsweise ein Einzelmaskierungsbit für jedes Byte von übertragenen Daten im Fall E/A-Operationen spezifiziert.
  • Anschließend wird im Schritt 266 der angenommene Speicherbefehl decodiert, um einen Hinweis unter anderem auf das besondere Segment und die Speicheranordnung, auf die zugegriffen wird, zu schaffen.
  • Im Schritt 267 wird geprüft, ob das MCD-Modul für die Ausführung von Speicherbefehlen verfügbar ist; das MCD- Modul erzeugt auf dieser Stufe einen Hinweis, ob das erforderliche Speichersegment verfügbar ist oder nicht, wobei dann, wenn das Adressenspeichersegment verfügbar ist, die entsprechende Speicheradresse unter Verwendung des Indexfeldes und des Zeilen/Spalten-Wählsignals, das zur SCU zurückgeleitet wird, in die MMU geschickt wird.
  • Die DRAM-Steuerung des Speichermoduls wird anschließend im Schritt 269 mittels der vom MCD erzeugten DRAM- Steuersignale begonnen. Im Schritt 270 wird von den DCA- Modulen die Pufferung der MCD-erzeugten Steuersignale sowie die geeignete Pegelübersetzung ausgeführt.
  • Lesedaten von adressierten Speichersegmenten werden anschließend im Lesepuffer des Speichermoduls im Schritt 271 zwischengespeichert. Nach der Zwischenspeicherung der DRAM-Daten wird im Schritt 272 die MMC-Lesedaten- Übertragungsfolge ausgeführt, anschließend wird ein "Daten bereit"-Hinweis im Schritt 273 vom MMC an die SCU übertragen.
  • Wenn die SCU bereit ist, die angeforderten Daten anzunehmen, wird im Schritt 274 an das MMC ein "Datenübertragungs"-Hinweissignal übertragen. Dies hat die Übertragung der angeforderten Lesedaten an die SCU durch die DDP-Module im Schritt 275 zusammen mit den Informationen, die die durch den ausgeführten Speicherbefehl bezeichneten Startdatenbits angeben, zur Folge. Auf dieser Stufe werden Lesedaten in die Systemeinheit übertragen, von der der Speicherbefehl ausging, anschließend ist die ACU im Schritt 276 verfügbar, um den nächsten Speicherbefehl der von der SCU erzeugten Prioritätsliste zu empfangen und auszuführen.
  • Die Fehlererfassung und -korrektur in den von der ACU verarbeiteten und weitergeleiteten Signalen wird durch eine im ACU-Modul vorhandene (nicht gezeigte) Standard- ECC-Logik erreicht. Die Fehlererfassungslogik ermöglicht die Erfassung von einzelnen intermittierenden Fehlern und arbeitet anhand von Paritätsbits, die sämtlichen Signalgruppen mit Ausnahme derjenigen, die zwischen der ACU und der MMU laufen, angefügt sind. Insbesondere sind sämtliche Signalgruppen, die zwischen der SCU und der ACU geleitet werden, sowie jene zwischen den modularen Makrozellen-Arrays in der ACU selbst durch Parität geschützt. Der direkte Adressenpfad von der SCU an die MMU ist ebenfalls durch Paritätsbits gestützt. Der Steuerpfad zwischen der ACU und der MMU ist mit einer Paritätsprüfung versehen, während der Datenpfad zwischen der ACU und der MMU mit ECC-Prüfbits versehen ist; ungerade Paritätsberechnungen werden von der MMU ausgeführt und an die ACU zurückgeleitet, weil das Fehlen des Systemttakt-Zeitablaufs die Zwischenspeicherung von Steuersignalen schwierig macht.
  • Die Korrektur von Fehlern, genauer die Einzelbit-Fehlerkorrektur und die Doppelbit-Fehlerkorrektur an den gespeicherten Daten wird durch eine in der ACU enthaltene Standard-ECC-Logik ausgeführt. Ein Bericht über Datenfehler erfolgt durch die Verwendung von Fehlerregistern, die sich in der ACU befinden, deren Inhalte nach der Erfassung von Fehlern über den obenbeschriebenen Datenpfad zur SPU 18 (Fig. 2) über den Steuerlogikabschnitt der SCU übertragen werden. Die ACU stellt die Systemintegrität sicher, indem sie den gewöhnlichen Berichtmechanismus (d. h. einen Fehlerregister-Schutzprozeß) umgeht, wenn schwerwiegende Fehler wie etwa solche, die sich auf Steuer- und Adressensignale beziehen, erfaßt werden.
  • Um dies zu erreichen, ist die ACU so beschaffen, daß sie eine einzelne Ausgangssignalleitung in jedem Makrozellenarray-Modul besitzt, auf dem die modulare ACU-Struktur basiert, wobei über diese Signalleitung schwerwiegende Fehler berichtet werden. Sämtliche Signale bezüglich schwerwiegender Fehler werden an einen einzelnen Makrozellenarray-Modul, vorzugsweise das MMC 70 in der ACU 34 (Fig. 3) geleitet, um sie effizient zu handhaben. Das MMC 70 leitet ein Signal bezüglich eines berichteten schwerwiegenden Fehlers direkt an die geeignete Steuerlogik in der SCU, die ihrerseits die Signale an die Wartungsprozessoreinheit 18 weiterleitet Durch ihre Steuerleitungen bewirkt die SPU 18 (Fig. 2), daß die Systemtakte angehalten werden und daß das System über geeignete, von der SPU ausgehende Quittierungen in einem Operationsabtastmodus arbeitet, in dem Speichermodule in den Bereitschaftsbetrieb versetzt werden und Auffrischzyklen in den DRAMs aktiviert werden, so daß die Inhalte des Speichers nicht zerstört werden. Der obige Prozeß stellt sicher, daß schwerwiegende Fehler sofort berichtet werden, und ermöglicht, daß Behebungsmaßnahmen im Abtastoperationsmodus unternommen werden.

Claims (6)

1. Multiprozessor-Computersystern, mit mehreren Zentraleinheiten (12); einem Systemspeicher (16) zum Speichern von Daten, wobei der Systemspeicher eine Speichereinheit umfaßt, die Speichersegmente enthält, auf die unabhängig zugegriffen werden kann; und einer Einrichtung (14) zum Setzen von Prioritäten für Speicherzugriffsanforderungen von den Zentraleinheiten an den Systemspeicher, um den Zentraleinheiten zu ermöglichen, während einer gleichzeitigen Operation der Zentraleinheiten gemeinsam auf den Systemspeicher zuzugreifen; dadurch gekennzeichnet, daß die Speichereinheit enthält: eine Einrichtung zum Erzeugen eines dedizierten Lesedatenpfades für die Übertragung von Lesedaten von adressierten Speichersegmenten zu den Zentraleinheiten; einer Einrichtung zum Erzeugen eines dedizierten Schreibdatenpfades für die Übertragung von von den Zentraleinheiten empfangenen Schreibdaten an adressierte Speichersegmente; eine Einrichtung zum Erzeugen eines dedizierten Adressenpfades für die Übertragung von Speicheradressen von den Zentraleinheiten, um adressierte Speichersegnente zu identifizieren; und eine Einrichtung (140) zum Lesen von Daten, die gerade in adressierte Segmente des Speichers geschrieben werden, ohne auf adressierte Speichersegmente zuzugreifen, indem Schreibdaten vom Schreibdatenpfad zum Lesedatenpfad übertragen werden, so daß die übertragenen Schreibdaten anschließend als Lesedaten an die Zentraleinheiten übertragen werden können.
2. Multiprozessorsystem nach Anspruch 1, bei dem jedes der Speichersegmente des Systemspeichers (16) mehrere DRAM-Anordnungen enthält, wobei die Anordnungen Speicheradressen besitzen, die an Grenzen von Speicheradressenblöcken mit vorgegebener Größe verschachtelt sind.
3. Multiprozessorsystem nach Anspruch 1 oder Anspruch 2, bei dem die Einrichtung zum Erzeugen des Lesedatenpfades enthält: eine Einrichtung zum Zugreifen auf adressierte Segmente und auf Anordnungen des Speichers, um darin gespeicherte Daten wiederzugewinnen; eine Einrichtung zum Übersetzen der wiedergewonnenen Daten in bevorzugte Logikpegel; und eine Einrichtung zum Übertragen von ausgewählten Gruppen der gespeicherten Daten in Übereinstimmung mit einer gewählten Reihenfolge an die Zentraleinheiten (12).
4. Multiprozessorsystem nach irgendeinem der vorangehenden Ansprüche, bei dem die Einrichtung zum Erzeugen des Schreibdatenpfades enthält: eine Einrichtung zum Annehmen und Speichern von Daten, die von den Zentraleinheiten in wahlweise geordneten Datengruppen in den Speicher geschrieben werden sollen; eine Einrichtung zum Übersetzen der Daten in bevorzugte Logikpegel; und eine Einrichtung zum Zugreifen auf adressierte Segmente und Anordnungen des Speichers, um die in den Speicher zu schreibenden Daten darin zu speichern.
5. Multiprozessorsystem nach irgendeinem der vorangehenden Ansprüche, bei dem der Systemspeicher (16) ferner eine Einrichtung zum Erzeugen von Steuersignalen enthält, um die Operation der den Lesedatenpfad erzeugenden Einrichtung und der den Schreibdatenpfad erzeugenden Einrichtung zu steuern.
6. Multiprozessorsystem nach Anspruch 5, bei dem der Systemspeicher (16) ferner enthält: eine Einrichtung zum Annehmen von Steuersignalen für die Systemspeicher-DRAMS;
eine Einrichtung zum Erzeugen entsprechender Speicher steuerbefehle als Antworl darauf; und eine Einrichtung zum Übertragen ausgewähller DRAM-Steuersignale an entsprechende adressierte Speichersegmente.
DE68926036T 1989-02-03 1989-09-13 Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher Expired - Fee Related DE68926036T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/306,404 US5043874A (en) 1989-02-03 1989-02-03 Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory

Publications (2)

Publication Number Publication Date
DE68926036D1 DE68926036D1 (de) 1996-04-25
DE68926036T2 true DE68926036T2 (de) 1997-01-02

Family

ID=23185151

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68926036T Expired - Fee Related DE68926036T2 (de) 1989-02-03 1989-09-13 Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher

Country Status (7)

Country Link
US (1) US5043874A (de)
EP (1) EP0380855B1 (de)
JP (1) JPH02208771A (de)
AT (1) ATE135833T1 (de)
AU (1) AU628528B2 (de)
CA (1) CA1323929C (de)
DE (1) DE68926036T2 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807609B1 (en) * 1989-12-04 2004-10-19 Hewlett-Packard Development Company, L.P. Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system
US5251310A (en) * 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
US5367642A (en) * 1990-09-28 1994-11-22 Massachusetts Institute Of Technology System of express channels in an interconnection network that automatically bypasses local channel addressable nodes
US5247643A (en) * 1991-01-08 1993-09-21 Ast Research, Inc. Memory control circuit for optimizing copy back/line fill operation in a copy back cache system
CA2065992A1 (en) * 1991-06-07 1992-12-08 Jorge Eduardo Lenta Personal computer with enhanced memory access and method
JP2672916B2 (ja) * 1991-12-13 1997-11-05 富士通株式会社 アレイディスク装置のデータチェック方法
AU3330793A (en) * 1991-12-23 1993-07-28 Intel Corporation Interleaved cache for multiple accesses per clock in a microprocessor
US5265212A (en) * 1992-04-01 1993-11-23 Digital Equipment Corporation Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types
EP0613088A1 (de) * 1993-02-24 1994-08-31 Digital Equipment Corporation Verfahren zur Speicherverschachtelung und dadurch verschachtelte Speichersysteme
CA2118662C (en) * 1993-03-22 1999-07-13 Paul A. Santeler Memory controller having all dram address and control signals provided synchronously from a single device
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
US5464435A (en) * 1994-02-03 1995-11-07 Medtronic, Inc. Parallel processors in implantable medical device
US5617534A (en) * 1994-02-16 1997-04-01 Intel Corporation Interface protocol for testing of a cache memory
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
TW304254B (de) * 1994-07-08 1997-05-01 Hitachi Ltd
WO1996011440A1 (en) * 1994-10-06 1996-04-18 Virc, Inc. Shared memory system
US5590299A (en) * 1994-10-28 1996-12-31 Ast Research, Inc. Multiprocessor system bus protocol for optimized accessing of interleaved storage modules
US5596740A (en) * 1995-01-26 1997-01-21 Cyrix Corporation Interleaved memory conflict resolution with accesses of variable bank widths and partial return of non-conflicting banks
US5875470A (en) * 1995-09-28 1999-02-23 International Business Machines Corporation Multi-port multiple-simultaneous-access DRAM chip
US5663924A (en) * 1995-12-14 1997-09-02 International Business Machines Corporation Boundary independent bit decode for a SDRAM
US5761727A (en) * 1996-04-02 1998-06-02 United Microelectronics Corporation Control apparatus for a memory architecture using dedicated and shared memory segments
US6041379A (en) * 1996-10-04 2000-03-21 Northrop Grumman Corporation Processor interface for a distributed memory addressing system
US5946710A (en) * 1996-11-14 1999-08-31 Unisys Corporation Selectable two-way, four-way double cache interleave scheme
US5931938A (en) * 1996-12-12 1999-08-03 Sun Microsystems, Inc. Multiprocessor computer having configurable hardware system domains
US5960455A (en) * 1996-12-30 1999-09-28 Unisys Corporation Scalable cross bar type storage controller
US6216240B1 (en) * 1997-06-26 2001-04-10 Samsung Electronics Co., Ltd. Merged memory and logic (MML) integrated circuits including memory test controlling circuits and methods
US5872993A (en) * 1997-12-01 1999-02-16 Advanced Micro Devices, Inc. Communications system with multiple, simultaneous accesses to a memory
US6128307A (en) * 1997-12-01 2000-10-03 Advanced Micro Devices, Inc. Programmable data flow processor for performing data transfers
US6012136A (en) * 1997-12-01 2000-01-04 Advanced Micro Devices, Inc. Communications system with a configurable data transfer architecture
DE69943402D1 (de) * 1998-02-04 2011-06-16 Panasonic Corp Speichersteuerungseinheit und -verfahren und Medium mit Ausführungsprogramm
US6173367B1 (en) * 1999-05-19 2001-01-09 Ati Technologies, Inc. Method and apparatus for accessing graphics cache memory
EP1067461B1 (de) * 1999-07-08 2013-04-24 Texas Instruments France Vereinheitlichtes Speicherverwaltungssystem für heterogene Multiprozessor-Architektur
US7509391B1 (en) 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US6748480B2 (en) * 1999-12-27 2004-06-08 Gregory V. Chudnovsky Multi-bank, fault-tolerant, high-performance memory addressing system and method
US6381669B1 (en) * 1999-12-27 2002-04-30 Gregory V. Chudnovsky Multi-bank, fault-tolerant, high-performance memory addressing system and method
US6760743B1 (en) 2000-01-04 2004-07-06 International Business Machines Corporation Instruction memory system for multi-processor environment and disjoint tasks
US7788642B2 (en) * 2005-05-16 2010-08-31 Texas Instruments Incorporated Displaying cache information using mark-up techniques
JP4617282B2 (ja) * 2006-08-31 2011-01-19 富士通株式会社 負荷発生装置及び負荷試験方法
US7908530B2 (en) * 2009-03-16 2011-03-15 Faraday Technology Corp. Memory module and on-line build-in self-test method thereof for enhancing memory system reliability
US8614920B2 (en) * 2012-04-02 2013-12-24 Winbond Electronics Corporation Method and apparatus for logic read in flash memory
US9595350B2 (en) * 2012-11-05 2017-03-14 Nxp Usa, Inc. Hardware-based memory initialization
US20140258780A1 (en) * 2013-03-05 2014-09-11 Micron Technology, Inc. Memory controllers including test mode engines and methods for repair of memory over busses used during normal operation of the memory

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1394431A (en) * 1971-06-24 1975-05-14 Plessey Co Ltd Multiprocessor data processing system
US4037210A (en) * 1973-08-30 1977-07-19 Burroughs Corporation Computer-peripheral interface
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4449183A (en) * 1979-07-09 1984-05-15 Digital Equipment Corporation Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
US4371929A (en) * 1980-05-05 1983-02-01 Ibm Corporation Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory
US4500958A (en) * 1982-04-21 1985-02-19 Digital Equipment Corporation Memory controller with data rotation arrangement
US4543626A (en) * 1982-12-06 1985-09-24 Digital Equipment Corporation Apparatus and method for controlling digital data processing system employing multiple processors
US4543628A (en) * 1983-01-28 1985-09-24 Digital Equipment Corporation Bus for data processing system with fault cycle operation
CA1221464A (en) * 1983-12-26 1987-05-05 Hidehiko Nishida Data processor system having improved data throughput of multiprocessor system
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
JPS6289149A (ja) * 1985-10-15 1987-04-23 Agency Of Ind Science & Technol 多ポ−トメモリシステム
US4876643A (en) * 1987-06-24 1989-10-24 Kabushiki Kaisha Toshiba Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests

Also Published As

Publication number Publication date
AU628528B2 (en) 1992-09-17
AU5394290A (en) 1991-12-19
US5043874A (en) 1991-08-27
CA1323929C (en) 1993-11-02
EP0380855A3 (de) 1991-02-06
EP0380855B1 (de) 1996-03-20
JPH02208771A (ja) 1990-08-20
DE68926036D1 (de) 1996-04-25
EP0380855A2 (de) 1990-08-08
ATE135833T1 (de) 1996-04-15

Similar Documents

Publication Publication Date Title
DE68926036T2 (de) Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE69031367T2 (de) Blockübertragungs- und Koprozessorschnittstellenbefehl
DE3887324T2 (de) Speicheranordnung.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE69131734T2 (de) Datenprozessor mit verschachteltem DRAM-Speicher
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE69701078T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE69323790T2 (de) Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
DE3782335T2 (de) Speichersteuersystem.
DE3750107T2 (de) Cachespeicherkohärenzsteuerung mit einem Speicher, der ein laufendes Lesen anzeigt.
DE3854368T2 (de) Cachespeicher mit einer Elastizität in der Verarbeitung verschiedener Adressenfehler.
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE3751616T2 (de) Parallel-Grossrechner.
DE2944419C2 (de)
DE69024078T2 (de) Mehrprozessoranordnung mit Vervielfältigung von globalen Daten und mit zwei Stufen von Adressübersetzungseinheiten
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE69320847T2 (de) Verfahren und Anordnung zur Ausführung von Prozessen in einem Multiprozessor-System
DE69230211T2 (de) Integrierter Speicher, Verwaltungsverfahren und resultierendes Informationssystem
DE68928040T2 (de) Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren
DE3587031T2 (de) Zugriffpruefungseinrichtung fuer digitale datenverarbeitungsanordnung, welche einen speicher mit seitenabruf hat.

Legal Events

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