(57)【要約】【課題】コストアップの上昇を抑制しつつ、ブートプログラムの切り替えにかかる手間を軽減すること。【解決手段】ＣＰＵ１は、ブートプログラムの正当性が一定期間内に得られない場合、アドレス変換器４にて変換されたアドレスにて指定される次のブートプログラムを実行し、ブートプログラムの正当性が得られた場合、インターバルタイマ７を停止させ、ブートプログラムの残りの部分を実行する。【選択図】        図１
2012059034.tif 000002
【特許請求の範囲】
【請求項１】
同一のブートプログラムが複数記憶された記憶部と、
アドレスで指定されたブートプログラムを前記記憶部からデータバスを介して読み出して実行し、前記ブートプログラムの正当性をチェックするＣＰＵと、
前記ブートプログラムの正当性が一定期間内に得られない場合、前記ＣＰＵをリセットするパルス信号を生成するインターバルタイマと、
前記パルス信号に基づいてカウント動作を行うカウンタと、
前記カウンタによるカウント結果に基づいて、今回のブートプログラムを指定するアドレスを次のブートプログラムを指定するアドレスに変換するアドレス変換器とを備えることを特徴とするブート処理装置。
【請求項２】
前記ブートプログラムの正当性が一定期間内に得られない場合、前記ＣＰＵは、前記アドレス変換器にて変換されたアドレスにて指定される次のブートプログラムを実行することを特徴とする請求項１に記載のブート処理装置。
【請求項３】
前記ブートプログラムの正当性が得られた場合、前記ＣＰＵは前記インターバルタイマを停止させ、前記ブートプログラムの残りの部分を実行することを特徴とする請求項１または２に記載のブート処理装置。
【請求項４】
前記カウンタからの出力値を固有値と比較するコンパレータと、
前記カウンタからの出力値が前記固有値に一致した場合、使用者に警告を行う警告部とを備えることを特徴とする請求項１から３のいずれか１項に記載のブート処理装置。
【請求項５】
前記固有値は、前記記憶部に記憶されたブートプログラムの個数に設定されていることを特徴とする請求項４に記載のブート処理装置。
【請求項６】
前記データバスと前記アドレス変換器の出力が接続され、前記ブートプログラムが格納されたデバイスが実装される拡張スロットを備えることを特徴とする請求項１から５のいずれか１項に記載のブート処理装置。
【請求項７】
前記拡張スロットは、前記記憶部に記憶された最後のブートプログラムを指定するアドレスの次のアドレスが割り当てられていることを特徴とする請求項６に記載のブート処理装置。
【請求項８】
前記ＣＰＵは、前記記憶部の全てのブートプログラムに異常がある場合、前記拡張スロットに実装されたデバイス上のブートプログラムを実行することを特徴とする請求項７に記載のブート処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はブート処理装置に関し、特に、フラッシュＲＯＭをブートデバイスとして使用した数値制御装置におけるブート処理装置に関する。
【背景技術】
【０００２】
従来の数値制御装置においては、ブートデバイスの内容が破壊された場合、ブートデバイスを外部記憶装置に切り替え、その外部記憶装置からブートを行い、ブート用フラッシュＲＯＭを上書きして修理していた。
【０００３】
また、ブートデバイスの内容が破壊された場合でも、ＥＣＣ機能を用いてエラー訂正をして使用していた。
【０００４】
また、特許文献１には、ＣＰＵをブートする複数のブートプログラムを複数のＲＯＭにそれぞれ格納し、リセットスイッチが押下されると、リセット部はＣＰＵをリセットするとともに、アドレスデコーダがアサートするＲＯＭのアドレスを変更する技術が開示されている。
【０００５】
また、特許文献２には、ＣＰＵのブートプログラムがそれぞれ記憶された第１および第２のブートＲＯＭを設け、第１のブートＲＯＭから読み出したブートプログラムによりＣＰＵが正常にブートできなかった場合に、第２のブートＲＯＭからブートプログラムを読み出す技術が開示されている。
【０００６】
また、特許文献３には、タイマがタイムアウトしたときに複数のＢＩＯＳプログラムのうちシステムで現に使用するＢＩＯＳプログラムを残りのＢＩＯＳプログラムに切り替えるとともに、システムリセット信号を発生する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−１７９９３７号公報
【特許文献２】特開２００１−１０９６２９号公報
【特許文献３】特開２００４−３８５２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ブートデバイスを外部記憶装置に切り替え、その外部記憶装置からブートを行う方法では、手間がかかるという問題があった。
【０００９】
また、ＥＣＣ機能を用いてエラー訂正する方法では、バスのデータ幅を増やさなければならないため、コストアップになるとともに、１ワード内に多ビットの異常がある場合には訂正することができないという問題があった。
【００１０】
特許文献１に開示された方法では、ブートプログラムを切り替えるには、リセットスイッチを押下する必要があり、手間がかかるという問題があった。
【００１１】
特許文献２に開示された方法では、ブートプログラムを切り替えるには、ブート制御用ＣＰＵを用意する必要があり、コストアップを招くという問題があった。
【００１２】
特許文献３に開示された方法では、ＢＩＯＳプログラムを切り替えるには、ＢＩＯＳプログラムを指定するためのアドレスを専用に割り当てる必要があり、バスのアドレス幅を増やさなければならないという問題があった。
【００１３】
本発明は、上記に鑑みてなされたものであって、コストアップの上昇を抑制しつつ、ブートプログラムの切り替えにかかる手間を軽減することが可能なブート処理装置を得ることを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本発明のブート処理装置は、同一のブートプログラムが複数記憶された記憶部と、アドレスで指定されたブートプログラムを前記記憶部からデータバスを介して読み出して実行し、前記ブートプログラムの正当性をチェックするＣＰＵと、前記ブートプログラムの正当性が一定期間内に得られない場合、前記ＣＰＵをリセットするパルス信号を生成するインターバルタイマと、前記パルス信号に基づいてカウント動作を行うカウンタと、前記カウンタによるカウント結果に基づいて、今回のブートプログラムを指定するアドレスを次のブートプログラムを指定するアドレスに変換するアドレス変換器とを備えることを特徴とする。
【発明の効果】
【００１５】
この発明によれば、コストアップの上昇を抑制しつつ、ブートプログラムの切り替えにかかる手間を軽減することが可能という効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明に係るブート処理装置の実施の形態１の概略構成を示すブロック図である。
【図２】図２は、図１のＣＰＵ１の動作を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下に、本発明に係るブート処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１８】
実施の形態１．
図１は、本発明に係るブート処理装置の実施の形態１の概略構成を示すブロック図である。図１において、ブート処理装置には、同一のブートプログラムが複数記憶されたフラッシュＲＯＭ６、アドレスで指定されたブートプログラムをフラッシュＲＯＭ６からデータバス２を介して読み出して実行し、ブートプログラムの正当性をチェックするＣＰＵ１、ブートプログラムの正当性が一定期間内に得られない場合、ＣＰＵ１をリセットするパルス信号１０を生成するインターバルタイマ７、パルス信号１０に基づいてカウント動作を行うカウンタ８、カウンタ８によるカウント結果に基づいて、今回のブートプログラムを指定するアドレスを次のブートプログラムを指定するアドレスに変換するアドレス変換器４が設けられている。
【００１９】
ここで、フラッシュＲＯＭ６には、同一のブートプログラムをそれぞれ記憶する複数の領域Ｒ０〜ＲＮ（Ｎは２以上の整数）が設けられている。なお、同一のブートプログラムが複数記憶する記憶部としては、フラッシュＲＯＭ６の他にＥＥＰＲＯＭなどの不揮発性半導体メモリを用いるようにしてもよいし、書き換えが不可能な読み出し専用のＲＯＭを用いるようにしてもよい。これらのブートプログラムには、セルフチェック機能を設けることができる。
【００２０】
また、ブート処理装置には、カウンタ８からのカウンタ出力値１１を固有値と比較するコンパレータ１２、カウンタ８からのカウンタ出力値１１が固有値に一致した場合、使用者に警告を行う警告部１４、ブートプログラムが格納されたデバイス１６が実装される拡張スロット１５が設けられている。
【００２１】
ここで、ＣＰＵ１は、データバス２を介してフラッシュＲＯＭ６および拡張スロット１５に接続されるとともに、アドレスバス３を介してアドレス変換器４に接続されている。また、フラッシュＲＯＭ６および拡張スロット１５には、アドレス変換器４からアドレス変換結果５が出力される。
【００２２】
なお、カウンタ出力値１１と比較される固有値は、フラッシュＲＯＭ６に記憶されたブートプログラムの個数に設定することができる。また、拡張スロット１５は、フラッシュＲＯＭ６に記憶された最後のブートプログラムを指定するアドレスの次のアドレスを割り当てることができる。
【００２３】
また、警告部１４には警告メッセージを表示する表示部を設けるようにしてもよいし、警告を音で行う音響出力部を設けるようにしてもよい。デバイス１６としては、ハードディスク装置であってもよいし、ＵＳＢメモリであってもよいし、メモリカードであってもよい。
【００２４】
そして、電源が投入されると、インターバルタイマ７が起動される。また、ＣＰＵ１は、カウンタ８をクリアするとともに、アドレスバス３を介して領域Ｒ０を指定するアドレスをアドレス変換器４に出力する。
【００２５】
そして、カウンタ８がクリアされると、アドレス変換器４には、カウンタ出力値１１として０が出力され、アドレス変換器４からは、領域Ｒ０を指定するアドレスがアドレス変換結果５としてフラッシュＲＯＭ６に出力される。
【００２６】
そして、領域Ｒ０を指定するアドレスがフラッシュＲＯＭ６に出力されると、ブートプログラムが領域Ｒ０からデータバス２を介してＣＰＵ１に読み出され、そのブートプログラムの正当性がチェックされる。
【００２７】
そして、領域Ｒ０から読み出されたブートプログラムに異常がない場合、ＣＰＵ１はタイマ停止信号９を出力し、インターバルタイマ７を停止させる。そして、ＣＰＵ１は、ブートプログラムの残りの部分を実行する。
【００２８】
一方、領域Ｒ０から読み出されたブートプログラムに異常がある場合、インターバルタイマ７の動作が継続される。そして、インターバルタイマ７が起動されて一定期間が経過すると、ＣＰＵ１およびカウンタ８にパルス信号１０が出力される。
【００２９】
そして、ＣＰＵ１にパルス信号１０が出力されると、ＣＰＵ１はリセットされる。また、カウンタ８にパルス信号１０が出力されると、カウンタ８はカウンタ出力値１１を１だけインクリメントし、カウンタ出力値１１として１をアドレス変換器４に出力する。
【００３０】
そして、カウンタ出力値１１として１がアドレス変換器４に出力されると、領域Ｒ０を指定するアドレスが領域Ｒ１を指定するアドレスに変換され、アドレス変換器４からは、領域Ｒ１を指定するアドレスがアドレス変換結果５としてフラッシュＲＯＭ６に出力される。
【００３１】
そして、領域Ｒ１を指定するアドレスがフラッシュＲＯＭ６に出力されると、ブートプログラムが領域Ｒ１からデータバス２を介してＣＰＵ１に読み出され、そのブートプログラムの正当性がチェックされる。
【００３２】
そして、領域Ｒ１から読み出されたブートプログラムに異常がない場合、ＣＰＵ１はタイマ停止信号９を出力し、インターバルタイマ７を停止させる。そして、ＣＰＵ１は、ブートプログラムの残りの部分を実行する。
【００３３】
一方、領域Ｒ１から読み出されたブートプログラムに異常がある場合、インターバルタイマ７の動作が継続される。そして、インターバルタイマ７のタイムアップから一定期間が経過すると、ＣＰＵ１およびカウンタ８にパルス信号１０が出力される。
【００３４】
そして、ＣＰＵ１にパルス信号１０が出力されると、ＣＰＵ１はリセットされる。また、カウンタ８にパルス信号１０が出力されると、カウンタ８はカウンタ出力値１１を１だけインクリメントし、カウンタ出力値１１として２をアドレス変換器４に出力する。
【００３５】
以下、同様にして、今回読み出されたブートプログラムに異常がある場合、カウンタ出力値１１が１ずつインクリメントされ、今回読み出されたブートプログラムの次のブートプログラムが順次読み出される。
【００３６】
図２は、図１のＣＰＵ１の動作を示すフローチャートである。図２において、アドレス変換器４は、カウンタ出力値１１から対応する領域Ｒ０〜ＲＮのアドレスオフセット値を算出し、アドレスバス３を介して出力されるアドレスを加算してアドレス変換結果５を生成する。
【００３７】
ＣＰＵ１は起動後、データバス２とアドレスバス３を使用して、カウンタ８とアドレス変換器４により選択されるフラッシュＲＯＭ６の領域Ｒ０〜ＲＮに書き込まれたブートプログラムをリードして実行する。
【００３８】
すなわち、ＣＰＵ１は、Ｓ１０１にてブートプログラム全体をリードして、Ｓ１０２にてブートプログラムの正当性をチェックする。そして、Ｓ１０３にてブートプログラムに間違いがあるかどうかを判断し、ブートプログラムに間違いがあるならばＳ１０１に戻り、ブートプログラムが正しければＳ１０４にてタイマ停止信号９を出力することでインターバルタイマ７を停止して、Ｓ１０５にてブートプログラムの残りの部分を実行する。
【００３９】
Ｓ１０３にてブートプログラムが間違えていたならば、Ｓ１０１に戻り、フラッシュＲＯＭ６の次の領域からブートプログラム全体をリードして、Ｓ１０２にてブートプログラムの正当性をチェックする。
【００４０】
このような仕組みを持ったブート処理装置では、Ｓ１０２のブートプログラムの正当性チェックでプログラムに間違いがあれば、Ｓ１０４を実行することがなく、インターバルタイマ７が停止されないため、一定期間経過後にパルス信号１０が出力される。
【００４１】
その結果、パルス信号１０がカウンタ８に入力され、カウンタ出力値１１がインクリメントされて、アドレス変換器４で変換されるアドレス変換結果５は、フラッシュＲＯＭ６で今まで参照していた領域の次の領域を指し示すことになり、ＣＰＵ１もパルス信号１０１０によりリセットされる。
【００４２】
このため、ＣＰＵ１は、フラッシュＲＯＭ６で今まで実行していたブートプログラムが格納されていた領域の次の領域に格納されたブートプログラムを自動的に実行することができ、ブートプログラムの切り替えにかかる手間を軽減することが可能となる。
【００４３】
また、ブートプログラムを切り替えるためのアドレスをアドレス変換器４にて生成させることにより、ブート制御用ＣＰＵを用意したり、ブートプログラムを指定するためのアドレスを専用に割り当てたりする必要がなくなることから、コストアップの上昇を抑制することができる。
【００４４】
実施の形態２．
図１において、カウンタ８からは、カウンタ出力値１１がコンパレータ１２に入力され、その比較結果１３が警告部１４に入力される。そして、コンパレータ１２において、カウンタ出力値１１と固有値とが比較され、カウンタ出力値１１と固有値とが一致すると、そのことが警告部１４に通知される。
【００４５】
そして、警告部１４は、カウンタ出力値１１と固有値とが一致したという通知を受けると、使用者に警告を行う。この警告では、フラッシュＲＯＭ６に記憶された全てのブートプログラムに異常があったというメッセージを含むようにしてもよい。
【００４６】
これにより、コンパレータ１２を追加することで、フラッシュＲＯＭ６に格納された全てのブートプログラムに異常があったかどうかを判断することができ、部品点数の増大を抑制しつつ、抑制数値制御装置の起動ができないことを使用者に確実に通知することができる。
【００４７】
実施の形態３．
図１において、拡張スロット１５には、フラッシュＲＯＭ６に記憶された最後のブートプログラムを指定するアドレスの次のアドレスが割り当てられる。そして、フラッシュＲＯＭ６の全ての領域Ｒ０〜ＲＮを参照してもブートできなかった場合、その時のカウンタ出力値１１が１だけインクリメントされ、アドレス変換器４に出力される。そして、アドレス変換器４において、フラッシュＲＯＭ６で最後の領域ＲＮのアドレスの次のアドレスに変換されることで拡張スロット１５にアクセスされ、拡張スロット１５に実装されたデバイス１６に格納されたブートプログラムがデータバス２を介してＣＰＵ１に読み出される。
【００４８】
そして、ＣＰＵ１において、デバイス１６から読み出されたブートプログラムの正当性がチェックされ、そのブートプログラムに異常がない場合、ＣＰＵ１はタイマ停止信号９を出力し、インターバルタイマ７を停止させる。
【００４９】
一方、デバイス１６から読み出されたブートプログラムに異常がある場合、インターバルタイマ７の動作が継続される。そして、インターバルタイマ７が起動されて一定期間が経過すると、ＣＰＵ１およびカウンタ８にパルス信号１０が出力され、ＣＰＵ１はリセットされる。
【００５０】
これにより、フラッシュＲＯＭ６に格納された全てのブートプログラムに異常があった場合においても、ブートプログラムの切り替えに煩雑な作業を要求することなく、拡張スロット１５に実装可能な任意のデバイス１６からブートプログラムを読み出させることができ、数値制御装置の起動の確実性を向上させることができる。
【００５１】
また、拡張スロット１５に実装されたデバイス１６に格納されたブートプログラムを実行する際も、インターバルタイマ７を停止しない限り、インターバルタイマ７は一定期間毎にＣＰＵ１をリセットするので、拡張スロット１５に実装されたデバイス１６にブートプログラム以外の悪意を持ったプログラムが格納されていた場合に、その実行を阻止することができ、数値制御装置の安全性を確保することができる。
【産業上の利用可能性】
【００５２】
以上のように本発明に係るブート処理装置は、コストアップの上昇を抑制しつつ、ブートプログラムの切り替えにかかる手間を軽減することが可能となり、フラッシュＲＯＭをブートデバイスとして使用した数値制御装置を起動する方法に適している。
【符号の説明】
【００５３】
１  ＣＰＵ
２  データバス
３  アドレスバス
４  アドレス変換器
５  アドレス変換結果
６  フラッシュＲＯＭ
７  インターバルタイマ
８  カウンタ
９  タイマ停止信号
１０  パルス信号
１１  カウンタ出力値
１２  コンパレータ
１３  比較結果
１４  警告部
１５  拡張スロット
１６  デバイス
【図１】
2012059034.tif 000003
【図２】
2012059034.tif 000004