DE2219157A1 - Rechenverfahren mit asoziativem Speicher - Google Patents
Rechenverfahren mit asoziativem SpeicherInfo
- Publication number
- DE2219157A1 DE2219157A1 DE19722219157 DE2219157A DE2219157A1 DE 2219157 A1 DE2219157 A1 DE 2219157A1 DE 19722219157 DE19722219157 DE 19722219157 DE 2219157 A DE2219157 A DE 2219157A DE 2219157 A1 DE2219157 A1 DE 2219157A1
- Authority
- DE
- Germany
- Prior art keywords
- bit
- data
- field
- word
- comparand
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Devices For Executing Special Programs (AREA)
Description
BERLIN .j
1 BERLIN 33 (GRUNEWALD), den HERBERTSTRASSE 22
A-2179-G-E GOODYEAR AEROSPACE CORPORATION, Akron/Qhio - USA
Ein&blicher assoziativer Bi-Serien-Speicher (CAM) ist
eine digitale Datenspe icher einrichtung, bei der der Inhalt
aller gespeicherten Datenworte gleichzeitig mit einem einzelnen Suchargument oder "Komparanden" verglichen
wird. Die Bit eines Datenfeldes werden nacheinander geprüft, aber für jede Bit-Position werden alle gespeicherten
Datenworte parallel geprüft.
Der hier beschriebene assoziative Mehrfach-Komparandenopeicher
(MCAM) ist eine Erweiterung dieses CAM-Gedankens, mit dem mehr als ein !Comparand zur selben Zeit
verwendet werden kann. Der Yergleichsvorgang wird in mehreren Schritten für jede geprüfte Bit-Position aufgebrochen,
die mehr Zeit benötigt, als die Suche eines einzigen Komparanden erfordern würde. Diese zusätzliche Zeit
ist jedoch eine Konstante für jede einzelne Art der Suche, ohne Rücksicht auf die Zahl der Komparanden. Wenn
c Komparanden zum Suchen eines Datenfeldes mit b Bit verwendet werden sollen, würde die von einem CAM benötigte
Zeit ijroportional c.b sein. Die entsprechende Zeit wird
von einem MCAM bei n„b benötigt, worin c eine von der
Komplexität der durchgeführten Suche und der verwendeten Geräteausrüstung bestimmte Konstante ist* (Bei einer
_p„
209847/1175
einfachen logischen Suche könnte η bis zu 4- betragen.
Ein vernünftiger Wert von η für mehrere brauchbare Suchaktionen könnte 1o sein.) Der MCÄM ist schneller als der
GAM, wenn auch die Zahl der Komparanden (c) ,größer als η ist. Der Wert von η ist am kleinsten, wenn eine einzige
einfache Suchaktion bei allen Komparanden erfolgt. Wenn eine komplexere Suche verwendet wird oder wenn eine
Mischung mehrerer verschiedener' Suchaktionen gleichzeitig durchgeführt wird, ist η notwendigerweise größer.
Entsprechend der Geräte ausrüstung können der !Comparand
und die Datenworte in vollständig getrennten Speicherfeldern oder in besonderen Teilen eines gemeinsamen Feldes
gespeichert werden. Zur verallgemeinerten Diskussion wird ein gemeinsames Feld angenommen. Jedes Datenwort muß
mit einem Satz von Etikett-(Kennbegriff-)Bit versehen sein, von denen eines jedem Komparanden entspricht. Das
Anpaß-Nichtanpaß-Ergebnis eines jeden Suchvergleichs ist
in diesen Etikett-Bit am Schluß der Suchaktion enthalten. (Die Diskussion geht davon aus, daß jedes Komparandenwort
mit einem identischen Satz solcher Etikett-Bit versehen ist, obwohl manche der zu beschreibenden Operationen
ohne diese ausgeführt werden können.)
Die Arbeitsgeschwindigkeit wird durch die Gerätekapazitäten zum Einschreiben in diese Etikett-Bit beträchtlich
beeinflußt. Diese müssen wiederholt eingeschrieben werden und bestimmte Sätze von Etiketten müssen parallel
in bestimmte Sätze von Worten gleichzeitig eingeschrieben werden. Außerdem muß dieses sogenannte "Parallel-Multi-Schreiben"
verschiedentlich die Form eines "UND-zum Speicher"- oder ein "ODER-zum-Speicher"-Vorgangs
annehmen. Im allgemeinen können diese Erfordernisse durch "übereinstimmende Strom"-Schemen auftreten, wenn
sie zum Antrieb mehr als einer Spalte und mehr als eine Reihe parallel enthalten.
209847/1176 .
Bs ist Aufgabe der Erfindung, ein Verfahren zum. Durchführen
von inhalt-adressierten Suchaktionen zwischen zwei umfangreichen Datenkörpern anzugeben. Dieses Verfahren
soll von der Zahl der Worte in jedem Datenkörper unabhängig "und nur der Anzahl der Bit pro'Datenwort
proportional sein.
Zum besseren Verständnis der !Erfindung dienen die Zeichnungen.
In diesen ist:
Figur 1 ein Blockdiagramm eines Ausführungsbeispiels eines assoziativen Prozessors, der die Suchverfahren
der Erfindung durchführen kann·
Figur 2 ein Blockdiagramm eines anderen Ausführungsbeispiels eines assoziativen Prozessors zum Durchführen
der Suchverfahren der Erfindung; und
Figur 3 ein Diagramm der Impuls- und Zeitverläufe. A. Die Theorie
Da alle Suchvorgänge bitmäßig durchgeführt werden, ist jeder einzelne Vergleich (eines Komparanden oder eines
Datenworts an einer Bit-Stellung in der Folge) einfach ein Vergleich zwischen zwei Bit. Da jedes Bit nur zwei
verschiedene Werte besitzen kann, gibt es nur die vier möglichen Fälle:
(1) 00 - Sowohl Komparanden als auch Datenbit sind
Null;
(2) 01 - Das Komparandenbit ist Null, das Datenbit
Eins;
(3) 10 - das Komparandenbit ist Eins, das Datenbit
Null;
(4) 11 - Sowohl Komparanderi- als auch Datenbit
sind iiJinSo
2098A7/ 1175
Wenn alle Komparanden-Datenpaare geprüft sind, muß Jedes in einen der vorstehenden Fälle fallen. Die diesen Paaren
entsprechenden Etiketten-Bit sind in vier Kategorien "unterteilt". Wenn jede Kategorie von Etiketten-Bit irgendwie
ausgewählt ist, während eine logische Operation entsprechend dem jeweiligen Vergleichsfall an allen diesen
ausgewählten Etiketten gleichzeitig ausgeführt worden ist, dann könnte ein vollständiger Suchvorgang in vier
Schritten pro Bit-Position ausgeführt werden.
Bei einem tatsächlichen Suchvorgang muß jedoch mindestens einer der vier Fälle die logische "Null"-Operation spezifizieren,
d„h. "stets nichts tun". Für diesen Fall ist es somit ebenfalls nicht notwendig, die entsprechenden
Etiketten-Bit zu wählen. Die meisten, aber nicht alle Suchvorgänge behandeln zwei oder auch drei Fälle auf diese
Weise. Es ist zu erkennen, daß alle vier Fälle tatsächlich nur dann durchgeführt werden müssen, wenn eine
Mischung aus verschiedenen Suchvorgängen zusammen durchgeführt wird, die kollektiv alle vier Fälle erfordern.
B. Allgemeiner Algorithmus
Alle Such-Algorithmen, die durch diese Technik ausgerüstet
werden können, können wie folgt verallgemeinert werden (spezifische Aspekte eines jeden Suchvorgangs sind
in den Tabellen I und II wiedergegeben):
(1) Jeder einzelne Vergleich findet zwischen einem Komparanden-Bit
und einem Daten-Bit statt. Beide Polder enthalten dieselbe Bitzahl.
(2) Ein Maskenfeld von derselben Länge wie die Datenfelder kann dem Komparanden oder dem Datenwort oder beiden
zugeordnet werden oder auch nicht. Eine vorgesehene Maske dient bei jeder Bit-Position zum Bestimmen, ob ein Vergleich
stattfindet. Ein Null-Maskeη-Bit bewirkt in jedem
'2 09847/1175
-5- 2219T57
Komparanden oder in Jeder Datenmaske, daß der entsprechende
Bit-Vergleich, für dieses Paar von Worten ignoriert wirdo
(3) Ein individuelles Etiketten-Bit wird jedem Vergleich·
zugeordnet. Alle Etiketten, die einem gegebenen Wort zu*-
geordnet sind, werden als in einem Teil des Wortes "befindlich
"betrachtet und alle Etiketten, die einem einzelnen Komparanden zugeordnet sind, "befinden sich in einer
spezifischen entsprechenden Bit-Position für jedes Wort (Figuren 1 und 2 zeigen diese Speicheranordnung),
(4) Wenn eine Mischung von Suchoperationen'zugelassen
ist, muß ein Kodefeld jedem Komparanden zugeordnet werden. Der Kode in diesem Feld gibt an, welche Operation mit jedem
entsprechenden Komparandenwort verwendet wird.
(5) Bevor man Vergleiche macht, können die Werte der Etiketten-Bit
entweder zu Eins oder zu Null gestartet werden oder auch nicht. (Für ein nicht gestartetes Etikett
werden die Ergebnisse eines vorhergehenden Suchvorganges, wie durch den alten Inhalt des Etiketts dargestellt,
an den Ergebnissen des jetzt unterwegs befindlichen Suchvorgangs wirken.
(G) Während des sich ergebenden Suchvorganges werden die entsprechenden Bit~Positionen aller Datenworte, Komparandenworte
(und Maskenfelder, wenn solche benutzt werden) angepaßt, das geringer wertige dem ersten geringer
wertigen, und gelangen in der Folge zu den höher wertigen oder höchst wertigen. Alle nachfolgenden Schritte
legen sich getrennt an jede dieser Bit-Positionen. Der
in den Etiketten-Bit verbleibende Wert bildet die Ergebnisse des gesamten Suchvorganges»
(7) iJie otrom-Bit-Position aller Daten- und Komparandenworte
wird geprüft. Bei den praktischsten, Ausrüstungen würde dies das Lesen des Wertes dieser Bit-Position in '
eine.n aktiven Speicher, der jedem Speiciierwort angeordnet
209847/117S
ist, enthalten.
(8) Von den vier Komparanden-Datenpaarwerten werden einige, die keine vorzunehmende Wirkung erfordern, weiterhin
ignoriert. (Der Pail, in dem sich eine Mischung von Operationen im Prozeß befindet, wenn eine der Operationen die
Wirkung für einen einzelnen Fall erfordert, muß behandelt werden und darf nicht ignoriert: werden, auch wenn andere"
Operationen davon keinen Gebrauch machen.) Die übrigen werden (nacheinander) wie folgt behandelt:
(a) Für Jeden Fall (x, y), der eine Behandlung erfordert, "wählen" alle Datenworte, für die das Stromdatenbit
» y und für welche das Strommaskenbit * 1 ist
(wenn es gebraucht wird).
(K) Gleichzeitig wählen alle Komparandenworte, für die das Strombit - χ ist und für welche das Strommaskenbit
- 1 ist (wenn es gebraucht wird).
(c) Wenn f (x, y) der logische Wert (Eins oder Null) ist, der durch den Fall (x, y) gefordert wird
für (x, y) = (0,0), (0,1), (1,0) oder (1,1) , dann versuchen alle gewählten Etiketten-Bit den Wert
f(x, y) anzunehmen. Ein Etiketten-Bit ist "gewählt", nur wenn sowohl die Wort- als auch die Bit-Position,
die es einnimmt, als in den Schritten (a) und (b) befindlich gewählt werden. Alle nicht gewählten Etiketten-Bit
bleiben in diesem Fall unverändert.
(9) Nachdem alle verlangten Fälle für eine Daten~Bit-Fosition
behandelt worden sind, wird dieser Satz von Fällen für die nächst höher wertige Bit-Position wiederholt.
(10) Nachdem alle Bit-Positionen im Datenfeld so behandelt
worden sind, ist der ,/ert, der in jedem Etiketten-Bit
verbleibt, das endgültige Ergebnis des Vergleichs, der ari den Daten-Koniparar.-ienpaar durchgeführt ist, der
diesen:·. Etiketten-Bit wjut^.xi.lien.i;
20S 8 4 7/117 S
(11) Die Gesamtsumme dieser Etiketten-Bit-Werte ist das
endgültige Ergebnis des mehrfachen Komparandensuchens.
0. Spezifisch^ Operationen
Jede "besondere Suchoperation wird durch eine andere Kombination
von fünf logischen Funktionen bestimmt, je eine für jeden der vier Fälle (00), (01), (10) und (11) plus
eine für den Startschritt vor dem ersten Vergleich,. Jede dieser logischen Funktionen kann einen der drei Werte
annehmen, nämlich:
(1) "Null", (2) "Eins" oder (3) "Hull". "Eins" und "Null" sind logische Standardwerte - äquivalent den V/erten
"Eichtig" bzw. "Falsch". "Null" besitzt die Bedeutung "stets nichts tun", was die logische Y/irkung besitzt, daß
jedes beeinflußte Etiketten-Bit seinen eigenen vorhergehenden y/ert hält. (Ein vierter möglicher Funktionswert
"Komplement" könnte für komplexere Suchvorgänge benutzt werden, wie er jetzt entfremdet ist.)
Drei Yiierte für jede der fünf Funktionen geben einen Gesamtwert
von ~y = 24-3 möglichen Kombinationen. Viele dieser
stellen keine brauchbaren Operationen dar, da:
(1) nicht alle der vier Funktionen können "Null" sein
oder es finden auch keine tatsächlichen Vergleiche statt.
(2) Manche Funktion (mindestens eine) muß "Null" sein, wenn die Suche Felder enthalten soll, die länger als
ein Bit sind.
(3) Jenn die Startfunktion eine Eins oder eine Null
ist, dann muß mindestens eine der vier Funktionen den entgegengesetzten Wert (Null bzw* JJins) aufweiseno
Diese drei jirfordc-irnisse eliminieren bereits 7V von den
2098A7/117S
möglichen Kombinationen und lassen 164 brauchbare Suchvorgänge übrig. Diese können.in zwei Kategorien unterteilt
werden:
(1) die erste Kategorie enthält 1o8 Suchvorgänge, die sowohl Eins als auch Mull unter den vier Funktionen
enthalten. Sie sprechen somit auf den genauen Befehl an, in dem die Bit-Positionen geprüft werden. Da dies
eine Charakteristik aller arithmetischer Operationen ist, werden diese möglichen Suchorgänge als "arithmetisch"
bezeichnet, auch wenn manche von ihnen ausfallen, um eine geringe Beziehung zu einer bekannten
arithmetischen Funktion zu haben.
(2) Die restlichen 56 haben nur Einsen oder Nullen
unter den vier Funktionen, aber nicht beide„ Die Suchergebnisse
sind durch das Ordnen der Bit vollkommen unbeeinflußt. Alle diese möglichen Suchvorgänge werden
als "logisch" bezeichnet, wenn auch einige von ihnen arithmetische Bedeutung haben können. Von diesen können
32 als einzelne Komparandensuchvorgange als eine Form für eine andere beschrieben werden, so daß nur
24 wirkliche Mehrfachkomparandensuchvorgänge übrig bleiben.
Alle 24 stellen brauchbare logische Suchvorgänge dar und sind in der Tabelle I aufgeführt. In der Tabelle wird
Null als "0", Eins als »1», Kein durch "N" dargestellt.
Jede Tabelleneintragung stellt zwei verschiedene Suchvorgänge dar, wie in der Fußnote angegeben ist.
•209847/ 1175
Tabelle I - Logische Suchvorgänge Logische Funktionen für .
Komparand/Daten-ffall Startwert
00 01 10 11 +) Beschreibung des Suchvor-
.
ganges
N N N 1 "O1 Beide haben eine lins in
einer Bit-Position.
N IT IT 0 1 Kein Schnitt, keine ge-
gemeinsamen Bit
N IT 0 Ή - 1 Alle Komparanden-Einsen
sind der Daten-Null angepaßt.
N N 1 N 0 Manche Komparanden-Eins
paßt zur Daten-Null.
N 0 N IT 1 Alle Daten-Einsen passen ■
zur Komparanden-Eins.
1 N N IT 0 Beide haben eine. Null in
einer.Bit-Position.
ONNN 1 Die Komplemente trennen,
d.h. keine gemeinsamen Null-Bit.
N 0 0 N 1 Genaues Anpassen oder
Gleichmachen* dofcu jedes
Bit ist gleich.
N 1 1 NO Fehlanpassung oder Wichtgleich,
d.h. Bit wird nicht gleich.
1 N N 1 1 Ein Bit ist gleich.
0 N N 0 ' 1 Genaues Komplement, d.h.
jedes Bit ist ungleich*
+) Alle obigen Suchvorgänge können durch Indern der Startwertfunktion
"N" (Null) abgeändert werden. Dadurch beeinflussen die vorhergehenden Suchergebnisse das Ergebnis
des vorliegenden Suchvorganges in der folgenden V/eise; Wenn N durch eine 0 ersetzt wird, dann sind die
beiden Suchvorgänge in Ödervorgänge geändert. Wenn N durch eine 1 ersetzt wird, dann sind die beiden Suchvorgänge
in Und-Yorgänge geändert.
209847/1175
1ο -
Die Tabelle II zeigt eine kleine Probe der 1o8 möglichen "arithmetischen" Suchvorgänge. Die meisten nicht
dargestellten können nicht in einfacher Weise in arithmetischen Ausdrücken umschrieben werden.
Tabelle II - Arithmetische Suchvorgänge Logische Funktionen für
Komparanden/Daten-IFall Start Beschreibung des
0110 11 Suchvorganges
N | 0 | 1 | Ή |
N | 0 | 1 | N |
IT | 1 | 0 | N |
N | 1 | 0 | N |
0 Daten kleiner als Komparand.
1 Daten kleiner als Komparand oder gleich.
0 Daten größer als !Comparand,
1 Daten größer als Komparand oder gleich.
ö N N 1 O überflüssige Prüfung (wenn
zwei Felder addiert werden).
1 N N 0 1 Keine Prüfung (wenn zwei
Felder addiert werden).
IT 0 0 1 1 Die höchstwertigen Eins-Bit
sind gleich (alle Nullen auch).
IT 0 0 1 0 Die höchstwertigen Eins-Bit
sind gleich (alle Nullen nicht).
1 0 0 N 0 Die höchstwertigen Null-Bit
sind gleich (alle Einsen nicht).
1 O O N 1 Die höchstwertigen Null-Bit
sind gleich (alle Einsen auch).
(Die Startfunktion kann auch in "N" geändert werden, aber in diesem Fall können die vorhergehenden Suchergebnisse
nur eine kleine Abweichung in der Operation des gegenwärtigen Suchvorganges bewirken.)
-11-
209847/1175 "
Die Organisation eines assoziativen Mehrfach-Komparanden-Speiciaers
(Figur 1) zeigt getrennte Speicherfeider für
Komparanden. und den Rest der Daten. Diese Anordnung ermöglicht eine vollständige Unabhängigkeit der an die beiden
Wortkreissätze gelegten S teuer funktionen. Aber sie ist etwas unflexibel in bezug auf die Zahl der verwendeten
Komparanden (ein unbenutztes Komparandenwort kann beispielsweise nicht als Datum benutzt werden).
Die Daten könnten auch in einem besonderen Speicher gespeichert .werden, der mit denselben Wort-Lese-/Schreib-/
Erhaltungs-Schaltungen als Etiketten-Bit verbunden ist. Die Daten in diesem besonderen Speicher wurden zu diesen
Schaltungen in wortparalleler, Bit-Serien-leise ausgelesen werden. Die Verwendung eines besonderen Datenspeichers
könnte die Ausrüstungskosten in den Fällen verringern, in denen die Menge der Daten sehr umfangreich ist.
Diese Anordnung ist in Figur 1 nicht gezeigt, ihre Anwendung ist aber dem Fachmann geläufig.
Figur 2 zeigt eine andere Organisation, bei der alle Daten, Komparand oder anderes, ein großes gemeinsames Speicherfeld
einnehmen. Die Komparandenworte sind mit Spezialausgingen
versehen, von denen jeder mit einem der Bit-Wahl-Treiber im ütiketten-Bit-Feld verbunden ist.
Bei der einfachsten Maschine werden alle vVortschaltungen,
Komparand oder anderes, von demselben Satz einer ßuchsteuer- und Taktgeberlogik gesteuert. Die Bit-Wahl
liegt in ähnlicher Weise an beiden gleich. Ein unbenutztes Komparandenwort kann somit als ein Nicht-K-omparand
für eine bessere Speicherzuordnung benutzt werden»
Für einige der meisten brauchbaren Suchvorgänge (z.B. genaue Anpassung) müssen die Komparandenworte von den
-12- BAD ORtGINAL
209847/V175
anderen nicht unterschieden werden, auch nicht durch gespeicherte Kennzeichenbit. Somit kann jeder Komparand
an beiden Kapazitäten teilhaben, wobei der Satz von Komparanden einen richtigen Untersatz des Satzes von
Datenworten macht. In diesem Fall werden die Komparanden gegenseitig miteinander sowie auch mit dem größeren Satz
von Nicht-Komparanden verglichene Einige der komplexeren Suchvorgänge können aber, während sie diese "reflexive"
Suche nicht zulassen, auch eine zeitliche Erschwerung beim unterschiedlichen Behandeln der beiden Speicherteile
übernehmen, wenn nicht einige besondere Steuertore vorgesehen sind, die den von der vollständig getrennten
Anordnung benötigten ähnlich sind.
Im Betrieb wird jeder Pail eines Daten-Komparandenvergleichs
wie folgt behandelt:
(1) Ein gewähltes Bit eines jeden iortes wird in die
Wortschaltung aller Komparanden und Nicht-Komparanden ausgelesen.
(2) Alle Wort schaltungen·, die die für diesen Fall geeigneten
Datenwerte enthalten, werden zum Schreiben ausgewählte
(3) Jede Komparanden-Wort-Schaltung, die den für diesen
Fall geeigneten' Komparandenwert enthält, wird zum Betreiben des Spezialausganges gewählt, der wiederum
den entsprechenden Bit-Wahl-Treib er im Etiketten-B'it-FeId
erregte
(4) Der 7/ert der logischen Funktion +), die durch diesen
Fall notwendig ist, wird in jedes Etiketten-Bit geschrieben, das aus beiden Richtungen ausgewählt ist,
doh. ein Etiketten-Bit wird geschrieben, wenn und nur wenn es zu einem im Schritt (2) gewählten Wort gehört
und es sich in einer im Schritt (3) gewählten Bit-Position befindet«
209847/1 175
Zur weiteren Erläuterung des Vorganges gilt die folgende Beschreibung für den Fall, in dem die Etiketten-Bit von
einem assoziativen Prozessor mit plattierten Drähten geliefert werden, wie es in der deutschen -Patentschrift'
2 o64 835 (Anmeldung P 2o6 4-8 35« 5 vom 22. Dezember
19?o) beschrieben ist. Bs ist aber offensichtlich, daß
auch eine andere Ausrüstung verwendet werden kanno
Die gewünschte·Operation erfolgt durch die richtige
Übereinstimmung der Impulse an den Wort- und Bit-Leitungen. Für die Wortleitungen müssen vier· Impulszeiten
vorgesehen werden. Während nur einer oder zweier Wortimpulszeiten treten einzelne Bit-rlmpulse auf. In das
Speicherelement mit plattierten Drähten werden die Daten nur bei gleichzeitigem Auftreten eines Wort- und eines
Bit-Impulses geschrieben. Die zeitlichen Positionen der
vier Wortimpulszeiten ergeben sich aus Figur 3» Das Abkommen,
nach Figur 3 besteht darin, daß ein positiver Wortstrom eine logische Bins schreibt, wenn ein Bit-Strom
vorliegt. Bin negativer Wortstrom schreibt in ähnlicher Weise eine logische Null. Die gewünschte Operation
des assoziativen Mehrfach-Komparanden-Speichers
wird dann durch Bit-Impulse an der richtigen Wortstromzeit gemäß dem Wert der Komparanden- und Daten-Bit und
der Art des durchgeführten Suchvorganges erhalten. Diese
Operation wird in Tabelle III für mehrere der in den Tabellen I und II aufgeführten Suchvorgänge beschrieben:
BAD ORIGINAL
-14-
209847/1175
Zeitliche | Position für | Bit-Impulse | Genaue Anpassung |
Komparand - O |
Komparand » 1 |
Startwert Bes^S4Is | Satz Zwischenabschnitt |
4 | 2 | 1 & 3 | Fehlanpassung |
Keine | . 3 | 2 & 4 | Daten weniger als Komparand |
3 | 2 & 4 - | Daten weniger als Komparand oder gleich |
|
4- | 1 | 2 & 4 | Daten größer als Komparand |
4 | . 1 | 1 & 3 | Daten größer als Komparand oder gleich |
3 | 2 | 2 & 4 | |
3 | ■ 2 | 1 & 3 |
Figur 1 zeigt ein Blockdiagramm eines Ausführungsbeispiels eines assoziativen Prozessors, der die Suchverfahren nach
der Erfindung durchführen kann. Dieser Prozessor enthält zwei Speichermatrizen 1o und 12 zum Speichern der Komparanden
bzw. Datenfelder. Jede Matrix ist ein digitaler Speicher, der V/orte als eine Reihe von Bit speichern
kann. Die Matrizen können beispielsweise Speichereinrichtungen mit plattierten Drähten sein*· Die Datenspeichermatrix
12 enthält ein Etiketten-Bit-Gebiet zum Speichern der jedem in der Matrix gespeicherten Wort zugeordneten
Etiketten-Bit. Jeder Matrix 1o oder 12 sind Bit-Wahl-Treiber 14 bzw. 16 und Wort-Lese-Schreib-Erhaltungsschaltungen
18 bzw. 2o zugeordnet. Die Operation des assoziativen Prozessors wird von der Suchsteuer- und Taktlogik
22 gesteuert, die wiederum die Schaltungen 18 und 2o und über die Bit-Adressenzähler 24 und 28 und die
Adressendekoder 26 und 3o einige der Bit-Wahl-Treiber 14
und 16 steuert. Die Suchsteuer- und Taktlogik 22 enthält die Mikroprogramme, die die Bit-Wahl-Treiber 14 und 16
und die Schaltungen 18 und 2o steuern, um die Komparanden-
—1 5—
2 0 9 8 4 7/1175
Bit und die Datenwort-Bit zu wählen und den Vergleich,
und die Kennzeichenoperationen gemäß dem bereits beschriebenen Algorithmus durchzuführen. Der assoziative
Prozessor enthält ferner den Feldlängenzahler 32 und
Bingang-Ausgang-linrichtungen 34.
Das Ausführungsbeispiel des assoziativen Prozessors nach Figur 2 unterscheidet sich .von dem nach Figur 1 darin,
daß eine einzelne Speichermatrix 4o für sowohl die Komparandenfeider
42 als auch die Datenfelder 44 vorgesehen ist. Die Speichermatrix 4o ist außerdem in ein Wortspeichergebiet
46 sowohl für die Daten- und die Komparandengebiete als auch in ein Etiketten-Bit-Gebiet 48 zum
Speichern der Etiketten-Bit unterteilt, das jedem Wort im Speicher zugeordnet ist. Der Speichermatrix 4o ist
die Bit-Wahl-Treiberschaltung 5o und die Y/ort-Lese-SchreibT-Erhaltüngsschaltung
52 zugeordnet, die von der Suchsteuer- und Taktgeberlogik 54 gesteuert wird, wobei
die Treiber 5o über den Bit-Adressenzähler 56 und den
Adressendekoder 58 gesteuert werden. Die Schaltung 52
ergibt einen Eingang aus dem Komparandengebiet 42 der Speichermatrix 4o an einige der Bit-Wahl-Treiber 5o,
wie bei 6o angezeigt ist. Der assoziative Prozessor enthält wieder einen Feldlängenzähler 62 und Eingang-Ausgang-Einrichtungen
64.
Es ist nur das beste Ausführungsbeispiel der Erfindung im einzelnen beschrieben und dargestellt worden. Es sei
aber bemerkt, daß die Erfindung auf dieses Beispiel, nicht beschränkt ist.
-16-
209847/1175
Claims (1)
- 9157A-2179-G-EGOODYEAR ABROSPAGjS CORPORATION, Akron/Ohio - UiSAPatentansprücherl/ Verfahren zum gleichzeitigen Durchführen von Speicherinhalt ssuchvorgängen zwischen einem Datenfeld und einem Komparandenfeld, von denen jedes Feld mehrere Worte enthält, dadurch gekennzeichnet, daß das Datenfeld und das Komparandenfeld in einem Digitalspeicher für allgemeine Zwecke als Mt-ausgerichtete Worte gespeichert werden, daß mindestens ein Etiketten-Bit für jedes Wort des Datenfeldes vorgesehen wird, daß gleichzeitig an ähnlichen Bit gewählter Worte in jedem Feld mit vorher gesteuerter Logik Vergleiche gleichzeitig an mehreren Worten durchgeführt werden, daß ein vorgegebener Wert einem spezifizierten Etiketten-Bit jedes gespeicherten Wortes zugeordnet ist, wobei das Etiketten-Bit durch den besonderen, durchgeführten Vergleich und den vorgegebenen Wert eine Funktion der Jerte der gespeicherten Bit und des besonderen durchgeführten Vergleichs ist, und daß als Ausgangsfeld dessen Worte gewählt sind, deren Etiketten-Bit einen spezifizierten Wert besitzen.2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß ein Maskenfeld zum Steuern der Logik geliefert wird, so daß nur zwischen spezifizierten Bit jeden Wortes Vergleiche durchgeführt werden.3· Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß ein Wert jedem Etiketten-Bit vor dein Durchführen von Vergleichen zugeordnet wird, so daß der resultierende .Vert jeden Etiketten-Bits bei der Beendigung der gleichzeitigen Vergleiche durch frühere Suchvorgänge unbeeinflußt ist.209847/11754p Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Komparandenfeld einen Untersatz des Datenfeldes ergibt.5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß ein assoziativer Prozessor zum Speichern der Datenfelder, zum Durchführen der Vergleiche und zum Zuordnen der Werte den Etiketten-Bit und zum Wahlen des Ausgangsfeldes dient.6. Gerät zum Durchführen des Verfahrens nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß mindestens ein Digitalspeicher für allgemeine Zwecke zum Speichern der Körper von Daten als bit-ausgerichtete Worte vorgesehen ist und Etiketten-Bit jedem Wort von mindestens dem ersten Körper der Daten zugeordnet sind, daß Schaltungen zum gleichzeitigen Vergleichen ähnlicher Bit gewählter Worte in jedem Datenkörper vorgesehen sind, daß Schaltungen zum Zuordnen eines Wertes an-ein Etiketten-Bit jeden Y/ortes des ersten verglichenen Datenkörpers vorgesehen sind, wobei das gemäß dem durchgeführten Vergleich gewählte Etiketten-Bit und der zugeordnete Wert durch das Ergebnis des Vergleichs bestimmt wird, und daß eine Ausgangsschaltung jedes Wort als Ausgangsdaten liefert, das ein gegebenes Etiketten-Bit-Feld am Ende der Suchvorgänge besitzt.7· Gerät nach Anspruch 5j dadurch gekennzeichnet, daß zwei digitale Speicher vorgesehen sind, wobejj der erste Datenkörper in dem ersten Speicher und der z/eite Datenkörper in dem zweiten Speicher gespej/affert209847/1 175
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13942171A | 1971-05-03 | 1971-05-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2219157A1 true DE2219157A1 (de) | 1972-11-16 |
Family
ID=22486573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19722219157 Ceased DE2219157A1 (de) | 1971-05-03 | 1972-04-17 | Rechenverfahren mit asoziativem Speicher |
Country Status (8)
Country | Link |
---|---|
US (1) | US3771139A (de) |
BE (1) | BE782923A (de) |
CA (1) | CA1006621A (de) |
CH (1) | CH568636A5 (de) |
DE (1) | DE2219157A1 (de) |
FR (1) | FR2135215B1 (de) |
GB (1) | GB1358328A (de) |
IT (1) | IT965774B (de) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2293741A1 (fr) * | 1974-12-04 | 1976-07-02 | Anvar | Procede et systeme de rapprochement iteratif et simultane de donnees avec un ensemble de donnees de reference |
US4188669A (en) * | 1978-01-13 | 1980-02-12 | Ncr Corporation | Decoder for variable-length codes |
US4285049A (en) * | 1978-10-11 | 1981-08-18 | Operating Systems, Inc. | Apparatus and method for selecting finite success states by indexing |
US4491932A (en) * | 1981-10-01 | 1985-01-01 | Yeda Research & Development Co. Ltd. | Associative processor particularly useful for tomographic image reconstruction |
US4799149A (en) * | 1983-03-30 | 1989-01-17 | Siemens Aktiengesellschaft | Hybrid associative memory composed of a non-associative basic storage and an associative surface, as well as method for searching and sorting data stored in such a hybrid associative memory |
US4805093A (en) * | 1986-10-14 | 1989-02-14 | Ward Calvin B | Content addressable memory |
EP0438011A3 (en) * | 1990-01-18 | 1993-05-19 | International Business Machines Corporation | Logic on main storage memory cards for insertion and extraction of tag bits |
US5860085A (en) * | 1994-08-01 | 1999-01-12 | Cypress Semiconductor Corporation | Instruction set for a content addressable memory array with read/write circuits and an interface register logic block |
US6055512A (en) * | 1997-07-08 | 2000-04-25 | Nortel Networks Corporation | Networked personal customized information and facility services |
US6622204B1 (en) * | 2000-09-14 | 2003-09-16 | Cypress Semiconductor Corp. | Content-addressable memory with cascaded match, read and write logic in a programmable logic device |
-
1971
- 1971-05-03 US US00139421A patent/US3771139A/en not_active Expired - Lifetime
-
1972
- 1972-04-05 GB GB1560972A patent/GB1358328A/en not_active Expired
- 1972-04-10 CA CA139,266A patent/CA1006621A/en not_active Expired
- 1972-04-17 DE DE19722219157 patent/DE2219157A1/de not_active Ceased
- 1972-04-26 IT IT49858/72A patent/IT965774B/it active
- 1972-05-02 FR FR7215529A patent/FR2135215B1/fr not_active Expired
- 1972-05-02 BE BE782923A patent/BE782923A/xx unknown
- 1972-05-02 CH CH648872A patent/CH568636A5/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
FR2135215B1 (de) | 1976-08-06 |
CH568636A5 (de) | 1975-10-31 |
FR2135215A1 (de) | 1972-12-15 |
IT965774B (it) | 1974-02-11 |
BE782923A (fr) | 1972-09-01 |
CA1006621A (en) | 1977-03-08 |
GB1358328A (en) | 1974-07-03 |
US3771139A (en) | 1973-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2554442C2 (de) | Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen | |
DE19530100C2 (de) | Integrierte Dram-Schaltung mit Reihenkopierschaltung und Verfahren | |
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE1114049B (de) | ||
DE1538604B2 (de) | Verfahren zum realisieren einer elektrischen integrierten schaltung | |
DE1168127B (de) | Schaltungsanordnung zum Vergleich von Zahlen | |
DE2128790A1 (de) | Einrichtung zum Verwenden mehrerer betriebsfähiger Schaltungen in einem in tegrierten Schaltungsplättchen | |
DE2212873B2 (de) | Aus schieberegistern aufgebaute speichereinrichtung und verfahren zum betrieb der speichereinrichtung | |
DE2936913A1 (de) | Verfahren und system zur steuerung von eingabe und ausgabe bei einer prozesssteuerung | |
DE2219157A1 (de) | Rechenverfahren mit asoziativem Speicher | |
DE1499739C3 (de) | Datenspeicher zur gleichzeitigen Entnahme mehrerer Wörter | |
DE2810610A1 (de) | Josephson-speicherzelle | |
DE4121453C2 (de) | Näherungsschlußfolgerungsvorrichtung | |
DE2314262A1 (de) | Schaltungsanordnung zum verschieben von vektorinformation | |
DE1295656B (de) | Assoziativer Speicher | |
DE2905814A1 (de) | Speicher | |
DE69319886T2 (de) | Halbleiterspeicher mit Speichermatrix, der mit einem einzigen Sektor assoziierte Redundantezellenspalte enthält | |
DE1165083B (de) | Magnetkernschalter | |
DE1474380A1 (de) | Matrixspeicheranordnung | |
DE1424756B2 (de) | Schaltungsanordnung zum fehlergesicherten Einführen oder Wiedereinführer, von Programmen in den Hauptspeicher einer datenverarbeitenden Anlage | |
DE1243724B (de) | Speicheranordnung mit wortweise assoziativer Abfrage | |
DE1136737B (de) | Bei tiefen Temperaturen arbeitende Speichereinrichtung | |
DE2627617A1 (de) | Festwertspeicher | |
DE1090885B (de) | Parallel arbeitende, synchrone, elektrische, binaerrechnende Zahlenrechenmaschine, welche die Operation x+yz selbsttaetig auszufuehren vermag | |
DE2226856A1 (de) | Stapelspeicher mit Anzeige der Überschreitung oder des Überlaufs für die Übertragung von Daten in der chronologischen Reihenfolge ihrer Eingabe |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8131 | Rejection |