JP2014029739A - Multi-core processor system, control program, and control method - Google Patents

Multi-core processor system, control program, and control method Download PDF

Info

Publication number
JP2014029739A
JP2014029739A JP2013235497A JP2013235497A JP2014029739A JP 2014029739 A JP2014029739 A JP 2014029739A JP 2013235497 A JP2013235497 A JP 2013235497A JP 2013235497 A JP2013235497 A JP 2013235497A JP 2014029739 A JP2014029739 A JP 2014029739A
Authority
JP
Japan
Prior art keywords
boot program
cpu
old
access
hypervisor
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.)
Granted
Application number
JP2013235497A
Other languages
Japanese (ja)
Other versions
JP5713089B2 (en
Inventor
Koichiro Yamashita
浩一郎 山下
Hiromasa Yamauchi
宏真 山内
Kiyoshi Miyazaki
清志 宮▲崎▼
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
Priority to JP2013235497A priority Critical patent/JP5713089B2/en
Publication of JP2014029739A publication Critical patent/JP2014029739A/en
Application granted granted Critical
Publication of JP5713089B2 publication Critical patent/JP5713089B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To achieve non-stop update of an OS.SOLUTION: In the case that urgency is low after downloading and static verification of a new boot program are ended (step S1503: low), an old OS (master) 122 determines whether there is core with no process allocated thereto among cores booted by using an old boot program (step S1505). In the case that the old OS (master) 122 determines that there is a core with no process allocated thereto (step S1505: Yes), a hypervisor 121 converts a reference area of the boot program from an old boot program area to a new boot program area (step S1511), and notifies the core with no process allocated thereto of a reboot instruction to designate the converted reference area (step S1512).

Description

本発明は、オペレーティングシステムを更新するマルチコアプロセッサシステム、制御プログラム、および制御方法に関する。   The present invention relates to a multi-core processor system, a control program, and a control method for updating an operating system.

従来の携帯型端末では、オペレーティングシステム(以下、「OS(Operating System)」と称する。)の更新に当たり、更新期間中にはアプリケーションの動作を停止させる必要があった。このため、更新期間中には、利用者はアプリケーションの動作(以下、「機能」と称する。)を利用することができないので、深夜時間帯など利用者の利用頻度が下がる時間帯に更新が行われていた。しかし、汎用計算機とは異なり、携帯型端末などの組み込みシステムは24時間365日動かし続けることを想定しており、機能を停止させなければならないことが問題となっていた。   In the conventional portable terminal, when the operating system (hereinafter referred to as “OS (Operating System)”) is updated, it is necessary to stop the operation of the application during the update period. For this reason, during the update period, the user cannot use the application operation (hereinafter referred to as “function”), so the update is performed during a time period in which the user's use frequency decreases, such as a midnight time period. It was broken. However, unlike a general-purpose computer, an embedded system such as a portable terminal is assumed to continue to operate for 24 hours and 365 days, and the function must be stopped.

サーバ分野においては、無停止でアップデートを行う2つの手法が提案されている。一つ目は、主系統の他に待機系統を用意し、主系統のアップデート中には待機系統で処理を行うもの(従来技術1)である(たとえば、下記特許文献1,2を参照。)。2つ目は、仮想マシンを運用し、アップデート期間中にOSを含むソフトウェアを仮想マシンで動作させること(従来技術2)である。   In the server field, two methods for updating without stopping have been proposed. The first is to prepare a standby system in addition to the main system, and perform processing in the standby system during the update of the main system (conventional technology 1) (see, for example, Patent Documents 1 and 2 below). . The second is to operate a virtual machine and operate software including an OS on the virtual machine during the update period (prior art 2).

特開昭54−106146号公報JP 54-106146 A 特開2003−330744号公報JP 2003-330744 A

しかしながら、従来技術1および従来技術2の場合、組み込みシステムにおいては、システム規模や費用の増加を招くという問題があった。一方、待機系統や仮想マシンがない場合、アップデートを代行することができないため、アップデートの際に機能を停止しなければならないという問題があった。   However, in the case of the prior art 1 and the prior art 2, the embedded system has a problem in that the system scale and cost are increased. On the other hand, if there is no standby system or virtual machine, there is a problem that the function must be stopped during the update because the update cannot be performed.

このように、携帯型端末などの組み込みシステムは24時間365日動かし続けることを想定しており、従来では、更新期間中には、利用者は機能を利用することができず、また、機能を停止させなければならないことが問題となっていた。   As described above, it is assumed that an embedded system such as a portable terminal will continue to operate for 24 hours 365 days. Conventionally, the user cannot use the function during the update period, and the function cannot be used. The problem was that it had to be stopped.

本発明は、上述した従来技術による問題点を解消するため、システム規模や費用の低減化を図りつつ、OSの無停止アップデートを実現することができるマルチコアプロセッサシステム、制御プログラム、および制御方法を提供することを目的とする。   The present invention provides a multi-core processor system, a control program, and a control method capable of realizing a non-disruptive update of an OS while reducing the system scale and cost in order to solve the above-described problems caused by the prior art. The purpose is to do.

本発明の一観点によれば、複数のコアと、前記複数のコアで実行される第1のブートプログラムおよび前記複数のコアがブート時にアクセスするブートアドレスを記憶する記憶部とを有するマルチコアプロセッサシステムであって、前記複数のコアのうちの第1のコアは、前記記憶部において前記第1のブートプログラムの記憶領域と異なる記憶領域に第2のブートプログラムを書き込み、前記第1のブートプログラムに基づきブートした前記複数のコアのうち、プロセスが割り当てられていない第2のコアがリブート時に参照する参照領域を前記第1のブートプログラムの記憶領域から前記第2のブートプログラムの記憶領域に変換し、変換後の前記参照領域を指定するリブート指示を前記第2のコアへ通知するマルチコアプロセッサシステム、制御プログラム、および制御方法を提供する。   According to one aspect of the present invention, a multi-core processor system having a plurality of cores, and a storage unit that stores a first boot program executed by the plurality of cores and a boot address accessed by the plurality of cores at the time of booting The first core of the plurality of cores writes a second boot program in a storage area different from the storage area of the first boot program in the storage unit, and stores the second boot program in the first boot program. A reference area to which a second core to which a process is not assigned among the plurality of cores booted based on the reference is rebooted is converted from the storage area of the first boot program to the storage area of the second boot program A multi-core processor system that notifies the second core of a reboot instruction that specifies the converted reference area Arm, provides a control program, and control method.

本マルチコアプロセッサシステム、制御プログラム、および制御方法によれば、システム規模や費用の低減化を図りつつ、OSの無停止アップデートを実現することができるという効果を奏する。   According to the present multi-core processor system, control program, and control method, there is an effect that non-stop update of the OS can be realized while reducing the system scale and cost.

実施の形態にかかるマルチコアプロセッサシステムのハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the multi-core processor system concerning embodiment. マルチコアプロセッサシステム100の機能的構成を示すブロック図である。2 is a block diagram showing a functional configuration of a multi-core processor system 100. FIG. 新ブートプログラムのダウンロード準備例とダウンロード例を示す説明図である。It is explanatory drawing which shows the download preparation example and download example of a new boot program. 新ブートプログラム領域が設定される例を示す説明図である。It is explanatory drawing which shows the example in which a new boot program area | region is set. CPU#Nがリブートされる例を示す説明図である。It is explanatory drawing which shows the example by which CPU # N is rebooted. ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その1)である。FIG. 10 is an explanatory diagram (part 1) illustrating an example of memory access restriction by the hypervisor 121; ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その2)である。FIG. 10 is an explanatory diagram (part 2) illustrating an example of memory access restriction by the hypervisor 121; ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その3)である。FIG. 10 is an explanatory diagram (part 3) illustrating an example of memory access restriction by the hypervisor 121; ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その4)である。FIG. 10 is an explanatory diagram (part 4) illustrating an example of memory access restriction by the hypervisor 121; CPU#Nで新OSがブートされた例を示す説明図である。It is explanatory drawing which shows the example by which new OS was booted by CPU # N. CPU#Mで新OSをブートさせる準備例を示す説明図である。It is explanatory drawing which shows the example of a preparation which boots new OS by CPU # M. CPU#Mに割り当てられているプロセスがすべて完了した例を示す説明図である。It is explanatory drawing which shows the example which all the processes allocated to CPU # M completed. すべてのCPUで新OSがブートされた例を示す説明図である。It is explanatory drawing which shows the example by which new OS was booted with all the CPUs. マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その1)である。5 is a flowchart (part 1) illustrating an OS update procedure performed by the multi-core processor system. マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その2)である。6 is a flowchart (part 2) illustrating an OS update procedure performed by the multi-core processor system. ハイパーバイザ121によるメモリアクセス制限の制限処理手順を示すフローチャートである。12 is a flowchart illustrating a memory access restriction processing procedure performed by the hypervisor 121. マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その3)である。12 is a flowchart (No. 3) illustrating the OS update procedure by the multi-core processor system.

以下に添付図面を参照して、本発明にかかるマルチコアプロセッサシステム、制御プログラム、および制御方法の好適な実施の形態を詳細に説明する。   Exemplary embodiments of a multicore processor system, a control program, and a control method according to the present invention will be explained below in detail with reference to the accompanying drawings.

(マルチコアプロセッサシステムのハードウェア構成)
図1は、実施の形態にかかるマルチコアプロセッサシステムのハードウェア構成を示すブロック図である。図1において、マルチコアプロセッサシステム100は、CPU(Central Processing Unit)♯Mと、CPU#Nと、調停回路102と、共有メモリ103と、ストレージ104と、I/F(InterFace)105と、を備えている。また、各構成部は、バス101によってそれぞれ接続されている。
(Hardware configuration of multi-core processor system)
FIG. 1 is a block diagram of a hardware configuration of the multi-core processor system according to the embodiment. In FIG. 1, a multi-core processor system 100 includes a CPU (Central Processing Unit) #M, a CPU #N, an arbitration circuit 102, a shared memory 103, a storage 104, and an I / F (InterFace) 105. ing. Each component is connected by a bus 101.

ここで、マルチコアプロセッサとは、コアが複数搭載されたプロセッサである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。なお、本実施の形態では、説明を単純化するため、シングルコアのCPU#MとCPU#Nの2つのプロセッサが並列に接続されているプロセッサ群を例に挙げて説明する。   Here, the multi-core processor is a processor equipped with a plurality of cores. If a plurality of cores are mounted, a single processor having a plurality of cores may be used, or a processor group in which single core processors are arranged in parallel may be used. In the present embodiment, in order to simplify the description, a processor group in which two processors of single core CPU #M and CPU #N are connected in parallel will be described as an example.

CPU#MとCPU#Nは、独立して動作可能なコアとキャッシュとレジスタなどを備えている。ストレージ104に記憶されているプログラムは、CPU#MまたはCPU#Nによって共有メモリ103にマッピングされ、ロードされることで、コーディングされている処理をCPU#MまたはCPU#Nに実行させることとなる。   The CPU #M and CPU #N include a core, a cache, a register, and the like that can operate independently. The program stored in the storage 104 is mapped to the shared memory 103 by the CPU #M or CPU #N and loaded, thereby causing the CPU #M or CPU #N to execute the coded processing. .

調停回路102は、別々のCPUから同時に共有メモリ103へのアクセスが発生しても競合しないように調停する回路である。調停回路102内の優先度の情報は、CPUごとの優先度を示す情報であり、調停回路102は優先度の情報に基づいて共有メモリ103へのアクセスを調停する。本実施の形態では、優先度は高いか否かの2段階とする。高優先は優先度が高いことを示し、低優先は優先度が高くないことを示す。   The arbitration circuit 102 is a circuit that performs arbitration so that no conflict occurs even when accesses to the shared memory 103 occur simultaneously from different CPUs. The priority information in the arbitration circuit 102 is information indicating the priority for each CPU, and the arbitration circuit 102 arbitrates access to the shared memory 103 based on the priority information. In the present embodiment, there are two stages of whether the priority is high. High priority indicates that the priority is high, and low priority indicates that the priority is not high.

共有メモリ103は、CPU#Mローカル領域110やCPU#Nローカル領域111を有するメモリである。共有メモリ103は、たとえば、ROM(Read Only Memory)、RAM(Randam Access Memory)などにより構成されている。たとえば、RAMは、CPU#MとCPU#Nのワークエリアとして使用される。   The shared memory 103 is a memory having a CPU # M local area 110 and a CPU # N local area 111. The shared memory 103 is configured by, for example, a ROM (Read Only Memory), a RAM (Randam Access Memory), and the like. For example, the RAM is used as a work area for CPU #M and CPU #N.

ストレージ104は、MBR108と、旧ブートプログラムの記憶領域(以下、「旧ブートプログラム領域109」)と、ユーザのファイルシステム領域を有している。ストレージ104は、たとえば、フラッシュROMやハードディスクドライブなどにより構成されている。   The storage 104 has an MBR 108, an old boot program storage area (hereinafter referred to as “old boot program area 109”), and a user file system area. The storage 104 is configured by, for example, a flash ROM or a hard disk drive.

MBR(Master Boot Record)108とは、CPU#MやCPU#Nの起動時に最初に読み込まれるストレージ104上の先頭部分(セクタ)である。MBR108には、ストレージ104内に収められたどのOSをどのように起動するかなどの情報が記録され、具体的には、ブートストラップローダ、パーティションテーブル、ブートシグニチャがそれぞれ格納されている。   The MBR (Master Boot Record) 108 is a head portion (sector) on the storage 104 that is first read when the CPU #M or CPU #N is activated. The MBR 108 records information such as how to boot which OS stored in the storage 104, and specifically stores a bootstrap loader, a partition table, and a boot signature.

ブートストラップローダには、起動用のプログラムが格納されている。パーティションテーブルにはブートプログラムが格納されている開始アドレスおよび終了アドレスが示されている。ブートシグニチャには0xAA55という値が識別子として格納され、該ブートシグニチャに0xAA55が格納されていればMBR108が有効であることを示し、0xAA55が格納されていなければMBR108が無効であることを示している。   The bootstrap loader stores a startup program. The partition table shows a start address and an end address where the boot program is stored. The boot signature stores a value of 0xAA55 as an identifier. If 0xAA55 is stored in the boot signature, the MBR 108 is valid. If 0xAA55 is not stored, the MBR 108 is invalid. .

ここで、ブートプログラムとは、OSの中核部分のプログラムである。たとえば、Linux(登録商標)の場合、OSの中核部分はカーネルである。旧ブートプログラム領域109は、旧ブートプログラムが記憶されている領域であり、該領域の開始アドレスから終了アドレスはパーティションテーブルに記憶されている。本実施の形態で示すブートプログラムの新・旧は、先にストレージ104に記憶されているか否か、または版数が更新されているか否かを示している。   Here, the boot program is a core program of the OS. For example, in the case of Linux (registered trademark), the core part of the OS is a kernel. The old boot program area 109 is an area in which the old boot program is stored, and the start address and end address of the area are stored in the partition table. The new / old boot programs shown in the present embodiment indicate whether they are stored in the storage 104 first, or whether the version number has been updated.

CPU#M(またはCPU#N)を起動するとまずMBR108が読み込まれ、ブートストラップローダに格納されている起動用のプログラムにコーディングされている処理がCPU#M(またはCPU#N)に実行される。ブートストラップローダはパーティションの位置や大きさなどを記録したパーティションテーブルを読み込み、OSの旧ブートプログラムの開始アドレスを読み込む。   When CPU #M (or CPU #N) is activated, MBR 108 is first read, and the processing coded in the activation program stored in the bootstrap loader is executed by CPU #M (or CPU #N). . The bootstrap loader reads the partition table that records the position and size of the partition, and reads the start address of the old boot program of the OS.

ここで、CPU#Mは旧ブートプログラムを読み込み、読み込んだ旧ブートプログラムを共有メモリ103にマッピングする。CPU#Mがマッピングした旧ブートプログラムの共有メモリ103内の領域が、上述のCPU#Mローカル領域110である。そして、CPU#Mが、マッピングした旧ブートプログラムにコーディングされている処理を旧OS(マスタ)122として起動する。   Here, the CPU #M reads the old boot program and maps the read old boot program to the shared memory 103. The area in the shared memory 103 of the old boot program mapped by the CPU #M is the CPU #M local area 110 described above. Then, the CPU #M starts the process coded in the mapped old boot program as the old OS (master) 122.

一方、CPU#Nは旧ブートプログラムを読み込み、読み込んだ旧ブートプログラムを共有メモリ103にマッピングする。CPU#Nがマッピングした旧ブートプログラムの共有メモリ103内の領域が、上述のCPU#Nローカル領域111である。そして、CPU#Nが、マッピングした旧ブートプログラムにコーディングされている処理をマスタOSの旧OS(スレーブ)123として起動する。   On the other hand, the CPU #N reads the old boot program and maps the read old boot program to the shared memory 103. The area in the shared memory 103 of the old boot program mapped by the CPU #N is the CPU #N local area 111 described above. Then, the CPU #N starts the process coded in the mapped old boot program as the old OS (slave) 123 of the master OS.

そして、I/F105は、ネットワーク106と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F105には、たとえばモデムなどを採用することができる。I/F105は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク106に接続され、このネットワーク106を介してOSの更新データ配信元107に接続される。   The I / F 105 controls an internal interface with the network 106 and controls input / output of data from an external device. For example, a modem or the like can be adopted as the I / F 105. The I / F 105 is connected to a network 106 such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet through a communication line, and is connected to an OS update data distribution source 107 via the network 106.

つぎに、ハイパーバイザ121は、CPU#MとCPU#Nなどのハードウェア上で直接動作するプログラムであり、該ハードウェア内のレジスタに記憶されているプログラムである。ハイパーバイザ121はCPUごとに独立して動作するが、すべて同一処理を実施するため、図1では省略してハイパーバイザ121のみ記載している。   Next, the hypervisor 121 is a program that directly operates on hardware such as CPU # M and CPU # N, and is a program stored in a register in the hardware. Although the hypervisor 121 operates independently for each CPU, since all perform the same processing, only the hypervisor 121 is described in FIG.

なお、たとえば、後述する旧ブートプログラムの削除処理であれば、複数のハイパーバイザ121が一つしか存在しない旧ブートプログラムを削除しているようであるが、最も早く削除処理まで処理がたどり着いたCPUのハイパーバイザ121が削除を行う。よって、あとから他のCPUのハイパーバイザ121が削除処理を行っても破棄する旧ブートプログラムはすでに存在しないだけである。   For example, in the case of the old boot program deletion process described later, it seems that the old boot program in which only one hypervisor 121 exists is deleted, but the CPU that has reached the earliest process until the deletion process. The hypervisor 121 deletes the file. Therefore, even if the hypervisor 121 of another CPU performs a deletion process later, there is no longer an old boot program to be discarded.

ハイパーバイザ121は、CPU#MやCPU#N内のレジスタを直接参照したり、CPU#MやCPU#N内のレジスタの情報を読み出したり、CPU#MやCPU#N内のレジスタの情報を書き換えたりする特権命令を実施することができる。   The hypervisor 121 directly refers to the registers in the CPU #M and CPU #N, reads the information in the registers in the CPU #M and CPU #N, and reads the information in the registers in the CPU #M and CPU #N. Privileged instructions that can be rewritten can be implemented.

さらに、CPU#MやCPU#Nへのリブート指示もハイパーバイザ121の特権命令である。ハイパーバイザ121によるリブート指示とは、具体的には、パーティションテーブル内に記述されている旧ブートプログラム領域109の開始アドレスにジャンプするようにCPU#MやCPU#Nへ指示することである。本実施の形態では、新ブートプログラムの記憶領域(以下、「新ブートプログラム領域」と称する。)の開始アドレスへジャンプするようにCPU#MやCPU#Nへ指示することで、CPU#MやCPU#Nは新ブートプログラムでOSを起動する。   Further, a reboot instruction to the CPU #M and CPU #N is also a privileged instruction of the hypervisor 121. Specifically, the reboot instruction by the hypervisor 121 is to instruct the CPU #M or CPU #N to jump to the start address of the old boot program area 109 described in the partition table. In this embodiment, by instructing CPU #M or CPU #N to jump to the start address of the storage area for the new boot program (hereinafter referred to as “new boot program area”), CPU #M or CPU #N starts the OS with a new boot program.

旧OS(マスタ)122および旧OS(スレーブ)123は、ハイパーバイザ121上で動作するソフトウェアである。OSにおけるマスタ・スレーブとCPU間の接続関係におけるマスタ・スレーブとは意味が異なる。マスタOS(本実施の形態では旧OS(マスタ)122)ではプロセスの割り当てを決定するスケジューラを動かし、スレーブOS(本実施の形態では旧OS(スレーブ)123)はスケジューラにより割り当てられたプロセスを実行する。   The old OS (master) 122 and the old OS (slave) 123 are software that operates on the hypervisor 121. The meaning is different between the master / slave in the OS and the master / slave in the connection relationship between the CPUs. The master OS (in this embodiment, the old OS (master) 122) runs a scheduler that determines process allocation, and the slave OS (in this embodiment, the old OS (slave) 123) executes the process assigned by the scheduler. To do.

マスタOSは、プロセスの割り当て結果をタスクテーブルに登録する。ここで、タスクテーブルは、一般的なOSで管理されているプロセス情報のテーブルである。起動時間、メモリリソース、プロセス番号、起動したユーザ名、実行条件(リンクしているOSがサービスするライブラリの版数など)、実行形式ファイルのパスなどが記載されている。すなわち、CPU#Mは、旧OS(マスタ)122によりタスクテーブルから起動時間や実行条件を読み出すことで、各アプリケーション(プロセス)がどのOSに割り当てられているか、どのアプリケーション(プロセス)が実行終了したかを監視することができる。   The master OS registers the process allocation result in the task table. Here, the task table is a table of process information managed by a general OS. The boot time, memory resource, process number, name of the booted user, execution conditions (such as the version of the library serviced by the linked OS), and the path of the executable file are described. That is, the CPU #M reads the startup time and execution conditions from the task table by the old OS (master) 122, which OS (assignment) each application (process) is assigned to, and which application (process) has been executed. Can be monitored.

また、更新検出アプリ131は、OS上で動作するアプリケーションプログラムであり、ブートプログラムの更新を検出する。更新検出アプリ131は、旧OS(マスタ)122上に割り当てられている。また、GUI(Graphic User Interface)のプロセスであるメインプロセス133が旧OS(マスタ)122に割り当てられている。   The update detection application 131 is an application program that runs on the OS, and detects an update of the boot program. The update detection application 131 is allocated on the old OS (master) 122. Further, a main process 133 that is a GUI (Graphic User Interface) process is assigned to the old OS (master) 122.

ダウンローダ132は、OS上で動作するアプリケーションプログラムであり、ブートプログラムやライブラリをダウンロードする。ダウンローダ132は、旧OS(マスタ)122と旧OS(スレーブ)123のうちいずれのOS上で動作しても良いが、ここでは、旧OS(スレーブ)123に割り当てられている。   The downloader 132 is an application program that runs on the OS, and downloads a boot program and a library. The downloader 132 may operate on any of the old OS (master) 122 and the old OS (slave) 123, but is assigned to the old OS (slave) 123 here.

ダウンローダ132は、I/F105を介してOSの更新データ配信元107から新ブートプログラムをダウンロードし、静的ベリファイを実施する。静的ベリファイとは、ブートプログラムのバイナリデータに誤りがないか、規格に従っているかなどを検査することである。動的ベリファイとは、新ブートプログラムで正常にブートされるかを検査することである。   The downloader 132 downloads a new boot program from the OS update data distribution source 107 via the I / F 105 and performs static verification. Static verification is to check whether the binary data of the boot program is correct or conforms to a standard. Dynamic verification is to check whether a new boot program can be normally booted.

(マルチコアプロセッサシステム100の機能的構成)
図2は、マルチコアプロセッサシステム100の機能的構成を示すブロック図である。マルチコアプロセッサシステム100で起動されているハイパーバイザ121は、設定部201と、受付部202と、判断部203と、変換部204と、通知部205と、検出部206と、削除部207と、を含む構成である。上述のようにハイパーバイザ121は通知プログラムを備えるプログラムであるため、ストレージ104または共有メモリ103内のROMに記憶されたハイパーバイザ121をCPU#MおよびCPU#Nに実行させることにより、各機能(設定部201から削除部207)を実現する。
(Functional configuration of multi-core processor system 100)
FIG. 2 is a block diagram showing a functional configuration of the multi-core processor system 100. The hypervisor 121 activated in the multi-core processor system 100 includes a setting unit 201, a reception unit 202, a determination unit 203, a conversion unit 204, a notification unit 205, a detection unit 206, and a deletion unit 207. It is the composition which includes. As described above, since the hypervisor 121 is a program including a notification program, the CPU (#M) and the CPU (#N) cause the hypervisor 121 stored in the storage 104 or the ROM in the shared memory 103 to execute each function ( A deletion unit 207) is realized from the setting unit 201.

まず、設定部201は、新ブートプログラムの更新指示を受け付けると、旧ブートプログラム領域109と所定のマスク値に基づいて新ブートプログラム領域を設定する。   First, upon receiving an instruction to update a new boot program, the setting unit 201 sets a new boot program area based on the old boot program area 109 and a predetermined mask value.

つぎに、受付部202は、設定部201により新ブートプログラム領域が設定された後、新ブートプログラムのダウンロードに関する旧ブートプログラム領域109へのアクセスの入力を受け付ける。   Next, after the new boot program area is set by the setting unit 201, the receiving unit 202 receives an input of access to the old boot program area 109 related to downloading of the new boot program.

判断部203は、受付部202により受け付けられたアクセスがライトアクセスであるかリードアクセスであるかを判断する。   The determination unit 203 determines whether the access received by the reception unit 202 is a write access or a read access.

変換部204は、判断部203によりアクセスがライトアクセスであると判断された場合、ライトアクセスで指定されたアドレスを、前記所定のマスク値に基づいて新プログラム領域を指定するアドレスに変換する。   When the determination unit 203 determines that the access is a write access, the conversion unit 204 converts the address specified by the write access into an address specifying a new program area based on the predetermined mask value.

通知部205は、アクセスがリードアクセスの場合、リードアクセスで指定されたアドレスへのアクセス指示をリードアクセスのアクセス元へ通知する。一方、通知部205は、アクセスがライトアクセスの場合、変換部204による変換後のアドレスへのアクセス指示をライトアクセスのアクセス元へ通知する。つぎに、新ブートプログラムがダウンロードされた後の処理について説明する。   When the access is a read access, the notification unit 205 notifies an access instruction to the address specified by the read access to the access source of the read access. On the other hand, when the access is a write access, the notification unit 205 notifies the access source of the write access of an access instruction to the address after conversion by the conversion unit 204. Next, processing after the new boot program is downloaded will be described.

検出部206は、マルチコアプロセッサの中で旧ブートプログラムを用いてブートしたCPUのうち、プロセスが割り当てられていないCPUを検出する。本実施の形態では、後述するがOSはプロセスが割り当てられていないコアを検出し、ハイパーバイザ121へ検出したコアにプロセスが割り当てられていないことを通知する。そして、ハイパーバイザ121はこの通知を受け付けることをプロセスが割り当てられていないコアを検出するとしている。   The detection unit 206 detects a CPU to which no process is assigned among CPUs booted using an old boot program among multi-core processors. In this embodiment, as will be described later, the OS detects a core to which no process is assigned, and notifies the hypervisor 121 that a process has not been assigned to the detected core. Then, the hypervisor 121 is assumed to detect a core to which no process is assigned to accept this notification.

変換部204は、検出部206によりプロセスが割り当てられていないCPUが検出されると、参照領域を旧ブートプログラム領域109から新ブートプログラムの記憶領域に変換する。   When the detecting unit 206 detects a CPU to which no process is assigned, the converting unit 204 converts the reference area from the old boot program area 109 to the new boot program storage area.

通知部205は、変換部204よる変換後の参照領域を指定するリブート指示を完了したCPUへ通知する通知する。   The notification unit 205 notifies the CPU that has completed the reboot instruction for designating the reference area after conversion by the conversion unit 204.

また、検出部206は、プロセスが割り当てられていないCPUが検出されない場合、割り当てられていたすべてのプロセスの動作が完了したCPUを検出する。   In addition, when a CPU to which no process is assigned is not detected, the detection unit 206 detects a CPU in which operations of all assigned processes have been completed.

そして、変換部204は、検出部206により該完了したCPUが検出されると、参照領域を旧ブートプログラム領域109から新ブートプログラム領域に変換する。通知部205は、変換部204よる変換後の参照領域を指定するリブート指示を完了したCPUへ通知する通知する。   When the detecting unit 206 detects the completed CPU, the converting unit 204 converts the reference area from the old boot program area 109 to the new boot program area. The notification unit 205 notifies the CPU that has completed the reboot instruction for designating the reference area after conversion by the conversion unit 204.

変換部204は、通知部205によりリブート指示が通知されると、記憶装置のマスターブートレコードに記憶されている旧ブートプログラム領域109を指定するアドレスを所定のマスク値に基づき新ブートプログラム領域を指定するアドレスに変換する。   When the notification unit 205 is notified of the reboot instruction, the conversion unit 204 designates the new boot program area based on a predetermined mask value with the address that designates the old boot program area 109 stored in the master boot record of the storage device To the address you want.

削除部207は、変換部204により記憶装置のマスターブートレコードに記憶されている旧ブートプログラム領域109が変更されると、旧ブートプログラム領域109に格納されている旧ブートプログラムを削除する。   When the conversion unit 204 changes the old boot program area 109 stored in the master boot record of the storage device, the deletion unit 207 deletes the old boot program stored in the old boot program area 109.

以上を踏まえて図を用いてマルチコアプロセッサシステム100の詳細な動作について説明する。   Based on the above, detailed operations of the multi-core processor system 100 will be described with reference to the drawings.

図3は、新ブートプログラムのダウンロード準備例とダウンロード例を示す説明図である。まず、更新検出アプリ131がI/Fを介してブートプログラムへの更新を検出し、(1)旧OS(マスタ)122へブートプログラムの更新を通知する。つぎに、旧OS(マスタ)122がブートプログラムの更新を受け付けると、(2)ハイパーバイザ121へブートプログラムの更新を通知する。そして、ハイパーバイザ121が新ブートプログラムの更新を受け付けると、(3)新ブートプログラム領域112を所定のマスク値と旧ブートプログラムの領域に基づいて設定する。   FIG. 3 is an explanatory diagram illustrating a download preparation example and a download example of a new boot program. First, the update detection application 131 detects an update to the boot program via the I / F, and (1) notifies the old OS (master) 122 of the update of the boot program. Next, when the old OS (master) 122 receives the update of the boot program, (2) notifies the hypervisor 121 of the update of the boot program. When the hypervisor 121 receives the update of the new boot program, (3) the new boot program area 112 is set based on a predetermined mask value and the area of the old boot program.

図4は、新ブートプログラム領域112が設定される例を示す説明図である。ここで、(3)新ブートプログラムの領域の設定について詳細例を説明する。ハイパーバイザ121はMBR108のパーティションテーブル401を参照し、旧ブートプログラム領域109の開始アドレスおよび終了アドレスを取得する。ハイパーバイザ121は旧ブートプログラム領域109の開始アドレスとマスク値との論理和を取ることにより新ブートプログラム領域112の開始アドレスを算出する。   FIG. 4 is an explanatory diagram showing an example in which the new boot program area 112 is set. Here, a detailed example of (3) setting of a new boot program area will be described. The hypervisor 121 refers to the partition table 401 of the MBR 108 and acquires the start address and end address of the old boot program area 109. The hypervisor 121 calculates the start address of the new boot program area 112 by taking the logical sum of the start address of the old boot program area 109 and the mask value.

ハイパーバイザ121は旧ブートプログラム領域109の終了アドレスとマスク値との論理和を取ることにより新ブートプログラム領域112の終了アドレスを算出する。ハイパーバイザ121は、ストレージ104内の算出した新ブートプログラムの開始アドレスが示す領域から算出した新ブートプログラムの終了アドレスが示す領域までを新ブートプログラムの領域として確保する。   The hypervisor 121 calculates the end address of the new boot program area 112 by calculating the logical sum of the end address of the old boot program area 109 and the mask value. The hypervisor 121 reserves the area from the area indicated by the calculated start address of the new boot program in the storage 104 to the area indicated by the calculated end address of the new boot program as the area of the new boot program.

図3に戻って、(4)ハイパーバイザ121が旧OS(マスタ)122へダウンロード開始指示を通知し、新ブートプログラムのダウンローダ132および静的ベリファイに関する旧ブートプログラムへのアクセスを監視する。旧OS(マスタ)122がダウンロード開始通知を受け付けると、(5)ダウンローダ132へダウンロード開始指示を通知する。そして、ダウンローダ132はダウンロード開始指示を受け付けると、I/F105を介してOSの更新データ配信元107から新ブートプログラムをダウンロードする。   Returning to FIG. 3, (4) the hypervisor 121 notifies the old OS (master) 122 of a download start instruction, and monitors access to the new boot program downloader 132 and the old boot program related to static verification. When the old OS (master) 122 accepts the download start notification, (5) notifies the downloader 132 of the download start instruction. When the downloader 132 receives a download start instruction, the downloader 132 downloads a new boot program from the update data distribution source 107 of the OS via the I / F 105.

そして、ダウンローダ132が新ブートプログラムをダウンロード中、旧ブートプログラムへのライトアクセスを行うために(6)旧OS(スレーブ)123へ旧ブートプログラムへのアクセスを入力する。旧OS(スレーブ)123が、新ブートプログラムのダウンロードに関する旧ブートプログラムへのアクセスを受け付けると、(7)ハイパーバイザ121へ該アクセスを入力する。   Then, during the download of the new boot program, the downloader 132 inputs (6) access to the old boot program to the old OS (slave) 123 in order to perform write access to the old boot program. When the old OS (slave) 123 receives access to the old boot program related to downloading of the new boot program, (7) the access is input to the hypervisor 121.

そして、ハイパーバイザ121が、新ブートプログラムのダウンロードに関する旧ブートプログラムへのアクセスを受け付けると、該アクセスがライトアクセスであるかリードアクセスであるかを判断する。ハイパーバイザ121がライトアクセスであると判断した場合、該ライトアクセスが示すアドレスを所定のマスク値に基づいて新ブートプログラム領域112を指定するアドレスに変換する。   When the hypervisor 121 receives access to the old boot program related to downloading of the new boot program, the hypervisor 121 determines whether the access is a write access or a read access. When the hypervisor 121 determines that the access is a write access, the address indicated by the write access is converted to an address that designates the new boot program area 112 based on a predetermined mask value.

そして、ハイパーバイザ121が、(8)変換後のアドレスへのアクセス指示を旧OS(スレーブ)123へ通知する。一方、ハイパーバイザ121がリードアクセスであると判断した場合、リードアクセスで指定されたアドレスへのアクセス指示を旧OS(スレーブ)123へ通知する。   Then, the hypervisor 121 (8) notifies the old OS (slave) 123 of an instruction to access the converted address. On the other hand, when the hypervisor 121 determines that the access is a read access, the access instruction to the address designated by the read access is notified to the old OS (slave) 123.

アクセスが指定するアドレスを0x1110とし、所定のマスク値を0x1000とすする。たとえば、リードアクセスの場合、ハイパーバイザ121が0x1110へのアクセス指示を旧OS(スレーブ)123へ通知する。たとえば、ライトアクセスの場合、ハイパーバイザ121が0x1110と0x1000の論理和を算出する(下記式(1))ことで新ブートプログラム領域112を指定するアドレスに変換する。そして、変換後のアドレスへのアクセス指示を旧OS(スレーブ)123へ通知する。   An address designated by access is set to 0x1110, and a predetermined mask value is set to 0x1000. For example, in the case of read access, the hypervisor 121 notifies the old OS (slave) 123 of an access instruction to 0x1110. For example, in the case of write access, the hypervisor 121 calculates a logical sum of 0x1110 and 0x1000 (the following formula (1)) to convert the address to the new boot program area 112. Then, the access instruction to the converted address is notified to the old OS (slave) 123.

ブートプログラム領域を指定するアドレス=0x1110+0x1000
=0x0110 ・・・(1)
Address specifying the boot program area = 0x1110 + 0x1000
= 0x0110 (1)

ここで、「+」が論理和を示している。よって、ハイパーバイザ121が0x0110へのアクセス指示を旧OS(スレーブ)123へ通知する。   Here, “+” indicates a logical sum. Therefore, the hypervisor 121 notifies the old OS (slave) 123 of an access instruction to 0x0110.

旧OS(スレーブ)123は、ハイパーバイザ121からアクセス指示を受け付けると、(9)ダウンローダ132へアクセス指示を通知する。図3では、ライトアクセスを示しているため、ダウンローダ132は、(10)変換後のアドレスへのアクセスを実行する。   When the old OS (slave) 123 receives an access instruction from the hypervisor 121, (9) notifies the downloader 132 of the access instruction. Since FIG. 3 shows write access, the downloader 132 executes (10) access to the address after conversion.

図5は、CPU#Nがリブートされる例を示す説明図である。新ブートプログラム領域112への新ブートプログラムのダウンロード後、更新検出アプリ131が(11)更新条件情報を旧OS(マスタ)122へ通知する。更新条件情報は、実行制約と、対象版数と、更新実施CPU数と、緊急度の情報とを有している。緊急度の情報は緊急度が高いか否かに関する情報である。   FIG. 5 is an explanatory diagram illustrating an example in which the CPU #N is rebooted. After downloading the new boot program to the new boot program area 112, the update detection application 131 notifies the old OS (master) 122 of (11) update condition information. The update condition information includes execution constraint, target version number, update execution CPU number, and urgency information. The information on the urgency level is information regarding whether or not the urgency level is high.

旧OS(マスタ)122は、更新条件情報を受け付けると、受け付けた更新条件情報から緊急度の情報を読み出し、読み出した緊急度の情報が、緊急度が高いことを示す場合、タスクテーブルを用いて更新実施CPUに割り当てられているプロセスを特定し、(12)強制マイグレートする。ここでは、プロセス134が特定される。強制マイグレートにより更新実施CPUに割り当てられているプロセス134がCPU#Mに割り当てられている。   When the old OS (master) 122 receives the update condition information, the old OS (master) 122 reads the urgency level information from the received update condition information. If the read urgency level information indicates that the urgency level is high, the old OS (master) 122 uses the task table. The process assigned to the update execution CPU is specified, and (12) forced migration is performed. Here, process 134 is identified. The process 134 assigned to the update execution CPU by the forced migration is assigned to the CPU #M.

ここで、更新実施CPUをCPU#Nとする。更新実施CPUとは、他のCPUに先だって新ブートプログラムでリブートするCPUである。更新実施CPUの決定方法については、少なくとも旧OSへのプロセスの割り当てが可能なマスタOSが旧OSの中で最後にリブートされればよいため、特に限定しない。   Here, the update execution CPU is CPU # N. The update execution CPU is a CPU that reboots with a new boot program prior to other CPUs. The method for determining the update execution CPU is not particularly limited because at least a master OS capable of assigning a process to the old OS may be rebooted last in the old OS.

たとえば、4つのCPUによりマルチコアプロセッサが構成されている場合、マスタOSの処理を実行するCPUを除く残余のCPUから2つのCPUを更新実施CPUとする。そして、マスタOSの処理を実行するCPUともう一つのCPUを更新実施CPUがリブート後にリブートするCPUとしてもよい。また、マスタOSの処理を実行するCPUを除く残余のCPUをすべて更新実施CPUとしてもよい。   For example, when a multi-core processor is configured by four CPUs, two CPUs from the remaining CPUs excluding the CPU that executes the processing of the master OS are set as update execution CPUs. The CPU that executes the process of the master OS and another CPU may be replaced with the CPU that is rebooted after the update execution CPU reboots. Further, all the remaining CPUs other than the CPU that executes the process of the master OS may be the update execution CPU.

また、読み出した緊急度の情報が、緊急度が高くない(緊急度が低い)ことを示す場合、旧OS(マスタ)122が、マルチコアプロセッサのうちマスタOSを動作するCPUを除くCPUからいずれのプロセスも割り当てられていないCPUを検出する。CPU#Nには、プロセスが割り当てられているため、いずれのプロセスも割り当てられていないCPUは検出されない。つぎに、旧OS(マスタ)122が、CPU#Nへのディスパッチを禁止し、CPU#Nに割り当てられているプロセスが終了するのを検出する。   When the read urgency level information indicates that the urgency level is not high (the urgency level is low), the old OS (master) 122 is one of the CPUs other than the CPU that operates the master OS among the multi-core processors. A CPU to which no process is assigned is detected. Since a process is assigned to CPU #N, a CPU to which no process is assigned is not detected. Next, the old OS (master) 122 prohibits dispatching to the CPU #N, and detects that the process assigned to the CPU #N is terminated.

そして、強制マイグレートまたはプロセスの終了によってCPU#Nに割り当てられていたプロセスが無くなると、(13)旧OS(マスタ)122がCPU#Nに割り当てられていたプロセスが完了したこと(または、更新実施CPUでもよい。)およびメモリアクセス制限指示をハイパーバイザ121へ通知する。ハイパーバイザ121が該通知を受け付けると、(14)共有メモリ103のアクセス制限を開始する。ハイパーバイザ121が共有メモリ103のアクセス制限を開始すると、たとえば、各OSやアプリケーションはハイパーバイザ121からのアクセス指示を受け付けるまで共有メモリ103へアクセスできないこととする。   Then, when there is no process assigned to CPU #N due to forced migration or process termination, (13) the process that old OS (master) 122 has been assigned to CPU #N is completed (or updated) The execution CPU may be used) and a memory access restriction instruction is notified to the hypervisor 121. When the hypervisor 121 receives the notification, (14) the access restriction of the shared memory 103 is started. When the hypervisor 121 starts to restrict access to the shared memory 103, for example, each OS or application cannot access the shared memory 103 until an access instruction from the hypervisor 121 is received.

そして、ハイパーバイザ121が、共有メモリ103のアクセス制限を開始した後、ブートプログラムの参照領域を旧ブートプログラム領域109から新ブートプログラム領域112へ変換し、(15)変換後の参照領域を指定するリブート指示を旧OS(スレーブ)123へ通知する。旧OS(スレーブ)123は、リブート指示を受け付けると、(16)新ブートプログラムを参照してリブートを開始する。また、更新対象CPUのうち一つのCPUが新OSをマスタOSとしてリブートする。ここでは、CPU#Nのみであるため、CPU#Nが新OSをマスタOSとしてリブートする。つぎに、ハイパーバイザ121によるメモリアクセス制限について図6から図9を用いて説明する。   Then, after the hypervisor 121 starts to restrict access to the shared memory 103, the boot program reference area is converted from the old boot program area 109 to the new boot program area 112, and (15) the converted reference area is designated. A reboot instruction is notified to the old OS (slave) 123. When the old OS (slave) 123 receives the reboot instruction, the old OS (slave) 123 starts the reboot with reference to the new boot program (16). Also, one of the update target CPUs reboots with the new OS as the master OS. Since only the CPU #N is used here, the CPU #N reboots with the new OS as the master OS. Next, memory access restriction by the hypervisor 121 will be described with reference to FIGS.

図6は、ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その1)である。図では、(17)リブート中の旧OSから共有メモリ103内のCPU#Mローカル領域110へのアクセスが発生した場合について説明する。ハイパーバイザ121は、メモリアクセス制限を開始すると、アプリケーションから共有メモリ103へのアクセスおよびアクセスのアドレスをすべて検出する。   FIG. 6 is an explanatory diagram (part 1) illustrating an example of memory access restriction by the hypervisor 121. In the figure, (17) a case where an access to the CPU # M local area 110 in the shared memory 103 occurs from the old OS being rebooted will be described. When the hypervisor 121 starts the memory access restriction, the hypervisor 121 detects all accesses to the shared memory 103 from the application and access addresses.

ハイパーバイザ121が(18)リブート中の旧OSから共有メモリ103内のCPU#Mローカル領域110へのアクセスとアクセスのアドレスを検出する。ハイパーバイザ121がCPU#Nからのアクセスか否かを判断し、ここでは、旧OS(スレーブ)123からのアクセスであるためCPU#Nからのアクセスであると判断される。つづいて、ハイパーバイザ121が他のCPUのローカル領域へのアクセスか否かを検出したアクセスのアドレスに基づいて判断する。   The hypervisor 121 (18) detects the access to the CPU #M local area 110 in the shared memory 103 and the access address from the old OS being rebooted. The hypervisor 121 determines whether or not the access is from the CPU #N. Here, since the access is from the old OS (slave) 123, it is determined that the access is from the CPU #N. Subsequently, the hypervisor 121 makes a determination based on the address of the access that has detected whether or not it is an access to the local area of another CPU.

ここでは、検出されたアクセスがCPU#Mローカル領域110へのアクセスであると判断され、(19)ハイパーバイザ121が旧OS(スレーブ)123の更新失敗を出力、またはダウンロードした新ブートプログラムが不正であることを出力する。出力形式としては、たとえば、ディスプレイへの表示、I/F105による外部装置への送信がある。また、共有メモリ103内の各CPUのローカル領域を除く領域などに記憶することとしてもよい。   Here, it is determined that the detected access is an access to the CPU #M local area 110, and (19) the hypervisor 121 outputs an update failure of the old OS (slave) 123 or the downloaded new boot program is invalid. Is output. Examples of the output format include display on a display and transmission to an external device via the I / F 105. Further, it may be stored in an area other than the local area of each CPU in the shared memory 103.

ブート中であるCPU#NからCPU#MのワークエリアであるCPU#Mローカル領域110へのアクセスは正常なブートプログラムであれば発生しない。したがって、(17)〜(19)により異常であるブートプログラムで更新するのを防止することができる。   Access from the CPU #N being booted to the CPU #M local area 110, which is the work area of the CPU #M, does not occur if it is a normal boot program. Therefore, it is possible to prevent updating with an abnormal boot program according to (17) to (19).

図7は、ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その2)である。図7では、(20)リブート中の旧OSから共有メモリ103内のCPU#Nローカル領域111へのアクセスが発生した場合について説明する。   FIG. 7 is an explanatory diagram (part 2) of an example of memory access restriction by the hypervisor 121. In FIG. 7, (20) a case where an access to the CPU #N local area 111 in the shared memory 103 occurs from the old OS being rebooted will be described.

