SlideShare a Scribd company logo
1 of 18
Download to read offline
スイッチ・ルータのしくみ
 〜TCAMのしくみ〜
     @yogata

    2013/2/24




                1
高速に転送するには
—  受信・転送先決定・転送 を高速に行う ← 結論
—  でも,,,
—  送受信のEO/変換やSerDes(シリアル化,非シリアル化)な
  はハードウェアで実装されていて,既に高速で処理可能

—  そこで,転送先決定の中身に着目
                               3.転送

            1.受信
                   2.転送先決定

               Switch/Router


                                      2
転送部でやること
—  パケットヘッダとエントリ(ルーティング・フォワーディング・
  NDP/ARPテーブル等)を比較してマッチするエントリを探す



—  ポイント
  —  例えばACLの探索
      —  プレフィックス指定やANY指定でのマッチングを行う
  —  例えばルーティングの探索
      —  ロンゲストマッチを行う
     →複数のエントリにマッチする場合,プレフィックス長をみて探索




                                      3
マッチング
—  いろんなやりかた (たとえばルーティングの場合)
 —  ソフトウェア
   —  パケットヘッダに対して,エントリを1つずつ比較して,最後にマッ
       チした全エントリの中からプレフィックス長が最大のエントリを探
       す (シーケンシャルマッチング)
   —  事前にプレフィックス長でルーティングエントリをグループ化して
       おき,プレフィックス長が大きい方から順番にマッチングする (
       シーケンシャルマッチング+エントリソート)
   —  探索木を作ってマッチングする (探索木)
 —  ハードウェア
   —  TCAM



                                         4
マッチするエントリの探索
—  (1)パケットヘッダに対してエントリを1つずつ比較して,(2)
   最後にマッチした全エントリの中からプレフィックス長が最
   大のエントリを探す (シーケンシャルマッチング)

パケットヘッダ               ルーティングテーブル          (1)全部とマッチして
  DstIP:192.0.2.100        192.0.0.0/8
                         192.168.0.0/24
                          192.0.2.0/24
                            10.0.0.0/8
                                          (2)プレフィックス長が
                                          最大のエントリを探す




                                                        5
マッチするエントリの探索
—  事前にプレフィックス長でルーティングエントリをグループ化
   しておき,プレフィックス長が大きい方から順番にマッチング
   する

パケットヘッダ               ルーティングテーブル
  DstIP:192.0.2.100      /8  192.0.0.0    10.0.0.0
                        ・・・
                        /24 192.168.0.0   192.0.2.0
                        ・・・


   —  マッチした時点で処理を終えることができる


                                                      6
マッチするエントリの探索
     —  探索木




                                                                           111*	
110*	
 101*	
100*	
011*	
010*	
 001*	
000*	

                                                                                R0,R1,R5,R6	
                                                                                                       R2,R3,R4	
                                                                                                         R7	
                                                                                                R8	
                                                                                                R9	
                                                               R10,R11	


引用元 http://cseweb.ucsd.edu/~susingh/papers/hyp-sigcomm03.pdf          HiCutアルゴリズムの場合	
                                  7
マッチするエントリの探索
—  TCAM
  —  Ternary Content Addressable Memory
  —  TCAM:マッチングを行う専用のハードウェア
    —  0, 1, どちらでも良いの3値(ternary)でマッチングを行う
    —  CAMだと,0, 1の2値でマッチングを行う




                                             8
(T)CAMのしくみ
     —  (T)CAMの3つのしくみ
         (1) 入力
         (2) マッチング
         (3) 出力               (2)マッチング                       (3)出力




                             (1)入力
引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf           9
(T)CAMのしくみ
     —  (1)入力
         —  パケットヘッダXをもとに,Xと¬Xを比較部に渡す




                      ¬X0

                      X0


                                               X

