(57)【要約】【課題】  プログラムを書き換え可能なメモリ装置のコストを抑制する。【解決手段】  ブートプログラムはブートＲＯＭ１に記憶され、ブートプログラム以外のメインプログラムはＮＡＮＤ型フラッシュメモリ２に記憶されている。ＣＰＵ５は、起動時には、ブートＲＯＭ１からブートプログラムを読み出しブートＲＯＭ１上で実行する。そして、ＣＰＵ５は、ＮＡＮＤ型フラッシュメモリ２のメインプログラムをメインＲＡＭ４に展開して実行する。【選択図】        図１
2005157528.tif 000002
【特許請求の範囲】
【請求項１】
ブートプログラムを記憶したランダムアクセス可能な不揮発性メモリと、
プログラムデータを記憶したＮＡＮＤ型フラッシュメモリと、
データを記憶する揮発性メモリと、
起動時に前記不揮発性メモリに記憶されたブートプログラムを実行し、前記ＮＡＮＤ型フラッシュメモリのプログラムデータが前記揮発性メモリに転送された後に、前記揮発性メモリにおいて前記プログラムデータを実行する実行手段と、
を備えたメモリ装置。
【請求項２】
前記ＮＡＮＤ型フラッシュメモリは、圧縮されたプログラムデータを記憶し、
前記実行手段は、前記揮発性メモリにおいて、前記圧縮されたプログラムデータを伸長し、伸長済みのプログラムデータを実行すること
を特徴とする請求項１に記載のメモリ装置。
【請求項３】
前記ＮＡＮＤ型フラッシュメモリに記憶されたプログラムデータを前記揮発性メモリに転送するデータ転送制御手段を更に備えたこと
を特徴とする請求項１または請求項２に記載のメモリ装置。
【請求項４】
プログラムデータのエラーを訂正するエラー訂正手段を更に備え、
前記実行手段は、プログラムデータの書き換え時では、前記エラー訂正手段により訂正されたプログラムデータを前記ＮＡＮＤ型フラッシュメモリに書き込むこと
を特徴とする請求項１から請求項３のいずれか１項に記載のメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置に係り、特にプログラムデータをフラッシュメモリに記憶したメモリ装置に関する。
【背景技術】
【０００２】
パソコン、プリンタ、ファクシミリ装置、複写機等のデータ処理装置は、そのほとんどが基本構成として、演算処理ユニット（ＣＰＵ）、不揮発性メモリであるＲＯＭ、揮発性メモリであるＲＡＭを備えている。ＲＯＭは、電源をオフにしてもデータを消去しない特徴を有している。このため、データ処理装置を動作させるためのメインプログラムは、一般にＲＯＭに記憶されている。そして、ＣＰＵは、電源がオンになると、ＲＯＭに内蔵されたプログラムに従ってブートし、所定の処理を実行する。
【０００３】
一方、データ処理装置は、高機能化への要求に応じてデジタル化・ソフトウェアの肥大化が進み、これに伴ってプログラムの複雑化・容量の増大も進んでいる。そして、プログラムの機能を追加のために、プログラムをアップグレード可能にする要求も強い。さらに、データ処理の高速化も必要である。
【０００４】
これらの要請を満たすべく、プログラム実行速度の高速化のために、ＲＯＭ上のプログラムを高速アクセスが可能であるＲＡＭ上に展開してから実行することが行われている。さらに、プログラムのアップグレードを可能にするために、ＲＯＭとしてフラッシュメモリを使用する発明が提案されている（例えば、特許文献１を参照。）。
【０００５】
特許文献１には、ＭＰＵがシステムブート時にアクセス可能な複数のブートデバイスと、ＭＰＵのブート時にアクセス可能な複数のデバイスの内の１つを選択指定する選択手段と、が記載されている。
【特許文献１】特開２００２−１４０２０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで、最初のブート時には、ＲＯＭ（ブートデバイス）上でプログラムを実行する必要がある。このため、特許文献１に記載された選択手段は、ランダムアクセスできるブートデバイスとして、ＮＯＲ型フラッシュメモリを選択指定しなければならない。
【０００７】
しかし、ＮＯＲ型フラッシュメモリは、シーケンシャルアクセスのＮＡＮＤ型フラッシュに比べて、コストが高い。このため、プログラムの複雑化・大容量化に応じてＮＯＲ型フラッシュメモリの容量を大きくすると、コストが非常に高くなってしまう問題があった。
【０００８】
本発明は、上述した課題を解決するために提案されたものであり、コストを抑制しつつプログラムを書き換えることができるメモリ装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明であるメモリ装置は、ブートプログラムを記憶したランダムアクセス可能な不揮発性メモリと、プログラムデータを記憶したＮＡＮＤ型フラッシュメモリと、データを記憶する揮発性メモリと、起動時に前記不揮発性メモリに記憶されたブートプログラムを実行し、前記ＮＡＮＤ型フラッシュメモリのプログラムデータが前記揮発性メモリに転送された後に、前記揮発性メモリにおいて前記プログラムデータを実行する実行手段と、を備えている。
【００１０】
不揮発性メモリは、ランダムアクセス可能に構成されており、ブートプログラムを記憶している。ＮＡＮＤ型フラッシュメモリには、ブートプログラムは記憶されてなく、プログラムデータが記憶されている。実行手段は、例えば電源オン時やリセット時などの起動時では、前記不揮発性メモリ上においてブートプログラムを実行する。そして、実行手段は、ＮＡＮＤ型フラッシュメモリのプログラムデータが揮発性メモリに転送された後に、当該揮発性メモリにおいてプログラムデータを実行する。この結果、ＮＯＲ型フラッシュメモリを使用しないで済むのでコストを抑制することができ、またプログラムの実行速度の高速化を図ることができる。
【００１１】
請求項２に記載の発明であるメモリ装置は、請求項１に記載の発明であって、前記ＮＡＮＤ型フラッシュメモリは、圧縮されたプログラムデータを記憶し、前記実行手段は、前記揮発性メモリにおいて、前記圧縮されたプログラムデータを伸長し、伸長済みのプログラムデータを実行することを特徴とする。
【００１２】
したがって、請求項２に記載の発明によれば、ＮＡＮＤ型フラッシュメモリの容量を節約して、様々なプログラムデータを記憶することができる。
【００１３】
請求項３に記載の発明であるメモリ装置は、請求項１または請求項２に記載の発明であって、前記ＮＡＮＤ型フラッシュメモリに記憶されたプログラムデータを前記揮発性メモリに転送するデータ転送制御手段を更に備えたことを特徴とする。
【００１４】
したがって、請求項３に記載の発明によれば、ＮＡＮＤ型フラッシュメモリから揮発性メモリへのプログラムデータの転送を高速に行うことができる。
【００１５】
請求項４に記載の発明であるメモリ装置は、請求項１から請求項３のいずれか１項に記載の発明であって、プログラムデータのエラーを訂正するエラー訂正手段を更に備え、前記実行手段は、プログラムデータの書き換え時では、前記エラー訂正手段により訂正されたプログラムデータを前記ＮＡＮＤ型フラッシュメモリに書き込むことを特徴とする。
【００１６】
したがって、請求項４に記載の発明によれば、ＮＡＮＤ型フラッシュメモリにエラーのないプログラムデータを確実に書き込むことができる。
【発明の効果】
【００１７】
本発明に係るメモリ装置は、起動時に不揮発性メモリに記憶されたブートプログラムを実行し、ＮＡＮＤ型フラッシュメモリのプログラムデータが不揮発性メモリに転送された後に、不揮発性メモリにおいてプログラムデータを実行することにより、コストを抑制しつつ、プログラムの実行速度の高速化を図ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
【００１９】
図１は、本発明の実施形態に係るメモリ装置の構成を示すブロック図である。本発明の実施形態に係るメモリ装置は、ブート時のプログラム（ブートプログラム）を記憶するブートＲＯＭ１と、メインプログラムを記憶するＮＡＮＤ型フラッシュメモリ２と、ＮＡＮＤ型フラッシュメモリ２の異常ブロックを管理するためのデータを記憶するシリアルＥＥＰＲＯＭ３と、主記憶部であるメインＲＡＭ４と、プログラムを実行するＣＰＵ５とを備えている。
【００２０】
ブートＲＯＭ１は、ランダムアクセス可能である。また、ブートＲＯＭ１は、電源オンの時又はリセット時に、起動のために必要なブートプログラムを記憶している。
【００２１】
ＮＡＮＤ型フラッシュメモリ２は、所定の処理を行うメインプログラムを記憶している。ここで、ＮＡＮＤ型フラッシュメモリ２は、データの書き込みや消去の速度が速く大容量化に適している。しかし、ＮＡＮＤ型フラッシュメモリ２は、ページ単位でデータを書き込み、ブロック単位（例えば１６ページ単位や３２ページ単位）でデータを消去するようになっているため、ランダムアクセスが遅いという欠点がある。
【００２２】
そのため、ＮＡＮＤ型フラッシュメモリ２には、ブートプログラムは記憶されていない。すなわち、ブートプログラムはブートＲＯＭ１に記憶され、ブートプログラム以外のメインプログラムがＮＡＮＤ型フラッシュメモリ２に記憶されている。
【００２３】
シリアルＥＥＰＲＯＭ３は、ＮＡＮＤ型フラッシュメモリ２のデータの読み出し／書き込みの単位であるブロックが正常か異常かを管理するためのデータを記憶している。すなわち、ＮＡＮＤ型フラッシュメモリ２に異常ブロックが発生すると、シリアルＥＥＰＲＯＭ３にはその異常ブロックが登録される。
【００２４】
メインＲＡＭ４は、揮発性メモリである。ＣＰＵ５は、プログラム実行時では、メインＲＡＭ４にＮＡＮＤ型フラッシュメモリ２に記憶されたメインプログラムを展開して、実行アドレスをＮＡＮＤ型フラッシュメモリ２からメインＲＡＭ４に移すことができる。また、ＣＰＵ５は、プログラム書き換え時では、プログラムデータのエラー訂正を行ってからＮＡＮＤ型フラッシュメモリ２にそのプログラムを書き込んでいる。
【００２５】
以上のように構成されたメモリ装置のＣＰＵ５は、電源オン時又はリセット時では、次の手順に従って、プログラム書き換え処理又はプログラム実行処理を行う。
【００２６】
図２は、メモリ装置に備えられたＣＰＵ５の動作手順を示すフローチャートである。ＣＰＵ５は、電源オン又はリセットを検出すると、次のステップＳＴ１に移行して、所定の処理を実行する。
【００２７】
ステップＳＴ１では、ＣＰＵ５は、モードを判定し、メインプログラム書き換えモードのときはステップＳＴ２に移行し、メインプログラム実行モードのときは図３に示すステップＳＴ１１に移行する。
【００２８】
ステップＳＴ２では、ＣＰＵ５は、ブートＲＯＭ１からブートプログラムを読み出し、このブートプログラムに基づいて所定の起動処理を実行して、ステップＳＴ３に移行する。ステップＳＴ３では、ＣＰＵ５は、図示しない外部インタフェース、データバス１０を介して書き換え用のメインプログラムを入力して、ステップＳＴ４に移行する。
【００２９】
ステップＳＴ４では、ＣＰＵ５は、ＮＡＮＤ型フラッシュメモリ２に対して書き換えデータをページ単位で書き込んでステップＳＴ５に移行する。ステップＳＴ５では、ＣＰＵ５は、ＮＡＮＤ型フラッシュメモリ２へのデータ書き込み時にエラーがあるかを判定し、エラーがあるときはステップＳＴ６に移行し、エラーがないときはステップＳＴ１０に移行する。
【００３０】
ステップＳＴ６では、ＣＰＵ５は、エラー訂正可能であるかを判定し、エラー訂正可能であるときはステップＳＴ７に移行し、エラー不可能であるときはステップＳＴ８に移行する。ステップＳＴ７では、ＣＰＵ５は、書き換えデータのエラー訂正を行って、ステップＳＴ４に戻る。これにより、ＮＡＮＤ型フラッシュメモリ２には、エラー訂正済みの書き換えデータ（メインプログラム）が書き込まれる。
【００３１】
ステップＳＴ８では、ＣＰＵ５は、ＮＡＮＤ型フラッシュメモリ２に書き込みができなかったページを含んだブロックを、異常ブロックとしてシリアルＥＥＰＲＯＭ３に登録して、ステップＳＴ９に移行する。これにより、ＮＡＮＤ型フラッシュメモリ２の異常ブロックを使用しないようにする。ステップＳＴ９では、ＣＰＵ５は、書き込みデータのカウンタを前ブロックまで戻して、ステップＳＴ４に戻る。
【００３２】
ステップＳＴ１０では、ＣＰＵ５は、書き換えデータの書き込みが終了したかを判定し、終了したときは処理を終了し、終了していないときは再びステップＳＴ４に戻る。以上のような処理を経て、ＣＰＵ５は、ＮＡＮＤ型フラッシュメモリ２のメインプログラムを書き換えることができる。
【００３３】
図３は、プログラム実行モード時のＣＰＵ５の動作手順を示すフローチャートである。ＣＰＵ５は、ステップＳＴ１でメインプログラム実行モードと判定したときは次のステップＳＴ１１に移行する。
【００３４】
ステップＳＴ１１では、ＣＰＵ５は、ブートＲＯＭ１からブートプログラムを読み出し、このブートプログラムに基づいて所定の起動処理を実行して、ステップＳＴ１２に移行する。
【００３５】
ステップＳＴ１２では、ＣＰＵ５は、ＮＡＮＤ型フラッシュメモリ２に記憶されたメインプログラムをメインＲＡＭ４にコピー（転送）することで、プログラムカウンタをＮＡＮＤ型フラッシュメモリ２に移動して、ステップＳＴ１３に移行する。
【００３６】
ステップＳＴ１３では、ＣＰＵ５は、ＮＡＮＤ型フラッシュメモリ２にコピーされた圧縮済みのメインプログラムを伸長して、ステップＳＴ１４に移行する。なお、ＮＡＮＤ型フラッシュメモリ２に記憶されているメインプログラムが圧縮されていない場合は、ステップＳＴ１３の処理は省略して、ステップＳＴ１４に移行する。そして、ステップＳＴ１４では、ＣＰＵ５は、ＮＡＮＤ型フラッシュメモリ２上でメインプログラムを実行して、処理を終了する。
【００３７】
これにより、ＣＰＵ５は、起動時にはブートＲＯＭ１上でブートプログラムを実行した後、ＮＡＮＤ型フラッシュメモリ２からメインプログラムを読み出して所定の処理を実行することができる。
【００３８】
以上のように、本実施形態に係るメモリ装置は、ブートプログラムをブートＲＯＭ１に記憶し、メインプログラムをＮＡＮＤ型フラッシュメモリ２に記憶することによって、起動時にブートＲＯＭ１上でブートプログラムを実行することができ、さらに、ＮＡＮＤ型フラッシュメモリ２に記憶されたメインプログラムを実行することができる。
【００３９】
すなわち、メモリ装置は、ＮＡＮＤ型フラッシュメモリ２にメインプログラムを記憶したとしても、別途設けられたブートＲＯＭ１にブートプログラムを記憶しているので、確実に起動して、メインプログラムを実行することができる。
【００４０】
なお、本発明は、上述した実施の形態に限定されるものではなく、特許請求の範囲に記載された範囲内で設計上の変更をされたものにも適用可能であるのは勿論である。例えば、本発明は次のように構成されたものにも適用可能である。
【００４１】
図４は、本発明の他の実施形態に係るメモリ装置の構成を示すブロック図である。すなわち、このメモリ装置は、図１に示す構成に加えて、さらに、メインプログラムをＮＡＮＤ型フラッシュメモリ２からメインＲＡＭ４に転送するＤＭＡ（Direct Memory Access）制御回路６と、書き込みデータのエラー訂正制御を行うＥＣＣ（Error Check and Correct）制御回路７と、を備えている。
【００４２】
ＤＭＡ制御回路６は、ＣＰＵ５を介さず、ＮＡＮＤ型フラッシュメモリ２に記憶されたメインプログラムを直接メインＲＡＭ４に転送する。ＥＣＣ制御回路７は、書き換えデータのエラーを検出して、そのエラーを訂正する。
【００４３】
以上のように構成されたメモリ装置は、ＤＭＡ制御回路６を備えることによって、ＮＡＮＤ型フラッシュメモリ２からメインＲＡＭ４にメインプログラムをコピーするときの転送速度の高速化を図ることができる。また、上記メモリ装置は、ＥＣＣ制御回路７を備えることによって、メインプログラム書き換え時のエラー訂正制御の高速化を図ることができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態に係るメモリ装置の構成を示すブロック図である。
【図２】メモリ装置に備えられたＣＰＵの動作手順を示すフローチャートである。
【図３】プログラム実行モード時のＣＰＵの動作手順を示すフローチャートである。
【図４】本発明の他の実施形態に係るメモリ装置の構成を示すブロック図である。
【符号の説明】
【００４５】
１  ブートＲＯＭ
２  ＮＡＮＤ型フラッシュメモリ
３  シリアルＥＥＰＲＯＭ
４  メインＲＡＭ
５  ＣＰＵ
６  ＤＭＡ制御回路
７  ＥＣＣ制御回路
【図１】
2005157528.tif 000003
【図２】
2005157528.tif 000004
【図３】
2005157528.tif 000005
【図４】
2005157528.tif 000006