JP2007172145A - プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム - Google Patents
プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム Download PDFInfo
- Publication number
- JP2007172145A JP2007172145A JP2005366570A JP2005366570A JP2007172145A JP 2007172145 A JP2007172145 A JP 2007172145A JP 2005366570 A JP2005366570 A JP 2005366570A JP 2005366570 A JP2005366570 A JP 2005366570A JP 2007172145 A JP2007172145 A JP 2007172145A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- processor
- interrupt
- processors
- correspondence information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】複数のプロセッサを複数のOSを使って動作させるマルチタイプのプロセッサであって、適正にブート処理できるプロセッサを提供する。
【解決手段】複数の単位プロセッサP0〜P3を組み合わせ、複数のオペレーティングシステム(OS)で動作させるプロセッサにおいて、単位プロセッサP0〜P3の各々とOSとを対応付ける初期パラメータを初期パラメータエリア220に保存する。また、単位プロセッサP0〜P3のうち少なくとも一の単位プロセッサ(単位プロセッサP0)が、保存されている初期パラメータに基づいて複数の単位プロセッサP0〜P3の少なくとも一部に対し対応するOSを初期化させる割込み処理を実行するブート処理部210を備える。
【選択図】図2
【解決手段】複数の単位プロセッサP0〜P3を組み合わせ、複数のオペレーティングシステム(OS)で動作させるプロセッサにおいて、単位プロセッサP0〜P3の各々とOSとを対応付ける初期パラメータを初期パラメータエリア220に保存する。また、単位プロセッサP0〜P3のうち少なくとも一の単位プロセッサ(単位プロセッサP0)が、保存されている初期パラメータに基づいて複数の単位プロセッサP0〜P3の少なくとも一部に対し対応するOSを初期化させる割込み処理を実行するブート処理部210を備える。
【選択図】図2
Description
本発明は、プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラムにかかり、特に複数のプロセッサが複数のオペレーティングシステムによって動作するマルチ方式のプロセッサ及びブート処理方法をコンピュータに実行させるためのプログラムに関する。
特定の装置に用いられるプロセッサは、組込みシステムと呼ばれている。近年では、組込みシステムにマルチプロセッサやマルチスレッドプロセッサが採用されることも多い。マルチプロセッサの採用は、装置の低クロック化や応答性の向上に有利である。また、特に携帯型の装置では、消費電力を低減することにも有利であるためマルチプロセッサを採用することが望まれている。
ところで、新たに開発したプロセッサが正常に動作するか否かの判断に時間及びコストがかかる。このため、ソフトウェアの分野では、使用した結果実績のあるプロセッサが流用可能であるならば、これを流用することが望ましいとされている。したがって、組込みシステムをマルチプロセッサ化する場合、先に使用されていたシングルプロセッサのソフトウェアを流用する要求がある。
シングルプロセッサをマルチプロセッサに流用する従来技術として、例えば、特許文献1がある。特許文献1の発明は、μITRON(登録商標)をベースにしたシングルプロセッサ用のオペレーティングシステムをマルチプロセッサに移植するものである。
ただし、特許文献1の発明は、マルチプロセッサのシステムをSMP(Symmetric Multi Processor)型のみのプロセッサで構築すると、シングルプロセッサの資産であるアプリケーションの移植作業の作業量が膨大になるという欠点がある。一方、マルチプロセッサを機能分散型のオペレーティングシステムのみで動作させた場合、複数のプロセッサを並列的に動作させることが困難である。複数のプロセッサを並列的に動作させるためには、複数のオペレーティングシステムを動作させることが考えられる。
特開平8−297581号公報
ただし、特許文献1の発明は、マルチプロセッサのシステムをSMP(Symmetric Multi Processor)型のみのプロセッサで構築すると、シングルプロセッサの資産であるアプリケーションの移植作業の作業量が膨大になるという欠点がある。一方、マルチプロセッサを機能分散型のオペレーティングシステムのみで動作させた場合、複数のプロセッサを並列的に動作させることが困難である。複数のプロセッサを並列的に動作させるためには、複数のオペレーティングシステムを動作させることが考えられる。
ところで、プロセッサが起動するとき、ブート処理と呼ばれる処理が行われる。マルチプロセッサのブート処理では、ブートプログラムによって各プロセッサがテスト・コードを実行する。そして、最初にテスト・コードの実行が終了したプロセッサがマスタ・プロセッサとなって他のプロセッサを初期化する(例えばXeon(登録商標)マルチプロセッサのブート処理)。
しかしながら、上記したように、複数のプロセッサを複数のOSを使って動作させることを考えた場合、プロセッサによって使用されるOSが異なる。このため、従来のマルチプロセッサのブート処理は、複数のプロセッサを複数のOSを使って動作させるマルチプロセッサを適正にブート処理することができない。
本発明は、このような点に鑑みてなされたものであって、複数のプロセッサを複数のOSを使って動作させるマルチタイプのプロセッサであって、適正にブート処理できるプロセッサ及びブート処理方法を提供することを目的とする。
本発明は、このような点に鑑みてなされたものであって、複数のプロセッサを複数のOSを使って動作させるマルチタイプのプロセッサであって、適正にブート処理できるプロセッサ及びブート処理方法を提供することを目的とする。
以上の課題を解決するため、本発明のプロセッサは、複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサであって、前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報を保存する対応情報保存手段を備え、複数の前記プロセッサのうち少なくとも一の主単位プロセッサが、前記対応情報保存手段に保存されている対応情報に基づいて、複数の前記単位プロセッサの少なくとも一部に対し、対応するオペレーティングシステムを初期化させる割込み処理を実行する初期化実行手段を備えることを特徴とする。
このような発明によれば、前記単位プロセッサの各々とOSとを対応付ける対応情報を保存しておくことができる。また、複数の単位プロセッサのうち少なくとも一の主単位プロセッサが、対応情報保存手段に保存されている対応情報に基づいて単位プロセッサの各々に対応するOSを特定することができる。そして、複数の単位プロセッサの少なくとも一部に対して割込み処理し、対応するOSの初期化(ブート処理)を実行することができる。
このため、本発明は、複数の異なるOSが混在するマルチ形式のプロセッサにあっても、各々の単位プロセッサを適正にブート処理するプロセッサを提供することができる。
また、本発明のプロセッサは、前記初期化手段が前記主単位プロセッサに対して割込み処理を実行し、前記割込み実行手段による割込み処理を実行する以前に主単位プロセッサに対する割込みを禁止する割込み禁止手段と、前記割込み禁止手段によって実行された割込み禁止を、前記割込み実行手段による割込み処理を実行するに際して解除する割込み禁止解除手段と、を備えることを特徴とする。
また、本発明のプロセッサは、前記初期化手段が前記主単位プロセッサに対して割込み処理を実行し、前記割込み実行手段による割込み処理を実行する以前に主単位プロセッサに対する割込みを禁止する割込み禁止手段と、前記割込み禁止手段によって実行された割込み禁止を、前記割込み実行手段による割込み処理を実行するに際して解除する割込み禁止解除手段と、を備えることを特徴とする。
このような発明によれば、主単位プロセッサが他の単位プロセッサに割込み処理をするための処理が割込み処理によって中断されることをなくし、プロセッサのブート処理を優先して行うことができる。また、自プロセッサが自らに割込み処理することによってブート処理することが可能になる。
また、本発明のプロセッサは、前記単位プロセッサに対して動作を指示する指示情報を外部から入力する操作手段を備え、前記対応情報保存手段は、前記対応情報を前記操作手段によって入力された指示情報に対応付けて保存すると共に、前記初期化手段は、前記指示情報に対応付けられた対応情報にしたがって前記単位プロセッサに割込み処理を実行することを特徴とする。
また、本発明のプロセッサは、前記単位プロセッサに対して動作を指示する指示情報を外部から入力する操作手段を備え、前記対応情報保存手段は、前記対応情報を前記操作手段によって入力された指示情報に対応付けて保存すると共に、前記初期化手段は、前記指示情報に対応付けられた対応情報にしたがって前記単位プロセッサに割込み処理を実行することを特徴とする。
このような発明によれば、オペレータが意図する処理に即してOSを単位プロセッサに割り当てることができる。
また、本発明のブート処理方法をコンピュータに実行させるためのプログラムは、複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサに適用されるブート処理方法をコンピュータに実行させるためのプログラムであって、複数の前記プロセッサのうち少なくとも一の主単位プロセッサに対する割込みを禁止する割込み禁止ステップと、前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報に基づいて、前記単位プロセッサの少なくとも一部に初期化の処理を割込ませる処理実行ステップと、前記割込み処理の実行に際して前記主単位プロセッサの割込み禁止を解除する割込み禁止解除ステップと、を含むことを特徴とする。
また、本発明のブート処理方法をコンピュータに実行させるためのプログラムは、複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサに適用されるブート処理方法をコンピュータに実行させるためのプログラムであって、複数の前記プロセッサのうち少なくとも一の主単位プロセッサに対する割込みを禁止する割込み禁止ステップと、前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報に基づいて、前記単位プロセッサの少なくとも一部に初期化の処理を割込ませる処理実行ステップと、前記割込み処理の実行に際して前記主単位プロセッサの割込み禁止を解除する割込み禁止解除ステップと、を含むことを特徴とする。
このような発明によれば、前記単位プロセッサの各々とOSとを対応付ける対応情報を保存しておくことができる。また、複数の単位プロセッサのうち少なくとも一の主単位プロセッサが、対応情報保存手段に保存されている対応情報に基づいて単位プロセッサの各々に対応するOSを特定することができる。そして、複数の単位プロセッサの少なくとも一部に対して割込み処理し、対応するOSの初期化(ブート処理)を実行することができる。
このため、本発明は、複数の異なるOSが混在するマルチ形式のプロセッサにあっても、各々の単位プロセッサを適正にブート処理するプログラムを提供することができる。
以下、図を参照して本発明に係るプロセッサの一実施の形態を説明する。なお、本実施形態は、本実施形態のプロセッサを、携帯電話に適用される組込みシステムとして構成したものとする。
図1は、本発明にかかる携帯電話1の機能構成を示すブロック図である。図1において、携帯電話1は、CPU(Central Processing Unit)10と、フラッシュROM20と、メモリ30と、バッファ40と、無線部50と、IrDA(Infrared Data Association)部60と、オーディオ(Audio)部70と、タイマ(Timer)80と、USB(Universal Serial Bus)インターフェース部90と、キー(KEY)操作部100と、LCD(Liquid Crystal Display)110と、カメラ(Camera)部120を含んで構成され、CPU10、フラッシュROM20、メモリ30及びバッファ40は、バスによって接続されている。また、無線部50、IrDA部60、オーディオ部70、タイマ80、USBインターフェース部90、キー操作部100、LCD110及びカメラ部120は、CPU10と直接接続されている。
CPU10は、複数のタスクを並列的に処理しながら携帯電話1全体を制御するもので、キー操作部100から入力される各種の指示信号に応じて、フラッシュROM30に記憶されたオペレーティングシステムプログラム(OS:Operating System)や各種アプリケーションプログラムを読み出して実行したり、無線部50、オーディオ部70あるいはカメラ部120等の周辺チップから入力される割込み信号に応じて、割込みハンドラを実行したりする。
例えば、CPU10は、アプリケーションにより生成されたタスクを並行して処理する。さらに、周辺チップから割込み信号が入力された場合、割込みハンドラを実行することにより、割込みに対応するプログラムを実行する。なお、アプリケーションによる処理は、OSのタスクスケジューラによって管理されるタスクとして実行されるため、OSのサービスコールを呼び出すことができ、一方、割込み処理は、タスクスケジューラによって管理されない処理(非タスク処理)である。
また、CPU10は、各種処理結果をフラッシュROM20あるいはメモリ30に格納する。
また、CPU10は、各種処理結果をフラッシュROM20あるいはメモリ30に格納する。
図2は、CPU10を説明するための図である。CPU10は、複数の単位プロセッサP0、P1、P2、P3を組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサである。
図2に示したように、CPU10は、複数の単位プロセッサP0〜P3と、割込み制御部11と、メモリ制御部12と、ハードウェアセマフォ部13とを含んで構成される。なお、ハードウェアセマフォ部13は、いずれかの単位プロセッサにOSになる権利であるセマフォ(本実施形態ではハードウェアセマフォと記す)を付与する構成である。
図2に示したように、CPU10は、複数の単位プロセッサP0〜P3と、割込み制御部11と、メモリ制御部12と、ハードウェアセマフォ部13とを含んで構成される。なお、ハードウェアセマフォ部13は、いずれかの単位プロセッサにOSになる権利であるセマフォ(本実施形態ではハードウェアセマフォと記す)を付与する構成である。
単位プロセッサP0〜P3は、このうちのいずれかがSMPを構成し、他が機能分散型プロセッサとなる。SMPとは、複数のプロセッサが同等な立場で処理を分担するマルチプロセッサである。本来、SMPでは、タスクがどのプロセッサで実行されるかを意識する必要がない。一方、機能分散型プロセッサとは、例えば通信制御、イメージ処理といった特定の処理に特化して動作するシングルプロセッサである。機能分散型プロセッサでは、タスクの割込みもプロセッサごとに処理される。
また、本実施形態は、複数のOSが動作するためにハードウェアセマフォ部13には複数のハードウェアセマフォがある。単位プロセッサP0〜P3は、各々自身に対応するOSになる権利を取得する。
本実施形態では、単位プロセッサP0、単位プロセッサP3が機能分散型プロセッサであって、単位プロセッサP1、単位プロセッサP2がSMP5を構成するものとする。なお、単位プロセッサP0〜P3は、どのように結合されてSMPを構成するものであってもよく、例えば、図3(a)、(b)に示したように構成してもよい。
本実施形態では、単位プロセッサP0、単位プロセッサP3が機能分散型プロセッサであって、単位プロセッサP1、単位プロセッサP2がSMP5を構成するものとする。なお、単位プロセッサP0〜P3は、どのように結合されてSMPを構成するものであってもよく、例えば、図3(a)、(b)に示したように構成してもよい。
図3(a)、(b)に示したSMPは、いずれも複数の単位プロセッサPuを、メモリを共有するように結合して構成されている。(a)に示した構成は、マルチプロセッサと呼ばれている構成であって、(b)に示した構成はマルチスレッドプロセッサと呼ばれている。マルチスレッドプロセッサは、マルチプロセッサよりも演算器を共有している点で単位プロセッサPuは密に結合しているという。なお、本実施形態のプロセッサは、SMPとしてマルチプロセッサ、マルチスレッドプロセッサのいずれを採用しても構成可能である。
SMPと機能分散型プロセッサとが混在する本実施形態のプロセッサは、プロセッサが複数種類のOSを有している。このため、プロセッサ内でSMPと機能分散型プロセッサとが混在することになる。SMPは、マルチプロセッサ対応OS401によって動作する。機能分散プロセッサは、OS部403a等によって動作する。したがって、本実施形態のプロセッサ上では、複数のOSが動作することになる。プロセッサが複数のOSによって動作する状態を図4に示す。
また、本実施形態のプロセッサは、単位プロセッサP0〜P3の共有エリアとなるメモリ30と、メモリ30を制御するメモリ制御部12とを備えている。本実施形態では、単位プロセッサP0〜P3の各々とOSとを対応付ける情報をメモリ30に保存する。単位プロセッサとOSとを対応付ける情報を以降初期パラメータと記し、メモリ30の初期パラメータが保存されているエリアを初期パラメータエリア220と記す。初期パラメータエリア220は、本実施形態において対応情報保存手段となる。
また、本実施形態では、複数の単位プロセッサP0〜P3のうちの少なくとも一の単位プロセッサを主単位プロセッサとする(本実施形態では単位プロセッサP0)。単位プロセッサP0は、ブート処理部210を備え、ブート処理部210が初期パラメータエリア220に保存されている初期パラメータに基づいて、複数の単位プロセッサP0〜P3の少なくとも一部に対して割込み処理を実行する。
ブート処理部210による割込みは、プロセッサに含まれる各単位プロセッサがOSを初期化するためのブート処理のため行われる。また、ブート処理部210は、単位プロセッサP0に備えられるブートローダである。ブートローダは、ROMの製造時にデータをパターニングによって記録するマスクROM等によって実現される。なお、本実施形態のプロセッサのブート処理については後に述べる。
次に、単位プロセッサP0〜P3のブート処理部210を除く内部構成について説明する。単位プロセッサP0〜P3は、ブート処理部210を除いて同様に構成されているため、代表として、単位プロセッサP0の内部構成について説明する。
単位プロセッサP0は、フェッチ部101と、デコード部102と、ALU(Arithmetic and Logical Unit)103と、レジスタファイル104と、プログラム制御部105とを含んで構成される。フェッチ部101は、後述するプログラム制御部105のプログラムカウンタが示すメモリアドレスから命令コードを読み出し、デコード部102に出力する。
単位プロセッサP0は、フェッチ部101と、デコード部102と、ALU(Arithmetic and Logical Unit)103と、レジスタファイル104と、プログラム制御部105とを含んで構成される。フェッチ部101は、後述するプログラム制御部105のプログラムカウンタが示すメモリアドレスから命令コードを読み出し、デコード部102に出力する。
デコード部102は、フェッチ部101によって入力された命令コードをデコードし、デコード結果(命令内容及びソースレジスタ、デスティネーションレジスタのアドレス等)をALU103に出力する。
ALU103は、デコード部102によって入力されたデコード結果に応じて、所定の演算を行い、演算結果をレジスタファイル104に書き込む、あるいは分岐命令等の演算結果であるブランチ先のアドレスをプログラム制御部105に出力する。
ALU103は、デコード部102によって入力されたデコード結果に応じて、所定の演算を行い、演算結果をレジスタファイル104に書き込む、あるいは分岐命令等の演算結果であるブランチ先のアドレスをプログラム制御部105に出力する。
レジスタファイル104は、ロード命令によってメモリ30から読み出されたデータや、ALU103の演算結果であるデータを記憶するレジスタ群である。後述するように、レジスタファイル103は、汎用レジスタ群と特殊レジスタ群とを含んでいて、特殊レジスタ群は、本実施形態のブート処理のためのアドレスが書き込まれる領域である。
プログラム制御部105は、単位プロセッサP0全体を制御するものであり、単位プロセッサP0のステータス(例えば、割込みの可否状態、単位プロセッサP0におけるオーバーフローの発生状態等)を記憶するステータスレジスタ(PSR)と、単位プロセッサP0が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタおい(PC)230とを含んで構成される。そして、プログラム制御部105は、単位プロセッサP0が割込み処理に移行する時点で、PSRの値を割込み処理の禁止状態に変更したり、分岐命令が実行された場合に、プログラムカウンタの値を分岐先のアドレスに変更したりする。
プログラム制御部105は、単位プロセッサP0全体を制御するものであり、単位プロセッサP0のステータス(例えば、割込みの可否状態、単位プロセッサP0におけるオーバーフローの発生状態等)を記憶するステータスレジスタ(PSR)と、単位プロセッサP0が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタおい(PC)230とを含んで構成される。そして、プログラム制御部105は、単位プロセッサP0が割込み処理に移行する時点で、PSRの値を割込み処理の禁止状態に変更したり、分岐命令が実行された場合に、プログラムカウンタの値を分岐先のアドレスに変更したりする。
また、プログラム制御部105は、実行中のタスクによってハードウェアセマフォの取得要求が出力された場合、先ず、ハードウェアセマフォの取得結果を受け取り、ステータスレジスタにおけるハードウェアセマフォの取得結果を示す領域(以下、「セマフォ取得結果レジスタ」という。)に取得に成功したことを示すフラグ(OSへの移行が許可されたことを示すフラグ)を更新する。一方、セマフォ取得に失敗した場合、取得に失敗したことを示すフラグ(OSへの移行が拒否されたことを示すフラグ)が書き込まれた場合、ハードウェアセマフォの取得を一旦停止し、待機状態から離脱する。
さらに、プログラム制御部105は、追出し禁止フラグ106を備えている。追出し禁止フラグ106は、指定された単位プロセッサにおいてタスクの切替えや外部割込みが起こり、タスクが単位プロセッサから追出されることを禁止するための機構である。追出し禁止フラグ106を1にすることによって現在単位プロセッサにあるタスクが他のタスクに切替えられることが禁止される。単位プロセッサにおけるタスクの追出しが禁止された状態を以降ロック状態とも記す。
割込み制御部11は、無線部50等の周辺チップから割込み信号が入力された場合に、割込み信号を調停した上で、所定の割込み信号を単位プロセッサP0に出力する。メモリ制御部12は、CPU10とメモリ30との間に備えられ、CPU10からメモリ30に対するデータの読み出し及び書込みが行われる場合に、メモリ30を制御してデータの入出力を行う。
ハードウェアセマフォ部13は、排他制御を実現する機構を有し、単位プロセッサP0〜P3からセマフォ取得要求があったとき、既にセマフォが獲得されている状態であれば新たな要求に対して、セマフォの獲得失敗を通知する。一方、それ以前にセマフォが獲得された状態でなければ、セマフォ取得成功の通知を単位プロセッサに返答する機能を有している。
すなわち、本実施形態では、ハードウェアセマフォを取得した単位プロセッサだけがOSを占有してタスクの処理を実行する権利を得る。このため、単位プロセッサP0〜P3のうちのいずれか1つだけがOSに移行できるので、OS同士の競合を防止する排他制御を実現できる。そして、OSによって使用されるメモリ30の所定の領域が同時にアクセスされたために処理が中断する等の不具合を防ぐことができる。
また、本実施形態では、追出し禁止フラグ106によってタスクが追出されることをOSのサービスコール終了まで禁止することができる。
さらに、本実施形態では、排他制御の実行中、プロセッサによる割込み処理の実行を禁止する。本実施形態では、割込み処理の実行禁止を割込み制御部11によって行っている。すなわち、割込み制御部11は、単位プロセッサP0〜P3のステータスが書き込まれるステータスレジスタ(図示せず)を備えている。ステータスレジスタのステータスを「割込み否」に設定することにより、割込み制御部11は、所望の単位プロセッサに対する割込み処理を禁止することができる。
さらに、本実施形態では、排他制御の実行中、プロセッサによる割込み処理の実行を禁止する。本実施形態では、割込み処理の実行禁止を割込み制御部11によって行っている。すなわち、割込み制御部11は、単位プロセッサP0〜P3のステータスが書き込まれるステータスレジスタ(図示せず)を備えている。ステータスレジスタのステータスを「割込み否」に設定することにより、割込み制御部11は、所望の単位プロセッサに対する割込み処理を禁止することができる。
次に、本実施形態のプロセッサで行われるブート処理について説明する。図5は、本実施形態のプロセッサで行われるブート処理のうち、単位プロセッサP0が他の単位プロセッサに対して行う処理を説明するためのフローチャートである。図5に示したように、単位プロセッサP0は、ブート処理部210によってブート処理を開始する。なお、ブート処理部210は、ブート処理は、自身(単位プロセッサP0)に対する割込みによって行われる。なお、本実施形態では、ブート処理部210が携帯電話1の操作手段となるキー操作部100等のキーや電源投入スイッチが操作されたときにブート処理を開始するものとする。
キー操作部100が操作されると、ブート処理部210は、先ず、自身のハードウェアを初期化する(S501)。そして、ブート処理が割込みによって中断されることを防ぐため、割込み制御部11を介して単位プロセッサP0を割込み禁止に設定する(S502)。そして、メモリ30の初期パラメータエリア220にアクセスしてブート処理すべき単位プロセッサの初期パラメータを参照して取り出す(S503)。
図6は、ステップS503で参照される初期パラメータの構成を説明するための図である。本実施形態では、互いに異なるOS部を使用する機能分散型の単位プロセッサP0、単位プロセッサP3、マルチプロセッサ対応OS401を使用する単位プロセッサP1、単位プロセッサP2の3セット分の初期パラメータが用意されている。1セットの初期パラメータの各々を要素という。図6に示した3要素の初期パラメータは、各OSと対応するプロセッサの数、OS識別番号、OSと対応付けられたプロセッサのリセットアドレスを少なくとも含んでいる。
リセットアドレスは、単位プロセッサのPC230のカウント値をリセットするため設定されるアドレスである。リセットアドレスは、OSによって固有のアドレス値である。
なお、初期パラメータエリア220には、OSを共有する単位プロセッサごとに単位プロセッサの情報を保存しておく領域があって、この領域がコード領域とデータ領域に分けられる。コード領域は、単位プロセッサP0〜P3のレジスタ104の汎用レジスタ群や特殊レジスタ群、PC230の内容が書き込まれる領域である。また、データ領域は、各単位プロセッサの処理に使用される他のデータが書き込まれる領域である。
なお、初期パラメータエリア220には、OSを共有する単位プロセッサごとに単位プロセッサの情報を保存しておく領域があって、この領域がコード領域とデータ領域に分けられる。コード領域は、単位プロセッサP0〜P3のレジスタ104の汎用レジスタ群や特殊レジスタ群、PC230の内容が書き込まれる領域である。また、データ領域は、各単位プロセッサの処理に使用される他のデータが書き込まれる領域である。
図6に示した初期パラメータは、コード領域に保存されている。メモリ30の初期パラメータエリア220に書き込まれる情報と各単位プロセッサP0〜P7との対応関係を、図7に示す。
次に、ブート処理部210は、単位プロセッサP0〜P3のコード領域から取り出された3要素分のOSリセットアドレスを単位プロセッサP0のレジスタ104にある特殊レジスタに設定する。同様に、OS識別情報も特殊レジスタに設定される(S504)。
次に、ブート処理部210は、単位プロセッサP0〜P3のコード領域から取り出された3要素分のOSリセットアドレスを単位プロセッサP0のレジスタ104にある特殊レジスタに設定する。同様に、OS識別情報も特殊レジスタに設定される(S504)。
以上の処理の後、ブート処理部210は、単位プロセッサP0、単位プロセッサP1、単位プロセッサP3に対してOSを初期化する処理を割込ませる(S505)。なお、本実施形態では、単位プロセッサP1と共にSMPを構成する単位プロセッサP2には割込みを発生させないものとした。マルチプロセッサ対応OS401の初期化は、単位プロセッサP1によって行われる。
ブート処理部210は、単位プロセッサP0、単位プロセッサP1、単位プロセッサP3の全ての要素について以上の処理が終了するまで処理を繰り返す。そして、処理が終了したと判断すると(S506:Yes)、単位プロセッサP0に対する割込みを解除し(S507)、ブート処理を終了する。
ブート処理部210は、単位プロセッサP0、単位プロセッサP1、単位プロセッサP3の全ての要素について以上の処理が終了するまで処理を繰り返す。そして、処理が終了したと判断すると(S506:Yes)、単位プロセッサP0に対する割込みを解除し(S507)、ブート処理を終了する。
図8は、割込みがされた単位プロセッサ(例えば単位プロセッサP1)によって行われる処理を説明するためのフローチャートである。図8に示すように、単位プロセッサP1は、割込みを受け付け、特殊レジスタに設定されたOSリセットアドレスをPC230に設定する。PC230への設定により、単位プロセッサP1の処理は、マルチプロセッサ対応OS401を初期化する処理にジャンプする(S801)。
次に、単位プロセッサP1は、レジスタ104の内容を初期化し(S802)、ブート処理を実行してマルチプロセッサ対応OS401を読出し、初期化する(S803)。以上の処理の後、単位プロセッサP1は、ディスパッチ処理に移行し、優先度に応じてタスクの処理を実行する。
なお、本実施形態は、前記したようにプロセッサが自プロセッサに対しても割込みを行うことが可能である。したがって、図8で示すフローチャートは、単位プロセッサP0が単位プロセッサP0に割込みをした場合にも同様に実行される。
なお、本実施形態は、前記したようにプロセッサが自プロセッサに対しても割込みを行うことが可能である。したがって、図8で示すフローチャートは、単位プロセッサP0が単位プロセッサP0に割込みをした場合にも同様に実行される。
図8のフローチャートに示した処理は、単位プロセッサP0においても同様に行われる。ただし、単位プロセッサP0は、ステップS802においてOS部403aを初期化する。また、単位プロセッサP3も図8のフローチャートに示した処理を実行し、ステップS802においてOS部403bを初期化する。
図5、図8で述べた本実施形態のブート方法をコンピュータに実行させるためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フロッピー(登録商標)ディスク(FD)、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態のブート方法をコンピュータに実行させるためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
図5、図8で述べた本実施形態のブート方法をコンピュータに実行させるためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フロッピー(登録商標)ディスク(FD)、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態のブート方法をコンピュータに実行させるためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
さらに、以上述べた本実施形態のブート方法をコンピュータに実行させるためのプログラムは、コンピュータで読み取り可能なROM、フラッシュメモリ、メモリカード、USB接続型フラッシュメモリ等のメモリデバイスに記録されて提供してもよい。
以上述べた本実施形態は、単位プロセッサP0が、初期パラメータエリア220に保存されている初期パラメータに基づいて単位プロセッサの各々に対応するOSを特定することができる。そして、複数の単位プロセッサの少なくとも一部に対して割込み処理し、各単位プロセッサがブート処理を実行することができる。このため、本発明は、複数の異なるOSが混在するマルチ形式のプロセッサにあっても、各々の単位プロセッサを適正にブート処理することができる。
以上述べた本実施形態は、単位プロセッサP0が、初期パラメータエリア220に保存されている初期パラメータに基づいて単位プロセッサの各々に対応するOSを特定することができる。そして、複数の単位プロセッサの少なくとも一部に対して割込み処理し、各単位プロセッサがブート処理を実行することができる。このため、本発明は、複数の異なるOSが混在するマルチ形式のプロセッサにあっても、各々の単位プロセッサを適正にブート処理することができる。
また、本実施形態は、1のOSについて初期化パラメータを1つだけ保存する構成に限定されるものではない。例えば、キー操作部100のキーや電源投入スイッチ、さらにはカメラ部120の操作の情報を単位プロセッサに対して動作を指示する指示情報としてブート処理部210が入力する。指示情報に対応付けて初期パラメータを保存し、ブート処理部210が指示情報に対応する初期パラメータにしたがって単位プロセッサに割込みを実行すれば、オペレータが意図する操作に即して単位プロセッサを動作させることができる。
なお、指示情報に対応した初期パラメータとは、例えば、指示情報の内容に応じて初期化の対象となる単位プロセッサが相違する複数の初期パラメータをいう。
5 SMP 11 割込み制御部、12 メモリ制御部、13 ハードウェアセマフォ部、30 メモリ、210 ブート処理部、220 初期パラメータスエリア、230 PC、401 マルチプロセッサ対応OS、403a,403b,403c OS部、601 状態フラグエリア、602 コマンドエリア、603、604、605 エリア、606 終了情報エリア、P0,P1,P2,P3 単位プロセッサ
Claims (4)
- 複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサであって、
前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報を保存する対応情報保存手段を備え、
複数の前記単位プロセッサのうち少なくとも一の主単位プロセッサが、前記対応情報保存手段に保存されている対応情報に基づいて、複数の前記単位プロセッサの少なくとも一部に対し、対応するオペレーティングシステムを初期化させる割込み処理を実行する初期化実行手段を備えることを特徴とするプロセッサ。 - 前記初期化手段が前記主単位プロセッサに対して割込み処理を実行し、
前記割込み実行手段による割込み処理を実行する以前に主単位プロセッサに対する割込みを禁止する割込み禁止手段と、
前記割込み禁止手段によって実行された割込み禁止を、前記割込み実行手段による割込み処理を実行するに際して解除する割込み禁止解除手段と、
を備えることを特徴とする請求項1に記載のプロセッサ。 - 前記単位プロセッサに対して動作を指示する指示情報を外部から入力する操作手段を備え、
前記対応情報保存手段は、前記対応情報を前記操作手段によって入力された指示情報に対応付けて保存すると共に、前記初期化手段は、前記指示情報に対応付けられた対応情報にしたがって前記単位プロセッサに割込み処理を実行することを特徴とする請求項1または2に記載のプロセッサ。 - 複数の単位プロセッサを組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるプロセッサに適用されるブート処理方法をコンピュータに実行させるためのプログラムであって、
複数の前記プロセッサのうち少なくとも一の主単位プロセッサに対する割込みを禁止する割込み禁止ステップと、
前記単位プロセッサの各々と前記オペレーティングシステムとを対応付ける対応情報に基づいて、前記単位プロセッサの少なくとも一部に初期化の処理を割込ませる処理実行ステップと、
前記割込み処理の実行に際して前記主単位プロセッサの割込み禁止を解除する割込み禁止解除ステップと、
を含むことを特徴とするブート処理方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005366570A JP2007172145A (ja) | 2005-12-20 | 2005-12-20 | プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005366570A JP2007172145A (ja) | 2005-12-20 | 2005-12-20 | プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007172145A true JP2007172145A (ja) | 2007-07-05 |
Family
ID=38298650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005366570A Pending JP2007172145A (ja) | 2005-12-20 | 2005-12-20 | プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007172145A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009054035A (ja) * | 2007-08-28 | 2009-03-12 | Nec Computertechno Ltd | サーバシステム、パーティション起動制御装置、パーティション起動制御方法 |
KR101759411B1 (ko) | 2013-03-15 | 2017-07-18 | 인텔 코포레이션 | 보안 보조 프로세서 부팅 성능 |
-
2005
- 2005-12-20 JP JP2005366570A patent/JP2007172145A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009054035A (ja) * | 2007-08-28 | 2009-03-12 | Nec Computertechno Ltd | サーバシステム、パーティション起動制御装置、パーティション起動制御方法 |
KR101759411B1 (ko) | 2013-03-15 | 2017-07-18 | 인텔 코포레이션 | 보안 보조 프로세서 부팅 성능 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3976065B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム | |
US9003422B2 (en) | Microprocessor architecture having extendible logic | |
JP2000506639A (ja) | 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置 | |
US8458726B2 (en) | Bios routine avoidance | |
US9690572B2 (en) | System and method for updating firmware in real-time | |
JP4033215B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム | |
CN112579162A (zh) | 异构isa平台上硬件和软件协调的对高级特征选入的方法 | |
JP2007035066A (ja) | マルチos構成方法 | |
US7412597B2 (en) | Computer system and booting method thereof | |
JP2007172145A (ja) | プロセッサ及びブート処理方法をコンピュータに実行させるためのプログラム | |
JP5328410B2 (ja) | 被起動オペレーティングシステム(os)動作計算機、計算機のos起動方法およびos起動プログラム | |
US10007553B2 (en) | Method for configuring an it system, corresponding computer program and it system | |
JP4441592B2 (ja) | 並列処理装置及び排他制御方法 | |
JP5997868B2 (ja) | デバイスプロキシ装置及びその制御方法 | |
JP4797422B2 (ja) | プロセッサおよびディスパッチ制御方法 | |
JP2007172311A (ja) | プロセッサ | |
JP7276755B2 (ja) | 処理速度整合回路およびマイクロプロセッサ | |
JP4389797B2 (ja) | プロセッサおよび情報処理方法 | |
JP2005275703A (ja) | プロセッサ及びコンテキスト切り替え方法 | |
JP2007018071A (ja) | マルチプロセッサシステム、マルチプロセッサシステムの起動方法、ブートプログラムおよび携帯端末 | |
JP2003242129A (ja) | プロセッサ増減設方法及び計算機システム | |
JP2007219938A (ja) | プロセッサ | |
JPH10340190A (ja) | 中央演算処理装置 | |
JPH04256027A (ja) | マイクロコンピュータ |