【れんそうめもり】

連想メモリ とは?

最終更新:
💡 番地ではなく、中身を手がかりに探すメモリ

番地ではなく検索キーの内容を指定し、一致する格納場所や照合結果を得るメモリ。ハードウェアのCAMを指し、照合方式や応答時間は実装によって異なります。

📌 このページのポイント
連想メモリ:中身を手がかりに探す通常のメモリCAM入力:番地20:Cat1:Dog2:Owl出力:Owl入力:Owl0:Cat1:Dog2:Owl一致・番地2同じデータでも、探す手がかりが違う
同じ3件を保存した仮想例。通常のメモリは場所を指定し、CAMは内容を照合します。応答時間や複数一致の扱いは実装によります。
ひよこ ひよこ
普通のメモリと何が違うの?
ペンギン先生 ペンギン先生
普通のメモリは「3番地を読んで」と場所を指定する。CAMは「Owlと一致するものはある?」と内容を指定し、一致の有無や位置を受け取るんだ。データを探す手がかりが違うよ。
ひよこ ひよこ
全部を1件ずつ探すの?
ペンギン先生 ペンギン先生
ハードウェアで並列に照合したり、パイプラインで検索を処理したりする。方式は実装次第で、すべてのCAMが全件を1クロックで検索するとは限らない。1クロックごとに新しい検索を受け付けることと、答えが1クロックで返ることも別だよ。
ひよこ ひよこ
同じデータが2件あったら?
ペンギン先生 ペンギン先生
一致位置が複数になることがある。複数一致のフラグやビット列を返す実装、優先順位で1件を選ぶ実装があるよ。例えばXilinxのXAPP1151には、一致した番地の大小で選ぶ設定がある。
ひよこ ひよこ
TCAMは何が増えるの?
ペンギン先生 ペンギン先生
0と1だけでなく「このビットはどちらでもよい」を扱う。例えば10XXは1000〜1011に一致するというイメージ。AMDのTCAMはキーとマスクなどを保存し、ネットワークのACLルールの照合に利用できるよ。
ひよこ ひよこ
便利なら大容量の記憶を全部CAMにできる?
ペンギン先生 ペンギン先生
検索の回路や記憶方式にも資源が必要なので、用途に合わせて設計するんだ。CAMにもFPGAのRAMを利用するものがあり、「必ず普通のメモリの何倍」「数千件まで」と一律には言えない。件数・キー幅・検索と更新の性能を確認しよう。
もっと詳しく知りたい人へ

1クロックで検索できるという説明は間違い?

特定の実装では正しい説明です。例えばXAPP1151の参照設計は1クロックの検索を示しますが、出力レジスタを追加すると待ち時間が増えます。検索の受付間隔、結果までの待ち時間、書き込み時間を区別して仕様を読みましょう。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「連想メモリ」って出てきたら「内容をキーにして一致を探すメモリ」と思えばだいたいOK!
📖 おまけ:英語の意味
「Associative Memory / Content-Addressable Memory」 = 連想記憶装置 / 内容参照メモリ
💬 このページでは回路としてのCAMを扱います。AIや認知の文脈で使う「連想記憶」と、そのまま同じ実装を意味するわけではありません。

参考資料

← 用語集にもどる