JP2019008845A - Semiconductor device - Google Patents

Semiconductor device 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
Japanese (ja)
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/en
Priority to US15/968,331 priority patent/US10373684B2/en
Priority to CN201810552109.4A priority patent/CN109119113A/en
Publication of JP2019008845A publication Critical patent/JP2019008845A/en
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

To provide a semiconductor device capable of reducing power consumption.SOLUTION: A semiconductor device comprises: N pieces of subblocks; a setting register 16 for designating the number of presearch entry data in first to N-th entry data divided in accordance with the subblocks; and a search data change section 18 for changing a data array order of search data inputted on the basis of a value of the setting register. The presearch subblock in N pieces of the subblocks retrieves data matched with presearch data following the data array order changed by the search data change section, outputs a retrieval result of matching or non-matching for respective rows, retrieves data matched with post search data in search data among entry data stored for respective rows of the memory cell array on the basis of the retrieval result of the presearch subblock, and outputs the retrieval result of matching or non-matching for the respective rows.SELECTED DRAWING: Figure 9

Description

この開示は、半導体装置に関し、たとえば、連想メモリに関する。   The present disclosure relates to a semiconductor device, for example, an associative memory.

連想メモリまたはCAM(内容参照メモリ:Content Addressable Memory)と呼ばれる記憶装置は、記憶しているデータワードの中から検索ワードに一致しているものを検索し、一致しているデータワードが見つかった場合は、そのアドレスを出力するものである。   A storage device called associative memory or CAM (Content Addressable Memory) searches a stored data word that matches a search word and finds a matching data word Outputs the address.

