(57)【要約】【課題】  ファームウェアの不具合の判明した装置に対し運用を停止することなく必要最小限のファームウェア入れ替えが行えることを可能とする。【解決手段】  ＯＰ１とＯＰ２の比較が比較器４で行われ、一致していることから信号ａ＝１となる。ＪＰ５２に設定されたデータと、比較データ６１にセットされたデータとが一致すると、条件比較回路７において比較結果を信号ｂ＝１として送出する。信号ａ＝信号ｂ＝１のためＡＮＤ回路８からは信号８２＝１、信号８１＝０を送出する。ＣＳアドレス９は無効となりバッファアドレス１０が有効となる。逐次加算器１２で生成された次ＦＷ取り出しアドレスがセットされていく。予備バッファ１０からは対応するＦＷが逐次取りだされ、セレクタ１５に送出され、先の信号８２により予備バッファ側のＦＷを送り出すことになり、結果予備バッファ内のＦＷが実行されていくこととなる。【選択図】      図１
2006268522.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアを格納するコントロールストレイジと、特定のソフトウェア命令を処理するファームウェアを格納する予備バッファと、ソフトウェア命令がハードウェアによる適合条件と一致した場合、このソフトウェア命令の処理を前記予備バッファ内のファームウェアを使用し処理を行う手段とを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に、ファームウェアのデバッグを容易にする情報処理装置に関する。
【背景技術】
【０００２】
ファームウェア（以降、ＦＷと記す）による問題が発生した場合、採取したデータからある特定の動作や命令に着目して検証を行って不具合を特定するケースが多い。このような場合、ハードウェア（ＨＷ）に特定条件を設定しておき、この条件が満たされたときにプロセッサを停止等させ、内部データを参照することでデバッグ評価（診断、バグ取り）を行ってきた。
【０００３】
代表的な例は特許文献１に示すように、特定命令の実行が行われる場合にその信号を生成し、トラップ番地へとばし所望とするデバッグを行っていた。この手法によると、あらかじめＨＷ側に準備している機能に限界があり、特定命令のみでのトラップ信号しか生成できず、また、その機能の有効無効のコントロールも柔軟に行えないことから多用なデバッグ評価を行うことができなかった。また特許文献１では、特定トラップ番地へとばすことしかできず、トラップ後の処理方法も一律的にならざるを得ず、デバッグ評価時の複雑な条件設定、およびトラップ処理時の柔軟な処理に対応することが困難であるという問題があった。
【０００４】
これに類似し、特許文献２に見られるように後からＳＷ命令（ソフトウェア命令）の追加を行う場合、デコード回路内に一部マスクデータをセットし、特定番地に飛ばし、追加されたＳＷ命令の機能を実現する手段はあったが、これらは一意的な機能であり、本発明のように評価の効率化における動的な入れ替え方式とは、その目的及び構成も異なる。本発明によると、先に述べた従来の手法おける課題を克服し、動的かつ柔軟な条件設定、および柔軟なトラップ後の処理の提供が可能となる。
【０００５】
【特許文献１】特開昭６２−０１７８３９号公報
【特許文献２】特開平０４−３７３０２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来、ＦＷによる問題が発生した場合、採取したデータからある特定の動作や命令に着目して検証を行って不具合を特定するケースが多い。
【０００７】
このような場合、ＨＷに特定条件を設定しておき、この条件が満たされたときにプロセッサを停止等させ、内部データを参照することでデバッグ評価を行ってきた。この手法によると停止させうる条件をＨＷ側に作り込んでおく必要があることから自ずと制約が発生し、
また、停止のさせ方も一律的になることから、デバッグ評価時の複雑な条件設定が困難であるという問題があった。
【０００８】
また、このＨＷのデバッグ機能による評価が困難な場合、ＦＷ側に特定の条件およびその停止のさせ方等を盛り込んだ、デバッグ専用のＦＷモデルを作成し、このＦＷを適用し実行することでデバッグ評価を行ってきたが、この場合それら停止条件が問題特定時以外に働かないようにするさらなる条件追加などを考慮したうえでＦＷモデルを作成するなど手間が必要になることと、この条件の盛り込みによりＦＷ動作のタイミングが変わってしまいデバッグ評価をより困難にしてしまう問題もあった。
【０００９】
また、このようなＦＷはこの評価時のみに適用されることになり、評価中さらに条件の微修正、追加を行う場合は、再度ＦＷモデルの作り直しと適用のし直しが必要となり評価効率が悪いという問題があった。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、ファームウェアを格納するコントロールストレイジと、特定のソフトウェア命令を処理するファームウェアを格納する予備バッファと、ソフトウェア命令がハードウェアによる適合条件と一致した場合、このソフトウェア命令の処理を前記予備バッファ内のファームウェアを使用し処理を行う手段とを有する。
【発明の効果】
【００１１】
第１の効果は、デバッグ効率の向上である。
【００１２】
１つ目の理由は、デバッグしたい状態の検出をＨＷによっておこなうことと、デバッグ対象とするＳＷ命令以外はそのままの状態で使用可能とすることで、デバッグしたい実行環境、実行タイミングでデバッグ評価が行え、デバッグ評価環境故に調査が難航することを回避することができるからである。
【００１３】
２つ目の理由は、ＨＷによるデバッグ条件のみならず、評価用ＦＷ自身でも各種条件の設定が盛り込めるため、柔軟な評価が実現でき、評価効率に寄与するからである。
【００１４】
３つ目の理由は、評価用に修正した専用ＦＷモデルを用意することなく、必要箇所のみ修正した部分的ＦＷを用意するだけでデバッグ評価を行えるため、評価準備が省力化できるからである。
【００１５】
４つ目は、デバッグ機能を有効にする手段を稼働状態のままでも可能としたため、システムの再起動等を省けることと、デバッグ機能の有効無効、デバッグＦＷの変更の操作を人手で希望のまま行えるからである。
【００１６】
第２の効果は、実運用中のシステムを止めることなく、よりリスクの少ないＦＷ改修の適用を行えることである。
【００１７】
その理由は、稼働中に特定ＳＷ命令のＦＷを入れ替えることができることで、運用の停止を省き、また、これまで安定して稼働してきた他のＳＷ命令にＦＷはそのまま使用することでリスクの少ないＦＷ改修が実現できるからである。
【発明を実施するための最良の形態】
【００１８】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１９】
次に、本発明の実施例の構成について図面を参照して詳細に説明する。
【００２０】
図１に示す構成に基づいて、本発明の第１の実施例を説明する。
【００２１】
ＯＰ１は現在実行中のＳＷ命令（ソフトウェア命令）のＯＰコード（Ｏｐｅｒａｔｉｏｎコード）が格納される。ＯＰ１のデータはデコーダ３においてデコードされ、ＣＳ１３内のどの番地からＦＷを取り出して実行するかを判断する。
【００２２】
この番地アドレスがＣＳアドレス９に設定される。ＣＳアドレス９はＣＳ１３に送出され該当番地のＦＷ（ファームウェア）が取り出されセレクタ１５に送出される。このＦＷが実行されることによりＯＰ１に格納されたＳＷ命令が実行される事になる。加算器１１はＣＳ内の次に取り出すべきアドレス加算を行う。ＦＷの各コマンドが固定長であれば固定値の加算を行い次の取り出しアドレスとしてＣＳアドレス９に設定され、逐次ＦＷが取り出されて処理されることになる。
【００２３】
一方、ＯＰ２は外部から動的に設定可能なレジスタである。このデータは比較器４に送られ、ＯＰ１の値と比較される。一致した場合、信号ａ＝１としてＡＮＤ回路８に送出される。ＩＣ５１は実行中のＳＷ命令にたいするＩＣが格納されるレジスタであり、ＪＰ５２は実行中のＳＷ命令が割り当てられているＪＯＢ番号、ＰＲＯＣＥＳＳ番号格納されているレジスタであり、モード５３は現在の動作モード（例えばバーチャルモードによる仮想マシンとしての動作か、など）が格納されるレジスタである。
【００２４】
比較データ５６は外部から設定可能なレジスタであり、比較対照となるレジスタの指定（ＩＣ５１やＪＰ５２など）と比較対照データが格納されるレジスタである。条件比較回路７は比較データ５６に設定された比較対照となるレジスタにおけるデータと比較データ５６内に設定された比較データが同一かを判断。一致している場合、信号ｂ＝１としてＡＮＤ回路８に送出される。
【００２５】
なお、強制フラグ６２は条件比較器７において無条件に信号ｂ＝１を送出するフラグである。ＡＮＤ回路８は信号ａと信号ｂのＡＮＤをとり、その正値を信号８２としてバッファアドレス１０およびセレクタ１５に送出する。またその反転値を信号８１としてＣＳアドレス９に送出する。信号１、信号２はＣＳアドレス９、バッファアドレス１０においてストローブ信号として使用される。
【００２６】
これによりどちらか一方が有効となり機能する。バッファアドレス１０は予備バッファ１４内のアクセスアドレスを格納している。予備バッファ１４は外部から設定可能なバッファであり、特定のＳＷ命令を処理するＦＷが格納される。加算機１２は予備バッファ１４内の次に取り出すべきアドレス加算を行い、その値がバッファアドレス１０に設定される。
【００２７】
セレクタ１５はＣＳ１３および予備バッファ１４からの出力を受け信号８２によりいずれを送出するか選択する。ＳＶＰ１６はＳｅｒｖｉｃｅ  Ｐｒｏｃｅｓｓｏｒと呼ばれる装置であり、Ｏｐｅｒａｔｏｒからの操作により装置内部へのデータ設定や、障害発生時のエラーログ採取が可能であるとともに、ＯＰ２、比較データ６１、強制フラグ６２、予備バッファ１４へのデータ設定を行うことができる。
【００２８】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
【００２９】
次に、上記構成に基づいた動作の説明を行う。
【００３０】
まず、装置の起動に合わせてＣＳ１３には通常用意されているＦＷがローディングされる。
【００３１】
ＳＷ命令開始に合わせて、実行するＳＷ命令内のＯＰコードがＯＰ１にセットされる。またこのときに、ＩＣ５１、ＪＰ５２、モード５３などもその命令の実行環境にあわせてセットされる。ＯＰ１にセットされたＯＰコードは、デコーダ３においてデコードされ該当するＦＷの取り出しアドレスをＣＳアドレス９にセットする。このアドレスに従いＣＳ１３から該当するＦＷが取り出される。先のＣＳアドレス９は加算器１１において次アクセスアドレスを生成しＣＳアドレス９にセットする。
【００３２】
このアドレスで次のＦＷがＣＳ１３から取り出される。この動作を繰り返すことにより、ＯＰ１にセットされたＳＷ命令を実行するためのＦＷが逐次送出、実行され、結果ＳＷ命令の処理が完結する。ＳＷ命令が完了すると次のＳＷ命令が動き出し、上述同様の処理が行われていく。これによりＳＷ命令が次々に実行され所望のプログラムが処理されることになる。
【００３３】
今、ＦＷのデバッグ評価として特定のＪＰ下で特定のＳＷ命令が実行された場合のみ、そのＳＷ命令のＦＷを評価用のＦＷに差し替えて評価を行うこととする。この評価用のＦＷには、その評価目的に合わせて様々な仕掛けしても良い。例えば、特定のレジスタの値が”０”であるならば処理を強制停止させてもいいし、そのような条件を付けずに実行された段階で処理を停止させても良い。
【００３４】
また、ＦＷで制御可能データ格納域に実行回数を記録しておき、特定回数時に処理を停止させる等も考えられる。このような評価用のＦＷを特定のＳＷ命令部分のみ用意する。このとき他のＳＷ命令分のＦＷと合わせて、ＣＳ１３にロードするような専用ＦＷモデルを準備する必要はない。
【００３５】
評価に必要な条件や、ＦＷが準備できたらＳＶＰ１６よりこれらの情報をプロセッサ内部に設定する。今回はＯＰコード＝８１というＳＷ命令で、ＪＰ＝０００００１の実行環境時の場合、評価用ＦＷに差し替えて実行することによりデバッグを行うものとする。まず、評価用ＦＷをＳＶＰ１６から予備バッファ１４に設定する。また、ＪＰを比較することを示すフラグとその時の比較データ、０００００１をＳＶＰ１６から比較データ６１にセットする。さらに、今回評価対象となるＳＷ命令のＯＰコード、８１をＯＰ２にセットする。
【００３６】
この設定した状態で処理が行われていき、今まさにＪＰ＝０００００１でＯＰコード＝８１が実行されたとする。この時ＯＰ１とＯＰ２の比較が比較器４で行われ、一致していることから信号ａ＝１となる。一方、ＪＰ５２に設定されたデータが０００００１であった場合、比較データ６１にセットされたデータ０００００１と一致するため、条件比較回路７において比較結果を信号ｂ＝１として送出する。信号ａ＝信号ｂ＝１のためＡＮＤ回路８からは信号８２＝１、信号８１＝０を送出する。
【００３７】
ＣＳアドレス９は無効となりバッファアドレス１０が有効となる。バッファアドレス１０は０番地から始まり、逐次加算器１２で生成された次ＦＷ取り出しアドレスがセットされていく。これに伴い予備バッファ１０からは対応するＦＷが逐次取りだされ、セレクタ１５に送出される。このセレクタ１５では、先の信号８２により予備バッファ側のＦＷを送り出すことになり、結果予備バッファ内のＦＷが実行されていくこととなる。
【００３８】
このように特定条件をＨＷで検出した場合、予備バッファ内に格納されている評価用ＦＷに切り換えて実行を行うことが可能となり、特定条件が満たされない間は、通常のＦＷによる処理が行われることになる。
【００３９】
ここで評価用ＦＷは、個別に参照アドレスおよび取り出し制御を行うことから、ＣＳ内の元々のＦＷ部分の容量や取り出しアドレスなどに合わせる必要なく準備し、差し替えることが可能である。
【００４０】
以上のように、評価を行いたいタイミングをＨＷ的に検出するため、ＦＷによる検出チェックでのコーディング追加による実行タイミングの変化を抑え、また、対象となるＳＷ命令以外は通常のＣＳ内のＦＷを使用することで、より検証したい環境に近い実行タイミング下で評価可能である。
【００４１】
また、評価用ＦＷを別個に持つため、評価内容に応じてＦＷによる条件追加なども柔軟に行う事が可能なことから、ＨＷ的に一意に提供される機能に比べより柔軟かつ多用な評価が可能である。
【００４２】
さらに、評価時には元々のＦＷをそのままに、必要箇所の評価用ＦＷの準備ですむこと、また、このデバッグ評価機能が稼働中に行えることから、特定処理以降から手動でデバッグ機能を有効にすることも可能であり、より多彩にデバッグ評価を行うことができ、評価効率の向上に寄与する。
【００４３】
また、上記実施例では述べなかったが、強制フラグ６２をＳＶＰ１６から設定することで特定ＳＷ命令のみ、常時予備バッファ内のＦＷに切り換えることができる。
【００４４】
これにより評価時のみならず、特定のＳＷ命令に対する不具合を修正したＦＷを予備バッファに格納しておき、このＳＷ命令実行時には常に予備バッファ内のＦＷを使用することで不具合の回避が可能となる。また、これは運用中の装置に対しても実行可能でありかつ、不具合となるＳＷ命令のみ差し替えることで、影響の少ない不具合改修の適用手段となりうる。
【００４５】
本発明において、図１に示すＨＷ検出条件に関するレジスタ及び回路、具体的にはＩＣ５１、ＪＰ５２、モード５３および比較データ６１、強制フラグ６２、条件比較回路７、ＡＮＤ回路８は、検出条件がＯＰコードのみで十分な場合は特に必要ない。（第２の実施例を示す図２を参照）
逆にＨＷ検出条件としてＩＣ、ＪＰ、モード以外に該当プロセッサおよびＦＷデバッグに有効なレジスタデータがあれば、それらを比較対照として予め作り込んでおくことでＨＷ検出条件に追加しても構わない。
【００４６】
また別の構成では、ＨＷ資源が許す限り比較データ６１をＨＷ検出条件に対応する分用意しても構わない（第３の実施例を示す図３参照）。
【００４７】
また上記同様、予備バッファ１４を複数設けることで、複数のＳＷ命令に対してＦＷの差し替えを行うこともできる（第４の実施例を示す図４参照）。この場合、ＯＰ２、比較器４、ＡＮＤ回路８、バッファアドレス１０、加算器１２も対応する個数分設ける必要がある。
【図面の簡単な説明】
【００４８】
【図１】本発明の第１の実施例の構成を示すブロック図。
【図２】本発明の第２の実施例の構成を示すブロック図。
【図３】本発明の第３の実施例の構成を示すブロック図。
【図４】本発明の第４の実施例の構成を示すブロック図。
【符号の説明】
【００４９】
１    ＯＰ
２    ＯＰ
３    デコーダ
４    比較器
７    条件比較回路
８    ＡＮＤ回路
９    ＣＳアドレス
１０    バッファアドレス
１１    加算器
１２    加算器
１３    ＣＳ
１４    予備バッファ
１５    セレクタ
１６    ＳＶＰ
５１    ＩＣ
５２    ＪＰ
５３    モード
６１    比較データ
６２    強制フラグ
【図１】
2006268522.tif 000003
【図２】
2006268522.tif 000004
【図３】
2006268522.tif 000005
【図４】
2006268522.tif 000006