Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
STARTING-UP CONTROL METHOD FOR OPERATING SYSTEM AND INFORMATION PROCESSING DEVICE
Document Type and Number:
WIPO Patent Application WO/2008/093638
Kind Code:
A1
Abstract:
A starting-up control method for an operating system is characterized in comprising a step that makes a specific processor (IPL(0)) continue operating but the other processors (IPL(1)-IPL(N)) stop operating out of a plurality of processors (IPL(0)-IPL(N)) started up by turning on an electric power source, a step that makes an OS bridge for the management of a hardware resource shared by a plurality of processors start up by the specific processor (IPL(0)), and a step that makes an operating system (OS-0) corresponding to the specific processor and operating systems ((OS-1)-(OS-N)) corresponding to the other processors start up by the started-up OS bridge.

Inventors:
OKAMOTO KEISUKE (JP)
KUSUMOTO TAKASHI (JP)
Application Number:
PCT/JP2008/051209
Publication Date:
August 07, 2008
Filing Date:
January 28, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TOYOTA MOTOR CO LTD (JP)
OKAMOTO KEISUKE (JP)
KUSUMOTO TAKASHI (JP)
International Classes:
G06F9/445; G06F15/177
Foreign References:
JPH06295289A1994-10-21
JPH086914A1996-01-12
JPH0736704A1995-02-07
JP2006350406A2006-12-28
JPH10116262A1998-05-06
Other References:
See also references of EP 2128759A4
Attorney, Agent or Firm:
ITOH, Tadahiko (Yebisu Garden Place Tower20-3, Ebisu,4-Chome, Shibuya-Ku, Tokyo 32, JP)
Download PDF:
Claims:
 複数のプロセッサのそれぞれによって処理されるオペレーティングシステムの起動を制御する、オペレーティングシステムの起動制御方法であって、
 前記複数のプロセッサに電源が投入されたことにより起動したイニシャルプログラムローダのうち、特定のプロセッサのイニシャルプログラムローダのみ動作を継続させ、前記特定のプロセッサ以外の他のプロセッサのイニシャルプログラムローダの動作を停止させるステップと、
 前記特定のプロセッサのイニシャルプログラムローダによって、前記複数のプロセッサが共有するハードウェア資源を管理する管理プログラムを起動させるステップと、
 前記起動した管理プログラムによって、前記特定のプロセッサに対応するオペレーティングシステム及び前記他のプロセッサに対応するオペレーティングシステムを起動させるステップと、を備えることを特徴とする、オペレーティングシステムの起動制御方法。
 請求項1に記載のオペレーティングシステムの起動制御方法であって、
 前記複数のプロセッサのそれぞれに対応するオペレーティングシステムが同じ場合、
 前記特定のプロセッサのイニシャルプログラムローダによって、前記管理プログラムを起動させないまま、前記特定のプロセッサに対応するオペレーティングシステムを起動させた後に、
 前記特定のプロセッサに対応するオペレーティングシステムによって、前記他のプロセッサに対応するオペレーティングシステムを起動させる、オペレーティングシステムの起動制御方法。
 請求項1又は2に記載のオペレーティングシステムの起動制御方法であって、
 前記複数のプロセッサは、マルチコアプロセッサ内のプロセッサコアである、オペレーティングシステムの起動制御方法。
 電源が投入されたことによりイニシャルプログラムローダが起動するプロセッサを複数有する、情報処理装置であって、
 前記複数のプロセッサのうち、
 前記起動したイニシャルプログラムローダの動作が継続する特定のプロセッサと、
 前記起動したイニシャルプログラムローダの動作が停止する他のプロセッサとを備え、
 前記特定のプロセッサのイニシャルプログラムローダによって、前記複数のプロセッサが共有するハードウェア資源を管理する管理プログラムを起動させるとともに、
 前記起動した管理プログラムによって、前記特定のプロセッサに対応するオペレーティングシステム及び前記他のプロセッサに対応するオペレーティングシステムを起動させる、ことを特徴とする、情報処理装置。
 請求項4に記載の情報処理装置であって、
 前記複数のプロセッサのそれぞれに対応するオペレーティングシステムが同じ場合、
 前記特定のプロセッサのイニシャルプログラムローダによって、前記管理プログラムを起動させないまま、前記特定のプロセッサに対応するオペレーティングシステムを起動させた後に、
 前記特定のプロセッサに対応するオペレーティングシステムによって、前記他のプロセッサに対応するオペレーティングシステムを起動させる、情報処理装置。
 請求項4又は5に記載の情報処理装置であって、
 前記複数のプロセッサは、マルチコアプロセッサ内のプロセッサコアである、情報処理装置。
Description:
オペレーティングシステムの起 制御方法及び情報処理装置

 本発明は、複数のオペレーティングシス ム(OS:Operating System)を起動させる技術に関す る。

 従来、複数のプロセッサを並列に動作さ る技術が知られている(例えば、特許文献1 照)。特許文献1の開示内容によると、起動時 に、システム全体を管理するプライマリプロ セッサが、プライマリシステムディスク内の OSを読み込んで、プライマリプロセッサから 動作要求に応じてグループ全体を動作管理 る各グループマスタプロセッサに対して並 に起動をかけている。そして、起動した各 ループマスタプロセッサが、グループシス ムディスク内のOSを読み込んで、自グルー 内の各セカンダリプロセッサを起動してい 。このように動作させることによって、各 ループマスタプロセッサや各セカンダリプ セッサを並列起動することを行っている。

 また、複数のOSを並行して稼働させる技術 して、仮想マシンシステムが知られている 仮想マシンシステムは、プロセッサや記憶 置などの実ハードウェア(物理資源)を仮想化 して、複数のハードウェア環境(仮想マシン) 生成し、各仮想マシンにおいて個々のOSを 作させることができるシステムである。

特開平10-116262号公報

 ところで、複数のプロセッサコアから構 されるマルチコアプロセッサを搭載する又 複数のプロセッサを搭載するマルチプロセ サシステムにおいて、OSの起動を高速化す 技術の開発が進められている。

 この点、上述の特許文献1に開示の従来技 術では、プライマリプロセッサ、各グループ マスタプロセッサ、各セカンダリプロセッサ というように、順次起動していくため、マル チプロセッサシステムが有している各OSの起 の高速化には限界がある。

 一方、上述の従来の仮想マシンシステム は、ホストOSがシステムの共有ハードウェ を一元管理する機能を担うため、ホストOSは ゲストOSよりも先に起動が完了している必要 ある。その結果、マルチプロセッサシステ が有している各OSの起動の高速化を図るこ ができず、処理の高速化を図るためにマル プロセッサシステムを採用したとしても、 の利点を生かすことができなかった。

 そこで、本発明は、マルチプロセッサシ テムが有している各OSの起動を高速化でき 、オペレーティングシステムの起動制御方 及び情報処理装置の提供を目的とする。

 上記目的を達成するため、第1の発明は、
 複数のプロセッサのそれぞれによって処理 れるオペレーティングシステムの起動を制 する、オペレーティングシステムの起動制 方法であって、
 前記複数のプロセッサに電源が投入された とにより起動したイニシャルプログラムロ ダのうち、特定のプロセッサのイニシャル ログラムローダのみ動作を継続させ、前記 定のプロセッサ以外の他のプロセッサのイ シャルプログラムローダの動作を停止させ ステップと、
 前記特定のプロセッサのイニシャルプログ ムローダによって、前記複数のプロセッサ 共有するハードウェア資源を管理する管理 ログラムを起動させるステップと、
 前記起動した管理プログラムによって、前 特定のプロセッサに対応するオペレーティ グシステム及び前記他のプロセッサに対応 るオペレーティングシステムを起動させる テップと、を備えることを特徴としている

 また、第2の発明は、第1の発明に係るオ レーティングシステムの起動制御方法であ て、前記複数のプロセッサのそれぞれに対 するオペレーティングシステムが同じ場合 前記特定のプロセッサのイニシャルプログ ムローダによって、前記管理プログラムを 動させないまま、前記特定のプロセッサに 応するオペレーティングシステムを起動さ た後に、前記特定のプロセッサに対応する ペレーティングシステムによって、前記他 プロセッサに対応するオペレーティングシ テムを起動させる、ことを特徴としている

 また、第3の発明は、第1又は第2の発明に るオペレーティングシステムの起動制御方 であって、前記複数のプロセッサは、マル コアプロセッサ内のプロセッサコアである とを特徴としている。

 一方、上記目的を達成するため、第4の発明 は、
 電源が投入されたことによりイニシャルプ グラムローダが起動するプロセッサを複数 する、情報処理装置であって、
 前記複数のプロセッサのうち、
 前記起動したイニシャルプログラムローダ 動作が継続する特定のプロセッサと、
 前記起動したイニシャルプログラムローダ 動作が停止する他のプロセッサとを備え、
 前記特定のプロセッサのイニシャルプログ ムローダによって、前記複数のプロセッサ 共有するハードウェア資源を管理する管理 ログラムを起動させるとともに、
 前記起動した管理プログラムによって、前 特定のプロセッサに対応するオペレーティ グシステム及び前記他のプロセッサに対応 るオペレーティングシステムを起動させる ことを特徴としている。

 また、第5の発明は、第4の発明に係る情報 理装置であって、
 前記複数のプロセッサのそれぞれに対応す オペレーティングシステムが同じ場合、前 特定のプロセッサのイニシャルプログラム ーダによって、前記管理プログラムを起動 せないまま、前記特定のプロセッサに対応 るオペレーティングシステムを起動させた に、前記特定のプロセッサに対応するオペ ーティングシステムによって、前記他のプ セッサに対応するオペレーティングシステ を起動させる、ことを特徴としている。

 また、第6の発明は、第4又は第5に係る情 処理装置であって、前記複数のプロセッサ 、マルチコアプロセッサ内のプロセッサコ であることを特徴としている。

 本発明によれば、本発明は、マルチプロ ッサシステムが有している各OSの起動を高 化できる。

本発明に係る情報処理装置の実施形態 あるコンピュータ100のハードウェア構成の 例を示した図である。 OSブリッジ50の概念図である。 本発明に係るオペレーティングシステ の起動制御方法の概要を説明するための図 ある。 2コア構成のマルチコアプロセッサで2 のOSを並列に起動する場合の処理フローであ る。 2コア構成のマルチコアプロセッサで2 のOSが同じ場合に並列に起動する場合の処理 フローである。

符号の説明

 10 マルチコアプロセッサ
 20 RAM
 30 ROM
 40 入出力装置(I/O)
 50 OSブリッジ

 以下、図面を参照しながら、本発明を実 するための最良の形態の説明を行う。図1は 、本発明に係る情報処理装置の実施形態であ るコンピュータ100のハードウェア構成の一例 を示した図である。コンピュータ100は、例え ば、車両制御機能を担うコンピュータ(制御 ECU)やマルチメディア機能を担うコンピュー (情報系ECU)である。制御系ECUの具体例とし 、エンジンを制御するエンジンECU、操舵動 を制御するステアリングECU、制動動作を制 するブレーキECUなどが挙げられる。情報系EC Uの具体例として、カーナビゲーション用コ ピュータ、DVDやビデオ用コンピュータ、イ ターネットアクセス用コンピュータ、他車 路側インフラや管理センター等の車外通信 備と通信するための通信用コンピュータな が挙げられる。

 コンピュータ100は、図1に示されるように 、OSやそのOS上で動作する上述の車両制御機 やエンジン制御機能を実現するアプリケー ョンプログラムなどのプログラムを記憶す ROM(不揮発性メモリ)30と、そのプログラムを 理するマルチコアプロセッサ10と、そのプ グラムの作業領域であるRAM(揮発性メモリ)20 、図示しない入力回路や出力回路などの外 装置との間で信号を送受するためのインタ フェースであるI/O40などを有する。

 コンピュータ100は、図1に示されるように 、プロセッサコアを複数有するマルチコアプ ロセッサ10を有している。マルチコアプロセ サは、2つ以上のプロセッサコアを1個のパ ケージに集積したマイクロプロセッサであ 。マルチコアプロセッサ内のプロセッサコ は、互いに独立して動作する。マルチコア ロセッサ10には、プロセッサコア0,1,2,3の4つ プロセッサコアが内蔵される。コア0,1,2,3の それぞれによって、独立に又は連携して、OS そのOS上で動作する上述の車両制御機能や ンジン制御機能を実現するアプリケーショ プログラムなどのプログラムが処理される コア0,1,2,3のそれぞれは、プログラムの実行 指示する割り込みが発生すると、そのプロ ラムをROM30からRAM20に読み込んで実行する。

 コア0,1,2,3によって処理されるOSの具体例 して、リアルタイムOS(以下、「RT-OS」とい )やマルチメディアOS(以下、「MM-OS」という) どが挙げられる。各コアによって処理され OSは、必ずしも同じOSとは限らず、異なるOS もよい。マルチプロセッサシステムをその 成プロセッサ毎に独立して運用可能なシス ム(パーティション)に分割することにより 数のOSを並列に運用可能にすることによって 、システムの多様化や大規模化に対応するこ とができる。

 RT-OSは、処理をリアルタイムに実行する とを重視するため、バッチ処理やTSS(Time Shar ing System)などの機能が優れたOSである。車両 御を行う制御系ECUに用いられる制御プログ ムでは制御応答性や安全性の確保などの観 から所定の処理をリアルタイムに実行する 要があるため、要求されるリアルタイム性 実現できるRT-OSが制御系ECUには使用される RT-OSの具体例として、OSEC、ITRONなどが挙げら れる。

 MM-OSは、MPEGのCodec等の圧縮/伸張処理、GUI( Graphical User Interface)等のユーザインターフェ ース処理、セキュリティ管理を含むインター ネット接続処理などのマルチメディア処理が RT-OSに比べ優れたOSである。要求されるマル メディア処理を実現できるMM-OSが情報系ECUに は使用される。MM-OSの具体例として、Linux(登 商標)、QNX(登録商標)などが挙げられる。

 マルチコアプロセッサ10に電源回路(不図 )から電源が供給されると、その内蔵のコア 0,1,2,3にも電源が供給される。電源が供給さ たコア0,1,2,3のうち、コア0のIPL(Initial Program Loader)は、ROM30に記憶されたOSブリッジ50(プロ グラム)をRAM20に読み込んで起動する。IPLは、 ブート段階においてメモリの初期化等のOS起 のための準備処理を行うプログラムである

 図2は、OSブリッジ50の概念図である。OSブ リッジ50は、RAM20やI/O40などの各コアが共有す るハードウェア資源を管理し、それらのハー ドウェア資源に対する排他的アクセス制御を 実行する(共有ハードウェア管理機能)。すな ち、OSブリッジ50は、例えば所定のタスク切 り替えの発生タイミングや所定の周期に応じ て、コア0によって動作するOS-0,コア1によっ 動作するOS-1,・・・,コアNによって動作するO S-Nのそれぞれに、共有するハードウェア資源 を割り当てる処理を実行する。また、OSブリ ジ50は、各OSを起動する機能を有する。さら に、OSブリッジ50が各OSを起動した後でも、起 動した各OSはOSブリッジ50を呼び出してその共 有ハードウェア管理機能を利用可能な構成と する。

 図3は、本発明に係るオペレーティングシ ステムの起動制御方法の概要を説明するため の図である。図3は、マルチプロセッサシス ムをその構成プロセッサ毎にN個のパーティ ョンに分割していることを表現している。 ルチプロセッサシステムへの電源の投入に って(ステップ10)、電源が供給された各コア のIPLは起動する(ステップ12,14,16)。システム 源の投入後、コア0以外のコア1のIPL(1)~コアN IPL(N)は停止し(ステップ18,20)、コア0のIPL(0) 最低限のメモリシステムの初期化などの動 環境の設定後にOSブリッジ(0)を起動する(ス ップ22)。IPL(0)によって起動したOSブリッジ(0) は、コア間の通信に必要なシステムの初期化 を行った後に、停止している他のコア(1)~(N) 起床させる(ステップ24,26)。起床した他のコ (1)~(N)のそれぞれは、最低限のメモリシステ ムの初期化などの動作環境の設定後にOSブリ ジ(1)~(N)を起動する。これによって、コア毎 にOSブリッジが並列に動作することとなる。

 次に、各コアによって動作するOSブリッ のそれぞれは、ROM30等の不揮発性メモリから 自コアのコア番号を取得し、コア番号とコア に搭載されるべきOSとの既定の対応関係に基 いて起動すべきOSを選択し、選択されたOSの エントリポイントに制御を移す。そして、各 コアは、並列して、自コアに対応するOSの起 処理を開始する。各OSの起動処理において OS間で共有するハードウェア資源にアクセス する場合には、OSブリッジの共有ハードウェ 管理によって排他アクセス制御を行うこと ハードウェア資源の競合を回避する。

 図4は、2コア構成のマルチコアプロセッ で2つのOSを並列に起動する場合の処理フロ である。コア0用のIPLを格納する格納装置が ア0に接続されているとともに、コア1用のIP Lを格納する格納装置がコア1に接続されてい 。これらの格納装置は、例えばROM20である システム電源投入後(ステップ40)、OSの起動 備を行うブート段階において、電源の投入 されたコア0でコア0用のIPL(0)が起動し(ステ プ42)、電源が投入されたコア1でコア1用のIPL (1)が起動する(ステップ44)。そして、IPL(1)は 必要最小限の初期設定をした後に、一旦、 ア1を待機状態に休眠させる。一方、IPL(0)は ROM30からOSブリッジをRAM20に読み込むことでO Sブリッジ(0)を起動する(ステップ46)。コア0に よって動作するOSブリッジ(0)は、休眠してい コア1を起床させる。起床したコア1のIPL(1) 、ROM30からOSブリッジをRAM20に読み込むこと OSブリッジ(1)を起動する(ステップ48)。この 階で、コア0とコア1のそれぞれで、OSブリッ が並列に動作している。

 そして、OSブリッジ(0)は、コア0に対応す OS-0を選択し、OS-0のエントリポイントに移 ことによって、OS-0を起動する。これによっ 、コア0によってOS-0(0)の起動処理が開始す 。並行して、同様に、OSブリッジ(1)は、コア 1に対応するOS-1を選択し、OS-1のエントリポイ ントに移ることによって、OS-1を起動する。 れによって、コア1によってOS-1(1)の起動処理 が開始する。

 それぞれのOSの起動処理が開始すると、 知のOS起動処理の通り、カーネルの処理化と ユーザインターフェース部の初期化が行われ る。カーネルの初期化段階では、ハードウェ アに依存する部分から依存しない部分に順番 に初期化が行われ、CPUアーキテクチャ依存部 の初期化(ステップ50,52)、システム依存部の 期化(ステップ56,58)、ハードウェア非依存部 初期化(ステップ62,64)が行われる。ここで、 コア0によって起動中のOS-0(0)とコア1によって 起動中のOS-1(1)のそれぞれは、CPUアーキテク ャ依存部やシステム依存部の初期化段階に いて、OSブリッジを呼び出してその共有ハー ドウェア機能を利用することによって、ハー ドウェア資源が競合することを回避する(ス ップ54,60)。

 そして、ユーザインターフェース部の初 化段階において、スケジューリングが開始 る(ステップ66,68)。スケジューリングの開始 によって実行定常状態に移行し(ステップ70,72 )、OSによるサービスが起動する。すなわち、 OSの起動が完了する。

 図5は、2コア構成のマルチコアプロセッ で2つのOSが同じ場合に並列に起動する場合 処理フローである。マルチコアプロセッサ 有するシステムにおいて、複数のコアで同 のOSを並列で実行する場合には、IPLからOSブ ッジをスキップして直接OS起動することが 能となる。この場合、OSブリッジではなくOS 身が休眠する他のコアを活性化し、CPU-IDを 定の上、どのハードウェアを使用するかな のコア毎の動作を変えることができる。図4 の場合と同様に、各OSが同時並列で初期化処 を行う上で、共有ハードウェアの排他アク ス制御を行うために、OS実行中でもOSブリッ ジの共有ハードウェア管理機能の呼び出しを 可能にする。

 図4の場合と同様に、システム電源投入後 (ステップ80)、OSの起動準備を行うブート段階 において、電源の投入がされたコア0でコア0 のIPL(0)が起動し(ステップ82)、電源が投入さ れたコア1でコア1用のIPL(1)が起動する(ステッ プ84)。そして、IPL(1)は、必要最小限の初期設 定をした後に、一旦、コア1を待機状態に休 させる。

 そして、IPL(0)は、自コアのコア番号を取 することによってID判定を行うことによっ コア0に対応するOS-0を選択する。そして、IPL (0)は、OS-0のエントリポイントへの移動によ て、OS-0を起動する。これによって、コア0に よってOS-0(0)の起動処理が開始する。コア0に って動作するOS-0(0)は、休眠しているコア1 コア番号を取得することによってID判定を行 うことによってコア1に対応するOS-0を選択し OS-0のエントリポイントに移ることによって 、OS-0を起動する(ステップ88)。これによって コア1によってOS-0(1)の起動処理が開始する それぞれのOSの起動処理が開始すると、その 後は、図4と同様のため、説明を省略する。 まり、プロセッサ間でOSが同一である図5の 合、起動したOSの中で休眠しているコアのOS 起動している一方で、プロセッサ間でOSが なる図4の場合、OSが起動する前に休眠して るコアのOSを起動している。

 したがって、上述の実施例によれば、複 のプロセッサコアを並行して起動する場合 共有ハードウェア管理機能をOSブリッジと てOSから取り出すことによって、各コアの起 動の高速化(すなわち、各コアの起動タイミ グの前だし)を図ることができる。例えば、 ア0がホストOSを動作させ、それ以外の他の アがゲストOSを動作させる場合、従来ホス OSに含まれていた共有ハードウェア管理機能 をホストOSから分離することによって、コア0 のホストOS起動が完了していなくても他のコ のゲストOSを起動することができるととも 、共有ハードウェア管理機能を有するOSブリ ッジで各OSによるハードウェア資源の競合を 避することができる。

 また、複数のコアが同一のOSを使用する 合には、OSブリッジによる起動処理をスキッ プしてコア0のOSが他のOSを起動するので、よ 一層に起動の高速化を図ることができる。

 以上、本発明の好ましい実施例について 説したが、本発明は、上述した実施例に制 されることはなく、本発明の範囲を逸脱す ことなく、上述した実施例に種々の変形及 置換を加えることができる。

 例えば、上述の実施例では、マルチコア ロセッサ内の複数のプロセッサコアを対象 していたが、複数のシングルコアプロセッ を対象としてもよい。また、上述の実施例 コアの数に特に限定しなくてもよい。

 本国際出願は、2007年1月29日に出願した日 本国特許出願2007-018153号に基づく優先権を主 するものであり、2007-018153号の全内容を本 際出願に援用する。