引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf   10
(T)CAMのしくみ
     —  (2)マッチング (CAMの場合)
   ルールのプライオリティ順に事前に並べておく	
                                                                  ルーティングテーブルやACLの各ルール	
             CAMのワードビットサイズ
                                                               各ルールの1ビット	
                                                                                                 マッチング	
  
                                                                                                 結果(出力)	




                                                    Priority Encoder
     エントリ数




                                  C	

                                                                                      C	
                                                                                               ヘッダ情報	
                                                                                    SRAMベース    とルールの	
                                                                       ヘッダ情報
                                                                                      のメモリ     マッチング	
                                                                        (入力)	
  
                                                                                   (6トランジスタ)
引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf                                               11
(T)CAMのしくみ
     —  (2)マッチング (CAMの場合)
              C=0                        C=1
                                                             ・緑枠はマッチしているパターン
    X0=0
                                                             ・この例では,Xと¬C・¬XとCを
                                                              比較
                                                             ・マッチすれば不一致なので
                                                              MLをLOWにする
                                                              (GNDに落とす)

    X0=1                                                     ・全ビットでマッチすれば終端で
                                                              ML(Match Line)がHIGHの
                                                              ままとまる


                                                                    HIGH
                                                                    LOW
引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf                      12
(T)CAMのしくみ
     —  (2)マッチング (TCAMの場合)
         —  CAMにSRAMをつけたもの                                  ・SRAMが1だと
                                                              このビットはマッチとなる
                                                             ・SRAMが0だと下のマッチングに
                                                              したがって結果を返す




                                                                  CAM


引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf                  13
(T)CAMのしくみ
—  (3)出力
  —  比較部ではマッチしたすべてのエントリを返すので,出力部で
    最もプライオリティの高いエントリを選択する
    →プライオリティエンコーダ




                                     14
(T)CAMのしくみ
—  (3)出力 (プライオリティエンコーダ)
 —  マッチしたエントリD0-3の結果に応じた出力xyVを求める




      引用元 http://filebox.ece.vt.edu/~jgtront/introcomp/encoder.swf   15
(T)CAMのしくみ
—  (3)出力 (プライオリティエンコーダ)
 —  結果を回路にする




                引用元 http://filebox.ece.vt.edu/~jgtront/introcomp/encoder.swf

 —  エントリ数が多いと大変

                                                                               16
まとめ
—  TCAMはマッチングが早いが,消費電力が大きい (らしい)
 —  パケットとエントリのマッチングをビット単位で並列で実施する
 —  その結果を集約することでマッチしたエントリを探索する
 —  複数エントリをマッチした場合は,事前に最上位エントリほど
  優先度が高いように設定しているため,専用回路(プライオリ
  ティエンコーダ)を使って最優先エントリを確定する

 —  これらすべてのマッチングを行う専用回路を用意し,1クロック
  でマッチングが完了することから,非常に高速にマッチングを
  行える

 —  ただし,回路全体を使う必要があるため消費電力が大きい
                                     17
参考
—  Content-Addressable Memory (CAM) Circuits and
  Architectures: A Tutorial and Survey
  —  http://www.pagiamtzis.com/pubs/pagiamtzis-
    jssc2006.pdf

—  Intro to Computer Engineering Tutorial Material
  —  http://filebox.ece.vt.edu/~jgtront/introcomp/
—  Packet Classification Using Multidimensional
  Cutting
  —  http://cseweb.ucsd.edu/~susingh/papers/hyp-
    sigcomm03.pdf


                                                      18

More Related Content

What's hot

閉域網接続の技術入門
閉域網接続の技術入門閉域網接続の技術入門
閉域網接続の技術入門Masayuki Kobayashi
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道Jun Kato
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - 健人 井関
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめ3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめTetsuya Hasegawa
 
Onieで遊んでみようとした話
Onieで遊んでみようとした話Onieで遊んでみようとした話
Onieで遊んでみようとした話Masaru Oki
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門Etsuji Nakai
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会真乙 九龍
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話Takanori Sejima
 

What's hot (20)

閉域網接続の技術入門
閉域網接続の技術入門閉域網接続の技術入門
閉域網接続の技術入門
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめ3GPP TS 38.300-100まとめ
3GPP TS 38.300-100まとめ
 
Onieで遊んでみようとした話
Onieで遊んでみようとした話Onieで遊んでみようとした話
Onieで遊んでみようとした話
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 

Similar to TCAMのしくみ

XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介Ohsawa Goodfellow
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介MITSUNARI Shigeo
 
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてOpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてFumiya Nozaki
 
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようHokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようPanda Yamaki
 
A Multiple Pairs Shortest Path Algorithm 解説
A Multiple Pairs Shortest Path Algorithm 解説A Multiple Pairs Shortest Path Algorithm 解説
A Multiple Pairs Shortest Path Algorithm 解説Osamu Masutani
 

Similar to TCAMのしくみ (6)

XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
 
CMSI計算科学技術特論B(10) 大規模MD並列化の技術1
CMSI計算科学技術特論B(10) 大規模MD並列化の技術1CMSI計算科学技術特論B(10) 大規模MD並列化の技術1
CMSI計算科学技術特論B(10) 大規模MD並列化の技術1
 
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてOpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
 
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようHokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
 
A Multiple Pairs Shortest Path Algorithm 解説
A Multiple Pairs Shortest Path Algorithm 解説A Multiple Pairs Shortest Path Algorithm 解説
A Multiple Pairs Shortest Path Algorithm 解説
 

