JP2018022345A - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JP2018022345A
JP2018022345A JP2016153159A JP2016153159A JP2018022345A JP 2018022345 A JP2018022345 A JP 2018022345A JP 2016153159 A JP2016153159 A JP 2016153159A JP 2016153159 A JP2016153159 A JP 2016153159A JP 2018022345 A JP2018022345 A JP 2018022345A
Authority
JP
Japan
Prior art keywords
core
memory
speed
task
low
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016153159A
Other languages
English (en)
Inventor
公之 赤嶺
Kimiyuki Akamine
公之 赤嶺
謙一郎 吉井
Kenichiro Yoshii
謙一郎 吉井
矢尾 浩
Hiroshi Yao
浩 矢尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2016153159A priority Critical patent/JP2018022345A/ja
Priority to US15/438,683 priority patent/US20180039523A1/en
Publication of JP2018022345A publication Critical patent/JP2018022345A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

【課題】本発明が解決しようとする課題は、コアの利用効率を向上させた情報処理システムを提供することである。【解決手段】実施形態の情報処理システムは、第1のコアと、前記第1のコアよりもデータ処理性能が低い第2のコアと、前記第1のコアからアクセス可能な第1のメモリと、前記第2のコアからアクセス可能であって、前記第1のメモリよりもレイテンシが長い第2のメモリと、管理プロセッサと、を備える。管理プロセッサは、発行されたタスクを前記第1のコアで実行するか前記第2のコアで実行するか決定し、前記第1のコアで実行すると決定した場合、前記タスクに関連するデータを前記第1のメモリへ転送して前記第1のコアに前記タスクを実行させ、前記第2のコアで実行すると決定した場合、前記発行されたタスクに関連するデータを前記第2のメモリへ転送して前記第2のコアに前記タスクを実行させる。【選択図】図1

Description

本発明の実施形態は、情報処理システムに関する。
動作速度に差がある複数のコアを搭載したヘテロジニアスなマルチコアシステムは、タスク毎に実行に適したコアを利用することで効率のよい処理を実現する。
特開2010−272066号公報 特許第4691153号公報 特許第5300005号公報 特開2008−84009号公報
本発明が解決しようとする課題は、コアの利用効率を向上させた情報処理システムを提供することである。
上記課題を達成するために、実施形態の情報処理システムは、第1のコアと、前記第1のコアよりもデータ処理性能が低い第2のコアと、前記第1のコアからアクセス可能な第1のメモリと、前記第2のコアからアクセス可能であって、前記第1のメモリよりもレイテンシが長い第2のメモリと、管理プロセッサと、を備える。管理プロセッサは、発行されたタスクを前記第1のコアで実行するか前記第2のコアで実行するか決定する。前記管理プロセッサは、前記タスクを前記第1のコアで実行すると決定した場合、前記タスクに関連するデータを前記第1のメモリへ転送して前記第1のコアに前記タスクを実行させる。前記管理プロセッサは、前記タスクを前記第2のコアで実行すると決定した場合、前記発行されたタスクに関連するデータを前記第2のメモリへ転送して前記第2のコアに前記タスクを実行させる。
第1の実施形態に係る情報処理システムの構成を示すブロック図。 第1の実施形態に係る情報処理システムのタスク実行処理のフローチャート。 比較例としての情報処理システムの構成を示すブロック図。 第2の実施形態に係る情報処理システムの構成を示すブロック図。 第2の実施形態に係る情報処理システムのタスク実行処理のフローチャート。 第2の実施形態に係る情報処理システムのメモリアクセスコントローラの動作を示すフローチャート。 第3の実施形態に係る情報処理システムにおける動作概要を説明するための概念図。 第3の実施形態に係る情報処理システムにおける動作概要を説明するための概念図。 第3の実施形態に係る情報処理システムのタスク実行処理のフローチャート。 第3の実施形態に係る情報処理システムのタスクが実行される動作コアが高速コアから低速コアへ切り替わる場合における処理のフローチャート。 第3の実施形態に係る情報処理システムのタスクが実行される動作コアが低速コアから高速コアへ切り替わる場合における処理のフローチャート。
以下、発明を実施するための実施形態について図面を参照して説明する。
(第1の実施形態)
図1は、第1の実施形態に係る情報処理システムの構成を示すブロック図である。第1の実施形態に係る情報処理システム1は、管理プロセッサ10と、複数の高速コア21−1、・・・、21−Mと、複数の高速メモリ31−1、・・・、31−Mと、複数の低速コア22−1、・・・、22−Nと、複数の低速メモリ32−1、・・・、32−Nと、外部メモリ40と、DMAC50とを備える。なお、MおよびNは任意の自然数である。
情報処理システム1は、例えば、パーソナルコンピュータやサーバ装置などの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
複数の高速コア21−1、・・・、21−Mと、複数の高速メモリ31−1、・・・、31−Mと、複数の低速コア22−1、・・・、22−Nと、複数の低速メモリ32−1、・・・、32−Nと、管理プロセッサ10と、外部メモリ40と、DMAC50は基板(不図示)に搭載されてもよい。基板は、単層基板であってもよく、積層基板であってもよい。
以下の説明において、複数の高速コア21−1、・・・、21−Mのうち1つを特定する必要がある場合は、符号21−1、・・・、21−Mを使用するが、任意の高速コアを指す場合やある高速コアを他の高速コアと区別しない場合は、符号21を使用する。
以下の説明において、複数の低速コア22−1、・・・、22−Nのうち1つを特定する必要がある場合は符号22−1、・・・、22−Nを使用するが、任意の低速コアを指す場合やある低速コアを他の低速コアと区別しない場合には符号22を使用する。
以下の説明において、複数の高速メモリ31−1、・・・、31−Mのうち1つを特定する必要がある場合は、符号31−Mを使用するが、任意の高速メモリを指す場合やある高速メモリを他の高速メモリと区別しない場合は、符号31を使用する。
以下の説明において、複数の低速メモリ32−1、・・・、32−Nのうち1つを特定する必要がある場合は符号32−1、・・・、32−Nを使用するが、任意の低速メモリを指す場合やある低速メモリを他の低速メモリと区別しない場合は、符号32を使用する。
高速コア21と低速コア22は、それぞれ、情報処理システム1の動作を制御する。高速コア21と低速コア22は、それぞれ、コアである。コアは、例えば、CPU(Central Processing Unit)等のプロセッサである。また、コアはプロセッサコアとも称される。高速コア21は第1のコアとも称され得る。また、低速コア22は第2のコアとも称され得る。
高速メモリ31と低速メモリ32は、それぞれ、プログラムやデータが記憶されるメモリである。高速メモリ31は第1のメモリとも称され得る。また、低速メモリ32は第2のメモリとも称され得る。
高速メモリ31は高速コア21がアクセスでき、高速コア21は高速メモリ31を主記憶として使用する。低速メモリ32は低速コア22がアクセスでき、低速コア22は低速メモリ32を主記憶として使用する。主記憶とは、コアが直接アクセスできるメモリのことをいう。
高速コア21と低速コア22は、データ処理性能と電力消費量等の性能項目のうち少なくとも一つが異なる。例えば、高速コア21は、データ処理性能が高く電力消費の大きなコアであり低速コア22は高速コア21に比べて低消費電力でデータ処理性能が低い。
性能項目には、例えば、動作周波数、スループット(MIPS値)、バスの周波数、並列処理の度合いが含まれる。
本実施形態に係る情報処理システムは、高速コア21と低速コア22の2種類のコアを備えているが、2種類に限らず3種類以上の複数種類のコアを備えるようにしてもよい。さらに、本実施形態に係る情報処理システムは、コアの種類毎に複数個のコアを備えてもよい。
高速メモリ31と低速メモリ32は、コアがアクセスする場合の応答時間やバンド幅が異なる。例えば、高速メモリ31は、高速に応答可能な揮発性メモリであり、例えば、SRAM、DRAMである。高速メモリ31は、SRAMであってもよいし、DRAMであってもよいし、SRAMとDRAMを組み合わせたメモリであってもよい。また、例えば、M−type MRAM(Memory-type Magnetoresistive Random Access Memory)のような、コアに対してSRAM、DRAMと同程度または準ずる程度の速度で応答可能なメモリであってもよい。
低速メモリ32は、SRAMやDRAMと比べて、レイテンシが長いメモリ、つまり、コアがアクセスする場合に応答時間が長いメモリである。低速メモリ32は、例えば、ReRAM(Resistance Random Access Memory)、PCM(Phase Change Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、クロスポイント型メモリ、S−type MRAM(Storage-type Magnetoresistive Random Access Memory)、NAND型フラッシュメモリ、NOR型フラッシュメモリ、または、コアに対してこれらと同程度の速度で応答可能なメモリ、またはこれらの組み合わせであってもよい。また、低速メモリ32は、高速メモリ31に比べて、一般的に容量当たりの価格が低い。
本実施形態に係る情報処理システムは、高速メモリ31と低速メモリ32の2種類のメモリを備えているが、2種類に限らず3種類以上の複数種類のメモリを備えるようにしてもよい。さらに、本実施形態に係る情報処理システムは、メモリの種類毎に複数個のコアを対応付けてもよい。
外部メモリ40は、プログラムやデータを格納する不揮発性の記憶媒体である。外部メモリ40は、例えば、ハードディスクドライブなどの磁気ディスク、NAND型フラッシュメモリ、DVDなどの光学ディスク、磁気テープである。
なお、低速メモリ32が、不揮発性のメモリであり大容量の場合は、情報処理装置1は、低速メモリ32にプログラムやデータを格納することにより、外部メモリ40を省略することができる。
情報処理システム1が電源供給を受けたときに、外部メモリ40に格納されているプログラムがメモリに読み出され、コアは、メモリに読み出されたプログラムに応じた所定の処理を実行する。
管理プロセッサ10は、例えば、CPU等のプロセッサであり、発行されたタスクの管理を行う。管理プロセッサ10は、所定のタスクを高速コア21と低速コア22のいずれかのコアで実行することに決定した場合、DMAC50に対して外部メモリ40に格納されたプログラムやデータを高速メモリ31と低速メモリ32のいずれかのメモリに転送することを要求する。
タスクの発行は、例えば、情報処理システム1のユーザによるアプリケーション起動時に当該アプリケーションに対応するタスクの発行が管理プロセッサ10に通知される場合や、低速コア22で実行中のプログラムが高速計算を必要とするタスクを実行する際に管理プロセッサ10に通知される場合に、行われる。
DMAC(Direct Memory Access Controller)50は、ある記憶媒体に格納されたプログラムやデータを他の記憶媒体へコピーまたは移動する。DMAC50は、例えば、管理プロセッサ10から指定されたプログラムやデータを外部メモリ40から読み出し、高速メモリ31や低速メモリ32に転送する。また、管理プロセッサ10は、DMAC50を介すること無く、管理プロセッサ10が、外部メモリ40に格納された所定のプログラムや所定のデータを高速メモリ31や低速メモリ32に転送してもよい。
管理プロセッサ10と高速コア21−K(Kは1≦K≦Mを満たす自然数)と高速メモリ31−Kと外部メモリ40とDMAC50は、それぞれ内部バス60を介して相互に接続されている。また、管理プロセッサ10と低速コア22−L(Lは1≦L≦Nを満たす自然数)と低速メモリ32−Lと外部メモリ40とDMAC50は、それぞれ内部バス60を介して相互に接続されている。
なお、情報処理システム1は、内部バス60の替わりに、ネットワークを介して接続されるように構成されてもよい。また、情報処理システム1は、例えば、メモリ管理ユニット、外部装置とのインタフェース等をさらに備えていてもよい。
情報処理システム1における、高速コア21と高速メモリ31、低速コア22と低速メモリ32は、それぞれ1対1で対応する。
例えば、高速コア21−Mは高速メモリ31−Mに対応し、高速メモリ31−Mは、高速コア21−Mの主記憶となる。高速メモリ31−Mは、高速コア21−Mが直接アクセスできるメモリであり、高速コア21−M以外の高速コア21や低速コア22からはアクセスできない。
同様に、例えば、低速コア22−Nは低速メモリ32−Nに対応し、低速メモリ32−Nは、低速コア22−Nの主記憶となる。低速メモリ32−Nは、低速コア22−Nが直接アクセスできるメモリであり、低速コア22−N以外の低速コア22や高速コア21からはアクセスできない。
なお、本実施形態に係る情報処理システムでは、高速コア21と低速コア22と、高速メモリ31と低速メモリ32とを備える場合を例として説明しているが、この組み合わせに限定されず、3種類以上のコアとメモリとの組み合わせを備えてもよい。
管理プロセッサ10は、タスクスケジューラ11を備える。タスクスケジューラ11は、発行されたタスクの特性に基づいて、高速コア21と低速コア22のうちのどのコアで、発行されたタスクを実行するかを決定する。
タスクスケジューラ11は、タスクを実行するコアを決定するための判断基準を有する。タスクスケジューラ11は、タスクの動作する環境、タスクの計算量、メモリ転送量、各々のコアの実行状況等に基づいた判断基準を有し、この判断基準に従ってタスクを実行するコアを決定する。タスクの動作する環境には、例えば、バックグラウンドで実行するタスクであるか否かが含まれる。また、高速コア21、低速コア22のうち任意のコアが管理プロセッサ10やタスクスケジューラ11が備える機能を有してもよく、この場合、情報処理システム1は管理プロセッサ10を省略することができる。
複数の高速コア21−1、・・・、21−Mと、複数の高速メモリ31−1、・・・、31−Mと、複数の低速コア22−1、・・・、22−Nと、複数の低速メモリ32−1、・・・、32−Nと、管理プロセッサ10は、それぞれ、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)等により実現されてもよい。
また、LSI、ASIC、またはFPGA等が、複数の高速コア21−1、・・・、21−Mと、複数の高速メモリ31−1、・・・、31−Mと、複数の低速コア22−1、・・・、22−Nと、複数の低速メモリ32−1、・・・、32−Nと、管理プロセッサ10の全てを備えてもよい。
図2は、第1の実施形態に係る情報処理システムのタスク実行処理のフローチャートである。このフローチャートは、タスクが発行されてから、タスクが実行されるまでの処理を示している。
管理プロセッサ10は、タスクの発行を検出すると、発行されたタスクの特性を抽出する(ステップ201)。管理プロセッサ10は、例えば、発行されたタスクのメタデータを外部メモリ40から読み出し、読み出したメタデータからタスクの特性を抽出する。
管理プロセッサ10が抽出する特性は、タスクの動作する環境、タスクの実行に必要な計算量、タスクに関連するデータの転送量等である。タスクの動作する環境には、例えば、フォアグラウンドで実行するタスクであるかバックグラウンドで実行するタスクであるかといった情報が含まれる。
管理プロセッサ10は、例えば、発行されたタスクが、ゲーム用アプリケーションや動画再生用アプリケーション、Webブラウザ用アプリケーションのような応答性が重要視されるタスクの場合、フォアグラウンドで実行するタスクであると判断する。また、管理プロセッサ10は、例えば、発行されたタスクが、電子メール用アプリケーションやコンピュータウィルス対策用アプリケーションのような応答性が重要視されないタスクの場合、バックグラウンドで実行するタスクであると判断する。
また、管理プロセッサ10は、例えば、発行されたタスクがフォアグラウンドで実行されるべきか、バックグラウンドで実行されるべきかについての情報を、情報処理システム1全体を管理するOS(Operating System)から取得してもよい。
これらのタスクの特性は、情報処理システム1の出荷時に外部メモリ40に格納されてもよいし、管理プロセッサ10が、高速コア21−1、・・・、高速コア21−M、低速コア22−1、・・・低速コア22−Nの各々の過去の実行状況を基にして導いてもよい。
次に、管理プロセッサ10は、各コアの情報、すなわち、高速コア21−1、・・・、高速コア21−M、低速コア22−1、・・・低速コア22−Nの各々のリソースの利用状況等に関連する情報を取得する(ステップ202)。
タスクスケジューラ11は、所定の判断基準に従って、発行されたタスクを高速コア21−1、・・・、高速コア21−M、低速コア22−1、・・・低速コア22−Nのうちどのコアに割り当てるかを決定する(ステップ203)。
所定の判断基準は、例えば、管理プロセッサ10にて抽出されたタスクの特性、高速コア21−1、・・・、高速コア21−M、低速コア22−1、・・・低速コア22−Nの各々のコアのリソースの利用状況等に関連する情報等に基づいて決定される。
タスクスケジューラ11は、例えば、発行されたタスクの特性を考慮すること無く、高速コア21と低速コア22の各々のコアのリソースの利用状況に基づいてどのコアに割り当てるかを決定してもよいし、タスクスケジューラ11は、例えば、高速コア21と低速コア22の各々のコアのリソースの利用状況をチェックすること無く、特定されたタスクの特性に基づいてどのコアに割り当てるかを決定してもよい。
タスクスケジューラ11は、例えば、高速コア21が別のタスクを実行している場合に、発行されたタスクが応答性を重要視されないタスクの場合であっても、発行されたタスクを低速コア22に実行させるよりも、高速コア21で当該別のタスクと並行して実行させた方が、情報処理システム1の消費電力が低くなると判断した場合には、当該発行されたタスクを高速コア21で実行することに決定する。
例えば、高速コア21が当該別のタスクを実行していたとしても、高速コア21と高速メモリ31の演算負荷に余裕があり、当該発行されたタスクによる計算量やメモリ消費量が比較的少ない場合、当該発行されたタスクを低速コア22に実行させるよりも、当該発行されたタスクを高速コア21で当該別のタスクと並行して実行させた方が、情報処理システム1の消費電力が低くなる場合がある。このような場合には、タスクスケジューラ11は、当該発行されたタスクを高速コア21で実行することに決定する。
タスクスケジューラ11が、発行されたタスクを高速コア21で実行すると決定した場合(ステップ204Yes)、管理プロセッサ10は、DMAC50に対して外部メモリ40に格納されているプログラムやデータを高速メモリ31へ転送することを要求する(ステップ205)。管理プロセッサ10は、例えば、転送対象のプログラムやデータが格納されたDMAC50の先頭アドレス、転送対象のプログラムやデータのサイズ、転送先となる高速メモリ31の格納場所を示すアドレスを、DMAC50へ通知する。
DMAC50は、管理プロセッサ10から要求されたプログラムやデータを外部メモリ40から読み出し、読み出したプログラムやデータを、管理プロセッサ10から要求された高速メモリ31へ転送する(ステップ206)。プログラムやデータは高速メモリ31へ高速コア21により実行可能な形式で格納される。
なお、情報処理システム1がDMAC50を使用しないで、管理プロセッサ10が発行されたタスクに関連するプログラムやデータを外部メモリ40から高速メモリ31へ転送してもよい。
発行されたタスクに関連するプログラムやデータが高速メモリ31へ転送された後、管理プロセッサ10は高速コア21にタスクの実行を要求する(ステップ207)。
タスクの実行を要求された高速コア21は、高速メモリ31から所定のプログラムを読み出し、プログラムの記述を解釈してタスクを実行する(ステップ208)。
タスクスケジューラ11が、発行されたタスクを低速コア22で実行すると決定した場合(ステップ204No)、管理プロセッサ10は、DMAC50に対して外部メモリ40に格納されているプログラムやデータを低速メモリ32へ転送することを要求する(ステップ209)。管理プロセッサ10は、例えば、転送対象のプログラムやデータが格納されたDMAC50の先頭アドレス、転送対象のプログラムやデータのサイズ、転送先となる低速メモリ32の格納場所を示すアドレスを、DMAC50へ通知する。
DMAC50は、管理プロセッサ10から要求されたプログラムやデータを外部メモリ40から読み出し、読み出したプログラムやデータを、管理プロセッサ10から要求された低速メモリ32へ転送する(ステップ210)。プログラムやデータは低速メモリ32へ低速コア22により実行可能な形式で格納される。
なお、情報処理システム1がDMAC50を使用しないで、管理プロセッサ10が発行されたタスクに関連するプログラムやデータを外部メモリ40から低速メモリ32へ転送してもよい。
発行されたタスクに関連するプログラムやデータが低速メモリ32へ転送された後、管理プロセッサ10は低速コア22にタスクの実行を要求する(ステップ211)。
タスクの実行を要求された低速コア22は、低速メモリ32から所定のプログラムを読み出し、プログラムの記述を解釈してタスクを実行する(ステップ212)。
図3は、比較例としての情報処理システムの構成を示すブロック図である。比較例に係る情報処理システムは、複数の高速コア21−1、・・・、21−Mと、複数の低速コア22−1、・・・、22−Nと、複数のメモリ32−1、・・・、32−Oと、管理プロセッサ10と、外部メモリ40と、DMAC50とを備える。なお、Oは任意の自然数である。複数の高速コア21−1、・・・、21−Mと、複数の低速コア22−1、・・・、22−Nと、複数のメモリ33−1、・・・、33−Oと、管理プロセッサ10と、外部メモリ40と、DMAC50とは、内部バス60で接続される。
図3の比較例に示すように、比較例に係る情報処理システムは、複数の高速メモリ31−1、・・・、31−M、複数の低速メモリ32−1、・・・、32−Nの替わりに複数のメモリ33−1、・・・、33−Oを備える。また、以下の説明において、複数のメモリ33−1、・・・、33−Oのうち1つを特定する必要がある場合は符号33−1、・・・、33−Oを使用するが、複数のメモリ33−1、・・・、33−Oのうち任意のメモリを指す場合や複数のメモリ33−1、・・・、33−Oのうちあるメモリを他のメモリと区別しない場合には符号33を使用する。
メモリ33は高速コア21と低速コア22がアクセスでき、高速コア21または低速コア22の主記憶として使用される。
メモリ33が、高速メモリ31と同程度に高速に応答可能な揮発性メモリである場合、高い計算能力を必要としないタスクで使用されるデータであっても高速に応答可能な揮発性メモリに配置されることになる。これらのデータによりメモリ33の容量がひっ迫し、高い計算能力を必要とするタスクの高速実行を阻害することがある。また、高速に応答可能な揮発性メモリは一般的に価格が高価であり、高い計算能力を必要とするタスクの高速実行を阻害しないためにメモリ33の容量を増加させることは、比較例に係る情報処理システムのコスト増をもたらす。
また、メモリ33が、低速メモリ32と同程度の応答性能を有するメモリである場合、高速コア21からのアクセスに対して、メモリ33からの応答が返るまでの時間が、メモリ33の替わりにDRAM等を使用する場合に比べて長くなる場合がある。この場合、高速コア21の利用効率が低下し、高速コア21を使用しているにもかかわらず、比較例に係る情報処理システムの利用性能が悪化してしまう。
一方、本実施形態に係る情報処理システムでは、高速コア21の性能に見合う高速メモリ31を高速コア21の主記憶とし、低速コア22の性能に見合う低速メモリ32を低速コア22の主記憶とすることで、本実施形態に係る情報処理システムの利用効率低下を抑え、コスト増を抑えつつ、主記憶の容量の増大を図ることができる。
以上のように、第1の実施形態によれば、情報処理システム1は、管理プロセッサ10と、高速コア21と、低速コア22と、高速コア21に対応する高速メモリ31と、低速コア22に対応する低速メモリ32と、を備え、管理プロセッサ10は発行されたタスクを高速コア21と低速コア22のどちらで実行するか決定する。管理プロセッサ10がタスクを高速コア21で実行すると決定した場合、高速メモリ31へタスクに対応するプログラムやデータが保存され、高速コア21が高速メモリ31を使用してプログラムを実行する。管理プロセッサ10がタスクを低速コア22で実行すると決定した場合、低速メモリ32へタスクに対応するプログラムやデータが保存され、低速コア22が低速メモリ32を使用してプログラムを実行する。タスクに応じてタスクを実行するコアが使い分けられ、処理を実行するコアの性能に応じてコアが使用する主記憶が使い分けられることによりコアの利用効率が向上し、主記憶の容量の増大が図られ、情報処理システム1の消費電力が抑えられる。
(第2の実施形態)
図4は、第2の実施形態に係る情報処理システムの構成を示すブロック図である。なお、第1実施形態の構成と同一または類似の機能を有する構成は、同一の符号を付してその説明を省略する。また、下記に説明する以外の構成は、第1の実施形態と同じである。
第2の実施形態に係る情報処理システムは、メモリアクセスコントローラ70を備える。
第2の実施形態に係る情報処理システムにおける、高速コア21と高速メモリ31、低速コア22と低速メモリ32は、それぞれ1対1で対応しなくてもよい。情報処理システム1が備える高速メモリ31の個数はP個であり、情報処理システム1が備える低速メモリ32の個数はQ個である。なお、PおよびQは任意の自然数である。PはMと同一でもよいし、異なってもよい。また、QはNと同一であってもよいし、異なってもよい。
なお、本実施形態において、高速メモリ31を示す符号としては、複数の高速メモリのうち1つを特定する必要があるときは符号31−1、・・・、31−Pを使用するが、任意の高速メモリを指すときには符号31を使用する。また、本実施形態において、低速メモリ32を示す符号としては、複数の低速メモリのうち1つを特定する必要があるときは符号32−1、・・・、32−Qを使用するが、任意の低速メモリを指すときには符号32を使用する。
メモリアクセスコントローラ70は、高速コア21−1、・・・、高速コア21−Mと、高速メモリ31−1、・・・、高速メモリ31−Pと、低速コア22−1、・・・、低速コア22−Nと、低速メモリ32−1、・・・、低速メモリ32−Qと、内部バス60を介して接続される。
管理プロセッサ10は、高速コア21−1、・・・、高速コア21−Mと、高速メモリ31−1、・・・、高速メモリ31−Pと、低速コア22−1、・・・、低速コア22−Nと、低速メモリ32−1、・・・、低速メモリ32−Qと、メモリアクセスコントローラ70と、外部メモリ40と、DMAC50と、内部バス60を介して接続される。
高速コア21は、管理プロセッサ10と、メモリアクセスコントローラ70と、内部バス60を介して接続される。
低速コア22は、管理プロセッサ10と、メモリアクセスコントローラ70と、内部バス60を介して接続される。
高速メモリ31は、管理プロセッサ10と、メモリアクセスコントローラ70と、外部メモリ40と、DMAC50と、内部バス60を介して接続される。
低速メモリ32は、管理プロセッサ10と、メモリアクセスコントローラ70と、外部メモリ40と、DMAC50と、内部バス60を介して接続される。
なお、本実施形態に係る情報処理システムでは、内部バス60の代わりに、ネットワークを介して接続されるように構成されてもよい。また、メモリアクセスコントローラ70は、高速コア21−1、・・・、高速コア21−Mと、高速メモリ31−1、・・・、高速メモリ31−Pと、低速コア22−1、・・・、低速コア22−Nと、低速メモリ32−1、・・・、低速メモリ32−Qと、内部バス60を介して接続されているが、この接続方式に限定されない。
高速コア21、低速コア22は、第1の実施形態に係る情報処理システムの場合と異なり、メモリアクセスコントローラ70を介して高速メモリ31、低速メモリ32へアクセスする。
メモリアクセスコントローラ70は,高速コア21から指定された論理アドレスを高速メモリ31へアクセスするための物理アドレスに対応付ける。また、メモリアクセスコントローラ70は、低速コア22から指定された論理的なアドレスを低速メモリ32へアクセスするための物理アドレスに対応付ける。
高速コア21−1、・・・、21−Mは、各々独自の論理アドレス空間を持ってもいいし、高速コア21−1、・・・、21−Mのうちのいくつかの高速コア21で論理アドレス空間を共有してもよい。同様に低速コア22−1、・・・、22−Nは、各々独自の論理アドレス空間を持ってもいいし、低速コア22−1、・・・、22−Nのうちのいくつかの低速コア22で論理アドレス空間を共有してもよい。また、高速コア21−1、・・・、21−M、低速コア22−1、・・・、22−Nのうちのいくつかが論理アドレス空間を共有してもよい。
メモリ空間の構成は情報処理システム1の仕様に合わせて適宜変形されてもよい。例えば、単一のメモリ空間が、単一の高速メモリ31により構成されてもよいし、複数の高速メモリ31により構成されてもよい。高速コア21及び低速コア22でメモリ空間を共有する場合は、メモリ空間は高速メモリ31と低速メモリ32で構成されるのが望ましい。
管理プロセッサ10はメモリアクセスコントローラ70と通信することができ、管理プロセッサ10は、メモリアクセスコントローラ70に対してどの論理アドレス領域をどのメモリ領域と対応付けるか要求することができる。つまり、例えば、発行されたタスクが高い応答性を求める場合は、管理プロセッサ10は、タスクのために割り当てるメモリ領域を高速メモリ31により構成されることを要求する。また、例えば、発行されたタスクが高い応答性を求めない場合は、管理プロセッサ10は、タスクのために割り当てるメモリ領域を低速メモリ32により構成されることを要求する。
図5は、第2の実施形態に係る情報処理システムのタスク実行処理のフローチャートである。このフローチャートは、タスクが発行されてから、タスクが実行されるまでの処理を示している。
第2の実施形態に係る情報処理システムでは、第1の実施形態に係る情報処理システムと異なり、DMAC50が、管理プロセッサ10から要求されたプログラムやデータを外部メモリ40から読み出し、読み出したプログラムやデータを、管理プロセッサ10から要求された高速メモリ31へ転送した(ステップ206)後に、管理プロセッサ10が、メモリアクセスコントローラ70に対して、読み出されたプログラムやデータが転送された高速メモリ31の転送先領域の物理アドレスと対応付ける論理アドレスを通知する(ステップ501)。これにより、メモリアクセスコントローラ70は、論理アドレスと物理アドレスを得ることができ、論理アドレスと物理アドレスを対応付けることができる。これにより、高速コア21は、メモリアクセスコントローラ70を介して、高速メモリ31へアクセスできる。
また、第2の実施形態に係る情報処理システムでは、ステップ501に続いて、メモリアクセスコントローラ70が、高速コア21がアクセスする論理アドレスと物理アドレスの対応付けを行う(ステップ502)。メモリアクセスコントローラ70は、高速コア21がアクセスする論理アドレスと物理アドレスの対応付けを、例えばテーブル形式で、メモリアクセスコントローラ70内に保存する。なお、管理プロセッサ10は、タスクの実行要求毎ではなく、システム起動時にプログラムやデータが転送される領域の物理アドレスと論理アドレスとを対応付けてもよい。管理プロセッサ10がシステム起動時に物理アドレスと論理アドレスとを対応付ける場合、高速コア21が高速メモリ31にアクセスする際、高速コア21は予め対応付けられた論理アドレスへアクセスすることとなる。第2の実施形態に係る情報処理システムでは、ステップ502に続いて、管理プロセッサ10は高速コア21にタスクの実行を要求し(ステップ207)、タスクの実行を要求された高速コア21は、高速メモリ31から所定のプログラムを読み出し、プログラムの記述を解釈してタスクを実行する(ステップ208)。
同様に、第2の実施形態に係る情報処理システムでは、第1の実施形態に係る情報処理システムと異なり、DMAC50が、管理プロセッサ10から要求されたプログラムやデータを外部メモリ40から読み出し、読み出したプログラムやデータを、管理プロセッサ10から要求された低速メモリ32へ転送した(ステップ210)後に、管理プロセッサ10が、メモリアクセスコントローラ70対して、読み出されたプログラムやデータが転送された低速メモリ32の転送先領域のアドレスを通知する(ステップ503)。これにより、メモリアクセスコントローラ70は、論理アドレスと物理アドレスを得ることができ、論理アドレスと物理アドレスを対応付けることができる。これにより、低速コア22は、メモリアクセスコントローラ70を介して、低速メモリ32へアクセスできる。
また、第2の実施形態に係る情報処理システムでは、ステップ503に続いて、メモリアクセスコントローラ70が、低速コア22がアクセスする論理アドレスと物理アドレスの対応付けを行う(ステップ504)。メモリアクセスコントローラ70は、低速コア22がアクセスする論理アドレスと物理アドレスの対応付けを、例えばテーブル形式で、メモリアクセスコントローラ70内に保存する。なお、管理プロセッサ10は、タスクの実行要求毎ではなく、システム起動時にプログラムやデータが転送される領域の物理アドレスと論理アドレスとを対応付けてもよい。管理プロセッサ10がシステム起動時に物理アドレスと論理アドレスとを対応付ける場合、低速コア22が低速メモリ32にアクセスする際、低速コア22は予め対応付けられた論理アドレスへアクセスすることとなる。第2の実施形態に係る情報処理システム1では、ステップ504に続いて、管理プロセッサ10は低速コア22にタスクの実行を要求し(ステップ211)、タスクの実行を要求された低速コア22は、低速メモリ32から所定のプログラムを読み出し、プログラムの記述を解釈してタスクを実行する(ステップ212)。
図6は、第2の実施形態に係る情報処理システムのメモリアクセスコントローラの動作を示すフローチャートである。このフローチャートは、メモリアクセスコントローラ70が高速コア21と低速コア22のうち一方のコアからデータ要求を受信してからメモリアクセスコントローラ70がメモリへアクセスするまでの処理を示す。
メモリアクセスコントローラ70は、高速コア21と低速コア22のうち一方のコアからデータ要求を受信すると、データ要求発行元のコア及びデータ要求に対応する論理アドレスを取得する(ステップ601)。
メモリアクセスコントローラ70は、例えばメモリアクセスコントローラ70内のテーブルを使用して、取得した論理アドレスに対応する物理アドレスを特定する(ステップ602)。
メモリアクセスコントローラ70は、データ要求元のコアが高速コア21か低速コア22かを判定する(ステップ603)。
メモリアクセスコントローラ70は、データ要求元のコアが高速コア21である場(ステップ603Yes)、ステップ602で特定された物理アドレスを使用して、高速メモリ31へアクセスする(ステップ604)。
メモリアクセスコントローラ70は、データ要求元のコアが低速コア22である場(ステップ603No)、ステップ602で特定された物理アドレスを使用して、低速メモリ32へアクセスする(ステップ605)。
上述した第2の実施形態によれば、情報処理システム1において、第1の実施形態と同様に、実行対象のタスクに応じてコアを使い分け、処理を実行するコアの性能に応じてコアが使用するメモリを使い分けることによりコアの利用効率が向上し、情報処理システム1の消費電力が抑えられる。また、第2の実施形態によれば、情報処理システム1において、高速コア21と高速メモリ31との接続関係の柔軟性、低速コア22と低速メモリ32との接続関係の柔軟性を向上させることが出来る。
(第3の実施形態)
図7及び図8は、第3の実施形態に係る情報処理システムにおける動作概要を説明するための概念図であり、情報処理システム1において、タスクBを実行するコアが高速コア21から低速コア22に移る場合の動作概要を示す図である。なお、第1実施形態の構成と同一または類似の機能を有する構成は、同一の符号を付してその説明を省略する。また、下記に説明する以外の構成は、第1の実施形態と同じである。
図7は、高速コア21が1つ、高速メモリ31が1つ、低速コア22が1つ、低速メモリ32が1つの場合、すなわち、管理プロセッサ10と高速コア21−1と高速メモリ31−1と低速コア22−1と低速メモリ32−1と外部メモリ40とDMAC50とを備える情報処理システム1において、高速コア21−1によりタスクAとタスクBが実行されており、低速コア22−1によりタスクCが実行されている場合の情報処理システム1の構成を示している。なお、本実施形態に係る情報処理システムでは、高速コア21が1つ、低速コア22が1つの場合に限定されない。
高速メモリ31−1には、タスクスケジューラ21により、タスクAに対応するテキスト領域とデータ領域とスタック領域、及びタスクBに対応するテキスト領域とデータ領域とスタック領域が割り当てられる。低速メモリ32−1には、タスクスケジューラ21により、タスクCに対応するテキスト領域とデータ領域とスタック領域が割り当てられる。
ここで、テキスト領域は、タスクのプログラム内容がコピーされる領域であり、タスク毎に固定の内容となる。データ領域は、静的領域とヒープ領域を含む。静的領域は、例えば、グローバル変数などの静的変数が保存される領域である。ヒープ領域は、例えば、タスク内の処理が、動的に割り当てたり、解放したりすることができる領域である。スタック領域は、例えば、タスク内の処理のローカル変数やレジスタが保存される領域である。
タスクBに対応するテキスト領域は、固定の内容であるため、情報処理システム1の起動時または動作途中において高速メモリ31−1と低速メモリ32−1とで共有することが可能である。そのため、タスクスケジューラ21は、情報処理システム1の起動時または動作途中に、高速メモリ31−1のタスクBに対応するテキスト領域を低速メモリ32−1へ転送する。
また、高速メモリ31−1及び低速メモリ32−1には、それぞれ、再開情報送信キュー、再開情報受信キューのための領域が割り当てられている。再開情報送信キュー、再開情報受信キューは、コア間で再開情報が通信される際に使用される。再開情報は、例えばプログラムカウンタのような、どこから処理を再開すべきかの情報、を含む。
図8は、図7に示すような高速コア21−1によりタスクAとタスクBが実行され低速コア22−1によりタスクCが実行されている状態から、管理プロセッサ10が、タスクBを実行させるコアを高速コア21−1から低速コア22−1へ切り替えることを決定した場合に、管理プロセッサ10が、高速メモリ31−1に格納されているタスクBに対応するデータ領域とスタック領域のデータを低速メモリ32−1へ転送する際のデータのコピーの概要を示す。
図8に示すように、タスクBを実行させるコアが高速コア21−1から低速コア22−1へ切り替わる際、高速メモリ31−1に格納されているタスクBに対応するデータ領域とスタック領域のデータが低速メモリ32−1への転送対象となる。タスクBに対応するテキスト領域は、固定の内容であるため、低速メモリ32−1へ転送されるタイミングは、タスクBを実行させるコアが高速コア21−1から低速コア22−1へ切り替わるタイミングである必要は無い。
図9は、第3の実施形態に係る情報処理システムのタスク実行処理のフローチャートである。このフローチャートは、タスクが発行されてから、タスクが実行開始されるまでの処理を示している。
第3の実施形態に係る情報処理システムでは、第1の実施形態に係る情報処理システムと異なり、管理プロセッサ10は、高速コア21−1、・・・、高速コア21−M、低速コア22−1、・・・低速コア22−Nの各々のリソースの利用状況等に関連する情報を取得し(ステップ202)、これらの情報に基づいて高速コア21−1、・・・、高速コア21−M、低速コア22−1、・・・低速コア22−Nのうちタスクを実行するコアを選択、決定した(ステップ203)後に、管理プロセッサ10は、タスクの動作中に実行元のコアを切り替えるかどうかを判定する(ステップ901)。この判定は、例えば、要求される応答性が変化することによりフォアグランド実行とバックグラウンド実行の切り替えが発生するか等のタスクの特性や、当該タスクの実行による実行元のコアの資源利用率、発生する計算量、メモリへアクセスするデータ量がどの程度変化するか、によって決定される。
タスクの動作中に実行元のコアを切り替えると判定する場合(ステップ901Yes)、管理プロセッサ10は、DMAC50へ外部メモリ40に格納されているタスクのテキスト領域を高速メモリ31と低速メモリ32へ転送するように要求する(ステップ902)。DMAC50は、管理プロセッサ10から要求を受信したら、タスクのテキスト領域を外部メモリ40から高速メモリ31と低速メモリ32の両方へ転送する(ステップ903)。
さらに、管理プロセッサ10は、DMAC50へ外部メモリ40に格納されているタスクのデータ領域及びスタック領域を高速メモリ31または低速メモリ32のいずれかへ転送するように要求する(ステップ904)。DMAC50は、管理プロセッサ10から要求を受信したら、タスクのデータ領域及びスタック領域を外部メモリ40から高速メモリ31または低速メモリ32のいずれかへ転送する(ステップ905)。
なお、タスクの動作するコアを切り替える際に、切り替え先のコアに対応するデータ領域とスタック領域は切り替え元のコアに対応するデータ領域とスタック領域により上書きされるため、タスクの実行開始時点においては、高速メモリ31と低速メモリ32の両方へタスクのデータ領域及びスタック領域が転送されたとしても情報処理システム1の動作上問題はない。そのため、ステップ904において、管理プロセッサ10は、DMAC50へ外部メモリ40に格納されているタスクのデータ領域及びスタック領域を高速メモリ31と低速メモリ32の両方へ転送するように要求してもよい。この場合、ステップ905において、DMAC50は、管理プロセッサ10から要求を受信したら、タスクのデータ領域及びスタック領域を外部メモリ40から高速メモリ31と低速メモリ32の両方へ転送する。
タスクが起動から終了時までに利用するリソース量が変化しない等の理由により、管理プロセッサ10が、タスクの動作中に実行元のコアを切り替えないと判定する場合(ステップ901No)、管理プロセッサ10は、DMAC50へ外部メモリ40に格納されているタスクのテキスト領域及びデータ領域及びスタック領域を高速メモリ31または低速メモリ32へ転送するように要求する(ステップ906)。DMAC50は、管理プロセッサ10から要求を受信したら、タスクのテキスト領域及びデータ領域及びスタック領域を外部メモリ40から高速メモリ31または低速メモリ32へ転送する(ステップ907)。
タスクのテキスト領域及びデータ領域及びスタック領域を外部メモリ40から高速メモリ31または低速メモリ32へ転送された後、管理プロセッサ10は、ステップ203にて選択、決定されたコアに対して実行要求する(ステップ908)。これにより、実行要求を受けたコアが対応するメモリから所定のデータを読み出して、タスクの実行を開始する(ステップ909)。
図10は、第3の実施形態に係る情報処理システムのタスクが実行される動作コアが高速コア21から低速コア22へ切り替わる場合における処理のフローチャートであり、高速コア21で実行しているタスクを低速コア22へ移動する場合の処理のフローチャートを示している。
管理プロセッサ10が、タスクが実行される動作コアが低速コア22から高速コア21へ移動することを決定する(ステップ1001)。動作コアの移動を決定する要因としては、タスクの動作がフォアグラウンドからバックグラウンドに移る場合や、タスクがサスペンドした場合や、あるタスクがメモリをひっ迫し他のタスクの動作速度を落としている場合などが挙げられる。
その後、管理プロセッサ10は、高速コア21に対するタスク動作を停止させて高速コア21で動作しているタスクを低速コア22で実行させるための割り込みを高速コア21に対して発行する(ステップ1002)。
高速コア21は、割り込みが通知されたら、高速コア21のタスク動作を停止し、再開情報の状態を高速メモリ31の再開情報送信キュー311へプッシュする(ステップ1003)。また、高速コア21のタスク動作を停止する際、高速コア21のレジスタを退避させるため、高速コア21は、高速コア21の各動作情報をスタック領域に保存する。再開情報送信キュー311は、高速コア21が再開情報を管理するためのキューである。
高速コア21は、高速コア21が動作を停止したことを管理プロセッサ10に対して割り込みを発行することにより通知する(ステップ1004)。
管理プロセッサ10は、割り込みが通知されたら、DMAC50へ高速メモリ31に格納されているタスクのデータ領域及びスタック領域を低速メモリ32へ転送するように要求する(ステップ1005)。DMAC50は、管理プロセッサ10から要求を受信したら、タスクのデータ領域及びスタック領域を高速メモリ31から低速メモリ32へ転送する(ステップ1006)。
管理プロセッサ10は、DMAC50に対して、高速メモリ31から低速メモリ32へ再開情報を転送するように要求する(ステップ1007)。DMAC50は、管理プロセッサ10から要求を受信したら、高速メモリ31の再開情報送信キュー31から再開情報を読み出し、読み出した再開情報を低速メモリ32の再開情報受信キュー322へ転送する(ステップ1008)。
DMAC50が、タスクのデータ領域及びスタック領域の低速メモリ32への転送及び再開情報の低速メモリ32の再開情報受信キュー322への転送を完了したら、管理プロセッサ10は、低速コア22に対して、タスクの実行を要求するための割り込みを通知する(ステップ1009)。
低速コア22は、割り込みを受信したら、再開情報受信キュー322から再開情報を読み出し、スタック領域から高速コア21での中断した状態を復元し、タスクを実行する(ステップ1010)。
図11は、第3の実施形態に係る情報処理システムのタスクが実行される動作コアが低速コア22から高速コア21へ切り替わる場合における処理のフローチャートである。すなわち、図11は、低速コア22で実行しているタスクを高速コア21へ移動する場合の処理のフローチャートを示している。
管理プロセッサ10は、タスクが実行される動作コアが低速コア22から高速コア21へ移動することを決定する(ステップ1101)。動作コアの移動を決定する要因としては、タスクの動作がバックグラウンドからフォアグラウンドに移る場合や、あるタスクの実行によりメモリがひっ迫し他のタスクの動作速度が落ちている場合や、高速コア21のリソースに余裕がある場合などが挙げられる。
その後、管理プロセッサ10は、低速コア22に対する動作を停止させて低速コア22で動作しているタスクを高速コア21で実行させるための割り込みを低速コア22に対して発行する(ステップ1102)。
低速コア22は、割り込みが通知されたら、低速コア22のタスク動作を停止し、再開情報の状態を低速メモリ32の再開情報送信キュー321へプッシュする(ステップ1103)。また、低速コア22のタスク動作を停止する際、低速コア22のレジスタを退避させるため、低速コア22は、低速コア22の各動作情報をスタック領域に保存する。再開情報送信キュー321は、低速コア22が再開情報を管理するためのキューである。
低速コア22は、低速コア22が動作を停止したことを管理プロセッサ10に対して割り込みを発行することにより通知する(ステップ1104)。
管理プロセッサ10は、割り込みが通知されたら、DMAC50へ低速メモリ32に格納されているタスクのデータ領域及びスタック領域を高速メモリ31へ転送するように要求する(ステップ1105)。DMAC50は、管理プロセッサ10から要求を受信したら、タスクのデータ領域及びスタック領域を低速メモリ32から高速メモリ31へ転送する(ステップ1106)。
管理プロセッサ10は、DMAC50に対して、低速メモリ32から高速メモリ31へ再開情報を転送するように要求する(ステップ1107)。DMAC50は、管理プロセッサ10から要求を受信したら、低速メモリ32の再開情報送信キュー321から再開情報を読み出し、読み出した再開情報を高速メモリ31の再開情報受信キュー312へ転送する(ステップ1108)。
DMAC50が、タスクのデータ領域及びスタック領域の高速メモリ31への転送及び再開情報の高速メモリ31の再開情報受信キュー312への転送を完了したら、管理プロセッサ10は、高速コア21に対して、タスクの実行を要求するための割り込みを通知する(ステップ1109)。
高速コア21は、割り込みを受信したら、再開情報受信キュー312から再開情報を読み出し、タスクを実行する(ステップ1110)。
上述した第3の実施形態によれば、情報処理システム1において、第1の実施形態と同様に、実行対象のタスクに応じてコアを使い分け、処理を実行するコアの性能に応じてコアが使用するメモリを使い分けることによりコアの利用効率が向上し、情報処理システム1の消費電力が抑えられる。また、動作するコアを切り替える際に切り替え元のコアと切り替え先のコアの両方には最低限のデータしか配置しないことにより、また、タスクの実行状況に応じて動作するコアを切り替えることにより、コアの利用効率低下が防止でき、タスクが求める実行速度を維持しつつ消費電力を抑えることが出来る。
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他のさまざまな形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1・・・情報処理システム
10・・・管理プロセッサ
11・・・タスクスケジューラ
21・・・高速コア
22・・・低速コア
31・・・高速メモリ
32・・・低速メモリ
40・・・外部メモリ
50・・・DMAC
60・・・内部バス
70・・・メモリアクセスコントローラ

Claims (10)

  1. 第1のコアと、
    前記第1のコアよりもデータ処理性能が低い第2のコアと、
    前記第1のコアからアクセス可能な第1のメモリと、
    前記第2のコアからアクセス可能であって、前記第1のメモリよりもレイテンシが長い第2のメモリと、
    発行されたタスクを前記第1のコアで実行するか前記第2のコアで実行するか決定し、前記第1のコアで実行すると決定した場合、前記発行されたタスクに関連するデータを前記第1のメモリへ転送して前記第1のコアに前記タスクを実行させ、前記第2のコアで実行すると決定した場合、前記発行されたタスクに関連するデータを前記第2のメモリへ転送して前記第2のコアに前記タスクを実行させる管理プロセッサと、
    を備える情報処理システム。
  2. 前記管理プロセッサは、前記発行されたタスクのメタデータに基づいて前記発行されたタスクを前記第1のコアで実行するか前記第2のコアで実行するか決定する請求項1に記載の情報処理システム。
  3. 前記管理プロセッサは、前記第1コア、前記第1メモリ、前記第2コア、前記第2メモリのリソース利用状況に基づいて前記発行されたタスクを前記第1のコアで実行するか前記第2のコアで実行するか決定する請求項1又は請求項2に記載の情報処理システム。
  4. 前記管理プロセッサは、フォアグラウンドで実行するタスクを前記第1コアに実行させ、バックグラウンドで実行するタスクを前記第2コアに実行させる請求項1乃至請求項3の何れか1項に記載の情報処理システム。
  5. 前記第1のメモリは、DRAM、SRAM、M‐Type MRAMのうち少なくとも一方である請求項1乃至請求項4の何れか1項に記載の情報処理システム。
  6. 前記第1のコアは前記第2のメモリへアクセスできず、前記第2のコアは前記第1のメモリへアクセスできない請求項1乃至請求項5の何れか1項に記載の情報処理システム。
  7. 前記第1のコアを複数備え、
    前記第1のメモリを複数備え、
    前記複数の第1のコアの一つである第3のコアは前記複数の第1のメモリの一つである第3のメモリを主記憶として使用し、
    前記複数の第1のコアの一つであって前記第3のコアとは異なる第4のコアは前記複数の第1のメモリの一つであって前記第3のメモリとは異なる第4のメモリを主記憶として使用し、
    前記第3のコアは前記第4のメモリへアクセスできず、前記第4のコアは前記第3のメモリへアクセスできない請求項1乃至請求項6の何れか1項に記載の情報処理システム。
  8. 前記第1のコアが前記第1のメモリのアクセスに使用する論理アドレスと前記第1のメモリの物理アドレスとの対応付け及び第2のコアが前記第2のメモリのアクセスに使用する論理アドレスと前記第2のメモリの物理アドレスとの対応付けを行うメモリアクセスコントローラを更に備える請求項1乃至請求項6の何れか1項に記載の情報処理システム。
  9. 前記管理プロセッサは、前記発行されたタスクに関連するデータを前記第1メモリまたは前記第2のメモリへ転送したことを前記メモリアクセスコントローラへ通知し、前記メモリアクセスコントローラは前記通知に対して前記対応付けを行う請求項8に記載の情報処理システム。
  10. 前記管理プロセッサは、前記発行されたタスクがタスク実行中に前記第1のコアから前記第2のコアへ切り替える必要があるか判定し、切り替える必要があると判定した場合、前記第2のコアへの切り替えの前に前記タスクのテキスト領域のデータを前記第1メモリと前記第2メモリに保存し、実行中のタスクを前記第1のコアから前記第2のコアへ切り替える場合に、前記タスクのデータ領域のデータとスタック領域のデータを前記第2メモリに保存し、前記第2コアへ前記タスクの実行を要求する請求項1乃至請求項6の何れか1項に記載の情報処理システム。
JP2016153159A 2016-08-03 2016-08-03 情報処理システム Pending JP2018022345A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016153159A JP2018022345A (ja) 2016-08-03 2016-08-03 情報処理システム
US15/438,683 US20180039523A1 (en) 2016-08-03 2017-02-21 Information processing system that determines a memory to store program data for a task carried out by a processing core

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016153159A JP2018022345A (ja) 2016-08-03 2016-08-03 情報処理システム

Publications (1)

Publication Number Publication Date
JP2018022345A true JP2018022345A (ja) 2018-02-08

Family

ID=61069269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016153159A Pending JP2018022345A (ja) 2016-08-03 2016-08-03 情報処理システム

Country Status (2)

Country Link
US (1) US20180039523A1 (ja)
JP (1) JP2018022345A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019179415A (ja) * 2018-03-30 2019-10-17 株式会社デンソー マルチコアシステム
WO2022196889A1 (ko) * 2021-03-19 2022-09-22 삼성전자 주식회사 멀티 프로세서를 포함하는 전자 장치 및 그 운용 방법
US11487582B2 (en) 2019-09-10 2022-11-01 Fujitsu Limited Information processing apparatus and computer-readable recording medium having stored therein process allocation determining program

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248469B2 (en) 2017-01-19 2019-04-02 International Business Machines Corporation Software based collection of performance metrics for allocation adjustment of virtual resources
KR102298947B1 (ko) * 2017-04-28 2021-09-08 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
US11169916B2 (en) * 2018-09-24 2021-11-09 Hewlett Packard Enterprise Development Lp Exception handling in wireless access points
US10872004B2 (en) * 2018-11-15 2020-12-22 Intel Corporation Workload scheduling and coherency through data assignments
KR20220038987A (ko) * 2020-09-21 2022-03-29 삼성전자주식회사 전자장치 및 그 제어방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019179415A (ja) * 2018-03-30 2019-10-17 株式会社デンソー マルチコアシステム
US11487582B2 (en) 2019-09-10 2022-11-01 Fujitsu Limited Information processing apparatus and computer-readable recording medium having stored therein process allocation determining program
WO2022196889A1 (ko) * 2021-03-19 2022-09-22 삼성전자 주식회사 멀티 프로세서를 포함하는 전자 장치 및 그 운용 방법

Also Published As

Publication number Publication date
US20180039523A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
JP2018022345A (ja) 情報処理システム
CN112099941B (zh) 实现硬件加速处理的方法、设备和系统
JP6314355B2 (ja) メモリ管理方法およびデバイス
US11093297B2 (en) Workload optimization system
CN110795206B (zh) 用于促进集群级缓存和内存空间的系统和方法
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
US20140095769A1 (en) Flash memory dual in-line memory module management
JP6101170B2 (ja) 計算機システム、キャッシュ管理方法、及び計算機
KR20150132432A (ko) 네트워크를 통한 메모리 공유
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
US20160253216A1 (en) Ordering schemes for network and storage i/o requests for minimizing workload idle time and inter-workload interference
US10459771B2 (en) Lightweight thread synchronization using shared memory state
US20180150232A1 (en) Memory overcommit by speculative fault
EP3120251A1 (en) Asynchronously prefetching sharable memory pages
US20070220217A1 (en) Communication Between Virtual Machines
WO2024078342A1 (zh) 内存交换方法、装置、计算机设备及存储介质
CN105630576A (zh) 一种虚拟化平台中的数据处理方法及装置
US11157191B2 (en) Intra-device notational data movement system
JP2014178981A (ja) フォールトトレラントサーバ
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
JP5131269B2 (ja) マルチプロセッシングシステム
KR102063281B1 (ko) 파일에 접근하기 위한 방법과 장치, 및 저장 시스템
JP2021149374A (ja) データ処理装置
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
US10884477B2 (en) Coordinating accesses of shared resources by clients in a computing device

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170531

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20170821

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180907

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20180907