-
Die Erfindung betrifft allgemein digitale elektronische
Systeme, insbesondere eine Architektur für einen
Steuerspeicher einer zentralen Verarbeitungseinheit (CPU).
-
Die Konstrukteure digitaler Systeme versuchen ständig, die
Geschwindigkeit von Computersystemen und Schaltungen zu
vergrößern. Ein speziell interessierendes System ist ein
Steuerspeicher einer CPU, der Steuerinformationen in der Form
von Mikroinstruktionen speichert. Eine oder mehr
Mikroinstruktionen werden ausgeführt, um eine Maschinen-(macro-)
Instruktion zu implementieren.
-
Die in dem Steuerspeicher verwendeten Speicherelemente werden
durch eine Zugriffszeit charakterisiert. Die Größe dieser
Zugriffszeit kann die Betriebsgeschwindigkeit der CPU
beschränken.
-
Ein Verfahren zum Überwinden dieser
Geschwindigkeitsrestriktion besteht darin, ein überlapptes Speichersystem zu
verwenden. Mehrere Bänke langsamen Speichers werden so gruppiert,
daß jeder folgende Zugriff von der nächsten Speicherbank
kommt. Daher überlappt die Zugriffszeit für eine gegebene
Instruktion die Auslesezeit der vorausgehenden Instruktion.
-
Die verschiedenen Bänke eines überlappten Speichersystems
können auf einem einzigen RAM oder auf mehreren RAMs
implementiert werden. Typischerweise ist der Adressraum des
Instruktionssatzes über die Speicherbänke verteilt.
Beispielsweise kann die n-te Instruktion bei ADR(n) in einer gegebenen
Speicherbank abgespeichert sein, und die (n+1)-te Instruktion
kann bei ADR(n) in der folgenden Speicherbank abgespeichert
sein. Bei diesem Beispiel speichert eine Speicherbank
geradzahlige Zeilen des Mikrocodes und die andere Speicherbank
speichert ungeradzahlige Zeilen des Mikrocodes. Diese
Verteilung
des Adressraums über die Speicherbänke benötigt
entweder Restriktionen bei den möglichen Verzweigungen in dem
Instruktionssatz oder verringert die Ausführgeschwindigkeit
der Verzweigungen.
-
Ein weiteres der Verwendung eines Steuerspeichers anhaftendes
Problem ist das Auftreten von "Soft"- oder "Hard"-Fehlern in
dem Instruktionssatz. Allgemein gesprochen muß bei
Feststellung von Fehlern das Zugriffssystem des Steuerspeichers
entweder anhalten oder eine Fehlerkorrekturroutine
durchführen, die viele Maschinenzyklen zu ihrer Vervollständigung
benötigt. Diese Fehlerkorrekturfunktion verringert die
Betriebsgeschwindigkeit der CPU.
-
Daher wird in Hochgeschwindigkeits-Computersystemen ein
Steuerspeicher benötigt, der einen schnellen Zugriff auf
einen Satz von Instruktionen ermöglicht. Weiterhin wird die
Fähigkeit des Steuerspeichers, schnell Hard- oder Soft-Fehler
in einer Instruktion zu korrigieren, in starkem Maße
benötigt.
-
Es ist aus US-A 4586181 ein Testmustergenerator mit Mitteln
zum nichtaufeinanderfolgenden Auslesen aus einer Vielzahl von
Speichern bekannt. Die gleichen Musterdaten werden gemeinsam
in den identischen Adressen der Vielzahl von Speichern
gespeichert. Das gewünschte Testmuster wird durch Adressieren
der Vielzahl von Speichern alternativ erzeugt, ohne den
gleichen Speicher sukzessiv zu adressieren. Daher ist, selbst
wenn ein unterschiedliches Testmuster erzeugt wird, die
Geschwindigkeit des als Ausgabe erhaltenen Testmusters nicht
durch die Zugriffszeit der Speicher begrenzt.
-
Es ist ebenfalls aus einem Aufsatz mit dem Titel
"Microprogramming for the Hardware Engineer", WESCON TECHNICAL PAPERS,
Band 20, no. 20, 1976, Seiten 1-9) eine
Steuerspeicherarchitektur bekannt, bei der eine Verzweigungsadresse parallel in
den Mikroprogramm-Adresszähler geladen werden kann. Wenn das
Laden ermöglicht ist, wird die in dem Mikroprogrammspeicher
enthaltene Verzweigungsadresse parallel in den
Mikroprogramm-Adresszähler geladen. Dies führt zu der Fähigkeit, eine
N-Weg Verzweigung durchzuführen. Das
Verzweigungsteuerungsmerkmal dieser Architektur ermöglicht es dem
Mikroprogrammspeicher-Controller, sequentielle Mikroinstruktionen
auszuführen oder eine Verzweigung (BR) oder einen Sprung (JMP) zu
irgendeiner Adresse entweder vor oder hinter der
augenblicklich in dem Mikroprogramm-Adressenzähler enthaltenen Adresse
durchzuführen.
-
Es ist eine Aufgabe der vorliegenden Erfindung, die bislang
bekannten Systeme zu verbessern.
-
Erfindungsgemäß wird ein Steuerspeichersystem vorgesehen,
das enthält:
-
eine erste und zweite Steuerspeicherkopie, die jeweils
identische vollständige Sätze von Zeilen von
Steuerinformationen in einander entsprechenden aufeinander folgenden
Speicherstellen speichern;
-
mit der ersten und zweiten Steuerspeicherkopie, den
Adresserzeugungsmitteln und den Taktsignal-Lieferungsmitteln
gekoppelte Mittel zum Leiten abwechselnder Adressignale in der
Folge zu dem ersten bzw. zweiten Steuerspeicher, um
abwechselnd auf verschiedene Zeilen der Steuerinformationen aus
Speicherstellen in dem ersten und zweiten Steuerspeicher
zuzugreifen;
-
wobei die Rückkopplungsmittel mit den Adresserzeugungsmitteln
und beiden Steuerspeicherkopien gekoppelt sind, um einen Teil
der zugegriffenen Steuerinformationen zu den
Adresserzeugungsmitteln zu leiten, um eine Verzweigung zu einer von dem
Teil der zugegriffenen Steuerinformationen spezifizierten
Zieladresse durchzuführen, wo die Verzweigung bei dem
nächsten Taktzyklus ausgeführt werden kann, da vollständige Sätze
von Steuerspeicherinformationen in beiden
Steuerspeicherkopien abgespeichert sind;
-
mit den Rückkopplungsmitteln gekoppelte Mittel zum Entdecken
eines Fehlers in einer gegebenen Zeile der in dem ersten
Steuerspeicher abgespeicherten Steuerinformation während
eines Auslesens der gegebenen Zeile; und auf die
Feststellmittel reagierende Mittel zum Ersetzen der fehlerhaften Zeile
von Steuerinformation während des Auslesens dieser gegebenen
Zeile durch diese gegebene Zeile der in dem zweiten
Steuerspeicher gespeicherten Steuerinformationen.
-
In einer bevorzugten Ausführungsform enthalten die
Adresserzeugungsmittel:
-
ein Adressenspeicherelement;
-
einen Verzweigungs-MUX mit einem Steuereingangsanschluß und
ersten und zweiten Dateneingangsanschlüssen; und
-
wobei die Rückkopplungsmittel enthalten:
-
einen an den Steuereingangsanschluß des Verzweigungs-MUX
gekoppelten Steuerbus und einen an den ersten
Dateneingangsanschluß des Verzweigungs-MUX gekoppelten Adressenbus.
-
In einer bevorzugten Ausführungsform der Erfindung erzeugt
ein Adressengenerator eine Folge von Adressen zum Zugriff auf
aufeinander folgende Instruktionen in einer
Instruktionenfolge. Ein Adressenspeicher zum Halten einer Adresse ist
jeder Speicherbank zugeordnet. MUX's werden verwendet, um
abwechselnde Adressen in der Folge zu dem jeder Speicherbank
zugeordneten Adresspeicher während abwechselnder
Maschinenzyklen zu leiten. Die Zugriffszeit für jede Speicherbank kann
länger als der Maschinenzyklus sein, da eine Speicherbank
gelesen wird, während die andere zu dem Bus zugelassen ist.
Das Rückkopplungssystem leitet einen Teil der
Steuerinformation zu dem Adressenspeicher zur Ausführung einer
Mikroverzweigung. Da vollständige Kopien der Steuerinformation in
jeder Speicherbank residieren, sind dies Verzweigungen
uneingeschränkt.
-
Das Vorhandensein vielfacher Kopien des Instruktionssatzes in
dem Steuerspeicher wird dazu verwendet, eine
Fehlerbehandlungsfunktion
für Soft-Fehler durchzuführen, da die aus dem
Steuerspeicher während eines Auslesens des Instruktionssatzes
gelesenen Instruktionen überwacht werden, um eine fehlerhafte
von einer ersten Speicherbank gelesene Instruktion fest
zustellen. Die Adresse der fehlerhaften Instruktion wird aus
dem ersten Adresspeicher in den zweiten Adresspeicher
gelesen. Die gleiche Instruktion wird dann von der zweiten
Speicherbank gelesen. Das Taktzyklussignal an den
Adressgenerator wird zeitweilig zur Verhinderung einer Adressgeneration
gegattert, während auf die Instruktion aus der zweiten
Speicherbank zugegriffen wird. Nachdem die gegebene
Instruktion aus der zweiten Speicherbank gelesen ist, nimmt das
Taktsignal seine Arbeit wieder auf und wird die nächste
Instruktion in der Folge aus der ersten Speicherbank gelesen.
Auf diese Weise ist die fehlerfreie Instruktion in dem
sequentiellen Auslesen enthalten.
-
Zu einem späteren Zeitpunkt wird die korrekte Instruktion aus
der zweiten Speicherbank gelesen und an der Adresse in die
erste Speicherbank geschrieben, wo die fehlerhafte
Instruktion gespeichert war.
-
Wenn die korrekte Instruktion bei der gegebenen Adresse der
ersten Speicherbank geschrieben ist und die aus der gegebenen
Adresse gelesene Instruktion noch fehlerhaft ist, dann ist
ein Hard-Fehler aufgetreten und die Speicherbank ist
fehlerhaft.
-
Bei einer Ausführungsform weist die erste Speicherbank eine
Gruppe von Steuerspeicher-(CS-) Speicherelementen auf, zum
Speichern des Instruktionssatzes für die CPU, und ein
Ersatzspeicherelement. Der Ausgang des ersten Adresspeichers wird
jedem Speicherelement zur Verfügung gestellt. Die aus dem
einen der Speicherelemente gelesenen Daten enthalten eine
Untermenge der Bits einer Instruktion. Im Fall eines Hard-
Fehlers ist üblicherweise nur eines der Speicherelemente
fehlerhaft. Die Ausgänge der CS-Speicherelemente und des
Ersatzspeicherelements werden an die Eingangsanschlüsse einer
Signalleiteinheit gekoppelt.
-
Bei Feststellen eines Hard-Fehlers in dem Ausgang des ersten
Steuerspeichers wird die Signalleitschaltung dazu verwendet,
den Ausgang des fehlerhaften Speicherelements durch den
Ausgang des Ersatzspeicherelements zu ersetzen, um die erste
Speicherbank dynamisch zu rekonfigurieren. Die für das
Ersatzspeicherelement benötigten Daten werden aus der zweiten
Speicherbank gelesen.
-
Diese RAM-Ersatzfunktion wird on-line durchgeführt und
beseitigt daher die Notwendigkeit, das System zum Korrigieren
von Hard-Fehlern zu unterbrechen.
-
Die Erfindung wird im folgenden mit Hilfe eines Beispiels
unter Bezugnahme auf die beigefügten Zeichnungen beschrieben
in denen:
-
Fig. 1 ein Blockdiagramm einer Ausführungsform der
vorliegenden Erfindung ist;
-
Fig. 2 ein dem Blockdiagramm der Fig. 1 entsprechendes
Schaltungsdiagramm ist;
-
Fig. 3 ein Zeitablaufdiagramm ist, das den Betrieb der in
Fig. 2 dargestellten Ausführungsform illustriert;
-
Fig. 3A ein eine Mikroverzweigung darstellendes
Zeitablaufdiagramm ist;
-
Fig. 4 ein das Arbeiten der in Fig. 2 gezeigten Schaltung
während einer Fehlerbehandlung eines Soft-Fehlers
illustrierendes Zeitablaufdiagramm ist; und
-
Fig. 5 ein Schaltungsdiagramm einer Ausführungsform einer
Speicherbank ist.
-
Die vorliegende Erfindung ist in einem überlappten
Steuerspeicher enthalten, der einen Hochgeschwindigkeitszugriff auf
einen Instruktionssatz vorsieht und ein
Fehlerbehandlungssystem für Soft-Fehler und ein RAM-Ersatzsystem zum Korrigieren
von Hard-Fehlern enthält.
-
In Fig. 1 enthält der überlappte Steuerspeicher 10 eine
Adresserzeugungsschaltung 11 mit einem Takteingang, einem
Initialisierungseingang und einem Ausgangsanschluß. Eine
erste Adresspeichereinheit 12 weist einen ersten
Adresseingangsanschluß auf, der an einen ersten SD-Ausgangsanschluß
einer Signalleiteinheit 14 gekoppelt ist. Die erste
Speichereinheit 12 weist einen ersten Adressausgangsanschluß auf, der
mit dem Adressanschluß einer ersten Speicherbank 16 gekoppelt
ist.
-
In ähnlicher Weise weist eine zweite Adresspeichereinheit
18 einen ersten Adresseingangsanschluß auf, der an den SD-
Ausgangsanschluß einer zweiten Signalleiteinheit 20 gekoppelt
ist, und weist einen zweiten Adressausgangsanschluß auf, der
an den Adressanschluß einer zweiten Speicherbank 22
gekoppelt ist. Jede Signalleiteinheit 14 und 20 weist zwei
Eingangsanschlüsse und einen Ausgangsanschluß auf. Ein erster
Eingangsanschluß der ersten Signalleiteinheit 14 ist an den
Ausgangsanschluß des Adressgenerators 11 und der zweite
Eingangsanschluß ist an den Ausgangsanschluß der zweiten
Adresspeichereinheit 18 gekoppelt. In ähnlicher Weise ist
ein erster Eingangsanschluß der zweiten Signalleiteinheit 20
an den Ausgangsanschluß des Adressgenerators 11, und der
zweite Eingangsanschluß an den Ausgangsanschluß der ersten
Adresspeichereinheit 12 gekoppelt. Jede der
Signalleiteinheiten 14 und 20 enthält einen Steuereingang zum Empfang
eines Steuersignals.
-
Die Ausgangsanschlüsse der ersten und zweiten Speicherbank
16 und 22 sind an einen ersten Datenbus 24 gekoppelt. Ein
Steuersignalgenerator 26 enthält einen
Pausenausgangsanschluß, einen Schalterausgangsanschluß, einen ersten und
zweiten Öffnungssignal-Ausgangsanschluß und einen
OLE-Signalanschluß. Der Pausenausgangsanschluß des
Steuersignalgenerators 26 ist an einen Pauseneingangsanschluß des
Adressgenerators 11 gekoppelt; der Schalterausgangsanschluß des
Steuersignalgenerators 26 ist an die Steuereingangsanschlüsse
der ersten und zweiten Signalleiteinheit 14 und 20 gekoppelt;
der erste und zweite Öffnungssignal-Ausgangsanschluß ist mit
der ersten und zweiten Adresspeichereinheit 12 und 18
verbunden. Der Steuersignalgenerator 26 enthält ebenfalls
einen Takt- und einen Fehlersignal-Eingangsanschluß. Die
Taktsignale (CLK) werden von einem Systemtaktgeber 27
generiert.
-
Ein erstes und zweites Ersatzspeicherelement 30 und 32 ist
der ersten und zweiten Speicherbank 16 bzw. 22 zugeordnet.
Die Ausgangsanschlüsse des ersten und zweiten
Ersatzspeicherelements 30 und 32 und der erste Datenbus 24 sind an einen
Ausgangsmultiplexer 34 gekoppelt. Der Ausgangsmultiplexer 34
weist einen an den Ausgangsanschluß einer
Multiplexer-Steuereinheit 36 gekoppelten Steuereingang und einen an einen
zweiten Datenbus 37 über einen Ausgangsspeicher 38
gekoppelten Ausgangsanschluß auf. Wie angezeigt enthält der zweite
Datenbus 37 N Leitungen. Eine Untermenge dieser Leitungen
bildet die Zieladress- (TARGADR) und Steuerungs- (CNTRL)
Rückkopplungs-Busse 37a und 37b. Diese Rückkopplungsbusse 37a
und 37b sind an Zieladressen- und
Steuerungseingangsanschlüsse des Adressgenerators gekoppelt. Die übrigen Leitungen des
zweiten Datenbusses 37 werden an den Rest der CPU zur
Lieferung von Steuerinformationen gesandt.
-
Eine Fehlerfeststelleinheit 39 weist einen an den zweiten
Datenbus 37 gekoppelten Eingangsanschluß und einen an den
Fehlersignaleingangsanschluß des Steuersignalgenerators 26
gekoppelten Ausgangsanschluß auf.
-
Ein Überblick des Betriebs des Systems wird nun im Hinblick
auf Fig. 1 beschrieben. Die erste und zweite Speicherbank 16
und 22 speichern Steuerinformationen für die CPU. Die
Adresserzeugungsschaltung 11 wird durch ein Signal an dem
Initialisierungseingang initialisiert. Typischerweise wird die
Anfangsadresse von einer Makroinstruktion zur Verfügung
gestellt, die aus einem Instruktionsspeicher empfangen wird.
Der Adressgenerator 11 erzeugt dann eine Folge von Adressen
mit einer bei jedem Taktzyklus erzeugten neuen Adresse in der
Folge. Diese Folge von Adressen wird verwendet, um ein
sequentielles Auslesen des gesamten oder eines Teils des
Instruktionssatzes zu implementieren. Der
Steuersignalgenerator 26 generiert Speicheröffnungsimpulse bei jedem
Taktsignal. Die Öffnungsimpulse für den ersten und zweiten
Speicher werden bei abwechselnden Taktzyklen generiert, so daß
bei geradzahligen Taktzyklen erzeugte Adressen in der ersten
Adresspeichereinheit 12 und bei ungeradzahligen Taktzyklen
erzeugte Adressen in der zweite Adresspeichereinheit 18
gespeichert werden.
-
Die erste und zweite Speicherbank arbeiten in "Pipeline"-Art,
und nach einer Anfangseinstellzeit ist eine Instruktion aus
einer der Speicherbänke auf dem ersten Datenbus 24 gültig,
während auf die folgende Instruktion in der anderen
Speicherbank zugegriffen wird.
-
Schnelle Mikroverzweigungen werden unterstützt, da eine
vollständige Kopie der Steuerinformationen in jeder
Speicherbank abgespeichert ist.
-
Jede Speicherbank ist durch eine Zugriffszeit
charakterisiert, die als die Zeitverzögerung zwischen der Erzeugung
einer Adresse bei der Adresserzeugungseinheit 11 und der Zeit
definiert ist, bei der gültige Daten von der
Adresspeicherstelle in der Speicherbank auf dem ersten Datenbus 24
vorhanden sind. Wie es im Stand der Technik bekannt ist, ist eine
RAM-Einheit durch eine interne Zugriffszeit gekennzeichnet,
nämlich dem Intervall zwischen der Zeit, zu der eine Adresse
an dem Adressanschluß des RAM empfangen wird, und der Zeit,
zu der die Inhalte der adressierten Stelle an dem
RAM-Ausgangsanschluß gültig sind. Zusätzlich zu dieser internen
Zugriffszeit enthält die gesamte Zugriffszeit die durch die
Signalleiteinheiten 14 und 20 und die Adresspeichereinheiten
12 und 18 hinzugefügten Verzögerungen. Die verschachtelte
Struktur des vorliegenden Systems erleichtert die Verwendung
eines Systemtakts mit einem Taktzyklus, der kürzer als die
Dauer der gesamten Zugriffszeit für die Speicherbänke ist.
-
Die Architektur der Fig. 1 enthält ebenfalls ein
Fehlerbehandlungssystem für Soft-Fehler. Wie oben beschrieben enthält
jede Speicherbank 16 und 22 eine vollständige Kopie eines
Instruktionssatzes. Eine gegebene Instruktion ist in jeder
der Speicherbänke an der selben Adresse vorhanden. Die
Fehlerfeststellungseinheit 39 überwacht den Ausgang beider
Speicherbänke 16 und 22. Wenn während eines sequentiellen
Auslesens ein Fehler in der aus einer gegebenen Speicherbank
für eine gegebene Adresse gelesenen Instruktion festgestellt
wird, dann wird die fehlerhafte Instruktion durch die
Instruktion in der jeweils anderen Speicherbank ersetzt. Das
System führt ebenfalls eine Korrekturfunktion für Hard-Fehler
mit einem Ersatz-RAM durch. Wenn von einem
Speicherelement in einer der Speicherbänke 16 herausgefunden wird,
daß es fehlerhaft ist, dann wird die Speicherbank dynamisch
rekonfiguriert, um das fehlerhafte Speicherelement durch das
Ersatzspeicherelement zu ersetzen. Das
Fehlerbehandlungssystem für Soft-Fehler wird dazu verwendet, fehlerhafte Daten in
dem Speicher 38 aus der nicht fehlerhaften Speicherbank zu
korrigieren.
-
Fig. 2 ist ein dem Blockdiagramm der Fig. 1 entsprechendes
Schaltungsdiagramm. Die Adresserzeugungseinheit 11 in Fig. 2
enthält ein Adressregister 40 mit einem Ausgangsanschluß, der
an die Adresseingangsanschlüsse des ersten und zweiten
Multiplexers 14 und 20 gekoppelt ist. Ebenfalls an den
Ausgangsanschluß des Adressregisters 40 ist ein Inkrementer
42 gekoppelt. Ein Verzweigungsmultiplexer 44 enthält
Eingangsanschlüsse, die an den Ausgangsanschluß des Inkrementers
42, den Ausgangsanschluß einer Eingangspunkttabelle 46 und
den Zieladressenbus 37a gekoppelt sind. Der Verzweigungs-MUX
44 enthält ebenfalls einen Steuereingang, der an den
Steuerbus 37b gekoppelt ist.
-
Die Fehlerfeststelleinheit 39 enthält eine
Paritätsüberprüfungsschaltung zur Überwachung der Parität der
Instruktionen auf dem zweiten Datenbus 37.
-
Der Steuersignalgenerator 26 enthält Flip-Flops und Gatter,
die so gekoppelt sind, daß sie das erste und zweite
Öffnungssignal, ein Schaltsignal und ein erstes und zweites
Ausgangszulaßsignal generieren. Die Ausgangsanschlüsse der
ersten und zweiten Speicherbank 16 und 22 sind an den ersten
Datenbus mit Hilfe von Dreifachzustandspuffern gekoppelt.
Diese Puffer werden von den Ausgangszulaßsignalen
eingeschaltet, die von der Steuersignal-Generatoreinheit 26 generiert
werden.
-
Die Wirkungsweise der in Fig. 2 dargestellten Schaltung
während eines sequentiellen Auslesens des Instruktionssatzes
wird nun unter Bezugnahme auf Fig. 2 und das
Zeitablaufdiagramm der Fig. 3 beschrieben. Ein Taktzyklus ist als die
Periode zwischen zwei ansteigenden Kanten der Taktimpulse 60
definiert. Während des ersten Taktzyklus koppelt der MUX 44
den Ausgangsanschluß der Eingangspunkttabelle 46 an den
Eingangsanschluß des CSPC 40. Dementsprechend wird der CSPC
40 initialisiert und der Ausgang des CSPC 40 während des
ersten Taktzyklus ist die erste Adresse ADR(1)). Auf diesen
ersten Taktzyklus folgend koppelt der MUX 44 den Ausgang des
Inkrementers 42 an den Eingangsanschluß des CSPC 40. Daher
wird während folgender Taktzyklen die Adresse um eins erhöht.
Der Ausgang des CSPC ist als eine Reihe von Adressen auf der
Leitung 62 in Fig. 3 dargestellt.
-
Die Öffnungsimpulse 64 für den ersten Adresspeicher 12 werden
während der ersten Hälfte ungeradzahliger Taktzyklen
generiert, und die Öffnungsimpulse 64 für den zweiten Adresspeicher
12 werden während der ersten Hälfte geradzahliger
Adresszyklen generiert.
-
Bei dem ersten Öffnungssignal 64 sind die führenden Kanten
der folgenden Öffnungsimpulse um zwei Taktzyklen voneinander
getrennt.
-
Der Bereich des Signals zwischen den beiden Öffnungsimpulsen
64 definiert eine stabile Periode in dem Speicherzyklus.
Beispielsweise ist während des ersten und zweiten Taktzyklus
der erste Speicher 12 transparent, wenn der erste
Öffnungsimpuls 64 an dein ersten Speicher 12 empfangen wird.
Dementsprechend wird ADR(1) von dem Adresseingangsanschluß an den
Adressausgangsanschluß des ersten Speichers 12 übertragen.
Bei der abfallenden Kante des Öffnungsimpulses 64 wird ADR(1)
gespeichert und der Wert des Signales an dem Ausgangsanschluß
ist während der stabilen Periode des Speicherzyklus gleich
ADR(1). Daher wird ADR(1) dem Adresseingangsanschluß der
ersten Speicherbank 16 für den ersten und zweiten Taktzyklus
angeboten. In ähnlicher Weise ist das Signal an dem
Adresseingangsanschluß der ersten Speicherbank 16 gleich ADR(3) für
den dritten und vierten Taktzyklus, ADR(5) für den fünften
und sechsten Taktzyklus, usw.
-
Bei dem zweiten Öffnungssignal 64b wird der zweite Adresspeicher
18 so gesteuert, daß das an dem
Adresseingangsanschluß der zweiten Speicherbank 22 empfangene Signal gleich
ADR(2) für den zweiten und dritten Taktzyklus, ADR(4) für
den vierten und fünften Taktzyklus usw. ist.
-
Das erste und zweite Ausgangszulaßsignal 66a und 66b sind
aktiv wenn niedrig. Das erste Ausgangsermöglichungssignal
66a wird aktiv bei der fallenden Kante des ersten
Öffnungsimpulses
und bleibt aktiv für einen Zyklus. Das erste und
zweite Ausgangszulaßsignal sind komplementäre Signale.
-
Die Zugriffs- und Datengültigkeitszyklen sind durch die
Linien 68 und 70 dargestellt. Auf die Stelle ADR(1) der
ersten Speicherbank 12 wird während des ersten Taktzyklus
zugegriffen. Während des zweiten Taktzyklus sind die ADR(1)-Daten
aus der ersten Speicherbank 12 gültig auf dem ersten
Datenbus 24. Zusätzlich wird während des zweiten Taktzyklus
auf die Stelle ADR(2) in der zweiten Speicherbank 22
zugegriffen. Während des dritten Taktzyklus sind die ADR(2)-Daten
aus der zweiten Speicherbank gültig auf dem ersten Datenbus
24 und wird auf die ADR(3)-Stelle der ersten Speicherbank 16
zugegriffen.
-
Der Vorteil des überlappten Speichersystems ist jetzt
offensichtlich. Durch gleichzeitiges Zugreifen auf Daten in einer
Speicherbank, während gültige Daten aus der anderen
Speicherbank auf den Bus 24 getrieben werden, kann ein Taktzyklus
kürzerer Dauer als die Speicherzugriffszeit für die CPU
verwendet werden. Dementsprechend können billige langsame
Speicherelemente verwendet werden, während eine hohe
Systemtaktfrequenz insgesamt beibehalten werden kann.
-
Die Architektur des vorliegenden Systems vermeidet die
Mikroverzweigungskomplikationen überlappter Steuerspeicher.
-
Fig. 3A ist ein Zeitablaufdiagramm, das eine
Mikroverzweigungsroutine darstellt. Das Folgende ist ein Beispiel einer
Mikroverzweigungsroutine:
-
L0: Gehe nach Zieladresse (LX)
-
L1:
-
.
-
.
-
.
-
LX:
-
Unter Bezugnahme auf Fig. 2 und 3A wird während eines
Taktzyklus 1 die L0-Adresse in die erste Adresspeichereinheit 12
gespeichert und auf L0 wird aus der ersten Speicherbank 16
zugegriffen.
-
Während des Taktzyklus 2 wird die L1-Adresse in die zweite
Adresspeichereinheit 18 gespeichert und auf L1 aus der
zweiten Speicherbank zugegriffen, und L0 ist gültig auf dem
zweiten Bus 37. In diesem Beispiel enthält L0 Steuer- und
Adressinformationen für eine Verzweigung zu der Instruktion
LX. Die Steuerinformation wird dem Steuereingang des
Verzweigungs-MUX 44 über den Steuerungsbus 37b geliefert. Diese
Steuerinformation veranlaßt den Verzweigungs-MUX 44, die
Informationen auf dem Zieladressenbus 37a zu dem
Adressregister 40 zu leiten. Dementsprechend wird während des
Taktzyklus 2 die LX-Adresse in das Adressregister 40 gespeichert.
-
Während des Taktzyklus 3 wird die LX-Adresse in die erste
Adresspeichereinheit 12 geladen und wird auf LX aus der
ersten Speicherbank 16 zugegriffen. Die Zeile L1 ist gültig
auf dem Bus 37.
-
Während des Taktzyklus 4 ist LX gültig auf dem Bus 37. Der
Vorteil des vorliegenden Systems über ein
geradzahlig/ungeradzahlig überlapptes System ist jetzt offenbar. Beim
Taktzyklus 3 ist das vorliegende System in der Lage, auf LX
zuzugreifen, da eine vollständige Kopie der Steuerinformation in
jeder Speicherbank abgespeichert ist. In einem
geradzahlig/ungeradzahligen System nehme man an, daß auf L0 aus der
geradzahligen (ersten) Speicherbank zugegriffen wird und daß
die Zeile LX in der ungeradzahligen (zweiten) Speicherbank
ist. Beim Taktzyklus 3 könnte man auf LX nicht zugreifen, da
die zweite Speicherbank nicht in einem Zugriffszyklus ist.
Dementsprechend müßten zur Erleichterung von Verzweigungen
komplizierte Steuerprozeduren implementiert werden.
-
Das Fehlerüberbrückungs- und Neuversuchsmerkmal des Systems
für Soft-Fehler wird nun unter Bezugnahme auf Fig. 2 und das
Zeitablaufdiagramm der Fig. 4 beschrieben. Ein Soft-Fehler
ist ein Fehler in den aus einem RAM gelesenen Daten, der
nicht auf einem Defekt in der RAM-Schaltung selbst beruht.
Beispielsweise kann ein alpha-Teilchen eine Ladung freigeben,
die in einer gegebenen Speicherzelle gefangen wird und
dadurch eine "0" in eine "1" umwandelt. Die aus dieser Zelle
gelesenen Daten sind dann fehlerhaft, jedoch ist die Zelle
selbst nicht fehlerhaft.
-
In Fig. 4 wird während des Taktzyklus 1 ADR(1) von dem CSPC
40 erzeugt, und der erste Öffnungsimpuls 64 wird von dem
Steuersignalgenerator 26 erzeugt. Dementsprechend wird die
erste Adresse in den ersten Adresspeicher 12 gespeichert.
Wie oben beschrieben sind während des Taktzyklus 2 die Daten
aus der ADR(1)-Stelle der ersten Speicherbank 16 auf dem Bus
24 gültig, wird die zweite Adresse in der Folge ADR(2) von
dem CSPC 40 generiert und ein zweiter Öffnungsimpuls 64B von
der Steuersignalgeneratorschaltung 26 generiert. Daher wird
während des Taktzyklus 2 die zweite Adresse in den zweiten
Adresspeicher 18 gespeichert und sind die ADR(1)-Daten auf
dem Bus 24 gültig. Diese Daten werden in den Speicher 38
gespeichert.
-
Wenn die ADR(1)-Daten aus der ersten RAM-Speicherbank einen
Paritätsfehler anzeigen, so wird dieser Fehler von der
Fehlerfeststellschaltung 39 während des zweiten Taktzyklus
entdeckt. Die Fehlerfeststelleinheit 39 erzeugt eine
Fehleranzeige, die den Steuersignalgenerator 26 veranlaßt, ein
Pausensignal zu erzeugen, um den Ausgang des Adressgenerators
11 bei der zweiten Adresse ADR(2) der Folge einzufrieren. Die
logische Schaltung in der Steuersignal-Generatoreinheit 26
reagiert auf die Fehleranzeige dadurch, daß sie einen zweiten
Öffnungsimpuls 64B während des dritten Taktzyklus generiert
und die Erzeugung des ersten Öffnungsimpulses 64A während des
dritten Taktzyklus unterdrückt. Es ist zu beachten, daß dies
eine Phasenumkehrung gegenüber der üblichen Folge von
Öffnungsimpulsen ist, wie dies in Fig. 3 dargestellt ist.
-
Während des Taktzyklus 3 wird das Schaltsignal an die
Multiplexer 14 und 20 von der Steuersignal-Erzeugungsschaltung 26
so festgestellt, daß der Ausgang des ersten Adresspeichers
12 an den Eingang des zweiten Adresspeichers 18 gekoppelt
wird. Da die erste Adresse noch in dem ersten Adresspeicher
12 abgespeichert ist, wird die erste Adresse beim Taktzyklus
3 in den zweiten Adresspeicher gespeichert. Während des
Taktzyklus 3 wird auf die ADR(1)-Stelle in der zweiten
Speicherbank zugegriffen und beim Taktzyklus 4 sind die
Inhalte der ersten Adresse und der zweiten Speicherbank auf
dem ersten Bus 24 gültig. Auf diese Weise werden die
fehlerhaften Daten aus der ersten Speicherbank 16, die in dem
Speicher 38 gespeichert sind, korrigiert.
-
Zusätzlich erzeugt während des Taktzyklus 4 die
Steuersignal-Erzeugungseinheit 26 einen ersten Öffnungsimpuls 64A, um
ADR(2) in den ersten Adresspeicher 12 zu speichern.
Dementsprechend wird auf die ADR(2)-Stelle in der ersten
Speicherbank 16 während des Taktzyklus 4 zugegriffen und sind
die ADR(2)-Daten gültig auf dem Bus während des Taktzyklus 5.
Beim Taktzyklus 5 unterdrückt die
Steuersignal-Erzeugungseinheit 26 das Pausensignal, und der CSPC 40 erzeugt ADR(3)
in der Folge der Adressen. Der zweite Öffnungsimpuls 64B wird
während des Taktzyklus 5 erzeugt und ADR(3) in den zweiten
Adresspeicher 18 gespeichert.
-
Beim Vergleich der Zeitablaufdiagramme der Fig. 3 und 4 ist
zu sehen, daß während des normalen Betriebs auf die ADR(3)-Daten
während des dritten Taktzyklus zugegriffen werden würde
und daß während der Fehlerbehandlungs-Betriebsart für Soft-
Fehler auf die ADR(3)-Daten während des fünften Taktzyklus
zugegriffen wird. Dementsprechend wird das Auslesen des
Instruktionssatzes um zwei Taktzyklen verzögert, wenn ein
Soft-Fehler festgestellt wird.
-
Diese kurze Verzögerung ist ohne Bedeutung und die
Behandlungsfunktion für Soft-Fehler ist im wesentlichen
transparent. Daher ist die CPU in der Lage, wirksam in einer
Umgebung, in der Soft-Fehler wahrscheinlich auftreten, zu
arbeiten.
-
Während eines Wiederherstellungszyklus werden die bei ADR(1)
in der zweiten Speicherbank 22 abgespeicherten Daten in die
ADR(1) der ersten Speicherbank 16 während einer Pause in der
Leseroutine des Instruktionssatzes geschrieben. Die Inhalte
von ADR(1) der ersten Speicherbank werden dann gelesen und
zur Fehlerfeststellung erneut versucht. Im Fall eines Soft-
Fehlers wird jetzt kein Fehler festgestellt, da die erste
Speicherbank selbst nicht fehlerhaft ist.
-
Wenn eine große Zahl von Fehlern für eine gegebene
Speicherbank festgestellt wird oder wenn die wiederhergestellten
Daten weiterhin fehlerhaft sind, dann wurde ein Hard-Fehler
festgestellt und die gegebene Speicherbank ist fehlerhaft.
-
Unter Bezugnahme auf Fig. 5 wird nun ein RAM-Ersatzsystem zum
dynamischen Rekonfigurieren eines fehlerhaften
Steuerspeichers zur Kompensierung festgestellter Hard-Fehler
beschrieben.
-
Fig. 5 ist ein ins einzelne gehendes schematisches Diagramm,
das die Architektur des Steuerspeichers 16, des Ausgangs-MUX
34 und der Ausgangs-MUX-Steuereinheit 36 darstellt. In Fig. 5
enthält die Speicherbank 16 fünfzehn CS-Speicherelemente 80
und ein Reservespeicherelement 82. Der Ausgangs-MUX 34
enthält fünfzehn 2 : 1 MUX's 84, wobei jeder 2 : 1 MUX einen
ersten an den Ausgangsanschluß eines der CS-Speicherelemente
80 gekoppelten Eingangsanschluß aufweist. Der zweite
Eingangsanschluß jedes 2 : 1 MUX 84 ist an den Ausgangsanschluß
des Ersatzspeicherelements 82 gekoppelt. Jeder der 2 : 1
Multiplexer 34 weist einen Steuereingang zum Empfang eines
Steuersignals auf.
-
Die Ausgangs-Multiplexer-Steuereinheit 36 enthält einen
Ersatzauswahlspeicher 86 und einen 4 : 16 Dekodierer 88. Der
Ausgangsanschluß des Ersatzauswahlspeichers 86 ist an den
Eingangsanschluß des 4 : 16 Dekodierers 88 gekoppelt. Der
Dekodierer 88 weist fünfzehn Ausgangsanschlüsse auf, wobei
jeder Ausgangsanschluß an den Eingangsanschluß eines der 2 : 1
MUX 84 gekoppelt ist.
-
Bei einer Ausführungsform ist jede Instruktion in dem
Instruktionssatz ein 120-bit Wort, wobei 8-bit Untergruppen des
Worts von den fünfzehn Speicherelementen 80 geliefert werden.
Im allgemeinen wird ein Paritätsfehler in der Instruktion
durch den fehlerhaften Ausgang eines der CS-Speicherelemente
80 in der Speicherbank 16 verursacht. Wenn kein Hard-Fehler
vorhanden ist, koppeln die bei den fünfzehn 2 : 1 MUX
angelangten Steuersignale den ersten Eingangsanschluß des MUX an den
MUX-Ausgangsanschluß.
-
Wenn ein Hard-Fehler festgestellt wird, wird das fehlerhafte
Speicherelement 60 unter Verwendung von herkömmlichen
diagnostischen Techniken identifiziert. Wenn das fehlerhafte
Speicherelement 80, beispielsweise das zweite
Speicherelement, identifiziert ist, wird die Identität des fehlerhaften
Speicherelements in den Ersatzauswahlspeicher 86 geladen.
Der Dekodierer erzeugt dann ein Steuersignal an dem zweiten
Ausgangsanschluß des Dekodierers 88, um den zweiten
Eingangsanschluß des zweiten 2 : 1 MUX 34 an den Ausgangsanschluß
des MUX zu koppeln. Die übrigen 2 : 1 MUX 34 koppeln weiterhin
den ersten Eingangsanschluß an den MUX-Ausgangsanschluß.
Infolgedessen wurde der Ausgang des Ersatz-RAM 82 an die
Stelle des Ausgangs des zweiten Speicherelements 80 gesetzt.
-
Während einer Pause in der Instruktionsleseroutine werden die
Inhalte der zweiten Speicherbank in die Speicherelemente der
ersten Speicherbank geschrieben. Jedoch werden die Inhalte
des zweiten CS-Speicherelements in der zweiten Speicherbank
22 in das Ersatzspeicherelement 82 geschrieben. Auf diese
Weise wurde die erste Speicherbank 16 zur Kompensierung des
fehlerhaften Speicherelements rekonfiguriert.
-
Anders als bei existierenden Ersatztechniken wird diese
Rekonfiguration der Speicherbank zur Verringerung der
Abschaltzeit des Systems on-line durchgeführt.
-
Die Erfindung wurde nun unter Bezugnahme auf spezielle
Ausführungsformen beschrieben. Verschiedene Modifikationen
und Ersetzungen ergeben sich für Fachleute. Beispielsweise
ist das System zur Verwendung mit einer beliebigen Anzahl von
Speicherbänken entworfen. Zusätzlich brauchen die in den
Speicherbänken abgespeicherten Daten kein Instruktionssatz zu
sein, sondern können beliebige Datensätze sein. Weiterhin
werden in den oben beschriebenen Ausführungsformen die selben
Instruktionen an identischen Adressen in beiden
Speicherbänken gespeichert. Jedoch können die selben Instruktionen auch
an nicht identischen Adressen abgespeichert sein,
vorausgesetzt, ein System zur Definition der Beziehung zwischen
entsprechenden Adressen ist vorgesehen. Eine solche
Entsprechung wird unter Verwendung herkömmlicher Technologien
eingerichtet.