以降の詳細な説明においては、添付の図面を参照し、それらの図面は、本明細書の一部を形成している。それらの図面においては、同様のシンボルは、文脈によって別段の内容が示されない限り、典型的には同様のコンポーネントを識別する。詳細な説明、図面、および特許請求の範囲に記載されている例示的な実施形態は、限定することを意図されてはいない。本明細書において提示されている主題の趣旨または範囲から逸脱することなく、その他の実施形態を利用することができ、その他の変更を行うことができる。一般的に本明細書において説明され図において示されている本開示の複数の態様は、さまざまな異なる構成で構成すること、代用すること、組み合わせること、分割すること、および設計することが可能であり、それらの構成のすべては、本明細書において明示的に考慮されているということが容易に理解できるであろう。
本開示は一般に、とりわけ、マルチコア環境におけるプロセスマネージメントに関連した方法、装置、システム、デバイス、およびコンピュータプログラム製品に引き付けられている。
かいつまんで言えば、マルチコア環境における直観的なプロセスマネージメントメカニズムに関するテクノロジーについて一般的に説明する。いくつかの例においては、複数のディスプレイスクリーンをマルチコアプロセッサの個々のコアに関連付けることができる。アプリケーションウィンドウまたはアプリケーションアイコンなど、アプリケーションプログラムに関連付けられているグラフィカル要素が、複数のディスプレイスクリーンのうちの1つの上に配置されている場合には、そのアプリケーションプログラムのプロセスを、マルチコアプロセッサの関連付けられているコアに割り振ること、および/またはマルチコアプロセッサの関連付けられているコアによって実行することが可能である。ユーザは、そのアプリケーションプログラムに関連付けられているグラフィカル要素を、ユーザインターフェースのドラッグアンドドロップオペレーション(または、その他のなんらかのオペレーション、たとえばカットアンドペーストなど)によって、ディスプレイスクリーンのうちの1つから別のディスプレイスクリーンへ効果的に移動させることができる。ユーザによるそのような操作を利用して、アプリケーションプログラムのプロセスが、別のディスプレイスクリーンに関連付けられているコアに割り振られるようにすることができ、ひいては、ユーザは、グラフィカル要素をディスプレイスクリーンどうしの間において移動させることによって、直観的にプロセスとコアの割り振りを管理して個々のコアの負荷をコントロールできるようになり得る。たとえば、ユーザが、スライド作成アプリケーションプログラムを介してプレゼンテーションスライド内に動画を組み込んでいる間に、Eメールアプリケーションプログラムを介して、Eメール内に含まれている大きなサイズの添付ファイルをダウンロードするような状況(Eメールアプリケーションプログラムおよびスライド作成アプリケーションプログラムの両方が、マルチコアプロセッサの1つのコアに割り振られている場合)は、スライド作成アプリケーションプログラムのオペレーションにおける停止をもたらす場合がある。そのようなケースにおいては、ユーザは、Eメールアプリケーションプログラムまたはスライド作成アプリケーションプログラムのどちらかをマルチコアプロセッサの別のコアに割り振ることを、対応するアプリケーションウィンドウを、マルチコアプロセッサのその別のコアに関連付けられている別のディスプレイスクリーンへ移動させることによって行うことができ、それによってユーザは、トラブルなく作業を続けることができる。
図1は、本明細書に記載されている少なくともいくつかの実施形態に従って構成されている、マルチコア環境におけるプロセスマネージメントメカニズムを使用するように構成されている説明例のシステムを概略的に示している。
示されているように、システム100は、マルチコアプロセッサ110を含むことができる。マルチコアプロセッサ110は、複数のプロセッサコア120−1、120−2、...、120−nを含むことができる。プロセッサコア120−1、120−2、...、120−nのそれぞれは、実際のコアまたはバーチャルコアとすることができる。
システム100は、複数のディスプレイスクリーン130−1、130−2、...、130−nをさらに含むことができる。いくつかの実施形態においては、ディスプレイスクリーン130−1、130−2、...、130−nを複数のディスプレイデバイス上にそれぞれ表示することができる。いくつかの実施形態においては、ディスプレイスクリーン130−1、130−2、...、130−nのすべてを単一のディスプレイデバイスにマップすることができる。そのようなケースにおいては、単一のディスプレイデバイスを用いて一度にディスプレイスクリーン130−1、130−2、...、130−nのうちの1つのみをアクティブにすることができ、または単一のディスプレイデバイス上に一度にディスプレイスクリーン130−1、130−2、...、130−nのうちの複数を表示することができる。
いくつかの実施形態においては、ディスプレイスクリーン130−1、130−2、...、130−nは、デスクトップスクリーンを含むことができる。その他のいくつかの実施形態においては、ディスプレイスクリーン130−1、130−2、...、130−nは、タスクバーを含むことができる。限定ではなく、例として、それらのタスクバーは、タッチスクリーンディスプレイデバイス上に表示することができる。
いくつかの実施形態においては、ディスプレイスクリーン130−1、130−2、...、130−nは、アプリケーションプログラムに関連付けられているグラフィカル要素140−1a、140−1b、140−2a、140−2b、...、140−naを表示することができる。いくつかの実施形態においては、グラフィカル要素140−1a、140−1b、140−2a、140−2b、...、140−naは、複数のアプリケーションウィンドウを含むことができ、それらのアプリケーションウィンドウのそれぞれは、1つのアプリケーションプログラムに関連付けられている。それぞれのアプリケーションウィンドウは、デスクトップスクリーンのうちの1つの上に表示することができる。その他のいくつかの実施形態においては、グラフィカル要素140−1a、140−1b、140−2a、140−2b、...、140−naは、複数のアプリケーションアイコンを含むことができ、それらのアプリケーションアイコンのそれぞれは、1つのアプリケーションプログラムに関連付けられている。それぞれのアプリケーションアイコンは、タスクバーのうちの1つの上に表示することができる。
いくつかの実施形態においては、ディスプレイスクリーン130−1、130−2、...、130−nのそれぞれは、プロセッサコア120−1、120−2、...、120−nのそれぞれに対応することができる。限定ではなく、例として、図1において示されているように、ディスプレイスクリーン130−1は、プロセッサコア120−1に対応することができ、ディスプレイスクリーン130−2は、プロセッサコア120−2に対応することができ、ディスプレイスクリーン130−nは、プロセッサコア120−nに対応することができる。いくつかの実施形態においては、ディスプレイスクリーン130−1、130−2、...、130−nのうちの1つの上にグラフィカル要素が表示されているアプリケーションプログラムの少なくとも1つのプロセスを、プロセッサコア120−1、120−2、...、120−nのうちの対応するプロセッサコアによって実行することができる。限定ではなく、例として、図1において示されているように、グラフィカル要素140−1aおよび140−1bに関連付けられているアプリケーションプログラムの少なくとも1つのプロセスをプロセッサコア120−1によって実行することができ、グラフィカル要素140−2aおよび140−2bに関連付けられているアプリケーションプログラムの少なくとも1つのプロセスをプロセッサコア120−2によって実行することができ、グラフィカル要素140−naに関連付けられているアプリケーションプログラムの少なくとも1つのプロセスをプロセッサコア120−nによって実行することができる。
いくつかの実施形態においては、ユーザは、グラフィカル要素140−1a、140−1b、140−2a、140−2b、...、140−naの場所をディスプレイスクリーン130−1、130−2、...、130−nの間において変更することによって、プロセス/コアの割り振りを管理することができる。限定ではなく、例として、ユーザが、ディスプレイスクリーン130−1上に配置されているグラフィカル要素140−1aをディスプレイスクリーン130−2へ効果的に移動させた場合、すなわち、グラフィカル要素140−1aが、ユーザ入力に基づいてディスプレイスクリーン130−1からディスプレイスクリーン130−2へ移動された場合には、グラフィカル要素140−1aに関連付けられているアプリケーションプログラムの少なくとも1つのプロセスを、ディスプレイスクリーン130−2に対応するプロセッサコア120−2に割り振って、そのプロセッサコア120−2によって実行することができる。
いくつかの実施形態においては、ユーザは、グラフィカルユーザインターフェースシステムを通じてグラフィカル要素140−1a、140−1b、140−2a、140−2b、...、140−naをディスプレイスクリーン130−1、130−2、...、130−nの間において効果的に移動させることができる。限定ではなく、例として、ユーザは、グラフィカル要素140−1aをディスプレイスクリーン130−1からドラッグして、グラフィカル要素140−1aをディスプレイスクリーン130−2内にドロップすることによって、グラフィカル要素140−1aをディスプレイスクリーン130−1からディスプレイスクリーン130−2へ効果的に移動させることができる。限定ではなく、例として、ユーザは、マウス、タッチスクリーン、タッチパッド、キーボード、トラックボール、ジョイスティック、またはその他の任意の入力デバイスなどのユーザインターフェースデバイスを介して、ドラッグアンドドロップを実行することができる。限定ではなく、例として、ユーザは、所定のジェスチャーを行うことによって、グラフィカル要素140−1aをディスプレイスクリーン130−1からディスプレイスクリーン130−2へ効果的に移動させることができる。すなわち、グラフィカル要素140−1aは、ユーザのジェスチャー入力に基づいてディスプレイスクリーン130−1からディスプレイスクリーン130−2へ移動させることができる。限定ではなく、例として、カメラ、タッチスクリーン、タッチパッド、ジャイロセンサおよび加速度計などのモーションセンサ、または、ジェスチャー認識機能を有するその他の任意の入力デバイスを介して、ジェスチャー入力を認識することができる。
図2は、本明細書に記載されている少なくともいくつかの実施形態に従って構成されている、マルチコア環境におけるプロセスマネージメントメカニズムを使用するように構成されているデスクトップスクリーンの説明例を概略的に示している。
図2を参照すると、ディスプレイデバイス200は、デスクトップスクリーン210−1、210−2、210−3、および210−4を一度に表示することができる。デスクトップスクリーン210−1、210−2、210−3、および210−4のそれぞれは、マルチコアプロセッサ内に含まれているプロセッサコアのうちの1つに関連付けることができる。いくつかの実施形態においては、アプリケーションウィンドウ220−1、220−2、220−3、および220−4は、デスクトップスクリーン210−1、210−2、210−3、および210−4の上にそれぞれ表示することができる。アプリケーションウィンドウ220−1、220−2、220−3、および220−4のそれぞれに対応する少なくとも1つのアプリケーションプログラムは、それぞれのデスクトップスクリーンに対応するそれぞれのプロセッサコアによって実行することができる。いくつかの実施形態においては、ユーザは、図1に関して上述したように、アプリケーションウィンドウ220−1、220−2、220−3、および220−4をデスクトップスクリーン210−1、210−2、210−3、および210−4の間において効果的に移動させることによって、アプリケーションプログラムの割り振りを管理することができる。
図2は、4つのデスクトップスクリーン210−1、210−2、210−3、および210−4がディスプレイデバイス200上に表示されていることを示しているが、任意の数のデスクトップスクリーンをディスプレイデバイス200上に表示することができるということを当業者なら理解するであろう。また、図2は、デスクトップスクリーン210−1、210−2、210−3、および210−4がディスプレイデバイス200上で2次元の平面に表示されていることを示しているが、デスクトップスクリーン210−1、210−2、210−3、および210−4はディスプレイデバイス200上で3次元の空間に表示することもできるということを当業者なら理解するであろう。
図3は、本明細書に記載されている少なくともいくつかの実施形態に従って構成されている、マルチコア環境におけるプロセスマネージメントメカニズムにおいて採用されるデスクトップスクリーンの説明例を概略的に示している。
図3を参照すると、複数のディスプレイデバイス300−1、300−2、300−3、および300−4は、デスクトップスクリーン310−1、310−2、310−3、および310−4をそれぞれ表示することができる。デスクトップスクリーン310−1、310−2、310−3、および310−4のそれぞれは、マルチコアプロセッサ内に含まれているプロセッサコアのうちの1つに関連付けることができる。いくつかの実施形態においては、アプリケーションウィンドウ320−1、320−2、320−3、および320−4は、デスクトップスクリーン310−1、310−2、310−3、および310−4の上にそれぞれ表示することができる。アプリケーションウィンドウ320−1、320−2、320−3、および320−4のそれぞれに対応する少なくとも1つのアプリケーションプログラムは、それぞれのアプリケーションウィンドウに対応するそれぞれのプロセッサコアによって実行することができる。いくつかの実施形態においては、ユーザは、図1に関して上述したように、アプリケーションウィンドウ320−1、320−2、320−3、および320−4をデスクトップスクリーン310−1、310−2、310−3、および310−4の間において効果的に移動させることによって、アプリケーションプログラムの割り振りを管理することができる。図3は、4つのデスクトップスクリーン310−1、310−2、310−3、および310−4がディスプレイデバイス300−1、300−2、300−3、および300−4上に表示されていることを示しているが、任意の数のデスクトップスクリーンを任意の数のディスプレイデバイス上に表示することができるということを当業者なら理解するであろう。
図4〜図5は、本明細書に記載されている少なくともいくつかの実施形態に従って構成されている、マルチコア環境におけるプロセスマネージメントメカニズムとともに機能するように構成されているポータブル電子デバイスの説明例を概略的に示している。
図4を参照すると、ポータブル電子デバイス400は、ディスプレイデバイス410と、複数のプロセッサコア(図示せず)を含むマルチコアプロセッサ(図示せず)とを含むことができる。限定ではなく、例として、ポータブル電子デバイス400は、セルラー電話デバイス、携帯情報端末デバイス、および/またはハンドヘルドビデオゲームデバイスから構成されているグループから選択することができる。
いくつかの実施形態においては、ディスプレイデバイス410は、タッチスクリーンディスプレイデバイスとすることができる。いくつかの実施形態においては、ディスプレイデバイス410は、タスクバー420および422と、アプリケーションプログラムにそれぞれ関連付けられているアプリケーションアイコン430、432、434、436、438、440、442、および444とを表示することができる。図4は、2個のタスクバー420および422と、8個のアプリケーションアイコン430、432、434、436、438、440、442、および444とがディスプレイデバイス410上に表示されていることを示しているが、任意の数のタスクバーと、任意の数のアプリケーションアイコンとをディスプレイデバイス410上に表示することができるということを当業者なら理解するであろう。また、図4は、2個のタスクバー420および422が、ポータブル電子デバイス400内に含まれているディスプレイデバイス410上に表示されていることを示しているが、1つのタスクバーは、ディスプレイデバイス410上に表示されており、その一方で、別のタスクバーは、ポータブル電子デバイス400に動作可能に結合されている外部ディスプレイデバイス上に表示されるということを当業者なら理解するであろう。
いくつかの実施形態においては、タスクバー420は、マルチコアプロセッサの第1のプロセッサコア(図示せず)に対応することができ、タスクバー422は、マルチコアプロセッサの第2のプロセッサコア(図示せず)に対応することができる。いくつかの実施形態においては、タスクバー420内に配置されているアプリケーションアイコンに関連付けられているいくつかのアプリケーションプログラムは、第1のプロセッサコアによって実行することができ、その一方で、タスクバー422内に配置されているアプリケーションアイコンに関連付けられているその他のアプリケーションプログラムは、第2のプロセッサコアによって実行することができる。たとえば、図4において示されているように、タスクバー420内に配置されているアプリケーションアイコン430、432、434、および436に関連付けられているアプリケーションプログラムは、第1のプロセッサコアによって実行することができ、その一方で、タスクバー422内に配置されているアプリケーションアイコン438、440、442、および444に関連付けられているその他のアプリケーションプログラムは、第2のプロセッサコアによって実行することができる。
いくつかの実施形態においては、ユーザは、アプリケーションアイコン430、432、434、436、438、440、442、および444をタスクバー420および422の間において効果的に移動させることによって、ポータブル電子デバイス400上で実行されるアプリケーションプログラムの割り振りを管理することができる。限定ではなく、例として、ユーザが、タスクバー420内に配置されているアプリケーションアイコン、たとえば、アプリケーションアイコン436をタスクバー422へ効果的に移動させた場合には、アプリケーションアイコン436に関連付けられているアプリケーションプログラムの少なくとも1つのプロセスを、タスクバー422に対応する第2のプロセッサコア(図示せず)に割り振って、その第2のプロセッサコアによって実行することができる。
いくつかの実施形態においては、ユーザは、グラフィカルユーザインターフェースシステムを通じてアプリケーションアイコン430、432、434、436、438、440、442、および444をタスクバー420および422の間において効果的に移動させることができる。限定ではなく、例として、ユーザは、アプリケーションアイコンをタスクバー420からドラッグして、アプリケーションアイコンをタスクバー422内にドロップすることによって、アプリケーションアイコンをタスクバー420からタスクバー422へ効果的に移動させることができる。限定ではなく、例として、ユーザは、所定のジェスチャーを行うことによって、アプリケーションアイコンをタスクバー420からタスクバー422へ効果的に移動させることができ、すなわち、アプリケーションアイコンは、ユーザのジェスチャー入力に基づいてタスクバー420からタスクバー422へ移動させることができる。限定ではなく、例として、ユーザは、アプリケーションアイコン430をドラッグして、円を描くことによって、アプリケーションアイコン432、434、および436を一括してタスクバー420からタスクバー422へ効果的に移動させること、すなわち、アプリケーションアイコン430を除いたその他のすべてのアプリケーションアイコンをタスクバー420からタスクバー422へ移動させることが可能である。ジェスチャー入力に基づいてアプリケーションアイコン432、434、および436をそのように移動させた例示的な結果が、図5において示されている。図5において示されている例では、タスクバー420内に配置されているアプリケーションアイコン430に関連付けられているアプリケーションプログラムの少なくとも1つのプロセスを第1のプロセッサコア(図示せず)によって実行することができ、その一方で、タスクバー422内に配置されているアプリケーションアイコン432、434、436、438、440、442、および444に関連付けられているアプリケーションプログラムの少なくとも1つのプロセスを第2のプロセッサコア(図示せず)によって実行することができる。
いくつかの実施形態においては、アプリケーションアイコン430、432、434、436、438、440、442、および444は、ポータブル電子デバイス400の動きに基づいてタスクバー420および422の間において移動させることができる。限定ではなく、例として、ポータブル電子デバイス400は、ジャイロセンサ(図示せず)を含むことができ、そのジャイロセンサは、ポータブル電子デバイス400の向きを検知するように構成することができる。ユーザがポータブル電子デバイス400を傾けた場合には、ジャイロセンサ(図示せず)は、ポータブル電子デバイス400の向きの変化を検知することができる。そのようなケースにおいては、アプリケーションアイコン430、432、434、436、438、440、442、および444は、ジャイロセンサ(図示せず)によって検知された向きの変化に基づいてタスクバー420および422の間において移動させることができる。限定ではなく、例として、ユーザは、アプリケーションアイコン430を指で押さえたままポータブル電子デバイス400を下に傾けることによって、アプリケーションアイコン432、434、および436を一括してタスクバー420からタスクバー422へ効果的に移動させること、すなわち、アプリケーションアイコン430を除いたその他のすべてのアプリケーションアイコンをタスクバー420からタスクバー422へ移動させることが可能である。ポータブル電子デバイス400の向きの変化に基づいてアプリケーションアイコン432、434、および436をそのように移動させた結果は、図5において示されている例と同様になると言える。
図6は、本明細書に記載されている少なくともいくつかの実施形態に従って構成されている、マルチコア環境におけるプロセスマネージメントメカニズムとともに機能するように構成されている説明例のポータブル電子デバイスを概略的に示している。図6を参照すると、ポータブル電子デバイス400は、ディスプレイデバイス410と、複数のプロセッサコア(図示せず)を含むマルチコアプロセッサ(図示せず)とを含むことができる。
いくつかの実施形態においては、ディスプレイデバイス410は、タッチスクリーンディスプレイデバイスとすることができる。いくつかの実施形態においては、ディスプレイデバイス410は、複数のタスクバー620、622、および624と、アプリケーションプログラムにそれぞれ関連付けられている複数のアプリケーションアイコン630、632、634、636、638、640、642、644、646、648、650、652、および654とを表示することができる。限定ではなく、例として、図6において示されているように、アプリケーションアイコン630、632、634、636、638、640、および642は、タスクバー620内に配置することができ、アプリケーションアイコン644、646、648、および650は、タスクバー622内に配置することができ、アプリケーションアイコン652および654は、タスクバー624内に配置することができる。図6は、3個のタスクバーと、13個のアプリケーションアイコンとがディスプレイデバイス410上に表示されていることを示しているが、任意の数のタスクバーと、任意の数のアプリケーションアイコンとをディスプレイデバイス410上に表示することができるということを当業者なら理解するであろう。また、図6は、複数のタスクバーが、ポータブル電子デバイス400内に含まれているディスプレイデバイス410上に表示されていることを示しているが、それらのタスクバーのうちのいくつかは、ディスプレイデバイス410上に表示されており、その一方で、その他のタスクバーは、ポータブル電子デバイス400に動作可能に結合されている少なくとも1つの外部ディスプレイデバイス上に表示されるということを当業者なら理解するであろう。
いくつかの実施形態においては、タスクバー620は、マルチコアプロセッサの第1のプロセッサコア(図示せず)に対応することができ、タスクバー622は、マルチコアプロセッサの第2のプロセッサコア(図示せず)に対応することができ、タスクバー624は、マルチコアプロセッサの第3のプロセッサコア(図示せず)に対応することができる。そのようなケースにおいては、タスクバー620内に配置されているアプリケーションアイコンに関連付けられているいくつかのアプリケーションプログラムは、第1のプロセッサコアによって実行することができ、タスクバー622内に配置されているアプリケーションアイコンに関連付けられているその他のアプリケーションプログラムは、第2のプロセッサコアによって実行することができ、タスクバー624内に配置されているアプリケーションアイコンに関連付けられているその他のアプリケーションプログラムは、第3のプロセッサコアによって実行することができる。たとえば、図6において示されているように、タスクバー620内に配置されているアプリケーションアイコン630、632、634、636、638、640、および642に関連付けられているアプリケーションプログラムは、第1のプロセッサコアによって実行することができ、タスクバー622内に配置されているアプリケーションアイコン644、646、648、および650に関連付けられているアプリケーションプログラムは、第2のプロセッサコアによって実行することができ、タスクバー624内に配置されているアプリケーションアイコン652および654に関連付けられているアプリケーションプログラムは、第3のプロセッサコアによって実行することができる。
いくつかの実施形態においては、ユーザは、アプリケーションアイコン630、632、634、636、638、640、642、644、646、648、650、652、および654をタスクバー620、622、および624の間において効果的に移動させることによって、ポータブル電子デバイス400上で実行されるアプリケーションプログラムの割り振りを管理することができる。限定ではなく、例として、ユーザが、タスクバー620内に配置されているアプリケーションアイコン、たとえば、アプリケーションアイコン636をタスクバー622へ効果的に移動させた場合には、アプリケーションアイコン636に関連付けられているアプリケーションプログラムの少なくとも1つのプロセスを、タスクバー622に対応する第2のプロセッサコア(図示せず)に割り振って、その第2のプロセッサコアによって実行することができる。
いくつかの実施形態においては、タスクバー620、622、および624は、その所望の負荷ステータスを示すように選択されている色を伴ってレンダリングすることができる。限定ではなく、例として、あるタスクバーに対応するプロセッサコアが第1のステータス状態(たとえば、通常の状態)にある場合には、そのタスクバーは、第1の色(たとえば、緑色)でレンダリングすることができる。限定ではなく、例として、あるタスクバーに対応するプロセッサコアが第2のステータス状態(たとえば、比較的多数のプロセスがそのプロセッサコアに割り振られて、そのプロセッサコアによって実行されている、ビジーな状態)にある場合には、そのタスクバーは、第2の色(たとえば、黄色)でレンダリングすることができる。限定ではなく、例として、あるタスクバーに対応するプロセッサコアが第3のステータス状態(たとえば、非常に多数のプロセスがそのプロセッサコアに割り振られて、そのプロセッサコアによって実行されている、非常にビジーな状態)にある場合には、そのタスクバーは、第3の色(たとえば、赤色)でレンダリングすることができる。それらの色は、緑色、黄色、および赤色に限定されないということを当業者なら理解するであろう。その上、「通常」、「ビジー」、および「非常にビジー」という上述のステータス状態よりも多くのまたは少ないステータス状態も考えられる。
いくつかの実施形態においては、ディスプレイデバイス410は、コンテキストメニューバー660を表示するようにさらに構成することができる。限定ではなく、例として、ユーザは、たとえば、ディスプレイデバイス410を押したまま保持することなど、所定のジェスチャーを行うことによって、コンテキストメニューバー660の表示をトリガーすることができる。
いくつかの実施形態においては、コンテキストメニューバー660は、いくつかの所定のタスク割り当てスキームをユーザに提供するためのコンテキストメニューアイコン670、672、および674を含むことができる。限定ではなく、例として、コンテキストメニューアイコン670は、加重タスク割り当てスキームに関連付けることができ、コンテキストメニューアイコン672は、均等タスク割り当てスキームに関連付けることができ、コンテキストメニューアイコン674は、使用頻度タスク割り当てスキームに関連付けることができる。
限定ではなく、例として、ユーザがコンテキストメニューアイコン670(たとえば、加重タスク割り当てスキーム)を選択した場合には、アプリケーションプログラムの少なくとも1つのプロセスを、加重タスク割り当てスキームに従って、第1、第2、および第3のプロセッサコアに割り振って、第1、第2、および第3のプロセッサコアによって実行することができる。そのようなケースにおいては、1つのプロセッサコアに割り振られるプロセスの数は、別のプロセッサコアに割り振られるプロセスの数とは異なると言える。すなわち、第1、第2、および第3のプロセッサコアのそれぞれは、別々の数のプロセスを実行することができる。限定ではなく、例として、最も少ない数のプロセスを第1のプロセッサコアに割り振って、第1のプロセッサコアによって実行することができ、その一方で、最も多い数のプロセスを第3のプロセッサコアに割り振って、第3のプロセッサコアによって実行することができる。そのようなケースにおいては、第1のプロセッサコアは、最も速いスピードで機能することができ、その一方で、第3のプロセッサコアは、最も遅いスピードで機能することができる。
限定ではなく、例として、ユーザがコンテキストメニューアイコン672(たとえば、均等タスク割り当てスキーム)を選択した場合には、アプリケーションプログラムの少なくとも1つのプロセスを、均等タスク割り当てスキームに従って、第1、第2、および第3のプロセッサコアに割り振って、第1、第2、および第3のプロセッサコアによって実行することができる。そのようなケースにおいては、1つのプロセッサコアに割り振られるプロセスの数は、別のプロセッサコアに割り振られるプロセスの数とほとんど同じであると言える。すなわち、第1、第2、および第3のプロセッサコアは、同じまたは同等の数のプロセスを実行することができる。
限定ではなく、例として、ユーザがコンテキストメニューアイコン674(たとえば、使用頻度タスク割り当てスキーム)を選択した場合には、アプリケーションプログラムの少なくとも1つのプロセスが、使用頻度タスク割り当てスキームに従って、第1、第2、および第3のプロセッサコアに割り振られて、第1、第2、および第3のプロセッサコアによって実行される。そのようなケースにおいては、ユーザによって頻繁に使用されるアプリケーションプログラムに関連付けられているプロセスを、最も速いスピードで機能するプロセッサコアに割り振ることができる。
図7は、本明細書に記載されている少なくともいくつかの実施形態による、マルチコア環境におけるプロセスマネージメントメカニズムを利用するように構成されている電子デバイスの説明例の概略ブロック図を示している。示されているように、電子デバイス700は、プロセッサ710、メモリ720、グラフィカルユーザインターフェース(GUI)システム730、プロセス/コア割り振りモジュール740、およびオペレーティングシステム(OS)750を含むことができる。さまざまなコンポーネントは、別々のコンポーネントとして示されているが、所望の実施態様に応じて、さらなるコンポーネントへと分割すること、より少ないコンポーネントへと統合すること、または省略することが可能である。
プロセッサ710は、メモリ720内に格納されているアプリケーションプログラムの命令を実行するように構成することができる。いくつかの実施形態においては、プロセッサ710は、複数のプロセッサコア760−1、760−2、...、760−nを含むマルチコアプロセッサとすることができる。プロセッサコア760−1、760−2、...、760−nのそれぞれは、実際のコアまたはバーチャルコアとすることができる。
メモリ720は、プロセッサ710に動作可能に結合することができ、少なくとも1つのプロセスを含むアプリケーションプログラムを格納するように構成することができる。限定ではなく、例として、メモリ720は、揮発性メモリ(たとえばRAM)、不揮発性メモリ(たとえばROM、フラッシュメモリなど)、またはそれらの任意の組合せを含む任意のタイプのものとすることができる。
グラフィカルユーザインターフェースシステム730は、たとえば、デスクトップスクリーンまたはタスクバーなど、複数のディスプレイスクリーン(図示せず)を提供するように構成することができる。いくつかの実施形態においては、それらの複数のディスプレイスクリーンは、プロセッサコア760−1、760−2、...、760−nにそれぞれ対応することができる。
いくつかの実施形態においては、グラフィカルユーザインターフェースシステム730は、アプリケーションマネージメントモジュール770を含むことができる。アプリケーションマネージメントモジュール770は、メモリ720内に格納されているアプリケーションプログラムの少なくとも1つのプロセスに関連付けられているグラフィカル要素(たとえば、アプリケーションウィンドウまたはアプリケーションアイコンなど)の位置を管理するように構成することができる。
いくつかの実施形態においては、グラフィカルユーザインターフェースシステム730は、ディスプレイスクリーンマネージメントモジュール780をさらに含むことができる。ディスプレイスクリーンマネージメントモジュール780は、アプリケーションマネージメントモジュール770に動作可能に結合することができ、アプリケーションプログラムの少なくとも1つのプロセスと、複数のディスプレイスクリーンのうちの1つとの間における関連付けを管理するように構成することができる。
プロセス/コア割り振りモジュール740は、アプリケーションプログラムの少なくとも1つのプロセスに関連付けられているグラフィカル要素の、複数のディスプレイスクリーンの間における移動を検知するように構成することができる。いくつかの実施形態においては、プロセス/コア割り振りモジュール740は、ユーザ入力に基づいてグラフィカル要素の移動を検知するように構成することができる。限定ではなく、例として、そのユーザ入力は、第1のディスプレイスクリーンからのグラフィカル要素の移動の開始をドラッグまたはその他の形で引き起こして、それに続いて、第2のディスプレイスクリーンへのグラフィカル要素の移動の位置決めまたは終了をドロップまたはその他の形で引き起こすこと、とすることができる。
オペレーティングシステム750は、プロセスマネージメントモジュール790を含むことができる。プロセスマネージメントモジュール790は、アプリケーションプログラムの少なくとも1つのプロセスをプロセッサコア760−1、760−2、...、760−nのうちの1つに割り振るように構成することができる。いくつかの実施形態においては、第1のディスプレイスクリーンおよび第2のディスプレイスクリーンが、それぞれ第1のプロセッサコアおよび第2のプロセッサコアに対応していて、アプリケーションプログラムの少なくとも1つのプロセスに関連付けられているグラフィカル要素の、第1のディスプレイスクリーンから第2のディスプレイスクリーンへの移動が検知されるケースにおいては、プロセスマネージメントモジュール790は、グラフィカル要素の移動の検知に基づいて、アプリケーションプログラムのその少なくとも1つのプロセスを第2のコアに割り振ることができる。
いくつかの実施形態においては、プロセス/コアの割り振りをユーザに完全にコントロールさせる代わりに、ユーザは、タスクの優先度を指定することができ、プロセスマネージメントモジュール790は、指定された優先度を考慮して割り振りを実行することができる。
図8は、本明細書に記載されている少なくともいくつかの実施形態に従って構成されている、マルチコア環境におけるプロセスマネージメントメカニズムを機能させるように適合されている方法の例示的な流れ図を示している。図8における例示的な方法800は、たとえば、第1のコアおよび第2のコアを含むプロセッサと、オペレーティングシステムと、オペレーティングシステムに動作可能に結合されているプロセス/コア割り振りモジュールと、第1のコアおよび第2のコアにそれぞれ関連付けられている第1のディスプレイスクリーンおよび第2のディスプレイスクリーンを提供するように構成されている、プロセス/コア割り振りモジュールに動作可能に結合されたグラフィカルユーザインターフェースシステムとを含む電子デバイスを使用して、実施することができる。限定ではなく、例として、ディスプレイスクリーンは、デスクトップスクリーンまたはタスクバーを含むことができる。
方法800は、ブロックS810、S820、S830、S840、および/またはS850のうちの1つまたは複数によって示されているような1つまたは複数のオペレーション、アクション、または機能を含むことができる。さまざまなブロックは、別々のブロックとして示されているが、所望の実施態様に応じて、さらなるブロックへと分割すること、より少ないブロックへと統合すること、または省略することが可能である。方法800は、ブロックS810において開始することができる。
ブロックS810においては、電子デバイスは、第1のコアによって実行される、アプリケーションプログラムの少なくとも1つのプロセスに関連付けられているグラフィカル要素を第1のディスプレイスクリーン上に表示するように適合することができる。いくつかの実施形態においては、グラフィカルユーザインターフェースシステムが、そのグラフィカル要素を第1のディスプレイスクリーン上に表示することができる。限定ではなく、例として、そのグラフィカル要素は、デスクトップスクリーン上に表示されるアプリケーションウィンドウ、またはタスクバー上に表示されるアプリケーションアイコンを含むことができる。ブロックS810の後には、ブロックS820が続くことができる。
ブロックS820においては、電子デバイスは、第1のディスプレイスクリーンから第2のディスプレイスクリーンへのグラフィカル要素の移動を検知するように適合することができる。いくつかの実施形態においては、プロセス/コア割り振りモジュールが、グラフィカルユーザインターフェースシステムを通じたユーザ入力に基づいて、第1のディスプレイスクリーンから第2のディスプレイスクリーンへのグラフィカル要素の移動を検知することができる。いくつかの実施形態においては、そのユーザ入力は、第1のディスプレイスクリーンからのグラフィカル要素の移動の開始をドラッグまたはその他の形で引き起こして、それに続いて、第2のディスプレイスクリーンへのグラフィカル要素の移動の位置決めまたは終了をドロップまたはその他の形で引き起こすことを含むことができる。いくつかの実施形態においては、そのユーザ入力は、電子デバイス内に含まれているタッチスクリーンディスプレイデバイス上で検知されるジェスチャーに関連付けることができる。いくつかの実施形態においては、そのユーザ入力は、電子デバイス内に含まれているジャイロセンサによって検知される電子デバイスの動きに関連付けることができる。ブロックS820の後には、ブロックS830が続くことができる。
ブロックS830においては、電子デバイスは、プロセス/コア割り振り命令を生成するように適合することができる。いくつかの実施形態においては、プロセス/コア割り振りモジュールが、検知された移動に基づいてプロセス/コア割り振り命令を生成することができる。ブロックS830の後には、ブロックS840が続くことができる。
ブロックS840においては、電子デバイスは、アプリケーションプログラムの少なくとも1つのプロセスを第2のコアに割り振るように適合することができる。いくつかの実施形態においては、オペレーティングシステムが、プロセス/コア割り振りモジュールからプロセス/コア割り振り命令を受け取って、アプリケーションプログラムの少なくとも1つのプロセスを第2のコアに割り振ることができる。ブロックS840の後には、ブロックS850が続くことができる。
ブロックS850においては、電子デバイスは、第2のコアによってアプリケーションプログラムの少なくとも1つのプロセスを実行するように適合することができる。
図8は、デュアルコアプロセッサおよび2つのディスプレイスクリーンが、採用されている2つのコアにそれぞれ対応していることを示しているが、任意の数のコアおよび任意の数のディスプレイスクリーンを採用することができるということを当業者なら理解するであろう。また、図8は、ユーザがグラフィカル要素を第1のディスプレイスクリーンから第2のディスプレイスクリーンへ移動させることを示しているが、上述の例示的な方法は、ユーザがグラフィカル要素を第2のディスプレイスクリーンから第1のディスプレイスクリーンへ移動させるケースにおいても適切に適用することができるということを当業者なら理解するであろう。
本明細書において開示されているこの方法およびその他の方法にとって、これらの方法において実行される機能は、別の順序でも実施することができるということを当業者なら理解するであろう。さらに、概説されているステップおよびオペレーションは、例として提供されているにすぎず、それらのステップおよびオペレーションのうちのいくつかは、開示されている実施形態の本質を損なうことなく、任意選択とすること、より少ないステップおよびオペレーションへと統合すること、またはさらなるステップおよびオペレーションへと拡張することが可能である。
図9は、本明細書に記載されている少なくともいくつかの実施形態に従って構成されている、マルチコア環境におけるプロセスマネージメントメカニズムを機能させるように構成することができる例示的なコンピューティングシステムを示す概略ブロック図を示している。図9において示されているように、コンピュータ900は、プロセッサ910、メモリ920、および1つまたは複数のドライブ930を含むことができる。コンピュータ900は、従来のコンピュータシステム、組み込み型コントロールコンピュータ、ラップトップ、またはサーバコンピュータ、モバイルデバイス、セットトップボックス、キオスク、乗り物情報システム、モバイル電話、カスタマイズされたマシン、またはその他のハードウェアプラットフォームとして実装することができる。
ドライブ930およびそれらの関連付けられているコンピュータストレージ媒体は、コンピュータ900のためのコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの格納を提供することができる。ドライブ930は、グラフィカルユーザインターフェース(GUI)システム940、プロセス/コア割り振りモジュール950、オペレーティングシステム(OS)960、およびアプリケーションプログラム970を含むことができる。グラフィカルユーザインターフェース(GUI)システム940は、アプリケーションマネージメントモジュール942およびディスプレイスクリーンマネージメントモジュール944を含むことができる。オペレーティングシステム(OS)960は、プロセスマネージメントモジュール962を含むことができる。
コンピュータ900は、ユーザ入力デバイス980をさらに含むことができ、そのユーザ入力デバイス980を通じて、ユーザは、コマンドおよびデータを入力することができる。入力デバイスは、電子デジタイザ、カメラ、マイクロフォン、キーボード、および、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイスを含むことができる。その他の入力デバイスは、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナなどを含むことができる。
これらおよびその他の入力デバイスは、システムバスに結合されているユーザ入力インターフェースを通じてプロセッサ910に結合することができるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、その他のインターフェースおよびバス構造によって結合することもできる。コンピュータ900などのコンピュータは、出力周辺インターフェース985などを通じて結合することができる、ディスプレイデバイスなどのその他の周辺出力デバイスを含むこともできる。
コンピュータ900は、ネットワークインターフェース990に結合されているリモートコンピュータなど、1つまたは複数のコンピュータへの論理接続を使用して、ネットワーク化された環境において機能することができる。そのリモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、コンピュータ900に関連して上述した要素のうちの多くまたはすべてを含むことができる。
ネットワーキング環境は、オフィス、エンタープライズワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イントラネット、およびインターネットにおいてよく見受けられる。LANまたはWLANネットワーキング環境において使用される場合には、コンピュータ900は、ネットワークインターフェース990またはアダプタを通じてLANに結合することができる。WANネットワーキング環境において使用される場合には、コンピュータ900は、典型的には、インターネットまたはネットワーク995などのWAN上で通信を確立するためのモデムまたはその他の手段を含む。WANは、インターネット、示されているネットワーク995、さまざまなその他のネットワーク、またはそれらの任意の組合せを含むことができる。コンピュータどうしの間において通信リンク、リング、メッシュ、バス、クラウド、またはネットワークを確立するためのその他のメカニズムを使用することもできるということがわかるであろう。
いくつかの実施形態においては、コンピュータ900は、ネットワーキング環境に結合することができる。コンピュータ900は、ドライブ930またはその他のストレージデバイスに関連付けられている1つまたは複数の物理的なコンピュータ可読ストレージ媒体の1つまたは複数のインスタンスを含むことができる。システムバスは、プロセッサ910がコンピュータ可読ストレージ媒体へ/からコードおよび/またはデータを読み取ることを可能にすることができる。それらの媒体は、任意の適切なテクノロジーを使用して実装されるストレージ要素の形態の装置に相当することができ、そうした任意の適切なテクノロジーとしては、半導体、磁性材料、光学媒体、電気ストレージ、電気化学ストレージ、またはその他の任意のそのようなストレージテクノロジーが含まれるが、それらには限定されない。それらの媒体は、RAM、ROM、フラッシュ、またはその他のタイプの揮発性もしくは不揮発性メモリテクノロジーとして特徴付けられているかどうかを問わず、メモリ920に関連付けられているコンポーネントに相当することができる。それらの媒体は、ストレージドライブ930として実装されるか、またはその他の形で実装されるかを問わず、セカンダリーストレージに相当することもできる。ハードドライブの実装形態は、ソリッドステートとして特徴付けることができ、または磁気的にエンコードされた情報を格納する回転媒体を含むことができる。
プロセッサ910は、任意の数のトランジスタまたはその他の回路素子から構築することができ、それらのトランジスタまたは回路素子は、個々にまたは集合的に任意の数の状態を担うことができる。より具体的には、プロセッサ910は、状態マシンまたは有限状態マシンとして機能することができる。そのようなマシンは、実行可能命令をロードすることによって、第2のマシン、または固有のマシンに変換することができる。それらのコンピュータ実行可能命令は、プロセッサ910が状態どうしの間においてどのように遷移するかを指定して、それによって、プロセッサ910を構成しているトランジスタまたはその他の回路素子を第1のマシンから第2のマシンへ変換することによって、プロセッサ910を変換することができる。いずれのマシンの状態も、ユーザ入力デバイス980、ネットワークインターフェース990、その他の周辺機器、その他のインターフェース、または1人もしくは複数のユーザもしくはその他の行為者から入力を受け取ることによって、変換することもできる。いずれのマシンも、プリンタ、スピーカー、ビデオディスプレイ、またはその他などのさまざまな出力デバイスの状態、またはさまざまな物理的な特徴を変換することもできる。
図10は、本明細書に記載されている少なくともいくつかの実施形態による、マルチコア環境におけるプロセスマネージメントメカニズムを機能させるために利用することができるコンピュータプログラム製品1000を示している。プログラム製品1000は、信号担持伝達媒体1002を含むことができる。信号担持媒体1002は、1つまたは複数の命令1004を含むことができ、それらの命令1004は、たとえば、プロセッサによって実行された場合に、図1〜図9に関して上述した機能を提供することができる。例として、命令1004は、第1のコアに対応する第1のディスプレイスクリーン上で第1のコアによって実行されるアプリケーションプログラムの少なくとも1つのプロセスに関連付けられているグラフィカル要素を表示するための1つもしくは複数の命令、第1のディスプレイスクリーンから、第2のコアに対応する第2のディスプレイスクリーンへのグラフィカル要素の移動を検知するための1つもしくは複数の命令、またはアプリケーションプログラムの少なくとも1つのプロセスを第2のコアに割り振るための1つもしくは複数の命令を含むことができる。したがって、たとえば図7を参照すると、電子デバイス700は、命令1004に応答して、図8において示されているブロックのうちの1つまたは複数に着手することができる。
いくつかの実装形態においては、信号担持媒体1002は、コンピュータ可読媒体1006を含むことができ、コンピュータ可読媒体1006は、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、デジタルテープ、メモリなどであるが、それらには限定されない。いくつかの実装形態においては、信号担持媒体1002は、記録可能媒体1008を含むことができ、記録可能媒体1008は、メモリ、R/W(read/write) CD、R/W DVDなどであるが、それらには限定されない。いくつかの実装形態においては、信号担持媒体1002は、通信媒体1010を含むことができ、通信媒体1010は、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、ワイヤレス通信リンク等)などであるが、それらには限定されない。したがって、たとえば、プログラム製品1000は、RF信号担持媒体1002によって電子デバイス700の1つまたは複数のモジュールに搬送することができ、この場合、信号担持媒体1002は、ワイヤレス通信媒体1010(たとえば、IEEE802.11標準に準拠しているワイヤレス通信媒体)によって搬送される。
本開示は、本出願において説明されている特定の実施形態の観点から限定されるものではなく、それらの実施形態は、さまざまな態様の例示として意図されている。当業者にとっては明らかであろうが、本開示の趣旨および範囲から逸脱することなく、多くの修正および変形を行うことができる。本明細書において列挙されている方法および装置に加えて、本開示の範囲内にある機能的に均等な方法および装置は、前述の説明から当業者にとって明らかであろう。そのような修正および変形は、添付の特許請求の範囲の範疇内に収まるように意図されている。本開示は、添付の特許請求の範囲、ならびに、そのような特許請求の範囲が付与される均等物の全範囲の観点によってのみ限定されるものである。本開示は、特定の方法、試薬、化合物、組成、または生体系(これらは、もちろん、さまざまなものでありうる)に限定されるものではないということを理解されたい。本明細書において使用されている用語は、特定の実施形態を説明することのみを目的としており、限定することを意図されているものではないということも理解されたい。
本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
加えて、本開示の特徴または態様がマーカッシュグループの点から記載されている場合には、それによって、本開示は、そのマーカッシュグループの任意の個々のメンバーまたはメンバーのサブグループの点からも記載されているということを当業者なら認識するであろう。
当業者なら理解するであろうが、書面による説明を提供するという点からなど、ありとあらゆる目的のために、本明細書において開示されているすべての範囲は、ありとあらゆる可能なサブ範囲およびそれらのサブ範囲の組合せも包含する。列挙されているいかなる範囲も、その同じ範囲が、少なくとも2等分、3等分、4等分、5等分、10等分などへと分割されることを十分に記述するものとして、かつ可能にするものとして容易に認識することができる。非限定的な例として、本明細書において論じられているそれぞれの範囲は、下の3分の1、真ん中の3分の1、および上の3分の1などへと容易に分割することができる。やはり当業者なら理解するであろうが、たとえば「まで(up to)」、「少なくとも(at least)」などのすべての言葉は、挙げられている数を含み、上述のように後でサブ範囲へと分割することが可能な範囲を指す。最後に、当業者なら理解するであろうが、範囲は、それぞれの個々のメンバーを含む。したがって、たとえば、1〜3個のセルを有するグループは、1、2、または3個のセルを有するグループを指す。同様に、1〜5個のセルを有するグループは、1、2、3、4、または5個のセルを有するグループを指す、といった具合である。
本開示のさまざまな実施形態は、例示の目的で本明細書に記載されているということ、ならびに、本開示の範囲および趣旨から逸脱することなく、さまざまな修正を行うことができるということが、前述の内容からわかるであろう。したがって、本明細書において開示されているさまざまな実施形態は、限定することを意図するものではなく、真の範囲および趣旨は、添付の特許請求の範囲によって示されている。