DE2519195C2 - Assoziativspeicher - Google Patents

Assoziativspeicher

Info

Publication number
DE2519195C2
DE2519195C2 DE2519195A DE2519195A DE2519195C2 DE 2519195 C2 DE2519195 C2 DE 2519195C2 DE 2519195 A DE2519195 A DE 2519195A DE 2519195 A DE2519195 A DE 2519195A DE 2519195 C2 DE2519195 C2 DE 2519195C2
Authority
DE
Germany
Prior art keywords
comparison
flip
flop
memory
cell
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.)
Expired
Application number
DE2519195A
Other languages
English (en)
Other versions
DE2519195A1 (de
Inventor
Alan Edward St. Albans Hertfordshire Locke
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.)
Honeywell Information Systems Ltd
Original Assignee
Honeywell Information Systems Ltd
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 Honeywell Information Systems Ltd filed Critical Honeywell Information Systems Ltd
Publication of DE2519195A1 publication Critical patent/DE2519195A1/de
Application granted granted Critical
Publication of DE2519195C2 publication Critical patent/DE2519195C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

35
40
45
50
55
b0
8. Assoziativspeicher nach einem der Ansprüche 6 und 7, dadurch gekennzeichnet, daß jede Zelle ein verzögertes Vergleichs-Flip-Flop (75) aufweist, welches über UND-Gatter von dem Vergleichs-Flip-Flop (33) gesetzt wird, daß ein Treiber-Gatter (76) angeordnet ist, um das Vergleichs-Flip-Flop von dem verzögerten Vergleichs-Flip-Flop zu setzen und daß der Steuerschaltkreis (10) das Treibergatter steuernde Schaltungsmittel (101 bis !03) aufweist.
9. Assoziativspeicher nach Anspruch 8, dadurch gekennzeichnet, daß der Steuerschaltkreis (10) ferner durch die Vergleichskette (18) gesteuerte Schaltungsmittel (105 bis 107, SQSO, SQS I) aufweist, die bei ihrer Deaktivierung an einen Addierer (115) angeschlossen sind, um an dieser Stelle im Kennschlüssel »1« zu dem gesuch'.en Kennschlüssel (KR) zu addieren und in das Kennschlüsselregister (12) an den nachfolgenden Stellen eine »0« einzuschreiben.
10. Assoziativspeicher nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß das Schieberegister (30) einer jeden Speicherzelle mit dem gemeinsamen Datenbus (17) über einen parallelen Datenweg verbunden ist.
Die vorliegende Erfindung betrifft einen Assoziativspeicher nach dem Gattungsbegriff des Patentanspruches 1.
Prinzipiell gibt es zwei Typen von Speichern, nämlich solche mit wahlfreiem Zugriff und solche mit seriellem Zugriff.
Bei Speichern mit wahlfreiem Zugriff bietet der Aufbau eines Assoziativspeichers theoretisch keine Schwierigkeiten, aber die Kosten verhindern normalerweise den Aufbau eines Assoziativspeichers in Form eines Speichers mit wahlfreiem Zugriff. Die parallele Struktur eines Speichers mit wahlfreiem Zugriff erfordert Vergleichsschaltungen für jedes einzelne Bit eines jeden Wortes, und die Kosten der zusätzlichen Logikschaltkreise verteuern den Speicher um Größenordnungen.
Es ist möglich, bei einem Speicher mit wahlfreiem Zugriff mittels einer Firmware- oder Softwareorganisallon jedes Wort der Reihe nach zu lesen und daraufhin zu untersuchen, ob es einen bestimmten Kennschlüssel enthält. Dies bedingt zwar keine strukturellen Änderungen des Speichers; diese Lösung wird aber selten benutzt, da sehr viel Zeit bei der Absuche des Speichers verlorengeht.
Bei Speichern mit seriellem Zugriff sind die abgespeicherten Worte notwendigerweise eines nach dem andern In einer festen Folge verfügbar. Die Zugriffszelt zu einem Wort oder einer vorgegebenen Adresse entspricht daher im Mittel der Hälfte der maximalen Zugriffszeit. Bei einem solchen Speicher ist es leicht möglich, jedes Wort der Reihe nach im Hinblick auf einen Kennschlüssel zu untersuchen, da diese Worte ohnehin der Reihe nach verfügbar sind.
Ein Assoziativspeicher der zuletzt genannten Art ist aus der DE-AS 14 49 449 bekannt. Bei diesem Assoziativspeicher sind mehrere Speicherzellen über einen Bus an einen gemeinsamen Steuerschaltkreis angeschlossen. Jede Speicherzelle umfaßt eine Speicherschaltung und eine von der Speicherschaltung und von dem Steuerschaltkreis mit einem gesuchten Kennschlüssel beaufschlagten Vergleichsschaltkreis.
Bei dem bekannten Assoziativspeicher folgt dem Aulsuchen des gesuchten Kennschlüssels das Lesen des
zugeordneten Datensatzes aus dem nächsten Speicherabschnitt. Hierdurch ist es schwierig, mit mehr als einem Typ von Kennschlüsseln zu arbeiten. Wenn man beispielsweise einen Datensatz in der Form einer Folge aus erstem Kennschlüssel, zweitem Kciinschlüssel und zügehörigen Daten speichert, so führt eine Suche nach dem zweiten Kennschlüssel zu einem Auffinden der gesuchten Daten, aber nicht zu einem Auffinden des zugeordneten ersten Kennschlüssels. Im bekannten Fall speichert jeder Speicherplatz nur ein einziges Zeichen, so daß es m am geeignetsten erscheint, eine Zelle als eine Folge von Speicherplätzen zu definieren. Jedem dieser Speicherplätze ist ein entsprechender Vergleichsschaltkreis zugeordnet.
Ausgehend von diesem bekannten Assoziativspeicher ist es die Aufgabe der vorliegenden Erfindung, diesen so auszugestalten, daß mit geringfügigem Schaltungsaufwand und unabhängig von der Kennschlüsselstruktur eine relativ schnelle Datenaufsuche ermöglicht wird, wobei der Assoziativspeicher sehr viel schneller arbeiten soll als ein Speicher mit rein serie.'lem Zugriff und sehr viel weniger zusätzliche Schaltkreise benötigen soll als ein Speicher mit wahlfreiem Zugriff. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen sind den Unteransprüchen entnehmbar.
Während die Zugriffszeit bei dem erfindungsgemäßen Assoziativspeicher eine Größenordnung oder mehr im Vergleich zu einem Parallelspeicher beträgt, wird der Aufwand hinsichtlich der Logikschaltkreise für jeden in Speicherplatz wesentlich reduziert. Dies resultiert teilweise aus dem einfachen Grund, daß beispielsweise bei einem 64-Bit-Wortsystem der Aufwand für die Logik um den Faktor 64 reduziert wird. Zusätzlich zu diesem Gesichtspunkt ist jedoch die Logik gegenüber einem ^ Parallelsyslem auch wesentlich einfacher, da in einem seriellen Sys'em gewisse Funktionen durch einfache Informationsspeicherung aus einem Bit-Zyklus in den nächsten Bit-Zyklus ausgeführt werden können, während bei einem Parallelsystem ausgeklügelte Übertragungs- «o anordnungen für diese Zweck erforderlich sind. Weilerhin kann mit einem seriellen System sehr leicht eine serielle Suche durchgeführt werden. Oftmals ist es wünschenswert, alle Worte in der Reihenfolge der Kennschlüssel herauszulesen. Diese Aufgabe kann in einem "5 Parallelsystem beträchtliche Schwierigkeiten bereiten, da es hierzu erforderlich ist, anstelle nach den exakten Kennschlüsseln nach benachbarten Kennschlüsseln Ausschau zu hallen. Liegen beispielsweise Kennschlüssel mit einer Länge von 20 Bit vor und sind beispielsweise 2'" Worte gespeichert, so liegt das grundlegende Problem darin, daß im einen Fall Operationen in der Größenordnung von 2'" und im anderen Fall in der Größenordnung von 220 erforderlich sind, falls auf jeden Kennschlüssel von 0 an aufwärts Zugriff genommen werden soll. Das d5 serielle System weist hinsichtlich der Durchführung solcher Operationen wesentliche Vorteile auf.
Anhand der Figuren der beiliegenden Zeichnungen sollen im folgenden zwei Ausführungsbeispiele der Erfindung näher beschrieben werden. Es zeigt
Fig. 1 ein Blockdiagramm eines ersten Ausführungsbe'spieles eines Assoziativspeicher,
Fig. 2 ein Blockdiagramm einer Speicherzelle des Assoziativspeichers gemäß Tig. I,
Fig. 3 ein Blockdiagramm eines zweiten Ausführungs- b5 beispieles eines Assoziativspeichers und
Fig. 4A und 413 ein Blockdiagramm der Speicherzelle des Assoziativspeicher gemäß Fig. 3.
Gemäß Flg. 1 1st ein allgemeines Blockdiagramm eines seriellen Assoziativspeichers in einer einfachen Form dargestellt. Der Assoziativspeicher weist einen Steutrschaltkrels 10, eine Reihe von Speicherzellen 20-1, 20-2, ... 20-/2, eine den Steuerschaltkreis mit allen Speicherzellen parallel verbindende Schiene 17 und eine Sperrleitung 18 auf, die die Speicherzellen der Reihe nach miteinander verbindet. F ig. 2 zeigt in näheren Einzelheiten eine typische Speicherzelle 20. Alle Speicherzellen sind an die Leitungen der Schiene 1 7 in der gleichen Weise angeschlossen, so daß alle Speicherzellen gleichberechtigt sind und ihre Auswahl lediglich auf der Grundlage der in ihnen gespeicherten Informationen erfolgt.
Betrachtet man zunächst den Steuerschaltkreis 10, so erzeugt ein Taktgeber 11 (CK) eine Reihe von Taktimpulsen, wobei die Taktimpulsfolge der Wortlänge angepaßt ist. Es sind orei Schieberegister 1 2,13 und I 4 (KR. KFR und DR) vorges~;ien, denen die Taktimpulse zugeführt werden. Die Register 12 und 13 bestimmen zusammen den Kennschlüssel, wobei das Register 12 (KR) den gewünschten Kennschlüssel an der geeigneten Stelle innerhalb des Wortes enthält und das Register 13 (KFR) eine Folge von »I«en enthält, wodurch der Speicherplatz des Kennschlüsselfeldes innerhalb des Wortes bestimmt wird. Ein Bit mit dem Wert »0« im Register 13 zeigt an, daß es sich um ein nicht zu beachtendes Bit handelt. Das Register 14 (DR) dient der Speicherung eines Datenwortes, welches in eine Speicherzelle hineingeschrieben werden soll oder aus einer Speicherzelle herausgelesen werden soll. Ein Suchschaltkreis 16 erzeugt einen Impuls, der der Folge von Taktimpulsen vorangeht, sofern eine Suche in dem Speicher durchgeführt werden soll, d. h. wenn beispielsweise alle Speicherzellen aufgesucht werden sollen, die einen bestimmten Kennschlüssel aufweisen. Ein Schreib-Sleuerschaltkreis 15 steuert und überwacht das Einschreiben von Daten in die Speicherzellen.
Betrachtet man eine Speicherzelle gemäß Fig. 2, so weist diese ein umlaufendes Schieberegister 30 mit einem Inhalt entsprechend einer Wortlänge auf, welches durch Taktimpulse des Taktgebers 1 1 auf der Leitung 21 angesteuert wird. Die von dem Kennschlüsselregister 12 kommende Kennschlüsselleitung 22 und das Schieberegister 30 beaufschlagen einen exklusiven ODER-Schaltkreis 31, dessen Ausgang einem UND-Gatter 32 zugeführt ist. Ein zweiter Eingang des UND-Gatters 32 wird von dem Kennschlüssel feldregister 13 über die Kennschlüsselfeldleitung 23 beaufschlagt. Das UND-Gatter 32 beaufschlagt die 0-Seiie eines Flip-Flops 33, dessen 1-Seite von dem Suchschaltkreis 11 über die Leitung 26 beaufschlagt wird. Die 1-Seite des Flip-Flops 33 beaufschlagt ein UND-Gatter 34, auf welches ebenfalls der Ausgang des Schieberegisters 30 geführt ist und dessen Ausgang auf eine mit dem Datenregister 14 (ÜR) verbundene Leitung 29 geschaltet ist.
Um ein Wort mit einem geforderten Kennschlüssel aufzusuchen, wird das Flip-Flop 33 über einen Impuls auf der Leitung 26 in den »!«-Zustand gekippt. Taktimpulse werden sodann den Schieberegistern 12 und 13 und über die Leitung 21 dem Schieberegister 30 zugeführt. Hierdurch wird das in dem Schieberegister 3 0 gespeicherte Wort über das geöffnete UND-Gatter 3 5 und das ODER-Gatter 36 zur Zirkulation veranlaßt, wobei der im Register 1 2 enthaltene Kennschlüssel über die Leitung 22 ausgegeben wird. Der Exklusiv-ODER-Schallkreis 31 vergleicht Bit für Bit den Kennsuilüssel des gespeichertem Wortes mit dem gewünschten Kenn-
schlüssel und erzeugt am Ausgang eine »1«, falls ein Unterschied zwischen den beiden Kennschlüsseln vorliegt. Das Binärsignal »1« wird über das UND-Gatter 3 2 auf das Flip-Flop 33 gegeben, wodurch dieses In den »(!«-Zustand umschaltet. Das Kennschlüsselfeld wird über die Leitung 23 dem UND-Gatter 3 2 zusätzlich zugeführt, wodurch das UND-Gatter 32 für alle Teile des gespeicherten Wortes mit Ausnahme des Kennschlüsselteiles gesperrt wird, so daß das Flip-Flop 3 3 lediglich hinsichtlich des Kennschlüsselteiles des Wortes auf eine fehlende Übereinstimmung ansprechen kann.
Am Ende der Übertragung des Kennschlüssels befindet sich das Flip-Flop 33 dann und nur dann in dem »1«-Zustand, wenn der in dem Schieberegister 30 enthaltene Kennschlüssel in Übereinstimmung mit dem in dem Register 1 2 enthaltenen Kennschlüssel gefunden wurde. Um den restlichen Teil des Wortes zu lesen, werden die Taktimpulse weiterhin über die Taktleitung 2 1 zugeführt und der Leitung 22 werden »O«-Bits aufgeprägt, um das Zurückkippen des Flip-Flops 33 auf den Wert »0« zu verhindern. Das Flip-Flop 33 schaltet das UND-Gatter 34 durch, wodurch der Rest des Wortes in dem Schieberegister 30 auf die Datenleitung 29 und somit in das Datenregister 14 gegeben werden kann.
Es sei angenommen, daß während der bis hierhin beschriebenen Such- und Leseoperation ein weiter vorgesehenes Flip-Flop 37 den »O«-Zustand eingenommen hat, so daß das daran angeschlossene UND-Gatter 34 bislang nicht gesperrt war. Das Flip-Flop 37 stellt fest, ob die Speicherzelle voll oder leer ist, d. h. ob sie irgendeine gespeicherte Information noch enthält oder nicht. Wenn die Speicherzelle durch eine Suchoperation ausgewählt worden war und ihr Inhalt ausgelesen worden ist. so kann sie, falls gewünscht, tatsächlich geleert werden, indem die Schreib-Steuereinheit 15 auf einer Löschleitung 25 einen Impuls ausgibt. Dieser Impuls beaufschlagt über das UND-Gatter 38 das Flip-Flop 37 und bringt es in den »1«-Zustand. wodurch angezeigt wird, daß die Speicherzelle leer ist. Selbstverständlich wird hierdurch die in dem Schieberegister 30 enthaltene Information nicht zerstört, sondern isi nur nicht mehr langer zugreifbar und kann beim späteren Neueinschreiber, in die Speicherzelle durch neue Information überschrieben werden.
Will man ein neues Wort in den Speicher einschreiben, so ist es erforderlich, eine leere Speicherzelle auszuwählen, wobei im allgemeinen mehrere leere Speicherzellen verfügbar sind. Dies wird mit Hilfe der Sperrkettenleitung 18 bewerkstelligt, welche die Speicherzeilen der Reihe nach miteinander verbindet. Jede Speicherzelle besitzt eine Sperr-Eingangsleitung 4Oi? und eine Snerr-Ausgangsleitung 40 6, welche miteinander über ein ODER-Gatter 41 verbunden sind, wobei dem ODER-Gatter 41 zusätzlich der »1«-Ausgang des Flip-Flops 37 zugeführt ist. Der ersten Speicherzelle des Speichers wird an ihrer Sperr-Eingangsleitung 4Oo ein »0«-Signal zugeführt. Unter der Annahme, daß die ersten Speicherzellen des Speichers alle besetzt sind, d. h. gespeicherte Information enthalten, befinden sich ihre Flip-Flop 37 alle in dem »O«-Zustand und die Sperr-Ausgangsleitungen dieser Speicherzellen weisen den Binärwert »0« auf. Hinsichtlich der ersten leeren Speicherzelle befindet sich das in ihr angeordnete Flip-Flop 37 in dem »1«-Zustand, wodurch sichergestellt wird, daß die Sperr-Ausgangsleltung in bezug auf alle nachfolgenden Speicherzellen den Binärwert »1« ausgibt und wobei andererseits die Sperr-Eingangsleitung dieser ersten leeren Speicherzelle mit dem Binärwert »0« beaufschlagt wird. Die erste leere Speicherzelle wird demnach mittels eines UND-Gatters 4 2 ausgewählt, welches feststellt, wann das Flip-Flop 37 den »!«-Zustand einnimmt und wann die Sperr-Eingangsleitung 4Oo das Signal »0« führt. Zwischen das UND-Gatter 42 und die Sperr-Eingangsleitung 4Oo ist hierbei ein Inverter 43 geschaltet.
Zur Einschreibung von Informationen In die auf diese Weise ausgewählte Speicherzelle beaufschlagt der Schreib-Steuerschaltkrcis 15 eine Schreibleistung 27, wodurch das UND-Gatter 4 2 durchgeschaltet wird. Hierdurch wird ebenfalls ein nachgeschaltetes UND-Gatter 45 durchgeschaltet und es wird über einen Inverter 44 das UND-Gatter 35 gesperrt. Durch die Sperrung des UND-Gatters 35 können die Daten in dem Schieberegister 30 nicht mehr weiter zirkulieren. Die neu einzuschreibenden Daten werden von dem Datenregister I 4 über die Leitung 24 dem UND-Gatter 45 der ausgewählten Speicherzelle zugeführt und anschließend über das ÜDER-Gatter 36 in das Schieberegister 30 eingegeben. Der Taktgeber 11 erzeugt hierbei die geeigneten Taktimpulse, um das Schieberegister 30 in die Lage zu versetzen, die ankommende Information einzuspeichern.
Wenn die Information gespeichert ist, so erzeugt der Schreib-Steuerschaltkreis 15 ein Signal auf einer Schreibbeendigungsleitung 28, welches das Flip-Flop 37 in der ausgewählten Speicherzelle auf 0 zurücksetzt, womit angezeigt wird, daß die Speicherzelle nicht mehr langer leer ist. Ein UND-Gatter 39 gewährleistet, daß nur das Flip-Flop 37 der ersten leeren Speicherzelle auf 0 gesetzt wird.
Es sei an dieser Stelle vermerkt, daß hinsichtlich der Festlegung der Struktur des gespeicherten Wortes in bezug auf den Kennschlüssel- und Datenteil vollständige Freiheit herrscht. Der einfachste Weg hinsichtlich der Benutzung des Speichers besteht darin, den Kennschlüsselteil an den Beginn des Wortes zu stellen. Der Kennschlüsselvergleich führt anfänglich dazu, daß viele Speicherzellen ihren Inhalt jeweils auf der Schiene 29 ausgeben, und zwar tun sie das solange, als ihre Kennschlüssel mit dem in dem Register 12 stehenden gewünschten Kennschlüssel übereinstimmen und sie werden von der Schiene 29 abgetrennt, wenn Unterschiede hinsichtlich der Kennschlüssel aufgefunden werden. Unter Umständen wird gerade eine Zelle aufgefunden, hinsichtlich der Kennschlüsselidentität herrscht und der Datenteil dieses Wortes wird sodann ohne Überlagerung durch andere Worte auf die Schiene 29 gegeben. In einem solchen Speicher sind Mehrfachantworten auf eine Anforderung nicht gestattet und verursachen eine Fehlfunktion, falls sie auftreten. Wird der Kennschlüssel in irgendeinem anderen Teil des Wortes gewählt, so kann ein erfolgreiches Auslesen der Daten nicht stattfinden, solange der Kennschlüsselvergieich nicht vollständig durchgeführt ist. Das ganze Wort kann in diesem Fall ausgelesen werden, indem eine einer zweiten Wortlänge entsprechende Folge von Taktimpulsen verwendet wird und die Leitung 26 signalfrei gehalten wird, so daß das Flip-Flop 33 und die entsprechenden Flip-Flops in anderen Speicherzellen nicht auf 1 zurückgestellt werden. Hierbei ist es unerheblich, ob die Kennschlüsselsuche in dem zweiten Wortzyklus wiederholt wird oder nicht; am Ende dieses Zyklus enthält das Datenregister 14 auf jeden Fall das gewünschte Wort.
Es sei weiterhin an dieser Stelle festgestellt, daß der Speicher in einfacher Weise modifiziert werden kann, indem die Register 30 der Speicherzellen eine Länge von mehreren Worten aufweisen und indem der Inhalt der Register 12 und 13 mehrere Male im Laufe einer vollen
Zirkulation der Daten in den Schieberegistern der Speicherzellen gelesen werden. Ein Suchprozeß würde in diesem Fall solange fortgeführt, bis das gewünschte Wort gefunden worden ist oder bis eine vollständige Neuzirkulation der Worte in jedem Register der Speicherzellen durchgeführt ist. Für das Schreiben werden jedoch weitere Modifikationen benötigt. Eine Möglichkeit besteht darin, so viele Voll/Leer-Flip-Flops in jeder Speicherzelle vorzusehen, wie Worte in einer Speicherzelle vorhanden sind. Diese Flip-Flops könnten in Form eines zyklischen Schieberegisters angeordnet werden, so daß jedes Flip-Flop seinerseits wie das Flip-Flop 3 7 gemäß Fig. 1 schallungsmäßig zu verbinden wäre, wenn das entsprechende Wort am Ende des Schieberegisters 30 erscheinen würde. Eine andere Möglichkeit besteht darin, das Flip-Flop 33 zur Steuerung des Einschreibens von Daten in die Speicherzelle zu benutzen, so daß eine Speicherzelle, welche im Laufe einer erfolgreichen Suche aufgefunden worden war, sofort für das Einschreiben neuer Daten herangezogen werden kann, falls dies gewünscht wird. Soll die Speicherzelle lediglich geleert werden, so wird ein Wort mit dem nächsten Kennschlüssel aus einer speziellen Folge von Kennschlüsseln, wobei diese von jeglichem normalen Kennschlüsselbereich verschieden ist, in die Speicherzelle eingeschrieben. Wenn ein neues Wort in den Speicher eingeschrieben werden soll, so wird der laufende Kennschlüssel aus der speziellen Folge aufgesucht und es wird in die auf diese Weise bestimmte Speicherzelle das neue Wort eingeschrieben. Die spezielle Folge von Kennschlüsseln kann durch einen Zähler erzeugt werden, der zum Löschen einer Speicherzelle um 1 erhöht u.id zum Einschreiben eines neuen Wortes in den Speicher um 1 erniedrigt wird.
Der anhand der Flg. 1 und 2 beschriebene Speicher weist verschiedene unerwünschte Merkmale auf; insbesondere ist der vorstehend beschriebene Speicher nicht in der Lage, die auf eine Anforderung eingehenden Mehrfachantworten zu verarbeiten. Nachstehend wird ein weiter verbesserter Speicher beschrieben, der diese Nachteile vermeidet und andere wünschenswerte Merkmale besitzt.
Bevor die Schaltkreise im einzelnen beschrieben werden, sei das Format der zu speichernden Information näher erläutert. In dem zuvor beschriebenen System bestand das Format im wesentlichen aus einem Datensatz pro Speicherzelle, obgleich es einfach war, dieses Datenformat auf mehrere Datensätze pro Speicherzelle zu verändern. Im Gegensatz hierzu benutzt das zu beschreibende Speichersystem eine Datensatzlänge, die normalerweise viel größer als die Länge der Speicherzelle ist, so daß jeder Datensatz eine beträchtliche Anzahl von Speicherzellen besetzt. Jeder Datensatz besteht aus einer Anzahl von Worten, von denen jedes die Länge einer Speicherzelle aufweist und die in elektrisch benachbarten Speicherzellen gespeichert sind. Die Datensätze können eines oder mehrere Felder enthalten, welche ihrerseits aufgesucht werden können. Um die aufsuchbaren Felder oder genauer um das erste Wort eines jeden aufsuchbaren Feldes zu unterscheiden, muß das erste Bit eines aufsuchbaren Feldes eine »1« aufweisen, während das erste Bit aller anderen Worte aus einer »0« besteht. Somit kann eine Suchoperation nur hinsichtlich jener Zellen zu einem positiven Resultat führen, die in ihrem ersten Bit eine »1« aufweisen. Wenn jeder Datensatz mehr als ein aufsuchbares Feld enthält, so muß ein jedes solches Feld durch eine verschiedene Folge von Bits in ihm nach dem anfänglichen »l«er-Bit unterschieden werden.
Die Datensätze können ein festes Format aufweisen, z. B. eine vorbestimmte Länge und mit aufsuchbaren Felder an vorbestimmten Stellen Innerhalb des Datensatzes. Eine beträchtliche Veränderung des Formates ist jedoch möglich, solange als die Datensätze einige Mittel zu ihrer vollständigen Wiederauffindung aufweisen, nachdem sie einmal In dem Speicher abgelegt sind. Ein Datensatz wird in dem Speicher aufgesucht. Indem eine erfolgreiche Suche nach einem aufsuchbaren Feld innerhalb des Datensatzes durchgeführt wird. Es muß sodann möglich sein, festzustellen, wie weit sich der Datensatz beldseits des aufsuchbaren Feldes erstreckt. Dies kann beispielsweise bewerkstelligt werden durch das Vorgehen spezieller Start- und Stopworte oder durch die Anordnung von den aufsuchbaren Feldern benachbarten Zahlen, welche auf die Entfernung zu dem Start- und zu dem Stoppunkt hinweisen.
Fig. 3 stellt ein Blockdiagramm des Speichers dar, welcher in gleicher Weise wie der Speicher gemäß den Flg. 1 und 2 aus einem Steuerschaltkreis IO und Speicherzellen 20-1, 20-2 20-n besteht. Innerhalb des
Steuerschaltkreises 10 sind nur jene Teile näher dargestellt, welche im einzelnen diskutiert werden und andere Teile einschließlich der mit den entsprechenden Teilen in dem Steuerschaltkrels gemäß Flg. 1 identischen Teile sind im einzelnen nicht dargestellt.
In den Fig. 4A und 4B Ist eine einzelne Speicherzelle dargestellt. Diese besteht auf fünf Hauptabschnitten: Einem Speicher- und Zyklus-Steuerabschnitt 50, einem Vergleichsabschnitt 51, einem Lese/Schreib-Abschnitt 52, einem Vergleichskettenabschnitt 53 und einem Schiebeabschnitt 54.
Zunächst sei der Speicher- und Zyklus-Steuerabschnitt 50 betrachtet. Dieser besteht aus einem Schieberegister 30, einem Zyklus-Steuer-Flip-Flop 58 (CCY) und einem UND-Gatter 59. Das Flip-Flop CCY wird mehr aus technischen als aus logischen Gründen benutzt. Eine herkömmliche Form des Schieberegisters 30 benötigt sehr wenig Energie im Ruhezustand, aber eine relativ hohe Energie, wenn die Information durch es hindurchgeschoben wird. Das Flip-Flop CCT wird benutzt, um die Anzahl von unnötigen Verschiebungen innerhalb des Schieberegisters 30 zu reduzieren. Wenn eine Suchoperation begonnen wird, so wird das Flip-Flop CCY nur dann auf »1« gesetzt, wenn das erste Bit des Schieberegisters eine »1« aufweist, wodurch angezeigt wird, daß es ein aufsuchbares Feld aufweist. Zu Beginn der Suchoperation setzt ein Impuls auf der Auslöseleitung 26 (IB) das Flip-Flop CCY auf den Wert »0«. Das Flip-Flop CCY wird jedoch nahezu sofort auf den Wert »1« gesetzt, wenn das Schieberegister an seinem Ausgang den Wert »1« ausgibt, wie weiter unten erläutert wird. Das Flip-Flop CCY wird ferner auf den Wert »0« nach jeder vollen Wortpenode zurückgestellt und es wird wiederum unter der Steuerung des Vergleichsabschnittes des Schaltkreises auf den Wert »1« gesetzt, !alls die geeigneten Verhältnisse vorliegen. Das Flip-Flop CCY steuert die Taktimpulse auf der Leitung 21 mittels eines Gatters 59, wobei der Ausgang dieses Gatters die Verschiebung des Schieberegisters SR steuert.
Der Lese/Schreib-Abschnitt 52 steuert die Zirkulation der Daten durch das Schieberegister SR, das Lesen von Information aus dem Schieberegister SR und das Einschreiben neuer Information In dieses Schieberegister. Normalerwelse bilden die Gatter 60 und 61 einen Zirkulationspfad. Lesen und Schreiben werden durch eine Leseleitung 62 (RB) und eine Schreibleitung 64 (WB) sowie durch ein Speicherzellen-Auswahlsigna! auf der Leitung 65 gesteuert. Zum Lesen schalten »!«-Signale auf der Leseleitung RB und der Leitung 65 zusammen
das UND-Gatter 66 und gestatten somit die Übertragung von Daten von dem Schieberegister SR zu der Datcnleitung 29. Beim Schreiben stellt das UND-Gatter 67 das gleichzeitige Vorhandensein von »1«-Slgnalen auf der Leitung 65 und der Schreibleitung WB lest, wodurch das UND-Gatter 62 geschaltet wird und die auf der Datenleitung 24 anstehenden Daten das Schieberegister .S7< erreichen können. Gleichzeitig wird das UND-Gatter 6(1 gesperrt, wodurch eine Zirkulation der bereits in dem Schieberegister SR vorhandenen Daten verhindert wird.
Als nächstes sei der Vergleichsabschnitt 51 betrachtet. Dieser umfaßt ein den laufenden Zyklus vergleichendes Flip-Flop 33 (CUC). Um eine Suche zu starten, wird eine Suchleitung 70 (SB) an Spannung gelegt, wodurch die UND-Gatter 71 und 73 geschaltet werden. Hierdurch wird das Flip-Flop CUC auf »0« oder »1« gesetzt, je nachdem ob ein Signal von dem einen oder anderen der beiden ODER-Gatter 72 und 74 erhalten wird, was von dem ersten Bit in dem Schieberegister SR abhängt. Dieses erste Bit bestimmt, ob das Schieberegister den Beginn eines aufsuchbaren Feldes aufweist oder nicht. Zum gleichen Zeitpunkt, zu dem die Suchleitung SB an Spannung gelgl wird, wird die Auslöscleitung 26 (IB) an Spannung gelegt, wodurch das Flip-Flop CCY auf »0« gesetzt wird. Wenn die Speicherzelle den Beginn eines aufsuchbaren Feldes aufweist, so wird das Flip-Flop CfC" auf »1« gesetzt, wodurch das Flip-Flop CC) sofort auf »1« umgeschaltet wird. Das Schieberegister SR führt somit nur eine Datenverschiebung durch, wenn der Beginn eines aufsuchbaren Feldes vorliegt.
Nach diesen Auslösfunktionen wird auf der Kennschlüsselleitung 22 (KB) und der Kennschlüsselfeldleitung 23 (KFB) der Kennschlüssel und das Kennschlüsselfeld ausgegeben, was gleichzeitig mit den Taktimpulsen auf der Taktleitung 21 (CKB) erfolgt. Das Exklusiv- J5 ODER-Gatter 31 vergleicht Bit für Bit den Kennschlüssel mit dem gespeicherten Wort In dem Schieberegister SR und das Gatter 32 ermöglicht bei einer Nichtübereinstimmung zwischen dem Kennschlüssel und den gespeicherten Daten das Setzen des Flip-Flops CW auf »0«, was über das ODER-Gatter 74 jedoch nur geschieht, wenn der Unterschied innerhalb des Kennschlüsselfeldes auftritt. Das Flip-Flop CUC behält den Wert »1« am Ende eines Wortzyklus nur dann, wenn die Kennschlüsselsuche erfolgreich war.
Die Betrachtung des Abschnittes 51 sei an dieser Stelle unterbrochen und es sei als nächstes der Vergleichskettenabschnitt 53 betrachtet. Es sei angenommen, daß der Speicher als ein »1 Wort pro Datensatz-Speicher« wie jener gemäß Fig. 1 benutzt wird, so daß jede Speicherzelle einen getrennten Datensatz enthält, wobei jeder Datensatz mit einer »1« beginnt und somit auf ein aufsuchbares Feld hinweist. Am Ende einer Kennschlüsselsuche werden die Ci/C-Flip-Flops in den meisten Speicherzellen auf »0« gesetzt sein, aber einige Speicherzellen, bei denen die Suche erfolgreich war, werden mit ihren Cl/C-Flip-Flops den Wert »1« aufweisen, wobei es wünschenswert ist, diese Speicherzellen eine nach der anderen auszulesen. Die Vergleichskettenabschnitte der Speicherzellen innerhalb des Speichers sind in einer Kette angeordnet, wobei jede Speicherzelle die nächste Speicherzelle beaufschlagt. Der Abschnitt 53 weist eine Vergleichsketten-Eingangsleitung 40a auf, die an die vorangehende Speicherzelle angeschlossen 1st, und er weist ferner eine Vergleichsketten-Ausgangsleitung 40ß auf, die an die nachfolgende Speicherzelle angeschlossen Ist. Wenn das Flip-Flop CUC in irgendeiner vorangehenden Speicherzelle auf »1« gesetzt worden ist.
so weist die Eingangsleitung 40a ebenfalls den Wert »I« auf. Die Ausgangsleitung 40ft ist an ein ODER-Gatter 41 angeschlossen, welches von der Eingangsleitung 40(/ und dem Flip-Flop CUC beaufschlagt wird, so daß diese Ausgangsleitung den Wert »I« aufweist, wenn das Flip-Flop CUC irgendeiner vorangehenden Speicherzelle auf den Wert »1« gesetzt oder wenn das Flip-Flop CUC der gerade betrachteten Speicherzelle auf den Wert »1« gesetzt Ist.
Die erste Speicherzelle innerhalb der Kette, deren Flip-Flop CUC den Wert »I« einnimmt, ist somit erkennbar, da nur in ihrem Fall das Flip-Flop CUC den Wert »1« aufweist und ihre Eingangsleitung 4Oo den Wert »0« besitzt. Dieser Zustand wird durch ein UND-Gatter 83 festgestellt, welches auf die Leitung 65 arbeitet. Wie zuvor erläutert, steuert diese Leitung 65 das Lesen und Schreiben. Wenn daher bei einer Datenanforderung eine Mehrfachantwort vorliegt, d. h. wenn beispielsweise verschiedene Speicherzellen den gleichen Kennschlüssel aufweisen, so wird die erste dieser Speicherzellen für das Lesen oder Schreiben ausgewählt und die anderen Speicherzellen stören bei diesem Vorgang nicht.
Es kann sein, daß das Kennschlüsselfeld mit dem Wort beginnt. 1st dies der Fall, so kann das Lesen oder Schreiben des verbleibenden Teiles des Wortes in dem verbleibenden IeIl des Wortzyklus bewerkstelligt werden. Befindet sich jedoch das Kennschlüsselfeld nicht am Anfang des Wortes, so kann zweiter Wortzyklus für das Lesen oder Schreiben benötigt werden. Ein solcher zweiter Zyklus folgt auf den ersten Zyklus, ohne daß die Auslöseleitung 26 an Spannung gelegt wird, so daß die Kipplage des Flip-Flop CC) in jeder Speicherzelle unverändert bleibt.
Nachdem eine solche Speicherzelle gelesen oder geschrieben wurde, ist es erforderlich, auf eine etwa vorhandene nächste Speicherzelle weiterzugehen, deren Flip-Flop CUC auf den Wert »1« gesetzt ist, was bedeutet, daß diese nächste Speicherzelle In der Lage ist, das nächste Wort mit dem gleichen Kennschlüssel aufzunehmen, falls die Suche ergeben hat, daß mehr als ein Wort mit dem gewünschten Kennschlüssel existiert. Eine die Bereitschaft der nächsten Speicherzelle vorbereitende Leitung 84 (CLB) ist an ein UND-Gatter 85 angeschlossen, dessen anderer Eingang mit dem Komplement des Signales auf der Leitung 40a gespeist wird. Ein Signal auf der Leitung CLB veranlaßt somit das UND-Gatter 85 zur Erzeugung eines »lw-Ausgangsignales, sofern keine vorangegangene Speicherzelle ein Cl/C-Flip-Flop mit dem Wert »1« aufweist. Der Ausgang des UND-Gatters 85 beaufschlagt über das ODER-Gatter 74 das Flip-Flop CUC, so daß ein »!«-Signal am Ausgang der UND-Gatters 85 das Flip-Flop CUC auf »0« setzt. Ein Signal auf der Leitung CLB setzt somit das erste Ci/C-Flip-Flop mit dem Wert »1« zurück auf den Wert »0«, wobei alle anderen Ci/C-Flip-Flops unverändert bleiben. Eine zweite Lese- oder Schreiboperation wirkt somit hinsichtlich der nächsten Speicherzelle, deren Flip-Flop CUC auf den Wert »1« gesetzt ist. Durch Wiederholung dieses Verfahrens kann irgendeine Anzahl von Speicherzellen mit dem gleichen Kennschlüssel der Reihe nach gelesen oder es kann Information in diese eingeschrieben werden.
Es verdient an dieser Stelle vermerkt zu werden, daß die erste Speicherzelle innerhalb des Speichers selbstverständlich keine Eingangsleitung 40a aufweist oder, was das gleiche ist, daß eine solche erste Speicherzelle an einer solchen Eingangsleitung permanent mit dem Wert »0« beaufschlagt wird. Die Ausgangsleitung 406 der letz-
ten Speicherzelle innerhalb des Speichers erzeugt einen Hinweis, ob eine Suche erfolgreich gewesen ist oder nicht. Ferner wird in dem Fall, in dem die Suche erfolgreich war und Speicherzellen der Reihe nach ausgelesen oder eingeschrieben worden sind, die Ausgangsleitung 40b der letzten Speicherzelle den Wert »1« solange aufweisen, als wenigstens noch eine Zelle vorhanden ist, hinsichtlich der ein erfolgreicher Vergleich stattgefunden hat und die weder bisher gelesen noch geschrieben wurde. ι ο
Der Speicher gemäß F i g. 3 ist jedoch so ausgelegt, daß er die Benutzung von Datensätzen mit mehreren Wortliingen erlaubt. Es ist daher erforderlich, einen Übergang von einer Speicherzelle auf die nächste Speicherzelle zu schaffen, d. h. eine Suche auch dann fortzusetzen, wenn sich der Kennschlüssel über mehr als ein Wort erstreckt bzw. es ist eine Möglichkeit zu schaffen, alle Wörter eines Datensatzes zu lesen oder zu schreiben. Diese Möglichkeit wird durch den Verschiebeabschnitt 54 geschaffen. Dieser wird über zwei Leitungen 9Oo und 90h beaufschlagt, die ein Aufwärtsschieben (SUB) und ein Abwärtsschieben (SDB) bewirken. Der Verschiebeabschnitt 54 besitzt ferner zwei Eingangs/Ausgangsleitungen, die an die benachbarten Speicherzellen angebunden sind, wobei die Leitung 91 an die nächste darüber befindliehe Speicherzelle und die Leitung 92 an die nächste darunter befindliche Speicherzelle angeschlossen ist. Um die nächste Speicherzelle in dem Speicher nach oben zu verschieben, wird an die Leitung SUB eine Spannung gelegt. Hierdurch wird das UND-Gatter 93 geschaltet, wodurch i< > der Schaltzustand des Flip-Flops CUC über die Leitung 91 auf die nächste darüber befindliche Speicherzelle übertragen wird. Zum gleichen Zeitpunkt wird der Schaltzustand des Flip-Flop CUC der nächsten darunter befindlichen Speicherzelle auf der Leitung 92 empfangen. Der Schaltzustand des Flip-Flop CUC der gerade betrachteten Speicherzelle wird dem Schaltzusland des Flip-Flops in der darunter befindlichen Speicherzelle mittels der UND-Gatter 94 und 95 und der ODER-Gatter 96 und 97 angepaßt. Eine Verschiebung nach der nächsten darunter befindlichen Speicherzelle wird in gleicher Weise bewerkstelligt, indem die Leitung SDB an Spannung gelegt wird, wodurch die zugeordneten UND-Gatter 93', 94' und 95' geschaltet werden.
Nach einer solchen Verschiebung ist es wünschenswert, die Auslöseleitung IB unter Spannung zu setzen, um die Flip-Flopps CC) der zurückliegenden Speicherzellen auf »0« zu setzen. Es ist ferner wünschenswert, diese Auslöseschiene IB nach einer Vergleichsoperation bezüglich einer Wortlänge unter Spannung zu setzen, um die Anzahl der den Wert »1« aufweisenden Flip-Flopps CCY zu reduzieren.
Das soweit beschriebene Verfahren zum Einschreiben folgt gewünschtenfails auf eine Suchoperation, wobei dazwischen die Möglichkeit einer Leseoperation besteht. Wenn ein Datensatz mit einem speziellen Kennschlüssel im Speicher lokalisiert wurde, so kann ein neuer Datensatz über diesen geschrieben werden, wobei der ursprüngliche Datensatz gelöscht wird. Dies setzt selbstverständlich voraus, daß der neue Datensatz nicht länger als der gelöschte alte Datensatz ist. Es kann ferner eine Mögllchkei» gefordert werden, neue Datensätze einzuschreiben, ohne daß die alten Datensätze gelöscht werden müssen. Dies kann durch die Benutzung eines speziellen Pseudo-Datensatzformates bewerkstelligt werden, wobei dieses Datensatzformat einen Kennschlüssel aufweist, der von dem Kennschlüssel irgendeines tatsächlichen Datensatzes verschieden ist. Das Pseudo-Datensatzformat kann eine variable Länge aufweisen und enthält zusätzlich zu dem Pseudo-Kennschlüssel die Datensatzlänge. Hierbei kann die Datensatzlänge zu dem Ende des Pseudo-Kennschlüssels hinzuaddiert sein. Wenn ein Datensatz gelöscht werden soll, so wird der Pseudo-Datensatz über diesen geschrieben. Dieses Einschreiben besteht vorzugsweise aus einem vollen Überschreiten, d. h. aus einem Überschreiten aller Worte, um sicherzustellen, daß keine aufsuchbaren Felder des ursprünglichen Datensatzes verlorengehen. Wenn ein neuer Datensatz geschrieben werden soll, so wird eine Suche durchgeführt, bei der der Pseudo-Kennschlüssel und die Länge des neuen Datensatzes benutzt werden. Ein Pseudo-Datensatz von der geforderten Länge wird hierbei aufgefunden und es wird der neue tatsächliche Datensatz über diesen geschrieben.
Dieses Verlahren kann zur Folge haben, daß die tatsächlichen Datensätze weniger Speicherplatz beanspruchen, als durch die Anzahl der ihnen zugeteilten Speicherzellen vorgegeben ist. Aus diesem und aus anderen Gründen ist es zweckmäßig, Mittel vorzusehen, um das CiVC-Flip-Flop der ersten Speicherzelle innerhalb des Speichers auf »1« zu setzen. Diese nicht dargestellten Mittel umfassen eine Leitung von dem Steuerschaltkreis 10 zu dem ODER-Ciaüer 72 der ersten Speicherzelle 2ΟΙ des Speichers, wobei diese Leitung erregt wird, um die erste Speicherzelle auszuwählen. Es können sodann Datensätze der Reihe nach in den Speicher eingeschrieben werden, wobei der »1«-Zustand der C'i/C'-Flip-Flop allmählich von oben nach unten durch den Speicher geschoben wird. Durch diese Mittel kann der Speicher periodisch gelöscht und neu gefüllt werden. Das Löschen erfolgt hierbei durch eine sequentielle Suche, die als nächste zu beschreiben ist.
Der Speicher gemäß den Fig. 3 und 4 weist die Fähigkeit auf, eine sequentielle Suche durchzuführen, d. h. es kann auf Datensätze in einer sequentiellen Kennschlüssel-Reihenfolge Zugriff genommen werden. Die Suche kann aus einem Lese- und Löschprozeß bestehen, wobei die Datensätze nach ihrer Auffindung aus dem Speicher herausgeholt werden: es können, falls gewünscht, die Datensätze jedoch auch in dem Speicher verbleiben. Im letzteren Fall wird, nachdem auf einen Datensatz Zugriff genommen wurde, eine Suche nach dem Datensatz mit dem nächsthöheren Kennschlüssel durchgeführt. Hieraus ergibt sich, daß dieser Speicher auch für dieses Verfahren an sich benutzt werden kann, d. h. zum Aufsuchen von Datensätzen, die gegenüber einem vorgegebenen Kennschlüssel den nächsthöheren Kennschlüssel aufweisen. Dies ist gleichbedeutend mit einer Suche nach einem Datensatz mit einem Kennschlüssel, dereinem vorgegebenen Kennschlüssel benachbart ist.
Bei der Beschreibung des Prinzips der sequentiellen Suche seien zwei Einschränkungen angenommen. Zunächst soll die sequentielle Suche für alle aufsuchbaren Felder wirksam sein und zum anderen sollen die Kennschlüssel aus einem einzigen vollen Wort bestehen. Da die aufsuchbaren Felder gewöhnlich durch einen dem tatsächlichen Kennschlüsse! vorangestellten Feldcode unterscheidbar sind, ist die erste Einschränkung nicht von großer Bedeutung. Die Suche muß lediglich auf einen begrenzten Teil des möglichen vollen Kennschlüsselbereiches beschränkt werden, wobei dieser durch den Feldcode definiert ist. Die zweite Einschränkung kann leicht umgangen werden durch geeignete Modifikationen hinsichtlich des zu beschreibenden Schaltkreises.
Die sequentielle Suchoperation wird durch einen sequentiellen Such-Sleuerschaltkreis 100 (SQC) gesteuert. Dieser bewirkt eine Operation der übrieen
Schaltkreise in der nachstehend beschriebenen Weise.
Zunächst sei das Verfahien zur Auffindung des niedrigsten Kennschlüssels innerhalb des Speichers beschrieben. Anfänglich weist das Kennschlüsselregister KR lauter »O«-Werte auf mit Ausnahme der ersten Bitstelle, we'che eine »1« aufweist, um auf ein aufsuchbares Feld hinzuweisen. Das Verfahren beginnt sodann wie eine normale Suchoperation. Die Flip-Flops CUC der verschiedenen Speicherzellen werden anfänglich durch die aufsuchbaren Felder auf »1« gesetzt und anschließend zurück auf »0« gesetzt, wenn der Vergleich keine Übereinstimmung ergibt. Dieses Verfahren setzt sich solange fort, bis wenigstens ein Flip-Flop CUC auf »1« gesetzt bleibt. Möglicherweise wird jedoch auch das letzte der Flip-Flops CUC auf »0« zurückgesetzt. Dieser Zustand wird durch das Ende der Vergleichskelte 18 angezeigt, die aus der letzten Speicherzelle des Speichers herausgeführt ist und in diesem Fall den Wert »0« aufweist.
Die von der Taktquelle 11 auf der Leitung 2 I erzeugten Taktimpulse werden einem Verzögerungsschaltkreis 1 01 zugeführt, der diese um eine halbe Taktperiode verzögert. Wenn das Ende der Vergleichskette 18 den Wert »0« einnimmt, so nimmt der Ausgang des Inverters 102 den Wen »1« ein, wodurch das UND-Gatter 103 durchgeschaltet wird, so daß der nächste verzögerte Taktimpuls von dem Verzögerungsschaltkreis 101 auf die Wiederinstandsetzungsleitung 104 (RSB) gegeben wird. Gemäß Fig. 4A enthält jede Speicherzelle des Speichers zusätzlich zu dem Vergleichs-Fllp-Flop CUC ein verzögertes Vergleichs-Flip-Flop 75 (DFC). Die Ausgänge des Ct/C'-Flip-Flops sind nicht näher bezeichneten UND-Gattern zugeführt, die ihrerseits bei Vorliegen des Taktimpulses auf der Leitung 21 das DfC-Flip-Flop 14 setzen, so daß der ÜFC'-Flip-Flop immer den Zustand des Cl/C-Fllp-Flops speichert, den dieses eine Bit-Periode zuvor innehatte. Der Impuls auf der Leitung 104 wird dem UND-Gatter 76 in jeder Speicherzelle des Speichers zugeführt, so daß jene Flip-Flop CUC, welche gerade auf »0« gesetzt worden waren, wiederum auf »1« zurückgesetzt werden. Es wird somit der Vergleich des gerade *o getesteten Bits wiederum annulliert. Auf diese Weise wird das Ende der Vergleichskette 18 zurück auf »1« gesetzt. Der Vergleich wird bis zum Ende des Wortes fortgesetzt, wobei das Zurücksetzen der Vergleichskette auf »1« jedesmal dann auftritt, wenn der Vergleich in allen Speicherzellen keine Übereinstimmung ergab.
Der Steuerschaltkreis 10 weist zwei Flip-Flops SQSO und SQS\ auf, welche beim Beginn einer Suche durch die Suchleitung SBlO auf »0« gesetzt werden. Ihre »1«- Ausgänge sind auf ein NOR-Gatter 105 geschaltet, dessen Ausgang auf zwei UND-Gatter 106 und 107 geschaltet ist, die mit ihren Ausgängen wiederum auf die »1«- Eingänge der beiden Flip-Flops geschaltet sind. Die beiden UND-Gatter 106 und 107 werden weiterhin von dem Ausgang des Inverters 102 beaufschlagt, und dem UND-Gatter 107 wird das Signal des Registers KR auf der Leitung 22 direkt und dem UND-Gatter 106 über den Inverter 108 das Komplement dieses Signales zugeführt. Demgemäß weisen die Ausgänge des Inverters 102 und des NOR-Gatters 105 beide den Wert »1« auf, wenn das Ende der Vergleichskette 18 zum ersten Mal bei einer Suche den Wert »0« führt und es wird das Flip-Flop SQSf) oder SQSl auf den Wert »1« gesetzt, jenachdem ob zu diesem Zeitpunkt der Ausgang des Registers KR den Wert »0« oder den Wert »1« aufweist. Ist dieser Zustand einmal aulgetreten, so nimmt der Ausgang des NOR-Gatters 105 den Wert »0« ein und stellt somit sicher, daß für den Rest der Suchperiode kein weiterer Wechsel im Schaltzustand dieser Flip-Flops auftritt.
Bei der gegenwärtig betrachteten Situation, bei der das Register KR in all seinen Stellen den Wert »0« aufweist, wird das Flip-Flop SQSO in den »!«-Zustand gesetzt, wenn zum ersten Mal das Ende der Vergleichskette 1 8 den Wert »0« einnimmt. Bis zu diesem Zeitpunkt wird der Inhalt des Kennschlüsselregisters KR über das UND-Gatter 109 zirkuliert, wobei dieses Gatter von dem »0«- Ausgang des Flip-Flops SQSO durchgeschaltet wird. Ein nachgeschaltetes ODER-Gatter 110 verbindet in diesem Zustand den Ausgang des UND-Gitters 109 mit dem Eingang des Schieberegisters KR. Danach wird das UND-Gatter 109 gesperrt und das UND-Gatter 111 durchgeschaltet. Die Signale auf der Leitung 18 ersetzen nunmehr die Ausgangssignale des Kennschlüsselregisters KR und füllen den verbleibenden Rest des Kennschlüsselregisters KR. Jedesmal wenn der Vergleich eines Bits auf der Leitung 22 erfolgreich verläuft, nimmt die Leitung 18 den Signalzustand »1« ein, der Ausgang des Inverters 102 nimmt dementsprechend den Signalzustand »0« ein und es wird dementsprechend ein Bit mit dem Wert »0« εηι Ende des Kennschlüsselregisters KR eingegeben. Je !esmal wenn der Vergleich hinsichtlich eines Bits auf der Leitung 22 negativ verläuft, d. h. wenn festgestellt wird, daß kein Kennschlüssel In dem Speicher vorhanden ist, der mit dem gesuchten Kennschlüssel völlig übereinstimmt, nimmt die Leitung 18 den Signalzustand »0« ein und der Inverter 102 schreibt dementsprechend ein Bit mit dem Wert »1« in das Ende des Kennschlüsselregisters KR ein.
Es sei hier festgestellt, daß das Kennschlüsselregister KR nicht direkt an die Leitung 22 angeschlossen ist, sondern über ein UND-Gatter 112, welches gesperrt wird, wenn das Flip-Flop SQSO auf den Wert »1« gesetzt wird. Auf diese Welse wird sichergestellt, daß Bits mit dem Wert »0« nur auf die Leitung 22 gegeben werden, nachdem das Flip-Flop SQSO auf den Wert »1« gesetzt worden ist, obwohl das Kennschlüsselregister KR einige Bits mit dem Wert >;1« enthalten kann. Die Umstände, unter denen dieser Fall auftritt, sollen später erläutert werden.
Die Suche gehl demnach so vonstatten, daß hinsichtlich des Anfangsteiles der Wortsuchperiode der Inhalt des Kennschlüsselregisters KR im Kreis verschoben wird. Sobald hinsichtlich eines Bits mit dem Wert »0« der Vergleich negativ verläuft, wird das Flip-Flop SQSO auf den Wert »1« gesetzt und die Vergleichskettenleitung 18 legt fest, was hinsichtlich des verbleibenden Restes der Wortperiode in das Kennschlüsselregister KR übernommen wird. Am Ende der Wortperiode enthält das Kennschlüsselregister KR den kleinsten Kennschlüssel im Speicher und die Speicherzelle mit diesem Kennschlüssel ist ausgewählt worden.
Wenn der Speicher lediglich die bis hierhin beschriebene Fähigkeit zur sequentiellen Suche aufweist, d. h. nur eine Such- und Löschfunktion ausführen kann, so sind lediglich die bis hierhin erläuterten Teile des Steuerschaltkreises 10 erforderlich. Soll jedoch die Möglichkeit einer vollen sequentiellen Suche vorgesehen sein, so ist der Rest des Steuerschaltkreises gemäß Fig. 3 ebenfalls erforderlich.
Bevor diese Hardware beschrieben wird, sei zunächst die Wirkungswelse der vollen sequentiellen Suche softwaremäßig erläutert.
Das Verfahren arbeilet wie zuvor erwähnt, ausgehend von einem Kennschlüssel, bei dem alle Bits außer dem anfänglichen aufsuchbaren Feld den Wert »0« aufweisen und es vergleicht die Bits In der Reihenfolge ihrer abnch-
menden Bedeutung, d. h. es beginnt mit dem höchsten Bit zuerst. Nachdem ein Datensatz aufgefunden worden Ist oder verschiedene Date.isätze, die den gleichen Kennschlüssel besitzen, aufgefunden worden sind, wird der Kennschlüssel um 1 erhöht und es wird eine Suche mit diesem Kennschlüssel begonnen. Solange der Vergleich bei dieser Suche erfolgreich verläuft, muß nichts Spezielles unternommen werden. Eine spezielle Maßnahme muß vorgenommen werden, wenn der Vergleich negativ verläuft, wobei zwei Regeln zu beachten sind. Einmal muß der Vergleich ausschließlich mit »O«-Bits fortgesetzt werden, wenn der erste Fehlvergleich hinsichtlich eines »O«-Bits auftritt und es müssen alle verbleibenden Bits eines nach dem andern mittels der Vergleichskette bestimmt werden. Zum anderen muß eine »1« zu dem Kennschlüssel hinzuaddiert werden, wenn der erste Fshlvergleich hinsichtlich eines »1«-Bits auftritt, und es müssen die verbleibenden niedrigeren Bits auf »0« gesetzt werden und ein neuer Vergleich im nächsten Wortzyklus versucht werden.
Als eine geeignete Darstellung seien nunmehr Kennschlüssel mit 6 Bit betrachtet und es sei angenommen, daß die niedrigsten vier Kennschlüssel folgende Gestalt aufweisen, wobei das Bit mit dem Wert »1« des anfänglichen Suchieldes unberücksichtigt bleibt:
000101
001010
001101
010110.
Der Vergleich beginnt mit dem Kennschlüssel
000000
wobei der erste Fehlvergleich hinsichtlich des unterstrichenen Bits auftritt. Wenn dieses Bit eine »0« ist, so wird dieses Bit in den Wert »1« umgewandelt und die nächsten zwei Bits werden durch die Vergleichskette bestimmt, was den ersten Kennschlüssel ergibt.
000101.
Wenn der Datensatz mit diesem Kennschlüssel behandelt worden ist, wird ein Fehlvergleich bei seinem Auftreten festgehalten und es wird eine »1« zu der letzten Stelle addiert:
000101 (erster Kennschlüssel)
1
40
45
OCOMO.
Dies ist der nächste Versuch-Kennschlüssel, bei dem ein Fehlvergleich hinsichtlich des unterstrichenen Bits auftritt. Da dieses Bit eine »1« ist, werden die verbleibenden Bits auf den Wert »0« gesetzt und es wird eine »1« an der Stelle hinzuaddiert, wo der Fehlvergleich auftrat:
000110
1
50
55
001000.
Dies ist der nächste Versuchs-Kennschlüssel und ein Fehlvergleich tritt hinsichtlich des unterstrichenen Bits auf. Dieses BiI weist den Wert »0« auf und wird daher in den Wert »1« umgewandelt und es werden die verbleibenden Bits von der Vergleichsketle 18 bestimmt, was /u dem nächsten Kennschlüssel führt:
001010.
Nach der Wiederaulsuche des Datensalzes oder der Datensätze mit diesem Kennschlüssel wird eine »1« hin
60
65 zuaddiert, was zu dem nächsten Versuchs-Kennschlüssel führt:
001011.
Ein Fehlverglelch tritt zuerst hinsichtlich des unterstrichenen Bits auf, welches den Wert »0« aufweist und die verbleibenden drei Bits werden von der Vergleichskette 18 bestimmt, was zu dem dritten Kennschlüssel führt:
001101.
Der nächste Versuchs-Kennschlüssel weist einen demgegenüber um 1 erhöhten Wert auf, d. h. er beträgt
001MO.
Der Fehlvergleich tritt hinsichtlich des unterstrichenen Bits auf, welches den Wert »1« aufweist. Durch Addition einer »1« an dieser Stelle ergibt sich der nächste Versuchs-Kennschlüssel
010000
Dieser Kennschlüssel führt zu einem Fehlvergleich hinsichtlich des unterstrichenen Bits, welches den Wert »0« besitzt und die verbleibenden Bits des nächsten Kennschlüssels werden somit durch die Vergleichskette 18 bestimmt, was zu dem vierten Kennschlüssel führt
010110.
Wenn das Verfahren fortgesetzt wird, ergibt sich als nächster Versuchs-Kennschlüssel
0101M.
Ein Fehlvergleich ergibt sich hinsichtlich des unterstrichenen Bits und es wird eine »1« an dieser Stelle hinzuaddiert, wodurch sich folgender Wert ergibt
OMOOO.
Der Fehler tritt hinsichtlich des unterstrichenen Bits auf und es wird eine 1 wiederum an dieser Stelle addiert, was zu einem Wert führt
JOOOOO.
Ein Vergleichsfehler hinsichtlich eines Wertes »1« an der höchsten Stelle zeigt an, daß die Suche beendet ist. Dieser Vergleichsfehler kann In der herkömmlichen Welse behandelt werden. Die vorzunehmende Korrektur geschieht durch Addition eines Bits mit dem Wert »1« in der höchsten Stelle und der sich hieraus ergebende Überlauf zeigt an, daß das Ende der Suche erreicht ist.
Es sei hier vermerkt, daß der bereits beschriebene Schaltkreis die erste Regel vollständig erfüllt, d. h. der bereits beschriebene Schaltkreis kann eine Suche hinsichtlich seines Kennschlüssels durchführen, der nicht In allen Bitstellen eine »0« aufweist, indem die Kennschlüssel-Bits in das Kennschlüsselregister zurückgeführt werden, nachdem ein Fehlvergleich hinsichtlich eines Bits mit dem Wert »0« aufgetreten Ist und indem anschließend das UND-Gatter 11 2 gesperrt wird, so daß der Vergleich lediglich mit Bits mit dem Wert »0« fortgesetzt wird, wobei die Vergleichskette 18 den Rest der in das Kennschlüsselregister KR zurückzuführenden Daten steuert.
Hinsichtlich der zweiten Regel, die den beim Vorliegen eines Bits mit dem Wert »1« auftretenden Fehlverglcich betrifft, wird das Flip-Flop .S(ASI über das UND-Gatter 1(17 gesetzt. Der Rest des Wortzyklus muß vervollständigt werden, wobei es unerheblich ist, was in dem Vergleichsverfahren geschieht, nachdem das Flip-Fiop SHJSX auf den Wert »I« gesetzt worden ist. Die Zirkulation des
Inhalts des Kennschlüsselregisters KR erfolgt über die Gatter 112, 109 und 110. Der Restinhalt des Kennschlüsselregisters KR wird durch den Inverter 108 invertiert und über ein UND-Gatter 114 in ein zusätzliches Register 113 (SQR) gegeben. Am Ende des Wortzyklus ist der Inhalt des Registers KR ohne Änderung im Kreis verschoben worden, und das Register SQR enthält das Komplement des Kennschlüssels in Register KR von der Stelle an, an der der Fehlvergleich aufgetreten ist. Die beiden Register KR und SQR arbeiten auf einen Addierer 115, und der »1«-Ausgang des Flip-Flops SQSl liefert ein Übertrags- und Vorbereitungssignal für den Addierer. Am Ende des Wortzyklus wird der Addierer 115 in Funktion gesetzt und füllt das Kennschlüsselregister KR mit einer Summe von Daten auf, die aus atm vorangegangenen Kennschlüssel, dem Komplemenl des Kennschlüssels vom Zeitpunkt des Fehlvergleichs abwärts und aus einem Bit mit dem Wert »1« besteht. Dies führt zu einem neuen Kennschlüssel, dem an der Stelle des Auftritts des Fehlvergleichs eine »1« hinzuaddiert ist und der anschließend Bits mit dem Wert »0« aufweist, wobei mit diesem neuen Kennschlüssel ein erneuter Vergleich durchgeführt wird.
Wenn Kennschlüsselfelder behandelt werden sollen, die Innerhalb eines Wortes liegen, so ist keine Änderung erforderlich, soweit die erste Regel betroffen ist. Das kennschlüsselfeldregister stellt sicher, daß kein Suchfehler außerhalb des Kennschlüsselfeldes auftritt. Hinsichtlich der Regel 2 ist jedoch das Kennschlüsselfeldregister KFR (Fig. 1) über einen Satz von Invertierern an den Addierer 15 anzuschließen, um Bits mit dem Wert »1« in dem Kennschlüssel in dem Kennschlüsselregister KR an jeder Bitstelle außerhalb des Kennschlüsselfeldes jedesmal dann einzufügen, wenn der Addierer betätigt wird. Ein Fehlvergleich kann hinsichtlich dieser Bits mit dem Wert »1« nicht auftreten, aber ihre Einfügung stellt sicher, daß Lücken in dem Kennschlüsselfeld die sequentielle Suche nicht beeinflussen und wenn die Suche beendet ist, wird der Übertrag von der Spitze des Kennschlüsselfeldes unmittelbar an die Spitze des Kenn- to schlüsselregislers übertragen, anstatt In einem Bereich zwischen diesen beiden Stellen verlorenzugehen.
Wenn sich das Kennschiüsselfeld über beispielsweise zwei Worte erstreckt, so kann dies ohne Schwierigkeiten ebenfalls verarbeitet werden. Die Suche ist bis zum « Erfolg auf das erste Wort beschränkt und wird sodann in das zweite Wort übertragen, bis sie dort ebenfalls erfolgreich ist. Ein Bit mit dem Wert »1« wird sodann zu dem unteren Ende des zweiten Wortes addiert und es wird die Suche hinsichtlich des ersten Wortes erneut begonnen. Immer wenn die Suche bezüglich des zweien Wortes schließlich einen Überlauf ergibt, wird ein Bit mit dem Wert »1« zu dem unteren Ende des ersten Wortes hinzuaddiert und die Suche wird erneut gestartet.
Es sei an dieser Stelle selbstverständlich darauf hingewiesen, daß dieses sequentielle Suchverfahren auch durch die Software ausgeführt werden kann. In diesem Fall verläuft der Suchprozeß etwas langsamer, gestattet jedoch eine größere Flexibilität beispielsweise bei der Behandlung von Bits des Kennschlüsselfeldes, wenn diese in einer anderen als in der natürlichen Reihenfolge angeordnet sind, wie dies z. B. für bestimmte Arten von alphanumerischen Codes der Fall ist.
Soweit der Speicher hinsichtlich der Fig. 3 und 4 bisher beschrieben wurde, weist er eine vollständige serielle Arbeitsweise auf. Dies ist selbstverständlich von wesentlicher Bedeutung hinsichtlich des vorliegenden Types des Suchverfahrens, aber hinsichtlich des Zugriffes auf die gespeicherte Information nach Durchführung einer Suche sei hier vemerkt, daß es einfach ist, eine einzige parallele Datenschiene vorzusehen, über welche Daten in die ausgewählte Speicherzelle hineingeschrieben bzw. Daten aus dem Schieberegister innerhalb der ausgewählten Speicherzelle herausgelesen werden können. In diesem Fall steuert die Leitung 65 (Fig. 4B) die Übertragung der gespeicherten Information auf und von der Dalenschiene 24 in genau der gleichen Weise wie zuvor beschrieben, aber die Übertragung benötigt nur eine einzige Bitperiode anstelle einer vollen Wortperiode. Dies führt zu einer bedeutenden Zunahme der Speicherzellengröße, da das Anschalten an die Datenschiene für jedes getrennte Bit des Schieberegisters erforderlich ist. Die Arbeitsgeschwindigkeit des Speichers wird jedoch wesentlich erhöht. Die erforderliche Zeit zum Lesen oder Schreiben eines Datensatzes, nachdem seine Speicherzelle bestimmt» ist, ist gewöhnlich vernachlässigbar.
Es sei darauf verwiesen, daß durch den Zusatz von relativ wenigen Sonderschaltkreisen Speicherzellenfehler ohne schädliche Folgen toleriert werden können. Hierzu sind Einrichtungen erforderlich, um die fehlerhaften Speicherzellen zu bestimmen, d. h. Speicherzellen, in welchen die gespeicherte Information entweder nicht in geeigneter Weise verschoben wird oder in denen die Logikschaitkreise Fehler aufweisen. Ein Flip-Flop innerhalb der Speicherzelle kann die Erkennung eines Fehlers anzeigen. Gattereinrichtungen können vorgesehen werden, um die fehlerhafte Speicherzelle an der Abgabe von Signalen zu hindern und einer permanent gefüllte Speicherzelle vorzutäuschen. Ferner können Gatterelnrichlungen vorgesehen sein, um die Vergleichsketten-Ein- und Ausgangsleilungen direkt miteinander zu verbinden bzw. im Fall der Speicherzellen gemäß den Fig. 4A und 4B die Verschiebcleilungen 9 1 und 92 direkt miteinander zu verbinden.
Hierzu 4 Blatt Zeichnungen

Claims (7)

IO 15 20 Patentansprüche:
1. Assoziativspeicher mit mehreren über einen Bus an einen gemeinsamen Steuerschaltkreis angeschlossenen Speicherzellen, wcbei jede Speicherzelle eine Speicherschaltung und einen von der Speicherschaltung und von dem Steuerschaltkreis mit einem gesuchten Kennschlüssel beaufschlagten Vergleichsschaltkreis aufweist, dadurch gekennzeichnet, daß jede Zelle (20-1, 20-2, ....20-/I) ein einziges Wort speichert, wobei die Speicherschaltung durch ein Schieberegister (30) vorgegeben 1st, daß jede Zelle ein einziges von dem Vergleichsschaltkreis (31,32) angesteuertes Vergleichs-Fllp-Flop (33) aufweist und daß eine von dem Vergleichs-Flip-Flop (33) gesteuerte Gnttereinrichtung (34) in jeder Zelle angeordnet ist, die die Datenübertragung zwischen dem Schieberegister (30) und dem Steuerschaltkreis (10) beim zweiten Umlauf des Inhalts des Schieberegisters steuert.
2. Assoziativspeicher nach Anspruch 1. dadurch gekennzeichnet, daß der Vergleichsschaltkreis eine Gattereinrichtung (32) aufweist, die von dem Kennschlüssel (KF) des Steuerschaltkreises (10) freigegeben wird und das Vergleichs-Flip-Flop (33) beaufschlagt.
3. Assoziativspeicher nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jede Zelle ein Voll/Leer-Flip-Flop (37) aufweist, daß Schaltungsmittel (28, 39) angeordnet sind, um dieses in den Zustand »Voll« zu setzen, wenn Daten in die Zelle eingeschrieben werden und daß Schaltungsmittel (25,38) angeordnet sind, um dieses in den Zustand »Leer« zu setzen, wenn Daten aus der Zelle ausgelesen werden.
4. Assoziativspeicher nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, daß jede Zelle ein Zyklussleuer-Fiip-Fiop (58) aufweist, daß Schaltungsmittel (16, 26) angeordnet sind, um dieses beim Suchen in den einen Zustand zu setzen, daß Schaltungsmittel (71. 72, 33) angeordnet sind, um dieses in Abhängigkeit von dem ersten Bit des Schieberegisters (30) sofort In den zweiten Zustand zu setzen und daß Schaltungsmittel (59) angeordnet sind, welche den Umlauf der Information In dem Schieberegister (3(1) in Abhängigkeit von dem Zustand des Zykulssteuer-Flip-Flops (58) steuern.
5. Assoziativspeicher nach einem der vorangehenden Ansprüche, gekennzeichnet durch eine Verschiebekette (54, 91. 92), welche alle Zellen miteinander in Reihe schaltet und durch ein von dem Steuerschaltkreis (10) geliefertes Verschiebesignal (90a, 906), welches die Schaltzustände der Vergleich-Fllp-Flops (33) aller Zellen In der Reihenschaltung jeweils eine Zelle weiterschiebt.
6. Assoziativspeicher nach einem der vorangehenden Ansprüche, gekennzeichnet durch eine die Zellen In Reihe schaltende Verglelchskette (18, 53, 40, 41), wobei das Vergleichs-Flip-Flop (33) jeder Zelle an die Vergleichskette angeschlossen ist, um Im gesetzten Zustand die Kette an der Anschlußstelle zu aktivieren.
7. Assoziativspeicher nach Anspruch 6. dadurch gekennzeichnet, daU in jeder Zelle die Vergleichskette (18. 53, 40, 41) über Schaltungsmittel (83, 65) an eine Gattereinrichtung (66) angeschlossen ist. um diese zu sperren, wenn die Verglelchskette In der Zelle aktiviert ist.
30
DE2519195A 1974-05-09 1975-04-30 Assoziativspeicher Expired DE2519195C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2043674A GB1468753A (en) 1974-05-09 1974-05-09 Associative memory

Publications (2)

Publication Number Publication Date
DE2519195A1 DE2519195A1 (de) 1975-11-27
DE2519195C2 true DE2519195C2 (de) 1984-04-12

Family

ID=10145919

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2519195A Expired DE2519195C2 (de) 1974-05-09 1975-04-30 Assoziativspeicher

Country Status (5)

Country Link
US (1) US3984821A (de)
JP (1) JPS5936356B2 (de)
DE (1) DE2519195C2 (de)
FR (1) FR2270658B1 (de)
GB (1) GB1468753A (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS531426A (en) * 1976-06-28 1978-01-09 Toshiba Corp Memory unit
DE3344006A1 (de) * 1983-12-06 1985-06-13 Telefunken Fernseh Und Rundfunk Gmbh, 3000 Hannover Bitvergleichsschaltung
FR2564619B1 (fr) * 1984-05-21 1986-09-26 Enertec Dispositif elementaire de traitement de donnees
GB9406747D0 (en) * 1994-04-06 1994-05-25 Abdullah Ayad A Data base searching system
US6708250B2 (en) * 2001-09-28 2004-03-16 Mosaid Technologies Incorporated Circuit and method for performing variable width searches in a content addressable memory
US6947301B2 (en) * 2002-12-24 2005-09-20 Micron Technology, Inc. Content addressable memory (CAM) device employing a recirculating shift register for data storage
US7003624B2 (en) * 2002-12-30 2006-02-21 Micron Technology, Inc. Method and apparatus for detecting “almost match” in a CAM

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3508220A (en) * 1967-07-31 1970-04-21 Burroughs Corp Fast access content-organized destructive readout memory
US3648254A (en) * 1969-12-31 1972-03-07 Ibm High-speed associative memory
JPS534775B2 (de) * 1971-08-30 1978-02-21
US3742466A (en) * 1971-11-24 1973-06-26 Honeywell Inf Systems Memory system for receiving and transmitting information over a plurality of communication lines
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode

Also Published As

Publication number Publication date
FR2270658A1 (de) 1975-12-05
GB1468753A (en) 1977-03-30
JPS50156328A (de) 1975-12-17
JPS5936356B2 (ja) 1984-09-03
US3984821A (en) 1976-10-05
FR2270658B1 (de) 1981-07-24
DE2519195A1 (de) 1975-11-27

Similar Documents

Publication Publication Date Title
DE2523414C3 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
DE2554442C2 (de) Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen
DE2656546C2 (de) Datenblock-Austauschanordnung
DE69217761T2 (de) Lese- und Schreibschaltung für einen Speicher
DE4206286C2 (de) Speicherzugriffssystem und Verfahren zum Ausgeben eines digitalen Datenstromes
DE2331589A1 (de) Datenverarbeitungsanordnung
DE2928488A1 (de) Speicher-subsystem
DE2519381A1 (de) Datenverarbeitungssystem
DE2432608C3 (de) Speicheranordnung fur eine Datenverarbeitungseinrichtung
DE3327379A1 (de) Einrichtung und verfahren zum umordnen von datensaetzen
DE3148099C2 (de) Anordnung zum Erkennen einer Digitalfolge
DE2854782C2 (de) Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher
DE2721599C2 (de) Schaltungsanordnung zur Verhinderung der Ausgabe von Datenworten aus einer EDV-Anlage ohne Sicherheitsverifizierung
DE2919440A1 (de) Schaltungsanordnung fuer einen wahlweise modifizierbaren satzspeicher fuer eine schreibmaschine
DE1271191B (de) Einrichtung zur UEbertragung von Informationseinheiten in die Binaerstellen eines Umlaufspeichers
DE2519195C2 (de) Assoziativspeicher
DE1816029A1 (de) Ausgabeschaltung von Zeichen unter Vorfuehrung auf einer Kathodenstrahlroehre
DE1524200B2 (de) Zeitgabesteuerschaltung fuer einen elektronischen ziffernrechner
DE2136270A1 (de) Verfahren und Vergleicher zum Vergleich zweier Binärzahlen
DE1474351C3 (de) Datenspeicher
DE2321200B2 (de) Schaltungsanordnung zur Durchführung logischer Verknüpfungen
DE1774607C3 (de) Speicheranordnung mit einem informationszerstörend lesbaren Speicher
DE1223177B (de) Elektronischer Digitalrechner mit Schaltung fuer die Errechnung der Quadratwurzel aus einer Binaerzahl
DE1957600C3 (de)
DE2459476A1 (de) Schaltungsanordnung fuer nichtzyklische datenpermutationen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee