JP2011238152A - プロセッサ装置及び計算機装置 - Google Patents
プロセッサ装置及び計算機装置 Download PDFInfo
- Publication number
- JP2011238152A JP2011238152A JP2010110841A JP2010110841A JP2011238152A JP 2011238152 A JP2011238152 A JP 2011238152A JP 2010110841 A JP2010110841 A JP 2010110841A JP 2010110841 A JP2010110841 A JP 2010110841A JP 2011238152 A JP2011238152 A JP 2011238152A
- Authority
- JP
- Japan
- Prior art keywords
- state
- timer
- clock
- value
- tick
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】周期リセットが必要な機能と不要な機能を同一CPUで動作させる場合に、周期リセットが不要な機能の動作継続性をオーバヘッドなく確保する。
【解決手段】リセット装置102が、周期リセットより一定時間早くブートストラップ203へプレリセット信号を出力し、ブートストラップ203が周期リセット不要なRTOS204についてのプロセッサ状態の他、OSタイマのタイマ値をRAM104に退避する。クロックチック数記憶領域は、RTOSについての退避から復元までの時間にクロック発信装置103から出力されるクロックチック数を記憶しており、ブートストラップ203は、RTOSの復元時に、RAMに退避したタイマ値とクロックチック数記憶領域のクロックチック数を用いて、OSタイマ値を算出し、復元することですることで、H/Wタイマを利用することなく、RTOSの動作継続性をオーバヘッドなく確保する。
【選択図】図2
【解決手段】リセット装置102が、周期リセットより一定時間早くブートストラップ203へプレリセット信号を出力し、ブートストラップ203が周期リセット不要なRTOS204についてのプロセッサ状態の他、OSタイマのタイマ値をRAM104に退避する。クロックチック数記憶領域は、RTOSについての退避から復元までの時間にクロック発信装置103から出力されるクロックチック数を記憶しており、ブートストラップ203は、RTOSの復元時に、RAMに退避したタイマ値とクロックチック数記憶領域のクロックチック数を用いて、OSタイマ値を算出し、復元することですることで、H/Wタイマを利用することなく、RTOSの動作継続性をオーバヘッドなく確保する。
【選択図】図2
Description
本発明は、周期的にリセットさせて動作するソフトウェアと、同リセット動作を必要としないソフトウェアが同一プロセッサ上で動作する計算機における、ソフトウェアの状態の保存・復元方法に関するものである。
メンテナンスが困難な機器に搭載する計算機装置では、物理的要因によるハードウェアおよびソフトウェアの誤動作を回避するために、特に信頼性が必要な機能では、周期的にプロセッサをリセットして動作させている(以降、周期リセットと呼ぶ)。
そのため、周期リセットを必要とする機能と必要としない機能が混在する計算機装置の場合は、それぞれの機能を異なるプロセッサに分けて実現している。
周期リセットを必要とする機能とは、所定のリセット信号が発生した際に以前の状態を復元しないで起動するソフトウェアであり、周期リセットを必要としない機能とは、リセット信号が発生した際に以前の状態を復元して起動するソフトウェアである。
一方で、計算機の低価格化および小型化を目的とした場合、それぞれの機能を同一プロセッサで動作させることが考えられる。
周期リセットを必要とする機能と、周期リセットを必要としない機能を同一プロセッサで動作させる場合、周期リセットを必要としない機能のレジスタ等の情報を退避・復元することで、動作継続性を確保することができる。
そのため、周期リセットを必要とする機能と必要としない機能が混在する計算機装置の場合は、それぞれの機能を異なるプロセッサに分けて実現している。
周期リセットを必要とする機能とは、所定のリセット信号が発生した際に以前の状態を復元しないで起動するソフトウェアであり、周期リセットを必要としない機能とは、リセット信号が発生した際に以前の状態を復元して起動するソフトウェアである。
一方で、計算機の低価格化および小型化を目的とした場合、それぞれの機能を同一プロセッサで動作させることが考えられる。
周期リセットを必要とする機能と、周期リセットを必要としない機能を同一プロセッサで動作させる場合、周期リセットを必要としない機能のレジスタ等の情報を退避・復元することで、動作継続性を確保することができる。
周期リセットを必要とする機能と必要としない機能を同一のプロセッサで動作させる場合には、例えば、図8に示すような処理が行われる。
図8は、従来における周期動作とOS(Operating System)状態の保存・復元処理を説明する図である。
図8の例では、高信頼ソフトウェアが周期リセットを必要とする機能であり、RTOS(Real Time Operating System)/アプリケーション(以下、RTOS/アプリと表記する)が周期リセットを必要としない機能である。
そして、周期Tごとにプロセッサにリセット信号が入力され、周期リセットを必要とする高信頼ソフトウェアを周期的にリセットさせる。
リセット信号の発生により高信頼ソフトウェアが実行されるため、リセット信号の発生前にプレリセットNMI(マスク不可能割込み:Non−Maskable Interrupt 以下、NMI)を発生させ、RTOS/アプリの実行を停止し、RTOS/アプリの実行に関するOS状態の保存を行う。
そして、所定のアイドル時間の後、リセット信号が発生し、高信頼ソフトウェアの実行が開始する。
高信頼ソフトウェアの実行完了後に、プレリセットNMI発生時に保存したOS状態を復元し、RTOS/アプリの実行を再開し、以降、このような手順を繰り返すことで、周期リセットを必要としないRTOSの動作を継続させることが考えられる。
図8は、従来における周期動作とOS(Operating System)状態の保存・復元処理を説明する図である。
図8の例では、高信頼ソフトウェアが周期リセットを必要とする機能であり、RTOS(Real Time Operating System)/アプリケーション(以下、RTOS/アプリと表記する)が周期リセットを必要としない機能である。
そして、周期Tごとにプロセッサにリセット信号が入力され、周期リセットを必要とする高信頼ソフトウェアを周期的にリセットさせる。
リセット信号の発生により高信頼ソフトウェアが実行されるため、リセット信号の発生前にプレリセットNMI(マスク不可能割込み:Non−Maskable Interrupt 以下、NMI)を発生させ、RTOS/アプリの実行を停止し、RTOS/アプリの実行に関するOS状態の保存を行う。
そして、所定のアイドル時間の後、リセット信号が発生し、高信頼ソフトウェアの実行が開始する。
高信頼ソフトウェアの実行完了後に、プレリセットNMI発生時に保存したOS状態を復元し、RTOS/アプリの実行を再開し、以降、このような手順を繰り返すことで、周期リセットを必要としないRTOSの動作を継続させることが考えられる。
これに関し、特許文献1では、周期TでCPU(Central Processing Unit)をリセットするシステムにおいて、“処理中断要求信号”と呼ばれる、周期の終了前に終了間近であることを示す信号を発生させ、これによって処理中断プログラムを起動し、プログラムカウンタ、各種レジスタ値を退避し、リセット後にそれを取り出して再開する手法が記載されている。
特許文献2では、汎用ネットワークと複数の計算機で構築された多重系システムにおいて、リセットの前に退避動作を起動するためにNMIを発生させ、NMI時点におけるメインメモリの内容をディスク装置に保存する手法が記載されている。
特許文献3では、リセットスイッチからリセット動作の実行要求が通知された際にCPUに対してNMIを発生し、その時点での実行中の処理のデータ保存を行う手法が記載されている。
また、計算機の暴走に対し、一定周期でリセット動作を行うことで高信頼性を保つ技術として、特許文献4では、複数のCPUに対してそれぞれに定められたシーケンスのプログラムを基準CPUから実行させることで暴走を監視し、暴走CPUに対してリセットパルスを発生させる手法が記載されている。
また、特許文献5では、マイコンが一定期間プログラムを実行した後スタンバイモードとなるよう構成し、パルス発信器の周期をマイコンのプログラム実行時間より十分大きくとり、一定周期ごとにプログラムの実行、スタンバイ、リセットを繰り返す構成手法が記載されている。
周期リセットが必要な機能と必要としない機能を同一プロセッサにて動作させる場合、上記のように、リセット直前に処理中断要求信号などのプレリセットを発信する機能を設け、プレリセット時に周期リセットを必要としない機能に対して、その時点でのプログラムカウンタ値や各種レジスタ値(OS状態情報と呼ぶ)を退避し、再起動した時点で退避した情報を復元することで、周期リセットを必要としない機能の動作の継続性を維持する。
ただし、タイマなど絶対時刻の継続性を確保する場合、外部H/W(ハードウェア)タイマを利用して絶対時刻を保つことでシステム全体の時間的整合性を保つことができるが、周期リセット間隔が非常に短い場合、H/Wタイマへのアクセス時間のオーバヘッドが問題となる。
また、OSタイマチックを退避・復元する場合は、退避から復元までの経過時間を加算する必要がある。
ただし、タイマなど絶対時刻の継続性を確保する場合、外部H/W(ハードウェア)タイマを利用して絶対時刻を保つことでシステム全体の時間的整合性を保つことができるが、周期リセット間隔が非常に短い場合、H/Wタイマへのアクセス時間のオーバヘッドが問題となる。
また、OSタイマチックを退避・復元する場合は、退避から復元までの経過時間を加算する必要がある。
以下に、上記H/Wタイマへのアクセス時間のオーバヘッド問題の例として、一般的なOSタイマの補正方法について説明する。
図9は従来の計算機装置500のハードウェア構成例を示す。
この図で、501はCPUであり、後述するアプリケーション、RTOS、およびブートストラップの実行および各種機器の制御を行うための中央演算装置である。
502はリセット装置であり、リセット信号を発生させる。
503はクロック発信装置であり、後述のRTOSおよびブートストラップに対してクロックチックを発信する。
504はH/Wタイマであり、後述のOSタイマは本値を利用してタイマ動作を行う。
505はRAM(Random Access Memory)であり、RTOS、アプリケーション、ブートストラップでの変数、レジスタ値の保存をする。
506はROMであり、上述のソフトウェアのプログラムコードおよび変数の初期値を格納するためのメモリ領域である。
この図で、501はCPUであり、後述するアプリケーション、RTOS、およびブートストラップの実行および各種機器の制御を行うための中央演算装置である。
502はリセット装置であり、リセット信号を発生させる。
503はクロック発信装置であり、後述のRTOSおよびブートストラップに対してクロックチックを発信する。
504はH/Wタイマであり、後述のOSタイマは本値を利用してタイマ動作を行う。
505はRAM(Random Access Memory)であり、RTOS、アプリケーション、ブートストラップでの変数、レジスタ値の保存をする。
506はROMであり、上述のソフトウェアのプログラムコードおよび変数の初期値を格納するためのメモリ領域である。
図10は従来の計算機装置500のソフトウェア構成を示すブロック図である。
この図で、601は周期リセットを必要としない機能で、RTOS602とその上で動作する複数の一般アプリケーション6011〜601Nで構成される。
また、RTOS602内では複数のOSタイマ6031〜603Kを保持し、それぞれのタイマは一般アプリケーション間で利用する。
このとき、タイマは共有することが可能である。
603はブートストラップで、RTOS602の初期設定・起動を行うソフトウェアである。
604は高信頼ソフトウェアであり、周期リセットを必要とする機能である。
CPU501、リセット装置502、クロック発信装置503及びH/Wタイマ504は、図9に示したものと同様である。
この図で、601は周期リセットを必要としない機能で、RTOS602とその上で動作する複数の一般アプリケーション6011〜601Nで構成される。
また、RTOS602内では複数のOSタイマ6031〜603Kを保持し、それぞれのタイマは一般アプリケーション間で利用する。
このとき、タイマは共有することが可能である。
603はブートストラップで、RTOS602の初期設定・起動を行うソフトウェアである。
604は高信頼ソフトウェアであり、周期リセットを必要とする機能である。
CPU501、リセット装置502、クロック発信装置503及びH/Wタイマ504は、図9に示したものと同様である。
次に、従来のOSタイマの補正方法について図11を用いて説明する。
まず、ブートストラップ603はリセット装置502よりリセット信号を受信すると(W1)、高信頼ソフトウェア604の起動・初期化(W2)、および、RTOS602の起動・初期化(W3)を実施する。
起動したRTOS602はタイマの継続を行うため、H/Wタイマ504の現在値を取得する(W4)。
そして、H/Wタイマ504の現在値を利用して、OSタイマの補正を実行する(W5)。
これらの処理を終了後、アプリケーションの起動を行う(W6)。
このように、時間的継続性を確保するためH/Wタイマ504を利用して絶対時刻を保つことでシステム全体の時間的整合性を保つことができるが、周期リセット間隔が非常に短い場合、H/Wタイマ504へのアクセス時間のオーバヘッドが問題となる。
また、RTOS602の処理によってOSタイマの補正を実行する場合、そのOS(カーネル)処理によっては時刻取得処理(関数)内で遅延が生じる場合がある。
例えば、カーネルが提供するシステムコールなどの関数を利用することにより遅延が生じることもある。
起動したRTOS602はタイマの継続を行うため、H/Wタイマ504の現在値を取得する(W4)。
そして、H/Wタイマ504の現在値を利用して、OSタイマの補正を実行する(W5)。
これらの処理を終了後、アプリケーションの起動を行う(W6)。
このように、時間的継続性を確保するためH/Wタイマ504を利用して絶対時刻を保つことでシステム全体の時間的整合性を保つことができるが、周期リセット間隔が非常に短い場合、H/Wタイマ504へのアクセス時間のオーバヘッドが問題となる。
また、RTOS602の処理によってOSタイマの補正を実行する場合、そのOS(カーネル)処理によっては時刻取得処理(関数)内で遅延が生じる場合がある。
例えば、カーネルが提供するシステムコールなどの関数を利用することにより遅延が生じることもある。
本願は、上記のような課題を解決することを主な目的としており、周期リセットが必要のないプログラム、すなわち、リセット信号が入力されると以前の状態を復元して起動する状態復元プログラムの時間的継続性および整合性をオーバヘッドなく確保することを主な目的とする。
本発明に係るプロセッサ装置は、
クロックチックを出力するクロック発信装置と、リセット信号を繰り返し出力するととともにリセット信号の出力前にプレリセット信号を出力するリセット装置と、情報を記憶するメモリ装置とに接続され、
前記リセット装置から前記リセット信号を入力した後に、以前の状態が復元される状態復元プログラムを起動するプロセッサ装置であって、
前記プレリセット信号が入力された際に、前記プレリセット信号の入力時点の前記状態復元プログラムの状態を示す状態情報と前記状態復元プログラムが使用しているタイマのタイマチック値を前記メモリ装置に退避させ、前記状態復元プログラムの起動の際に、前記メモリ装置の前記状態情報を用いて前記プレリセット信号の入力時点の前記状態復元プログラムの状態を復元する状態退避復元部と、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態復元プログラムの状態の復元までの時間に前記クロック発信装置から出力されるクロックチック数と、前記メモリ装置の前記タイマチック値とを用いて、前記タイマのタイマチック値の更新値を導出する更新値導出部とを有し、
前記状態復元プログラムの起動の際に、前記タイマのタイマチック値を前記更新値導出部により導出された前記更新値に更新するタイマ更新部とを有することを特徴とする。
クロックチックを出力するクロック発信装置と、リセット信号を繰り返し出力するととともにリセット信号の出力前にプレリセット信号を出力するリセット装置と、情報を記憶するメモリ装置とに接続され、
前記リセット装置から前記リセット信号を入力した後に、以前の状態が復元される状態復元プログラムを起動するプロセッサ装置であって、
前記プレリセット信号が入力された際に、前記プレリセット信号の入力時点の前記状態復元プログラムの状態を示す状態情報と前記状態復元プログラムが使用しているタイマのタイマチック値を前記メモリ装置に退避させ、前記状態復元プログラムの起動の際に、前記メモリ装置の前記状態情報を用いて前記プレリセット信号の入力時点の前記状態復元プログラムの状態を復元する状態退避復元部と、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態復元プログラムの状態の復元までの時間に前記クロック発信装置から出力されるクロックチック数と、前記メモリ装置の前記タイマチック値とを用いて、前記タイマのタイマチック値の更新値を導出する更新値導出部とを有し、
前記状態復元プログラムの起動の際に、前記タイマのタイマチック値を前記更新値導出部により導出された前記更新値に更新するタイマ更新部とを有することを特徴とする。
プレリセット信号の入力時に、プレリセット信号の入力時点のタイマのタイマチック値を退避させ、状態復元プログラムの起動の際に、タイマチック値の退避から状態復元プログラムの状態の復元までの時間にクロック発信装置から出力されるクロックチック数と、退避させたタイマチック値とを用いて、タイマチック値の更新値を導出し、タイマのタイマチック値を更新値に更新するため、状態復元プログラムの時間的継続性および整合性をオーバヘッドなく確保することができる。
前述のように、外因による計算機、ソフトウェアの誤動作を回避するために、特に信頼性が必要な機能では、周期的にプロセッサをリセットして動作させることがある(以降、周期リセットと呼ぶ)。
以下の実施の形態1〜3では、周期リセットを必要とする機能と周期リセットを必要としない機能が一つのプロセッサ上で動作する計算機装置を説明する。
従来技術のように、周期リセットを必要としない機能のレジスタ等の情報を退避・復元することで、動作継続性を確保することができるが、時間的継続性を確保するため外部H/Wタイマを利用して絶対時刻を保つ場合には、システム全体の時間的整合性を保つことができるが、周期リセット間隔が非常に短い場合、H/Wタイマへのアクセス時間のオーバヘッドが問題となる。
以下の実施の形態1〜3では、周期リセットを必要とする機能と周期リセットを必要としない機能が一つのプロセッサ上で動作する計算機装置を説明する。
従来技術のように、周期リセットを必要としない機能のレジスタ等の情報を退避・復元することで、動作継続性を確保することができるが、時間的継続性を確保するため外部H/Wタイマを利用して絶対時刻を保つ場合には、システム全体の時間的整合性を保つことができるが、周期リセット間隔が非常に短い場合、H/Wタイマへのアクセス時間のオーバヘッドが問題となる。
実施の形態1〜3では、周期リセットを発生させる機器において、周期リセットより一定時間早くプロセッサへ割込み(以降、プレリセットと呼ぶ)を送出する機能を持たせ、プレリセット割込み時に、プロセッサ状態(各種レジスタ)の他、その時点でのタイマチック値を保存し、ブートストラップなどによりその時点からのクロックチックのカウントを行う。
そして、OS状態情報の復元時に退避したタイマチック値と、その間にカウントしたクロックチックから現在のOSタイマ値を算出し、復元することですることで、H/Wタイマを利用することなく、周期リセットを必要としない機能の時間的継続性および整合性を確保する。
具体的には、
周期リセットを必要する、高信頼ソフトウェアと、
周期リセットを必要としない、RTOSとRTOS上で動作する一般アプリケーションと、
リセット信号とそのリセット信号の発信前にプレリセット信号を発信するリセット装置と、
高信頼ソフトウェアおよびRTOSの起動・初期設定を行う他、周期リセットを必要としない機能のレジスタ値や設定値などのOS状態情報の他、OSのタイマチック値の状態を退避・復元を行うことを基本機能とし、さらに、OS状態情報復元時にプレリセットとリセットの間のクロックチックのカウント・逓倍し、OSタイマチック値に加算して復元するブートストラップと、
OSのタイマチックを保存するためのRAM領域とを有する計算機装置を説明する。
そして、OS状態情報の復元時に退避したタイマチック値と、その間にカウントしたクロックチックから現在のOSタイマ値を算出し、復元することですることで、H/Wタイマを利用することなく、周期リセットを必要としない機能の時間的継続性および整合性を確保する。
具体的には、
周期リセットを必要する、高信頼ソフトウェアと、
周期リセットを必要としない、RTOSとRTOS上で動作する一般アプリケーションと、
リセット信号とそのリセット信号の発信前にプレリセット信号を発信するリセット装置と、
高信頼ソフトウェアおよびRTOSの起動・初期設定を行う他、周期リセットを必要としない機能のレジスタ値や設定値などのOS状態情報の他、OSのタイマチック値の状態を退避・復元を行うことを基本機能とし、さらに、OS状態情報復元時にプレリセットとリセットの間のクロックチックのカウント・逓倍し、OSタイマチック値に加算して復元するブートストラップと、
OSのタイマチックを保存するためのRAM領域とを有する計算機装置を説明する。
実施の形態1.
図1は、実施の形態1〜3に係る計算機装置100のハードウェア構成例を示す。
図1は、実施の形態1〜3に係る計算機装置100のハードウェア構成例を示す。
図1において、101はCPUであり、高信頼ソフトウェア、アプリケーション、RTOS、およびブートストラップの実行および各種機器の制御を行うための中央演算装置(プロセッサ装置)である。
102はリセット装置であり、リセット信号を繰り返し出力する機能のほか、リセット信号の出力前にプレリセット信号と呼ぶNMI(Non−Maskable Interrupt)をブートストラップおよびRTOSに対して出力する。
103はクロック発信装置であり、高信頼ソフトウェア、RTOSおよびブートストラップに対してクロックチックを発信する。後述するOSタイマはクロックチック値を逓倍してタイマ動作を行う。
104はRAM(Random Access Memory)であり、高信頼ソフトウェアやRTOS、アプリケーション、ブートストラップでの変数、レジスタ値を保存し、また、プレリセット時にOSタイマのタイマ値を一時的に保持する。RAM104は、メモリ装置の例である。
105はROM(Read Only Memory)であり、上述のソフトウェアのプログラムコードおよび変数の初期値を格納するためのメモリ領域である。
102はリセット装置であり、リセット信号を繰り返し出力する機能のほか、リセット信号の出力前にプレリセット信号と呼ぶNMI(Non−Maskable Interrupt)をブートストラップおよびRTOSに対して出力する。
103はクロック発信装置であり、高信頼ソフトウェア、RTOSおよびブートストラップに対してクロックチックを発信する。後述するOSタイマはクロックチック値を逓倍してタイマ動作を行う。
104はRAM(Random Access Memory)であり、高信頼ソフトウェアやRTOS、アプリケーション、ブートストラップでの変数、レジスタ値を保存し、また、プレリセット時にOSタイマのタイマ値を一時的に保持する。RAM104は、メモリ装置の例である。
105はROM(Read Only Memory)であり、上述のソフトウェアのプログラムコードおよび変数の初期値を格納するためのメモリ領域である。
図2は実施の形態1に係る計算機装置100のソフトウェア構成例を示す。
なお、図2は、各ソフトウェアがCPU101上にロードされてる状態を示している。
なお、図2は、各ソフトウェアがCPU101上にロードされてる状態を示している。
図2において、201は周期リセットを必要とする機能で、高信頼ソフトウェア2011で構成される。
202は周期リセットを必要としない機能で、RTOS204とその上で動作する複数の一般アプリケーション2021〜202Nで構成される。
周期リセットを必要としない機能であるRTOS204、アプリケーション2021〜202Nは状態復元プログラムの例である。
また、RTOS204内では複数のOSタイマ2041〜204Kを保持し、それぞれのタイマは一般アプリケーション2021〜202N間で利用する。
このとき、タイマは共有することが可能である。
202は周期リセットを必要としない機能で、RTOS204とその上で動作する複数の一般アプリケーション2021〜202Nで構成される。
周期リセットを必要としない機能であるRTOS204、アプリケーション2021〜202Nは状態復元プログラムの例である。
また、RTOS204内では複数のOSタイマ2041〜204Kを保持し、それぞれのタイマは一般アプリケーション2021〜202N間で利用する。
このとき、タイマは共有することが可能である。
203はブートストラップで、高信頼ソフトウェア2011およびRTOS204の初期設定・起動といったブートストラップ本来の処理を行う。
また、本実施の形態に係るブートストラップ203は、更に、プレリセット時のRTOS204の状態を示す状態情報とプレリセット時にRTOS204が保持する複数のOSタイマ2041〜204Kのタイマチック値をRAM104に退避する処理およびリセット時に上述RAM104に退避したRTOS204の状態情報及びタイマチック値を用いてRTOS204の状態を復元する。
タイマチック値については、より具体的には、ブートストラップ203は、退避したタイマチック値と後述のクロックチック数記憶領域に記憶されている固定値のクロックチック数とを用いて、OSタイマ2041〜204Kのタイマチック値の更新値を導出し、OSタイマ2041〜204Kのタイマチック値を導出した更新値に更新する。
ブートストラップ203は、状態退避復元部、更新値導出部及びタイマ更新部の例である。
また、本実施の形態に係るブートストラップ203は、更に、プレリセット時のRTOS204の状態を示す状態情報とプレリセット時にRTOS204が保持する複数のOSタイマ2041〜204Kのタイマチック値をRAM104に退避する処理およびリセット時に上述RAM104に退避したRTOS204の状態情報及びタイマチック値を用いてRTOS204の状態を復元する。
タイマチック値については、より具体的には、ブートストラップ203は、退避したタイマチック値と後述のクロックチック数記憶領域に記憶されている固定値のクロックチック数とを用いて、OSタイマ2041〜204Kのタイマチック値の更新値を導出し、OSタイマ2041〜204Kのタイマチック値を導出した更新値に更新する。
ブートストラップ203は、状態退避復元部、更新値導出部及びタイマ更新部の例である。
クロックチック数記憶領域は、ブートストラップ203による状態情報及びタイマチック値の退避からRTOS204の状態の復元までの固定時間にクロック発信装置103から出力されるクロックチック数(固定値)を記憶する。
CPU101、リセット装置102、クロック発信装置103及びRAM104は、図1に示したものと同様である。
なお、本実施の形態1〜3の説明において、プレリセットのタイミング、リセット信号のタイミング、高信頼ソフトウェア、RTOS/アプリケーションの実行順序は、図8に示した例に従う。
つまり、周期TごとにCPU101にリセット装置102からリセット信号が入力され、CPU101は高信頼ソフトウェア2011を実行する。
高信頼ソフトウェア2011の実行により、RTOS204及びアプリケーション2021〜202N(以下、RTOS/アプリと表記する)の実行は中断する。
このため、リセット装置102は、リセット信号の出力前にプレリセット信号であるプレリセットNMIを出力し、RTOS/アプリの実行を停止させ、CPU101は、RTOS/アプリの実行に関するOS状態の保存を行う。
そして、所定のアイドル時間の後、リセット装置102がリセット信号を出力し、CPU101が高信頼ソフトウェア2011の実行を開始する。
高信頼ソフトウェア2011の実行完了後に、CPU101は、プレリセットNMI発生時に保存したOS状態を復元し、RTOS/アプリの実行を再開し、以降、このような手順を繰り返すことで、周期リセットを必要としないRTOS/アプリの動作を継続させる。
そして、実施の形態1では、OS情報の退避と復元の期間を一定とし、ブートストラップにて固定クロックチック値を逓倍し、OSタイマチックに加算、復元している。
以下では、本実施の形態に係る動作を詳述する。
つまり、周期TごとにCPU101にリセット装置102からリセット信号が入力され、CPU101は高信頼ソフトウェア2011を実行する。
高信頼ソフトウェア2011の実行により、RTOS204及びアプリケーション2021〜202N(以下、RTOS/アプリと表記する)の実行は中断する。
このため、リセット装置102は、リセット信号の出力前にプレリセット信号であるプレリセットNMIを出力し、RTOS/アプリの実行を停止させ、CPU101は、RTOS/アプリの実行に関するOS状態の保存を行う。
そして、所定のアイドル時間の後、リセット装置102がリセット信号を出力し、CPU101が高信頼ソフトウェア2011の実行を開始する。
高信頼ソフトウェア2011の実行完了後に、CPU101は、プレリセットNMI発生時に保存したOS状態を復元し、RTOS/アプリの実行を再開し、以降、このような手順を繰り返すことで、周期リセットを必要としないRTOS/アプリの動作を継続させる。
そして、実施の形態1では、OS情報の退避と復元の期間を一定とし、ブートストラップにて固定クロックチック値を逓倍し、OSタイマチックに加算、復元している。
以下では、本実施の形態に係る動作を詳述する。
図3は、実施の形態1に係る計算機装置100の全体処理シーケンスを示す。
ここで前提として、図2に示したように、高信頼ソフトウェア2011、RTOS204が同一CPU101上で動作しており、さらに、RTOS204上で複数のアプリケーション2021〜202Nが動作しているものとする。
なお、以後、説明を簡単にするため、RTOS204上ではアプリケーション1(2021)のみが実行され、また、当該アプリケーション1(2021)がOSタイマ1(2041)を利用しているものとする。
また、リセット装置102は、図8に示すように、一定周期毎にリセット信号をブートストラップ203に発信するが、その前にプレリセット信号を発信するものとする。
本実施の形態では、プレリセット信号からリセット信号までの時間、高信頼ソフトウェアの実行時間は固定時間であり、そのため、OS状態情報保存(X2)とOS状態情報復元(X7)との間の時間は固定時間(時間T1)である。
ここで前提として、図2に示したように、高信頼ソフトウェア2011、RTOS204が同一CPU101上で動作しており、さらに、RTOS204上で複数のアプリケーション2021〜202Nが動作しているものとする。
なお、以後、説明を簡単にするため、RTOS204上ではアプリケーション1(2021)のみが実行され、また、当該アプリケーション1(2021)がOSタイマ1(2041)を利用しているものとする。
また、リセット装置102は、図8に示すように、一定周期毎にリセット信号をブートストラップ203に発信するが、その前にプレリセット信号を発信するものとする。
本実施の形態では、プレリセット信号からリセット信号までの時間、高信頼ソフトウェアの実行時間は固定時間であり、そのため、OS状態情報保存(X2)とOS状態情報復元(X7)との間の時間は固定時間(時間T1)である。
まず、リセット装置102はプレリセット信号をブートストラップ203に発信する(X1)。
次に、ブートストラップ203はRTOS204についてのレジスタ値やプログラムカウンタなどのOS状態情報をRAM104に保存する(X2)。
このとき、同時にアプリケーション2021が使用しているOSタイマ1(2041)が保持しているOSタイマチック情報をRAM104のタイマ値退避領域1に保存する(X3)。
次に、ブートストラップ203はRTOS204についてのレジスタ値やプログラムカウンタなどのOS状態情報をRAM104に保存する(X2)。
このとき、同時にアプリケーション2021が使用しているOSタイマ1(2041)が保持しているOSタイマチック情報をRAM104のタイマ値退避領域1に保存する(X3)。
次に、リセット装置102はプレリセット発生から所定の固定時間の経過後、リセット信号をブートストラップ203に発信する(X4)。
リセット信号を受信したブートストラップ203は、ソフトウェアの起動・初期値設定処理を行う。
まず、ブートストラップ203は、高信頼ソフトウェア2011の起動・初期化を行う(X5)。
次に、ブートストラップ203は、RTOS204についてOS状態情報の復元及びOSタイマのタイマ値の復元の直前のタイミング(X6)にて、タイマ値退避領域1に保存したOSタイマチック値にクロックチック数記憶領域に記憶されている固定値であるクロックチック数T1を加算する。
クロックチック数T1は、時間T1内にクロック発信装置103から出力されるクロックチック数に一致する。
前述のように、時間T1は毎周期で固定であるため、時間T1内に出力されるクロックチック数も固定である。
このとき、OSタイマ値がクロックチック値を逓倍している場合は、ブートストラップ203は、その逓倍数をクロックチック数T1に乗算した上でタイマ値退避領域1に保存したタイマ値に加算する(X6)。
次に、ブートストラップ203は、RTOS204の起動・初期化前にRAM104に退避させたOS状態情報を用いてRTOS204の状態を復元する(X7)。
同時に、ブートストラップ203は、上記X6で算出したOSタイマチック情報をOSタイマ1(2041)に復元する(X8)。
そして、ブートストラップ203は、RTOS204の起動初期化を行い(X9)、アプリケーションを起動する(X10)。
リセット信号を受信したブートストラップ203は、ソフトウェアの起動・初期値設定処理を行う。
まず、ブートストラップ203は、高信頼ソフトウェア2011の起動・初期化を行う(X5)。
次に、ブートストラップ203は、RTOS204についてOS状態情報の復元及びOSタイマのタイマ値の復元の直前のタイミング(X6)にて、タイマ値退避領域1に保存したOSタイマチック値にクロックチック数記憶領域に記憶されている固定値であるクロックチック数T1を加算する。
クロックチック数T1は、時間T1内にクロック発信装置103から出力されるクロックチック数に一致する。
前述のように、時間T1は毎周期で固定であるため、時間T1内に出力されるクロックチック数も固定である。
このとき、OSタイマ値がクロックチック値を逓倍している場合は、ブートストラップ203は、その逓倍数をクロックチック数T1に乗算した上でタイマ値退避領域1に保存したタイマ値に加算する(X6)。
次に、ブートストラップ203は、RTOS204の起動・初期化前にRAM104に退避させたOS状態情報を用いてRTOS204の状態を復元する(X7)。
同時に、ブートストラップ203は、上記X6で算出したOSタイマチック情報をOSタイマ1(2041)に復元する(X8)。
そして、ブートストラップ203は、RTOS204の起動初期化を行い(X9)、アプリケーションを起動する(X10)。
なお、図3では、X6のOSタイマチックカウントへの合算からX8のタイマ復元までに時差があるように見えるが、X6とX8はほぼ同時である。
このため、時間T1に対応するクロックチック数T1を(必要であれば逓倍させた後に)X3で退避させたタイマチック情報に加算した値は、OSタイマ1(2041)が中断せずに継続して動作しているとした場合のOSタイマ1(2041)のタイマ値と同じ値になる。
このため、時間T1に対応するクロックチック数T1を(必要であれば逓倍させた後に)X3で退避させたタイマチック情報に加算した値は、OSタイマ1(2041)が中断せずに継続して動作しているとした場合のOSタイマ1(2041)のタイマ値と同じ値になる。
このように、本実施の形態によれば、周期リセットを必要としない機能である、アプリケーション1(2021)の動作をリセット前から継続できるだけでなく、時間的に継続させることが可能である。
以上の実施の形態1では、
(1)プレリセット割込み時に、プロセッサ状態を主記憶の特定領域へ保存し、高信頼ソフトウェアの動作終了後、主記憶から復元する方法において、
(2)時間継続性を確保するため、プレリセット時にOSタイマチック値を退避し、
(3)リセット後、周期リセットを必要とする機能を起動させる際に、状態保存から復元開始までの期間を一定期間として、その固定のクロックカウント値をブートストラップが(2)で退避したOSタイマチック値に加算し、復元する方法を説明した。
(1)プレリセット割込み時に、プロセッサ状態を主記憶の特定領域へ保存し、高信頼ソフトウェアの動作終了後、主記憶から復元する方法において、
(2)時間継続性を確保するため、プレリセット時にOSタイマチック値を退避し、
(3)リセット後、周期リセットを必要とする機能を起動させる際に、状態保存から復元開始までの期間を一定期間として、その固定のクロックカウント値をブートストラップが(2)で退避したOSタイマチック値に加算し、復元する方法を説明した。
実施の形態2.
実施の形態2では、プレリセットとリセットの間の時間が可変であり、その間のクロックチックカウントをブートストラップが行う例を説明する。
実施の形態2では、プレリセットとリセットの間の時間が可変であり、その間のクロックチックカウントをブートストラップが行う例を説明する。
図4は、本実施の形態に係る計算機装置100のソフトウェアの構成例を示す。
図4の例では、図2で示されていたクロックチック数記憶領域が存在しない。
前述のように、本実施の形態では、クロックチック数記憶領域の固定クロックチック数を用いる代わりに、ブートストラップ203が、RTOS204の状態情報の退避及びOSタイマのタイマチック値の退避からRTOS204の状態の復元までの時間にクロック発信装置103から出力されるクロックチック数をカウントし、カウントしたクロックチック数とRAM104に退避させたタイマチック値とを用いて、OSタイマのタイマチック値の更新値を導出する。
本実施の形態では、ブートストラップ203は、状態退避復元部、更新値導出部、タイマ更新部、クロックチック数カウント部の例となる。
また、ブートストラップ203以外の要素は、図2と同様である。
図4の例では、図2で示されていたクロックチック数記憶領域が存在しない。
前述のように、本実施の形態では、クロックチック数記憶領域の固定クロックチック数を用いる代わりに、ブートストラップ203が、RTOS204の状態情報の退避及びOSタイマのタイマチック値の退避からRTOS204の状態の復元までの時間にクロック発信装置103から出力されるクロックチック数をカウントし、カウントしたクロックチック数とRAM104に退避させたタイマチック値とを用いて、OSタイマのタイマチック値の更新値を導出する。
本実施の形態では、ブートストラップ203は、状態退避復元部、更新値導出部、タイマ更新部、クロックチック数カウント部の例となる。
また、ブートストラップ203以外の要素は、図2と同様である。
実施の形態2の全体処理シーケンスを図5を用いて説明する。
前提条件は上記実施の形態1と同様であるが、リセット信号とプレリセット信号の間の時間は変動するものとする(時間T2−1)。
前提条件は上記実施の形態1と同様であるが、リセット信号とプレリセット信号の間の時間は変動するものとする(時間T2−1)。
まず、リセット装置102はプレリセット信号をブートストラップ203に発信する(Y1)。
次に、ブートストラップ203はRTOS204についてのレジスタ値やプログラムカウンタなどのOS状態情報をRAM104に保存する(Y2)。
このとき、ブートストラップ203は、同時にアプリケーション1(2021)が使用しているOSタイマ1(2041)が保持しているOSタイマチック情報をRAM104のタイマ値退避領域1に保存する(Y3)。
OSタイマチック情報のRAM104への保存と同時に、ブートストラップ203はクロック発信装置103を利用してクロックカウントを開始する(Y4)。
具体的には、ブートストラップ203は、OSタイマチック情報の退避が完了した後にクロック発信装置103から初めてクロックチックを入力するとカウンタにカウント値1を設定し、クロックチックを入力する度に、カウント値をカウントアップする。
次に、ブートストラップ203はRTOS204についてのレジスタ値やプログラムカウンタなどのOS状態情報をRAM104に保存する(Y2)。
このとき、ブートストラップ203は、同時にアプリケーション1(2021)が使用しているOSタイマ1(2041)が保持しているOSタイマチック情報をRAM104のタイマ値退避領域1に保存する(Y3)。
OSタイマチック情報のRAM104への保存と同時に、ブートストラップ203はクロック発信装置103を利用してクロックカウントを開始する(Y4)。
具体的には、ブートストラップ203は、OSタイマチック情報の退避が完了した後にクロック発信装置103から初めてクロックチックを入力するとカウンタにカウント値1を設定し、クロックチックを入力する度に、カウント値をカウントアップする。
そして、プレリセット発生から時間T2−1経過後にリセット装置102からリセット信号が発生し(Y5)、ブートストラップ203はソフトウェアの起動・初期値設定処理を行う。
まず、ブートストラップ203は高信頼ソフトウェア2011の起動・初期化を行う(Y6)。
次に、ブートストラップ203は、RTOS204についてOS状態情報の復元及びOSタイマのタイマ値の復元の直前のタイミング(Y7)にて、上記クロックチック数のカウントを終了する。
この間(時間T2−2)にブートストラップがカウントしたクロックチック数をT2−2とする。
ブートストラップ203は続けて上記クロックチック数T2−2のOSタイマチックへの合算を行う(Y8)。このとき、OSタイマ値がクロックチックの値を逓倍している場合はその逓倍数をクロックチック数T2−2に乗算した上でタイマ値退避領域1に保存したタイマ値に加算する。
そして、ブートストラップ203は、RTOS204の起動・初期化前にOS状態情報を復元する(Y9)。
ここでブートストラップ203は上記Y8で算出したOSタイマチック情報をOSタイマ1(2041)に復元する(Y10)。
そして、ブートストラップ203は、RTOS204の起動初期化を行い(Y11)、アプリケーションを起動する(Y12)。
まず、ブートストラップ203は高信頼ソフトウェア2011の起動・初期化を行う(Y6)。
次に、ブートストラップ203は、RTOS204についてOS状態情報の復元及びOSタイマのタイマ値の復元の直前のタイミング(Y7)にて、上記クロックチック数のカウントを終了する。
この間(時間T2−2)にブートストラップがカウントしたクロックチック数をT2−2とする。
ブートストラップ203は続けて上記クロックチック数T2−2のOSタイマチックへの合算を行う(Y8)。このとき、OSタイマ値がクロックチックの値を逓倍している場合はその逓倍数をクロックチック数T2−2に乗算した上でタイマ値退避領域1に保存したタイマ値に加算する。
そして、ブートストラップ203は、RTOS204の起動・初期化前にOS状態情報を復元する(Y9)。
ここでブートストラップ203は上記Y8で算出したOSタイマチック情報をOSタイマ1(2041)に復元する(Y10)。
そして、ブートストラップ203は、RTOS204の起動初期化を行い(Y11)、アプリケーションを起動する(Y12)。
本実施の形態によれば、周期リセットを必要としない機能である、アプリケーション1(2021)の動作をリセット前から継続できるだけでなく、時間的に継続させることが可能である。
以上の実施の形態2では、
(1)プレリセット割込み時に、プロセッサ状態を主記憶の特定領域へ保存し、高信頼ソフトウェアの動作終了後、主記憶から復元する方法において、
(2)時間継続性を確保するため、プレリセット時にOSタイマチック値を退避し、
(3)状態保存後、ブートストラップがクロックチックをカウントし、リセット後、周期リセットを必要とする機能を起動させる際に、そのクロックカウント値をブートストラップが(2)で退避したOSタイマチック値に加算し、復元する方法を説明した。
(1)プレリセット割込み時に、プロセッサ状態を主記憶の特定領域へ保存し、高信頼ソフトウェアの動作終了後、主記憶から復元する方法において、
(2)時間継続性を確保するため、プレリセット時にOSタイマチック値を退避し、
(3)状態保存後、ブートストラップがクロックチックをカウントし、リセット後、周期リセットを必要とする機能を起動させる際に、そのクロックカウント値をブートストラップが(2)で退避したOSタイマチック値に加算し、復元する方法を説明した。
実施の形態3.
実施の形態3では、ブートストラップがOSタイマチックを復元する点は実施の形態1と同様である。
本実施の形態では、プレリセット信号発生からリセット信号発生までは固定時間であるが、リセット信号発生から周期リセットを必要としない機能の起動までの時間が可変である。
そして、リセット信号発生から周期リセットを必要としない機能の起動までの時間のクロックチックカウントを高信頼ソフトウェアが行う。
実施の形態3では、ブートストラップがOSタイマチックを復元する点は実施の形態1と同様である。
本実施の形態では、プレリセット信号発生からリセット信号発生までは固定時間であるが、リセット信号発生から周期リセットを必要としない機能の起動までの時間が可変である。
そして、リセット信号発生から周期リセットを必要としない機能の起動までの時間のクロックチックカウントを高信頼ソフトウェアが行う。
図6は、本実施の形態に係る計算機装置100のソフトウェア構成例を示す。
図6において、クロックチック数記憶領域は、図2に示したものと同様であるが、記憶しているクロックチック数が異なる。
図6のクロックチック数記憶領域は、ブートストラップ203によるRTOS204の状態情報及びタイマチック値の退避から高信頼ソフトウェア2011(状態非復元プログラムの例)の起動完了までの時間にクロック発信装置103から出力されるクロックチック数を格納している。
また、本実施の形態では、高信頼ソフトウェア2011が、高信頼ソフトウェア2011の起動完了からブートストラップ203によるRTOS204の状態の復元までの時間にクロック発信装置103から出力されるクロックチック数をカウントする。
本実施の形態では、高信頼ソフトウェア2011がクロックチック数カウント部の例となる。
また、本実施の形態では、ブートストラップ203は、クロックチック数記憶領域に記憶されているクロックチック数と、高信頼ソフトウェア2011によりカウントされたクロックチック数と、RAM104に退避させているタイマチック値とを用いて、OSタイマのタイマチック値の更新値を導出する。
図6において、クロックチック数記憶領域は、図2に示したものと同様であるが、記憶しているクロックチック数が異なる。
図6のクロックチック数記憶領域は、ブートストラップ203によるRTOS204の状態情報及びタイマチック値の退避から高信頼ソフトウェア2011(状態非復元プログラムの例)の起動完了までの時間にクロック発信装置103から出力されるクロックチック数を格納している。
また、本実施の形態では、高信頼ソフトウェア2011が、高信頼ソフトウェア2011の起動完了からブートストラップ203によるRTOS204の状態の復元までの時間にクロック発信装置103から出力されるクロックチック数をカウントする。
本実施の形態では、高信頼ソフトウェア2011がクロックチック数カウント部の例となる。
また、本実施の形態では、ブートストラップ203は、クロックチック数記憶領域に記憶されているクロックチック数と、高信頼ソフトウェア2011によりカウントされたクロックチック数と、RAM104に退避させているタイマチック値とを用いて、OSタイマのタイマチック値の更新値を導出する。
実施の形態3の全体処理シーケンスを図7を用いて説明する。
前述のように、前提条件は上記実施の形態1と同様であるが、プレリセット発生からリセット発生までの期間は固定であり(時間T3−1)、リセット信号発生から周期リセットを必要としない機能の起動までの時間(時間T3−2)は変動するものとする。
前述のように、前提条件は上記実施の形態1と同様であるが、プレリセット発生からリセット発生までの期間は固定であり(時間T3−1)、リセット信号発生から周期リセットを必要としない機能の起動までの時間(時間T3−2)は変動するものとする。
まず、リセット装置102はプレリセット信号をブートストラップ203に発信する(Z1)。
次に、ブートストラップ203はRTOS204についてのレジスタ値やプログラムカウンタなどのOS状態情報をRAM104に保存する(Z2)。
このとき、ブートストラップ203は同時にアプリケーション1(2021)が使用しているOSタイマ1(2041)が保持しているOSタイマチック情報をRAM104のタイマ値退避領域1に保存する(Z3)。
次に、ブートストラップ203はRTOS204についてのレジスタ値やプログラムカウンタなどのOS状態情報をRAM104に保存する(Z2)。
このとき、ブートストラップ203は同時にアプリケーション1(2021)が使用しているOSタイマ1(2041)が保持しているOSタイマチック情報をRAM104のタイマ値退避領域1に保存する(Z3)。
そして、プレリセット発生から時間T3−1経過後にリセット装置102からリセット信号が発生し(Z4)、ブートストラップ203はソフトウェアの起動・初期値設定処理を行う。
まず、高信頼ソフトウェア2011の起動・初期化を行う(Z5)。
高信頼ソフトウェア2011は起動が完了するとクロック発信装置103を利用してクロックカウントを開始する(Z6)。
具体的には、高信頼ソフトウェア2011はクロック発信装置103から初めてクロックチックを入力するとカウンタにカウント値1を設定し、クロックチックを入力する度に、カウント値をカウントアップする。
そして、ブートストラップ203よりクロックチックカウント値参照命令が高信頼ソフトウェア2011に対して行われたとき(Z7)、高信頼ソフトウェア2011はクロックチックカウントを終了し、クロックチックカウント値をブートストラップ203に返す(Z8)。
この間(時間T3−2)に高信頼ソフトウェア2011がカウントしたクロックチック数をT3−2とする。
また、クロックチック数記憶領域には、時間T3−3の間(RTOS204の状態情報及びタイマチック値の退避から高信頼ソフトウェア2011の起動完了までの時間)にクロック発信装置103から出力されるクロックチック数の値を記憶している。このクロックチック数をT3−3とする。
次に、ブートストラップ203はクロックチック数T3−2とクロックチック数T3−3を加算し、加算値をOSタイマチック値に合算する。
このとき、OSタイマチック値がクロックチックの値を逓倍している場合はその逓倍数をクロックチック数T3−2とクロックチック数T3−3の加算値に乗算した上でタイマ値退避領域1に保存したタイマチック値に加算する(Z9)。
そして、ブートストラップ203は、RTOS204の起動・初期化前にOS状態情報を復元する(Z10)。
ここで、ブートストラップ203は、上記Z9で算出したOSタイマチック情報をOSタイマ1(2041)に復元する(Z11)。
そして、ブートストラップ203は、RTOS204の起動初期化を行い(Z12)、アプリケーション1(2021)を起動する(Z13)。
まず、高信頼ソフトウェア2011の起動・初期化を行う(Z5)。
高信頼ソフトウェア2011は起動が完了するとクロック発信装置103を利用してクロックカウントを開始する(Z6)。
具体的には、高信頼ソフトウェア2011はクロック発信装置103から初めてクロックチックを入力するとカウンタにカウント値1を設定し、クロックチックを入力する度に、カウント値をカウントアップする。
そして、ブートストラップ203よりクロックチックカウント値参照命令が高信頼ソフトウェア2011に対して行われたとき(Z7)、高信頼ソフトウェア2011はクロックチックカウントを終了し、クロックチックカウント値をブートストラップ203に返す(Z8)。
この間(時間T3−2)に高信頼ソフトウェア2011がカウントしたクロックチック数をT3−2とする。
また、クロックチック数記憶領域には、時間T3−3の間(RTOS204の状態情報及びタイマチック値の退避から高信頼ソフトウェア2011の起動完了までの時間)にクロック発信装置103から出力されるクロックチック数の値を記憶している。このクロックチック数をT3−3とする。
次に、ブートストラップ203はクロックチック数T3−2とクロックチック数T3−3を加算し、加算値をOSタイマチック値に合算する。
このとき、OSタイマチック値がクロックチックの値を逓倍している場合はその逓倍数をクロックチック数T3−2とクロックチック数T3−3の加算値に乗算した上でタイマ値退避領域1に保存したタイマチック値に加算する(Z9)。
そして、ブートストラップ203は、RTOS204の起動・初期化前にOS状態情報を復元する(Z10)。
ここで、ブートストラップ203は、上記Z9で算出したOSタイマチック情報をOSタイマ1(2041)に復元する(Z11)。
そして、ブートストラップ203は、RTOS204の起動初期化を行い(Z12)、アプリケーション1(2021)を起動する(Z13)。
本実施の形態により、周期リセットを必要としない機能である、アプリケーション1(2021)の動作をリセット前から継続できるだけでなく、時間的に継続させることが可能である。
以上の実施の形態2では、
(1)プレリセット割込み時に、プロセッサ状態を主記憶の特定領域へ保存し、高信頼ソフトウェアの動作終了後、主記憶から復元する方法において、
(2)時間継続性を確保するため、プレリセット時にOSタイマチック値を退避し、
(3)状態保存後、周期リセットを必要とする機能がクロックチックをカウントし、リセット後、周期リセットを必要とする機能を起動させる際に、その値をブートストラップが(2)で退避したOSタイマチック値に加算し、復元する方法を説明した。
(1)プレリセット割込み時に、プロセッサ状態を主記憶の特定領域へ保存し、高信頼ソフトウェアの動作終了後、主記憶から復元する方法において、
(2)時間継続性を確保するため、プレリセット時にOSタイマチック値を退避し、
(3)状態保存後、周期リセットを必要とする機能がクロックチックをカウントし、リセット後、周期リセットを必要とする機能を起動させる際に、その値をブートストラップが(2)で退避したOSタイマチック値に加算し、復元する方法を説明した。
最後に、実施の形態1〜3に示した計算機装置100のハードウェア構成例の補足説明を行う。
実施の形態1〜3に示す計算機装置100のハードウェア構成例は図1に示した通りである。
なお、図1の構成は、あくまでも計算機装置100のハードウェア構成の一例を示すものであり、計算機装置100のハードウェア構成は図1に記載の構成に限らず、他の構成であってもよい。
実施の形態1〜3に示す計算機装置100のハードウェア構成例は図1に示した通りである。
なお、図1の構成は、あくまでも計算機装置100のハードウェア構成の一例を示すものであり、計算機装置100のハードウェア構成は図1に記載の構成に限らず、他の構成であってもよい。
図1のCPU101は、バスを介して、リセット装置102、クロック発信装置103、RAM104、ROM105の他、通信ボード、表示装置、キーボード、マウス、磁気ディスク装置と接続されていてもよく、これらのハードウェアデバイスを制御する。
更に、CPU101は、FDD(Flexible Disk Drive)、コンパクトディスク装置(CDD)、プリンタ装置、スキャナ装置と接続していてもよい。
また、磁気ディスク装置の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM104は、揮発性メモリの一例である。
ROM105、FDD、CDD、磁気ディスク装置の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード、キーボード、マウス、スキャナ装置、FDDなどは、入力装置の一例である。
また、通信ボード、表示装置、プリンタ装置などは、出力装置の一例である。
更に、CPU101は、FDD(Flexible Disk Drive)、コンパクトディスク装置(CDD)、プリンタ装置、スキャナ装置と接続していてもよい。
また、磁気ディスク装置の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM104は、揮発性メモリの一例である。
ROM105、FDD、CDD、磁気ディスク装置の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード、キーボード、マウス、スキャナ装置、FDDなどは、入力装置の一例である。
また、通信ボード、表示装置、プリンタ装置などは、出力装置の一例である。
通信ボードは、例えば、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
磁気ディスク装置には、オペレーティングシステム(OS)、ウィンドウシステム、アプリケーションプログラム等のプログラム群、ファイル群が記憶されている。
プログラム群のプログラムは、CPU101がオペレーティングシステム、ウィンドウシステムを利用しながら実行する。
プログラム群のプログラムは、CPU101がオペレーティングシステム、ウィンドウシステムを利用しながら実行する。
また、RAM104には、CPU101に実行させるオペレーティングシステムのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM104には、CPU101による処理に必要な各種データが格納される。
また、RAM104には、CPU101による処理に必要な各種データが格納される。
また、ROM105には、BIOS(Basic Input Output System)プログラムが格納され、ROM105又は磁気ディスク装置にはブートストラップが格納されている。
計算機装置100の起動時には、BIOSプログラム及びブートストラップが実行され、BIOSプログラム及びブートストラップによりRTOS等のオペレーティングシステムが起動される。
計算機装置100の起動時には、BIOSプログラム及びブートストラップが実行され、BIOSプログラム及びブートストラップによりRTOS等のオペレーティングシステムが起動される。
実施の形態1〜3の説明において「〜部」として説明している機能はブートストラップや高信頼ソフトェアに含まれ、CPU101により磁気ディスク装置から読み出され実行される。
また、上記のファイル群には、実施の形態1〜3の説明において、「〜の加算」、「〜の合算」、「〜の乗算」、「〜のカウント」、「〜の退避」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU101によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているシーケンス図の矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM104のメモリ、FDDのフレキシブルディスク、CDDのコンパクトディスク、磁気ディスク装置の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バスや信号線やケーブルその他の伝送媒体によりオンライン伝送される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU101によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているシーケンス図の矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM104のメモリ、FDDのフレキシブルディスク、CDDのコンパクトディスク、磁気ディスク装置の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バスや信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1〜3で説明したシーケンス図に示すステップ、手順、処理により、実施の形態1〜3に係る計算機装置を方法として捉える事ができる。
以上、実施の形態1〜3に示す計算機装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
100 計算機装置、101 CPU、102 リセット装置、103 クロック発信装置、104 RAM、105 ROM、203 ブートストラップ、204 RTOS、2011 高信頼ソフトウェア。
Claims (8)
- クロックチックを出力するクロック発信装置と、リセット信号を繰り返し出力するととともにリセット信号の出力前にプレリセット信号を出力するリセット装置と、情報を記憶するメモリ装置とに接続され、
前記リセット装置から前記リセット信号を入力した後に、以前の状態が復元される状態復元プログラムを起動するプロセッサ装置であって、
前記プレリセット信号が入力された際に、前記プレリセット信号の入力時点の前記状態復元プログラムの状態を示す状態情報と前記状態復元プログラムが使用しているタイマのタイマチック値を前記メモリ装置に退避させ、前記状態復元プログラムの起動の際に、前記メモリ装置の前記状態情報を用いて前記プレリセット信号の入力時点の前記状態復元プログラムの状態を復元する状態退避復元部と、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態復元プログラムの状態の復元までの時間に前記クロック発信装置から出力されるクロックチック数と、前記メモリ装置の前記タイマチック値とを用いて、前記タイマのタイマチック値の更新値を導出する更新値導出部とを有し、
前記状態復元プログラムの起動の際に、前記タイマのタイマチック値を前記更新値導出部により導出された前記更新値に更新するタイマ更新部とを有することを特徴とするプロセッサ装置。 - 前記プロセッサ装置において、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態復元プログラムの状態の復元までの時間は一定であり、
前記プロセッサ装置は、更に、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態復元プログラムの状態の復元までの時間に前記クロック発信装置から出力されるクロックチック数を記憶しているクロックチック数記憶部を有し、
前記更新値導出部は、
前記クロックチック数記憶部に記憶されているクロックチック数と、前記メモリ装置の前記タイマチック値とを用いて、前記タイマのタイマチック値の更新値を導出することを特徴とする請求項1に記載のプロセッサ装置。 - 前記プロセッサ装置は、更に、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態復元プログラムの状態の復元までの時間に前記クロック発信装置から出力されるクロックチック数をカウントするクロックチック数カウント部を有し、
前記更新値導出部は、
前記クロックチック数カウント部によりカウントされたクロックチック数と、前記メモリ装置の前記タイマチック値とを用いて、前記タイマのタイマチック値の更新値を導出することを特徴とする請求項1又は2に記載のプロセッサ装置。 - 前記プロセッサ装置は、
ブートストラップにより前記状態復元プログラムを起動し、
前記クロックチック数カウント部が前記ブートストラップであることを特徴とする請求項3に記載のプロセッサ装置。 - 前記プロセッサ装置は、
前記リセット装置から前記リセット信号を入力すると、所定の状態非復元プログラムを以前の状態を復元せずに起動し、前記状態非復元プログラムの起動完了後に前記状態復元プログラムを起動し、
前記プロセッサ装置において、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態非復元プログラムの起動完了までの時間は一定であり、
前記プロセッサ装置は、更に、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態非復元プログラムの起動完了までの時間に前記クロック発信装置から出力されるクロックチック数を記憶しているクロックチック数記憶部と、
前記状態非復元プログラムの起動完了から前記状態退避復元部による前記状態復元プログラムの状態の復元までの時間に前記クロック発信装置から出力されるクロックチック数をカウントするクロックチック数カウント部を有し、
前記更新値導出部は、
前記クロックチック数記憶部に記憶されているクロックチック数と、前記クロックチック数カウント部によりカウントされたクロックチック数と、前記メモリ装置の前記タイマチック値とを用いて、前記タイマのタイマチック値の更新値を導出することを特徴とする請求項1〜4のいずれかに記載のプロセッサ装置。 - 前記プロセッサ装置は、
前記クロックチック数カウント部が前記状態非復元プログラムであることを特徴とする請求項5に記載のプロセッサ装置。 - 前記更新値導出部は、
前記状態退避復元部による前記状態情報及び前記タイマチック値の退避から前記状態復元プログラムの状態の復元までの時間に前記クロック発信装置から出力されるクロックチック数を逓倍し、逓倍したクロックチック数を前記メモリ装置の前記タイマチック値に加算して、前記タイマのタイマチック値の更新値を導出することを特徴とする請求項1〜6のいずれかに記載のプロセッサ装置。 - 請求項1〜7のいずれかに記載のプロセッサ装置を備えることを特徴とする計算機装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010110841A JP2011238152A (ja) | 2010-05-13 | 2010-05-13 | プロセッサ装置及び計算機装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010110841A JP2011238152A (ja) | 2010-05-13 | 2010-05-13 | プロセッサ装置及び計算機装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011238152A true JP2011238152A (ja) | 2011-11-24 |
Family
ID=45326039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010110841A Pending JP2011238152A (ja) | 2010-05-13 | 2010-05-13 | プロセッサ装置及び計算機装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011238152A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10049060B2 (en) | 2016-03-11 | 2018-08-14 | Kabushiki Kaisha Toshiba | Semiconductor device and control method of the same |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55115120A (en) * | 1979-02-26 | 1980-09-04 | Hitachi Denshi Ltd | Time control system in data processing system |
JPH06230988A (ja) * | 1993-02-04 | 1994-08-19 | Mitsubishi Electric Corp | 計算機 |
-
2010
- 2010-05-13 JP JP2010110841A patent/JP2011238152A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55115120A (en) * | 1979-02-26 | 1980-09-04 | Hitachi Denshi Ltd | Time control system in data processing system |
JPH06230988A (ja) * | 1993-02-04 | 1994-08-19 | Mitsubishi Electric Corp | 計算機 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10049060B2 (en) | 2016-03-11 | 2018-08-14 | Kabushiki Kaisha Toshiba | Semiconductor device and control method of the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579485B2 (en) | Virtual machine fault tolerance | |
KR100733943B1 (ko) | 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로 | |
US9329958B2 (en) | Efficient incremental checkpointing of virtual devices | |
US20070038891A1 (en) | Hardware checkpointing system | |
US20080126650A1 (en) | Methods and apparatus for parallel processing in system management mode | |
WO2012143844A1 (en) | Virtual machine high availability | |
US10402264B2 (en) | Packet-aware fault-tolerance method and system of virtual machines applied to cloud service, computer readable record medium and computer program product | |
US10379931B2 (en) | Computer system | |
US7853826B2 (en) | Operating system transfer and launch without performing post | |
Gao et al. | An energy-aware fault tolerant scheduling framework for soft error resilient cloud computing systems | |
US10387257B1 (en) | Systems and methods for reliable redundant management controller firmware update | |
JP2009151502A (ja) | ルートファイルシステムを管理するシステム及び方法 | |
JP4837247B2 (ja) | プロセッサ | |
CN108196934B (zh) | 一种定时器的定时设置方法、装置和虚拟化设备 | |
JP2011238152A (ja) | プロセッサ装置及び計算機装置 | |
CN116627702A (zh) | 虚拟机的宕机重启方法及装置 | |
JP6316522B1 (ja) | 計算機装置、タスク起動方法およびタスク起動プログラム | |
US20160246740A1 (en) | Processor system having nested vectored interrupt controller | |
KR20000068286A (ko) | 정보 처리 시스템 | |
JP5579257B2 (ja) | 主記憶装置における情報を復元するための装置及び方法 | |
CN112805978B (zh) | 针对事件流处理的增强型锚协议 | |
US20020147944A1 (en) | Apparatus and method for adaptive address-based historical utilization recording | |
TWI461905B (zh) | 可遠端當機復原的運算裝置、用於運算裝置之遠端當機復原之方法及電腦可讀取媒體 | |
US10592329B2 (en) | Method and electronic device for continuing executing procedure being aborted from physical address where error occurs | |
US20230325227A1 (en) | Reliable one-click cluster shutdown |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121119 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131003 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140311 |