JP4795740B2 - Semiconductor device - Google Patents
Semiconductor device Download PDFInfo
- Publication number
- JP4795740B2 JP4795740B2 JP2005208027A JP2005208027A JP4795740B2 JP 4795740 B2 JP4795740 B2 JP 4795740B2 JP 2005208027 A JP2005208027 A JP 2005208027A JP 2005208027 A JP2005208027 A JP 2005208027A JP 4795740 B2 JP4795740 B2 JP 4795740B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- search
- cam
- cell array
- group
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital 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/04—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital 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/04—Digital 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
- G11C15/043—Digital 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 using capacitive charge storage elements
Landscapes
- Dram (AREA)
Description
本発明は半導体装置に関し、特に、メモリセルに記憶された情報と入力された情報との比較を行うコンテント・アドレッサブル・メモリセル(CAMセル)を含む半導体装置において、様々なビット長の情報を記憶または比較するCAMセルアレイを備えた半導体装置に適用して有効な技術に関するものである。 The present invention relates to a semiconductor device, and in particular, stores information of various bit lengths in a semiconductor device including a content addressable memory cell (CAM cell) that compares information stored in a memory cell with input information. Alternatively, the present invention relates to a technique that is effective when applied to a semiconductor device having a CAM cell array to be compared.
情報端末機器の発達に伴い、音声認識処理や画像認識処理の需要が高まっているが、処理が高度化するに従ってパターン・マッチング処理の計算負荷が増大しており、その高速化が課題となっている。この課題をハードウェア的に解決する手段として、コンテント・アドレッサブル・メモリ(CAM)が注目されている。 With the development of information terminal equipment, the demand for voice recognition processing and image recognition processing is increasing. However, as the processing becomes more sophisticated, the computational load of pattern matching processing increases, and its speeding up is an issue. Yes. As a means for solving this problem in terms of hardware, attention has been paid to content addressable memory (CAM).
例えば、特許文献1には、CAM装置の構成概念図が記載されている。図2に示すようにmワード×nビット構成のCAMセルアレイと、書き込みデータ、読み出しデータ、検索データをそれぞれドライブするI/O回路、アドレス信号ADRをデコードしてCAMワードを指定するデコーダ、記憶データと検索データとが一致したCAMワードのアドレスをエンコードして優先順位に従って最優先ヒット・アドレスHHAを出力するプライオリティ・エンコーダとを備えている。
また、例えば、非特許文献1には、データ‘0’およびデータ‘1’に加えてマスク・データ‘X’(don’t care)の3値を記憶および比較するターナリ・コンテント・アドレッサブル・メモリ(TCAM)のメモリセル構成が示されている。図3に示すメモリセルにおいて、セル・データ1(Cell data1)およびセル・データ2(Cell data2)と呼ぶ記憶ノードのデータとサーチ・データ(SD)およびサーチ・データ・バー(SDB)を、4つのNMOSトランジスタT1、T2、T3、T4からなる比較回路を用いて比較する。そして、比較結果に応じた信号をマッチ線(matchline)に出力する。
For example,
Further, for example, Non-Patent
ここで、CAMでは、DRAMやSRAMで広く使われているワードに対応する言葉として、“エントリ”を用いるのが普通である。エントリは、各ワードに記憶されたデータを指す言葉であるので、本明細書では慣例に従って記憶データをエントリ、比較データを検索キーと呼ぶことにする。 Here, in CAM, “entry” is usually used as a word corresponding to a word widely used in DRAM and SRAM. Since an entry is a word indicating data stored in each word, in this specification, stored data is referred to as an entry, and comparison data is referred to as a search key in accordance with the convention.
本願発明者等は、本願に先立ち、CAMが記憶および比較するデータについて検討した。特に、CAMの適用先毎に処理するデータの特性を検討したところ、下記二つの問題等を見出した。 Prior to the present application, the inventors of the present application examined data stored and compared by the CAM. In particular, when the characteristics of data to be processed for each CAM application destination were examined, the following two problems were found.
第一の問題は、自然界から検知・検出するデータの情報量は広範囲に渡り、これらのデータを効率よく記憶する必要があると予測される点にある。TCAMは、検索キーにマスク・データを用いて比較するデータ領域を制限することにより、任意のビット長のデータを記憶または比較することができる。しかし、従来のTCAMは、セルアレイの構成が物理的あるいは論理的に固定されている。このため、その構成が情報量の大きなデータに合わせて設定されると、TCAMはメモリを無駄に消費してしまうので、メモリ容量の枯渇を容易に招く恐れがある。TCAMを用いた検索システムの場合、複数のTCAMを用いて容量を確保しようとすると、実装コストが嵩む恐れがある。このような問題を解決するためには、ビット長が可変のセルアレイ構成とすることが望ましい。 The first problem is that the amount of information detected and detected from the natural world covers a wide range, and it is predicted that it is necessary to store these data efficiently. The TCAM can store or compare data having an arbitrary bit length by restricting a data area to be compared by using mask data as a search key. However, in the conventional TCAM, the configuration of the cell array is physically or logically fixed. For this reason, if the configuration is set in accordance with data having a large amount of information, the TCAM consumes memory wastefully, which may easily lead to depletion of memory capacity. In the case of a search system using TCAM, if it is attempted to secure a capacity using a plurality of TCAMs, the mounting cost may increase. In order to solve such a problem, it is desirable to have a cell array configuration with a variable bit length.
第二の問題は、例えばストリーミング・データやコンピュータ・ウィルスのように検索キーの先頭位置が明示されないデータの検索動作が不得手である点にある。この問題を解決する手法は、次に述べるように二通り考えられる。第一の手法は、1ビットずつシフトさせたデータを予め複数記憶しておく方法である。この手法により、スループットを低下させることなく、一度に複数の比較動作を実行可能となる。しかし、この場合も、CAMのメモリ容量が枯渇してしまうという欠点がある。第二の方法は、CAMチップまたはモジュールの内部または外部にバッファを設け、検索キーを1ビットずつシフトさせながら入力して検索する手法である。この手法により、前述のメモリ容量の枯渇問題を回避することができるが、逆に検索サイクルが増加するのでスループットが低下してしまうという欠点がある。 The second problem is that, for example, the search operation for data in which the head position of the search key is not specified, such as streaming data or computer virus, is not good. There are two ways to solve this problem as described below. The first method is a method in which a plurality of data shifted by one bit is stored in advance. By this method, a plurality of comparison operations can be executed at a time without reducing the throughput. However, even in this case, there is a drawback that the memory capacity of the CAM is exhausted. The second method is a method in which a buffer is provided inside or outside the CAM chip or module, and a search key is input while being shifted bit by bit to perform a search. This method can avoid the above-mentioned memory capacity depletion problem, but conversely has a disadvantage that the throughput decreases because the search cycle increases.
そこで、本発明の目的は、このような問題等を鑑み、CAMを含む半導体装置のメモリ容量および検索速度を維持しつつ、様々なデータを柔軟に記憶および比較することができる高度な検索システムを実現することにある。 Therefore, in view of such problems and the like, an object of the present invention is to provide an advanced search system capable of flexibly storing and comparing various data while maintaining the memory capacity and search speed of a semiconductor device including a CAM. It is to be realized.
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。 The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。 Of the inventions disclosed in the present application, the outline of typical ones will be briefly described as follows.
本発明による半導体装置は、CAMセルアレイ、エントリ属性フラグ信号レジスタ、レイテンシ制御回路群、優先度決定回路群を備えるものである。エントリ属性フラグ信号レジスタは、エントリのビット長に応じた値に設定される。また、レイテンシ制御回路群はレジスタの設定値に応じて、各エントリにおける比較結果に応じた信号の論理演算とレイテンシの追加を行う。さらに、優先度決定回路群はレジスタの設定値に応じて、ビット長の長いエントリに対応する一致信号から順に出力する。以上の構成と動作により、本発明によるCAMは、様々なビット長のエントリを一つのCAMセルアレイに記憶して、ビット長の長い検索キーとの比較を行い、さらに、類似度の高いエントリに対応する一致信号から順に出力することが可能となる。 A semiconductor device according to the present invention includes a CAM cell array, an entry attribute flag signal register, a latency control circuit group, and a priority determination circuit group. The entry attribute flag signal register is set to a value corresponding to the bit length of the entry. In addition, the latency control circuit group performs signal logical operation and latency addition according to the comparison result in each entry in accordance with the set value of the register. Further, the priority determination circuit group sequentially outputs the matching signal corresponding to the entry having a long bit length according to the set value of the register. With the above configuration and operation, the CAM according to the present invention stores entries of various bit lengths in one CAM cell array, compares them with a search key having a long bit length, and further supports entries with high similarity. It is possible to output sequentially from the coincidence signal.
また、本発明による半導体装置は、複数のバンクを備え、さらに、CAMセルアレイとレイテンシ制御回路とを備えるものである。ここで、バンクは、記憶可能なエントリのビット長が異なる値にそれぞれ定められており、ビット長順にロウ・アドレス(行番地)がエントリに割り振られるように、バンクが配置される。また、レイテンシ制御回路はバンクに依らず、エントリ毎に同じ数のDフリップ・フロップを有するものである。以上の構成と動作により、本発明によるCAMは、様々なビット長のエントリの検索動作を行い、一致信号を同時に出力することができる。また、エントリの位置情報が一致信号の類似度を示すことから、一致信号の優先度決定動作を省くことができて、検索動作サイクルを短縮することが可能となる。 The semiconductor device according to the present invention includes a plurality of banks, and further includes a CAM cell array and a latency control circuit. Here, the banks are determined to have different bit lengths of entries that can be stored, and the banks are arranged so that row addresses (row addresses) are allocated to the entries in the bit length order. The latency control circuit has the same number of D flip-flops for each entry regardless of the bank. With the above configuration and operation, the CAM according to the present invention can search for entries having various bit lengths and simultaneously output a match signal. Further, since the position information of the entry indicates the similarity of the match signal, the priority determination operation for the match signal can be omitted, and the search operation cycle can be shortened.
さらに、本発明による半導体装置は、CAMセルアレイと検索キー・レジスタ群とを備えるものである。ここで、CAMセルアレイにおけるメモリセルは、一つのメモリ要素と複数の比較回路とで構成される。また、検索キー・レジスタ群は、シフト・レジスタ機能を有し、複数の検索キーを発生する。以上の構成と動作により、本発明によるCAMは、ストリーミング・データのように連続して入力されるデータから複数の検索キーを発生して、これらの検索動作を同時に行うことが可能となる。 Furthermore, the semiconductor device according to the present invention comprises a CAM cell array and a search key register group. Here, the memory cell in the CAM cell array is composed of one memory element and a plurality of comparison circuits. The search key register group has a shift register function and generates a plurality of search keys. With the above configuration and operation, the CAM according to the present invention can generate a plurality of search keys from continuously input data such as streaming data, and simultaneously perform these search operations.
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、CAMを備えた半導体装置の可用性向上又は機能性拡張を実現できる。 The effects obtained by typical ones of the inventions disclosed in the present application will be briefly described to improve availability or expand functionality of a semiconductor device including a CAM.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、実施の形態の各機能ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted. The circuit elements constituting each functional block of the embodiment are not particularly limited, but are formed on a semiconductor substrate such as single crystal silicon by a known integrated circuit technology such as a CMOS (complementary MOS transistor). .
なお、実施の形態では、MISFET(Metal Insulator Semiconductor Field Effect Transistor)の一例としてMOS(Metal Oxide Semiconductor)トランジスタを用いる。図面において、Pチャネル型MOSトランジスタ(PMOSトランジスタ)にはゲートに矢印の記号を付すことで、Nチャネル型MOSトランジスタ(NMOSトランジスタ)と区別することとする。図面にはMOSトランジスタの基板電位の接続は特に明記していないが、MOSトランジスタが正常動作可能な範囲であれば、その接続方法は特に限定しない。 Note that, in the embodiment, a MOS (Metal Oxide Semiconductor) transistor is used as an example of a MISFET (Metal Insulator Semiconductor Field Effect Transistor). In the drawing, a P-channel MOS transistor (PMOS transistor) is distinguished from an N-channel MOS transistor (NMOS transistor) by adding an arrow symbol to the gate. Although the connection of the substrate potential of the MOS transistor is not particularly specified in the drawing, the connection method is not particularly limited as long as the MOS transistor can operate normally.
(実施の形態1)
《CAMの全体構成》
まず、CAMの全体構成について説明する。図4は、本発明の実施の形態1の半導体装置において、それに含まれるCAMの要部ブロックの基本構成例を示すブロック図である。本発明によるCAMの特徴は、次の三つにある。第一の特徴は、ビット長の長いエントリを複数のワードを用いて記憶する点にある。第二の特徴は、ビット長の異なるエントリを同一のCAMセルアレイに予め記憶しておいてから、検索動作を行う点にある。第三の特徴は、ビット長の短いエントリの比較結果を、ビット長の長いエントリの比較が終わるまで一時的に保持すると共に、ビット長の長いエントリの一致結果を優先的に出力する点にある。本発明によるCAMは、CAMセルアレイCAMARY、サーチ線駆動回路群SDBK、ワード・ドライバ群WDBK、読み書き回路群RWBK、エントリ属性フラグ信号レジスタ群EAFRBK、レジスタ読み書き回路群RRWBK、マッチ判定回路群MDBK、レイテンシ制御回路群LYBK、優先度決定回路群PDCBK、プライオリティ・エンコーダPEで構成される。同図では、簡単のため検索動作に関連する信号が送受信される経路に注目しており、アドレス関連の回路ブロックであるロウ・デコーダや動作モードを指定するためのコマンド・デコーダなどは省略されている。
(Embodiment 1)
<< Overall configuration of CAM >>
First, the overall configuration of the CAM will be described. FIG. 4 is a block diagram showing a basic configuration example of a main block of a CAM included in the semiconductor device according to the first embodiment of the present invention. The CAM according to the present invention has the following three features. The first feature is that an entry having a long bit length is stored using a plurality of words. The second feature is that a search operation is performed after entries having different bit lengths are stored in advance in the same CAM cell array. The third feature is that the comparison result of the entry having the short bit length is temporarily held until the comparison of the entry having the long bit length is completed, and the matching result of the entry having the long bit length is preferentially output. . The CAM according to the present invention includes a CAM cell array CAMARY, a search line drive circuit group SDBK, a word driver group WDBK, a read / write circuit group RWBK, an entry attribute flag signal register group EAFRBK, a register read / write circuit group RRWBK, a match determination circuit group MDBK, and latency control. A circuit group LYBK, a priority determination circuit group PDCBK, and a priority encoder PE are included. In the figure, for the sake of simplicity, attention is paid to the path through which signals related to the search operation are transmitted and received, and the row decoder, which is an address-related circuit block, and the command decoder for specifying the operation mode are omitted. Yes.
CAMセルアレイCAMARYは、例えば図3に示したような公知の複数のメモリセルがmワード(行)×nビット(列)の行列状に配置された構成である。CAMセルアレイCAMARYは、ワード線群WLBS1を介してワード・ドライバ群WDBKと接続され、書き込み動作において選択された一本のワード線に接続されたメモリセルに、読み書き制御回路群RWBKからビット線群BLBSを介してデータが書き込まれる。あるいは、読み出し動作において、上述のメモリセルに記憶されたデータが、ビット線群BLBSから読み書き制御回路群RWBKを介して読み出される。また、CAMセルアレイCAMARYは、サーチ線群SLBSを介してサーチ線駆動回路群SDBKと接続され、検索動作において検索キーが入力される。さらに、CAMセルアレイCAMARYは、マッチ線群MLBSを介してマッチ判定回路群MDBKと接続され、比較結果に応じてエントリ毎のマッチ線に発生された信号がマッチ判定回路群MDBKにおいて弁別される。 The CAM cell array CAMARY has a configuration in which, for example, a plurality of known memory cells as shown in FIG. 3 are arranged in a matrix of m words (rows) × n bits (columns). The CAM cell array CAMARY is connected to the word driver group WDBK via the word line group WLBS1, and is connected to the memory cell connected to one word line selected in the write operation from the read / write control circuit group RWBK to the bit line group BLBS. The data is written via Alternatively, in the read operation, the data stored in the memory cell is read from the bit line group BLBS via the read / write control circuit group RWBK. The CAM cell array CAMARY is connected to the search line drive circuit group SDBK via the search line group SLBS, and a search key is input in the search operation. Further, the CAM cell array CAMARY is connected to the match determination circuit group MDBK via the match line group MLBS, and a signal generated on the match line for each entry is discriminated in the match determination circuit group MDBK according to the comparison result.
エントリ属性フラグ信号レジスタ群EAFRBKは、複数のワード間に跨って記憶されたエントリに関する情報を格納するためのレジスタで構成される。詳細は後述するが、CAMセルアレイCAMARYと同様にワード線群WLBS2を介してワード・ドライバ群WDBKに接続されると共に、レジスタ・ビット群RBLBSを介してレジスタ読み書き検索回路群RRWBKに接続されて、レジスタ値が設定される。 The entry attribute flag signal register group EAFRBK is composed of registers for storing information related to entries stored across a plurality of words. As will be described in detail later, similarly to the CAM cell array CAMARY, it is connected to the word driver group WDBK via the word line group WLBS2, and to the register read / write search circuit group RRWBK via the register bit group RBLBS. Value is set.
レイテンシ制御回路群LYBKは、時分割入力される検索キーと様々な長さのエントリとの検索動作において、比較結果がヒット線群HTBS2に出力されるまでの時間が一定となるように調整する回路ブロックである。詳細は後述するが、マッチ判定回路群MDBKで発生されたワード毎の一致/不一致信号をヒット線群HTBS1を介して受信し、さらに、エントリ属性フラグ信号レジスタ群EAFRBKが格納する情報をエントリ属性フラグ信号群EAFBSを介して受信する。これらの信号を基に、比較結果に応じた信号をエントリ毎にヒット線群HTBS2に出力して、さらに優先度決定回路群PDCBKに送信する。同時に、複数のエントリ長フラグ信号をエントリ長フラグ信号群ELBSを介して優先度決定回路群PDCBKに出力する。 The latency control circuit group LYBK adjusts the time until a comparison result is output to the hit line group HTBS2 in a search operation between a search key input in a time-sharing manner and entries of various lengths. It is a block. Although details will be described later, a match / mismatch signal for each word generated by the match determination circuit group MDBK is received via the hit line group HTBS1, and information stored in the entry attribute flag signal register group EAFRBK is further stored in the entry attribute flag. Receive via signal group EAFBS. Based on these signals, a signal corresponding to the comparison result is output to the hit line group HTBS2 for each entry, and further transmitted to the priority determination circuit group PDCBK. At the same time, a plurality of entry length flag signals are output to the priority determination circuit group PDCBK via the entry length flag signal group ELBS.
図5は、図4に示したCAMセルアレイCAMARY、マッチ判定回路群MDBK、エントリ長制御レジスタ群ELRBKのそれぞれについて、第i行(i=1、2、…、m)のワードに対応する構成例を模式的に示している。同図では、簡単のため検索動作に関係する信号に注目しており、ワード線やビット線などは省略されている。 FIG. 5 shows a configuration example corresponding to the word in the i-th row (i = 1, 2,..., M) for each of the CAM cell array CAMARY, the match determination circuit group MDBK, and the entry length control register group ELRBK shown in FIG. Is schematically shown. In the figure, for simplicity, attention is paid to signals related to the search operation, and word lines, bit lines, and the like are omitted.
第i行におけるCAMセルアレイ要素PWMEi(i=1、2、…、m)は、n個のメモリセルMCij(j=1、2、…、n)で構成される。各メモリセルは対応するサーチ線SLj、SLBj(j=1、2、…、n)を介して入力された検索キーを受信して、記憶しているエントリと比較を行い、その結果を図4に示したマッチ線群MLBSの構成要素であるマッチ線MLiに出力する。ここで、サーチ線SLj、SLBjは、サーチ線群SLBSの構成要素である。 The CAM cell array element PWMEi (i = 1, 2,..., M) in the i-th row is composed of n memory cells MCij (j = 1, 2,..., N). Each memory cell receives the search key input via the corresponding search line SLj, SLBj (j = 1, 2,..., N), compares it with the stored entry, and shows the result as shown in FIG. Are output to the match line MLi which is a component of the match line group MLBS shown in FIG. Here, the search lines SLj and SLBj are components of the search line group SLBS.
第i行におけるマッチ判定回路要素PWMEi(i=1、2、…、m)は、マッチ判定回路MDi(i=1、2、…、m)とラッチLAi(i=1、2、…、m)で構成される。マッチ判定回路MDiは対応するマッチ線MLiに発生された微小信号を弁別して、エントリと検索キーとの比較結果に応じた信号電圧をラッチLAiに出力する。ラッチLAiはラッチ制御信号φ1に応じて比較結果を受信して、一時的に保存する。 The match determination circuit element PWMEi (i = 1, 2,..., M) in the i-th row includes the match determination circuit MDi (i = 1, 2,..., M) and the latch LAi (i = 1, 2,..., M). ). The match determination circuit MDi discriminates a minute signal generated on the corresponding match line MLi, and outputs a signal voltage corresponding to the comparison result between the entry and the search key to the latch LAi. The latch LAi receives the comparison result according to the latch control signal φ1 and temporarily stores it.
第i行におけるエントリ制御レジスタ要素PWREi(i=1、2、…、m)は、複数のレジスタで構成される。ここでは、ビット長が3n(すなわち、3ワード長)のエントリまで記憶および検索が可能なCAMセルアレイを仮定しており、二つのレジスタRGi1、RGi2(i=1、2、…、m)で構成される例が示されている。エントリ属性フラグ信号EAFi1、EAFi2(i=1、2、…、m)は、図4に示したエントリ属性フラグ信号群EAFBSの構成要素であり、レジスタRGi1、RGi2が格納する情報に応じた電圧に駆動される。1ワード長のエントリを第i行に記憶する場合、例えば図6に示すように、エントリ属性フラグ信号EAFi2、EAFi1の論理値を“0”、“1”にそれぞれ設定する。また、2ワード長のエントリを第i行から第(i+1)行に渡って記憶する場合、例えば図7に示すように、1行目のエントリ属性フラグ信号EAFi2、EAFi1の論理値を“1”、“1”、2行目のエントリ属性フラグ信号EAF(i+1)2、EAF(i+1)1の論理値を“1”、“0”にそれぞれ設定する。さらに、3ワード長のエントリを第i行から第(i+2)行に渡って記憶する場合、例えば図8に示すように、1行目のエントリ属性フラグ信号EAFi2、EAFi1の論理値を“1”、“1”、2行目のエントリ属性フラグ信号EAF(i+1)2、EAF(i+1)1の論理値を“1”、“1” 、3行目のエントリ属性フラグ信号、EAF(i+2)2、EAF(i+2)1の論理値を“0”、“0”にそれぞれ設定する。ここで、論理値“1”は、例えば電源電圧VDDのようなハイレベル、論理値“0”は、接地電圧VSSのようなロウレベルである。本実施の形態によるCAMは、前述したエントリ属性フラグ信号を用いてワード間の関係付けを行いながらCAMセルアレイCAMARYのビット幅よりも広いエントリを記憶すると共に、検索動作時にエントリ毎に発生される一致信号の出力までに要する時間、すなわちレイテンシをエントリ長によらず一定に保つ。以下では、この点に注目しながら、本実施の形態によるCAMに固有のレイテンシ制御回路群LYBKと優先度決定回路群PDCBKの構成および動作を、詳細に説明する。
《レイテンシ制御回路群》
図9は、図4に示したレイテンシ制御回路群LYBKについて、第i行(i=1、2、…、m)におけるレイテンシ制御回路要素PWLYEiの構成例を示している。本回路要素は、多分割エントリ結合回路MECMB、レイテンシ制御デコーダLYDEC、レイテンシ選択ゲートLYSG、レイテンシ調整回路LYAJTで構成される。本回路の特徴は、次の二つにある。第一の特徴は、多分割エントリ結合回路MECMBを用いて、複数行に跨って記憶しているエントリの比較結果に論理積演算を施し、ビット長の長いエントリの検索結果を発生する点にある。第二の特徴は、レイテンシ調整回路LYAJTを用いて、比較結果をヒット信号群HTBS2に出力するまでのレイテンシをエントリのビット長に依らず一定にすることにある。
The entry control register element PWREi (i = 1, 2,..., M) in the i-th row is composed of a plurality of registers. Here, it is assumed that the CAM cell array can store and search up to an entry having a bit length of 3n (that is, 3 word length), and is composed of two registers RGi1, RGi2 (i = 1, 2,..., M). An example to be shown is shown. The entry attribute flag signals EAFi1, EAFi2 (i = 1, 2,..., M) are components of the entry attribute flag signal group EAFBS shown in FIG. 4, and are set to voltages according to information stored in the registers RGi1, RGi2. Driven. When storing an entry of 1 word length in the i-th row, for example, as shown in FIG. 6, the logical values of the entry attribute flag signals EAFi2 and EAFi1 are set to “0” and “1”, respectively. Further, when storing an entry having a 2-word length from the i-th row to the (i + 1) -th row, for example, as shown in FIG. 7, the logical values of the entry attribute flag signals EAFi2 and EAFi1 in the first row are set to “1”. , “1”, the logical values of the entry attribute flag signals EAF (i + 1) 2 and EAF (i + 1) 1 in the second row are set to “1” and “0”, respectively. Further, when storing an entry of 3 word length from the i-th row to the (i + 2) -th row, as shown in FIG. 8, for example, the logical values of the entry attribute flag signals EAFi2 and EAFi1 in the first row are set to “1” , “1”, the logical values of the entry attribute flag signals EAF (i + 1) 2 and EAF (i + 1) 1 in the second row are “1” and “1”, the entry attribute flag signals in the third row, EAF (i + 2) 2 , EAF (i + 2) 1 logical values are set to “0” and “0”, respectively. Here, the logical value “1” is a high level such as the power supply voltage VDD, and the logical value “0” is a low level such as the ground voltage VSS. The CAM according to the present embodiment stores an entry wider than the bit width of the CAM cell array CAMARY while associating words using the above-described entry attribute flag signal, and matches generated for each entry during a search operation. The time required until the signal is output, that is, the latency is kept constant regardless of the entry length. Hereinafter, the configuration and operation of the latency control circuit group LYBK and the priority determination circuit group PDCBK specific to the CAM according to the present embodiment will be described in detail while paying attention to this point.
《Latency control circuit group》
FIG. 9 shows a configuration example of the latency control circuit element PWLYEi in the i-th row (i = 1, 2,..., M) for the latency control circuit group LYBK shown in FIG. This circuit element includes a multi-division entry combination circuit MEMMB, a latency control decoder LYDEC, a latency selection gate LYSG, and a latency adjustment circuit LYAJT. This circuit has the following two features. The first feature is that, using the multi-partition entry combination circuit MEMMB, a logical product operation is performed on the comparison result of entries stored across a plurality of rows, and a search result of an entry having a long bit length is generated. . The second feature is that the latency until the comparison result is output to the hit signal group HTBS2 is made constant regardless of the bit length of the entry by using the latency adjustment circuit LYAJT.
多分割エントリ結合回路MECMBは、NAND回路ND61とインバータ回路IV61が従属接続された構成である。ヒット線HT1iとHTME(i−1)との論理積演算を行った結果に応じた信号をヒット線HTCMBiに発生して、レイテンシ選択ゲートLYSGに出力する。ここで、ヒット線HTME(i−1)には、第(i−1)行に記憶されているエントリの比較結果に応じた電圧信号が発生される。但し、デフォルトの論理値は、後述するレイテンシ選択ゲートLYSGの説明から明らかになるように、“1”である。 The multi-divided entry coupling circuit MEMMB has a configuration in which a NAND circuit ND61 and an inverter circuit IV61 are cascade-connected. A signal corresponding to the result of the logical product operation of the hit lines HT1i and HTME (i-1) is generated on the hit line HTCMBi and output to the latency selection gate LYSG. Here, a voltage signal corresponding to the comparison result of the entries stored in the (i-1) th row is generated on the hit line HTME (i-1). However, the default logical value is “1”, as will be apparent from the description of the latency selection gate LYSG described later.
レイテンシ選択デコーダLYDECは、図5に示したエントリ制御レジスタ要素が保持する値、すなわちエントリのビット長に応じて、ヒット線HT1iおよびHTCMBiに発生された信号の転送経路を選択するためのデコーダである。同図では、図5に示したエントリ制御レジスタ要素の構成に対応して、エントリ属性フラグ信号EAFi2、EAFi1を入力信号とする2ビット・デコーダの構成例が示されている。インバータ回路IV66、IV67は、エントリ属性フラグ信号EAFi1、EAFi2の反転信号EAFBi1、EAFBi2をそれぞれ出力する。これらの信号から、NAND回路ND62、ND63、ND64、ND65とインバータ回路IV62、IV63、IV64、IV65を用いて相補のエントリ長フラグ信号SWETi、SWEBi、DWETi、DWEBi、TWETi、TWEBi、METi、MEBi(i=1、2、…、m)をそれぞれ発生する。図10は、レイテンシ選択デコーダLYDECの真理値表である。 The latency selection decoder LYDEC is a decoder for selecting a transfer path of signals generated on the hit lines HT1i and HTCMBi according to the value held by the entry control register element shown in FIG. 5, that is, the bit length of the entry. . In the figure, a configuration example of a 2-bit decoder using the entry attribute flag signals EAFi2 and EAFi1 as input signals corresponding to the configuration of the entry control register element shown in FIG. 5 is shown. Inverter circuits IV66 and IV67 output inversion signals EAFBi1 and EAFBi2 of entry attribute flag signals EAFi1 and EAFi2, respectively. From these signals, complementary entry length flag signals SWETi, SWEBi, DWETi, DWEBi, TWETi, TWEBi, METi, MEBi (i) using NAND circuits ND62, ND63, ND64, ND65 and inverter circuits IV62, IV63, IV64, IV65. = 1, 2,..., M) respectively. FIG. 10 is a truth table of the latency selection decoder LYDEC.
レイテンシ選択ゲートLYSGは、前述したレイテンシ選択デコーダLYDECの出力信号に応じて、ヒット線HT1iおよびHTCMB1iに発生された信号を後述するレイテンシ調整回路LYAJTに転送するスイッチング回路である。同図では、レイテンシ選択デコーダLYDECの構成に対応して、四つの転送経路へ通じる回路の構成例が示されている。第一の転送経路では、エントリ長フラグ信号SWETi、SWEBiがゲート端子にそれぞれ入力されたCMOS伝達ゲートCTG61を介して、ヒット線HT1iがヒット線HT11iに接続されている。ヒット線HT11iは、また、エントリ長フラグ信号SWECTi、SWEBiに応じてCMOS伝達ゲートCTG62を介して接地される。第二の転送経路では、エントリ長フラグ信号DWETi、DWEBiがゲート端子にそれぞれ入力されたCMOS伝達ゲートCTG63を介して、ヒット線HTCMBiがヒット線HT12iに接続されている。ヒット線HT12iは、また、エントリ長フラグ信号DWETi、DWEBiに応じてCMOS伝達ゲートCTG64を介して接地される。第三の転送経路では、エントリ長フラグ信号TWETi、TWEBiがゲート端子にそれぞれ入力されたCMOS伝達ゲートCTG65を介して、ヒット線HTCMBiがヒット線HT13iに接続されている。ヒット線HT13iは、また、エントリ長フラグ信号TWETi、TWEBiに応じてCMOS伝達ゲートCTG66を介して接地される。第四の転送経路では、エントリ長フラグ信号METi、MEBiがゲート端子にそれぞれ入力されたCMOS伝達ゲートCTG67を介して、ヒット線HTCMBiがヒット線HT14iに接続されている。ヒット線HT14iは、また、エントリ長フラグ信号DETi、DEBiに応じてCMOS伝達ゲートCTG68を介して電源電圧VDD給電端子に接続される。 The latency selection gate LYSG is a switching circuit that transfers signals generated on the hit lines HT1i and HTCMB1i to a latency adjustment circuit LYAJT, which will be described later, according to the output signal of the latency selection decoder LYDEC. In the figure, a configuration example of a circuit that leads to four transfer paths is shown corresponding to the configuration of the latency selection decoder LYDEC. In the first transfer path, the hit line HT1i is connected to the hit line HT11i through the CMOS transmission gate CTG61 to which the entry length flag signals SWETi and SWEBi are respectively input to the gate terminals. The hit line HT11i is also grounded via the CMOS transmission gate CTG62 in response to the entry length flag signals SWECTi and SWEBi. In the second transfer path, the hit line HTCMBi is connected to the hit line HT12i via the CMOS transmission gate CTG63 to which the entry length flag signals DWETi and DWEBi are respectively input to the gate terminals. Hit line HT12i is also grounded via CMOS transmission gate CTG64 in response to entry length flag signals DWETi and DWEBi. In the third transfer path, the hit line HTCMBi is connected to the hit line HT13i via a CMOS transmission gate CTG65 to which entry length flag signals TWETi and TWEBi are respectively input to the gate terminals. The hit line HT13i is also grounded via the CMOS transmission gate CTG66 in response to the entry length flag signals TWETi and TWEBi. In the fourth transfer path, the hit line HTCMBi is connected to the hit line HT14i via the CMOS transmission gate CTG67 to which the entry length flag signals METi and MEBi are respectively input to the gate terminals. The hit line HT14i is also connected to the power supply voltage VDD power supply terminal via the CMOS transmission gate CTG68 in accordance with the entry length flag signals DETi and DEBi.
レイテンシ調整回路LYAJTは、前述したレイテンシ選択ゲートLYSGの出力信号を一定期間保持する回路である。同図では、図4および図5に示したCAMセルアレイCAMARYが検索することが出来るエントリの最大ワード長の値である3(すなわち、最大ビット長が3n)に対応して、レイテンシを3サイクルに制御する回路の構成例が示されている。Dフリップ・フロップDFF61、DFF62は、NOR回路NR61とインバータ回路IV68を介して従属接続される。Dフリップ・フロップDFF61の入力端子Dにヒット線HT11i、NOR回路NR61の他方の入力端子にヒット線HT12iをそれぞれ接続する。Dフリップ・フロップDFF62の出力端子QをNOR回路NR62の一方の入力端子、ヒット線HT13iを他方の端子に接続する。NOR回路NR62の出力信号をインバータ回路IV69で反転した信号をヒット線HT2iに出力する。ヒット線HT14iをDフリップ・フロップDFF63の入力端子Dに接続して、その出力端子をヒット線HTME1Fiに接続する。以上の構成における回路動作を、エントリの属性を考慮しながら次に説明する。 The latency adjustment circuit LYAJT is a circuit that holds the output signal of the above-described latency selection gate LYSG for a certain period. In the figure, the latency is set to 3 cycles corresponding to 3 (that is, the maximum bit length is 3n) which is the maximum word length value of the entries that can be searched by the CAM cell array CAMARY shown in FIGS. A configuration example of a circuit to be controlled is shown. The D flip-flops DFF61 and DFF62 are cascade-connected through the NOR circuit NR61 and the inverter circuit IV68. Hit line HT11i is connected to input terminal D of D flip-flop DFF61, and hit line HT12i is connected to the other input terminal of NOR circuit NR61. The output terminal Q of the D flip-flop DFF62 is connected to one input terminal of the NOR circuit NR62, and the hit line HT13i is connected to the other terminal. A signal obtained by inverting the output signal of the NOR circuit NR62 by the inverter circuit IV69 is output to the hit line HT2i. Hit line HT14i is connected to input terminal D of D flip-flop DFF63, and its output terminal is connected to hit line HTME1Fi. The circuit operation in the above configuration will be described next in consideration of entry attributes.
まず、第i行に1ワード長のエントリを記憶する場合、エントリ属性フラグ信号はEAFi2=“0”、EAFi1=“1”であるので、第一の経路が選択される。CMOS伝達ゲートCTG62が遮断されて、CMOS伝達ゲートCTG61が導通することにより、第i行のエントリの比較結果に応じてヒット線HT1iに発生された信号は2段のDフリップ・フロップDFF61、DFF62を介して、検索動作が行われた2サイクル後にヒット線HT2iへ出力される。なお、複数のワードに跨って記憶されるエントリを記憶する場合、エントリ長フラグ信号SWETi、SWEBiの論理値は“0”、“1”とそれぞれなるので、CMOS伝達ゲートCTG61が遮断されて、CMOS伝達ゲートCTG62が導通される。したがって、ヒット線HT11iは論理値“0”に保持される。 First, when storing an entry of 1 word length in the i-th row, the entry attribute flag signal is EAFi2 = "0" and EAFi1 = "1", so the first path is selected. When the CMOS transmission gate CTG62 is cut off and the CMOS transmission gate CTG61 is turned on, a signal generated on the hit line HT1i according to the comparison result of the entry in the i-th row passes through two stages of D flip-flops DFF61 and DFF62. Thus, the data is output to the hit line HT2i two cycles after the search operation is performed. When storing entries stored across a plurality of words, the logical values of the entry length flag signals SWETi and SWEBi are “0” and “1”, respectively, so that the CMOS transmission gate CTG 61 is cut off and the CMOS The transmission gate CTG62 is turned on. Therefore, the hit line HT11i is held at the logical value “0”.
次に、第i行に2ワード長のエントリの1行目を記憶する場合、エントリ属性フラグ信号はEAFi2=“1”、EAFi1=“1”であるので、第四の経路が選択される。CMOS伝達ゲートCTG68が遮断されて、CMOS伝達ゲートCTG67が導通することにより、第i行のエントリの比較結果に応じてヒット線HT1iに発生された信号は、Dフリップ・フロップDFF63を介してヒット線HTMEi、すなわち、第(i+1)行目の回路ブロックへ転送される。なお、3ワード長のエントリの1行目または2行目を記憶する場合も、第i行のエントリの比較結果に応じた信号は、同様の経路を介してヒット線HTMEiへ転送される。また、上記以外のエントリを記憶する場合は、エントリ長フラグ信号MWETi、MWEBiの論理値は“0”、“1”とそれぞれなるので、CMOS伝達ゲートCTG67が遮断されて、CMOS伝達ゲートCTG68が導通される。したがって、ヒット線HT14i、すなわちヒット線HTME1iは論理値“1”に保持される。この状態によって、前述したように多分割エントリ結合回路MECMBの一方の入力信号であるヒット信号HTMEiが、論理値“1”にデフォルトで設定される。 Next, when storing the first row of an entry of 2 words in the i-th row, the entry attribute flag signal is EAFi2 = "1" and EAFi1 = "1", so the fourth path is selected. When the CMOS transmission gate CTG 68 is cut off and the CMOS transmission gate CTG 67 is turned on, the signal generated on the hit line HT1i according to the comparison result of the entry in the i-th row is sent to the hit line via the D flip-flop DFF 63. It is transferred to HTMEi, that is, the circuit block in the (i + 1) th row. Even when the first or second row of the three-word entry is stored, the signal corresponding to the comparison result of the i-th row entry is transferred to the hit line HTMEi via the same path. When storing entries other than those described above, the logical values of the entry length flag signals MWETi and MWEBi are “0” and “1”, respectively, so that the CMOS transmission gate CTG67 is cut off and the CMOS transmission gate CTG68 is turned on. Is done. Therefore, the hit line HT14i, that is, the hit line HTME1i is held at the logical value “1”. In this state, as described above, the hit signal HTMEi, which is one input signal of the multi-divided entry combination circuit MEMMB, is set to a logical value “1” by default.
さらに、第(i−1)行に2ワード長のエントリの1行目、第i行に2ワード長のエントリの2行目をそれぞれ記憶する場合、エントリ属性フラグ信号はEAFi2=“1”、EAFi1=“0”であるので、第二の経路が選択される。CMOS伝達ゲートCTG64が遮断されて、CMOS伝達ゲートCTG63が導通することにより、第i行のエントリの比較結果に応じてヒット線HT1iに発生された信号はDフリップ・フロップDFF62を介して、第(i−1)行で一致信号が発生されてから2サイクル後にヒット線HT2iへ出力される。なお、上記以外のエントリを記憶する場合は、エントリ長フラグ信号DWETi、DWEBiの論理値は“0”、“1”とそれぞれなるので、CMOS伝達ゲートCTG63が遮断されて、CMOS伝達ゲートCTG64が導通される。したがって、ヒット線HT12iは論理値“0”に保持される。 Further, when storing the first row of a 2-word entry in the (i-1) th row and the second row of a 2-word entry in the i-th row, the entry attribute flag signal is EAFi2 = "1", Since EAFi1 = "0", the second route is selected. When the CMOS transmission gate CTG64 is cut off and the CMOS transmission gate CTG63 is turned on, the signal generated on the hit line HT1i according to the comparison result of the entry in the i-th row passes through the D flip-flop DFF62. i-1) Two cycles after the coincidence signal is generated in the row, it is output to the hit line HT2i. When storing entries other than those described above, the logical values of the entry length flag signals DWETi and DWEBi are “0” and “1”, respectively, so that the CMOS transmission gate CTG63 is cut off and the CMOS transmission gate CTG64 is turned on. Is done. Therefore, the hit line HT12i is held at the logical value “0”.
最後に、第(i−2)行に3ワード長のエントリの1行目、第(i−1)行に3ワード長のエントリの1行目、第i行に3ワード長のエントリの3行目を記憶する場合、エントリ属性フラグ信号はEAFi1=“0”、EAFi2=“0”であるので、第三の経路が選択される。CMOS伝達ゲートCTG66が遮断されて、CMOS伝達ゲートCTG65が導通することにより、第i行のエントリの比較結果に応じてヒット線HT1iに発生された信号は、第(i−2)行において3ワード長のエントリの1行目の比較が行われたサイクルから2サイクル後に、ヒット線HT2iへ出力される。なお、上記以外のエントリを記憶する場合は、エントリ長フラグ信号TWETi、TWEBiの論理値は“0”、“1”とそれぞれなるので、CMOS伝達ゲートCTG65が遮断されて、CMOS伝達ゲートCTG66が導通される。したがって、ヒット線HT13iは論理値“0”に保持される。 Finally, the first line of the entry of 3 words in the (i-2) line, the first line of the entry of 3 words in the (i-1) line, and the 3 of the entry of 3 words in the i line. When the row is stored, the entry attribute flag signal is EAFi1 = "0" and EAFi2 = "0", so the third route is selected. When the CMOS transmission gate CTG 66 is cut off and the CMOS transmission gate CTG 65 is turned on, a signal generated on the hit line HT 1 i according to the comparison result of the entry in the i-th row is 3 words in the (i−2) -th row. Two cycles after the cycle in which the first row of the long entry is compared is output to the hit line HT2i. When storing entries other than those described above, the logical values of the entry length flag signals TWETi and TWEBi are “0” and “1”, respectively, so that the CMOS transmission gate CTG65 is cut off and the CMOS transmission gate CTG66 is turned on. Is done. Therefore, the hit line HT13i is held at the logical value “0”.
以上の構成と動作により、次の効果が得られる。第一に、多分割エントリ結合回路MECMBを用いて隣り合う行に記憶されたエントリの比較結果に論理積演算を施すことにより、CAMセルアレイCAMARYの1ワードあたりのビット長より長いエントリを多分割して複数行に記憶すると共に検索を行うことができる。第二に、レイテンシ選択デコーダLYDEC、レイテンシ選択ゲートLYSG、レイテンシ調整回路LYAJTを用いることにより、検索キーが入力されてから検索結果に応じた信号がヒット線HT2iに出力されるまでのサイクル時間、すなわちレイテンシを、エントリのビット長に依らず一定(ここでは、3サイクル)に保つことができる。
《優先度決定回路群》
図11は、図4に示した優先度決定回路群PDCBKについて、第i行(i=1、2、…、m)における優先度決定回路群要素PDCBKiの構成例を示している。本回路要素は、縦続接続された複数段のDフリップ・フロップで構成され、ヒット線HT2iに発生された信号をヒット線HT3iへ転送する経路内に含まれるDフリップ・フロップの段数を、図9に示したエントリ長フラグ信号で制御する点に特徴がある。図11では、図4および図5に示したCAMセルアレイCAMARYが検索することが出来るエントリの最大ワード長の値である3(すなわち、最大ビット長が3n。)に対応して、二段のDフリップ・フロップDFF71、DFF72で構成され、転送経路が三つのエントリ長フラグ信号SWETi、DWETi、TWETiで制御される例が示されている。
With the above configuration and operation, the following effects can be obtained. First, an entry longer than the bit length per word of the CAM cell array CAMARY is multi-divided by performing an AND operation on the comparison result of the entries stored in adjacent rows using the multi-divided entry combination circuit MEMMB. Can be stored and stored in multiple lines. Second, by using the latency selection decoder LYDEC, the latency selection gate LYSG, and the latency adjustment circuit LYAJT, the cycle time from when the search key is input until the signal corresponding to the search result is output to the hit line HT2i, that is, The latency can be kept constant (here, 3 cycles) regardless of the bit length of the entry.
《Priority determination circuit group》
FIG. 11 shows a configuration example of the priority determination circuit group element PDCBKi in the i-th row (i = 1, 2,..., M) for the priority determination circuit group PDCBK shown in FIG. This circuit element is composed of a plurality of cascaded D flip-flops, and the number of D flip-flops included in the path for transferring the signal generated on the hit line HT2i to the hit line HT3i is shown in FIG. It is characterized in that it is controlled by the entry length flag signal shown in FIG. In FIG. 11, two stages of Ds corresponding to 3 (that is, the maximum bit length is 3n) which is the maximum word length value of the entries that can be searched by the CAM cell array CAMARY shown in FIGS. In this example, the flip-flops DFF71 and DFF72 are used, and the transfer path is controlled by three entry length flag signals SWETi, DWETi, and TWETi.
まず、第一の経路FPは、Dフリップ・フロップDFF71、DFF72、NAND回路ND75、ND76、Dフリップ・フロップDFF73の順に縦続接続された回路で構成される。NAND回路ND75の他方の入力端子には、エントリ長フラグ信号SWETiが入力される。なお、詳細は後の説明から分かるように、NAND回路ND76の他方の入力端子は、デフォルトで電源電圧VDD(論理値“1”)が印加されている。また、Dフリップ・フロップDFF73は、ヒット線HT3iに出力された信号を1サイクル保持するために配置されている。
次に、第二の経路SPは、Dフリップ・フロップDFF71、NAND回路ND73、ND74、インバータ回路IV72、NAND回路ND76、Dフリップ・フロップDFF73の順に縦続接続された回路で構成される。NAND回路ND73の他方の入力端子には、エントリ長フラグ信号DWETiが入力される。なお、詳細は後の説明から分かるように、NAND回路ND74の他方の入力端子は、デフォルトで電源電圧VDD(論理値“1”)が印加されている。
First, the first path FP is configured by a circuit in which D flip-flops DFF71 and DFF72, NAND circuits ND75 and ND76, and D flip-flop DFF73 are cascade-connected in this order. The entry length flag signal SWETi is input to the other input terminal of the NAND circuit ND75. As can be seen from the following description, the power supply voltage VDD (logical value “1”) is applied to the other input terminal of the NAND circuit ND76 by default. The D flip-flop DFF 73 is arranged to hold the signal output to the hit line HT3i for one cycle.
Next, the second path SP is configured by a circuit in which a D flip-flop DFF71, NAND circuits ND73 and ND74, an inverter circuit IV72, a NAND circuit ND76, and a D flip-flop DFF73 are connected in cascade. The entry length flag signal DWETi is input to the other input terminal of the NAND circuit ND73. As can be seen from the following description, the power supply voltage VDD (logical value “1”) is applied to the other input terminal of the NAND circuit ND74 by default.
最後に、第三の経路TPは、NAND回路ND71、ND72、インバータ回路IV71、NAND回路ND74、インバータ回路IV72、NAND回路ND76、Dフリップ・フロップDFF73の順に縦続接続された回路で構成される。NAND回路ND71の他方の入力端子には、エントリ長フラグ信号TWETiが入力される。なお、NAND回路ND72の他方の入力端子には、電源電圧VDD(論理値“1”)が印加されている。このため、前述したように、NAND回路ND72、ND74の出力は、デフォルトで論理値“1”となっている。 Finally, the third path TP includes NAND circuits ND71 and ND72, an inverter circuit IV71, a NAND circuit ND74, an inverter circuit IV72, a NAND circuit ND76, and a D flip-flop DFF73 in cascade. The entry length flag signal TWETi is input to the other input terminal of the NAND circuit ND71. The power supply voltage VDD (logical value “1”) is applied to the other input terminal of the NAND circuit ND72. For this reason, as described above, the outputs of the NAND circuits ND72 and ND74 have a logical value “1” by default.
このような構成において、第i行のエントリが1ワード長(すなわちnビット長)である場合、エントリ長フラグ信号SWETiが活性化されることにより、第一の経路が選択されて、検索結果に応じてヒット線HT2iに発生された信号が、その2サイクル後にヒット線HT3iに出力される。また、第i行のエントリが2ワード長(すなわち2nビット長)の2ワード目である場合、エントリ長フラグ信号DWETiが活性化されることにより、第二の経路が選択されて、検索結果に応じてヒット線HT2iに発生された信号が、その1サイクル後にヒット線HT3iに出力される。さらに、第i行のエントリが3ワード長(すなわち3nビット長)の3ワード目である場合、エントリ長フラグ信号TWETiが活性化されることにより、第三の経路が選択されて、検索結果に応じてヒット線HT2iに発生された信号が、当該サイクル内にヒット線HT3iに出力される。 In such a configuration, when the entry in the i-th row is 1 word long (that is, n bits long), the entry length flag signal SWETi is activated to select the first path, and the search result is In response, the signal generated on hit line HT2i is output to hit line HT3i two cycles later. If the entry in the i-th row is the second word having a length of 2 words (that is, 2n bits), the entry length flag signal DWETi is activated to select the second path, and the search result is displayed. In response, the signal generated on hit line HT2i is output to hit line HT3i after one cycle. Further, when the entry in the i-th row is the third word having a length of 3 words (that is, 3n bit length), the entry length flag signal TWETi is activated, so that the third path is selected and the search result is displayed. In response, a signal generated on hit line HT2i is output to hit line HT3i within the cycle.
以上の構成と動作により、次の効果が得られる。エントリ長フラグ信号を用いて信号転送経路を切替え、経路内に含まれるDフリップ・フロップの段数を制御することにより、ヒット線HT2iに発生された信号がヒット線HT3iに出力されるまでの時間をエントリのビット長に応じて調整することができる。すなわち、ヒット線HT2iに発生された信号を、ビット長が長いエントリに応じた信号から順に、ヒット線HT3iに出力することが可能となる。
《CAMの全体動作》
図12は、本実施の形態によるCAMにおける検索動作のタイミングチャートを示している。ここでは、図4に示したCAMセルアレイCAMARYが5ビット幅(n=5)であるものとし、一例として図13に示すような三つのエントリを記憶しているものと仮定している。すなわち、第一のエントリは、3ワード長のエントリであり、データ“00100 00010 0001”が第1行〜第3行に跨って記憶されている。第二のエントリは、2ワード長のエントリであり、データ“00100 000XX”が第4行〜第5行に跨って記憶されている。第三のエントリは、1ワード長のエントリであり、データ“00100”が第6行に記憶されている。また、検索キーは“00100 00010 11111”であり、1サイクル毎に5ビットずつ入力されて、各エントリと比較されるものとしている。さらに、図4に示したマッチ判定回路は、非特許文献1で述べられているような所謂“電荷注入方式”を一例として仮定しており、マッチ線が論理しきい電圧VREFより高い電圧まで駆動された場合に一致、低い電圧の場合に不一致と判定されるものとしている。
With the above configuration and operation, the following effects can be obtained. By switching the signal transfer path using the entry length flag signal and controlling the number of stages of D flip-flops included in the path, the time until the signal generated on the hit line HT2i is output to the hit line HT3i can be reduced. It can be adjusted according to the bit length of the entry. That is, the signal generated on the hit line HT2i can be output to the hit line HT3i sequentially from the signal corresponding to the entry having a long bit length.
<< Overall operation of CAM >>
FIG. 12 shows a timing chart of the search operation in the CAM according to this embodiment. Here, it is assumed that the CAM cell array CAMARY shown in FIG. 4 has a 5-bit width (n = 5), and stores three entries as shown in FIG. 13 as an example. That is, the first entry is a three-word entry, and data “00100 0010 0001” is stored across the first to third rows. The second entry is a two-word entry, and data “00100 000XX” is stored across the fourth to fifth rows. The third entry is an entry having a length of one word, and data “00100” is stored in the sixth row. Further, the search key is “00100 0010 11111”, and 5 bits are input per cycle and compared with each entry. Further, the match determination circuit shown in FIG. 4 assumes a so-called “charge injection method” as described in
まず、1サイクル目に検索キー“00100”が入力されると、第1行、第4行、第6行のエントリがそれぞれ一致と判定され、ヒット線HT11、HT14、HT16がそれぞれ電源電圧VDDに駆動される。この状態に駆動される信号を、以下では“一致信号”と呼ぶ。これらの一致信号の内、第1行および第4行の信号は、図9における第4の経路内のヒット線HTCMB1およびHTCMB4からヒット線HT141およびHT144を介して、第2行および第5行の回路要素にそれぞれ転送される。 First, when the search key “00100” is input in the first cycle, the entries in the first row, the fourth row, and the sixth row are determined to match, and the hit lines HT11, HT14, and HT16 are set to the power supply voltage VDD. Driven. The signal driven to this state is hereinafter referred to as “match signal”. Among these coincidence signals, the signals of the first row and the fourth row are the signals of the second row and the fifth row through the hit lines HT141 and HT144 from the hit lines HTCMB1 and HTCMB4 in the fourth path in FIG. Each is transferred to a circuit element.
次に、2サイクル目に検索キー“00010”が入力されると、第2行、第5行のエントリがそれぞれ一致と判定され、ヒット線HT12、HT15に一致信号が発生される。この内、第2行の一致信号は、図9における第4の経路内のヒット線HTCMB2からヒット線HT142を介して、第3行の回路要素にそれぞれ転送される。一方、前のサイクルで発生された第6行の一致信号は、第一の経路内のヒット線HT111からDフリップ・フロップDFF61を介してヒット線DHT126に転送される。 Next, when the search key “00010” is input in the second cycle, it is determined that the entries in the second and fifth rows match, and a match signal is generated on the hit lines HT12 and HT15. Among them, the coincidence signal in the second row is transferred from the hit line HTCMB2 in the fourth path in FIG. 9 to the circuit element in the third row via the hit line HT142. On the other hand, the coincidence signal of the sixth row generated in the previous cycle is transferred from the hit line HT111 in the first path to the hit line DHT126 via the D flip-flop DFF61.
さらに、3サイクル目に検索キー“11111”が入力されると、全ての行のエントリがそれぞれ不一致と判定される。したがって、ヒット線HT11〜HT16およびHTCMB3は接地電圧VSSに駆動される。この状態に駆動される信号を、以下では“不一致信号”と呼ぶ。第3行の不一致信号は、図9における第三の経路内のヒット線HTCMB3からHT133を介してヒット線HT23に出力される。一方、2サイクル目に発生された第5行の一致信号は、図9における第2の経路内のヒット線HTCMB5からヒット線HT125、Dフリップ・フロップDFF62、ヒット線DHT135を介して、ヒット線HT25に出力される。また、2サイクル目にヒット線DHT126に転送された第6行の一致信号は、さらに、Dフリップ・フロップDFF62、ヒット線DHT136を介して、ヒット線HT26に出力される。
Further, when the search key “11111” is input in the third cycle, it is determined that the entries in all the rows do not match. Therefore, hit lines HT11-HT16 and HTCMB3 are driven to ground voltage VSS. A signal driven in this state is hereinafter referred to as a “mismatch signal”. The mismatch signal in the third row is output from the hit line HTCMB3 in the third path in FIG. 9 to the hit line HT23 via HT133. On the other hand, the coincidence signal of the fifth row generated in the second cycle is sent from the hit line HTCMB5 in the second path in FIG. 9 to the hit line HT25 via the hit line HT125, D flip-flop DFF62, and hit line DHT135. Is output. The coincidence signal of the sixth row transferred to the
続く4サイクル目〜6サイクル目において、CAMセルアレイCAMARYは新たな検索キー“11111 11111 11111”を受信して、1サイクル目〜3サイクル目の検索動作を繰り返す。この場合、比較結果が全て不一致となることは、容易に理解できる。その一方で、優先度決定回路群PDCBKは前述の一致信号を分類して、優先度の高い順番にプライオリティ・エンコーダPEに出力する。まず、4サイクル目では、注目している第1行〜第6行において、優先度決定回路要素PWPDCEi内の第三の経路が選択されている、すなわち3ワード長エントリを示すエントリ長フラグ信号TWETiが論理値“1”に活性化されているのは第3行だけである。3サイクル目までに、ヒット線HT23に出力された不一致信号に応じて、ヒット線HT33に不一致信号が出力される。このことは、3ワード長のエントリの中で、検索キーと一致したエントリは存在しなかったことを意味する。一方、3サイクル目に第5行および第6行でヒット線HT25およびHT26にそれぞれ発生された一致信号は、対応する回路要素におけるDフリップ・フロップDFF71を介して、ヒット線DHT215およびDHT216にそれぞれ転送される。 In the subsequent 4th to 6th cycles, the CAM cell array CAMARY receives a new search key “11111 11111 11111” and repeats the search operation of the first to third cycles. In this case, it can be easily understood that the comparison results are all inconsistent. On the other hand, the priority determination circuit group PDCBK classifies the above-mentioned coincidence signals and outputs them to the priority encoder PE in descending order of priority. First, in the fourth cycle, in the first to sixth rows of interest, the third path in the priority determination circuit element PWPDCEi is selected, that is, the entry length flag signal TWETi indicating a 3-word length entry. Is activated to the logical value “1” only in the third row. By the third cycle, a mismatch signal is output to the hit line HT33 in response to the mismatch signal output to the hit line HT23. This means that there is no entry that matches the search key among the three-word entries. On the other hand, the coincidence signals generated on the hit lines HT25 and HT26 in the fifth and sixth rows in the third cycle are transferred to the hit lines DHT215 and DHT216 via the D flip-flop DFF71 in the corresponding circuit element, respectively. Is done.
5サイクルでは、注目している第1行〜第6行において、優先度決定回路要素PWPDCEi内の第二の経路の選択、すなわち2ワード長エントリを示すエントリ長フラグ信号TWETiが論理値“1”に活性化されているのは第5行だけである。4サイクル目までに、ヒット線DHT215に転送された一致信号に応じて、ヒット信号HT35に一致信号が出力される。このことは、2ワード長のエントリの中で、検索キーと一致したエントリが第4行〜第5行に存在したことを意味する。一方、第6行では、4サイクル目までに、ヒット線DHT216に転送された一致信号が、対応する回路要素におけるDフリップ・フロップDFF72を介して、ヒット線DHT226に転送される。 In the fifth cycle, in the first to sixth rows of interest, the selection of the second path in the priority determination circuit element PWPDCEi, that is, the entry length flag signal TWETi indicating the 2-word length entry is the logical value “1”. Only the fifth line is activated. By the fourth cycle, a match signal is output to the hit signal HT35 in accordance with the match signal transferred to the hit line DHT215. This means that an entry that matches the search key exists in the 4th to 5th lines among the entries of 2 words in length. On the other hand, in the sixth row, by the fourth cycle, the coincidence signal transferred to the hit line DHT 216 is transferred to the hit line DHT 226 via the D flip-flop DFF 72 in the corresponding circuit element.
6サイクルでは、注目している第1行〜第6行において、優先度決定回路要素PWPDCEi内の第一の経路の選択、すなわち1ワード長エントリを示すエントリ長フラグ信号TWETiが論理値“1”に活性化されているのは第6行だけである。5サイクル目までに、ヒット線DHT226に出力された一致信号に応じて、ヒット信号HT36に一致信号が出力される。このことは、1ワード長のエントリの中で、検索キーと一致したエントリが第6行に存在したことを意味する。以降、同様の動作を繰り返して、検索動作を継続する。
《CAMの効果》
以上の構成と動作をまとめると、次の三つの効果が得られる。第一の効果は、エントリ属性フラグ信号レジスタ群を用いてワード間の関係を設定することにより、CAMセルアレイのビット幅よりも広い任意のビット長のエントリを複数のワードを用いて記憶することができる点にある。第二の効果は、検索動作において、エントリ属性フラグ信号レジスタ群の値に応じて隣接エントリの比較結果に論理積演算を施すことにより、ビット長の長いエントリについても正確に比較結果を検出することができる点にある。これら第一と第二の効果により、様々なビット長のエントリを効率よく記憶すると共に、検索動作も可能なCAMを実現することが可能となる。第三の効果は、レイテンシ制御回路群LYBKを用いてビット長の短いエントリの比較結果をビット長の長いエントリの比較が終わるまで一時的に保持すると共に、優先度決定回路群PDCBKを用いてビット長の長いエントリから順に一致結果をプライオリティ・エンコーダに出力することにより、異なるビット長のエントリを記憶するCAMにおいても、類似度の高い(すなわち距離の短い)エントリから順に検出することができる点にある。すなわち、検索キーとの距離が最も短いエントリに応じたアドレス信号を発生可能なCAMを実現することが可能となる。
In the 6th cycle, in the first to sixth rows of interest, the selection of the first path in the priority determination circuit element PWPDCEi, that is, the entry length flag signal TWETi indicating the one word length entry is the logical value “1”. Only the sixth line is activated. By the fifth cycle, a match signal is output to the hit signal HT36 in accordance with the match signal output to the hit line DHT226. This means that an entry that matches the search key exists in the sixth line among the entries of one word length. Thereafter, the same operation is repeated and the search operation is continued.
<Effect of CAM>
Summarizing the above configuration and operation, the following three effects can be obtained. The first effect is that an entry having an arbitrary bit length wider than the bit width of the CAM cell array can be stored using a plurality of words by setting a relationship between words using the entry attribute flag signal register group. There is a point that can be done. The second effect is that the comparison result is accurately detected even for an entry having a long bit length by performing an AND operation on the comparison result of the adjacent entry according to the value of the entry attribute flag signal register group in the search operation. There is in point that can. By these first and second effects, it is possible to realize a CAM capable of efficiently storing entries having various bit lengths and performing a search operation. The third effect is that the latency control circuit group LYBK is used to temporarily hold the comparison result of the short bit length entry until the comparison of the long bit length entry is completed, and the priority determination circuit group PDCBK is used to By outputting the matching results to the priority encoder in order from the longest entry, even in the CAM storing the entries having different bit lengths, it is possible to detect in order from the entry with the higher similarity (that is, the shorter distance). is there. That is, it is possible to realize a CAM capable of generating an address signal corresponding to an entry having the shortest distance from the search key.
なお、以上では、ビット長が3ワードのエントリまで記憶および検索することを仮定して、本実施の形態によるCAMを説明してきた。しかし、ビット長は3ワードに限らず、さらに長いエントリを処理することも可能であることは、容易に理解できる。この場合、エントリ属性フラグ信号レジスタ群EAFRBK内のレジスタ要素PWREiにおけるビット数と共に、レイテンシ制御回路群LYBK内、優先度決定回路群PDCBKの各要素回路PWLYEi、PWPDCEiにおけるDフリップ・フロップの縦続接続段数を増加することにより、さらにビット長の長いエントリの検索処理を行うCAMを実現することが可能となる。 In the above description, the CAM according to the present embodiment has been described on the assumption that a bit length of 3 words is stored and searched. However, the bit length is not limited to 3 words, and it can be easily understood that longer entries can be processed. In this case, together with the number of bits in the register element PWREi in the entry attribute flag signal register group EAFRBK, the number of cascaded stages of D flip-flops in each element circuit PWLYEi and PWPDCEi in the latency control circuit group LYBK and the priority determination circuit group PDCBK By increasing the number, it becomes possible to realize a CAM that performs search processing for entries having a longer bit length.
(実施の形態2)
本実施の形態2では、実施の形態1で説明したCAMの別な構成例および動作例について説明する。
(Embodiment 2)
In the second embodiment, another configuration example and an operation example of the CAM described in the first embodiment will be described.
図1は、本発明の実施の形態2の半導体装置において、それに含まれるCAMの要部ブロックの基本構成例を示すブロック図である。この構成の特徴は、次のように二つある。第一の特徴は、CAMセルアレイが複数にバンク化されており、各バンクは特定のビット長のエントリのみ記憶すると共に検索動作を行う点にある。第二の特徴は、プライオリティ・エンコーダが階層構造になっており、各バンクのプライオリティ・エンコーダからグローバル・プライオリティ・エンコーダを介して、最も優先度の高い一致エントリに応じた一致アドレスを発生する点にある。以下では、図1に示したCAMが1ワード長〜3ワード長(すなわち、nビット長〜3nビット長)のエントリを同じ数だけ記憶できると共に検索動作を行うことができるものと仮定して、6つのCAMバンクCAMBK1〜CAMBK6からなる構成について、図4に示した構成との相異点に注目しながら説明する。なお、同図では、説明を簡単にするために検索動作に関わる回路ブロックおよび信号のみが示されており、読み書き回路群やワード・ドライバ群などは省略されている。 FIG. 1 is a block diagram illustrating a basic configuration example of a main block of a CAM included in a semiconductor device according to a second embodiment of the present invention. There are two features of this configuration as follows. The first feature is that the CAM cell array is divided into a plurality of banks, and each bank stores only an entry having a specific bit length and performs a search operation. The second feature is that the priority encoder has a hierarchical structure, and a match address corresponding to the highest priority match entry is generated from the priority encoder of each bank via the global priority encoder. is there. In the following, it is assumed that the CAM shown in FIG. 1 can store the same number of entries having a length of 1 to 3 words (that is, n bits to 3n bits) and can perform a search operation. A configuration composed of six CAM banks CAMBK1 to CAMBK6 will be described while paying attention to differences from the configuration shown in FIG. In the figure, for simplification of description, only circuit blocks and signals related to a search operation are shown, and a read / write circuit group, a word driver group, and the like are omitted.
まず、CAMバンクCAMBK1〜CAMBK6は、図4に示したCAMと同様にmワード(行)×nビット(列)のメモリセルで構成されたCAMセルアレイCAMARYを有し、共通のサーチ線駆動回路群SDBKからサーチ線群SLBSを介して検索キーを受信する。また、CAMバンクCAMBK1〜CAMBK3は3ワード長のエントリのみを予め記憶してから、検索動作を行う。CAMバンクCAMBK4〜CAMBK5は2ワード長のエントリのみを予め記憶してから、検索動作を行う。CAMバンクCAMBK6は1ワード長のエントリのみを予め記憶してから、検索動作を行う。さらに、プライオリティ・エンコーダが優先的に発生する一致アドレスは、エントリの格納場所に関連付けられるものである。ロウ・アドレスがCAMバンクCAMBK1からCAMBK6の順で割り付けられるのに対応して、ここでは、CAMバンクCAMBK1の第1行におけるエントリが最も優先度が高いものと仮定して説明を続ける。 First, the CAM banks CAMBK1 to CAMBK6 have a CAM cell array CAMARY composed of memory cells of m words (rows) × n bits (columns) like the CAM shown in FIG. A search key is received from the SDBK via the search line group SLBS. In addition, the CAM banks CAMBK1 to CAMBK3 store only a three-word length entry in advance, and then perform a search operation. The CAM banks CAMBK4 to CAMBK5 store only two-word entries in advance, and then perform a search operation. The CAM bank CAMBK6 stores only one-word-length entries in advance and then performs a search operation. Further, the coincidence address preferentially generated by the priority encoder is associated with the storage location of the entry. Corresponding to the fact that row addresses are allocated in the order of CAM banks CAMBK1 to CAMBK6, the description will be continued assuming that the entry in the first row of CAM bank CAMBK1 has the highest priority.
CAMバンクCAMBK1〜CAMBK3はCAMセルアレイCAMARYの他に、マッチ判定回路群MDBK、レイテンシ調整回路群LY3WBK、プライオリティ・エンコーダPEで構成される。レイテンシ調整回路群LY3WBKはヒット線群HTBS1を受信して各行の比較結果に論理積演算を施し、かつ一時保持した後に、その結果をヒット線群HT3WBSを介してプライオリティ・エンコーダPEに出力する。 The CAM banks CAMBK1 to CAMBK3 are configured by a match determination circuit group MDBK, a latency adjustment circuit group LY3WBK, and a priority encoder PE in addition to the CAM cell array CAMARY. The latency adjustment circuit group LY3WBK receives the hit line group HTBS1, performs a logical product operation on the comparison result of each row, temporarily holds it, and then outputs the result to the priority encoder PE via the hit line group HT3WBS.
CAMバンクCAMBK4〜CAMBK5は、レイテンシ調整回路群LY3WBKがレイテンシ調整回路群LY2WBKに置き換えられている他は、CAMバンクCAMBK1〜CAMBK3と同様の構成である。レイテンシ調整回路群LY2WBKはヒット線群HTBS1を受信して各行の比較結果に論理積演算を施し、かつ一時保持した後に、その結果をヒット線群HT2WBSを介してプライオリティ・エンコーダPEに出力する。 The CAM banks CAMK4 to CAMBK5 have the same configuration as the CAM banks CAMBK1 to CAMBK3 except that the latency adjustment circuit group LY3WBK is replaced with the latency adjustment circuit group LY2WBK. The latency adjustment circuit group LY2WBK receives the hit line group HTBS1, performs an AND operation on the comparison result of each row, temporarily holds it, and then outputs the result to the priority encoder PE via the hit line group HT2WBS.
CAMバンクCAMBK6は、レイテンシ調整回路群LY1WBKの他は、CAMバンクCAMBK1〜CAMBK5と同様の構成である。レイテンシ調整回路群LY1WBKはヒット線群HTBS1を受信して一時保持した後に、その結果をヒット線群HT1WBSを介してプライオリティ・エンコーダPEに出力する。 The CAM bank CAMBK6 has the same configuration as the CAM banks CAMBK1 to CAMBK5 except for the latency adjustment circuit group LY1WBK. The latency adjustment circuit group LY1WBK receives and temporarily holds the hit line group HTBS1, and then outputs the result to the priority encoder PE via the hit line group HT1WBS.
図14は、レイテンシ調整回路群LY3WBKの構成例を示している。本回路群は、CAMバンクCAMBK1〜CAMBK3が3ワード長のエントリを記憶することに対応して、3行毎にレイテンシ調整回路要素LY3Wf(f=1、2、・・・)を有する。第1行〜第3行のエントリに対応するレイテンシ調整回路要素LY3W1を例に説明すると、内部クロックICLKで制御されるDフリップ・フロップDFF91、DFF92、NAND回路ND91、ND92、インバータ回路IV91、IV92で構成される。ヒット線HT1をDフリップ・フロップDFF91の入力端子Dに接続し、出力端子Qにヒット線DHT1を接続する。また、ヒット線DHT1、HT2の論理積演算をNAND回路ND91およびインバータ回路IV91で行い、その結果をヒット線HT12を介してDフリップ・フロップDFF92に入力する。さらに、Dフリップ・フロップDFF92の出力端子Qにヒット線DHT1を接続し、ヒット線DHT1、HT3の論理積演算をNAND回路ND92およびインバータ回路IV92で行い、その結果をヒット線HT3W1に出力する。このような構成により、後述するように多分割入力される検索キーとの比較が行われて一致判定された第1行〜第2行のエントリにおける比較結果を1サイクルずつ保持しながら、第3行のエントリにおける比較結果との論理積演算を施すことができて、3サイクルで3ワード長のエントリの比較結果を総合的に判定することができる。 FIG. 14 shows a configuration example of the latency adjustment circuit group LY3WBK. This circuit group has a latency adjustment circuit element LY3Wf (f = 1, 2,...) Every three rows in correspondence with the CAM banks CAMBK1 to CAMBK3 storing an entry having a three word length. The latency adjustment circuit element LY3W1 corresponding to the entries in the first to third rows will be described as an example. The D flip-flops DFF91 and DFF92, NAND circuits ND91 and ND92, and inverter circuits IV91 and IV92 controlled by the internal clock ICLK are used. Composed. The hit line HT1 is connected to the input terminal D of the D flip-flop DFF91, and the hit line DHT1 is connected to the output terminal Q. Further, the AND operation of the hit lines DHT1 and HT2 is performed by the NAND circuit ND91 and the inverter circuit IV91, and the result is input to the D flip-flop DFF92 via the hit line HT12. Further, hit line DHT1 is connected to output terminal Q of D flip-flop DFF92, AND operation of hit lines DHT1 and HT3 is performed by NAND circuit ND92 and inverter circuit IV92, and the result is output to hit line HT3W1. With such a configuration, as will be described later, the comparison result in the entries in the first row to the second row determined by the comparison with the search key input in multiple divisions is held, and the third result is held. The logical product operation with the comparison result in the row entry can be performed, and the comparison result of the entry of 3 words in 3 cycles can be comprehensively determined.
図15は、レイテンシ調整回路群LY2WBKの構成例を示している。本回路群は、CAMバンクCAMBK4〜CAMBK5が2ワード長のエントリを記憶することに対応して、2行毎にレイテンシ調整回路要素LY2Wg(g=1、2、・・・)を有する。第1行〜第2行のエントリに対応するレイテンシ調整回路要素LY2W1を例に、図14に示したレイテンシ調整回路要素LY3W1と比較すると、行数が減少したことに対応してNAND回路ND92、インバータ回路IV92が削除された構成であり、Dフリップ・フロップDFF92の出力端子Qに直接ヒット線HT3W1を接続する。このような構成により、多分割入力される検索キーとの比較が行われて一致判定された第1行〜第2行のエントリにおける比較結果との論理積演算を施して、2サイクルで2ワード長のエントリの比較結果を総合的に判定すると共に、その結果をDフリップ・フロップDFF92で1サイクル保持することにより、CAMバンクCAMBK1〜CAMBK3で検索したのと同様の検索キーの系に対する比較結果を、CAMバンクCAMBK1〜CAMBK3と同時に出力することができる。 FIG. 15 shows a configuration example of the latency adjustment circuit group LY2WBK. This circuit group has a latency adjustment circuit element LY2Wg (g = 1, 2,...) For every two rows, corresponding to the fact that the CAM banks CAMBK4 to CAMBK5 store entries of 2 words length. Compared with the latency adjustment circuit element LY3W1 shown in FIG. 14 by taking the latency adjustment circuit element LY2W1 corresponding to the entries of the first row to the second row as an example, the NAND circuit ND92, the inverter corresponding to the decrease in the number of rows The circuit IV92 is omitted, and the hit line HT3W1 is directly connected to the output terminal Q of the D flip-flop DFF92. With such a configuration, a logical product operation is performed on the comparison results in the entries in the first row to the second row, which are determined to be matched by comparison with a search key input in multiple divisions, and two words are obtained in two cycles. The comparison result of the long entry is comprehensively determined, and the result is held in the D flip-flop DFF 92 for one cycle, so that the comparison result for the same search key system as that searched in the CAM banks CAMBK1 to CAMBK3 is obtained. , CAM banks CAMBK1 to CAMBK3 can be output simultaneously.
図16は、レイテンシ調整回路群LY1WBKの構成例を示している。本回路群は、CAMバンクCAMBK6が1ワード長のエントリを記憶することに対応して、1行毎にレイテンシ調整回路要素LY1Wh(h=1、2、・・・)を有する。第1行目のエントリに対応するレイテンシ調整回路要素LY1W1を例に、図15に示したレイテンシ調整回路要素LY2W1と比較すると、行数が減少したことに対応して更にNAND回路ND91、インバータ回路IV91が削除された構成であり、Dフリップ・フロップDFF91、DFF92を従属接続して、Dフリップ・フロップDFF92の出力端子Qに直接ヒット線HT1W1を接続する。このような構成により、第1行のエントリにおける比較結果を2サイクル保持することにより、CAMバンクCAMBK1〜CAMBK5で検索したのと同様の検索キーの系に対する比較結果をCAMバンクCAMBK1〜CAMBK5と同時に出力することができる。 FIG. 16 shows a configuration example of the latency adjustment circuit group LY1WBK. This circuit group has a latency adjustment circuit element LY1Wh (h = 1, 2,...) For each row corresponding to the fact that the CAM bank CAMBK6 stores an entry of one word length. Taking the latency adjustment circuit element LY1W1 corresponding to the entry in the first row as an example and comparing with the latency adjustment circuit element LY2W1 shown in FIG. 15, the NAND circuit ND91 and the inverter circuit IV91 further correspond to the decrease in the number of rows. Is deleted, the D flip-flops DFF91 and DFF92 are connected in cascade, and the hit line HT1W1 is directly connected to the output terminal Q of the D flip-flop DFF92. With such a configuration, the comparison result in the entry in the first row is held for two cycles, so that the comparison result for the same search key system as that searched in the CAM banks CAMBK1 to CAMBK5 is output simultaneously with the CAM banks CAMBK1 to CAMBK5. can do.
図17は、本実施の形態によるCAMにおける検索動作のタイミングチャートを示している。ここでは、実施の形態1の図12に示した検索動作のタイミングチャートとの相違を容易に理解できるようにするために、CAMセルアレイCAMARYは5ビット幅(n=5)であるものとし、一例として図13と同様の三つのエントリが、図18に示すようにCAMバンクCAMBK1、CAMBK4、CAMBK6にそれぞれ記憶されているものと仮定している。また、検索キーは図12に示した検索動作と同様に“00100 00010 11111”であり、1サイクル毎に5ビットずつ入力されて、CAMバンクに順々に入力されるものとしている。なお、図中に括弧で括られた数字はCAMバンクの番号を表しており、当該信号がそのCAMバンク内の信号であることを示している。 FIG. 17 shows a timing chart of the search operation in the CAM according to this embodiment. Here, in order to make it easy to understand the difference from the timing chart of the search operation shown in FIG. 12 of the first embodiment, the CAM cell array CAMARY is assumed to be 5 bits wide (n = 5), and an example 13 are assumed to be stored in the CAM banks CAMBK1, CAMBK4, and CAMBK6, respectively, as shown in FIG. The search key is “00100 0010 11111” as in the search operation shown in FIG. 12, and 5 bits are input every cycle and sequentially input to the CAM bank. Note that the numbers in parentheses in the figure indicate the CAM bank number, and indicate that the signal is a signal in the CAM bank.
まず、1サイクル目に検索キー“00100”が入力されると、CAMバンクCAMBK1、CAMBK4、CAMBK6における第1行のエントリがそれぞれ一致と判定され、ヒット線HT1に一致信号が発生される。 First, when the search key “00100” is input in the first cycle, the entries in the first row in the CAM banks CAMBK1, CAMBK4, and CAMBK6 are determined to match, and a match signal is generated on the hit line HT1.
次に、2サイクル目に検索キー“00010”が入力されると、CAMバンクCAMBK1、CAMBK4における第2行のエントリがそれぞれ一致と判定され、ヒット線HT2に一致信号が発生される。一方、前のサイクルでCAMバンクCAMBK4、CAMBK6の第1行に発生された一致信号は、レイテンシ調整回路内のDフリップ・フロップDFF91を介してヒット線DHT1に転送される。この信号と前述のヒット線HT2との論理積演算がNAND回路ND91において行われることにより、ヒット線HT12に一致信号が発生される。 Next, when the search key “00010” is input in the second cycle, the entries in the second row in the CAM banks CAMBK1 and CAMBK4 are determined to match, and a match signal is generated on the hit line HT2. On the other hand, the coincidence signal generated in the first row of the CAM banks CAMBK4 and CAMBK6 in the previous cycle is transferred to the hit line DHT1 via the D flip-flop DFF91 in the latency adjustment circuit. An AND operation of this signal and the hit line HT2 is performed in the NAND circuit ND91, whereby a coincidence signal is generated on the hit line HT12.
続いて、3サイクル目に検索キー“11111”が入力されると、CAMバンクCAMBK1における第3行のエントリが不一致と判定される。この信号と前述のヒット線HT12からレイテンシ調整回路内のDフリップ・フロップDFF92を介してヒット線DHT12に発生された一致信号との論理積演算がNAND回路ND92において行われることにより、ヒット線HT3W1に不一致信号が発生される。一方、前のサイクルでCAMバンクCAMBK4、CAMBK6の第1行でヒット線HT12に発生された一致信号は、さらにレイテンシ調整回路内のDフリップ・フロップDFF92を介してヒット線HT2W1およびHT1W1に出力される。 Subsequently, when the search key “11111” is input in the third cycle, it is determined that the entry in the third row in the CAM bank CAMBK1 does not match. An AND operation of this signal and the coincidence signal generated from the hit line HT12 to the hit line DHT12 through the D flip-flop DFF92 in the latency adjustment circuit is performed in the NAND circuit ND92, so that the hit line HT3W1 is applied. A mismatch signal is generated. On the other hand, the coincidence signal generated on the hit line HT12 in the first row of the CAM banks CAMBK4 and CAMBK6 in the previous cycle is further output to the hit lines HT2W1 and HT1W1 via the D flip-flop DFF92 in the latency adjustment circuit. .
さらに、4サイクル目では、各CAMバンクCAMBKにおけるプライオリティ・エンコーダPDおよびグローバル・プライオリティ・エンコーダGPDが、ヒット線HT2W1、HT1W1に発生された前述の一致信号に応じたアドレス信号を発生する。すなわち、1サイクル目の検索キー“00100”を先頭とする3ワード長の検索キー“00100 00010 11111”と1ワード長〜3ワード長のエントリとの比較動作を行って判明した一致エントリの中で、ビット長が最も長いエントリが記憶されているCAMバンクCAMBK4の第1行〜第2行に対応するアドレス信号が発生される。一方、この処理と平行して、検索キー“11111”の比較動作が行われ、2サイクル目の検索キー“00010”を起点とする3ワード長の検索キー“00010 00001 11111”の比較結果に応じた信号が各CAMバンク内のヒット線群に発生される。以降、以上の動作を繰り返す。 Further, in the fourth cycle, the priority encoder PD and the global priority encoder GPD in each CAM bank CAMBK generate an address signal corresponding to the aforementioned coincidence signal generated on the hit lines HT2W1 and HT1W1. That is, among the matching entries found by comparing the search key “00100 0010 11111” with the search key “00100” in the first cycle with the entry of 1 word length to 3 words length The address signals corresponding to the first to second rows of the CAM bank CAMBK4 in which the entry having the longest bit length is stored are generated. On the other hand, in parallel with this processing, a search key “11111” comparison operation is performed in accordance with the comparison result of the search key “00010 00001 11111” having a three-word length starting from the search key “00010” in the second cycle. The generated signal is generated on the hit line group in each CAM bank. Thereafter, the above operation is repeated.
以上の構成と動作により、本実施の形態によるCAMは、次の三つの効果を得る。第一の効果は、エントリをビット長毎に分類してバンク化したCAMセルアレイに記憶することにより、検索動作において複数の一致信号が発生された場合に、その優先度をエントリの格納場所から瞬時に同定することができる点にある。すなわち、実施の形態1のCAMと比べて、様々なビット長のエントリの検索を行うCAMが一致信号をプライオリティ・エンコーダに転送するまでに要する時間、すなわちレイテンシを6サイクルから3サイクルに短縮することが可能となる。第二の効果は、エントリをビット長毎に分類してバンク化したCAMセルアレイに記憶することにより、実施の形態1で用いていたエントリの属性に関する情報を保持するレジスタや優先度決定回路が不要となる点にある。すなわち、本実施の形態によるCAMを用いたCAMを構成する回路点数が抑制されることにより、チップあるいはモジュール面積が削減されるので、本CAMを用いた検索システムの実装コストを削減することが可能となる。第三の効果は、第一の効果で述べたレイテンシが、検索可能な検索キーおよびエントリのワード長の最大値と同じ値になることにより、検索キーを連続的に入力して検索キーの先頭を意識することなく検索動作を行うことができる点にある。すなわち、ストリーミング・データのように連続的に入力されるデータにパターン・マッチングにも可能となるために、検索キーの自由度が高まるので、本実施の形態によるCAMを用いた検索システムの可用性を向上することが可能となる。また、検索動作のスループットを向上することが可能となる。 With the configuration and operation described above, the CAM according to the present embodiment obtains the following three effects. The first effect is that when a plurality of coincidence signals are generated in a search operation by classifying entries by bit length and storing them in a banked CAM cell array, the priority is instantly determined from the entry storage location. It is in the point that can be identified. That is, as compared with the CAM of the first embodiment, the time required for the CAM that searches for entries having various bit lengths to transfer the coincidence signal to the priority encoder, that is, the latency is shortened from 6 cycles to 3 cycles. Is possible. The second effect is that the entries are classified into the bit lengths and stored in the banked CAM cell array, so that the registers and the priority determination circuit for holding the information regarding the attribute of the entry used in the first embodiment are not required. It is in the point. That is, since the chip or module area is reduced by suppressing the number of circuits constituting the CAM using the CAM according to the present embodiment, the mounting cost of the search system using the CAM can be reduced. It becomes. The third effect is that the latency described in the first effect is the same value as the searchable search key and the maximum word length of the entry. The search operation can be performed without being aware of the above. In other words, since pattern matching is possible for data that is continuously input such as streaming data, the degree of freedom of the search key is increased, so the availability of the search system using the CAM according to the present embodiment is improved. It becomes possible to improve. In addition, the throughput of the search operation can be improved.
なお、以上では、ビット長が3ワードのエントリまで記憶および検索することを仮定して、本実施の形態によるCAMを説明してきた。しかし、ビット長は3ワードに限らず、さらに長いエントリを処理することも可能であることは、容易に理解できる。この場合、レイテンシ制御回路群におけるDフリップ・フロップの縦続接続段数を増加することにより、所望のエントリの検索処理を行うCAMを実現することが可能となる。
(実施の形態3)
本実施の形態3では、実施の形態1および実施の形態2で説明したCAMに用いられるCAMセルアレイの別な構成と動作の例について説明する。図19は、本発明による実施の形態3のCAM構成例を示す回路ブロック図である。本CAMの特徴は、ストリーミング・データのように連続して入力される検索キーを受信し、シフト・レジスタを用いて一時的に保持すると共に一つの検索キーから複数の検索キーは発生して、それらのキーとエントリとの比較動作を同時に行う点にある。以下、図1および図4のCAM構成との違いに注目して説明を行う。図19に示すCAMは、従来CAMの基本ブロックである読み書き回路群RWBKと、本実施の形態に特有な新たなワード・ドライバ群WDBK13、サーチ線駆動回路群SDBK13、CAMセルアレイCAMARY13、マッチ判定回路群MDBK13に加え、更に検索キー・レジスタ群SRGBK13を有している。
In the above description, the CAM according to the present embodiment has been described on the assumption that a bit length of 3 words is stored and searched. However, the bit length is not limited to 3 words, and it can be easily understood that longer entries can be processed. In this case, by increasing the number of cascaded stages of D flip-flops in the latency control circuit group, it is possible to realize a CAM that performs a search process for a desired entry.
(Embodiment 3)
In the third embodiment, another example of the configuration and operation of the CAM cell array used in the CAM described in the first and second embodiments will be described. FIG. 19 is a circuit block diagram showing a configuration example of the CAM according to the third embodiment of the present invention. The feature of this CAM is that a search key that is continuously input like streaming data is received, temporarily stored using a shift register, and a plurality of search keys are generated from one search key. The comparison operation of these keys and entries is performed simultaneously. Hereinafter, description will be made by paying attention to the difference from the CAM configuration of FIGS. The CAM shown in FIG. 19 includes a read / write circuit group RWBK, which is a basic block of a conventional CAM, a new word driver group WDBK13, a search line drive circuit group SDBK13, a CAM cell array CAMARY13, and a match determination circuit group that are unique to this embodiment. In addition to the MDBK13, a search key register group SRGBK13 is further provided.
CAMセルアレイCAMARY13は、mワード(行)×nビット(列)の行列状にメモリセルが配置された構成である。ワード・ドライバ群WDBK13は、図4に示したワード・ドライバ群WDBKからワード線群WLBS2を駆動する機能が取り除かれたものである。本CAMセルアレイの特徴は、1行あたり複数のマッチ線が配置され、ワードに直交する方向に1列あたり複数のサーチ線対が配置される点にある。一例として図20では、8行×8ビットのCAMセルアレイ構成例が示されている。マッチ線群MLBS13は、これら複数のマッチ線MLum(u=1、2、…、8、m=1、2、…、8)で構成され、CAMセルアレイCAMARY13とマッチ判定回路群MDBK13とを接続する。
The CAM
図21は、一例として図20に示したメモリセルMCO18の構成例を示す回路図である。本メモリセルの特徴は、2値または3値のデータを記憶する一つのメモリ要素MEに対して、複数の比較回路CMPn(n=1、2、…、8)を有する点にある。(後の図33で説明するので削除。)比較回路CMPn(n=1、2、…、8)の夫々は図3に示したようにTCAMの比較回路として公知の構成である。マッチ線MLu1(u=1、2、…、8)とサーチ線SL2t(t=1、2、…、8)との交点にそれぞれ配置され、四つのNMOSトランジスタN161、N162、N163、N164で構成される。また、各比較回路CMPnにおけるトランジスタN162、N164のゲート電極には、メモリ要素が記憶するデータに応じた電圧に駆動される共通の信号線SNb、SNがそれぞれ接続される。 FIG. 21 is a circuit diagram showing a configuration example of the memory cell MCO 18 shown in FIG. 20 as an example. The feature of this memory cell is that it has a plurality of comparison circuits CMPn (n = 1, 2,..., 8) for one memory element ME that stores binary or ternary data. Each of the comparison circuits CMPn (n = 1, 2,..., 8) has a known configuration as a TCAM comparison circuit as shown in FIG. Each of the match lines MLu1 (u = 1, 2,..., 8) and the search line SL2t (t = 1, 2,..., 8) is arranged at each intersection, and is composed of four NMOS transistors N161, N162, N163, and N164. Is done. Further, common signal lines SNb and SN that are driven to voltages according to data stored in the memory element are connected to the gate electrodes of the transistors N162 and N164 in each comparison circuit CMPn, respectively.
図22は、検索キー・レジスタ群SRGBK13の構成を模式的に示す回路ブロック図である。本検索キー・レジスタ群は、二つのレジスタ群RGBK131、RGBK132で構成され、所謂シフト・レジスタ機能を有する。同図では、前述したCAMセルアレイCAMARY13のビット幅が8と仮定されていたことに対応して、8個のレジスタREG1n、REG2n(n=1、2、…、8)でそれぞれ構成される例が示されている。これらのレジスタの各々は、サーチ線群ISLBS1の構成要素の中の対応するサーチ線ISL1n(n=1、2、…、8)に接続される。図23に示すように本サーチ線ISL1n(n=1、2、…、8)は、レジスタ群RGBK132の出力端子に接続されるサーチ線群ISLBS1の構成要素であるサーチ線ISL2n(n=1、2、…、8)と規則的に組み合わせられて、サーチ線駆動回路群SDBK13を介してCAMセルアレイCAMARY13に接続される。ここで、サーチ線群SLBS13の構成要素は相補信号であるが、簡単のため非反転信号SL28〜SL28、SL18〜SL11のみが示されている。 FIG. 22 is a circuit block diagram schematically showing the configuration of the search key / register group SRGBK13. This search key register group is composed of two register groups RGBK131 and RGBK132, and has a so-called shift register function. In the same figure, in correspondence with the fact that the bit width of the CAM cell array CAMARY13 is assumed to be 8, an example constituted by 8 registers REG1n, REG2n (n = 1, 2,..., 8), respectively. It is shown. Each of these registers is connected to a corresponding search line ISL1n (n = 1, 2,..., 8) among the components of the search line group ISLBS1. As shown in FIG. 23, the search line ISL1n (n = 1, 2,..., 8) is a search line ISL2n (n = 1, n) that is a component of the search line group ISLBS1 connected to the output terminal of the register group RGBK132. 2, ..., 8) are regularly combined and connected to the CAM cell array CAMARY13 via the search line drive circuit group SDBK13. Here, although the constituent elements of the search line group SLBS13 are complementary signals, only the non-inverted signals SL28 to SL28 and SL18 to SL11 are shown for simplicity.
次に、検索動作における検索キーについて、図22、図24、図25に従って説明する。図24は、本実施の形態によるCAMがデータ・バスDBSを介して受信する検索キーをサイクル毎に示している。また、図25は、CAMセルアレイCAMARY13に入力される検索キーをサイクル毎に示している。各々の表では、CAMセルアレイCAMARY13のビット幅が8ビットと仮定されていることに対応して、8ビットの検索キーが示されている。まず、(n−1)サイクル目において、図24に示したように検索キーAn(n=1、2、…、8)を受信して、レジスタ群RGBK131に保持する。
Next, the search key in the search operation will be described with reference to FIGS. FIG. 24 shows the search keys received by the CAM according to the present embodiment via the data bus DBS for each cycle. FIG. 25 shows search keys input to the CAM
続いて、nサイクル目において、検索キーAn(n=1、2、…、8)をレジスタ群RGBK132に転送しながら、検索キーBn(n=1、2、…、8)を受信して、レジスタRGBK群RGBK131に保持する。この状態により、図25に示したように検索キーAn(n=1、2、…、8)とBn(n=1、2、…、8)を降順に並べたデータ・パターンから先頭ビットを1ビットずらした8種類の検索キーを発生してCAMセルアレイに入力することにより、8つの検索キーに関する検索動作を同時に行う。 Subsequently, in the nth cycle, the search key Bn (n = 1, 2,..., 8) is received while transferring the search key An (n = 1, 2,..., 8) to the register group RGBK132. It is held in the register RGBK group RGBK131. In this state, as shown in FIG. 25, the search bit An (n = 1, 2,..., 8) and Bn (n = 1, 2,..., 8) are arranged in descending order from the data pattern. By generating 8 types of search keys shifted by 1 bit and inputting them into the CAM cell array, the search operations for the 8 search keys are simultaneously performed.
さらに、(n+1)サイクル目において、検索キーBn(n=1、2、…、8)をレジスタ群RGBK132に転送しながら、図24に示したように検索キーCn(n=1、2、…、8)を受信して、レジスタRGBK群RGBK131に保持する。この状態により、図25に示したように検索キーBn(n=1、2、…、8)、Cn(n=1、2、…、8)を降順に並べたデータ・パターンから先頭ビットを1ビットずらした新たな8種類の検索キーを発生してCAMセルアレイに入力することにより、8つの検索キーに関する検索動作を同時に行う。 Further, in the (n + 1) cycle, while the search key Bn (n = 1, 2,..., 8) is transferred to the register group RGBK132, the search key Cn (n = 1, 2,...) Is transferred as shown in FIG. , 8) are received and stored in the register RGBK group RGBK131. In this state, as shown in FIG. 25, the search bits Bn (n = 1, 2,..., 8), Cn (n = 1, 2,. By generating eight new search keys shifted by 1 bit and inputting them into the CAM cell array, the search operations for the eight search keys are simultaneously performed.
以上の構成と動作により、本実施の形態によるCAMは次のような効果が得られる。すなわち、メモリセルに複数の比較回路を配置することにより、複数の検索キーの検索動作を同時に行うことができる。また、検索キー・レジスタ群SRGBK13を用いて、時分割された検索キーから複数の検索キーを発生することができる。よって、ストリーミング・データのように連続して入力されるデータから、所望のデータ・パターンを検出するような高度な検索動作を高速かつ検索キーの先頭を意識することなく行うCAMを実現することが可能となる。
(実施の形態4)
本実施の形態4では、実施の形態3で説明した機能を持つCAMの別な構成と動作の例について説明する。図26は、本発明による実施の形態4のCAM構成例を示す回路ブロック図である。本CAMの特徴は、次のように二つにある。第一の特徴は、ストリーミング・データのように連続して入力されるデータをデータ・バスDBSを介して受信して、このデータ・バスよりもビット幅の広い検索キーおよびエントリの検索動作を行う点にある。第二の特徴は、複数のビット単位でデータ・パターンをずらした検索キーを複数個発生して、これらの検索動作を同時に行う点にある。この動作を実現するために、本CAMは、図19に示したCAM構成と比較すると、サーチ線駆動回路群がSDBK15、CAMセルアレイがCAMARY15、マッチ判定回路群がMDBK15、検索キー・レジスタ群がSRGBK15にそれぞれ置き換えられており、更に1:4のデマルチプレクサDMUXが新たに追加されている。
With the above configuration and operation, the CAM according to the present embodiment provides the following effects. That is, by arranging a plurality of comparison circuits in a memory cell, a plurality of search keys can be searched simultaneously. In addition, a plurality of search keys can be generated from the time-division search keys using the search key register group SRGBK13. Therefore, it is possible to realize a CAM that performs an advanced search operation for detecting a desired data pattern from data continuously input such as streaming data at high speed and without being aware of the head of the search key. It becomes possible.
(Embodiment 4)
In the fourth embodiment, another configuration and operation example of the CAM having the function described in the third embodiment will be described. FIG. 26 is a circuit block diagram showing a configuration example of the CAM according to the fourth embodiment of the present invention. There are two features of this CAM as follows. The first feature is that continuous input data such as streaming data is received via the data bus DBS, and a search key and entry search operation having a bit width wider than that of the data bus is performed. In the point. The second feature is that a plurality of search keys in which data patterns are shifted in units of a plurality of bits are generated and these search operations are performed simultaneously. In order to realize this operation, this CAM has a search line drive circuit group of SDBK15, a CAM cell array of CAMARY15, a match determination circuit group of MDBK15, and a search key register group of SRGBK15, as compared with the CAM configuration shown in FIG. And a 1: 4 demultiplexer DMUX is newly added.
CAMセルアレイCAMARY15は、mワード(行)×Nビット(列)(ここで、N=n)の行列状にメモリセルが配置された構成である。ここでは、データ・バス幅がnビットであり、さらに、受信したデータ・パターンをnビット単位でずらした検索キーを発生するものと仮定している。一例として文字列データの検索動作を考えると、1文字は1バイトの符号で表されるので、8ビット(すなわち、n=8)単位でデータ・パターンの異なる検索キーを発生すれば、十分である。図27は、このような文字列データの検索動作を例に、8行×32ビットのCAMセルアレイ構成例が示されている。この例では、同時に処理する検索キーは4本となるので、1ワード毎に4本のマッチ線MLu1(u=1、2、…、4)が配置された構成となる。図26に示したマッチ線群MLBS15は、これら複数のマッチ線MLum(u=1、2、…、4、m=1、2、…、8)で構成され、CAMセルアレイCAMARY15とマッチ判定回路群MDBK15とを接続する。 The CAM cell array CAMARY15 has a configuration in which memory cells are arranged in a matrix of m words (rows) × N bits (columns) (where N = n). Here, it is assumed that the data bus width is n bits and that a search key is generated by shifting the received data pattern in units of n bits. As an example, considering a search operation for character string data, since one character is represented by a 1-byte code, it is sufficient to generate a search key having a different data pattern in units of 8 bits (ie, n = 8). is there. FIG. 27 shows a configuration example of a CAM cell array of 8 rows × 32 bits, taking such a character string data search operation as an example. In this example, since there are four search keys to be processed at the same time, four match lines MLu1 (u = 1, 2,..., 4) are arranged for each word. The match line group MLBS15 shown in FIG. 26 is composed of the plurality of match lines MLum (u = 1, 2,..., 4, m = 1, 2,..., 8), and the CAM cell array CAMARY15 and the match determination circuit group. Connect to MDBK15.
図28は、一例として図27に示したメモリセルMCQ18の構成例を示す回路図である。本メモリセルの特徴は、2値または3値のデータを記憶する一つのメモリ要素MEに対して、複数の比較回路CMPu(u=1、2、…、4)を有する点にある。 FIG. 28 is a circuit diagram showing a configuration example of the memory cell MCQ18 shown in FIG. 27 as an example. The feature of this memory cell is that it has a plurality of comparison circuits CMPu (u = 1, 2,..., 4) for one memory element ME that stores binary or ternary data.
図29は、検索キー・レジスタ群SRGBK15の構成を模式的に示す回路ブロック図である。本検索キー・レジスタ群は、二つのレジスタ群RGBK151、RGBK152で構成され、所謂シフト・レジスタ機能を有する。同図では、前述したCAMセルアレイCAMARY15のビット幅が32(=N=4n、n=8)と仮定されていたことに対応して、32個のレジスタREG1w、REG2w(w=1、2、…、32)でそれぞれ構成される例が示されている。レジスタ群RGBK151は、n(ここでは、n=8)ビットのデータ・バスDBSから1:4のデマルチプレクサDMUX、データ・バスIDBSを介して検索キーを受信する。また、保持する値を、サーチ線群ISLBS151を介してレジスタ群RGBK152およびサーチ線駆動回路群SDBK15にそれぞれ出力する。また、レジスタ群RGBK152は、保持する値を、サーチ線群ISLBS152を介してサーチ線駆動回路群SDBK15にそれぞれ出力する。ここで、サーチ線群ISLBS151はサーチ線ISL1w(w=1、2、…、32)、サーチ線群ISLBS152はサーチ線ISL2w(w=1、2、…、32)でそれぞれ構成され、図30に示すように8ビット単位で組み合わせられて、サーチ線駆動回路群SDBK15からサーチ線群SLBS15を介してCAMセルアレイCAMARY15に接続される。また、サーチ線群SLBS15の構成要素は相補信号であるが、簡単のため非反転信号のみが示されている。 FIG. 29 is a circuit block diagram schematically showing the configuration of the search key / register group SRGBK15. This search key register group is composed of two register groups RGBK151 and RGBK152, and has a so-called shift register function. In the same figure, 32 registers REG1w, REG2w (w = 1, 2,...) Corresponding to the assumption that the bit width of the CAM cell array CAMARY15 is 32 (= N = 4n, n = 8). , 32), respectively. The register group RGBK 151 receives the search key from the n (here, n = 8) bit data bus DBS via the 1: 4 demultiplexer DMUX and the data bus IDBS. The held values are output to the register group RGBK152 and the search line drive circuit group SDBK15 via the search line group ISLBS151, respectively. In addition, the register group RGBK152 outputs the held value to the search line driving circuit group SDBK15 via the search line group ISLBS152. Here, the search line group ISLBS 151 includes search lines ISL1w (w = 1, 2,..., 32), and the search line group ISLBS 152 includes search lines ISL2w (w = 1, 2,..., 32). As shown, they are combined in units of 8 bits, and are connected from the search line driving circuit group SDBK15 to the CAM cell array CAMARY15 via the search line group SLBS15. Further, although the constituent elements of the search line group SLBS15 are complementary signals, only non-inverted signals are shown for simplicity.
次に、検索動作における検索キーについて、図29、図31、図32に従って説明する。図31は、本実施の形態によるCAMがデータ・バスDBSを介して受信する検索キーをサイクル毎に示している。また、図32は、CAMセルアレイCAMARY15に入力される検索キーをサイクル毎に示している。まず、(n−8)サイクル〜(n−5)サイクルにおいて、図31に示したように四分割された検索キーAn(n=1、2、…、32)を受信して、レジスタ群RGBK151に保持する。 Next, search keys in the search operation will be described with reference to FIGS. 29, 31, and 32. FIG. FIG. 31 shows search keys for each cycle received by the CAM according to the present embodiment via the data bus DBS. FIG. 32 shows the search key input to the CAM cell array CAMARY15 for each cycle. First, in (n-8) cycle to (n-5) cycle, the search key An (n = 1, 2,..., 32) divided into four as shown in FIG. 31 is received, and the register group RGBK151 is received. Hold on.
続いて、検索キーAn(n=1、2、…、32)をレジスタ群RGBK132に転送しながら、(n−4)サイクル〜(n−1)サイクルにおいて検索キーBn(n=1、2、…、32)を受信して、レジスタRGBK群RGBK131に保持する。この状態により、図32に示したように検索キーAn(n=1、2、…、32)、Bn(n=1、2、…、32)を降順に並べたデータ・パターンから先頭ビットを8ビットずらした4種類の検索キーを発生してCAMセルアレイに入力することにより、4つの検索キーに関する検索動作を同時に行う。 Subsequently, while transferring the search key An (n = 1, 2,..., 32) to the register group RGBK132, the search key Bn (n = 1, 2,...) In the (n-4) cycle to (n-1) cycle. .., 32) are received and held in the register RGBK group RGBK131. In this state, as shown in FIG. 32, the search bit An (n = 1, 2,..., 32) and Bn (n = 1, 2,..., 32) are arranged in descending order from the data pattern. By generating four types of search keys shifted by 8 bits and inputting them into the CAM cell array, the search operations for the four search keys are performed simultaneously.
さらに、検索キーBn(n=1、2、…、32)をレジスタ群RGBK132に転送しながら、nサイクル〜(n+3)サイクル目において、図31に示したように検索キーCn(n=1、2、…、32)を受信して、レジスタRGBK群RGBK131に保持する。この状態により、図32に示したように検索キーBn(n=1、2、…、32)、Cn(n=1、2、…、32)を降順に並べたデータ・パターンから先頭ビットを8ビットずらした4種類の検索キーを新たに発生してCAMセルアレイに入力することにより、4つの検索キーに関する検索動作を同時に行う。 Further, while transferring the search key Bn (n = 1, 2,..., 32) to the register group RGBK132, as shown in FIG. 31, the search key Cn (n = 1, 2,..., 32) are received and held in the register RGBK group RGBK131. In this state, as shown in FIG. 32, the first bit is extracted from the data pattern in which the search keys Bn (n = 1, 2,..., 32) and Cn (n = 1, 2,. By newly generating four types of search keys shifted by 8 bits and inputting them into the CAM cell array, the search operations for the four search keys are simultaneously performed.
以上の構成と動作により、本実施の形態によるCAMは次のような二つの効果が得られる。第一の効果は、ストリーミング・データのように連続して入力されるデータをデマルチプレクサを介して受信すると共に、検索キー・レジスタ群を用いて一時的に保持することにより、データ・バスよりもビット幅の広い検索キーを複数個発生して、これらの検索動作を同時に行うことができる点にある。第二の効果は、複数のビット単位でデータ・パターンをずらした検索キーを複数個発生して、これらの検索動作を同時に行うことにより、メモリセルの必要な比較回路の数を抑制できる点にある。したがって、メモリセル面積が抑制されることにより、低コストのCAMを実現することが可能となる。 With the above configuration and operation, the CAM according to the present embodiment can obtain the following two effects. The first effect is to receive continuously input data such as streaming data via a demultiplexer and temporarily hold it by using a search key register group, thereby making it more effective than the data bus. A plurality of search keys having a wide bit width can be generated and these search operations can be performed simultaneously. The second effect is that by generating a plurality of search keys in which data patterns are shifted in units of a plurality of bits and performing these search operations simultaneously, the number of necessary comparison circuits of the memory cells can be suppressed. is there. Therefore, by suppressing the memory cell area, it is possible to realize a low-cost CAM.
なお、以上では、データ・バスDBSのバス幅が8ビットの場合について説明したが、バス幅はこの限りではなく、種々の変形が可能である。例えば、32ビットの場合は1:4デマルチプレクサが不要となり、2サイクルでシフト・レジスタ群に検索キーが格納される。この状態で4つの検索キーが発生されて、同時に検索されるので、更にスループットを向上することが可能となる。
(実施の形態5)
本実施の形態5では、実施の形態1〜4で説明したメモリセルにおけるメモリセル要素MEの構成例について説明する。図33は、ダイナミック・ランダム・アクセス・メモリ(DRAM)で所謂ツインセルと呼ばれる公知の構成である。ここでは、キャパシタの対向電極にプレート電圧VPLTが印加される例が示されている。NMOSトランジスタN211、N212、キャパシタC211、C212で構成され、記憶ノードSN、SNbが記憶データに応じた電圧レベルに保持される。ここで、図3に示したメモリセル構成の場合、Cell Data 1、Cell Data 2が記憶ノードSNb、SNに対応している。この構成では、少ない素子数でメモリ要素を構成されるので、CAMの集積度を向上することができる。
In the above, the case where the bus width of the data bus DBS is 8 bits has been described. However, the bus width is not limited to this, and various modifications can be made. For example, in the case of 32 bits, a 1: 4 demultiplexer is unnecessary, and a search key is stored in the shift register group in two cycles. In this state, four search keys are generated and searched simultaneously, so that the throughput can be further improved.
(Embodiment 5)
In the fifth embodiment, a configuration example of the memory cell element ME in the memory cell described in the first to fourth embodiments will be described. FIG. 33 shows a known configuration called a so-called twin cell in a dynamic random access memory (DRAM). Here, an example is shown in which the plate voltage VPLT is applied to the counter electrode of the capacitor. NMOS transistors N211 and N212, capacitors C211 and C212, and storage nodes SN and SNb are held at a voltage level corresponding to storage data. Here, in the case of the memory cell configuration shown in FIG. 3,
図34はメモリセル要素MEの別の例として、スタティック・ランダム・アクセス・メモリ(SRAM)におけるメモリセルと同じ構成が示されている。データを保持するために交差結合されたNMOSトランジスタN221、N222、PMOSトランジスタP221、P222と、メモリセル選択用のNMOSトランジスタN225、N226で構成される。本メモリ要素は、CAM以外の論理回路と同じCMOSトランジスタを用いて構成することができるので、CAMの製造工程が簡素化されて、低コストで製造可能となる。したがって、本CAMを搭載する所謂システム・オン・チップ(SoC)と呼ばれるシステムLSIを低コストで実現するのに好適である。 FIG. 34 shows the same configuration as a memory cell in a static random access memory (SRAM) as another example of the memory cell element ME. This is composed of NMOS transistors N221 and N222, PMOS transistors P221 and P222, and NMOS transistors N225 and N226 for selecting memory cells, which are cross-coupled to hold data. Since this memory element can be configured using the same CMOS transistor as the logic circuit other than the CAM, the manufacturing process of the CAM is simplified and can be manufactured at low cost. Therefore, it is suitable for realizing a system LSI called a so-called system on chip (SoC) on which the present CAM is mounted at low cost.
図35は、図34に示したメモリ要素に加えて、更にNMOSトランジスタN231、N232、N235、N236、PMOSトランジスタP231、P232で構成されるメモリ要素を二つ組み合わせた構成である。各々のメモリ要素と相補信号の授受を行うために、サーチ線BL8T、BL8Bが追加される。また、比較回路への接点となる記憶ノードを各々のSRAMセルに定める。このような構成は、図33に示したツインセル構成をダイナミック型からスタティック型に置き換えた構成と考えれば、ターナリ・データ(“0”、“1”、“X”:マスク・データ)を記憶することができることは容易に理解できる。
(実施の形態6)
本発明によるCAMは、オフチップすなわち単体デバイスに限らず、図36に示すような所謂システム・オン・チップ(SoC)と呼ばれるシステムLSIに搭載されるCAMブロックにも適用することが可能であり、これまで述べた実施の形態と同様の効果が得られて、高度のパターン・マッチング処理を行うシステムLSIを実現することが可能できる。同図の例は、中央処理演算装置CPU、リード・オンリー・メモリROM、ランダム・アクセス・メモリRAM、インタフェイス制御モジュールIOCTL、各種アクセラレータACR、本発明によるCAMが搭載された検索エンジンSEが、システム・バスSYSBSを介して接続された構成である。
(実施の形態7)
本発明によるCAMは、さらに、オフチップすなわち単体デバイスとして拡張カードに実装して、図37に示すような情報処理装置の周辺機器の一種である検索アクセラレータにも適用することが可能であり、これまで述べた実施の形態と同様の効果が得られて、付加価値の高いシステムを実現することが可能できる。同図の例は、中央処理演算装置CPU、グラフィック・チップGRPC、RAMモジュールRAMMDL、メモリ・コントローラMCTL、IOコントローラIOCTL、ローカル・エリア・ネットワーク・インタフェイスLANIF、ユニバーサル・シリアル・バス・ポートUSBPT、PCIポートPCIPT、ハード・ディスク・ドライブHDD、ベーシック・インプット・アウトプット・システムBIOSで構成される、所謂パーソナル・コンピュータ(PC)の基本的なシステム構成を示したものである。
FIG. 35 shows a configuration in which two memory elements including NMOS transistors N231, N232, N235, N236 and PMOS transistors P231, P232 are combined in addition to the memory elements shown in FIG. Search lines BL8T and BL8B are added to exchange complementary signals with the respective memory elements. In addition, a storage node serving as a contact point for the comparison circuit is determined for each SRAM cell. Such a configuration stores ternary data (“0”, “1”, “X”: mask data) if the twin cell configuration shown in FIG. 33 is replaced with a dynamic type instead of a static type. You can easily understand that you can.
(Embodiment 6)
The CAM according to the present invention is not limited to an off-chip, that is, a single device, but can be applied to a CAM block mounted on a system LSI called a so-called system on chip (SoC) as shown in FIG. The same effects as those of the above-described embodiments can be obtained, and a system LSI that performs advanced pattern matching processing can be realized. In the example shown in the figure, a central processing unit CPU, a read only memory ROM, a random access memory RAM, an interface control module IOCTL, various accelerators ACR, and a search engine SE equipped with a CAM according to the present invention A configuration connected via a bus SYSBS.
(Embodiment 7)
The CAM according to the present invention can be further applied to a search accelerator which is a kind of peripheral device of an information processing apparatus as shown in FIG. The same effects as those of the embodiments described above can be obtained, and a system with high added value can be realized. The example in the figure shows a central processing unit CPU, graphic chip GRPC, RAM module RAMMDL, memory controller MCTL, IO controller IOCTL, local area network interface LANIF, universal serial bus port USBPT,
このようなシステムにおいて、本発明によるCAMを搭載した検索エンジン・カードSECDをPCIポートPCIPTを介して追加することにより、高度のパターン・マッチング処理を行うシステムを実現することが可能となる。また、メモリ・コントローラMCTLとIOコントローラIOCTLとの間のバスや中央演算装置CPUを開放することが可能となるので、ウィルス検索を行いながら、ウェブ閲覧や画像鑑賞などのような他のタスクを、単独動作の場合と同じようにスムーズに行うことが可能となる。
(実施の形態8)
従来のパターン・マッチング処理では、検索アルゴリズムを実行して逐次検索を行っていたために、検索時間の短縮が困難である。一方、専用LSIを用いればパターン・マッチング処理の大幅な高速化が期待できる。本発明によるCAMは、これまで述べた実施の形態から、情報処理装置のハード・ディスク・ドライブのような主記憶装置内におけるウィルス検索やファイル検索などに好適である。
In such a system, by adding a search engine card SECD equipped with a CAM according to the present invention via the PCI port PCIPT, it is possible to realize a system that performs advanced pattern matching processing. In addition, since it becomes possible to open the bus between the memory controller MCTL and the IO controller IOCTL and the central processing unit CPU, other tasks such as browsing the web and viewing images while performing virus scanning, As in the case of the single operation, it can be performed smoothly.
(Embodiment 8)
In the conventional pattern matching process, the search algorithm is executed and the search is performed sequentially, so that it is difficult to shorten the search time. On the other hand, if a dedicated LSI is used, it is expected that the pattern matching process will be significantly accelerated. The CAM according to the present invention is suitable for virus search and file search in a main storage device such as a hard disk drive of an information processing device, from the embodiments described so far.
図38の例は、図36に示したパーソナル・コンピュータ(PC)に用いられるハード・ディスク・ドライブHDDに本CAMが適用された場合の要部回路ブロック構成例を示している。同図のハード・ディスク・ドライブは、磁気ディスクMDSKとヘッドHDで構成される機械的な部分とプリント基板に複数の半導体装置が搭載された制御回路群CTLBKとで構成される。同図では、後者のCTLBK制御回路群CTLBKは、リード・ライト・チャネルRWCNL、ハード・ディスク制御回路HDCTL、インタフェイス回路IFBK、マイクロ・プロセッサ・ユニットMPU、モータ・ドライバMDRV、キャッシュCS、ウィルス検索アクセラレータVACLとで構成される。リード・ライト・チャネルRWCNLは、内部バスBS261を介してヘッドHDに接続され、磁気ディスクとの間でデータの授受を行う。これらのデータは、内部バスBS262を介して接続されるハード・ディスク制御回路HDCTLで制御される。ハード・ディスク制御回路HDCTLは、また、内部バスBS263からインタフェイス回路IFCKT、インテグレイテッド・デバイス・エレクトロニクス・バスIDEBSとを介して、外部のIOコントローラIOCTLとの間でデータの授受を行う。ハード・ディスク制御回路HDCTLは、さらに、内部バスBS264を介してマイクロ・プロセッサ・ユニットMPU、内部バスBS266を介してキャッシュCS、内部バスBS267を介してウィルス検索アクセラレータVACLとそれぞれ接続される。マイクロ・プロセッサ・ユニットMPUは、ハード・ディスク制御回路HDCTLが転送処理するデータを解析して、動作に応じた制御信号やアドレス信号を各回路ブロックに出力する。例えば、これらの信号の一つは内部バス265を介してモータ・ドライバMDRVに出力され、モータ制御バスMCBSを介して磁気ディスクMDSKとヘッドHDに送信されることにより、ヘッドHDは所望の位置に移動して、回転する磁気ディスクMDSKからの読み出し動作あるいは磁気ディスクMDSKへの書き込み動作を行う。キャッシュCSは、ハード・ディスク制御回路HDCTLが授受するデータを一時的に保持する回路ブロックである。ウィルス検索アクセラレータVACLは、本発明によるコンテント・アドレッサブル・メモリCAM26を搭載する半導体装置であり、ウィルスのデータ・パターンをエントリとして予め記憶すると共に、ハード・ディスク制御回路HDCTLが授受するデータを検索キーとして受信して、パターン・マッチング処理を行う。 The example of FIG. 38 shows a configuration example of a main circuit block when the present CAM is applied to a hard disk drive HDD used in the personal computer (PC) shown in FIG. The hard disk drive shown in FIG. 1 includes a mechanical part including a magnetic disk MDSK and a head HD and a control circuit group CTLBK in which a plurality of semiconductor devices are mounted on a printed circuit board. In the figure, the latter CTLBK control circuit group CTLBK includes a read / write channel RWCNL, a hard disk control circuit HDCTL, an interface circuit IFBK, a micro processor unit MPU, a motor driver MDRV, a cache CS, and a virus search accelerator. And VACL. The read / write channel RWCNL is connected to the head HD via the internal bus BS261, and exchanges data with the magnetic disk. These data are controlled by the hard disk control circuit HDCTL connected via the internal bus BS262. The hard disk control circuit HDCTL also exchanges data with the external IO controller IOCTL from the internal bus BS263 via the interface circuit IFCKT and the integrated device electronics bus IDEBS. The hard disk control circuit HDCTL is further connected to the micro processor unit MPU via the internal bus BS264, the cache CS via the internal bus BS266, and the virus detection accelerator VACL via the internal bus BS267. The microprocessor unit MPU analyzes the data transferred by the hard disk control circuit HDCTL and outputs a control signal and an address signal corresponding to the operation to each circuit block. For example, one of these signals is output to the motor driver MDRV via the internal bus 265 and transmitted to the magnetic disk MDSK and the head HD via the motor control bus MCBS, so that the head HD is moved to a desired position. It moves and performs a read operation from the rotating magnetic disk MDSK or a write operation to the magnetic disk MDSK. The cache CS is a circuit block that temporarily holds data exchanged by the hard disk control circuit HDCTL. The virus search accelerator VACL is a semiconductor device on which the content addressable memory CAM 26 according to the present invention is mounted. The virus search accelerator VACL stores in advance a virus data pattern as an entry and uses data transferred by the hard disk control circuit HDCTL as a search key. Receive and perform pattern matching.
以上の構成による、パターン・マッチング処理では、次のような二つの効果が得られる。第一に、ハード・ディスク・ドライブ内でパターン・マッチング処理が行われるために、データへのアクセス時間およびパターン・マッチング処理時間が短縮されて、ウィルス検索やファイル検索などの所要時間を短縮することが可能となる。第二に、ハード・ディスク・ドライブ内でパターン・マッチング処理が行われるために、図36に示したメモリ・コントローラMCTLとIOコントローラIOCTLとの間のバスや中央演算装置CPUを開放することが可能となる。したがって、ウィルス検索を行いながら、ウェブ閲覧や画像鑑賞などのような他のタスクを、単独動作の場合と同じようにスムーズに行うことが可能となる。 In the pattern matching process with the above configuration, the following two effects can be obtained. First, since pattern matching processing is performed in the hard disk drive, data access time and pattern matching processing time are shortened, and the time required for virus scanning and file scanning is shortened. Is possible. Second, since pattern matching processing is performed in the hard disk drive, it is possible to open the bus between the memory controller MCTL and the IO controller IOCTL shown in FIG. 36 and the central processing unit CPU. It becomes. Therefore, it is possible to smoothly perform other tasks such as browsing the web and viewing images while performing virus scanning, as in the case of the single operation.
なお、図39は、図38に示したウィルス検索アクセラレータVACLに搭載されるコンテント・アドレッサブル・メモリCAM26の要部回路ブロックの一例を示している。CAMコアCAMCRは、これまでの実施の形態で説明したCAMが適用され、内部バスINTBSから暗号化回路CRYCKTを介して内部バスBS267に接続されている。暗号化回路CRYCKTは、エントリおよび検索キーを暗号化する回路であり、CAMコアCAMCRは、暗号化されたデータのパターン・マッチング処理を行う。このような構成と動作により、エントリを保護することができるので、信頼度の高いウィルス検索システムを実現することが可能となる。 FIG. 39 shows an example of a main circuit block of the content addressable memory CAM 26 mounted in the virus detection accelerator VACL shown in FIG. The CAM core CAMCR is applied with the CAM described in the above embodiments, and is connected from the internal bus INTBS to the internal bus BS267 via the encryption circuit CRYCKT. The encryption circuit CRYCKT is a circuit that encrypts the entry and the search key, and the CAM core CAMCR performs a pattern matching process on the encrypted data. With such a configuration and operation, entries can be protected, and a highly reliable virus detection system can be realized.
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、メモリセルは、DRAMセルやSRAMセルをベースとした構成以外とすることも可能である。例えば、フラッシュ・メモリや強誘電体RAM(フェロエレクトリック・ランダム・アクセス・メモリ)、MRAM(マグネトレジスティブ・ランダム・アクセス・メモリ)、相変化メモリなどのメモリセルを適用することも可能である。この場合、いずれも不揮発性のメモリセル構造であるので、電源遮断事故が起こっても、短時間に検索動作を再開することができる。また、実施の形態1〜実施の形態7を適宜組み合わせることにより、高度のパターン・マッチング処理を高いスループットで行う検索システムを低コストで実現可能となる。 As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say. For example, the memory cell may have a configuration other than a DRAM cell or SRAM cell. For example, a memory cell such as a flash memory, a ferroelectric RAM (ferroelectric random access memory), an MRAM (magnetoressive random access memory), or a phase change memory can be applied. In this case, since both have a nonvolatile memory cell structure, the search operation can be resumed in a short time even if a power interruption accident occurs. Further, by appropriately combining the first to seventh embodiments, a search system that performs high-level pattern matching processing with high throughput can be realized at low cost.
CAMARY,CAMARY13,CAMARY15…CAMセルアレイ、
SDBK,SDBK13,SDBK15…サーチ線駆動回路群、
WDBK…ワード・ドライバ群、
RWBK…読み書き回路群、
ELRBK…エントリ属性フラグ信号レジスタ群、
RRWBK…レジスタ読み書き検索回路群、
MDBK,MDBK13,MDBK15…マッチ判定回路群、
LYBK,LY1WBK,LY2WBK,LY3WBK…レイテンシ制御回路群、
PDCBK…優先度決定回路群、
PE…プライオリティ・エンコーダ、
GPE…グローバル・プライオリティ・エンコーダ、
SRGBK13,SRGBK15…検索キー・レジスタ群、
RGBK131,RGBK132,RGBK151,RGBK152…レジスタ群、
DBS…データ・バス、
SLBS,SLBS13,SLBS15,ISLBS131,ISLBS132,ISLBS151,ISLBS152…サーチ線群、
WLBS1,WLBS2…ワード線群、
BLBS…ビット線群、
MLBS,MLBS13,MLBS15…マッチ線群、
RBLBS…レジスタ・ビット線群、
MLBS…マッチ線群、
HTBS1,HTBS2,HTBS3,HTBS4…ヒット線群、
EAFBS…エントリ属性フラグ信号群、
ELBS…エントリ長フラグ信号群、
PWMEi(i=1,2,…,m)…1ワード当りのCAMセルアレイ要素、
PWREi(i=1,2,…,m)…1ワード当りのエントリ属性フラグ信号レジスタ要素、
PWMEi(i=1,2,…,m)…1ワード当りのマッチ判定回路要素、
LY1Wh(h=1,2,…,m)…1ワード当りのレイテンシ制御回路要素、
LY2Wg(g=1,2,…,m)…1エントリ当りのレイテンシ制御回路要素、
LY3Wf(f=1,2,…,m)…1エントリ当りのレイテンシ制御回路要素、
MCin(i=1,2,…,m),MCOij, MCQij(i=1,2,…,m、j=1,2,…,n)…メモリセル、
REGi1,REGi2(i=1,2,…,m)…レジスタ、
MDi(i=1,2,…,m)…マッチ判定回路、
LAi(i=1,2,…,m)…ラッチ、
φ1…ラッチ制御信号、
SLi,SLBi(i=1,2,…,m),SLti,SLBi(t=1,2,…,8、i=1,2,…,m)…サーチ線、
MLi(i=1,2,…,m),MLsi(s=1,2,…,n、i=1,2,…,m),MLum(u=1,2,…,4、m=1,2,…,8)…マッチ線、
HT1i,HT2i,HT3i,HTMEi,HTCMBi,DHT12i,DHT13i,HT12i,HT13i,HT14i,DHT21i,DHT22i(i=1,2,…,m),DHT1,HT12,DHT12…ビット線、
EAFi1,EAFBi1,EAFi2,EAFBi2…エントリ属性フラグ信号、
SWETi,SWEBi,DWETi,DWEBi,TWETi,TWEBi,MWETi,MWECBi(i=1,2,…,m)…エントリ長フラグ信号、
PWLYEi(i=1,2,…,m)…レイテンシ制御回路要素
LYDEC…レイテンシ制御デコーダ、
LYSG…レイテンシ選択ゲート、
LYAJT…レイテンシ調整回路、
MECMB…多分割エントリ結合回路、
IV61,IV62,IV63,IV64,IV65,IV66,IV67,IV68,IV69,IV71,IV72,IV91,IV92…インバータ回路、
CTG61,CTG62,CTG63,CTG64,CTG65,CTG66,CTG67,CTG68…CMOS伝達ゲート、
ND61,ND62,ND63,ND64,ND65,ND71,ND72,ND73,ND74,ND75,ND76,ND91,ND92…NAND回路、
NR61,NR62…NOR回路、
DFF61,DFF62,DFF63,DFF71,DFF72,DFF73,DFF91,DFF92…Dプリップ・フロップ、
ICLK…内部クロック信号、
FP,SP,TP…信号伝播経路を示す矢印、
メモリ要素…ME、
N151,N152,N161,N162,N163,N164,N211,N212,N221,N222,N223,N224,N231,N232,N233,N234…NMOSトランジスタ、
P221,P222,P231,P232…PMOSトランジスタ、
C211,C212…キャパシタ、
CPU…中央処理演算装置、
ROM…リード・オンリー・メモリ、
RAM…ランダム・アクセス・メモリ、
IOCTL…インタフェイス制御モジュール、
ACR…各種アクセラレータ、
SE…検索エンジンSE、
SYSBS…システム・バス、
GRPC…グラフィック・チップ、
RAMMDL…RAMモジュール、
MCTL…メモリ・コントローラ、
IOCTL…IOコントローラ、
LANIF…ローカル・エリア・ネットワーク・インタフェイス、
USBPT…ユニバーサル・シリアル・バス・ポート、
PCIPT…PCIポート、
HDD…ハード・ディスク・ドライブ、
SECD…検索エンジン・カード、
BIOS…ベーシック・インプット・アウトプット・システム、
CAM、CAM26…コンテント・アドレッサブル・メモリ、
HDD…ハード・ディスク・ドライブ、
CTLBK…制御回路群、
MDSK…磁気ディスク、
HD…ヘッド、
IDEBS…IDEバス、
IFBK…インタフェイス回路、
HDCTL…ハード・ディスク制御回路、
MPU…マイクロ・プロセッサ・ユニット、
MDRV…モータ・ドライバ、
RWCNL…リード・ライト・チャネル、
CS…キャッシュ、
VACL…ウィルス検索アクセラレータ、
CAMCR…CAMコア、
BS261,BS262,BS263,BS264,BS265,BS266,BS267…内部バス、
IDEBS…インテグレイテッド・デバイス・エレクトロニクス・バス、
INTBS…内部バス。
CAMARY, CAMARY13, CAMARY15 ... CAM cell array,
SDBK, SDBK13, SDBK15... Search line driving circuit group,
WDBK: Word driver group,
RWBK: Read / write circuit group,
ELRBK ... Entry attribute flag signal register group,
RRWBK: Register read / write search circuit group,
MDBK, MDBK13, MDBK15 ... match determination circuit group,
LYBK, LY1WBK, LY2WBK, LY3WBK ... latency control circuit group,
PDCBK ... priority determination circuit group,
PE ... priority encoder,
GPE ... Global priority encoder,
SRGBK13, SRGBK15 ... Search key register group,
RGBK131, RGBK132, RGBK151, RGBK152 ... registers,
DBS ... Data bus,
SLBS, SLBS13, SLBS15, ISLBS131, ISLBS132, ISLBS151, ISLBS152 ... search line group,
WLBS1, WLBS2 ... word line group,
BLBS ... bit line group,
MLBS, MLBS13, MLBS15 ... match line group,
RBLBS: Register bit line group,
MLBS ... match line group,
HTBS1, HTBS2, HTBS3, HTBS4 ... Hit line group,
EAFBS ... entry attribute flag signal group,
ELBS: Entry length flag signal group,
PWMEi (i = 1, 2,..., M)... CAM cell array element per word,
PWREi (i = 1, 2,..., M)... Entry attribute flag signal register element per word,
PWMEi (i = 1, 2,..., M)... Match determination circuit element per word,
LY1Wh (h = 1, 2,..., M)... Latency control circuit element per word,
LY2Wg (g = 1, 2,..., M)... Latency control circuit element per entry,
LY3Wf (f = 1, 2,..., M)... Latency control circuit element per entry,
MCin (i = 1, 2,..., M), MCOij, MCQij (i = 1, 2,..., M, j = 1, 2,..., N).
REGi1, REGi2 (i = 1, 2, ..., m) ... registers,
MDi (i = 1, 2,..., M) ... match determination circuit,
LAi (i = 1,2, ..., m) ... Latch,
φ1 ... Latch control signal,
SLi, SLBi (i = 1, 2,..., M), SLti, SLBi (t = 1, 2,..., 8, i = 1, 2,..., M).
MLi (i = 1, 2,..., M), MLsi (s = 1, 2,..., N, i = 1, 2,..., M), MLum (u = 1, 2,..., 4, m = 1,2, ..., 8) ... match line,
HT1i, HT2i, HT3i, HTMEi, HTCMBi, DHT12i, DHT13i, HT12i, HT13i, HT14i, DHT21i, DHT22i (i = 1, 2,..., M), DHT1, HT12, DHT12.
EAFi1, EAFBi1, EAFi2, EAFBi2 ... entry attribute flag signal,
SWETi, SWEBi, DWETi, DWEBi, TWETi, TWEBi, MWETi, MWECBi (i = 1, 2,..., M)... Entry length flag signal,
PWLYEi (i = 1, 2,..., M) ... Latency control circuit element LYDEC ... Latency control decoder,
LYSG ... Latency selection gate,
LYAJT ... Latency adjustment circuit,
MEMMB: Multi-segment entry coupling circuit,
IV61, IV62, IV63, IV64, IV65, IV66, IV67, IV68, IV69, IV71, IV72, IV91, IV92 ... inverter circuit,
CTG61, CTG62, CTG63, CTG64, CTG65, CTG66, CTG67, CTG68 ... CMOS transmission gate,
ND61, ND62, ND63, ND64, ND65, ND71, ND72, ND73, ND74, ND75, ND76, ND91, ND92 ... NAND circuit,
NR61, NR62 ... NOR circuit,
DFF61, DFF62, DFF63, DFF71, DFF72, DFF73, DFF91, DFF92 ... D plip flop,
ICLK: Internal clock signal,
FP, SP, TP ... arrows indicating signal propagation paths,
Memory element ... ME,
N151, N152, N161, N162, N163, N164, N211, N212, N221, N222, N223, N224, N231, N232, N233, N234 ... NMOS transistors,
P221, P222, P231, P232 ... PMOS transistors,
C211, C212 ... capacitors,
CPU: Central processing unit,
ROM ... Read only memory,
RAM ... Random access memory,
IOCTL: Interface control module,
ACR ... various accelerators,
SE ... Search engine SE,
SYSBS ... System bus,
GRPC: Graphic chip,
RAMMDL ... RAM module,
MCTL ... Memory controller,
IOCTL ... IO controller,
LANIF ... Local area network interface
USBPT ... Universal serial bus port,
PCIPT ... PCI port,
HDD ... Hard disk drive,
SECD: Search engine card,
BIOS ... Basic input / output system,
CAM, CAM26 ... Content addressable memory,
HDD ... Hard disk drive,
CTLBK: Control circuit group,
MDSK ... magnetic disk,
HD ... Head,
IDEBS ... IDE bus,
IFBK: Interface circuit,
HDCTL ... Hard disk control circuit,
MPU ... micro processor unit,
MDRV: Motor driver
RWCNL: Read / write channel,
CS ... Cash,
VACL: Virus scan accelerator,
CAMCR ... CAM core,
BS261, BS262, BS263, BS264, BS265, BS266, BS267 ... Internal bus,
IDEBS ... Integrated device electronics bus,
INTBS: Internal bus.
Claims (4)
前記CAMセルアレイに検索キーを出力するサーチ線駆動回路群と、
前記CAMセルアレイのワード毎に対応して配置された複数のレジスタを有するエントリ属性フラグ信号レジスタ群と、を有し、
前記CAMセルアレイは、前記メモリセルに異なるビット長を有するエントリを予め記憶し、検索動作時に前記サーチ線駆動回路群から入力された検索キーと、前記エントリとの比較動作を行い、
前記エントリ属性フラグ信号レジスタ群は、前記レジスタのそれぞれに前記エントリが有するビット長に対応した属性情報を保持し、
前記比較動作の結果に応じた一致信号、あるいは不一致信号を前記ワード毎に出力するマッチ判定回路と、
前記レジスタが保持する属性情報に応じて、前記一致信号あるいは不一致信号の論理演算およびレイテンシの追加を前記エントリ毎に実行するレイテンシ制御回路群と、
前記属性情報に応じて、そのビット長の長い順に、エントリに対応する一致信号をプライオリティ・エンコーダに出力する優先度決定回路群とを具備する半導体装置。 A CAM cell array including a plurality of memory cells arranged in the word line and bit line directions;
A search line driving circuit group for outputting a search key to the CAM cell array;
An entry attribute flag signal register group having a plurality of registers arranged corresponding to each word of the CAM cell array,
The CAM cell array previously stores entries having different bit lengths in the memory cell, and performs a comparison operation between the search key input from the search line driving circuit group during the search operation and the entry,
The entry attribute flag signal register group holds attribute information corresponding to the bit length of the entry in each of the registers,
A match determination circuit that outputs a match signal according to the result of the comparison operation or a mismatch signal for each word;
A latency control circuit group for executing a logical operation of the match signal or the mismatch signal and adding a latency for each entry according to the attribute information held by the register;
A semiconductor device comprising: a priority determination circuit group that outputs a match signal corresponding to an entry to a priority encoder in order of increasing bit length according to the attribute information.
前記CAMセルアレイにおいて、少なくとも一つのワード線方向を単位としてバンク化されたサブCAMセルアレイと、
前記サブCAMセルアレイに検索キーを出力するサーチ線駆動回路群と、
グローバル・プライオリティ・エンコーダと、を有し、
前記サブCAMセルアレイは、それぞれビット長の異なるエントリを予め記憶し、検索動作時に前記サーチ線駆動回路群から入力された検索キーと、前記エントリとの比較動作を行い、
さらに、前記比較動作の結果に応じた一致信号、あるいは不一致信号を前記ワード毎に出力するマッチ判定回路と、
複数のDフリップ・フロップを有するレイテンシ制御回路群と、
前記一致信号が発生されたワードに応じた出力信号を発生するプライオリティ・エンコーダと、を具備し、
前記グローバル・プライオリティ・エンコーダは、前記複数のサブCAMセルアレイにおける前記プライオリティ・エンコーダの出力を受けて、一致アドレスを出力する半導体装置。 A CAM cell array including a plurality of memory cells arranged in the word line and bit line directions;
In the CAM cell array, a sub CAM cell array banked in units of at least one word line direction;
A search line driving circuit group for outputting a search key to the sub-CAM cell array;
A global priority encoder,
The sub CAM cell array stores entries having different bit lengths in advance, and performs a comparison operation between the search key input from the search line driving circuit group during the search operation and the entry,
Further, a match determination circuit that outputs a match signal according to the result of the comparison operation or a mismatch signal for each word, and
A latency control circuit group having a plurality of D flip-flops;
A priority encoder for generating an output signal corresponding to the word in which the match signal is generated,
The global priority encoder is a semiconductor device that receives an output of the priority encoder in the plurality of sub-CAM cell arrays and outputs a coincidence address.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005208027A JP4795740B2 (en) | 2005-07-19 | 2005-07-19 | Semiconductor device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005208027A JP4795740B2 (en) | 2005-07-19 | 2005-07-19 | Semiconductor device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007026560A JP2007026560A (en) | 2007-02-01 |
JP4795740B2 true JP4795740B2 (en) | 2011-10-19 |
Family
ID=37787136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005208027A Expired - Fee Related JP4795740B2 (en) | 2005-07-19 | 2005-07-19 | Semiconductor device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4795740B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6374363B2 (en) * | 2015-08-19 | 2018-08-15 | 株式会社エスビーエル | Building structure, building and construction method |
JP2017097940A (en) * | 2015-11-26 | 2017-06-01 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
JP6659486B2 (en) * | 2016-07-20 | 2020-03-04 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
JP2019117677A (en) * | 2017-12-27 | 2019-07-18 | ルネサスエレクトロニクス株式会社 | Search memory |
US11967377B2 (en) * | 2021-01-08 | 2024-04-23 | Mediatek Singapore Pte. Ltd. | Dynamically gated search lines for low-power multi-stage content addressable memory |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2786364B2 (en) * | 1992-01-13 | 1998-08-13 | 川崎製鉄株式会社 | Associative memory device |
JP3593920B2 (en) * | 1999-05-10 | 2004-11-24 | 日本電気株式会社 | Associative memory with shortest mask output function capable of continuous search operation |
EP1385173A4 (en) * | 2001-04-25 | 2005-10-26 | Terminus Technology Ltd | Associative memory, method for searching the same, network device, and network system |
-
2005
- 2005-07-19 JP JP2005208027A patent/JP4795740B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007026560A (en) | 2007-02-01 |
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 | |
US6137707A (en) | Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device | |
US11107531B2 (en) | Search circuits, hammer address management circuits, and memory systems including the same | |
US6856527B1 (en) | Multi-compare content addressable memory cell | |
JP4541077B2 (en) | Semiconductor memory device | |
US20070113003A1 (en) | Obtaining search results for content addressable memory | |
JP5064171B2 (en) | Associative memory | |
CN108986868A (en) | Content addressable memory and semiconductor device | |
US7251707B1 (en) | Content based content addressable memory block enabling using search key | |
US7219188B1 (en) | Segmented content addressable memory array and priority encoder | |
US7054995B2 (en) | Dynamic linking of banks in configurable content addressable memory systems | |
US8023301B1 (en) | Content addressable memory device having state information processing circuitry | |
JP4795740B2 (en) | Semiconductor device | |
US20180374538A1 (en) | Semiconductor device | |
US7480776B2 (en) | Circuits and methods for providing variable data I/O width for semiconductor memory devices | |
JP4850403B2 (en) | Magnitude contents referenceable memory | |
US6898100B2 (en) | Semiconductor memory device used for cache memory | |
JP5057490B2 (en) | Semiconductor memory device | |
US7095674B2 (en) | Modular register array | |
KR101167272B1 (en) | Binary content addressable memory | |
Mahendra et al. | Design and implementation of drivers and selectors for content addressable memory (CAM) | |
JP5337247B2 (en) | Semiconductor memory device | |
AU2021106221A4 (en) | An improved tcam cell design and method of operation for reduced power dissipation | |
KR101136578B1 (en) | Ternary content addressable memory | |
JP5632797B2 (en) | Associative memory and network address search device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080612 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110624 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110712 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110728 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140805 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |