(57)【要約】【課題】複数のプロセッサを複数のＯＳを使って動作させるマルチタイプのプロセッサであって、適正にブート処理できるプロセッサを提供する。【解決手段】複数の単位プロセッサＰ０〜Ｐ３を組み合わせ、複数のオペレーティングシステム（ＯＳ）で動作させるプロセッサにおいて、単位プロセッサＰ０〜Ｐ３の各々とＯＳとを対応付ける初期パラメータを初期パラメータエリア２２０に保存する。また、単位プロセッサＰ０〜Ｐ３のうち少なくとも一の単位プロセッサ（単位プロセッサＰ０）が、保存されている初期パラメータに基づいて複数の単位プロセッサＰ０〜Ｐ３の少なくとも一部に対し対応するＯＳを初期化させる割込み処理を実行するブート処理部２１０を備える。【選択図】図２
2007172145.tif 000002
【特許請求の範囲】
【請求項１】
複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサであって、
前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報を保存する対応情報保存手段を備え、
複数の前記単位プロセッサのうち少なくとも一の主単位プロセッサが、前記対応情報保存手段に保存されている対応情報に基づいて、複数の前記単位プロセッサの少なくとも一部に対し、対応するオペレーティングシステムを初期化させる割込み処理を実行する初期化実行手段を備えることを特徴とするプロセッサ。
【請求項２】
前記初期化手段が前記主単位プロセッサに対して割込み処理を実行し、
前記割込み実行手段による割込み処理を実行する以前に主単位プロセッサに対する割込みを禁止する割込み禁止手段と、
前記割込み禁止手段によって実行された割込み禁止を、前記割込み実行手段による割込み処理を実行するに際して解除する割込み禁止解除手段と、
を備えることを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記単位プロセッサに対して動作を指示する指示情報を外部から入力する操作手段を備え、
前記対応情報保存手段は、前記対応情報を前記操作手段によって入力された指示情報に対応付けて保存すると共に、前記初期化手段は、前記指示情報に対応付けられた対応情報にしたがって前記単位プロセッサに割込み処理を実行することを特徴とする請求項１または２に記載のプロセッサ。
【請求項４】
複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサに適用されるブート処理方法をコンピュータに実行させるためのプログラムであって、
複数の前記プロセッサのうち少なくとも一の主単位プロセッサに対する割込みを禁止する割込み禁止ステップと、
前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報に基づいて、前記単位プロセッサの少なくとも一部に初期化の処理を割込ませる処理実行ステップと、
前記割込み処理の実行に際して前記主単位プロセッサの割込み禁止を解除する割込み禁止解除ステップと、
を含むことを特徴とするブート処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラムにかかり、特に複数のプロセッサが複数のオペレーティングシステムによって動作するマルチ方式のプロセッサ及びブート処理方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
特定の装置に用いられるプロセッサは、組込みシステムと呼ばれている。近年では、組込みシステムにマルチプロセッサやマルチスレッドプロセッサが採用されることも多い。マルチプロセッサの採用は、装置の低クロック化や応答性の向上に有利である。また、特に携帯型の装置では、消費電力を低減することにも有利であるためマルチプロセッサを採用することが望まれている。
【０００３】
ところで、新たに開発したプロセッサが正常に動作するか否かの判断に時間及びコストがかかる。このため、ソフトウェアの分野では、使用した結果実績のあるプロセッサが流用可能であるならば、これを流用することが望ましいとされている。したがって、組込みシステムをマルチプロセッサ化する場合、先に使用されていたシングルプロセッサのソフトウェアを流用する要求がある。
【０００４】
シングルプロセッサをマルチプロセッサに流用する従来技術として、例えば、特許文献１がある。特許文献１の発明は、μＩＴＲＯＮ（登録商標）をベースにしたシングルプロセッサ用のオペレーティングシステムをマルチプロセッサに移植するものである。
ただし、特許文献１の発明は、マルチプロセッサのシステムをＳＭＰ（Symmetric Multi Processor）型のみのプロセッサで構築すると、シングルプロセッサの資産であるアプリケーションの移植作業の作業量が膨大になるという欠点がある。一方、マルチプロセッサを機能分散型のオペレーティングシステムのみで動作させた場合、複数のプロセッサを並列的に動作させることが困難である。複数のプロセッサを並列的に動作させるためには、複数のオペレーティングシステムを動作させることが考えられる。
【特許文献１】特開平８−２９７５８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、プロセッサが起動するとき、ブート処理と呼ばれる処理が行われる。マルチプロセッサのブート処理では、ブートプログラムによって各プロセッサがテスト・コードを実行する。そして、最初にテスト・コードの実行が終了したプロセッサがマスタ・プロセッサとなって他のプロセッサを初期化する（例えばＸｅｏｎ（登録商標）マルチプロセッサのブート処理）。
【０００６】
しかしながら、上記したように、複数のプロセッサを複数のＯＳを使って動作させることを考えた場合、プロセッサによって使用されるＯＳが異なる。このため、従来のマルチプロセッサのブート処理は、複数のプロセッサを複数のＯＳを使って動作させるマルチプロセッサを適正にブート処理することができない。
本発明は、このような点に鑑みてなされたものであって、複数のプロセッサを複数のＯＳを使って動作させるマルチタイプのプロセッサであって、適正にブート処理できるプロセッサ及びブート処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、本発明のプロセッサは、複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサであって、前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報を保存する対応情報保存手段を備え、複数の前記プロセッサのうち少なくとも一の主単位プロセッサが、前記対応情報保存手段に保存されている対応情報に基づいて、複数の前記単位プロセッサの少なくとも一部に対し、対応するオペレーティングシステムを初期化させる割込み処理を実行する初期化実行手段を備えることを特徴とする。
【０００８】
このような発明によれば、前記単位プロセッサの各々とＯＳとを対応付ける対応情報を保存しておくことができる。また、複数の単位プロセッサのうち少なくとも一の主単位プロセッサが、対応情報保存手段に保存されている対応情報に基づいて単位プロセッサの各々に対応するＯＳを特定することができる。そして、複数の単位プロセッサの少なくとも一部に対して割込み処理し、対応するＯＳの初期化（ブート処理）を実行することができる。
【０００９】
このため、本発明は、複数の異なるＯＳが混在するマルチ形式のプロセッサにあっても、各々の単位プロセッサを適正にブート処理するプロセッサを提供することができる。
また、本発明のプロセッサは、前記初期化手段が前記主単位プロセッサに対して割込み処理を実行し、前記割込み実行手段による割込み処理を実行する以前に主単位プロセッサに対する割込みを禁止する割込み禁止手段と、前記割込み禁止手段によって実行された割込み禁止を、前記割込み実行手段による割込み処理を実行するに際して解除する割込み禁止解除手段と、を備えることを特徴とする。
【００１０】
このような発明によれば、主単位プロセッサが他の単位プロセッサに割込み処理をするための処理が割込み処理によって中断されることをなくし、プロセッサのブート処理を優先して行うことができる。また、自プロセッサが自らに割込み処理することによってブート処理することが可能になる。
また、本発明のプロセッサは、前記単位プロセッサに対して動作を指示する指示情報を外部から入力する操作手段を備え、前記対応情報保存手段は、前記対応情報を前記操作手段によって入力された指示情報に対応付けて保存すると共に、前記初期化手段は、前記指示情報に対応付けられた対応情報にしたがって前記単位プロセッサに割込み処理を実行することを特徴とする。
【００１１】
このような発明によれば、オペレータが意図する処理に即してＯＳを単位プロセッサに割り当てることができる。
また、本発明のブート処理方法をコンピュータに実行させるためのプログラムは、複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサに適用されるブート処理方法をコンピュータに実行させるためのプログラムであって、複数の前記プロセッサのうち少なくとも一の主単位プロセッサに対する割込みを禁止する割込み禁止ステップと、前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報に基づいて、前記単位プロセッサの少なくとも一部に初期化の処理を割込ませる処理実行ステップと、前記割込み処理の実行に際して前記主単位プロセッサの割込み禁止を解除する割込み禁止解除ステップと、を含むことを特徴とする。
【００１２】
このような発明によれば、前記単位プロセッサの各々とＯＳとを対応付ける対応情報を保存しておくことができる。また、複数の単位プロセッサのうち少なくとも一の主単位プロセッサが、対応情報保存手段に保存されている対応情報に基づいて単位プロセッサの各々に対応するＯＳを特定することができる。そして、複数の単位プロセッサの少なくとも一部に対して割込み処理し、対応するＯＳの初期化（ブート処理）を実行することができる。
【００１３】
このため、本発明は、複数の異なるＯＳが混在するマルチ形式のプロセッサにあっても、各々の単位プロセッサを適正にブート処理するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図を参照して本発明に係るプロセッサの一実施の形態を説明する。なお、本実施形態は、本実施形態のプロセッサを、携帯電話に適用される組込みシステムとして構成したものとする。
【００１５】
図１は、本発明にかかる携帯電話１の機能構成を示すブロック図である。図１において、携帯電話１は、ＣＰＵ（Central Processing Unit）１０と、フラッシュＲＯＭ２０と、メモリ３０と、バッファ４０と、無線部５０と、ＩｒＤＡ（Infrared Data Association）部６０と、オーディオ（Audio）部７０と、タイマ（Timer）８０と、ＵＳＢ（Universal Serial Bus）インターフェース部９０と、キー（KEY）操作部１００と、ＬＣＤ（Liquid Crystal Display）１１０と、カメラ（Camera）部１２０を含んで構成され、ＣＰＵ１０、フラッシュＲＯＭ２０、メモリ３０及びバッファ４０は、バスによって接続されている。また、無線部５０、ＩｒＤＡ部６０、オーディオ部７０、タイマ８０、ＵＳＢインターフェース部９０、キー操作部１００、ＬＣＤ１１０及びカメラ部１２０は、ＣＰＵ１０と直接接続されている。
【００１６】
ＣＰＵ１０は、複数のタスクを並列的に処理しながら携帯電話１全体を制御するもので、キー操作部１００から入力される各種の指示信号に応じて、フラッシュＲＯＭ３０に記憶されたオペレーティングシステムプログラム（ＯＳ：Operating System）や各種アプリケーションプログラムを読み出して実行したり、無線部５０、オーディオ部７０あるいはカメラ部１２０等の周辺チップから入力される割込み信号に応じて、割込みハンドラを実行したりする。
【００１７】
例えば、ＣＰＵ１０は、アプリケーションにより生成されたタスクを並行して処理する。さらに、周辺チップから割込み信号が入力された場合、割込みハンドラを実行することにより、割込みに対応するプログラムを実行する。なお、アプリケーションによる処理は、ＯＳのタスクスケジューラによって管理されるタスクとして実行されるため、ＯＳのサービスコールを呼び出すことができ、一方、割込み処理は、タスクスケジューラによって管理されない処理（非タスク処理）である。
また、ＣＰＵ１０は、各種処理結果をフラッシュＲＯＭ２０あるいはメモリ３０に格納する。
【００１８】
図２は、ＣＰＵ１０を説明するための図である。ＣＰＵ１０は、複数の単位プロセッサＰ０、Ｐ１、Ｐ２、Ｐ３を組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサである。
図２に示したように、ＣＰＵ１０は、複数の単位プロセッサＰ０〜Ｐ３と、割込み制御部１１と、メモリ制御部１２と、ハードウェアセマフォ部１３とを含んで構成される。なお、ハードウェアセマフォ部１３は、いずれかの単位プロセッサにＯＳになる権利であるセマフォ（本実施形態ではハードウェアセマフォと記す）を付与する構成である。
【００１９】
単位プロセッサＰ０〜Ｐ３は、このうちのいずれかがＳＭＰを構成し、他が機能分散型プロセッサとなる。ＳＭＰとは、複数のプロセッサが同等な立場で処理を分担するマルチプロセッサである。本来、ＳＭＰでは、タスクがどのプロセッサで実行されるかを意識する必要がない。一方、機能分散型プロセッサとは、例えば通信制御、イメージ処理といった特定の処理に特化して動作するシングルプロセッサである。機能分散型プロセッサでは、タスクの割込みもプロセッサごとに処理される。
【００２０】
また、本実施形態は、複数のＯＳが動作するためにハードウェアセマフォ部１３には複数のハードウェアセマフォがある。単位プロセッサＰ０〜Ｐ３は、各々自身に対応するＯＳになる権利を取得する。
本実施形態では、単位プロセッサＰ０、単位プロセッサＰ３が機能分散型プロセッサであって、単位プロセッサＰ１、単位プロセッサＰ２がＳＭＰ５を構成するものとする。なお、単位プロセッサＰ０〜Ｐ３は、どのように結合されてＳＭＰを構成するものであってもよく、例えば、図３（ａ）、（ｂ）に示したように構成してもよい。
【００２１】
図３（ａ）、（ｂ）に示したＳＭＰは、いずれも複数の単位プロセッサＰｕを、メモリを共有するように結合して構成されている。（ａ）に示した構成は、マルチプロセッサと呼ばれている構成であって、（ｂ）に示した構成はマルチスレッドプロセッサと呼ばれている。マルチスレッドプロセッサは、マルチプロセッサよりも演算器を共有している点で単位プロセッサＰｕは密に結合しているという。なお、本実施形態のプロセッサは、ＳＭＰとしてマルチプロセッサ、マルチスレッドプロセッサのいずれを採用しても構成可能である。
【００２２】
ＳＭＰと機能分散型プロセッサとが混在する本実施形態のプロセッサは、プロセッサが複数種類のＯＳを有している。このため、プロセッサ内でＳＭＰと機能分散型プロセッサとが混在することになる。ＳＭＰは、マルチプロセッサ対応ＯＳ４０１によって動作する。機能分散プロセッサは、ＯＳ部４０３ａ等によって動作する。したがって、本実施形態のプロセッサ上では、複数のＯＳが動作することになる。プロセッサが複数のＯＳによって動作する状態を図４に示す。
【００２３】
また、本実施形態のプロセッサは、単位プロセッサＰ０〜Ｐ３の共有エリアとなるメモリ３０と、メモリ３０を制御するメモリ制御部１２とを備えている。本実施形態では、単位プロセッサＰ０〜Ｐ３の各々とＯＳとを対応付ける情報をメモリ３０に保存する。単位プロセッサとＯＳとを対応付ける情報を以降初期パラメータと記し、メモリ３０の初期パラメータが保存されているエリアを初期パラメータエリア２２０と記す。初期パラメータエリア２２０は、本実施形態において対応情報保存手段となる。
【００２４】
また、本実施形態では、複数の単位プロセッサＰ０〜Ｐ３のうちの少なくとも一の単位プロセッサを主単位プロセッサとする（本実施形態では単位プロセッサＰ０）。単位プロセッサＰ０は、ブート処理部２１０を備え、ブート処理部２１０が初期パラメータエリア２２０に保存されている初期パラメータに基づいて、複数の単位プロセッサＰ０〜Ｐ３の少なくとも一部に対して割込み処理を実行する。
【００２５】
ブート処理部２１０による割込みは、プロセッサに含まれる各単位プロセッサがＯＳを初期化するためのブート処理のため行われる。また、ブート処理部２１０は、単位プロセッサＰ０に備えられるブートローダである。ブートローダは、ＲＯＭの製造時にデータをパターニングによって記録するマスクＲＯＭ等によって実現される。なお、本実施形態のプロセッサのブート処理については後に述べる。
【００２６】
次に、単位プロセッサＰ０〜Ｐ３のブート処理部２１０を除く内部構成について説明する。単位プロセッサＰ０〜Ｐ３は、ブート処理部２１０を除いて同様に構成されているため、代表として、単位プロセッサＰ０の内部構成について説明する。
単位プロセッサＰ０は、フェッチ部１０１と、デコード部１０２と、ＡＬＵ（Arithmetic and Logical Unit）１０３と、レジスタファイル１０４と、プログラム制御部１０５とを含んで構成される。フェッチ部１０１は、後述するプログラム制御部１０５のプログラムカウンタが示すメモリアドレスから命令コードを読み出し、デコード部１０２に出力する。
【００２７】
デコード部１０２は、フェッチ部１０１によって入力された命令コードをデコードし、デコード結果（命令内容及びソースレジスタ、デスティネーションレジスタのアドレス等）をＡＬＵ１０３に出力する。
ＡＬＵ１０３は、デコード部１０２によって入力されたデコード結果に応じて、所定の演算を行い、演算結果をレジスタファイル１０４に書き込む、あるいは分岐命令等の演算結果であるブランチ先のアドレスをプログラム制御部１０５に出力する。
【００２８】
レジスタファイル１０４は、ロード命令によってメモリ３０から読み出されたデータや、ＡＬＵ１０３の演算結果であるデータを記憶するレジスタ群である。後述するように、レジスタファイル１０３は、汎用レジスタ群と特殊レジスタ群とを含んでいて、特殊レジスタ群は、本実施形態のブート処理のためのアドレスが書き込まれる領域である。
プログラム制御部１０５は、単位プロセッサＰ０全体を制御するものであり、単位プロセッサＰ０のステータス（例えば、割込みの可否状態、単位プロセッサＰ０におけるオーバーフローの発生状態等）を記憶するステータスレジスタ（ＰＳＲ）と、単位プロセッサＰ０が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタおい（ＰＣ）２３０とを含んで構成される。そして、プログラム制御部１０５は、単位プロセッサＰ０が割込み処理に移行する時点で、ＰＳＲの値を割込み処理の禁止状態に変更したり、分岐命令が実行された場合に、プログラムカウンタの値を分岐先のアドレスに変更したりする。
【００２９】
また、プログラム制御部１０５は、実行中のタスクによってハードウェアセマフォの取得要求が出力された場合、先ず、ハードウェアセマフォの取得結果を受け取り、ステータスレジスタにおけるハードウェアセマフォの取得結果を示す領域（以下、「セマフォ取得結果レジスタ」という。）に取得に成功したことを示すフラグ（ＯＳへの移行が許可されたことを示すフラグ）を更新する。一方、セマフォ取得に失敗した場合、取得に失敗したことを示すフラグ（ＯＳへの移行が拒否されたことを示すフラグ）が書き込まれた場合、ハードウェアセマフォの取得を一旦停止し、待機状態から離脱する。
【００３０】
さらに、プログラム制御部１０５は、追出し禁止フラグ１０６を備えている。追出し禁止フラグ１０６は、指定された単位プロセッサにおいてタスクの切替えや外部割込みが起こり、タスクが単位プロセッサから追出されることを禁止するための機構である。追出し禁止フラグ１０６を１にすることによって現在単位プロセッサにあるタスクが他のタスクに切替えられることが禁止される。単位プロセッサにおけるタスクの追出しが禁止された状態を以降ロック状態とも記す。
【００３１】
割込み制御部１１は、無線部５０等の周辺チップから割込み信号が入力された場合に、割込み信号を調停した上で、所定の割込み信号を単位プロセッサＰ０に出力する。メモリ制御部１２は、ＣＰＵ１０とメモリ３０との間に備えられ、ＣＰＵ１０からメモリ３０に対するデータの読み出し及び書込みが行われる場合に、メモリ３０を制御してデータの入出力を行う。
【００３２】
ハードウェアセマフォ部１３は、排他制御を実現する機構を有し、単位プロセッサＰ０〜Ｐ３からセマフォ取得要求があったとき、既にセマフォが獲得されている状態であれば新たな要求に対して、セマフォの獲得失敗を通知する。一方、それ以前にセマフォが獲得された状態でなければ、セマフォ取得成功の通知を単位プロセッサに返答する機能を有している。
【００３３】
すなわち、本実施形態では、ハードウェアセマフォを取得した単位プロセッサだけがＯＳを占有してタスクの処理を実行する権利を得る。このため、単位プロセッサＰ０〜Ｐ３のうちのいずれか１つだけがＯＳに移行できるので、ＯＳ同士の競合を防止する排他制御を実現できる。そして、ＯＳによって使用されるメモリ３０の所定の領域が同時にアクセスされたために処理が中断する等の不具合を防ぐことができる。
【００３４】
また、本実施形態では、追出し禁止フラグ１０６によってタスクが追出されることをＯＳのサービスコール終了まで禁止することができる。
さらに、本実施形態では、排他制御の実行中、プロセッサによる割込み処理の実行を禁止する。本実施形態では、割込み処理の実行禁止を割込み制御部１１によって行っている。すなわち、割込み制御部１１は、単位プロセッサＰ０〜Ｐ３のステータスが書き込まれるステータスレジスタ（図示せず）を備えている。ステータスレジスタのステータスを「割込み否」に設定することにより、割込み制御部１１は、所望の単位プロセッサに対する割込み処理を禁止することができる。
【００３５】
次に、本実施形態のプロセッサで行われるブート処理について説明する。図５は、本実施形態のプロセッサで行われるブート処理のうち、単位プロセッサＰ０が他の単位プロセッサに対して行う処理を説明するためのフローチャートである。図５に示したように、単位プロセッサＰ０は、ブート処理部２１０によってブート処理を開始する。なお、ブート処理部２１０は、ブート処理は、自身（単位プロセッサＰ０）に対する割込みによって行われる。なお、本実施形態では、ブート処理部２１０が携帯電話１の操作手段となるキー操作部１００等のキーや電源投入スイッチが操作されたときにブート処理を開始するものとする。
【００３６】
キー操作部１００が操作されると、ブート処理部２１０は、先ず、自身のハードウェアを初期化する（Ｓ５０１）。そして、ブート処理が割込みによって中断されることを防ぐため、割込み制御部１１を介して単位プロセッサＰ０を割込み禁止に設定する（Ｓ５０２）。そして、メモリ３０の初期パラメータエリア２２０にアクセスしてブート処理すべき単位プロセッサの初期パラメータを参照して取り出す（Ｓ５０３）。
【００３７】
図６は、ステップＳ５０３で参照される初期パラメータの構成を説明するための図である。本実施形態では、互いに異なるＯＳ部を使用する機能分散型の単位プロセッサＰ０、単位プロセッサＰ３、マルチプロセッサ対応ＯＳ４０１を使用する単位プロセッサＰ１、単位プロセッサＰ２の３セット分の初期パラメータが用意されている。１セットの初期パラメータの各々を要素という。図６に示した３要素の初期パラメータは、各ＯＳと対応するプロセッサの数、ＯＳ識別番号、ＯＳと対応付けられたプロセッサのリセットアドレスを少なくとも含んでいる。
【００３８】
リセットアドレスは、単位プロセッサのＰＣ２３０のカウント値をリセットするため設定されるアドレスである。リセットアドレスは、ＯＳによって固有のアドレス値である。
なお、初期パラメータエリア２２０には、ＯＳを共有する単位プロセッサごとに単位プロセッサの情報を保存しておく領域があって、この領域がコード領域とデータ領域に分けられる。コード領域は、単位プロセッサＰ０〜Ｐ３のレジスタ１０４の汎用レジスタ群や特殊レジスタ群、ＰＣ２３０の内容が書き込まれる領域である。また、データ領域は、各単位プロセッサの処理に使用される他のデータが書き込まれる領域である。
【００３９】
図６に示した初期パラメータは、コード領域に保存されている。メモリ３０の初期パラメータエリア２２０に書き込まれる情報と各単位プロセッサＰ０〜Ｐ７との対応関係を、図７に示す。
次に、ブート処理部２１０は、単位プロセッサＰ０〜Ｐ３のコード領域から取り出された３要素分のＯＳリセットアドレスを単位プロセッサＰ０のレジスタ１０４にある特殊レジスタに設定する。同様に、ＯＳ識別情報も特殊レジスタに設定される（Ｓ５０４）。
【００４０】
以上の処理の後、ブート処理部２１０は、単位プロセッサＰ０、単位プロセッサＰ１、単位プロセッサＰ３に対してＯＳを初期化する処理を割込ませる（Ｓ５０５）。なお、本実施形態では、単位プロセッサＰ１と共にＳＭＰを構成する単位プロセッサＰ２には割込みを発生させないものとした。マルチプロセッサ対応ＯＳ４０１の初期化は、単位プロセッサＰ１によって行われる。
ブート処理部２１０は、単位プロセッサＰ０、単位プロセッサＰ１、単位プロセッサＰ３の全ての要素について以上の処理が終了するまで処理を繰り返す。そして、処理が終了したと判断すると（Ｓ５０６：Ｙｅｓ）、単位プロセッサＰ０に対する割込みを解除し（Ｓ５０７）、ブート処理を終了する。
【００４１】
図８は、割込みがされた単位プロセッサ（例えば単位プロセッサＰ１）によって行われる処理を説明するためのフローチャートである。図８に示すように、単位プロセッサＰ１は、割込みを受け付け、特殊レジスタに設定されたＯＳリセットアドレスをＰＣ２３０に設定する。ＰＣ２３０への設定により、単位プロセッサＰ１の処理は、マルチプロセッサ対応ＯＳ４０１を初期化する処理にジャンプする（Ｓ８０１）。
【００４２】
次に、単位プロセッサＰ１は、レジスタ１０４の内容を初期化し（Ｓ８０２）、ブート処理を実行してマルチプロセッサ対応ＯＳ４０１を読出し、初期化する（Ｓ８０３）。以上の処理の後、単位プロセッサＰ１は、ディスパッチ処理に移行し、優先度に応じてタスクの処理を実行する。
なお、本実施形態は、前記したようにプロセッサが自プロセッサに対しても割込みを行うことが可能である。したがって、図８で示すフローチャートは、単位プロセッサＰ０が単位プロセッサＰ０に割込みをした場合にも同様に実行される。
【００４３】
図８のフローチャートに示した処理は、単位プロセッサＰ０においても同様に行われる。ただし、単位プロセッサＰ０は、ステップＳ８０２においてＯＳ部４０３ａを初期化する。また、単位プロセッサＰ３も図８のフローチャートに示した処理を実行し、ステップＳ８０２においてＯＳ部４０３ｂを初期化する。
図５、図８で述べた本実施形態のブート方法をコンピュータに実行させるためのプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態のブート方法をコンピュータに実行させるためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００４４】
さらに、以上述べた本実施形態のブート方法をコンピュータに実行させるためのプログラムは、コンピュータで読み取り可能なＲＯＭ、フラッシュメモリ、メモリカード、ＵＳＢ接続型フラッシュメモリ等のメモリデバイスに記録されて提供してもよい。
以上述べた本実施形態は、単位プロセッサＰ０が、初期パラメータエリア２２０に保存されている初期パラメータに基づいて単位プロセッサの各々に対応するＯＳを特定することができる。そして、複数の単位プロセッサの少なくとも一部に対して割込み処理し、各単位プロセッサがブート処理を実行することができる。このため、本発明は、複数の異なるＯＳが混在するマルチ形式のプロセッサにあっても、各々の単位プロセッサを適正にブート処理することができる。
【００４５】
また、本実施形態は、１のＯＳについて初期化パラメータを１つだけ保存する構成に限定されるものではない。例えば、キー操作部１００のキーや電源投入スイッチ、さらにはカメラ部１２０の操作の情報を単位プロセッサに対して動作を指示する指示情報としてブート処理部２１０が入力する。指示情報に対応付けて初期パラメータを保存し、ブート処理部２１０が指示情報に対応する初期パラメータにしたがって単位プロセッサに割込みを実行すれば、オペレータが意図する操作に即して単位プロセッサを動作させることができる。
【００４６】
なお、指示情報に対応した初期パラメータとは、例えば、指示情報の内容に応じて初期化の対象となる単位プロセッサが相違する複数の初期パラメータをいう。
【図面の簡単な説明】
【００４７】
【図１】本発明にかかる携帯電話の機能構成を示すブロック図である。
【図２】図１に示したＣＰＵの内部構成を示すブロック図である。
【図３】本発明の一実施形態でいうＳＭＰにおける単位プロセッサの結合を例示した図である。
【図４】本発明の一実施形態のプロセッサが複数のＯＳによって動作する状態を示した図である。
【図５】単位プロセッサＰ０が他の単位プロセッサに対して行う処理を説明するためのフローチャートである。
【図６】本発明の一実施形態の初期パラメータの構成を説明するための図である。
【図７】本発明の一実施形態の期パラメータエリアに書き込まれる情報と各単位プロセッサとの対応関係を説明するための図である。
【図８】本発明の一実施形態の割込みがされた単位プロセッサによって行われる処理を説明するためのフローチャートである。本発明の一実施形態の要求元プロセッサの動作を示したフローチャートである。
【符号の説明】
【００４８】
５  ＳＭＰ  １１  割込み制御部、１２  メモリ制御部、１３  ハードウェアセマフォ部、３０  メモリ、２１０  ブート処理部、２２０  初期パラメータスエリア、２３０  ＰＣ、４０１  マルチプロセッサ対応ＯＳ、４０３ａ，４０３ｂ，４０３ｃ  ＯＳ部、６０１  状態フラグエリア、６０２  コマンドエリア、６０３、６０４、６０５  エリア、６０６  終了情報エリア、Ｐ０，Ｐ１，Ｐ２，Ｐ３  単位プロセッサ
【図１】
2007172145.tif 000003
【図２】
2007172145.tif 000004
【図３】
2007172145.tif 000005
【図４】
2007172145.tif 000006
【図５】
2007172145.tif 000007
【図６】
2007172145.tif 000008
【図７】
2007172145.tif 000009
【図８】
2007172145.tif 000010