DE1474574C - Assoziativer Informationsspeicher - Google Patents

Assoziativer Informationsspeicher

Info

Publication number
DE1474574C
DE1474574C DE19651474574 DE1474574A DE1474574C DE 1474574 C DE1474574 C DE 1474574C DE 19651474574 DE19651474574 DE 19651474574 DE 1474574 A DE1474574 A DE 1474574A DE 1474574 C DE1474574 C DE 1474574C
Authority
DE
Germany
Prior art keywords
cell
cells
arrangement
flip
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE19651474574
Other languages
English (en)
Other versions
DE1474574A1 (de
DE1474574B2 (de
Inventor
Bently Arthur Morris Plains; Githens John Arthur Morristown; N.J. Crane (V.St.A.)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
Western Electric Co Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US395161A external-priority patent/US3391390A/en
Application filed by Western Electric Co Inc filed Critical Western Electric Co Inc
Publication of DE1474574A1 publication Critical patent/DE1474574A1/de
Publication of DE1474574B2 publication Critical patent/DE1474574B2/de
Application granted granted Critical
Publication of DE1474574C publication Critical patent/DE1474574C/de
Expired legal-status Critical Current

Links

Description

Die Erfindung betrifft einen assoziativen Speicher mit einer ersten Anordnung gleicher Zellen, die je eine Vielzahl von Registern zur Speicherung von Dateneinheiten enthält, einer Signalquelle, Signaleingangsleitungen, die Eingangsdaten von der Signalquelle gleichzeitig jeder Zelle zuführen, und logischen Schaltungen in jeder Zelle zum Steuern der Speicherung der Eingangsgaten in vorgewählten ZeI-len gleichzeitig mit dem Empfang von Steuersignalen auf Gruppensteuerleitungen. -.
Nach der Art des Zugriffs zu den gespeicherten Informationen können die gebräuchlichen Informationsspeicher in zwei große Klassen unterteilt
ίο werden. Einige Speicher, die weitverbreitet bei Digitalrechnern Anwendung finden, speichern die Information an bestimmten Speicherorten ohne Rücksicht auf den jeweiligen Inhalt der zu speichernden Information. Das Auslesen erfolgt dann durch Adressieren vorbestim'mter Speicherorte in dem Speicher. Solche Speicher sollen als Direktzugriffsspeicher bezeichnet werden.
Andere Speicher, die als assoziative Speicher bezeichnet werden, ordnen den gespeicherten Informationen Kenndaten zu. So wird zum Auslesen eines gespeicherten Symbols ein entsprechendes Symbol gleichzeitig jedem Speicherort oder jeder Speicherzelle zugeführt. Wenn eine Übereinstimmung mit dem gespeicherten Symbol in einer oder mehreren Zellen erzielt wird, können die darin oder in den benachbarten Zellen gespeicherten Daten ausgelesen werden.
Ein bekannter assoziativer Speicher (französische Patentschrift 1 361 601 bzw. belgische Patentschrift 631 664) weist eine einzige Anordnung miteinander verbundener, identisch aufgebauter Module oder Zellen auf, die je ein Datenwort speichern können. Anders gesagt, die Datenwörter sind im Speicher auf einer Wort-pro-Zellen-Grundlage gespeichert. Die in jeder Zelle durchgeführte, hauptsächliche logische Operation ist der Vergleich, bei dem der Inhalt der Zellen mit gleichzeitig von allen Zellen des Speichers aufgenommenen Eingangsinformationen verglichen wird. Eine Übereinstimmung zwischen der gespeicherten Information läßt sich zur Aktivierung von Zellen benutzen, die denjenigen Zellen benachbart sind, in welchen die Übereinstimmung aufgetreten ist. Die Aktivierung versetzt eine Zelle in die Lage, auf nachfolgende Eingangssignale anzusprechen. Diese Fähigkeit, Vergleiche durchzuführen und benachbarte Zellen zu aktivieren, ermöglicht dem Speicher, Grundoperationen durchzuführen, nämlich Lese- und Schreiboperationen. Die Vergleichsoperation kann zwar gleichzeitig in allen ZeI-len stattfinden, die Lese- und Schreiboperationen lassen sich aber nur für je eine Zelle gleichzeitig durchführen (wenn man annimmt, daß unterschiedliche Informationen in den verschiedenen Zellen gespeichert werden sollen).
Die Entwicklung der Digitalrechner mit ihrer Fähigkeit, einfache arithmetische Operationen mit einer sehr großen Geschwindigkeit auszuführen, bewirkte eine beträchtliche Zeit- und Unkosteneinsparung bei der Durchführung einer großen Anzahl von Ausrechnungen. Gerade die durch diese Fähigkeit ständig wachsenden Anforderungen, verbunden mit den physikalischen Begrenzungen, die ein größeres Anwachsen der Rechengeschwindigkeit verhindern, führen zu einer oberen Grenze für die Verarbeitungskapazität von Digitalrechnern pro Zeiteinheit.
Der Wunsch nach größerer Rechenkapazität kann z.B. bei der Lösung von umfangreichen mathematischen Problemen entstehen. Normalerweise kön-
nen solche Probleme auf eine Folge von sich wiederholenden Operationen "zurückgeführt werden, wobei jede Folge erst beginnen kann, wenn eine vorherige Folge beendet ist. Die Anzahl von Folgen bei einem einzelnen Problem darf daher nicht größer sein, als die Kapazität selbst der schnellsten verfügbaren Rechner. Man versucht daher Parallelsysteme und Mengenverarbeiter zu entwickeln, die arithmetische und logische Operationen mit einer großen Anzahl von Werten gleichzeitig durchführen.
Es lassen sich zwar arithmetische Operationen mit Datenwörtern durchführen, die auf die durch den oben beschriebenen Speicher bekannte Weise gespeichert sind, aber dieselben Operationen können mit besserem Wirkungsgrad durchgeführt werden, wenn die aufeinanderfolgenden Bits eines Wortes in aufeinanderfolgenden Zellen gespeichert sind, d. h. auf einer Bit-pro-Zellen-Grundlage. Eine solche Anordnung gespeicherter Datenwörter hat den Vorteil, daß in jeder Zelle Steuerschaltungen gleichzeitig auf das jeweils einzelne Bit eines gespeicherten Wortes einwirken können. Das ermöglicht eine gleichzeitige Einwirkung auf alle Bits eines Wortes, und wenn zwei Worte einander benachbart gespeichert sind, kann auf ihre entsprechenden Bits gleichzeitig eingewirkt werden. Eine solche Anordnung ermöglicht die Durchführung arithmetischer Operationen mit einer beliebigen Anzahl gespeicherter Wortpaare, wobei jedes Paar sich entsprechender Bits in einer anderen Gruppe von Zellen gespeichert ist.
Die Zellenanordnung des bekannten assoziativen Speichers führt zu einem Problem, wenn sie für die Ausführung von arithmetischen Operationen benutzt wird, bei denen jedes Wort auf einer Bit-pro-Zellen-Grundlage gespeichert ist. Insbesondere stellen das Einschreiben von Daten auf einer Bit-pro-Zellen-Grundlage und ihr nachfolgendes Lesen zu große Zeit in Anspruch nehmende Operationen bei der bekannten Anordnung dar, die für eine Wort-pro-Zellen-Speicherung eingerichtet ist und so ein Bitpro-Zellen-Einschreiben und -Lesen nur seriell mit jeweils einem Bit gleichzeitig ermöglicht.
Die Erfindung hat sich die Aufgabe gestellt, einen assoziativen Speicher zu schaffen, der diese Nachteile nicht aufweist. Sie geht dazu aus von einem Speicher der eingangs genannten Art. Die Lösung ist dadurch gekennzeichnet, daß jede Zelle der ersten Anordnung so ausgelegt ist, daß sie ein Wort aus vielen Einheiten mit je einem Wort pro Zelle speichert und einer bestimmten Gruppe von Zellen einer zweiten Anordnung zugeordnet ist, die so ausgelegt ist, daß sie alle Dateneinheiten eines Wortes gleichzeitig von der entsprechenden Zelle der ersten Anordnung zur für die Durchführung von arithmetischen Operationen geeigneten Speicherung mit je einer Einheit pro Zelle empfangen kann, so daß jede Zelle der zweiten Anordnung eine Vielzahl von Registern für die Speicherung von Dateneinheiten enthält und daß jede in einer entsprechenden Zelle der ersten Anordnung gespeicherte Dateneinheit zu einem vorgewählten Register einer entsprechenden Gruppe von Zellen der zweiten Zellenanordnung bei Empfang von Signalen auf Zelleneingangsleitungen und ZeI-lensteuerleitungen durch die logischen Schaltungen jeder Zelle der zweiten Anordnung übertragen wird.
Erfindungsgemäß wird sozusagen ein zweidimensionaler Speicher geschaffen, der eine erste Anordnung von in Reihe geschalteten Zellen aufweist, die der Speicherung einer Vielzahl von Dateneinheiten oder Bits auf einer Wort-pro-Zelle-Grundlage dienen. Eine zweite Anordnung besitzt Zellen, die in getrennten Gruppen angeordnet sind. Jede dieser Gruppen entspricht einer bestimmten Zelle der ersten Anordnung, und zwar derart, daß jede Dateneinheit oder jedes Bit in einer Zelle der ersten Anordnung einer Zelle der zweiten Anordnung gemeinsam und in diese eingefügt ist. Wörter mit einer Vielzahl von
ίο Einheiten sind in einer Gruppe von Zellen der zweiten Anordnung gespeichert, wobei jedes Wort auf einer Dateneinheit- oder Bit-pro-Zellen-Grundlage gespeichert ist. Dieser Aufbau ermöglicht die notwendige Beweglichkeit beim Einschreiben, Lesen und anderen Steueroperationen, um die verschiedenen arithmetischen Operationen mit optimaler Geschwindigkeit durchführen zu können. Zum Beispiel kann ein Wort parallel in einer Zelle der ersten Anordnung entsprechend der obengenannten bekannten Anordnung gespeichert werden. Die einzelnen Dateneinheiten des gespeicherten Worts können dann gleichzeitig in eine entsprechende Gruppe von Zellen der zweiten Anordnung übertragen werden, um dort auf einer Bit-pro-Zelle-Grundlage gespeichert zu werden, wie es für arithmetische Operationen wünschenswert ist. Nach Durchführung solcher Operationen wird jede Einheit des resultierenden Wortes wieder gleichzeitig in die entsprechende Zelle der ersten Anordnung übertragen, aus der sie nachfolgend auf bekannte Weise gelesen werden kann. Die erste Anordnung dient also den Einschreibund Leseoperationen, wofür sie wegen ihres Wortpro-Zellen-Aufbaus am besten geeignet ist, sowie als Zugriffsregister für die zweite Anordnung, die die arithmetischen Operationen durchführt, wozu ihr Bit-pro-Zellen-Aufbau am besten geeignet ist.
Eine weitere Möglichkeit besteht in der Übertragung von Steuersignalen zwischen den Zellen der beiden Anordnungen. Die in jeder Zelle der ersten Anordnung durchgeführten Operationen können von dem Zustand der entsprechenden Gruppe der Zellen in der zweiten Anordnung abhängig gemacht werden. Ähnlich können die in jeder Zelle der zweiten Anordnung durchgeführten Operationen von dem Zustand der entsprechenden Zelle der ersten Anordnung abhängig gemacht werden.
Außerdem ist bei dem erfindungsgemäßen Speicher eine wichtige Operation darin zu sehen, daß die Zellenbedingungen zu benachbarten Zellen fortgepflanzt werden können. So weist der assoziative Speicher eine Anordnung von gleichen Zellen auf, wobei jede Zelle aus Datenspeicher- und Steuerregistern besteht, die zusammen die Fähigkeit besitzen, Informationen mit mehreren Einheiten zu speichern. Diese Informationen können als Daten oder zu Steuerzwecken' verwandt werden. Die in jeder Zelle durchgeführte hauptsächliche logische Operation ist der Vergleich, bei dem der Registerinhalt mit Eingangsinformationen verglichen wird, die alle Zellen des Speichers gleichzeitig erhalten. Das Ergebnis dieses Vergleichs kann dann zu benachbarten Zellen weitergegeben werden, um diese für einen Vergleich mit folgenden Eingangssignalen vorzubereiten. Um die gewünschte Betriebsgeschwindigkeit in einem assoziativen Speicher zu erhalten, ist es wichtig, daß der Übertragungsvorgang schnell durchgeführt wird. Dies wird erfindungsgemäß durch eine solche Anordnung der Schaltungen in jeder
5 6
Zelle erreicht, daß der Zustand des Steuerregisters ihrer Vergleichsergebnisanzeigeschaltung »deakti-
mit der Ausgangsinformation der Vergleichsschal- viert«. Dieser Befehl wird ausgeführt, indem der In-
tung kombiniert wird. Dadurch fällt die Verzögerung halt des Eingangsregisters 14 gleichzeitig allen ZeI-
der Vergleichsschaltung bei der Übertragungsopera- len über die Eingangsleitung / zugeführt wird. Die
tion aus. 5 ,Schaltungsteile für die logische Steuerung einer jeden
Die Erfindung wird nachstehend an einem Aus- Zelle stellen fest, ob das Eingangssignal mit dem In-
iührungsbeispiel unter Bezugnahme auf die Zeich- halt der Zelle übereinstimmt und1 stellen demgemäß
iiungen erläutert. In diesen zeigt die Vergleichsergebnisanzeigeschaltung ein bzw.
F i g. 1 ein vereinfachtes Blockschaltbild eines zurück.
assoziativen Speichers zur Veranschaulichung der io Der Vergleichsbefehl bewirkt also eine gleich-
Erfindung, zeitige Absuche aller Zellen. Das Maskenregister 15
F i g. 2 das Schaltbild einer Zelle des Speichers kann verwendet werden, um Bit-Stellen des Eingemäß Fig.Ί, gangsregisters 14 auszublenden. Das ermöglicht das
Fig. 3 eine schematische Darstellung einer Viel- Absuchen einer Untergruppe von Datenregistern in
zahl von Zellen mit ihrem gemäß der Erfindung ge- 15 jeder Zelle, während die übrigen Datenregister außer
gliederten Dateninhalt, acht bleiben. Zum Beispiel können alle Bitstellen des
F i g. 4 ein Blockschaltbild eines zweidimensio- Eingangsregisters 14 mit Ausnahme von denen, die nalen assoziativen Speichers, der eine erste und eine λ'., und Xx entsprechen, ausgeblendet werden mit zweite Zellenanordnung gemäß der Erfindung ent- dem Ergebnis, daß in allen Zellen, in denen der Inhalt. 20 halt der Λ\,- und .^.,-Register mit denen der Bitstellen
In Fig. 1 ist eine Anordnung von gleichen Zellen übereinstimmen, aktiviert werden, ohne Berücksichin einem assoziativen Speicher dargestellt, die par- tigung des Inhaltes der anderen Datenregister,
allel unter gemeinsamer Steuerung betrieben werden. Die logischen Schaltungen der Zellen sind so aus-Jede Zelle 10a, lOfe . . . 10« ist im wesentlichen ein gelegt, daß der Vergleichsbefehl auch die Zellen-Speicherregister für η Bits, das mit logischen Schal- 25 aktivität in seinem Vergleichsmuster angeben kann, tungsteilen zur Steuerung von Operationen bezüglich Anders gesagt, der Vergleichsbefehl gibt an, daß ein des Registerinhaltes kombiniert und parallel mit Vergleich nur für bereits aktive Zellen stattfinden Dateneingangs- und Befehlsleitungen verbunden ist. soll. Das macht es möglich, nur die bereits aktiven Damit bildet diese Anordnung eine Reihenschaltung Zellen abzusuchen. Kombiniert man diese Möglichvon untereinander verbundenen Zellen, von denen 30 keit mit der vorstehend erläuterten Möglichkeit, eine jede mit der nachfolgenden und vorausgehenden Untergruppe von Datenregistern durch Ausblenden Zelle verbunden ist. von Bit-Stellen abzusuchen, so kann innerhalb dieser
Jede Zelle enthält identische Schaltungen zum Untergruppe eine weitere Untergruppe, nämlich die
Erleichtern der Einschreib-, Vergleichs-, Ubertra- der aktiven Zellen, gefunden werden. Zum Beispiel
gungs- und Leseoperationen, nämlich Datenregister 35 können alle aktiven Zellen, die nicht x2 = 0, χΆ1
X1, X2 . . . Xn; eine Vergleichsergebnisanzeigeschal- enthalten, deaktiviert werden.
tung M und weitere Schaltungsteile für die logische Die logischen Schaltungen der Zellen ermöglichen Steuerung. Die Signale werden von einer Eingangs- außerdem einen gerichteten Vergleichsbefehl, wobei und Steuersignalquelle 11 zu jeder Zelle über die nicht eine Zelle, die der Vergleichsangabe entspricht, verschiedenen Leitungen zugeführt, die die jeweils 40 sondern eine links oder rechts benachbarte aktiviert durchzuführende Operation angeben. Dabei wird der wird. Daher setzt die Aufnahme der Zellenaktivität Inhalt einer jeden Zelle entweder unter Aufnahme in die Vergleichsangabe eines gerichteten Vergleichsneuer Daten verändert, mit Vergleichsdaten ver- befehls eine Zelle in die Lage, ihre Aktivität auf euie glichen oder ausgelesen. Die Zellen sind durch der beiden nächstbenachbarten Zellen zu übertragen. Übertragungsleitungen verbunden, und es werden bei 45 Bei einem Schreibbefehl wird der Inhalt des Einentsprechenden Befehlen Steuersignale in eine der gangsregisters 14 allen Zellen gleichzeitig über die beiden Richtungen übertragen, um benachbarte ZeI- Eingangsleitung / zugeführt. Die logische Schaltung len zu aktivieren, so daß diese in einen Zustand ge- der Zelle ist so aufgebaut, daß sie auf zwei Arten von bracht werden, bei dem möglicherweise eine Über- Schreibbefehlen, nämlich bedingte und unbedingte, einstimmung ihres Inhaltes mit dem nächsten zu- 50 ansprechen kann. Mit einem bedingten Schreibbefehl geführten Signal auftritt. werden nur aktive Zellen angesprochen, und der In-
Die Anordnung spricht also auf drei Grundarten halt von inaktiven Zellen wird nicht berührt. Bei von Befehlen an, nämlich Vergleichen, Schreiben und einem unbedingten Schreibbefehl speichern alle ZeI-Lesen. Diese kommen von der Eingangs- und Steuer- len die Eingangsdaten, unbeschadet ihres Zustandes. signalquelle 11, die bekannte Signalerzeugungs- und 55 Wie bei einer Vergleichsoperation kann das Masken-Zeitsteuerungsschaltungen aufweist. Ein auszufüh- register 15 benutzt werden, um zu bestimmen, daß render Befehl wird im Befehlsregister 12 gespeichert, irgendwelche Bit-Stellen außer acht bleiben. Das bis er durch die Folgesteuerung in Steuersignale um- Ausblenden einer Bitstelle im Eingangsregister 14 gesetzt worden ist. Diese Signale betätigen über die verhindert eine Störung des Inhalts der entsprechengemeinsamen Steuerleitungen C die Schaltungsteile 60 den Datenregister in jeder Zelle. Der Lesebefehl befür die logische Steuerung in allen Zellen gleichzeitig. wirkt eine Wiedergewinnung des Inhaltes einer
Die Vergleichsbefehle stellen alle Zellen fest, aktiven Zelle und führt ihn über die Ausgangsleitun-
deren Inhalt mit dem Inhalt des Eingangsregisters 14 gen 0 zum Ausgangsregister 16. Da alle Zellen die
übereinstimmt und markieren diese Zellen durch Ausgangsleitungen gemeinsam benutzen, muß vor
Einstellen ihrer Vergleichsergebnisanzeigeschaltun- 65 dem Lesen dafür gesorgt werden, daß nur eine Zelle
gen M. Eine so markierte Zelle wird »aktiv« genannt. aktiv ist. Anderenfalls würde das Ausgangsregister
Jede Zelle, deren Inhalt nicht mit dem des Eingangs- 16 die logische ODER-Verknüpfung des ^Inhalts
registers übereinstimmt, wird durch Rückstellung aller aktiven Zellen enthalten, und der Inhalt jeder
7 8
einzelnen Zelle wäre nicht erkennbar. Eine einzelne Wenn eine Zelle aktiv ist, gibt jedes ihrer cinaktive Zelle kann durch die Verwendung eines Ver- gestellten Daten-Flipflops ein Ausgangssignal an
gleichsbefehls isoliert werden. seine entsprechende Ausgangsleitung, die es über die
jeweiligen ODER-Gatter, wie 220 und 221 in
Der Zellenaufbau 5 ρ ig. 2, mit den entsprechenden Daten-Flipflops in
F i g. 2 zeigt die logische Organisation einer ein- allen anderen Zellen gemeinsam benutzt. Die Zellen zelnen n-Bit-Zelle zusammen mit den acht Steuer- brauchen beim Lesen keinerlei Steuersignale zu erleitungen, 2/i-Eingangsleitungen und (rc+1) Aus- halten; bei einem Lesebefehl genügt es, die n + 1-gangsleitungen, die allen Zellen gemeinsam sind. Die Ausgangsleitungen, die von der Anordnung ausZelle/ ist im einzelnen gezeigt, und die Zellen (i— 1) io gehen, zu überwachen. Man erkennt, daß nur eine und (i+1) sind teilweise dargestellt, um zu zeigen, Zelle aktiv sein darf, wenn der Inhalt der Datenwie die Zellenaktivität von einer Zelle auf die an- Flipflops herausgelesen werden soll. Die Vergleichsdere übertragen werden kann. Das Vergleichs-Flip- und Schreibbefehle müssen von einem Eingangsflop M ist doppelgliedrig und weist die Vergleichs- signal-Muster begleitet sein, um zu bestimmen, Flipflops MA und MZ? auf, wodurch die Möglichkeit 15 weiche Flipflops beeinflußt werden sollen, von Überschneidungen bei gerichteten Vergleichs- Die Art der Ausführung des Übertragungsbefehls befehlen ausgeschaltet wird. Das Flipflop MA gibt stellt eine Abweichung von dem eingangs erläuterten die Zellenaktivität an (»1« für aktiv, »0« für inaktiv), Stand der Technik dar. Dieser Befehl kann als ein und das Flipflop MB dient einer zeitweiligen Spei- erweiterter gerichteter Vergleichsbefehl angesehen cherung für das Ergebnis des Vergleichsbefehls. Das 20 werden, durch den eine bereits aktive Zelle ihre Ergebnis eines erfolgreichen Vergleichs (MB — 1) Aktivität durch »Ketten« von angrenzenden Zellen wird benutzt, um eines der drei mit dem Flipflop MB weiterleiten kann, deren Inhalt mit dem durch den verbundenen Flipflops MA einzustellen. Welches Befehl angegebenen Eingangsmuster übereinstimmt. Flipflop MA eingestellt wird, hängt davon ab, welche Der Befehl sagt also: »aktiviere alle Zellen zwischen der drei Steuerleitungen, Links, Unten oder Rechts 25 einer bereits aktiven Zelle und der ersten Zelle zu erregt wird. Die Steuerleitungen Links und Rechts ihrer linken (rechten), deren Inhalt nicht mit dem werden bei gerichteten Vergleichsbefehlen verwendet. Eingangsmuster übereinstimmt.« Er wird durch die
Bei Vergleichsbefehlen wird der Vergleich des In- folgende Befehlsfolge ausgeführt:
haltes der Daten-Flipflops Z1 ... X11 einer Zelle mit ..
den Signalen der Eingangsleitungen Z1, 7, ... /„, 7„ 30 zurückstellen ä,
durch die UND-Gatter 214, 215 . . . 217, 218 durch- Vergleichen · (/, = außer acht lassen),
geführt Diese 2« UND-Gatter sind mit dem ODER- Vergleichen ■ Links (Rechts) · (/,),
Gatter 230 verbunden, so daß eine Nichtubereinstim- Zurückstellen A Unten mung bei einem oder mehreren der Daten-Flipflops
ein Signal m,-= 1 erzeugt. Eine Außerachtlassung 35 In der Steuer-und Eingangssignal folge bewirkt der des Inhalts eines Daten-Flipflops wird durch eine erste Satz von Eingangssignalen (/,· = außeracht-Nichterregung seiner Eingangsleitung herbeigeführt. lassen), daß das Signal m, = 1 am Ausgang des Das Signal mh die Inversion von Tn1 ist daher nur ODER-Gatters 230 in allen Zellen erscheint; da dann »1«, wenn keine Nichtübereinstimmungen auf- aber 7m nicht erregt ist, wird nur das Mßj-Flipflop treten. Es stellt ein Eingangssignal des UND-Gatters 40 bereits aktiver Zellen auf »1« gestellt. Der zweite 201 rechts vom M/4-Flipflop in Fig. 2 dar. Ein an- Satz von Eingangssignalen (/,) bewirkt dann, daß nur deres Eingangssignal des UND-Gatters 201 kommt solche Zellen, deren Inhalt mit den Eingangssignalen über das ODER-Gatter 202, an dessen Eingänge das übereinstimmen, m, = 1 haben. Daher bewirkt das M/4rFlipflop und die 7m-Steuerleitung liegen. Diese gleichzeitige Anlegen der Vergleichs- und der Links Anordnung erlaubt die Angabe der Zellenaktivität in 45 (Rechts)-Steuersignale, daß der Aktivitätszustand im dem Vergleichsmuster. Ein Außerachtlassen der ZeI- MB,-Flipflop einer ursprünglich aktiven Zelle gelenaktivität wird durch die Erregung der 7m-Steuer- speichert wird, gefolgt von denjenigen Zellen, deren leitung erreicht. Die Erregung der Vergleichs-Steuer- Inhalt mit dem Eingangsmuster übereinstimmt. Ein leitung, die am dritten Eingang des UND-Gatters 201 gleich nützlicher Übertragungsbefehl kann durch Zuliegt, stellt das MB,~FlipnOp ein, wenn ein erfolg- 50 führen von Steuersignalen »Zurückstellenund reicher Vergleich, d. h. eine Übereinstimmung, auf- »Links (Rechts)« gebildet werden. Das bewirkt, daß getreten ist. die Kette aktiver Zellen um eine Zelle nach links
Bei Schreibbefehlen steuern die UND-Gatter 210, (rechts) versetzt wird.
211 ... 212, 213 links von den Daten-Flipflops X1 Der grundlegende Unterschied gegenüber der einbis Xn die Übertragung der Signale auf den Ein- 55 gangs erläuterten bekannten Anordnung liegt in der gangsleitungen zu den Daten-Flipflops. Bei einem Art und Weise, in der das Vergleichs-Flipflop MA1 bedingten Schreibbefehl wird .ein Signal auf der in die Vergleichs-Operation eintritt. Um eine Infor-Schreibsteuerleitung unter Steuerung des M/l ,-Flip- mation von einer Zelle zu einer anderen zu überflops über das ODER-Gatter 202 und das UND- tragen, werden die Daten in einer Zelle mit EinGatter .204 weitergeleitet, mit der Wirkung, daß die 60 gangsinformationen verglichen, die gleichzeitig allen Eingangsdaten nur in aktive Zellen eingespeichert Zellen des Speichers zugeführt wird. Wenn eine werden. Bei einem unbedingten Schreibbefehl ist Übereinstimmung vorhanden ist, wird das Ausgangsauch die 7m-Steuerleitung erregt, mit der Wirkung, signal der Vergleichsergebnisanzeigeschaltung, das daß die Eingangsdaten sowohl in die aktiven als auch am Ausgang des ODER-Gatters 230 in der Zelle i die inaktiven Zellen gespeichert werden. Bei beiden 65 auftritt, dem Vergleichs-Flipflop MAi+/ über das Arten von Schreibbefehlen erhalten diejenigen Flip- UND-Gatter 201 und das Flipflop MBt zugeführt. flöps, deren Inhalt ungestört bleiben soll, keine Si- Wenn das Vergleichssteuersignal, das in diesem Beignale von ihren beiden Eingangsleitungen. spiel die Übertragung auslöst, ein wenig' langer als
? "■ ■ . ■ 309 622/140
die längste zu erwartende Übertragung aufrechterhalten wird, wird jede in der Zellenanordnung bestehende Übereinstimmung in die vorbestimmte Richtung übertragen, wobei die bei der Übertragung angetroffene Folge von Zellen so lange aktiv gemacht wird, wie ihr Inhalt mit den Eingangsdaten übereinstimmt.
In der bekannten Anordnung ist der Zustand des Vergleichs-FlipfloDs MA1 einer der Eingangssignale der Vergleichsschaltung. Auf Grund dieser Anordnung tritt die Verzögerung der Vergleichsschaltung bei jeder Übertragung in Erscheinung. So werden zur Übertragung von Informationen die Vergleichssteucrsignale und die Eingangsdaten dem Speicher zugeführt. Wenn die Eingangsdaten mit den gespeicherten Daten übereinstimmen, stellt ein Vergleichsausgangssignal das Vergleichs-Fiipflop in der benachbarten Zelle ein. In jedem Falle tritt das Vergleichs-Flipflop selbst in die Vergleichsoperation ein, da sein Ausgangssignal ein Eingangssignal der Vergleichsschaltung darstellt. So muß jede Zelle das Ergebnis des Vergleichs in einer vorhergehenden Zelle abwarten, und diese Verzögerung wird kritisch, wenn lange Übertragungsoperationen vorliegen.
Erfindungsgemäß wird, wie in F i g. 2 dargestellt ist, der Zustand des Vergleichs-Flipflops MA1 mit dem Ausgangssignal der Vergleichsschaltung im UND-Gatter 201 logisch verknüpft. Das Ausgangssignal des UND-Gatters 201 stellt das Flipflop MB1 ein, und dessen Zustand wird zum Flipflop MA in einer benachbarten Zelle übertragen. Damit ist folglich das Ergebnis das gleiche wie bei der bekannten Anordnung.
Datenformat zur Mengenverarbeitung
Der assoziative Speicher wurde ursprünglich als eine Vorrichtung zum Speichern und Wiedergewinnen von unterschiedlich langen Ketten alphanumerischer Zeichen angesehen. Entsprechend speichert jede Zelle ein Zeichen, und der Inhalt einer Kette von aufeinanderfolgenden Zellen bildet ein Stück einer Information. Die Informationsketten sind getrennt durch Zellen, die ein spezielles »Punkt«-Zeichen enthalten. Zum Beispiel können Sätze von vier Ketten den Namen, den Vornamen, die Adresse und die Rufnummer eines Fernsprechteilnehmers enthalten. Die Wiedergewinnung der Rufnummer eines bestimmten Teilnehmers erfolgt dann durch die Durchführung einer Folge von Befehlen unter Verwendung der aufeinanderfolgenden Zeichen des Namens, des Vornamens usw., bis nur eine Zelle in dem gesamten Speicher aktiv ist. Die der aktiven Zelle folgenden Zeichen können dann nacheinander ausgelesen werden.
Obgleich sich arithmetische Operationen mit Datenwörtern durchführen lassen, die auf diese Weise gespeichert sind, also mit je einem Wort pro Zelle, können erfindungsgemäß die gleichen Operationen mit weit besserem Wirkungsgrad durch die Speicherung aufeinanderfolgender Bits eines Worts in'aufeinanderfolgenden Zellen, also je einem Bit pro Zelle, durchgeführt werden. Diese Art der Speicherung ist in F i g, 3 veranschaulicht, wo sieben «-Bit-Wörter^, B ... G in η aufeinanderfolgenden Zellen gespeichert sind. Die Paten-Flipflops X1, X2 und X3 in jeder Zelle sind Steüerzwecken vorbehalten. Zum Beispiel kann X1 =' 1 in einer gegebenen Zelle bedeuten, daß die Zelle Bits von Wörtern enthält, die zu bearbeiten sind.
Der Grund für die Speicherung von Datenwörtern in dieser Weise liegt darin, daß ein Vergleichs-Flipflop für jedes Bit eines Wortes verfügbar ist. Das erlaubt das gleichzeitige Abtasten aller Bits eines Wortes, und wenn zwei Wörter nebeneinander gespeichert sind, können ihre entsprechenden Bits in gleicher Weise gleichzeitig abgetastet werden. Es ist zu erkennen, daß damit arithmetische Operationen bezüglich einer Anzahl solcher Paare, von denen sich jedes Paar in einer anderen Gruppe von Zellen befindet, wortparallel und bitparallel durchgeführt werden können.
Durch eine einfache Additionsoperation soll gezeigt werden, wie eine lineare Anordnung von Zellen zur gleichzeitigen Durchführung einer arithmetischen Operation mit mehreren Gruppen von Daten benutzt werden kann. Es sei angenommen, daß in jeder Gruppe das im Daten-Flipflop X8 gespeicherte Datenwort zu dem Wort im Daten-Flipflop X9 addiert werden soll. Diese Wörter seien binäre Zahlen, deren niedrigstelliges Bit rechts steht. Die Addition ist in allen Giuppen von Daten durchzuführen, deren Zellen durch X1 = 1 gekennzeichnet sind. Diese Kennzeichnung kann das Ergebnis einer vorhergehenden Folge von Operationen sein, die die assoziativen Besonderheiten der Anordnung benutzen, um diejenigen Datengruppen festzustellen, welche an der Additionsoperation teilnehmen sollen.
Eine Folge von Befehlen, also ein Programm zur Durchführung der Addition wird unten angegeben. Jedem Befehl ist ein Eingangsmuster zugeordnet, das die Bitstellen, die an der Operation teilnehmen, und ihren Wert bestimmt. Bitstellen, die nicht angegeben sind, sind mit »Außerachtlassen« gekennzeichnet und nehmen nicht an der Operation teil. Anschließend an das Programm wird beschrieben, was jeder Befehl bewirkt. Es sei angenommen, daß die für eine zeitweilige Speicherung benutzte Bitstelle X2 gelöscht ist, also den Wert Null erhält:
Löschen-Vergleichen-Links
(X1 = 1, Xs = 0, X9 = 0).
Aktivieren der nächsten Zelle links von jeder Zelle, die ein übereinstimmendes Muster enthält, und Deaktivieren aller Zellen.
50
Bedingt Speichern (X2 = 1).
Speichern des Eingangsmusters in allen aktivierten Zellen.
Löschen-Vergleichen-Links
(X1 = 1. X8 =~- !> X9 — 1)·
Übertragen-Links (X1 = 1, X2 = 0).
Aktivieren aller Zellen zwischen einer schon aktiven Zelle und der ersten Zelle links von ihr, die mit dem Eingangsmuster nicht übereinstimmt.
Unbedingt Speichern (X2 = 0).
Speichern des Eingangsmusters in allen Zellen.
Bedingt Speichern (X2 = I). ;
Speichern des Eingangsmusters in allen aktiven Zellen.
Löschen-Vergleichen
(Z1 = 1, Z3 = O, X8 = 0, Z9 = 1).
Aktivieren aller Zellen, die das Eingangsmuster enthalten und Deaktivieren aller anderen Zellen.
Vergleichen (X1= 1, X2 = 0, ZH = 1, X9 = 0).
Aktivieren aller Zellen, die das Eingangsmuster enthalten.
Vergleichen (Z1 = 1,X2= 1,X6= 0,X9 = 0).
Vergleichen (Z1 = I1 Z2 = 1, Z8 = 1, Z9 = I).
Dieses Additionsprogramm sieht vor, zuerst den Übertrag für jede Ziffernstelle (Zelle) zu erzeugen und dann unter Anwendung assoziativer Verfahren die Summenziffer zu bestimmen. Die Übertrag-Eingangssignale werden bei den ersten vier Operationen durch Feststellen der Summandenpaare »1, 1« und »0, 0« erzeugt. Sie können als »Übertragsgeneratoren« und »Übertrags-Verhinderer« angesehen werden. Die Überträge werden dann, beginnend mit Übertrags-Generatoren, übertragen, bis die Übertragung durch einen Übertrags-Verhinderer beendet wird.
So tastet die erste Operation, Löschen-Vergleichen-Links, die Anordnung nach solchen Zellen in den gekennzeichneten Gruppen (Z1 = 1) ab, die Übertrags-Verhinderer (Z8 = 0, Z9 = 0) speichern. Das führt dazu, daß die Vergleichs-Flipflops derjenigen Zellen liegen, deren Inhalt mit dem Eingangsmuster übereinstimmt. Das Ergebnis wird vorübergehend in der Stelle Z2 durch die zweite Operation, Bedingt Speichern, gespeichert, um die Vergleichs-Flipflops für die nächste Operation freizumachen. Die dritte Operation, wiederum Löschen-Vergleichen-Links, sucht nach den Übertrags-Generatoren und aktiviert die Zellen an ihrer linken Seite.
Zu diesem Zeitpunkt speichern die Vergleichs-Flipflops den Beginn der Übertragsketten. Diese Übertragungsketten sollen die Zelle zu ihrer linken aktivieren, bis Übertrags-Verhinderer auftreten. Das wird durch die vierte Operation, Übertragen-Links, erreicht. Das Eingangsmuster für diese Operation ist (Z1 = 1, Z2 = 0). Das bedeutet, daß ausgehend von jedem eingestellten Vergleichs-Flipfiop (M — 1), die links davon liegenden Zellen nacheinander aktiviert werden, solange sie zu der markierten Gruppe (Z1 = 1) gehören und keinen Übertrags-Verhinderer (Z2 = 0) speichern. Auf diese Weise wird die Übertrags-Übertragung herbeigeführt. Das Ergebnis ist, daß der Vergleichs-Flipflop in allen Zellen eingestellt ist, in den das Übertrags-Eingangssignal »1« ist.
Bei der fünften und sechsten Operation, Unbedingt Speichern und Bedingt Speichern, ist die Stelle Z2 gelöscht und das Ubertrags-Eingangssignal wird gespeichert, wobei die Vergleichs-Flipflops für eine andere Verwendung freigemacht werden. Die Summenziffern können jetzt bestimmt werden. Die folgenden vier Vergleichsoperationen tasten die markierten Gruppen nach solchen Summanden- und Übertragskombinationen ab, die Summenziffern »1« erzeugen. Die vier Eingangsniuster entsprechen den vier Eintragungen in einer Additionstabelle, die die Summenziffern »1« erzeugen. Sp bilden die vier Vergleichs-Operatiönen in den Vergleichs-Flipflops die Vereinigung der entsprechenden Stellen zu der gewünschten Endsumme. Das schließt die Additionsoperation ab, wobei die Endsumme in den Vergleichs-Flipflops gespeichert bleibt. Das Ergebnis kann dann nach Wunsch verwandt werden; es kann z. B. in einer der Bitstellen gespeichert werden oder zum Bestimmen einer Untergruppe auf der Grundlage des Vorzeichens des Ergebnisses benutzt werden.
ίο Es ist wichtig herauszustellen, was mit der Durchführung dieser Operation erreicht wurde. Die Addition wurde durchgeführt mit zwei Komponenten aller Glieder des bezeichneten Satzes von Datengruppen. Dieser Satz kann sehr groß sein, er kann alle gespeicherten Datengruppen einschließen. Der assoziative Speicher ermöglicht also Parallel-Bit-, Parallel-Wort-Operationen. Die Dauer dieser Operationen ist unabhängig von der Zahl der Glieder in den zu bearbeitenden Sätzen. Die Durchführung dieser Operationen mit mäßiger Geschwindigkeit bezüglich einer ziemlich großen Zahl von Datengruppen übersteigt die effektive Additionsgeschwindigkeit der schnellsten bekannten Rechner.
Die Fähigkeit, eine Mengen-Addition durchzuführen, ist von Interesse, aber, um wirklich brauchbar zu sein, muß der assoziative Speicher die Fähigkeit haben, andere arithmetische und logische Operationen durchzuführen. Es dürfte klar sein, daß Mengen-Subtraktionen in der gleichen Weise durchgeführt werden können. Tatsächlich ist die Folge von den Befehlen genau die gleiche für die Subtraktion; es müssen nur die Muster für die erste und dritte Operation geändert werden (auf Z1 = 1, Z8 = 1, Z9 = 0 bzw. Z1 = 1, Xn = 0, Z9 = 1), um die DifferenzZ8 — Z9 zu erhalten.
Eine Verschiebung von Variablen kann leicht durchgeführt werden. Die Folge:
Löschen-Vergleichen (X1 = 1, X1 = 1).
Bedingt Speichern (Z, = 0).
Löschen-Speichern-Links (Rechts) (M = 1).
Bedingt Speichern (Z, = 1).
verschiebt die Größe Z,- in der durch X1=I markierten Untergruppe um einen Platz nach links (rechts). Damit hat der erfindungsgemäße Speicher die Fähigkeit einer Parallel-Bit-, Parallel-Wort-Addition-, -Subtraktion und -Verschiebung. Es ist bekannt, daß diese Fähigkeiten die Durchführung jeder arithmetischen Operation erlauben.
Die zweidimensionale Anordnung
Die lineare Anordnung der Zellen in dem beschriebenen Speicher ist eine sehr allgemeine Einrichtung. Derselbe Aufbau kann für eine Informationswiedergewinnung, Tabellenbearbeitung und Mengenbearbeitung verwandt werden. Der Aufbau erlaubt vielseitige Feldoperationen mit einer großen Anpassungsfähigkeit bezüglich des Formats. Dennoch sind die Eingabe, die Ausgabe und gewisse arithmetische Operationen bei dieser Organisation umständlich. Gemäß einer Weiterbildung der Erfindung wird eine zweite Speicherform verfügbar gemacht, die die vorstehenden Operationen, nämlich Parallel-Bit-Eingabe, -Ausgabe- und Parallelvergleichsoperationen beschleunigt erlaubt. Diese Anordnung ist in Fig. 4 dargestellt.
Sie umfaßt eine lineare Anordnung von gleichen Einheiten, die Zellengruppen genannt werden. Jede Zellengruppe ist eine lineare Anordnung gleicher Zellen, die Af-Zellen genannt werden. Jede Zellengruppe weist außerdem eine Zelle auf, die ein Datenflipflop jeder Z-ZeIIe in der Zellengruppe enthält. Diese Zelle wird als Y-Zelle bezeichnet. Jede Y-Zelle enthält Flipflops, die in den A'-Zellen nicht enthalten sind. Daher wird dieser Speicher im folgenden als zweidimensionaler Speicher bezeichnet.
Fig. 4 zeigt die k-te Zellgruppe einer Anordnung mit M Gruppen. Sie enthält in + 1 A'-Zellen, die jede η Daten-Flipflops enthalten. Die n-1 Daten-Flipflops jeder X-Zelle, die nicht mit der Y-Zelle gemeinsam sind, sind mit X1, X2, . . . Xn^1 und das Vergleichs-Flipfiop einer jeden A'-Zelle ist mit C bezeichnet. Die in + j Flipflops der Y-Zelle sind mit Y„, + i ··■ ^m + I- Ym · · ■ Y1, und der Vergleichs-Flipflop der Y-Zelle ist mit G bezeichnet. Die m + 1 Daten-Flipflops, die der Y-Zelle und den A'-Zellen gemeinsam sind, können auf zweierlei Weise angegeben werden. In den Eingangsmustern von A'-Zellen-Befehlcn werden sie gemeinsam als Y-Flipflops bezeichnet, und bei Y-Zellen-Befehlen werden sie einzeln angegeben.
Die A'-Zellen werden zum Speichern und Bearbeiten von Wörtern verwandt. Die Wörter sind in den A'-Zellen mit je einem Bit pro Zelle gespeichert, das Daten-Flipflop Xt einer jeden Af-Zelle enthält ein unterschiedliches Bit des gleichen Wortes. Die am meisten rechts liegende Z-ZeIIe enthält das niedrigststellige Bit, und das höchststellige Bit ist in der dritten Α-Zelle von links enthalten. Die zweite Ä'-Zellc von links speichert das Vorzcichcn-Bit und die am weitesten links liegende A'-Zelle wird leergehalten, z. B. für eine Überlaufanzeige.
Auf der anderen Seite speichert die Y-Zelle Wörter mit je einem Wort pro Zelle, wobei das niedrigststellige Bit im Flipflop Y1, das höchststellige Bit im Flipflop Ym_j und das Vorzeichen-Bit im Flipflop Y1n gespeichert sind. Es ist einfach, ein Wort aus den Ä'-Zeilen zur Y-Zelle in derselben Gruppe zu übertragen; die Rückübertragung zu den A'-Zellen ist ebenso einfach. Daher kann ein Wort bequem entweder auf einer Bit-pro-Zelle-Grundlage in einer A'-Zelle oder auf einer Wort-pro-Zelle-Grundlage in einer Y-Zelle dargestellt werden. Da die Eingabe und Ausgabe am einfachsten auf einer Wort-pro-Zelle-Grundlage durchzuführen ist, besteht die Hauptfunktion der Y-Zelle darin, als Zugriffsregister für die A'-Zellen zu dienen.
Zur Beschreibung, wie die Anordnung der Af-ZeI-len und der Y-Zellen gesteuert wird, ist es bequem, den zweidimensionalen Speicher als zwei lineare Anordnungen von Zellen zu betrachten. Eine Anordnung umfaßt die Y-Zellen und die andere Anordnung besteht aus den Af-Zellen. Diese zwei Anordnungen können rechtwinklig zu ihrem Kontaktpunkt, den gemeinsamen Flipflops der X- und Y-Zellen, gedacht werden. .
Die Y-Zellenanordnung gleicht im wesentlichen dem oben beschriebenen Grundauffbau. Ihr Befehlssatz ermöglicht die drei Grundoperationen Vergleichen, Speichern und Lesen. Die A'-Zellenänordnung ist ebenfalls gleich in Bezug auf den Grundaufbau mit folgenden zwei Ausnahmen. Erstens ist die lineare Anordnung der A'-Zellen in Gruppen von A'-Zellen ,unterteilt. Diese Unterteilung ist dadurch verwirklicht, daß die Schaltungen, die die Übertragung der Aktivität zwischen der am meisten rechts liegenden Zelle in der einen Gruppe und der am meisten links liegenden Zelle in der rechts benachbarten Gruppe ermöglichen, weggelassen sind. Zweitens sind ihre Befehle nur zu den zwei Grundfunktionen Vergleichen und Schreiben fähig. Gelesen werden nur die Y-Zellen. Mit Ausnahme dieser zwei Unterschiede und dem Zusammenwirken mit den Y-Zellen ist die A'-Zellenänordnung in bezug auf den Speichergrundaufbau gleich.
Die A'-Zellen und die Y-Zellenanordnung wirken mittels der Vergleichs- und Schreibbefehle zusammen. In die Y-Zellen kann mittels zweier Verfahren eingeschrieben werden. Ein Verfahren besteht darin, direkt in die Y-Zellen-Flipflops über die Y-Zellen-Eingangsleitungen einzuschreiben. Auf diese Weise können die Wörter in die Zcllengruppen von einem äußeren Eingangsregister eingeschrieben werden. Das andere Verfahren besteht in dem Gebrauch der bedingten Speicherbefehle, wobei in das Flipflop Y der aktiven Af-Zellen über die Af-Zellen-Eingangsleitung geschrieben wird. Auf diese Weise kann auch das Wort von den Α-Zellen zu der Y-Zelle in der gleichen Zellengruppc übertragen werden.
Die Af-Zellen und Y-Zellenanordnungen wirken auch über sogenannte zwischendimensionale Steuersignale zusammen. Eine Gruppe nicht dargestellter Steuerleitungen verbindet alle A'-Zellen einer Gruppe mit der entsprechenden Y-Zelle. Zum Beispiel werden interdimensionale Steuersignale XYk zwischen der Y-Zelle k und der entsprechenden Gruppe von Af-Zellen übertragen. Die A'-Zellenbefehle können den Zustand einer Y-Zelle bestimmen, z. B. können die angeordneten Operationen nur in einer Gruppe von Af-Zellen durchgeführt werden, deren entsprechende Y-Zelle sich in einem bestimmten Zustand befindet. Normalerweise wird dies der aktive Zustand sein. Das erlaubt z. B. die gleichzeitige Aktivierung aller A'-Zellen in einer Zellengruppe, die eine aktive Y-Zelle enthält. Ähnlich kann ein Y-Zellenbefehl den A'-Stellenzustand bestimmen, z. B. wird eine Operation in einer Y-Zelle gemäß einem Befehl nur durchgeführt, wenn die Af-Zellen in der entsprechenden Gruppe einen bestimmten Zustand aufweisen. Dies gibt z. B. die Möglichkeit, daß eine Y-Zelle dann und nur dann aktiviert wird, wenn eine oder mehrere Af-Zellen in der entsprechenden Zellgruppe aktiv sind.
Die Befehlsform ist grundsätzlich die gleiche wie für die arithmetische Operation in einer linearen Anordnung, mit der Ausnahme, daß das letzte Zeichen der Operation bestimmt, ob der Befehl für die Af- oder Y-Zellen gilt. Außerdem kann in einem Af-Zellenbefehl sowohl die Aktivität des Y-Zellen-Vergleichs-Flipflops in derselben Zellengruppe als auch die Aktivität des A'-Zellen-Vergleichs-Flipflop C vorgeschrieben werden.
Zellengruppenisolierung
im zweidimensionalen Speicher
Der zweidimensionale Speicher ist so aufgebaut, daß alle Zellengruppen nach einem gegebenen Unterscheidungsmerkmal gleichzeitig bearbeitet werden, es ist jedoch zuweilen erforderlich, nur eine dieser Zellengruppen zu bearbeiten. Dazu ist ein zweites Kriterium erforderlich, das durch eine und nur eine
der Zellengruppen erfüllt wird. Für diesen Isolierungsvorgang kann eines von zwei Kriterien verwendet werden; eines basiert auf der Stellung, das andere auf dem Inhalt der Zellengruppe.
In einer Anordnung von Zellengruppen mit gleichem Inhalt hat jede Zellengruppe eine bestimmte Stellung in bezug auf die anderen. Zum Beispiel steht nur eine Zellengruppe in der Anordnung am weitesten links. Um zu sehen, wie diese Eigenart für die Isolation verwandt werden kann, wird eine Anordnung von Zellengruppen betrachtet, deren Y-Zellen-Flipflop Yn+2 auf »1« gestellt ist. Diese Zellengruppen werden jeweils einzeln durch das folgende Unterprogramm isoliert:
1. Löschen-Aktivieren von Y am weitesten links. t5 Deaktivieren aller Y-ZeIlen und dann Aktivieren der am weitesten links liegenden (O-te) K-ZeIIe.
2. Übertragen nach rechts Y(Yn + 20).
Übertragen der Aktivität der F-ZeIIe nach rechts, bis eine F-Zelle auftritt, die Ym + ., = 1 enthält.
3. Löschen-Vergleichen-Rechts Y (G = 1).
Verschieben der Aktivität um eine Y-Zelle nach rechts.
4. Löschen-Vergleichen Y (Ym + 2 = 1; G = 1).
Nur eine aktive Y-Zelle enthält Yn + 2-- 1. Deaktivieren aller anderen.
Die Zellengruppe, die die aktive Y-Zelle enthält, kann jetzt bearbeitet werden, ohne daß die anderen Zellengruppen, die Y1n+2-I enthalten, angesprochen werden. Die Befehle brauchen nur auf die Y-Zellenaktivität bezogen zu sein. Bei Beendigung der Operationen kann die nächste Zellengruppe gekennzeichnet durch Y1n + 2 = 1 durch Wiederholung der Schritte 2, 3 und 4 isoliert werden. Alle so gekennzeichneten Zellengruppen sind isoliert, wenn die am weitesten rechts liegende (M + 1-te) Y-Zelle aktiv wird.
In einigen Anwendungsfällen kann es notwendig sein, schnell eine unbesetzte Zellengruppe zur Aufnahme von Echtzeit-Eüigangsdaten zu finden. Ein alternatives Verfahren zur Erzielung dieses Ergebnisses besteht in der Verwendung eines Vorwärts-Rückwärts-Zählers in der Außensteuerung, um jeder freien Zellengruppe eine besondere Adresse zuzuteilen. Es sei angenommen, daß die Y-Zelle in jeder freien Zellengruppe Ym+2== 1 enthält und daß ihr eine Bestimmte Adresse durch den Zähler zugeführt wird. Das Auffinden der freien Zellengruppe besteht dann in der Ausübung des JSefehls:
Löschen-Vergleichen Y(Y1n+2 = 1, ■Yk_l . . - Y1),
wobei Yk, Yfe_j... Y1 den Inhalt des Zählers darstellt. Der Zähler wird dann als Vorbereitung für das Auffinden einer anderen freien Zellengruppe zurückgeschaltet. Auf weiche Weise Adressen den freien Zellengruppen zugeordnet werden, hängt davon ab, wieviele Zellengruppen zugleich unbesetzt sind. Wenn nur eine Zellengruppe frei wird, kann sie unmittelbar durch Heraufschaltung des Zahlers und Speicherung des Zählerinhälts zusammen mit Yn^2=I in ihrer Y-Zelle adressiert werden. Wenn zu einem Zeitpunkt eine Anzahl von Zellengruppen frei wird, können sie vorübergehend durch Speicherung von Y1n+2== 1 und Yk= Yft_,= ... =Yi==0iiÄren Y-Zellen gekennzeichnet werden. Immer dann, wetiü entsprechend der Angabe des Zählers der Vorrat an adressierten leeren Zellen zu klein wird, wird der vorher beschriebene Isolationsgang in Verbindung mit dem Zähler angewandt, um die zeitweilig gekennzeichneten Zellengruppen einzeln zu adressieren.
Eingabe für den zweidimensionalen Speicher
Der Eingabevorgang besteht aus dem Kopieren eines in einem außenliegenden Eingangsregister gespeicherten Wortes in vorgeschriebene Af-Zellen-Flipflops in allen gekennzeichneten Zellengruppen. Das Wort wird zuerst in die Y-Zelle jeder gekennzeichneten Zellengruppe eingeschrieben. Von da wird es übertragen in die angegebenen ^V-Zellen-Flipfiops, wo es auf einer Bit-pro-Zellen-Grundlage gespeichert wird. Durch Verwendung der Y-Zelle kann dieser Vorgang bitparallel durchgeführt werden.
Es wird angenommen, daß die Zellengruppen, die ein Eingangswort aufnehmen sollen, durch Yn + 2= 1 gekennzeichnet sind. Diese Kennzeichnung ist das Ergebnis einer anderen Operation (z. B. einer Isolation). Durch das folgende Programm wird das Eingangswort in die ^,-Flipflops dieser Zellengruppen eingeschrieben:
1. Deaktivieren aller Y-Zellen und dann Aktivieren der gekennzeichneten Y-Zellen.
Löschen-Vergleichen Y(Ym+2 = 1).
2: Einschreiben des Eingangswortes in alle aktiven Y-Zellen.
Bedingt Speichern Y(Yn,, Y^1 ... Y1).
3. Überschreiben von »!«-Werten in die A^-Flipflops.
Löschen-Vergleichen X (Y = 1; G = 1).
Bedingt Speichern X(X1 = 1).
4. Überschreiben von »O«-Werten in die ^-Flipflops.
Löschen-Vergleichen X (Y = 0; G = 1).
Bedingt Speichern X (X1 = 0).
Die Ausführung dieser sechs Befehle speichert das Eingangswort in die geeigneten X,-Flipflops. Dabei tritt keine Störung der vorher gespeicherten Informationen mit Ausnahme in den X(-Flipflops und der Y-Zelle einer jeden gekennzeichneten Zellengruppe auf.
Ausgabe aus dem zweidimensionalen Speicher
Das Lesen eines Wortes aus einer Zellengruppe ist im wesentlichen die Umkehrung des Eingabe-Vorganges. Jedes in den ΛΓ,-FIipflops einer geeignet gekennzeichneten Zellengruppe (z. B. durch Yn + 2 = 1) gespeicherte Wort wird zuerst in die entsprechende Y-Zelle wie folgt überschrieben:
1. Deaktivieren aller Y-Zellen und dann Aktivieren gekennzeichneter Y-Zellen.
Löschen-Vergleichen Y (Yn + 2 — 1)·
2. Überschreiben von »!«-Werten in die aktiven Y-Zellen. ·
Löschen-Vergleiehen X (X1 — i; G = 1).
Bedingt Speichern X (Y = I).
3. Überschreiben von »O«-Werten in die aktiven Y-Zellen. :...- ;·.,:. ;
LÖschen-Vergleiehen X (X1 =± ■ GfeCr = I).
Bedingt Speichern X (Y = Q). 1
309 622/140
Es entsteht jedoch ein Problem, wenn mehr als ein Wort auszulesen ist. Da alle Y-Zellen gemeinsame Ausgangsleitungen haben, bewirkt der Versuch, mehr als ein Wort zugleich auszulesen, daß das Ausgangsregister die logische ODER-Verknüpfung aller Ausgangsinformationen enthält, wodurch jedes einzelne Wort unleserlich wird. Daher ist im Fall von mehreren Ausgangswörtern der vorher beschriebene Isolationsvorgang notwendig.
Er könnte als Schritt 4 bis 7 in dem Programm angewendet werden. Der Schritt 8 würde dann sein:
8. Auslesen des Inhalts der aktiven K-ZeIIe.
Lesen Y.
Vergleichen im zweidimensionalen Speicher
Das Vergleichen eines Satzes von Wörtern mit einem einzelnen äußeren Wort erfolgt durch einen wortparallelen Serienbit-Vorgang. Es wird angenommen, daß jedes der zu vergleichenden Wörter sich in den Z,-Flipflops von verschiedenen Zellengruppen befindet und daß jede solche Zellengruppe durch Yn, + ,= 1 gekennzeichnet ist. Es wird weiter zur Vereinfachung angenommen, daß alle Wörter positiv sind. Durch das folgende Programm werden alle Wörter des Vergleichssatzes, die gleich oder größer als das äußere Vergleichswort sind, gefunden:
1. Einschreiben des Vergleichswortes in alle Y-Zellen, die Ym + 2 = 1 enthalten.
Löschen-Vergleichen Y(Yn, + .> = 1).
Bedingt Speichern Y (Ym, Y111-1 . . . Y1).
2. Deaktivieren der Y-Zellen in Zellengruppen, die keine Z-Zelle mit Z; = 0, Y=I enthalten, nach links von der am weitesten links liegenden Z-Zelle, die X1 = 1, Y = 0 enthält.
Löschen-VergleichenZ (Z1- = 1, Y = 0; G = 1). . Übertragen Rechts Z.
Bedingt Speichern Z (Y = 0).
Löschen-VergleichenZ (Z1- = 0, Y = 1; G = 1). Löschen-Übertragen der Aktivität Y (C = 1).
3. Alle aktiven Y-Zellen befinden sich in Zellengruppen, die Wörter enthalten, welche nicht den Vergleichsangaben genügen. Löschen ihres Markierbits.
Bedingt Speichern Y (Ym + 2 = 0).
Dieses läßt sich zur Auffindung aller Wörter verwenden, die gleich oder kleiner als das Vergleichswort sind, indem die Werte von Z1- und Y in Schritt 2 komplementiert werden. Es ist die Ausführung vo'n acht Befehlen erforderlich, von denen einer ein Übertragungsbefehrist, der sich über m — l Zellen für Wörter von m Bits erstrecken kann. Die gesamte Ausführungszeit beträgt daher (m + 6) f.
Addition in der zweidimensionalen Anordnung
Obgleich das Additionsprogramm, das für die Einzelspeicheränordriung beschrieben wurde, auch für diesen Speicher geeignet ist, ist es zweckmäßig, hier
noch eine andere Form zu betrachten. Dieses Programm sieht eine akkumulative Addition vor, bei der der eine Summand, zu dem addiert wird, das Ergebnis vorangegangener Additionen ist und jeder zu addierende Summand nicht gespeichert zu werden braucht. Eine Überlaufanzeige ist ebenfalls vorgesehen.
Die Zellengruppen, die zu addierende Paare beinhalten, seien durch Ymt.,= 1 gekennzeichnet, jeder zu addierende Summand sei in den A^-Flipflops und jeder Summand, zu dem addiert werden soll, sei in den Ζ.,-Flipflops gespeichert. Der akkumulative Additionsvorgang ist dann wie folgt:
Die Schritte 2 bis 8 würden wiederholt werden, bis alle Wörter ausgelesen sind.
1. Auffinden aller Zellengruppen, die zu addierende Paare enthalten.
Löschen-Vergleichen
2. Bilden von Teilsummen in den Ζ.-,-Flipfiops.
Löschen-VergleichenZ(Z1 = 1,Z2 = 0; G = 1).
Bedingt Speichern Z (Z1 = 0, Z2 = 1).
Löschen-VergleichenZ(Z1 = 1,Z2 = 1; G = 1). Bedingt Speichern Z (Z1 = ü, X2 = 0).
3. Überträge zusammenfassen.
Übertragen Links X (X1 = 0, Z2 = 1).
Löschen Vergleichen Links X(C- 1).
Bedingt Speichern Z (Z1 = 1).
4. Überträge zur Teilnahme addieren, Speichern in den Z.,-Flipflops.
Löschen-VergleichenZ (Z1 = 1,Z2 = 1; G = 1). Bedingt Speichern Z (Z1 = 0, Z2 = 0).
Löschen-VergleichenZ (Z1 = 1,Z2 = 0; G = 1).
40 , Bedingt Speichern (X1 = 0, Z2 = 1).
Man beachte, daß die ZrFlipflops im Hinblick auf den nächsten Summanden gelöscht werden. Ein Uberlauf wird von dem Z.,-Flipflop in der am weitesten links liegenden Z-ZeUe, die eine »1« enthält, angezeigt.
Es ist die Ausführung von zwölf Befehlen erforderlich. Einer dieser Befehle kann eine Übertragung über m Zellen für m-Bit-Wörter erfordern. Die gesamte Durchführungszeit beträgt daher (m + 11) t.
Multiplikation im zweidimensionalen Speicher
Zur genauen Multiplikation von zwei m-Bit-Wörtern zwecks Gewinnung eines m-Bit-Produkts ist grundsätzlich ein Vorgang erforderlich, der aus m Additionen abwechselnd mit m Teilproduktverschiebungen besteht. Die Überträge müssen hier erst nach der Endaddition zusammengefaßt werden. Dieses Verfahren einer »Übertragsspeicherung« verringert die Anzahl der erforderlichen Übertragungsbefehle, so daß die erforderliche Ausführungszeit verringert wird.
', Diejenigen Zellengruppen, welche ein Multiplikant-Mültiplikator-Paar enthalten, seien gekennzeichnet durch Ym + 2= 1· Die Zj-Flipflops enthalten den /n-Bit-Multiplikanten, die Ζ,-Flipflops enthalten den
m-Bit-MultipIikator und das resultierende m-Bit-Produkt wird in den AT3-Flipflops gespeichert. Die X4-Flipflops werden zur Übertragsspeicherung benutzt. Das Programm zur gleichzeitigen Bildung der entsprechenden Produkte irgendeiner Zahl solcher Paare lautet wie folgt:
1. Einstellen des außenliegenden Indexregisters auf 0. Auffinden der Zellengruppen, die zu multiplizierende Paare enthalten und Löschen der Flipflops X3, Xt und Y.T = 3t.
2. Auffinden der Zellengruppen, die negative MuI-tiplikanten enthalten und deren Kennzeichnung durch Einstellen Y1n + 3 = 1, T = 6/.
3. Bilden der Zweier-Komplemente des Multiplikanten und Multiplikators in den Zellengruppen, die mit F1n+3 = 1 gekennzeichnet sind.
T = (2 m +13) f.
4. Löschen eines Überlaufs, der von der Komplement-Bildung herrührt, und Auffinden aller Zellengruppen, die Ymt.., = 1 enthalten. T — 3t.
5. Erhöhung k um 1. Addieren der Überträge in den A^-Flipflops zu den Teilprodukten in den Z.j-Flipflops in allen Zellengruppen, die durch ^m + o = 1 markiert sind. T = At.-
6. Auffinden aller Zellengruppen, wo das fc-te Multiplikator-Bit»!« ist, und Addieren des Multiplikanten zu dem Teilprodukt. T = 91.
7. Verschieben aller Teilprodukte um ein Bit nach rechts, Eingabe einer »1« in das Vorzeichen-Bit negativer Produkte. T = 81.
8. ist k = m? Wenn nicht, dann zurückgehen zu 5.; wenn ja, Überträge im Flipflop Xi zusammenfassen, um das Endprodukt in den Flipflops X.t zu bilden. T= (m+10) Λ
An diesem Punkt ist jedes der m-Bit-Produkte in den Z3-Flipflops seiner entsprechenden Zellengruppe gespeichert. Die Schritte 1, 2, 3, 4 und 8 sind je einmal und die Schritte 5, 6, und 7 je m-mal ausgeführt worden, was eine Gesamtausführungszeit von (24 m + 35) t ergibt. Wenn es erforderlich ist, alle Multiplikatoren und Multiplikanten in ihre ursprüngliche Form zurückzuführen, müssen die Schritte 3 und 4 wiederholt werden, was eine zusätzliche Ausführungszeit von (2m + 16) t ergibt.
Es sollte bemerkt werden, daß dieses Programm den allgemeinsten Fall betrifft, für den alle Multiplikatoren und alle Multiplikanten verschieden sein können. Das Quadrieren und Multiplizieren mit einem gemeinsamen Multipliktor stellen vereinfachte Fälle dar, für die sich Programme mit kürzerer Ausführungszeit schreiben lassen.
Matrix-Multiplikation
mxn-Matnx erfordert mrcp-getrennte Multiplikationen und mp(n~ l)-getrennte Additionen. Diese Zahlen werden bereits für mittlere Werte von m, η und ρ sehr groß. Mit dem zweidimensionalen Speicher sind nur «-getrennte Ausführungen eines kombinierten Multiplikations- und Additions-Programms erforderlich.
Die zwei zu multiplizierenden Matrizen sollen A und B und die resultierende Produkt-Matrix soll C sein. Die Elemente von A, B und C sind aih bu und cu
ίο und haben die Beziehung
k—1
»5 Dieser Ausdruck gibt einen Einblick, wie die Elemente gespeichert werden sollten, um den Vorteil der parallelen Bearbeitungsfähigkeit auszunutzen. Jedes Element C wird in einer getrennten Zellengruppe gebildet; die Zellengruppe mit dem Element C11 wird mit Gh bezeichnet. Dann muß für die Multiplikation k die Zellengruppe G,-, die Elemente aik und bkj erhalten, sie multiplizieren und das resultierende Produkt zu der Summe vorhergebildeter Produkte addieren. Dieses Verfahren zeigt zwei Vorteile des zweidimensionalen Speichers. Erstens kann das gleiche Element gleichzeitig in eine Anzahl von Zellengruppen gegeben werden. Zum Beispiel muß bei der vierten Multiplikation a2i in die Zellengruppen G21, G22... G2p gegeben werden. Zweitens können, wenn in alle Zellen eingeschrieben worden ist, die Paare gleichzeitig multipliziert und die resultierenden Produkte gleichzeitig zu den vorhandenen Summen addiert werden. Dennoch können nicht alle Operationen vollständig parallel durchgeführt werden. Die Eingabe erfolgt teilweise seriell, da nur in gewisse Zellengruppen gleichzeitig eingeschrieben werden kann. Die Ausgabe erfolgt ausschließlich seriell, da die Position eines jeden Elements in der Produkt-Matrix sowie sein Wert bekannt sein muß. Diese Serienoperationen erfordern, daß jeder Zellengruppe eine eindeutige Bezeichnung gegeben wird.
Die Zellengruppe Gu soll durch Speichern des Wertes i in den A^-FIipflops der Z-Zellen in der linken Hälfte der Zellengruppe und des Wertes / in den Afj-Flipflops der rechten Hälfte bezeichnet werden. In jeder Zellengruppe werden X2 -Flipflops zur Aufnahme des Wertes c,·,· und die Xs- und Äf4-Flipflops zur Aufnahme der Werte aik bzw. bkj benutzt. Die Flipflops X5 und X6 werden zum vorübergehenden.
Speichern während jeder Multiplikation gebraucht, X5 enthält die Überträge und Xe das Teilprodukt.
Das Matrix-Multiplikations-Programm wird ausgeschrieben angegeben, da alle vorkommenden Programme in vorhergehenden Abschnitten beschrieben wurden. Abwandlungen sind jedoch vermerkt, und die erforderliche Ausführungszeit T ist für jedea Schritt gegeben. Die Matrix A ist mxn, die Matrix B ist nxp und alle Matrizen-Elemente haben b Bits.
60
Dieses Programm wird als Beispiel dafür angegeben, wie einige der vorhergehenden Programme kombiniert werden können, um ein vollständiges Problem zu behandeln. Es dient also als ein Beispiel für die Leistung eines zv/eidimensionalen Speichers bei der Mengen-Bearbeitung.
Die Multiplikation einer /urp-Matrix mit einer
1. Auffinden mp-leerer Zellengruppen, Kennzeichnen Yn, + ο = 1 und Speichern eines Paares // in jeder Zellengruppe.
T= 6mpt.
2. Einstellen des Indexregisters k auf 0 und Löschen der A^-Flipflops in allen gekennzeichneten Zellengruppen. ,
T= 3 t.
3. Einstellen der Indexregister ι und / auf O, Erhöhen k um 1.
4. Erhöhen i um 1.
5. Eingeben des Elements aik in alle bezeichneten Zellengruppen, die / in Afj-Flipflops enthalten. Wenn i = m, Schritt 6, sonst Schritt 4.
T=IIi.
6. Erhöhen / um 1.
7. Eingeben des Elements bkj in alle bezeichneten Zellengruppen, die / in den X1 -Flipflops enthalten. Wenn / = p, Schritt 8, sonst Schritt 6.
T=IIi.
8. Durchführen der k-ten Multiplikation, mit Ausnahme der Endübertrags-Zusammenfassung in allen gekennzeichneten Zellengruppen. Es ist keine Markierung der Komplemente notwendig, da die Elementgrößen nicht aufbewahrt werden müssen.
T= (236 + 21)/.
9. Addieren der Überträge und Teilprodukte zur Summe vorangegangener Produkte in allen gekennzeichneten Zellengruppen. Wenn k = n, Schritt 10, sonst Schritt 3.
T = (b + 20)i.
10. Alle markierten Zellengruppen enthalten ein Element von C Auslesen der Elemente eins nach dem anderen.
T= (6mp + 4)t.
Die oben beschriebene Anordnung erläutert nur die Grundzüge der Erfindung. Der zweidimensionale Speicher ist beispielsweise in bezug auf die Geschwindigkeit in Anwendungsfällen von Bedeutung, wo das Gauß-Jordan-Verfahren Anwendung findet. Diese Anwendungsfälle umfassen Lösungssysteme von linearen Gleichungen, die Invertierung nichtsingulärer Matrizen und das Lösen linearer Programmierprobleme. Die Fähigkeit des Speichers, Extremwerte durch paralleles Abtasten aufzufinden, macht ihn besonders für die Anwendung bei Linearprogrammierungen bedeutsam.
Hierzu 2 Blatt Zeichnungen

Claims (3)

Patentansprüche:
1. Assoziativer Speicher mit einer ersten Anordnung gleicher Zellen, die je eine Vielzahl von Registern zur Speicherung von Dateneinheiten enthält, einer Signalquelle, Signaleingangsleitungen, die Eingangsdaten von der Signalquelle gleichzeitig jeder Zelle zuführen, und logischen Schaltungen in jeder Zelle zum Steuern der Speicherung der Eingangsdaten in vorgewählten Zellen gleichzeitig mit dem Empfang von Steuersignalen auf Gruppensteuerleitungen, dadurch gekennzeichnet, daß jede Zelle der ersten Anordnung (z. B. die Zelle 40b) so ausgelegt ist, daß sie ein Wort aus vielen Einheiten mit je einem Wort pro Zelle speichert und einer bestimmten Gruppe von Zellen einer zweiten Anordnung zugeordnet ist (z. B. Gruppe 41a, 416 . . . 41«), die so ausgelegt ist, daß sie alle Dateneinheiten eines Wortes gleichzeitig von der entsprechenden Zelle der ersten Anordnung zur für die Durchführung von arithmetischen Operationen geeigneten Speicherung mit je einer Einheit pro Zelle empfangen kann, daß jede Zelle der zweiten Anordnung eine Vielzahl von Registern [X1, X., ... Xn.ι) für die Speicherung von Dateneinheiten enthält und daß jede in einer entsprechenden Zelle der ersten Anordnung gespeicherte Dateneinheit zu einem vorgewählten Register einer entsprechenden Gruppe von Zellen der zweiten Zellenanordnung bei Empfang von Signalen auf Zelleneingangsleitungen (C/) und Zellensteuerleitungcn [CC) durch die logischen Schaltungen (CL) jeder Zelle der zweiten Anordnung übertragen wird.
2. Speicher nach Anspruch 1, dadurch gekennzeichnet, daß jede Zelle Schaltungen (214-221- 230) zum Vergleichen des Inhalts der Register [X1, X., ... X,n) mit den Eingangsdatensignalen enthält, ferner eine Vorrichtung [MA1) zum Anzeigen der Zellenaktivität und eine Gatterschaltung (201), die durch den gleichzeitigen Empfang der Signale von der Vorrichtung zur Anzeige der Aktivität und von den Vergleichsschaltungen zur Übertragung von Signalen zwischen benachbarten Zellen erregt werden können.
3. Speicher nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jede Einheit eines Datenworts mit mehreren Einheiten in verschiedenen Zellen gespeichert ist und daß Schaltungen, die die Vorrichtung zum Anzeigen der Aktivität [MAi) und die Register [X1, X2 ... Xn _j) umfassen, so ausgelegt sind, daß sie arithmetische Operationen mit einem Paar von gespeicherten Wörtern durchführen, wobei jedes Paar entsprechender Dateneinheiten in der gleichen Zelle gespeichert ist.
DE19651474574 1964-09-09 1965-09-02 Assoziativer Informationsspeicher Expired DE1474574C (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US39516164 1964-09-09
US395161A US3391390A (en) 1964-09-09 1964-09-09 Information storage and processing system utilizing associative memory
US465088A US3376555A (en) 1964-09-09 1965-06-18 Two-dimensional associative memory system
DEW0039849 1965-09-02

Publications (3)

Publication Number Publication Date
DE1474574A1 DE1474574A1 (de) 1969-08-21
DE1474574B2 DE1474574B2 (de) 1972-11-02
DE1474574C true DE1474574C (de) 1973-05-30

Family

ID=

Similar Documents

Publication Publication Date Title
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE1146290B (de) Elektronisches Datenverarbeitungssystem
DE2364408B2 (de) Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers
DE2457612B2 (de) Mikroprogrammier-Steuereinrichtung
DE1197650B (de) Parallel-Addierer
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE2423265C3 (de) Optimierende Rechenmaschine
DE1774164B1 (de) Datenverarbeitungsanlage mit mehreren gleichzeitig taetigen verarbeitungseinheiten
DE1115488B (de) Datenverarbeitungssystem
DE1499739B2 (de) Datenspeicher zur gleichzeitigen Entnahme mehrerer Worter
DE1266026B (de) Verfahren und Anordnung zum Verhüten einer Änderung eines Speichermhaltes
DE1499191B2 (de) Elektronische einrichtung fuer eine datenverarbeitungsanlage
DE1474376A1 (de) Verfahren und Anordnung zum schnellen Zugriff bei grossen seriellen Speichern
DE1957600C3 (de)
DE1474574C (de) Assoziativer Informationsspeicher
DE1549422B2 (de) Datenverarbeitungsanlage mit variabel vorwaehlbarer wortlaenge
DE1449584A1 (de) Anordnung zur UEbertragung von Daten einer Loch- oder Magnetkarte in eine Datenverarbeitungsanlage oder umgekehrt
DE1474574B2 (de) Assoziativer Informationsspeicher
DE2000608A1 (de) Schaltungsanordnung fuer eine Nachrichtenverarbeitungs-,insbesondere fuer eine Nachrichtenvermittlungsanlage
DE1549446A1 (de) Digitalrechner
DE1474090B2 (de) Datenverarbeitungsanlage
DE1474041C3 (de) Anordnung zum Sortieren von in zufälliger Reihenfolge aufgenommener Informationsbit Gruppen
DE3340078A1 (de) Prozessor-zelle zur verwendung in einer aus derartigen zellen gebildeten anordnung
DE1449581B2 (de) Vorrichtung zum auslesen eines rechenmaschinen grosspeichers