DE69400628T2 - Verfahren und Vorrichtung zur Überwachung der Daten eines Rechners - Google Patents

Verfahren und Vorrichtung zur Überwachung der Daten eines Rechners

Info

Publication number
DE69400628T2
DE69400628T2 DE1994600628 DE69400628T DE69400628T2 DE 69400628 T2 DE69400628 T2 DE 69400628T2 DE 1994600628 DE1994600628 DE 1994600628 DE 69400628 T DE69400628 T DE 69400628T DE 69400628 T2 DE69400628 T2 DE 69400628T2
Authority
DE
Germany
Prior art keywords
data
processor
bus
memory
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1994600628
Other languages
English (en)
Other versions
DE69400628D1 (de
Inventor
Olivier Humez
Pierre Roussel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales Avionics SAS
Original Assignee
Thales Avionics SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales Avionics SAS filed Critical Thales Avionics SAS
Application granted granted Critical
Publication of DE69400628D1 publication Critical patent/DE69400628D1/de
Publication of DE69400628T2 publication Critical patent/DE69400628T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

  • Die vorliegende Erfindung, wie sie in den Ansprüchen definiert ist, betrifft ein Verfahren und eine Vorrichtung zur Steuerung von Daten, die von einem Mikroprozessor innerhalb eines Rechners manipuliert werden, und insbesondere von Daten, die vom Mikroprozessor in den RAM genannten Arbeitsspeichern des Rechners gespeichert werden.
  • Sie betrifft insbesondere, aber nicht ausschließlich, digitale Rechner, die eine große Betriebssicherheit erfordem, wie z.B. Bordrechner, die in der Luftfahrt verwendet werden.
  • Ein digitaler Rechner, der ein Programm durchführt, verwendet Variablen, die er entweder in den inneren Registern eines Mikroprozessors oder in RAM-Speichern speichert, um sie bei späteren Berechnungen wieder zu verwenden. Das Problem besteht dann darin, die Integrität dieser Daten zu gewährleisten.
  • Zwischen dem Zeitpunkt, in dem eine Dateneinheit gespeichert wird, und dem Zeitpunkt, in dem sie für eine neue Verwendung in einem Programm erneut gelesen wird, kommt es nämlich vor, daß der Wert dieser Dateneinheit aufgrund eines Fehlers verändert wird.
  • Um diesen Nachteil zu beseitigen, besteht die einfachste Lösung darin, die Daten mehrfach in verschiedenen Speicherzonen zu speichern. Wenn eine Dateneinheit erneut gelesen wird, genügt es dann, alle Werte der Dateneinheit, die gespeichert wurden, wieder zu lesen und sie miteinander zu vergleichen. Wenn diese Werte unterschiedlich sind, kann mit Hilfe eines Mehrheitswahlsystems bestimmt werden, welcher Wert als richtig betrachtet werden kann.
  • Die Druckschrift "Patent Abstracts of Japan Vol 8, Nº 228 (P-308) (1665), 19. Oktober 1984" und die Druckschrift JP-A-107495 beschreiben eine solche Vorrichtung.
  • Wenn diese Lösung auch eine gute Sicherheit gewährleistet, so ist sie jedoch sehr nachteilig in Bezug auf die erforderliche Speichergröße und in Bezug auf die Dauer der Zugriffe auf den Speicher, sowohl beim Lesen als auch beim Schreiben. Um ein Mehrheitswahlsystem anwenden zu können, muß man nämlich die Größe des normalerweise vom Mikroprozessor zum Speichern der Daten verwendeten Speichers mindestens verdreifachen. Die Dauer des Einschreibens einer Dateneinheit wird so oft vervielfacht, wie die gleiche Dateneinheit in den Speicher eingeschrieben wird. Gleiches gilt für die Lesezeit einer Dateneinheit, zu der man die Dauer des Vergleichs der gelesenen Werte und ggf. die Bestimmung des richtigen Werts hinzufügen muß.
  • Eine zweite Lösung besteht darin, Paritätsbits hinzuzufügen (z.B. 1 Paritätsbit je Byte). Dieses Paritätsbit wird zum Zeitpunkt des Speicherns der Dateneinheit berechnet und dann zugleich mit der Dateneinheit in der Speicherzone gespeichert. Beim Lesen der Dateneinheit werden die Pantätsbits neu berechnet und mit denen verglichen, die gespeichert wurden. Wenn ein Unterschied auftritt, wird ein Signal zum Prozessor gesendet, um ihm anzuzeigen, daß eine Speicheranomalie vorliegt. Diese Lösung kann verbessert werden, indem der Dateneinheit bei ihrem Einspeichern Fehlerkorrekturkodes hinzugefügt werden, die es ermöglichen, den Wert der Dateneinheit zu korrigieren, wie z.B. Hamming-Kodes.
  • Diese Lösung führt ebenfalls dazu, den Datenspeicher beträchtlich zu vergrößern und die Dauer der Lese- und Schreibvorgänge der Daten im Speicher zu verlängern. Außerdem ist die Wirksamkeit der Erfassung eines Fehlers nicht ausreichend und kann nur verbessert werden, indem die erforderliche Größe des Speichers vergrößert wird und indem komplexere Lese- und Schreibvorgänge verwendet werden.
  • Um diese Nachteile zu vermeiden, hat die Anmelderin folgendes festgestellt.
  • Ein von einem Mikroprozessor durchgeführtes Programm besteht im allgemeinen aus einem Kern, der Prozeduren aufruft, um Datenverarbeitungen durchzuführen.
  • Dieses Programm manipuliert Variablen verschiedener Arten, d.h. die den Prozeduren gelieferten sogenannten Eingangsvariablen, die Ausgangsvariablen oder Ergebnisse, die von den Prozeduren geliefert werden, und die der gerade durchgeführten Prozedur eigenen Variablen.
  • Die Eingangs- und Ausgangsvariablen werden im allgemeinen von mehreren Prozeduren geteilt und können folglich als global bezeichnet werden.
  • Außerdem kann man feststellen, daß im allgemeinen die Anzahl globaler Variablen für jede Prozedur relativ gering ist (weniger als 20 Wörter mit 32 Bits) und auch, daß die kumulierte Größe der lokalen Variablen einer Prozedur 64000 Bytes nicht überschreitet. Um die Speicherzuverlässigkeit dieser globalen Daten zu erhöhen, genügt es, die den globalen Variablen, die für den Ablauf eines Programmes wesentlich sind, zugeteilte Speicherzone zu verdreifachen und bei ihnen eine Methode der dreifachen Speicherung anzuwenden.
  • Bei den lokalen Variablen jeder Prozedur kann man sich auf eine Speicherzone von 64000 Bytes beschränken, bei der ebenfalls eine Methode der dreifachen Speicherung angewendet wird, und diese Speicherzone dynamisch den lokalen Daten der gerade durchgeführten Prozedur zuordnen.
  • Diese Methode ermöglicht es einerseits, einen großen Speicherplatz virtuell zu verdreifachen, indem dynamisch eine doppelte Kopie der gerade verwendeten Speicherzone zugeteilt wird, und andererseits, im Fall eines Fehlers eine richtige Dateneinheit wiederzugewinnen. Diese Methode beeinträchtigt den Prozessor jedoch stark, der drei aufeinanderfolgende Schreibvorgänge an verschiedenen Adressen des Speichers durchführen oder dreimal hintereinander die gleiche Variable lesen und überprüfen muß, ob die drei gelesenen Werte identisch sind.
  • Diese Methode führt also dazu, die Rechenleistung des Prozessors stark zu verschlechtern, indem alle Speicherzugriffe verdreifacht werden.
  • Die Erfindung hat insbesondere zum Ziel, diese Nachteile zu vermeiden, indem sie ein Verfahren zur Steuerung von Daten vorschlägt, die von einem Rechner manipuliert werden, der einen Prozessor aufweist, der über einen Adressierbus, einen Datenbus und Übertragungsleitungen für Steuersignale mit Speichern verbunden ist, wobei der Prozessor ein Programm ausführt, das aus Prozeduren besteht, wobei jede der durchgeführten Prozeduren insbesondere Variablen verwen det, die ihr eigen sind und die in einer ersten Speicherzone gruppiert angeordnet sind.
  • Dieses Verfahren ist dadurch gekennzeichnet, daß es aufweist:
  • - das Lesen der Steuersignale, der Daten und der Adressen, die zwischen dem Prozessor und der ersten Speicherzone übertragen werden, durch einen außerhalb des Prozessors angeordneten Automaten,
  • - das Anlegen dieser Steuersignale durch den Automaten an mindestens zwei weitere Speicherzonen,
  • - wenn diese Steuersignale einem Speicher-Einschreibbefehl entsprechen, das Einschreiben der auf dem Datenbus gelesenen Daten einheit an der auf dem Adressierbus gelesenen Adresse gleichzeitig in den beiden anderen Speicherzonen,
  • - wenn diese Steuersignale einem Lesebefehl entsprechen, das gleichzeitige Lesen der Daten, die in den anderen Speicherzonen an der auf dem Adressierbus gelesenen Adresse gespeichert sind, der Vergleich dieser Daten miteinander und mit der auf dem Datenbus gelesenen Dateneinheit, und wenn alle diese Daten nicht identisch sind, das Senden eines Unterbrechungssignals an den Prozessor, der dann entscheiden kann, welche Dateneinheit er berücksichtigen muß.
  • Durch diese Maßnahmen wird der Prozessor vollständig von den Aufgaben der Verwaltung der Vielfachspeicherung entlastet. Es reicht, einfach in Höhe des Prozessors eine Prozedur vorzusehen, die bei Empfang des Unterbrechungssignals ausgeführt wird und die darin besteht, das in einem besonderen dem Prozessor zugänglichen Register gespeicherte Ergebnis der Vergleiche zu lesen, um zu bestimmen, welche Dateneinheit die falsche ist und welche somit die Dateneinheit ist, die in der Folge des gerade laufenden Programms berücksichtigt werden soll. Zu diesem Zweck hat der Prozessor Zugriff zu den anderen Speicherzonen.
  • Vorteilhafterweise ist jedes Speicherfach der beiden zweiten Speicherzonen einem Präsenzbit zugeordnet, das auf 1 gesetzt wird, wenn eine Dateneinheit in dieses Fach eingeschrieben wird. Wenn es auf Null ist, gibt dieses Bit das Fehlen einer Dateneinheit im entsprechenden Speicherfach an. Es wird zur gleichen Zeit wie der Vergleich der in den beiden zweiten Speicherzonen gespeicherten Daten getestet. Das Ergebnis des Tests dieses Bits wird in dem gleichen Register gespeichert wie dasjenige, das das Ergebnis der drei Vergleiche enthält, und wenn das Ergebnis dieses Tests angibt, daß dieses Bit auf Null ist, wird ein Unterbrechungssignal an den Prozessor gesendet. Diese Maßnahme ermöglicht dem Prozessor, das zufällige Lesen eines nicht von ihm selbst initialisierten Werts in einem Speicherfach zu erfassen.
  • Gemäß einer Besonderheit der Erfindung enthält dieses Verfahren auch bei der Aktivierung einer Prozedur die Initialisierung durch den Automaten von allen Speicherfächern der beiden zweiten Speicherzonen, ihrer zugeordneten Präsenzbits.
  • Wie oben erwähnt, betrifft die Erfindung auch eine Vorrichtung zur Anwendung des Verfahrens, wobei diese Vorrichtung einen Automaten und zwei Bildspeicher einer Zone des Speichers des Rechners aufweist, deren Größe der maximalen kumulierten Größe der zu einem gegebenen Zeitpunkt manipulierten lokalen Daten entspricht.
  • Dieser Automat enthält:
  • - einen Steuerblock, der mit den Übertragungsleitungen der Steuersignale zwischen dem Prozessor und seinem Speicher verbunden ist und der die anderen Organe des Automaten steuert,
  • - zwei innere Datenbusleitungen, die einerseits mit den beiden Bildspeichern und andererseits mit dem Datenbus des Prozessors über zwei bidirektionale Pufferbrücken verbunden sind,
  • - einen inneren Adressierbus, der einerseits mit den beiden Bildspeichern und andererseits mit dem Adressierbus über eine Pufferbrücke verbunden ist,
  • - drei Komparatoren, die auf Befehl des Steuerblocks die auf den inneren Busleitungen vorhandenen Daten miteinander und mit der auf dem Datenbus des Prozessors vorhandenen Dateneinheit vergleichen und die das Ergebnis der Vergleiche in ein Zustandsregister eintragen,
  • - zwei Blöcke, um das Präsenzbit auf 1 zu zwingen, die das Präsenzbit, das den Daten bei ihrem Einschreiben in die Bildspeicher zugeordnet ist auf 1 setzen,
  • - zwei Präsenzbit-Testorgane, die auf Befehl des Steuerblocks die Präsenzbits testen, die den auf den beiden inneren Busleitungen vorhandenen beiden Dateneinheiten zugeordnet sind, und die das Ergebnis der Tests in das Zustandsregister eintragen, und
  • - zwei Blöcke zur Nullsetzung, die einem Adressengenerator zugeordnet sind und die auf Befehl des Steuerblocks alle in den beiden Speichern gespeicherten Daten sowie ihr zugeordnetes Präsenzbit auf Null setzen.
  • Nachfolgend wird eine Ausführungsform der erfindungsgemäßen Vorrichtung als nicht einschränkend zu verstehendes Beispiel unter Bezug auf die beiliegenden Zeichnungen näher erläutert.
  • Figur 1 zeigt schematisch die Architektur eines Rechners, in die der Automat zur Steuerung der Daten integriert ist.
  • Figur 2 zeigt die Architektur des Automaten, der mit den beiden Speichern verbunden ist.
  • Der in Figur 1 gezeigte Rechner enthält einen Mikroprozessor 1, der mit einem flüchtigen RAM-Speicher 2 über Daten- und Adressierbusleitungen 3 und Übertragungsleitungen 9 für Steuersignale verbunden ist. Er enthält ebenfalls einen Automaten 6, der sowohl mit den Busleitungen 3 als auch mit den Übertragungsleitungen 9 verbunden ist. Dieser Automat ist ausgebildet, um zwei flüchtige RAM-Speicher 4, 5 zu steuern, deren Inhalt das Bild eines Teils des Speichers 2 ist, in dem die lokalen Daten der gerade ablaufenden Prozedur gespeichert sind, die von einem Kern aufgerufen wird. Hierzu ist der Automat mit diesen beiden Bildspeichern über Datenund Adressierbus leitungen 7, 8 und Übertragungsleitungen 11, 12 für Steuersignale verbunden. Diese beiden Speicher haben je eine Kapazität von z.B. 64000 Bytes, was im allgemeinen bei weitem ausreicht, um alle lokalen Variablen einer Prozedur zu enthalten.
  • In Figur 2 enthält der Automat zunächst einmal einen Dekodierer, der es ermöglicht, ausgehend von den auf dem Adressierbus 23 des Mikroprozessors 1 vorhandenen Werten Signale CS1, CS2, CS3, LOCAL, FLUSH zur Steuerung des Steuerblocks 24 zu erzeugen.
  • Dieser Steuerblock 24 empfängt außerdem vom Mikroprozessor 1 die Lesebefehle RD und die Schreibbefehle WR im Speicher und kann ihm ein Unterbrechungssignal IT senden. Er steuert insbesondere zwei bidirektionale Pufferbrücken 27, 28, die mit dem Datenbus 22 des Mikroprozessors 1 verbunden sind, und eine Pufferbrücke 26, die mit dem Adressierbus 23 des Mikroprozessors 1 verbunden ist.
  • Die beiden bidirektionalen Pufferbrücken 27, 28 sind außerdem je mit einem inneren Datenbus 30 bzw. 31 verbunden, während die Pufferbrücke 26 mit einem Adressierbus 29 verbunden ist, der es ermöglicht, alle Speicherfächer der beiden Bildspeicher 4, 5 zu adressieren. Wenn so zum Beispiel die beiden Bildspeicher je 64000 Bytes aufweisen, werden nur die 16 am wenigsten signifikanten Bits der Adressierbusleitung 23 an den inneren Bus 29 übertragen.
  • Der Automat 6 enthält außerdem drei Komparatoren 37, 33, 34, die vom Steuerblock 24 gesteuert werden und zwischen zwei Datenbusleitungen angeordnet sind, um die auf diesen beiden Busleitungen übertragenen Daten zu vergleichen, d.h.:
  • - einen ersten Komparator 37, der zwischen den beiden inneren Datenbusleitungen 30, 31 angeordnet ist,
  • - einen zweiten Komparator 33 und einen dritten Komparator 34, die zwischen dem Datenbus 22 des Mikroprozessors 1 und den beiden inneren Datenbusleitungen 30 bzw. 31 des Automaten 6 angeordnet sind.
  • Diese drei Komparatoren 37, 33, 34 werden gleichzeitig vom Steuerblock 24 gestartet und liefern ein Ergebnis FLAG1 bzw. FLAG2 bzw. FLAG3, das in einem Zustandsregister 25 gespeichert wird.
  • Der Automat besitzt außerdem zwei Blöcke 40, 41 zum auf 1 setzen des Präsenzbits, die mit den inneren Datenbusleitungen 30 bzw. 31 verbunden sind und die Präsenzbits der Daten auf 1 setzen sollen, die gerade in die Bildspeicher 4, 5 eingeschrieben werden.
  • Zwei Präsenzbit-Testorgane 32, 35 sind mit den inneren Datenbusleitungen 30 bzw. 31 verbunden, um ein Bit zu testen, das jedem Speicherfach der Bildspeicher 4 bzw. 5 zugeordnet ist. Dieses Bit ermöglicht es, die Speicherfächer, in denen Daten gespeichert wurden, von den noch leeren Speicherfächern zu unterscheiden.
  • Diese Präsenzbit-Testorgane 32, 35 liefern auf Befehl des Steuerblocks 24 ein Ergebnis FLAG4 bzw. FLAG5, das ebenfalls in das Zustandsregister 25 eingeschrieben wird.
  • Der Steuerblock 24 ist so ausgebildet, dab er auf die folgenden Befehle antworten kann, die vom Mikroprozessor 1 kommen:
  • - ein dreifaches Einschreiben einer lokalen Dateneinheit in den Speicher (WR und LOCAL aktiv),
  • - ein dreifaches Lesen einer lokalen Dateneinheit im Speicher (RD und LOCAL aktiv),
  • - eine Initialisierung der Bildspeicher 4, 5 (FLUSH aktiv),
  • - das Lesen des Inhalts des Zustandsregisters (CS3 aktiv) und
  • - das Lesen der Dateneinheit, die sich an der auf dem inneren Adressierbus 29 vorhandenen Adresse befindet, in einen der beiden Bildspeicher 4, 5 (CS1 oder CS2 aktiv, je nachdem, ob man zum Bildspeicher 4 oder 5 Zugriff haben möchte).
  • Wenn der Steuerblock 24 einen Befehl zum dreifachen Einschreiben empfängt, werden die bidirektionalen Pufferbrücken 27, 28 derart aktiviert, daß sie die auf dem äußeren Bus 22 vorhandene Dateneinheit gleichzeitig zu den beiden inneren Busleitungen 30, 31 übertragen. Die Pufferbrücke 26 wird auch aktiviert, um die 16 am wenigsten signifikanten Bits der auf dem Adressierbus 23 vorhandenen Adresse zum inneren Adressierbus 29 zu übertragen. Außerdem sendet der Steuerblock 24 ein Schreibsignal WR an die beiden Bildspeicher 4, 5.
  • Diese Vorgänge ermöglichen es, die Dateneinheit, die der Mikroprozessor 1 gerade in seinen RAM-Speicher 2 speichert, gleichzeitig in den beiden Bildspeichern 4, 5 an der Adresse zu speichern, die von den 16 am wenigsten signifikanten Bits der vom Mikroprozessor 1 auf seinem Adressierbus 23 ausgegebenen Adresse geliefert wird. Während dieser Operation wird das dieser Dateneinheit zugeordnete Präsenzbit in den Bildspeichern 4, 5 auf 1 gesetzt.
  • Wenn der Mikroprozessor 1 das Lesen einer lokalen Dateneinheit bei einer Prozedur in seinem RAM-Speicher 2 durchführt, empfängt der Steuerblock 24 gleichzeitig einen Befehl des dreifachen Lesens. Zu diesem Zeitpunkt überprüft er erst einmal, daß keines der Signale CS1, CS2, CS3 aktiv ist und aktiviert die Pufferbrücke 26, um die auf dem äußeren Adressierbus 23 vorhandene Adresse zum inneren Adressierbus 29 zu übertragen. Dann steuert er das gleichzeitige Lesen der beiden Bildspeicher 4, 5 an der Adresse, die sich auf dem inneren Adressierbus 29 befindet, indem er ihnen ein Lesesignal RD sendet. Diese Operation ermöglicht es, das Schreiben der in den beiden Bildspeichern 4, 5 vorhandenen Daten an der von dem inneren Adressierbus 29 gelieferten Adresse auf den beiden inneren Datenbusleitungen 30, 31 zu starten.
  • Von diesem Zeitpunkt an startet der Steuerblock 24 gleichzeitig die drei Komparatoren 33, 34, 37 und die beiden Präsenzbit-Testorgane 32, 35, die das Zustandsregister aktualisieren und ein Unterbrechungsignal IT an den Mikroprozessor 1 senden, wenn eine Anomalie festgestellt wird (Erfassung eines Unterschieds zwischen den gelesenen Daten oder ein Präsenzbit auf Null). Es ist anzumerken, daß während des Lesens der Bildspeicher 4, 5 der Mikroprozessor 1 seinen Speicher 2 liest, und somit die Dateneinheit, die er gerade liest, auf dem äußeren Datenbus 22 vorhanden ist.
  • Wenn keine Anomalie festgestellt wird, empfängt der Mikroprozessor 1 keinerlei Signal vom Automaten 6 und aus der Sicht des Mikroprozessors 1 läuft alles ab, als ob ein einfacher Lesevorgang durchgeführt würde.
  • Im gegenteiligen Fall kann der Mikroprozessor 1 das Zustandsregister 25 konsultieren, um zu bestimmen, welches die gültigen Daten sind, und kann auf den Inhalt der Bildspeicher 4, 5 an der Adresse der Dateneinheit Zugriff haben, die er lesen will.
  • Wenn der Steuerblock 24 das Signal CS3 empfängt, startet er zu diesem Zweck die Übertragung des Inhalts des Zustandsregisters auf den äußeren Datenbus 22.
  • Wenn der Steuerblock 24 eines der Signale CS1 oder CS2 empfängt, aktiviert er die Pufferbrücke 26 und eine der beiden bidirektionalen Pufferbrücken 27, 28, je nachdem, ob das Signal CS1 oder das Signal CS2 aktiv ist, um die auf dem äußeren Bus 23 vorhandene Adresse zum inneren Bus 29 und die Dateneinheit, die auf einer der inneren Busleitungen 30, 31 vorhanden ist, zum äußeren Datenbus 22 zu übertragen. Gleichzeitig sendet er einen Lesebefehl RD des Bildspeichers 4 oder 5 entsprechend dem aktiven Signal CS1 oder CS2, was das Schreiben der Dateneinheit, die an der vom inneren Adressierbus 29 gelieferten Adresse vorhanden ist, auf den innere Bus 30 oder 31 bewirkt.
  • Beim Übergang von einer Prozedur zur anderen ist es notwendig, die beiden Bildspeicher 4, 5 zu initialisieren. Zu diesem Zweck stellt der Automat seiner Umgebung den Befehl FLUSH, der Blöcke zur Nullsetzung 36, 38 aktiviert, sowie einen Adressengenerator 39 zur Verfügung, um alle Speicherfächer der Bildspeicher 4, 5 zu durchlaufen und diese letzteren auf Null zu zwingen, sowie ihr zugeordnetes Präsenzbit.
  • Der Automat 6 kann mit Hilfe eines einzigen elektronischen Bauteils des Typs ASIC (Application Specific Integrated Circuit) hergestellt werden, das alle seine Elemente integriert.
  • Diese Vorrichtung ist besonders geeignet für die Prozessoren der Familie 286/386/486, die von der Firma INTEL hergestellt werden und die einen Betriebsmodus aufweisen, der geschützt ist, indem ihr adressierbarer Speicherraum in Segmente von z.B. 64000 Byte segmentiert wird. Um ein Programm auszuführen, sind so ein Speichersegment dem Kode des Programms, vier Segmente den Daten und ein Segment der Battene zugeordnet. Gemäß dieser Anordnung können eines der vier Datensegmente den lokalen Daten und die anderen den globalen Daten zugeordnet sein.
  • Um die Sicherheit noch zu erhöhen, ist es ebenfalls möglich, ein gemeinsames Batteriesegment für alle Prozeduren zu definieren und ihm eine weitere Vorrichtung zur Datensteuerung wie oben beschrieben zuzuordnen.

Claims (8)

1. Verfahren zur Steuerung von Daten, die von einem Rechner manipuliert werden, der einen Prozessor (1) aufweist, der über einen Adressierbus (23), einen Datenbus (22) und Übertragungsleitungen (9) für Steuersignale mit Speichern (2) verbunden ist, wobei der Prozessor (1) ein Programm ausführt, das aus Prozeduren besteht, wobei jede der durchgeführten Prozeduren insbesondere Variablen verwendet, die ihr eigen sind und die in einer ersten Speicherzone gruppiert angeordnet sind,
dadurch gekennzeichnet, daß es bei der Durchführung einer Prozedur aufweist:
- das Lesen der Steuersignale, der Daten und der den Daten eigenen, spezifisch von der Prozedur verwendeten Adressen, die zwischen dem Prozessor (1) und der ersten Speicherzone übertragen werden, durch einen außerhalb des Prozessors (1) angeordneten Automaten (6),
- das Anlegen dieser Steuersignale durch den Automaten an mindestens zwei weitere Speicherzonen (4, 5),
- wenn diese Steuersignale einem Speicher-Einschreibbefehl entsprechen, das Einschreiben der auf dem Datenbus (22) gelesenen Dateneinheit an der auf dem Adressierbus (23) gelesenen Adresse gleichzeitig in den anderen Speicherzonen (4, 5),
- wenn diese Steuersignale einem Lesebefehl entsprechen, das gleichzeitige Lesen der Daten, die in den anderen Speicher zonen (4, 5) an der auf dem Adressierbus (23) gelesenen Adresse gespeichert sind, der Vergleich dieser Daten miteinander und mit der auf dem Datenbus (22) gelesenen Dateneinheit, und wenn alle diese Daten nicht identisch sind, das Senden eines Unterbrechungssignals an den Prozessor (1), der dann entscheidet, welche Dateneinheit er berücksichtigen muß.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß es beim Speichern einer Dateneinheit in jede der anderen Speicherzonen (4, 5) das Speichern eines Präsenzbits im logischen Zustand 1, das dieser Dateneinheit zugeordnet ist, in diese Speicherzonen enthält.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß es das Löschen aller in den anderen Speicherzonen (4, 5) enthaltenen Daten und die Nullrückstellung aller zugeordneten Präsenzbits bei der Aktivierung einer Prozedur durch den Prozessor (1) enthält.
4. Vorrichtung zur Anwendung des Verfahrens näch einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß sie einen Automaten (6) und zwei Speicher (4, 5) aufweist, die ein Bild einer Zone des Speichers des Rechners (2) sind und deren Größe der maximalen kumulierten Größe der zu einem gegebenen Zeitpunkt manipulierten lokalen Daten entspricht, wobei der Automat (6) aufweist:
- einen Steuerblock (24), der mit den Übertragungsleitungen der Steuersignale (RD, WR) zwischen dem Prozessor (1) und seinem Speicher (2) verbunden ist und der die anderen Organe des Automaten (6) steuert,
- zwei innere Datenbusleitungen (30, 31), die einerseits mit den Bildspeichern (4, 5) und andererseits mit dem Datenbus (22) des Prozessors (1) über zwei bidirektionale Pufferbrücken (27, 28) verbunden sind,
- einen inneren Adressierbus (29), der einerseits mit den beiden Bildspeichern (4, 5) und andererseits mit dem Adressierbus (23) des Prozessors (1) über eine Pufferbrücke (26) verbunden ist, und
- drei Komparatoren (37, 33, 34), die auf Befehl des Steuerblocks die auf den inneren Busleitungen (30, 31) vorhandenen Daten miteinander und mit der auf dem Datenbus (22) des Prozessors (1) vorhandenen Dateneinheit vergleichen und die das Ergebnis des Vergleichs in ein Zustandsregister (25) eintragen, und
- Mittel, um ein Unterbrechungssignal (IT) für den Prozessor (1) zu erzeugen, wenn das Zustandsregister (25) angibt, daß ein Fehler erfaßt wurde.
5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß der Automat (6) aufweist:
- zwei Blöcke (40, 41) zum Zwingen des Präsenzbits auf 1, die das Präsenzbit, das den Daten bei ihrem Einschreiben in die Bildspeicher (4, 5) zugeordnet ist, auf 1 zwingen sollen,
- zwei Präsenzbit-Testorgane (32, 35), die auf Befehl des Steuerblocks (24) die Präsenzbits testen, die den auf den beiden inneren Datenbusleitungen (30, 31) vorhandenen beiden Dateneinheiten zugeordnet sind und die das Ergebnis der Tests in das Zustandsregister (25) eintragen.
6. Vorrichtung nach einem der Ansprüche 4 und 5, dadurch gekennzeichnet, daß der Automat (6) zwei Organe zum auf Null setzen (36, 38) aufweist, die einem Adressengenerator (39) zugeordnet sind, der alle Adressen der Bildspeicher (4, 5) durchlaufen kann, die auf Befehl des Steuerblocks (24) alle in den beiden Bildspeichern (4, 5) gespeicherten Daten sowie ihr zugeordnetes Präsenzbit auf Null setzen.
7. Vorrichtung nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, daß sie einen Dekodierer (21) aufweist, der mit dem Adressierbus (23) des Prozessors (1) verbunden ist und die folgenden Signale erzeugen kann, die für den Steuerblock (24) des Automaten (6) bestimmt sind:
- ein Signal (LOCAL), das angibt, daß der Prozessor (1) einen Lese- oder einen Schreibvorgang einer lokalen Dateneinheit der in Durchführung befindlichen Prozedur ausgelöst hat,
- ein Signal (FLUSH) zum Auslösen der Löschung der Daten und ihres zugehörigen Präsenzbits, die in den beiden Bildspeichern (4, 5) gespeichert sind,
- ein Signal (CS3) zum Lesen des Zustandsregisters und
- zwei Signale (CS1, CS2) zum Lesen der gespeicherten Dateneinheit an der auf dem inneren Adressierbus (23) vorhandenen Adresse bzw. in den beiden Bildspeichern (4, 5).
8. Vorrichtung nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß der Automat (6) mit Ausnahme des Dekodierers (1) mit Hilfe eines einzigen Elektronikbauteils (20) vom Typ ASIC hergestellt wird.
DE1994600628 1993-07-30 1994-06-17 Verfahren und Vorrichtung zur Überwachung der Daten eines Rechners Expired - Fee Related DE69400628T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9309527A FR2708765B1 (fr) 1993-07-30 1993-07-30 Procédé et dispositif de contrôle des données dans un calculateur.

Publications (2)

Publication Number Publication Date
DE69400628D1 DE69400628D1 (de) 1996-11-07
DE69400628T2 true DE69400628T2 (de) 1997-02-20

Family

ID=9449879

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1994600628 Expired - Fee Related DE69400628T2 (de) 1993-07-30 1994-06-17 Verfahren und Vorrichtung zur Überwachung der Daten eines Rechners

Country Status (3)

Country Link
EP (1) EP0636984B1 (de)
DE (1) DE69400628T2 (de)
FR (1) FR2708765B1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19734554A1 (de) * 1997-07-31 1999-02-04 Siemens Ag Elektronische Anordnung zur sicheren Datenverarbeitung
DE10113319A1 (de) * 2001-03-20 2002-09-26 Conti Temic Microelectronic Verfahren zum Betrieb eines von einem Prozessor gesteuerten Systems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544777A (en) * 1967-11-06 1970-12-01 Trw Inc Two memory self-correcting system
GB1329562A (en) * 1969-09-25 1973-09-12 Sperry Rand Australia Ltd Fluid operated actuator for movable members
JPS59107495A (ja) * 1982-12-10 1984-06-21 Fujitsu Ltd メモリ障害検出方式
WO1989011134A1 (en) * 1988-05-09 1989-11-16 Ascom Hasler Ag Electronic computing and storage system for franking machines

Also Published As

Publication number Publication date
FR2708765B1 (fr) 1995-10-13
EP0636984A1 (de) 1995-02-01
EP0636984B1 (de) 1996-10-02
FR2708765A1 (fr) 1995-02-10
DE69400628D1 (de) 1996-11-07

Similar Documents

Publication Publication Date Title
DE3803759C2 (de)
DE69434473T2 (de) Prozessorschnittstellenchip für Doppelmikroprozessorsystem
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE69111635T2 (de) Gerät und Verfahren zur Background-Speicherprüfung während des Systemanlaufs.
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE69126057T2 (de) Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung
DE69121937T2 (de) Verfahren und Gerät zum teilweisen Lauf eines Sequenzprogramms zwecks Fehlersuche
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE69127771T2 (de) Datenübertragungssteuerungsvorrichtung
DE3750045T2 (de) Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten.
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung
DE19714681A1 (de) Hauptspeichersteuergerät
DE2149200C3 (de) Einrichtung zur Auswahl von im Verlauf einer Programmbearbeitung am häufigsten benötigten Daten
DE2336020B2 (de) Adressen-berechnungsschaltung fuer paritaetsfehler-korrekturprogramme
DE3911721A1 (de) Schaltung zur verzoegerten freigabe eines schreibvorganges in einen vorratsspeicher fuer ein zweifachbus-mikrocomputersystem
DE69220788T2 (de) Kopplerschaltung und ihre verwendung in einer leiterplatte und verfahren hierfür
DE2906685C2 (de)
DE2723706A1 (de) Einrichtung zum adressenvergleich
DE3340956C2 (de)
DE69400628T2 (de) Verfahren und Vorrichtung zur Überwachung der Daten eines Rechners
EP3566398A1 (de) Verfahren und halbleiterschaltkreis zum schützen eines betriebssystems eines sicherheitssystems eines fahrzeugs
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers
DE69028474T2 (de) Verfahren und System zur dynamischen Programmbetriebssteuerung

Legal Events

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