JPH05298893A - 連想記憶装置 - Google Patents

連想記憶装置

Info

Publication number
JPH05298893A
JPH05298893A JP9830992A JP9830992A JPH05298893A JP H05298893 A JPH05298893 A JP H05298893A JP 9830992 A JP9830992 A JP 9830992A JP 9830992 A JP9830992 A JP 9830992A JP H05298893 A JPH05298893 A JP H05298893A
Authority
JP
Japan
Prior art keywords
register
bit
layer
collation
input
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
JP9830992A
Other languages
English (en)
Inventor
Naoyuki Fukuda
尚行 福田
Noboru Kubo
登 久保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP9830992A priority Critical patent/JPH05298893A/ja
Publication of JPH05298893A publication Critical patent/JPH05298893A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 判定回数を減らし、高速に照合データを出力
する。 【構成】 複数のデータが記憶媒体101に蓄積されて
おり、このデータの中から探索キーワードに照合するデ
ータを照合部104にてシリアルに探索する。探索結果
は対応するビットに書込まれる。各ビットからの出力は
1層目の複数のN入力1出力ORゲート106に入力さ
れる。ゲート106の出力は夫々1層目の高速照合用レ
ジスタの各ビットに入力される。1層目の各ビットから
の出力は2層目のORゲートに入力される。2層目のO
Rゲートの出力は2層目のレジスタの各ビットに入力さ
れる。以下、順次、ORゲートと高速照合用レジスタに
入力される。アドレス参照回路110は制御回路111
の制御のもと最終層のレジスタのビット判定から初め
て、順次、その前の層のビット判定に遡る。この際、第
k層でビット値が1との判定に対応する第k−1層のビ
ットのみがビット判定される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、記憶媒体に蓄積されて
いるデータを探索キーワードとマスクとを用いて探索す
る連想記憶装置に関し、特にビットシリアル、バイトシ
リアル、またはワードシリアルに探索することのできる
連想記憶装置に関する。
【0002】
【従来の技術】連想記憶装置とは、データ記憶領域に蓄
積されているデータの中から探索キーワードに照合する
データを高速に探索することを目的とするものであり、
記憶内容によるアドレシング、データ記憶領域への探索
キーワードの同時分配、探索キーワードとマスクとを用
いた比較の並列処理、照合結果の検知と探索を行うもの
である。このような連想記憶装置は例えば雑誌「コンピ
ュータ(COMPUTER)」の1989年7月号の51頁から64頁に
掲載されたローレンス・チスビン(Lawrence Chisvin)
らの論文「内容アドレス連想記憶(Content-Addressabl
e and Associative Memory)」に記載されている。
【0003】従来、連想記憶を実装するアーキテクチャ
としてはビットシリアル方式、バイトシリアル方式、ワ
ードシリアル方式、及び分散論理メモリがある。ビット
シリアル方式では、データの記憶領域への登録と探索と
をビット単位で行う。バイトシリアル方式では、データ
の記憶領域への登録と探索とをバイト単位で行う。ワー
ドシリアル方式では、データの記憶領域への登録と探索
とをワード単位で行う。ビットシリアル方式、バイトシ
リアル方式、ワードシリアル方式は分散論理メモリに比
べてロジック部分の規模を小さくでき、高密度の設計が
可能となる。従って、大規模な連想メモリにはビットシ
リアル方式、バイトシリアル方式、ワードシリアル方式
が向いているとされている。
【0004】図7に従来の連想記憶装置の構成例を示
す。この連想記憶装置は探索対象となるデータとしてM
個のワードを格納するための記憶領域701を備えてい
る。探索キーワードはキーワードレジスタ702に格納
されている。また、ビット単位のマスクパターンがマス
クレジスタ703に格納されている。
【0005】探索キーワードとデータの照合は記憶領域
701とマスクレジスタ703とに接続する照合部70
4にて行われる。照合部704には、照合の結果として
照合フラグが書き込まれるMビットの照合フラグ用レジ
スタ705が接続されている。照合フラグ用レジスタ7
05には、照合フラグを判定する照合フラグ用判定回路
706が接続されている。連想記憶装置は更に記憶領域
201に接続する検索回路707と、検索回路707に
接続する出力レジスタ708とを備えている。
【0006】ビットシリアル方式にて連想記憶探索を行
う場合のこの装置の動作を以下に説明する。まず、探索
キーワードとマスクパターンがキーワードレジスタ70
2とマスクレジスタ703とから照合部704へ入力さ
れる。一方、探索対象となるデータが記憶領域701か
ら照合部704に入力される。ここで探索対象となるデ
ータはM個のワードであり、これらM個のワードがビッ
ト単位で並列に照合部704に入力される。
【0007】照合部704は、各ワードに対応するM個
の照合回路からなり、各照合回路には探索キーワードと
探索対象となるデータとがビット単位で入力されてい
る。この照合回路は照合されるビットの全てが一致した
場合に1をを出力し、照合されるビットのうち1つでも
不一致がある場合は0を出力するものである。
【0008】各照合回路の出力は照合フラグ用レジスタ
の各ビットに対応し、その結果、探索キーワードと一致
したワードに対応する照合フラグ用レジスタ705のビ
ットにのみフラグが立つ。照合フラグ用レジスタの各ビ
ットには、各ワードに一対一に対応するレジスタアドレ
スが付与されている。
【0009】照合フラグ用判定回路706は照合フラグ
用レジスタ705の各ビットの値をビットシフトしなが
らビット単位で順次読みだしてフラグの値が1のレジス
タアドレスを出力する。検索回路207は照合したレジ
スタアドレスを入力し、記憶領域701の該アドレスで
の内容を読み出して、その内容を出力レジスタ708に
出力する。本例ではビットシリアル方式での照合を示し
たが、バイト単位、もしくはワード単位での照合も同様
に実現できる。
【0010】
【発明が解決しようとする課題】上記したようにビット
シリアル方式による探索では、照合フラグを検出すると
きに検索対象の数だけビットシフトしなければならず、
検索対象の数が多い大規模な連想記憶では、照合速度が
検索対象の数のオーダで遅くなってしまう。
【0011】従って、本発明の目的は、大規模の連想記
憶において照合結果の検出速度を短縮し、高速に探索可
能な連想記憶装置を提供することである。
【0012】
【課題を解決するための手段】上記した本発明の目的
は、複数のデータを蓄積する記憶媒体と、該記憶媒体に
蓄積されたデータの中から探索キーワードに照合するデ
ータをシリアルに探索するための照合手段と、該照合手
段に接続し照合するデータに対応するビットに照合フラ
グが書込まれる照合フラグレジスタと、該照合フラグレ
ジスタの各ビットからの出力が並列に入力される照合フ
ラグを判定するための照合判定手段とを具備し、前記照
合判定手段が複数並列にかつ階層状に配列された多入力
論理和手段及び該論理和手段の出力を判定する判定手段
を有していることを特徴とする連想記憶装置によって達
成される。
【0013】また、上記した本発明の目的は、複数のデ
ータを蓄積する記憶媒体と、該記憶媒体に蓄積されたデ
ータの中から探索キーワードに照合するデータをシリア
ルに探索するための照合手段と、該照合手段に接続し照
合するデータに対応するビットに照合フラグが書込まれ
る第1の照合フラグレジスタと、該第1の照合フラグレ
ジスタに接続し、照合フラグのビット位置を変更するた
めの交換手段と、該交換手段に接続し、変更されたビッ
ト位置にて照合フラグが書込まれる第2の照合フラグレ
ジスタと、該第2の照合フラグレジスタの各ビットから
の出力が並列に入力され、複数並列にかつ階層状に配列
された多入力論理和手段及び該論理和手段の出力を判定
する判定手段を有している照合フラグを判定するための
照合判定手段と、関連のあるデータを第1層目の複数の
多入力論理和手段のうち同一の多入力論理和手段に入力
するように交換手段を切り替える切り替え手段とを具備
することを特徴とする連想記憶装置によっても達成され
る。
【0014】
【作用】上記構成にてなる連想探索装置によれば、最終
層の論理和手段の出力値の判定から初めて、順次、その
論理和手段に入力する前の層の論理和手段に遡りながら
論理和手段の出力値の判定が行われる。最終的に照合フ
ラグレジスタの必要かつ十分な一部分のビットのみの照
合フラグ値の判定が行われる。これにより、判定回数を
著しく減らすことができる。
【0015】
【実施例】以下、本発明の連想記憶装置の一実施例を図
面に基づき詳述する。
【0016】図1に本発明にてなる連想記憶装置の一実
施例の構成を示す。連想記憶装置は探索対象となるデー
タとしてM個のワードを格納するための記憶領域101
を備えている。ここでMは100もしくは1000程度
の数であるが、これ以上であってもかまわない。各ワー
ドは、16ビット、32ビット又は256ビット等のビ
ット長を有するものである。
【0017】探索キーワードはキーワードレジスタ10
2に格納されている。また、ビット単位のマスクパター
ンがマスクレジスタ103に格納されている。
【0018】探索キーワードとデータの照合は記憶領域
101とマスクレジスタ103とに接続する照合部10
4にて行われる。照合部104は第2図に示すように各
ワードに対応するM個の照合回路201からなり、各照
合回路201には探索キーワードと探索対象となるデー
タとがビット単位で入力されている。この照合回路20
1は照合されるビットの全てが一致した場合に1を出力
し、照合されるビットのうち1つでも不一致がある場合
は0を出力するものである。照合回路201は二つの入
力のビット単位の照合を行うための2入力のXOR回路
202と、XOR回路202からの出力が一方の入力端
子に入力される2入力OR回路203と、2入力OR回
路203からの出力がD入力端子に入力され、クロック
CLKに同期してD入力端子に与えられた値をQ出力端
子より出力するDラッチ204と、Dラッチ204のQ
出力端子からの出力を反転するためのインバータ205
とからなり、2入力OR回路203の他方の入力にはD
ラッチ204からの出力が入力されている。
【0019】ここで探索対象となるデータはM個のワー
ドであり、これらM個のワードがビット単位で並列に照
合部104に入力される。各ワードからのビット単位の
入力は各照合回路201のXOR回路202の一方の入
力となり、各照合回路201のXOR回路202の他方
の入力には探索キーワードがビット単位で入力される。
探索対象となるワードからのビット単位の入力と探索キ
ーワードからのビット単位の入力は、まず、XOR回路
202にてビット単位で照合される。XOR回路202
の出力は両者が一致した場合に論理値0となり、不一致
の場合は論理値1となる。XOR回路202の出力はD
ラッチ204に保持され、Q出力の値は両者が一致した
場合に0となり、不一致の場合は1となる。ところで、
OR回路203にはDラッチのQ出力が一方の入力とし
て入力されており、一度でもQ出力に1が表れた場合、
以降はすべてXOR回路202の出力に関係なく、Dラ
ッチのQ出力は1となる。このDラッチのQ出力をイン
バータ205によって反転した信号が、照合回路201
の出力になっているので、従って、照合回路201は照
合されるビットの全てが一致した場合に1をを出力し、
照合されるビットのうち1つでも不一致がある場合は0
を出力する。
【0020】照合部104には照合の結果として照合フ
ラグが書き込まれるMビットの照合フラグ用レジスタ1
05が接続されている。各照合回路の出力は照合フラグ
用レジスタの各ビットに対応し、また照合フラグ用レジ
スタ105の各ビットには、各ワードに一対一に対応す
るレジスタアドレスが付与されている。
【0021】照合フラグ用レジスタ105の各ビットか
らの出力は、レジスタアドレス0からN−1のビットか
らの出力が第1層のN入力1出力ORゲート106の第
1番目のN入力1出力ORゲートに、レジスタアドレス
Nから2N−1のビットからの出力が同じく第2番目の
N入力1出力ORゲートに、以下同様に、レジスタアド
レス(k−1)*Nからk*N−1までのビットからの
出力が第1層のN入力1出力ORゲート106の第k番
目のゲートに入力されるように第1層の並列に設けられ
た複数のN入力1出力ORゲート106に入力されてい
る。
【0022】N入力1出力ORゲートは図3に示すよう
に1つの2入力ORゲート301の出力が次段の2入力
ORゲート302の一方の入力になるように複数の2入
力ORゲートを多段に接続したもので、N個の入力に1
を含む場合は、1を出力するものである。
【0023】第1層のN入力1出力ORゲートの出力線
数、即ち第1層のN入力1出力ORゲートの数は、M/
Nの小数点以下を切り上げた数となる。この場合、N入
力1出力ORゲートに未入力の入力端子が生じる場合
は、予めそのような入力端子には0が与えられている。
【0024】各ゲートの出力は、第1層のN入力1出力
ORゲート106と同数のビットを有する第1層の高速
照合用レジスタ107に入力されている。
【0025】第1層の高速照合用レジスタ107の各ビ
ットからの出力は、第1層のN入力1出力ORゲート1
06に入力したときと同様にして、順に第2層のN入力
1出力ORゲートの各ゲートに入力され、各ゲートの出
力は、第2層のN入力1出力ORゲートと同数のビット
を有する第2層の高速照合用レジスタ107に入力され
ている。以下、複数のN入力1出力ORゲートと高速照
合用レジスタの組合わせで3層、4層と階層状に順次接
続される。
【0026】各層の高速照合用レジスタの各ビットには
照合フラグ用レジスタ105の各ビットと同様にレジス
タアドレスが付与されており、第(k−1)層のレジス
タアドレス値iを有するビットからの出力が、第k層の
レジスタアドレス値jを有するビットに接続するN入力
1出力ゲートに入力されている場合、jはi/Nの小数
点以下を切り上げた数から1減じた数(但し、0≦i<
M/Nk-1 )となる。N入力1出力ORゲートの未入力
の入力端子が生じる場合は、そのような入力端子には予
め0が与えられている。
【0027】最終的には最終層である第K層の単一のN
入力1出力ORゲート108と1ビットの高速照合用レ
ジスタ108が接続される。このとき層数はMがNの累
乗の場合はlogN Mとなる。但し、MがNの累乗でな
い場合はlogN Mの少数点以下を切り上げた数とな
る。
【0028】図示の連想記憶装置は更に照合フラグ用レ
ジスタ105及び各層の高速照合用レジスタに接続する
レジスタアドレス参照回路110を備えている。
【0029】レジスタアドレス参照回路110は、後述
する制御回路112の制御に基づき照合フラグ用レジス
タ105及び各層の高速照合用レジスタの値を読み出
し、その値を判定するもので、特に照合フラグ用レジス
タ105から読み出した値に1がある場合は、制御回路
112の制御に基づき、この値が読み出されたビットの
レジスタアドレスを後述する検索回路に出力するように
構成されている。
【0030】ところで、一般に第(k−1)層の高速照
合用レジスタのレジスタアドレス値iを有するビットか
らの出力が、第k層の高速照合用レジスタのレジスタア
ドレス値jを有するビットに入力するN入力1出力OR
ゲートに入力する場合、N*j≦i<N*(j+1)
(但し、0≦i<M/Nk-1 )となり、N入力1出力O
Rゲートを用いていることから当然ではあるが、一つの
jに対して、N個のiが存在することになる。
【0031】上記したレジスタアドレス参照回路110
は、上記の関係に基づき、第k層のレジスタアドレスi
k から、このレジスタアドレスik を有する第k層の高
速照合用レジスタのビットに入力する第k層のN入力1
出力OR回路の入力となっている第(k−1)層の高速
照合用レジスタのビットのレジスタアドレスA(ik
を算出するためのアドレスジェネレータを有している。
【0032】レジスタアドレス参照回路110に接続す
る制御回路112は、レジスタアドレス参照回路110
がどの層のどのビットを読み出すかを制御するためのも
ので、第K層の高速照合用レジスタの読み出しからビッ
トの読み出しを開始するようにレジスタアドレス参照回
路110を制御するとともに、第k層(kは1からK)
の高速照合用レジスタで値が1となっているビットがあ
る場合は、このビットに付与されているレジスタアドレ
スに基づき第(k−1)層のレジスタアドレスA
(ik )を算出すべくアドレスジェネレータに指示し、
レジスタアドレス参照回路110の第k層での高速照合
用レジスタの読み出しを一時中断し、第(k−1)層の
高速照合用レジスタのアドレスジェネレータで算出され
たレジスタアドレスを有するビットを読み出すようにレ
ジスタアドレス参照回路を制御する。これにより、読み
出して判定した値に1があった場合、順次読み出し及び
判定がその前の層に遡ることになり、最終的に、照合フ
ラグ用レジスタ105からの照合フラグの読み出し及び
判定が行われる。(k−1)層以下の高速照合用レジス
タ及び第0層としての照合フラグ用レジスタ105から
の値の読み出しは総て、この制御回路112の制御のも
とで行われ、従って、各層の照合用レジスタは、アドレ
スジェネレータで算出されたレジスタアドレスを有する
ビットのみが読み出されることになる。
【0033】また、制御回路111は、算出されたN個
のレジスタアドレスA(ik )を有するビットが、レジ
スタアドレス参照回路110によって第(k−1)層で
全て読み出されたら、レジスタアドレス参照回路110
の第k層での読み出しを再開するようにレジスタアドレ
ス参照回路110を制御する。
【0034】本実施例では、制御回路111は、第k層
での読み出しを中断して第(k−1)層の算出されたレ
ジスタアドレスを有するビットの読み出しに移行するた
めに算出されたレジスタアドレスA(ik )のうち最も
小さいものを格納するためのレジスタと、各層での読み
出しの中断を再開できるように、各層での読み出しを中
断したときのレジスタアドレスを格納するための各層に
対応したスタックと、第k層の一つのレジスタアドレス
に対応する第(k−1)層のN個のレジスタアドレスの
うち、いくつのレジスタアドレスが値の判定を終わって
いるかを表すための各層に対応したカウンタを有する。
【0035】検索回路112はレジスタアドレス参照回
路110からの照合したアドレスを入力し、記憶領域1
01の該アドレスと同一のアドレスでの内容を読み出し
て、その内容を出力レジスタ113に出力する。
【0036】以下、ビットシリアル方式にて連想記憶探
索を行う場合のこの装置の動作を説明する。
【0037】図4は本発明の装置が実行する連想記憶探
索を一連のフローチャートとして表したものである。
【0038】まず、探索キーワードとマスクパターンが
キーワードレジスタ102とマスクレジスタ103とか
ら照合部104へ入力される(S1)。一方、探索対象
となるデータが記憶領域101から照合部104に入力
され,各ワードと探索キーワードとの照合が行われ、そ
の結果が照合用フラグレジスタにセットされる(S
2)。
【0039】次いで、照合フラグ用レジスタ105から
層状に接続されたN入力1出力ORゲート及び高速照合
用レジスタによりN入力1出力OR演算が行われ、照合
データがある場合には第K層のレジスタ値が1となり、
ない場合は0となる(S3)。
【0040】制御回路111は、初期設定として、レジ
スタアドレス参照回路110が、まず第K層のレジスタ
の値を読み出すように、現在の読み出しの対象となる層
番号kをKとし、それと同時にレジスタアドレスik
0とする(S4)。
【0041】レジスタアドレス参照回路110は第k層
の高速照合用レジスタのレジスタアドレスik で指定さ
れるビットの値を読み出し、その値が1か否かを判定す
る(S5)。
【0042】制御回路111は、ステップS5でフラグ
値が1と判断されると、ついで層番号kが0でないかを
判断し(S6)、0でないならば、アドレスジェネレー
タにレジスタアドレスik でのA(ik )の計算を指示
し、算出されたN個のアドレスのうち最も小さいものを
スタートアドレスis としてレジスタに一時格納する
(S7)。次ぎに、この層での探索を一時中断するた
め、レジスタアドレスikをikMとしてこの層に対応す
るスタックに格納し(S8)、一つ前の層の高速照合用
レジスタのステップ7で計算されたアドレスを有するビ
ットを読み出すため、(k−1)を新たな層番号kとし
(S9)、またステップ7にてレジスタに一時格納して
あったスタートアドレスis を新たなレジスタアドレス
k とする(S10)。そしてこの層に対応するカウン
タNk を1として、ステップS5に戻る。 以上のステ
ップS5からS11までの工程で、ビットの値が1と判
定される限りは、ビット判定が1つ前の層の高速照合用
レジスタに順次遡ることになる。
【0043】ステップS5にてフラグ値が0と判定され
ると、層番号kが最終層を表すKでないか否かが判断さ
れ(S12)、もしKならば、探索対象となったデータ
の中には照合データが無かったものと判断し、探索を終
了する。
【0044】ステップS12にて層番号kが最終層を表
すKでないと判断されると、ik +1を新たなレジスタ
アドレスik とし(S13)、次いで、この層に対応す
るカウンタNk を1だけインクリメントする(S1
4)。次ぎにカウンタNk のカウント値がNを越えたか
否かが判定され(S15)、Nを越えていない場合は、
この層のレジスタでレジスタアドレスik で指定される
ビットの値を判定するため、ステップS5に戻る。ステ
ップS15にてカウンタNk のカウント値がNを越えた
と判定されると、1つ後の層の高速照合用レジスタから
の読み出しを再開すべく、層番号kを1だけインクリメ
ントし(S16)、層番号kが最終層を表すKより小さ
いか否かを判定し(S17)、小さいならば、この層に
対応するスタックに格納されているikMを新たなik
し(S18)、ステップS13に戻る。ステップS17
にて、層番号kが最終層を表すKより小さくないと判断
されると、総ての層の高速照合用レジスタの参照すべき
ビットの値が判定されたと判断し、探索を終了する。
【0045】以上のステップS13からS18までの工
程で、フラグ値が1のビットを読み出すまでは、順次フ
ラグ値が照合用レジスタから読み出されとともに、1つ
の層でN個のフラグ値が総て読み出され、判定された後
は、一つ後の層の照合用レジスタの読み出しを再開する
ことができる。
【0046】ステップ6にて、kが0と判定されると、
照合用フラグレジスタからフラグ値を読み出していると
判断し、そのときのレジスタアドレスi0 を検索回路1
12に出力するようにアドレス参照回路110に指示
し、アドレス参照回路110は照合アドレスとしてその
ときのレジスタアドレスi0 を出力する。
【0047】検索回路112は、受けとったレジスタア
ドレスi0 のもとに格納されているワードを照合データ
として出力レジスタに出力する(S20)。
【0048】制御回路111は、次ぎのレジスタアドレ
スで指定されるビットのフラグ値を読み出すべく制御を
ステップ13に戻す。
【0049】以上の構成及び動作によれば、照合データ
数が全データ数に比べて十分に小さいときは、たとえ
ば、照合データが一件の場合は、判定回数はN*log
N M+1となり、同じ条件の場合、従来法ではM回のビ
ットシフトと判定が必要になるのに対して、判定回数を
大幅に減らすことができる。
【0050】次に、図5に基づき、より具体的な動作の
説明を行う。
【0051】図5には、探索対象データ数が27で、第
1層に9個の3入力1出力OR回路と9ビットの照合用
レジスタ、第2層に3個の3入力1出力OR回路と3ビ
ットの照合用レジスタ、第3層に1個の3入力1出力O
R回路と1ビットの照合用レジスタを用いた、N=3、
“階層数3(K=3)の連想記憶装置を示す。
【0052】この連想記憶装置の27ビットの照合用フ
ラグ用レジスタのうちレジスタアドレス0で指定される
ビット(図中、最も上のビット)のフラグ値が1でそれ
以外のビットは総て0であるとして、以下制御回路とア
ドレス参照回路の動作を説明する。
【0053】まず、現在の読み出しの対象とされている
照合用レジスタが第何層のものかを表すkは3とし、ま
たレジスタアドレス値は0とする(S4)。第3層の照
合用レジスタを読み出し、読み出したフラグ値が1か否
かを判定する。このとき第3層の照合用レジスタの値は
1なので、読み出された値は1で、ステップS6に進
む。kは0でないので、ステップS7でA(0)として
0、1、2が算出され、その最小値0がis としてレジ
スタに格納される。ステップS8で現在のアドレス値0
を第3層に対応するスタックに格納する。
【0054】kを3から2に代えて(S9)、is とし
てレジスタに格納されている0をレジスタアドレス値と
する(S10)。第2層に対応するカウンタに1をセッ
トし(S10)、第2層のレジスタアドレス値0で指定
されるビットの値を読み出し、読み出された値が1か否
かを判定する(S5)。このとき第2層の照合用レジス
タのレジスタアドレス値0で指定されるビットは1にな
っているので、読み出されたフラグ値は1で、ステップ
S6に進む。kは0でないので、ステップS7でA
(0)として0、1、2が算出され、その最小値0がi
s としてレジスタに格納される。ステップS8で現在の
アドレス値0を第2層に対応するスタックに格納する。
【0055】kを2から1に代えて(S9)、is とし
てレジスタに格納されている0をレジスタアドレス値と
する(S10)。第1層に対応するカウンタに1をセッ
トし(S11)、第1層のレジスタアドレス値0で指定
されるビットの値を読み出し、読み出された値が1か否
かを判定する(S5)。このとき第1層の照合用レジス
タのレジスタアドレス値0で指定されるビットは1にな
っているので、読み出された値は1で、ステップS6に
進む。kは0でないので、ステップS7でA(0)とし
て0、1、2が計算され、その最小値0がis としてレ
ジスタに格納される。ステップS8で現在のアドレス値
0を第1層に対応するスタックに格納する。
【0056】kを1から0に代えて(S9)、is とし
てレジスタに格納されている0をレジスタアドレス値と
する。第0層に対応するカウンタに1をセットし(S1
1)、第0層のレジスタアドレス値0で指定されるビッ
トのフラグ値を読み出し、読み出されたフラグ値が1か
否かを判定する(S5)。このとき第0層の照合用レジ
スタのレジスタアドレス値0で指定されるビットは1に
なっているので、読み出されたフラグ値は1で、ステッ
プS6に進む。kは0なので、ステップS19に進み、
アドレス参照回路からレジスタアドレス値0をデータ検
索回路に出力する(S19)。
【0057】次いでレジスタアドレス値を1だけインク
リメントすることにより1として(S13)、第0層に
対応するカウンタのカウント値を2とする(S14)。
カウント値2は3より大きくないので、第0層のレジス
タアドレス値1で指定されるビットのフラグ値を読み出
し、読み出されたフラグ値が1か否かを判定する(S
5)。このとき第0層の照合用レジスタのレジスタアド
レス値1で指定されるビットは0なのでレジスタアドレ
ス値を2として(S13)、第0層に対応するカウンタ
のカウント値を3として(S14)、カウント値3は3
より大きくないので、第0層のレジスタアドレス値2で
指定されるビットのフラグ値を読み出し、読み出された
フラグ値が1か否かを判定する(S5)。このとき第0
層の照合用レジスタのレジスタアドレス値2で指定され
るビットは0なので、レジスタアドレス値を3として
(S13)、第0層に対応するカウンタのカウント値を
4とする(S14)。
【0058】カウント値4は3より大きいので、kを0
から1に代えて(S16)、1は3より小さいので、第
1層に対応するスタックに格納されているレジスタアド
レス値0を新たなレジスタアドレス値とし(S18)、
このレジスタアドレス値を1だけインクリメントし、レ
ジスタアドレス値1として(S13)、第1層に対応す
るカウンタのカウント値を2とする(S14)。
【0059】カウント値2は3より大きくないので、第
1層のレジスタアドレス値1で指定されるビットのフラ
グ値を読み出し、読み出されたフラグ値が1か否かを判
定する。このとき第1層の照合用レジスタのレジスタア
ドレス値1で指定されるビットは0なのでレジスタアド
レス値を2として(S13)、第1層に対応するカウン
タのカウント値を3とする(S14)。
【0060】カウント値3は3より大きくないので、第
1層のレジスタアドレス値2で指定されるビットのフラ
グ値を読み出し、読み出されたフラグ値が1か否かを判
定する。このとき第1層の照合用レジスタのレジスタア
ドレス値2で指定されるビットは0なので、レジスタア
ドレス値を3として(S13)、第1層に対応するカウ
ンタのカウント値を4とする。
【0061】カウント値4は3より大きいので、kを1
から2に代えて(S16)、2は3より小さいので、第
2層に対応するスタックに格納されているレジスタアド
レス値0を新たなレジスタアドレス値とし(S18)、
このレジスタアドレス値を1だけインクリメントし(S
13)、レジスタアドレス値1として、第2層に対応す
るカウンタのカウント値を2とする(S14)。
【0062】カウント値2は3より大きくないので、第
2層のレジスタアドレス値1で指定されるビットのフラ
グ値を読み出し、読み出されたフラグ値が1か否かを判
定さする(S5)。このとき第2層の照合用レジスタの
レジスタアドレス値1で指定されるビットは0なのでレ
ジスタアドレス値を2として(S13)、第1層に対応
するカウンタのカウント値を3とする(S14)。
【0063】カウント値3は3より大きくないので、第
1層のレジスタアドレス値2で指定されるビットのフラ
グ値を読み出し、読み出されたフラグ値が1か否かを判
定する(S5)。このとき第1層の照合用レジスタのレ
ジスタアドレス値2で指定されるビットは0なので、レ
ジスタアドレス値を3として(S13)、第1層に対応
するカウンタのカウント値を4とする(S14)。
【0064】カウント値4は3より大きいので、kを2
から3に代えて、3は3より小さくないので、探索を終
了する。
【0065】本例によれば、3*log3 27+1、即
ち10回の判定回数ですみ、シリアルに照合用フラグレ
ジスタを読み出した場合の判定回数27回に比べ約1/
3の判定回数で総ての判定が終了でき、極めて高速に照
合データを出力することが可能となる。
【0066】探索キーワードと照合する照合データが複
数ある場合でも、例えば図6に示した構成で、記憶領域
中の上から3つのワードが探索キーワードと照合する照
合データであったとすると、照合用フラグレジスタのレ
ジスタアドレス値0、1、2で示されるビットが1とな
っており、判定回数は照合データが1つのときと変わら
ない。ところが、照合用フラグレジスタ記憶領域中でば
らばらに格納されていた場合、例えば図6に示した構成
で、照合用フラグレジスタのレジスタアドレス値0、
9、18で示されるビットが1となっていた場合は、2
2回の判定が必要となり、高速化が十分になされない。
【0067】図6に、照合用フラグレジスタ記憶領域中
でばらばらに格納されていた場合でも、1度用いたこと
のある探索キーワードでの2度目以降の探索を高速に実
行することを可能とする自己学習機能を備える連想記憶
装置を示す。
【0068】図6に示した連想記憶装置は概ね図1に示
した連想記憶装置と同一の構成を有するものであり、照
合フラグ用レジスタ105と第1層のN入力1出力OR
ゲート106の間にM入力M出力の交換回路(クロス
バ)601とMビットの第2の照合フラグ用レジスタ6
02とを備え、第1層のN入力1出力ORゲートへの入
力が第2の照合フラグ用レジスタ602から成されてい
る点、並びにこれに関連してメモリアクセス制御回路6
03、メモリ回路(RAM)604、及びクロスバ切り
替え回路605を備えている点で図1に示した連想記憶
装置と異なっている。尚、図6において、図1に示した
連想記憶装置と同一の要素は同一の参照番号が付されて
いる。
【0069】交換回路601は照合フラグ用レジスタ1
05の各ビットと第2の照合フラグ用レジスタ602の
各ビットとを一対一に接続するもので、照合フラグ用レ
ジスタ105のどのビットを第2の照合フラグ用レジス
タ602のどのビットに接続するかが、クロスバ切り替
え回路605によって変更することができるものであ
る。交換回路601は例えばルックアップテーブルとす
ることができるが、実際に各ビット間を結線するような
ものでもよい。
【0070】第2の照合フラグ用レジスタ602の各ビ
ットにはレジスタアドレスが付与されており、第1層の
N入力1出力ORゲート側から見たときは、第1図の実
施例におけるに照合フラグ用レジスタ105とまったく
同一にアクセス可能である。更に、第2の照合フラグ用
レジスタ602の各ビットは、各ビットが接続する照合
フラグ用レジスタ105のビットのレジスタアドレスを
も保持している。
【0071】RAM604は例えば全探索対象データ数
の1割り程度の容量をもつもので、レジスタ113から
出力された照合データのアドレス、即ち、照合フラグ用
レジスタ105において1と判定されたフラグのレジス
タアドレスを記憶するためものである。
【0072】メモリアクセス制御回路603は記憶領域
から読み出された照合データのアドレスをRAM604
に書き込むための回路で、レジスタ113から出力がな
される毎に、その照合データのアドレスをRAM604
に格納する。但し、同一のアドレスはRAM604に2
度以上は書き込まないものとする。
【0073】メモリアクセス制御回路603はまたRA
M604が一杯になると、または所定の探索キーワード
での探索が総て終了すると、格納されている内容をクロ
スバ切り替え回路605に出力し、その後、新たな書き
込みのためRAM604をクリアする。
【0074】クロスバ切り替え回路605はRAM60
4から読み出されるアドレスを昇順にクロスバ601の
出力になるように、クロスバ601の結線変更又はルッ
クアップテーブルの書換えを行うものである。
【0075】上記構成における動作を以下に説明する。
【0076】データの探索自体は図4のフローチャート
に従って行われるが、この際、第2の照合フラグ用レジ
スタ602が第0層のレジスタと見做される。また、ア
ドレス参照回路110からは、第2の照合フラグ用レジ
スタ602でフラグ値が1と判定されたビットがある
と、そのビットのレジスタアドレスを出力する代わり
に、このビットが対応する照合フラグ用レジスタ105
のビットのレジスタアドレスが出力される。
【0077】検索回路112はアドレス参照回路110
から出力されたレジスタアドレスに基づきこれと同一の
アドレスに格納されるデータを出力レジスタ113に出
力する。
【0078】メモリアクセス制御回路603は記憶領域
101から読み出された照合データのアドレスをRAM
604に順次書き込む。
【0079】RAM604が一杯になると、メモリアク
セス制御回路603は、RAM604に格納されている
アドレス値を、クロスバ切り替え回路605に出力す
る。
【0080】クロスバ切り替え回路605はRAM60
4から読み出されるアドレスでのフラグが昇順にクロス
バ601の出力になるように、クロスバ601の結線変
更又はルックアップテーブルの書換えを行う。尚、RA
M604から出力されなかったアドレスのフラグ、即
ち、探索キーワードに該当しなかったデータに関するフ
ラグは、RAM604から読み出されるアドレスでのフ
ラグの判定が終わった後にアドレス参照回路にて判定さ
れるように、そのアドレス位置をシフトするものとす
る。
【0081】以上により、所定のキーワードと照合する
データは、相互に関連するデータと見做され、照合フラ
グは第2の照合用フラグレジスタの、同一又は隣接する
第1層のN入力1出力ORゲートに入力する隣接したビ
ットにセットされることになり、このキーワードでの2
度目以降のデータ探索で判定回数を著しく減らすことが
できる。
【0082】一般にk個の照合データが第1層のN入力
1出力ORゲートに1つずつ対応した場合、最悪の判定
回数は、 k*(N−1)*logN M+N+1 であるが、本発明にて、クロスバ書替え後は、例えば、
k≦Nならば、 N*logN M+1 と減少し、データ探索を極めて高速に実行することが可
能になる。
【0083】初期状態では照合フラグ用レジスタ105
の各ビットのレジスタアドレスと照合フラグ用レジスタ
105の各ビットに対応する照合フラグ用レジスタ60
2の各ビットのレジスタアドレスは同一であったとする
と、図6に示した構成で、照合用フラグレジスタ105
のレジスタアドレス値0、9、18で示されるビットが
1となっていた場合の例では、最初の探索では22回の
判定が必要であるが、2度目以降は照合用フラグレジス
タ602のレジスタアドレス値0、1、2で示されるビ
ットが1となり、10回の判定で探索が終了することに
なる。
【0084】第1の実施例、及び第2の実施例はとも
に、最終層Kにて1ビットになるまで階層状の論理和演
算を行うが、本発明はこれに限られず、最終層Kが実際
上、支障とならない程度に十分に小さいビット長であっ
てもよい。
【0085】また、最終層のレジスタアドレスから順次
判定を遡るための方法も、記載された方法に限られるも
のではない。
【0086】
【発明の効果】以上、詳述したように、本願の請求項1
に記載の発明にてなる連想記憶装置によれば、判定回数
を著しく減らすことができ、極めて高速に照合データを
出力することが可能となる。
【0087】また、本願の請求項2に記載の発明にてな
る連想記憶装置によれば、自己学習機能を有し、同一の
探索キーワードを用いた2度目以降のデータ探索を極め
て高速に実行することが可能となる。
【図面の簡単な説明】
【図1】本発明にてなる連想記憶装置の一例の構成を示
すブロック図である。
【図2】図1に示した連想記憶装置の照合部の回路構成
を示す回路図である。
【図3】図1に示した連想記憶装置のN入力1出力OR
ゲートの構成を示す回路図である。
【図4】図1に示した連想記憶装置におけるデータ探索
のフローチャートである。
【図5】データ数が27の場合の連想記憶装置の構成を
示すブロック図である。
【図6】本発明にてなる連想記憶装置の他の例の構成を
示すブロック図である。
【図7】従来の連想記憶装置の構成を示すブロック図で
ある。
【符号の説明】
101、701 記憶領域 102、702 キーワードレジスタ 103、703 マスクレジスタ 104、704 照合部 105、705 照合フラグ用レジスタ 106 第1層目のN入力1出力ORゲート 107 第1層目の高速照合用レジスタ 108 最終層のN入力1出力ORゲート 109 最終層の高速照合用レジスタ 110 アドレス参照回路 111 制御回路 112、707 検索回路 113、708 出力レジスタ 601 交換回路 602 第2の照合フラグ用レジスタ 603 メモリアクセス制御回路 604 RAM 605 クロスバ切り替え回路

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のデータを蓄積する記憶媒体と、該
    記憶媒体に蓄積されたデータの中から探索キーワードに
    照合するデータをシリアルに探索するための照合手段
    と、該照合手段に接続し照合するデータに対応するビッ
    トに照合フラグが書込まれる照合フラグレジスタと、該
    照合フラグレジスタの各ビットからの出力が並列に入力
    される照合フラグを判定するための照合判定手段とを具
    備し、前記照合判定手段が複数並列にかつ階層状に配列
    された多入力論理和手段及び該論理和手段の出力を判定
    する判定手段を有していることを特徴とする連想記憶装
    置。
  2. 【請求項2】 複数のデータを蓄積する記憶媒体と、該
    記憶媒体に蓄積されたデータの中から探索キーワードに
    照合するデータをシリアルに探索するための照合手段
    と、該照合手段に接続し照合するデータに対応するビッ
    トに照合フラグが書込まれる第1の照合フラグレジスタ
    と、該第1の照合フラグレジスタに接続し、照合フラグ
    のビット位置を変更するための交換手段と、該交換手段
    に接続し、変更されたビット位置にて照合フラグが書込
    まれる第2の照合フラグレジスタと、該第2の照合フラ
    グレジスタの各ビットからの出力が並列に入力され、複
    数並列にかつ階層状に配列された多入力論理和手段及び
    該論理和手段の出力を判定する判定手段を有している照
    合フラグを判定するための照合判定手段と、関連のある
    データを第1層目の複数の多入力論理和手段のうち同一
    の多入力論理和手段に入力するように交換手段を切り替
    える切り替え手段とを具備することを特徴とする連想記
    憶装置。
JP9830992A 1992-04-17 1992-04-17 連想記憶装置 Pending JPH05298893A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9830992A JPH05298893A (ja) 1992-04-17 1992-04-17 連想記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9830992A JPH05298893A (ja) 1992-04-17 1992-04-17 連想記憶装置

Publications (1)

Publication Number Publication Date
JPH05298893A true JPH05298893A (ja) 1993-11-12

Family

ID=14216328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9830992A Pending JPH05298893A (ja) 1992-04-17 1992-04-17 連想記憶装置

Country Status (1)

Country Link
JP (1) JPH05298893A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4588114B1 (ja) * 2010-02-18 2010-11-24 克己 井上 情報絞り込み検出機能を備えたメモリ、その使用方法、このメモリを含む装置。
WO2011102432A1 (ja) * 2010-02-18 2011-08-25 Inoue Katsumi 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4588114B1 (ja) * 2010-02-18 2010-11-24 克己 井上 情報絞り込み検出機能を備えたメモリ、その使用方法、このメモリを含む装置。
WO2011102043A1 (ja) * 2010-02-18 2011-08-25 Inoue Katsumi 情報絞り込み検出機能を備えたメモリ、その使用方法、このメモリを含む装置
WO2011102432A1 (ja) * 2010-02-18 2011-08-25 Inoue Katsumi 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路
JP2012252368A (ja) * 2010-02-18 2012-12-20 Katsumi Inoue 情報絞り込み検出機能を備えたメモリ、その使用方法、このメモリを含む装置。
JP5763616B2 (ja) * 2010-02-18 2015-08-12 井上 克己 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路
JP2015222573A (ja) * 2010-02-18 2015-12-10 井上 克己 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路
US9275734B2 (en) 2010-02-18 2016-03-01 Katsumi Inoue Memory having information refinement detection function by applying a logic operation in parallel for each memory address to the match/mismatch results of data items and memory addresses, information detection method using memory, and memory address comparison circuit for the memory

Similar Documents

Publication Publication Date Title
US5349684A (en) Sort and merge system using tags associated with the current records being sorted to lookahead and determine the next record to be sorted
CA1069217A (en) Multistage sorter with concurrent access to interstage buffer memories
US20010052062A1 (en) Parallel computer within dynamic random access memory
JPH0728624A (ja) ソート装置及びソート方法
US7124268B2 (en) Sorting method and apparatus using a CAM
JPH0519238B2 (ja)
US5111465A (en) Data integrity features for a sort accelerator
US5142687A (en) Sort accelerator with rebound sorter repeatedly merging sorted strings
US5185886A (en) Multiple record group rebound sorter
EP0568374B1 (en) Parallelized magnitude comparator for comparing a binary number to a fixed value
US5206947A (en) Stable sorting for a sort accelerator
JPH05298893A (ja) 連想記憶装置
JP3996623B2 (ja) ルックアップしたエントリーの重複検出方法および装置
US5450558A (en) System for translating virtual address to real address by duplicating mask information in real page number corresponds to block entry of virtual page number
US6513053B1 (en) Data processing circuit and method for determining the first and subsequent occurences of a predetermined value in a sequence of data bits
EP0888586B1 (en) Array indexing
JPH0315221B2 (ja)
JPS62137799A (ja) 内容アドレス可能メモリの方法とシステム
JPS6150359B2 (ja)
JPS6143338A (ja) 連想技術を使用して稀薄なデータベースをサーチする方法
EP0065114B1 (en) Method of qualifying and sorting file record data in a text processing system
RU2028664C1 (ru) Устройство для параллельной обработки данных
JPH0315772B2 (ja)
JP2590866B2 (ja) データ検索装置
JPH07302187A (ja) データソーティング方法及びソーティング装置