ネットワークエンジニアになろう! > 四方山話 > TCAM (Ternary CAM) とBCAM (Binary CAM)

この記事は、改訂&リニューアルして『P はプロトコルのP - TCAM (Ternary CAM) とBCAM (Binary CAM)』へ移転しました。

TCAM (Ternary CAM) とBCAM (Binary CAM)

さまざまなメーカから発売されるLAN スイッチのデータシートを見ると、ほとんどの製品がTCAM を実装しているのが分かります。

TCAM (Ternary CAM、ターナリCAM) とは何でしょうか? 従来のCAM と何が違うのでしょうか?

まずは、Ternary の意味を調べて見ましょう。
goo 英和辞書を見ると、

    三つ組の; 三元の; 第三位の; 【コンピュータ】3値の, 3進法の

とあります。
どうやら、キーワードは「三つ」にあるようです。

ディジタルコンピュータが扱うデータを細かくしていくと、最後は0 か1 の二種類の値を表すビットになります。つまりBinary(バイナリ)です。

CAM に格納されるデータはディジタル情報なので、0か1 のどちらかです(バイナリ)。

※ 通常CAM と呼ぶときは、BCAM (Binary CAM) を指します。

TCAM もディジタル情報を扱うので、当然0 と1 です。
では、三つ目は何でしょうか?

答えは、Don't Care (ドントケア)です。
論理回路の勉強をしたことがある人は、聞いたことがあるのではないでしょうか?(ブール代数とかカルノー図とか)
0 と1 の、どちらでも良いことを表す言葉です。言い換えれば、0 or 1です。

つまりTCAM は、検索対象に0、1、Don't Care の3種類の状態が存在するわけです。


Don't Care があると、どんな良いことがあるのでしょうか?

0と1 の2種類しかないと、検索で引っ掛けるためには、検索対象の要素が検索キーと完全に一致する必要があります。
Don't Care は0と1のどちらでも良い値です。つまり、検索する際に無視できるということです。

具体的には、検索対象の要素のうち、無視できる領域を表すマスクで表現します。
マスクと聞いてピンときた人もいますよね?
そうです。サブネットマスクです。

サブネットマスクは、IP アドレスのうち、ネットワーク部を意味する領域の大きさを表現するのに使われます。
マスクされなかった部分はホスト部で、ネットワーク(サブネット)を表現する際には無視される部分です。

TCAM は、Longest Prefix matching (ロンゲストマッチと呼ばれるのが一般的)が必要なテーブル検索に利用されます。
ルーティングテーブルの検索がもっとも多い使用例です。
レイヤ3スイッチの多くがTCAM を採用しているのは、このためです。

これに対してレイヤ2スイッチのMAC アドレステーブルは、TCAM である必要はありません。
MAC アドレスの検索にPrefix を指定する必要は無く、検索対象がキーと完全に一致していることが要求されるためです。

※ 仮に、MAC アドレスの先頭3バイトが00-11-22 というエントリだけを探し出す、というような検索がMAC アドレステーブルに求められるのであれば、TCAM を使うメリットが出てきます。
しかし、MAC アドレステーブルをそのような目的で利用する機能は、現在はありません(今後もないでしょう)。


なぜCisco は、MAC アドレステーブルをCAM と呼ぶのか? も併せてお読みください。


ネットワークエンジニアになろう!のトップページへ戻る
サイト内検索
無料メールマガジン「英語でネットワークエンジニア」
マニュアルやRFCを読むのに必要なのは、高度な文法知識ではなく語彙力です。毎回一単語、例文と解説に技術情報を併せてお届けします. (マガジンID:0000181633)
メールアドレス:
Powered by
This website is powered by Movable Type 3.2 Smartnetworks.jp.