DE60105311T2 - Kodierungsverfahren und vorrichtung in einer speicherfehlererkennung sowie fehlerkorrektur-baugruppe für ein elektronisches system - Google Patents

Kodierungsverfahren und vorrichtung in einer speicherfehlererkennung sowie fehlerkorrektur-baugruppe für ein elektronisches system Download PDF

Info

Publication number
DE60105311T2
DE60105311T2 DE60105311T DE60105311T DE60105311T2 DE 60105311 T2 DE60105311 T2 DE 60105311T2 DE 60105311 T DE60105311 T DE 60105311T DE 60105311 T DE60105311 T DE 60105311T DE 60105311 T2 DE60105311 T2 DE 60105311T2
Authority
DE
Germany
Prior art keywords
memory
word
component
electronic component
pipeline stages
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 - Lifetime
Application number
DE60105311T
Other languages
English (en)
Other versions
DE60105311D1 (de
Inventor
Michel Pignol
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.)
Centre National dEtudes Spatiales CNES
Original Assignee
Centre National dEtudes Spatiales CNES
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 Centre National dEtudes Spatiales CNES filed Critical Centre National dEtudes Spatiales CNES
Application granted granted Critical
Publication of DE60105311D1 publication Critical patent/DE60105311D1/de
Publication of DE60105311T2 publication Critical patent/DE60105311T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Codieren für eine Untereinheit zur Erfassung und Korrektur von Speicherfehlern in einem elektronischen System.
  • STAND DER TECHNIK
  • Integrierte elektronische Schaltungen an Bord von Raumfahrzeugen können gegen bestimmte Partikel, die von der Sonne erzeugt werden, oder gegen bestimmte Partikel, die im interstellaren Raum vorhanden sind, empfindlich sein. Wenn diese Partikel die Schaltungen durchdringen, geben sie an diese elektrische Ladungen ab, die ein Zustandsbit ändern können. Derartige Ereignisse werden "single event upset" (oder "außerordentliche Ereignisse") oder "soft-error" genannt. Sie sind vorübergehend und beschädigen die elektronische Komponente in keiner Weise; eine Speicherzelle, die Opfer eines außerordentlichen Ereignisses ist, unterliegt einem Lesefehler, kann aber in der Folge auf normale Weise erneut beschrieben werden.
  • Mehrere Effekte, wie etwa
    • – die Verkleinerung der Lithographie der Technologien integrierter Schaltungen (heute 0,25 μm und demnächst 0,18 μm),
    • – die Verringerung der Versorgungsspannungen (heute 2,2 V), können zur Folge haben, dass diese Fehler auch in integrierten Schaltungen auftreten, die am Boden benutzt werden.
  • Da nämlich die Energie pro Elementarzelle in der Regel abnimmt (Speicherzellen, Register usw.), können diese folglich durch schwache Störungsenergien, die sich nicht auf die integrierten Schaltungen der vorhergehenden Generationen ausgewirkt haben, gestört werden.
  • Die Industrierechentechnik ist folglich mit vorübergehenden Fehlererscheinungen konfrontiert, die
    • – entweder durch von der Sonne stammende Neutronen, die nicht von der Atmosphäre zurückgehalten werden,
    • – oder durch Alphateilchen, die aus dem Zerfall von radioaktiven Isotopen stammen, die in den Werkstoffen der Gehäuse zur Verkapselung der integrierten Schaltungen enthalten sind, hervorgerufen werden.
  • Das in Bezug auf dieses Problem kritischste Element ist die kombinatorische Logik: Die Speicherfehler können über Codierungen (beispielsweise Paritäts- oder Hamming-Codierung) erfasst werden, bei der kombinatorischen Logik ist es jedoch unmöglich, ein zufälliges außerordentliches Ereignis an irgendeinem Knoten innerhalb einer Schaltung zu erfassen.
  • Das Problem der außerordentlichen Ereignisse wird folglich für die Hersteller von elektronischen Komponenten und Systemen eine besondere Bedeutung erlangen. Diese sehen sich folglich dazu veranlasst, entweder in die integrierten Schaltungen oder in die Architekturen Mechanismen zum Schutz gegen Fehler, die auf diese Ereignisse zurückzuführen sind, zu integrieren. Eine denkbare Lösung besteht darin, Schaltungen zu entwickeln, die gegenüber außerordentlichen Ereignissen tolerant sind.
  • Wie in 1 gezeigt ist, kann ein elektronisches System aus einem Mikroprozessor 10 und seinem Speicher 11, die über einen Datenbus 12 und einen Adressen- und Steuerbus 13 verbunden sind, aufgebaut sein.
  • Der Speicher 11 kann mittels einer Komponente geschützt sein, die üblicherweise als EDAC ("Error Detection And Correction" oder sogar EDC, ECC oder EDCC ("Error Detection/Correction Code") bezeichnet wird und ermöglicht, Fehler, die durch außerordentliche Ereignisse in den Speicherzellen hervorgerufen werden, zu erfassen und anschließend zu korrigieren, wie in den am Ende der Beschreibung angegebenen Dokumenten [1] bis [5] beschrieben ist.
  • Wie 2 zeigt, ist das EDAC 20 oder die Komponente zur Speicherfehlererfassung und -korrektur in einer seriellen Architektur eine Komponente, die an den Datenbus 12, beispielsweise mit einer Breite von 12 Bits, nicht jedoch an den Adressenbus 13 angeschlossen ist. Das EDAC 20 ist mit dem Speicher 11 über einen Bus 55 mit einer Breite von M Bits, über den die in dem Teil 16 des Speichers 11 gespeicherten Daten geschickt werden, und über einen Bus 54 mit einer Breite von N Bits, über den die in dem Teil 17 des Speichers 11 gespeicherten Codes (jedem Datenwert ist ein Code zugeordnet) geschickt werden, verbunden.
  • Bei einem von dem Mikroprozessor 10 ausgeführten Schreiben in den Speicher 11 fügt das EDAC 20 zu den M Bits des Datenwertes einen Code mit einer Breite von N Bits hinzu. Die Breite des Speichers 11 beträgt folglich M + N Bits, um den jedem gespeicherten Datenwert zugeordneten Code beizubehalten.
  • Bei einem von dem Mikroprozessor 10 ausgeführten Lesen des Speichers 11 empfängt das EDAC 20 M + N Bits. Es berechnet den dem Datenwert aus M Bits (Datenbereich 16) entsprechenden Code und vergleicht ihn mit dem Code aus N Bits (Codebereich 17), der mit dem Datenwert in dem Speicher abgelegt worden ist. Wenn die beiden Codes nicht völlig übereinstimmen, dann wird ein Fehler erklärt. In diesem Fall, wobei die Verwendung eines Hamming-Codes, der ermöglicht, ein Bit zu korrigieren, vorausgesetzt wird, invertiert das EDAC 20 das fehlerhafte Bit, um es zu korrigieren, schaltet das korrigierte Wort auf seinen Bus und erzeugt eine Unterbrechung IT an den Mikroprozessor, damit dieser den korrekten Wert wieder in den Speicher schreibt. Das EDAC 20 kennt die Adresse des Datenwertes nicht; es kann die Korrektur im Speicher 11 nicht selbst ausführen.
  • Da der Paritätscode (N = 1) nur ermöglicht, einen Fehler zu erfassen, nicht aber, ihn zu korrigieren, wird im Allgemeinen ein Hamming-Code verwendet, der einen Fehler in einem Wort erfassen und korrigieren kann und (ohne sie korrigieren zu können) zwei Fehler in demselben Wort erfassen kann. Die Breite des Hamming-Codes und folglich die erforderliche Erhöhung der Speicherkapazität hängt von dem Wert für M ab. Beispielsweise ist für M = 16 üblicherweise N = 6.
  • Wie in dem unter [5] angegebenen Dokument beschrieben ist, arbeitet das EDAC 20 auf dem Datenbus parallel zu dem Decodierungsmodul 14, das auf dem Adressenbus 13 arbeitet. Da die Funktion, die von dem EDAC ausgeführt wird, komplizierter ist, ist die Laufzeit dieses, 20, länger als jene des Decodierungsmoduls 14; sie verlangsamt folglich den Speicherzugriff eines durch eine derartige Komponente geschützten Kerns einer Zentraleinheit. Wenn die Kapazität der Speicherbausteine zunimmt, verringert sich die Anzahl der Bausteine (insbesondere im bordinternen Bereich wie beispielsweise in der Kraftfahrzeugindustrie, der Luftfahrt oder Raumfahrt, die geringe Speicherkapazitäten verwenden). Folglich vereinfacht sich das Decodierungsmodul 14 und wird, dadurch bedingt, immer schneller. Die Verzögerung, die auf das EDAC 20 zurückzuführen ist, wirkt sich folglich immer nachteiliger aus.
  • Es gibt zwei Typen von EDAC-Architekturen:
    • – Das EDAC in einer seriellen Architektur, die in 2 veranschaulicht ist (oder "flow-through" oder sogar "feed-through"), ist eine Komponente, die auf dem Datenbus 12 zwischen den Mikroprozessor 10 und seinen Speicher 11 eingefügt ist, wie in den unter [1], [3], und [4] angegebenen Dokumenten beschrieben ist.
    • – Das EDAC in einer parallelen Architektur, die in 3 veranschaulicht ist (oder "bus-watch"), ist eine Komponente, die wie ein Peripheriegerät an den Datenbus 12 angeschlossen ist. Es fängt die Daten ab und verarbeitet sie, bevor es den Speicherzugriff freigibt, wie in dem unter [2] angegebenen Dokument beschrieben ist. Das EDAC 20 ist über einen Bus 54 an den Speicher 11 angeschlossen.
  • Das EDAC 20, das eine im Bereich der Raumfahrt sehr häufig eingesetzte Komponente ist, wird mit der Erhöhung der Taktfrequenzen der Mikroprozessoren immer nachteiliger. Diese Komponente ist umso kritischer mit Mikroprozessoren mit RISC-Architektur ("Reduced Instruction Set Computer" oder Mikroprozessor mit eingeschränktem Befehlsvorrat), die nahezu in jedem Zyklus auf den Speicher zugreifen. Es ist erforderlich, Wartezyklen ("wait-states") hinzuzufügen, um dem EDAC 20 für seine Funktion Zeit zu lassen, andernfalls muss die Betriebsfrequenz des Mikroprozessors herabgesetzt werden.
  • Im Bereich der Raumfahrt sind die Frequenzen der Mikroprozessoren derzeit in der Größenordnung von mehreren zehn MHz. Im Bereich der Industrierechentechnik sind diese Frequenzen derzeit eine oder zwei Größenordnungen höher: So kommen gerade Mikroprozessoren auf, die mit 1 GHz arbeiten.
  • Auf dem Gebiet der Industrierechentechnik ist folglich die Suche nach einer leistungsfähigeren Betriebsart des EDAC, die keinerlei Verzögerung einführt, zu einer Notwendigkeit geworden.
  • Wie in dem unter [6] angegebenen Dokument beschrieben ist, ist außerdem bekannt, einen 8-Wort-Cachespeicher zu verwenden, dem ein Testvektorgenerator zugeordnet ist, der ermöglicht, vom Standpunkt der Laufzeit aus betrachtetet, effizienter als ein EDAC mit dem Problem von infolge einer definitiven Störung einzelner Bits fehlerhaften Speicheradressen umzugehen. Ein derartiges System funktioniert jedoch nur für definitive Störungen einiger Bits, was eine seltene Konfiguration darstellt. Es ist nicht für die Behandlung von vorübergehenden Fehlern vom Typ außerordentliche Ereignisse ausgelegt. Das unter [6] angegebene Dokument präzisiert, dass diesem System ein EDAC zugeordnet sein muss, um sie zu berücksichtigen.
  • Das Dokument US-A-4 604 750 beschreibt eine Fehlerkorrekturvorrichtung vom Pipelinetyp in einem System, das einen Speicher aufweist, der gleichzeitig Nutzdaten, normale Daten und Daten vom EDAC-Typ umfasst, wobei auf diese Letzteren unabhängig von den Nutzdaten zugegriffen werden kann. Aber weder offenbart dieses Dokument Mittel zum Codieren von Daten, die mit den Speichereingängen in Reihe geschaltet und in Pipeline-Stufen strukturiert sind, derart, dass sie den gleichen Durchsatz wie die elektronische Komponente haben, die auf den Speicher zugreift, noch regt es diese an.
  • Die Aufgabe der Erfindung ist, eine Codierungsvorrichtung und ein Codierungsverfahren für eine Untereinheit zur Erfassung und Korrektur von Speicherfehlern zu schaffen, die ermöglichen, im Gegensatz zu den Vorrichtungen des Standes der Technik, den Speicher zu schützen, ohne während der Zugriffszeiten die Leistungsfähigkeit zu mindern.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Die vorliegende Erfindung betrifft eine Codierungsvorrichtung für eine Untereinheit zur Erfassung und Korrektur von Speicherfehlern in einem elektronischen System, das eine elektronische Komponente und einen Speicher umfasst, dadurch gekennzeichnet, dass diese Vorrichtung Datencodierungsmittel umfasst, die mit den Speichereingängen in Reihe geschaltet sind und in Pipeline-Stufen strukturiert sind, derart, dass sie den gleichen Durchsatz wie die elektronische Komponente haben, wenn diese in den Speicher schreibt, insbesondere während der Übertragung von Blöcken.
  • Vorteilhaft verfügt die Vorrichtung dann über einen Anschluss an den Adressenbus und über Adressenlenkungsmittel, die eine Gesamtheit von in Reihe geschalteten Pipeline-Registern umfassen, in denen der Transport der eingefangenen Adressen erfolgt, wobei die Anzahl dieser Pipeline-Register gleich der Anzahl der Pipeline-Stufen der Codierungsmittel ist, damit sich diese Adressen in der Vorrichtung im gleichen Takt wie die zu codierenden Wörter ausbreiten. Sie umfasst einen festverdrahteten Komparator in jedem Pipeline-Register der Adressenlenkungsmittel, wobei diese Komparatoren einen Echtzeit-Vergleich zwischen allen Adressen, die sich zu einem gegebenen Zeitpunkt in der Vorrichtung befinden, und der Adresse des Wortes, das die elektronische Komponente zu diesem Zeitpunkt im Speicher lesen soll, ermöglichen. In einer vorteilhaften Ausführungsform kann sie Mittel umfassen, die für die elektronische Komponente Wartespeicherzyklen einführen, wenn einer der Komparatoren das Vorhandensein der Adresse des Wortes erfasst, das die Komponente im Speicher lesen soll, wobei diese Mittel ermöglichen, zu warten, bis sich das Wort in die letzten Pipeline-Stufen der Vorrichtung ausbreitet, damit diese Letztere dieses Wort und seinen zugeordneten Code in den Speicher schreiben kann, bevor die Komponente sie liest. Oder aber sie kann in einer weiteren vorteilhaften Ausführungsform Multiplexierungsmittel umfassen, die dann, wenn einer der Komparatoren das Vorhandensein der Adresse des Wortes erfasst, das die Komponente im Speicher lesen soll, ermöglichen, dieses Wort an die Komponente zu liefern, unabhängig davon, in welcher Pipeline-Stufe es sich befindet, und die Fehlererfassungsmittel der Vorrichtung für dieses Wort zu sperren, weil nicht genügend Zeit zur Verfügung stand, seinen zugeordneten Code vollständig zu berechnen.
  • Die Erfindung betrifft außerdem ein Codierungsverfahren für eine Untereinheit zur Erfassung und Korrektur von Speicherfehlern in einem elektronischen System, das eine elektronische Komponente und einen Speicher umfasst, dadurch gekennzeichnet, dass die Wörter, die die elektronische Komponente in den Speicher schreiben soll, eingefangen und dann mit einem beliebigen Fehlererfassungs-/Fehlerkorrekturcode codiert werden und dann in den Speicher geschrieben werden; wobei die Codierung in Pipeline-Stufen strukturiert ist, derart, dass sie den gleichen Durchsatz wie die Komponente hat, wenn diese in den Speicher schreibt, und somit diese nicht verzögert, insbesondere während der Übertragung von Blöcken.
  • Vorteilhaft werden die Adressen gleichzeitig mit den zu codierenden Wörtern eingefangen, und diese Adressen breiten sich in den Pipeline-Stufen mit dem gleichen Takt wie die zu codierenden Wörter aus. Alle Adressen, die in den Pipeline-Stufen vorhanden sind, werden in Echtzeit mit der Adresse des Wortes verglichen, das die elektronische Komponente lesen soll, um festzustellen, ob das von der Komponente gesuchte Wort nicht erst kurz vorher geschrieben worden ist und sich noch in diesen Pipeline-Stufen befindet. Wenn sich ein Wort, das die elektronische Komponente im Speicher lesen soll, noch in den Pipeline-Stufen befindet, können Wartespeicherzyklen für die elektronische Komponente eingeführt werden, um abzuwarten, bis die Berechnung des Codes und das Schreiben dieses Wortes und seines zugeordneten Codes in den Speicher abgeschlossen sind, bevor sie die Komponente liest, oder das Wort kann direkt an die Komponente geliefert werden, wobei dann die Fehlererfassung an diesem Wort gesperrt wird, weil nicht genügend Zeit vorhanden war, seinen zugeordneten Code vollständig zu berechnen.
  • Das Verfahren der Erfindung kann in einem bordinternen elektronischen System verwendet werden.
  • Außerdem kann es im Gebiet der Raumfahrt verwendet werden.
  • Die Vorrichtung der Erfindung ist unabhängig von dem Code, der benutzt wird, um die Fehler zu erfassen/korrigieren (Parität, Hamming usw.).
  • Die herkömmlichen Ausführungen eines seriellen oder parallelen EDAC setzen die Leistungsfähigkeit des elektronischen Systems herab, indem sie die Zeit für den Zugriff auf den Speicher verlängern. Die Vorrichtung der Erfindung ermöglicht, die Leistungsfähigkeit der elektronischen Komponente (beispielsweise eines Mikroprozessors) voll zu nutzen, da die Codierungsfunktion im Pipeline-Betrieb ausgeführt wird, um den gleichen Durchsatz wie die elektronische Komponente selbst zu bieten, wobei eine "assoziative Speicherstruktur" ermöglicht, die Probleme der Inkohärenz des Speichers bei nahe beieinander liegenden Zugriffen zum Schreiben und dann zum Lesen desselben Wortes zu lösen.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 veranschaulicht ein elektronisches System des Standes der Technik mit einem ungeschützten Speicher;
  • 2 und 3 veranschaulichen dieses elektronische System des Standes der Technik mit einem mittels eines herkömmlichen EDAC geschützten Speichers in einer seriellen Architektur bzw. in einer parallelen Architektur;
  • 4 veranschaulicht dieses elektronische System, wobei der Speicher durch eine Vorrichtung geschützt ist, die eine Datencodierungsfunktion gemäß der Erfindung enthält, wobei nur die Phasen des Schreibens in den Speicher gezeigt sind;
  • 5 veranschaulicht die innere Architektur der Vorrichtung der Erfindung (Beispiel mit dreistufiger Pipeline).
  • AUSFÜHRLICHE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • Die vorliegende Erfindung betrifft eine Codierungsvorrichtung für eine Untereinheit zur Erfassung und Korrektur von Speicherfehlern in einem elektronischen System, das eine elektronische Komponente und einen Speicher umfasst. Unter einer "elektronischen Komponente" wird eine Schaltung oder eine Gesamtheit von integrierten Schaltungen verstanden, die eine Funktion verwirklicht, die einen Speicher benötigt, wobei diese Funktion ausgehend von beispielsweise einem festverdrahteten Operator oder Prozessor (siehe das unter [7] angegebene Dokument S. 20 und S. 106), einem Bit-Slice-Prozessor (siehe das unter [7] angegebene Dokument S. 106 bis 109) oder einem Mikroprozessor vorgesehen sein kann. In der weiteren Beschreibung wird das Wort "Mikroprozessor" verwendet, denn dieser ist am repräsentativsten.
  • Codierungsmittel
  • Die Datencodierungsfunktion der Vorrichtung der Erfindung beruht auf der Tatsache, dass in moderne Mikroprozessoren, um ihre Leistungsfähigkeit zu verbessern, interne Cachespeicher integriert sind und ein Schreiben in externe Speicher dann meist durch Blockübertragungen ("flush" oder Burst-Modus, d. h. ein Datenwert in jedem Zyklus und dies ununterbrochen für den gesamten Block) erfolgt.
  • Wie 4 zeigt, ist die Vorrichtung der Erfindung, die die Codierungsfunktion enthält, in Reihe zu den Speichereingängen des Mikroprozessors geschaltet. Ihre Laufzeit bleibt in Reihe gegenüber dem Mikroprozessor erhalten; durch einen Pipeline-Betrieb wird er nicht verlangsamt. Diese Funktionsweise erfordert anders als bei den herkömmlichen EDACs den Anschluss der Vorrichtung an den Adressenbus.
  • Die Codierungsmittel der Vorrichtung sind in Pipeline-Stufen 41, 42, 43 unterteilt und gebrauchen eine Funktionsweise vom Typ "assoziativer Speicher", wie in 5 veranschaulicht ist.
  • Wenn die Dauer des Speicherzugriffs des Mikroprozessors T ist und wenn die Codierungszeit der Vorrichtung kleiner als P mal T ist, dann wird die Codierungsfunktion in P Pipeline-Stufen 41, 42, 43 unterteilt, die jeweils eine Laufzeit von T aufweisen.
  • Die Datenwörter werden im Takt des Schreibens des Mikroprozessors in die erste Stufe 41 der Vorrichtung geladen, danach werden sie von der Vorrichtung P Zyklen später, aber im gleichen Takt (folglich ohne den Mikroprozessor zu verlangsamen) in den Speicher geschrieben.
  • Parallel werden die jedem Datenwert zugeordneten Adressen in die Vorrichtung geladen und durch eine Pipeline 44 aus P einfachen Registern, die in Reihe geschaltet sind, verzögert, um mit ihrem Datenwert in Phase zu bleiben.
  • Wenn ein geschriebener Datenwert mit einer Verzögerung, die kleiner als P Speicherzyklen ist, wieder gelesen werden soll, ist der Speicher nicht mehr kohärent. Es ist folglich erforderlich, dass die Codierungsfunktion der Vorrichtung wie ein assoziativer Speicher strukturiert ist, wobei ein Komparator 45, der auf jeder Stufe der Pipeline der Adressen festverdrahtet ist, ermöglicht, diese P Adressen in Echtzeit mit der Adresse des Wortes zu vergleichen, das der Mikroprozessor lesen möchte. Wenn einer der Komparatoren erfasst, dass der Datenwert in der Pipeline der Vorrichtung ist (Signal "Adresse vorhanden" oder "Adressen-Treffer" aktiviert),
    • – können entweder mittels eines Wartezyklengenerators 46 Wartespeicherzyklen ("wait-states") für den Mikroprozessor eingeführt werden, um die Vorrichtung ihre Codeberechnung abschließen zu lassen und den Mikroprozessor auf dieses Wort einzig und allein dann zugreifen zu lassen, wenn es mit seinem zugeordneten Code in den Speicher geschrieben worden ist. Der Vorteil ist dann die beliebige Verfügbarkeit seines erneuten Lesens;
    • – oder der Datenwert kann mittels einer Multiplexierung (Multiplexer 47) über dem "Datenausgang" aller Pipeline-Stufen 41, 42, 43 direkt an den Mikroprozessor geliefert werden, wobei jedoch dann die Fehlererfassung der Vorrichtung über diesem Wort gesperrt wird, da nicht genügend Zeit war, um den Code voll ständig zu berechnen. Der Vorteil ist dann der Zugewinn an Leistungsfähigkeit.
  • In Anbetracht der geringen Dichte der außerordentlichen Ereignisse und folglich des vernachlässigbaren Verlusts an Leistungsfähigkeit wird die erste Lösung (Einführung von Wartezyklen) bevorzugt.
  • Die Funktionsweise dieser beiden Lösungen ist (in positiver Logik) in den Tabellen 1 und 2 am Ende der Beschreibung dargestellt.
  • Tabelle 1
    Figure 00100001
  • Tabelle 2
    Figure 00100002
  • QUELLENANGABEN
    • [1] "29C516E-16 bits flow-through EDAC unit" (Dokument TEMIC Semiconductors, Rev. D, 09/12/97)
    • [2] "29C532E-32 bits bus-watch EDAC unit" (Dokument TEMIC Semiconductors, Rev. B, 26/02/97)
    • [3] "MA31752-16 bits feed-through EDAC unit" (Dokument GEC Plessey Semiconductors, Ref. DS3569-2.4)
    • [4] "MA31755-16 bits feed-through EDAC unit" (Dokument GEC Plessey Semiconductors, Ref. DS3572-2.2)
    • [5] "Two error-detecting and correcting circuits for space applications" von R. Johansson (Proceedings of 26th IEEE Fault Tolerant Computing Symposium, 1996).
    • [6] "Memory system reliability improvement through associative cache redundancy", von M. A. Lucente, C. H. Harris und R. M. Muir (IEEE Journal of Solid-Staffe Circuits, Bd. 26, Nr. 3, März 1991).
    • [7] "Réalisation d'un mini-processeur vectoriel travaillant en arithmétique flottante 32 bits, adapté au traitement frequentiel d'images" von Michel Pignol (Doktoringenieurarbeit, am 12. September 1986 an der Universität Clermont II vorgelegt).

Claims (12)

  1. Codierungsvorrichtung für eine Untereinheit zur Erfassung und Korrektur von Speicherfehlern in einem elektronischen System, das eine elektronische Komponente (10) und einen Speicher (11) umfasst, dadurch gekennzeichnet, dass diese Vorrichtung Datencodierungsmittel (20) umfasst, die mit den Speichereingängen in Reihe geschaltet sind und in Pipelinestufen strukturiert sind, derart, dass sie den gleichen Durchsatz wie die elektronische Komponente haben, wenn diese in den Speicher schreibt, insbesondere während der Übertragungen von Blöcken.
  2. Vorrichtung nach Anspruch 1, die über einen Anschluss an den Adressenbus und über Adressenlenkungsmittel verfügt, die eine Gesamtheit von in Reihe geschalteten Pipeline-Registern (44) umfassen, in denen der Transport der eingefangenen Adressen erfolgt, wobei die Anzahl dieser Pipeline-Register gleich der Anzahl der Pipelinestufen (41, 42, 43) der Codierungsmittel (20) ist, damit sich diese Adressen in der Vorrichtung im gleichen Takt wie die zu codierenden Wörter ausbreiten.
  3. Vorrichtung nach Anspruch 2, die einen festverdrahteten Komparator (45) in jedem Pipeline-Register (44) der Adressenlenkungsmittel umfasst, wobei diese Komparatoren (45) einen Echtzeit-Vergleich zwischen allen Adressen, die sich zu einem gegebenen Zeitpunkt in der Vorrichtung befinden, und der Adresse des Wortes, das die elektronische Komponente (10) zu diesem Zeitpunkt im Speicher lesen soll, ermöglichen.
  4. Vorrichtung nach Anspruch 3, die Mittel (46) umfasst, die für die elektronische Komponente Wartespeicherzyklen einführen, wenn einer der Komparatoren das Vorhandensein der Adresse des Wortes erfasst, das die Komponente (10) im Speicher lesen soll, wobei diese Mittel ermöglichen, zu warten, bis sich das Wort in die letzten Pipeline-Stufen der Vorrichtung ausbreitet, damit diese dieses Wort und seinen zugeordneten Code in den Speicher schreiben kann, bevor die Komponente sie liest.
  5. Vorrichtung nach Anspruch 3, die Multiplexierungsmittel (47) umfasst, die dann, wenn einer der Komparatoren das Vorhandensein der Adresse des Wortes erfasst, das die Komponente im Speicher lesen soll, ermöglichen, dieses Wort an die Komponente zu liefern, unabhängig davon, in welcher Pipelinestufe es sich befindet, und die Fehlererfassungsmittel der Vorrichtung für dieses Wort zu sperren, weil für seinen zugeordneten Code noch nicht genügend Zeit zur Verfügung stand, vollständig berechnet zu werden.
  6. Codierungsverfahren für eine Untereinheit zur Erfassung und Korrektur von Speicherfehlern in einem elektronischen System, das eine elektronische Komponente und einen Speicher umfasst, dadurch gekennzeichnet, dass die Wörter, die die elektronische Komponente in den Speicher schreiben soll, eingefangen und dann mit einem beliebigen Fehlererfassungs-/Fehlerkorrekturcode codiert werden und dann in den Speicher geschrieben werden; wobei die Codierung in Pipeline-Stufen strukturiert ist, derart, dass sie den gleichen Durchsatz wie die Komponente hat, wenn diese in den Speicher schreibt, und somit diese nicht verzögert, insbesondere während der Übertragung von Blöcken.
  7. Verfahren nach Anspruch 6, bei dem die Adressen gleichzeitig mit den zu codierenden Wörtern eingefangen werden und bei dem diese Adressen sich in den Pipeline-Stufen mit dem gleichen Takt wie die zu codierenden Wörter ausbreiten.
  8. Verfahren nach Anspruch 7, bei dem alle Adressen, die in den Pipeline-Stufen vorhanden sind, in Echtzeit mit der Adresse des Wortes verglichen werden, das die elektronische Komponente lesen soll, um festzustellen, ob das von der Komponente gesuchte Wort nicht erst kurz vorher geschrieben worden ist und sich noch in diesen Pipeline-Stufen befindet.
  9. Verfahren nach Anspruch 8, bei dem dann, wenn sich ein Wort, das die elektronische Komponente im Speicher lesen soll, noch in den Pipeline-Stufen befindet, Wartespeicherzyklen für die elektronische Komponente eingeführt werden, um abzuwarten, bis die Berechnung des Codes und das Schreiben dieses Worts und seines zugeordneten Codes in den Speicher abgeschlossen sind, bevor sie die Komponente liest.
  10. Verfahren nach Anspruch 8, bei dem dann, wenn sich ein Wort, das die elektronische Komponente im Speicher lesen soll, noch in den Pipeline-Stufen befindet, dieses Wort direkt an die Komponente geliefert wird, so dass die Fehlererfassung an diesem Wort gesperrt wird, weil noch nicht genügend Zeit vorhan den war, um seinen zugeordneten Code vollständig berechnen zu können.
  11. Verfahren nach einem der Ansprüche 6 bis 10, das in einem bordinternen elektronischen System verwendet wird.
  12. Verfahren nach einem der Ansprüche 6 bis 10, das im Gebiet der Raumfahrt verwendet wird.
DE60105311T 2000-10-25 2001-10-23 Kodierungsverfahren und vorrichtung in einer speicherfehlererkennung sowie fehlerkorrektur-baugruppe für ein elektronisches system Expired - Lifetime DE60105311T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0013678 2000-10-25
FR0013678A FR2815737B1 (fr) 2000-10-25 2000-10-25 Dispositif et procede de codage pour un sous-ensemble de detection et correction d'erreurs memoire dans un systeme electronique
PCT/FR2001/003286 WO2002035353A1 (fr) 2000-10-25 2001-10-23 Dispositif et procede de codage pour un sous-ensemble de detection et correction d'erreurs memoire dans un systeme electronique

Publications (2)

Publication Number Publication Date
DE60105311D1 DE60105311D1 (de) 2004-10-07
DE60105311T2 true DE60105311T2 (de) 2005-09-29

Family

ID=8855720

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60105311T Expired - Lifetime DE60105311T2 (de) 2000-10-25 2001-10-23 Kodierungsverfahren und vorrichtung in einer speicherfehlererkennung sowie fehlerkorrektur-baugruppe für ein elektronisches system

Country Status (5)

Country Link
EP (1) EP1340147B1 (de)
AT (1) ATE275275T1 (de)
DE (1) DE60105311T2 (de)
FR (1) FR2815737B1 (de)
WO (1) WO2002035353A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7771417B2 (en) 2005-02-24 2010-08-10 Iridex Corporation Laser system with short pulse characteristics and its methods of use

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604750A (en) * 1983-11-07 1986-08-05 Digital Equipment Corporation Pipeline error correction
WO1990002372A1 (en) * 1988-08-30 1990-03-08 Unisys Corporation Pipelined address check bit stack controller

Also Published As

Publication number Publication date
FR2815737B1 (fr) 2003-01-24
WO2002035353A1 (fr) 2002-05-02
ATE275275T1 (de) 2004-09-15
DE60105311D1 (de) 2004-10-07
FR2815737A1 (fr) 2002-04-26
EP1340147B1 (de) 2004-09-01
EP1340147A1 (de) 2003-09-03

Similar Documents

Publication Publication Date Title
DE10304447B4 (de) Verfahren zur Handhabung von Datenfehlern in einem Prozessor mit Pipeline und derartiger Prozessor
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
DE4220723C2 (de) Schaltkreis zum Detektieren eines Fehlers in einem Mikrocomputer
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE19952272A1 (de) Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen
US20100169886A1 (en) Distributed memory synchronized processing architecture
DE102007038114A1 (de) Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
DE102014002473A1 (de) System und verfahren zur erhöhung der lockstep-kern-verfügbarkeit
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE102022127894A1 (de) Durchgehender schutz von daten für rechnen in speicher (cim)/rechnen in nahspeicher (cnm)
DE102006005817A1 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE102011011333B4 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
EP1146423A2 (de) Verarbeitungssystem mit Mehrheitsentscheidung
US10303566B2 (en) Apparatus and method for checking output data during redundant execution of instructions
DE3814875C2 (de)
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
DE102011119585A1 (de) Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen
US5956352A (en) Adjustable filter for error detecting and correcting system
DE60105311T2 (de) Kodierungsverfahren und vorrichtung in einer speicherfehlererkennung sowie fehlerkorrektur-baugruppe für ein elektronisches system
CN109614274A (zh) 处理器指令Cache单粒子翻转软错误的防护方法
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
DE602004001679T2 (de) Speichersystem mit sequenziell ausgeführten schnellen und langsamen lesezugriffen
DE60109644T2 (de) Vorrichtung und verfahren zur erkennung und korrektur von speicherfehlern in einer elektronischen vorrichtung
DE102014114157B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102005060714B4 (de) Datenverarbeitungsvorrichtung, Speicherkarte, Verfahren zum Betreiben einer Datenverarbeitungsvorrichtung und Herstellungsverfahren für eine Datenverarbeitungsvorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition