DE69400628T2 - Verfahren und Vorrichtung zur Überwachung der Daten eines Rechners - Google Patents
Verfahren und Vorrichtung zur Überwachung der Daten eines RechnersInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 39
- 238000012544 monitoring process Methods 0.000 title 1
- 230000015654 memory Effects 0.000 claims description 91
- 238000012360 testing method Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000002457 bidirectional effect Effects 0.000 claims description 6
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims description 2
- 210000000056 organ Anatomy 0.000 claims description 2
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking 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.
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)
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)
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 |
-
1993
- 1993-07-30 FR FR9309527A patent/FR2708765B1/fr not_active Expired - Fee Related
-
1994
- 1994-06-17 EP EP19940401364 patent/EP0636984B1/de not_active Expired - Lifetime
- 1994-06-17 DE DE1994600628 patent/DE69400628T2/de not_active Expired - Fee Related
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 |