DE102009017773A1 - Speicher zum Speichern eines binären Zustands - Google Patents

Speicher zum Speichern eines binären Zustands Download PDF

Info

Publication number
DE102009017773A1
DE102009017773A1 DE102009017773A DE102009017773A DE102009017773A1 DE 102009017773 A1 DE102009017773 A1 DE 102009017773A1 DE 102009017773 A DE102009017773 A DE 102009017773A DE 102009017773 A DE102009017773 A DE 102009017773A DE 102009017773 A1 DE102009017773 A1 DE 102009017773A1
Authority
DE
Germany
Prior art keywords
binary
value
write
read
mask
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.)
Granted
Application number
DE102009017773A
Other languages
English (en)
Other versions
DE102009017773B4 (de
Inventor
Thomas 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
Publication of DE102009017773A1 publication Critical patent/DE102009017773A1/de
Application granted granted Critical
Publication of DE102009017773B4 publication Critical patent/DE102009017773B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/412Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)

Abstract

Eine Speicherzelle zum Speichern eines binären Zustands, wobei die Speicherzelle zum Speichern eines binären Zustands basierend auf einer Schreibindikation und einem binären Schreibmaskierungswert, und zum Speichern eines komplementären, binären Zustands basierend auf der Schreibindikation und einem komplementären, binären Schreibmaskierungswert angepasst ist.

Description

  • Die Erfindung bezieht sich auf eine Vorrichtung zum Speichern eines binären Zustands, wie er auf dem Gebiet von Speichereinrichtungen z. B. für Sicherheitsanwendungen auftreten kann.
  • Computersysteme können Verarbeitungseinheiten verwenden, wie z. B. Mikroprozessoren oder Mikrosteuerungen, die häufig CPUs genannt werden (CPU = central processing unit = zentrale Verarbeitungseinheit). Eine solche Einheit kann in einem Datenweg angeordnet sein, mit dem eine Anzahl von Funktionseinheiten eines Systems verbunden sein kann, um eine Datenverarbeitung zu ermöglichen. Ein vorteilhaftes Konzept ist es, Datenbusse zu verwenden, d. h. definierte Sätze aus Verbindungsleitungen, um funktionale Entitäten zu verbinden, z. B. Multiplexer, ALUs (arithmetic logic unit; Rechenwerke), Verschiebeeinrichtungen (Shifter) und Registerdateien.
  • Um ein Beispiel zu geben, wird nachfolgend eine Registerdatei beleuchtet. Eine Registerdatei dient als ein Zwischenspeicher oder eine Speichervorrichtung für Adressdaten und Nutzdaten, die an einer aktuell ausgeführten Operation z. B. von einer CPU teilnehmen. Eine Registerdatei kann hiermit auch als ein Zwischenablagenspeicher betrachtet werden. Eine Registerdatei kann einen schnellen, zufälligen und gleichzeitigen Zugriff auf Daten z. B. für zwei ALU-Operanden ermöglichen. Das Zugreifen auf die Daten kann sich auf Lese- als auch auf Schreiboperationen beziehen, wo ferner gleichzeitige Lese- und Schreiboperationen ausgeführt werden können.
  • Registerdateien können so genannte Zurückschreibeports bereitstellen, die z. B. dazu dienen können, Zwischenergebnisse von ALU-Verarbeitungsoperationen zurückzuschreiben. Ferner können Registerdateien zum Laden oder Herausbewegen von Adress- oder Nutzdaten aus der Registerdatei dienen, wobei die Lese/Schreib-Ports auch zum Kommunizieren mit anderen Komponenten eines Systems außerhalb des CPU-Datenwegs dienen können.
  • Um Energieverbrauch und Chipfläche zu sparen, sind Registerdateien häufig als so genannte Multiport-RAMs implementiert (RAM = random access memory; Direktzugriffsspeicher). Bei diesen Implementierungen können Sätze aus Bitleitungsverbindungen Register verbinden, wobei das Funktionseinheitsregister als ein Satz aus ähnlichen Ein-Bit-Registerzellen mit den oben angegebenen Eigenschaften definiert sein kann. Die Anzahl von Bits, die in einem Einzel-Datenwort-Register gespeichert sein kann, ist die so genannte Bandbreite des Datenwegs. Die Anzahl von Ports entspricht der maximalen Anzahl von unterschiedlichen Zugriffen, die gleichzeitig an den unterschiedlichen Registern ausgeführt werden können.
  • Die Differenzleistungsanalyse (DPA; DPA = differential power analysis) ist ein weitläufig bekanntes Verfahren zum Angreifen integrierter Schaltungen von Sicherheitsanwendungen, um vertrauliche Informationen zu bestimmen, wie z. B. Passwörter oder kryptographische Schlüssel. Für einen gegebenen Programmcode bzw. einen gegebenen Algorithmus dienen statistische Verfahren zum Messen von Leistungsprofilen bzw. Bestimmen integrierter Werte an einer sich ändernden Ladung über mehrere Taktzyklen, wobei eine Korrelation zwischen einer systematischen Datenvariation und den entsprechenden statistischen Werten einen Schluss auf die tatsächlich geschützten Informationen erlaubt.
  • Ein Konzept zur Bekämpfung einer DPA ist die so genannte Einmal-Anschlussflächen-Verschlüsselung. Um eine DPA zu verhindern oder sie zumindest schwieriger zu machen, werden Daten, die zwischen Teilsystemen einer integrierten Schaltung ausgetauscht werden, verschlüsselt. Hier wird die Einmal- Anschlussflächen-Verschlüsselung häufig aufgrund ihrer bewiesenen, hohen Sicherheit verwendet. Binär codierter Klartext m = (m1, m2, ...) wird mit Schlüsseln k = (k1, k2, ...) verschlüsselt, die aus echten Zufallssequenzen bestimmt sind (z. B. 1001 1000 1011) gemäß c = e(k,m) = (k1 ⊕ m1, k2 ⊕ m2, ...), d. h. ein Bit cj eines Schlüssel- bzw. Chiffrier-Textes c = e(m,k) wird durch eine XOR-Operation kj ⊕ mj der entsprechenden Bits des Schlüssels k und des Klartextes m bestimmt. Da k ⊕ k = 0 und 0 ⊕ k = k, ergibt sich kj ⊕ cj = mj, was die Entschlüsselung von c ist, um den Klartext bzw. unverschlüsselten Text m erneut zu bestimmen, wiederum unter Verwendung einer bitweisen XOR-Operation. Das Einmal-Kryptosystem kann jeden Verschlüsselungsschlüssel nur einmal verwenden, da ansonsten statistische Verfahren verwendet werden können, um Informationen über den Klartext zu bestimmen.
  • Ein anderes, herkömmliches Konzept ist die so genannte Dual-Rail-Implementierung (Doppelschienenimplementierung). Um eine DPA zu verhindern, werden integrierte Schaltungen auf eine Weise implementiert, dass sie dasselbe Leistungsprofil unabhängig von den verarbeiteten Daten liefern. In dem idealen Fall sind Leistungsprofile immer identisch. Für eine Single-Rail-Datenwegimplementierung (single rail; Einzelschiene) ist das Leistungsprofil nicht vorbestimmt. Daher hängt das Zeitleistungsprofil, das die Zustände der Schaltungen und die entsprechenden integrierten Ladungen darstellt, von den Knoten bzw. den elektrischen Kapazitäten ab, die ihr Potential ändern, d. h. für die Ladung übertragen wird. Daher weist das Leistungsprofil eine starke Abhängigkeit von der zeitlichen Abweichung der Nutzdaten auf.
  • Die Dual-Rail-Implementierung adressiert das Problem von variablen, ganzzahligen Ladungen unter Verwendung der sogenannten Dual-Rail-Logik. Beginnend bei der herkömmlichen Single-Rail-Logik, bei der jegliches Bit innerhalb des Daten- oder Signalwegs eine physische Darstellung von einem elektri schen Knoten k einer Schaltung aufweist, stellt die Dual-Rail-Logik jedes Bit mit zwei Knoten k und kq dar, wobei das Bit einen gültigen logischen Wert liefert, wenn k dem echten logischen Wert des Werts b des Bits entspricht und kq den komplementären Wert bq = !b darstellt.
  • Die gewünschten Invarianten der integrierten Ladungen werden erreicht durch Einbringen eines Zwischen- oder Vorladungszustands zwischen allen zwei Zuständen mit gültigen logischen Werten (b,bq) = (1,0) oder (0,1). Innerhalb des Zwischen- oder Vorladungszustands wird k sowie kq auf dasselbe Potential geladen, d. h. sie stellen logisch ungültige Werte (1,1) oder (0,0) dar. Für den Vorladungszustand (1,1) sollte eine Sequenz aus Zuständen z. B. folgende sein
    (1,1) → (0,1) → (1,1) → (1,0) → (1,1) → (1,0) → (1,1) → (0,1) → ...
  • Für jede beliebige Sequenz solcher Zustände, wenn von einem Vorladungszustand übertragen wird (1,1) → (b,bq), wird genau ein Knoten von dem Zustand 1 in den Zustand 0 geladen, und für alle Zustände (b,bq) → (1,1) wird genau ein Knoten von dem Zustand 0 in den Zustand 1 geladen, unabhängig von dem logisch gültigen Wert b des Bits. Für den Zwischenzustand oder den Vorladungszustand (0,0) kann eine ähnliche Bewertung ausgeführt werden. Folglich sind die ganzzahligen Ladungen solcher Zustandssequenzen unabhängig von der Sequenz von (b,bq) der logisch gültigen Werte, solange die Knoten k und kq ähnliche elektrische Kapazitäten aufweisen. Das Leistungsprofil des implementierten Datenwegs hängt nicht von der zeitlichen Variation bzw. Schwankung der verarbeiteten Daten ab, und ist somit DPA-resistent.
  • Andere bekannte Angriffe sind die so genannte EMA (elektromagnetische Analyse; electro magnetic analysis) und Sondierung (invasives Abhören). Wie oben erwähnt wurde, kann die Dual-Rail-Implementierung dabei helfen, wesentliche Teile der Adresse bzw. Datenwege durch Einbringen neutraler Schaltungen zu sichern, um Kurzzeitpulse auf Signalwegen zu verhindern, die durch Ausbreitungszeitdifferenzen verursacht werden, die auch Störungen bzw. Glitches genannt werden, die ein weiteres zumindest theoretisches DPA-Risiko darstellen können. Ein anderes Konzept zur Weiterentwicklung der Sicherheit kann eine sichere Verdrahtung sein, wo kritische Signalwege, wie z. B. Wortleitungen, in dem MOS-Gate-(MOS = metal Oxide semiconductor; Metalloxidhalbleiter)-Polysilizium implementiert sind, „Metall Eins” in der Verdrahtungsschicht implementiert ist, Bitleitungen in „Metall Eins” implementiert sein können etc. Eine andere Technik zur Bekämpfung von Angriffen ist das Implementieren der integrierten Schaltungen so dicht wie möglich und das Verwenden der vertikalen Verdrahtung, um eine Sondierung und EMA zu verhindern, z. B. einen Faradayschen Käfig einzurichten.
  • Andere Konzepte sind das Zerhacken (Scramble) und Verschachteln (Interleave) von Wort- oder Bitleitungen sowie das Verteilen derselben auf verschiedenen Wegen von RAM/RF-Zellen (RF = register file = Registerdatei), was die Zuordnung von Adressen und zugewiesenen Daten noch komplizierter macht. In einigen Fällen kann eine Möglichkeit von zufällig eingebrachten Bits dabei helfen, die Sequenz einer RAM/RF-Adresse zu sichern bzw. Zugriffe auf die Daten innerhalb einer RAM/RF.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Speicherzelle zum Speichern eines binären Zustands, eine Speichervorrichtung, eine Schaltung und ein Verfahren zum Schreiben eines binären Werts in eine Speicherzelle mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch eine Speicherzelle zum Speichern eines binären Zustands gemäß Anspruch 1, eine Speichervorrichtung gemäß Anspruch 8, eine Schaltung gemäß Anspruch 18 und ein Verfahren zum Verdrahten eines binären Werts mit einer Speicherzelle gemäß Anspruch 23 gelöst.
  • Gemäß einem Ausführungsbeispiel weist die vorliegende Erfindung eine Speicherzelle zum Speichern eines binären Zustands auf, wobei die Speicherzelle zum Speichern eines binären Zustands basierend auf einer Schreibindikation und einem binären Schreibmaskierungswert und zum Speichern eines komplementären, binären Zustands basierend auf der Schreibindikation und dem komplementären, binären Schreibmaskierungswerts angepasst ist.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1a ein Ausführungsbeispiel einer Speicherzelle;
  • 1b ein anderes Ausführungsbeispiel einer Speicherzelle;
  • 1c ein anderes Ausführungsbeispiel einer Speicherzelle;
  • 1d ein anderes Ausführungsbeispiel einer Speicherzelle;
  • 1e ein Ausführungsbeispiel einer Speichervorrichtung;
  • 1f ein Ausführungsbeispiel einer Schaltung;
  • 2 ein Ausführungsbeispiel einer RAM-Zelle für maskierte Daten;
  • 3a einen Registerdatei-Latch; und
  • 3b ein Ausführungsbeispiel eines Registerdatei-Latches für maskierte Daten.
  • 1a zeigt ein Ausführungsbeispiel einer Speicherzelle 100 zum Speichern eines binären Zustands, wobei die Speicherzelle 100 angepasst ist zum Speichern eines binären Zustands basierend auf einer Schreibindikation bzw. Schreibanzeige und einem binären Schreibmaskierungswerts und zum Speichern eines komplementären, binären Zustands basierend auf der Schreibindikation und einem komplementären, binären Schreibmaskierungswert.
  • 1b zeigt ein anderes Ausführungsbeispiel einer Speicherzelle 100. Bei dem Ausführungsbeispiel, das in 1b gezeigt ist, ist die Speicherzelle 100 zum Empfangen eines binären Schreibwerts angepasst, der den binären Zustand definiert, und zum Empfangen des komplementären, binären Schreibwerts, der einen komplementären, binären Zustand definiert. Ferner kann die Speicherzelle 100 bei Ausführungsbeispielen zum Empfangen des binären Schreibmaskierungswerts und eines komplementären, binären Schreibmaskierungswerts angepasst sein.
  • Ein anderes Ausführungsbeispiel einer Speicherzelle 100 ist in 1c gezeigt. Bei dem Ausführungsbeispiel, das in 1c angegeben ist, ist die Speicherzelle 100 angepasst, um einen binären Lesewert zu liefern, der den binären Zustand basierend auf einer Leseindikation und einem binären Lesemaskierungswert definiert, und um einen komplementären, binären Lesewert zu liefern, basierend auf der Leseindikation und einem komplementären, binären Lesemaskierungswert.
  • Folglich können Ausführungsbeispiele der Speicherzelle 100 gemäß 1d angepasst sein. 1d zeigt eine Speicherzelle 100, die zum Empfangen eines binären Schreibwerts, der den binären Zustand definiert, eines komplementären, binären Schreibwerts, eines binären Schreibmaskierungswerts und eines komplementären, binären Schreibmaskierungswerts angepasst ist. Ferner ist die Speicherzelle 100, die in 1d gezeigt ist, zum Liefern eines binären Lesewerts und eines komplemen tären, binären Lesewerts angepasst, um einen Lesemaskierungswert und einen komplementären Lesemaskierungswert sowie eine Leseindikation zu empfangen.
  • Die Speicherzellen 100, wie sie oben detailliert beschrieben sind, weisen einen RAM oder einen Registerdatei-Latch auf. Ferner kann bei einem Ausführungsbeispiel die Speicherzelle 100 einen Schalter aufweisen, der mit einer Maskierungsvorrichtung, einer -Schaltung oder einem -Element gekoppelt ist, z. B. einem Maskierungstransistor, wobei die Maskierungsvorrichtung, die -Schaltung oder das -Element den binären Zustand basierend auf dem binären Schreibmaskierungswert oder dem komplementären, binären Schreibmaskierungswert bestimmen, wobei der Schalter zum Koppeln des Maskierungstransistors, der Vorrichtung, der Schaltung oder des Elements mit der Speicherzelle 100 oder mit einer anderen Speicherzelle angepasst ist. Der Ausdruck Schalter bezieht sich auf jede Vorrichtung, Schaltung oder Element, das zum Koppeln und Entkoppeln der Maskierungsvorrichtung, der -Schaltung oder des -Elements, z. B. des Maskierungstransistors, mit oder von einem einer Mehrzahl von Speicherzellen angepasst ist. Bei Ausführungsbeispielen können mehrere Speicherzellen zu derselben Maskierungsvorrichtung, der – Schaltung oder dem Element gleichzeitig geschaltet sein. Nachfolgend wird bei Ausführungsbeispielen ein Maskierungstransistor betrachtet, es kann jedoch im Allgemeinen jede Maskierungsvorrichtung, -Schaltung oder -Element den Maskierungstransistor ersetzen, der bei den Ausführungsbeispielen betrachtet wird.
  • 1e zeigt ein Ausführungsbeispiel einer Speichervorrichtung 200. Die Speichervorrichtung 200 weist eine Einrichtung 210 zum Speichern eines binären Zustands, eine Einrichtung 220 zum Empfangen einer Lese/Schreib-Indikation, eine Einrichtung 230 zum Empfangen einer Schreibmaske, eine Einrichtung 240 zum Empfangen einer Lesemaske, eine Einrichtung 250 zum Empfangen eines binären Schreibwerts und eine Einrichtung 260 zum Liefern eines binären Lesewerts auf.
  • Bei Ausführungsbeispielen kann die Einrichtung 210 zum Speichern zum Speichern des binären Schreibwerts als einen binären Zustand angepasst sein, wenn die Einrichtung 220 zum Empfangen der Lese/Schreib-Indikation eine Schreibindikation empfängt und eine Einrichtung 230 zum Empfangen der Schreibmaske einen binären Schreibmaskierungswert empfängt, und zum Speichern eines komplementären, binären Werts als binären Zustand, wenn die Einrichtung 220 zum Empfangen der Lese/Schreib-Indikation eine Schreibindikation empfängt und die Einrichtung 230 zum Empfangender Schreibmaske einen komplementären, binären Schreibmaskierungswert empfängt.
  • Bei Ausführungsbeispielen kann die Einrichtung 210 zum Speichern angepasst sein zum Liefern des binären Lesewerts als binären Zustand, wenn die Einrichtung 220 zum Empfangen der Lese/Schreib-Indikation eine Leseindikation empfängt und die Einrichtung 240 zum Empfangen der Lesemaske einen binären Lesemaskierungswert empfängt, und zum Liefern eines komplementären, binären Werts als binären Zustand, wenn die Einrichtung 220 zum Empfangen der Lese/Schreib-Indikation eine Leseindikation empfängt und die Einrichtung 240 zum Empfangen der Lesemaske einen komplementären, binären Lesemaskierungswert empfängt.
  • Die Einrichtung 210 zum Speichern kann zum Speichern eines komplementären, binären Zustands angepasst sein. Die Einrichtung 230 zum Empfangen der Schreibmaske kann zum Empfangen einer komplementären Schreibmaske angepasst sein. Die Einrichtung 240 zum Empfangen der Lesemaske kann zum Empfangen einer komplementären Lesemaske angepasst sein. Die Einrichtung 250 zum Empfangen des binären Schreibwerts kann zum Empfangen eines komplementären, binären Schreibwerts angepasst sein. Die Einrichtung 260 zum Liefern des binären Lesewerts kann zum Liefern eines komplementären, binären Lesewerts angepasst sein.
  • Bei Ausführungsbeispielen kann die Einrichtung 210 zum Speichern einen Direktzugriffsspeicher oder einen Registerdatei-Latchspeicher aufweisen. Bei anderen Ausführungsbeispielen kann die Einrichtung 210 zum Speichern des binären Zustands zum Speichern einer Mehrzahl von binären Zuständen angepasst sein, die Einrichtung 230 zum Empfangen der Schreibmaske kann zum Empfangen von Schreibmasken für die Mehrzahl von binären Zuständen angepasst sein und eine Einrichtung 240 zum Empfangen der Lesemaske kann zum Empfangen von Lesemasken für die Mehrzahl von binären Zuständen angepasst sein.
  • Ferner kann die Einrichtung 210 zum Speichern eine Mehrzahl von Speicherzellen aufweisen und die Einrichtung 230 kann eine Maskierungsvorrichtung, eine -schaltung oder ein -element aufweisen, z. B. einen Maskierungstransistor, wobei die Maskierungsvorrichtung, die -schaltung oder das -element mit der Mehrzahl von Speicherzellen verbindbar sein kann. Bei Ausführungsbeispielen kann die Maskierungsvorrichtung, die -schaltung oder das -element für mehrere Speicherzellen wieder verwendet werden, wie z. B. für 2, 4 oder 8 Speicherzellen. Die Maskierungsvorrichtung, die -schaltung oder das -element kann zwischen die Speicherzellen geschaltet sein, wo ein Schalter verwendet werden kann. Der Ausdruck Schalter bezieht sich auf jede Vorrichtung, Schaltung oder Element, das zum Koppeln und Entkoppeln der Maskierungsvorrichtung, der -schaltung oder des -elements angepasst ist, z. B. des Maskierungstransistors, mit einer oder einer Mehrzahl von Speicherzellen. Bei Ausführungsbeispielen können mehrere Speicherzellen zu derselben Maskierungsvorrichtung, -schaltung oder dem -element gleichzeitig geschaltet sein. Ein Schalttransistor kann verwendet werden.
  • Bei Ausführungsbeispielen kann die Einrichtung 210 zum Speichern eine Mehrzahl von Speicherzellen aufweisen, und die Einrichtung 240 zum Empfangen der Lesemaske kann einen Maskierungstransistor aufweisen, wobei die Maskierungsvorrichtung, die -schaltung oder das -element, z. B. der Maskie rungstransistor, mit der Mehrzahl von Speicherzellen verbindbar sein kann. Bei Ausführungsbeispielen kann die Maskierungsvorrichtung, die -schaltung oder das -element zum Ausführen der Lesemaskierung für mehrere Speicherzellen wieder verwendet werden, wie z. B. für 2, 4 oder 8 Speicherzellen. Ein Schalter kann verwendet werden, um die Maskierungsvorrichtung, die -schaltung oder das -element zu den oder zwischen die Mehrzahl von Speicherzellen zu schalten. Der Ausdruck Schalter bezieht sich auf jegliche Vorrichtung, Schaltung oder Element, das angepasst ist zum Koppeln und Entkoppeln der Maskierungsvorrichtung, der -schaltung oder des -elements, z. B. des Maskierungstransistors, mit einer oder von einer oder einer Mehrzahl von Speicherzellen. Ein Schalttransistor kann verwendet werden. Bei Ausführungsbeispielen können mehrere Speicherzellen zu derselben Maskierungsvorrichtung, -schaltung oder dem -element gleichzeitig geschaltet sein.
  • 1f zeigt ein Ausführungsbeispiel einer Schaltung 270. Die Schaltung 270 weist eine Speicherzelle 275 mit einem Eingang für einen binären Wert und einem Ausgang für den binären Wert auf.
  • Die Schaltung 275 kann ferner eine erste XOR-Schaltung 280 mit einem Eingang für einen Schreibwert, einem Eingang für einen Schreibmaskierungswert und einem Ausgang aufweisen, der mit dem Eingang für den binären Wert gekoppelt ist. Ferner kann die Schaltung 275 eine zweite XOR-Schaltung 285 aufweisen mit einem Eingang, der mit dem Ausgang für den binären Wert gekoppelt ist, einem Eingang für einen Lesemaskierungswert und einem Ausgang für einen Lesewert.
  • Bei Ausführungsbeispielen kann die Schaltung 275 eine Mehrzahl von Speicherzellen aufweisen, und der Ausgang der ersten XOR-Schaltung 280 kann mit einer Mehrzahl von Eingängen von Speicherzellen verbindbar sein. Bei Ausführungsbeispielen kann der Ausgang der ersten XOR-Schaltung 280 mit 2, 4 oder 8 Eingängen unterschiedlicher Speicherzellen verbindbar sein. Ein anderer Transistor kann als ein Schalter zwischen dem Ausgang der ersten XOR-Schaltung 280 und dem Eingang der Speicherzellen dienen. Bei anderen Ausführungsbeispielen kann der Eingang der zweiten XOR-Schaltung 285 ferner mit einer Mehrzahl von Ausgängen von Speicherzellen verbunden sein. Die Schaltung 270 kann in einen Direktzugriffsspeicher oder einen Registerdatei-Latchspeicher integriert sein. Bei anderen Ausführungsbeispielen kann die Schaltung 270 auf einem Chip oder Halbleiterstück integriert sein.
  • Ausführungsbeispiele der vorliegenden Erfindung können ein Verfahren zum Schreiben eines binären Werts in eine Speicherzelle ausführen, das die Schritte des Empfangens des binären Werts, des Empfangens einer Schreibindikation, Empfangen eines Schreibmaskierungswerts, Kombinieren des binären Werts und des Schreibmaskierungswerts gemäß einer XOR-Operation, um einen maskierten, binären Wert zu erhalten, und Speichern des maskierten, binären Werts in der Speicherzelle aufweist.
  • Ausführungsbeispiele können bei Speichereinrichtungen mit direktem Zugriff auf maskierte Daten verwendet werden, bei sogenannten maskierten Direktzugriffsspeichern (mRAM; masked random access memory) oder Maskenregisterdateien (mRF; masked register file) für Sicherheitsanwendungen, d. h. mRAM/mRF sind resistent gegenüber DPA, EMA und Sondierung (invasives Abhören). Der Widerstand kann bei Ausführungsbeispielen erreicht werden durch Verwenden einer bitweisen XOR-Maskierung aller Daten mit zeitvariablen Einmal-Anschlussflächenmasken zur Datenübertragung, sowie zur Datenspeicherung unter Verwendung von statischen Kurzzeitmasken. Bei Ausführungsbeispielen können die XOR-Schaltungen in Speicherzellen integriert sein, derart, dass hohe Sicherheit mit niedrigem Energie- und Platzverbrauch kombiniert werden kann. Einige Ausführungsbeispiele können sogar eine höchstmögliche Sicherheit mit einem minimalen Energie- und Platzverbrauch ergeben.
  • Ausführungsbeispiele können in einer Registerdatei für maskierte Daten innerhalb einer CPU integriert sein, z. B. einer Chipkartensteuerung mit Hochsicherheitsanforderungen. Registerdateien für CPUs können mehrere unabhängige Lese- und/oder Schreibports verwenden. Nachfolgend werden zwei weitere, detaillierte Ausführungsbeispiele betrachtet, d. h. ein maskierter Ein-Port-RAM in 2 und eine Registerdatei mit sowohl einem Schreibport als auch einem Leseport in 3a und 3b. Im Allgemeinen sind Ausführungsbeispiele nicht auf solche Konfigurationen beschränkt und können ohne weiteres auf eine Mehrzahl von Ports oder verschiedene Typen von Speichereinrichtungen verallgemeinert werden.
  • Mehr-Port-SRAM-(SRAM = statischer RAM) Makros können als Vollkundenregisterdatei verwendet werden, z. B. in dem CPU-Kern von Sicherheits-ICs (IC = integrated circuit = integrierte Schaltung) zum Speichern maskierter Daten, wobei ein Demaskieren und/oder Neumaskieren in Peripherie-SRAM-Komponenten ausgeführt werden kann und nicht innerhalb von Speicherzellen, gemäß Ausführungsbeispielen. Andere, nicht-maskierte auf einem Latch basierende Implementierungen von Registerdateien, die z. B. Semi-Kunden-Standardzellen verwenden, finden sich in Standardmikrosteuerungen. Diese Konzepte sind insofern nachteilhaft, als sie nur einen begrenzten oder keinen Widerstand gegen DPA, EMA und Sondierung aufweisen.
  • Nachfolgend wird die Implementierung eines Ausführungsbeispiels detailliert erörtert. 2 zeigt ein Ausführungsbeispiel einer RAM-Zelle für maskierte Daten in einer 6-Transistor-SRAM-Konfiguration. In 2 sind zwei Speicherzellen gezeigt. Eine Speicherzelle in 2 weist ein Inverterpaar auf, INV3 und INV2 bzw. INV1 und INV0. Ferner zwei Paare aus Zugriffstransistoren TN3, TN2 und TN1, TN0 zusammen mit den Speicherknotenpaaren (b<j + 1>, bq<j + 1>) und (b<j>, bq<j>), wobei j = 0...M – 1 die Position einer Speicherzelle entlang eines gemeinschaftlich verwendeten Paares aus Bitleitungen (bl,blq) für M Speicherzellen bezeichnet. Die Paare aus Zugriffstransistoren TN3, TN2 und TN1, TN0 sind nicht direkt mit dem Bitleitungspaar blq und bl gekoppelt, sondern durch n-Kanal-Transistoren TN7, TN4 und TN6, TN5. Die n-Kanal-Transistoren sind mit den Knoten b<j + 1,j>, bq<j + 1,j>, bl, blq, m und mq auf eine Weise verbunden, dass für ein komplementäres b<j + 1,j> = b<j + 1,j>, blq = bl und mq = m die XOR-Funktion bl = b<j + 1,j>, blq = bq<j + 1,j> mit (m,mq) = (0,1)und bl = bq<j + 1,j>, blq = b<j + 1,j> mit (m,mq) = (1,0)realisiert wird. Folglich, während einer Schreiboperation von (bl,blq) in eine der Speicherzellen, d. h. wl<j + 1> oder wl<j> ist auf eine positive Leistungsversorgung VDD eingestellt (VDD, positive Versorgungsspannung, hier entspricht VDD einem Zustand einer logischen „1”, jedoch kann es bei anderen Ausführungsbeispielen einem Zustand einer logischen „0” entsprechen) beginnt entweder TN3, TN2 oder TN1, TN0 zu leiten, auf eine Weise, dass auf (bl,blq) die OTP-transportmaskierten (OTP = one-time-pad; Einmalanschlussfläche) mt Daten
    Figure 00140001
    neu maskiert werden während der Schreiboperation gemäß
    Figure 00140002
    und
    Figure 00140003
    zur Speicherung in der jeweiligen Speicherzelle und darin gespeichert werden nach dem Abschalten von wl<j + 1> oder wl<j>, d. h. Einstellen der Wortleitungen auf das Potential VSS (VSS, low supply voltage, Niedrigversorgungsspannung, hier entspricht VSS einem Zustand einer logischen „0”, bei anderen Ausführungsbeispielen jedoch kann es einem Zustand einer logischen „1” entsprechen).
  • In 2 sei angenommen, dass m, mq die externe XOR-Operation der OTP-Transport-Maske mt mit der Speicherungsmaske ms darstellt.
  • Auf ähnliche Weise werden beim Lesen, d. h. wl<j + 1> oder wl<j> ist auf die Leistungsversorgung VDD eingestellt, TN3, TN2 oder TN1, TN0 sind somit in den leitfähigen Zustand gesetzt, gespeicherte maskierte Daten
    Figure 00150001
    von (b<j + 1>, bq<j + 1>) oder (b<j>, bq<j>neu maskiert zu
    Figure 00150002
  • Durch eine XOR-Operation, die unter Verwendung der n-Kanal-Transistoren TN7, TN4 bzw. TN6, TN5 ausgeführt wird, gemäß
    Figure 00150003
  • Gemäß dem oben beschriebenen Ausführungsbeispiel kann eine Klartextdarstellung der Daten in allen Verarbeitungszuständen der Daten vermieden werden, d. h. beim Schreiben von Daten in eine Speicherzelle, beim Speichern oder Halten von Daten innerhalb der Speicherzelle und wenn Daten aus den Speicher zellen gelesen werden. Die Speicherzellen bei dem oben erwähnten Ausführungsbeispiel können sich auf RAM-Zellen beziehen.
  • Gespeicherte Daten, obwohl sie unter Verwendung einer Speicherungsmaske ms maskiert sein können, können empfindlicher gegenüber Angriffen sein, da sie über eine lange Zeitperiode konstant bleiben. Gemäß dem obigen Ausführungsbeispiel existieren Daten, die mit ms maskiert sind, nur innerhalb der Speicher/RAM-Zellen selbst, wobei ein wesentlicher Schutz erreicht werden kann durch ein entsprechendes Layout oder Schaltungsentwurfsoptionen, d. h. innerhalb dieser Speicherzellen. Daten, die auf den Bitleitungen bl, blq übertragen werden, können mit einer häufig variierenden OTP-Maske mt maskiert sein, was Angriffe wesentlich schwieriger macht und viel mehr Aufwand erfordert. Ausführungsbeispiele können diesen Effekt erreichen durch Integrieren der n-Kanal-Transistoren TN7, TN4 bzw. TN6, TN5, die die XOR-Funktion ausführen, in beliebigen zwei aufeinanderfolgenden RAM-Zellen. Werden Layout oder Schaltungsentwurfsoptionen berücksichtigt, kann eine solche XOR-Funktion für jegliche zwei RAM-Zellen vorteilhaft sein, wohingegen prinzipiell andere Relationen oder Layouts ebenfalls denkbar sind. Zusätzlich dazu kann sogar eine größere Anzahl von RAM-Zellen mit einem Paar aus n-Kanal-Transistoren gekoppelt sein, z. B. kann eine solche XOR-Funktion für jeweils vier RAM-Zellen implementiert sein.
  • Nachfolgend wird ein anderes Ausführungsbeispiel, das in einem Registerdatei-Latch implementiert ist, detailliert beschrieben. 3a zeigt einen Registerdatei-Latchspeicher mit zwei Speicherzellen mit getrennten Lese- und Schreibports, wobei bei diesem Beispiel ein Schreib- und ein Leseport gezeigt ist. Ausführungsbeispiele können mehrere Lese- oder Schreibports verwenden. Die Speicherzellen sind unter Verwendung von zwei Latches in einer statischen CMOS-Logik implementiert (CMOS = complementary MOS; komplementärer MOS), wo die Latches unter Verwendung von INV5, TRI1 bzw. INV4, TRI0 realisiert sind, wobei TP5, TN5 bzw. TP4, TN4 die Schreibports mit den Speicherknotenpaaren (x1,x1q) bzw. (x0,x0q) realisieren. Es wird darauf hingewiesen, dass TRI0 und TRI1 und TRI im Allgemeinen Tristate-Inverter sind, d. h. abgesehen von dem logischen 0- und 1-Zustand können sie in einen dritten Zustand betrieben werden, in dem ihre Ausgaben einen hochohmischen Zustand annehmen. Aus 3a ist ersichtlich, dass die Schreiboperation innerhalb einer Speicherzelle durch die Signale en0 und en1 aktiviert werden kann. en0 ist mit dem Gate von TN4 gekoppelt und durch den Inverter INV1 mit dem Gate von TP4. Auf ähnliche Weise ist en1 mit dem Gate von TN5 gekoppelt und durch den Inverter INV2 mit dem Gate von TP5. Der Dateneingang a ist mit dem Gate des Transistors TN1 sowie TP1 gekoppelt, die mit VDD bzw. VSS gekoppelt sind. Somit werden nach der Aktivierung von en1 und/oder en0 TRI0 bzw. TRI1 deaktiviert und die zwei Speicherzellen können den Wert der komplementären Daten a in x0q oder x1q übernehmen.
  • Wenn Daten aus einem der Latches gelesen werden, d. h. aus den Speicherknotenpaaren (x1,x1q) oder (x0,x0q), wird ein DualAndNor-Gate als Multiplexer verwendet. Das DualAndNor-Gate nimmt zwei Eingänge s0 und s1 und abhängig davon, ob (s1,s0) = (1,0) oder (s1,s0) = (0,1) wird der Wert von entweder x1 oder x0 durch den Inverter INV6 gelesen.
  • 3b zeigt ein Ausführungsbeispiel eines Registerdatei-Latchspeichers für maskierte Daten. 3b zeigt wiederum zwei Speicherzellen einer Registerdatei mit getrenntem Schreib- und Leseport, wobei bei dem Ausführungsbeispiel wiederum ein Schreib- und ein Leseport gezeigt sind. Die Figur zeigt zwei in der statischen CMOS-Logik implementierte Latches, die INV5, TRI1 bzw. INV4, TRI0 aufweisen, und die Schreibports TP5, TN5 bzw. TP4, TN4, mit den Speicherknotenpaaren (x1,x1q) bzw. (x0,x0q). Unter Verwendung der Schreibports TP5, TN5 bzw. TP4, TN4 sind die Speicherzellen nicht direkt mit dem Dateneingang a verbunden, wie in 3a gezeigt wurde, sondern durch ein weiteres CMOS-Transistornetzwerk TP3...TP0 und TN3...TNO sowie INV3 und INV0, die eine XOR-Funktion ausführen. Es wird darauf hingewiesen, dass es viele unterschiedliche Möglichkeiten gibt, XOR-Funktionen zu realisieren und/oder zu implementieren, wobei die hier erklärten Ausführungsbeispiele nicht auf einschränkende Weise betrachtet werden sollen.
  • Die Registerdatei, wie sie in 3b gezeigt ist, weist ähnliche Komponenten auf wie die, die in 3a gezeigt ist. 3b zeigt die zwei XOR-Funktionen, die sicherstellen, dass für en = 1 bzw. en0 = 1 der Wert von a ⊕ mi in den Latch geschrieben wird mit den Speicherknoten (x1,x1q) bzw. (x0,x0q).
  • An dem Dateneingang werden Daten a geliefert und stellen Klartextdaten d dar, die mit einer OTP-Transportmaske mt maskiert sind d ⊕ mt,die während der Schreiboperation neu maskiert werden sollen, d. h. mit mi = mt ⊕ ms,was das Ergebnis der OTP-Transportmaske mt XOR-verknüpft mit der Speicherungsmaske ms ist, a ⊕ mi = d ⊕ mt ⊕ mi = d ⊕ mt ⊕ mt ⊕ ms = d ⊕ ms, das tatsächlich in den Speicherzellen gespeichert ist, und mi stellt die Maske dar, die aus der externen XOR-Operation geliefert wird.
  • Das Lesen von Daten aus den Latches mit den Speicherknotenpaaren (x1,x1q) bzw. (x0,x0q) wird durch das DualAndNor-Gate ausgeführt, das als Multiplexer gemäß 3a verwendet wird. Für (s1,s0) = (1,0) bzw. (0,1) werden die Werte von x1 bzw. x0 zu dem INV6 und INV8 sowie zu den Übertragungsgates TG1 und TG0 geliefert, die ein XOR-Gate für den Datenausgang z darstellen. Somit gilt z = (s1·x1 + s0·x0) ⊕ mo.
  • Angenommen, dass x1 bzw. x0 unter Verwendung der Speicherungsmaske ms maskiert werden, d. h. d ⊕ ms, und weiter angenommen mo = mt ⊕ ms,folgt daraus, dass für (s1,s0) = (1,0) bzw. (s1,s0) = (0,1) der Datenausgang folgenden Wert annimmt z = d ⊕ mt,d. h. Daten d unter Verwendung der OTP-Transportmaske mt maskiert werden.
  • Es wird darauf hingewiesen, dass bei dem oben beschriebenen Ausführungsbeispiel Klartextdaten zu keiner Zeit und in keinem Verarbeitungszustand vorhanden sind, d. h. weder beim Schreiben von Daten, noch während der Speicherung der Daten innerhalb der Latchzellen, noch beim Auslesen der Daten. Ferner wird wiederum sichergestellt, dass Daten, die mit der Maske ms maskiert sind, die innerhalb der Latchzellen über längere Zeitintervalle gespeichert sein können, nur innerhalb der Latchzellen vorhanden sind, wo jeweilige Layout- oder Schaltungsentwurfsoptionen berücksichtigt werden, und ein zufriedenstellender Schutz erreicht werden kann. Wiederum werden Daten auf Datenprozessoren, z. B. an einem Dateneingang a, mit der häufiger variierenden OTP-Transportmaske mt maskiert, was Angriffe schwieriger macht und viel mehr Aufwand erfordert. Ausführungsbeispiele erreichen diese Wirkung durch die bereits erwähnte Integration von Invertern INV0 und INV3 sowie dadurch, dass die n-Kanal-Transistoren TP3...TP0 und TN...TN0 die XOR-Funktion für jede der zwei Latchzellen einrichten.
  • Ferner richten INV6, INV7 und INV8 sowie die Übertragungsgates TG1 und TG0 eine andere XOR-Funktion an dem Datenausgang z ein, wodurch die oben erwähnte Wirkung ermöglicht wird. Gemäß Layoutbetrachtungen scheint die Realisierung der zweiten XOR-Funktion unter Verwendung der Übertragungsgates vorteilhaft, wenn sie für zwei Latchzellen verwendet wird, obwohl möglicherweise eine Mehrzahl von Latchzellen verwendet werden kann, wie z. B. eine solche XOR-Funktion, die 4 oder 8 Latchzellen bedient. Wie bekannt ist, können XOR-Funktionen unter Verwendung mehrerer Implementierungen realisiert werden, wobei nur einige Ausführungsbeispiele hier präsentiert werden können. Im Allgemeinen sind Ausführungsbeispiele nicht auf die Optionen begrenzt, die für die oben beschriebenen Implementierungen ausgewählt wurden.

Claims (23)

  1. Speicherzelle (100) zum Speichern eines binären Zustands, wobei die Speicherzelle (100) zum Speichern eines binären Zustands basierend auf einer Schreibindikation und einem binären Schreibmaskierungswert und zum Speichern eines komplementären, binären Zustands basierend auf der Schreibindikation und einem komplementären, binären Schreibmaskierungswert angepasst ist.
  2. Speicherzelle (100) gemäß Anspruch 1, die ferner zum Empfangen eines binären Schreibwerts, der den binären Zustand definiert, und zum Empfangen eines komplementären, binären Schreibwerts, der den komplementären, binären Zustand definiert, angepasst ist.
  3. Speicherzelle (100) gemäß Anspruch 2, die ferner zum Empfangen des binären Schreibmaskierungswerts und des komplementären, binären Schreibmaskierungswerts angepasst ist.
  4. Speicherzelle (100) gemäß einem der Ansprüche 1 bis 3, die ferner zum Liefern eines binären Lesewerts, der den binären Zustand definiert, basierend auf einer Leseindikation und einem binären Lesemaskierungswert, und zum Liefern eines komplementären, binären Lesewerts basierend auf der Leseindikation und einem komplementären, binären Lesemaskierungswert angepasst ist.
  5. Speicherzelle (100) gemäß Anspruch 4, die ferner zum Empfangen eines binären Schreibwerts, der den binären Zustand definiert, eines komplementären, binären Schreibwerts, eines binären Schreibmaskierungswerts und eines komplementären, binären Schreibmaskierungswerts angepasst ist.
  6. Speicherzelle (100) gemäß einem der Ansprüche 1 bis 5, die einen Direktzugriffsspeicher oder einen Registerdatei-Latchspeicher aufweist.
  7. Speicherzelle (100) gemäß einem der Ansprüche 1 bis 6, die einen Schalter aufweist, der mit einer Maskierungsvorrichtung oder einem Maskierungstransistor gekoppelt ist, wobei der Maskierungstransistor zum Bestimmen des binären Zustands basierend auf dem binären Schreibmaskierungswert oder dem komplementären, binären Schreibmaskierungswert angepasst ist, wobei der Schalter zum Koppeln des Maskierungstransistors mit der Speicherzelle oder einer anderen Speicherzelle angepasst ist.
  8. Speichervorrichtung (200), die folgende Merkmale aufweist: eine Einrichtung (210) zum Speichern eines binären Zustands; eine Einrichtung (220) zum Empfangen einer Lese/Schreib-Indikation; eine Einrichtung (230) zum Empfangen einer Schreibmaske; eine Einrichtung (240) zum Empfangen einer Lesemaske; eine Einrichtung (250) zum Empfangen eines binären Schreibwerts; und eine Einrichtung (260) zum Liefern eines binären Lesewerts, wobei die Einrichtung zum Speichern (210) zum Speichern des binären Schreibwerts als binären Zustand angepasst ist, wenn die Einrichtung zum Empfangen (220) der Lese/Schreib-Indikation eine Schreibindikation empfängt und die Einrichtung (230) zum Empfangen der Schreibmaske einen binären Schreibmaskierungswert empfängt, und zum Speichern eines komplementären, binären Werts als binären Zustand angepasst ist, wenn die Einrichtung (220) zum Empfangen der Lese/Schreib-Indikation eine Schreibindikation empfängt und die Einrichtung (230) zum Empfangen der Schreibmaske einen komplementären, binären Schreibmaskierungswert empfängt, und wobei die Einrichtung (210) zum Speichern zum Liefern des binären Lesewerts als binären Zustand angepasst ist, wenn die Einrichtung (220) zum Empfangen der Lese/Schreib-Indikation eine Leseindikation empfängt und die Einrichtung (240) zum Empfangen der Lesemaske einen binären Lesemaskierungswert empfängt, und zum Liefern eines komplementären, binären Werts als binären Zustand angepasst ist, wenn die Einrichtung (220) zum Empfangen der Lese/Schreib-Indikation eine Leseindikation empfängt und die Einrichtung (240) zum Empfangen der Lesemaske einen komplementären, binären Lesemaskierungswert empfängt.
  9. Speichervorrichtung (200) gemäß Anspruch 8, bei der die Einrichtung (210) zum Speichern zum Speichern eines komplementären, binären Zustands angepasst ist.
  10. Speichervorrichtung (200) gemäß Anspruch 8 oder 9, bei der die Einrichtung (230) zum Empfangen der Schreibmaske zum Empfangen einer komplementären Schreibmaske angepasst ist.
  11. Speichervorrichtung (200) gemäß einem der Ansprüche 8 bis 10, bei der die Einrichtung (240) zum Empfangen der Lesemaske zum Empfangen einer komplementären Lesemaske angepasst ist.
  12. Speichervorrichtung (200) gemäß einem der Ansprüche 8 bis 11, bei der die Einrichtung (250) zum Empfangen des binären Schreibwerts zum Empfangen eines komplementären, binären Schreibwerts angepasst ist.
  13. Speichervorrichtung (200) gemäß einem der Ansprüche 8 bis 12, bei der die Einrichtung (260) zum Liefern des binären Lesewerts zum Liefern eines komplementären, binären Lesewerts angepasst ist.
  14. Speichervorrichtung (200) gemäß einem der Ansprüche 8 bis 13, bei der die Einrichtung (210) zum Speichern einen Direktzugriffsspeicher oder einen Registerdatei-Latchspeicher aufweist.
  15. Speichervorrichtung (200) gemäß einem der Ansprüche 8 bis 14, bei der die Einrichtung (210) zum Speichern des binären Zustands zum Speichern einer Mehrzahl von binären Zuständen angepasst ist, bei der die Einrichtung (230) zum Empfangen der Schreibmaske zum Empfangen von Schreibmasken für die Mehrzahl von binären Zuständen angepasst ist und die Einrichtung (240) zum Empfangen der Lesemaske zum Empfangen von Lesemasken für die Mehrzahl von binären Zuständen angepasst ist.
  16. Speichervorrichtung (200) gemäß Anspruch 15, bei der die Einrichtung (210) zum Speichern eine Mehrzahl von Speicherzellen aufweist und die Einrichtung (230) zum Empfangen der Schreibmaske eine Maskierungsvorrichtung oder einen Maskierungstransistor aufweist, wobei die Maskierungsvorrichtung oder der Maskierungstransistor mit der Mehrzahl von Speicherzellen (100) verbindbar ist.
  17. Speichervorrichtung (200) gemäß Anspruch 15 oder 16, bei der die Einrichtung (210) zum Speichern eine Mehrzahl von Speicherzellen (100) aufweist und die Einrichtung (240) zum Empfangen der Lesemaske eine Maskierungsvorrichtung oder einen Maskierungstransistor aufweist, wobei die Maskierungsvorrichtung oder der Maskierungstransistor mit der Mehrzahl von Speicherzellen (100) verbindbar ist.
  18. Schaltung (270), die folgende Merkmale aufweist: eine Speicherzelle (275) mit einem Eingang für einen binären Wert und einem Ausgang für den binären Wert; eine erste XOR-Schaltung (280) mit einem Eingang für einen Schreibwert, einem Eingang für einen Schreibmaskierungswert und einem Ausgang, der mit dem Eingang für den binären Wert gekoppelt ist; und eine zweite XOR-Schaltung (285) mit einem Eingang, der mit dem Ausgang für den binären Wert gekoppelt ist, einem Eingang für einen Lesemaskierungswert und einem Ausgang für einen Lesewert.
  19. Schaltung (270) gemäß Anspruch 18, die ferner eine Mehrzahl von Speicherzellen aufweist, wobei der Ausgang der ersten XOR-Schaltung (280) mit einer Mehrzahl von Eingängen der Speicherzellen verbindbar ist.
  20. Schaltung (270) gemäß Anspruch 19, bei der der Ausgang der ersten XOR-Schaltung (280) mit 2, 4 oder 8 Eingängen der Mehrzahl von Speicherzellen verbindbar ist.
  21. Schaltung (270) gemäß Anspruch 19 oder 20, bei der der Eingang der zweiten XOR-Schaltung mit der Mehrzahl von Ausgängen der Speicherzellen verbunden sein kann.
  22. Schaltung (270) gemäß einem der Ansprüche 18 bis 21, die in einen Direktzugriffsspeicher oder einen Registerdatei-Latchspeicher integriert ist.
  23. Verfahren zum Schreiben eines binären Werts in eine Speicherzelle, das folgende Schritte aufweist: Empfangen des binären Werts; Empfangen einer Schreibindikation; Empfangen eines Schreibmaskierungswerts; Kombinieren des binären Werts und des Schreibmaskierungswerts gemäß einer XOR-Operation, um einen maskierten, binären Wert zu erhalten; und Speichern des maskierten, binären Werts in der Speicherzelle.
DE102009017773.6A 2008-04-21 2009-04-16 Speicher zum Speichern eines binären Zustands Active DE102009017773B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/106,640 2008-04-21
US12/106,640 US7898842B2 (en) 2008-04-21 2008-04-21 Memory for storing a binary state

Publications (2)

Publication Number Publication Date
DE102009017773A1 true DE102009017773A1 (de) 2009-10-22
DE102009017773B4 DE102009017773B4 (de) 2023-05-04

Family

ID=41078880

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009017773.6A Active DE102009017773B4 (de) 2008-04-21 2009-04-16 Speicher zum Speichern eines binären Zustands

Country Status (3)

Country Link
US (1) US7898842B2 (de)
KR (1) KR101060867B1 (de)
DE (1) DE102009017773B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2955436B1 (fr) * 2010-01-19 2012-11-23 St Microelectronics Rousset Procede et dispositif de contremesure pour proteger des donnees circulant dans un composant electronique
US8315081B2 (en) 2010-03-22 2012-11-20 Qualcomm Incorporated Memory cell that includes multiple non-volatile memories
US9400650B2 (en) * 2012-09-28 2016-07-26 Intel Corporation Read and write masks update instruction for vectorization of recursive computations over interdependent data
US9653152B1 (en) * 2016-11-15 2017-05-16 Qualcomm Incorporated Low voltage high sigma multi-port memory control

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154384A (en) * 1999-11-12 2000-11-28 Netlogic Microsystems, Inc. Ternary content addressable memory cell
US6496399B1 (en) * 2001-08-28 2002-12-17 Integrated Device Technology, Inc. Compact ternary content addressable memory cell
JP3808753B2 (ja) * 2001-10-31 2006-08-16 川崎マイクロエレクトロニクス株式会社 連想メモリ装置
US6760241B1 (en) 2002-10-18 2004-07-06 Netlogic Microsystems, Inc. Dynamic random access memory (DRAM) based content addressable memory (CAM) cell
US6906937B1 (en) * 2003-03-21 2005-06-14 Netlogic Microsystems, Inc. Bit line control circuit for a content addressable memory
US6845025B1 (en) * 2003-03-21 2005-01-18 Netlogic Microsystems, Inc. Word line driver circuit for a content addressable memory
DE102004063898B9 (de) 2004-01-07 2012-12-20 Infineon Technologies Ag Übertragungsvorrichtung
US20070271421A1 (en) 2006-05-17 2007-11-22 Nam Sung Kim Reducing aging effect on memory
US7310281B1 (en) 2006-09-01 2007-12-18 Taiwan Semiconductor Manufacturing Co., Ltd. Semiconductor memories with refreshing cycles
DE102006061359B4 (de) 2006-12-22 2011-06-16 Infineon Technologies Ag Vorrichtung und Verfahren zur Dateninvertierung
DE102007009526B4 (de) * 2007-02-27 2017-08-24 Infineon Technologies Ag Vorrichtung zum Speichern eines binären Zustandes

Also Published As

Publication number Publication date
US7898842B2 (en) 2011-03-01
KR101060867B1 (ko) 2011-08-31
US20090323439A1 (en) 2009-12-31
KR20090111295A (ko) 2009-10-26
DE102009017773B4 (de) 2023-05-04

Similar Documents

Publication Publication Date Title
DE102007009526B4 (de) Vorrichtung zum Speichern eines binären Zustandes
DE102016015773B3 (de) Mehrfachlese- Speichervorrichtung
DE3930932C2 (de)
DE102017102037A1 (de) Physisch unklonbare funktionsschaltung
DE112006004002B4 (de) NBTI-resistente Speicherzellen mit Nand-Gliedern
DE4210857A1 (de) Halbleiterspeichereinrichtung und verfahren zum uebertragen von daten
DE102020106346A1 (de) Integrierter schaltkreis
DE102009017773B4 (de) Speicher zum Speichern eines binären Zustands
DE102007037363B4 (de) Standardzelle für Arithmetiklogikeinheit und Chipkartensteuerung
DE102019112583A1 (de) Integrierte elektronische schaltung
DE102012111414A1 (de) Speicherschaltung
DE10344647B3 (de) Schaltungsanordnung und Verfahren zur Verarbeitung eines Dual-Rail-Signals
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
DE102004020576B4 (de) Datenverarbeitungsvorrichtung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungskomponente
DE10224742B4 (de) Datenverarbeitungsschaltung und Verfahren zum Übertragen von Daten
DE10202726B4 (de) Integrierte Schaltung und Verfahren zum Betrieb der integrierten Schaltung
DE10217375B4 (de) Schaltungsanordnung und Verfahren zur Erzeugung eines Dual-Rail-Signals
DE102018217016A1 (de) Ein-Chip-System und Sicherheitsschaltung mit einem derartigen Ein-Chip-System
DE10227618B4 (de) Logikschaltung
DE10202725B4 (de) Integrierte Schaltung und Schaltungsanordnung zur Umwandlung eines Single-Rail-Signals in ein Dual-Rail-Signal
DE102004063898B9 (de) Übertragungsvorrichtung
DE102009035022A1 (de) Makrozelle und Verfahren zum Addieren
DE102004001235B4 (de) Übertragungsvorrichtung
DE102009018068B4 (de) Maskierte Speicherzellen
DE102004053127B4 (de) Schaltungsanordnung mit schaltbarer Ladungsneutralität und Verfahren zum Betreiben einer Dual-Rail-Schaltungsanordnung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative