-
Die vorliegende Erfindung betrifft inhaltsadressierte
Speicher. Insbesondere, wenn auch nicht ausschließlich
betrifft die Erfindung inhaltsadressierte Speicher zur
Verwendung als voll assoziative Cache-Speicher.
-
In der Vergangenheit ist das Wiederauffinden von in
Direktzugriffsspeichern (RAM) gespeicherten Daten
beispielsweise durch algorithmische Suche unter Steuerung
eines Mikroprozessors von außerhalb des Speichers ausgeführt
worden. Da zu jedem Zeitpunkt nur ein kleiner Teil des
Adreßraumes des RAM angesprochen werden konnte, war es
notwendig, der Reihe nach alle Adressen durchzugehen, bis
eine Übereinstimmung gefunden wurde.
-
Inhaltsadressierte Speicher (CAM) gestatten andererseits, den
Inhalt eines Vergleichswertregisters direkt mit allen in
seinem Adreßraum bereitgehaltenen Adressen Reihe für Reihe zu
vergleichen. Bei einigen Anwendungen ist es jedoch recht
wahrscheinlich, daß mehrfache Übereinstimmungen in einem
inhaltsadressierten Speicher auftreten werden, und es wird
notwendig, eine identifizierbare Adresse wiederherzustellen,
indem die Übereinstimmung mit der höchsten Priorität genommen
wird, wobei die Priorität beispielsweise auf der Basis der
Position in dem Speicherfeld zugeschrieben werden kann. Hier
wird ein Prioritätskodierer wichtig, und in vielen Fällen
besteht die Notwendigkeit, eine große Anzahl von
Abgleichleitungen und möglicherweise eine große Anzahl von
Übereinstimmungen zu betrachten. Ein solches Schema nutzte
einen Baum aus OR- und NAND-Gattern, um
Übereinstimmungsausgaben aus zueinander lokalen Reihen
auszuwählen, wobei die resultierenden Ausgaben durch weitere
Stufen geschaltet wurden, um eine letztendliche
Prioritätsübereinstimmung mit ihrer Adresse festzulegen. In
einem solchen Schema, das, sagen wir, 512 Abgleichleitungen
aufweist, würden etwa fünf Stufen von Logikgattern benötigt,
die über die Tiefe des Feldes verteilt sind. Einige Schemata,
wie das in dem IEEE Journal of Solid-State Circuits, Band 24,
Nr. 4, August 1989, Seiten 1003-1013 von Wade et al. in
"A Ternary Content Addressable Search Engine" beschriebene,
verwenden eine Kette von in Reihe geschalteten Gattern, wobei
an geeigneten Punkten längs der Kette Puffern und Vorgriff
eingebaut ist, um Verzögerungen zu minimieren, während andere
parallel vorgehen, mit Gattern mit mehrfachen Eingaben. Das
Problem bei solchen Schemata liegt darin, daß sie auf kleine
CAM-Strukturen beschränkt sind, wenn sie schnell arbeiten und
nicht zu viel Platz auf dem Chip einnehmen sollen.
-
Gemäß der vorliegenden Erfindung ist ein inhaltsadressierter
Speicher, der ein Feld aus Speicherzellen aufweist, die in
Reihen und Spalten angeordnet sind, Einrichtungen, um
Adreßbitwerte jeweiligen Spalten dieser Speicherzellen zum
Vergleich mit den von diesen Zellen bereitgehaltenen
Bitwerten zuzuführen, wobei jeder Reihe aus Speicherzellen
eine jeweilige Abgleichleitung für die Anzeige einer
Übereinstimmung oder eines Fehlabgleichs zwischen den zugeführten
Adreßbitwerten und den von den Speicherzellen dieser Reihe
bereitgehaltenen Bitwerten zugeordnet ist, und eine
Prioritätskodieranordnung, um im Falle mehrerer Anzeigen von
Übereinstimmungen zu bestimmen, welche Übereinstimmung die
höchste Priorität besitzt, dadurch gekennzeichnet, daß die
Prioritätskodieranordnung mehrere Übertragungsgatter
aufweist, von denen jeweils eines jeder Abgleichleitung des
Feldes zugeordnet ist, wobei die Übertragungsgatter in Reihe
geschaltet sind, mit Vorrichtungen, um ein Ende dieser
Reihenschaltung mit einem Punkt auf Bezugspotential zu
verbinden, jeweilige Logikschaltungsvorrichtungen, um die
Funktion jeder dieser Übertragungsgatter zu steuern,
Latchvorrichtungen, die in Abhängigkeit des Potentials dieser
Reihenschaltung wirken und ein Einschaltsignal für die
Logikschaltungsvorrichtungen liefern, wobei die Übertragungsgatter
ursprünglich zu Beginn eines Prioritätskodierzyklusses durch
die Logikschaltungsvorrichtungen geöffnet werden, und die
Logikschaltungsvorrichtungen so angeordnet sind, daß sie
während eines Prioritätskodierzyklusses jene den
Abgleichleitungen zugeordneten Übertragungsgatter sperren,
betreffend derer eine Übereinstimmung angezeigt wird, und es
sind jede dieser Abgleichleitungen betreffend
stromempfindliche Vorrichtungen vorgesehen, die durch die Anzeige
einer Übereinstimmung auf der jeweiligen Abgleichleitung
eingeschaltet werden und die auf eine Verbindung längs dieser
Reihenschaltung von dem jeweiligen Übertragungsgatter zu dem
Punkt auf Bezugspotential ansprechen, um anzuzeigen, welche
von mehreren Übereinstimmungsanzeigen entlang der
Reihenschaltung diesem Punkt auf Bezugspotential am nächsten kommt.
-
Ein inhaltsadressierter Speicher (CAM) gemäß der vorliegenden
Erfindung wird nun unter Bezugnahme auf die beiliegenden
Zeichnungen beschrieben, in welchen:
-
die Fig. 1 und 2 schematisch zwei Formen
inhaltsadressierer Speicherzellen zeigen;
-
Fig. 3 schematisch einen stromempfindlichen Verstärker
mit einem Strom-zu-Spannungs-Konverter zeigt;
-
Fig. 4 schematisch eine Zelle der Prioritätskette für
einen inhaltsadressieren Speicher zeigt, und
-
Fig. 5 schematisch eine Prioritätskette für einen
inhaltsadressierten Speicher zeigt.
-
Zunächst auf Fig. 1 bezugnehmend, die eine bekannte Form
einer inhaltsadressierten Speicherzelle zeigt, werden die in
der Zelle bereitzuhaltenden Bitwerte aus den Bitleitungen bl
und blb, über die Zugriffstransistoren m5, m6 unter Steuerung
von Signalen, die in eine Wortleitung wl eingespeist werden
auf ein Paar kreuzgekoppelter Inverter geführt, welche die
Transistoren m1 bis m4 aufweisen. Die Zellen in dem Speicher
sind in Reihen und Spalten angeordnet, und die in jeder
Zellenreihe bereitgehaltenen Bitwerte stellen
Adreßinformationen bezüglich von Datenbits dar, die durch diese
Adreßinformationen identifiziert werden und die an einem
entsprechenden Speicherplatz in einem Direktzugriffsspeicher
(nicht gezeigt) bereitgehalten werden.
-
Um die in dem Direktzugriffsspeicher bereitgehaltenen
Datenbits wieder aufzufinden, werden die notwendigen
identifizierenden Adreßbitwerte in die Bitleitungen
entsprechender Spalten der inhaltsadressierten Speicherzellen
in der Richtung eingegeben, daß in jeder Zelle, wo eine
Übereinstimmung zwischen bereitgehaltenen Bitwerten und
Adreßbitwerten auftritt, die Transistoren eines Paares m7, m9
und die Transistoren eines Paares m8, m10 so angeordnet sind,
daß sie in entgegengesetzten Richtungen vorgespannt werden,
so daß keines der Paare einen leitenden Pfad zwischen einer
Abgleichleitung ml und Masse bietet. An allen Zellen, wo ein
Fehlabgleich auftritt, sind die Transistoren des einen oder
anderen Paares m7, m9 oder m8, m10 jedoch so angeordnet, daß
sie in der Richtung vorgespannt werden, daß sie einen
leitenden Pfad von der Abgleichleitung zu Masse
bereitstellen.
-
Die Abgleichleitungen ml oder eine Reihe aus Speicherzellen
sind in Reihe geschaltet, und vor einem Wiederauffindzyklus
werden alle Abgleichleitungen aller Reihen auf vdd
vorgespannt. In jeder Reihe, in der ein oder mehrere
Fehlabgleiche auftreten, wird die Abgleichleitung auf
Massepotential heruntergezogen, wogegen auf einer Reihe, wo alle
bereitgehaltenen Bitwerte mit den in die Bitleitungen
eingespeisten identifizierenden Adreßbitwerten übereinstimmen,
bleibt das Potential der Abgleichleitung der Reihe auf vdd,
wodurch eine Übereinstimmung auf dieser Abgleichleitung
angezeigt wird.
-
Bei der in Fig. 2 gezeigten alternativen Form einer
Speicherzelle, die Bestandteil des Gegenstandes der
gleichfalls anhängigen UK-Patentanmeldung Nr. 9308778.1 (EP-
A-0622 804) ist, sind die Transistoren m24 und m25 in dieser
Zelle so angeordnet, daß sie, wenn in irgendeiner Zelle eine
Übereinstimmung auftritt, durch die entsprechenden Bitwerte
vorgespannt werden, so daß an den Knoten n1 eine
Durchlaßspannung für einen Transistor m26 angelegt wird, der
in der Abgleichleitung in Reihe zwischen mi und mo geschaltet
ist. Wenn längs einer Reihe eine vollständige Übereinstimmung
auftritt, bieten deshalb die Transistoren 26 der
Abgleichleitung der Zellen in dieser Reihe einen leitenden
Pfad längs der Reihe, der mittels der Vorrichtung einer
stromempfindlichen Schaltung, wie der in Fig. 3 gezeigten,
erfaßt werden kann.
-
Nun auf die in Fig. 3 gezeigte stromempfindlichen Schaltung
bezugnehmend, so liefert in Abhängigkeit von der Größe des
Stromes, der während des Betriebs aus einer zugehörigen
Abgleichleitung m1 in einen Anschluß mb fließt, und der Größe
eines Stromes, der von einer fiktiven Last (nicht gezeigt)
in einen Anschluß mu fließt, wobei diese Ströme von einer
Stromtransformationsschaltung m10 bis m13 auf entsprechende
Stromspiegel m14, m16 und m15, m17 geleitet werden, ein
Strom-zu-Spannungs-Konverter, der einen einseitig geerdeten
Stromspiegel m18, m19 aufweist, eine Spannungsausgabe, die
angibt, welcher Strom der größere ist. Somit ist, wenn die
zugehörige Abgleichleitung leitend ist, was eine vollständige
Übereinstimmung längs der entsprechenden Reihe von
Speicherzellen anzeigt, die Größe des Stromes, der in den Anschluß mb
fließt, größer als die Größe des Stromes von der fiktiven
Last, wogegen im Falle eines Fehlabgleichs längs der
entsprechenden Reihe im wesentlichen kein Strom in den Anschluß
mb fließt.
-
Nun auf die Fig. 4 und 5 bezugnehmend weist eine Anordnung
gemäß der vorliegenden Erfindung zur Bestimmung, welche der
Übereinstimmungen, für den Fall, daß mehrere
Abgleichleitungen eine Übereinstimmung längs der entsprechenden
Reihen anzeigen, die größte Priorität besitzt, eine Kette aus
Prioritätszellen auf, von denen eine schematisch in Fig. 4
dargestellt ist, von denen jede so geschaltet ist, daß sie
Signale von einer entsprechenden Abgleichleitung aus dem
Speicherzellenfeld empfängt. Jede Zelle 1 der Prioritätskette
weist ein Übertragungsgatter TX1 auf, welches in seiner
einfachsten Form ein Paar Transistoren (nicht gezeigt)
entgegengesetzten Leitungstyps aufweisen kann, deren
Hauptstrompfade parallel geschaltet sind. Das
Übertragungsgatter TX1 ist so vorgesehen, daß sein Leitungszustand
mittels eines NAND-Gatters 2 und eines Inverters 3 durch
Signale von der jeweiligen Abgleichleitung ml gesteuert wird.
Der zweite Eingang des NAND-Gatters 2 ist mit einer
Latchschaltung verbunden, welche die Inverter 4 und 5 und ein
zweites Übertragungsgatter TX2 aufweist.
-
Während des Betriebs werden zunächst alle Knoten der Kette
zwischen entsprechenden Übertragungsgattern TX1 auf
Massepotential heruntergezogen, mittels der Transistoren m23
(Fig. 4), die dann abgeschaltet werden, wodurch eine
Verbindung zu Masse über einen Transistor m20 am Beginn der
Kette verbleibt. Zu diesem Zeitpunkt wird das NAND-Gatter 2
mittels eines dritten Übertragungsgatters TX3 und Inverters 4
eingeschaltet, wodurch ein Potential von annähernd vdd in den
zweiten Eingang des NAND-Gatters 2 eingespeist wird.
-
Im nachfolgenden Vergleichszyklus sind die Abgleichleitungen
ml so vorgesehen, daß jede, auf der eine Übereinstimmung
angezeigt wird, ein Potential von annähernd vdd in den
Eingang der entsprechenden Zelle der Prioritätskette
einspeist, worauf das entsprechende Übertragungsgatter TX1
mittels des entsprechenden NAND-Gatters 2 und Inverters 3
gesperrt wird. Wie in Fig. 5 angegeben, werden dann
entsprechende stromempfindliche Schaltungen 6, jede mit der
in Fig. 3 gezeigten Form, verwendet, um die Unterbrechung
des Strompfades in der Kette abwärts zu erkennen. Es ist zu
beachten, daß nur im Falle der Kettenzelle 1 mit der höchsten
Priorität in der Kette, bei welcher das Übertragungsgatter
TX1 gesperrt ist, noch ein Strompfad zu Masse an dem Anschluß
mu der entsprechenden stromempfindlichen Schaltung 6 zur
Verfügung stehen wird, während die alle tiefer in der Kette
geschalteten Eingänge mu betreffenden Strompfade zu Masse
durch das oder die Gatter TX1, die gesperrt worden sind,
blockiert sind. Es steht für alle mb-Eingänge ein Pfad zu
Masse mit etwa der doppelten Impedanz verglichen mit der
Kette aus den Gattern TX1 über den Transistor m21 zur
Verfügung. Bei dieser Verwendung der Schaltung aus Fig. 3
werden die Stromtransformationsschaltungen, welche die
Transistoren m10 bis m13 umfassen, von den Signalen der
entsprechenden Schaltung der Abgleichleitungen gesteuert,
wobei nur jede, die Reihen betreffen, in welchen eine
vollständige Übereinstimmung auftritt, geschaltet werden, so
daß die entsprechenden Strom-zu-Spannungs-Konverter betrieben
werden. Die Ausgabe aus der Schaltung 6, welche die in der
Kette höchste Übereinstimmung betrifft, wird deshalb die
entgegengesetzte Richtung zu jener aller anderen
Übereinstimmungen in der Kette abwärts aufweisen, wodurch die
Übereinstimmung mit der höchsten Priorität angezeigt wird,
während alle anderen Schaltungen 6 abgeschaltet sein werden.