【手続補正書】
【提出日】平成28年8月9日(2016.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
テーブルを対象とするクエリの結果をフィルタリングするための基準を指定する宣言に基づいて回路をプログラミングしてフィルタリングユニットの再構成可能なハードウェアにすることを含み、
前記宣言は前記テーブルの特定の列に対する条件を指定し、
前記特定の列から入力キャッシュに値をロードするとともに前記フィルタリングユニットに前記宣言を前記値に適用させることによって、宣言結果を生成することを含み、
前記宣言結果は、前記特定の列の中の、前記宣言によって指定された前記条件を満たす値を有する、前記テーブルの行を特定し、
前記宣言結果に少なくとも一部基づき、前記クエリの結果として返す行を選択することと、
前記選択された行を前記クエリに対する結果として返すこととを含み、
前記方法は１つ以上の計算装置によって実行される、方法。
【請求項２】
前記宣言結果はビットベクトルであり、前記ビットベクトルの各ビットは、特定の行に対応し、第１の宣言によって指定された条件を前記特定の行が満たすか否か特定する、請求項１に記載の方法。
【請求項３】
前記宣言は、前記クエリに対応付けられた一組の宣言のうちの第１の宣言であり、
前記宣言結果は第１の宣言結果であり、
前記方法はさらに、
前記クエリの結果をフィルタリングするための第２の基準を指定する、前記一組の宣言のうちの第２の宣言に基づいて第２の回路をプログラミングして前記フィルタリングユニットの再構成可能なハードウェアにすることを含み、
前記第２の宣言は前記テーブルの第２の列に対する第２の条件を指定し、
前記第２の列から前記入力キャッシュに値をロードするとともに前記フィルタリングユニットに前記第２の宣言を前記値に適用させることによって、第２の宣言結果を生成することを含み、
前記第２の宣言結果は、前記第２の列の中の、前記第２の宣言によって指定された前記第２の条件を満たす値を有する、前記テーブルの行を特定し、
前記宣言結果に少なくとも一部基づき、結果として返す行を選択することは、
前記第１の宣言結果を前記第２の宣言結果と結合することにより結合結果を生成することと、
前記結合結果を用いて前記第１の宣言および前記第２の宣言双方を満たす行を特定することと、
前記結合結果によって特定された行を、前記第１の宣言および前記第２の宣言双方を満たすものとして選択することとを含む、請求項１または２に記載の方法。
【請求項４】
一組の宣言のうちの各宣言について、
前記クエリのフィルタリング結果に対する特定の基準を指定する、前記一組の宣言のうちの各宣言に基づいて特定の回路をプログラミングして前記フィルタリングユニットの再構成可能なハードウェアにすることと、
列の少なくとも一部から前記フィルタリングユニットに値をロードするとともに前記フィルタリングユニットに前記各宣言を前記値に適用させることによって、宣言結果を生成することとをさらに含み、
前記結果として返す行を選択することは、
各宣言結果を結合することにより、前記一組の宣言によって指定されたすべての基準を満たす行を特定する最終結果を生成することと、
前記最終結果によって特定された行を、前記一組の宣言によって指定された基準を満たすものとして選択することとを含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記各宣言について生成された前記宣言結果を用いて、次の宣言の評価のために前記フィルタリングユニットに与える行の値を決定し、
前記一組の宣言は逐次順序で評価され、
前記逐次順序は、宣言が多数の行をふるい落とす可能性に基づいており、
多数の行をふるい落とす可能性がより高い宣言は、多数の行をふるい落とす可能性がより低い宣言よりも前に評価される、請求項４に記載の方法。
【請求項６】
前記結果として行を選択することは、前記最終結果を一組のメモリアドレスに変換することをさらに含み、
前記一組のメモリアドレスのうちの各メモリアドレスは、前記一組の宣言によって指定された前記基準を満たす行の記憶場所を特定する、請求項４に記載の方法。
【請求項７】
前記フィルタリングユニットに前記宣言を前記値に適用させることは、
前記特定の列の対応する行に対し、前記対応する行の値が前記条件を満たす場合に、第１のビット値を生成することと、
前記対応する行に対し、前記対応する行の値が前記条件を満たさない場合に、前記第１のビット値と異なる第２のビット値を生成することとを含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記特定の列から入力キャッシュに値をロードするとともに前記フィルタリングユニットに前記宣言を前記値に適用させることによって、宣言結果を生成することは、
メモリの第１のブロックに格納された前記特定の列から第１組の値をロードすることと、
前記フィルタリングユニットに、前記宣言を前記第１組の値に適用させることによって第１のビットベクトルを生成することとを含み、前記第１のビットベクトルは、前記宣言によって指定された前記条件を満たす、メモリの前記第１のブロック内に格納された値を有する、前記テーブルの行を特定し、
メモリの第２のブロックに格納された前記特定の列から第２組の値をロードすることと、
前記フィルタリングユニットに、前記宣言を前記第２組の値に適用させることによって第２のビットベクトルを生成することとを含み、前記第２のビットベクトルは、前記宣言によって指定された前記条件を満たす、メモリの前記第２のブロック内に格納された値を有する、前記テーブルの行を特定する、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記フィルタリングユニットに前記宣言を前記値に適用させることは、前記フィルタリングユニットに、前記特定の列からの複数の値に対して前記宣言を同時に適用させることを含む、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
１つ以上のプロセッサにより実行されると請求項１〜９のうちいずれか一項に記載の方法を実行させる命令を含むコンピュータ読取可能なプログラム。
【請求項１１】
フィルタリングおよび射影動作を実行するためのシステムであって、
制御ユニットを備え、前記制御ユニットは、
テーブルを対象とするクエリの結果をフィルタリングするための基準を指定する一組の宣言を受けるように、かつ、
前記テーブルの特定の列に対する条件を指定する、前記一組の宣言のうちの特定の宣言を適用するように回路をプログラミングしてフィルタユニットの再構成可能なハードウェアにするように構成され、
フィルタユニットを備え、前記フィルタユニットは、
前記特定の列から値を受け前記特定の宣言を前記値に適用するように、かつ
前記特定の宣言によって指定された前記条件を満たす、前記特定の列の中の値を有する、前記テーブルの行を特定するビットベクトルを生成するように構成され、
射影ユニットを備え、前記射影ユニットは、
前記ビットベクトルに少なくとも一部基づき、前記クエリの結果として返す行を選択するように、かつ
前記選択された行を前記クエリに対する結果として返すように構成される、システム。
【請求項１２】
前記宣言は、前記クエリに対応付けられた一組の宣言のうちの第１の宣言であり、
前記制御ユニットはさらに、前記テーブルの第２の列に対する第２の条件を指定する、前記一組の宣言のうちの第２の宣言を用いて第２の回路をプログラミングして前記フィルタユニットの再構成可能なハードウェアにするように構成され、
前記フィルタユニットはさらに、
前記第２の列から値を受け前記第２の宣言を前記値に適用するように、かつ
前記第２の列の中で前記第２の宣言によって指定された前記第２の条件を満たす値を有する、前記テーブルの行を特定する第２のビットベクトルを生成するように構成され、
前記システムはさらに結合ユニットを備え、前記結合ユニットは、ビット単位の演算子を適用することによって第１のビットベクトルを前記第２のビットベクトルと結合することによって第３のビットベクトルを生成するように構成され、
前記射影ユニットは、
前記第３のビットベクトルを用いて前記第１の宣言および前記第２の宣言双方を満たす行を特定するように、かつ
前記第１の宣言および前記第２の宣言双方を満たすものとして、前記第３のビットベクトルによって特定された行を選択するように構成される、請求項１１に記載のシステム。