JP2003256265A - Search memory, controller for memory search, and memory search method - Google Patents

Search memory, controller for memory search, and memory search method

Info

Publication number
JP2003256265A
JP2003256265A JP2002039940A JP2002039940A JP2003256265A JP 2003256265 A JP2003256265 A JP 2003256265A JP 2002039940 A JP2002039940 A JP 2002039940A JP 2002039940 A JP2002039940 A JP 2002039940A JP 2003256265 A JP2003256265 A JP 2003256265A
Authority
JP
Japan
Prior art keywords
search
memory
address
data
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002039940A
Other languages
Japanese (ja)
Inventor
Masaya Mori
Toshio Sunanaga
Shinpei Watanabe
昌也 森
晋平 渡辺
登志男 砂永
Original Assignee
Internatl Business Mach Corp <Ibm>
インターナショナル・ビジネス・マシーンズ・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Internatl Business Mach Corp <Ibm>, インターナショナル・ビジネス・マシーンズ・コーポレーション filed Critical Internatl Business Mach Corp <Ibm>
Priority to JP2002039940A priority Critical patent/JP2003256265A/en
Publication of JP2003256265A publication Critical patent/JP2003256265A/en
Application status is Pending legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Abstract

PROBLEM TO BE SOLVED: To search a large quantity of search targets (contents) at high speed.
SOLUTION: A little circuits (a distributor 12 and a controller 13 for search) are added inside the memory. For a search, the algorithm of a quick search, for example, is utilized, memory cells are repeatedly read, the read results are compared and a compare target is narrowed down on the basis of the compared (sized) result. Valid data can be obtained approximately for the middle bus time and cycle time in the conventional case of repeatedly reading the memory. Since comparison and the generation of the address of the next memory cell can be performed in the latter half of the cycle time, the search can be completed just for the bus time of 'the number of times of repeated read of memory cells' + 'one time'. As a result, a CAM function capable of having not several hundreds to several thousands of entry data like a conventional CAM but the number of entry data dividing the size of a DRAM with the number of banks, namely, several tens of thousands of or more entry data can be achieved.
COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、一般的には、検索対象(コンテンツ)の検索に関し、より詳細には、大量の検索対象(コンテンツ)を高速に検索するための、検索メモリ、メモリ検索用コントローラ、メモリ検索方法に関する。 BACKGROUND OF THE INVENTION [0001] [Technical Field of the Invention The present invention relates generally to search for the search object (content), and more particularly, to a high speed a large number of search object (content) for search, retrieval memory, memory search controller, a memory search methods. なお、本明細書で使用する”検索対象(コンテンツ)の検索”とは、半導体メモリ等の記憶手段に格納することが可能なデータ等の情報の中から、検索対象である特定の情報に一致する情報を見つけることを意味する。 Note that as used herein and "Search search object (content)", from the information data and the like which can be stored in storage means such as a semiconductor memory, matches the particular information to be retrieved which means that to find the information. 【0002】 【従来の技術】従来の一般的なコンテンツの検索は例えば以下に示す手順で行われる。 [0002] search of a conventional content is carried out according to the following procedure for example. (a)データベースを大小順に並べてテーブルを作る。 (A) side-by-side database on the magnitude order to make the table.
そのテーブルの中心に位置するデータ(エントリーデータ)を取り出す。 Retrieving data (entry data) located at the center of the table. (b)与えられたデータ(検索データ)とエントリーデータを比較する。 (B) the given data (search data) is compared with entries data. 検索データが大きければ、データベースの中心より大きい範囲の中心を選択し、検索データが逆に小さければ小さいほうの範囲の中心を選択して取り出す。 The larger the search data, and select the center of the larger range than the center of the database, retrieve and select the center of the range of more search data smaller the reversed. (c)選択されたエントリーデータと検索データを比較する。 (C) comparing the selected entry data search data. (d)その比較およびエントリデータの選択を繰り返して、検索データに一致するデータを特定する。 And (d) repeating the selection of the comparison and entry data, identifies the data matching the search data. なお、この従来の方法は、クイック&ソート(クイックサーチ) In addition, this conventional method, Quick & sort (quick search)
法と呼ばれる。 It called the law. 【0003】この従来の検索の場合、データベース(テーブル)からエントリーデータを取り出す操作ごとに、 [0003] In the case of the conventional search, for each operation to retrieve the entry data from the database (table),
データベースが格納されているメモリからデータを読み出す必要がある。 It is necessary to read data from a memory that contains the database. そして、その読み出し後にデータの比較を行うという操作を繰り返すので、データベースのような巨大なエントリーデータに対する検索には、長い時間を必要とする 。 Since repeated operation of performing comparison of data after the readout, the search for massive entry data, such as a database, require a long time. その検索時間を短くするためには、 In order to shorten the search time,
読み出しと比較の繰り返し操作を迅速におこなう必要がある。 It is necessary to perform quickly the repeat operation compared to reading. その繰り返し操作は、同時に(並行して)多数の検索をおこなうことにより迅速化できる。 The repetition operations may accelerate by simultaneously (in parallel) performing multiple search. しかし、従来の技術では、CPUが比較をおこなうので、同時に(並行して)多数の検索をおこなうためには、複数のCPU However, in the conventional art, since the CPU performs the comparison, in order to simultaneously (in parallel) performing multiple searches, a plurality of CPU
とメモリの組み合わせが必要となる。 A combination of memory is required. 【0004】 【発明が解決しようとする課題】本発明の目的は、大量の検索対象(コンテンツ)を高速に検索することである。 [0004] The present invention is to provide an object of the present invention is to search a large amount of the search target (content) to high speed. 【0005】本発明の目的は、複数のCPUとメモリの組み合わせを必要とすることなく、同時に(並行して) An object of the present invention, without requiring a combination of CPU and memory, at the same time (in parallel)
多数の検索をおこなうことである。 It is to perform a large number of search. 【0006】 【課題を解決するための手段】本発明は、メモリ内部に検索の為の回路(コントローラ)を追加し、かつメモリセルを複数のバンクに分けて、複数の検索をそれぞれのバンクに対して振り分けて同時に行う事により、高速な検索を実現する。 [0006] According to an aspect of the present invention, additional circuitry for the search in the internal memory (controller), and dividing the memory cells into a plurality of banks, a plurality of search for each of the banks by performing at the same time are distributed for, to realize a high-speed search. 【0007】本発明を用いることによる特徴は以下のとおりである。 [0007] wherein by the use of the present invention is as follows. メモリの外部にあるメモリコントローラは、検索命令を出してから結果を受け取るまでの間待つのではなく、検索命令を最大のメモリバンク数まで連続して出すことができる。 Memory controller external to the memory, the search instruction rather than waiting until it receives the results from the out can issue search instructions continuously up to the maximum number of memory banks. そして、検索命令を受け取った後、処理を行っていないバンクに対して、検索処理を振り分ける事により同時に検索を実行できる。 Then, after receiving the search instruction, to the bank the process has not been performed, it can be executed at the same time search by distributing the search process. これにより、従来のCAMと異なり、”DRAM等のメモリのサイズ/バンク数”まで、検索対象エントリー数を増やすことができる。 As a result, unlike the conventional CAM, until the "size / number of banks of memory such as DRAM", it is possible to increase the number of search target entry. 言い換えれば、本発明の検索メモリは、 In other words, the search memory of the present invention,
巨大なエントリー数を可能にしたCAMとして機能する。 To function as a CAM that enables the number of huge entry. 【0008】本発明は、メモリ内部に少量の回路(検索用コントローラ等)を追加する。 [0008] The present invention adds a small amount of circuitry (search controller, etc.) in the internal memory. 検索は、例えばクイックサーチのアルゴリズム等を利用し、繰り返しメモリセルの読み出しを行い、読み出した結果を比較し、比較(大小)結果を基にして比較対象を絞り込む。 Search, for example, using a quick search algorithm such as, reads out the repetition memory cell, compares the results of reading, Filter comparison based on the comparison (large and small) results. この一連の処理をメモリの内部で行うことによって、従来のメモリを繰り返しリードする際のバス時間とサイクルタイムの中間程度で有効なデータが得られる。 By performing the series of processes inside the memory, valid data is obtained at about the middle of the bus time and the cycle time at the time of repeatedly leading conventional memory. そして、サイクルタイムの後半の時間で、比較と次のメモリセルのアドレス生成を行う事ができるので、”メモリセルの繰り返しリード回数”プラス”1回”のバス時間のみで検索を終了する事ができる。 Then, in the second half of the cycle time, since it is possible to perform the address generation of comparison and the next memory cell, able to end the search only in the bus time of the "repeated read count of the memory cell" plus "one-time" is it can. その結果、従来のCAMの様に数百から数千のエントリデータ数ではなく、DRAM のサイズをバンク数で割っ た数、すなわち、数万以上のエントリデータ数を持つことができるCAM機能を達成することができる。 As a result, rather than the number of entries data of several hundred to several thousand as of the conventional CAM, the number obtained by dividing the size of the DRAM in the number of banks, that is, achieve the CAM function that can have a number of number more than 10,000 of the entry data can do. 【0009】本発明の構成は例えば以下のとおりである。 [0009] configuration of the present invention is as follows, for example. (1)少なくと二2以上のバンクを有するメモリセルと検索用コントローラを含む検索メモリ(2)少なくとも二以上のバンクを有するメモリセルと検索用コントローラと分配器とを含む検索メモリ(3)インターフェイスを介してCPUと接続し、さらに少なくとも二以上のバンクを有するメモリに接続するメモリ検索用コントローラであって、前記CPUから受け取るサーチ用のアドレス情報に基づき前記メモリの検索アドレスを生成するためのアドレス発生器と、前記検索アドレスに対応する前記バンクに格納されているデータと前記CPUから受け取る検索用データとを比較するための比較器とを含むメモリ検索用コントローラ(4)少なくとも二以上のバンクを有するメモリで検索をおこなうための方法であって、(a)検索アド (1) less the two search memories (2) including the search controller and a memory cell having two or more banks search memory (3) including a memory cell having at least two or more banks and retrieval controller distributor interface connected to the CPU via a further a memory search controller connected to a memory having at least two or more banks, an address for generating a search address of said memory based on the address information for the search received from the CPU and generator, a memory search controller (4) at least two or more banks and a comparator for comparing the search data received from the data stored in the bank corresponding to the search address CPU a method for performing a search in a memory having, (a) search ad ス情報と検索データを受け取るステップと、(b)前記検索アドレス情報に基づき検索アドレスを生成するステップと、(c)前記バンクの中で検索可能なバンクを検出するステップと、(d)前記検出された検索可能なバンクの前記検索アドレスに対応するデータを読み出すステップと、(e)前記読み出されたデータと前記検索データを比較するステップと、を含むメモリ検索方法【0010】 【発明の実施の形態】本発明の実施の形態(実施例)について、図面を参照しながら説明する。 And receiving scan information and search data, and generating a search address based on (b) the search address information, and detecting a searchable banks in (c) the bank, (d) the detection a step of reading the data corresponding to the said search address searchable banks, implementation of a memory search methods [0010] [invention comprising the steps of comparing the search data and (e) the read out data for embodiments embodiments of the present invention (examples) will be described with reference to the drawings. 図1は本発明の検索メモリの一実施例である。 Figure 1 shows an embodiment of a search memory according to the present invention. 一つのメモリは16バンク(1−1〜4−4)に分けられ、4バンクを一つのグループ14−1〜14−4としている。 One memory is divided into 16 banks (1-1~4-4), and the four banks as one group 14-1 to 14-4. 各バンクのグループ毎に一つのメモリ内部コントローラ(メモリ検索用コントローラ)13−1〜13−4を設けている。 One memory within the controller for each group of each bank is provided with a (memory search controller) 13-1 to 13-4. なお、バンク構成はこれに限られるものではなく、任意にバンク数とグループ数を決めることができる。 Incidentally, the bank structure is not limited thereto, it is possible to arbitrarily determine the number of banks and the number of groups. また、メモリとしては例えばDRAMを用いるが、これに限られない。 Further, as the memory use DRAM for example, but is not limited thereto. 各メモリ検索用コントローラ13−1〜13−4 Each memory search controller 13-1 to 13-4
は分配器12に接続する。 It is connected to the distributor 12. 分配器12はインターフェイス(I/F)を介して、外部のメモリコントローラおよびCPU(図示なし)に接続する。 Distributor 12 via an interface (I / F), connected to an external memory controller and a CPU (not shown). 図1の構成において、メモリ10の内部にメモリ検索用コントローラ13 In the configuration of FIG. 1, a memory search controller 13 in the internal memory 10
があることに構成上の第一の特徴がある。 There is a first aspect of the configuration that is. また、メモリのバンクがグループ化され、各グループ毎に検索用コントローラ13があることに第二の特徴がある。 Also, banks of memory are grouped, there is a second feature in that there is a search controller 13 for each group. 【0011】図1の検索メモリの動作の概要は以下のとおりである。 [0011] The outline of the operation of searching the memory of FIG. 1 is as follows. (a)メモリへのデータの書き込みは、一度の書き込みで全てのバンクに同時に同じデータを書き込むことによりおこなう。 (A) writing data to the memory is performed by simultaneously writing the same data to all banks at a time of the write. データの読み出しは、アクセス時点で読み出し可能なバンク、すなわち検索処理を実行していないバンクを選び出して、そのバンクからデータの読み出すことによりおこなう。 Data is read readable bank access point, that is singled out bank that is not performing retrieval processing is performed by reading the data from the bank. (b)分配器12は、外部のメモリコントローラ(CP (B) the distributor 12, an external memory controller (CP
U)から検索命令を受け取ると、検索に使用していないバンクを有するメモリ検索用コントローラ13を選択し、そのコントローラ13に検索命令を送る。 Upon receiving the search instruction from the U), select the memory search controller 13 having a bank not used for the search, and sends the search command to the controller 13. (c)検索命令を受け取ったコントローラ13は、使用していないバンクを用いて検索を開始する。 (C) a controller 13 that has received the search command initiates a search using the bank not in use. 【0012】図2は、分配器12の構成の一実施例を示す図である。 [0012] Figure 2 is a diagram showing an example of the configuration of the distributor 12. 分配器12は、デコーダ120とカウンタ121とセレクタ122を含む。 Distributor 12 includes a decoder 120 and a counter 121 and a selector 122. 図2において、入力されるクロック(CLK)により、バンク数に対応するカウンタ121を動作(カウント)させる。 2, a clock (CLK) input causes the operation of the counter 121 corresponding to the number of banks (counts). 以下、ハーフ(1/2)クロックで一づつ増加するカウンタを想定する。 Below, it is assumed that counter that increases one by one at the half (1/2) clock. デコーダ120は、コマンドバスから送られるコマンドをデコードする。 The decoder 120 decodes the command sent from the command bus. そのコマンドが検索命令の場合、 If the command is a search command,
セレクタ122は、動作しているカウンタの数に応じて、受け取るアドレスや比較データを送るべきコントローラ13を割り振る(選択する)。 The selector 122, in accordance with the number of counter operating, (selects) allocate controller 13 to send the address and compares the data received. 例えば、動作するカウンタの数が0〜3の場合、コントローラ1(図1の1 For example, if the number of counter operating is 0-3, the controller 1 (FIG. 1 1
3−1)が選択され、4〜7の場合はコントローラ2 3-1) is selected, in the case of 4-7 Controller 2
(図1の13−2)が選択される。 (13-2 in FIG. 1) is selected. セレクタ122から、選択されたコントローラへ検索のためのアドレスや比較データが送られる。 From the selector 122, the address and the comparison data for retrieval is sent to the selected controller. そして、一定の検索が行われた後、カウンタ121のカウント値に応じて、セレクタ1 Then, after a certain search has been performed, according to the count value of the counter 121, the selector 1
22は対応するコントローラ13に接続され、コントローラ13から受信するデータ信号とTM信号が外部に出力される。 22 is connected to the corresponding controller 13, the data signal and the TM signal received from the controller 13 is output to the outside. 【0013】図3は、コントローラ13の構成の一実施例を示す図である。 [0013] Figure 3 is a diagram showing an example of a configuration of the controller 13. コントローラ13は、レジスタ13 Controller 13, the register 13
0、比較器131、アドレス発生器132からなる。 0, the comparator 131, an address generator 132. レジスタ130は分配器12を介して送られてくる比較データ(コンテンツ)を格納するとともに比較器131へ出力する(a)。 Register 130 outputs to the comparator 131 stores the comparison data sent through the distributor 12 (content) (a). アドレス発生器132は、分配器12 Address generator 132, the distributor 12
を介して送られてくるアドレス情報(アドレスの検索範囲A)に基づき(b)、メモリセル(バンク)14から読み出すアドレスを生成し出力する(c)。 Based on via sent come address information (search range A address) (b), generating an address for reading from the memory cell (bank) 14 and outputs (c). ここで、アドレスの検索範囲Aの中心のアドレスが生成される。 The address of the center of the search range A of address is generated. メモリセル(バンク)14から、その生成されたアドレスに対応するデータが読み出され、比較器131に入力される(d)。 From the memory cell (bank) 14, data corresponding to the generated address is read out, is input to the comparator 131 (d). 比較器131は、分配器12を介して送られてくる比較データ(コンテンツ)とメモリセル(バンク)14から読み出されたデータを比較する。 The comparator 131 compares the read comparison data sent through the distributor 12 (content) from the memory cell (bank) 14 data. 比較器1 Comparator 1
31は、比較結果として、その2つのデータの大小関係(”>”or”<”or”=”)をアドレス発生器13 31, as a comparison result, the address generator the size relationship of the two data ( ">" or "<" or "=") 13
2へ出力する(e)。 And outputs it to the 2 (e). 【0014】アドレス発生器132は、その比較結果に基づき、既述のアドレス検索範囲Aの前半範囲あるいは後半範囲を選択する。 [0014] The address generator 132, based on the comparison result, selects the first half range or late range of aforementioned address search range A. アドレス発生器132は、その選択された範囲Bの中心のアドレスを新たな読み出しアドレスとして生成し、メモリセルへ出力する(f)。 Address generator 132 generates an address of the center of the selected range B as a new read address, and outputs to the memory cell (f). メモリセル(バンク)14から、その新たに生成されたアドレスに対応するデータが読み出され、比較器131に入力される(g)。 From the memory cell (bank) 14, data corresponding to the newly generated address is read out, is input to the comparator 131 (g). 以上の一連の動作が繰り返され、最終的にアドレスの検索範囲が最小(”1”)になったとき、またはデータの一致(比較結果”=”)が得られたときに、検索が終了する。 Repeats a series of operations described above, when the final search range of addresses is minimized ( "1"), or when matching of the data (comparison result "=") is obtained, the search is finished . コントローラ13は、検索結果を基に、データあるいは”一致”、”不一致”の情報を分配器12、I/Fを介して、外部のメモリコントローラ(CPU)へ出力する(h)。 Controller 13, the search results based on the data or "fit", via the information distributor 12, I / F of "mismatch" is output to the external memory controller (CPU) (h). なお、以上の検索動作は、クイックソートのアルゴリズムを利用した場合の例である。 Incidentally, the above search operation is an example of the case of using the algorithm Quicksort. 【0015】図4は、図1の検索コントローラ1(13 [0015] FIG. 4, the search controller 1 of FIG. 1 (13
−1)のタイミングの例を示した図である。 It is a diagram showing an example of timing of -1). なお、この例は、クイックソート(クイックサーチ)を利用する場合の例である。 Note that this example is an example for using Quicksort (quick search). ”T00”の前半(20)で検索データをバス(I/F)に入力する。 The search data in the first half (20) of the "T00" is input to the bus (I / F). 同時にアドレスバスに検索対象範囲(アドレス)の先頭のアドレスを載せる(2 At the same time put the beginning of the address of the address bus in the search range (address) (2
0)。 0). また、同じタイミングで、サーチインバス(2 In addition, at the same time, search Inn Bath (2
2)に検索対象数(範囲)及びデータの有効ビット数(検索項目データの有効ビット数)を載せる。 2) in the search number (range) and the number of valid bits of the data put (the number of effective bits of the search item data). 【0016】図4のサーチオペレーション(Serach ope [0016] FIG. 4 of the search operation (Serach ope
ration 1)では、与えられた先頭および最終アドレスによって”T02”の前半(24)で検索対象の中間のアドレスを計算し、これに該当するデータの読み出しをメモリセルアレイから行う。 ration 1) In the middle of the address to be searched in the first half (24) of the "T02" by the given start and end address is calculated, reads the data corresponding thereto from the memory cell array. サイクルタイム(25)の中間でデータが確定する。 Intermediate data of the cycle time (25) is determined. その確定したデータと与えられた検索項目データを比較し(26)、比較結果(大小関係:”>”or”<”or”=”)に応じて、次のアドレスを生成する(27)。 Comparing the search item data given its finalized data (26), the comparison result: in response to (the magnitude relationship ">" or "<" or "="), to generate the next address (27). 以下同様に 4つのメモリサイクル(25、28、29、30)を実行した後、サーチアウトバス(Search out Bus) に検索番号とともに、検索結果を返す(23) 。 After running in the same manner as in four of the memory cycle (25,28,29,30) below, along with the search number to search out bus (Search out Bus), the results of the search are returned (23). 【0017】図4のサーチオペレーション2〜4(Sear [0017] The search operation 2-4 of Figure 4 (Sear
ch Operation 2-4)の例は、図1の一つの検索コントローラ(例えば13−1)と4つのバンク(例えば14− Examples of ch Operation 2-4) is one of the search controller in FIG. 1 (e.g. 13-1) and four banks (eg 14
1)の関係を表している。 It represents the relationship of 1). 図3は、各メモリサイクルタイム(25、28、29、30)が2クロックであり、 Fig. 3, each memory cycle time (25,28,29,30) is 2 clock,
メモリセルアレイのアドレス計算(27)が(1/2) Address calculation of the memory cell array (27) is (1/2)
クロック、データ比較(26)が(1/2)クロック各々かかる場合に、一つのコントローラで4つのバンクを制御しているタイミング例である。 Clock, when the data comparison (26) (1/2) clock each such a timing example that controls the four banks in a single controller. つまり、図3の例では、サイクルタイム8nSのメモリとオペレーションクロックを使用した場合、それぞれ4 サイクルで検索を終了した場合、2クロック分の検索命令を与える事によって、”8nsx4”=32ns後に4つ分の検索結果を得られる事になる。 That is, in the example of FIG. 3, when using the memory and operation clock of the cycle time 8 ns, when the search ends in four cycles, respectively, by giving the two clocks search command, "8nsx4" = 4 one after 32ns It will be obtained the minutes of the search results. したがって、8nsに一回の検索が可能となる。 Therefore, it is possible to search once 8ns. これをオペレーションブロック、すなわち図1の他のコントローラと4つのバンクを並行して利用する(増やす)ことにより、”8nS”÷”オペレーションブロック数”の割合で検索が可能となる。 This operations block, i.e. parallel use of other controllers and four banks of FIG. 1 (increase) by, it is possible to search at a rate of "8 ns" ÷ "operation blocks". その結果、例えばオペレーションブロック数を4とした場合、 If you the result, for example, the number of operations blocks and 4,
外部コントローラ(CPU)からのバス(I/F)を介した一回の検索コマンドの入力により、検索メモリ内部で最大で2nsに1回の割合で検索ができることになる。 The input of the single search command over the bus (I / F) from an external controller (CPU), so that it is searched at a rate of once every 2ns at maximum in the search memory inside. 【0018】以上述べたように、本発明によれば、メモリセルを2以上のバンクに分け、各バンクに同一の内容を格納することによって、多重の検索を同時におこなうことができるので、従来のCAMを用いた検索では困難な大量のデータの検索を高速におこなことができる。 [0018] As described above, according to the present invention, dividing the memory cell to two or more banks, by storing the same contents in each bank, it is possible to perform a search of multiple simultaneous, conventional a search of difficult large amounts of data in the search using the CAM can Okona be at a high speed. そして、本発明は、例えば、ネットワーク用のスイッチやルーターにおいて、パケットの処理時間以内に数十万エントリーのMACアドレステーブルから受信パケットがもつ宛先MACアドレスを高速に検索する場合等に特に有効である。 The present invention is, for example, in the switches and routers for network, is particularly effective in such a case to find the destination MAC address with the received packet from the MAC address table hundreds of thousands of entries within the processing time of a packet at high speed .

【図面の簡単な説明】 【図1】 本発明の検索メモリの一実施例の構成を示す図である。 It is a diagram showing the structure of an embodiment of a search memory BRIEF DESCRIPTION OF THE DRAWINGS [Figure 1] present invention. 【図2】 本発明の分配器の一実施例の構成を示す図である。 2 is a diagram showing the structure of an embodiment of the distributor of the present invention. 【図3】 本発明の検索コントローラの構成の一実施例を示す図である。 3 is a diagram showing an example of a configuration of the search controller of the present invention. 【図4】 本発明の検索コントローラのタイミングの例を示した図である。 Is a diagram showing an example of the timing of the search controller of the present invention; FIG. 【符号の説明】 10:検索メモリ11:インターフェイス(I/F) 12:分配器13:検索コントローラ14:メモリセル(バンク) 120:デコーダ121:カウンタ122:セレクタ130:レジスタ131:比較器132:アドレス発生器 [EXPLANATION OF SYMBOLS] 10: Search Memory 11: Interface (I / F) 12: distributor 13: Search controller 14: a memory cell (bank) 120: Decoder 121: counter 122: Selector 130: Register 131: comparator 132: address generator

───────────────────────────────────────────────────── フロントページの続き (72)発明者 森 昌也 滋賀県野洲郡野洲町大字市三宅800番地 日本アイ・ビー・エム株式会社 野洲事業 所内(72)発明者 渡辺 晋平 滋賀県野洲郡野洲町大字市三宅800番地 日本アイ・ビー・エム株式会社 野洲事業 所内(72)発明者 砂永 登志男 滋賀県野洲郡野洲町大字市三宅800番地 日本アイ・ビー・エム株式会社 野洲事業 所内Fターム(参考) 5B060 MM18 ────────────────────────────────────────────────── ─── of the front page continued (72) inventor Masaya Mori Shiga Prefecture Yasu-gun, Yasu-cho Oaza City Miyake 800 address IBM Japan, Ltd. Yasu plant (72) inventor Shinpei Watanabe Shiga Prefecture Yasu-gun, Yasu-cho Oaza Ichimiyake 800 address IBM Japan, Ltd. Yasu plant (72) inventor SunaHisashi Hitoshi man Shiga Prefecture Yasu-gun, Yasu-cho Oaza City Miyake 800 address IBM Japan, Ltd. Yasu plant F-term (reference) 5B060 MM18

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 少なくとも二以上のバンクを有するメモリセルであって、各々の前記バンクは同一のデータを格納することを含む、メモリセルと、 前記メモリセルと、インターフェイスを介して外部のC A memory cell having a bank [Claims 1] of at least two or more, each said bank and storing the same data, and a memory cell, said memory cell, the interface outside of C through
    PUとに接続する検索用コントローラであって、前記C A search controller connected to the PU, the C
    PUから受け取るサーチ用のアドレス情報に基づき前記メモリセルの検索アドレスを生成するためのアドレス発生器と、前記検索アドレスに対応する前記バンクに格納されているデータと前記CPUから受け取る検索用データとを比較するための比較器と、を含む検索用コントローラと、 を含む検索メモリ。 An address generator for generating the search address of the memory cell based on the address information for the search received from PU, the search data received from the data stored in the bank CPU corresponding to the search address Search memory including, a search controller comprising a comparator for comparing. 【請求項2】 前記検索用コントローラは、前記CPU Wherein said search controller, said CPU
    から受け取る検索用データを格納するレジスタを含む、 A register for storing the search data received from,
    請求項1の検索メモリ。 Search memory of claim 1. 【請求項3】 少なくとも二以上のバンクを有するメモリセルと、 前記メモリセルに接続し、少なくとも一以上の前記バンクごとに対応して設けられる検索用コントローラと、 前記検索用コントローラと、インターフェイスを介して外部のCPUとに接続する分配器であって、前記CPU 3. A memory cell having at least two or more banks, connected to said memory cell, the retrieval controller provided corresponding to each of at least one or more of said banks, and said search controller, via the interface a distributor for connecting to the external CPU Te, the CPU
    から受け取る検索コマンドに応答して、前記バンクの中で検索可能なバンクに対応する前記検索用コントローラに前記検索コマンドを送るための分配器と、 を含む検索メモリ。 In response to a search command received from the search memory containing a distributor for sending the search command to the search controller support searchable banks in the bank. 【請求項4】 各々の前記バンクは同一のデータを格納することを含む、請求項3の検索メモリ。 Wherein each said bank comprises storing the same data, the search memory according to claim 3. 【請求項5】 前記検索用コントローラは、 前記CPUから受け取るサーチ用のアドレス情報に基づき前記メモリセルの検索アドレスを生成するためのアドレス発生器と、 前記検索アドレスに対応する前記バンクに格納されているデータと前記CPUから受け取る検索用データとを比較するための比較器とを含む、請求項3の検索メモリ。 Wherein said search controller, an address generator for generating the search address of the memory cell based on the address information for the search received from the CPU, stored in the bank corresponding to the search address and a comparator for comparing the search data received from the data and the CPU which are search memory according to claim 3. 【請求項6】 インターフェイスを介してCPUと接続し、さらに少なくとも二以上のバンクを有するメモリに接続するメモリ検索用コントローラであって、 前記CPUから受け取るサーチ用のアドレス情報に基づき前記メモリの検索アドレスを生成するためのアドレス発生器と、前記検索アドレスに対応する前記バンクに格納されているデータと前記CPUから受け取る検索用データとを比較するための比較器と、を含むメモリ検索用コントローラ。 6. connected to the CPU via the interface, further comprising a memory search controller connected to a memory having at least two or more banks, search address of said memory based on the address information for the search received from the CPU memory search controller including an address generator for generating, and a comparator for comparing the search data received from the data stored in the bank the CPU corresponding to the search address. 【請求項7】 少なくとも二以上のバンクを有するメモリで検索をおこなうための方法であって、 (a)検索アドレス情報と検索データを受け取るステップと、 (b)前記検索アドレス情報に基づき検索アドレスを生成するステップと、 (c)前記バンクの中で検索可能なバンクを検出するステップと、 (d)前記検出された検索可能なバンクの前記検索アドレスに対応するデータを読み出すステップと、 (e)前記読み出されたデータと前記検索データを比較するステップと、を含むメモリ検索方法。 7. A method for performing a search in a memory having at least two or more banks, receiving a search data and (a) search address information, a search address based on (b) the search address information and generating, reading out data corresponding to (c) detecting a searchable banks in the bank, (d) the search address of the detected searchable banks, (e) memory retrieval method comprising the steps of comparing the search data and the read out data. 【請求項8】 (f)各々の前記バンクに同一のデータを格納するステップをさらに含む、請求項7のメモリ検索方法。 8. (f) to each of the banks further comprising the step of storing the same data, the memory search method of claim 7.
JP2002039940A 2002-02-18 2002-02-18 Search memory, controller for memory search, and memory search method Pending JP2003256265A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002039940A JP2003256265A (en) 2002-02-18 2002-02-18 Search memory, controller for memory search, and memory search method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002039940A JP2003256265A (en) 2002-02-18 2002-02-18 Search memory, controller for memory search, and memory search method
US10/248,781 US6898661B2 (en) 2002-02-18 2003-02-18 Search memory, memory search controller, and memory search method

Publications (1)

Publication Number Publication Date
JP2003256265A true JP2003256265A (en) 2003-09-10

Family

ID=28658903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002039940A Pending JP2003256265A (en) 2002-02-18 2002-02-18 Search memory, controller for memory search, and memory search method

Country Status (2)

Country Link
US (1) US6898661B2 (en)
JP (1) JP2003256265A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006135660A (en) * 2004-11-05 2006-05-25 Alaxala Networks Corp Association memory and packet transfer device
US9530499B2 (en) 2011-07-29 2016-12-27 Kabushiki Kaisha Toshiba Semiconductor memory device and information processing device

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
WO2005104456A1 (en) * 2004-03-31 2005-11-03 Ipt Corporation Fixed length data search device and search management method
US7099170B1 (en) * 2004-09-14 2006-08-29 Netlogic Microsystems, Inc. Reduced turn-on current content addressable memory (CAM) device and method
US7149101B1 (en) * 2004-12-15 2006-12-12 Netlogic Microsystems, Inc. Method and apparatus for smoothing current transients in a content addressable memory (CAM) device with dummy searches
US7447052B1 (en) 2005-08-04 2008-11-04 Netlogic Microsystems, Inc. Method and device for limiting current rate changes in block selectable search engine
WO2007034482A2 (en) * 2005-09-20 2007-03-29 Sterna Technologies (2005) Ltd. A method and system for managing data and organizational constraints
US20080028139A1 (en) * 2006-07-27 2008-01-31 Cypher Robert E Content-addressable memory that supports a priority ordering between banks
US7721042B2 (en) * 2006-07-27 2010-05-18 Oracle America, Inc. Content-addressable memory that supports a priority ordering between banks of differing sizes
CN101794214B (en) * 2009-02-04 2013-11-20 世意法(北京)半导体研发有限责任公司 Register renaming system using multi-block physical register mapping table and method thereof
JP5967967B2 (en) * 2012-02-13 2016-08-10 キヤノン株式会社 The information processing apparatus and control method thereof

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK46493D0 (en) * 1993-04-22 1993-04-22 Frank Uldall Leonhard Method of signal processing for determining the transientforhold in auditory signals
US5893089A (en) * 1996-11-15 1999-04-06 Lextron Systems, Inc. Memory with integrated search engine
US6226710B1 (en) * 1997-11-14 2001-05-01 Utmc Microelectronic Systems Inc. Content addressable memory (CAM) engine
US6532468B2 (en) * 1997-12-25 2003-03-11 Kawasaki Microelectronics, Inc. Binary data search method for selecting from among candidate data, and apparatus therefor
US6314506B1 (en) * 1998-12-28 2001-11-06 Intel Corporation Method and apparatus for determining a next address within a binary search algorithm

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006135660A (en) * 2004-11-05 2006-05-25 Alaxala Networks Corp Association memory and packet transfer device
US9530499B2 (en) 2011-07-29 2016-12-27 Kabushiki Kaisha Toshiba Semiconductor memory device and information processing device

Also Published As

Publication number Publication date
US6898661B2 (en) 2005-05-24
US20030235099A1 (en) 2003-12-25

Similar Documents

Publication Publication Date Title
US6629099B2 (en) Paralleled content addressable memory search engine
US7292162B2 (en) Data coding system and method
US8711638B2 (en) Using storage cells to perform computation
US8266116B2 (en) Method and apparatus for dual-hashing tables
EP0251594B1 (en) Database system for parallel processor
US6240485B1 (en) Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6961810B2 (en) Synchronous content addressable memory
US7213101B1 (en) Classless interdomain routing using binary content addressable memory having mask bits and mask valid bits
US6876559B1 (en) Block-writable content addressable memory device
US5826262A (en) Parallel bottom-up construction of radix trees
US4644471A (en) Method for processing a data base
US5051947A (en) High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream
Dell'Orso et al. VLSI structures for track finding
US6137707A (en) Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
JP3773171B2 (en) Apparatus and method for address parallelism of Cam and ram
Kumar et al. Advanced algorithms for fast and scalable deep packet inspection
US3234521A (en) Data processing system
USRE40932E1 (en) Content addressable memory (CAM) devices that perform pipelined multi-cycle look-up operations using cam sub-arrays and longest match detection
US5946679A (en) System and method for locating a route in a route table using hashing and compressed radix tree searching
US4215402A (en) Hash index table hash generator apparatus
US4959811A (en) Content addressable memory including comparison inhibit and shift register circuits
US6526474B1 (en) Content addressable memory (CAM) with accesses to multiple CAM arrays used to generate result for various matching sizes
JP2812262B2 (en) Content-addressable memory
USRE41992E1 (en) Methods and circuitry for built-in self-testing of content addressable memories
EP0127753B1 (en) Method for executing a distribution sort

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Effective date: 20060221

Free format text: JAPANESE INTERMEDIATE CODE: A131

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060511

A602 Written permission of extension of time

Effective date: 20060516

Free format text: JAPANESE INTERMEDIATE CODE: A602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060815

RD02 Notification of acceptance of power of attorney

Effective date: 20061018

Free format text: JAPANESE INTERMEDIATE CODE: A7422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070403

A521 Written amendment

Effective date: 20070626

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Effective date: 20070731

Free format text: JAPANESE INTERMEDIATE CODE: A02