DE102004020576B4 - Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente - Google Patents

Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente Download PDF

Info

Publication number
DE102004020576B4
DE102004020576B4 DE102004020576A DE102004020576A DE102004020576B4 DE 102004020576 B4 DE102004020576 B4 DE 102004020576B4 DE 102004020576 A DE102004020576 A DE 102004020576A DE 102004020576 A DE102004020576 A DE 102004020576A DE 102004020576 B4 DE102004020576 B4 DE 102004020576B4
Authority
DE
Germany
Prior art keywords
dual
rail
signal
mode
circuit component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102004020576A
Other languages
English (en)
Other versions
DE102004020576A1 (de
Inventor
Thomas Dr. Künemund
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102004020576A priority Critical patent/DE102004020576B4/de
Priority to FR0504167A priority patent/FR2870956A1/fr
Priority to US11/115,985 priority patent/US7549068B2/en
Publication of DE102004020576A1 publication Critical patent/DE102004020576A1/de
Application granted granted Critical
Publication of DE102004020576B4 publication Critical patent/DE102004020576B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)
  • Logic Circuits (AREA)

Abstract

Datenverarbeitungsvorrichtung mit
– zumindest einer Dual-Rail-Schaltungskomponente (1; 21) und
– einer Steuereinheit (2; 22) zur Erzeugung von Ansteuersignalen für die Dual-Rail-Schaltungskomponenten (1; 21),
dadurch gekennzeichnet, dass
– die Steuereinheit (2; 22) zum Empfang eines Betriebsart-Auswahlsignals (sm) eingerichtet ist,
– in Abhängigkeit des Betriebsart-Auswahlsignals (sm) Ansteuersignale (ctrl_sm) für angeschlossene Dual-Rail-Schaltungskomponenten (1; 21) erzeugt werden und
– die Schaltungskomponenten (1; 21) in Abhängigkeit der Ansteuersignale in einem Sicherheitsmodus oder in einem Stromsparmodus betreibbar sind, wobei im Stromsparmodus Vorladebeziehungsweise Entladevorgänge nur in Schaltungsteilen durchgeführt werden, zu deren Funktion dies erforderlich ist und wobei sowohl im Stromsparmodus als auch im Sicherheitsmodus komplementäre Signale verarbeitet werden.

Description

  • Die Erfindung betrifft eine Datenverarbeitungsvorrichtung mit zumindest einer Dual-Rail-Schaltungskomponente und einer Steuereinheit zur Erzeugung von Ansteuersignalen für die Dual-Rail-Schaltungskomponenten. Außerdem betrifft die Erfindung ein Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente.
  • Bei der so genannten Dual-Rail-Schaltungstechnik handelt es sich um einen unter Sicherheitsaspekten verbesserten Aufbau von Schaltungsanordnungen, insbesondere von Datenverarbeitungsvorrichtungen. Üblicherweise sind Schaltungen in der so genannten „Single-Rail-Schaltungstechnik" ausgeführt. Dabei sind Schaltnetze mikroelektronisch so aufgebaut, dass jedes Bit der zu verarbeitenden Information physikalisch durch genau einen elektrischen Knoten dargestellt wird. Solche Schaltnetze sind verhältnismäßig unsicher gegenüber der so genannten differenziellen Stromprofilanalyse, die oft beim Versuch des Zugriffs unberechtigter Dritter auf geheime Informationen angewandt wird. Die differenzielle Stromprofilanalyse, englisch als Differential Power Analysis (DPA) bezeichnet, ist eine der wichtigsten Methoden zum Angriff auf beispielsweise Chipkarten für Sicherheitsanwendungen. Für ein gegebenes Programm beziehungsweise einen gegebenen Algorithmus werden mit statistischen Methoden gemessene Stromprofile der Chipkarte beziehungsweise deren über ein oder mehrere Takte berechnete Ladungsintegrale ausgewertet, wobei – für eine Vielzahl von Programmausführungen – aus der Korrelation von systematischer Datenvariation und jeweiligem Ladungsintegral Rückschlüsse auf die zu schützenden Informationen gezogen werden können.
  • Eine Möglichkeit, DPA-Angriffe zumindest wesentlich zu erschweren, besteht darin, Daten zwischen Teilsystemen eines integrierten Schaltkreises soweit wie möglich nur verschlüsselt auszutauschen beziehungsweise zu übertragen. Ein hierfür geeignetes Kryptosystem ist die so genannte One-Time-Pad-Verschlüsselung. Aus Zufallsfolgen gewonnene Schlüssel werden bitweise über eine XOR-Verknüpfung mit zu übertragenden Texten verknüpft. Zur Entschlüsselung wird wiederum eine XOR-Verknüpfung vorgenommen. Für das One-Time-Pad-Kryptosystem ist es wichtig, dass jede Schlüsselfolge nur einmal zum Ver- und Entschlüsseln verwendet wird, denn anderenfalls können mit statistischen Methoden Informationen über Klartexte ermittelt werden.
  • Dieses „verschlüsselte Rechnen" in Single-Rail-Schaltungstechnik erfordert jedoch einen sehr hohen Schaltungs- und dadurch Flächenaufwand, sowie einen in der Folge erhöhten Energiebedarf. Zur Vermeidung des Erfordernisses der Verschlüsselung wird die Dual-Rail-Schaltungstechnik eingesetzt. Aus dem oben zur differenziellen Stromprofilanalyse Gesagten folgt, dass die auf einem integrierten Schaltkreis vorhandenen Schaltungskomponenten gegenüber DPA-Angriffen im Idealfall so ausgelegt sein sollten, dass sie unabhängig von den zu verarbeitenden Daten immer das gleiche Stromprofil liefern. Für die Single-Rail-Implementierung ist dies jedoch nicht sicher der Fall, denn das dem zeitlichen Verlauf der Zustände einer Schaltung zugeordnete Ladungsintegral ist eine Funktion derjenigen Knoten beziehungsweise elektrischen Kapazitäten, die elektrisch umgeladen werden, weist also eine starke Abhängigkeit von den zeitlichen Änderungen der zu verarbeitenden Daten auf.
  • Bei der Dual-Rail-Schaltungstechnik wird im Gegensatz zur herkömmlichen Single-Rail-Schaltungstechnik jedes Bit durch zwei Knoten k und kq dargestellt, wobei ein übertragenes Bit einen gültigen logischen Wert aufweist, wenn k dem wahren logischen Wert b dieses Bits entspricht und kq dem negierten Wert bn = not(b).
  • Wenn also der Wert b = 1 übertragen werden soll, so geschieht dies durch eine "1" im Knoten k. Gleichzeitig wird jedoch der Wert "0" am Knoten kq übertragen, so dass insgesamt also sowohl eine "1" als auch eine "0" übertragen wird. Wenn der Wert b = 0 zu übertragen ist, erfolgt gleichzeitig eine Übertragung des Wertes "1" am Knoten kq. In beiden Fällen wird also eine "1" und eine "0" übertragen. Physikalische Aquivalenz der Knoten k und kq vorausgesetzt, ist nun mittels einer differentiellen Stromprofilanalyse nicht mehr erkennbar, ob als Datum eine "1" oder eine "0" übertragen wurde. Dies gilt jedoch nur dann, wenn tatsächlich bei jedem übertragenen Datum ein Signalwechsel stattfindet, sich also die Information "1" und die Information "0" abwechseln. Werden mehrere gleiche Daten nacheinander übertragen, verschlechtern sich die Eigenschaften bezüglich der Angreifbarkeit durch differenzielle Stromprofilanalyse.
  • Die gewünschte Invarianz der Ladungsintegrale wird nun dadurch erreicht, dass zwischen je zwei Zuständen mit gültigen logischen Werten (b,bn) = (1,0) oder (0,1) ein sogenannter Vorladezustand, im englischen auch Precharge genannt, eingefügt ist, für den sowohl k als auch kq auf dasselbe elektrische Potential geladen werden, also logisch ungültige Werte (1,1) oder (0,0) annehmen. Für den Vorlade-Zustand (1,1) könnte also eine Zustandsfolge aussehen wie folgt:
    (1, 1) → (0, 1) → (1, 1) → (1, 0) → (1, 1) → (1, 0) → (1, 1) → (0, 1) → ...
  • Für jede beliebige solcher Zeichenfolgen gilt, dass für jeden Übergang (1,1) → (b,bn) genau ein Knoten von "1" nach "0" umgeladen wird, und für alle (b,bn) → (1,1) genau ein Knoten von "0" nach "1", unabhängig vom logischen gültigen Wert b des in Frage stehenden Zustandsbits. Analoges gilt für Zustandsfolgen mit dem Vorlade-Zustand (0,0).
  • Daraus folgt, dass die diesen Zustandsfolgen entsprechenden Ladungsintegrale unabhängig von der Abfolge (b,bn) der logisch gültigen Werte sind, falls dafür Sorge getragen wird, dass die Knoten k und kq gleiche elektrische Kapazitäten aufweisen. Das Stromprofil eines so implementierten Datenpfades hängt also nicht ab von zeitlichen Variationen der zu verarbeitenden Daten und ist somit resistent gegen differentielle Stromprofilanalyse.
  • Ein Beispiel für eine Dual-Rail-Implementierung einer Schaltungskomponente ist aus der DE 102 02 726 A1 bekannt. Bei der dort vorgeschlagenen integrierten Schaltung handelt es sich um ein Register in einem Datenpfad. Die vorgeschlagene Schaltungsanordnung ist konsequent in Dual-Rail-Technik aufgebaut und bildet daher ein ladungsneutrales Register.
  • Problematisch ist bei der Ausführung von Schaltungskomponenten in Dual-Rail-Schaltungstechnik, dass ein deutlich höherer Energieumsatz auftritt.
  • In der DE 101 36 335 A1 ist ein Prozessor mit zwei Rechenwerken und einer Steuereinheit zum Ansteuern der beiden Rechenwerke beschrieben. Die Rechenwerke können wahlweise in einer komplementären datenverarbeitenden Hochsicherheitsbetriebsart oder in einer Leistungssparbetriebsart, in der eines der Rechenwerke abgeschaltet ist, betrieben werden. In der Hochsi cherheitsbetriebsart arbeiten die Rechenwerke in Precharge-Betrieb wie ein einziger Prozessor mit Dual Rail-Logik zusammen. In der Leistungssparbetriebsart ist keine besondere Sicherheit gegenüber Seitenkanalangriff gegeben, da die Daten nicht komplementär verarbeitet werden.
  • Aufgabe der Erfindung ist es, eine Datenverarbeitungsvorrichtung anzugeben, die einerseits sicher gegenüber DPA-Angriffen ist und andererseits einen geringen Energieumsatz besitzt.
  • Ausserdem soll ein Verfahren angegeben werden, durch das eine Dual-Rail-Schaltungskomponente energieffizient betreibbar ist.
  • Diese Aufgabe wird durch eine Datenverarbeitungsvorrichtung der eingangs genannten Art gelöst, die dadurch gekennzeichnet ist, dass die Steuereinheit zum Empfang eines Betriebsart-Auswahlsignals eingerichtet ist, in Abhängigkeit des Betriebsart-Auswahlsignals Ansteuersignale für angeschlossene Dual-Rail-Schaltungskomponenten erzeugt werden und die Schaltungskomponenten in Abhängigkeit der Ansteuersignale in einem Bezüglich des Verfahrens wird die Aufgabe durch ein Verfahren der eingangs genannten Art gelöst, das dadurch gekennzeichnet ist, dass die Dual-Rail-Schaltungskomponente alternativ in einem Sicherheitsmodus oder in einem Stromsparmodus betrieben wird, wobei im Stromsparmodus Vorlade- beziehungsweise Entladevorgänge nur in Schaltungsteilen durchgeführt werden, zu deren Funktion dies erforderlich und wobei sowohl im Stromsparmodus als auch im Sicherheitsmodus komplementäre Signale verarbeitet werden. Somit ist ein hoher Energieeinsatz nur dann notwendig, wenn kritische Operationen ablaufen und eine hohe Sicherheit gegenüber Angriffen erforderlich ist. Der mittlere Strombedarf sinkt dadurch erheblich, ohne dass Sicherheitseinbußen in Kauf genommen werden müssen.
  • Bei den erfindungsgemäßen Datenverarbeitungsvorrichtungen werden SPA- und DPA-sensible Schaltungskomponenten in einer erweiterten Form der Dual-Rail-Schaltungstechnik ausgeführt. In dieser erweiterten Ausführungsform können die Komponenten in verschiedenen Betriebsarten betrieben werden, nämlich in einem so genannten Sicherheitsmodus oder in einem so genannten Stromsparmodus.
  • Im Sicherheitsmodus hängt die Aktivität der Teilsysteme einer Datenverarbeitungsvorrichtung für Sicherheitsanwendungen nicht von den zu verarbeitenden Daten ab und es sind periodisch auftretende Vorlade- beziehungsweise Entladephasen vorgesehen. Vorzugsweise werden die Vorlade- beziehungsweise Entladephasen auch in Schaltungsteilen vorgesehen, für deren Funktion diese Vorlade- beziehungsweise Entladephasen nicht erforderlich sind. Demgegenüber werden im Stromsparmodus alle Teilsysteme, die für die Funktion der Datenverarbeitungsvorrichtung gerade nicht benötigt werden, inaktiv geschaltet, beispielsweise von der Taktversorgung abgetrennt. In dem inaktiven Zustand weisen die Komponenten nur einen minimalen Energieumsatz auf. Die Dual-Rail-typischen Vorlade- beziehungsweise Entladevorgänge werden nur in Schaltungsteilen durchgeführt, zu deren Funktion die Vorlade- beziehungsweise Entladephasen erforderlich sind. In den anderen Schaltungsteilen wird die zum Vor- beziehungsweise Entladen erforderliche Energie gespart.
  • In einer vorteilhaften Ausführung einer erfindungsgemäßen Datenverarbeitungsvorrichtung ist die Dual-Rail-Schaltungskomponente eine Speichervorrichtung mit einer Vorladeeinheit, die beim Lesen von Daten deaktivierbar ist.
  • In einer anderen vorteilhaften Ausgestaltung ist die Dual-Rail-Schaltungskomponente ein Datenpfadregister, das zum dynamischen Einfrieren von Registerzuständen eingerichtet ist, wobei die Steuereinheit zur Erzeugung einer Steuersignalkom bination eingerichtet ist, bei der statt des dynamischen Einfrierens ein statisches Einfrieren erfolgt.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
  • Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen näher erläutert. Es zeigt:
  • 1 ein Blockschaltbild einer erfindungsgemäßen Datenverarbeitungsvorrichtung,
  • 2 ein erstes Ausführungsbeispiel einer erfindungsgemäßen Datenverarbeitungsvorrichtung mit einem in zwei Betriebsarten betreibbaren Speicher,
  • 3 ein Diagramm mit dem zeitlichen Verlauf von Signalen der Schaltungsanordnung von 2,
  • 4 eine schematische Darstellung eines Datenpfadregisters nach dem Stand der Technik,
  • 5 eine Dual-Rail-Implementierung der Schaltungsanordnung von 4,
  • 6 ein Diagramm mit zeitlichen Signalverläufen der Schaltungsanordnung von 6 im Sicherheitsmodus und
  • 7 ein Diagramm mit zeitlichen Signalverläufen der Schaltungsanordnung von 6 im Stromsparmodus.
  • 1 zeigt ein Blockschaltbild einer erfindungsgemäßen Schaltungsanordnung. Die dargestellte Schaltungsanordnung weist eine Dual-Rail-Schaltungskomponente 1 und eine Steuereinheit 2 auf. Die Steuereinheit 1 weist eingangsseitig einen ersten Eingang 3 für ein Steuersignal ctrl_ext<p:0> und einen zweiten Eingang 4 für ein Betriebsart-Auswahlsignal sm auf. Das Steuersignal ctrl_ext<p:0> umfasst beispielsweise Takt-, Set/Reset-, Adress- und Steuersignale. Das zusätzliche Steuersignal sm am zweiten Eingang 4 zeigt an, welche Betriebsart eingestellt werden soll, also ein Sicherheitsmodus oder ein Stromsparmodus. Dazu werden Steuersignale ctrl_sm<q:0> erzeugt, die direkt an der Dual-Rail-Schaltungskomponente anliegen, wobei es sich bei dieser beispielsweise um eine Datenpfad- oder Speicherschaltung handelt. Die Steuersignale werden dabei entweder für den Betrieb im Stromsparmodus oder für den Betrieb im Sicherheitsmodus erzeugt. Bei sm = 0 werden die ctrl_sm<q:0> für den Betrieb im Stromsparmodus, bei sm = 1 für den Betrieb im Sicherheitsmodus erzeugt. Vorteilhaft ist dabei, dass für Dual-Rail-Schaltungskomponenten oft ohnehin Ansteuersignale erzeugt werden müssen. Deshalb ist im günstigsten Fall keine Änderung der Hardware-Konfiguration der Dual-Rail-Schaltungskomponente erforderlich, sondern die gewünschte Betriebsartumschaltung lässt sich durch eine geeignete Erzeugung der Ansteuersignale für die Dual-Rail-Schaltungskomponente in Abhängigkeit des Betriebsart-Auswahlsignals erreichen.
  • Zur Erzeugung der ctrl_sm<q:0> kann es dabei vorteilhaft sein, auch Rückkopplungen ctrl_fb<r:0> der mit den Steuersignalen ctrl_sm<q:0> zu steuernden Datenpfad- und/oder Speicherschaltung zu verwenden.
  • Ein erstes konkretes Ausführungsbeispiel ist in der 3 dargestellt. Herbei handelt es sich um ein "Dual-Mode-SRAM", also ein RAM, das entweder im Sicherheitsmodus oder im Strom sparmodus betrieben werden kann. Die besondere Maßnahme im Stromsparmodus besteht darin, den in der Dual-Rail-Technik mit Precharge vorzusehenden Precharge der Bitleitungen nur vor Lesezugriffen durchzuführen, da er nur in diesem Fall für die Funktion der Schaltung notwendig ist, nicht aber vor Schreibzugriffen. Demgegenüber erfolgt der Precharge im Sicherheitsmodus vor jedem Zugriff.
  • Ein solches „Dual-Mode-SRAM" ist in 2 dargestellt. Die gezeigte Schaltungsanordnung umfasst eine Steuereinheit 2, ein Master-Slave-Register 5 für einen Dateneingang 6, an dem ein Datensignal d_i anliegt, ein XOR-Gatter 7 zur Entschlüsselung empfangener Daten mit einem Schlüssel k, kn. Am Dateneingang 6 anliegende Daten werden also zunächst auf das Master-Slave-Register 5 geführt, das als Puffer dient, und sodann auf das XOR-Gatter 7 geführt. In dem Master-Slave-Register 5 wird aus dem anliegenden Datensignal d_i ein Dual-Rail-Signal erzeugt, das am XOR-Gatter an Eingängen b, bq anliegt. Der Schlüssel k, kn wird ebenfalls als Dual-Rail-Signal an Eingänge a, aq des XOR-Gatters 7 geführt. Das XOR-Gatter 7 verfügt darüber hinaus über einen Enable-Eingang enq. Das Ausgangssignal des XOR-Gatters 7 wird an Ausgängen z, zq bereitgestellt. Dem XOR-Gatter 7 ist eine Treiberschaltung 8 für Schreibzugriffe nachgeschaltet. Diese Schaltung dient hauptsächlich dazu, eine Sicherung gegen Querströme zu bilden. Der Treiberschaltung 8 ist eine schaltbare Speicherzelle 9 mit n-Kanal-Transistoren N0, N3 und N4 nachgeschaltet, die über ein Steuersignal bllen von der Steuereinheit 2 ansteuerbar ist. Die Speicherzelle 9 hat den Zweck, eine auf den Leitungen bl, blq am Ausgang der Treiberschaltung 8 liegende Information zu halten für den Fall, dass weder ein Precharge noch ein Schreib- oder Lesezugriff aktiviert sind.
  • Der Speicherzelle 9 ist eine Precharge-Einheit 10 nachgeordnet, die aus zwei p-Kanal-Transistoren P4 und P5 besteht. Die Precharge-Einheit 10 ist über ein Precharge-Steuersignal prq von der Steuereinheit 2 ansteuerbar. Der Precharge-Einheit 10 ist eine 6-Transistor-SRAM-Zelle 11 nachgeschaltet. Diese besteht aus n-Kanal-Transistoren N5 und N6 sowie Invertern IN0 und IN1. Die eine dargestellte Speicherzelle 11 steht stellvertretend für eine beliebige Anzahl von Speicherzellen, die längs des Bitleitungspaars bl, blq angeordnet sein können.
  • Die SRAM-Speicherzellen 11 und die vorgeschalteten Komponenten sind über mehrere Signale von der Steuereinheit 2 ansteuerbar. Das externe Steuersignal ctrl_ext<p:0> von 1, das am ersten Steuereingang 3 anliegt, findet in der 2 seine Entsprechung in den Signalen rst, clk, wr_i und rd_i, wobei rst ein Reset-Signal ist, clk ein Taktsignal ist und wr_i und rd_i Signale zur Aktivierung von Schreib- beziehungsweise Lesezugriffen sind. Die Steuereinheit 2 besitzt Ausgänge a_wrq, a_bllen, a_prq und a_wl, über die Signale prq, bllen, prq und wl an die SRAM-Speichereinrichtung abgebbar sind. Die genannten Signale entsprechen dem Steuersignal ctrl_sm<q:0>, das in der 1 dargestellt ist.
  • Als weitere Verbindung sind die Bitleitungen bl, blq zur Steuereinheit 2 zurückgeführt. Die dort übertragenen Signale entsprechen dem Signal ctrl_fb<r:0>, das als Rückkoppelsignal in 1 dargestellt ist.
  • Die Steuereinheit 2 ist so eingerichtet, dass in Abhängigkeit des Steuersignals sm die Signale prq, bllen, prq und wl so erzeugt werden, dass bei sm = 0 die SRAM-Speichereinrichtung 1 im Stromsparmodus arbeitet, das heisst die Precharge-Einheit 10 nur dann aktiviert ist, wenn dies für die Funktion der SRAM-Speichereinrichtung 1 notwendig ist. Bei sm = 1 wird dagegen die SRAM-Speichereinrichtung 1 so angesteuert, dass bei jedem Schreib- und Lesevorgang ein Precharge durchgeführt wird.
  • Für das Auslesen von Daten sind die Bitleitungen bl, blq mit Eingängen b, bq einer Treiberschaltung 12 verbunden, die aus dem an den Eingängen b, bq anliegenden Dual-Rail-Signal ein Ausgangssignal d_0 erzeugt, das an einem Ausgang z der Treiberschaltung 12 bereitgestellt wird. Die Treiberschaltung 12 weist in der dargestellten Ausführungsform ebenfalls ein XOR-Gatter auf, um die auszugebenden Daten verschlüsseln zu können. Für die Verschlüsselung wird der Treiberschaltung 12 an Eingängen a, aq ein Schlüssel k, kn zugeführt.
  • Die 3 zeigt den zeitlichen Ablauf der in der Schaltungsanordnung von 2 auftretenden Signale.
  • Für sm = 1 wird mit der steigenden Flanke des Taktsignals clk das Precharge-Steuersignal prq aktiviert, wenn im Takt zuvor ein Schreib- oder Lesezugriff stattgefunden. Wenn im Takt zuvor kein Schreib- oder Lesezugriff stattgefunden hat, bleibt das Precharge-Steuersignal prq aktiv. Nachdem der Precharge deaktiviert wurde, wird bei einem Schreibzugriff das zu schreibende Datum auf die Leitungen bl, blq gegeben und dann das Signal wl auf den Wortleitung a_wl aktiviert. Für Lesezugriffe wird das Signal wl sofort aktiviert.
  • Für sm = 0 ist der Stromsparmodus eingeschaltet und der Precharge wird über das Precharge-Steuersignal prq nur für Lesezugriffe im selben Taktzyklus mit der steigenden Flanke des Taktsignals clk aktiviert. Nachdem der Precharge deaktiviert wurde, werden nachfolgend die Signale auf den Wortleitungen a_wl sofort aktiviert. Im Falle eines Schreibzugriffs werden die Daten auf bl, blq geschrieben und danach die Wortleitungen a_wl aktiviert. Der hier nicht erfolgte Precharge vor dem Zugriff führt zu der gewünschten Energieeinsparung.
  • Ein zweites Ausführungsbeispiel einer erfindungsgemäßen Schaltungsanordnung gemäß den 4 bis 7 bezieht sich auf Register in Datenpfaden für Sicherheitsanwendungen. Ladungsneutrale Register sind beispielsweise aus der DE 102 02 726 A1 bekannt.
  • In jedem modernen Mikroprozessor oder -Controller treten während der schrittweisen Abarbeitung eines Algorithmus' Zustände auf, die eine vorübergehende Unterbrechung des Programmablaufs erforderlich machen. Ursache können beispielsweise noch nicht zur Verfügung stehende Instruktionen oder Daten sein. Die Unterbrechung sollte nach Möglichkeit derart erfolgen, dass die zum Zeitpunkt der Unterbrechung vorhandene Information beziehungsweise die vorhandenen Daten vollständig erhalten bleibt beziehungsweise bleiben. Die im Programmablauf erreichten Zustände – einschließlich schon berechneter Zwischenergebnisse – müssen also für jeden der aufeinanderfolgenden Schritte des Algorithmus derart "eingefroren" werden, dass der Programmablauf mit minimalem Verzug fortgesetzt werden kann, sobald die dazu erforderliche Information, nämlich die zuvor fehlende Instruktion oder das fehlende Datum, zur Verfügung steht.
  • Eine schaltungstechnische, schematische Darstellung dieses Sachverhaltes ist in 4 angegeben. Dabei ist nur ein Bit eines Datenpfades und nur ein Teilschritt (k) eines Programmablaufes dargestellt. Die den Teilschritten k = 1, 2, ... der Abarbeitung des Programms entsprechenden Zustände beziehungs weise Zwischenergebnisse zk werden entweder in arithmetischlogischen Schaltungen aus zk – 1 sowie Steuersignalen ctlk berechnet (Datensignal ak<1>) oder von benachbarten Bits des Datenpfades übernommen beziehungsweise von außen zugeführt (ak<nk:2>) und danach in jeweils zugeordnete Register-Schaltungen, die jeweils über einen Takteingang verfügen, gespeichert. Das beschriebene "Einfrieren" der den Zuständen entsprechenden Registerinhalte zk wird über eine Rückkopplung realisiert, bei welcher der Datenausgang des Registers <k> mit den vor dem Eingang der Register liegenden Multiplexer-Schaltungen verbunden ist. Jede der Multiplexer-Schaltungen verfügt dabei über einen Steuereingang, an dem ein Steuersignal selk<sk:1> anliegt.
  • Die Kombination aus dem Multiplexer und dem Register ist in 4 mit einer gestrichelten Linie umrandet. Eine konkrete Schaltungsanordnung in Dual-Rail-Schaltungstechnik mit dieser Funktionalität ist in der 5 dargestellt. Die bei jeweiligen Transistoren stehenden Bezugszeichen TP, TN bezeichnen P-Kanal-Transistoren beziehungsweise N-Kanal-Transistoren. Die Bezeichnung <1>, ... <n> bezeichnet jeweils einen Datenpfad. Der in spitzen Klammern angegebene Wert steht stellvertretend für das j-te Bit, wobei j = 1... n ist.
  • Die Schaltungsanordnung kann in einem Sicherheitsmodus oder in einem Stromsparmodus betrieben werden. Die Steuerung des aktiven Betriebsmodus erfolgt über ohnehin vorzusehende Ansteuersignale von einer Steuereinheit 22. Für welchen Betriebsmodus die Ansteuersignale erzeugt werden, hängt von dem Betriebsart-Auswahlsignal sm ab (siehe 1). Das zeitlichen Verhalten der Daten- und Steuersignale ist aus den 6 und 7 ersichtlich, wobei in der 6 das Verhalten im Sicherheitsmodus, also bei sm = 1, und in der 7 das Verhalten im Stromsparmodus bei sm = 0 gezeigt ist.
  • Die integrierte Schaltung weist Eingangsanschlüsse EA1<j>, EA2<j> auf, wobei j = 1...n ist. Für jedes Bit beziehungsweise jeden Datenpfad sind zwei Eingangsanschlüsse EA1<j>, EA2<j> vorgesehen. Am Eingangsanschluß EA1 liegt das logisch gültige Signal a<n> an, während am Eingangsanschluß EA2 das komplementäre Signal aq<j> anliegt. Die Eingangsanschlüsse EA1<j> und EA2<j> sind jeweils mit Steueranschlüssen von Transistoren TNj2, TNj1 verbunden. Zusammen mit einem Auswahltransistor TNj3, an dessen Eingangsanschluß ES<j> ein Auswahlsignal s<j> anlegbar ist, bilden diese eine Schaltungsanordnung, welche die Eingangssignale a<j>, aq<j> an erste Leitungen AL1, AL2 gibt. Die Auswahltransistoren TNj3 sind zwischen einem Bezugspotentialanschluß BP und den jeweiligen Source-Anschlüssen der Transistoren TNj1, TNj2 verschaltet. Die Ausgabe der Signale erfolgt nur dann, wenn der Transistor TNj3 leitend geschaltet ist. Da die Anordnung einen Multiplexer bildet, kann immer nur einer der n Transistoren TNj3 leitend geschaltet werden. An den übrigen Transistoren liegt ein Signal an, welches diese nicht-leitend schaltet.
  • Die ersten Leitungen beziehungsweise Ausgangsleitungen AL1, AL2 sind mit ersten Anschlüssen AA1, AA2 verbunden, an welchen das von den Eingangsanschlüssen EA1<j>, EA2<j> angelegte Eingangssignal a<j>, aq<j> abgreifbar ist. Dieses an den ersten Anschlüssen beziehungsweise den Ausgangsanschlüssen AA1, AA2 abgreifbare Dual-Rail-Signal wird mit z, zq bezeichnet.
  • Mit den ersten Anschlüssen AA1, AA2 ist eine Speicherzelle SZ1 verbunden. Die Speicherzelle SZ1 besteht aus zwei gegen einander geschalteten Invertern. Der erste Inverter wird durch die Transistoren TNz2, TPz2 gebildet. Der zweite Inverter wird durch die Transistoren TPz1, TNz1 gebildet. Die Speicherzelle SZ1 weist darüber hinaus einen Auswahltransistor TNz3 auf, an dessen Steueranschluß ein Taktsignal h anlegbar ist. Der Auswahltransistor TNz3 ist zwischen den Bezugspotenzialanschluss BP und die Inverter geschalten. Die Ausgänge der Inverter sind mit den ersten Leitungen AL1, AL2 verbunden.
  • Weist das Taktsignal h den logischen Wert 0 auf, so wird der an den ersten Leitungen AL1, AL2 anliegende Wert in die Speicherzelle SZ1 geschrieben. Wechselt das Taktsignal von logisch 0 auf logisch 1, so wird der Wert in der Speicherzelle SZ1 gehalten, da die Inverter durch den eingeschalteten Auswahltransistor TNz3 mit Bezugspotential verbunden werden.
  • In einem Sicherheitsmodus arbeitet die Schaltung mit voller Dual-Rail-Funktionalität einschließlich konsequentem Einsatz von Precharge-Zuständen. Entsprechend werden die ersten Leitungen AL1, AL2 nach einem logisch gültigen Zustand in einen Vorlade-Zustand gebracht, in dem die ersten Leitungen AL1, AL2 mit dem gleichen Potential beaufschlagt werden. In der vorliegenden integrierten Schaltung wird dies durch das Mittel VE1 bewerkstelligt, das als Vorladeeinrichtung bezeichnet werden kann. Die Vorladung der ersten und zweiten Leitung AL1, AL2 wird angestoßen, sobald das Taktsignal h seinen Wert von logisch 1 nach logisch 0 ändert. Das Mittel VE1 besteht aus zwei Transistoren TPP1, TPP2, die jeweils mit dem gleichen Steuersignal pq beaufschlagt werden. Das Steuersignal pq ist ein periodisches Signal, das in fester Kopplung zum Taktsignal h steht. Die Transistoren TPP1, TPP2 des Mittels VE1 sind zwischen einem Versorgungspotentialanschluß VP unter den ersten Leitungen AL1, AL2 verschaltet. Die ersten Leitungen AL1, AL2 nehmen somit in ihrem Vorlade-Zustand den Wert (1,1) an.
  • Eine Datenübertragungseinrichtung DE1, bestehend aus den Transistoren TP01, TP02 und dem Auswahltransistor TP03 überträgt die auf den ersten Leitungen AL1, AL2 anliegenden Signale an zweite Leitungen ZL1, ZL2. Zu diesem Zweck muß die Datenübertragungseinrichtung DE1 über den Auswahltransistor TP03 aktiv geschaltet sein. Das an dem Auswahltransistor TP03 anliegende Auswahlsignal sq läuft synchron zu dem Taktsignal h, so dass eine periodische Datenübertragung stattfindet. Die Daten werden dadurch von der ersten Speicherzelle SZ1 in eine zweite Speicherzelle SZ2 übertragen.
  • Die zweite Speicherzelle SZ2 besteht ebenfalls aus gegeneinander geschalteten Invertern. Der erste Inverter ist durch die Transistoren TPy1, TNy1 gebildet. Der zweite Inverter wird durch die Transistoren TPy2, TNy2 gebildet. Der Ausgang der Inverter ist mit den zweiten Leitungen ZL1, ZL2 verbunden.
  • Eine Zwischenspeicherung in der zweiten Speicherzelle SZ2 erfolgt nur dann, wenn diese über einen Auswahltransistor TPy3, an welchem das Taktsignal h anliegt, aktiv geschaltet ist. Der Auswahltransistor TPy3 ist vorliegend zwischen dem Versorgungspotential-Anschluß VP und den gegengeschalteten Invertern gelegen.
  • Um auch auf den zweiten Leitungen ZL1, ZL2 die erwünschte Ladungsneutralität zu erreichen, ist auch den zweiten Leitungen ZL1, ZL2 ein Mittel VE2 zum Vorladen dieser Leitungen zugeordnet, das ebenfalls als Vorladeeinrichtung bezeichnet wer den kann. Das Mittel VE2 weist die Transistoren TNP1, TNP2 auf, die jeweils mit dem gleichen Steuersignal p beaufschlagt werden. Das Mittel VE2 ist zwischen den zweiten Leitungen ZL1, ZL2 und dem Bezugspotentialanschluß BP verschaltet.
  • Wie oben bereits erläutert, treten in modernen Prozessoren während der schrittweisen Abarbeitung eines Algorithmus Zustände auf, die eine vorübergehende Unterbrechung des Programmablaufes erforderlich machen. Die zum Zeitpunkt der Unterbrechung vorhandene Information sollte dabei vollständig erhalten bleiben. Zu diesem Zweck dient die zweite Speicherzelle SZ2. Diese sorgt dafür, dass die im Programmfluß erreichten Zustände eingefroren werden können. Kann der Programmablauf fortgesetzt werden, so können die in der zweiten Speicherzelle SZ2 gespeicherten Daten über die zweite Datenübertragungseinrichtung DE2, welche zwischen dem Ausgang der zweiten Speicherzelle SZ2 und den ersten Leitungen AL1, AL2 verschaltet ist, wieder auf die ersten Anschlüsse AA1, AA2 übertragen werden.
  • Der Aufbau der zweiten Datenübertragungseinrichtung DE2 ähnelt im Prinzip dem der ersten Datenübertragungseinrichtung DE1. Ein Auswahltransistor TN03, an den ein Steuersignal s<0> anlegbar ist, ist zwischen dem Bezugspotentialanschluß BP und zwei Schaltelementen TN01, TL02 verschaltet. Die Steueranschlüsse der Transistoren TN01, TN02 sind mit den zweiten Leitungen ZL1, ZL2, verbunden. Die Drain-Anschlüsse der Transistoren TN01, TN02 weisen eine jeweilige Verbindung zu den ersten Leitungen AL1, AL2 auf.
  • Das Einfrieren des Inhalts eines Datenpfad-Registers findet folglich über eine Rückkopplung statt. Dabei wird das an den ersten Anschlüssen – den Ausgangsanschlüssen – anliegende Da tensignal grundsätzlich in einer zweiten Speicherzelle zwischengespeichert. Der in der zweiten Speicherzelle SZ2 gespeicherte Wert kann zu einem beliebigen Zeitpunkt über die zweite Datenübertragungseinrichtung DE2 an die ersten Anschlüsse rückgekoppelt werden.
  • Nachfolgend wird anhand der 6 die Funktionsweise der integrierten Schaltung im Sicherheitsmodus genauer erklärt. Der Verlauf der Daten- und Steuersignale ist in sechs Zeitintervalle ZI1 bis ZI6 unterteilt. Die Signale h (Taktsignal), pq, s<j>, s<0>, p und sq bezeichnen Steuersignale, die an jeweiligen aus 5 ersichtlichen Schaltungsblöcken angelegt werden. Die Steuersignale werden von der Steuervorrichtung 22 erzeugt. Mit a/aq<j>, z/zq und y/yq sind die an den Eingangsanschlüssen, den ersten und zweiten Anschlüssen anliegenden Datensignale bezeichnet.
  • Für das erste angegebenen Zeitintervall ZI1 gilt zunächst, dass mit h = 1 ein zuvor über einen der Multiplexer-Eingänge (EA1<j>, EA2<j>) an die ersten Anschlüsse AA1, AA2 übertragener Wert (z, zq) = (d0, d0q) = d0* durch die Speicherzelle SZ1 gehalten wird. Voraussetzung hierfür ist, dass das Steuersignal pq, das dem Mittel zum Vorladen der Ausgangsleitungen AL1, AL2 zuzuordnen ist, den logischen Wert 1 hat und alle Steuersignale s<j>, wobei j = 1, ... n, sowie s<0> den logischen Wert 0 aufweisen. Somit sind weder das Mittel zum Vorladen der Ausgangsleitungen VE1 noch die Multiplexereingänge ES<j> aktiv.
  • Zu Beginn des Zeitintervalles ZI1 werden die zweiten Leitungen ZL1, ZL2 über die zweite Vorladeeinheit VE2 (Steuersignal p = 1) auf den Wert (0,0) vorgeladen. Nachdem das Steuersignal p seinen Wert angenommen hat und gleichzeitig mit dessen fallender Flanke das Steuersignal sq den logischen Wert 0 erreicht, wird der Wert d0* über die erste Datenübertragungseinheit DE1 nach (y, yq) geschrieben. Im folgenden Zeitintervall ZI2 wird dieser Wert, der nunmehr in der zweiten Speicherzelle SZ2 abgespeichert ist, mit sq = 1, p = 0 und h = 0 gehalten.
  • Gleichzeitig werden mit dem Beginn des Zeitintervalls ZI2 die ersten Leitungen AL1, AL2 über pq = 0 auf (z, zq) = (1,1) vorgeladen. Anschließend wird mit pq = 1 und s<j> = 1 der inzwischen an den Eingangsanschlüssen EA1<j>, EA2<j> anliegende Wert d1* = (a<j>, aq<j>) = (dl, dlq), nach (z, zq) geschrieben.
  • Da die Schaltung in Dual-Rail-Technologie realisiert ist, verfügen auch die mit den Eingangsanschlüssen EA1, EA2 verbundenen Eingangsleitungen über eine Vorladeeinheit. Damit gibt es für das zeitliche Verhalten des Eingangssignales (a<j>, aq<j>) zwei mögliche Alternativen, von denen die erste im Zeitintervall ZI2 und die zweite Alternative im Zeitintervall ZI6 dargestellt ist.
  • Bevor einer der Multiplexereingänge j mit dem Steuersignal s<j> = 1 geöffnet wird, (das heißt solange s<j> = 0) werden die mit den Eingangsanschlüssen EA1, EA2 verbundenen Eingangsleitungen, die vor dem Eingang des Registers liegen (aus 5 nicht ersichtlich) auf einen Wert (0,0) vorgeladen. Die Eingangssignale (a<j>, aq<j>) erhalten den gültigen logischen Wert d1* somit entweder bevor oder nachdem der Multiplexereingang aktiviert wurde.
  • In der zweiten Alternative werden die mit den Eingangsanschlüssen EA1, EA2 verbundenen Eingangsleitungen nicht vorge laden. Die Eingangssignale (a<j>, aq<j>) müssen in dieser Variante jedoch den gültigen logischen Wert (hier d3*) stabil erreicht haben, bevor einer der Multiplexereingänge ES<j> mit s<j> = 1 geöffnet wird.
  • Das Zeitintervall ZI3 entspricht dem Zeitintervall ZI1. Solange das Taktsignal h den logischen Wert 1 aufweist, wird der Wert d1* in der ersten Speicherzelle SZ1 der Wert (z/zq) gehalten. Die zweite Speicherzelle SZ2 wird, wie oben beschrieben, mit dem Wert d1* beschrieben.
  • Das Zeitintervall ZI4 entspricht dem Zeitintervall ZI2. Solange das Taktsignal h den logischen Wert 0 aufweist, wird der Wert d1* in der zweiten Speicherzelle SZ2 gehalten, das heißt d1* = (y, yq). Da das Steuersignal sq infolge der fallenden Taktflanke h seinen logischen Wert auf 0 wechselt, werden die mit den ersten Anschlüssen AA1, AA2 verbundenen Ausgangsleitungen AL1, AL2 auf (z, zq) = (1,1) vorgeladen. Nachdem die erste Vorladeeinheit VE1 durch sq = 1 wieder inaktiv geschaltet ist, kann an die ersten Anschlüsse AA1, AA2 ein neues Signal angelegt werden.
  • Im Gegensatz zum Zeitintervall ZI2 wird nun nicht einer der Multiplexereingänge EA1, EA2 aktiv geschaltet, sondern die zweite Datenübertragungseinheit DE2 über das Auswahlsignal s<0>. Somit wird durch die Datenübertragungseinheit DE2 der Wert d1* an die Ausgangsanschlüsse AA1, AA2 übertragen, was bedeutet (z, zq) = d1*.
  • Im Zeitintervall ZI4 ist somit der Fall einer Datenrückkopplung dargestellt. Das Datum d1* ist somit eingefroren. Dies bedeutet, der zunächst im Zeitintervall ZI2 von der ersten Speicherzelle SZ1 an die zweite Speicherzelle SZ2 übertragene Wert d1* wird im Zeitintervall ZI4 wieder in die erste Speicherzelle SZ1 zurückgeschrieben. Da zwischen je zwei Schreibvorgängen von (z, zq) beziehungsweise (y, yq) die Knotenpaare, das heißt jeweilige Leitungen AL1, AL2 beziehungsweise ZL1, ZL2 auf (1,1) beziehungsweise (0,0) vorgeladen werden, sind die Ladungsintegrale nicht nur unabhängig von den Datenwechseln am Dateneingang, sondern auch unabhängig davon, ob neue Daten vom Dateneingang in die erste Speicherzelle SZ1 übernommen werden oder von der zweiten Speicherzelle SZ2 in die erste Speicherzelle SZ1 rückgekoppelt werden. Dieser Sachverhalt gilt jedoch nur für den in den Zeitintervallen ZI2 und ZI4 dargestellten Fall, dass die mit den Eingangsanschlüssen EA1<j>, EA2<j> auf den Wert (0,0) vorgeladen wurden, bevor sie ihren gültigen logischen Wert annehmen. Bei dem im Zeitintervall ZI6 dargestellten Fall ist das Ladungsintegral von den Datenwechseln von der ersten Speicherzelle SZ1 in die zweite Speicherzelle SZ2 unabhängig, nicht jedoch von Datenwechseln an den Eingangsanschlüssen EA1<j>, EA2<j>.
  • In der in 5 dargestellten Schaltungsanordnung sind die für das Datensignal (y, yq) "zuständigen" Transistor-Gruppen der zweiten Speicherzelle SZ2, der zweiten Vorladeeinrichtung VE2 und der zweiten Datenübertragungseinrichtung DE2 komplementär zu den Transistorgruppen, die das Datensignal (z, zq) betreffen. Komplementär bedeutet hierbei die Vertauschung von N- und P-Kanal-Transistoren.
  • Wenn das Steuersignal am zweiten Eingang 4 der Steuereinrichtung 22 sm = 0 ist, soll das Datenpfadregister 21 im Stromsparmodus betrieben werden. Dabei wird das oben beschriebene „dynamische Einfrieren" des Registerzustandes, das heisst das periodisch alternierende Kopieren von (z, zq) nach (y, yq) und von (y, yq) zurück nach (z, zq) ersetzt durch ein „stati sches Einfrieren" des Zustands von (z, zq). Dies wird dadurch erreicht, dass die Ansteuersignale s<j>, h, pq, sq und p mit einer vorbestimmten Signalkombination beaufschlagt werden. In dem beschriebenen Ausführungsbeispiel lautet die Signalkombination: s<j> = 0 für alle j = 0, 1..n, h = 1, pq = 1, sq = 1 und p = 0. Dadurch wird erreicht, dass bei sm = 0 weder (y, yq) beschrieben noch nach (z, zq) kopiert wird. Zu den Zeitpunkten, wenn Daten übernommen werden sollen, wird eines des s<k>, k ∊ {1, 2, .. n} aktiv. Wenn also der Zustand des Systems eingefroren werden soll, verharrt (z, zq), wie in der 7 dargestellt, in dem Zustand, der zuletzt über einen der Dateneingänge a<j>, aq<j> geschrieben wurde. Die Signalverläufe bei sm = 0 sind auch aus der 7 ersichtlich. s<0> ist im Falle des "statischen Einfrierens" immer 0, p ist immer 0 und sq ist immer 1.
  • Die erfindungsgemäße Umschaltung zwischen zwei Betriebsarten, dem Sicherheitsmodus und dem Stromsparmodus, erfolgt also in einfacher Weise dadurch, dass die Steuereinheit 22 die Ansteuersignale für das Datenpfadregister entweder so erzeugt, dass ein periodisch alternierendes Kopieren erfolgt, oder aber so erzeugt, dass kein periodisch Kopieren erfolgt. Die von außen sichtbare logische Funktionalität des Registers ist in beiden Fällen die gleiche, jedoch unterscheidet sich die Stromaufnahme der Schaltung. Während das Stromprofil der Schaltungsanordnung im Stromsparmodus abhängig von den verarbeiteten Daten ist und über differenzielle Stromprofilanalyse Rückschlüsse auf die verarbeiteten Daten gezogen werden können, lässt das Stromprofil im Sicherheitsmodus keine Rückschlüsse auf die verarbeiteten Daten zu, ist also DPA-resistent.
  • Die Erfindung wurde anhand der Anwendung auf eine SRAM-Speichereinheit und ein Datenpfadregister beschrieben. Ein weiteres Anwendungsbeispiel für die erfindungsgemäße Idee schaltbarer Ladungsneutralität sind sogenannte "Register Files". Ein Register File dient in der Regel verschiedenen Zwecken. Einerseits ist es zu dem Zwischenspeichern von Adressen und Daten vorgesehen, die für die gerade von der CPU bearbeiteten Aufgaben benötigt werden. Andererseits wird es für den schnellen, wahlfreien und gleichzeitigen Lesezugriff auf im Allgemeinen mindestens zwei Operanden vorgesehen. Auch kann es für schnelle, wahlfreie und mit Lesezugriffen gleichzeitige Schreibzugriffe eingesetzt werden. Es handelt sich dabei um so genannte Write-Back-Ports des Register Files, die zum Zurückschreiben von Ergebnissen oder Zwischenergebnissen von Rechenoperationen dienen. Um all diesen Anforderungen gerecht werden zu können, werden Register Files als so genannte Multi-Port-RAMs ausgeführt. Das sind über ihre Bitleitungs-Bündel zusammengeschaltete Register, wobei die Funktionseinheit „Register" hier als Menge von gleichartigen, so genannten Ein-Bit-Registerzellen mit den oben genannten Eigenschaften definiert ist. Die Anzahl von Bits, die in einem Register gespeichert werden können, entspricht im Allgemeinen der Bitbreite des Datenpfads. Die Anzahl der Ports entspricht der maximalen Anzahl verschiedener Zugriffe, die auf unterschiedliche Register gleichzeitig möglich sein sollen.
  • In einem Sicherheitsmodus werden Multi-Port-RAMs nach der Erfindung so betrieben, dass immer sämtliche, allen Ports zugeordnete Bitleitungspaare in jedem CPU-Taktzyklus umgeladen werden. Im Stromsparmodus finden in einem gegebenen Taktzyklus dagegen nur Umladevorgänge derjenigen Bitleitungspaare statt, die für die Funktion der CPU gerade notwendige Informationen tragen.
  • Die Anwendung der erfindungsgemäßen Betriebsartumschaltung auf andere Schaltungskomponenten liegt im Bereich des fachmännischen Ermessens.
  • 1
    Dual-Rail-Schaltungskomponente
    2
    Steuereinheit
    3
    erster Eingang
    4
    zweiter Eingang
    5
    Master-Slave-Register
    6
    Dateneingang
    7
    XOR-Gatter
    8
    Treiberschaltung für Schreibzugriffe
    9
    schaltbare Speicherzelle
    10
    Precharge-Einheit
    11
    RAM-Zelle
    12
    Ausgangstreiberschaltung
    21
    Datenpfadregister
    22
    Steuereinheit
    N0, N3, N4,
    N5, N6
    NMOS-Transistoren
    P4, P5
    PMOS-Transistoren
    IN0, IN1
    Inverter
    a, aq, b, bq
    Eingänge
    z, zq
    Ausgänge
    a_brq, a_bllen,
    a_prq, a_wl
    Steuerausgänge
    a_bl, a_blq
    Rückkopplungseingänge
    bl, blq
    Leitungen/Signal auf diesen Leitungen
    d_i
    Dateneingangssignal
    d_o
    Datenausgangssignal
    wrq, bllen,
    prq, wl
    Signale
    k, kn
    Schlüssel
    rst
    Reset-Signal
    clk
    Taktsignal
    sm
    Betriebsart-Auswahlsignal
    wr_i
    Schreibsignal
    rd_i
    Lesesignal
    VP
    Versorgungspotentialanschluß
    BP
    Bezugspotentialanschluß
    E
    Dateneingang
    EA1<j>
    Eingangsanschluß
    EA2<j>
    Eingangsanschluß
    ES<j>
    Steueranschluß
    a<j>
    Eingangssignal
    aq<j>
    Komplementäres Eingangssignal
    A
    Datenausgang
    AA1
    Anschluß
    AA2
    Anschluß
    AL1
    Leitung
    AL2
    Leitung
    z
    Ausgangssignal
    zq
    Komplementäres Ausgangssignal
    MUX
    Multiplexer
    TN11, TN12, TNn1, TNn2
    Transistoren
    TN13, TNn3
    (Auswahl-)Transistoren
    s<j>
    Auswahlsignal
    SZ1
    Speicherzelle
    TPz1, TPz2,
    TNz1, TNz2
    Transistoren
    TNz3
    (Auswahl-)Transistor
    h
    Auswahlsignal
    ZA1
    Anschluß
    ZA2
    Anschluß
    ZL1
    Leitung
    ZL2
    Leitung
    y
    Ausgangssignal
    yq
    Komplementäres Ausgangssignal
    SZ2
    Speicherzelle
    TPy1, TPy2, TNy1, TNy2
    Transistoren
    TNy3
    (Auswahl-)Transistor
    h
    Auswahlsignal
    VE1
    Vorladeeinheit
    TPp1, TPp2
    Transistoren
    pq
    Auswahlsignal
    VE2
    Vorladeeinheit
    TNp1, TNp2
    Transistoren
    p
    Auswahlsignal
    DE1
    Datenübertragungseinrichtung
    TP01, TP02
    Transistoren
    TP03
    (Auswahl-)Transistor
    sq
    Auswahlsignal
    DE2
    Datenübertragungseinrichtung
    TN01, TN02
    Transistoren
    TN03
    (Auswahl-)Transistor
    s<0>
    Auswahlsignal

Claims (8)

  1. Datenverarbeitungsvorrichtung mit – zumindest einer Dual-Rail-Schaltungskomponente (1; 21) und – einer Steuereinheit (2; 22) zur Erzeugung von Ansteuersignalen für die Dual-Rail-Schaltungskomponenten (1; 21), dadurch gekennzeichnet, dass – die Steuereinheit (2; 22) zum Empfang eines Betriebsart-Auswahlsignals (sm) eingerichtet ist, – in Abhängigkeit des Betriebsart-Auswahlsignals (sm) Ansteuersignale (ctrl_sm) für angeschlossene Dual-Rail-Schaltungskomponenten (1; 21) erzeugt werden und – die Schaltungskomponenten (1; 21) in Abhängigkeit der Ansteuersignale in einem Sicherheitsmodus oder in einem Stromsparmodus betreibbar sind, wobei im Stromsparmodus Vorladebeziehungsweise Entladevorgänge nur in Schaltungsteilen durchgeführt werden, zu deren Funktion dies erforderlich ist und wobei sowohl im Stromsparmodus als auch im Sicherheitsmodus komplementäre Signale verarbeitet werden.
  2. Datenverarbeitungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass in dem Stromsparmodus und in dem Sicherheitsmodus die gleiche Funktionalität der Dual-Rail-Schaltungskomponente (1; 21) gegeben ist.
  3. Datenverarbeitungsvorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Dual-Rail-Schaltungskomponente eine Speichervorrichtung (1) mit einer vorgeschalteten Precharge-Einheit (10) ist, die beim Lesen von Daten durch ein Precharge-Steuersignal (prq) deaktivierbar ist.
  4. Datenverarbeitungsvorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Dual-Rail-Schaltungskomponente ein Datenpfadregister (21) ist, das zum dynamischen Einfrieren von Registerzuständen eingerichtet ist, wobei die Steuereinheit (22) zur Erzeugung einer Steuersignalkombination eingerichtet ist, bei der im Stromsparmodus statt des dynamischen Einfrierens ein statisches Einfrieren erfolgt.
  5. Datenverarbeitungsvorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass das dynamische Einfrieren durch ein periodisches, alternierendes Kopieren von Signalzuständen zwischen zwei Speicherzellen (SZ1, SZ2) erfolgt und bei dem statischen Einfrieren das periodische alternierenden Kopieren zwischen den Speicherzellen verhindert ist.
  6. Verwendung der Datenverarbeitungsvorrichtung nach einem der Ansprüche 1 bis 5 in einer Chipkarte.
  7. Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente (1; 21), dadurch gekennzeichnet, dass die Dual-Rail-Schaltungskomponente (1; 21) alternativ in einem Sicherheitsmodus oder in einem Stromsparmodus betrieben wird, wobei im Stromsparmodus Vorlade- beziehungsweise Entladevorgänge nur in Schaltungsteilen durchgeführt werden, zu deren Funktion dies erforderlich und wobei sowohl im Stromsparmodus als auch im Sicherheitsmodus komplementäre Signale verarbeitet werden.
  8. Verfahren nach Anspruch 7, wobei die Dual-Rail-Schaltungskomponente (1) mit Ansteuersignalen angesteuert wird, bei dem: – in einem Sicherheitsmodus Ansteuersignale (ctrl_sm) zugeführt werden, durch die bei Dual-Rail-Signalen (bl, blq) innerhalb der Dual-Rail-Schaltungskomponente zwischen gültigen Dual-Rail-Signalzuständen Precharge-Zustände eingefügt werden, und – in einem Stromsparmodus Ansteuersignale (ctrl_sm) zugeführt werden, durch die bei Dual-Rail-Signalen (bl, blq) innerhalb der Dual-Rail-Schaltungskomponente zwischen gültigen Dual-Rail-Signalzuständen nur dann Precharge-Zustände eingefügt werden, wenn dies für die Funktion der mit dem Dual-Rail-Signal (bl, blq) beaufschlagten Komponente (11) erforderlich ist.
DE102004020576A 2004-04-27 2004-04-27 Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente Expired - Fee Related DE102004020576B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102004020576A DE102004020576B4 (de) 2004-04-27 2004-04-27 Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente
FR0504167A FR2870956A1 (fr) 2004-04-27 2005-04-26 Dispositif de traitement de donnees a neutralite de charge commutable et procede pour faire fonctionner un composant de circuit a dual-rail
US11/115,985 US7549068B2 (en) 2004-04-27 2005-04-27 Data processing apparatus and method for operating a dual rail circuit component in a security mode and power saving mode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004020576A DE102004020576B4 (de) 2004-04-27 2004-04-27 Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente

Publications (2)

Publication Number Publication Date
DE102004020576A1 DE102004020576A1 (de) 2005-11-24
DE102004020576B4 true DE102004020576B4 (de) 2007-03-15

Family

ID=35137986

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004020576A Expired - Fee Related DE102004020576B4 (de) 2004-04-27 2004-04-27 Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente

Country Status (3)

Country Link
US (1) US7549068B2 (de)
DE (1) DE102004020576B4 (de)
FR (1) FR2870956A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2880217A1 (fr) * 2004-11-03 2006-06-30 Infineon Technologies Ag Montage a mode de securite et a mode d'economie d'energie.
FR2928060B1 (fr) * 2008-02-25 2010-07-30 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Procede de test de circuits de cryptographie, circuit de cryptographie securise apte a etre teste, et procede de cablage d'un tel circuit.
WO2010011399A2 (en) * 2008-05-14 2010-01-28 Arizona Board Of Regents For And On Behalf Of Arizona State University Methods and circuits for thwarting semi-invasive and non-invasive integrated circuit security attacks
US8539596B2 (en) 2008-06-24 2013-09-17 Cisco Technology Inc. Security within integrated circuits
FR2935059B1 (fr) * 2008-08-12 2012-05-11 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede
US8881295B2 (en) * 2010-09-28 2014-11-04 Alcatel Lucent Garbled circuit generation in a leakage-resilient manner
GB201518910D0 (en) 2015-10-26 2015-12-09 Rieke Packaging Systems Ltd Dispensers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10136335A1 (de) * 2001-07-26 2003-02-13 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken
DE10202726A1 (de) * 2002-01-24 2003-08-07 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betrieb der integrierten Schaltung

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8428069B2 (en) * 1998-08-19 2013-04-23 Wayne Richard Howe Stealth packet switching
DE19850721A1 (de) * 1998-11-03 2000-05-18 Koninkl Philips Electronics Nv Datenträger mit Verschleierung des Stromverbrauchs
US6419159B1 (en) * 1999-06-14 2002-07-16 Microsoft Corporation Integrated circuit device with power analysis protection circuitry
ATE364272T1 (de) * 1999-11-03 2007-06-15 Infineon Technologies Ag Kodiervorrichtung
GB2365153A (en) * 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state
DE10004110B4 (de) * 2000-01-31 2005-12-08 Infineon Technologies Ag Verfahren und Schaltungsanordnung zur Lese/Schreibsteuerung eines synchronen Speichers
US6549042B2 (en) * 2000-06-23 2003-04-15 Integrated Device Technology, Inc. Complementary data line driver circuits with conditional charge recycling capability that may be used in random access and content addressable memory devices and method of operating same
DE10044837C1 (de) * 2000-09-11 2001-09-13 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Detektieren eines unerwünschten Angriffs auf eine integrierte Schaltung
US6687830B2 (en) * 2001-01-23 2004-02-03 Winbond Electronics Corp. Energy-saving control interface and method for power-on identification
US6437623B1 (en) * 2001-02-13 2002-08-20 International Business Machines Corporation Data retention registers
JP3539940B2 (ja) * 2001-07-30 2004-07-07 沖電気工業株式会社 電圧レギュレータ
US7242773B2 (en) * 2002-09-09 2007-07-10 Sony Corporation Multiple partial encryption using retuning
DE10217375B4 (de) * 2002-04-18 2006-08-24 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Erzeugung eines Dual-Rail-Signals
JP4022453B2 (ja) * 2002-08-22 2007-12-19 Necエレクトロニクス株式会社 ラッチ回路
US7415109B2 (en) * 2002-08-23 2008-08-19 Qualcomm Incorporated Partial encryption and full authentication of message blocks
DE10244738B3 (de) * 2002-09-25 2004-03-04 Infineon Technologies Ag Vorrichtung und Verfahren zum Umsetzen und Addierer
JP2004318927A (ja) * 2003-04-11 2004-11-11 Sony Corp デジタルデータの保存方法および記録媒体
WO2004095366A1 (en) * 2003-04-22 2004-11-04 Koninklijke Philips Electronics N.V. Electronic circuit device for cryptographic applications
FR2880217A1 (fr) * 2004-11-03 2006-06-30 Infineon Technologies Ag Montage a mode de securite et a mode d'economie d'energie.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10136335A1 (de) * 2001-07-26 2003-02-13 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken
DE10202726A1 (de) * 2002-01-24 2003-08-07 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betrieb der integrierten Schaltung

Also Published As

Publication number Publication date
US20050241005A1 (en) 2005-10-27
US7549068B2 (en) 2009-06-16
FR2870956A1 (fr) 2005-12-02
DE102004020576A1 (de) 2005-11-24

Similar Documents

Publication Publication Date Title
DE10345385B4 (de) Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
DE102017102037A1 (de) Physisch unklonbare funktionsschaltung
DE102007009526A1 (de) Vorrichtung zum Speichern eines binären Zustandes
DE102004020576B4 (de) Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente
DE102016120009A1 (de) Digitalschaltung und verfahren zum herstellen einer digitalschaltung
DE102012111414B4 (de) Master-Slave-Speicherschaltung
EP1677185B1 (de) Vorrichtung und Verfahren zum Umsetzen und Addiererschaltung
DE10202726B4 (de) Integrierte Schaltung und Verfahren zum Betrieb der integrierten Schaltung
DE10344647B3 (de) Schaltungsanordnung und Verfahren zur Verarbeitung eines Dual-Rail-Signals
DE102009017773B4 (de) Speicher zum Speichern eines binären Zustands
DE10224742A1 (de) Datenverarbeitungsschaltung und Verfahren zum Übertragen von Daten
DE10227618B4 (de) Logikschaltung
DE10217375B4 (de) Schaltungsanordnung und Verfahren zur Erzeugung eines Dual-Rail-Signals
DE10202725B4 (de) Integrierte Schaltung und Schaltungsanordnung zur Umwandlung eines Single-Rail-Signals in ein Dual-Rail-Signal
DE102004063898B4 (de) Übertragungsvorrichtung
DE102005037355B3 (de) Schaltung und Verfahren zum Berechnen einer logischen Verknüpfung zweier Eingangsoperanden
DE10324049B4 (de) Integrierte Schaltung und Verfahren zum Betreiben der integrierten Schaltung
DE10347301A1 (de) Schaltung mit einem Bus mit mehreren Empfängern
DE102004001235B4 (de) Übertragungsvorrichtung
DE102004013484B3 (de) Rechenwerk
DE102015116049B3 (de) Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
DE102004053127B4 (de) Schaltungsanordnung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungsanordnung
DE102009018075A1 (de) Verfahren und Vorrichtung zum Betreiben von maskierbaren Speicherzellen
DE60304470T2 (de) Fifo-register
DE102005001484A1 (de) Schaltungsanordnung zur Verarbeitung eines Dual-Rail-Signals

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee