-
Die
vorliegende Erfindung bezieht sich auf einen Multi-Port-Registerdatei-Speicher
gemäß Anspruch
1. Insbesondere bezieht sich ein Ausführungsbeispiel der vorliegenden
Erfindung auf ein CMOS SRAM mit sehr kleiner Schwankung und Spalten-Multiplexing-Schema.
-
Gegenwärtig sind
Speicher und Registerdateien in zahlreichen Anwendungen in verschiedenen Industriezweigen
weit verbreitet. Obwohl es typischerweise wünschenswert ist, möglichst
viele Speicherzellen in eine bestimmte Fläche einzugliedern, werden einige
bekannte Speicher oder Registerdateien oft als physikalisch zu groß angesehen
(d.h., sie nehmen zuviel Siliziumfläche ein) und/oder sind für eine bestimmte
Produktausgestaltung zu langsam. Zusätzlich ist die Verlustleistung
ein weiterer Parameter, welchen alle Speicherkonstrukteure in Betracht
ziehen müssen,
um ein Produkt kosteneffektiv zu gestalten.
-
Ein
Typ eines grundlegenden Datenspeichers oder einer Registerdatei
ist der CMOS Direktzugriffsspeicher (alternativ bezeichnet als "SRAM" = Static Random
Access Memory), welcher seinen Speicherzustand ohne Aktualisierung
beibehält,
solange die Zelle mit Strom versorgt wird. In einem Ausführungsbeispiel
eines SRAM wird der Speicherzustand normalerweise als ein Spannungsdifferential innerhalb
eines durchgehbaren funktionalen Elementes, wie eine Inverterschleife,
gespeichert.
-
Der
Artikel "A Current
Direction Sense Technique for Multiport SRAM'S" von
Izumikawa M. und Yamashina M., veröffentlicht in IEICE Transactions on
Electronics, Vol. E79-C, Nr. 7, Juli 1996, Seiten 957–962, ISSN
0916-8524, XP000632350 beschreibt eine Stromdetektierschaltung,
deren Eingangsknoten auf einen Zwischen-Spannungspegel gespannt
ist, wobei die Schaltung eine Stromrichtung in einen logischen Wert
umwandelt.
-
In
dem Artikel "A 23-ns
256K EPROM with Double-Layer Metal and Address Transition Detection" von Hoff D. et al.,
veröffentlicht
in IEEE Journal of Solid-State Circuits, IEEE Inc. New York, US,
Oktober 1989, Vol. 24, Nr. 5, Seiten 1250–1258, XP000066267 ist ein
Verfahren und eine Vorrichtung zum Erzielen einer schnellen Zugriffszeit
durch eine Kom bination von hochentwickelter CMOS Verarbeitung, Zweischichtmetall,
differentiellem Detektieren und Adressübergangs-Detektierung, wodurch
die Verzögerung
in Wortleitungs- und
Bitleitungspfaden durch eine Kombination von mit kurzen Bitleitungen gebündelten
Wortleitungen minimiert wird. Der Oberbegriff von Anspruch 1 basiert
auf dieser Veröffentlichung.
-
US 4,771,194 bezieht sich
auf einen Leseverstärker
zur Verwendung in Speichersystemen, insbesondere statischen Direktzugriffsspeichern.
Die Leseverstärkerschaltung
weist zwei Inverter auf, wobei einer einen normalen Verstärker bildet
und der andere eine Referenzspannung an den Verstärker zum
Ermitteln des optimalen Arbeitspunktes auf der Übergangskurve des Inverters
und zu einer Bitleitung liefert, welche einer Speicherzelle zugeordnet
ist, die zum Vorspannen der Leitung auf ihre optimale Arbeitsstufe
ausgelesen wird.
-
Die
Verwendung des Inverters in dem Leseverstärker als Spannungsreferenz
und als Verstärker sowie
die Inverterpaare, welche die Speicherzellen bilden, können einen ähnlichen
Aufbau und ähnliche Bedürfnisse
aufweisen und können
auf demselben Halbleiterchip ausgebildet sein.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, einen schnell ansprechbaren
Multi-Port-Registerdatei-Speicher
bereitzustellen. Diese Aufgabe wird durch den Multi-Port-Registerdatei-Speicher
gemäß Anspruch
1 gelöst.
Weitere Ausführungsbeispiele
sind in den abhängigen
Ansprüchen
definiert.
-
Ein
Ausführungsbeispiel
liefert verbesserte Registerdatei- oder unidirektionale Multi-Port[d.h.,
einen zugeordneten Schreib-Anschluss/zugeordnete Schreib-Anschlüsse und
einen zugeordneten Lese-Anschluss/zugeordnete Lese-Anschlüsse]-Speicher
mit hoher Geschwindigkeit, hoher Dichte und mäßiger Verlustleistung für Anwendungen
in dem Bereich unter 16 kb (Kilo Bit), verglichen mit gegenwärtig verfügbaren Speichern.
Ein Ausführungsbeispiel
der vorliegenden Erfindung erhöht
die Dichte, indem z.B. ein unsymmetrisches Detektierschema verwendet
wird. Die Verwendung eines derartigen unsymmetrischen Detektierschemas
spart Weiterleitungskanäle
und reduziert die Gesamtzahl an Transistoren in dem Speicherelement.
Für die
oben erwähnten
Anwendungen verbessert das erläuterte Ausführungsbeispiel
auch die Lesezugriffszeit (höhere
Dichte führt
zu weniger Kapazität
und daher höherer
Geschwindigkeit für
einen bestimmten Leistungslevel). Zusätzlich setzt ein Ausführungsbeispiel
der vorliegenden Erfindung ein Leseverstärker-Verfahren ein, welches
zuverlässig
eine signifikant kleinere statische Bitleitungsschwankung erkennt,
wodurch die Leistung verbessert wird.
-
Ein
Ausführungsbeispiel
weist einen Multi-Port-Registerdatei-Speicher auf, welcher mindestens
ein Speicherelement, mindestens einen mit dem Speicherelement verbundenen
Leseanschluss und eine mit dem Leseanschluss verbundene Detektiereinrichtung
einschließt,
welche dafür
ausgebildet ist, um eine kleine Spannungsschwankung zu detektieren.
Der Leseanschluss schließt
ein Paar miteinander verbundener Reihentransistoren, zum Beispiel NFet
Transistoren, ein. Die Detektiereinrichtung kann zum Beispiel ein
Leseverstärker
sein, welcher Eingang-Offset- und Verstärkungsstufen einschließt, wobei
die Eingang-Offset-Stufe die Verstärkungsstufe vorspannt, wobei
eine kleine Bitleitungsschwankung definiert wird, welche weniger
ist als, oder ein kleiner Teil von der gesamten Spannungsversorgung,
zum Beispiel ungefähr
200 mV.
-
In
einem weiteren Ausführungsbeispiel schließt der Registerdatei-Speicher
eine Vielzahl von in Spalten angeordneten Speicherelementen ein,
wobei ein Leseanschluss mit einem oder mehreren der Speicherelemente
verbunden ist. Dieses Ausführungsbeispiel
kann zum Beispiel eine Spalten-Multiplexerschaltung einschließen, welche
mit einem oder mehreren der Speicherelemente und der Detektiereinrichtung
verbunden ist. In diesem Ausführungsbeispiel
schließt
der Leseanschluss ein Paar von Reihentransistoren und eine Detektiereinrichtung
ein, welche mit dem Leseanschluss verbunden ist und dafür ausgebildet
ist, um eine kleine Spannungsschwankung zu detektieren.
-
In
einem weiteren Ausführungsbeispiel
wird eine Schaltung zur Verwendung mit einem Speicher betrachtet,
welcher mindestens ein Speicherelement aufweist. Die Schaltung schließt einen
mit dem Speicherelement verbundenen Leseanschluss und eine Detektiereinrichtung
ein, welche mit dem Leseanschluss verbunden ist und dafür ausgebildet
ist, um eine kleine Spannungsschwankung zu detektieren.
-
Ein
Ausführungsbeispiel
für eine
Verbesserung von Geschwindigkeit und Leistung wird betrachtet. In
diesem Ausführungsbeispiel
wird ein Verfahren zum Verbessern von Geschwin digkeit und Leistung in
einer Multi-Port-Registerdatei mit einer Vielzahl von Speicherelementen
betrachtet. In diesem Verfahren wird mindestens eines der Speicherelemente ausgewählt und
eine kleine Spannungsschwankung wird detektiert.
-
Noch
ein weiteres Ausführungsbeispiel
zum Lesen von Daten wird betrachtet. In diesem Ausführungsbeispiel
wird ein Verfahren zum Lesen von Daten betrachtet, welche in einem
Multi-Port-Registerdatei-Speicher mit einer Vielzahl von in Spalten
angeordneten Speicherelementen gespeichert sind. In diesem Verfahren
wird eine der Spalten ausgewählt, ein
Strom fließt
durch mindestens einen Transistor zu einem der Speicherelemente
in der Spalte, und ein Ausgang eines mit der Spalte verbundenen
Leseverstärkers
wird auf einen hohen Zustand geschaltet.
-
Weitere
Ausführungsformen,
Vorteile und neue Merkmale der vorliegenden Erfindung, sowie Einzelheiten
eines erläuterten
Ausführungsbeispiels davon,
können
mit Hilfe der folgenden Beschreibung und den Zeichnungen, in welchen
gleiche Zahlen sich auf gleiche Teile beziehen, besser verstanden werden.
-
1A und 1B stellen
Blockdiagramme von zwei Ausführungsbeispielen
des statischen CMOS Hochleistungsspeichers (Multi-Port-Registerdatei)
gemäß der vorliegenden
Erfindung dar;
-
2 erläutert ein
Ausführungsbeispiel
einer 8T Speicherelementarchitektur gemäß der vorliegenden Erfindung;
-
3 erläutert ein
Ausführungsbeispiel
einer Leseverstärker-Architektur
gemäß der vorliegenden
Erfindung;
-
4 stellt
einen Graph dar, welcher die Kurvenformen für den Leseverstärker, das
Ausgabe-Gatter, den Inverter-Auslösepunkt für die Verstärkungsstufe und für die Bitleitungsschwankung
abbildet;
-
5 erläutert ein
Ausführungsbeispiel
des Multi-Port-Multiplex-Registerdatei-Speichers der vorliegenden
Erfindung;
-
6 erläutert ein
Ausführungsbeispiel
der Spalten-Multiplex-Architektur gemäß der vorliegenden Erfindung;
-
7 erläutert ein
Ausführungsbeispiel
der 10T Architektur ähnlich
zu der 8T Architektur von 2, welche
mit einem Ausführungsbeispiel
der Spalten-Multiplex-Architektur von 6 verwendet wird;
-
8 erläutert ein
alternatives Ausführungsbeispiel
des in 3 dargestellten Leseverstärkers;
-
9 stellt
ein weiteres alternatives Ausführungsbeispiel
des in 3 abgebildeten Leseverstärkers dar; und
-
10A und 10B sind
Flussdiagramme, welche ein Ausführungsbeispiel
zum Lesen von Daten gemäß der vorliegenden
Erfindung erläutern.
-
Ein
Ausführungsbeispiel
der vorliegenden Erfindung stellt einen Hochgeschwindigkeits-Registerdatei-Speicher
oder SRAM von hoher Dichte mit verbesserter Verlustleistung (d.h.
mäßiger) bereit, welcher
in dem Bereich von 64 kb (Kilo Bit) oder kleiner mit einer Energieversorgungsspannung
größer als
0 aber kleiner als zum Beispiel ungefähr 2,00 Volt verwendet wird.
Der Registerdatei-Speicher kann in einem Ausführungsbeispiel ein unidirektionaler
Multi-Port-Speicher sein, welcher einem zugeordneten Schreibanschluss/zugeordnete
Schreibanschlüsse und
einen zugeordneten Leseanschluss/zugeordnete Leseanschlüsse für Anwendungen
in dem Bereich von 32 kb oder kleiner mit einer Energieversorgungsspannung
zwischen beispielsweise 1,08 und ungefähr 1,32 Volt, aufweist.
-
Ein
Blockdiagramm eines Ausführungsbeispiels
der vorliegenden Erfindung ist in 1A erläutert. Der
statische CMOS Speicher oder Multi-Port-Registerdatei-Speicher,
allgemein als Speicher 10 bezeichnet, obwohl Speicher 10A und 10B in 1A bzw. 1B dargestellt sind,
schließt
zum Beispiel ein 8T Registerdatei-Speicherelement 12 ein,
welches mit einem Spaltenmultiplexer 14 (wie in 1B dargestellt)
oder direkt mit einer Detektiereinrichtung oder einem Leseverstärker 16 (wie
in 1A dargestellt) gekoppelt, verbunden oder anderweitig
elektrisch kommuniziert, obwohl andere Anordnungen in Erwägung gezogen
werden.
-
Der
Speicher 10 speichert Daten (d.h. "Wörter" und "Bits pro Wort"), welche zum Beispiel
während
eines Schreibvorgangs geliefert werden, wobei ein Schreibpfad und
mindestens die Schreibbitleitung verwendet werden. Der Spaltenmultiplexer 14 ermöglicht ein
Manipulieren eines nicht leistungsoptimierten logischen Speicher-Arrays
zu einer geeigneteren physikalischen Speicher-Array-Ausführung, indem
eine Spalte von einer Vielzahl von Spalten ausgewählt wird.
Mit anderen Worten, der Spaltenmultiplexer ermöglicht, dass eine Vielzahl
von Spalten Ausgänge
mehrfach benutzen, wobei mindestens eine Spalte aus der Vielzahl
von Spalten ausgewählt werden
kann. Falls die Vielzahl von Spalten nicht Ausgänge mehrfach benutzte, benötigte jede
Spalte ihren eigenen Ausgang. Die Detektiereinrichtung oder der
Leseverstärker 16 detektiert
eine kleine Bitleitungsspannungsschwankung, wodurch die Leistung
erhöht
wird.
-
1A zeigt
weiter eine Vielzahl von elektrischen Verbindungen oder Kopplungen.
Elektrische Kopplungen wwd 22, Schreibbitleitung 24 (alternativ bezeichnet
als "wbit") 24 und
wbitb 26 sind verbunden mit Speicherelement 18 gezeigt.
Speicherelement 18 ist mit Leseanschluss 20 über eine
Kopplung oder Verbindung 28 verbunden. Rwd 52 ist
mit Leseanschluss 20 verbunden abgebildet. In diesem Ausführungsbeispiel
weist der Speicher 10A keinen Spaltenmultiplexer auf (d.h.,
CM1, wobei jede Spalte mit ihrem eigenen Ausgangskanal verbunden
ist), somit ist Leseanschluss 20 mit dem Leseverstärker 16 über die
lokale Lesebitleitung 30 (alternativ bezeichnet als "rbit") verbunden. "Out"- oder Ausgangsleitung 35 ist
mit Leseverstärker 16 gekoppelt
oder verbunden abgebildet.
-
Die
Speicherelemente sind in diesem Ausführungsbeispiel in einer Vielzahl
von Reihen und in einer Spalte angeordnet, wobei jede Spalte mit
ihrem eigenen Ausgangskanal verbunden ist und aufgenommene Information
speichert. Die Leseanschlüsse
sind mit den Speicherelementen isoliert verbunden (d.h., die Leseanschlüsse beeinträchtigen
nicht die statische Stabilität
des Speicherelements 18), wodurch ermöglicht wird, dass eine Vielzahl
von den Zellen in derartiger Vielzahl von Reihen und in einer oder
mehreren Spalten angeordnet ist und die aufgenommene Information
speichern.
-
Ein
erster Transistor von Leseanschluss 20 (abgebildet in 2)
fungiert als der Schalter, welcher eine bestimmte Reihe von Speicherelementen 18 in
einer zu lesenden Spalte auswählt,
wie unten erläutert.
Dieser Transistor ist mit rwd 52 und rbit 30 verbunden.
Wenn Vielzahlen von Speicherelementen 18 in der Spalte
im Speicher 10 verwendet werden, können andere Speicherelemente 18 mit
der gleichen Lesebitleitung verbunden sein. In dem erläuterten
Ausführungsbeispiel
kann nur eine Reihe in der Spalte zu einem Zeitpunkt ausgewählt werden,
sodass nur ein Leseanschluss 20 zu einem Zeitpunkt AN sein
kann.
-
In
einem Ausführungsbeispiel
der vorliegenden Erfindung wird der Speicherzustand als ein Spannungsdifferenzial
innerhalb eines bistabilen Speicherelements, wie eine Inverter-Schleife, gespeichert.
Diese Speicherelemente befinden sich entweder in einem niedrigen
oder hohen gespeicherten Speicherzustand. Falls das Speicherelement
sich in einem niedrigen gespeicherten Zustand befindet, ändert ein
Aufnehmen neuer und entgegengesetzter Information das Speicherelement
zu einem hohen gespeicherten Zustand (logische "0" bzw.
logische "1"). Wenn das Speicherelement
sich in einem hohen gespeicherten Zustand (logische 1) befindet, ändert ein
Aufnehmen neuer und entgegengesetzter Information das Speicherelement
zu einem niedrigen gespeicherten Zustand (logische 0).
-
Sobald
eine Reihe ausgewählt
worden ist, werden die in dem "ausgewählten" Speicherreihenplatz
gespeicherten Daten dadurch bestimmt, ob ein zweiter Transistor
im Leseanschluss 20 AN oder AUS ist oder nicht. In einem
niedrigen gespeicherten Zustand zum Beispiel, wenn der Gate-Anschluss
des zweiten Transistors hoch ist, dann sind die Transistoren im
Leseanschlusspaar AN und ein Strom wird vom Leseanschlusspaar weitergeleitet.
Der Strom fließt
zu rbit 30, welcher direkt mit dem Leseverstärker 16 verbunden
ist. Falls der Gate-Anschluss des zweiten Transistors niedrig ist,
fließt
kein Strom durch den Leseanschluss 20 und es wird daher
kein Strom an den Leseverstärker 16 geliefert.
-
In
diesem Ausführungsbeispiel
bestimmt das Vorhandensein oder Fehlen eines Stroms am Leseverstärker 16 den
Zustand des ausgewählten
Speicherplatzes. Der Leseverstärker 16 erkennt
oder detektiert einen Strom und gibt eine entsprechende Spannung
aus, um mit der vollständigen
CMOS Ausgangsstufe des Speichers zu kommunizieren. Der Leseverstärker ist
vorgespannt, wodurch eine kleine vorbestimmte Bitleitungsschwankung
ermöglicht wird.
Eine kleine vorbestimmte Bitleitungsschwankung verringert die Spannungsmenge,
welche benötigt
wird, um den Leseverstärker
vollständig
zu schalten. Die Bitleitungsschwankung ist mindestens ein Teil der
gesamten Spannungsversorgung. Eine derartige, kleine Bitleitungsschwankung
ist ausreichend, um die Verstärkungsstufe
des Leseverstärkers 16 fast
vollständig
auf logische CMOS Level zu schalten. Eine Ausgangsstufe folgt auf
die Leseverstärkungsstufe,
welche die Spannungspegel vollständig wiederherstellt,
um an Standard CMOS Verknüpfungen
anzukoppeln.
-
Ein
Blockdiagramm eines weiteren Ausführungsbeispiels der vorliegenden
Erfindung ist in 1B abgebildet. Der statische
CMOS Speicher oder in 1B abgebildete Multi-Port-Registerdatei-Speicher 10B schließt in diesem
Beispiel ein 10T Registerdatei-Speicherelement 12 ein,
welches mit einem Spaltenmultiplexer 14 und einem Leseverstärker 16 gekoppelt,
verbunden ist oder anderweitig elektrisch kommuniziert.
-
In
dem in 1B erläuterten Ausführungsbeispiel
sind die elektrischen Verbindungen wwd 22, die Schreibbitleitung
oder wbit 24, wbitb 26 und Verbindung 28 mit
dem Speicherelement 18 verbunden gezeigt, ähnlich zu
dem in 1A erläuterten Ausführungsbeispiel.
In diesem Ausführungsbeispiel
besitzt der Speicher 10B zwei oder mehrere Spalten je Ausgabekanal
(d.h., CM2 oder mehr) und Leseanschluss 20 ist mit dem
Spaltenmultiplexer 14 über
rbit 30 und cpd 32 verbunden. RWD 52 ist
mit dem Leseanschluss 20 verbunden. Spaltenmultiplexer 14 und Leseverstärker 16 sind über die
globale Lesebitleitung oder sbit 34 verbunden. OUT 35 ist
wiederum mit Leseverstärker 16 verbunden.
-
Die
Speicherelemente sind in einem Beispiel von dieser Ausführungsform
in einer Vielzahl von Reihen und in einer Vielzahl von Spalten angeordnet und
speichern die aufgenommene Information. Wiederum sind in diesem
Beispiel die Leseanschlüsse mit
den Speicherelementen 18 isoliert verbunden, sodass die
Leseanschlüsse
nicht die statische Stabilität
des Speicherelements beeinträchtigen.
-
Ein
erster Transistor von Leseanschluss 20 (erläutert in 7)
fungiert als Schalter, wobei er eine bestimmte Reihe des Speicherelements 18 in
jeder der Spalten auswählt,
welche, wie unten beschrieben, gelesen werden sollen. Dieser Transistor ist
mit rwd 52 und rbit 30 verbunden. Wenn Vielzahlen
von Speicherelementen 18 in jeder der Vielzahlen von Spalten
verwendet werden, können
weitere Speicherelemente 18 in der gleichen Spalte an die gleiche
Lesebitleitung 30 angeschlossen werden. In diesem Ausführungsbeispiel
kann nur eine Reihe in jeder der Spalten zu einem Zeitpunkt ausgewählt werden,
sodass nur ein Leseanschluss 20 je Ausgabekanal zu einem
Zeitpunkt AN sein kann. Mit anderen Worten, nur ein Leseanschluss
pro mehreren Spalten hat die Fähigkeit,
einen Strom an den Leseverstärker 16 zu
liefern.
-
Sobald
eine Reihe ausgewählt
worden ist, werden die in dem "ausgewählten" Speicherreihenplatz
gespeicherten Daten davon abhängig
ermittelt, ob ein zweiter Transistor im Leseanschluss 20 AN oder
AUS ist oder nicht. Zum Beispiel sind in dem niedrigen gespeicherten
Zustand (logische 0), wenn der Gate-Anschluss von diesem Transistor
hoch ist, die Transistoren im Leseanschlusspaar AN und ein Strom
durch das Leseanschlusspaar wird erzeugt. Dieser Strom gelangt zur
rbit 30 und seine resultierende Auswirkung zu sbit 34 des
Leseverstärkers 16. Wenn
der Gate-Anschluss von diesem Transistor niedrig ist, fließt kein
Strom durch den Leseanschluss 20 und somit wird kein Strom
an den Leseverstärker 16 geliefert.
-
Wie
zuvor dargestellt, bestimmt das Vorhandensein oder Fehlen eines
Stromes an den Leseverstärker 16 den
Zustand des ausgewählten
Speicherplatzes. Der Leseverstärker 16 detektiert
oder tastet den Strom ab und gibt eine Spannung aus, um mit der
vollen CMOS Ausgangsstufe des Speichers zu kommunizieren.
-
In
einem Beispiel der in 1B erläuterten Ausführungsform
wird eine Vielzahl von Spalten (d.h., ein Multiplex-Registerdateispeicher
mit mehreren Spalten) betrachtet, wie zuvor dargestellt. Spalten-Multiplexing
optimiert Speicher mit vielen Wörtern
aber mit relativ wenigen Bits pro Wort. Sowohl aus einer topologischen
als auch aus einer Leistungsperspektive liefert Spalten-Multiplexing
flexible eingebettete Speicherlösungen.
Eine Spalten-Multiplex-Schaltung
wird verwendet, um eine derartige Spalten-Multiplex-Fähigkeit
zu implementieren. Diese Schaltung ist konzeptionell zwischen den
Speicher-Kernzellen 12 und dem Leseverstärker 16 angeordnet.
Wie aus der vorhergehenden Erläuterung und
den Figuren hervorgehen sollte, ist die Zahl von Spalten-Multiplex-Schaltungen
im allgemeinen abhängig
von der Zahl von Spalten und der Zahl von Bits pro Wort.
-
Bezugnehmend
auf 2, ist ein Ausführungsbeispiel des Speicherelements 12 erläutert, welches
ein 6T CMOS SRAM Speicherelement 18 aufweist, welches mit
einem Leseanschluss 20 verbunden ist. In einem Beispiel
weist das 6T CMOS SRAM Speicherelement 18 zwei P Kanalfeldeffekttransistoren
(PFets) 36 und 38 und vier N Kanalfeldeffekttransistoren
(NFets) 40, 42, 44 und 46 auf.
Ein PFet Transistor wird durch eine logische 0 an seinem Gate-Anschluss
eingeschaltet und ist dafür
ausgebildet, eine logische 1 weiterzuleiten oder zu übertragen.
Ein NFet Transistor wird von einer logischen 1 an seinem Gate-Anschluss
eingeschaltet und ist dafür
ausgebildet, eine logische 0 weiterzuleiten oder zu übertragen.
-
Es
sollte erkannt werden, dass das Speicherelement 12 sich
entweder in einem niedrigen oder in einem hohen gespeicherten Speicherzustand
befindet, wie oben dargestellt. Falls eine logische 0 gespeichert
ist (d.h., das Speicherelement 12 ist in einem niedrigen
gespeicherten Zustand) speichert ein Aufnehmen neuer und entgegengesetzter
Information eine logische 1 in das Speicherelement (d.h., ein hoher
gespeicherter Zustand). Falls eine logische 1 auf dem Speicherelement 12 aufgenommen
ist (d.h., Speicherelement 12 ist in einem hohen gespeicherten
Zustand) nimmt ein Aufnehmen von neuer und entgegengesetzter Information
eine logische 0 auf (d.h., bringt das Speicherelement in einen niedrigen gespeicherten
Zustand).
-
Der
Transistor 36 ist mit VDD, den Transistoren 38, 42, 44 und 46 über seinen
Gate-Anschluss und
mit den Transistoren 38, 40, 44 und 46 über seine
Drain-Verbindung verbunden dargestellt. Transistor 38 ist
mit VDD, den Transistoren 36, 40, 44 und 46 über seinen
Gate-Anschluss und mit Transistoren 36, 42, 44 und 46 und
dem Leseanschluss 20 über
seine Drain-Verbindung verbunden dargestellt.
-
Transistor 40 ist
mit mindestens der wbit 24 über seinen Drain-Anschluss,
mit wwd 22 und Transistor 42 über seinen Gate-Anschluss und
mit Transistoren 36, 38, 44 und 46 über seine
Source-Verbindung verbunden dargestellt. Transistor 42 ist
mit mindestens wbitb 26 über seinen Drain-Anschluss
mit wwd 22 und Transistor 40 über seinen Gate-Anschluss und
mit den Transistoren 36, 38, 44 und 46 über seine
Source-Verbindung verbunden dargestellt. Transistor 44 ist
mit mindestens den Transistoren 36, 38, 42, 46 und
dem Leseanschluss 20 über seinen
Gate-Anschluss und mit den Transistoren 36, 38, 40 und 46 über seine
Drain- Verbindung
verbunden dargestellt. Transistor 46 ist mit mindestens
den Transistoren 36, 38, 40, 44 über seinen
Gate-Anschluss und mit den Transistoren 36, 38, 42, 44 und dem
Leseanschluss 20 über
seine Drain-Verbindung verbunden dargestellt. Transistoren 44 und 46 haben jeweils
ihre Source-Verbindungen mit VSS oder mit Masse verbunden.
-
In
einem Ausführungsbeispiel
weist der Leseanschluss 20 ein Paar von NFet Transistoren 48 und 50 in
Reihe auf, wobei das Speicherelement 18 mit Transistor 50 isoliert
verbunden ist, sodass der Leseanschluss nicht die statische Stabilität des Speicherelements
beeinträchtigt.
Insbesondere ist Transistor 48 von Leseanschluss 20 mit
seinem Drain-Anschluss mit rbit 30, mit seinem Gate-Anschluss
mit rwd 52 und mit seinem Source-Anschluss mit dem Drain-Anschluss des Transistors 50 verbunden. Transistor 50 ist
mit den Transistoren 36, 38, 42, 44 bzw. 46 verbunden.
Ferner ist Transistor 50 mit cpd 32 verbunden,
welcher für
den Spalten-Multiplexer von 1 lediglich mit Masse verbunden ist,
wie dargestellt. Diese Anordnung ermöglicht, dass zusätzliche Leseanschlüsse 20 zu
der Zelle 18 gleichermaßen isoliert hinzugefügt werden.
Dies ist aus dem Grund wünschenswert,
dass die Registerdateien 10 häufig zahlreiche Leseanschlüsse benötigen, welche
nicht die statische Stabilität
des Speicherelements 18 beeinträchtigen, wie zuvor dargestellt.
-
Die
Ausführungsbeispiele
gemäß den 1A, 1B und 2 reduzieren
die Speicher-Siliziumfläche, während sie
die Geschwindigkeit im Vergleich zu bekannten Speichern oder Registerdateien
verbessern. Durch die Verwendung des unsymmetrischen Detektier-Leseanschlusses 22,
wie zuvor dargestellt, reduziert das erläuterte Ausführungsbeispiel Weiterleitungskanäle und/oder
die Gesamtanzahl an Transistoren in dem Speicherelement 10 und
reduziert daher die Menge an benötigter
Siliziumfläche.
Das erläuterte
Ausführungsbeispiel
optimiert eine Speicherlese-Zugriffszeit, da die hohe Transistordichte
zu einer geringeren Verbindungskapazität und daher zu höherer Geschwindigkeit
für eine
bestimmte oder spezifische Leistungsstufe führt.
-
Sobald
eine Reihe ausgewählt
worden ist, wie zuvor dargestellt, werden die in dem "ausgewählten" Speicherreihenplatz
gespeicherten Daten abhängig
davon ermittelt, ob der Transistor 50 AN oder AUS ist oder
nicht. Zum Beispiel sind in einem niedrigen gespeicherten Zustand,
wenn ein Gate-Anschluss des Transistors 50 hoch (logische
1) ist, die Transistoren 48 und 50 AN und ein
Strom wird durch den Leseanschluss übertragen. Bezugnehmend auf 1B,
gelangt dieser Strom zu der rbit 30 und seine resultierende
Auswirkung zu sbit 34 des Leseverstärkers. Falls der Gate-Anschluss
des Transistors 50 niedrig (logische 0) ist, fließt kein
Strom durch den Leseanschluss 20 und wird daher kein Strom
an den Leseverstärker 16 geliefert.
Das Vorhandensein oder Fehlen eines Stromes an dem Leseverstärker 16 bestimmt
den Zustand des ausgewählten
Speicherplatzes. Der Leseverstärker 16 detektiert
einen Strom und wandelt ihn in eine Spannung um, um mit der vollen
CMOS Ausgangsstufe des Speichers zu kommunizieren.
-
Ein
Ausführungsbeispiel
des Leseverstärkers 16 ist
in 3 erläutert.
In diesem Ausführungsbeispiel
schließt
der Leseverstärker 16 zwei
verbundene Inverter ein, bezeichnet als Verstärkungsstufe oder Inverter 62 und
Eingangs-Offset-Stufe 64. Ein Inverter invertiert seine
Eingabe, sodass, wenn eine 0 eingegeben wird, eine 1 ausgegeben
wird. Der Inverter und das Offset-Paar schließen zwei PFet Transistoren 54 und 56 und
zwei NFet Transistoren 58 und 60 ein. Die Transistoren 56 und 60 weisen
die Verstärkungsstufe 62 auf,
wobei der Gate-Anschluss des Transistors 56 mit dem Gate-Anschluss
des Transistors 60 und rbit 30 verbunden ist.
Der Transistor 56 ist auch mit dem Drain-Anschluss des
Transistors 60 und mit out 35 verbunden. Die Transistoren 54 und 58 weisen
die Eingangs-Offset-Stufe 64 auf, wobei der Gate-Anschluss
des Transistors 54 mit dem Gate-Anschluss des Transistors 58,
dem Drain-Anschluss des Transistors 58 und mit seinem eigenen
Drain-Anschluss verbunden ist, zusammen mit den Gate-Anschlüssen der
Transistoren 56 und 60 und rbit 30.
-
Die
Eingangs-Offset-Schaltung oder der "Inverter" 64 wird verwendet, um den
Eingang der Verstärkungsstufe
oder des Inverters 62 vorzuspannen, wodurch eine kleine
Bitleitungsschwankung detektiert und die Höhe der Spannung reduziert wird,
welche dazu benötigt
wird, um den Leseverstärker
vollständig
umzuschalten. Die Offset-Schaltung 64 wird auf einen Gleichstrom-Spannungspegel
z.B. in der Größenordnung
von ungefähr
100 mV gesetzt, über den
Auslösepunkt
der Verstärkungsstufe
oder des Inverters 62, wenn kein Strom auf rbit 30 vorhanden
ist, während
er auf ungefähr
100 mV unter den Inverter-Auslösepunkt
der Verstärkungsstufe 62 bewegt wird,
wenn ein Strom auf rbit 30 vorhanden ist. Der Auslösepunkt
ist der Spannungspegel, an welchem die Ausgangsspannung der Verstärkungsstufe
gleich hoch ist wie seine Eingangsspannung.
-
Diese
Gesamtbitleitungsschwankung von 200 mV um den Inverter-Auslösepunkt
der Verstärkungsstufe
ist ausreichend, um die Verstärkungsstufe
fast vollständig
(innerhalb von ca. 50–100
mV von den Spannungsversorgungsschwellen (Power Supply Rails)) zu
CMOS Logik-Level umzuschalten. Die Ausgangsstufe (nicht gezeigt)
folgt der Leseverstärkerstufe
und stellt die Spannungspegel wieder vollständig her, um an Standard CMOS
Schaltungen anzukoppeln.
-
Die
Kurvenformen eines Ausführungsbeispiels
der oben beschriebenen Schaltung sind in 4 erläutert. Die
großen
und kleinen gestrichelten Linien (-- - -- -) 66 und 68 stellen
die Spannungsschwankung des Ausgabe-Gatters (Output Gate) von ungefähr 0 auf
ungefähr
1,2 Volt dar (auch als die Spannungsversorgungsschwellen bezeichnet),
wobei die Linie 66 das Ausgabe-Gatter HI zu Lo darstellt und
die Linie 68 das Ausgabe-Gatter Lo zu HI darstellt. Die
gestrichelte Linie (----) 70 stellt den Auslösepunkt
der Verstärkungsstufe
des Inverters 62 dar, welcher ungefähr in der Mitte zwischen den
Versorgungsschwellen angeordnet ist. Die große gestrichelte Linie (-- --
--) 72 stellt die Offset-Schaltung 64 dar, welche
auf einen Gleichstrom-Spannungspegel (d.h., Bitleitung Hi) von ungefähr 100 mV über den
Auslösepunkt
der Verstärkungsstufe
oder des Inverters 62 gesetzt ist, während die durchgezogene Linie 74 die Offset-Schaltung 64 darstellt,
welche auf einem Gleichstrom-Spannungspegel (d.h., Bitleitung Lo) von
ungefähr
100 mV unter den Auslösepunkt
der Verstärkungsstufe
oder des Inverters 62 gesetzt ist, wodurch eine Bitleitungsschwankung 76 von
ungefähr
200 mV definiert ist. Wie dargestellt, ist diese Bitleitungsschwankung 76 um
den Inverter-Auslösepunkt 70 der
Verstärkungsstufe
ausreichend, um die Verstärkungsstufe
fast vollständig
auf CMOS Logik-Level umzuschalten. Insbesondere schaltet die Bitleitungsschwankung
die Verstärkungsstufe
auf einen Bereich innerhalb von ungefähr 50–100 mV von den Spannungsversorgungsschwellen,
wie durch die Leseverstärkerausgang-Linien 78 bzw. 80 dargestellt ist.
-
Während nur
ein Leseverstärker 16 dargestellt
ist, kann jede Zahl von Leseverstärkern in Erwägung gezogen
werden, abhängig
von der Anzahl von Ausgangskanälen,
wobei ein Leseverstärker
für jeden
Ausgangskanal eingesetzt wird. Es sollte erkannt werden, dass es
eine physikalische Speicheranordnung und eine logische Speicheranordnung
gibt. Die physikalische Speicheranordnung wird durch die Bezeichnungen
Reihen und Spalten gekennzeichnet, wie unten erläutert, während die logische Speicheranordnung
die Bezeichnungen "Wörter" und "Bits pro Wort" verwendet. Die Anzahl
von Bits pro Wort bestimmt die Anzahl von Ausgabekanälen und
somit die Anzahl von Leseverstärkern 16.
Bits pro Wort und Ausgabekanäle
haben eine 1:1 Korrelation. Zum Beispiel, wenn ein bestimmter Speicher
16 Bits pro Wort aufweist, hat er 16 Ausgänge und daher 16 Leseverstärker. Das
unten erläuterte
Spalten-Multiplexing ermöglicht
ein Manipulieren einer nicht-leistungsoptimierten logischen Speicheranordnung
zu einer geeigneteren physikalischen Speicheranordnungsimplementierung.
-
Bezugnehmend
nun auf 5, ist ein Ausführungsbeispiel
eines Multiplex-Registerdatei-Speichers 82 mit
mehreren Spalten erläutert.
Der Multiplex-Registerdatei-Speicher 82 mit mehreren Spalten ist
dem zuvor erläuterten
Speicher 10 ähnlich,
wobei eine Vielzahl von Speicherelementen 12 in N Reihen 84 und
M Spalten 86 angeordnet sind, wobei N zum Beispiel in einem
Bereich von 2 bis 256 oder sogar bis zu 512 liegt, während M
zum Beispiel in einem Bereich von 2 bis 128 liegt.
-
In
dem vorliegenden Beispiel gibt es insgesamt N Reihen 84 und
M Spalten 86. [Es sollte erkannt werden, dass die Bezeichnungen
Spalten und Reihen beliebige Kennzeichnungen sind, welche zugeordnet
werden, um die linearen Anordnungen, welche sich in einer Richtung
erstrecken, von den linearen Anordnungen zu unterscheiden, welche
sich rechtwinklig dazu erstrecken, und dass diese Bezeichnungen
unabhängig
von der Orientierung des Speichers 82 sind.
-
6 stellt
ein Ausführungsbeispiel
der Schaltung dar, welche verwendet werden kann, um eine Spalten-Multiplex-Fähigkeit
zu implementieren. Diese Spalten-Multiplexerschaltung 88 ist
konzeptionell zwischen den Speicher-Kernzellen 12 und dem Leseverstärker 16 angeordnet.
Die Spalten-Multiplexerschaltung 88 erläutert nur ein Beispiel eines
Spalten-Multiplexers 14,
welche zuvor erläutert
wurde. In diesem Ausführungsbeispiel
schließt
die Schaltung 88 z.B. zwei NFet Transistoren 90 und 92 (deren Gate-Anschlüsse verbunden
sind) und einen PFet Transistor 94 ein (verbunden mit Transistor 92,
wie gezeigt). Die Knoten rbit 30 ist die lokale Lesebitleitung,
während
sbit 34 direkt an den Leseverstärker 16 anbindet.
Rcol 96, cpd 32 und sbitdum 98 liefern die
verbleibenden Signale zum Durchführen
der Spalten-Multiplex-Funktion. Rcol 96 ermöglicht,
dass eine bestimmte Lesespalte (Read COLumn) ausgewählt wird,
cpd 32 kennzeichnet das Spalten-Pulldown und sbitdum 98 liefert
eine Leerreferenz (zu Geschwindigkeitszwecken), um die nicht ausgewählten lokalen
Bitleitungen in nächster
Nähe zu
dem Auslösespannungspunkt
des Leseverstärkers
zu halten. Der cpd Knoten koppelt an jede physikalische Spalte an
und ist diesen gemeinsam, wie in 5 erläutert.
-
Aus
der vorhergehenden Erläuterung
und den Figuren sollte hervorgehen, dass die Anzahl von Spalten-Multiplexerschaltungen
im allgemeinen abhängig
von der Anzahl an Spalten ist. Falls der Speicher nur ein oder zwei
Spalten einsetzt, wird keine Spalten-Multiplexerschaltung eingesetzt. Jedoch
ist die Verwendung eines Spalten-Multiplexers geeigneter dafür, um Speicher
mit vielen Wörtern
und wenigen Bits pro Wort in eine physikalische Anordnung mit weniger
Reihen und mehr Spalten umzuwandeln.
-
Ein
10T Speicherelement 100 wird in 7 erläutert. Das
in 2 erläuterte
8T Speicherelement 12 wird als ein 10T Speicherelement
neu ausgebildet. Zwei zusätzliche
NFet Transistoren 102 und 104 sind mit dem 6T
Speicherelement 18 verbunden, wobei die Gate-Anschlüsse der
Transistoren 102 und 104 mit wcl Leitung oder
Knoten 106 verbunden sind. Die Transistoren 102 und 104 sind
nicht Teil des Lesepfades und werden daher nicht erläutert. Jedoch sollte
erkannt werden, dass der Source-Anschluss von Transistor 50 nicht
mehr zu VSS führt,
wie in 2 dargestellt, sondern nun mit dem cpd Knoten 32 verbunden
ist. Es sollte erkannt werden, dass das 8T Speicherelement im allgemeinen
mit Speichern ohne Spalten-Multiplexing (d.h., CM1) verwendet wird,
während
das 10T Speicherelement üblicherweise
verwendet wird, wann immer eine Multiplex-Topologie mit mehreren
Spalten eingesetzt wird.
-
Der
Lesepfad von einem Ausführungsbeispiel
der vorliegenden Erfindung kann nachvollzogen werden, indem auf
die 5, 10A und 10B Bezug
genommen wird. Wenn eine Spalte, z.B. Spalte 86A, ausgewählt wird,
wie von Raute 130 dargestellt, wird rcol 96A auf
hoch gesetzt, wie von Block 132 dargestellt. Diese Auswahl
schaltet die Transistoren 90A und 92A ein, während sie
den Transistor 94A ausschaltet, wie von den Blöcken 134 bzw. 136 dargestellt
ist.
-
Für eine ausgewählte Reihe
(mit gespeicherten Daten in dem niedrigen oder logischen 0-Zustand) ist Transistor 50 (nicht
gezeigt in 5) AN, wie von Block 138 dargestellt.
Strom fließt
durch den Transistor 54 (siehe 3) zu sbit 34,
wie von Block 140 dargestellt. Der Strom setzt sich durch
den Transistor 92A von Spalte 86A zu der lokalen
Bitleitung oder rbit 30 fort, wie von den Blöcken 142 bzw. 144 dargestellt,
welche an alle Speicherelemente einer bestimmten physikalischen
Spalte anbindet. Der Strom wird durch den Leseanschluss 20 des
Reihen-selektierten Speicherelements 84 zu cpd 32A übertragen
und durch Transistor 90A zu VSS, wie von den Blöcken 146, 148 bzw. 150 dargestellt.
Dieser Stromfluss bewirkt einen niedrigen Spannungspegel an dem
Eingang des Leseverstärkers,
welcher niedriger ist, als der Leseverstärker-Auslösepunkt und der Leseverstärker-Ausgang
schaltet zu einem hohen Zustand, wie von den Blöcken 152 bzw. 154 dargestellt.
-
Aufgrund
der Tatsache, dass die lokale Bitleitung oder rbit relativ stark
belastet ist, führt
die Kombination von Spalten-Multiplexing zusammen mit einer kleinen
Schwankung auf rbit 30 zu einer signifikanten Leistungsverbesserung
bei der Lesezugriffszeit. Noch bezugnehmend auf die 5, 10A und 10B,
wenn eine Spalte, z.B. Spalte 86B, NICHT ausgewählt wird,
wie von der Raute 130 dargestellt, ist rcol 96B logisch
niedrig, die Transistoren 90B und 92B werden ausgeschaltet
und Transistor 94B ist leitfähig, wie von den Blöcken 156, 158 bzw. 160 dargestellt.
Dies schließt
die lokalen, nicht selektierten Bitleitungen effektiv mit sbitdum 98 kurz,
während
zur gleichen Zeit der Strom durch die nicht ausgewählten Leseanschluss-Spalten
abgeschaltet wird (Blöcke 162 und 164).
Mit anderen Worten, die nicht ausgewählten Leseanschlüsse sind
nicht leitend, um Energie zu sparen, und nur ein einzelner ausgewählter Leseanschluss-Strom
wird verwendet, um den Zustand des Leseverstärkers umzuschalten. Dies führt zu einer
vorbestimmten und steuerbaren Gesamtbitleitungs-Spannungsschwankung.
-
Sbitdum 98 ist
mit einer Niedrigleistung-Eingang-Offset-Schaltung 65 verbunden.
Diese Niedrigleistung-Eingang-Offset-Schaltung oder Vorspannvorrichtung
ist eine Replik der Schaltanordnung, welche verwendet wird, um dem
Eingang-Offset in der Leseverstärker-Schaltung (d.h.,
der Eingang-Offset-Schaltung von 3) zu liefern,
wenn auch eine Ausführung
mit niedriger Leistung, um Energie zu sparen. Diese hinzugefügte Schaltung
bewahrt die Geschwindigkeitsgewinne, wenn zwischen Spalten umgeschaltet
wird. Da die AUS Spalten floaten und eine sehr große kapazitive
Ladung darstellen (alle nicht ausgewählten Spalten für einen
bestimmten Ausgang sind elektrisch gleich), werden alle lokalen
Bitleitungen (rbit) üblicherweise
nah in der Spannung zu dem Auslösepunkt
des Lesever stärkers
gehalten oder auf den Auslösepunkt
des Leseverstärkers
vorgespannt, für
einen schnellen Übergang, wenn
ihre zugehörige
Spalte (rcol) ausgewählt
wird. Es sollte erkannt werden, dass, während eine Eingang-Offset-Schaltung
(einschließlich
einer Niedrigleistung-Eingang-Offset-Schaltung)
abgebildet und erläutert
wird, jede Vorrichtung, welche die lokalen Bitleitungen auf einer
Spannung nahe zu dem Auslösepunkt
des Leseverstärkers
hält oder
vorspannt, in Erwägung
gezogen wird.
-
8 und 9 erläutern alternative
Ausführungsbeispiele
des Leseverstärkers 16,
gekennzeichnet als PFet Leseverstärker 20B bzw. PFet/NFet
Leseverstärker 20C.
Leseverstärker 20B weist
zwei Reihen-PFet Transistoren 108 und 110 und
einen Inverter 112 auf. Eine Stromquelle 114 ist auch
abgebildet, um den Leseanschluss-Strom darzustellen. Der Gate-Anschluss von Transistor 108 ist mit
dem Eingang des Inverters 112 verbunden, während der
Gate-Anschluss von Transistor 110 mit dem Ausgang des Inverters
verbunden ist.
-
Leseverstärker 20C weist
Reihen-PFet und NFet Transistoren auf, welche mit zwei Invertern
verbunden sind. Insbesondere schließt der Leseverstärker einen
PFet Transistor 116 und drei NFet Transistoren 118, 120 und 122 ein.
Der Gate-Anschluss des Transistors 116 ist mit dem Eingang
des Inverters 124 verbunden, dessen Ausgang mit dem Eingang von
Inverter 126 verbunden ist. Die Gate-Anschlüsse der
Transistoren 118, 120 und 122 sind mit
dem Ausgang von Inverter 126 verbunden.
-
Es
sollte erkannt werden, dass jeder der drei erläuterten Leseverstärker versucht,
genau die gleiche Aufgabe auszuführen:
Bereitstellen eines kontrollierten Offsets über den Auslösepunkt
des zugehörigen
Verstärkungsstufen-Inverters,
wenn kein Strom von einem angefügten
(und ausgewählten) Speicherelement
geliefert wird, und Sinken auf einen kontrollierten Spannungspegel
unter den Auslösepunkt
des gleichen zugehörigen
Verstärkungsstufen-Inverters, wenn ein
Lesestrom eines Speicherelements vorhanden ist. Jedes dieser Ausführungsbeispiele
steuert die Offset- und Schwankungscharakteristika gegenüber einem
Ablauf, Spannungsversorgung und Temperatur.
-
Viele
Modifikationen und Variationen der vorliegenden Erfindung sind im
Lichte der obigen Lehren möglich.
Daher ist zu verstehen, dass innerhalb des Schutzumfangs der angefügten Ansprüche die
Erfindung auf andere Weise, als hierin oben beschrieben, ausgeführt werden
kann.