DE2519195C2 - Assoziativspeicher - Google Patents
AssoziativspeicherInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
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.
001010
001101
010110.
Der Vergleich beginnt mit dem Kennschlüssel
000000
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
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
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)
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
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)
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)
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 |
-
1974
- 1974-05-09 GB GB2043674A patent/GB1468753A/en not_active Expired
-
1975
- 1975-04-24 US US05/571,024 patent/US3984821A/en not_active Expired - Lifetime
- 1975-04-30 DE DE2519195A patent/DE2519195C2/de not_active Expired
- 1975-05-07 FR FR7514474A patent/FR2270658B1/fr not_active Expired
- 1975-05-08 JP JP50055319A patent/JPS5936356B2/ja not_active Expired
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 |