JP6073004B1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP6073004B1
JP6073004B1 JP2016562601A JP2016562601A JP6073004B1 JP 6073004 B1 JP6073004 B1 JP 6073004B1 JP 2016562601 A JP2016562601 A JP 2016562601A JP 2016562601 A JP2016562601 A JP 2016562601A JP 6073004 B1 JP6073004 B1 JP 6073004B1
Authority
JP
Japan
Prior art keywords
restart
information processing
reference value
processing apparatus
target
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.)
Active
Application number
JP2016562601A
Other languages
English (en)
Other versions
JPWO2017195276A1 (ja
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6073004B1 publication Critical patent/JP6073004B1/ja
Publication of JPWO2017195276A1 publication Critical patent/JPWO2017195276A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Abstract

ハイパーバイザ(101)は、いずれかのオペレーティングシステムに異常が発生した場合、異常が発生したオペレーティングシステムの再起動を、異常が発生したオペレーティングシステムを実行していたコア(111)に実行させる。ハイパーバイザは、再起動の実行中に情報処理装置(100)の状態を監視する。再起動の実行中に情報処理装置の状態が再起動の実行を制限する制限条件を満たした場合、ハイパーバイザは、再起動の実行を制限する制限制御を行う。

Description

本発明は、複数のオペレーティングシステムを動作させる情報処理装置においてオペレーティングシステムを再起動する際の制御に関するものである。
CPU(Central Processing Unit)の高性能化に伴う仮想化技術の発展により、一台の情報処理システムに複数のOS(Operating System)を搭載することが可能である。複数のOSを制御するソフトウェアはハイパーバイザと呼ばれ、ハイパーバイザによって制御されるOSはゲストOSと呼ばれる。
仮想化技術は、FA(Factory Automation)をはじめ様々な分野で用いられている。
具体的には、仮想化技術は、リアルタイム性が高い処理を行うためのリアルタイムOSと、Windows(登録商標)のような汎用OSと、を単一のハードウェアプラットフォームで同時に実行する環境で用いられる。
特許文献1には、ゲストOSに異常が発生した場合に異常時における処理を行うための技術が開示されている。
この技術では、マスタOSがWDC(ウォッチドッグカウンタ)を用いて各ゲストOSの動作状況を判定する。ゲストOSが異常状態であると判定された場合には、異常状態のゲストOSが再起動される。
しかし、異常状態のゲストOSが再起動されるときにはハイパーバイザによって再起動処理が行われるため、稼働中のリアルタイムOSに対してオーバーヘッドが発生してしまう。その結果、稼働中のリアルタイムOSの性能が低下してしまう。
そこで、ハイパーバイザによる再起動処理が行われるときには、稼働中のリアルタイムOSの性能低下を抑えるため、稼働中のリアルタイムOSに対するオーバーヘッドを軽減することが求められる。
再起動処理では、入出力の初期化等が行われるため、バスへのアクセスが多発する可能性がある。バスへのアクセスの多発は、稼働中のリアルタイムOSに対するオーバーヘッドの要因となる。
具体的には、稼働中のリアルタイムOSがバスにアクセスするときに再起動処理でバスへのアクセスが多発している場合、稼働中のリアルタイムOSは、バスの開放を待たなければならない。その結果、リアルタイム性が阻害されてしまう。
特開2009−116699号公報
本発明は、オペレーティングシステムの再起動中に稼働中のオペレーティングシステムの性能の低下を抑えることを目的とする。
本発明の情報処理装置は、複数のプロセッサコアを有するマルチコアプロセッサを備えて前記複数のプロセッサコアによって複数のオペレーティングシステムを動作させる。
前記情報処理装置は、
前記複数のオペレーティングシステムに含まれるオペレーティングシステムに異常が発生した場合、異常が発生したオペレーティングシステムの再起動を前記複数のプロセッサコアに含まれるプロセッサコアに実行させる再起動部と、
前記再起動の実行中に前記情報処理装置の状態を監視する状態監視部と、
前記再起動の実行中に前記情報処理装置の状態が前記再起動の実行を制限する制限条件を満たした場合、前記再起動の実行を制限する制限制御を行う再起動制御部とを備える。
本発明によれば、オペレーティングシステムの再起動中に稼働中のオペレーティングシステムの性能の低下を抑えることが可能となる。
実施の形態1における情報処理装置100の構成図。 実施の形態1におけるプロセッサ110の構成図。 実施の形態1におけるハイパーバイザ部140の構成図。 実施の形態1における再起動制御方法のフローチャート。 実施の形態2における再起動制御部144の構成図。 実施の形態2における再起動制御方法のフローチャート。 実施の形態2における再起動制御方法の別のフローチャート。 実施の形態3における情報処理装置100の構成図。 実施の形態3における再起動制御部144の構成図。 実施の形態3における再起動制御方法のフローチャート。 実施の形態3における再起動制御方法の別のフローチャート。 実施の形態4における情報処理装置100の構成図。 実施の形態4における再起動制御部144の構成図。 実施の形態4における再起動制御方法のフローチャート。
実施の形態および図面において、同じ要素または互いに相当する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略する。
実施の形態1.
複数のオペレーティングシステムを動作させる情報処理装置100について、図1から図4に基づいて説明する。
***構成の説明***
図1に基づいて、情報処理装置100のハードウェア構成およびソフトウェア構成を説明する。
情報処理装置100は、プロセッサ110と、メモリ121と、WDT122と、I/Oデバイス123と、キャッシュ129といったハードウェアを備える。
プロセッサ110は、バス120を介して、メモリ121と、WDT122と、I/Oデバイス123と、キャッシュ129とに接続されている。
プロセッサ110は、複数のプロセッサコアを備えるマルチコアプロセッサである。具体的には、プロセッサ110は、マルチコアCPU(Central Processing Unit)である。
プロセッサ110は、複数のプロセッサコアとして、コア111Aとコア111Bとを備える。
コア111Aは、ハイパーバイザ101と、リアルタイムOS102と、リアルタイムアプリケーション103とを実行するプロセッサコアである。ハイパーバイザ101とリアルタイムOS102とリアルタイムアプリケーション103とについては後述する。
コア111Bは、汎用OS104と汎用アプリケーション105とを実行するプロセッサコアである。汎用OS104と汎用アプリケーション105とについては後述する。
コア111Aとコア111Bとを総称してコア111という。
さらに、プロセッサ110は、周波数変更機構112と、クロックジェネレータ113と、割り込みコントローラ114といったハードウェアを備える。
周波数変更機構112は、クロックジェネレータ113を制御することによって、コア111の動作周波数を変更する。
クロックジェネレータ113は、動作周波数に対応するクロック信号を生成する。
割り込みコントローラ114は、I/Oデバイス123からの割り込みを検出して割り込み信号を発生する。
メモリ121は記憶装置である。メモリ121は、主記憶装置またはメインメモリともいう。具体的には、メモリ121はRAM(Random Access Memory)である。
WDT122は、オペレーティングシステムの異常を検出するために用いられるウォッチドッグタイマである。
I/Oデバイス123は、入出力デバイスである。I/Oは入出力の略称である。
キャッシュ129は、メモリ121にアクセスするよりも高速にアクセスすることが可能な記憶装置である。
メモリ121とWDT122とI/Oデバイス123とキャッシュ129といったハードウェアは、複数のコア111からアクセスされる。
情報処理装置100は、ハイパーバイザ101と、リアルタイムOS102と、リアルタイムアプリケーション103と、汎用OS104と、汎用アプリケーション105といったソフトウェアを実行する。
ハイパーバイザ101は、複数のオペレーティングシステムを同時に実行するためのソフトウェアである。
具体的には、複数のオペレーティングシステムは、リアルタイムOS102および汎用OS104である。OSはオペレーティングシステムの略称である。
リアルタイムOS102は、リアルタイムアプリケーション103を実行するためのオペレーティングシステムである。
リアルタイムアプリケーション103は、リアルタイム処理用のアプリケーションプログラムである。リアルタイム処理はリアルタイム性が高い処理である。
汎用OS104は、汎用アプリケーション105を実行するためのオペレーティングシステムである。
汎用アプリケーション105は、汎用処理用のアプリケーションプログラムである。汎用処理はリアルタイム処理以外の処理である。
図2に基づいて、プロセッサ110のコア111の機能構成を説明する。
コア111Aは、OS部131Aと、アプリケーション部132Aと、ハイパーバイザ部140といった機能構成の要素を備える。
OS部131Aは、リアルタイムOS102を実行することによって、リアルタイムOS102を動作させる。
アプリケーション部132Aは、リアルタイムアプリケーション103を実行する。
ハイパーバイザ部140は、ハイパーバイザ101を実行する。
コア111Bは、OS部131Bと、アプリケーション部132Bといった機能構成の要素を備える。
OS部131Bは、汎用OS104を実行することによって、汎用OS104を動作させる。
アプリケーション部132Bは、汎用アプリケーション105を実行する。
図3に基づいて、ハイパーバイザ部140の機能構成を説明する。
ハイパーバイザ部140は、異常検出部141と、再起動部142と、状態監視部143と、再起動制御部144とを備える。これらの機能については後述する。
***動作の説明***
再起動制御方法について説明する。
再起動制御方法は、いずれかのOS(オペレーティングシステム)の再起動中に稼働中のOSの動作に対する再起動の影響を抑えるための方法である。
再起動制御方法の手順は再起動制御プログラムの手順に相当する。
図4に基づいて、再起動制御方法を説明する。
ステップS110は異常検出処理である。
ステップS110において、複数のOSが稼働中である。具体的には、コア111AのOS部131AがリアルタイムOS102を動作させており、コア111BのOS部131Bが汎用OS104を動作させている。
異常検出部141は、WDT122(ウォッチドッグタイマ)を用いて、稼働中のOSの動作を監視する。
そして、稼働中のOSに異常が発生した場合、異常検出部141は、稼働中のOSに発生した異常を検出する。
稼働中のOSに発生した異常が検出された場合、つまり、稼働中のOSに異常が発生した場合、処理はステップS120に進む。
ステップS120以降の説明において、ステップS110で異常が発生したOSを対象OSという。
ステップS120は再起動処理である。
ステップS120において、再起動部142は、対象OSの再起動をコア111に実行させる。再起動部142は、コア111Aに備わるハイパーバイザ部140の機能の1つである。
対象OSがリアルタイムOS102である場合、コア111AがリアルタイムOS102の再起動を開始する。
対象OSが汎用OS104である場合、再起動部142がコア111Bに汎用OS104の再起動を命令し、コア111Bが汎用OS104の再起動を開始する。
ステップS130は状態監視処理である。
ステップS130において、状態監視部143は状態監視を行う。
状態監視は、再起動の実行中に情報処理装置100の状態を監視する動作である。
具体的な状態監視については、実施の形態2以降で説明する。
ステップS141からステップS143は再起動制御処理である。
ステップS141において、再起動制御部144は、再起動の実行中に情報処理装置100の状態が制限条件を満たしたか判定する。
制限条件は、再起動の実行を制限する条件である。
具体的な制限条件については、実施の形態2以降で説明する。
情報処理装置100の状態が制限条件を満たした場合、処理はステップS142に進む。
ステップS142において、再起動制御部144は制限制御を行う。
制限制御は、再起動の実行を制限する制御である。
具体的な制限制御については、実施の形態2以降で説明する。
ステップS143において、再起動制御部144は、再起動が終了したか判定する。
具体的には、再起動制御部144は、再起動のプロセスの状態を参照することによって、再起動が終了したか判定する。
再起動が終了した場合、処理は終了する。
再起動が終了していない場合、処理はステップS130に戻る。
***実施の形態1の効果***
OSの再起動中に、再起動の実行を制限することにより、稼働中のOSの性能の低下を抑えることが可能となる。
***他の構成***
OSの数は、3つ以上であってもよい。
それぞれのOSは、リアルタイムOS102と汎用OS104とのいずれであってもよいし、その他の種類のOSであってもよい。
コア111の数は、3つ以上であってもよい。
コア111Bが、ハイパーバイザ部140を備えてもよい。つまり、ハイパーバイザ101は、コア111Bによって実行されてもよい。
情報処理装置100は、OSを実行するコア111とは別に、ハイパーバイザ101を実行するコアを備えてもよい。つまり、ハイパーバイザ部140は、OSを実行するコア111とは別のコアに備わってもよい。
実施の形態2.
再起動でのメモリ121への単位時間当たりのアクセス数を状態監視の対象とする形態について、主に実施の形態1と異なる点を、図5から図7に基づいて説明する。
***構成の説明***
情報処理装置100のハードウェア構成およびソフトウェア構成は、実施の形態1の図1と同じである。
コア111の機能構成は、実施の形態1の図2と同じである。
ハイパーバイザ部140の機能構成は、実施の形態1の図3と同じである。
図5に基づいて、再起動制御部144の機能構成を説明する。
再起動制御部144は、アクセス量判定部151と、周波数決定部152と、周波数変更部153とを備える。これらの機能については後述する。
***動作の説明***
実施の形態2における状態監視、制限条件および制限制御は、以下の通りである。
状態監視で監視される情報処理装置100の状態は、対象アクセス量である。
対象アクセス量は、再起動でのメモリ121への単位時間当たりのアクセス数である。つまり、対象アクセス量は、再起動で単位時間当たりにメモリ121に発生したアクセスの回数である。
制限条件は、対象アクセス量が基準値を超えるという条件である。基準値は予め決められた値である。
制限制御は、対象コアの動作周波数を、対象アクセス量が基準値を超える前の対象コアの動作周波数よりも低くする制御である。対象コアは、再起動を実行するコア111である。
図6に基づいて、再起動制御方法を説明する。
ステップS210およびステップS220は、実施の形態1における図4のステップS110およびステップS120と同じである。
つまり、S210で稼働中のOSに異常が発生した場合、異常が発生したOSの再起動がステップS220で開始される。
ステップS230は、実施の形態1における図4のステップS143に相当する。
ステップS230において、再起動制御部144は、再起動が終了したか判定する。判定方法は、実施の形態1における図4のステップS143と同じである。
再起動が終了した場合、処理はステップS260に進む。
再起動が終了していない場合、処理はステップS240に進む。
ステップS240は、実施の形態1における図4のステップS130に相当する。
ステップS240において、状態監視部143は対象アクセス量を監視する。
具体的には、状態監視部143は、対象コアのパフォーマンスモニタとして機能し、再起動のプロセスによるメモリ121への単位時間当たりのアクセス数を取得する。取得されるアクセス数が対象アクセス量である。
ステップS251は、実施の形態1における図4のステップS141に相当する。
ステップS251において、アクセス量判定部151は、対象アクセス量を基準値と比較する。
対象アクセス量が基準値を超えている場合、処理はステップS252に進む。
対象アクセス量が基準値を超えていない場合、処理はステップS230に戻る。
ステップS252において、アクセス量判定部151は、対象アクセス量が基準値を超えた1回目であるか判定する。
具体的には、回数フラグがメモリ121に記憶される。アクセス量判定部151は、ステップS220の後、ステップS230の前に、回数フラグに0を設定する。そして、アクセス量判定部151は、ステップS252で回数フラグの値が0であるか判定する。回数フラグの値0は、対象アクセス量が基準値を超えた1回目を意味する。
対象アクセス量が基準値を超えた1回目である場合、処理はステップS253に進む。
対象アクセス量が基準値を超えた1回目でない場合、処理はステップS254に進む。
ステップS253において、周波数変更部153は、対象コアの動作周波数を記憶する。
具体的には、周波数変更部153は、対象コアの動作周波数を対象コアから取得し、取得された動作周波数をメモリ121に記憶する。
ステップS253で記憶された動作周波数を通常周波数という。
通常周波数は、対象アクセス量が基準値を超える前の対象コアの動作周波数に相当する。
ステップS254は、実施の形態1における図4のステップS142に相当する。
ステップS254において、周波数変更部153は、対象コアの動作周波数を通常周波数よりも低くする。
具体的には、低周波数がメモリ121に記憶されている。低周波数は、予め決められた周波数であり、通常周波数よりも低い周波数である。周波数決定部152は、低周波数をメモリ121から取得する。そして、周波数変更部153は、周波数変更機構112とクロックジェネレータ113とを用いて、対象コアの動作周波数を低周波数に変更する。
また、周波数変更部153は、ステップS252で説明した回数フラグに1を設定する。回数フラグの値1は、対象アクセス量が基準値を超えた2回目以降を意味する。
ステップS254の後、処理はステップS230に戻る。
ステップS260において、周波数変更部153は、対象コアの動作周波数を通常周波数に戻す。但し、対象コアの動作周波数が通常周波数から変更されていない場合、対象コアの動作周波数を通常周波数に戻す必要はない。
具体的には、周波数決定部152は、回数フラグを参照する。回数フラグの値が0である場合、対象コアの動作周波数を通常周波数に戻す必要はない。回数フラグの値1である場合、周波数決定部152は、ステップS253で記憶された通常周波数をメモリ121から取得する。そして、周波数変更部153は、周波数変更機構112とクロックジェネレータ113とを用いて、対象コアの動作周波数を通常周波数に変更する。
***実施の形態2の効果***
再起動を行うコア111の動作周波数を低くすることにより、再起動でのメモリ121への単位時間当たりのアクセス数を減らすことが可能になる。
その結果、再起動におけるバス120の占有率が低くなり、バス120を介してハードウェアにアクセスする際の稼働中のOSの待ち時間が少なくなる。
したがって、稼働中のOSの性能の低下を抑えることが可能となる。
***他の構成***
図6のステップS254で、周波数変更部153は、対象コアの動作周波数を、対象コアの動作周波数に対応する低周波数に変更してもよい。
その場合、周波数決定部152は、周波数テーブルを用いて、低周波数を決定する。
周波数テーブルは、周波数範囲と低周波数とが互いに関連付けられたテーブルである。周波数テーブルはメモリ121に記憶される。
具体的には、周波数決定部152は、対象コアの動作周波数を含んだ周波数範囲を周波数テーブルから選択し、選択された周波数範囲に関連付けられた低周波数を周波数テーブルから取得する。
対象アクセス量が多い場合、再起動制御部144は、再起動を休止させてもよい。
図7に基づいて、対象アクセス量が基準値を超えている場合に再起動を休止させる再制御方法を説明する。
ステップS210からステップS240およびステップS260は、図6で説明した通りである。
ステップS271において、アクセス量判定部151は、対象アクセス量を第1基準値と比較する。
対象アクセス量が第1基準値を超えている場合、処理はステップS272に進む。
対象アクセス量が第1基準値を超えていない場合、処理はステップS230に戻る。
ステップS272およびステップS273は、図6のステップS252およびステップS253と同じである。
ステップS274において、アクセス量判定部151は、対象アクセス量を第2基準値と比較する。第2基準値は、第1基準値よりも大きい値である。つまり、第2基準値が示すアクセス数は、第1基準値が示すアクセス数よりも多い。
対象アクセス量が第2基準値を超えている場合、処理はステップS276に進む。
対象アクセス量が第2基準値を超えていない場合、処理はステップS275に進む。
ステップS275は、図6のステップS254と同じである。ステップS275の後、処理はステップS230に戻る。
ステップS276において、再起動制御部144は、再起動を休止させる。
具体的には、再起動制御部144は、再起動のプロセスを実行状態または実行可能状態からスリープ状態にする。そして、再起動制御部144は、再起動のプロセスをスリープ状態にしたときから休止時間が経過したときに、再起動のプロセスを実行状態または実行可能状態にする。
ステップS276の後、処理はステップS230に戻る。
実施の形態3.
再起動でメモリ121に対して発生するダイレクトメモリアクセスのアクセス量を状態監視の対象とする形態について、主に実施の形態1と異なる点を、図8から図11に基づいて説明する。
***構成の説明***
図8に基づいて、情報処理装置100のハードウェア構成を説明する。
情報処理装置100は、実施の形態1で説明したハードウェアに加えて、バスコントローラ124とDMAコントローラ125といったハードウェアを備える。DMAはダイレクトメモリアクセスの略称である。
情報処理装置100のソフトウェア構成は、実施の形態1の図1と同じである。
コア111の機能構成は、実施の形態1の図2と同じである。
ハイパーバイザ部140の機能構成は、実施の形態1の図3と同じである。
図9に基づいて、再起動制御部144の機能構成を説明する。
再起動制御部144は、アクセス量判定部161と、命令変換部162とを備える。これらの機能については後述する。
***動作の説明***
実施の形態3における状態監視、制限条件および制限制御は、以下の通りである。
状態監視で監視される情報処理装置100の状態は、対象アクセス量である。
対象アクセス量は、再起動でメモリ121に対して発生するダイレクトメモリアクセスのアクセス量である。具体的には、アクセス量は、DMA命令の数またはアクセスされるデータのサイズである。DMA命令は、ダイレクトメモリアクセスの命令であり、DMAコントローラ125によって実行される。
制限条件は、対象アクセス量が基準値を超えるという条件である。基準値は予め決められた値である。
制限制御は、再起動でメモリ121に対して発生するダイレクトメモリアクセスの命令を、プログラム制御方式の命令に変換する、という制御である。プログラム制御方式は、PIO(Programmed I/O)と呼ばれる。プログラム制御方式の命令をPIO命令という。PIO命令はバスコントローラ124によって実行される。
図10に基づいて、再起動制御方法を説明する。
ステップS310およびステップS320は、実施の形態1における図4のステップS110およびステップS120と同じである。
つまり、ステップS310で稼働中のOSに異常が発生した場合、異常が発生したOSの再起動がステップS320で開始される。
ステップS330は、実施の形態1における図4のステップS143に相当する。
ステップS330において、再起動制御部144は、再起動が終了したか判定する。判定方法は、実施の形態1における図4のステップS143と同じである。
再起動が終了した場合、処理は終了する。
再起動が終了していない場合、処理はステップS340に進む。
ステップS340は、実施の形態1における図4のステップS130に相当する。
ステップS340において、状態監視部143は対象アクセス量を監視する。
具体的には、状態監視部143は、再起動で発生したDMA命令を検出し、検出されたDMA命令の数を求める。または、状態監視部143は、DMA命令を検出し、検出されたDMA命令でアクセスされるデータのサイズを求める。求められるDMA命令の数またはデータのサイズが対象アクセス量である。
ステップS351は、実施の形態1における図4のステップS141に相当する。
ステップS351において、アクセス量判定部161は、対象アクセス量を基準値と比較する。
対象アクセス量が基準値を超えている場合、処理はステップS352に進む。
対象アクセス量が基準値を超えていない場合、再起動で発生したDMA命令はDMAコントローラ125によって実行され、処理はステップS330に戻る。
ステップS352は、実施の形態1における図4のステップS142に相当する。
ステップS352において、命令変換部162は、再起動で発生したDMA命令をPIO命令に変換する。変換後のPIO命令は、バスコントローラ124によって実行される。
ステップS352の後、処理はステップS330に戻る。
***実施の形態3の効果***
再起動で発生するDMA命令をPIO命令に変換することにより、再起動でのメモリ121への単位時間当たりのアクセス数を減らすことが可能になる。
その結果、再起動におけるバス120の占有率が低くなり、バス120を介してハードウェアにアクセスする際の稼働中のOSの待ち時間が少なくなる。
したがって、稼働中のOSの性能の低下を抑えることが可能となる。
***他の構成***
対象アクセス量が多い場合、再起動制御部144は、再起動で発生したDMA命令の一部または全部をPIO命令に変換してもよい。
図11に基づいて、対象アクセス量が基準値を超えている場合に、再起動で発生したDMA命令の一部または全部をPIO命令に変換する再起動制御方法を説明する。
ステップS310からステップS340は、図10で説明した通りである。
ステップS361において、アクセス量判定部161は、対象アクセス量を第1基準値と比較する。
対象アクセス量が第1基準値を超えている場合、処理はステップS362に進む。
対象アクセス量が第1基準値を超えていない場合、処理はステップS330に戻る。
ステップS362において、アクセス量判定部161は、対象アクセス量を第2基準値と比較する。第2基準値は、第1基準値よりも大きい値である。つまり、第2基準値が示すアクセス量は、第1基準値が示すアクセス量よりも多い。
対象アクセス量が第2基準値を超えている場合、処理はステップS364に進む。
対象アクセス量が第2基準値を超えていない場合、処理はステップS363に進む。
ステップS363において、命令変換部162は、再起動で発生したDMA命令から一部のDMA命令を選択し、選択されたDMA命令をPIO命令に変換する。具体的には、命令変換部162は、半分のDMA命令をPIO命令に変換する。変換されなかったDMA命令はDMAコントローラ125によって実行され、変換後のPIO命令はバスコントローラ124によって実行される。
ステップS363の後、処理はステップS330に戻る。
ステップS364において、命令変換部162は、再起動で発生したDMA命令をPIO命令に変換する。具体的には、命令変換部162は、再起動で発生したDMA命令の全てをPIO命令に変換する。変換後のPIO命令はバスコントローラ124によって実行される。
ステップS364の後、処理はステップS330に戻る。
実施の形態4.
再起動の対象でないOSからのキャッシュ129へのアクセスで発生するキャッシュミスのミス率を状態監視の対象とする形態について、主に実施の形態1と異なる点を、図12から図14に基づいて説明する。
***構成の説明***
図12に基づいて、情報処理装置100のハードウェア構成を説明する。
情報処理装置100は、実施の形態1で説明したハードウェアに加えて、キャッシュコントローラ126というハードウェアを備える。
情報処理装置100のソフトウェア構成は、実施の形態1の図1と同じである。
コア111の機能構成は、実施の形態1の図2と同じである。
ハイパーバイザ部140の機能構成は、実施の形態1の図3と同じである。
図13に基づいて、再起動制御部144の機能構成を説明する。
再起動制御部144は、ミス率判定部171と、アクセス制御部172とを備える。アクセス制御部172の機能については後述する。
***動作の説明***
実施の形態4における状態監視、制限条件および制限制御は、以下の通りである。
状態監視で監視される情報処理装置100の状態は、対象ミス率である。
対象ミス率は、再起動の対象でないオペレーティングシステムからのキャッシュ129へのアクセスで発生するキャッシュミスのミス率である。
制限条件は、対象ミス率が基準値を超えるという条件である。基準値は予め決められた値である。
制限制御は、再起動中のオペレーティングシステムからのキャッシュ129へのアクセスを禁止する制御である。
図14に基づいて、再起動制御方法を説明する。
ステップS410およびステップS420は、実施の形態1における図4のステップS110およびステップS120と同じである。
つまり、ステップS410で稼働中のOSに異常が発生した場合、異常が発生したOSの再起動がステップS420で開始される。
ステップS430は、実施の形態1における図4のステップS143に相当する。
ステップS430において、再起動制御部144は、再起動が終了したか判定する。判定方法は、実施の形態1における図4のステップS143と同じである。
再起動が終了した場合、処理は終了する。
再起動が終了していない場合、処理はステップS440に進む。
ステップS440は、実施の形態1における図4のステップS130に相当する。
ステップS440において、状態監視部143は対象ミス率を監視する。
具体的には、状態監視部143は、稼働中のOSからのキャッシュ129へのアクセスの回数と、稼働中のOSからのキャッシュ129へのアクセスで発生したキャッシュミスの回数とを数える。そして、状態監視部143は、アクセスの回数とキャッシュミスの回数とを用いて、対象ミス率を算出する。具体的には、対象ミス率は、キャッシュミスの回数をアクセスの回数で割って得られる商である。
ステップS451は、実施の形態1における図4のステップS141に相当する。
ステップS451において、ミス率判定部171は、対象ミス率を基準値と比較する。
対象ミス率が基準値を超えている場合、処理はステップS452に進む。
対象ミス率が基準値を超えていない場合、処理はステップS430に戻る。
ステップS452は、実施の形態1における図4のステップS142に相当する。
ステップS452において、アクセス制御部172は、再起動中のOSからのキャッシュ129へのアクセスを禁止する。
具体的には、アクセス制御部172は、キャッシュコントローラ126に対して、再起動中のOSからのキャッシュ129へのアクセスを禁止する設定を行う。
ステップS452の後、処理はステップS430に戻る。
ステップS460において、アクセス制御部172は、再起動後のOSからのキャッシュ129へのアクセスを許可する。但し、再起動中のOSからのキャッシュ129へのアクセスが禁止されていない場合、再起動後のOSからのキャッシュ129へのアクセスを許可する必要はない。
具体的には、アクセス制御部172は、再起動後のOSからのキャッシュ129へのアクセスに対する設定を示す設定値をキャッシュコントローラ126から取得する。取得された設定値がアクセスの禁止を意味する値である場合、アクセス制御部172は、キャッシュコントローラ126に対して、禁止を解除する設定を行う。
ステップS460の後、処理は終了する。
***実施の形態4の効果***
再起動でのキャッシュ129へのアクセスを禁止することにより、再起動によるキャッシュ129の更新を抑止することが可能になる。
その結果、稼働中のOSがキャッシュ129にアクセスした際のキャッシュミスが減る。したがって、稼働中のOSの性能の低下を抑えることが可能となる。
***実施の形態の補足***
情報処理装置100は、異常検出部141と再起動部142と状態監視部143と再起動制御部144といった「部」を機能構成の要素として備える。「部」の機能はソフトウェアで実現される。具体的には、「部」の機能は、ハイパーバイザ101の機能として実現される。
「部」の機能を実現するプログラムは、メモリ121にロードされて、プロセッサ110によって実行される。
「部」の機能を実現するプログラムを実行して得られるデータは、メモリ121またはキャッシュ129といった記憶装置に記憶される。
「部」の機能を実現するプログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
「部」は「処理」、「工程」または「回路」に読み替えてもよい。プロセッサ110とメモリ121とキャッシュ129とをまとめたハードウェアを「プロセッシングサーキットリ」という。
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
100 情報処理装置、101 ハイパーバイザ、102 リアルタイムOS、103 リアルタイムアプリケーション、104 汎用OS、105 汎用アプリケーション、110 プロセッサ、111 コア、112 周波数変更機構、113 クロックジェネレータ、114 割り込みコントローラ、120 バス、121 メモリ、122 WDT、123 I/Oデバイス、124 バスコントローラ、125 DMAコントローラ、126 キャッシュコントローラ、129 キャッシュ、131 OS部、132 アプリケーション部、140 ハイパーバイザ部、141 異常検出部、142 再起動部、143 状態監視部、144 再起動制御部、151 アクセス量判定部、152 周波数決定部、153 周波数変更部、161 アクセス量判定部、162 命令変換部、171 ミス率判定部、172 アクセス制御部。

Claims (8)

  1. 複数のプロセッサコアを有するマルチコアプロセッサと前記複数のプロセッサコアからアクセスされるメモリとを備えて前記複数のプロセッサコアによって複数のオペレーティングシステムを動作させる情報処理装置であって、
    前記複数のオペレーティングシステムに含まれるオペレーティングシステムに異常が発生した場合、異常が発生したオペレーティングシステムの再起動を前記複数のプロセッサコアに含まれるプロセッサコアに実行させる再起動部と、
    前記再起動の実行中に前記情報処理装置の状態を監視する状態監視部と、
    前記再起動の実行中に前記情報処理装置の状態が前記再起動の実行を制限する制限条件を満たした場合、前記再起動の実行に対して制限制御を行った上で再起動を行う再起動制御部と
    前記制限条件は、前記再起動での前記メモリへの単位時間当たりのアクセス数である対象アクセス量が基準値を超えるという条件であり、
    前記状態監視部は、前記情報処理装置の状態として、前記対象アクセス量を監視し、
    前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記制限制御として、前記再起動を実行するプロセッサコアである対象コアの動作周波数を、前記対象アクセス量が前記基準値を超える前の前記対象コアの動作周波数よりも低くする
    情報処理装置。
  2. 前記再起動制御部は、前記対象コアの動作周波数を前記対象アクセス量が前記基準値を超える前の前記対象コアの動作周波数である通常周波数よりも低くした後に前記再起動が終了した場合、前記対象コアの動作周波数を前記通常周波数に戻す
    請求項に記載の情報処理装置。
  3. 前記再起動制御部は、前記対象アクセス量が前記基準値である第1基準値よりも大きい第2基準値を超えた場合、前記再起動を休止させる
    請求項に記載の情報処理装置。
  4. 前記情報処理装置は、前記複数のプロセッサコアからアクセスされるメモリを備え、
    前記制限条件は、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスのアクセス量である対象アクセス量が基準値を超えるという条件であり、
    前記状態監視部は、前記情報処理装置の状態として、前記対象アクセス量を監視し、
    前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記制限制御として、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスの命令を、プログラム制御方式の命令に変換する
    請求項1に記載の情報処理装置。
  5. 前記再起動制御部は、前記対象アクセス量が前記基準値を超えた場合、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスのうちの一部のダイレクトメモリアクセスの命令を、プログラム制御方式の命令に変換する
    請求項に記載の情報処理装置。
  6. 前記再起動制御部は、前記対象アクセス量が前記基準値である第1基準値よりも大きい第2基準値を超えた場合、前記再起動で前記メモリに対して発生するダイレクトメモリアクセスの全ての命令を、プログラム制御方式の命令に変換する
    請求項に記載の情報処理装置。
  7. 前記情報処理装置は、前記複数のプロセッサコアからアクセスされるキャッシュを備え、
    前記制限条件は、前記再起動の対象でないオペレーティングシステムからの前記キャッシュへのアクセスで発生するキャッシュミスのミス率である対象ミス率が基準値を超えるという条件であり、
    前記状態監視部は、前記情報処理装置の状態として、前記対象ミス率を監視し、
    前記再起動制御部は、前記対象ミス率が前記基準値を超えた場合、前記制限制御として、再起動中のオペレーティングシステムからの前記キャッシュへのアクセスを禁止する
    請求項1に記載の情報処理装置。
  8. 前記再起動制御部は、再起動中のオペレーティングシステムからの前記キャッシュへのアクセスを禁止した後に前記再起動が終了した場合、再起動後のオペレーティングシステムからの前記キャッシュへのアクセスを許可する
    請求項に記載の情報処理装置。
JP2016562601A 2016-05-10 2016-05-10 情報処理装置 Active JP6073004B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/063898 WO2017195276A1 (ja) 2016-05-10 2016-05-10 情報処理装置および再起動制御方法

Publications (2)

Publication Number Publication Date
JP6073004B1 true JP6073004B1 (ja) 2017-02-01
JPWO2017195276A1 JPWO2017195276A1 (ja) 2018-05-31

Family

ID=57937630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016562601A Active JP6073004B1 (ja) 2016-05-10 2016-05-10 情報処理装置

Country Status (3)

Country Link
JP (1) JP6073004B1 (ja)
TW (1) TWI632454B (ja)
WO (1) WO2017195276A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050712A (ja) * 2001-08-06 2003-02-21 Canon Inc マイクロコンピュータ・システム
JP2006209487A (ja) * 2005-01-28 2006-08-10 Hitachi Ltd 計算機システム、計算機、ストレージ装置及び管理端末
JP2009080692A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
WO2013080288A1 (ja) * 2011-11-28 2013-06-06 富士通株式会社 メモリ縮退方法及び情報処理装置
JP2014182576A (ja) * 2013-03-19 2014-09-29 Hitachi Ltd 構成管理装置と構成管理方法及び構成管理プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2927108B2 (ja) * 1992-07-22 1999-07-28 日本電気株式会社 インサーキットエミュレータ
US5659679A (en) * 1995-05-30 1997-08-19 Intel Corporation Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
US6961806B1 (en) * 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
GB2411254B (en) * 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050712A (ja) * 2001-08-06 2003-02-21 Canon Inc マイクロコンピュータ・システム
JP2006209487A (ja) * 2005-01-28 2006-08-10 Hitachi Ltd 計算機システム、計算機、ストレージ装置及び管理端末
JP2009080692A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
WO2013080288A1 (ja) * 2011-11-28 2013-06-06 富士通株式会社 メモリ縮退方法及び情報処理装置
JP2014182576A (ja) * 2013-03-19 2014-09-29 Hitachi Ltd 構成管理装置と構成管理方法及び構成管理プログラム

Also Published As

Publication number Publication date
WO2017195276A1 (ja) 2017-11-16
TW201740274A (zh) 2017-11-16
JPWO2017195276A1 (ja) 2018-05-31
TWI632454B (zh) 2018-08-11

Similar Documents

Publication Publication Date Title
US8782643B2 (en) Device and method for controlling communication between BIOS and BMC
US10198332B2 (en) System on chip integrity verification method and system
US9354943B2 (en) Power management for multi-core processing systems
WO2016101519A1 (zh) 一种实现操作系统重启的方法和装置
CN105404559B (zh) 在数据处理装置中进行除错
JP2015067107A (ja) 車両用制御装置
JP2013149221A (ja) プロセッサの制御装置およびその方法
JP2021163398A (ja) 情報処理装置及び情報処理方法
JP6073004B1 (ja) 情報処理装置
US10269194B2 (en) Multiprocessor system and vehicle control system
JP2011008702A (ja) 故障処理装置
EP3246821B1 (en) Semiconductor device and its memory access control method
JP5870043B2 (ja) 起動制御装置、情報機器および起動制御方法
US20180089012A1 (en) Information processing apparatus for analyzing hardware failure
US9176806B2 (en) Computer and memory inspection method
JP6066807B2 (ja) 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法
US20230237010A1 (en) Power efficient memory value updates for arm architectures
JP2009271597A (ja) プロセッサ
WO2013057769A1 (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
JP2015014966A (ja) 情報処理装置、情報処理方法、および、情報処理プログラム
JP2010191522A (ja) プログラム検査方法
JP2016151917A (ja) 情報処理装置、情報処理制御方法および情報処理装置制御プログラム
JP2018067057A (ja) 制御プログラムの検証装置及びプログラム
JP2015064638A (ja) コンピュータ装置、割り込み制御方法およびコンピュータプログラム
JPWO2013057769A1 (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161130

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161228

R150 Certificate of patent or registration of utility model

Ref document number: 6073004

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250