(57)【要約】【課題】ＮＡＮＤ型フラッシュメモリとＲＡＭとの間で高速にデータ転送を行うことができるメモリ装置を提供すること。【解決手段】本発明は、複数の実データを記憶するための実データエリアと複数のスペアデータを記憶するためのスペアデータエリアを含む不揮発性メモリ７０１と、複数の実データを記憶するための実データエリア７１２と複数のスペアデータを記憶するためのスペアデータエリア７１３を含む揮発性メモリ７１１と、不揮発性メモリ７０１及び揮発性メモリ７１１の間のデータ転送を行うコントローラ７２１とを有するメモリ装置である。【選択図】図７
2011108286.tif 000002
【特許請求の範囲】
【請求項１】
複数の実データを記憶するための実データエリアと複数のスペアデータを記憶するためのスペアデータエリアを含む不揮発性メモリと、
複数の実データを記憶するための実データエリアと複数のスペアデータを記憶するためのスペアデータエリアを含む揮発性メモリと、
前記不揮発性メモリ及び前記揮発性メモリの間のデータ転送を行うコントローラとを有し、
前記コントローラは、前記揮発性メモリから前記不揮発性メモリへデータ転送を行う際、前記揮発性メモリ内の実データエリア及びスペアデータエリアから対応して読み出した実データ及びスペアデータを結合し、それぞれ前記不揮発性メモリ内の実データエリア及びスペアデータエリアに書き込む第１の書き込みコントローラと、一又は複数のスペアデータを記憶するためのスペアデータレジスタを含み、前記揮発性メモリの実データエリア内の実データ及び前記スペアデータレジスタ内のスペアデータを結合し、それぞれ前記不揮発性メモリ内の実データエリア及びスペアデータエリアに書き込む第２の書き込みコントローラを含む、メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置に関し、特に不揮発性メモリ及び揮発性メモリを有するメモリ装置に関する。
【背景技術】
【０００２】
図９は、従来技術によるメモリ装置の構成を示すブロック図である。マイクロコントローラ９０１は、バスを介して不揮発性メモリ（ＮＶメモリ）９０５に接続され、他のバスを介してＲＡＭ９０６、誤り訂正回路９０３及び不揮発性メモリ９０２に接続される。不揮発性メモリ９０２はＮＯＲ型フラッシュメモリであり、不揮発性メモリ９０５はＮＡＮＤ型フラッシュメモリである。
【０００３】
ＮＯＲ型フラッシュメモリ９０２は、ランダムアクセスが可能である。そのため、マイクロコントローラ９０１は、バスを介してＮＯＲ型フラッシュメモリ９０２に直接アクセスが可能である。しかし、ＮＯＲ型フラッシュメモリ９０２は、小容量、大型及び大消費電力という欠点がある。
【０００４】
そこで、大容量、小型及び小消費電力の利点を有するＮＡＮＤ型フラッシュメモリ９０５もメモリ装置に設けられるようになった。しかし、ＮＡＮＤ型フラッシュメモリ９０５は、シーケンシャルアクセスしかできないため、ランダムアクセスを可能にするためにＲＡＭ９０６を必要とする。すなわち、マイクロコントローラ９０１は、まず、ＮＡＮＤ型フラッシュメモリ９０５からＲＡＭ９０６へシーケンシャルにデータ転送を行い、その後にＲＡＭ９０６上でランダムアクセスが可能になる。
【０００５】
また、ＮＡＮＤ型フラッシュメモリ９０５は、上記の利点を有するが、データの信頼性が低いため、エラー検出訂正回路９０３を必要とする。次に、エラー検出及び訂正方法を説明する。
【０００６】
図１０は、図９のメモリ装置におけるエラー検出及び訂正方法を示す。マイクロコントローラ９０１は、バッファ１００１を有する。
【０００７】
マイクロコントローラ９０１がＲＡＭ９０６からＮＡＮＤ型フラッシュメモリ９０５へデータ転送する方法を説明する。まず、マイクロコントローラ９０１は、ＲＡＭ９０６からバッファ１００１へ実データ（５１２バイト）１０１４を読み出し、その実データ１０１２をエラー検出訂正回路（ＥＧＣ）９０３に供給する。エラー検出訂正回路９０３は、その実データ（５１２バイト）１０１２を基にエラー検出訂正データ（３バイト）１０１３を生成する。マイクロコントローラ９０１は、そのエラー検出訂正データ１０１３をバッファ１００１へ読み出し、その実データ及びエラー検出訂正データ（５１２＋３バイト）１０１１をＮＡＮＤ型フラッシュメモリ９０５に書き込む。
【０００８】
なお、ＮＡＮＤ型フラッシュメモリ９０５は、複数ページの記憶領域を有する。各ページは、実データエリア及びスペアデータエリアを有する。上記の実データは実データエリアに記憶され、上記のエラー検出訂正データはスペアデータエリアに記憶される。
【０００９】
次に、マイクロコントローラ９０１がＮＡＮＤ型フラッシュメモリ９０５からＲＡＭ９０６にデータ転送する方法を説明する。マイクロコントローラ９０１は、ＮＡＮＤ型フラッシュメモリ９０５から実データ及びエラー検出訂正データ（５１２＋３バイト）１０１１をバッファ１００１へ読み出す。次に、マイクロコントローラ９０１は、バッファ１００１内の実データ（５１２バイト）１０１２をエラー検出訂正回路９０３に供給する。エラー検出訂正回路９０３は、その実データ１０１２を基にエラー検出訂正データ（３バイト）１０１３を生成する。マイクロコントローラ９０１は、そのエラー検出訂正データ１０１３を読み出し、そのエラー検出訂正データ１０１３と先にＮＡＮＤ型フラッシュメモリ９０５から読み出したエラー検出訂正データが同じが否かをチェックする。同じであればバッファ１００１内の実データにエラーがないことを意味し、同じでなければバッファ１００１内の実データにエラーがあることを意味する。
【００１０】
エラーがない場合、マイクロコントローラ９０１は、バッファ１００１内の実データ１０１４をそのままＲＡＭ９０６に書き込む。エラーがある場合、マイクロコントローラ９０１は、上記のチェック結果に応じて、エラービットを特定し、バッファ１００１内の実データを訂正し、訂正した実データ１０１４をＲＡＭ９０６に書き込む。
【００１１】
図１１は、上記のエラー検出及び訂正方法の概念を表すＮＡＮＤ型フラッシュメモリ１１０１及びＲＡＭ１１１１の図である。ＮＡＮＤ型フラッシュメモリ１１０１は、複数のページ１１０２、１１０３、１１０４等を有する。各ページ１１０２〜１１０４は、実データエリア及びスペアデータエリアを有する。実データエリアは実データを記憶するためのエリアであり、スペアデータエリアはスペアデータ（エラー検出訂正データを含む）を記憶するためのエリアである。１ページは、実データが例えば５１２バイト、エラー検出訂正データが例えば３バイトである。
【００１２】
まず、ＲＡＭ１１１１からＮＡＮＤ型フラッシュメモリ１１０１へデータ転送する場合を説明する。ＲＡＭ１１１１には実データ１１１２が記憶されている。マイクロコントローラ１１２１は、ＲＡＭ１１１１内の実データ（例えば５１２バイト）１１１２及びマイクロコントローラ１１２１の内部バッファ内のスペアデータ（例えば３バイト）１１２２を１対１に対応させて、実データ１１５２及びスペアデータ１１５１をＮＡＮＤ型フラッシュメモリ１１０１に書き込む。
【００１３】
次に、ＮＡＮＤ型フラッシュメモリ１１０１からＲＡＭ１１１１へデータ転送する場合を説明する。ＮＡＮＤ型フラッシュメモリ１１０１には実データ及びスペアデータが記憶されている。マイクロコントローラ１１２１は、ＮＡＮＤ型フラッシュメモリ１１０１から実データ１１４１及びスペアデータ１１４２を読み出す。しかし、実データ１１４１のみがＲＡＭ１１１１に実データ１１１２として書き込まれ、スペアデータ１１４２は削除データ１１３１としてＲＡＭ１１１１には記憶されずに削除される。
【００１４】
ＮＡＮＤ型フラッシュメモリ１１０１に記憶されるスペアデータには、上記のエラー検出訂正データの他に、管理情報や制御情報がある。したがって、実データを修正する場合には、それに応じてスペアデータも修正する必要がある。
【００１５】
マイクロコントローラ１１２１がＲＡＭ１１１１上の実データを修正し、ＮＡＮＤ型フラッシュメモリ１１０１に書き込むときには、一度、ＮＡＮＤ型フラッシュメモリ１１０１からスペアデータを読み出し、そのスペアデータを修正する。そして、マイクロコントローラ１１２１は、その修正されたスペアデータ及び修正されたＲＡＭ１１１１上の実データをＮＡＮＤ型フラッシュメモリ１１０１に書き込む。このように、スペアデータを修正するにはＮＡＮＤ型フラッシュメモリ１１０１から一度スペアデータを読み出さなければならないため、処理ステップが多くなり、処理速度が遅いという問題がある。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平０５−２９９６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上記のように、ＮＡＮＤ型フラッシュメモリ９０５を有するメモリ装置では、ＮＡＮＤ型フラッシュメモリ９０５とＲＡＭ９０６との間のデータ転送が必ず行われる。このデータ転送の間、図９に示すように、マイクロコントローラ９０１とＲＡＭ９０６とを結ぶバスが占有されてしまうため、マイクロコントローラ９０１は、ＮＯＲ型フラッシュメモリ９０２にアクセスすることができなくなってしまう問題がある。
【００１８】
また、図１０に示すように、ＮＡＮＤ型フラッシュメモリ９０５とＲＡＭ９０６との間のデータ転送を行う際には、上記のように最低４回のデータ転送１０１１〜１０１４が必要になり、データ転送に長時間を要していた。
【００１９】
また、マイクロコントローラ９０１内のバッファ１００１は、ＮＡＮＤ型フラッシュメモリ９０５に対して実データ（５１２バイト）及びエラー検出訂正データ（３バイト）を読み書きするために最低５１２＋３バイトの記憶容量を必要としていた。
【００２０】
また、ＮＡＮＤ型フラッシュメモリ９０５とＲＡＭ９０６とは電気的仕様が異なるため、マイクロコントローラ９０１は、ＮＡＮＤ型フラッシュメモリ９０５及びＲＡＭ９０６の電気的仕様に合わせた電源電圧で制御する必要があるため、独自の低電源電圧を採用することができず、低消費電力を実現することができない問題がある。
【００２１】
また、図１１に示すように、ＮＡＮＤ型フラッシュメモリ１１０１内のスペアデータを修正するにはＮＡＮＤ型フラッシュメモリ１１０１から一度スペアデータを読み出さなければならないため、処理ステップが多くなり、処理速度が遅いという問題がある。
【００２２】
本発明の目的は、ＮＡＮＤ型フラッシュメモリ（不揮発性メモリ）とＲＡＭ（揮発性メモリ）との間でデータ転送を行っている間にも、ＮＯＲ型フラッシュメモリ（不揮発性メモリ）に対するアクセスを可能にするメモリ装置を提供することである。
【００２３】
本発明の他の目的は、ＮＡＮＤ型フラッシュメモリとＲＡＭとの間で高速にデータ転送を行うことができるメモリ装置を提供することである。
【００２４】
本発明のさらに他の目的は、ＮＡＮＤ型フラッシュメモリとＲＡＭとの間のデータ転送を制御するコントローラ内のバッファ容量を小さくすることができるメモリ装置を提供することである。
【００２５】
本発明のさらに他の目的は、ＮＡＮＤ型フラッシュメモリとＲＡＭの電気的仕様にかかわらずコントローラの電気的仕様を決めることができるメモリ装置を提供することである。
【００２６】
本発明のさらに他の目的は、ＮＡＮＤ型フラッシュメモリ内のスペアデータを高速に修正して書き込むことができるメモリ装置を提供することである。
【課題を解決するための手段】
【００２７】
本発明のメモリ装置は、データを記憶可能な不揮発性メモリと、ランダムアクセスが可能な揮発性メモリと、不揮発性メモリ及び揮発性メモリの間でデータ転送を行うことができ、該データ転送が行われていないときには外部バスからの指示に応じて外部から直接揮発性メモリへアクセスしているような擬似的アクセスを可能にするコントローラとを有する。
【００２８】
コントローラは、外部コントローラからの指示に応じて不揮発性メモリと揮発性メモリとの間のデータ転送を行うことができる。このデータ転送の間、外部バスが占有されることない。したがって、外部コントローラは、上記のデータ転送の間にも、外部バスを介して、他のメモリ（例えばＮＯＲ型フラッシュメモリ）にアクセスすることができる。また、外部コントローラは、コントローラを介して、直接揮発性メモリへアクセスしているような擬似的アクセスが可能になる。
【発明の効果】
【００２９】
以上説明したように本発明によれば、コントローラは、外部コントローラからの指示に応じて不揮発性メモリと揮発性メモリとの間のデータ転送を行うことができる。このデータ転送の間、外部バスが占有されることない。したがって、外部コントローラは、上記のデータ転送の間にも、外部バスを介して、他のメモリ（例えばＮＯＲ型フラッシュメモリ）にアクセスすることができる。また、外部コントローラは、コントローラを介して、直接揮発性メモリへアクセスしているような擬似的アクセスが可能になる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態によるメモリ装置の構成を示すブロック図である。
【図２】制御レジスタの内容を示す図である。
【図３】内部コントローラ、ＮＡＮＤ型フラッシュメモリ及びＲＡＭの間の接続を示す図である。
【図４】ＮＡＮＤ型フラッシュメモリからＲＡＭへの転送タイミングを示すタイミングチャートである。
【図５】入出力電圧レベルを示す図である。
【図６】他の入出力電圧レベルを示す図である。
【図７】本実施形態によるＮＡＮＤ型フラッシュメモリとＲＡＭとの間のデータ転送方法を示す図である。
【図８】本実施形態によるＮＡＮＤ型フラッシュメモリからＲＡＭへのセーブ処理を示すフローチャートである。
【図９】従来技術によるメモリ装置の構成を示すフローチャートである。
【図１０】従来技術によるエラー検出及び訂正方法を示す図である。
【図１１】従来技術によるＮＡＮＤ型フラッシュメモリとＲＡＭとの間のデータ転送方法を示す図である。
【図１２】電圧レベル変換回路の構成例を示す回路図である。
【図１３】ＮＡＮＤ型フラッシュメモリの試験方法を説明するための図である。
【発明を実施するための形態】
【００３１】
図１は、本発明の実施形態によるメモリ装置の構成を示すブロック図である。マイクロコントローラ１０１は、外部バス１２１及び１２２を介して内部コントローラ１０４に接続される。外部バス１２１はコントロール制御信号線であり、外部バス１２２はＲＡＭインタフェース線１２２である。
【００３２】
内部コントローラ１０４は、メモリバス１２４を介して不揮発性メモリ（ＮＶメモリ）１０５に接続され、メモリバス１２５を介してＲＡＭ１０６に接続される。不揮発性メモリ１０５は、例えばＮＡＮＤ型フラッシュメモリである。ＲＡＭ１０６は、例えばＳＲＡＭ(static random access memory)である。メモリバス１２４は、ＮＡＮＤ型フラッシュメモリインタフェースバスである。メモリバス１２５は、ＲＡＭインタフェースバスである。上記の内部コントローラ１０４、ＮＡＮＤ型フラッシュメモリ１０５及びＲＡＭ１０６は、同一のパッケージ１０３内に内蔵される。
【００３３】
内部コントローラ１０４は、制御レジスタ１１１、ＮＡＮＤ型フラッシュメモリ用シーケンサ１１２、エラー検出訂正回路１１３、ＲＡＭ用シーケンサ１１４、及びデータラッチ１１５を有する。制御レジスタ１１１は、後に図２を参照しながら説明する。ＮＡＮＤ型フラッシュメモリ用シーケンサ１１２は、メモリバス１２４を介してＮＡＮＤ型フラッシュメモリ１０５を制御することができる。ＲＡＭ用シーケンサ１１４は、メモリバス１２５を介してＲＡＭ１０６を制御することができる。エラー検出訂正回路１１３は、エラー検出及び訂正処理を行う。データラッチ１１５は、入出力線ＬＴ１及びＬＴ２を介して、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６との間のデータ転送の際にページサイズ以下で任意のデータ長（例えば、１ワード）のデータをバッファリングすることができる。
【００３４】
また、マイクロコントローラ１０１は、外部バス１２３を介して、不揮発性メモリ（ＮＶメモリ）１０２に接続される。外部バス１２２及び１２３は、共通のバスを介してマイクロコントローラ１０１に接続される。不揮発性メモリ１０２は、例えばＮＯＲ型フラッシュメモリである。
【００３５】
ＮＯＲ型フラッシュメモリ１０２は、ランダムアクセスが可能である。そのため、マイクロコントローラ１０１は、バス１２３を介してＮＯＲ型フラッシュメモリ１０２に直接アクセスが可能である。しかし、ＮＯＲ型フラッシュメモリ１０２は、小容量、大型及び大消費電力という欠点がある。
【００３６】
そこで、大容量、小型及び小消費電力の利点を有するＮＡＮＤ型フラッシュメモリ１０５をメモリ装置に設ける。しかし、ＮＡＮＤ型フラッシュメモリ１０５は、シーケンシャルアクセスしかできないため、ランダムアクセスを可能にするためにＲＡＭ１０６を必要とする。また、ＮＡＮＤ型フラッシュメモリ１０５は、上記の利点を有するが、データの信頼性が低いため、エラー検出訂正回路１１３を必要とする。
【００３７】
図７に示すように、ＮＡＮＤ型フラッシュメモリ７０１は、複数ページ７０２、７０３、７０４等を有する。各ページ７０２〜７０４は、実データエリア及びスペアデータエリアを有する。実データエリアは実データを記憶するためのエリアであり、スペアデータエリアはスペアデータを記憶するためのエリアである。１ページは、実データエリアが例えば５１２ワード、スペアデータエリアが例えば１６ワードである。スペアデータエリアは、先の８ワードが制御情報及び管理情報を記憶するためのエリアであり、後の８ワードがエラー検出訂正データを記憶するためのエリアである。なお、エラー検出訂正データは、例えば３ワードである。
【００３８】
図２は、上記の制御レジスタ１１１の構成を示す。制御レジスタ１１１は、コマンドレジスタ２０１、ソースアドレスレジスタ２０２、ディスティネーションアドレスレジスタ２０３、データサイズレジスタ２０４、エラー検出訂正アドレスレジスタ２０５、スペアデータレジスタ２０６、スペアセットレジスタ２０７、及びステータスレジスタ２０８等を有する。
【００３９】
コマンドレジスタ２０１は、マイクロコントローラ１０１から外部バス１２２を介して指示されたコマンドを格納する。コマンドは、例えば、セーブ命令、ロード命令、サスペンド命令、リジューム命令等がある。セーブ命令は、ＲＡＭ１０６からＮＡＮＤ型フラッシュメモリ１０５にデータを転送するための命令である。ロード命令は、ＮＡＮＤ型フラッシュメモリ１０５からＲＡＭ１０６にデータを転送するための命令である。サスペンド命令は、上記のセーブ命令又はロード命令により、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６との間で行われているデータ転送を一時停止させるための命令である。リジューム命令は、上記の一時停止していたデータ転送を再開させるための命令である。
【００４０】
ソースアドレスレジスタ２０２は、上記のデータ転送の際の転送元を示すソースアドレスを記憶するためのレジスタである。ディスティネーションアドレスレジスタ２０３は、上記のデータ転送の際の転送先を示すディスティネーションアドレスを記憶するためのレジスタである。データサイズレジスタ２０４は、上記のデータ転送を行うデータサイズを記憶するためのレジスタである。
【００４１】
エラー検出訂正アドレスレジスタ２０５は、エラー検出訂正回路１１３によりエラーが検出されたときに、そのエラーが検出されたデータのアドレスを記憶するためのレジスタである。
【００４２】
スペアデータレジスタ２０６は、ＮＡＮＤ型フラッシュメモリ１０５に書き込むスペアデータを記憶するためのレジスタである。スペアセットレジスタ２０７は、スペアデータレジスタ２０６に記憶されているスペアデータをＮＡＮＤ型フラッシュメモリ１０５に書き込むか否かを示すレジスタである。
【００４３】
ステータスレジスタ２０８は、内部コントローラ１０４の状態等を示すレジスタである。
【００４４】
図３は、図１の内部コントローラ１０４、ＮＡＮＤ型フラッシュメモリ１０５及びＲＡＭ１０６の端子ピンの接続状態を示す。内部コントローラ１０４には、コントローラ制御信号線１２１及びＲＡＭインタフェース線１２２が接続される。
【００４５】
内部コントローラ１０４は、コントローラ制御信号線１２１に接続される以下の端子を有する。端子ＸＲＥＳＥＴは、外部からリセットするためのリセット入力端子である。端子ＣＬＫＩＮは、外部クロック入力端子である。端子ＲＤＸＢＹは、レディ／ビジー出力端子である。端子ＩＮＴは、割り込み信号の出力端子であり、例えば上記のデータ転送が終了した旨の割り込み信号等を出力する。端子ＸＣＥは、チップイネーブル入力端子である。
【００４６】
また、内部コントローラ１０４は、ＲＡＭインタフェース線１２２に接続される以下の一般的なＲＡＭの端子を有する。端子Ａは、アドレス入力端子であり、ＲＡＭ１０６及び制御レジスタ１１１（図２）内のレジスタのアドレスを指定することもできる。端子Ｄは、データの入出力端子である。端子ＸＣＥ１は第１のチップイネーブル入力端子であり、端子ＣＥ２は第２のチップイネーブル入力端子である。チップイネーブル入力端子ＸＣＥ１及びＣＥ２の組み合わせにより、チップイネーブル及び動作モードを指示することができる。端子ＸＵＢは、１６ビットのデータ端子Ｄのうちの上位８ビットをイネーブル状態
にするための入力端子である。端子ＸＬＢは、１６ビットのデータ端子Ｄのうちの下位８ビットをイネーブル状態にするための入力端子である。端子ＸＯＥは、アウトプット（読み出し）イネーブル入力端子である。端子ＸＷＥは、ライト（書き込み）イネーブル入力端子である。
【００４７】
また、内部コントローラ１０４は、上記のバス１２２に接続される端子に対応して、メモリバス１２５に接続される一般的な以下のＲＡＭの端子を有する。すなわち、バス１２５には、端子ＭＡ、ＭＤ、ＸＭＣＥ１、ＭＣＥ２、ＸＭＵＢ、ＸＭＬＢ、ＸＭＯＥ、ＸＭＷＥが設けられる。
【００４８】
ＲＡＭ１０６は、バス１２５を介して、相手方の内部コントローラ１０４の端子と同様に、端子Ａｄｄ、Ｄａｔａ、ＸＣＥ１、ＣＥ２、ＸＵＢ、ＸＬＢ、ＸＯＥ、ＸＷＥを有する。
【００４９】
上記のように、バス１２２及び１２５がＲＡＭインタフェースで共通化されているので、マイクロコントローラ１０１（図１）は、外部バス１２２からの指示により外部から直接ＲＡＭ１０６へアクセスしているような擬似的アクセスが可能になる。
【００５０】
また、内部コントローラ１０４は、メモリバス１２４に接続される以下の端子を有する。端子ＦＤは、データ入出力端子である。端子ＸＦＣＥは、チップイネーブル出力端子である。端子ＸＦＲＥは、リード（読み出し）イネーブル出力端子である。端子ＸＦＷＥは、ライト（書き込み）イネーブル出力端子である。端子ＦＡＬＥは、アドレスラッチイネーブル出力端子である。端子ＦＣＬＥは、コマンドラッチイネーブル出力端子である。これら端子ＦＡＬＥ及びＦＣＬＥが選択されないときには、データが出力ＩＯバス上に現れている。端子ＸＦＳＥは、スペアエリアイネーブル出力端子であり、ＮＡＮＤ型フラッシュメモリ１０５のスペアデータエリアをイネーブル状態にするための端子である。端子ＸＦＷＰは、ライトプロテクト出力端子である。端子ＸＦＲＳＴは、外部リセット出力端子である。端子ＸＲＤｘＢＹは、レディ／ビジー入力端子である。
【００５１】
ＮＡＮＤ型フラッシュメモリ１０５は、バス１２４を介して、相手方の内部コントローラ１０４の端子と同様に、端子ＩＯ、ＸＣＥ、ＸＲＥ、ＸＷＥ、ＡＬＥ、ＣＬＥ、ＸＳＥ、ＸＷＰ、ＸＥｘ＿ＲＥＳＥＴ、ＲＤｘＢＹを有する。
【００５２】
次に、図１を参照しながら、マイクロコントローラ１０１がＲＡＭ１０６からＮＡＮＤ型フラッシュメモリ１０５へデータ転送する方法を説明する。マイクロコントローラ１０１は、図２のコマンドレジスタ２０１にセーブ命令を格納し、ソースアドレスレジスタ２０２に転送元のＲＡＭ１０６のスタートアドレスを格納し、ディスティネーションアドレスレジスタ２０３に転送先のＮＡＮＤ型フラッシュメモリ１０５のスタートアドレスを格納し、データサイズレジスタ２０４に転送データサイズを格納する。
【００５３】
すると、内部コントローラ１０４は、ＲＡＭ１０６からデータラッチ１１５を介してＮＡＮＤ型フラッシュメモリ１０５へ実データ（５１２ワード）をエラー検出訂正回路１１３に通しながら転送する。そのデータ転送に伴い、上記のソースアドレスレジスタ２０２及びディスティネーションアドレスレジスタ２０３はインクリメントされ、データサイズレジスタ２０４はデクリメントされる。
【００５４】
エラー検出訂正回路１１３は、その実データを基にエラー検出訂正データ（３ワード）を生成する。内部コントローラ１０４は、ＮＡＮＤ型フラッシュメモリ１０５の実データエリアに実データの書き込みが終了すると、続いて、生成されたエラー検出訂正データを含むスペアデータをＮＡＮＤ型フラッシュメモリ１０５のスペアエリアに書き込む。
【００５５】
次に、マイクロコントローラ１０１がＮＡＮＤ型フラッシュメモリ１０５からＲＡＭ１０６にデータ転送する方法を説明する。マイクロコントローラ１０１は、図２のコマンドレジスタ２０１にロード命令を格納し、ソースアドレスレジスタ２０２に転送元のＮＡＮＤ型フラッシュメモリ１０５のスタートアドレスを格納し、ディスティネーションアドレスレジスタ２０３に転送先のＲＡＭ１０６のスタートアドレスを格納し、データサイズレジスタ２０４に転送データサイズを格納する。
【００５６】
すると、内部コントローラ１０４は、ＮＡＮＤ型フラッシュメモリ１０５からデータラッチ１１５を介してＲＡＭ１０６へ実データ（５１２ワード）をエラー検出訂正回路１１３に通しながら転送する。そのデータ転送に伴い、上記のソースアドレスレジスタ２０２及びディスティネーションアドレスレジスタ２０３はインクリメントされ、データサイズレジスタ２０４はデクリメントされる。
【００５７】
エラー検出訂正回路１１３は、その実データを基にエラー検出訂正データ（３ワード）を生成する。内部コントローラ１０４は、ＮＡＮＤ型フラッシュメモリ１０５の実データエリアから実データの読み出しが終了すると、続いて、ＮＡＮＤ型フラッシュメモリ１０５のスペアデータエリアからスペアデータ（エラー検出訂正データを含む）を読み出す。そして、内部コントローラ１０４は、その読み出したエラー検出訂正データとエラー検出訂正回路１１３が生成したエラー検出訂正データとを比較する。両者が一致していれば転送した実データにエラーがないことを示し、一致していなければ転送した実データにエラーが存在することを意味する。
【００５８】
エラーがなければＲＡＭ１０６上の実データを訂正する必要がない。エラーがあるときには、上記の比較結果を基に、エラーがあったデータのＲＡＭ１０６上のアドレスを特定し、エラー検出訂正アドレスレジスタ２０５に格納する。マイクロコントローラ１０１は、そのエラーのあったアドレスのデータをＲＡＭ１０６から読み出し、エラー検出訂正アドレスレジスタ２０５内のアドレスを基に、そのアドレスのデータをビット反転して、再び書き込む。これにより、ＲＡＭ１０６上の実データの訂正処理が終了する。
【００５９】
同様にして、データサイズレジスタ２０４が０になるまで、次のページのデータ転送を続ける。データ転送の終了は、内部コントローラ１０４の端子ＩＮＴからマイクロコントローラ１０１へ割り込み信号として通知される。
【００６０】
内部コントローラ１０４は、外部バス１２２への影響なしに、上記のデータ転送を行うことができる。したがって、マイクロコントローラ１０１がデータ転送を内部コントローラ１０４に指示した後、データ転送が行われている間、外部バス１２２及び１２３がそのデータ転送により占有されることはない。上記のデータ転送中であっても、外部バス１２３は空いているので、マイクロコントローラ１０１は、マルチタスク環境（ＯＳ）の下で、外部バス１２３を介してＮＯＲ型フラッシュメモリ１０２に対してアクセスすることができる。
【００６１】
また、マイクロコントローラ１０１は、上記のデータ転送中であっても、ＲＡＭ１０６へのアクセスが可能である。具体的には、マイクロコントローラ１０１は、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６との間のデータ転送中に、サスペンド命令を内部コントローラ１０４に指示することにより該データ転送を一時停止させることができる。その後、マイクロコントローラ１０１は、ＲＡＭインタフェース形式で、内部コントローラ１０４を介してＲＡＭ１０６にアクセスすることができる。その後、マイクロコントローラ１０１は、リジューム命令を内部コントローラ１０４に指示することにより上記のデータ転送を再開させることができる。この再開は、図２のソースアドレスレジスタ２０２、ディスティネーションアドレスレジスタ２０３、及びデータサイズレジスタ２０４に残されているデータをそのまま使って行うことができる。
【００６２】
図４は、ＮＡＮＤ型フラッシュメモリ１０５からＲＡＭ１０６へデータ転送するタイミングを示すタイミングチャートである。クロック信号ＣＬＫは、内部コントローラ１０４の動作クロックである。リードイネーブル信号ＸＦＲＥは、ＮＡＮＤ型フラッシュメモリ１０５のリードイネーブル信号である。データＦＤは、ＮＡＮＤ型フラッシュメモリ１０５のデータである。内部ラッチタイミング信号ＬＴＴは、１ワードのデータラッチ１１５（図１）のラッチ信号である。ラッチ出力ＬＴ２は、データラッチ１１５からＲＡＭ１０６への出力である。
【００６３】
データＭＤは、ＲＡＭ１０６のデータである。チップイネーブルＸＭＣＥ１は、ＲＡＭ１０６のチップイネーブル信号である。アドレスＭＡは、ＲＡＭ１０６のアドレス信号であり、アドレスのインクリメントに従い、下位２ビットが「０」、「１」、「２」、「３」を繰り返すことになる。ライトイネーブルＸＭＷＥは、ＲＡＭ１０６のライトイネーブル信号である。
【００６４】
時刻ｔ１では、リードイネーブルＸＦＲＥが立下り、データＦＤがＮＡＮＤ型フラッシュメモリ１０５から読み出される。
【００６５】
次に、時刻ｔ２では、内部ラッチタイミング信号ＬＴＴがハイレベルかつクロックＣＬＫが立ち上がり、データＦＤがデータラッチ１１５にラッチされ、ラッチ出力ＬＴ２が出力される。ラッチ出力ＬＴ２は、データＭＤとして出力される。
【００６６】
次に、時刻ｔ３では、ライトイネーブルＸＭＷＥが立ち上がり、データＭＤがＲＡＭ１０６へ書き込まれる。以上で第１の１ワードのデータ転送が終了する。
【００６７】
次に、時刻ｔ４では、リードイネーブルＸＦＲＥが立下り、次のデータＦＤがＮＡＮＤ型フラッシュメモリ１０５から読み出される。
【００６８】
次に、時刻ｔ５では、内部ラッチタイミング信号ＬＴＴがハイレベルかつクロックＣＬＫが立ち上がり、データＦＤがデータラッチ１１５にラッチされ、ラッチ出力ＬＴ２がデータＭＤとして出力される。
【００６９】
次に、時刻ｔ６では、ライトイネーブルＸＭＷＥが立ち上がり、データＭＤがＲＡＭ１０６へ書き込まれる。以上で第２の１ワードのデータ転送が終了する。
【００７０】
同様に、時刻ｔ７〜ｔ９で第３の１ワードのデータ転送が行われ、時刻ｔ１０〜ｔ１２で第４の１ワードのデータ転送が行われる。
【００７１】
以上のように、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６との間でデータ転送を行う際、ＮＡＮＤ型フラッシュメモリ１０５又はＲＡＭ１０６から複数のデータを読み出し終わる前に、該複数のデータをＲＡＭ１０６又はＮＡＮＤ型フラッシュメモリ１０５へ書き込み始める。
【００７２】
内部コントローラ１０４は、上記のデータ転送を行うために、１ワードのデータをバッファリングするためのデータラッチ（バッファ）１１５を有し、データラッチ１１５を介してデータ転送を行う。
【００７３】
内部コントローラ１０４は、転送サイクルに転送データ数を乗じた時間に１転送サイクルを加算した時間でデータ転送を行うことができる。この時の転送サイクルは、クロックＣＬＫの２周期に相当する。
【００７４】
図５は、メモリ装置で使用する電源レベルを示す。ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６は、電気的仕様が異なり、互いに動作可能な入出力電圧レベルの範囲が異なる。ＮＡＮＤ型フラッシュメモリ１０５は、動作可能な入出力電圧レベルが２．７〜３．６Ｖの範囲である。一方、ＲＡＭ１０６は、動作可能な入出力電圧レベルが２．５〜３．１Ｖの範囲である。
【００７５】
図９の従来技術によるメモリ装置では、２つのメモリ９０５，９０６の動作可能な入出力電圧レベルが異なる場合、マイクロコントローラ９０１が２つのメモリに対応する２電源を基に制御する必要があった。そのため、マイクロコントローラ９０１を１．８Ｖ等の低電源電圧を採用したいとの要求を満たすことができなかった。
【００７６】
本実施形態では、内部コントローラ１０４は、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６の動作可能な入出力電圧レベルの重複範囲である２．７〜３．１Ｖで２つのメモリ１０５，１０６に対してアクセスする。すなわち、内部コントローラ１０４とＮＡＮＤ型フラッシュメモリ１０５との間の入出力５０３の電圧レベルが２．７〜３．１Ｖであり、内部コントローラ１０４とＲＡＭ１０６との間の入出力５０４の電圧レベルも２．７〜３．１Ｖである。ＮＡＮＤ型フラッシュメモリ１０５の電源端子ＶＣＣには２．７〜３．１Ｖの電圧ＶＣＣＮが供給され、ＲＡＭ１０６の電源端子ＶＣＣにも２．７〜３．１Ｖの電圧ＶＣＣＦが供給される。
【００７７】
マイクロコントローラ１０１は、低消費電力を実現するために、例えば１．８Ｖの低電源電圧を基に１．８Ｖの入出力電圧レベルで内部コントローラ１０４に対して入出力を行う。すなわち、マイクロコントローラ１０１は、電源線５０１を介して内部コントローラ１０４の入出力用電源端子ＶＣＣｑに１．８Ｖの入出力用電源を供給し、入出力線５０２を介して内部コントローラ１０４の入出力端子Ｉ／Ｏに対して１．８Ｖの入出力電圧レベルで入出力を行う。
【００７８】
内部コントローラ１０４は、電圧レベル変換回路５１１を有し、入出力５０３，５０４を制御するために電源端子ＶＤＤに２．７〜３．１Ｖの電圧ＶＤＤを入力する。電圧レベル変換回路５１１は、２．７〜３．１Ｖの電源端子ＶＤＤを基に、２つのメモリ１０５，１０６に対する入出力５０３，５０４を制御し、１．８Ｖの入出力用電源端子ＶＣＣｑを基にマイクロコントローラ１０１に対する入出力５０２を制御する。すなわち、電圧レベル変換回路５１１は、マイクロコントローラ１０１に対する入出力電圧レベル（１．８Ｖ）と２つのメモリ１０５，１０６に対する入出力電圧レベル（２．７〜３．１Ｖ）との間で電圧レベル変換を行う。
【００７９】
以上のように、電気的仕様が異なる２種類のメモリ１０５，１０６に関係なく、マイクロコントローラ１０１の入出力電圧レベルを決めることができるので、マイクロコントローラ１０１の電源電圧を単一の低電圧（１．８Ｖ）にすることができる。
【００８０】
上記では、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６の動作可能な入出力電圧レベルが重複する場合を例に説明した。次に、２つのメモリ１０５，１０６の動作可能な入出力電圧レベルが重複せずに異なる場合を説明する。
【００８１】
図６は、２種類のメモリ１０５，１０６が異なる入出力電圧レベルの範囲を有する場合を示す。ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６は、電気的仕様が異なり、互いに動作可能な入出力電圧レベルの範囲が重複せずに異なる。例えば、ＮＡＮＤ型フラッシュメモリ１０５は、動作可能な入出力電圧レベルが１．６５〜２．１Ｖの範囲である。一方、ＲＡＭ１０６は、動作可能な入出力電圧レベルが２．７〜３．１Ｖの範囲である。
【００８２】
マイクロコントローラ１０１は、図５の場合と同様に、電源線６０１を介して内部コントローラ１０４の入出力用電源端子ＶＣＣｑに１．８Ｖの入出力用電源を供給し、入出力線６０２を介して内部コントローラ１０４の入出力端子Ｉ／Ｏに対して１．８Ｖの入出力電圧レベルで入出力を行う。
【００８３】
内部コントローラ１０４は、電圧レベル変換回路６１１を有し、入出力６０３を制御するための電源端子ＶＤＤ１に１．６５〜２．１Ｖの電圧ＶＤＤ１を入力し、入出力６０４を制御するための電源端子ＶＤＤ２に２．７〜３．１Ｖの電圧ＶＤＤ２を入力する。電圧レベル変換回路６１１は、１．６５〜２．１Ｖの電源端子ＶＤＤ１を基にＮＡＮＤ型フラッシュメモリ１０５に対する入出力６０３を制御し、２．７〜３．１Ｖの電源端子ＶＤＤ２を基にＲＡＭ１０６に対する入出力６０４を制御し、１．８Ｖの入出力用電源端子ＶＣＣｑを基にマイクロコントローラ１０１に対する入出力６０２を制御する。すなわち、電圧レベル変換回路６１１は、入出力６０２、６０３及び６０４の間で電圧レベル変換を行う。
【００８４】
内部コントローラ１０４は、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６に対して重複せずに異なる入出力電圧レベルでアクセスすることができる。すなわち、内部コントローラ１０４とＮＡＮＤ型フラッシュメモリ１０５との間の入出力６０３の電圧レベルが１．６５〜２．１Ｖであり、内部コントローラ１０４とＲＡＭ１０６との間の入出力６０４の電圧レベルは２．７〜３．１Ｖである。ＮＡＮＤ型フラッシュメモリ１０５の電源端子ＶＣＣには１．６５〜２．１Ｖの電圧ＶＣＣＮが供給され、ＲＡＭ１０６の電源端子ＶＣＣには２．７〜３．１Ｖの電圧ＶＣＣＦが供給される。
【００８５】
以上のように、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６の動作可能な入出力電圧レベルが重複せずに異なる場合には、内部コントローラ１０４に設けられた２つの電源端子ＶＤＤ１及びＶＤＤ２を用いることにより、２つのメモリ１０５，１０６に対して重複せずに異なる入出力電圧レベルでアクセスすることができる。
【００８６】
なお、２つのメモリ１０５，１０６の動作可能な入出力電圧レベルが重複する場合にも、２つのメモリ１０５，１０６に対して重複せずに異なる入出力電圧レベルでアクセスしてもよい。
【００８７】
図１２は、図５の電圧レベル変換回路５１１の構成例を示す回路図である。まず、電圧レベル変換回路５１１の構成を説明する。入力端子Ｉ／Ｏは、インバータ１２１２に接続される。インバータ１２１２は、ｐチャネルＭＯＳトランジスタ１２０１及びｎチャネルＭＯＳトランジスタ１２０２を有する。ｐチャネルＭＯＳトランジスタ１２０１は、ゲートが入力端子Ｉ／Ｏに接続され、ソースが入出力用電源端子ＶＣＣｑに接続される。ｎチャネルＭＯＳトランジスタ１２０２は、ゲートが入力端子Ｉ／Ｏに接続され、ソースがグランド端子に接続され、ドレインがｐチャネルＭＯＳトランジスタ１２０１のドレインに接続される。ｎチャネルＭＯＳトランジスタ１２０３は、ゲートが入出力用電源端子ＶＣＣｑに接続され、ドレインがトランジスタ１２０１のドレイン及びトランジスタ１２０２のドレインの相互接続点に接続され、ソースがインバータ１２１３に接続される。
【００８８】
インバータ１２１３は、ｐチャネルＭＯＳトランジスタ１２０４及びｎチャネルＭＯＳトランジスタ１２０５を有する。ｐチャネルＭＯＳトランジスタ１２０４は、ゲートがｎチャネルＭＯＳトランジスタ１２０３のソースに接続され、ソースが電源端子ＶＤＤに接続され、ドレインが出力端子１２１４に接続される。ｎチャネルＭＯＳトランジスタ１２０５は、ゲートがｎチャネルＭＯＳトランジスタ１２０３のソースに接続され、ソースがグランド端子に接続され、ドレインが出力端子１２１４に接続される。ｐチャネルＭＯＳトランジスタ１２０６は、ゲートが出力端子１２１４に接続され、ソースが電源端子ＶＤＤに接続され、ドレインがｎチャネルＭＯＳトランジスタ１２０３のソースに接続される。出力端子１２１４は、図５の信号線５０３を介してＮＡＮＤ型フラッシュメモリ１０５に接続され、又は信号線５０４を介してＲＡＭ１０６に接続される。
【００８９】
次に、電圧レベル変換回路５１１の動作を説明する。例えば、入出力用電源電圧端子ＶＣＣｑには１．８Ｖが供給され、電源電圧端子ＶＤＤには３Ｖが供給される。入力端子Ｉ／Ｏには１．８Ｖレベル（ハイレベルが１．８Ｖ、ローレベルが０Ｖ）の入力信号が入力され、出力端子１２１４からは３Ｖレベル（ハイレベルが３Ｖ、ローレベルが０Ｖ）の出力信号が出力される。すなわち、電圧レベル変換回路５１１は、１．８Ｖレベルの入力信号を３Ｖレベルの出力信号に変換する。
【００９０】
入力端子Ｉ／Ｏに入力された例えば１．８Ｖレベルの入力信号は、インバータ１２１２に入力される。インバータ１２１２は、入力信号を論理反転し、１．８Ｖレベルの信号を出力する。インバータ１２１２の出力は、ｎチャネルＭＯＳトランジスタ１２０３を介してインバータ１２１３に入力される。インバータ１２１３は、入力信号を論理反転して出力する。例えば、インバータ１２１３は入力信号がハイレベル（１．８Ｖ）であればローレベルを出力する。すると、ｐチャネルＭＯＳトランジスタ１２０６はハイレベル（３Ｖ）を出力する。そのハイレベル（３Ｖ）の出力がインバータ１２１３の入力にフィードバックされる。その結果、インバータ１２１３の出力はローレベルに確定する。この時、ｎチャネルＭＯＳトランジスタ１２０３は、ゲートの電位を１．８Ｖ（ＶＣＣｐ）としてオフさせるので、インバータ１２１２の入出力用電源端子（ＶＣＣｑ）に電流が流れ込まないようにしている。逆に、インバータ１２１２の出力信号がローレベルであれば、インバータ１２１３はハイレベル（３Ｖ）を出力端子１２１４に出力する。このようにして、異なるレベルの電圧変換をすることができる。これは、図６の電圧レベル変換回路６１１の場合も同様である。
【００９１】
図１３は、ＮＡＮＤ型フラッシュメモリ１０５の試験方法を説明するための図である。図１３の構成は、図３の構成に対して内部コントローラ１０４に試験モード用端子ＴＭＯＤＥを追加した点が異なる。メモリ装置１０３の試験を行う際、図３のように、ＮＡＮＤ型フラッシュメモリ１０５が外部に端子（ピン）を持たない場合、ＮＡＮＤ型フラッシュメモリ１０５の単体の試験は信頼性に欠けることがある。
【００９２】
図１３のメモリ装置１０３では、試験モード用端子ＴＭＯＤＥに２ビットの試験モード信号を入力することができる。メモリ装置１０３の外部端子である試験モード用端子ＴＭＯＤＥをアサートにすることで、メモリ装置１０３の内部に閉じられているＮＡＮＤ型フラッシュメモリ１０５の端子を内部コントローラ１０４の外部端子（すなわちメモリ装置１０３の外部端子）にアサインすることができる。これにより、その外部端子を用いて、ＮＡＮＤ型フラッシュメモリ１０５の単体の試験を一般的なＮＡＮＤ型フラッシュメモリと同等に行うことができる。
【００９３】
内部コントローラ１０４は、複数の内部端子ＦＤ等と、外部に接続可能な複数の外部端子Ａ等と、外部から試験モード信号（アサイン信号）を入力するための試験モード（アサイン）用端子ＴＭＯＤＥとを有する。内部コントローラ１０４の複数の内部端子ＦＤ等は、ＮＡＮＤ型フラッシュメモリ１０５の複数の端子ＩＯ等に接続される。内部コントローラ１０４は、試験モード用端子ＴＭＯＤＥに試験モード信号が入力されると、内部端子ＦＤ等と外部端子Ａ等との間のアサインを行う。すなわち、複数の内部端子ＦＤ等と複数の外部端子Ａ等とがそれぞれ対応付けされて接続される。その外部端子がＮＡＮＤ型フラッシュメモリ１０５の端子と同等になり、ＮＡＮＤ型フラッシュメモリ１０５の端子に直接接続する場合と同様の試験を行うことができる。
【００９４】
次に、図１３の電源レベルについて説明する。電源レベルは、図５と同様である。内部コントローラ１０４は、入出力用電源電圧端子ＶＣＣｑに１．６５〜２．１Ｖの電源電圧を入力し、電源電圧端子ＶＤＤに２．７〜３．１Ｖの電源電圧を入力する。ＮＡＮＤ型フラッシュメモリ１０５は、電源電圧端子ＶＣＣに２．７〜３．１Ｖの電源電圧を入力する。ＲＡＭ１０６も、電源電圧端子ＶＣＣに２．７〜３．１Ｖの電源電圧を入力する。
【００９５】
図７は、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６との間の他のデータ転送方法を示す。ＮＡＮＤ型フラッシュメモリ７０１は、複数のページ７０２、７０３、７０４等を有する。各ページ７０２〜７０４は、実データエリア及びスペアデータエリアを有する。実データエリアは実データを記憶するためのエリアであり、スペアデータエリアはスペアデータ（制御情報、管理方法及びエラー検出訂正データを含む）を記憶するためのエリアである。１ページは、実データエリアが例えば５１２ワード、スペアデータエリアが例えば１６ワードである。スペアデータエリアは、先の８ワードが制御情報及び管理情報を記憶するためのエリアであり、後の８ワードがエラー検出訂正データを記憶するためのエリアである。本実施形態では、ＲＡＭ７１１にも、実データエリア７１２及びスペアデータエリア７１３を設ける。
【００９６】
まず、ＮＡＮＤ型フラッシュメモリ７０１からＲＡＭ７１１へデータ転送する場合を説明する。ＮＡＮＤ型フラッシュメモリ７０１には実データ及びスペアデータが記憶されている。マイクロコントローラ７２１は、ＮＡＮＤ型フラッシュメモリ７０１から実データ７３１及びスペアデータ７３２を分解して読み出す。実データ７３１はＲＡＭ７１１の実データエリア７１２に実データ７１２ａ，７１２ｂ，７１２ｃとして書き込まれ、スペアデータ７３２はＲＡＭ７１１のスペアデータエリア７１３にスペアデータ７１３ａ，７１
３ｂ，７１３ｃとして書き込まれる。実データ７１２ａ，７１２ｂ，７１２ｃとスペアデータ７１３ａ，７１３ｂ，７１３ｃとは、それぞれページ毎に１対１で対応している。
【００９７】
なお、スペアデータ７１３ａ〜７１３ｃは、制御情報及び管理情報の８ワードのデータを含み、エラー検出訂正データを必ずしも含まなくてよい。エラー検出訂正データは、エラー検出訂正回路１１３（図１）が生成するので、ＲＡＭ７１１上に記憶させる必要はない。
【００９８】
スペアデータには、書き込み回数や消去回数等の情報を含むので、実データ７１２ａ〜７１２ｃを再びＮＡＮＤ型フラッシュメモリ７０１に書き込むときには、それに応じてスペアデータを変更する必要がある。また、ＲＡＭ７１１上の実データ７１２ａ〜７１２ｃを修正する場合には、それに応じてスペアデータ７１３ａ〜７１３ｃも修正する必要がある。マイクロコントローラ７２１は、ＲＡＭ７１１上でスペアデータ７１３ａ〜７１３ｃを変更する。
【００９９】
次に、ＲＡＭ７１１からＮＡＮＤ型フラッシュメモリ７０１へデータ転送する場合を説明する。ＲＡＭ７１１上の必要に応じて変更された実データ７１２ａ〜７１２ｃ及びスペアデータ７１３ａ〜７１３ｃは、それぞれページ毎に１対１に対応させて結合し、ＮＡＮＤ型フラッシュメモリ７０１に書き込まれる。
【０１００】
図１１の従来技術によれば、マイクロコントローラ１１２１がＲＡＭ１１１１上のデータを修正し、ＮＡＮＤ型フラッシュメモリ１１０１に書き込むときには、一度、ＮＡＮＤ型フラッシュメモリ１１０１からスペアデータを読み出し、そのスペアデータを修正する。そして、マイクロコントローラ１１２１は、その修正されたスペアデータ及び修正されたＲＡＭ１１１１上の実データをＮＡＮＤ型フラッシュメモリ１１０１に書き込む。このように、ＮＡＮＤ型フラッシュメモリ１１０１から一度スペアデータを読み出さなければならないため、処理ステップが多くなり、処理速度が遅いという問題がある。
【０１０１】
本実施形態によれば、ＮＡＮＤ型フラッシュメモリ７０１から改めてスペアデータを読み出す必要がないので、処理ステップが減り、処理速度が速くなる利点がある。
【０１０２】
ＲＡＭ７１１の実データエリア７１２及びスペアデータエリア７１３は、それぞれ連続アドレスエリアとして設けられている。一方、ＮＡＮＤ型フラッシュメモリ７０１の実データエリア及びスペアデータエリアは、それぞれ不連続アドレスエリアとして設けられている。
【０１０３】
次に、図２のスペアデータレジスタ２０６について説明する。ＲＡＭ７１１上の複数のスペアデータ７１３ａ〜７１３ｃは、同じ内容のものが所定の数だけ連続することがある。例えば、スペアデータが実データの名称を示すものとして使用される場合には、複数ページが同じスペアデータになることがある。その場合には、その同じ内容のスペアデータを一のスペアデータとしてスペアデータレジスタ２０６に記憶させ、連続データ数をデータサイズレジスタ２０４に記憶させ、ソースアドレス及びディスティネーションアドレスをそれぞれソースアドレスレジスタ２０２及びディスティネーションアドレスレジスタ２０３に記憶させる。さらに、スペアセットレジスタ２０７にスペアデータレジスタ２０６を使用する旨の情報を記憶させる。
【０１０４】
これにより、内部コントローラ１０４は、ＲＡＭ７１１の実データエリア７１２内の実データ７１２ａ〜７１２ｃ及びスペアデータレジスタ２０６内のスペアデータを結合し、それぞれＮＡＮＤ型フラッシュメモリ７０１内の実データエリア及びスペアデータエリアに書き込む。
【０１０５】
ＲＡＭ上の同じ内容のスペアデータ７１３ａ〜７１３ｃを変更するには、すべてのスペアデータ７１３ａ〜７１３ｃを変更する必要がある。それに対し、同じ内容のスペアデータをスペアデータレジスタ２０６に記憶させておけば、スペアデータレジスタ２０６内の一のスペアデータを修正するだけで済むので、処理が簡単になり、処理速度が速くなる。
【０１０６】
スペアデータレジスタ２０６は、一又は複数のスペアデータを記憶するためのレジスタである。内部コントローラ１０４は、ＮＡＮＤ型フラッシュメモリ７０１に書き込む複数のスペアデータが同じ内容であるときには、スペアデータレジスタ２０６内の一のスペアデータを用いてＮＡＮＤ型フラッシュメモリ７０１内に同じ内容の複数のスペアデータを書き込むことができる。
【０１０７】
図２のスペアセットレジスタ２０７は、スペアデータレジスタ２０６内のスペアデータ又はＲＡＭ７１１内のスペアデータ７１３ａ〜７１３ｃのいずれかを選択してＮＡＮＤ型フラッシュメモリ７０１に書き込むためのレジスタである。
【０１０８】
図８は、上記のＲＡＭ７１１からＮＡＮＤ型フラッシュメモリ７０１へのセーブ命令の処理を示すフローチャートである。
【０１０９】
ステップＳ８０１では、レジスタにパラメータをセットする。例えば、ＮＡＮＤ型フラッシュメモリ及びＲＡＭのページアドレスをセットし、ページ数をセットする。ステップＳ８０２では、コマンドコードをコマンドレジスタにセットする。ステップＳ８０３では、割り込み信号ＩＮＴをアサート、ビジー信号ＢＳＹをセット、エラー信号ＥＲＲ及びエンド信号ＥＮＤをクリアする。
【０１１０】
ステップＳ８０４では、ＮＡＮＤ型フラッシュメモリをアクティブ状態にし、ＮＡＮＤ型フラッシュメモリにアドレス情報を送る。ステップＳ８０５では、ＲＡＭからＮＡＮＤ型フラッシュメモリへのデータ転送を指示する。
【０１１１】
ステップＳ８０６では、スペアセットレジスタが０か否かをチェックする。０であるときにはステップＳ８０７へ進み、０でないときにはステップＳ８０８へ進む。
【０１１２】
ステップＳ８０７では、ＲＡＭの実データエリア上の５１２ワードの実データとＲＡＭのスペアデータエリア上の８ワードのスペアデータをセットし、ステップＳ８０９へ進む。
【０１１３】
ステップＳ８０８では、ＲＡＭの実データエリア上の５１２ワードの実データとスペアデータレジスタ上の８ワードのスペアデータをセットし、ステップＳ８０９へ進む。
【０１１４】
ステップＳ８０９では、ＮＡＮＤ型フラッシュメモリがレディ状態になったらＮＡＮＤ型フラッシュメモリのステータスを読み出す。ステップＳ８１０では、ステータスレジスタのエラーフラグＥＲＲ及びフェールフラグＦＡＩＬをセットする。ステップＳ８１１では、ＮＡＮＤ型フラッシュメモリを非アクティブ状態にする。ステップＳ８１２では、エラーフラグＥＲＲが０か否かをチェックする。０であればステップＳ８１３へ進み、０でなければステップＳ８１５へ進む。
【０１１５】
ステップＳ８１３では、ページ数レジスタをデクリメントし、ＲＡＭ及びＮＡＮＤ型フラッシュメモリのページアドレスをインクリメントする。ステップＳ８１４では、ページ数が０であるか否かをチェックする。０であればステップＳ８１５へ進み、０でなければステップＳ８０４へ戻り、次のページのセーブ処理を繰り返す。
【０１１６】
ステップＳ８１５では、ビジー信号ＢＳＹをクリアし、エンド信号ＥＮＤをセットし、割り込み信号ＩＮＴをアサートにする。マイクロコントローラがステータスレジスタを読むと、割り込み信号ＩＮＴはクリアされる。以上で、セーブ処理が終了する。
【０１１７】
以上のように、スペアセットレジスタ２０７（図２）が０であるときには、ステップＳ８０７で、ＲＡＭ上の５１２ワードの実データとＲＡＭ上の８ワードのスペアデータをＮＡＮＤ型フラッシュメモリに書き込む。一方、スペアセットレジスタ２０７が１であるときには、ステップＳ８０８で、ＲＡＭ上の５１２ワードの実データとスペアデータレジスタ上の８ワードのスペアデータをＮＡＮＤ型フラッシュメモリに書き込む。スペアセットレジスタ２０７へのセットにより、いずれかのセーブ方法を選択することができる。
【０１１８】
本実施形態では、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６との間でデータ転送を行っている間にも、ＮＯＲ型フラッシュメモリ１０２に対するアクセスが可能になる。
【０１１９】
また、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６との間で高速にデータ転送を行うことができる。
また、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６との間のデータ転送を制御する内部コントローラ１０４内のデータラッチ１１５のバッファ容量を小さくすることができる。
【０１２０】
また、ＮＡＮＤ型フラッシュメモリ１０５とＲＡＭ１０６の電気的仕様にかかわらずマイクロコントローラ１０１の電気的仕様を決めることができる。
【０１２１】
また、図７のＲＡＭ７１１内にスペアデータエリア７１３を設けることにより、ＮＡＮＤ型フラッシュメモリ７０１内にスペアデータを高速に書き込むことができる。
【０１２２】
本実施形態によるメモリ装置は、画像情報や音楽情報等のストリームデータを実データとして扱う携帯電話等に適用することができ、その他、ストリームデータをＮＡＮＤ型フラッシュメモリに記憶させる用途に適している。
【０１２３】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１２４】
本発明の実施形態は、以下のように種々の形態で適用することができる。
（付記１）データを記憶可能な不揮発性メモリと、ランダムアクセスが可能な揮発性メモリと、前記不揮発性メモリ及び前記揮発性メモリの間でデータ転送を行うことができ、該データ転送が行われていないときには外部バスからの指示に応じて外部から直接前記揮発性メモリへアクセスしているような擬似的アクセスを可能にするコントローラとを有するメモリ装置。
（付記２）前記コントローラは、転送の対象となるデータのソースアドレス、ディスティネーションアドレス及びサイズを記憶可能なレジスタを有する付記１記載のメモリ装置。
（付記３）前記コントローラは、外部からの指示に応じて、前記揮発性メモリ及び前記不揮発性メモリの間のデータ転送を前記外部バスへの影響なしに行う付記１記載のメモリ装置。
（付記４）前記コントローラは、前記データ転送の終了を割り込みで外部バスへ通知する付記３記載のメモリ装置。
（付記５）前記コントローラは、前記不揮発性メモリ及び前記揮発性メモリの間のデータ転送中に、サスペンド命令により該データ転送を一時停止し、その後に外部からの指示に応じて前記揮発性メモリへアクセスを行い、その後のリジューム命令により前記データ転送を再開する付記１記載のメモリ装置。
（付記６）前記不揮発性メモリ、前記揮発性メモリ及び前記コントローラが１つのパッケージに内蔵されている付記１記載のメモリ装置。
（付記７）データを記憶可能な不揮発性メモリと、ランダムアクセスが可能な揮発性メモリと、前記不揮発性メモリ及び前記揮発性メモリの間でデータ転送を行う際、前記不揮発性メモリ又は前記揮発性メモリから複数のデータを読み出し終わる前に、該複数のデータを前記揮発性メモリ又は前記不揮発性メモリへ書き込み始めるコントローラとを有するメモリ装置。
（付記８）前記コントローラは、前記不揮発性メモリから前記揮発性メモリへデータ転送を行う際、前記不揮発性メモリから複数のデータを読み出し終わる前に、該複数のデータを前記揮発性メモリへ書き込み始める付記７記載のメモリ装置。
（付記９）前記コントローラは、前記揮発性メモリから前記不揮発性メモリへデータ転送を行う際、前記揮発性メモリから複数のデータを読み出し終わる前に、該複数のデータを前記不揮発性メモリへ書き込み始める付記７記載のメモリ装置。
（付記１０）前記コントローラは、前記データ転送を行う際にエラー検出及び／又は訂正処理を行う付記７記載のメモリ装置。
（付記１１）前記コントローラは、前記不揮発性メモリから前記揮発性メモリへデータ転送を行う際、前記不揮発性メモリから実データ及びエラー検出訂正データを読み出し、該エラー検出訂正データを基に該実データのエラー検出及び／又は訂正処理を行い、実データを前記揮発性メモリに書き込む付記１０記載のメモリ装置。
（付記１２）前記コントローラは、前記揮発性メモリから前記不揮発性メモリへデータ転送を行う際、前記揮発性メモリから実データを読み出し、該実データを基にエラー検出訂正データを生成し、該実データ及び該エラー検出訂正データを前記不揮発性メモリに書き込む付記１０記載のメモリ装置。
（付記１３）前記コントローラは、エラー検出訂正情報を記憶するためのエラー検出訂正レジスタを有する付記１０記載のメモリ装置。
（付記１４）前記エラー検出訂正レジスタは、エラーが検出されたデータのアドレスを記憶する付記１３記載のメモリ装置。
（付記１５）前記コントローラは、データをバッファリングするためのバッファを有し、該バッファを介して前記データ転送を行う付記７記載のメモリ装置。
（付記１６）前記コントローラは、転送サイクルに転送データ数を乗じた時間に１転送サイクルを加算した時間でデータ転送を行う付記１５記載のメモリ装置。
（付記１７）前記コントローラは、前記不揮発性メモリから前記揮発性メモリへデータ転送を行う際、前記不揮発性メモリから実データ及びエラー検出訂正データを読み出し、該エラー検出訂正データを基に該実データのエラー検出を行い、該実データを前記揮発性メモリに書き込み、前記揮発性メモリ上で該実データのエラー訂正処理を行う付記１６記載のメモリ装置。
（付記１８）電気的仕様が異なる複数のメモリと、前記複数のメモリに接続されるメモリバスと外部に接続される外部バスとを含み、前記外部バスの入出力電圧レベルが単一であり、かつ前記メモリバスと前記外部バスとの入出力電圧レベルの範囲が異なるコントローラとを有するメモリ装置。
（付記１９）前記複数のメモリは、互いに動作可能な入出力電圧レベルの範囲が異なる付記１８記載のメモリ装置。
（付記２０）前記コントローラは、前記複数のメモリの動作可能な入出力電圧レベルの重複範囲で前記複数のメモリに対してアクセスする付記１９記載のメモリ装置。
（付記２１）前記コントローラは、前記重複範囲の入出力電圧レベルの電源電圧を入力する電源端子を含み、該電源端子の電圧を基に前記複数のメモリの入出力電圧レベルを制御する付記２０記載のメモリ装置。
（付記２２）前記コントローラは、前記複数のメモリに対して互いに重複せずに異なる入出力電圧レベルでアクセスする付記１９記載のメモリ装置。
（付記２３）前記コントローラは、前記重複せずに異なる入出力電圧レベルの電源電圧を入力する２つの電源端子を含み、該２つの電源端子の電圧を基に前記複数のメモリの入出力電圧レベルを制御する付記２２記載のメモリ装置。
（付記２４）前記複数のメモリは、互いに動作可能な入出力電圧レベルの範囲が重複しない付記２２記載のメモリ装置。
（付記２５）前記複数のメモリは、不揮発性メモリ及び揮発性メモリである付記１８記
載のメモリ装置。
（付記２６）複数の実データを記憶するための実データエリアと複数のスペアデータを記憶するためのスペアデータエリアを含む不揮発性メモリと、複数の実データを記憶するための実データエリアと複数のスペアデータを記憶するためのスペアデータエリアを含む揮発性メモリと、前記不揮発性メモリ及び前記揮発性メモリの間のデータ転送を行うコントローラとを有するメモリ装置。
（付記２７）前記スペアデータは、制御情報又は管理情報である付記２６記載のメモリ装置。
（付記２８）前記複数の実データと前記複数のスペアデータは、それぞれ１対１で対応している付記２６記載のメモリ装置。
（付記２９）前記揮発性メモリ内の実データエリア及びスペアデータエリアは、それぞれ連続アドレスエリアとして設けられる付記２６記載のメモリ装置。
（付記３０）前記不揮発性メモリ内の実データエリア及びスペアデータエリアは、それぞれ不連続アドレスエリアとして設けられる付記２９記載のメモリ装置。
（付記３１）前記コントローラは、前記不揮発性メモリから前記揮発性メモリにデータ転送を行う際、前記不揮発性メモリ内の実データエリア及びスペアデータエリアから対応して読み出した実データ及びスペアデータを分解し、それぞれ前記揮発性メモリ内の実データエリア及びスペアデータエリアに書き込む付記２８記載のメモリ装置。
（付記３２）前記コントローラは、前記揮発性メモリから前記不揮発性メモリへデータ転送を行う際、前記揮発性メモリ内の実データエリア及びスペアデータエリアから対応して読み出した実データ及びスペアデータを結合し、それぞれ前記不揮発性メモリ内の実データエリア及びスペアデータエリアに書き込む第１の書き込みコントローラを含む付記２８記載のメモリ装置。
（付記３３）前記コントローラは、一又は複数のスペアデータを記憶するためのスペアデータレジスタを含み、前記揮発性メモリの実データエリア内の実データ及び前記スペアデータレジスタ内のスペアデータを結合し、それぞれ前記不揮発性メモリ内の実データエリア及びスペアデータエリアに書き込む付記２８記載のメモリ装置。
（付記３４）前記スペアデータレジスタは、一のスペアデータを記憶するためのレジスタである付記３３記載のメモリ装置。
（付記３５）前記コントローラは、前記不揮発性メモリに書き込む複数のスペアデータが同じ内容であるときには、前記スペアデータレジスタ内の一のスペアデータを用いて前記不揮発性メモリ内の同じ内容の複数のスペアデータを書き込む付記３３記載のメモリ装置。
（付記３６）前記コントローラは、一又は複数のスペアデータを記憶するためのスペアデータレジスタを含み、前記揮発性メモリの実データエリア内の実データ及び前記スペアデータレジスタ内のスペアデータを結合し、それぞれ前記不揮発性メモリ内の実データエリア及びスペアデータエリアに書き込む第２の書き込みコントローラを含む付記３２記載のメモリ装置。
（付記３７）前記コントローラは、前記第１及び第２の書き込みコントローラのいずれにより書き込みを行うかを選択することができる付記３６記載のメモリ装置。
（付記３８）前記不揮発性メモリは複数の端子を有し、前記コントローラは、前記不揮発性メモリの複数の端子に接続される複数の内部端子と、外部に接続可能な複数の外部端子と、外部からアサイン信号を入力するためのアサイン用端子とを有し、該アサイン用端子にアサイン信号が入力されると、前記内部端子と前記外部端子との間のアサインを行う付記１記載のメモリ装置。
【符号の説明】
【０１２５】
１０１，９０１  マイクロコントローラ、１０２，９０２  ＮＯＲ型フラッシュメモリ、１０３  パッケージ、１０４  内部コントローラ、１０５，９０５  ＮＡＮＤ型フラッシュメモリ、１０６，９０６  ＲＡＭ、１１１  制御レジスタ、１１２  ＮＡＮＤ型フラッシュメモリ用シーケンサ、１１３，９０３  エラー検出訂正回路、１１４  ＲＡＭ用シーケンサ、１１５  データラッチ、２０１  コマンドレジスタ、２０２  ソースアドレスレジスタ、２０３  ディスティネーションアドレスレジスタ、２０４  データサイズレジスタ、２０５  エラー検出訂正アドレスレジスタ、２０６  スペアデータレジスタ、２０７  スペアセットレジスタ、２０７  ステータスレジスタ、５１１，６１１  電圧レベル変換回路、７０１，１１０１  ＮＡＮＤ型フラッシュメモリ、７１１，１１１１  ＲＡＭ、７１２  実データエリア、７１３  スペアデータエリア、７２１，１１２１  マイクロコントローラ、１００１  バッファ。
【図１】
2011108286.tif 000003
【図２】
2011108286.tif 000004
【図３】
2011108286.tif 000005
【図４】
2011108286.tif 000006
【図５】
2011108286.tif 000007
【図６】
2011108286.tif 000008
【図７】
2011108286.tif 000009
【図８】
2011108286.tif 000010
【図９】
2011108286.tif 000011
【図１０】
2011108286.tif 000012
【図１１】
2011108286.tif 000013
【図１２】
2011108286.tif 000014
【図１３】
2011108286.tif 000015