Assoziativspeicher
Vorlage:Hinweisbaustein Ein Assoziativspeicher oder auch inhaltsadressierbarer Speicher ({{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value), CAM) ist eine Speicherform, bei der Speicherinhalte nicht mittels Adressierung der Speicherzelle, sondern mittels Assoziation des Inhalts abgerufen wird. Der Zugriff auf Daten erfolgt also über die Eingabe eines Speicherwertes und nicht über die Eingabe einer Speicheradresse.<ref>Ali Çam: Content-addressable memory (CAM) circuits and architectures: A tutorial and survey. In: Solid-State Circuits, IEEE … 1. Januar 2006 (academia.edu [abgerufen am 7. Mai 2025]).</ref>
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
Die Idee eines Assoziativspeichers wurde bereits 1943 von Konrad Zuse skizziert,<ref>Klaus Waldschmidt: Assoziativspeicher und eine erste Skizze von Konrad Zuse aus dem Jahre 1943. In: Informatik als Dialog zwischen Theorie und Anwendung. Vieweg+Teubner, Wiesbaden 2009, ISBN 978-3-8348-0824-0, S. 5, doi:10.1007/978-3-8348-9982-8_1 (springer.com [abgerufen am 7. Mai 2025]).</ref> 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.<ref>Klaus Waldschmidt: Assoziativspeicher und eine erste Skizze von Konrad Zuse aus dem Jahre 1943. In: Informatik als Dialog zwischen Theorie und Anwendung. Vieweg+Teubner, Wiesbaden 2009, ISBN 978-3-8348-0824-0, S. 6, doi:10.1007/978-3-8348-9982-8_1 (springer.com [abgerufen am 7. Mai 2025]).</ref> Auch Speichertabellen, auf die häufig zugegriffen wird, können als Assoziativspeicher realisiert sein. Beispielsweise kommen in manchen Routern CAMs zur Paketweiterleitung und -klassifizierung zum Einsatz.<ref>Ali Çam: Content-addressable memory (CAM) circuits and architectures: A tutorial and survey. In: Solid-State Circuits, IEEE … 1. Januar 2006 (academia.edu [abgerufen am 7. Mai 2025]).</ref> 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 <math>E_i</math> einen Ausgabevektor <math>A_i</math> liefern, wenn er genügend Ähnlichkeit mit einem Mustervektor <math>M_i</math> 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.<ref>Zarin Tasnim Sandhie, Farid Uddin Ahmed, Masud H. Chowdhury: Ternary Content Addressable Memory. In: Beyond Binary Memory Circuits: Multiple-Valued Logic. Springer International Publishing, Cham 2022, ISBN 978-3-03116195-7, S. 87–95, doi:10.1007/978-3-031-16195-7_7 (springer.com [abgerufen am 7. Mai 2025]).</ref>
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.
Einzelnachweise
<references/>