CAMにはBCAM(Binary CAM)とTCAM(Ternary CAM)とがある。BCAMの各メモリセルは“0”か“1”かのいずれかの情報を記憶する。一方、TCAMの場合には、各メモリセルは、“0”および“1”の他に“ドントケア(Don't Care)”(本例においては、“*”の記号を用いる)の情報を記憶可能である。“*”は“0”および“1”のどちらでも良いことを示す。   CAM includes BCAM (Binary CAM) and TCAM (Ternary CAM). Each memory cell of the BCAM stores either “0” or “1” information. On the other hand, in the case of TCAM, each memory cell stores “Don't Care” (in this example, the symbol “*”) in addition to “0” and “1”. Is possible. “*” Indicates that either “0” or “1” may be used.

TCAM装置は、インターネットなどのネットワーク用のルータにおいてアドレス検索およびアクセス制御のために幅広く利用されている。大容量化に対応するために、TCAM装置は、通常、複数のアレイを有し、各アレイに対して同時にサーチ動作が実行される構成となっている。   TCAM devices are widely used for address search and access control in routers for networks such as the Internet. In order to cope with an increase in capacity, a TCAM device usually has a plurality of arrays, and a search operation is simultaneously performed on each array.

TCAM装置は、入力サーチデータ(入力パケット)とTCAMセルデータとを一斉に比較することができるので、全ての検索用途においてRAM(Random Access Memory)よりも高速である。しかしながら、検索時にサーチ電流が発生するために消費電力の増大が問題となっている。   The TCAM device can compare the input search data (input packet) and the TCAM cell data all at once, and is therefore faster than a RAM (Random Access Memory) in all search applications. However, since a search current is generated during a search, an increase in power consumption is a problem.

この点で、時分割検索により初段セグメントの検索(プリサーチ)が不一致(MISS)である場合には、後段セグメントの検索(ポストサーチ)を実行しないことにより検索の低消費電力化を図ることが可能である(特許文献1)。   In this regard, when the initial segment search (presearch) is inconsistent (MISS) by time-division search, it is possible to reduce the power consumption of the search by not performing the subsequent segment search (post search). It is possible (Patent Document 1).

特開昭62−293596号公報Japanese Patent Laid-Open No. 62-293596

しかしながら、時分割検索はなるべくプリサーチで不一致となることが消費電力化の観点から望ましいが、例えば、ACL(Access Control List)等のテーブルを構成するフィールドに対して時分割検索を実行する場合には、不一致となりやすいものとなり難いものあり、同じテーブルでもTCAM装置への書き込み方次第で時分割検索による省電力効果は変化する。   However, it is desirable from the viewpoint of power consumption that the time-division search is inconsistent in pre-search as much as possible. For example, when time-division search is executed for fields constituting a table such as an ACL (Access Control List). Are less likely to become inconsistent, and even in the same table, the power saving effect by time division search varies depending on how to write to the TCAM device.

本開示は、上記の課題を解決するためになされたものであって、低消費電力化が可能な半導体装置を提供することを目的とする。   The present disclosure has been made to solve the above-described problem, and an object thereof is to provide a semiconductor device capable of reducing power consumption.

その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。   Other problems and novel features will become apparent from the description of the specification and the accompanying drawings.

一実施例によれば、半導体装置は、各々がメモリセルアレイを含む、N個のサブブロックと、N個のサブブロックにそれぞれ対応して分割された1〜N番目のエントリデータのうちプリサーチ用のエントリデータの番号を指定するための設定レジスタと、設定レジスタの値に基づいて入力されるサーチデータのデータ配列順序を変更するサーチデータ変更部とを備える。N個のサブブロックのうちのプリサーチ用のサブブロックは、検索指示に従って、メモリセルアレイの行毎に格納されたエントリデータのうち、サーチデータ変更部により変更されたデータ配列順序に従うプリサーチ用データに一致するものを検索し、行毎に一致または不一致という検索結果を出力し、N個のサブブロックのうちのポストサーチ用のサブブロックは、プリサーチ用のサブブロックの検索結果に基づいて、メモリセルアレイの行毎に格納されたエントリデータのうち、サーチデータのうちのプリサーチ用データ以外のポストサーチ用データに一致するものを検索し、行毎に一致または不一致という検索結果を出力する。   According to one embodiment, the semiconductor device includes N sub-blocks each including a memory cell array, and pre-search out of 1 to N-th entry data divided corresponding to the N sub-blocks. A setting register for designating the entry data number, and a search data changing unit for changing the data arrangement order of the search data input based on the value of the setting register. Of the N sub-blocks, the pre-search sub-block is pre-search data in accordance with the data arrangement order changed by the search data changing unit among the entry data stored for each row of the memory cell array in accordance with the search instruction. Are searched for, and a search result of match or mismatch is output for each row. The post-search sub-block of the N sub-blocks is based on the search result of the pre-search sub-block, Of the entry data stored for each row of the memory cell array, the search data that matches the post search data other than the presearch data is searched, and a search result that matches or does not match is output for each row.

一実施例によれば、本開示の半導体装置は、低消費電力化を図ることが可能である。   According to an embodiment, the semiconductor device of the present disclosure can achieve low power consumption.

実施形態1に基づく通信機器1の構成を説明する図である。It is a figure explaining the structure of the communication apparatus 1 based on Embodiment 1. FIG. 実施形態1に基づく検索メモリ8の構成を説明する図である。It is a figure explaining the structure of the search memory 8 based on Embodiment 1. FIG. 実施形態1に基づくTCAM装置12の構成を説明する図である。It is a figure explaining the structure of the TCAM apparatus 12 based on Embodiment 1. FIG. TCAMセルの構成の一例を示す回路図である。It is a circuit diagram which shows an example of a structure of a TCAM cell. 図4のXセルおよびYセルの記憶内容とTCAMデータとの対応関係を表形式で示す図である。FIG. 5 is a diagram showing a correspondence relationship between the contents stored in the X cell and the Y cell of FIG. 実施形態に基づくセグメント(サブブロック)12Aの構成を説明する図である。It is a figure explaining the structure of the segment (subblock) 12A based on embodiment. サーチ線ドライバ22の構成の一例を示す回路図である。3 is a circuit diagram showing an example of a configuration of a search line driver 22. FIG. マッチアンプの構成の一例を示す回路図である。It is a circuit diagram which shows an example of a structure of a match amplifier. 実施形態1に基づく検索ブロック10の検索方式を説明する図である。It is a figure explaining the search system of the search block 10 based on Embodiment 1. FIG. 検索ブロック10の検索のタイミングを説明する図である。FIG. 4 is a diagram for explaining a search timing of a search block 10. 検索メモリ8のメンテナンス動作について説明する図である。5 is a diagram for describing a maintenance operation of a search memory 8. FIG. 実施形態2に基づく検索ブロック10#の検索方式を説明する図である。It is a figure explaining the search method of the search block 10 # based on Embodiment 2. FIG. BCAM装置12PのBCAMセルMC#の構成の一例を示す回路図である。It is a circuit diagram which shows an example of a structure of the BCAM cell MC # of the BCAM apparatus 12P. 実施形態2の変形例に基づく検索ブロック10Aの検索方式を説明する図である。It is a figure explaining the search system of 10 A of search blocks based on the modification of Embodiment 2. FIG. 検索ブロック10Aの検索のタイミングを説明する図である。It is a figure explaining the search timing of 10 A of search blocks.

実施形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。   Embodiments will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals, and description thereof will not be repeated.

(実施形態1)
<通信機器1の全体構成>
図1は、実施形態1に基づく通信機器1の構成を説明する図である。
(Embodiment 1)
<Overall configuration of communication device 1>
FIG. 1 is a diagram illustrating a configuration of a communication device 1 based on the first embodiment.

図1に示されるように、通信機器1は、スイッチあるいはルータ等の通信装置である。
通信機器1は、CPU(Central Processing Unit)2と、転送制御回路4と、汎用メモリ6と、検索メモリ8とを含む。
As shown in FIG. 1, the communication device 1 is a communication device such as a switch or a router.
The communication device 1 includes a CPU (Central Processing Unit) 2, a transfer control circuit 4, a general-purpose memory 6, and a search memory 8.

CPU2は、機器全体を制御する。
CPU2は、汎用メモリ6に格納されたプログラムと協働して種々の機能を実現する。たとえば、汎用メモリ6は、DRAM(Dynamic Random Access Memory)で構成することが可能であり、CPU2と協働することによりオペレーティングシステム(OS)を構築する。CPU2は、隣接する通信機器等と情報交換し、転送処理に必要な情報を維持管理する。
The CPU 2 controls the entire device.
The CPU 2 realizes various functions in cooperation with a program stored in the general-purpose memory 6. For example, the general-purpose memory 6 can be constituted by a DRAM (Dynamic Random Access Memory), and an operating system (OS) is constructed by cooperating with the CPU 2. The CPU 2 exchanges information with adjacent communication devices and maintains and manages information necessary for transfer processing.

転送制御回路4は、通信パケットの転送処理を実行する。転送制御回路4は、転送処理に特化したASIC(Application Specific Integrated Circuit)回路あるいはNPU(Network Processing Unit)といった専用ハードウェアが設けられている。転送制御回路4は、検索メモリ8にアクセスして、転送処理に必要な情報を取得する。   The transfer control circuit 4 executes communication packet transfer processing. The transfer control circuit 4 is provided with dedicated hardware such as an ASIC (Application Specific Integrated Circuit) circuit or an NPU (Network Processing Unit) specialized for transfer processing. The transfer control circuit 4 accesses the search memory 8 and acquires information necessary for transfer processing.

検索メモリ8は、本例においては、TCAM装置を用いる場合について説明する。
<検索メモリ8の構成>
図2は、実施形態1に基づく検索メモリ8の構成を説明する図である。
In this example, the search memory 8 will be described using a TCAM device.
<Configuration of Search Memory 8>
FIG. 2 is a diagram illustrating the configuration of the search memory 8 based on the first embodiment.

図2に示されるように、検索メモリ8は、入力データから検索キーを生成する検索キー生成部29と、プロファイルレジスタ26と、複数の検索ブロック10と、検索結果生成部28とを含む。   As shown in FIG. 2, the search memory 8 includes a search key generation unit 29 that generates a search key from input data, a profile register 26, a plurality of search blocks 10, and a search result generation unit 28.

検索メモリ8全体は一定の粒度を持つ検索ブロック10という単位で管理される。本例においては、複数の検索ブロック10−1〜10−nが設けられた構成が示されている。   The entire search memory 8 is managed in units of search blocks 10 having a certain granularity. In this example, a configuration in which a plurality of search blocks 10-1 to 10-n are provided is shown.

各検索ブロック10の構成についての詳細は、後述するが、TCAMセルを有するTCAM装置12と、プリサーチ用のエントリデータの番号を指定するための設定レジスタ16と、設定レジスタ16の値に基づいてデータ配列順序を変更するデータ変更部27とを含む。   Although details of the configuration of each search block 10 will be described later, based on the TCAM device 12 having a TCAM cell, the setting register 16 for designating the number of entry data for pre-search, and the value of the setting register 16 And a data changing unit 27 that changes the data arrangement order.

プロファイルレジスタ26には検索に必要な様々な設定が保持されている。
プロファイルレジスタ26の情報に基づき検索キー生成部29は入力データから検索キーの生成を行う。
The profile register 26 holds various settings necessary for the search.
Based on the information in the profile register 26, the search key generation unit 29 generates a search key from the input data.

検索ブロック10−1〜10−nは、並列に設けられており並列検索機能を有する。
検索結果生成部28は、各検索ブロック10からの検索結果に対して優先順位をつけ最終的な検索結果を生成する。
The search blocks 10-1 to 10-n are provided in parallel and have a parallel search function.
The search result generation unit 28 gives priority to the search results from the search blocks 10 and generates a final search result.

検索コマンドが発行されると、検索キー生成部29は、受け取ったデータとプロファイルレジスタ26を始めとする各種情報に基づき検索キーを生成する。   When the search command is issued, the search key generation unit 29 generates a search key based on the received data and various information including the profile register 26.

検索キー生成部29は、各検索ブロック10に検索キーを分配する。各検索ブロック10では、設定レジスタ16に予め設定されたレジスタ値に基づいてデータ変更部27が、検索キーのデータ配列順序を変更して出力する。これによって変更された検索キーは各検索ブロック10毎にユニークな値となる。   The search key generation unit 29 distributes the search key to each search block 10. In each search block 10, the data changing unit 27 changes the data arrangement order of the search keys based on the register value preset in the setting register 16 and outputs it. The search key thus changed becomes a unique value for each search block 10.

<TCAM装置12の構成>
図3は、実施形態1に基づくTCAM装置12の構成を説明する図である。
<Configuration of TCAM device 12>
FIG. 3 is a diagram illustrating the configuration of the TCAM device 12 based on the first embodiment.

図3に示されるように、TCAM装置12は、時分割検索機能を有する。
TCAM装置12は、複数のセグメント(サブブロック)に分割されている。本例においては、4つのセグメント(サブブロック)に分割されている場合が示されている。
As shown in FIG. 3, the TCAM device 12 has a time division search function.
The TCAM device 12 is divided into a plurality of segments (sub-blocks). In this example, the case where it is divided into four segments (sub-blocks) is shown.

一例として、セグメント12A〜12Dに分割されている場合が示されている。
セグメント12A〜12Dは、前段から後段に連結されている。
As an example, the case where it is divided into segments 12A to 12D is shown.
The segments 12A to 12D are connected from the front stage to the rear stage.

各セグメント12A〜12Dは、基本的に同様の構成であり、メモリセルアレイと、マッチアンプが設けられているが最終段のセグメント12Dには、メモリセルアレイと、マッチアンプと、プライオリティエンコーダとが設けられている。   Each of the segments 12A to 12D has basically the same configuration, and is provided with a memory cell array and a match amplifier. However, the last segment 12D is provided with a memory cell array, a match amplifier, and a priority encoder. ing.

マッチアンプは少なくともセグメント毎に存在し、各マッチ線の一致、不一致の判定結果を増幅して出力する。   A match amplifier exists at least for each segment, and amplifies and outputs a match / mismatch determination result of each match line.

プライオリティエンコーダは、マッチアンプからの入力をアドレスに変換し最終的な出力を生成する。   The priority encoder converts the input from the match amplifier into an address and generates a final output.

また、メモリセルアレイは、複数のse(Search Enable)端子が設けられており、se端子がアサートされた領域のみマッチ線のプリチャージを行うことにより検索範囲を限定することが可能である。   The memory cell array is provided with a plurality of se (Search Enable) terminals, and the search range can be limited by precharging the match line only in the region where the se terminal is asserted.

また、本例においては、一例としてマッチアンプを活性化させる信号を保持するためのフリップフロップFF1が設けられている。具体的には、フリップフロップFF1に検索コマンドが入力された場合にマッチアンプを活性化させる信号が保持されて各セグメントのマッチアンプに出力される。   In this example, a flip-flop FF1 for holding a signal for activating the match amplifier is provided as an example. Specifically, when a search command is input to the flip-flop FF1, a signal for activating the match amplifier is held and output to the match amplifier of each segment.

また、セグメント12B〜12Dには、フリップフロップFF2〜FF4が設けられており、前段のセグメントにおける検索処理が終了するまで検索キーを保持することが可能な構成となっている。本例においては、セグメント12Aには、検索キーSBが入力され、セグメント12Bには、検索キーSAが入力され、セグメント12C,12Dには、検索キーSC,SDが入力される場合が示されている。   Further, flip-flops FF2 to FF4 are provided in the segments 12B to 12D, and the search key can be held until the search process in the previous segment is completed. In this example, the search key SB is input to the segment 12A, the search key SA is input to the segment 12B, and the search keys SC and SD are input to the segments 12C and 12D. Yes.

前段のセグメントのマッチアンプ出力を後段のセグメントのse端子と接続することにより、前段のセグメントで一致したエントリのみを検索対象とすることが可能である。   By connecting the match amplifier output of the preceding segment to the se terminal of the succeeding segment, it is possible to search only the entries that match in the preceding segment.

具体的には、まず初段のセグメント12Aのみを活性させて第1の検索を実行する。第1の検索で一致した領域のみセグメント12Bにおいて第2の検索を実行する。同様にして第3、第4の検索を実行する。前段のセグメントの検索で不一致となった領域の分だけ後段のセグメントの消費電力を抑えることが可能である。   More specifically, only the first segment 12A is activated and the first search is executed. The second search is executed in the segment 12B only for the areas that are matched in the first search. Similarly, the third and fourth searches are executed. It is possible to suppress the power consumption of the subsequent segment by an amount corresponding to the area that does not match in the search for the previous segment.

<セグメント(サブブロック)の構成>
[TCAMセルの構成]
図4は、TCAMセルの構成の一例を示す回路図である。
<Structure of segment (sub block)>
[Configuration of TCAM cell]
FIG. 4 is a circuit diagram showing an example of the configuration of the TCAM cell.

図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セルは、連想メモリセルとも称する。   Referring to FIG. 4, a TCAM cell (also referred to as a memory cell MC) includes two SRAM cells (Static Random Access Memory Cells) 11 and 12 and a data comparison unit 13. The SRAM cell 11 is also referred to as an X cell, and the SRAM cell 14 is also referred to as a Y cell. The X cell 11 stores 1-bit data that is complementary to the internal storage node pair ND1, ND1_n (one is “1” and the other is “0”). The Y cell 14 stores 1-bit data complementary to each other in the internal storage node pair ND2, ND2_n. The TCAM cell is also referred to as an associative memory cell.

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セルによって共有される。   The TCAM cell is connected to the bit line pair BL, BL_n, the search line pair SL, SL_n, the match line ML, and the word lines WLX, WLY. The bit line pair BL, BL_n extends in the column direction (Y direction) of the TCAM cell array 20 of FIG. 6 and is shared by a plurality of TCAM cells arranged in the column direction. The search line pair SL, SL_n extends in the column direction (Y direction) of the TCAM cell array 20 and is shared by a plurality of TCAM cells arranged in the column direction.

マッチ線MLは、TCAMセルアレイ20の行方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。ワード線WLX,WLYは、TCAMセルアレイ20の行方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。   The match line ML extends in the row direction (X direction) of the TCAM cell array 20 and is shared by a plurality of TCAM cells arranged in the row direction. The word lines WLX and WLY extend in the row direction (X direction) of the TCAM cell array 20 and are shared by a plurality of TCAM cells arranged in the row direction.

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と接続される。   X cell 11 includes inverters INV1 and INV2 and N-channel MOS (Metal Oxide Semiconductor) transistors Q1 and Q2. The inverter INV1 is connected between the storage node ND1 and the storage node ND1_n so that the direction from the storage node ND1_n to the storage node ND1 is the forward direction. Inverter INV2 is connected in parallel and in the opposite direction to INV1. MOS transistor Q1 is connected between storage node ND1 and bit line BL. The MOS transistor Q2 is connected between the storage node ND1_n and the bit line BL_n. MOS transistors Q1, Q2 have their gates connected to word line 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と接続される。   Y cell 14 includes inverters INV3 and INV4 and MOS (Metal Oxide Semiconductor) transistors Q3 and Q4. The inverter INV3 is connected between the storage node ND2 and the storage node ND2_n so that the direction from the storage node ND2_n to the storage node ND2 is the forward direction. The inverter INV4 is connected in parallel with INV3 in the reverse direction. MOS transistor Q3 is connected between storage node ND2 and bit line BL. The MOS transistor Q4 is connected between the storage node ND2_n and the bit line BL_n. MOS transistors Q3 and Q4 have their gates connected to word line 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とそれぞれ接続される。   Data comparison unit 13 includes N channel MOS transistors Q6 to Q9. MOS transistors Q6 and Q7 are connected in series between node ND3, which is a connection point with match line ML, and ground node GND. MOS transistors Q8 and Q9 are connected in series between node ND3 and ground node GND, and in parallel with the whole of MOS transistors Q6 and Q7 connected in series. MOS transistors Q6 and Q8 have their gates connected to storage nodes ND1 and ND2, respectively. MOS transistors Q7 and Q9 have their gates connected to search lines SL and SL_n, respectively.

図5は、図4のXセルおよびYセルの記憶内容とTCAMデータとの対応関係を表形式で示す図である。   FIG. 5 is a table showing the correspondence between the stored contents of the X cell and Y cell of FIG. 4 and the TCAM data in a tabular format.

図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”が格納されている場合は使用しない。   Referring to FIGS. 4 and 5, the TCAM cell can store three values of “0”, “1”, “*” (don't care) using a 2-bit SRAM cell. it can. Specifically, when “1” is stored in the storage node ND1 of the X cell 11 and “0” is stored in the storage node ND2 of the Y cell 14, “0” is stored in the TCAM cell. To do. It is assumed that “1” is stored in the TCAM cell when “0” is stored in the storage node ND1 of the X cell 11 and “1” is stored in the storage node ND2 of the Y cell 14. It is assumed that “*” (don't care) is stored in the TCAM cell when “0” is stored in the storage node ND1 of the X cell 11 and “0” is stored in the storage node ND2 of the Y cell 14. . When “1” is stored in the storage node ND1 of the X cell 11 and “1” is stored in the storage node ND2 of the Y cell 14, it is not used.

上記の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の電位は接地電位まで引き抜かれる。   According to the above TCAM cell configuration, the search data is “1” (that is, the search line SL is “1” and the search line SL_n is “0”), and the TCAM data is “0” (storage node ND1). Is “1” and the storage node ND2 is “0”), the MOS transistors Q6 and Q7 are turned on, so that the potential of the precharged match line ML is pulled out to the ground potential. The search data is “0” (that is, the search line SL is “0” and the search line SL_n is “1”), the TCAM data is “1” (the storage node ND1 is “0”, and the storage node ND2 Is “1”), the MOS transistors Q8 and Q9 are turned on, so that the potential of the precharged match line ML is pulled out to the ground potential. That is, when the search data and the TCAM data do not match, the potential of the match line ML is pulled out to the ground potential.

逆に、入力されたサーチデータが“1”であり、かつ、TCAMデータが“1”または“*”の場合、もしくは、サーチデータが“0”であり、かつ、TCAMデータが“0”または“*”の場合(すなわち、両者が一致する場合)、プリチャージされたマッチ線MLの電位(電源電位VDDレベル)は維持される。   Conversely, when the input search data is “1” and the TCAM data is “1” or “*”, or the search data is “0” and the TCAM data is “0” or In the case of “*” (that is, when both match), the potential (power supply potential VDD level) of the precharged match line ML is maintained.

上記のように、TCAMでは、1つのエントリ(行)に対応するマッチ線MLに接続された全てのTCAMセルのデータが入力サーチデータと一致しない限り、マッチ線MLに蓄えられた電荷が引き抜かれる。このため、TCAMでの検索は高速であるが、消費電流が大きいという問題がある。   As described above, in the TCAM, unless the data of all TCAM cells connected to the match line ML corresponding to one entry (row) match the input search data, the charge stored in the match line ML is extracted. . For this reason, although the search by TCAM is high speed, there exists a problem that current consumption is large.

図6は、実施形態に基づくセグメント(サブブロック)12Aの構成を説明する図である。   FIG. 6 is a diagram for explaining the configuration of the segment (sub-block) 12A based on the embodiment.

図6に示されるように、セグメント12Aは、TCAMセルアレイ20(単にセルアレイとも称する)と、書込ドライバ21と、サーチ線ドライバ22と、マッチアンプ部23と、制御論理回路24と、読出回路25とを含む。   As shown in FIG. 6, the segment 12A includes a TCAM cell array 20 (also simply referred to as a cell array), a write driver 21, a search line driver 22, a match amplifier unit 23, a control logic circuit 24, and a read circuit 25. Including.

セグメント12Aは、図示していないがワード線WLX,WLYを駆動するためのワード線ドライバ(不図示)と、制御信号やアドレス信号等の入力を受ける入出力回路(不図示)とを含む。   Although not shown, the segment 12A includes a word line driver (not shown) for driving the word lines WLX and WLY, and an input / output circuit (not shown) that receives input of a control signal, an address signal, and the like.

TCAMセルアレイ20は、行列状(m行;k列)に配列されたTCAMセルを含む。本例においては、セルアレイ20は、行数(エントリ数)mがNであり、列数(ビット数)kが40の場合が示されている。   The TCAM cell array 20 includes TCAM cells arranged in a matrix (m rows; k columns). In this example, the cell array 20 shows a case where the number of rows (number of entries) m is N and the number of columns (number of bits) k is 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]まで)とが設けられる。   Corresponding to each column of the cell array 20, k (k = 40) bit line pairs (from BL [0], BL_n [0] to BL [k−1], BL_n [k−1]), k (K = 40) search line pairs (from SL [0], SL_n [0] to SL [k−1], SL_n [k−1]) are provided.

セルアレイ20の各行に対応して、m本(m=N)のマッチ線(ML[0]からML[N]まで)と、図示しないm本のXセル用のワード線(WLX[0]からWLX[m−1]まで)と、図示しないm本のYセル用のワード線(WLY[0]からWLY[m−1]まで)とが設けられている。   Corresponding to each row of the cell array 20, m (m = N) match lines (from ML [0] to ML [N]) and m X-cell word lines (not shown) (WLX [0]) WLX [m−1]) and m Y cell word lines (from WLY [0] to WLY [m−1]) (not shown) are provided.

書込ドライバ21は、書込時に、ビット線対BL,BL_nを介して各TCAMセルに書込データを供給する。サーチ線ドライバ22は、検索時に、サーチ線対SL,SL_nを介して各TCAMセルにサーチデータを供給する。   The write driver 21 supplies write data to each TCAM cell via the bit line pair BL, BL_n at the time of writing. The search line driver 22 supplies search data to each TCAM cell via the search line pair SL, SL_n at the time of search.

制御論理回路24は、セグメント12A全体の動作を制御する。たとえば、制御論理回路24は、検索時には、サーチコマンドを受け取り、サーチ線ドライバ22と、マッチアンプ部23に制御信号を出力することによって、サーチ線ドライバ22、マッチアンプ部23、およびプリチャージ回路の動作を制御する。制御論理回路24は、読出時には読出コマンドを受け取り、読出回路25を制御する制御信号を出力する。これによりセルアレイ20に格納されているエントリデータを読み出して出力することが可能である。   The control logic circuit 24 controls the operation of the entire segment 12A. For example, the control logic circuit 24 receives a search command at the time of search, and outputs a control signal to the search line driver 22 and the match amplifier unit 23, thereby causing the search line driver 22, the match amplifier unit 23, and the precharge circuit to Control the behavior. The control logic circuit 24 receives a read command at the time of reading and outputs a control signal for controlling the reading circuit 25. As a result, the entry data stored in the cell array 20 can be read and output.

マッチアンプ部23は、セルアレイの行にそれぞれ対応する複数のマッチアンプMAを含む。マッチアンプMAは、検索時に、対応するマッチ線MLの電位に基づいて、対応するTCAMセルデータと入力サーチデータの対応部分とが一致するか否かを検出する。この実施形態では、マッチアンプMAは、検索時に対応するマッチ線MLをプリチャージするためのプリチャージ回路を含む。   The match amplifier unit 23 includes a plurality of match amplifiers MA respectively corresponding to the rows of the cell array. The match amplifier MA detects whether or not the corresponding TCAM cell data matches the corresponding portion of the input search data based on the potential of the corresponding match line ML during the search. In this embodiment, the match amplifier MA includes a precharge circuit for precharging the corresponding match line ML at the time of search.

図7は、サーチ線ドライバ22の構成の一例を示す回路図である。
図7に示されるように、サーチ線ドライバ22は、サーチ線イネーブル信号senaが「H」レベルに活性化されたときに、入力サーチデータskey[i](i=0,1,…,k)をサーチ線SL[i]に出力する。また、入力サーチデータskey[i]の論理レベルを反転した信号を相補のサーチ線SL_n[i]に出力する。
FIG. 7 is a circuit diagram showing an example of the configuration of the search line driver 22.
As shown in FIG. 7, when the search line enable signal sena is activated to “H” level, the search line driver 22 receives input search data sky [i] (i = 0, 1,..., K). Is output to the search line SL [i]. Further, a signal obtained by inverting the logic level of the input search data sky [i] is output to the complementary search line SL_n [i].

本例においては、一例として、検索キーSBは、入力サーチデータskey[i](i=0,1,…,k)として構成されている場合について説明する。   In this example, a case where the search key SB is configured as input search data sky [i] (i = 0, 1,..., K) will be described as an example.

具体的に、サーチ線ドライバ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]とを含む。   Specifically, the search line driver 22 applies AND gates 60 [0] to 60 [k] and search lines SL_n [0] to SL_n [k] corresponding to the search lines SL [0] to SL [k], respectively. Each includes AND gates 61 [0] to 61 [k] and inverters 62 [0] to 62 [k], respectively.

サーチ線イネーブル信号senaは、ANDゲート60[0]〜60[k]およびANDゲート61[0]〜61[k]に共通に入力される。さらに、ANDゲート60[i](i=0,1,…,k)には、対応する入力サーチデータskey[i]が入力される。   The search line enable signal sena is commonly input to the AND gates 60 [0] to 60 [k] and the AND gates 61 [0] to 61 [k]. Further, the corresponding input search data sky [i] is input to the AND gate 60 [i] (i = 0, 1,..., K).

ANDゲート60[i](i=0,1,…,k)の出力信号はサーチ線SL[i]に送信される。ANDゲート61[i](i=0,1,…,k)には、対応する入力サーチデータskey[i]を反転した信号が入力される。   The output signal of the AND gate 60 [i] (i = 0, 1,..., K) is transmitted to the search line SL [i]. A signal obtained by inverting the corresponding input search data sky [i] is input to the AND gate 61 [i] (i = 0, 1,..., K).

上記構成によれば、たとえば、サーチ線イネーブル信号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」レベルとなる。   According to the above configuration, for example, when the search line enable signal sena is activated to the “H” level and the input search data sky [i] is at the “H” level (“1”), the search line The voltage of SL [i] becomes “H” level, and the voltage of the search line SL_n [i] becomes “L” level. When the search line enable signal sena is activated to “H” level and the input search data sky [i] is at “L” level (“0”), the voltage of the search line SL [i] is “ “L” level, and the voltage of the search line SL_n [i] becomes “H” level.

図8は、マッチアンプの構成の一例を示す回路図である。
図8を参照して、マッチアンプMAは、プリチャージ回路としてのPチャネルMOSトランジスタ70と、インバータ71〜74とを含む。
FIG. 8 is a circuit diagram showing an example of the configuration of the match amplifier.
Referring to FIG. 8, match amplifier MA includes a P-channel MOS transistor 70 as a precharge circuit and inverters 71-74.

プリチャージ回路としてのMOSトランジスタ70がマッチアンプMAの内部にあるように図示しているが、MOSトランジスタ70はマッチアンプMAの外部に設けられていても構わない。制御論理回路24は、マッチアンプイネーブル信号maeを出力する。   Although the MOS transistor 70 as the precharge circuit is illustrated as being inside the match amplifier MA, the MOS transistor 70 may be provided outside the match amplifier MA. The control logic circuit 24 outputs a match amplifier enable signal mae.

また、上記したように、本例においては、se端子がマッチ線のプリチャージを行なうプリチャージ信号として用いられる。ここでは、se端子からの入力をインバータにより反転し、当該反転信号をプリチャージ信号としてMOSトランジスタ70に入力する場合が示されている。   Further, as described above, in this example, the se terminal is used as a precharge signal for precharging the match line. Here, a case where the input from the se terminal is inverted by an inverter and the inverted signal is input to the MOS transistor 70 as a precharge signal is shown.

したがって、図3で説明したように初段のセグメントにおいては、se端子は検索コマンドとして「H」レベル(“1”)が入力された場合に、全てのマッチ線はプリチャージされることになる。   Therefore, as described with reference to FIG. 3, in the first stage segment, when the “H” level (“1”) is input to the se terminal as a search command, all match lines are precharged.

一方、2段目以降のセグメントにおいては、前段のセグメントにおけるマッチアンプMAからの出力がse端子と接続されているため前段のマッチアンプMAからの出力が「L」レベルの場合には、次段のセグメントにおける同一行のマッチ線は、プリチャージされない。一方、前段のマッチアンプMAからの出力が「H」レベルの場合には、次段のセグメントにおける同一行のマッチ線は、プリチャージされる。したがって、前段のセグメントのマッチアンプ出力を後段セグメントのse端子と接続することにより、前段のセグメントで一致したエントリのみを検索対象とすることが可能である。前段のセグメントの検索で不一致となった領域の分だけ後段セグメントの消費電力を抑えることが可能である。   On the other hand, in the second and subsequent segments, since the output from the match amplifier MA in the previous segment is connected to the se terminal, when the output from the previous match amplifier MA is “L” level, Match lines in the same row in the segments are not precharged. On the other hand, when the output from the preceding match amplifier MA is at “H” level, the match line in the same row in the next segment is precharged. Therefore, by connecting the match amplifier output of the preceding segment to the se terminal of the succeeding segment, it is possible to search only the entries that match in the preceding segment. It is possible to suppress the power consumption of the subsequent segment by the amount of the area that does not match in the search for the previous segment.

以下、上記の構成要素の接続について説明する。MOSトランジスタ70は、対応するマッチ線MLと電源電位VDDを与える電源ノードとの間に接続される。MOSトランジスタ70のゲートには、se端子の反転信号であるマッチ線プリチャージ信号が入力される。マッチ線MLは、さらに、インバータ71の入力ノードに接続される。インバータ71の出力ノードは、インバータ74の入力ノードに接続される。インバータ74の出力ノードは、インバータ72を介してインバータ72の入力ノードに接続される。   Hereinafter, the connection of the above components will be described. MOS transistor 70 is connected between a corresponding match line ML and a power supply node supplying power supply potential VDD. A match line precharge signal that is an inverted signal of the se terminal is input to the gate of the MOS transistor 70. Match line ML is further connected to an input node of inverter 71. The output node of inverter 71 is connected to the input node of inverter 74. The output node of inverter 74 is connected to the input node of inverter 72 through inverter 72.

マッチアンプイネーブル信号maeおよびその論理レベルをインバータ73によって反転させた信号は、インバータ71,72の駆動電源ノードに接続される。マッチアンプイネーブル信号maeが非活性状態(「L」レベル)のとき、インバータ71は非動作状態となり、インバータ72は動作状態となる。マッチアンプイネーブル信号maeが活性状態(「H」レベル)のとき、インバータ71は動作状態となり、インバータ72は非動作状態となる。   The match amplifier enable signal mae and the signal obtained by inverting the logic level thereof by the inverter 73 are connected to the drive power supply nodes of the inverters 71 and 72. When match amplifier enable signal mae is in an inactive state (“L” level), inverter 71 is in an inoperative state and inverter 72 is in an operating state. When match amplifier enable signal mae is in an active state (“H” level), inverter 71 is in an operating state and inverter 72 is in a non-operating state.

