(57)【要約】【課題】ミスアライメントが発生した際に、必ずしも全ての場合において、ミスアライメント復帰処理を行う必要はなく、ミスアライメント復帰処理を行う場合とシステム再起動などのそれ以外の処理を行う場合で処理を切り替える必要がある。【解決手段】ミスアライメントが発生した際に、アライメントを考慮していない、アライメント復帰処理が必要なプログラムＳ３０８と、アライメントを考慮した、システム再起動が必要なプログラムＳ３１０のどちらが実行されているかを示すモード変数Ｓ３０６を用いて、ミスアライメント発生時の処理を切り換えて、システム再起動Ｓ３０５またはミスアライメント復帰処理Ｓ２０３を実行する。【選択図】  図１
2005234752.tif 000002
【特許請求の範囲】
【請求項１】
割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、モード変数の第１の設定に応じて、ミスアライメント処理を行う第１のステップと、前記モード変数の第２の設定に応じて、システム再起動を行う第２のステップとを含むミスアライメント処理方法。
【請求項２】
第１のステップと第２のステップは、モード変数の設定に応じて、二者択一的に実行される請求項１記載のミスアライメント処理方法。
【請求項３】
モード変数は、メインプログラムにおいて、アライメントを考慮していないプログラムを実行する前に第１の設定に設定され、アライメントが考慮されているプログラムを実行する前に第２の設定に設定される請求項１または請求項２記載のミスアライメント処理方法。
【請求項４】
割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、ミスアライメント発生頻度を測定する第１のステップと、前記ミスアライメント発生頻度が所定の基準値よりも低い場合にミスアライメント処理を行う第２のステップと、前記ミスアライメント発生頻度が所定の基準値よりも高い場合にシステム再起動を行う第３のステップとを含むミスアライメント処理方法。
【請求項５】
第２のステップと第３のステップは、第１のステップの測定結果に応じて、二者択一的に実行される請求項４記載のミスアライメント処理方法。
【請求項６】
割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、ネットワークの切断処理を行う第１のステップと、ミスアライメント処理を行う第２のステップとを含むミスアライメント処理方法。
【請求項７】
割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、モード変数の第１の設定に応じて、ミスアライメント処理を行う第１のステップと、前記モード変数の第２の設定に応じて、ネットワークの切断を行う第２のステップとを含むミスアライメント処理方法。
【請求項８】
第１のステップと第２のステップは、モード変数の設定に応じて、二者択一的に実行される請求項７記載のミスアライメント処理方法。
【請求項９】
モード変数は、メインプログラムにおいて、ネットワーク関連のプログラムを実行する前に第２の設定に設定され、ネットワーク関連のプログラムを実行が終了した後に第１の設定に設定される請求項７記載のミスアライメント処理方法。
【請求項１０】
ミスアライメントにより発生する割り込みハンドラにおけるミスアライメント処理方法であって、前記ミスアライメントの発生時点でのプログラムポインタの値に応じて実行する内容を切り替えることを特徴とするミスアライメント処理方法。
【請求項１１】
割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、ミスアライメントの発生時点でのプログラムポインタの値がアライメントを意識していないプログラムが格納されているメモリ領域の範囲内であればミスアライメント処理を行う第１のステップと、前記ミスアライメントの発生時点での前記プログラムポインタの値がアライメントを意識したプログラムが格納されているメモリ領域の範囲内であればシステム再起動を行う第２のステップとを含むミスアライメント処理方法。
【請求項１２】
アライメントを意識したプログラムとアライメントを意識していないプログラムを異なる領域に格納する請求項１１記載のミスアライメント処理方法。
【請求項１３】
割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、ミスアライメントの発生時点でのプログラムポインタの値がネットワーク処理プログラムが格納されているメモリ領域の範囲内であればネットワーク切断処理を行う第１のステップと、ネットワーク処理プログラムが格納されているメモリ領域の範囲外であればミスアライメント処理を行う第２のステップとを含むミスアライメント処理方法。
【請求項１４】
ネットワーク処理を行うプログラムと前記ネットワーク処理を行わないプログラムを異なる領域に格納する請求項１３記載のミスアライメント処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ミスアライメントをソフトウェアで処理するミスアライメント処理方法に関するものである。
【背景技術】
【０００２】
従来のミスアライメント処理は、ハードウェアを用いてミスアライメント処理の復帰をしている（例えば、特許文献１参照）。
【０００３】
図７は、ミスアライメントを検出する従来の計算機１０２の概略構成図である。図７における計算機１０２は、ミスアライメントの発生を検出するミスアライメント検出器１００と、ミスアライメント検出器１００の検出結果により割り込みを発生する割り込みコントローラ１０１を有している。ハードウェアを用いてミスアライメント処理の復帰を行う場合は、割り込みコントローラ１０１による割り込み検知に従って、ミスアライメント処理をハードウェアで行う。
【０００４】
一方、ソフトウェアを用いてミスアライメント処理の復帰を行うシステムも提案されている。図８は、ソフトウェアを用いてミスアライメント処理の復帰を行う場合の従来例の割り込みハンドラのフローチャートである。この場合、割り込みコントローラ１０１により実行される割り込みハンドラ内で、割り込み発生の原因となったミスアライメント復帰処理２０３をプログラムで実行する。
【特許文献１】特開平２−２３４２２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ミスアライメントが発生した際に、必ずしも全ての場合において、ミスアライメント復帰処理を行う必要はない。例えば、ノイズによるプログラムの暴走などが発生している場合には、ミスアライメント復帰処理よりもシステム再起動を行いたい場合がある。従って、ミスアライメント復帰処理を行う場合とシステム再起動などのそれ以外の場合で処理を切り替える必要がある。
【０００６】
また、ネットワークに接続された機器におけるミスアライメントの場合は、ネットワークに接続された他の機器からの不正なアクセスの可能性があり、ネットワークの切断を行う必要がある。
【０００７】
したがって、この発明の目的は、ミスアライメント復帰処理を行う場合とそれ以外の場合で処理を切り替えることができ、またネットワークに接続された機器におけるミスアライメントの場合は、ネットワークの切断を行うことができるミスアライメント処理方法を提供することである。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明のミスアライメント処理方法は、割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、モード変数の第１の設定に応じて、ミスアライメント処理を行う第１のステップと、モード変数の第２の設定に応じて、システム再起動を行う第２のステップとを含むものである。
【０００９】
上記構成において、第１のステップと第２のステップは、モード変数の設定に応じて、二者択一的に実行される。
【００１０】
上記構成において、モード変数は、メインプログラムにおいて、アライメントを考慮していないプログラムを実行する前に第１の設定に設定され、アライメントが考慮されているプログラムを実行する前に第２の設定に設定される。
【００１１】
この発明の別のミスアライメント処理方法は、割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、ミスアライメント発生頻度を測定する第１のステップと、ミスアライメント発生頻度が所定の基準値よりも低い場合にミスアライメント処理を行う第２のステップと、ミスアライメント発生頻度が所定の基準値よりも高い場合にシステム再起動を行う第３のステップとを含む。
【００１２】
上記構成において、第２のステップと第３のステップは、第１のステップの測定結果に応じて、二者択一的に実行される。
【００１３】
この発明の別のミスアライメント処理方法は、割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、ネットワークの切断処理を行う第１のステップと、ミスアライメント処理を行う第２のステップとを含む。
【００１４】
この発明の別のミスアライメント処理方法は、割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、モード変数の第１の設定に応じて、ミスアライメント処理を行う第１のステップと、モード変数の第２の設定に応じて、ネットワークの切断を行う第２のステップとを含む。
【００１５】
上記構成において、第１のステップと第２のステップは、モード変数の設定に応じて、二者択一的に実行される。
【００１６】
上記構成において、モード変数は、メインプログラムにおいて、ネットワーク関連のプログラムを実行する前に第２の設定に設定され、ネットワーク関連のプログラムを実行が終了した後に第１の設定に設定される。
【００１７】
この発明の別のミスアライメント処理方法は、ミスアライメントにより発生する割り込みハンドラにおけるミスアライメント処理方法であって、ミスアライメントの発生時点でのプログラムポインタの値に応じて実行する内容を切り替えることを特徴とするものである。
【００１８】
この発明の別のミスアライメント処理方法は、割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、ミスアライメントの発生時点でのプログラムポインタの値がアライメントを意識していないプログラムが格納されているメモリ領域の範囲内であればミスアライメント処理を行う第１のステップと、ミスアライメントの発生時点でのプログラムポインタの値がアライメントを意識したプログラムが格納されているメモリ領域の範囲内であればシステム再起動を行う第２のステップとを含む。
【００１９】
上記構成において、アライメントを意識したプログラムとアライメントを意識していないプログラムを異なる領域に格納する。
【００２０】
この発明のミスアライメント処理方法は、割り込みハンドラにおいてソフトウェア的に処理を行うミスアライメント処理方法であって、ミスアライメントの発生時点でのプログラムポインタの値がネットワーク処理プログラムが格納されているメモリ領域の範囲内であればネットワーク切断処理を行う第１のステップと、ネットワーク処理プログラムが格納されているメモリ領域の範囲外であればミスアライメント処理を行う第２のステップとを含む。
【００２１】
上記構成において、ネットワーク処理を行うプログラムとネットワーク処理を行わないプログラムを異なる領域に格納する。
【発明の効果】
【００２２】
この発明のミスアライメント処理方法によれば、モード変数等に応じ、ミスアライメント復帰処理を行う場合とそれ以外の場合で処理を切り替えることができる。したがって、ミスアライメントが発生した際に、再起動が必要なソフトウェアブロックと、ミスアライメントが発生した際に、アライメント復帰処理が必要なソフトウェアブロックが混在したとしても、モード変数で処理を切り換えて実行することで、同一のシステム上で複数のプログラムを動作させることができる。
【００２３】
また、ネットワークに接続された機器におけるミスアライメントでは、ネットワークの切断を行うことができる。これにより、ネットワークを用いた外部からのハッキングなどでシステムの暴走を防ぐことができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態について図面を参照しながら説明する。
（実施の形態１）
図１（ａ）は、本発明の第１の実施の形態における割り込みハンドラのフローチャートである。また、図１（ｂ）は、ソフトウェアを用いてアライメント処理を行おうとするメインプログラムのフローチャートである。図１（ｂ）において、アライメントを考慮していないプログラムＳ３０８とアライメントが考慮されているプログラムＳ３１０が時分割で動作しており、プログラムＳ３１０が動作中かプログラムＳ３０８が動作中かを示すモード変数（ｍｏｄｅ）Ｓ３０６の設定を行うステップＳ３０７およびＳ３０９を有している。ここで、モード変数Ｓ３０６は、プログラムＳ３０８が実行される前のステップＳ３０７にて、１にセットされ、プログラムＳ３１０が実行される前のステップＳ３０９において０にリセットされる。
【００２５】
この場合、図１（ａ）において、計算機１０２で発生されるミスアライメントの割り込みハンドラにおいて、モード変数Ｓ３０６が０か１かを判定するモード判定処理Ｓ３０４を実行し、モード変数Ｓ３０６が０の場合にはシステムの再起動Ｓ３０５を行うステップを実行し、モード変数Ｓ３０６が１の場合にはミスアライメントの復帰処理Ｓ２０３を実行するように構成する。したがって、ミスアライメントが発生した際に、アライメントを考慮した、システム再起動が必要なプログラムＳ３１０と、アライメントを考慮していない、ミスアライメント復帰処理が必要なプログラムＳ３０８のどちらが実行されているかを示すモード変数Ｓ３０６を用いて、ミスアライメント発生時の処理を切り換えて実行することとなる。
【００２６】
（実施の形態２）
図２は、本発明の第２の実施の形態における割り込みハンドラのフローチャートである。ミスアライメント発生頻度を測定するステップＳ４１０において、発生頻度が高い場合はシステムの再起動Ｓ３０５を行い、発生頻度が低い場合はミスアライメントの復帰処理Ｓ２０３を実行するように構成する。
【００２７】
ミスアライメント発生頻度を測定するステップＳ４１０では、フリーランカウンタ（ＦＲＣ）Ｓ４１６の値と、前回の割り込み発生時のフリーランカウンタ（ＰＲＥＶ−ＦＲＣ）を保持する変数Ｓ４１７を用いてミスアライメント割り込みの間隔を測定している。Ｓ４１１で測定された間隔がある特定の時間、たとえば1msecよりも長い場合は割り込み回数を示すカウンタ（ｃｎｔ）Ｓ４１８に０を代入する（Ｓ４１２）。ステップＳ４１１で測定された間隔がある特定の時間、たとえば1msecよりも短い場合はカウンタＳ４１８をカウントアップＳ４１３する。ステップＳ４１２もしくはステップＳ４１３の処理が終わった後に、フリーランカウンタ（ＦＲＣ）Ｓ４１６の値を、変数Ｓ４１７に格納する（Ｓ４１４）。Ｓ４１５ではカウンタＳ４１８がある特定の値、たとえば１０より大きい場合はシステムの再起動Ｓ３０５を行い、カウンタＳ４１８がある特定の値、たとえば１０より小さい場合は、ミスアライメントの復帰処理Ｓ２０３を実行するように構成する。
【００２８】
（実施の形態３）
図３は、本発明の第３の実施の形態における割り込みハンドラのフローチャートである。ネットワーク切断処理Ｓ５１９を実行した後にミスアライメントの復帰処理Ｓ２０３を実行するように構成する。ネットワーク切断処理Ｓ５１９としてはネットワーク関連ハードウェアの電源遮断や、ネットワークソフトウェアのプロセスやタスクの強制終了などを行う。
【００２９】
（実施の形態４）
図４（ａ）は、本発明の第４の実施の形態における割り込みハンドラのフローチャートである。また、図４（ｂ）は、ソフトウェアを用いてアライメント処理を行おうとするメインプログラムのフローチャートである。図４（ｂ）において、ネットワークの処理を行うプログラムＳ６２３とネットワーク以外の処理を行うプログラムＳ６２５が時分割で動作しており、プログラムＳ６２３が動作中かプログラムＳ６２５が動作中かを示すモード変数Ｓ６２１の設定を行うステップＳ６２２およびＳ６２４を有している。ここで、モード変数Ｓ６２１は、プログラムＳ６２３が実行される前のステップＳ６２２にて、１にセットされ、プログラムＳ６２５が実行される前のステップＳ６２４において０にリセットされる。この場合、図４（ａ）において、計算機１０２で発生されるミスアライメントの割り込みハンドラで、モード変数Ｓ６２１が０の場合にはネットワーク切断Ｓ５１９とミスアライメントの復帰Ｓ２０３を実行し、モード変数Ｓ６２１が１の場合にはミスアライメントの復帰処理Ｓ２０３を実行するように構成する。
【００３０】
（実施の形態５）
本発明の第５の実施の形態は、割り込みハンドラにおいて、ミスアライメントの発生時点でのプログラムポインタの値に応じて実行する内容を切り替える。すなわち、プログラムポインタの値がアライメントを考慮していないプログラムが格納されているメモリ領域の範囲内であればミスアライメント処理を行い、上記メモリ領域の範囲外であればシステム再起動を行う。
【００３１】
図５（ａ）は、本発明の第５の実施の形態における割り込みハンドラのフローチャートである。また、図５（ｂ）は、プログラムが格納されているメモリのメモリマップ（Ｓ７２７）である。図５（ｂ）において、アライメントを考慮していないプログラムＳ７２８は１箇所もしくは複数箇所のメモリ領域に割り当てられている。
【００３２】
図５（ａ）において、計算機１０２で発生されるミスアライメントの割り込みハンドラで、ミスアライメントが発生した際のプログラムカウンタがアライメントを考慮していないプログラムＳ７２８の格納領域で発生したかを判断Ｓ７２６する。この判断結果が真の場合にはミスアライメント復帰処理Ｓ２０３を実行し、判断結果が偽の場合にはシステム再起動Ｓ３０５を実行するように構成する。
【００３３】
（実施の形態６）
本発明の第６の実施の形態のミスアライメント処理方法は、ミスアライメントの発生時点でのプログラムポインタの値がネットワーク処理プログラムが格納されているメモリ領域の範囲内であればネットワーク切断処理を行い、ネットワーク処理プログラムが格納されているメモリ領域の範囲外であればミスアライメント処理を行う。
【００３４】
図６（ａ）は、本発明の第６の実施の形態における割り込みハンドラのフローチャート（Ｓ３８０）である。また、図６（ｂ）は、プログラムが格納されているメモリのメモリマップである。図６（ｂ）において、ネットワークの処理を行うプログラムＳ８３１は１箇所もしくは複数箇所の連続メモリ領域に割り当てられている。この場合、図６（ａ）において、計算機１０２で発生されるミスアライメントの割り込みハンドラで、ミスアライメントが発生した際のプログラムカウンタがネットワークの処理を行うプログラムＳ８３１の格納領域で発生したかを判断Ｓ８２９を行う。この判断結果が真の場合にはネットワーク切断Ｓ５１９とミスアライメントの復帰処理Ｓ２０３を実行し、判断結果が偽の場合にはミスアライメントの復帰処理Ｓ２０３を実行するように構成する。
【産業上の利用可能性】
【００３５】
この発明にかかるミスアライメント処理方法は、ミスアライメント復帰処理を行う場合とそれ以外の場合で処理を切り替えることができ、ネットワークに接続された機器におけるミスアライメントの場合は、ネットワークの切断を行うことができる等の効果を有し、ミスアライメント処理方法等として有用である。
【図面の簡単な説明】
【００３６】
【図１】（ａ）は本発明の第１の実施の形態における割り込みハンドラのフローチャート、（ｂ）はソフトウェアを用いてアライメント処理を行おうとするメインプログラムのフローチャートである。
【図２】第２の実施の形態の割り込みハンドラのフローチャートである。
【図３】第３の実施の形態の割り込みハンドラのフローチャートである。
【図４】（ａ）は第４の実施の形態の割り込みハンドラのフローチャート、（ｂ）はメインプログラムのフローチャートである。
【図５】（ａ）は第５の実施の形態の割り込みハンドラのフローチャート、（ｂ）はメモリマップである。
【図６】（ａ）は第６の実施の形態の割り込みハンドラのフローチャート、（ｂ）はメモリマップである。
【図７】ミスアライメント割り込みを発生する従来の計算機の概略構成図である。
【図８】従来の割り込みハンドラのフローチャートである。
【符号の説明】
【００３７】
１００  ミスアライメント検出器
１０１  割り込みコントローラ
１０２  計算機
Ｓ２０３  ミスアライメント復帰処理
Ｓ３０４  モード判定処理
Ｓ３０５  システム再起動処理
Ｓ３０６  モード変数
Ｓ３０８  アライメントを考慮していないプログラム
Ｓ３１０  アライメントを考慮したプログラム
Ｓ３０８  アライメントを考慮していないプログラム
Ｓ３１０  ミスアライメントを考慮したプログラム
Ｓ４１０  ミスアライメント発生頻度測定ステップ
Ｓ４１６  フリーランニングカウンタ
Ｓ５１９  ネットワーク切断処理
Ｓ７２７  メモリマップ
Ｓ８３０  メモリマップ
【図１】
2005234752.tif 000003
【図２】
2005234752.tif 000004
【図３】
2005234752.tif 000005
【図４】
2005234752.tif 000006
【図５】
2005234752.tif 000007
【図６】
2005234752.tif 000008
【図７】
2005234752.tif 000009
【図８】
2005234752.tif 000010