TCAMのしくみ

  • 2. 高速に転送するには —  受信・転送先決定・転送 を高速に行う ← 結論 —  でも,,, —  送受信のEO/変換やSerDes(シリアル化,非シリアル化)な はハードウェアで実装されていて,既に高速で処理可能 —  そこで,転送先決定の中身に着目 3.転送 1.受信 2.転送先決定 Switch/Router 2
  • 3. 転送部でやること —  パケットヘッダとエントリ(ルーティング・フォワーディング・ NDP/ARPテーブル等)を比較してマッチするエントリを探す —  ポイント —  例えばACLの探索 —  プレフィックス指定やANY指定でのマッチングを行う —  例えばルーティングの探索 —  ロンゲストマッチを行う →複数のエントリにマッチする場合,プレフィックス長をみて探索 3
  • 4. マッチング —  いろんなやりかた (たとえばルーティングの場合) —  ソフトウェア —  パケットヘッダに対して,エントリを1つずつ比較して,最後にマッ チした全エントリの中からプレフィックス長が最大のエントリを探 す (シーケンシャルマッチング) —  事前にプレフィックス長でルーティングエントリをグループ化して おき,プレフィックス長が大きい方から順番にマッチングする ( シーケンシャルマッチング+エントリソート) —  探索木を作ってマッチングする (探索木) —  ハードウェア —  TCAM 4
  • 5. マッチするエントリの探索 —  (1)パケットヘッダに対してエントリを1つずつ比較して,(2) 最後にマッチした全エントリの中からプレフィックス長が最 大のエントリを探す (シーケンシャルマッチング) パケットヘッダ ルーティングテーブル (1)全部とマッチして DstIP:192.0.2.100 192.0.0.0/8 192.168.0.0/24 192.0.2.0/24 10.0.0.0/8 (2)プレフィックス長が 最大のエントリを探す 5
  • 6. マッチするエントリの探索 —  事前にプレフィックス長でルーティングエントリをグループ化 しておき,プレフィックス長が大きい方から順番にマッチング する パケットヘッダ ルーティングテーブル DstIP:192.0.2.100 /8 192.0.0.0 10.0.0.0 ・・・ /24 192.168.0.0 192.0.2.0 ・・・ —  マッチした時点で処理を終えることができる 6
  • 7. マッチするエントリの探索 —  探索木 111* 110* 101* 100* 011* 010* 001* 000* R0,R1,R5,R6 R2,R3,R4 R7 R8 R9 R10,R11 引用元 http://cseweb.ucsd.edu/~susingh/papers/hyp-sigcomm03.pdf HiCutアルゴリズムの場合 7
  • 8. マッチするエントリの探索 —  TCAM —  Ternary Content Addressable Memory —  TCAM:マッチングを行う専用のハードウェア —  0, 1, どちらでも良いの3値(ternary)でマッチングを行う —  CAMだと,0, 1の2値でマッチングを行う 8
  • 9. (T)CAMのしくみ —  (T)CAMの3つのしくみ (1) 入力 (2) マッチング (3) 出力 (2)マッチング (3)出力 (1)入力 引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf 9
  • 10. (T)CAMのしくみ —  (1)入力 —  パケットヘッダXをもとに,Xと¬Xを比較部に渡す ¬X0 X0 X 引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf 10
  • 11. (T)CAMのしくみ —  (2)マッチング (CAMの場合) ルールのプライオリティ順に事前に並べておく ルーティングテーブルやACLの各ルール CAMのワードビットサイズ 各ルールの1ビット マッチング   結果(出力) Priority Encoder エントリ数 C C ヘッダ情報 SRAMベース とルールの ヘッダ情報 のメモリ マッチング (入力)   (6トランジスタ) 引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf 11
  • 12. (T)CAMのしくみ —  (2)マッチング (CAMの場合) C=0 C=1 ・緑枠はマッチしているパターン X0=0 ・この例では,Xと¬C・¬XとCを  比較 ・マッチすれば不一致なので  MLをLOWにする  (GNDに落とす) X0=1 ・全ビットでマッチすれば終端で  ML(Match Line)がHIGHの  ままとまる HIGH LOW 引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf 12
  • 13. (T)CAMのしくみ —  (2)マッチング (TCAMの場合) —  CAMにSRAMをつけたもの ・SRAMが1だと  このビットはマッチとなる ・SRAMが0だと下のマッチングに  したがって結果を返す CAM 引用元 http://www.pagiamtzis.com/pubs/pagiamtzis-jssc2006.pdf 13
  • 14. (T)CAMのしくみ —  (3)出力 —  比較部ではマッチしたすべてのエントリを返すので,出力部で 最もプライオリティの高いエントリを選択する →プライオリティエンコーダ 14
  • 15. (T)CAMのしくみ —  (3)出力 (プライオリティエンコーダ) —  マッチしたエントリD0-3の結果に応じた出力xyVを求める 引用元 http://filebox.ece.vt.edu/~jgtront/introcomp/encoder.swf 15
  • 16. (T)CAMのしくみ —  (3)出力 (プライオリティエンコーダ) —  結果を回路にする 引用元 http://filebox.ece.vt.edu/~jgtront/introcomp/encoder.swf —  エントリ数が多いと大変 16
  • 17. まとめ —  TCAMはマッチングが早いが,消費電力が大きい (らしい) —  パケットとエントリのマッチングをビット単位で並列で実施する —  その結果を集約することでマッチしたエントリを探索する —  複数エントリをマッチした場合は,事前に最上位エントリほど 優先度が高いように設定しているため,専用回路(プライオリ ティエンコーダ)を使って最優先エントリを確定する —  これらすべてのマッチングを行う専用回路を用意し,1クロック でマッチングが完了することから,非常に高速にマッチングを 行える —  ただし,回路全体を使う必要があるため消費電力が大きい 17
  • 18. 参考 —  Content-Addressable Memory (CAM) Circuits and Architectures: A Tutorial and Survey —  http://www.pagiamtzis.com/pubs/pagiamtzis- jssc2006.pdf —  Intro to Computer Engineering Tutorial Material —  http://filebox.ece.vt.edu/~jgtront/introcomp/ —  Packet Classification Using Multidimensional Cutting —  http://cseweb.ucsd.edu/~susingh/papers/hyp- sigcomm03.pdf 18