次に、マッチアンプMAの回路動作について説明する。マッチ線プリチャージ信号が活性化される(「L」レベルになる)ことによって、MOSトランジスタ70が導通する。これによって、マッチ線MLが電源電位VDDまで充電される(プリチャージされる)。   Next, the circuit operation of the match amplifier MA will be described. When the match line precharge signal is activated (becomes “L” level), MOS transistor 70 becomes conductive. As a result, the match line ML is charged (precharged) to the power supply potential VDD.

マッチ線プリチャージ信号が非活性化された後に、サーチ線イネーブル信号senaが活性化される(「H」レベルになる)ことによって、サーチ線対SL,SL_nにサーチデータが入力される。これによって、マッチ線MLの電位がサーチ結果(入力サーチデータの対応部分とTCAMセルデータとの比較結果)に依存して変化する。すなわち、一致(ヒット:hit)の場合、マッチ線MLの電位は電源電位VDD(「H」レベル)のまま維持され、不一致(ミス:miss)の場合、マッチ線MLの電荷が接地ノードに放電されるのでマッチ線のML電位は接地電位(「L」レベル)に変化する。   After the match line precharge signal is deactivated, the search line enable signal sena is activated (becomes “H” level), whereby search data is input to the search line pair SL, SL_n. As a result, the potential of the match line ML changes depending on the search result (the comparison result between the corresponding portion of the input search data and the TCAM cell data). That is, in the case of a match (hit: hit), the potential of the match line ML is maintained at the power supply potential VDD (“H” level), and in the case of a mismatch (miss: miss), the charge of the match line ML is discharged to the ground node. As a result, the ML potential of the match line changes to the ground potential (“L” level).

次に、マッチアンプイネーブル信号が活性化される(「H」レベルになる)。これによって、サーチ結果に基づくマッチ線MLの電位が、インバータ71およびインバータ74を介してマッチアンプ出力信号moとして出力される。マッチアンプイネーブル信号maeが非活性化される(「L」レベルになる)と、インバータ74とインバータ72とによって構成されるラッチ回路により、サーチ結果に基づくマッチ線MLの電位が保持される。   Next, the match amplifier enable signal is activated (becomes “H” level). As a result, the potential of match line ML based on the search result is output as match amplifier output signal mo via inverter 71 and inverter 74. When match amplifier enable signal mae is deactivated (becomes “L” level), the potential of match line ML based on the search result is held by the latch circuit formed of inverter 74 and inverter 72.

<検索ブロック10の検索方式>
図9は、実施形態1に基づく検索ブロック10の検索方式を説明する図である。
<Search Method of Search Block 10>
FIG. 9 is a diagram illustrating a search method of the search block 10 based on the first embodiment.

図9に示されるように、検索ブロック10は、設定レジスタ16と、再配置制御信号生成部15と、再配置回路17,18と、TCAM装置12とを含む。   As shown in FIG. 9, the search block 10 includes a setting register 16, a rearrangement control signal generation unit 15, rearrangement circuits 17 and 18, and a TCAM device 12.

再配置制御信号生成部15と、再配置回路17,18とはデータ変更部27を構成する。   The rearrangement control signal generation unit 15 and the rearrangement circuits 17 and 18 constitute a data change unit 27.

TCAM装置12は、時分割検索機能を有する。
再配置回路17,18は、クロスバースイッチである。
The TCAM device 12 has a time division search function.
The rearrangement circuits 17 and 18 are crossbar switches.

再配置制御信号生成部15は、設定レジスタ16のレジスタ値に基づいて再配置回路17,18に対して再配置を指示する制御信号を出力する。   The rearrangement control signal generation unit 15 outputs a control signal for instructing rearrangement to the rearrangement circuits 17 and 18 based on the register value of the setting register 16.

本例においては、再配置回路17,18としてクロスバースイッチを用いているが、時分割検索に有効な領域を特定の場所に再配置できるような回路であればどのようなものでも良い。たとえば、データの上位と下位のビットを入れ替えるような構成、あるいはローテーション回路等を用いてもよい。   In this example, crossbar switches are used as the rearrangement circuits 17 and 18. However, any circuit may be used as long as it can rearrange an area effective for time division search at a specific location. For example, a configuration in which the upper and lower bits of data are exchanged, or a rotation circuit may be used.

本例においては、検索ブロック10の構成として、TCAM装置を挙げて説明するが、特にこれに限られず時分割検索が可能なデータ構造であれば何であっても構わない。   In this example, a TCAM device will be described as an example of the configuration of the search block 10. However, the present invention is not limited to this, and any data structure capable of time-division search can be used.

検索ブロック10は、入力ピンとして、書込および検索時に使用するデータバスと制御系のピンを有する。また、検索ブロック10は、出力ピンとして、検索結果出力ピンおよび読出結果出力データバスを有する。   The search block 10 has a data bus and a control system pin used for writing and searching as input pins. The search block 10 has a search result output pin and a read result output data bus as output pins.

再配置回路17,18は、これら入力および出力データバスの信号に対する再配置を実行する。具体的には、データ配列順序を変更する。   The rearrangement circuits 17 and 18 perform rearrangement on the signals of these input and output data buses. Specifically, the data arrangement order is changed.

再配置回路17,18は、再配置制御信号生成部15で生成された制御信号に従ってデータ配列順序を変更する。   The rearrangement circuits 17 and 18 change the data arrangement order according to the control signal generated by the rearrangement control signal generation unit 15.

本例においては、TCAM装置12は、上記したように4つのセグメント(サブブロック)に分割する場合について説明する。当該4つのセグメント(サブブロック)のうち1番目のセグメント(サブブロック)をプリサーチ対象とし、2〜4番目のセグメント(サブブロック)をポストサーチ対象とする。   In this example, the case where the TCAM device 12 divides into four segments (sub-blocks) as described above will be described. Of the four segments (sub-blocks), the first segment (sub-block) is a pre-search target, and the second to fourth segments (sub-blocks) are post-search targets.

本例においては、設定レジスタ16は、4つのセグメント(サブブロック)にそれぞれ対応して分割された1〜4番目のエントリデータのうちプリサーチ用のエントリデータの番号を指定する。設定レジスタ16には、一例として2ビットのデータが格納される。   In this example, the setting register 16 specifies the number of entry data for pre-search among the first to fourth entry data divided corresponding to four segments (sub-blocks). As an example, 2-bit data is stored in the setting register 16.

再配置制御信号生成部15は、設定レジスタ16のデータに基づいて制御信号S1〜S4を生成する。   The rearrangement control signal generation unit 15 generates control signals S1 to S4 based on the data in the setting register 16.

例えば、設定レジスタ16に「00」が格納されている場合には、再配置制御信号生成部15は、制御信号S1を再配置回路17,18に出力する。   For example, when “00” is stored in the setting register 16, the rearrangement control signal generation unit 15 outputs the control signal S <b> 1 to the rearrangement circuits 17 and 18.

再配置回路17,18は、制御信号S1が入力された場合には、データ配列順序を変更せず、そのままの形式で出力する。   When the control signal S1 is input, the rearrangement circuits 17 and 18 do not change the data arrangement order and output the data as it is.

設定レジスタ16に「01」が格納されている場合には、再配置制御信号生成部15は、制御信号S2を再配置回路17,18に出力する。   When “01” is stored in the setting register 16, the rearrangement control signal generation unit 15 outputs the control signal S <b> 2 to the rearrangement circuits 17 and 18.

再配置回路17,18は、制御信号S2が入力された場合には、データ配列順序を変更して、出力する。TCAM装置12は、4つのセグメント(サブブロック)に分割されているため書込データあるいは検索キーについてもそれぞれのセグメントに対応させるため4つのフィールドに分割される。再配置回路17は、制御信号S2の入力に従って書込データあるいは検索キーの2番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。   When the control signal S2 is input, the rearrangement circuits 17 and 18 change the data arrangement order and output it. Since the TCAM device 12 is divided into four segments (sub-blocks), the write data or search key is also divided into four fields in order to correspond to each segment. The rearrangement circuit 17 changes the data arrangement order to replace the second field and the first field of the write data or the search key according to the input of the control signal S2.

再配置回路18は、制御信号S2の入力に従って読出データの2番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。   The rearrangement circuit 18 changes the data arrangement order to switch the second field and the first field of the read data in accordance with the input of the control signal S2.

設定レジスタ16に「10」が格納されている場合には、再配置制御信号生成部15は、制御信号S3を再配置回路17,18に出力する。   When “10” is stored in the setting register 16, the rearrangement control signal generation unit 15 outputs the control signal S <b> 3 to the rearrangement circuits 17 and 18.

再配置回路17,18は、制御信号S3が入力された場合には、データ配列順序を変更して、出力する。書込データあるいは検索キーは4つのフィールドに分割される。再配置回路17は、制御信号S3の入力に従って書込データあるいは検索キーの3番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。   When the control signal S3 is input, the rearrangement circuits 17 and 18 change the data arrangement order and output it. The write data or search key is divided into four fields. The rearrangement circuit 17 changes the data arrangement order to replace the third field and the first field of the write data or search key in accordance with the input of the control signal S3.

再配置回路18は、制御信号S3の入力に従って読出データの3番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。   The rearrangement circuit 18 changes the data arrangement order to switch the third field and the first field of the read data in accordance with the input of the control signal S3.

設定レジスタ16に「11」が格納されている場合には、再配置制御信号生成部15は、制御信号S4を再配置回路17,18に出力する。   When “11” is stored in the setting register 16, the rearrangement control signal generation unit 15 outputs the control signal S 4 to the rearrangement circuits 17 and 18.

再配置回路17,18は、制御信号S4が入力された場合には、データ配列順序を変更して、出力する。書込データあるいは検索キーは4つのフィールドに分割される。再配置回路17は、制御信号S4の入力に従って書込データあるいは検索キーの4番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。   When the control signal S4 is input, the rearrangement circuits 17 and 18 change the data arrangement order and output it. The write data or search key is divided into four fields. The rearrangement circuit 17 changes the data arrangement order to replace the fourth field and the first field of the write data or the search key in accordance with the input of the control signal S4.

再配置回路18は、制御信号S4の入力に従って読出データの4番目のフィールドと1番目のフィールドとを入れ替えるデータ配列順序に変更する。   The rearrangement circuit 18 changes the data arrangement order to switch the fourth field and the first field of the read data in accordance with the input of the control signal S4.

(検索メモリ8の初期化(設定)について)
図1で説明した通信機器1には、ACLやFIB(Forwarding Information Base)など、転送処理を行う上で必要なルールセットを有する。
(About initialization (setting) of search memory 8)
The communication device 1 described with reference to FIG. 1 has a rule set necessary for performing transfer processing such as ACL and FIB (Forwarding Information Base).

これらはユーザーによって手動で設定される場合もあれば、特定の通信プロトコルによって自動生成される場合もある。   These may be set manually by the user or may be automatically generated by a specific communication protocol.

各ルールセットは、それぞれIPアドレスやポート番号といったパケット転送処理に必要な情報が含まれるフィールド群で構成される。   Each rule set is composed of a field group including information necessary for packet transfer processing such as an IP address and a port number.

各ルールセットは、すべてのフィールドに情報が完全に設定されたルールも存在するが、中にはフィールドに部分的にしか情報が設定されていないルールも存在する。   In each rule set, there is a rule in which information is completely set in all fields, but there is also a rule in which information is only partially set in the field.

一例として、例えばIPv4アドレスは32ビットのデータであるが、ネットワーク部・ホスト部という概念があり、しばしばネットワーク部の上位Nビットだけを検索対象とし下位(32−N)ビットは検索対象に含めないといった運用がなされている。   As an example, for example, an IPv4 address is 32-bit data, but there is a concept of a network part / host part. Often, only the upper N bits of the network part are searched, and the lower (32-N) bits are not included in the search target. The operation is made.

