-
Die
vorliegende Erfindung bezieht sich auf einen inhaltsadressierbaren
Speicher (nachfolgend als „CAM" bezeichnet) und
insbesondere auf einen ternären
inhaltsadressierbaren Speicher (nachfolgend als „TCAM" bezeichnet) mit Zellen, die in der Lage
sind, drei Informationszustände
zu speichern, sowie auf ein Verfahren zum Betreiben eines solchen CAM.
-
Ein
CAM ist ein Speicher, der von seinen eigenen Inhalten adressiert
wird. Im Unterschied zu einem RAM oder ROM, wo eine Adresse verwendet wird,
um eine spezielle Position innerhalb seines Speicherzellenfelds
anzuzeigen und in der adressierten Position gespeicherte Daten auszugeben,
wird ein CAM extern mit Daten versorgt und Suchläufe werden innerhalb der Inhalte
des CAMs nach einer Übereinstimmung
mit den angelegten Daten ausgeführt
und eine Adresse wird in Abhängigkeit
vom Vergleichsergebnis ausgegeben. Jede Zelle eines CAMs umfasst
eine Vergleichslogik. Ein in den CAM eingegebener Datenwert wird
gleichzeitig mit Daten verglichen, die in allen Zellen gespeichert
sind. Das Übereinstimmungsergebnis
ist die Adresse. Ein CAM wird ge wöhnlich in Anwendungen verwendet,
die schnelle Suchläufe
nach einem Muster, einer Liste, von Bilddaten usw. erfordern.
-
Eine
CAM-Zelle kann als binäre
CAM-Zelle oder als TCAM-Zelle klassifiziert werden. Eine typische
binäre
CAM-Zelle ist mit einer RAM-Zelle konfiguriert, um einen von zwei
Informationszuständen
zu speichern, d.h. einen logischen Zustand „1" oder einen logischen Zustand „0". Die binäre CAM-Zelle
umfasst eine Vergleichsschaltung, die extern angelegte Daten (nachfolgend „Vergleichsdaten") mit in der RAM-Zelle
gespeicherten Daten vergleicht und eine korrespondierende Übereinstimmungsleitung
in einen vorbestimmten Zustand treibt, wenn die Vergleichsdaten
und die gespeicherten Daten übereinstimmen.
Beispiele der binären
CAM-Zellen sind im
US-Patent
4.646.271 mit dem Titel „Content Addressable Memory
having Dual Access Mode",
im
US-Patent 4.780.845 mit dem Titel „High Density,
Dynamic, Content-Addressable
Memory Cell", im
US-Patent 5.490.102 mit
dem Titel „Low
Capacitance Content-Addressable Memory Cell" und im
US-Patent 5.495.382 mit
dem Titel „Contents
Addressable Memory" offenbart.
-
Eine
TCAM-Zelle kann einen von drei Informationszuständen speichern, d.h. einen
logischen Zustand „1", einen logischen
Zustand „0" und einen Zustand „unrelevant". Die TCAM-Zelle
umfasst eine Haupt-RAM-Zelle, um einen von zwei Informationszuständen zu
speichern, d.h. einen logischen Zustand „1" oder einen logischen Zustand „0", und eine Masken-RAM-Zelle, um lokale
Maskierungsdaten zu speichern. Ein Vergleichsergebnis von Vergleichsdaten
mit in der Haupt-RAM-Zelle gespeicherten Daten wird mit den Maskierungsdaten
maskiert, so dass das Vergleichsergebnis eine korrespondierende Übereinstimmungsleitung
nicht beeinflusst. Eine solche TCAM-Zelle bietet dem Benutzer eine
größere Flexibilität, um zu
bestimmen, welche Datenbits in einem Wort während eines Vergleichvorgangs
maskiert werden. Zudem sind TCAM-Zellen beispielsweise im
US-Patent 6.044.055 mit
dem Titel „Content Addres sable
Memory Storage Device" und
im
US-Patent 6.514.384 mit
dem Titel „Ternary
Content Addressable Memory Cell" offenbart.
-
1 zeigt
eine herkömmliche
TCAM-Zelle, die eine Hauptspeicherzelle mit zwei NMOS-Transistoren
T1 und T2 und zwei Invertern INV1 und INV2, eine Vergleichsschaltung,
die aus drei NMOS-Transistoren T3, T4 und T5 besteht, eine Maskierungsschaltung,
die aus einem NMOS-Transistor
T6 besteht, und eine Masken-Speicherzelle umfasst, die aus zwei
NMOS-Transistoren T7 und T8 und zwei Invertern INV3 und INV4 besteht.
Die in
1 dargestellte TCAM-Zelle ist im
US-Patent 6.154.384 beschrieben. Signalleitungen,
die als „BL" und „BLB" repräsentiert
sind, werden zur Datenübertragung
einer Hauptspeicherzelle verwendet. Signalleitungen, die als „CL" und „CLB" repräsentiert
sind, werden zur Vergleichsdatenübertragung
verwendet. Signalleitungen, die als „ML" und „MLB" repräsentiert sind, werden zur Maskierungsdatenübertragung
einer Masken-Speicherzelle verwendet. Ein TCAM wird aus TCAM-Zellen
aufgebaut, die in einer Matrix aus Zeilen und Spalten angeordnet
sind. TCAM-Zellen in einer Zeile bilden ein Wort, das 32, 64, 128Bits
oder mehr aufweisen kann. Transistoren T5 und T6 der entsprechenden
TCAM-Zellen in einer Zeile bilden eine verdrahtete ODER-Logik für eine Übereinstimmungsleitung
MATCH.
-
Obwohl
TCAMs für
viele Anwendungen Vorteile, wie einen schnellen Zugriff, bieten,
existieren auch Nachteile. Wenn beispielsweise Vergleichsdaten der
TCAM-Zelle aus 1 nicht mit in einer Hauptspeicherzelle
gespeicherten Daten übereinstimmen,
wird ein Entladevorgang einer Übereinstimmungsleitung
ausgeführt.
Da das Auftreten von nicht übereinstimmenden
Worten normalerweise wahrscheinlicher als das Auftreten von übereinstimmenden
Worten ist, werden Übereinstimmungsleitungen (MATCH),
die mit den nicht übereinstimmenden
Worten korrespondieren, häufig
entladen, wodurch mehr Energie verbraucht wird.
-
Ein
anderes Problem ist in 2A dargestellt. Ein hoher logischer
Pegel an einem Knoten DX in 1 (VCL-Vtn4
oder VCLB-Vtn3, wobei VCL eine Spannung auf einer CL-Leitung repräsentiert,
VCLB eine Spannung auf einer CLB-Leitung repräsentiert und Vtn3 und Vtn4
jeweils eine Schwellwertspannung der Transistoren T3 und T4 repräsentieren)
erreicht eine Spannung, die nur leicht höher als die Schwellwertspannung
des Transistors T3 oder T4 ist. Diese Hochpegelspannung an DX wird
verwendet, um den Transistor T5 leitend zu schalten. Um den abgesenkten
hohen Spannungspegel zu kompensieren, muss ein Transistor T5 mit
großen
Abmessungen verwendet werden. Der Bedarf an einem Transistor mit
größeren Abmessungen
in jeder Zelle reduziert die Gesamtdichte des TCAMs. Noch problematischer
ist, dass die TCAM-Zelle, wenn eine Betriebsspannung abgesenkt wird,
eventuell nicht richtig arbeitet, wenn die hohe Pegelspannung an
DX nicht die Schwellwertspannung des Transistors T5 erreicht. Zur
Verdeutlichung sei angenommen, dass eine Betriebsspannung 1,2V ist
und eine Schwellwertspannung des NMOS-Transistors T5 0,5V ist, so
dass ein hoher Pegel am Knoten DX 0,7V beträgt, wie aus den 2A und 2B ersichtlich
ist. Da dieser Pegel nicht hoch genug ist, um den NMOS-Transistor
T5 leitend zu schalten, kann der Signalpegel auf der Übereinstimmungsleitung
MATCH nicht verwendet werden, um eine Überstimmung oder Nichtüberstimmung
richtig anzuzeigen.
-
Wieder
bezugnehmend auf die TCAM-Zelle aus 1, wird
der Transistor T5, wenn das Vergleichsergebnis nicht maskiert ist
(durch den Transistor T6), sperrend geschaltet, wenn Vergleichsdaten mit
in einer Hauptspeicherzelle gespeicherten Daten übereinstimmen, und er wird
leitend geschaltet, wenn keine Übereinstimmung
vorliegt. Das bedeutet, dass, wenn eine Übereinstimmung vorliegt, eine Übereinstimmungsleitung
MATCH in einem vorgeladenen Zustand gehalten wird. Wenn keine Übereinstimmung
vorliegt, werden Ladungen auf der Übereinstim mungsleitung durch
die Transistoren T5 und T6 entladen. Die Entladegeschwindigkeit
der Übereinstimmungsleitung
MATCH ist eine Funktion der Anzahl von nicht übereinstimmenden Bits in einem Wort.
Wenn beispielsweise nur ein Bit eines Worts nicht übereinstimmt,
werden die Ladungen der Übereinstimmungsleitung
MATCH durch die Transistoren T5 und T6 der nicht übereinstimmenden
TCAM-Zelle entladen. Wenn n Bits eines m-Bit-Worts nicht übereinstimmen
(wobei n eine positive ganze Zahl kleiner als m ist), werden die
Ladungen der Übereinstimmungsleitung
MATCH durch Transistoren nx (T5, T6) in n TCAM-Zellen entladen.
Die erforderliche Zeit zum Entladen der Übereinstimmungsleitung MATCH variiert
in Abhängigkeit
von der Anzahl von nicht übereinstimmenden
Zellen. Um die Entladegeschwindigkeitsvariation zu minimieren, sind
Transistoren T5 und T6 mit größeren Abmessungen
erforderlich. Dies führt
jedoch zu größeren TCAM-Zellen. Daher
beeinflusst ein Entladegeschwindigkeitsunterschied auch die Dichte
eines TCAMs negativ.
-
Im
Hinblick auf die bisherigen Ausführungen liegt
der Erfindung als technisches Problem die Bereitstellung eines inhaltsadressierbaren
Speichers, dessen Zellen bei einer niedrigen Betriebsspannung stabil
betreibbar sind, der wenig Energie verbraucht und der die Herstellung
eines CAM hoher Dichte erleichtert, sowie eines Verfahrens zum Betreiben
eines solchen Speichers zugrunde.
-
Die
Erfindung löst
dieses Problem durch die Bereitstellung eines TCAM gemäß Patentanspruch
1 und eines Betriebsverfahrens gemäß Patentanspruch 14.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben,
deren Wortlaut hiermit durch Bezugnahme in die Beschreibung aufgenommen
wird, um unnötige
Wiederholungen zu vermeiden.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie das zu deren besserem Verständnis oben erläuterte,
herkömmliche
Ausführungsbeispiel
sind in den Zeichnungen dargestellt. Es zeigen:
-
1 ein
Schaltbild einer herkömmlichen TCAM-Zelle,
-
2A einen
Spannungspegel eines internen Knotens der TCAM-Zelle von 1 während eines
Vergleichsvorgangs,
-
2B Spannungspegel
an internen Knoten der TCAM-Zelle von 1,
-
3 ein
Blockdiagramm eines erfindungsgemäßen ternären inhaltsadressierbaren Speichers (TCAM),
-
4 ein
Schaltbild einer TCAM-Zelle im TCAM von 3,
-
5 einen
Spannungspegel eines internen Knotens der TCAM-Zelle von 4 während eines Vergleichsvorgangs
der TCAM-Zelle,
-
6 ein
Schaltbild einer weiteren Ausführungsform
einer TCAM-Zelle
im TCAM von 3,
-
7 ein
Blockdiagramm einer weiteren Ausführungsform eines erfindungsgemäßen ternären inhaltsadressierbaren
Speichers (TCAM),
-
8 ein
Schaltbild einer TCAM-Zelle im TCAM von 7 und
-
9 ein
Schaltbild einer weiteren Ausführungsform
einer TCAM-Zelle
im TCAM von 7.
-
Unter
Bezugnahme auf 3 umfasst ein TCAM 100 gemäß der vorliegenden
Erfindung ein Feld 120, das eine Mehrzahl von TCAM-Zellen
TCCij aufweist, die in einer Matrix aus Zeilen und Spalten angeordnet
sind, die 'i' Zeilen und 'j' Spalten aufweist, mit i = 0 bis m und
j = 0 bis n, wobei m und n natürliche
Zahlen sind. TCAM-Zellen in jeder Zeile sind gemeinsam mit der gleichen
Wortleitung gekoppelt. TCAM-Zellen TCC00 bis TCC0n in einer ersten
Zeile sind beispielsweise gemeinsam mit einer Wortleitung WL0 gekoppelt.
TCAM-Zellen TCC10 bis TCC1n in einer zweiten Zeile sind gemeinsam
mit einer Wortleitung WL1 gekoppelt. TCAM-Zellen TCCm0 bis TCCmn
in einer m-ten Zeile werden gemeinsam mit einer Wortleitung WLm
gekoppelt. Die Wortleitungen WL0 bis WLm sind mit einem Decoder 140 gekoppelt,
der die Wortleitungen WL0 bis WLm basierend auf einer Betriebsmodusanweisung
von einer Speichersteuerung (nicht dargestellt) selektiv treibt.
Der Decoder 140 treibt beispielsweise selektiv eine der Wortleitungen
WL0 bis WLm, wenn Dateninformationen in TCAM-Zellen irgendeiner
Zeile gespeichert oder Dateninformationen daraus ausgelesen werden.
Für den
Fall, in dem Vergleichsdatenbits (die ein Suchwort bilden) mit Datenbits
(die ein Wort bilden) verglichen werden, die in TCAM-Zellen einer
jeden Zeile gespeichert sind, wählt
der Decoder 140 nicht alle Wortleitungen WL0 bis WLm gleichzeitig
aus. TCAM-Zellen einer jeden Zeile sind gemeinsam mit einem Bitleitungspaar,
einem Maskierungsleitungspaar und einem Vergleichsleitungspaar gekoppelt. TCAM-Zellen
TCC00 bis TCCm0 einer ersten Spalte sind beispielsweise gemeinsam
mit einem Bitleitungspaar BL0 und BL0B, einem Maskierungsleitungspaar
ML0 und ML0B und einem Vergleichsleitungspaar CL0 und CL0B gekoppelt.
TCAM-Zellen TCC01 bis TCCm1 einer zweiten Spalte sind gemeinsam
mit einem Bitleitungspaar BL1 und BL1B, einem Maskierungsleitungspaar
ML1 und ML1B und einem Vergleichsleitungspaar CL1 und CL1B gekoppelt. TCAM-Zellen
TCC0n bis TCCmn einer n-ten Spalte sind gemeinsam mit einem Bitleitungspaar
Bin und BLnB, einem Maskierungsleitungspaar MLn und MLnB und einem
Vergleichsleitungspaar CLn und CLnB gekoppelt. Ein Bitleitungspaar
BLi und BLiB einer jeden Spalte wird zur Übertragung von Daten verwendet,
die in TCAM-Zellen einer entsprechenden Spalte gespeichert oder
aus diesen gelesen werden sollen. Ein Maskierungsleitungspaar MLi
und MLiB einer jeden Spalte wird zur Übertragung von Maskierungsdaten
verwendet, die in TCAM-Zellen
einer entsprechenden Spalte gespeichert oder aus diesen gelesen
werden sollen. Ein Vergleichsleitungspaar CLi und CLiB einer jeden
Spalte wird zur Übertragung von
Vergleichsdaten verwendet.
-
Die
TCAM-Zelle 100 gemäß einer
Ausführungsform
der vorliegenden Erfindung umfasst Übereinstimmungsleitungen MATCH0
bis MATCHm, die jeweils mit Zeilen oder Wortleitungen WL0 bis WLm korrespondieren.
Jede der Übereinstimmungsleitungen
MATCH0 bis MATCHm ist in eine Mehrzahl von Übereinstimmungsleitungssegmente
aufgeteilt. Eine Übereinstimmungsleitung
MATCH0 einer ersten Zeile ist beispielsweise in Übereinstimmungsleitungssegmente
MATCH00 bis MATCH0n + 1 aufgeteilt. Eine Übereinstimmungsleitung MATCH1
einer zweiten Zeile ist in Übereinstimmungsleitungssegmente MATCH10
bis MATCH1n + 1 aufgeteilt. Eine Übereinstimmungsleitung MATCHm
einer m-ten Zeile ist in Übereinstimmungsleitungssegmente
MATCHm0 bis MATCHmn + 1 aufgeteilt. In jeder Zeile sind TCAM-Zellen
jeweils zwischen benachbarten Übereinstimmungsleitungssegmenten
eingeschleift. Eine TCAM-Zelle TCC00, die in einer ersten Zeile
und in einer ersten Spalte positioniert ist, ist beispielsweise zwischen
den Übereinstimmungsleitungssegmenten MATCH00
und MATCH01 eingeschleift. Eine TCAM-Zelle TCC01, die in der ersten
Zeile und in einer zweiten Spalte positioniert ist, ist zwischen
den Übereinstimmungsleitungssegmenten
MATCH01 und MATCH02 eingeschleift. Eine TCAM-Zelle TCC0n, die in
der ersten Zeile und in einer n-ten Spalte positioniert ist, ist
zwischen den Überein stimmungsleitungssegmenten
MATCH0n und MATCH0n + 1 eingeschleift. TCAM-Zellen der anderen Zeilen sind
auf die gleiche oben beschriebene Weise angeordnet.
-
Entladeschaltungen 160D0, 160D1,
..., und 160Dm sind mit korrespondierenden ersten Übereinstimmungsleitungssegmenten
MATCH00, MATCH10, ..., MATCHm0 gekoppelt, die jeweils Übereinstimmungsleitungen
MATCH0 bis MATCHm bilden. Die Entladeschaltungen 160D0 bis 160Dm verbinden
korrespondierende Übereinstimmungsleitungssegmente
MATCH00 bis MATCHm0 elektrisch mit einer Massespannung, um die jeweilige Übereinstimmungsleitung
zu entladen. Vorladeschaltungen 180P0, 180P1,
..., 180Pm sind mit je einer der letzten Übereinstimmungsleitungssegmente
MATCH0n + 1, MATCH1n + 1, .., MATCHmn + 1 gekoppelt. Die Vorladeschaltungen 180P0 bis 180Pm verbinden
elektrisch korrespondierende Übereinstimmungsleitungssegmente
MATCH0n + 1 bis MATCHmn + 1 jeweils mit einer Versorgungsspannung.
Die Entladeschaltungen 160D0 bis 160Dm und die
Vorladeschaltungen 180P0 bis 180Pm arbeiten oder
arbeiten selektiv basierend auf einem Betriebsmodus, vorzugsweise
von einer Speichersteuereinheit (nicht dargestellt). Die letzten Übereinstimmungsleitungssegmente
MATCH0n + 1 bis MATCHmn + 1 von allen Zeilen sind mit einer Übereinstimmungsschaltung 200 gekoppelt,
die in Reaktion auf logische Zustände der Übereinstimmungsleitungssegmente
MATCH0n + 1 bis MATCHmn + 1 eine Adresse erzeugt, die mit aktuell
eingegebenen Vergleichsdaten korrespondiert.
-
4 zeigt
eine bevorzugte Ausführungsform
einer TCAM-Zelle, z.B. der Zelle TCC00 aus 3. Die TCAM-Zelle
umfasst eine Hauptspeicherzelle und eine Masken-Speicherzelle. Obwohl
die hier gezeigte Hauptspeicherzelle und Masken-Speicherzelle eine
SRAM-Zelle ist, versteht sich für
den Fachmann, dass auch andere Typen von Speicherzel len, beispielsweise
eine DRAM-Zelle, FRAM-Zellen oder dergleichen, verwendet werden
können.
-
Die
Hauptspeicherzelle ist mit einem Bitleitungspaar BL0 und BL0B gekoppelt
und umfasst zwei NMOS-Transistoren T10 und T12 und zwei Inverter
INV10 und INV12. Wenn die gespeicherten Daten in der Hauptspeicherzelle „0" sind, weist ein Zellenknoten
CN10 einen niedrigen logischen Pegel auf und ein Zellenknoten CN12
weist einen hohen logischen Pegel auf. Wenn die gespeicherten Daten
in der Hauptspeicherzelle „1" sind, weist der
Zellenknoten CN10 einen hohen logischen Pegel auf und der Zellenknoten
CN12 weist einen niedrigen logischen Pegel auf. Die Masken-Speicherzelle
ist mit einem Maskierungsleitungspaar ML0 und ML0B und einer Wortleitung
WL0 gekoppelt und umfasst zwei NMOS-Transistoren T22 und T24 und
zwei Inverter INV14 und INV16. Wenn die in der Masken-Speicherzelle
gespeicherten Maskierungsdaten „0" sind, weist ein Zellenknoten CN14 einen
niedrigen logischen Pegel auf und ein Zellenknoten CN16 weist einen
hohen logischen Pegel auf. Wenn die gespeicherten Maskierungsdaten
in der Masken-Speicherzelle „1" sind, weist der
Zellenknoten CN14 einen hohen logischen Pegel auf und der Zellenknoten
CN16 weist einen niedrigen logischen Pegel auf.
-
Die
TCAM-Zelle TCC00 umfasst weiter zwei PMOS-Transistoren T14 und T16
und zwei NMOS-Transistoren T18 und T20. Der PMOS-Transistor T14 beinhaltet eine erste
Elektrode (Drain oder Source), die mit einer komplementären Vergleichsleitung
CL0B gekoppelt ist, eine zweite Elektrode (Source oder Drain), die
mit einem internen Knoten DX gekoppelt ist, und eine Steuerelektrode,
die mit dem Zellenknoten CN10 der Hauptspeicherzelle gekoppelt ist.
Der PMOS-Transistor T16 umfasst eine erste Elektrode (Source oder
Drain), die mit einer Vergleichsleitung CL0 gekoppelt ist, eine
zweite Elektrode (Drain oder Source), die mit dem internen Knoten DX
gekoppelt ist, und eine Steuerelektrode, die mit dem Zellenknoten
CN12 der Hauptspeicherzelle gekoppelt ist. Die PMOS-Transistoren
T14 und T16 bilden eine Detektionsschaltung zur Detektion, ob die über ein
Vergleichsleitungspaar übertragenen
Vergleichsdaten mit in der Hauptspeicherzelle gespeicherten Daten übereinstimmen.
-
Der
NMOS-Transistor T18 beinhaltet eine erste Elektrode (oder Source)
auf, die mit einem Übereinstimmungsleitungssegment
MATCH00 gekoppelt ist, eine zweite Elektrode (oder Drain), die mit einem Übereinstimmungsleitungssegment MATCH01
gekoppelt ist, und eine Steuerelektrode, die mit dem internen Knoten
DX gekoppelt ist. Der NMOS-Transistor
T18 bildet eine Übereinstimmungsschaltung,
welche die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch verbindet, wenn die Vergleichsdaten
mit den in der Hauptspeicherzelle gespeicherten Daten übereinstimmen. Der
NMOS-Transistor T20 beinhaltet eine erste Elektrode (oder Source),
die mit dem Übereinstimmungsleitungssegment
MATCH00 gekoppelt ist, eine zweite Elektrode (oder Drain), die mit
dem Übereinstimmungsleitungssegment
MATCH01 gekoppelt ist, und eine Steuerelektrode, die mit dem Zellenknoten CN16
der Masken-Speicherzelle gekoppelt ist. Der NMOS-Transistor T20
bildet eine Maskierungsschaltung, welche die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 in Reaktion auf die in der Masken-Speicherzelle gespeicherten
Maskierungsdaten elektrisch verbindet. Obwohl die Hauptspeicherzelle
und die Masken-Speicherzelle mit der gleichen Wortleitung WL0 gekoppelt
sind, wie in 4 dargestellt, ist es ersichtlich,
dass die Wortleitung in zwei Wortleitungsabschnitte aufgetrennt
sein kann, die jeweils getrennt mit der Hauptspeicherzelle und der
Masken-Speicherzelle verbunden werden können.
-
In
der TCAM-Zelle mit der oben beschriebenen Struktur ist die TCAM-Zelle TCC00 in einem
Zustand „X" oder „don't care", wenn die Maskierungsdaten „0" sind. Wenn die Maskierungsdaten „1" sind, führt die
TCAM-Zelle TCC00 einen Vergleichsvorgang aus. Insbesondere weist im
Zustand „X", wo die Maskierungsdaten „0" sind, der Zellenknoten
CN14 der Masken-Speicherzelle einen niedrigen logischen Pegel auf
und der Zellenknoten CN16 derselben weist einen hohen logischen
Pegel auf. In diesem Fall wird der NMOS-Transistor T20 leitend geschaltet und
die Übereinstimmungsleitungssegmente MATCH00
und MATCH01 werden elektrisch miteinander verbunden. Das bedeutet,
dass die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 unabhängig
vom Ergebnis des Vergleichs der Vergleichsdaten mit den in der Hauptspeicherzelle
gespeicherten Daten elektrisch miteinander verbunden werden. Wenn
die Maskierungsdaten „1" sind, weist der
Zellenknoten CN14 der Masken-Speicherzelle einen hohen logischen
Pegel auf und der Zellenknoten CN16 weist einen niedrigen logischen Pegel
auf. In diesem Fall wird der NMOS-Transistor T20 sperrend geschaltet.
Die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 werden in Abhängigkeit vom Ergebnis des Vergleichs
der Vergleichsdaten mit den in der Hauptspeicherzelle gespeicherten
Daten elektrisch miteinander verbunden.
-
Nun
wird eine beispielhafte Vergleichsfunktion der TCAM-Zelle beschrieben.
Wenn die in der Hauptspeicherzelle gespeicherten Daten „0" sind, weist der
Zellenknoten CN10 der Hauptspeicherzelle einen niedrigen logischen
Pegel auf und der Zellenknoten CN12 derselben weist einen hohen
logischen Pegel auf. Wenn die TCAM-Zelle nicht maskiert ist, führt die
TCAM-Zelle eine Vergleichsfunktion aus. Wenn die in der Hauptspeicherzelle
gespeicherten Daten „1" sind, weist der
Zellenknoten CN10 einen hohen logischen Pegel auf und der Zellenknoten CN12
weist einen niedrigen logischen Pegel auf. Ein logischer Zustand
des internen Knotens DX wird in Abhängigkeit vom Ergebnis des Vergleichs
der Vergleichsdaten mit den in der Hauptspeicherzelle gespeicherten
Daten bestimmt. So wird, um dies zu illustrieren, der PMOS-Transistor
T14, wenn die gespeicherten Daten in der Hauptspeicherzelle "0" sind, leitend geschaltet und der PMOS-Transistor
T16 wird sperrend geschal tet. Wenn Vergleichsdaten mit dem Wert „0" über das Vergleichsleitungspaar
CL0 und CL0B übertragen
werden, wird ein Datenwert „1" auf der komplementären Vergleichsleitung
CL0B über den
PMOS-Transistor T14 zum internen Knoten DX übertragen. Dies bewirkt, dass
der NMOS-Transistor T18
leitend geschaltet wird, und bewirkt, dass die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch miteinander verbunden werden. Andererseits
werden, wenn Vergleichsdaten mit dem Wert „1" über
das Vergleichsleitungspaar CL0 und CL0B übertragen werden, Daten mit
dem Wert „0" auf der komplementären Vergleichsleitung
CL0B über den
PMOS-Transistor T14 zum internen Knoten DX übertragen. Dies bewirkt, dass
der NMOS-Transistor T18 sperrend geschaltet wird und die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 nicht elektrisch miteinander verbunden werden.
-
5 zeigt
einen Spannungspegel eines internen Knotens der TCAM-Zelle gemäß 4 während eines
Vergleichsvorgangs der TCAM-Zelle. Wenn der interne Knoten DX entladen
wird, fällt
die Spannung an DX auf eine Schwellwertspannung Vtp14 oder Vtp16
des PMOS-Transistors T14 oder T16 ab.
-
Wenn
die gespeicherten Daten in der Hauptspeicherzelle „1" sind, wird der PMOS-Transistor
T14 sperrend geschaltet und der PMOS-Transistor T16 wird leitend
geschaltet. Wenn Vergleichsdaten mit dem Wert „0" über
das Vergleichsleitungspaar CL0 und CL0B übertragen werden, wird ein
Datenwert „0" auf der Vergleichsleitung
CL0 über
den PMOS-Transistor
T14 zum internen Knoten DX übertragen.
Dies bewirkt, dass der NMOS-Transistor T18 sperrend geschaltet wird,
und bewirkt, dass die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch voneinander getrennt werden. Andererseits
werden, wenn Vergleichsdaten mit dem Wert „1" über
das Vergleichsleitungspaar CL0 und CL0B übertragen werden, Daten mit
dem Wert „1" auf der Vergleichslei tung
CL0 über
den PMOS-Transistor T14 zum internen Knoten DX übertragen. Dies bewirkt, dass
der NMOS-Transistor T18 leitend geschaltet wird, und bewirkt, dass
die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch miteinander verbunden werden. Daher werden,
wenn Vergleichsdaten mit in der Hauptspeicherzelle gespeicherten
Daten übereinstimmen,
die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch miteinander verbunden. Andererseits
werden, wenn die Vergleichsdaten nicht mit diesen übereinstimmen,
die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch voneinander getrennt. In jeder Zeile
wird, wenn in allen TCAM-Zellen der gleichen Zeile gespeicherte
Datenbits mit über
korrespondierende Vergleichsleitungspaare übertragenen Vergleichsdaten übereinstimmen, Übereinstimmungsleitungssegmente,
die eine Übereinstimmungsleitung
bilden, korrespondierend mit der Zeile elektrisch miteinander und
mit der korrespondierenden Entladeschaltung 160D[X]m verbunden.
Daraus resultiert, dass die Übereinstimmungsleitung,
die mit der Zeile korrespondiert, im Wesentlichen nach Masse entladen
wird.
-
In
der erfindungsgemäßen TCAM-Zelle
ist ein erstes Übereinstimmungsleitungssegment
einer jeden Zeile über
eine Entladeschaltung mit einer Massespannung gekoppelt, und das
letzte Übereinstimmungsleitungssegment
ist über
eine Vorladeschaltung mit einer Versorgungsspannung verbunden. Der
Ausgang MATCH in jeder Zeile ist auf einem 'Vorlade'-Pegel
oder auf „1", bis eine Übereinstimmung
aus dem Vergleich der gespeicherten Daten von allen TCAM-Zellen
in der gleichen Zeile vorliegt, woraufhin der Ausgang MATCH auf „0" entladen wird. Entsprechend
wird ein logischer Zustand einer Übereinstimmungsleitung in jeder
Zeile nur variiert, wenn alle Datenbits von jedem Wort mit Vergleichsdatenbits übereinstimmen.
Das bedeutet, dass der logische Zustand der Übereinstimmungsleitung unabhängig von
der Anzahl an nicht übereinstimmenden Datenbits
eines Worts mit der gleichen Geschwindigkeit variiert wird.
-
Wie
vorher beschrieben, kann in der in 1 dargestellten
herkömmlichen
TCAM-Zellenstruktur die TCAM-Zelle keine Vergleichsfunktion ausführen, wenn
eine Betriebsspannung abfällt.
In vorteilhafter Weise wird im ersten Ausführungsbeispiel der erfindungsgemäßen TCAM-Zellenstruktur ein
hoher logischer Pegel auf einer Vergleichsleitung CL0 oder einer
komplementären
Vergleichsleitung CL0B über
einen PMOS-Transistor
T14 oder T16 ohne Reduzierung der Schwellwertspannung zu einem internen Knoten
DX übertragen.
Dadurch führt
die TCAM-Zelle eine Vergleichsfunktion normal aus, auch wenn eine
Betriebsspannung niedrig ist, wodurch die Zuverlässigkeit der TCAM-Zelle verbessert
wird. Zusätzlich
wird, da der hohe logische Pegel auf der Vergleichsleitung CL0 oder
auf der komplementären Vergleichsleitung
CL0B über
den PMOS-Transistor T14 oder T16 ohne Reduzierung der Schwellwertspannung
zum internen Knoten DX übertragen
wird, die Treiberfähigkeit
des NMOS-Transistors T18 verbessert. Durch die verbesserte Treiberfähigkeit
kann die Größe des NMOS-Transistors
T18 reduziert werden, und die Gesamtdichte des TCAMs wird erhöht.
-
Zudem
weist, da die Anzahl an nicht übereinstimmenden
Worten viel größer als
die Anzahl an übereinstimmenden
Worten ist, die herkömmliche TCAM-Zellenstruktur
gemäß 1 einen
deutlich höheren
Energieverbrauch auf, da der logische Zustand einer Übereinstimmungsleitung
variiert wird, wenn eine Nichtübereinstimmung
auftritt. Andererseits weist die erfindungsgemäße TCAM-Zellenstruktur einen
deutlich niedrigeren Energieverbrauch auf, da ein logischer Zustand
einer Übereinstimmungsleitung
nur variiert wird, wenn eine Übereinstimmung auftritt.
-
6 zeigt
ein Schaltbild einer anderen erfindungsgemäßen Ausführungsform einer TCAM-Zelle.
In 6 und in 4 bezeichnen
gleiche Bezugszeichen gleiche Komponenten. Eine TCAM-Zelle aus 6 ist
im Wesentlichen identisch zur TCAM-Zelle aus 6, außer dass
in der Schaltung gemäß 6 NMOS-Transistoren
T26 und T28 hinzugefügt
sind. Der NMOS-Transistor T26 beinhaltet eine erste Elektrode, die
mit einer komplementären
Vergleichsleitung CL0B gekoppelt ist, eine zweite Elektrode, die
mit einem internen Knoten DX gekoppelt ist, und eine Steuerelektrode,
die mit einem Zellenknoten CN12 einer Hauptspeicherzelle gekoppelt ist.
Der NMOS-Transistor T28 beinhaltet eine erste Elektrode, die mit
einer Vergleichsleitung CL0 gekoppelt ist, eine zweite Elektrode,
die mit dem internen Knoten DX gekoppelt ist, und eine Steuerelektrode, die
mit einem Zellenknoten CN10 der Hauptspeicherzelle gekoppelt ist.
Gemäß einer
solchen Struktur schwingt eine Spannung am internen Knoten DX voll zwischen
einer Versorgungsspannung und einer Massespannung.
-
7 zeigt
ein Blockdiagramm einer zweiten Ausführungsform eines erfindungsgemäßen inhaltsadressierbaren
Speichers (CAM). In 7 und 3 bezeichnen
gleiche Bezugszeichen gleiche Komponenten. Wie aus 7 ersichtlich,
ist eine Vorladeschaltung mit einem ersten Übereinstimmungsleitungssegment
einer jeden Zelle gekoppelt, und eine Entladeschaltung ist mit dem
letzten Übereinstimmungsleitungssegment
derselben gekoppelt. Eine Vorladeschaltung 180P0' ist beispielsweise
mit einem ersten Übereinstimmungsleitungssegment MATCH00
einer ersten Zeile gekoppelt, und eine Entladeschaltung 160D0' ist mit dem
letzten Übereinstimmungsleitungssegment
MATCH0n + 1 derselben gekoppelt. Eine Vorladeschaltung 180P1' ist mit einem
ersten Übereinstimmungsleitungssegment MATCH10
einer zweiten Zeile gekoppelt, und eine Entladeschaltung 160D1' ist mit dem
letzten Übereinstimmungsleitungssegment
MATCH1n + 1 derselben gekoppelt. Eine Vorladeschaltung 180Pm' ist mit einem
ersten Übereinstimmungsleitungssegment MATCHm0
der letzten Zeile gekoppelt, und eine Entladeschal tung 160Dm' ist mit dem
letzten Übereinstimmungsleitungssegment
MATCHmn + 1 derselben gekoppelt.
-
8 zeigt
ein Schaltbild einer bevorzugten Ausführungsform der TCAM-Zellenstruktur
im TCAM gemäß 7.
Obwohl in 8 eine TCAM-Zelle dargestellt
ist, die in einer ersten Zeile und einer ersten Spalte positioniert
ist, versteht es sich, dass die anderen Zellen im TCAM gemäß 7 die
gleiche Struktur aufweisen.
-
Die
TCAM-Zelle TCC00 gemäß dieser
Ausführungsform
der Erfindung umfasst eine Hauptspeicherzelle und eine Masken-Speicherzelle.
Obwohl eine SRAM-Zelle als Hauptspeicherzelle und Masken-Speicherzelle gezeigt
ist, ist es dem Fachmann klar, dass auch andere Speicherzellen,
beispielsweise eine DRAM-Zelle, eine FRAM-Zelle und dergleichen,
verwendet werden können.
Die Hauptspeicherzelle ist mit einem Bitleitungspaar BL0 und BL0B
und einer Wortleitung WL0 gekoppelt und umfasst zwei NMOS-Transistoren
T30, T32 und zwei Inverter INV30 und INV32. Wenn die gespeicherten
Daten in der Hauptspeicherzelle „0" sind, weist ein Zellenknoten CN30 der
Hauptspeicherzelle einen niedrigen logischen Pegel auf und ein Zellenknoten
CN32 weist einen hohen logischen Pegel auf. Wenn die gespeicherten
Daten in der Hauptspeicherzelle „1" sind, weist der Zellenknoten CN30 der
Hauptspeicherzelle einen hohen logischen Pegel auf und der Zellenknoten
CN32 weist einen niedrigen logischen Pegel auf. Die Masken-Speicherzelle ist
mit einem Maskierungsleitungspaar ML0 und ML0B und einer Wortleitung
WL0 gekoppelt und umfasst zwei NMOS-Transistoren T42 und T44 und zwei Inverter
INV34 und INV36. Wenn die in der Masken-Speicherzelle gespeicherten
Maskierungsdaten „0" sind, weist ein Zellenknoten
CN34 der Masken-Speicherzelle einen niedrigen logischen Pegel auf
und ein Zellenknoten CN36 weist einen hohen logischen Pegel auf.
Wenn die Maskierungsdaten in dieser Masken-Speicherzelle „1" sind, weist der Zellenknoten CN34 der
Masken- Speicherzelle
einen hohen logischen Pegel auf und der Zellenknoten CN36 weist
einen niedrigen logischen Pegel auf.
-
Die
TCAM-Zelle TCC00 gemäß dieser
Ausführungsform
der Erfindung umfasst weiter zwei NMOS-Transistoren T34 und T36
und zwei PMOS-Transistoren
T38 und T40. Der NMOS-Transistor T34 beinhaltet eine erste Elektrode
(Source oder Drain), die mit einer komplementären Vergleichsleitung CL0B
gekoppelt ist, eine zweite Elektrode (Drain oder Source), die mit
einem internen Knoten DX gekoppelt ist, und eine Steuerelektrode, die
mit dem Zellenknoten CN30 der Hauptspeicherzelle gekoppelt ist.
Der NMOS-Transistor T36 beinhaltet eine erste Elektrode (Source
oder Drain), die mit einer Vergleichsleitung CL0 gekoppelt ist,
eine zweite Elektrode (Drain oder Source), die mit dem internen
Knoten DX gekoppelt ist, und eine Steuerelektrode, die mit dem Zellenknoten
CN32 der Hauptspeicherzelle gekoppelt ist. Die NMOS-Transistoren
T34 und T36 bilden eine Detektionsschaltung zur Detektion, ob über ein
Vergleichsleitungspaar übertragene Vergleichsdaten
mit in der Hauptspeicherzelle gespeicherten Daten übereinstimmen.
Der PMOS-Transistor T38 beinhaltet eine erste Elektrode (oder Source),
die mit einem Übereinstimmungsleitungssegment
MATCH00 gekoppelt ist, eine zweite Elektrode (oder Drain), die mit
einem Übereinstimmungsleitungssegment
MATCH01 gekoppelt ist, und eine Steuerelektrode, die mit dem internen
Knoten DX gekoppelt ist. Der PMOS-Transistor T38 bildet eine Übereinstimmungsschaltung,
welche die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch miteinander verbindet, wenn die Vergleichsdaten
mit den gespeicherten Daten übereinstimmen.
Der PMOS-Transistor T40 beinhaltet eine erste Elektrode (oder Source),
die mit dem Übereinstimmungsleitungssegment
MATCH00 gekoppelt ist, eine zweite Elektrode (oder Drain), die mit
dem Übereinstimmungsleitungssegment
MATCH01 gekoppelt ist, und eine Steuerelektrode, die mit dem Zellenknoten
CN34 der Masken-Speicherzelle gekoppelt ist. Der PMOS-Transistor
T40 bildet eine Maskierungsschaltung, welche die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 in Reaktion auf in der Masken-Speicherzelle
gespeicherte Maskierungsdaten elektrisch miteinander verbindet.
-
Gemäß einer
solchen Schaltungsstruktur werden, wenn die Maskierungsdaten „0" sind, die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 unabhängig
vom Vergleichsergebnis über den
PMOS-Transistor
P40 elektrisch miteinander verbunden. Das bedeutet, dass das Übereinstimmungsleitungssegment
MATCH01 über
das Übereinstimmungsleitungssegment
MATCH00 und den PMOS-Transistor T40 auf eine Versorgungsspannung
von der Vorladeschaltung 180P0' (siehe 7) aufgeladen
wird. Wenn die Maskierungsdaten „1" sind, wird ihre elektrische Verbindung
in Abhängigkeit
vom Vergleichsergebnis bestimmt. Wenn die Vergleichsdaten mit den
in der Hauptspeicherzelle gespeicherten Daten übereinstimmen, nimmt ein logischer
Pegel am internen Knoten DX im Wesentlichen eine Massespannung an,
wodurch der Transistor T38 leitend geschaltet wird, um die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch miteinander zu verbinden. Andererseits
wird, wenn die Vergleichsdaten nicht damit überstimmen, der interne Knoten
DX mit einer Signalleitung CL0 oder CL0B (auf einem hohen Pegel)
gekoppelt, wodurch der Transistor T28 sperrend geschaltet wird,
um die Übereinstimmungsleitungssegmente
MATCH00 und MATCH01 elektrisch voneinander zu trennen.
-
9 zeigt
ein Schaltbild einer weiteren TCAM-Zelle im TCAM von 7.
In 9 und 8 bezeichnen gleiche Bezugszeichen
gleiche Komponenten. Die TCAM-Zelle aus 9 ist im
Wesentlichen identisch zur TCAM-Zelle aus 8, außer dass
in 9 PMOS-Transistoren T46 und T48 hinzugefügt sind.
Der PMOS-Transistor T46 beinhaltet eine erste Elektrode, die mit
einer komplementären Vergleichsleitung
CL0B gekoppelt ist, eine zweite Elektrode, die mit einem internen
Knoten DX gekoppelt ist, und eine Steuerelektrode, die mit einem
Zellenknoten CN32 einer Hauptspeicherzelle gekoppelt ist. Der PMOS-Transistor
T48 beinhaltet eine erste Elektrode, die mit einer Vergleichsleitung
CL0 gekoppelt ist, eine zweite Elektrode, die mit dem internen Knoten
DX gekoppelt ist, und eine Steuerelektrode, die mit einem Zellenknoten
CN30 der Hauptspeicherzelle gekoppelt ist. Gemäß einer solchen Struktur schwingt
eine Spannung am internen Knoten DX voll zwischen einer Versorgungsspannung
und einer Massespannung. Anderseits kann die TCAM-Zelle gemäß 9 wie
die TCAM-Zelle gemäß 8 arbeiten
und den gleichen Effekt aufweisen.
-
Wie
oben ausgeführt,
weist ein ternärer
inhaltsadressierbarer Speicher (TCAM) gemäß den Ausführungsformen der vorliegenden
Erfindung eine NAND-Typ-Übereinstimmungsleitungstruktur
auf, in welcher der Pegel einer Übereinstimmungsleitung nur
verändert
wird, z.B. entladen/geladen wird, wenn alle in den TCAM-Zellen gespeicherten
Datenbits eines Worts mit korrespondierenden Vergleichsdatenbits übereinstimmen.
Dies führt
zu einer Reduzierung des Energieverbrauchs und erhöhter Zuverlässigkeit und
Dichte. Transistoren (z.B. T14 und T16 aus 4), die
eine Detektionsschaltung bilden, sind komplementär aufgebaut, mit einem Transistor
(z.B. T18 aus 4), der eine Übereinstimmungsschaltung
bildet.
-
Daraus
resultiert, dass die TCAM-Zellen gemäß Ausführungsformen der Erfindung
zur Verwendung in einem CAM hoher Dichte geeignet sind und bei einer
niedrigen Spannung stabil betreibbar sind.