-
Hintergrund
-
Mehrere
hierin beschriebene Ausführungsbeispiele
beziehen sich auf ein Verfahren und eine Vorrichtung zum Betreiben
von maskierbaren Speichern und insbesondere auf Auslesestrategien
und Vorrichtungen zum Betreiben dieser Speicherelemente auf eine
bezüglich
der Energie und Halbleiterfläche
effiziente Weise.
-
Auf
dem Gebiet von Sicherheitsanwendungen, insbesondere für Speicherschaltungsanordnungen,
sind verschiedene Angriffsverfahren bekannt, vor denen eine Speicherschaltungsanordnung
zu schützen
ist. Die differentielle Leistungsanalyse (DPA – differential power analysis)
ist eine übliche
Technik zum Angreifen von ICs (IC = integrated circuit, integrierte
Schaltung) und/oder Speicherschaltungsanordnungen. Diese Angriffe
dienen auch dazu, die Sensitivität
von Baugruppen für
Sicherheitsanwendungen bezüglich
absichtlicher Angriffe auf „vertrauliche” Informationen
wie beispielsweise Passwörter oder
kryptographische Schlüssel
einzuschätzen.
Für ein
gegebenes Programm oder einen gegebenen Algorithmus werden bei diesen
Angriffen Leistungsprofile, die anhand statistischer Verfahren gemessen werden,
und/oder ihre Ladungsintegrale, die über einen oder mehrere Taktzyklen
berechnet werden, ausgewertet, wobei für eine Vielzahl von Programmausführungen
Schlussfolgerungen bezüglich
der zu schützenden
Informationen aus der Korrelation einer systematischen Datenvariation
und eines jeweiligen Ladungsintegrals gezogen werden können.
-
Eine
Art und Weise, DPA-Angriffe zumindest beträchtlich zu erschweren, besteht
darin, unter Teilsystemen einer IC Daten verschlüsselt auszutauschen oder zu
transferieren, soweit dies möglich
ist. Ein mögliches
Verschlüsselungssystem
für diesen Zweck,
wie es sich als sicher erweist, ist die so ge nannte One-Time-Pad-Verschlüsselung
(Einmal-Block-Verschlüsselung).
Bei diesem Verfahren werden als Bitsequenz codierte Klartexte m
= (m1, m2...) mit
Schlüsseln
k = (k1, k2...)
verschlüsselt,
die aus wahrhaft zufälligen
Sequenzen erhalten wurden, gemäß c = e(k,
m) = (k1 ⊕ m1,
k2 ⊕ m2...), das heißt, ein Bit cj des
Chiffriertexts c = e(m,k) ergibt sich aus der XOR-Verknüpfung kj ⊕ mj der entsprechenden Bits des Schlüssels k
und des Klartexts m. Auf Grund von k ⊕ k = 0 und 0 ⊕ k = k
gilt kj ⊕ cj =
mj, das heißt die Entschlüsselung
von c, um den Klartext m wiederherzustellen, findet gemäß derselben
bitweisen XOR-Verknüpfung
statt.
-
Bei
einem One-Time-Pad-Verschlüsselungssystem
ist es wichtig, dass jede Schlüsselsequenz
für die
Verschlüsselung
und die Entschlüsselung
jeweils nur einmal verwendet wird, da andernfalls Informationen über Klartexte
anhand statistischer Verfahren ermittelt werden können.
-
1 zeigt
ein Beispiel einer Matrix bzw. eines Feldes von maskierbaren Speicherzellen,
die entwickelt werden, um das Problem zu überwinden, dass Daten, die
ohne Verschlüsselung
in einer Speicherzelle gespeichert sind, transportiert werden müssen, d.
h. dass eine One-Time-Pad-Verschlüsselung gleichzeitig mit einem
Auslesen der gespeicherten Daten angewendet wird, wie nachstehend
ausführlicher
erläutert
wird.
-
Bei
den folgenden Überlegungen
wird eine exemplarische Speicherzelle 160 der Speicherzellenmatrix
der 1 erörtert.
-
1 zeigt
eine mROM-Zelle 160. Die mROM-Zelle 160 ist auf
eine logische 0 programmiert, wobei eine Programmierung auf eine
logische 1 durch in gestrichelten Linien gezeichnete Verbindungen
bezeichnet ist. Die mROM-Zelle 160 zeigt eine Wortleitung 150,
bei der ein binäres
Abfragesignal angelegt werden kann. Ferner weist die mROM-Zelle 160 einen
ersten Ausgang 110 für
einen ersten binären
Wert bl und einen zweiten Ausgang 120 für einen zweiten binären Wert
blq, der zu dem ersten binären
Wert bl komplementär
ist, auf. Ferner weist die mROM-Zelle 160 einen ersten
Eingang 130 für
einen ersten Maskenwert m und einen zweiten Eingang 140 für einen
zweiten Maskierungswert mq, der zu dem ersten Maskierungswert m
komplementär ist,
auf (wobei sie zusammen ein gültiges
Maskensignal sind, das zwei logisch komplementäre Teilsignale m und mq aufweist).
-
In
den folgenden Figuren sind die Logikelemente vorwiegend durch n-Kanal-
und p-Kanal-FETs verwirklicht. Ihre Steuersignale sind in Kleinbuchstaben
angegeben. Der Übersichtlichkeit
halber wird auf die Einführung
zusätzlicher
Bezugszeichen für
alle Bauelemente verzichtet. Signale, die in einer Dual-Rail-Logik bzw. Doppelschienen-Logik
implementiert sind, sind in 1 durch
Kleinbuchstaben wie z. B. m und bl angegeben, und die komplementären Komponenten
sind durch einen anschließenden Kleinbuchstaben
q wie z. B. mq und bq angegeben.
-
1 zeigt
eine exemplarische Implementierung einer mROM-Zelle 160, die n-Kanal-FETs aufweist.
Diese spezifische Implementierung stellt lediglich ein Ausführungsbeispiel
dar und ist nicht einschränkend,
es sind auch andere Ausführungsbeispiele
bei Implementierungen denkbar, die p-Kanal-FETs oder sonstige Transistoren
und/oder elektrische Schalter aufweisen. 1 zeigt
ferner einen ersten Transistor 170, der mit der Wortleitung 150 (wl)
gekoppelt und über
diese steuerbar ist. Der Transistor 170 ist einerseits
mit einem Referenzsignal oder einem Referenzpotenzial 195 und über einen zweiten
FET 180 mit dem Ausgang 110 für den ersten binären Wert
gekoppelt. Ferner ist der Transistor 170 über einen
dritten FET 190 mit dem Ausgang 120 für den zweiten
binären
Wert gekoppelt. Der zweite FET 180 ist ausgehend von dem
zweiten Maskierungswert mq und/oder über den Eingang 140 steuerbar.
Der dritte FET 190 ist über
den ersten Maskierungswert m und/oder über den Eingang 130 steuerbar.
-
Die
in 1 dargestellte Verbindung entspricht somit einer
gespeicherten logischen 0, wobei die gestrichelten Linien die Steuerung
der Transistoren 180 und 190 für den Fall, dass eine logische
1 gespeichert wurde, bezeichnen. Die Betrachtung des Ausführungsbeispiels
der gespeicherten logischen 0 ist nicht als Einschränkung gdacht.
-
Während eines
Auslesens wird das Bitleitungspaar (bl,blq) für eine aktivierte Wortleitung
wl = 1 und mit den Maskierungswerten (m,mq) = (0,1) von seinem Vorladezustand
(1,1) in den Zustand (0,1) gebracht, wohingegen für (m,mq)
= (1,0) die Bezeichnungen von bl und blq vertauscht werden, während (bl,blq)
dann den Zustand (1,0) annimmt. Ein ausreichend häufiges Vertauschen
von (m,mq) vertauscht jedes Mal auch die Bezeichnungen von bl und
blq. Das Risiko eines DPA-Angriffs kann somit verringert werden,
und ein Sondieren wird ebenfalls wesentlich erschwert.
-
2 zeigt
eine Verallgemeinerung des Konzepts der 1 auf wiederbeschreibbare RAM-Zellen.
Die grundlegende Funktionalität
des Maskierungsvorgangs ist im Wesentlichen dieselbe, die zuvor
in 1 erörtert
wurde. Wenn man als Beispiel die Speicherzelle 200 betrachtet,
werden die in der Speicherzelle gespeicherten Daten wie üblich unter
Verwendung zweier gelatchter bzw. zwischengespeicherter Inverter 202a und 202b bewahrt.
Im Vergleich zu einer ROM-Zelle muss beim Implementieren von Dual-Rail-Logik
mit RAM-Zellen auf beide in den gelatchten Invertern gespeicherte
Zustände gleichzeitig
zugegriffen werden, somit werden zwei Lese-/Schreibtransistoren 204a und 204b,
die durch die Wortleitung 210 aktiviert werden, verwendet.
Da die zwei möglichen
logischen Zustände
in den gelatchten Invertern 202a und 202b gespeichert
werden können,
ist es zwingend erforderlich, in der Lage zu sein, jeden der Ausgänge zu einer
der Bitleitungen 220a oder 220b zu schalten. Deshalb
sind vier Steuertransistoren 230a, 230b, 240a und 240b erforderlich,
die äquivalent
zu der Speicher zelle der 1 durch die Maskenbitleitungen 250a und 250b gesteuert
werden.
-
Um
eine Matrix von maskierbaren Speicherzellen zu betreiben, ist eine
geeignete Zugriffslogik erforderlich, wie nachstehend kurz zusammengefasst
wird.
-
Das
Blockdiagramm in 3 zeigt eine mROM-Adresse und/oder
einen mROM-Datenfluss. 3 zeigt einen Adress-Latch bzw.
Adress-Latch mit einer Single-Zu-Dual-Rail-Umwandlung bzw. Einzelschiene-zu-Doppelschiene-Umwandlung 810. 3 zeigt
ferner einen Maskierte-Adresse-Decodierer 820, der dahin
gehend wirksam ist, die Adressen in Adresspositionen aufzuteilen,
die eine Zeile von Speicherzellen, auf die zugegriffen werden soll (mAdr_msb),
und eine Spalte von Speicherzellen, auf die zugegriffen werden soll
(mAdr_lsb), angeben. Ein Wortleitungstreiber 830 wird dazu
verwendet, die Zeilen, auf die zugegriffen werden soll, zu adressieren.
Die maskierte ROM-Zelle 840 kann gemäß einer Mehrzahl maskierter
ROM-Zellen des Ausführungsbeispiels
der 1 zusammengebaut sein. 3 zeigt
ferner einen Maskierte-Bitleitung-Multiplexer 850 mit einer
peripheren Verbindung und einen Steuerblock 860, der Freigabesignale
für die
einzelnen Komponenten liefert und somit eine Eigentaktung verwirklicht.
-
Der
Steuerblock 860 koordiniert ferner die Vorladezustände der
einzelnen Komponenten. Der Adress-Latch 810 wird extern
mit Adresseingängen mAdr
versehen, die eine Breite eines Bits aufweisen und die mit einer
Maske maskiert sind, die aus einer weiteren Eingangssignalmaske,
die eine Breite von m Bits aufweist, resultiert. Ausgehend von diesen zwei
Eingangssignalen kann der Adress-Latch 810 die mAdr_msb
(msb = most significant bit, höchstwertiges
Bit) Adressen der höchsten
Ordnung mit einer Breite von a_msb Bits zur Auswahl an den Maskierte-Adresse-Decodierer 820 weiterleiten,
der auf der Basis einer Maske mask_msb mit einer Breite von m_msb
Bits eine Demaskierung derselben vornimmt.
-
Das
Maskensignal mask_msb resultiert aus der eingegebenen Signalmaske.
-
Der
Maskierte-Adresse-Decodierer 820 kann nun die Signale mask_Wl
mit einer Breite von m_mWl Bits zur Demaskierung der Signale mWl
mit einer Bitbreite von a_mWl an den Wortleitungstreiber 830 weiterleiten.
Der Wortleitungstreiber 830 ist in der Lage, aus diesen
Signalen die Wortleitungssignale mit einer Breite von a_mWl Bits,
die als Klartext vorliegen, zu extrahieren. Auf der Basis dieser
Signale kann die maskierte ROM-Zelle 840 nun einen Adressbereich
lesen und denselben mit einer Breite von d_mbl Bits in einem Signal
mBl an den Maskierte-Bitleitung-Multiplexer 850 liefern.
Der Maskierte-Bitleitung-Multiplexer 850 empfängt ferner
von dem Adress-Latch 810 die Signale mAdr_lsb (lsb = least
significant bit, niedrigstwertiges Bit) mit einer Breite von a_lsb
Bits und das Signal mask_lsb mit einer Breite von m_lsb Bits zum
Maskieren derselben. Auf der Basis dieser Signale kann der Maskierte-Bitleitung-Multiplexer 850 die
gewünschten
Daten aus dem durch das maskierte ROM-Zellenfeld 840 gelieferten
Datenbereich extrahieren und dieselben an dem Ausgang als mDo mit
einer Breite von d Bits bereitstellen. Der Maskenbitleitungsmultiplexer
empfängt
ferner von dem Adress-Latch das Signal mask_dbl, das derselbe an
das maskierte ROM-Zellenfeld 840 weiterleitet und auf der
Basis dessen die Datenbereiche maskiert werden können, das heißt diese
Signale ermöglichen
das bitweise Umschalten zwischen einer normalen und einer komplementären Darstellung
des Datenbereichs.
-
Das
heißt
mAdr steht für
die a Bits breiten Maskierte-Adresse-Eingänge, mask
(Maske) stellt die m Bits breiten Masken für zumindest mAdr und mDo, die
d Bits breiten Ausgänge,
die mit Maske maskiert sind, dar. Die Signale mAdr_msb, die a_msb
Bits breit sind, umfassen die Höchste-Ordnung-Adressen
(Dual-Rail-Adressen) für
die Auswahl von mit a_mWl maskierten Wortleitungen mWl, mask_msb
und mask_Wl umfassen die entspre chenden m_msb Bits bzw. m_mWl Bits
breiten Masken. Die Signale wl umfassen die a_mWl Bits breiten Wortleitungen
und allgemein mehrere mROM-Zellenfelder, die parallel gelesen werden
können
und bei dem betrachteten Ausführungsbeispiel
als Klartext vorliegen. Das Signal mbl umfasst die d_mbl Bits breiten
Bitleitungspaare, die mit den m_mbl Bits breiten Masken von allgemein
mehreren mROM-Zellenfeldern maskiert sind, aus denen die d Bits
breiten Datenausgänge
mDo mit der mAdr_lsb Bits breiten niedrigsten Ordnung und mit den
m_lsb (die a_lsb Bits breiten Dual-Rail-Adressen der niedrigsten
Ordnung, die mit den m_lsb Bits breiten Masken mask_lsb maskiert
sind) ausgewählt
sind.
-
Wie
aus den zuvor beschriebenen Implementierungen ersichtlich wird,
verwenden Maskierungs- und Dual-Rail-Implementierungen komplexe Speicherzellen
und komplexe Betriebsschaltungsanordnungen, um die erhöhten Sicherheitsanforderungen
zu erfüllen.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, eine Matrix maskierter
Speicherzellen, maskierte Nur-Lese-Speicherzellen, eine maskierte Nur-Lese-Speichermatrix
sowie eine maskierte Speicherzelle zu liefern.
-
Diese
Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Weiterbildungen finden
sich in den abhängigen
Ansprüchen.
-
Mehrere
nachstehend erörterte
Ausführungsbeispiele
verringern die Komplexität
des Entwurfs der Speicherzellen der Schaltungsanordnung, die zum
Betreiben der maskierten Speicherzellen verwendet wird, indem sie
die Anzahl von benötigten Komponenten
oder Bitleitungen verringern und somit gleichzeitig den Energieverbrauch
sowie die benötigte
Chipfläche
reduzieren, um Hochsicherheitsspeicher, die maskierte Speicherungszellen
und Transportpfade verwenden, zu implementieren.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 eine
maskierte ROM-Zelle;
-
2 eine
maskierte RAM-Zelle;
-
3 ein
Blockdiagramm eines Zugriffsschemas, um auf maskierte Speicherzellen
zuzugreifen;
-
4 ein
alternatives Ausführungsbeispiel zum
Zugreifen auf maskierte Speicherzellen;
-
5 ein
Ausführungsbeispiel
einer Zugriffsschaltungsanordnung, die Multiplexierungsfunktionalitäten implementiert;
-
6 ein
Ausführungsbeispiel
eines Ausleseschemas zum Zugreifen auf Bitleitungen;
-
7 ein
Ausführungsbeispiel
eines Dual-Rail-zu-Single-Rail-Auslese-Latch;
-
8 ein
Ausführungsbeispiel
eines Maskierte-Adresse-Decodierers;
-
9 ein
Ausführungsbeispiel
einer alternativen Zellenmatrixkonfiguration;
-
10 ein
Ausführungsbeispiel
einer effizienten Implementierung einer maskierten Speicherzelle;
-
11 ein
alternatives Ausführungsbeispiel einer
Implementierung einer maskierten Speicherzelle;
-
12 eine
weitere alternative Implementierung einer maskierten Speicherzelle;
und
-
13 eine
weitere Speichermatrixalternative, die die Speicherzellen der 12 implementiert.
-
Gemäß manchen
der nachstehend beschriebenen Ausführungsbeispiele kann der Zugriff
auf maskierte Speicherzellen mit erhöhter Effizienz implementiert
und betrieben werden, da die Maskenbitleitungen, die vorhanden sind,
zum Adressieren von Speicherzellen verwendet werden. Dies kann erzielt werden,
indem lediglich logisch gültige
Maskensignale für
eine ausgewählte
Gruppe von Speicherzellen bereitgestellt werden, die lediglich die
Speicherzelle, auf die zugegriffen werden soll, beeinflussen. Die übrigen Speicherzellen
werden mit logisch ungültigen Maskensignalen
versehen, d. h. mit Maskensignalen, bei denen gleiche logische Zustände an beide
Bitleitungen, die zur Bereitstellung des maskierten Signals [0,0]
oder [1,1] verwendet werden, angelegt werden. Wie in 4 nachstehend
ausführlich
erläutert
wird, kann dies zu einer starken Verringerung der erforderlichen
Fläche
und der erforderlichen Bauelemente des Auslesesystems führen, da
beispielsweise Multiplexer und mehrere Datenwege eingespart werden können.
-
4 zeigt
ein Blockdiagramm eines Ausführungsbeispiels,
das den obigen Gedanken implementiert, so dass ein in 3 gezeigtes
herkömmliches
Schema vereinfacht werden kann. Genau wie bei 3 verwendet
das Ausführungsbeispiel
des Ausleseschemas einen Wortleitungsdecodierer 870, um
die maskierten Adressen zu decodieren und um die Wortleitungen auszugeben,
wobei die zu aktivierenden Wortleitungen von den höchstwertigen
Bits einer Speicheradresse abgeleitet sind, wie zuvor unter Bezugnahme
auf 3 beschrieben wurde. Das heißt, alle Teilmatrizen, die
die maskierte Speicherzellenmatrix 840 bilden (beispielsweise
4 getrennt angebrachte Speicherteilmatrizen, wobei jede Teilmatrix
eine identische Größe aufweist)
werden mit derselben Wortleitungsadresse gesteuert, das heißt in allen
Speicherteilmatrizen der Speicherzellenmatrix wird dieselbe Zeile
von Speicherelementen ausgewählt.
-
Jedoch
wird gemäß diesem
Ausführungsbeispiel
die Spalte, auf die zugegriffen werden soll, ebenfalls in demselben
Zugriffszyklus unter Verwendung der Maskenbitleitungen ausgewählt, so
dass die maskierte Speicherzellenmatrix nicht mehr den Inhalt aller
Spalten, die der ausgewählten
Zeile zugeordnet sind, sondern nur derjenigen bestimmten Spalten,
die durch die niedrigstwertigen Bits der Speicheradresse angegeben
werden, liefert. Das heißt,
manche Bitleitungen, die Daten aller Spalten zu dem Maskierte-Bitleitung-Decodierungsblock 850 der 3 führen, können eingespart
werden. Auch der Multiplexer, der in dem Maskierte-Bitleitung-Zugriffsblock 850 selbst
implementiert ist, kann eingespart werden, was früher mit
der Absicht verbunden war, die tatsächlich benötigten Bits aus der ausgewählten Zeile
von Bits, die durch einzelne Speicherteilmatrizen bereitgestellt
wurde, zu extrahieren.
-
Zu
diesem Zweck benötigt
ein Ausführungsbeispiel
der Maskierte-Bitleitung-Ausleseschaltungsanordnung 900,
die ermöglicht,
dass lediglich diejenigen Speicherzellen ausgewählt werden, auf die zugegriffen
werden soll (d. h. diejenigen Speicherzellen, die durch die relevanten
niedrigstwertigen Bits der Speicheradresse angegeben sind), einen LSB-Adressdecodierer,
um die zu adressierenden Spalten zu identifizieren. Ferner erfordert
es einen Maskierte-Bitleitung-„Muxor”, der eine
Schaltungsanordnung ist, die die Spalte, auf die zugegriffen werden
soll, auswählt,
während
sie Informationen derjenigen Spalten, auf die nicht zugegriffen
werden soll, unterdrückt.
Ferner kann ein Datenlatch implementiert werden, um die maskierten
Daten 910, die in der Speicherzelle, auf die zugegriffen
werden soll, gespeichert sind, bereitszustellen, wobei die maskierten
Daten 910 potentiell bereits in ein Single-Rail-Signal
umgewandelt sind.
-
Ein
Ausführungsbeispiel,
das das Merkmal eines internen Auswählens und Multiplexierens der Spalten
der Speichermatrix liefert, wird für die exemplarische Schaltungsanordnung
der 5 ausführlicher
beschrieben. Es wird angenommen, dass vier maskierte Speicherteilmatrizen 840a bis 840d die maskierte
Speicherzellenmatrix 840, auf die zugegriffen werden soll,
bilden. Deshalb werden identische Zeilen in den Teilmatrizen gleichzeitig
anhand eines Wortleitungssignals 920 ausgewählt. Wenn
man ferner davon ausgeht, dass jede Speicherteilmatrix 840a bis 840d vier
Spalten aufweist, liegen in den einzelnen Speicherteilmatrizen vier
maskierte Bitleitungen (oder, bei einer vollständigen Dual-Rail-Implementierung,
Bitleitungspaare) vor. Da das Beispiel der 5 in Bezug
auf die einzelnen Speicherteilmatrizen äußerst symmetrisch ist, konzentriert
sich die weitere Erläuterung
auf die Teilspeichermatrix 840a und ihre entsprechende
Logik (die Logik, die dem LSB-Adresscodierer (3) entspricht).
-
Ferner
wird eine vollständige
Dual-Rail-Implementierung angenommen, so dass vier maskierte Bitleitungspaare 930 mit
dem Maskierte-Bitleitung-Muxor 940 verbunden sind, der,
wie in 6 ausgeführt
ist, eine Verdrahtetes-ODER-Funktionalität implementiert, um das Multiplexieren
zu ermöglichen.
Da auf Grund des Multiplexierens des Maskierte-Bitleitung-Muxors 940 die
Spalte, auf die zugegriffen werden soll, ausgewählt wird, muss lediglich ein Paar
Bitleitungen 950 (mD_msb) mit dem Datenlatch 960 verbunden
sein, der bei dieser bestimmten Implementierung das Dual-Rail-Bitsignal
in ein Single-Rail-Signal umwandelt. Um das Multiplexieren durchzuführen, benötigt der
Maskierte-Bitleitung-Muxor 940 die Informationen der Speicherspalte,
auf die zugegriffen werden soll. Diese Informationen werden durch
einen LSB-Adressdecodierer 970 bereitgestellt, der die
niedrigstwertigen Bits der Speicheradresse 972, eine entsprechende
Transportmaske 974 und ein Freigabesignal 976 (enAD),
das die jeweilige Verarbeitung ermöglicht, empfängt.
-
Obwohl
die nachfolgende Erörterung
lediglich ein bestimmtes Ausführungsbeispiel
mit einer vollständigen
Dual-Rail-Logik, d. h. mit einem komplementären Bitleitungspaar, beschreibt,
kann die nachstehende Maskierte-Bitleitung-Peripherie auch bei einer
Implementierung verwendet werden, die eine Single-Rail-Logik, d. h.
lediglich eine Bitleitung für
jede Spalte, aufweist.
-
In 5 wird
angenommen, dass die maskierte Speicherzellenmatrix in vier Teilspeichermatrizen
unterteilt ist, die jeweils vier Bits breit sind und die als mROM
Cell Array(mROM-Zellmatrix)<MSB>, mROM Cell Array<MSB – 1>, mROM Cell Array<LSB + 1> bzw. mROM Cell Array<LSB> bezeichnet werden.
-
Die
jeweiligen vier Bits breiten komplementären Bitleitungen sind mit dem
jeweiligen Maskierte-Bitleitung-Muxor 940 verbunden, der
eine Maskierte-Bitleitung-Peripherie 941 und eine Verdrahtetes-ODER-Schaltungsanordnung 942 umfasst.
Wie in 6 detailliert angegeben ist, dient die Maskierte-Bitleitung-Peripherie 941 dazu,
die Bitleitungen 930 vor einem Zugriff auf eine Speicherteilmatrix
vorzuladen. Dies wird erzielt, indem ein Freigabesignal enBL<j = 0> bereitgestellt wird,
so dass Bitleitungen mBL<j> und mBLq<j> über Vorladetransistoren 944 vorgeladen
werden, die bei dieser bestimmten Implementierung so gewählt sind,
dass sie p-Kanal-Transistoren
sind. Jedoch kann bei alternativen Ausführungsbeispielen die Schaltungsanordnung
in einer komplementären
Technik, d. h. unter Verwendung von n-Kanal-Transistoren, vorgesehen
sein. Es kann auch eine andere Art von Schaltvorrichtungen verwendet
werden, um die zuvor und nachstehend beschriebene Schaltfunktionalität zu erzielen.
Zu diesem Zweck kann bei alternativen Ausführungsbeispielen die Verwendung
von bipolaren Transistoren und sonstigen Umschaltschaltungsanordnungen
angedacht sein.
-
Bei
diesem bestimmten Ausführungsbeispiel sind
die Bitleitungen während
des Vorladens mit dem referenzierten Potenzial VDD verbunden. Am
Ende der Bitleitungen umfasst die Verdrahtetes-ODER-Schaltungsanordnung 942 eine
Mehrzahl von Invertern 942a und 942b und Pull-Down-Transistoren
bzw. Potenzialverringerungstransistoren 944a und 944b (man
beachte, dass auf Grund der hohen Symmetrie hier lediglich ein bestimmtes
Ausführungsbeispiel,
d. h. ein bestimmtes Bitleitungspaar, erörtert wird). Das heißt, während eine
Bitleitung niedrig ist, schaltet der Pull-Down-Transistor 944a oder 944b einen
vorgeladenen Dual-Rail-Datenausgang (mD und mDq) von VDD zu Masse,
so dass ihre jeweiligen Potenziale von einem Zustand, der eine logische „1” darstellt,
zu einem Zustand, der eine logische „0” darstellt, heruntergezogen
werden.
-
Diesbezüglich ist
zu beachten, dass in den hierin beschriebenen Figuren das positive
Versorgungspotenzial VDD dem logischen „hohen Zustand” zugeordnet
ist. Bei alternativen Ausführungsbeispielen
ist es jedoch selbstverständlich
auch möglich,
das negative Versorgungspotenzial VSS zuzuordnen (bei den in den
Figuren dargelegten Ausführungsbeispielen
ist das negative Versorgungspotenzial VSS das Massepotenzial).
-
Jedoch
implementiert ein Parallel-Schalten einer derartigen Schaltungsanordnung
für alle
Bitleitungen ein so genanntes Verdrahtetes-Oder-Netzwerk. Das Verdrahtetes-ODER-Multiplexierungsnetzwerk
der 6 liefert beispielsweise den Zustand (1,1) an
seinem Ausgang, wenn alle vier Bitleitungspaare mBl<j> und mBLq<j> in ihrem Vorladezustand (1,1)
sind. Wenn dagegen genau eine der 8 Bitleitungen in einem niedrigen
Zustand ist, wird der jeweilige Ausgang (mD oder mDq) ebenfalls
zu dem niedrigen Zustand heruntergezogen. Das heißt, falls
erreicht werden kann, dass genau eine Spalte einen „gültigen” Satz von
Signalen bereitstellt (d. h. ein Signal ist niedrig und die komplementäre Signalleitung
ist hoch), multiplexiert die Schaltungsanordnung der 6 automatisch
den Inhalt dieser spezifischen Spalte zu dem Ausgang (mD und mDq),
wodurch der Transport aller vier Ausgangsbitleitungen zu einem nachfolgenden
Multiplexer unnötig
wird.
-
Der
Dual-Rail-Ausgang 950 (mD und mDq) kann in einer Datenlatchstruktur,
wie sie in 7 gezeigt ist, gespeichert werden,
die die empfangenen Daten auf einen Empfang eines Freigabesignals 955 hin
in eine Single-Rail-Ausgangsdatenleitung 910 umwandelt.
-
Um
das Szenario zu erzielen, bei dem man lediglich ein Bitleitungspaar
hat, das in einem gültigen
Zustand (d. h. einem durch komplementäre Signale an einer der beiden
Bitleitungen definierten Zustand) ist, werden die Maskenbitleitungen,
die der Übersichtlichkeit
halber in 6 nicht gezeigt sind, in einen
Zustand versetzt, der lediglich für die jeweilige interessierende
Spalte (d. h. die an einer der beiden Maskenbitleitungen komplementäre Zustände aufweist)
eine gültige
Maske darstellt. Das heißt,
lediglich eines der vier Signalpaare (mas_bl_j<3:0>, maskq_bl_j<3:0>), j = 3..0 in 5 ist
mit der extern bereitgestellten Maske (mask_bl<3:0>, maskq_bl<3:0>) versehen.
-
Das
heißt:
mask_bl_j<3:0> = enBl<j> mask_bl<3:0>,
maskq_bl j<3:0> = enBl<j> maskq_bl<3:0>, j = 3..0,
wobei
enBl<j> die decodierte Spaltenadresse
(eine-von-vier-Adresse)
ist, die gemäß der folgenden Formel
bereitgestellt werden kann:
enBl <3> =
enAd(mAdr_lsb<1>⊕mask_lsb<1>)·(mAdr_lsb<0>⊕mask_lsb<0>),
enBl <2> = enAd(mAdr_lsb<1>⊕mask_lsb<1>)·(mAdr_lsb<0>⊕mask_lsb<0>),
enBl<1> = enAd(mAdr_lsb<1>⊕mask_lsb<1>)·(mAdr_lsb<0>⊕mask_lsb<0>),
enBl <0> = enAd(mAdr_lsb<1>⊕mask_lsb<1>)·(mAdr_lsb<0>⊕mask_lsb<0>),
wobei enAd
ein extern bereitgestelltes Freigabesignal ist, das den Adressdecodierer
einschaltet (wenn enAd = 1). Das heißt, wenn enAd = 1, gilt: genau
eine der enBl<j> = 1, wohingegen die übrigen spaltenspezifischen
Freigabesignale 0 sind.
-
Falls
dies der Fall ist, wird lediglich eines der vier möglichen
Maskenbitleitungspaare,
mask_bl_j<3:0>,
maskq_bl_j<3:0>,
logisch gültig, d.
h. es wird auf komplementäre
logische Zustände
eingestellt. Die übrigen
Maskenbitleitungen weisen einen unveränderten Zustand auf, d. h.
sie bleiben in ihrem jeweiligen Vorladezustand, das heißt bei (0,0).
-
Folglich
bleiben die jeweiligen Maskierungstransistoren (siehe beispielsweise
Transistoren 180 und 190 der 1)
in ihrem nicht-leitfähigen
Auszustand, so dass die jeweiligen Bitleitungspaare ebenfalls in
ihrem Vorladezustand bleiben. Mit anderen Worten: Wenn lediglich
ein Maskenbitleitungspaar mit einem gültigen Maskierungszustand versehen
ist, weist lediglich das jeweilige Bitleitungspaar einen logisch
gültigen
Zustand auf, der dadurch gekennzeichnet ist, dass eine Bitleitung
sich nicht in ihrem vorgeladenen Zustand befindet. Dieser Zustand
wird an den Datenausgang 950 des Bitleitungs-Muxors 950 der 6 transferiert.
Somit wird das erforderliche Multiplexieren der Daten mit lediglich
wenigen Schaltungsanordnungselementen durchgeführt, wobei lediglich ein einzelnes
Bitleitungspaar verwendet wird. Allgemein gelten die folgenden Maskierungsbedingungen
(Abbilden der extern vorgesehenen mask_bl auf die internen mask_bl_msb)
(siehe 5):
mask_bl_msb<3> =
mask_bl_3<3>,
mask_bl_msb<2> = mask_bl_2<3>,
mask_bl_msb<1> = mask_bl_1<3>,
mask_bl_msb<0> = mask_bl_0<3>,
mask_bl_msb – 1<3> = mask_bl_3<2>,
mask_bl_msb – 1<2> = mask_bl_2<2>,
mask_bl_msb – 1<1> = mask_bl_1<2>,
mask_bl_msb – 1<0> = mask_bl_0<2>,
mask_bl_lsb
+ 1<3> = mask_bl_3<1>,
mask_bl_lsb
+ 1<2> = mask_bl_2<1>,
mask_bl_lsb
+ 1<1> = mask_bl_1<1>,
mask_bl_lsb
+ 1<0> = mask_bl_0<1>,
mask_bl_lsb<3> = mask_bl_3<0>,
mask_bl_lsb<2> = mask_bl_2<0>,
mask_bl_lsb<1> = mask_bl_1<0>,
mask_bl_lsb<0> = mask_bl_0<0>,
-
Ein
bestimmtes Beispiel soll die Möglichkeit veranschaulichen,
lediglich einen bestimmten Bitleitungsausgang auszuwählen, indem
lediglich Maskensignale für
die jeweilige Spalte vorgesehen werden.
-
Es
wird angenommen, dass die Decodierung der LSB-Adresse (und somit
der Spalte, auf die zugegriffen werden soll) zu Folgendem führt:
enBL<3:0> = (0,0,1,0),
und
die jeweiligen Bitleitungsmasken, die ebenfalls der Maskenbitleitungsperipherieschaltungsanordnung 900 bereitgestellt
werden, können
wie folgt definiert werden:
mask_bl<3:0> =
(m3,m2,m1,m0),
maskq_bl<3:0> = (m3q,m2q,m1q,m0q),
mit mjq = nicht(mj).
-
Somit
werden lediglich die jeweiligen Maskenbitleitungen von einzelnen
Teilmatrizen mit der extern bereitgestellten Maske versehen:
mask_bl_msb<3> = 0,
mask_bl_msb<2> = 0,
mask_bl_msb<1> = mask_bl_1<3> = m3,
mask_bl_msb<0> = 0
mask_bl_msb – 1<3> = 0,
mask_bl_msb – 1<2> = 0,
mask_bl_msb – 1<1> = mask_bl_1<2> = m2,
mask_bl_msb – 1<0> = 0,
mask_bl_lsb
+ 1<3> = 0,
mask_bl_lsb
+ 1<2> = 0,
mask_bl_lsb
+ 1<1> = mask_bl_1<1> = m1,
mask_bl_lsb
+ 1<0> = 0,
mask_bl_lsb<3> = 0,
mask_bl_lsb<2> = 0,
mask_bl_lsb<1> = mask_bl_1<0> = m0,
mask_bl_lsb<0> = 0,
und
maskq_bl_msb<3> = 0,
maskq_bl_msb<2> = 0,
maskq_bl_msb<1> = 0, maskq_bl_1<3> = m3q,
maskq_bl_msb<0> = 0,
maskq_bl_msb – 1<3> = 0,
maskq_bl_msb – 1<2> = 0,
maskq_bl_msb – 1<1> = maskq_bl_1<2> = m2q,
maskq_bl_msb – 1<0> = 0,
maskq_bl_lsb
+ 1<3> = 0,
maskq_bl_lsb
+ 1<2> = 0,
maskq_bl_lsb
+ 1<1> = maskq_bl_1<1> = m1q,
maskq_bl_lsb
+ 1<0> = 0,
maskq_bl_lsb<3> = 0,
maskq_bl_lsb<2> = 0,
maskq_bl_lsb<1> = maskq_bl_1<0> = m0q,
maskq_bl_lsb<0> = 0,
-
Kurz
zusammengefasst wird bei jeder der vier Bits breiten Speicherteilmatrizen 940a bis 940d das
Bitleitungspaar, das der Speicherzelle, auf die zugegriffen werden
soll, entspricht, über
die Maskensignalbitleitungen ausgewählt. Somit führt lediglich die
entsprechende Bitleitung (bl<1>, blq<1>) bei dem zuvor beschriebenen
bestimmten Beispiel einen logisch gültigen Zustand, der durch die
bestimmte Speicherzelle, auf die zugegriffen werden soll, definiert
ist.
-
Dies
kann bei bestimmten Speicherimplementierungen zu einer beträchtlichen
Verringerung an benötigten
Schaltungsanordnungselementen und/oder Signalleitungen führen. Ferner
können
Signallaufzeiten und/oder der Gesamtleistungsverbrauch verringert
werden, da lediglich diejenigen Bit- und Maskenbitleitungen, die
alle adressierten Informationen führen, geladen werden müssen. Bezüglich des
obigen Beispiels mit vier Spalten kann die Vorladung und die Wiederaufladung
von drei Bitleitungen gesichert werden.
-
Ein
bestimmtes Beispiel eines LSB-Decodierers bezüglich eines Auswählens der
jeweiligen Spalte, das heißt
bezüglich
eines Lieferns eines gültigen Maskensignals
(das aus zwei komplementären
logischen Zuständen
gebildet ist) an die jeweilige interessierende Spalte, ist in 8 gezeigt.
-
Auf
einen Empfang eines globalen Freigabesignals enAd
960 hin,
das eine Entscheidungsschaltung
970 in die Lage versetzt,
an ihrem Ausgang
975 ein Freigabesignal bereitzustellen,
das angibt, ob die Maskensignalbitleitungen, die dem Adressdecodierer zugeordnet
sind, der zu adressierenden Spalte entsprechen, wird das Freigabesignal
erzeugt. Zu diesem Zweck empfängt
der Maskenadressdecodierer die maskierte Adresse (a0 und a1) zusammen
mit der entsprechenden Adressmaske (m0 und m1), um zu entscheiden,
ob die betreffende Spalte, d. h. die Spalte, der der Maskenadressdecodierer
zugeordnet ist, die Spalte ist, auf die zugegriffen werden soll.
Zu die sem Zweck führt
die Entscheidungsschaltung
970 die folgende Berechnung
durch:
-
Folglich
erzeugt die Entscheidungsschaltung 970 ein Freigabesignal 975 (enBL),
das logisch hoch ist, wenn die Spalte, der der Maskenadressdecodierer
zugeordnet ist, der Spalte entspricht, auf die zugegriffen werden
soll. Nur in diesem bestimmten Fall leiten die beiden UND-Gatter 980a und 980b das Maskensignal
(Matrixmaskensignale m_i<3:0
and mq_i<3:0>) an den jeweiligen
Maskensignalausgang 995 des Maskenadressdecodierers weiter.
Somit werden lediglich diejenigen Maskenbitleitungen, die der Spalte
entsprechen, auf die zugegriffen werden soll, in einen logisch gültigen Zustand
versetzt.
-
Wenn
man in der Lage ist, die Maskenbitleitungen einer Speicherzellenmatrix
der maskierten Speicherzellen selektiv zu verwenden, indem man beispielsweise
die vorherige Zugriffslogik implementiert, kann man außerdem Halbleiterfläche einsparen, indem
man Speicherzellen verwendet, die gemäß dem Ausführungsbeispiel der 9 organisiert
oder angeordnet sind. Zu diesem Zweck kann eine Matrix maskierter
Speicherzellen vorgesehen sein, bei der Speicherzellen benachbarter
Spalten dieselben Bitleitungen gemeinsam nutzen. Das heißt, benachbarte
Speicherzellen 1000 und 1002 können dieselbe Bitleitung 1004 verwenden,
mit der die jeweiligen Ausgänge
von Speicherzellen verschiedener Spalten (Gruppen) verbunden sind.
Falls sich alle Maskenbitleitungen m(j) und mq(j) im Vorladezustand,
d. h. in ihrem (0,0)-Zustand, befinden, mit der Ausnahme der Maskenbitleitungen
einer Spalte, auf die zugegriffen werden soll, ist lediglich die
maskierte Speicherzelle der jeweiligen Spalte in der Lage, die vorgeladenen Bitleitungen
(von ihrem (1)-Zustand zu dem (0)-Zustand) herunterzuziehen. Das
heißt,
lediglich die ausgewählte
Spalte (d. h. die Speicherzelle, die durch das Wortleitungssignal
wl ausgewählt ist) ändert den logischen
Zustand oder das Potenzial der mit der jeweiligen Speicherzelle
verbundenen Bitleitungen. Deshalb können benachbarte Speicherzellen
Bitleitungen gemeinsam nutzen, ohne sich gegenseitig negativ zu
beeinflussen.
-
Mit
anderen Worten zeigt 9 eine Matrix maskierter Speicherzellen,
die eine erste Speicherzelle in einer ersten Spalte und eine zweite
Speicherzelle in einer zweiten, anderen Spalte umfasst, wobei die
erste Speicherzelle in der Lage ist, dass auf sie zugegriffen wird,
um in Abhängigkeit
von einem binären
Maskensignal einen ersten binären
Wert an einem ersten Ausgang und einen zweiten binären Wert an
einem zweiten Ausgang, oder umgekehrt, auszugeben. Die zweite Speicherzelle
ist in der Lage, dass auf sie zugegriffen wird, um in Abhängigkeit
von einem zweiten binären
Maskensignal einen ersten binären
Wert an einem dritten Ausgang und einen zweiten binären Wert
an einem vierten Ausgang, oder umgekehrt, auszugeben. Der zweite
und der dritte Ausgang der Speicherzellen sind mit einer identischen
Bitleitung der Speichermatrix verbunden.
-
Die
Matrix maskierter Speicherzellen umfasst ferner eine Wortleitung
zum Ermöglichen
eines Zugriffs auf viele Speicherzellen, wobei jede der vielen Speicherzellen
einer anderen Spalte der Speichermatrix zugeordnet ist.
-
Die
Matrix maskierter Speicherzellen umfasst ferner ein Paar von Maskensignalbitleitungen für jede Spalte,
die dahin gehend angepasst sind, das binäre Maskensignal an jede Maskenspeicherzelle
innerhalb einer Spalte zu liefern.
-
Die
Matrix maskierter Speicherzellen kann ROM-Zellen oder RAM-Zellen
umfassen.
-
Bei
einer Verwendung einer Speicheranordnung, wie sie in 9 beschrieben
ist, kann die durch die jeweilige Speichermatrix eingenommene Fläche um ganze
30% verringert werden.
-
Jedoch
kann die Fläche
und Anzahl von Schaltungsanordnungselementen, die von maskierten
Speichern benötigt
werden, ungeachtet der Fähigkeit,
die maskierten Bitleitungen selektiv zu verwenden, weiter reduziert
werden.
-
Zum
Beispiel zeigt 10 ein Ausführungsbeispiel, bei dem eine
maskierte ROM-Zelle unter Verwendung lediglich zweier Transistoren
gebildet werden kann. Diese Reduktion in puncto Größe und Schaltungsanordnung
wird teilweise durch eine Verwendung einer einzelnen Bitleitung 1100 zusammen mit
zwei komplementären
Maskenbitleitungen 1102a und 1102b denkbar. Die
Speicherzellen (als Beispiel wird lediglich die Speicherzelle 1110 beschrieben) werden
durch jeweilige Wortleitungen ausgewählt, die mit dem Gateanschluss
eines Wortleitungstransistors 1112 der Speicherzelle 1110 verbunden
sind. Ein erster Kanalanschluss des Wortleitungstransistors 1112 ist
mit Referenzpotenzial 1114 (bei diesem bestimmten Beispiel
Massepotenzial) gekoppelt, während
der zweite Kanalanschluss mit einem ersten Kanalanschluss eines
Maskierungstransistors 1116 gekoppelt ist, dessen zweiter
Kanalanschluss mit der Bitleitung 1100 gekoppelt ist. Der
Gateanschluss des Maskierungstransistors 1116 ist entweder
mit der ersten Maskenbitleitung 1102a oder, wie bei der
untersuchten Speicherzelle 1110, mit der zweiten Maskenbitleitung 1102b verbunden,
wodurch er den in der Nur-Lese-Speicherzelle gespeicherten Inhalt
definiert. Vor einem Zugriff auf die Speicherzelle wird die Bitleitung
auf ihren Vorladezustand (bl = 1) vorgeladen. Für einen Zugriff wird die Wortleitung
(wl – 0) aktiviert
(d. h. hoch, wl = 1), und die jeweiligen Maskenbitleitungen sind
in einem komplementären
Zustand, d. h. (m,mq) = (0,1) oder (1,0). Das heißt, dass logisch
gültige
Maskenzustände
an die Maskenbitleitungen angelegt werden. Wie zuvor erwähnt wurde, wird
angenommen, dass der Logische-„1”-Zustand dem
Potenzial VDD entspricht und der „0”-Zustand dem Potenzial VSS
entspricht.
-
Man
kann eine Konvention, die bestimmt, welcher Zustand als logisch
hoch angenommen werden soll, beispielsweise gemäß der folgenden Tabelle definieren:
1
bl = 0 mit (m,mq) = (0,1) für
eine auf ”0” programmierte
Zelle;
bl = 1 mit (m,mq) = (1,0) für eine auf ”0” programmierte Zelle;
bl
= 1 mit (m,mq) = (0,1) für
eine auf ”1” programmierte
Zelle;
bl = 0 mit (m,mq) = (1,0) für eine auf ”1” programmierte Zelle.
-
Somit
stellt die Speicherzelle 1110, die eine verringerte Anzahl
von Schaltungselementen aufweist, eine logische „0” dar, während die andere veranschaulichte
Speicherzelle, die einen Gateanschluss des Maskierungstransistors
aufweist, der mit der Maskenbitleitung 1102a gekoppelt
ist, eine logische „1” darstellt.
Unter Verwendung der maskierten Speicherzelle der 10 kann
eine beträchtliche Verringerung
an benötigter
Halbleiterfläche
erzielt werden.
-
Mit
anderen Worten zeigt 10 eine maskierbare Nur-Lese-Speicherzelle zur
Verwendung bei einer maskierbaren Speichermatrix, die einen Wortleitungstransistor,
der einen zum Koppeln mit einer Wortleitung der Speichermatrix konfigurierten Gateanschluss,
einen zum Koppeln mit einem Referenzpotenzial konfigurierten ersten
Kanalanschluss und einen mit einem dritten Kanalanschluss eines Maskierungstransistors
gekoppelten zweiten Kanalanschluss aufweist, umfasst. Der Maskierungstransistor
umfasst einen zum Koppeln mit einer Bitleitung der Speichermatrix
konfigurierten vierten Kanalanschluss, wobei der Gateanschluss des
Maskierungstransistors dahin gehend konfiguriert ist, entweder mit
einer ersten Maskenbitleitung oder mit einer zweiten Maskenbitleitung
eines Maskenbitleitungspaares der Speicherzelle gekoppelt zu sein,
je nach dem in der Speicherzelle gespeicherten logischen Zustand.
-
11 zeigt
ein weiteres Ausführungsbeispiel,
das auf der Speicherzelle der 10 beruht. Die
Speicherzelle 1200 um fasst dieselben Elemente wie die Speicherzelle
der 10. Deshalb sind diese gemeinsam genutzten Elemente
mit denselben Bezugszeichen versehen, und nur zusätzliche
Elemente werden ausführlicher
erläutert.
Insbesondere unterscheidet sich die Speicherzelle 1200 von
der Speicherzelle 1110 bezüglich eines zusätzlichen
Ausgleichstransistors bzw. Kompensationstransistors 1202,
der mit beiden Kanalanschlüssen
mit einem Referenzpotenzial (in diesem Fall dem Massepotenzial)
gekoppelt ist. Jedoch ist der Gate-anschluss des Ausgleichstransistors 1202 mit
der Maskenbitleitung gekoppelt, die nicht durch den Anschluss des
Maskentransistors 1116 gekoppelt ist. Das heißt, dass
bei dem Beispiel der 11 der Gateanschluss des Ausgleichstransistors 1202 mit
der Maskenbitleitung 1102a verbunden ist. Dieses Ausführungsbeispiel kann
eine kapazitive Symmetrie der einzelnen Maskenbitleitungen 1102a und 1102b verringern.
Das heißt,
sogar wenn die Anzahl von gespeicherten Werten „0” und „1” entlang einer Spalte sich
stark unterscheidet, ist eine kapazitive Belastung beider Maskenbitleitungen
trotzdem identisch. Dies ist bei dem Beispiel der 10 eventuell
nicht unbedingt der Fall. Deshalb kann ein Risiko, dass ein DPA/EMA-Angriff
eine potentiell ungleiche Kapazität von Signalleitungen und den
entsprechenden unterschiedlichen Stromfluss beim Wiederaufladen
dieser Bitleitungen anvisiert, verringert werden.
-
Mit
anderen Worten zeigt 11 eine maskierbare Nur-Lese-Speicherzelle gemäß 10,
die ferner einen Ausgleichstransistor umfasst, wobei der Ausgleichstransistor
dahin gehend angepasst ist, mit einem fünften und einem sechsten Kanalanschluss mit
dem Referenzpotenzial gekoppelt zu sein, wobei der Gateanschluss
des Ausgleichstransistors dahin gehend angepasst ist, mit der Maskenbitleitung
gekoppelt zu sein, die nicht durch den Gateanschluss des Maskierungstransistors
gekoppelt ist.
-
12 zeigt
ein weiteres Ausführungsbeispiel
einer maskierten Speicherzelle, die einen einzigen Transistor verwendet, um
die maskierten Informationen zu speichern. Die maskierbare Nur-Lese-Speicherzelle 1300 weist
einen Transistor 1310 auf, der einen mit einer Wortleitung 1320 gekoppelten
Gate-anschluss aufweist.
Ein erster Kanalanschluss ist mit der Bitleitung 1110 gekoppelt,
während der
zweite Kanalanschluss entweder mit der ersten Maskenbitleitung 1102a oder
mit der zweiten Maskenbitleitung 1102b gekoppelt sein kann,
je nach den in der ROM-Zelle gespeicherten logischen Informationen.
Die jeweilige Speicherzelle 1300 stellt bezüglich der
zuvor angeführten
Konvention eine logische „1” dar.
-
Jedoch
unterscheidet sich die Speicherzelle 1300 insofern von
den zuvor erörterten
Speicherzellen, als ein Vorladezustand der Maskenbitleitungen 1102a und 1102b vor
einem Zugriff auf die Speicherzelle (1,1) sein soll. Der Vorladezustand
der Bitleitung lautet jedoch immer noch (1). Somit können maskierte
logische Werte unter Verwendung lediglich eines einzigen Transistors
gespeichert werden, wobei das Merkmal der hohen Sicherheit eines
Transports maskierter Signale trotzdem noch implementiert wird.
-
Mit
anderen Worten zeigt 12 eine maskierbare Nur-Lese-Speicherzelle zur
Verwendung bei einer maskierbaren Speichermatrix, die einen Transistor
umfasst, der einen zum Koppeln mit einer Wortleitung der Speichermatrix
konfigurierten Gateanschluss, einen zum Koppeln mit einer Bitleitung
der Speichermatrix konfigurierten ersten Kanalanschluss und einen
zweiten Kanalanschluss aufweist, der entweder zum Koppeln mit einer
ersten Maskenbitleitung oder mit einer zweiten Maskenbitleitung
eines der Speicherzelle Maskenbitleitungspaares konfiguriert ist,
je nach dem in der Speicherzelle gespeicherten logischen Zustand.
-
Unter
Verwendung des Ausführungsbeispiels
der 12 kann die durch eine Speichermatrix benötigte Halbleiterfläche im Vergleich
zu der Speicherzelle der 1 um bis zu 75% reduziert werden.
-
Dies
bedeutet normalerweise nicht nur eine Verringerung der Halbleiterfläche, sondern
kann auch zu einer Abnahme der Signallaufzeiten und des Energieverbrauchs
der Zellen führen.
Es werde betont, dass, um eine noch effizientere Implementierung
zu liefern, die Ausführungsbeispiele,
die die integrierte Multiplexierung implementieren (beispielsweise
gemäß 4 bis 8),
mit allen weiteren Ausführungsbeispielen
von Speicherzellen, die hierin beschrieben sind, kombiniert werden
können.
In dem bestimmten Fall der Speicherzelle der 12 ist
die dann erforderliche Modifikation, dass die Vorladezustände der
Maskenbitleitungen (1,1) sein müssen,
offensichtlich.
-
13 liefert
eine weitere Implementierung einer Speichermatrix, das die in 12 veranschaulichten
Speicherzellen verwendet. Um auf beiden Maskenbitleitungen 1102a und 1102b eine
gleiche Kapazität
zu liefern, werden für
zwei beliebige Speicherzellen, beispielsweise die Speicherzelle 1300 und 1350,
Ausgleichstransistoren 1450 eingeführt. Der Gateanschluss des
Ausgleichstransistors 1450 ist mit einem Referenzpotenzial
gekoppelt, das unverändert
bleibt, so dass der Ausgleichtstransistors 1450 während eines
Normalbetriebs nicht umgeschaltet wird. Ferner sind die Kanalanschlüsse der Ausgleichstransistoren
entweder mit der ersten Maskenbitleitung 1102a oder mit
der zweiten Maskenbitleitung 1102b gekoppelt, so dass eine
Gesamtanzahl von Kanalanschlüssen
der zwei Speicherzellen 1300 und 1350 und der
zugeordnete Ausgleichstransistor 1450, der mit einer der
beiden Maskenbitleitungen gekoppelt ist, gleich ist. Somit kann
erzielt werden, dass sogar dann, wenn die Anzahl von logisch gespeicherten
Werten „0” und „1” innerhalb
der einzelnen Spalten der Speichermatrix ungleich verteilt sind, keine
kapazitive Asymmetrie auftritt.
-
Mit
anderen Worten zeigt 13 eine maskierbare Nur-Lese-Speichermatrix, wie
sie in 12 vorgestellt wird, die zu mindest
zwei Nur-Lese-Speicherzellen gemäß 12 umfasst,
die in einer Zeile organisiert sind und die dieselbe Bitleitung
und dasselbe Maskenbitleitungspaar verwenden, wobei die maskierte
Nur-Lese-Speichermatrix ferner einen Ausgleichstransistor umfasst,
der einen zum Koppeln mit einem Referenzpotenzial konfigurierten
Gateanschluss und einen mit der ersten und/oder zweiten Maskenbitleitung(en)
gekoppelten ersten und zweiten Kanalanschluss aufweist, derart,
dass die Gesamtanzahl von Kanalanschlüssen der zwei Nur-Lese-Speicherzellen
und des mit einer der beiden Maskenbitleitungen gekoppelten Ausgleichstransistors gleich
ist.
-
Ausführungsbeispiele,
die die in 13 veranschaulichten Speicherzellen
implementieren, können
die benötigte
Fläche
im Vergleich zu der Speicherzelle der 1 um bis
zu 55% verringern.
-
Es
ist zu erwähnen,
dass unter Verwendung der vorherigen Konvention eine mit logisch „0” programmierte
maskierte Speicherzelle der Ausführungsbeispiele
der 10 bis 13 alternativ durch
die folgenden Zuordnungen gekennzeichnet sein kann:
bl <- m
wohingegen
eine mit logisch ”1” programmierte
Speicherzelle durch
bl <-
mq
gekennzeichnet sein kann.
-
Kurz
gesagt können
die maskierbaren Speicherzellen der 10 bis 13 dadurch
gekennzeichnet sein, dass sie einen einzigen Bitleitungsausgang,
einen ersten und einen zweiten Eingang für ein binäres Maskensignal, aufweisen,
wobei die maskierbare Speicherzelle in der Lage ist, dass auf sie zugegriffen
wird, um in Abhängigkeit
von dem binären
Maskensignal einen ersten binären
Wert oder einen zweiten binären
Wert an ihrem Bitleitungsausgang auszugeben.
-
Diese
maskierbaren Speicherzellen sind dahin gehend konfiguriert, ein
Paar komplementäre
logische Signale als gültiges
Maskensignal zu akzeptieren.
-
Obwohl
die zuvor erörterten
Ausführungsbeispiele
unter Verwendung bestimmter FETs und entsprechender Spannungspegel
zusammen mit einer bestimmten Konvention bezüglich dessen, welcher Zustand
als logische „1” und „0” interpretiert
werden soll, implementiert sind, sind weitere Ausführungsbeispiele
selbstverständlich
nicht auf diese Annahmen beschränkt.
Insbesondere kann die Abbildung zwischen den physischen Zuständen und
den entsprechenden logischen Zuständen anders gewählt werden.
-
Ferner
sind die Technologie, die die Ausführungsbeispiele implementiert,
und die zuvor erörterten
Schaltelemente nicht auf eine bestimmte Implementierung beschränkt. Stattdessen
können
weitere aktive Schaltelemente verwendet werden, beispielsweise n-Kanal-
oder p-Kanal-FETs, bipolare Transistoren oder sonstige Schaltelemente.
Die zuvor beschriebenen logischen Elemente sind nicht auf eine spezifische
Implementierung beschränkt.
Stattdessen können
bei unterschiedlichen Technologien und Schaltungsanordnungen ODER-
oder XOR- oder UND-Gatter bzw. XOR-Funktionalitäten implementiert werden, was
zu denselben Ergebnissen führt.
-
Ferner
können
bestimmte Beispiele oder Techniken, die zuvor erörtert wurden, kombiniert werden,
um die Effizienz der Implementierung zu erhöhen.
-
In
Abhängigkeit
von bestimmten Implementierungsanforderungen können weitere Ausführungsbeispiele
in Hardware oder in Software implementiert sein. Die Implementierung
kann unter Verwendung eines digitalen Speicherungsmediums, insbesondere ei ner
Diskette, DVD oder einer CD durchgeführt werden, auf dem bzw. auf
der elektronisch lesbare Steuersignale gespeichert sind, die derart
mit einem programmierbaren Computersystem kooperieren, dass Ausführungsbeispiele
der Verfahren durchgeführt werden.
Allgemein können
manche Ausführungsbeispiele
somit ein Computerprogrammprodukt mit einem auf einem maschinenlesbaren
Träger
gespeicherten Programmcode sein, wobei der Programmcode dahin gehend
wirksam ist, die Ausführungsbeispiele
auszuführen,
wenn das Computerprogrammprodukt auf einem Computer läuft. Mit
anderen Worten sind manche Ausführungsbeispiele
somit ein Computerprogramm, das einen Programmcode zum Durchführen zumindest
eines der Verfahren aufweist, wenn das Computerprogramm auf einem
Computer läuft.
-
Obwohl
das Vorstehende besonders unter Bezugnahme auf bestimmte Ausführungsbeispiele desselben
gezeigt und beschrieben wurde, wird Fachleuten einleuchten, dass
verschiedene andere Änderungen
bezüglich
Form und Einzelheiten vorgenommen werden können, ohne von der Wesensart und
dem Schutzumfang desselben abzuweichen. Es versteht sich, dass verschiedene Änderungen
bei der Anpassung an verschiedene Ausführungsbeispiele vorgenommen
werden können,
ohne von den breiteren Konzepten abzuweichen, die hierin offenbart
sind und in den folgenden Patentansprüchen enthalten sind.