(57)【要約】【課題】制約のあるＣＰＵにおいても起動に用いる起動デバイスを変更可能に制御させる。【解決手段】起動するためのプログラムを格納する複数の起動デバイスと、起動デバイスにアクセスして起動デバイスから正常起動できないと判断すると、他の起動デバイスにアクセスして起動する起動手段と、起動手段からのアクセス信号を受け取って、起動デバイスへアクセス信号が送信されるのを拒絶するアクセス制限手段と、を備える。【選択図】図１
2010244460.tif 000002
【特許請求の範囲】
【請求項１】
起動するためのプログラムを格納する複数の起動デバイスと、
起動デバイスにアクセスして前記起動デバイスから正常起動できないと判断すると、他の起動デバイスにアクセスして起動する起動手段と、
前記起動手段からのアクセス信号を受け取って、前記起動デバイスへ前記アクセス信号が送信されるのを拒絶するアクセス制限手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記アクセス制限手段は、前記起動手段とは別の外部ロジックであることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記アクセス制限手段は、スイッチを有し、前記スイッチが切り替えられることにより前記アクセス信号を拒絶するか否かを判断することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記スイッチは、ハードウェアスイッチであることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記スイッチは、起動デバイスが接続されたことを検知して切り替わるスイッチであることを特徴とする請求項３記載の情報処理装置。
【請求項６】
前記スイッチは、自装置における機械的な差異を検知して切り替わるスイッチであることを特徴とする請求項３記載の情報処理装置。
【請求項７】
前記アクセス制限手段は、汎用ロジックの組み合わせでできていることを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記アクセス制限手段は、集積回路を含むデバイスに組み込まれていることを特徴とする請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
前記アクセス制限手段は、前記起動手段から起動後に送出される信号により前記アクセス信号を拒絶するか否かを切り替えることを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動に用いる起動デバイスを切り替える情報処理装置に関する。
【背景技術】
【０００２】
プログラム制御される電子機器では、プログラムを不揮発性ＲＯＭやＨＤＤに格納し、必要に応じてＲＯＭやＨＤＤなどの複数の起動デバイスから任意のデバイスを選び出してプログラムを読み出すことで起動している。
【０００３】
複数のデバイスから起動できる手段を用意している理由は、
１−１）起動デバイスの故障時に、代替の起動デバイスから起動することでシステムが全く起動できなくなることを防止する。
１−２）起動デバイスにバグプログラムを書き込んでしまった場合に、強制書き込みによる正常復帰を行うためであり、電子機器にとって必要なバックアップ手段として実装されている。
【０００４】
任意のデバイスから起動させる具体的な手段としては、一般的には以下の２種類の方法が存在する。
２−１）まずＢＩＯＳを起動させ、ＢＩＯＳの設定を変えることで起動順番を変える。
２−２）ＣＰＵに割り当てられている設定ピンをセットすることで、起動順番を変える。
【０００５】
図４は、本発明の実施形態における情報処理装置１００の構成図である。情報処理装置１００は、ＣＰＵ１１０と、起動デバイス１２１と、起動デバイス１２２と、プレブートローダ１３０と、を有して構成される。
【０００６】
ＣＰＵ１１０は、情報処理装置１００が有するプログラムに従ってメモリを用いて演算を行い、情報処理装置１００全体の制御を司る。また、ＣＰＵ１１０は、起動デバイスへのアクセス順序を単独で切り替えることができないものとする。
【０００７】
起動デバイス１２１は、不揮発性ＲＯＭなどで構成され、ここに格納されている起動プログラムに従って、情報処理装置１００が起動する。
【０００８】
起動デバイス１２２は、脱着可能な不揮発性ＲＯＭなどで構成され、起動デバイス１２１が故障などにより起動デバイス１２１から情報処理装置１００が起動できないときに、起動デバイス１２１の変わりに情報処理装置１００を起動させるプログラムを格納している。また、前記プログラムは、起動デバイス１２１の書き換え用のプログラムであっても良い。
【０００９】
プレブートローダ１３０は、ＣＰＵ１１０の内部又は外部に接続される非常に容量の小さい、書換え不可能なデバイスであり、あらかじめ決まった起動デバイスの優先順位が書かれている。そのため、ユーザが任意の値を書き込むことはできない。
【００１０】
ＣＰＵ１１０は、情報処理装置１００の電源が投入されると、プレブートローダ１３０にアクセスにいく。ここでプレブートローダ１３０には、起動デバイス１２１にアクセスし、決められた期待値が起動デバイス１２１から返ってこないと、起動デバイス１２２にアクセスするようなプログラムが書かれている。
【００１１】
アクセス後、プレブートローダ１３０に書かれている優先順位にしたがい、ＣＰＵ１１０は起動デバイス１２１にＣＳ（チップセレクト）信号あるいはＣＬＫ（クロック）信号をアサートして、アクセスすることでシステムを起動させる。
【００１２】
また、関連する技術として例えば特許文献１には、メイン制御システムの省電力モードからの復帰動作をＵＳＢにおけるデータ入力の検知、又はＵＳＢの活線挿抜の検知を条件に行うことで、ＵＳＢデバイスを接続した画像処理装置において、省電力モードへ移行させたメイン制御システムをＵＳＢドライバの状態の不整合を発生することなく復帰させる技術について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、２−１）や２−２）のような方法は、予めＣＰＵに実装されている又はＢＩＯＳに対応できるＣＰＵであることを前提としており、このような手段をもたないＣＰＵに対しては起動順番を任意に選択できないという課題があった。
【００１４】
例えば図４のように、プレブートローダ１３０を書き換えることができないといった制限下では、起動デバイス１２２からアクセスすることができないといった課題がある。
【００１５】
すなわち、起動デバイス１２２からシステムを起動するために、起動デバイス１２２に起動するための期待値を書き込んでも起動デバイス１２１にも起動するための期待値が書かれているため、ＣＰＵ１１０は常に起動デバイス１２１から起動してしまうことになる。
【００１６】
起動デバイス１２２に最初にアクセスできないと次のような課題が発生する。起動デバイス１２１に書かれているプログラムに、例えばバグがあった場合、プログラムが暴走して情報処理装置１００がフリーズすることになる。そのため、起動デバイス１２２から起動して、起動デバイス１２１を書き換えるような処理が必要となる。
【００１７】
そこで本発明は、上記問題点に鑑みてなされたもので、制約のあるＣＰＵにおいても起動に用いる起動デバイスを変更可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記課題を解決するため、本発明における情報処理装置は、起動するためのプログラムを格納する複数の起動デバイスと、起動デバイスにアクセスして起動デバイスから正常起動できないと判断すると、他の起動デバイスにアクセスして起動する起動手段と、起動手段からのアクセス信号を受け取って、起動デバイスへアクセス信号が送信されるのを拒絶するアクセス制限手段と、を備えることを特徴とする。
【００１９】
アクセス制限手段は、起動手段とは別の外部ロジックであることを特徴とする。
【００２０】
アクセス制限手段は、スイッチを有し、スイッチが切り替えられることによりアクセス信号を拒絶するか否かを判断することを特徴とする。
【００２１】
スイッチは、ハードウェアスイッチであることを特徴とする。
【００２２】
スイッチは、起動デバイスが接続されたことを検知して切り替わるスイッチであることを特徴とする。
【００２３】
スイッチは、自装置における機械的な差異を検知して切り替わるスイッチであることを特徴とする。
【００２４】
アクセス制限手段は、汎用ロジックの組み合わせでできていることを特徴とする。
【００２５】
アクセス制限手段は、集積回路を含むデバイスに組み込まれていることを特徴とする。
【００２６】
アクセス制限手段は、起動手段から起動後に送出される信号によりアクセス信号を拒絶するか否かを切り替えることを特徴とする。
【発明の効果】
【００２７】
本発明により、制約のあるＣＰＵにおいても起動に用いる起動デバイスを変更することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係る情報処理装置の構成図である。
【図２】本発明の実施形態に係る情報処理装置のフローチャート図である。
【図３】本発明の他の実施形態に係る情報処理装置の構成図である。
【図４】従来の情報処理装置の構成図である。
【発明を実施するための形態】
【００２９】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００３０】
（第１の実施形態）
図１は、本発明の実施形態における情報処理装置２００の構成図である。情報処理装置２００は、ＣＰＵ２１０と、起動デバイス２２１と、起動デバイス２２２と、プレブートローダ２３０と、ＳＷ（スイッチ）２４０と、ロジック２５０と、を有して構成される。起動デバイス２２１，２２２については、情報処理装置１００における起動デバイス１１１，１２１と同様の処理を行うため、ここでは詳細な説明は省略する。
【００３１】
ロジック２５０は、ＳＷ２４０からの入力信号をトリガとして、ＣＰＵ２１０から起動デバイス２２１へのアクセス可否を制御する。すなわち、ＳＷ２４０からの信号を受けて、ロジック２５０はＣＰＵ２１０からの入力信号を起動デバイス２２１へ出力するか否かを切り替える。
【００３２】
ロジック２５０により、入力信号が起動デバイス２２１へ送信されなかった場合には、ＣＰＵ２１０は起動のために決められた期待値を得ることができない。そこで、ＣＰＵ２１０は、起動デバイス２２２に対して信号を出力し、起動を行う。
【００３３】
なお、ＳＷ２４０及びロジック２５０は、ＣＰＵ２１０とは、別に備えられ、例えば、情報処理装置２００が電源オフの状態にある時にも電源オンしているような組み込み機器などに備えることが可能である。また、常時電源オンしているような組み込み機器がない場合には、安価なゲート品や集積回路を用いることが可能である。
【００３４】
ＳＷ２４０は、ディップスイッチなどのメカニカルスイッチで構成される。メカニカルスイッチを採用することにより、どちらの起動デバイスから起動するかを容易に設定することが出来る。
【００３５】
また、組み込み機器は通常外装に覆われているため、スイッチ設定をするために外装をはずさなければならない。そこで、起動デバイス２２２を検知し、検知した信号（ディテクト信号）をトリガとして切り替わるスイッチとすることで、外装をはずさなくてもスイッチを設定することが可能となる。
【００３６】
このようにすることで、起動デバイス２２２が実装されるとともに起動デバイス２２２から起動することが可能になる。
【００３７】
また、起動デバイス２２２が脱着式でなく初めから実装されている場合には、装置のドアやカバーなど、メカ的なものをオープンにした場合をディテクト信号として使用し、ドアやカバーをオープンにした状態で電源をオンすることで、起動デバイス２２２からアクセスすることが可能になる。
【００３８】
以下では、ロジック２５０回りについて詳細に説明する。
【００３９】
ＳＷ２４０がオフの場合には、ＣＰＵ２１０から出力されロジック２５０に入力されたＣＳ（またはＣＬＫ）信号は、そのまま起動デバイス２２１へと出力される。この場合に、情報処理装置２００の電源をオンすると、ＣＰＵ２１０は起動デバイス２２１に対して決められた期待値を得られるため、起動デバイス２２１へとアクセスを行う。一方、ＳＷ２４０がオンの場合には、ロジック２５０は、ＣＰＵ２１０から出力されたＣＳ（またはＣＬＫ）信号を起動デバイス２２１へと出力しない。
【００４０】
次に、本発明の実施形態における情報処理装置の起動処理について、図２に示すフローチャート図を参照して詳細に説明する。
【００４１】
電源をオンにすると（ステップＳ１１）、ＣＰＵ２１０は起動デバイス２２１にアクセスするために起動デバイス２２１へとＣＳ（ＣＬＫ）信号をアサートする（ステップＳ１２）。
【００４２】
ロジック２５０は、ＳＷ２４０がオフ状態であるか否かを判断し（ステップＳ１３）、ＳＷ２４０がオフであれば、ロジック２５０は、受け取った信号を起動デバイス２２１へと送出し、ＣＰＵ２１０は、起動デバイス２２１より起動のための期待値を受け取る（ステップＳ１４）。
【００４３】
ＣＰＵ２１０は、受け取った期待値が正常か否かを判断して（ステップＳ１５）、正常であれば起動デバイス２２１よりプログラムを読み込み、情報処理装置を起動させる（ステップＳ１６）。正常値でなければ、起動デバイス２２２にアクセスするために起動デバイス２２２へとＣＳ（ＣＬＫ）信号をアサートする（ステップＳ１７）。
【００４４】
一方、ＳＷ２４０がオンであった場合には、ロジック２５０は、ＣＰＵ２１０へ起動のための期待値を受け取れないように、ＣＰＵ２１０から起動デバイス２２１へとアサートさせない。つまり、ＣＳやクロック信号を出力させない。（例えば、バスをプルアップしていれば１が、プルダウンしていれば０、つまり期待値ではないものが返ってくる）
【００４５】
ＣＰＵ２１０は、起動のための正常な期待値が返ってこないので、起動デバイス２２２にアクセスするために起動デバイス２２２へとＣＳ（ＣＬＫ）信号をアサートする（ステップＳ１７）。
【００４６】
ＣＰＵ２１０は、起動デバイス２２２より起動のための期待値を受け取ると（ステップＳ１８）、受け取った期待値が正常か否かを判断して（ステップＳ１９）、正常であれば起動デバイス２２２よりプログラムを読み込み、情報処理装置を起動させる（ステップＳ２０）。ここでも正常な期待値が得られなければ、起動エラーとなる（ステップＳ２１）。
【００４７】
（第２の実施形態）
図３は、本発明の他の実施形態における情報処理装置２０１の構成図である。情報処理装置２０１は、ＣＰＵ２１０にさらにＧＩＯ（汎用入出力ポート）２１１を有して構成される。
【００４８】
ＧＩＯ２１１は、ロジック２５０に対して、１：（“Ｈ”）又は０：（“Ｌ”）の値を出力する。ここで、ＧＩＯ２１１の初期値は、１：（“Ｈ”）となっており、ＣＰＵ２１０が０：（“Ｌ”）をドライブするまでは、１：（“Ｈ”）になっている。
【００４９】
また、ロジック２５０は、ＳＷ２４０及びＧＩＯ２１１からの入力信号をトリガとして、ＣＰＵ２１０から起動デバイス２２１へのアクセス可否を制御する。
【００５０】
第１の実施形態においては、ＳＷ２４０がオンの状態であれば、常にロジック２５０がアサート信号を起動デバイス２２１へと送信しないが、本実施形態に置いては、ＧＩＯ２１１が０：（“Ｌ”）である場合には、ＣＰＵ２１０から出力されロジック２５０に入力されたＣＳ（またはＣＬＫ）信号は、そのまま起動デバイス２２１へと出力される。
【００５１】
すなわち、ＣＰＵ２１０が起動した後に起動デバイス１にアクセスにいきたい場合、ＧＩＯ２１１を０：（“Ｌ”）にすることにより、ロジック２５０は、起動デバイス２２１へとＣＳ信号をアサートするように動作する。
【００５２】
このように、起動デバイス２２２から起動後、起動デバイス２２１にもアクセスが可能になるため、起動デバイス２２１のプログラムを書き換えることが可能になる。
【００５３】
また、ＳＷ２４０がオフであり、最初に起動デバイス２２１から起動する場合にも、同様にＧＩＯ２２１を切り替えることによって、ロジック２５０が、ＣＰＵ２１０から送出されたＣＳ信号を起動デバイス２２１へとアサートさせないようにしても良い。
【００５４】
なお、本発明では情報処理装置を一例に実施形態を説明したが、上述の構成を備えるものであればその種類は問わない。
【００５５】
以上、実施の形態を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨および範囲から逸脱することなく、これら実施の形態や具体例に様々な修正および変更が可能である。
【符号の説明】
【００５６】
２００    情報処理装置
２１０    ＣＰＵ
２１１    ＧＩＯ
２２１，２２２    起動デバイス
２３０    プレブートローダ
２４０    スイッチ
２５０    ロジック
【先行技術文献】
【特許文献】
【００５７】
【特許文献１】特開２００７−６８１５６号公報
【図１】
2010244460.tif 000003
【図２】
2010244460.tif 000004
【図３】
2010244460.tif 000005
【図４】
2010244460.tif 000006