図面 (/)

技術 動的に構成可能な先回りコプロセッシングセルを用いる並列処理のためのシステムおよび方法

出願人 イニゲス,アリフォンソ
発明者 イニゲス,アリフォンソ
出願日 2015年7月10日 (5年4ヶ月経過) 出願番号 2017-503021
公開日 2017年8月3日 (3年3ヶ月経過) 公開番号 2017-521796
状態 特許登録済
技術分野 マルチプログラミング
主要キーワード 電気レセプタクル グラフィカルアプリケーション コンピュータボード 補助モジュール コンピュータ生成イメージ 優先権データ メッシュ形態 ロボットアクチュエータ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年8月3日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (7)

課題・解決手段

並列処理アーキテクチャが、CPUと、CPUによって投入されるタスクプールと、それぞれ、タスクプールに先回りして問い合わせ、特定のコプロセッサに対して適切なタスクを読み出すように構成されるエージェントを有する、複数の自律的共処理セルとを含む。各コプロセッサは、全てのシステムリソース間のデータ転送およびアービトレーションのための接続を促進する、スイッチングファブリックを通してタスクプールと通信する。各コプロセッサは、タスクまたはタスクスレッドが完了すると、これをタスクプールに通知し、その後、タスクプールは、CPUに通知する。

概要

背景

モノインターネット(モノのクラウドとも称される)は、既存のインターネットインフラストラクチャ内の一意に認識可能な埋め込まれたコンピューティングデバイスアドホックネットワークを指す。モノのインターネット(IoT)は、マシンツーマシン通信M2M)に優る、デバイス、システム、およびサービスの高度な接続性を予示する。IoTによって想定されるモノの範囲は、無制限であり、例えば、心臓監視インプラントバイオチップトランスポンダ自動車センサ、航空宇宙および防衛分野オペレーションデバイス、ならびに探索および救助活動において消防士補助する公衆安全用途等のデバイスを含み得る。現在の市場の実施例は、遠隔監視のためにWi−Fiを利用するスマートサーモスタット電球、および洗濯機乾燥機を伴う家庭ベースネットワークを含む。IoTにおいて接続される物体遍在性に起因して、2020年までに300億個を上回るデバイスが、モノのインターネットに無線接続されるであろうことが推定されている。これらのデバイスと関連付けられるコントローラおよびプロセッサ処理容量を利用することが、本発明の目的のうちの1つである。

コンピュータプロセッサは、伝統的に、マシンコード命令直列的に実行する。複数のアプリケーション並行して起動するために、単一のプロセッサが、種々のプログラムからの命令をインターリーブし、それらを直列的に実行するが、ユーザの視点からは、アプリケーションは、並列に処理されているように見える。一方、真の並列またはマルチコア処理は、大規模な算出タスクを個々の算出ブロック細分化し、それらを2つまたはそれを上回るプロセッサ間で分散する算出アプローチである。タスク並列性並列処理)を使用するコンピューティングアーキテクチャは、大規模な算出要件を実行可能なコードの離散モジュールに分割する。モジュールは、次いで、それらのそれぞれの優先順位に基づいて、並行して、または連続的に実行される。

典型的なマルチプロセッサシステムは、中央処理ユニット(「CPU」)と、1つまたはそれを上回るコプロセッサとを含む。CPUは、算出要件をタスクにパーティション化し、そのタスクをコプロセッサに分散する。完了したスレッドは、CPUに報告され、これは、必要に応じて付加的なスレッドをコプロセッサに分散し続ける。現在公知の多重処理アプローチは、タスク分散によって有意な量のCPU帯域幅消費される点において不利であり、新しいタスクを分散する前にタスクが完了するまで待機し(多くの場合、以前のタスクに依存する)、タスクが完了すると、コプロセッサからの割込みに応答し、コプロセッサからの他のメッセージに応答する。加えて、コプロセッサは、多くの場合、CPUからの新しいタスクを待ちながら、アイドルしたままである。

したがって、CPU管理オーバーヘッドを低減させ、また、利用可能な共処理リソースをより効果的に利用および活用するマルチプロセッサアーキテクチャが、必要とされる。

概要

並列処理アーキテクチャが、CPUと、CPUによって投入されるタスクプールと、それぞれ、タスクプールに先回りして問い合わせ、特定のコプロセッサに対して適切なタスクを読み出すように構成されるエージェントを有する、複数の自律的共処理セルとを含む。各コプロセッサは、全てのシステムリソース間のデータ転送およびアービトレーションのための接続を促進する、スイッチングファブリックを通してタスクプールと通信する。各コプロセッサは、タスクまたはタスクスレッドが完了すると、これをタスクプールに通知し、その後、タスクプールは、CPUに通知する。

目的

本発明の別の側面は、異なる命令セットアーキテクチャを伴うCPUの異種アレイ内の相互運用性を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

処理システムであって、タスクプールと、第1のタスクを前記タスクプールに投入するように構成される、コントローラと、前記タスクプールから前記第1のタスクを先回りして読み出すように構成される、第1のコプロセッサと、を備える、処理システム。

請求項2

前記第1のコプロセッサは、前記コントローラと通信することなく、前記タスクプールから前記第1のタスクを読み出すように構成される、第1のエージェントを備える、請求項1に記載の処理システム。

請求項3

前記第1のタスクは、第1のタスクタイプの印を含み、前記第1のコプロセッサは、前記第1のタイプのタスクを実施するように構成され、前記第1のエージェントは、前記第1のタイプのタスクに関して前記タスクプールを検索するように構成される、請求項2に記載の処理システム。

請求項4

前記第1のコプロセッサはさらに、前記第1のものを処理し、前記第1のタスクの完了に応じて、前記タスクプールに通知するように構成される、請求項1に記載の処理システム。

請求項5

前記タスクプールは、前記第1のタスクの完了に応じて、前記コントローラに通知するように構成される、請求項1に記載の処理システム。

請求項6

前記コントローラおよび前記第1のコプロセッサは、相互に前記タスクプールを通してのみ通信するように構成される、請求項1に記載の処理システム。

請求項7

前記コントローラおよび前記第1のコプロセッサは、相互に直接、前記タスクプールを通して通信するように構成される、請求項1に記載の処理システム。

請求項8

前記第1のコプロセッサは、これが利用可能な処理容量を有していることを判定し、前記判定に応答して前記エージェントを前記タスクプールにディスパッチするように構成される、請求項2に記載の処理システム。

請求項9

前記コントローラはさらに、第2のタスクを前記タスクプールに投入するように構成され、前記システムはさらに、前記タスクプールから前記第2のタスクを先回りして読み出すように構成される第2のエージェントを有する、第2のコプロセッサを備える、請求項3に記載の処理システム。

請求項10

前記第2のタスクは、第2のタスクタイプの印を含み、前記第2のコプロセッサは、前記第2のタイプのタスクを実施するように構成され、前記第2のエージェントは、前記第2のタイプのタスクに関して前記タスクプールを検索するように構成される、請求項9に記載の処理システム。

請求項11

前記コントローラおよび前記タスクプールは、モノリシック集積回路(IC)上に常駐し、前記第1のコプロセッサは、前記IC上に常駐しない、請求項1に記載の処理システム。

請求項12

前記コントローラ、前記タスクプール、ならびに前記第1および第2のコプロセッサは、モノリシック集積回路(IC)上に常駐する、請求項9に記載の処理システム。

請求項13

