-
Die
vorliegende Erfindung bezieht sich auf Halbleiter-Speicher und insbesondere
auf ein Speichersystem, das eine Fehlererfassungsvorrichtung enthält.
-
Nichtflüchtige Speicher
wie zum Beispiel EPROM, EEPROM und FLASH-Speicher, werden in vielen
Anwendungen wie etwa zum Beispiel in „Automotive"-Anwendungen, d.h.,
solchen, die mit Kraftfahrzeugen verbunden sind, verwendet.
-
Insbesondere
die elektronischen Einrichtungen, die die innovativsten Steuerungs-
und Überwachungssysteme
für Funktionen
in Kraftfahrzeugen darstellen, enthalten nichtflüchtige Speicher, in denen die
Daten und Befehle enthalten sind, die es erlauben, dass das Kraftfahrzeug
gesteuert wird.
-
Die
Daten, die zu einigen der oben genannten Funktionen, besonders jenen,
die mit dem Betrieb der Sicherheitssysteme des Kraftfahrzeugs wie
etwa ABS und Airbags zusammenhängen,
in Bezug stehen, müssen über die
gesamte Lebenszeit des Systems unverändert bleiben.
-
Dieses
Ziel ist eigentlich schwer zu erreichen, wenn nichtflüchtige Speicher
oft über
eine lange Zeit (zum Beispiel über
mehr als 10 Jahre) in Umgebungen verwendet werden, in denen verschiedene Arten
von elektronischen Geräuschen,
Strahlungen und anderen Störungsquellen
eine Verschlechterung des Inhalts verursachen.
-
Darüber hinaus
darf man nicht übersehen, dass
die aktuellen Integrationstechnologien immer stärker darauf abzielen, die Leistung
der Halbleiter-Speicher (d.h. durch die Verkleinerung der Zellendimensionen
und der Steigerung der Zugriffsgeschwindigkeit) zu steigern und
damit zu einem Anwachsen ihrer Empfindlichkeit gegenüber den
Auswirkungen von Geräuschen
führen.
-
Das
Dokument US-A-5 216 672 legt ein Speichersystem offen, wie es als
Oberbegriff in Anspruch 1 angegeben ist. Es beschreibt ein Speicherprüfsystem
für ein
elektronisches Computersystem, das mehrere Speichermodule enthält. Jedes
Modul ist mit einer Schal tungstechnik zur Fehlererfassung und -korrektur
ausgestattet und es kann in einem Diagnose-Prüfmodus arbeiten, in dem Lese-
und Schreibtests der Module parallel durchgeführt werden.
-
Nach
der konventionellen Methodik wird das Problem der Verschlechterung
des Speicherinhalts durch die Identifizierung der Fehler in den
Daten, die in den Speichern selbst enthalten sind, und ihrer anschließenden optionalen
Korrektur gelöst.
-
Insbesondere
kann es in bestimmten Arten von Anwendungen entsprechend der Fehlergruppe ausreichend
sein, wo es möglich
ist, auf den Speicher zuzugreifen und ihn dabei zu korrigieren,
wohingegen es in anderen Fällen
ratsam ist, das Vorhandensein des Fehlers auf jeden Fall zu signalisieren.
-
Wenn
zum Beispiel ein Fehler in den Speicherbereichen, die Daten zur
Steuerung der Funktion des Airbags im Kraftfahrzeug enthalten, auftritt,
ist es zweckmäßig, eher
den Anwender über das
Problem mittels eines Signals zu informieren (zum Beispiel über das
Einschalten einer lichtstarken Warnlampe auf der Instrumententafel)
als lediglich den Fehler automatisch zu korrigieren. Falls nun das Auftreten
von Fehlern die Verschlechterung der Speicherleistung anzeigt, ist
es angebracht, wenn diese Fehler die Sicherheitssysteme des Kraftfahrzeugs betreffen,
mit einer gründlicheren
und systematischen Überholung
des Speichers selbst fortzufahren.
-
Derzeit
wird eine Fehleridentifikation in nichtflüchtigen Speichern über zwei
verschiedene Testmodi erreicht.
-
Nach
einem ersten Prüfmodus
deckt ein Mikroprozessor (zentrale Recheneinheit oder CPU), der
verschiedene Funktionen des Kraftfahrzeugs steuert (es können mehr
als eine CPU sein, die innerhalb eines Kraftfahrzeugs zusammenarbeiten),
das Vorhandensein von Fehlern in der Gleichzeitigkeit von Lesevorgängen der
normalen Daten und der Durchführung
der Befehle auf, die in den Speicherplätzen enthalten sind. Insbesondere
bemerkt die CPU beim Speicherlesen Fehler durch die Verwendung einer
Fehlererfassung und/oder eines Korrekturcodes, zum Beispiel den
Code zur Steuerung des Parity-Bits
oder eines Fehlerkorrekturcodes.
-
Ein
zweiter Prüfmodus
sorgt dafür,
dass die CPU die normalen Anwendungen nach geeigneten Zeitintervallen
unterbricht, um sich selbst der Kontrolle der Speicherinhalte zu widmen.
In diesem Fall betrachtet die CPU die Daten, die im Speicher abgelegt sind,
nicht als auszuführende
Befehle, sondern als Informationen, die mit Hilfe der oben erwähnten Fehlererfassung
und/oder der Korrekturcodes zu prüfen sind.
-
Der
Nachteil des ersten Prüfmodus
ist, dass die CPU die Fehler, die in den im Speicher vorliegenden
Befehlen enthalten sind, erst nach deren Ausführung oder während deren
Ausführung
bemerkt. Aus diese Weise ist es nicht möglich, der CPU zu erlauben,
das Auftreten eines Fehlers in einer vorbeugenden Weise zu behandeln
und manchmal die CPU daran zu hindern, fehlerhafte Befehle durchzuführen, die
die korrekte Funktion des Systems verändern können.
-
Im
besonderen Fall, dass eine CPU zu einem Getriebegehäuse zur
Steuerung des Motors eines Kraftfahrzeugs gehört, ist es darüber hinaus
nicht möglich,
das Aussetzen der Funktion der CPU nach der Ausführung eines fehlerhaften Befehls
vorherzusagen. In diesem Fall würde
man eigentlich zulassen, dass die Maschine ohne eine externe Überwachung in
gefährlicher
Weise weiterläuft.
Dies stellt eine Einschränkung
des ersten Prüfmodus
dar.
-
Der
Nachteil des zweiten Prüfmodus
besteht in dem übermäßigen Laden
von Funktionen, für
die der CPU die Aufgabe zugewiesen wird, den Speicherinhalt zu prüfen. Um
mit dieser übergroßen Last
an Funktionen in der Weise fertig zu werden, dass die Leistung des
Systems nicht übermäßig nachlässt, muss
die CPU mit einem besonders schnellen Mikroprozessor ausgestattet
werden: Das verursacht unausweichlich zusätzliche Kosten.
-
Außerdem liest
der Mikroprozessor beim Systemstart, d.h. in Übereinstimmung mit der Phase, die
allgemein als Systemneustart bekannt ist, einen ersten Abschnitt
des Speichers (oder den gesamten, wenn er nicht zu groß ist) ein,
wobei er die darin enthaltenen Befehle ausführt, ohne diesen Abschnitt vorher
geprüft
zu haben. Zum Beispiel kann der erste Abschnitt des Speichers Befehle
enthalten, die dazu nützen,
den Mikroprozessor in die Phase der Prüfung des Speicherinhalts zu überführen. Der
oben erwähnte
ungeprüfte
erste Abschnitt könnte
Fehler enthalten, die Aktionen hervorrufen, die sich vollständig von
denen unterscheiden, die erwartet werden. Dies stellt eine Einschränkung des
zweiten Prüfmodus dar.
-
Das
Ziel der vorliegenden Entwicklung ist es, ein verbessertes Speichersystem
in Bezug auf die Systeme, die den ersten und den zweiten Prüfmodus einsetzen,
vorzuschlagen.
-
Das
Ziel wird mit einem Speichersystem erreicht, wie es in Anspruch
1 beschrieben wird. Bevorzugte Ausführungsformen des Speichersystems
der Erfindung sind in den Unteransprüchen 2 bis 11 definiert.
-
Das
Ziel der vorliegenden Erfindung ist auch ein Verfahren zur Steuerung
des Speichersystems in Übereinstimmung
mit dem Anspruch 12. Bevorzugte Ausführungsformen dieses Verfahrens
sind in den Unteransprüchen
13 bis 17 definiert.
-
Die
Charakteristika und die Vorteile der vorliegenden Erfindung werden
durch die folgende ausführlichen
Beschreibung einer beispielhaften Ausführungsform, die nicht einschränkend ist,
mit Bezug auf die folgenden Zeichnungen erklärt, in denen folgendes dargestellt
ist:
-
1 ist
eine schematische Darstellung eines Speichersystems nach der vorliegenden
Erfindung.
-
2 zeigt
in schematischer Darstellung eine der möglichen Anwendungen einer Struktur
der Steuerlogik nach der vorliegenden Erfindung.
-
1 zeigt
ein Blockdiagramm eines Speichersystems 100 nach der vorliegenden
Erfindung. Das Speichersystem 100 kann durch die Integration auf
einem Chip aus Halbleitermaterial mit Verfahren, die den Kennern
der Technik bekannt sind, geschaffen werden.
-
In
dem bestimmten beschriebenen Beispiel umfasst das Speichersystem 100 eine
Speichermatrix zur Speicherung von digitalen Daten, der durch den
Block MEMORY schematisch dargestellt ist. Diese Speichermatrix oder
de Speicher MEMORY ist zum Beispiel nichtflüchtig und kann EPROM, EEPROM
oder FLASH-artige Zellen umfassen.
-
Außerdem ist
das System 100 mit einer Verarbeitungs- und Steuereinrichtung
CPU derart ausgestattet, um mit dem Speicher MEMORY zu kommunizieren,
um so die digitalen Daten darin oder die Befehle, die auf solche
Daten angewandt werden sollen, zu lesen. Die Verarbeitungseinrichtung
CPU kann aus einem konventionellen Prozesssystem bestehen, das zum
Beispiel einen oder mehrere Mikroprozessoren, einen Digitalsignalprozessor
DSP oder eine Schaltung für
den Direktzugriff auf den Speicher DMA umfasst, die eine Funktion
zur Überwachung des
Speicherinhalts auf anderen peripheren Geräten besitzen.
-
Aus
Gründen
der Übersichtlichkeit
wird im weiteren Verlauf der Beschreibung die Verarbeitungseinrichtung
CPU zur Verkürzung
mit dem Begriff Mikroprozessor bezeichnet.
-
Das
Speichersystem 100 umfasst einen Inhaltsprüfer für den nichtflüchtigen
Speicher NVMCC, der eine Fehlererfassungsrolle im Speicher MEMORY
einnimmt.
-
Zweckmäßigerweise
ist die Prüfeinrichtung NVMCC
strukturell vom Mikroprozessor CPU getrennt und bildet ein logisches
Gerät,
das zur Prüfung der
Inhalte des Speichers MEMORY bestimmt ist, um das Vorhandensein
von Änderungen
in den darin gespeicherten Daten zu erfassen.
-
Stärker detailliert
enthält
die Prüfeinrichtung NVMCC,
die in 1 schematisch dargestellt ist, drei wesentliche
Funktionsblöcke,
die untereinander kommunizieren.
-
Ein
erster Block ist eine Steuerungslogik Ctrl_logic, die vorzugsweise
als digitaler Automat ausgeführt
ist. Dieser Automat, über
den wir weiter unten noch detaillierter sprechen werden, ist in
der Lage, den Zugang zu den Speicherplätzen des Speichers MEMORY zu
verwalten und die Genauigkeit der Daten, die sie enthalten, zu prüfen.
-
Ein
zweiter Block ist ein Adressgenerator Add_Gen, der typischerweise
einen Zähler
enthält
(in 1 nicht gezeigt). Der Adressgenerator Add_Gen zählt die
Speicherplätze
in der Weise, dass das Gerät NVMCC
von einer Startadresse Start_Add bis hin zu einer Endadresse Stop_Add
zugreift, indem er die Startadresse Start_Add anschließend um
einen Schrittwert Add_Step erhöht.
Die Startadresse Start_Add, die Endadresse Stop_Add und der Schrittwert
Add_Step sind in speziellen Registern, die den Adressgenerator Add_Gen
bilden, enthalten und in 1 mit den gleichen Bezugszeichen Start_Add,
Stop_Add und Add_Step gekennzeichnet.
-
Der
Inhalt dieser Register kann während
des Betriebs des Speichersystems 100 verändert werden.
Insbesondere wird der Schrittwert Add_Step je nach dem verändert, ob
der auszulesende Speicher zum Beispiel einen 8-bit-, einen 32-bit-
oder einen 64-bit-Speicher
darstellt.
-
Ein
dritter Block ist eine Prüflogik
Chk_logic, die hierbei zum Beispiel auch ein Signaturregister umfasst
(in 1 nicht gezeigt). Diese Prüflogik Chk_logic hat die Funktion
der Auswertung der Korrektheit des Inhalts des Speichers MEMORY
durch die Fehlererfassung und/oder die Korrekturcodes, wie zum Beispiel
dem CRC-Code.
-
Die
Prüfeinrichtung
NVMCC umfasst auch einen Mehrkanal-Schaltkreis oder einen Multiplexer MUX,
der in schematischer Form zwei Eingänge und einen Ausgang besitzt.
Tatsächlich
ist der Multiplexer MUX über
einen ersten Eingang 1 mit einer ersten Leitung oder einem
ersten digitalen Adress-Bus Add_bus1 und über einen zweiten Eingang 2 mit
einer zweiten Leitung oder einem zweiten digitalen Adress-Bus Add_bus2
verbunden.
-
Der
erste digitale Adress-Bus Add_bus1 ist mit dem Adressgenerator Add_Gen
verbunden, während
der zweite digitale Adress-Bus Add_bus2 mit dem Mikroprozessor CPU
verbunden ist. Ein Ausgang 3 des Multiplexers MUX ist mit
dem Speicher MEMORY über
eine weitere Leitung oder einen Adress-Bus OUT verbunden. Der Multiplexer
MUX ist so aufgebaut, dass er die Adressen, die an den Speicher
MEMORY gesendet werden sollen, aus den auf dem ersten Bus Add_bus1
oder auf dem zweiten Bus Add_bus2 vorhandenen auswählt und
er seine Befehle von der Steuerlogik Ctrl_logic erhält.
-
Das
System 100 ist auch mit einer Leitung zum Lesen von digitalen
Daten ausgestattet, oder kurz gesagt, mit einem Datenbus Read_Data_bus zum
Senden von Signalen an den Mikroprozessor CPU und an die Prüflogik Chk_logic,
die den aus dem Speicher MEMORY gelesenen Daten entsprechen.
-
Der
Mikroprozessor CPU ist mit weiteren peripheren Geräten oder
Speichern, die als Funktionsblock "Peripherals" schematisch dargestellt sind, verbunden,
um von diesen eine zweite Gruppe von digitalen Daten zu empfangen.
-
Insbesondere
kann diese zweite Datengruppe zum Mikroprozessor CPU über die
Einrichtung eines weiteren Datenlesebus Read_Data_bus1 zufließen.
-
Schließlich ist
der Mikroprozessor CPU – wie in 1 hervorgehoben
dargestellt – mit
dem Speicher MEMORY und der Steuerlogik Ctrl_logic über eine
Leitung für
digitale Steuersignale, oder kurz gesagt, über einen Steuersignalbus Ctrl_signals
verbunden.
-
Zum
Beispiel schalten einige Steuersignale Signale für den Speicher MEMORY frei,
in anderen Worten, Signale mittels derer der Mikroprozessor CPU
oder die Steuerlogik Ctrl_logic den gleichen Speicher MEMORY darüber informieren,
dass das Auslesen bestimmter Speicherplätze gestartet wird.
-
In ähnlicher
Form schalten andere Signale die Ausgaben des Speichers MEMORY ein/aus,
d.h. der Speicher MEMORY informiert den Mikroprozessor CPU oder
die Steuerlogik Ctrl_logic darüber,
ob er zum Auslesen bereit ist oder nicht.
-
Für Kenner
der Technik ist klar, dass das Speichersystem 100 eine
Zeitschaltung umfasst (in 1 nicht
gezeigt), um die Abfolge der verschiedenen Arbeitsgänge, die
im System durchgeführt
werden, in geeigneter Form zu synchronisieren. Wie bekannt ist,
liefert die Zeitschaltung Folgen von Zeitimpulsen, allgemein als
Taktimpulse bezeichnet, die die zeitliche Dauer der Zugriffe des
Mikroprozessors CPU, der Prüfeinrichtung
NVMCC oder anderer Peripheriegeräte
auf den Speicher MEMORY regeln. Auf diese Weise ist es möglich, die
Dauer von Prozessen zum Lesen von Speicherplätzen, die Durchführung der
Befehle, die sie enthalten und die Prüfung der Daten, die im Speicher
abgelegt sind, zu lenken.
-
Aus
Gründen
der Übersichtlichkeit
wird im weiteren Verlauf der Beschreibung der Bezug auf Zeitintervalle
oder Zugriffszeitschlitze (access time slots) hergestellt, um in
einer allgemeinen Form die zeitlich begrenzte Dauer der Zugriffe
auf den Speicher MEMORY zu kennzeichnen. Insbesondere kann jeder
Zeitschlitz aus einem oder mehreren Taktimpulsen gebildet werden.
-
Eine
der möglichen
Anwendungen für
die Struktur der Steuerlogik Ctrl_logic kann zum Beispiel der 2 entnommen
werden.
-
Es
ist förderlich
zu beachten, dass diese Anwendung mit drei verschiedenen Modi für den Zugriff auf
den Speicher MEMORY durch die Prüfeinrichtung
NVMCC nach der folgenden Erfindung kompatibel ist. Diese Zugriffsmodi
werden nachfolgend im Detail beschrieben.
-
Wie
früher
erwähnt
umfasst die Steuerlogik Ctrl_logic einen digitalen endlichen Automaten
FSM, der nach herkömmlichen
Methoden aufgebaut sein kann.
-
Der
endliche Automat FSM ist durch die Verknüpfung einer Anzahl von digitalen
logischen Ports, wie etwa NAND-, NOR- oder FLIP-FLOP-Ports untereinander über Schaltungen
intern strukturiert.
-
Der
endliche Automat FSM funktioniert so, dass er eine Folge von digitalen
Signalen mit dem Mikroprozessor CPU und dem Speicher MEMORY austauscht.
Insbesondere ist der endliche Automat FSM in der Lage, ein erstes
Steuersignal CS1 zu erfassen, das vom Mikroprozessor CPU an den
Bus Ctrl_signals gesendet wird (siehe 1), mit
dem dieser Mikroprozessor CPU einen Lesezugriff beim Speicher MEMORY
anfordert. Dieses erste Signal CS1 wird durch den Automaten FSM
in ein zweites Signal CS2 umgewandelt, das an den Bus Ctrl_signals
gesendet wird, wenn der Automat FSM einen Lesezugriff beim Speicher
MEMORY anfordert.
-
In ähnlicher
Weise ist der Automat FSM in der Lage, ein erstes Sperr- oder Wartesignal
WS1 zu erfassen, das vom Speicher MEMORY an den Bus Ctrl_signals
gesendet wird, um den Zugriff des Mikroprozessors CPU sogar zeitweilig
zu unterbrechen oder zu verhindern. In bestimmten Anwendungen kann
der Speicher MEMORY Daten an den Mikroprozessor CPU tatsächlich langsamer
liefern, als dieser die entsprechenden Adressen an den Speicher
MEMORY bereitstellt. Dieses erste Sperr- oder Wartesignal WS1 wird
durch den Automaten FSM in ein zweites Sperr- oder Wartesignal WS2
umgewandelt, das an den Bus Ctrl_signals gesendet wird, wenn dieser
Automat FSM den Zugriff des Mikroprozessors CPU auf den Speicher
MEMORY verhindern oder unterbrechen will.
-
Ferner
ist der endliche Automat FSM so aufgebaut, dass er ein Signal vom
Adressgenerator Add_Gen empfängt,
das der zuletzt generierten Adresse LAG entspricht, und ein Signal
der Adressbusauswahl AdBS und erste Lade- und Inkrement-Befehle
RIC an den Adressgenerator Add_Gen sendet. Genauer gesagt, funktioniert
der Automat FSM, indem er die Umschaltung des Multiplexers MUX über das
Auswahlsignal AdBS regelt und den Zähler des Adressgenerators Add_Gen
mit den ersten Befehlen RIC lädt
und erhöht.
-
In ähnlicher
Weise ist der endliche Automat FSM derart gestaltet, dass er Befehle
zum Zurücksetzen
und Datenauswahl RDSC an das Signaturregister der Prüflogik Chk_logic
sendet, und von letzterer einen Übereinstimmungswert
VM als Ergebnis des Vergleichs zwischen den Daten, die vom Speicher MEMORY
gelesen wurden, und einem geeigneten Prüfwert, empfängt. Dieser Prüfwert wird
in einem geeigneten Register innerhalb der Prüflogik Chk_logic abgespeichert.
-
Zusätzlich zum
Automaten FSM umfasst die Steuerlogik Ctrl_logic einen Zeitüberwachungszähler TOC,
ein Testende-Modus-Register EOTMR und ein Funktionsmodusauswahl-Register
OMSR.
-
Der
Zeitüberwachungszähler TOC
führt die Funktion
der Zählung
der Zeitimpulse nach dem Empfang von zweiten Lade- und Inkrement-Befehlen RIC1
aus, die vom Automaten FSM erzeugt wurden. Diese Zählfunktion
wird so lange fortgesetzt, bis ein vorgegebener Zeitüberwachungswert
erreicht ist, was über
ein Warnsignal AS an den Automaten FSM entsprechend gemeldet wird.
Ein derartiger Zeitüberwachungswert,
der in einem entsprechenden Zeitüberwachungsregister
enthalten ist (in 2 nicht sichtbar), entspricht
der Dauer eines vorbestimmten Zeitlimitintervalls. Ferner wird der
in dem oben genannten Register gespeicherte Zeitüberwachungswert das erste Mal
von außerhalb
des Chips gesetzt und kann anschließend vom Mikroprozessor CPU entsprechend
den Anforderungen der Steuerfunktion angepasst werden.
-
Das
Register EOTMR enthält
Daten, die den Typ der Funktionen angeben, die der endliche Automat
FSM nach dem Ende einer Prüfphase
der Inhalte des Speichers MEMORY in Abhängigkeit vom Prüfergebnis
durchführen
muss. Aus diesem Grund ist das Register EOTMR mit dem endlichen
Automaten FSM verbunden, um Signale zu ihm zu übertragen, die die Funktionen
bezeichnen, die er ausführen muss.
-
Schließlich ist
das Funktionsmodusauswahl-Register OMSR zum Beispiel ein programmierbares
3-bit-Register, das arbeitet, indem es den Automaten FSM über den
Modus informiert, den es beim Zugriff auf den Speicher MEMORY verwenden soll.
Tatsächlich
entspricht jedes Bit des Registers einem der drei früher erwähnten Modi.
Um einen der drei Modi auszuwählen,
wird das ihm entsprechende Bit im Funktionsmodusauswahl-Register OMSR in herkömmlicher
Weise zum Beispiel auf einen logischen Wert 1 festgelegt.
-
Nach
einer bevorzugten Ausführungsform kann
die Prüfeinrichtung
NVMCC als Ziel der Erfindung über
drei Modi auf den Speicher MEMORY zugreifen.
-
Ein
erster Zugriffsmodus ist der Schatten-Modus (shadow mode). Auf der
Basis dieses ersten Modus greift die Prüfeinrichtung NVMCC nur dann
auf den Speicher MEMORY zu, wenn keine andere logische Schaltung
(Mikroprozessor CPU oder andere) darauf zugreift, in anderen Worten
in Abstimmung mit freien Zugriffszeitschlitzen.
-
Um
zu beschreiben, wie der Zugriff auf den Speicher MEMORY durch die
Prüfeinrichtung
NVMCC im Schatten-Modus erfolgt, kann man zum Beispiel eine Initialphase
nennen, in der ein Mikroprozessor CPU auf den Speicher MEMORY zugreift, nachdem
er das Lesen seiner Daten durch die Aktivierung des ersten Steuersignals
CS1, das an den Bus Ctrl_signals gesendet wird, angefordert hat.
Insbesondere greift der Mikroprozessor CPU auf diese Daten zu, indem
er den Speicher MEMORY auch mit den Adressen der Speicherplätze, in
denen sie gespeichert sind, versorgt. Die Adressen gelangen über den
zweiten Adress-Bus Add_bus2, den Multiplexer MUX und der weiteren
Adress-Bus OUT zum Speicher MEMORY. Der Automat FSM der Steuerlogik Ctrl_logic,
der ebenfalls ein Steuersignal CS1 empfängt, wird über die Tatsache informiert,
dass der Mikroprozessor CPU auf den Speicher MEMORY zugreift.
-
Die
Steuerlogik Ctrl_logic verharrt während der Zeitschlitze, in
denen der Mikroprozessor CPU auf den Speicher MEMORY zugreift, in
einem Bereitschaftszustand.
-
Wenn
der Mikroprozessor CPU den Zugriff auf den Speicher MEMORY beendet,
sorgt er dafür, dass
das erste Steuersignal CS1 deaktiviert wird.
-
Die
Steuerlogik Ctrl_logic entdeckt die Deaktivierung des ersten Steuersignals
CS1 und kann dann den Prüfprozess
der Inhalte der Speicherplätze beginnen.
-
Insbesondere
fordert der Automat FSM den Zugriff auf den Speicher MEMORY über das
zweite Steuersignal CS2 an, das auf Basis des ersten Steuersignals
CS1 gewonnen wird. Die Art und Weise, wie die Prüfung des Inhalts des Speichers
MEMORY durchgeführt
wird, wird weiter unten detaillierter beschrieben werden.
-
Es
sollte nun erkannt sein, dass der Inhalt des Speichers MEMORY nach
dem beschriebenen Schatten-Modus geprüft wird, ohne die normale Durchführung von
Prozessen seitens des Mikroprozessors CPU zu verzögern.
-
Einen
zweiten Zugriffsmodus nach der Erfindung stellt der Block-Modus
dar. In diesem Fall sperrt die Prüfeinrichtung NVMCC den Zugriff
auf den Speicher MEMORY für
den Mikroprozessor CPU und führt
die Prüfung
des Inhalts eines oder aller Speicherplätze aus.
-
Konventionell
wird der Block-Modus nur in besonderen Funktionsphasen des Speichersystems 100 aktiviert.
Der Block-Modus kann zum Beispiel in der Startphase des Speichersystems 100 verwendet werden,
in anderen Worten nach der Neustartphase.
-
In
diesem Fall verhindert der Automat FSM der Steuerlogik Ctrt_logic
nach dem Neustart den Zugriff auf den Speicher MEMORY durch den
Mikroprozessor CPU, indem er das zweite Wartesignal WS2 aktiviert,
das an den Bus Ctrl_signals gesendet wird. Anschließend kontrolliert
die Logik Ctrl_logic einen ersten Abschnitt des Speichers MEMORY,
der im Allgemeinen die Daten bezüglich
des Neustarts eines Betriebssystems oder sogar Informationen über den Modus
enthält,
den die Prüfeinrichtung
NVMCC verwenden muss, um die übrigen
Speicherplätze
zu kontrollieren.
-
Nach
dem Abschluss der oben genannten Kontrolle deaktiviert der Automat
FSM das zweite Wartesignal WS2, wenn der Inhalt des ersten Abschnitts
des Speichers MEMORY sich wie erwartet darstellt, und aktiviert
damit gleichzeitig den Mikroprozessor CPU, der die Befehle, die
in diesem ersten Abschnitt enthalten sind, liest und ausführt.
-
Der
Block-Modus stellt sicher, dass der Mikroprozessor CPU erst auf
die gespeicherten Daten zugreift, nachdem sie in geeigneter Weise
geprüft worden
sind.
-
Schließlich stellt
der dritte Modus einen gemischten Modus dar. Nach diesem dritten
Modus erfolgt der Zugriff auf den Speicher MEMORY gewöhnlich im
Schatten-Modus, jedoch wird eine Unterbrechung der Aktionen des
Mikroprozessors CPU jedes Mal vorgesehen, wenn ein vorgegebenes
Bereitschaftsintervall oder Zeitlimit überschritten wird.
-
Genauer
gesagt unterbricht die Steuerlogik Ctrl_logic den Zugriff des Mikroprozessors
CPU auf den Speicher MEMORY durch die Aktivierung des zweiten Wartesignals
WS2, wenn die Prüfeinrichtung NVMCC
es innerhalb des vorgegebenen Intervalls für ein Zeitlimit nicht geschafft
hat, auf den Speicher MEMORY zuzugreifen, um die Daten zu prüfen.
-
Insbesondere
wird der Wert des Intervalls für ein
Zeitlimit in der Steuerlogik Ctrl_logic gespeichert und der Zeitüberwachungszähler TOC
aktiviert durch das Zählen
der Taktimpulse das Warnsignal AS und sendet es an den Automat FSM,
der für
die Aktivierung des zweiten Wartesignals WS2 sorgt.
-
Die
Anzahl der Taktimpulse, die das Intervall für das Zeitlimit bilden, hat
ihren Ursprung im Kompromiss zwischen der Notwendigkeit, die Funktion des
Mikroprozessors CPU nicht häufig
zu unterbrechen (wie es geschieht, wenn wenige Taktimpulse zwischen
zwei aufeinander folgenden Punkten für das Zeitlimit vorgesehen
werden) und der Untauglichkeit, den Inhalt des Speichers MEMORY über lange
Zeit hinweg nicht zu prüfen
(d.h., dies geschieht, wenn viele Taktimpulse zwischen zwei aufeinander Unterbrechungen
verstreichen).
-
Entsprechend
einer Variante des gemischten Modus ist statt der Unterbrechung
der normalen Prozesse des Mikroprozessors CPU vorgesehen, dass der
Mikroprozessor CPU und die Prüfeinrichtung NVMCC
auf einem Ringweg auf den Speicher MEMORY zugreifen können. Besonders
jedes Mal dann, wenn der Mikroprozessor CPU und die Steuerlogik Ctrl_logic
gleichzeitig und konkurrierend den Zugriff auf den Speicher MEMORY
anfordern, richtet die Steuerlogik Ctrl_fogic, die die Zugriffspriorität besitzt, den
wechselnden Zugriff des einen und des anderen ein.
-
Entsprechend
der Anwenderanforderungen kann die Prüfeinrichtung NVMCC in der Weise
ausgeführt
werden, dass sie in der Lage ist, den Zugriff nach einem der oben
genannten Modi allein durchzuführen
oder die Prüfeinrichtung
NVMCC so auszustatten, dass sie in der Lage ist, den Zugriff nach
zwei oder drei der oben genannten Modi auszuführen.
-
Ein
Beispiel für
die Arbeitsweise des Speichersystems 100 wird unten beschrieben.
Das oben erwähnte
Beispiel beleuchtet die Folge der Prozesse, die die Prüfeinrichtung
NVMCC ausführt,
um die Richtigkeit der im Speicher MEMORY enthaltenen Daten zu prüfen. Ferner
wird die Arbeitsweise des Systems 100 analysiert, beginnend
mit der Phase, die der Anlaufphase folgt, in anderen Worten nach dem
Neustart.
-
Im
folgenden Beispiel ist das System 100 so konfiguriert,
dass die Steuerlogik Ctrl_logic nach dem Neustart auf den ersten
Abschnitt des Speichers MEMORY im Block-Modus zugreift. Mit dieser
Einstellung verhindert man, dass der Mikroprozessor CPU auf den
ersten Abschnitt ohne eine angemessene Prüfung zugreift. Tatsächlich werden
während
der Entwurfsphase von außerhalb
des Chips sowohl die Startadresse Start_Add und die Endadresse Stop_Add
entsprechend dem ersten Abschnitt des zu überwachenden Speichers MEMORY
als auch der Schrittwert Add_Step, der für das Lesen der entsprechenden
Plätze
verwendet wird, festgeschrieben. Ferner wird ein logischer Wert
1 von außer halb
im Funktionsmodusauswahl-Register OMSR in dem Bit, das dem Block-Modus
entspricht, festgelegt.
-
Auf
diese Weise aktiviert der endliche Automat FSM nach dem Neustart
des Speichersystems 100 das zweite Wartesignal WS2, das über den
Signalbus Ctrt_signals an den Mikroprozessor CPU gesendet wird,
damit dieser nicht auf den Speicher MEMORY zugreift. Anschließend sendet
der Automat FSM, nachdem er geprüft
hat, dass die Startadresse Start_Add nicht mit der Endadresse Stop_Add
zusammentrifft, die Startadresse Start_Add über den ersten Adress-Bus Add_bus1,
den Multiplexer MUX und den weiteren Adress-Bus OUT an den Speicher MEMORY.
-
Die
Daten, die entsprechend dieser Startadresse Start_Add aus dem Speicher
MEMORY gelesen werden, werden über
den Datenbus Read_Data_bus an die Prüflogik Chk_logic übertragen,
um dort im Signaturregister abgespeichert zu werden.
-
Um
diese Prozedur mehrfach wiederholen zu können, sendet der Automat FSM
die ersten Befehle RIC and den Zähler
des Adressgenerators Add_Gen, der die Startadresse Start_Add um
den Schrittwert Add_Step erhöht,
um auf diese Weise eine zweite Adresse des Speichers MEMORY zu liefern.
Wie vorher wird dieser Datenwert, der dieser zweiten Adresse entspricht, über den
Datenbus Read_Data_bus an die Prüflogik
Chk_logic übergeben.
Dies wird so lange fortgesetzt, bis der Speicherplatz des Speichers,
der der Endadresse Stop_Add zugeordnet ist, gelesen wird.
-
An
diesem Punkt vergleicht die Prüflogik Chk_iogic
die gelesenen Daten mit dem dort gespeicherten Prüfwert. Dieser
Vergleich erfolgt zum Beispiel durch einen Fehlererfassungscode,
zum Beispiel durch eine Prüfsumme
oder besser noch durch einen CRC-Code.
-
Besonders
der Prüfsummen-Code
sieht einen internen Zähler
für die
Prüflogik
Chk_logic vor, um die Daten, die aus dem Speicher MEMORY gelesen
wurden und die im Signaturregister abgelegt sind, aufzusummieren.
Anschließend
wird die Ergebnissumme mit dem Prüfwert verglichen. Der Prüfsummen-Code
ermöglicht
die Erfassung von einem oder mehreren Fehlern, besitzt aber im Vergleich
mit anderen Prüfmethoden
den Nachteil, dass sich einige Fehler mit anderen leichter ausgleichen
können und
deshalb nicht erfasst werden. Andererseits ist im CRC-Code ein geeignetes
Polynom im Signaturregister der Prüflogik Chk_logic realisiert,
um Fehler in den gelesenen Daten zu erfassen. In diesem Fall ist das
Signaturregister weitaus komplexer als ein herkömmliches Register. Der Komplexität des gewählten Polynoms
entsprechend wird ermöglicht,
einen oder mehrere Fehler zu erfassen.
-
Die
gleichen Daten, die von der Prüflogik Chk_logic
gelesen wurden, kommen auch beim Mikroprozessor CPU an (siehe 1),
der diese aber nicht verarbeitet, da er sich im Wartezustand befindet.
-
Der
Zugriff des endlichen Automaten FSM auf den Speicher MEMORY schließt ab, wenn
der Datenteil, der der Endadresse Stop_Add entspricht, gelesen und
geprüft
worden ist.
-
Wenn
im ersten aus dem Speicher MEMORY gelesenen Abschnitt Fehler gefunden
werden, kann die Steuerlogik Ctrl_logic entscheiden, das Speichersystem 100 wiederherzustellen
(Systemneustart), besonders dann, wenn der erfasste Fehler Prozeduren
und Routinen betrifft, die grundlegend für die anschließende korrekte
Funktion des Systems 100 sind. Gleichzeitig aktiviert die
Steuerlogik Ctrl_logic einen Eingangs-/Ausgangs-Pin des Chips, in
den das System 100 integriert ist, in anderen Worten, es
wird ein vorgegebenes logisches Signal an diesen Pin ausgegeben.
Auf diese Weise wird einem externen Überwachungschip mitgeteilt,
dass die Prüfeinrichtung
NVMCC einen Fehler gefunden hat.
-
Anstelle
des externen Überwachungschips kann
ein logischer Schaltkreis platziert werden, der die Netzspannung
im Fall, dass die Prüfeinrichtung NVMCC
das Vorhandensein eines Fehlers erfasst, vom Chip des Systems 100 entfernt.
-
Wenn
im Gegenteil keine Fehler im untersuchten ersten Abschnitt des Speichers
MEMORY gefunden werden, informiert der Automat FSM den Mikroprozessor
CPU über
dieses Ergebnis, indem er aufhört,
das zweite Wartesignal WS2 zu senden und indem er gleichzeitig den
Multiplexer MUX auf dem zweiten Adress-Bus Add_bus2 über das
Auswahlsignal AdBS umschaltet.
-
An
diesem Punkt greift der Mikroprozessor CPU, der die Steuerung des
Systems 100 erhalten hat, auf den Speicher MEMORY beginnend
ab den Plätzen,
die gerade eben kontrolliert wurden, zu, indem er das erste Steuersignal
CS1, das an den Speicher MEMORY auf dem Bus Ctrl_signals gesendet wurde,
aktiviert und seine eigenen Adressen auf dem zweiten Adress-Bus
Add_bus2 sendet. Gleichzeitig verändert der Mikropro zessor CPU
die Startadresse Start_Add, die Endadresse Stop_Add und den Schrittwert
Add_Step in den Registern des Adressgenerators Add_Gen, um festzulegen,
welcher Abschnitt des Speichers MEMORY in einem nachfolgenden Zugriff
der Prüfeinrichtung
NVMCC geprüft werden
muss (der gesamte restliche Speicher oder nur ein Teil davon). Ferner
legt der Mikroprozessor CPU einen logischen Wert 1 im Auswahlregister OMSR
in Entsprechung mit dem neuen Zugriffsmodus für den Speicher MEMORY, zum
Beispiel den Mix-Modus, fest. Wahlweise legt der Mikroprozessor CPU
auch einen Prüfwert
innerhalb der Prüflogik Chk_logic
fest.
-
Während der
Mikroprozessor CPU auf den Speicher MEMORY zugreift, bereitet die
Steuerlogik Ctrl_logic den Start einer neuen Kontrollprozedur vor, indem
sie sich an den Adressgenerator Add_Gen wendet, der die neue Startadresse
Start_Add auf dem ersten Adress-Bus Add_bus1 bereitstellt.
-
In
keinem Fall kann die Steuerlogik Ctrl_logic im Mix-Modus auf den
Speicher MEMORY zugreifen, außer
wenn der Mikroprozessor CPU nicht auf den Speicher MEMORY zugreift.
Deshalb kann die neue Eingangsstartadresse Start_Add nicht zum Speicher MEMORY
gelangen, bis der Multiplexer MUX den Durchgang nur für die Adressen,
die auf dem zweiten Adress-Bus Add_bus2 vorhanden sind, freigibt.
In Entsprechung mit den Zeitintervallen, in denen der Mikroprozessor
CPU nicht auf den Speicher MEMORY zugreift (das erste Steuersignal
CS1 ist deaktiviert), aktiviert die Steuerlogik Ctrl_logic das zweite Steuersignal
CS2, um auf den Speicher MEMORY zuzugreifen, und schaltet dabei
zeitweilig den Multiplexer MUX (immer über das Signal AdBS) zwischen dem
zweiten Adress-Bus Add_bus2 und dem ersten Adress-Bus Add_bus1 um.
Auf diese Weise wird die Startadresse Start_Add an den Speicher
MEMORY geliefert und der ihr entsprechende Datenwert wird in dem
Signaturregister der Prüflogik
Chk_logic über den
Datenbus Read_Data_bus abgespeichert. An diesem Punkt ist der Prüfprozess
für das
Auftreten von Fehlern der gleiche wie der bereits früher beschriebene.
-
Wenn
im Gegensatz hierzu der Mikroprozessor CPU ununterbrochen auf den
Speicher MEMORY zugreift, dann informiert der Zeitüberwachungszähler TOC
den Automaten FSM mit dem Warnsignal AS, dass der vorgegebene Zeitlimitwert
erreicht ist, in anderen Worten dass die maximale Zeitfrist seit
der letzten Prüfung
abgelaufen ist. Als Konsequenz unterbricht der Automat FSM den Prozess
des Mikroprozessors CPU, indem er das zweite Wartesignal WS2 aktiviert
und die Startadresse Start_Add an den Speicher MEMORY schickt, um
die Prüfprozedur
zu starten. Gleichzeitig setzt der Automat FSM mit den zweiten Befehlen
RIC1 den Zeitüberwachungszähler TOC
zurück.
-
Der
Mikroprozessor CPU im Wartezustand kann nicht auf den Speicher MEMORY
zugreifen, er kann jedoch Daten von den anderen peripheren Geräten „Peripheriegeräte° empfangen
und verarbeiten.
-
Sobald
der Prüfprozess
des Abschnitts des fraglichen Speichers MEMORY abgeschlossen ist, sendet
die Steuerlogik Ctrl_logic, wenn keine Fehler gefunden worden sind,
an den Mikroprozessor CPU ein erstes Unterbrechungssignal, das sowohl
den Abschluss des Prüfprozesses
als auch die Fehlerfreiheit angibt. Als Folge setzt der Mikroprozessor
CPU die Prüfung
des Systems 100 fort und setzt in der gleichen Weise, wie
es oben bereits beschrieben ist, die Startadresse Start_Add und
die Endadresse Stop_Add für
den nachfolgenden Abschnitt des Speichers MEMORY, der geprüft werden
soll, zurück.
Es ist möglich,
die Prüfung
für die
anderen Abschnitte des Speichers MEMORY zu wiederholen, bis die
Prüfung
aller darin enthaltenen Daten vollständig ist.
-
Wenn
im Gegensatz hierzu Fehler in dem fraglichen Abschnitt des Speichers
MEMORY erfasst worden sind, sendet die Steuerlogik Ctrl_logic ein zweites
Unterbrechungssignal an den Mikroprozessor CPU, so dass dieser entscheiden
kann, was zu tun ist. An diesem Punkt kann der Mikroprozessor CPU
entscheiden, ob er entweder seine eigenen Prozesse unterbricht,
wenn er den erfassten Fehler als ernstlich erachtet, oder ob er
das Vorhandensein von Fehlern in den Prozeduren, die sich auf den
geprüften
Abschnitt des Speichers beziehen, signalisiert, so dass diese in
Zukunft nicht mehr berücksichtigt
werden.
-
Nimmt
man das System zur Steuerung von Funktionen eines Kraftfahrzeugs
als Beispiel, reicht es aus, wenn ein Fehler in den Prozeduren,
die die Bewegung eines elektrischen Fensters steuern, erfasst, die
betroffene Prozedur als nicht ausführbar zu kennzeichnen und gleichzeitig
den Benutzer auf den vorhandenen Fehler aufmerksam zu machen. Auf diese
Weise vermeidet man, dass der Mikroprozessor CPU in Zukunft fehlerhafte
Befehle ausführt,
die das gesamte System betreffen.
-
Sobald
der gesamte Speicher MEMORY mindestens einmal (nach dem Neustart)
in den vorher beschriebenen Modi (Block und Mix) geprüft worden
ist, fixiert der Mikroprozessor CPU während der Arbeit des Systems 100 nach
einer besonderen Ausführungsform
der Erfindung einen logischen Wert 1 im Funktionsmodusauswahl-Register
OMSR in dem Bit, das dem Schatten-Modus entspricht. Mit dieser Anordnung
wird die Prüfeinrichtung
NVMCC die Prüfung
der Speicherplätze
im Speicher MEMORY zyklisch durchführen, ohne die Durchführung von
Prozessen des Mikroprozessors CPU zu verzögern.
-
Alternativ
ist es möglich,
den Mix-Modus zu aktivieren und dadurch die Prüfung der Plätze des Speichers MEMORY zyklisch
durchzuführen,
um so sicherzustellen, dass der Speicher selbst innerhalb eines
vorgegebenen Zeitintervalls komplett nachgeprüft wird. Es ist zum Beispiel
möglich,
es so einzurichten, dass der gesamte Speicher MEMORY innerhalb eines
Zeitintervalls, das nicht größer als
eine Anzahl N von Zeitlimitintervallen ist, überprüft wird.
-
Diese
Anordnung garantiert dem Benutzer, dass der gesamte Inhalt des Speichers
MEMORY periodisch geprüft
wird (zum Beispiel alle 10 Minuten).
-
Ein
gewichtiger Vorteil der Erfindung betrifft die Möglichkeit, dass die Prüfung der
Speicherplätze des
Speichers MEMORY durch die Prüfeinrichtung NVMCC
vorgenommen werden kann, die klar vom Mikroprozessor CPU abgegrenzt
ist, in anderen Worten, ihre Steuerlogik Ctrl_logic ist vom Mikroprozessor
CPU klar abgegrenzt. Auf diese Weise sind dem Mikroprozessor CPU
nicht die Prüfprozesse
auf die Richtigkeit der gespeicherten Daten zugeordnet und deshalb
ist es nicht erforderlich, dass seine Leistung besonders hoch ist.
Tatsächlich
schaltet sich der Mikroprozessor CPU in dem beschriebenen Beispiel nur
ein, um die Startadresse, die Endadresse, den Schrittwert und das
Bit, das dem Zugriffmodus der Prüfeinrichtung
NVMCC auf den Speicher MEMORY entspricht, zu verändern.
-
Ferner
kann die Steuerlogik Ctrl_logic der Prüfeinrichtung NVMCC eine einfachere
Struktur als ein Mikroprozessor besitzen, da sie eine geringere Anzahl
von Prozessen als der letztgenannte ausführt. Als Folge hiervon kostet
die Steuerlogik Ctrl_logic weitaus weniger als ein Mikroprozessor.
-
Ferner
führt im
Schatten-Modus die Prüfeinrichtung
NVMCC zweckmäßigerweise
die Prüfung der
Daten im Speicher MEMORY durch, ohne die Funktion des Mikroprozessors
CPU einzuschränken, sondern
in einer konfliktfreien Weise mit ihm zusammenzuarbeiten.
-
Als
Alternative besitzt der oben beschriebene Mix-Modus besondere Vorteile,
da er es ermöglicht,
die Prüfung
des Speichers MEMORY auf eine zyklische Weise in einem vorgegebenen
Zeitintervall durchzuführen,
wobei die Zugriffe des Mikroprozessors CPU mit der Zeitüberschreitung
unterbrochen werden.
-
Das
beschriebene System bietet eine beträchtliche Flexibilität in der
Auswahl der Speicherabschnitte, die geprüft werden sollen, in anderen
Worten in der Bestimmung des Umfangs des Prüfungsziels des Speichers und
in der Ermittlung der entsprechenden Adressen.
-
Es
leuchtet ein, dass ein Kenner der Technik weitere Modifikationen
und Varfanten des Speichersystems der vorliegenden Erfindung zum
Zweck der Erfüllung
von unvorhergesehenen und besonderen Anforderungen erstellen kann.
-
Nach
einer möglichen
Variante ist die Prüfeinrichtung
NVMCC zum Beispiel ein Koprozessor oder eine festverdrahtete logische
Schaltung, außerhalb
des Speichers MEMORY oder darin integriert, die in der Lage ist,
den Inhalt des Speichers MEMORY automatisch zu prüfen, wobei
sie die Wechselbeziehungen mit den Prozessen, die vom Mikroprozessor
CPU durchgeführt
werden, reduziert oder gänzlich
ausschließt.
-
Ferner
kann der Speicher MEMORY des Systems 100 Zellen vom flüchtigen
Typ wie etwa RAM als Alternative zu den nichtflüchtigen umfassen.
-
Schließlich kann
eine alternative Lösung,
anstatt das Speichersystem, das Ziel der Erfindung ist, in einen
einzigen Chip zu integrieren, vorsehen, abgegrenzte Chips für den Speicher
MEMORY, für
den Mikroprozessor CPU und für
die Prüfeinrichtung NVMCC
zu bilden.
-
Die
oben erwähnten
Varianten und Modifikationen sind alle im Rahmen der Erfindung enthalten, wie
es durch die angegebenen Ansprüche
definiert ist.