(57)【要約】【課題】記憶領域を有効に利用することができる半導体装置を提供する。【解決手段】外部から入力されたキー又はデータを供給されたアドレスに格納するメモリ６〜１０と、外部から入力されたキーとメモリ６〜１０が出力するキーとを比較するキー比較部１１〜１５と、外部から入力されたキーを第１のアドレスに多対一対応させる第１ハッシュ関数演算部２と、第１のアドレスを第２のアドレスに一対一対応させる第２の演算を行う第２ハッシュ関数演算部３と、第１又は第２のアドレスをメモリ６〜１０に供給し、データを格納させるデータ書込処理部４と、第１又は第２のアドレスをメモリ６〜１０に供給し、データを読み出すデータ読出処理部５とを具備する。【選択図】  図１
2004213588.tif 000002
【特許請求の範囲】
【請求項１】
キー及びデータを格納するための半導体装置であって、
第１〜第Ｎ（Ｎは、２以上の自然数）の記憶容量をそれぞれ有し、キー及びデータの書き込み時において、外部から入力されたキー又はデータを供給されたアドレスに格納し、キー及びデータの読み出し時において、キー及びデータが供給されたアドレスに格納されている場合に当該キー及びデータを出力し、キー及びデータが供給されたアドレスに格納されていない場合にその旨を表す第１の信号を出力する第１〜第Ｎの記憶部と、
前記第１〜第Ｎの記憶部へのキー及びデータの書き込み時において、前記外部から入力されたキーと前記第１〜第Ｎの記憶部が出力するキーとを比較し、前記外部から入力されたキーと前記第１〜第Ｎの記憶部が出力するキーとが一致する場合に、その旨を表す第２の信号を出力し、前記第１〜第Ｎの記憶部が前記第１の信号を出力する場合に、その旨を表す第３の信号を出力し、前記第１〜第Ｎの記憶部からのキー及びデータの読み出し時において、前記外部から入力されたキーと前記第１〜第Ｎの記憶部が出力するキーとを比較し、前記外部から入力されたキーと前記第１〜第Ｎの記憶部が出力するキーとが一致する場合に、前記第１〜第Ｎの記憶部の内の前記外部から入力されたキーと一致するキーを出力した記憶部が出力したデータを外部に出力する第１〜第Ｎの比較部と、
前記外部から入力されたキーを第１のアドレスに多対一対応させる第１の演算を行う第１の演算部と、
前記第１のアドレスを第２のアドレスに一対一対応させる第２の演算を行う第２の演算部と、
キー及びデータの書き込み時において、前記第１のアドレスを前記第１〜第Ｎの記憶部に供給し、第Ｍ番目（Ｍは、Ｎ以下の自然数）の比較部から前記第２の信号を受け取った場合に、前記外部から入力されたデータを前記第Ｍ番目の記憶部の前記第１のアドレスに格納させ、前記第１〜第Ｎの比較部のいずれからも前記第２の信号を受け取らず且つ前記第１〜第Ｎの比較部の内の１以上の比較部から前記第３の信号を受け取った場合に、前記外部から入力されたキー及びデータを、前記第１〜第Ｎの記憶部の内の前記第１の信号を出力した記憶部を第１の順序で配列した場合における最初の記憶部の前記第１のアドレスに格納させ、前記第１〜第Ｎの比較部のいずれからも前記第２の信号を受け取らず且つ前記第１〜第Ｎの比較部のいずれからも前記第３の信号を受け取らなかった場合に、前記第２のアドレスを前記第１〜第Ｎの記憶部に供給し、第Ｌ番目（Ｌは、Ｎ以下の自然数）の比較部から前記第２の信号を受け取った場合に、前記外部から入力されたデータを前記第Ｌ番目の記憶部の前記第２のアドレスに格納させ、前記第１〜第Ｎの比較部のいずれからも前記第２の信号を受け取らず且つ前記第１〜第Ｎの比較部の内の１以上の比較部から前記第３の信号を受け取った場合に、前記外部から入力されたキー及びデータを、前記第１〜第Ｎの記憶部の内の前記第１の信号を出力した記憶部を第２の順序で配列した場合における最初の記憶部の前記第２のアドレスに格納させる第１の処理部と、
データの読み出し時において、前記第１のアドレスを前記第１〜第Ｎの記憶部に供給し、前記第１〜第Ｎの比較部のいずれからも前記第２の信号を受け取らなかった場合に、前記第２のアドレスを前記第１〜第Ｎの記憶部に供給する第２の処理部と、
を具備する半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キー及びデータを格納するための半導体装置に関する。
【０００２】
【従来の技術】
従来より、メモリに格納されているデータを高速に読み出すためのハッシュと呼ばれる技術が用いられている。この技術では、（ｉ）データを、当該データを一意に特定するキーに対応づけ、（ｉｉ）キーをある関数（ハッシュ関数と呼ばれる）によって変換した結果として得られた出力をキー及びデータを格納するためのアドレスとし、（ｉｉｉ）このようにして得られたアドレスに、キー及びデータを格納する。また、データの読み出し時には、キーをハッシュ関数によってアドレスに変換し、このアドレスに格納されているデータを読み出す。
【０００３】
一般に、ハッシュ関数においては、入力と出力が多対一対応であるため、複数の異なるキーが同一のアドレスに変換される場合がある（以下、「アドレスの重複」ともいう）。このようなアドレスの重複を防止するため、キーを変換した結果として得られるアドレスがアドレス空間に一様に分布するようなハッシュ関数を用いることが望ましいが、そのようなハッシュ関数を求めることは困難である。そのため、あるアドレスにはキー及びデータが多数集中する一方、他のアドレスにはキー及びデータが存在しないという場合が生ずる。
このようなアドレスの重複が生じた場合であっても、キー及びデータを格納することが可能な技術として、オープンハッシュ、クローズドハッシュ等がある。
【０００４】
オープンハッシュ等の技術を用いた場合には、ある程度のアドレスの重複が生じた場合に、キー及びデータを格納することが可能である。しかしながら、オープンハッシュ等の技術を用いた場合であっても、ある程度以上のアドレスの重複が生じた場合には、キー及びデータを格納することができない。そのため、記憶領域を有効に利用することができなかった。
【０００５】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、記憶領域を有効に利用することができる半導体装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係る半導体装置は、キー及びデータを格納するための半導体装置であって、第１〜第Ｎ（Ｎは、２以上の自然数）の記憶容量をそれぞれ有し、キー及びデータの書き込み時において、外部から入力されたキー又はデータを供給されたアドレスに格納し、キー及びデータの読み出し時において、キー及びデータが供給されたアドレスに格納されている場合に当該キー及びデータを出力し、キー及びデータが供給されたアドレスに格納されていない場合にその旨を表す第１の信号を出力する第１〜第Ｎの記憶部と、第１〜第Ｎの記憶部へのキー及びデータの書き込み時において、外部から入力されたキーと第１〜第Ｎの記憶部が出力するキーとを比較し、外部から入力されたキーと第１〜第Ｎの記憶部が出力するキーとが一致する場合に、その旨を表す第２の信号を出力し、第１〜第Ｎの記憶部が第１の信号を出力する場合に、その旨を表す第３の信号を出力し、第１〜第Ｎの記憶部からのキー及びデータの読み出し時において、外部から入力されたキーと第１〜第Ｎの記憶部が出力するキーとを比較し、外部から入力されたキーと第１〜第Ｎの記憶部が出力するキーとが一致する場合に、第１〜第Ｎの記憶部の内の外部から入力されたキーと一致するキーを出力した記憶部が出力したデータを外部に出力する第１〜第Ｎの比較部と、外部から入力されたキーを第１のアドレスに多対一対応させる第１の演算を行う第１の演算部と、第１のアドレスを第２のアドレスに一対一対応させる第２の演算を行う第２の演算部と、キー及びデータの書き込み時において、第１のアドレスを第１〜第Ｎの記憶部に供給し、第Ｍ番目（Ｍは、Ｎ以下の自然数）の比較部から第２の信号を受け取った場合に、外部から入力されたデータを第Ｍ番目の記憶部の第１のアドレスに格納させ、第１〜第Ｎの比較部のいずれからも第２の信号を受け取らず且つ第１〜第Ｎの比較部の内の１以上の比較部から第３の信号を受け取った場合に、外部から入力されたキー及びデータを、第１〜第Ｎの記憶部の内の第１の信号を出力した記憶部を第１の順序で配列した場合における最初の記憶部の第１のアドレスに格納させ、第１〜第Ｎの比較部のいずれからも第２の信号を受け取らず且つ第１〜第Ｎの比較部のいずれからも第３の信号を受け取らなかった場合に、第２のアドレスを第１〜第Ｎの記憶部に供給し、第Ｌ番目（Ｌは、Ｎ以下の自然数）の比較部から第２の信号を受け取った場合に、外部から入力されたデータを第Ｌ番目の記憶部の第２のアドレスに格納させ、第１〜第Ｎの比較部のいずれからも第２の信号を受け取らず且つ第１〜第Ｎの比較部の内の１以上の比較部から第３の信号を受け取った場合に、外部から入力されたキー及びデータを、第１〜第Ｎの記憶部の内の第１の信号を出力した記憶部を第２の順序で配列した場合における最初の記憶部の第２のアドレスに格納させる第１の処理部と、データの読み出し時において、第１のアドレスを第１〜第Ｎの記憶部に供給し、第１〜第Ｎの比較部のいずれからも第２の信号を受け取らなかった場合に、第２のアドレスを第１〜第Ｎの記憶部に供給する第２の処理部とを具備する。
【０００７】
以上の構成によれば、記憶領域を有効に利用することができる。
【０００８】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
図１は、本発明の一実施形態に係る半導体装置を示す図である。図１に示すように、半導体装置１は、第１ハッシュ関数演算部２と、第２ハッシュ関数演算部３と、データ書込処理部４と、データ読出処理部５と、メモリ６〜１０と、キー比較部１１〜１５とを具備する。
【０００９】
第１ハッシュ関数演算部２には、外部回路からキーが入力される。第１ハッシュ関数演算部２は、入力されたキーを第１のアドレスに多対一対応させる第１のハッシュ関数
ｙ＝ｈａｓｈ１（ｘ）  ・・・（１）
の演算を行う。（１）式において、ｘは入力されたキーであり、ｙは第１のアドレスである。第１ハッシュ関数演算部２は、入力されたキーに基づいて算出した第１のアドレスを第２ハッシュ関数演算部３、データ書込処理部４、及び、データ読出処理部５に出力する。
【００１０】
第２ハッシュ関数演算部３は、第１のアドレスを第２のアドレスに一対一対応させる第２のハッシュ関数
ｙ＝ｈａｓｈ２（ｘ）  ・・・（２）
の演算を行う。（２）式において、ｘは第１のアドレスであり、ｙは第２のアドレスである。第２ハッシュ関数演算部３は、第１のアドレスに基づいて算出した第２のアドレスをデータ書込処理部４及びデータ読出処理部５に出力する。なお、第２のハッシュ関数は、入力ｘ（第１のアドレス）と出力ｙ（第２のアドレス）が同じ値にならないような関数となっている。第２のハッシュ関数としては、キーのＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）を反転し、更にＧｒａｙ  Ｃｏｄｅ変換する関数等を用いることができる。
【００１１】
半導体装置１のデータ書き込み動作時において、外部回路から、キーが第１ハッシュ関数演算部２、データ書込処理部４、及び、キー比較部１１〜１５に入力され、データ、及び、ライト信号がデータ書込処理部４に入力される。ここで、図２〜図７を参照しながら、半導体装置１のデータ書き込み動作について説明する。図２〜図７は、メモリ６〜１０に格納されているキー及びデータを示す図である。
【００１２】
メモリ６〜１０は、同じ記憶容量を有しており、同じアドレス空間にマッピングされている。本実施形態においては、図２に示すように、キーａ及びデータαがメモリ６のアドレスＡに、キーｂ及びデータβがメモリ７のアドレスＡに、キーｃ及びデータγがメモリ８のアドレスＡに、それぞれ格納されているものとする。また、キーｈ及びデータθがメモリ６のアドレスＣに、キーｉ及びデータιがメモリ７のアドレスＣに、キーｊ及びデータκがメモリ８のアドレスＣに、キーｋ及びデータλがメモリ９のアドレスＣに、キーｌ及びデータμがメモリ１０のアドレスＣに、それぞれ格納されているものとする。さらに、キーｎ及びデータξがメモリ６のアドレスＤに、キーｏ及びデータοがメモリ７のアドレスＤに、キーｐ及びデータπがメモリ６のアドレスＥに、それぞれ格納されているものとする。このとき、
Ａ＝ｈａｓｈ１（ａ）＝ｈａｓｈ１（ｂ）＝ｈａｓｈ１（ｃ）・・・（３）
Ｃ＝ｈａｓｈ１（ｈ）＝ｈａｓｈ１（ｉ）＝ｈａｓｈ１（ｊ）＝ｈａｓｈ１（ｋ）＝ｈａｓｈ１（ｌ）  ・・・（４）
Ｄ＝ｈａｓｈ１（ｎ）＝ｈａｓｈ１（ｏ）  ・・・（５）
Ｅ＝ｈａｓｈ１（ｐ）  ・・・（６）
である。
【００１３】
ここで、
Ａ＝ｈａｓｈ１（ｄ）  ・・・（７）
Ｄ＝ｈａｓｈ２（Ａ）  ・・・（８）
となるようなキーｄ、データδ、及び、ライト信号が外部回路から半導体装置１に入力されると、第１ハッシュ関数演算部２は、第１のアドレスとしてのアドレスＡを第２ハッシュ関数演算部３及びデータ書込処理部４に出力し、第２ハッシュ関数演算部３は、第２のアドレスとしてのアドレスＤをデータ書込処理部４に出力する。
データ書込処理部４は、アドレスＡ及びＤを受け取ると、まず、アドレスＡをメモリ６〜１０に出力する。
【００１４】
メモリ６〜８は、アドレスＡが入力されると、キーａ〜ｃをキー比較部１１〜１３にそれぞれ出力し、メモリ９及び１０は、キー及びデータが格納されていないことを表す第１の信号（例えば、０ｘｆｆｆｆ等）をキー比較部１４及び１５に出力する。
データ書き込み動作時において、キー比較部１１〜１５は、外部回路から入力されているキーとメモリ６〜１０が出力するキーとを比較して一致するか否かをそれぞれ判断し、一致する場合にはその旨を表す第２の信号をデータ書込処理部４及びデータ読出処理部５に出力する。ここでは、外部回路から入力されるキーｄとメモリ６〜８がそれぞれ出力するキーａ〜ｃとが一致しないため、キー比較部１１〜１３は、第２の信号を出力しない。また、キー比較部１４及び１５は、メモリ９及び１０のアドレスＡにキー及びデータが格納されていないことを表す第３の信号をデータ書込処理部４にそれぞれ出力する。
【００１５】
データ書込処理部４は、第１のアドレス（ここでは、アドレスＡ）を出力したときに、キー比較部１１〜１５のいずれかから第２の信号を受信した場合には、メモリ６〜１０の内のキーｄを格納しているメモリのアドレスＡにデータδを格納（上書き）させる。また、データ書込処理部４は、キー比較部１１〜１５のいずれからも第２の信号を受け取らず且つキー比較部１１〜１５の内の１以上の比較部から第３の信号を受け取った場合に、キーｄ及びデータδを、メモリ６〜１０の内の第１の信号を出力したメモリをメモリ６からメモリ１０に向かう順序でチェックした場合における最初のメモリのアドレスＡに格納させる。
本実施形態においては、キー比較部１１〜１３のいずれもが第２の信号を出力せず、また、キー比較部１４及び１５が第３の信号をそれぞれ出力するため、データ書込処理部４は、キーｄ及びデータδをメモリ９のアドレスＡに格納させる。図３は、メモリ９のアドレスＡにキーｄ及びデータδが格納された様子を示す図である。
【００１６】
次に、
Ａ＝ｈａｓｈ１（ｅ）  ・・・（９）
Ｄ＝ｈａｓｈ２（Ａ）  ・・・（１０）
となるようなキーｅ、データε、及び、ライト信号が外部回路から半導体装置１に入力されると、第１ハッシュ関数演算部２は、第１のアドレスとしてのアドレスＡを第２ハッシュ関数演算部３及びデータ書込処理部４に出力し、第２ハッシュ関数演算部３は、第２のアドレスとしてのアドレスＤをデータ書込処理部４に出力する。
データ書込処理部４は、アドレスＡ及びＤを受け取ると、まず、アドレスＡをメモリ６〜１０に出力する。
【００１７】
メモリ６〜９は、アドレスＡを受け取ると、キーａ〜ｄをキー比較部１１〜１４にそれぞれ出力し、メモリ１０は、第１の信号をキー比較部１５に出力する。
キー比較部１１〜１４は、外部回路から入力されるキーｅとメモリ６〜９がそれぞれ出力するキーａ〜ｄとが一致しないため、第２の信号を出力しない。また、キー比較部１５は、第３の信号をデータ書込処理部４に出力する。
【００１８】
キー比較部１１〜１４のいずれもが第２の信号を出力せず、また、キー比較部１５が第３の信号を出力するため、データ書込処理部４は、メモリ１０のアドレスＡにキーｅ及びデータεを格納させる。図４は、メモリ１０のアドレスＡにキーｅ及びデータεが格納された様子を示す図である。
【００１９】
次に、
Ａ＝ｈａｓｈ１（ｆ）  ・・・（１１）
Ｄ＝ｈａｓｈ２（Ａ）  ・・・（１２）
となるようなキーｆ、データζ、及び、ライト信号が外部回路から半導体装置１に入力されると、第１ハッシュ関数演算部２は、アドレスＡを第２ハッシュ関数演算部３及びデータ書込処理部４に出力し、第２ハッシュ関数演算部３は、アドレスＤをデータ書込処理部４に出力する。
データ書込処理部４は、アドレスＡ及びＤを受け取ると、まず、アドレスＡをメモリ６〜１０に出力する。
【００２０】
メモリ６〜１０は、アドレスＡを受け取ると、キーａ〜ｅをキー比較部１１〜１５にそれぞれ出力する。
キー比較部１１〜１５は、外部回路から入力されるキーｆとメモリ６〜１０がそれぞれ出力するキーａ〜ｅとが一致しないため、第２の信号を出力しない。
データ書込処理部４は、キー比較部１１〜１５のいずれもが第２の信号及び第３の信号を出力しないため、アドレスＤをメモリ６〜１０に出力する。
【００２１】
アドレスＤを受け取ると、メモリ６及び７は、キーｎ及びｏをキー比較部１１〜１２にそれぞれ出力し、メモリ８〜１０は、第１の信号をキー比較部１３〜１５にそれぞれ出力する。
キー比較部１１及び１２は、外部回路から入力されるキーｆとメモリ６及び７が出力するキーｎ及びｏとが一致しないため、いずれも第２の信号を出力しない。また、キー比較部１３〜１５は、第３の信号をデータ書込処理部４にそれぞれ出力する。
【００２２】
データ書込処理部４は、第２のアドレス（ここでは、アドレスＤ）を出力したときに、キー比較部１１〜１５のいずれかから第２の信号を受信した場合には、メモリ６〜１０の内のキーｆを格納しているメモリのアドレスＡにデータζを格納（上書き）させる。また、データ書込処理部４は、キー比較部１１〜１５のいずれからも第２の信号を受け取らず且つキー比較部１１〜１５の内の１以上の比較部から第３の信号を受け取った場合に、キーｆ及びデータζを、メモリ６〜１０の内の第１の信号を出力したメモリをメモリ１０からメモリ６に向かう順序でチェックした場合における最初のメモリのアドレスＤに格納させる。
本実施形態においては、キー比較部１１及び１２のいずれもが第２の信号を出力せず、また、キー比較部１３〜１５が第３の信号を出力するため、データ書込処理部４は、キーｆ及びデータζをメモリ１０のアドレスＤに格納させる。図５は、メモリ１０のアドレスＤにキーｆ及びデータζが格納された様子を示す図である。
【００２３】
次に、
Ａ＝ｈａｓｈ１（ｇ）  ・・・（１３）
Ｄ＝ｈａｓｈ２（Ａ）  ・・・（１４）
となるようなキーｇ、データη、及び、ライト信号が外部回路から半導体装置１に入力されると、第１ハッシュ関数演算部２は、第１のアドレスとしてのアドレスＡを第２ハッシュ関数演算部３及びデータ書込処理部４に出力し、第２ハッシュ関数演算部３は、第２のアドレスとしてのアドレスＤをデータ書込処理部４に出力する。
データ書込処理部４は、アドレスＡ及びＤを受け取ると、まず、アドレスＡをメモリ６〜１０に出力する。
【００２４】
メモリ６〜１０は、アドレスＡを受け取ると、キーａ〜ｅをキー比較部１１〜１５にそれぞれ出力する。
キー比較部１１〜１５は、外部回路から入力されるキーｇとメモリ６〜１０が出力するキーａ〜ｅとが一致しないため、第２の信号を出力しない。
データ書込処理部４は、キー比較部１１〜１５のいずれもが第２の信号を出力しないため、アドレスＤをメモリ６〜１０に出力する。
【００２５】
アドレスＤを受け取ると、メモリ６及び７及び１０は、キーｎ及びｏ及びｆをキー比較部１１及び１２及び１５にそれぞれ出力し、メモリ８及び９は、第１の信号をキー比較部１３及び１４にそれぞれ出力する。
キー比較部１１及び１２及び１５は、外部回路から入力されるキーｇとメモリ６及び７及び１０がそれぞれ出力するキーｎ及びｏ及びｆとが一致しないため、いずれも第２の信号を出力しない。また、キー比較部１３及び１４は、第３の信号をそれぞれ出力する。
【００２６】
キー比較部１１及び１２及び１５のいずれもが第２のを出力せず、また、キー比較部１３及び１４が第３の信号を出力するため、データ書込処理部４は、キーｇ及びデータηをメモリ９のアドレスＤに格納させる。図６は、メモリ９のアドレスＤにキーｆ及びデータζが格納された様子を示す図である。
【００２７】
次に、
Ｃ＝ｈａｓｈ１（ｍ）  ・・・（１５）
Ｂ＝ｈａｓｈ２（Ｃ）  ・・・（１６）
となるようなキーｍ、データν、及び、ライト信号が外部回路から半導体装置１に入力されると、第１ハッシュ関数演算部２は、第１のアドレスとしてのアドレスＣを第２ハッシュ関数演算部３及びデータ書込処理部４に出力し、第２ハッシュ関数演算部３は、第２のアドレスとしてのアドレスＢをデータ書込処理部４に出力する。
データ書込処理部４は、アドレスＣ及びＢを受け取ると、まず、アドレスＣをメモリ６〜１０に出力する。
【００２８】
メモリ６〜１０は、アドレスＣを受け取ると、キーｈ〜ｌをキー比較部１１〜１５にそれぞれ出力する。
キー比較部１１〜１５は、外部回路から入力されるキーｍとメモリ６〜１０が出力するキーｈ〜ｌとが一致しないため、第２の信号を出力しない。
データ書込処理部４は、キー比較部１１〜１５のいずれもが第２の信号を出力しないため、アドレスＢをメモリ６〜１０に出力する。
【００２９】
メモリ６〜１０は、アドレスＢを受け取ると、第１の信号ををキー比較部１１〜１５にそれぞれ出力する。
キー比較部１１〜１５が、第２の信号を出力せず、第３の信号をそれぞれ出力するため、データ書込処理部４は、キーｍ及びデータνをメモリ１０のアドレスＢに格納させる。図７は、メモリ９のアドレスＤにキーｆ及びデータζが格納された様子を示す図である。
【００３０】
次に、半導体装置１のデータ読み出し動作について説明する。ここでは、図７中のメモリ９のアドレスＤに格納されているデータηを読み出す場合について説明する。
半導体装置１のデータ読み出し動作時において、外部回路から、キーが第１ハッシュ関数演算部２及びキー比較部１１〜１５に入力され、リード信号がデータ読出処理部５に入力される。キーｇが入力されると、第１ハッシュ関数演算部２は、第１のアドレスとしてのアドレスＡを第２ハッシュ関数演算部３及びデータ読出処理部５に出力し、第２ハッシュ関数演算部３は、第２のアドレスとしてのアドレスＤをデータ読出処理部５に出力する。
データ読出処理部５は、アドレスＡ及びＤを受け取ると、まず、アドレスＡをメモリ６〜１０に出力する。
【００３１】
メモリ６〜１０は、アドレスＡを受け取ると、キーａ〜ｅ及びデータα〜εをキー比較部１１〜１５にそれぞれ出力する。
データ読み出し動作時において、キー比較部１１〜１５は、外部回路から入力されているキーとメモリ６〜１０が出力するキーとをそれぞれ比較し、一致する場合には第２の信号をデータ読出処理部５に出力するとともに、一致するキーに対応づけられたデータを外部回路に出力する。ここでは、外部回路から入力されるキーｇとメモリ６〜１０がそれぞれ出力するキーａ〜ｅとが一致しないため、、キー比較部１１〜１５は、第２の信号を出力せず、データα〜εのいずれをも外部回路に出力しない。
【００３２】
データ読出処理部５は、キー比較部１１〜１５のいずれかから第２の信号を受信した場合には処理を終了するが、本実施形態においては、キー比較部１１〜１５のいずれもが第２の信号を出力しないため、アドレスＤをメモリ６〜１０に出力する。
【００３３】
アドレスＤを受け取ると、メモリ６及び７及び９及び１０は、キーｎ及びデータξ、キーｏ及びデータο、キーｇ及びデータη、並びに、キーｆ及びデータζをキー比較部１１及び１２及び１４及び１５にそれぞれ出力する。また、メモリ８は、第１の信号をキー比較部１３に出力する。
キー比較部１４は、外部回路から入力されるキーｇとメモリ９が出力するキーｇとが一致するため、第２の信号をデータ読出処理部５に出力するとともに、データηを外部回路に出力する。
データ読出処理部５は、キー比較部１４から第２の信号を受信すると、処理を終了する。
【００３４】
このように、本実施形態によれば、メモリ６〜１０を有効に利用することができる。コンピュータシミュレーションを行った結果によれば、従来技術におけるメモリの利用率は６０％程度であるが、本実施形態におけるメモリ６〜１０の利用率は９０％程度となる。
【００３５】
なお、本実施形態においては、メモリ６〜１０の記憶容量を同一としているが、図８に示すように、メモリ６〜１０の記憶容量の比を１６：８：４：２：１とすることとしても良いし、その他の比率とすることとしても良い。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る半導体装置の構成を示す図。
【図２】図１のメモリ６〜１０に格納されているデータを示す図。
【図３】図１のメモリ６〜１０に格納されているデータを示す図。
【図４】図１のメモリ６〜１０に格納されているデータを示す図。
【図５】図１のメモリ６〜１０に格納されているデータを示す図。
【図６】図１のメモリ６〜１０に格納されているデータを示す図。
【図７】図１のメモリ６〜１０に格納されているデータを示す図。
【図８】メモリ６〜１０の記憶容量の比率の例を示す図。
【符号の説明】
１  半導体装置、２  第１ハッシュ関数演算部、３  第２ハッシュ関数演算部、４  データ書込処理部、５  データ読出処理部、６〜１０  メモリ１１〜１５キー比較部
【図１】
2004213588.tif 000003
【図２】
2004213588.tif 000004
【図３】
2004213588.tif 000005
【図４】
2004213588.tif 000006
【図５】
2004213588.tif 000007
【図６】
2004213588.tif 000008
【図７】
2004213588.tif 000009
【図８】
2004213588.tif 000010
【手続補正書】
【提出日】平成15年12月2日(2003.12.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】
メモリ６〜１０は、アドレスＢを受け取ると、第１の信号をキー比較部１１〜１５にそれぞれ出力する。
キー比較部１１〜１５が、第２の信号を出力せず、第３の信号をそれぞれ出力するため、データ書込処理部４は、キーｍ及びデータνをメモリ１０のアドレスＢに格納させる。図７は、メモリ１０のアドレスＢにキーｍ及びデータνが格納された様子を示す図である。