JP2019008845A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2019008845A
JP2019008845A JP2017122246A JP2017122246A JP2019008845A JP 2019008845 A JP2019008845 A JP 2019008845A JP 2017122246 A JP2017122246 A JP 2017122246A JP 2017122246 A JP2017122246 A JP 2017122246A JP 2019008845 A JP2019008845 A JP 2019008845A
Authority
JP
Japan
Prior art keywords
search
data
sub
blocks
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017122246A
Other languages
English (en)
Inventor
大悟 林
Daigo Hayashi
大悟 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2017122246A priority Critical patent/JP2019008845A/ja
Priority to US15/968,331 priority patent/US10373684B2/en
Priority to CN201810552109.4A priority patent/CN109119113A/zh
Publication of JP2019008845A publication Critical patent/JP2019008845A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Static Random-Access Memory (AREA)

Abstract

【課題】低消費電力化が可能な半導体装置を提供する。
【解決手段】半導体装置は、N個のサブブロックと、サブブロックにそれぞれ対応して分割された1〜N番目のエントリデータのうちプリサーチ用のエントリーデータの番号を指定するための設定レジスタ16と、設定レジスタの値に基づいて入力されるサーチデータのデータ配列順序を変更するサーチデータ変更部18とを備える。N個のサブブロックのうちのプリサーチ用のサブブロックは、サーチデータ変更部により変更されたデータ配列順序に従うプリサーチ用データに一致するものを検索し、行毎に一致または不一致という検索結果を出力し、プリサーチ用のサブブロックの検索結果に基づいて、メモリセルアレイの行毎に格納されたエントリデータのうち、サーチデータのうちのポストサーチ用データに一致するものを検索し、行毎に一致または不一致という検索結果を出力する。
【選択図】図9

Description

この開示は、半導体装置に関し、たとえば、連想メモリに関する。
連想メモリまたはCAM(内容参照メモリ:Content Addressable Memory)と呼ばれる記憶装置は、記憶しているデータワードの中から検索ワードに一致しているものを検索し、一致しているデータワードが見つかった場合は、そのアドレスを出力するものである。
CAMにはBCAM(Binary CAM)とTCAM(Ternary CAM)とがある。BCAMの各メモリセルは“0”か“1”かのいずれかの情報を記憶する。一方、TCAMの場合には、各メモリセルは、“0”および“1”の他に“ドントケア(Don't Care)”(本例においては、“*”の記号を用いる)の情報を記憶可能である。“*”は“0”および“1”のどちらでも良いことを示す。
TCAM装置は、インターネットなどのネットワーク用のルータにおいてアドレス検索およびアクセス制御のために幅広く利用されている。大容量化に対応するために、TCAM装置は、通常、複数のアレイを有し、各アレイに対して同時にサーチ動作が実行される構成となっている。
TCAM装置は、入力サーチデータ(入力パケット)とTCAMセルデータとを一斉に比較することができるので、全ての検索用途においてRAM(Random Access Memory)よりも高速である。しかしながら、検索時にサーチ電流が発生するために消費電力の増大が問題となっている。
この点で、時分割検索により初段セグメントの検索(プリサーチ)が不一致(MISS)である場合には、後段セグメントの検索(ポストサーチ)を実行しないことにより検索の低消費電力化を図ることが可能である(特許文献1)。
特開昭62−293596号公報
しかしながら、時分割検索はなるべくプリサーチで不一致となることが消費電力化の観点から望ましいが、例えば、ACL(Access Control List)等のテーブルを構成するフィールドに対して時分割検索を実行する場合には、不一致となりやすいものとなり難いものあり、同じテーブルでもTCAM装置への書き込み方次第で時分割検索による省電力効果は変化する。
本開示は、上記の課題を解決するためになされたものであって、低消費電力化が可能な半導体装置を提供することを目的とする。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施例によれば、半導体装置は、各々がメモリセルアレイを含む、N個のサブブロックと、N個のサブブロックにそれぞれ対応して分割された1〜N番目のエントリデータのうちプリサーチ用のエントリデータの番号を指定するための設定レジスタと、設定レジスタの値に基づいて入力されるサーチデータのデータ配列順序を変更するサーチデータ変更部とを備える。N個のサブブロックのうちのプリサーチ用のサブブロックは、検索指示に従って、メモリセルアレイの行毎に格納されたエントリデータのうち、サーチデータ変更部により変更されたデータ配列順序に従うプリサーチ用データに一致するものを検索し、行毎に一致または不一致という検索結果を出力し、N個のサブブロックのうちのポストサーチ用のサブブロックは、プリサーチ用のサブブロックの検索結果に基づいて、メモリセルアレイの行毎に格納されたエントリデータのうち、サーチデータのうちのプリサーチ用データ以外のポストサーチ用データに一致するものを検索し、行毎に一致または不一致という検索結果を出力する。
一実施例によれば、本開示の半導体装置は、低消費電力化を図ることが可能である。
実施形態1に基づく通信機器1の構成を説明する図である。 実施形態1に基づく検索メモリ8の構成を説明する図である。 実施形態1に基づくTCAM装置12の構成を説明する図である。 TCAMセルの構成の一例を示す回路図である。 図4のXセルおよびYセルの記憶内容とTCAMデータとの対応関係を表形式で示す図である。 実施形態に基づくセグメント(サブブロック)12Aの構成を説明する図である。 サーチ線ドライバ22の構成の一例を示す回路図である。 マッチアンプの構成の一例を示す回路図である。 実施形態1に基づく検索ブロック10の検索方式を説明する図である。 検索ブロック10の検索のタイミングを説明する図である。 検索メモリ8のメンテナンス動作について説明する図である。 実施形態2に基づく検索ブロック10#の検索方式を説明する図である。 BCAM装置12PのBCAMセルMC#の構成の一例を示す回路図である。 実施形態2の変形例に基づく検索ブロック10Aの検索方式を説明する図である。 検索ブロック10Aの検索のタイミングを説明する図である。
実施形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
(実施形態1)
<通信機器1の全体構成>
図1は、実施形態1に基づく通信機器1の構成を説明する図である。
図1に示されるように、通信機器1は、スイッチあるいはルータ等の通信装置である。
通信機器1は、CPU(Central Processing Unit)2と、転送制御回路4と、汎用メモリ6と、検索メモリ8とを含む。
CPU2は、機器全体を制御する。
CPU2は、汎用メモリ6に格納されたプログラムと協働して種々の機能を実現する。たとえば、汎用メモリ6は、DRAM(Dynamic Random Access Memory)で構成することが可能であり、CPU2と協働することによりオペレーティングシステム(OS)を構築する。CPU2は、隣接する通信機器等と情報交換し、転送処理に必要な情報を維持管理する。
転送制御回路4は、通信パケットの転送処理を実行する。転送制御回路4は、転送処理に特化したASIC(Application Specific Integrated Circuit)回路あるいはNPU(Network Processing Unit)といった専用ハードウェアが設けられている。転送制御回路4は、検索メモリ8にアクセスして、転送処理に必要な情報を取得する。
検索メモリ8は、本例においては、TCAM装置を用いる場合について説明する。
<検索メモリ8の構成>
図2は、実施形態1に基づく検索メモリ8の構成を説明する図である。
図2に示されるように、検索メモリ8は、入力データから検索キーを生成する検索キー生成部29と、プロファイルレジスタ26と、複数の検索ブロック10と、検索結果生成部28とを含む。
検索メモリ8全体は一定の粒度を持つ検索ブロック10という単位で管理される。本例においては、複数の検索ブロック10−1〜10−nが設けられた構成が示されている。
各検索ブロック10の構成についての詳細は、後述するが、TCAMセルを有するTCAM装置12と、プリサーチ用のエントリデータの番号を指定するための設定レジスタ16と、設定レジスタ16の値に基づいてデータ配列順序を変更するデータ変更部27とを含む。
プロファイルレジスタ26には検索に必要な様々な設定が保持されている。
プロファイルレジスタ26の情報に基づき検索キー生成部29は入力データから検索キーの生成を行う。
検索ブロック10−1〜10−nは、並列に設けられており並列検索機能を有する。
検索結果生成部28は、各検索ブロック10からの検索結果に対して優先順位をつけ最終的な検索結果を生成する。
検索コマンドが発行されると、検索キー生成部29は、受け取ったデータとプロファイルレジスタ26を始めとする各種情報に基づき検索キーを生成する。
検索キー生成部29は、各検索ブロック10に検索キーを分配する。各検索ブロック10では、設定レジスタ16に予め設定されたレジスタ値に基づいてデータ変更部27が、検索キーのデータ配列順序を変更して出力する。これによって変更された検索キーは各検索ブロック10毎にユニークな値となる。
<TCAM装置12の構成>
図3は、実施形態1に基づくTCAM装置12の構成を説明する図である。
図3に示されるように、TCAM装置12は、時分割検索機能を有する。
TCAM装置12は、複数のセグメント(サブブロック)に分割されている。本例においては、4つのセグメント(サブブロック)に分割されている場合が示されている。
一例として、セグメント12A〜12Dに分割されている場合が示されている。
セグメント12A〜12Dは、前段から後段に連結されている。
各セグメント12A〜12Dは、基本的に同様の構成であり、メモリセルアレイと、マッチアンプが設けられているが最終段のセグメント12Dには、メモリセルアレイと、マッチアンプと、プライオリティエンコーダとが設けられている。
マッチアンプは少なくともセグメント毎に存在し、各マッチ線の一致、不一致の判定結果を増幅して出力する。
プライオリティエンコーダは、マッチアンプからの入力をアドレスに変換し最終的な出力を生成する。
また、メモリセルアレイは、複数のse(Search Enable)端子が設けられており、se端子がアサートされた領域のみマッチ線のプリチャージを行うことにより検索範囲を限定することが可能である。
また、本例においては、一例としてマッチアンプを活性化させる信号を保持するためのフリップフロップFF1が設けられている。具体的には、フリップフロップFF1に検索コマンドが入力された場合にマッチアンプを活性化させる信号が保持されて各セグメントのマッチアンプに出力される。
また、セグメント12B〜12Dには、フリップフロップFF2〜FF4が設けられており、前段のセグメントにおける検索処理が終了するまで検索キーを保持することが可能な構成となっている。本例においては、セグメント12Aには、検索キーSBが入力され、セグメント12Bには、検索キーSAが入力され、セグメント12C,12Dには、検索キーSC,SDが入力される場合が示されている。
前段のセグメントのマッチアンプ出力を後段のセグメントのse端子と接続することにより、前段のセグメントで一致したエントリのみを検索対象とすることが可能である。
具体的には、まず初段のセグメント12Aのみを活性させて第1の検索を実行する。第1の検索で一致した領域のみセグメント12Bにおいて第2の検索を実行する。同様にして第3、第4の検索を実行する。前段のセグメントの検索で不一致となった領域の分だけ後段のセグメントの消費電力を抑えることが可能である。
<セグメント(サブブロック)の構成>
[TCAMセルの構成]
図4は、TCAMセルの構成の一例を示す回路図である。
図4を参照して、TCAMセル(メモリセルMCとも称する)は、2個のSRAMセル(Static Random Access Memory Cell)11,12と、データ比較部13とを含む。SRAMセル11をXセルとも称し、SRAMセル14をYセルとも称する。Xセル11は、内部の記憶ノード対ND1,ND1_nに互いに相補となる(一方が“1”のとき他方が“0”となる)1ビット(bit)のデータを記憶する。Yセル14は、内部の記憶ノード対ND2,ND2_nに互いに相補となる1ビットのデータを記憶する。TCAMセルは、連想メモリセルとも称する。
TCAMセルは、ビット線対BL,BL_n、サーチ線対SL,SL_n、マッチ線ML、およびワード線WLX,WLYと接続される。ビット線対BL,BL_nは、図6のTCAMセルアレイ20の列方向(Y方向)に延在し、列方向に配列された複数のTCAMセルによって共有される。サーチ線対SL,SL_nは、TCAMセルアレイ20の列方向(Y方向)に延在し、列方向に配列された複数のTCAMセルによって共有される。
マッチ線MLは、TCAMセルアレイ20の行方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。ワード線WLX,WLYは、TCAMセルアレイ20の行方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。
Xセル11は、インバータINV1,INV2と、NチャネルMOS(Metal Oxide Semiconductor)トランジスタQ1,Q2とを含む。インバータINV1は、記憶ノードND1_nから記憶ノードND1へ向かう方向が順方向となるように、記憶ノードND1と記憶ノードND1_nの間に接続される。インバータINV2は、INV1と並列かつ逆方向に接続される。MOSトランジスタQ1は、記憶ノードND1とビット線BLとの間に接続される。MOSトランジスタQ2は、記憶ノードND1_nとビット線BL_nとの間に接続される。MOSトランジスタQ1,Q2のゲートは、ワード線WLXと接続される。
Yセル14は、インバータINV3,INV4と、MOS(Metal Oxide Semiconductor)トランジスタQ3,Q4とを含む。インバータINV3は、記憶ノードND2_nから記憶ノードND2に向かう方向が順方向となるように、記憶ノードND2と記憶ノードND2_nの間に接続される。インバータINV4は、INV3と並列かつ逆方向に接続される。MOSトランジスタQ3は、記憶ノードND2とビット線BLとの間に接続される。MOSトランジスタQ4は、記憶ノードND2_nとビット線BL_nとの間に接続される。MOSトランジスタQ3,Q4のゲートは、ワード線WLYと接続される。
データ比較部13は、NチャネルMOSトランジスタQ6〜Q9を含む。MOSトランジスタQ6,Q7はマッチ線MLとの接続点であるノードND3と接地ノードGNDとの間に直列に接続される。MOSトランジスタQ8,Q9は、ノードND3と接地ノードGNDとの間に直列に、かつ、直列接続されたMOSトランジスタQ6,Q7の全体と並列に接続される。MOSトランジスタQ6,Q8のゲートは、記憶ノードND1,ND2とそれぞれ接続される。MOSトランジスタQ7,Q9のゲートは、サーチ線SL,SL_nとそれぞれ接続される。
図5は、図4のXセルおよびYセルの記憶内容とTCAMデータとの対応関係を表形式で示す図である。
図4および図5を参照して、TCAMセルは、2ビットのSRAMセルを用いて、“0”、“1”、“*”(ドントケア:don't care)の3値を格納することができる。具体的に、Xセル11の記憶ノードND1に“1”が格納され、Yセル14の記憶ノードND2に“0”が格納されているとき、TCAMセルには“0”が格納されているとする。Xセル11の記憶ノードND1に“0”が格納され、Yセル14の記憶ノードND2に“1”が格納されているとき、TCAMセルには“1”が格納されているとする。Xセル11の記憶ノードND1に“0”が格納され、Yセル14の記憶ノードND2に“0”が格納されているとき、TCAMセルには“*”(ドントケア)が格納されているとする。Xセル11の記憶ノードND1に“1”が格納され、Yセル14の記憶ノードND2に“1”が格納されている場合は使用しない。
上記のTCAMセルの構成によれば、サーチデータが“1”(すなわち、サーチ線SLが“1”、かつ、サーチ線SL_nが“0”)であり、TCAMデータが“0”(記憶ノードND1が“1”、かつ、記憶ノードND2が“0”)である場合には、MOSトランジスタQ6,Q7がオン状態となるために、プリチャージされたマッチ線MLの電位が接地電位まで引き抜かれる。サーチデータが“0”(すなわち、サーチ線SLが“0”、かつ、サーチ線SL_nが“1”)であり、TCAMデータが“1”(記憶ノードND1が“0”、かつ、記憶ノードND2が“1”)である場合には、MOSトランジスタQ8,Q9がオン状態となるために、プリチャージされたマッチ線MLの電位が接地電位まで引き抜かれる。すなわち、サーチデータとTCAMデータとが不一致の場合には、マッチ線MLの電位は接地電位まで引き抜かれる。
逆に、入力されたサーチデータが“1”であり、かつ、TCAMデータが“1”または“*”の場合、もしくは、サーチデータが“0”であり、かつ、TCAMデータが“0”または“*”の場合(すなわち、両者が一致する場合)、プリチャージされたマッチ線MLの電位(電源電位VDDレベル)は維持される。
上記のように、TCAMでは、1つのエントリ(行)に対応するマッチ線MLに接続された全てのTCAMセルのデータが入力サーチデータと一致しない限り、マッチ線MLに蓄えられた電荷が引き抜かれる。このため、TCAMでの検索は高速であるが、消費電流が大きいという問題がある。
図6は、実施形態に基づくセグメント(サブブロック)12Aの構成を説明する図である。
図6に示されるように、セグメント12Aは、TCAMセルアレイ20(単にセルアレイとも称する)と、書込ドライバ21と、サーチ線ドライバ22と、マッチアンプ部23と、制御論理回路24と、読出回路25とを含む。
セグメント12Aは、図示していないがワード線WLX,WLYを駆動するためのワード線ドライバ(不図示)と、制御信号やアドレス信号等の入力を受ける入出力回路(不図示)とを含む。
TCAMセルアレイ20は、行列状(m行;k列)に配列されたTCAMセルを含む。本例においては、セルアレイ20は、行数(エントリ数)mがNであり、列数(ビット数)kが40の場合が示されている。
セルアレイ20の各列に対応して、k個(k=40)のビット線対(BL[0],BL_n[0]からBL[k−1],BL_n[k−1]まで)と、k個(k=40)のサーチ線対(SL[0],SL_n[0]からSL[k−1],SL_n[k−1]まで)とが設けられる。
セルアレイ20の各行に対応して、m本(m=N)のマッチ線(ML[0]からML[N]まで)と、図示しないm本のXセル用のワード線(WLX[0]からWLX[m−1]まで)と、図示しないm本のYセル用のワード線(WLY[0]からWLY[m−1]まで)とが設けられている。
書込ドライバ21は、書込時に、ビット線対BL,BL_nを介して各TCAMセルに書込データを供給する。サーチ線ドライバ22は、検索時に、サーチ線対SL,SL_nを介して各TCAMセルにサーチデータを供給する。
制御論理回路24は、セグメント12A全体の動作を制御する。たとえば、制御論理回路24は、検索時には、サーチコマンドを受け取り、サーチ線ドライバ22と、マッチアンプ部23に制御信号を出力することによって、サーチ線ドライバ22、マッチアンプ部23、およびプリチャージ回路の動作を制御する。制御論理回路24は、読出時には読出コマンドを受け取り、読出回路25を制御する制御信号を出力する。これによりセルアレイ20に格納されているエントリデータを読み出して出力することが可能である。
マッチアンプ部23は、セルアレイの行にそれぞれ対応する複数のマッチアンプMAを含む。マッチアンプMAは、検索時に、対応するマッチ線MLの電位に基づいて、対応するTCAMセルデータと入力サーチデータの対応部分とが一致するか否かを検出する。この実施形態では、マッチアンプMAは、検索時に対応するマッチ線MLをプリチャージするためのプリチャージ回路を含む。
図7は、サーチ線ドライバ22の構成の一例を示す回路図である。
図7に示されるように、サーチ線ドライバ22は、サーチ線イネーブル信号senaが「H」レベルに活性化されたときに、入力サーチデータskey[i](i=0,1,…,k)をサーチ線SL[i]に出力する。また、入力サーチデータskey[i]の論理レベルを反転した信号を相補のサーチ線SL_n[i]に出力する。
本例においては、一例として、検索キーSBは、入力サーチデータskey[i](i=0,1,…,k)として構成されている場合について説明する。
具体的に、サーチ線ドライバ22は、サーチ線SL[0]〜SL[k]にそれぞれ対応するANDゲート60[0]〜60[k]と、サーチ線SL_n[0]〜SL_n[k]にそれぞれ対応するANDゲート61[0]〜61[k]と、インバータ62[0]〜62[k]とを含む。
サーチ線イネーブル信号senaは、ANDゲート60[0]〜60[k]およびANDゲート61[0]〜61[k]に共通に入力される。さらに、ANDゲート60[i](i=0,1,…,k)には、対応する入力サーチデータskey[i]が入力される。
ANDゲート60[i](i=0,1,…,k)の出力信号はサーチ線SL[i]に送信される。ANDゲート61[i](i=0,1,…,k)には、対応する入力サーチデータskey[i]を反転した信号が入力される。
上記構成によれば、たとえば、サーチ線イネーブル信号senaが「H」レベルに活性化され、かつ、入力サーチデータskey[i]が「H」レベル(“1”)である場合には、サーチ線SL[i]の電圧が「H」レベルとなり、サーチ線SL_n[i]の電圧が「L」レベルとなる。サーチ線イネーブル信号senaが「H」レベルに活性化され、かつ、入力サーチデータskey[i]が「L」レベル(“0”)である場合には、サーチ線SL[i]の電圧が「L」レベルとなり、サーチ線SL_n[i]の電圧が「H」レベルとなる。
図8は、マッチアンプの構成の一例を示す回路図である。
図8を参照して、マッチアンプMAは、プリチャージ回路としてのPチャネルMOSトランジスタ70と、インバータ71〜74とを含む。
プリチャージ回路としてのMOSトランジスタ70がマッチアンプMAの内部にあるように図示しているが、MOSトランジスタ70はマッチアンプMAの外部に設けられていても構わない。制御論理回路24は、マッチアンプイネーブル信号maeを出力する。
また、上記したように、本例においては、se端子がマッチ線のプリチャージを行なうプリチャージ信号として用いられる。ここでは、se端子からの入力をインバータにより反転し、当該反転信号をプリチャージ信号としてMOSトランジスタ70に入力する場合が示されている。
したがって、図3で説明したように初段のセグメントにおいては、se端子は検索コマンドとして「H」レベル(“1”)が入力された場合に、全てのマッチ線はプリチャージされることになる。
一方、2段目以降のセグメントにおいては、前段のセグメントにおけるマッチアンプMAからの出力がse端子と接続されているため前段のマッチアンプMAからの出力が「L」レベルの場合には、次段のセグメントにおける同一行のマッチ線は、プリチャージされない。一方、前段のマッチアンプMAからの出力が「H」レベルの場合には、次段のセグメントにおける同一行のマッチ線は、プリチャージされる。したがって、前段のセグメントのマッチアンプ出力を後段セグメントのse端子と接続することにより、前段のセグメントで一致したエントリのみを検索対象とすることが可能である。前段のセグメントの検索で不一致となった領域の分だけ後段セグメントの消費電力を抑えることが可能である。
以下、上記の構成要素の接続について説明する。MOSトランジスタ70は、対応するマッチ線MLと電源電位VDDを与える電源ノードとの間に接続される。MOSトランジスタ70のゲートには、se端子の反転信号であるマッチ線プリチャージ信号が入力される。マッチ線MLは、さらに、インバータ71の入力ノードに接続される。インバータ71の出力ノードは、インバータ74の入力ノードに接続される。インバータ74の出力ノードは、インバータ72を介してインバータ72の入力ノードに接続される。
マッチアンプイネーブル信号maeおよびその論理レベルをインバータ73によって反転させた信号は、インバータ71,72の駆動電源ノードに接続される。マッチアンプイネーブル信号maeが非活性状態(「L」レベル)のとき、インバータ71は非動作状態となり、インバータ72は動作状態となる。マッチアンプイネーブル信号maeが活性状態(「H」レベル)のとき、インバータ71は動作状態となり、インバータ72は非動作状態となる。
次に、マッチアンプMAの回路動作について説明する。マッチ線プリチャージ信号が活性化される(「L」レベルになる)ことによって、MOSトランジスタ70が導通する。これによって、マッチ線MLが電源電位VDDまで充電される(プリチャージされる)。
マッチ線プリチャージ信号が非活性化された後に、サーチ線イネーブル信号senaが活性化される(「H」レベルになる)ことによって、サーチ線対SL,SL_nにサーチデータが入力される。これによって、マッチ線MLの電位がサーチ結果(入力サーチデータの対応部分とTCAMセルデータとの比較結果)に依存して変化する。すなわち、一致(ヒット:hit)の場合、マッチ線MLの電位は電源電位VDD(「H」レベル)のまま維持され、不一致(ミス:miss)の場合、マッチ線MLの電荷が接地ノードに放電されるのでマッチ線のML電位は接地電位(「L」レベル)に変化する。
次に、マッチアンプイネーブル信号が活性化される(「H」レベルになる)。これによって、サーチ結果に基づくマッチ線MLの電位が、インバータ71およびインバータ74を介してマッチアンプ出力信号moとして出力される。マッチアンプイネーブル信号maeが非活性化される(「L」レベルになる)と、インバータ74とインバータ72とによって構成されるラッチ回路により、サーチ結果に基づくマッチ線MLの電位が保持される。
<検索ブロック10の検索方式>
図9は、実施形態1に基づく検索ブロック10の検索方式を説明する図である。
図9に示されるように、検索ブロック10は、設定レジスタ16と、再配置制御信号生成部15と、再配置回路17,18と、TCAM装置12とを含む。
再配置制御信号生成部15と、再配置回路17,18とはデータ変更部27を構成する。
TCAM装置12は、時分割検索機能を有する。
再配置回路17,18は、クロスバースイッチである。
再配置制御信号生成部15は、設定レジスタ16のレジスタ値に基づいて再配置回路17,18に対して再配置を指示する制御信号を出力する。
本例においては、再配置回路17,18としてクロスバースイッチを用いているが、時分割検索に有効な領域を特定の場所に再配置できるような回路であればどのようなものでも良い。たとえば、データの上位と下位のビットを入れ替えるような構成、あるいはローテーション回路等を用いてもよい。
本例においては、検索ブロック10の構成として、TCAM装置を挙げて説明するが、特にこれに限られず時分割検索が可能なデータ構造であれば何であっても構わない。
検索ブロック10は、入力ピンとして、書込および検索時に使用するデータバスと制御系のピンを有する。また、検索ブロック10は、出力ピンとして、検索結果出力ピンおよび読出結果出力データバスを有する。
再配置回路17,18は、これら入力および出力データバスの信号に対する再配置を実行する。具体的には、データ配列順序を変更する。
再配置回路17,18は、再配置制御信号生成部15で生成された制御信号に従ってデータ配列順序を変更する。
本例においては、TCAM装置12は、上記したように4つのセグメント(サブブロック)に分割する場合について説明する。当該4つのセグメント(サブブロック)のうち1番目のセグメント(サブブロック)をプリサーチ対象とし、2〜4番目のセグメント(サブブロック)をポストサーチ対象とする。
本例においては、設定レジスタ16は、4つのセグメント(サブブロック)にそれぞれ対応して分割された1〜4番目のエントリデータのうちプリサーチ用のエントリデータの番号を指定する。設定レジスタ16には、一例として2ビットのデータが格納される。
再配置制御信号生成部15は、設定レジスタ16のデータに基づいて制御信号S1〜S4を生成する。
例えば、設定レジスタ16に「00」が格納されている場合には、再配置制御信号生成部15は、制御信号S1を再配置回路17,18に出力する。
再配置回路17,18は、制御信号S1が入力された場合には、データ配列順序を変更せず、そのままの形式で出力する。
設定レジスタ16に「01」が格納されている場合には、再配置制御信号生成部15は、制御信号S2を再配置回路17,18に出力する。
再配置回路17,18は、制御信号S2が入力された場合には、データ配列順序を変更して、出力する。TCAM装置12は、4つのセグメント(サブブロック)に分割されているため書込データあるいは検索キーについてもそれぞれのセグメントに対応させるため4つのフィールドに分割される。再配置回路17は、制御信号S2の入力に従って書込データあるいは検索キーの2番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。
再配置回路18は、制御信号S2の入力に従って読出データの2番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。
設定レジスタ16に「10」が格納されている場合には、再配置制御信号生成部15は、制御信号S3を再配置回路17,18に出力する。
再配置回路17,18は、制御信号S3が入力された場合には、データ配列順序を変更して、出力する。書込データあるいは検索キーは4つのフィールドに分割される。再配置回路17は、制御信号S3の入力に従って書込データあるいは検索キーの3番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。
再配置回路18は、制御信号S3の入力に従って読出データの3番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。
設定レジスタ16に「11」が格納されている場合には、再配置制御信号生成部15は、制御信号S4を再配置回路17,18に出力する。
再配置回路17,18は、制御信号S4が入力された場合には、データ配列順序を変更して、出力する。書込データあるいは検索キーは4つのフィールドに分割される。再配置回路17は、制御信号S4の入力に従って書込データあるいは検索キーの4番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。
再配置回路18は、制御信号S4の入力に従って読出データの4番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。
(検索メモリ8の初期化(設定)について)
図1で説明した通信機器1には、ACLやFIB(Forwarding Information Base)など、転送処理を行う上で必要なルールセットを有する。
これらはユーザーによって手動で設定される場合もあれば、特定の通信プロトコルによって自動生成される場合もある。
各ルールセットは、それぞれIPアドレスやポート番号といったパケット転送処理に必要な情報が含まれるフィールド群で構成される。
各ルールセットは、すべてのフィールドに情報が完全に設定されたルールも存在するが、中にはフィールドに部分的にしか情報が設定されていないルールも存在する。
一例として、例えばIPv4アドレスは32ビットのデータであるが、ネットワーク部・ホスト部という概念があり、しばしばネットワーク部の上位Nビットだけを検索対象とし下位(32−N)ビットは検索対象に含めないといった運用がなされている。
この検索対象に含めない部分は、検索メモリ8上では“ドントケア(Don't Care)”のデータが書き込まれることになる。
この“ドントケア(Don't Care)”のビットを大量に含むフィールドを、時分割検索の初段セグメント(サブブロック)に割り当てた場合、エントリの絞り込みとして機能しないため、時分割検索による低消費電力化が得られ難くなる。
また、ポート番号に関しては1024〜65335といったように特定の範囲をまとめて扱う場合ある。このようは範囲情報を含むルールセットに関してはレンジ展開アルゴリズムを用いて複数のエントリで一つのルールを表現する手法が用いられる。
このときポート番号以外のすべてのフィールドには同じデータがコピーされた状態となっている。
したがって、検索メモリ8に、ルールセットを格納した場合にはエントリの絞り込みが有効に働かないフィールド領域が局所的に存在することになる。
実施形態においては、時分割検索において、当該エントリの絞り込みが有効に働く可能性の高いフィールド領域を初段セグメント(サブブロック)に割り当てる。
検索メモリ8の初期化(設定)を行うに際し、CPU2は、検索メモリ8に格納する各ルールセットの解析処理を実行する。
通常、各ルールセットはテーブル形式で保持されているが、各ルールテーブルは人間が管理しやすい形式で表現されている。したがって、各ルールテーブルを検索用のハードウェアに適した形式に変換する必要がある。
変換された各テーブルは、検索メモリ8の各ブロックに割り付けられ、設定レジスタ16のデータ幅やマスク設定、プロファイルレジスタ26の設定が行われる。
CPU2は、各ルールテーブルを検索ブロック10の単位に分割したサブテーブルに対してデータ解析を行う。
CPU2は、サブテーブルに対するデータ解析により各検索ブロック10において時分割検索に有効なフィールドを特定する。
本例においては、検索ブロック10に含まれるTCAM装置12が、4つのサブブロックを有する場合について説明する。
一例として、サブテーブルのエントリデータの長さが160ビットである場合、40ビットずつの4つのフィールドに分割する。
CPU2は、各検索ブロック10に格納するサブテーブルのうち4つのサブブロックにそれぞれ対応する4つのフィールドの中からいずれのフィールドが時分割検索に有効なフィールドかを特定する。
この点で、“ドントケア(Don't Care)”のビットが無いあるいは少ないフィールドを有効なフィールドとして特定する。
一例として、1番目〜4番目のフィールドのうち2番目のフィールドが有効なフィールドとして特定されるものとする。
この場合、CPU2は、当該解析結果に基づき検索ブロック10の設定レジスタ16に「01」を設定する。
これにより、設定レジスタ16に「01」が格納されている場合には、再配置制御信号生成部15は、制御信号S2を再配置回路17,18に出力する。
再配置回路17,18は、制御信号S2が入力された場合には、データ配列順序を変更する。
この場合、再配置回路17は、サブテーブルのエントリデータの2番目のフィールドと、1番目のフィールドとを入れ替えるデータ配列順序に変更する。
そして、当該変更されたデータ配列順序に従うサブテーブルが4つのサブブロックにそれぞれ格納される。すなわち、データ配列順序が変更されなかった場合には、1番目のサブブロックにサブテーブルの1番目のフィールドのデータが格納され、2番目のサブブロックにサブテーブルの2番目のフィールドが格納されるところ、データ配列順序を変更することで、1番目のサブブロックにサブテーブルの2番目のフィールドが格納され、2番目のサブブロックにサブテーブルの1番目のフィールドが格納されることになる。
上記設定が、各検索ブロック10毎に行なわれる。
したがって、図2に示される検索ブロック10−1〜10−nにおいて、それぞれ格納されるサブテーブルの解析結果に基づいて設定レジスタ16に格納される値はそれぞれ異なる場合がある。
これにより、検索メモリ8の初期化(設定)が完了し、実際の転送処理、すなわちデータ書込処理が開始される。
(検索メモリ8の検索について)
検索時においては、検索キー生成部29により検索キーが生成される。
当該検索キーが各検索ブロック10に出力される。
各検索ブロック10においては、上記したように設定レジスタ16の値に基づいて、制御信号が生成される。
一例として、設定レジスタ16の値が「01」の場合には、再配置制御信号生成部15は、制御信号S2を再配置回路17,18に出力する。
再配置回路17,18は、制御信号S2が入力された場合には、データ配列順序を変更して、検索キーを出力する。
この場合、再配置回路17は、入力された検索キーを4つの検索キーSA〜SDに分割し、2番目の検索キーSBと1番目の検索キーSAとのデータ配列順序を変更する。
そして、再配置回路17は、データ配列順序を変更した検索キーをそれぞれのセグメント12A〜12Dに出力する。すなわち、2番目の検索キーSBはセグメント12Aに出力され、1番目の検索キーSAはセグメント12Bに出力される。
これにより、本来であるならば第2の検索として実行されるサブテーブルの2番目のフィールドと、検索キーSBとの比較処理とが第1の検索として実行される。サブテーブルの2番目のフィールドは、“ドントケア(Don't Care)”のビットが無いあるいは少ない有効なフィールドとして特定されたものであり、不一致となり易い。
したがって、不一致となった場合には、後段セグメントの不一致のエントリは検索対象とはならないため後段セグメントの消費電力を抑えることが可能である。
なお、本例においては、サブテーブルの2番目のフィールドが有効なフィールドとして特定された場合について説明したが、特にこれに限られず、3番目、4番目のフィールドが有効なフィールドとして特定された場合についても同様に適用可能で有る。
図10は、検索ブロック10の検索のタイミングを説明する図である。
図10に示されるように、検索ブロック10は、クロックCLKに同期して動作する。
クロックCLKに同期して再配置回路18は、時刻T1において検索キー(keyA)を取得する。そして、時刻T2において、設定レジスタ16から出力される制御信号に基づいて変更されたデータ配列順序に従う検索キー(keyB)をTCAM装置12に出力する。時刻T3において、TCAM装置12は、再配置回路18から出力された検索キー(keyB)の入力を受け付けて検索動作を実行する。
次のクロックCLKの同期タイミングにおける時刻T4において、初段のセグメント12Aから結果が出力された場合が示されている。
また、次のクロックCLKの同期タイミングにおける時刻T5において、次段のセグメント12Bから結果が出力された場合が示されている。
当該処理繰り返されて最終段のセグメント12Dからの検索結果が出力される。
(検索メモリ8の読出について)
検索メモリ8に格納されたエントリデータの読出時について説明する。
設定レジスタ16の値が「01」の場合には、再配置制御信号生成部15は、制御信号S2を再配置回路18に出力する。
再配置回路18は、制御信号S2が入力された場合には、データ配列順序を変更して、出力する。
この場合、再配置回路18は、セグメント12A〜12Dからそれぞれ読み出されたエントリデータのデータ配列順序を変更する。
具体的には、セグメント12Aから読み出されたデータと、セグメント12Bから読み出されたデータとのデータ配列順序を変更する。セグメント12Bから読み出されたデータを1番目、セグメント12Bから読み出されたデータを2番目、セグメント12C,セグメント12Dから読み出されたデータを3番目、4番目として出力する。
当該方式により、検索ブロック10に格納する前のデータ配列順序変更前のデータに簡易に復元することが可能である。
したがって、実施形態においては、このため不一致となりやすいと思われるフィールドを初段セグメントに書き込まれるように設定レジスタ16を設定する事で、このような時分割検索の効果を最大化することが可能になる。
(検索メモリ8のメンテナンスについて)
検索メモリ8のメンテナンス動作について説明する。
ネットワーク制御プロトコルによる自動更新やネットワーク管理者によるポリシーの変更など、ルールテーブルは様々な理由により実動作中に更新が行われる。具体的には、エントリの上書きや、新規追加が行われる。
動作中に設定レジスタ16を書き換えることはできないため、ルールテーブルの更新によって最初のルールテーブルの解析内容と、最新のルールテーブルの情報の解析内容とに乖離が生じ、時分割検索による低消費電力効果が低下する可能性がある。
実施形態においては、CPU2が検索メモリ8のメンテナンス処理を実行する場合について説明するが、特にCPU2に限られず、NPU等の転送制御回路4が実行するようにしても良いし、検索メモリ8にメンテナンス処理を実行するチップを内蔵する構成としても良い。
図11は、検索メモリ8のメンテナンス動作について説明する図である。
図11に示されるように、メンテナンス処理は、所定の時間経過あるいは、検索メモリ8に対する書込コマンドの発行回数等をトリガーとして実行する。ここでは、タイマー等により所定の時間経過により割り込みとしてトリガーが生成された場合が示されている。
次に、CPU2は、検索メモリ8の対象となる検索ブロック10、例えば検索ブロック10−1に格納されている最新のルールテーブルを読み出す(全エントリ読み出し)(1)。上記したように、検索ブロック10−1から読み出す際には、設定レジスタ16のレジスタ値に基づいて再配置回路18によりデータ配列順序を変更する。これにより、初期のデータ配列に復元され、後述する空きの検索ブロック10、例えば検索ブロック10−nへの書込データとしてそのまま利用することが可能である。
次に、CPU2は、対象となる検索ブロック10−1から読み出した最新のルールテーブルを解析する処理を実行し、解析結果により設定レジスタ16に格納するレジスタ値に関する情報を生成する(2)。
そして、次に、CPU2は、現在の設定レジスタ16、すなわち、検索ブロック10−1の設定レジスタ16に格納されているレジスタ値と、生成したレジスタ値に関する情報とが同じか否かを確認する。
すなわち、検索ブロック10−1の設定レジスタ16のレジスタ値がエントリの絞り込みを有効に働かせることが可能なフィールド領域を指定しているか否かを判断する。時分割検索に有効なフィールドか否かを判断する。
CPU2は、生成したレジスタ値に関する情報が、検索ブロック10−1の設定レジスタ16に格納されているレジスタ値と異なると判断した場合には、当該生成したレジスタ値に関する情報を空きの検索ブロック10、すなわち検索ブロック10−nの設定レジスタ16に格納する(3)。
そして、当該空きの検索ブロック10−nのTCAM装置12に元の検索ブロック10−1から取得した最新のルールテーブルの情報をコピーする(4)。
その際、検索ブロック10−nの再配置回路17,18は、格納した設定レジスタ16のレジスタ値に基づいて、データ配列順序を変更する。そして、上記したように空きの検索ブロック10−nの初段のセグメントに検索に有効なフィールドのデータを格納する。
CPU2は、コピーが完了した場合に、プロファイルレジスタ26を設定し直し、検索となる元の対象となる検索ブロック10−1からコピー先となる検索ブロック10−nに差し替える(5)。
新しい検索ブロック10は時分割検索の低消費電力効果が最大化されているため、システム全体の低消費電力化に貢献する。
当該メンテナンス方式により、システム全体の動作を止めることなく消費電力を下げることが可能である。
また、検索メモリにはNetFlow/FIB/QoS/ACL等の性質の異なる様々なルールテーブルが書き込まれ、また前述の通りレンジ展開アルゴリズム等の処理が行われる。したがって、実際に検索ブロックに書き込まれるデータには偏りが生じやすい。このようなデータ構造に対して一様に時分割検索を実行すると、あるブロックに対しては時分割検索が極めて有効となり、別のあるブロックに対しては全く有効ではないという状況が発生する。
特に、IPv6アドレスを用いたテーブルでは大きなドントケアの塊が生じやすく、この部分は検索対象のエントリの絞り込みには不適切であるため、時分割検索の初段セグメントに割り当てられた場合、時分割検索は全く効果がなくなる。
実施形態に基づく方式を採用することにより、このようなブロック毎の偏りを無くすことが可能であり、結果として時分割検索による省電力効果を最大化することが可能となる。
また、実施形態1に従う方式により、1つの検索キーから各検索ブロック毎に時分割検索に最適な検索キーを生成することが可能となるため、複数の検索命令を1回でまとめることが可能になり、スループットを向上させることが可能となる。
また、TCAM装置のように消費電力の大きなデバイスでは、システムの熱設計、電源設計の観点から検索対象の検索ブロックを限定して検索操作を複数回に分割実行することがある。このようなケースにおいて消費電力を削減することは分割操作を無くすないしは減らすことにつながり、検索操作のスループット向上にも寄与する。
(実施形態2)
実施形態2においても、エンドユーザーが作成したルールセットを検索メモリ8に適したテーブル形式に変換し、それをさらに細かい領域に分割して解析を行い、設定レジスタ16を設定する。
上記の実施形態1においては、TCAM装置12の初段セグメントに検索に有効なフィールドの情報を格納する場合について説明した。
実施形態2においては、検索に有効なフィールドの情報として、ドントケアビットを含まない領域をBCAM(Binary Content Addressable Memory)装置に格納する。そして、残りの領域をTCAM装置に格納する。なお、本例においては、BCAM装置を用いる場合について説明するが、ASE(Algorithmic Search Engine :SRAMやFFのような記憶素子とツリー・ハッシュといった検索アルゴリズムを実現する論理回路とを組合せて検索を実現するもの)を用いる構成としても良い。
図12は、実施形態2に基づく検索ブロック10#の検索方式を説明する図である。
図12に示されるように、検索ブロック10#は、検索ブロック10と比較して、TCAM装置12の代わりに、BCAM装置12Pと、TCAM装置12Qとが設けられた点が異なる。その他の構成については、図9で説明したのと同様であるのでその詳細な説明については繰り返さない。
図13は、BCAM装置12PのBCAMセルMC#の構成の一例を示す回路図である。
図13を参照して、BCAMセルMC#は、1個のSRAMセル11と、データ比較部13#とを含む。SRAMセル11は、内部の記憶ノード対ND1,ND1_nに互いに相補となる(一方が“1”のとき他方が“0”となる)1ビット(bit)のデータを記憶する。
BCAMセルは、ビット線対BL,BL_n、サーチ線対SL,SL_n、マッチ線ML、およびワード線WLXと接続される。ビット線対BL,BL_nは、列方向(Y方向)に延在し、列方向に配列された複数のBCAMセルによって共有される。サーチ線対SL,SL_nは、列方向(Y方向)に延在し、列方向に配列された複数のBCAMセルによって共有される。
マッチ線MLは、行方向(X方向)に延在し、行方向に配列された複数のBCAMセルによって共有される。ワード線WLXは、行方向(X方向)に延在し、行方向に配列された複数のBCAMセルによって共有される。
データ比較部13#は、データ比較部13と比較して、MOSトランジスタQ8,Q9を削除した点が異なる。その他の構成については、データ比較部13と同様であるのでその詳細な説明については繰り返さない。
実施形態2の検索ブロック10#において、第一の検索をBCAM装置で行い、第二の検索以降をTCAM装置で実行する。そして、検索結果を生成するという時分割動作を実行する。なお、BCAM装置には、ルールセットにおけるドントケアを含まないフィールドが格納される。
設定レジスタ16の値としては、Binaryセグメントが時分割検索のBCAM装置による初段セグメントに割り当てられるように設定する。
再配置制御信号生成部15は、設定レジスタ16の値に基づいて制御信号を生成する。
再配置回路17,18は、再配置制御信号生成部15で生成された制御信号に基づいて検索キーのデータ配列順序を変更する。
なお、設定レジスタ16の値は、各セグメントをBCAM装置あるいはTCAM装置のどちらに割り当てるかの判断につながるものであるならばどのようなものでも良い。なお、ツリー検索のASEを用いる場合はLPM(Longest Prefix Match)も有効な情報として使えるし、具体的な検索順序を記述するようなものであっても良い。
この場合、ASIC回路あるいはNPUから見て、検索メモリ8の内部構造を意識する必要はなく、各検索ブロックの設定レジスタのレジスタ値を適切に設定することにより自動的に検索テーブルの分割と再配置を実行することが可能である。
(検索メモリ8の検索について)
検索時においては、検索キー生成部29により検索キーが生成される。
当該検索キーが各検索ブロック10#に出力される。
各検索ブロック10#に分配された検索キーは、設定レジスタ16の値に基づいて再配置回路17により検索キーのデータ配列順序が変更される。
そして、再配置回路17によって再配置された後、BCAM装置12PとTCAM装置12Qとにそれぞれ分割されて出力される。
そして、BCAM装置12Pにおいて、受け取った検索キーとBCAM装置12Pに格納された各エントリデータとの比較動作が実行される。そして、BCAM装置12Pからその全ての比較結果が制御信号MLOUTとして出力される。
TCAM装置12Qは、受け取った検索キーと、各エントリデータとの比較動作を制御信号MLOUTによって制御する。具体的には、実施形態1で説明したのと同様に、制御信号MLOUTをse端子と接続する。当該構成により、BCAM装置12Pでヒットしたエントリデータに対応するエントリデータのみ検索キーとの比較動作を実行することにより、TCAM装置12Qの消費電力を抑えることが可能となる。
TCAM装置12Qにおいて、検索結果はプライオリティエンコーダに渡され、最終的な検索結果アドレスが生成される。
当該構成により、ルールテーブルの一部をBCAM装置12Pに格納することにより、TCAM装置に全てのルールテーブルを格納する場合に比べて面積を縮小することが可能となる。
上記の実施形態1では、設定レジスタを設定する際にルールテーブルを解析し、時分割検索におけるエントリの絞り込みに有効であると思われるフィールドを特定する必要があった。これにはドントケアのビットの数や一定範囲に含まれるデータのばらつきなどを解析する必要があるが、実施形態2においては、バイナリあるいはターナリの判定だけで解析することができるためメンテナンスにかかるCPU2の処理も削減することが可能である。
(変形例)
上記の実施形態2においては、複数の異なる検索モジュールを接続し時分割検索を実施する場合について説明した。
一方で、第1の検索が出力されるまでの遅延に合わせて第2の検索に対する信号入力を遅延させる必要がある。
図14は、実施形態2の変形例に基づく検索ブロック10Aの検索方式を説明する図である。
図14に示されるように検索ブロック10Aは、検索ブロック10#と比較して、タイミング調整回路19を設ける。
タイミング調整回路19は、再配置回路18と、データ保持に用いられるデータフリップフロップ回路DFF1〜DFF4と、セレクタSEL1〜SEL4とを含む。
データフリップフロップ回路DFF1〜DFF4は、再配置回路18から出力された信号を保持する。
セレクタSEL1〜SEL4は、再配置回路18から出力される信号と、データフリップフロップ回路DFF1〜DFF4とのいずれを選択して出力するかを切り替える。
セレクタSEL1〜SEL4の選択を切り替える切替信号は、再配置制御信号生成部15#から出力される。
例えば、本例の場合には、セレクタSEL1〜SEL3は、TCAM装置12Qに検索キーを出力する構成であるためデータフリップフロップ回路DFF1〜DFF3からのデータを出力する。
一方、セレクタSEL4は、BCAM装置12Pに検索キーを出力する構成であるためデータフリップフロップ回路DFF4からのデータではなく、再配置回路18からのデータをそのまま出力する。
図15は、検索ブロック10Aの検索のタイミングを説明する図である。
図15に示されるように、検索ブロック10Aは、クロックCLKに同期して動作する。
クロックCLKに同期して再配置回路18は、時刻T10において検索キー(keyA)を取得する。そして、時刻T11において、設定レジスタ16から出力される制御信号に基づいて変更されたデータ配列順序に従う検索キー(keyB)をBCAM装置12Pに出力する。ここでは一例として、160ビット幅の検索キーが入力されて、40ビットの検索キーをBCAM装置12Pに出力し、残りの120ビットの検索キーをTCAM装置12Qに分割して出力する場合について説明する。
時刻T12において、BCAM装置12Pにおいて、再配置回路18から出力された検索キー(keyB)の入力を受け付けて検索動作を実行する。
そして、次のクロックCLKの同期タイミングにおける時刻T13において、BCAM装置12Pから結果が出力された場合が示されている。
そして、同様のタイミングにおける時刻T13において、データフリップフロップ回路DFF1〜3に保持されていた検索キー(keyC)をTCAM装置12Qに出力する。
本例においては、後段のセグメントであるTCAM装置12Qで使用する残りの120ビットの検索キーに関してはデータフリップフロップ回路DFFに一旦取り込まれるため1サイクル遅れてTCAM装置12Qに入力される。このためTCAM装置12Qは、検索キーの入力とBCAM装置12Pの検索結果の出力をほぼ同じタイミングで受け取ることが可能である。
そして、時刻T14において、BCAM装置12Pからの結果に基づいて、検索キー(keyC)におけるTCAM装置12Qの検索動作を実行する。
次のクロックCLKの同期タイミングにおける時刻T15において、TCAM装置12Qから結果が出力された場合が示されている。
以上、本開示を実施形態に基づき具体的に説明したが、本開示は、実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
1 通信機器、4 転送制御回路、6 汎用メモリ、8 検索メモリ、10,10A 検索ブロック、12 TCAM装置、13 データ比較部、15 再配置制御信号生成部、16 設定レジスタ、17,18 再配置回路、19 タイミング調整回路、20 TCAMセルアレイ、21 書込ドライバ、22 サーチ線ドライバ、23 マッチアンプ部、24 制御論理回路、25 読出回路、26 プロファイルレジスタ、27 データ変更部、28 検索結果生成部、29 検索キー生成部。

Claims (9)

  1. 各々がメモリセルアレイを含む、N個のサブブロックと、
    前記N個のサブブロックにそれぞれ対応して分割された1〜N番目のエントリデータのうちプリサーチ用のエントリデータの番号を指定するための設定レジスタと、
    前記設定レジスタの値に基づいて入力されるサーチデータのデータ配列順序を変更するサーチデータ変更部とを備え、
    前記N個のサブブロックのうちのプリサーチ用のサブブロックは、検索指示に従って、前記メモリセルアレイの行毎に格納されたエントリデータのうち、前記サーチデータ変更部により変更されたデータ配列順序に従うプリサーチ用データに一致するものを検索し、前記行毎に一致または不一致という検索結果を出力し、
    前記N個のサブブロックのうちのポストサーチ用のサブブロックは、前記プリサーチ用のサブブロックの検索結果に基づいて、前記メモリセルアレイの行毎に格納されたエントリデータのうち、前記サーチデータのうちの前記プリサーチ用データ以外のポストサーチ用データに一致するものを検索し、前記行毎に一致または不一致という検索結果を出力する、半導体装置。
  2. 前記設定レジスタの値に基づいて各前記N個のサブブロックから読み出された1〜N番目のエントリデータの配列順序を変更する読出エントリデータ変更部をさらに備える、請求項1記載の半導体装置。
  3. 前記読出エントリデータ変更部から、前記N個のサブブロックに格納された行毎に格納された1〜N番目のエントリデータの全てを所得し、データ解析に基づいて前記プリサーチ用のエントリデータの番号を再指定する解析部をさらに備える、請求項2記載の半導体装置。
  4. 前記設定レジスタの値に基づいて1〜N番目の書込用のエントリデータのデータ配列順序を変更する書込エントリデータ変更部をさらに備え、
    各前記N個のサブブロックは、変更された順番に従うエントリデータを前記メモリアレイに書込む書込回路をさらに含む、請求項1記載の半導体装置。
  5. 前記サーチデータ変更部は、前記入力されるサーチデータのうちプリサーチ用データを前記プリサーチ用のサブブロックに出力するとともに、前記プリサーチ用データ以外のポストサーチ用データを保持する保持回路を含む、請求項1記載の半導体装置。
  6. 前記プリサーチ用のサブブロックのメモリセルアレイは、2値を保持して、前記プリサーチ用データとの間での一致または不一致の比較が可能なメモリセルを有し、前記ポストサーチ用のサブブロックのメモリセルアレイは、3値を保持して、前記ポストサーチ用データとの間での一致または不一致の比較が可能なメモリセルを有する、請求項1記載の半導体装置。
  7. 複数の検索ブロックを備え、
    各前記検索ブロックは、
    各々がメモリセルアレイを含む、N個のサブブロックと、
    前記N個のサブブロックにそれぞれ対応して分割された1〜N番目のエントリデータのうちプリサーチ用のエントリデータの番号を指定するための設定レジスタと、
    前記設定レジスタの値に基づいて前記複数の検索ブロックに対して共通に入力されるサーチデータのデータ配列順序を変更するサーチデータ変更部とを含み、
    前記N個のサブブロックのうちのプリサーチ用のサブブロックは、検索指示に従って、前記メモリセルアレイの行毎に格納されたエントリデータのうち、前記サーチデータ変更部により変更されたデータ配列順序に従うプリサーチ用データに一致するものを検索し、前記行毎に一致または不一致という検索結果を出力し、
    前記N個のサブブロックのうちのポストサーチ用のサブブロックは、前記プリサーチ用のサブブロックの検索結果に基づいて、前記メモリセルアレイの行毎に格納されたエントリデータのうち、前記サーチデータのうちの前記プリサーチ用データ以外のポストサーチ用データに一致するものを検索し、前記行毎に一致または不一致という検索結果を出力する、半導体装置。
  8. 各々が行列状に配置された連想メモリセルを含む第1および第2のサブブロックと、
    書込データを構成する第1および第2の書込データがそれぞれ格納された前記第1および第2のサブブロックとの対応関係を指定した設定レジスタと、
    前記設定レジスタの値に基づいて、入力された検索データのデータ配列順序を変更し、前記検索データを構成する前記第1および第2の検索キーをそれぞれ対応する前記第1および第2のサブブロックに出力するデータ配列順序変更部とを備え、
    前記第1のサブブロックは、前記第1のサブブロックに入力された前記第1および第2の検索キーの一方による検索動作を行い、
    前記第2のサブブロックは、前記第1のサブブロックの検索動作の結果に基づいて、前記第1および第2の検索キーの他方による検索動作を行う、半導体装置。
  9. 前記設定レジスタの値に応じて、前記第1および第2のサブブロックにそれぞれ格納されている前記第1および第2の書込データの配列順序を変更して読出データとして出力する読出データ配列順序変更部をさらに備える、請求項8に記載の半導体装置。
JP2017122246A 2017-06-22 2017-06-22 半導体装置 Pending JP2019008845A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017122246A JP2019008845A (ja) 2017-06-22 2017-06-22 半導体装置
US15/968,331 US10373684B2 (en) 2017-06-22 2018-05-01 Semiconductor device
CN201810552109.4A CN109119113A (zh) 2017-06-22 2018-05-31 半导体器件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017122246A JP2019008845A (ja) 2017-06-22 2017-06-22 半導体装置

Publications (1)

Publication Number Publication Date
JP2019008845A true JP2019008845A (ja) 2019-01-17

Family

ID=64692775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017122246A Pending JP2019008845A (ja) 2017-06-22 2017-06-22 半導体装置

Country Status (3)

Country Link
US (1) US10373684B2 (ja)
JP (1) JP2019008845A (ja)
CN (1) CN109119113A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102134315B1 (ko) * 2018-12-11 2020-07-16 조선대학교산학협력단 내용기반 검색 및 동시 업데이트 가능한 fpga 기반 tcam 구조
JP2020201656A (ja) * 2019-06-07 2020-12-17 ルネサスエレクトロニクス株式会社 検索回路
TWI783767B (zh) * 2021-11-02 2022-11-11 瑞昱半導體股份有限公司 記憶體分時控制裝置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62293596A (ja) 1986-06-12 1987-12-21 Matsushita Electric Ind Co Ltd 連想記憶装置
JP2003272386A (ja) * 2002-03-20 2003-09-26 Mitsubishi Electric Corp Tcamセル、tcamセルアレイ、アドレス検索メモリおよびネットワークアドレス検索装置
US20070247885A1 (en) * 2006-04-25 2007-10-25 Renesas Technology Corp. Content addressable memory
US8984217B2 (en) * 2010-08-24 2015-03-17 Qualcomm Incorporated System and method of reducing power usage of a content addressable memory
WO2012090564A1 (ja) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データ要素列を処理する装置及び方法
CN103270699B (zh) * 2010-12-28 2016-08-10 国际商业机器公司 用于确定搜索起点的装置和方法
JP6441708B2 (ja) * 2015-02-25 2018-12-19 ルネサスエレクトロニクス株式会社 半導体記憶装置
JP6592310B2 (ja) * 2015-09-01 2019-10-16 ルネサスエレクトロニクス株式会社 半導体装置
JP2018010505A (ja) * 2016-07-14 2018-01-18 ルネサスエレクトロニクス株式会社 検索装置および半導体装置
JP6659486B2 (ja) * 2016-07-20 2020-03-04 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
US20180374538A1 (en) 2018-12-27
CN109119113A (zh) 2019-01-01
US10373684B2 (en) 2019-08-06

Similar Documents

Publication Publication Date Title
US10366755B2 (en) Semiconductor device including TCAM cell arrays capable of skipping TCAM-cell search in response to control signal
US6499081B1 (en) Method and apparatus for determining a longest prefix match in a segmented content addressable memory device
US6081440A (en) Ternary content addressable memory (CAM) having fast insertion and deletion of data values
US8788791B2 (en) Low power, hash-content addressable memory architecture
US11468933B2 (en) Content addressable memory, data processing method, and network device
US6731526B2 (en) CAM cell array, TCAM cell, TCAM cell array, address search memory, and network address search apparatus
US6574702B2 (en) Method and apparatus for determining an exact match in a content addressable memory device
US6539455B1 (en) Method and apparatus for determining an exact match in a ternary content addressable memory device
JP6659486B2 (ja) 半導体装置
JP2007524946A (ja) コンテンツ・ベースの情報検索アーキテクチャー
US10373684B2 (en) Semiconductor device
US20140177310A1 (en) Pseudo-nor cell for ternary content addressable memory
US20190332313A1 (en) Data buffer processing method and data buffer processing system for 4r4w fully-shared packet
US10891337B2 (en) Content addressable memory and semiconductor device
US8059439B2 (en) Encoding data for storage in a content addressable memory
US10545878B2 (en) Search memory
US20160358654A1 (en) Low-power ternary content addressable memory
US11631459B2 (en) Dual compare ternary content addressable memory
US8023300B1 (en) Content addressable memory device capable of parallel state information transfers
AU2021106221A4 (en) An improved tcam cell design and method of operation for reduced power dissipation
TW201830398A (zh) 適用於軟體定義網路的三元內容定址記憶體裝置及其方法
JP2019114311A (ja) 検索メモリおよび検索システム
Nourani et al. A reconfigurable cam architecture for network search engines
NV et al. High-Throughput CAM Based On Search and Shift Mechanism
JPWO2011016184A1 (ja) 半導体記憶装置