(57)【要約】【課題】本発明が解決しようとする課題は、コアの利用効率を向上させた情報処理システムを提供することである。【解決手段】実施形態の情報処理システムは、第１のコアと、前記第１のコアよりもデータ処理性能が低い第２のコアと、前記第１のコアからアクセス可能な第１のメモリと、前記第２のコアからアクセス可能であって、前記第１のメモリよりもレイテンシが長い第２のメモリと、管理プロセッサと、を備える。管理プロセッサは、発行されたタスクを前記第１のコアで実行するか前記第２のコアで実行するか決定し、前記第１のコアで実行すると決定した場合、前記タスクに関連するデータを前記第１のメモリへ転送して前記第１のコアに前記タスクを実行させ、前記第２のコアで実行すると決定した場合、前記発行されたタスクに関連するデータを前記第２のメモリへ転送して前記第２のコアに前記タスクを実行させる。【選択図】図１
2018022345.tif 000002
【特許請求の範囲】
【請求項１】
第１のコアと、
前記第１のコアよりもデータ処理性能が低い第２のコアと、
前記第１のコアからアクセス可能な第１のメモリと、
前記第２のコアからアクセス可能であって、前記第１のメモリよりもレイテンシが長い第２のメモリと、
発行されたタスクを前記第１のコアで実行するか前記第２のコアで実行するか決定し、前記第１のコアで実行すると決定した場合、前記発行されたタスクに関連するデータを前記第１のメモリへ転送して前記第１のコアに前記タスクを実行させ、前記第２のコアで実行すると決定した場合、前記発行されたタスクに関連するデータを前記第２のメモリへ転送して前記第２のコアに前記タスクを実行させる管理プロセッサと、
を備える情報処理システム。
【請求項２】
前記管理プロセッサは、前記発行されたタスクのメタデータに基づいて前記発行されたタスクを前記第１のコアで実行するか前記第２のコアで実行するか決定する請求項１に記載の情報処理システム。
【請求項３】
前記管理プロセッサは、前記第１コア、前記第１メモリ、前記第２コア、前記第２メモリのリソース利用状況に基づいて前記発行されたタスクを前記第１のコアで実行するか前記第２のコアで実行するか決定する請求項１又は請求項２に記載の情報処理システム。
【請求項４】
前記管理プロセッサは、フォアグラウンドで実行するタスクを前記第１コアに実行させ、バックグラウンドで実行するタスクを前記第２コアに実行させる請求項１乃至請求項３の何れか１項に記載の情報処理システム。
【請求項５】
前記第１のメモリは、ＤＲＡＭ、ＳＲＡＭ、Ｍ‐Ｔｙｐｅ ＭＲＡＭのうち少なくとも一方である請求項１乃至請求項４の何れか１項に記載の情報処理システム。
【請求項６】
前記第１のコアは前記第２のメモリへアクセスできず、前記第２のコアは前記第１のメモリへアクセスできない請求項１乃至請求項５の何れか１項に記載の情報処理システム。
【請求項７】
前記第１のコアを複数備え、
前記第１のメモリを複数備え、
前記複数の第１のコアの一つである第３のコアは前記複数の第１のメモリの一つである第３のメモリを主記憶として使用し、
前記複数の第１のコアの一つであって前記第３のコアとは異なる第４のコアは前記複数の第１のメモリの一つであって前記第３のメモリとは異なる第４のメモリを主記憶として使用し、
前記第３のコアは前記第４のメモリへアクセスできず、前記第４のコアは前記第３のメモリへアクセスできない請求項１乃至請求項６の何れか１項に記載の情報処理システム。
【請求項８】
前記第１のコアが前記第１のメモリのアクセスに使用する論理アドレスと前記第１のメモリの物理アドレスとの対応付け及び第２のコアが前記第２のメモリのアクセスに使用する論理アドレスと前記第２のメモリの物理アドレスとの対応付けを行うメモリアクセスコントローラを更に備える請求項１乃至請求項６の何れか１項に記載の情報処理システム。
【請求項９】
前記管理プロセッサは、前記発行されたタスクに関連するデータを前記第１メモリまたは前記第２のメモリへ転送したことを前記メモリアクセスコントローラへ通知し、前記メモリアクセスコントローラは前記通知に対して前記対応付けを行う請求項８に記載の情報処理システム。
【請求項１０】
前記管理プロセッサは、前記発行されたタスクがタスク実行中に前記第１のコアから前記第２のコアへ切り替える必要があるか判定し、切り替える必要があると判定した場合、前記第２のコアへの切り替えの前に前記タスクのテキスト領域のデータを前記第１メモリと前記第２メモリに保存し、実行中のタスクを前記第１のコアから前記第２のコアへ切り替える場合に、前記タスクのデータ領域のデータとスタック領域のデータを前記第２メモリに保存し、前記第２コアへ前記タスクの実行を要求する請求項１乃至請求項６の何れか１項に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理システムに関する。
【背景技術】
【０００２】
動作速度に差がある複数のコアを搭載したヘテロジニアスなマルチコアシステムは、タスク毎に実行に適したコアを利用することで効率のよい処理を実現する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２７２０６６号公報
【特許文献２】特許第４６９１１５３号公報
【特許文献３】特許第５３００００５号公報
【特許文献４】特開２００８−８４００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、コアの利用効率を向上させた情報処理システムを提供することである。
【課題を解決するための手段】
【０００５】
上記課題を達成するために、実施形態の情報処理システムは、第１のコアと、前記第１のコアよりもデータ処理性能が低い第２のコアと、前記第１のコアからアクセス可能な第１のメモリと、前記第２のコアからアクセス可能であって、前記第１のメモリよりもレイテンシが長い第２のメモリと、管理プロセッサと、を備える。管理プロセッサは、発行されたタスクを前記第１のコアで実行するか前記第２のコアで実行するか決定する。前記管理プロセッサは、前記タスクを前記第１のコアで実行すると決定した場合、前記タスクに関連するデータを前記第１のメモリへ転送して前記第１のコアに前記タスクを実行させる。前記管理プロセッサは、前記タスクを前記第２のコアで実行すると決定した場合、前記発行されたタスクに関連するデータを前記第２のメモリへ転送して前記第２のコアに前記タスクを実行させる。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係る情報処理システムの構成を示すブロック図。
【図２】第１の実施形態に係る情報処理システムのタスク実行処理のフローチャート。
【図３】比較例としての情報処理システムの構成を示すブロック図。
【図４】第２の実施形態に係る情報処理システムの構成を示すブロック図。
【図５】第２の実施形態に係る情報処理システムのタスク実行処理のフローチャート。
【図６】第２の実施形態に係る情報処理システムのメモリアクセスコントローラの動作を示すフローチャート。
【図７】第３の実施形態に係る情報処理システムにおける動作概要を説明するための概念図。
【図８】第３の実施形態に係る情報処理システムにおける動作概要を説明するための概念図。
【図９】第３の実施形態に係る情報処理システムのタスク実行処理のフローチャート。
【図１０】第３の実施形態に係る情報処理システムのタスクが実行される動作コアが高速コアから低速コアへ切り替わる場合における処理のフローチャート。
【図１１】第３の実施形態に係る情報処理システムのタスクが実行される動作コアが低速コアから高速コアへ切り替わる場合における処理のフローチャート。
【発明を実施するための形態】
【０００７】
以下、発明を実施するための実施形態について図面を参照して説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態に係る情報処理システムの構成を示すブロック図である。第１の実施形態に係る情報処理システム１は、管理プロセッサ１０と、複数の高速コア２１−１、・・・、２１−Ｍと、複数の高速メモリ３１−１、・・・、３１−Ｍと、複数の低速コア２２−１、・・・、２２−Ｎと、複数の低速メモリ３２−１、・・・、３２−Ｎと、外部メモリ４０と、ＤＭＡＣ５０とを備える。なお、ＭおよびＮは任意の自然数である。
【０００９】
情報処理システム１は、例えば、パーソナルコンピュータやサーバ装置などの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
【００１０】
複数の高速コア２１−１、・・・、２１−Ｍと、複数の高速メモリ３１−１、・・・、３１−Ｍと、複数の低速コア２２−１、・・・、２２−Ｎと、複数の低速メモリ３２−１、・・・、３２−Ｎと、管理プロセッサ１０と、外部メモリ４０と、ＤＭＡＣ５０は基板（不図示）に搭載されてもよい。基板は、単層基板であってもよく、積層基板であってもよい。
【００１１】
以下の説明において、複数の高速コア２１−１、・・・、２１−Ｍのうち１つを特定する必要がある場合は、符号２１−１、・・・、２１−Ｍを使用するが、任意の高速コアを指す場合やある高速コアを他の高速コアと区別しない場合は、符号２１を使用する。
【００１２】
以下の説明において、複数の低速コア２２−１、・・・、２２−Ｎのうち１つを特定する必要がある場合は符号２２−１、・・・、２２−Ｎを使用するが、任意の低速コアを指す場合やある低速コアを他の低速コアと区別しない場合には符号２２を使用する。
【００１３】
以下の説明において、複数の高速メモリ３１−１、・・・、３１−Ｍのうち１つを特定する必要がある場合は、符号３１−Ｍを使用するが、任意の高速メモリを指す場合やある高速メモリを他の高速メモリと区別しない場合は、符号３１を使用する。
【００１４】
以下の説明において、複数の低速メモリ３２−１、・・・、３２−Ｎのうち１つを特定する必要がある場合は符号３２−１、・・・、３２−Ｎを使用するが、任意の低速メモリを指す場合やある低速メモリを他の低速メモリと区別しない場合は、符号３２を使用する。
【００１５】
高速コア２１と低速コア２２は、それぞれ、情報処理システム１の動作を制御する。高速コア２１と低速コア２２は、それぞれ、コアである。コアは、例えば、ＣＰＵ（Central Processing Unit）等のプロセッサである。また、コアはプロセッサコアとも称される。高速コア２１は第１のコアとも称され得る。また、低速コア２２は第２のコアとも称され得る。
【００１６】
高速メモリ３１と低速メモリ３２は、それぞれ、プログラムやデータが記憶されるメモリである。高速メモリ３１は第１のメモリとも称され得る。また、低速メモリ３２は第２のメモリとも称され得る。
【００１７】
高速メモリ３１は高速コア２１がアクセスでき、高速コア２１は高速メモリ３１を主記憶として使用する。低速メモリ３２は低速コア２２がアクセスでき、低速コア２２は低速メモリ３２を主記憶として使用する。主記憶とは、コアが直接アクセスできるメモリのことをいう。
【００１８】
高速コア２１と低速コア２２は、データ処理性能と電力消費量等の性能項目のうち少なくとも一つが異なる。例えば、高速コア２１は、データ処理性能が高く電力消費の大きなコアであり低速コア２２は高速コア２１に比べて低消費電力でデータ処理性能が低い。
【００１９】
性能項目には、例えば、動作周波数、スループット（ＭＩＰＳ値）、バスの周波数、並列処理の度合いが含まれる。
【００２０】
本実施形態に係る情報処理システムは、高速コア２１と低速コア２２の２種類のコアを備えているが、２種類に限らず３種類以上の複数種類のコアを備えるようにしてもよい。さらに、本実施形態に係る情報処理システムは、コアの種類毎に複数個のコアを備えてもよい。
【００２１】
高速メモリ３１と低速メモリ３２は、コアがアクセスする場合の応答時間やバンド幅が異なる。例えば、高速メモリ３１は、高速に応答可能な揮発性メモリであり、例えば、ＳＲＡＭ、ＤＲＡＭである。高速メモリ３１は、ＳＲＡＭであってもよいし、ＤＲＡＭであってもよいし、ＳＲＡＭとＤＲＡＭを組み合わせたメモリであってもよい。また、例えば、Ｍ−ｔｙｐｅ  ＭＲＡＭ（Memory-type  Magnetoresistive Random Access Memory）のような、コアに対してＳＲＡＭ、ＤＲＡＭと同程度または準ずる程度の速度で応答可能なメモリであってもよい。
【００２２】
低速メモリ３２は、ＳＲＡＭやＤＲＡＭと比べて、レイテンシが長いメモリ、つまり、コアがアクセスする場合に応答時間が長いメモリである。低速メモリ３２は、例えば、ＲｅＲＡＭ(Resistance Random Access Memory)、ＰＣＭ（Phase Change Random Access Memory）、ＦｅＲＡＭ(Ferroelectric Random Access Memory)、クロスポイント型メモリ、Ｓ−ｔｙｐｅ  ＭＲＡＭ（Storage-type  Magnetoresistive Random Access Memory)、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、または、コアに対してこれらと同程度の速度で応答可能なメモリ、またはこれらの組み合わせであってもよい。また、低速メモリ３２は、高速メモリ３１に比べて、一般的に容量当たりの価格が低い。
【００２３】
本実施形態に係る情報処理システムは、高速メモリ３１と低速メモリ３２の２種類のメモリを備えているが、２種類に限らず３種類以上の複数種類のメモリを備えるようにしてもよい。さらに、本実施形態に係る情報処理システムは、メモリの種類毎に複数個のコアを対応付けてもよい。
【００２４】
外部メモリ４０は、プログラムやデータを格納する不揮発性の記憶媒体である。外部メモリ４０は、例えば、ハードディスクドライブなどの磁気ディスク、ＮＡＮＤ型フラッシュメモリ、ＤＶＤなどの光学ディスク、磁気テープである。
【００２５】
なお、低速メモリ３２が、不揮発性のメモリであり大容量の場合は、情報処理装置１は、低速メモリ３２にプログラムやデータを格納することにより、外部メモリ４０を省略することができる。
【００２６】
情報処理システム１が電源供給を受けたときに、外部メモリ４０に格納されているプログラムがメモリに読み出され、コアは、メモリに読み出されたプログラムに応じた所定の処理を実行する。
【００２７】
管理プロセッサ１０は、例えば、ＣＰＵ等のプロセッサであり、発行されたタスクの管理を行う。管理プロセッサ１０は、所定のタスクを高速コア２１と低速コア２２のいずれかのコアで実行することに決定した場合、ＤＭＡＣ５０に対して外部メモリ４０に格納されたプログラムやデータを高速メモリ３１と低速メモリ３２のいずれかのメモリに転送することを要求する。
【００２８】
タスクの発行は、例えば、情報処理システム１のユーザによるアプリケーション起動時に当該アプリケーションに対応するタスクの発行が管理プロセッサ１０に通知される場合や、低速コア２２で実行中のプログラムが高速計算を必要とするタスクを実行する際に管理プロセッサ１０に通知される場合に、行われる。
【００２９】
ＤＭＡＣ（Direct Memory Access Controller）５０は、ある記憶媒体に格納されたプログラムやデータを他の記憶媒体へコピーまたは移動する。ＤＭＡＣ５０は、例えば、管理プロセッサ１０から指定されたプログラムやデータを外部メモリ４０から読み出し、高速メモリ３１や低速メモリ３２に転送する。また、管理プロセッサ１０は、ＤＭＡＣ５０を介すること無く、管理プロセッサ１０が、外部メモリ４０に格納された所定のプログラムや所定のデータを高速メモリ３１や低速メモリ３２に転送してもよい。
【００３０】
管理プロセッサ１０と高速コア２１−Ｋ（Ｋは１≦Ｋ≦Ｍを満たす自然数）と高速メモリ３１−Ｋと外部メモリ４０とＤＭＡＣ５０は、それぞれ内部バス６０を介して相互に接続されている。また、管理プロセッサ１０と低速コア２２−Ｌ（Ｌは１≦Ｌ≦Ｎを満たす自然数）と低速メモリ３２−Ｌと外部メモリ４０とＤＭＡＣ５０は、それぞれ内部バス６０を介して相互に接続されている。
【００３１】
なお、情報処理システム１は、内部バス６０の替わりに、ネットワークを介して接続されるように構成されてもよい。また、情報処理システム１は、例えば、メモリ管理ユニット、外部装置とのインタフェース等をさらに備えていてもよい。
【００３２】
情報処理システム１における、高速コア２１と高速メモリ３１、低速コア２２と低速メモリ３２は、それぞれ１対１で対応する。
【００３３】
例えば、高速コア２１−Ｍは高速メモリ３１−Ｍに対応し、高速メモリ３１−Ｍは、高速コア２１−Ｍの主記憶となる。高速メモリ３１−Ｍは、高速コア２１−Ｍが直接アクセスできるメモリであり、高速コア２１−Ｍ以外の高速コア２１や低速コア２２からはアクセスできない。
【００３４】
同様に、例えば、低速コア２２−Ｎは低速メモリ３２−Ｎに対応し、低速メモリ３２−Ｎは、低速コア２２−Ｎの主記憶となる。低速メモリ３２−Ｎは、低速コア２２−Ｎが直接アクセスできるメモリであり、低速コア２２−Ｎ以外の低速コア２２や高速コア２１からはアクセスできない。
【００３５】
なお、本実施形態に係る情報処理システムでは、高速コア２１と低速コア２２と、高速メモリ３１と低速メモリ３２とを備える場合を例として説明しているが、この組み合わせに限定されず、３種類以上のコアとメモリとの組み合わせを備えてもよい。
【００３６】
管理プロセッサ１０は、タスクスケジューラ１１を備える。タスクスケジューラ１１は、発行されたタスクの特性に基づいて、高速コア２１と低速コア２２のうちのどのコアで、発行されたタスクを実行するかを決定する。
【００３７】
タスクスケジューラ１１は、タスクを実行するコアを決定するための判断基準を有する。タスクスケジューラ１１は、タスクの動作する環境、タスクの計算量、メモリ転送量、各々のコアの実行状況等に基づいた判断基準を有し、この判断基準に従ってタスクを実行するコアを決定する。タスクの動作する環境には、例えば、バックグラウンドで実行するタスクであるか否かが含まれる。また、高速コア２１、低速コア２２のうち任意のコアが管理プロセッサ１０やタスクスケジューラ１１が備える機能を有してもよく、この場合、情報処理システム１は管理プロセッサ１０を省略することができる。
【００３８】
複数の高速コア２１−１、・・・、２１−Ｍと、複数の高速メモリ３１−１、・・・、３１−Ｍと、複数の低速コア２２−１、・・・、２２−Ｎと、複数の低速メモリ３２−１、・・・、３２−Ｎと、管理プロセッサ１０は、それぞれ、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＦＰＧＡ（Field-Programmable Gate Array）等により実現されてもよい。
【００３９】
また、ＬＳＩ、ＡＳＩＣ、またはＦＰＧＡ等が、複数の高速コア２１−１、・・・、２１−Ｍと、複数の高速メモリ３１−１、・・・、３１−Ｍと、複数の低速コア２２−１、・・・、２２−Ｎと、複数の低速メモリ３２−１、・・・、３２−Ｎと、管理プロセッサ１０の全てを備えてもよい。
【００４０】
図２は、第１の実施形態に係る情報処理システムのタスク実行処理のフローチャートである。このフローチャートは、タスクが発行されてから、タスクが実行されるまでの処理を示している。
【００４１】
管理プロセッサ１０は、タスクの発行を検出すると、発行されたタスクの特性を抽出する（ステップ２０１）。管理プロセッサ１０は、例えば、発行されたタスクのメタデータを外部メモリ４０から読み出し、読み出したメタデータからタスクの特性を抽出する。
【００４２】
管理プロセッサ１０が抽出する特性は、タスクの動作する環境、タスクの実行に必要な計算量、タスクに関連するデータの転送量等である。タスクの動作する環境には、例えば、フォアグラウンドで実行するタスクであるかバックグラウンドで実行するタスクであるかといった情報が含まれる。
【００４３】
管理プロセッサ１０は、例えば、発行されたタスクが、ゲーム用アプリケーションや動画再生用アプリケーション、Ｗｅｂブラウザ用アプリケーションのような応答性が重要視されるタスクの場合、フォアグラウンドで実行するタスクであると判断する。また、管理プロセッサ１０は、例えば、発行されたタスクが、電子メール用アプリケーションやコンピュータウィルス対策用アプリケーションのような応答性が重要視されないタスクの場合、バックグラウンドで実行するタスクであると判断する。
【００４４】
また、管理プロセッサ１０は、例えば、発行されたタスクがフォアグラウンドで実行されるべきか、バックグラウンドで実行されるべきかについての情報を、情報処理システム１全体を管理するＯＳ（Operating System）から取得してもよい。
【００４５】
これらのタスクの特性は、情報処理システム１の出荷時に外部メモリ４０に格納されてもよいし、管理プロセッサ１０が、高速コア２１−１、・・・、高速コア２１−Ｍ、低速コア２２−１、・・・低速コア２２−Ｎの各々の過去の実行状況を基にして導いてもよい。
【００４６】
次に、管理プロセッサ１０は、各コアの情報、すなわち、高速コア２１−１、・・・、高速コア２１−Ｍ、低速コア２２−１、・・・低速コア２２−Ｎの各々のリソースの利用状況等に関連する情報を取得する（ステップ２０２）。
【００４７】
タスクスケジューラ１１は、所定の判断基準に従って、発行されたタスクを高速コア２１−１、・・・、高速コア２１−Ｍ、低速コア２２−１、・・・低速コア２２−Ｎのうちどのコアに割り当てるかを決定する（ステップ２０３）。
【００４８】
所定の判断基準は、例えば、管理プロセッサ１０にて抽出されたタスクの特性、高速コア２１−１、・・・、高速コア２１−Ｍ、低速コア２２−１、・・・低速コア２２−Ｎの各々のコアのリソースの利用状況等に関連する情報等に基づいて決定される。
【００４９】
タスクスケジューラ１１は、例えば、発行されたタスクの特性を考慮すること無く、高速コア２１と低速コア２２の各々のコアのリソースの利用状況に基づいてどのコアに割り当てるかを決定してもよいし、タスクスケジューラ１１は、例えば、高速コア２１と低速コア２２の各々のコアのリソースの利用状況をチェックすること無く、特定されたタスクの特性に基づいてどのコアに割り当てるかを決定してもよい。
【００５０】
タスクスケジューラ１１は、例えば、高速コア２１が別のタスクを実行している場合に、発行されたタスクが応答性を重要視されないタスクの場合であっても、発行されたタスクを低速コア２２に実行させるよりも、高速コア２１で当該別のタスクと並行して実行させた方が、情報処理システム１の消費電力が低くなると判断した場合には、当該発行されたタスクを高速コア２１で実行することに決定する。
【００５１】
例えば、高速コア２１が当該別のタスクを実行していたとしても、高速コア２１と高速メモリ３１の演算負荷に余裕があり、当該発行されたタスクによる計算量やメモリ消費量が比較的少ない場合、当該発行されたタスクを低速コア２２に実行させるよりも、当該発行されたタスクを高速コア２１で当該別のタスクと並行して実行させた方が、情報処理システム１の消費電力が低くなる場合がある。このような場合には、タスクスケジューラ１１は、当該発行されたタスクを高速コア２１で実行することに決定する。
【００５２】
タスクスケジューラ１１が、発行されたタスクを高速コア２１で実行すると決定した場合（ステップ２０４Ｙｅｓ）、管理プロセッサ１０は、ＤＭＡＣ５０に対して外部メモリ４０に格納されているプログラムやデータを高速メモリ３１へ転送することを要求する（ステップ２０５）。管理プロセッサ１０は、例えば、転送対象のプログラムやデータが格納されたＤＭＡＣ５０の先頭アドレス、転送対象のプログラムやデータのサイズ、転送先となる高速メモリ３１の格納場所を示すアドレスを、ＤＭＡＣ５０へ通知する。
【００５３】
ＤＭＡＣ５０は、管理プロセッサ１０から要求されたプログラムやデータを外部メモリ４０から読み出し、読み出したプログラムやデータを、管理プロセッサ１０から要求された高速メモリ３１へ転送する（ステップ２０６）。プログラムやデータは高速メモリ３１へ高速コア２１により実行可能な形式で格納される。
【００５４】
なお、情報処理システム１がＤＭＡＣ５０を使用しないで、管理プロセッサ１０が発行されたタスクに関連するプログラムやデータを外部メモリ４０から高速メモリ３１へ転送してもよい。
【００５５】
発行されたタスクに関連するプログラムやデータが高速メモリ３１へ転送された後、管理プロセッサ１０は高速コア２１にタスクの実行を要求する（ステップ２０７）。
【００５６】
タスクの実行を要求された高速コア２１は、高速メモリ３１から所定のプログラムを読み出し、プログラムの記述を解釈してタスクを実行する（ステップ２０８）。
【００５７】
タスクスケジューラ１１が、発行されたタスクを低速コア２２で実行すると決定した場合（ステップ２０４Ｎｏ）、管理プロセッサ１０は、ＤＭＡＣ５０に対して外部メモリ４０に格納されているプログラムやデータを低速メモリ３２へ転送することを要求する（ステップ２０９）。管理プロセッサ１０は、例えば、転送対象のプログラムやデータが格納されたＤＭＡＣ５０の先頭アドレス、転送対象のプログラムやデータのサイズ、転送先となる低速メモリ３２の格納場所を示すアドレスを、ＤＭＡＣ５０へ通知する。
【００５８】
ＤＭＡＣ５０は、管理プロセッサ１０から要求されたプログラムやデータを外部メモリ４０から読み出し、読み出したプログラムやデータを、管理プロセッサ１０から要求された低速メモリ３２へ転送する（ステップ２１０）。プログラムやデータは低速メモリ３２へ低速コア２２により実行可能な形式で格納される。
【００５９】
なお、情報処理システム１がＤＭＡＣ５０を使用しないで、管理プロセッサ１０が発行されたタスクに関連するプログラムやデータを外部メモリ４０から低速メモリ３２へ転送してもよい。
【００６０】
発行されたタスクに関連するプログラムやデータが低速メモリ３２へ転送された後、管理プロセッサ１０は低速コア２２にタスクの実行を要求する（ステップ２１１）。
【００６１】
タスクの実行を要求された低速コア２２は、低速メモリ３２から所定のプログラムを読み出し、プログラムの記述を解釈してタスクを実行する（ステップ２１２）。
【００６２】
図３は、比較例としての情報処理システムの構成を示すブロック図である。比較例に係る情報処理システムは、複数の高速コア２１−１、・・・、２１−Ｍと、複数の低速コア２２−１、・・・、２２−Ｎと、複数のメモリ３２−１、・・・、３２−Ｏと、管理プロセッサ１０と、外部メモリ４０と、ＤＭＡＣ５０とを備える。なお、Ｏは任意の自然数である。複数の高速コア２１−１、・・・、２１−Ｍと、複数の低速コア２２−１、・・・、２２−Ｎと、複数のメモリ３３−１、・・・、３３−Ｏと、管理プロセッサ１０と、外部メモリ４０と、ＤＭＡＣ５０とは、内部バス６０で接続される。
【００６３】
図３の比較例に示すように、比較例に係る情報処理システムは、複数の高速メモリ３１−１、・・・、３１−Ｍ、複数の低速メモリ３２−１、・・・、３２−Ｎの替わりに複数のメモリ３３−１、・・・、３３−Ｏを備える。また、以下の説明において、複数のメモリ３３−１、・・・、３３−Ｏのうち１つを特定する必要がある場合は符号３３−１、・・・、３３−Ｏを使用するが、複数のメモリ３３−１、・・・、３３−Ｏのうち任意のメモリを指す場合や複数のメモリ３３−１、・・・、３３−Ｏのうちあるメモリを他のメモリと区別しない場合には符号３３を使用する。
【００６４】
メモリ３３は高速コア２１と低速コア２２がアクセスでき、高速コア２１または低速コア２２の主記憶として使用される。
【００６５】
メモリ３３が、高速メモリ３１と同程度に高速に応答可能な揮発性メモリである場合、高い計算能力を必要としないタスクで使用されるデータであっても高速に応答可能な揮発性メモリに配置されることになる。これらのデータによりメモリ３３の容量がひっ迫し、高い計算能力を必要とするタスクの高速実行を阻害することがある。また、高速に応答可能な揮発性メモリは一般的に価格が高価であり、高い計算能力を必要とするタスクの高速実行を阻害しないためにメモリ３３の容量を増加させることは、比較例に係る情報処理システムのコスト増をもたらす。
【００６６】
また、メモリ３３が、低速メモリ３２と同程度の応答性能を有するメモリである場合、高速コア２１からのアクセスに対して、メモリ３３からの応答が返るまでの時間が、メモリ３３の替わりにＤＲＡＭ等を使用する場合に比べて長くなる場合がある。この場合、高速コア２１の利用効率が低下し、高速コア２１を使用しているにもかかわらず、比較例に係る情報処理システムの利用性能が悪化してしまう。
【００６７】
一方、本実施形態に係る情報処理システムでは、高速コア２１の性能に見合う高速メモリ３１を高速コア２１の主記憶とし、低速コア２２の性能に見合う低速メモリ３２を低速コア２２の主記憶とすることで、本実施形態に係る情報処理システムの利用効率低下を抑え、コスト増を抑えつつ、主記憶の容量の増大を図ることができる。
【００６８】
以上のように、第１の実施形態によれば、情報処理システム１は、管理プロセッサ１０と、高速コア２１と、低速コア２２と、高速コア２１に対応する高速メモリ３１と、低速コア２２に対応する低速メモリ３２と、を備え、管理プロセッサ１０は発行されたタスクを高速コア２１と低速コア２２のどちらで実行するか決定する。管理プロセッサ１０がタスクを高速コア２１で実行すると決定した場合、高速メモリ３１へタスクに対応するプログラムやデータが保存され、高速コア２１が高速メモリ３１を使用してプログラムを実行する。管理プロセッサ１０がタスクを低速コア２２で実行すると決定した場合、低速メモリ３２へタスクに対応するプログラムやデータが保存され、低速コア２２が低速メモリ３２を使用してプログラムを実行する。タスクに応じてタスクを実行するコアが使い分けられ、処理を実行するコアの性能に応じてコアが使用する主記憶が使い分けられることによりコアの利用効率が向上し、主記憶の容量の増大が図られ、情報処理システム１の消費電力が抑えられる。
【００６９】
（第２の実施形態）
図４は、第２の実施形態に係る情報処理システムの構成を示すブロック図である。なお、第１実施形態の構成と同一または類似の機能を有する構成は、同一の符号を付してその説明を省略する。また、下記に説明する以外の構成は、第１の実施形態と同じである。
【００７０】
第２の実施形態に係る情報処理システムは、メモリアクセスコントローラ７０を備える。
【００７１】
第２の実施形態に係る情報処理システムにおける、高速コア２１と高速メモリ３１、低速コア２２と低速メモリ３２は、それぞれ１対１で対応しなくてもよい。情報処理システム１が備える高速メモリ３１の個数はＰ個であり、情報処理システム１が備える低速メモリ３２の個数はＱ個である。なお、ＰおよびＱは任意の自然数である。ＰはＭと同一でもよいし、異なってもよい。また、ＱはＮと同一であってもよいし、異なってもよい。
【００７２】
なお、本実施形態において、高速メモリ３１を示す符号としては、複数の高速メモリのうち１つを特定する必要があるときは符号３１−１、・・・、３１−Ｐを使用するが、任意の高速メモリを指すときには符号３１を使用する。また、本実施形態において、低速メモリ３２を示す符号としては、複数の低速メモリのうち１つを特定する必要があるときは符号３２−１、・・・、３２−Ｑを使用するが、任意の低速メモリを指すときには符号３２を使用する。
【００７３】
メモリアクセスコントローラ７０は、高速コア２１−１、・・・、高速コア２１−Ｍと、高速メモリ３１−１、・・・、高速メモリ３１−Ｐと、低速コア２２−１、・・・、低速コア２２−Ｎと、低速メモリ３２−１、・・・、低速メモリ３２−Ｑと、内部バス６０を介して接続される。
【００７４】
管理プロセッサ１０は、高速コア２１−１、・・・、高速コア２１−Ｍと、高速メモリ３１−１、・・・、高速メモリ３１−Ｐと、低速コア２２−１、・・・、低速コア２２−Ｎと、低速メモリ３２−１、・・・、低速メモリ３２−Ｑと、メモリアクセスコントローラ７０と、外部メモリ４０と、ＤＭＡＣ５０と、内部バス６０を介して接続される。
【００７５】
高速コア２１は、管理プロセッサ１０と、メモリアクセスコントローラ７０と、内部バス６０を介して接続される。
【００７６】
低速コア２２は、管理プロセッサ１０と、メモリアクセスコントローラ７０と、内部バス６０を介して接続される。
【００７７】
高速メモリ３１は、管理プロセッサ１０と、メモリアクセスコントローラ７０と、外部メモリ４０と、ＤＭＡＣ５０と、内部バス６０を介して接続される。
【００７８】
低速メモリ３２は、管理プロセッサ１０と、メモリアクセスコントローラ７０と、外部メモリ４０と、ＤＭＡＣ５０と、内部バス６０を介して接続される。
【００７９】
なお、本実施形態に係る情報処理システムでは、内部バス６０の代わりに、ネットワークを介して接続されるように構成されてもよい。また、メモリアクセスコントローラ７０は、高速コア２１−１、・・・、高速コア２１−Ｍと、高速メモリ３１−１、・・・、高速メモリ３１−Ｐと、低速コア２２−１、・・・、低速コア２２−Ｎと、低速メモリ３２−１、・・・、低速メモリ３２−Ｑと、内部バス６０を介して接続されているが、この接続方式に限定されない。
【００８０】
高速コア２１、低速コア２２は、第１の実施形態に係る情報処理システムの場合と異なり、メモリアクセスコントローラ７０を介して高速メモリ３１、低速メモリ３２へアクセスする。
【００８１】
メモリアクセスコントローラ７０は，高速コア２１から指定された論理アドレスを高速メモリ３１へアクセスするための物理アドレスに対応付ける。また、メモリアクセスコントローラ７０は、低速コア２２から指定された論理的なアドレスを低速メモリ３２へアクセスするための物理アドレスに対応付ける。
【００８２】
高速コア２１−１、・・・、２１−Ｍは、各々独自の論理アドレス空間を持ってもいいし、高速コア２１−１、・・・、２１−Ｍのうちのいくつかの高速コア２１で論理アドレス空間を共有してもよい。同様に低速コア２２−１、・・・、２２−Ｎは、各々独自の論理アドレス空間を持ってもいいし、低速コア２２−１、・・・、２２−Ｎのうちのいくつかの低速コア２２で論理アドレス空間を共有してもよい。また、高速コア２１−１、・・・、２１−Ｍ、低速コア２２−１、・・・、２２−Ｎのうちのいくつかが論理アドレス空間を共有してもよい。
【００８３】
メモリ空間の構成は情報処理システム１の仕様に合わせて適宜変形されてもよい。例えば、単一のメモリ空間が、単一の高速メモリ３１により構成されてもよいし、複数の高速メモリ３１により構成されてもよい。高速コア２１及び低速コア２２でメモリ空間を共有する場合は、メモリ空間は高速メモリ３１と低速メモリ３２で構成されるのが望ましい。
【００８４】
管理プロセッサ１０はメモリアクセスコントローラ７０と通信することができ、管理プロセッサ１０は、メモリアクセスコントローラ７０に対してどの論理アドレス領域をどのメモリ領域と対応付けるか要求することができる。つまり、例えば、発行されたタスクが高い応答性を求める場合は、管理プロセッサ１０は、タスクのために割り当てるメモリ領域を高速メモリ３１により構成されることを要求する。また、例えば、発行されたタスクが高い応答性を求めない場合は、管理プロセッサ１０は、タスクのために割り当てるメモリ領域を低速メモリ３２により構成されることを要求する。
【００８５】
図５は、第２の実施形態に係る情報処理システムのタスク実行処理のフローチャートである。このフローチャートは、タスクが発行されてから、タスクが実行されるまでの処理を示している。
【００８６】
第２の実施形態に係る情報処理システムでは、第１の実施形態に係る情報処理システムと異なり、ＤＭＡＣ５０が、管理プロセッサ１０から要求されたプログラムやデータを外部メモリ４０から読み出し、読み出したプログラムやデータを、管理プロセッサ１０から要求された高速メモリ３１へ転送した（ステップ２０６）後に、管理プロセッサ１０が、メモリアクセスコントローラ７０に対して、読み出されたプログラムやデータが転送された高速メモリ３１の転送先領域の物理アドレスと対応付ける論理アドレスを通知する（ステップ５０１）。これにより、メモリアクセスコントローラ７０は、論理アドレスと物理アドレスを得ることができ、論理アドレスと物理アドレスを対応付けることができる。これにより、高速コア２１は、メモリアクセスコントローラ７０を介して、高速メモリ３１へアクセスできる。
【００８７】
また、第２の実施形態に係る情報処理システムでは、ステップ５０１に続いて、メモリアクセスコントローラ７０が、高速コア２１がアクセスする論理アドレスと物理アドレスの対応付けを行う（ステップ５０２）。メモリアクセスコントローラ７０は、高速コア２１がアクセスする論理アドレスと物理アドレスの対応付けを、例えばテーブル形式で、メモリアクセスコントローラ７０内に保存する。なお、管理プロセッサ１０は、タスクの実行要求毎ではなく、システム起動時にプログラムやデータが転送される領域の物理アドレスと論理アドレスとを対応付けてもよい。管理プロセッサ１０がシステム起動時に物理アドレスと論理アドレスとを対応付ける場合、高速コア２１が高速メモリ３１にアクセスする際、高速コア２１は予め対応付けられた論理アドレスへアクセスすることとなる。第２の実施形態に係る情報処理システムでは、ステップ５０２に続いて、管理プロセッサ１０は高速コア２１にタスクの実行を要求し（ステップ２０７）、タスクの実行を要求された高速コア２１は、高速メモリ３１から所定のプログラムを読み出し、プログラムの記述を解釈してタスクを実行する（ステップ２０８）。
【００８８】
同様に、第２の実施形態に係る情報処理システムでは、第１の実施形態に係る情報処理システムと異なり、ＤＭＡＣ５０が、管理プロセッサ１０から要求されたプログラムやデータを外部メモリ４０から読み出し、読み出したプログラムやデータを、管理プロセッサ１０から要求された低速メモリ３２へ転送した（ステップ２１０）後に、管理プロセッサ１０が、メモリアクセスコントローラ７０対して、読み出されたプログラムやデータが転送された低速メモリ３２の転送先領域のアドレスを通知する（ステップ５０３）。これにより、メモリアクセスコントローラ７０は、論理アドレスと物理アドレスを得ることができ、論理アドレスと物理アドレスを対応付けることができる。これにより、低速コア２２は、メモリアクセスコントローラ７０を介して、低速メモリ３２へアクセスできる。
【００８９】
また、第２の実施形態に係る情報処理システムでは、ステップ５０３に続いて、メモリアクセスコントローラ７０が、低速コア２２がアクセスする論理アドレスと物理アドレスの対応付けを行う（ステップ５０４）。メモリアクセスコントローラ７０は、低速コア２２がアクセスする論理アドレスと物理アドレスの対応付けを、例えばテーブル形式で、メモリアクセスコントローラ７０内に保存する。なお、管理プロセッサ１０は、タスクの実行要求毎ではなく、システム起動時にプログラムやデータが転送される領域の物理アドレスと論理アドレスとを対応付けてもよい。管理プロセッサ１０がシステム起動時に物理アドレスと論理アドレスとを対応付ける場合、低速コア２２が低速メモリ３２にアクセスする際、低速コア２２は予め対応付けられた論理アドレスへアクセスすることとなる。第２の実施形態に係る情報処理システム１では、ステップ５０４に続いて、管理プロセッサ１０は低速コア２２にタスクの実行を要求し（ステップ２１１）、タスクの実行を要求された低速コア２２は、低速メモリ３２から所定のプログラムを読み出し、プログラムの記述を解釈してタスクを実行する（ステップ２１２）。
【００９０】
図６は、第２の実施形態に係る情報処理システムのメモリアクセスコントローラの動作を示すフローチャートである。このフローチャートは、メモリアクセスコントローラ７０が高速コア２１と低速コア２２のうち一方のコアからデータ要求を受信してからメモリアクセスコントローラ７０がメモリへアクセスするまでの処理を示す。
【００９１】
メモリアクセスコントローラ７０は、高速コア２１と低速コア２２のうち一方のコアからデータ要求を受信すると、データ要求発行元のコア及びデータ要求に対応する論理アドレスを取得する（ステップ６０１）。
【００９２】
メモリアクセスコントローラ７０は、例えばメモリアクセスコントローラ７０内のテーブルを使用して、取得した論理アドレスに対応する物理アドレスを特定する（ステップ６０２）。
【００９３】
メモリアクセスコントローラ７０は、データ要求元のコアが高速コア２１か低速コア２２かを判定する（ステップ６０３）。
【００９４】
メモリアクセスコントローラ７０は、データ要求元のコアが高速コア２１である場（ステップ６０３Ｙｅｓ）、ステップ６０２で特定された物理アドレスを使用して、高速メモリ３１へアクセスする（ステップ６０４）。
【００９５】
メモリアクセスコントローラ７０は、データ要求元のコアが低速コア２２である場（ステップ６０３Ｎｏ）、ステップ６０２で特定された物理アドレスを使用して、低速メモリ３２へアクセスする（ステップ６０５）。
【００９６】
上述した第２の実施形態によれば、情報処理システム１において、第１の実施形態と同様に、実行対象のタスクに応じてコアを使い分け、処理を実行するコアの性能に応じてコアが使用するメモリを使い分けることによりコアの利用効率が向上し、情報処理システム１の消費電力が抑えられる。また、第２の実施形態によれば、情報処理システム１において、高速コア２１と高速メモリ３１との接続関係の柔軟性、低速コア２２と低速メモリ３２との接続関係の柔軟性を向上させることが出来る。
【００９７】
（第３の実施形態）
図７及び図８は、第３の実施形態に係る情報処理システムにおける動作概要を説明するための概念図であり、情報処理システム１において、タスクＢを実行するコアが高速コア２１から低速コア２２に移る場合の動作概要を示す図である。なお、第１実施形態の構成と同一または類似の機能を有する構成は、同一の符号を付してその説明を省略する。また、下記に説明する以外の構成は、第１の実施形態と同じである。
【００９８】
図７は、高速コア２１が１つ、高速メモリ３１が１つ、低速コア２２が１つ、低速メモリ３２が１つの場合、すなわち、管理プロセッサ１０と高速コア２１−１と高速メモリ３１−１と低速コア２２−１と低速メモリ３２−１と外部メモリ４０とＤＭＡＣ５０とを備える情報処理システム１において、高速コア２１−１によりタスクＡとタスクＢが実行されており、低速コア２２−１によりタスクＣが実行されている場合の情報処理システム１の構成を示している。なお、本実施形態に係る情報処理システムでは、高速コア２１が１つ、低速コア２２が１つの場合に限定されない。
【００９９】
高速メモリ３１−１には、タスクスケジューラ２１により、タスクＡに対応するテキスト領域とデータ領域とスタック領域、及びタスクＢに対応するテキスト領域とデータ領域とスタック領域が割り当てられる。低速メモリ３２−１には、タスクスケジューラ２１により、タスクＣに対応するテキスト領域とデータ領域とスタック領域が割り当てられる。
【０１００】
ここで、テキスト領域は、タスクのプログラム内容がコピーされる領域であり、タスク毎に固定の内容となる。データ領域は、静的領域とヒープ領域を含む。静的領域は、例えば、グローバル変数などの静的変数が保存される領域である。ヒープ領域は、例えば、タスク内の処理が、動的に割り当てたり、解放したりすることができる領域である。スタック領域は、例えば、タスク内の処理のローカル変数やレジスタが保存される領域である。
【０１０１】
タスクＢに対応するテキスト領域は、固定の内容であるため、情報処理システム１の起動時または動作途中において高速メモリ３１−１と低速メモリ３２−１とで共有することが可能である。そのため、タスクスケジューラ２１は、情報処理システム１の起動時または動作途中に、高速メモリ３１−１のタスクＢに対応するテキスト領域を低速メモリ３２−１へ転送する。
【０１０２】
また、高速メモリ３１−１及び低速メモリ３２−１には、それぞれ、再開情報送信キュー、再開情報受信キューのための領域が割り当てられている。再開情報送信キュー、再開情報受信キューは、コア間で再開情報が通信される際に使用される。再開情報は、例えばプログラムカウンタのような、どこから処理を再開すべきかの情報、を含む。
【０１０３】
図８は、図７に示すような高速コア２１−１によりタスクＡとタスクＢが実行され低速コア２２−１によりタスクＣが実行されている状態から、管理プロセッサ１０が、タスクＢを実行させるコアを高速コア２１−１から低速コア２２−１へ切り替えることを決定した場合に、管理プロセッサ１０が、高速メモリ３１−１に格納されているタスクＢに対応するデータ領域とスタック領域のデータを低速メモリ３２−１へ転送する際のデータのコピーの概要を示す。
【０１０４】
図８に示すように、タスクＢを実行させるコアが高速コア２１−１から低速コア２２−１へ切り替わる際、高速メモリ３１−１に格納されているタスクＢに対応するデータ領域とスタック領域のデータが低速メモリ３２−１への転送対象となる。タスクＢに対応するテキスト領域は、固定の内容であるため、低速メモリ３２−１へ転送されるタイミングは、タスクＢを実行させるコアが高速コア２１−１から低速コア２２−１へ切り替わるタイミングである必要は無い。
【０１０５】
図９は、第３の実施形態に係る情報処理システムのタスク実行処理のフローチャートである。このフローチャートは、タスクが発行されてから、タスクが実行開始されるまでの処理を示している。
【０１０６】
第３の実施形態に係る情報処理システムでは、第１の実施形態に係る情報処理システムと異なり、管理プロセッサ１０は、高速コア２１−１、・・・、高速コア２１−Ｍ、低速コア２２−１、・・・低速コア２２−Ｎの各々のリソースの利用状況等に関連する情報を取得し（ステップ２０２）、これらの情報に基づいて高速コア２１−１、・・・、高速コア２１−Ｍ、低速コア２２−１、・・・低速コア２２−Ｎのうちタスクを実行するコアを選択、決定した（ステップ２０３）後に、管理プロセッサ１０は、タスクの動作中に実行元のコアを切り替えるかどうかを判定する（ステップ９０１）。この判定は、例えば、要求される応答性が変化することによりフォアグランド実行とバックグラウンド実行の切り替えが発生するか等のタスクの特性や、当該タスクの実行による実行元のコアの資源利用率、発生する計算量、メモリへアクセスするデータ量がどの程度変化するか、によって決定される。
【０１０７】
タスクの動作中に実行元のコアを切り替えると判定する場合（ステップ９０１Ｙｅｓ）、管理プロセッサ１０は、ＤＭＡＣ５０へ外部メモリ４０に格納されているタスクのテキスト領域を高速メモリ３１と低速メモリ３２へ転送するように要求する（ステップ９０２）。ＤＭＡＣ５０は、管理プロセッサ１０から要求を受信したら、タスクのテキスト領域を外部メモリ４０から高速メモリ３１と低速メモリ３２の両方へ転送する（ステップ９０３）。
【０１０８】
さらに、管理プロセッサ１０は、ＤＭＡＣ５０へ外部メモリ４０に格納されているタスクのデータ領域及びスタック領域を高速メモリ３１または低速メモリ３２のいずれかへ転送するように要求する（ステップ９０４）。ＤＭＡＣ５０は、管理プロセッサ１０から要求を受信したら、タスクのデータ領域及びスタック領域を外部メモリ４０から高速メモリ３１または低速メモリ３２のいずれかへ転送する（ステップ９０５）。
【０１０９】
なお、タスクの動作するコアを切り替える際に、切り替え先のコアに対応するデータ領域とスタック領域は切り替え元のコアに対応するデータ領域とスタック領域により上書きされるため、タスクの実行開始時点においては、高速メモリ３１と低速メモリ３２の両方へタスクのデータ領域及びスタック領域が転送されたとしても情報処理システム１の動作上問題はない。そのため、ステップ９０４において、管理プロセッサ１０は、ＤＭＡＣ５０へ外部メモリ４０に格納されているタスクのデータ領域及びスタック領域を高速メモリ３１と低速メモリ３２の両方へ転送するように要求してもよい。この場合、ステップ９０５において、ＤＭＡＣ５０は、管理プロセッサ１０から要求を受信したら、タスクのデータ領域及びスタック領域を外部メモリ４０から高速メモリ３１と低速メモリ３２の両方へ転送する。
【０１１０】
タスクが起動から終了時までに利用するリソース量が変化しない等の理由により、管理プロセッサ１０が、タスクの動作中に実行元のコアを切り替えないと判定する場合（ステップ９０１Ｎｏ）、管理プロセッサ１０は、ＤＭＡＣ５０へ外部メモリ４０に格納されているタスクのテキスト領域及びデータ領域及びスタック領域を高速メモリ３１または低速メモリ３２へ転送するように要求する（ステップ９０６）。ＤＭＡＣ５０は、管理プロセッサ１０から要求を受信したら、タスクのテキスト領域及びデータ領域及びスタック領域を外部メモリ４０から高速メモリ３１または低速メモリ３２へ転送する（ステップ９０７）。
【０１１１】
タスクのテキスト領域及びデータ領域及びスタック領域を外部メモリ４０から高速メモリ３１または低速メモリ３２へ転送された後、管理プロセッサ１０は、ステップ２０３にて選択、決定されたコアに対して実行要求する（ステップ９０８）。これにより、実行要求を受けたコアが対応するメモリから所定のデータを読み出して、タスクの実行を開始する（ステップ９０９）。
【０１１２】
図１０は、第３の実施形態に係る情報処理システムのタスクが実行される動作コアが高速コア２１から低速コア２２へ切り替わる場合における処理のフローチャートであり、高速コア２１で実行しているタスクを低速コア２２へ移動する場合の処理のフローチャートを示している。
【０１１３】
管理プロセッサ１０が、タスクが実行される動作コアが低速コア２２から高速コア２１へ移動することを決定する（ステップ１００１）。動作コアの移動を決定する要因としては、タスクの動作がフォアグラウンドからバックグラウンドに移る場合や、タスクがサスペンドした場合や、あるタスクがメモリをひっ迫し他のタスクの動作速度を落としている場合などが挙げられる。
【０１１４】
その後、管理プロセッサ１０は、高速コア２１に対するタスク動作を停止させて高速コア２１で動作しているタスクを低速コア２２で実行させるための割り込みを高速コア２１に対して発行する（ステップ１００２）。
【０１１５】
高速コア２１は、割り込みが通知されたら、高速コア２１のタスク動作を停止し、再開情報の状態を高速メモリ３１の再開情報送信キュー３１１へプッシュする（ステップ１００３）。また、高速コア２１のタスク動作を停止する際、高速コア２１のレジスタを退避させるため、高速コア２１は、高速コア２１の各動作情報をスタック領域に保存する。再開情報送信キュー３１１は、高速コア２１が再開情報を管理するためのキューである。
【０１１６】
高速コア２１は、高速コア２１が動作を停止したことを管理プロセッサ１０に対して割り込みを発行することにより通知する（ステップ１００４）。
【０１１７】
管理プロセッサ１０は、割り込みが通知されたら、ＤＭＡＣ５０へ高速メモリ３１に格納されているタスクのデータ領域及びスタック領域を低速メモリ３２へ転送するように要求する（ステップ１００５）。ＤＭＡＣ５０は、管理プロセッサ１０から要求を受信したら、タスクのデータ領域及びスタック領域を高速メモリ３１から低速メモリ３２へ転送する（ステップ１００６）。
【０１１８】
管理プロセッサ１０は、ＤＭＡＣ５０に対して、高速メモリ３１から低速メモリ３２へ再開情報を転送するように要求する（ステップ１００７）。ＤＭＡＣ５０は、管理プロセッサ１０から要求を受信したら、高速メモリ３１の再開情報送信キュー３１から再開情報を読み出し、読み出した再開情報を低速メモリ３２の再開情報受信キュー３２２へ転送する（ステップ１００８）。
【０１１９】
ＤＭＡＣ５０が、タスクのデータ領域及びスタック領域の低速メモリ３２への転送及び再開情報の低速メモリ３２の再開情報受信キュー３２２への転送を完了したら、管理プロセッサ１０は、低速コア２２に対して、タスクの実行を要求するための割り込みを通知する（ステップ１００９）。
【０１２０】
低速コア２２は、割り込みを受信したら、再開情報受信キュー３２２から再開情報を読み出し、スタック領域から高速コア２１での中断した状態を復元し、タスクを実行する（ステップ１０１０）。
【０１２１】
図１１は、第３の実施形態に係る情報処理システムのタスクが実行される動作コアが低速コア２２から高速コア２１へ切り替わる場合における処理のフローチャートである。すなわち、図１１は、低速コア２２で実行しているタスクを高速コア２１へ移動する場合の処理のフローチャートを示している。
【０１２２】
管理プロセッサ１０は、タスクが実行される動作コアが低速コア２２から高速コア２１へ移動することを決定する（ステップ１１０１）。動作コアの移動を決定する要因としては、タスクの動作がバックグラウンドからフォアグラウンドに移る場合や、あるタスクの実行によりメモリがひっ迫し他のタスクの動作速度が落ちている場合や、高速コア２１のリソースに余裕がある場合などが挙げられる。
【０１２３】
その後、管理プロセッサ１０は、低速コア２２に対する動作を停止させて低速コア２２で動作しているタスクを高速コア２１で実行させるための割り込みを低速コア２２に対して発行する（ステップ１１０２）。
【０１２４】
低速コア２２は、割り込みが通知されたら、低速コア２２のタスク動作を停止し、再開情報の状態を低速メモリ３２の再開情報送信キュー３２１へプッシュする（ステップ１１０３）。また、低速コア２２のタスク動作を停止する際、低速コア２２のレジスタを退避させるため、低速コア２２は、低速コア２２の各動作情報をスタック領域に保存する。再開情報送信キュー３２１は、低速コア２２が再開情報を管理するためのキューである。
【０１２５】
低速コア２２は、低速コア２２が動作を停止したことを管理プロセッサ１０に対して割り込みを発行することにより通知する（ステップ１１０４）。
【０１２６】
管理プロセッサ１０は、割り込みが通知されたら、ＤＭＡＣ５０へ低速メモリ３２に格納されているタスクのデータ領域及びスタック領域を高速メモリ３１へ転送するように要求する（ステップ１１０５）。ＤＭＡＣ５０は、管理プロセッサ１０から要求を受信したら、タスクのデータ領域及びスタック領域を低速メモリ３２から高速メモリ３１へ転送する（ステップ１１０６）。
【０１２７】
管理プロセッサ１０は、ＤＭＡＣ５０に対して、低速メモリ３２から高速メモリ３１へ再開情報を転送するように要求する（ステップ１１０７）。ＤＭＡＣ５０は、管理プロセッサ１０から要求を受信したら、低速メモリ３２の再開情報送信キュー３２１から再開情報を読み出し、読み出した再開情報を高速メモリ３１の再開情報受信キュー３１２へ転送する（ステップ１１０８）。
【０１２８】
ＤＭＡＣ５０が、タスクのデータ領域及びスタック領域の高速メモリ３１への転送及び再開情報の高速メモリ３１の再開情報受信キュー３１２への転送を完了したら、管理プロセッサ１０は、高速コア２１に対して、タスクの実行を要求するための割り込みを通知する（ステップ１１０９）。
【０１２９】
高速コア２１は、割り込みを受信したら、再開情報受信キュー３１２から再開情報を読み出し、タスクを実行する（ステップ１１１０）。
【０１３０】
上述した第３の実施形態によれば、情報処理システム１において、第１の実施形態と同様に、実行対象のタスクに応じてコアを使い分け、処理を実行するコアの性能に応じてコアが使用するメモリを使い分けることによりコアの利用効率が向上し、情報処理システム１の消費電力が抑えられる。また、動作するコアを切り替える際に切り替え元のコアと切り替え先のコアの両方には最低限のデータしか配置しないことにより、また、タスクの実行状況に応じて動作するコアを切り替えることにより、コアの利用効率低下が防止でき、タスクが求める実行速度を維持しつつ消費電力を抑えることが出来る。
【０１３１】
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０１３２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他のさまざまな形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１３３】
１・・・情報処理システム
１０・・・管理プロセッサ
１１・・・タスクスケジューラ
２１・・・高速コア
２２・・・低速コア
３１・・・高速メモリ
３２・・・低速メモリ
４０・・・外部メモリ
５０・・・ＤＭＡＣ
６０・・・内部バス
７０・・・メモリアクセスコントローラ
【図１】
2018022345.tif 000003
【図２】
2018022345.tif 000004
【図３】
2018022345.tif 000005
【図４】
2018022345.tif 000006
【図５】
2018022345.tif 000007
【図６】
2018022345.tif 000008
【図７】
2018022345.tif 000009
【図８】
2018022345.tif 000010
【図９】
2018022345.tif 000011
【図１０】
2018022345.tif 000012
【図１１】
2018022345.tif 000013