Content Addressable Memoryについて詳しく解説

コンテンツ– アドレス指定可能メモリ (CAM) は、一部の非常に高速な研究アプリケーションで使用される特殊なタイプのコンピュータ メモリです。連想メモリ連想ストレージ連想アレイとも呼ばれます。

ハードウェア連想配列

ユーザー アプリケーションがメモリアドレスを提供し、RAM がこのアドレスに格納されているデータを返す標準的なコンピューター メモリ (ランダム アクセス メモリまたは RAM) とは異なり、 CAMはユーザー アプリケーションがデータのワードを提供し、 CAM はすべてのメモリを検索して、この単語がそこに保存されているかどうかを確認します。単語が見つかった場合、CAM は単語が見つかった 1 つ以上のアドレスのリストを返します (また、一部のアーキテクチャでは、データワードまたはその他の関連データも返します)。したがって、CAM は、ソフトウェアでいう連想配列とハードウェアで同等のものです。

 Content Addressable Memoryについて詳しく解説

半導体の実装

CAM は 1 回の操作ですべてのメモリを検索するように設計されているため、すべての検索アプリケーションで RAM よりも高速です。裏を返せば、単一の記憶セルを備えた RAM チップとは異なり、完全に並列な CAM の各メモリビットには、記憶されたビットと入力ビットの間の一致を検出するための独自の比較回路が必要です。さらに、データワードの各セルからの一致出力を組み合わせて、ワード全体に対応する信号を生成する必要があります。追加の回路により CAM チップの物理サイズが増大し、製造コストが増加します。各比較回路がクロック サイクルごとにアクティブになるため、追加の回路により消費電力も増加します。その結果、CAM は、より安価な方法では検索速度を達成できない特殊なアプリケーションでのみ使用されます。

代替実装

速度、メモリ サイズ、コストの間で異なるトレードオフを実現するために、一部の実装では、パフォーマンスを向上させるためにレプリケーションやパイプライン処理などのハードウェア トリックを使用して、標準のツリー検索またはハッシュ設計をハードウェア レベルで実装することにより、CAM 操作をエミュレートします。これらの設計はルーターでよく使用されます。

 Content Addressable Memoryについて詳しく解説

連想メモリの規格

CAM およびその他のネットワークルックアップ要素の主要なインターフェイス定義は、Network Processing Forum によって開発された Look-Aside Interface (LA-1 および LA-1B) と呼ばれる相互運用性協定で指定されました。Network Processing Forum は、後に Optical Internetworking Forum (OIF) と合併しました。多くのコンポーネントは、Integrated Device Technology、Cypress Semiconductor、 IBM 、およびその他のLA インターフェイス契約企業によって製造されました。 2006 年 5 月 25 日、OIF はルックアサイド仕様 (SLA) シリーズを作成するプロジェクトを開始したと発表しました。

3値CAM

バイナリ CAM は、 1 と 0 のみを含むデータの検索を使用する最も単純なタイプの CAM です。 Ternary CAM では、保存されたデータ ワード内の 1 つ以上のビットに対して「X」または「any」と呼ばれる 3 番目の一致状態が許可され、検索の柔軟性が向上します。たとえば、ターナリ CAM には、「10000」、「10010」、「10100」、または「10110」という単語の検索に一致する「10XX0」という保存済みメイトが存在する可能性があります。内部メモリセルはバイナリ CAM の 2 つの状態の代わりに 3 つの状態の可能性をすべてエンコードする必要があるため、バイナリ CAM と比較して検索の柔軟性が向上すると、追加のコストがかかります。この追加の状態は通常、各メモリ セルにマスク ビット (「ケア」または「ドントケア」ビット (いずれか)) を追加することによって実装されます。

 Content Addressable Memoryについて詳しく解説

応用例

連想メモリは、コンピュータ ネットワーク コンポーネントでよく使用されます。たとえば、ネットワーク スイッチがポートの 1 つからデータグラムを受信すると、パケットの送信元MAC アドレスと入力ポートを使用して内部テーブルを更新します。次に、テーブル内の宛先 MAC アドレスを検索してデータグラムの送信先を決定し、そのポートに送信します。 MAC アドレス テーブルは通常、バイナリ CAM によって実装されるため、宛先ポートを非常に迅速に見つけることができ、スイッチの遅延が短縮されます。

3 値 CAM はルータでよく使用されます。各アドレスは 2 つの部分で構成されます。1 つはネットワーク アドレスで、そのサイズはサブネット構成に応じて変わる可能性があり、もう 1 つは残りのビットを占めるマシン アドレスです。各サブネットには、アドレスのどのビットがネットワークを識別し、どのビットがマシンを識別するかを指定するネットワーク マスクがあります。ルーティングは、既知の各宛先ネットワーク、関連するネットワーク マスク、およびこれらの宛先にデータグラムをルーティングするために必要な情報を含むルータによって維持されるルーティング テーブルを参照することによって行われます。 CAM がない場合、ルータは、ルーティングされるデータグラムの宛先アドレスをルーティング テーブルの各エントリと比較し、ネットマスクとビットごとに比較し、ネットワーク アドレスと比較する必要があります。それらが等しい場合、対応するルーティング情報を使用してデータグラムが転送されます。ルーティング テーブルにターナリ CAM を使用すると、ルックアップ タスクが大幅に効率化されます。アドレスは、どのマシン ビットが任意であるかを指定することによって保存されるため、CAM を検索すると、正しい配線エントリがすぐに返されます。マスクと比較は両方とも CAM ハードウェアによって実行されます。

その他の CAM アプリケーションには次のものがあります。

  • CPU キャッシュ コントローラーと変換ルックアサイド バッファー。
  • データベースエンジン;
  • データ圧縮ハードウェア。
  • 人工ニューラルネットワーク。
  1. ذاكرة ذات محتوى قابل للقصد – arabe
  2. Obsahem adresovatelná paměť – tchèque
  3. Assoziativspeicher – allemand
  4. Content-addressable memory – anglais
  5. Memoria de contenido direccionable – espagnol
  6. حافظه تداعی‌گر – persan

Content Addressable Memoryについて詳しく解説・関連動画

サイエンス・ハブ

知識の扉を開け、世界を変える。