第1のタスクタイプを有する第1のタスクをタスクプールに投入するように構成される、中央処理ユニット(CPU)を含むタイプのネットワーク内の処理リソースを動的に制御する方法であって、前記第1のタスクタイプを実施するように第1のセルプログラムするステップと、前記プログラムされた第1のセルを前記ネットワークに追加するステップと、前記第1のセルから前記タスクプールに、第1のエージェントを先回りして送信するステップと、前記第1のエージェントによって、前記第1のタイプのタスクに関して前記タスクプールを検索するステップと、前記第1のエージェントによって、前記タスクプールから前記第1のタスクを読み出すステップと、前記第1のエージェントによって、前記第1のセルに前記第1のタスクをトランスポートするステップと、前記第1のセルによって、前記第1のタスクを処理するステップと、前記第1のセルから前記タスクプールに、前記第1のタスクが完了した通知を送信するステップと、を含む、方法。

請求項14

前記タスクプールによって、前記第1のタスクを完了しているものとしてマーキングするステップと、前記タスクプールから前記CPUに、前記第1のタスクが完了した通知を送信するステップと、をさらに含む、請求項13に記載の方法。

請求項15

前記第1のエージェントを前記タスクプールに先回りして送信するための述語として、前記第1のセルが利用可能な処理容量を有すると判定するように前記第1のセルを構成するステップをさらに含む、請求項13に記載の方法。

請求項16

前記プログラムされた第1のセルを前記ネットワークに追加することに先立って、前記第1のセルを第1のデバイス統合するステップをさらに含む、請求項13に記載の方法。

請求項17

請求項18

前記プログラムされた第1のセルをネットワークに追加するステップは、前記第1のセルと前記タスクプールとの間に通信リンク確立するステップを含む、請求項13に記載の方法。

請求項19

前記(CPU)はさらに、第2のタスクタイプを有する第2のタスクをタスクプールに投入するように構成され、前記第2のタスクタイプを実施するように前記第2のセルをプログラムするステップと、前記第2のセルと前記タスクプールとの間に通信リンクを確立するステップと、前記第2のセルから前記タスクプールに、第2のエージェントを先回りして送信するステップと、前記第2のエージェントによって、前記第2のタイプのタスクに関して前記タスクプールを検索するステップと、前記第2のエージェントによって、前記タスクプールから前記第2のタスクを読み出すステップと、前記第2のエージェントによって、前記第2のセルに前記第2のタスクをトランスポートするステップと、前記第2のセルによって、前記第2のタスクを処理するステップと、前記第2のセルから前記タスクプールに、前記第2のタスクが完了した通知を送信するステップと、前記タスクプールによって、前記第2のタスクを完了しているものとしてマーキングするステップと、前記タスクプールから前記CPUに、前記第2のタスクが完了した通知を送信するステップと、をさらに含む、請求項13に記載の方法。

請求項20

モノインターネットIoTコンピューティング環境内の分散処理リソースを制御するためのシステムであって、集約コンピューティング要件を複数のタスクにパーティション化し、前記タスクをプール内に置くように構成される、CPUと、それぞれ、前記CPUとの直接通信を伴わずに、前記プールからタスクを先回りして読み出すように構成される、一意専用エージェントを有する、複数のデバイスと、を備える、システム。

技術分野

0001

優先権データ
本願は、2013年1月25日に出願された米国出願第13/750,696号の継続出願であり、該米国出願は、参照により本明細書中に援用される。

0002

本発明は、概して、並列プロセスコンピューティングに関し、特に、中央処理ユニットによって投入されるタスクプールからタスクを先回りして読み出すように構成される、自律コプロセッサを伴う処理アーキテクチャに関する。

背景技術

0003

モノインターネット(モノのクラウドとも称される)は、既存のインターネットインフラストラクチャ内の一意に認識可能な埋め込まれたコンピューティングデバイスアドホックネットワークを指す。モノのインターネット(IoT)は、マシンツーマシン通信M2M)に優る、デバイス、システム、およびサービスの高度な接続性を予示する。IoTによって想定されるモノの範囲は、無制限であり、例えば、心臓監視インプラントバイオチップトランスポンダ自動車センサ、航空宇宙および防衛分野オペレーションデバイス、ならびに探索および救助活動において消防士補助する公衆安全用途等のデバイスを含み得る。現在の市場の実施例は、遠隔監視のためにWi−Fiを利用するスマートサーモスタット電球、および洗濯機乾燥機を伴う家庭ベースネットワークを含む。IoTにおいて接続される物体遍在性に起因して、2020年までに300億個を上回るデバイスが、モノのインターネットに無線接続されるであろうことが推定されている。これらのデバイスと関連付けられるコントローラおよびプロセッサ処理容量を利用することが、本発明の目的のうちの1つである。

0004

コンピュータプロセッサは、伝統的に、マシンコード命令直列的に実行する。複数のアプリケーション並行して起動するために、単一のプロセッサが、種々のプログラムからの命令をインターリーブし、それらを直列的に実行するが、ユーザの視点からは、アプリケーションは、並列に処理されているように見える。一方、真の並列またはマルチコア処理は、大規模な算出タスクを個々の算出ブロック細分化し、それらを2つまたはそれを上回るプロセッサ間で分散する算出アプローチである。タスク並列性並列処理)を使用するコンピューティングアーキテクチャは、大規模な算出要件を実行可能なコードの離散モジュールに分割する。モジュールは、次いで、それらのそれぞれの優先順位に基づいて、並行して、または連続的に実行される。

0005

典型的なマルチプロセッサシステムは、中央処理ユニット(「CPU」)と、1つまたはそれを上回るコプロセッサとを含む。CPUは、算出要件をタスクにパーティション化し、そのタスクをコプロセッサに分散する。完了したスレッドは、CPUに報告され、これは、必要に応じて付加的なスレッドをコプロセッサに分散し続ける。現在公知の多重処理アプローチは、タスク分散によって有意な量のCPU帯域幅消費される点において不利であり、新しいタスクを分散する前にタスクが完了するまで待機し(多くの場合、以前のタスクに依存する)、タスクが完了すると、コプロセッサからの割込みに応答し、コプロセッサからの他のメッセージに応答する。加えて、コプロセッサは、多くの場合、CPUからの新しいタスクを待ちながら、アイドルしたままである。

0006

したがって、CPU管理オーバーヘッドを低減させ、また、利用可能な共処理リソースをより効果的に利用および活用するマルチプロセッサアーキテクチャが、必要とされる。

課題を解決するための手段

0007

並列処理コンピューティングアーキテクチャの種々の実施形態は、タスクプールに投入するように構成される、CPUと、タスクプールからスレッド(タスク)を先回りして読み出すように構成される、1つまたはそれを上回るコプロセッサとを含む。各コプロセッサは、タスクの完了に応じてタスクプールに通知し、別のタスクが処理のために利用可能になるまでタスクプールをping確認する。このように、CPUは、タスクプールと直接通信し、タスクプールを通してコプロセッサと間接的に通信する。

0008

