(57)【特許請求の範囲】
【請求項１】
メインプロセッサに電子的に結合されたフロントエンドインタフェースを含み、
前記フロントエンドインタフェースは、
リポジトリに記憶されたデータを受信し、
前記データが繰り返しアクセスされるか否かを示すアクセスパラメータを分析することにより、前記データが単一アクセスデータであるか複数アクセスデータであるかを決定し、前記単一アクセスデータは所定の期間の間に前記メインプロセッサにより１回アクセスされるデータであり、前記複数アクセスデータは前記所定の期間の間に前記メインプロセッサにより複数回アクセスされるデータであり、
前記メインプロセッサによる処理のために前記複数アクセスデータをルーティングし、
前記フロントエンドインタフェースによる前処理のために前記単一アクセスデータをルーティングし、前記前処理の結果を前記メインプロセッサにルーティングするように適合されるデータ処理装置。
【請求項２】
前記アクセスパラメータは、前記フロントエンドインタフェース上での同じデータの２回の受信の受信時間又は前記メインプロセッサによる同じデータの２回の要求の要求時間に基づく、請求項１に記載のデータ処理装置。
【請求項３】
前記アクセスパラメータは、前記フロントエンドインタフェース上での前記同じデータの２回のアクセスの間のデータエレメントの数に基づいて測定され、前記２回のアクセスは、前記フロントエンドインタフェースにおける前記同じデータの２回の受信又は前記フロントエンドインタフェースからの前記同じデータの２回の要求のいずれかである、請求項２に記載のデータ処理装置。
【請求項４】
前記アクセスパラメータは、前記フロントエンドインタフェース上での前記同じデータの２回のアクセスの間の時間差に基づいて測定される、請求項２に記載のデータ処理装置。
【請求項５】
前記アクセスパラメータは、前記フロントエンドインタフェース上での前記同じデータの２回のアクセスの間の異なるデータの数をカウントすることにより測定される、請求項２に記載のデータ処理装置。
【請求項６】
前記単一アクセスデータは、前記アクセスパラメータを閾値と比較することにより決定される、請求項２に記載のデータ処理装置。
【請求項７】
前記フロントエンドインタフェースは、ローカルメモリユニットにアクセスし、前記単一アクセスデータを前処理し、前記単一アクセスデータを前記ローカルメモリユニットに記憶し、更なる処理のために前記前処理の結果を前記メインプロセッサにルーティングするように適合された少なくとも１つのローカルプロセッサを含む、請求項１乃至６のうちいずれか１項に記載のデータ処理装置。
【請求項８】
前記前処理は、前記単一アクセスデータの複数のデータエレメントをフィルタリング及び集約するための一群のアプリケーション特有命令を実行することである、請求項７に記載のデータ処理装置。
【請求項９】
前記フロントエンドインタフェースの前記少なくとも１つのローカルプロセッサは、前処理命令転送モジュールを組み込み、前記前処理命令転送モジュールは、前記メインプロセッサから前記一群のアプリケーション特有命令を受信し、前記一群のアプリケーション特有命令を前記少なくとも１つのローカルプロセッサの機械言語に変換し、前記前処理を実行するために前記少なくとも１つのローカルプロセッサ上で前記機械言語を実行するように構成される、請求項８に記載のデータ処理装置。
【請求項１０】
前記フロントエンドインタフェースは、前記メインプロセッサにルーティングされる前に前記結果の少なくともいくつかの要素を記憶するための一時メモリユニットを含む、請求項１乃至９のうちいずれか１項に記載のデータ処理装置。
【請求項１１】
前記一時メモリユニット内でアドレス指定されるメモリ記憶は、前記メインプロセッサのメインメモリの記憶アドレスにマッピングされる、請求項１０に記載のデータ処理装置。
【請求項１２】
オペレーティングシステムに組み込まれたデバイスドライバは、前記前処理を実行するために前記メインプロセッサを動作するように構成される、請求項１乃至１１のうちいずれか１項に記載のデータ処理装置。
【請求項１３】
リポジトリに記憶されたデータを受信するステップと、
前記データが繰り返しアクセスされるか否かを示すアクセスパラメータを分析することにより、前記データが単一アクセスデータであるか複数アクセスデータであるかを決定するステップであり、前記単一アクセスデータは所定の期間の間にメインプロセッサにより１回アクセスされるデータであり、前記複数アクセスデータは前記所定の期間の間に前記メインプロセッサにより複数回アクセスされるデータであるステップと、
前記メインプロセッサによる処理のために前記複数アクセスデータをルーティングするステップと、
フロントエンドインタフェースによる前処理のために前記単一アクセスデータをルーティングし、前記前処理の結果を前記メインプロセッサにルーティングするステップと
を含む方法。
【請求項１４】
前記アクセスパラメータは、前記フロントエンドインタフェース上での同じデータの２回の受信の受信時間又は前記メインプロセッサによる同じデータの２回の要求の要求時間に基づく、請求項１３に記載の方法。
【請求項１５】
前記フロントエンドインタフェース上での前記同じデータの２回のアクセスの間のデータエレメントの数に基づいて、前記アクセスパラメータを測定するステップであり、前記２回のアクセスは、前記フロントエンドインタフェースにおける前記同じデータの２回の受信又は前記フロントエンドインタフェースからの前記同じデータの２回の要求のいずれかであるステップを含む、請求項１４に記載の方法。
【請求項１６】
前記フロントエンドインタフェース上での前記同じデータの２回のアクセスの間の時間差に基づいて、前記アクセスパラメータを測定するステップを含む、請求項１４に記載の方法。
【請求項１７】
前記フロントエンドインタフェース上での前記同じデータの２回のアクセスの間の異なるデータの数をカウントすることにより、前記アクセスパラメータを測定するステップを含む、請求項１４に記載の方法。
【請求項１８】
前記アクセスパラメータを閾値と比較することにより、前記単一アクセスデータを決定するステップを含む、請求項１４に記載の方法。
【請求項１９】
少なくとも１つのローカルプロセッサを含む前記フロントエンドインタフェースによる前処理のために前記単一アクセスデータをルーティングする前記ステップは、
ローカルメモリユニットにアクセスするステップと、
前記単一アクセスデータを前処理し、前記単一アクセスデータを前記ローカルメモリユニットに記憶するステップと、
更なる処理のために前記前処理の結果を前記メインプロセッサにルーティングするステップと
を含む、請求項１３乃至１８のうちいずれか１項に記載の方法。
【請求項２０】
前記前処理は、前記単一アクセスデータの複数のデータエレメントをフィルタリング及び集約するための一群のアプリケーション特有命令を実行することを含む、請求項１９に記載の方法。
【請求項２１】
前記フロントエンドインタフェースの前記少なくとも１つのローカルプロセッサによる前処理のために前記単一アクセスデータをルーティングする前記ステップは、前処理命令転送モジュールを組み込むステップであり、前記前処理命令転送モジュールは、前記メインプロセッサから前記一群のアプリケーション特有命令を受信し、前記一群のアプリケーション特有命令を前記少なくとも１つのローカルプロセッサの機械言語に変換し、前記前処理を実行するために前記少なくとも１つのローカルプロセッサ上で前記機械言語を実行するように構成されるステップを含む、請求項２０に記載の方法。
【請求項２２】
フロントエンドインタフェースによる前処理のために前記単一アクセスデータをルーティングする前記ステップは、一時メモリユニットにより前記メインプロセッサにルーティングされる前に前記結果の少なくともいくつかの要素を記憶するステップを含む、請求項１３乃至２１のうちいずれか１項に記載の方法。
【請求項２３】
前処理のために前記単一アクセスデータをルーティングする前記ステップは、前記一時メモリユニット内でアドレス指定されるメモリ記憶を、前記メインプロセッサのメインメモリの記憶アドレスにマッピングするステップを含む、請求項２２に記載の方法。
【請求項２４】
オペレーティングシステムに組み込まれたデバイスドライバは、前記前処理を実行するために前記メインプロセッサを動作するように構成される、請求項１３乃至２３のうちいずれか１項に記載の方法。
【請求項２５】
コンピュータに請求項１３乃至２４のうちいずれか１項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、そのいくつかの実施例において、コンピュータ化装置に関し、排他的ではなく、より具体的には、データ処理アプリケーションを実行するためのコンピュータ化装置に関する。
【背景技術】
【０００２】
現代のコンピュータシステムでは、データ処理アプリケーションは、標準的なコンピュータアーキテクチャを含むコンピュータシステム上で実行される。データ処理アプリケーションは、ビッグデータアプリケーションのように、より大きく且つ大きいデータセットを絶えず分析しているため、コンピュータシステムは、アプリケーション及び大きいデータセットのニーズを満たすために改善されている。ここで使用されるビッグデータという用語は、従来のデータ処理方法及びコンピュータを使用して処理するのに大きすぎるデータのいずれかの集合を意味する。例えば、テラバイトより大きいデータは、市場動向を決定するためにデータ処理アプリケーションにより分析される。ビッグデータアプリケーションを実行する典型的なコンピュータシステムは、64ギガバイトのランダムアクセスメモリを組み込んでもよい。
【０００３】
以下は、ビッグデータアプリケーションにおける従来のコンピュータ及びデータフローの説明である。現在のコンピュータコンポーネント及び相互接続の概略図である図１Ａをここで参照する。メイン中央プロセッサ及び／又は処理ユニット111（CPU）は、ダイレクトメモリアクセス（DMA）インタフェース、フロントサイドバス等を使用して、コンピュータメモリ112を使用してデータ処理アプリケーションを実行する。ここで使用される処理ユニット及び／又はプロセッサという用語は、コンピュータ、コンピュータ化デバイス、コンピュータ化装置等のプロセッサを意味する。ここで使用される中央プロセッサという用語は、メインプロセッサ、中央処理装置、マルチコア中央プロセッサ等のように、コンピュータプログラムの命令を実行するメイン電子集積回路を意味する。CPU111は、ダイレクトメディアインタフェースを使用すること等によって、プラットフォーム入力及び／又は出力（IO）コントローラハブ113に接続される。例えば、CPUは、Intel（登録商標）  Itanium（登録商標）プロセッサ、Intel（登録商標）  Xeon（登録商標）プロセッサ、Advanced  Micro  Devices  Opteron（登録商標）プロセッサ、IBM（登録商標）  zEC12プロセッサ等である。プラットフォームIOコントローラハブ113は、ハードディスク、ネットワークインタフェース、キーボード、マウス等のようなコンピュータ周辺機器に接続される。
【０００４】
ビッグデータアプリケーションは、大量のデータをコンピュータメインメモリに記憶されるためにハードディスク及び／又はネットワークから転送し、前処理及び分析のためにメインメモリからCPUに転送する。
【０００５】
それぞれデータ整理ステップを示すデータ処理アプリケーションにおける標準的なデータフロー段階及び標準的な処理グラフの概略図である図１Ｂ及び図１Ｃをここで参照する。データフローアーキテクチャは、３つの段階、すなわち、数テラバイトのデータのようなビッグデータ406がリポジトリから受信されるIO段階403と、ビッグデータ406がメインメモリに記憶されるメモリ段階402と、前処理及び分析のためのCPU段階401とを含む。CPU段階401は、サイズで数メガバイトのデータセットのような、より小さいデータセット407を抽出するために、ビッグデータ406にフィルタ及び集約処理404を適用する。より小さいデータセット407は、メモリ段階402中にメモリに記憶される構造化されたデータセット及び／又は結果408を生成するために分析される405。構造化されたデータセット及び結果408は、更なる処理のためにIO段階中にユーザ及び／又はコンピュータデバイスに送信されてもよい。結果408は、再び前処理404A及び分析405Aされてもよく、数キロバイトのデータに低減されたデータセットサイズのような、より小さいデータセット408Aという結果になる。標準的なコンピュータアーキテクチャのCPUは、コンピュータメインメモリを使用して前処理及び処理の双方を実行する。
【発明の概要】
【０００６】
本発明の実施例の目的は、ビッグデータ処理アプリケーションを効率的に実行することである。この目的は、この出願の独立請求項により解決され、従属請求項は、更なる改善形式を保護する。
【０００７】
本発明のいくつかの実施例によれば、メインプロセッサに電子的に結合されたフロントエンドインタフェースを含むデータ処理装置が提供される。フロントエンドインタフェースは、リポジトリ、特に、外部ストレージ及び／又はネットワークに記憶されたデータを受信するように適合される。フロントエンドインタフェースは、データを示すアクセスパラメータを分析することにより、データが単一アクセスデータであるか複数アクセスデータであるかを決定するように適合される。フロントエンドインタフェースは、メインプロセッサによる処理のために複数アクセスデータをルーティングするように適合される。フロントエンドインタフェースは、フロントエンドインタフェースによる前処理のために単一アクセスデータをルーティングし、前処理の結果をメインプロセッサにルーティングするように適合される。
【０００８】
任意選択で、アクセスパラメータは、フロントエンドインタフェース上の同じデータの２つの受信の間の受信時間と、メインプロセッサによる同じデータの２つの要求の間の要求時間とのグループからのいずれかに基づく。
【０００９】
任意選択で、アクセスパラメータは、フロントエンドインタフェース上の同じデータの２つの受信及び／又は２つの要求の間の相対時間として測定される。
【００１０】
任意選択で、アクセスパラメータは、フロントエンドインタフェース上の同じデータの第２のアクセスの絶対時間として測定される。
【００１１】
任意選択で、アクセスパラメータは、フロントエンドインタフェース上の同じデータの２つのアクセスの間の異なるデータの数をカウントすることにより測定される。
【００１２】
任意選択で、単一アクセスデータは、アクセスパラメータを閾値と比較することにより決定される。
【００１３】
任意選択で、フロントエンドインタフェースは、ローカルメモリユニットにアクセスし、単一アクセスデータを前処理し及び／又は単一アクセスデータをローカルメモリユニットに記憶し、更なる処理のために前処理の結果をメインプロセッサにルーティングするように適合された１つ以上のローカルプロセッサを含む。
【００１４】
任意選択で、前処理は、単一アクセスデータの２つ以上のデータエレメントをフィルタリング及び集約するためのアプリケーション特有命令のグループを含む。
【００１５】
任意選択で、フロントエンドインタフェースの１つ以上のローカルプロセッサは、前処理命令転送モジュールを組み込み、前処理命令転送モジュールは、メインプロセッサからアプリケーション特有命令のグループを受信し、アプリケーション特有命令のグループを１つ以上のプロセッサの機械言語に変換し、前処理を実行するために１つ以上のプロセッサ上で機械言語を実行するように構成される。
【００１６】
任意選択で、フロントエンドインタフェースは、メインプロセッサにルーティングされる前に結果の少なくともいくつかの要素を記憶するための一時メモリユニットを含む。
【００１７】
任意選択で、一時メモリユニット内でアドレス指定されるメモリ記憶は、メインプロセッサのメインメモリの記憶アドレスにマッピングされる。
【００１８】
任意選択で、フロントエンドインタフェースは、メインプロセッサからのメインプロセッサ出力を受信し、単一アクセスデータを前処理するためにメインプロセッサ出力を使用するように適合される。
【００１９】
任意選択で、ローカルプロセッサ命令は、前処理を実行するためにメインプロセッサを動作するように構成されたオペレーティングシステムに組み込まれたデバイスドライバにより生成される。
【００２０】
本発明のいくつかの実施例によれば、リポジトリ、特に、外部ストレージ及び／又はネットワークに記憶されたデータを受信する動作を含む方法が提供される。この方法は、データを示すアクセスパラメータを分析することにより、データが単一アクセスデータであるか複数アクセスデータであるかを決定する動作を含む。この方法は、メインプロセッサによる処理のために複数アクセスデータをルーティングする動作を含む。この方法は、フロントエンドインタフェースによる前処理のために単一アクセスデータをルーティングし、前処理の結果をメインプロセッサにルーティングする動作を含む。
【００２１】
本発明のいくつかの実施例によれば、コンピュータ読み取り可能記憶媒体を含むコンピュータプログラムプロダクトが提供される。コンピュータ読み取り可能記憶媒体は、リポジトリ、特に、外部ストレージ及び／又はネットワークに記憶されたデータを受信するようにプロセッサにより実行可能な第１のプログラム命令をその上に符号化している。コンピュータ読み取り可能記憶媒体は、データを示すアクセスパラメータを分析することにより、データが単一アクセスデータであるか複数アクセスデータであるかを決定するようにプロセッサにより実行可能な第２のプログラム命令をその上に符号化している。コンピュータ読み取り可能記憶媒体は、メインプロセッサによる処理のために複数アクセスデータをルーティングするようにプロセッサにより実行可能な第３のプログラム命令をその上に符号化している。コンピュータ読み取り可能記憶媒体は、フロントエンドインタフェースによる前処理のために単一アクセスデータをルーティングし、前処理の結果をメインプロセッサにルーティングするようにプロセッサにより実行可能な第４のプログラム命令をその上に符号化している。
【００２２】
別に定義されていない限り、ここで使用される全ての技術的及び／又は科学的用語は、本発明が関係する当業者により一般的に理解されるものと同じ意味を有する。ここに記載のものと同様又は等価な方法及び材料が本発明の実施例の実施又はテストにおいて使用されることができるが、例示的な方法及び／又は材料が以下に記載される。矛盾の場合には、定義を含み、特許明細書が支配する。さらに、材料、方法及び例は例示のみであり、必ずしも限定的であることを意図するものではない。
【００２３】
本発明の実施例の方法及び／システムの実現は、選択されたタスクを手動、自動又はこれらの組み合わせで実行又は完了することを伴ってもよい。さらに、本発明の方法及び／又はシステムの実施例の実際の器具及び機器に従って、複数の選択されたタスクは、ハードウェアにより、ソフトウェアにより、或いはファームウェアにより、或いはオペレーティングシステムを使用してこれらの組み合わせにより実現され得る。
【００２４】
例えば、本発明の実施例に従って選択されたタスクを実行するためのハードウェアは、チップ又は回路として実現され得る。ソフトウェアとして、本発明の実施例による選択されたタスクは、いずれか適切なオペレーティングシステムを使用してコンピュータにより実行される複数のソフトウェア命令として実現されてもよい。本発明の例示的な実施例では、ここに記載の方法及び／又はシステムの例示的な実施例による１つ以上のタスクは、複数の命令を実行するためのコンピューティングプラットフォームのようなデータプロセッサにより実行される。任意選択で、データプロセッサは、命令及び／又はデータを記憶するための揮発性メモリ、及び／又は命令及び／データを記憶するための不揮発性メモリ、例えば、磁気ハードディスク及び／又は取り外し可能媒体を含む。任意選択で、ネットワーク接続も同様に提供される。ディスプレイ及び／又はキーボード若しくはマウスのようなユーザ入力デバイスも同様に任意選択で提供される。
【図面の簡単な説明】
【００２５】
本発明のいくつかの実施例が、添付図面を参照して、例のみとしてここに記載される。ここで特に図面を詳細に参照すると、図示する特定のものは、例としてのものであり、本発明の例示的な説明の目的のためのものである。これに関して、図面と共に挙げられる説明は、本発明の実施例がどのように実施され得るかを当業者に明らかにする。
【図１Ａ】標準的なコンピュータコンポーネント及び相互接続の概略図である。
【図１Ｂ】データ整理ステップを示すデータ処理アプリケーションにおける標準的なデータフロー段階の概略図である。
【図１Ｃ】データ整理ステップを示すデータ処理アプリケーションにおける標準的な処理グラフの概略図である。
【図２Ａ】本発明のいくつかの実施例による、データ前処理を実行するためのフロントエンドインタフェースを示すデータ処理装置の概略図である。
【図２Ｂ】本発明のいくつかの実施例による、データ前処理を実行するための単一のメモリコントローラを備えたフロントエンドインタフェースを示すデータ処理装置の概略図である。
【図２Ｃ】本発明のいくつかの実施例による、データ前処理を実行するための２つのメモリコントローラを備えたフロントエンドインタフェースを示すデータ処理装置の概略図である。
【図３】本発明のいくつかの実施例による、フロントエンドインタフェース上でデータ前処理を実行するための方法のフローチャートである。
【図４】本発明のいくつかの実施例による、フロントエンドインタフェースを組み込んだデータ処理アプリケーションにおけるデータフロー段階の概略図である。
【発明を実施するための形態】
【００２６】
本発明は、そのいくつかの実施例において、コンピュータ化装置に関し、排他的ではなく、より具体的には、データ処理アプリケーションを実行するためのコンピュータ化装置に関する。
【００２７】
サーバ及びワークステーションのような標準的なコンピュータは、数テラバイトの入力データを用いてデータ処理アプリケーションを実行するために使用され、典型的には数１０ギガバイトのメモリのみを有する。コンピュータは、仮想メモリ、メモリページスワッピング等を使用すること等によって、バッチで入力データをコンピュータメモリに移動させることにより、数テラバイトの入力データを前処理するようにデータ処理アプリケーションを実行する。プロセッサは、データ処理アプリケーション命令に従って、メモリから入力データバッチを取得し、フィルタリング及び集約のような前処理を実行する。全ての入力データが前処理された場合、プロセッサは分析を実行する。メインプロセッサは、高電力プロセッサでもよく、単一アクセスデータのように、データのいくつかは、まれに或いは１回のみ使用されるため、前処理のために大量のデータをメインプロセッサに転送することによって、かなりの電力消費オーバーヘッドが存在する。したがって、現在のコンピュータにおけるデータ処理アプリケーションの性能は、処理速度と、メモリへのデータ転送レート及びメモリからのデータ転送レートとの双方により制限される。速度及び転送レートは、データ処理アプリケーションを実行するコンピューティングデバイスのエネルギー消費を引き起こす。メイン中央プロセッサ及び／又は処理ユニット（CPU）アーキテクチャとシリコン技術とにおける進歩によって、前処理及び分析のためのCPUへのデータ移動は、ビッグデータアプリケーションのエネルギー消費及び性能に影響を与える主要な要因になっている。ここで使用されるビッグデータアプリケーションという用語は、数百ギガバイトより大きいデータを入力として使用するデータ処理アプリケーションを意味してもよい。
【００２８】
現在の解決策は、コンピュータコンポーネントの間のデータフローアーキテクチャを変更することなく、命令当たりのCPUエネルギー消費を最小化することに着目している。例えば、ダブルデータレート第４世代シンクロナス・ダイナミック・ランダムアクセスメモリ（DDR4）のような新たなメモリインタフェースの設計は、データ移動当たりのエネルギー消費を低減するが、CPUに転送されるますますより大量のデータは、ますますより高いエネルギー消費レートという結果になる。
【００２９】
メモリ及びCPUチップのような集積回路の間でデータを移動させるエネルギー消費は、計算タスクに必要なエネルギーと同じレートで増加しない。増え続ける入力データサイズを有するデータ処理アプリケーションは、現在の解決策では、ビッグデータアプリケーションにより要求される入力データのサイズに対して増加することができないという結果になる。数テラバイトを数ギガバイトに低減するための入力データの初期の前処理のためにデータをCPUに転送する電力消費オーバーヘッドは、データ処理アプリケーションの性能における制限要因になっている。例えば、これは、ビッグデータアプリケーションの処理速度の制限要因としてのコンピューティングデバイス及び／又はCPUの熱設計電力のように、処理中のボトルネックという結果になる。エネルギー消費も、データ処理アプリケーションのコンピューティング装置の動作におけるかなりの犠牲である。
【００３０】
本発明のいくつかの実施例によれば、１つ以上のローカルプロセッサを含むフロントエンドインタフェースは、データ処理アプリケーションへの入力として使用されるデータエレメント毎に、入力データのアクセス順序に従ってデータエレメントが単一アクセスデータエレメントであるか複数アクセスデータエレメントであるかを決定する。単一アクセスデータより頻繁にアクセスされ得る複数アクセスデータは、メインコンピュータメモリ内への記憶のために、フロントエンドインタフェースによりCPUにルーティングされ、単一アクセスデータは、１つ以上のローカルプロセッサによる前処理のために、フロントエンドインタフェースにルーティングされる。フロントエンドインタフェースにおける入力データの前処理部は、単一アクセスデータをCPUに転送する電力消費オーバーヘッドを回避し、ビッグデータアプリケーションの処理ボトルネックを克服し、ビッグデータアプリケーションを実行するコンピュータのエネルギー消費を低減する。
【００３１】
フロントエンドインタフェースは、その同じデータエレメントへの繰り返しアクセスを見つけ、２つの繰り返しの間の他のデータエレメントのアクセスに基づく値を計算することにより、入力データのデータエレメント毎のアクセスパラメータ値を計算する。アクセスパラメータは、同じデータエレメントへの繰り返しのアクセスの間のアクセスの総数をカウントすること、同じデータエレメントへの異なるアクセスの総数、同じデータエレメントへのアクセスの間の時間等をカウントすることにより計算されてもよい。データアクセスは、データエレメントの要求のシーケンス、前処理のために受信したデータエレメントのシーケンス、データアクセス要求のストリーム、データのストリーム等でもよい。１つ以上のローカルプロセッサは、一回のみ使用される単一アクセスデータ及び／又はまれに必要な単一アクセスデータを前処理し、したがって、単一アクセスデータをCPU及びメインメモリに送信することに比べてエネルギー消費オーバーヘッドを節約する。
【００３２】
例えば、100メガバイトのメモリを備えたコンピュータは、テラバイトの入力データを用いてデータ処理アプリケーションを実行している。この例では、フロントエンドインタフェースは、アプリケーションの入力データアクセスから、第１のデータエレメントがアクセスシーケンスにおいて200メガバイトのダウンストリームに２回アクセスされたと決定する。第１のデータエレメントがフロントエンドインタフェースなしにコンピュータにより前処理される場合、第１のデータエレメントは、最初のアクセスのためにメモリに記憶され、仮想メモリ技術を使用すること等によって、100メガバイトのメインメモリが一杯になった後にページングファイルにスワッピングされ、２回目のアクセスのためにメインメモリにスワッピングで戻される。第１のデータエレメントが単一アクセスエレメントであると決定し、前処理のために第１のデータエレメントをフロントエンドインタフェースにルーティングすることにより、電力消費が低減されることができる。例えば、データエレメントの各転送は、メインコンピュータメモリについての1ピコジュールのエネルギーと、フロントエンドインタフェースについての半ピコジュールとを必要とする。CPUによる第１のデータエレメントの前処理は、３つの転送について3ピコジュールのエネルギーを消費し、フロントエンドインタフェースにより２つの転送について1ピコジュールのエネルギーを消費する。この例では、同じデータエレメントへの２つのアクセスの間の入力データの量としてアクセスパラメータ値を計算し、各エレメントのパラメータ値を利用可能なコンピュータメインメモリに基づく値と比較することにより、電力消費が低減される。
【００３３】
本発明のいくつかの実施例によれば、データ処理装置によるデータ処理アプリケーションの実行中の電力消費を低減するために、１つ以上のローカルプロセッサを含むフロントエンドインタフェースを組み込むための方法及び装置が提供される。ここで使用されるフロントエンドインタフェースという用語は、スモールプロセッサコアとメモリと１つ以上の入力／出力インタフェースとを含んでもよいデータ処理装置に組み込まれた入力及び／又は出力段階のデータ前処理デバイスを意味する。フロントエンドインタフェースは、アクセスされるデータエレメント毎に、データエレメントがアクセスシーケンスから計算されたパラメータ値に従って単一アクセスデータエレメントであるか複数アクセスデータエレメントであるかを決定する。フロントエンドインタフェースは、CPUによる分析の前に、数テラバイトのデータのような大量の単一アクセスデータを前処理し、したがって、CPUに転送されるデータの量と、CPU及び／又はコンピュータのエネルギー消費とを低減する。
【００３４】
単一アクセスデータは、フロントエンドインタフェースの１つ以上のローカルプロセッサにルーティングされ、１つ以上のローカルプロセッサにより前処理される。結果は、メモリキャッシュのようなローカルメモリユニットに記憶されてもよい。フロントエンドインタフェースは、メインメモリ内への記憶のために前処理結果をCPUにルーティングし、データ分析は、メインCPUにより続けられる。フロントエンドインタフェースによる更なる前処理のために入力データ及び／又は分析結果が必要である場合、これらは、フロントエンドインタフェースに取り付けられてCPUによりアクセス可能なメモリユニットに記憶されてもよい。
【００３５】
単一アクセスデータは、いずれかの種類のアプリケーションに存在してもよい。例えば、ビッグデータアプリケーションでは、大きい割合の入力データは、単一アクセスデータである。
【００３６】
フロントエンドインタフェースは、大量のデータをCPU及び／又はメインメモリに転送することなく、入力データのフィルタリング及び集約のようなビッグデータアプリケーションの前処理段階を実行する。フロントエンドインタフェースにより実行された前処理の結果は、入力データよりかなり小さく、CPUによる分析のためにメインメモリに転送される。
【００３７】
任意選択で、フロントエンドインタフェースは、CPUから入力データの要求を受信する１つ以上のメモリコントローラを含んでもよく、及び／又はハードディスク若しくはネットワークインタフェースから対応する入力データを受信する。メモリコントローラは、要求されたシーケンス及び／又は受信したシーケンスに基づいて各入力データエレメントのアクセスパラメータ値を計算してもよく、単一アクセスデータ及び複数アクセスデータのようなアクセスタイプに従ってデータをルーティングしてもよい。メモリコントローラは、CPUメインメモリとのメモリアドレスのマッピングを調整してもよい。
【００３８】
任意選択で、アクセスパラメータは、同じデータエレメントのアクセスの間の絶対時間である。例えば、データエレメントが5秒に１回のみアクセスされた場合、データエレメントは、単一アクセスデータエレメントであると決定される。
【００３９】
任意選択で、アクセスパラメータは、同じデータエレメントのアクセスの間の相対時間である。例えば、相対時間は、時系列のような発生順にイベントを配置し、時系列におけるイベントの発生をカウントすることにより決定される。例えば、データエレメントが1000万個のデータエレメント内で１回のみアクセスされた場合、データエレメントは、単一アクセスデータエレメントであると決定される。
【００４０】
任意選択で、アクセスパラメータは、同じデータエレメントのアクセスの間の異なるデータエレメントの個数である。例えば、同じデータエレメントの２つのアクセスの間に再利用距離のような300万個のデータエレメントがある場合、データエレメントは、単一アクセスデータエレメントであると決定される。
【００４１】
任意選択で、アクセスパラメータは、同じデータエレメントのアクセスの間の異なるデータエレメントの合計サイズの尺度である。例えば、同じデータエレメントの２つのアクセスの間に10ギガバイトの異なるデータエレメントがアクセスされた場合、データエレメントは、単一アクセスデータエレメントであると決定される。
【００４２】
任意選択で、アクセスパラメータ値は、データエレメントが単一アクセスデータエレメントであると決定するために、固定の閾値と比較される。
【００４３】
任意選択で、アクセスパラメータ値は、動的な閾値と比較され、動的な閾値は、データ処理装置のリソース可用性に基づいて計算される。例えば、動的な閾値は、熱設計電力をデータ処理装置の瞬時電力消費と比較することに基づいて計算される。例えば、動的な閾値は、データ処理装置の瞬時の利用可能なメモリに基づいて計算される。
【００４４】
任意選択で、アクセスパラメータ値と比較するルーティング閾値は、データ処理装置の電力消費を最小化するために動的に調整される。例えば、瞬時電力消費値は、コンピュータの電源から受信され、ルーティング閾値は、瞬時電力消費値を下げるように動的に調整される。
【００４５】
任意選択で、入力データは、入力データを処理するために必要なエネルギー消費のコスト関数を最適化することに基づいて、フロントエンドインタフェースにおける前処理のために選択される。例えば、コスト関数は、23.7億個のデータエレメントの再利用距離がフロントエンドインタフェースを使用して入力データを処理するためにデータを選択する際に使用する最適な再利用距離であると決定する。この例では、23.7億の閾値より大きい再利用距離を有するデータエレメントは、単一アクセスデータエレメントであると考えられ、フロントエンドインタフェースにより前処理される。
【００４６】
前処理のためにフロントエンドインタフェースを使用する利点は、コンピューティングデバイス及び／又はCPUのエネルギー消費におけるかなりの低減を含む。例えば、フロントエンドインタフェースは、単一アクセスデータを前処理し、CPUによりこのデータの全ての前処理を実行することに比べて50%より大きいエネルギー消費を低減する。
【００４７】
本発明の少なくとも１つの実施例を詳細に説明する前に、本発明は、以下の説明において述べ、及び／又は図面及び／又は例に示すコンポーネント及び方法の構成及び配置の詳細へのその適用に必ずしも限定されないことが理解されるべきである。本発明は、他の実施例も可能であり、或いは様々な方法で実施又は実行されることが可能である。
【００４８】
本発明は、システム、装置、デバイス、処理及び／又は方法でもよい。
【００４９】
本発明の態様は、本発明の実施例による方法、装置及びシステムのフローチャート図及び／又はブロック図を参照してここに記載される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ読み取り可能プログラム命令により実現されることができることが理解される。
【００５０】
図面におけるフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法及びデバイスの可能な実現のアーキテクチャ、機能及び動作を示す。これに関して、フローチャート又はブロック図の各ブロックは、指定の論理機能を実現するための１つ以上のアクションを含む命令のモジュール、セグメント又は部分を表してもよい。いくつかの別の実現では、ブロックに示す機能は、図面に示す順序通りでなく生じてもよい。例えば、関与する機能に応じて、連続して示す２つのブロックは、実際には実質的に同時に実行されてもよく、或いはこれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定の機能又は動作を実行するか、或いは特殊目的ハードウェア及びコンピュータ命令の組み合わせを実行する特殊目的ハードウェアに基づくシステムにより実現されることができる点にも留意すべきである。
【００５１】
本発明のいくつかの実施例による、データ前処理を実行するためのフロントエンドインタフェースを示すデータ処理装置の概略図である図２Ａ、図２Ｂ及び図２Ｃをここで参照する。データ処理装置100は、データエレメントを分析するためのメイン中央プロセッサ及び／又は処理ユニット（CPU）111と、リポジトリからデータエレメントの入来シーケンス及び／又はストリームを受信するためのコントローラハブ113とを含む。データエレメントは、内蔵及び／又は外部ハードディスクのような、ネットワークリポジトリインタフェース121を通じてアクセスされる遠隔リポジトリのローカルリポジトリ122から送信される。本発明のいくつかの実施例によれば、データ処理装置100は、CPU111からのデータエレメント要求のシーケンス及び／又はデータストリーム、及び／又はコントローラハブ113を介して１つ以上のリポジトリからの対応するデータエレメントを受信するように適合されたフロントエンドインタフェース101を含む。フロントエンドインタフェース101は、受信したデータエレメント及び／又は要求されたデータエレメントのようなデータアクセスに基づいて、各データエレメントが複数アクセスデータに属するか、単一アクセスデータに属するかを決定する。複数アクセスデータエレメントは、メインメモリ112内への記憶のためにCPU111にルーティングされ、単一アクセスデータエレメントは、１つ以上のローカルプロセッサ106による前処理のためにフロントエンドインタフェースによりルーティングされる。単一アクセスデータエレメントは、前処理の前及び／又は後に、ローカルメモリユニット104及び／又はフロントエンド一時メモリ114に記憶されてもよい。例えば、フロントエンドインタフェース101は、前処理結果が分析のためにCPU111に送信されるか、及び／又はフロントエンドインタフェース101による将来の使用のためにフロントエンド一時メモリ114に記憶されるかを決定する。CPU111が分析のために必要な全てのデータエレメントをメインメモリ112に受信した場合、CPU111は、分析を実行し、分析結果をメインコンピュータメモリ112に記憶する。フロントエンドインタフェース101は、入来データエレメントの更なる前処理のためにCPU段階から来るデータ分析結果を受信してもよい。例えば、機械学習アプリケーションは、新たな入来データエレメントの前処理中に、フロントエンド一時メモリ114に記憶された以前に分析された結果を使用する。
【００５２】
任意選択で、フロントエンドインタフェースは、データエレメントをルーティングし、キャッシュメモリのようなローカルメモリユニット104にアクセスし、フロントエンド一時メモリ114にアクセスするために、メモリコントローラ108を使用する。
【００５３】
任意選択で、データエレメントをルーティングし、キャッシュメモリのようなローカルメモリユニット104にアクセスし、フロントエンド一時メモリ114にアクセスするために、フロントエンドインタフェースは、IOメモリコントローラ105及びCPUメモリコントローラ103のような２つ以上のメモリコントローラを使用する。例えば、IOメモリコントローラ105は、コントローラハブ113から受信したデータエレメントをルーティングするように適合され、CPUメモリコントローラ103は、CPUへ及び／又はCPUからのデータエレメントをルーティングするように適合される。
【００５４】
IOメモリコントローラ105、CPUメモリコントローラ103及び単一のメモリコントローラ108は、フロントエンドインタフェース101の入力／出力インタフェース107を介してデータエレメント及び／又はデータエレメントの要求を転送する。例えば、入力／出力インタフェース107は、ダイレクトメモリアクセスインタフェース、ダイレクトメディアインタフェース、システムバスインタフェース等である。例えば、IOメモリコントローラ105、CPUメモリコントローラ103又は単一のメモリコントローラ108は、単一アクセスデータエレメント又は複数アクセスデータエレメントであるデータエレメントを決定する。
【００５５】
単一アクセスデータエレメントのフロントエンドインタフェース101による前処理は、メインCPUメモリ112へのデータエレメント転送の数を低減し、したがって、データ処理装置100のエネルギー消費を低減する。例えば、ローカルメモリユニット104及び／又はフロントエンド一時メモリ114に送信されるデータエレメントは、CPU111及び／又はメインメモリコントローラを通過せず、装置100の全体電力消費を低減する。
【００５６】
フロントエンドインタフェース101に接続されたフロントエンド一時メモリ114は、メインCPUメモリ112と異なるが、メインメモリ112と同じメモリアドレス空間にマッピングされてもよい。フロントエンド一時メモリ114の記憶アドレスをCPUメインメモリ112のアドレス空間にマッピングすることにより、分析結果データセットは、CPU111及び／又はフロントエンドインタフェース101による更なる処理のために使用されてもよい。
【００５７】
本発明のいくつかの実施例による、フロントエンドインタフェース上でデータ前処理を実行するための方法のフローチャートである図３をここで参照する。CPU111は、データ処理アプリケーションを実行し201、データエレメントのアクセス要求のシーケンスのような分析に必要なデータを要求する202。CPU111は、前処理命令をフロントエンドインタフェース101に送信してもよい211。データアクセス要求は、ハードディスク122又はネットワークインタフェース121を使用したネットワークリポジトリのようなリポジトリから要求されたデータを取得203するIOコントローラハブ113により受信される。データアクセス要求は、各データエレメントが単一アクセスデータエレメントであるか、複数アクセスデータエレメントであるかを決定するために、フロントエンドインタフェース101により受信されてもよい221。フロントエンドインタフェース101は、単一アクセスデータエレメント又は複数アクセスデータエレメントのようなデータエレメントのアクセスタイプを決定するために、受信したデータエレメント要求及び／又はデータエレメント毎にアクセスパラメータを計算する222。アクセスパラメータ値をルーティング閾値と比較することにより223、フロントエンドインタフェース101は、要求されたデータエレメントが単一アクセスエレメントであるか、複数アクセスエレメントであるかを決定する。コントローラハブ113は、要求されたデータエレメントを、単一アクセスデータエレメント及び複数アクセスデータエレメントのような決定されたデータアクセスタイプに従ってデータエレメントをルーティングするフロントエンドインタフェース101に送信する。複数アクセスデータエレメントは、メインメモリ112内への記憶のためにCPU111にルーティングされる。単一アクセスデータエレメントは、フロントエンドインタフェース101による前処理のために224、ローカルメモリユニット104及び／又はフロントエンド一時メモリ114にルーティングされる。フロントエンドインタフェース101のローカルプロセッサ106は、前処理結果を生成するために、単一アクセスデータエレメントをフィルタリング及び集約することのように、単一アクセスデータエレメントを前処理する224。前処理結果は、フロントエンドインタフェースによりフロントエンド一時メモリ114、ローカルメモリ104に記憶され、及び／又はメインメモリ112に記憶される204。CPU111は、データを分析し206、ネットワークインタフェース121を使用すること等によってリポジトリに、及び／又はローカルハードディスクに、及び／又は新たなデータエレメントの更なる前処理のためにフロントエンド一時メモリ114に結果を送信する207。
【００５８】
アクセスパラメータ値が同じデータエレメントのアクセスの間の絶対時間である場合、フロントエンドインタフェース101は、データエレメント要求の間の推定時間を計算し、受信したデータエレメントの間の時間を測定すること等を行う。例えば、各データエレメントが初めて前処理のためにフロントエンドインタフェース101により受信された場合、データエレメント毎にタイマが開始される。例えば、データエレメントが5秒後に２回前処理のためにフロントエンドインタフェース101により受信され、複数アクセス閾値が4秒である場合、データエレメントは、単一アクセスデータエレメントであると決定される。この例では、データエレメントが２回受信されると、データエレメントは、前処理及び／又は分析のためにフロントエンドインタフェース101によりCPU111に送信される。例えば、データエレメント要求のシーケンスは、受信されるデータエレメントの受信時間を推定するためにフロントエンドインタフェース101により分析される。この例では、フロントエンドインタフェース101は、データエレメントの２回目のアクセスが2分後であると計算し、複数アクセス閾値が30秒である場合、フロントエンドインタフェース101は、データエレメントが単一アクセスデータエレメントであると決定する。この例では、単一アクセスデータエレメントの双方の受信は、フロントエンドインタフェース101によりルーティングされて前処理される。
【００５９】
アクセスパラメータ値が同じデータエレメントのアクセスの間の相対時間である場合、データエレメント要求及び／又はデータエレメント受信のシーケンスは、同じデータエレメントへのアクセスの間のデータエレメントの総数のカウントに従ってフロントエンドインタフェース101により分析されてもよい。例えば、データエレメントが1000万アクセスにおいて１回のみアクセスされ、単一アクセスのための閾値が500万アクセスである場合、データエレメントは、フロントエンドインタフェース101により単一アクセスデータエレメントであると決定される。この例では、データエレメント毎に、データエレメントの最初のアクセスのときにカウンタが開始され、アクセスされるその後のデータエレメント毎に、カウンタタイプに従ってインクリメント及び／又はデクリメントされる。カウンタが、カウントダウンカウンタについてのゼロのような閾値に到達した場合、データエレメントは、フロントエンドインタフェース101により単一アクセスであると決定される。カウンタが閾値に到達する前に同じデータエレメントが２回アクセスされた場合、データエレメントは、フロントエンドインタフェース101により複数アクセスデータエレメントであると決定され、CPU111にルーティングされる。ここで使用されるアクセスという用語は、データエレメントの要求が要求のシーケンスにあるか、或いはデータエレメントがフロントエンドインタフェース101によるストリーム内のようなシーケンス内で受信されることを意味する。
【００６０】
アクセスパラメータ値が同じデータエレメントのアクセスの間の再利用距離である場合、データエレメント要求及び／又はデータエレメント受信のシーケンスは、同じデータエレメントへのアクセスの間の異なるデータエレメントの総数のカウントに従ってフロントエンドインタフェース101により分析されてもよい。単一アクセスデータエレメントは、CPUメインメモリ及び／又はCPUキャッシュメモリのような物理メモリリソースのサイズより大きい再利用距離を有するデータエレメントでもよく、したがって、メモリページスワップを最小化し、電力消費を低減する。Ding他により技術報告書UR-CS-TR-741に公開された「Reuse  Distance  Analysis」,Computer  Science  Department,  University  of  Rochester,  Rochester,  New  York,  2001年2月に記載のように、再利用距離は、同じ入力データエレメントの２つの連続するアクセスの間にアクセスされる固有の入力データエレメントの数として定義される。
【００６１】
例えば、データエレメントが400万の異なるデータエレメントのアクセスにおいて１回のみアクセスされ、単一アクセスのための閾値が固有のデータエレメントへの200万アクセスである場合、データエレメントは、フロントエンドインタフェース101により単一アクセスデータエレメントであると決定される。この例では、データエレメント毎に、データエレメントの最初のアクセスのときにカウンタが開始され、アクセスされるその後の固有のデータエレメント毎に、カウンタタイプに従ってインクリメント及び／又はデクリメントされる。例えば、データエレメントにアクセスする要求のシーケンスは、固有のデータエレメント毎に再利用距離を計算するために分析され、特定のデータエレメントの再利用距離がルーティング閾値より上である場合、データエレメントは、単一アクセスデータエレメントであると決定される。
【００６２】
任意選択で、フロントエンドインタフェース101のローカルメモリユニット104は、読み取り及び／又は書き込みアクセスのためにローカルプロセッサ106によりアクセスされるキャッシュメモリである。例えば、ローカルメモリユニットは、高速スタティック・ランダムアクセスメモリ（SRAM）である。ローカルメモリユニット104は、データをフロントエンド一時メモリ114に記憶するために及び／又はデータをメインCPUメモリ112に転送するために、DMAインタフェースを使用して、CPUメモリコントローラ103、IOメモリコントローラ105及び／又はメモリコントローラ108によりアクセスされてもよい。
【００６３】
フロントエンドインタフェース101のローカルプロセッサ106は、分析のためにCPUに転送する前に、データエレメントのフィルタリング及び集約を実行する１つ以上のアプリケーション特有処理コアである。例えば、ローカルプロセッサ106は、Acorn  RISC  Machine（ARM）プロセッサのような縮小命令セットコンピューティング（RISC）プロセッサであり、フロントエンドインタフェース101の集積回路に組み込まれる。例えば、ローカルプロセッサは、プリント回路基板に組み込まれた、Intel（登録商標）  Atom（登録商標）プロセッサのような複雑命令セットコンピューティング（CISC）プロセッサである。
【００６４】
フロントエンドローカルプロセッサとして本発明の実施例を実現するために選択された処理コアは、任意選択でソフトウェアモジュールを使用して、メインCPU111からフロントエンドインタフェース101のローカルプロセッサ106への前処理命令の変換に影響を与える。任意選択で、処理コアの選択は、処理コアの特定の種類又はブランドに限定されない。同様に、メイン装置100のCPU111の製造及びモデルは、プロセッサの特定の製造及びモデルに限定されない。
【００６５】
任意選択で、本発明のいくつかの実施例では、フロントエンドインタフェース101は、フロントエンドインタフェース101の動作及び／又は前処理を可能にするためのプロセッサ命令を受信するソフトウェアモジュールを更に含む。例えば、コンピュータプログラミング言語コードを含むテキストファイルがコンパイラによりコンパイルされ、コンパイラは、フロントエンドインタフェース101上で実行される前処理を可能にするための機能を含むソフトウェアモジュールライブラリを含む。これらの機能は、前処理プロセッサ命令をメインCPU111の機械言語からローカルプロセッサ106の機械言語に移すための移植機能でもよい。例えば、前処理命令の移植は、CISC命令セットからRISC命令セットに実行されてもよい。例えば、データ処理アプリケーションの生成中に、前処理命令は、ローカルプロセッサ106により使用されるRISCプロセッサ命令セットに、コンパイラにより直接コンパイルされる。任意選択で、コンピュータのオペレーティングシステムにインストールされたデバイスドライバは、前処理命令及びフロントエンドインタフェース101の動作命令を制御する。例えば、アクセスパラメータタイプのような動作命令は、フロントエンドインタフェース101の動作を変更するデバイスドライバを通じて変更される。例えば、デバイスドライバは、瞬時電力消費を下げるための動的なルーティング閾値調整を選択するためのユーザインタフェースを有する。例えば、デバイスドライバは、絶対時間、相対時間、再利用距離、メモリサイズ等のようなアクセスパラメータタイプを選択するためのユーザインタフェースを有する。
【００６６】
データ処理アプリケーションの単一アクセスデータを前処理するためのフロントエンドインタフェース101の実施例は、様々な技術的手段でデータ処理装置100に電子的且つデジタル的に組み込まれてもよい。例えば、フロントエンドインタフェース101は、既存のCPU111及びチップセットに加えてコンピュータマザーボード上に組み込まれる、チップセットのような集積回路のIO段階グループとして具現される。例えば、フロントエンドインタフェース101は、Intel（登録商標）モデルDH82Z97  PCH集積回路に基づくチップセットに組み込まれる。例えば、フロントエンドインタフェースは、既存のコンピュータマザーボードにアドオンカードとして取り付けられるプリント回路基板に組み込まれ、デバイスドライバは、システムバスを使用してデータを転送するために使用される。例えば、フロントエンドインタフェースは、個別のコンポーネント及び特化した集積回路としてマザーボードに組み込まれる。例えば、フロントエンドインタフェースは、コンピュータマザーボードに追加される単一の集積回路に組み込まれる。例えば、フロントエンドインタフェースは、システム・オン・チップ・プロダクトとして実現される。
【００６７】
任意選択で、フロントエンドインタフェース101は、業界標準コンピュータインタフェース及び製造技術を使用して集積回路及び／又はプリント回路基板に電子的且つデジタル的に組み込まれる。例えば、フロントエンドインタフェース101は、16レーンのペリフェラル・コンポーネント・インターコネクト・エクスプレス（PCIe  x16）拡張バスインタフェースを備えたアドオン回路基板である。
【００６８】
IO段階におけるデータの前処理は、データ分析のためのメモリ割り当てリソースを低減してもよく、CPUキャッシュメモリ汚染を低減してもよく、データ処理装置の全体性能を増加させる。さらに、本発明の実施例は、データのサイズと共にうまくスケーリングし、エネルギー節約は、入力データサイズの増加と共に増加する。
【００６９】
以下は、データ処理アプリケーションのデータ整理の利点の例を与える概略説明である。本発明のいくつかの実施例による、フロントエンドインタフェース101を組み込んだデータ処理アプリケーションにおけるデータフロー段階の概略図である図４をここで参照する。データ処理のIO段階403は、データ入力段階403の一部としての前処理404を実行し、大量の入力データ406を、メモリ段階402に転送されるより小さい量の入力データ407に低減する、フロントエンドエンジンのようなフロントエンドインタフェース101を組み込む。したがって、メモリ段階は、大量の入力データを転送及び記憶するために使用されるかなりの量のエネルギーを節約する。CPU段階401もまた、分析405のためにより小さい量の入力データ407をプロセッサに転送する際に、かなりの量のエネルギーを節約する。データ分析結果及び／又は出力順序結果のデータセット408は、メモリ段階402中にメモリに記憶されてもよく、及び／又はIO段階403においてリポジトリ及び／又は第２のコンピュータ化デバイスに送信されてもよい。
【００７０】
図面におけるフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法及びデバイスの可能な実現のアーキテクチャ、機能及び動作を示す。これに関して、フローチャート又はブロック図の各ブロックは、指定の論理機能を実現するための１つ以上の実行可能命令を含むコードのモジュール、セグメント又は部分を表してもよい。いくつかの別の実現では、ブロックに示す機能は、図面に示す順序通りでなく生じてもよい点にも留意すべきである。例えば、関与する機能に応じて、連続して示す２つのブロックは、実際には実質的に同時に実行されてもよく、或いはこれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定の機能若しくは動作、又は特殊目的ハードウェア及びコンピュータ命令の組み合わせを実行する特殊目的ハードウェアに基づくシステムにより実現されることができる点にも留意すべきである。
【００７１】
本発明の様々な実施例の説明は、例示の目的で提示されており、網羅的であること又は開示される実施例に限定されることを意図するものではない。多くの変更及び変化は、記載の実施例の範囲及び精神から逸脱することなく、当業者に明らかになる。ここで使用される用語は、実施例の原理、実際の用途又は市場にある技術に対する技術的改善を最も良く説明するために、或いは他の当業者がここに開示される実施例を理解することを可能にするために選択されている。
【００７２】
この出願から成熟する特許の存続期間中に、多くの関係する処理コアが開発されることが想定され、ローカル処理という用語の範囲は、全てのこのような新たな技術を事前に含むことを意図する。
【００７３】
この出願から成熟する特許の存続期間中に、多くの関係する中央プロセッサ及び／又は処理ユニットが開発されることが想定され、中央プロセッサ及び／又は処理ユニットという用語の範囲は、全てのこのような新たな技術を事前に含むことを意図する。
【００７４】
この出願から成熟する特許の存続期間中に、多くの関係するデータ処理アプリケーションが開発されることが想定され、データ処理アプリケーションという用語の範囲は、全てのこのような新たな技術を事前に含むことを意図する。
【００７５】
ここで使用される「約」という用語は、±10%を示す。
【００７６】
「含む」、「含んでいる」、「包含する」、「包含している」、「有する」という用語及びこれらの活用形は、「含むが、限定されない」ことを意味する。この用語は、「からなる」及び「から本質的になる」という用語を包含する。
【００７７】
「から本質的になる」という語句は、合成物又は方法が更なる成分及び／又はステップを含んでもよいが、更なる成分及び／又はステップが特許請求の範囲の合成物又は方法の基本的且つ新規な特徴を実質的に変更しない場合に限られることを意味する。
【００７８】
ここで使用される単数形である「１つ」及び「前記」は、文脈が明らかにそうでないと決めない限り、複数への参照を含む。例えば、「合成物」又は「少なくとも１つの合成物」という用語は、複数の合成物の混合を含み、複数の合成物を含んでもよい。
【００７９】
「例示的」という語句は、「例、事例又は例示としての役目をすること」を意味するためにここで使用される。「例示的」として記載したいずれかの実施例は、必ずしも、他の実施例よりも好ましい或いは有利であるとして解釈されるべきでなく、及び／又は他の実施例からの特徴の組み込みを除外するものではない。
【００８０】
「任意選択」という語句は、「いくつかの実施例において提供され、他の実施例において提供されない」ことを意味するためにここで使用される。本発明のいずれか特定の実施例は、特徴が矛盾しない限り、複数の「任意選択」の特徴を含んでもよい。
【００８１】
この出願を通じて、本発明の様々な実施例は、範囲の形式で提示されてもよい。範囲の形式の説明は、単に便宜上且つ簡潔性のためであり、本発明の範囲における柔軟性のない限定として解釈されるべきでないことが理解されるべきである。したがって、範囲の説明は、具体的に開示された全ての可能な部分範囲と、その範囲内の個々の数値とを有すると考えられるべきである。例えば、1から6のような範囲の説明は、1から3、1から4、1から5、2から4、2から6、3から6等のような具体的に開示された部分範囲と、その範囲内の個々の数値、例えば、1、2、3、4、5及び6を有すると考えられるべきである。これは、範囲の広さに拘わらず当てはまる。
【００８２】
数値範囲がここに示される場合には常に、これは、示された範囲内のいずれか記載の数（分数又は整数）を含むことを意味する。第１の指定数と第２の指定数との「間の範囲にあること／範囲」という語句と、第１の指定数「から」第２の指定数「までの範囲にあること／範囲」という語句は、ここでは交換可能に使用され、第１及び第２の指定の数と、これらの間の全ての分数及び整数とを含むことを意味する。
【００８３】
明確性のために別々の実施例に関して記載される本発明の特定の特徴はまた、単一の実施例において組み合わせで提供されてもよいことが認識される。逆に言えば、簡潔性のために単一の実施例に関して記載される本発明の様々な特徴はまた、別々に、或いはいずれか適切なサブコンビネーションで、或いは本発明の他の記載の実施例において適切なように提供されてもよい。様々な実施例に関して記載する特定の特徴は、実施例がこれらのエレメントがなければ動作不能でない限り、これらの実施例の本質的な特徴であると考えられるべきでない。
【００８４】
本発明について、その特定の実施例に関して説明したが、多くの別法、変更及び変化が当業者に明らかになることは明白である。したがって、添付の特許請求の範囲の精神及び広い範囲に入る全てのこのような別法、変更及び変化を包含することを意図する。
【００８５】
この明細書で言及した全ての刊行物、特許及び特許出願は、それぞれ個々の刊行物、特許及び特許出願が参照によりここに援用されるように具体的且つ個別に示されているかのような同一の程度で、その全内容において参照により明細書に援用する。さらに、この出願におけるいずれかの参考文献の引用又は特定は、このような参考文献が本発明への従来技術として利用可能であると認めることとして解釈されるべきではない。セクションの見出しが使用される限り、これらは、必ずしも限定として解釈されるべきではない。
【図１Ａ】
0006683726.tif 000002
【図１Ｂ】
0006683726.tif 000003
【図１Ｃ】
0006683726.tif 000004
【図２Ａ】
0006683726.tif 000005
【図２Ｂ】
0006683726.tif 000006
【図２Ｃ】
0006683726.tif 000007
【図３】
0006683726.tif 000008
【図４】
0006683726.tif 000009