【手続補正書】
【提出日】平成28年6月6日(2016.6.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチプロセッサコンピュータシステムにおいて要求に応答するための方法であって、
第１タイプの１つ以上のプロセッサが１つ以上の要求を受け取ることであって、各要求がキー値を有し、前記第１タイプの１つ以上のプロセッサが、複数のデータ値を有する第１データ構造を備える第１メモリに関連付けられており、各データ値が、前記第１メモリ内の複数の位置のうち１つの位置に対応している、ことと、
前記１つ以上の要求を、前記第１タイプの前記１つ以上のプロセッサに関連付けられた前記第１メモリから、第２タイプの１つ以上のプロセッサに関連付けられた第２メモリへと移動させることであって、前記第２メモリが第２データ構造を備え、前記第２データ構造が、（ｉ）複数のキー値のうち１つのキー値と、前記第１メモリ内の複数の位置のうち１つの位置と、をそれぞれ有する複数のペア値と、（ｉｉ）前記複数のキー値のうち１つ以上のキー値にそれぞれ対応する複数の指数であって、各ポインタが指数を含む、複数の指数と、を備える、ことと、
対応するデータ値が記憶された前記第１メモリ内の１つの位置をそれぞれ有する複数のペア値のうち１つ以上のペア値を、各指数にて、前記第２データ構造に記憶することと、
前記第２タイプの前記１つ以上のプロセッサが、前記１つ以上の要求の少なくとも１つに基づいて、前記第２メモリ内の前記第２データ構造を変更することと、
前記第２タイプの前記１つ以上のプロセッサが、前記１つ以上の要求の各々に対して１つ以上の決定されたポインタを決定することであって、前記１つ以上の決定されたポインタの各々は、前記キー値と、前記第１メモリ内のデータ値の対応する位置と、に対応しており、対応する要求内の前記キー値から決定されたポインタ値を含む、ことと、
前記キー値と、前記対応する位置と、を前記第１メモリへ移動させることと、
前記第１タイプの前記１つ以上のプロセッサが、前記１つ以上の決定されたポインタの各々に対して、前記１つ以上の決定されたポインタによってポイントされた１つ以上のデータについて取得データを取得することであって、前記取得データは、前記第１メモリ内の前記対応する位置にて、前記第１メモリの第１データ構造から取得されることと、
前記第１タイプの前記１つ以上のプロセッサが、前記取得データを送ることによって、前記１つ以上の要求に応答することと、
を含む、方法。
【請求項２】
前記第１タイプの前記１つ以上のプロセッサは、１つ以上の中央処理装置（ＣＰＵ）コアを含み、前記第２タイプの前記１つ以上のプロセッサは、１つ以上のグラフィカルプロセッサユニット（ＧＰＵ）コアを含む、請求項１に記載の方法。
【請求項３】
前記１つ以上のＧＰＵコアの各々は、ＧＰＵカーネルに基づく持続的スレッドを実行している、請求項２に記載の方法。
【請求項４】
前記１つ以上のＧＰＵコアは、前記１つ以上のＣＰＵコアが前記第２メモリにアクセスするよりも高速に前記第２メモリにアクセスする、請求項２に記載の方法。
【請求項５】
前記１つ以上のＣＰＵコアの第１メモリの第１アクセス時間は、前記１つ以上のＧＰＵコアの前記第１メモリの第２アクセス時間よりも短い、請求項２に記載の方法。
【請求項６】
前記第１タイプの前記１つ以上のプロセッサが、セットされた要求を受け取ることと、
前記第１タイプの前記１つ以上のプロセッサが、前記セットされた要求に基づいて前記第１データ構造を変更することと、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記移動させることは、
前記１つ以上の要求の数が閾値数に達した場合に、前記１つ以上の要求を前記第１メモリから前記第２メモリへ移動させること、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記複数のデータ値の１つのデータ値のサイズは、前記１つ以上の決定されたポインタの１つのポインタ値のサイズよりも大きい、請求項１に記載の方法。
【請求項９】
マルチプロセッサコンピュータシステムにおいて要求に応答する方法であって、
それぞれコールバック関数を含み、キー値を有する１つ以上の要求を受け取ることであって、前記１つ以上の要求は、１つ以上の中央処理装置（ＣＰＵ）コアに関連付けられた第１メモリにおいて受け取られ、前記第１メモリが、複数のデータ値を有する第１データ構造を備え、各データ値が、前記第１メモリ内の複数の位置のうち１つの位置に対応している、ことと、
前記１つ以上の要求を、１つ以上のグラフィカルプロセッサユニット（ＧＰＵ）コアに関連付けられた第２メモリに移動させることであって、前記第２メモリが第２データ構造を備え、前記第２データ構造が、（ｉ）複数のキー値のうち１つのキー値と、前記第１メモリ内の複数の位置のうち１つの位置と、をそれぞれ有する複数のペア値と、（ｉｉ）前記複数のキー値のうち１つ以上のキー値にそれぞれ対応する複数の指数であって、各ポインタが指数を含む、複数の指数と、を備える、ことと、
対応するデータ値が記憶された前記第１メモリ内の１つの位置をそれぞれ有する複数のペア値のうち１つ以上のペア値を、各指数にて、前記第２データ構造に記憶することと、
前記１つ以上のＧＰＵコアが、前記１つ以上の要求の少なくとも１つに基づいて、前記第２メモリ内の前記第２データ構造を変更することと、
前記１つ以上の要求の数が少なくとも閾値数となった場合に、前記１つ以上の要求の各々に対して１つ以上の決定されたポインタを決定することであって、前記１つ以上の決定されたポインタの各々は、前記キー値と、前記第１メモリ内のデータ値の対応する位置と、に対応しており、対応する要求内の前記キー値から決定されたポインタ値を含む、ことと、
前記キー値と、前記対応する位置と、を前記第１メモリに移動させることと、
前記１つ以上のＣＰＵコアが、前記１つ以上の決定されたポインタの各々に対して、前記１つ以上の決定されたポインタによってポイントされた１つ以上のデータについて取得データを取得することであって、前記取得データは、前記第１メモリ内の前記対応する位置にて、前記第１メモリから取得されることと、
前記１つ以上のＣＰＵコアが、前記１つ以上の要求の前記コールバック関数を用いて、前記取得データを有する前記１つ以上の要求の各々を実行することと、
を含む、方法。
【請求項１０】
前記１つ以上のＧＰＵコアの前記第２メモリのアクセス時間は、前記１つ以上のＣＰＵコアの前記第２メモリのアクセス時間よりも短い、請求項９に記載の方法。
【請求項１１】
前記１つ以上の要求を前記第２メモリに移動させることは、
前記１つ以上の要求を、前記第２メモリのインバウンドキューに移動させること、
を含む、請求項９に記載の方法。
【請求項１２】
前記１つ以上の要求の前記数が少なくとも閾値数であって、前記ＧＰＵが１つ以上のＧＰＵスレッドを含む場合に、
前記１つ以上のＧＰＵスレッドのうち１つのＧＰＵスレッドが、前記１つ以上の要求の前記数が少なくとも閾値数となるときを決定するために、第２メモリの前記インバウンドキューをチェックすること、
をさらに含み、
前記ＧＰＵスレッドは持続的なＧＰＵスレッドである、
請求項１１に記載の方法。
【請求項１３】
前記取得データを前記第１メモリに移動させることは、
前記取得データを前記第１メモリのアウトバウンドキューに移動させること、
を含む、請求項９に記載の方法。
【請求項１４】
要求に応答するためのマルチプロセッサコンピュータシステムであって、
複数のデータ値を有する第１データ構造を備える第１メモリに関連付けられた第１タイプの１つ以上のプロセッサであって、各データ値が、前記第１メモリ内の複数の位置のうち１つの位置に対応している、第１タイプの１つ以上のプロセッサと、
第２メモリに関連付けられた第２タイプの１つ以上のプロセッサと、
第２データ構造を備える前記第２メモリであって、前記第２データ構造が、（ｉ）複数のキー値のうち１つのキー値と、前記第１メモリ内の複数の位置のうち１つの位置と、をそれぞれ有する複数のペア値と、（ｉｉ）前記複数のキー値のうち１つ以上のキー値にそれぞれ対応する複数の指数であって、各ポインタが指数を含む、複数の指数と、を備えており、
対応するデータ値が記憶された前記第１メモリ内の１つの位置をそれぞれ有する複数のペア値のうち１つ以上のペア値を、各指数にて、前記第２データ構造に記憶する、前記第２メモリと、を備え、
前記第１タイプの１つ以上のプロセッサは、コールバック関数を含む１つ以上の要求であって、それぞれキー値を有する１つ以上の要求を受け取り、前記１つ以上の要求を前記第２メモリに移動させるように構成されており、
前記第２タイプの１つ以上のプロセッサは、
前記１つ以上の要求の少なくとも１つに基づいて、前記第２メモリ内の前記第２データ構造を変更することと、
前記１つ以上の要求の数が少なくとも閾値数となった場合に、前記１つ以上の要求の各々に対して１つ以上の決定されたポインタを決定することであって、前記１つ以上の決定されたポインタの各々は、前記キー値と、前記第１メモリ内のデータ値の対応する位置と、に対応しており、対応する要求内の前記キー値から決定されたポインタ値を含む、ことと、
前記決定されたポインタの各々にて保持された前記キー値と前記対応する位置とを、前記第１メモリに移動させることと、を行うように構成され、
前記第１タイプの１つ以上のプロセッサは、
前記１つ以上の決定されたポインタの各々に対して、前記１つ以上の決定されたポインタによってポイントされた１つ以上のデータについて取得データを取得することであって、前記取得データは、前記第１メモリ内の前記対応する位置にて、前記第１メモリから取得されることと、
前記１つ以上の要求の前記コールバック関数を用いて、前記取得データを有する前記１つ以上の要求の各々を実行することと、を行うように構成されている、
システム。
【請求項１５】
前記第１タイプの前記１つ以上のプロセッサは、１つ以上の中央処理装置（ＣＰＵ）コアを含み、
前記第２タイプの前記１つ以上のプロセッサは、１つ以上のグラフィカルプロセッサユニット（ＧＰＵ）コアを含む、請求項１４に記載のシステム。
【請求項１６】
１つ以上のＧＰＵスレッドは、ＧＰＵカーネルに基づく持続的スレッドである、請求項１５に記載のシステム。
【請求項１７】
前記第２タイプの前記１つ以上のプロセッサの前記第２メモリのアクセス時間は、前記第１タイプの前記１つ以上のプロセッサの前記第２メモリのアクセス時間よりも短い、請求項１４に記載のシステム。
【請求項１８】
前記第１タイプの前記１つ以上のプロセッサは、前記１つ以上の要求を、前記第２メモリのインバウンドキューに移動させるようにさらに構成されている、請求項１４に記載のシステム。
【請求項１９】
前記第２タイプの前記１つ以上のプロセッサは、前記１つ以上の要求の前記数が少なくとも閾値数となるときを決定するために、前記第２のメモリのインバウンドキューをチェックするための前記１つ以上のスレッドのうち１つのスレッドを実行するようにさらに構成されており、前記スレッドは持続的なスレッドである、請求項１８に記載のシステム。
【請求項２０】
前記第２タイプの前記１つ以上のプロセッサは、前記取得データを前記第１メモリのアウトバウンドキューに移動させるようにさらに構成されている、請求項１４に記載のシステム。