コプロセッサはまた、自律的に作用することも可能であり得、つまり、それらは、CPUから独立してタスクプールと相互作用してもよい。好ましい実施形態では、各コプロセッサは、実施するタスクを探求するためにタスクプールに問い合わせるエージェントを含む。その結果、コプロセッサは、相互に、およびタスクプールと「連帯して」協働し、相互に関連する、またはしない場合もある個々のタスクを自律的に読み出し、完了することによって、集約算出要件を完了する。非限定的実施例として、タスクBは、経時的な平均温度を算出するステップを伴うと仮定する。経時的な温度読取値を捕捉するステップを含むようにタスクAを定義することによって、さらに、捕捉された読取値を取得するステップを含むようにタスクBを定義することによって、CPUおよび種々のコプロセッサは、それによって、タスクプールを介して相互に推測的に通信してもよい。

0009

種々の実施形態では、コプロセッサは、自律的かつ先見的な連帯セルと称される。この文脈において、自律的という用語は、コプロセッサが、CPUによってまたはタスクプールによってそうするように命令されることなく、タスクプールと相互作用し得ることを含意する。先見的という用語は、各コプロセッサが、周期的にエージェントを送信し、そのコプロセッサに適切な利用可能なタスクに関してタスクプールを監視するように構成(例えば、プログラム)され得ることを示唆する。連帯という用語は、共処理セルが、タスクプール内の全ての利用可能なタスクを監視および実行する際に共通の目的を共有することを含意する。

0010

連帯セル(コプロセッサ)は、汎用または専用プロセッサであってもよく、したがって、本システム内のCPUおよび他の連帯セルと比較して、同一または異なる命令セット、アーキテクチャ、およびマイクロアーキテクチャを有してもよい。さらに、実行されるべきソフトウェアプログラムおよび処理されるべきデータは、1つまたはそれを上回るメモリユニット内に含有されてもよい。典型的なコンピュータシステムでは、例えば、ソフトウェアプログラムは、プログラムによって使用されるべきデータを要求し得る、一連の命令から成る。例えば、プログラムがメディアプレーヤに対応する場合、メモリ内に含有されるデータは、コプロセッサによって読み取られ、最終的にスピーカ再生される圧縮オーディオデータであってもよい。

0011

本システム内の各連帯セルは、ファブリックとしても公知である、クロスバースイッチを通してタスクプールとオーム的に、または無線で通信するように構成されてもよい。純粋に無線のメッシュ形態では、無線信号自体が、ファブリックを構成してもよい。種々の実施形態では、コプロセッサはまた、CPUと直接通信してもよい。スイッチングファブリックは、システムリソース間の通信を促進する。各連帯セルは、連帯セルが実施する処理を全く有していないとき、または代替として、連帯セルがその通常動作を妨げることなく処理サイクルに寄与することが可能であるとき、そのエージェントをタスクプールに送信することによって、実施するタスクを取得するという点において先見的である。非限定的実施例として、モノのインターネット(以下により詳細に議論される)の文脈では、電球等のデバイスと関連付けられるコプロセッサは、その通常動作として、マスターデバイススマートフォン等)から「オン」および「オフコマンドを待つようにプログラムされてもよいが、その処理リソースもまた、タスクプールを通して利用されてもよい。

0012

本明細書に説明される種々の実施形態の文脈では、エージェントという用語は、タスクプールと相互作用し、それによって、そのコプロセッサセルに対して適切である利用可能なタスクを取得するコプロセッサと関連付けられる、ネットワークパケットに類似するソフトウェアモジュールを指す。連帯セルは、タスクが以前のタスクの実行を条件とするとき、連続的に、または実行のために1つを上回る連帯セルが利用可能であり、1つを上回る整合タスクが利用可能であるとき、並列にタスクを実行してもよい。タスクは、(該当する場合)CPUによって提供されるタスクスレッド制限に応じて、独立して、または共同で実行されてもよい。タスクプール内の相互依存したタスクは、論理的に組み合わせられてもよい。タスクプールは、タスクスレッドが完了すると、これをCPUに通知する。タスクスレッドが単一のタスクから成る場合、タスクプールは、そのようなタスクの完了時にCPUに通知してもよい。タスクスレッドが複数のタスクから成る場合、タスクプールは、そのような一連のタスクの完了時にCPUに通知してもよい。タスクスレッドは論理的に組み合わせられ得るため、論理的に組み合わせられたタスクスレッドの完了後に、タスクプールがCPUに通知する場合があることも想定される。

0013

業者は、CPUおよびコプロセッサ間の相互運用性が、種々のコプロセッサと関連付けられる、命令セットアーキテクチャから独立した抽象レベルでタスクを構成および/または構築するようにCPUを構成し、それによって、命令レベルでではなく、タスクレベルで構成要素が通信することを可能にすることによって促進され得ることを理解するであろう。したがって、デバイスおよびそれらの関連付けられるコプロセッサは、「プラグアンドプレイ」ベースでネットワークに追加されてもよい。本発明の別の側面は、異なる命令セットアーキテクチャを伴うCPUの異種アレイ内の相互運用性を提供する。

0014

本発明の種々の特徴は、とりわけ、モノのインターネットデバイスおよびセンサのネットワーク、異種コンピューティング環境高性能コンピューティング2次元および3次元モノリシック集積回路、ならびにモーション制御およびロボットに適用可能である。

図面の簡単な説明

0015

本発明は、以降では、添付される図面と併せて説明され、同様の番号は、同様の要素を表す。

0016

図1は、ある実施形態による、CPUと、メモリと、タスクプールと、ファブリックを通して通信するように構成される複数のコプロセッサとを含む、並列処理アーキテクチャの概略ブロック図である。

0017

図2は、ある実施形態による、例示的タスクプールの詳細を例証する、概略ブロック図である。

0018

図3は、ある実施形態による、タスクプールと相互作用する、共処理セルおよびそれらの対応するエージェントを含むネットワークの概略ブロック図である。

0019

図4は、ある実施形態による、利用可能なプラグアンドプレイデバイスを含む、モノのインターネットネットワーク概略配置である。

0020

図5は、ある実施形態による、近傍デバイスの動的利用を例証する、例示的モノのインターネットの使用事例の概略配置図である。

0021

図6は、ある実施形態による、例示的並列コンピューティング環境の動作を例証する、フローチャートである。

実施例

0022

種々の実施形態は、例えば、モノのインターネットの文脈における、限定ではないが、データ暗号化グラフィックビデオ、およびオーディオ処理ダイレクトメモリアクセス数学的算出;データマイニング;ゲームアルゴリズムネットワーク外のデータの構築、受信、および伝送を含む、イーサネット登録商標パケットおよび他のネットワークプロトコル処理;金融サービスおよびビジネス方法検索エンジンインターネットデータストリーミングおよび他のウェブベースアプリケーション;内部または外部ソフトウェアプログラムの実行;電化製品、電球、消費者用電子機器、および同等物のオンおよびオフ切替ならびに/または別様にそれらの制御もしくは操作を含む、単純な切替および制御機能から複雑なプログラムおよびアルゴリズムまでの並列処理コンピューティングシステムおよび環境に関する。

0023

種々の特徴が、任意の現在公知の、または後に開発されるコンピュータアーキテクチャ中に組み込まれてもよい。例えば、同期、データセキュリティ順不同実行、およびメインプロセッサ割込みに関する並列処理の問題は、本明細書に説明される発明的概念を使用して対処され得る。

0024

