(57)【特許請求の範囲】
【請求項１】
システムの起動に使用するＢＩＯＳを記憶し、それぞれが共有のアドレスバスとデータバスに接続されるとともに同一のメモリマップ上にマッピングされて同一のチップセレクト信号によって読み出し対象として選択され、前記チップセレクト信号とリード信号とが入力された一方が前記アドレスバスに出力されるアドレスに応じて前記データバスにＢＩＯＳデータを出力する一対のメモリと、
前記アドレスバスと前記データバスを介して前記一対のメモリに接続され、前記チップセレクト信号および前記リード信号を出力し、前記一対のメモリのうち当該出力したチップセレクト信号およびリード信号が入力されたメモリから前記データバスに出力されるＢＩＯＳデータを取得してＢＩＯＳの起動を試行する制御手段と、
前記一対のメモリのいずれか一方を、前記制御手段から出力される前記チップセレクト信号および前記リード信号の出力先として選択するメモリ選択手段と、
前記制御手段がＢＩＯＳの起動を試行するに際して、前記制御手段から出力される前記リード信号の初めの変化を検知したときを始点として監視時間の計時を開始するとともに、前記制御手段から出力されＢＩＯＳの起動が正常に完了したときに動作波形が変化する信号の動作波形の変化を検知して前記監視時間の計時を停止する回路であり、前記監視時間を計時し終えたことに応じ、前記メモリ選択手段に他方のメモリを前記チップセレクト信号および前記リード信号の出力先として選択させ、前記制御手段に該メモリに記憶されたＢＩＯＳの起動を試行させる監視回路と、
を備えてなることを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム起動に用いるＢＩＯＳを格納したメモリを備えたデータ処理装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータや、パーソナルコンピュータ同様に多機能化されたＰＯＳ（Point Of Sales）などのデータ処理装置は、ＢＩＯＳ（Basic Input/Output System）と呼ばれるファームウェアを実行してシステムを起動している。ＢＩＯＳは、データ処理装置を構成する各ハードウェアの初期化を行い、ＯＳ（Operating System）を起動する役割を担っている。このようにデータ処理装置のシステムの起動に際して重要な役割を担うＢＩＯＳは、レビジョン更新など各種の機能追加や不具合を修正することができるようにフラッシュROM（Read Only Memory）などの書き換え可能なメモリに記憶されることが一般的である。
【０００３】
従来のＢＩＯＳへのアクセス方法について説明する。図５は、従来のデータ処理装置の要部構成を示す模式図である。システムの制御を司るＣＰＵ（Central Processing Unit）３０に対してＢＩＯＳを格納したフラッシュROM３１が、例えば１９ｂｉｔのアドレスバス３２（ＸＡ０〜ＸＡ１８）および８ｂｉｔのデータバス３３（ＸＤ０〜ＸＤ７）を介して接続されている。ＣＰＵ３０は、ＢＩＯＳを読み出す際、メモリマップ上のフラッシュＲＯＭ３１の位置に応じたＲＯＭＣＳ（ＲＯＭチップセレクト）信号３４を出力するとともに、ＲＤ（リード）信号３５を出力する。上記ＲＯＭＣＳ信号３４は、読み出し対象となるデータが格納されたメモリを選択するための信号である。上記ＲＤ信号３５は、ＲＯＭＣＳ信号３４により選択されたメモリに対し、アドレスバス３２から入力されるアドレスに応じたデータをデータバス３３に出力するよう指示する信号である。ＲＯＭＣＳ信号３４とＲＤ信号３５とが入力された状態において、フラッシュROM３１は、アドレスバス３２からの入力で指定されたアドレスに応じたデータをデータバス３３へ出力する。このようにして、ＣＰＵ３０はフラッシュROM３１に記憶されたＢＩＯＳデータを取得してＢＩＯＳを起動する。
【０００４】
ところで、ＢＩＯＳのレビジョン更新を行っている際に停電が発生するなどして更新が失敗したときには、システムの起動を担うＢＩＯＳの性質上、データ処理装置が立ち上がらなくなる。そのため、ＢＩＯＳに不具合が生じた際にはその復旧が困難であり、当該データ処理装置を用いる業務に多大な支障を来たすこととなる。
【０００５】
このようなＢＩＯＳの不具合に対処するため、例えば特許文献１には、２分割されたメモリの記憶領域にそれぞれＢＩＯＳを記憶させて冗長化し、システム側からは一方の記憶領域にのみアクセス可能とすることで、一方のＢＩＯＳの書き換えが失敗した場合であっても他方のＢＩＯＳによりシステムを起動することができる情報処理装置が提案されている。
【特許文献１】特開２０００−１４８４６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の情報処理装置のように１つのメモリを２分してＢＩＯＳを冗長化する手法を用いるには、通常よりも大容量のメモリが必要となる。一般的にメモリは、大容量であるほどデータの読み出しに要する速度が遅くなる。大容量かつデータ読み出しが高速なメモリは高価であるため、機器のコストパフォーマンスが低下する。一方、データ読み出し速度が低速で低価格なメモリを用いれば、システム起動に要する時間が増大してしまう。また、ＢＩＯＳデータではなくメモリ自体に不具合が生じた場合には、メモリを交換しない限りシステム起動が不可能になってしまう。
【０００７】
本発明は、上記のような事情に基づいてなされたものであり、その目的は、高価なメモリを使用することなく、かつデータの読み出し速度を低下させることなくＢＩＯＳを冗長化し、システムを確実に起動することが可能なデータ処理装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係るデータ処理装置は、システムの起動に使用するＢＩＯＳを記憶し、それぞれが共有のアドレスバスとデータバスに接続されるとともに同一のメモリマップ上にマッピングされて同一のチップセレクト信号によって読み出し対象として選択され、前記チップセレクト信号とリード信号とが入力された一方が前記アドレスバスに出力されるアドレスに応じて前記データバスにＢＩＯＳデータを出力する一対のメモリと、前記アドレスバスと前記データバスを介して前記一対のメモリに接続され、前記チップセレクト信号および前記リード信号を出力し、前記一対のメモリのうち当該出力したチップセレクト信号およびリード信号が入力されたメモリから前記データバスに出力されるＢＩＯＳデータを取得してＢＩＯＳの起動を試行する制御手段と、前記一対のメモリのいずれか一方を、前記制御手段から出力される前記チップセレクト信号および前記リード信号の出力先として選択するメモリ選択手段と、前記制御手段がＢＩＯＳの起動を試行するに際して、前記制御手段から出力される前記リード信号の初めの変化を検知したときを始点として監視時間の計時を開始するとともに、前記制御手段から出力されＢＩＯＳの起動が正常に完了したときに動作波形が変化する信号の動作波形の変化を検知して前記監視時間の計時を停止する回路であり、前記監視時間を計時し終えたことに応じ、前記メモリ選択手段に他方のメモリを前記チップセレクト信号および前記リード信号の出力先として選択させ、前記制御手段に該メモリに記憶されたＢＩＯＳの起動を試行させる監視回路とを備えてなることを特徴としている。
【発明の効果】
【０００９】
かかる手段を講じた本発明によれば、高価なメモリを使用することなく、かつデータの読み出し速度を低下させることなくＢＩＯＳを冗長化し、システムを確実に起動することが可能なデータ処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実行するための一実施の形態について、図面を参照しながら説明する。  
図１は、本発明に係るデータ処理装置１の要部構成を示す模式図である。データ処理装置１は、システムの制御主体であるＣＰＵ２、このＣＰＵ２と例えば１９ｂｉｔのアドレスバス１０（ＸＡ０〜ＸＡ１８）および８ｂｉｔのデータバス１１を介して接続された一対のフラッシュROM３およびフラッシュROM４、監視回路５、およびスイッチ（ＳＷ）回路６を備えている。
【００１１】
フラッシュROM３は、ＢＩＯＳを格納し、システムの起動にメインで使用される。フラッシュROM４は、フラッシュROM３と同様にＢＩＯＳを格納し、フラッシュROM３に格納されたＢＩＯＳが起動されないときに予備的に使用される。なお、フラッシュＲＯＭ３とフラッシュＲＯＭ４とは、同一のメモリマップ上にマッピングされており、同一のＲＯＭＣＳ信号１０で選択される。
【００１２】
監視回路５は、予め定められた監視時間ｔｓｅｃをカウントするウォッチドッグタイマ７を備えており、３．３Ｖの動作電源を受けて動作する。ウォッチドッグタイマ７による監視時間ｔｓｅｃのカウントは、システムの起動が開始された後にＣＰＵ２から出力されるＲＤ信号１１が初めに変化したことに応じて開始され、ＣＰＵ２から出力されるＧＰＩＯ ＤＩＳＡＢＬＥ信号１３が入力されたときに停止する。上記ＧＰＩＯ ＤＩＳＡＢＬＥ信号１３は、ＣＰＵ２が備えるＧＰＩＯ（General Purpose Input/Output）から出力される汎用ＩＯ信号であり、ＢＩＯＳの起動が正常に完了したときに動作波形が変化する。また、ＣＰＵ２から出力されるＣＯＵＮＴＥＲ ＲＥＳＥＴ信号１２が入力されたときには、カウント値をリセットして再度監視時間ｔｓｅｃのカウントを開始する。監視時間ｔｓｅｃのカウントが終了したときには、ＤＵＡＬ ＥＮＡＢＬＥ信号１４をスイッチ回路６に出力するとともに、システムの再起動を指示するＳＹＳＴＥＭ ＲＥＳＥＴ信号１５を、ＣＰＵ２を含む各デバイスに出力してシステムを再起動させる。
【００１３】
なお、ＣＰＵ２は、システムの起動に際して先ずＢＩＯＳを起動するため、最初にフラッシュＲＯＭ３，４へのアクセスを試みる。そのため本実施形態では、フラッシュＲＯＭ３，４に出力されるＲＤ信号１１が初めに変化したときをＢＩＯＳの起動開始の始点として監視時間ｔｓｅｃのカウントを開始するように設定している。
【００１４】
スイッチ回路６は、３．３Ｖの動作電源を受けて作動し、ＣＰＵ２から供給されるＲＯＭＣＳ信号１０およびＲＤ信号１１を、フラッシュROM３に接続された出力端子６ａまたはフラッシュROM４に接続された出力端子６ｂのいずれか一方に出力する。すなわち、スイッチ回路６は、フラッシュROM３，４のいずれか一方を選択する選択手段である。なお、ＲＯＭＣＳ信号１０およびＲＤ信号１１の出力先は、監視回路５から出力されるＤＵＡＬ ＥＮＡＢＬＥ信号１４に応じて切り替えられる。
【００１５】
なお、上記ＣＯＵＮＴＥＲ ＲＥＳＥＴ信号１２、ＧＰＩＯ ＤＩＳＡＢＬＥ信号１３、ＤＵＡＬ ＥＮＡＢＬＥ信号１４およびＳＹＳＴＥＭ ＲＥＳＥＴ信号１５は、データ処理装置１の電源投入時当初のデフォルト値としてそれぞれ“１”，“０”，“１”および“１”を設定する。
【００１６】
次に、上記のような構成による作用について説明する。  
図２は、データ処理装置１のシステム起動を説明するための流れ図、図３は、異常が発生することなくシステムが正常に起動した場合における各信号の動作波形を示す模式図、図４は、異常が発生した後にシステムを再起動した場合における各信号の動作波形を示す模式図である。
【００１７】
電源が投入された後、上記各信号１２〜１５がデフォルト値に設定される（ＳＴ１）。すなわち、ＣＰＵ２がＣＯＵＮＴＥＲ ＲＥＳＥＴ信号１２を“１”、ＧＰＩＯ ＤＩＳＡＢＬＥ信号１３を“０”に設定し、監視回路５がＤＵＡＬ ＥＮＡＢＬＥ信号１４を“１”に、ＳＹＳＴＥＭ ＲＥＳＥＴ信号１５を“１”に設定する。このとき、ＤＵＡＬ ＥＮＡＢＬＥ信号１４が“１”に設定されたことに応じてスイッチ回路６がＲＯＭＣＳ信号１０およびＲＤ信号１１の出力先を出力端子６ａに切り替える。このようにスイッチ回路６が出力先を出力端子６ａに切り替えた状態において、ＣＰＵ２が出力するＲＯＭＣＳ信号１０およびＲＤ信号１１は、フラッシュROM３に入力される。そして、ＣＰＵ２が出力したメモリマップ上のＢＩＯＳが記憶された領域に対応するＲＯＭＣＳ信号１０およびＲＤ信号１１の入力を受けたフラッシュROM３は、アドレスバス１０から入力されるアドレスに応じたデータをデータバス１１に出力する。しかる後、ＣＰＵ２は、データバス１１に出力されたデータに基づいてシステムの起動処理を開始する。
【００１８】
一方、監視回路５は、ＣＯＵＮＴＥＲ ＲＥＳＥＴ信号１２が“１”に設定された後、ＲＤ信号１１に生じる変化を監視する（ＳＴ２）。そして、ＲＤ信号１１に第１回目の変化が生じた際には（ＳＴ２のＹｅｓ）、監視回路５がウォッチドッグタイマ７を用いて監視時間ｔｓｅｃのカウントを開始する（ＳＴ３）。
【００１９】
次に、監視回路５は、ＣＰＵ２から出力されるＧＰＩＯ ＤＩＳＡＢＬＥ信号１３が“１”に変化したか否かを監視する。換言するとＢＩＯＳが正常に起動したか否かを判断する（ＳＴ４）。監視回路５は、ＢＩＯＳの制御の下でＣＰＵ２によりＧＰＩＯ ＤＩＳＡＢＬＥ信号１３が“１”に変化したことを検知することによって、ＢＩＯＳが正常に起動したと判断し（ＳＴ４のＹｅｓ）、上記ウォッチドッグタイマ７による時間のカウントを停止する（ＳＴ５）。しかる後、ＢＩＯＳの制御の下で各デバイスの初期化処理などが実行され、ＯＳが起動される。
【００２０】
一方、監視回路５は、ＳＴ４の処理においてＢＩＯＳが正常に起動したと判断されていない間（ＳＴ４のＮｏ）、ウォッチドッグタイマ７による監視時間ｔｓｅｃのカウントを継続する（ＳＴ６）。ウォッチドッグタイマ７による監視時間ｔｓｅｃのカウントが完了したときには（ＳＴ６のＹｅｓ）、監視回路５は、ＤＵＡＬ ＥＮＡＢＬＥ信号１４を“０”に設定する（ＳＴ７）。このとき、スイッチ回路６は、ＤＵＡＬ ＥＮＡＢＬＥ信号１４が“０”に設定されたことを受けてＲＯＭＣＳ信号１０およびＲＤ信号１１の出力先を出力端子６ｂに切り替える。さらに、監視回路５は、ＳＹＳＴＥＭ ＲＥＳＥＴ信号１５を“１”から“０”に一時的に変化させる（ＳＴ８）。このときＳＹＳＴＥＭ ＲＥＳＥＴ信号１２は、データ処理装置１を構成する各ハードウェアに入力され、システムの再起動が開始される。ＣＰＵ２は、ＳＹＳＴＥＭ ＲＥＳＥＴ信号１５の変化を受けてＣＯＵＮＴＥＲ ＲＥＳＥＴ信号１２を“１”から“０”に一時的に変化させる（ＳＴ９）。このＣＯＵＮＴＥＲ ＲＥＳＥＴ信号１２の変化を受けて、監視回路５は、ウォッチドッグタイマ７による監視時間ｔｓｅｃのカウントを停止する。
【００２１】
システムの再起動が開始された後は、スイッチ回路６がＲＯＭＣＳ信号１０およびＲＤ信号１１の出力先を出力端子６ｂに切り替えているので、ＣＰＵ２から出力されたＲＯＭＣＳ信号１０およびＲＤ信号１１はフラッシュROM４に入力される。そして、監視回路５は、再びＲＤ信号１１に生じる変化を監視する（ＳＴ２）。ＲＤ信号１１にシステムの再起動を開始してからの第１回目の変化が生じた際には（ＳＴ２のＹｅｓ）、監視回路５がウォッチドッグタイマ７を用いて予め定められた監視時間ｔｓｅｃのカウントを開始する（ＳＴ３）。その後、監視回路５によるＢＩＯＳが正常に起動したか否かの判断（ＳＴ４）と監視時間ｔｓｅｃの経過の判断（ＳＴ６）が繰り返され、ＢＩＯＳが正常に起動したと判断されたときには（ＳＴ４のＹｅｓ）、ＢＩＯＳの制御の下でＣＰＵ２によりＧＰＩＯ ＤＩＳＡＢＬＥ信号１３が“１”に設定され（ＳＴ５）、監視回路５は、ウォッチドッグタイマ７による監視時間ｔｓｅｃのカウントを停止する。しかる後、ＢＩＯＳの制御の下で各デバイスの初期化処理などが実行され、ＯＳが起動される。
【００２２】
このように本発明に係るデータ処理装置１は、監視時間が経過してもフラッシュROM３に記憶されたＢＩＯＳが起動できないときには、監視回路５がスイッチ回路６の出力端子を切り替えてＲＯＭＣＳ信号１０およびＲＤ信号１１の出力先をフラッシュROM４に変更する。そして、監視回路５は、ＳＹＳＴＥＭ ＲＥＳＥＴ信号１５を出力して強制的にシステムの再起動を実行する。そのため、フラッシュROM３に格納されたＢＩＯＳに関するレビジョン更新を行っている際に停電が発生するなどして更新が失敗したときでも、データ処理装置１が起動できなくなることはない。また、フラッシュROM４に記憶されたＢＩＯＳを用いてシステムを起動した状態でフラッシュROM３に記憶されたＢＩＯＳを修復することができるので、障害からの復旧が容易となる。
【００２３】
また、一般的に大容量かつデータ読み出しが高速なメモリは高価であるため、１つのフラッシュROMに２つのＢＩＯＳを記憶して冗長化する方式ではＢＩＯＳを冗長化しない方式と同程度のアクセス速度を保つために高価なフラッシュROMを採用することを要する。これに対しデータ処理装置１では、ＢＩＯＳを冗長化しない方式と同一の容量とアクセス速度を有するフラッシュROMを採用すればよいため、冗長化によるコストパフォーマンスの低下を防止することができる。さらに、１つのフラッシュROMに２つのＢＩＯＳを記憶して冗長化する方式では、ＢＩＯＳのデータではなくフラッシュROM自体に不具合が発生した場合にはシステムの起動が不可能であるのに対し、データ処理装置１は２つのフラッシュROM３，３を自動的に切り替えて使用するため、フラッシュROM自体に不具合が発生した場合でも他方のメモリを使用してのシステム起動が可能である。
【００２４】
また、データ処理装置１は、ＢＩＯＳの起動が監視時間経過しても完了しないことに応じてＣＰＵの制御とは独立にフラッシュROM３，４の切り替えおよびシステムの再起動が試行される。そのため、不適切なレビジョン更新を行ったためにＢＩＯＳが正常に起動していない場合などにも他方のフラッシュROMに格納されたＢＩＯＳを用いて確実にシステムを起動することができる。
【００２５】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階においては、その要旨を逸脱しない範囲内にて各構成要素を適宜変形して具体化することができる。
【００２６】
例えば、アドレスバス１０およびデータバス１１は、１９ｂｉｔおよび８ｂｉｔに限定されず、フラッシュROM３，４の記憶容量などに応じて異なるｂｉｔ数のものを用いてもよいことは勿論である。
【００２７】
また、ＣＯＵＮＴＥＲ ＲＥＳＥＴ信号１２、ＧＰＩＯ ＤＩＳＡＢＬＥ信号１３、ＤＵＡＬ ＥＮＡＢＬＥ信号１４、およびＳＹＳＴＥＭ ＲＥＳＥＴ信号１５は、それぞれ“１”，“０”，“１”および“１”のデフォルト値に限定されない。別個異なるデフォルト値を設定する場合、例えばＧＰＩＯ ＤＩＳＡＢＬＥ信号１３が“１”から“０”に変化したことに応じて監視回路５を停止させるようにするなど、各処理との整合性を保つように設定を変更すればよい。
【００２８】
また、監視回路５を起動するタイミングは、データ処理装置１への電源投入またはシステムの再起動開始から初めにＲＤ信号１１が変化したときに限定されない。例えば、電源投入直後に監視回路５を起動してウォッチドッグタイマ７による監視時間ｔｓｅｃのカウントを開始するようにしてもよい。
【００２９】
この他、前記実施形態に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成することができる。例えば、実施形態に示される全体構成要素から幾つかの構成要素を削除してもよい。
本願の出願当初の特許請求の範囲に記載された発明を、以下に付記する。
［１］システムの起動に使用するＢＩＯＳを格納した一対のメモリと、前記一対のメモリのいずれか一方を選択するメモリ選択手段と、このメモリ選択手段が選択したメモリに格納されたＢＩＯＳの起動を試行する制御手段と、監視時間が経過するまでにＢＩＯＳの起動が完了しなかったことに応じ、前記メモリ選択手段に他方のメモリを選択させ、前記制御手段に該メモリに格納されたＢＩＯＳの起動を試行させる監視回路と、を備えてなることを特徴とするデータ処理装置。
［２］前記一対のメモリは、それぞれ共有のアドレスバスとデータバスとで前記制御手段に接続され、前記メモリ選択手段は、前記制御手段から入力されるチップセレクト信号とリード信号との出力先として前記一対のメモリのいずれか一方を選択し、前記選択手段により選択され前記チップセレクト信号と前記リード信号とが入力された前記一対のメモリのいずれか一方は、前記制御手段が前記アドレスバスに出力したアドレスに応じて前記データバスにＢＩＯＳデータを出力し、前記制御手段は、前記データバスに出力されたＢＩＯＳデータを取得してＢＩＯＳの起動を試行することを特徴とする上記［１］に記載のデータ処理装置。
［３］前記監視回路は、前記制御手段がＢＩＯＳの起動を試行する際、初めに前記リード信号の変化を検知して監視時間の計時を開始し、次に前記制御手段から入力される汎用ＩＯ信号の変化を検知して監視時間の計時を停止することを特徴とする上記［２］に記載のデータ処理装置。
［４］システムの起動に使用するＢＩＯＳを格納した一対のメモリのいずれか一方を選択する第１のメモリ選択ステップと、この第１のメモリ選択ステップにて選択されたメモリに格納されたＢＩＯＳの起動を試行する起動ステップと、監視時間が経過するまでにシステムの起動が完了しなかったことに応じ、前記一対のメモリから他方のメモリを選択する第２のメモリ選択ステップと、この第２のメモリ選択ステップにて選択されたメモリに格納されたＢＩＯＳの起動を試行する再起動ステップと、を備えてなることを特徴とするデータ処理装置の起動方法。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態におけるデータ処理装置の要部構成を示す模式図。
【図２】同実施形態におけるシステム起動を説明するための流れ図。
【図３】同実施形態においてシステム起動が正常に終了した場合における各信号の動作波形を示す模式図。
【図４】同実施形態においてシステム起動に異常が発生した場合における各信号の動作波形を示す模式図。
【図５】従来のＢＩＯＳへのアクセス方法について説明するための図。
【符号の説明】
【００３１】
１…データ処理装置、２…ＣＰＵ、３，４…フラッシュROM、５…監視回路、６…スイッチ回路、７…ウォッチドッグタイマ、１０…アドレスバス、１１…データバス
【図１】
0004871907.tif 000002
【図２】
0004871907.tif 000003
【図３】
0004871907.tif 000004
【図４】
0004871907.tif 000005
【図５】
0004871907.tif 000006