-
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 Halbleiterflache 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 bezuglich 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 genannte 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-Verknupfung statt.
-
Bei einem One-Time-Pad-Verschlüsselungssystem ist es wichtig, dass jede Schlusselsequenz 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 binaren 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 fur 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 Einschrankung 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 Speicherzelle 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 entsprechenden 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.
-
Aus der nachveröffentlichten
DE 10 2007 009 526 A1 ist eine Speichervorrichtung bekannt, bei der komplementäre Maskierungswerte an Speicherzellen angelegt werden. Dabei sind Speicherarchitekturen vergleichbar zu den in
1 und
3 gezeigten Speicherarchitekturen offenbart.
-
Aus Der
US 2001/0004329 A1 ist eine Halbleiterspeichervorrichtung bekannt, die Schreibschaltungen aufweist, die zum Schreiben von Daten mit unterschiedlichen Bitkonfigurationen geeignet sind. Eine Maskensignalerzeugungsschaltung ist vorgesehen, die ein Maskensignal zum Maskieren des Schreibens der oberen acht Bits und ein Maskensignal zum Maskieren des Schreibens der unteren acht Bits erzeugt, wobei die Maskensignale an die Schreibschaltungen angelegt werden. Die Maskensignale werden komplementär aktiviert.
-
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 ausgewahlte 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 Fig. 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 Auswahlens 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 vollstandigen 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 Erorterung lediglich ein bestimmtes Ausfuhrungsbeispiel 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 moglich, das negative Versorgungspotenzial VSS zuzuordnen (bei den in den Figuren dargelegten Ausfuhrungsbeispielen 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 komplementare 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:
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 gultig, 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:
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+l<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,
- maskqk_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 ausgewahlt. 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 betrachtlichen 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 diesem 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 Halbleiterflache 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) andert 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 komplementaren 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 (b1=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:
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 umfasst 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 Kanalanschlussen 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 Gateanschluss 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 erorterten 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 konnen. In dem bestimmten Fall der Speicherzelle der 12 ist die dann erforderliche Modifikation, dass die Vorladezustande 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 zumindest 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:
wohingegen eine mit logisch „1“ programmierte Speicherzelle durch
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.
-
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.
-
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 einer 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.