(57)【要約】【課題】マルチプロセッサシステムにおいて、初期化処理を効率化して少なくとも一部の機能を早期に開始できるようにする。【解決手段】ＣＰＵ＃０が、ＯＳの起動に用いられるハードウェア装置であるＭＥＭ＃０、ＤＥＶ＃０、ＤＥＶ＃２の初期化を、ＯＳの起動に用いられないハードウェア装置であるＤＥＶ＃１の初期化に先立って行い、ＭＥＭ＃０、ＤＥＶ＃０、ＤＥＶ＃２を用いてＯＳを起動する。また、ＣＰＵ１０２が、ＯＳの起動と並行して、ＤＥＶ＃１の初期化を行う。ＯＳの起動に用いられるハードウェア装置を優先して起動することでＯＳを早期に起動して、全ての初期化処理が完了していなくても一部のアプリケーション（ＡＰＰ＃０）が開始できるようにしている。【選択図】図３
2012256117.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサ装置と、前記複数のプロセッサ装置以外の複数のハードウェア装置とを含み、所定のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を起動するマルチプロセッサシステムであって、
前記複数のプロセッサ装置のうちの特定のプロセッサ装置が、
前記ＯＳの起動に用いられるハードウェア装置であるＯＳ起動用ハードウェア装置の初期化を、前記ＯＳの起動に用いられないハードウェア装置である対象外ハードウェア装置の初期化に先立って行い、前記ＯＳ起動用ハードウェア装置の初期化の完了後に前記ＯＳ起動用ハードウェア装置を用いて前記ＯＳを起動し、
前記特定のプロセッサ装置以外のプロセッサ装置が、
前記対象外ハードウェア装置の初期化を行うことを特徴とするマルチプロセッサシステム。
【請求項２】
前記特定のプロセッサ装置以外のプロセッサ装置は、
前記ＯＳの起動と並行して、前記対象外ハードウェア装置の初期化を行うことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記特定のプロセッサ装置は、
起動後の前記ＯＳが前記対象外ハードウェア装置を利用できないようにする設定を行った後に前記ＯＳを起動し、
前記特定のプロセッサ装置以外のプロセッサ装置は、
前記対象外ハードウェア装置の初期化が完了した際に、起動後の前記ＯＳが前記対象外ハードウェア装置を利用できるように設定を変更することを特徴とする請求項１又は２に記載のマルチプロセッサシステム。
【請求項４】
前記特定のプロセッサ装置は、
ハードウェア装置ごとに使用中か否かが示されるリソース情報において、起動後の前記ＯＳが前記対象外ハードウェア装置を利用できないようにする設定を行い、
前記特定のプロセッサ装置以外のプロセッサ装置は、
前記対象外ハードウェア装置の初期化が完了した際に、前記リソース情報において、起動後の前記ＯＳが前記対象外ハードウェア装置を利用できるように設定を変更することを特徴とする請求項３に記載のマルチプロセッサシステム。
【請求項５】
前記特定のプロセッサ装置は、
起動した前記ＯＳと、前記ＯＳ起動用ハードウェア装置を用いて所定のアプリケーションプログラムを起動することを特徴とする請求項１〜４のいずれかに記載のマルチプロセッサシステム。
【請求項６】
前記特定のプロセッサ装置は、
前記ＯＳ起動用ハードウェア装置を用いて起動できるアプリケーションプログラムを起動することを特徴とする請求項５に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサ装置（以下、ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔともいう）を搭載するマルチプロセッサシステムに関する。
【背景技術】
【０００２】
従来のＣＰＵを複数搭載したシステム（マルチプロセッサシステム）は、それぞれのＣＰＵが初期化処理を並行して実行することによって、システムの起動時間の短縮を行っていた（例えば、特許文献１や特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０６−３２５００７号公報
【特許文献２】特開平０６−０５２１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のマルチプロセッサシステムでは、全ての初期化処理が完了しないとシステムが提供する機能（サービス）を開始できないという課題があった。
この発明は上記のような課題を解決することを主な目的としており、初期化処理を効率化して少なくとも一部の機能を早期に開始できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００５】
本発明に係るマルチプロセッサシステムは、
複数のプロセッサ装置と、前記複数のプロセッサ装置以外の複数のハードウェア装置とを含み、所定のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を起動するマルチプロセッサシステムであって、
前記複数のプロセッサ装置のうちの特定のプロセッサ装置が、
前記ＯＳの起動に用いられるハードウェア装置であるＯＳ起動用ハードウェア装置の初期化を、前記ＯＳの起動に用いられないハードウェア装置である対象外ハードウェア装置の初期化に先立って行い、前記ＯＳ起動用ハードウェア装置の初期化の完了後に前記ＯＳ起動用ハードウェア装置を用いて前記ＯＳを起動し、
前記特定のプロセッサ装置以外のプロセッサ装置が、
前記対象外ハードウェア装置の初期化を行うことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、ＯＳ起動用ハードウェア装置の初期化を対象外ハードウェア装置の初期化に先立って行うので、ＯＳを早期に起動することができ、少なくとも一部の機能を早期に開始できる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１に係るマルチプロセッサシステムのハードウェア構成例を示す図。
【図２】実施の形態１に係るＩＰＬ及びＯＳの詳細を示す図。
【図３】実施の形態１に係る処理フローを示す図。
【図４】実施の形態１に係る他の処理フローを示す図。
【発明を実施するための形態】
【０００８】
実施の形態１．
本実施の形態では、一部のサービスを実現するための初期化処理を優先して実施して、マルチプロセッサシステムの全ての初期化処理が完了する前に一部のサービスを開始できるようにすることで、機能の一部を提供できるようにする構成を説明する。
【０００９】
図１は、本実施の形態に係るマルチプロセッサシステム１０００のハードウェア構成例を示す図である。
本実施の形態では、ＣＰＵ１０１、ＣＰＵ１０２、メモリ装置１０３、メモリ装置１０４、デバイス１０５、デバイス１０６、デバイス１０７及びＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）がシステムバス１００を介して接続されている。
【００１０】
ＣＰＵ１０１及びＣＰＵ１０２は、演算処理を実行する中央演算装置である。
ＣＰＵ１０１及びＣＰＵ１０２は、ＣＰＵ＃０及びＣＰＵ＃１とも表記する。
【００１１】
メモリ装置１０３及びメモリ装置１０４は、データを記憶する主記憶装置（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
メモリ装置１０３及びメモリ装置１０４は、ＭＥＭ１０３及びＭＥＭ１０４とも表記する。
また、ＭＥＭ＃０及びＭＥＭ＃１とも表記する。
【００１２】
デバイス１０５、デバイス１０６及びデバイス１０７は、それぞれ機能を提供するデバイスである。
本実施の形態では、デバイス１０５及びデバイス１０７のいずれかは、ＨＤＤ（Ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の不揮発性記憶装置であり、図２に示すＯＳ１１７が格納されているものとする。
ＯＳ１１７はＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍと呼ばれる、アプリケーションを実行するための手段（プログラム）である。
ＯＳ１１７はＣＰＵやメモリ装置、デバイスの構成要素を管理し、これらを用いてアプリケーションを実行する。
なお、デバイス１０５、デバイス１０６及びデバイス１０７は、ＤＥＶ１０５、ＤＥＶ１０６及びＤＥＶ１０７とも表記する。
また、ＤＥＶ＃０、ＤＥＶ＃１及びＤＥＶ＃２とも表記する。
【００１３】
ＲＯＭ１０８には、図２に示すＩＰＬ１０９が格納されている。
ＩＰＬ１０９はＩｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒやブートローダと呼ばれる、システムの初期化を実行する手段（プログラム）である。
【００１４】
本実施の形態では、ＣＰＵ１０１が、ＯＳ１１７の起動に用いられるハードウェア装置であるＯＳ起動用ハードウェア装置（具体的には、ＭＥＭ＃０、ＤＥＶ＃０、ＤＥＶ＃２）の初期化を、ＯＳ１１７の起動に用いられないハードウェア装置である対象外ハードウェア装置（具体的には、ＤＥＶ＃１）の初期化に先立って行い、ＯＳ起動用ハードウェア装置の初期化の完了後にＯＳ起動用ハードウェア装置を用いてＯＳを起動する。
また、ＣＰＵ１０２が、ＯＳ１１７の起動と並行して、対象外ハードウェア装置の初期化を行う。
このように、ＯＳの起動に用いられるハードウェア装置を優先して起動することでＯＳを早期に起動して、全ての初期化処理が完了していなくても一部のサービス（アプリケーション）が開始できるようにしている。
【００１５】
次に、図２に、ＩＰＬ１０９及びＯＳ１１７の詳細を示す。
【００１６】
ＩＰＬ１０９は、ＣＰＵを初期化するＣＰＵ初期化手段１１０、ＣＰＵを起動するＣＰＵ起動手段１１１、メモリ装置を初期化するメモリ初期化手段１１２（以下、ＭＥＭ初期化手段１１２と表記）、デバイスを初期化するデバイス初期化手段１１３（以下、ＤＥＶ初期化手段１１３と表記）、ＩＰＬ１０９が使用する構成要素に対応してリソース情報１２７内の使用フラグを設定するリソースリザーブ手段１１４、リソース情報１２７内の使用フラグを解除すると共にＯＳ１１７へリソースリリースを通知するリソースリリース手段１１５、ＯＳを起動するＯＳ起動手段１１６により構成される。
【００１７】
ＯＳ１１７は、ＯＳを初期化するＯＳ初期化手段１１８、リソース情報１２７を参照しＯＳ１１７が使用できる構成要素を判断するリソース情報参照手段１１９、ＯＳ１１７が使用する構成要素に対応してリソース情報１２７内の使用フラグを設定するリソースリザーブ手段１２０、ＯＳ１１７の管理下へＣＰＵを追加するＣＰＵ追加手段１２１、ＯＳ１１７の管理下へメモリを追加するメモリ追加手段１２２（以下、ＭＥＭ追加手段１２２と表記）、ＯＳ１１７の管理下へデバイスを追加するデバイス追加手段１２３（以下、ＤＥＶ追加手段１２３と表記）、アプリケーションを実行するアプリケーション実行手段１２４（以下、ＡＰＰ実行手段１２４と表記）、ＡＰＰ実行手段１２４により実行され、システムの機能を提供するためのアプリケーションであるＡＰＰ１２５、ＡＰＰ１２６により構成される。
【００１８】
リソース情報１２７は、ＣＰＵ１０１からＤＥＶ１０７のそれぞれの構成要素と各構成要素が使用中か否かを示す使用フラグを持つデータテーブルである。
使用フラグの値が「１」であれば、対象の要素が使用中であることを示している。
リソース情報１２７は、例えば、ＣＰＵ１０１内のレジスタ、ＭＥＭ１０３及びＭＥＭ１０４のいずれかで管理される。
【００１９】
図３は実施の形態１の処理フローを示すフローチャートである。
図３では、ＣＰＵ１０１、ＣＰＵ１０２それぞれの上で実行される処理毎に区切って記述している。
【００２０】
まず、ＣＰＵ１０１上でＩＰＬ１０９が動作を開始する（Ｓ２０１）。
ＩＰＬ１０９のＣＰＵ初期化手段１１０がＣＰＵ１０１を初期化し（Ｓ２０２）、ＭＥＭ初期化手段１１２がメモリ全体であるＭＥＭ１０３、ＭＥＭ１０４を初期化する（Ｓ２０３）。
次に、リソースリザーブ手段１１４はＣＰＵ１０２側で初期化処理を実行するために使用する構成要素であるＣＰＵ１０２、ＭＥＭ１０４及びＤＥＶ１０６に対応するリソース情報１２７中の使用フラグを設定する（フラグの値を１にする）（Ｓ２０４）。
この状態でＣＰＵ起動手段１１１はＣＰＵ１０２を起動する（Ｓ２０５）。
なお、処理Ｓ２０４においてＣＰＵ１０２、ＭＥＭ１０４及びＤＥＶ１０６に対応するリソース情報１２７中の使用フラグを設定するのは、起動後のＯＳ１１７がＣＰＵ１０２、ＭＥＭ１０４及びＤＥＶ１０６を利用できないようにするためである。
【００２１】
ＣＰＵ１０２上でＩＰＬ１０９のＣＰＵ初期化手段１１０がＣＰＵ１０２を初期化し（Ｓ２０６）、ＤＥＶ初期化手段１１３がＤＥＶ１０６を初期化する（Ｓ２０７）。
Ｓ２０５においてＣＰＵ１０２を起動したＣＰＵ１０１は初期化処理を継続し、ＤＥＶ初期化手段１１３がＤＥＶ１０５、ＤＥＶ１０７を初期化し（Ｓ２０８）、ＯＳ起動手段がＯＳ１１７を起動する（Ｓ２０９）。
そして、ＣＰＵ１０１上でＯＳ１１７が動作を開始する（Ｓ２１０）。
ＯＳ初期化手段１１８はＯＳ１１７を初期化し（Ｓ２１１）、リソース情報参照手段１１９がリソース情報１２７を参照し（Ｓ２１２）、使用フラグが設定されていないＣＰＵ１０１、ＭＥＭ１０３、ＤＥＶ１０５、ＤＥＶ１０７に対応するリソース情報１２７の使用フラグを設定する（Ｓ２１３）。
ＣＰＵ追加手段１２１はＣＰＵ１０１を、ＭＥＭ追加手段１２２はＭＥＭ１０３を、ＤＥＶ追加手段１２３はＤＥＶ１０５、ＤＥＶ１０７をそれぞれＯＳ１１７管理下へ追加し（Ｓ２１４）、ＡＰＰ実行手段１２４がＡＰＰ１２５を実行する（Ｓ２１５）。
これによりマルチプロセッサシステムのサービスの一部が開始される。
【００２２】
ＣＰＵ１０２上で実行していたＤＥＶ１０６の初期化が完了し、リソースリリース手段１１５はリソース情報１２７のＣＰＵ１０２、ＭＥＭ１０４、ＤＥＶ１０６に対応する使用フラグを解除しＯＳ１１７へ通知する（Ｓ２１６）。
ＣＰＵ１０１上で実行されているＯＳ１１７のリソースリザーブ手段１２０はＳ２１６にて解放されたＣＰＵ１０２、ＭＥＭ１０４、ＤＥＶ１０６の使用フラグを設定し（Ｓ２１７）、ＣＰＵ追加手段１２１はＣＰＵ１０２を、ＭＥＭ追加手段１２２はＭＥＭ１０４を、ＤＥＶ追加手段１２３はＤＥＶ１０６をそれぞれＯＳ１１７管理下へ追加する（Ｓ２１８）。
これにより構成要素は全てＯＳ１１７の管理下におかれ、ＯＳ１１７はＣＰＵ１０２、ＭＥＭ１０４及びＤＥＶ１０６を利用できる。
ＡＰＰ実行手段１２４はＡＰＰ１２６をＣＰＵ１０２上で実行し（Ｓ２１９）、これによりシステムのサービスが全て開始される。
【００２３】
なお、図３では、ＣＰＵ１０２を起動した後（Ｓ２０５）、ＤＥＶ１０５とＤＥＶ１０７を初期化し（Ｓ２０６）、ＯＳ１１７を起動している（Ｓ２０９）が、これに代えて、図４に示すように、ＤＥＶ１０５とＤＥＶ１０７を初期化し（Ｓ２０６）、ＯＳ１１７を起動した後（Ｓ２０９）に、ＣＰＵ１０２を起動する（Ｓ２０５）ようにしてもよい。
【００２４】
また、図３及び図４の例では、処理Ｓ２０３の段階で、ＭＥＭ＃０とＭＥＭ＃１の両者を初期化している。
しかし、ＭＥＭ＃１はＯＳ１１７の起動には用いられないので、処理Ｓ２０３ではＭＥＭ＃０のみを初期化し、ＤＥＶ＃１の初期化（Ｓ２０７）とともにＣＰＵ１０２によりＭＥＭ＃１の初期化を行うようにしてもよい。
この場合は、ＭＥＭ＃１も対象外ハードウェア装置の例となる。
【００２５】
以上のように、全構成要素の初期化が完了する前にＯＳを起動できるようにしているので、全構成要素の初期化完了前にシステムのサービスを一部開始し、全構成要素の初期化が完了した後にシステムのサービスの全てを開始することができる。
【００２６】
以上、本実施の形態では、
複数のＣＰＵを搭載したシステム（マルチプロセッサシステム）であって、それぞれのＣＰＵがシステムの初期化処理を並行して実行する事が可能であり、ＯＳを起動しＯＳによりシステムの全サービスのうち一部を開始できるマルチプロセッサシステムを説明した。
【００２７】
また、本実施の形態では、マルチプロセッサシステムが、構成要素が使用中か否かを示すリソース情報を有し、使用中の構成要素を使用せずにＯＳを起動することを説明した。
【００２８】
また、本実施の形態では、マルチプロセッサシステムが、構成要素が使用中か否かを示すリソース情報を有し、使用中でない構成要素をＯＳ管理下に追加し利用可能とすること説明した。
【００２９】
また、本実施の形態では、マルチプロセッサシステムが、構成要素が使用中か否かを示すリソース情報を有し、使用中であった構成要素が使用中ではなくなった場合に該構成要素をＯＳ管理下に追加し利用可能とすることを説明した。
【００３０】
また、本実施の形態では、マルチプロセッサシステムが、ＯＳ管理下の構成要素に応じて、実行するサービスを選択できることを説明した。
【符号の説明】
【００３１】
１００  システムバス、１０１  ＣＰＵ、１０２  ＣＰＵ、１０３  メモリ装置、１０４  メモリ装置、１０５  デバイス、１０６  デバイス、１０７  デバイス、１０８  ＲＯＭ、１０９  ＩＰＬ、１１０  ＣＰＵ初期化手段、１１１  ＣＰＵ起動手段、１１２  ＭＥＭ初期化手段、１１３  ＤＥＶ初期化手段、１１４  リソースリザーブ手段、１１５  リソースリリース手段、１１６  ＯＳ起動手段、１１７  ＯＳ、１１８  ＯＳ初期化手段、１１９  リソース情報参照手段、１２０  リソースリザーブ手段、１２１  ＣＰＵ追加手段、１２２  ＭＥＭ追加手段、１２３  ＤＥＶ追加手段、１２４  ＡＰＰ実行手段、１２５  ＡＰＰ、１２６  ＡＰＰ、１２７  リソース情報、１０００  マルチプロセッサシステム。
【図１】
2012256117.tif 000003
【図２】
2012256117.tif 000004
【図３】
2012256117.tif 000005
【図４】
2012256117.tif 000006