DE2057124A1 - Assoziativspeicher - Google Patents

Assoziativspeicher

Info

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
Application number
DE19702057124
Other languages
English (en)
Inventor
Peter Lycett Beshops Sutton Nr Alresford Hampshire Gardner (Großbritannien)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2057124A1 publication Critical patent/DE2057124A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/5057Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination using table look-up; using programmable logic arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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/04Digital 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4804Associative 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
Assoziativspeicher
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))
Docket UK 969 009 109823/1β7β
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)

  1. 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. 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. 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 009
    109823/1678
  4. 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. 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. 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 009
    109823/1678
DE19702057124 1969-11-22 1970-11-20 Assoziativspeicher Pending DE2057124A1 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2454427A1 (de) * 1974-11-16 1976-05-20 Ibm Deutschland Assoziativspeicher

Families Citing this family (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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