(57)【要約】【課題】メモリリークやゾンビプロセスなどが原因で不正なデータが蓄積された主記憶領域を、プログラム言語に依存することなく、また一つのＣＰＵに負荷を掛けすぎることなく、安全にクリーンアップすることを目的とする。【解決手段】メモリ使用量が閾値を超えている場合、待機状態のＣＰＵコアと主記憶領域とを用いてバックグラウンド処理で現用系サブシステムと同じプログラムを起動した待機系サブシステムを起動して、端末がクリーンアップを行っても弊害が生じない定常状態であるかを確認後、その待機系サブシステムの主記憶領域を現用系サブシステムから使用することで、もしくは待機系サブシステムを現用系サブシステムとして使用することで、ユーザの視点からは短時間で安全に主記憶がクリーンアップされたように見せることができる。【選択図】  図１
2007257259.tif 000002
【特許請求の範囲】
【請求項１】
第１のＣＰＵコアと第１の記憶領域とを有する現用系システムと、第２のＣＰＵコアと第２の記憶領域とを有する待機系システムとを有する処理装置であって、
前記第１の記憶領域のクリーンアップが必要であるかを監視し、クリーンアップが必要な場合は前記第１の記憶領域のクリーンアップ要求を出す記憶領域状態監視手段と、
前記クリーンアップ要求を受けて、前記待機系システムを起動する待機系システム起動手段と、
前記待機系システムの起動が完了した後、各ＣＰＵコアへの割り込みを禁止し、かつ前記第１のＣＰＵコアの動作を停止する状態へと切替えるように通知する切替え手段と、
前記切替え後、前記第１の記憶領域をクリーンアップする記憶領域クリーンアップ手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記記憶領域状態監視手段は、前記第１のＣＰＵコアがクリーンアップを行っても弊害が生じない定常状態であり、かつ前記第１の記憶領域の使用量が閾値を超えていると判断した時に、前記第１の記憶領域のクリーンアップ要求を出すように構成されていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶領域状態監視手段は、定期的に前記第１の記憶領域のクリーンアップ要求を出すように構成されていることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記待機系システム起動手段は、
前記第２のＣＰＵコアを起動するＣＰＵ起動手段と、
前記待機系システムが起動完了後に前記切替え手段に起動完了通知を行う起動完了通知手段と
を有することを特徴とする請求項１から請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記切替え手段からの通知を受け、各ＣＰＵコアへの割り込みを禁止するように設定する割り込み管理手段と、
前記切替え手段からの通知を受け、前記第1のＣＰＵコアの動作を停止する状態へと切り替えるモード管理手段と
を有することを特徴とする請求項１から請求項４のいずれかに記載の情報処理装置。
【請求項６】
前記記憶領域クリーンアップ手段は、
前記第１の記憶領域と前記第２の記憶領域とを管理する記憶管理手段に対して現用系システムの記憶領域を前記第２の記憶領域に切替えるよう通知する記憶領域変更手段と、
前記切替えが完了した後に前記第１のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報を、前記第２のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報に基づいて設定し直すＣＰＵ変更手段と
を有することを特徴とする請求項１から請求項５のいずれかに記載の情報処理装置。
【請求項７】
前記記憶領域クリーンアップ手段は、
各ＣＰＵコアへの割り込みを管理する割り込み管理手段及び各ＣＰＵコアへのアクセス許可及び不許可を管理する入出力管理手段に対して、前記待機系システムを現用系システムとして使用するように設定することを特徴とする請求項１から請求項５のいずれかに記載の情報処理装置。
【請求項８】
前記切替え手段は、クリーンアップ終了後に割り込み禁止を解除し、かつ前記第１のＣＰＵコアの動作の再開を通知することを特徴とする請求項１から請求項７のいずれかに記載の情報処理装置。
【請求項９】
第１のＣＰＵコアと第１の記憶領域とを有する現用系システムと、第２のＣＰＵコアと第２の記憶領域とを有する待機系システムとを有する処理装置の記憶領域クリーンアップ方法であって、
前記第１の記憶領域のクリーンアップが必要であるかを監視し、クリーンアップが必要な場合は前記第１の記憶領域のクリーンアップ要求を出す記憶領域状態監視ステップと、
前記クリーンアップ要求を受けて、前記待機系システムを起動する待機系システム起動ステップと、
前記待機系システムの起動が完了した後、各ＣＰＵコアへの割り込みを禁止し、かつ前記第１のＣＰＵコアの動作を停止する状態へと切替えるように通知する切替えステップと、
前記切替え後、前記第１の記憶領域をクリーンアップする記憶領域クリーンアップステップと
を有することを特徴とする記憶領域クリーンアップ方法。
【請求項１０】
前記記憶領域状態監視ステップは、前記第１のＣＰＵコアがクリーンアップを行っても弊害が生じない定常状態であり、かつ前記第１の記憶領域の使用量が閾値を超えていると判断した時に、前記第１の記憶領域のクリーンアップ要求を出すことを特徴とする請求項９に記載の記憶領域クリーンアップ方法。
【請求項１１】
前記記憶領域状態監視ステップは、定期的に前記第１の記憶領域のクリーンアップ要求を出すことを特徴とする請求項９に記載の記憶領域クリーンアップ方法。
【請求項１２】
前記待機系システム起動ステップは、
前記第２のＣＰＵコアを起動し、前記待機系システムが起動完了後に起動完了通知を行うことを特徴とする請求項９から請求項１１のいずれかに記載の記憶領域クリーンアップ方法。
【請求項１３】
前記切替えステップは、
前記通知を受け、各ＣＰＵコアへの割り込みを禁止するように設定するステップと、
前記通知を受け、前記第１のＣＰＵコアの動作を停止する状態へと切替えるステップと
を有することを特徴とする請求項９から請求項１２のいずれかに記載の記憶領域クリーンアップ方法。
【請求項１４】
前記記憶領域クリーンアップステップは、
前記第１の記憶領域と前記第２の記憶領域とを管理している記憶管理部に対して現用系システムの記憶領域を前記第２の記憶領域に切り替えるよう通知する記憶領域変更ステップと、
前記切替えが完了した後に前記第１のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報を、前記第２のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報に基づいて設定し直すＣＰＵ変更ステップと
を有することを特徴とする請求項９から請求項１３のいずれかに記載の記憶領域クリーンアップ方法。
【請求項１５】
前記記憶領域クリーンアップステップは、
各ＣＰＵコアへの割り込みを管理する割り込み管理部及び各ＣＰＵコアへのアクセス許可及び不許可を管理する入出力管理部に対して、前記待機系システムを現用系システムとして使用するように設定することを特徴とする請求項９から請求項１３のいずれかに記載の記憶領域クリーンアップ方法。
【請求項１６】
前記クリーンアップ終了後に、割り込み禁止を解除し、かつ前記第１のＣＰＵコアの動作の再開を通知するステップを有することを特徴とする請求項９から請求項１５のいずれかに記載の記憶領域クリーンアップ方法。
【請求項１７】
第１のＣＰＵコアと第１の記憶領域とを有する現用系システムと、第２のＣＰＵコアと第２の記憶領域とを有する待機系システムとを有する情報処理装置のプログラムであって、前記プログラムは、前記情報処理装置を、
前記第１の記憶領域のクリーンアップが必要であるかを監視し、クリーンアップが必要な場合は前記第１の記憶領域のクリーンアップ要求を出す記憶領域状態監視手段と、
前記クリーンアップ要求を受けて、前記待機系システムを起動する待機系システム起動手段と、
前記待機系システムの起動が完了した後、各ＣＰＵコアへの割り込みを禁止し、かつ前記第１のＣＰＵコアの動作を停止する状態へと切替えるように通知する切替え手段と、
前記切替え後、前記第１の記憶領域をクリーンアップする記憶領域クリーンアップ手段と
して機能させることを特徴とするプログラム。
【請求項１８】
前記記憶領域状態監視手段は、前記第１のＣＰＵコアがクリーンアップを行っても弊害が生じない定常状態であり、かつ前記第１の記憶領域の使用量が閾値を超えていると判断した時に、前記第１の記憶領域のクリーンアップ要求を出すことを特徴とする請求項１７に記載のプログラム。
【請求項１９】
前記記憶領域状態監視手段は、定期的に前記第１の記憶領域のクリーンアップ要求を出すことを特徴とする請求項１７に記載のプログラム。
【請求項２０】
前記待機系システム起動手段は、
前記第２のＣＰＵコアを起動するＣＰＵ起動手段と、
前記待機系システムが起動完了後に前記割り込み管理手段に起動完了通知を行う起動完了通知手段と
を有することを特徴とする請求項１７から請求項１９のいずれかに記載のプログラム。
【請求項２１】
前記切替え手段からの通知を受け、各ＣＰＵコアへの割り込みを禁止するように設定する割り込み管理手段と、
前記切替え手段からの通知を受け、前記第1のＣＰＵコアの動作を停止する状態へと切り替えるモード管理手段と
を有する特徴とする請求項１７から請求項２０のいずれかに記載のプログラム。
【請求項２２】
前記記憶領域クリーンアップ手段は、
前記第１の記憶領域と前記第２の記憶領域とを管理する記憶管理手段に対して現用系システムの記憶領域を前記第２の記憶領域に切替えるよう通知する記憶領域変更手段と、
前記切替えが完了した後に前記第１のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報を、前記第２のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報に基づいて設定し直すＣＰＵ変更手段と
を有することを特徴とする請求項１７から請求項２１のいずれかに記載のプログラム。
【請求項２３】
前記記憶領域クリーンアップ手段は、
各ＣＰＵコアへの割り込みを管理する割り込み管理手段及び各ＣＰＵコアへのアクセス許可及び不許可を管理する入出力管理手段に対して、前記待機系システムを現用系システムとして使用するように設定することを特徴とする請求項１７から請求項２１のいずれかに記載のプログラム。
【請求項２４】
前記切替え手段は、クリーンアップ終了後に割り込み禁止を解除し、かつ前記第１のＣＰＵコアの動作の再開を通知することを特徴とする請求項１７から請求項２３のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は主記憶クリーンアップシステム、主記憶クリーンアップ方法および主記憶クリーンアッププログラムに関し、特にマルチコアＣＰＵを用いて高速な主記憶クリーンアップを可能にした、主記憶クリーンアップシステム、主記憶クリーンアップ方法および主記憶クリーンアッププログラムに関する。
【背景技術】
【０００２】
長時間稼動している計算機システムでは、システム上で動作するプログラムがメモリリークを起こしたり、終了したはずのプログラム情報が主記憶から正常に削除されていないことなどが原因で主記憶上に不要なデータが蓄積してしまい、結果として計算機システム全体の動作が不安定になったりするという問題がある。
【０００３】
この問題を解決するための１つの方法が、計算機システムのユーザが定期的に計算機システムを再起動するということである。しかし携帯電話端末などの計算機システムでは、ユーザが必ずしも定期的に計算機システムを再起動するわけではなく、長時間電源が入ったままの状態で使用され続けることがある。
【０００４】
そのため、携帯電話端末などのように長時間電源を入れたままで使用する計算機システムでは、計算機システム側で自動的に主記憶内に蓄積された不要なデータを削除する、すなわち自動的に主記憶をクリーンアップする仕組みが必要とされている。
【０００５】
従来の主記憶を自動クリーンアップする手法の一例が、Ｊａｖａ（登録商標）の仮想マシンなどで用いられているガベージコレクションである。ガベージコレクションとは、プログラムが確保したメモリ領域のうち、今後使用されない領域を自動的に解放する仕組みであり、Ｊａｖａのように言語処理系に組み込まれて提供されるものもあれば、ライブラリとして提供されるものもある。
【０００６】
また、主記憶を自動的にクリーンアップする手法として、自動的に計算機システムを再起動する手法と高速にシステムを再起動する方法とを組み合わせることも考えられる。これは特許文献１又は特許文献２に記載されている。
【０００７】
特許文献１では、自動的に計算機システムを再起動する方法について述べられており、ＣＰＵ（中央演算装置）の負荷と主記憶装置の使用量とを監視した上で、主記憶装置の使用量が所定の値を超える時期を予測し、その時期に近づくと、ＣＰＵの使用負荷が小さい時間帯を利用し再起動処理を行う計算機システムについて記載されている。
【０００８】
特許文献２では、計算機システムを高速に起動する方法について述べられており、計算機システム起動後の主記憶イメージをあらかじめ不揮発性の記憶領域に保存しておき、計算機システム起動時には、その主記憶イメージに書き込み要求があった時だけ、書き込み要求のあった領域のデータを主記憶装置上に展開することが記載されている。
【０００９】
また、主記憶装置を自動的にクリーンアップする手法として、計算機システムに複数の主記憶領域を用意しておき、ＣＰＵから使用されずに待機状態にある主記憶領域上に、あらかじめクリーンアップ後の主記憶データを作成しておき、ある時点でその主記憶装置を計算機システムの現用系の主記憶領域として使用する手法が考えられる。これは特許文献３に記載されている。
【００１０】
特許文献３では、ＣＰＵとメモリバンク切替え回路と複数のメモリバンクとを備えた計算機システムについて述べられている。この計算機システムでは、それぞれのメモリバンクでＯＳが起動しており、メモリバンク切替え回路によってアクティブなメモリバンクを切替えることで、計算機システム全体のＯＳを決定できる計算機システムが記載されている。この計算機システムを利用し、アクティブなメモリバンクに不正なデータが蓄積された時にアクティブなメモリバンクの切替えを行い、新しくアクティブになったメモリバンク上に元々アクティブだったメモリバンクと同一のＯＳ、プログラムを起動させたとする。すると、まだ不正なデータが蓄積されていないメモリバンクを現用系の主記憶として使用することができ、現用系の主記憶装置をクリーンアップしたことになる。
【００１１】
また、メモリリークを検出してクリーンアップを行う技術が特許文献４に記載されている。
【００１２】
特許文献４では、端末の電源ＯＮと同時に現用系と待機系とのシステムを起動させ、メモリリークを監視してメモリ使用量が閾値を超えるとすぐにクリーンアップを開始する技術について述べられている。
【特許文献１】特開２００４−００５３０５
【特許文献２】特開２００５−０１０８９７
【特許文献３】特開昭６３−１５８６３５
【特許文献４】特開２００４‐２１３１２２
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来の主記憶装置の自動クリーンアップ方式では、次のような問題点があった。
【００１４】
第１の問題点は、クリーンアップ対象となるプログラムの種類が限定されてしまうことである。これは、ガベージコレクションによる主記憶装置のクリーンアップ方式の問題点である。
【００１５】
その理由は、ガベージコレクションは、Ｊａｖａ言語などの特定のプログラミング言語もしくは特定のライブラリに依存し、例えばＯＳ上で直接実行される一般的なＣ言語プログラムについては、ガベージコレクションつまり主記憶装置クリーンアップの対象にはならないためである。
【００１６】
第２の問題点は、計算機システムの中断時間が長くなってしまうことである。これは、特許文献１、特許文献２に記載された方式の問題点である。
【００１７】
その理由は、これらの方式では再起動が完了するまでに数秒以上の時間が掛かることが予想され、もし中断時間内に外部周辺装置からハードウェア割り込みなどの処理要求が来た場合、その要求を処理することができなくなってしまうからである。
【００１８】
第３の問題点は、ＣＰＵに掛かる負荷が大きくなってしまうことである。これは、特許文献３に記載された方式の問題点である。
【００１９】
その理由は、待機状態にあるメモリバンク上にあらかじめ切替え後のＯＳを起動し主記憶データを作成しておく必要があるが、それはシングルＣＰＵのアイドル時間を用いて行う必要があり、使用中の主記憶領域を用いて高負荷の処理が実行されていた場合、切替え後のＯＳを起動するためにＣＰＵ時間を割り当てることができず、切り替え後のＯＳを起動するために長い時間が掛かる可能性があるためである。
【００２０】
第４の問題点は、電力がかかってしまうことである。
【００２１】
その理由は、端末の電源ＯＮと同時に現用系と待機系とのシステムを起動させ、メモリ使用量が閾値を超えるとすぐにクリーンアップを開始するように構成されているからである。携帯端末等の組込機器では省電力化が重要となっており、例えば特許文献４の技術では常に高い電力が機器に負担をかけていることになる。
【００２２】
第５の問題点は、ユーザの作業中のデータが消えてしまうことである。
【００２３】
その理由は、メモリ使用量が閾値を超えると、端末の状態を確認せずにすぐにクリーンアップを開始するように構成されているからである。このような場合、例えばユーザがメールを作成中であった場合、その作業中のデータも消えてしまうからである。
【００２４】
そこで、本発明は上記問題点を解決するためになされたものであって、第１の目的は実行されるプログラムの種類に限定されない主記憶装置クリーンアップシステムを提供することである。
【００２５】
本発明の第２の目的は、計算機システムの中断時間の短い主記憶装置クリーンアップシステムを提供することである。
【００２６】
本発明の第３の目的は、１つのＣＰＵに掛かる負荷を軽減した主記憶装置クリーンアップシステムを提供することである。
【００２７】
本発明の第４の目的は、省電力化が図れる主記憶装置クリーンアップシステムを提供することである。
【００２８】
本発明の第５の目的は、ユーザの作業中のデータが消えてしまうことを防止する主記憶装置クリーンアップシステムを提供することである。
【課題を解決するための手段】
【００２９】
上記課題を解決するための第１の発明は、第１のＣＰＵコアと第１の記憶領域とを有する現用系システムと、第２のＣＰＵコアと第２の記憶領域とを有する待機系システムとを有する処理装置であって、
前記第１の記憶領域のクリーンアップが必要であるかを監視し、クリーンアップが必要な場合は前記第１の記憶領域のクリーンアップ要求を出す記憶領域状態監視手段と、
前記クリーンアップ要求を受けて、前記待機系システムを起動する待機系システム起動手段と、
前記待機系システムの起動が完了した後、各ＣＰＵコアへの割り込みを禁止し、かつ前記第１のＣＰＵコアの動作を停止する状態へと切替えるように通知する切替え手段と、
前記切替え後、前記第１の記憶領域をクリーンアップする記憶領域クリーンアップ手段と
を有することを特徴とする。
【００３０】
上記課題を解決するための第２の発明は、上記第１の発明において、前記記憶領域状態監視手段は、前記第１のＣＰＵコアがクリーンアップを行っても弊害が生じない定常状態であり、かつ前記第１の記憶領域の使用量が前もって指定された閾値を超えていると判断した時に、前記第１の記憶領域のクリーンアップ要求を出すように構成されていることを特徴とする。
【００３１】
上記課題を解決するための第３の発明は、上記第１の発明において、前記記憶領域状態監視手段は、定期的に前記第１の記憶領域のクリーンアップ要求を出すように構成されていることを特徴とする。
【００３２】
上記課題を解決するための第４の発明は、上記第１から第３のいずれかの発明において、前記待機系システム起動手段は、
前記第２のＣＰＵコアを起動するＣＰＵ起動手段と、
前記待機系システムが起動完了後に前記切替え手段に起動完了通知を行う起動完了通知手段と
を有することを特徴とする。
【００３３】
上記課題を解決するための第５の発明は、上記第１から第４のいずれかの発明において、前記切替え手段からの通知を受け、各ＣＰＵコアへの割り込みを禁止するように設定する割り込み管理手段と、
前記切替え手段からの通知を受け、前記第１のＣＰＵコアの動作を停止する状態へと切替えるモード管理手段と
を有することを特徴とする。
【００３４】
上記課題を解決するための第６の発明は、上記第１から第５のいずれかの発明において、前記記憶領域クリーンアップ手段は、
前記第１の記憶領域と前記第２の記憶領域とを管理する記憶管理手段に対して現用系システムの記憶領域を前記第２の記憶領域に切替えるよう通知する記憶領域変更手段と、
前記切替えが完了した後に前記第１のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報を、前記第２のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報に基づいて設定し直すＣＰＵ変更手段と
を有することを特徴とする。
【００３５】
上記課題を解決するための第７の発明は、上記第１から第５のいずれかの発明において、前記記憶領域クリーンアップ手段は、
各ＣＰＵコアへの割り込みを管理する割り込み管理手段及び各ＣＰＵコアへのアクセス許可及び不許可を管理する入出力管理手段に対して、前記待機系システムを現用系システムとして使用するように設定することを特徴とする。
【００３６】
上記課題を解決するための第８の発明は、上記第１から第７のいずれかの発明において、前記切替え手段は、クリーンアップ終了後に割り込み禁止を解除し、かつ前記第１のＣＰＵコアの動作の再開を通知することを特徴とする。
【００３７】
上記課題を解決するための第９の発明は、第１のＣＰＵコアと第１の記憶領域とを有する現用系システムと、第２のＣＰＵコアと第２の記憶領域とを有する待機系システムとを有する処理装置の記憶領域クリーンアップ方法であって、
前記第１の記憶領域のクリーンアップが必要であるかを監視し、クリーンアップが必要な場合は前記第１の記憶領域のクリーンアップ要求を出す記憶領域状態監視ステップと、
前記クリーンアップ要求を受けて、前記待機系システムを起動する待機系システム起動ステップと、
前記待機系システムの起動が完了した後、各ＣＰＵコアへの割り込みを禁止し、かつ前記第１のＣＰＵコアの動作を停止する状態へと切替えるように通知する切替えステップと、
前記切替え後、前記第１の記憶領域をクリーンアップする記憶領域クリーンアップステップと
を有することを特徴とする。
【００３８】
上記課題を解決するための第１０の発明は、上記第９の発明において、前記記憶領域状態監視ステップは、前記第１のＣＰＵコアがクリーンアップを行っても弊害が生じない定常状態であり、かつ前記第１の記憶領域の使用量が閾値を超えていると判断した時に、前記第１の記憶領域のクリーンアップ要求を出すことを特徴とする。
【００３９】
上記課題を解決するための第１１の発明は、上記第９の発明において、前記記憶領域状態監視ステップは、定期的に前記第１の記憶領域のクリーンアップ要求を出すことを特徴とする。
【００４０】
上記課題を解決するための第１２の発明は、上記第９から第１１のいずれかの発明において、前記待機系システム起動ステップは、
前記第２のＣＰＵコアを起動し、前記待機系システムが起動完了後に起動完了通知を行うことを特徴とする。
【００４１】
上記課題を解決するための第１３の発明は、上記第９から第１２のいずれかの発明において、前記切替えステップは、
前記通知を受け、各ＣＰＵコアへの割り込みを禁止するように設定するステップと、
前記通知を受け、前記第１のＣＰＵコアの動作を停止する状態へと切替えるステップと
を有することを特徴とする。
【００４２】
上記課題を解決するための第１４の発明は、上記第９から第１３のいずれかの発明において、前記記憶領域クリーンアップステップは、
前記第１の記憶領域と前記第２の記憶領域とを管理している記憶管理部に対して現用系システムの記憶領域を前記第２の記憶領域に切り替えるよう通知する記憶領域変更ステップと、
前記切替えが完了した後に前記第１のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報を、前記第２のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報に基づいて設定し直すＣＰＵ変更ステップと
を有することを特徴とする。
【００４３】
上記課題を解決するための第１５の発明は、上記第９から第１３のいずれかの発明において、前記記憶領域クリーンアップステップは、
各ＣＰＵコアへの割り込みを管理する割り込み管理部及び各ＣＰＵコアへのアクセス許可及び不許可を管理する入出力管理部に対して、前記待機系システムを現用系システムとして使用するように設定することを特徴とする。
【００４４】
上記課題を解決するための第１６の発明は、上記第９から第１５のいずれかの発明において、前記クリーンアップ終了後に、割り込み禁止を解除し、かつ前記第１のＣＰＵコアの動作の再開を通知するステップを有することを特徴とする。
【００４５】
上記課題を解決するための第１７の発明は、第１のＣＰＵコアと第１の記憶領域とを有する現用系システムと、第２のＣＰＵコアと第２の記憶領域とを有する待機系システムとを有する情報処理装置のプログラムであって、前記プログラムは、前記情報処理装置を、
前記第１の記憶領域のクリーンアップが必要であるかを監視し、クリーンアップが必要な場合は前記第１の記憶領域のクリーンアップ要求を出す記憶領域状態監視手段と、
前記クリーンアップ要求を受けて、前記待機系システムを起動する待機系システム起動手段と、
前記待機系システムの起動が完了した後、各ＣＰＵコアへの割り込みを禁止し、かつ前記第１のＣＰＵコアの動作を停止する状態へと切替えるように通知する切替え手段と、
前記切替え後、前記第１の記憶領域をクリーンアップする記憶領域クリーンアップ手段と
して機能させることを特徴とする。
【００４６】
上記課題を解決するための第１８の発明は、上記第１７の発明において、前記記憶領域状態監視手段は、前記第１のＣＰＵコアがクリーンアップを行っても弊害が生じない定常状態であり、かつ前記第１の記憶領域の使用量が閾値を超えていると判断した時に、前記第１の記憶領域のクリーンアップ要求を出すことを特徴とする。
【００４７】
上記課題を解決するための第１９の発明は、上記第１７の発明において、前記記憶領域状態監視手段は、定期的に前記第１の記憶領域のクリーンアップ要求を出すことを特徴とする。
【００４８】
上記課題を解決するための第２０の発明は、上記第１７から第１９のいずれかの発明において、前記待機系システム起動手段は、
前記第２のＣＰＵコアを起動するＣＰＵ起動手段と、
前記待機系システムが起動完了後に前記割り込み管理手段に起動完了通知を行う起動完了通知手段と
を有することを特徴とする。
【００４９】
上記課題を解決するための第２１の発明は、上記第１７から第２０のいずれかの発明において、前記切替え手段からの通知を受け、各ＣＰＵコアへの割り込みを禁止するように設定する割り込み管理手段と、
前記切替え手段からの通知を受け、前記第１のＣＰＵコアの動作を停止する状態へと切替えるモード管理手段と
を有することを特徴とする。
【００５０】
上記課題を解決するための第２２の発明は、前記記憶領域クリーンアップ手段は、
前記第１の記憶領域と前記第２の記憶領域とを管理する記憶管理手段に対して現用系システムの記憶領域を前記第２の記憶領域に切替えるよう通知する記憶領域変更手段と、
前記切替えが完了した後に前記第１が動作するにあたって必要となるＣＰＵコアのＣＰＵ情報を、前記第２のＣＰＵコアが動作するにあたって必要となるＣＰＵ情報に基づいて設定し直すＣＰＵ変更手段と
を有することを特徴とする。
【００５１】
上記課題を解決するための第２３の発明は、上記第１７から第２１のいずれかの発明において、前記記憶領域クリーンアップ手段は、
各ＣＰＵコアへの割り込みを管理する割り込み管理手段及び各ＣＰＵコアへのアクセス許可及び不許可を管理する入出力管理手段に対して、前記待機系システムを現用系システムとして使用するように設定することを特徴とする。
【００５２】
上記課題を解決するための第２４の発明は、上記第１７から第２３のいずれかの発明において、前記切替え手段は、クリーンアップ終了後に割り込み禁止を解除し、かつ前記第１のＣＰＵコアの動作の再開を通知することを特徴とする。
【００５３】
本発明の主記憶装置クリーンアップシステムは、現用系サブシステムとして動作するＣＰＵコア（Ａ）１１と主記憶領域（Ａ）１６１を、待機系サブシステムとして動作するＣＰＵコア（Ｂ）１２と主記憶領域（Ｂ）１６２を備え、ＣＰＵコア（Ａ）１１は、自身の実行モードがＣＰＵコアや主記憶装置などの全装置が通常の処理を行っている状態である通常モードかもしくは、各装置が本来の処理を中断し主記憶装置クリーンアップのために待機している状態であるクリーンアップモードであることを管理している実行モード管理手段１１１と、自身が使用している主記憶領域の使用量を監視している主記憶状態監視手段１１２を備え、ＣＰＵコア（Ｂ）１２は、ＣＰＵコア（Ａ）１１と同様の実行モード管理手段１２１と、待機系サブシステムが起動完了した段階で通知を行う起動完了通知手段１２２を備えていることを基本とする。
【００５４】
また、図１を参照すると、第１の主記憶装置クリーンアップシステムは、上記の基本のシステム構成に加えて更に、主記憶状態監視手段１１２からのクリーンアップ要求を受け待機系サブシステムのＣＰＵコア（Ｂ）１２を起動させるＣＰＵ起動手段１３１と、各ＣＰＵコアやハードウェア割り込みマスクの設定に対してシステムモードの切替えを通知する実行モード切替え手段１３２と、各サブシステムに割り当てる主記憶領域の切替え通知を行う主記憶変更手段１３３と、各ＣＰＵコアの情報（レジスタ、キャッシュなど）を変更するＣＰＵ変更手段１３４と、各ＣＰＵコアのハードウェア割り込み設定を管理するハードウェア割り込み管理手段１４と、各ＣＰＵコアに割り当てる主記憶領域を管理する主記憶領域管理手段１５を備える。
【００５５】
このような構成において、現用系サブシステムの主記憶装置の使用量がメモリリークやゾンビプロセスなどが原因で増加した時に、ＣＰＵコア（Ａ）１１の主記憶状態監視手段１１２が待機系サブシステムの起動要求を出し、それを受けたＣＰＵ起動手段１３１が待機系サブシステムを起動し、ＣＰＵコア（Ｂ）１２の起動完了通知手段１２２が起動完了を通知すると、その通知を受けた実行モード切替え手段１３２がハードウェア割り込み管理手段１４や各ＣＰＵコアにクリーンアップモードへの変更を通知した上で、主記憶変更手段１３３が現用系サブシステムと待機系サブシステムの主記憶領域を入れ替え、更にＣＰＵ変更手段１３４がＣＰＵコア（Ａ）１１のＣＰＵ情報を適切に設定し、最後に実行モード切替え手段１３２が実行モードを通常モードに変更することで、本発明の目的を達成している。
【００５６】
図９を参照すると、本発明の第２の主記憶装置クリーンアップシステムは、上記の基本のシステム構成に加え更に、主記憶状態監視手段１１２からのクリーンアップ要求を受け待機系サブシステムのＣＰＵコア（Ｂ）１２を起動させるＣＰＵ起動手段１３１と、各ＣＰＵコアやハードウェア割り込みマスクの設定に対してシステムモードの切替えを通知する実行モード切替え手段１３２と、現用系サブシステムと待機系サブシステムを切替える現用系サブシステム変更手段１３５と、各ＣＰＵコアのハードウェア割り込み設定を管理するハードウェア割り込み管理手段１４と、各ＣＰＵコアと各周辺機器の間でのアクセス許可／不許可を管理するＩ／Ｏ管理手段１７を備える。
【００５７】
このような構成において、現用系サブシステムの主記憶領域の使用量がメモリリークやゾンビプロセスなどが原因で増加した時に、ＣＰＵコア（Ａ）１１の主記憶状態監視手段１１２が待機系サブシステムの起動要求を出し、それを受けたＣＰＵ起動手段１３１が待機系サブシステムを起動し、ＣＰＵコア（Ｂ）１２の起動完了通知手段１２２が起動完了を通知すると、それに基づき実行モード切替え手段１３２がハードウェア割り込み管理手段１４や各ＣＰＵコアにクリーンアップモードへの変更を通知した上で、現用系サブシステム変更手段１３５が従来の待機系システムを新現用系サブシステムとして使用されるようハードウェア割り込み管理手段１４やＩ／Ｏ管理手段１７に通知し、最後に実行モード切替え手段１３２が実行モードを通常モードに変更することで、本発明の目的を達成している。
【発明の効果】
【００５８】
第１の効果は、実行されるプログラムの種類に限定されずに主記憶装置のクリーンアップをすることができることである。その理由は、プログラムや処理系ごとに備わっているクリーンアップ機能に依存するのではなく、現用系サブシステムで使用する主記憶領域自体を入れ替えることでクリーンアップを行うからである。
【００５９】
第２の効果は、計算機システムの主記憶装置を短期間でクリーンアップできることである。その理由は、待機状態のＣＰＵコアと主記憶領域を用いてバックグラウンド処理で現用系サブシステムと同じプログラムを起動した待機系サブシステムを起動しておき、その待機系サブシステムの主記憶領域を現用系サブシステムから使用することで、ユーザの視点からは短時間で主記憶装置がクリーンアップされたように見えるからである。
【００６０】
第３の効果は、１つのＣＰＵに掛かる負荷を分散して主記憶装置をクリーンアップすることができることである。その理由は、現用系サブシステムが通常モードで動作している時に、バックグラウンド処理で別のＣＰＵコアを用いて待機系サブシステムを起動するからである。
【００６１】
第４の効果は、計算機システムを瞬間的に再起動できることである。その理由は、たとえ主記憶領域のクリーンアップは必要なくただ再起動処理を行いたい時であっても、第２の効果と同じ理由で、ユーザの視点からは短期間で計算機システムが再起動したように見せることができるからである。
【００６２】
第５の効果は、主記憶のクリーンアップ処理の省電力化を図ることができることである。その理由は、待機系サブシステムは初期状態で電源が入っていない状態であり、クリーンアップ処理が必要な時になって初めて起動されるからである。この効果は、携帯端末など組込機器の省電力化を考慮すべき計算機システムにおいて特に有用である。
【００６３】
第６の効果は、ユーザの作業中のデータがクリーンアップによって消えてしまうことを防止することができることである。これはクリーンアップが必要と判断された後、更に現在の端末の状態を確認して、クリーンアップを開始しても問題が無いかを確認しているからである。
【発明を実施するための最良の形態】
【００６４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００６５】
図１を参照すると、本発明の第１の実施の形態は、データ処理装置１とキーボード等の入力装置２と、ディスプレイ等の出力装置３と、補助記憶装置４と、その他周辺機器５とを有する。
【００６６】
データ処理装置１は、少なくともＣＰＵコア（Ａ）１１と、ＣＰＵコア（Ｂ）１２と、ＣＰＵ起動手段１３１と、実行モード切替え手段１３２と、主記憶変更手段１３３と、ＣＰＵ変更手段１３４と、ハードウェア割り込み管理手段１４と、主記憶領域管理手段１５と、主記憶部１６とを有する。
【００６７】
ＣＰＵコア（Ａ）１１は、主記憶領域（Ａ）１６１とともに現用系サブシステムを構成する中央演算装置であり、キーボード、ディスプレイなどの周辺機器はＣＰＵコア（Ａ）１１から使用できる状態にある。このＣＰＵコア（Ａ）１１は、内部に少なくとも実行モード管理手段１１１と主記憶状態監視手段１１２とを備えている。また、図示していないが、ＣＰＵコア（Ａ）１１はＣＰＵコア（Ｂ）１２と同様に起動完了通知手段も有する。これは、ＣＰＵコア（Ａ）１１が待機系サブシステムになる場合があるからである。
【００６８】
実行モード管理手段１１１は、各ＣＰＵの実行モードを管理する。ここで想定される実行モードは、通常モードとクリーンアップモードとである。通常モードとは、ＣＰＵコアや主記憶部などの全装置が通常の処理を行っている状態である。またクリーンアップモードとは、ＣＰＵコアや主記憶部などの各装置において通常モードで実行されている本来の処理を中断して主記憶部のクリーンアップのために待機している状態のことを意味する。
【００６９】
主記憶状態監視手段１１２は、主記憶領域（Ａ）１６１のクリーンアップが必要な状態であるかどうかを監視する。クリーンアップが必要であると判断した場合はＣＰＵ起動手段１３１に対してクリーンアップ要求を出す。また主記憶状態監視手段１１２は、「１日に１回」や「１週間に１回」などのように、定期的にクリーンアップ要求を出しても良い。
【００７０】
尚、ここでクリーンアップが必要な状態とは、システム全体が定常状態であり、かつ現用サブシステムの主記憶領域の使用量が前もって指定された閾値を超えてしまっている状態のことを指す。
【００７１】
また、定常状態とは、クリーンアップを行っても周辺機器とのＩ／Ｏ（入出力）のようにシステム全体やユーザに弊害が及ばない状態のことを指す。例えば、計算機システムのユーザによってブラウザやメーラなどのプログラムが起動されておらず、尚且つシステムによって自動的に起動されるプログラムのみがシステム上で実行されている状態は、定常状態の一例である。また計算機システムとして携帯電話端末を想定した場合、計算機システム上でユーザが起動したプログラムが実行されておらず、尚且つ充電器上に置かれて充電中の時なども定常状態の一例である。
【００７２】
このように、定常状態にはいくつかのパターンが考えられるが、そのうちの任意のパターンをあらかじめ主記憶状態監視手段１１２に設定しておき、現用系システムが設定された状態になった時に主記憶状態監視手段１１２は定常状態になったと判断する。なおこの定常状態のパターンはシステムであらかじめ設定されていても良いし、ユーザが好みのパターンを任意に選択できても良い。
【００７３】
また閾値とは、クリーンアップアップ処理が必要であると判断される主記憶領域使用量のことであり、前もって主記憶状態監視手段１１２に設定されている。現用系サブシステムで処理を行っていくうちに、メモリリークやゾンビプロセスなどが原因で現用系サブシステムの主記憶領域上に不正なデータが残ってしまい主記憶領域使用量が増加することが考えられるが、これが原因となって増加した主記憶領域使用量がこの閾値に達した段階でクリーンアップ処理が行われることになる。
【００７４】
一方、ＣＰＵコア（Ｂ）１２は、主記憶領域（Ｂ）１６２とともに待機系サブシステムを構成する中央演算装置で、特に起動要求がない限り、電源ＯＦＦの状態もしくは低電力が供給され待機状態にある。このＣＰＵコア（Ｂ）１２は内部に少なくとも実行モード管理手段１２１と起動完了通知手段１２２とを備えている。また、図示していないが、ＣＰＵコア（Ｂ）１２はＣＰＵコア（Ａ）１１と同様に主記憶状態監視手段も有する。これは、ＣＰＵコア（Ｂ）１２が現用系サブシステムになる場合があるからである。
【００７５】
起動完了通知手段１２２は、ＣＰＵコア（Ｂ）１２で待機系サブシステムが起動完了し定常状態になったら、起動完了通知を実行モード切替え手段１３２に通知する。
【００７６】
ＣＰＵ起動手段１３１は、主記憶状態監視手段１１２からクリーンアップ要求が届くと待機状態にあるＣＰＵコア（Ｂ）１２に対して起動要求を出す。
【００７７】
実行モード切替え手段１３２は、起動完了通知手段１２２から起動完了通知を受け取ると、各ＣＰＵコアとハードウェア割り込み管理手段１４に対して、実行モードを通常モードからクリーンアップモードに切替えるよう通知する。また一連のクリーンアップ処理が終了した段階で、各ＣＰＵコアとハードウェア割り込み管理手段１４に対して、クリーンアップモードから通常モードに戻ることを通知する。
【００７８】
主記憶変更手段１３３は、主記憶領域管理手段１５に対して、ＣＰＵコア（Ａ）１１からアクセス可能な主記憶領域（Ａ）１６１と、ＣＰＵコア（Ｂ）１２からアクセス可能な主記憶領域（Ｂ）１６２を切替えるように通知する。
【００７９】
ＣＰＵ変更手段１３４は、ＣＰＵコア（Ａ）１１のＣＰＵ情報（レジスタ値、ＣＰＵキャッシュなどＣＰＵが動作するにあたって必要となる情報）をＣＰＵコア（Ｂ）１２のＣＰＵ情報をもとに設定する。レジスタ値の設定方法としては、ＣＰＵコア（Ｂ）１２のＣＰＵのレジスタ値をＣＰＵコア（Ａ）１１のＣＰＵのレジスタにコピーする方法や、ＣＰＵコア（Ａ）１１のＣＰＵのレジスタ値を適切なレジスタ値に設定するための軽量なブートストラップを実行する方法などがある。またキャッシュの設定方法については、レジスタ値と同様にＣＰＵコア（Ｂ）１２からコピーする方法や、ＣＰＵコア（Ａ）１１のキャッシュ自体をフラッシュして無効にする方法などがある。
【００８０】
ハードウェア割り込み管理手段１４は、周辺機器からハードウェア割り込みが発生した時にその割り込みをどのＣＰＵコアに伝達するかを管理している。また、実行モード切替え手段１３２からクリーンアップモードへの切替えが通知されると、周辺機器からのハードウェア割り込みがどのＣＰＵコアにも伝わらないよう割り込みマスクの設定を行う。
【００８１】
主記憶領域管理手段１５は、各ＣＰＵコアに割り当てる主記憶領域の範囲を管理する。管理方法は、主記憶領域（Ａ）１６１と主記憶領域（Ｂ）１６２が主記憶部内でどのように分割されているかに依存するが、例えば図９のように、１つの物理アドレス空間を分割し、そのうち下位空間を主記憶領域（Ａ）１６１として使用し上位空間を主記憶領域（Ｂ）１６２として使用しているのであれば、ＣＰＵコア（Ｂ）１２から主記憶領域（Ｂ）１６２にアクセス要求があった場合は、主記憶領域管理手段１５が、アクセスのあった物理アドレスの値にオフセット値分（０ｘ０２００００００）を加算し、加算後のアドレスにアクセスさせることになる。ＣＰＵコア（Ａ）１１から主記憶領域（Ａ）１６１にアクセス要求があった場合は、主記憶領域管理手段１５で加算処理を行う必要はなく、要求のあった物理アドレスにそのままアクセスさせることになる。
【００８２】
主記憶部１６は、主記憶領域（Ａ）１６１と主記憶領域（Ｂ）１６２から構成されている。主記憶領域（Ａ）１６１はＣＰＵコア（Ａ）１１から使用される主記憶領域であり、主記憶領域（Ｂ）１６２はＣＰＵコア（Ｂ）１２から使用される主記憶領域である。またＣＰＵコア（Ａ）１１から使用されている主記憶領域（Ａ）１６１は、メモリリークやゾンビプロセスなどが原因で不正なデータが蓄積されており、クリーンアップが必要な状況であるものとする。
【００８３】
補助記憶装置４は、プログラムコードやユーザデータなどが格納される記憶媒体である。ハードディスクやフラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記憶装置がこれに該当する。
【００８４】
続いて、図１−図８を参照して、本実施の形態の全体の動作について説明する。
【００８５】
まず前提として、現用系サブシステムが稼動している状態である。
【００８６】
そこでまず図３で示したように、ＣＰＵコア（Ａ）１１内の主記憶状態監視手段１１２が、現用系サブシステムが定常状態にあるかどうかを調べる（ステップＡ１１）。
【００８７】
もし定常状態でないならば（ステップＡ１でＮＯ）、再びステップＡ１に戻り、現用系サブシステムが定常状態であるかを調べる。
【００８８】
もし定常状態であるならば（ステップＡ１でＹＥＳ）、次に主記憶状態監視手段１１２は、現用系サブシステムの主記憶領域の使用量が前もって設定された閾値を越えているかどうかを判断する（ステップＡ１２）。
【００８９】
もし閾値を超えていないのであれば（ステップＡ２でＮＯ）、再びステップＡ１に戻り、現用系サブシステムが定常状態であるかを調べる。
【００９０】
もし閾値を超えているのであれば（ステップＡ１２でＹＥＳ）、クリーンアップ必要状態であると判断し、ＣＰＵ起動手段１３１にクリーンアップ要求を出す（ステップＡ１３）。
【００９１】
続いて、図４に示すように、ＣＰＵ起動手段１３１は、待機状態にあるＣＰＵコア（Ｂ）１２に対して起動要求を出し（ステップＡ２１）、ＣＰＵコア（Ｂ）１２は起動処理を開始する（ステップＡ２２）。なおＣＰＵコア（Ｂ）１２が起動することで、待機系サブシステムが起動することになる。待機系サブシステムが起動し定常状態になると、起動完了通知手段１２２は実行モード切替え手段１３２に起動完了通知を行う（ステップＡ２３）。
【００９２】
続いて、図５に示すように、実行モード切替え手段１３２が、ハードウェア割り込み管理手段１４に対してクリーンアップモードへの切替えを通知する（ステップＡ３１）。
【００９３】
するとハードウェア割り込み管理手段１４は、周辺機器からのハードウェア割り込みがどのＣＰＵコアにも伝わらないよう割り込みマスクの設定を行う（ステップＡ３２）。次に実行モード切替え手段１３２は、各ＣＰＵコアに対してクリーンアップモードへの切替えを通知する（ステップＡ３３）。すると各ＣＰＵコアの実行モード管理手段１１１、１２１は、自身の実行モードを通常モードからクリーンアップモードへ切替える（ステップＡ３４）。
【００９４】
続いて、図６に続いて、主記憶変更手段１３３は、主記憶領域管理手段１５にＣＰＵコア（Ａ）１１とＣＰＵコア（Ｂ）１２からアクセス可能な主記憶領域を切替えるように通知する（ステップＡ４１）。すると主記憶領域管理手段１５は、ＣＰＵコア（Ａ）１１からアクセスできる主記憶領域は主記憶領域（Ｂ）１６２、ＣＰＵコア（Ｂ）１２からアクセスできる主記憶領域は主記憶領域（Ａ）１６１となるように変更する（ステップＡ４２）。これにより図７で示すように、現用系サブシステムが使用する主記憶領域は主記憶領域（Ｂ）１６２に、待機系サブシステムが使用する主記憶領域は主記憶領域（Ａ）１６１に切り替わることになる。次にＣＰＵ変更手段１３４が、ＣＰＵコア（Ａ）１１のレジスタ値、キャッシュを適切に設定する（ステップＡ４３）。
【００９５】
続いて、図８に示すように、実行モード切替え手段１３２が、各ＣＰＵコアに対して通常モードへの切替えを通知する（ステップＡ５１）。すると各ＣＰＵコアの実行モード管理手段１１１、１２１は、自身の実行モードをクリーンアップモードから通常モードへ切替える（ステップＡ５２）。次に実行モード切替え手段１３２は、ハードウェア割り込み管理手段１４に対して通常モードへの切替えを通知する（ステップＡ５３）。するとハードウェア割り込み管理手段１４は、周辺機器からのハードウェア割り込みをクリーンアップモードに切替える前の通常モードの設定に戻し、ＣＰＵコア（Ｂ）が終了して待機系サブシステムも終了する（ステップＡ５４）。
【００９６】
以上の動作により、計算機システムは再び通常モードで動作することになるが、主記憶領域（Ｂ）１６２を使用する新現用系サブシステムでは、更に各周辺機器との整合性を取るための処理が行われる（ステップＡ５５）。
【００９７】
続いて、本実施の形態の効果について説明する。
【００９８】
本実施の形態では、待機系サブシステムの主記憶領域（Ｂ）１６２に定常状態の主記憶状態を作成しておき、クリーンアップモードに移った時に、その主記憶領域（Ｂ）１６２が現用系サブシステムの主記憶領域となるよう主記憶領域を切替えることで、短時間で主記憶装置をクリーンアップすることができる。
【００９９】
次に、本発明の第２の発明を実施するための最良の形態について、図面を参照して詳細に説明する。
【０１００】
図９を参照すると、本発明の第２の発明を実施するための最良の形態は図１に示された第１の実施の形態と比較し、データ処理装置６が主記憶変更手段１３３とＣＰＵ変更手段１３４、主記憶領域管理手段１５を有しておらず、現用系サブシステム変更手段１３５とＩ／Ｏ管理手段１７を有する点で異なる。尚、上記実施の形態と同様の構成については同一の番号を付し、詳細な説明を省略する。
【０１０１】
現用系サブシステム変更手段１３５は、現用系サブシステムと待機系サブシステムを切替える時に、ハードウェア割り込み管理手段１４とＩ／Ｏ管理手段１７に対して、その旨を通知する。本実施の形態の場合では、新たにＣＰＵコア（Ｂ）１２、主記憶領域（Ｂ）が新現用系サブシステムとなることを通知する。
【０１０２】
Ｉ／Ｏ管理手段１７は、周辺機器と各ＣＰＵコア間の入出力を管理しており、どのＣＰＵコアがどの周辺機器にアクセスする権限があるかを管理している。
【０１０３】
続いて、図９−図１４を参照して本実施の形態の動作を詳細に説明する。なお図１０〜図１２及び図１３に記載されている主記憶状態監視手段１１２の動作（ステップＢ１１〜ステップＢ１３）と、ＣＰＵ起動手段の動作（ステップＢ２１〜ステップＢ２３）と、実行モード切替え手段１３２の動作（ステップＢ３１〜Ｂ３４）と、実行モード切替え手段１２１の動作（ステップＢ５１〜ステップＢ５５）とについては、それぞれ本発明の第１の実施の形態におけるステップＡ１１−Ａ３４とステップＡ５１−Ａ５５と同じ動作を行うため説明は省略し、ここでは変更のあるステップＢ４１−Ｂ４４についてのみ説明する。
【０１０４】
図１３を参照すると、現用系サブシステム変更手段１３５は、ハードウェア割り込み管理手段１４に現用系サブシステムと待機系サブシステムのＣＰＵコアの切替えを通知する（ステップＢ４１）。するとハードウェア割り込み管理手段１４は、通常モードに復帰した時点で使用するＣＰＵコア（Ａ）１１の割り込みマスクと、ＣＰＵコア（Ｂ）１２が使用する割り込みマスクの設定を入れ替える（ステップＢ４２）。次に現用系サブシステム変更手段１３５は、Ｉ／Ｏ管理手段１７に対して現用系サブシステムと待機系サブシステムの入れ替えを通知する（ステップＢ４３）。するとＩ／Ｏ管理手段１７は、ＣＰＵコア（Ａ）１１から各周辺機器へのアクセス許可設定をＣＰＵコア（Ｂ）１２から各周辺機器のアクセス許可設定と入れ替える（ステップＢ４４）。これにより旧現用系サブシステムのＣＰＵコアであるＣＰＵコア（Ａ）１１で使用されていた割り込みマスクや周辺機器へのアクセス権限が、新現用系サブシステムのＣＰＵコアであるＣＰＵコア（Ｂ）１２に受け継がれることになる。
【０１０５】
続いて、本発明の形態の効果について説明する。
【０１０６】
本実施の形態では、第１の実施の形態と異なり、一連のクリーンアップ処理においてＣＰＵ情報の書き換え処理を行わない代わりに、より短時間で処理が済む現用系サブシステムと待機系サブシステムの切替えを行うことで、第１の実施の形態より短時間で一連のクリーンアップ処理を終えることができる。
【０１０７】
次に、本発明の第３の発明を実施するための最良の形態について、図面を参照して詳細に説明する。
【０１０８】
図１５を参照すると、本発明の第３の発明を実施するための最良の形態は、図１お呼び図９に示された第１の実施及び第２の実施の形態と同様、データ処理装置８と、入力装置２と、出力装置３と、補助記憶装置４とその他周辺機器５から構成される。
【０１０９】
主記憶装置クリーンアップ用プログラム７はデータ処理装置８に読み込まれ、データ処理装置８の動作を制御する。データ処理装置８は、主記憶装置クリーンアップ用プログラム７の制御により、第１および第２の実施の形態におけるデータ処理装置１および６による処理と同一の処理を実行する。
【実施例１】
【０１１０】
次に、本発明の第１の実施例を、図面を用いて説明する。かかる実施例は本発明の第１の実施の形態に対応するものである。
【０１１１】
本実施例は、データ処理装置として３つのＣＰＵコアを備えた携帯電話端末の処理部を、入力装置としてキーボードを、出力装置としてディスプレイを、補助記憶装置としてフラッシュＲＯＭを備えており、各装置はバスで接続されている。
【０１１２】
また携帯電話端末の処理部の内部では、ＣＰＵコア（Ａ）の機能を担う第１のＣＰＵコア、ＣＰＵコア（Ｂ）の機能を担う第２のＣＰＵコア、ＣＰＵ起動手段からＣＰＵ変更手段までの各機能を担う第３のＣＰＵコアが担う。更にハードウェア割り込み管理手段はハードウェア割り込み管理回路で、主記憶領域管理手段は主記憶領域管理回路で実装されている。
【０１１３】
以上まとめると、本実施例は図１６のように実装されている。
【０１１４】
このような実施例において、現用系サブシステムと待機系サブシステムについて詳細を説明する。
【０１１５】
現用系サブシステムは第１のＣＰＵコアと主記憶領域（Ａ）から構成される。第１のＣＰＵコア起動時には補助記憶装置からＬｉｎｕｘ  ＯＳが主記憶領域（Ａ）にロードされ、以降現用系サブシステムのＯＳとして動作する。このＬｉｎｕｘ  ＯＳ上ではブラウザやＪａｖａ  ＶＭ、メーラ、Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍなどのプログラムが実行されており、主記憶状態監視手段も主記憶状態監視プログラムとしてＬｉｎｕｘ  ＯＳ上で実行される。また実行モード管理手段は専用の回路として第１のＣＰＵコア内で実装される。
【０１１６】
なお主記憶状態監視プログラム内に設定されている閾値、つまり現用系サブシステムの定常状態での正常な現用系サブシステムの主記憶領域の使用量は３０ＭＢであるとする。
【０１１７】
ここで主記憶状態監視プログラムは、図１７のようなユーザインタフェースを持ち、ユーザは主記憶装置のクリーンアップを行う定常状態を選択できる。
【０１１８】
待機系サブシステムは第２のＣＰＵコアと主記憶領域（Ｂ）から構成される。初期状態では電源ＯＦＦの状態にあり起動要求待ちであるが、第２のＣＰＵコアに対する起動要求があると、補助記憶装置からＬｉｎｕｘ  ＯＳが主記憶領域（Ｂ）にロードされ、以降待機系サブシステムのＯＳとして動作する。また待機系サブシステムは現用系サブシステムと同じプログラム群を実行されており、更に追加して起動完了通知手段も起動完了通知プログラムとして待機系サブシステムのＬｉｎｕｘ  ＯＳ上で実行される。なおこの起動完了通知プログラムは、現用系サブシステムで実行されていても良い。また実行モード管理手段は第１のＣＰＵコアと同様、専用の回路として第２のＣＰＵコア内で実装される。
【０１１９】
このような構成において、携帯電話端末のユーザが現用系サブシステムを操作している時に、ブラウザやＪａｖａ  ＶＭなどのアプリケーションを終了し、待ち受け画面が表示される定常状態に戻ったが、主記憶領域（Ａ）にはメモリリークやゾンビプロセスなどが原因で不正なデータが蓄積されており、現用系サブシステムの主記憶領域の使用量が３１ＭＢになってしまったとする。
【０１２０】
すると、現用系サブシステム上の主記憶状態監視プログラムが、現在の主記憶領域の使用量（３１ＭＢ）が閾値（３０ＭＢ）を超えていることを認識し、第３のＣＰＵコアに対してクリーンアップ要求を電気信号として送信する。すると第３のＣＰＵコアは第２のＣＰＵコアに対して起動要求を電気信号として送信する。するとそれまで待機状態であった第２のＣＰＵコアが起動し、主記憶領域（Ｂ）内に待機系サブシステムを構築する。そして待機系サブシステムが起動完了し定常状態になった段階で、起動完了通知プログラムが第３のＣＰＵコアに対して起動完了通知を電気信号で送信する。なおこの時点で待機系サブシステムの主記憶領域の使用量は３０ＭＢであり、現用系サブシステムの本来の主記憶領域の使用量と同じ値である。
【０１２１】
次に第３のＣＰＵコアがクリーンアップモードへの切替え処理を行う。第３のＣＰＵコアはまず、ハードウェア割り込み回路に対してクリーンアップモードへの切替えを電気信号で通知し、ハードウェア割り込み管理回路で切替え処理を行う。例えば図１８のようなハードウェア割り込みマスクの設定になっていた場合、これをすべて無効にする。これにより第１および第２のＣＰＵコアにハードウェア割り込みが伝達されない状態となる。次に、第１および第２のＣＰＵコアに対してクリーンアップモードへの切替えを電気信号で通知すると、第１および第２のＣＰＵコアはそれまでの処理を中断しクリーンアップモード状態になる。
【０１２２】
こうしてクリーンアップモードへの切替え処理が完了した段階で、次に第３のＣＰＵコアは主記憶管理回路に対して主記憶領域（Ａ）と主記憶領域（Ｂ）を切替えるよう電気信号で通知し、主記憶領域管理回路では図１９のように切替え処理を行う。これにより現用系サブシステムと待機系サブシステムのそれぞれの主記憶領域が切り替わり、現用系サブシステムから見ると主記憶領域のクリーンアップが行われたことになる。これに伴い第１のＣＰＵコアは主記憶領域（Ｂ）にアクセスすることになるが、その際アクセス先アドレスに矛盾が生じないよう、第３のＣＰＵコアが、第１のＣＰＵコアのレジスタを第２のＣＰＵコアからコピーし、またキャッシュ領域をフラッシュさせる。
【０１２３】
これらの処理が終わった段階で、第３のＣＰＵコアが通常モードへの切替え処理を行う。第３のＣＰＵコアはまず、第１および第２のＣＰＵコアに対して通常モードへの切替えを通知すると、第１および第２のＣＰＵコアはクリーンアップモードから通常モードへ復帰する。次に第３のＣＰＵコアはハードウェア割り込み回路に対して通常モードへの切替えを通知すると、図２０のように今まで無効になっていたハードウェア割り込みを前の状態に復帰させ、待機系サブシステムも終了する。これにより、クリーンアップモードに切り替わる前のようにハードウェア割り込みが各ＣＰＵコアに伝達されることになる。
【０１２４】
こうして計算機システム全体としては通常モードに復帰することになるが、復帰直後に、新現用系サブシステムと周辺機器間で整合性をとるために、新現用系サブシステムのＬｉｎｕｘ  ＯＳは各デバイスドライバに対して整合回復処理を指示する。この処理を受けたデバイスドライバでは、デバイスの特性を踏まえ必要な整合性処理を行う。
【実施例２】
【０１２５】
次に、本発明の第２の実施例を、図面を用いて説明する。尚、かかる実施例は本発明の第２の実施の形態に対応するものである。
【０１２６】
本実施例は図２１のように、第１の実施例と構成と大部分において同じとするが、データ処理装置内において差異がある。まず第３のＣＰＵコアが主記憶変更手段とＣＰＵ変更手段としての機能を持たず、代わりに現用系サブシステム変更手段とＣＰＵコア切替え通知手段としての機能を持つ点において異なる。また主記憶領域管理回路は持たず、代わりにＩ／Ｏ管理手段として機能するＩ／Ｏ管理回路を持つことにおいて異なる。
【０１２７】
ここで第１の実施例と同様に現用系サブシステムの定常状態での主記憶領域の使用量が３１ＭＢであったとすると、第１のＣＰＵコアの主記憶状態監視プログラムが不正なデータが主記憶領域（Ａ）上に残っていると認識し、一連のクリーンアップ処理が開始されることになるが、本実施例ではクリーンアップモードへの切替え処理が完了した段階で、まず第３のＣＰＵコアがハードウェア割り込み管理回路に対して、現用系サブシステムと待機系サブシステムのＣＰＵコアの切替えを通知し、ハードウェア割り込み回路では図２２のように通常モードで使用するＣＰＵコア（Ａ）の割り込みマスクと、ＣＰＵコア（Ｂ）が使用する割り込みマスクの設定を入れ替える。これにより従来の現用系サブシステムのＣＰＵコアに割り当てられていたハードウェア割り込みマスク設定を、新現用系サブシステムのＣＰＵコアに引き継ぐことができる。次に第３のＣＰＵコアは、Ｉ／Ｏ管理回路に対して現用系サブシステムと待機系サブシステムの切替えを通知し、Ｉ／Ｏ管理手段では図２３のようにＩ／Ｏ管理テーブルにおけるＣＰＵコア（Ａ）から周辺機器のアクセス許可設定をＣＰＵコア（Ｂ）から周辺機器のアクセス許可設定と入れ替える。これにより従来の現用系サブシステムのＣＰＵコアに割り当てられていた周辺機器とのＩ／Ｏ権限を、新現用系サブシステムのＣＰＵコアに引き継ぐことができる。
【０１２８】
これ以外の処理の流れは、第１の実施例と同じであるので、ここでは説明は省略する。
【０１２９】
なお第１および第２の実施例において、補助記憶装置としてフラッシュＲＯＭを使用したがハードディスクなど電子的に読み書きできる媒体であれば何であっても良い。
【０１３０】
また第１の実施例において、ＣＰＵ起動手段、実行モード切替え手段、主記憶変更手段、ＣＰＵ変更手段を第３のＣＰＵコアで実装していたが、それぞれ個別の回路で実現しても良い。
【０１３１】
また第２の実施例において、ＣＰＵ起動手段、実行モード切替え手段、現用系サブシステム変更手段を第３のＣＰＵコアで実装していたが、それぞれ個別の回路で実現しても良い。
【０１３２】
また第１および第２の実施例において、３つのＣＰＵコアを備えたデータ処理装置を使用したが、２つ以上のＣＰＵコアを備えたデータ処理装置であれば何であっても良い。
【産業上の利用可能性】
【０１３３】
本発明によれば、携帯電話端末などの組み込み機器における主記憶装置クリーンアップ方法として適用できる。そのような組込み機器では、搭載可能な主記憶装置量も制限されるため、メモリリークやゾンビプロセスが原因で主記憶領域に不正なデータが蓄積されてしまうと、システム全体の挙動が不安定になるという問題があった。
【０１３４】
また、搭載可能な主記憶装置量への制約が組込み機器ほど厳しくない、パーソナルコンピュータやワークステーションなどの計算機システムにおいても適用可能である。
【図面の簡単な説明】
【０１３５】
【図１】本発明の第１の発明を実施するための最良の形態の構成を示すブロック図である。
【図２】主記憶部の構成を示す図である。
【図３】第１の実施の形態の動作を示す図（１）である。
【図４】第１の実施の形態の動作を示す図（２）である。
【図５】第１の実施の形態の動作を示す図（３）である。
【図６】第１の実施の形態の動作を示す図（４）である。
【図７】現用系サブシステムと待機系サブシステムとの間での主記憶領域切替えの様子を示す図である。
【図８】第１の実施の形態の動作を示す図（５）である。
【図９】本発明の第２の発明を実施するための最良の形態の構成を示すブロック図である。
【図１０】第２の発明を実施するための最良の形態の動作の具体例を示す図（１）である。
【図１１】第２の発明を実施するための最良の形態の動作の具体例を示す図（２）である。
【図１２】第２の発明を実施するための最良の形態の動作の具体例を示す図（３）である。
【図１３】第２の発明を実施するための最良の形態の動作の具体例を示す図（４）である。
【図１４】第２の発明を実施するための最良の形態の動作の具体例を示す図（５）である。
【図１５】本発明の第３の発明を実施するための最良の形態の構成を示すブロック図である。
【図１６】第１の実施例の構成を示すブロック図である。
【図１７】主記憶状態監視プログラムのユーザインタフェースを示した図である。
【図１８】第１の実施例において、割り込みマスクの設定をクリーンアップモードに変更している様子を示す図である。
【図１９】第１の実施例において、主記憶領域切替えの様子を示す図である。
【図２０】第１の実施例において、割り込みマスクの設定を通常モードに変更している様子を示す図である。
【図２１】第２の実施例の構成を示すブロック図である。
【図２２】第２の実施例において、割り込みマスクの設定を第１のＣＰＵコア用と第２のＣＰＵコア用で入れ替えている様子を示す図である。
【図２３】第２の実施例において、Ｉ／Ｏ管理テーブルの設定を第１のＣＰＵコア用と第２のＣＰＵコア用で入れ替えている様子を示す図である。
【符号の説明】
【０１３６】
１      データ処理装置
２      入力装置
３      出力装置
４      補助記憶装置
５      その他周辺機器
６      データ処理装置
７      主記憶クリーンアップ用プログラム
８      データ処理装置
１１    ＣＰＵコア（Ａ）
１２    ＣＰＵコア（Ｂ）
１４    ハードウェア割り込み管理手段
１５    主記憶領域管理手段
１６    主記憶部
１１１    実行モード管理手段
１１２    主記憶状態監視手段
１２１    実行モード管理手段
１２２    起動完了通知手段
１３１    ＣＰＵ起動手段
１３２    実行モード切替え手段
１３３    主記憶変更手段
１３４    ＣＰＵ変更手段
１３５    現用系サブシステム変更手段
１６１    主記憶領域（Ａ）
１６２    主記憶領域（Ｂ）
【図１】
2007257259.tif 000003
【図２】
2007257259.tif 000004
【図３】
2007257259.tif 000005
【図４】
2007257259.tif 000006
【図５】
2007257259.tif 000007
【図６】
2007257259.tif 000008
【図７】
2007257259.tif 000009
【図８】
2007257259.tif 000010
【図９】
2007257259.tif 000011
【図１０】
2007257259.tif 000012
【図１１】
2007257259.tif 000013
【図１２】
2007257259.tif 000014
【図１３】
2007257259.tif 000015
【図１４】
2007257259.tif 000016
【図１５】
2007257259.tif 000017
【図１６】
2007257259.tif 000018
【図１７】
2007257259.tif 000019
【図１８】
2007257259.tif 000020
【図１９】
2007257259.tif 000021
【図２０】
2007257259.tif 000022
【図２１】
2007257259.tif 000023
【図２２】
2007257259.tif 000024
【図２３】
2007257259.tif 000025