ここで図1を参照すると、分散処理システム10が、単一またはマルチコアCPU11と、クロスバースイッチングファブリック14を通してタスクプール13と通信するように構成される、1つまたはそれを上回る連帯もしくは共処理セル12A−12とを含む。連帯セル12はまた、スイッチングファブリック14を通して、または別個セルバス(図示せず)を通して、相互に通信してもよい。CPU11は、直接、またはスイッチングファブリック14を通して、タスクプール13と通信してもよい。1つまたはそれを上回るメモリユニット15が、それぞれ、データおよび/または命令を含有する。本文脈では、「命令」という用語は、CPU11による実行のためにコンパイルされ得るソフトウェアプログラムを含む。メモリユニット15、セル12、およびタスクプール13は、スイッチングファブリック14を介して、CPUと、および/または相互に通信するようにオーム的に、または無線で相互接続されてもよい。いくつかの実施形態では、CPU11は、タスクプールを通して間接的にのみセル12と通信する。他の実施形態では、CPU11はまた、中間物としてタスクプールを使用することなく、セル12と直接通信してもよい。

0025

いくつかの実施形態では、システム10は、1つを上回るCPU11と、1つを上回るタスクプール13とを含んでもよく、その場合では、特定のCPU11が、特定のタスクプール13と排他的に相互作用してもよい、または複数のCPU11が、1つまたはそれを上回るタスクプール13を共有してもよい。さらに、各連帯セルは、1つを上回るタスクプール13と相互作用するように構成されてもよい。代替として、特定のセルが、例えば、高性能または高セキュリティの文脈において、単一の指定されたタスクプールと相互作用するように構成されてもよい。

0026

種々の実施形態では、セルは、以下の3つの条件が満たされると、タスクプールとオーム的に(プラグアンドプレイ)、または無線で(オンザフライ)動的にペアリングされてもよい。
1)セルが、タスクプールとオーム的に、または無線で通信することが可能である。タスクプールへの接続は、タスクプール自体におけるポートを通して、またはタスクプールに接続されるスイッチングファブリックを通してであり得る。
2)タスクプールが、例えば、パスワードの有無にかかわらず、伝統的なWi−Fi、Bluetooth(登録商標)、もしくは類似するペアリングを通した、スマートフォンもしくはタブレッド上で起動するグラフカルソフトウェアプログラムを通した手動の、または任意の他のセキュアもしくは非セキュアな方法による、ユーザからの入力を使用して、セルによって送信されたエージェントを信頼できるものとして認識する。
3)タスクプール内の利用可能なタスクのうちの少なくとも1つが、連帯セルの能力互換性がある。

0027

複数のタスクプールを伴うマルチプロセッサ環境の場合では、前述の動的なペアリング条件が適用され、但し、所与のセルが、タスクプールのうちの1つのみと協働するようにロックまたは制限され得、そうでなければ、セルは、第1発見ベース、ラウンドロビンベース、または任意の他の選択スキームを使用して、1つまたはそれを上回るタスクプールと接続し得る。また、タスクプール内のタスクに優先順位を割り当てることも可能であり、それによって、セルは、優先順位の高いタスクを優先し、より優先順位の高いタスクに別様に従事しないとき、より優先順位の低いタスクを扱う。

0028

CPU11は、ソフトウェアプログラムを実行するために使用される、任意の単一もしくはマルチコアプロセッサアプリケーションプロセッサ、またはマイクロコントローラであってもよい。システム10は、パーソナルコンピュータ、スマートフォン、タブレット、またはモノのインターネットデバイス上に実装されてもよく、その場合では、CPU11は、Intel(登録商標)Pentium(登録商標)または直近のコンピューティング環境にローカルである、もしくはそれからリモートであるマルチコアプロセッサ等の任意のパーソナルコンピュータ、中央プロセッサ、またはプロセッサクラスタであってもよい。代替として、システム10は、スーパーコンピュータ上に実装されてもよく、CPU11は、縮小命令セットコンピュータ(「RISC」)プロセッサ、アプリケーションプロセッサ、マイクロコントローラ、または同等物であってもよい。

0029

他の実施形態では、システム10は、Beowulfクラスタ等のローカル接続された一連のパーソナルコンピュータ上に実装されてもよく、その場合では、CPU11は、ネットワーク化コンピュータの全て、そのサブセット、またはそのうちの1つの中央プロセッサを含んでもよい。代替として、システム10は、リモート接続されたコンピュータのネットワーク上に実装されてもよく、その場合では、CPU11は、サーバまたはメインフレームのための現在公知の、または後に開発される中央プロセッサであってもよい。CPU11が、ここで説明されるシステム10内で対象並列処理方法を実施する特定の様式は、CPUのオペレーティングシステムによって影響を受け得る。例えば、CPU11は、以下に説明されるように、タスクプール13を認識し、これと通信し、コンピューティング要件をスレッドに分割するようにこれをプログラムすることによって、システム10内で使用するために構成されてもよい。

0030

システム10は、本明細書に説明される機能性を実装するように修正または別様に構成され得るオペレーティングシステムを有する、任意のコンピュータまたはコンピュータネットワーク上に遡及的に実装され得ることがさらに想定される。当分野で公知であるように、処理されるべきデータは、例えば、ランダムアクセスもしくは読取専用メモリ、CPU11のためのキャッシュメモリ、またはフラッシュメモリおよび磁気記憶装置等の他の形態のデータ記憶装置アドレス指定可能領域または区画の文脈において、メモリユニット15内に含有される。メモリユニット15は、処理されるべきデータだけではなく、処理されたデータの結果を置く場所も含有する。例えば、システム10にデータを戻し得るスマートメータおよび自動車計器の場合のように、またはある機構を作動し得るロボットおよびモータコントローラの場合のように、全てのタスクが、メモリユニット15にアクセスすることを要求されるわけではない。

0031

各セル12は、1つまたはそれを上回るタスク/スレッドを実行することが可能である、概念的または論理的に独立した算出ユニットである。セル12は、マイクロコントローラ、マイクロプロセッサ、アプリケーションプロセッサ、「ダム」スイッチ、またはBeowulfクラスタ内のマシン等の独立型コンピュータであってもよい。

0032

セル12は、CPUの機能、または、例えば、周囲監視およびロボットアクチュエータ等のCPU11とは無関係の機能を補完する、それらの全てを実施する、またはそれらの限定された範囲を実施するように構成される、汎用または専用コプロセッサであってもよい。専用プロセッサは、特殊化タスクを実施するように設計、プログラム、または別様に構成される、専用ハードウェアモジュールであってもよい、またはこれは、グラフィック処理浮動小数点演算、もしくはデータ暗号化等の特殊化タスクを実施するように構成される、汎用プロセッサであってもよい。

0033

ある実施形態では、専用プロセッサである任意のセル12はまた、メモリにアクセスし、それに書き込み、以下に説明されるように、記述子を実行し、ならびに他のソフトウェアプログラムを実行するように構成されてもよい。

0034

さらに、任意の数のセル12が、異種コンピューティング環境、つまり、AMDベースおよび/またはIntelベースのプロセッサ、または32ビットおよび64ビットプロセッサの混合物等の1種類を上回るプロセッサを使用するシステムを含み得る。

0035

各セル12は、以下のイベントシーケンスに例証されるように、1つまたは複数の特殊化タスクを実施するように構成される。ポーリングフェーズ中、各セルは、整合タスクが見出されるまで、タスクプールにエージェントを周期的に送信する。この整合を促進するために、セルおよびタスクプールは両方とも送受信機具備してもよい。タスクプールの場合では、送受信機は、タスクプール自体に、またはタスクプールが接続されるスイッチングファブリックに位置してもよい。タスクプール内にタスク整合が見出されると、タスクプールは、セルに肯定応答を伝送する。次のステップは、「通信チャネルフェーズである。通信チャネルフェーズ中、セルは、タスクを受信し、そのタスクを実行し始める。一実装では、いったん第1のタスクが完了すると、通信チャネルは、連帯セルが「ポーリング」および「肯定応答」フェーズを繰り返す必要なく別のタスクをフェッチし得るように維持される。

0036

システム10は、複数のセルを含んでもよく、セルのいくつかは、他のセルと同一のタスクタイプを実施することが可能であり、それによって、システム10内に冗長性をもたらす。所与のセル12によって実施されるタスクタイプのセットは、別のセルによって実施されるタスクタイプのセットのサブセットであってもよい。例えば、図1では、システム10は、集約算出問題をタスクの群に分割し、第1のタイプ、第2のタイプ、および第3のタイプのタスクをタスクプール13に投入してもよい。第1のセル12Aは、第1のタイプのタスクのみを実施することが可能であり得、第2のセル12Bは、第2のタイプのタスクを実施することが可能であり得、第3のセル12Cは、第3のタイプのタスクを実施することが可能であり得、第4のセル12Dは、第2または第3のタイプのタスクを実施することが可能であり得、第5のセル12Nは、全ての3つのタスクタイプを実施することが可能であり得る。システム10は、所与のセルがシステム10から除去される(または現在ビジーである、または別様に利用不可能である)場合、システム10がシームレスに機能し続け得るように、この冗長性とともに構成されてもよい。さらに、セルがシステム10に動的に追加される場合、システム10は、性能向上の利益を用いて、シームレスに機能し続け得る。

0037

ここで図1および2を参照すると、タスクプール13は、CPU11によってアクセス可能である物理メモリの領域を占有し得る。代替として、タスクプール13は、MACアドレスまたはIPアドレスによってアクセス可能であってもよい。複数の実施形態が、タスクプール13に関して想定され、これは、同一の2Dもしくは3DモノリシックIC内でCPUとともに物理的に位置してもよい、またはこれは、独立型ICとして実装され、コンピュータボード、スマートフォン、タブレット、ルータ、もしくはモノのインターネットデバイスに物理的に相互接続されてもよい。さらなる代替実施形態では、タスクプールは、複数のCPU11システム間で共有される、または所与のCPU11の専用であり得る、独立型マルチポート有線、および/または無線接続されたデバイスであってもよい。タスクプール13はまた、セル12によってアドレス指定可能であってもよい。タスクプール13は、CPU11およびセル12によって最大アクセス速度を提供するために、専用ハードウェアブロック内に配置されてもよい。代替として、タスクプール13は、ソフトウェアベースであってもよく、タスクプール13のコンテンツは、ハードウェアベースの実施形態に類似して、メモリ内に記憶されるが、データ構造によって表される。

0038

CPU11によって投入されると、タスクプール13は、1つまたはそれを上回るタスクスレッド21を含有する。各タスクスレッド21は、CPU11に付与されたより大規模な集約算出要件の構成要素またはサブセットであり得る、算出タスクを表す。一実施形態では、CPU11は、並行して実行可能なスレッド21を伴うタスクプール13を初期化し、次いで、それに投入してもよい。各スレッド21は、1つまたはそれを上回る離散タスク22を含んでもよい。タスク22が、タスクタイプと、記述子とを有してもよい。タスクタイプは、どのセル12がタスク22を実施することが可能であるかを示す。タスクプール13はまた、同一タイプを有するタスク22に優先順位を付けるために、タスクタイプを使用してもよい。一実施形態では、タスクプール13は、システム10内に存在する連帯セル12、各セルが実施することが可能なタスク22のタイプ、および各セルが現在タスク22を処理しているかどうかを記録する、優先順位テーブル(図示せず)を維持してもよい。タスクプール13は、以下に説明されるように、適格なタスク22のどれを要求セルに割り当てるかを判定するために、優先順位テーブルを使用してもよい。

0039

いくつかの実施形態では、CPU11は、タスクプールからタスクまたはスレッドを読み出し、それを実行してもよい。さらに、CPU11は、古くなった、壊れた、膠着した、または誤ったと判定される任意のタスクを中断してもよい。そのような場合では、CPU11は、タスクをリフレッシュし、後続処理のために利用可能にしてもよい。例えば、人工知能によって要求され得るように、CPU11が適応タスク管理を実装することを妨げるものはなく、その後、CPU11は、未完成の既存のスレッド21内のタスクを追加、除去、または変更してもよい。

0040

記述子は、存在する場合、実行されるべき具体的命令、実行のモード、処理されるべきデータの場所(例えば、アドレス)、およびタスク結果を置くための場所のうちの1つまたはそれを上回るものを含有してもよい。結果を置くための場所は、多くの場合、結果をメモリ内に記憶するのではなく、それらをディスプレイ提示する、アニメーションおよびマルチメディアタスクの場合等では、随意である。さらに、タスク記述子は、リンクされたリストのように、ともに連鎖されてもよく、したがって、処理されるべきデータは、記述子がともに連鎖されない場合よりも少ないメモリ呼び出しでアクセスされ得る。ある実施形態では、記述子は、ヘッダおよびメモリ場所の複数の参照ポインタを含有するデータ構造であり、タスク22は、データ構造のメモリアドレスを含む。ヘッダは、実行されるべき機能または命令を定義する。第1のポインタが、処理されるべきデータの場所を参照する。第2の随意のポインタが、処理されたデータを置くための場所を参照する。記述子が、連続的に実行されるべき別の記述子にリンクされている場合、記述子は、次の記述子を参照する第3のポインタを含んでもよい。記述子がデータ構造である代替実施形態では、タスク22は、完全なデータ構造を含んでもよい。

0041

スレッド21はさらに、タスク22が実施され得る順序および性能の順序に影響を及ぼす任意の条件を記述する、「レシピ」を備えてもよい。レシピによると、タスク22は、ブール演算に従って、連続的に、並行して、順不同に、相互依存的に、または条件的に実行されてもよい。例えば、図2では、スレッド21Aは、4つのタスク、すなわち、22A、22B、22C、および22Dを備える。例証される実施形態では、第1のタスク22Aは、第2のタスク22Bまたは第3のタスク22Cのいずれかが始まり得る前に完了しなければならない。レシピによると、いったん第2のタスク22Bまたは第3のタスク22Cのいずれかが完了すると、第4のタスク22Dが、始まり得る。

0042

スレッド21はまた、相互依存的であってもよい。例えば、図2に示されるように、スレッド21B内のブール演算に起因して、完了したタスク22Cは、スレッド21B内のタスクの処理が継続することを可能にしてもよい。タスクプール13は、タスク22が、これが依存する別のタスク22の完了を待機している間、タスク22をロックしてもよい。タスク22がロックされると、これは、セルによって取得されることはできない。スレッド21のタスク22が完了すると、タスクプール13は、CPU11に完了を通知してもよい。CPUは、次いで、完了したスレッド21を越えて処理を進めてもよい。

0043

セルは、有利なこととして、相互に、およびCPU11と連帯を維持し、それによって、システム10が、タスクプール13からタスクを自律的かつ先回りして読み出すことによって、複雑な算出を実施することに役立つ。セル12は、それらがCPU11または任意の他のコプロセッサから独立して作用し得るという点において、自律的に作用する。代替として、セルは、CPUに応じて作用する、またはそれによって直接命令されてもよい。各セルは、さらなる処理のためにセルが利用可能になるとすぐに、タスクプール13からタスク22を探求するという点において、先回りして作用する。

0044

より具体的には、ある実施形態では、セル12は、エージェント30を送信し、タスクプールに問い合わせ(検索し)、完了を要求する、ロックされていない、セルによって実施され得るタスクタイプを有する利用可能なタスク22を読み出すことによって、タスクプールからタスクを取得する。典型的には、システム10は、連帯共処理セルと同数のエージェントを有する。本文脈では、エージェントは、概して、エージェントがソースアドレス宛先アドレス、およびペイロードを具備し得るという点で、ネットワークの意味におけるデータフレームと類似する。ある実施形態では、宛先アドレスは、エージェント30がタスク22を探求しているとき、タスクプール13のアドレスであり、宛先アドレスは、エージェント30がタスク22を伴うそのセルに戻っているとき、対応するセル12のアドレスである。対応して、ソースアドレスは、エージェント30がタスク22を探求しているとき、セル12のアドレスであり、ソースアドレスは、エージェント30がタスク22を伴うそのセルに戻っているとき、タスクプール13のアドレスである。

0045

加えて、ソースおよび宛先アドレスは、フレーム同期を促進し得る。つまり、システム10は、ペイロードデータから明確にアドレスを区別するように構成されてもよく、したがって、エージェント30のコンテンツが読み取られると、宛先アドレスは、フレームの開始を示し、ソースアドレスは、フレームの終了を示し、逆もまた同様である。これは、ペイロードが、アドレス間に置かれるとき、サイズを変動することを可能にする。可変サイズのペイロードの別の実施形態では、エージェント30は、ペイロードサイズを示すヘッダを含んでもよい。ヘッダ情報は、データ完全性を検証するために、ペイロードと比較されてもよい。さらに別の実施形態では、ペイロードは、固定長であってもよい。エージェント30がそのコプロセッサセルによってタスクプール13にディスパッチされると、ペイロードは、セル12が実施し得るタスクのタイプの識別情報を含有する。エージェント30がタスクプール13から戻ると、ペイロードは、メモリ場所または完全な記述子データ構造のいずれかの形態において、タスク22の記述子を含有する。

0046

他の実施形態では、エージェント30のいくつかまたは全ては、それらのそれぞれの対応するセル12の自律的な代表である。つまり、各エージェント30は、その対応するセル12によってディスパッチされ、セルがアイドルしている、または付加的な処理を実施することが可能であるときはいつでも、タスク22を読み出してもよい。このように、連帯セル12の処理容量は、セルがCPU11からの命令をアイドルして待機する必要がない限り、より完全に活用され得る。本アプローチは、タスクプールからタスクを読み出すために、セルに要求を送信する必要性からCPUを解放することによって、CPUオーバーヘッドを低減させる付加的な利益も有する。これらの利点は、補助モジュールおよびコプロセッサがメインCPUからの命令に依存する伝統的なコンピュータアーキテクチャよりも、システム10を効率的にする。

0047

さらに、連帯セル12A−12nは、スレッド自体の特定の組成に関して曖昧である。むしろ、エージェントは、その対応するセルの能力と、タスクプール13内の完了するべき利用可能なタスク22との間の整合を見出すことにのみ関与する。つまり、タスクプール13内に利用可能なタスク22が存在し、利用可能なタスク22がセルの能力と整合する限り、本システムは、セルの処理容量を効果的に利用し得る。

0048

連帯セル12A−12nのいくつかまたは全ては、相互に独立して機能してもよい、または直接、スイッチングファブリック14を通して、タスクプール13を通して、もしくはCPUからのコマンドもしくは要求に従って相互に通信し、別の連帯セルを呼び出し、データを処理、移動、もしくは伝送する際に補助してもよい。一実施形態では、エージェント30Aは、レディタスク22のタスクタイプと、セル12Aが実施することが可能であるタスクのタイプとの間の整合を検索してもよい。本アーキテクチャは、CPU11が生成するように構成されるタスクのタイプのハードコーディングを伴ってもよい。したがって、タスクプール13が3つのタイプのタスク22を含有し、大規模な算出要件が第4のタイプのタスクを含む場合、この第4のタイプのタスクは、第4のタイプのタスクを実施することが可能なセルがシステム10に含まれる、または追加される場合であっても、タスクプール13内に置かれない場合がある。その結果、CPU11は、利用可能な処理リソースをより完全に活用するために、第4のタイプのタスクを生成する方法を「学習する」または教示されるように構成され得る。

0049

別の実施形態では、エージェント30Aは、セル12Aが実施することが可能である命令のうちの1つと整合する実行可能な命令のためのタスク22記述子を検索する。整合タスク22が見出されると、エージェント30Aは、整合タスク22の記述子をセル12Aに送達し、その後、セル12Aは、タスク22を処理し始める。特に、エージェント30Aは、記述子のメモリアドレスをセル12Aに送達してもよく、セル12Aは、メモリからデータ構造を読み出す。代替として、記述子の全データ構造がタスク22内に含有される場合、エージェント30Aは、処理のためにセル12Aに完全なデータ構造を送達してもよい。記述子は、セル12Aに、どの命令を実行するか、処理されるべきデータが見出され得るメモリユニット15内の場所、および結果が置かれるべきメモリ15内の場所を知らせる。タスク22の完了に応じて、セル12Aは、選択されたタスク22のステータスを「完了するべき」から「完了した」に変更するようにタスクプール13に通知する。さらに、いったんセル12Aがタスク22を終了すると、セルは、そのエージェント30Aをタスクプール13にディスパッチし、別のタスク22を探求してもよい。

0050

エージェント30A−30nのいくつかまたは全ては、システム10の特定のアーキテクチャおよび/または実装による、例えば、Wi−Fiネットワーク、無線イーサネット(登録商標)、無線USB、無線ブリッジ無線中継装置無線ルータ、Zigbee(登録商標)、ANT+(登録商標)、またはBluetooth(登録商標)ペアリングを使用して、有線または無線でシステム10を通して進行してもよい。ある実施形態では、エージェント30は、タスクプール13にレセプタ特徴を含めることによって、さらに、セル12に送信機特徴を含めることによって、無線でタスクプール13に誘導されてもよい。同様に、タスクプールは、タスクプールに送信機を、連帯セルに受信機を具備することによって、セルに無線で応答してもよい。本様式では、セルは、スイッチングファブリックの使用の有無にかかわらず、タスクプールと無線で通信し得る。

0051

しかしながら、好ましい実施形態では、ある形態のスイッチングファブリック14が、使用される。スイッチングファブリック14は、システムリソース間のデータ転送およびアービトレーションのための接続を促進する。スイッチングファブリック14は、種々のセルとタスクプールとの間に接続性を提供する、ルータまたはクロスバースイッチであってもよい。スイッチングファブリック14はさらに、各連帯セル12A−12nと、CPU11、メモリユニット15、および限定ではないが、ダイレクトメモリアクセスユニット、送信機、ハードディスクおよびそれらのコントローラ、ディスプレイおよび他の入力/出力デバイス、ならびに他のコプロセッサを含む、伝統的なシステム構成要素等のシステムリソースとの間に接続性を提供してもよい。セル12A−12nは、スイッチングファブリック14に物理的に接続されてもよい、またはセルは、無線で接続されてもよい。

0052

システム10へのセルの無線接続は、システム10内で使用するためのセルの動的な追加および/または除去を促進する。例えば、CPU11は、他のセルシステムからセルを補充し、動的拡張および性能向上を可能にしてもよい。本様式では、2つまたはそれを上回るセルシステム(例えば、ネットワーク)が、連帯セルを共有し得る。一実施形態では、アイドル状態になるセルは、付加的な処理リソースの必要性を有する、すなわち、完了する必要がある利用可能な処理タスクを有する、別のシステムを探す、および/またはそれによって補充されてもよい。同様に、システム10は、特定のタスクのための付加的なセルのクラスタを組み込むことによって、性能を拡張させてもよい。例えば、システム10は、これらのタスクを実施することが可能な近傍セルを組み込むことによって、暗号化/復号化機能、またはオーディオおよび/もしくはビデオデータの処理の性能を増進させてもよい。

0053

望ましくない接続を防止するために、CPU11は、タスクプール13に、信頼できるおよび/または信頼できないセル、ならびに認証要件もしくはプロトコルのリスト、または代替として、それらを識別するための基準を提供してもよい。さらに、タスクプール自体は、低性能、信頼性のない接続、データ処理量の不良、または悪意のある、もしくは別様に不適切な活動の疑いに基づいて、特定のセルを除外してもよい。種々の実施形態では、セル12は、ユーザによって、スマートフォン、タブレット、または他のデバイスもしくはアプリケーションの使用を通して、タスクプール13に追加される、またはタスクプール13から除外されてもよい。一実施形態では、グラフィカルアプリケーションインターフェースは、ネットワークから特定のセルを追加または除去した結果、利用可能なセルおよび他のデバイスの場所、性能向上、または性能ペナルティ等の有用な統計および/またはアイコン情報をユーザに提供してもよい。

0054

代替実施形態では、共処理セルのいくつかまたは全ては、通信のためのスイッチングファブリック14を要求しない有線構成等によって、タスクプール13に直接接続してもよい。セルの有線接続はさらに、有線接続が周辺機器デバイスの物理的(例えば、手動)統合および抽出であり得るが、上記に議論される無線構成に類似するシステム10の動的拡張および縮小を促進してもよい。いずれの場合も、システム10の変更を考慮して、コプロセッサがCPU11を再プログラムすることなく追加および除去され得るため、本システムのスケーラビリティは、従来の並列処理スキームを上回って大幅に増進される。

0055

ここで図3を参照すると、ネットワーク300が、CPU302と、第1のメモリ304と、第2のメモリ306と、タスクプール308と、スイッチングファブリック310と、タイプAタスクを実施(実行)するように構成される第1の共処理セル312と、タイプBタスクを実施するように構成される第2のセル314と、タイプCタスクを実施するように構成される第3のセル316と、タイプAおよびタイプBタスクの両方を実施するように構成される第4のセル318とを含む。示されるように、タスクプール308は、(例えば、CPU302によって)タスクタイプAのタスク(またはタスクスレッド)330および332、タスクタイプBのタスク334および336、ならびにタスクタイプCのタスク340および342を投入される。ある実施形態では、各セルは、好ましくは、一意の専用エージェントを有する。特に、セル312は、エージェント320を含み、セル314は、エージェント322を含み、セル316は、エージェント324を含み、セル318は、エージェント326を含む。各エージェントは、好ましくは、その関連付けられるセルが実施するように構成されるタスクのタイプ、例えば、単一タスクまたはタスクA、B、Cの組み合わせを識別する、情報フィールドまたはヘッダを含む。

0056

動作中、セルがアイドル状態であるか、または別様に利用可能な処理容量を有するかのいずれかのとき、そのエージェントは、タスクプールに先回りして問い合わせ、その特定のセルに適切である任意のタスクがタスクキュー内にあるかどうかを判定する。例えば、セル312は、そのエージェント320をディスパッチし、タスクタイプAに対応するタスク330および332の一方または両方を読み出してもよい。同様に、セル314は、そのエージェント322をディスパッチし、タスクタイプBに対応するタスク334または336のいずれかを(それらの相対的優先順位に応じて)読み出してもよく、以下同様である。タスクタイプAおよびBを実施するように構成されるセル318等、1つを上回るタスクタイプを実施することが可能であるセルに関して、エージェント326は、タスク330、332、334、および/または336のうちのいずれか1つを読み出してもよい。

0057

タスクプールからタスクを読み出すと、セルは、次いで、典型的には、第1のメモリ304内の特定の場所からデータを読み出し、そのデータを処理し、処理されたデータを第2のメモリ306内の特定の場所に記憶することによって、そのタスクを処理し得る。タスクが完了すると、セルは、タスクプールに通知し、タスクプールは、完了したものとしてタスクをマーキングし、タスクプールは、タスクが完了したことをCPUに通知する。代替として、タスクプールは、タスクスレッドが単一タスク、一連のタスク、またはブール組み合わせのタスクを含み得る限り、タスクスレッドが完了すると、これをCPUに通知してもよい。有意なこととして、セルによるタスクの読み出しおよびデータの処理は、CPUと種々のセルとの間の直接通信を伴わずに生じ得る。

0058

ここで図4を参照すると、モノのインターネットネットワーク400が、コントローラ(CPU)402と、タスクプール408と、種々のデバイス410−422とを含み、そのいくつかまたは全てが、処理容量を具現化する、集積回路(IC)チップまたは他の構成要素等の関連付けられる、または埋め込まれたマイクロコントローラを含む。非限定的実施例として、本デバイスは、電球410、サーモスタット412、電気レセプタクル414、電力スイッチ416、電化製品(例えば、トースター)418、車両420、キーボード422、およびネットワークとインターフェースをとることが可能な事実上任意の他のプラグアンドプレイデバイスまたはアプリケーションを含んでもよい。

0059

例証される実施形態では、コントローラ402は、スマートフォン、タブレット、ラップトップ、またはネットワーク上の種々のデバイスとのユーザ相互作用を促進するためのディスプレイ404およびユーザインターフェース(例えば、キーパッド)406を含み得る他のデバイスであってもよい。コントローラ402の処理容量(例えば、帯域幅)がネットワークを適正にサポートするために不十分であり得る限りにおいて、コントローラは、例えば、図5と併せて以下に説明されるように、周辺機器デバイスからタスクプールを介して、処理リソースを効果的に採取または補充してもよい。

0060

ここで図5を参照すると、モノのインターネットネットワーク500の使用事例が、近傍(または別様に利用可能な)デバイスの動的な利用を例証する。ネットワーク500は、主要制御ユニット502(例えば、ラップトップ、タブレット、またはゲームデバイス)と、タスクプール504と、第1のコプロセッサデバイス506と、第2のコプロセッサデバイス508とを含む。ネットワーク500の文脈における例示的使用事例が、ここで説明される。

0061

ユーザが、自身のラップトップコンピュータ502でビデオゲームプレイしていると仮定する。ビデオゲームは、詳細なコンピュータ生成イメージを要求し、おそらく、ラップトップ502における処理能力は、単一の写実的に見えるキャラクタレンダリングするために十分であるが、第2のキャラクタが画面上に導入されると、画像品質は、劣化し、キャラクタの移動はもはや、連続的ではない。本発明は、ユーザの近傍内に位置する、または別様にユーザに利用可能な十分に利用されていないコンピュータリソースの処理能力を利用する方法を提案する。

0062

