DE2712575C2 - Assoziatives Speichersystem in hochintegrierter Halbleitertechnik - Google Patents
Assoziatives Speichersystem in hochintegrierter HalbleitertechnikInfo
- Publication number
- DE2712575C2 DE2712575C2 DE2712575A DE2712575A DE2712575C2 DE 2712575 C2 DE2712575 C2 DE 2712575C2 DE 2712575 A DE2712575 A DE 2712575A DE 2712575 A DE2712575 A DE 2712575A DE 2712575 C2 DE2712575 C2 DE 2712575C2
- Authority
- DE
- Germany
- Prior art keywords
- hit
- word
- memory
- address
- lines
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Description
Die Erfindung betrifft ein assoziatives Speichersystem in hochintegrierter Halbleitertechnik nach dem Oberbegriff
des Patentanspruchs 1. Dieses Speichersystem ist in digitalen Rechenanlagen aller Art verwendbar, wo es
als Bestandteil des Hauptspeichers, als Ergänzungsspeicher zum Hauptspeicher für besondere Aufgaben, als
peripherer Speicher z. B. für Datenbankprobleme, als Hilfsmittel für gewisse Kontroll- und Verwaltungsaufgaben
innerhalb des Rechners sowie als Komponente eines assoziativen Prozessors eingesetzt werden kann. In
allen Fällen dient es dem Zugriff zu Informationseinheiten, deren Aufbewahrungsort nicht expüzit bekannt ist
und die deshalb aus Geschwindigkeitsgründen mit inhaltsorientierten Methoden aufgefunden werden müssen.
Derartige Methoden erweisen sich beispielsweise bei Listenverarbeiiungen, schnellen Adreßumsetzungen und
Sortierprozessen als sehr vorteilhaft
Assoziative Speicher sind in mehreren Varianten bekannt, wobei sich aus technologischer Sicht zwei Kategorien
unterscheiden lassen.
Aus dem Bereich der Halbleiterintegrationstechnik sind zwei Bausteine mit der nur geringen Kapazität von 16
Bits bekannt (siehe Datenblatt zum Typ 3104 der Firma Intel Corp. vom Mai 1371 sowie Typ 93402 im TTL Data
Book der Firma Fairchild Semiconductor vom Juni 1972), die sich nur zum Aufbau recht kleiner Speichersysteme
eignen. Eine nennenswerte Vergrößerung der Bausteinkapazität wird mittlerweile nicht mehr durch unzureichende
Integrationsdichten auf den Silizium-Chips blockiert, sondern durch den hohen Verkapselungsaufwand
für die Chips. Da jedes Speicherwort eine externe Leitung für die Trefferanzeige benötigt, wächst die Anzahl der
Gehäuseanschlußstifte linear mit der Wortanzahl auf dem Chip. Damit werden die Herstellungskosten sehr
rasch unwirtschaftlich, und auch die Zuverlässigkeit solcher Baueinheiten nimmt signifikant ab.
Aus DE-OS 25 25 287 sind Maßnahmen bekannt, die auf eine deutliche Verringerung des Bedarfs an äußeren
Anschlüssen abzielen. Sie haben den Nachteil, daß dabei die vollassoziativen Fähigkeiten des Speichers (simultaner
Vergleich eines vorgelegten Suchbegriffs mit sämtlichen gespeicherten Datenwörtern) verlorengehen, weil
nur ein kleiner Teilbereich der Speicherkapazität assoziativ abfragbar ist In diesem Teilbereich benötigt jedes
Wort weiterhin eine separate Trefferleitung, so daß die Ersparnis an äußeren Anschlüssen dennoch fragmentarisch
bleibt.
Alle bekannten Assoziativspeicher in Halbleitertechnik beschränken sich bei Suchoperationen auf den Identilätsvergleich
der gespeicherten Datenwörter mit dem vorgegebenen Deskriptor (Suchwort). Eine Implementie- 5υ
rung anderer Assoziationskriterien, wie »Größer«, »Kleiner«, »Ungleich«, »Größer/Gleich«, »Kleiner/Gleich«
steht bislang noch aus, ebenso die sukzessive Anwendung verschiedener Assoziationskriterien und Deskriptoren
auf dieselben Datenwörter bzw. auf Teile davon zwecks Realisierung von Mehrfachabfragen, wobei die Trefferinformationen
der einzelnen Suchoperationen zu einem Gesamtresultat verknüpft werden.
Die zweite Kategorie bekannter Assoziativspeicher ist speziell auf die Kryotron-Technologie hin konzipiert.
Die hier angewandten Methoden und Organisationsprinzipien lassen sich — ganz besonders gilt dies für die
Systemebene — aufgrund der völlig anderen Randbedingungen nicht äquivalent auf die Halbleitertechnik
übertragen. Insofern sind auch ähnliche oder sogar identische Aufgabenstellungen nur mit Hilfe von durchaus
andersartigen Lösungsansätzen zu bewältigen.
So ist aus DE-AS 12 69 182 ein Speicher mit prioritätsorientierter Separation und Erkennung der internen
Worttrefferinformaticnen bekannt. Die dazu notwendigen Schaltungen sind außerordentlich umfangreich und
bt .uchen halbleitertechnologisch nicht nachvollzogen werden. Besonders nachteilig ist dabei, daß nach jeder
Identifikation eines Worttreffers die zugehörige Marke gelöscht und die assoziative Abfrage wiederholt werden
muß. Bei h vorhandenen Treffern sind daher insgesamt neben h Erkennungs- auch h Abfragezyklen (Suchoperationen)
erforderlich. Dies impliziert eine unnötig langwierige Prozedur sowit einen beachtlichen Hard- und
Softwareaufwand für die zeitliche Ablaufsteuerung.
Ein weiterer Assoziativspeicher (vgl. DE-AS 14 49 375) vergleicht die Datenwörter nicht nur auf Identität mit
dem Deskriptor, sondern auch bezüglich der Kriterien »Größer« und »Kleiner«. Die hier ergriffenen Maßnah-
men führen aber zu einer unflexiblen und wenig anwendungsfreundlichen Lösung. Die Speicherwörter sind zwar
in Bitgruppen untergliedert, doch kann das Vergleichskriterium bei einer Abfrage nur einheitlich für alle
Bitgruppen gewählt werden. Demzufolge lassen sich nur relativ simple Suchoperationen durchführen, deren
Trefferergebnisse nur eine begrenzte Aussagekraft besitzen, so daß wichtige Kategorien von Anwendungsproblemen
damit gar nicht oder nur äußerst umständlich behandelt werden können. Ebenso ist es nicht möglich,
dieselben Bitgruppen nacheinander mehreren Abfragen mit verschiedenen Vergleichskriterien und/oder Deskriptoren
zu unterziehen, um durch Verknüpfung der Einzelergebnisse logisch komplexere Suchvorgänge zu
realisieren. Insofern sind die hier geschaffenen Funktionserweiterungen nur sehr beschränkt nutzbar.
Hinzu kommt, daß aus technologiespezifischen Gründen die Fortschaltung der Treffermeldung zwischen den
Hinzu kommt, daß aus technologiespezifischen Gründen die Fortschaltung der Treffermeldung zwischen den
ίο Speicherzellen einer Bitgruppe einen erheblichen Schaltungsaufwand verursacht und die Bitgruppen trotzdem
eine fixe Länge aufweisen. In Verbindung damit ist auch die aufbautechnische Starrheit als unbefriedigend
anzusehen, die keine Vergrößerung der einmal festgelegten Speicherwortlänge zuläßt. Wünschenswert wäre
hingegen eine variable Einteilungsmöglichkeit für die Bitgruppen sowie eine modulare Erweiterungsfähigkeit
der Speicherkapazität gemäß den jeweiligen Anwendungserfordernissen.
Ferner ist ein Assoziativspeicher (vgl. DE-AS 12 73 584) bekannt, in dem die Teilergebnisse aus mehreren
sequentiellen Suchoperationen konjunktiv oder disjunktiv verknüpft werden können. Dabei ist allerdings die
Aufgabenstellung — wiederum technologiebedingt — stark eingeengt. So bezieht sich die UND-Verknüpfung
sequentiell erhaltener Abfrageergebnisse auf verschiedene Teile der Speicherwörter, die jeweils mit einem
eigenen Suchwort verglichen wurden.
Das hiermit gelöste Problem stellt sich bei einem Aufbau des Assoziativspeichers in Halbleitertechnik gar
nicht explizit, weil dort bei entsprechender Koordination der Speicherzellen und bei geeigneter Maskenwahl dus
Trefferergebnis ohne besonderes Zutun für die Speicherwörter als ganzes entsteht und daher die Konjunktion
zwischen den Teilergebnissen mehrerer Wortteile bereits einschließt. Das bedeutet: Die bei dem bekannten
Speicher notwendige Abfragesequenz mit <Jer UND-Verknüpfung der Einzelergebnisse schrumpft dann per se
auf eine einzige Abfrage zusammen, was beträchtliche Einsparungen an Steuerungsaufwand und Ausführungszeit ergibt.
Eine Sequenz von Such-, orgängen und damit die UND-Verknüpfung der Einzelergebnisse wird erst dann
unumgänglich, wenn derselbe Wortteil mehreren Vergleichen mit zwangsläufig verschiedenen Deskriptoren
und Assoziationskriterien unterzogen werden soll. Das trifft z. B. auf die Zwischen-Grenzen-Abfrage zu, wie
folgende Aufgabe zeigt: Aus einer Personaldatei sollen diejenigen Betriebsangehörigen selektiert werden, die
mindestens 10 und höchstens 15 Dienstjahre aufweisen. Eine andere Aufgabe könnte lauten: Gesucht ist der
älteste Mitarbeiter, der jünger als 50 Jahre ist, oder: derjenige aus dem Kreis der mehr als 5000 DM/Monat
Verdienenden, der als nächster sein 25jährige3 Jubiläum feiert. Derartige Problemstellungen erfordern echte
Abfragesequenzen mit Verknüpfungen und sind daher mit den bekannten Speichern nicht lösbar.
Allen bisher vorgeschlagenen Assoziativspeichern ist gemeinsam, daß die Implementierung bestimmter Funktionen
in den Vordergrund gerückt und demgegenüber die Konzeption eines umfassenden Gesamtsystems
vernachlässigt wurde bzw. daß die auf anderer technologischer Basis angestellten Systemüberiegungen für
Halbleiterspeicher irrelevant sind.
Ausgehend von der Erkenntnis, daß die Halbleitertechnik auf absehbare Zeit die einzige kommerziell relevante Schnellspeichertechnologie sein wird, liegt dem Anmeldungsgegenstand die Aufgabe zugrunde, einen schon vom Ansatz her auf diese Technologie ausgerichteten, besonders leistungsfähigen und kostengünstigen Assoziativspeicher als komplettes System zu schaffen, dessen Speicherbausteine den vollassoziativen Zugriff auf alle Speicherwörter mit einer wesentlich größeren Chipkapazität als bisher vereinigen und trotzdem mit ähnlich vielen Anschlußstiften wie andere integrierte Schaltkreise auskommen, dessen Gesamtkapazität durch entsprechende Anordnung einer Vielzahl eben dieser Bausteine sowohl nach Wortanzahl als auch nach Wortlänge frei gewählt und modular erweitert werden kann und das auch bei komplexeren Suchoperationen eine effiziente Identifikation und Auswertung der Worttreffer bei zugleich sehr niedrigem Schaltungsaufwand außerhalb der Speicherbausteine realisiert.
Ausgehend von der Erkenntnis, daß die Halbleitertechnik auf absehbare Zeit die einzige kommerziell relevante Schnellspeichertechnologie sein wird, liegt dem Anmeldungsgegenstand die Aufgabe zugrunde, einen schon vom Ansatz her auf diese Technologie ausgerichteten, besonders leistungsfähigen und kostengünstigen Assoziativspeicher als komplettes System zu schaffen, dessen Speicherbausteine den vollassoziativen Zugriff auf alle Speicherwörter mit einer wesentlich größeren Chipkapazität als bisher vereinigen und trotzdem mit ähnlich vielen Anschlußstiften wie andere integrierte Schaltkreise auskommen, dessen Gesamtkapazität durch entsprechende Anordnung einer Vielzahl eben dieser Bausteine sowohl nach Wortanzahl als auch nach Wortlänge frei gewählt und modular erweitert werden kann und das auch bei komplexeren Suchoperationen eine effiziente Identifikation und Auswertung der Worttreffer bei zugleich sehr niedrigem Schaltungsaufwand außerhalb der Speicherbausteine realisiert.
Diese Aufgabe wird erfindungsgemäß durch die im kennzeichnenden Teil des Patentanspr uchs 1 angegebenen
Maßnahmen gelöst. Sie erstrecken sich auf drei unterschiedliche, jedoch in enger Wechselwirkung ste^nde
Ebenen: den einzelnen Speicherbaustein mit seiner internen Organisation, die Systemorganisation mit dem
Verdrahtungsschema der Speicherbausteine und das Steuerwerk als Implementation der Treffererfassungsprozedur.
Auf der Säüsicineberic wird iT.itteis pnöntaiagcsicücf icf Separation. Codierung and sequentieller Ausgabe der Trefferinformation die Aufgabe gelöst, auch bei einer großen Anzahl von Speicherwörtern eine wirtschaftlich vertretbare Anzahl von Gehäuseanschlüssen (Pins) einzuhalten. Typischerweise läßt sich die Bausteinorganisation nur mit Blick auf das Gesamtsystem optimieren; denn gerade die Bildung von Treffercodewörtern wirft das Problem auf, daß alle Bausteine, von denen jeder einen anderen Teil zur Systemwortlänge beiträgt, dasselbe Treffercodewort ausgeben müssen, damit für das gesamte Datenwort ein Treffer erkannt werden kann.
Auf der Säüsicineberic wird iT.itteis pnöntaiagcsicücf icf Separation. Codierung and sequentieller Ausgabe der Trefferinformation die Aufgabe gelöst, auch bei einer großen Anzahl von Speicherwörtern eine wirtschaftlich vertretbare Anzahl von Gehäuseanschlüssen (Pins) einzuhalten. Typischerweise läßt sich die Bausteinorganisation nur mit Blick auf das Gesamtsystem optimieren; denn gerade die Bildung von Treffercodewörtern wirft das Problem auf, daß alle Bausteine, von denen jeder einen anderen Teil zur Systemwortlänge beiträgt, dasselbe Treffercodewort ausgeben müssen, damit für das gesamte Datenwort ein Treffer erkannt werden kann.
Ihm wird bei der Systemorganisation durch Serienschaltung der Speicherbausteine bezüglich ihrer Adreßeingänge
(2t) und Treffercodeausgänge (23) begegnet Dank dieser Maßnahmen kann sich das Steuerwerk zwecks
Erkennung der ausschließlich interessierenden Gesamtworttreffer auf einen Vergleich der Wortadresse des
ersten Bausteins auf den Leitungen (81) mit dem Treffercodewort des letzten Bausteins auf den Leitungen (67)
beschränken. Damit ist offensichtlich die Systemwortlänge modular erweiterbar, ohne daß ein Eingriff in das
Steuerwerk erforderlich wird.
Eine Reihe von Ausgestaltungen der Erfindung verfolgt das Ziel, das assoziative Speichersystem mit Funktionsmerkmalen
auszustatten, die komplexere Suchoperationen als die bisher bekannten zulassen und damit
herkömmliche Problemlösungen drastisch vereinfachen bzw. dem Assoziativspeicher neue Aufgabenbereiche
erschließen, die außerdem den Vorgang der Trefferidentifikation und -auswertung zusätzlich beschleunigen und
schließlich den Betrieb des Speichersystems (z. B. per Programmsteuerung) effektivieren.
So können Mie Speicherbausteine noch je ein Daten- (12) und Trefferregister (15) enthalten, um den Deskriptor
sowie die Trefferinformation dauerhaft verfügbar zu machen. Ebenso kann vorgesehen sein, mittels bausteininterner
Rückführung der Leitungen (55) oder (56) mit der Trefferinformation auf die Wortauswahlleitungen der
Speicherzellenmatrix (14) in alle durch einen Treffer markierten Speicherplätze simultan ein neues Datenwort
cip-uschreiben bzw. ihren Inhalt zu löschen.
Weiterhin kann es im Rahmen bestimmter Suchprozesse zweckmäßig sein, ein per Wortadresse ausgewähltes
Speicherwort wiederum mittels interner Rückführung über die Leitungen (28), den Bus-Treiber (10) und die
Leitungen (26) als neuen Deskriptor für die nächste Abfrageoperation in das Datenregister (12) zu laden.
Komplexere Suchprozesse an assoziativ gespeicherten Daten setzen voraus, daß neben der Identität noch
andere Assoziationskriterien anwendbar sind, oft sogar mehrere gleichzeitig auf verschiedene Wortsegmente
oder auch mehrere nacheinander auf gleiche Wortsegmente bei verschiedenen Deskriptoren. Eine Weiterbildung
der Erfindung sieht deshalb die Implementierung der Assoziationskriterien »Größer als« und »Kleiner als«
mittels Erweiterung der jeder Speicherzelle in der Matrix (14) angegliederten Vergleichsschaltung sowie eine
Auswahlmöglichkeit (44) vor, um je eine der drei parallel anfallenden Trefferinformationen (bezüglich der
Kriterien »Gleich«, »Größer«, »Kleiner«) auf den Leitungen (40), (41), (42) in Abhängigkeit von einer an den ;'i
Eingängen (25) vorgegebenen Operationsanweisung weiterverwenden und insbesondere in das Trefferregister ^j
(15) bzw. (45) übernehmen zu können. "
Ergänzend dazu kann es vorteilhaft sein, die zwecks Wortlängenerweiterung zu einer Matrixreihe in der 20 '>;
Speicheranordnung (75) verschalteten Speicherbausteine mit verschiedenen Operationsanweisungen zu be- :j
.schicken, um einzelne Segmente der Speicherwörter gleichzeitig mit verschiedenen Assoziationskriterien abzu- "9
fragen. Auf diese Weise lassen sich mehrere sukzessive Suchoperationen, wie sie bekannte Speicher für dieses ί|
Problem benötigen, in einer einzigen zusammenfassen. j
Ferner können die Speicherbausteine dergestalt für die Durchführung von Mehrfachabfragen ausgelegt sein, 25 £j
daß bedarfsweise das an den Ausgängen (56) bzw. (51) des Trefferregisters (15) bzw. (45) verfügbare und aus $
vorangegangenen Suchoperationen stammende Trefferergebnis mit der auf den Ausgangsleitungen (55) bzw. *j
(49) der Speicherzellenmatrix (14) anliegenden und aus der aktuellen Abfrage herrührenden Trefferinformation gj
in den Gattern (48) konjunktiv zu einem neuen Trefferergebnis verknüpft und als solches in das Trefferregister
geladen wird. Auf dieser Basis können auch auf gleiche Wortsegmente sukzessiv verschiedene Assoziationskrilerien
mit verschiedenen Deskriptoren angewandt werden. Das dann zuletzt im Trefferregister enthaltene
Abfrageergebnis markiert nur noch diejenigen Speicherwörter, die sämtliche nacheinander vorgebrachten .!
Suchbefindungen gemeinsam erfüllen. Somit ist als Gesamtergebnis nur noch die Schnittmenge der sequentiell Vt
entstandenen Einzelergebnisse vom Steuerwerk zu erfassen und auszuwerten. Gegenüber bekannten Speichern 3j
bedeutet das nicht nur eine beträchtliche Straffung des eigentlichen Abfrageprozesses, also der Erzeugung des 35 ?.i)
letztlich relevante-. Ti :ffermusters, sondern auch eine gravierende zeitliche Komprimierung der Identifikation ;j
dier js I reffermusters. . " —■
'Jem letztgenannten Zweck dient als weitere Ausgestaltung das Anbringen eines Trefferstatusausgangs (24) j
an Jen Speicherbausteinen. Das auf ihm angebotene Signal wird aus einer ODER-Verknüpfung der vom £·
Diskriminator (16) gleichsam gefilterten Trefferinformation gewonnen und zeigt an, ob in dem vom aktuellen «0 g
Schwellenwert nicht maskierten Adreßbereich noch weitere Worttreffermarken zur Auswertung anstehen. f{
Darauf fußend kann eine zusätzliche ausgestaltende Maßnahme die UND-Verknüpfung der Trefferstatusaus- &]
gänge aller zu einer Reihe verschalteten Bausteine in der Speicheranordnung (75) beinh'lten. Sobald in wenig- ?ßt
stens einem dieser Bausteine kein Treffer mehr zur Auswertung ansteht, was sich aus dem Signalpegel auf den gj
Leitungen (83,1) bis (83,p) erkennen läßt, erübrigen sich weitere Identifikationsversuche in dieser Reihe. Das 45 ti
Steuerwerk kann deshalb unmittelbar zur Abprüfung der nächsten Reihe übergehen und insbesondere alle
Reihen, die keine Gesamtworttreffer enthalten, überspringen, weil dies gleichfalls aus der UND-Verknüpfung
der einzelnen Trefferstatusmeldungen ersichtlich ist.
Ein assoziatives Speichersystem der dargestellten Art zeichnet sich durch mehrere bemerkenswerte Vorteile
aus. Die Chipkapazität seiner Speicherbausteine wird nicht mehr von der praktikablen Gehäusestiftzahl, son- 50 j$
dem allein von der technologisch erreichbaren IntegratiG.isdichte begrenzt und kann somit gegenüber dem
gegenwärtigen Stand der Technik um ein Vielfaches gesteuert werden. Dadurch lassen sich auch die bitspezifischen
Kosten und Leistungsaufnahme drastisch senken. Dank der Verlagerung eines Teils der Auswertelogik in
die Speicherbausteine schrumpft der Bedarf an zusätzlichen Schaltkreisen, zahlreiche Verbindungsleitungen
zwichen den Bausteinen entfallen, und der Schaltungsaufwand für das Steuerwerk hält sich sehr niedrig. Ein
derartiges Speichersystem ist demzufolge nicht nur einfacher, kompakter und billiger im Aufbau, sondern auch
mechanisch und elektrisch sicherer. Die matrixartige Anordnung der Speicherbausteine mit dem erfindungsgemäßen
Verdrahtungsschema gewährleistet volle Freizügigkeit und Modularität bei der Auslegung der Systemkapazität
Die charakteristische Funktionsweise des Steuerwerks — Vorgabe einer Wortadresse als Schwellenwert zur
Maskierung der bereits erfaßten Treffer in die erste Bausteinspalte und Vergleich mit dem von der letzten
Bausteinspalte gelieferten Treffercodewort — bewirkt eine zeitminimale Identifikation der als Abfrageergebnis
entstandenen Treffer und somit eine hohe Effizienz des Speichersystems.
Die Implementierung von Funktionseigenschaften zur Durchführung komplexer Abfragen mit verschiedenen
Assoziationskriterien und spezieil von Mehrfachabfragen mit interner Verknüpfung der einzelnen Trefferinformationen
zu einem Gesamtergebnis eröffnet völlig neue assoziative Operationsmöglichkeiten. Sie gestatten die
Zusammenfassung ganzer Sequenzen von Suchoperationen zu einer einzigen bzw. zu ganz wenigen und reduzieren
damit umfangreiche und zeitintensive Programme erheblich. Von dieser Vereinfachung profitieren zahl-
reiche Datenverarbeitungsprozesse, wie z. B. das Sortieren und Klassifizier on von Datenbeständen, die Verwaltung
von Datenbanken, die Zeichen- und Mustererkennung, die Sprach- und Codeübersetzung, die interaktive
Mensch-Maschine-Kommunikation.
Die Erfindung wird im folgenden anhand von Zeichnungen und Ausführungsbeispielen näher erläutert. Darin
zeigen
F i g. 1 das Blockschaltbild eines woriorganisierten und bitweise maskierbaren vollassoziativen Speicherbausteins
für m "Wörter zu je η Bits,
F i g. 2 die Struktur eines assoziativen Speichersystems mit einer Matrixanordnung aus Speicherbausteinen
zur Realisierung einer Kapazität von ρ ■ m Wörtern zu je q ■ η Bits sowie mit den wichtigsten Komponenten des
ίο Steuerwerkes,
F i g. 3 die den einzelnen Speicherzellen angegliederten Vergleichsschaltungen sowie die Schaltungen zur
Erzeugung der Treffermeldungen bezüglich der Assoziationskriterien »Gleich«, »Größer«, »Kleiner« für ein
einzelnes π Bits langes Datenwort,
F i g. 4 die Schaltungen zur Auswahl und Zwischenspeicherung einer der drei Treffermeldungen sowie zu
deren optionalen UND-Verknüpfung mit einer früher entstandenen und zwischengespeicherten Treffermcldung,
jeweils für ein einzelnes Datenwort.
In F i g. 1 ist das Organisationsschema des erfindungsgemäßen assoziativen Speicherbausteins mit den wesentlichen
Funktionskomponenten dargestellt, das sowohl einen auch bei nichtassoziativen Speichern anzutreffenden
Schreib/Lesebetrieb als auch das vollassoziative Durchsuchen aller gespeicherten Daten mit einer prioritätsgesteuerten
Separation und wortweise codierten Ausgabe der dabei als Ergebnis entstehenden Trefferinformation
erlaubt.
Der Bustreiber (10), der einen bidirektionalen Datenverkehr des Speicherbausteines mit seiner Umwelt
ermöglicht, sowie das Datenregister (12) und Maskenregister (13) sind für die Länge η der in der Speicherzellenmatrix
(14) gespeicherten Datenwörter ausgelegt. Die Dimensionierung des Trefferregisters (15), des Diskriminators
(16) und des Prioritäts-Codierers (17) orientiert sich dagegen an der Anzahl m der in (14) installierten
Speicherplätze bzw. Datenwörter. Ebenso von der Wortanzahl m bzw. von deren dualcm Logarithmus Id m
hängt auch der Umfang des Adreßdecodierers (11) und des Multiplexers (18) ab. Der Operationsdecodierer (19)
entschlüsselt die in einer Breite von it Bits an den Eingängen (25) angebotene Operationsanweisung, die ggf. auch
das Assoziationskriterium als Bestandteil einschließt.
Bei Schreib- und Leseoperationen wird die an den Eingängen (21) anliegende Adresse mittels des Signals auf
Leitung (36) über den Multiplexer (18) auf die Ausgänge (23) durchgeschaltet; zugleich setzt sie der Adreßdecodierer
(11) in eine Information auf den Leitungen (27) zur Auswahl genau eines der m Wörter in der Matrix (14)
um. Das selektierte Datenwort kann entweder über die Leitungen (28), den Bustreiber (10) und die Anschlüsse
(20) ausgelesen oder über (20), (10), Leitungen (26), Datenregister (12) und Leitungen (29) mit einem anderen
Datenwort überschrieben werden.
Bei den für Assoziativspeicher typischen Suchoperationen werden die Maske und die Suchdaten (Deskriptor)
nacheinander über die Eingänge (20) und den Bustreiber (i0) in das Masken- (i3) bzw. Datenregister (i 2) geladen
und liegen auf den Leitungen (30) bzw. (29) an den Speicherzellen in (14) an. Der Deskriptor wird parallel mit
allen Datenwörtern in (14) nach einer durch das Assoziationskriterium, festgelegten Vorschrift verglichen. In
diesen Vergleich werden allerdings nur die durch die Maske im Register (13) spezifizierten Bitsteilen des
Deskriptors und der Datenwörter einbezogen.
Genau für die Datenwörter, die die Trefferbedingung laut Assoziationskriterium erfüllen, wird in der Matrix
(14) zwecks Markierung je eine Treffermeldung erzeugt.
Die daraus resultierende Information erscheint voll parallel auf den Leitungen (55) und wird in das Trefferregister
(15) übernommen, sofern eines vorgesehen ist. Jedes darin enthaltene »L«-Bit symbolisiert eine Treffermarke
für das ihm zugeordnete Datenwort
Übar die Leitungen (56) gelangt dieses Treffermuster zum Diskriminator (16), an dem zugleich eine über (21)
eingegebene und in (11) decodierte Adresse anliegt. Diese Information auf den Leitungen (27) wird von (16) als
Schwellenwert interpretiert mit der Wirkung, daß von den Treffermarken auf (56) diejenigen unterdrückt
so werden, die aufgrund ihrer Position und damit Stellengewichtung innerhalb der Trefferinformation eine größere
Dualzahl repräsentieren als die durch den Schwellenwert ausgedrückte. Das bedeutet: Von den vorgefundenen
Treffermarken werden ausschließlich solche auf die Leitungen (57) durchgelassen, deren zugehörige Datenwörter
eine mindestens gleich große Adresse besitzen wie die dem Schwellenwert zugrunde liegende Adresse auf
(21).
Durch geeignete Erhöhung des Schwellenwertes im Laufe des Suchprozesses wird es möglich, die Anzahl der
Treffermarken auf (57) schrittweise zu reduzieren und damit bereits identifizierte Treffer von einer nochmaligen
Erfassung auszuschließen. Diese Methode gewährleistet eine einwandfreie und zeitoptimale Lösung des für
Assoziativspeicher typischen Problems der Auflösung von Mehrfachtreffern.
Der Prioritäts-Codierer (17) selektiert aus den auf (57) verbliebenen Treffermarken diejenige mit der höchstwertigen
Position bzw. Stellengewichtung, der per definitionem auch die höchste Priorität zukommt d. h. er
bildet intern eine /n-stellige Information, in der als einzige Treffermarke nur noch die höchstpriore auftaucht
und zwar an derselben Position wie auf (57). Die Position läßt sich sodann eindeutig in eine Id /n-stellige, also
komprimierte Informatin abbilden, d. h. codieren. Das demzufolge auf den Leitungen (58) erscheinende Treffercodewort
ist identisch mit der Adresse des der gerade selektierten Treffermarke zugeordneten Datenwortes. Es
wird über den Multiplexer (18) und die Anschlüsse (23) ausgegeben und kann in einem anschließenden Schreiboder
Lesezyklus zur Adressierung eben dieses Datenwortes über die Eingänge (21) benutzt werden.
Das Fortschreiten zur Identifikation der weiteren Treffer wird dadurch realisiert, daß man für die nächste
Suchoperation (auch Suchzugriff genannt) eine Adresse an (21) vorgibt die um genau 1 größer ist als das zuletzt
erhaltene Treffercodewort. Mittels dieser Herabsetzung des Schwellenwerts wird die zuvor erfaßte Treffermarke
ebenso wie alle früheren in (!6) ausgefiltert, so daß nunmehr die nächste als höchstpriorc in (17) zum Zuge
komm-.. Bei genügend großem Schwellenwert wird irgendwann auf (57) keine Treffermarke mehr vorliegen.
Dieser Zustand ist der Indikator für die Beendigung des Suchverfahrens. Er wird von (17) erkannt und mitteis des
Trefferstatussignals über den Anschluß (24) nach außen angezeigt.
Entscheidender Vorteil dieses Hardware-Algorithmus zur Auflösung und Identifikation eines einmal intern
erzeugten Treffermusters ist die Tastsache, daß dank der variablen Schwellenwerterhöhunß nur genau so viele
Suchzugriffe (Aufschalten verschiedener Adressen an (21)) benötigt werden wie Treffermarken existieren,
mindestens jedoch einer.
Der Operationsdecodierer (19) aktiviert die in der Operationsanweisung spezifizierte Speicherfunk tion ίο
(Schreiben, Lesen, Suchen, Laden von Registern und ggf. Umsetzung des Assoziationskriteriums in die Auswahl
einer von mehreren Trefferinformationen). Er leitet daraus das Richtungsauswahlsignal (31) für (10), denSchreibimpuls
(34) für (14) und das Steuersignal (36) für (18) ab. Insbesondere kann er veranlassen, daß alle trefferbehafteten
Daten Wörter ganz oder teilweise mit dem Inhal* von (12) simultan überschrieben werden, sofern eine
Rückkopplung der Trefferinformation auf (56) in die Wor'auswahlleittingen von (14) vorgesehen ist.
'.: Über den Select-Eingang (22) läßt sich die Ausführung der Operationsanweisung innerhalb des Bausteins
verhindern; zugleich können damit die Ausgänge (23) in einen hochohmigen elektrischen Zsutand versetzt
werden, was eine sehr einfache Busankopplung erlaubt (insbesondere die direkte Verbindung mit gleichartigen
r lüjcaPigCPi UMuCrCr uuuSiCmC ».
In F i g. 2 ist die matrixartige Anordnung von ρ Bausteinreihen und q Bausteinspalten zu einer Speicher-An-
, Ordnung }75) dargestellt. Die Speicherbausteine sind bezüglich der Daten parallel geschaltet, derart, daß je ein η
Bits langes Segment der insgesamt g ■ η Leitungen (63) für Daten und Maske allen ρ Bausteinen der betreffenden
Matrix-Spalte über die Eingänge (20) zugeführt werden, wie es auch bei den meisten nicht assoziativer
Halbleiterspeichersystemen gehandhabt wird. Von dort ist auch bekannt, die Bausteinreihen bezüglich der
niederwertigen Id m Adreßbits parallel zu schalten. Sie werder. hier über die Leitungen (62), den Multiplexer (73)
und die Leitungen (81) auf die Eingänge (21) der ersten Spalte verzweigt.
Zur Selektion von einer aus ρ Reihen werden nach ebenfalls bekanntem Vorbild die Id ρ höherwertigen
Adreßbits über die Leitungen (61), den Multiplexer (72) und die Leitungen (80) dem Decodierer (74) angeboten,
der die Aufgabe hat, genau eine der Leitungen (82,1) bis (82,p) mit einem aktiven Auswahlsignal zu beschicken.
Über die parallel geschalteten Eingänge (22) werden al!e Bausteine der selektierten Reihe für die Ausführung
der jeweiligen Operationsanweisung freigegeben. (Die dafür benötigten k Leitungen sind zwecks besserer
Übersichtlichkeit nicht in die F i g. 2 aufgenommen; sie müssen an die Eingänge (25) sämtlicher Speicherbausteine
parallel angeschlossen werden.)
Neu an der erfindungsmäßigen Speicherorganisation von Fig. 2 ist, daß innerhalb jeder Matrix-Reihe die Bausteine bezüglich der Adressen in Serie geschaltet sind. Das bedeutet: Die Adreß- bzw. Treffercodewortausgänge (23) eines Bausteins sind jeweils mit den Adreßeingängen (21) des rechten Nachbarbausteins verbunden.
Neu an der erfindungsmäßigen Speicherorganisation von Fig. 2 ist, daß innerhalb jeder Matrix-Reihe die Bausteine bezüglich der Adressen in Serie geschaltet sind. Das bedeutet: Die Adreß- bzw. Treffercodewortausgänge (23) eines Bausteins sind jeweils mit den Adreßeingängen (21) des rechten Nachbarbausteins verbunden.
Bei Schreib- und Leseoperationen bringt dies keinerlei Vorteile. Die prinzipiell notwendige Parallelverzweigung
der Id m niederwertigen Adreßbits auf (62) an alle Bausteine einer Reihe wird dadurch ersetzt, daß
innerhalb jedes Bausteins die an (21) anliegende Adresse nicht nur zur Wortauswah! ;n (14) benutzt wird, sondern
gleichzeitig vermöge des Steuersignals auf '"1S) über den Multiplexer (18) auch auf (23) durchgeschaltet wird, von
wo sie unmittelbar dem Nachbarbaust ' r Verfügung steht usw. Die Schreib- und Leseoperationen laufen
dann parallel in allen Bausteinen der selektierten Reihe so ab, wie es zuvor für den Einzelbaustein beschrieben
wurde.
Die Serienschaltung bezüglich der Adressen innerhalb der Matrix-Reihen kommt erst bei Suchoperationen
zum Tragen. Für sie ergibt sich folgender Ablauf:
Zunächst wird laut obiger Beschreibung durch assoziativen Vergleich mittels Deskriptor, Maske und Assoziationskriterium
in sämtlichen Speicherbausteinen auf den Leitungen (55) — und falls vorhanden auch in (15) und
auf (56) — eine Trefferinformation erzeugt. Da jeweils q durch die Spaltenbildung bedingte Datensegmente, die
zur gleichen Adresse gehören, gemeinsam ein q ■ η Bits langes Datenwort bilden, interessieren offensichtlich nur
die Fälle, wo ein Datenwort beim assoziativen Vergleich in allen q Segmenten bzw. den zugehörigen Bausteinen
mit einer Treffermarke belegt wurde. Nur diese sog. Gesamtworttreffer, d. h. die logische Schnittmenge aus den
q Segment-Treffermustern, sind unter den üblichen Anwendungsaspekten relevant; sie gilt es im eigentlichen
Suchprozeß zu identifizieren und entsprechend auszuwerten.
Zu diesem Zwecke werden zunächst durch externen Eingriff die Zähler (70) und (71) gelöscht, d. h. auf »0... 0«
gesetzt- Infolgedessen wird über (72), (80), (74) und (82,1) die erste Bausteinreihe selektiert; zugleich wird dem
Baustein (1,1) über (73) und (81) die Anfangsadresse »0« angeboten. Der daraus resultierende interne Schwellenwert
läßt gemäß Beschreibung für den Einzelbaustein alle vorhandenen Treffermarken gelten. Für das höchstpriore
unter ihnen wird das zugehörige Treffercodewort gebildet und als Adresse an den Baustein (1,2) weitergereicht.
Dort wird in gleicher Weise verfahren usw. bis zum Reihenende.
Gerade dank der adreßmäßigen Serienschaltung sind die von den ersten q—\ Bausteinen ausgesandten
Treffercodewörter gar nicht von Belang. Maßgebend für die Entscheidung über einen Gesamtworttreffer ist
allein das Treffercodewoi ί des q-ten Bausteins. Dabei gilt folgendes Kriterium: Die Koinzidenz dieses Codewortes
auf den Leitungen (67) mit der dem ersten Baustein auf (81) vorgegebenen Adresse ist — vorausgesetzt, daß
sich beide Größen auch auf die gleiche Matrix-Reihe beziehen — notwendige und hinreichende Bedingung
_ dafür, daß das zu dieser Adresse gehörende Datenwort als ganzes einen Treffer aufweist. Diese Koinzidenz wird
i~ im Komparator (79) geprüft, der ggf. über Leitung (64) eine Treffermeldung nach außen abgibt, im Trefferfalle
" steht auf (67) zugleich die einschlägige bausteinbezogene Wortadresse abholbereit zur Verfügung.
Die Fortsetzung des Suchprozesses — konkret: die Identifikation des nächsten Gesamtworttreffers — wird
durch ein aus der Meldung auf (64) abgeleitetes Signal initiiert, das den Inhalt des Zählers (71) um eine Stufe
erhöht Die dadurch geänderte Adresse führt im Baustein (1,1) zu einem Schwellenwert, der die zuvor bearbeitete Treffermarke nicht mehr auf die Leitungen (57) gelangen läßt, so daß sich zwangsläufig ein anderes Treffercodewort an (23) einstellt. Es wird in den übrigen Bausteinen nach obigem Schema weiterverarbeitet, bia auf (67)
erneut ein Treftercode vorliegt
Gemäß der Funktion von Diskriminator (16) und Prioritäts-Codierer (17) kann er als Dualzahl betrachtet nicht
kleiner sein als die auf (81) vorgegebene Adresse, sondern nur gleich oder größer. Im Gleichheitsfalle liegt ein
Gesamttreffer vor. Bei Ungleichheit läßt sich der sichere Schluß ziehen, daß sämtliche Datenwerter mit einer
zwischen der Adresse auf (81) und dem Treffercodewort auf (67) angesiedelten Speicheradresse insgesamt
ίο keinen Treffer aufweisen, so daß sich weiteres Suchen in diesem Adreßbereich erübrigt Nach einem solchen
erfolglosen Suchzugriff wird das Treffercodewort von (67) in den Zähler (71) geladen und als Adreßvorgabe für
den nächsten Suchzugriff benutzt
Das Wechselspiel zwischen diesen Operationsschritten gewährleistet eine sehr geringe Anzahl von Suchzugriffen bis zur Auffindung des nächsten Gesamttreffers. Es wiederholt sich so oft bis mindestens ein Baustein der
ersten Reihe über den Ausgang (24) anzeigt, daß auf seinen internen Leitungen (57) keine Treffermarken mehr
ansteheii. Ohne Rücksicht auf die übrigen Bausteine kann dann die Suche in dieser Reihe abgebrochen und zur
nächsten weitergegangen werden, wozu das Signal auf Leitung (83,1) den Anstoß gibt
Der Diskriminator (76) und der Prioritäts-Codierer (77) üben bezüglich der p-Reihen in (75) dieselbe Funktion
aus wie die entsprechenden Komponenten (16) und (17) innerhalb eines Bausteins bezüglich der m Daten Wörter.
2ö Die information auf den Leitungen (S3) sagt aus, ir. welchen Reihen überhaupt Treffer zu erwarten sind, so daß
ggf. ganze Reihen übersprungen werden können, was den Suchprozeß erheblich beschleunigt Auf den Leitungen (82) liegt analog zu (27) ein Schwellenwert an, der aus der Reihenadresse in Zähler (70) gewonnen wird und
vorschreibt welche Reihen vom weiteren Suchverfahren auszuschließen und weiche noch einzubeziehen sind.
Die Information am Ausgang von (76) läßt demzufolge erkennen, in welchen Reihen noch nicht alle Treffer
erfaßt sind. Unter ihnen selektiert (77) wiederum diejenige mit der höchsten Priorität, d. h. mit der niedrigsten
damit auch der effektiven Gesamtadresse des trefferbehafteten Datenwortes, weil sie ausdrückt welcher Reihe
das betrachtete Datenwort angehört
dieselben Aufgaben wie die Komponenten (79), (71), (73) hinsichtlich der Speicherplätze in den Einzelbausteinen.
Ein Gesamtworttreffer läßt sich offensichtlich nur dann konstatieren, wenn nicht nur die Adresse auf (81) und das
Codewort auf (67) übereinstimmen, sondern beide Größen auch für dieselbe Reihe gelten. Die zweite Bedingung
ist erfüllt bei Koinzidenz der Reihenadresse auf (80) und des Codewortes (Reihennummer) auf (68). Diese
Situation wird durch ein Signal auf Leitung (65) kenntlich gemacht; es gibt nur gemeinsam mit dem entsprechen
den auf (64) Aufschluß darüber, ob ein Gesamttreffer vorliegt Im positiven Falle steht auf (67) und (68) die
Effektivadresse (zusammengesetzt aus Reihennummer und bausteininterner Adresse) des markierten Datenwortes bereit
Eine Überlagerung mehrerer Treffercodes auf (67) ist ausgeschlossen, weil wegen der Asuwahlsignale auf (82)
stets nur die Bausteine der selektierten Reihe ein Codewort aussenden können, während die Ausgänge (23) der
restlichen Bausteine in einen elektrisch hochohmigen Zustand geschaltet sind.
Nach Identifikation aller Treffer innerhalb einer Matrix-Reihe gibt es für den Obergang zur nächsten Reihe
zwei Möglichkeiten. Gehörte der zuletzt erfaßte Treffer zum letzten Datenwort der Reihe, so muß durch
Inkrementierung des Inhaltes von (70) eine neue Reihenadresse gebildet werden. Andernfalls wird nach Erhöhung der Bausteinadresse in (71) die auf (68) anliegende Reihennummer größer sein als die auf (80) vorgegebene
und ist dann zweckmäßigerweise als neue Reihenadresse in den Zähler (70) zu übernehmen.
Das Ende des Suchprozesses (sämtliche Treffer identifiziert!) ist erreicht, wenn die Ausgänge von (76) keine
Treffermarkierungen mehr enthalten. Dieser Zustand kann über eine zusätzliche Ausgangsleitung von (77), die
in F i g. 2 nicht eingezeichnet ist der Umgebung des Speichersystems mitgeteilt werden.
so Datenwort vorgesehenen Speicherzellen samt den zugehörigen Logikschaltungen zur Ermittlung der Trefferinformation für dieses Wort Für jede Zelle / (mit /= 1 n) wird die Größen-Relation zwischen ihrem Inhalt und
dem entsprechenden Deskriptorbit überprüft, und zwar unter Berücksichtigung des Maskenbits. Dies geschieht
durch eine UND-Verknüpfung ihrer Ausgangssignale Qi und Qi mit dem auf der /-ten Leitung von (30) anstehenden Bit Mi aus dem Maskenregister (13) sowie dem auf (29) anstehenden Bit D, bzw. D1 aus dem Datenregister
(12).
angebotene, was durch das Signal G1= Hkenntlich gemacht wird. Sinngemäß stimmen in den Fällen (Di= L und
wird. Auch wenn wegen M1 = L die betrachtete Bitposition vom assoziativen Vergleich ausgeschlossen ist, wird
mittels £,= A/gewissermaßen Gleichheit simuliert.
Die Einzelaussagen C, und £, der η Speicherzellen werden in einem nachfolgenden Netzwerk, das pro Zelle
drei Gatter aufweist, zu einer Trefferinformation für das gesamte Datenwort kombiniert Gleichheit zwischen
Deskriptor und Datenwort herrscht offensichtlich dann, wenn Übereinstimmung in sämtlichen Bitpositionen
vorliegt. Also muß gelten:
E=E^A E2/\... ΛEn.
Das gespeicherte Datenwort ist als Dualzahl aufgefaßt genau dann größer als der Deskriptor, wenn es im
höchstwertigen Bit, bei dem es sich vom Deskriptor unterscheidet, größer als dieser ist Der formale Ausdruck
lautet:
G=GiV EtG2 VEtE2G3 v...VEx...En^Gn.
Die Feststellung, ob das Datenwort kleiner ist als der Deskriptor, läßt sich am einfachsten aus den beiden
anderen Aussagen ableiten. Der Kleiner-Relation liegt nämlich immer dann vor, wenn weder die Größer- noch
die Gieichheits-Relation erfüllt sind, also:
L=G VE.
Relation | Assoziations- | Symbol | Ableitung cus |
krher'mm (AK) | G und E | ||
</=s | Gleich | E | |
d*s | Ungleich | NE | E |
d>s | Größer | G | |
d>s | Größer/Gleich | NL | G+E |
d<s | Kleiner | L | ~G~+~E |
d<s | Kleiner/Gleich | NG | G |
Die drei Signale £ (Equal, gleich), G (Greater, größer) und L (Less, kleiner) bilden gemeinsam die Trefferinformation
für das zugehörige Datenwort Ihre Weiterverarbeitung ist aus F i g. 4 ersichtlich. Dort werden für eines
der m in (14) installierten Datenwörter die weiteren assoziativen Abfragemöglichkeiten gemäß den Ausgestaltungen
der Erfindung aufgezeigt Die Beziehung zur F i g. 1 ergibt sich daraus, daß die Leitungen (50) und (51)
jeweils eine der m Leitungen von (55) bzw. (56) repräsentieren und das Trefferregister (45) ein 1 Bit breites
Teilregister des /n-Bit-Registers (15) darstellt
Die Treffersignale G, L, E des betrachteten Datenwortes werden auf den Leitungen (40) bis (42) einer
Auswahlschaltung (44) zugeführt wo je eines von ihnen mittels zweier Bits aus dem Assoziationskriterium (AK),
welches Bestandteil der Operationsanweisung an den Eingängen (25) ist selektiert wird. Es kann, bevor es auf
Leitung (49) gelangt vermöge eines dritten AK-Bh bedarfsweise invertiert werden, so daß sich über die Relation
zwischen Datenwort und Deskriptor (Suchargument) insgesamt sechs verschiedene Aussagen treffen lassen. Sie
können offensichtlich aus den beiden Fundamentalaussagen »Gleich« und »Größer« gemäß F i g. 3 abgeleitet
werden und sind in Tabelle 3 zusammengestellt
Das Steuersignal VFwird ebenfalls in (19) aus der Operationsanweisung abgeleitet Im Falle VF= //wird die
Trefferinformation auf (49) in unveränderter Form vom Gatter (48) auf die Leitung (50) durchgeschaltet Von
hier wird sie nach (45) übernommen, sobald der Operationsdecodierer auf Leitung (35) den Ladetakt LTaktiviert
hat Danach liegt sie über Leitung (51) nicht nur am Diskriminator (16) an, sondern auch am Gatter (47) und kann
in dieser Rückkopplung für eine assoziative Abfragesequeiiz benutzt werden. Ist nämlich VF= L, so gelangt die
in (45) gespeicherte Trefferinformation über Leitung (52) zum Gatter (48) und kann hier mit einer zweiten
Trefferinformation auf (49) konjunktiv verknüpft werden, die in einer weiteren Suchoperation mit Hilfe eines
anderen Deskriptors, einer anderen Maske und/oder eines anderen Assoziationskriteriums erzeugt wurde. Mit
vifem nächsten LT-Impuls erscheint dann in (45) die logische Schnittmenge der aktuellen Trefferinformation auf
(49) und einer früher gewonnenen auf (51).
Die A nzahl sequen tieller Suchoperationen, bei denen die gerade anfallende Trefferinformation mit dem zuvor 3s
konstruierten Treffermuster UND-verknüpft wird, ist prinzipiell unbegrenzt Für die Anwendung ist es von
entscheidender Bedeutung, daß i. a. mit jedem dieser Verknüpfungsschritte die Anzahl der Treffermarken im
Register (45) schrumpft Weil das Verfahren der Trefferidentifikation und -auswertung immer erst nach der
letzten Abfrage einer Sequenz gestartet wird, braucht es sich nur auf die dann noch verbliebenen Treffermarken
zu erstrecken. Das bedeutet: Je vielschichtiger das anstehende Suchproblem ist und je weiter es demnach in
einzelne Assoziativabfragen zerlegt werden muß, desto weniger Treffer wird es insgesamt produzieren, und
desto weniger Zeit wird deren Erfassung und Verarbeitung in Anspruch nehmen. Damit ist gerade für komplexe
Aufgabenstellungen ein höchst effizienter Abwicklungsmodus gesichert
Assoziationskriterien zur Ermittlung der Datenwörter d, die zum Suchargument s in Relation
/? stehen.
Assoziations- Symbol Ableitung cus
55
Die Arbeitsweise des assoziativen Speichersystems laut Erfindung wird nachfolgend mit Hilfe enr'jer fiktiver
Ausführungsbeispiele näher besehrieben. so
Im ersten Beispiel wird von einem Speicherbaustein gemäß Fig. 1 ausgegangen, der /n=8 Datenwörter
aufnehmen kann und demnach eine 3 Bits lange Adresse benötigt. Die Länge der Datenwörter, Maske und
Deskriptor möge π = 6 Bits betragen, ist jedoch für den Suchprozeß völlig unerheblich. Untersucht wird der Fall,
daß sich nur ein einziger derartiger Baustein in der Anordnung (75) befindet. Eine assoziative Vergleichsoperalion
möge die Trefferinformation »L0L00O0L« hervorgebracht haben, die auf den Leitungen (55) bzw. (56) 65 jp
iinstehtund — falls vorhanden — im Trefferregister (15) gespeichert ist.
Zwecks Identifikation der drei Treffermarken werden zu Beginn durch äußeren Eingriff (z. B. eines Prozes- |
xors) der Zähler (71) aus Fi g. 2 auf »000« gesetzt und diese Information über Multiplexer (73) dem Adreßein- |
gang (21) des Speicherbausteins zugeführt Daraus wird im Adreßcodierer (11) das Binärwort »L000 0000«
erzeugt und auf den Leitungen (27) dem Diskriminator (16) als Schwellenwert angeboten.
aus dem Schwellenwert, der defiruiior.sgernäß nur ein einziges »L«-Bit enthalten kann, ein Binärwort, das links
von der »L«-Position im Schwellenwert ausschließlich »O«-Bits und sonst ausschließlich »L«-Bits enthält; im
vorliegenden Falle lautet es demnach: »LLLL LLLL«. Es wird in der zweiten Stufe mit der Trefferinformation
auf (56) UND-verknüpft und in dieser Form auf die Leitungen (57) gelegt (hier: »LOLO OOOL«).
Der Prioritäts-Codierer (17) — ebenfalls ein kombinatorisches Schaltnetz aus zwei Stufen — blendet zunächst
alle »L«-Bits mit Ausnahme des am weitesten links stehenden aus; im Beispiel entsteht: »L0O0 0000«. Das
bedeutet, daß ab hier nur noch eine einzige Treffermarke sichtbar ist Sie bzw. ihre Position wird in der zweiten
Stufe zu einem dreistelligen Treffercodewort (hier: »000«) komprimiert und über die Leitungen (58) sowie den
Multiplexer (18) arn Ausgang (23) angezeigt Damit ist einer externen Einheit bekannt, daß das Speicherwort
Nr. 0 einen Treffer aufweist Mittels der noch in (71) verfügbaren Adresse kann es dann bei Bedarf ausgelesen
oder überschrieben werden.
Die Fortsetzung des Suchprozesses wird — wiederum extern — durch inkrementierung des Inhalts von (71)
eingeleitet (Adreßerhöhung um +1). Der demzufolge geänderte Schwellenwert bewirkt eine Rechtsverschiebung der Trennlinie zwischen »0«. und »L«-Bits im Binärwort der ersten Stufe von (16), so daß die zuvor «irfaßie
Treffermarke jetzt ausgefiltert wird. Aus der verbleibenden reduzierten Trefferinformation wird dann in (17) die
dritte Stelle 5ls höchstpriore erkannt, was zum Codewort »0L0« führt usw.
In Tabefe 1 sind für die drei erforderlichen Suchzugriffe alle relevanten Binärgrößen zusammengestellt
wobei die Zahlen in der Kopfzeile jeweils auf die betroffenen Leitungen in den F i g. 1 und 2 hinweisen.
Im zweiten — wesentlich praxisnäheren — Ausführungsbeispiel sind 24 Speicherbausteine gemäß F i g. 1, von
denen jeder wiederum m=8 Datenwörter von je fl=6 Bits Länge enthalten kann, nach dem Schema von F i g. 2
zu einer Anordnung aus p^=4 Reihen und q=6 Spalten konfiguriert Das Speichersystem umfaßt somit insge
samt 32 je 36 Bits lange Datenwörter. Ihnen sind die effektiven Adressen 0,.., 31 zugeordnet während die
bausteinbezogenen Adressen innerhalb der Reihen 0,.., 7 lauten. Die Reihen* dbst seien mit 0,.., 3 numeriert.
Es sei angenommen, daß ein assoziativer Vergleich in den 24 Bausteinen (1,1) bis (4,6) die in Tabelle 2
skizzierten Treffermuster produziert hat Darin bedeutet jedes » χ « eine interne Treffermarke für das zugehörige 6-Bit-Datenwortsegment Die für die praktische Anwendung allein relevanten Gesamttreffer ergeben sich
definitionsgfnäß nur bei den Wörtern, die in allen 6 Segmenten eine Treffermarke aufweisen. Das resultierende
Gesamttrefferbild läßt sich daher als Schnittmenge aus den 6 segmenteilen Treffermustern der Matrix-Spalten
interpretieren. Natürlich ist dkse Konstellation extern zunächst unbekannt und muß vermöge des Suchprozesses schrittweise ermittelt wcrden.
Zu diesem Zweck wird durch Kücksetzen der Zähler (70) und (71) die Effektivadresse »0« gebildet und über
die Multiplexer (72) und (73) an (75) gelegt Das verursacht eine Aktivierung der ersten Bausteinreihe und
zugleich einen Schwellenwert im Baustein (1,1), der alle Treffermarken unberührt läßt so daß am Ausgang (23)
das Codewort »0« erscheint Weil die nächsten Leiden Bausteine an derselben Position ebenfalls eine Treffermarke besitzen, senden sie das gleiche Codewort aus. Dagegen liefert der Baustein (1,4) eptsprechend seiner
höchstprioren Marke den Treffercode »3« ab, der von den letzten beiden Bausteinen dann wiederum reprodu
ziert wird.
Der Komparator (79) erkennt die Inkoinzidenz der Werte »0« auf (81) und »3« auf (67), was einen erfolglosen
Suchgriff bedeutet, und veranlaßt die Übernahme des Codewortes »3« nach (71) als neue Adreßvorgabe f ür (1,1).
Der zugehörige Schwellenwert unterdrückt nun in den Speicherbausteinen alle Treffermarken mit Positionen,
die niedriger als »3« sind. Laut Belegung in Tabelle 1 ermitteln jetzt alle sechs Bausteine die Marke auf Position
»3« als ihre höchstpriore und senden daher alle dasselbe Codewort »3« aus. Infolgedessen zeigt der Komparator
(79) auf (64) Koinzidenz an.
Der Decodierer (74) beschickt während dieser Zeit die Leitungen (82) mit dem Schwellenwert »LOO0«
(gleichbedeutend mit der Selektion der ersten Reihe!), so daß alle Statusmeldungen auf (83) den Diskriminator
(76) oassieren können. Der Prioritäts-Codierer (77) ermittelt unter den trefferbehafteten Matrix-Reihen die erste
als höchstpriore und erzeugt auf (68) das Codewort »0«. Dessen Koinzidenz mit der in (70) gespeicherten
ist ein sicheres Indiz für einen erfolgreichen Suchzugriff. Der jetzt auf (67) und (68) anliegende Treffercode »3«
bezeichnet als ganzes die Effektivadresse eines mit Gesamttreffer behafteten Datenworts.
Aufgrund des zugehörigen Schwellenwertes treten auf den Leitungen (57) im Baustein (1,1) keine Treffermarken
mehr auf, was über Ausgang (24) eine entsprechende Statusmeldung auf (83,1) auslöst. Der Codierer (77)
konstruiert daraufhin den Code »1« zur Kennzeichnung der nächstprioren Matrix-Reihe mit Treffererwartung.
Dessen Abweichen von der Reihenadresse in (70) wird von (78) als erfolgloser Suchzugriff gewertet und führt
dazu, daß das auf (68) anliegende Codewort »1« nach (70) geladen und gleichzeitig der Zähler (71) rückgesetzt
wird. Beide Maßnahmen ergeben zusammen die Spezifikation der effektiven Adresse »8« als neue Suchvorgabe.
Damit ist der Übergang zur zweiten Bausteinreihe vollzogen. Der Decodierer (74) liefert jetzt den Schwellenwert »0L00«, weshalb nur noch Treffer aus der zweiten bis vierten Reihe berücksichtigt werden. Deren Identifikation läuft nach demselben Algorithmus wie beschrieben ab. Dabei läßt sich die dritte Reihe unmittelbar
überspringen, weil wegen des Fehlens von Treffermarken im Baustein (3,5) — angezeigt über (833) — bereits
ohne eigenen Suchzugriff feststeht, daß im Adreßbereich »16... 23« keine Gesamttreffer auftreten.
Der Abschluß des Suchprozesses ergibt sich aus dem Umstand, daß nach Erfassung des letzten Treffers auf
Effektivadresse »30« und deren anschließender Fortschaltung auf »31« in (71) alle Statuslcitungen (83) eine
entsprechende Fehlmeldung enthalten und der Diskriminator (76) an den Prioritäts-Codierer (77) folglich eine
»leere« Trefferinformation übergibt
Um den Ablauf des Verfahrens auch im Detail transparent zu machen, ist in Tabelle 2 die Sequenz der zur
Identifikation der sechs Gesamttreffer erforderlichen Suchzugriffe angegeuen, Dabei entspricht jedem Pfeilanfang
eine in (70) und (71) gemeinsam bereitgestellte Effektivadresse als Vorgabewert für den Suchzugriff. Jede
Pfeilspitze weist auf diejenige Effektivadresse, die mit dem bei diesem Suchzugriff aJs Ergebnis gewonnenen und
auf (67) und (68) als ganzes anstehendem Treffercodewort identisch ist
Im dritten Ausführungsbeispiel sei die Leistungsfähigkeit des assoziativen Speichersystems anhand folgender
Problemstellung demonstriert: Aus der Personaldatei eines Unternehmens sollen diejenigen Mitarbeiter ausfindig
gemacht werden, die höchstens 50 Jahre als sind, ein Monatseinkommen zwischen 4000 und 8000 DM
beziehen und im laufenden Kalenderjahr der Firma genau 25 Jähre lang angehören.
Für die Sätze dieser Datei sei vereinfachend folgendes Format mit fünf Feldern angenommen:
FeId-Nr. 1 2 3 4 5
Name | Anschrift | Alter | Zugehörigkeitsdauer | Monatseinkommen |
Jeder Satz sei in einem einzigen Datenwort der Länge q ■ π Bits abgelegt Bei nichtassoziativen Speicherope-
!> rationen erfolgt der Zugriff darauf mittels der Personalnummer, die als Adresse des Datenwortes fungiert und
Vi daher nicht selbst abgespeichert wird. Bei Suchoperationen kann durch Vorgabe eines geeig^iten Deskriptors
f? (Sucharguments) über jedes beliebige Feld zugegriffen werden, wobei die übrigen Felder jewe'ls durch eine
5*' entsprechende Maske abgedeckt sein müssen.
ff Die Aufgabe wird mit Hilfe einer assoziativen Mehrfachabfrage gelöst, speziell mit einer Sequenz aus vier
Vi Suchoperationen in beliebiger Reihenfolge. Jede Einzelabfrage ist durch eine Maske, einen Deskriptor und ein
I\ Assoziationskriterium (AK) charakterisiert Für das jeweils relevante Datenfeld wird der Vergleichsoperand als
fS Deskriptor vorgegeben, während alle übrigen Felder (nachfolgend schraffiert gezeichnet!) mittels der Maske
q abgedeckt d. h. vom assoziativen Vergleich ausgeschlossen werden.
!;· Das gewünschte Treffermuster läßt sich beispielsweise mit folgender Sequenz konstruieren:
!;· Das gewünschte Treffermuster läßt sich beispielsweise mit folgender Sequenz konstruieren:
Suchoperation AK Maske / Deskriptor
ner/Gleich | V/////A » Y/////. |
GröQer | '////////////λ™° I |
Kleiner | Υ//////////Λ — I |
Gleich | Υ///////Λ *■ V/A |
Bei der ersten Abfrage werden die Felder 1,2,4 und 5 maskiert und nur das Feld 3 sämtlicher Daten Wörter mit
dem Operanden »50« verglichen. Die ersten beiden AK-Bhs werden so gewählt, daß die Schaltung (44) die
Trefferleitungen (40) durchschaltet und deren Signale vermöge des dritten AK-Bh invertiert so daß auf den
Leitungen (49) die Trefferinformarion erscheint, die zur Relation »Nicht Größer« gehört, was gleichbedeutend
ist mit »Kleiner/Gleich«. Aufgrund der Spezifikation VF=H wird sie über die Gatter (48), die Leitungen (50)
bzw. (55) ins Trefferregister (45) bzw. (15) geladen. Hier sind jetzt alle Mitarbeiter markiert, die 50 Jahre alt oder
jünger sind.
Für die zweite Abfrage werden die Felder 1 bis 4 maskiert und die Zahl »4000« im Feld 5 als Deskriptor
vorgegeben. Die AK-Bhs werden so spezifiziert daß erneut die Leitungen (40) durchgeschaltet ihre Signale
jedoch anschließend nicht invertiert werden. Damit gelangt auf (49) die zur Relation »Größer« gehörende
Trefferinformation. Sie wird in (48) wegen des jetzt gültigen StTüorsignals VF= L mit dem ersten Abfrageergebnis
U N D-verknüpft und in dieser Form nach (15) übernommen. Die danach vorliegenden Treffermarken kennzeichnen
jene Personen, die höchstens 50 Jahre als sind und über 4000 DM pr ζ Monat verdienen.
Bei der dritten Abfrage wird ebenso verfahren, allerdings mit dem AK »Kleiner« und dem Vergleichsoperanden
»8000«. Durch diese Einführung der oberen Einkommensgrenze wird der zu ermittelnde Personenkreis
weiter eingeengt. Schließlich wird ffr die letzte Abfrage der Deskriptor im Feld 4 auf »25« gesetzt und die
Leitungen (42), auf denen die Übereinstimmung von Datenwort und Deskriptor angezeigt wird, werden auf (49)
durchgeschaltet, Durch abermalige UND-Verknüpfung mit der bis dahin gebildeten Trefferinformation entsteht
das endgültige Trefferergebnis, d. h. in (45) sind nunmehr die Datensätze genau der Mitarbeiter markiert, die alle
i: der Aufgabe formulierten Bedingungen erfüllen.
Damit ist die Abfragesequenz beendet, und nur diese zuletzt verbliebenen Treffermarken müssen in einem
anschließenden (an früherer Stelle bereits beschriebenen) Prozeß identifiziert und ausgewertet werden.
Such | Adresse | Schwellenwert | Diskriminator | 2. Stufe | Prioritäts-Codierer | Trcffcr- |
zugriff | 1. Stufe | 1. Stufe | codcwort | |||
57 | 58/23 (67) | |||||
Nr. | 21 (81) | 27 | LOLO OOOL | 000 | ||
1 | 000 | LOOO 0000 | LLLL LLLL | OOLO OOOL | LOOO 0000 | OLO |
2 | 0OL | OLOO 0000 | OLLL LLLL | 0000 OOOL | OOLO 0000 | LLL |
3 | OLL | 00OL 0000 | 00OL LLLL | 0000 OOOL |
Reihen- | Baust, int. | effekt. | Spalten-Nr. | 1 | 2 | 3 | 4 | 5 | 6 | Gesamt- | Sequenz der |
Nr. | Adresse | Adresse |
I
X |
X | X | X | treffer | Sucnzugmie | |||
O | O | O | X | X | X | X | |||||
1 | 1 | X | X | X | |||||||
2 | 2 | X | χ | X | X | X | X | ||||
3 | 3 | X | X | X | X | X | |||||
4 | 4 | X | X | X | |||||||
5 | 5 | X | X | X | X | ||||||
6 | 6 | X | X | X | X | ||||||
7 | 7 | X | X | X | X | X | X | ||||
1 | O | 8 | X | X | X | X | X | ||||
1 | 9 | X | X | X | X | X | |||||
2 | 10 | X | X | X | |||||||
3 | 11 | X | X | X | X | X | X | ||||
4 | !2 | X | X | X | X | X | X | X | |||
5 | 13 | X | X | X | X | X | |||||
6 | 14 | y | V | X | X | ||||||
•t / |
t C U |
X | X | X | |||||||
2 | O | 16 | X | X | X | X | |||||
1 | 17 | X | X | X | X | ||||||
2 | 18 | X | X | X | X | X | |||||
3 | 19 | X | X | X | |||||||
4 | 20 | X | X | X | X | X | |||||
5 | 21 | X | X | X | X | ||||||
6 | 22 | X | X | X | X | ||||||
7 | 23 | X | X | X | X | ||||||
3 | O | 24 | X | X | X | X | X | ||||
1 | 25 | X | X | X | X | X | X | ||||
2 | 26 | X | X | X | X | X | |||||
3 | 27 | X | X | X | X | ||||||
4 | 28 | X | X | X | X | X | |||||
5 | 29 | X | X | X | X | X | X | ||||
6 | 30 | X | X | X | X I | X | |||||
7 | 31 | ||||||||||
Claims (10)
1. Assoziatives Speichersystem in hochintegrierter Halbleitertechnik, bestehend
aus wortorganisierten und bitweise maskierbaren voUassoziativen Speicherbausteinen,
von denen jeder m Wörter der Länge π Bits aufnimmt,
aus wortorganisierten und bitweise maskierbaren voUassoziativen Speicherbausteinen,
von denen jeder m Wörter der Länge π Bits aufnimmt,
denen sowohl die Wortadresse über Adreßanschlüsse als auch die Operationsanweisung über Steueranschlüsse
in codierter Form zugeführt und intern decodiert werden.
bei denen sich die Eingangsdaten, die Ausgangsdaten und die Maskeninformation nach dem Zeitmultiplexverfahren
in die Benutzung der gleichen Anschlußstifte teilen, wobei für die Speicherung der Maskeninfor-ο
mation ein internes Maskenregister vorgesehen ist,
bei denen Lese- und Schreiboperationen mit Wortadresse und Aus- bzw. Eingangsdaten in bekannter Weise
ablaufen,
aus einem matrixartigen Verwaltungsschema für diese Bausteine (Anordnung aus mehreren Reihen und
Spalten) zwecks Vergrößerung der Wortanzahl und dar Woitlänge des Speichersystems sowie
aus einem Steuerwerk für die Ermittlung und Auswertung von Trefferiniormationen,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
a) daß die im Zuge einer assoziativen Suchoperation in der Speicherzellenmatrix (14) gebildete und auf den
Leitungen (55) anstehende Trefferinformation in Form einer Sequenz von Treffercodewörtern über
spezielle Treffercodeanschlüsse (23) nach außen abgegeben wird, wobei die Reihenfolge der Ausgabe
durch ein wortadreßorientiertes Prioritätsschema festgelegt ist,
b) daß die an den Adreßeingängen (21) anliegende Information im Falle einer Schreib- oder Leseoperation
(spezifiziert durch eine entsprechende Operationsanweisung an den Eingängen (25)) — unbeschadet
ihrer internen Decodierung als Wortadresse — auf die Treffercodeausgänge (23) durchgeschaltet wird,
hingegen im Falle einer Suchoperation (ebenfalls durch eine geeignete Operationsanweisung aufgeprägt)
als Schwellenwert interpretiert wird mit dem Zweck, die bereits per Codewori nach außen
gemeldeten Treffer zu maskieren und somit von weiteren Meldungen auszuschließen, wobei an deren
Stelle die Nummer desjenigen Treffers als Codewort auf die Treffercodeausgänge (23) geschaltet wird,
der von den noch nicht gemeldeten die höchste Priorität, d. h. die niedrigste Wortadresse aufweist,
c) daß r.um Zwecke der Installierung einer Systemwortlänge von q ■ η Bits mittels Vervielfachung der
Bausteinwortlänge von π Bits jeweils q Speicherbausteine derart zu einer Reihe im Rahmen einer
Matrixanordnung (75) zusammengefaßt werden, daß sie bezüglich der Datenleitungen (63) in an sich
bekannter Weis- parallel, bezüglich der Leitungen (21) und (23), die alternativ Adressen und Treffercodewörter
übertragen,}: Joch seriell geschaltet werden, indem innerhalb dieser Reihe die Treffercodcausgänge
(23) eines Bausteins auf die Adreßeingänge (21) des nächsten Bausteins geführt werden,
d) daß das Steuerwerk nach Erkennung eines für die gesamte Sysiemwortlänge gültigen Treffers dessen
zugehörige Wortadresse über die Leitun<»en (67) und (68) extern zur Verfügung stellt, außerdem diese
Wortadresse um 1 erhöht, einen Teil davon zur Auswahl einer Bausteinreihe in die Speicheranordnung
(75) benutzt, den anderen Teil als neuen Schwellenwert auf die Adreßeingänge (21) dt» ersten Bausteins
der ausgewählten Reihe schaltet und mit dem daraufhin an den Ausgängen (23) des letzten Bausteins
derselben Reihe erscheinenden Treffercodewort vergleicht, wobei im Koinzidenzfalle der nächste Treffer
erkannt ist und ausgewertet werden kann, während bei Inkoinzidens das Treffercodewort unmittelbar
als neuer Schwellenwert für die weitere Suche verwendet wird.
2. Assoziatives Speichersystem nach Anspruch 1, dadurch gekennzeichnet, daß die Speicherbausteine
einen zusätzlichen Ausgangsanschluß (24) für den Trefferstatus aufweisen, der anzeigt, ob innerhalb des
Bausteins in dem Adreßbereich, der von dem an den Adreßeingängen (21) anliegenden Schwellenwert nicht
maskiert wird, noch weitere Treffer vorhanden sind.
3. Assoziatives Speichersystem nach Anspruch 1, dadurch gekennzeichnet, daß in die Speicherbausteine
so neben einem Maskenregister (13) noch ein Datenregister (12) für die Speicherung der Suchdaten (Deskriptor)
sowie ein Trefferregister (15) für die Speicherung der Trefferinformation integriert ist.
4. Assoziatives Speichersystem nach Anspruch 1 und 3, gekennzeichnet durch eine bausteininterne Rückführung
der Trefferleitungen (55) bzw. der Ausgänge (56) des Trefferregisters (15) auf die Speicherzelleneingänge
der zugehörigen Wörter in der Speicherzellenmatrix (14), so daß sämtliche durch einen Treffer
markierten Wörter gleichzeitig mit einem auf den Anschlüssen (20) anliegenden oder bereits im Datenregister
(12) stehenden Wort überschrieben werden können (Multi-Write-Funktion).
5. Assoziatives Speichersystem nach Anspruch 1 und 3, dadurch gekennzeichnet, daß in Abhängigkeit von
der auf den Anschlüssen (25) angelegten Operationsanweisung entweder ein über die Anschlüsse (20)
vorgegebener Deskriptor oder ein durch die Wortadresse auf (21) ausgewähltes Speicherwort mittels bausteininterner
Rückkopplung der Leitungen (28) auf die Leitungen (26) in das Datenregister (12) geladen wird.
6. Assoziatives Speichersystem nach Anspruch 1 und 3, dadurch gekennzeichnet, daß die an sich jeder
Speicherzelle innerhalb der Speicherzellenmatrix (14) zugeordnete Vergleichseinrichtung die gespeicherten
Wörter mit dem Deskriptor (Suchwort) nicht nur auf Identität, sondern auch bezüglich der Assoziationskritcrien
»Größer als« und »Kleiner als« vergleicht und daß in Abhängigkeit von der auf den Leitungen (25)
anliegenden Operationsanweisu.ig wahlweise e>ne der dadurch erzeugten drei Arten von Trefferinformationen
(Gleich, Größer, Kleiner bezüglich des Deskriptors) zwecks Auswertung in ds>s Trefferregister (15)
geladen wird.
7. Assoziatives Speichersystem nach Anspruch 1,3 und 6, dadurch gekennzeichnet, daß die Information auf
den Eingangsleitungen (55) bzw. (50) zum Trefferregister (15) bzw. (45) eine logische Verknüpfung aus den
bausteinintern zurückgekoppelten Tefferregisterausgängen (56) bzw. (51) sowie aus den Treffersignalen (49)
der zugehörigen Speicherwörter darstellen, so daß in Abhängigkeit von der angelegten Operatinsanweisung
entweder das Ergebnis einer einzelnen assoziativen Suchoperation oder aber das Verknüpfungsergebnis aus
mehreren sequentiell durchgeführten Suchoperationen im Trefferregister (15) festgehalten wird.
8. Assoziatives Speiebersystem nach Anspruch 1, 6 und 7, dadurch gekennzeichnet, daß das Steuerwerk
zwecks Durchführung komplexerer Suchoperationen die zu einem Gesamtspeicherwort zusammengeschalteten
q Bausteine einer Matrixreihe, d. h. die Spalten der Speicheranordnung (75), zur gleichen Zeit mit
verschiedenen Operationsanweisungen beschickt
9. Assoziatives Speichersystem nach Anspruch 1 und 8, dadurch gekennzeichnet, daß von den Bausteinreihen
der Speicheranordnung (75) jeweils nur diejenige mit Hilfe eines Auswahlsignals auf den Leitungen (S2,I)
bis (82,p) bzw. (22) aktiviert wird, auf die sich die vorgegebene Wortadresse bzw. der vorgegebene Schwellenwert
bezieht, so daß sich die Treffercodeausgänge (23) der letzten Speicherbausteine aller Reihen mittels
einer ODER-Verknüpfung zusammenfassen lassen.
10. Assoziatives Speichersystem nach Anspruch 1,2 und 9, gekennzeichnet durch eine UN D-Verknüpfung
der Trefferstatusausgäiige (24) aller Bausteine innerhalb einer Reihe der Speicheranordnung (75) mit der
Wirkung, daß das Steuerwerk bei der Trefferermittlung eine Reihe bereits dann verläßt, wenn mindestens
einer ihrer Bausteine keinen weiteren Treffer mehr enthält, und sogar ganze Reihen übergeht, wenn in ihnen
mindestens ein Baustein gar keinen Treffer enthält
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2712575A DE2712575C2 (de) | 1977-03-22 | 1977-03-22 | Assoziatives Speichersystem in hochintegrierter Halbleitertechnik |
US05/882,549 US4159538A (en) | 1977-03-22 | 1978-03-02 | Associative memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2712575A DE2712575C2 (de) | 1977-03-22 | 1977-03-22 | Assoziatives Speichersystem in hochintegrierter Halbleitertechnik |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2712575A1 DE2712575A1 (de) | 1978-09-28 |
DE2712575C2 true DE2712575C2 (de) | 1985-12-19 |
Family
ID=6004343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2712575A Expired DE2712575C2 (de) | 1977-03-22 | 1977-03-22 | Assoziatives Speichersystem in hochintegrierter Halbleitertechnik |
Country Status (2)
Country | Link |
---|---|
US (1) | US4159538A (de) |
DE (1) | DE2712575C2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3727846A1 (de) * | 1987-08-20 | 1989-03-02 | Vmei Lenin Nis | Assoziative operations-speichereinrichtung |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4376974A (en) * | 1980-03-31 | 1983-03-15 | Ncr Corporation | Associative memory system |
US4385371A (en) * | 1981-02-09 | 1983-05-24 | Burroughs Corporation | Approximate content addressable file system |
FR2526571B1 (fr) * | 1982-05-05 | 1987-01-16 | Ossona De Mendez Patrice | Systemes memoire accessibles par leurs adresses ou en fonction du contenu |
US4817058A (en) * | 1987-05-21 | 1989-03-28 | Texas Instruments Incorporated | Multiple input/output read/write memory having a multiple-cycle write mask |
US4928260A (en) * | 1988-05-11 | 1990-05-22 | Advanced Micro Devices, Inc. | Content addressable memory array with priority encoder |
US4888731A (en) * | 1988-05-11 | 1989-12-19 | Advanced Micro Devices, Inc. | Content addressable memory array system with multiplexed status and command information |
JP3096362B2 (ja) * | 1992-10-26 | 2000-10-10 | 沖電気工業株式会社 | シリアルアクセスメモリ |
JP3036467B2 (ja) * | 1997-06-19 | 2000-04-24 | 日本電気株式会社 | 最長一致検出装置 |
US6944709B2 (en) * | 1999-09-23 | 2005-09-13 | Netlogic Microsystems, Inc. | Content addressable memory with block-programmable mask write mode, word width and priority |
US6801981B1 (en) | 2000-06-14 | 2004-10-05 | Netlogic Microsystems, Inc. | Intra-row configurability of content addressable memory |
US6934795B2 (en) * | 1999-09-23 | 2005-08-23 | Netlogic Microsystems, Inc. | Content addressable memory with programmable word width and programmable priority |
US6542391B2 (en) * | 2000-06-08 | 2003-04-01 | Netlogic Microsystems, Inc. | Content addressable memory with configurable class-based storage partition |
US6799243B1 (en) | 2000-06-14 | 2004-09-28 | Netlogic Microsystems, Inc. | Method and apparatus for detecting a match in an intra-row configurable cam system |
US6813680B1 (en) | 2000-06-14 | 2004-11-02 | Netlogic Microsystems, Inc. | Method and apparatus for loading comparand data into a content addressable memory system |
US6751701B1 (en) | 2000-06-14 | 2004-06-15 | Netlogic Microsystems, Inc. | Method and apparatus for detecting a multiple match in an intra-row configurable CAM system |
US6643748B1 (en) * | 2000-04-20 | 2003-11-04 | Microsoft Corporation | Programmatic masking of storage units |
AU2001267082A1 (en) * | 2000-06-14 | 2001-12-24 | Netlogic Microsystems, Inc. | Intra-row configurability of content addressable memory |
US6560670B1 (en) | 2000-06-14 | 2003-05-06 | Netlogic Microsystems, Inc. | Inter-row configurability of content addressable memory |
AU2002223853A1 (en) * | 2000-11-21 | 2002-06-03 | Aspex Technology Limited | Bit-parallel/bit-serial compound content-addressable (associative) memory devices |
US20040265167A1 (en) * | 2003-06-30 | 2004-12-30 | Todd Morrison | Sterilization vacuum chamber door closure |
KR100799158B1 (ko) * | 2005-09-21 | 2008-01-29 | 삼성전자주식회사 | 반도체 메모리 및 이를 포함하는 반도체 메모리 모듈 |
US8359521B2 (en) * | 2008-01-22 | 2013-01-22 | International Business Machines Corporation | Providing a memory device having a shared error feedback pin |
JP2009187615A (ja) * | 2008-02-05 | 2009-08-20 | Elpida Memory Inc | 半導体記憶装置 |
US8255783B2 (en) * | 2008-04-23 | 2012-08-28 | International Business Machines Corporation | Apparatus, system and method for providing error protection for data-masking bits |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3241124A (en) * | 1961-07-25 | 1966-03-15 | Gen Electric | Ranking matrix |
CA808821A (en) * | 1963-01-02 | 1969-03-18 | T. Mckeever Bruce | Associative memory |
US3354436A (en) * | 1963-02-08 | 1967-11-21 | Rca Corp | Associative memory with sequential multiple match resolution |
US3533085A (en) * | 1968-07-11 | 1970-10-06 | Ibm | Associative memory with high,low and equal search |
US3685020A (en) * | 1970-05-25 | 1972-08-15 | Cogar Corp | Compound and multilevel memories |
DE2525287B2 (de) * | 1975-06-06 | 1977-03-24 | Siemens AG, 1000 Berlin und 8000 München | Assoziativspeicher |
-
1977
- 1977-03-22 DE DE2712575A patent/DE2712575C2/de not_active Expired
-
1978
- 1978-03-02 US US05/882,549 patent/US4159538A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3727846A1 (de) * | 1987-08-20 | 1989-03-02 | Vmei Lenin Nis | Assoziative operations-speichereinrichtung |
Also Published As
Publication number | Publication date |
---|---|
US4159538A (en) | 1979-06-26 |
DE2712575A1 (de) | 1978-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2712575C2 (de) | Assoziatives Speichersystem in hochintegrierter Halbleitertechnik | |
DE2554442C2 (de) | Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen | |
DE2725718C2 (de) | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen | |
EP0010195B1 (de) | Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage | |
DE3650156T2 (de) | Auf regeln basiertes datenwiederauffindverfahren und anordnung. | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2208664A1 (de) | Verfahren zur Decodierung eines vorsatzfreien Verdichtungscodes veränderlicher Länge | |
DE2703559C2 (de) | ||
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE3518818C2 (de) | ||
DE1171650B (de) | Maschine zur serienmaessigen Verarbeitung von Daten in binaerer Zeichenverschluesselung | |
DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
DE2136270A1 (de) | Verfahren und Vergleicher zum Vergleich zweier Binärzahlen | |
DE4210109C2 (de) | Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren | |
DE102014105218A1 (de) | Suchvorrichtung mit Verwendung von endlichen Automaten für Teilworte | |
DE60001585T2 (de) | Datenverarbeitungseinrichtung und -verfahren | |
DE3688737T2 (de) | Kontextadressierbarer umlaufspeicher. | |
DE2062164A1 (de) | Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten | |
DE1449584A1 (de) | Anordnung zur UEbertragung von Daten einer Loch- oder Magnetkarte in eine Datenverarbeitungsanlage oder umgekehrt | |
DE2004436A1 (de) | Adressenwandler in einer Datenverarbeitungsanlage | |
DE19645057C2 (de) | Vorrichtung zur Selektion von Adressenwörtern mittels Demultiplex-Decodierung | |
DE2451984C2 (de) | Datenverarbeitungsanlage | |
DE69132182T2 (de) | System und Verfahren zum Abruf von Zeichenreihen | |
EP0760502B1 (de) | Ordnungsverfahren für Zugehörigkeitsfunktionswerte linguistischer Eingangswerte in einem Fuzzy-Logic-Prozessor und Anordnung zu deren Durchführung | |
DE2613703C2 (de) | Schaltungsanordnung zum Übersetzen von Programmtexten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
OGA | New person/name/address of the applicant | ||
8127 | New person/name/address of the applicant |
Owner name: MOTSCH, WALTER, DIPL.-ING., 8011 PUTZBRUNN, DE |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |