(57)【要約】      （修正有）【課題】マルチプロセッサシステムにおいて、ハードウエアの規模を抑制しつつ、キャッシュ処理の所要時間を短縮することができるようにする。【解決手段】マルチプロセッサシステム１０は、複数のキャッシュメモリ１２と、複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサ１１と、共有メモリ１５とを備える。複数のプロセッサは、それぞれ、ＯＳを実行することにより、キャッシュメモリに記憶されている全てのデータに対して、共有メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行う。【選択図】図１
2014038502.tif 000002
【特許請求の範囲】
【請求項１】
複数のキャッシュメモリと、
前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、
メモリと
を備え、
前記複数のプロセッサは、それぞれ、プログラムを実行することにより、
前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行うキャッシュ処理部として機能する
情報処理装置。
【請求項２】
前記複数のプロセッサは、それぞれ、前記プログラムを実行することにより、
前記キャッシュメモリへのアクセスを停止する停止部と、
前記停止部により前記キャッシュメモリへのアクセスが停止された場合、前記キャッシュメモリへのアクセスの停止を表す停止情報を設定して、前記メモリに記憶させる停止情報設定部と
してさらに機能し、
前記キャッシュ処理部は、前記メモリに前記複数のプロセッサの前記停止情報が記憶されている場合、前記キャッシュメモリに記憶されている全てのデータに対して前記キャッシュ処理を行う
請求項１に記載の情報処理装置。
【請求項３】
前記複数のプロセッサは、それぞれ、前記プログラムを実行することにより、
前記キャッシュ処理部により前記キャッシュ処理が行われた場合、前記キャッシュ処理の終了を表す終了情報を設定して、前記メモリに記憶させる終了情報設定部と、
前記メモリに前記複数のプロセッサの前記終了情報が記憶されている場合、前記キャッシュメモリへのアクセスを許可する許可部と
してさらに機能する
請求項１に記載の情報処理装置。
【請求項４】
前記キャッシュ処理部は、前記キャッシュ処理の対象となるデータのサイズと、前記キャッシュメモリのサイズとに基づいて、前記キャッシュメモリに記憶されている全てのデータに対して前記キャッシュ処理を行う方が前記キャッシュ処理の対象となるデータに対してのみ前記キャッシュ処理を行うより短時間で前記キャッシュ処理が完了する場合に、前記キャッシュメモリに記憶されている全てのデータに対して前記キャッシュ処理を行う
請求項１に記載の情報処理装置。
【請求項５】
前記キャッシュ処理部は、前回の前記キャッシュ処理後の前記キャッシュメモリに対するアクセス状況に基づいて、前記キャッシュメモリに記憶されている全てのデータに対して前記キャッシュ処理を行う
請求項１に記載の情報処理装置。
【請求項６】
前記プログラムは、ＯＳ（Operating System）である
請求項１に記載の情報処理装置。
【請求項７】
複数のキャッシュメモリと、
前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、
メモリと
を備える情報処理装置の前記複数のプロセッサが、それぞれ、
プログラムを実行することにより、
前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行う
情報処理方法。
【請求項８】
複数のキャッシュメモリと、
前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、
メモリと
を備える情報処理装置の前記複数のプロセッサを、
前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行うキャッシュ処理部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法、およびプログラムに関し、特に、キャッシュメモリを用いる複数のプロセッサを備えるマルチプロセッサシステムにおいて、ハードウエアの規模を抑制しつつ、キャッシュ処理の所要時間を短縮することができるようにした情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
キャッシュメモリを用いるプロセッサが、共有メモリを介して、他のプロセッサやデバイスにデータを受け渡す際、キャッシュ処理が必要である。キャッシュ処理とは、キャッシュメモリに記憶されているデータに対して、共有メモリへの転送または破棄の少なくとも一方を行う処理である。
【０００３】
キャッシュ処理では、対象となるデータがキャッシュメモリに存在するかどうかが検出され、対象となるデータがキャッシュメモリに存在する場合、そのデータに対して、共有メモリへの転送または破棄の少なくとも一方が行われる。従って、キャッシュ処理の所要時間は、対象となるデータのサイズに比例する。
【０００４】
このため、キャッシュ処理の対象となるデータのサイズが、キャッシュメモリのサイズ以上である場合、対象となるデータではなく、キャッシュメモリに記憶されている全てのデータに対してキャッシュ処理を行うことが考案されている。これにより、対象となるデータがキャッシュメモリに存在するかどうかを検出する必要がなくなり、キャッシュ処理の所要時間を短縮することができる。
【０００５】
一方、キャッシュメモリを用いる複数のプロセッサを備えるマルチプロセッサシステムでは、各キャッシュメモリ間でデータの整合性を維持する必要がある。この整合性は、一般的に、ハードウエアにより維持される。
【０００６】
しかしながら、ハードウエアの規模の抑制等の理由により、キャッシュメモリに記憶されている全てのデータに対してキャッシュ処理を行う場合には、各キャッシュメモリ間のデータの整合性を維持しないハードウエアが存在する。
【０００７】
また、画像処理を行うマルチプロセッサシステムにおいて、アプリケーションプログラムの直前および直後にのみ、キャッシュメモリに記憶されているデータに対して共有メモリへの転送と破棄を行うことにより、効率良くキャッシュメモリと共有メモリの整合性を管理することが考案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２０４２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、マルチプロセッサシステムにおいて、ハードウエアの規模の抑制等の理由により、キャッシュメモリに記憶されている全てのデータに対してキャッシュ処理を行う場合には、各キャッシュメモリ間の整合性を維持しないハードウエアが存在する。従って、マルチプロセッサシステムでは、キャッシュメモリに記憶されている全てのデータに対してキャッシュ処理を行うことができない場合がある。
【００１０】
よって、マルチプロセッサシステムにおいて、ハードウエアの規模を抑制しつつ、キャッシュメモリに記憶されている全てのデータに対してキャッシュ処理を行うことによりキャッシュ処理の所要時間を短縮することが望まれている。
【００１１】
本技術は、このような状況に鑑みてなされたものであり、マルチプロセッサシステムにおいて、ハードウエアの規模を抑制しつつ、キャッシュ処理の所要時間を短縮することができるようにするものである。
【課題を解決するための手段】
【００１２】
本技術の一側面の情報処理装置は、複数のキャッシュメモリと、前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、メモリとを備え、前記複数のプロセッサは、それぞれ、プログラムを実行することにより、前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行うキャッシュ処理部として機能する情報処理装置である。
【００１３】
本技術の一側面の情報処理方法は、複数のキャッシュメモリと、前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、メモリとを備える情報処理装置の前記複数のプロセッサが、それぞれ、プログラムを実行することにより、前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行う情報処理方法である。
【００１４】
本技術の一側面のプログラムは、複数のキャッシュメモリと、前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、メモリとを備える情報処理装置の前記複数のプロセッサを、前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行うキャッシュ処理部として機能させるためのプログラムである。
【００１５】
本技術の一側面においては、複数のプロセッサにより、そのプロセッサがアクセスするキャッシュメモリに記憶されている全てのデータに対して、メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理が行われる。
【発明の効果】
【００１６】
本技術の一側面によれば、マルチプロセッサシステムにおいて、ハードウエアの規模を抑制しつつ、キャッシュ処理の所要時間を短縮することができる。
【図面の簡単な説明】
【００１７】
【図１】本技術を適用した情報処理装置としてのマルチプロセッサシステムの一実施の形態の構成例を示すブロック図である。
【図２】キャッシュ開始部の構成例を示す図である。
【図３】全キャッシュ処理部の構成例を示す図である。
【図４】キャッシュ開始処理を説明するフローチャートである。
【図５】同期全キャッシュ処理を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
＜一実施の形態＞
［情報処理装置の一実施の形態の構成例］
図１は、本技術を適用した情報処理装置としてのマルチプロセッサシステムの一実施の形態の構成例を示すブロック図である。
【００１９】
図１のマルチプロセッサシステム１０は、プロセッサ１１−１およびプロセッサ１１−２、キャッシュメモリ１２−１およびキャッシュメモリ１２−２、デバイス１３、メモリ管理部１４、共有メモリ１５、記憶部１６、通信部１７、およびドライブ１８が、バス（インターコネクト）１９を介して接続されることにより構成される。
【００２０】
マルチプロセッサシステム１０では、プロセッサ１１−１（プロセッサ１１−２）がキャッシュメモリ１２−１（キャッシュメモリ１２−２）を用いてプログラムを実行し、共有メモリ１５を介してプロセッサ１１−２（プロセッサ１１−１）やデバイス１３とデータをやり取りする。
【００２１】
具体的には、プロセッサ１１−１とプロセッサ１１−２は、CPU（Central Processing Unit），GPU(Graphics Processing Unit），DSP(Digital Signal Processing)などにより構成される。プロセッサ１１−１は、キャッシュメモリ１２−１にアクセスして、記憶部１６に記憶されているＯＳ（Operating System）などのプログラムを実行する。
【００２２】
より詳細には、プロセッサ１１−１は、プログラムを実行することにより、共有メモリ１５に記憶されている共有データ１５Ａをキャッシュメモリ１２−１に記憶させる。また、プロセッサ１１−１は、プログラムを実行することにより、必要に応じてキャッシュメモリ１２−１に記憶されているデータを用いて、各種のデータを生成し、生成されたデータをキャッシュメモリ１２−１に記憶させる。
【００２３】
さらに、プロセッサ１１−１は、ＯＳを実行することにより、キャッシュメモリ１２−１に記憶されているデータに対してキャッシュ処理を行う。このとき、プロセッサ１１−１は、必要に応じて、キャッシュメモリ１２−１へのアクセスの停止を表す停止情報、および、キャッシュ処理の終了を表す終了情報としての同期フラグ１５Ｂを設定し、共有メモリ１５に記憶させる。また、プロセッサ１１−１は、必要に応じて、プロセッサ１１−１とプロセッサ１１−２の同期フラグ１５Ｂに基づいてキャッシュ処理を行う。
【００２４】
プロセッサ１１−２は、キャッシュメモリ１２−２にアクセスして、プロセッサ１１−１と同様に、記憶部１６に記憶されているＯＳなどのプログラムを実行する。なお、以下では、プロセッサ１１−１とプロセッサ１１−２を特に区別する必要がない場合、それらをまとめてプロセッサ１１という。同様に、キャッシュメモリ１２−１とキャッシュメモリ１２−２をまとめてキャッシュメモリ１２という。
【００２５】
デバイス１３は、バス１９上の転送を制御するバスマスタである。デバイス１３は、共有メモリ１５に記憶されている共有データ１５Ａを、バス１９を介して受信する。また、デバイス１３は、データを共有データ１５Ａとして共有メモリ１５に送信し、記憶させる。
【００２６】
メモリ管理部１４は、キャッシュメモリ１２に記憶されている全てのデータに対するキャッシュ処理を行う場合以外に、キャッシュメモリ１２間でデータの整合性が維持されるように、キャッシュメモリ１２等を制御する。
【００２７】
共有メモリ１５は、キャッシュメモリ１２から転送されてくるプロセッサ１１により生成されたデータ、および、デバイス１３から供給されるデータを、共有データ１５Ａとして記憶する。また、共有メモリ１５は、各プロセッサ１１により設定された同期フラグ１５Ｂを、そのプロセッサ１１のアドレス空間に非キャッシュ属性で記憶する。
【００２８】
記憶部１６は、ハードディスクや不揮発性のメモリなどよりなる。記憶部１６は、ＯＳなどのプログラムを記憶する。
【００２９】
通信部１７は、ネットワークインタフェースなどよりなる。ドライブ１８は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア１８Ａを駆動する。
【００３０】
ＯＳなどのプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１８Ａに記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【００３１】
マルチプロセッサシステム１０では、プログラムは、リムーバブルメディア１８Ａをドライブ１８に装着することにより、バス１９を介して、記憶部１６にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１７で受信し、記憶部１６にインストールすることができる。その他、プログラムは、記憶部１６に、あらかじめインストールしておくことができる。
【００３２】
なお、プログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【００３３】
また、マルチプロセッサシステム１０に含まれるプロセッサ１１とキャッシュメモリ１２の数は、複数であればよく、２個に限定されない。
【００３４】
以上のように構成されるマルチプロセッサシステム１０のプロセッサ１１−１は、ＯＳを実行することにより、所定のタイミングで、キャッシュ処理の開始を通知するキャッシュ開始部として機能する。また、プロセッサ１１−１とプロセッサ１１−２は、ＯＳを実行することにより、所定のタイミングで、キャッシュメモリ１２に記憶されている全てのデータに対してキャッシュ処理を行う全キャッシュ処理部として機能する。なお、以下では、キャッシュメモリ１２に記憶されている全てのデータに対するキャッシュ処理を、全キャッシュ処理という。
【００３５】
［キャッシュ開始部の構成例］
図２は、キャッシュ開始部２０の構成例を示す図である。
【００３６】
図２のキャッシュ開始部２０は、判定部２１、決定部２２、および通知部２３により構成される。
【００３７】
判定部２１は、例えば、プロセッサ１１とデバイス１３間でデータをやり取りするとき、キャッシュ処理の対象とするデータを決定する。判定部２１は、キャッシュ処理の対象として決定されたデータのサイズとキャッシュメモリ１２のサイズとに基づいて、全キャッシュ処理を行うかどうかを判定する。
【００３８】
判定部２１は、全キャッシュ処理を行うと判定した場合、その旨を決定部２２に通知する。一方、判定部２１は、全キャッシュ処理を行わないと判定した場合、その旨を図示せぬ個別キャッシュ処理部に通知する。これにより、従来と同様に、キャッシュ処理の対象として決定されたデータに対してのみキャッシュ処理が行われる。
【００３９】
決定部２２は、判定部２１からの通知に応じて、前回のキャッシュ処理後のキャッシュメモリ１２に対するアクセス状況に基づいて、全キャッシュ処理の対象とするキャッシュメモリ１２を決定する。
【００４０】
具体的には、決定部２２は、例えば、ＯＳが有するスケジューリング情報に基づいて、前回のキャッシュ処理から１度もアクセスされていないキャッシュメモリ１２以外のキャッシュメモリ１２を、少なくとも共有メモリへの転送を行う全キャッシュ処理の対象に決定する。
【００４１】
このように、決定部２２は、前回のキャッシュ処理から１度もアクセスされていないキャッシュメモリ１２、即ち共有メモリへの転送を行う必要がないキャッシュメモリ１２を、少なくとも共有メモリへの転送を行う全キャッシュ処理の対象に決定しない。従って、少なくとも共有メモリへの転送を行う全キャッシュ処理を行う必要がないプロセッサ１１の動作を抑制し、消費電力を削減することができる。
【００４２】
なお、決定部２２は、全てのキャッシュメモリ１２を全キャッシュ処理の対象に決定するようにしてもよい。決定部２２は、全キャッシュ処理の対象とするキャッシュメモリ１２を特定する情報を通知部２３に供給する。
【００４３】
通知部２３は、決定部２２から供給される、全キャッシュ処理の対象となるキャッシュメモリ１２を特定する情報に基づいて、そのキャッシュメモリ１２に対応するプロセッサ１１に対して割り込みを行うことにより、全キャッシュ処理の開始を指示する。なお、全キャッシュ処理の開始の指示は、割り込み以外の方法により行われるようにしてもよい。
【００４４】
なお、本実施の形態では、プロセッサ１１−１が、キャッシュ開始部として機能するものとするが、プロセッサ１１−２や、図示せぬ他のプロセッサが、キャッシュ開始部として機能するようにしてもよい。
【００４５】
[全キャッシュ処理部の構成例]
図３は、全キャッシュ処理部３０の構成例を示す図である。
【００４６】
図３の全キャッシュ処理部３０は、停止部３１、停止情報設定部３２、検出部３３、キャッシュ処理部３４、終了情報設定部３５、および許可部３６により構成される。
【００４７】
停止部３１は、図２の通知部２３からの割り込みに応じて、キャッシュメモリ１２へのアクセスを停止する処理を行う。そして、停止部３１は、キャッシュメモリ１２に対するアクセスの停止を、停止情報設定部３２に通知する。
【００４８】
停止情報設定部３２は、停止部３１からの通知に応じて、プロセッサ１１の同期フラグ１５Ｂをオンに設定することにより、プロセッサ１１の停止情報を設定する。停止情報設定部３２は、オンにされたプロセッサ１１の同期フラグ１５Ｂを、プロセッサ１１の停止情報として、共有メモリ１５に記憶させる。
【００４９】
検出部３３は、共有メモリ１５に記憶されている、全キャッシュ処理の対象となる全てのキャッシュメモリ１２に対応するプロセッサ１１（以下、対象プロセッサという）の同期フラグ１５Ｂを検出する。検出部３３は、対象プロセッサの同期フラグ１５Ｂが全てオンにされている場合、即ち、対象プロセッサの停止情報が全て共有メモリ１５に記憶されている場合、対象プロセッサの全てにおける全キャッシュ処理の準備の完了をキャッシュ処理部３４に通知する。
【００５０】
また、検出部３３は、対象プロセッサの同期フラグ１５Ｂが全てオフにされている場合、対象プロセッサの全てにおける全キャッシュ処理の終了を許可部３６に通知する。
【００５１】
キャッシュ処理部３４は、検出部３３からの通知に応じて全キャッシュ処理を行う。このように、キャッシュ処理部３４は、検出部３３からの通知に応じて全キャッシュ処理を行うので、対象プロセッサの全てがキャッシュメモリ１２へのアクセスを停止するまで、全キャッシュ処理は行われない。
【００５２】
従って、全キャッシュ処理時に、対象プロセッサのいずれかによるキャッシュメモリ１２へのアクセスによってキャッシュメモリ１２内のデータが更新されることを防止することができる。その結果、メモリ管理部１４による制御が行われないことによりキャッシュメモリ１２間でデータの不整合が発生することを防止することができる。
【００５３】
キャッシュ処理部３４は、全キャッシュ処理が終了したとき、キャッシュ処理の終了を終了情報設定部３５に通知する。
【００５４】
終了情報設定部３５は、キャッシュ処理部３４からの通知に応じて、プロセッサ１１の同期フラグ１５Ｂをオフに設定することにより、プロセッサ１１の終了情報を設定する。終了情報設定部３５は、オフにされたプロセッサ１１の同期フラグ１５Ｂを、プロセッサ１１の終了情報として、共有メモリ１５に記憶させる。
【００５５】
許可部３６は、検出部３３からの通知に応じて、キャッシュメモリ１２へのアクセスを許可する。このように、許可部３６は、検出部３３からの通知に応じてキャッシュメモリ１２へのアクセスを許可するので、対象プロセッサの全てが全キャッシュ処理を終了するまで、キャッシュメモリ１２へのアクセスは許可されない。
【００５６】
従って、対象プロセッサのいずれかにおける全キャッシュ処理終了後のキャッシュメモリ１２へのアクセスによってキャッシュメモリ１２内のデータが更新されることを防止することができる。その結果、メモリ管理部１４による制御が行われないことによりキャッシュメモリ１２間でデータの不整合が発生することを防止することができる。
【００５７】
［マルチプロセッサシステムの処理の説明］
図４は、図２のキャッシュ開始部２０のキャッシュ開始処理を説明するフローチャートである。このキャッシュ開始処理は、例えば、デバイス１３とプロセッサ１１間でデータをやり取りするとき、開始される。
【００５８】
ステップＳ１１において、判定部２１は、キャッシュ処理の対象とするデータを決定する。ステップＳ１２において、判定部２１は、キャッシュ処理の対象とするデータのサイズがキャッシュメモリ１２のサイズ以上であるかどうかを判定する。
【００５９】
ステップＳ１２でキャッシュ処理の対象とするデータのサイズがキャッシュメモリ１２のサイズ以上であると判定された場合、判定部２１は、全キャッシュ処理を行う方がキャッシュ処理の対象とするデータに対してのみキャッシュ処理を行うより短時間で処理が完了すると判断し、全キャッシュ処理を行うと判定する。そして、ステップＳ１３において、判定部２１は、全キャッシュ処理を行う旨を決定部２２に通知する。
【００６０】
ステップＳ１４において、決定部２２は、判定部２１からの通知に応じて、前回のキャッシュ処理後のキャッシュメモリ１２に対するアクセス状況に基づいて、全キャッシュ処理の対象とするキャッシュメモリ１２を決定する。決定部２２は、全キャッシュ処理の対象とするキャッシュメモリ１２を特定する情報を通知部２３に供給する。
【００６１】
ステップＳ１５において、通知部２３は、決定部２２から供給される、全キャッシュ処理の対象とするキャッシュメモリ１２を特定する情報に基づいて、対象プロセッサに対して割り込みを行うことにより、全キャッシュ処理の開始を指示する。そして、処理は終了する。
【００６２】
一方、ステップＳ１２でキャッシュ処理の対象とするデータのサイズがキャッシュメモリ１２のサイズ以上ではないと判定された場合、判定部２１は、キャッシュ処理の対象とするデータに対してのみキャッシュ処理を行う方が全キャッシュ処理を行うより短時間で処理が完了すると判断し、全キャッシュ処理を行わないと判定する。そして、ステップＳ１６において、判定部２１は、全キャッシュ処理を行わない旨を図示せぬ個別キャッシュ処理部に通知し、処理を終了する。これにより、従来と同様に、キャッシュ処理の対象として決定されたデータに対してのみキャッシュ処理が行われる。
【００６３】
図５は、図３の全キャッシュ処理部３０の同期全キャッシュ処理を説明するフローチャートである。この同期全キャッシュ処理は、例えば、図２の通知部２３から割り込みが行われたとき、開始される。
【００６４】
図５のステップＳ３１において、停止部３１は、通知部２３からの割り込みに応じて、キャッシュメモリ１２に対するアクセスを停止する処理を行う。そして、停止部３１は、キャッシュメモリ１２に対するアクセスの停止を、停止情報設定部３２に通知する。
【００６５】
ステップＳ３２において、停止情報設定部３２は、停止部３１からの通知に応じて、プロセッサ１１の同期フラグ１５Ｂをオンに設定することにより、プロセッサ１１の停止情報を設定する。停止情報設定部３２は、オンにされたプロセッサ１１の同期フラグ１５Ｂを、プロセッサ１１の停止情報として、共有メモリ１５に記憶させる。
【００６６】
ステップＳ３３において、検出部３３は、共有メモリ１５に記憶されている、対象プロセッサの同期フラグ１５Ｂを全て検出する。ステップＳ３４において、検出部３３は、対象プロセッサの同期フラグ１５Ｂが全てオンにされているかどうかを判定する。
【００６７】
ステップＳ３４でまだオンにされていない対象プロセッサの同期フラグ１５Ｂがあると判定された場合、処理はステップＳ３３に戻り、対象プロセッサの同期フラグ１５Ｂが全てオンにされるまで、ステップＳ３３およびＳ３４の処理が繰り返される。
【００６８】
一方、ステップＳ３４で対象プロセッサの同期フラグ１５Ｂが全てオンにされていると判定された場合、検出部３３は、対象プロセッサの全てにおけるキャッシュ処理の準備の完了をキャッシュ処理部３４に通知する。そして、ステップＳ３５において、キャッシュ処理部３４は、検出部３３からの通知に応じて全キャッシュ処理を行う。キャッシュ処理部３４は、キャッシュ処理が終了したとき、キャッシュ処理の終了を終了情報設定部３５に通知する。
【００６９】
ステップＳ３６において、終了情報設定部３５は、キャッシュ処理部３４からの通知に応じて、プロセッサ１１の同期フラグ１５Ｂをオフに設定することにより、プロセッサ１１の終了情報を設定する。終了情報設定部３５は、オフにされたプロセッサ１１の同期フラグ１５Ｂを、プロセッサ１１の終了情報として、共有メモリ１５に記憶させる。
【００７０】
ステップＳ３７において、検出部３３は、共有メモリ１５に記憶されている、対象プロセッサの同期フラグ１５Ｂを全て検出する。ステップＳ３８において、検出部３３は、対象プロセッサの同期フラグ１５Ｂが全てオフにされているかどうかを判定する。
【００７１】
ステップＳ３８でまだオフにされていない対象プロセッサの同期フラグ１５Ｂがあると判定された場合、処理はステップＳ３７に戻り、対象プロセッサの同期フラグ１５Ｂが全てオフにされるまで、ステップＳ３７およびＳ３８の処理が繰り返される。
【００７２】
一方、ステップＳ３８で対象プロセッサの同期フラグ１５Ｂが全てオフにされていると判定された場合、検出部３３は、対象プロセッサの全てにおけるキャッシュ処理の終了を許可部３６に通知する。ステップＳ３９において、許可部３６は、検出部３３からの通知に応じて、キャッシュメモリ１２へのアクセスを許可し、処理を終了する。
【００７３】
以上のように、マルチプロセッサシステム１０は、全キャッシュ処理を行うので、キャッシュ処理の所要時間を短縮することができる。これにより、例えば、プロセッサ１１が、ユーザ操作に応じて画像を表示するアプリケーションプログラムを実行する場合、プロセッサ１１とデバイス１３の間で高精細な画像データを短時間でやり取りし、ユーザ操作から表示までの時間を短縮することができる。
【００７４】
これに対して、キャッシュ処理の所要時間を短縮する方法としては、データ領域のうち、キャッシュ処理が必要な範囲をソフトウェアで管理し、キャッシュ処理が必要な範囲のみを対象にキャッシュ処理を行う方法がある。しかしながら、この方法では、ソフトウェアが複雑化し、不具合を引き起こす原因となる。
【００７５】
また、マルチプロセッサシステム１０は、ＯＳを実行することにより全キャッシュ処理を行う。従って、全キャッシュ処理用のハードウエアを備える必要がないため、ハードウエアの規模を抑制し、低コスト化や省電力化を実現することができる。また、全キャッシュ処理を行うために、既存のアプリケーションプログラムを変更する必要がない。
【００７６】
なお、本実施の形態では、キャッシュ処理の対象とするデータのサイズとキャッシュメモリ１２のサイズに基づいて、全キャッシュ処理を行うかどうかが判定されたが、これら以外の情報にも基づいて判定されるようにしてもよい。
【００７７】
この場合、例えば、プロセッサ１１や共有メモリ１５の処理能力などにも基づいて、全キャッシュ処理を行う方が、キャッシュ処理の対象として決定されたデータに対してのみキャッシュ処理を行う場合に比べて所要時間が少ない場合に、全キャッシュ処理を行う。
【００７８】
また、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【００７９】
さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【００８０】
なお、本技術は、以下のような構成もとることができる。
【００８１】
（１）
複数のキャッシュメモリと、
前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、
メモリと
を備え、
前記複数のプロセッサは、それぞれ、プログラムを実行することにより、
前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行うキャッシュ処理部として機能する
情報処理装置。
（２）
前記複数のプロセッサは、それぞれ、前記プログラムを実行することにより、
前記キャッシュメモリへのアクセスを停止する停止部と、
前記停止部により前記キャッシュメモリへのアクセスが停止された場合、前記キャッシュメモリへのアクセスの停止を表す停止情報を設定して、前記メモリに記憶させる停止情報設定部と
してさらに機能し、
前記キャッシュ処理部は、前記メモリに前記複数のプロセッサの前記停止情報が記憶されている場合、前記キャッシュメモリに記憶されている全てのデータに対して前記キャッシュ処理を行う
前記（１）に記載の情報処理装置。
（３）
前記複数のプロセッサは、それぞれ、前記プログラムを実行することにより、
前記キャッシュ処理部により前記キャッシュ処理が行われた場合、前記キャッシュ処理の終了を表す終了情報を設定して、前記メモリに記憶させる終了情報設定部と、
前記メモリに前記複数のプロセッサの前記終了情報が記憶されている場合、前記キャッシュメモリへのアクセスを許可する許可部と
してさらに機能する
前記（１）または（２）に記載の情報処理装置。
（４）
前記キャッシュ処理部は、前記キャッシュ処理の対象となるデータのサイズと、前記キャッシュメモリのサイズとに基づいて、前記キャッシュメモリに記憶されている全てのデータに対して前記キャッシュ処理を行う方が前記キャッシュ処理の対象となるデータに対してのみ前記キャッシュ処理を行うより短時間で前記キャッシュ処理が完了する場合に、前記キャッシュメモリに記憶されている全てのデータに対して前記キャッシュ処理を行う
前記（１）乃至（３）のいずれかに記載の情報処理装置。
（５）
前記キャッシュ処理部は、前回の前記キャッシュ処理後の前記キャッシュメモリに対するアクセス状況に基づいて、前記キャッシュメモリに記憶されている全てのデータに対して前記キャッシュ処理を行う
前記（１）乃至（４）のいずれかに記載の情報処理装置。
（６）
前記プログラムは、ＯＳ（Operating System）である
前記（１）乃至（５）のいずれかに記載の情報処理装置。
（７）
複数のキャッシュメモリと、
前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、
メモリと
を備える情報処理装置の前記複数のプロセッサが、それぞれ、
プログラムを実行することにより、
前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行う
情報処理方法。
（８）
複数のキャッシュメモリと、
前記複数のキャッシュメモリのそれぞれにアクセスする複数のプロセッサと、
メモリと
を備える情報処理装置の前記複数のプロセッサを、
前記キャッシュメモリに記憶されている全てのデータに対して、前記メモリへの転送または破棄の少なくとも一方を行うキャッシュ処理を行うキャッシュ処理部
として機能させるためのプログラム。
【符号の説明】
【００８２】
１０  マルチプロセッサシステム，  １１−１，１１−２  プロセッサ，  １２−１，１２−２  キャッシュメモリ，  １５  共有メモリ，  ３１  停止部，  ３２  停止情報設定部，  ３４  キャッシュ処理部，  ３５  終了情報設定部，  ３６  許可部
【図１】
2014038502.tif 000003
【図２】
2014038502.tif 000004
【図３】
2014038502.tif 000005
【図４】
2014038502.tif 000006
【図５】
2014038502.tif 000007