(57)【要約】【課題】デバイスドライバを必要とせず、他のプロセッシングユニットに置かれたデータへのアクセスする場合の処理時間を短縮することを可能にする。【解決手段】実施の形態による情報処理システムは、少なくとも第１プロセッシングユニットと第２プロセッシングユニットとを含む複数のプロセッシングユニットを有する情報処理システムであって、各プロセッシングユニットが、プロセッサと、該プロセッサに接続されたメモリと、少なくとも前記メモリを含む前記プロセッサに接続された接続先デバイスをリニアアドレス空間にマッピングする機能を備えたコントローラとを含み、前記第１プロセッシングユニットの第１コントローラが、前記第２プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域を前記第１プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域において共有することを特徴とする。【選択図】図１
2013246647.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１プロセッシングユニットと第２プロセッシングユニットとを含む複数のプロセッシングユニットを有する情報処理システムであって、
各プロセッシングユニットは、プロセッサと、該プロセッサに接続されたメモリと、少なくとも前記メモリを含む前記プロセッサに接続された接続先デバイスをリニアアドレス空間にマッピングする機能を備えたコントローラとを含み、
前記第１プロセッシングユニットの第１コントローラは、前記第２プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域を前記第１プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域において共有することを特徴とする情報処理システム。
【請求項２】
前記第１プロセッシングユニットは、前記第１プロセッサと、第１メモリと、第１コントローラとを含み、
前記第２プロセッシングユニットは、第２プロセッサと、第２メモリと、第２コントローラとを含み、
前記第２コントローラは、前記リニアアドレス空間の前記領域に、前記第２メモリの少なくとも一部のメモリ空間をマッピングすることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記メモリ空間に格納されるデータは、ブートに必要なデータ、圧縮されたデータ、暗号化されたデータおよび圧縮暗号化されたデータのうち少なくとも１つを含むことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記第２プロセッシングユニットは、外部記憶装置をさらに含み、
前記第２プロセッサおよび前記第２コントローラは、前記メモリ空間が有効であるか無効であるかをブロック単位で管理する管理情報を共有し、
前記第２コントローラは、前記第１コントローラから前記メモリ空間へのアクセスがあった場合、前記管理情報に基づいて前記メモリ空間が有効であるか無効であるかを判定し、前記メモリ空間が無効である場合、前記第２プロセッサに前記メモリ空間が無効であることを通知し、
前記第２プロセッサは、前記第２コントローラから前記メモリ空間が無効であることを通知された場合、前記外部記憶装置からデータを読み出して前記メモリ空間にコピーするとともに、該メモリ空間の管理情報を有効に更新し、
前記第２コントローラは、前記メモリ空間の前記管理情報が有効である場合、前記第１コントローラからの要求に応じて前記メモリ空間から前記データを読み出して該第１コントローラへ送信することを特徴とする請求項２に記載の情報処理システム。
【請求項５】
前記第２プロセッサは、前記管理情報を共有するファイルシステムを含み、
前記ファイルシステムは、前記第２メモリへアクセスする際、前記管理情報に基づいてアクセス先のブロックが有効であるか無効であるかを判定し、該ブロックが無効である場合、前記外部記憶装置からデータを読み出して前記メモリ空間にコピーするとともに、該ブロックの管理情報を有効に更新することを特徴とする請求項４に記載の情報処理システム。
【請求項６】
第１プロセッサ、該第１プロセッサに接続された第１メモリ、および少なくとも前記第１メモリを含む前記第１プロセッサに接続された接続先デバイスをリニアアドレス空間にマッピングする機能を備えた第１コントローラとを含む第１プロセッシングユニットと、第２プロセッサ、該第２プロセッサに接続された第２メモリ、および少なくとも前記第２メモリを含む前記第２プロセッサに接続された接続先デバイスをリニアアドレス空間にマッピングする機能を備えた第２コントローラとを含む第２プロセッシングユニットとを有する情報処理システムにおいて実行される情報処理方法であって、
前記第１プロセッシングユニットの第１コントローラが、前記第２プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域を前記第１プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域において共有するステップを含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理システムおよび情報処理方法に関する。
【背景技術】
【０００２】
近年では、処理能力の向上や耐障害性を高めることを目的として、複数のプロセッサを搭載したマルチプロセッサシステムが開発されている。マルチプロセッサシステムは、それぞれが少なくとも１つのプロセッサを含む複数のプロセッシングユニットを備える。各プロセッシングユニットは、プロセッサの他、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのランダムアクセス可能なメモリやＨＤＤ（ハードディスクドライブ）などの外部記憶装置等を含むことができる。
【０００３】
このようなマルチプロセッサシステムは、複数のプロセッサで処理を分担して実行することで、単一のプロセッサでは得られない高い処理能力を実現することが可能である。また、あるプロセッサに障害が発生した場合でも、他のプロセッサが処理を受け継いで実行することができるため、信頼性の高いシステムを実現することが可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特公平７−７８７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ただし、マルチプロセッサシステムは、高処理能力と高信頼性とを実現するために、あるプロセッシングユニットに置かれたデータに他のプロセッシングユニットのプロセッサがアクセスできるように構成される必要がある。その際、従来の分散メモリ型のマルチプロセッサシステムでは、他のプロセッシングユニットに置かれたデータにアクセスするプロセッサは、他のプロセッシングユニットから取得したデータを一旦、自身に接続されたメモリにコピーする必要がある。そのため、データへのアクセス開始からデータの処理完了までの時間（以下、処理時間という）が長くなる場合があった。また、あるプロセッシングユニットのプロセッサが他のプロセッシングユニットに置かれたデータをブロックデバイス経由で取得するように構成されていた場合、このブロックデバイスを駆動するデバイスドライバが必要になり、システム構成が大型化および複雑化する場合が存在した。
【０００６】
そこで本発明の実施形態が解決しようとする課題は、デバイスドライバを必要とせず、他のプロセッシングユニットに置かれたデータへアクセスする場合の処理時間を短縮することが可能な情報処理システムおよび情報処理方法を提供することである。
【課題を解決するための手段】
【０００７】
実施の形態による情報処理システムは、少なくとも第１プロセッシングユニットと第２プロセッシングユニットとを含む複数のプロセッシングユニットを有する情報処理システムであって、各プロセッシングユニットが、プロセッサと、該プロセッサに接続されたメモリと、少なくとも前記メモリを含む前記プロセッサに接続された接続先デバイスをリニアアドレス空間にマッピングする機能を備えたコントローラとを含み、前記第１プロセッシングユニットの第１コントローラが、前記第２プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域を前記第１プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域において共有することを特徴とする。
【０００８】
また、実施の形態による情報処理方法は、第１プロセッサ、該第１プロセッサに接続された第１メモリ、および少なくとも前記第１メモリを含む前記第１プロセッサに接続された接続先デバイスをリニアアドレス空間にマッピングする機能を備えた第１コントローラとを含む第１プロセッシングユニットと、第２プロセッサ、該第２プロセッサに接続された第２メモリ、および少なくとも前記第２メモリを含む前記第２プロセッサに接続された接続先デバイスをリニアアドレス空間にマッピングする機能を備えた第２コントローラとを含む第２プロセッシングユニットとを有する情報処理システムにおいて実行される情報処理方法であって、前記第１プロセッシングユニットの第１コントローラが、前記第２プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域を前記第１プロセッシングユニットにおいて管理されるリニアアドレス空間の一部の領域において共有するステップを含むことを特徴とする。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１および２にかかる情報処理システムの概略構成を示すブロック図。
【図２】図２は、実施の形態１にかかる第１ＣＰＵおよび第２ＣＰＵそれぞれのアドレス空間の一例を示す図。
【図３】図３は、実施の形態１において第１ＣＰＵが第２アドレス空間のＢ領域にマッピングされた実体に置かれたデータを取得する場合の動作を示すシーケンス図。
【図４】図４は、実施の形態２において第２プロセッシングユニット側に置かれたデータを第１プロセッシングユニット内の第１ＣＰＵが取得する際の動作を示すシーケンス図。
【図５】図５は、実施の形態１および２にかかる管理情報の一例を示す図。
【図６】図６は、実施の形態２において第２ＣＰＵが第２アドレス空間のＢ領域に格納されたデータをオンデマンドに読み出してバッファ領域に展開する場合を説明するための図。
【図７】図７は、実施の形態２において第２ＣＰＵが第２アドレス空間のＢ領域に格納されたデータをオンデマンドに読み出してバッファ領域に展開する際の動作を示すシーケンス図。
【発明を実施するための形態】
【００１０】
（実施の形態１）
以下、実施の形態１にかかる情報処理システムおよび情報処理方法について、図面を参照して詳細に説明する。図１は、実施の形態１にかかる情報処理システム１００の概略構成を示すブロック図である。図１に示すように、情報処理システム１００は、それぞれがプロセッサを含む複数のプロセッシングユニットを備えた、いわゆるマルチプロセッサシステムである。以下では、説明の都合上、情報処理システム１００が２つのプロセッシングユニットを備え、そのそれぞれを第１プロセッシングユニット１１０および第２プロセッシングユニット１２０と称する。また、本説明では、プロセッサをＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とするが、これに限らず、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの他のプロセッサであってもよい。
【００１１】
第１プロセッシングユニット１１０は、第１ＣＰＵ１０１と、第１ＲＡＭ１０３と、第１コントローラ１０６とを含む。第１ＣＰＵ１０１は、第１ＲＡＭ１０３へ直接アクセスが可能である。第１ＲＡＭ１０３は、たとえばＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などのランダムアクセス可能なメモリであってもよい。
【００１２】
第２プロセッシングユニット１２０は、第１プロセッシングユニット１１０と同様に、第２ＣＰＵ１０２と、第２ＲＡＭ１０４と、第２コントローラ１０７とを含む。また、第２プロセッシングユニット１２０は、外部記憶装置１０５をさらに含む。なお、説明の簡略化のため、第２プロセッシングユニット１２０のみに外部記憶装置１０５を設けるが、第１プロセッシングユニット１１０にも外部記憶装置が設けられてよい。第２ＣＰＵ１０２は、第２ＲＡＭ１０４および外部記憶装置１０５それぞれに対して直接アクセスが可能である。外部記憶装置１０５は、たとえばＨＤＤやフラッシュメモリなどのバックストアとなり得る不揮発性記憶装置であってもよい。
【００１３】
第１ＣＰＵ１０１と第２ＣＰＵ１０２とは、第１コントローラ１０６および第２コントローラ１０７を介して相互に接続される。第１コントローラ１０６および第２コントローラ１０７それぞれは、自身が接続されたＣＰＵ（１０１，１０２）から他のプロセッシングユニット内の資源（たとえばＲＡＭや外部記憶装置など）へのアクセスを制御する。また、第１コントローラ１０６および第２コントローラ１０７それぞれは、他のプロセッシングユニットのＣＰＵから自身が属するプロセッシングユニット（１１０，１２０）内の資源へのアクセスを制御する。これら第１コントローラ１０６および第２コントローラ１０７は、それぞれ第１ＲＡＭ１０３または第２ＲＡＭ１０４に設けられたメモリコントローラが備える一部の機能として実現されてもよいし、独立した制御チップで実現されてもよいし、第１ＣＰＵ１０１および第２ＣＰＵ１０２それぞれが実現する機能の一つであってもよい。
【００１４】
第１コントローラ１０６および第２コントローラ１０７は、それぞれ自身が接続されたＣＰＵ（１０１，１０２）がアクセス可能なアドレス空間の少なくとも一部をマッピングする機能を備える。図２に、第１ＣＰＵ１０１および第２ＣＰＵ１０２それぞれのアドレス空間の一例を示す。図２において、第１アドレス空間１３０は、第１ＣＰＵ１０１が直接アクセス可能なメモリ空間の一例であり、第２アドレス空間１４０は、第２ＣＰＵ１０２が直接アクセス可能なメモリ空間の一例である。第１アドレス空間１３０および第２アドレス空間１４０は、それぞれリニアアドレス空間である。
【００１５】
図２に示すように、第１アドレス空間１３０の一部の連続するＡ領域１３１には、第２アドレス空間１４０における一部の連続するＢ領域１４１にマッピングされた実体がマッピングされている。すなわち、第１アドレス空間１３０では、第２アドレス空間１４０のＢ領域１４１がＡ領域１３１として共有化されている。Ｂ領域１４１にマッピングされた実体は、ＲＡＭやフラッシュメモリや外部記憶装置など、第２ＣＰＵ１０２に接続された第２プロセッシングユニット１２０内の資源であってよい。ここでは、説明の都合上、Ｂ領域１４１に、第２ＲＡＭ１０４の一部のメモリ空間がマッピングされているとする。また、このＢ領域１４１にマッピングされたメモリ空間には、データＤが格納されるとする。このデータＤは、たとえばオペレーティングシステムを立ち上げるためのブートイメージや、その他アプリケーションプログラムなどのデータであってよい。
【００１６】
第１アドレス空間１３０内のＡ領域１３１は、第１コントローラ１０６によってマッピングされる。第１アドレス空間１３０のその他の領域は、第１ＣＰＵ１０１および第１コントローラ１０６のいずれがマッピングしてもよい。同様に、第２アドレス空間１４０内のＢ領域１４１は、第２コントローラ１０７によってマッピングされる。第２アドレス空間１４０のその他の領域は、第２ＣＰＵ１０２および第２コントローラ１０７のいずれがマッピングしてもよい。第１アドレス空間１３０におけるＡ領域１３１のアドレスおよび第２アドレス空間１４０におけるＢ領域１４１のアドレスは、予め定められていてもよい。すなわち、第１アドレス空間１３０におけるＡ領域１３１と第２アドレス空間１４０におけるＢ領域１４１とは、第２ＲＡＭ１０４の一部のメモリ空間用として予め確保されていてもよい。その場合、第２ＲＡＭ１０４の該当メモリ空間には、予め定めておいたデータＤ（たとえばブートイメージ）が固定的に読み出されるように構成されていてもよい。
【００１７】
第１ＣＰＵ１０１は、特定の実体（ここでは第２ＲＡＭ１０４の該当メモリ空間）へアクセスする場合、第１アドレス空間１３０におけるＡ領域１３１へアクセスする。第１コントローラ１０６は、第１ＣＰＵ１０１がＡ領域１３１へアクセスすると、第２コントローラ１０７に対して第２アドレス空間１４０におけるＢ領域１４１へのアクセスを要求する。第２コントローラ１０７は、この第１コントローラ１０６からの要求に応じてＢ領域１４１へアクセスし、このＢ領域１４１にマッピングされた実体（第２ＲＡＭ１０４の該当メモリ空間）内に格納されたデータＤを読み出して、これを第１コントローラ１０６へ送信する。第１コントローラ１０６は、受信したデータＤを第１ＣＰＵ１０１へ転送する。このように、実施の形態１によれば、第１ＣＰＵ１０１は、自身のアドレス空間（第１アドレス空間１３０）へアクセスすることで、実質的にオンデマンドで第２プロセッシングユニット１２０側に置かれたデータＤを読み出すことができる。
【００１８】
ここで、第１ＣＰＵ１０１が第２プロセッシングユニット１２０側に置かれたデータＤを取得する際の動作を、図面を用いてより詳細に説明する。図３は、第１ＣＰＵ１０１が第２アドレス空間１４０のＢ領域１４１にマッピングされた実体に置かれたデータＤを取得する場合の動作を示すシーケンス図である。図３では、説明の明確化のため、データＤをブートイメージとする。
【００１９】
図３に示すように、第２ＣＰＵ１０２は、まずバックストアからブートイメージを読み出し（ステップＳ１０１）、これを第２ＲＡＭ１０４内にコピーする（ステップＳ１０２）。ここでのバックストアは、外部記憶装置１０５であってよい。ブートイメージの格納先は、第２ＲＡＭ１０４内の予め定められたブロック（以下、該当ブロックという）であるとする。この該当ブロックは、第２アドレス空間１４０内のＢ領域１４１に予めマッピングされている。
【００２０】
つぎに、第２ＣＰＵ１０２は、ブート可能となったことを第１ＣＰＵ１０１へ通知する（ステップＳ１０４）。この通知は、第２ＣＰＵ１０２から第１ＣＰＵ１０１へ直接送信されてもよいし、第２ＣＰＵ１０２から第２コントローラ１０７および第１コントローラ１０６を介して第１ＣＰＵ１０１へ送信されてもよい。ただし、外部記憶装置１０５がリニアアクセス可能であってそのメモリ空間の外部（たとえば第２アドレス空間１４０）へのマッピングが可能である場合、外部記憶装置１０５におけるブートイメージが格納されたメモリ領域が第２アドレス空間１４０のＢ領域１４１に直接マッピングされてもよい。その場合、ブートイメージのコピーを第２ＲＡＭ１０４内に置かなくてもよいため、図３におけるステップＳ１０１〜Ｓ１０３を省略することができる。
【００２１】
Ｂ領域１４１にマッピングされた実体へのブートイメージの準備が完了すると、第１ＣＰＵ１０１は、ブート処理を開始する（ステップＳ１０５）。このブート処理は、第２ＣＰＵ１０２から第１ＣＰＵ１０１へ送信されたブート指示に基づいて開始されてもよいし、第１ＣＰＵ１０１自身がその他の条件やシーケンシャルな処理に従って開始してもよい。なお、第２ＣＰＵ１０２からのブート指示に基づいて開始する場合では、たとえば第２ＣＰＵ１０２が第１ＣＰＵ１０１のリセット信号を制御してもよいし、ＧＰＩＯ（汎用入出力ポート）を介して第１ＣＰＵ１０１をブート制御してもよい。
【００２２】
ブート処理を開始すると、第１ＣＰＵ１０１は、自身の第１アドレス空間１３０におけるＡ領域１３１へアクセスする（ステップＳ１０６）。これに対し、第１コントローラ１０６は、第１ＣＰＵ１０１によるＡ領域１３１へのアクセスを検知する（ステップＳ１０７）。Ａ領域１３１には、第２アドレス空間１４０におけるＢ領域１４１にマッピングされた実体がマッピングされている。したがって、第１コントローラ１０６は、Ａ領域１３１へのアクセスを検知すると、第２コントローラ１０７に対してＢ領域１４１へのアクセスを要求する（ステップＳ１０８）。
【００２３】
第２コントローラ１０７は、第１コントローラ１０６によるＢ領域１４１へのアクセスを検知すると（ステップＳ１０９）、Ｂ領域１４１にマッピングされた第２ＲＡＭ１０４内の該当ブロックからブートイメージを読み出し（ステップＳ１１０）、読み出したブートイメージを第１コントローラ１０６へ送信する（ステップＳ１１１）。これに対し、第１コントローラ１０６は、第２コントローラ１０７から受信したブートイメージを第１ＣＰＵ１０１へ転送する（ステップＳ１１２）。その後、第１ＣＰＵ１０１は、第１コントローラ１０６を介して受信したブートイメージを実行することで、ブート処理を実行する（ステップＳ１１３）。
【００２４】
以上のように構成および動作することで、実施の形態１によれば、プロセッシングユニット間でオンデマンドにデータ転送が可能である。そのため、あるプロセッシングユニットのＣＰＵは、他のプロセッシングユニットに置かれたデータを、一旦自身が属するプロセッシングユニット内のメモリにコピーすることなく、データの処理を開始することが可能となる。その結果、他のプロセッシングユニットに置かれたデータへのアクセス開始からデータの処理完了までの処理時間を短縮することが可能になる場合がある。これは、データを一旦コピー後に処理する場合に比べ、データの読み出しとデータの処理を並列実行できるためである。また、データ全体に対し、特定の処理に必要なデータ量がデータ全体の一部に限られる場合に、データ転送量が抑えられるからである。たとえばあるプロセッシングユニットのＣＰＵが他のプロセッシングユニットに置かれたブートイメージを用いてブート処理する場合では、より早くブート処理を完了することが可能になる場合がある。具体的な例では、たとえばデジタルテレビであれば、絵出しまでの処理に必要なデータ量がブートイメージ全体の一部に限られる場合や、データの読み出しとデータの処理を並列実行できることにより、電源投入から絵出しまでの時間を短縮することができる。その際、ブートイメージを複数のプロセッシングユニットで共有することが可能であるため、保持するデータ量の縮小も図ることができる。
【００２５】
また、実施の形態１によれば、ブロックデバイスを経由せずに他のプロセッシングユニットに置かれたデータへアクセスすることが可能であるため、システム構成の大型化および複雑化を回避することが可能である。
【００２６】
なお、複数のプロセッシングユニット間で共有するデータ（たとえばブートイメージ）は圧縮されているとよい。その場合、データの転送時間を短縮することが可能であるため、プロセッシングユニット間のデータ転送速度が比較的遅い場合でも処理時間（たとえばブート時間）を短縮することが可能となる。また、複数のプロセッシングユニット間で共有するデータは暗号化されていてもよい。
【００２７】
（実施の形態２）
つぎに、実施の形態２にかかる情報処理システムおよび情報処理方法について、図面を参照して詳細に説明する。実施の形態１では、第２アドレス空間１４０にマッピングされるＢ領域１４１の実体に必要なデータＤ（たとえばブートイメージ）が前もって準備される構成を例示したが、本発明はこれに限られるものではない。そこで、実施の形態２では、第１コントローラ１０６および第２コントローラ１０７が、必要なデータＤをオンデマンドで第２アドレス空間１４０にマッピングされたＢ領域１４１の実体に準備するように構成された場合を例示する。
【００２８】
実施の形態２にかかる情報処理システムは、上述において図１を用いて説明した情報処理システム１００と同様の構成であってよい。ただし、第２プロセッシングユニット１２０側に置かれたデータＤを第１プロセッシングユニット１１０内の第１ＣＰＵ１０１が取得する際の動作は、図４に示すような動作となる。なお、図４では、図３と同様、データＤをブートイメージとする。
【００２９】
図４に示すように、第１ＣＰＵ１０１は、ブート処理を開始すると（ステップＳ２０１）、自身の第１アドレス空間１３０におけるＡ領域１３１へアクセスする（ステップＳ２０２）。これに対し、第１コントローラ１０６は、第１ＣＰＵ１０１によるＡ領域１３１へのアクセスを検知すると（ステップＳ２０３）。第２コントローラ１０７に対してＢ領域１４１へのアクセスを要求する（ステップＳ２０４）。
【００３０】
第２コントローラ１０７は、第１コントローラ１０６によるＢ領域１４１へのアクセスを検知すると（ステップＳ２０５）、第２ＲＡＭ１０４内の予め定められた該当ブロックが有効であるか否かを判定する（ステップＳ２０６）。該当ブロックが有効であるか否かは、第２ＲＡＭ１０４のメモリ空間をブロック単位で管理する管理情報を参照することで、判定可能である。ここで、図５に、管理情報の一例を示す。図５に示すように、管理情報１７１は、第２アドレス空間１４０に設定された各アドレスと一対一に対応するフラグが、第２アドレス空間１４０のリニアアドレス配列順序に従って配列する、いわゆるビットマップの構成を備える。各フラグは、たとえば１ビットであってよい。図５に示す例では、たとえば第２アドレス空間１４０における先頭アドレスに対応するフラグに‘１’がセットされ、２番目のアドレスに対応するフラグに‘０’がセットされている。フラグ‘１’は、たとえば対応するブロックが‘有効’であることを示し、フラグ‘０’は、たとえば対応するブロックが‘無効’であることを示す。なお、ブロックが有効であるとは、ブロック内に有効なデータが格納されていることを示し、無効であるとは、ブロックがフリーブロックであるか、無効なデータが格納されていることを示す。第２アドレス空間１４０においてＢ領域１４１に属する各アドレスは、第２ＲＡＭ１０４における各ブロックのアドレスに対応付けられている。従って、第２ＣＰＵ１０２および第２コントローラ１０７は、管理情報１７１を参照することで、第１コントローラ１０６からアクセスされたブロックが有効であるか無効であるかを判断することができる。なお、管理情報１７１は、第２ＣＰＵ１０２および第２コントローラ１０７の両方が参照可能なキャッシュや第２ＲＡＭ１０４内に保持されてよい。
【００３１】
ステップＳ２０６の判定の結果、該当ブロックが有効である場合（ステップＳ２０６；ＹＥＳ）、第２コントローラ１０７は、そのままステップＳ２１２へ移行する。一方、該当ブロックが有効でない、すなわち無効である場合（ステップＳ２０６；ＮＯ）、第２コントローラ１０７は、第２ＣＰＵ１０２に対して、第２ＲＡＭ１０４の該当ブロックが無効であることを通知する（ステップＳ２０７）。第２ＣＰＵ１０２への通知には、割込処理などが用いられてもよい。
【００３２】
第２ＲＡＭ１０４の該当ブロックが無効であることを通知されると、第２ＣＰＵ１０２は、バックストアからブートイメージを読み出し（ステップＳ２０８）、これを第２ＲＡＭ１０４内にコピーする（ステップＳ２０９）。ここでのバックストアは、外部記憶装置１０５であってよい。つぎに、第２ＣＰＵ１０２は、第２ＲＡＭ１０４の管理情報１７１（図５参照）における該当ブロックのステータスを‘無効’から‘有効’に更新する（ステップＳ２１０）。
【００３３】
つぎに、第２ＣＰＵ１０２は、該当ブロックが有効になったことを第２コントローラ１０７へ通知し（ステップＳ２１１）、ステップＳ２１２へ移行する。該当ブロックが有効になったことの通知は、第２ＣＰＵ１０２から直接第２コントローラ１０７へ通知されてもよいし、第２ＣＰＵ１０２および第２コントローラ１０７が定期的または必要に応じて参照するレジスタなどを介して通知されてもよい。
【００３４】
ステップＳ２１２では、第２コントローラ１０７は、有効となった該当ブロックからブートイメージを読み出す（ステップＳ２１２）。つぎに、第２コントローラ１０７は、読み出したブートイメージを第１コントローラ１０６へ送信する（ステップＳ２１３）。これに対し、第１コントローラ１０６は、第２コントローラ１０７から受信したブートイメージを第１ＣＰＵ１０１へ転送する（ステップＳ２１４）。その後、第１ＣＰＵ１０１は、第１コントローラ１０６を介して受信したブートイメージを実行することで、ブート処理を実行する（ステップＳ２１５）。
【００３５】
また、実施の形態２にかかる情報処理システムおよび情報処理方法は、１つのプロセッシングユニット内でＣＰＵが自己のアドレス空間の特定の領域をオンデマンドにアクセスする場合にも適用可能である。
【００３６】
プロセッシングユニット内でＣＰＵが自己のアドレス空間の特定の領域をオンデマンドにアクセスする場合、コントローラを介する必要がない。その場合、ファイルシステムがアドレス空間における特定の領域へのアクセスを制御する。以下では、説明の都合上、第２プロセッシングユニット１２０を例に挙げて説明する。
【００３７】
図６は、第２ＣＰＵ１０２が第２アドレス空間１４０のＢ領域１４１に格納されたデータＤをオンデマンドに読み出してバッファ領域１４２に展開する場合を説明するための図である。図６に示すように、第２アドレス空間１４０のＢ領域１４１には、第２ＲＡＭ１０４の一部のメモリ空間がマッピングされる。このメモリ空間には、たとえば外部記憶装置１０５から読み出されたデータＤのコピーが格納されている。データＤは、たとえばブートイメージなどであってよい。ファイルシステムは、オペレーティングシステムの上位、たとえばコンポーネントレイヤからのアクセス要求に応じてＢ領域１４１に格納されているデータＤを読み出し、これをバッファ領域１４２に展開する。このように、実施の形態２によれば、第２ＣＰＵ１０１は、ファイルシステムを用いて自身のアドレス空間（第２アドレス空間１４０）へアクセスすることで、オンデマンドで第２アドレス空間１４０に配置されたデータＤを読み出して、これを所定の領域（バッファ領域１４２）に展開することが可能となる。
【００３８】
ここで、第２ＣＰＵ１０２が第２アドレス空間１４０のＢ領域１４１に格納されたデータＤをオンデマンドに読み出してバッファ領域１４２に展開する際の動作を、図７に示す。
【００３９】
図７に示すように、第２ＣＰＵ１０２は、自身の第２アドレス空間１４０おけるＢ領域１４１にアクセスする（ステップＳ３０１）。これに対し、ファイルシステムは、第２ＣＰＵ１０２によるＢ領域１４１へのアクセスを検知すると（ステップＳ３０２）、第２ＲＡＭ１０４内の予め定められた該当ブロックが有効であるか否かを判定する（ステップＳ３０３）。該当ブロックが有効であるか否かは、図５に示した管理情報１７１を参照することで、判定可能である。該当ブロックが有効である場合（ステップＳ３０３；ＹＥＳ）、ファイルシステムは、そのままステップＳ３０７へ移行する。一方、該当ブロックが有効でない、すなわち無効である場合（ステップＳ３０３；ＮＯ）、ファイルシステムは、バックストアから要求されたデータＤを読み出し（ステップＳ３０４）、これを第２ＲＡＭ１０４内にコピーする（ステップＳ３０５）。ここでのバックストアは、外部記憶装置１０５であってよい。つぎに、ファイルシステムは、第２ＲＡＭ１０４の管理情報１７１（図５参照）における該当ブロックのステータスを‘無効’から‘有効’に更新する（ステップＳ３０６）。つぎに、ファイルシステムは、有効となった該当ブロックからデータＤを読み出し、読み出したデータＤをバッファ領域１４２に展開する（ステップＳ３０７）。
【００４０】
以上のように構成および動作することで、実施の形態２によれば、実施の形態１と同様に、プロセッシングユニット間でオンデマンドにデータ転送が可能であるため、他のプロセッシングユニットに置かれたデータへのアクセス開始からプロセスの起動完了までの処理時間を短縮することが可能である。また、実施の形態２では、共有するデータの保管場所がＮＡＮＤ型フラッシュメモリなどのリニアアクセスできない領域である場合であっても、この共有するデータを一旦ＲＡＭなどのリニアアクセス可能な領域にコピーすることなく、オンデマンドに展開することが可能であるため、システム全体での処理時間（たとえばブート時間）を短縮することが可能となる。
【００４１】
その他の構成、動作および作用は、実施の形態１と同様であってよいため、ここでは詳細な説明を省略する。
【００４２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４３】
１００…情報処理システム、１０１…第１ＣＰＵ、１０２…第２ＣＰＵ、１０３…第１ＲＡＭ、１０４…第２ＲＡＭ、１０５…外部記憶装置、１０６…第１コントローラ、１０７…第２コントローラ、１３０…第１アドレス空間、１３１…Ａ領域、１４０…第２アドレス空間、１４１…Ｂ領域、１４２…バッファ領域、１７１…管理情報、Ｄ…データ
【図１】
2013246647.tif 000003
【図２】
2013246647.tif 000004
【図３】
2013246647.tif 000005
【図４】
2013246647.tif 000006
【図５】
2013246647.tif 000007
【図６】
2013246647.tif 000008
【図７】
2013246647.tif 000009