DE112006001233T5 - Selektive Aktivierung der Fehlerverminderung basierend auf der Fehlerzahl des Bit-Werts - Google Patents

Selektive Aktivierung der Fehlerverminderung basierend auf der Fehlerzahl des Bit-Werts Download PDF

Info

Publication number
DE112006001233T5
DE112006001233T5 DE112006001233T DE112006001233T DE112006001233T5 DE 112006001233 T5 DE112006001233 T5 DE 112006001233T5 DE 112006001233 T DE112006001233 T DE 112006001233T DE 112006001233 T DE112006001233 T DE 112006001233T DE 112006001233 T5 DE112006001233 T5 DE 112006001233T5
Authority
DE
Germany
Prior art keywords
error
bit value
threshold
errors
counter
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.)
Withdrawn
Application number
DE112006001233T
Other languages
English (en)
Inventor
Arijit Holden Biswas
Steven Shrewsbury Raassch
Shubhendu Framingham Mukherjee
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112006001233T5 publication Critical patent/DE112006001233T5/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • 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
    • 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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Eine Vorrichtung mit:
einer Mehrzahl von Zustandselementen;
einem Fehlerzähler zum Zählen der Anzahl von Bitwertfehlern in der Mehrzahl von Zustandselementen; und
einer Aktivierungslogik zum Erhöhen der Fehlerminderung, wenn die Anzahl von Bitwertfehlern einen Schwellenwert übersteigt.

Description

  • HINTERGRUND
  • 1. Gebiet
  • Die vorliegende Offenbarung betrifft das Gebiet der Datenverarbeitung und insbesondere das Gebiet der Fehlerverminderung in Datenverarbeitungsvorrichtungen.
  • 2. Beschreibung des Standes der Technik
  • Da die Verbesserungen der Herstellungstechnologien bezüglich integrierter Schaltungen zunehmend kleinere Größen und geringere Betriebsspannungen in Mikroprozessoren und anderen Datenverarbeitungsvorrichtungen ermöglichen, werden die Hersteller und Verwender derartiger Geräte zunehmend mit dem Phänomen von weichen Fehlern betroffen. Weiche Fehler treten auf, wenn Alphapartikel und hochenergetische Neutronen integrierte Schaltungen treffen und auf den Schaltknoten gespeicherte Ladungen ändern. Wenn die Ladungsänderung ausreichend groß ist, kann die Spannung auf einem Knoten von einem Bit-Wert, der einen logischen Zustand repräsentiert auf einen Wert, der einen anderen logischen Zustand repräsentiert, geändert werden; in diesem Fall wird die Information, die auf dem Knoten gespeichert ist, fehlerhaft. Allgemein nimmt die Rate weicher Fehler („SER") zu, wenn die Größe der Schaltung abnimmt, da die Wahrscheinlichkeit, dass ein Auftreffen des Partikels einen Spannungsknoten trifft, zunimmt, wenn die Schaltungsdichte zunimmt. Ähnlich nimmt die Differenz zwischen den Spannungswerten, die unterschiedliche logische Zustände darstellen, ab, wenn die Betriebsspannungen abnehmen, so dass weniger Energie erforderlich ist, um die logischen Zustande auf Schaltungsknoten zu verändern, es treten mehr weiche Fehler auf.
  • Das Abschirmen der Partikel, die weiche Fehler verursachen ist extrem schwierig, so dass Datenverarbeitungsvorrichtungen oft Techniken zum Erkennen und manchmal zum Korrigieren von weichen Fehlern aufweisen. Diese Techniken zur Verminderung von Fehlern weisen Fehler-korrigierende-Codes auf („ECC"), Scrubbing Caches und im Gleichschritt laufende Prozessoren auf. Die Verwendung von Techniken zur Fehlerverminderung neigt jedoch zur Verringerung der Leistungsfähigkeit und erhöht den Leistungsverbrauch. Weiter kann die Notwendigkeit oder das Erwünschtsein der Verwendung einer Fehlerverminderung entsprechend der Zeit und dem Raum, in dem das Gerät verwendet wird, variieren, da Umweltfaktoren wie Höhe, Magnetfeldstärke und Richtung und Sonnenaktivität SER beeinflussen kann.
  • Es kann daher eine selektive Aktivierung der Fehlerminderung erwünscht sein.
  • KURZE ERLÄUTERUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird beispielhaft und ohne Beschränkung in den beiliegenden Figuren gezeigt.
  • 1 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung in einem Prozessor.
  • 2 zeigt einen Mehrkern-Prozessor nach einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 3 zeigt ein System nach einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 4 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung bei einem Verfahren zur selektiven Aktivierung der Fehlerminderung basierend auf einer Fehlerzahl des Bit-Werts.
  • EINGEHENDE BESCHREIBUNG
  • Die nachfolgende Beschreibung beschreibt Ausführungsbeispiele der selektiven Aktivierung einer Fehlerverminderung basierend auf der Fehlerzahl des Bit-Werts. In der nachfolgenden Beschreibung sind eine Anzahl besonderer Einzelheiten, etwa Komponenten und Systemkonfigurationen angegeben, um ein besseres Verständnis der vorliegenden Erfindung zu erlauben. Es ergibt sich jedoch für den Fachmann, dass die Erfindung ohne derartige besondere Einzelheiten verwirklicht werden kann. Weiter werden einige allgemein bekannte Strukturen, Schaltungen, Techniken und dergleichen nicht näher in Einzelheiten beschrieben, um eine unnötige Verundeutlichung der vorliegenden Erfindung zu vermeiden.
  • Aufgrund der zufälligen Natur des Partikelflusses der für weiche Fehler verantwortlich ist, kann eine vernünftige Abschätzung des SER einen relativ großen Raum zur Fehlererkennung verlangen. Die vorliegende Erfindung kann erwünscht sein, weil sie eine Fehlererkennung unter Verwendung von Strukturen, etwa Cache-Speicher und Abtastzellen schafft, die schon einen beträchtlichen Bereich der Größe vieler Prozessoren und anderer Geräte einnehmen. Die vorliegende Erfindung kann daher verwendet werden ohne zusätzliche Fehlererkennungsstrukturen zu erfordern, die die Größe und damit die Kosten erheblich erhöhen würde.
  • 1 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung in einem Prozessor 100. Der Prozessor 100 kann einer aus seiner Vielzahl von unterschiedlichen Prozessoren sein, etwa ein Prozessor der Pentium®-Prozessor-Familie, der Itanium®-Prozessor-Familie oder einer anderen Prozessor-Familie der Intel Corporation und andere Prozessoren einer anderen Firma. Die vorliegende Erfindung kann weiter verwendet werden bei einer anderen Vorrichtung als einem Prozessor, etwa einer Speichereinheit. Der Prozessor 100 weist ein Speicherfeld 110, eine Speicherfehlerzählereinheit 120 und eine Speicherfehlerminderungseinheit 130 auf.
  • Das Speicherfeld 110 kann aus einer beliebigen Anzahl von Reihen und einer beliebigen Anzahl von Spalten jeder Art von Speicherzellen bestehen, etwa statischen Speicherzellen mit wahlfreiem Zugriff, die für jede beliebige Funktion verwendet wird, etwa als ein Cache- Speicher. Das Speicherfeld 110 weist eine Fehlererkennungsschaltung 110 zum Erkennen von Bit-Wertfehlern in einem Speicherfeld 110 unter Verwendung jeder bekannten Technik, etwa der Parität oder ECC, auf. Viele Prozessoren und andere Geräteausbildungen weisen einen relativ großen Raum für ein Cache oder andere Speicherfelder auf und viele dieser Felder weisen bereits Parität oder ECC auf. Es kann daher ein erheblicher Bereich der Einheit zu geringen Kosten zur Fehlererkennung nach der vorliegenden Erfindung verfügbar sein.
  • Die Speicherfehlerzähleinheit 120 weist einen Feldfehlerzähler 121, einen Feldlesezähler 122 und ein Feldzählerkontrollmodul 112 auf. Der Feldfehlerzähler 121 kann jede bekannte Zählerschaltung sein, synchron oder asynchron, mit einem Zähleingang, einem Zählausgang und einer Rückstellung. Der Zählereingang des Feldfehlerzählers 121 ist mit der Fehlererkennungsschaltung 111 zum Empfangen eines Signals gekoppelt das angibt, dass bei dem Lesen eines Fehlerfelds 110 ein Bit-Wertfehler erkannt worden ist der Art, dass der Zählausgang des Feldfehlerzählers 121 die Gesamtanzahl von Fehlern des Bit-Werts, die bei Lesungen des Speicherfeldes 110 angibt, seit der Feldfehlerzähler 121 zurückgestellt ist.
  • Der Feldlesezähler 122 kann jede bekannte Zählerschaltung sein, synchron oder asynchron, mit einem Zählereingang, einem Zählerausgang und einer Rückstellung. Der Eingang des Feldlesezählers 122 ist mit einem Speicherfeld 110 gekoppelt zum Empfangen eines Signals, das angibt, dass das Speicherfeld 110 gelesen ist, so dass der Zählerausgang des Feldlesefehlers 122 die Anzahl der Male angibt, die das Speicherfeld 110 gelesen worden ist, seit der Feldlesezähler rückgestellt worden ist.
  • Im Ausführungsbeispiel werden der Feldlesezähler 121 und der Feldlesezähler 122, immer dann zurückgestellt, wenn die Anzahl von Lesungen des Speicherfeldes 110, das von dem Feldlesezähler 122 aufgezählt worden ist, eine bestimmte Grenze erreicht, beispielsweise jede 1.000 Lesungen. Der Feldlesegrenzwert kann fest oder programmierbar sein. Ein geeigneter Feldlesegrenzwert kann basierend auf der Größe, der Anzahl von Bits und der Fläche eines Speicherfeldes 110, der Erwartung der Anzahl von Lesungen, die für eine vernünftigerweise genaue Bestimmung des SER benötigt wird und anderen Faktoren gewählt werden. Der Feldlesezähler 121 und der Feldlesezähler 122 werden dann auch nach einer bestimmen Zeit rückgestellt, nachdem eine bestimmte Zeit (beispielsweise gemessenen in Sekunden) verstrichen ist, so dass Änderungen in dem SER erkannt werden kann, auch wenn das Speicherfeld 110 relativ inaktiv ist. Bei anderen Ausführungsbeispielen kann der Zähler auch oder stattdessen basierend auf einem anderen Ereignis oder Signal zurückgestellt werden.
  • Bei diesem Ausführungsbeispiel ist der Ausgang des Feldfehlerzählers 121 mit dem Feldzählersteuermodul 123 gekoppelt, so dass das Feldzählersteuermodul 123 die Anzahl von Bit-Wertfehlern für den Feldlesegrenzwert empfängt, immer wenn der Feldfehlerzähler 121 und der Feldlesezähler 122 zurückgestellt werden. Bei anderen Ausführungsbeispielen kann die Anzahl von Bit-Wertfehlern kontinuierlich für das Feldzählersteuermodul 123 verfügbar sein oder es kann an das Feldzählerkontrollmodul 123 basierend auf jedem anderen Ereignis oder Signal gesendet werden.
  • Das Feldzählsteuermodul 123 weist weiter ein Feldfehlerschwellenwertregister 124 auf, das programmiert werden kann, um einen Feldfehlerschwellenwert zu erhalten. In anderen Ausführungsbeispielen kann der Feldfehlerschwellenwert fest sein. Wenn die Anzahl von Bit-Wertfehlern den Feldfehlerschwellenwert übersteigt, ist die Fehlerminderung zu aktivieren oder zu erhöhen. Ein geeigneter Feldfehlerschwellenwert kann basierend auf der Anzahl von Bit-Wertfehlern pro Feldlesungsgrenzwert, der der gewünschten SER-Schwelle entspricht, gewählt werden. Andere Ausführungsbeispiele können eine Logik zum Berechnen des SER von den Ausgängen der Zähler 121 und 122 aufweisen. Die Bestimmung, ob die Anzahl der Bit-Wertfehler den Feldfehlerschwellenwert übersteigt, kann unter Verwendung jedes bekannten Ansatzes, etwa durch Verwendung einer Komparatorschaltung, durchgeführt werden.
  • Jedes Zählsteuermodul 123 gibt der Speicherfehlerminderungseinheit 120 an, ob die Anzahl von Bit-Wertfehlern den Feldfehlerschwellenwert übersteigt. Die Angabe kann auf dem Zustand oder dem Übergang eines Signals (einem "hohes SER" Signal) oder jedem anderen Ansatz. Wenn das Feldzählerkontrollmodul 123 angibt, dass die Feldfehlerschwelle überschritten worden ist, aktiviert die Speicherfehlerminderungseinheit 130 die Fehlerminderung oder erhöht diese durch eine oder mehrere aus einer Vielzahl von bekannten Ansätzen. Beispielsweise kann die Speicherfehlerminderungseinheit 130 das Bereinigen der Daten des Speicherfeldes 110 aktivieren oder kann die Häufigkeit des periodischen Bereinigens der Daten des Speicherfeldes 110 erhöhen.
  • Die vorliegende Erfindung kann, wie in 2 gezeigt, auch bei Verwendung einer sequentiellen Logik zur Fehlererkennung statt eines Speicherfeldes genutzt werden. 2 zeigt einen Mehrkern-Prozessor 200 entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. Im allgemeinen ist ein Mehrkern-Prozessor eine einzige integrierte Schaltung mit mehr als einem Ausführungskern.
  • Ein Ausführungskern weist eine Logik zum Ausführen von Befehlen auf. Zusätzlich zu den Ausführungskernen kann ein Mehrkern-Prozessor wie jede Kombination von zugeordneten oder geteilten Ressourcen innerhalb des Schutzbereiches der vorliegenden Erfindung aufweisen. Eine zugewiesene Ressource kann eine Ressource sein, die einem einzigen Kern zugewiesen ist, etwa als ein zugewiesener Cache der Ebene Eins oder kann eine Ressource sein, die einem Untersatz der Kerne zugewiesen ist. Eine geteilte Ressource kann eine Ressource sein, die von allen Kernen geteilt wird, etwa ein geteilter Cache der Ebene 2 oder eine geteilte externe Buseinheit, die eine Schnittstelle zwischen dem Mehrkern-Prozessor und einer weiteren Komponente unterstützt, oder kann eine Ressource sein, die von einem beliebigen Untersatz der Kerne geteilt wird.
  • Der Mehrkern-Prozessor 200 weist einen Ausführungskern 201 und einen Ausführungskern 202 auf. Der Ausführungskern 201 weist eine Abtastkette 210, die sequentielle Fehlerzählereinheit 220 und die sequentielle Fehlerminderungseinheit 230 auf.
  • Die Abtastkette 210 kann eine beliebige Anzahl von Abtastzellen sein, die in Reihe angeordnet sind, etwa als eine Verkettung oder eine Schieberegisteranordnung. Abtastzellen sind sequentielle Elemente wie Auffangregister oder Flip-Flops, die zu vielen integrierten Schaltungen hinzugefügt werden, um eine redundante statische Information zum Testen und Fehlerbeseitigen der sequentiellen Logik hinzugefügt sind. Die Abtastzellen sind in einer Kette angeordnet, die verwendet werden kann, zum sequentiellen Verschieben von Daten aus einem Gerät oder zum Anordnen eines Geräts in einen bekannten Zustand durch sequentielles Übertragen von Daten in das Gerät. Typischerweise sind die Abtastzellen inaktiviert, bevor das Gerät die Fabrik verlässt.
  • Viele Prozessorausbildungen weisen Abtastzellen auf und viele weisen eine „Full Scan"-Fähigkeit auf, was bedeutet, dass eine Abtastzelle für alle sequentiellen Zustände des Prozessors vorhanden ist. Es kann daher ein signifikanter Bereich der Prozessoreinheit, möglicherweise etwa ein so großer Bereich wie für die sequentielle Schaltung des Prozessors, bei geringen Kosten zur Fehlererkennung nach der vorliegenden Erfindung verfügbar sein. Um weiter die Fähigkeit zur Fehlererkennung zu erhöhen, können vorhandene Abtastzellausbildungen zum Erhöhen ihrer Empfindlichkeit gegenüber weichen Fehlern modifiziert sein. Diese Ausbildungsmodifikationen wie das Hinzufügen oder Entfernen von Kapazität oder das Erhöhen der Kanallänge kann ohne Behindern der Funktionalität für einen normalen Abtastvorgang ausgeführt werden und kann derart ausgeführt werden, dass sie für einen normalen Abtastvorgang inaktiviert werden und zur Erkennung weicher Fehler aktiviert werden. Entsprechend können die Abtastzellen, die auf einem Prozessor oder einem anderen Gerät zum Testen und zum Bereinigen vorgesehen sind, auch alternativ zur Erkennung von weichen Fehlern ausgebildet sein.
  • Die Fehlererkennung kann durch ständiges Verschieben eines bekannten Datenwerts in den Eingang der Abtastkette 202 unter Beobachten des Ausgangs durchgerührt werden. Fehler werden durch einen unterschiedlichen Wert, der an dem Ausgang der Abtastkette 210 ankommt, angegeben. Beispielsweise kann der Eingang der Abtastkette 210 auf binär Null eingestellt werden. Jede binäre Eins, die an dem Ausgang der Abtastkette 210 ankommt, gibt einen Bit-Wertfehler an. Das Beobachten von Übergängen von Null auf Eins statt von Eins auf Null kann in einem n-well-Prozess erwünscht sein, indem ein Übergang von Null auf Eins verursacht sein kann sowohl durch Alpha- als auch durch Neutronenpartikeltreffer, Eins zu Null Übergänge dagegen nur durch Neutronen verursacht sein können.
  • Eine sequentielle Fehlerzählereinheit 220 weist einen sequentiellen Fehlerzähler 221 und ein sequentielles Zählersteuermodul 223 auf. Der sequentielle Fehlerzähler 221 kann jede bekannte Zählerschaltung sein, synchron oder asynchron, mit einem Zählereingang, einem Zählerausgang und einer Rückstellung. Der Zählereingang des sequentiellen Fehlerzählers 221 ist mit dem Ausgang der Abtastkette 210 derart gekoppelt, dass der Zählerausgang des sequentiellen Fehlerzählers 221 die gesamte Anzahl der Mitwertfehler angibt, die von der Abtastkette 210 erkannt worden ist, seit der sequentielle Fehlerzähler 221 zurückgestellt worden ist. Bei diesem Ausführungsbeispiel wird der sequentielle Fehlerzähler 221 nach jeder vollen Verschiebung der Abtastkette 210, das heißt die Anzahl der Taktzyklen, die erforderlich ist für einen eingegeben Wert an dem Eingang zum Erreichen des Ausgangs, zurückgestellt. Bei anderen Ausführungsbeispielen kann der Zähler auch oder stattdessen basierend auf jedem anderen Ereignis oder Signal zurückgestellt werden.
  • Bei diesem Ausführungsbeispiel ist der Ausgang des sequentiellen Fehlerzählers 221 mit dem sequentiellen Zählersteuermodul 223 derart gekoppelt, dass das sequentielle Zählersteuermodul 223 die Anzahl von Bitwertfehlern pro voller Abtastung empfängt, immer wenn der sequentielle Fehlerzähler 221 zurückgestellt wird. Bei anderen Ausführungsbeispielen kann die Anzahl von Bitwertfehlern kontinuierlich für das sequentielle Zählersteuermodul 223 verfügbar sein oder kann an das sequentielle Zählersteuermodul 223 basierend auf jedem anderen Ereignis oder Signal ausgesendet werden.
  • Das sequentielle Zählersteuermodul 223 weist weiter ein sequentielles Fehlerschwellenwertregister 224 auf, das zum Halten eines sequentiellen Fehlerschwellenwerts programmiert sein kann. Bei anderen Ausführungsbeispielen kann der Fehlerschwellenwert fest sein. Wenn die Anzahl von Bitwertfehlern den sequentiellen Fehlerschwellenwert übersteigt, wird die Fehlerminderung aktiviert oder erhöht. Ein geeigneter sequentieller Fehlerschwellenwert kann basierend auf der Anzahl von Abtastzellen in der Abtastkette 210 ausgewählt werden. Andere Ausführungsbeispiele können einen Abtastzähler zum Zählen der Anzahl von teilweise oder vollen Abtastungen und eine Logik zum Berechnen der SER aus den Ausgängen eines Fehlerzählers und des Abtastzählers aufweisen. Die Bestimmung, ob die Anzahl von Bitwertfehlern den sequentiellen Fehlerschwellenwert übersteigt, kann unter Verwendung jedes bekannten Ansatzes ausgeführt werden, etwa der Verwendung einer Komparatorschaltung.
  • Das sequentielle Zählersteuermodul 223 gibt der sequentiellen Fehlerminderungseinheit 230 an, ob die Anzahl von Bitwertfehlern den sequentiellen Fehlerschwellenwert übersteigt. Die Angabe kann auf dem Status und in dem Übergang eines hohen SER-Signals oder jedes anderen Ansatzes basieren. Wenn das sequentielle Zählersteuermodul 223 angibt, dass die sequentielle Fehlerschwelle überstiegen worden ist, aktiviert die sequentielle Fehlerminderungseinheit 230 die Fehlerminderung oder erhöht diese durch einen oder mehreren aus einer Vielzahl von geeigneten Modi. Beispielsweise kann die sequentielle Fehlerminderungseinheit 230 den Ausführungskern 202 aktivieren, um im Gleichschritt mit dem Ausführungskern 201 zu laufen.
  • Die vorliegende Erfindung kann weiter bei einer Vorrichtung verwendet werden, die eine Kombination von Speicherfeldern, Abtastketten oder jede andere Struktur mit Statuselementen, bei dem Bitwertfehler erkannt werden können, einsetzt. Beispielsweise kann der Prozessor zwei oder mehrere Speicherfelder aufweisen, jedes mit einer eigenen entsprechenden Fehlerzähleinheit und Fehlerminderungseinheit oder zwei oder mehreren Ausführungskernen, jedem mit einer eigenen entsprechenden Fehlerkette und Fehlerzähl- und Minderungseinheiten. Jede Fehlerzähleinheit kann ein oder mehrere Schwellenwertregister aufweisen zum Vorsehen von Schwellenwerten die zu kalibrieren sind zum Berücksichtigen von Faktoren wie der Prozess- und architekturalen Verwundbarkeit. Die Schwellenwertregister können programmierbar sein um ein Einstellen der Schwellenwerte zu erlauben.
  • Bei einigen Ausführungsbeispielen kann eine Fehlerzähleinheit mehrere Zähler für unterschiedliche Quellen und Typen von Fehlern aufweisen und/oder hohe SER-Signale von mehreren Fehlerzähleinheiten können gemeinsam zum Bestimmen ob, welche Art und an welchem Fehlerwert und wo eine Fehlerwertminderung aktiviert ist verarbeitet werden. Bei einem solchen Ausführungsbeispiel können die hohen SER-Signale gemeinsam OR verschaltet sein. Beispielsweise kann die Fehlerminderung aktiviert werden, wenn eines oder beides einer Feldfehlerschwelle und einer sequentielle Fehlerschwelle überschritten sind. Bei einem anderen derartigen Ausführungsbeispiel kann die Bestimmung, ob eine Fehlerschwelle überschritten worden ist, basierend auf einer Kombination von Fehlerzahlen von mehr als einem Zähler erfolgen. Die Zahlen können direkt aufeinander aufaddiert werden oder eine Zahl kann stärker gewichtet werden als die anderen, da der eine Typ oder die eine Quelle des Fehlers eine größere Zuverlässigkeit repräsentiert. Innerhalb des Schutzbereiches der vorliegenden Erfindung sind auch andere Formen der Verarbeitung von Fehlerzahlen und/oder hohen SER-Signalen möglich, etwa das Vorsehen eines bestimmten hohen SER-Signals zum Negieren oder Vernachlässigen eines anderen spezifischen hohen SER-Signals.
  • Bei jedem dieser oder anderen Ausführungsbeispielen können verschiedene Niveaus oder Arten von Fehlerminderung aktiviert oder erhöht werden, abhängig von der Quelle und/oder der Verarbeitung der hohen SER-Signale. Beispielsweise kann bei einem Ausführungsbeispiel mit Fehlererkennung sowohl für ein Cache und eine sequentielle Logik ein hohes SER-Signal lediglich von dem Cache das Cache-Bereinigen aktivieren, ein hohes SER-Signal von lediglich der sequentiellen Logik kann den Gleichschritt aktivieren und ein hohes SER-Signal von beiden kann eine Erhöhung der Betriebsspannung aktivieren.
  • Weitere Ausführungsbeispiele können mehrere Fehlerschwellenwerte für eine einzige Fehlerzähleinheit aufweisen, so dass der Typ oder das Niveau der Fehlerminderung gewählt werden kann in Abhängigkeit von der erkannten Größe des SER. Bei einem derartigen Ausführungsbeispiel sind beispielsweise mehrere Ebenen der Fehlerminderung verfügbar und unterschiedliche Höhen von SER-Signalen können verwendet werden um anzugeben, welche Ebene der Fehlerminderung zu wählen ist basierend darauf, welche Fehlerschwelle überschritten worden ist. Diese Ebenen können unterschieden werden durch unterschiedliche Niveaus einer einzelnen Technik, wie variierenden Häufigkeiten der Cachebereinigung oder kann unterschieden werden durch die Verwendung von unterschiedlichen Techniken, die der Cachebereinigung in eine Ebene unter Erhöhen der Betriebsspannung in einer anderen Ebene. In eine oder mehreren dieser Ebenen kann eine oder können mehrere Fehlerminderungstechniken inaktiviert werden oder in einem ausgeschalteten Zustand sein. In jeder der anderen Ebenen kann derselbe Fehlerminderungszustand eingeschaltet oder aktiviert sein in einer einzigen oder mehreren Niveaus.
  • Ausführungsbeispiele der vorliegenden Erfindung können jede der obigen Kombinationen aufweisen. Ein Ausführungsbeispiel kann mehrere Fehlerzähler einschließen, jeder mit mehreren Fehlerschwellen und mehrere Ebenen der Fehlerminderung gewählt werden basierend auf der Verarbeitung der hohen SER-Signale. Das Verarbeiten kann ausgeführt werden um mehr Gewicht auf bestimmte Arten oder Quellen von Fehlern zu geben. Beispielsweise kann eine bestimmte Ebene der Fehlerminderung erreicht werden, wenn ein hohes SER-Signal von einem großen Speicher gegeben ist oder zwei hohe SER-Signale von zwei kleineren Speicherfeldern vorliegen. Bei einem anderen Ausführungsbeispiel kann eine bestimmte Ebene der Fehlerminderung erreicht werden, wenn ein hohes SER-Signal von einer Abtastkette festgestellt wird und ein noch höheres Niveau oder Ebene der Fehlerminderung kann erreicht werden, wenn ein hohes SER-Signal in einem Speicherfeld festgestellt wird, da das Speicherfeld einen größeren Abschnitt des räumlichen Bereichs als die Abtastkette repräsentiert.
  • Bei einigen Ausführungsbeispielen ist das Timing der hohen SER-Signale, der Zählerausgänge und andere Signale nicht kritisch, da das Ziel sein kann zum Erkennen von bleibenden Perioden mit hohen SER statt kurzer Spikes. Die Signale können daher geleitet oder verzögert sein und können von unterschiedlichen Einheiten zu unterschiedlichen Zeiten ankommen. Zusätzlich kann eine Hysterese in dem hohen SER-Signal erwünscht sein und/oder wenige Iterationen der Fehlererkennung können durchgeführt werden vor dem Aktivieren, Erhöhen, Deaktivieren oder Verringern der Fehlerminderung zum Vermeiden von Kollisionen zwischen Fehlerminderungsweisen.
  • 3 zeigt das System 300 nach einem Ausführungsbeispiel der vorliegenden Erfindung. Das System 300 weist einen Prozessor 310, einen Systemkontroller 320, einen dauerhaften Speicher 330 und einen Systemspeicher 340 auf. Der Prozessor 310 kann jeder Prozessor wie oben beschrieben sein, einschließlich einer funktionellen Einheit 311 und der Fehlerzählsteuereinheit 312. Die funktionelle Einheit 311 weist ein Speicherfeld, eine sequentielle Logik oder irgendeine andere Struktur auf, die Zustandselemente hat, in denen Bitwertfehler erkannt werden können. Die Fehlerzählsteuereinheit 312 zählt die Anzahl von Bitwertfehlern in der funktionellen Einheit 311 und gibt an, ob die Anzahl von Bitwertfehlern in der funktionalen Einheit 311 einen Fehlerschwellenwert übersteigt. Bei diesem Ausführungsbeispiel gibt die Steuereinheit 312 ein hohes SER-Signal 313 aus, wenn die Anzahl von Bitwertfehlern in der funktionellen Einheit 311 den Fehlerschwellenwert übersteigt.
  • Der Systemkontrolle 320 kann irgendeine Chipset-Komponente sein oder eine andere Komponente, die mit dem Prozessor 310 gekoppelt ist um das hohe SER-Signal 313 zu empfangen. Bei diesem Ausführungsbeispiel, bei dem ein hohes SER-Signal 313 vorliegt, aktiviert oder erhöht der Systemkontroller 320 die Fehlerminderung. Beispielsweise kann der Systemkontroller 320 einen Spannungskontroller aufweisen oder mit diesem gekoppelt sein, der das System, den Prozessor oder einen anderen Spannungspegel anhebt, um weiche Fehler zu verringern.
  • Der Systemkontroller 320 kann weiter aufweisen oder gekoppelt sein mit einem dauerhaften Speicher 330 zum Speichern des Zustandes des hohen SER-Signals 313 oder um auf andere Modus eine Information bezüglich des detektierten SER beizubehalten. Der dauerhafte Speicher 330 kann jeder Speicher sein, der dazu in der Lage ist, Informationen beizubehalten, während das System 300 oder der Prozessor 310 ausgeschaltet ist oder in einem anderen inaktiven Zustand ist. Beispielsweise kann der dauerhafte Speicher 330 ein Flash-Speicher oder ein nicht-flüchtiger Speicher oder ein batteriegestützter Speicher mit wahlfreiem Zugriff sein. In dem Fall, dass das System 300 abstürzt aufgrund von weichen Fehlern oder auf sonstige Modus, kann der Systemkontroller 320 den dauerhaften Speicher 330 bei einem neuen Booten lesen, um zu bestimmen, ob das zuletzt erkannte SER hoch war und, falls es ist, das System 300 mit einer aktivierten Fehlerminderung neu zu starten.
  • Der Systemspeicher 340 kann jede Art eines Speichers sein, etwa ein statischer oder dynamischer Speicher mit wahlfreiem Zugriff oder ein Speicher einer magnetischen oder optischen Disk. Der Systemspeicher 340 kann zum Speichern von Befehlen verwendet werden, die durch den Prozessor 320 auszuführen sind und von Daten, die auf dem Prozessor 320 zu verarbeiten, oder jede Information in beliebiger Form, etwa eine Betriebssystemsoftware, eine Applikationssoftware oder Verwenderdaten.
  • Der Prozessor 310, der Systemkontroller 320, der dauerhafte Speicher 330 und der Systemspeicher 340 können miteinander in jeder Anordnung, mit beliebigen Kommunikationsbussen direkt oder mit Punkt-zu-Punkt-Verbindungen oder über andere Komponenten verbunden sein. Das System 300 kann weiter einen beliebigen Bus, etwa einen Peripheriebus oder andere Komponenten, wie Eingangs-/Ausgangseinheiten, die in 3 nicht gezeigt sind, aufweisen.
  • 4 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung bei einem Verfahren zum selektiven Aktivieren einer Fehlerminderung basierend auf der Bitwertfehlerzahl. Bei dem Ausführungsbeispiel von 4 kann die Fehlerminderung eine von zwei Modi sein, hoch oder tief. Die hohe Modus kann eine Ein-Modus sein und der tiefe Modus kann eine Aus-Modus sein oder die Fehlerminderung kann ein sein bei beiden Betriebsmodi aber auf einem höheren Niveau oder Häufigkeit in dem hohen Betriebsmodus als in dem tiefen Betriebsmodus arbeiten. Die Fehlerminderung in dem Ausführungsbeispiel von 4 kann jeden bekannten Ansatz verwirklichen. Beispielsweise kann der hohe Betriebsmodus ein Cache bereinigen aufweisen, zwei oder mehr Prozessorkerne im Gleichschritt laufen lassen oder eine Einrichtung oder einen Abschnitt einer Einrichtung mit einer höheren von zwei Betriebspannungen betreiben. Die tiefe Betriebsmodus kann eine geringere Häufigkeit der Cachebereinigung oder überhaupt keine aufweisen, das Laufen eines einzelnen Kerns alleine oder zwei oder mehrerer nicht im Gleichschritt oder das Betreiben eines Geräts mit der tieferen von zwei Betriebsspannungen.
  • In dem Kasten 410 ist eine Iterationsgrenze programmiert in einem Iterationsgrenzregister für einen funktionalen Block in einem Prozessor oder einem Gerät. Der funktionale Block weist ein Speicherfeld, eine sequentielle Logik oder jede andere Struktur mit Statuselementen auf. Die Iterationsgrenze kann basieren auf der Anzahl der Zustandselemente in dem funktionalen Block, der Größe, der Fläche, der Konfiguration, der Architektur oder der Funktion des funktionalen Blocks, der Prozesstechnologie, die zum Herstellen des Gerätes verwendet wird, der erwarteten Verwendung oder der Verwendungsumgebung für das Gerät oder beliebigen anderen Faktoren.
  • In dem Kasten 411 wird ein Schwellenwert in ein Fehlerschwellenwertregister für den funktionalen Block programmiert. Der Fehlerschwellenwert kann auf denselben Faktoren wie die Iterationsgrenze basieren zuzüglich Faktoren wie der Iterationsgrenze selbst und der erwarteten SER.
  • In dem Kasten 420 wird die Anzahl von Iterationen eines Ereignisses gezählt, während der funktionale Block in Verwendung ist. Das Ereignis kann ein beliebiges Ereignis sein, das aufgezählt wird als Zähler bei der Kalkulation der Fehlerrate. Beispielsweise kann das Ereignis Lesezugriffe auf ein Speicherfeld oder voller Abtastungen der Abtastkette sein. Die Anzahl der Iterationen kann unter Verwendung jeder Art des Zählers berechnet werden.
  • In dem Kasten 421 wird die Anzahl der Bitwertfehler in den Zustandselementen berechnet, während der funktionale Block in Verwendung ist. Die Bitwertfehler können unter Verwendung jeder beliebigen Technik erkannt werden, etwa als Parität für ein Speicherfeld oder Eingeben eines bekannten Werts in den Eingang einer Abtastkette unter Beobachten des Ausgangs auf sequentielle Logik. Die Anzahl von Bitwertfehlern kann unter Verwendung einer beliebigen Art des Zählers berechnet werden.
  • In dem Kasten 430 wird bestimmt, ob die Anzahl von Iterationen, die in dem Kasten 420 aufgezählt ist, die Iterationsgrenze erreicht hat. Die Bestimmung kann mit jedem geeigneten Ansatz ausgeführt werden, etwa basierend auf einem bestimmten Bit eines Iterationszählerausgangs oder Vergleichen eines Iterationszählerausgangs mit den Inhalten eines Iterationsgrenzregisters. Wenn die Anzahl von Iterationen die Iterationsgrenze erreicht, schreitet das Verfahren zum dem Kasten 431 fort. Bis dahin verbleibt das Verfahren in dem Kasten 420.
  • In dem Kasten 431 wird bestimmt, ob die Anzahl der in dem Kasten 421 aufgezählten Fehler den Fehlerschwellenwert übersteigt. Die Bestimmung kann erfolgen nach jedem bekannten Ansatz, etwa Vergleichen eines Fehlerzählerausgangs mit den Inhalten eines Fehlerschwellenregisters. Wenn die Anzahl von aufgezählten Fehlern den Schwellenwert übersteigt, schreitet das Verfahren zu dem Kasten 440 fort. Falls nicht, verbleibt das Verfahren in dem Kasten 441.
  • In den Kasten 440 und 441 wird bestimmt, ob die Fehlerminderung in einer hohen Modus oder einer niedrigen Modus ausgeführt wird. In dem niedrigen Modus schreitet das Verfahren von dem Kasten 440 zu dem Kasten 450 oder von dem Kasten 441 zum dem Kasten 460 fort. In einem hohen Modus schreitet das Verfahren von dem Kasten 440 zu dem Kasten 451 oder von dem Kasten 441 zu dem Kasten 460 fort.
  • In dem Kasten 450 wird die Fehlerminderung aktiviert oder erhöht von dem niedrigen Modus in den hohen Modus. In dem Kasten 451 wird die Fehlerminderung deaktiviert oder verringert von dem hohen Modus in den niedrigen Modus. Von den Kasten 450 und 451 schreitet das Verfahren zu dem Kasten 460 fort. In dem Kasten 460 werden die Iteration und die Fehlerzahl rückgestellt. Von dem Kasten 460 kehrte das Verfahren zu dem Kasten 420 zurück.
  • Innerhalb des Schutzbereichs der vorliegenden Erfindung kann das in 4 dargestellte Verfahren in einer unterschiedlichen Reihenfolge ausgeführt werden, wobei die dargestellten Schritte ausgelassen werden, mit zusätzlichen Schritten oder mit einer Kombination von neu angeordneten, weggelassenen oder zusätzlichen Schritten. Beispielsweise können der Kasten 410 und alle Bezugnahmen auf eine Iterationszahl weggelassen werden bei einem Ausführungsbeispiel, in dem die Fehlerzahl mit einem Schwellenwert verglichen wird basierend auf einer vollständigen Verschiebung durch eine Abtastkette. Ein weiteres Beispiel der Bestimmungen, ob die Fehlerminderung in einem hohen oder einem niedrigen Modus erfolgt, kann bei einem Ausführungsbeispiel verzichtet werden, bei der kein Unterschied besteht zwischen der Implementation des Verbleibens in einem hohen Modus und Implementation des Wechsels von einem tiefen Modus in eine hohe Modus. Weiter kann die vorliegende Erfindung ausgeführt werden bei Verfahren, bei denen eine Bestimmung erfolgt, ob eine Fehlerminderung aktiviert werden kann, basierend auf einem oder mehreren Fehlerzahlen von mehr als einer funktionalen Einheit und bei Verfahren einschließlich mehr als zwei Fehlerminderungsmodi.
  • Der Prozessor 100, der Prozessor 200 oder jede andere Komponente oder ein Bereich einer Komponente, die ausgebildet ist entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung kann ausgebildet sein in verschiedenen Stufen von der Ausgestaltung zur Simulation bis zur Fabrikation. Daten, die eine Ausgestaltung ausbilden, können die Ausbildung in einer Anzahl von Modi repräsentieren. Zunächst, wie dies bei Simulationen nützlich ist, kann die Hardware repräsentiert werden unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen funktionalen Beschreibungssprache. Zusätzlich oder alternativ kann ein Schaltkreisniveaumodel mit logischen und/oder Transistorgattern erzeugt werden an verschiedenen Stufen des Ausgestaltungsprozesses. Weiter erreichen die meisten Ausbildungen bei einem gewissen Zustand ein Niveau, wo sie modelliert werden können mit Daten, die die gegenständliche Anordnung verschiedener Geräte darstellen. In einem Fall, wo übliche Halbleiterherstellungstechniken verwendet werden, können die Daten, die das Geräteanordnungsmodell repräsentieren, Daten sein, die das Vorhandensein oder das Fehlen von verschiedenen Merkmalen auf unterschiedlichen Maskenschichten für Masken angeben, die zur Herstellung einer integrierten Schaltung verwendet werden.
  • Bei jeder Darstellung der Ausbildung können die Daten auf jede Art eines maschinenlesbaren Mediums gespeichert werden. Eine optische oder elektrische Welle, die moduliert wird oder anders erzeugt wird zum Übertragen derartiger Information, ein Speicher oder ein magnetisches oder optischen Speichermedium, etwa eine Disk, kann das maschinenlesbare Medium sein. Jedes dieser Medien kann die Ausbildung „tragen" oder „haben" oder andere Information, die bei einem Ausführungsbeispiel der vorliegenden Erfindung verwendet wird, etwa als Befehle in einer Fehlerrückstellungsroutine. Wenn eine elektrische Trägerwelle, die eine Information angibt oder trägt, übertragen wird, in dem Ausmaß das ein Kopieren, Puffer oder Rückübertragen des elektrischen Signals erfolgt, wird eine neue Kopie erstellt. Die Handlungen des Kommunikationsproviders oder Netzwerkproviders können Handlungen des Kopierens eines Artikels sein, beispielsweise einer Trägerwelle unter Ausführen der Techniken des vorliegenden Verfahrens.
  • Die Wahlweise Aktivierung der Fehlerminderung basierend auf der Bitwertfehlerzahl ist offenbart worden. Obwohl bestimmte Ausführungsbeispiele beschrieben worden sind und in den beiliegenden Zeichnungen dargestellt sind, versteht es sich, dass diese Ausführungsbeispiele lediglich illustrativ sind und die Breite der Erfindung nicht einschränken und dass diese Erfindung durch bestimmte Konstruktionen und Anordnungen, die gezeigt und beschrieben worden sind, nicht begrenzt wird, es sind verschiedene Modifikationen dem Fachmann bei dem Studium dieser Offenbarung zugänglich. Beispielsweise kann die Erhöhung der Fehlerminderung das Erhöhen der Fehlerminderung von einem Aus-Betrieb zu einem Ein-Betrieb beinhalten, und das Erhöhen der Fehlerminderung wenn eine Fehlerzahl einen Fehlerschwellenwert übersteigt, kann das Verringern der Fehlerminderung wenn die Fehlerzahl gleich ist oder den Fehlerschwellwert übersteigt, einschließen.
  • In einem Gebiet der Technologie wie vorliegend, wo die Entwicklung schnell verläuft und weitere Fortschritte nicht einfach vorherzusehen sind, können die offenbarten Ausführungsbeispiele in ihrer Anordnung oder in ihren Einzelheiten modifizierbar sein wie es ermöglicht wird durch den technischen Fortschritt ohne sich von den Grundlagen der vorliegenden Offenbarung oder den Schutzbereich der beiliegenden Ansprüche zu lösen.
  • ZUSAMMENFASSUNG
  • Ausführungsbeispiele von Vorrichtungen und Verfahren zur selektiven Aktivierung einer Fehlerminderung basierend auf der Anzahl von Bitwertfehlern werden offenbart. Bei einem Ausführungsbeispiel weist die Vorrichtung eine Mehrzahl von Zustandselementen, einen Fehlerzähler und eine Aktivierungslogik auf. Der Fehlerzähler dient zum Zählen der Anzahl von Bitwertfehlern in den Zustandselementen. Die Aktivierungslogik dient zum Erhöhen der Fehlerminderung, wenn die Anzahl von Bitwertfehlern einen Schwellenwert übersteigt.

Claims (25)

  1. Eine Vorrichtung mit: einer Mehrzahl von Zustandselementen; einem Fehlerzähler zum Zählen der Anzahl von Bitwertfehlern in der Mehrzahl von Zustandselementen; und einer Aktivierungslogik zum Erhöhen der Fehlerminderung, wenn die Anzahl von Bitwertfehlern einen Schwellenwert übersteigt.
  2. Die Vorrichtung nach Anspruch 1, wobei die Aktivierungslogik zum Erhöhen der Fehlerminderung von einem Aus-Modus in einen Ein-Modus dient.
  3. Die Vorrichtung von Anspruch 1, weiter mit einem programmierbaren Register zum Speichern des Schwellenwerts.
  4. Die Vorrichtung von Anspruch 1, wobei die Mehrzahl von Statuselementen ein Feld von Speicherzellen beinhaltet.
  5. Die Vorrichtung von Anspruch 4, weiter mit einem Zugriffszähler zum Zählen der Zugriffe zu dem Feld von Speicherzellen.
  6. Die Vorrichtung nach Anspruch 5, wobei der Fehlerzähler basierend auf der Anzahl von Zugriffen auf das Feld von Speicherzellen rückgestellt wird.
  7. Die Vorrichtung von Anspruch 6, wobei der Fehlerzähler auch basierend auf der Zeit rückgestellt wird.
  8. Die Vorrichtung von Anspruch 4, weiter mit einer Fehlerdetektionslogik zum Detektieren von Bitwertfehlern in dem Feld von Speicherzellen.
  9. Die Vorrichtung von Anspruch 6, wobei die Fehlererkennungslogik eine Paritätsprüflogik aufweist.
  10. Die Vorrichtung von Anspruch 4, wobei die Aktivierungslogik zum Erhöhen des Bereinigens des Feldes von Speicherzellen dient.
  11. Die Vorrichtung von Anspruch 1, wobei die Mehrzahl von Zustandselementen eine Mehrzahl von Abtastzellen aufweist.
  12. Die Vorrichtung von Anspruch 11, wobei die Mehrzahl von Abtastzellen zur Erkennung von weichen Fehlern konfiguriert ist.
  13. Die Vorrichtung von Anspruch 11, wobei die Mehrzahl von Abtastzellen in einer Abtastkette angeordnet sind.
  14. Die Vorrichtung von Anspruch 13, wobei der Fehlerzähler basierend auf einer vollen Verschiebung durch die Abtastkette gesetzt wird.
  15. Eine Vorrichtung mit: einer Mehrzahl von Ausführungskernen, wobei ein erster aus der Mehrzahl von Ausführungskernen eine Mehrzahl von Zustandselementen aufweist; einem Fehlerzähler zum Zählen der Anzahl von Bitwertfehlern in der Mehrzahl von Zustandselementen; und eine Aktivierungslogik zum Aktivieren eines Gleichschritts des ersten und eines zweiten aus einer Mehrzahl von Ausführungskernen, wenn die Anzahl der Bitpegelfehler einen vorgegebenen Wert übersteigt.
  16. Ein Verfahren mit: Zählen der Anzahl von Bitwertfehlern in einer Mehrzahl von Zustandselementen; und Erhöhen der Fehlerminderung wenn die Anzahl von Bitwertfehlern einen Schwellenwert übersteigt.
  17. Verfahren von Anspruch 16, wobei ein Erhöhen der Fehlerminderung das Erhöhen der Fehlerminderung von einer Off-Mode zu einer Ein-Mode beinhaltet.
  18. Das Verfahren von Anspruch 16, weiter mit Speichern des Schwellenwerts in einem programmierbaren Register.
  19. Das Verfahren von Anspruch 16, wobei die Mehrzahl von Zustandselementen ein Feld von Speicherzellen aufweist, weiter mit: Zellen der Anzahl von Zugriffen auf das Feld von Speicherzellen; und Rückstellen der Zahl der Anzahl der Bitwertfehler basierend auf der Anzahl der Zugriffe zu dem Feld von Speicherzellen.
  20. Das Verfahren nach Anspruch 19, wobei das Erhöhen der Fehlerminderung das Erhöhen der Bereinigung des Feldes von Speicherzellen beinhaltet.
  21. Das Verfahren nach Anspruch 16, wobei die Mehrzahl von Zustandselementen eine Kette von Abtastzellen beinhaltet, weiter mit Rückstellen der Zahl der Anzahl von Bitwertfehlern nach einer vollen Verschiebung durch die Kette von Abtastzellen.
  22. Ein System mit: einem Prozessor mit: einer Mehrzahl von Zustandselementen; einem Fehlerzähler zum Zählen der Anzahl von Bitwertfehlern in der Mehrzahl von Zustandselementen; und einer Steuerlogik zum Angeben, ob die Anzahl der Bitwertfehler einen Schwellenwert übersteigt; und einem Systemkontroller zum Erhöhen der Fehlerminderung, wenn die Steuerlogik angibt, dass die Anzahl der Bitwertfehler den Schwellenwert übersteigt.
  23. Das System von Anspruch 22, wobei die Aktivierungslogik zum Erhöhen der Fehlerminderung von einem Aus-Modus in eine Ein-Modus dient.
  24. Das System von Anspruch 22, weiter mit einem dauerhaften Speicher zum Speichern einer Angabe, ob die Anzahl von Bitwertfehlern den Schwellenwert übersteigt.
  25. Ein System mit: einem dynamischen Nur-Zugriff-Speicher; einem Prozessor mit: einer Mehrzahl von Zustandselementen; einem Fehlerzähler zum Zählen der Anzahl von Bitwertfehlern in der Mehrzahl von Zustandselementen; und einer Steuerlogik um anzugeben, ob die Anzahl der Bitwertfehler einen Schwellenwert übersteigt; und eine Aktivierungslogik zum Erhöhen der Fehlerminderung, wenn die Steuerlogik angibt, dass die Anzahl von Bitwertfehlern den Schwellenwert übersteigt.
DE112006001233T 2005-06-13 2006-06-13 Selektive Aktivierung der Fehlerverminderung basierend auf der Fehlerzahl des Bit-Werts Withdrawn DE112006001233T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/151,818 2005-06-13
US11/151,818 US20070011513A1 (en) 2005-06-13 2005-06-13 Selective activation of error mitigation based on bit level error count
PCT/US2006/023634 WO2006135937A2 (en) 2005-06-13 2006-06-13 Selective activation of error mitigation based on bit level error count

Publications (1)

Publication Number Publication Date
DE112006001233T5 true DE112006001233T5 (de) 2008-04-17

Family

ID=37192294

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006001233T Withdrawn DE112006001233T5 (de) 2005-06-13 2006-06-13 Selektive Aktivierung der Fehlerverminderung basierend auf der Fehlerzahl des Bit-Werts

Country Status (6)

Country Link
US (1) US20070011513A1 (de)
JP (1) JP2008546123A (de)
KR (1) KR100954730B1 (de)
CN (1) CN101198935B (de)
DE (1) DE112006001233T5 (de)
WO (1) WO2006135937A2 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
JP4944518B2 (ja) * 2006-05-26 2012-06-06 富士通セミコンダクター株式会社 タスク遷移図表示方法及び表示装置
US8260035B2 (en) * 2006-09-22 2012-09-04 Kla-Tencor Corporation Threshold determination in an inspection system
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment
JP5265883B2 (ja) * 2007-05-24 2013-08-14 株式会社メガチップス メモリアクセスシステム
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8271515B2 (en) * 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
US7849387B2 (en) * 2008-04-23 2010-12-07 Intel Corporation Detecting architectural vulnerability of processor resources
US7937625B2 (en) * 2008-09-26 2011-05-03 Microsoft Corporation Evaluating effectiveness of memory management techniques selectively using mitigations to reduce errors
KR20100102925A (ko) * 2009-03-12 2010-09-27 삼성전자주식회사 리드 리클레임 신호를 발생하는 불휘발성 메모리 장치 및 이를 포함하는 메모리 시스템
JP2010237822A (ja) * 2009-03-30 2010-10-21 Toshiba Corp メモリコントローラおよび半導体記憶装置
US9170879B2 (en) * 2009-06-24 2015-10-27 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated data errors from a memory system
JP5198375B2 (ja) * 2009-07-15 2013-05-15 株式会社日立製作所 測定装置及び測定方法
KR20110100465A (ko) 2010-03-04 2011-09-14 삼성전자주식회사 메모리 시스템
US8448027B2 (en) * 2010-05-27 2013-05-21 International Business Machines Corporation Energy-efficient failure detection and masking
US8549379B2 (en) * 2010-11-19 2013-10-01 Xilinx, Inc. Classifying a criticality of a soft error and mitigating the soft error based on the criticality
US8719647B2 (en) 2011-12-15 2014-05-06 Micron Technology, Inc. Read bias management to reduce read errors for phase change memory
US9141451B2 (en) 2013-01-08 2015-09-22 Freescale Semiconductor, Inc. Memory having improved reliability for certain data types
US9081693B2 (en) 2012-08-17 2015-07-14 Freescale Semiconductor, Inc. Data type dependent memory scrubbing
US9081719B2 (en) 2012-08-17 2015-07-14 Freescale Semiconductor, Inc. Selective memory scrubbing based on data type
US9141552B2 (en) 2012-08-17 2015-09-22 Freescale Semiconductor, Inc. Memory using voltage to improve reliability for certain data types
US9548135B2 (en) * 2013-03-11 2017-01-17 Macronix International Co., Ltd. Method and apparatus for determining status element total with sequentially coupled counting status circuits
US9280412B2 (en) * 2013-03-12 2016-03-08 Macronix International Co., Ltd. Memory with error correction configured to prevent overcorrection
WO2014142852A1 (en) 2013-03-13 2014-09-18 Intel Corporation Vulnerability estimation for cache memory
US9032261B2 (en) * 2013-04-24 2015-05-12 Skymedi Corporation System and method of enhancing data reliability
WO2015059804A1 (ja) * 2013-10-24 2015-04-30 株式会社日立製作所 ストレージシステムおよびその制御方法
US9760438B2 (en) * 2014-06-17 2017-09-12 Arm Limited Error detection in stored data values
US9529671B2 (en) * 2014-06-17 2016-12-27 Arm Limited Error detection in stored data values
US20150169441A1 (en) * 2015-02-25 2015-06-18 Caterpillar Inc. Method of managing data of an electronic control module of a machine
US9823962B2 (en) 2015-04-22 2017-11-21 Nxp Usa, Inc. Soft error detection in a memory system
US10013192B2 (en) 2016-08-17 2018-07-03 Nxp Usa, Inc. Soft error detection in a memory system
KR102393427B1 (ko) 2017-12-19 2022-05-03 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10866280B2 (en) 2019-04-01 2020-12-15 Texas Instruments Incorporated Scan chain self-testing of lockstep cores on reset
KR20230072336A (ko) 2021-11-17 2023-05-24 에스케이하이닉스 주식회사 반도체장치
US11720444B1 (en) * 2021-12-10 2023-08-08 Amazon Technologies, Inc. Increasing of cache reliability lifetime through dynamic invalidation and deactivation of problematic cache lines
FR3147393A1 (fr) * 2023-03-27 2024-10-04 Stmicroelectronics International N.V. Procédé pour la surveillance de l’exécution d’un logiciel d’application mettant en oeuvre une fonction de sécurité

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3341628A1 (de) * 1983-11-17 1985-05-30 Polygram Gmbh, 2000 Hamburg Geraeteanordnung zur fehlerermittlung bei plattenfoermigen informationstraegern
US5218691A (en) * 1988-07-26 1993-06-08 Disk Emulation Systems, Inc. Disk emulation system
US5574849A (en) * 1992-12-17 1996-11-12 Tandem Computers Incorporated Synchronized data transmission between elements of a processing system
JPH07177130A (ja) * 1993-12-21 1995-07-14 Fujitsu Ltd エラーカウント回路
US5974576A (en) * 1996-05-10 1999-10-26 Sun Microsystems, Inc. On-line memory monitoring system and methods
US6043946A (en) * 1996-05-15 2000-03-28 Seagate Technology, Inc. Read error recovery utilizing ECC and read channel quality indicators
JPH10312340A (ja) * 1997-05-12 1998-11-24 Kofu Nippon Denki Kk 半導体記憶装置におけるエラー検出,訂正方式
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6560725B1 (en) * 1999-06-18 2003-05-06 Madrone Solutions, Inc. Method for apparatus for tracking errors in a memory system
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
JP2001325155A (ja) * 2000-05-18 2001-11-22 Nec Eng Ltd データ記憶装置の誤り訂正方法
US20030023922A1 (en) * 2001-07-25 2003-01-30 Davis James A. Fault tolerant magnetoresistive solid-state storage device
JP2004152194A (ja) * 2002-10-31 2004-05-27 Ricoh Co Ltd メモリデータ保護方法
JP2004186856A (ja) * 2002-12-02 2004-07-02 Pioneer Electronic Corp 誤り訂正方法、装置及びプログラム
US7080305B2 (en) * 2002-12-23 2006-07-18 Sun Microsystems, Inc. System and method for correcting data errors
JP4073799B2 (ja) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ メモリシステム
US6704230B1 (en) * 2003-06-12 2004-03-09 International Business Machines Corporation Error detection and correction method and apparatus in a magnetoresistive random access memory
EP1639454A2 (de) * 2003-06-24 2006-03-29 Robert Bosch GmbH Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit
US7370260B2 (en) * 2003-12-16 2008-05-06 Freescale Semiconductor, Inc. MRAM having error correction code circuitry and method therefor
US7210077B2 (en) * 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding
US20060075296A1 (en) * 2004-09-30 2006-04-06 Menon Sankaran M Method, apparatus and system for data integrity of state retentive elements under low power modes

Also Published As

Publication number Publication date
CN101198935A (zh) 2008-06-11
US20070011513A1 (en) 2007-01-11
WO2006135937A2 (en) 2006-12-21
KR20080011228A (ko) 2008-01-31
WO2006135937A3 (en) 2007-02-15
KR100954730B1 (ko) 2010-04-23
CN101198935B (zh) 2012-11-07
JP2008546123A (ja) 2008-12-18

Similar Documents

Publication Publication Date Title
DE112006001233T5 (de) Selektive Aktivierung der Fehlerverminderung basierend auf der Fehlerzahl des Bit-Werts
DE69130693T2 (de) Eingebaute Selbstprüfung für integrierte Schaltungen
DE102012210232B4 (de) Vorbeugende Speicherreparatur auf der Grundlage der Analyse einer Vielzahl von Symbolen und Bereinigungszyklen
DE102009018153B4 (de) Erkennen architekturbedingter Verletzlichkeit von Prozessorressourcen
DE60220511T2 (de) Verfahren und system zur optimierung der testkosten und deaktivierungsdefekte für scan- und bist-speicher
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
DE602006000922T2 (de) Vorrichtung und Verfahren zur Prüfung einer RAM
DE69625293T2 (de) Prüfmodusmatrixschaltkreis für einen eingebetteten Mikroprozessorkern
DE112010006087T5 (de) Architektur zum Testen, zur Validierung und zur Fehlerbereinigung
DE102012202747A1 (de) Doppeltrigger-Niedrigenergie-Flip-Flop-Schaltung
DE112015003791T5 (de) Speichermodul und Verfahren zum Einsatz von Heilwirkungen eines Quarantäneprozesses
DE102018124628A1 (de) System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors
DE102018126146A1 (de) Maschinenlernbasierte feststellung von programmcodeeigenschaften
DE102013211077A1 (de) Verfahren zum Testen eines Speichers und Speichersystem
DE102020119694A1 (de) Verfahren zur Steuerung einer Operation einer nichtflüchtigen Speichervorrichtung unter Verwendung von Maschinenlernen und Speichersystem
DE102013114512B4 (de) Globales Einfangschema mit niedriger Leistung für Kerne
DE112013000330T5 (de) In-Situ-Neubewertung von Prozessoren
DE112012005060B4 (de) Höhere Energieeinsparung bei Speicher-Arrays
DE112015001477T5 (de) Hardwarezähler zum Verfolgen einer Auslastung in einem Multithreading-Computersystem
DE112005002180T5 (de) Lösen von Cachekonflikten
DE102008015998B4 (de) Getaktete Logik mit verringerter Verzögerung
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
DE112008001590B4 (de) Prozessorbetriebsinspektionssystem und Betriebsinspektionsschaltung
DE112011104830T5 (de) Ein Verfahren zum Sicherstellen der Programmkorrektheit unter Verwendung von feingranularem spekulativem Hardwareausführen
DE102005011859B4 (de) Ein Entwurf eines dreifach redundanten Latches mit niedriger Verzögerungszeit

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee