JPWO2011114476A1 - マルチコアプロセッサシステム、通知プログラム、および通知方法 - Google Patents

マルチコアプロセッサシステム、通知プログラム、および通知方法 Download PDF

Info

Publication number
JPWO2011114476A1
JPWO2011114476A1 JP2012505383A JP2012505383A JPWO2011114476A1 JP WO2011114476 A1 JPWO2011114476 A1 JP WO2011114476A1 JP 2012505383 A JP2012505383 A JP 2012505383A JP 2012505383 A JP2012505383 A JP 2012505383A JP WO2011114476 A1 JPWO2011114476 A1 JP WO2011114476A1
Authority
JP
Japan
Prior art keywords
boot program
access
old
cpu
core
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
Application number
JP2012505383A
Other languages
English (en)
Inventor
浩一郎 山下
浩一郎 山下
宏真 山内
宏真 山内
清志 宮▲崎▼
清志 宮▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2011114476A1 publication Critical patent/JPWO2011114476A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

新ブートプログラムのダウンロードおよび静的ベリファイが終了し、緊急度が低い場合(ステップS1503:低)、旧OS(マスタ)(122)が、旧ブートプログラムを用いてブートしたコアのうち、プロセスが割り当てられていないコアがあるか否かを判断する(ステップS1505)。旧OS(マスタ)(122)が、プロセスが割り当てられていないコアがあると判断した場合(ステップS1505:Yes)、ハイパーバイザ(121)がブートプログラムの参照領域を旧ブートプログラム領域から新ブートプログラム領域に変換し(ステップS1511)、変換後の参照領域を指定するリブート指示をプロセスが割り当てられていないコアへ通知する(ステップS1512)。

Description

本発明は、オペレーティングシステムを更新するマルチコアプロセッサシステム、通知プログラム、および通知方法に関する。
従来の携帯型端末では、オペレーティングシステム(以下、「OS(Operating System)」と称する。)の更新に当たり、更新期間中にはアプリケーションの動作を停止させる必要があった。このため、更新期間中には、利用者はアプリケーションの動作(以下、「機能」と称する。)を利用することができないので、深夜時間帯など利用者の利用頻度が下がる時間帯に更新が行われていた。しかし、汎用計算機とは異なり、携帯型端末などの組み込みシステムは24時間365日動かし続けることを想定しており、機能を停止させなければならないことが問題となっていた。
サーバ分野においては、無停止でアップデートを行う2つの手法が提案されている。一つ目は、主系統の他に待機系統を用意し、主系統のアップデート中には待機系統で処理を行うもの(従来技術1)である(たとえば、下記特許文献1,2を参照。)。2つ目は、仮想マシンを運用し、アップデート期間中にOSを含むソフトウェアを仮想マシンで動作させること(従来技術2)である。
特開昭54−106146号公報 特開2003−330744号公報
しかしながら、従来技術1および従来技術2の場合、組み込みシステムにおいては、システム規模や費用の増加を招くという問題があった。一方、待機系統や仮想マシンがない場合、アップデートを代行することができないため、アップデートの際に機能を停止しなければならないという問題があった。
このように、携帯型端末などの組み込みシステムは24時間365日動かし続けることを想定しており、従来では、更新期間中には、利用者は機能を利用することができず、また、機能を停止させなければならないことが問題となっていた。
本発明は、上述した従来技術による問題点を解消するため、システム規模や費用の低減化を図りつつ、OSの無停止アップデートを実現することができるマルチコアプロセッサシステム、通知プログラム、および通知方法を提供することを目的とする。
本発明の一観点によれば、マルチコアプロセッサと、旧ブートプログラムおよび新ブートプログラムを記憶する記憶装置とを備えるマルチコアプロセッサシステムであって、前記マルチコアプロセッサの中で前記旧ブートプログラムを用いてブートしたコアのうち、プロセスが割り当てられていないコアを検出する検出手段と、前記検出手段により前記プロセスが割り当てられていないコアが検出されると、参照領域を前記旧ブートプログラムの記憶領域から前記新ブートプログラムの記憶領域に変換する変換手段と、前記変換手段による変換後の参照領域を指定するリブート指示を前記割り当てられていないコアへ通知する通知手段と、を備えるマルチコアプロセッサシステムを提供する。
本マルチコアプロセッサシステム、通知プログラム、および通知方法によれば、システム規模や費用の低減化を図りつつ、OSの無停止アップデートを実現することができるという効果を奏する。
実施の形態にかかるマルチコアプロセッサシステムのハードウェア構成を示すブロック図である。 マルチコアプロセッサシステム100の機能的構成を示すブロック図である。 新ブートプログラムのダウンロード準備例とダウンロード例を示す説明図である。 新ブートプログラム領域が設定される例を示す説明図である。 CPU#Nがリブートされる例を示す説明図である。 ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その1)である。 ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その2)である。 ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その3)である。 ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その4)である。 CPU#Nで新OSがブートされた例を示す説明図である。 CPU#Mで新OSをブートさせる準備例を示す説明図である。 CPU#Mに割り当てられているプロセスがすべて完了した例を示す説明図である。 すべてのCPUで新OSがブートされた例を示す説明図である。 マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その1)である。 マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その2)である。 ハイパーバイザ121によるメモリアクセス制限の制限処理手順を示すフローチャートである。 マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その3)である。
以下に添付図面を参照して、本発明にかかるマルチコアプロセッサシステム、通知プログラム、および通知方法の好適な実施の形態を詳細に説明する。
(マルチコアプロセッサシステムのハードウェア構成)
図1は、実施の形態にかかるマルチコアプロセッサシステムのハードウェア構成を示すブロック図である。図1において、マルチコアプロセッサシステム100は、CPU(Central Processing Unit)♯Mと、CPU#Nと、調停回路102と、共有メモリ103と、ストレージ104と、I/F(InterFace)105と、を備えている。また、各構成部は、バス101によってそれぞれ接続されている。
ここで、マルチコアプロセッサとは、コアが複数搭載されたプロセッサである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。なお、本実施の形態では、説明を単純化するため、シングルコアのCPU#MとCPU#Nの2つのプロセッサが並列に接続されているプロセッサ群を例に挙げて説明する。
CPU#MとCPU#Nは、独立して動作可能なコアとキャッシュとレジスタなどを備えている。ストレージ104に記憶されているプログラムは、CPU#MまたはCPU#Nによって共有メモリ103にマッピングされ、ロードされることで、コーディングされている処理をCPU#MまたはCPU#Nに実行させることとなる。
調停回路102は、別々のCPUから同時に共有メモリ103へのアクセスが発生しても競合しないように調停する回路である。調停回路102内の優先度の情報は、CPUごとの優先度を示す情報であり、調停回路102は優先度の情報に基づいて共有メモリ103へのアクセスを調停する。本実施の形態では、優先度は高いか否かの2段階とする。高優先は優先度が高いことを示し、低優先は優先度が高くないことを示す。
共有メモリ103は、CPU#Mローカル領域110やCPU#Nローカル領域111を有するメモリである。共有メモリ103は、たとえば、ROM(Read Only Memory)、RAM(Randam Access Memory)などにより構成されている。たとえば、RAMは、CPU#MとCPU#Nのワークエリアとして使用される。
ストレージ104は、MBR108と、旧ブートプログラムの記憶領域(以下、「旧ブートプログラム領域109」)と、ユーザのファイルシステム領域を有している。ストレージ104は、たとえば、フラッシュROMやハードディスクドライブなどにより構成されている。
MBR(Master Boot Record)108とは、CPU#MやCPU#Nの起動時に最初に読み込まれるストレージ104上の先頭部分(セクタ)である。MBR108には、ストレージ104内に収められたどのOSをどのように起動するかなどの情報が記録され、具体的には、ブートストラップローダ、パーティションテーブル、ブートシグニチャがそれぞれ格納されている。
ブートストラップローダには、起動用のプログラムが格納されている。パーティションテーブルにはブートプログラムが格納されている開始アドレスおよび終了アドレスが示されている。ブートシグニチャには0xAA55という値が識別子として格納され、該ブートシグニチャに0xAA55が格納されていればMBR108が有効であることを示し、0xAA55が格納されていなければMBR108が無効であることを示している。
ここで、ブートプログラムとは、OSの中核部分のプログラムである。たとえば、Linuxの場合、OSの中核部分はカーネルである。旧ブートプログラム領域109は、旧ブートプログラムが記憶されている領域であり、該領域の開始アドレスから終了アドレスはパーティションテーブルに記憶されている。本実施の形態で示すブートプログラムの新・旧は、先にストレージ104に記憶されているか否か、または版数が更新されているか否かを示している。
CPU#M(またはCPU#N)を起動するとまずMBR108が読み込まれ、ブートストラップローダに格納されている起動用のプログラムにコーディングされている処理がCPU#M(またはCPU#N)に実行される。ブートストラップローダはパーティションの位置や大きさなどを記録したパーティションテーブルを読み込み、OSの旧ブートプログラムの開始アドレスを読み込む。
ここで、CPU#Mは旧ブートプログラムを読み込み、読み込んだ旧ブートプログラムを共有メモリ103にマッピングする。CPU#Mがマッピングした旧ブートプログラムの共有メモリ103内の領域が、上述のCPU#Mローカル領域110である。そして、CPU#Mが、マッピングした旧ブートプログラムにコーディングされている処理を旧OS(マスタ)122として起動する。
一方、CPU#Nは旧ブートプログラムを読み込み、読み込んだ旧ブートプログラムを共有メモリ103にマッピングする。CPU#Nがマッピングした旧ブートプログラムの共有メモリ103内の領域が、上述のCPU#Nローカル領域111である。そして、CPU#Nが、マッピングした旧ブートプログラムにコーディングされている処理をマスタOSの旧OS(スレーブ)123として起動する。
そして、I/F105は、ネットワーク106と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F105には、たとえばモデムなどを採用することができる。I/F105は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク106に接続され、このネットワーク106を介してOSの更新データ配信元107に接続される。
つぎに、ハイパーバイザ121は、CPU#MとCPU#Nなどのハードウェア上で直接動作するプログラムであり、該ハードウェア内のレジスタに記憶されているプログラムである。ハイパーバイザ121はCPUごとに独立して動作するが、すべて同一処理を実施するため、図1では省略してハイパーバイザ121のみ記載している。
なお、たとえば、後述する旧ブートプログラムの削除処理であれば、複数のハイパーバイザ121が一つしか存在しない旧ブートプログラムを削除しているようであるが、最も早く削除処理まで処理がたどり着いたCPUのハイパーバイザ121が削除を行う。よって、あとから他のCPUのハイパーバイザ121が削除処理を行っても破棄する旧ブートプログラムはすでに存在しないだけである。
ハイパーバイザ121は、CPU#MやCPU#N内のレジスタを直接参照したり、CPU#MやCPU#N内のレジスタの情報を読み出したり、CPU#MやCPU#N内のレジスタの情報を書き換えたりする特権命令を実施することができる。
さらに、CPU#MやCPU#Nへのリブート指示もハイパーバイザ121の特権命令である。ハイパーバイザ121によるリブート指示とは、具体的には、パーティションテーブル内に記述されている旧ブートプログラム領域109の開始アドレスにジャンプするようにCPU#MやCPU#Nへ指示することである。本実施の形態では、新ブートプログラムの記憶領域(以下、「新ブートプログラム領域」と称する。)の開始アドレスへジャンプするようにCPU#MやCPU#Nへ指示することで、CPU#MやCPU#Nは新ブートプログラムでOSを起動する。
旧OS(マスタ)122および旧OS(スレーブ)123は、ハイパーバイザ121上で動作するソフトウェアである。OSにおけるマスタ・スレーブとCPU間の接続関係におけるマスタ・スレーブとは意味が異なる。マスタOS(本実施の形態では旧OS(マスタ)122)ではプロセスの割り当てを決定するスケジューラを動かし、スレーブOS(本実施の形態では旧OS(スレーブ)123)はスケジューラにより割り当てられたプロセスを実行する。
マスタOSは、プロセスの割り当て結果をタスクテーブルに登録する。ここで、タスクテーブルは、一般的なOSで管理されているプロセス情報のテーブルである。起動時間、メモリリソース、プロセス番号、起動したユーザ名、実行条件(リンクしているOSがサービスするライブラリの版数など)、実行形式ファイルのパスなどが記載されている。すなわち、CPU#Mは、旧OS(マスタ)122によりタスクテーブルから起動時間や実行条件を読み出すことで、各アプリケーション(プロセス)がどのOSに割り当てられているか、どのアプリケーション(プロセス)が実行終了したかを監視することができる。
また、更新検出アプリ131は、OS上で動作するアプリケーションプログラムであり、ブートプログラムの更新を検出する。更新検出アプリ131は、旧OS(マスタ)122上に割り当てられている。また、GUI(Graphic User Interface)のプロセスであるメインプロセス133が旧OS(マスタ)122に割り当てられている。
ダウンローダ132は、OS上で動作するアプリケーションプログラムであり、ブートプログラムやライブラリをダウンロードする。ダウンローダ132は、旧OS(マスタ)122と旧OS(スレーブ)123のうちいずれのOS上で動作しても良いが、ここでは、旧OS(スレーブ)123に割り当てられている。
ダウンローダ132は、I/F105を介してOSの更新データ配信元107から新ブートプログラムをダウンロードし、静的ベリファイを実施する。静的ベリファイとは、ブートプログラムのバイナリデータに誤りがないか、規格に従っているかなどを検査することである。動的ベリファイとは、新ブートプログラムで正常にブートされるかを検査することである。
(マルチコアプロセッサシステム100の機能的構成)
図2は、マルチコアプロセッサシステム100の機能的構成を示すブロック図である。マルチコアプロセッサシステム100で起動されているハイパーバイザ121は、設定部201と、受付部202と、判断部203と、変換部204と、通知部205と、検出部206と、削除部207と、を含む構成である。上述のようにハイパーバイザ121は通知プログラムを備えるプログラムであるため、ストレージ104または共有メモリ103内のROMに記憶されたハイパーバイザ121をCPU#MおよびCPU#Nに実行させることにより、各機能(設定部201から削除部207)を実現する。
まず、設定部201は、新ブートプログラムの更新指示を受け付けると、旧ブートプログラム領域109と所定のマスク値に基づいて新ブートプログラム領域を設定する。
つぎに、受付部202は、設定部201により新ブートプログラム領域が設定された後、新ブートプログラムのダウンロードに関する旧ブートプログラム領域109へのアクセスの入力を受け付ける。
判断部203は、受付部202により受け付けられたアクセスがライトアクセスであるかリードアクセスであるかを判断する。
変換部204は、判断部203によりアクセスがライトアクセスであると判断された場合、ライトアクセスで指定されたアドレスを、前記所定のマスク値に基づいて新プログラム領域を指定するアドレスに変換する。
通知部205は、アクセスがリードアクセスの場合、リードアクセスで指定されたアドレスへのアクセス指示をリードアクセスのアクセス元へ通知する。一方、通知部205は、アクセスがライトアクセスの場合、変換部204による変換後のアドレスへのアクセス指示をライトアクセスのアクセス元へ通知する。つぎに、新ブートプログラムがダウンロードされた後の処理について説明する。
検出部206は、マルチコアプロセッサの中で旧ブートプログラムを用いてブートしたCPUのうち、プロセスが割り当てられていないCPUを検出する。本実施の形態では、後述するがOSはプロセスが割り当てられていないコアを検出し、ハイパーバイザ121へ検出したコアにプロセスが割り当てられていないことを通知する。そして、ハイパーバイザ121はこの通知を受け付けることをプロセスが割り当てられていないコアを検出するとしている。
変換部204は、検出部206によりプロセスが割り当てられていないCPUが検出されると、参照領域を旧ブートプログラム領域109から新ブートプログラムの記憶領域に変換する。
通知部205は、変換部204よる変換後の参照領域を指定するリブート指示を完了したCPUへ通知する通知する。
また、検出部206は、プロセスが割り当てられていないCPUが検出されない場合、割り当てられていたすべてのプロセスの動作が完了したCPUを検出する。
そして、変換部204は、検出部206により該完了したCPUが検出されると、参照領域を旧ブートプログラム領域109から新ブートプログラム領域に変換する。通知部205は、変換部204よる変換後の参照領域を指定するリブート指示を完了したCPUへ通知する通知する。
変換部204は、通知部205によりリブート指示が通知されると、記憶装置のマスターブートレコードに記憶されている旧ブートプログラム領域109を指定するアドレスを所定のマスク値に基づき新ブートプログラム領域を指定するアドレスに変換する。
削除部207は、変換部204により記憶装置のマスターブートレコードに記憶されている旧ブートプログラム領域109が変更されると、旧ブートプログラム領域109に格納されている旧ブートプログラムを削除する。
以上を踏まえて図を用いてマルチコアプロセッサシステム100の詳細な動作について説明する。
図3は、新ブートプログラムのダウンロード準備例とダウンロード例を示す説明図である。まず、更新検出アプリ131がI/Fを介してブートプログラムへの更新を検出し、(1)旧OS(マスタ)122へブートプログラムの更新を通知する。つぎに、旧OS(マスタ)122がブートプログラムの更新を受け付けると、(2)ハイパーバイザ121へブートプログラムの更新を通知する。そして、ハイパーバイザ121が新ブートプログラムの更新を受け付けると、(3)新ブートプログラム領域112を所定のマスク値と旧ブートプログラムの領域に基づいて設定する。
図4は、新ブートプログラム領域112が設定される例を示す説明図である。ここで、(3)新ブートプログラムの領域の設定について詳細例を説明する。ハイパーバイザ121はMBR108のパーティションテーブル401を参照し、旧ブートプログラム領域109の開始アドレスおよび終了アドレスを取得する。ハイパーバイザ121は旧ブートプログラム領域109の開始アドレスとマスク値との論理和を取ることにより新ブートプログラム領域112の開始アドレスを算出する。
ハイパーバイザ121は旧ブートプログラム領域109の終了アドレスとマスク値との論理和を取ることにより新ブートプログラム領域112の終了アドレスを算出する。ハイパーバイザ121は、ストレージ104内の算出した新ブートプログラムの開始アドレスが示す領域から算出した新ブートプログラムの終了アドレスが示す領域までを新ブートプログラムの領域として確保する。
図3に戻って、(4)ハイパーバイザ121が旧OS(マスタ)122へダウンロード開始指示を通知し、新ブートプログラムのダウンローダ132および静的ベリファイに関する旧ブートプログラムへのアクセスを監視する。旧OS(マスタ)122がダウンロード開始通知を受け付けると、(5)ダウンローダ132へダウンロード開始指示を通知する。そして、ダウンローダ132はダウンロード開始指示を受け付けると、I/F105を介してOSの更新データ配信元107から新ブートプログラムをダウンロードする。
そして、ダウンローダ132が新ブートプログラムをダウンロード中、旧ブートプログラムへのライトアクセスを行うために(6)旧OS(スレーブ)123へ旧ブートプログラムへのアクセスを入力する。旧OS(スレーブ)123が、新ブートプログラムのダウンロードに関する旧ブートプログラムへのアクセスを受け付けると、(7)ハイパーバイザ121へ該アクセスを入力する。
そして、ハイパーバイザ121が、新ブートプログラムのダウンロードに関する旧ブートプログラムへのアクセスを受け付けると、該アクセスがライトアクセスであるかリードアクセスであるかを判断する。ハイパーバイザ121がライトアクセスであると判断した場合、該ライトアクセスが示すアドレスを所定のマスク値に基づいて新ブートプログラム領域112を指定するアドレスに変換する。
そして、ハイパーバイザ121が、(8)変換後のアドレスへのアクセス指示を旧OS(スレーブ)123へ通知する。一方、ハイパーバイザ121がリードアクセスであると判断した場合、リードアクセスで指定されたアドレスへのアクセス指示を旧OS(スレーブ)123へ通知する。
アクセスが指定するアドレスを0x1110とし、所定のマスク値を0x1000とすする。たとえば、リードアクセスの場合、ハイパーバイザ121が0x1110へのアクセス指示を旧OS(スレーブ)123へ通知する。たとえば、ライトアクセスの場合、ハイパーバイザ121が0x1110と0x1000の論理和を算出する(下記式(1))ことで新ブートプログラム領域112を指定するアドレスに変換する。そして、変換後のアドレスへのアクセス指示を旧OS(スレーブ)123へ通知する。
ブートプログラム領域を指定するアドレス=0x1110+0x1000
=0x0110 ・・・(1)
ここで、「+」が論理和を示している。よって、ハイパーバイザ121が0x0110へのアクセス指示を旧OS(スレーブ)123へ通知する。
旧OS(スレーブ)123は、ハイパーバイザ121からアクセス指示を受け付けると、(9)ダウンローダ132へアクセス指示を通知する。図3では、ライトアクセスを示しているため、ダウンローダ132は、(10)変換後のアドレスへのアクセスを実行する。
図5は、CPU#Nがリブートされる例を示す説明図である。新ブートプログラム領域112への新ブートプログラムのダウンロード後、更新検出アプリ131が(11)更新条件情報を旧OS(マスタ)122へ通知する。更新条件情報は、実行制約と、対象版数と、更新実施CPU数と、緊急度の情報とを有している。緊急度の情報は緊急度が高いか否かに関する情報である。
旧OS(マスタ)122は、更新条件情報を受け付けると、受け付けた更新条件情報から緊急度の情報を読み出し、読み出した緊急度の情報が、緊急度が高いことを示す場合、タスクテーブルを用いて更新実施CPUに割り当てられているプロセスを特定し、(12)強制マイグレートする。ここでは、プロセス134が特定される。強制マイグレートにより更新実施CPUに割り当てられているプロセス134がCPU#Mに割り当てられている。
ここで、更新実施CPUをCPU#Nとする。更新実施CPUとは、他のCPUに先だって新ブートプログラムでリブートするCPUである。更新実施CPUの決定方法については、少なくとも旧OSへのプロセスの割り当てが可能なマスタOSが旧OSの中で最後にリブートされればよいため、特に限定しない。
たとえば、4つのCPUによりマルチコアプロセッサが構成されている場合、マスタOSの処理を実行するCPUを除く残余のCPUから2つのCPUを更新実施CPUとする。そして、マスタOSの処理を実行するCPUともう一つのCPUを更新実施CPUがリブート後にリブートするCPUとしてもよい。また、マスタOSの処理を実行するCPUを除く残余のCPUをすべて更新実施CPUとしてもよい。
また、読み出した緊急度の情報が、緊急度が高くない(緊急度が低い)ことを示す場合、旧OS(マスタ)122が、マルチコアプロセッサのうちマスタOSを動作するCPUを除くCPUからいずれのプロセスも割り当てられていないCPUを検出する。CPU#Nには、プロセスが割り当てられているため、いずれのプロセスも割り当てられていないCPUは検出されない。つぎに、旧OS(マスタ)122が、CPU#Nへのディスパッチを禁止し、CPU#Nに割り当てられているプロセスが終了するのを検出する。
そして、強制マイグレートまたはプロセスの終了によってCPU#Nに割り当てられていたプロセスが無くなると、(13)旧OS(マスタ)122がCPU#Nに割り当てられていたプロセスが完了したこと(または、更新実施CPUでもよい。)およびメモリアクセス制限指示をハイパーバイザ121へ通知する。ハイパーバイザ121が該通知を受け付けると、(14)共有メモリ103のアクセス制限を開始する。ハイパーバイザ121が共有メモリ103のアクセス制限を開始すると、たとえば、各OSやアプリケーションはハイパーバイザ121からのアクセス指示を受け付けるまで共有メモリ103へアクセスできないこととする。
そして、ハイパーバイザ121が、共有メモリ103のアクセス制限を開始した後、ブートプログラムの参照領域を旧ブートプログラム領域109から新ブートプログラム領域112へ変換し、(15)変換後の参照領域を指定するリブート指示を旧OS(スレーブ)123へ通知する。旧OS(スレーブ)123は、リブート指示を受け付けると、(16)新ブートプログラムを参照してリブートを開始する。また、更新対象CPUのうち一つのCPUが新OSをマスタOSとしてリブートする。ここでは、CPU#Nのみであるため、CPU#Nが新OSをマスタOSとしてリブートする。つぎに、ハイパーバイザ121によるメモリアクセス制限について図6から図9を用いて説明する。
図6は、ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その1)である。図では、(17)リブート中の旧OSから共有メモリ103内のCPU#Mローカル領域110へのアクセスが発生した場合について説明する。ハイパーバイザ121は、メモリアクセス制限を開始すると、アプリケーションから共有メモリ103へのアクセスおよびアクセスのアドレスをすべて検出する。
ハイパーバイザ121が(18)リブート中の旧OSから共有メモリ103内のCPU#Mローカル領域110へのアクセスとアクセスのアドレスを検出する。ハイパーバイザ121がCPU#Nからのアクセスか否かを判断し、ここでは、旧OS(スレーブ)123からのアクセスであるためCPU#Nからのアクセスであると判断される。つづいて、ハイパーバイザ121が他のCPUのローカル領域へのアクセスか否かを検出したアクセスのアドレスに基づいて判断する。
ここでは、検出されたアクセスがCPU#Mローカル領域110へのアクセスであると判断され、(19)ハイパーバイザ121が旧OS(スレーブ)123の更新失敗を出力、またはダウンロードした新ブートプログラムが不正であることを出力する。出力形式としては、たとえば、ディスプレイへの表示、I/F105による外部装置への送信がある。また、共有メモリ103内の各CPUのローカル領域を除く領域などに記憶することとしてもよい。
ブート中であるCPU#NからCPU#MのワークエリアであるCPU#Mローカル領域110へのアクセスは正常なブートプログラムであれば発生しない。したがって、(17)〜(19)により異常であるブートプログラムで更新するのを防止することができる。
図7は、ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その2)である。図7では、(20)リブート中の旧OSから共有メモリ103内のCPU#Nローカル領域111へのアクセスが発生した場合について説明する。
ハイパーバイザ121が(21)リブート中の旧OSから共有メモリ103内のCPU#Nローカル領域111へのアクセスを検出する。ハイパーバイザ121がCPU#Nからのアクセスか否かを判断し、ここでは、旧OS(スレーブ)123からのアクセスであるためCPU#Nからのアクセスであると判断される。つづいて、ハイパーバイザ121が他のCPUのローカル領域へのアクセスか否かを検出したアクセスが指定するアドレスに基づいて判断する。
ここでは、検出されたアクセスがCPU#Nローカル領域111へのアクセスであると判断され、ハイパーバイザ121が(22)調停回路102内のCPU#Nに関する優先度の情報を低優先に設定する。そして、ハイパーバイザ121がアクセス指示を通知する。
ブート中であるCPU#Nは、各種テーブルの初期化やシステムファイルの更新、システムファイルの一時退避・復元、該一時退避・復元にともなうキャッシュデータのフラッシュなどを行う。すなわち、ブート中であるCPU#Nは、通常のアプリケーションを動作中であるCPU#Mと比較して共有メモリ103へのアクセスが多い。
上述のように調停回路102内のCPU#Nに関する優先度の情報が低優先に設定されることで、メモリコンテンション(メモリアクセス権の争奪)を防止することができる。そして、ブート中でないCPU#Mで動作しているアプリケーションに影響を与えることなくOSを更新できる。
図8は、ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その3)である。図8では、(23)旧OS(マスタ)122から共有メモリ103内のCPU#Mローカル領域110へのアクセスが発生した場合について説明する。
ハイパーバイザ121が(24)旧OS(マスタ)122から共有メモリ103内のCPU#Mローカル領域110へのアクセスを検出する。ハイパーバイザ121が検出したアクセスがCPU#Nからのアクセスか否かを判断し、ここでは、旧OS(マスタ)122からのアクセスであるためCPU#Nからのアクセスでないと判断される。つづいて、ハイパーバイザ121が他のCPUのローカル領域へのアクセスか否かを検出したアクセスが示すアドレスに基づいて判断する。
ここでは、検出されたアクセスがCPU#Mローカル領域110へのアクセスであると判断され、ハイパーバイザ121が(25)調停回路102内のCPU#Nに関する優先度の情報を低優先に設定する。そして、ハイパーバイザ121が旧OS(マスタ)122へアクセス指示を通知する。
図9は、ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その4)である。図9では、(26)旧OS(マスタ)122から共有メモリ103内のCPU#Nローカル領域111へのアクセスが発生した場合について説明する。
ハイパーバイザ121が(27)旧OS(マスタ)122から共有メモリ103内のCPU#Nローカル領域111へのアクセスを検出する。ハイパーバイザ121が検出したアクセスがCPU#Nからのアクセスか否かを判断し、ここでは、旧OS(マスタ)122からのアクセスであるためCPU#Nからのアクセスでないと判断される。つづいて、ハイパーバイザ121が共有メモリ103内の他のCPUのローカル領域へのアクセスか否かを検出したアクセスが示すアドレスに基づいて判断する。
ここでは、検出されたアクセスがCPU#Nローカル領域111へのアクセスであると判断され、ハイパーバイザ121が(28)アクセスエラーを出力する。出力形式としては、たとえば、ディスプレイへの表示、I/F105による外部装置への送信がある。また、共有メモリ103内の各CPUのローカル領域を除く領域などに記憶することとしてもよい。
図10は、CPU#Nで新OSがブートされた例を示す説明図である。図10では、CPU#Nで新OS(マスタ)124がマスタOSとしてブートされている。ここで、新OSと旧OSごとにマスタOSが存在することとなる。新たに割り当てられる新規起動プロセス136は新OS(マスタ)124によりスケジュールされて実行されるため、マルチコアプロセッサシステム100において新旧のマスタOSが共存していても競合することはない。また、プロセス135は旧OS(スレーブ)123がブート中に旧OS(マスタ)122に割り当てられたプロセスである。
そして、ハイパーバイザ121が、CPU#Nで新OS(マスタ)124がブートされると、(29)メモリアクセス制限を解除し、(30)調停回路102内の優先度の情報を元に戻す。調停回路102内の優先度の情報は、たとえば、メモリ制限開始直前に共有メモリ103内に複製して記憶しておき、メモリ制限解除後に複製した優先度の情報を用いて調停回路102内の変更された優先度の情報を復元する。
図11は、CPU#Mで新OSをブートさせる準備例を示す説明図である。旧OS(マスタ)122が、旧OS(マスタ)122に割り当てられているプロセスをプロセステーブルに基づいて特定する。特定したプロセスのうち旧ブートプログラムにダイナミックリンクもしくはオープンしているプロセスは、旧OS(マスタ)122で処理を続行する。一方、(31)旧OS(マスタ)122は、特定したプロセスのうち旧ブートプログラムにダイナミックリンクおよびオープンしていないプロセス(ここでは、メインプロセス133と更新検出アプリ131)を新OS(マスタ)124へマイグレートする。
図12は、CPU#Mに割り当てられているプロセスがすべて完了した例を示す説明図である。図12では、旧OS(マスタ)122に割り当てられていたプロセスの処理が終了した。すなわち、旧OS(マスタ)122により旧OS(マスタ)122に割り当てられているプロセスが特定されない場合である。そして、(32)旧OS(マスタ)122がハイパーバイザ121へ旧OS(マスタ)122に割り当てられているプロセスがすべて完了したことを通知する。
(33)ハイパーバイザ121が該通知を受け付けると、MBR108に記憶されているパーティションテーブル401が示すブートプログラムの参照領域を新ブートプログラム領域112に変換する。そして、(34)ハイパーバイザ121が旧OS(マスタ)122へリブート指示を通知する。すでにパーティションテーブル401が示すブートプログラムの参照領域は変換済みであるため、(35)旧OS(マスタ)122はリブート指示を受け付けると、新ブートプログラムでリブートを開始する。ここで、旧OS(マスタ)122は新OS(スレーブ)125としてブートされる。そして、(36)ハイパーバイザ121が旧ブートプログラムを廃棄する。
図13は、すべてのCPUで新OSがブートされた例を示す説明図である。図13では、旧OS(マスタ)122が新OS(スレーブ)125として起動されている。さらに、ストレージ104内での旧ブートプログラムの領域が空いている。
(マルチコアプロセッサシステムによるOSの更新手順)
図14は、マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その1)である。ここでは、ハイパーバイザ121と旧OS(マスタ)122とダウンローダ132と更新検出アプリ131によるダウンロード開始前とダウンロードおよび静的ベリファイ時の処理手順を説明する。まず、更新検出アプリ131がブートプログラムの更新を検出し(ステップS1401)、更新検出アプリ131がブートプログラムの更新を検出した場合、旧OS(マスタ)122へブートプログラムの更新を通知する(ステップS1402)。旧OS(マスタ)122が、ブートプログラムの更新を受け付けると、ハイパーバイザ121へブートプログラムの更新を通知する(ステップS1403)。
ハイパーバイザ121が、ブートプログラムの更新を受け付けると、新ブートプログラム領域を旧ブートプログラムと所定のマスク値に基づいて設定し、旧OS(マスタ)122へダウンロード開始指示を通知する(ステップS1404)。そして、ハイパーバイザ121が、ブートプログラム領域へのブートプログラムに関するアクセスを監視する(ステップS1405)。アクセスの監視は、ステップS1409〜ステップS1411までの処理を指す。
旧OS(マスタ)122が、ハイパーバイザ121からのダウンロード開始指示を受け付けると、ダウンローダ132へダウンロード開始指示を通知する(ステップS1406)。そして、ダウンローダ132が、ダウンロード開始指示を受け付けると、ダウンロードと静的ベリファイを開始する(ステップS1407)。ダウンローダ132が、ダウンロード中や静的ベリファイ中にストレージへのアクセスを行う場合、旧OS(マスタ)122へアクセスを入力し、ダウンローダ132を動かすOSが、ストレージへのアクセスを受け付けると、ハイパーバイザ121へアクセスを入力する(ステップS1408)。
そして、ハイパーバイザ121が、アクセスの入力を受け付けると、受け付けたアクセスがライトアクセスであるかリードアクセスであるかを判断する(ステップS1409)。ハイパーバイザ121が、該アクセスがライトアクセスであると判断した場合(ステップS1409:ライトアクセス)、ライトアクセスで指定されたアドレスを所定のマスク値に基づいて変換する(ステップS1410)。そして、ハイパーバイザ121が、変換後のアドレスへのアクセス指示を、ダウンローダ132を動かすOSへ通知する(ステップS1411)。
一方、ハイパーバイザ121が、該アクセスがリードアクセスであると判断した場合(ステップS1409:リードアクセス)、リードアクセスで指定されたアドレスへのアクセス指示を通知する(ステップS1411)。ステップS1411のつぎに、ダウンローダ132を動かすOSがアクセス指示を受け付けると、ダウンローダ132へアクセス指示を通知し(ステップS1412)、ダウンローダ132が、アクセス指示を受け付けると、ストレージへアクセスする(ステップS1413)。ステップS1407とステップS1413間の矢印は、アクセス結果に沿ってダウンロードと静的ベリファイが続行されることを示している。
図15は、マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その2)である。ここでは、ハイパーバイザ121と旧OS(マスタ)122とダウンローダ132によるダウンロードおよび静的ベリファイ後から更新実施CPUのリブートが完了するまでの処理手順を説明する。更新実施CPUには、旧OS(マスタ)122が含まれていないこととする。まず、ダウンローダ132が、ダウンロードと静的ベリファイを完了させると(ステップS1501)、更新条件情報を通知する(ステップS1502)。
旧OS(マスタ)122が、更新条件情報を受け付けると、更新条件情報から緊急度を読み出し、緊急度を判断する(ステップS1503)。緊急度が高い場合(ステップS1503:高)、旧OS(マスタ)122が、更新実施CPUに割り当てられたプロセスを強制マイグレートし(ステップS1504)、ステップS1507へ移行する。
一方、緊急度が低い場合(ステップS1503:低)、旧OS(マスタ)122が、プロセスが割り当てられていないCPUがあるか否かを判断する(ステップS1505)。そして、旧OS(マスタ)122が、プロセスが割り当てられていないCPUがあると判断した場合(ステップS1505:Yes)、プロセスが割り当てられていないCPUを更新実施CPUに設定し(ステップS1506)、ステップS1509に移行する。ここでは、更新実施CPUは、プロセスが割り当てられていないCPUのみである。
そして、旧OS(マスタ)122が、プロセスが割り当てられていないCPUがないと判断した場合(ステップS1505:No)、更新実施CPUへのディスパッチを禁止する(ステップS1507)。そして、旧OS(マスタ)122が、更新実施CPUに割り当てられたプロセスが終了したか否かを判断する(ステップS1508)。旧OS(マスタ)122が、更新実施CPUに割り当てられたプロセスが終了していないと判断した場合、(ステップS1508:No)、ステップS1508へ戻る。
一方、旧OS(マスタ)122が、更新実施CPUに割り当てられたプロセスが終了したと判断した場合(ステップS1508:Yes)、共有メモリへのアクセス制限指示と更新対象CPUをハイパーバイザ121へ通知する(ステップS1509)。
ハイパーバイザ121が、共有メモリへのアクセス制限指示と更新対象CPUとを受け付けると、アクセス制限を開始する(ステップS1510)。アクセス制限のフローチャートについては後述する。そして、ハイパーバイザ121が、ブートプログラムの参照領域を新ブートプログラム領域に変換する(ステップS1511)。
つぎに、ハイパーバイザ121が、変換後の参照領域を指定するリブート指示を更新実施CPU上のOSへ通知する(ステップS1512)。更新実施CPU上のOSとは、更新実施CPUに処理を実行させているOSである。ここでは、更新実施CPUのうちいずれか一つのCPUへ新ブートプログラムで起動する際にマスタOSとなるように指示する。更新実施CPU上のOSは、リブート指示を受け付けると、リブートし、リブートが完了するとリブートの完了をハイパーバイザ121へ通知する(ステップS1513)。そして、更新実施CPUの全CPUからリブートの完了を受け付けると、共有メモリのアクセス制限を終了し(ステップS1514)、調停回路内の優先度の情報を通常に戻す(ステップS1515)。調停回路内の優先度の情報は、アクセス制限により変更されるため、優先度の情報を通常に戻すとは、アクセス制限開始前の優先度の情報に戻すことを意味する。
図16は、ハイパーバイザ121によるメモリアクセス制限の制限処理手順を示すフローチャートである。まず、ハイパーバイザ121が、メモリアクセス制限を開始すると、アプリケーションから共有メモリへのアクセスを検出する(ステップS1601)。つぎに、ハイパーバイザ121が、更新対象CPUからのアクセスか否かを判断する(ステップS1602)。ここで、更新対象CPUは、リブート中である。そして、ハイパーバイザ121が、更新対象CPUからのアクセスであると判断した場合(ステップS1602:Yes)、他のCPUのローカル領域へのアクセスか否かを判断する(ステップS1603)。
ハイパーバイザ121が、他のCPUのローカル領域へのアクセスであると判断した場合(ステップS1603:Yes)、更新失敗を出力し(ステップS1604)、復旧する(ステップS1605)。一方、ステップS1602において、ハイパーバイザ121が、更新対象CPUからのアクセスでないと判断した場合(ステップS1602:No)、他のCPUのローカル領域へのアクセスか否かを判断する(ステップS1606)。ハイパーバイザ121が、他のCPUのローカル領域へのアクセスであると判断した場合(ステップ1606:Yes)、アクセスエラーを出力する(ステップS1607)。
一方、ハイパーバイザ121が、他のCPUのローカル領域へのアクセスでないと判断した場合(ステップS1603:No、またはステップS1606:No)、調停回路内の更新対象CPUに関する優先度の情報を低優先に設定する(ステップS1608)。そして、アクセス指示をアクセス元へ通知する(ステップS1609)。なお、ハイパーバイザ121が、メモリアクセス制限終了指示を受け付けるまで、処理を繰り返す。
図17は、マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その3)である。まず、新OSが起動されると、新OS(マスタ)124は、新既プロセスを新OSに割り当てるように制御する(ステップS1701)。つぎに、旧OS(マスタ)122が、旧OSで既動作のプロセスをタスクテーブルに基づいて特定する(ステップS1702)。
そして、旧OS(マスタ)122が、旧OSで既動作のプロセスがあるか否かを判断する(ステップS1703)。まず、旧OS(マスタ)122が、旧OSで既動作のプロセスがあると判断した場合(ステップS1703:Yes)、未選択の既動作のプロセスがあるか否かを判断する(ステップS1704)。旧OS(マスタ)122が、未選択の既動作のプロセスがないと判断した場合(ステップS1704:No)、ステップS1702へ戻る。一方、旧OS(マスタ)122が、未選択の既動作のプロセスがあると判断した場合(ステップS1704:Yes)、未選択の既動作のプロセスから任意のプロセスを選択する(ステップS1705)。
そして、旧OS(マスタ)122が、選択したプロセスがシステムファイルにダイナミックリンクまたはオープンしているかを判断する(ステップS1706)。旧OS(マスタ)122が、システムファイルにダイナミックリンクまたはオープンしていると判断した場合(ステップS1706:Yes)、ステップS1704に戻る。一方、旧OS(マスタ)122が、システムファイルにダイナミックリンクおよびオープンしていないと判断した場合(ステップS1706:No)、選択したプロセスを新OSへマイグレートし(ステップS1707)、ステップS1704へ戻る。
一方、旧OS(マスタ)122が、旧OSで既動作のプロセスがないと判断した場合(ステップS1703:No)、ハイパーバイザ121へ既動作のプロセスがないことを通知する(ステップS1708)。つづいて、ハイパーバイザ121が、パーティションテーブル内の参照領域を新ブートプログラム領域に変換し(ステップS1709)、変換後の参照領域を指定するリブート指示を旧OSへ通知する(ステップS1710)。
そして、旧OS(マスタ)122を含む旧OSが、リブート指示を受け付けると、新ブートプログラムでリブートする(ステップS1712)。ステップS1710のつぎに、ハイパーバイザ121が、旧ブートプログラムを破棄する(ステップS1711)。
以上説明したように、マルチコアプロセッサシステム、通知プログラム、および通知方法によれば、旧ブートプログラムでブートしたコアのうちプロセスが割り当てられていないコアから順に新ブートプログラムでリブートさせるリブート指示を通知する。したがって、リブート指示を通知されて受け付けたコアが新ブートプログラムでリブートする。これにより、空いているコアから直ぐにリブートするため、プロセスを停止させず、OSを無停止で更新することができる。
また、プロセスが割り当てられていないコアが無い場合、割り当てられているプロセスが完了したコアへ新ブートプログラムでリブートさせるリブート指示を通知することにより、動作中のプロセスを停止させることなくOSを更新できる。
また、新ブートプログラムの更新を受け付けてから、新ブートプログラムをダウンロードする新ブートプログラム領域を設定することで、ストレージ内の容量を効率的に使用できる。
また、リブート指示後にマスターブートレコードのパーティションテーブル内の旧ブートプログラム領域のアドレスを新ブートプログラム領域のアドレスに変換する。これにより、新ブートプログラムでリブートしたCPUの電源が再投入されても、該CPUが新ブートプログラムでブートすることができる。
100 マルチコアプロセッサシステム
201 設定部
202 受付部
203 判断部
204 変換部
205 通知部
206 検出部

Claims (6)

  1. マルチコアプロセッサの中で旧ブートプログラムを用いてブートしたコアのうち、プロセスが割り当てられていないコアを検出する検出手段と、
    前記検出手段により前記プロセスが割り当てられていないコアが検出されると、参照領域を前記旧ブートプログラムの記憶領域から新ブートプログラムの記憶領域に変換する変換手段と、
    前記変換手段による変換後の参照領域を指定するリブート指示を前記割り当てられていないコアへ通知する通知手段と、
    を備えることを特徴とするマルチコアプロセッサシステム。
  2. 前記検出手段は、
    前記割り当てられていないコアが検出されない場合、割り当てられていたすべてのプロセスの動作が完了したコアを検出し、
    前記変換手段は、
    前記検出手段により完了したコアが検出されると、参照領域を前記旧ブートプログラムの記憶領域から前記新ブートプログラムの記憶領域に変換することを特徴とする請求項1に記載のマルチコアプロセッサシステム。
  3. 前記新ブートプログラムの更新指示を受け付けると、前記旧ブートプログラムの記憶領域と所定のマスク値に基づいて前記新ブートプログラムの記憶領域を設定する設定手段と、
    前記設定手段により前記新ブートプログラムの記憶領域が設定された後、前記新ブートプログラムのダウンロードに関する前記旧ブートプログラムの記憶領域へのアクセスの入力を受け付ける受付手段と、
    前記受付手段により受け付けられたアクセスがライトアクセスであるかリードアクセスであるかを判断する判断手段と、を備え、
    前記変換手段は、
    前記判断手段により前記アクセスが前記ライトアクセスであると判断された場合、前記ライトアクセスで指定されたアドレスを、前記所定のマスク値に基づいて前記新ブートプログラムの記憶領域を指定するアドレスに変換し、
    前記通知手段は、
    前記アクセスが前記リードアクセスの場合、前記リードアクセスで指定されたアドレスへのアクセス指示を、前記リードアクセスのアクセス元へ通知し、前記アクセスが前記ライトアクセスの場合、前記変換手段による変換後のアドレスへのアクセス指示を前記ライトアクセスのアクセス元へ通知することを特徴とする請求項1に記載のマルチコアプロセッサシステム。
  4. 前記変換手段は、
    前記通知手段によりリブート指示が通知されると、前記記憶装置のマスターブートレコードに記憶されている前記旧ブートプログラムの記憶領域を指定するアドレスを前記所定のマスク値に基づき前記新ブートプログラムの記憶領域を指定するアドレスに変換することを特徴とする請求項1〜3のいずれか一つに記載のマルチコアプロセッサシステム。
  5. 旧ブートプログラムおよび新ブートプログラムを記憶する記憶装置にアクセス可能なマルチコアプロセッサのうちの一のコアに、
    前記マルチコアプロセッサの中で前記旧ブートプログラムを用いてブートしたコアのうち、プロセスが割り当てられていないコアを検出する検出工程と、
    前記検出工程により前記プロセスが割り当てられていないコアが検出されると、参照領域を前記旧ブートプログラムの記憶領域から前記新ブートプログラムの記憶領域に変換する変換工程と、
    前記変換工程による変換後の参照領域を指定するリブート指示を前記完了したコアへ通知する通知工程と、
    を実行させることを特徴とするプログラム。
  6. 旧ブートプログラムおよび新ブートプログラムを記憶する記憶装置にアクセス可能なマルチコアプロセッサのうちの一のコアが、
    前記マルチコアプロセッサの中で前記旧ブートプログラムを用いてブートしたコアのうち、プロセスが割り当てられていないコアを検出する検出工程と、
    前記検出工程により前記プロセスが割り当てられていないコアが検出されると、参照領域を前記旧ブートプログラムの記憶領域から前記新ブートプログラムの記憶領域に変換する変換工程と、
    前記変換工程による変換後の参照領域を指定するリブート指示を前記完了したコアへ通知する通知工程と、
    を実行することを特徴とする通知方法。
JP2012505383A 2010-03-17 2010-03-17 マルチコアプロセッサシステム、通知プログラム、および通知方法 Pending JPWO2011114476A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/054606 WO2011114476A1 (ja) 2010-03-17 2010-03-17 マルチコアプロセッサシステム、通知プログラム、および通知方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013235497A Division JP5713089B2 (ja) 2013-11-13 2013-11-13 マルチコアプロセッサシステム、制御プログラム、および制御方法

Publications (1)

Publication Number Publication Date
JPWO2011114476A1 true JPWO2011114476A1 (ja) 2013-06-27

Family

ID=44648605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012505383A Pending JPWO2011114476A1 (ja) 2010-03-17 2010-03-17 マルチコアプロセッサシステム、通知プログラム、および通知方法

Country Status (3)

Country Link
US (1) US9235426B2 (ja)
JP (1) JPWO2011114476A1 (ja)
WO (1) WO2011114476A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6079065B2 (ja) * 2012-08-31 2017-02-15 富士通株式会社 情報処理装置,処理方法及びプログラム
US10063380B2 (en) * 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
JP6351225B2 (ja) * 2013-09-02 2018-07-04 キヤノン株式会社 画像処理装置、情報処理システム、及びその制御方法、並びに情報処理装置と画像処理装置のプログラム
US9697150B2 (en) * 2013-09-04 2017-07-04 Jory Schwach Real-time embedded system
FR3097345B1 (fr) * 2019-06-13 2021-06-25 Stmicroelectronics Grand Ouest Sas Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant
CN111310171A (zh) * 2020-02-21 2020-06-19 华大半导体有限公司 一种硬件级主动防御的实现方法及装置
JP7292328B2 (ja) * 2021-05-28 2023-06-16 キヤノン株式会社 情報処理装置及びその制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07311749A (ja) * 1994-05-19 1995-11-28 Toshiba Corp マルチプロセッサシステム及びカーネル置換方法
JPH10260845A (ja) * 1997-03-19 1998-09-29 Fujitsu Ltd ファームウェアの更新処理機能を有するマルチcpuシステム
JP2000029679A (ja) * 1991-10-11 2000-01-28 Toshiba Corp フラッシュメモリをbios―romとして使用したパ―ソナルコンピュ―タ
JP2007193596A (ja) * 2006-01-19 2007-08-02 Nec Corp ファームウェア更新回路およびファームウェア更新方法
JP2007219696A (ja) * 2006-02-15 2007-08-30 Fujitsu Ltd 制御装置およびそのファームウェア活性交換制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5338237A (en) 1976-09-21 1978-04-08 Oki Electric Ind Co Ltd Multi processor system
JPS588016B2 (ja) 1978-02-08 1983-02-14 住友金属工業株式会社 マルチコンピユ−タシステムにおける中央処理装置の無停止切換方式
US5473775A (en) 1991-10-11 1995-12-05 Kabushiki Kaisha Toshiba Personal computer using flash memory as BIOS-ROM
JP3904099B2 (ja) 1996-04-24 2007-04-11 ソニー株式会社 情報処理装置、プログラム更新方法、および、情報処理システム
JP2001209543A (ja) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
US20020178352A1 (en) * 2001-05-22 2002-11-28 Lambino John P. Firmware upgrade using address conversion
US7065560B2 (en) * 2002-03-12 2006-06-20 Hewlett-Packard Development Company, L.P. Verification of computer program versions based on a selected recipe from a recipe table
JP2003330744A (ja) 2002-05-10 2003-11-21 Nec Corp ファイルの更新方法
US7305668B2 (en) * 2002-07-31 2007-12-04 Intel Corporation Secure method to perform computer system firmware updates
US6813708B2 (en) * 2002-10-29 2004-11-02 Electronic Data Systems Corporation System and method for searching a BIOS for a type of computer network drive to boot and an operating system for migrating an operating system to a computer
JP4158517B2 (ja) 2002-12-25 2008-10-01 富士通株式会社 マルチプロセッサ装置の共有データアクセス方式
US7797693B1 (en) * 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029679A (ja) * 1991-10-11 2000-01-28 Toshiba Corp フラッシュメモリをbios―romとして使用したパ―ソナルコンピュ―タ
JPH07311749A (ja) * 1994-05-19 1995-11-28 Toshiba Corp マルチプロセッサシステム及びカーネル置換方法
JPH10260845A (ja) * 1997-03-19 1998-09-29 Fujitsu Ltd ファームウェアの更新処理機能を有するマルチcpuシステム
JP2007193596A (ja) * 2006-01-19 2007-08-02 Nec Corp ファームウェア更新回路およびファームウェア更新方法
JP2007219696A (ja) * 2006-02-15 2007-08-30 Fujitsu Ltd 制御装置およびそのファームウェア活性交換制御方法