ハイパーバイザ121が(21)リブート中の旧OSから共有メモリ103内のCPU#Nローカル領域111へのアクセスを検出する。ハイパーバイザ121がCPU#Nからのアクセスか否かを判断し、ここでは、旧OS(スレーブ)123からのアクセスであるためCPU#Nからのアクセスであると判断される。つづいて、ハイパーバイザ121が他のCPUのローカル領域へのアクセスか否かを検出したアクセスが指定するアドレスに基づいて判断する。   The hypervisor 121 (21) detects access to the CPU #N local area 111 in the shared memory 103 from the old OS being rebooted. The hypervisor 121 determines whether or not the access is from the CPU #N. Here, since the access is from the old OS (slave) 123, it is determined that the access is from the CPU #N. Subsequently, the determination is made based on the address designated by the access in which the hypervisor 121 detects whether the access is to the local area of another CPU.

ここでは、検出されたアクセスがCPU#Nローカル領域111へのアクセスであると判断され、ハイパーバイザ121が(22)調停回路102内のCPU#Nに関する優先度の情報を低優先に設定する。そして、ハイパーバイザ121がアクセス指示を通知する。   Here, it is determined that the detected access is access to the CPU #N local area 111, and the hypervisor 121 sets (22) priority information regarding the CPU #N in the arbitration circuit 102 to low priority. Then, the hypervisor 121 notifies an access instruction.

