(57)【要約】【課題】内部ハードウェアフィルターを含むデータ保存装置とその作動方法とを提供する。【解決手段】本発明によるデータ保存装置は、ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、データ保存装置内の第２メモリに機能的に隣接して配され、リード命令から派生した第１リード命令に応答して、第２メモリから第１リードデータを受信し、フィルタリング命令から派生したフィルタリング条件データによって、第１リードデータをフィルタリングし、フィルタリングされたデータを生成する内部ハードウェアフィルターと、フィルタリングされたデータをデータ保存装置内の第２メモリから分離された第１メモリに保存し、リード命令に応答して、フィルタリングされたデータをホストに伝送するメモリコントローラと、を含む。【選択図】図１
2015106413.tif 000002
【特許請求の範囲】
【請求項１】
ホストを含むデータ処理システムに使われるデータ保存装置において、前記データ保存装置は、
ビッグデータを保存するデータベースとして使われる第２メモリに保存された前記ビッグデータのうちの所望のデータに対して、前記ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、
前記データ保存装置内の前記第２メモリに機能的に隣接して配され、前記リード命令から派生した第１リード命令に応答して、前記第２メモリから第１リードデータを受信し、前記フィルタリング命令から派生したフィルタリング条件データによって、前記第１リードデータをフィルタリングし、第１フィルタリングされたデータを生成する内部ハードウェアフィルターと、
前記内部ハードウェアフィルターによって生成された前記第１フィルタリングされたデータを前記データ保存装置内の前記第２メモリから分離された第１メモリに保存し、前記リード命令に応答して、前記第１メモリに保存された前記第１フィルタリングされたデータを前記ホストに伝送するメモリコントローラと、
を含むことを特徴とするデータ保存装置。
【請求項２】
前記ホストコントローラは、前記フィルタリング命令に応答して、前記フィルタリング条件データを生成することを特徴とする請求項１に記載のデータ保存装置。
【請求項３】
前記フィルタリング条件データは、ＳＱＬによって定義されたデータ構造を有するデータファイルとして表現されることを特徴とする請求項１に記載のデータ保存装置。
【請求項４】
前記ホストコントローラは、前記リード命令から前記第１リード命令を生成することを特徴とする請求項１に記載のデータ保存装置。
【請求項５】
前記第２メモリは、ヘッダ、行方向に配列された複数の行数、及び複数の行オフセットの個数を含むデータベースレイアウトを用いて、前記第１リードデータを保存し、前記複数の行オフセットのそれぞれは、前記複数の行のそれぞれに関連することを特徴とする請求項１に記載のデータ保存装置。
【請求項６】
前記フィルタリング命令は、クエリー（ｑｕｅｒｙ）を含み、前記データ保存装置は、前記クエリーに応答して、前記フィルタリング条件データを生成し、次いで、前記フィルタリング条件データを前記内部ハードウェアフィルターにプログラムするＣＰＵをさらに含むことを特徴とする請求項１に記載のデータ保存装置。
【請求項７】
前記クエリーは、ＳＱＬと固有クエリー言語のうちの何れか１つとして表現されることを特徴とする請求項６に記載のデータ保存装置。
【請求項８】
前記フィルタリング命令と前記リード命令は、前記ホストによって提供された１つの命令に結合されることを特徴とする請求項６に記載のデータ保存装置。
【請求項９】
前記内部ハードウェアフィルターは、
前記第１リードデータを受信し、バッファリングするデータバッファと、
前記フィルタリング条件データに含まれた抽出条件データを用いて、前記第１リードデータから第１抽出データと第２抽出データとを抽出するデータ抽出器と、
前記フィルタリング条件データに含まれたマッチングキーデータと前記第１抽出データとを比較し、前記マッチングキーデータと前記第１抽出データとの比較の結果によって、前記第２抽出データを前記第１フィルタリングされたデータとして出力するか否かを決定するデータ比較器と、
を含むことを特徴とする請求項１に記載のデータ保存装置。
【請求項１０】
前記データ抽出器は、
前記抽出条件データと前記第１リードデータのメタデータとに基づいて、前記第１リードデータの行に含まれた複数列をパージングするためのパージングデータを生成するパージングデータ生成回路と、
前記パージングデータに基づいて、前記第１リードデータの前記行から前記第１抽出データと前記第２抽出データとを抽出する抽出回路と、
を含むことを特徴とする請求項９に記載のデータ保存装置。
【請求項１１】
前記データ比較器は、
前記マッチングキーデータを保存するレジスタと、
前記レジスタに保存された前記マッチングキーデータと前記第１抽出データとを比較し、マッチング比較信号またはノンマッチング比較信号を生成する比較器と、
前記マッチング比較信号、ノンマッチング比較信号に応答して、前記第２抽出データを出力するか否かを決定する出力制御回路と、
を含むことを特徴とする請求項１０に記載のデータ保存装置。
【請求項１２】
ホストを含むデータ処理システムに使われるデータ保存装置において、前記データ保存装置は、
第１の二次メモリと第２の二次メモリとに保存されたビッグデータのうちの所望のデータに対して、前記ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、
前記データ保存装置内の前記第１の二次メモリに機能的に隣接して配され、前記リード命令から派生した第１リード命令に応答して、前記第１の二次メモリからリードデータの第１部分を受信し、前記フィルタリング命令から派生したフィルタリング条件データによって、前記第１部分をフィルタリングし、フィルタリングされたデータの第１部分を生成する第１内部ハードウェアフィルターと、
前記データ保存装置内の前記第２の二次メモリに機能的に隣接して配され、前記第１リード命令に応答して、前記第２の二次メモリからリードデータの第２部分を受信し、前記フィルタリング条件データによって、前記第２部分をフィルタリングし、フィルタリングされたデータの第２部分を生成する第２内部ハードウェアフィルターと、
前記第１部分と前記第２部分とを前記データ保存装置内の前記第１の二次メモリと前記第２の二次メモリとから分離された第１メモリに保存し、前記リード命令に応答して、前記第１メモリに保存された前記第１部分と前記第２部分とを前記ホストに伝送するメモリコントローラと、を含み、
前記第１の二次メモリと前記第２の二次メモリは、前記ビッグデータを保存するデータベースとして選択的に提供されることを特徴とするデータ保存装置。
【請求項１３】
前記データ保存装置は、
前記フィルタリング命令に基づいて制御シーケンスを生成する第１ＣＰＵと、
前記制御シーケンスに基づいて前記フィルタリング条件データを生成する第２ＣＰＵと、をさらに含み、
前記制御シーケンスは、前記第１の二次メモリからリードされるテーブルについての第１情報、前記テーブルに含まれた複数列のうちから抽出される複数列についての第２情報、及び前記テーブルから抽出される列値についての第３情報を含むことを特徴とする請求項１２に記載のデータ保存装置。
【請求項１４】
前記データ保存装置は、ソリッドステートドライブ（ＳＳＤ）を含み、前記第１の二次メモリは、フラッシュメモリであり、前記第１メモリは、ＤＲＡＭであることを特徴とする請求項１２に記載のデータ保存装置。
【請求項１５】
前記第１内部ハードウェアフィルターは、前記第１部分に関連したフラグを生成し、前記フラグは、前記第１部分が前記フィルタリング条件データによってフィルタリングされたデータであるか否かを指示することを特徴とする請求項１２に記載のデータ保存装置。
【請求項１６】
ホストを含むデータ処理システムに使われるデータ保存装置の作動方法において、前記データ保存装置は、第２メモリ、第１メモリ、及び前記第２メモリと機能的に隣接して配された内部ハードウェアフィルターを含み、前記データ保存装置の作動方法は、
前記内部ハードウェアフィルターが、前記第２メモリから出力されたリードデータを受信する段階と、
前記内部ハードウェアフィルターに保存されたフィルタリング条件データを使って、前記リードデータをフィルタリングし、フィルタリングされたデータを生成する段階と、
前記フィルタリングされたデータを前記第１メモリに保存する段階と、
前記第１メモリに保存された前記フィルタリングされたデータを前記ホストに伝送する段階と、
を含むことを特徴とするデータ保存装置の作動方法。
【請求項１７】
前記データ保存装置の作動方法は、
前記データ保存装置が、前記ホストから出力されたクエリー（ｑｕｅｒｙ）を受信する段階と、
前記クエリーに応答して、前記内部ハードウェアフィルターに前記フィルタリング条件データをプログラムする段階と、
をさらに含むことを特徴とする請求項１６に記載のデータ保存装置の作動方法。
【請求項１８】
前記データ保存装置の作動方法は、
前記ホストから指示データとクエリーとを受信する段階と、
前記指示データと前記クエリーとに応答して、前記フィルタリング条件データを前記内部ハードウェアフィルターにプログラムする段階と、をさらに含み、
前記指示データは、前記リードデータが前記第２メモリにデータベースレイアウトにより保存される時、前記データベースレイアウトを指示することを特徴とする請求項１６に記載のデータ保存装置の作動方法。
【請求項１９】
前記データベースレイアウトは、ヘッダ、行方向に配列された複数の行数、及び複数の行オフセットの個数を含み、
前記複数の行オフセットのそれぞれは、前記複数の行のそれぞれに関連することを特徴とする請求項１８に記載のデータ保存装置の作動方法。
【請求項２０】
前記クエリーは、ＳＱＬと固有クエリー言語のうちの何れか１つとして表現されることを特徴とする請求項１８に記載のデータ保存装置の作動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ビッグデータ（ｂｉｇ  ｄａｔａ）フィルタリング方法に係り、より詳しくは、内蔵されたハードウェアフィルター（ｅｍｂｅｄｄｅｄ  ｈａｒｄｗａｒｅ  ｆｉｌｔｅｒ）を用いて、前記ビッグデータから所望のデータをフィルタリングできるデータ保存装置及びその作動方法に関する。
【背景技術】
【０００２】
一般的なサーバとデータベースとを含むデータサーバシステムにおいて、ビッグデータは、関係型データベース（ｒｅｌａｔｉｏｎａｌ  ｄａｔａｂａｓｅｓ）やＮｏＳＱＬデータベースに保存される。関係型データベースまたはＮｏＳＱＬデータベースに保存されたビッグデータのうちの所望のデータは、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）または固有のクエリー（ｑｕｅｒｙ）言語を用いて抽出される。
【０００３】
ビッグデータは、データベースからサーバのメインメモリに伝送され、サーバのプロセッサは、メインメモリに保存されたビッグデータから所望のデータを抽出する。しかし、サーバのメインメモリに保存されたビッグデータのうちの一部のみがサーバのプロセッサによって抽出されるので、データトラフィックの観点から見る時、サーバのプロセッサを用いて、ビッグデータのうちの所望のデータを抽出する方法は、効率性が低い。また、データベースは、ビッグデータをサーバに伝送しければならないので、サーバとデータベースとの間のデータトラフィックは減少しない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする技術的な課題は、補助記憶装置として使われるデータベースからメインメモリに伝送されるデータトラフィック（ｄａｔａ  ｔｒａｆｆｉｃ）を減少させるために、前記補助記憶装置に機能的に隣接して内蔵されたハードウェアフィルターを含むデータ保存装置、その作動方法、及び該装置を含むシステムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の実施形態によるホストを含むデータ処理システムに使われるデータ保存装置において、前記データ保存装置は、ビッグデータを保存するデータベースとして使われる第２メモリに保存された前記ビッグデータのうちの所望のデータに対して、前記ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、前記データ保存装置内の前記第２メモリに機能的に隣接して配され、前記リード命令から派生した第１リード命令に応答して、前記第２メモリから第１リードデータを受信し、前記フィルタリング命令から派生したフィルタリング条件データによって、前記第１リードデータをフィルタリングし、第１フィルタリングされたデータを生成する内部ハードウェアフィルターと、前記内部ハードウェアフィルターによって生成された前記第１フィルタリングされたデータを前記データ保存装置内の前記第２メモリから分離された第１メモリに保存し、前記リード命令に応答して、前記第１メモリに保存された前記第１フィルタリングされたデータを前記ホストに伝送するメモリコントローラと、を含む。
【０００６】
前記ホストコントローラは、前記フィルタリング命令に応答して、前記フィルタリング条件データを生成する。前記フィルタリング条件データは、ＳＱＬによって定義されたデータ構造を有するデータファイルとして表現される。前記ホストコントローラは、前記リード命令から前記第１リード命令を生成する。
【０００７】
前記第２メモリは、ヘッダ、行（ｒｏｗ）方向に配列された複数の行数、及び複数の行オフセット（ｒｏｗ  ｏｆｆｓｅｔｓ）の個数を含むデータベースレイアウト（ｄａｔａｂａｓｅ  ｌａｙｏｕｔ）を用いて、前記第１リードデータを保存し、前記複数の行オフセットのそれぞれは、前記複数の行のそれぞれに関連する。
【０００８】
前記フィルタリング命令は、クエリーを含み、前記データ保存装置は、前記クエリーに応答して、前記フィルタリング条件データを生成し、次いで、前記フィルタリング条件データを前記内部ハードウェアフィルターにプログラムするＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をさらに含む。
【０００９】
前記クエリーは、ＳＱＬと固有（ｕｎｉｑｕｅ）クエリー言語のうちの何れか１つとして表現される。前記フィルタリング命令と前記リード命令は、前記ホストによって提供された１つの命令に結合される。
【００１０】
前記内部ハードウェアフィルターは、前記第１リードデータを受信し、バッファリングするデータバッファと、前記フィルタリング条件データに含まれた抽出条件データを用いて、前記第１リードデータから第１抽出データと第２抽出データとを抽出するデータ抽出器と、前記フィルタリング条件データに含まれたマッチングキーデータと前記第１抽出データとを比較し、前記マッチングキーデータと前記第１抽出データとの比較の結果によって、前記第２抽出データを前記第１フィルタリングされたデータとして出力するか否かを決定するデータ比較器と、を含む。
【００１１】
前記データ抽出器は、前記抽出条件データと前記第１リードデータのメタデータ（ｍｅｔａｄａｔａ）とに基づいて、前記第１リードデータの行に含まれた複数列（ｃｏｌｕｍｎｓ）をパージング（ｐａｒｓｉｎｇ、分類・解析）するためのパージングデータを生成するパージングデータ生成回路と、前記パージングデータに基づいて、前記第１リードデータの前記行から前記第１抽出データと前記第２抽出データとを抽出する抽出回路と、を含む。
【００１２】
前記データ比較器は、前記マッチングキーデータを保存するレジスタと、前記レジスタに保存された前記マッチングキーデータと前記第１抽出データとを比較し、マッチング（ｐｏｓｉｔｉｖｅ  ｍａｔｃｈｉｎｇ）比較信号またはノンマッチング（ｎｅｇａｔｉｖｅ  ｎｏｎ−ｍａｔｃｈｉｎｇ）比較信号を生成する比較器と、前記マッチング比較信号、ノンマッチング比較信号に応答して、前記第２抽出データを出力するか否かを決定する出力制御回路と、を含む。
【００１３】
本発明の他の実施形態によるホストを含むデータ処理システムに使われるデータ保存装置において、前記データ保存装置は、第１の二次メモリ（ｆｉｒｓｔ  ｓｅｃｏｎｄａｒｙ  ｍｅｍｏｒｙ）と第２の二次メモリ（ｓｅｃｏｎｄ  ｓｅｃｏｎｄａｒｙ  ｍｅｍｏｒｙ）とに保存されたビッグデータのうちの所望のデータに対して、前記ホストから出力されたフィルタリング命令とリード命令とを受信するホストコントローラと、前記データ保存装置内の前記第１の二次メモリに機能的に隣接して配され、前記リード命令から派生した第１リード命令に応答して、前記第１の二次メモリからリードデータの第１部分（ｆｉｒｓｔ  ｐｏｒｔｉｏｎ）を受信し、前記フィルタリング命令から派生したフィルタリング条件データによって、前記第１部分をフィルタリングし、
フィルタリングされたデータの第１部分を生成する第１内部ハードウェアフィルターと、前記データ保存装置内の前記第２の二次メモリに機能的に隣接して配され、前記第１リード命令に応答して、前記第２の二次メモリからリードデータの第２部分（ｓｅｃｏｎｄ  ｐｏｒｔｉｏｎ）を受信し、前記フィルタリング条件データによって、前記第２部分をフィルタリングし、フィルタリングされたデータの第２部分を生成する第２内部ハードウェアフィルターと、前記第１部分と前記第２部分とを前記データ保存装置内の前記第１の二次メモリと前記第２の二次メモリとから分離された第１メモリに保存し、前記リード命令に応答して、前記第１メモリに保存された前記第１部分と前記第２部分とを前記ホストに伝送するメモリコントローラと、を含み、前記第１の二次メモリと前記第２の二次メモリは、前記ビッグデータを保存するデータベースとして選択的に提供される。
【００１４】
前記データ保存装置は、前記フィルタリング命令に基づいて制御シーケンスを生成する第１ＣＰＵと、前記制御シーケンスに基づいて前記フィルタリング条件データを生成する第２ＣＰＵと、をさらに含み、前記制御シーケンスは、前記第１の二次メモリからリードされるテーブルについての第１情報、前記テーブルに含まれた複数列のうちから抽出される複数列についての第２情報、及び前記テーブルから抽出される列値についての第３情報を含む。
【００１５】
前記データ保存装置は、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ；ＳＳＤ）を含み、前記第１の二次メモリは、フラッシュメモリであり、前記第１メモリは、ＤＲＡＭであり得る。
【００１６】
前記第１内部ハードウェアフィルターは、前記第１部分に関連したフラグ（ｆｌａｇ）を生成し、前記フラグは、前記第１部分が前記フィルタリング条件データによってフィルタリングされたデータであるか否かを指示する。
【００１７】
本発明の実施形態によるホストを含むデータ処理システムに使われるデータ保存装置の作動方法において、前記データ保存装置は、第２メモリ、第１メモリ、及び前記第２メモリと機能的に隣接して配された内部ハードウェアフィルターを含み、前記データ保存装置の作動方法は、前記内部ハードウェアフィルターが、前記第２メモリから出力されたリードデータを受信する段階と、前記内部ハードウェアフィルターに保存されたフィルタリング条件データを使って、前記リードデータをフィルタリングし、フィルタリングされたデータを生成する段階と、前記フィルタリングされたデータを前記第１メモリに保存する段階と、前記第１メモリに保存された前記フィルタリングされたデータを前記ホストに伝送する段階と、を含む。
【００１８】
前記データ保存装置の作動方法は、前記データ保存装置が、前記ホストから出力されたクエリーを受信する段階と、前記クエリーに応答して、前記内部ハードウェアフィルターに前記フィルタリング条件データをプログラムする段階と、をさらに含む。
【００１９】
前記データ保存装置の作動方法は、前記ホストから指示データとクエリーとを受信する段階と、前記指示データと前記クエリーとに応答して、前記フィルタリング条件データを前記内部ハードウェアフィルターにプログラムする段階と、をさらに含み、前記指示データは、前記リードデータが前記第２メモリにデータベースレイアウトにより保存される時、前記データベースレイアウトを指示する。
【００２０】
前記データベースレイアウトは、ヘッダ、行方向に配列された複数の行数、及び複数の行オフセットの個数を含み、前記複数の行オフセットのそれぞれは、前記複数の行のそれぞれに関連する。前記クエリーは、ＳＱＬと固有クエリー言語のうちの何れか１つとして表現される。
【発明の効果】
【００２１】
本発明の実施形態による補助記憶装置、内部ハードウェアフィルター、及び主記憶装置を内蔵するデータ保存装置は、前記補助記憶装置から前記主記憶装置に伝送されるデータトラフィックを最小化できる。
【００２２】
前記データ保存装置に内蔵された前記内部ハードウェアフィルターは、前記補助記憶装置に機能的に隣接してビッグデータをフィルタリングできるので、前記ビッグデータのトラフィックを減少できる。前記データ保存装置は、前記データ保存装置内部のデータトラフィックを減少できる。
【００２３】
前記データ保存装置は、前記内部ハードウェアフィルターを用いてビッグデータをフィルタリングし、フィルタリングされたデータをホスト（または、サーバ）に伝送できるので、前記データ保存装置と前記ホストとの間のデータトラフィックを減少できる。ホストは、前記データ保存装置によってフィルタリングされたデータを処理できるので、前記ホストのビッグデータ処理演算の負担が減少する。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態によるデータ処理システムのブロック図である。
【図２】図１のデータ処理システムにおいて使われるＳＱＬの実施形態を示す。
【図３】データベースの種類を説明する実施形態を示す。
【図４】データベースの種類を説明する実施形態を示す。
【図５】図１に示した第１内部ハードウェアフィルターのブロック図である。
【図６】図５に示した比較器のブロック図である。
【図７】図１に示したデータ処理システムの作動を説明する一実施形態を示す。
【図８】図１に示したデータ処理システムの作動を説明する他の実施形態を示す。
【図９】本発明の他の実施形態によるデータ処理システムのブロック図である。
【図１０】図９に示したデータ処理システムの作動を説明する一実施形態を示す。
【図１１】図９に示したデータ処理システムの作動を説明する他の実施形態を示す。
【図１２】本発明のさらに他の実施形態によるデータ処理システムのブロック図である。
【図１３】図１２に示したデータ処理システムの作動を説明する実施形態を示す。
【図１４】本発明のさらに他の実施形態によるデータ処理システムのブロック図である。
【図１５】図１４に示したデータ処理システムの作動を説明する一実施形態を示す。
【図１６】図１４に示したデータ処理システムの作動を説明する他の実施形態を示す。
【図１７】本発明の実施形態によるデータ処理システムの作動を説明するフローチャートである。
【図１８】本発明の実施形態によるデータサーバシステムのブロック図である。
【発明を実施するための形態】
【００２５】
以下、添付した図面を参照して、本発明を詳しく説明する。
【００２６】
図１は、本発明の一実施形態によるデータ処理システムのブロック図である。図１を参照すれば、データ処理システム１００Ａは、ホスト２００とデータ保存装置３００Ａとを含む。データ処理システム１００Ａは、データベース管理システム（ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ；ＤＢＭＳ）または関係型データベース管理システム（Ｒｅｌａｔｉｏｎａｌ  ＤＢＭＳ；ＲＤＢＭＳ）を意味する。前記ＤＢＭＳは、列指向（ｃｏｌｕｍｎ−ｏｒｉｅｎｔｅｄ）ＤＢＭＳまたは行指向（ｒｏｗ−ｏｒｉｅｎｔｅｄ）ＤＢＭＳを含む。よく知られたＤＢＭＳは、ＭｙＳＱＬ、ＰｏｓｔｇｒｅＳＱＬ、ＳＱＬｉｔｅ、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ、Ｍｉｃｒｏｓｏｆｔ  Ａｃｃｅｓｓ、Ｏｒａｃｌｅ、ＳＡＰ、ｄＢＡＳＥ、ＦｏｘＰｒｏ、ＩＢＭ  ＤＢ２及びＦｉｌｅｍａｋｅｒＰｒｏを含む。
【００２７】
ホスト２００は、データ保存装置３００Ａの作動、例えば、ライト作動、リード作動、またはフィルタリング作動を制御する。データ保存装置３００Ａは、ホスト２００から受信した多様な命令に応答して、ライト作動、リード作動、及び／またはフィルタリング作動を制御または実行する。例えば、ホスト２００とデータ保存装置３００Ａは、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）またはＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）を通じて通信する。
【００２８】
データ保存装置３００Ａは、バス３０１、第１補助記憶装置（ａｕｘｉｌｉａｒｙ  ｍｅｍｏｒｙ  ｏｒ  ｓｅｃｏｎｄａｒｙ  ｍｅｍｏｒｙ）３１０（第２メモリ）、第１内部ハードウェアフィルター３３０、第１メモリコントローラ３５０、主記憶装置（ｍａｉｎ  ｍｅｍｏｒｙ  ｏｒ  ｐｒｉｍａｒｙ  ｍｅｍｏｒｙ）３７０（第１メモリ）、及びホストコントローラ３９０を含む。
【００２９】
データ保存装置３００Ａは、一体型（ａｌｌ−ｉｎ−ｏｎｅ）データ保存装置として具現可能である。例えば、データ保存装置３００Ａは、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ  ｏｒ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ；ＳＳＤ）、エンベデッドＳＳＤ（ｅＳＳＤ）またはハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ；ＨＤＤ）として具現可能である。したがって、データ保存装置３００Ａが、ＳＳＤまたはｅＳＳＤとして具現される時、データ処理システム１００Ａは、ＳＳＤまたはｅＳＳＤを含むデータ処理システムとして具現可能である。
【００３０】
第１補助記憶装置３１０は、第１リード命令ＲＣＭＤ１に応答して、第１リードデータＲＤＡＴＡ１を第１内部ハードウェアフィルター３３０に出力する。第１リードデータＲＤＡＴＡ１は、ビッグデータであり得る。第１補助記憶装置３１０は、データベースの機能を行う。
【００３１】
第１補助記憶装置３１０は、複数の不揮発性（ｎｏｎ−ｖｏｌａｔｉｌｅ）メモリセルを含む。前記複数の不揮発性メモリセルは、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュ（ｆｌａｓｈ）メモリ、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  ＲＡＭ）、スピン伝達トルクＭＲＡＭ（Ｓｐｉｎ−Ｔｒａｎｓｆｅｒ  Ｔｏｒｑｕｅ  ＭＲＡＭ）、Ｃｏｎｄｕｃｔｉｖｅ  Ｂｒｉｄｇｉｎｇ  ＲＡＭ（ＣＢＲＡＭ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）、ＰＲＡＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  ＲＡＭ）、抵抗メモリ（Ｒｅｓｉｓｔｉｖｅ  ＲＡＭ；ＲＲＡＭ（登録商標））、ナノチューブＲＲＡＭ（登録商標）（Ｎａｎｏｔｕｂｅ  ＲＲＡＭ（登録商標））、ポリマーＲＡＭ（Ｐｏｌｙｍｅｒ  ＲＡＭ；ＰｏＲＡＭ）、ナノ浮遊ゲートメモリ（Ｎａｎｏ  Ｆｌｏａｔｉｎｇ  Ｇａｔｅ  Ｍｅｍｏｒｙ；ＮＦＧＭ）、ホログラフィックメモリ（ｈｏｌｏｇｒａｐｈｉｃ  ｍｅｍｏｒｙ）、分子電子メモリ素子（ｍｏｌｅｃｕｌａｒ  ｅｌｅｃｔｒｏｎｉｃｓ  ｍｅｍｏｒｙ  ｄｅｖｉｃｅ）、または絶縁抵抗変化メモリ（ｉｎｓｕｌａｔｏｒ  ｒｅｓｉｓｔａｎｃｅ  ｃｈａｎｇｅ  ｍｅｍｏｒｙ）として具現可能である。フラッシュメモリは、ＮＡＮＤフラッシュメモリまたはＮＯＲフラッシュメモリとして具現可能である。例えば、第１補助記憶装置３１０は、ＮＡＮＤフラッシュアレイまたはＮＯＲフラッシュアレイとして具現可能である。
【００３２】
第１内部ハードウェアフィルター３３０は、第１リードデータＲＤＡＴＡ１をフィルタリング条件データＦＣＤによってフィルタリングし、第１フィルタリングされたデータ（ｆｉｌｔｅｒｅｄ  ｄａｔａ）ＦＤＡＴＡ１をバス３０１に出力する。
【００３３】
第１内部ハードウェアフィルター３３０が、データ保存装置３００Ａの内部に具現されることによって、第１補助記憶装置３１０から主記憶装置３７０に伝送される第１フィルタリングされたデータＦＤＡＴＡ１のトラフィック（ｔｒａｆｆｉｃ）が最小化される。第１内部ハードウェアフィルター３３０が、第１補助記憶装置３１０に機能的に隣接して、ビッグデータ、すなわち、第１リードデータＲＤＡＴＡ１をフィルタリング（ｆｉｌｔｅｒｉｎｇ）またはスキャニング（ｓｃａｎｎｉｎｇ）できるので、第１補助記憶装置３１０から主記憶装置３７０に伝送される前記ビッグデータのトラフィックが減少する。
【００３４】
データ保存装置３００ＡがＳＳＤとして具現され、第１補助記憶装置３１０がＮＡＮＤフラッシュアレイとして具現される時、第１内部ハードウェアフィルター３３０が、前記ＮＡＮＤフラッシュアレイに機能的に隣接して具現されることによって、前記ＳＳＤ内部のデータトラフィックは減少する。ここで、機能的に隣接（ｆｕｎｃｔｉｏｎａｌｌｙ  ａｄｊａｃｅｎｔ）することは、データ保存装置３００Ａの第１構成要素（例えば、第１内部ハードウェアフィルター３３０）が、第２構成要素（例えば、第１補助記憶装置３１０）からデータを受信し、該受信されたデータを他のデータ処理装置によって処理される前に処理することを意味する。
【００３５】
フィルタリング条件データＦＣＤは、ホスト２００から出力されたフィルタリング命令ＦＣＭＤに基づいて生成される。フィルタリング命令ＦＣＭＤは、データベースから受信したビッグデータから派生した所望のデータの種類（ｔｙｐｅ）、フォーム（ｆｏｒｍ）、及び／または質（ｑｕａｌｉｔｙ）を支援するか、または要請する少なくとも１つの命令及び／または少なくとも１つのクエリー（ｑｕｅｒｙ）を含む。実施形態によって、フィルタリング命令ＦＣＭＤは、ベンダー命令（ｖｅｎｄｏｒ  ｃｏｍｍａｎｄ）と定義される。
【００３６】
第１メモリコントローラ３５０は、第１内部ハードウェアフィルター３３０から出力された第１フィルタリングされたデータＦＤＡＴＡ１をバス３０１を通じて受信し、該受信した第１フィルタリングされたデータＦＤＡＴＡ１を主記憶装置３７０に保存し、主記憶装置３７０に保存された第１フィルタリングされたデータＦＤＡＴＡ１をリードし、該リードした第１フィルタリングされたデータＦＤＡＴＡ１をバス３０１を通じてホストコントローラ３９０に伝送する。
【００３７】
主記憶装置３７０は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、Ｔ−ＲＡＭ（Ｔｈｙｒｉｓｔｏｒ  ＲＡＭ）、Ｚ−ＲＡＭ（Ｚｅｒｏ  Ｃａｐａｃｉｔｏｒ  ＲＡＭ）、またはＴＴＲＡＭ（Ｔｗｉｎ  Ｔｒａｎｓｉｓｔｏｒ  ＲＡＭ）として具現可能である。
【００３８】
ホスト２００とデータ保存装置３００Ａは、ホストコントローラ３９０を通じてデータ及び／または命令を送受信する。ホストコントローラ３９０は、第１フィルタリングされたデータＦＤＡＴＡ１を信号ライン２０１を通じてホスト２００に伝送する。例えば、信号ライン２０１は、電気的信号ラインまたは光学的（ｏｐｔｉｃａｌ）信号ラインとして具現可能である。信号ライン２０１は、１つまたはそれ以上の信号ラインを含む。
【００３９】
図２は、図１のデータ処理システムで使われるＳＱＬの実施形態を示す。ＳＱＬは、ＲＤＢＭＳに保存されたデータを管理するために設計された特別な目的（ｓｐｅｃｉａｌ−ｐｕｒｐｏｓｅ）のプログラミング言語である。
【００４０】
図２に示したＳＱＬは、本発明の実施形態によるデータ処理システム３００Ａの作動を説明する一実施形態を示す。複数列名ＰＩＤ、ＮＡＭＥ、及びＣＩＴＹは、列リスト（ｃｏｌｕｍｎ  ｌｉｓｔ）を意味し、ＰＥＲＳＯＮＳは、テーブル（ｔａｂｌｅ）を意味し、ＣＩＴＹ＝‘ＣＩＴＹ１’は、列演算子値（ｃｏｌｕｍｎ  ｏｐｅｒａｔｏｒ  ｖａｌｕｅ）を意味する。
【００４１】
図３と図４は、データベースの種類を説明する実施形態を示す。図３と図４とを参照すれば、第１データベースに保存される第１データレイアウトＤＬ１と第２データベースに保存される第２データレイアウトＤＬ２は、互いに異なる。
【００４２】
例えば、ヘッダＨＥＡＤＥＲ、複数の行ＲＯＷ１乃至ＲＯＷＮ（Ｎは、自然数）の個数、及び複数の行オフセットＯＦＦ１乃至ＯＦＦＮの個数と位置は、各データレイアウトＤＬ１、ＤＬ２によって互いに異なる。データベースによって支援されるデータの種類は、第１データレイアウトＤＬ１と第２データレイアウトＤＬ２のそれぞれによって互いに異ならせて定義される。したがって、ホスト２００は、データ保存装置３００Ａに保存されたデータに対するデータクエリーと共に互いに異なるデータベースの種類のそれぞれを区別できる少なくとも１つのデータ指示識別子をデータ保存装置３００Ａに伝送するか、データ保存装置３００Ａから受信する。また、行の増加方向と行オフセット（ｒｏｗ  ｏｆｆｓｅｔ）の増加方向は、各データレイアウトＤＬ１、ＤＬ２によって互いに異なり、データベースから支援されるデータタイプも、各データレイアウトＤＬ１、ＤＬ２によって異なる。したがって、ホスト２００は、クエリーと共にデータベースの種類を区別するための指示データをデータ保存装置３００Ａに伝送する。
【００４３】
図５は、図１に示した第１内部ハードウェアフィルターのブロック図である。図１乃至図５を参照すれば、第１内部ハードウェアフィルター３３０は、データバッファ３３１、データ抽出器３３３、及びデータ比較器３３５を含む。
【００４４】
データバッファ３３１は、第１補助記憶装置３１０から出力された第１リードデータＲＤＡＴＡ１をバッファリングする。例えば、データバッファ３３１は、ページデータ（ｐａｇｅ  ｄａｔａ）をバッファリングする。データバッファ３３１は、ＳＲＡＭとして具現可能である。
【００４５】
データバッファ３３１は、データ抽出器３３３から出力された対応するアドレスに応答して、第１リードデータＲＤＡＴＡ１に含まれたメタデータＭＤＡＴＡとデータＤＡＴＡのそれぞれをデータ抽出器３３３に伝送する。前記対応するアドレスは、抽出条件データＥＣＤに関連する。すなわち、データ抽出器３３３は、第１リードデータＲＤＡＴＡ１に含まれたメタデータＭＤＡＴＡとデータＤＡＴＡのそれぞれを読み出す。例えば、メタデータＭＤＡＴＡは、ヘッダ、オフセット、及び／またはポインターを含む。
【００４６】
関係型データベースにおいて、データＤＡＴＡは、行、レコード（ｒｅｃｏｒｄ）またはタプル（ｔｕｐｌｅ）と呼ばれる。前記関係型データベースにおいて、列は、フィールド（ｆｉｅｌｄ）または属性（ａｔｔｒｉｂｕｔｅ）と呼ばれる。
【００４７】
データ抽出器３３３は、フィルタリング条件データＦＣＤに含まれた抽出条件データＥＣＤを用いて、第１リードデータＲＤＡＴＡ１から第１抽出データ（または、第１フィルタリングデータ）ＦＤ１と第２抽出データ（または、第２フィルタリングデータ）ＦＤ２とを抽出する。
【００４８】
データ抽出器３３３は、パージングデータ生成回路３３３−１と抽出回路３３３−３とを含む。パージングデータ生成回路３３３−１は、抽出条件データＥＣＤとメタデータＭＤＡＴＡとに基づいて、第１リードデータＲＤＡＴＡ１のデータ、例えば、行に含まれた複数列をパージングするためのパージングデータＰＤＡＴＡを生成し、パージングデータＰＤＡＴＡを抽出回路３３３−３に伝送する。パージングデータ生成回路３３３−１は、抽出条件データＥＣＤを保存する機能を行う。
【００４９】
抽出条件データＥＣＤは、列を区分するためのデータとデータベースの種類（または、ＳＱＬの種類または固有なクエリー言語の種類）を区分するためのデータとを含む区分データＴＩＦと、比較される対象となる列を抽出するための列抽出データＱＩＦと、を含む。
【００５０】
抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、第１リードデータＲＤＡＴＡ１の各行から第１抽出データＦＤ１と第２抽出データＦＤ２とを抽出する。データ比較器３３５は、フィルタリング条件データＦＣＤに含まれたマッチングキーデータＭＫＤと第１抽出データＦＤ１とを互いに比較し、該比較の結果によって、第２抽出データＦＤ２を第１フィルタリングされたデータＦＤＡＴＡ１として出力するか否かを決定する。
【００５１】
データ比較器３３５は、レジスタ３３５−１、比較器３３５−３、及び出力制御回路３３５−５を含む。レジスタ３３５−１は、マッチングキーデータＭＫＤを保存する。例えば、レジスタ３３５−１は、データバッファの機能を行えるＳＲＡＭとして具現可能である。
【００５２】
マッチングキーデータＭＫＤは、データの種類（ｄａｔａ  ｔｙｐｅ）を指示する種類指示データＤ＿ＴＹＰＥ、演算子の種類を指示する演算子指示データＣ＿ＴＹＰＥ、及び実際に抽出しようとするデータ（例えば、列値（ｃｏｌｕｍｎ  ｖａｌｕｅ））を指示する抽出指示データＲ＿ＤＡＴＡを含む。演算子の種類は、同じ（ｅｑｕａｌ（＝））、同じではない（ｎｏｔ  ｅｑｕａｌ（＜＞ｏｒ  ！＝））、より大きい（ｇｒｅａｔｅｒ  ｔｈａｎ（＞））、より小さい（ｌｅｓｓ  ｔｈａｎ（＜））、より大きいか同じ（ｇｒｅａｔｅｒ  ｔｈａｎ  ｏｒ  ｅｑｕａｌ（＜＝））、またはより小さいか同じ（ｌｅｓｓ  ｔｈａｎ  ｏｒ  ｅｑｕａｌ（＜＝））を含む。
【００５３】
比較器３３５−３は、レジスタ３３５−１から出力された基準データＳ＿ＤＡＴＡと第１抽出データＦＤ１とを互いに比較し、該比較の結果によって、比較信号ＣＲＳを生成する。基準データＳ＿ＤＡＴＡは、マッチングキーデータＭＫＤの一部または全部に基づいて生成される。
【００５４】
出力制御回路３３５−５は、比較信号ＣＲＳに応答して、第２抽出データＦＤ２を出力するか否かを決定する。例えば、演算子指示データＣ＿ＤＡＴＡが同じ（＝）を表わすデータであり、基準データＳ＿ＤＡＴＡに含まれた抽出指示データＲ＿ＤＡＴＡと第１抽出データＦＤ１とが同一である時、出力制御回路３３５−５は、第２抽出データＦＤ２を第１フィルタリングされたデータＦＤＡＴＡ１として出力する。それ以外の場合、出力制御回路３３５−５は、第２抽出データＦＤ２を出力しない。
【００５５】
図６は、図５に示した比較器のブロック図を示す。図５と図６とを参照すれば、比較器３３５−３は、複数のデータタイプ比較器３３６−１乃至３３６−５とロジック回路３３６−６とを含む。
【００５６】
基準データＳ＿ＤＡＴＡは、複数のデータタイプ比較器３３６−１乃至３３６−５のそれぞれを設定するためのデータである。基準データＳ＿ＤＡＴＡは、種類指示データＤ＿ＴＹＰＥ、演算子指示データＣ＿ＴＹＰＥ及び／または抽出指示データＲ＿ＤＡＴＡを含む。種類指示データＤ＿ＴＹＰＥは、データタイプのサイズ（ｓｉｚｅ）に対するデータを含む。各データ種類比較器３３６−１乃至３３６−５は、抽出指示データＲ＿ＤＡＴＡと第１抽出データＦＤ１とを互いに比較し、該比較の結果によって、各比較信号ＣＰ１乃至ＣＰ５を生成する。
【００５７】
データの種類は、多様なデータの種類のそれぞれを識別するための分類である。例えば、前記データの種類は、整数（ｉｎｔｅｇｅｒｓ）、ブーリアン（Ｂｏｏｌｅａｎｓ）、文字（ｃｈａｒａｃｔｅｒｓ）、浮動少数点数（ｆｌｏａｔｉｎｇ−ｐｏｉｎｔ  ｎｕｍｂｅｒｓ）、及び文字数字列（ａｌｐｈａｎｕｍｅｒｉｃ  ｓｔｒｉｎｇｓ）などを含む。
【００５８】
第１データ種類比較器３３６−１は、複数の整数を比較し、前記複数の整数は、抽出指示データＲ＿ＤＡＴＡと第１抽出データＦＤ１とを意味する。第２データ種類比較器３３６−２は、複数のブーリアンを比較し、前記複数のブーリアンは、抽出指示データＲ＿ＤＡＴＡと第１抽出データＦＤ１とを意味する。
【００５９】
第３データ種類比較器３３６−３は、複数の文字を比較し、前記複数の文字は、抽出指示データＲ＿ＤＡＴＡと第１抽出データＦＤ１とを意味する。第４データ種類比較器３３６−４は、複数の浮動少数点数を比較し、前記複数の浮動少数点数は、抽出指示データＲ＿ＤＡＴＡと第１抽出データＦＤ１とを意味する。第５データ種類比較器３３６−５は、複数の文字数字列を比較し、前記複数の文字数字列は、抽出指示データＲ＿ＤＡＴＡと第１抽出データＦＤ１とを意味する。
【００６０】
ロジック回路３３６−６は、各比較信号ＣＰ１乃至ＣＰ５を論理演算し、演算の結果によって、比較信号ＣＲＳを生成する。例えば、ロジック回路３３６−６は、ＸＯＲゲートとして具現可能である。図６では、説明の便宜上、５つの比較器３３６−１乃至３３６−５を示すが、これは例示的なものに過ぎない。したがって、複数の比較器の個数は、比較器３３５−３において使われるデータの種類によって多様に変更可能である。
【００６１】
図７は、図１に示したデータ処理システムの作動を説明する一実施形態を示す。図２に示したＳＱＬによって、第１フィルタリングされたデータＦＤＡＴＡ１を出力するデータ保存装置３００Ａの作動は、図１乃至図７を参照して説明する。
【００６２】
図２に示したＳＱＬによって、種類指示データＤ＿ＴＹＰＥは、複数の文字を表わし、演算子指示データＣ＿ＴＹＰＥは、同じ（＝）を表わし、抽出指示データＲ＿ＤＡＴＡは、列値ＣＩＴＹ１を表わし、区分データＴＩＦは、テーブルＴＡＢ１に含まれた複数列名ＰＩＤ、ＮＡＭＥ、ＡＤＤＲＳＳＳ、及びＣＩＴＹのうちから抽出される各列名ＰＩＤ、ＮＡＭＥ、及びＣＩＴＹを区分するためのデータを含み、列抽出データＱＩＦは、抽出しようとする列名ＣＩＴＹを表わす。この際、基準データＳ＿ＤＡＴＡによって、複数の文字を比較するために、比較器３３５−３の第３データ種類比較器３３６−３が作動する。
【００６３】
フィルタリング条件データＦＣＤは、図９のＣＰＵ３０３または図１４のＣＰＵ３０３によって実行されるファームウェア（ｆｉｒｍｗａｒｅ）または応用プログラムプログラミングインターフェース（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ；ＡＰＩ）によって第１内部ハードウェアフィルター３３０に設定またはプログラムされる。
【００６４】
前記ファームウェアまたは前記ＡＰＩは、第１補助記憶装置３１０または別途の不揮発性メモリから主記憶装置３７０にロード（ｌｏａｄ）された後、ＣＰＵ３０３によって実行可能である。例えば、前記ファームウェアまたは前記ＡＰＩによって、フィルタリング条件データＦＣＤの抽出条件データＥＣＤは、パージングデータ生成回路３３３−１にプログラムされ、フィルタリング条件データＦＣＤのマッチングキーデータＭＫＤは、レジスタ３３５−１にプログラムされる。
【００６５】
ＰＥＲＳＯＮＳという名称を有したテーブルＴＡＢ１は、第１リード命令ＲＣＭＤ１に基づいて第１補助記憶装置３１０から第１内部ハードウェアフィルター３３０に出力される。
【００６６】
第１リードデータＲＤＡＴＡ１は、テーブルＴＡＢ１とテーブルＴＡＢ１に関連したメタデータとを含む。第１内部ハードウェアフィルター３３０のデータバッファ３３１は、複数列値ＰＩＤ１、ＮＡＭＥ１、ＡＤＤ１、及びＣＩＴＹ１を含む第１行ＲＥＣ１を第１補助記憶装置３１０から受信する。
【００６７】
データバッファ３３１は、対応するアドレスに応答して、第１行ＲＥＣ１に関連したメタデータＭＤＡＴＡをパージングデータ生成回路３３３−１に伝送し、第１行ＲＥＣ１、すなわち、データＤＡＴＡを抽出回路３３３−３に伝送する。すなわち、パージングデータ生成回路３３３−１は、第１行ＲＥＣ１に関連したメタデータＭＤＡＴＡをデータバッファ３３１から読み出し、抽出回路３３３−３は、データＤＡＴＡをデータバッファ３３１から読み出す。
【００６８】
パージングデータ生成回路３３３−１は、区分データＴＩＦと列抽出データＱＩＦとに基づいてパージングデータＰＤＡＴＡを抽出回路３３３−３に伝送する。例えば、パージングデータＰＤＡＴＡは、各列ＰＩＤ、ＮＡＭＥ、及びＣＩＴＹまたは各列値ＰＩＤ１、ＮＡＭＥ１、及びＣＩＴＹの開始位置または開始アドレスを含む。
【００６９】
抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、抽出しようとする列ＣＩＴＹに含まれた列値ＣＩＴＹ１を第１抽出データＦＤ１として比較器３３５−３に伝送する。また、抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、第１行ＲＥＣ１から複数列値ＰＩＤ１、ＮＡＭＥ１、及びＣＩＴＹ１を含む第２抽出データＦＤ２を抽出し、該抽出された第２抽出データＦＤ２を出力制御回路３３５−５に出力する。
【００７０】
比較器３３５−３は、基準データＳ＿ＤＡＴＡに含まれた列値ＣＩＴＹ１と第１抽出データＦＤ１に含まれた列値ＣＩＴＹ１とを比較し、該比較の結果によって、一致を表わす比較信号ＣＲＳを出力する。出力制御回路３３５−５は、一致を表わす比較信号ＣＲＳに応答して、複数列値ＰＩＤ１、ＮＡＭＥ１、及びＣＩＴＹ１を含む第２抽出データＦＤ２を第１フィルタリングされたデータＦＤＡＴＡ１としてバス３０１に出力する。
【００７１】
第１メモリコントローラ３５０は、複数列値ＰＩＤ１、ＮＡＭＥ１、及びＣＩＴＹ１を含む行ＲＥＣ１’を主記憶装置３７０に保存する。引き続き、第１内部ハードウェアフィルター３３０のデータバッファ３３１は、複数列値ＰＩＤ２、ＮＡＭＥ２、ＡＤＤ２、及びＣＩＴＹ２を含む第２行ＲＥＣ２を第１補助記憶装置３１０から受信する。
【００７２】
データバッファ３３１は、対応するアドレスに応答して、第２行ＲＥＣ２に関連したメタデータＭＤＡＴＡをパージングデータ生成回路３３３−１に伝送し、第２行ＲＥＣ２、すなわち、データＤＡＴＡを抽出回路３３３−３に伝送する。すなわち、パージングデータ生成回路３３３−１は、メタデータＭＤＡＴＡをデータバッファ３３１から読み出し、抽出回路３３３−３は、データＤＡＴＡをデータバッファ３３１から読み出す。
【００７３】
パージングデータ生成回路３３３−１は、区分データＴＩＦと列抽出データＱＩＦとに基づいてパージングデータＰＤＡＴＡを抽出回路３３３−３に伝送する。例えば、パージングデータＰＤＡＴＡは、各列ＰＩＤ、ＮＡＭＥ、及びＣＩＴＹまたは各列値ＰＩＤ２、ＮＡＭＥ２、及びＣＩＴＹ２の開始位置または開始アドレスを含む。
【００７４】
抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、抽出しようとする列ＣＩＴＹに含まれた列値ＣＩＴＹ２を第１抽出データＦＤ１として比較器３３５−３に伝送する。また、抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、第２行ＲＥＣ２から複数列値ＰＩＤ２、ＮＡＭＥ２、及びＣＩＴＹ２を含む第２抽出データＦＤ２を抽出し、該抽出された第２抽出データＦＤ２を出力制御回路３３５−５に出力する。
【００７５】
比較器３３５−３は、基準データＳ＿ＤＡＴＡに含まれた列値ＣＩＴＹ１と第１抽出データＦＤ１に含まれた列値ＣＩＴＹ２とを比較し、該比較の結果によって、不一致を表わす比較信号ＣＲＳを出力する。出力制御回路３３５−５は、不一致を表わす比較信号ＣＲＳに応答して、複数列値ＰＩＤ２、ＮＡＭＥ２、及びＣＩＴＹ２を含む第２抽出データＦＤ２を出力しない。引き続き、第１内部ハードウェアフィルター３３０のデータバッファ３３１は、複数列値ＰＩＤ３、ＮＡＭＥ３、ＡＤＤ３、及びＣＩＴＹ１を含む第３行ＲＥＣ３を第１補助記憶装置３１０から受信する。
【００７６】
データバッファ３３１は、対応するアドレスに応答して、第３行ＲＥＣ３に関連したメタデータＭＤＡＴＡをパージングデータ生成回路３３３−１に伝送し、第３行ＲＥＣ３、すなわち、データＤＡＴＡを抽出回路３３３−３に伝送する。すなわち、パージングデータ生成回路３３３−１は、メタデータＭＤＡＴＡをデータバッファ３３１から読み出し、抽出回路３３３−３は、データＤＡＴＡをデータバッファ３３１から読み出す。
【００７７】
パージングデータ生成回路３３３−１は、区分データＴＩＦと列抽出データＱＩＦとに基づいてパージングデータＰＤＡＴＡを抽出回路３３３−３に伝送する。例えば、パージングデータＰＤＡＴＡは、各列ＰＩＤ、ＮＡＭＥ、及びＣＩＴＹまたは各列値ＰＩＤ３、ＮＡＭＥ３、及びＣＩＴＹ１の開始位置または開始アドレスを含む。
【００７８】
抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、抽出しようとする列ＣＩＴＹに含まれた列値ＣＩＴＹ１を第１抽出データＦＤ１として比較器３３５−３に伝送する。また、抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、第３行ＲＥＣ３から複数列値ＰＩＤ３、ＮＡＭＥ３、及びＣＩＴＹ１を含む第２抽出データＦＤ２を抽出し、該抽出された第２抽出データＦＤ２を出力制御回路３３５−５に出力する。
【００７９】
比較器３３５−３は、基準データＳ＿ＤＡＴＡに含まれた列値ＣＩＴＹ１と第１抽出データＦＤ１に含まれた列値ＣＩＴＹ１とを比較し、該比較の結果によって、一致を表わす比較信号ＣＲＳを出力する。出力制御回路３３５−５は、一致を表わす比較信号ＣＲＳに応答して、複数列値ＰＩＤ３、ＮＡＭＥ３、及びＣＩＴＹ１を含む第２抽出データＦＤ２を第１フィルタリングされたデータＦＤＡＴＡ１としてバス３０１に出力する。
【００８０】
第１メモリコントローラ３５０は、複数列値ＰＩＤ３、ＮＡＭＥ３、及びＣＩＴＹ１を含む行ＲＥＣ３’を主記憶装置３７０に保存する。すなわち、第１メモリコントローラ３５０は、複数列値ＰＩＤ３、ＮＡＭＥ３、及びＣＩＴＹ１のそれぞれを複数列名ＰＩＤ、ＮＡＭＥ、及びＣＩＴＹのそれぞれに該当する列に保存する。引き続き、第１内部ハードウェアフィルター３３０のデータバッファ３３１は、複数列値ＰＩＤ４、ＮＡＭＥ４、ＡＤＤ４、及びＣＩＴＹ３を含む第４行ＲＥＣ４を第１補助記憶装置３１０から受信する。
【００８１】
データバッファ３３１は、対応するアドレスに応答して、第４行ＲＥＣ４に関連したメタデータＭＤＡＴＡをパージングデータ生成回路３３３−１に伝送し、第４行ＲＥＣ４、すなわち、データＤＡＴＡを抽出回路３３３−３に伝送する。
【００８２】
パージングデータ生成回路３３３−１は、区分データＴＩＦと列抽出データＱＩＦとに基づいてパージングデータＰＤＡＴＡを抽出回路３３３−３に伝送する。例えば、パージングデータＰＤＡＴＡは、各列ＰＩＤ、ＮＡＭＥ、及びＣＩＴＹまたは各列値ＰＩＤ４、ＮＡＭＥ４、及びＣＩＴＹ３の開始位置または開始アドレスを含む。
【００８３】
抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、抽出しようとする列ＣＩＴＹに含まれた列値ＣＩＴＹ３を第１抽出データＦＤ１として比較器３３５−３に伝送する。また、抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、第４行ＲＥＣ４から複数列値ＰＩＤ４、ＮＡＭＥ４、及びＣＩＴＹ３を含む第２抽出データＦＤ２を抽出し、該抽出された第２抽出データＦＤ２を出力制御回路３３５−５に出力する。
【００８４】
比較器３３５−３は、基準データＳ＿ＤＡＴＡに含まれた列値ＣＩＴＹ１と第１抽出データＦＤ１に含まれた列値ＣＩＴＹ３とを比較し、該比較の結果によって、不一致を表わす比較信号ＣＲＳを出力する。出力制御回路３３５−５は、不一致を表わす比較信号ＣＲＳに応答して、複数列値ＰＩＤ４、ＮＡＭＥ４、及びＣＩＴＹ３を含む第２抽出データＦＤ２を出力しない。
【００８５】
第１メモリコントローラ３５０によって生成されたテーブルＴＡＢ２は、主記憶装置３７０に保存された後、第１メモリコントローラ３５０は、テーブルＴＡＢ２をリードし、該リードされたテーブルＴＡＢ２をバス３０１を通じてホストコントローラ３９０に伝送する。ホストコントローラ３９０は、図２のＳＱＬによって列値ＣＩＴＹ１を含むテーブルＴＡＢ２をホスト２００に伝送する。図７に示すように、各列ＲＥＣ１乃至ＲＥＣ４は、データバッファ３３１に順次に保存された後、各列ＲＥＣ１乃至ＲＥＣ４は、データ抽出器３３３に順次に出力される。
【００８６】
図８は、図１に示したデータ処理システムの作動を説明する他の実施形態を示す。図８に示した固有のクエリー言語によって第１フィルタリングされたデータＦＤＡＴＡ１を出力するデータ保存装置３００Ａの作動を、図１、図５、図６、及び図８を参照して説明する。固有のクエリー言語は、製造社またはエンジニアによって定義されたクエリー言語である。
【００８７】
図８に示した固有のクエリー言語によって、種類指示データＤ＿ＴＹＰＥは、複数の整数を表わし、演算子指示データＣ＿ＴＹＰＥは、同じ（＝）を表わし、抽出指示データＲ＿ＤＡＴＡは、列値（９１．５０１．２７．９９）を表わし、区分データＴＩＦは、テーブルＴＡＢ３に含まれた複数列名ＩＰ、Ｄａｔｅ、及びＲｅｑｕｅｓｔのうちから抽出される各列名ＩＰ、Ｄａｔｅ、及びＲｅｑｕｅｓｔを区分するためのデータを含み、列抽出データＱＩＦは、抽出しようとする列名ＩＰを表わす。この際、基準データＳ＿ＤＡＴＡによって、複数の整数を比較するために、比較器３３５−３の第１データ種類比較器３３６−１が作動する。
【００８８】
フィルタリング条件データＦＣＤは、ＣＰＵ３０３によって実行されるファームウェアまたはＡＰＩによって第１内部ハードウェアフィルター３３０にプログラムされる。例えば、フィルタリング条件データＦＣＤの抽出条件データＥＣＤは、パージングデータ生成回路３３３−１にプログラムされ、フィルタリング条件データＦＣＤのマッチングキーデータＭＫＤは、レジスタ３３５−１にプログラムされる。
【００８９】
ＬＯＧという名称を有したテーブルＴＡＢ３は、第１リード命令ＲＣＭＤ１に基づいて第１補助記憶装置３１０から第１内部ハードウェアフィルター３３０に出力される。第１リード命令ＲＣＭＤ１は、ホスト２００から出力されたリード命令ＲＣＭＤに基づいて生成される。
【００９０】
第１リードデータＲＤＡＴＡ１は、テーブルＴＡＢ３とテーブルＴＡＢ３に関連したメタデータとを含む。第１内部ハードウェアフィルター３３０のデータバッファ３３１は、複数列値（１４１．２２２．４４．１、１１／１８／２０１３、及びＧｅｔ／ａ．ｊｐｇ）を含む第１行ＲＥＣ１１を第１補助記憶装置３１０から受信する。
【００９１】
データバッファ３３１は、対応するアドレスに応答して、第１行ＲＥＣ１１に関連したメタデータＭＤＡＴＡをパージングデータ生成回路３３３−１に伝送し、第１行ＲＥＣ１１、すなわち、データＤＡＴＡを抽出回路３３３−３に伝送する。
【００９２】
パージングデータ生成回路３３３−１は、区分データＴＩＦと列抽出データＱＩＦとに基づいてパージングデータＰＤＡＴＡを抽出回路３３３−３に伝送する。例えば、パージングデータＰＤＡＴＡは、各列ＩＰ、Ｄａｔｅ、及びＲｅｑｕｅｓｔまたは各列値（１４１．２２２．４４．１、１１／１８／２０１３、及びＧｅｔ／ａ．ｊｐｇ）の開始位置または開始アドレスを含む。
【００９３】
抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、抽出しようとする列ＩＰに含まれた列値（１４１．２２２．４４．１）を第１抽出データＦＤ１として比較器３３５−３に伝送する。また、抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、第１行ＲＥＣ１１から複数列値（１４１．２２２．４４．１、１１／１８／２０１３、及びＧｅｔ／ａ．ｊｐｇ）を含む第２抽出データＦＤ２を抽出し、該抽出した第２抽出データＦＤ２を出力制御回路３３５−５に出力する。
【００９４】
比較器３３５−３は、基準データＳ＿ＤＡＴＡに含まれた列値（９１．５０１．２７．９９）と第１抽出データＦＤ１に含まれた列値（１４１．２２２．４４．１）とを比較し、該比較の結果によって、不一致を表わす比較信号ＣＲＳを出力する。出力制御回路３３５−５は、不一致を表わす比較信号ＣＲＳに応答して、複数列値（１４１．２２２．４４．１、１１／１８／２０１３、及びＧｅｔ／ａ．ｊｐｇ）を含む第２抽出データＦＤ２を出力しない。
【００９５】
引き続き、第１内部ハードウェアフィルター３３０のデータバッファ３３１は、複数列値（９１．５０１．２７．９９、１１／１８／２０１３、及びＧｅｔ／Ｘ．ｊｐｇ）を含む第２行ＲＥＣ１２を第１補助記憶装置３１０から受信する。
【００９６】
データバッファ３３１は、対応するアドレスに応答して、第２行ＲＥＣ１２に関連したメタデータＭＤＡＴＡをパージングデータ生成回路３３３−１に伝送し、第２行ＲＥＣ１２、すなわち、データＤＡＴＡを抽出回路３３３−３に伝送する。
【００９７】
パージングデータ生成回路３３３−１は、区分データＴＩＦと列抽出データＱＩＦとに基づいてパージングデータＰＤＡＴＡを抽出回路３３３−３に伝送する。例えば、パージングデータＰＤＡＴＡは、各列ＩＰ、Ｄａｔｅ、及びＲｅｑｕｅｓｔまたは各列値（９１．５０１．２７．９９、１１／１８／２０１３、及びＧｅｔ／Ｘ．ｊｐｇ）の開始位置または開始アドレスを含む。
【００９８】
抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、抽出しようとする列ＩＰに含まれた列値（９１．５０１．２７．９９）を第１抽出データＦＤ１として比較器３３５−３に伝送する。また、抽出回路３３３−３は、パージングデータＰＤＡＴＡに基づいて、第２行ＲＥＣ１２から複数列値（９１．５０１．２７．９９、１１／１８／２０１３、及びＧｅｔ／Ｘ．ｊｐｇ）を含む第２抽出データＦＤ２を抽出し、該抽出した第２抽出データＦＤ２を出力制御回路３３５−５に出力する。
【００９９】
比較器３３５−３は、基準データＳ＿ＤＡＴＡに含まれた列値（９１．５０１．２７．９９）と第１抽出データＦＤ１に含まれた列値（９１．５０１．２７．９９）とを比較し、該比較の結果によって、一致を表わす比較信号ＣＲＳを出力する。出力制御回路３３５−５は、一致を表わす比較信号ＣＲＳに応答して、複数列値（９１．５０１．２７．９９、１１／１８／２０１３、及びＧｅｔ／Ｘ．ｊｐｇ）を含む第２抽出データＦＤ２を第１フィルタリングされたデータＦＤＡＴＡ１としてバス３０１に出力する。
【０１００】
第１メモリコントローラ３５０は、複数列値（９１．５０１．２７．９９、１１／１８／２０１３、及びＧｅｔ／Ｘ．ｊｐｇ）を含む行を主記憶装置３７０に保存する。この際、第１メモリコントローラ３５０は、複数列値（９１．５０１．２７．９９、１１／１８／２０１３、及びＧｅｔ／Ｘ．ｊｐｇ）のそれぞれが保存された複数列名ＩＰ、Ｄａｔａ、及びＲｅｑｕｅｓｔを生成し、複数列値（９１．５０１．２７．９９、１１／１８／２０１３、及びＧｅｔ／Ｘ．ｊｐｇ）のそれぞれを複数列名ＩＰ、Ｄａｔａ、及びＲｅｑｕｅｓｔのそれぞれに該当する列に保存する。
【０１０１】
複数列値（２０２．５１１．２．４９、１１／１８／２０１３、及びＧｅｔ／ｂ．ｊｐｇ）を含む第３行ＲＥＣ１３に該当する第２抽出データＦＤ２と複数列値（２２５．１２３．４５．９、１１／１８／２０１３、及びＧｅｔ／ｂ．ｊｐｇ）を含む第４行ＲＥＣ１４に該当する第２抽出データＦＤ２は、第１内部ハードウェアフィルター３３０によって出力されない。
【０１０２】
図９は、本発明の他の実施形態によるデータ処理システムのブロック図である。図９を参照すれば、データ処理システム１００Ｂは、ホスト２００とデータ保存装置３００Ｂとを含む。
【０１０３】
ホスト２００は、データ保存装置３００Ｂの作動を制御する。ＣＰＵ３０３と第２メモリコントローラ３０５とを除けば、図９のデータ保存装置３００Ｂの構造と作動は、図１のデータ保存装置３００Ａの構造と作動と実質的に同一である。
【０１０４】
ホスト２００は、フィルタリング命令ＦＣＭＤとリード命令ＲＣＭＤとをデータ保存装置３００Ｂに出力する。ＣＰＵ３０３は、第２メモリコントローラ３０５、第１内部ハードウェアフィルター３３０、第１メモリコントローラ３５０、及びホストコントローラ３９０の作動を制御する。ＣＰＵ３０３は、ホストコントローラ３９０とバス３０１とを通じてフィルタリング命令ＦＣＭＤを受信し、フィルタリング命令ＦＣＭＤを解釈し、該解釈の結果に基づいて、フィルタリング条件データＦＣＤを生成し、フィルタリング条件データＦＣＤをＣＰＵ３０３によって実行されるファームウェアまたはＡＰＩを用いて第１内部ハードウェアフィルター３３０にプログラムする。ＣＰＵ３０３は、ホスト２００から出力されたリード命令ＲＣＭＤに基づいて命令を生成し、該生成された命令を第２メモリコントローラ３０５に出力する。
【０１０５】
第２メモリコントローラ３０５は、前記命令に応答して第１リード命令ＲＣＭＤ１を生成し、第１リード命令ＲＣＭＤ１を第１補助記憶装置３１０に伝送する。
【０１０６】
第１補助記憶装置３１０は、第１リード命令ＲＣＭＤ１に応答して第１リードデータＲＤＡＴＡ１を第１内部ハードウェアフィルター３３０に伝送する。第１補助記憶装置３１０がデータベースとして使われる時、前記データベースの種類（または、ＳＱＬの種類）を指示する指示データは、フィルタリング命令ＦＣＭＤに含まれる。
【０１０７】
実施形態によって、フィルタリング命令ＦＣＭＤは、前記指示データとクエリーとを含みうる。他の実施形態によって、フィルタリング命令ＦＣＭＤは、前記指示データ、クエリー、及びリード命令ＲＣＭＤを含みうる。前記クエリーは、ＳＱＬまたは固有のクエリー言語である。実施形態によって、データ保存装置３００Ｂは、別途のＣＰＵ３０３−１をさらに含みうる。
【０１０８】
ＣＰＵ３０３−１は、ホスト２００から出力されたフィルタリング命令ＦＣＭＤに基づいて制御シーケンスを生成する。例えば、前記制御シーケンスは、リードされるテーブルについての情報、前記テーブルに含まれた複数列のうちから抽出される複数列についての情報、及び抽出される列値についての情報を含む。前記制御シーケンスは、データベースの種類及び／またはＳＱＬの種類をさらに含みうる。
【０１０９】
ＣＰＵ３０３は、前記制御シーケンスに基づいてフィルタリング条件データＦＣＤを生成し、フィルタリング条件データＦＣＤをＣＰＵ３０３によって実行されるファームウェアまたはＡＰＩを用いて第１内部ハードウェアフィルター３３０に設定する。
【０１１０】
図１０は、図９に示したデータ処理システムの作動を説明する一実施形態を示す。フィルタリング命令ＦＣＭＤが指示データとクエリーとを含む時のデータ処理システム１００Ｂの作動は、図１乃至図１０を参照して説明する。前記クエリーは、図２のＳＱＬまたは図８の固有のクエリー言語である。
【０１１１】
ＣＰＵ３０３は、ホスト２００から出力されたフィルタリング命令ＦＣＭＤを受信し（ステップＳ１１０）、フィルタリング命令ＦＣＭＤを解釈し、該解釈の結果によって、フィルタリング条件データＦＣＤを生成し、フィルタリング条件データＦＣＤを第１内部ハードウェアフィルター３３０に伝送する（ステップＳ１１２）。フィルタリング条件データＦＣＤは、第１内部ハードウェアフィルター３３０にライトされる（ステップＳ１１４）。ＣＰＵ３０３は、ホスト２００から出力されたリード命令ＲＣＭＤを受信し（ステップＳ１１６）、リード命令ＲＣＭＤに基づいて命令を生成し、該生成された命令を第２メモリコントローラ３０５に伝送する。第２メモリコントローラ３０５は、前記命令に基づいて第１リード命令ＲＣＭＤ１を生成し、第１リード命令ＲＣＭＤ１を第１補助記憶装置３１０に伝送する（ステップＳ１１８）。
【０１１２】
第１補助記憶装置３１０は、第２メモリコントローラ３０５から出力された第１リード命令ＲＣＭＤ１に基づいて第１リードデータＲＤＡＴＡ１を第１内部ハードウェアフィルター３３０に伝送する（ステップＳ１２０）。上述したように、第１内部ハードウェアフィルター３３０は、第１リードデータＲＤＡＴＡ１をフィルタリング条件データＦＣＤによってフィルタリングし、第１フィルタリングされたデータＦＤＡＴＡ１をバス３０１を通じて第１メモリコントローラ３５０に伝送し、第１メモリコントローラ３５０は、第１フィルタリングされたデータＦＤＡＴＡ１を主記憶装置３７０にライトする（ステップＳ１２２）。
【０１１３】
第１メモリコントローラ３５０は、主記憶装置３７０に保存された第１フィルタリングされたデータＦＤＡＴＡ１をリードし、該リードされた第１フィルタリングされたデータＦＤＡＴＡ１は、バス３０１とホストコントローラ３９０とを通じてホスト２００に伝送される（ステップＳ１２４）。
【０１１４】
図１１は、図９に示したデータ処理システムの作動を説明する他の実施形態を示す。フィルタリング命令ＦＣＭＤが指示データ、クエリー、及びリード命令ＲＣＭＤを含む時のデータ処理システム１００Ｂの作動は、図１乃至図９、及び図１１を参照して説明する。前記クエリーは、図２のＳＱＬまたは図８の固有のクエリー言語である。
【０１１５】
ＣＰＵ３０３は、リード命令ＲＣＭＤを含むフィルタリング命令ＦＣＭＤを受信し（ステップＳ２１０）、フィルタリング命令ＦＣＭＤに含まれた前記指示データと前記クエリーとを解釈し、該解釈の結果によって、フィルタリング条件データＦＣＤを生成し、フィルタリング条件データＦＣＤを第１内部ハードウェアフィルター３３０に伝送する（ステップＳ２１２）。フィルタリング条件データＦＣＤは、第１内部ハードウェアフィルター３３０にライトされる（ステップＳ２１４）。
【０１１６】
ＣＰＵ３０３が、リード命令ＲＣＭＤに応答して生成された命令を第２メモリコントローラ３０５に伝送すれば、第２メモリコントローラ３０５は、前記命令に基づいて第１リード命令ＲＣＭＤ１を生成し、第１リード命令ＲＣＭＤ１を第１補助記憶装置３１０に伝送する（ステップＳ２１６）。
【０１１７】
第１補助記憶装置３１０は、第２メモリコントローラ３０５から出力された第１リード命令ＲＣＭＤ１に基づいて第１リードデータＲＤＡＴＡ１を第１内部ハードウェアフィルター３３０に伝送する（ステップＳ２１８）。上述したように、第１内部ハードウェアフィルター３３０は、第１リードデータＲＤＡＴＡ１をフィルタリング条件データＦＣＤによってフィルタリングし、第１フィルタリングされたデータＦＤＡＴＡ１をバス３０１を通じて第１メモリコントローラ３５０に伝送し、第１メモリコントローラ３５０は、第１フィルタリングされたデータＦＤＡＴＡ１を主記憶装置３７０にライトする（ステップＳ２２０）。
【０１１８】
第１メモリコントローラ３５０は、主記憶装置３７０に保存された第１フィルタリングされたデータＦＤＡＴＡ１をリードする。該リードされた第１フィルタリングされたデータＦＤＡＴＡ１は、バス３０１とホストコントローラ３９０とを通じてホスト２００に伝送される（ステップＳ２２２）。
【０１１９】
図１２は、本発明のさらに他の実施形態によるデータ処理システムのブロック図であり、図１３は、図１２に示したデータ処理システムの作動を説明する実施形態を示す。図１２を参照すれば、データ処理システム１００Ｃは、ホスト２００とデータ保存装置３００Ｃとを含む。
【０１２０】
図１３を参照すれば、ＰＥＲＳＯＮＳという１つのテーブルに保存されたデータは、２つの補助記憶装置３１０、３１０−１のそれぞれに分散されて保存される。すなわち、前記テーブルの一部に該当するテーブルＴＡＢ１は、第１補助記憶装置３１０に保存され、前記テーブルの残りの一部に該当するテーブルＴＡＢ１１は、第２補助記憶装置３１０−１に保存される。各内部ハードウェアフィルターは、各チャネル（または、各補助記憶装置）ごとに存在する。
【０１２１】
図１２においては、説明の便宜上、２つの補助記憶装置３１０、３１０−１と２つの内部ハードウェアフィルター３３０、３３０−１とを示すが、本発明の実施形態によるフィルタリング方法が、これに限定されるものではない。したがって、本発明の実施形態によるフィルタリング方法は、３つ以上の補助記憶装置と３つ以上の内部ハードウェアフィルターとを含むデータ保存装置に適用可能である。
【０１２２】
ホスト２００は、データ保存装置３００Ｃの作動を制御する。第２補助記憶装置３１０−１と第２内部ハードウェアフィルター３３０−１とを除けば、図１２のデータ保存装置３００Ｃの構造と作動は、図１のデータ保存装置３００Ａの構造と作動と実質的に同一である。
【０１２３】
第１内部ハードウェアフィルター３３０の構造と作動は、第２内部ハードウェアフィルター３３０−１の構造と作動と実質的に同一である。ホスト２００は、フィルタリング命令ＦＣＭＤとリード命令ＲＣＭＤとをデータ保存装置３００Ｃに出力する。
【０１２４】
フィルタリング命令ＦＣＭＤに基づいて生成されたフィルタリング条件データＦＣＤは、図１４のＣＰＵ３０３によって実行されるファームウェアまたはＡＰＩによって、各内部ハードウェアフィルター３３０、３３０−１に設定またはプログラムされる。
【０１２５】
図１、図５、及び図７を参照して説明したように、第１補助記憶装置３１０は、第１リード命令ＲＣＭＤ１に応答して第１リードデータＲＤＡＴＡ１を第１内部ハードウェアフィルター３３０に伝送する。
【０１２６】
第１内部ハードウェアフィルター３３０は、第１リードデータＲＤＡＴＡをフィルタリング条件データＦＣＤによってフィルタリングし、第１フィルタリングされたデータＦＤＡＴＡ１をバス３０１に出力する。第１メモリコントローラ３５０は、各行ＲＥＣ１、ＲＥＣ３に相応する各行ＲＥＣ１’、ＲＥＣ３’を主記憶装置３７０に保存する。
【０１２７】
第２補助記憶装置３１０−１は、第２リード命令ＲＣＭＤ２に応答して第２リードデータＲＤＡＴＡ２を第２内部ハードウェアフィルター３３０−１に伝送する。第２内部ハードウェアフィルター３３０−１は、第２リードデータＲＤＡＴＡ２をフィルタリング条件データＦＣＤによってフィルタリングし、第２フィルタリングされたデータＦＤＡＴＡ２をバス３０１に出力する。
【０１２８】
第１メモリコントローラ３５０は、各行ＲＥＣ５、ＲＥＣ７に相応する各行ＲＥＣ５’、ＲＥＣ７’を主記憶装置３７０に保存する。第１メモリコントローラ３５０は、主記憶装置３７０に保存された各テーブルＴＡＢ２、ＴＡＢ１２に含まれた各行ＲＥＣ１’、ＲＥＣ３’、ＲＥＣ５’、及びＲＥＣ７’をリードし、各行ＲＥＣ１’、ＲＥＣ３’、ＲＥＣ５’、及びＲＥＣ７’を含むデータ、例えば、テーブルＴＡＢ１３をバス３０１に伝送する。ホストコントローラ３９０は、第１フィルタリングされたデータＦＤＡＴＡ１と第２フィルタリングされたデータＦＤＡＴＡ２とを１つのテーブルＴＡＢ１３としてホスト２００に伝送する。
【０１２９】
図１４は、本発明のさらに他の実施形態によるデータ処理システムのブロック図である。図１４を参照すれば、データ処理システム１００Ｄは、ホスト２００とデータ保存装置３００Ｄとを含む。ホスト２００は、データ保存装置３００Ｄの作動を制御する。
【０１３０】
ＣＰＵ３０３と第２メモリコントローラ３０５とを除けば、図１４のデータ保存装置３００Ｄの構造と作動は、図１２のデータ保存装置３００Ｃの構造と作動と実質的に同一である。ホスト２００は、フィルタリング命令ＦＣＭＤとリード命令ＲＣＭＤとをデータ保存装置３００Ｄに出力する。上述したように、フィルタリング命令ＦＣＭＤは、リード命令ＲＣＭＤを含む。
【０１３１】
ＣＰＵ３０３は、第２メモリコントローラ３０５、第１内部ハードウェアフィルター３３０、第２内部ハードウェアフィルター３３０−１、第１メモリコントローラ３５０、及びホストコントローラ３９０の作動を制御する。ＣＰＵ３０３は、ホストコントローラ３９０とバス３０１とを通じてフィルタリング命令ＦＣＭＤを受信し、フィルタリング命令ＦＣＭＤを解釈し、該解釈の結果に基づいて、フィルタリング条件データＦＣＤを生成し、フィルタリング条件データＦＣＤを各内部ハードウェアフィルター３３０、３３０−１にプログラムする。ＣＰＵ３０３は、リード命令ＲＣＭＤを解釈し、該解釈の結果に相応する命令を第２メモリコントローラ３０５に出力する。
【０１３２】
第２メモリコントローラ３０５は、ＣＰＵ３０３から出力された前記命令ＲＣＭＤに応答して、第１リード命令ＲＣＭＤ１と第２リード命令ＲＣＭＤ２とを生成し、第１リード命令ＲＣＭＤ１を第１補助記憶装置３１０に伝送し、第２リード命令ＲＣＭＤ２を第２補助記憶装置３１０−１に伝送する。したがって、第１補助記憶装置３１０は、第１リード命令ＲＣＭＤ１に応答して第１リードデータＲＤＡＴＡ１を第１内部ハードウェアフィルター３３０に伝送し、第２補助記憶装置３１０−１は、第２リード命令ＲＣＭＤ２に応答して第２リードデータＲＤＡＴＡ２を第２内部ハードウェアフィルター３３０−１に伝送する。
【０１３３】
ＣＰＵ３０３は、内部メモリ３０４を含む。内部メモリ３０４は、ＳＲＡＭとして具現可能である。ＣＰＵ３０３は、内部メモリ３０４を用いて第１フィルタリングされたデータＦＤＡＴＡ１と第２フィルタリングされたデータＦＤＡＴＡ２とから必要なデータをフィルタリングする。これをＣＰＵ３０３による２次フィルタリングと言う。
【０１３４】
ホストコントローラ３９０は、ＣＰＵ３０３によって２次フィルタリングされたデータをホスト２００に伝送する。上述したように、データ保存装置３００Ｄは、別途のＣＰＵ３０３−１をさらに含みうる。
【０１３５】
図１５は、図１４に示したデータ処理システムの作動を説明する一実施形態を示す。データベースとして使われる複数の補助記憶装置３１０、３１０−１にデータが保存される時、１つの行には、可変的な長さを有するデータを保存する。この場合、前記行は、複数の補助記憶装置３１０、３１０−１に分けて保存する。
【０１３６】
図１５に示したように、１つの行は、２つの補助記憶装置３１０、３１０−１に保存される。すなわち、前記行の一部に該当するデータ（Ａ１Ａ２Ａ３）は、第１補助記憶装置３１０のテーブルＴＡＢ２１に保存され、前記行の残りの一部に該当するデータ（Ｂ１Ｂ２Ｂ３）は、第２補助記憶装置３１０−１のテーブルＴＡＢ２２に保存される。
【０１３７】
第１内部ハードウェアフィルター３３０は、第１リードデータＲＤＡＴＡ１をフィルタリング条件データＦＣＤによってフィルタリングし、第１フィルタリングされたデータＦＤＡＴＡ１を出力する。この際、第１内部ハードウェアフィルター３３０は、出力データが第１フィルタリングされたデータＦＤＡＴＡ１であることを指示するフラグ（ＦＬＡＧ＝１）を生成し、フラグ（ＦＬＡＧ＝１）を第１フィルタリングされたデータＦＤＡＴＡ１と共にバス３０１を通じて第１メモリコントローラ３５０に出力する。
【０１３８】
第２内部ハードウェアフィルター３３０−１は、第２リードデータＲＤＡＴＡ２をフィルタリング条件データＦＣＤによってフィルタリングし、第２フィルタリングされた第２データＦＤＡＴＡ２を出力する。この際、第２内部ハードウェアフィルター３３０−１は、出力データが第２フィルタリングされたデータＦＤＡＴＡ２であることを指示するフラグ（ＦＬＡＧ＝１）を生成し、フラグ（ＦＬＡＧ＝１）を第２フィルタリングされたデータＦＤＡＴＡ２と共にバス３０１を通じて第１メモリコントローラ３５０に出力する。したがって、ホスト２００は、フラグ（ＦＬＡＧ＝１）を用いてフィルタリングされたデータＦＤＡＴＡ１及び／またはＦＤＡＴＡ２を区別できる。
【０１３９】
図１６は、図１４に示したデータ処理システムの作動を説明する他の実施形態を示す。図１６に示したように、１つの行は、２つの補助記憶装置３１０、３１０−１に保存される。すなわち、前記行の一部に該当するデータ（Ａ１Ａ２Ａ３−１）は、第１補助記憶装置３１０のテーブルＴＡＢ３１に保存され、前記行の残りの一部に該当するデータ（Ａ３−２）は、第２補助記憶装置３１０−１のテーブルＴＡＢ３２に保存される。
【０１４０】
第１内部ハードウェアフィルター３３０は、第１リードデータＲＤＡＴＡ１をフィルタリングせず、そのまま出力する。この際、第１内部ハードウェアフィルター３３０は、出力データＵＦＤＡＴＡ１がフィルタリングされていないデータであることを指示するフラグ（ＦＬＡＧ＝０）を生成し、フラグＦＬＡＧと出力データＵＦＤＡＴＡ１とを共にバス３０１を通じて第１メモリコントローラ３５０に出力する。第２内部ハードウェアフィルター３３０−１は、第２リードデータＲＤＡＴＡ２をフィルタリングせず、そのまま出力する。この際、第２内部ハードウェアフィルター３３０−１は、出力データＵＦＤＡＴＡ２がフィルタリングされていないデータであることを指示するフラグ（ＦＬＡＧ＝０）を生成し、フラグ（ＦＬＡＧ＝０）と出力データＵＦＤＡＴＡ２とを共にバス３０１を通じて第１メモリコントローラ３５０に出力する。
【０１４１】
図１７は、本発明の実施形態によるデータ処理システムの作動を説明するフローチャートである。少なくとも１つの補助記憶装置３１０、３１０−１、主記憶装置３７０、及び少なくとも１つのハードウェアフィルター３３０、３３０−１を内蔵するデータ保存装置３００Ａ、３００Ｂ、３００Ｃ、または３００Ｄ（集合的に（ｃｏｌｌｅｃｔｉｖｅｌｙ）３００）の作動方法は、図１乃至図１７を参照して説明する。
【０１４２】
少なくとも１つのハードウェアフィルター３３０、３３０−１にフィルタリング条件データＦＣＤが設定またはプログラムされる（ステップＳ３１０）。フィルタリング条件データＦＣＤは、フィルタリング命令ＦＣＭＤに関連したデータである。フィルタリング条件データＦＣＤは、ＣＰＵ３０３によって、またはＣＰＵ３０３によって実行されるファームウェアまたはＡＰＩによって、少なくとも１つのハードウェアフィルター３３０、３３０−１にプログラムされる。
【０１４３】
少なくとも１つの補助記憶装置３１０、３１０−１は、該当するリード命令ＲＣＭＤ１及び／またはＲＣＭＤ２を実行し（ステップＳ３２０）、該当するリードデータＲＤＡＴＡ１及び／またはＲＤＡＴＡ２を該当する内部ハードウェアフィルター３３０及び／または３３０−１に伝送する（ステップＳ３３０）。
【０１４４】
少なくとも１つのハードウェアフィルター３３０、３３０−１は、フィルタリング条件データＦＣＤを用いて、該当するリードデータＲＤＡＴＡ１及び／またはＲＤＡＴＡ２をフィルタリングし、該当するフィルタリングされたデータＦＤＡＴＡ１及び／またはＦＤＡＴＡ２をバス３０１と第１メモリコントローラ３５０とを通じて主記憶装置３７０に保存する（ステップＳ３４０）。
【０１４５】
第１メモリコントローラ３５０は、主記憶装置３７０に保存された該当するフィルタリングされたデータＦＤＡＴＡ１及び／またはＦＤＡＴＡ２をバス３０１とホストコントローラ３９０とを通じてホスト２００に伝送する（ステップＳ３５０）。
【０１４６】
図１８は、本発明の実施形態によるデータサーバシステムのブロック図である。図１８を参照すれば、データサーバシステム４００は、複数のクライアント４０１、複数のウェブサーバ４１０、・・・、４１２、複数のデータベースサーバ２００−１、・・・、２００−２、及び複数のデータベースＤＢ１、・・・、ＤＢ２を含む。
【０１４７】
データサーバシステム４００は、サーチポータル（ｓｅａｒｃｈ  ｐｏｒｔａｌ）またはＩＤＣ（Ｉｎｔｅｒｎｅｔ  Ｄａｔａ  Ｃｅｎｔｅｒ）を意味する。複数のクライアント４０１は、ネットワークを通じて各ウェブサーバ４１０、・・・、４１２と通信する。複数のクライアント４０１のそれぞれは、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ラップトップコンピュータ（ｌａｐｔｏｐ  ｃｏｍｐｕｔｅｒ）、スマートフォン、タブレット（ｔａｂｌｅｔ）ＰＣ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、またはモバイルインターネット装置（Ｍｏｂｉｌｅ  Ｉｎｔｅｒｎｅｔ  Ｄｅｖｉｃｅ；ＭＩＤ）として具現可能である。
【０１４８】
複数のウェブサーバ４１０、・・・、４１２のそれぞれは、ネットワーク４１４を通じて複数のデータベースサーバ２００−１、・・・、２００−２のそれぞれと通信する。複数のデータベースサーバ２００−１、・・・、２００−２のそれぞれは、ホスト２００の機能を行う。
【０１４９】
複数のデータベースサーバ２００−１、・・・、２００−２のそれぞれは、複数のデータベースＤＢ１、・・・、ＤＢ２のそれぞれの作動を制御する。複数のデータベースサーバ２００−１、・・・、２００−２のそれぞれは、複数のデータベースＤＢ１、・・・、ＤＢ２のそれぞれにアクセスする。各データベースＤＢ１、・・・、ＤＢ２は、複数のデータ保存装置３００を含む。複数のウェブサーバ４１０、・・・、４１２と複数のデータベースサーバ２００−１、・・・、２００−２は、ネットワークを通じて通信する。前記ネットワークは、有線ネットワーク、無線ネットワーク、インターネット、または移動電話ネットワークを含む。
【産業上の利用可能性】
【０１５０】
本発明は、データ保存装置と、それを含むデータ処理システムとに利用されうる。
【符号の説明】
【０１５１】
１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ  データ処理システム
２００  ホスト
３００Ａ、３００Ｂ、３００Ｃ、３００Ｄ  データ保存装置
３１０  第１補助記憶装置
３１０−１  第２補助記憶装置
３３０  第１内部ハードウェアフィルター
３３０−１  第２内部ハードウェアフィルター
３３３  データ抽出器
３３３−１  パージングデータ生成回路
３３３−３  抽出回路
３３５  データ比較器
３３５−１  レジスタ
３３５−３  比較器
３３５−５  出力制御回路
３５０  第１メモリコントローラ
３７０  主記憶装置
３９０  ホストコントローラ
【図１】
2015106413.tif 000003
【図２】
2015106413.tif 000004
【図３】
2015106413.tif 000005
【図４】
2015106413.tif 000006
【図５】
2015106413.tif 000007
【図６】
2015106413.tif 000008
【図７】
2015106413.tif 000009
【図８】
2015106413.tif 000010
【図９】
2015106413.tif 000011
【図１０】
2015106413.tif 000012
【図１１】
2015106413.tif 000013
【図１２】
2015106413.tif 000014
【図１３】
2015106413.tif 000015
【図１４】
2015106413.tif 000016
【図１５】
2015106413.tif 000017
【図１６】
2015106413.tif 000018
【図１７】
2015106413.tif 000019
【図１８】
2015106413.tif 000020