(57)【要約】【課題】シリアル型のフラッシュメモリにメインプログラムを格納するようした電子機器において、低コストで柔軟なシステムの構築を可能にする。【解決手段】システムＬＳＩ１０内にブートストラッププログラム（ＲＯＭコード）が格納された小容量のＲＯＭ１４を設ける。また、内蔵のＮＡＮＤフラッシュメモリ３０にシステムを初期化するために必要なパラメータとメインプログラムとを格納する。ＣＰＵ１２は、起動時にＲＯＭコードを実行する。ＲＯＭコードは、ＮＡＮＤフラッシュメモリ３０の特定の物理アドレスで指定された領域からパラメータを読み出し、ＳＲＡＭ１６に転送する。ＣＰＵ１２は、ＳＲＡＭ１６上のパラメータを参照し、システムの初期化・設定を行い、システムの初期化後にＮＡＮＤフラッシュメモリ３０からメインプログラムを読み出し、ＤＲＡＭ２０に格納し、ここでメインプログラムを起動させる。【選択図】  図１
2008134736.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、
ブートストラッププログラムが格納された書き換え不能な不揮発性メモリと、
高速で情報の読み書きが可能な初期化が不要な第１の揮発性メモリと、
高速で情報の読み書きが可能な初期化が必要な第２の揮発性メモリと、
少なくとも第１の物理アドレスで指定された領域にシステムを初期化するために必要なパラメータが格納され、第２の物理アドレス又は前記パラメータで指定された領域に前記中央処理装置で実行されるメインプログラムが格納されたシリアル型の第１のフラッシュメモリと、を備え、
前記中央処理装置は、電源投入時に前記不揮発性メモリのブートストラッププログラムにより、前記第１のフラッシュメモリからパラメータを読み出し、該パラメータを前記第１の揮発性メモリに一時的に格納し、前記第１の揮発性メモリに格納したパラメータに基づいてシステムの初期化を行い、その後、前記第１のフラッシュメモリに格納されたメインプログラムを前記第２の揮発性メモリに転送し、該第２の揮発性メモリ上でメインプログラムを起動することを特徴とする電子機器。
【請求項２】
エラー検出／訂正手段を含むメモリコントローラを備え、
前記中央処理装置は、前記メモリコントローラを介して前記パラメータ／メインプログラムの転送を行い、
前記メモリコントローラは、前記パラメータ／メインプログラムの転送時にエラー検出及び訂正を行うことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記中央処理装置、不揮発性メモリ、第１の揮発性メモリ及びメモリコントローラは、１チップの大規模集積回路によって構成されていることを特徴とする請求項２に記載の電子機器。
【請求項４】
外部のシリアル型の第２のフラッシュメモリが装着され、該第２のフラッシュメモリとデータの送受信を行うためのインターフェースを備え、
起動時にパラメータを一時的に保持する前記第１の揮発性メモリは、前記第２のフラッシュメモリの使用時のデータバッファとして共用されることを特徴とする請求項１から３のいずれかに記載の電子機器。
【請求項５】
前記第１のフラッシュメモリに格納されたパラメータは、前記第２の揮発性メモリを初期化するときのパラメータを含むことを特徴とする請求項１から４のいずれかに記載の電子機器。
【請求項６】
前記第１のフラッシュメモリに格納されたパラメータは、前記第１のフラッシュメモリから前記第２の揮発性メモリにメインプログラムを転送するときのシステムのクロック周波数、及び第１のフラッシュメモリへアクセスするときの制御信号のパルス幅を設定するためのパラメータを含むことを特徴とする請求項１から５のいずれかに記載の電子機器。
【請求項７】
前記第１のフラッシュメモリに格納されたパラメータは、前記第１のフラッシュメモリから前記第２の揮発性メモリに転送するメインプログラムのサイズに関するパラメータを含むことを特徴とする請求項１から６のいずれかに記載の電子機器。
【請求項８】
前記第１のフラッシュメモリに格納されたパラメータは、前記メインプログラムの転送時のリトライ回数を含み、前記中央処理装置は、前記メインプログラムの転送時に訂正不能なエラーが発生すると、前記リトライ回数だけ前記メインプログラムの転送を行うことを特徴とする請求項２に記載の電子機器。
【請求項９】
前記不揮発性メモリに格納されたブートストラッププログラムは、前記パラメータ／メインプログラムの転送時のリトライ回数を含み、前記中央処理装置は、前記パラメータ／メインプログラムの転送時に訂正不能なエラーが発生すると、前記リトライ回数だけ前記パラメータ／メインプログラムの転送を行うことを特徴とする請求項２又は８に記載の電子機器。
【請求項１０】
前記中央処理装置は、前記パラメータ／メインプログラムの転送時に訂正不能なエラーが発生すると、電源回路の電源を遮断する指令を出力することを特徴とする請求項２に記載の電子機器。
【請求項１１】
前記第１のフラッシュメモリは、ユーザデータが格納されるユーザ領域を含み、前記パラメータ／メインプログラムが格納される領域には第１のエラー訂正符号が格納され、前記ユーザ領域には前記第１のエラー訂正符号よりも弱いエラー訂正を行う第２のエラー訂正符号が格納されることを特徴とする請求項２、８、９又は１０に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子機器に係り、特にシリアル型のフラッシュメモリにプログラム（ファームウエア）が格納されている電子機器のシステムブートを行う技術に関する。
【背景技術】
【０００２】
ＮＡＮＤ型に代表されるシリアル型のフラッシュメモリ（ＮＡＮＤフラッシュメモリ）は、ＮＯＲ型に代表されるパラレル型のフラッシュメモリ（ＮＯＲフラッシュメモリ）に比べて安価で、集積度が高くできるという利点があるが、ブロックを単位としてアクセスされ、ＮＯＲフラッシュメモリのようにバイト単位のアクセスができないため、書き込まれたプログラムをメインメモリに移さずに直ちに実行させることができないという欠点がある。
【０００３】
また、ＮＡＮＤフラッシュメモリは、不良ブロックを含むことが容認されており、そのためＮＡＮＤフラッシュメモリにアクセスする場合には、不良ブロックの位置を管理しながら読み書きが行われる。
【０００４】
特許文献１には、ＮＡＮＤフラッシュメモリにメインプログラムとともに、ブートストラッププログラムを格納し、ブートＲＯＭ（ＮＯＲメモリなど）を使用しないシステムが提案されている。このシステムでは特別な転送装置を設け、この転送装置は、電源投入後にＮＡＮＤフラッシュメモリに格納された誤り検査符号付きのブートストラッププログラムを読み出し、誤り検出／訂正処理を施した後、ＳＲＡＭに転送する。転送が正常に完了すると、中央処理装置（ＣＰＵ）を動作可能にし、ＣＰＵは、ＳＲＡＭに転送されたブートストラッププログラムを実行することにより、システムブートを行うようにしている。
【０００５】
特許文献２に記載の記憶装置は、初期読み出しプログラムが格納されたブートＲＯＭと、ファームウエア領域及びユーザ領域を有するＮＡＮＤフラッシュメモリと、命令格納用領域及びデータ格納用領域を有するＲＡＭとを備え、ＣＰＵは、ブートＲＯＭから初期読み出しプログラムを読み出して実行することにより、ＮＡＮＤフラッシュメモリからプログラム構成データを特定してＲＡＭの命令格納用領域に格納する。
【０００６】
特許文献３には、ＮＡＮＤフラッシュメモリに格納されたブートコード等をバイト単位でアクセス可能にするためのシリアルフラッシュアクセス装置が記載されている。このシリアルフラッシュアクセス装置は、ＣＰＵによってＮＡＮＤフラッシュメモリの指定されたメモリアドレスをアクセスし、ＣＰＵから要求されたデータの読み書きを行うキャッシュモジュールと、ＮＡＮＤフラッシュメモリに書き込まれたブートコードを読み出してバッファに格納し、ＣＰＵからブートコードが要求されると、システムブートを実行させるブートローダが設けられたシリアルフラッシュコントローラと、上記キャッシュモジュール及びシリアルフラッシュコントローラとＮＡＮＤフラッシュメモリとの間のデータ送受信を制御するフラッシュインターフェース部とを備えている。
【０００７】
特許文献４に記載のＮＡＮＤフラッシュメモリは、ブート用プログラムを格納するＲＯＭエリアを有するとともに、このＲＯＭエリアのデータの誤り訂正を行う誤り訂正回路を有し、システムをブートするための機能を備えている。
【０００８】
特許文献５には、ＮＡＮＤフラッシュメモリを用いながら、追加のブートＲＯＭを必要とせずにブートアップできる方法及び装置が記載されている。
【０００９】
特許文献６には、ブートプログラムコードを周辺デバイスの制御レジスタに初期値として設定し、コンピュータに電源が投入されると、上記制御レジスタからブートプログラムコードを読み出してブートプログラムの処理を実行し、ＮＡＮＤフラッシュメモリに格納されているメインプログラムをＤＲＡＭに転送するようにしたコンピュータの起動システムが記載されている。
【特許文献１】特開２００５−１９０２０１号公報
【特許文献２】特開２００２−２７８７８１号公報
【特許文献３】特開２００４−２２０５５７号公報
【特許文献４】特開２００４−３１９０４８号公報
【特許文献５】特開２００５−１０９４２号公報
【特許文献６】特開２００５−１０７９３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載の発明は、ＣＰＵに頼らずにＮＡＮＤフラッシュメモリを制御する専用のシーケンサ（転送装置）が必要であり、また、外部メモリカードのインタフェースと共用できないため、高コストとなる。
【００１１】
特許文献２に記載の発明は、ランダムアクセスメモリの初期化手段が固定されており、柔軟なシステムを構築することができないという問題がある。
【００１２】
特許文献３、４に記載の発明は、ＮＡＮＤフラッシュメモリにＣＰＵが直接アクセス可能な機能を持たせることで、標準的なＮＡＮＤフラッシュメモリに比べてＮＡＮＤフラッシュメモリ本体が高コストになる。
【００１３】
特許文献６に記載の発明は、ＮＡＮＤフラッシュメモリ以外に、ブートプログラムコードを初期値として設定する制御レジスタを備えた周辺デバイスが必要である。
【００１４】
また、特許文献１〜６に記載のＮＡＮＤメモリコントローラの用途は、いずれもプログラム格納や１つのＮＡＮＤフラッシュメモリへのアクセスに限られ、外部メモリカードなどの交換可能なＮＡＮＤフラッシュメモリへのアクセス手段とは共用されていない。したがって、外部メモリカードを使用する場合には、別のコントローラを必要とし、高コストになるという問題がある。
【００１５】
本発明はこのような事情に鑑みてなされたもので、シリアル型のフラッシュメモリにメインプログラムを格納するようした機器において、低コストで柔軟なシステムを構築することができる電子機器を提供することを目的とする。
【課題を解決するための手段】
【００１６】
前記目的を達成するために請求項１に係る情報処理処置は、中央処理装置と、ブートストラッププログラムが格納された書き換え不能な不揮発性メモリと、高速で情報の読み書きが可能な初期化が不要な第１の揮発性メモリと、高速で情報の読み書きが可能な初期化が必要な第２の揮発性メモリと、少なくとも第１の物理アドレスで指定された領域にシステムを初期化するために必要なパラメータが格納され、第２の物理アドレス又は前記パラメータで指定された領域に前記中央処理装置で実行されるメインプログラムが格納されたシリアル型の第１のフラッシュメモリと、を備え、前記中央処理装置は、電源投入時に前記不揮発性メモリのブートストラッププログラムにより、前記第１のフラッシュメモリからパラメータを読み出し、該パラメータを前記第１の揮発性メモリに一時的に格納し、前記第１の揮発性メモリに格納したパラメータに基づいてシステムの初期化を行い、その後、前記第１のフラッシュメモリに格納されたメインプログラムを前記第２の揮発性メモリに転送し、該第２の揮発性メモリ上でメインプログラムを起動することを特徴としている。
【００１７】
即ち、書き換え不能な不揮発性メモリ（例えば、小容量のＲＯＭ）にブートストラッププログラム（ＲＯＭコード）を格納し、ＮＡＮＤフラッシュメモリ等の第１のフラッシュメモリにシステムを初期化するために必要なパラメータとメインプログラムとを格納し、中央処理装置（ＣＰＵ）は、ＲＯＭコードを実行する。ＲＯＭコードは、前記第１のフラッシュメモリの第１の物理アドレスで指定された領域からパラメータを読み出し、第１の揮発性メモリ（ＳＲＡＭ）に転送し、ＣＰＵは、ＳＲＡＭに転送されたパラメータを参照し、システムの初期化・設定を行う。尚、ＳＲＡＭは初期化が不要なため、ＣＰＵはＳＲＡＭにアクセス可能である。
【００１８】
システムの初期化が終了すると、ＣＰＵは、前記第１のフラッシュメモリの特定の第２の物理アドレス又は前記パラメータで指定された領域に格納されたメインプログラムを読み出し、第２の揮発性メモリ（ＤＲＡＭ）に格納し、ここでメインプログラムを起動させる。
【００１９】
これにより、メインプログラムを格納した高価なＮＯＲフラッシュメモリ＋ＮＡＮＤフラッシュメモリのシステムよりも低コスト化を図ることができる。また、ＲＯＭコードを変更することなく、第１のフラッシュメモリに格納するパラメータによって柔軟なシステムを構築できるようにしている。
【００２０】
請求項２に示すように請求項１に記載の電子機器において、エラー検出／訂正手段を含むメモリコントローラを備え、前記中央処理装置は、前記メモリコントローラを介して前記パラメータ／メインプログラムの転送を行い、前記メモリコントローラは、前記パラメータ／メインプログラムの転送時にエラー検出及び訂正を行うことを特徴としている。これにより、ＮＯＲフラッシュメモリに比べて信頼性の低いＮＡＮＤフラッシュメモリに格納されるパラメータやメインプログラムの信頼性を高めることができる。
【００２１】
請求項３に示すように請求項２に記載の電子機器において、前記中央処理装置、不揮発性メモリ、第１の揮発性メモリ及びメモリコントローラは、１チップの大規模集積回路によって構成されていることを特徴としている。
【００２２】
請求項４に示すように請求項１から３のいずれかに記載の電子機器において、外部のシリアル型の第２のフラッシュメモリが装着され、該第２のフラッシュメモリとデータの送受信を行うためのインターフェースを備え、起動時にパラメータを一時的に保持する前記第１の揮発性メモリは、前記第２のフラッシュメモリの使用時のデータバッファとして共用されることを特徴としている。即ち、前記第１の揮発性メモリ（ＳＲＡＭ）を、第２のフラッシュメモリを使用するときのデータ転送時のデータバッファとして共用することにより、低コスト化を図るようにしている。
【００２３】
請求項５に示すように請求項１から４のいずれかに記載の電子機器において、前記第１のフラッシュメモリに格納されたパラメータは、前記第２の揮発性メモリを初期化するときのパラメータを含むことを特徴としている。これにより、ＲＯＭコードを変更することなく、第２の揮発性メモリ（ＤＲＡＭ）のサイズ、タイプが異なる構成をとることが可能となる。
【００２４】
請求項６に示すように請求項１から５のいずれかに記載の電子機器において、前記第１のフラッシュメモリに格納されたパラメータは、前記第１のフラッシュメモリから前記第２の揮発性メモリにメインプログラムを転送するときのシステムのクロック周波数、及び第１のフラッシュメモリへアクセスするときの制御信号のパルス幅を設定するためのパラメータを含むことを特徴としている。これにより、起動時の高速化を図ることができる。
【００２５】
請求項７に示すように請求項１から６のいずれかに記載の電子機器において、前記第１のフラッシュメモリに格納されたパラメータは、前記第１のフラッシュメモリから前記第２の揮発性メモリに転送するメインプログラムのサイズに関するパラメータを含むことを特徴としている。これにより、ＲＯＭコードを変更することなく、プログラムサイズを変更することが可能になる。
【００２６】
請求項８に示すように請求項２に記載の電子機器において、前記第１のフラッシュメモリに格納されたパラメータは、前記メインプログラムの転送時のリトライ回数を含み、前記中央処理装置は、前記メインプログラムの転送時に訂正不能なエラーが発生すると、前記リトライ回数だけ前記メインプログラムの転送を行うことを特徴としている。
【００２７】
請求項９に示すように請求項２又は８に記載の電子機器において、前記不揮発性メモリに格納されたブートストラッププログラムは、前記パラメータ／メインプログラムの転送時のリトライ回数を含み、前記中央処理装置は、前記パラメータ／メインプログラムの転送時に訂正不能なエラーが発生すると、前記リトライ回数だけ前記パラメータ／メインプログラムの転送を行うことを特徴としている。請求項８、９に係る発明によれば、高い信頼性が得られる。
【００２８】
請求項１０に示すように請求項２に記載の電子機器において、前記中央処理装置は、前記パラメータ／メインプログラムの転送時に訂正不能なエラーが発生すると、電源回路の電源を遮断する指令を出力することを特徴としている。これにより、正しく起動しない場合の電子機器の保護を図ることができる。
【００２９】
請求項１１に示すように請求項２、８、９又は１０に記載の電子機器において、前記第１のフラッシュメモリは、ユーザデータが格納されるユーザ領域を含み、前記パラメータ／メインプログラムが格納される領域には第１のエラー訂正符号が格納され、前記ユーザ領域には前記第１のエラー訂正符号よりも弱いエラー訂正を行う第２のエラー訂正符号が格納されることを特徴としている。
【発明の効果】
【００３０】
本発明によれば、シリアル型の第１のフラッシュメモリにシステムを初期化するために必要なパラメータとメインプログラムとを格納し、ＣＰＵは、書き換え不能な不揮発性メモリ（例えば、小容量のＲＯＭ）に格納されたブートストラッププログラム（ＲＯＭコード）により、前記パラメータを読み出して第１の揮発性メモリ（ＳＲＡＭ）に転送し、このパラメータを参照することによりシステムの初期化・設定を行うようにしたため、ＲＯＭコードを変更することなく柔軟なシステムを構築することができる。また、ＣＰＵは、システムの初期化が終了すると、前記第１のフラッシュメモリからメインプログラムを読み出し、第２の揮発性メモリ（ＤＲＡＭ）に格納し、ここでメインプログラムを起動させるようにしたため、メインプログラムを高価なＮＯＲフラッシュメモリに格納するようにしたシステムに比べて低コスト化を図ることができる。
【発明を実施するための最良の形態】
【００３１】
以下、添付図面に従って本発明に係る電子機器の好ましい実施の形態について説明する。
【００３２】
［電子機器の構成例］
図１は本発明に係る電子機器の実施の形態を示す要部ブロック図である。
【００３３】
この電子機器は、例えば、プログラム（ファームウエア）によって制御されるデジタルカメラ等の電子機器であり、システムＬＳＩ（大規模集積回路）１０と、高速で情報の読み書きが可能な初期化が必要な揮発性メモリ（ＤＲＡＭ）２０と、ＮＡＮＤ型に代表されるシリアル型のフラッシュメモリ（ＮＡＮＤフラッシュメモリ）３０と、外部のＮＡＮＤフラッシュメモリであるメモリカードのメモリカード・インターフェース（Ｉ／Ｆ）４０とを備えている。
【００３４】
システムＬＳＩ１０は、中央処理装置（ＣＰＵ）１２と、書き換え不能な不揮発性メモリ（ＲＯＭ）１４と、高速で情報の読み書きが可能な初期化が不要な揮発性メモリ（ＳＲＡＭ）１６と、ＮＡＮＤメモリコントローラ１８とがシステムバス１９に接続され、１チップ化された大規模集積回路であり、従来のこの種のシステムＬＳＩに対して小容量のＲＯＭ１４が追加された構成となっている。
【００３５】
ＲＯＭ１４には、ブートストラッププログラム（以下、「ＲＯＭコード」という）が格納されており、ＣＰＵ１０は、後述するようにブート時にＲＯＭコードを実行する。
【００３６】
ＤＲＡＭ２０は、システムバス１９を介してシステムＬＳＩ１０と接続され、また、機器内蔵のＮＡＮＤフラッシュメモリ３０とメモリカードＩ／Ｆ４０とは、メディアバス５０を介してシステムＬＳＩ１０内のＮＡＮＤメモリコントローラ１８と接続されている。
【００３７】
ＮＡＮＤメモリコントローラ１８は、後述するようにエラー検出／訂正機能を備えており、ＮＡＮＤフラッシュメモリ３０又はメモリカードＩ／Ｆ４０のいずれかにチップセレクト信号を出力し、チップセレクト信号を出力したＮＡＮＤフラッシュメモリとの間でデータの読み書きを行う。
【００３８】
［ＮＡＮＤフラッシュメモリ３０の構成］
図２にＮＡＮＤフラッシュメモリ３０のメモリマップの設定例を示す。このＮＡＮＤフラッシュメモリ３０は、多数のブロックに編成され、各ブロックは更に複数のページ（５１２バイト／ページ）に分割され、ページ単位で読み取りやプログラムが可能になっている。
【００３９】
このＮＡＮＤフラッシュメモリ３０は、図２に示すように特定の物理アドレスで指定された領域（この実施の形態では、第１ブロックの第１ページ目）にシステムを初期化するために必要なパラメータが格納され、上記の物理アドレスとは異なる特定の物理アドレス又は前記パラメータで指定された領域にメインプログラムが格納され、その他の領域がユーザデータ領域として使用可能になっている。
【００４０】
以下、本発明に係る電子機器の起動時の動作について説明する。
【００４１】
＜第１の実施の形態＞
図３は本発明に係る電子機器の起動時の動作の第１の実施の形態を示すフローチャートである。
【００４２】
まず、電源が投入されると（パワーオンリセットされると）、ＣＰＵ１２は、ＲＯＭ１４内のＲＯＭコードを実行する。ＣＰＵ１２はこのＲＯＭコードの実行により、ＮＡＮＤメモリコントローラ１８を制御するために必要な最低限のシステム初期化を行った後、ＮＡＮＤメモリコントローラ１８を制御し、ＮＡＮＤフラッシュメモリ３０のチップセレクト信号のみを選択状態にし、ＮＡＮＤフラッシュメモリ３０の特定の物理アドレスで指定された領域（第１ブロックの第１ページ）にアクセスして、ここからパラメータを読み出させ、このパラメータをＳＲＡＭ１６に格納させる（ステップＳ１０）。
【００４３】
続いて、ＳＲＡＭ１６上のパラメータを使用してシステムの初期化を行う（ステップＳ１２）。尚、ＳＲＡＭ１６は初期化が不要なため、ＣＰＵ１２は、直ちにアクセスすることができ、ＳＲＡＭ１６に格納されたパラメータを参照し、システムの初期化・設定を行うことが可能である。
【００４４】
次に、ＳＲＡＭ１６上のパラメータで指定されたＮＡＮＤフラッシュメモリ３０の領域（この領域にメインプログラムが格納されている）からメインプログラムを読み出し、ＤＲＡＭ２０に配置する（ステップＳ１４）。尚、ＲＯＭコードにメインプログラムが格納される領域を示す特定の物理アドレスが含まれている場合には、その物理アドレスに基づいてメインプログラムを読み出すようにしてもよい。
【００４５】
その後、プログラムカウンタをＤＲＡＭ２０上のメインプログラムが転送された領域内に変更し、ＤＲＡＭ２０上でメインプログラムを起動する（ステップＳ１６）。
【００４６】
尚、ＳＲＡＭ１６は、システムの初期化後は、ＮＡＮＤフラッシュメモリ３０やメモリカードＩ／Ｆ４０に接続されたメモリカード（図示せず）の使用時のデータバッファとして共用される。即ち、ＳＲＡＭ１６は、ＮＡＮＤフラッシュメモリ３０やメモリカードのデータ転送用のデータバッファとして用いられているが、本発明ではブート時に有効活用している。
【００４７】
＜第２の実施の形態＞
図４は本発明に係る電子機器の起動時の動作の第２の実施の形態を示すフローチャートである。尚、図４において、図３に示した第１の実施の形態と共通するステップには、同一のステップ番号を付し、その詳細な説明は省略する。
【００４８】
図４に示す第２の実施の形態では、第１の実施の形態のステップＳ１２の代わりにステップＳ２０の処理を行うようにしている。
【００４９】
即ち、ＮＡＮＤフラッシュメモリ３０に格納されているパラメータには、ＤＲＡＭ２０を初期化するための情報が含まれている。
【００５０】
システムの初期化を行うステップＳ２０では、ＳＲＡＭ１６上に格納されたパラメータの１つである、ＤＲＡＭ２０の初期化パラメータを使用してＤＲＡＭ２０を初期化する。これにより、様々な容量／タイプのＤＲＡＭを使用することが可能になる。
【００５１】
＜第３の実施の形態＞
図５は本発明に係る電子機器の起動時の動作の第３の実施の形態を示すフローチャートである。尚、図５において、図３に示した第１の実施の形態と共通するステップには、同一のステップ番号を付し、その詳細な説明は省略する。
【００５２】
図５に示す第３の実施の形態では、第１の実施の形態のステップＳ１２の代わりにステップＳ２２の処理を行うようにしている。
【００５３】
即ち、ＮＡＮＤフラッシュメモリ３０に格納されているパラメータには、ＮＡＮＤフラッシュメモリ３０からＤＲＡＭ２０にメインプログラムを転送するときのシステムのクロック周波数、及びＮＡＮＤフラッシュメモリ３０へアクセスするときの制御信号のパルス幅を設定するための情報が含まれている。
【００５４】
システムの初期化を行うステップＳ２２では、ＳＲＡＭ１６上に格納されたパラメータの１つである、上記クロック周波数、及び制御信号のパルス幅を設定するための情報に基づいてシステムのクロック周波数の設定、及びプログラム転送時のＮＡＮＤメモリコントローラ１８の設定を行う。これにより、任意の速度（高速）で、メインプログラムの転送が可能となり、起動時の高速化を図ることができる。
【００５５】
＜第４の実施の形態＞
図６は本発明に係る電子機器の起動時の動作の第４の実施の形態を示すフローチャートである。尚、図６において、図３に示した第１の実施の形態と共通するステップには、同一のステップ番号を付し、その詳細な説明は省略する。
【００５６】
図６に示す第４の実施の形態では、第１の実施の形態のステップＳ１４の代わりにステップＳ２４の処理を行うようにしている。
【００５７】
即ち、ＮＡＮＤフラッシュメモリ３０に格納されているパラメータには、メインプログラムのサイズ情報が含まれている。
【００５８】
ステップＳ２４において、ＣＰＵ１２は、ＳＲＡＭ１６上に格納されたパラメータの１つである、メインプログラムのサイズ情報に基づいてＮＡＮＤフラッシュメモリ３０からメインプログラムを読み出し、これをＤＲＡＭ２０に配置する。
【００５９】
これにより、ＲＯＭコードを変更することなく、様々なサイズのメインプログラムに適応することができる。
【００６０】
＜第５の実施の形態＞
図７は本発明に係る電子機器の起動時の動作の第５の実施の形態を示すフローチャートである。尚、図７において、図３に示した第１の実施の形態と共通するステップには、同一のステップ番号を付し、その詳細な説明は省略する。
【００６１】
図７に示す第５の実施の形態では、第１の実施の形態のステップＳ１０、Ｓ１４の代わりにステップＳ３０、Ｓ３２の処理を行うとともに、ステップＳ３４の処理が追加されている。
【００６２】
即ち、ＮＡＮＤメモリコントローラ１８は、リード時のエラー検出／訂正機能を備えており、一方、ＮＡＮＤフラッシュメモリ３０に格納されているパラメータ及びメインプログラムには、それぞれエラー訂正符号が含まれている。
【００６３】
図７において、ＮＡＮＤメモリコントローラ１８は、ＮＡＮＤフラッシュメモリ３０からパラメータとともにエラー訂正符号を読み出し、このエラー訂正符号によってパラメータのエラー検出／訂正を行う。このようにしてエラー検出／訂正されたパラメータは、ＳＲＡＭ１６に格納される（ステップＳ３０）。
【００６４】
上記ステップＳ３０において、パラメータに訂正不可能なエラーが発生した場合には、ステップＳ３４に遷移し、ここでエラー処理（ＣＰＵ１２の停止）が行われる。
【００６５】
パラメータを用いたシステムの初期化後、ＮＡＮＤメモリコントローラ１８は、ＮＡＮＤフラッシュメモリ３０からメインプログラムとともにエラー訂正符号を読み出し、このエラー訂正符号によってメインプログラムのエラー検出／訂正を行う。このようにしてエラー検出／訂正が行われたメインプログラムは、ＤＲＡＭ２０に配置される（ステップＳ３２）。
【００６６】
上記ステップＳ３２において、メインプログラムに訂正不可能なエラーが発生した場合には、ステップＳ３４に遷移し、ここでエラー処理（ＣＰＵ１２の停止）が行われる。
【００６７】
これにより、ＮＯＲフラッシュメモリに比べて信頼性の低いＮＡＮＤフラッシュメモリ３０に格納されるパラメータやメインプログラムの信頼性を高めることができる。
【００６８】
＜第６の実施の形態＞
図８は本発明に係る電子機器の起動時の動作の第６の実施の形態を示すフローチャートである。尚、図８において、図７に示した第５の実施の形態と共通するステップには、同一のステップ番号を付し、その詳細な説明は省略する。
【００６９】
図８に示す第６の実施の形態では、第５の実施の形態に対してステップＳ４０、Ｓ４２の処理が追加されている。
【００７０】
即ち、ＲＯＭコードには、パラメータの転送時のリトライ回数を示す情報が含まれており、ＮＡＮＤフラッシュメモリ３０に格納されているパラメータには、メインプログラムの転送時のリトライ回数を示す情報が含まれている。
【００７１】
ステップＳ３０において、パラメータに訂正不可能なエラーが発生した場合には、ステップＳ４０に遷移し、ここで、ＲＯＭコードに含まれているパラメータによって指定されたリトライ回数分のリトライが終了したか否かが判別される。そして、リトライ回数分のリトライが終了していない場合には、ステップＳ３０に戻り、終了した場合には、ステップＳ３４に遷移する。
【００７２】
同様に、ステップＳ３２において、メインプログラムに訂正不可能なエラーが発生した場合には、ステップＳ４２に遷移し、ここで、ＳＲＡＭ１６上にあるパラメータで指定されたリトライ回数分のリトライが終了したか否かが判別される。そして、リトライ回数分のリトライが終了していない場合には、ステップＳ３２に戻り、終了した場合には、ステップＳ３４に遷移する。ステップＳ３４では、エラー処理（ＣＰＵ１２の停止）が行われる。
【００７３】
このように、ＣＰＵ１２は、パラメータ／メインプログラムの転送時に訂正不能なエラーが発生すると、指定されたリトライ回数だけパラメータ／メインプログラムの転送を行う。これにより、パラメータ／メインプログラムの転送時の信頼性を高くすることができる。
【００７４】
［電子機器の他の構成例］
図９は本発明に係る電子機器の他の実施の形態を示す要部ブロック図である。尚、図１に示した電子機器の要部ブロック図と共通する部分には同一の符号を付し、その詳細な説明は省略する。
【００７５】
図９において、ＲＯＭ１４に格納されているＲＯＭコードは、エラー訂正符号による訂正やリトライを行っても訂正不能な場合に、エラー処理としてＣＰＵ１２自体又はシステム全体への電源供給を遮断するための制御信号を、ＣＰＵ１２から電源制御回路６０に出力するようになっている。
【００７６】
また、エラー処理として上記制御信号を出力するか否かのパラメータは、ＮＡＮＤフラッシュメモリ３０から読み出されるパラメータに含まれている。
【００７７】
＜第７の実施の形態＞
図１０は本発明に係る電子機器の起動時の動作の第７の実施の形態を示すフローチャートである。尚、図１０において、図７に示した第５の実施の形態と共通するステップには、同一のステップ番号を付し、その詳細な説明は省略する。
【００７８】
図１０に示す第７の実施の形態では、第５の実施の形態のエラー処理（ステップＳ３４）の代わりに、ステップＳ５０、５２の処理を行うようにしている。
【００７９】
いま、ＮＡＮＤフラッシュメモリ３０から読み出されたパラメータに、エラー処理時に電源供給を遮断するための制御信号を出すパラメータが設定されていると、ＣＰＵ１２は、パラメータ／メインプログラムの転送時に訂正不能なエラーが発生すると、電源制御回路６０に電源遮断依頼を通知する（ステップＳ５０）。
【００８０】
この電源遮断依頼の通知を受けた電源制御回路６０は、ＣＰＵ１２又はシステム全体への電源供給を停止する（ステップＳ５２）。これにより、システムが正しく起動しない場合の保護を図ることができる。
【００８１】
［ＮＡＮＤフラッシュメモリ３０の他の構成］
図１１にＮＡＮＤフラッシュメモリ３０内のデータ部と冗長部とが設定されたメモリマップを示す。同図に示したようにＮＡＮＤフラッシュメモリ３０は、パラメータ／メインプログラムが格納されるパラメータ／メインプログラム領域と、ユーザが利用できるユーザデータ領域とに区分されている。
【００８２】
パラメータ／メインプログラム領域は、パラメータ／メインプログラムが格納されるデータ部と、パラメータ／メインプログラムのエラー検出／訂正するための強力なエラー訂正符号が格納される冗長部とを有し、同様に、ユーザデータが格納されるユーザデータ領域と、ユーザデータのエラー検出／訂正するためのエラー訂正符号であって、メモリカードと同じエラー訂正符号（パラメータ／メインプログラム領域におけるエラー訂正符号よりも弱いエラー訂正符号）が格納される冗長部とを有している。
【００８３】
ここで、パラメータ／メインプログラム領域におけるエラー訂正符号としては、例えば、リードソロモン符号を適用することができ、ユーザデータ領域におけるエラー訂正符号としては、二次元ハミング符号を適用することができる。
【００８４】
メモリ容量を有効に活用するためには、冗長部は少ない方が好ましいが、パラメータ／メインプログラムは、システムにとって重要な情報であるため、強いエラー訂正符号が付与されている。
【００８５】
尚、本発明は、メモリカード等の外部記録メディアを使用するデジタルカメラの他に、デジタルオーディオプレーヤ、ＩＣレコーダ等の電子機器にも適用することができる。
【図面の簡単な説明】
【００８６】
【図１】図１は本発明に係る電子機器の実施の形態を示す要部ブロック図である。
【図２】図２はＮＡＮＤフラッシュメモリのメモリマップの設定例を示す図である。
【図３】図３は本発明に係る電子機器の起動時の動作の第１の実施の形態を示すフローチャートである。
【図４】図４は本発明に係る電子機器の起動時の動作の第２の実施の形態を示すフローチャートである。
【図５】図５は本発明に係る電子機器の起動時の動作の第３の実施の形態を示すフローチャートである。
【図６】図６は本発明に係る電子機器の起動時の動作の第４の実施の形態を示すフローチャートである。
【図７】図７は本発明に係る電子機器の起動時の動作の第５の実施の形態を示すフローチャートである。
【図８】図８は本発明に係る電子機器の起動時の動作の第６の実施の形態を示すフローチャートである。
【図９】図９は本発明に係る電子機器の他の実施の形態を示す要部ブロック図である。
【図１０】図１０は本発明に係る電子機器の起動時の動作の第７の実施の形態を示すフローチャートである。
【図１１】図１１はＮＡＮＤフラッシュメモリ内のデータ部と冗長部とが設定されたメモリマップを示す図である。
【符号の説明】
【００８７】
１０…システムＬＳＩ、１２…中央処理装置（ＣＰＵ）、１４…書き換え不能な不揮発性メモリ（ＲＯＭ）、１６…初期化が不要な揮発性メモリ（ＳＲＡＭ）、１８…ＮＡＮＤメモリコントローラ、１９…システムバス、２０…初期化が必要な揮発性メモリ（ＤＲＡＭ）、３０…シリアル型のフラッシュメモリ（ＮＡＮＤフラッシュメモリ）、４０…メモリカード・インターフェース（Ｉ／Ｆ）、５０…メディアバス、６０…電源制御回路
【図１】
2008134736.tif 000003
【図２】
2008134736.tif 000004
【図３】
2008134736.tif 000005
【図４】
2008134736.tif 000006
【図５】
2008134736.tif 000007
【図６】
2008134736.tif 000008
【図７】
2008134736.tif 000009
【図８】
2008134736.tif 000010
【図９】
2008134736.tif 000011
【図１０】
2008134736.tif 000012
【図１１】
2008134736.tif 000013