【れんそうめもり】
連想メモリ とは?
💡 住所じゃなく名前で探せる、超高速な電話帳メモリ
📌 このページのポイント
連想メモリって普通のメモリと何が違うの?
普通のメモリは「何番地のデータをちょうだい」とアドレスを指定して読むんだけど、連想メモリは「このデータと一致するものある?」と内容で検索できるんだ。電話帳で言うと、「3ページ目を開いて」がアドレス指定、「田中さんの番号を探して」が連想メモリ方式だよ
内容で検索できるのは便利そうだけど、全部調べるから遅くならないの?
そこがすごいところで、全エントリを同時に並列で比較するから、たった1回の検索で結果が出るんだ。1件ずつ順番に調べるんじゃなくて、全員に同時に「この名前の人いる?」って聞くイメージだよ
それってどこで使われてるの?
そんなに便利なら、メインメモリも全部連想メモリにすればいいのに!
各エントリに比較回路が必要だから、普通のメモリの何倍もコストがかかるし消費電力も大きいんだ。だから数十〜数千エントリ程度の小さなテーブルにしか使われないよ。大容量にするとコストが爆発的に増えてしまうんだ
ネットワーク機器でも使われてるって聞いたけど本当?
そうだよ。ルーターやスイッチでパケットの宛先アドレスを高速に検索するためにTCAM(Ternary CAM)という3値連想メモリが使われてるんだ。0と1に加えて「どちらでもいい(ドントケア)」を扱えるから、ネットワークのルーティングテーブル検索にぴったりなんだよ
3値ってまた特殊だね!面白い技術なんだなぁ
まとめ:ざっくりこれだけ覚えればOK!
「連想メモリ」って出てきたら「アドレスではなく内容で検索できる高速メモリ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Associative Memory / Content-Addressable Memory」 = 連想記憶装置 / 内容参照メモリ
💬 内容(Content)でアドレス指定(Addressable)できるメモリだからCAM(Content-Addressable Memory)とも呼ばれるんだよ