-
QUERVERWEIS AUF VERWANDTE GEGENSTÄNDE
-
Diese Anmeldung beansprucht den Nutzen unter 35 U.S.C. § 119(e) der vorläufigen US-Patentanmeldung mit der Seriennummer
62/704.894 , eingereicht am 2. Juni 2020, deren Offenbarung hiermit durch Bezugnahme in ihrer Gesamtheit hierin aufgenommen wird.
-
TECHNISCHES GEBIET
-
Die hierin erörterten Beispiele beziehen sich allgemein auf die Detektion von Fehlerinjektionsereignissen an einem Chip.
-
STAND DER TECHNIK
-
Fehlerinjektionstechniken wurden entwickelt, um elektronische Systeme (Hardware und Software) zu testen und zu verstehen, wie sich sie unter Belastung verhalten. Ebenso wie solche Techniken legitim eingesetzt werden können, um nützliche Informationen über ein System zu extrahieren, können Fehlerinjektionstechniken illegitim verwendet werden, um geheime Informationen über ein System zu extrahieren. Im Falle eines sogenannten Fehlerinjektionsangriffs induziert ein Angreifer ein System, auf eine spezifische Weise zu arbeiten - in der Regel durch Injizieren von Fehlern über eine Anzahl von Iterationen oder Injizieren eines spezifischen Fehlers - und erhält dann nützliche Informationen (z. B. geheime Informationen) über das System, indem er seinen Betrieb nach einer solchen Veranlassung beobachtet.
-
Figurenliste
-
Um die Erörterung eines besonderen Elements oder einer besonderen Handlung leicht zu identifizieren, bezieht/beziehen sich die Hauptziffer(n) in einem Bezugszeichen auf die Figurennummer, in der dieses Element zuerst eingeführt wird.
- 1 ist ein schematisches Diagramm, das einen Chipabschnitt einschließlich eines Fehlerereignisdetektors gemäß einem oder mehreren Beispielen darstellt.
- 2A ist ein Blockdiagramm, das einen Fehlerereignisdetektor gemäß einem oder mehreren Beispielen darstellt.
- 2B ist ein Blockdiagramm, das einen anderen Fehlerereignisdetektor gemäß einem oder mehreren Beispielen darstellt.
- 3 ist ein schematisches Diagramm, das eine digitale Schaltung einer Standardzelle darstellt, die modifiziert ist, um eine Fehlerereignisdetektionsschaltung zu sein, gemäß einem oder mehreren Beispielen.
- 4 ist ein Flussdiagramm, das einen Prozess gemäß einem oder mehreren Beispielen darstellt.
- 5 ist ein Flussdiagramm, das einen Prozess gemäß einem oder mehreren Beispielen darstellt.
- 6 ist eine Schaltung, die gemäß einem oder mehreren Beispielen konfiguriert sein kann.
-
ART(EN) ZUM AUSFÜHREN DER ERFINDUNG
-
In der folgenden detaillierten Beschreibung wird auf die beiliegenden Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen zur Veranschaulichung spezifische Beispiele gezeigt sind, in denen die vorliegende Offenbarung ausgeübt werden kann. Diese Beispiele sind hinreichend detailliert beschrieben, um es Durchschnittsfachleuten zu ermöglichen, die vorliegende Offenbarung in die Praxis umzusetzen. Es können jedoch auch andere hierin ermöglichte Beispiele genutzt werden, und Änderungen der Struktur, des Materials und des Prozesses können vorgenommen werden, ohne vom Schutzumfang der Offenbarung abzuweichen.
-
Die hierin vorgelegten Veranschaulichungen sollen keine tatsächlichen Ansichten eines bestimmten Verfahrens, Systems oder einer bestimmten Vorrichtung oder Struktur sein, sondern sind lediglich idealisierte Darstellungen, die zum Beschreiben veranschaulichender Beispiele der vorliegenden Offenbarung eingesetzt werden. Ähnliche Strukturen oder Komponenten in den verschiedenen Zeichnungen können in einigen Fällen zur Vereinfachung für den Leser die gleiche oder eine ähnliche Nummerierung beibehalten; die Ähnlichkeit in der Nummerierung bedeutet jedoch nicht notwendigerweise, dass die Strukturen oder Komponenten in Größe, Zusammensetzung, Konfiguration oder einer anderen Eigenschaft identisch sind.
-
Es versteht sich von selbst, dass die Komponenten der Beispiele, wie sie hierin allgemein beschrieben und in der Zeichnung veranschaulicht sind, in einer Vielzahl unterschiedlicher Konfigurationen angeordnet und gestaltet werden können. Somit soll die folgende Beschreibung verschiedener Beispiele den Schutzumfang der vorliegenden Offenbarung nicht einschränken, sondern ist lediglich für verschiedene Beispiele repräsentativ. Während die verschiedenen Gesichtspunkte der Beispiele in Zeichnungen vorgelegt werden können, sind die Zeichnungen nicht notwendigerweise maßstabsgetreu gezeichnet, sofern nicht ausdrücklich angegeben.
-
Die folgende Beschreibung kann Beispiele einschließen, um es Durchschnittsfachleuten zu ermöglichen, die offenbarten Beispiele auszuüben. Die Verwendung der Begriffe „beispielhaft“, „als Beispiel“ und „zum Beispiel“ bedeutet, dass die zugehörige Beschreibung erläuternd ist, und obwohl der Schutzumfang der Offenbarung die Beispiele und ihre rechtlichen Äquivalente umfassen soll, ist die Verwendung dieser Begriffe nicht dazu bestimmt, den Schutzumfang von Beispielen oder dieser Offenbarung auf die spezifizierten Komponenten, Schritte, Merkmale, Funktionen oder dergleichen einzuschränken.
-
Somit sind die gezeigten und beschriebenen spezifischen Implementierungen nur nicht einschränkende Beispiele und sollten nicht als die einzige Möglichkeit zum Implementieren der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders spezifiziert. Elemente, Schaltungen und Funktionen können in Blockdiagrammform dargestellt sein, um die vorliegende Offenbarung nicht durch unnötige Details undeutlich werden zu lassen. Umgekehrt sind gezeigte und beschriebene spezifische Implementierungen nur beispielhaft und sollten nicht als die einzige Möglichkeit zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Außerdem sind Blockdefinitionen und die Aufteilung von Logik zwischen verschiedenen Blöcken beispielhaft für eine spezifische Implementierung. Es ist für den Durchschnittsfachmann ohne Weiteres ersichtlich, dass die vorliegende Offenbarung durch zahlreiche andere Aufteilungslösungen ausgeübt werden kann. Auf Details zu zeitlichen Erwägungen und dergleichen wurde größtenteils verzichtet, soweit solche Details für ein vollständiges Verständnis der vorliegenden Offenbarung nicht erforderlich sind und innerhalb der Fähigkeiten von Durchschnittsfachleuten liegen.
-
Hierin beschriebene Informationen und Signale können unter Verwendung verschiedener unterschiedlicher Technologien und Techniken dargestellt werden. Zum Beispiel können Daten, Anweisungen, Befehle, Informationen, Signale, Bits und Symbole, auf die in der Beschreibung Bezug genommen werden kann, durch Spannungen, Ströme, elektromagnetische Wellen, magnetische Felder oder Partikel, optische Felder oder Partikel oder eine beliebige Kombination davon dargestellt werden. Einige Zeichnungen können Signale zur Übersichtlichkeit der Darstellung und Beschreibung als ein einzelnes Signal veranschaulichen. Es sollte für einen Durchschnittsfachmann ersichtlich sein, dass das Signal einen Bus von Signalen darstellen kann, wobei der Bus eine Vielfalt von Bitbreiten aufweisen kann und die Offenbarung auf einer beliebigen Anzahl von Datensignalen, einschließlich eines einzelnen Datensignals, implementiert werden kann.
-
Die verschiedenen veranschaulichenden logischen Blöcke, Module und Schaltungen, die in Verbindung mit den hierin offenbarten Beispielen beschrieben sind, können mit einem Universalprozessor, einem Spezialprozessor, einem Digitalsignalprozessor (DSP), einer integrierten Schaltung (IC), einer anwendungsspezifischen integrierten Schaltung (ASIC), einem feldprogrammierbaren Gate-Array (FPGA) oder einer anderen programmierbaren Logikvorrichtung, einer diskreten Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon, die zum Durchführen der hierin beschriebenen Funktionen ausgelegt sind, implementiert oder durchgeführt werden. Ein Universalprozessor (der hierin auch als Hostprozessor oder einfach als Host bezeichnet werden kann) kann ein Mikroprozessor sein, aber alternativ kann es sich auch um einen beliebigen herkömmlichen Prozessor, eine Steuerung, einen Mikrocontroller oder eine Zustandsmaschine handeln. Ein Prozessor kann auch als eine Kombination von Rechenvorrichtungen, wie eine Kombination aus einem DSP und einem Mikroprozessor, eine Vielzahl von Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder eine beliebige andere derartige Konfiguration implementiert sein. Ein Universalcomputer einschließlich eines Prozessors gilt als ein Spezialcomputer, während der Universalcomputer konfiguriert ist, um Rechenanweisungen (z. B. einen Softwarecode) auszuführen, die sich auf Beispiele der vorliegenden Offenbarung beziehen.
-
Die Beispiele können hierin in Bezug auf einen Prozess beschrieben sein, der als ein Flussdiagramm, ein Fließschema, ein Strukturdiagramm oder ein Blockdiagramm dargestellt ist. Obwohl ein Flussdiagramm Vorgangshandlungen als einen sequenziellen Prozess beschreiben kann, können viele dieser Handlungen in einer anderen Abfolge, parallel oder im Wesentlichen gleichzeitig durchgeführt werden. Außerdem kann die Reihenfolge der Handlungen geändert werden. Ein Prozess kann einem Verfahren, einem Thread, einer Funktion, einer Prozedur, einer Subroutine, einem Unterprogramm, einer anderen Struktur oder Kombinationen davon entsprechen. Des Weiteren können die hierin offenbarten Verfahren in Hardware, Software oder beidem implementiert werden. Bei Implementierung in Software können die Funktionen als eine oder mehrere Anweisungen oder als Code auf computerlesbaren Medien gespeichert oder übertragen werden. Computerlesbare Medien schließen sowohl Computerspeichermedien als auch Kommunikationsmedien, einschließlich aller Medien, welche die Übertragung eines Computerprogramms von einem Ort zu einem anderen unterstützen, ein.
-
Jede Bezugnahme auf ein Element hierin unter Verwendung einer Bezeichnung, wie „erste/r/s“, „zweite/r/s“ usw. schränkt die Menge oder Reihenfolge dieser Elemente nicht ein, es sei denn, eine solche Einschränkung wird ausdrücklich angegeben. Vielmehr können diese Bezeichnungen hierin als ein zweckmäßiges Verfahren zum Unterscheiden zwischen zwei oder mehr Elementen oder Instanzen eines Elements verwendet werden. Eine Bezugnahme auf ein erstes und ein zweites Element bedeutet also nicht, dass dort nur zwei Elemente eingesetzt werden dürfen oder dass das erste Element dem zweiten Element in irgendeiner Art und Weise vorausgehen muss. Außerdem kann ein Satz von Elementen, sofern nicht anders angegeben, ein oder mehrere Elemente umfassen.
-
Hierin beschriebene Elemente können mehrere Instanzen desselben Elements enthalten. Diese Elemente können allgemein durch einen numerischen Bezeichner (z. B. 110) und speziell durch die numerische Bezeichnung gefolgt von einem alphabetischen Bezeichner (z. B. 110A) oder einer numerischen Bezeichnung mit vorangestelltem „Strich“ (z. B. 110-1) angegeben werden. Zur Vereinfachung der Beschreibung beginnen die Elementnummernbezeichnungen größtenteils mit der Nummer der Zeichnung, in der die Elemente eingeführt oder am vollständigsten erörtert werden. So haben zum Beispiel Elementkennungen in 1 überwiegend das numerische Format 1xx, und Elemente in 4 haben überwiegend das numerische Format 4xx.
-
Wie hierin verwendet, bedeutet der Begriff „im Wesentlichen“ in Bezug auf einen gegebenen Parameter, eine gegebene Eigenschaft oder eine gegebene Bedingung und schließt in einem für den Durchschnittsfachmann verständlichen Ausmaß ein, dass der gegebene Parameter, die gegebene Eigenschaft oder die gegebene Bedingung mit einem geringen Maß an Varianz, wie zum Beispiel innerhalb annehmbarer Fertigungstoleranzen, erfüllt ist. Beispielhaft kann in Abhängigkeit von dem bestimmten Parameter, der bestimmten Eigenschaft oder der bestimmten Bedingung, der bzw. die im Wesentlichen erfüllt ist, der Parameter, die Eigenschaft oder die Bedingung zu mindestens 90 % erfüllt, zu mindestens 95 % erfüllt oder sogar zu mindestens 99 % erfüllt sein.
-
Wie hierin verwendet, kann, wenn ein Element als „auf”, „verbunden mit“, „gekoppelt an“ oder „gekoppelt mit“ einem anderen Element bezeichnet wird, es direkt auf, verbunden oder gekoppelt mit dem anderen Element sein kann oder dazwischenliegende Elemente vorhanden sein können. Im Gegensatz dazu gibt es keine dazwischenliegenden Elemente oder Schichten, wenn ein Element als „direkt auf“, „direkt verbunden mit“ oder „direkt gekoppelt mit“ einem anderen Element bezeichnet wird. Es versteht sich, dass, wenn ein Element als ein erstes Element und ein zweites Element „verbindend“ oder „koppelnd“ bezeichnet wird, es mit dem ersten Element verbunden ist und es mit dem zweiten Element verbunden ist.
-
Wie hierin verwendet, können, wenn ein Element als „elektrisch verbunden mit“ oder „elektrisch gekoppelt mit“ einem anderen Element bezeichnet wird, die Ladung und/oder Signale zwischen dem Element und dem anderen Element direkt oder über dazwischenliegende Elemente übertragen werden, falls vorhanden. Im Gegensatz dazu gibt es keine dazwischenliegenden Elemente oder Schichten, wenn ein Element als „direkt elektrisch verbunden mit“ oder „direkt elektrisch gekoppelt mit“ einem anderen Element bezeichnet wird. Es versteht sich, dass, wenn ein Element als ein erstes Element und ein zweites Element „elektrisch verbindend“ oder „elektrisch koppelnd“ bezeichnet wird, sich die Ladung und/oder Signale zwischen dem ersten Element und dem zweiten Element über das Element, einschließlich über dazwischenliegende Elemente, falls vorhanden, bewegen können. Es versteht sich, dass die Begriffe „elektrisch verbunden mit“, „elektrisch verbindend“, „elektrisch gekoppelt mit“ und „elektrisch koppelnd“ keine tatsächliche Ladung oder Signale erfordern, die übertragen werden sollen.
-
Ein Fehlerinjektionsmedium (z. B. Laser, Strahlung oder Temperatur, ohne Einschränkung), das an eine integrierte Schaltung (IC, und hierin auch als „Chip“ bezeichnet) angelegt wird, kann einen Fehler (hierin auch als eine „Fehlerinjektion“ bezeichnet) am Chip injizieren, einschließlich an einem bestimmten Ort oder zu einem bestimmten Zeitpunkt. Zum Beispiel kann ein Angreifer versuchen, einen Fehler durch Scannen eines fokussierten Laserstrahls über einen Die und Schießen eines Laserbursts auf eine digitale Schaltung eines Chips zu injizieren. Ein solcher Laserburst kann einen Zustand (z. B. einen logischen Zustand, ohne Einschränkung) einer gefährdeten digitalen Schaltung (z. B. ein oder mehrere von Flip-Flops, Lasches, Drähte und Register, ohne Einschränkung) zufällig oder gezielt ändern, während die digitale Schaltung arbeitet (z. B. Befehle und/oder Steuersequenzen ausführt, ohne Einschränkung). Als nicht einschränkendes Beispiel kann in einem Fall einer digitalen Schaltung, die mit Komplementärmetalloxid-Halbleiter(CMOS)-Technologie implementiert ist, ein Fehlerinjektionsmedium die Leitung durch eine parasitäre Vorrichtung (wie einen parasitären Bipolartransistor (Bipolar Junction Transistor, BJT) oder eine parasitäre Diode, ohne Einschränkung) einer CMOS-Struktur, an der die digitale Schaltung bereitgestellt wird, einschalten oder erhöhen. Eine digitale Schaltung, die einen Fluss eines parasitären Stroms erfährt, kann vorübergehende oder permanente Zustandsänderungen oder Verhaltensänderungen und sogar Schäden erfahren.
-
Ein Angreifer kann versuchen, Änderungen im Betrieb der digitalen Schaltung (oder allgemeiner des Chips) als Reaktion auf einen injizierten Fehler zu beobachten. Als ein nicht einschränkendes Beispiel kann ein Angreifer Unterschiede im Betrieb von dem in einer schriftlichen Spezifikation für einen Chip beschriebenen Betrieb beobachten. Fehlerinjektionsangriffe können verwendet werden, um geheime Informationen von Chips, wie von Sicherheitschips, die kryptographische Prozesse, oder einige Operationen davon, durchführen und allgemeiner Sicherheitsprotokolle durchführen, zu extrahieren.
-
Nicht einschränkende Beispiele für Fehler schließen ein Eingeben falscher Zweige während der Ausführung des Codes, Ändern von Datenbits einer Speicherlesung, Ändern von Adressbits und Ändern eines Zustands von Konfigurationsbits und Sicherheitsbits ein. Nicht einschränkende Beispiele für geheime Informationen, die diese und andere Fehler aufdecken können, schließen Informationen über Verschlüsselungsschlüssel, Verschlüsselungsprotokolle, Schlüsselvereinbarungsprotokolle, Passwörter, Adressen sensibler Informationen, Timinginformationen und Kombinationen und Unterkombinationen davon ein.
-
Ein Ansatz zum Angehen von Fehlerinjektionsangriffen, der dem Erfinder dieser Offenbarung bekannt ist, besteht darin, gefährdete Abschnitte einer digitalen Schaltung zu duplizieren und Ergebnisse von der duplizierten digitalen Schaltung zu vergleichen. Falls die Ergebnisse unterschiedlich sind, wird ein Fehlerzustand detektiert. Beispiele für einen solchen Ansatz, der dem Erfinder dieser Offenbarung bekannt ist, können die Die-Größe für gefährdete Abschnitte der digitalen Schaltung mehr als verdoppeln, und sind daher ein teurer Ansatz zum Detektieren von Fehlerereignissen. Ein anderer Ansatz zum Angehen von Fehlerangriffen, der dem Erfinder dieser Offenbarung bekannt ist, besteht darin, Parität auf Speicher, Parität auf Anweisungssätzen und Parität über Operationen einzuschließen. Beispiele für einen solchen Ansatz, der dem Erfinder dieser Offenbarung bekannt ist, erhöhen die Komplexität des Designs und vergrößern die Die-Größe, außerdem erkennt der Erfinder dieser Offenbarung, dass ein solcher Ansatz eine inkonsistente Detektion über alle Fehlerzustände hinweg bereitstellen kann (mit anderen Worten, eine zuverlässige Detektionsfähigkeit für nur einen begrenzten Satz von Fehlerereignissen). Noch ein weiterer Ansatz zum Angehen von Fehlerinjektionsangriffen, der dem Erfinder dieser Offenbarung bekannt ist, besteht darin, analoge Detektoren mit gefährdeten Abschnitten einer digitalen Schaltung einzusetzen. Ein Beispiel eines solchen analogen Detektors, der dem Erfinder dieser Offenbarung bekannt ist, kann nachteiligerweise getrennt von den Abschnitten der gefährdeten digitalen Schaltung individuell unterscheidbar sein, sodass ein Angreifer den analogen Detektor beim Versuch, einen Fehler zu induzieren, vermeiden oder unterdrücken kann.
-
Wie hierin verwendet, ist ein „Fehlerinjektionsereignis“ ein jegliches Ereignis, das einen Fehler innerhalb einer digitalen Schaltung eines Chips injizieren kann (aber nicht notwendigerweise wird). Ein Fehlerinjektionsereignis kann ein spezifischer Versuch sein, einen Fehler (d. h. einen Fehlerinjektionsangriff) zu injizieren, oder ein Ereignis, das einen Fehler injizieren kann, aber kein spezifischer Versuch sein, einen Fehler zu injizieren (z. B. verursacht durch Umgebungsbedingungen, ohne Einschränkung).
-
Wie hierin verwendet, bedeutet „gefährdete digitale Schaltung“ eine digitale Schaltung eines Chips, die für einen injizierten Fehler anfällig ist.
-
Wie hierin verwendet, ist ein „Umgebungsbereich“ eines Fehlerereignisdetektors ein Bereich, der durch eine Grenze des Fehlerereignisdetektors definiert ist, um zuverlässig auf das Vorhandensein eines Fehlerinjektionsereignisses zu reagieren. Der Fehlerereignisdetektor reagiert nicht zuverlässig auf das Vorhandensein eines Fehlerinjektionsereignisses außerhalb des Umgebungsbereichs.
-
Der Umgebungsbereich eines Fehlerereignisdetektors kann hierin als ein im Wesentlichen kreisförmiger Bereich mit einem Fehlerereignisdetektor in der Mitte dargestellt werden; diese Offenbarung ist jedoch nicht auf irgendeine bestimmte Form des Umgebungsbereichs, noch eine Platzierung eines Fehlerereignisdetektors an einer geometrischen Mitte einer Form beschränkt. Ein Umgebungsbereich kann zumindest einem Abschnitt eines Chips entsprechen, und in einigen Fällen kann sich ein Umgebungsbereich über eine Peripherie eines Chips hinaus erstrecken.
-
In einem oder mehreren Beispielen kann eine digitale Schaltung für einen Fehlerereignisdetektor gewählt werden, die mindestens eine im Wesentlichen gleiche Anfälligkeit für ein Fehlerinjektionsmedium (z. B. einen Laser, eine Strahlung oder eine angewandte Temperatur, ohne Einschränkung) wie eine gefährdete digitale Schaltung aufweist, die durch den Fehlerereignisdetektor überwacht werden soll.
-
In einem oder mehreren Beispielen kann eine digitale Schaltung, einschließlich einer gefährdeten digitalen Schaltung und Abschnitten davon, einen oder mehrere digitale Logikblöcke und insbesondere physische Layout-Elemente (z. B. Transistoren, ohne Einschränkung) einschließen, welche die jeweiligen digitalen Logikblöcke umfassen. In verschiedenen Beispielen können eine gefährdete digitale Schaltung und ein assoziierter Fehlerereignisdetektor einer Standardzelle für einen digitalen Logikblock oder einem Abschnitt davon entsprechen, der ein Funktionsblock ist, der unter Verwendung einer zellbasierten Methodik definiert ist, wie einer Standardzellenmethodik, die im Halbleiterdesign verwendet wird.
-
In einem oder mehreren Beispielen kann eine digitale Schaltung, Abschnitte davon und Anordnungen davon für einen Fehlerereignisdetektor mindestens teilweise basierend auf einem Standardzellendesign für einen digitalen Logikblock gewählt werden. In einem oder mehreren Beispielen kann eine digitale Schaltung eines Fehlerereignisdetektors von einer digitalen Schaltung modifiziert werden, die zum Implementieren eines Standardzellendesigns eines digitalen Logikblocks ausgelegt ist, sodass ein Fehlerereignisdetektor (z. B. für einen Angreifer, ohne Einschränkung) einer Standardzelle ähnelt, z. B. ähnelt ein Transistorlayout eines Fehlerereignisdetektors einem Transistorlayout digitaler Logik einer Standardzelle, ohne Einschränkung. Somit kann in einem oder mehreren Beispielen ein Fehlerdetektor gezielt einer Schaltung einer Standardzelle ähneln. In einem oder Beispielen kann ein Fehlerereignisdetektor möglicherweise nicht gezielt einer Schaltung einer Standardzelle ähneln, zum Beispiel, wenn erwartet wird, dass ein Fehlerinjektionsereignis infolge von Umgebungsbedingungen und nicht eines spezifischen Angriffs vorliegt, oder Merkmale der digitalen Schaltung eines Fehlerereignisdetektors oder eines Chips verschleiert oder anderweitig nicht individuell unterscheidbar sind.
-
In einem oder mehreren Beispielen kann sich eine Anzahl von Fehlerereignisdetektoren in einem Abschnitt eines Chips befinden, der eine Anzahl von gefährdeten digitalen Schaltungen einschließt. Die Orte der Fehlerereignisdetektoren können so gewählt werden, dass jeweilige gefährdete digitale Schaltungen innerhalb eines Umgebungsbereichs eines oder mehrerer der Fehlerereignisdetektoren liegen. In einem oder mehreren Beispielen kann sich eine Anzahl von Fehlerereignisdetektoren in einem Abschnitt eines Chips befinden, der eine gefährdete digitale Schaltung einschließt, und die jeweiligen Orte der Fehlerereignisdetektoren können so gewählt sein, dass sich ihre jeweiligen Umgebungsbereiche an einem Gebiet des Chips überlappen, der die gefährdete digitale Schaltung einschließt.
-
1 ist ein Diagramm, das einen Chipabschnitt 100 darstellt, der für Fehlerereignisdetektion konfiguriert ist, gemäß einem oder mehreren Beispielen. Der Chipabschnitt 100 schließt einen ersten Fehlerereignisdetektor 106, einen zweiten Fehlerereignisdetektor 112 und einen Prozessor 114 ein, der elektrisch mit dem ersten Fehlerereignisdetektor 106 und dem zweiten Fehlerereignisdetektor 112 gekoppelt ist. Eine Anzahl von ersten gefährdeten digitalen Schaltungen 108 (z. B. eine oder mehrere erste gefährdete digitale Schaltungen 108 oder zumindest ein Abschnitt 134 einer ersten gefährdeten digitalen Schaltung 108, wie in 1 dargestellt, ohne Einschränkung) befindet sich innerhalb eines ersten Umgebungsbereichs 104 des ersten Fehlerereignisdetektors 106 und eine Anzahl von zweiten gefährdeten digitalen Schaltungen 110 (z. B. eine oder mehrere zweite gefährdete digitale Schaltungen 110 oder zumindest ein Abschnitt 136 einer zweiten gefährdeten digitalen Schaltung 110, wie in 1 dargestellt, ohne Einschränkung) befindet sich innerhalb eines zweiten Umgebungsbereichs 102 des zweiten Fehlerereignisdetektors 112.
-
Der erste Fehlerereignisdetektor 106 und der zweite Fehlerereignisdetektor 112 sind konfiguriert, um auf Fehlerereignisse zu reagieren, die in dem ersten Umgebungsbereich 104 bzw. dem zweiten Umgebungsbereich 102 auftreten, indem sie eine erste Fehlerereignisangabe 116 bzw. eine zweite Fehlerereignisangabe 118 erzeugen. In einem oder mehreren Beispielen kann der erste Fehlerereignisdetektor 106 eine jeweilige digitale Schaltung einschließen, die den Zustand als Reaktion auf ein Vorhandensein eines ersten Fehlerinjektionsereignisses 120 innerhalb des ersten Umgebungsbereichs 104 ändert, wie hierin erörtert, und der zweite Fehlerereignisdetektor 112 kann eine jeweilige digitale Schaltung einschließen, die den Zustand als Reaktion auf ein Vorhandensein eines zweiten Fehlerinjektionsereignisses 124 innerhalb des zweiten Umgebungsbereichs 102 ändert, wie hierin erörtert, und der erste Fehlerereignisdetektor 106 und der zweite Fehlerereignisdetektor 112 können auf die Zustandsänderung an den jeweiligen digitalen Schaltungen reagieren, indem sie die erste Fehlerereignisangabe 116 bzw. die zweite Fehlerereignisangabe 118 erzeugen.
-
Insbesondere können jeweilige digitale Schaltungen der ersten gefährdeten digitalen Schaltungen 108 und der zweiten gefährdeten digitalen Schaltungen 110 vom gleichen oder unterschiedlichen Typ sein, können den Zustand als Reaktion auf das Vorhandensein derselben oder unterschiedlichen Typen von Fehlerinjektionsereignissen ändern und können den gleichen oder einen unterschiedlichen Grad an Empfindlichkeit gegenüber Fehlerinjektionsereignissen aufweisen.
-
Bei einem vorgesehenen Betrieb des Chipabschnitts 100 gibt es, wenn ein erstes Fehlerinjektionsereignis 120 an einer der ersten gefährdeten digitalen Schaltungen 108 auftritt, die sich innerhalb des ersten Umgebungsbereichs 104 befinden, ein entsprechendes erstes detektiertes Fehlerinjektionsereignis 122 am ersten Fehlerereignisdetektor 106 (z. B. eine Zustandsänderung einer digitalen Schaltung des ersten Fehlerereignisdetektors 106, ohne Einschränkung). Der erste Fehlerereignisdetektor 106 reagiert auf das erste detektierte Fehlerinjektionsereignis 122 durch Erzeugen einer ersten Fehlerereignisangabe 116 und Senden der ersten Fehlerereignisangabe 116 an den Prozessor 114. In ähnlicher Weise gibt es, wenn ein zweites Fehlerinjektionsereignis 124 an einer der zweiten gefährdeten digitalen Schaltungen 110 auftritt, die sich innerhalb des zweiten Umgebungsbereichs 102 befinden, ein entsprechendes zweites detektiertes Fehlerinjektionsereignis 126 am zweiten Fehlerereignisdetektor 112 (z. B. eine Zustandsänderung einer digitalen Schaltung des zweiten Fehlerereignisdetektors 112, ohne Einschränkung). Der zweite Fehlerereignisdetektor 112 reagiert auf das zweite detektierte Fehlerinjektionsereignis 126 durch Erzeugen einer zweiten Fehlerereignisangabe 118 und Senden der zweiten Fehlerereignisangabe 118 an den Prozessor 114. In einem oder mehreren Beispielen kann der Prozessor 114 konfiguriert sein, um eine geeignete Aktion 128 als Reaktion auf die erste Fehlerereignisangabe 116 oder die zweite Fehlerereignisangabe 118 durchzuführen, d. h. allgemeiner als Reaktion auf das erste detektierte Fehlerinjektionsereignis 122 oder das zweite detektierte Fehlerinjektionsereignis 126. Als nicht einschränkende Beispiele kann eine geeignete Aktion 128, die vom Prozessor 114 vorgenommen wird, eines oder mehrere von Folgendem einschließen: erneutes Durchführen einer oder mehrerer Operationen, Sperren eines Chipabschnitts 100 oder Chips einschließlich desselben, oder Auslösen eines Alarms. Der Prozessor 114 kann konfiguriert sein, um den ersten Fehlerereignisdetektor 106 und den zweiten Fehlerereignisdetektor 112 über ein erstes und zweites Rücksetzsignal 130 und 132 zurückzusetzen, wie hierin erörtert.
-
In einigen Fällen können Fehlerereignisdetektoren, einschließlich des ersten Fehlerereignisdetektors 106 oder des zweiten Fehlerereignisdetektors 112, relativ zu gefährdeten digitalen Schaltungen oder Abschnitten davon mindestens teilweise basierend auf einem erwarteten Fehlerereignistyp angeordnet sein. Als ein nicht einschränkendes Beispiel kann man bei einem gegebenen Typ eines Fehlerinjektionsereignisses eine spezifische Position einer Quelle eines solchen Fehlerinjektionsereignisses relativ zu den gefährdeten digitalen Schaltungen erwarten, oder man kann erwarten, dass ein spezifischer Bereich eines Chips durch ein Fehlerinjektionsereignis beeinflusst wird.
-
2A ist ein Blockdiagramm, das einen Fehlerereignisdetektor 200a gemäß einem oder mehreren Beispielen darstellt. Der Fehlerereignisdetektor 200a ist ein nicht einschränkendes Beispiel für den ersten oder zweiten Fehlerereignisdetektor 106 oder 112 von 1.
-
Der Fehlerereignisdetektor 200a ist im Allgemeinen konfiguriert, um eine Fehlerereignisangabe 208 als Reaktion auf ein Fehlerinjektionsereignis 212 zu erzeugen. In einem oder mehreren Beispielen kann der Fehlerereignisdetektor 200a eine bistabile Vorrichtung 202 und einen optionalen Fehlerindikator 206 einschließen.
-
In einem oder mehreren Beispielen ist die bistabile Vorrichtung 202 eine Schaltung oder Vorrichtung, die zuverlässig zwei stabile Zustände aufweist. Nicht einschränkende Beispiele für eine bistabile Vorrichtung 202 schließen einen CMOS-Latch, einen CMOS-Flip-Flop oder einen CMOS-Inverter ein. Ein Wechsel vom Aufweisen eines ersten Zustands zum Aufweisen eines zweiten Zustands wird an der bistabilen Vorrichtung 202 als Reaktion auf ein Fehlerinjektionsereignis 212 ausgelöst.
-
In einem oder mehreren Beispielen ändert sich ein Betriebsmodus des Fehlerereignisdetektors 200a als Reaktion auf Aktivierungen und Deaktivierungen einer optional extern erzeugten Rücksetzung 210. In einem oder mehreren Beispielen kann der Fehlerereignisdetektor 200a bei Aktivierung der Rücksetzung 210 in einen Rücksetzbetriebsmodus wechseln, bei dem ein Zustand der bistabilen Vorrichtung 202 in einen bekannten Zustand gesetzt oder optional zurückgesetzt wird und die Fehlerereignisangabe 208 deaktiviert wird. Nach und während der Aktivierung der Rücksetzung 210 bleibt ein Zustandsübergang 204 der bistabilen Vorrichtung 202 unabhängig davon, ob Fehlerinjektionsereignisse, wie das Fehlerinjektionsereignis 212, vorhanden sind oder nicht, deaktiviert. Während der Zustandsübergang 204 deaktiviert ist, ist die Fehlerereignisangabe 208 deaktiviert und zeigt daher „kein Fehlerinjektionsereignis detektiert“ an. In einem oder mehreren Beispielen kann der Fehlerereignisdetektor 200a bei der Deaktivierung der Rücksetzung 210 in einen normalen Betriebsmodus wechseln. Das Wechseln in den normalen Betriebsmodus ändert nicht den Zustand der bistabilen Vorrichtung 202, aktiviert nicht den Zustandsübergang 204 oder aktiviert nicht die Fehlerereignisangabe 208. Nach und während der Deaktivierung der Rücksetzung 210 wird der Zustandsübergang 204 als Reaktion darauf aktiviert, dass die bistabile Vorrichtung 202 als Reaktion auf das Fehlerinjektionsereignis 212 von einem ersten Zustand in einen zweiten Zustand wechselt. Während der Zustandsübergang 204 aktiviert ist, ist die Fehlerereignisangabe 208 aktiviert und zeigt „Fehlerinjektionsereignis detektiert“ an. Zusätzlich oder alternativ zu einer extern erzeugten Rücksetzung 210 kann in einem oder mehreren Beispielen der Fehlerereignisdetektor 200a einen hochohmigen Pfad zum Übermitteln einer internen Rücksetzung 210 einschließen, z. B. eines internen Signals, das als Reaktion auf kurzzeitige Ereignisse erzeugt wird, ohne Einschränkung.
-
Ein oder mehrere Beispiele eines Fehlerindikators 206 können eine Schaltung einschließen, die dazu ausgelegt ist, um die Fehlerereignisangabe 208 zu erzeugen, die den Zustandsübergang 204 angibt, der durch den Fehlerindikator 206 an der bistabilen Vorrichtung 202 beobachtet wird. Die Fehlerereignisangabe 208 ist ein nicht einschränkendes Beispiel für eine erste Fehlerereignisangabe 116 und eine zweite Fehlerereignisangabe 118. Bei Nichtvorhandensein des optionalen Fehlerereignisindikators 206 kann der Zustandsübergang 204 als die Fehlerereignisangabe 208 verwendet werden.
-
2B ist ein Blockdiagramm, das einen Fehlerereignisdetektor 200b darstellt, der konfiguriert ist, um das Vorhandensein eines Fehlerinjektionsereignisses zu detektieren, gemäß einem oder mehreren Beispielen. Der Fehlerereignisdetektor 200b ist ein nicht einschränkendes Beispiel für einen ersten oder einen zweiten Fehlerereignisdetektor 106 oder 112.
-
Der Fehlerereignisdetektor 200b schließt einen Fehlerereignissensor 226 ein, der im Allgemeinen konfiguriert ist, um ein Signal zu erfassen, welches das Vorhandensein eines Fehlerinjektionsereignisses angibt. In einem oder mehreren Beispielen kann der Fehlerereignissensor 226 ein Erfassungselement 216 einschließen, das konfiguriert ist, um eine zunehmende Menge an parasitärem Strom 220 an einer CMOS-Struktur 214 als einen Auslöser 222 zu erfassen. Der parasitäre Strom 220 weist als Reaktion auf das Vorhandensein eines Fehlerinjektionsereignisses 218 eine allgemein zunehmende Größe auf und weist eine im Allgemeinen stabile oder abnehmende Größe bei Nichtvorhandensein eines Fehlerinjektionsereignisses 218 auf.
-
Als ein nicht einschränkendes Beispiel kann ein CMOS-Schalter (nicht in 2B dargestellt), der an der CMOS-Struktur 214 bereitgestellt ist, dazu ausgelegt sein, um immer ausgeschaltet zu sein (z. B. wie durch 3 dargestellt, ohne Einschränkung). Als ein nicht einschränkendes Beispiel ist ein NMOS-Schalter mit seinen Anschlüssen elektrisch so gekoppelt, dass ein Spannungspegel an seinen Source- und Gate-Anschlüssen immer niedriger als ein Spannungspegel an seinem Drain ist; oder ist ein PMOS-Schalter mit seinen Anschlüssen elektrisch so gekoppelt, dass ein Spannungspegel an seinen Drain- und Gate-Anschlüssen immer höher ist als ein Spannungspegel an seiner Source. Ein solcher CMOS-Schalter weist eine parasitäre Vorrichtung und insbesondere eine in Sperrrichtung vorgespannte parasitäre Diode auf, die in der CMOS-Struktur 214 vorhanden ist, an welcher der CMOS-Schalter bereitgestellt ist. Wie hierin verwendet, bedeutet die Bezugnahme auf eine parasitäre Diode als „in Sperrrichtung vorgespannt“ eine Spannung an der Kathode der parasitären Diode, die höher als eine Spannung an der Anode der parasitären Diode ist. Das Anlegen des Fehlerinjektionsereignisses 218 an einen solchen CMOS-Schalter initiiert oder erhöht die Leitung durch seine parasitäre Diode und dementsprechend eine Größe des parasitären Stroms (hierin auch als „Leckstrom“ bezeichnet), wie des parasitären Stroms 220. Beim Erfassen eines zunehmenden parasitären Stroms 220 oder einer ausreichenden Größe des parasitären Stroms 220 wird ein Auslöser 222 erzeugt, und das Erfassungselement 216 weist eine Reaktion 224 auf.
-
In einem oder mehreren Beispielen können eine oder mehrere der ersten und zweiten Fehlerereignisangabe 116 und 118 die Reaktion 224 sein oder können mindestens teilweise als Reaktion auf die Reaktion 224 aktiviert werden.
-
In einem oder mehreren Beispielen kann die bistabile Vorrichtung 202 des Fehlerereignisdetektors 200a (2A) einen Fehlerereignissensor 226 einschließen oder mit dem Fehlerereignissensor 226 gekoppelt sein, und ein Wechseln von einem ersten Zustand in einen zweiten Zustand durch die bistabile Vorrichtung 202 kann mindestens teilweise als Reaktion auf die Reaktion 224 ausgelöst werden, und der Zustandsübergang 204 wird als Reaktion darauf aktiviert. In einem oder mehreren Beispielen kann die Reaktion 224 (die hierin als „auslösend“ bezeichnet werden kann) eine Zustandsänderung an der bistabilen Vorrichtung 202 von einem ersten Zustand in einen zweiten Zustand erzwingen, wodurch der Zustandsübergang 204 aktiviert wird.
-
3 ist ein Schaltplan, der eine Fehlerereignisdetektionsschaltung 300 gemäß einem oder mehreren Beispielen darstellt. Die Fehlerereignisdetektionsschaltung 300 ist ein nicht einschränkendes Beispiel für einen Fehlerereignisdetektor 200a von 2A, bei dem ein Zustandsübergang 204 an der bistabilen Vorrichtung 202 durch einen Fehlerereignissensor 226 von 2B ausgelöst wird, oder ein nicht einschränkendes Beispiel für den ersten und zweiten Fehlerereignisdetektor 106 und 112 von 1.
-
In einem oder mehreren Beispielen ist die Fehlerereignisdetektionsschaltung 300 im Allgemeinen konfiguriert, um ein Fehlerereignisangabesignal 308 als Reaktion auf ein detektiertes Fehlerinjektionsereignis, wie das erste detektierte Fehlerinjektionsereignis 122 oder das zweite detektierte Fehlerinjektionsereignis 126, ohne Einschränkung, zu aktivieren.
-
In einem oder mehreren Beispielen kann die Fehlerereignisdetektionsschaltung 300 eine bistabile Schaltung 330, eine erste Fehlerereigniserfassungsschaltung 320, eine zweite Fehlerereigniserfassungsschaltung 322, eine optionale Rücksetzschaltung 326 und eine optionale Fehlerindikatorschaltung 332 einschließen. In einem oder mehreren Beispielen ist das Fehlerereignisangabesignal 308 ein nicht einschränkendes Beispiel für eine Fehlerereignisangabe 208, die erste Fehlerereignisangabe 116 oder die zweite Fehlerereignisangabe 118. In einem oder mehreren Beispielen ist die bistabile Schaltung 330 ein nicht einschränkendes Beispiel für die bistabile Vorrichtung 202, die Fehlerindikatorschaltung 332 ist ein nicht einschränkendes Beispiel für den Fehlerindikator 206, und sowohl die erste Fehlerereigniserfassungsschaltung 320 als auch die zweite Fehlerereigniserfassungsschaltung 322 sind nicht einschränkende Beispiele für den Fehlerereignissensor 226.
-
In dem spezifischen, nicht einschränkenden Beispiel für die Fehlerereignisdetektionsschaltung 300, die in 3 dargestellt ist, nutzen die Rücksetzschaltung 326, die erste Fehlerereigniserfassungsschaltung 320, die zweite Fehlerereigniserfassungsschaltung 322 und die bistabile Schaltung 330 Komplementärmetalloxid-Halbleiter (CMOS)-Schalter. Die Rücksetzschaltung 326 schließt einen PMOS-Schalter (d. h. einen Metalloxid-Halbleiter-Schalter vom P-Kanal-Typ) MP0 ein, dessen Gate-Anschluss elektrisch mit einem Rücksetzsignal 302 gekoppelt ist, das ein nicht einschränkendes Beispiel der Rücksetzung 210 ist, und dessen Source-Anschluss elektrisch mit einer Versorgungsspannung Vdd gekoppelt ist. Die erste Fehlerereigniserfassungsschaltung 320 schließt einen NMOS-Schalter (d. h. einen Metalloxid-Halbleiter-Schalter vom N-Kanal-Typ) MN0 ein, und die Source- und Gate-Anschlüsse des MN0 sind elektrisch mit einer Massespannung GND gekoppelt, die mit einem logischen Low assoziiert ist. Die zweite Fehlerereigniserfassungsschaltung 322 schließt einen PMOS-Schalter MP1 ein, wobei die Gate- und Source-Anschlüsse des MP1 elektrisch mit einer Versorgungsspannung Vdd gekoppelt sind, die mit einem logischen High assoziiert ist. In einem oder mehreren Beispielen können Spannungen Vdd und GND mit Spannungsschienen der Fehlerereignisdetektionsschaltung 300 assoziiert sein.
-
In einem oder mehreren Beispielen ist die bistabile Schaltung 330 eine Schaltung, die im Allgemeinen konfiguriert ist, um zuverlässig einen von zwei stabilen Zuständen aufzuweisen. In einem oder mehreren Beispielen kann die bistabile Schaltung 330 ohne Einschränkung als ein Latch, ein Flip-Flop oder ein Inverter konfiguriert sein. In dem spezifischen, nicht einschränkenden Beispiel, das in 3 dargestellt ist, ist die bistabile Schaltung 330 als ein Latch konfiguriert, das im Allgemeinen konfiguriert ist, um einen Zustand eines internen Signals, das einem Zustand eines letzten Signals entspricht, das der bistabilen Schaltung 330 durch die Rücksetzschaltung 326 bereitgestellt wird, zu halten, und das insbesondere das erste Signal 306 über ein Latching durch den ersten Inverter 310, den zweiten Inverter 316 und die Widerstandsschaltung 312 auf einem Logikpegel von High hält, ohne Einschränkung.
-
Ein Zustand der bistabilen Schaltung 330 wird durch einen Zustand eines internen Signals, eines ersten Signals 306, angegeben. Wenn das erste Signal 306 einen Logikpegel, High oder Low, aufweist, gibt dies an, dass ein Zustand der bistabilen Schaltung 330 ein erster oder zweiter Zustand ist. Diese Offenbarung ist nicht auf die Nutzung von Spannungspegeln beschränkt, die mit Spannungsschienen oder Logikpegeln assoziiert sind, um einen Zustand der bistabilen Schaltung 330 oder einen Zustand des ersten Signals 306 abzuleiten.
-
Die erste Fehlerereigniserfassungsschaltung 320 und die zweite Fehlerereigniserfassungsschaltung 322 sind dazu ausgelegt, um einen Zustandsübergang an der bistabilen Schaltung 330 als Reaktion auf ein Fehlerinjektionsereignis und insbesondere einen Zustandsübergang durch das erste Signal 306 auszulösen, wie nachstehend erörtert. In einem oder mehreren Beispielen sind die erste Fehlerereigniserfassungsschaltung 320 und die zweite Fehlerereigniserfassungsschaltung 322 im Allgemeinen konfiguriert, um einen Auslöser zuverlässig bereitzustellen, der ausreicht, um einen Zustandsübergang an der bistabilen Schaltung 330 als Reaktion auf ein Fehlerinjektionsereignis zu erzwingen.
-
Während des normalen Betriebs der Fehlerereignisdetektionsschaltung 300 (d. h., wenn die Schaltung durch das Rücksetzsignal 302 zurückgesetzt wurde, und in der Lage ist, einen Zustand des ersten Signals 306 bei Vorhandensein eines Fehlerinjektionsereignisses zu ändern, wie nachstehend erörtert), sind die Schalter MN0 und MP1 der ersten und zweiten Fehlerereigniserfassungsschaltung 320 bzw. 322 ausgeschaltet, und das erste Signal 306 weist einen Logikpegel von High auf. Falls eine oder beide der jeweiligen parasitären Vorrichtungen (wie ein parasitärer Bipolartransistor (BJT) oder eine parasitäre Diode, ohne Einschränkung) des NMOS-Schalters MN0 der ersten Fehlerereigniserfassungsschaltung 320 als Reaktion auf ein Fehlerinjektionsereignis und eine ausreichende Größe von Stromflüssen leiten oder die Leitfähigkeit erhöhen, wird der NMOS-Schalter MN0 das erste Signal 306 auf einen Logikpegel von Low zwingen und den ersten Knoten 318 auf die Massespannung GND zwingen, was den zweiten Knoten 324 auf die Spannung Vdd durch den ersten Inverter 310 ansteuert. Falls die jeweiligen parasitären Vorrichtungen (wie ein parasitärer Bipolartransistor (BJT) oder eine parasitäre Diode, ohne Einschränkung) des PMOS-Schalters MP1 der zweiten Fehlerereigniserfassungsschaltung 322 als Reaktion auf ein Fehlerinjektionsereignis und eine ausreichende Größe von Stromflüssen leiten oder die Leitfähigkeit erhöhen, wird der PMOS-Schalter MP1 den zweiten Knoten 324 auf einen Logikpegel von High zwingen, d. h. wird ihn in Richtung Vdd ansteuern, der dann durch die bistabile Schaltung 330 gelatcht wird, was das erste Signal 306 und den ersten Knoten 318 auf einen Logikpegel von Low setzt.
-
In jedem Fall führt das Zwingen des ersten Knotens 318 auf GND oder auf den Logikpegel von Low oder des zweiten Knotens 324 auf Vdd oder einen Logikpegel von High zu einem Zustandsübergang an der bistabilen Schaltung 330.
-
In einem oder mehreren Beispielen ist das Signal, das die Fehlerereignisdetektionsschaltung 300 über mindestens eine der ersten Fehlerereigniserfassungsschaltung 320 und der zweiten Fehlerereigniserfassungsschaltung 322 erfasst, die Änderung der Größe der parasitären Ströme an der ersten Fehlerereigniserfassungsschaltung 320 und der zweiten Fehlerereigniserfassungsschaltung 322, deren Größe bei Vorhandensein eines Fehlerinjektionsereignisses zunimmt. Das Auslösen ist die Realisierung eines ausreichenden parasitären Stroms (auch als eine ausreichende Zunahme der Größe des parasitären Stroms charakterisierbar) am Schalter MN0 oder MP1, um einen Zustandsübergang an der bistabilen Schaltung 330 zu erzwingen. In dem spezifischen Beispiel, das in 3 dargestellt ist, reicht ein parasitärer Strom an der zweiten Fehlerereigniserfassungsschaltung 322, der größer als ein Pull-Down-Strom am ersten Inverter 310 ist, aus, um den Zustand der bistabilen Schaltung 330 zu ändern, und ein parasitärer Strom an der ersten Fehlerereigniserfassungsschaltung 320, der größer als ein Pull-Up-Strom am zweiten Inverter 316 ist, reicht aus, um einen Zustand der bistabilen Schaltung 330 zu ändern.
-
Während in dem spezifischen Beispiel, das in 3 dargestellt ist, die erste Fehlerereigniserfassungsschaltung 320 und die zweite Fehlerereigniserfassungsschaltung 322 mit einer Pull-Down- bzw. einer Pull-Up-Konfiguration an der Fehlerereignisdetektionsschaltung 300 dargestellt sind, überschreitet die Nutzung anderer Konfigurationen den Schutzumfang dieser Offenbarung nicht.
-
In einem oder mehreren Beispielen ist die Widerstandsschaltung 312 konfiguriert, um die Rücksetzschaltung 326 oder die erste Fehlerereigniserfassungsschaltung 320, wie es der Fall sein kann, beim Ändern eines Zustands des ersten Signals 306 und allgemeiner der bistabilen Schaltung 330 (z. B. logisches Low auf logisches High und umgekehrt, ohne Einschränkung) zu unterstützen. Die Widerstandsschaltung 312 ist zwischen einem Ausgang des zweiten Inverters 316 und dem ersten Knoten 318 gekoppelt und schließt einen PMOS-Schalter, der mit MP2 gekennzeichnet ist, und einem NMOS-Schalter, der mit MN2 gekennzeichnet ist, ein. Die Gate-Anschlüsse des PMOS-Schalters MP2 sind elektrisch mit der Massespannung GND gekoppelt, und der Gate-Anschluss des NMOS-Schalters MN2 ist elektrisch mit der Versorgungsspannung Vdd gekoppelt, sodass beide Schalter MP2 und MN2 dazu ausgelegt sind, um immer eingeschaltet zu sein. Wenn beide der Schalter MP2 und MN2 eingeschaltet sind, stellt die Widerstandsschaltung 312 einen Widerstand zwischen einem Ausgang des zweiten Inverters 316 und der Rücksetzschaltung 326 und der ersten Fehlerereigniserfassungsschaltung 320 bereit. Dementsprechend ist die Widerstandsschaltung 312 dazu ausgelegt, um eine Größe eines Ausgangsstroms des zweiten Inverters 316 zu begrenzen, sodass, wenn die Rücksetzschaltung 326 oder die erste Fehlerereigniserfassungsschaltung 320 versucht, eine Änderung eines Zustands des ersten Signals 306 zu erzwingen, der Einfluss des Ausgangs des zweiten Inverters 316 einen Zustand des ersten Signals 306, und allgemeiner der bistabilen Schaltung 330, nicht in seinen vorherigen Zustand zwingt, bevor die Zustandsverstärkungsanordnung des ersten Inverters 310 und des zweiten Inverters 316 das erste Signal 306 in den neuen Zustand latchen kann.
-
In einem oder mehreren Beispielen schließt die Fehlerereignisdetektionsschaltung 300 mindestens zwei Betriebsmodi ein: einen normalen Betriebsmodus, bei dem sie Fehlerinjektionsereignisse detektieren kann, und einen Rücksetzmodus, bei dem sie keine Fehlerinjektionsereignisse detektiert. Andere Betriebsmodi überschreiten den Schutzumfang dieser Offenbarung nicht. Während eines Rücksetzbetriebsmodus ist die Fehlerereignisdetektionsschaltung 300 konfiguriert, um kontinuierlich „kein Fehlerinjektionsereignis detektiert“ anzugeben, unabhängig davon, ob die erste Fehlerereigniserfassungsschaltung 320 oder die zweite Fehlerereigniserfassungsschaltung 322 ausgelöst wird. Während eines normalen Betriebsmodus ist die Fehlerereignisdetektionsschaltung 300 konfiguriert, um „Fehlerinjektionsereignis detektiert“ als Reaktion auf eine Auslösung entweder der ersten Fehlerereigniserfassungsschaltung 320 oder der zweiten Fehlerereigniserfassungsschaltung 322 anzugeben, und bei Nichtvorhandensein einer Auslösung entweder der ersten Fehlerereigniserfassungsschaltung 320 oder der zweiten Fehlerereigniserfassungsschaltung 322 „kein Fehlerinjektionsereignis detektiert“ anzugeben.
-
Im Allgemeinen ist die Fehlerereignisdetektionsschaltung 300, um in einen normalen Betriebsmodus einzutreten, konfiguriert, um in einem bekannten Betriebsmodus zu beginnen und dann in den normalen Betriebsmodus überzugehen. In einem oder mehreren Beispielen ist die Rücksetzschaltung 326 dazu ausgelegt, um die Fehlerereignisdetektionsschaltung 300 in einen Rücksetzbetriebsmodus als Reaktion auf eine Aktivierung des Rücksetzsignals 302 zu setzen und einen Übergang der Fehlerereignisdetektionsschaltung 300 von einem Rücksetzbetriebsmodus in einen normalen Betriebsmodus als Reaktion auf eine Deaktivierung des Rücksetzsignals 302 zu veranlassen. In einem oder mehreren Beispielen kann die Aktivierung des Rücksetzsignals 302 auch genutzt werden (z. B. durch den Prozessor 114, ohne Einschränkung), um einen Fehlerereignisdetektor zu initialisieren oder eine Fehlerinjektionsangabe zu löschen. Nach dem Löschen kann eine Fehlerereignisangabe, die einem nachfolgenden detektierten Fehlerinjektionsereignis entspricht, durch die Fehlerereignisdetektionsschaltung 300 angegeben werden.
-
Als Reaktion auf eine Aktivierung des Rücksetzsignals 302 (z. B. durch den Prozessor 114, ohne Einschränkung) ist die Rücksetzschaltung 326 dazu ausgelegt, um das erste Signal 306 auf ein logisches High zu setzen. Das Setzen des ersten Signals 306 auf ein logisches High setzt das Fehlerereignisangabesignal 308 auf ein logisches Low über einen optionalen dritten Inverter 304, das „kein Fehlerinjektionsereignis detektiert“ angibt, um die bistabile Schaltung 330 und allgemeiner die Fehlerereignisdetektionsschaltung 300 zu initialisieren oder zurückzusetzen. In dem spezifischen Beispiel, das in 3 dargestellt ist, wird das Rücksetzsignal 302 als aktives Low (ein logisches Low) aktiviert und passives High (ein logisches High) deaktiviert angesehen, aber die Nutzung anderer Konventionen überschreitet den Schutzumfang dieser Offenbarung nicht.
-
Im Falle eines Rücksetzbetriebsmodus, wenn das Rücksetzsignal 302 an der Rücksetzschaltung 326 aktiviert (auf logisch Low gesetzt) wird, schaltet sich der PMOS-Schalter MP0 ein und legt die Spannung Vdd an den ersten Knoten 318 an (z. B. wird der erste Knoten 318 auf Vdd (logisches High) hochgezogen, wenn das Rücksetzsignal 302 an der Rücksetzschaltung 326 aktiviert wird, ohne Einschränkung) und legt dadurch Vdd an jeweilige Eingänge des ersten Inverters 310 und des optionalen dritten Inverters 304 an, deren Eingänge elektrisch mit dem ersten Knoten 318 gekoppelt sind. Der optionale dritte Inverter 304, der erste Inverter 310 und der zweite Inverter 316 sind konfiguriert, um eine Ausgangsspannung bereitzustellen, die einem logischen Entgegengesetzten (d. h. einer invertierten Version der Spannung) einer Spannung an seinem Eingang entspricht. Wenn das erste Signal 306 auf logisch High gesetzt ist, hier Vdd, stellt der optionale dritte Inverter 304 eine Spannung an seinem Ausgang bereit, die logischem Low entspricht, hier GND, und setzt dadurch das Fehlerereignisangabesignal 308 auf ein logisches Low, das in diesem spezifischen, nicht einschränkenden Beispiel „kein Fehlerinjektionsereignis detektiert“ entspricht.
-
Der erste Inverter 310 und der zweite Inverter 316 sind in Reihe angeordnet, wenn somit das erste Signal 306, das auf das logische High gesetzt ist, am Eingang des ersten Inverters 310 empfangen wird, setzt der zweite Inverter 316 ein drittes Signal 314, d. h. den Ausgang des zweiten Inverters 316, auf ein logisches High. Die Widerstandsschaltung 312 ist dazu ausgelegt, um während des Betriebs der Fehlerereignisdetektionsschaltung 300 immer aktiv zu sein, solange Vdd und GND versorgt werden, wie dargestellt, und fungiert somit als ein Reihenwiderstand und setzt das erste Signal 306 auf logisch High, wenn das dritte Signal 314 logisch High ist. Auf diese Weise sind der erste Inverter 310, der zweite Inverter 316 und die Widerstandsschaltung 312 dazu ausgelegt, um einen Rückkopplungspfad bereitzustellen, der als ein Latch fungiert, der den Zustand (logisches High) des ersten Signals 306 hält.
-
Als Reaktion auf eine Änderung von einem aktivierten zu einem deaktivierten Rücksetzsignal 302 (d. h. einem logischen High) wechselt ein Betriebsmodus der Fehlerereignisdetektionsschaltung 300 von einem Rücksetzbetriebsmodus in einen normalen Betriebsmodus, in dem sie ein Fehlerinjektionsereignis detektieren kann. In Fall eines normalen Betriebsmodus ist der PMOS-Schalter MP0 der Rücksetzschaltung 326 als Reaktion auf ein deaktiviertes Rücksetzsignal 302 ausgeschaltet. Wenn sich die Fehlerereignisdetektionsschaltung 300 in einem normalen Betriebsmodus befindet, bleibt das erste Signal 306 aufgrund der Latch-Konfiguration der bistabilen Schaltung 330 logisch High.
-
Als nicht einschränkendes Beispiel für einen beabsichtigten Betrieb der Fehlerereignisdetektionsschaltung 300, wenn ein Fehlerinjektionsereignis innerhalb eines Umgebungsbereichs der Fehlerereignisdetektionsschaltung 300 vorhanden ist, während sich die Fehlerereignisdetektionsschaltung 300 in einem normalen Betriebsmodus befindet, eine oder beide der ersten Fehlerereigniserfassungsschaltung 320 und der zweiten Fehlerereigniserfassungsschaltung 322 das Fehlerinjektionsereignis und versuchen, eine Zustandsänderung an der bistabilen Schaltung 330 auszulösen.
-
Im Fall der zweiten Fehlerereigniserfassungsschaltung 322 ist der PMOS-Transistor MP1 immer ausgeschaltet, wenn eine Spannung Vdd an seine Gate- und Source-Anschlüsse angelegt wird (z. B. während des normalen Betriebs der Fehlerereignisdetektionsschaltung 300, ohne Einschränkung). Das Vorhandensein eines Fehlerinjektionsereignisses innerhalb eines Umgebungsbereichs der Fehlerereignisdetektionsschaltung 300 induziert einen parasitären Strom im PMOS-Transistor MP1 von der Spannung Vdd zum zweiten Knoten 324, der, wenn er ausreicht, um das Pulldown (Herunterziehen) des Ausgangs des ersten Inverters 310 zu überwinden, den zweiten Knoten 324 auf die Spannung Vdd zwingt, was den Zustand des zweiten Signals 328 von einem logischen Low zu einem logischen High ändert.
-
In einem oder mehreren Beispielen kann eine Größe eines Transistors des ersten Inverters 310 so gewählt werden, dass sie eine Größe eines Pulldown-Stroms begrenzt, der über den ersten Inverter 310 fließt, wobei eine Obergrenze einer Größe des Pulldown-Stroms direkt proportional zu einer Größe eines Transistors ist. In einem oder mehreren Beispielen kann eine Größe des PMOS-Transistors MP1 (und NMOS-Transistors MN0) gemäß einer gewünschten Empfindlichkeit der zweiten Fehlerereigniserfassungsschaltung 322 (und der ersten Fehlerereigniserfassungsschaltung 320) gewählt werden, eine Größe eines induzierten parasitären Stroms, der am PMOS-Transistor MP1 fließt, ist direkt proportional zu einer Größe des PMOS-Transistors MP1. In einem oder mehreren Beispielen können relative Größen des PMOS-Transistors MP 1 und eines Transistors des ersten Inverters 310 gewählt werden, um auf eine gewünschte Empfindlichkeit der ersten Fehlerereigniserfassungsschaltung 320 abzustimmen.
-
Als Reaktion auf die Zustandsänderung des zweiten Signals 328 auf ein logisches High ändert der zweite Inverter 316 den Zustand des dritten Signals 314 auf ein logisches Low, was dann in dem geänderten Zustand durch die Rückkopplung des ersten Inverters 310 gelatcht wird. Als Reaktion auf die Zustandsänderung des dritten Signals 314 auf ein logisches Low ändert das erste Signal 306 seinen Zustand auf ein logisches Low, und der optionale dritte Inverter 304 setzt das Fehlerereignisangabesignal 308 auf ein logisches High, d. h. auf einen „Fehlerereignis detektiert“-Zustand. Der parasitäre Strom im PMOS-Transistor MP1 von Spannung Vdd zum zweiten Knoten 324 kann vorübergehend sein, solange er von ausreichender Dauer ist, um den Zustand des ersten Signals 306 auf ein logisches Low zu ändern, d. h. um das Logiksignal durch beide Inverter (den ersten Inverter 310 und den zweiten Inverter 316) zu propagieren und das erste Signal 306 zu latchen. Als ein nicht einschränkendes Beispiel sollte ein 1 Nanosekunde breiter Impuls (d. h. Zustandsänderung des dritten Signals 314) ausreichend sein, um das Fehlerereignisangabesignal 308 zu setzen.
-
Im Fall der ersten Fehlerereigniserfassungsschaltung 320 ist der NMOS-Transistor MN0 immer ausgeschaltet, wenn eine Massespannung GND an seine Gate- und Drain-Anschlüsse angelegt wird (z. B. während des normalen Betriebs der Fehlerereignisdetektionsschaltung 300, ohne Einschränkung). Das Vorhandensein eines Fehlerinjektionsereignisses innerhalb eines Umgebungsbereichs der Fehlerereignisdetektionsschaltung 300 induziert einen parasitären Strom im NMOS-Transistor MN0 der ersten Fehlerereigniserfassungsschaltung 320 vom ersten Knoten 318 zur Masseversorgung GND, wodurch der erste Knoten 318 auf die Massespannung GND gezogen wird und das erste Signal 306 gezwungen wird, den Zustand von einem logischen High auf ein logisches Low zu ändern. Wenn ein erstes Signal 306, das auf ein logisches Low gesetzt ist, am Eingang des optionalen dritten Inverters 304 empfangen wird, setzt der optionale dritte Inverter 304 das Fehlerereignisangabesignal 308 auf ein logisches High, was in diesem spezifischen nicht einschränkenden Beispiel „Fehlerinjektionsereignis detektiert“ entspricht. Wenn das erste Signal 306, das auf ein logisches Low gesetzt ist, am Eingang des ersten Inverters 310 empfangen wird, wird das zweite Signal 328 auf ein logisches High gesetzt, was das dritte Signal 314 durch den zweiten Inverter 316 auf ein logisches Low setzt, wodurch der Zustand des ersten Signals 306 auf den Zustand mit logischem Low gelatcht wird, unabhängig von dem Betrieb der ersten Fehlerereigniserfassungsschaltung 320. Der parasitäre Strom im NMOS-Transistor MN0 kann vorübergehend sein, solange er von ausreichender Dauer ist, um den Zustand des dritten Signals 314 auf ein logisches Low zu ändern.
-
In einem oder mehreren Beispielen kann die Fehlerereignisdetektionsschaltung 300 mehr oder weniger Fehlerereigniserfassungsschaltungen wie in 3 dargestellt einschließen. In dem spezifischen, nicht einschränkenden Beispiel, das in 3 dargestellt ist, schließt die Fehlerereignisdetektionsschaltung 300 zwei Fehlerereigniserfassungsschaltungen ein, eine erste Fehlerereigniserfassungsschaltung 320 und eine zweite Fehlerereigniserfassungsschaltung 322, die dazu ausgelegt sind, um eine komplementäre Fehlerereigniserfassung durchzuführen, was zwei oder mehr Fehlerereigniserfassungsschaltungen wie die erste und zweite Fehlerereigniserfassungsschaltung 320 und 322 einschließt, die beide das Vorhandensein eines Fehlerinjektionsereignisses detektieren und die Erzeugung einer „Fehlerinjektionsereignis detektiert“-Angabe beeinflussen können. Komplementäre Fehlerereigniserfassungsschaltungen (z. B. einschließlich zwei oder mehr Fehlerereigniserfassungsschaltungen wie die erste und zweite Fehlerereigniserfassungsschaltung 320 und 322, die beide Fehlerinjektionsereignisse detektieren und die Erzeugung einer „Fehlerinjektionsereignis detektiert“-Angabe beeinflussen können) können die Wirksamkeit der Fehlerereignisdetektionsschaltung 300 erhöhen (z. B. reduziert falsche Negative, ohne Einschränkung).
-
Diese Offenbarung ist nicht auf eine spezifische Anzahl von Fehlerereignissensoren beschränkt. Als ein nicht einschränkendes Beispiel wird speziell in Betracht gezogen, dass ein offenbarter Fehlerereignisdetektor mehrere Fehlerereignissensoren verwenden kann, von denen erwartet wird, dass sie allein unzureichend sind, um ein Vorhandensein eines Fehlerinjektionsereignisses zuverlässig zu detektieren, von denen jedoch erwartet wird, dass sie als eine Gruppe ein Vorhandensein eines Fehlerinjektionsereignisses zuverlässig detektieren. Als ein weiteres nicht einschränkendes Beispiel wird speziell in Betracht gezogen, dass ein offenbarter Fehlerereignisdetektor mehrere Fehlerereignissensoren verwenden kann, von denen erwartet wird, dass sie allein ausreichend sind, um ein Vorhandensein eines Fehlerinjektionsereignisses zuverlässig zu detektieren, für Redundanz.
-
Ein Durchschnittsfachmann auf dem Gebiet wird erkennen, dass eine Anzahl von Fehlerereigniserfassungsschaltungen und Fehlerereignissensoren allgemeiner eine Frage der Designwahl ist. Als ein nicht einschränkendes Beispiel wird speziell in Betracht gezogen, dass eine Anzahl von Fehlerereignissensoren gewählt werden kann, um einen gewünschten Empfindlichkeitsgrad für das Vorhandensein eines Fehlerinjektionsereignisses einzustellen.
-
Ein Durchschnittsfachmann auf dem Gebiet wird erkennen, dass Beispiele für Fehlerereignisdetektoren und Fehlerereignisdetektion, die hierin erörtert werden, viele Nutzen und Vorteile bieten. Verschiedene Beispiele für Fehlerereignisdetektoren können bestimmte Charakteristiken einschließen, die einer Standardzelle für einen digitalen Logikblock ähneln. Als ein nicht einschränkendes Beispiel kann die Fehlerereignisdetektionsschaltung 300 von einer Standardzelle für einen Daten-Latch modifiziert werden. Ein Daten-Latch ist ein digitaler Logikblock, der üblicherweise in Chips verwendet wird. Dementsprechend kann es ein Angreifer schwierig, wenn nicht gar unmöglich finden, einen Fehlerereignisdetektor, der eine Fehlerereignisdetektionsschaltung 300 einschließt (oder eine andere Fehlerdetektionsschaltung einschließt, die von einer Standardzelle modifiziert ist) von einer Standardzellen-Digitallogik zu unterscheiden, und wird solche Fehlerdetektoren nicht vermeiden, wenn er versucht, einen Fehler an einem Chip zu induzieren, wie beim Scannen eines Lasers über den Chip, ohne Einschränkung. Offenbarte Fehlerereignisdetektionsschaltungen sind nicht auf ein spezifisches Design oder eine spezifische Herstellungstechnik beschränkt, wie z. B. Modifizieren einer digitalen Logikschaltung einer Standardzelle, und die Nutzung anderer Techniken überschreitet den Schutzumfang dieser Offenbarung nicht.
-
4 ist ein Flussdiagramm, das einen Prozess 400 zum Steuern des Betriebs eines Fehlerereignisdetektors darstellt, gemäß einem oder mehreren Beispielen. Der Prozess 400 kann, als ein nicht einschränkendes Beispiel, durch den Prozessor 114 von 1 durchgeführt werden.
-
Bei Operation 402 aktiviert der Prozess 400 zuerst ein Rücksetzsignal (z. B. Rücksetzung 210 oder 302, ohne Einschränkung), um einen Betriebsmodus eines Fehlerereignisdetektors (z. B. eines ersten Fehlerereignisdetektors 106, eines zweiten Fehlerereignisdetektors 112, eines Fehlerereignisdetektors 200 (separat als 200a oder 200b bezeichnet) oder einer Fehlerereignisdetektionsschaltung 300, ohne Einschränkung) in einen Rücksetzbetriebsmodus zu setzen. Das Setzen eines Betriebsmodus eines Fehlerereignisdetektors auf einen Rücksetzbetriebsmodus setzt einen Zustand einer bistabilen Vorrichtung (z. B. einer bistabilen Vorrichtung 202 oder einer bistabilen Schaltung 330, ohne Einschränkung) des Fehlerereignisdetektors in einen ersten Zustand. Optional löscht die Operation 402 eine aktivierte Fehlerereignisangabe, d. h. in dem Fall, dass während des Betriebs das Vorhandensein eines Fehlerinjektionsereignisses detektiert wurde und das Fehlerereignisangabesignal 308 auf ein logisches High gesetzt wurde, aktiviert Prozess 400 das Rücksetzsignal, um den Zustand einer digitalen Schaltung des Fehlerereignisdetektors zurück in den ersten Zustand zu setzen, wodurch das Fehlerereignisangabesignal 308 auf ein logisches Low zurückgesetzt wird.
-
Bei Operation 404 deaktiviert der Prozess 400 das Rücksetzsignal, um den Betriebsmodus des Fehlerereignisdetektors von einem Rücksetzbetriebsmodus in einen normalen Betriebsmodus zu ändern. Insbesondere bleibt der Zustand der bistabilen Vorrichtung des Fehlerereignisdetektors im ersten Zustand.
-
Bei Operation 406 empfängt der Prozess 400 eine aktivierte Fehlerereignisangabe von dem Fehlerereignisdetektor. Die aktivierte Fehlerereignisangabe kann ein detektiertes Fehlerinjektionsereignis in einem Umgebungsbereich des Fehlerereignissensors angeben.
-
Bei Operation 408 nimmt der Prozess 400 eine geeignete Aktion als Reaktion auf die aktivierte Fehlerereignisangabe vor. In einem oder mehreren Beispielen kann die geeignete Aktion, die durch den Prozess 400 vorgenommen wird, mindestens teilweise auf den gefährdeten Schaltungselementen im Umgebungsbereich des Fehlerereignisdetektors basieren. Als ein nicht einschränkendes Beispiel kann der Prozess 400 eine oder mehrere Operationen erneut durchführen, welche die gefährdeten Schaltungselemente im Umgebungsbereich des Fehlerereignisdetektors beinhalteten. Als ein weiteres nicht einschränkendes Beispiel kann der Prozess 400 einen Chip sperren, da die gefährdeten Schaltungselemente einen Kernprozess des Chips beeinflussen. Als ein weiteres nicht einschränkendes Beispiel kann Prozess 400 einen Alarm für einen Prozess höherer Ebene auslösen, der mindestens teilweise auf den gefährdeten Schaltungselementen im Umgebungsbereich des Fehlerereignisdetektors basiert.
-
Bei Operation 410 aktiviert der Prozess 400 das Rücksetzsignal zum zweiten Mal, um den Betriebsmodus des Fehlerereignisdetektors in den Rücksetzbetriebsmodus zu setzen, und löscht dadurch die aktivierte Fehlerereignisangabe. Das Deaktivieren des Rücksetzsignals nach dem zweiten Aktivieren des Rücksetzsignals bei Operation 410 ändert den Betriebsmodus des Fehlerereignisdetektors in den normalen Betriebsmodus. Dementsprechend dient in einem oder mehreren Beispielen das Umschalten des Rücksetzsignals (Aktivieren und anschließendes Deaktivieren des Rücksetzsignals) dazu, den Fehlerereignisdetektor und die Fehlerereignisangabe zurückzusetzen.
-
5 ist ein Flussdiagramm, das einen Prozess 500 zum Detektieren eines Fehlerinjektionsereignisses durch einen Fehlerereignisdetektor darstellt, gemäß einem oder mehreren Beispielen.
-
Bei Operation 502 stellt der Prozess 500 eine bistabile Vorrichtung (z. B. eine bistabile Vorrichtung 202 oder eine bistabile Schaltung 330, ohne Einschränkung) bereit.
-
Bei Operation 504 stellt der Prozess 500 einen Fehlerereignissensor (z. B. einen Fehlerereignissensor 226 oder eine erste Fehlerereigniserfassungsschaltung 320 oder eine zweite Fehlerereigniserfassungsschaltung 322, ohne Einschränkung) bereit. In einem oder mehreren Beispielen kann der Fehlerereignissensor konfiguriert sein, um ein Vorhandensein eines Fehlerinjektionsereignisses mindestens teilweise als Reaktion auf das Vorhandensein eines Fehlerinjektionsereignisses zu detektieren (z. B. eine erste Fehlerereigniserfassungsschaltung 320 einschließlich eines NMOS-Schalters MN0 oder eine zweite Fehlerereigniserfassungsschaltung 322 einschließlich eines PMOS-Schalters MP1, wobei die Schalter dazu ausgelegt sind, um immer ausgeschaltet zu sein, und parasitäre Vorrichtungen daher als Reaktion auf das Vorhandensein eines Fehlerinjektionsereignisses leiten, ohne Einschränkung).
-
Bei Operation 506 löst der Prozess 500 eine Zustandsänderung (z. B. Erzwingen, dass sich ein Zustand des ersten Signals 306 von einem ersten Zustand in einen zweiten Zustand ändert, durch die erste Fehlerereigniserfassungsschaltung 320 oder die zweite Fehlerereigniserfassungsschaltung 322, ohne Einschränkung) an der bereitgestellten bistabilen Vorrichtung mindestens teilweise als Reaktion darauf auf, dass der Fehlerereignissensor das Vorhandensein eines Fehlerinjektionsereignisses detektiert (z. B. Einschalten der Leitung oder Erhöhen der Leitung durch eine parasitäre Vorrichtung des NMOS-Schalters MN0 der ersten Fehlerereigniserfassungsschaltung 320 oder Einschalten der Leitung oder Erhöhen der Leitung durch eine parasitäre Vorrichtung des PMOS-Schalters MP1 der zweiten Fehlerereigniserfassungsschaltung 322, ohne Einschränkung).
-
Bei Operation 508 aktiviert der Prozess 500 eine Zustandsangabe (z. B. erste Fehlerereignisangabe 116, zweite Fehlerereignisangabe 118, Fehlerereignisangabe 208 oder Fehlerereignisangabesignal 308 von 3, ohne Einschränkung) mindestens teilweise als Reaktion auf die Zustandsänderung an der bistabilen Vorrichtung, um ein „Fehlerinjektionsereignis detektiert“ anzugeben.
-
Bei Operation 510 setzt der Prozess 500 den Zustand der bereitgestellten bistabilen Vorrichtung zurück und deaktiviert die Fehlerereignisangabe.
-
6 ist ein Blockdiagramm einer beispielhaften Vorrichtung 600, die in verschiedenen Beispielen verwendet werden kann, um verschiedene hierin offenbarte Funktionen, Operationen, Handlungen, Prozesse und/oder Verfahren zu implementieren. Vorrichtung 600 schließt einen oder mehrere Prozessoren 602 (hierin manchmal als „Prozessoren 602“ bezeichnet) ein, die operativ mit einer oder mehreren Einrichtungen, wie Datenspeichervorrichtungen (hierin manchmal als „Speicherung 604“ bezeichnet), gekoppelt sind, ohne darauf beschränkt zu sein. Die Speicherung 604 schließt einen darauf gespeicherten (z. B. auf einem computerlesbaren Speicher gespeicherten) maschinenausführbaren Code 606 ein und die Prozessoren 602 schließen eine Logikschaltlogik 608 ein. Der maschinenausführbare Code 606 schließt Informationen ein, die Funktionselemente beschreiben, die durch die Logikschaltlogik 608 implementiert (z. B. durchgeführt) werden können. Die Logikschaltlogik 608 wird modifiziert, um die durch den maschinenausführbaren Code 606 beschriebenen Funktionselemente zu implementieren (z. B. durchzuführen). Die Vorrichtung 600 sollte beim Ausführen der durch den maschinenausführbaren Code 606 beschriebenen Funktionselemente als Spezial-Hardware betrachtet werden, die zum Ausführen von hierin offenbarten Funktionselementen konfiguriert ist. In verschiedenen Beispielen können die Prozessoren 602 konfiguriert sein, um die durch den maschinenausführbaren Code 606 beschriebenen Funktionselemente sequenziell, gleichzeitig (z. B. auf einer oder mehreren unterschiedlichen Hardwareplattformen) oder in einem oder mehreren parallelen Prozessströmen durchzuführen.
-
Bei Implementierung durch die Logikschaltlogik 608 der Prozessoren 602 ist der maschinenausführbare Code 606 konfiguriert, um die Prozessoren 602 derart anzupassen, dass sie Operationen von hierin offenbaren Beispielen durchführen. Zum Beispiel kann der maschinenausführbare Code 606 konfiguriert sein, um die Prozessoren 602 derart anzupassen, dass sie mindestens einen Teil oder die Gesamtheit des Prozesses 400 von 4 durchführen. Als ein weiteres Beispiel kann der maschinenausführbare Code 606 konfiguriert sein, um die Prozessoren 602 derart anzupassen, dass sie mindestens einen Teil oder die Gesamtheit der für den Chipabschnitt 100 von 1 und insbesondere die mit Bezug auf den Prozessor 114 erörterten Operationen durchführen.
-
Die Prozessoren 602 können einen Universalprozessor, einen Spezialprozessor, eine Zentralverarbeitungseinheit (Central Processing Unit, CPU), einen Mikrocontroller, eine programmierbare Logiksteuerung (PLC), einen Digitalsignalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC), ein feldprogrammierbares Gate-Array (FPGA) oder eine andere programmierbare Logikvorrichtung, diskrete Gate- oder Transistorlogik, diskrete Hardwarekomponenten, eine andere programmierbare Vorrichtung oder eine beliebige Kombination davon, die zum Durchführen der hierin offenbarten Funktionen ausgestaltet ist, einschließen. Ein Universalcomputer einschließlich eines Prozessors gilt als ein Spezialcomputer, während der Universalcomputer konfiguriert ist, um Rechenanweisungen (z. B. einen Softwarecode) auszuführen, die sich auf Beispiele der vorliegenden Offenbarung beziehen. Es wird darauf hingewiesen, dass ein Universalprozessor (der hierin auch als ein Host-Prozessor oder einfach als Host bezeichnet werden kann) ein Mikroprozessor sein kann, aber alternativ können die Prozessoren 602 eine(n) beliebige(n) herkömmliche(n) Prozessor, Steuerung, Mikrocontroller oder Zustandsmaschine einschließen. Die Prozessoren 602 können auch als eine Kombination von Rechenvorrichtungen, wie eine Kombination aus einem DSP und einem Mikroprozessor, eine Vielzahl von Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder eine beliebige andere derartige Konfiguration implementiert sein.
-
In einigen Beispielen schließt die Speicherung 604 eine flüchtige Datenspeicherung (z. B. Direktzugriffsspeicher (RAM)), nichtflüchtige Datenspeicherung (z. B. Flash-Speicher, ein Festplattenlaufwerk, ein Solid-State-Laufwerk, löschbaren programmierbaren Nur-Lese-Speicher (EPROM), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM) ohne Einschränkung) ein. In verschiedenen Beispielen können die Prozessoren 602 und die Speicherung 604 in einer einzelnen Vorrichtung implementiert sein (z. B. ein Halbleitervorrichtungsprodukt, ein System-on-Chip (SOC), ohne Einschränkung). In verschiedenen Beispielen können die Prozessoren 602 und die Speicherung 604 in separaten Vorrichtungen implementiert sein.
-
In verschiedenen Beispielen kann der maschinenausführbare Code 606 computerlesbare Anweisungen (z. B. Softwarecode, Firmwarecode) einschließen. Als nicht einschränkendes Beispiel können die computerlesbaren Anweisungen durch die Speicherung 604 gespeichert werden, auf diese kann durch die Prozessoren 602 direkt zugegriffen werden und diese können durch die Prozessoren 602 unter Verwendung mindestens der Logikschaltlogik 608 ausgeführt werden. Ebenfalls als nicht einschränkendes Beispiel können die computerlesbaren Anweisungen auf der Speicherung 604 gespeichert, zur Ausführung an eine Speichervorrichtung (nicht gezeigt) übertragen und unter Verwendung mindestens der Logikschaltlogik 608 durch die Prozessoren 602 ausgeführt werden. Dementsprechend schließt eine Logikschaltlogik 608 in verschiedenen Beispielen eine elektrisch konfigurierbare Logikschaltlogik ein.
-
In verschiedenen Beispielen kann der maschinenausführbare Code 606 Hardware (z. B. Schaltungsanordnung) beschreiben, die in der Logikschaltlogik 608 implementiert wird, um die Funktionselemente durchzuführen. Diese Hardware kann auf einer Vielzahl von Abstraktionsebenen beschrieben werden, von Low-Level-Transistor-Layouts bis hin zu High-Level-Beschreibungssprachen. Auf einer hohen Abstraktionsebene kann eine Hardwarebeschreibungssprache (HDL) wie eine Standard-Hardwarebeschreibungssprache (HDL) des Institute of Electrical and Electronics Engineers (IEEE) verwendet werden, ohne darauf beschränkt zu sein. Als nicht einschränkende Beispiele können Verilog oder SystemVerilog oder Hardwarebeschreibungssprachen (VHDL) mit VLSI (Very Large Scale Integration) verwendet werden.
-
HDL-Beschreibungen können nach Belieben in Beschreibungen auf einer beliebigen von zahlreichen anderen Abstraktionsebenen umgewandelt werden. Als nicht einschränkendes Beispiel kann eine Beschreibung auf hoher Ebene in eine Beschreibung auf Logikebene umgewandelt werden, wie beispielsweise eine Register-Übertragungssprache (RTL), eine Beschreibung auf Gate-Ebene (GL), eine Beschreibung auf Layout-Ebene oder eine Beschreibung auf Masken-Ebene. Als nicht einschränkendes Beispiel können Mikrooperationen, die durch Hardware-Logikschaltungen (z. B. Gates, Flip-Flops, Register, ohne Einschränkung) der Logikschaltlogik 608 durchgeführt werden sollen, in einer RTL beschrieben und dann von einem Synthese-Tool in eine GL-Beschreibung umgewandelt werden, und die GL-Beschreibung kann von einem Platzierungs- und Routing-Tool in eine Beschreibung auf Layout-Ebene umgewandelt werden, die einem physischen Layout einer integrierten Schaltung einer programmierbaren Logikvorrichtung, diskreter Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder Kombinationen davon entspricht. Dementsprechend kann in verschiedenen Beispielen ein maschinenausführbarer Code 606 eine HDL-, eine RTL-, eine GL-Beschreibung, eine Beschreibung auf Masken-Ebene, eine andere Hardwarebeschreibung oder eine beliebige Kombination davon einschließen.
-
In Beispielen, in denen der maschinenausführbare Code 606 eine Hardwarebeschreibung (auf beliebiger Abstraktionsebene) einschließt, kann ein System (nicht gezeigt, aber die Speicherung 604 einschließend) konfiguriert sein, um die durch den maschinenausführbaren Code 606 beschriebene Hardwarebeschreibung zu implementieren. Als nicht einschränkendes Beispiel können die Prozessoren 602 eine programmierbare Logikvorrichtung (z. B. ein FPGA oder eine PLC, ohne Einschränkung) einschließen, und die Logikschaltlogik 608 kann elektrisch gesteuert werden, um eine der Hardwarebeschreibung entsprechende Schaltlogik in der Logikschaltlogik 608 zu implementieren. Ebenfalls als nicht einschränkendes Beispiel kann die Logikschaltlogik 608 eine festverdrahtete Logik einschließen, die von einem Herstellungssystem (nicht gezeigt, aber die Speicherung 604 einschließend) gemäß der Hardwarebeschreibung des maschinenausführbaren Codes 606 hergestellt wird.
-
Ungeachtet dessen, ob der maschinenausführbare Code 606 computerlesbare Anweisungen oder eine Hardwarebeschreibung einschließt, wird die Logikschaltlogik 608 modifiziert, um die durch den maschinenausführbaren Code 606 beschriebenen Funktionselemente durchzuführen, wenn die Funktionselemente des maschinenausführbaren Codes 606 implementiert werden. Es sei darauf hingewiesen, dass, obwohl eine Hardwarebeschreibung Funktionselemente möglicherweise nicht direkt beschreibt, eine Hardwarebeschreibung indirekt Funktionselemente beschreibt, welche die durch die Hardwarebeschreibung beschriebenen Hardwareelemente ausführen können.
-
Als ein Beispiel kann der maschinenausführbare Code 606 konfiguriert sein, um die Prozessoren 602 oder die Logikschaltlogik 608 davon anzupassen, um zumindest einen Abschnitt oder die Gesamtheit der Operationen durchzuführen, die für den ersten Fehlerereignisdetektor 106 oder den zweiten Fehlerereignisdetektor 112 von 1; für den Fehlerereignisdetektor 200a von 2A, und insbesondere die in Bezug auf die bistabile Vorrichtung 202 und den Fehlerindikator 206 erörterten Operationen; die Fehlerereignisdetektionsschaltung 300 von 3, und insbesondere die Rücksetzschaltung 326, die erste Fehlerereigniserfassungsschaltung 320, die zweite Fehlerereigniserfassungsschaltung 322 und die bistabile Schaltung 330 erörtert wurden. Als ein weiteres nicht einschränkendes Beispiel kann der maschinenausführbare Code 606 konfiguriert sein, um die Prozessoren 602 oder die Logikschaltlogik 608 davon anzupassen, um zumindest einen Abschnitt oder die Gesamtheit der für den Prozess 500 erörterten Operationen durchzuführen.
-
Ein Durchschnittsfachmann auf dem Gebiet wird erkennen, dass mindestens ein Vorteil der offenbarten Fehlerinjektionsereignisdetektion und Chips, die dieselbe implementieren, die Flexibilität ist, die einem Designer geboten wird, eine Vielzahl geeigneter Anordnungen optional unter Nutzung von Standardzellenschaltungen zu wählen.
-
Jede Charakterisierung in dieser Beschreibung von etwas als „üblich“, „herkömmlich“, „bekannt“ oder dergleichen bedeutet nicht notwendigerweise, dass sie im Stand der Technik offenbart ist oder dass die erörterten Gesichtspunkte nach dem Stand der Technik anerkannt werden. Noch bedeutet es notwendigerweise, dass es auf dem betreffenden Gebiet weithin bekannt und wohlverstanden ist oder routinemäßig verwendet wird. Es bedeutet nur, dass es den Erfindern dieser Offenbarung bekannt ist oder von ihnen erkannt wird.
-
Wie in der vorliegenden Offenbarung verwendet, kann der Begriff „Kombination“ in Bezug auf eine Vielzahl von Elementen eine Kombination aller Elemente oder eine beliebige von verschiedenen unterschiedlichen Unterkombinationen einiger der Elemente einschließen. Zum Beispiel kann die Phrase „A, B, C, D oder Kombinationen davon“ Bezug nehmen auf eines von A, B, C oder D; die Kombination von jedem von A, B, C und D; und jede Unterkombination von A, B, C oder D, wie A, B und C; A, B und D; A, C und D; B, C und D; A und B; A und C; A und D; B und C; B und D; oder C und D.
-
Begriffe, die in der vorliegenden Offenbarung und insbesondere in den beiliegenden Ansprüchen (z. B. Hauptteilen der beiliegenden Ansprüche, ohne darauf beschränkt zu sein) verwendet werden, sind allgemein als „offene“ Begriffe gedacht (z. B. sollte der Begriff „einschließlich“ als „einschließlich, ohne darauf beschränkt zu sein“ interpretiert werden, der Begriff „aufweisend“ sollte als „mindestens aufweisend“ interpretiert werden, der Begriff „schließt ein“ sollte als „schließt ein, ohne darauf beschränkt zu sein“ interpretiert werden, ohne darauf beschränkt zu sein). Wie hierin verwendet, bedeutet der Begriff ,,jedes" einige oder eine Gesamtheit. Wie hierin verwendet, bedeutet der Begriff „alle“ eine Gesamtheit.
-
Darüber hinaus wird, wenn eine bestimmte Anzahl von einer eingeführten Anspruchsangabe beabsichtigt ist, diese Absicht ausdrücklich im Anspruch angegeben, und in Ermangelung dieser Nennung liegt keine solche Absicht vor. Als Verständnishilfe können zum Beispiel die folgenden beiliegenden Ansprüche die Verwendung der einleitenden Phrasen „mindestens eine/r/s“ und „eine/r/s oder mehrere“ zum Einführen von Anspruchsangaben enthalten. Die Verwendung solcher Formulierungen sollte jedoch nicht dahin gehend ausgelegt werden, um zu implizieren, dass die Einführung einer Anspruchsangabe durch die unbestimmten Artikel „ein“ oder „eine“ einen bestimmten Anspruch, der eine solche eingeführte Anspruchsangabe enthält, auf Beispiels beschränkt, die nur eine solche Angabe enthalten, selbst wenn derselbe Anspruch die einleitenden Phrasen „eine/r/s oder mehrere“ oder „mindestens eine/r/s“ und unbestimmte Artikel wie „ein“ und/oder „eine“ einschließt (z. B. soll „ein“ und/oder „eine“ so interpretiert werden, dass es „mindestens ein/e“ oder „ein/e oder mehrere“ bedeutet, ohne Einschränkung), gleiches gilt für die Verwendung von bestimmten Artikeln, die zur Einführung von Anspruchsangaben verwendet werden. Wie hierin verwendet, bedeutet der Begriff ,,jede/r/s" einige oder eine Gesamtheit, und der Begriff „jede/r/s und alle“ bedeutet eine Gesamtheit.
-
Auch wenn eine bestimmte Anzahl einer eingeführten Anspruchsangabe explizit angegeben wird, wird der Fachmann zusätzlich erkennen, dass eine solche Angabe dahin gehend interpretiert werden sollte, dass sie mindestens die angegebene Anzahl bedeutet (z. B. bedeutet die bloße Angabe von „zwei Angaben“ ohne andere Modifikatoren mindestens zwei Angaben oder zwei oder mehr Angaben, ohne Einschränkung). Des Weiteren soll in den Fällen, in denen eine Konvention analog zu „mindestens eine/r/s von A, B und C, ohne darauf beschränkt zu sein“ oder „eine/r/s oder mehrere von A, B und C, ohne darauf beschränkt zu sein“ verwendet wird, eine solche Konstruktion allgemein A allein, B allein, C allein, A und B zusammen, A und C zusammen, Bund C zusammen, oder A, B und C zusammen, ohne darauf beschränkt zu sein, einschließen.
-
Ferner sollte jedes disjunkte Wort oder jede disjunkte Formulierung, das bzw. die zwei oder mehr alternative Begriffe darstellt, sei es in der Beschreibung, den Ansprüchen oder den Zeichnungen, dahingehend verstanden werden, dass die Möglichkeit des Einschließens eines der Begriffe, des einen oder des anderen Begriffs oder beider Begriffe in Betracht gezogen wird. Zum Beispiel sollte die Formulierung „A oder B“ so verstanden werden, dass sie die Möglichkeiten „A“ oder „B“ oder „A und B“ einschließt.
-
Zusätzliche, nicht einschränkende Beispiele der Offenbarung schließen ein:
- Beispiel 1: einen Chipabschnitt, umfassend: einen ersten Fehlerereignisdetektor, der eine erste bistabile Vorrichtung umfasst, die als Reaktion auf ein Vorhandensein eines Fehlerinjektionsereignisses innerhalb eines ersten Umgebungsbereichs des ersten Fehlerereignisdetektors den Zustand ändert; und eine erste gefährdete digitale Schaltung, wobei sich zumindest ein Abschnitt der ersten gefährdeten digitalen Schaltung innerhalb des ersten Umgebungsbereichs befindet.
- Beispiel 2: den Chipabschnitt nach Beispiel 1, wobei der erste Fehlerereignisdetektor konfiguriert ist, um eine erste Fehlerereignisangabe mindestens teilweise als Reaktion auf einen sich ändernden Zustand der ersten bistabilen Vorrichtung zu aktivieren.
- Beispiel 3: den Chipabschnitt nach einem der Beispiele 1 und 2, umfassend einen Prozessor, wobei der Prozessor konfiguriert ist, um eine geeignete Aktion mindestens teilweise als Reaktion auf die aktivierte erste Fehlerereignisangabe vorzunehmen.
- Beispiel 4: den Chipabschnitt nach einem der Beispiele 1 bis 3, umfassend: einen zweiten Fehlerereignisdetektor, der eine zweite bistabile Vorrichtung umfasst, die als Reaktion auf ein Vorhandensein eines zweiten Fehlerinjektionsereignisses innerhalb eines zweiten Umgebungsbereichs den Zustand ändert; und eine zweite gefährdete digitale Schaltung, wobei sich zumindest ein Abschnitt der zweiten gefährdeten digitalen Schaltung innerhalb des zweiten Umgebungsbereichs befindet.
- Beispiel 5: den Chipabschnitt nach einem der Beispiele 1 bis 4, umfassend eine oder mehrere andere gefährdete digitale Schaltungen, die innerhalb des ersten Umgebungsbereichs angeordnet sind.
- Beispiel 6: den Chipabschnitt nach einem der Beispiele 1 bis 5, wobei der erste Fehlerereignisdetektor einen Fehlerereignissensor umfasst, der konfiguriert ist, um das Vorhandensein des Fehlerinjektionsereignisses innerhalb des ersten Umgebungsbereichs des ersten Fehlerereignisdetektors zu detektieren.
- Beispiel 7: den Chipabschnitt nach einem der Beispiele 1 bis 6, wobei der Fehlerereignissensor dazu ausgelegt ist, um die Zustandsänderung der ersten bistabilen Vorrichtung mindestens teilweise als Reaktion auf das detektierte Vorhandensein des Fehlerinjektionsereignisses innerhalb des ersten Umgebungsbereichs des ersten Fehlerereignisdetektors auszulösen.
- Beispiel 8: den Chipabschnitt nach einem der Beispiele 1 bis 7, wobei der Fehlerereignissensor eine Fehlerereigniserfassungsschaltung ist, die einen PMOS-Transistor einschließt, der dazu ausgelegt ist, um immer ausgeschaltet zu sein, und als ein Pull-Up-Transistor ausgelegt ist.
- Beispiel 9: den Chipabschnitt nach einem der Beispiele 1 bis 8, wobei der Fehlerereignissensor eine Fehlerereigniserfassungsschaltung ist, die einen NMOS-Transistor einschließt, der dazu ausgelegt ist, um immer ausgeschaltet zu sein, und als ein Pull-Down-Transistor ausgelegt ist.
- Beispiel 10: den Chipabschnitt nach einem der Beispiele 1 bis 9, wobei der erste Fehlerereignisdetektor eine Widerstandsschaltung umfasst, die dazu ausgelegt ist, um die Fehlerereigniserfassungsschaltung zu unterstützen, um die Zustandsänderung der ersten bistabilen Vorrichtung auszulösen.
- Beispiel 11: den Chipabschnitt nach einem der Beispiele 1 bis 10, wobei der erste Fehlerereignisdetektor zwei Fehlerereignissensoren umfasst, die jeweils konfiguriert sind, um das Vorhandensein des Fehlerinjektionsereignisses innerhalb des ersten Umgebungsbereichs des ersten Fehlerereignisdetektors zu detektieren.
- Beispiel 12: den Chipabschnitt nach einem der Beispiele 1 bis 11, wobei der erste Fehlerereignisdetektor eine Rücksetzschaltung umfasst, die dazu ausgelegt ist, um einen Betriebsmodus des ersten Fehlerereignisdetektors als Reaktion auf das Aktivieren und Deaktivieren eines Rücksetzsignals zu setzen.
- Beispiel 13: ein Verfahren, umfassend: erstes Aktivieren eines Rücksetzsignals, um einen Betriebsmodus eines Fehlerereignisdetektors auf einen Rücksetzbetriebsmodus zu setzen; Deaktivieren des Rücksetzsignals, um den Betriebsmodus des Fehlerereignisdetektors von einem Rücksetzbetriebsmodus in einen normalen Betriebsmodus zu ändern; Empfangen einer aktivierten Fehlerereignisangabe von dem Fehlerereignisdetektor; Vornehmen einer geeigneten Aktion mindestens teilweise als Reaktion auf die aktivierte Fehlerereignisangabe; und Umschalten des Rücksetzsignals, um den Fehlerereignisdetektor zurückzusetzen und die aktivierte Fehlerereignisangabe zu löschen.
- Beispiel 14: das Verfahren nach Beispiel 13, wobei das Vornehmen der geeigneten Aktion das erneute Durchführen einer oder mehrerer Operationen umfasst.
- Beispiel 15: das Verfahren nach einem der Beispiele 13 und 14, wobei das Vornehmen der geeigneten Aktion das Sperren eines Chips umfasst.
- Beispiel 16: das Verfahren nach einem der Beispiele 13 bis 15, wobei das Vornehmen der geeigneten Aktion das Auslösen eines Alarms umfasst.
- Beispiel 17: das Verfahren nach einem der Beispiele 13 bis 16, umfassend Vornehmen der geeigneten Aktion mindestens teilweise als Reaktion auf eine gefährdete digitale Schaltung in einem Umgebungsbereich des Fehlerereignisdetektors.
- Beispiel 18: ein Verfahren, umfassend: Bereitstellen einer bistabilen Vorrichtung; Bereitstellen eines Fehlerereignissensors; Auslösen einer Zustandsänderung an der bistabilen Vorrichtung mindestens teilweise als Reaktion darauf, dass der Fehlerereignissensor ein Vorhandensein eines Fehlerinjektionsereignisses detektiert; Aktivieren einer Fehlerereignisangabe mindestens teilweise als Reaktion auf die Zustandsänderung an einem internen Signal einer ersten Schaltung; und Zurücksetzen des geänderten Zustands der bistabilen Vorrichtung und Deaktivieren der Fehlerereignisangabe.
- Beispiel 19: ein Rechensystem, umfassend: einen Prozessor; und eine Speicher-Speicherung mit einem maschinenausführbaren Code darauf, der modifiziert wird, um die Logikschaltung des Prozessors dauerhaft zu konfigurieren, um Folgendes einzuschließen: einen ersten Fehlerereignisdetektor, wobei der erste Fehlerereignisdetektor eine erste bistabile Vorrichtung umfasst, die als Reaktion auf ein Vorhandensein eines Fehlerinjektionsereignisses innerhalb eines ersten Umgebungsbereichs des ersten Fehlerereignisdetektors den Zustand ändert; und eine erste gefährdete digitale Schaltung, wobei sich zumindest ein Abschnitt der ersten gefährdeten digitalen Schaltung innerhalb des ersten Umgebungsbereichs befindet.
- Beispiel 20: ein Rechensystem, umfassend: einen Prozessor; und eine Speicher-Speicherung mit einem maschinenausführbaren Code darauf, der modifiziert wird, um die Logikschaltung des Prozessors dauerhaft zu konfigurieren zum: ersten Aktivieren eines Rücksetzsignals, um einen Betriebsmodus eines Fehlerereignisdetektors auf einen Rücksetzbetriebsmodus zu setzen; Deaktivieren des Rücksetzsignals, um den Betriebsmodus des Fehlerereignisdetektors von einem Rücksetzbetriebsmodus in einen normalen Betriebsmodus zu ändern; Empfangen einer aktivierten Fehlerereignisangabe von dem Fehlerereignisdetektor; Vornehmen einer geeigneten Aktion mindestens teilweise als Reaktion auf die aktivierte Fehlerereignisangabe; und Umschalten des Rücksetzsignals, um den Fehlerereignisdetektor zurückzusetzen und die aktivierte Fehlerereignisangabe zu löschen.
- Beispiel 21: ein Rechensystem, umfassend: einen Prozessor; und eine Speicher-Speicherung mit einem maschinenausführbaren Code darauf, der modifiziert wird, um die Logikschaltung des Prozessors dauerhaft zu konfigurieren zum: Bereitstellen einer bistabilen Vorrichtung; Bereitstellen eines Fehlerereignissensors; Auslösen einer Zustandsänderung an der bistabilen Vorrichtung mindestens teilweise als Reaktion darauf, dass der Fehlerereignissensor ein Vorhandensein eines Fehlerinjektionsereignisses detektiert; Aktivieren einer Fehlerereignisangabe mindestens teilweise als Reaktion auf die Zustandsänderung an einem internen Signal einer ersten Schaltung; und Zurücksetzen des geänderten Zustands der bistabilen Vorrichtung und Deaktivieren der Fehlerereignisangabe.
- Beispiel 22: eine Einrichtung, umfassend: einen Detektor, wobei ein Signal, zu dessen Erfassen der Detektor konfiguriert ist, ein parasitärer Strom an einer CMOS-Struktur ist, der eine im Allgemeinen zunehmende Größe als Reaktion auf ein Vorhandensein eines Fehlerinjektionsereignisses aufweist.
- Beispiel 23: die Einrichtung nach Beispiel 22, umfassend: eine digitale Schaltung, die für das Vorhandensein des Fehlerinjektionsereignisses anfällig ist.
- Beispiel 24: die Einrichtung nach einem der Beispiele 22 und 23, wobei die digitale Schaltung innerhalb eines Umgebungsbereichs des Detektors angeordnet ist.
-
Die Merkmale der verschiedenen hierin beschriebenen Beispiele schließen sich nicht gegenseitig aus und können in verschiedenen Kombinationen und Umsetzungen vorliegen, selbst wenn solche Kombinationen oder Umsetzungen hierin nicht ausdrücklich beschrieben sind, ohne vom Schutzumfang der Offenbarung abzuweichen. Vielmehr werden einem Fachmann, ohne vom Schutzumfang der Offenbarung abzuweichen, Variationen, Modifikationen und andere Implementierungen des hierin beschriebenen in den Sinn kommen. Daher ist die Erfindung nicht nur durch die vorhergehende veranschaulichende Beschreibung, sondern nur durch die folgenden Ansprüche und gesetzliche Äquivalente davon zu definieren.
-
Obwohl die vorliegende Offenbarung hierin in Bezug auf bestimmte veranschaulichte Beispiele beschrieben wurde, wird der Durchschnittsfachmann auf dem Gebiet erkennen und verstehen, dass die vorliegende Erfindung nicht darauf beschränkt ist. Vielmehr können viele Ergänzungen, Weglassungen und Modifikationen an den veranschaulichten und beschriebenen Beispielen vorgenommen werden, ohne vom Schutzumfang der Erfindung, wie er nachfolgend zusammen mit ihren rechtlichen Äquivalenten beansprucht wird, abzuweichen. Darüber hinaus können Merkmale eines Beispiels mit Merkmalen eines anderen Beispiels kombiniert werden, aber dennoch noch innerhalb des Schutzumfangs der Erfindung enthalten sein, der durch den Erfinder in Betracht gezogen wird.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-