DE112016006170B4 - Puf-werterzeugung unter verwendung einer anti-schmelzsicherungs-speicheranordnung - Google Patents

Puf-werterzeugung unter verwendung einer anti-schmelzsicherungs-speicheranordnung Download PDF

Info

Publication number
DE112016006170B4
DE112016006170B4 DE112016006170.6T DE112016006170T DE112016006170B4 DE 112016006170 B4 DE112016006170 B4 DE 112016006170B4 DE 112016006170 T DE112016006170 T DE 112016006170T DE 112016006170 B4 DE112016006170 B4 DE 112016006170B4
Authority
DE
Germany
Prior art keywords
voltage
puf
programming
terminals
fuse memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112016006170.6T
Other languages
English (en)
Other versions
DE112016006170T5 (de
Inventor
Grigori Grigoriev
Roman GAVRILOV
Oleg Ivanov
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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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 Synopsys Inc filed Critical Synopsys Inc
Publication of DE112016006170T5 publication Critical patent/DE112016006170T5/de
Application granted granted Critical
Publication of DE112016006170B4 publication Critical patent/DE112016006170B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Semiconductor Memories (AREA)
  • Read Only Memory (AREA)

Abstract

System zur Erzeugung von Werten einer physikalisch unklonierbaren Funktion (PUF), umfassend:ein Paar dielektrischer, auf Durchbruch basierender Anti-Sicherungs-Speicherzellen (100, 102), die jeweils Folgendes aufweisenerste Anschlüsse (66), die elektrisch miteinander verbunden sind, um eine erste Spannung (VPGM) zu empfangen, und zweite Anschlüsse (76), die elektrisch miteinander verbunden sind, um eine zweite Spannung (VSS) zu empfangen, um eine Programmierung einer zufälligen Anti-Sicherungs-Speicherzelle aus dem Paar von Anti-Sicherungs-Speicherzellen zu ermöglichen; undeine Strombegrenzungsschaltung (104), die konfiguriert ist, um die erste Spannung (VPGM) mit den ersten Anschlüssen (66) zu koppeln, während die zweiten Anschlüsse (76) während eines Programmiervorgangs mit der zweiten Spannung (VSS) gekoppelt sind, wobei die Strombegrenzungsschaltung dazu konfiguriert ist, eine Spannungsdifferenz zwischen der ersten Spannung und den ersten Anschlüssen bereitzustellen, nachdem eine erste Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen während des Programmiervorgangs eine leitende Verbindung bildet, die Strom von der Strombegrenzungsschaltung zu den zweiten Anschlüssen leitet, wobei die Spannungsdifferenz die Programmierung einer zweiten Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen verhindert.

Description

  • GEBIET
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf die physikalisch unklonierbare Funktion, englisch: Physical Unclonable Function (PUF). Insbesondere bezieht sich die vorliegende Offenbarung auf die Erzeugung eines zufälligen Binärwertes unter Verwendung von Anti-Sicherungs-Speicherzellen als eine PUF.
  • HINTERGRUND
  • Eine physikalisch unklonierbare Funktion, englisch: Physical Unclonable Function, (PUF) ist eine Hardware-Schaltung, die einen oder mehrere Codes entsprechend der physikalischen Zufallsleistung von Hardware-Geräten erzeugt und somit schwer oder gar nicht reproduzierbar ist. PUFs werden häufig in der Datensicherheit in militärischen und kommerziellen Anwendungen eingesetzt, z.B. unbemannte Fahrzeuge, Cloud Computing, etc. Eine PUF kann in fast jeder Anwendung eingesetzt werden, in der eine Zufallszahl benötigt wird. Solche Anwendungen erfordern vorzugsweise, dass die Codes von Chip zu Chip zufällig sind, so dass selbst wenn ein exaktes Layout des Chips durch Reverse Engineering reproduziert wird, die Menge der Codes des reproduzierten Chips sich vom Originalchip unterscheidet. Die von einem Chip erzeugten Werte müssen über Zeit, Spannung, Temperatur usw. konstant sein.
  • Das Dokument US 2006/0291316 A1 offenbart eine Anti-Sicherungszelle mit einem Auswahltransistor, einem Sperrtransistor und einer Anti-Sicherung. Der Auswahltransistor ermöglicht die Auswahl der Anti-Sicherungszelle aus einem Array von Anti-Sicherungszellen, während der Sperrtransistor die Höhe der Spannung begrenzt, die direkt an den Auswahltransistor angelegt werden kann. Die Anti-Sicherung kann aus einem Kondensator bestehen. Zum Beispiel wird der zum Programmieren einer Anti-Sicherungszelle verwendete Strom mithilfe eines Programmierstromreglers gesteuert.
  • Das Dokument US 2012/0106235 A1 offenbart ein Verfahren und eine eingebettete dynamische Direktzugriffsspeicher-(EDRAM)-Schaltung zum Implementieren einer physikalisch unklonierbaren Funktion (PUF) sowie eine Entwurfsstruktur, auf der sich die betreffende Schaltung befindet. Eine eingebettete dynamische Direktzugriffsspeicher-(EDRAM-)Schaltung enthält eine erste EDRAM-Speicherzelle mit einem Speicherzellen-Wahrspeicherkondensator und eine zweite EDRAM-Speicherzelle mit einem Speicherzellen-Komplementärspeicherkondensator. Eine zufällige Variation der Speicherzellenkapazität wird verwendet, um die physikalisch unklonierbare Funktion zu implementieren.
  • ÜBERBLICK
  • Es ist Aufgabe der vorliegenden Offenbarung, mindestens einen Nachteil früherer PUF-Werterzeugungssysteme zu vermeiden oder abzumildern.
  • In einem ersten Aspekt bietet die vorliegende Offenbarung ein System zur Erzeugung von Werten einer physikalisch unklonierbaren Funktion (PUF). Das PUF-Werterzeugungssystem besteht aus einem Paar dielektrischer, auf Durchbruch basierender Anti-Sicherungs-Speicherzellen und einer Strombegrenzungsschaltung. Jede der beiden dielektrischen, auf Durchbruch basierenden Anti-Sicherungs-Speicherzellen hat erste Anschlüsse, die elektrisch miteinander verbunden sind, um eine erste Spannung zu empfangen, und zweite Anschlüsse, die elektrisch miteinander verbunden sind, um eine zweite Spannung zu empfangen, um die gleichzeitige Programmierung beider Anti-Sicherungs-Speicherzellen zu ermöglichen. Die Strombegrenzungsschaltung ist so konfiguriert, dass sie die erste Spannung mit den ersten Anschlüssen koppelt, während die zweiten Anschlüsse während eines Programmiervorgangs mit der zweiten Spannung gekoppelt werden. Die Strombegrenzungsschaltung ist so konfiguriert, dass sie eine Spannungsdifferenz zwischen der ersten Spannung und den ersten Anschlüssen bereitstellt, wenn eine erste Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen während des Programmiervorgangs eine leitende Verbindung bildet, um Strom von der Strombegrenzungsschaltung zu den zweiten Anschlüssen zu leiten, was dann die Programmierung einer zweiten Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen verhindert. Nach einer vorliegenden Ausführung sind die ersten Anschlüsse Gate-Anschlüsse der Anti-Sicherungs-Speicherzellen, und die zweiten Anschlüsse sind Diffusionskontakte der Anti-Sicherungs-Speicherzellen, die elektrisch miteinander gekoppelt sind. Außerdem ist die erste Spannung eine Programmierspannung und die zweite Spannung ist VSS.
  • Nach einem Aspekt der vorliegenden Ausführungsform enthält die Strombegrenzungsschaltung einen Transistor einer Wortleitungstreiberschaltung, der die Programmierspannung an die Gate-Anschlüsse koppelt, und die Spannungsdifferenz ist ein Spannungsabfall der Gate-Anschlüsse relativ zur Programmierspannung. Die Strombegrenzungsschaltung kann außerdem einen Spannungsgenerator zur Bereitstellung der Programmierspannung enthalten. Alternativ zum aktuellen Aspekt kann die Strombegrenzungsschaltung einen Spannungsgenerator zur Bereitstellung der Programmierspannung für die Gate-Anschlüsse enthalten. Alternativ zu diesem Aspekt enthält die Strombegrenzungsschaltung einen Transistor einer Schreib-Treiberschaltung, der VSS mit den Diffusionskontakten koppelt, und die Spannungsdifferenz ist ein Spannungsabfall der Diffusionskontakte relativ zu VSS.
  • Nach einem anderen Aspekt der vorliegenden Ausführungsform sind die Gate-Anschlüsse parallel zu einer Wortleitung geschaltet, die von einer Wortleitungstreiberschaltung angesteuert wird, und die Diffusionskontakte sind mit entsprechenden Bitleitungen verbunden. Eine Spaltenzugriffsschaltung ist so konfiguriert, dass sie die Bitleitungen selektiv miteinander und mit der Strombegrenzungsschaltung koppelt, und die Strombegrenzungsschaltung enthält die Wortleitungstreiberschaltung. Alternativ zum anderen Aspekt der vorliegenden Ausführungsform sind die Gate-Anschlüsse der ersten Anti-Sicherungs-Speicherzelle und der zweiten Anti-Sicherungs-Speicherzelle mit verschiedenen gleichzeitig aktivierten Wortleitungstreiberschaltungen verbunden, und die Diffusionskontakte sind mit einer gemeinsamen Bitleitung verbunden. Hier wird die Spaltenzugriffsschaltung so konfiguriert, dass sie die gemeinsame Bitleitung selektiv mit der Strombegrenzungsschaltung koppelt.
  • In einem zweiten Aspekt bietet die vorliegende Offenbarung eine Methode zur Erzeugung von Werten einer physikalisch unklonierbaren Funktion (PUF). Das Verfahren umfasst das Anlegen einer ersten Spannung an erste Anschlüsse eines Paares von Anti-Sicherungs-Speicherzellen, die elektrisch miteinander gekoppelt sind; das Anlegen einer zweiten Spannung an zweite Anschlüsse des Paares von Anti-Sicherungs-Speicherzellen, die elektrisch miteinander gekoppelt sind, wobei die erste Spannung und die zweite Spannung zur Programmierung einer Anti-Sicherungs-Speicherzelle wirksam sind; Bilden einer leitenden Verbindung in einer ersten Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen in Reaktion auf die erste Spannung und die zweite Spannung, um Strom von den ersten Anschlüssen zu den zweiten Anschlüssen zu leiten; und Ändern eines Spannungspegels der ersten Anschlüsse in Reaktion auf den Strom, der von den ersten Anschlüssen zu den zweiten Anschlüssen geleitet wird, der wirksam ist, um die Programmierung einer zweiten Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen zu verhindern.
  • Entsprechend den Ausführungsformen des zweiten Aspekts beinhaltet der Spannungspegel ein Begrenzen des Stroms zwischen der ersten Spannung und den ersten Anschlüssen, das Begrenzen des Stroms die Bereitstellung eines Spannungsabfalls der ersten Anschlüsse relativ zu der ersten Spannung und das Anlegen der ersten Spannung die Ansteuerung einer mit den ersten Anschlüssen verbundenen Wortleitung mit der ersten Spannung mit einem Wortleitungstreiber, während ein Transistor des Wortleitungstreibers den Spannungsabfall der Wortleitung relativ zu der ersten Spannung liefert. Bei diesen Ausführungsformen beinhaltet das Anlegen der zweiten Spannung die selektive Kopplung der an den zweiten Klemmen angeschlossenen Bitleitungen an die zweite Spannung. Alternativ kann die Begrenzung des Stroms auch einen Spannungsabfall der zweiten Spannung beinhalten.
  • In einem dritten Aspekt bietet die vorliegende Veröffentlichung ein Verfahren zur Programmierung der physikalisch unklonierbaren Funktion (PUF). Das Verfahren umfasst das Ausführen einer Programmieroperation an einer vorbestimmten Anzahl von Paaren von Anti-Sicherungs-Speicherzellen, bis erkannt wird, dass eine Anti-Sicherungs-Speicherzelle jedes Paares mindestens einen minimalen Lesestrom hat; das Lesen einer Anti-Sicherungs-Speicherzelle von jedem der vorbestimmten Anzahl von Paaren von Anti-Sicherungs-Speicherzellen, um ein PUF-Datenwort unter Verwendung einer Referenzspannung zu erhalten, die zum Erfassen des minimalen Stroms ausgewählt wurde; und das Umprogrammieren des PUF-Datenworts, um programmierte Anti-Sicherungs-Speicherzellen mit einem Lesestrom zu erhalten, der größer als der minimale Lesestrom ist.
  • Andere Aspekte und Merkmale der vorliegenden Offenbarung werden denjenigen, die auf diesem Gebiet üblicherweise ausgebildet sind, durch die Durchsicht der folgenden Beschreibung spezifischer Ausführungsformen in Verbindung mit den beigefügten Abbildungen deutlich.
  • Figurenliste
  • Die Ausführungsformen der vorliegenden Offenbarung werden nun beispielhaft anhand der beigefügten Abbildungen beschrieben.
    • 1 ist ein Querschnittsdiagramm durch eine Anti-Sicherungs-Speicherzelle mit zwei Transistoren;
    • 2 ist ein Querschnitt durch eine Anti-Sicherungs-Speicherzelle mit einem einzigen Transistor;
    • 3 ist ein Blockschaltbild eines Einzelbit-PUF-Werterzeugungssystems, entsprechend einer vorliegenden Ausführungsform;
    • 4 ist ein Blockschaltbild einer Leseschaltung zum Lesen von zwei Zellen pro Bit Daten;
    • 5A ist ein Diagramm eines PUF-Datenprogrammiersystems, entsprechend einer vorliegenden Ausführungsform;
    • 5B ist ein Zeitdiagramm, das beispielhafte Wortleitungsspannungen während der PUF-Datenprogrammierung zeigt, entsprechend einer vorliegenden Ausführungsform;
    • 5C ist ein Diagramm eines PUF-Datenprogrammiersystems nach zufälliger Programmierung einer Speicherzelle, entsprechend einer vorliegenden Ausführungsform;
    • 5D ist ein Zeitdiagramm mit beispielhaften Wortleitungs- und Quellleitungsspannungen während der PUF-Datenprogrammierung, entsprechend einer vorliegenden Ausführungsform;
    • 6 ist ein Diagramm eines PUF-Datenprogrammiersystems, entsprechend einer alternativen Ausführungsform;
    • 7 ist ein Schaltplan eines Teils eines Speicher-Arrays, der für die PUF-Datenprogrammierung entsprechend einer vorliegenden Ausführungsform konfiguriert ist;
    • 8 zeigt eine Tabelle mit logischen Zuständen und Spannungen für Signale im Schaltplan von Bild 7, entsprechend einer vorliegenden Ausführungsform;
    • 9 ist ein Flussdiagramm einer Methode zur PUF-Programmierung, entsprechend einer vorliegenden Ausführungsform;
    • 10 ist ein Flussdiagramm einer Methode zur PUF-Zufallsdatenprogrammierung, entsprechend einer vorliegenden Ausführungsform;
    • 11 ist ein Diagramm eines PUF-Datenprogrammiersystems, entsprechend einer vorliegenden Ausführungsform;
    • 12 zeigt eine Tabelle mit Beispielparametern für die normale Datenprogrammierung und die PUF-Programmierung, entsprechend einer vorliegenden Ausführungsform;
    • 13 ist ein Graph, die die Ergebnisse der OTP PUF-Programmierbarkeitstests gemäß einer vorliegenden Ausführungsform zeigt; und
    • 14 ist ein Diagramm mit OTP PUF-Fehlertestergebnissen, entsprechend einer vorliegenden Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ein Verfahren und eine Schaltung werden verwendet, um einen Zufallswert für die physikalisch unklonierbare Funktion (PUF) zur Verwendung in kryptographischen Anwendungen bereitzustellen und zuverlässig zu reproduzieren. In einer Ausführung der vorliegenden Erfindung besteht eine Schaltung in einer PUF-Werterzeugungsvorrichtung aus zwei dielektrischen, auf Durchbruch basierenden Anti-Sicherungen und mindestens einer Strombegrenzungsschaltung, die zwischen die Anti-Sicherungen und Stromschienen geschaltet ist. Zwei Anti-Sicherungs-Speicherzellen werden zur Wertbildung in einem Programmierzyklus parallel geschaltet, indem an beide Anti-Sicherungen gleichzeitig eine hohe Spannung angelegt wird. Eine Anti-Sicherungs-Speicherzelle programmiert zufällig zuerst und liefert so einen zufälligen Bitwert.
  • Der dielektrische Durchschlag unter hoher Spannungsbeanspruchung ist bekanntlich ein Prozess zufälliger Natur, der dazu führt, dass die Zeit bis zum Durchbruch für jede Anti-Sicherungszelle einzigartig ist. Die einzigartige und zufällige Zeit bis zum Ausfall unter Verwendung einer bestimmten Programmierspannung führt dazu, dass eine Zelle vor der anderen bricht, was zu unterschiedlichen Programmierzeiten führt. Diese Zufälligkeit kann vorteilhaft für die PUF-Zufallswertgenerierung genutzt werden, wenn zwei Anti-Sicherungs-Speicherzellen parallel geschaltet und entsprechend der vorliegenden Ausführungsform einer gleichzeitigen Programmierung unterzogen werden. Sobald ein hoher Durchbruchstrom durch eine defekte Zelle festgestellt wird, verursacht er eine Spannungsdifferenz über der Strombegrenzungsschaltung, die zu einer Verringerung der Spannung über beide Zellen führt. Durch die steile Spannungsabhängigkeit der Durchbruchzeit verlangsamt die verminderte Spannung den zeitabhängigen Durchbruchvorgang in der zweiten Zelle und verhindert so einen Bruch innerhalb des Programmierspannungs-Zeitfensters. Das Programmierspannungs-Zeitfenster ist ein Zeitraum, in dem die Programmierspannung zur Bildung einer leitenden Verbindung angelegt wird. Diese Methode ermöglicht den zufälligen Bruch einer Zelle im Paar, während eine andere Zelle am Bruch gehindert wird. Zwei Zellen, von denen eine defekt und eine intakt ist, können mit herkömmlichen Single-Ended-Leseschaltungen zuverlässig und wiederholt gelesen werden.
  • Im Folgenden sind Beispiele für Anti-Sicherungs-Speicherzellen beschrieben, die im PUF-Wert erzeugenden System verwendet werden können.
  • 1 ist ein Querschnittsdiagramm einer Zwei-Transistor-Anti-Sicherungs-Speicherzelle. Diese Zwei-Transistor-Anti-Sicherungs-Speicherzelle 30 besteht aus einem Zugriffstransistor in Reihe mit einer Sicherungseinrichtung. Der Zugriffstransistor, oder Zugangsvorrichtung, enthält ein Gate 32, das über einem dicken Gateoxid 34 liegt, das wiederum über dem Kanal 36 gebildet wird. Auf der rechten Seite des Kanals 36 befindet sich ein Diffusionsbereich 38, der mit einem Bitleitungskontakt 40 elektrisch verbunden ist. Auf der linken Seite des Kanals 36 befindet sich ein gemeinsamer Diffusionsbereich 42, der mit der Anti-Sicherungsvorrichtung geteilt wird. Die Anti-Sicherungsvorrichtung enthält ein Gate 44, das über einem dünnen Gateoxid 46 liegt, das wiederum über dem Kanal 48 gebildet wird. Das dicke Gate-Oxid 34 kann dem für Hochspannungstransistoren entsprechen, während das dünne Gate-Oxid 46 dem für Niederspannungstransistoren entsprechen kann. Die Gates 32 und 44 können unabhängig voneinander gesteuert oder alternativ miteinander verbunden werden. Beispielsweise kann Gate 32 an eine Wortleitung gekoppelt werden, während Gate 44 an eine kontrollierte Zellplattenspannung, englisch: cell plate voltage, (VCP) gekoppelt werden kann. Beide Diffusionsbereiche 38 und 42 können LDD-Bereiche haben, die je nach gewünschter Betriebsspannung identisch oder unterschiedlich dotiert sein können. Für die Isolierung der Speicherzelle von anderen Speicherzellen und/oder Kernschaltungstransistoren werden Dickfeldoxid oder STI („shallow trench isolation“) Oxide 54 und 56 gebildet. US 7,755,162 B2 beschreibt alternative Zwei-Transistor-Anti-Sicherungs-Speicherzellen, die in einem nichtflüchtigen Speicher-Array verwendet werden können. Das dünne Gate-Oxid 46 soll bei Vorhandensein eines großen elektrischen Feldes während eines Programmiervorgangs durchbrechen und so eine elektrisch leitende Verbindung zwischen Kanal 48 und Gate 44 herstellen. Diese elektrisch leitende Verbindung kann als leitende Verbindung oder Anti-Sicherung bezeichnet werden.
  • Ein treibender Faktor zur Reduzierung der Kosten eines jeden Speichers ist der Speicher-Array-Bereich. Die Zwei-Transistor-Anti-Sicherungs-Speicherzelle 30 in 1 ist eine relativ große Speicherzelle im Vergleich zu Einzeltransistor-Speicherzellen, wie z.B. Flash-Speicherzellen. Eine Einzeltransistor-Anti-Sicherungs-Speicherzelle ist im US-Patent Nr. 7,402,855 B2 beschrieben.
  • 2 ist eine Querschnittsansicht der im US-Patent Nr. 7,402,855 B2 veröffentlichten Ein-Transistor-Anti-Sicherungs-Speicherzelle. Die Anti-Sicherungsvorrichtung 60 enthält ein Gateoxid 62 mit variabler Dicke, das auf dem Substratkanalbereich 64 gebildet ist, ein Gate 66, Seitenwandabstandshalter 68, einen Feldoxidbereich 70, einen Diffusionsbereich 72 und einen LDD-Bereich 74 im Diffusionsbereich 72. Ein Diffusionskontakt 76, auch Bitlinekontakt genannt, wenn er in einem Speicher-Array implementiert ist, befindet sich in elektrischem Kontakt mit dem Diffusionsbereich 72. Das Gate-Oxid 62 mit variabler Dicke besteht aus einem dicken Gate-Oxid und einem dünnen Gate-Oxid, so dass ein Teil der Kanallänge durch das dicke Gate-Oxid und der verbleibende Teil der Kanallänge durch das dünne Gate-Oxid abgedeckt werden. Von diesem Zeitpunkt an entspricht der dünne Gate-Oxidanteil dem Anti-Sicherungsbauteil der Einzeltransistor-Sicherungsspeicherzelle, während der dicke Gate-Oxidanteil dem Zugriffstransistor oder dem Bauelementanteil der Einzeltransistor-Anti-Sicherungs-Speicherzelle entspricht. Im Allgemeinen ist das dünne Gate-Oxid ein Bereich, in dem es zu einem Oxidabbau kommen kann. Die dicke Gate-Oxidkante, die auf den Diffusionsbereich 72 trifft, definiert dagegen eine Zugangskante, an der ein Durchschlagen des Gate-Oxids verhindert wird und der Strom zwischen dem Gate 66 und dem Diffusionsbereich 72 für eine programmierte Sicherungseinrichtung fließen soll.
  • Im vorliegend dargestellten Beispiel ist der Diffusionsbereich 72 über einen Bitleitungskontakt 76 oder eine andere Leitung zur Erfassung eines Stroms vom Gate 66 mit einer Bitleitung verbunden und kann zur Aufnahme von Programmierspannungen oder -strömen dotiert werden. Dieser Diffusionsbereich 72 wird in der Nähe des dicken Oxidanteils des Gate-Oxids 62 mit variabler Dicke gebildet. Wenn das Ausgangssubstrat vom Typ P ist, dann ist der Diffusionsbereich 72 als Material vom Typ N dotiert. Zur Programmierung der Anti-Sicherungs-Speicherzelle 60 wird auf der Wortleitung WL ein hoher Spannungspegel wie z.B. eine Programmierspannung angelegt und die Bitleitung mit einem niedrigen Spannungspegel wie z.B. VSS gekoppelt. Das hohe elektrische Feld zwischen dem Kanalbereich 64 und dem Gate 66 sollte ausreichen, um eine leitende Verbindung im dünnen Gateoxid herzustellen, um das Gate 66 mit dem Kanalbereich 64 elektrisch zu verbinden. Dies wird in der vorliegenden Beschreibung als eine programmierte Anti-Sicherungs-Speicherzelle betrachtet. Das gleiche Prinzip gilt für die in 1 gezeigte Anti-Sicherungs-Speicherzelle 30, mit der Ausnahme, dass die leitende Verbindung im dünnen Gate-Oxid 46 gebildet wird, um das Gate 44 mit dem Kanal 48 zu koppeln. Die Dotierstofftypen können in beiden Typen von Anti-Sicherungszellen umgekehrt werden, und dementsprechend wird auch die angelegte Spannung umgekehrt, wie es der Fachmann leicht verstehen würde.
  • Die hier beschriebenen Ausführungsformen wandeln eine Kombination von zwei Zufallsvariablen, d.h. die Zeiten für den dielektrischen Durchbruch in zwei Sicherungseinrichtungen, in eine einzige Zufallsbitvariable um. Die Ausführungsformen der vorliegenden Erfindung machen sich die Tatsache zunutze, dass eine Sicherung in einem Paar von Sicherungen aufgrund des zufälligen Verlaufs der Ausfallzeit zuerst bricht. 3 ist ein Blockschaltbild, das eine allgemeine Schaltungsanordnung eines PUF-Werterzeugungssystems mit einem einzelnen Bit entsprechend einer vorliegenden Ausführungsform zeigt.
  • In der Ausführung des PUF-Programmiersystems in 3 sind ein Paar paralleler Anti-Sicherungs-Speicherzellen 100 und 102 zwischen einem hohen Spannungsknoten und einem niedrigen Spannungsknoten über einen ersten Strombegrenzer 104 bzw. einen zweiten Strombegrenzer 106 angeschlossen. Zwei Anti-Sicherungseinrichtungen sind miteinander parallel zu den ersten und zweiten Strombegrenzern 104 und 106 gekoppelt. Eine vom hohen Spannungsknoten bereitgestellte hohe Spannung wird an die Gate-Anschlüsse des Paar Anti-Sicherungen angelegt. Eine vom niedrigen Spannungsknoten bereitgestellte VSS-Spannung ermöglicht die Programmierung der Sicherungen bei anliegender hoher Spannung. In den vorliegenden Ausführungen bezieht sich eine hohe Spannung auf eine Programmierspannung relativ zur VSS-Spannung, die ein elektrisches Feld von ausreichender Intensität erzeugen kann, um einen Bruch im dünnen Oxidbereich der Anti-Sicherungseinrichtung zu verursachen. Die parallele Anordnung der Zellen ermöglicht einen automatischen Abbau der Beanspruchung für beide Zellen, sobald eine von ihnen zufällig in der Zeit bricht. Eine Unterbrechung im Zusammenhang mit den vorhandenen Anti-Sicherungseinrichtungen bezieht sich auf die Bildung einer leitenden Verbindung zwischen dem Gate und dem darunter liegenden Kanal. Verminderte Beanspruchung macht es sehr unwahrscheinlich, dass eine zweite Zelle innerhalb eines festen Programmierspannungs-Zeitfensters bricht. Nach den vorliegenden Ausführungen kann nur einer von dem ersten Strombegrenzer 104 und dem zweiten Strombegrenzer 106 zur Reduzierung dieser Programmierbelastung der nicht programmierten Anti-Sicherung-Speicherzelle verwendet werden. Wenn der Programmiervorgang beendet ist, wird entweder die Anti-Sicherungszelle 100 oder die Anti-Sicherungszelle 102 programmiert.
  • Wie später ausführlicher beschrieben, kann ein Speicher-Array mit Paaren von Anti-Sicherungszellen wie den Zellen 100 und 102 in 3, in denen eine der Zellen zufällig programmiert ist, konfiguriert werden, um die zufällig programmierten Daten auszulesen. Dies ist in 4 konzeptionell dargestellt, wo das Zellenpaar 100 und 102 an die Eingänge „+“ und „-“ eines differentiellen Leseverstärkers 108 gekoppelt sind. Obwohl beide Zellen 100 und 102 mit den Eingängen des Differenzverstärkers 108 gekoppelt werden können, wie in 4 gezeigt, wird eine einseitige (single-ended) Messung verwendet. Das bedeutet, dass beim Auslesen der Zufallsdaten nur eine der Zellen 100 und 102 verwendet wird. Die Konfiguration in einem Schaltkreis zum Lesen von Zelle 100 oder 102 ist eine Designwahl. Je nachdem, welche der Zellen 100 und 102 gelesen wird, stellt der Ausgang des Leseverstärkers 108 entweder den logischen Zustand „1“ oder „0“ dar. Im vorliegenden Beispiel ist der Leseverstärker 108 so konfiguriert, dass er einen Single-Ended-Ausgang liefert.
  • In einer alternativen Ausführung können die Komplementdaten, sobald der Datenzustand von Zelle 100 oder 102 gelesen und bekannt ist, auf eine dritte Zelle programmiert werden, um die Daten in einer Konfiguration mit zwei Zellen pro Bit zu speichern. In einer solchen Konfiguration liest der differentielle Leseverstärker 108 die komplementären Daten von Zelle 100 oder 102 und der dritten Zelle und kann so konfiguriert werden, dass er differentielle Ausgänge bereitstellt, um jegliche Leistungssignatur während des Lesevorgangs zu minimieren. Wie der Fachmann verstehen würde, bietet die differenzielle Abtastung eine verbesserte Lesemarge im Vergleich zur einseitigen Abtastung.
  • 5A zeigt ein Beispiel für das in 3 gezeigte PUF-Programmiersystem, und die folgende Beschreibung erklärt, wie das System die Programmierung einer zweiten Anti-Sicherungs-Speicherzelle nach der zufälligen Programmierung einer ersten Zelle selbst verhindert. Im Beispiel von 5A sind zwei Anti-Sicherungs-Speicherzellen 100 und 102 mit der gleichen Struktur wie in 2 elektrisch miteinander verbunden und mit einem Wortleitungstreiber und einem Schreibtreiber gekoppelt. Die Gatter der Zellen 100 und 102 sind beide parallel zu einer Wortleitung WL geschaltet. Das Gate der in der vorliegenden Anwendung beschriebenen Zellen und Transistoren kann aus Polysilizium, Metall oder jedem anderen elektrisch leitenden Material bestehen. Die Wortleitung WL wird von einer Wortleitungstreiberschaltung angesteuert, die aus einem P-Kanal-Transistor 204 und einem N-Kanal-Transistor 206 besteht, die in Reihe zwischen einem hohen Spannungsknoten und einem niedrigen Spannungsknoten geschaltet sind. In diesem Beispiel funktioniert der Transistor 204 als Strombegrenzer 104 wie in 3 dargestellt. Ein Auswahlsignal SEL_WL auf dem niedrigen Logikpegel wählt den Treiber aus, um einen positiven Spannungspegel des hohen Spannungsknotens an WL anzulegen. Dieser positive Spannungspegel kann während eines Lesevorgangs ein Lesespannungspegel sein und während eines Programmiervorgangs einen höheren Programmierspannungspegel (VPGM) haben. In diesem Beispiel ist der niedere Spannungsknoten gleich VSS.
  • Die Bitleitungskontakte 76 der beiden Zellen 100 und 102 sind über die jeweiligen N-Kanal-Transistoren 207 und 209 selektiv mit einer Quellleitung SL gekoppelt, wobei ein N-Kanal-Transistor 208 als zweiter Strombegrenzer 106 in 3 dient. Die N-Kanal-Transistoren 207 und 209 werden durch die Signale PUF_SEL0 bzw. PUF_SEL1 gesteuert, die gleichzeitig auf den hohen logischen Pegel angesteuert werden können, um die Diffusionskontakte 76 der beiden Zellen 100 und 102 elektrisch miteinander zu koppeln. Der Gate Anschluss des -Kanaltransistors 208 empfängt ein Signal PUF_PGM auf dem hohen Logikpegel zur Kopplung der Bitleitungskontakte 76 an VSS.
  • Der PUF-Programmiervorgang wird nun für das in 5A gezeigte System mit Bezug auf das in 5B gezeigte Zeitdiagramm beschrieben. Das in 5A gezeigte System ist nicht notwendigerweise Teil eines Speicherarrays und kann als eigenständige Schaltung in jedem Halbleiterbauelement implementiert werden. Mehrere Instanzen der Zellen 100, 102 und des Strombegrenzers 106 können für jede Wortleitung WL erzeugt werden, wobei jedes Zellenpaar 100 und 102 einen einzelnen Zufallsbitwert erzeugt. Jedes Paar von Zellen 100 und 102 jeder Instanz kann mit WL verbunden werden, und jedes Paar kann für die PUF-Programmierung ausgewählt werden, indem die Bitleitungskontakte 76 beider Zellen selektiv miteinander gekoppelt und ein entsprechendes PUF_PGM-Signal für dieses Paar von Zellen aktiviert wird.
  • Sowohl PUF_SEL0 als auch PUF_SEL1 werden auf den hohen Logikpegel gesetzt. Dann wird das Signal PUF_PGM auf den hohen Logikpegel gesetzt, um den N-Kanal-Transistor 208 zum Zeitpunkt t0 einzuschalten. Die oben genannte Reihenfolge kann umgekehrt oder ungefähr zur gleichen Zeit durchgeführt werden. Dann wird SEL_WL zum Einschalten des P-Kanal-Transistors 204 auf den niedrigen Logikpegel gefahren und die Programmierspannung VPGM am Hochspannungsknoten an die Wortleitung WL angelegt. Zunächst werden die Gates 66 der Zellen 100 und 102 mit einem Strom von 210 geladen, bis die Gates die VPGM -Spannung erreicht haben. Mit der Wortleitung bei VPGM und den mit VSS gekoppelten Bitleitungskontakten 76 sind die Anti-Sicherungszellen 100 und 102 nun unter den richtigen Programmierbedingungen, um eine leitende Verbindung im Bereich des dünnen Gate-Oxids der Zellen zu bilden.
  • Nach einer zufälligen Zeitspanne t1 bildet eine der beiden Zellen 100 und 102 eine leitende Verbindung zwischen dem Gate 66 und dem Kanal der Zelle als Reaktion auf die elektrische Feldbeanspruchung. Dies ist in 5C dargestellt, wo Zelle 102 eine leitende Verbindung 212 gebildet hat. Der Strom kann nun vom Gate 66 zum Bitleitungskontakt 76 der Zelle 102 fließen. Da der Transistor 208 eingeschaltet ist, ist die Wortleitung WL jetzt mit VSS gekoppelt. Kurz nach der Zeit t1 sinkt die Wortleitungsspannung, da der Transistor 204 so bemessen ist, dass er die Strommenge begrenzt, die er führen kann, wenn ein Pfad zu VSS durch die Reihenschaltung einer programmierten Anti-Sicherungszelle und des Transistors 208 bereitgestellt wird. Wie in 5B dargestellt, sinkt die Wortleitungsspannung VWL um einen Betrag, der als ΔVWL bezeichnet wird. Dementsprechend entsteht eine Spannungsdifferenz zwischen den Source- und Drain-Anschlüssen des Transistors 204. Diese Reduzierung der Wortleitungsspannung führt zu einer entsprechenden Verringerung des elektrischen Feldes in der unprogrammierten Zelle 100, wodurch der zeitabhängige Durchbruchsprozess in der zweiten Zelle 100 verlangsamt und ein Bruch und die Bildung einer leitenden Verbindung zwischen ihrem Gate 66 und ihrem Kanalbereich verhindert wird.
  • Schließlich endet der Programmiervorgang zu einem voreingestellten Zeitpunkt t2 mit der Deaktivierung der Wortleitung. In diesem Beispiel wird die Wortleitung am Ende des Programmiervorgangs auf VSS gefahren. Diese Zeit kann simuliert, modelliert oder getestet werden, um die ungünstigste Zeit für die Programmierung einer Anti-Sicherungs-Speicherzelle auf der Grundlage des Herstellungsprozesses, der während der Programmierung anzulegenden Spannungen oder anderer Faktoren zu sein, die einen Einfluss auf die für die Programmierung der Anti-Sicherungs-Speicherzelle benötigte Zeit haben können. Wenn die voreingestellte Zeit nicht ausreicht, um eine der beiden Zellen zufällig zu programmieren, kann der Prozess iterativ wiederholt werden, um zu überprüfen, ob die zufällige Programmierung einer der beiden Zellen erfolgreich war.
  • In dieser Ausführung ist der Strombegrenzer 104 so konfiguriert, dass ein Spannungsabfall, der ausreicht, um die Bildung einer leitenden Verbindung in der unprogrammierten Zelle 100 zu verhindern, auftritt, wenn die andere Zelle 102 zufällig programmiert. Der Strom durch eine programmierte Sicherungsspeicherzelle und Transistor 208 kann simuliert, modelliert oder getestet werden. Daher können Parameter wie Peaking Transistor 204, Transistorgröße des Bausteins 204 in Verbindung mit dem Spannungspegel von VPGM und der Spannung von SEL_WL mit Hilfe genauer Modellierungs-/Simulationswerkzeuge so eingestellt werden, dass eine Konfiguration erreicht wird, die den Strom ausreichend begrenzt, um den gewünschten Spannungsabfall über Transistor 204 zu liefern.
  • Bei der oben beschriebenen Technik wird eine Zelle aus einem Zellenpaar programmiert und eine andere bleibt unprogrammiert, wenn die Programmierroutine endet. Welche Zelle gebrochen wird, ist aufgrund der zufälligen Natur des Oxidabbaus wirklich zufällig, was die Erzeugung eines einzelnen zufälligen Bitwertes ermöglicht.
  • In der oben beschriebenen Ausführung ist der Transistor 208 zwar vorhanden und vollständig eingeschaltet, funktioniert aber nicht als Strombegrenzer. Mit anderen Worten, es wird angenommen, dass Transistor 208 so dimensioniert wurde, dass er den gesamten vom Transistor 204 gelieferten Strom über eine programmierte Anti-Sicherungszelle absenkt. Nach einer alternativen Ausführung ist Transistor 204 nicht als Strombegrenzer konfiguriert, während Transistor 208 als Strombegrenzer konfiguriert ist. In dieser alternativen Ausführung ist der Transistor 208 so dimensioniert, dass er weniger Strom absorbiert als eine programmierte Anti-Sicherungs-Speicherzelle. Der Programmiervorgang für diese alternative Ausführungsform wird nun anhand des Zeitdiagramms in 5D, das die Signalspuren für die Wortleitung (VWL) und die Quellleitung (VSL) zeigt, sowie der Diagramme der 5A und 5C diskutiert
  • Wie bei der zuvor beschriebenen Ausführung wird Transistor 208 eingeschaltet, um SL mit VSS zum Zeitpunkt to zu koppeln, und die Wortleitung WL wird vom Transistor 204 auf den VPGM -Spannungspegel angesteuert. Der Strom 210 wird zunächst aufgebaut, bis die Gates 66 die VPGM-Spannungsebene erreichen. Zu einem beliebigen Zeitpunkt t1 wird in Zelle 102 eine leitende Verbindung 212 gebildet, und die Wortleitung von WL ist nun mit dem Strombegrenzer 106 gekoppelt. Obwohl der Transistor 208 vollständig eingeschaltet ist, weil er so dimensioniert ist, dass er weniger Strom absorbiert, als die programmierte Zelle 102 liefert, steigt die Spannung am Drain-Anschluss des Transistors 208 nach der Zeit t1 an. Der Anstieg von VSL vom VSS-Spannungspegel wird als ΔVSL bezeichnet und reduziert die elektrische Feldstärke in der unprogrammierten Zelle 100. Dies verlangsamt den zeitabhängigen Abbauprozess in der zweiten Zelle 100 und verhindert, dass sie bricht und eine leitende Verbindung zwischen ihrem Gate 66 und ihrem Kanalbereich bildet. Zum Zeitpunkt t2 endet der Programmiervorgang. Aufgrund der Spannungsdifferenz über dem Strombegrenzer 106 ist die Programmierung der unprogrammierten Zelle 100 während des Programmierfensters von t0-t2 wieder gesperrt.
  • Ähnlich wie bei der vorherigen Ausführung, bei der Transistor 204 zur Strombegrenzung konfiguriert ist, kann Transistor 208 so konfiguriert werden, dass ein Spannungsabfall auftritt, wenn eine der Anti-Sicherungs-Speicherzellen eine leitende Verbindung bildet.
  • In dem in den 5A, 5B und 5C gezeigten Beispiel ist ein Wortleitungstreiber mit einem Paar Anti-Sicherungs-Speicherzellen verbunden. In einer alternativen Konfiguration können zwei Wortleitungstreiber gleichzeitig aktiviert werden, um eine der beiden Anti-Sicherungs-Speicherzellen ähnlich wie oben beschrieben zu programmieren. Dies wird im Hinblick auf die Ausführungsform von 6 näher erläutert und dargestellt.
  • In der Ausführungsform von 6 sind die gleichen Zellen 100 und 102 dargestellt, nur dass sie nun jeweils mit einer entsprechenden Wortleitung verbunden sind. Zelle 100 ist mit WL[0] verbunden, die mit einem Wortleitungstreiber verbunden ist, der aus den zuvor beschriebenen Transistoren 204 und 206 besteht. Zelle 102 ist mit WL[1] verbunden, die mit einem Wortleitungstreiber verbunden ist, der durch Feld 214 dargestellt wird. Jeder Wortleitungstreiber wird durch entsprechende Signale SEL_WL[0] und SEL_WL[1] gesteuert. Ein Programmierspannungsgenerator (VPGM-Generator) 216 oder Schaltkreis versorgt die Wortleitungstreiber mit VPGM. Beide Zellen 100 und 102 sind an die gleiche Quellleitung SL angeschlossen, die über den Strombegrenzer 106 mit dem VSS gekoppelt ist. Bei der zufälligen PUF-Datenprogrammierung werden beide Signale SEL_WL[0] und SEL_WL[1] aktiviert, um WL[0] und WL[1] parallel zur VPGM - Spannung anzusteuern, und PUF_PGM wird auf Transistor 208 gesetzt. Wenn Transistor 208 als Strombegrenzer konfiguriert ist, dann folgt die Spannung der Quellleitung VSL dem gleichen Muster wie in 5D, wenn eine der Zellen zufällig programmiert, um die Programmierung der anderen Zelle zu verhindern. Alternativ kann der VPGM-Generator 216 so konfiguriert werden, dass er einen Strombegrenzer enthält, so dass bei zufälliger Programmierung einer der Zellen 100 oder 102 der Spannungspegel des VPGM dem gleichen Muster folgt wie VWL in 5B, um die Programmierung der anderen Zelle zu verhindern.
  • Nach einer weiteren alternativen Ausführungsform können die beiden Strombegrenzer 104 und 106 aktiv sein, um die Programmierung einer zweiten Zelle zu verhindern, nachdem eine erste Zelle programmiert wurde. Insbesondere können die Transistoren der beiden Strombegrenzer 104 und 106 so dimensioniert werden, dass ein Spannungsabfall von VWL der Wortleitung und eine Erhöhung von VSL der Quellleitung gewährleistet ist. Es wird darauf hingewiesen, dass die Reihenschaltung von Transistor 204, einer Anti-Sicherungs-Speicherzelle und Transistor 208 als Spannungsteiler konfiguriert werden kann, wobei die Bauteile 204 und 208 so ausgelegt werden können, dass der WL-Knoten einen bestimmten Spannungspegel hat, der kleiner ist als VPGM oder der SL-Knoten einen bestimmten Spannungspegel hat, der größer ist als VSS. Fachkundige sollten verstehen, wie man einen Spannungsteiler konfiguriert, um die gewünschten Spannungspegel an den WL- und SL-Knoten zu erreichen.
  • Die in den 5A, 5C und 6 dargestellten Ausführungen des PUF-Programmiersystems können in einem Speicher-Array implementiert werden, das für das normale Schreiben und Lesen von Daten verwendet wird. Dementsprechend kann ein solches Anti-Sicherungsspeicher-Array Benutzerdaten speichern und zufällige PUF-Daten erzeugen.
  • 7 ist ein Schaltplan, der einen Teil eines Speicherarrays mit Wortleitungstreibern, Spaltenzugriffsschaltungen, einem Leseverstärker und Schreibschaltungen zeigt. Das Speicher-Array enthält die Bitleitungen BL[0] bis BL[3], die Wortleitungen WL[0] bis WL[i] und die Anti-Sicherungs-Speicherzellen 300, die als Kreise mit den Kreuzungspunkten der Bitleitungen und der Wortleitungen verbunden sind. In diesem Beispiel kann es bis zu „i“-Wortzeilen geben, wobei „i“ ein ganzzahliger Wert ist. Die Anti-Sicherungs-Speicherzellen 300 können die in den 1 und 2 der vorliegenden Anmeldung oder jede andere Anti-Sicherungs-Speicherzelle sein, die auf die gleiche Weise programmiert werden kann. Jede Wortleitung ist mit einem Wortleitungstreiber 302 verbunden, wobei jeder Wortleitungstreiber 302 ein komplementäres Paar CMOS-Transistoren 304 und 306 enthält. Jeder Wortleitungstreiber erhält ein entsprechendes Auswahlsignal SEL_WL[0] bis SEL_WL[i], um es bei Lese- und Programmiervorgängen zu aktivieren. Bei jedem Lese- und Programmbetrieb wird nur eine Wortleitung angewählt. Jeder Wortleitungstreiber ist mit einem Hochspannungsknoten und einem Niederspannungsknoten verbunden, wo eine Vielzahl von Spannungsgeneratoren zur Verfügung gestellt werden kann, um den Wortleitungstreibern Spannungen unterschiedlicher Stärke zur Verfügung zu stellen. Obwohl in 7 nicht dargestellt, sind die Hochspannungsknoten der Wortleitungstreiber mit einem VPGM-Generator verbunden, wie in 6 gezeigt.
  • Die Bitleitungen können an eine Vorladeschaltung angeschlossen werden, die in 7 nicht dargestellt ist. Es wird davon ausgegangen, dass die Bitleitungen vorgeladen und/oder auf einem Spannungspegel gehalten werden, der die Programmierung der angeschlossenen Speicherzellen vor Beginn der Programmierung verhindern würde. Beispielsweise kann der Programmsperrspannungspegel ein positiver Spannungspegel sein, während ein Programmfreigabespannungspegel VSS sein kann. Die Spaltenzugriffsschaltung 308 koppelt Bitleitungen selektiv an ein Datenbuspaar DB[0] und DB[1]. Ein Leseverstärker 310 hat einen „+“-Eingang und einen „-“-Eingang, die an DB[0] bzw. DB[1] angeschlossen sind, um die dort auftretenden Spannungspegel zu erfassen und einen entsprechenden Datenausgang D_OUT zu liefern. Die Datenbusse DB[0] und DB[1] sind weiterhin mit einer Schreibschaltung verbunden, die aus einem Schreibdatenpuffer 312, der ein Bit Dateninformation DATA empfängt, und den Schreibtreibern 314 und 316 besteht. In dieser Ausführung sind die Schreib-Treiber 314 und 316 N-Kanal-Transistoren an VSS angeschlossen. Im Rahmen der PUF-Programmierung wird dieses Signal als PUF-Programmfreigabesignal PUF_PGM bezeichnet. Abgesehen von den Wortleitungen können die in 7 gezeigten Elemente in einem größeren Speicher-Array wiederholt werden.
  • Es wird darauf hingewiesen, dass es sich bei den dargestellten Schaltplänen um grafische Darstellungen vieler verschiedener spezifischer Halbleiterschaltungen handelt, die das gleiche gewünschte Ergebnis liefern können. Beispielsweise können die Wortleitungssignale über lokale Wortleitungen, globale Wortleitungen usw. mit Zellen verbunden werden.
  • Es folgt eine weitere ausführliche Diskussion über die Spaltenzugriffsschaltung 308. Diese Schaltung enthält Schaltvorrichtungen, dargestellt als N-Kanal-Transistoren 318, 320, 322, 324, 326, 328 und 330, die durch Spaltenzugriffssignale gesteuert werden. Die N-Kanal-Transistoren 318, 320, 322 und 324 bilden eine erste Stufe der Spaltenauswahl, wobei die Transistoren 318 und 320 durch das decodierte COL_A[0]-Signal gesteuert werden, während die Geräte 322 und 324 durch das decodierte COL_A[1]-Signal gesteuert werden. Die Signale COL_A[0] und COL_A[1] werden, wie in der Technik bekannt, aus Spaltenadresssignalen abgeleitet. Entsprechend koppelt die erste Stufe der Spaltenauswahl-Schaltung entweder die Bitleitungen BL[0] und BL[2] oder BL[1] und BL[3] an die zweite Stufe der Spaltenauswahl-Schaltung. Die zweite Stufe besteht aus den Transistoren 326, 328 und 330, die die dekodierten Signale COL_B[0], COL_B[1] und COL_B[2] empfangen. Ebenso werden die Signale COL_B[0], COL_B[1] und COL_B[2] aus einer Kombination von Spaltenadresssignalen und anderen Steuersignalen abgeleitet, wie es in der Technik bekannt ist. Die Schaltgeräte der Spaltenzugriffsschaltung 308 werden im normalen Datenprogrammbetrieb gesteuert, um die Schreib-Treiber 314 und 316 mit ausgewählten Bitleitungen zu koppeln, und im normalen Lesebetrieb, um die ausgewählten Bitleitungen mit dem Leseverstärker 310 zu koppeln. Für die vorliegenden Ausführungen relevanter sind die gleichen Schaltgeräte der Spaltenzugriffsschaltung 308 in Verbindung mit den Zeilentreibern 302, die zur Ausführung der PUF-Datenprogrammierung in einem von drei verschiedenen Modi gesteuert werden können. Diese werden als Redundanter PUF-Modus, Normaler PUF-Modus und Differentieller PUF-Modus bezeichnet. Unabhängig davon, welcher Modus verwendet wird, werden zwei Speicherzellen gleichzeitig programmiert. Eine Beschreibung, wie die PUF-Programmierung in der Speicher-Array-Konfiguration von 7 für jeden dieser Modi ausgeführt wird, folgt nun.
  • Um die folgende Diskussion der drei PUF-Programmiermodi zu erleichtern, wird auf 7 und 8 verwiesen. In 7 sind bestimmte Anti-Sicherungs-Speicherzellen 300 mit den Ziffern 1, 2, 3, 4, 5, 6, 7 und 8 gekennzeichnet. 8 zeigt eine Tabelle, die den PUF-Schreib-, PUF-Lese-Verifizierungs- und PUF-Lesevorgang für jeden Modus auflistet, wobei auf die spezifischen Zellnummern zugegriffen wird, die Spannung durch spezifische Wortleitungen angelegt wird und die entsprechenden logischen Zustände der Spaltenzugriffssignale, die in 7 erscheinen, für den Zugriff auf die angegebenen Zellen erforderlich sind. In diesem Beispiel wird davon ausgegangen, dass alle anderen Wortzeilen in 7 nicht markiert sind. In den vorliegenden Beispielen bedeutet eine Logik „1“, dass der Transistor, der dieses Signal empfängt, eingeschaltet ist, während eine Logik „0“ bedeutet, dass der Transistor, der dieses Signal empfängt, ausgeschaltet ist, VPGM eine Programmierspannung ist und VSS 0V ist. Informationen in Klammern zeigen den Zustand oder die Spannung für die alternative Zellenauswahl in Klammern an.
  • In dem Redundanten PUF-Modus werden zwei Speicherzellen 300, die an die gleiche Bitleitung angeschlossen sind und an separate Wortleitungstreiber 302 angeschlossen sind, gleichzeitig programmiert. Die Konfiguration dieser beiden Speicherzellen 300 ist in Verbindung und Funktion ähnlich wie in 6 dargestellt. Dies wird als „redundanter“ Modus bezeichnet, da es im normalen Betrieb des Speichers möglich ist, das gleiche Bit von Daten auf zwei (oder mehr) Zellen zu programmieren, die mit der gleichen Bitleitung verbunden sind, und beide Zellen gleichzeitig zu lesen. Dieser Modus verbessert die Zuverlässigkeit und Robustheit der Datenspeicherung. Die Tabelle in 8 zeigt beispielhaft logische Zustände für die Spaltenzugriffssignale und Spannungspegel für die Wortleitungen, wodurch die Auswahl der Zellen mit den Nummern 1 und 3 der Programmierspannung unterworfen wird und die Bitleitung BL[0] über die Transistoren 318, 326 und 314 mit VSS gekoppelt wird. Es wird davon ausgegangen, dass sich DATA im hohen logischen Zustand befindet, um den Schreib-Treiber 314 einzuschalten. Der Fachmann wird verstehen, dass verschiedene Zustände der Spaltenzugriffssignale verwendet werden können, um die Zellpaarungen 2 und 4, 5 und 7 sowie 6 und 8 für die Kopplung an VSS entweder über die Schreib-Treiber 314 oder 316 auszuwählen. In einer Ausführung des PUF-Schreibvorgangs werden die ausgewählten Wortleitungstreiber 302 aktiviert, um die Programmierspannung an die ausgewählten Wortleitungen WL[0] und WL[1] für eine bestimmte Zeitdauer anzulegen, die aufgrund des Herstellungsprozesses, der Zellstruktur und der Spannungen simuliert oder modelliert wurde, um eine beliebige Programmierung einer der Zellen zu erreichen. Diese spezifische Zeitdauer, auch als Impuls bezeichnet, sollte kürzer sein als der bei der normalen Datenprogrammierung verwendete Impuls. Während eine der Zellen während des PUF-Programmierimpulses nicht programmiert werden darf, sollte die kumulative Wirkung mehrerer angelegter Impulse zu einer zufälligen Programmierung von nur einer der beiden Zellen führen.
  • Nach Ablauf des Programmierzeitraums wird eine PUF-Lese-Verifizierung durchgeführt, um zu prüfen, ob mindestens eine der beiden Zellen programmiert wurde. In Bezug auf die Tabelle in 8 wird ein einseitiger (single-ended) Lesevorgang ausgeführt, indem die beiden ausgewählten Wortleitungen auf die Lesespannung Vread gefahren werden, die kleiner als die Programmierspannung von VPGM ist, und die gleichen Spaltenzugriffssignale aus dem PUF-Schreibvorgang aktiviert werden. Vor der Aktivierung der Wortleitungen wird die Bitleitung BL[0] über die aktivierten Spaltenzugriffssignale und den von DATA eingeschalteten Schreib-Treiber 314 auf VSS vorgeladen. Entsprechend ist nun die Bitleitung BL[0] mit dem „+“-Eingang des Leseverstärkers 310 gekoppelt. Der „-“-Eingang des Leseverstärkers 310 erhält während des PUF-Lesevorgangs eine Referenzspannung. Diese Referenzspannung kann so gewählt werden, dass sie ausreicht, um das erste Anzeichen eines Durchbruchs im Gateoxid der Schmelzsicherung einer Zelle zu erkennen. Dies kann als eine schwache leitende Verbindung angesehen werden, die in der Sicherungseinrichtung gebildet wird, und eine solche Zelle wird als schwache programmierte Zelle bezeichnet.
  • Je nach Prozess, Schaltungsdesign und verwendeten Spannungsebenen können Anti-Sicherungs-Speicherzellen bei der Programmierung leitfähige Verbindungen mit unterschiedlicher Leitfähigkeit bilden. Daher werden Anti-Sicherungs-Speicherzellen mit niedrigerer Leitfähigkeit als schwach programmierte Zellen bezeichnet, während Anti-Sicherungs-Speicherzellen mit einer höheren Leitfähigkeit als stark programmierte Zellen bezeichnet werden, wobei die Schwelle zwischen einer schwachen und einer stark programmierten Zelle durch den gewünschten Lesestrom bestimmt wird, der von einem Leseverstärker erfasst werden kann. Dementsprechend können verschiedene Referenzspannungen während des normalen Programmverifizierungsvorgangs verwendet werden, da das gewünschte Ergebnis der PUF-Programmierung darin besteht, das erste Anzeichen eines Ausfalls oder einer schwachen leitenden Verbindung zu erkennen. Dieser wird typischerweise als schwacher Lesestrom oder als minimaler Strom dargestellt, der mit einem Leseverstärker und einer geeigneten Referenzspannung detektierbar ist.
  • Da beide Zellen 1 und 3 mit der gleichen Bitleitung BL[0] verbunden sind, erhöht jede Zelle mit einer darin gebildeten leitenden Verbindung den Spannungspegel von DB[0], der vom Leseverstärker 310 erkannt werden kann. Die erfolgreiche Erkennung dieses erhöhten Spannungspegels ist ein Zeichen für eine erfolgreiche PUF-Programmierung und wird im D_OUT-Signal des Leseverstärkers 310 wiedergegeben. D_OUT kann von einer Steuerlogik empfangen werden, die die zufällige Programmierung der Zellen 1 und 3 festlegt. Ansonsten wiederholt diese Steuerlogik den oben beschriebenen PUF-Schreibvorgang und PUF-Lese-Verifizierungsvorgang, bis eine erfolgreiche PUF-Programmierung erkannt wird oder eine vorgegebene Anzahl von Iterationen ohne erfolgreiche PUF-Programmierung abgelaufen ist und die Operation als fehlgeschlagen gilt. Im Falle einer fehlgeschlagenen Operation kann die Steuerungslogik eine alternative Paarung von Zellen für die PUF-Programmierung wählen.
  • Die Zyklen des PUF-Schreibvorgangs und des PUF-Lese-Verifizierungsvorgangs werden für eine beliebige Anzahl von Zellenpaaren ausgeführt, die mit den Wortleitungen WL[0] und WL[1] verbunden sind. Schließlich werden alle Zellpaare als eine Zelle erfolgreich programmiert, aber es ist nicht bekannt, welche Zelle des Zellpaares programmiert wurde. Dies ist die zufällige Natur der Werterzeugung von PUF nach den vorliegenden Ausführungsformen. Um ein PUF-Wort zu erhalten, das aus Daten von jedem Zellenpaar besteht, wird ein PUF-Lesevorgang durchgeführt, bei dem nur die Zellen verwendet werden, die mit einer der beiden Wortleitungen verbunden sind. Wie in der Tabelle in 8 dargestellt, werden die Wortleitungen WL[0] und WL[1] auf den Spannungspegel Vread gefahren und nur eines der Schaltgeräte 318 und 324 wird in Verbindung mit dem aktivierenden Schaltgerät 326 im vorliegenden Beispiel aktiviert. Dieser Vorgang ähnelt dem PUF-Lese-Verifizierungsvorgang. Dementsprechend werden einige der Zellen als programmiert erkannt, während andere als unprogrammiert erkannt werden, da es sich um die andere Zelle des Paares handelt, die mit der nicht angesprochenen Wortleitung verbunden ist, die programmiert wurde.
  • Nachdem das PUF-Wort gewonnen wurde, kann eine normale Datenprogrammierung durchgeführt werden, um dieses PUF-Wort auf die gleichen Zellen zu programmieren. Wie bereits erwähnt, führt die PUF-Programmierung zur Bildung einer schwachen leitfähigen Verbindung in der Sicherungseinrichtung. Der Zweck einer normalen Datenprogrammierung besteht darin, die programmierten PUF-Zellen zu durchdringen, oder die leitende Verbindung so zu verstärken, dass das Lesen aus einer programmierten Zelle einen großen Abstand zu einer unprogrammierten Zelle ergibt. Dies gewährleistet ein zuverlässiges und genaues Lesen des PUF-Wortes während des normalen Betriebs des Speichermediums. Anstatt das PUF-Wort auf die gleichen Zellen umzuprogrammieren, kann das PUF-Wort normalerweise auf Zellen an einer anderen Adresse programmiert werden.
  • Nach einer alternativen Ausführungsform kann das PUF-Wort, nachdem es wie oben beschrieben gewonnen und neu programmiert wurde, zu seinem Komplement invertiert werden, das dann an einer anderen Stelle im Speicher-Array programmiert wird. Diese Position kann für die differentielle Abtastung jedes PUF-Datenbits gegen das entsprechende Komplementärbit gewählt werden. Wenn beispielsweise Zelle 1 in 7 die PUF-Daten ist, kann ihr Komplement in Zelle 5 gespeichert werden. Dann wird die Differenzmessung ausgeführt, indem COL_A[0], COL_B[0] und COL_B[1] so eingestellt werden, dass BL[0] und BL[2] mit dem Leseverstärker 310 gekoppelt werden.
  • Es folgt eine Diskussion über den normalen PUF-Modus. Im normalen PUF-Modus werden zwei Speicherzellen 300, die an die gleiche Wortleitung angeschlossen und an separate Bitleitungen angeschlossen sind, gleichzeitig programmiert. Die Konfiguration dieser beiden Speicherzellen 300 ist bezüglich Verbindung und Funktion der in 5A gezeigten ähnlich. Dies wird als „normaler“ Modus bezeichnet, da eine einzelne Wortleitung aktiviert wird, um das Programmieren und Lesen einer einzelnen Speicherzelle während des normalen Programm- und Lesevorgangs des Speichers zu ermöglichen.
  • Die Tabelle in 8 zeigt beispielhaft logische Zustände für die Spaltenzugriffssignale und Spannungspegel für die ausgewählte Wortleitung, wodurch die Auswahl der Zellen mit den Nummern 1 und 2 der Programmierspannung unterworfen wird und die Bitleitungen BL[0] und BL[1] über die Transistoren 318, 324, 326 und 314 mit VSS gekoppelt werden. Es wird davon ausgegangen, dass sich DATA im hohen logischen Zustand befindet, um den Schreib-Treiber 314 einzuschalten. Fachkundige werden verstehen, dass verschiedene Zustände der Spaltenzugriffssignale verwendet werden können, um die Zellpaarungen 3 und 4, 5 und 6 sowie 7 und 8 für die Kopplung an VSS über den Schreib-Treiber 314 auszuwählen. Alternativ können die Spaltenzugriffssignale so konfiguriert werden, dass sie die Zellenpaare 5 und 6 sowie 7 und 8 über den Schreib-Treiber 316 an VSS koppeln. In einer Ausführung des PUF-Schreibvorgangs wird der ausgewählte Wortleitungstreiber 302 aktiviert, um die Programmierspannung auf der ausgewählten Wortleitung WL[0] für eine bestimmte Zeitdauer anzulegen, die aufgrund des Herstellungsprozesses, der Zellstruktur und der Spannungen simuliert oder modelliert wurde, um eine beliebige Programmierung einer der Zellen zu erreichen.
  • Nach Ablauf des Programmierzeitraums wird eine PUF-Lese-Verifizierung durchgeführt, um zu prüfen, ob mindestens eine der beiden Zellen programmiert wurde. In Bezug auf die Tabelle in 8 wird ein Single-Ended Lesevorgang ausgeführt, indem die ausgewählte Wortleitung auf die Lesespannung Vread gefahren wird, die kleiner als die Programmierspannung von VPGM ist, und die gleichen Spaltenzugriffssignale aus dem PUF-Schreibvorgang aktiviert werden. Vor der Aktivierung der Wortleitungen werden die Bitleitungen BL[0] und BL[1] über die aktivierten Spaltenzugriffssignale und den von DATA eingeschalteten Schreib-Treiber 314 auf VSS vorgeladen. Entsprechend sind nun beide Bitleitungen BL[0] und BL[1] mit dem „+“-Eingang des Leseverstärkers 310 gekoppelt. Der „-“-Eingang des Leseverstärkers 310 erhält während des PUF-Lesevorgangs eine Referenzspannung. Diese Referenzspannung kann so gewählt werden, dass sie ausreicht, um das erste Anzeichen eines Durchbruchs im Gate-Oxid der Sicherungseinrichtung einer Zelle zu erkennen, wie für den vorherigen Redundanten PUF-Modus beschrieben.
  • Da beide Zellen 1 und 2 mit DB[0] gekoppelt sind, erhöht jede Zelle mit einer darin gebildeten leitenden Verbindung den Spannungspegel von DB[0], der vom Leseverstärker 310 erfasst werden kann. Die erfolgreiche Erkennung dieses erhöhten Spannungspegels ist ein Zeichen für eine erfolgreiche PUF-Programmierung und wird im D_OUT-Signal des Leseverstärkers 310 wiedergegeben. Wie im redundanten PUF-Modus werden die PUF-Schreib- und PUF-Lese-Verifizierungsoperationen wiederholt, bis eine erfolgreiche PUF-Programmierung erkannt wird oder eine vorgegebene Anzahl von Iterationen ohne erfolgreiche PUF-Programmierung abgelaufen ist und die Operation als fehlgeschlagen gilt.
  • Die Zyklen des PUF-Schreibvorgangs und des PUF-Lese-Verifizierungsvorgangs werden für eine beliebige Anzahl von Zellenpaaren ausgeführt, die an Paare von Bitleitungen angeschlossen sind, die selektiv an den gleichen Eingang eines Leseverstärkers, z.B. Leseverstärker 310, gekoppelt werden können. Schließlich werden alle Zellpaare als eine Zelle erfolgreich programmiert, aber es ist nicht bekannt, welche Zelle des Zellpaares programmiert wurde. Auch hier wird der Zufallscharakter der PUF-Werterzeugung nach den vorliegenden Ausführungsformen wiedergegeben. Um ein PUF-Wort zu gewinnen, das aus Daten von jedem Zellenpaar besteht, wird ein PUF-Lesevorgang durchgeführt, bei dem nur die Zellen verwendet werden, die mit einer der beiden Bitleitungen verbunden sind. Wie in der Tabelle in 8 dargestellt, wird die Wortleitung WL[0] auf den Spannungspegel Vread gefahren und nur eines der Schaltgeräte 318 und 324 in Verbindung mit dem aktivierenden Schaltgerät 326 im vorliegenden Beispiel aktiviert. Dementsprechend werden einige der Zellen als programmiert erkannt, während andere als unprogrammiert erkannt werden, da es die andere Zelle des Paares ist, die mit der nicht angesprochenen Bitleitung verbunden ist, die programmiert wurde.
  • Nachdem das PUF-Wort gewonnen wurde, kann eine normale Datenprogrammierung durchgeführt werden, um dieses PUF-Wort auf die gleichen Zellen oder auf einen anderen Satz von Zellen zu programmieren, wie zuvor für den Redundanten PUF-Modus beschrieben. Ähnlich wie zuvor beschrieben, kann das Komplement des PUF-Wortes gewonnen und an einer Stelle programmiert werden, die eine differentielle Abtastung jedes PUF-Datenbits und seines Komplements ermöglicht.
  • Im Folgenden wird der differentielle PUF-Modus diskutiert. Im differentiellen PUF-Modus werden zwei Speicherzellen 300, die an die gleiche Wortleitung angeschlossen und an separate Bitleitungen angeschlossen sind, gleichzeitig programmiert, was dem normalen PUF-Modus entspricht. Der Unterschied besteht darin, dass jede selektierte Bitleitung (und die entsprechende selektierte Zelle) mit ihren eigenen Schreib-Treibern 314 und 316 gekoppelt ist.
  • Die Tabelle in 8 zeigt beispielhaft logische Zustände für die Spaltenzugriffssignale und Spannungspegel für die ausgewählte Wortleitung, wodurch die Auswahl der Zellen mit den Nummern 1 und 5 der Programmierspannung unterworfen wird und die Bitleitungen BL[0] und BL[2] über die Transistoren 318, 320, 326, 328, 314 und 316 mit VSS gekoppelt werden. Es wird davon ausgegangen, dass sich DATA im hohen logischen Zustand befindet, um die Schreib-Treiber 314 und 316 einzuschalten. Fachkundige werden verstehen, dass verschiedene Zustände der Spaltenzugriffssignale verwendet werden können, um die Zellpaarungen 2 und 6 und 4 und 8 für die Kopplung an VSS über den Schreib-Treiber 314 auszuwählen. In einer Ausführung des PUF-Schreibvorgangs wird der ausgewählte Wortleitungstreiber 302 aktiviert, um die Programmierspannung auf der ausgewählten Wortleitung WL[0] für eine bestimmte Zeitdauer anzulegen, die aufgrund des Herstellungsprozesses, der Zellstruktur und der Spannungen simuliert oder modelliert wurde, um eine beliebige Programmierung einer der Zellen zu erreichen.
  • Nach Ablauf des Programmierzeitraums wird eine PUF-Lese-Verifizierung durchgeführt, um zu prüfen, ob mindestens eine der beiden Zellen programmiert wurde. Im Gegensatz zu den zuvor beschriebenen PUF-Lese-Verifizierungsoperationen, bei denen nur ein einziger Zyklus erforderlich ist, um festzustellen, ob eine der beiden Zellen programmiert ist, erfordert der aktuelle differentielle PUF-Modus separate Lese-Verifizierungszyklen für jede der beiden Zellen, die der Programmierung unterzogen wurden. Vor der Aktivierung der Wortleitungen werden die Bitleitungen BL[0] und BL[2] über die zuvor aktivierten Spaltenzugriffssignale und die von DATA eingeschalteten Schreib-Treiber 314 und 316 auf VSS vorgeladen.
  • In Bezug auf die Tabelle in 8 wird ein erster einseitiger (single-ended) Lesevorgang ausgeführt, indem die ausgewählte Wortleitung auf die Lesespannung Vread gefahren wird, die kleiner als die Programmierspannung von VPGM ist, und nur die Spaltenzugriffssignale COL_A[0] und COL_B[0] aktiviert werden. Entsprechend ist die Bitleitung BL[0] mit dem „+“-Eingang des Leseverstärkers 310 gekoppelt. Der „-“-Eingang des Leseverstärkers 310 erhält während des PUF-Lesevorgangs eine Referenzspannung. Diese Referenzspannung kann so gewählt werden, dass sie ausreicht, um das erste Anzeichen eines Durchbruchs im Gate-Oxid der Sicherungseinrichtung einer Zelle zu erkennen, wie für den vorherigen Redundanten PUF-Modus beschrieben. Das Ergebnis dieses ersten Lese-Verifizierungszyklus kann in einem Register gespeichert werden. Die Bitleitungen werden wieder vorgeladen, und ein zweiter Single-Ended-Lesevorgang wird ausgeführt, indem die ausgewählte Wortleitung auf die Lesespannung Vread gefahren wird, die kleiner als die Programmierspannung von VPGM ist, und nur die Spaltenzugriffssignale COL_A[0] und COL_B[2] aktiviert werden. Entsprechend wird die Bitleitung BL[2] mit dem „+“-Eingang des Leseverstärkers 310 gekoppelt und dieses zweite Messergebnis mit dem ersten Messergebnis verglichen. Ein einfacher XOR-Vergleich, der eine Logik ergibt, zeigt an, dass nur eine der beiden Zellen programmiert wurde. Jedes andere Ergebnis zeigt an, dass entweder beide Zellen nicht programmiert wurden oder beide Zellen programmiert wurden.
  • Wie im redundanten PUF-Modus werden die PUF-Schreiboperationen und PUF-Lese-Verifizierungsoperationen wiederholt, bis eine erfolgreiche PUF-Programmierung erkannt wird oder eine vorbestimmte Anzahl von Iterationen ohne erfolgreiche PUF-Programmierung abgelaufen ist und die Operation als fehlgeschlagen gilt. Wurden beide Zellen programmiert, gilt der Vorgang als fehlgeschlagen.
  • Die Zyklen des PUF-Schreibens und PUF-Lese-Verifizierens werden für eine beliebige Anzahl von Zellenpaaren ausgeführt, die mit Bitleitungspaaren verbunden sind, die jeweils selektiv an beide Eingänge eines Leseverstärkers, wie z.B. Leseverstärker 310, gekoppelt werden können. Schließlich werden alle Zellpaare als eine erfolgreich programmierte Zelle bestimmt. Auch hier wird der Zufallscharakter der PUF-Werterzeugung nach den vorliegenden Ausführungsformen wiedergegeben. Um ein PUF-Wort zu gewinnen, das aus Daten von jedem Zellenpaar besteht, wird ein PUF-Lesevorgang durchgeführt, bei dem nur die Zellen verwendet werden, die mit einer der beiden Bitleitungen verbunden sind. Wie in der Tabelle in 8 dargestellt, wird die Wortleitung WL[0] auf den Spannungspegel Vread gefahren und nur eines der Schaltgeräte 326 und 330 in Verbindung mit den Schaltgeräten 318 und 320 im vorliegenden Beispiel aktiviert. Dementsprechend werden einige der Zellen als programmiert erkannt, während andere als unprogrammiert erkannt werden, da es die andere Zelle des Paares ist, die mit der nicht angesprochenen Bitleitung verbunden ist, die programmiert wurde.
  • Nachdem das PUF-Wort gewonnen wurde, kann eine normale Datenprogrammierung durchgeführt werden, um dieses PUF-Wort auf die gleichen Zellen oder auf einen anderen Satz von Zellen zu programmieren, wie zuvor für den Redundanten PUF-Modus beschrieben. Ähnlich wie zuvor beschrieben, kann das Komplement des PUF-Wortes gewonnen und an einer Stelle programmiert werden, die eine differentielle Abtastung jedes PUF-Datenbits und seines Komplements ermöglicht.
  • Wie bereits in den 5A und 6 beschrieben, kann der Schreibtreibertransistor, wie der P-Kanal-Transistor 304, ein erster Strombegrenzer sein, während der Schreibtreibertransistor 314 ein zweiter Strombegrenzer sein kann, wobei entweder einer oder beide so konfiguriert werden können, dass sie die Programmierung einer zweiten Anti-Sicherungs-Speicherzelle innerhalb des Programmierzeitfensters verhindern, wenn eine erste Anti-Sicherungs-Speicherzelle programmiert wurde. Darüber hinaus kann der VPGM-Spannungsgenerator oder -Schalter auch als Strombegrenzer während der PUF-Programmierung konfiguriert werden, obwohl er nicht in 7 dargestellt ist.
  • Die vorangegangene Diskussion erwähnt die PUF-Programmierung und die normale Programmierung von Zellen im Speicher-Array von 7. Es wird darauf hingewiesen, dass die Ziele der PUF-Programmierung und der normalen Programmierung unterschiedlich sind. Bei der normalen Datenprogrammierung wird die Programmierzeit optimiert und geringfügig programmierte Zellen (schwach programmierte Zellen) werden vermieden. Dies kann beispielsweise durch längere Programmierimpulse, höhere Programmierspannungen und höhere Programmierströme erreicht werden. Bei der normalen Programmierung von Lese-Verifizierungsoperationen werden höhere Referenzspannungen verwendet, um die marginal programmierten Zellen zu identifizieren und in stark programmierte Zellen weiter zu programmieren. Im Idealfall wird eine Speicherzelle in einem einzigen Programmiervorgang programmiert, der einen einzigen Programmierimpuls beinhaltet.
  • Andererseits optimiert die PUF-Programmierung die Parameter, um die Wahrscheinlichkeit zu maximieren, dass nur eine von zwei parallel geschalteten Speicherzellen programmiert wird. Wie bereits erwähnt, kann dies durch eine Strombegrenzung im Pull-Down und/oder Pull-Up-Pfad mit optionaler Steuerung der den Pull-Up- und Pull-Down-Geräten zur Verfügung gestellten Spannungen erfolgen. Bezogen auf die Ausführung von 5A kann VPGM während der PUF-Programmierung einen reduzierten Strom liefern, und der VSS-Anschluss des Transistors 208 kann durch eine kontrollierte Stromquelle ersetzt werden, die weniger Strom aus den Zellen abgibt.
  • 9 ist ein Flussdiagramm, das den PUF-Programmiervorgang zusammenfasst, der dem Redundanten PUF-Modus, dem normalen PUF-Modus und dem differentiellen PUF-Modus gemeinsam ist. Es wird davon ausgegangen, dass die Länge des PUF-Wortes eingestellt und ein Startpunkt für die zu programmierenden Zellen gewählt wurde. Die Methode beginnt bei 400, wo die zufällige Programmierung eines Paares von Speicherzellen unter Verwendung eines der zuvor beschriebenen PUF-Modi Redundant, Normal oder Differentiell ausgeführt wird. Dieser Schritt beinhaltet die Programmierung und Lese-Verifizierung jeder der Paarzellen, die eine Bitposition des PUF-Wortes bilden. Bei 402 ermittelt das System, ob alle PUF-Datenpositionen programmiert sind. Wenn nicht, dann wird das nächste Zellenpaar für die Programmierung bei 400 ausgewählt. Ansonsten wurden alle PUF-Datenpositionen mit einer Zelle des Paares programmiert und das PUF-Datenwort wird bei 404 ausgelesen.
  • Gemäß einer optionalen Ausführungsform der vorliegenden Methode kann es bei einigen Anwendungen erforderlich sein, einen bestimmten Prozentsatz des Versatzes zwischen zufällig programmierten logischen 0- und 1-Daten des PUF-Datenworts zu verwenden. Zum Beispiel kann ein vorgegebener Offset 50% betragen, wobei die Hälfte der PUF-Datenbits logisch 0 und die andere Hälfte logisch 1 ist. Die Onboard-Logik kann die Bits zählen und bestimmen, ob der Offset 50% oder innerhalb eines bestimmten Bereichs des vorgegebenen Offsets liegt. Beispielsweise können 50% bis 60% der Datenbits logisch 0 sein.
  • Die PUF-Datenwort-Offsetbestimmung erfolgt bei 406, und wenn sie nicht mit einem vorgegebenen Offset übereinstimmt oder nicht innerhalb eines vorgegebenen Offsetbereichs liegt, gilt der PUF-Programmiervorgang für den aktuell gewählten Startort als fehlgeschlagen und ein neuer Startort für den PUF-Programmiervorgang wird bei 408 gewählt. Dann beginnt ein neuer PUF-Programmiervorgang wieder bei 400. Anstatt neue Zellen bei 408 auszuwählen, kann das gesamte Gerät als defekt angesehen werden. Andernfalls stimmt der PUF-Datenwort-Offset mit dem Offset überein oder liegt innerhalb eines vorgegebenen Offsetbereichs, und die Methode geht zu 410 für die harte Programmierung der PUF-Daten zu den aktuellen Zellen oder zu neuen Zellen an einer anderen Stelle im Speicher-Array über. Diese harte Programmierung verwendet normale Programmierspannungen und -ströme, die während der normalen Datenprogrammierung des Speichers verwendet würden, was dazu führt, dass programmierte Zellen einen Lesestrom haben, der größer ist als der minimale Lesestrom einer PUF programmierten Zelle.
  • 10 ist ein Flussdiagramm mit einer Methode zur PUF-Programmierung, die als Teil von Schritt 400 der 9 verwendet werden kann. Das Verfahren beginnt bei 500, indem zwei Anti-Sicherungs-Speicherzellen parallel mit mindestens einer Strombegrenzungseinrichtung gekoppelt werden. Ein Beispiel hierfür ist in 5A dargestellt, wo die Sicherungsspeicherzellen 100 und 102 Gatter 66 parallel zum Strombegrenzer 104 und Bitleitungskontakte 76 parallel zum Strombegrenzer 106 geschaltet sind. Ebenso zeigt der Schaltplan in 7, wie zwei Anti-Sicherungs-Speicherzellen parallel an einen Wortleitungstreiber 302 und einen Schreib-Treiber 314 angeschlossen werden können. Nach 502 werden gleichzeitig Spannungen an beide Anti-Sicherungs-Speicherzellen angelegt, die die Programmierung der Zellen durch Bildung einer leitenden Verbindung in ihren Gate-Oxiden begünstigen. Bei 504 programmiert eine der Anti-Sicherungs-Speicherzellen zufällig und bildet eine leitende Verbindung in ihrem Gate-Oxid. Ein Beispiel hierfür ist bereits in 5C dargestellt, wo eine leitende Verbindung 212 in der Anti-Sicherungs-Speicherzelle 102 gebildet wird. Nach 506 wird die andere Anti-Sicherungs-Speicherzelle am Programmieren gehindert. Dies kann durch die Wirkung eines oder beider Strombegrenzer geschehen, die das elektrische Feld über der unprogrammierten Anti-Sicherungs-Speicherzelle reduziert.
  • Der zuvor beschriebene Ansatz wurde mit gleichzeitiger Belastung für zwei Zellen parallel im Testmodus für fünf Arrays getestet. Die Zufälligkeit und Einzigartigkeit der erzeugten PUF-Werte wurde mit Hamming-Distanzen bewertet. Die Ergebnisse zeigen eine nahezu ideale Zufälligkeit und Einzigartigkeit der Codes für jedes der 5 Arrays. Der generierte PUF-Wert zeigte Stabilität über 50 Lesezyklen, über verschiedene Temperaturbedingungen und Leseverfahren hinweg.
  • Die spezifische Konfiguration der in 7 dargestellten Schaltelemente ist nur ein Beispiel für eine mögliche Konfiguration und Typen von Geräten, Logikgattern und Adresssignalen, die zur Bereitstellung der oben genannten drei PUF-Programmiermodi verwendet werden können. Nach den vorliegenden Ausführungsformen kann jede Konfiguration verwendet werden, die die Ausführung aller drei Betriebsarten ermöglicht.
  • In den zuvor beschriebenen Ausführungsformen endet die PUF-Zufallsdatenprogrammierung zu einer vorgegebenen „worst case“-Zeit, wie in den 5A, 5B und 5C erläutert. Diese Worst-Case-Programmierzeit wird auf der Grundlage der Modellierung oder des Experimentierens von Anti-Sicherungs-Speicherzellen, die am schwierigsten zu programmieren sind, ausgewählt und von einer Zustandsmaschine (nicht dargestellt) oder einer anderen Steuerlogik (nicht dargestellt) des Speichergeräts implementiert, die das Timing und die Anwendung von Signalen steuert. Solche Zellen würden einen längeren Zeitraum benötigen, um eine schwache leitende Verbindung zu bilden.
  • Die zuvor beschriebenen zufälligen PUF-Programmierausführungen werden mit der Anti-Sicherungs-Speicherzelle mit einem Transistor in 2 dargestellt. Die zuvor beschriebenen PUF-Programmierausführungen gelten für jede Speicherzelle, die über eine Anti-Sicherungseinrichtung verfügt, unabhängig von der Anzahl der Transistoren, aus denen sich die Zelle zusammensetzt. Beispielsweise kann die Anti-Sicherungs-Speicherzelle mit zwei Transistoren in 1 anstelle der Anti-Sicherungs-Speicherzelle mit gleicher Effektivität verwendet werden. 11 ist ein Diagramm eines PUF-Datenprogrammiersystems ähnlich 5A, mit der Ausnahme, dass die Anti-Sicherungs-Speicherzellen 100 und 102 durch Zwei-Transistor-Anti-Sicherungs-Speicherzellen 600 und 602 ersetzt sind. Die gleichen Bezugszeichen wie in den vorangegangenen Figuren bezeichnen die gleichen Elemente, die bereits beschrieben wurden. Die Elemente, die sich zwischen 11 und 5A unterscheiden, werden nun beschrieben. Die Treiberschaltung aus den Transistoren 204 und 206 fungiert nun als Zellentreiber (cell plate (CP)) zum Anlegen einer Programmierspannung VPGM an das Gate 44 der Zellen 600 und 602 als Antwort auf das Zellplattenauswahlsignal SEL_CP. In diesem Beispiel steuert eine separate Wortleitungstreiberschaltung 604 eine Wortleitung, die mit den Gattern 32 der Zellen 600 und 602 verbunden ist, als Antwort auf das Wortleitungsauswahlsignal SEL_WL. Die zufällige PUF-Programmierung ist genau die gleiche wie vorstehend für die Ausführungsform von 5A beschrieben, mit Ausnahme des zusätzlichen Schrittes der Ansteuerung einer ausgewählten Wortleitung, um den Bitleitungskontakt 42 für die Dauer des Programmiervorgangs elektrisch mit dem Kanal unter Gate 44 zu koppeln. Diese Wortleitungsspannung sollte so hoch sein, dass der gesamte Strom von einer leitenden Verbindung zwischen dem Gate 44 und dem darunter liegenden Kanal zum Bitleitungskontakt 40 fließen kann.
  • In dem in 11 gezeigten Beispiel sind ein Wortleitungstreiber und ein Zellentreiber mit einem Paar Anti-Sicherungs-Speicherzellen verbunden. In einer alternativen Konfiguration können zwei Wortleitungstreiber und zwei Zellentreiber gleichzeitig aktiviert werden, um eine eines Paars von Zwei-Transistor-Anti-Sicherungs-Speicherzellen in ähnlicher Weise zu programmieren, wie in 6 dargestellt. In einer solchen Ausführungsform würden die beiden Speicherzellen 600 und 602 direkt mit der gleichen Bitleitung verbunden, wie in 6 dargestellt.
  • Der vorgeschlagene Ansatz ist stabil bezüglich einer Vielzahl von Parametern und signifikanten Prozessschwankungen aufgrund der großen Unterschiede in der Leitfähigkeit zwischen gebrochenen und ungebrochenen Oxiden (mindestens 3 Größenordnungen als Beispiel).
  • Die vorliegenden Ausführungsformen bieten ein hohes Maß an wahrer Zufälligkeit, besser als andere bekannte Techniken. Die vorliegenden Ausführungen bieten eine hohe Zuverlässigkeit über die Zeit und über Lesezyklen und eine hohe Wiederholbarkeit des PUF-Wertes, besser als andere bekannte Techniken.
  • Ein OTP-Speicherbaustein, der auf den zuvor beschriebenen Ausführungsformen basiert, wurde mit einem 180BCD (180nm bipolar-CMOS-DMOS) Verfahren hergestellt, das von Chipherstellern wie z.B. TSMC angeboten wird. Die 12, 13 und 14 zeigen Beispielparameter und Ergebnisse der PUF-Programmierung. Die PUF-Programmierung wurde im zuvor beschriebenen Redundanten PUF-Modus mit einem einzigen, an die Bitleitung gekoppelten Strombegrenzer durchgeführt. 12 zeigt eine Tabelle mit beispielhaften Parametern für die normale Programmierung von OTP-Daten und für die PUF-Programmierung. Die 13 und 14 zeigen die Ergebnisse der OTP PUF-Programmierbarkeitstests bzw. der OTP PUF-Fehlertests für das gefertigte OTP-Speichergerät.
  • Die Tabelle in 12 zeigt die Programmierspannung, die an die Gates der Sicherungen angelegt wird, die Impulslänge, die Anzahl der Impulse, die Anzahl der Bits, die mit dem ersten Impuls programmiert wurden, die an den Gates der Sicherungen anliegende Prüfspannung und die Prüfimpulslänge während der normalen Datenprogrammierung und der PUF-Programmierung. Bei der normalen Datenprogrammierung werden die Parameter so gewählt, dass die Wahrscheinlichkeit, dass eine Zelle nach dem ersten Programmierimpuls programmiert wird, maximiert wird. Wie bereits für die PUF-Programmierung beschrieben, benötigen einige Anwendungen 50% logische 0's und 1's über den gesamten Satz von Bits, aus denen das PUF-Datenwort besteht. Dies wird erreicht, indem in jedem Speicherzellenpaar genau ein Bit programmiert wird. In den vorliegenden Ausführungen erfolgt dies durch Reduzierung der Programmierspannung und der Programmimpulslänge gegenüber der normalen Datenprogrammierung wie in 12 dargestellt, jedoch durch wiederholtes Anlegen des kürzeren Programmierimpulses (mit dazwischenliegenden Lesezyklen zur Überprüfung der erfolgreichen Programmierung einer Speicherzelle). Im vorliegenden Beispiel führt eine minimale Impulslänge von 5µs letztendlich zu 99,9% Zellenpaaren mit einem einzelnen Bit. Typischerweise ist die PUF-Programmierimpulslänge 10 mal bis 100 mal kürzer als bei der normalen Datenprogrammierung.
  • Die Grafik der OTP PUF-Programmierbarkeits-Testergebnisse in 13 zeigt den Prozentsatz der unprogrammierten Stellen (in diesem Beispiel zwei Zellen pro Stelle) nach jedem Impuls für Pulslängen von 5µs, 20µs, 50µs und 150µs über eine kumulative Expositionszeit. Die Grafik zeigt, dass bei vielen kurzen 5µs Pulsen 99,9% Zellenpaare mit einem einzelnen Bit programmiert werden. Je nach Anwendung kann die Verwendung von Pulslängen von 20µs und 50µs zu zufriedenstellenden Ergebnissen führen, wenn 50% logische 0's und 1's nicht benötigt werden.
  • Das OTP PUF-Fehlertestergebnisdiagramm in 14 zeigt die Höhe des Fehlers in der PUF-Programmierung gegen die Programmierimpulslänge. In diesem Diagramm ist der Fehler definiert als der prozentuale Anteil von zwei programmierten Bits pro Zellenpaar. Aus den Ergebnissen in 14 ist deutlich ersichtlich, dass ein 5µs-Puls einen Fehler von <0,1% ergibt. Die Verwendung des 5µs-Pulses führt dazu, dass 99,9% Bit-Zellenpaare nur eine Zelle programmiert haben. Die Verwendung von Impulsen zwischen 50µs und 150µs Dauer führt zu einem Fehler von 0,5% bis 2,1 %, was bedeutet, dass bis zu 2% der Zellpaare beide Zellen programmiert haben.
  • Um auf die Tabelle in 12 zurückzukommen, folgt nun eine kurze Diskussion über die Lese-Verifizierungsspannung und Impulslängen für die normale Datenprogrammierung und die PUF-Programmierung. Während der normalen Datenprogrammierung erfolgt die Lese-Verifizierung mit einer minimalen Lesespannung und einem maximalen Referenzspannungspegel (oder einer minimalen Impulsbreite), um sicherzustellen, dass eine programmierte Zelle genügend Sicherheitsreserve hat. Auf der anderen Seite soll die PUF-Programmier-Lese-Verifizierung frühe Anzeichen eines Oxidausfalls in der Sicherungseinrichtung erkennen. In den vorliegenden Ausführungen geschieht dies, indem die Lese-Verifizierungsspannung beispielhaft auf ein Maximum erhöht wird und ein minimaler Referenzspannungspegel (oder eine maximale Impulsbreite) verwendet wird.
  • Der Fachmann wird verstehen, dass Anti-Sicherungs-Speicherzellen, die mit unterschiedlichen Verfahren aus verschiedenen Fertigungsstätten hergestellt wurden, zu unterschiedlichen Programmierspannungen, Lese-Verifizierungsspannungen und möglicherweise in Kombination mit anderen Impulslängen als in der Tabelle in 12 führen können, um ähnliche Ergebnisse zu erzielen.
  • Die hier beschriebenen Ausführungsformen erfordern keinen Lesevorgang, keine Selbstabschaltung der Beanspruchung für die zweite Sicherung. Die hier beschriebenen Ausführungsformen sorgen für eine hohe Stabilität und Zuverlässigkeit des erzeugten PUF-Wertes über Lesezyklen und Lesebedingungen, und es kommt zu einer minimalen Verschlechterung der Hamming-Distanz über die Zeit. Bekannte Techniken des Standes der Technik haben eine Degradation der Hamming-Distanz von 2-3% im Laufe der Zeit berichtet. Hohe Zufälligkeit und Einzigartigkeit des PUF-Wertes (nahe den idealen Hamming-Abständen) wurde beobachtet.
  • Die zuvor beschriebenen Ausführungsformen verwenden Anti-Sicherungseinrichtungen zur Erzeugung der PUF, wobei die Ausführungsformen nicht unbedingt auf Anti-Sicherungseinrichtungen beschränkt sind. Andere Speichergeräte wie Sicherungen können verwendet werden. Jedes Speichermedium, bei dem für eine erfolgreiche Programmierung Spannungen und Ströme benötigt werden und in der Zelle ein Leitungsweg zwischen einer Wortleitung und einer durch die Programmierung elektrisch mit der Zelle gekoppelten Bitleitung gebildet wird, ist für den Einsatz in den vorliegenden Ausführungsformen geeignet. Während Wortleitungen und Bitleitungen speicherkontextabhängige Begriffe sind, können andere Halbleiterstrukturen mit ähnlicher Funktion wie Wortleitungen und Bitleitungen verwendet werden. Es können verschiedene Strombegrenzungsschaltungen entwickelt werden, um festzustellen, wann eine erste Zelle eines Zellenpaares erfolgreich programmiert wurde. Solche Schaltungen können auf der Grundlage des verwendeten Zelltyps und der Kenntnis des Zellverhaltens entwickelt werden, wenn sie programmiert oder unprogrammiert sind.

Claims (20)

  1. System zur Erzeugung von Werten einer physikalisch unklonierbaren Funktion (PUF), umfassend: ein Paar dielektrischer, auf Durchbruch basierender Anti-Sicherungs-Speicherzellen (100, 102), die jeweils Folgendes aufweisen erste Anschlüsse (66), die elektrisch miteinander verbunden sind, um eine erste Spannung (VPGM) zu empfangen, und zweite Anschlüsse (76), die elektrisch miteinander verbunden sind, um eine zweite Spannung (VSS) zu empfangen, um eine Programmierung einer zufälligen Anti-Sicherungs-Speicherzelle aus dem Paar von Anti-Sicherungs-Speicherzellen zu ermöglichen; und eine Strombegrenzungsschaltung (104), die konfiguriert ist, um die erste Spannung (VPGM) mit den ersten Anschlüssen (66) zu koppeln, während die zweiten Anschlüsse (76) während eines Programmiervorgangs mit der zweiten Spannung (VSS) gekoppelt sind, wobei die Strombegrenzungsschaltung dazu konfiguriert ist, eine Spannungsdifferenz zwischen der ersten Spannung und den ersten Anschlüssen bereitzustellen, nachdem eine erste Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen während des Programmiervorgangs eine leitende Verbindung bildet, die Strom von der Strombegrenzungsschaltung zu den zweiten Anschlüssen leitet, wobei die Spannungsdifferenz die Programmierung einer zweiten Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen verhindert.
  2. PUF-Werterzeugungssystem nach Anspruch 1, wobei die ersten Anschlüsse Gate-Anschlüsse der Anti-Sicherungs-Speicherzellen und die zweiten Anschlüsse Diffusionskontakte der Anti-Sicherungs-Speicherzellen sind, die elektrisch miteinander gekoppelt sind.
  3. PUF-Werterzeugungssystem nach Anspruch 2, wobei die erste Spannung eine Programmierspannung und die zweite Spannung VSS ist.
  4. PUF-Werterzeugungssystem nach Anspruch 3, wobei die Strombegrenzungsschaltung einen Transistor einer Wortleitungstreiberschaltung enthält, der die Programmierspannung an die Gate-Anschlüsse koppelt, und die Spannungsdifferenz ein Spannungsabfall der Gate-Anschlüsse relativ zur Programmierspannung ist.
  5. PUF-Werterzeugungssystem nach Anspruch 4, wobei die Strombegrenzungsschaltung ferner einen Spannungsgenerator zur Bereitstellung der Programmierspannung enthält.
  6. PUF-Werterzeugungssystem nach Anspruch 3, wobei die Strombegrenzungsschaltung einen Spannungsgenerator zur Bereitstellung der Programmierspannung für die Gate-Anschlüsse enthält.
  7. PUF-Werterzeugungssystem nach Anspruch 3, wobei die Strombegrenzungsschaltung einen Transistor einer Schreib-Treiberschaltung enthält, der VSS an die Diffusionskontakte koppelt, und die Spannungsdifferenz ein Spannungsabfall der Diffusionskontakte relativ zu VSS ist.
  8. PUF-Werterzeugungssystem nach Anspruch 3, wobei die Gate-Anschlüsse parallel zu einer durch eine Wortleitungstreiberschaltung angesteuerten Wortleitung geschaltet sind und die Diffusionskontakte mit entsprechenden Bitleitungen verbunden sind.
  9. PUF-Werterzeugungssystem nach Anspruch 8, wobei eine Spaltenzugriffsschaltung konfiguriert ist, um die Bitleitungen selektiv miteinander und mit der Strombegrenzungsschaltung zu koppeln.
  10. PUF-Werterzeugungssystem nach Anspruch 8, wobei die Strombegrenzungsschaltung die Wortleitungstreiberschaltung enthält.
  11. PUF-Werterzeugungssystem nach Anspruch 3, wobei die Gate-Anschlüsse der ersten Anti-Sicherungs-Speicherzelle und der zweiten Anti-Sicherungs-Speicherzelle mit verschiedenen gleichzeitig aktivierten Wortleitungstreiberschaltungen verbunden sind und die Diffusionskontakte mit einer gemeinsamen Bitleitung verbunden sind.
  12. PUF-Werterzeugungssystem nach Anspruch 11, wobei eine Spaltenzugriffsschaltung konfiguriert ist, um die gemeinsame Bitleitung selektiv mit der Strombegrenzungsschaltung zu koppeln.
  13. Verfahren zur Erzeugung von Werten einer physikalisch unklonierbaren Funktion (PUF), umfassend: Anlegen einer ersten Spannung (VPGM) an erste Anschlüsse (66) eines Paares von elektrisch miteinander gekoppelten Anti-Sicherungs-Speicherzellen (100, 102); Anlegen einer zweiten Spannung (VSS) an zweite Anschlüsse (76) des Paares von Anti-Sicherungs-Speicherzellen (100, 102), die elektrisch miteinander gekoppelt sind, wobei die erste Spannung und die zweite Spannung zur Programmierung einer zufälligen Anti-Sicherungs-Speicherzelle aus dem Paar von Anti-Sicherungs-Speicherzellen wirksam sind; Bilden einer leitenden Verbindung in einer ersten Anti-Sicherungs-Speicherzelle des Paares von Anti-Sicherungs-Speicherzellen als Reaktion auf die erste Spannung und die zweite Spannung, um Strom von den ersten Anschlüssen zu den zweiten Anschlüssen zu leiten; und Ändern eines Spannungspegels der ersten Anschlüsse als Reaktion auf den Strom, der von den ersten Anschlüssen zu den zweiten Anschlüssen geleitet wird, der für die Hemmung der Programmierung einer zweiten Sicherungsspeicherzelle des Paares von Sicherungsspeicherzellen wirksam ist.
  14. Verfahren nach Anspruch 13, wobei das Ändern des Spannungspegels ein Begrenzen des Stroms zwischen der ersten Spannung und den ersten Anschlüssen einschließt.
  15. Verfahren nach Anspruch 14, wobei das Begrenzen des Stroms das Bereitstellen eines Spannungsabfalls der ersten Anschlüsse relativ zur ersten Spannung umfasst.
  16. Verfahren nach Anspruch 15, wobei das Anlegen der ersten Spannung das Ansteuern einer Wortleitung, die mit den ersten Anschlüssen verbunden ist, mit der ersten Spannung mit einem Wortleitungstreiber umfasst, und ein Transistor des Wortleitungstreibers den Spannungsabfall der Wortleitung relativ zu der ersten Spannung liefert.
  17. Verfahren nach Anspruch 16, wobei das Anlegen der zweiten Spannung die selektive Kopplung von Bitleitungen, die mit den zweiten Anschlüssen verbunden sind, an die zweite Spannung umfasst.
  18. Verfahren nach Anspruch 14, wobei das Begrenzen des Stroms das Bereitstellen eines Spannungsabfalls der zweiten Spannung relativ zu den zweiten Anschlüssen umfasst.
  19. Verfahren nach Anspruch 18, wobei das Anlegen der ersten Spannung das Ansteuern von Bitleitungen, die mit den ersten Anschlüssen verbunden sind, mit der ersten Spannung mit einem Schreib-Treiber umfasst, und ein Transistor des Schreib-Treibers den Spannungsabfall der ersten Spannung relativ zu den Bitleitungen liefert.
  20. Verfahren zur Programmierung einer physikalisch unklonierbaren Funktion (PUF), umfassend: Ausführen einer Programmieroperation an einer vorbestimmten Anzahl von Paaren von Anti-Sicherungs-Speicherzellen (100, 102), bis erkannt wird, dass eine Anti-Sicherungs-Speicherzelle jedes Paares mindestens einen ersten Lesestrom hat; Lesen einer Anti-Sicherungs-Speicherzelle von jedem der vorbestimmten Anzahl von Paaren von Anti-Sicherungs-Speicherzellen, um ein PUF-Datenwort unter Verwendung einer Referenzspannung zu erhalten, die zur Erfassung des ersten Lesestroms ausgewählt wurde; und Umprogrammierung des PUF-Datenwortes, um programmierte Anti-Sicherungs-Speicherzellen mit einem zweiten Lesestrom größer als der erste Lesestrom zu erhalten.
DE112016006170.6T 2016-01-08 2016-12-30 Puf-werterzeugung unter verwendung einer anti-schmelzsicherungs-speicheranordnung Active DE112016006170B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662276458P 2016-01-08 2016-01-08
US62/276,458 2016-01-08
PCT/CA2016/051552 WO2017117663A1 (en) 2016-01-08 2016-12-30 Puf value generation using an anti-fuse memory array

Publications (2)

Publication Number Publication Date
DE112016006170T5 DE112016006170T5 (de) 2018-09-27
DE112016006170B4 true DE112016006170B4 (de) 2021-07-29

Family

ID=59270760

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016006170.6T Active DE112016006170B4 (de) 2016-01-08 2016-12-30 Puf-werterzeugung unter verwendung einer anti-schmelzsicherungs-speicheranordnung

Country Status (6)

Country Link
US (1) US10032521B2 (de)
CN (1) CN108701486B (de)
CA (1) CA2952941C (de)
DE (1) DE112016006170B4 (de)
TW (1) TWI689933B (de)
WO (1) WO2017117663A1 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7916544B2 (en) * 2008-01-25 2011-03-29 Micron Technology, Inc. Random telegraph signal noise reduction scheme for semiconductor memories
US10910079B2 (en) * 2016-05-09 2021-02-02 Intrinsic Id B.V. Programming device arranged to obtain and store a random bit string in a memory device
US10469083B2 (en) * 2016-07-10 2019-11-05 Imec Vzw Breakdown-based physical unclonable function
US10122538B2 (en) * 2016-10-12 2018-11-06 Ememory Technology Inc. Antifuse physically unclonable function unit and associated control method
US20190066812A1 (en) * 2017-08-24 2019-02-28 Globalfoundries Inc. Tddb percolation current induced e-fuse structure and method of programming same
US10623192B2 (en) * 2017-08-25 2020-04-14 Synopsys, Inc. Gate oxide breakdown in OTP memory cells for physical unclonable function (PUF) security
EP3454318B1 (de) * 2017-09-12 2022-05-11 eMemory Technology Inc. Sicherheitssystem mit entropy bits, die von einer puf generiert werden
TWI652683B (zh) * 2017-10-13 2019-03-01 力旺電子股份有限公司 用於記憶體的電壓驅動器
US11063772B2 (en) * 2017-11-24 2021-07-13 Ememory Technology Inc. Multi-cell per bit nonvolatile memory unit
US11522724B2 (en) * 2017-12-11 2022-12-06 International Business Machines Corporation SRAM as random number generator
US11050575B2 (en) * 2018-01-10 2021-06-29 Ememory Technology Inc. Entanglement and recall system using physically unclonable function technology
US10505521B2 (en) * 2018-01-10 2019-12-10 Ememory Technology Inc. High voltage driver capable of preventing high voltage stress on transistors
KR102471519B1 (ko) * 2018-01-10 2022-11-28 에스케이하이닉스 주식회사 저항 변화 메모리 장치
US20210026604A1 (en) * 2018-03-21 2021-01-28 Indian Institute Of Technology Bombay System and method for generating random bit string in an integrated circuit
EP3562092A1 (de) 2018-04-26 2019-10-30 Thales Dis Design Services Sas Verfahren zur erzeugung eines kryptographischen schlüssels an bord unter verwendung einer physikalisch nicht klonierbaren funktion
TWI669714B (zh) 2018-05-29 2019-08-21 力旺電子股份有限公司 電壓控制裝置及記憶體系統
US10770146B2 (en) * 2018-06-08 2020-09-08 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for PUF generator characterization
US10832765B2 (en) * 2018-06-29 2020-11-10 Taiwan Semiconductor Manufacturing Co., Ltd. Variation tolerant read assist circuit for SRAM
WO2020029226A1 (zh) * 2018-08-10 2020-02-13 深圳市为通博科技有限责任公司 场效应器件、反熔丝、随机数生成装置
WO2020029267A1 (zh) * 2018-08-10 2020-02-13 深圳市为通博科技有限责任公司 物理不可克隆函数puf装置
US10797064B2 (en) * 2018-09-19 2020-10-06 Ememory Technology Inc. Single-poly non-volatile memory cell and operating method thereof
EP3668003A1 (de) * 2018-12-12 2020-06-17 Thales Dis Design Services Sas Verfahren zur durchführung einer physikalischen unklonbaren funktion
FR3091019B1 (fr) 2018-12-21 2021-05-07 St Microelectronics Sa Mémoire de puce électronique
US11469909B2 (en) * 2018-12-28 2022-10-11 Micron Technology, Inc. Physical unclonable function with NAND memory array
US10748591B2 (en) 2019-01-13 2020-08-18 Ememory Technology Inc. Random code generator
US11416416B2 (en) * 2019-01-13 2022-08-16 Ememory Technology Inc. Random code generator with non-volatile memory
CN109962782A (zh) * 2019-01-28 2019-07-02 湖北大学 基于otp电路的puf密钥稳定性增强方法
CN111723408B (zh) * 2019-03-21 2023-06-02 中芯国际集成电路制造(上海)有限公司 用于生成puf特征码的装置
US10886417B2 (en) * 2019-03-29 2021-01-05 Intel Corporation Device, system, and method to change a consistency of behavior by a cell circuit
US10574469B1 (en) 2019-04-10 2020-02-25 Nxp Usa, Inc. Physically unclonable function and method for generating a digital code
CN112151098A (zh) * 2019-06-27 2020-12-29 台湾积体电路制造股份有限公司 多熔丝记忆体单元电路
US11094387B2 (en) * 2019-06-27 2021-08-17 Taiwan Semiconductor Manufacturing Company Limited Multi-fuse memory cell circuit and method
US10878930B1 (en) * 2019-07-12 2020-12-29 Taiwan Semiconductor Manufacturing Company Ltd. Layout structure of memory array
CN112863583A (zh) 2019-11-28 2021-05-28 长鑫存储技术有限公司 可编程存储单元、可编程存储阵列及其读写方法
US11438180B2 (en) * 2020-02-10 2022-09-06 Taiwan Semiconductor Manufacturing Company Limited Systems and methods for providing reliable physically unclonable functions
US11437100B2 (en) * 2020-04-06 2022-09-06 Crossbar, Inc. Distinct chip identifier sequence utilizing unclonable characteristics of resistive memory on a chip
US11727986B2 (en) * 2020-04-06 2023-08-15 Crossbar, Inc. Physically unclonable function (PUF) generation involving programming of marginal bits
US11823739B2 (en) * 2020-04-06 2023-11-21 Crossbar, Inc. Physically unclonable function (PUF) generation involving high side programming of bits
CN113540045A (zh) * 2020-04-15 2021-10-22 合肥晶合集成电路股份有限公司 一种反熔丝电路
US11250922B2 (en) * 2020-04-20 2022-02-15 AP Memory Technology Corp. Memory cell, memory device, and related identification tag
CN112017721B (zh) * 2020-07-07 2022-03-18 温州大学 一种基于漏电流的弱物理不可克隆函数电路
CN113129985B (zh) * 2021-03-29 2024-05-03 深圳市国微电子有限公司 一种物理不可克隆单元及读取电路
US20230047939A1 (en) 2021-08-13 2023-02-16 Ememory Technology Inc. Fuse-type one time programming memory cell
US11990183B2 (en) * 2022-03-31 2024-05-21 Taiwan Semiconductor Manufacturing Company, Ltd. Memory system with physical unclonable function

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060291316A1 (en) 2005-06-28 2006-12-28 Jenne Fredrick B Antifuse circuit with dynamic current limiter
US7402855B2 (en) 2004-05-06 2008-07-22 Sidense Corp. Split-channel antifuse array architecture
US7755162B2 (en) 2004-05-06 2010-07-13 Sidense Corp. Anti-fuse memory cell
US20120106235A1 (en) 2010-11-03 2012-05-03 International Business Machines Corporation Implementing physically unclonable function (puf) utilizing edram memory cell capacitance variation

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2990783B2 (ja) * 1989-11-30 1999-12-13 セイコーエプソン株式会社 半導体記憶装置
US5276653A (en) * 1991-02-13 1994-01-04 Mckenny Vernon G Fuse protection circuit
US5923672A (en) * 1997-06-04 1999-07-13 Micron Technology, Inc. Multipath antifuse circuit
US6836000B1 (en) * 2000-03-01 2004-12-28 Micron Technology, Inc. Antifuse structure and method of use
US6480419B2 (en) * 2001-02-22 2002-11-12 Samsung Electronics Co., Ltd. Bit line setup and discharge circuit for programming non-volatile memory
FR2838233A1 (fr) * 2002-04-04 2003-10-10 St Microelectronics Sa Procede de programmation de cellules memoire par claquage d'elements antifusible
US6859408B2 (en) * 2002-08-29 2005-02-22 Micron Technology, Inc. Current limiting antifuse programming path
US7026217B1 (en) 2003-10-29 2006-04-11 Lsi Logic Corporation Method of forming an antifuse on a semiconductor substrate using wet oxidation of a nitrided substrate
US6972985B2 (en) 2004-05-03 2005-12-06 Unity Semiconductor Corporation Memory element having islands
US7224630B2 (en) * 2005-06-24 2007-05-29 Freescale Semiconductor, Inc. Antifuse circuit
US7391638B2 (en) * 2006-10-24 2008-06-24 Sandisk 3D Llc Memory device for protecting memory cells during programming
CA2729505C (en) * 2006-12-22 2012-11-13 Sidense Corp. Dual function data register
EP2115652B1 (de) * 2007-02-20 2019-04-10 Nxp B.V. Halbleitervorrichtung mit rückseitigem fälschungsschutz
US7538597B2 (en) * 2007-08-13 2009-05-26 Hong Kong Applied Science And Technology Research Institute Co. Ltd. Fuse cell and method for programming the same
US20090086521A1 (en) 2007-09-28 2009-04-02 Herner S Brad Multiple antifuse memory cells and methods to form, program, and sense the same
US8254198B2 (en) * 2007-10-03 2012-08-28 Stmicroelectronics (Crolles 2) Sas Anti-fuse element
FR2938109A1 (fr) * 2008-11-05 2010-05-07 St Microelectronics Rousset Memoire eeprom protegee contre les effets de claquage de transistors mos
US8395923B2 (en) * 2008-12-30 2013-03-12 Intel Corporation Antifuse programmable memory array
JP2011060359A (ja) 2009-09-08 2011-03-24 Elpida Memory Inc 半導体装置
CA2682092C (en) 2009-10-30 2010-11-02 Sidense Corp. And-type one time programmable memory cell
TWI496075B (zh) 2010-06-03 2015-08-11 Univ Michigan 隨機化數值之產生
DE102010024622B4 (de) 2010-06-22 2012-12-13 Infineon Technologies Ag Identifikationsschaltung und Verfahren zum Erzeugen eines Identifikationsbits
US8868923B1 (en) 2010-07-28 2014-10-21 Sandia Corporation Multi-factor authentication
EP2643750B1 (de) * 2010-11-24 2015-01-07 Intrinsic ID B.V. Physikalische unklonbare funktion
US8418006B1 (en) * 2010-12-07 2013-04-09 Xilinx, Inc. Protecting a design for an integrated circuit using a unique identifier
US8386990B1 (en) * 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
US20120183135A1 (en) 2011-01-19 2012-07-19 Verayo, Inc. Reliable puf value generation by pattern matching
CN107612685A (zh) * 2011-12-29 2018-01-19 英特尔公司 使用在物理上不可克隆的函数的安全密钥存储
KR20140011790A (ko) * 2012-07-19 2014-01-29 삼성전자주식회사 멀티 레벨 안티퓨즈 메모리 장치 및 이의 동작 방법
US8941405B2 (en) 2012-08-03 2015-01-27 International Business Machines Corporation FET pair based physically unclonable function (PUF) circuit with a constant common mode voltage
US9093128B2 (en) 2012-11-05 2015-07-28 Infineon Technologies Ag Electronic device with a plurality of memory cells and with physically unclonable function
US8861736B2 (en) 2012-11-19 2014-10-14 International Business Machines Corporation Reliable physical unclonable function for device authentication
US9083323B2 (en) 2013-02-11 2015-07-14 Qualcomm Incorporated Integrated circuit identification and dependability verification using ring oscillator based physical unclonable function and age detection circuitry
US20140268994A1 (en) 2013-03-14 2014-09-18 United States Of America As Represented By The Secretary Of The Air Force Write-Time Based Memristive Physical Unclonable Function
CN103336930A (zh) 2013-05-28 2013-10-02 戴葵 一种新型的puf电路体系结构
WO2015027070A1 (en) 2013-08-21 2015-02-26 Carnegie Mellon University Reliability of physical unclonable function circuits
US9343135B2 (en) * 2013-09-09 2016-05-17 Qualcomm Incorporated Physically unclonable function based on programming voltage of magnetoresistive random-access memory
US9298946B2 (en) 2013-09-09 2016-03-29 Qualcomm Incorporated Physically unclonable function based on breakdown voltage of metal-insulator-metal device
US9189654B2 (en) * 2013-12-04 2015-11-17 International Business Machines Corporation On-chip structure for security application
CN103745750A (zh) * 2013-12-25 2014-04-23 苏州宽温电子科技有限公司 一种基于熔丝特性的改进的差分架构otp存储单元
US9577637B2 (en) * 2014-02-19 2017-02-21 Altera Corporation Stability-enhanced physically unclonable function circuitry
CN103902929B (zh) 2014-03-10 2017-06-27 杭州晟元数据安全技术股份有限公司 基于双延时链的物理不可克隆函数电路结构
CN104283549B (zh) 2014-09-15 2017-05-10 宁波大学 一种基于mosfet零温度系数点的puf电路
CN104579631A (zh) 2014-12-15 2015-04-29 天津大学 基于锁存型电压灵敏放大器puf的aes密钥产生结构及方法
US9985791B2 (en) * 2015-08-13 2018-05-29 Arizona Board Of Regents Acting For And On Behalf Of Northern Arizona University Physically unclonable function generating systems and related methods
US9613714B1 (en) * 2016-01-19 2017-04-04 Ememory Technology Inc. One time programming memory cell and memory array for physically unclonable function technology and associated random code generating method
US10476680B2 (en) * 2016-02-03 2019-11-12 Ememory Technology Inc. Electronic device with self-protection and anti-cloning capabilities and related method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7402855B2 (en) 2004-05-06 2008-07-22 Sidense Corp. Split-channel antifuse array architecture
US7755162B2 (en) 2004-05-06 2010-07-13 Sidense Corp. Anti-fuse memory cell
US20060291316A1 (en) 2005-06-28 2006-12-28 Jenne Fredrick B Antifuse circuit with dynamic current limiter
US20120106235A1 (en) 2010-11-03 2012-05-03 International Business Machines Corporation Implementing physically unclonable function (puf) utilizing edram memory cell capacitance variation

Also Published As

Publication number Publication date
CN108701486A (zh) 2018-10-23
CA2952941C (en) 2018-12-11
CN108701486B (zh) 2022-03-11
WO2017117663A1 (en) 2017-07-13
TWI689933B (zh) 2020-04-01
CA2952941A1 (en) 2017-07-08
US20170200508A1 (en) 2017-07-13
DE112016006170T5 (de) 2018-09-27
TW201737260A (zh) 2017-10-16
US10032521B2 (en) 2018-07-24

Similar Documents

Publication Publication Date Title
DE112016006170B4 (de) Puf-werterzeugung unter verwendung einer anti-schmelzsicherungs-speicheranordnung
DE4036973C2 (de) Schaltung zur Erzeugung einer gegenüber einer extern zugeführten Versorgungsspannung erhöhten Lösch- oder Programmierspannung in einer Halbleiter-Speicherschaltung
DE102010024622B4 (de) Identifikationsschaltung und Verfahren zum Erzeugen eines Identifikationsbits
DE3936676C2 (de)
DE69524507T2 (de) Selbst-Programmierschaltung für eine nicht-flüchtige Speicheranordnung
DE60305217T2 (de) Speichervorrichtung mit Schalter für hohe Spannungen
DE69428336T2 (de) Integrierte Halbleiterschaltungsanordnung
DE69227413T2 (de) Zwischenspeicherschaltung für Daten mit einer nichtlöschbaren Speicherzelle
DE3851847T2 (de) Integrierte Halbleiterschaltung mit einer Mehrzahl von Schaltungsblöcken äquivalenter Funktionen.
DE60304746T2 (de) Verfahren und Vorrichtung zur Verifikation eines Gate-Oxide Fuse-Elementes
DE202013101729U1 (de) Einmalig programmierbarer Speicher und integrierte Schaltung, die diesen aufweist
DE3032657A1 (de) Nichtfluechtige, elektrisch aenderbare statische halbleiter-speicheranordnung mit wahlfreiem zugriff.
DE102008041947B4 (de) Verfahren und Einrichtung zum irreversiblen Programmieren und Lesen nicht-flüchtiger Speicherzellen
DE3138363A1 (de) Redundanzschaltung fuer speicher
DE112019007183T5 (de) ReRAM-Speicherzelle mit Doppelwortleitungssteuerung
DE102016121136A1 (de) Halbleiterspeicher
DE102018127085A1 (de) Balancierte koppelungsstruktur für eine anwendung einer physisch nicht klonbaren funktion (puf)
DE3714980C2 (de)
DE112004002678T5 (de) 2-Transistoren-Schmelzsicherungselement mit einzelner Polysiliziumschicht
DE102005019587B4 (de) Fuse-Speicherzelle mit verbessertem Schutz gegen unberechtigten Zugriff
DE19963417A1 (de) Nichtflüchtiger ferroelektrischer Speicher
DE102007017642B4 (de) Prüfschaltungsanordnung, Verfahren zum Prüfen von Latch-Einheiten, und Latch-Einheit
DE112007002700B4 (de) Schaltungsanordnung, umfassend ein Speicherzellenfeld, und Verfahren zu deren Betrieb
EP0658905B1 (de) Elektronische Speicherschaltung
DE102006046089B3 (de) Speicherelement und Verfahren zum Betreiben eines Speicherelementes

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final