【手続補正書】
【提出日】平成28年2月16日(2016.2.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マシンによって実現される、データベースクエリを処理する方法であって、
コプロセッサから独立して、データベースクエリの実行はデータベースオブジェクトデータのスキャン動作を伴うと判断することと、
前記データベースクエリの実行はスキャン動作を伴うという判断に応じて、スキャン動作コマンドを生成することとを含み、前記スキャン動作コマンドは、前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される１つ以上の値とを含み、
前記スキャン動作コマンドを前記コプロセッサから独立したメモリに格納させることと、
前記コプロセッサによって前記スキャン動作コマンドを処理することとを含み、前記スキャン動作コマンドは、以下によって処理され、
前記スキャン動作コマンドを前記メモリから読出すこと、
前記メモリアドレスデータによって示される場所から前記入力データを読出させること、
前記入力データと前記１つ以上の値との比較を実行すること、
前記比較に基づいて結果データを生成すること、
前記結果データを格納させること、さらに、
前記結果データを用いて前記データベースクエリに対する結果を計算することを含む、方法。
【請求項２】
前記スキャン動作コマンドは、実行する動作のタイプを示す動作タイプデータをさらに含み、
前記スキャン動作コマンドはさらに、前記動作タイプデータを先ず識別し前記動作のタイプを判断することによって、処理される、請求項１に記載の方法。
【請求項３】
前記動作タイプデータを用いて、前記入力データを解釈するのに使用されるロジックを判断することと、
前記入力データを、第１のデータタイプから、前記第１のデータタイプと異なる第２の
データタイプに変換することとをさらに含む、請求項２に記載の方法。
【請求項４】
前記入力データは、値データとカウントデータとを含み、
前記値データの中の入力値はデータ要素に対応し、前記データ要素の数は前記カウントデータの中のカウント値によって示され、
前記入力データと前記１つ以上の値との比較は、前記入力値と前記１つ以上の値との比較を含み、
前記結果データの生成は、前記入力値が前記１つ以上の値を満たすか否かを表示する結果表示を生成することを含み、
前記結果データの生成は、前記入力値と前記１つ以上の値とを前記数に等しい回数比較することなく行なわれる、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記スキャン動作コマンドは、前記結果データを格納する場所を示す宛先データをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記結果データを格納させることは、前記結果データをマイクロプロセッサのキャッシュに格納させることを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記結果データを格納させることは、前記スキャン動作コマンドが実行されたことを示す完了状態を格納させることをさらに含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記データベースクエリの実行は前記スキャン動作と１つ以上のその他の動作とを含む複数の動作を伴うと判断し、
前記方法は、
前記結果データを記憶装置から取出すことと、
前記結果データを前記記憶装置から取出した後、前記１つ以上のその他の動作に対する入力として前記結果データを必要とする前記１つ以上のその他の動作を処理することとをさらに含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記コプロセッサは、連続して接続された複数のコプロセッサのうちの第１のコプロセッサであり、
前記結果データを格納させることは、前記複数のコプロセッサのうちの第２のコプロセッサのバッファに前記結果データを送信させることを含み、
前記方法は、
前記第１のコプロセッサが前記データベースクエリの一部を実行している間に、前記第２のコプロセッサによって前記バッファから前記結果データを読出すことと、
前記結果データに基づいて、前記第２のコプロセッサによって第２の結果データを生成することとをさらに含む、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記判断するステップ、前記生成するステップ、および前記格納させるステップは、クエリ実行エンジンを実行する汎用マイクロプロセッサによって実行され、前記汎用マイクロプロセッサは前記コプロセッサから独立したものである、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
スキャン動作コマンドを生成することは、前記スキャン動作を含む複数のスキャン動作コマンドを生成することを含み、
前記スキャン動作コマンドをメモリに格納させることは、前記複数のスキャン動作コマンドのうちの各スキャン動作コマンドについて、前記各スキャン動作コマンドを前記メモリに格納させることを含み、
複数のコプロセッサのうちの各コプロセッサが、前記複数のスキャン動作コマンドからスキャン動作コマンドを選択する、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
前記スキャン動作コマンドに含まれる前記メモリアドレスデータは、１つ以上の仮想アドレスを含み、
前記方法は、前記１つ以上の仮想アドレスを、前記コプロセッサが入力データを読出すのに使用する１つ以上の物理アドレスに置換えさせることをさらに含む、請求項１〜１１のいずれか１項に記載の方法。
【請求項１３】
１つ以上の基準が満たされるか否か判断することをさらに含み、前記１つ以上の基準が満たされる場合のみ、前記スキャン動作コマンドを前記コプロセッサに送信させる、請求項１〜１２のいずれか１項に記載の方法。
【請求項１４】
前記１つ以上の基準は、前記コプロセッサが前記スキャン動作を実行するために読出すことが必要なデータの量に基づく、請求項１３に記載の方法。
【請求項１５】
前記１つ以上の値は複数のデータ要素を含み、
前記入力データと前記１つ以上の値との比較は、同時に、前記入力データと前記複数のデータ要素とを比較することを含む、請求項１〜１４のいずれか１項に記載の方法。
【請求項１６】
前記比較に基づいて結果データを生成することは、ビットベクトルを生成することを含み、前記ビットベクトルにおける各ビットは、比較から得られたものが真か偽かを示す、請求項１〜１５のいずれか１項に記載の方法。
【請求項１７】
コプロセッサであって、
スキャン動作コマンドを読出すステップを実行するように構成され、前記スキャン動作コマンドは、
（１）クエリの処理に関連する命令を実行するマイクロプロセッサによって生成されたものであり、
（２）前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される１つ以上の値とを含み、さらに、
前記入力データを前記メモリアドレスデータによって示される場所から読出させるステップと、
前記入力データと前記１つ以上の値との比較を実行するステップと、
前記比較に基づいて結果データを生成することと、
前記マイクロプロセッサに前記結果データを通知するステップとを実行するように構成される、コプロセッサ。
【請求項１８】
データベースクエリを処理するためのシステムであって、
マイクロプロセッサと、
コプロセッサと、
前記マイクロプロセッサおよび前記コプロセッサに接続されたメモリとを備え、
前記マイクロプロセッサは、
前記コプロセッサから独立して、前記データベースクエリの実行はデータベースオブジェクトデータのスキャン動作を伴うと判断するように構成され、
前記データベースクエリの実行はスキャン動作を伴うという判断に応じて、スキャン動作コマンドを生成するように構成され、前記スキャン動作コマンドは、前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される１つ以上の値とを含み、
前記スキャン動作コマンドを前記コプロセッサから独立したメモリに格納させるように構成され、
前記コプロセッサは、前記スキャン動作コマンドを処理するように構成され、前記スキャン動作コマンドは、
前記スキャン動作コマンドを前記メモリから読出すこと、
前記メモリアドレスデータによって示される場所から前記入力データを読出させること、
前記入力データと前記１つ以上の値との比較を実行すること、
前記比較に基づいて結果データを生成すること、および
前記結果データを格納させることによって処理され、
前記結果データは、前記データベースクエリに対する結果を計算するために使用される、システム。