(57)【要約】【課題】不揮発性記憶装置に格納されているデータから初期起動を確実に行うことのできる情報処理システムを提供すること。【解決手段】は、システムを起動するための第１のプログラム及び第１のプログラムの複製を記憶した不揮発性の第１の記憶装置と、複数の第１のプログラムが転送される揮発性の第２の記憶装置と、第１のプログラムを実行するための第２のプログラムを記憶する不揮発性の第３の記憶装置と、第１のプログラムを実行するＣＰＵとを備える。第２のプログラムには、第１の記憶装置から第２の記憶装置に複数の第１のプログラムを転送し、第２の記憶装置に転送された複数の第１のプログラムの内容を比較し、複数の第１のプログラムの内容に不一致があれば、複数の第１のプログラムの中から多数決によって正常プログラムを判定する命令が含まれる。ＣＰＵは、正常プログラムと判定された第１のプログラムを実行してシステムの初期起動を行う。【選択図】図１
2009187199.tif 000002
【特許請求の範囲】
【請求項１】
システムを起動するための第１のプログラム及び前記第１のプログラムの複製をそれぞれ異なるブロックに記憶した不揮発性の第１の記憶装置と、
前記複数の第１のプログラムが転送される揮発性の第２の記憶装置と、
前記第１のプログラムを実行するための第２のプログラムを記憶する不揮発性の第３の記憶装置と、
前記第１のプログラムを実行するＣＰＵと、
を備えたことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記第２のプログラムには、
前記第１の記憶装置から前記第２の記憶装置に前記複数の第１のプログラムを転送し、
前記第２の記憶装置に転送された前記複数の第１のプログラムの内容を比較し、
前記複数の第１のプログラムの内容に不一致があれば、前記複数の第１のプログラムの中から多数決によって正常プログラムを判定する命令が含まれ、
前記ＣＰＵは、前記正常プログラムと判定された第１のプログラムを実行してシステムの初期起動を行うことを特徴とする情報処理システム。
【請求項３】
請求項２に記載の情報処理システムであって、
前記第１のプログラムには、前記複数の第１のプログラムの内容を比較する回数を決定する判定値が含まれ、
前記ＣＰＵは、前記判定値に従って前記命令を行うことを特徴とする情報処理システム。
【請求項４】
請求項２に記載の情報処理システムであって、
前記第１の記憶装置に前記第１のプログラム又は前記第１のプログラムの複製が記憶された領域が不良ブロックである場合、当該不良ブロックを含む領域に記憶されたプログラムは、前記複数の第１のプログラムの内容の比較には使用されないことを特徴とする情報処理システム。
【請求項５】
請求項２に記載の情報処理システムであって、
前記第１のプログラムの更新が行なわれる際、前記第１のプログラムの更新プログラムを前記第１のプログラムが記憶された領域に上書きし、前記更新プログラムの複製を前記第１のプログラムの複製が記憶された領域に上書きし、
前記第１のプログラム又は前記第１のプログラムの複製が記憶された領域に不良ブロックがある場合には、前記第１の記憶装置の予め用意された予備領域に前記更新プログラム又は前記更新プログラムの複製を書き込むことを特徴とする情報処理システム。
【請求項６】
請求項２に記載の情報処理システムであって、
前記ＣＰＵは、前記第１のプログラムの実行に成功した後、前記複数の第１のプログラムの内容に不一致があった箇所で誤りと判定された領域を、正常と判定されたデータで上書きすることを特徴とする情報処理システム。
【請求項７】
システムを起動するための第１のプログラム及び前記第１のプログラムの複製をそれぞれ異なるブロックに記憶した不揮発性の第１の記憶装置と、
前記複数の第１のプログラムが転送される揮発性の第２の記憶装置と、
前記第１のプログラムを実行するための第２のプログラムを記憶する不揮発性の第３の記憶装置と、
前記第１のプログラム及び前記第２のプログラムを実行するＣＰＵと、
前記第１のプログラムの誤りを訂正するプログラム訂正回路と、
を備えたことを特徴とする情報処理システム。
【請求項８】
請求項７に記載の情報処理システムであって、
前記プログラム訂正回路は、
前記第２の記憶装置に転送された前記複数の第１のプログラムの内容を比較し、
前記複数の第１のプログラムの内容に不一致があれば、前記複数の第１のプログラムの中から多数決によって正常プログラムを判定し、
前記正常プログラムと判定された第１のプログラムを前記第２の記憶装置に書き戻すことを特徴とする情報処理システム。
【請求項９】
請求項８に記載の情報処理システムであって、
前記第２のプログラムには、
前記第１の記憶装置から前記第２の記憶装置に前記複数の第１のプログラムを転送し、
前記プログラム訂正回路を起動する命令が含まれ、
前記ＣＰＵは、前記プログラム訂正回路によって前記正常プログラムと判定された第１のプログラムを実行してシステムの初期起動を行うことを特徴とする情報処理システム。
【請求項１０】
請求項９に記載の情報処理システムであって、
前記第１のプログラムには、前記複数の第１のプログラムの内容を比較する回数を決定する判定値が含まれ、
前記ＣＰＵは、前記判定値に従って前記命令を行い、
前記プログラム訂正回路は、前記判定値に従って、前記複数の第１のプログラムの内容の比較及び多数決による判定を行うことを特徴とする情報処理システム。
【請求項１１】
請求項９に記載の情報処理システムであって、
前記第１の記憶装置に前記第１のプログラム又は前記第１のプログラムの複製が記憶された領域が不良ブロックである場合、当該不良ブロックを含む領域に記憶されたプログラムは、前記複数の第１のプログラムの内容の比較には使用されないことを特徴とする情報処理システム。
【請求項１２】
請求項９に記載の情報処理システムであって、
前記第１のプログラムの更新が行なわれる際、前記第１のプログラムの更新プログラムを前記第１のプログラムが記憶された領域に上書きし、前記更新プログラムの複製を前記第１のプログラムの複製が記憶された領域に上書きし、
前記第１のプログラム又は前記第１のプログラムの複製が記憶された領域に不良ブロックがある場合には、前記第１の記憶装置の予め用意された予備領域に前記更新プログラム又は前記更新プログラムの複製を書き込むことを特徴とする情報処理システム。
【請求項１３】
請求項９に記載の情報処理システムであって、
前記ＣＰＵは、前記第１のプログラムの実行に成功した後、前記複数の第１のプログラムの内容に不一致があった箇所で誤りと判定された領域を、正常と判定されたデータで上書きすることを特徴とする情報処理システム。
【請求項１４】
システムの起動時間情報を記憶する不揮発性の記憶装置及びＣＰＵを備えた情報処理システムが行う情報処理方法であって、
前記ＣＰＵは、
システム起動中に前記起動時間情報の更新を行い、
前記起動時間が指定されたしきい値を超えたとき、前記不揮発性の記憶装置に記憶されている内容と同一の内容で上書きすることを特徴とする情報処理方法。
【請求項１５】
請求項１４に記載の情報処理方法であって、
前記不揮発性の記憶装置に記憶されている内容が、前記ＣＰＵによって実行されるプログラムであることを特徴とする情報処理方法。
【請求項１６】
請求項１４に記載の情報処理方法であって、
前記起動時間情報は、システムの起動回数情報であることを特徴とする情報処理方法。
【請求項１７】
請求項１４に記載の情報処理方法であって、
前記起動時間情報は、システムが起動している実時間であることを特徴とする情報処理方法。
【請求項１８】
システムの起動時間情報を記憶する不揮発性の記憶装置と、ＣＰＵと、システムを使用するユーザにプログラムのリフレッシュ実行を通知する通知手段と、を備える情報処理システムの情報処理方法であって、
前記ＣＰＵは、
前記通知に対して前記ユーザが許可した場合、システム起動中に前記起動時間情報の更新を行い、
前記起動時間が指定されたしきい値を超えたとき、前記不揮発性の記憶装置に記憶されている内容と同一の内容で上書きすることを特徴とする情報処理方法。
【請求項１９】
請求項１８に記載の情報処理方法であって、
前記不揮発性の記憶装置に記憶されている内容が、前記ＣＰＵによって実行されるプログラムであることを特徴とする情報処理方法。
【請求項２０】
請求項１８に記載の情報処理方法であって、
前記起動時間情報は、システムの起動回数情報であることを特徴とする情報処理方法。
【請求項２１】
請求項１８に記載の情報処理方法であって、
前記起動時間情報は、システムが起動している実時間であることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶装置を有する情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
ＮＯＲ型フラッシュメモリやＮＡＮＤ型フラッシュメモリが広く普及している。ＮＡＮＤ型フラッシュメモリは、ＮＯＲ型フラッシュメモリに対して集積度が高く、ビット単価が安いといったメリットがある。一方、ＮＡＮＤ型フラッシュメモリは、先天的及び後天的に、データの読み書きを正常に行うことのできない不良ブロックが発生する可能性があり、また、長期の使用により内部に保持した値が変化してしまうビットエラーが発生する可能性もあるといったデータの信頼性におけるデメリットがある。このため、ＮＡＮＤ型フラッシュメモリは、高い信頼性を必要とするプログラム領域ではなく、データ領域のためのメモリとして主に使用されている。
【０００３】
しかし、近年では、ＮＡＮＤ型フラッシュメモリのメリットを活かして、より安価なシステムを構築するために、ＮＡＮＤ型フラッシュメモリをプログラム格納領域として使用するためのデータの高信頼性化技術が知られている。この技術では、ＣＰＵがシステムの初期起動のためのプログラムをＮＡＮＤ型フラッシュメモリからランダムアクセス可能な記憶装置に転送し、プログラムを実行する。
【０００４】
ＮＡＮＤ型フラッシュメモリのデータの信頼性における課題に対しては、不良ブロック情報を外部の不揮発性記憶装置又はＮＡＮＤ型フラッシュメモリに多重に保有するなどして、不良ブロック情報の信頼性向上を図っている（特許文献１参照）。また、ビットエラーに対しては、検査符号を用いた誤り検出処理及び誤り訂正処理によりデータの信頼性向上を図っている（特許文献２、特許文献３参照）。
【０００５】
【特許文献１】特開２００６−２７７３９５号公報
【特許文献２】特開２００５−１９０２０１号公報
【特許文献３】特開２００６−３２３７３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載の方法によれば、ＣＰＵが不良ブロックからシステムを初期起動することは回避できるが、ビットエラーを回避することができない。また、特許文献２又は特許文献３に記載の方法では、ＣＰＵがＮＡＮＤ型フラッシュメモリからデータを読み出すためのローダプログラムに、誤り訂正を行うための命令が含まれていなければならない。システムの初期起動時には、ＮＡＮＤ型フラッシュメモリの誤り訂正やデータ管理を行うファイルシステムは起動しておらず、また、誤り訂正を初期起動時に行うと起動時間が長くなるため、ＣＰＵがＮＡＮＤ型フラッシュメモリからデータを読み出すためのローダプログラムに、誤り訂正を行うための命令を含めることは現実的ではない。
【０００７】
さらに、ローダプログラムは変更不可能なマスクＲＯＭで設計されることが多く、ＮＡＮＤ型フラッシュメモリの世代が変わった場合に対応不可能になる可能性がある。
【０００８】
本発明の目的は、不揮発性記憶装置に格納されているデータから初期起動を確実に行うことのできる情報処理システム及び情報処理方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、システムを起動するための第１のプログラム及び前記第１のプログラムの複製をそれぞれ異なるブロックに記憶した不揮発性の第１の記憶装置と、前記複数の第１のプログラムが転送される揮発性の第２の記憶装置と、前記第１のプログラムを実行するための第２のプログラムを記憶する不揮発性の第３の記憶装置と、前記第１のプログラムを実行するＣＰＵと、を備えた情報処理システムを提供する。
【００１０】
上記情報処理システムでは、前記第２のプログラムには、前記第１の記憶装置から前記第２の記憶装置に前記複数の第１のプログラムを転送し、前記第２の記憶装置に転送された前記複数の第１のプログラムの内容を比較し、前記複数の第１のプログラムの内容に不一致があれば、前記複数の第１のプログラムの中から多数決によって正常プログラムを判定する命令が含まれ、前記ＣＰＵは、前記正常プログラムと判定された第１のプログラムを実行してシステムの初期起動を行う。
【００１１】
上記情報処理システムでは、前記第１のプログラムには、前記複数の第１のプログラムの内容を比較する回数を決定する判定値が含まれ、前記ＣＰＵは、前記判定値に従って前記命令を行う。
【００１２】
上記情報処理システムでは、前記第１の記憶装置に前記第１のプログラム又は前記第１のプログラムの複製が記憶された領域が不良ブロックである場合、当該不良ブロックを含む領域に記憶されたプログラムは、前記複数の第１のプログラムの内容の比較には使用されない。
【００１３】
上記情報処理システムでは、前記第１のプログラムの更新が行なわれる際、前記第１のプログラムの更新プログラムを前記第１のプログラムが記憶された領域に上書きし、前記更新プログラムの複製を前記第１のプログラムの複製が記憶された領域に上書きし、前記第１のプログラム又は前記第１のプログラムの複製が記憶された領域に不良ブロックがある場合には、前記第１の記憶装置の予め用意された予備領域に前記更新プログラム又は前記更新プログラムの複製を書き込む。
【００１４】
上記情報処理システムでは、前記ＣＰＵは、前記第１のプログラムの実行に成功した後、前記複数の第１のプログラムの内容に不一致があった箇所で誤りと判定された領域を、正常と判定されたデータで上書きする。
【００１５】
本発明は、システムを起動するための第１のプログラム及び前記第１のプログラムの複製をそれぞれ異なるブロックに記憶した不揮発性の第１の記憶装置と、前記複数の第１のプログラムが転送される揮発性の第２の記憶装置と、前記第１のプログラムを実行するための第２のプログラムを記憶する不揮発性の第３の記憶装置と、前記第１のプログラム及び前記第２のプログラムを実行するＣＰＵと、前記第１のプログラムの誤りを訂正するプログラム訂正回路と、を備えた情報処理システムを提供する。
【００１６】
上記情報処理システムでは、前記プログラム訂正回路は、前記第２の記憶装置に転送された前記複数の第１のプログラムの内容を比較し、前記複数の第１のプログラムの内容に不一致があれば、前記複数の第１のプログラムの中から多数決によって正常プログラムを判定し、前記正常プログラムと判定された第１のプログラムを前記第２の記憶装置に書き戻す。
【００１７】
上記情報処理システムでは、前記第２のプログラムには、前記第１の記憶装置から前記第２の記憶装置に前記複数の第１のプログラムを転送し、前記プログラム訂正回路を起動する命令が含まれ、前記ＣＰＵは、前記プログラム訂正回路によって前記正常プログラムと判定された第１のプログラムを実行してシステムの初期起動を行う。
【００１８】
上記情報処理システムでは、前記第１のプログラムには、前記複数の第１のプログラムの内容を比較する回数を決定する判定値が含まれ、前記ＣＰＵは、前記判定値に従って前記命令を行い、前記プログラム訂正回路は、前記判定値に従って、前記複数の第１のプログラムの内容の比較及び多数決による判定を行う。
【００１９】
上記情報処理システムでは、前記第１の記憶装置に前記第１のプログラム又は前記第１のプログラムの複製が記憶された領域が不良ブロックである場合、当該不良ブロックを含む領域に記憶されたプログラムは、前記複数の第１のプログラムの内容の比較には使用されない。
【００２０】
上記情報処理システムでは、前記第１のプログラムの更新が行なわれる際、前記第１のプログラムの更新プログラムを前記第１のプログラムが記憶された領域に上書きし、前記更新プログラムの複製を前記第１のプログラムの複製が記憶された領域に上書きし、前記第１のプログラム又は前記第１のプログラムの複製が記憶された領域に不良ブロックがある場合には、前記第１の記憶装置の予め用意された予備領域に前記更新プログラム又は前記更新プログラムの複製を書き込む。
【００２１】
上記情報処理システムでは、前記ＣＰＵは、前記第１のプログラムの実行に成功した後、前記複数の第１のプログラムの内容に不一致があった箇所で誤りと判定された領域を、正常と判定されたデータで上書きする。
【００２２】
本発明は、システムの起動時間情報を記憶する不揮発性の記憶装置及びＣＰＵを備えた情報処理システムが行う情報処理方法であって、前記ＣＰＵは、システム起動中に前記起動時間情報の更新を行い、前記起動時間が指定されたしきい値を超えたとき、前記不揮発性の記憶装置に記憶されている内容と同一の内容で上書きする情報処理方法を提供する。
【００２３】
上記情報処理方法では、前記不揮発性の記憶装置に記憶されている内容が、前記ＣＰＵによって実行されるプログラムである。
【００２４】
上記情報処理方法では、前記起動時間情報は、システムの起動回数情報である。
【００２５】
上記情報処理方法では、前記起動時間情報は、システムが起動している実時間である。
【００２６】
本発明は、システムの起動時間情報を記憶する不揮発性の記憶装置と、ＣＰＵと、システムを使用するユーザにプログラムのリフレッシュ実行を通知する通知手段と、を備える情報処理システムの情報処理方法であって、前記ＣＰＵは、前記通知に対して前記ユーザが許可した場合、システム起動中に前記起動時間情報の更新を行い、前記起動時間が指定されたしきい値を超えたとき、前記不揮発性の記憶装置に記憶されている内容と同一の内容で上書きする情報処理方法を提供する。
【００２７】
上記情報処理方法では、前記不揮発性の記憶装置に記憶されている内容が、前記ＣＰＵによって実行されるプログラムである。
【００２８】
上記情報処理方法では、前記起動時間情報は、システムの起動回数情報である。
【００２９】
上記情報処理方法では、前記起動時間情報は、システムが起動している実時間である。
【発明の効果】
【００３０】
本発明に係る情報処理システム及び情報処理方法によれば、不揮発性記憶装置に格納さ
れているデータから初期起動を確実に行うことができる。また、エラービットの訂正が簡潔であるため、不揮発性記憶装置の世代変化にも対応可能である。さらに、ビットエラーの発生頻度を抑えることで、システムの初期起動時間を短縮できる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下説明する実施形態では、ＮＡＮＤ型フラッシュメモリ等のように、先天的及び後天的にデータの読み書きを正常に行うことのできない不良ブロックが発生する可能性があり、また、長期の使用により内部に保持した値が変化してしまうビットエラーが発生する可能性もある不揮発性記憶装置から初期起動を行う際、不良ブロックを回避しビットエラーを訂正することで、システムの初期起動を正常かつ安全に可能な情報処理システム及び情報処理方法について説明する。
【００３２】
（第１の実施形態）
図１は、第１の実施形態の情報処理システムを示すブロック図である。図１に示すように、第１の実施形態の情報処理システム１は、ＣＰＵ１０１と、第１のプログラム群１１１を記憶する不揮発性の第１の記憶装置１１０と、揮発性の第２の記憶装置１２０と、第２のプログラム１３１を記憶する不揮発性の第３の記憶装置１３０とを備える。なお、ＣＰＵ１０１及び第３の記憶装置１３０は、ＬＳＩ１００内部に設けられる。
【００３３】
図２は、第１の記憶装置１１０に格納されるプログラムの配置例を示す図である。図２に示すように、第１の記憶装置１１０内には、第１のプログラム群１１１として、同じ内容のプログラムである第１のプログラム１１２，１１３，１１４が異なるブロックに格納されている。
【００３４】
図３は、第１の実施形態のシステム初期起動に関するＣＰＵの処理を示すフローチャートである。なお、「多数決判定数」とは、多数決判定に使用するプログラムの数である。本実施形態では、多数決判定数が３に設定されている。
【００３５】
ＣＰＵ１０１は、システムリセット１０２の解除によって第３の記憶装置１３０にアクセスし、第２のプログラム１３１を実行する。次に、ＣＰＵ１０１は、第１の記憶装置１１０から第１のプログラム群１１１を読み出し、第２の記憶装置１２０に転送する。次に、ＣＰＵ１０１は、第１のプログラム群１１１に含まれる第１のプログラム１１２〜１１４の内容をそれぞれ比較する。なお、当該比較は、１，２，４，８バイト等の単位で行われる。ＣＰＵ１０１は、比較の結果、不一致が存在した場合には多数決をとり、一致した数の多い方を正常データとして判定する。ＣＰＵ１０１は、正常と判定したデータを第２の記憶装置１２０に書き戻す。ＣＰＵ１０１は、第１のプログラム群１１１の内容を全て比較すると、正常と判定したデータが書き戻されている第２の記憶装置１２０にアクセスして、システムの初期起動を実行する。
【００３６】
（第２の実施形態）
図４は、第２の実施形態の情報処理システムを示すブロック図である。第１の記憶装置１１０には、多数決判定数の初期値よりも多い第１のプログラムを含む第１のプログラム群１５１が格納されている。図５は、第１の記憶装置１１０に格納されるプログラムの配置例を示す図である。第１のプログラム群１５１として、同じ内容のプログラムである第１のプログラム１５２〜１５６が異なるブロックに格納されている。第１のプログラム１５２〜１５６には、多数決判定数を示すパラメータ１６２〜１６６がそれぞれ格納されている。なお、本実施形態では、多数決判定数が変更される。
【００３７】
図６は、第２の実施形態のシステム初期起動に関するＣＰＵの処理を示すフローチャー
トである。本実施形態では、例えば、多数決判定数の初期値が３に設定され、５に変更される。
【００３８】
ＣＰＵ１０１は、システムリセット１０２の解除によって第３の記憶装置１３０にアクセスし、第２のプログラム１３１を実行する。次に、ＣＰＵ１０１は、第１の記憶装置１１０から第１のプログラム群１５１を読み出し、パラメータ１６２〜１６４を比較する。一致の場合は、パラメータが示す数を多数決判定数とし、不一致の場合は、多数決によって多数決判定数を決定する。
【００３９】
ＣＰＵ１０１は、多数決判定数に従い、第１のプログラム１５２〜１５６を第２の記憶装置１２０に転送する。次に、ＣＰＵ１０１は、第１のプログラム１５２〜１５６の内容をそれぞれ比較する。なお、当該比較は、１，２，４，８バイト等の単位で行われる。ＣＰＵ１０１は、比較の結果、不一致が存在した場合には多数決をとり、一致した数の多い方を正常データとして判定する。ＣＰＵ１０１は、正常と判定したデータを第２の記憶装置１２０に書き戻す。ＣＰＵ１０１は、第１のプログラム群１５１の内容を全て比較すると、正常と判定したデータが書き戻されている第２の記憶装置１２０にアクセスして、システムの初期起動を実行する。
【００４０】
図７は、図６に示すフローチャートにおいて不良ブロックが存在するときのＣＰＵの処理を示すフローチャートである。図７に示すように、第１の記憶装置１１０内の第１のプログラム群１５１に不良ブロックが存在した場合、ＣＰＵ１０１は、第１の記憶装置１１０から第２の記憶装置１２０へのデータ転送を行わない。さらに、不良ブロックが存在した場合は、多数決判定数から不良ブロックの発生数を減算した数を多数決判定数とする。
【００４１】
（第３の実施形態）
図８は、第３の実施形態の情報処理システムを示すブロック図である。第３の実施形態では、第１のプログラム群１１１を更新する。図８に示すように、第３の実施形態の情報処理システム１は、ＣＰＵ１０１と、第１のプログラム群１１１及び更新処理を行うための第３のプログラム１８１を記憶する第１の記憶装置１１０と、第２の記憶装置１２０と、第２のプログラム１３１を記憶する第３の記憶装置１３０と、更新プログラム１９１及び更新要求データ１９２を記憶する第４の記憶装置１９０と、転送装置１９３とを備える。
【００４２】
第１のプログラム群１１１の更新を行うトリガとなるものには、情報処理システム１の外部からのプログラム更新要求１０３や第４の記憶装置１９０内の更新要求データ１９２がある。転送装置１９３は、第４の記憶装置１９０からデータを読み出し、第１の記憶装置１１０にデータを転送する機能を持つ。また、転送装置１９３は、第４の記憶装置１９０からデータを読み出し、第２の記憶装置１２０にデータを転送する機能を持つ。また、転送装置１９３は、第２の記憶装置１２０からデータを読み出し、第１の記憶装置１１０にデータを転送する機能を持つ。
【００４３】
図９は、ＣＰＵが第１のプログラム群の更新を行うときのＣＰＵの処理を示すフローチャートである。ＣＰＵ１０１は、プログラム更新要求１０３又は更新要求データ１９２を検出すると、第１のプログラム群１１１の更新処理を行う。ＣＰＵ１０１は、第４の記憶装置１９０から更新プログラム１９１を読み出し、第１の記憶装置１１０に転送する。このとき、更新プログラム１９１の転送は、第２の記憶装置１２０を中継しても良い。また、更新プログラム１９１の転送は、転送装置１９３が行なっても良い。
【００４４】
ＣＰＵ１０１は、第１の記憶装置１１０に転送したデータが正常に書き込みを行えたかを検証する。このとき、書き込みを行なったブロックが不良ブロックとなった場合には、
該当ブロックに不良ブロック情報を書き込み、予備領域へプログラムの再書き込みを行う。このときも同様に、ＣＰＵ１０１は書き込みの検証を行う。ＣＰＵ１０１は、多数決判定数分のプログラムの書き込みを終了すると、プログラムの更新処理を終了する。
【００４５】
また、ＣＰＵ１０１は、図３、図６又は図７におけるシステムの初期起動手順の中で、データ比較時に不一致が発生した場合に、初期起動に成功した後、第２の記憶装置１２０上の初期起動に成功したプログラムを用いて、第１の記憶装置１１０の第１のプログラム群１１１の上書きを実行する。
【００４６】
（第４の実施形態）
図１０は、第４の実施形態の情報処理システムを示すブロック図である。図１０に示すように、第４の実施形態の情報処理システム２は、ＣＰＵ１０１と、第１のプログラム群１１１を記憶する第１の記憶装置１１０と、第２の記憶装置１２０と、第２のプログラム２３１を記憶する第３の記憶装置１３０と、プログラム１１１の内容をチェックしてエラーがあれば訂正を行うプログラム訂正回路２０１とを備える。なお、ＣＰＵ１０１及び第３の記憶装置１３０は、ＬＳＩ１００内部に設けられる。
【００４７】
図１１は、第１の記憶装置１１０に格納されるプログラムの配置例を示す図である。図１１に示すように、第１の記憶装置１１０内には、第１のプログラム群１１１として、同じ内容のプログラムである第１のプログラム１１２，１１３，１１４が異なるブロックに格納されている。
【００４８】
図１２は、プログラム訂正回路２０１を示すブロック図である。プログラム訂正回路２０１は、データの比較機能、多数決によるデータの訂正機能及びデータの転送制御機能を主に有する。また、プログラム訂正回路２０１は、ＣＰＵ１０１からの指示に応じて、データ転送制御や多数決判定数の変更を行うことができる。
【００４９】
図１３は、第４の実施形態のシステム初期起動に関するＣＰＵ及びプログラム訂正回路の各処理を示すフローチャートである。なお、本実施形態では、多数決判定数が３に設定されている。
【００５０】
ＣＰＵ１０１は、システムリセット１０２の解除によって第３の記憶装置１３０にアクセスし、第２のプログラム２３１を実行する。次に、ＣＰＵ１０１は、プログラム訂正回路２０１を起動する。プログラム訂正回路２０１は、第１の記憶装置１１０から第１のプログラム群１１１を読み出し、第２の記憶装置１２０に転送する。プログラム訂正回路２０１は、第１のプログラム群１１１に含まれる第１のプログラム１１２〜１１４の内容をそれぞれ比較する。プログラム訂正回路２０１は、比較の結果、不一致が存在した場合には多数決をとり、一致した数の多い方を正常データとして判定する。プログラム訂正回路２０１は、正常と判定したデータを第２の記憶装置１２０に書き戻す。プログラム訂正回路２０１は、第１のプログラム群１１１の内容を全て比較すると、ＣＰＵ１０１へデータ転送完了の通知を行う。ＣＰＵ１０１は、正常と判定されたデータが書き戻されている第２の記憶装置１２０の領域にアクセスして、システムの初期起動を実行する。
【００５１】
（第５の実施形態）
図１４は、第５の実施形態の情報処理システムを示すブロック図である。第５の実施形態の情報処理システム２は、第１の記憶装置１１０に多数決判定数の初期値よりも多い第１のプログラムを含む第１のプログラム群１５１が格納されている点を除いて、第４の実施形態と同様である。なお、本実施形態でも、多数決判定数が変更される。
【００５２】
図１５は、第５の実施形態のシステム初期起動に関するＣＰＵ及びプログラム訂正回路
の各処理を示すフローチャートである。本実施形態では、例えば、多数決判定数の初期値が３に設定され、５に変更される。
【００５３】
ＣＰＵ１０１は、システムリセット１０２の解除によって第３の記憶装置１３０にアクセスし、第２のプログラム２３１を実行する。次に、ＣＰＵ１０１は、第１の記憶装置１１０から第１のプログラム群１５１を読み出し、パラメータ１６２〜１６４を比較する。一致の場合は、パラメータが示す数を多数決判定数とし、不一致の場合は、多数決によって多数決判定数を決定する。
【００５４】
次に、ＣＰＵ１０１は、プログラム訂正回路２０１を起動する。このときＣＰＵ１０１は、プログラム訂正回路２０１に多数決判定数やデータ転送制御等の設定を行う。プログラム訂正回路２０１は、第１のプログラム群１５１に含まれる第１のプログラム１５２〜１５６を第２の記憶装置１２０に転送する。プログラム訂正回路２０１は、第１のプログラム１５２〜１５６の内容をそれぞれ比較する。プログラム訂正回路２０１は、比較の結果、不一致が存在した場合には多数決をとり、一致した数の多い方を正常データとして判定する。プログラム訂正回路２０１は、正常と判定したデータを第２の記憶装置１２０に書き戻す。プログラム訂正回路２０１は、第１のプログラム群１５１の内容を全て比較すると、ＣＰＵ１０１へデータ転送完了の通知を行う。ＣＰＵ１０１は、正常と判定されたデータが書き戻されている第２の記憶装置１２０の領域にアクセスして、システムの初期起動を実行する。
【００５５】
図１６は、図１５に示すフローチャートにおいて不良ブロックが存在するときのＣＰＵ及びプログラム訂正回路の各処理を示すフローチャートである。図１６に示すように、第１の記憶装置１１０内の第１のプログラム群１５１に不良ブロックが存在した場合、ＣＰＵ１０１は、プログラム訂正回路２０１に不良ブロックに該当するプログラムの転送設定を行わない。さらに、不良ブロックが存在した場合は、多数決判定数から不良ブロックの発生数を減算した数を多数決判定数として、プログラム訂正回路２０１に設定する。
【００５６】
（第６の実施形態）
図１７は、第６の実施形態の情報処理システムを示すブロック図である。第６の実施形態の情報処理システム２は、第３の実施形態の情報処理システム１が有する構成要素に加えて、第４の実施形態で説明したプログラム訂正回路２０１を備える。
【００５７】
ＣＰＵ１０１が第１のプログラム群１１１の更新を行うときのＣＰＵ１０１の処理は、第３の実施形態で図９を参照して行った説明と同様である。ＣＰＵ１０１は、図１３、図１５又は図１６におけるシステムの初期起動手順の中で、データ比較時に不一致が発生した場合に、初期起動に成功した後、第２の記憶装置１２０上の初期起動に成功したプログラムを用いて、第１の記憶装置１１０の第１のプログラム群１１１の上書きを実行する。
【００５８】
（第７の実施形態）
図１８は、第７の実施形態の情報処理システムを示すブロック図である。図１８に示すように、第７の実施形態の情報処理システム３は、ＣＰＵ３０１と、起動時間を計測可能なタイマ３０２と、起動時間との比較に使用するしきい値３０３と、起動時間情報３１１を記憶する第１の記憶装置３１０と、第２の記憶装置３２０とを備える。
【００５９】
図１９は、第７の実施形態の情報処理システム３が行う情報処理を示すフローチャートである。ＣＰＵ３０１は、起動後に第１の記憶装置３１０から起動時間情報３１１を読み出す。次に、ＣＰＵ３０１は、起動時間情報３１１とＣＰＵ３０１の有するしきい値３０３とを比較し、起動時間情報３１１の方が小さければ、何も行わず次の処理に移行し、起動時間情報３１１の方が大きければ、第１の記憶装置３１０に格納されているデータ３１
２を読み出す。さらに、ＣＰＵ３０１は、読み出したデータ３１２のエラー訂正処理を行い、訂正後のデータを第１の記憶装置３１０上のデータ３１２が記憶されていた同じ領域へ書き戻し、次の処理に移行する。次に、ＣＰＵ３０１は、起動時間情報３１１を更新し、第１の記憶装置３１０へ書き戻す。このとき、起動時間情報３１１がしきい値３０３を超えた場合は、前述の処理を繰り返す。
【００６０】
図２０は、第７の実施形態の情報処理システム３が行う異なる情報処理を示すフローチャートである。図２０に示すフローチャートは、図１９に示したフローチャートと略同様であるが、起動時間情報３１１を更新した後の処理が異なる。すなわち、ＣＰＵ３０１は、起動時間情報３１１を更新し、第１の記憶装置３１０へ書き戻す。このとき、起動時間情報３１１がしきい値３０３を超えていても、処理シーケンスを終了する
【００６１】
（第８の実施形態）
図２１は、第８の実施形態の情報処理システムを示すブロック図である。第８の実施形態では、第１の記憶装置３１０が、図１８に示したデータ３１２の代わりに、ＣＰＵ３０１によって実行されるプログラム３１３を記憶する。
【００６２】
第８の実施形態の情報処理システム３が行う情報処理では、図２２及び図２３に示すように、図２１に示した起動時間情報３１１を起動回数ｎと定義して、ＣＰＵ３０１が初期起動をするたびにｎ＝ｎ＋１の処理を行う。また、図２４及び図２５に示すように、図２１に示した起動時間情報３１１をタイマ３０２で計測したＸ（起動時間の計測時間）の累計Ｔと定義して、ＣＰＵ３０１がＴ＝Ｔ＋Ｘの処理を行っても良い。
【００６３】
（第９の実施形態）
図２６は、第９の実施形態の情報処理システムを示すブロック図である。図２６に示す第９の実施形態の情報処理システム４では、図１８に示した第７の実施形態の情報処理システム３に、ユーザへの通知手段４５０が追加されている。また、ＣＰＵ３０１には、ユーザからの許可情報４５１が入力される。
【００６４】
図２７は、第９の実施形態の情報処理システム４が行う情報処理を示すフローチャートである。ＣＰＵ３０１は、起動後に第１の記憶装置３１０から起動時間情報３１１を読み出す。次に、ＣＰＵ３０１は、起動時間情報３１１とＣＰＵ３０１の有するしきい値３０３とを比較し、起動時間情報３１１の方が小さければ、何も行わず次の処理に移行し、起動時間情報３１１の方が大きければ、通知手段４５０を通じて、第１の記憶装置３１０の書き換え確認をユーザに対して行う。ＣＰＵ３０１は、ユーザからの許可情報４５１を受け取ると、第１の記憶装置３１０に格納されているデータ３１２を読み出す。さらに、ＣＰＵ３０１は、読み出したデータ３１２のエラー訂正処理を行い、訂正後のデータを第１の記憶装置３１０上のデータ３１２が記憶されていた同じ領域へ書き戻し、次の処理に移行する。一方、ＣＰＵ３０１は、ユーザからの許可情報４５１を得られなかったときは、何も行わず次の処理に移行する。次に、ＣＰＵ３０１は、起動時間情報３１１を更新し、第１の記憶装置３１０へ書き戻す。このとき、起動時間情報３１１がしきい値３０３を超えていても、処理シーケンスを終了する
【００６５】
（第１０の実施形態）
図２８は、第１０の実施形態の情報処理システムを示すブロック図である。第１０の実施形態では、第１の記憶装置３１０が、図２６に示したデータ３１２の代わりに、ＣＰＵ３０１によって実行されるプログラム３１３を記憶する。
【００６６】
第１０の実施形態の情報処理システム４が行う情報処理では、図２９に示すように、図２８に示した起動時間情報３１１を起動回数ｎと定義して、ＣＰＵ３０１が初期起動をす
るたびにｎ＝ｎ＋１の処理を行う。また、図３０に示すように、図２８に示した起動時間情報３１１をタイマ３０２で計測したＸ（起動時間の計測時間）の累計Ｔと定義して、ＣＰＵ３０１がＴ＝Ｔ＋Ｘの処理を行っても良い。
【００６７】
以上説明した実施形態の情報処理システム及び情報処理方法によれば、第１のプログラム１１１及びその複製が第１の記憶装置１１０に格納されており、それぞれが比較され多数決によって正常なプログラムが判定されるため、システムの初期起動を正常かつ安全に行うことができる。また、不良ブロックを回避したりビットエラーを訂正することによって、より確実にシステムを初期起動することができる。また、エラービットの訂正が簡潔であるため、不揮発性記憶装置の世代変化にも対応可能である。さらに、ビットエラーの発生頻度を抑えることで、システムの初期起動時間を短縮できる。
【産業上の利用可能性】
【００６８】
本発明に係る情報処理システム及び情報処理方法は、パーソナルコンピュータや携帯型情報機器、携帯電話、デジタルカメラ、デジタルビデオカメラ、ゲーム機、デジタルオーディオ機器等のシステムの初期起動が必要な電子機器として有用である。
【図面の簡単な説明】
【００６９】
【図１】第１の実施形態の情報処理システムを示すブロック図
【図２】第１の記憶装置１１０に格納されるプログラムの配置例を示す図
【図３】第１の実施形態のシステム初期起動に関するＣＰＵの処理を示すフローチャート
【図４】第２の実施形態の情報処理システムを示すブロック図
【図５】第１の記憶装置１１０に格納されるプログラムの配置例を示す図
【図６】第２の実施形態のシステム初期起動に関するＣＰＵの処理を示すフローチャート
【図７】図６に示すフローチャートにおいて不良ブロックが存在するときのＣＰＵの処理を示すフローチャート
【図８】第３の実施形態の情報処理システムを示すブロック図
【図９】ＣＰＵが第１のプログラム群の更新を行うときのＣＰＵの処理を示すフローチャート
【図１０】第４の実施形態の情報処理システムを示すブロック図
【図１１】第１の記憶装置１１０に格納されるプログラムの配置例を示す図
【図１２】プログラム訂正回路２０１を示すブロック図
【図１３】第４の実施形態のシステム初期起動に関するＣＰＵ及びプログラム訂正回路の各処理を示すフローチャート
【図１４】第５の実施形態の情報処理システムを示すブロック図
【図１５】第５の実施形態のシステム初期起動に関するＣＰＵ及びプログラム訂正回路の各処理を示すフローチャート
【図１６】図１５に示すフローチャートにおいて不良ブロックが存在するときのＣＰＵ及びプログラム訂正回路の各処理を示すフローチャート
【図１７】第６の実施形態の情報処理システムを示すブロック図
【図１８】第７の実施形態の情報処理システムを示すブロック図
【図１９】第７の実施形態の情報処理システムが行う情報処理を示すフローチャート
【図２０】第７の実施形態の情報処理システムが行う異なる情報処理を示すフローチャート
【図２１】第８の実施形態の情報処理システムを示すブロック図
【図２２】第８の実施形態の情報処理システムが行う情報処理を示すフローチャート
【図２３】第８の実施形態の情報処理システムが行う情報処理を示すフローチャート
【図２４】第８の実施形態の情報処理システムが行う情報処理を示すフローチャート
【図２５】第８の実施形態の情報処理システムが行う情報処理を示すフローチャート
【図２６】第９の実施形態の情報処理システムを示すブロック図
【図２７】第９の実施形態の情報処理システムが行う情報処理を示すフローチャート
【図２８】第１０の実施形態の情報処理システムを示すブロック図
【図２９】第１０の実施形態の情報処理システムが行う情報処理を示すフローチャート
【図３０】第１０の実施形態の情報処理システムが行う情報処理を示すフローチャート
【符号の説明】
【００７０】
１〜４  情報処理システム
１００  ＬＳＩ
１０１、３０１  ＣＰＵ
１１０、３１０  不揮発性の記憶装置
１１１  ＣＰＵが実行可能なプログラム
１２０、３２０  揮発性の記憶装置
１３０  不揮発性の記憶装置
１３１、２３１  ＣＰＵが実行可能なプログラム
２０１  プログラム訂正回路
４５０  ユーザへの通知手段
４５１  ユーザからの許可情報
【図１】
2009187199.tif 000003
【図２】
2009187199.tif 000004
【図３】
2009187199.tif 000005
【図４】
2009187199.tif 000006
【図５】
2009187199.tif 000007
【図６】
2009187199.tif 000008
【図７】
2009187199.tif 000009
【図８】
2009187199.tif 000010
【図９】
2009187199.tif 000011
【図１０】
2009187199.tif 000012
【図１１】
2009187199.tif 000013
【図１２】
2009187199.tif 000014
【図１３】
2009187199.tif 000015
【図１４】
2009187199.tif 000016
【図１５】
2009187199.tif 000017
【図１６】
2009187199.tif 000018
【図１７】
2009187199.tif 000019
【図１８】
2009187199.tif 000020
【図１９】
2009187199.tif 000021
【図２０】
2009187199.tif 000022
【図２１】
2009187199.tif 000023
【図２２】
2009187199.tif 000024
【図２３】
2009187199.tif 000025
【図２４】
2009187199.tif 000026
【図２５】
2009187199.tif 000027
【図２６】
2009187199.tif 000028
【図２７】
2009187199.tif 000029
【図２８】
2009187199.tif 000030
【図２９】
2009187199.tif 000031
【図３０】
2009187199.tif 000032