付加的な処理能力の必要性に対処するために、ラップトップ502は、タスクプール504に接続する。この点で、ラップトップ自体は、タスクプールを具備してもよい、またはタスクプールは、ラップトップ502から無線到達範囲内に位置する外部デバイスまたはアプリケーションの形態であってもよい。外部タスクプールの場合では、タスクプール自体は、ポートを伴うスイッチングファブリックの役割を果たし、複数の共処理セルへの接続を可能にし得る。ラップトップ502は、算出集約的タスクをタスクプール504に投入する。スマートフォン508等の近傍の十分に利用されていないデバイスは、続けてタスクプール504に接続し、整合タスクタイプをフェッチするためにそのエージェントを送信する。その結果、スマートフォン508は、ラップトップ502をシームレスに補助するコプロセッサになり、それによって、ビデオゲーム体験を向上させる。同一の方法は、他の十分に利用されていない処理リソースが存在し、必要とされる場合に繰り返されてもよい。実際、利用可能な電球506の処理能力であっても、ラップトップへのコプロセッサになり得る。

0063

図6は、例示的並列コンピューティング環境の動作を例証する、フローチャートである。特に、方法600が、タスクをタスクプールに投入するステップ(ステップ602)と、1つまたはそれを上回るエージェントを、1つまたはそれを上回る対応するセルからタスクプールに先回りしてディスパッチするステップ(ステップ604)と、タスクを読み出し、処理するステップ(ステップ606)と、タスクスレッドが実施されたことをタスクプールおよびCPUに通知するステップ(ステップ608)とを含む。方法600はさらに、必要に応じて、付加的なデバイスをネットワークに動的に組み込むステップ(ステップ610)を含む。

0064

したがって、タスクプールと、第1のタスクをタスクプールに投入するように構成される、コントローラと、タスクプールから第1のタスクを先回りして読み出すように構成される、第1のコプロセッサとを含む処理システムが、提供される。

0065

ある実施形態では、第1のコプロセッサは、コントローラと通信することなく、タスクプールから第1のタスクを読み出すように構成される、第1のエージェントを備える。

0066

ある実施形態では、第1のタスクは、第1のタスクタイプの印を含み、第1のコプロセッサは、第1のタイプのタスクを実施するように構成され、第1のエージェントは、第1のタイプのタスクに関してタスクプールを検索するように構成される。

0067

ある実施形態では、第1のコプロセッサはさらに、第1のものを処理し、第1のタスクの完了に応じて、タスクプールに通知するように構成され、タスクプールは、第1のタスクの完了に応じて、コントローラに通知するように構成される。

0068

ある実施形態では、コントローラおよび第1のコプロセッサは、相互にタスクプールを通してのみ通信するように構成される。

0069

ある実施形態では、コントローラおよび第1のコプロセッサは、相互に直接、タスクプールを通して通信するように構成される。

0070

ある実施形態では、第1のコプロセッサは、これが利用可能な処理容量を有していることを判定し、判定に応答してエージェントをタスクプールにディスパッチするように構成される。

0071

ある実施形態では、コントローラはさらに、第2のタスクをタスクプールに投入するように構成され、本システムはさらに、タスクプールから第2のタスクを先回りして読み出すように構成される第2のエージェントを有する、第2のコプロセッサを備える。

0072

ある実施形態では、第2のタスクは、第2のタスクタイプの印を含み、第2のコプロセッサは、第2のタイプのタスクを実施するように構成され、第2のエージェントは、第2のタイプのタスクに関してタスクプールを検索するように構成される。

0073

ある実施形態では、コントローラおよびタスクプールは、モノリシック集積回路(IC)上に常駐し、第1のコプロセッサは、IC上に常駐しない。

0074

別の実施形態では、コントローラ、タスクプール、ならびに第1および第2のコプロセッサは、モノリシック集積回路(IC)上に常駐する。

0075

第1のタスクタイプを有する第1のタスクをタスクプールに投入するように構成される、中央処理ユニット(CPU)を含むタイプのネットワーク内の処理リソースを動的に制御する方法もまた、提供される。本方法は、第1のタスクタイプを実施するように第1のセルをプログラムするステップと、プログラムされた第1のセルをネットワークに追加するステップと、第1のセルからタスクプールに、第1のエージェントを先回りして送信するステップと、第1のエージェントによって、第1のタイプのタスクに関してタスクプールを検索するステップと、第1のエージェントによって、タスクプールから第1のタスクを読み出すステップと、第1のエージェントによって、第1のセルに第1のタスクをトランスポートするステップと、第1のセルによって、第1のタスクを処理するステップと、第1のセルからタスクプールに、第1のタスクが完了した通知を送信するステップとを含む。

0076

ある実施形態では、本方法はまた、タスクプールによって、第1のタスクを完了しているものとしてマーキングするステップと、タスクプールからCPUに、第1のタスクが完了した通知を送信するステップとを含む。

0077

ある実施形態では、本方法はまた、第1のエージェントをタスクプールに先回りして送信するための述語として、第1のセルが利用可能な処理容量を有すると判定するように第1のセルを構成するステップを含む。

0078

ある実施形態では、本方法はまた、プログラムされた第1のセルをネットワークに追加することに先立って、第1のセルを第1のデバイスに統合するステップを含む。

0079

ある実施形態では、第1のデバイスは、センサ、電球、電力スイッチ、電化製品、バイオメトリックデバイス医療デバイス診断デバイス、ラップトップ、タブレット、スマートフォン、モータコントローラ、およびセキュリティデバイスのうちの1つを含む。

0080

ある実施形態では、プログラムされた第1のセルをネットワークに追加するステップは、第1のセルとタスクプールとの間に通信リンク確立するステップを含む。

0081

ある実施形態では、(CPU)はさらに、第2のタスクタイプを有する、第2のタスクをタスクプールに投入するように構成され、本方法はさらに、第2のタスクタイプを実施するように第2のセルをプログラムするステップと、第2のセルとタスクプールとの間に通信リンクを確立するステップと、第2のセルからタスクプールに、第2のエージェントを先回りして送信するステップと、第2のエージェントによって、第2のタイプのタスクに関してタスクプールを検索するステップと、第2のエージェントによって、タスクプールから第2のタスクを読み出すステップと、第2のエージェントによって、第2のセルに第2のタスクをトランスポートするステップと、第2のセルによって、第2のタスクを処理するステップと、第2のセルからタスクプールに、第2のタスクが完了した通知を送信するステップと、タスクプールによって、第2のタスクを完了しているものとしてマーキングするステップと、タスクプールからCPUに、第2のタスクが完了した通知を送信するステップとを含む。

0082

モノのインターネット(IoT)コンピューティング環境内の分散処理リソースを制御するためのシステムもまた、提供され、集約コンピューティング要件を複数のタスクにパーティション化し、タスクをプール内に置くように構成される、CPUと、それぞれ、CPUとの直接通信を伴わずに、プールからタスクを先回りして読み出すように構成される、一意の専用エージェントを有する、複数のデバイスとを含む。

0083

本発明者に把握される最良の形態を含む、種々の実施形態を可能にする説明が例証されたが、本発明の範囲から逸脱することなく、種々の変更および修正が成され得、均等物が種々の要素に対して代用され得ることが、当業者によって理解されるであろう。したがって、本明細書に開示される本発明は、開示される特定の実施形態に限定されず、本発明は、添付される請求項の文字通りかつ同等の範囲内に該当する全ての実施形態を含むであろうことが意図される。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