ブート中であるCPU#Nは、各種テーブルの初期化やシステムファイルの更新、システムファイルの一時退避・復元、該一時退避・復元にともなうキャッシュデータのフラッシュなどを行う。すなわち、ブート中であるCPU#Nは、通常のアプリケーションを動作中であるCPU#Mと比較して共有メモリ103へのアクセスが多い。   The CPU #N that is booting initializes various tables, updates system files, temporarily saves and restores system files, and flushes cache data associated with the temporary save and restore. That is, the CPU #N that is booting has more access to the shared memory 103 than the CPU #M that is operating a normal application.

上述のように調停回路102内のCPU#Nに関する優先度の情報が低優先に設定されることで、メモリコンテンション(メモリアクセス権の争奪)を防止することができる。そして、ブート中でないCPU#Mで動作しているアプリケーションに影響を与えることなくOSを更新できる。   As described above, the priority information regarding the CPU #N in the arbitration circuit 102 is set to low priority, so that memory contention (contention for memory access right) can be prevented. Then, the OS can be updated without affecting applications running on the CPU #M that is not booting.

図8は、ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その3)である。図8では、(23)旧OS(マスタ)122から共有メモリ103内のCPU#Mローカル領域110へのアクセスが発生した場合について説明する。   FIG. 8 is an explanatory diagram (part 3) illustrating an example of memory access restriction by the hypervisor 121. In FIG. 8, (23) a case where an access from the old OS (master) 122 to the CPU # M local area 110 in the shared memory 103 occurs will be described.

ハイパーバイザ121が(24)旧OS(マスタ)122から共有メモリ103内のCPU#Mローカル領域110へのアクセスを検出する。ハイパーバイザ121が検出したアクセスがCPU#Nからのアクセスか否かを判断し、ここでは、旧OS(マスタ)122からのアクセスであるためCPU#Nからのアクセスでないと判断される。つづいて、ハイパーバイザ121が他のCPUのローカル領域へのアクセスか否かを検出したアクセスが示すアドレスに基づいて判断する。   The hypervisor 121 detects (24) access from the old OS (master) 122 to the CPU # M local area 110 in the shared memory 103. It is determined whether or not the access detected by the hypervisor 121 is an access from the CPU #N. Here, since the access is from the old OS (master) 122, it is determined that the access is not from the CPU #N. Subsequently, the determination is made based on the address indicated by the access in which the hypervisor 121 detects whether or not it is an access to the local area of another CPU.

ここでは、検出されたアクセスがCPU#Mローカル領域110へのアクセスであると判断され、ハイパーバイザ121が(25)調停回路102内のCPU#Nに関する優先度の情報を低優先に設定する。そして、ハイパーバイザ121が旧OS(マスタ)122へアクセス指示を通知する。   Here, it is determined that the detected access is access to the CPU # M local area 110, and the hypervisor 121 sets (25) priority information regarding the CPU # N in the arbitration circuit 102 to low priority. Then, the hypervisor 121 notifies the old OS (master) 122 of an access instruction.

図9は、ハイパーバイザ121によるメモリアクセス制限例を示す説明図(その4)である。図9では、(26)旧OS(マスタ)122から共有メモリ103内のCPU#Nローカル領域111へのアクセスが発生した場合について説明する。   FIG. 9 is an explanatory diagram (part 4) illustrating an example of memory access restriction by the hypervisor 121. In FIG. 9, (26) a case where an access from the old OS (master) 122 to the CPU #N local area 111 in the shared memory 103 occurs will be described.

ハイパーバイザ121が(27)旧OS(マスタ)122から共有メモリ103内のCPU#Nローカル領域111へのアクセスを検出する。ハイパーバイザ121が検出したアクセスがCPU#Nからのアクセスか否かを判断し、ここでは、旧OS(マスタ)122からのアクセスであるためCPU#Nからのアクセスでないと判断される。つづいて、ハイパーバイザ121が共有メモリ103内の他のCPUのローカル領域へのアクセスか否かを検出したアクセスが示すアドレスに基づいて判断する。   The hypervisor 121 detects (27) an access from the old OS (master) 122 to the CPU #N local area 111 in the shared memory 103. It is determined whether or not the access detected by the hypervisor 121 is an access from the CPU #N. Here, since the access is from the old OS (master) 122, it is determined that the access is not from the CPU #N. Subsequently, the hypervisor 121 determines based on the address indicated by the detected access whether or not it is an access to the local area of another CPU in the shared memory 103.

ここでは、検出されたアクセスがCPU#Nローカル領域111へのアクセスであると判断され、ハイパーバイザ121が(28)アクセスエラーを出力する。出力形式としては、たとえば、ディスプレイへの表示、I/F105による外部装置への送信がある。また、共有メモリ103内の各CPUのローカル領域を除く領域などに記憶することとしてもよい。   Here, it is determined that the detected access is an access to the CPU #N local area 111, and the hypervisor 121 outputs (28) an access error. Examples of the output format include display on a display and transmission to an external device via the I / F 105. Further, it may be stored in an area other than the local area of each CPU in the shared memory 103.

図10は、CPU#Nで新OSがブートされた例を示す説明図である。図10では、CPU#Nで新OS(マスタ)124がマスタOSとしてブートされている。ここで、新OSと旧OSごとにマスタOSが存在することとなる。新たに割り当てられる新規起動プロセス136は新OS(マスタ)124によりスケジュールされて実行されるため、マルチコアプロセッサシステム100において新旧のマスタOSが共存していても競合することはない。また、プロセス135は旧OS(スレーブ)123がブート中に旧OS(マスタ)122に割り当てられたプロセスである。   FIG. 10 is an explanatory diagram illustrating an example in which the new OS is booted by the CPU #N. In FIG. 10, the new OS (master) 124 is booted as the master OS in CPU #N. Here, a master OS exists for each new OS and old OS. The newly assigned new boot process 136 is scheduled and executed by the new OS (master) 124, so that there is no contention even if the old and new master OSs coexist in the multi-core processor system 100. The process 135 is a process assigned to the old OS (master) 122 during booting of the old OS (slave) 123.

そして、ハイパーバイザ121が、CPU#Nで新OS(マスタ)124がブートされると、(29)メモリアクセス制限を解除し、(30)調停回路102内の優先度の情報を元に戻す。調停回路102内の優先度の情報は、たとえば、メモリ制限開始直前に共有メモリ103内に複製して記憶しておき、メモリ制限解除後に複製した優先度の情報を用いて調停回路102内の変更された優先度の情報を復元する。   When the new OS (master) 124 is booted by the CPU #N, the hypervisor 121 releases (29) the memory access restriction, and (30) restores the priority information in the arbitration circuit 102 to the original state. For example, the priority information in the arbitration circuit 102 is copied and stored in the shared memory 103 immediately before the start of the memory restriction, and the priority information in the arbitration circuit 102 is changed using the copied priority information after the memory restriction is released. Restore the priority information.

図11は、CPU#Mで新OSをブートさせる準備例を示す説明図である。旧OS(マスタ)122が、旧OS(マスタ)122に割り当てられているプロセスをプロセステーブルに基づいて特定する。特定したプロセスのうち旧ブートプログラムにダイナミックリンクもしくはオープンしているプロセスは、旧OS(マスタ)122で処理を続行する。一方、(31)旧OS(マスタ)122は、特定したプロセスのうち旧ブートプログラムにダイナミックリンクおよびオープンしていないプロセス(ここでは、メインプロセス133と更新検出アプリ131)を新OS(マスタ)124へマイグレートする。   FIG. 11 is an explanatory diagram showing a preparation example for booting the new OS by the CPU #M. The old OS (master) 122 identifies the process assigned to the old OS (master) 122 based on the process table. Among the specified processes, processes that are dynamically linked or opened to the old boot program continue processing in the old OS (master) 122. On the other hand, (31) the old OS (master) 122 replaces the processes (in this case, the main process 133 and the update detection application 131) that are not dynamically linked to the old boot program among the specified processes with the new OS (master) 124. Migrate to

図12は、CPU#Mに割り当てられているプロセスがすべて完了した例を示す説明図である。図12では、旧OS(マスタ)122に割り当てられていたプロセスの処理が終了した。すなわち、旧OS(マスタ)122により旧OS(マスタ)122に割り当てられているプロセスが特定されない場合である。そして、(32)旧OS(マスタ)122がハイパーバイザ121へ旧OS(マスタ)122に割り当てられているプロセスがすべて完了したことを通知する。   FIG. 12 is an explanatory diagram illustrating an example in which all processes assigned to the CPU #M are completed. In FIG. 12, the process of the process assigned to the old OS (master) 122 is completed. That is, the process assigned to the old OS (master) 122 by the old OS (master) 122 is not specified. Then, (32) the old OS (master) 122 notifies the hypervisor 121 that all processes assigned to the old OS (master) 122 have been completed.

(33)ハイパーバイザ121が該通知を受け付けると、MBR108に記憶されているパーティションテーブル401が示すブートプログラムの参照領域を新ブートプログラム領域112に変換する。そして、(34)ハイパーバイザ121が旧OS(マスタ)122へリブート指示を通知する。すでにパーティションテーブル401が示すブートプログラムの参照領域は変換済みであるため、(35)旧OS(マスタ)122はリブート指示を受け付けると、新ブートプログラムでリブートを開始する。ここで、旧OS(マスタ)122は新OS(スレーブ)125としてブートされる。そして、(36)ハイパーバイザ121が旧ブートプログラムを廃棄する。   (33) When the hypervisor 121 receives the notification, the boot program reference area indicated by the partition table 401 stored in the MBR 108 is converted into the new boot program area 112. Then, (34) the hypervisor 121 notifies the old OS (master) 122 of a reboot instruction. Since the boot program reference area indicated by the partition table 401 has already been converted, (35) upon receiving a reboot instruction, the old OS (master) 122 starts rebooting with the new boot program. Here, the old OS (master) 122 is booted as a new OS (slave) 125. (36) The hypervisor 121 discards the old boot program.

図13は、すべてのCPUで新OSがブートされた例を示す説明図である。図13では、旧OS(マスタ)122が新OS(スレーブ)125として起動されている。さらに、ストレージ104内での旧ブートプログラムの領域が空いている。   FIG. 13 is an explanatory diagram showing an example in which the new OS is booted by all the CPUs. In FIG. 13, the old OS (master) 122 is activated as the new OS (slave) 125. Furthermore, the area of the old boot program in the storage 104 is vacant.

(マルチコアプロセッサシステムによるOSの更新手順)
図14は、マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その1)である。ここでは、ハイパーバイザ121と旧OS(マスタ)122とダウンローダ132と更新検出アプリ131によるダウンロード開始前とダウンロードおよび静的ベリファイ時の処理手順を説明する。まず、更新検出アプリ131がブートプログラムの更新を検出し(ステップS1401)、更新検出アプリ131がブートプログラムの更新を検出した場合、旧OS(マスタ)122へブートプログラムの更新を通知する(ステップS1402)。旧OS(マスタ)122が、ブートプログラムの更新を受け付けると、ハイパーバイザ121へブートプログラムの更新を通知する(ステップS1403)。
(OS update procedure by multi-core processor system)
FIG. 14 is a flowchart (part 1) illustrating the OS update procedure by the multi-core processor system 100. Here, a description will be given of processing procedures before the download start, download and static verification by the hypervisor 121, the old OS (master) 122, the downloader 132, and the update detection application 131. First, the update detection application 131 detects an update of the boot program (step S1401). When the update detection application 131 detects an update of the boot program, the update detection application 131 notifies the old OS (master) 122 of the update of the boot program (step S1402). ). When the old OS (master) 122 receives the update of the boot program, it notifies the hypervisor 121 of the update of the boot program (step S1403).

ハイパーバイザ121が、ブートプログラムの更新を受け付けると、新ブートプログラム領域を旧ブートプログラムと所定のマスク値に基づいて設定し、旧OS(マスタ)122へダウンロード開始指示を通知する(ステップS1404)。そして、ハイパーバイザ121が、ブートプログラム領域へのブートプログラムに関するアクセスを監視する(ステップS1405)。アクセスの監視は、ステップS1409〜ステップS1411までの処理を指す。   When the hypervisor 121 receives the update of the boot program, the hypervisor 121 sets a new boot program area based on the old boot program and a predetermined mask value, and notifies the old OS (master) 122 of a download start instruction (step S1404). Then, the hypervisor 121 monitors access related to the boot program to the boot program area (step S1405). Access monitoring refers to the processing from step S1409 to step S1411.

旧OS(マスタ)122が、ハイパーバイザ121からのダウンロード開始指示を受け付けると、ダウンローダ132へダウンロード開始指示を通知する(ステップS1406)。そして、ダウンローダ132が、ダウンロード開始指示を受け付けると、ダウンロードと静的ベリファイを開始する(ステップS1407)。ダウンローダ132が、ダウンロード中や静的ベリファイ中にストレージへのアクセスを行う場合、旧OS(マスタ)122へアクセスを入力し、ダウンローダ132を動かすOSが、ストレージへのアクセスを受け付けると、ハイパーバイザ121へアクセスを入力する(ステップS1408)。   When the old OS (master) 122 receives a download start instruction from the hypervisor 121, the old OS (master) 122 notifies the downloader 132 of the download start instruction (step S1406). When the downloader 132 receives the download start instruction, the downloader 132 starts download and static verification (step S1407). When the downloader 132 accesses the storage during downloading or static verification, when the OS that operates the downloader 132 inputs access to the old OS (master) 122 and receives access to the storage, the hypervisor 121 is accessed. Access is input to (step S1408).

そして、ハイパーバイザ121が、アクセスの入力を受け付けると、受け付けたアクセスがライトアクセスであるかリードアクセスであるかを判断する(ステップS1409)。ハイパーバイザ121が、該アクセスがライトアクセスであると判断した場合(ステップS1409:ライトアクセス)、ライトアクセスで指定されたアドレスを所定のマスク値に基づいて変換する(ステップS1410)。そして、ハイパーバイザ121が、変換後のアドレスへのアクセス指示を、ダウンローダ132を動かすOSへ通知する(ステップS1411)。   When the hypervisor 121 receives an access input, the hypervisor 121 determines whether the received access is a write access or a read access (step S1409). When the hypervisor 121 determines that the access is a write access (step S1409: write access), the hypervisor 121 converts the address specified by the write access based on a predetermined mask value (step S1410). Then, the hypervisor 121 notifies the OS that operates the downloader 132 of an access instruction to the converted address (step S1411).

一方、ハイパーバイザ121が、該アクセスがリードアクセスであると判断した場合(ステップS1409:リードアクセス)、リードアクセスで指定されたアドレスへのアクセス指示を通知する(ステップS1411)。ステップS1411のつぎに、ダウンローダ132を動かすOSがアクセス指示を受け付けると、ダウンローダ132へアクセス指示を通知し(ステップS1412)、ダウンローダ132が、アクセス指示を受け付けると、ストレージへアクセスする(ステップS1413)。ステップS1407とステップS1413間の矢印は、アクセス結果に沿ってダウンロードと静的ベリファイが続行されることを示している。   On the other hand, when the hypervisor 121 determines that the access is a read access (step S1409: read access), the hypervisor 121 notifies an access instruction to an address designated by the read access (step S1411). Following the step S1411, when the OS that operates the downloader 132 accepts an access instruction, the access instruction is notified to the downloader 132 (step S1412). When the downloader 132 accepts the access instruction, it accesses the storage (step S1413). An arrow between step S1407 and step S1413 indicates that download and static verification are continued according to the access result.

図15は、マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その2)である。ここでは、ハイパーバイザ121と旧OS(マスタ)122とダウンローダ132によるダウンロードおよび静的ベリファイ後から更新実施CPUのリブートが完了するまでの処理手順を説明する。更新実施CPUには、旧OS(マスタ)122が含まれていないこととする。まず、ダウンローダ132が、ダウンロードと静的ベリファイを完了させると(ステップS1501)、更新条件情報を通知する(ステップS1502)。   FIG. 15 is a flowchart (part 2) illustrating the OS update procedure by the multi-core processor system 100. Here, a processing procedure from the download and static verification by the hypervisor 121, the old OS (master) 122, and the downloader 132 until the reboot of the update execution CPU is completed will be described. It is assumed that the update execution CPU does not include the old OS (master) 122. First, when the downloader 132 completes downloading and static verification (step S1501), it notifies update condition information (step S1502).

旧OS(マスタ)122が、更新条件情報を受け付けると、更新条件情報から緊急度を読み出し、緊急度を判断する(ステップS1503)。緊急度が高い場合(ステップS1503:高)、旧OS(マスタ)122が、更新実施CPUに割り当てられたプロセスを強制マイグレートし(ステップS1504)、ステップS1507へ移行する。   When the old OS (master) 122 receives the update condition information, the urgency level is read from the update condition information and the urgency level is determined (step S1503). When the degree of urgency is high (step S1503: high), the old OS (master) 122 forcibly migrates the process assigned to the update execution CPU (step S1504), and proceeds to step S1507.

一方、緊急度が低い場合(ステップS1503:低)、旧OS(マスタ)122が、プロセスが割り当てられていないCPUがあるか否かを判断する(ステップS1505)。そして、旧OS(マスタ)122が、プロセスが割り当てられていないCPUがあると判断した場合(ステップS1505:Yes)、プロセスが割り当てられていないCPUを更新実施CPUに設定し(ステップS1506)、ステップS1509に移行する。ここでは、更新実施CPUは、プロセスが割り当てられていないCPUのみである。   On the other hand, when the degree of urgency is low (step S1503: low), the old OS (master) 122 determines whether there is a CPU to which no process is assigned (step S1505). If the old OS (master) 122 determines that there is a CPU to which no process is assigned (step S1505: Yes), the CPU to which no process is assigned is set as the update execution CPU (step S1506), and the step The process moves to S1509. Here, the update execution CPU is only a CPU to which no process is assigned.

