DE2057124A1 - Assoziativspeicher - Google Patents
AssoziativspeicherInfo
- Publication number
- DE2057124A1 DE2057124A1 DE19702057124 DE2057124A DE2057124A1 DE 2057124 A1 DE2057124 A1 DE 2057124A1 DE 19702057124 DE19702057124 DE 19702057124 DE 2057124 A DE2057124 A DE 2057124A DE 2057124 A1 DE2057124 A1 DE 2057124A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- word
- associative
- associative memory
- bit line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/5057—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination using table look-up; using programmable logic arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4804—Associative memory or processor
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Electronic Switches (AREA)
Description
IBM Deutschland
Internationale Büro-Maschinen Gesellschaft mbH
Böblingen, 16. November 1970 ru-fr
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtl. Aktenzeichen: Neuanmeldung
Aktenzeichen der Anmelderin: Docket UK 969 009
Die Erfindung betrifft einen Assoziativspeicher, insbesondere zur Speicherung von Tabellenwerten, mit einem mehrstelligen
Eingangsregister sowie einem Datenwort- und einem Kennwort-Speicherteil
und Vergleichseinrichtungen, die den Dateninhalt einer oder mehrerer Stellen des Eingangsregisters mit Stellen
des Kennwort- und/oder Datenwortteils vergleichen, wobei gegebenenfalls ein Übereinstimmungssignal erzeugt wird, wenn die verglichenen
Datenbits im Kennwort- und/oder Datenwortteil mit den entsprechenden Bits im Eingangsregister übereinstimmen.
Ein Assoziativspeicher zur Speicherung digitaler Daten unterscheidet
sich von einem herkömmlichen Speicher dadurch, daß beim letzteren ein Datenwort durch die Angabe der Adresse der
Speicherstelle adressiert wird, wogegen in einem Assoziativspeicher
ein Datenwort durch die Angabe wenigstens eines Teils des Wortinhaltes adressiert wird, wenn z.B. die Worte in
einem Assoziativspeicher aus Kontennummern und Kontoständen bestehen, kann das Wort, welches den Kontostand enthält, ausgelesen
und auf den neuesten Stand gebracht werden durch Angabe der Kontennummer zu diesem Kontostand. Wenn andererseits ange-
109823/1678
nommen wird, daß die Kontenstände mit Vorzeichen versehen sind, können durch Angabe eines negativen Zeichens, z.B. alle Datenwörter
ausgelesen werden, die sich auf Konten mit Sollstand beziehen. Der Einfachheit halber werden die Daten, die Kontennummer
oder ein negatives Vorzeichen, die zur Kennzeichnung eines auszulesenden Wortes benutzt werden, im folgenden als Kennwort
bezeichnet. Ein derartiger Assoziativspeicher ist z.B. im Taschenbuch der Nachrichtenverarbeitung von K. Steinbuch auf
Seite 653 beschrieben.
Bei der üblichen Form eines Assoziativspeichers wird das Suchwort in die Bitpositionen eines Eingangsregisters gesetzt, die
den Bitpositionen des Kennworts im Speicher entsprechen und es werden Kennwort und Datenwörter miteinander verglichen, über ein
Maskenregister wird sichergestellt, daß der Vergleich nur zwischen bestimmten Bitpositionen des Eingangsregisters und solchen der
Daten erfolgt. Die Datenwörter, deren entsprechende Bitpositionen mit dem Kennwort übereinstimmen, werden markiert und nachträglich
in ein Ausgangsregister ausgelassen. Zur Markierung der zum Auslesen
ausgewählten Wörter ist es allgemein üblich, eine bistabile Kippschaltung, die mit der Speicherzelle verbunden ist, die das
ausgewählte Bit oder Wort enthält, in einen entsprechend vorbestimmten stabilen Zustand zu setzen. Wenn Assoziativspeicher insbesondere
zu sogenannten Tabellen-Operationen zur Ausführung sowohl logischer als auch arithmetischer Operationen benutzt werden, war
es bisher üblich, entweder dreistabile oder vierstabile Speicherzellen
zu benutzen. Derartige Speicherzellen zur Verwendung in einem Assoziativspeicher, der insbesondere für Tabellen-Operationen
verwendet wird, sind durch die britische Patentschrift 1.127.270 bekannt geworden.
Der technische Aufwand von Assoziativspeichern mit dreistabilen oder gar vierstabilen Speicherzellen ist jedoch sehr hoch, so
daß eine praktische Anwendung des sehr vorteilhaften Assoziativ-
DocKet UK 969 009 1Q9823/1678
Prinzips für Tabellen-Operationen in Rechnern bisher nicht
praktisch verwertbar war.
Der Erfindung liegt deshalb die Aufgabe zugrunde, einen Assoziativspeicher,
insbesondere für logische und arithmetische Tabellen-Operationen, zu schaffen, der mit bistabilen Kippschaltungen
aufgebaut werden kann.
Die erfindungsgemäße Lösung der Aufgabe besteht nun darin, daß jede Speicherzelle aus einem Ein-Emitter-Transistor, der direkt
kreuzgekoppelt mit einem Doppel-Emitter-Transistor ist, besteht, wodurch diese Zellen in einen sogenannten X-Zustand versetzt werden
können, wenn der genannte Ein-Emitter-Transistor leitend ist, und daß die Speicherzellen in diesem X-Zustand beim Abfragen auf eine
gespeicherte Null oder Eins kein Nichtübereinstimmungssignal bzw. Obereinstimmungssignal erzeugen.
Daraus ergibt sich der wesentliche Vorteil, daß für derartige
Assoziativspeicher grundsätzlich bistabile Speicherzellen verwendet
werden können, und daß die Größe der gespeicherten Funktionstabellen und damit der Speicher stark reduziert werden
kann, indem die Abfrage auf diese Art und Weise durch die Speicherzellen ignoriert werden kann.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt
und werden im folgenden näher beschrieben.
Es zeigen:
Pig. IA und IB Funktionstabellen zur Darstellung der Anwendung
der X-Stellung;
Fig. 2 ein Schaltbild einer für die Anwendung in
einem erfindungsgemäßen Speicher geeigneten Datenspeicherzelle mit 2 Stellungen;
Docket UK 969 009
109823/1678
Fig. 3A und 3B Funktionstabellen;
Fig. 4 ein Blockdiagramm eines Teiles eines erfindungsgemäßen
Assoziativspeichers;
Fig. 5 ein Blockdiagramm einer Speicherspalte eines
anderen Ausführungsbeispieles der Erfindung;
Fig. 6 ein Blockdiagramm der Speicherspalte eines
anderen Ausführungsbeispieles der Erfindung;
Fig. 7 ein Blockdiagramm einer Speicherspalte eines
anderen Ausführungsbeispieles der Erfindung;
Fig. 8 ein Blockdiagramm einer Speicherspalte eines
anderen Ausführungsbeispieles der Erfindung;
Fig. 9 ein Schaltbild einer anderen für einen erfindungsgemäßen Assoziativspeicher geeigneten
zweistelligen Datenspeicherzelle;
Fig. 10 ein Ausführungsbeispiel eines Assoziativspeichers für die binäre Addition und
Fig. 11 und 12 Funktionstabellen.
In Fig. 2 ist ein Beispiel für eine zweistellige Zelle gezeigt, die in einem erfindungsgemäßen Assoziativspeicher verwendet
,werden kann. Der Transistor Tl ist direkt zwischen Kollektoren und Basen des Doppel-Emittertransistors T2 über Kreuz gekoppelt,
Der Emitter E21 ist direkt mit einer Wortabfrageleitung 23 und der Emitter 22 direkt mit einer Bitleitung 24 verbunden. Die
Zellen eines Assoziativspeichers sind in Zeilen und Spalten angeordnet und dabei sind alle Zellen In derselben Zeile mit
der Wortabfrageleitung 23 und alle Zellen in derselben Spalte
Docket UK 969 009 109823/1678
mm ti ,**
mit der Bitleitung 24 verbunden. Die beiden Stellungen der Zelle sind die Stellung für die binäre Eins, in welcher der Transistor
T2 leitet und die X-Stellung, in welcher der Transistor Tl leitet. Die Abfrage auf eine binäre Null erfolgt durch Anheben
des Potentiales der Bitleitung 24 und Absenken des Potentiales der Wortabfrageleitung 23. Wenn der Transistor T2 leitet, heißt
das, daß die Zelle auf Eins steht, und Strom wird durch den Emitter E21 geleitet und erscheint auf der Wortabfrageleitung 23
als ein Nichtübereinstimmungssignal. Die Abfrage auf eine binäre Eins erfolgt durch Senken des Potentiales auf der Bitleitung 24.
Ungeachtet der jeweiligen Stellung der Zelle wird als Ergebnis kein Strom auf die Wortabfrageleitung 23 geleitet, also kein
Signal für eine vorhandene Nichtübereinstimmung gegeben. Wenn die Zelle in der X-Stellung steht, erscheint bei keinem Abfragesignal
auf der Bitleitung ein Ausgangssignal auf der Wortabfrageleitung.
Ein Ausführungsbeispiel eines erfindungsgemäßen Assoziativspeichers
ist dadurch gekennzeichnet, daß gleiche Stellen von Wör~
tern, die durch ein Suchargument angewählt werden, beim Auslesen
Exklusiv-ODER verknüpft werden. Das Verfahren wird anschließend
beschrieben, zum Verständnis des Erfindungsgedankens wird jedoch zuerst auf die Funktionstabellen in den Fig. 3A und 3B
verwiesen.
Fig. 3A zeigt eine Verknüpfungstabelle für einen Assoziativspeicher
mit dreistelligen Zellen (10X), mit dem jede der 16 möglichen Verknüpfungsfunktionen zweier Veränderlicher, in diesem
Falle aus vier Bits bestehende Operanden, ausgeführt werden kann. In Speichern der gezeigten Art werden gewählte Wörter beim Auslesen
über die ODER-Funktion verknüpft, d.h. die Stellungen der
Zellen gewählter Wörter werden gleichzeitig auf den Bitleitungen dargestellt, und wenn nicht alle adressierten Zeilen einer
gegebenen Stelle eine binäre Null oder den X-Zustand gespeichert
hatten, besteht das Ergebnis aus einem Einerbit an dieser Stelle.
Docket UK 969 009 109823/1678
Leere Plätze in den die Funktionstabellen zeigenden Figuren stellen
Zellen dar, die im X-Zustand stehen. Bei der Benutzung der Tabelle wird ein aus einem Schlüssel und den beiden Operanden
A und B bestehendes Suchargument mit den Eintragungen in den 12 am weitesten links stehenden Spalten der Tabellen verglichen.
Die Ergebnisfeider dieser Zeilen, die mit dem Inhalt des Suchargumentes
übereinstimmen, werden gleichzeitig ausgelesen und ergeben das Ergebnis der Operation. Der X-Zustand wird als binäre
Null ausgelesen. Andererseits kann das Ergebnisfeld mit binä ren Nullen gefüllt sein, die in Fig. 3A gezeigte Tabelle ist jedoch
ein direkterer Vergleich mit der im Zusammenhang mit Fig.3B zu beschreibenden Tabelle. Wenn angenommen wird, daß unter Verwendung
der in Fig. 3A gezeigten Tabelle eine Antivalenzoperation durchzuführen ist und im Operanden A der Wert 1101 und im Operanden
B der Wert 1010 steht, der Schlüssel 0110 ist und die fünfte bis zwölfte Zeile der Tabelle wählt, denn für die Nichtübereinstimmung
der Operanden mit dem Inhalt der füuten bis zwölften Spalte der Tabelle zu einer Zurückweisung der Zeilen
5, 6, 8, 9 und 11 der Tabelle und es bleiben die mit Pfeilen gekennzeichneten Zeilen gewählt. Die Ergebnisfelder dieser Zeilen
sind XXlX, XlXX und XXXl. Diese Felder führen beim gleichzeitigen Lesen zum Ergebnis Olli. Tabellen der in Fig. 3A gezeigten Art
erfordern für eine Operation mit zwei n-Bit-Operanden 4 n-Zeilen.
Flg. 3B zeigt eine universale Vernüpfungstabelle für einen
Assoziativspeicher, der mit zweistelligen Zellen (1, X) arbeitet und die verschiedenen Zeilen der aus dem Speicher gelesenen
Daten entsprechend der Ausschließlich-ODER-Funktion verknüpft.
Die Tabelle ist für aus vier Bits bestehende Operanden dargestellt. Eine darstellungsgemäß aufgebaute Tabelle erfordert
für eine Operation mit zwei n-Blt-Operanden drei η + eine Zeile
und ist genauso groß wie die in Fig. 3A gezeigte Tabelle.
Zur Aueführung einer Ausschließlich-ODER-Operation ist der
Docket OK 969 009
109823/1678 *
OWGWAL.
Schlüssel 0110 und wählt die fünfte bis zwölfte Spalte der
Tabelle. Wenn die Operanden 1101 und 1010 wie oben sind, werden die fünf mit Pfeilen bezeichneten Zeilen gewählt und die Ergebnisfelder
dieser Zeilen entsprechend der Ausschließlich-ODER-Funktion
beim Auslesen verknüpft, woraus sich (1000)V (0100)V
(0001)V (1000)V und (0010) ergibt und das entsprechende Ergebnis 0011.
Die letzte Zeile in der Tabelle verdient besondere Beachtung. Durch Anwählen dieser Zeile wird eine binäre Eins in jede Bitzeile
des Ergebnisfeldes gezwungen und auf diese Weise als Endergebnis das Einerkomplement von jedem Ergebnis erzeugt, welches
sich beim Wählen anderer Zeilen der Tabelle ergibt. Das folgt aus der Ausschließiich-ODER-Verknüpfung einer Gruppe von binären
Zahlen, die ja modulo 2 addiert werden. Die Addition einer
binären Eins zur modulo 2 addierten Summe komplementiert die Summe.
Fig. 4 zeigt ein Ausführungsbeispiel eines Assoziativspeichers, der aus zweistelligen Speicherzellen 20 aufgebaut ist, in
welchem die im assoziativen Suchverfahren gewählten Wörter beim Auslesen nach dem Ausschließlich-ODER-Prinzip verknüpft werden.
Die Zellen 20 sind in Zeilen und Spalten angeordnet, wobei die Zellen in jeder Zeile mit einer Wortabfrageleitung 23 und in
jeder Spalte mit einer Bitleitung 24 verbunden sind, wie es in
Zusammenhang mit Fig. 2 beschrieben wurde. Jede Bitleitung 24 ist mit dem komplementeingang 41 eines entsprechenden Triggers 40
verbunden. Die Trigger 40 sind so ausgelegt, daß ein auf den Komplementeingang gegebener Stromimpuls die Stellung der Trigger
ändert und somit den durch die Triggerstellung dargestellten binären Wert komplementiert. Wie bereits gesagt, ist das gleichbedeutend
mit der Ausführung einer Ausschließlich-ODER-Operation
an auf einer Bitleitung 24 nacheinander erscheinenden Signalen. Zum Auslesen des Ergebnisfeldes einer Tabelle, wie sie z.B. in
Fig. 3B gezeigt ist, werden die Potentiale auf den mit den
'Docket UK 969 009 , 09β23 , , 678 . '
2087124
Speicherzellen, die die gewählten Zeilen der Tabelle speichern, verbundenen Wortabfrageleitungen nacheinander kurzzeitig angehoben,
wodurch die mit den Wortleitungen verbunden Zellen einen Stromimpuls auf die Bitleitung geben, die mit einer Zelle verbunden
ist, wenn die Zelle auf binär Eins steht. Es wird kein Impuls abgegeben, wenn die Zelle auf X steht. Die auf einer Bitleitung
erscheinenden Impulse werden modulo 2 durch den angeschlossenen Trigger 40 gesammelt. Vor jeder Leseoperation werden die Trigger
40 auf binär Null zurückgestellt. Um die Wortabfrageleitungen der Reihe nach zu erregen, werden die Ausgänge eines nicht dargestellten
Verteilers über ebenfalls nicht gezeigte Torschaltungen, die geöffnet sind, wenn die Wahltrigger der Zeilen des
Assoziativspeichers durch eine assoziative Suchoperation gesetzt sind, mit den Abfrageleitungen verbunden. Obwohl der in
Fig. 4 gezeigte Assoziativspeicher wirtschaftlich in bezug auf den Speicherplatz ist (Anzahl der Leitungen zu einer Funktionstabelle) , ist er sehr zeitaufwendig, da der Lesezyklus des Speichers
beträchtlich verlängert wird. In dem in Fig. 5 gezeigten Speicherteil ist der Lesezyklus kurz, da alle Leitungen gleichzeitig
adressiert werden, dieser Vorteil läßt sich jedoch nur auf Kosten einer größeren Anzahl von Bauteilen erzielen.
Fig. 5 zeigt eine Spalte eines Assoziativspeichers, in welchem die Zahlen 20, 23 und 24 dieselben Elemente bezeichnen wie in
Fig. 4. Das Schaltbild ist schematisch und zeigt nicht die für einen Fachmann selbstverständlichen Schaltungsänderungen, die
für die Erzeugung und Benutzung der Ausgangssignale der Datenzelle
20 in der zu beschreibenden Weise benötigt werden. Die Ausschließlich-ODER-Schaltungen 51 - 53 sind so angeschlossen,
daß die Ausgänge der Schaltungen 51 und 52 entsprechende Eingangssignale für die Schaltung 53 liefern. Der Ausgang der
Schaltung 53 ist mit einem Eingang 54 des Triggers 55 verbunden. Bei Erregung des Einganges 54 wird der Trigger 55, der am Anfang
auf binär Null steht, auf binär Eins gesetzt. Die Ausgänge der beiden oberen Zellen 20 der Spalte, die beim Auslesen der Zellen
Docket ÜK 969 009 1Q9823/ 1678
erregt werden und auf binär Eins stehen, werden als entsprechende
Eingänge mit der Ausschließlich-ODER-Schaltung 51 verbunden. Die Ausgänge der beiden unteren Zellen der Spalte werden als entsprechende
Eingänge mit der Ausschließlich-ODER-Schaltung 52 verbunden. Der Eingang zum Trigger 55 liegt natürlich in der
Ausschließlich-ODER-Funktion des Inhaltes der Speicherspalte. Wenn eine gegebene Zeile zum Auslesen nicht gewählt ist, ist
der Beitrag dieser Zeile zu den Eingangssignalen der Schaltungen 51 - 53 eine binäre Null, die die Ausschließlich-ODER-Funktion
der gewählten Zeile nicht beeinflußt.
Fig. 6 zeigt eine Spalte eines anderen Ausführungsbeispieles des erfindungsgemäßen Assoziativspeichers. Der einfacheren
Bezeichnung halber wird die Art des in Fig. 6 gezeigten Speichers Schwellenspeicher genannt. Im Prinzip arbeitet der
Schwellenspeicher so, daß er die Größe des auf eine Bitleitung von den auf diese Leitung ausgelesenen Datenzellen gegebenen
Stromes ermittelt. Es kann angenommen werden, daß die Datenspeicherzellen in ihrer Arbeitscharakteristik einander sehr
ähnlich sind, so daß die Stromgröße direkt proportional zur Anzahl der Datenzellen ist, die auf binär Eins stehen. Wenn also
die Stromgröße abgefühlt werden kann, können Funktionstabellen aufgebaut werden, in denen die Anzahl der binären Einsen in
einer Stelle zum Ergebnisfeld des gewählten Wortes wertdarstellend
ist.
In dem Schwellwertspeicher der Fig. 6 ist jede Bitleitung 24 parallel an die Abfrageverstärker 61 und 62 angeschlossen.
Das. Ausgangssignal des Verstärkers 61 und das umgekehrte Ausgangssignal des Verstärkers 62 werden als entsprechende Eingangssignale auf das UND-Glied 63 gegeben, dessen Ausgangssignal an
einen Trigger 64 so angelegt wird, daß dieser auf Eins gesetzt
wird, wenn das Ausgangssignal vorhanden ist. Der Verstärker liefert ein Einschaltsignal für das UND-Glied 63, wenn die Größe
des Stromes auf der Bitleitung 64 einen durch eine Datenzelle
Pock.t OK 969 009 10g823/1678
gegebenen Wert erreicht oder überschreitet. Der Verstärker 62 liefert ein Ausgangssignal, welches umgekehrt wird und dann das
UND-Glied 63 abschaltet, wenn der auf der Bitleitung 24 fließende Strom das Doppelte der von einer Datenzelle 20 abgegebenen
Strommenge erreicht oder überschreitet. Kurz gesagt, liefert der Verstärker 61 also ein wertdarstellendes Ausgangssignal,
wenn eine oder mehrere Einsen auf die Bitleitung 24 gelesen werden und der Verstärker 62 liefert ein wertdarstellendes Ausgangssignal,
wenn zwei oder mehr Einsen auf die Bitleitung 24 gelesen werden. Als Endergebnis wird der zuerst auf Null stehende
Trigger 64 nur auf Eins gesetzt, wenn nur eine Eins auf die Bitleitung 24 ausgegeben wird.
Die üniversalverknüpfungstabelle für den in Fig. 6 gezeigten Schwellwertspeicher ist in Fig. 3B aufgeführt. In einem Durchgang
der Tabelle können jedoch nicht alle logischen Punktionen ausgeführt
werden. Der Wirkungsgrad der Tabelle hängt von der Tatsache ab, daß das Ergebnisfeld einer Zeile der Tabelle wahlweise
entsprechend der Wahl anderer Zeilen der Tabelle gelöscht werden kann. Die Kriterien für exrs Löschung im Falle der in
den Fign. 4 und 5 gezeigten Ausschließlich-ODER-Speicher sind
eine breite Anwendung. Wenn eine ungerade Zahl von Einsen gleichzeitig auf eine Bitleitung gegeben wird, ist das Ergebnis
1 und bei einer geraden Zahl von Einsen ist es 0. Das heißt, daß jede beliebige Anzahl von Untertabellen (A, B, A · B, und
Komplement der Fig. 3B) zur Erzeugung eines Ergebnisses beitragen können, da die absolute Zahl von Einsen auf einer Bitleitung
bedeutungslos ist. Im Schwellwertspeicher ist jedoch das Ergebnis nur 1, wenn nur eine Eins auf der Bitleitung liegt.
Wenn einmal zwei Einsen auf die Bitleitung gegeben worden sind, kann das daraus folgende Ergebnis 0 nicht in eine 1 verändert
werden. Daraus folgt, daß bei jeder Operation nur zwei Untertabellen verwendet werden können und daß die folgenden fünf
Funktionen der 16 möglichen in einer Tabellen-Suchoperation nicht zur Verfügung stehen: A + B (Schlüssel 1110), A + B
Doofc.t CK 969 009 109823/1678.
(Schlüssel 1101), A + B (Schlüssel 1011), A=B (Schlüssel Olli)
und A · B (Schlüssel 1111). Die aufgeführten Schlüssel sind in einem Schwellwertspeicher nicht zulässig und können durch
eine Fehlertabelle festgestellt werden. Die Funktionen können mit der universalen Verknüpfungstabelle dadurch ausgeführt
werden, daß man einen oder beide der Operanden umkehrt und dann eine Operation vornimmt, die nur mit zwei Untertabellen arbeitet.
Um also die Operation A + B durchzuführen, werden beide Operanden umgekehrt und die Operation Ä ' B (Schlüssel 1001) durchgeführt.
Die anderen direkt nicht verfügbaren Operationen werden ähnlich behandelt.
Ein Schwellwertspeicher mit der Möglichkeit, mit einfacher ODER-Verknüpfung
oder einem anderen Schwellwert auszulesen, wir als nützlich angesehen. Eine Spalte eines solchen Speichers ist in
Fig. 7 gezeigt. Die Anordnung der Fig. 6 ist hier dahingehend verändert, daß eine üND-ümkehrschaltung 71 vorgesehen ist, deren
eines Eingangssignal das Ausgangssignal des Verstärkers 62 und
deren anderes Eingangssignal das 1-Ausgangssignal eines Triggers
72 ist. Das Ausgangssignal des Verstärkers 62 wird ebenfalls als ein Eingangssignal auf ein UND-Glied 73 geleitet, dessen
anderes Eingangssignal das O-Ausgangssignal eines Triggers 74 ist.
Das 1-Ausgangssignal des Triggers 74 wird als ein Eingangssignal auf das UND-Glied 63 geleitet, welches als weitere Eingangssignale die Ausgangssignale des Verstärkers 61 und der UND-Umkehrschaltung
empfängt. Wenn die beiden Trigger 72 und 74 auf 0 stehen, ist das Ausgangssignal des Gliedes 71 immer positiv
und somit die beiden Eingänge des UND-Gliedes 63 immer eingeschaltet. Der Trigger 64 wird auf 1 gesetzt, sobald mindestens
ein Einerbit auf der Leitung 24 liegt. Wenn der Trigger 72 auf 1 und der Trigger 74 auf 0 steht, arbeitet die Anordnung
der Fig. 7 genauso wie die der Fig. 6. Wenn der Trigger 74 auf 1 steht, ist ungeachtet der Stellung des Triggers 72 das UND-Glied
73 eingeschaltet und das UND-Glied 63 abgeschaltet. Der Trigger 64 wird auf 1 gesetzt, wenn mindestens zwei Einsen gleichzeitig
Docket UK 969 009 109823/1678
auf die Bitleitung 24 ausgegeben werden.
Fig. 8 zeigt eine weitere erfindungsgemäße Ausführung eines Assoziativspeichers.
Der mit zweistelligen Zellen 20 arbeitende Speicher ist in zwei Bereiche 8OA und 8OB aufgeteilt. Die Bitleitungen
24A, 24B entsprechender Spalten einer jeden Gruppe werden an die entsprechenden Eingänge einer Ausschließlich-ODER-Schaltung
81 angeschlossen, wobei je eine derartige Schaltung für zwei entsprechende Spalten vorgesehen ist. Der Ausgang
einer jeden Schaltung 81 ist mit dem entsprechenden Trigger 82 so verbunden, daß der Trigger durch ein Ausgangssignal auf 1
gesetzt wird.
Bei dem in Fig. 8 gezeigten Assoziativspeicher besteht die Möglichkeit der ODER-Auslese für jede Speichergruppe und er
kann unabhängig von, jedoch nicht gleichzeitig, mit der anderen Speichergruppe adressiert werden.
Eine Lösung für einen Speicher, der normal arbeitet, ist in Fig. 9 dargestellt. Jede Zelle 90 besteht aus zwei direkt über Kreuz
gekoppelten Doppel-Emitter-Transistoren T3 und T4. Die Emitter E31 und E41 sind entsprechend direkt mit den Bitleitungen 91
und 92 verbunden. Die übrigen Emitter E32 und E42 sind direkt mit einer Wortabfrageleitung 93 verbunden. Bei Verwendung als
zweistellige 1-X Speicherzelle stellt der leitende Transistor T3 die Einerstellung und der leitende Transistor T4 die X-Stellung
dar. Wenn eine Spalte von Zellen für den Betrieb als 1-X Zellen zugeordnet wird, wird nur die Bitleitung 91 zur Abfrage
benutzt. Das Potential der Bitleitung 92 wird immer so niedrig gehalten, daß jeder im Transistor T4 fließende Strom auf die Bitleitung
92 gezogen wird und nicht auf der Wortabfrageleitung 93 erscheinen kann. In dieser Betriebsart simuliert die Zelle 90 die
1-X-Zelle 20. Andererseits kann die Zelle 90 auch als gewöhnliche
zweistellige Assoziativzelle benutzt werden, in welcher die binäre Null durch den leitenden Transistor T4 dargestellt wird. Zur Ab-
Docket UK 969 009 109823/1678
frage auf eine binäre Eins wird das Potential der Bitleitung 92 angehoben und das der Bitleitung 91 gesenkt. Wenn die Zelle auf
1 steht, wird der im Transistor T3 fließende Strom auf die Bitleitung 91 gezogen. Wenn die Zelle auf O steht, steuert das
Potential auf der Bitleitung 92 den im Transistor T4 fließenden Strom über den Emitter E42 auf die Wortabfrageleitung 93 und
erzeugt auf diese Weise ein Nichtübereinstimmungssignal.
Die Zuordnung einer Spalte von Zellen 90 als 1-X-Zelle oder als
binäre Assoziativzelle kann durch einen Trigger bestimmt werden, der ein niedriges Potential auf der Bitleitung 92 hält, wenn er
sich in einem gegebenen stabilen Zustand befindet. Die Trigger für alle Spalten eines Speichers stellen ein Steuerregister dar,
das während der Ausführung eines Programmes oder während des Ladens des Speichers geladen werden kann.
Die Addition ist die Operation, durch welche der Wirkungsgrad eines Datenverarbeitungssystemes sehr einfach annähernd festgestellt
werden kann. In einem Assoziativspeicher, in welchem die Ergebnisfelder in ODER-Verknüpfung ausgelesen werden, benötigt
eine Addition von zwei η Bitoperanden in einem Speicherzyklus (10 χ 2n - 4n - 9) Zeilen des Speichers. Für η = 8 werden 2159
Zeilen benötigt. Durch Verwendung des in den Fign. 6 oder 7 gezeigten Schwellwertspeichers oder eine Speicheraufteilung gemäß
Fig. 8 kann die Anzahl der benötigten Zeilen auf 53 reduziert werden.
Eine binäre Addition kann definiert werden durch die Teilsumme
A(m) V B(m) = P(m) und den übertrag A(m) ' B(m) = C(m) der
Stelle m der Operanden A und B. Die Stelle (m+1) des Ergebnisses R ist:
R (m+1) = P (m+l) V C(m)
wobei
C(ra) - G(m) + P(m) · G(m-l) + P(m) · P(m-l) · G(m-2.)
+ (P(m) P(2) · P(I) · C(O))
und C(O) ist der übertrag in die niedrigste Stelle (Stelle 1).
In Fig. 10 sind die dargestellten Assoziativspeicher 100 und
101 entweder Schwellwertspeicher der in den Fig. 6 oder 7 gezeigten
Art oder aufgteilte Speichergruppen, wie sie in Fig. 8 gezeigt sind. Die Leitungen 102 und 103 des Speichers 100 enthalten
je einen zweimal geschriebenen entsprechenden Operanden und eine Anzahl von binären Nullen. Die Anordnung ist so getroffen,
daß die Operanden A und B dieselben Spalten des Speichers belegen und dieselben Stellen wie die binären Nullen. Wenn
der Speicher aufgeteilt wird wie in Fig. 8, liegen die Leitungen
102 und 103 in verschiedenen Gruppen. Wenn der Speicher ein Schwellwertspeicher wie in Fig. 7 ist, werden die Schaltungen
und 74 so gesetzt, daß der Speicher genauso arbeitet wie der in Fig. 6 gezeigte. Eine Leseoperation auf den Leitungen 102 und
103 führt zur Erzeugung von AVB=P, A und B gemäß Darstellung
in Fig. 10. Die Tabelle 104 im Speicher 101 erzeugt von den Eingängen A und B die Funktion G = A · B und aus den Funktionen
P und G das Ergebnis der Addition.
Fig. 11 zeigt die Tabelle 104 für den Schwellwertspeicher der Fig. 6 und 7 und Fig. 12 die Tabelle für den aufgeteilten Speicher
der Fig. 8. Die Tabelle ist für 4 Bit große Operanden gezeigt und erfordert 19 Zeilen gegenüber 135 Zeilen für einen
ODER-Auslesespeicher.
Anschließend wird kurz der Aufbau der in Fig. 12 gezeigten Tabelle beschrieben. Die Gruppen A und B, die den Speichergruppen
8OA und 8OB der Fig. 8 entsprechen, enthalten jede für sich Zeilen, die Bedingungen für die Existenz von Ergebnis-1-Bits
definieren. Diese Bedingungen können jedoch nicht zusammen existieren und ein Ergebnis-1-Bit liefern, sondern sind in verschiedenen
Gruppen so angeordnet, daß die gleichzeitige Ausgabe eines Einerbit durch jede Gruppe zur Erzeugung eines O-Ergebnis-Bit
führt. Bei Betrachtung z.B. des Ergebnis-Bits R(4) stellt man
DK »69 OO
fest, daß dieses entsteht, wenn P(4) = A(4) V B(4) =1 ist oder
wenn ein übertrag von einer niedrigeren Stelle erfolgt, jedoch nicht, wenn beide Bedingungen vorliegen. Die 4. Zeile der Gruppe
A ergibt R(4) = 1, wenn P(4) =1 ist und die letzten vier Zeilen
der Gruppe B ergeben R(4) =1, wenn ein übertrag in diese
Stelle erfolgt. Wenn beide Gruppen R(4) =1 ausgeben, führt das Ausgangssignal der Ausschließlich-ODER-Schaltung 81 in
der Spalte R(4) des Ergebnisfeldes zur R(4) = O.
Docket UK 969 009
109823/167 8
Claims (6)
- PATENTANSPRÜCHE[\Ji Assoziativspeicher, insbesondere zur Speicherung von Tabellenwerten, mit einem mehrstelligen Eingangsregister sowie einem Datenwort- und einem Kennwort-Speicherteil und Vergleichseinrichtungen , die den Dateninhalt einer oder mehrerer Stellen eines Eingangsregisters mit Stellen des Kennwort- und/oder Datenwortteils vergleichen, wobei gegebenenfalls ein Übereinstimmungssignal erzeugt wird, wenn die verglichenen Datenbits im Kennwort- und/oder Datenwortteil mit den entsprechenden Bits im Eingangsregister übereinstimmen, dadurch gekennzeichnet, daß jede Speicherzelle (20) aus einem Ein-Emitter-Transistor (Tl), der direkt kreuzgekoppelt mit einem Doppel-Emitter-Transistor (T2) ist, besteht, wodurch diese Speicherzellen in einen sogenannten X-Zustand versetzt werden können, wenn der genannte Ein-Emitter-Transistor (Tl) leitend ist, und daß die Speicherzellen in diesem X-Zustand beim Abfragen auf eine gespeicherte Null oder Eins kein Nichtübereinstimmungssignal bzw. Übereinstimmungssignal erzeugen.
- 2. Assoziativspeicher nach Anspruch 1, dadurch gekennzeichnet, daß die Speicherzellen (90) aus zwei direkt kreuzgekoppelten Doppel-Emitter-Transistoren (T3 und T4) bestehen, wobei jeweils ein Emitter (E41 bzw. E31) jedes genannten Doppel-Emitter-Transistors (T3 bzw. T4) mit einer Bitleitung (91 und 92) verbunden ist und die anderen beiden Emitter (E32 und E42) gemeinsam mit einer Wortabfüllleitung (93) verbunden sind.
- 3. Assoziativspeicher nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß gewünschte Stellen eines jeden Worts (A, B, ...) in einer einzigen assoziativen Suchoperation selektiert und einer Exklusiv-ODER-Operation unterzogen werden.Docket UK 969 009109823/1678
- 4. Assoziativspeicher nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß beim Auslesen des Dateninhalts aus einer Speicherzelle (20 oder 90) auf den Bitleitungen (z.B. 91 und 92) ein Strom fließt, dessen Wert der gelesenen gespeicherten Information entspricht und der beim Auslesen mehrerer gleichstelliger Bits aus anderen Wortspeichern sich auf der entsprechenden Bitleitung addiert, wobei der Wert des Stromes ein Maß für die Anzahl der ausgelesenen Bits darstellt.
- 5. Assoziativspeicher nach Anspruch 4, dadurch gekennzeichnet, daß den Bitleitungen (24) Schwellwertschaltungen (61 bzw. 62) nachgeschaltet sind, die auf einen bestimmten Schwellwert, d.h. auf einen ganz bestimmten auf der Bitleitung (24) fließenden Strom, ansprechen.
- 6. Assoziativspeicher nach Anspruch 5, dadurch gekennzeichnet, daß den Schwellwertschaltungen (61 bzw. 62) logische Schaltungen (63, 71 bzw. 73) nachgeschaltet sind, die zur Verknüpfung der von den Schwellwertschaltungen (61 und 62) abgegebenen Ströme dienen und das Ergebnis an nachgeschaltete bistabile Kippschaltungen (64) zur Anzeige des ausgelesenen Wertes weitergeben.Docket ÜK 969 009109823/1678
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB5724169A GB1281387A (en) | 1969-11-22 | 1969-11-22 | Associative store |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2057124A1 true DE2057124A1 (de) | 1971-06-03 |
Family
ID=10478713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19702057124 Pending DE2057124A1 (de) | 1969-11-22 | 1970-11-20 | Assoziativspeicher |
Country Status (4)
Country | Link |
---|---|
CA (1) | CA935885A (de) |
DE (1) | DE2057124A1 (de) |
FR (1) | FR2068589B1 (de) |
GB (1) | GB1281387A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2454427A1 (de) * | 1974-11-16 | 1976-05-20 | Ibm Deutschland | Assoziativspeicher |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2176918B (en) * | 1985-06-13 | 1989-11-01 | Intel Corp | Memory management for microprocessor system |
US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
US6842360B1 (en) | 2003-05-30 | 2005-01-11 | Netlogic Microsystems, Inc. | High-density content addressable memory cell |
US6856527B1 (en) | 2003-05-30 | 2005-02-15 | Netlogic Microsystems, Inc. | Multi-compare content addressable memory cell |
US7174419B1 (en) | 2003-05-30 | 2007-02-06 | Netlogic Microsystems, Inc | Content addressable memory device with source-selecting data translator |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1128576A (en) * | 1967-07-29 | 1968-09-25 | Ibm | Data store |
GB1186703A (en) * | 1967-10-05 | 1970-04-02 | Ibm | Associative Memory |
-
1969
- 1969-11-22 GB GB5724169A patent/GB1281387A/en not_active Expired
-
1970
- 1970-09-28 FR FR7036307A patent/FR2068589B1/fr not_active Expired
- 1970-11-06 CA CA097532A patent/CA935885A/en not_active Expired
- 1970-11-20 DE DE19702057124 patent/DE2057124A1/de active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2454427A1 (de) * | 1974-11-16 | 1976-05-20 | Ibm Deutschland | Assoziativspeicher |
Also Published As
Publication number | Publication date |
---|---|
FR2068589A1 (de) | 1971-08-27 |
CA935885A (en) | 1973-10-23 |
GB1281387A (en) | 1972-07-12 |
FR2068589B1 (de) | 1974-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2059917C3 (de) | Hybridadressierter Datenspeicher | |
DE2751097A1 (de) | Triggerschaltungseinheit | |
DE2325151C2 (de) | Prüfmustergenerator | |
DE1901343A1 (de) | Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossenen Speichereinheiten | |
DE2925925C2 (de) | Informationsspeicher | |
DE2062228A1 (de) | Datenverarbeitungssystem mit gleich zeitigem Zugriff auf mehrere Speicher stellen | |
DE1934860A1 (de) | Wortorganisierter Assoziativspeicher | |
DE1774675C3 (de) | Elektronisches Rechengerat mit einer Speichermatrix | |
DE1524200B2 (de) | Zeitgabesteuerschaltung fuer einen elektronischen ziffernrechner | |
DE2057124A1 (de) | Assoziativspeicher | |
DE1574502A1 (de) | Assoziativspeicher | |
DE1933935C3 (de) | Assoziativer Speicher | |
DE1774987B2 (de) | Elektronische Rechenmaschine. Ausscheidung aus: 1549455 | |
DE1295656B (de) | Assoziativer Speicher | |
DE2729361A1 (de) | Speicherschaltung | |
DE1774606B1 (de) | Speicheranordnung zur durchfuehrung logischer und arithmetischer grundoperationen | |
DE1499690C2 (de) | Speicherplatzansteuerungs-Anordnung | |
DE2519195A1 (de) | Assoziativspeicher | |
DE1806464A1 (de) | Adressengenerator fuer einen Digitalrechner | |
DE2111146A1 (de) | Speicherzelle fuer einen assoziativen Speicher | |
DE2644180A1 (de) | Datenverarbeitungssystem | |
DE1774606C (de) | Speicheranordnung zur Durchführung logischer und arithmetischer Grundoperationen | |
DE1297908B (de) | ||
DE2238687A1 (de) | Binaere addieranordnung | |
DE1801215C (de) | Assoziativspeicher |