DE102017115057B4 - Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus - Google Patents

Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus Download PDF

Info

Publication number
DE102017115057B4
DE102017115057B4 DE102017115057.9A DE102017115057A DE102017115057B4 DE 102017115057 B4 DE102017115057 B4 DE 102017115057B4 DE 102017115057 A DE102017115057 A DE 102017115057A DE 102017115057 B4 DE102017115057 B4 DE 102017115057B4
Authority
DE
Germany
Prior art keywords
data
memory
register cells
stored
inverted
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.)
Active
Application number
DE102017115057.9A
Other languages
English (en)
Other versions
DE102017115057A1 (de
Inventor
Andre Sudhaus
Jens-Arne Schürstedt
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.)
Elmos Semiconductor SE
Original Assignee
Elmos Semiconductor SE
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 Elmos Semiconductor SE filed Critical Elmos Semiconductor SE
Priority to DE102017115057.9A priority Critical patent/DE102017115057B4/de
Priority to CN201810731582.9A priority patent/CN109215723B/zh
Publication of DE102017115057A1 publication Critical patent/DE102017115057A1/de
Application granted granted Critical
Publication of DE102017115057B4 publication Critical patent/DE102017115057B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es wird ein Verfahren zur Überprüfung von Speicher- oder Registerzellen einer integrierten Schaltung auf Stuck-at-Fehler während des Betriebs dieser integrierten Schaltung vorgeschlagen, bei dem Teile der in den Speicher- oder Registerzellen abzulegenden Daten während des Betriebs mal invertiert, mal nicht invertiert abgelegt werden. Eine Information über die Invertierung wird mitabgelegt, sodass die Information rekonstruiert werden kann. Tritt ein Fehler durch einen Stuck-At-Fehler eines einzelnen Bits auf, so kann durch geeignete Invertierung der abzulegenden Daten und die entsprechende Information über die Invertierung die Speicherzelle in einem Notlaufmodus weiter genutzt werden. Ein weiterer Vorteil ist, dass hierdurch die Fehlerklasse „Stuck-At“ eindeutig identifiziert werden kann. Konkret wird die Fehlerdetektion durch ein erstes Abspeichern und Lesen der abzuspeichernden Daten und ein zweites Abspeichern und Lesen der gespeicherten Daten sichergestellt, wobei das zweite Abspeichern so erfolgt, das die Daten in den Speicher- und Registerzellen zumindest teilweise gegenüber dem ersten Speichern und Lesen beim zweiten Speichern und Lesen invertiert abgelegt werden.

Description

  • Oberbegriff
  • Es werden Verfahren zur Überprüfung von Speicher- oder Registerzellen einer integrierten Schaltung auf Stuck-at-Fehler während des Betriebs dieser integrierten Schaltung vorgeschlagen.
  • Allgemeine Einleitung
  • Im Umfeld sicherheitsrelevanter integrierter Schaltungen sollen latente Fehler in Speicher- oder Registerzellen, die während des Betriebs z.B. durch Degradation etc. auftreten, gefunden werden, Dies betrifft beispielsweise Kalibrationsregister mit nahezu statischem Inhalt. Darüber hinaus besteht der Wunsch Register bei einem Einzelfehler nutzbar zu halten.
  • Stand der Technik
  • Aus dem Stand der Technik ist eine Registerabsicherung über redundante Daten wie CRC-Checksummen oder Parity-Bits bekannt. Sofern ein Parity-Fehler beispielsweise auftritt, ist das Register jedoch nicht mehr nutzbar. Dies kann in manchen Fällen zu Ausfällen führen.
  • Beide Mechanismen allein finden einen Stuck-at Fehler erst bei tatsächlicher Variation aller Bits. Ein Register mit sicherheitsrelevantem Inhalt hätte damit das Potential, latente Fehler zu verdecken (z.B. Crashdaten wie Druck oder Beschleunigung, die typischerweise im Normalbetriebsfall ohne Crash keine deutliche Variation im Inhalt aufweisen).
  • Aus der DE 10 2013 215 055 A1 ist eine Schaltungsanordnung zur Erkennung von Speicherfehlern bekannt. Diese Schaltungsanordnung beinhaltet einen Speicher und eine Fehlererkennungsschaltung. Hierbei ist die Schaltungsanordnung so ausgelegt, dass sie ein Codewort eines fehlererkennenden Codes oder in einer Teilmenge von Bits invertiertes Codewort in dem Speicher an einem Speicherort speichert und ein Datenwort aus dem Speicher von dem Speicherort ausliest. Die Fehlererkennungsschaltung ist so ausgelegt, einen Speicherfehler anzuzeigen, wenn ein anliegendes Steuersignal einen ersten Wert annimmt, wenn das Datenwort kein Codewort des fehlererkennenden Codes ist. Zusätzlich ist die Fehlererkennungsschaltung so ausgelegt, dass im Falle, dass das anliegende Steuersignal einen zweiten Wert annimmt, der vom ersten Wert verschieden ist, und an den Speicherort das in der Teilmenge von Bits invertierte Codewort geschrieben wurde, anhand des aus dem Speicher ausgelesenen Datenworts zu bestimmen, ob ein Speicherfehler vorliegt, wenn das in der Teilmenge von Bits invertierte Codewort kein Codewort des fehlererkennenden Codes ist.
  • Aus US 9 075 742 B2 ist ein Speicher bekannt, welcher eine Schreibeinrichtung umfasst, die Datenbits, Prüfbits zur Fehlerkorrektur und Overheadbits in einen Speicher schreibt, wobei jedes Bit des Overheadbits entsprechende jeder Gruppe von Bitgruppen einschließlich mindestens ein Bit der Datenbits und/oder der Prüfbits, wobei jedes Bit des Overhead-Bits anzeigt, ob die entsprechende Bitgruppe invertiert wurde, eine Leseeinheit, die die Datenbits, die Prüfbits und das Overheadbit aus dem Speicher liest, eine korrigierende Einheit, die einen Fehler in den Datenbits und Overheadbits, welche aus dem Speicher gelesen wurde, korriegiert, basierend auf den Prüfbits und eine Invertiereinheit, welche die Datenbits in der Bitgruppe entsprechend dem Overhead-Bit invertiert und die invertierten Datenbits als aus dem Speicher gelesene Daten ausgibt, falls der fehlerkorrigierte Overheadbit anzeigt, dass eine Inversion durchgeführt wurde.
  • Alle diese Schriften aus dem Stand der Technik lösen das Problem nicht.
  • Aufgabe des vorgeschlagenen Verfahrens
  • Die Aufgabe besteht somit darin, in Registern sicherheitsrelevanter ICs mit quasi-statischem Inhalt eine Überprüfung auf Stuck-At Fehler zu ermöglichen oder diese sogar trotz des Fehlers nutzbar zu halten. Hierzu ist ein Verfahren zum Auffinden potentiell nicht änderbarer Inhalte („Stuck-At“ Fehler) notwendig. Ein Notlaufbetrieb bei reduzierter Performance soll ermöglicht werden.
  • Diese Aufgabe wird durch Verfahren nach Anspruch 1 gelöst.
  • Lösung der Aufgabe
  • Es wird ein Verfahren zur Überprüfung von Speicher- oder Registerzellen einer integrierten Schaltung auf Stuck-at-Fehler und ggf. Bridging-Faults während des Betriebs dieser integrierten Schaltung vorgeschlagen. Das Verfahren beginnt mit dem Bereitstellen der in den zu überprüfenden Speicher- oder Registerzellen zu speichernden Daten. Diese zu speichernden Daten können zumindest in einen ersten und einen zweiten Teil aufgeteilt werden. Es ist denkbar, die Daten in mehr als zwei Teile aufzuteilen und diese unterschiedlich zu behandeln. Beispielsweise kann ein dritter Teil der Daten nicht abgesichert werden. Hier wird jedoch davon ausgegangen, dass beide Teile beispielsweise durch ein Parity-Bit oder eine CRC-Prüfsumme abgesichert werden, wobei nur die Speicher- und Registerzellen des ersten Teils einer Funktionsprüfung unterzogen werden. Der erste Teil der abzuspeichernden Daten und der zweite Teil der abzuspeichernden Daten sind überschneidungsfrei. Das bedeutet, dass ein Datum (und damit die zugehörige Register- oder Speicherzelle) entweder dem ersten Teil oder dem zweiten Teil zugehörig ist, nie aber beiden Teilen. Der erste Teil kann alle zu speichernden Daten umfassen. Der zweite Teil kann auch keine Daten umfassen. Der erste Teil sollte aber mindestens ein Datum enthalten, also mindestens ein Bit. Zu diesen abzuspeichernden Daten wird eine Prüfinformation hinzugefügt. Diese Prüfinformation kann vor oder nach der nachfolgenden teilweisen oder gesamten Inversion der abzuspeichernden Daten erfolgen. Beim Leseprozess muss dieser Vorgang dann nur in der umgekehrten Reihenfolge aufgehoben werden. Vorzugsweise wird die Prüfinformation Teil der abzuspeichernden Daten. Damit werden die Speicher- und Registerzellen für diese Prüfinformation dann selbst ebenfalls der Prüfung unterzogen. Das Hinzufügen einer Prüfinformation, insbesondere einer CRC-Checksumme zu den zu speichernden Daten ist somit ein wichtiger Teil des Verfahrens. Hierdurch wird diese Prüfinformation Teil der abzuspeichernden Daten. Diese zu speichernden Daten werden dann im Folgenden zu abgesicherten zu speichernden Daten. Es folgt typischerweise die Festlegung, ob und welcher erster Teil dieser abgesicherten zu speichernden Daten invertiert in den Speicher- oder Registerzellen abgelegt werden soll. Hierbei kann beispielsweise vorgesehen sein, alle Bits dieser Daten vor der Ablage zu invertieren oder nur bestimmte Daten oder ein bestimmtes Muster, beispielsweise jedes zweite Bit etc. Das Vorsehen von Mustern hinsichtlich der Inversion vor der Ablage hat den Vorteil, dass dann nicht nur Stuck-At-Fehler detektiert werden können, sondern dass auch Kurzschlüsse zwischen Leitungen erkannt werden können. Es ist besonders vorteilhaft, wenn die zu verwendenden Muster aufgrund der zum Produktionszeitpunkt der integrierten elektronischen Schaltung vorbekannten Topologie der Leitungen der integrierten mikroelektronischen Schaltung vorberechnet werden. Aufgrund dieser Topologie sind nämlich nur bestimmte Kurzschlüsse tatsächlich wahrscheinlich oder möglich.
  • Auch können auf diese Weise Mustersequenzen berechnet werden, die nacheinander in die Speicherzellen geschrieben werden sollten. Der ganz große Vorteil des vorliegenden Vorschlags ist, dass er eine Prüfmethode angibt, mit der solche Testmuster als invertierte Muster von Nutzdaten erzeugt werden können, ohne die Nutzung während des Betriebs zu unterbrechen.
  • Diese Testmuster können zur Detektion von Bridging-Faults verwendet werden.
  • Zusammen mit der späteren Ablage der abzuspeichernden Daten in den Speicher- und/oder Registerzellen erfolgt die Ablage mindesten einer korrespondierenden zusätzlichen Dateninformation, die markiert ob und welche Teile der abgesicherten gespeicherten Daten als erster Teil der abgesicherten gespeicherten Daten invertiert oder nicht invertiert werden sollen bzw. invertiert sind, wenn sie abgelegt sind. Diese zusätzliche Dateninformation wird bevorzugt so abgelegt, dass auch deren Registerbits einer Überprüfung unterzogen werden können. Beispielsweise ist es möglich, drei Bits vorzusehen, von denen zwei immer den inversen Wert des dritten Bits beinhalten müssen. Man kann beim Lesen nun das dritte dieser Bits invertieren und darauf prüfen, ob alle Bits den gleichen Wert haben. Ist dies nicht der Fall, ist diese zusätzliche Dateninformation an sich fehlerhaft. Dieser so ermittelte Wert kann dann genutzt werden um zu erkennen, ob ein erster Teil der gelesenen Dateninformationen invertiert wurde oder nicht. Die zusätzliche Dateninformation sollte also zumindest einen ersten Status aufweisen, wenn der erste Teil der abgesicherten gespeicherten Daten nicht invertiert abgelegt werden soll bzw. nicht invertiert abgelegt wurde und einen zweiten Status aufweisen, wenn der erste Teil der abgesicherten gespeicherten Daten invertiert werden soll bzw. invertiert abgelegt wurde. Beim Abspeichern der abzulegenden Daten in den betreffenden Register- und/oder Speicherzellen wird diese Information berücksichtigt. Diese zusätzliche Dateninformation wird zwischen verschiedenen Schreibvorgängen auf diese Speicher oder Registerzellen modifiziert. Bevorzugt umfasst die Nettoinformation nur ein Bit, das angibt, ob die abzulegenden Daten bzw. die abgelegten Daten invertiert sein sollen bzw. invertiert sind. In dem Fall wird die zusätzliche Dateninformation zwischen Schreibzugriffen auf die Register- und/oder Speicherzellen invertiert. Eine besondere Variante sieht eine Neugenerierung der zusätzlichen Dateninformation für jeden Schreibzugriff auf die Register- und/oder Speicherzellen vor. Hierbei kann beispielsweise diese Neugenerierung auch durch ein Zufallsprinzip in einem Zufallsgenerator erfolgen. Je nach dem logischen Inhalt der zusätzlichen Dateninformation erfolgt eine nicht invertierte Ablage des ersten Teils der abgesicherten zu speichernden Daten in einem, dem ersten Teil der abgesicherten zu speichernden Daten entsprechenden, ersten Teil der Speicher- oder Registerzellen, wenn die zusätzliche Dateninformation einen ersten Status aufweist und eine invertierte Ablage des ersten Teils der abgesicherten zu speichernden Daten in einem, dem ersten Teil der abgesicherten zu speichernden Daten entsprechenden, ersten Teil der Speicher- oder Registerzellen, wenn die zusätzliche Dateninformation einen zweiten Status aufweist. Für den zweiten Teil der abzulegenden Daten erfolgt eine nicht invertierte Ablage des zweiten Teils der abgesicherten zu speichernden Daten in einem, dem zweiten Teil der abgesicherten zu speichernden Daten entsprechenden, zweiten Teil der Speicher- oder Registerzellen. Dieser zweite Teil der Daten wird also nicht invertiert. Somit findet für diesen zweiten Teil der Daten auch keine Überprüfung des zugehörigen zweiten Teils der Speicher- und Registerzellen statt. Diese Speicher- und Registerzellen diese zweiten teils der Speicher- und Registerzellen sind von den Speicher- und Registerzellen des ersten Teils der Speicher und Registerzellen verschieden.
  • Zu einem typischerweise späteren Zeitpunkt erfolgt das Lesen der mindesten einen zusätzlichen Dateninformation aus dem ersten und zweiten Teil der Speicher und Registerzellen als gelesene zusätzliche Dateninformation. Auf Basis dieser gelesenen zusätzlichen Dateninformation wird nun festgestellt, ob und welcher erster Teil der abgesicherten gespeicherten Daten in den Speicher- oder Registerzellen invertiert abgelegt worden ist. Je nachdem erfolgt dann das nicht invertierende Lesen eines, dem ersten Teil der Daten der Speicher- oder Registerzellen entsprechenden, ersten Teils der Speicher- oder Registerzellen, wenn die gelesene zusätzliche Dateninformation einen ersten Status aufweist, um den ersten Teil der gelesenen Daten zu erhalten bzw. das invertierende Lesen des, dem ersten Teil der Daten der Speicher- oder Registerzellen entsprechenden, ersten Teils der Speicher- oder Registerzellen, wenn die gelesene zusätzliche Dateninformation einen zweiten Status aufweist, um den ersten Teil der gelesenen Daten zu erhalten. Darüber hinaus erfolgt dabei das nicht invertierende Lesen eines, dem zweiten Teil der Daten der Speicher- oder Registerzellen entsprechenden, zweiten Teils der Speicher- oder Registerzellen, um den zweiten Teil der gelesenen Daten zu erhalten. Es folgt dann die Extraktion der Prüfinformation aus dem ersten Teil und/oder dem zweiten Teil der gelesenen Daten und die Durchführung einer Überprüfung der Daten auf Korrektheit mit Hilfe dieser extrahierten Prüfinformation. Besonders vorteilhaft ist die Verwendung einer CRC Prüfsumme, die mit den Daten als Teil derselben abgespeichert wird, sodass an dieser Stelle im Prozess eine CRC-Überprüfung (CRC-Check) durchgeführt wird. Es erfolgt dann die Ausgabe oder Verarbeitung oder Bereitstellung einer Fehlermeldung bei Auftreten eines Fehlers bei dieser Überprüfung.
  • Das zuvor beschriebene vorgeschlagene Verfahren hat den Vorteil, dass die Prüfung immer stattfindet und kein zusätzlicher Zeitaufwand bis auf die Gatterlaufzeiten der zusätzlichen Logikstufen entsteht. Es ist aber denkbar, einen ähnlichen Test ohne abgespeicherte Prüfinformationen wie Parity-Bits oder CRC-Prüfsummen durchzuführen. Statt des Zusatzaufwands durch zusätzliche Speicher- und Registerzellen wird der Zusatzaufwand dann in den Zeitaufwand für das Beschreiben der Speicher- und Registerzellen verschoben. Die Anzahl der benötigten Speicher- und Registerzellen sinkt dadurch. Auf der anderen Seite findet die Prüfung aber nur zum Zeitpunkt des Beschreibens statt. Ein Kippen des logischen Inhalts von Speicher- und Registerzellen lässt sich dann nicht ohne Weiteres beobachten. Statt eine Prüfinformation mit abzulegen, wird eine geschriebene Information möglichst unmittelbar nach der Ablage der Daten in den Speicher- und Registerzellen durch Auslesen verifiziert.
  • Es wird daher eine Verfahrensvariante zur Überprüfung von Speicher- oder Registerzellen einer integrierten Schaltung auf Stuck-at-Fehler während des Betriebs dieser integrierten Schaltung vorgeschlagen, die wie zuvor mit der Bereitstellung abzulegender Daten beginnt. Die abzulegenden Daten können dabei wieder in einen ersten Teil und einen zweiten Teil aufgeteilt werden. Dieser erste Teil und dieser zweite Teil sollen sich nicht überlappen. Der erste Teil der der abzulegenden Daten kann übrigens die Gesamtheit der abzulegenden Daten komplett umfassen. In dem Fall enthält der zweite Teil der Daten keine Daten. Der zweite Teil der abzulegenden Daten kann also keine Daten umfassen. Es erfolgt die Ablage mindesten einer zusätzlichen Dateninformation in den Speicher- oder Registerzellen zur Markierung des ersten Teils der abzulegenden Daten als invertiert oder als bei der Ablage zu invertieren. Die zusätzliche Dateninformation weist wieder zumindest einen ersten Status auf, wenn der erste Teil der abzulegenden Daten der Speicher- oder Registerzellen nicht invertiert sein soll bzw. nicht invertiert ist. Die zusätzliche Dateninformation weist zumindest einen zweiten Status auf, wenn der erste Teil der Daten der Speicher- oder Registerzellen invertiert sein soll oder invertiert ist. Des Weiteren folgt die nicht invertierte Ablage des ersten Teils der abzulegenden Daten in einem, dem ersten Teil der abzulegenden Daten entsprechenden, ersten Teil der Speicher- oder Registerzellen, wenn die zusätzliche Dateninformation den ersten Status aufweist und die invertierte Ablage des ersten Teils der abzulegenden Daten in dem, dem ersten Teil der abzulegenden Daten entsprechenden, ersten Teil der Speicher- oder Registerzellen, wenn die zusätzliche Dateninformation den zweiten Status aufweist. Für den zweiten Teil der abzulegenden Daten erfolgt die nicht invertierte Ablage des zweiten Teils der abzulegenden Daten in einem, dem zweiten Teil der abzulegenden Daten entsprechenden, zweiten Teil der Speicher- oder Registerzellen. Dabei überschneidet sich der erste Teil der Speicher- oder Registerzellen nicht mit dem zweiten Teil der Speicher- oder Registerzellen. Im Gegensatz zu dem zuvor beschriebenen Verfahren erfolgt die Überprüfung auf konformes Verhalten nun jedoch nicht durch die Überprüfung von Prüfinformationen. Die Überprüfung beginnt wieder mit dem Lesen der mindesten einen zusätzlichen Dateninformation als gelesene zusätzliche Dateninformation. Es wird vorgeschlagen, anschließend festzustellen, ob und welcher erster Teil der abgesicherten gespeicherten Daten in den Speicher- oder Registerzellen invertiert abgelegt worden ist. Das vorgeschlagene Verfahren umfasst das nicht invertierende Lesen eines, dem ersten Teil der Daten der Speicher- oder Registerzellen entsprechenden, ersten Teils der Speicher- oder Registerzellen, wenn die gelesene zusätzliche Dateninformation einen ersten Status aufweist, um den ersten Teil der gelesenen Daten zu erhalten und das invertierende Lesen des, dem ersten Teil der Daten der Speicher- oder Registerzellen entsprechenden, ersten Teils der Speicher- oder Registerzellen, wenn die gelesene zusätzliche Dateninformation einen zweiten Status aufweist, um den ersten Teil der gelesenen Daten zu erhalten. Wie zuvor erfolgt auch das nicht invertierende Lesen eines, dem zweiten Teil der Daten der Speicher- oder Registerzellen entsprechenden, zweiten Teils der Speicher- oder Registerzellen, um den zweiten Teil der gelesenen Daten zu erhalten. Zumindest der erste Teil der gelesenen Daten und der zweite Teil der gelesenen Daten stellen das erste Leseergebnis dar. Anders als zuvor findet nun jedoch nicht eine Prüfung einer Prüfinformation statt. Der Schreibvorgang ist hier noch nicht abgeschlossen, somit sind der erste Teil und der zweite Teil der abzulegenden Daten noch bekannt. Statt der Prüfinformationsauswertung erfolgt daher unter Ausnutzung dieses Umstands in dieser Variante des vorgeschlagenen Verfahrens ein Vergleich des ersten Teils und des zweiten Teils der abzulegenden Daten mit dem ersten Leseergebnis unter Ermittlung eines Vergleichsergebnisses. Die Verfahrensvariante kann daher nicht angewendet werden, wenn dieses Wissen bereits gelöscht wurde. Die Ausgabe oder Verarbeitung oder Bereitstellung einer Fehlermeldung bei Auftreten eines Fehlers, wenn das Vergleichsergebnis ein von dem ersten Teil und dem zweiten Teil der abzulegenden Daten abweichendes zweites Leseergebnis darstellt, ist der letzte hier noch zu erwähnende Schritt dieser Verfahrensvariante.
  • Die dritte Verfahrensvariante sieht nun vor, dass der in der vorhergehenden Variante beschriebene Schreib/Lesezyklus mit einer ersten weiteren Dateninformation als erster Schreib/Lesezyklus durchgeführt wird und dann anschließend mit einer zweiten weiteren Dateninformation, die von der ersten weiteren Dateninformation verschieden ist, ein zweites Mal durchgeführt wird. Im ersten Schreib/Lesezyklus wird ein erstes Leseergebnis erhalten. Im zweiten Schreib/Lesezyklus wird ein zweites Leseergebnis erhalten. Das erste und zweite Leseergebnis sollten übereinstimmen. Ist dies nicht der Fall, so erfolgt die Ausgabe oder Verarbeitung oder Bereitstellung einer Fehlermeldung bei Auftreten eines solchen Fehlers. Durch das Ändern der weiteren Dateninformation zwischen dem ersten Schreib/Lesezyklus und dem zweiten Schreib/Lesezyklus werden im ersten Schreib/Lesezyklus andere Datenanteile invertiert abgelegt als im zweiten Schreib/Lesezyklus. Hierdurch kommt ein Prüfungseffekt Zustande.
  • Die Grundidee des vorgeschlagenen Verfahrens besteht somit, den abzulegenden Dateninhalt der Speicher- und Registerzellen zeitlich und/oder ggf. von Speicher- oder Registerzelle zu Speicher- zu Registerzelle alternierend invertiert und nicht-invertiert abzulegen. Die derartige Ablage des abzulegenden Dateninhalts erfolgt zusammen mit der zusätzlichen Dateninformation über die Inversion selbst. Hierbei wird bevorzugt diese zusätzliche Dateninformation vor der Inversion dem abzulegenden Dateninhalt, also den abzulegenden Daten, hinzugefügt und somit selbst dieser Inversion ggf. unterworfen. Die Hinzufügung kann aber auch nach der Inversion erfolgen, was aber den Nachteil hat, dass die entsprechenden Speicher- und Registerzellen dieser Prüfung nicht ebenso unterworfen sind.
  • Das vorgeschlagene Verfahren kann sich somit also beispielsweise durch die zusätzliche Ablage mindestens eines zusätzlichen Bits zur Anzeige vollständig oder partiell invertierter Daten auszeichnen. Diese Bits werden vorteilhafterweise in die CRC/Parity Generierung mit eingeschlossen. Ein Stuck-at Fehler wird damit erkennbar.
  • Bis zu diesem Punkt wurden die Verfahren so beschrieben, dass Speicher- und Registerzellen gleich behandelt werden konnten. Typischerweise steuern Registerzellen in integrierten Schaltungen jedoch Zustandsautomaten oder liefern Daten, die innerhalb des betreffenden integrierten Schaltkreises intern weiter benutzt werden. Sie können also typischerweise in zwei Richtungen benutzt werden: Zum einen können sie von der Bus-Seite her gelesen werden und zum anderen vorn der Seite der zu steuernden Teilschaltung der integrierten Schaltung her gelesen werden. Es ist daher vorteilhaft, wenn auch beim Lesen eines Registers von der Seite der zu steuernden Teilschaltung der integrierten Schaltung her die zusätzliche Dateninformation ausgewertet wird und die in der entsprechenden Registerzelle gespeicherte Information nicht invertiert, also in der vorgesehenen Polarität, an die nachfolgende zu steuernden Teilschaltung der integrierten Schaltung ausgegeben wird.
  • Der mögliche Notlaufbetrieb ergibt sich für einen Einzelfehler ohne die Anwendung von Testmustern für die Inversion. Als Einzelfehler wird hier eine Speicher- oder Registerzelle betrachtet, deren logischer Wert auf einem logischen Wert durch einen Schaden fixiert ist und durch zumindest eines der vorgesehenen regulären Verfahren im Betrieb nicht wie vorgesehen modifiziert werden kann und somit schadhaft ist. Da durch die Inversionsmöglichkeit des Zugriffs auf den Dateninhalt dieser einzelnen fehlerhaften Speicher- oder Registerzelle die Polarität der Ablage der binären Daten in dieser einzelnen fehlerhaften Speicher- oder Registerzelle festgelegt werden kann, kann nach Feststellung eines Fehlers die zusätzliche Dateninformation in den Speicher und Registerzellen stets so eingestellt werden, dass stets der richtige logische Wert für den korrekten Dateninhalt dieser fehlerhaften Speicher- oder Registerzelle geliefert wird. Somit wird die Abspeicherung der ursprünglich in der einzelnen fehlerhaften Speicher- oder Registerzelle abzulegenden Information in die Speicherstellen verschoben, die zur Speicherung der zusätzlichen Dateninformation vorgesehen sind. Hierdurch kann bei einer einzelnen fehlerhaften Speicher- oder Registerzelle ein Notlauf sichergestellt werden.
  • Vorteil der Erfindung
  • Ein durch eines der oben beschriebenen Verfahren aufgrund eines Schadens an der betreffenden Speicher- oder Registerzelle nicht veränderbares Bit in den Speicher- oder Registerzellen führt somit frühzeitig zur Verletzung der Integritätsprüfung z.B. durch den beschriebenen CRC-Check und kann somit angezeigt werden oder weitere Maßnahmen durch ein übergeordnetes System veranlassen.
  • Vorteilhafterweise können dann die Speicher- und Registerzellen als Notlauffunktion bis zur Wartung zwischenzeitlich so genutzt werden, dass das fehlerhafte Bit keine Auswirkung hat. Die Inversion kann gezielt dazu verwendet werden, dass das Register je nach abzulegendem Inhalt gezielt nur dann invertiert würde, wenn es dadurch nutzbar bleibt!
  • Optional kann durch den Versuch der Datenablage mit oder ohne Inversion die Speicher- und Registerzellen weiter in zumindest einem der beiden Zustände genutzt werden, was einen erheblichen Vorteil gegenüber dem Stand der Technik darstellt.
  • Glossar
  • Stuck-At-Fehler und Bridging-Faults (Quelle Wikipedia)
    Physikalische Fehler bei digitalen Schaltungen teilt man in mehrere Klassen ein.
    1. A) Stuck-at-Faults (dt. Haftfehler) sind Fehler, bei denen Gatter an einem Eingang oder Ausgang auf einem bestimmten Wert feststecken. Je nach dem Wert unterscheidet man Stuck-at-1 oder Stuck-at-O-Fehler.
    2. B) Als Bridging-Faults werden Kurzschlüsse zwischen zwei Leitungen bezeichnet. Daraus entstehen neue Funktionen der betroffenen Gatter. Input-Output-Bridging bedeutet, dass Ein- und Ausgänge der Schaltung miteinander verbunden sind (Rückkopplung). Dies führt zu zeitabhängigen Verhalten, z.B. zu oszillierenden Schaltungen. Speziell bei Transistoren kennt man noch Stuck-off-Fehler (Transistor sperrt immer), Stuck-on-Fehler (Transistor leitet immer) und Gate-Delay-Faults sowie Path-Delay-Faults, die Verzögerungen bei der Signalverarbeitung hervorrufen.

Claims (3)

  1. Verfahren zur Überprüfung von Speicher- oder Registerzellen einer integrierten Schaltung auf Stuck-at-Fehler während des Betriebs dieser integrierten Schaltung umfassend die Schritte: - Bereitstellung abzulegender Daten, die in einen ersten Teil und einen zweiten Teil aufgeteilt werden können und • wobei dieser erste Teil und der zweite Teil sich nicht überlappen und • wobei der erste Teil der der abzulegenden Daten die Gesamtheit der abzulegenden Daten umfassen kann und • wobei der zweite Teil der abzulegenden Daten keine Daten umfassen kann und - Ablage mindesten einer zusätzlichen Dateninformation in den Speicher- oder Registerzellen zur Markierung des ersten Teils der abzulegenden Daten als invertiert, • wobei die zusätzliche Dateninformation zumindest einen ersten Status aufweist, wenn der erste Teil der abzulegenden Daten der Speicher- oder Registerzellen nicht invertiert sein soll und • wobei die zusätzliche Dateninformation zumindest einen zweiten Status aufweist, wenn der erste Teil der Daten der Speicher- oder Registerzellen invertiert sein soll; - nicht invertierte Ablage des ersten Teils der abzulegenden Daten in einem, dem ersten Teil der abzulegenden Daten entsprechenden, ersten Teil der Speicher- oder Registerzellen, wenn die zusätzliche Dateninformation den ersten Status aufweist; - invertierte Ablage des ersten Teils der abzulegenden Daten in dem, dem ersten Teil der abzulegenden Daten entsprechenden, ersten Teil der Speicher- oder Registerzellen, wenn die zusätzliche Dateninformation den zweiten Status aufweist; - nicht invertierte Ablage des zweiten Teils der abzulegenden Daten in einem, dem zweiten Teil der abzulegenden Daten entsprechenden, zweiten Teil der Speicher- oder Registerzellen, - wobei der erste Teil der Speicher- oder Registerzellen sich nicht mit dem zweiten Teil der Speicher- oder Registerzellen überschneidet; - Lesen der mindestens einen zusätzlichen Dateninformation als gelesene zusätzliche Dateninformation; - Feststellen, ob und welcher erste Teil der abgesicherten gespeicherten Daten in den Speicher- oder Registerzellen invertiert abgelegt worden ist; - nicht invertierendes Lesen eines, dem ersten Teil der Daten der Speicher- oder Registerzellen entsprechenden, ersten Teils der Speicher- oder Registerzellen, wenn die gelesene zusätzliche Dateninformation einen ersten Status aufweist, um den ersten Teil der gelesenen Daten zu erhalten; - invertierendes Lesen des, dem ersten Teil der Daten der Speicher- oder Registerzellen entsprechenden, ersten Teils der Speicher- oder Registerzellen, wenn die gelesene zusätzliche Dateninformation einen zweiten Status aufweist, um den ersten Teil der gelesenen Daten zu erhalten; - nicht invertierendes Lesen eines, dem zweiten Teil der Daten der Speicher- oder Registerzellen entsprechenden, zweiten Teils der Speicher- oder Registerzellen, um den zweiten Teil der gelesenen Daten zu erhalten; - wobei zumindest der erste Teil der gelesenen Daten und der zweite Teil der gelesenen Daten das erste Leseergebnis darstellen; - Ablage mindesten einer weiteren zusätzlichen Dateninformation in den Speicher- oder Registerzellen zur Markierung des ersten Teils der abzulegenden Daten als invertiert, • wobei die weitere zusätzliche Dateninformation zumindest einen ersten Status aufweist, wenn der erste Teil der abzulegenden Daten der Speicher- oder Registerzellen nicht invertiert sein soll und • wobei die weitere zusätzliche Dateninformation zumindest einen zweiten Status aufweist, wenn der erste Teil der Daten der Speicher- oder Registerzellen invertiert sein soll; - wobei sich die weitere zusätzliche Dateninformation von der zusätzlichen Dateninformation inhaltlich unterscheidet; - nicht invertierte Ablage des ersten Teils der abzulegenden Daten in einem, dem ersten Teil der abzulegenden Daten entsprechenden, ersten Teil der Speicher- oder Registerzellen, wenn die weitere zusätzliche Dateninformation den ersten Status aufweist; - invertierte Ablage des ersten Teils der abzulegenden Daten in dem, dem ersten Teil der abzulegenden Daten entsprechenden, ersten Teil der Speicher- oder Registerzellen, wenn die weitere zusätzliche Dateninformation den zweiten Status aufweist; - nicht invertierte Ablage des zweiten Teils der abzulegenden Daten in einem, dem zweiten Teil der abzulegenden Daten entsprechenden, zweiten Teil der Speicher- oder Registerzellen, - wobei der erste Teil der Speicher- oder Registerzellen sich nicht mit dem zweiten Teil der Speicher- oder Registerzellen überschneidet; - Lesen der mindestens einen weitere zusätzlichen Dateninformation als gelesene weitere zusätzliche Dateninformation; - Feststellen, ob und welcher weitere erste Teil der abgesicherten gespeicherten Daten in den Speicher- oder Registerzellen invertiert abgelegt worden ist; - nicht invertierendes Lesen eines, dem ersten Teil der Daten entsprechenden, ersten Teils der Speicher- oder Registerzellen, wenn die gelesene weitere zusätzliche Dateninformation einen ersten Status aufweist, um einen weiteren ersten Teil der gelesenen Daten zu erhalten; - invertierendes Lesen des, dem ersten Teil der Daten der Speicher- oder Registerzellen entsprechenden, ersten Teils der Speicher- oder Registerzellen, wenn die gelesene weitere zusätzliche Dateninformation einen zweiten Status aufweist, um den weiteren ersten Teil der gelesenen Daten zu erhalten; - nicht invertierendes Lesen eines, dem zweiten Teil der Daten der Speicher- oder Registerzellen entsprechenden, zweiten Teils der Speicher- oder Registerzellen, um den weiteren zweiten Teil der gelesenen Daten zu erhalten; - wobei zumindest der weitere erste Teil der gelesenen Daten und der weitere zweite Teil der gelesenen Daten das zweite Leseergebnis darstellen; - Vergleich des ersten Leseergebnisses mit dem zweiten Leseergebnis unter Ermittlung eines Vergleichsergebnisses; - Ausgabe oder Verarbeitung oder Bereitstellung einer Fehlermeldung bei Auftreten eines Fehlers, wenn das Vergleichsergebnis ein vom ersten Leseergebnis abweichendes zweites Leseergebnis darstellt.
  2. Verfahren nach Anspruch 1 - Wobei die zusätzliche Dateninformation eine Information darüber enthält, welche Speicher- und/oder Registerzellen eine invertierte Information enthalten und welche Speicher- und/oder Registerzellen eine nicht invertierte Information enthalten, insbesondere mit welchem Muster (Inversionsmuster) die Information in den Speicher- und/oder Registerzellen invertiert ist.
  3. Verfahren nach Anspruch 2 - Wobei durch Verwendung verschiedener Inversionsmuster zu verschiedenen Zeitpunkten Bridging-Faults erkannt werden.
DE102017115057.9A 2017-07-05 2017-07-05 Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus Active DE102017115057B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102017115057.9A DE102017115057B4 (de) 2017-07-05 2017-07-05 Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
CN201810731582.9A CN109215723B (zh) 2017-07-05 2018-07-05 检查寄存器单元或存储器单元的固定故障的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017115057.9A DE102017115057B4 (de) 2017-07-05 2017-07-05 Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus

Publications (2)

Publication Number Publication Date
DE102017115057A1 DE102017115057A1 (de) 2019-01-10
DE102017115057B4 true DE102017115057B4 (de) 2019-03-07

Family

ID=64665876

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017115057.9A Active DE102017115057B4 (de) 2017-07-05 2017-07-05 Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus

Country Status (1)

Country Link
DE (1) DE102017115057B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013215055A1 (de) 2013-07-31 2015-02-05 Infineon Technologies Ag Schaltungsanordnung und Verfahren mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
US9075742B2 (en) 2009-09-09 2015-07-07 Kabushiki Kaisha Toshiba Memory device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075742B2 (en) 2009-09-09 2015-07-07 Kabushiki Kaisha Toshiba Memory device
DE102013215055A1 (de) 2013-07-31 2015-02-05 Infineon Technologies Ag Schaltungsanordnung und Verfahren mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern

Also Published As

Publication number Publication date
DE102017115057A1 (de) 2019-01-10

Similar Documents

Publication Publication Date Title
DE102013211077B4 (de) Verfahren zum Testen eines Speichers und Speichersystem
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE102006001873B4 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung
EP2100308B1 (de) Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
DE2225841B2 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE2157829C2 (de) Anordnung zum Erkennen und Korrigieren von Fehlern in Binärdatenmustern
DE102006007326A1 (de) Fehlerkorrekturschaltung und -Verfahren
DE10256487B4 (de) Integrierter Speicher und Verfahren zum Testen eines integrierten Speichers
EP3378006B1 (de) Verfahren zum laden eines sicheren speicherabbilds eines mikrocontrollers und anordnung mit einem mikrocontroller
EP1444700B1 (de) Speichertest
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
DE102017115058B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb und Herbeiführung der Ausfallsicherheit
DE102017115056B3 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb
DE102005016801A1 (de) Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
EP1966696A1 (de) Verfahren zur erkennung einer versorgungsunterbrechung in einem datenspeicher und zur wiederherstellung des datenspeichers
EP0353660B1 (de) Verfahren zur Fehlersicherung in Speichersystemen von Datenverarbeitungsanlagen, insbesondere Fernsprechvermittlungsanlagen
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
EP0453609B1 (de) Verfahren zum Testen einer kleinsten adressierbaren Einheit eines RAM's auf über einer bestimmten Zahl liegende Bitfehler
DE102006004168A1 (de) Überprüfung eines Adressdecoders
DE102015211458A1 (de) Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage
EP2002446B1 (de) Verfahren zum betreiben einer speichereinrichtung mit markierung von als fehlerhaft erkannten speicherblöcken
DE3433679A1 (de) Verfahren und anordnung zur sicherung von wichtigen informationen in speichereinheiten mit wahlweisem zugriff, insbesondere von steuerbits in als cache-speicher arbeitenden pufferspeichern einer datenverarbeitungsanlage
EP0919917B1 (de) Verfahren zum Testen des Pufferspeichers eines Mikroprozessorsystems

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: ELMOS SEMICONDUCTOR SE, DE

Free format text: FORMER OWNER: ELMOS SEMICONDUCTOR AKTIENGESELLSCHAFT, 44227 DORTMUND, DE