この検索対象に含めない部分は、検索メモリ8上では“ドントケア(Don't Care)”のデータが書き込まれることになる。   In the portion not included in the search target, “Don't Care” data is written in the search memory 8.

この“ドントケア(Don't Care)”のビットを大量に含むフィールドを、時分割検索の初段セグメント(サブブロック)に割り当てた場合、エントリの絞り込みとして機能しないため、時分割検索による低消費電力化が得られ難くなる。   When a field containing a large amount of “Don't Care” bits is assigned to the first segment (sub-block) of time-division search, it does not function as an entry narrower. Is difficult to obtain.

また、ポート番号に関しては1024〜65335といったように特定の範囲をまとめて扱う場合ある。このようは範囲情報を含むルールセットに関してはレンジ展開アルゴリズムを用いて複数のエントリで一つのルールを表現する手法が用いられる。   Further, a specific range such as 1024 to 65335 may be collectively handled for port numbers. In this way, with respect to a rule set including range information, a method of expressing one rule with a plurality of entries using a range expansion algorithm is used.

このときポート番号以外のすべてのフィールドには同じデータがコピーされた状態となっている。   At this time, the same data is copied to all fields other than the port number.

したがって、検索メモリ8に、ルールセットを格納した場合にはエントリの絞り込みが有効に働かないフィールド領域が局所的に存在することになる。   Therefore, when a rule set is stored in the search memory 8, there are locally field areas where entry narrowing does not work effectively.

実施形態においては、時分割検索において、当該エントリの絞り込みが有効に働く可能性の高いフィールド領域を初段セグメント(サブブロック)に割り当てる。   In the embodiment, in the time division search, a field region that is highly likely to be effective for narrowing down the entry is assigned to the first segment (subblock).

検索メモリ8の初期化(設定)を行うに際し、CPU2は、検索メモリ8に格納する各ルールセットの解析処理を実行する。   When initializing (setting) the search memory 8, the CPU 2 executes an analysis process for each rule set stored in the search memory 8.

通常、各ルールセットはテーブル形式で保持されているが、各ルールテーブルは人間が管理しやすい形式で表現されている。したがって、各ルールテーブルを検索用のハードウェアに適した形式に変換する必要がある。   Normally, each rule set is held in a table format, but each rule table is expressed in a format that is easy for humans to manage. Therefore, it is necessary to convert each rule table into a format suitable for search hardware.

変換された各テーブルは、検索メモリ8の各ブロックに割り付けられ、設定レジスタ16のデータ幅やマスク設定、プロファイルレジスタ26の設定が行われる。   Each converted table is allocated to each block of the search memory 8, and the data width and mask setting of the setting register 16 and the setting of the profile register 26 are performed.

CPU2は、各ルールテーブルを検索ブロック10の単位に分割したサブテーブルに対してデータ解析を行う。   The CPU 2 performs data analysis on the sub-table obtained by dividing each rule table into units of the search block 10.

CPU2は、サブテーブルに対するデータ解析により各検索ブロック10において時分割検索に有効なフィールドを特定する。   The CPU 2 specifies a field that is effective for time-division search in each search block 10 by data analysis on the sub-table.

本例においては、検索ブロック10に含まれるTCAM装置12が、4つのサブブロックを有する場合について説明する。   In this example, a case where the TCAM device 12 included in the search block 10 has four sub-blocks will be described.

一例として、サブテーブルのエントリデータの長さが160ビットである場合、40ビットずつの4つのフィールドに分割する。   As an example, when the length of the entry data of the sub-table is 160 bits, it is divided into four fields of 40 bits each.

CPU2は、各検索ブロック10に格納するサブテーブルのうち4つのサブブロックにそれぞれ対応する4つのフィールドの中からいずれのフィールドが時分割検索に有効なフィールドかを特定する。   The CPU 2 specifies which of the four fields corresponding to the four sub-blocks among the sub-tables stored in each search block 10 is an effective field for the time-division search.

この点で、“ドントケア(Don't Care)”のビットが無いあるいは少ないフィールドを有効なフィールドとして特定する。   In this respect, a field having no or few “Don't Care” bits is specified as a valid field.

一例として、1番目〜4番目のフィールドのうち2番目のフィールドが有効なフィールドとして特定されるものとする。   As an example, it is assumed that the second field of the first to fourth fields is specified as a valid field.

この場合、CPU2は、当該解析結果に基づき検索ブロック10の設定レジスタ16に「01」を設定する。   In this case, the CPU 2 sets “01” in the setting register 16 of the search block 10 based on the analysis result.

これにより、設定レジスタ16に「01」が格納されている場合には、再配置制御信号生成部15は、制御信号S2を再配置回路17,18に出力する。   Thereby, when “01” is stored in the setting register 16, the rearrangement control signal generation unit 15 outputs the control signal S <b> 2 to the rearrangement circuits 17 and 18.

再配置回路17,18は、制御信号S2が入力された場合には、データ配列順序を変更する。   The rearrangement circuits 17 and 18 change the data arrangement order when the control signal S2 is input.

この場合、再配置回路17は、サブテーブルのエントリデータの2番目のフィールドと、1番目のフィールドとを入れ替えるデータ配列順序に変更する。   In this case, the rearrangement circuit 17 changes the data arrangement order so that the second field and the first field of the entry data in the sub-table are switched.

そして、当該変更されたデータ配列順序に従うサブテーブルが4つのサブブロックにそれぞれ格納される。すなわち、データ配列順序が変更されなかった場合には、1番目のサブブロックにサブテーブルの1番目のフィールドのデータが格納され、2番目のサブブロックにサブテーブルの2番目のフィールドが格納されるところ、データ配列順序を変更することで、1番目のサブブロックにサブテーブルの2番目のフィールドが格納され、2番目のサブブロックにサブテーブルの1番目のフィールドが格納されることになる。   Then, the sub-tables according to the changed data arrangement order are stored in the four sub-blocks, respectively. That is, when the data arrangement order is not changed, the data of the first field of the subtable is stored in the first subblock, and the second field of the subtable is stored in the second subblock. However, by changing the data arrangement order, the second field of the sub-table is stored in the first sub-block, and the first field of the sub-table is stored in the second sub-block.

上記設定が、各検索ブロック10毎に行なわれる。
したがって、図2に示される検索ブロック10−1〜10−nにおいて、それぞれ格納されるサブテーブルの解析結果に基づいて設定レジスタ16に格納される値はそれぞれ異なる場合がある。
The above setting is performed for each search block 10.
Therefore, in the search blocks 10-1 to 10-n shown in FIG. 2, the values stored in the setting register 16 may be different based on the analysis results of the stored subtables.

これにより、検索メモリ8の初期化(設定)が完了し、実際の転送処理、すなわちデータ書込処理が開始される。   Thereby, initialization (setting) of the search memory 8 is completed, and actual transfer processing, that is, data writing processing is started.

(検索メモリ8の検索について)
検索時においては、検索キー生成部29により検索キーが生成される。
(Searching the search memory 8)
At the time of search, the search key generation unit 29 generates a search key.

当該検索キーが各検索ブロック10に出力される。
各検索ブロック10においては、上記したように設定レジスタ16の値に基づいて、制御信号が生成される。
The search key is output to each search block 10.
In each search block 10, a control signal is generated based on the value of the setting register 16 as described above.

一例として、設定レジスタ16の値が「01」の場合には、再配置制御信号生成部15は、制御信号S2を再配置回路17,18に出力する。   As an example, when the value of the setting register 16 is “01”, the rearrangement control signal generation unit 15 outputs the control signal S2 to the rearrangement circuits 17 and 18.

再配置回路17,18は、制御信号S2が入力された場合には、データ配列順序を変更して、検索キーを出力する。   When the control signal S2 is input, the rearrangement circuits 17 and 18 change the data arrangement order and output a search key.

この場合、再配置回路17は、入力された検索キーを4つの検索キーSA〜SDに分割し、2番目の検索キーSBと1番目の検索キーSAとのデータ配列順序を変更する。   In this case, the rearrangement circuit 17 divides the input search key into four search keys SA to SD, and changes the data arrangement order of the second search key SB and the first search key SA.

そして、再配置回路17は、データ配列順序を変更した検索キーをそれぞれのセグメント12A〜12Dに出力する。すなわち、2番目の検索キーSBはセグメント12Aに出力され、1番目の検索キーSAはセグメント12Bに出力される。   Then, the rearrangement circuit 17 outputs the search key whose data arrangement order has been changed to each of the segments 12A to 12D. That is, the second search key SB is output to the segment 12A, and the first search key SA is output to the segment 12B.

これにより、本来であるならば第2の検索として実行されるサブテーブルの2番目のフィールドと、検索キーSBとの比較処理とが第1の検索として実行される。サブテーブルの2番目のフィールドは、“ドントケア(Don't Care)”のビットが無いあるいは少ない有効なフィールドとして特定されたものであり、不一致となり易い。   As a result, the comparison process between the second field of the sub-table, which is originally executed as the second search, and the search key SB is executed as the first search. The second field of the sub-table is specified as an effective field having no or few “Don't Care” bits, and is likely to be inconsistent.

したがって、不一致となった場合には、後段セグメントの不一致のエントリは検索対象とはならないため後段セグメントの消費電力を抑えることが可能である。   Accordingly, when there is a mismatch, the entry of the mismatch in the subsequent segment is not a search target, so that the power consumption of the subsequent segment can be suppressed.

なお、本例においては、サブテーブルの2番目のフィールドが有効なフィールドとして特定された場合について説明したが、特にこれに限られず、3番目、4番目のフィールドが有効なフィールドとして特定された場合についても同様に適用可能で有る。   In this example, the case where the second field of the sub-table is identified as a valid field has been described. However, the present invention is not limited to this, and the third and fourth fields are identified as valid fields. The same applies to.

図10は、検索ブロック10の検索のタイミングを説明する図である。
図10に示されるように、検索ブロック10は、クロックCLKに同期して動作する。
FIG. 10 is a diagram for explaining the search timing of the search block 10.
As shown in FIG. 10, the search block 10 operates in synchronization with the clock CLK.

クロックCLKに同期して再配置回路18は、時刻T1において検索キー(keyA)を取得する。そして、時刻T2において、設定レジスタ16から出力される制御信号に基づいて変更されたデータ配列順序に従う検索キー(keyB)をTCAM装置12に出力する。時刻T3において、TCAM装置12は、再配置回路18から出力された検索キー(keyB)の入力を受け付けて検索動作を実行する。   In synchronization with the clock CLK, the rearrangement circuit 18 acquires a search key (keyA) at time T1. At time T 2, the search key (keyB) according to the data arrangement order changed based on the control signal output from the setting register 16 is output to the TCAM device 12. At time T3, the TCAM device 12 receives the input of the search key (keyB) output from the rearrangement circuit 18 and executes the search operation.

次のクロックCLKの同期タイミングにおける時刻T4において、初段のセグメント12Aから結果が出力された場合が示されている。   A case is shown in which the result is output from the first-stage segment 12A at time T4 at the synchronization timing of the next clock CLK.

また、次のクロックCLKの同期タイミングにおける時刻T5において、次段のセグメント12Bから結果が出力された場合が示されている。   Further, the case where the result is output from the next segment 12B at time T5 at the synchronization timing of the next clock CLK is shown.

当該処理繰り返されて最終段のセグメント12Dからの検索結果が出力される。
(検索メモリ8の読出について)
検索メモリ8に格納されたエントリデータの読出時について説明する。
The process is repeated and the search result from the last segment 12D is output.
(Reading the search memory 8)
The reading of entry data stored in the search memory 8 will be described.

設定レジスタ16の値が「01」の場合には、再配置制御信号生成部15は、制御信号S2を再配置回路18に出力する。   When the value of the setting register 16 is “01”, the rearrangement control signal generation unit 15 outputs the control signal S2 to the rearrangement circuit 18.

再配置回路18は、制御信号S2が入力された場合には、データ配列順序を変更して、出力する。   When the control signal S2 is input, the rearrangement circuit 18 changes the data arrangement order and outputs it.

この場合、再配置回路18は、セグメント12A〜12Dからそれぞれ読み出されたエントリデータのデータ配列順序を変更する。   In this case, the rearrangement circuit 18 changes the data arrangement order of the entry data read from each of the segments 12A to 12D.

具体的には、セグメント12Aから読み出されたデータと、セグメント12Bから読み出されたデータとのデータ配列順序を変更する。セグメント12Bから読み出されたデータを1番目、セグメント12Bから読み出されたデータを2番目、セグメント12C,セグメント12Dから読み出されたデータを3番目、4番目として出力する。   Specifically, the data arrangement order of the data read from the segment 12A and the data read from the segment 12B is changed. The data read from the segment 12B is output as the first, the data read from the segment 12B is the second, and the data read from the segments 12C and 12D is output as the third and fourth.

当該方式により、検索ブロック10に格納する前のデータ配列順序変更前のデータに簡易に復元することが可能である。   By this method, it is possible to easily restore the data before changing the data arrangement order before storing in the search block 10.

したがって、実施形態においては、このため不一致となりやすいと思われるフィールドを初段セグメントに書き込まれるように設定レジスタ16を設定する事で、このような時分割検索の効果を最大化することが可能になる。   Therefore, in the embodiment, it is possible to maximize the effect of such a time division search by setting the setting register 16 so that a field that is likely to be inconsistent is written in the first-stage segment. .

(検索メモリ8のメンテナンスについて)
検索メモリ8のメンテナンス動作について説明する。
(Maintenance of search memory 8)
The maintenance operation of the search memory 8 will be described.

ネットワーク制御プロトコルによる自動更新やネットワーク管理者によるポリシーの変更など、ルールテーブルは様々な理由により実動作中に更新が行われる。具体的には、エントリの上書きや、新規追加が行われる。   The rule table is updated during actual operation for various reasons, such as automatic update by a network control protocol and policy change by a network administrator. Specifically, the entry is overwritten or newly added.

動作中に設定レジスタ16を書き換えることはできないため、ルールテーブルの更新によって最初のルールテーブルの解析内容と、最新のルールテーブルの情報の解析内容とに乖離が生じ、時分割検索による低消費電力効果が低下する可能性がある。   Since the setting register 16 cannot be rewritten during operation, there is a difference between the analysis content of the first rule table and the analysis content of the latest rule table information due to the update of the rule table. May be reduced.

実施形態においては、CPU2が検索メモリ8のメンテナンス処理を実行する場合について説明するが、特にCPU2に限られず、NPU等の転送制御回路4が実行するようにしても良いし、検索メモリ8にメンテナンス処理を実行するチップを内蔵する構成としても良い。   In the embodiment, the case where the CPU 2 executes the maintenance process of the search memory 8 will be described. However, the transfer control circuit 4 such as an NPU may be executed by the CPU 2 and the search memory 8 may be maintained. It is good also as a structure which incorporates the chip | tip which performs a process.

図11は、検索メモリ8のメンテナンス動作について説明する図である。
図11に示されるように、メンテナンス処理は、所定の時間経過あるいは、検索メモリ8に対する書込コマンドの発行回数等をトリガーとして実行する。ここでは、タイマー等により所定の時間経過により割り込みとしてトリガーが生成された場合が示されている。
FIG. 11 is a diagram for explaining the maintenance operation of the search memory 8.
As shown in FIG. 11, the maintenance process is executed with a predetermined time elapse or the number of write commands issued to the search memory 8 as a trigger. Here, a case where a trigger is generated as an interrupt after a predetermined time elapses by a timer or the like is shown.

次に、CPU2は、検索メモリ8の対象となる検索ブロック10、例えば検索ブロック10−1に格納されている最新のルールテーブルを読み出す(全エントリ読み出し)(1)。上記したように、検索ブロック10−1から読み出す際には、設定レジスタ16のレジスタ値に基づいて再配置回路18によりデータ配列順序を変更する。これにより、初期のデータ配列に復元され、後述する空きの検索ブロック10、例えば検索ブロック10−nへの書込データとしてそのまま利用することが可能である。   Next, the CPU 2 reads the latest rule table stored in the search block 10 that is the target of the search memory 8, for example, the search block 10-1 (read all entries) (1). As described above, when data is read from the search block 10-1, the rearrangement circuit 18 changes the data arrangement order based on the register value of the setting register 16. As a result, the data is restored to the initial data array, and can be used as it is as write data to an empty search block 10, which will be described later, for example, the search block 10-n.

次に、CPU2は、対象となる検索ブロック10−1から読み出した最新のルールテーブルを解析する処理を実行し、解析結果により設定レジスタ16に格納するレジスタ値に関する情報を生成する(2)。   Next, the CPU 2 executes a process of analyzing the latest rule table read from the target search block 10-1, and generates information related to the register value stored in the setting register 16 based on the analysis result (2).

そして、次に、CPU2は、現在の設定レジスタ16、すなわち、検索ブロック10−1の設定レジスタ16に格納されているレジスタ値と、生成したレジスタ値に関する情報とが同じか否かを確認する。   Next, the CPU 2 checks whether or not the current setting register 16, that is, the register value stored in the setting register 16 of the search block 10-1, is the same as the information related to the generated register value.

すなわち、検索ブロック10−1の設定レジスタ16のレジスタ値がエントリの絞り込みを有効に働かせることが可能なフィールド領域を指定しているか否かを判断する。時分割検索に有効なフィールドか否かを判断する。   That is, it is determined whether or not the register value of the setting register 16 of the search block 10-1 specifies a field area that can effectively narrow down entries. Determine whether the field is valid for time-division search.

CPU2は、生成したレジスタ値に関する情報が、検索ブロック10−1の設定レジスタ16に格納されているレジスタ値と異なると判断した場合には、当該生成したレジスタ値に関する情報を空きの検索ブロック10、すなわち検索ブロック10−nの設定レジスタ16に格納する(3)。   When the CPU 2 determines that the information about the generated register value is different from the register value stored in the setting register 16 of the search block 10-1, the CPU 2 uses the information about the generated register value as an empty search block 10, That is, it is stored in the setting register 16 of the search block 10-n (3).

そして、当該空きの検索ブロック10−nのTCAM装置12に元の検索ブロック10−1から取得した最新のルールテーブルの情報をコピーする(4)。   Then, the latest rule table information acquired from the original search block 10-1 is copied to the TCAM device 12 of the empty search block 10-n (4).

その際、検索ブロック10−nの再配置回路17,18は、格納した設定レジスタ16のレジスタ値に基づいて、データ配列順序を変更する。そして、上記したように空きの検索ブロック10−nの初段のセグメントに検索に有効なフィールドのデータを格納する。   At this time, the rearrangement circuits 17 and 18 of the search block 10-n change the data arrangement order based on the stored register value of the setting register 16. As described above, the field data effective for the search is stored in the first segment of the empty search block 10-n.

CPU2は、コピーが完了した場合に、プロファイルレジスタ26を設定し直し、検索となる元の対象となる検索ブロック10−1からコピー先となる検索ブロック10−nに差し替える(5)。   When the copying is completed, the CPU 2 resets the profile register 26 and replaces the search block 10-1 as the original target to be searched with the search block 10-n as the copy destination (5).

新しい検索ブロック10は時分割検索の低消費電力効果が最大化されているため、システム全体の低消費電力化に貢献する。   Since the new search block 10 maximizes the low power consumption effect of the time division search, it contributes to low power consumption of the entire system.

当該メンテナンス方式により、システム全体の動作を止めることなく消費電力を下げることが可能である。   With this maintenance method, it is possible to reduce power consumption without stopping the operation of the entire system.

また、検索メモリにはNetFlow/FIB/QoS/ACL等の性質の異なる様々なルールテーブルが書き込まれ、また前述の通りレンジ展開アルゴリズム等の処理が行われる。したがって、実際に検索ブロックに書き込まれるデータには偏りが生じやすい。このようなデータ構造に対して一様に時分割検索を実行すると、あるブロックに対しては時分割検索が極めて有効となり、別のあるブロックに対しては全く有効ではないという状況が発生する。   Further, various rule tables having different properties such as NetFlow / FIB / QoS / ACL are written in the search memory, and processing such as a range expansion algorithm is performed as described above. Therefore, the data actually written in the search block is likely to be biased. If a time division search is performed uniformly on such a data structure, a situation occurs in which the time division search is extremely effective for a certain block and not effective at all for another block.

特に、IPv6アドレスを用いたテーブルでは大きなドントケアの塊が生じやすく、この部分は検索対象のエントリの絞り込みには不適切であるため、時分割検索の初段セグメントに割り当てられた場合、時分割検索は全く効果がなくなる。   In particular, in a table using IPv6 addresses, a large don't care lump is likely to occur, and this portion is inappropriate for narrowing down the entries to be searched. Therefore, when assigned to the first segment of the time division search, the time division search is not performed. No effect at all.

実施形態に基づく方式を採用することにより、このようなブロック毎の偏りを無くすことが可能であり、結果として時分割検索による省電力効果を最大化することが可能となる。   By adopting the system based on the embodiment, it is possible to eliminate such a bias for each block, and as a result, it is possible to maximize the power saving effect by the time division search.

また、実施形態1に従う方式により、1つの検索キーから各検索ブロック毎に時分割検索に最適な検索キーを生成することが可能となるため、複数の検索命令を1回でまとめることが可能になり、スループットを向上させることが可能となる。   Further, the method according to the first embodiment makes it possible to generate a search key optimal for time-division search for each search block from one search key, so that a plurality of search commands can be collected at one time. Thus, the throughput can be improved.

また、TCAM装置のように消費電力の大きなデバイスでは、システムの熱設計、電源設計の観点から検索対象の検索ブロックを限定して検索操作を複数回に分割実行することがある。このようなケースにおいて消費電力を削減することは分割操作を無くすないしは減らすことにつながり、検索操作のスループット向上にも寄与する。   Further, in a device with high power consumption such as a TCAM device, a search operation may be divided into multiple times by limiting search blocks to be searched from the viewpoint of system thermal design and power supply design. In such a case, reducing the power consumption leads to elimination or reduction of the division operation, and contributes to the improvement of the throughput of the search operation.

(実施形態2)
実施形態2においても、エンドユーザーが作成したルールセットを検索メモリ8に適したテーブル形式に変換し、それをさらに細かい領域に分割して解析を行い、設定レジスタ16を設定する。
(Embodiment 2)
Also in the second embodiment, the rule set created by the end user is converted into a table format suitable for the search memory 8, and the rule set is further divided into smaller areas for analysis and setting the setting register 16.

上記の実施形態1においては、TCAM装置12の初段セグメントに検索に有効なフィールドの情報を格納する場合について説明した。   In the first embodiment described above, the case where the field information effective for the search is stored in the first segment of the TCAM device 12 has been described.

実施形態2においては、検索に有効なフィールドの情報として、ドントケアビットを含まない領域をBCAM(Binary Content Addressable Memory)装置に格納する。そして、残りの領域をTCAM装置に格納する。なお、本例においては、BCAM装置を用いる場合について説明するが、ASE(Algorithmic Search Engine :SRAMやFFのような記憶素子とツリー・ハッシュといった検索アルゴリズムを実現する論理回路とを組合せて検索を実現するもの)を用いる構成としても良い。   In the second embodiment, an area that does not include a don't care bit is stored in a BCAM (Binary Content Addressable Memory) device as information on a field effective for search. The remaining area is stored in the TCAM device. In this example, a case where a BCAM device is used will be described, but an ASE (Algorithmic Search Engine) is implemented by combining a storage element such as SRAM or FF and a logic circuit that implements a search algorithm such as a tree hash. May be used.

図12は、実施形態2に基づく検索ブロック10#の検索方式を説明する図である。
図12に示されるように、検索ブロック10#は、検索ブロック10と比較して、TCAM装置12の代わりに、BCAM装置12Pと、TCAM装置12Qとが設けられた点が異なる。その他の構成については、図9で説明したのと同様であるのでその詳細な説明については繰り返さない。
FIG. 12 is a diagram for explaining a search method of the search block 10 # based on the second embodiment.
As shown in FIG. 12, the search block 10 # differs from the search block 10 in that a BCAM device 12P and a TCAM device 12Q are provided instead of the TCAM device 12. Other configurations are the same as those described with reference to FIG. 9, and thus detailed description thereof will not be repeated.

図13は、BCAM装置12PのBCAMセルMC#の構成の一例を示す回路図である。   FIG. 13 is a circuit diagram showing an example of the configuration of the BCAM cell MC # of the BCAM device 12P.

図13を参照して、BCAMセルMC#は、1個のSRAMセル11と、データ比較部13#とを含む。SRAMセル11は、内部の記憶ノード対ND1,ND1_nに互いに相補となる(一方が“1”のとき他方が“0”となる)1ビット(bit)のデータを記憶する。   Referring to FIG. 13, BCAM cell MC # includes one SRAM cell 11 and a data comparison unit 13 #. The SRAM cell 11 stores 1-bit data that is complementary to the internal storage node pair ND1, ND1_n (one is “1” and the other is “0”).

BCAMセルは、ビット線対BL,BL_n、サーチ線対SL,SL_n、マッチ線ML、およびワード線WLXと接続される。ビット線対BL,BL_nは、列方向(Y方向)に延在し、列方向に配列された複数のBCAMセルによって共有される。サーチ線対SL,SL_nは、列方向(Y方向)に延在し、列方向に配列された複数のBCAMセルによって共有される。   The BCAM cell is connected to the bit line pair BL, BL_n, the search line pair SL, SL_n, the match line ML, and the word line WLX. The bit line pair BL, BL_n extends in the column direction (Y direction) and is shared by a plurality of BCAM cells arranged in the column direction. The search line pair SL, SL_n extends in the column direction (Y direction) and is shared by a plurality of BCAM cells arranged in the column direction.

マッチ線MLは、行方向(X方向)に延在し、行方向に配列された複数のBCAMセルによって共有される。ワード線WLXは、行方向(X方向)に延在し、行方向に配列された複数のBCAMセルによって共有される。   The match line ML extends in the row direction (X direction) and is shared by a plurality of BCAM cells arranged in the row direction. The word line WLX extends in the row direction (X direction) and is shared by a plurality of BCAM cells arranged in the row direction.

データ比較部13#は、データ比較部13と比較して、MOSトランジスタQ8,Q9を削除した点が異なる。その他の構成については、データ比較部13と同様であるのでその詳細な説明については繰り返さない。   Data comparison unit 13 # differs from data comparison unit 13 in that MOS transistors Q8 and Q9 are deleted. Since other configurations are the same as those of the data comparison unit 13, detailed description thereof will not be repeated.

実施形態2の検索ブロック10#において、第一の検索をBCAM装置で行い、第二の検索以降をTCAM装置で実行する。そして、検索結果を生成するという時分割動作を実行する。なお、BCAM装置には、ルールセットにおけるドントケアを含まないフィールドが格納される。   In the search block 10 # of the second embodiment, the first search is performed by the BCAM device, and the second and subsequent searches are performed by the TCAM device. And the time division operation | movement which produces | generates a search result is performed. The BCAM device stores a field that does not include don't care in the rule set.

設定レジスタ16の値としては、Binaryセグメントが時分割検索のBCAM装置による初段セグメントに割り当てられるように設定する。   The value of the setting register 16 is set so that the Binary segment is assigned to the first segment by the BCAM device for time division search.

再配置制御信号生成部15は、設定レジスタ16の値に基づいて制御信号を生成する。
再配置回路17,18は、再配置制御信号生成部15で生成された制御信号に基づいて検索キーのデータ配列順序を変更する。
The rearrangement control signal generation unit 15 generates a control signal based on the value of the setting register 16.
The rearrangement circuits 17 and 18 change the data arrangement order of the search keys based on the control signal generated by the rearrangement control signal generation unit 15.

なお、設定レジスタ16の値は、各セグメントをBCAM装置あるいはTCAM装置のどちらに割り当てるかの判断につながるものであるならばどのようなものでも良い。なお、ツリー検索のASEを用いる場合はLPM(Longest Prefix Match)も有効な情報として使えるし、具体的な検索順序を記述するようなものであっても良い。   The value of the setting register 16 may be any value as long as it leads to the determination of whether to allocate each segment to a BCAM device or a TCAM device. Note that when using an ASE for tree search, LPM (Longest Prefix Match) can also be used as effective information, or a specific search order may be described.

この場合、ASIC回路あるいはNPUから見て、検索メモリ8の内部構造を意識する必要はなく、各検索ブロックの設定レジスタのレジスタ値を適切に設定することにより自動的に検索テーブルの分割と再配置を実行することが可能である。   In this case, there is no need to be aware of the internal structure of the search memory 8 when viewed from the ASIC circuit or NPU, and the search table is automatically divided and rearranged by appropriately setting the register value of the setting register of each search block. Can be performed.

(検索メモリ8の検索について)
検索時においては、検索キー生成部29により検索キーが生成される。
(Searching the search memory 8)
At the time of search, the search key generation unit 29 generates a search key.

当該検索キーが各検索ブロック10#に出力される。
各検索ブロック10#に分配された検索キーは、設定レジスタ16の値に基づいて再配置回路17により検索キーのデータ配列順序が変更される。
The search key is output to each search block 10 #.
For the search keys distributed to each search block 10 #, the data arrangement order of the search keys is changed by the rearrangement circuit 17 based on the value of the setting register 16.

そして、再配置回路17によって再配置された後、BCAM装置12PとTCAM装置12Qとにそれぞれ分割されて出力される。   Then, after being rearranged by the rearrangement circuit 17, it is divided into a BCAM device 12P and a TCAM device 12Q, and outputted.

そして、BCAM装置12Pにおいて、受け取った検索キーとBCAM装置12Pに格納された各エントリデータとの比較動作が実行される。そして、BCAM装置12Pからその全ての比較結果が制御信号MLOUTとして出力される。   Then, in the BCAM device 12P, a comparison operation between the received search key and each entry data stored in the BCAM device 12P is executed. Then, all the comparison results are output from the BCAM device 12P as the control signal MLOUT.

TCAM装置12Qは、受け取った検索キーと、各エントリデータとの比較動作を制御信号MLOUTによって制御する。具体的には、実施形態1で説明したのと同様に、制御信号MLOUTをse端子と接続する。当該構成により、BCAM装置12Pでヒットしたエントリデータに対応するエントリデータのみ検索キーとの比較動作を実行することにより、TCAM装置12Qの消費電力を抑えることが可能となる。   The TCAM device 12Q controls the comparison operation between the received search key and each entry data by the control signal MLOUT. Specifically, as described in the first embodiment, the control signal MLOUT is connected to the se terminal. With this configuration, only the entry data corresponding to the entry data hit by the BCAM device 12P is compared with the search key, thereby reducing the power consumption of the TCAM device 12Q.

TCAM装置12Qにおいて、検索結果はプライオリティエンコーダに渡され、最終的な検索結果アドレスが生成される。   In the TCAM device 12Q, the search result is passed to the priority encoder, and a final search result address is generated.

当該構成により、ルールテーブルの一部をBCAM装置12Pに格納することにより、TCAM装置に全てのルールテーブルを格納する場合に比べて面積を縮小することが可能となる。   With this configuration, by storing a part of the rule table in the BCAM device 12P, the area can be reduced as compared with the case where all the rule tables are stored in the TCAM device.

上記の実施形態1では、設定レジスタを設定する際にルールテーブルを解析し、時分割検索におけるエントリの絞り込みに有効であると思われるフィールドを特定する必要があった。これにはドントケアのビットの数や一定範囲に含まれるデータのばらつきなどを解析する必要があるが、実施形態2においては、バイナリあるいはターナリの判定だけで解析することができるためメンテナンスにかかるCPU2の処理も削減することが可能である。   In the first embodiment, it is necessary to analyze a rule table when setting a setting register and specify a field that is considered to be effective for narrowing down entries in a time division search. For this purpose, it is necessary to analyze the number of don't care bits and the variation of data included in a certain range. However, in the second embodiment, analysis can be performed only by binary or tertiary determination. Processing can also be reduced.

(変形例)
上記の実施形態2においては、複数の異なる検索モジュールを接続し時分割検索を実施する場合について説明した。
(Modification)
In the second embodiment, the case where a plurality of different search modules are connected to perform time division search has been described.

一方で、第1の検索が出力されるまでの遅延に合わせて第2の検索に対する信号入力を遅延させる必要がある。   On the other hand, it is necessary to delay the signal input for the second search in accordance with the delay until the first search is output.

図14は、実施形態2の変形例に基づく検索ブロック10Aの検索方式を説明する図である。   FIG. 14 is a diagram illustrating a search method of the search block 10A based on the modification of the second embodiment.

図14に示されるように検索ブロック10Aは、検索ブロック10#と比較して、タイミング調整回路19を設ける。   As shown in FIG. 14, the search block 10A is provided with a timing adjustment circuit 19 as compared with the search block 10 #.

タイミング調整回路19は、再配置回路18と、データ保持に用いられるデータフリップフロップ回路DFF1〜DFF4と、セレクタSEL1〜SEL4とを含む。   The timing adjustment circuit 19 includes a rearrangement circuit 18, data flip-flop circuits DFF1 to DFF4 used for data retention, and selectors SEL1 to SEL4.

データフリップフロップ回路DFF1〜DFF4は、再配置回路18から出力された信号を保持する。   The data flip-flop circuits DFF1 to DFF4 hold the signal output from the rearrangement circuit 18.

セレクタSEL1〜SEL4は、再配置回路18から出力される信号と、データフリップフロップ回路DFF1〜DFF4とのいずれを選択して出力するかを切り替える。   The selectors SEL1 to SEL4 switch which of the signal output from the rearrangement circuit 18 and the data flip-flop circuits DFF1 to DFF4 is selected and output.

セレクタSEL1〜SEL4の選択を切り替える切替信号は、再配置制御信号生成部15#から出力される。   A switching signal for switching selection of the selectors SEL1 to SEL4 is output from the rearrangement control signal generation unit 15 #.

例えば、本例の場合には、セレクタSEL1〜SEL3は、TCAM装置12Qに検索キーを出力する構成であるためデータフリップフロップ回路DFF1〜DFF3からのデータを出力する。   For example, in this example, the selectors SEL1 to SEL3 output data from the data flip-flop circuits DFF1 to DFF3 because the selectors SEL1 to SEL3 are configured to output search keys to the TCAM device 12Q.

一方、セレクタSEL4は、BCAM装置12Pに検索キーを出力する構成であるためデータフリップフロップ回路DFF4からのデータではなく、再配置回路18からのデータをそのまま出力する。   On the other hand, since the selector SEL4 is configured to output a search key to the BCAM device 12P, it outputs the data from the rearrangement circuit 18 as it is, not the data from the data flip-flop circuit DFF4.

図15は、検索ブロック10Aの検索のタイミングを説明する図である。
図15に示されるように、検索ブロック10Aは、クロックCLKに同期して動作する。
FIG. 15 is a diagram for explaining the search timing of the search block 10A.
As shown in FIG. 15, the search block 10A operates in synchronization with the clock CLK.

クロックCLKに同期して再配置回路18は、時刻T10において検索キー(keyA)を取得する。そして、時刻T11において、設定レジスタ16から出力される制御信号に基づいて変更されたデータ配列順序に従う検索キー(keyB)をBCAM装置12Pに出力する。ここでは一例として、160ビット幅の検索キーが入力されて、40ビットの検索キーをBCAM装置12Pに出力し、残りの120ビットの検索キーをTCAM装置12Qに分割して出力する場合について説明する。   In synchronization with the clock CLK, the rearrangement circuit 18 acquires a search key (keyA) at time T10. At time T11, the search key (keyB) according to the data arrangement order changed based on the control signal output from the setting register 16 is output to the BCAM device 12P. Here, as an example, a case will be described in which a 160-bit search key is input, a 40-bit search key is output to the BCAM device 12P, and the remaining 120-bit search key is divided and output to the TCAM device 12Q. .

時刻T12において、BCAM装置12Pにおいて、再配置回路18から出力された検索キー(keyB)の入力を受け付けて検索動作を実行する。   At time T12, the BCAM device 12P receives the input of the search key (keyB) output from the rearrangement circuit 18 and executes the search operation.

そして、次のクロックCLKの同期タイミングにおける時刻T13において、BCAM装置12Pから結果が出力された場合が示されている。   A case is shown in which the result is output from the BCAM device 12P at time T13 at the synchronization timing of the next clock CLK.

そして、同様のタイミングにおける時刻T13において、データフリップフロップ回路DFF1〜3に保持されていた検索キー(keyC)をTCAM装置12Qに出力する。   Then, at time T13 at the same timing, the search key (keyC) held in the data flip-flop circuits DFF1 to DFF3 is output to the TCAM device 12Q.

本例においては、後段のセグメントであるTCAM装置12Qで使用する残りの120ビットの検索キーに関してはデータフリップフロップ回路DFFに一旦取り込まれるため1サイクル遅れてTCAM装置12Qに入力される。このためTCAM装置12Qは、検索キーの入力とBCAM装置12Pの検索結果の出力をほぼ同じタイミングで受け取ることが可能である。   In this example, the remaining 120-bit search key used in the TCAM device 12Q, which is the subsequent segment, is once taken into the data flip-flop circuit DFF, and is therefore input to the TCAM device 12Q with a delay of one cycle. Therefore, the TCAM device 12Q can receive the input of the search key and the output of the search result of the BCAM device 12P at substantially the same timing.

そして、時刻T14において、BCAM装置12Pからの結果に基づいて、検索キー(keyC)におけるTCAM装置12Qの検索動作を実行する。   At time T14, the search operation of the TCAM device 12Q with the search key (keyC) is executed based on the result from the BCAM device 12P.

次のクロックCLKの同期タイミングにおける時刻T15において、TCAM装置12Qから結果が出力された場合が示されている。   A case is shown in which the result is output from the TCAM device 12Q at time T15 at the synchronization timing of the next clock CLK.

以上、本開示を実施形態に基づき具体的に説明したが、本開示は、実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   As mentioned above, although this indication was concretely demonstrated based on embodiment, it cannot be overemphasized that this indication is not limited to embodiment, and can be variously changed in the range which does not deviate from the summary.

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 検索キー生成部。   DESCRIPTION OF SYMBOLS 1 Communication apparatus, 4 Transfer control circuit, 6 General-purpose memory, 8 Search memory, 10, 10A search block, 12 TCAM apparatus, 13 Data comparison part, 15 Relocation control signal generation part, 16 Setting register, 17, 18 Relocation circuit , 19 Timing adjustment circuit, 20 TCAM cell array, 21 Write driver, 22 Search line driver, 23 Match amplifier unit, 24 Control logic circuit, 25 Read circuit, 26 Profile register, 27 Data change unit, 28 Search result generation unit, 29 Search key generation unit.

Claims (9)

各々がメモリセルアレイを含む、N個のサブブロックと、
前記N個のサブブロックにそれぞれ対応して分割された1〜N番目のエントリデータのうちプリサーチ用のエントリデータの番号を指定するための設定レジスタと、
前記設定レジスタの値に基づいて入力されるサーチデータのデータ配列順序を変更するサーチデータ変更部とを備え、
前記N個のサブブロックのうちのプリサーチ用のサブブロックは、検索指示に従って、前記メモリセルアレイの行毎に格納されたエントリデータのうち、前記サーチデータ変更部により変更されたデータ配列順序に従うプリサーチ用データに一致するものを検索し、前記行毎に一致または不一致という検索結果を出力し、
前記N個のサブブロックのうちのポストサーチ用のサブブロックは、前記プリサーチ用のサブブロックの検索結果に基づいて、前記メモリセルアレイの行毎に格納されたエントリデータのうち、前記サーチデータのうちの前記プリサーチ用データ以外のポストサーチ用データに一致するものを検索し、前記行毎に一致または不一致という検索結果を出力する、半導体装置。
N sub-blocks each including a memory cell array;
A setting register for designating the number of entry data for pre-search among the 1st to Nth entry data divided in correspondence with the N sub-blocks;
A search data changing unit that changes the data arrangement order of the search data input based on the value of the setting register,
Of the N sub-blocks, the pre-search sub-block is pre-registered according to the data arrangement order of the entry data stored for each row of the memory cell array according to the search instruction. Search for data that matches the search data, and output a search result that matches or does not match for each row.
Of the N sub-blocks, a post-search sub-block is based on a search result of the pre-search sub-block, and among the entry data stored for each row of the memory cell array, A semiconductor device that searches for data that matches post search data other than the pre-search data, and outputs a search result that matches or does not match for each row.
前記設定レジスタの値に基づいて各前記N個のサブブロックから読み出された1〜N番目のエントリデータの配列順序を変更する読出エントリデータ変更部をさらに備える、請求項1記載の半導体装置。   The semiconductor device according to claim 1, further comprising a read entry data changing unit that changes an arrangement order of 1st to Nth entry data read from each of the N sub-blocks based on a value of the setting register. 前記読出エントリデータ変更部から、前記N個のサブブロックに格納された行毎に格納された1〜N番目のエントリデータの全てを所得し、データ解析に基づいて前記プリサーチ用のエントリデータの番号を再指定する解析部をさらに備える、請求項2記載の半導体装置。   The read entry data changing unit obtains all the 1st to Nth entry data stored for each row stored in the N sub-blocks, and based on the data analysis, The semiconductor device according to claim 2, further comprising an analysis unit that re-specifies the number. 前記設定レジスタの値に基づいて1〜N番目の書込用のエントリデータのデータ配列順序を変更する書込エントリデータ変更部をさらに備え、
各前記N個のサブブロックは、変更された順番に従うエントリデータを前記メモリアレイに書込む書込回路をさらに含む、請求項1記載の半導体装置。
A write entry data changing unit for changing the data arrangement order of the first to Nth write entry data based on the value of the setting register;
2. The semiconductor device according to claim 1, wherein each of the N sub-blocks further includes a write circuit that writes entry data in the changed order into the memory array.
前記サーチデータ変更部は、前記入力されるサーチデータのうちプリサーチ用データを前記プリサーチ用のサブブロックに出力するとともに、前記プリサーチ用データ以外のポストサーチ用データを保持する保持回路を含む、請求項1記載の半導体装置。   The search data changing unit includes a holding circuit that outputs presearch data out of the input search data to the presearch subblock and holds post search data other than the presearch data. The semiconductor device according to claim 1. 前記プリサーチ用のサブブロックのメモリセルアレイは、2値を保持して、前記プリサーチ用データとの間での一致または不一致の比較が可能なメモリセルを有し、前記ポストサーチ用のサブブロックのメモリセルアレイは、3値を保持して、前記ポストサーチ用データとの間での一致または不一致の比較が可能なメモリセルを有する、請求項1記載の半導体装置。   The memory cell array of the pre-search sub-block has memory cells that hold binary values and can be compared with the pre-search data for matching or non-matching, and for the post-search sub-block 2. The semiconductor device according to claim 1, wherein the memory cell array includes memory cells that hold three values and can be compared with the post-search data for matching or mismatching. 複数の検索ブロックを備え、
各前記検索ブロックは、
各々がメモリセルアレイを含む、N個のサブブロックと、
前記N個のサブブロックにそれぞれ対応して分割された1〜N番目のエントリデータのうちプリサーチ用のエントリデータの番号を指定するための設定レジスタと、
前記設定レジスタの値に基づいて前記複数の検索ブロックに対して共通に入力されるサーチデータのデータ配列順序を変更するサーチデータ変更部とを含み、
前記N個のサブブロックのうちのプリサーチ用のサブブロックは、検索指示に従って、前記メモリセルアレイの行毎に格納されたエントリデータのうち、前記サーチデータ変更部により変更されたデータ配列順序に従うプリサーチ用データに一致するものを検索し、前記行毎に一致または不一致という検索結果を出力し、
前記N個のサブブロックのうちのポストサーチ用のサブブロックは、前記プリサーチ用のサブブロックの検索結果に基づいて、前記メモリセルアレイの行毎に格納されたエントリデータのうち、前記サーチデータのうちの前記プリサーチ用データ以外のポストサーチ用データに一致するものを検索し、前記行毎に一致または不一致という検索結果を出力する、半導体装置。
With multiple search blocks,
Each said search block
N sub-blocks each including a memory cell array;
A setting register for designating the number of entry data for pre-search among the 1st to Nth entry data divided in correspondence with the N sub-blocks;
A search data changing unit that changes the data arrangement order of search data input in common to the plurality of search blocks based on the value of the setting register,
Of the N sub-blocks, the pre-search sub-block is pre-registered according to the data arrangement order of the entry data stored for each row of the memory cell array according to the search instruction. Search for data that matches the search data, and output a search result that matches or does not match for each row.
Of the N sub-blocks, a post-search sub-block is based on a search result of the pre-search sub-block, and among the entry data stored for each row of the memory cell array, A semiconductor device that searches for data that matches post search data other than the pre-search data, and outputs a search result that matches or does not match for each row.
各々が行列状に配置された連想メモリセルを含む第1および第2のサブブロックと、
書込データを構成する第1および第2の書込データがそれぞれ格納された前記第1および第2のサブブロックとの対応関係を指定した設定レジスタと、
前記設定レジスタの値に基づいて、入力された検索データのデータ配列順序を変更し、前記検索データを構成する前記第1および第2の検索キーをそれぞれ対応する前記第1および第2のサブブロックに出力するデータ配列順序変更部とを備え、
前記第1のサブブロックは、前記第1のサブブロックに入力された前記第1および第2の検索キーの一方による検索動作を行い、
前記第2のサブブロックは、前記第1のサブブロックの検索動作の結果に基づいて、前記第1および第2の検索キーの他方による検索動作を行う、半導体装置。
First and second sub-blocks each including an associative memory cell arranged in a matrix;
A setting register specifying a correspondence relationship with the first and second sub-blocks in which the first and second write data constituting the write data are stored,
The first and second sub-blocks corresponding to the first and second search keys constituting the search data by changing the data arrangement order of the input search data based on the value of the setting register A data array order changing unit for outputting to
The first sub-block performs a search operation using one of the first and second search keys input to the first sub-block,
The second sub-block performs a search operation using the other of the first and second search keys based on a result of the search operation of the first sub-block.
前記設定レジスタの値に応じて、前記第1および第2のサブブロックにそれぞれ格納されている前記第1および第2の書込データの配列順序を変更して読出データとして出力する読出データ配列順序変更部をさらに備える、請求項8に記載の半導体装置。   Read data arrangement order for changing the arrangement order of the first and second write data stored in the first and second sub-blocks and outputting them as read data in accordance with the value of the setting register The semiconductor device according to claim 8, further comprising a changing unit.
JP2017122246A 2017-06-22 2017-06-22 Semiconductor device Pending JP2019008845A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017122246A JP2019008845A (en) 2017-06-22 2017-06-22 Semiconductor device
US15/968,331 US10373684B2 (en) 2017-06-22 2018-05-01 Semiconductor device
CN201810552109.4A CN109119113A (en) 2017-06-22 2018-05-31 Semiconductor devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017122246A JP2019008845A (en) 2017-06-22 2017-06-22 Semiconductor device

Publications (1)

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

Family

ID=64692775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017122246A Pending JP2019008845A (en) 2017-06-22 2017-06-22 Semiconductor device

Country Status (3)

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

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102134315B1 (en) * 2018-12-11 2020-07-16 조선대학교산학협력단 A Non-Blocking Updateable Ternary Content-Addressable Memory on FPGA
JP2020201656A (en) * 2019-06-07 2020-12-17 ルネサスエレクトロニクス株式会社 Search circuit
TWI783767B (en) * 2021-11-02 2022-11-11 瑞昱半導體股份有限公司 Memory time-division control device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62293596A (en) 1986-06-12 1987-12-21 Matsushita Electric Ind Co Ltd Associative storage device
JP2003272386A (en) * 2002-03-20 2003-09-26 Mitsubishi Electric Corp Tcam cell, tcam cell array, address retrieving memory, retrieving device for network address
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 (en) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション Apparatus and method for processing sequence of data element
CN103270699B (en) * 2010-12-28 2016-08-10 国际商业机器公司 For determining the apparatus and method of search starting point
JP6441708B2 (en) * 2015-02-25 2018-12-19 ルネサスエレクトロニクス株式会社 Semiconductor memory device
JP6592310B2 (en) * 2015-09-01 2019-10-16 ルネサスエレクトロニクス株式会社 Semiconductor device
JP2018010505A (en) * 2016-07-14 2018-01-18 ルネサスエレクトロニクス株式会社 Retrieval device and semiconductor device
JP6659486B2 (en) * 2016-07-20 2020-03-04 ルネサスエレクトロニクス株式会社 Semiconductor device

Also Published As

Publication number Publication date
US20180374538A1 (en) 2018-12-27
CN109119113A (en) 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 (en) Semiconductor device
JP2007524946A (en) Content-based information retrieval architecture
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 (en) Ternary content addressable memory device for software defined networking and method thereof
JP2019114311A (en) Retrieval memory and retrieval system
Nourani et al. A reconfigurable cam architecture for network search engines
NV et al. High-Throughput CAM Based On Search and Shift Mechanism
JPWO2011016184A1 (en) Semiconductor memory device