-
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.