Also Published As

Publication number Publication date
US20130007439A1 (en) 2013-01-03
WO2011114476A1 (ja) 2011-09-22
US9235426B2 (en) 2016-01-12

Similar Documents

Publication Publication Date Title
JP3593241B2 (ja) 計算機の再起動方法
RU2639693C1 (ru) Способ обработки ресурса, операционная система и устройство
US9384060B2 (en) Dynamic allocation and assignment of virtual functions within fabric
WO2011114476A1 (ja) マルチコアプロセッサシステム、通知プログラム、および通知方法
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US9658930B2 (en) Method and device for managing hardware errors in a multi-core environment
US9639486B2 (en) Method of controlling virtualization software on a multicore processor
KR20070062412A (ko) 논리적 파티션 사이에서의 운용 시스템의 커널 공유
WO2012100535A1 (zh) 超级内核组件的升级方法和计算机系统
CN109002346B (zh) 一种Windows虚拟机引导程序的转换方法
EP3992805A1 (en) Live migration method for virtual machine and communication device
US9804877B2 (en) Reset of single root PCI manager and physical functions within a fabric
US20160077847A1 (en) Synchronization of physical functions and virtual functions within a fabric
CN111090546A (zh) 一种操作系统重启方法、装置、设备及可读存储介质
CN116521209B (zh) 操作系统的升级方法及装置、存储介质及电子设备
WO2023125482A1 (zh) 集群管理方法、设备及计算系统
US20190250994A1 (en) Backup control method and backup control system
JP5713089B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
JP2012168710A (ja) 情報処理システム、情報処理方法、及び制御プログラム
US20220391254A1 (en) Information processing device, operation control method, and computer-readable recording medium storing operation control program
US20240020103A1 (en) Parallelizing data processing unit provisioning
US20240036896A1 (en) Generating installation images based upon dpu-specific capabilities
EP2645245B1 (en) Information processing apparatus, apparatus mangement method, and apparatus management program
WO2022041839A1 (zh) 裸金属服务器在线迁移方法以及系统
US20230350755A1 (en) Coordinated operating system rollback

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130722

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130813