そして、旧OS(マスタ)122が、プロセスが割り当てられていないCPUがないと判断した場合(ステップS1505:No)、更新実施CPUへのディスパッチを禁止する(ステップS1507)。そして、旧OS(マスタ)122が、更新実施CPUに割り当てられたプロセスが終了したか否かを判断する(ステップS1508)。旧OS(マスタ)122が、更新実施CPUに割り当てられたプロセスが終了していないと判断した場合、(ステップS1508:No)、ステップS1508へ戻る。   If the old OS (master) 122 determines that there is no CPU to which no process is assigned (step S1505: No), the dispatch to the update execution CPU is prohibited (step S1507). Then, the old OS (master) 122 determines whether or not the process assigned to the update execution CPU has ended (step S1508). When the old OS (master) 122 determines that the process assigned to the update execution CPU has not ended (step S1508: No), the process returns to step S1508.

一方、旧OS(マスタ)122が、更新実施CPUに割り当てられたプロセスが終了したと判断した場合(ステップS1508:Yes)、共有メモリへのアクセス制限指示と更新対象CPUをハイパーバイザ121へ通知する(ステップS1509)。   On the other hand, when the old OS (master) 122 determines that the process assigned to the update execution CPU has ended (step S1508: Yes), the hypervisor 121 is notified of the access restriction instruction to the shared memory and the update target CPU. (Step S1509).

ハイパーバイザ121が、共有メモリへのアクセス制限指示と更新対象CPUとを受け付けると、アクセス制限を開始する(ステップS1510)。アクセス制限のフローチャートについては後述する。そして、ハイパーバイザ121が、ブートプログラムの参照領域を新ブートプログラム領域に変換する(ステップS1511)。   When the hypervisor 121 receives an instruction to restrict access to the shared memory and the update target CPU, access restriction is started (step S1510). The access restriction flowchart will be described later. Then, the hypervisor 121 converts the boot program reference area into the new boot program area (step S1511).

つぎに、ハイパーバイザ121が、変換後の参照領域を指定するリブート指示を更新実施CPU上のOSへ通知する(ステップS1512)。更新実施CPU上のOSとは、更新実施CPUに処理を実行させているOSである。ここでは、更新実施CPUのうちいずれか一つのCPUへ新ブートプログラムで起動する際にマスタOSとなるように指示する。更新実施CPU上のOSは、リブート指示を受け付けると、リブートし、リブートが完了するとリブートの完了をハイパーバイザ121へ通知する(ステップS1513)。そして、更新実施CPUの全CPUからリブートの完了を受け付けると、共有メモリのアクセス制限を終了し(ステップS1514)、調停回路内の優先度の情報を通常に戻す(ステップS1515)。調停回路内の優先度の情報は、アクセス制限により変更されるため、優先度の情報を通常に戻すとは、アクセス制限開始前の優先度の情報に戻すことを意味する。   Next, the hypervisor 121 notifies the OS on the update execution CPU of a reboot instruction for designating the converted reference area (step S1512). The OS on the update execution CPU is an OS that causes the update execution CPU to execute processing. Here, any one of the update execution CPUs is instructed to become the master OS when the new boot program is activated. The OS on the update execution CPU reboots when receiving the reboot instruction, and notifies the hypervisor 121 of the completion of the reboot when the reboot is completed (step S1513). When the completion of reboot is accepted from all the CPUs of the update execution CPU, the access restriction of the shared memory is terminated (step S1514), and the priority information in the arbitration circuit is returned to normal (step S1515). Since the priority information in the arbitration circuit is changed due to access restriction, returning the priority information to normal means returning to the priority information before the start of access restriction.

図16は、ハイパーバイザ121によるメモリアクセス制限の制限処理手順を示すフローチャートである。まず、ハイパーバイザ121が、メモリアクセス制限を開始すると、アプリケーションから共有メモリへのアクセスを検出する(ステップS1601)。つぎに、ハイパーバイザ121が、更新対象CPUからのアクセスか否かを判断する(ステップS1602)。ここで、更新対象CPUは、リブート中である。そして、ハイパーバイザ121が、更新対象CPUからのアクセスであると判断した場合(ステップS1602:Yes)、他のCPUのローカル領域へのアクセスか否かを判断する(ステップS1603)。   FIG. 16 is a flowchart showing a memory access restriction processing procedure performed by the hypervisor 121. First, when the hypervisor 121 starts limiting memory access, the hypervisor 121 detects access from the application to the shared memory (step S1601). Next, the hypervisor 121 determines whether or not the access is from the update target CPU (step S1602). Here, the update target CPU is being rebooted. If the hypervisor 121 determines that the access is from the update target CPU (step S1602: Yes), it determines whether the access is to the local area of another CPU (step S1603).

ハイパーバイザ121が、他のCPUのローカル領域へのアクセスであると判断した場合(ステップS1603:Yes)、更新失敗を出力し(ステップS1604)、復旧する(ステップS1605)。一方、ステップS1602において、ハイパーバイザ121が、更新対象CPUからのアクセスでないと判断した場合(ステップS1602:No)、他のCPUのローカル領域へのアクセスか否かを判断する(ステップS1606)。ハイパーバイザ121が、他のCPUのローカル領域へのアクセスであると判断した場合(ステップ1606:Yes)、アクセスエラーを出力する(ステップS1607)。   If the hypervisor 121 determines that the access is to the local area of another CPU (step S1603: Yes), it outputs an update failure (step S1604) and recovers (step S1605). On the other hand, when the hypervisor 121 determines in step S1602 that the access is not from the update target CPU (step S1602: No), it is determined whether the access is to the local area of another CPU (step S1606). When the hypervisor 121 determines that the access is to the local area of another CPU (step 1606: Yes), an access error is output (step S1607).

一方、ハイパーバイザ121が、他のCPUのローカル領域へのアクセスでないと判断した場合(ステップS1603:No、またはステップS1606:No)、調停回路内の更新対象CPUに関する優先度の情報を低優先に設定する(ステップS1608)。そして、アクセス指示をアクセス元へ通知する(ステップS1609)。なお、ハイパーバイザ121が、メモリアクセス制限終了指示を受け付けるまで、処理を繰り返す。   On the other hand, when the hypervisor 121 determines that it is not an access to the local area of another CPU (step S1603: No or step S1606: No), the priority information related to the update target CPU in the arbitration circuit is set to low priority. Setting is performed (step S1608). Then, the access instruction is notified to the access source (step S1609). The process is repeated until the hypervisor 121 receives a memory access restriction end instruction.

図17は、マルチコアプロセッサシステム100によるOSの更新手順を示すフローチャート(その3)である。まず、新OSが起動されると、新OS(マスタ)124は、新既プロセスを新OSに割り当てるように制御する(ステップS1701)。つぎに、旧OS(マスタ)122が、旧OSで既動作のプロセスをタスクテーブルに基づいて特定する(ステップS1702)。   FIG. 17 is a flowchart (part 3) illustrating the OS update procedure by the multi-core processor system 100. First, when the new OS is activated, the new OS (master) 124 controls to allocate a new process to the new OS (step S1701). Next, the old OS (master) 122 identifies a process already running on the old OS based on the task table (step S1702).

そして、旧OS(マスタ)122が、旧OSで既動作のプロセスがあるか否かを判断する(ステップS1703)。まず、旧OS(マスタ)122が、旧OSで既動作のプロセスがあると判断した場合(ステップS1703:Yes)、未選択の既動作のプロセスがあるか否かを判断する(ステップS1704)。旧OS(マスタ)122が、未選択の既動作のプロセスがないと判断した場合(ステップS1704:No)、ステップS1702へ戻る。一方、旧OS(マスタ)122が、未選択の既動作のプロセスがあると判断した場合(ステップS1704:Yes)、未選択の既動作のプロセスから任意のプロセスを選択する(ステップS1705)。   Then, the old OS (master) 122 determines whether there is a process already operating on the old OS (step S1703). First, when the old OS (master) 122 determines that there is an already-operated process in the old OS (step S1703: Yes), it determines whether there is an unselected already-processed process (step S1704). When the old OS (master) 122 determines that there is no unselected process already operating (step S1704: No), the process returns to step S1702. On the other hand, when the old OS (master) 122 determines that there is an unselected operation process (step S1704: Yes), an arbitrary process is selected from the unselected operation processes (step S1705).

そして、旧OS(マスタ)122が、選択したプロセスがシステムファイルにダイナミックリンクまたはオープンしているかを判断する(ステップS1706)。旧OS(マスタ)122が、システムファイルにダイナミックリンクまたはオープンしていると判断した場合(ステップS1706:Yes)、ステップS1704に戻る。一方、旧OS(マスタ)122が、システムファイルにダイナミックリンクおよびオープンしていないと判断した場合(ステップS1706:No)、選択したプロセスを新OSへマイグレートし(ステップS1707)、ステップS1704へ戻る。   Then, the old OS (master) 122 determines whether the selected process is dynamically linked or opened to the system file (step S1706). If the old OS (master) 122 determines that the system file is dynamically linked or opened (step S1706: YES), the process returns to step S1704. On the other hand, when the old OS (master) 122 determines that the system file is not dynamically linked and opened (step S1706: No), the selected process is migrated to the new OS (step S1707), and the process returns to step S1704. .

一方、旧OS(マスタ)122が、旧OSで既動作のプロセスがないと判断した場合(ステップS1703:No)、ハイパーバイザ121へ既動作のプロセスがないことを通知する(ステップS1708)。つづいて、ハイパーバイザ121が、パーティションテーブル内の参照領域を新ブートプログラム領域に変換し(ステップS1709)、変換後の参照領域を指定するリブート指示を旧OSへ通知する(ステップS1710)。   On the other hand, when the old OS (master) 122 determines that there is no process already operating on the old OS (step S1703: No), it notifies the hypervisor 121 that there is no process already operating (step S1708). Subsequently, the hypervisor 121 converts the reference area in the partition table to the new boot program area (step S1709), and notifies the old OS of a reboot instruction for specifying the converted reference area (step S1710).

そして、旧OS(マスタ)122を含む旧OSが、リブート指示を受け付けると、新ブートプログラムでリブートする(ステップS1712)。ステップS1710のつぎに、ハイパーバイザ121が、旧ブートプログラムを破棄する(ステップS1711)。   When the old OS including the old OS (master) 122 receives a reboot instruction, the old OS is rebooted with the new boot program (step S1712). Following step S1710, the hypervisor 121 discards the old boot program (step S1711).

以上説明したように、マルチコアプロセッサシステム、制御プログラム、および制御方法によれば、旧ブートプログラムでブートしたコアのうちプロセスが割り当てられていないコアから順に新ブートプログラムでリブートさせるリブート指示を通知する。したがって、リブート指示を通知されて受け付けたコアが新ブートプログラムでリブートする。これにより、空いているコアから直ぐにリブートするため、プロセスを停止させず、OSを無停止で更新することができる。   As described above, according to the multi-core processor system, the control program, and the control method, the reboot instruction for rebooting with the new boot program is notified in order from the core to which no process is assigned among the cores booted with the old boot program. Therefore, the core that has been notified of and received the reboot instruction reboots with the new boot program. As a result, since the system is rebooted immediately from the free core, the OS can be updated without stopping without stopping the process.

また、プロセスが割り当てられていないコアが無い場合、割り当てられているプロセスが完了したコアへ新ブートプログラムでリブートさせるリブート指示を通知することにより、動作中のプロセスを停止させることなくOSを更新できる。   In addition, when there is no core to which no process is assigned, the OS can be updated without stopping the running process by notifying the reboot instruction to reboot the core to which the assigned process has been completed with a new boot program. .

また、新ブートプログラムの更新を受け付けてから、新ブートプログラムをダウンロードする新ブートプログラム領域を設定することで、ストレージ内の容量を効率的に使用できる。   In addition, the capacity in the storage can be used efficiently by setting a new boot program area in which the new boot program is downloaded after accepting the update of the new boot program.

また、リブート指示後にマスターブートレコードのパーティションテーブル内の旧ブートプログラム領域のアドレスを新ブートプログラム領域のアドレスに変換する。これにより、新ブートプログラムでリブートしたCPUの電源が再投入されても、該CPUが新ブートプログラムでブートすることができる。   Further, after the reboot instruction, the address of the old boot program area in the partition table of the master boot record is converted to the address of the new boot program area. Thereby, even if the power of the CPU rebooted with the new boot program is turned on again, the CPU can boot with the new boot program.

100 マルチコアプロセッサシステム
201 設定部
202 受付部
203 判断部
204 変換部
205 通知部
206 検出部
DESCRIPTION OF SYMBOLS 100 Multi-core processor system 201 Setting part 202 Reception part 203 Judgment part 204 Conversion part 205 Notification part 206 Detection part

Claims (6)

複数のコアと、
前記複数のコアで実行される第1のブートプログラムおよび前記複数のコアがブート時にアクセスするブートアドレスを記憶する記憶部と
を有するマルチコアプロセッサシステムであって、前記複数のコアのうちの第1のコアは、
前記記憶部において前記第1のブートプログラムの記憶領域と異なる記憶領域に第2のブートプログラムを書き込み、前記第1のブートプログラムに基づきブートした前記複数のコアのうち、プロセスが割り当てられていない第2のコアがリブート時に参照する参照領域を前記第1のブートプログラムの記憶領域から前記第2のブートプログラムの記憶領域に変換し、変換後の前記参照領域を指定するリブート指示を前記第2のコアへ通知する
マルチコアプロセッサシステム。
With multiple cores,
A multi-core processor system comprising: a first boot program that is executed by the plurality of cores; and a storage unit that stores a boot address that is accessed by the plurality of cores during booting. The core is
In the storage unit, a second boot program is written in a storage area different from the storage area of the first boot program, and a process is not allocated among the plurality of cores booted based on the first boot program. A reference area that the second core refers to at the time of rebooting is converted from the storage area of the first boot program into the storage area of the second boot program, and a reboot instruction that specifies the converted reference area is sent to the second boot program A multi-core processor system that notifies the core.
前記第1のコアは、前記複数のコアの全てに前記リブート指示が通知された場合に、前記第1のブートプログラムの記憶領域に基づく前記ブートアドレスを前記第2のブートプログラムの記憶領域に基づくアドレスに書き換える、請求項1に記載のマルチコアプロセッサシステム。   When the reboot instruction is notified to all of the plurality of cores, the first core uses the boot address based on the storage area of the first boot program based on the storage area of the second boot program. The multi-core processor system according to claim 1, wherein the multi-core processor system is rewritten to an address. 複数のコアと、前記複数のコアで実行される第1のブートプログラムおよび前記複数のコアがブート時にアクセスするブートアドレスを記憶する記憶部を有するマルチコアプロセッサシステムの制御方法であって、前記複数のコアのうちの第1のコアが、
前記記憶部において前記第1のブートプログラムの記憶領域と異なる記憶領域に第2のブートプログラムを書き込む処理と、
前記第1のブートプログラムに基づきブートした前記複数のコアのうち、プロセスが割り当てられていない第2のコアがリブート時に参照する参照領域を前記第1のブートプログラムの記憶領域から前記第2のブートプログラムの記憶領域に変換する処理と、
変換後の前記参照領域を指定するリブート指示を前記第2のコアへ通知する処理と
を実行するマルチコアプロセッサシステムの制御方法。
A control method for a multi-core processor system, comprising: a plurality of cores; a first boot program that is executed by the plurality of cores; and a storage unit that stores a boot address that the plurality of cores accesses during booting. The first of the cores
A process of writing a second boot program in a storage area different from the storage area of the first boot program in the storage unit;
Of the plurality of cores booted based on the first boot program, a second core to which a process is not assigned refers to a reference area that is referred to at the time of rebooting from the storage area of the first boot program. A process of converting to a program storage area;
And a process of notifying the second core of a reboot instruction specifying the reference area after conversion.
前記第1のコアが、前記複数のコアの全てに前記リブート指示を通知した場合に、前記第1のブートプログラムの記憶領域に基づく前記ブートアドレスを前記第2のブートプログラムの記憶領域に基づくアドレスに書き換える、請求項3に記載のマルチコアプロセッサシステムの制御方法。   When the first core notifies the reboot instruction to all of the plurality of cores, the boot address based on the storage area of the first boot program is changed to an address based on the storage area of the second boot program. The method of controlling a multi-core processor system according to claim 3, wherein the control method is rewritten as follows. 複数のコアと、前記複数のコアで実行される第1のブートプログラムおよび前記複数のコアがブート時にアクセスするブートアドレスを記憶する記憶部を有するマルチコアプロセッサシステムの制御プログラムであって、前記複数のコアのうちの第1のコアに、
前記記憶部において前記第1のブートプログラムの記憶領域と異なる記憶領域に第2のブートプログラムを書き込む処理と、
前記第1のブートプログラムに基づきブートした前記複数のコアのうち、プロセスが割り当てられていない第2のコアがリブート時に参照する参照領域を前記第1のブートプログラムの記憶領域から前記第2のブートプログラムの記憶領域に変換する処理と、
変換後の前記参照領域を指定するリブート指示を前記第2のコアへ通知する処理と
を実行させるマルチコアプロセッサシステムの制御プログラム。
A control program for a multi-core processor system, comprising: a plurality of cores; a first boot program that is executed by the plurality of cores; and a storage unit that stores a boot address that is accessed by the plurality of cores during booting. In the first of the cores,
A process of writing a second boot program in a storage area different from the storage area of the first boot program in the storage unit;
Of the plurality of cores booted based on the first boot program, a second core to which a process is not assigned refers to a reference area that is referred to at the time of rebooting from the storage area of the first boot program. A process of converting to a program storage area;
A control program for a multi-core processor system that executes a process of notifying the second core of a reboot instruction that specifies the reference area after conversion.
前記第1のコアに、前記複数のコアの全てに前記リブート指示を通知させた場合に、前記第1のブートプログラムの記憶領域に基づく前記ブートアドレスを前記第2のブートプログラムの記憶領域に基づくアドレスに書き換えさせる、請求項5に記載のマルチコアプロセッサシステムの制御プログラム。   When the first core is notified of the reboot instruction to all of the plurality of cores, the boot address based on the storage area of the first boot program is based on the storage area of the second boot program. The control program for a multi-core processor system according to claim 5, wherein the control program is rewritten to an address.
JP2013235497A 2013-11-13 2013-11-13 Multi-core processor system, control program, and control method Expired - Fee Related JP5713089B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013235497A JP5713089B2 (en) 2013-11-13 2013-11-13 Multi-core processor system, control program, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013235497A JP5713089B2 (en) 2013-11-13 2013-11-13 Multi-core processor system, control program, and control method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012505383A Division JPWO2011114476A1 (en) 2010-03-17 2010-03-17 Multi-core processor system, notification program, and notification method

Publications (2)

Publication Number Publication Date
JP2014029739A true JP2014029739A (en) 2014-02-13
JP5713089B2 JP5713089B2 (en) 2015-05-07

Family

ID=50202209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013235497A Expired - Fee Related JP5713089B2 (en) 2013-11-13 2013-11-13 Multi-core processor system, control program, and control method

Country Status (1)

Country Link
JP (1) JP5713089B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260845A (en) * 1997-03-19 1998-09-29 Fujitsu Ltd Multi-cpu system having update processing function of firmware
JP2004206453A (en) * 2002-12-25 2004-07-22 Fujitsu Ltd Shared data access system for multiprocessor
JP2007219696A (en) * 2006-02-15 2007-08-30 Fujitsu Ltd Controller and firmware hot-swap control method therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260845A (en) * 1997-03-19 1998-09-29 Fujitsu Ltd Multi-cpu system having update processing function of firmware
JP2004206453A (en) * 2002-12-25 2004-07-22 Fujitsu Ltd Shared data access system for multiprocessor
JP2007219696A (en) * 2006-02-15 2007-08-30 Fujitsu Ltd Controller and firmware hot-swap control method therefor

Also Published As

Publication number Publication date
JP5713089B2 (en) 2015-05-07

Similar Documents

Publication Publication Date Title
JP3593241B2 (en) How to restart the computer
RU2639693C1 (en) Method for resource processing, operating system and device
US9384060B2 (en) Dynamic allocation and assignment of virtual functions within fabric
US9658930B2 (en) Method and device for managing hardware errors in a multi-core environment
WO2011114476A1 (en) Multicore processor system, notification program, and notification method
US10635499B2 (en) Multifunction option virtualization for single root I/O virtualization
EP3992805A1 (en) Live migration method for virtual machine and communication device
US9639486B2 (en) Method of controlling virtualization software on a multicore processor
JP2009145931A (en) Method of migration between virtual computer and physical computer, and computer system thereof
WO2012100535A1 (en) Updating method and computer system for hypervisor components
US9571584B2 (en) Method for resuming process and information processing system
CN116521209B (en) Upgrading method and device of operating system, storage medium and electronic equipment
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 (en) Method, device and equipment for restarting operating system and readable storage medium
WO2023125482A1 (en) Cluster management method and device, and computing system
US10747567B2 (en) Cluster check services for computing clusters
US20190250994A1 (en) Backup control method and backup control system
JP5713089B2 (en) Multi-core processor system, control program, and control method
WO2022041839A1 (en) Online migration method and system for bare metal server
JP2012168710A (en) Information processing system, information processing method, and control program
JP5557612B2 (en) Computer and transfer program
CN114115703A (en) Bare metal server online migration method and system
US20220391254A1 (en) Information processing device, operation control method, and computer-readable recording medium storing operation control program
US20240020103A1 (en) Parallelizing data processing unit provisioning

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150223

R150 Certificate of patent or registration of utility model

Ref document number: 5713089

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees