-
Ortsadressierter Assoziativspeicher
-
Die Erfindung bezieht sich auf die Hardware-Realisierung eines kaskadierbaren
und damit modular erweiterbaren "ortsadressierten Assoziativspeicher" Sowohl die
Assoziativspeicher als auch die ortsadressierten linearen Speicher sind bekannt
(vergl. K. Waldschmidt: Schaltungen der Datenverarbeitung, 1980).
-
Ein Assoziativspeicher wird auch als inhåltsadressierbarer Speicher
bezeichnet. Zur Ermittlung der-gespeicherten Daten bei einem Assoziativspeicher
sind die Dateninhalte und nicht die Orte, an denen sich die Daten befinden, ausschlaggebend,
sondern das ortsunabhängige Assoziationskriterium. Den Gegensatz zu den Assoziativspeichern
bilden die ortsadressierbaren Speicher. Hier ist der Ort und damit die angelegte
Adresse zur Ermittlung der Daten maßgebend.
-
Ein wortorientierter Assoziativspeicher, der zur Speicherung von Daten
mit jeweils n-Bit Wortlänge ausgelegt ist, besitzt im allgemeinen als Eingänge ein
n-Bit Suchwort und ein n-Bit Mäskenwort. Die Ausgänge des Speichers werden durch
ein 1-Bit Treffersignal und ein n Bit Ausgabewort gebildet. Das Ausgabewort kann
n + k-Bit Stellen beinhalten, wenn ein Wort im Speicher aus einem n Bit Assoziationsteil
und einem weiteren k-Bit Datenteil besteht. Während man bei ortsadressierbaren Speichern
die Arbeitsphasen Speichern und Lesen kennt, können bei einem Assoziativspeicher
mindestens drei Arbeitsphasen existieren. Die erste Phase bildet die Abspeicherung
der Information, die auch Schreibphase genannt wird. In der Schreibphase können
mehrere Speicherplätze simultan zur Speicherung der Daten adressiert werden.
-
Die zweite Phase beinhaltet die Suche nach einer Information im Speicher,
die bei den meisten der realisierten Assoziativspeicherkonzepten auf Vergleichsoperationen
zwischen dem angelegten Suchwort und den S>-icherinhalten-(z. B.
-
Deutsches Patent 2525287) basiert. Der Vergleich kann seriell oder
auch parallel stattfinden.
-
In der dritten Arbeitsphase werden die gefundenen Informationen aus
dem Speicher geholt. Diese Phase wird auch als-Lesephase bezeichnet. Die angegebenen
Phasen können: jedoch in be-liebiger Reihenfolge in unterschiedlicher Zahl erfolgen.
-
Mit den vorhandenen Assoziativspeicherkonzepten lassen sich integrierte
Schaltkreise im Vergleich zu den ortsadressierten Speichern nur mit geringen Speicherkapazitäten
realisierea- (z. B. Datenblatt Intel 31o4 Fa. Intel Wort. Santa Clara, California
95o51). In Anbetracht der limitierten Pinzahl eines integrierten Schaltkreises sind
die Konzepte, die sich modular, wie bei den integrierten ortsadressierten Speichern,
erweitern lassen, infolge der großen Zahl der notwendigen Anschl-üsse eines Assoziativspeichers
schwer realisierbar, wenn die Vergleichsoperationen parallel erfolgen sollen.
-
Die Konzepte, die serielle Vergleichsoperationen anwenden, erfordern
zur Be-Bestimmung von Treffern relativ viel Zeit.
-
Der Erfindung liegt die Aufgabe zugrunde, das Konzept eines Assoziativspeichers
zu entwickeln, das die Aufgaben eines parallelarbeitenden Assoziativspeichers erfüllt
und die modulare Erweiterbarkeit eines ortsadressierten Speichers besitzt. Diese
Aufgabe wird erfindungsmäßig dadurch gelöst, daß das Suchwort eines Assoziativspeichers
mit dem entsprechenden Maskenwort zusarwnien durch eine geeignete schaltung die
Adressen von Speicherzellen eines vergleichbaren 1-Bit ortsadressierbaren Speichers
zur Bestimmung der gewünschten Treffer-Informationen bilden. Hier wird keinerlei
Vergleichsoperationen durchgefuhrt. Der Inhalt des 1-Bit Speichers gibt als eine
Kennung an, ob die gesuchte Information zuvor im Speicher durch das Ablegen einer
Kennung in der zugehörigen Speicherzelle gespeichert worden ist.
-
Die Assoziation wird bei dem Speicher durch eine geeignete Decoder-Schaltung
zur Adressbestimmung mit.Hilfe des Informationsortes (Ort der Kennung) durchgeführt,
so daß der Speicher im folgenden als "ortsadressierter Assoziativspeicher" oder
kurz OASS genannt wird
Zur Bestimmung des Treffersignales bei dem
OASS mit Hilfe eines Adressdecoders werden alle zu einem maskierten Suchwort möglichen
Kombinationen des Suchwortes herangezogen, die durch das zugehörige Maskenwort ermittelt
werden können. Bei einem Suchwort der Länge n können maximal 2nmögliche, unterschiedliche
Worte als zu verarbeitende Information existieren. Falls ein Suchwort S i sn sn
1n* s3 s2 s1 für die Assoziation vorliegt, so handelt es sich um eine der 2n möglichen
Kombinationen, wenn das Suchwort nicht maskiert (M = 0) ist. Hier muß nur nach der
vorliegenden Kombination des Suchwortes S gesucht werden. Ist ein Bit des Suchwortes
- z. B. LSB (Last significant Bit) - durch Maskenwort maskiert, so kann die letzte
Stelle (LSB) des Suchwortes entweder "O" oder "1" sein. O. h. es sind nur zwei Wörter
S = so sn~1 sn. s3 s2 0 und S = S1 = sn s" 1...s3 s2 1, die ein Treffersignal liefern
können, so daß die maskierte Stelle wie eine redundante Stelle betrachtet werden
kann. Bei einer weiteren maskierten Stelle des Suchwortes erhält man zwei redundante
Stellen des Suchwortes, die zu 22 = 4 möglichen Kombinationen des Suchwortes als
gesuchte Information führen können.
-
Im allgemeinen Fall bei q maskierten Stellen des Suchwortes können
2q mögliche Kombinationen als gesuchte Information relevant sein. Unter Berücksichtigung
dieser Bedingung kann das Suchwort als Adresse eines Ein-Bit-Speicherwortes von
herkömmlichen linearen ortsadressierten Speicher aufgefaßt werden, der einen erweiterten
Adressdecoder im Vergleich zu linearen Speichern zur Adressierung von bis zu 2 Speicherzellen
besitzt. D. h. es wird für jedes Suchwort eine Speicherzelle des Speichers zum Ablegen
der zugehörigen Kennung reserviert, die mit dem entsprechenden Suchwort adressiert
werden kann.
-
In der Suchphase wird das Suchwort als Adresse des Speichers angelegt.
Eine 11111 als Inhalt der adressierten Speicherzelle gibt an, ob das gesuchte Wort
zuvor in den Speicher gespeichert wurde. Der Inhalt der Speicherzelle kann direkt
als Treffersignal ausgewertet werden.
-
Wenn das Suchwort nicht maskiert ist, kann nur eine Speicherzelle
die Aussage über die Trefferinformation liefern.
-
Bei der Maskierung eines Suchwortbits sind zur Bestimmung des Treffersignals
zwei Speicherzellen zu adressieren. Beinhaltet eine der beiden Zellen eine "1",
so liegt ein Treffer vor.
-
Je nach Zahl und Wertigkeit des maskierten Bits des Suchwortes kann
mit Hilfe der in der Tabelle 1 angegebenen Kombinationen bestimmt werden, welche
der
Die als Beispiel aufgeführte Tabelle 1 enthält in den ersten
zwei Spalten die für 3 Bit Such- und Maskenwort möglichen Kombinationen. Bei 3 Bit
Worte sind im Speicher maximal 23 = 8 Speicherzellen notwendig, die jeweils mit
den Adressen a0 bis a7 (Spalte 3 der Tabelle) adressiert werden können. Aus der
Tabelle können die Beziehungen zur Realisierung der Adressdecoder des Speichers
ermittelt werden, die als minimierte Gleichungen 1-1 bis 1-8 für das Betrachtete
Beispiel angegeben sind. In der Abbildung 1 ist eine prinzipielle Realisierung des
Adressdecoders für einen 3 Bit ortsadressierten Assoziativspeicher mit Hilfe der
bestimmten Gleichungen für die Adressleitungen aO bis a7 angegeben.
-
a0 = (m1#s1) v (m2#s2) v (m3#s3) v ... (1-1) a1 = (m2#s2) v (m3#s3)
v (m1#s1) v ... (1-2) a2 = (m1A ) v (m3A S3) V (m2m S2) @@@@ v ... (1-3) a3 = (m3#s3)
v (m1#s1) v (m2#s2) v ... (1-4) a4 = (m1#s1) v (m2#s2) v (m3#s3) v ... (1-5) a5
= (m2#s2) v (m1#s1) v (m3#s3) v ... (1-6) a6 = (m1#s1) v (m2#s2) v (m3#s3) v ...
(1-7) a7 = (m1#s1) v (m2#s2) v (m3#s3) v ... (1-8) Die Abbildung 2 stellt die Schaltung
des OASS-Beispiels (ADRS) mit den entsprechenden Adressdecoder (ADR) und den zugehörigen
Speicherzellen (SPZ) dar.
-
Die Speicherzellen besitzen jeweils einen Adresseingang sowie die
Eingänge "WR" als Schreib-Lese-Signal und "D" als Dateneingang. Das Signal WR gibt
an, ob eine Information in den Speicher geschrieben (WR = 1) oder aus dem Speicher
gelesen werden soll (WR = O). Das Signal D kann in der Schreibphase den Inhalt der
durch den Adressdecoder (ADR) adressierten Speicherzellen verändern.
-
Hier wird ein weiterer Unterschied zu den ortsadressierten Speichern
deutlich. Falls ein Suchwort S während der Schreibphase maskiert ist (M # O),
wird die Information D in mehreren Speicherzellen, die in Abhängigkeit vom Maskenwort
durch den Adressdecoder bestimmt werden, gespeichert (Multi-Write-Funktion). Wenn
alle Bits des Suchwortes maskiert sind, wird die Information D in sämtlichen Zellen
gespeichert.
-
Der letztgenannte Fall kann auch zur Initialisierung (Löschen des
Speichers) des gesamten Speichers in einem Schreibzyklus mIt D = 0 dienen, so daß
auf ein gesondertes Löschsignal (Clear) für die Speicherzellen verzichtet werden
kann.
-
Die Initialisierung eines Assoziativspeichers ist notwendig, da die
Speicherinhalte, die beim Einschalten des Speichers willkürliche Werte annehmen
kön nen, ohne Initialisierung des Speichers nicht die tatsächlich gespeicherten
Informationen widerspiegeln.
-
Der Verzicht auf ein Löschsignal vermindert den Hardwareaufwand.
-
Die Ausgänge der Speicherzellen werden als Ausgänge mit hochohmigen
Zustand (Tri-state) ausgeführt. Der Treffer-Ausgang TRA des Speichers wird durch
das Zusammenverbinden aller Speicherzellenausgänge, das eine ODER-Schaltung der
Ausgänge darstellt, realisiert. Das TRA-Signal zeigt einen Treffer an, wenn eine
der adressierten Speicherzellen eine Treffer-Kennung fuhren.
-
In Abbildung 3 ist die Speicherschaltung mit der Erweiterung der Speicherzellen
in Speicherworte mit jeweils k-Bit Wortlänge dargestellt. Damit erreicht man, daß
der Speicher sowohl einen Assoziativteil als auch einen Datenteil besitzt. Der assoziative
Teil eines Wortes wird durch die Worte S und M bestimmt.
-
Der Datenteil ist der Inhalt des Speicherwortes. In der Schaltung
wird das Treffersignal durch die ODER-Schaltung aller k-Bits eines Datenwortes bestimmt.
-
Eine Information ist nur dann in einem Datenwort gespeichert, wenn
mindestens ein Bit des Datenwortes gleich "1" ist. Die Ausgangssignale wl bis wk
geben das gefundene Datenwort an. Dieser Funktionsweise des Speichers geht die oben
angegebene Initialisierung des Speichers voraus.
-
Eine weitere Möglichkeit besteht darin, daß ein Bit des Datenwortes
(z. B. wl zur Speicherung von Treffersignalen (Inhalt der Speicherzelle w1=1) als
eine Kennung reserviert wird. Die Ausgangssignale in diesem Fall werden durch das
Treffersignal TRA = w1 und die Datenbits w2 bis wk gebildet.
-
Die Arbeitsphasen des Speichers können zusammenfassend wie.folgt wiedergegeben
werden: In einer Initialisierungsphase wird M = 11....111, D = 0 und WR = 1 der
gesamte Speicher gelöscht. Nach der Initialisierungsphase beinhalten alle Speicherzellen
jeweils Nullen. Die Schreibphase, oder auch die Speicherungsphase genannt,
erfolgt
mit dem Signal WR = 1 sowie dem Suchwort S und dem Datenwort D. Mit M =O wird nur
das Speicherwort mit der Adresse S zur Obernahme der Information D adressiert. In
der Schreibphase werden mit M E O mehrere Speicherworte gleichzeitig adressiert.
Die Information D wird in alle adressierte Speicherworte gleichzeitig übernommen.
-
Die Such- und Lesephase des Speichers liegen vor, wenn WR = 0.
-
In der Suchphase wird in Abhängigkeit des angelegten Suchwortes S
und des angelegten Maskenwortes M das Treffersignal TRA durch Adressierung der relevanten
Speicherworte mit Hilfe des Adressdecoders ADR ermittelt. Bei TRA = 1 liegt mindestens
ein Treffer-im Speicher vor. Die Ermittlung des Treffersig nals erfolgt parallel
in einem Speicherzyklus. Nach der Bestimmung des Tref fersignals TRA = 1 besteht
die Aufgabe, die entsprechenden Assoziations- und Dateninformationen, die tatsächlich
ein Treffersignal führen, auszugeben.
-
Zur Lösung der Aufgabenstellung wird ein maskierter Zähler" (MZ) eingesetzt.
-
Der Zähler, der die gleiche Wortlänge wie-S besitzt, adressiert durch
ein Takt signal in sukzessiver Form die durch die Wörter S und M möglichen Speicherplätze,
die einen Treffer fuhren können. Bei jedem Zählschritt wird überprüft, ob TRA =
1. In diesem-Fall wird der Zählvorgang gestoppt, damit die gefundene Information
ausgegeben werden kann. Ein neues Steuersignal "SW" (weitersuchen) zeigt an, daß
weiter gesucht werden soll. Das Ende des Zählvorganges wird erreicht, wenn alle
maskierten Stellen des Suchwortes durch den Zähler jeweils den Wert 1 aufweisen.
-
Für den Entwurf des Zählers wird die Tabelle 2, die die Funktion des
Zählers (MZ) festlegt, zur Hilfe genommen.
-
Zur Realisierung der Schaltung (Abb. 4) wird ein n-Bit-Dualzähler
eingesetzt.
-
Mit einem anschließenden Schaltnetz wird bestimmt, welche Suchwörter
zur Erzeugung der Adressen zu berücksichtigen sind. Das Schaltnetz beinhaltet die
Eingänge S, M und Z sowie die Ausgänge S, die die Adressen für ADRS darstellen.
Die Eingänge Z Zn. Zn 1 .... Z3 Z2 Z1 sind die Zählerausgänge
Das
Schaltnetz, das als Auswahlschaltung dient, hat die Aufgabe für die Bitstellen des
S-Wortes, die nicht maskiert sind, die gleichen Bitstellen des Suchwortes S durchzulassen.
Die Stellen des Suchwortes, die maskiert sind, werden durch Zählerausgänge Z mit
Z1 beginnend ersetzt. Der Zählerausgang Z1 wird an der maskierten Stelle des Suchwortes
mit der niedrigsten Wertigkeit durchgelassen. Für die Stelle mit zweitniedrigster
Wertigkeit wird der Zählerausgang z2 genommen u.s.w.. Damit erreicht man, daß für
die maskierten Stellen des Such wortes ein Zähivorgang mit Hilfe des Zählers eingeleitet
wird, um die durch das vorliegende Maskenwort in Frage kommenden Speicherworte zu
adressieren und zu überprüfen. Das neue Suchwort S' am Ausgang des Schaltnetzes
ist gleichzeitig die gesuchte Information, wenn TRA = 1.
-
Der Zähler wird mit einem Taktsignal ZT (Zählertakt) betrieben, das
aus einem externen TAKT-Signal generiert wird. Die Steuerung (Zählen und Stoppen)
des Zählers wird durch die Beziehung ZT = TAKT# (TRAV SW) vorgenommen. Bei TRA =
1 und SW = 0 wird der Zählvorgang gestoppt, weil dann ZT = 0 gilt. Nach der Ausgabe
des Wortes S wird mit einem Pulssignal SW = 1, das die Länge der Taktperiode TAKT
besitzt, der Zählvorgang fortgesetzt, bis wieder TRA = 1 wird u.s.w...
-
Mit Hilfe der Wörter S und M in dem Schaltungsteil ENDE in Abbildung
4 kann festgestellt werden, wann der flhlvorgang beendet ist. Das Ende des Zählvorganges
ist erreicht, wenn sämtliche maskierte Stellen des Suchwortes, die durch Zählerausgänge
repräsentiert werden, den Wert 11111 erreicht haben. Dabei wird zunächst die Tabelle
in Abbildung 5 zur Ermittlung der Beziehung ei fur das i-te Bit des Such- und Maskenwortes
aufgestellt. Bei mj = 0 wird für ej = 1 eingesetzt. Bei mj = 1 folgt die sj-Stelle
einen der Zählerausgänge, so daß hier ei = sj gilt. Durch eine UND-Schaltung aller
ej-Signale i = 1,2 ... n 1 1 erhält man das Signal für das Ende des Zählvorganges
E (vergl. Schaltung ENDE in Abb. 5).
-
Mit den vorangegangenen Schaltungsteilen liegen die Komponenten zur
Realisierung eines kaskadierbaren ortsadressierten Assoziativspeichers vor. Die
Schaltung ist in Abbildung 6 für einen Speicher mit n-Bit Wortlänge dargestellt.
-
Die Schaltungen für den Speicherteil in Abbildung 3 und den maskierten
Zähler (MZ) in Abbildung 4 und 5 sind als ADRS bzw. MZ in der Gesamtschaltung Abbildung
6 eingesetzt. Zum Zusammenspiel der beiden Schaltungsteile MZ und ADRS werden weitere
Signale eingeführt.
-
Das Signal CS (- Chip select) wird zur Aktivierung eines Bausteines
eingesetzt. Mit dem Signal CS wird einerseits die Kaskadierung solcher Bausteine
erreicht, andererseits wird mit Hilfe dieses Signals das Zusammenwirken mehg rerer
Ausgänge der Speicher-Bausteine, die als eine wired-OR-Schaltung verbunden sind,
koordiniert. Die Bestimmung des CS-Signals, die später bei der Kaskadierung solcher
Bausteine angegeben wird9 ist jedoch aufwendiger als bei ortsadressierten Speichern9
weil außer dem Suchwort S auch das Maskenwort M zur Bestimmung von CS herangezogen
wird.
-
Das Signal Es5UcD (= Suchen) steuert in Verbindung mit dem Signal
WR und dem Mas kennwort M die Arbeitsgänge des Speichers. Die Arbeitsgänge des Speichers
sind in der Tabelle 3 zusammengefaßt.
-
Der Baustein wird mit dem Signal CS aktiviert. Die AusgWnge:TR und
W, die jeweils als Tri-State-Ausgänge zu einem Bus führen, werden mit CS = 1 freigegeben.
Bei CS = 0 sind sie im hochohmigen Zustand. In der Initialisierungspha se des Speichers
werden der Zähler MZ und das Flipflop DFF mit dem Signal CL (= Clear) und sämtliche
Speicherinhalte des ADRS durch das Anlegen der Signale SU = 1, WR = 1, D = 0 und
M = 11....111 gelöscht (= O). Beide Aktivitäten können simultan erfolgen.
-
Die Signale SU = 1 und WR = 1 ermöglichen die parallele Speicherung
aller Suchwörter, die in Abhängigkeit von M E O durch den Adressdecoder des Speichers
ADRS adressiert werden. Die Speicherl!ng eines einzigen Suchwortes S erreicht man
mit den Signalen SU = 0 und WR = 1, die durch die Sperrung der UND-Ketten U 1 und
U 2 die Eingänge M1 und M2 zu Nullen werden lassen. Dadurch wird nur das Suchwort
5" = S im ADRS-Teil adressiert. Mit D = 0 wird das Suchwort S im Speicher gelöscht.
D s 0 bewirkt die Speicherung (Schreiben) des Suchwortes im Speicher. Zur Ausgabe
eines Wortes (Lesen) werden die Signale SU = 1, WR = 0 und M = 0 angelegt (Zeile
3 der Tabelle 3). Das Ausgangssignal TR gibt an, ob die gesuchte, durch Suchwort
S gegebene Information, zuvor im Speicher gespeichert wurde. Die ermittelten Informationen-werden
über die Ausgänge W = S (Assoziationsteil) sowie die bidirektionalen Ausgänge D
(Datenteil) ausgegeben. Die UND-Bausteine U3, U4 und U6 werden für diesen Fall mit
(CSA WRASU) = 1 freigegeben.(RB = 1). Das Signal RB (Restbitbestimmung) gilt gleichzeitig
als ein Ausgangssignal zur Kaskadierung solcher Schaltungen, das später erläutert
wird.
-
Die Bestimmung eines Treffers für ein maskiertes Suchwort S erfolgt
durch die gleichen Konditionen der SU- und WR-Signale. Der Unterschied zu dem letzten
Arbeitsgang des Speichers besteht darin, daß hier ein Maskenwort (M # 0) existiert.
-
Durch Aktivierung von U1 und U2 liegt das Maskenwort M sowohl für
den MZ als auch für den Adressdecoder des ADRS vor, das zur Adressierung aller durch
M gegebenen Speicherplätze für die Bestimmung von TRA- und damit auch TR-Signal
führt. Das Wort M1 hat keine Wirkung, da der Inhalt der maskierten Stellen des Suchwortes
bei der Adressbestimmung im ADRS nicht relevant ist (vergl. Tab. 2).
-
Die nächste Arbeitsphase des Speichers beinhaltet die Ausgabe der
durch den Treffer signalisierten Information aus dem Speicher. In dieser Phase wird
mit SU = 0 die UND-Kette U2 gesperrt, so daß M2 = 0 wird. Mit WR = 0 (WR = 1) ist
M1 = M.
-
Der MZ-Teil mit Z = 0 erzeugt das erste mögliche Suchwort (maskierte
Stellen zQ).
-
Falls das Wort ein Treffer ist, wird TRA = 1. Der Ausgang des ODER-Gatters
in C wird mit TRA = 0 und SW = O zu Null, so daß das UND-Gatter sperrt. Es wird
solange gewartet, bis der Assoziationsteil W und der Datenteil D ausgegeben sind.
-
Die Freigabe der Ausgänge erfolgt in diesem Fall durch BA = (WRA5UÄCSASEA)
= 1. Die Signale SE und SA in der Gleichung sind Kaskadiersignale. Der Empfang von
Daten wird mit dem Signal SW= 1 signalisiert. Mit SW = 1 wird das UND-Gat ter C
für das TAKT-Signal zur Erzeugung des Zählertaktes ZT freigegeben, wenn weiterhin
BA = 1 gilt. Mit ZT wird der Zähler-Inhalt um eins erhöht. Die erste maskierte Stelle
des Suchwortes (die Stelle mit niedrigster Wertigkeit) wird zu 1. Hier wird auch
SW = 0 eingesetzt. Ist wiederum TRA= 1, so wird der Zähler angehalten, bis die Informationen
ausgegeben sind. Bei TRA= 0 wird der Zähler stand in Abhängigkeit des TAKT-Signals
erhöht, bis wieder ein Treffer gefunden wird (TRA= 1) u.s.w.. Wenn alle maskierten
Stellen von S in S" durch den Zähler zu jeweils 1 geworden sind, signalisiert das
Signal E = 1, daß das Suchen in diesem Speicherteil beendet ist. Mit dem nächsten
TAKT-Signal wird das Signal E in das D-Flipflop DFF übernommen, das das Signal SA
= (CSASEAF) = 1 im Schaltungsteil A erzeugt, da CS = 1 und SE = 1 für den Speicherbaustein
angenommen wurde. Das Signal SA = 1 sperrt die UND-Gatter U3,U4 und U6 sowie den
Schaltungsteil C über die Gatter B2 und B3, so daß einerseits die Ausgänge des Speichers
vom D-, TR- und W-Bus entkoppelt werden, andererseits kann der Zähler kein Taktsignal
mehr empfangen.
-
Das Ausgangssignal SA. des i-ten Baustein ist gleichzeitig das Eingangssignal
SEj+1 des nächsten (i+1-te,n) Bausteins. Durch SEj+1= SA = 1 im nächsten Baustein
falls der Baustein mit CSj+1 = 1 adressiert ist, wird die Suche nach weiteren
relevanten
Suchwörtern in i+1-ten Baustein fortgesetzt. Wurde jedoch der nächste Baustein nicht
adressiert (CSj+1 = 0), wird das Schaltungsteil A des i+1-ten Bausteins mit dem
UND-Gatter das Signal SAj+1 = CSj+lt SEj+1 = 1 für den i+2-ten Baustein als SEi+2
= SAj+1 = 1 erzeugt. Falls der Baustein mit CSj+2 adressiert ist, wird hier nach
weiteren Treffern innerhalb des möglichen Adres.
-
raumes gesucht. Die Schaltung einer solchen Kette ist in Abbildung
7 als ein Beispiel angegeben.
-
Das Schaltungsbeispiel, das mit n-Bit-Wort OASS-Speichern realisiert
ist, kann Such- und Maskenwörter mit einer Wortlänge von jeweils n + 3 Bit verarbeiten.
-
Die zu n zusätzlichen 3 Bit erfordern 23 = 8 OASS-Bausteine. Die Bausteine
sin bus-orientiert miteinander verbunden. Im Steuerbus sind die Steuersignale WR,
SU, SW, TAKT und CL zusammengefaßt. In der Schaltung wurde nur der Datenbus D als
ein bidirektionaler Bus ausgeführt. Jeweils n-Bit des M-und S-Busses werde zu den
Bausteinen geführt. Die restlichen drei Bits der Such- und Maskenwörter werden zu
einem weiteren Baustein CSG (Chipselect-Generator) geführt. Der Bau stein CSG erzeugt
in Abhängigkeit seiner Eingänge (mn+3 mn+2 mn+1 sowie sn+3 5n+2 sn+l) die CS-Signale
CSO bis CS7 aller 8 OASS-Bausteine. Zur Bestimmung der Schaltung des CSG-Bausteines
wird die Tabelle 4 zugrunde gelegt. In Abhängt keit der restlichen Bits des Suchwortes
SR wird jeweils nur ein Baustein adres siert, wenn die restlichen Bits des Maskenwortes
MR = 0. Bei MR f 0 werden wei tere Bausteine adressiert. Je nach Konstellation des
MR-Wortes werden zwei, vii oder 8 Bausteine gleichzeitig mit zugehörigen CS-Signalen
adressiert.
-
Die Suchwortausgänge W der Bausteine umfassen ebenfalls n-Bits, die
als W-Bus ausgeführt sind. Die restlichen Bits des Suchwortausganges WR werden mit
dem Baustein SWR (Suchwortrestbitsermittlung) erzeugt. Die Eingänge des SWR-Bauste
bilden die RB-Signale des OASS bis OASS 7. Der SWR-Baustein ist eine 1 aus N zu
Dual-Codierer-Schaltung, da jeweils nur ein Baustein bei der Ausgabe der Wö ter,
die einen Treffer führen, aktiv sein kann. In der angegebenen OASS-Gesamt schaltung
der Abbildung 7 wird der SWR-Baustein zur Codierung der 8 Eingänge ii drei Bit Ausgänge
eingesetzt. Die drei Ausgänge des SWR-Bausteines und die n-Bit der Suchwortausgänge
der OASS-Speicher bilden die n + 3 Bits des Gesamtsuc wortausganges W.
-
Das Kaskadiereingangssignal SE des ersten OASS-Speichers wird als
logisch 1 ei gesetzt, so daß der erste Speicherbaustein aktiviert wird, wenn der
Speicher m CS adressiert ist. Die SA-Ausgänge der Speicher werden jeweils zu den
SE-Eingängen des folgenden Speicher-Bausteines geführt. Bei der Ausgabe der relevant
Suchwörter werden die SA-Signale durch die Bausteine geschleift (vergl. Abb. 6 Schaltungs-Teil
A). Das SA-Signal des letzten Bausteines zeigt das Ende der Au
Eine
Laufzeitverkürzung der geschleiften Signale (SE-SA) wird durch eine Schaltung erreicht,
die eine parallele Berechnung bzw. eine Vorausberechnung der SE-Signale durchführt.
Die Funktion dieser Schaltung kann als eine Erweiterung in CSG-Baustein integriert
werden.
-
Die parallele Berechnung der SEj-Signale (i = 1,2,3....8 für die angegebene
Schaltung in Abb. 7) werden mit den Signale SAj sowie CSj der Speicherbausteine
durchgeführt. Die Gleichungen, die die Berechnung aller SEj-Eingänge zulassen, gewinnt
man durch die Oberlegung, daß für den Speicherbaustein i nur dann das SEj-Signal
aktiviert wird, wenn SAi-l = 1 oder, wenn der Speicherbaustein i-1 nicht aktiv ist,
d. h. CSj~1 = 0, und das Signal SAj-2 = SEi1 des vorherigen Bausteins gleich 1 ist
oder, wenn weder der (i-1)-te noch der (i-2)-te Baustein aktiv ist und SAj-3=SEj-2=1
u.s.w.. Die allgemeine Beziehung zur Berechnung der Funktionen für SE-Signale ist
in der Tabelle 5 angegeben.
-
Eine Schaltung, die die ermittelten Funktionen in einem gesonderten
Baustein realisiert, ist selbst kaskadierbar. Das Signal SAV des ersten Bausteins
wird gleich 1 gesetzt. Das letzte SE-Signal (SE1), das vom Baustein erzeugt wird,
kann als das Ende des Suchvorganges in einer Baustein-Anordnung interpretiert werden
oder als Obertrag zu dem SAO-Eingang des nächsten Bausteines geschaltet werden.
-
In Abb. 7 ist exemplarisch die Beschaltung einer solchen Anordnung
für den ersten Baustein in Verbindung mit dem CSG-Baustein als gestrichelte Linie
angegeben. Dabei fallen die direkten Verbindungen zwischen SA-Ausgängen und SE-Eingängen
weg.
-
Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin,
daß in hier ortsadressierter Assoziativspeicheranordnung die durch Such- und Maskenwort
gegebenen Informationen auf einen möglichen Treffer voll parallel untersucht werden.
Für die Ausgabe der relevanten Wörter, die einen Treffer führen, werden nur diese
bei der Suche berücksichtigt, die auch ein Treffer führen können. Die Anordnung
läßt eine parallele Speicherung von maskierten Wörtern zu (Multi-Write-Funktion).
Das System erfüllt weiterhin sämtliche Funktionen eines linearen herkömmlichen ortsadressierten
Speichers, so daß ein solches System gleichzeitig als ein linearer Schreib-Lesespeicher
eingesetzt werden kann.
-
Das Speichern und das Lesen von Informationen sowie die Treffersuche
erfolgen jeweils in einem Speicherzyklus.
-
Die Realisierung des Schaltungskonzepts als ein integrierter Baustein
wird durch die vertretbare Zahl von Anschlüssen, de die Schaltung benötigt, unterstützt.
Die Modularität und die Erweiterbarkeit eines mit Hilfe solcher -integrierten Bausteine
aufgebauten Systems bleibt uneingeschränkt in beliebiger Größe gewahrt. Ein solches
System ist vertikal in seinem Assoziationsteil und horizontal in seinem Datenteil
voll kaskadierbar. Eine solche Anordnung ist wiederum selbst modular nach dem gleichen
Prinzip erweiterbar.
-
Die Erfüllung von sowohl assoziativen als auch ortsadressierten Speicherfunktionen
durch ein ortsadressiertes Assoziativspeichersystem erweitert die Anwendbarkeit
des Speichers auf weitere für einen Assoziativspeicher nicht typische Aufgabenstellungen.
Insbesondere bringt das Konzept zur Lösung von Aufgabenstellungen, die die beiden
Speicherformen benötigen, Vorteile hinsichtlich Aufwand und Kosten.
Maskenwort M Suchwort S Adressen der Speicherzellen |
...m3 m3 m2 m1 ... S3 S2 S1 ... a7 a6 a5a4a3a2a1a0 |
0 0 0 0 0 0 o o o o o o o 1 |
o o o o o 1 o o o o o o 1 o |
0 0 0 0 1 0 0 0 0 0 0 1 0 0 |
0 0 0 0 1 1 0 0 0 0 1 0 0 0 |
0 0 0 1 0 0 0 0 0 1 0 0 0 0 |
o o o 1 o 1 0 0 1 0 0 0 0 0 |
0 0 0 1 1 o o 1 0 0 o o o o |
0 0 0 1 1 1 1 0 0 0 0 0 0 0 |
0 0 1 0 0 x 0 0 0 0 0 0 1 1 |
o o 1 o 1 x . o o o o 1' 1 o 0 |
o o 1 1 o x 0 0 1 1 0 0 0 0 |
0 0 1 1 1 x 1 1 0 0 0 0 0 0 |
0 1 0 0 x 0 0 0 0 0 0 1 0 1 |
o 1 o o x 1 o o o o 1 o 1 o |
o 1 o 1 x o o 1 o 1 o o o o |
o 1 o 1 x 1 1 o 1 o o o o o |
o 1 1 0 X X o o o o 1 1 1 1 |
0 1 1 1 x x 1 1 1 1 0 0 0 0 |
1 0 0 x 0 0 0 0 0 1 0 0 0 1 |
1 o o x o 1 0 0 1 0 0 0 1 0 |
1 o o x 1 0 o 1 o o o 1 o o |
1 o o x 1 1 1 o o o 1 o o o |
1 o 1 X 0 X o o 1 1 o o 1 1 |
1 0 1 x 1 x 1 1 0 0 1 1 0 0 |
1 1 o x x 0 o 1 o 1 o 1 o 1 |
1 1 o x x 1 1 o 1 o 1 o 1 o |
1 1 1 x x x 1 1 1 1 1 1 1 1 |
Tabelle 1
Maskenwort M Suchwort S Neue Adresse S' |
mn ... m4 m3 m2 m1 Sn ... S4 S3 S2 S1 S'n ... S'4 S'3 S'2 S'1 |
0 ... 0 0 0 0 Sn ... S4 S3 S2 S1 Sn ... S4 S3 S2 S1 |
0 ... 0 0 0 1 Sn ... S4 S3 S2 x Sn ... S4 S3 S2 Z1 |
0 ... 0 0 1 0 Sn ... S4 S3 x S1 Sn ... S4 S3 Z1 S1 |
0 ... 0 0 1 1 Sn ... S4 S3 x x Sn ... S4 S3 Z2 Z1 |
0 ... 0 1 0 0 Sn ... S4 x S2 S1 Sn ... S4 Z1 S2 S1 |
0 ... 0 1 0 1 Sn ... S4 x S2 x Sn ... S4 Z2 S2 Z1 |
0 ... 0 1 1 0 Sn ... S4 x x S1 Sn ... S4 Z3 Z2 S1 |
0 ... 0 1 1 1 Sn ... S4 x x x Sn ... S4 Z3 Z2 Z1 |
0 ... 1 0 0 0 Sn ... x S3 S2 S1 Sn ... Z1 S3 S2 S1 |
0 ... 1 0 0 1 Sn ... x S3 S2 x Sn ... Z2 S3 S2 Z1 |
0 ... 1 0 1 0 Sn ... x S3 x S1 Sn ... Z2 S3 Z1 S1 |
0 ... 1 0 1 1 Sn ... x S3 x x Sn ... Z3 S3 Z2 Z1 |
0 ... 1 1 0 0 Sn ... x x S2 S1 Sn ... Z2 Z1 S2 S1 |
0 ... 1 1 0 1 Sn ... x x S2 x Sn ... Z3 Z2 S2 Z1 |
0 ... 1 1 1 0 Sn .. x x x S1 S1 Sn Z3 Z2 Z1 S1 |
0 ... I I I I Sn ... x x x x Sn ... Z4 Z3 Z2 Z1 |
Tabelle 2
Lfd. CS SU -WR SE SA 5" M1 M2 Arbeitsphasen des Speichers |
Nr. |
1 1 1 1 x x S O M paralleles Speichern (Schreiben) |
2 1 0 1 x x S O O Speichern eines Wortes |
3 1 1 0 x x S M=O M=O Lesen eines Wortes |
4 1 1 O x x S MfO MfO Treffer-Bestimmung |
5 1 0 0 1 O S/Z M O In Abh. des Taktsignals die Tref- |
fer nacheinander ausgeben |
6 1 0 0 1 1 S/1 M O Zählen beendet, d.h. die Treffer |
des Bausteines sind alle ausgege- |
ben. Keine Aktivität |
7 1 0 0 O x S/O M 0 keine Aktivität. Warten bis |
SE = 1 wird |
8 0 x x x x x x x Baustein inaktiv, Ausgänge W |
i und TR gesperrt (High Z) |
Tabelle 3
Rest des Maskenwortes Rest des Suchwortes CS-Signale der OASS-Bausteine |
MR MR SR SR CS ... |
... mn+3 mn+2 mn+1 ... Sn+3 Sn+2 Sn+1 ... 7 6 5 4 3 2 1 0 |
... 0 0 0 ... 0 0 0 ... 0 0 0 0 0 0 0 1 |
0 0 0 0 0 1 0 0 0 0 0 0 1 0 |
0 0 0 0 1 0 0 0 0 0 0 1 0 0 |
0 0 0 0 1 1 0 0 0 0 1 0 0 0 |
0 0 0 1 0 0 0 0 0 1 0 0 0 0 |
0 0 0 1 0 1 0 0 1 0 0 0 0 0 |
0 0 0 1 1 0 0 1 0 0 0 0 0 0 |
0 0 0 1 1 1 1 0 0 0 0 0 0 0 |
0 0 1 0 0 x 0 0 0 0 0 0 1 1 |
0 0 1 0 1 x 0 0 0 0 1 1 0 0 |
0 0 1 1 0 x 0 0 1 1 0 0 0 0 |
0 0 1 1 1 x 1 1 0 0 0 0 0 0 |
0 1 0 0 x 0 0 0 0 0 0 1 0 1 |
0 1 0 0 x 1 0 0 0 0 1 0 1 0 |
0 1 0 1 x 0 0 1 0 1 0 0 0 0 |
0 1 0 1 x 1 1 0 1 0 0 0 0 0 |
0 1 1 0 x x 0 0 0 0 1 1 1 1 |
0 1 1 1 x x 1 1 1 1 0 0 0 0 |
1 0 0 x 0 0 0 0 0 1 0 0 0 1 |
1 0 0 x 0 1 0 0 1 0 0 0 1 0 |
1 0 0 x 1 0 0 1 0 0 0 1 0 0 |
1 0 0 x 1 1 1 0 0 0 1 0 0 0 |
1 0 1 x 0 x 0 0 1 1 0 0 1 1 |
1 0 1 x 1 x 1 1 0 0 1 1 0 0 |
1 1 0 x x 0 0 1 0 1 0 1 0 1 |
1 1 0 x x 1 1 0 1 0 1 0 1 0 |
1 1 1 x x x 1 1 1 1 1 1 1 1 |
Tabelle 4
(1) SE1 = SAo = 1 |
(2) SE2 = SA1 = (CS1#SE1) V (SE1#CS#F1) = (CS1#SA0) V SA1 |
(3) SE3 = SA2 = (CS2#SE2) V (SE2#CS1#SA0) V (CS2#SA1) V SA2 |
(4) SE4 = SA3 = (CS3#SE3) V SA3 = |
(CS3#CS2#CS1#SA0) V (CS3#CS2#SA1) V (CS3#SA2) V SA3 |
(5) SEi = SAi-1 = (CSi-1#CSi-2#....#CS3#CS2#CS1#SA0) V |
(CSi-1#CSi-2#....#CS3#CS2#SA1) V |
(CSi-1#CSi-2#....#CS3#SA2) V |
(CSi-1#CSi-2#SAi-3) V |
(CSi-1#SAi-2) V |
SAi-1 |
Allg. Gleichung: |
i-1 i-1 - i-1 ~~ |
(6) SE. = So. = ( - CSk^SAo) v ( A CSkA5Ai) v A CSkaSA2) v |
1 1-1 k=1 k=2 SA1) v r\ CSknSA2) v k=3 |
SAj 1 |
SEi SAj~1 J80 {< / C5) A SAj 1 SAj 1 |
Leerseite