Assoziativspeicher
Ein Assoziativspeicher oder auch inhaltsadressierbarer Speicher (englisch Content Addressable Memory, CAM) ist eine Speicherform, bei der mit der Assoziation von Inhalten gearbeitet wird, um auf einzelne Speicherinhalte zuzugreifen. Eine weitere Umschreibung wäre, dass der Zugriff auf einen Speicherinhalt über die Eingabe eines Speicherwertes und nicht über eine Speicheradresse erfolgt.
Das besondere Wesen eines Assoziativspeichers beruht auf der vom jeweiligen Zugriff unabhängigen Strukturorganisation – am besten nachvollziehbar mit der Frage: 'Was steht an noch nicht beschriebenen Speicherstellen?'. Während die Adressierung mit expliziten Adressen regelmäßig eine Listen- oder Tabellen-Struktur wieder gibt, bei welcher die daraus definierten Speicherstellen zunächst mit einem leeren Wert besetzt sind, entstehen im idealisierten Assoziativspeicher nur dort Speicherstellen, für die zuvor ein Schreibvorgang stattgefunden hat.
Geschichte
Der Assoziativspeicher wurde bereits 1943 von Konrad Zuse vorgeschlagen, konnte jedoch erst mit der Entwicklung der Halbleitertechnik realisiert werden. Heute ist der Assoziativspeicher weitgehend durch Hashing-Techniken ersetzt, die mit konventionellem Speicher arbeiten und daher wesentlich preiswerter implementierbar sind.
Einsatzbereiche
Ein typischer Einsatzbereich sind schnelle Cache-Speicher. Auch Speichertabellen, auf die häufig zugegriffen wird, können als Assoziativspeicher realisiert sein. Beispielsweise wird in hochwertigen Netzwerkswitches die Tabelle der MAC-Adressen als CAM ausgelegt. Ein weiteres Einsatzgebiet sind Datenstrukturen in der Künstlichen Intelligenz. So arbeitet auch das menschliche Gedächtnis mit Assoziationen; z. B. verbindet es mit bestimmten Gegenständen Erinnerungen an bestimmte Erlebnisse.
Für Computersysteme ist die Realisierung von großen Assoziativspeichern schwierig, da auch „unscharfe“ Eingaben zu einem gewünschten Ergebnis führen sollen (Fuzzy-Suche). Allgemein soll ein Eingabevektor einen Ausgabevektor liefern, wenn er genügend Ähnlichkeit mit einem Mustervektor aufweist. Um derartige Funktionen zu realisieren, wird auf neuronale Netze zurückgegriffen. Eine einfache Realisierung der beschriebenen Zuordnung gelingt beispielsweise durch eines der simpelsten neuronalen Netze, das einlagige Perzeptron.
Sonderformen
Ein Ternary Content Addressable Memory (TCAM) arbeitet mit einem dritten logischen Wert, Don’t-Care, um auf die Speicherinhalte zuzugreifen.[1]
Fügt man mehrere Assoziativspeicher so zusammen, dass in ihnen außer Daten auch Programme abgelegt und ausgeführt werden können, so entsteht eine Assoziativmaschine.