(57)【要約】【課題】計算プログラムの設計上の自由度を向上させるとともに、動的にメモリ管理を行うことができるプロセッサ装置、情報処理装置及びメモリ管理方法を提供する。【解決手段】マルチコアプロセッサ２１は、メモリ３３Ａ〜３３Ｎの未使用領域を計算処理のために確保するメモリ管理プログラム３３０Ａと、メモリ３３Ａ〜３３Ｎの計算処理のために確保された領域を使用して計算処理を実行する計算プログラム３３０Ｂとをそれぞれ実行する計算コア３２Ａ〜３２Ｎと、計算コア３２Ａ〜３２Ｎと接続されるとともに、計算プログラム３３０Ｂが計算処理を終了すると、メモリ３３Ａ〜３３Ｎにおいて計算処理のために確保された領域を回収処理するメモリ管理プログラム３１０を実行する管理コア３０とを有する。【選択図】図２
2010072790.tif 000002
【特許請求の範囲】
【請求項１】
メモリの未使用領域を計算処理のために確保する第１のメモリ管理プログラムと、前記メモリの前記計算処理のために確保された領域を使用して前記計算処理を実行する計算プログラムとを実行する計算コアと、
前記計算コアと接続されるとともに、前記計算プログラムが前記計算処理を終了すると、前記メモリにおいて前記計算処理のために確保された領域を回収処理する第２の管理プログラムを実行する管理コアとを有することを特徴とするプロセッサ装置。
【請求項２】
前記第１のメモリ管理プログラムは、前記メモリの未使用領域を使用中領域とすることで前記計算処理のための領域を確保し、
前記第２のメモリ管理プログラムは、前記使用中領域を前記未使用領域とすることで前記回収処理を実行することを特徴とする請求項１に記載のプロセッサ装置。
【請求項３】
前記メモリは、前記計算プログラムと、前記第１のメモリ管理プログラムとを格納することを特徴とする請求項１に記載のプロセッサ装置。
【請求項４】
メモリを有し、前記メモリを使用して計算処理するための計算プログラムと、前記メモリの未使用領域を前記計算プログラムの前記計算処理のために使用中領域として確保し、前記計算プログラムが前記計算処理を完了すると前記使用中領域を使用済領域とする第１のメモリ管理プログラムとを実行する計算コアと、
前記計算コアと接続されて、前記メモリにおける前記使用済領域を前記未使用領域とする第２の管理プログラムを実行する管理コアとを有するプロセッサ装置を有することを特徴とする情報処理装置。
【請求項５】
計算コアがメモリの未使用領域を使用中領域として確保するメモリ確保ステップと、
前記使用中領域を用いて前記計算コアが計算処理を実行する計算処理実行ステップと、
管理コアが前記計算コアの前記計算処理の終了を確認する確認ステップと、
前記確認ステップ後に、前記管理コアが前記計算処理が終了した使用中領域を回収処理する回収処理実行ステップとを有することを特徴とするメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ装置、情報処理装置及びメモリ管理方法に関する。
【背景技術】
【０００２】
従来、複数のプロセッサ装置のメモリ使用効率が適正になるよう管理する情報処理装置が知られている（例えば、特許文献１参照）。
【０００３】
この情報処理装置は、それぞれメモリとメモリ管理用の制御プログラムを有するとともにプロセスを生成して計算処理を実行する計算プログラムとを有する複数の計算用プロセッサ装置と、複数の計算プロセッサ装置の動作を制御する管理用プロセッサ装置とを有し、管理用プロセッサ装置が各計算用プロセッサ装置のメモリ使用状況を監視し、新たなプロセスを生成する際にそのプロセスにとってメモリの使用効率が最適な計算用プロセッサ装置を動的に選択するため、情報処理装置全体のメモリ使用効率が最適になり、処理効率が向上する。ここで、動的な選択とは、予め定められた計算プロセッサ装置を用いるような静的な選択ではなく、適宜最適なものを選択することを示す。
【特許文献１】特開平９−１７９８３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来の情報処理装置によると、各計算用プロセッサ装置のメモリ容量が十分大きい場合には効果が期待できるが、マルチコアプロセッサの計算コアのように一般的にメモリ容量が小さい場合、制御プログラムの使用するメモリの占有容量によって計算プログラムが使用できるメモリ占有容量が限定されるため、計算プログラムの設計上の自由度が低下するという問題がある。
【０００５】
従って、本発明の目的は、計算プログラムの設計上の自由度を向上させるとともに、動的にメモリ管理を行うことができるプロセッサ装置、情報処理装置及びメモリ管理方法を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は上記目的を達成するため、メモリの未使用領域を計算処理のために確保する第１のメモリ管理プログラムと、前記メモリの前記計算処理のために確保された領域を使用して前記計算処理を実行する計算プログラムとを実行する計算コアと、前記計算コアと接続されるとともに、前記計算プログラムが前記計算処理を終了すると、前記メモリにおいて前記計算処理のために確保された領域を回収処理する第２の管理プログラムを実行する管理コアとを有することを特徴とするプロセッサ装置を提供する。
【０００７】
上記した構成によれば、第１及び第２のメモリ管理プログラムによって動的なメモリ管理を実行することができるとともに、メモリ回収処理を第２のメモリ管理プログラムが実行するため、第１のメモリ管理プログラムの記述が容易となり、計算プログラムの設計上の自由度を向上させることができる。また、計算コアがメモリ回収を行わないため、計算処理に集中することができ、計算処理の速度が向上する。
【０００８】
（２）また、本発明は上記目的を達成するため、メモリを有し、前記メモリを使用して計算処理するための計算プログラムと、前記メモリの未使用領域を前記計算プログラムの前記計算処理のために使用中領域として確保し、前記計算プログラムが前記計算処理を完了すると前記使用中領域を使用済領域とする第１のメモリ管理プログラムとを実行する計算コアと、前記計算コアと接続されて、前記メモリにおける前記使用済領域を前記未使用領域とする第２の管理プログラムを実行する管理コアとを有するプロセッサ装置を有することを特徴とする情報処理装置を提供する。
【０００９】
上記した構成によれば、（１）と同様の効果を有する情報処理装置を達成できる。
【００１０】
（３）また、本発明は上記目的を達成するため、計算コアがメモリの未使用領域を使用中領域として確保するメモリ確保ステップと、前記使用中領域を用いて前記計算コアが計算処理を実行する計算処理実行ステップと、管理コアが前記計算コアの前記計算処理の終了を確認する確認ステップと、前記確認ステップ後に、前記管理コアが前記計算処理が終了した使用中領域を回収処理する回収処理実行ステップとを有することを特徴とするメモリ管理方法を提供する。
【００１１】
上記した方法によれば、（１）と同様の効果を有するメモリ管理方法を達成できる。
【発明の効果】
【００１２】
本発明によれば、計算プログラムの設計上の自由度を向上させるとともに、動的にメモリ管理を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明の情報処理装置の実施の形態を、図面を参照して詳細に説明する。
【００１４】
（情報処理装置の構成）
図１は、本発明の実施の形態に係る情報処理装置の構成例を示す外観図である。
【００１５】
この情報処理装置１は、例えば、パーソナルコンピュータ等の情報処理装置であり、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等の表示画面からなり画像を表示する表示部１１を有する上部筐体１０と、キーボード２２やタッチパッド２３等の操作部を有する下部筐体２０とから構成される。
【００１６】
下部筐体２０は、内部に図示しないＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）等の不揮発性メモリである記憶部や、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリであるメモリ等との電子部品とともに、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の情報処理回路であって計算処理を実行して各部を制御するプロセッサ装置としてのマルチコアプロセッサ２１を有する。
【００１７】
図２は、本発明の実施の形態に係るマルチコアプロセッサの構成例を示すブロック図である。
【００１８】
マルチコアプロセッサ２１は、後述する計算コア３２Ａ〜３２Ｎを管理する管理コア３０と、管理コア３０がアクセス可能なメモリ３１と、計算処理を実行する計算コア３２Ａ〜３２Ｎと、計算コア３２Ａ〜３２Ｎにそれぞれ設けられるメモリ３３Ａ〜３３Ｎと、管理コア３０がメモリ３１及びメモリ３３Ａ〜３３Ｎにアクセスするために各メモリのアドレスが記述されたアドレステーブル３４とを有する。又、各部はバスによって接続されている。
【００１９】
メモリ３１は、管理コア３０において実行され、計算コア３２Ａ〜３２Ｎが使用するメモリ３３Ａ〜３３Ｎのメモリ回収動作を実行するメモリ管理プログラム３１０（第２のメモリ管理プログラム）を有する。
【００２０】
メモリ３３Ａ〜３３Ｎは、それぞれ、計算コア３２Ａ〜３２Ｎの計算処理を実行する際に使用するメモリを確保するためのメモリ管理プログラム３３０Ａ（第１のメモリ管理プログラム）と、計算コア３２Ａ〜３２Ｎにおいて実行され、計算処理を実行するための計算プログラム３３０Ｂとを有する。
【００２１】
（動作）
以下に、本発明の実施の形態における情報処理装置の動作を各図を参照しつつ説明する。
【００２２】
図３（ａ）〜（ｄ）は、本発明の実施の形態に係るマルチコアプロセッサの動作例を示す概略図である。なお、計算コア３２Ａ〜３２Ｎは同一の構成を有するとともに、同一の動作を実行するため、ここでは代表して計算コア３２Ａについて説明する。
【００２３】
図３（ａ）に示すように、計算コア３２Ａにおいて、計算プログラム３３０Ｂは、メモリ管理プログラム３３０Ａによって確保されるメモリ３３Ａの計算用領域３３０Ｃを使用して計算処理を実行する。ここで、概略的にメモリ３３Ａの計算用領域３３０Ｃの横方向は、メモリ容量を示している。計算用領域３３０Ｃは、計算プログラム３３０Ｂに使用されている状態の使用中メモリブロック３３１ａ及び３３１ｂと、使用されていない状態の未使用メモリブロック３３２ａとを有する。
【００２４】
まず、計算プログラム３３０Ｂが計算処理を実行するために、メモリ管理プログラム３３０Ａは、計算処理のまとまりごとにメモリ３３Ａ上のブロックに対応するアドレステーブル３４上に使用中を示すフラグを立てることにより、使用中メモリブロック３３１ａと使用中メモリブロック３３１ｂとを確保する。使用されていないメモリブロックは、メモリ管理プログラム３３０Ａにとって未使用メモリブロック３３２ｍとして認識される。
【００２５】
次に、図３（ｂ）に示すように、例えば、使用中メモリブロック３３１ｂを使用して計算プログラム３３０Ｂによって実行されていた計算処理が終了すると、メモリ管理プログラム３３０Ａは、アドレステーブル３４上に使用済を示すフラグを立てることにより、使用中メモリブロック３３１ｂを使用済メモリブロック３３３ｂに変更する。
【００２６】
また、新たな計算処理が発生し、メモリ管理プログラム３３０Ａによって使用中メモリブロック３３１ｃが確保され、使用されていないメモリブロックは、未使用メモリブロック３３２ｎとして認識される。
【００２７】
次に、図３（ｃ）に示すように、管理コア３０によって実行されるメモリ管理プログラム３１０は、メモリ３３Ａを監視して使用済メモリブロック３３３ｂを検出すると、メモリ回収処理を実行し、その結果、図３（ｄ）に示すように、アドレステーブル３４上に未使用を示すフラグを立てることにより、使用済メモリブロック３３３ｂを未使用メモリブロック３３２ｂに変更する。
【００２８】
図４は、本発明の実施の形態に係るマルチコアプロセッサの計算コアの動作例を示すフローチャートである。
【００２９】
まず、計算コア３２Ａのメモリ管理プログラム３３０Ａは、計算処理を受け付けると（Ｓ１；Ｙｅｓ）、メモリ３３Ａの計算用領域３３０Ｃにおいて計算処理に必要な容量の未使用メモリブロックがあるか確認し（Ｓ２）、未使用メモリブロックがある場合（Ｓ２；Ｙｅｓ）、アドレステーブル３４の該当するアドレスに使用中メモリブロックのフラグを設定し（Ｓ３）、計算用の記憶領域を確保する。
【００３０】
次に、計算コア３２Ａにおいて実行される計算プログラム３３０Ｂは、ステップＳ３において確保した計算用の記憶領域を用いて計算処理を実行する（Ｓ４）。次に、メモリ管理プログラム３３０Ａは、計算プログラム３３０Ｂが計算処理を完了したこと確認すると（Ｓ５；Ｙｅｓ）、計算処理に使用した記憶領域について、アドレステーブル３４の該当するアドレスに未使用メモリブロックのフラグを設定して使用可能とする（Ｓ６）。
【００３１】
また、ステップＳ２において、メモリ３３Ａの計算用領域３３０Ｃにおいて計算処理に必要な容量の未使用メモリブロックがない場合（Ｓ２；Ｎｏ）、所定の時間待機して未使用メモリブロックが設定されるのを待つ（Ｓ７）。
【００３２】
図５は、本発明の実施の形態に係るマルチコアプロセッサの管理コアの動作例を示すフローチャートである。
【００３３】
まず、管理コア３０において実行されるメモリ管理プログラム３１０は、各計算コア３２Ａ〜３２Ｎが有するメモリ３３Ａ〜３３Ｎの計算領域における先頭メモリブロックに移動し（Ｓ２０）、アドレステーブル３４の該当するアドレスのフラグを確認して、使用済メモリブロックが有るか確認する（Ｓ２１）。
【００３４】
使用済メモリブロックが有る場合（Ｓ２１；Ｙｅｓ）、使用済メモリブロックの回収処理を実行し（Ｓ２２）、アドレステーブル３４の該当するアドレスに未使用メモリブロックのフラグを設定し（Ｓ２３）、次のメモリブロックに移動する（Ｓ２４）。
【００３５】
ステップＳ２１において使用済メモリブロックが無い場合（Ｓ２１；Ｎｏ）、ステップＳ２４に進んで、次のメモリブロックに移動する（Ｓ２４）。
【００３６】
次に、ステップＳ２４において移動した先のメモリブロックが計算領域のメモリブロックの末尾でない場合（Ｓ２５；Ｎｏ）、ステップＳ２１〜Ｓ２４を繰り返す。
【００３７】
また、ステップＳ２４において移動した先のメモリブロックが計算領域のメモリブロックの末尾である場合（Ｓ２５；Ｙｅｓ）、ステップＳ２０に移動して計算領域の先頭メモリブロックに移動してステップＳ２１〜Ｓ２４を繰り返す。
【００３８】
（実施の形態の効果）
上記した実施の形態によると、メモリ管理プログラム３１０及び３３０Ａによって動的なメモリ管理を実行することができるとともに、メモリ回収処理をメモリ管理プログラム３１０が実行するため、計算コア３２Ａ〜３２Ｎが実行するメモリ管理プログラム３３０Ａの記述が容易となることでその占有容量が通常より小さくなり、メモリ３３Ａ〜３３Ｎの容量が比較的小さい場合においても、計算プログラム３３０Ｂの占有容量を過度に制限する必要がなくなる。その結果、計算プログラム３３０Ｂの設計上の自由度を向上させることができる。
【００３９】
また、計算コア３２Ａ〜３２Ｎにおいてメモリ回収処理を実行する必要がないので、計算コア３２Ａ〜３２Ｎにおいてメモリ回収処理を実行する場合に比べて、計算コア３２Ａ〜３２Ｎが計算処理に集中することができ、計算処理の速度が向上する。
【００４０】
なお、本実施の形態において、管理コア３０に対して計算コア３２Ａ〜３２Ｎが複数である場合を示したが、単数であってもよい。また、管理コア３０を複数有する構成としてもよい。
【００４１】
また、本実施の形態において、情報処理装置１としてパーソナルコンピュータを示したが、マルチコアプロセッサ２１を搭載して情報を処理する電子機器、例えば、テレビ、ＨＤＤレコーダ、携帯電話等の家電製品に本発明を適用してもよい。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態に係る情報処理装置の構成例を示す外観図である。
【図２】本発明の実施の形態に係るマルチコアプロセッサの構成例を示すブロック図である。
【図３】本発明の実施の形態に係るマルチコアプロセッサの動作例を示す概略図である。
【図４】本発明の実施の形態に係るマルチコアプロセッサの計算コアの動作例を示すフローチャートである。
【図５】本発明の実施の形態に係るマルチコアプロセッサの管理コアの動作例を示すフローチャートである。
【符号の説明】
【００４３】
１…情報処理装置、１０…上部筐体、１１…表示部、２０…下部筐体、２１…マルチコアプロセッサ、２２…キーボード、２３…タッチパッド、３０…管理コア、３１…メモリ、３２Ａ-３２Ｎ…計算コア、３３Ａ-３３Ｎ…メモリ、３４…アドレステーブル、３１０…メモリ管理プログラム、３３０Ａ…メモリ管理プログラム、３３０Ｂ…計算プログラム、３３０Ｃ…計算用領域、３３１ａ…使用中メモリブロック、３３１ｂ…使用中メモリブロック、３３１ｃ…使用中メモリブロック、３３２ａ…未使用メモリブロック、３３２ｂ…未使用メモリブロック、３３２ｍ…未使用メモリブロック、３３２ｎ…未使用メモリブロック、３３３ｂ…使用済メモリブロック
【図１】
2010072790.tif 000003
【図２】
2010072790.tif 000004
【図３】
2010072790.tif 000005
【図４】
2010072790.tif 000006
【図５】
2010072790.tif 000007
【手続補正書】
【提出日】平成21年7月17日(2009.7.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリの未使用領域を計算処理のために確保する第１のメモリ管理プログラムと、前記メモリの前記計算処理のために確保された領域を使用して前記計算処理を実行する計算プログラムとを実行する計算ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、
前記計算ＣＰＵと接続されるとともに、前記計算プログラムが前記計算処理を終了すると、前記メモリにおいて前記計算処理のために確保された領域を回収処理する第２の管理プログラムを実行する管理ＣＰＵとを有することを特徴とするプロセッサ装置。
【請求項２】
前記第１のメモリ管理プログラムは、前記メモリの未使用領域を使用中領域とすることで前記計算処理のための領域を確保し、
前記第２のメモリ管理プログラムは、前記使用中領域を前記未使用領域とすることで前記回収処理を実行することを特徴とする請求項１に記載のプロセッサ装置。
【請求項３】
前記メモリは、前記計算プログラムと、前記第１のメモリ管理プログラムとを格納することを特徴とする請求項１に記載のプロセッサ装置。
【請求項４】
メモリを有し、前記メモリを使用して計算処理する計算プログラムと、前記メモリの未使用領域を前記計算プログラムの前記計算処理のために使用中領域として確保し、前記計算プログラムが前記計算処理を完了すると前記使用中領域を使用済領域とする第１のメモリ管理プログラムとを実行する計算ＣＰＵと、
前記計算ＣＰＵと接続されて、前記メモリにおける前記使用済領域を前記未使用領域とする第２の管理プログラムを実行する管理ＣＰＵとを有することを特徴とする情報処理装置。
【請求項５】
計算ＣＰＵがメモリの未使用領域を使用中領域として確保するメモリ確保ステップと、
前記使用中領域を用いて前記計算ＣＰＵが計算処理を実行する計算処理ステップと、
管理ＣＰＵが前記計算ＣＰＵの前記計算処理の終了を確認する確認ステップと、
前記確認ステップ後に、前記管理ＣＰＵが前記計算処理が終了した使用中領域を回収処理する回収処理ステップとを有することを特徴とするメモリ管理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
（１）本発明は、上記目的を達成するため、メモリの未使用領域を計算処理のために確保する第１のメモリ管理プログラムと、前記メモリの前記計算処理のために確保された領域を使用して前記計算処理を実行する計算プログラムとを実行する計算ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、前記計算ＣＰＵと接続されるとともに、前記計算プログラムが前記計算処理を終了すると、前記メモリにおいて前記計算処理のために確保された領域を回収処理する第２の管理プログラムを実行する管理ＣＰＵとを有することを特徴とするプロセッサ装置を提供する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
（２）本発明は、上記目的を達成するため、メモリを有し、前記メモリを使用して計算処理する計算プログラムと、前記メモリの未使用領域を前記計算プログラムの前記計算処理のために使用中領域として確保し、前記計算プログラムが前記計算処理を完了すると前記使用中領域を使用済領域とする第１のメモリ管理プログラムとを実行する計算ＣＰＵと、前記計算ＣＰＵと接続されて、前記メモリにおける前記使用済領域を前記未使用領域とする第２の管理プログラムを実行する管理ＣＰＵとを有することを特徴とする情報処理装置を提供する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
（３）本発明は、上記目的を達成するため、計算ＣＰＵがメモリの未使用領域を使用中領域として確保するメモリ確保ステップと、前記使用中領域を用いて前記計算ＣＰＵが計算処理を実行する計算処理ステップと、管理ＣＰＵが前記計算ＣＰＵの前記計算処理の終了を確認する確認ステップと、前記確認ステップ後に、前記管理ＣＰＵが前記計算処理が終了した使用中領域を回収処理する回収処理ステップとを有することを特徴とするメモリ管理方法を提供する。