(57)【特許請求の範囲】
【請求項１】
ＤＲＡＭと、フラッシュメモリと、ホストから前記ＤＲＡＭに対するデータの読み書き及び前記フラッシュメモリに対するデータの読み書きを制御する制御回路とを備えたメモリ装置において、
前記制御回路が使用する制御情報を格納する手段を備え、
前記フラッシュメモリは、前記ＤＲＡＭ内の格納領域の一部がミラーリングされたミラー領域と、前記制御回路が使用する制御情報を格納する手段に設定された前記制御情報を格納するための制御用格納領域を有し、
前記制御回路は、ＤＲＡＭインタフェイスの端子群と電気的特性において互換性を有するＤＲＡＭ互換インタフェイスによって前記ホストに接続され、前記ホストからコマンドを受信し、前記ホストから指定された宛先アドレスに従って前記コマンドを前記制御回路が使用する制御情報を格納する手段に格納し、前記制御回路が使用する制御情報を格納する手段内の前記コマンドの格納アドレスによって前記コマンドの内容を解釈し、前記コマンドがロードを示すコマンドである場合に前記フラッシュメモリ内の前記ミラー領域から前記ＤＲＡＭへデータを転送し、前記コマンドがストアを示すコマンドである場合に前記ＤＲＡＭから前記フラッシュメモリ内の前記ミラー領域へデータを転送し、
前記制御回路は、当該メモリ装置がビジー状態か否かを示すビジー信号と、前記ホストからのコマンドに応じた処理が途中であるか、前記ホストからのコマンドに応じた処理が正常に終了したか、前記ホストからのコマンドに応じた処理が実行できなかったかを示すステータス情報を、前記制御回路が使用する制御情報を格納する手段に格納し、さらに、前記制御回路が使用する制御情報を格納する手段に格納された前記ビジー信号又は前記ステータス情報を前記ホストへ通知するメモリ装置。
【請求項２】
前記制御回路は、前記ホストからの電源供給が開始された場合に、前記フラッシュメモリ内の前記ミラー領域に格納された前記データを前記ＤＲＡＭへ転送し、前記ホストからの電源供給が停止される場合に、前記ＤＲＡＭに格納された前記データを前記フラッシュメモリ内の前記ミラー領域へ転送する請求項１に記載のメモリ装置。
【請求項３】
前記制御回路は、前記ホストからの電源供給が開始された場合に、前記フラッシュメモリ内の前記ミラー領域に格納された前記データを前記ＤＲＡＭへ転送する間、前記ビジー信号を前記制御回路が使用する制御情報を格納する手段に設定し、前記ホストからの電源供給が停止される場合に、前記ＤＲＡＭに格納された前記データを前記フラッシュメモリ内の前記ミラー領域へ転送する間、前記ビジー信号を前記制御回路が使用する制御情報を格納する手段に設定する請求項２に記載のメモリ装置。
【請求項４】
前記ＤＲＡＭのアドレスと前記フラッシュメモリのアドレスとを対応づけるためのアドレス対応情報を備え、
前記制御回路は、前記アドレス対応情報内の前記ＤＲＡＭのアドレスと前記フラッシュメモリのアドレスとの対応づけを変更する請求項１に記載のメモリ装置。
【請求項５】
前記制御回路は、前記フラッシュメモリの前記データの消去回数又は前記データの格納領域の不良化に応じて、前記アドレス対応情報内の前記ＤＲＡＭのアドレスと前記フラッシュメモリのアドレスとの対応づけを変更する請求項４に記載のメモリ装置。
【請求項６】
前記制御回路は、前記ホストからの電源供給が開始された場合に前記フラッシュメモリから前記ＤＲＡＭへ転送されたデータがプログラムであるときは、前記ホストからの電源供給が停止される場合に前記ＤＲＡＭ内の前記プログラムを破棄し、前記ホストからの電源供給が開始された場合に前記フラッシュメモリから前記ＤＲＡＭへ転送されたデータがユーザデータであるときは、前記ホストからの電源供給が停止される場合に前記ＤＲＡＭ内の前記ユーザデータを前記フラッシュメモリへ転送し、
前記ＤＲＡＭ内の前記プログラムは、前記ホストによって利用可能なプログラムを含む請求項２に記載のメモリ装置。
【請求項７】
前記制御回路は、前記ホストからの前記ＤＲＡＭ上の予め定められた宛先アドレスへのアクセス指令に応じて、前記ＤＲＡＭと前記フラッシュメモリとの間のデータ転送を開始する請求項１に記載のメモリ装置。
【請求項８】
前記ＤＲＡＭ互換インタフェイスは、前記ホストと前記制御回路との間に位置し、前記ＤＲＡＭへ読み書きするコマンド及びデータを入出力する第１のインタフェイスであり、
当該メモリ装置は、前記ホストと前記制御回路との間に位置し、前記フラッシュメモリへ読み書きするコマンド及びデータを入出力する第２のインタフェイスを備えた請求項１に記載のメモリ装置。
【請求項９】
前記制御回路は、前記第２のインタフェイスを介して入力されたコマンドに応じて、前記ＤＲＡＭと前記フラッシュメモリとの間のデータ転送を開始する請求項８に記載のメモリ装置。
【請求項１０】
前記制御回路が使用する制御情報を格納する手段は、前記制御回路内に配置される請求項１に記載のメモリ装置。
【請求項１１】
前記制御回路が使用する制御情報を格納する手段は、前記ＤＲＡＭの格納領域内に割り当てられる請求項１に記載のメモリ装置。
【請求項１２】
前記DRAMと前記フラッシュメモリとの間の転送データを保持する保持回路を備えた請求項１に記載のメモリ装置。
【請求項１３】
前記フラッシュメモリは、不良セクタ領域と、今後発生する可能性のある不良セクタ領域を置き換えるための代替セクタ領域を有し、
前記制御回路は、前記フラッシュメモリへのデータの読み書き対象が前記不良セクタ領域であるときに、変わりに前記代替セクタ領域をアクセスさせる手段を有する請求項１に記載のメモリ装置。
【請求項１４】
前記制御回路は、ＤＲＡＭインタフェイスによって前記ＤＲＡＭに接続され、前記ホストからのコマンドがデータの読み書き以外のコマンドである場合、又は前記ホストから指定された宛先アドレスが前記ＤＲＡＭを示す場合に、前記ホストからのコマンドを前記ＤＲＡＭインタフェイスへスルーパスし、前記ホストからのコマンドがデータの読み書きを示すコマンドであり、かつ前記ホストから指定された宛先アドレスが前記制御回路が使用する制御情報を格納する手段を示す場合に、前記ホストからのデータを前記制御回路が使用する制御情報を格納する手段に書き込み又は前記制御回路が使用する制御情報を格納する手段内の前記ビジー信号又は前記ステータス情報を前記ホストへ通知する請求項１に記載のメモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は揮発性メモリ並びに不揮発性メモリを使用したメモリ装置に係り、高速かつ安価なメモリシステムの構築に関する。
【０００２】
【従来の技術】
揮発性メモリ並びに不揮発性メモリを使用したメモリシステムにおいては、特開２００１−５７２３に記載のように、電源投入時において不揮発性メモリの内容を揮発性メモリにコピーして、ホストから揮発性メモリをアクセスして使用する方法がある。その場合、電源遮断時においては揮発性メモリの内容を不揮発性メモリにコピーし、その処理結果について専用線を用いてホストに通知することにより安全に電源を遮断して、源遮断後もデータを保持する。
【０００３】
【発明が解決しようとする課題】
上記従来技術では、揮発性メモリ（DRAM）と不揮発性メモリ（フラッシュメモリ）間のデータ転送が、電源投入時若しくは電源遮断時にしか行われないため、電源投入後、該メモリシステムを使用している最中に該データ転送を行うことまでは考慮していない。また、該データ転送は全ての不揮発性メモリ全体を対象にしているため、大容量のメモリに対しては転送に時間がかかってしまい、メモリシステムとして使用できるまでの準備に時間がかかってしまう。また、電源遮断においてはコピー処理が終了したことをホストに通知するために専用線を用いているため、既存の揮発性メモリインタフェイスだけで制御することはできない。更に、ホストから不揮発性メモリに対してアクセスすることまでは考慮されていない。また、揮発性メモリのデータ転送速度と不揮発性メモリのデータ転送速度との相違については考慮されていない。
【０００４】
本発明の目的は、ホストから揮発性メモリと不揮発性メモリ間のデータ転送を制御可能とし、ホストからの制御性を向上したメモリ装置を提供することである。
【０００５】
又は、本発明の目的は、ホストから不揮発性メモリへのアクセスを可能とし、ホストからの制御性を向上したメモリ装置を提供することである。
【０００６】
【課題を解決するための手段】
本発明は、制御回路が、ホストからのコマンドを受信し、解釈し、解釈されたコマンドに応じて、揮発性メモリと不揮発性メモリとの間のデータ転送を開始する。
【０００７】
又は、本発明は、制御回路が、ホストからの揮発性メモリ上の予め定められたアドレスへのアクセス指令（データリード、データライトを含む。）に応じて、揮発性メモリと不揮発性メモリとの間のデータ転送を開始する。
【０００８】
又は、本発明は、ホストと前記制御回路との間に位置する第１のインタフェイスが、揮発性メモリへ読み書きするデータを入出力する第１のインタフェイスと、ホストと制御回路との間に位置する第２のインタフェイスが、不揮発性メモリへ読み書きするデータを入出力する。
【０００９】
又は、本発明は、ホストと制御回路との間に位置するインタフェイスが、揮発性メモリへ読み書きするデータを入出力すると共に、不揮発性メモリへ読み書きするデータを入出力する。
【００１０】
又は、本発明は、保持回路が、揮発性メモリと不揮発性メモリとの間の転送データを保持する。
【００１１】
【発明の実施の形態】
図24に示すメモリ装置４０００は、例えば、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、音楽再生装置、デジタルカメラ、デジタルビデオカメラ、セットトップボックス、パーソナルコンピュータ、カーナビゲーションシステムなどの情報端末に実装することが可能なメモリ装置４０００である。
【００１２】
メモリ装置４０００は、ホスト４０４０に指定されたアドレスに、ホスト４０４０に指定されたデータを書込む機能と、電源が供給されている場合は書き込まれたデータを少なくとも一定期間以上保持する機能と、ホスト４０４０に指定されたアドレスに保持しているデータをホスト４０４０に出力する機能と、を有するメモリ装置４０００であって、電源供給を停止しても書き込まれたデータの一部あるいは全てを保持することが可能な不揮発性を有し、メモリ装置４０００のホスト４０４０は、メモリ装置４０００に対してアドレスの指定と、メモリ装置４０００へのデータの書込みと、メモリ装置４０００からのデータの読出しを、少なくともＳＤＲＡＭ（シンクロナスダイナミックランダムアクセスメモリー）と電気的に互換性のあるインタフェイス４００１によって行なうことができる機能を有するメモリ装置４０００である。
【００１３】
ここでいうホスト４０４０とは、例えば情報端末に内蔵されたＣＰＵやＡＳＩＣ等といった情報処理装置である。メモリ装置４０００には、例えばホスト４０４０が各種情報処理を実行するための動作プログラムを格納することができる。
【００１４】
動作プログラムとは例えばＯＳ（オペレーションシステム）、ドライバ、ＪＡＶＡヴァーチャルマシン、ＪＡＶＡアプレット等（「ＪＡＶＡ」はSun Microsystems社の登録商標である）の各種アプリケーションなどである。また、ここでいう情報処理とは、例えば、情報端末を構成する各ハードウェアの動作制御であったり、データ演算、動画や音声の記録並びに再生などの処理である。ホスト４０４０は、メモリ装置４０００を主記憶として用いて、メモリ装置４０００に格納された動作プログラムに基づいて動作することができる。また、メモリ装置４０００には例えば動作プログラムで処理するための各種データを格納することもできる。ここでいうデータとは、例えばテキスト、画像、音声、動画などの各種データ、プログラムの動作パラメータや設定ファイル、などである。その他のデータを格納することもできる。
【００１５】
メモリ装置４０００は、揮発性メモリであるがランダムアクセスが可能なＳＤＲＡＭ４０１０と、不揮発性メモリであるフラッシュメモリ４０２０と、ホスト４０４０がメモリ装置４０００にアクセスするためのＳＤＲＡＭ互換インタフェイス４００１とを備える。メモリ装置４０００は、ＳＤＲＡＭ互換インタフェイス４００１によってホスト４０４０に接続する。メモリ装置４０００は、ＳＤＲＡＭ互換メモリとして動作するため、ホスト４０４０はメモリ装置４０００をＳＤＲＡＭインタフェイスを用いて制御できる。メモリ装置４０００は、ＳＤＲＡＭ４０１０のデータの一部あるいは全てをフラッシュメモリ４０２０に格納することができる。メモリ装置４０００は、フラッシュメモリ４０２０のデータの一部あるいは全てをＳＤＲＡＭ４０１０に読み出すことができる。例えばメモリ装置４０００への電源供給を停止する前に、ＳＤＲＡＭ４０１０のデータをフラッシュメモリ４０２０に格納することにすれば、電源供給停止によるＳＤＲＡＭ４０１０のデータ消失を防ぐことができる。また、例えばメモリ装置４０００への電源供給を開始した後、ホスト４０４０がメモリ装置４０００にアクセスする前に、フラッシュメモリ４０２０のデータをＳＤＲＡＭ４０１０に読み出すことにすれば、ホスト４０４０はメモリ装置４０００を不揮発性を持つＳＤＲＡＭ互換メモリとして使用できる。メモリ装置４０００は、ＳＤＲＡＭ４０１０とフラッシュメモリ４０２０の間のデータ転送をホスト４０４０が任意に指定できる機能を有する。メモリ装置４０００は、メモリ装置４０００の動作指示をホスト４０４０から受け付ける指示受付機能と、メモリ装置４０００の状態をホスト４０４０に対して通知する状態通知機能を有する。
【００１６】
指示受付機能と状態通知機能は、ホスト４０４０がメモリ装置４０００の所定のアドレスに対して所定の書式のデータを読書きすることで行なう。そのため、ホスト４０４０は、メモリ装置４０００に対して指示を行なうための専用ピンを、ＳＤＲＡＭインタフェイスに新たに追加することなく、指示受付機能と状態通知機能を利用することができるため、ホスト４０４０は既存のＳＤＲＡＭ４０１０とメモリ装置４０００を容易に置き換えることができる。メモリ装置４０００のホスト４０４０は、指示受付機能により、随時メモリ装置４０００に対してＳＤＲＡＭ４０１０のデータをフラッシュメモリ４０２０に転送すること、並びにフラッシュメモリ４０２０のデータをＳＤＲＡＭ４０１０に転送することを指示できる。
【００１７】
ここで、メモリ装置４０００は不揮発性を有するデータ格納エリアを備えるため、利便性が高い。また、通常のＳＤＲＡＭ４０１０と同等の転送速度を有するためフラッシュメモリに直接アクセスする場合に比べて転送時間を短縮できる。また、メモリ装置４０００はＳＤＲＡＭ互換インタフェイス４００１を有するため、ＳＤＲＡＭインタフェイスを備えるホスト４０４０は、ハードウェアの新規設計あるいは追加をすることなくメモリ装置４０００を利用可能である。
【００１８】
次に、メモリ装置４０００の有する機能の例について説明する。
【００１９】
メモリ装置４０００は、メモリ装置４０００のＳＤＲＡＭ互換インタフェイス４００１信号をＳＤＲＡＭ４０１０のＳＤＲＡＭインタフェイス４００１信号にスルーパスする機能を有する。ＳＤＲＡＭ互換インタフェイス４００１信号のスルーパス機能により、ホスト４０４０はメモリ装置４０００をＳＤＲＡＭ互換のメモリ装置４０００として使用することができる。例えば、ホスト４０４０はメモリ装置４０００に対して、ＳＤＲＡＭ４０１０と同様の手順でリードコマンドやライトコマンドやリフレッシュコマンド等を発行することができる。メモリ装置４０００は、ＳＤＲＡＭ４０１０の所定の領域に保持されたデータをフラッシュメモリ４０２０の所定の領域に転送するストア機能を有する。ストア機能により、フラッシュメモリ４０２０に転送されたデータは、メモリ装置４０００への電源供給の停止によってＳＤＲＡＭ４０１０上から失われても、フラッシュメモリ４０２０上に保持しておくことができる。
【００２０】
ストア機能は、メモリ装置４０００の動作状態が所定のストア実行条件を満たした場合に実行する。ストア実行条件の一つは、例えば電源供給が停止されることである。ストア実行条件の一つは、例えばホスト４０４０からストア実行指示が発行されたことである。ストア実行条件の一つは、例えばメモリ装置４０００の所定のレジスタが所定の範囲の値をとることである。所定のレジスタとは、例えばホスト４０４０からメモリ装置４０００へのアクセス回数をカウントするカウンタレジスタである。
【００２１】
メモリ装置４０００は、ストア実行条件を規定するストア実行条件情報を有する。メモリ装置４０００は、ストア実行条件情報を変更する機能を有する。
メモリ装置４０００は、ストア実行条件情報の変更をホスト４０４０が指定できる機能を有する。メモリ装置４０００は、ストア実行条件情報をフラッシュメモリ４０２０に保存する機能を有する。メモリ装置４０００は、ストア実行条件情報をフラッシュメモリ４０２０から読込む機能を有する。メモリ装置４０００は、フラッシュメモリ４０２０の所定の領域に保持されたデータをＳＤＲＡＭ４０１０の所定の領域に転送するロード機能を有する。
【００２２】
ロード機能は、メモリ装置４０００の動作状態が所定のロード実行条件を満たした場合に実行する。ロード実行条件の一つは、例えば電源供給が開始されることである。ロード実行条件の一つは、例えばホスト４０４０からロード実行指示が発行されたことである。ロード実行条件の一つは、例えばメモリ装置４０００の所定のレジスタが所定の範囲の値をとることである。
【００２３】
メモリ装置４０００は、ロード実行条件を規定するロード実行条件情報を有する。メモリ装置４０００は、ロード実行条件情報を変更する機能を有する。メモリ装置４０００は、ロード実行条件情報の変更をホスト４０４０が指定できる機能を有する。メモリ装置４０００は、ロード実行条件情報をフラッシュメモリ４０２０に保存する機能を有する。メモリ装置４０００は、ロード実行条件情報をフラッシュメモリ４０２０から読込む機能を有する。メモリ装置４０００は、所定の手順に従って、ＳＤＲＡＭ４０１０のアドレスとフラッシュメモリ４０２０のアドレスを対応付ける機能を有する。
【００２４】
ストア機能並びにロード機能におけるデータ転送は、アドレス対応付け機能によって対応付けられたアドレス同士で行なう。アドレス対応付け機能はアドレス対応付け情報に基づいて行なう。また、フラッシュメモリ４０２０には、データを正常に読書きできない不良領域が存在することがある。そのため、フラッシュメモリ４０２０のメモリエリアは、フラッシュメモリ４０２０上に存在する不良領域を使用しないようにする必要がある。そこでアドレス対応付け情報は、不良領域に対してデータアクセスが発生しないようにＳＤＲＡＭ４０１０のアドレスとフラッシュメモリ４０２０のアドレスを対応付ける。
【００２５】
メモリ装置４０００は、アドレス対応付け情報を格納するためのアドレス対応付け情報格納レジスタを有する。メモリ装置４０００は、アドレス応付け情報格納レジスタに格納されたアドレス対応付け情報を変更する機能を有する。メモリ装置４０００は、アドレス対応付け情報の変更をホスト４０４０が指定できる機能を有する。メモリ装置４０００は、アドレス対応付け情報をフラッシュメモリ４０２０に保存する機能を有する。メモリ装置４０００は、アドレス対応付け情報をフラッシュメモリ４０２０から読込む機能を有する。メモリ装置４０００は、メモリ装置４０００への電源供給状態を監視する機能を有する。
【００２６】
次にメモリ装置４０００の構成についてより詳細に説明する。
メモリ装置４０００は少なくとも、ＳＤＲＡＭ互換インタフェイス４００１と、ＳＤＲＡＭ４０１０と、フラッシュメモリ４０２０と、制御装置４０３０と、を備える。ＳＤＲＡＭ４０１０と制御装置４０３０はＳＤＲＡＭインタフェイス４００２で接続する。
【００２７】
制御装置４０３０とフラッシュメモリ４０２０はフラッシュメモリインタフェイス４００３で接続する。制御装置４０３０には、メモリ装置４０４０とホスト４０４０を接続するためのＳＤＲＡＭ互換インタフェイス４００１を接続する。
【００２８】
メモリ装置４０００は、例えば、ＳＤＲＡＭ４０１０と、フラッシュメモリ４０２０と、制御装置４０３０とを、それぞれ別のシリコンチップ上に構成し、各シリコンチップの端子間を例えばワイヤボンディングなどで接続し、１つのパッケージ内に封止したマルチチップパッケージとすることができる。ここで、パッケージとは例えばＴＳＯＰ（Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ）やＢＧＡ（Ｂａｌｌ  Ｇｒｉｄ  Ａｒｒａｙ）などのＬＳＩパッケージ形態のことを指す。
【００２９】
ＳＤＲＡＭ互換インタフェイス４００１は、例えばチップに電気信号を入出力する端子群と端子群の役割のことであり、その電気的特性がＳＤＲＡＭの端子群と互換性を有するインタフェイスである。例えばメモリ装置４０００はＳＤＲＡＭと、各信号のセットアップ時間やホールド時間やＣＡＳレイテンシなどの特性が互換性を有する。
【００３０】
ホスト４０４０と制御装置４０３０を接続するＳＤＲＡＭ互換インタフェイス４００１は例えばＪＥＤＥＣ規格のＳＤＲＡＭと端子群の電気的特性のみならず、  メモリ装置４０００のパッケージサイズや、メモリ装置４０００のパッケージに配置された例えばピンやハンダボール等の端子群のサイズ並びに端子群の配置等も互換性を持たせることが望ましい。
【００３１】
構成とすることで、ＳＤＲＡＭ互換インタフェイス４００１を備えたホスト４０４０は、ＳＤＲＡＭとメモリ装置４０００とを置き換えて使用することが容易になる。
【００３２】
ＳＤＲＡＭ互換インタフェイス４００１は、例えばＳＤＲＡＭインタフェイス４００２に対し、アドレス指定できるメモリエリアを制御用レジスタ分だけ拡張したインタフェイスである。ＳＤＲＡＭ４０１０は、ホスト４０４０に指定されたアドレスにホスト４０４０に指定されたデータを書込む機能と、電源が供給されている場合は書き込まれたデータを少なくとも一定期間以上保持する機能と、ホスト４０４０に指定したアドレスに格納されたデータを読み出しホスト４０４０に出力する機能と、を有するメモリ装置４０００である。信号の入出力をクロックに同期させて実行することで、同期させないＤＲＡＭに比べてデータの転送速度を向上させたメモリ装置４０００である。ＳＤＲＡＭ４０１０はＳＤＲＡＭインタフェイス４００２を有する。ＳＤＲＡＭインタフェイス４００２は、ＳＤＲＡＭ４０１０を利用する外部装置（不図示）がＳＤＲＡＭ４０１０に対してアドレスやデータを指定する端子群である。
【００３３】
フラッシュメモリ４０２０は、ホスト４０４０に指定されたアドレスにホスト４０４０に指定されたデータを書込む機能と、電源供給が停止されても書き込まれたデータを少なくとも一定期間以上保持する不揮発性と、ホスト４０４０に指定したアドレスに格納されたデータを読み出しホスト４０４０に出力する機能と、を有するメモリ装置４０００である。フラッシュメモリ４０２０はフラッシュメモリインタフェイス４００３を有する。フラッシュメモリインタフェイス４００３は、フラッシュメモリ４０２０を利用する外部装置（不図示）がフラッシュメモリ４０２０に対してアドレスやデータを指定する端子群である。
【００３４】
制御装置４０３０は、メモリ装置４０００各部の動作を統括制御する機能を有する制御装置４０３０である。制御装置４０３０は、メモリ装置４０００各部の動作を統括制御し、メモリ装置４０００の各機能を実現する機能を有する。制御装置４０３０は、ＳＤＲＡＭ互換インタフェイス４００１とＳＤＲＡＭインタフェイス４００２を接続し、ホスト４０４０とＳＤＲＡＭ４０１０の間のデータ転送を中継する機能を有する。制御装置４０３０は、ＳＤＲＡＭ４０１０の所定の領域に保持されたデータをフラッシュメモリ４０２０の所定の領域に転送するストア機能を有する。制御装置４０３０は、フラッシュメモリ４０２０の所定の領域に保持されたデータをＳＤＲＡＭ４０１０の所定の領域に転送するロード機能を有する。制御装置４０３０は、所定の手順に従って、ＳＤＲＡＭ４０１０のアドレスとフラッシュメモリ４０２０のアドレスを対応付けるアドレス対応付け機能を有する。制御装置４０３０は、制御用レジスタ４０３１を有する。制御用レジスタ４０３１は、制御装置４０３０が動作する際に必要となる各種情報を格納するためのレジスタである。
【００３５】
制御用レジスタ４０３１の一部あるいは全ては、ホスト４０４０が書換えることができる。制御用レジスタ４０３１の一部あるいは全ては、ホスト４０４０が読出すことができる。
【００３６】
ホスト４０４０が制御用レジスタ４０３１を書換える場合は、ホスト４０４０がＳＤＲＡＭ互換インタフェイス４００１によって制御用レジスタ４０３１の所定のアドレスに所定の書式のデータを書込むことで行なう。ホスト４０４０が制御用レジスタ４０３１の読出す場合は、ホスト４０４０がＳＤＲＡＭ互換インタフェイス４００１によって制御用レジスタ４０３１の所定のアドレスから所定のデータを読出すことで行なう。
【００３７】
制御装置４０３０は、任意の制御用レジスタ４０３１にアクセスできる。あるいは、所定のレジスタを書換禁止としたり、読出し禁止とすることもできる。
【００３８】
制御用レジスタ４０３１のアドレスの指定は、ＳＤＲＡＭのアドレス指定と同様の手順で行なうことができる。制御用レジスタ４０３１は、例えばホスト４０４０がメモリ装置４０００に各種動作指示を発行するための領域を有する。制御用レジスタ４０３１は、例えばホスト４０４０がメモリ装置４０００の動作状態を知るための情報を格納する領域を有する。制御用レジスタ４０３１は、例えばストア実行条件情報を格納するための領域を有する。制御用レジスタ４０３１は、例えばロード実行条件情報を格納するための領域を有する。制御用レジスタ４０３１は、例えばアドレス対応付け条件情報を格納するための領域を有する。
【００３９】
制御装置４０３０は、電圧検出装置４０３２を有する。電圧検出装置４０３２は、外部装置からメモリ装置４０００に供給される電源電圧をモニタリングする装置である。電圧検出装置４０３２は、メモリ装置４０００への供給電圧が所定の範囲の値になったこと、あるいは供給電圧が所定の範囲にあること、を検知する機能を有する。例えば、メモリ装置４０００への電源投入時は、電源電圧が所定の値より大きくなったことを検知する。所定の値とは、例えば制御装置４０３０が正常動作可能な電圧値や、ＳＤＲＡＭ４０１０が正常動作可能な電圧値や、フラッシュメモリ４０２０が正常動作可能な電圧値等である。また、例えばメモリ装置４０００の電源電圧が所定の値よりも小さくなったことを検知する。所定の値とは、例えば制御装置４０３０が正常動作可能な電圧値や、ＳＤＲＡＭ４０１０が正常動作可能な電圧値や、フラッシュメモリ４０２０が正常動作可能な電圧値等である。
【００４０】
制御装置４０３０は、電圧検出装置４０３２を用いることで例えば電源が所定の値以上になったらフラッシュメモリ４０２０の所定の領域のデータをＳＤＲＡＭ４０１０の所定の領域にロードし、電源が所定の値以下になったらＳＤＲＡＭ４０１０の所定の領域のデータをＳＤＲＡＭ４０１０の所定の領域にストアする、といった処理を行なうことができる。
【００４１】
次にメモリ装置４０００のメモリエリアの構成例について説明する。
【００４２】
メモリ装置４０００は、ＳＤＲＡＭ４０１０のメモリエリア内に、少なくとも一つ以上の不揮発エリア４０１１を構成する。
【００４３】
不揮発エリア４０１１とは、フラッシュメモリ４０２０を用いたミラーリング４０６３を行なうエリアである。
【００４４】
ＳＤＲＡＭ４０１０のメモリエリアのうち、不揮発エリア４０１１としないエリアを揮発エリア４０１２とする。
【００４５】
ここでは、フラッシュメモリ４０２０のミラーエリア４０２１に格納されているデータをＳＤＲＡＭ４０１０の不揮発エリア４０１１に格納されているデータに一致させること、あるいは、ＳＤＲＡＭ４０１０の不揮発エリア４０１１に格納されているデータの複製をフラッシュメモリ４０２０のミラーエリア４０２１に格納すること、をミラーリング４０６３と呼ぶことにする。ただしフラッシュメモリ４０２０のミラーエリア４０２１は、フラッシュメモリ４０２０の不良領域を除いた論理アドレスで管理する。
【００４６】
メモリ装置４０００は、フラッシュメモリ４０２０のメモリエリア内に、少なくともＳＤＲＡＭ４０１０のミラーリング４０６３を行なうためのミラーエリア４０２１と、制御用レジスタ４０３１を格納するための制御用レジスタ格納エリア４０２２と、を有する構成とする。ミラーエリア４０２１は少なくとも、ＳＤＲＡＭ４０１０の不揮発エリア４０１１に格納された全てのデータを格納できるだけのメモリエリアを有する構成とする。
【００４７】
ＳＤＲＡＭ４０１０は、揮発性のメモリであるため、ＳＤＲＡＭ４０１０に書き込まれたデータは、メモリ装置４０００への電源供給を停止すると失われる。しかし、不揮発エリア４０１１に格納されたデータはフラッシュメモリ４０２０のミラーエリア４０２１にミラーリングしておくことができるため、電源遮断後も保持しておくことができる。揮発エリア４０１２に格納されたデータは、電源遮断により失われる。ホスト４０４０は、ＳＤＲＡＭ互換インタフェイス４００１を用いて所定のアドレスを指定することで、ＳＤＲＡＭ４０１０の不揮発エリア４０１１、ＳＤＲＡＭ４０１０の揮発エリア４０１２、制御用レジスタ４０３１にアクセスできる。
【００４８】
次に、メモリ装置４０００におけるデータの伝達経路の例について説明する。
【００４９】
データアクセス４０５１は、ホスト４０４０がＳＤＲＡＭ４０１０に対してＳＤＲＡＭ互換インタフェイス４００１を用いてアクセスする経路である。このとき、ホスト４０４０は、不揮発エリア４０１１並びに揮発エリア４０１２の双方に自由にアクセスできる。
【００５０】
レジスタ読出し４０５２は、ホスト４０４０がＳＤＲＡＭ互換インタフェイス４００１を用いて制御用レジスタ４０３１に格納された各種情報を読み出す経路である。レジスタ書込み４０５３は、ホスト４０４０がＳＤＲＡＭ互換インタフェイス４００１を用いて制御用レジスタ４０３１に各種情報を書込む経路である。電源供給開始４０６１は、メモリ装置４０００への電源供給が開始された場合に、ミラーエリア４０２１から不揮発エリア４０１０へデータをロードする経路である。ロード４０６２は、ホスト４０４０からメモリ装置４０００にロード実行指示が発行された場合などにミラーエリア４０２１から不揮発エリア４０１０へデータをロードする経路である。ストア４０６２は、ホスト４０４０からメモリ装置４０００にストア実行指示が発行された場合などに不揮発エリア４０１０からミラーエリア４０２１へデータをストアする経路である。電源供給停止４０６１は、メモリ装置４０００への電源供給が停止される場合に、不揮発エリア４０１０からミラーエリア４０２１へデータをストアする経路である。
【００５１】
次に、以上のように構成したメモリ装置４０００の動作の例について説明する。
【００５２】
図25は、電源供給開始から電源供給停止までのメモリ装置４０００の動作の一例を示すフロー図である。まずホスト４０４０は、メモリ装置４０００に電源供給を開始する（４１０１）。メモリ装置４０００は、電源供給が開始されると、フラッシュメモリ４０２０のミラーエリア４０２１のデータをＳＤＲＡＭ４０１０の不揮発エリア４０１１にロードする。
【００５３】
次にロード処理のフローの一例を説明する。メモリ装置４０００は、電圧検出装置４０３２が動作可能な値まで供給電圧が上昇すると、制御用レジスタ４０３１にビジー信号をセットする（４１０２）。ビジー信号は制御用レジスタ４０３１の所定のアドレスに所定の書式で格納する。ホスト４０４０は、制御用レジスタ４０３１のアドレスのデータをポーリングすることで、メモリ装置４０００の内部状態を知ることができる。ロード処理実行中は、ＳＤＲＡＭ互換インタフェイス４００１とＳＤＲＡＭインタフェイス４００２は電気的に分離する。
【００５４】
上記処理により、ＳＤＲＡＭ互換インタフェイス４００１を使用するホスト４０４０から制御用レジスタ４０３１へのアクセスと、ＳＤＲＡＭインタフェイス４００２を使用するフラッシュメモリ４０２０からＳＤＲＡＭ４０１０へのロード処理を並行して実行することができる。メモリ装置４０００は、電圧検出装置４０３２によって、電源供給の状態を監視し、供給電圧が所定の値になるまで待機する（４１０３）。ここで所定の値とは、例えばＳＤＲＡＭ４０１０並びにフラッシュメモリ４０２０が共に正常動作可能な電圧値である。
【００５５】
次に、フラッシュメモリ４０２０の制御用レジスタ格納エリア４０２２から、各種制御用情報を読出し、制御用レジスタ４０３１に格納する（４１０４）。ここで、フラッシュメモリ４０２０の制御用レジスタ４０３１格納エリアの内容の一部あるいは全部を制御装置４０３０の制御用レジスタ４０３１に読み出すことをレジスタ復帰と呼ぶことにする。
【００５６】
次に読み出した制御用レジスタ４０３１内の、アドレス対応付け情報に基づき、フラッシュメモリ４０２０のミラーエリア４０２１のデータをＳＤＲＡＭ４０１０の不揮発エリア４０１１にロードする（４１０５）。ロードが終了すると、制御用レジスタ４０３１のビジー信号を解除する（４１０６）。
【００５７】
ロード処理が終了すると、それ以降、メモリ装置４０００は、ホスト４０４０からシャットダウン指示を受け付ける（４１０７）までＳＤＲＡＭ互換メモリとして動作する（４１０８）。シャットダウン指示とは、ホスト４０４０からメモリ装置４０００に対して電源供給を停止することを通知するための指示であり、ホスト４０４０が制御用レジスタ４０３１の所定のアドレスに所定の書式のデータを書込むことで実現する。  メモリ装置４０００は、ホスト４０４０からシャットダウン指示を受け付けると、ＳＤＲＡＭ４０１０の不揮発エリア４０１１のデータをフラッシュメモリ４０２０のミラーエリア４０２１にミラーリングする。
【００５８】
次に、ストア処理のフローの一例を説明する。メモリ装置４０００は、ホスト４０４０からシャットダウン指示を受け付けると、制御用レジスタ４０３１にビジー信号をセットする（４１０９）。ビジー信号は制御用レジスタ４０３１の所定のアドレスに所定の書式で格納する。ホスト４０４０は、制御用レジスタ４０３１のアドレスのデータをポーリングすることで、メモリ装置４０００の内部状態を知ることができる。ストア処理実行中は、ＳＤＲＡＭ互換インタフェイス４００１とＳＤＲＡＭインタフェイス４００２は電気的に分離する。上記処理により、ＳＤＲＡＭ互換インタフェイス４００１を使用するホスト４０４０から制御用レジスタ４０３１へのアクセスと、ＳＤＲＡＭインタフェイス４００２を使用するＳＤＲＡＭ４０１０からフラッシュメモリ４０２０へのストア処理を並行して実行することができる。
【００５９】
次に読み出した制御用レジスタ４０３１内の、アドレス対応付け情報に基づき、ＳＤＲＡＭ４０１０の不揮発エリア４０１１のデータをフラッシュメモリ４０２０のミラーエリア４０２１にストアする（４１１０）。
【００６０】
次に、制御用レジスタ４０３１に格納された各種制御用信号をフラッシュメモリ４０２０の制御用レジスタ格納エリア４０２２に書込む（４１１１）。ここで、制御装置４０３０の制御用レジスタ４０３１の内容の一部あるいは全部をフラッシュメモリ４０２０の制御用レジスタ４０３１格納エリアに書込むことをレジスタ退避４０７１と呼ぶことにする。レジスタ退避が終了すると、制御用レジスタ４０３１のビジー信号を解除する（４１１２）。ホストは、制御用レジスタ４０３１のポーリングにより、ビジーが解除されたことを検出すると、メモリ装置４０００への電源供給を停止する。
【００６１】
以上述べた手順を実行した場合、メモリ装置４０００へ電源供給の停止により、メモリ装置４０００内のＳＤＲＡＭ４０１０に保持されているデータは失われるが、その一部あるいは全てのデータのコピーを、フラッシュメモリ４０２０上に保持しておくことができ、次回メモリ装置４０００に電源供給が開始された場合は、フラッシュメモリ４０２０上に保持しておいたデータを利用することができる。
【００６２】
次にメモリ装置４０００がＳＤＲＡＭ互換メモリとして使用するとき（４１０８）の動作についてより詳細に説明する。
【００６３】
図26は、メモリ装置４０００がＳＤＲＡＭ互換メモリとして動作するときの処理フローの一例を示す図である。メモリ装置４０００はホスト４０４０からＳＤＲＡＭインタフェイス４００１を介してリード、ライト、リフレッシュなどの各種ＳＤＲＡＭ動作指示を受け付ける（４２０１）。
【００６４】
次に受付た動作指示により処理を分岐する。受付た動作指示が、リードあるいはライトであった場合は、ホスト４０４０に指定されたメモリアドレスを判定する（４２０２）。受付た動作指示が、リードあるいはライト以外であった場合、あるいは、指定されたメモリアドレスがＳＤＲＡＭのメモリエリアを指定している場合は、ＳＤＲＡＭ互換インタフェイス４００１信号をＳＤＲＡＭインタフェイス４００２にスルーパスする（４２０３）。本処理により、メモリ装置４０００はＳＤＲＡＭ互換メモリとして動作することが可能となる。
【００６５】
受付た動作指示が、リードあるいはライトであり、かつ指定されたメモリアドレスが制御用レジスタ４０３１を指定している場合は、リード指示であるか、ライト指示であるかによって処理を分岐する（４２０４）。受付た動作指示がライトであった場合は、制御用レジスタ４０３１の指定されたアドレスに、指定されたデータを書込む（４２０５）。受付た動作指示がリードであった場合は、制御用レジスタ４０３１の指定されたアドレスに格納されたデータを所定の書式で、ＳＤＲＡＭ互換インタフェイス４００１を介してホスト４０４０に出力する（４２０７）。本処理により、メモリ装置４０００は、ＳＤＲＡＭインタフェイスに信号ピンを追加することなく、ホスト４０４０からの動作指示を受付けること、並びにメモリ装置４０００の動作状態等の各種情報をホスト４０４０に通知することが可能となる。
【００６６】
次に、制御用レジスタ４０３１へのアクセスによりホスト４０４０から動作指示が発行された場合は、指定された動作を開始する（４２０６）。ここで動作は、例えばロード処理や、ストア処理や、アドレス対応付け処理などである。動作の実行中は、ＳＤＲＡＭ４０２０へのアクセスの競合を防ぐため、例えばホスト４０４０のＳＤＲＡＭアクセスを禁止するか、あるいはアクセスを無視する。あるいは、例えばＳＤＲＡＭ４０２０を複数個持つ構成にしたり、あるいは例えばＳＤＲＡＭ４０２０を複数バンクに独立してアクセス可能な構成にし、複数の処理を並行に実行できる構成としても良い。例えば４２０１〜４２０３、あるいは４２０１〜４２０６までの処理は、図25の４１０７、４１０８に示すようにホストからシャットダウン指示が発行するまで繰り返す。すなわち、ホスト４０４０はメモリ装置４０００をＳＤＲＡＭ互換メモリとして使用することができる。
【００６７】
なお、ここではメモリ装置４０００内部にＳＤＲＡＭを使用する例を説明したが、他のメモリ、例えばＤＤＲ−ＳＤＲＡＭ（ダブルデータレートＳＤＲＡＭ）などを使用する構成とすることもできる。また、ここではメモリ装置４０００とホスト４０４０を接続するインタフェイスとしてＳＤＲＡＭ互換インタフェイス４００１を使用する例を説明したが、他のインタフェイス、例えばＤＤＲ−ＳＤＲＡＭインタフェイスを使用する構成とすることもできる。また、ここでは、不揮発メモリとしてフラッシュメモリ４０２０を使用する例を説明したが、他の不揮発性メモリを使用することもできる。
【００６８】
次に、本発明を適用したメモリ装置４０００のより詳細な実施形態について説明する。
【００６９】
図１は、本発明を適用したメモリ装置１０１の実施形態の内部構成の一例を示している。メモリ装置１０１は、不揮発性メモリであるフラッシュメモリ１０２、揮発性メモリであるＳＤＲＡＭ（シンクロナスＤＲＡＭ）１０３、及びこれらのメモリを制御するメモリ制御部１０４から構成される。メモリ制御部１０４は、ホスト１１１からの要求に応じて、ホスト１１１とメモリ装置１０１、並びにフラッシュメモリ１０２とＳＤＲＡＭ１０３間のデータ転送等を制御する。ホスト１１１は、通常、ＳＤＲＡＭインタフェイス１１２を介してＳＤＲＡＭ１０３を直接アクセスするが、特定アドレスへの書き込みを行うことにより、フラッシュメモリ１０２とＳＤＲＡＭ１０３間のデータ転送や、フラッシュメモリ１０２のフォーマット等、メモリ装置１０１の内部処理を指示することができる。ホスト１１１とは、例えば、携帯電話、携帯情報端末（ＰＤＡ）、パーソナルコンピュータ、音楽再生（及び録音）装置、カメラ、ビデオカメラ、セットトップボックス端末等が該当する。
【００７０】
メモリ制御部１０４は、データ転送制御部１０５、フラッシュメモリインタフェイス制御部１０６、ＳＤＲＡＭインタフェイス制御回路１０７、及びデータバッファ１０８から構成される。ホスト１１１がＳＤＲＡＭ１０３を直接アクセスする場合、データ転送制御部１０５及びＳＤＲＡＭインタフェイス制御回路１０７はスルーパスされる。フラッシュメモリ１０２とＳＤＲＡＭ１０３間のデータ転送は、両デバイス間の転送速度差を吸収するため、データバッファ１０８を介して行われる。フラッシュメモリ１０２からデータバッファ１０８へのデータの転送（フラッシュメモリ１０２からの読み出し）の際は、フラッシュメモリインタフェイス制御部１０６内のＥＣＣ制御回路１０９が、フラッシュメモリ１０２から読み出されたデータに誤りが無いかどうかをチェックし、誤りがある場合はデータの訂正を行う。その際、読み出し対象となるセクタが不良セクタである場合、代替セクタ制御回路１１０が不良セクタに対する代替セクタを検出し、検出された代替セクタからデータが読み出される。データバッファ１０８からフラッシュメモリ１０２へのデータの転送（フラッシュメモリ１０２への書込み）の際は、読み出されたデータはデータバッファ１０８からデータ転送制御部１０５を介してフラッシュメモリインタフェイス制御部１０６に転送される。フラッシュメモリインタフェイス制御部１０６は、転送データに対するＥＣＣを生成する。生成されたＥＣＣは、転送データと合わせてフラッシュメモリ１０２に書き込まれる。その際、書込み対象となるセクタが不良セクタである場合、代替セクタ制御回路１１０にて不良セクタに対する代替セクタを検出し、検出された代替セクタへデータが書き込まれる。
【００７１】
図２は、ＳＤＲＡＭ１０３並びにフラッシュメモリ１０２のアドレス空間並びに使用方法の一例を示す図である。ＳＤＲＡＭ１０３のアドレス空間は、システム用ワーク領域２０１、コマンド／ステータス保持領域２０２、揮発領域２０３、及び不揮発領域２０４から構成される。システム用ワーク領域２０１には、ホスト１１１がシステムを管理するために必要な情報が格納される（但し、後述の揮発領域２０３に格納しても構わない）。コマンド／ステータス保持領域２０２は、メモリ装置１０１に対して内部処理を指示するために設けられる領域である。揮発領域２０３は、ホスト１１１がアプリケーションを処理する上で必要な情報を格納するための領域である。揮発領域２０３の内容は、メモリ装置１０１の電源が遮断される際に消去される。不揮発領域２０４には、電源遮断後も保持する必要のある情報が格納される。ＳＲＤＡＭ１０３は揮発性メモリであるため、ＳＤＲＡＭ１０３上の不揮発領域２０４に格納された情報は、電源遮断前にフラッシュメモリ１０２にコピーされ、フラッシュメモリ１０２上で保持される。
【００７２】
上述のＳＤＲＡＭ１０３上のアドレス空間を利用して以下のような処理が可能となる。電源投入後に、フラッシュメモリ１０２上のプログラムデータをＳＤＲＡＭ１０２の揮発領域２０３にコピーし、ホスト１１１はＳＤＲＡＭ１０３上の揮発領域２０３をアクセスすることによりプログラムを利用することができる。この場合、電源遮断時に揮発領域２０３に格納されていたプログラムデータは破棄されるが、フラッシュメモリ１０２上にプログラムデータが保持されているので問題ない。また、電源投入後に、フラッシュメモリ１０２上のユーザデータをＳＤＲＡＭ１０３の不揮発領域２０４にコピーし、ホスト１１１はＳＤＲＡＭ１０２上の不揮発領域２０４をアクセスすることによりユーザデータを利用することができる。ユーザデータが変更若しくは追加されている場合は、電源遮断前にユーザデータはフラッシュメモリ１０２にコピーされ、フラッシュメモリ１０２上で保持される。
【００７３】
図３は、ホスト１１１がメモリ装置１０１に対して指示する処理内容、即ちコマンドの一例を示す図である。コマンドのアドレスは上述のコマンド／ステータス保持領域２０２にマッピングされ、コマンド／ステータス保持領域２０２の先頭アドレスＡ２０９からオフセットアドレス３０１を加算したアドレスに配置される。アドレス０は、揮発領域２０３の先頭アドレス（ＡＤＲｓｄＢ２１０）を、アドレス１は、揮発領域２０３のサイズ（ｙ）を指定する。アドレス２は、不揮発領域２０４の先頭アドレス（ＡＤＲｓｄＣ２１１）を、アドレス３は、不揮発領域２０４のサイズ（ｚ）を指定する。これにより、ＳＤＲＡＭ１０３上の任意のアドレス空間に揮発領域２０３並びに不揮発領域２０４をマッピングすることが可能となる。なお、本例では、コマンド／ステータス保持領域２０２は予め決められた固定値になっているが、上述と同様の規定を施すことにより、任意の空間にマッピングすることも可能である。この場合、ホストが最初にアクセスするためのコマンド／ステータス保持領域２０２の先頭アドレス（ＡＤＲｓｄＡ２０９）を、予め該メモリ装置１０１内部のレジスタやフラッシュメモリ１０２に格納しておく。アドレス４は、フラッシュメモリ１０２のフォーマットを指示する。アドレス５は、フラッシュメモリ１０２に対するデータ転送若しくは消去時の開始セクタアドレス（Ｄｔｘ２１３）を指定する。アドレス６は、ＳＤＲＡＭ１０３に対するデータ転送開始アドレス（Ｃｔｘ２１２）を指定する。アドレス７は、フラッシュメモリ１０２とＳＤＲＡＭ１０３間のデータ転送サイズ、若しくはフラッシュメモリ１０２のデータ消去サイズを指定する。アドレス８は、フラッシュメモリ１０２とＳＤＲＡＭ１０３間のデータ転送を起動する。アドレス９は、省電力モードを指定する。アドレス９に対応するコマンドが発行された場合、フラッシュメモリ１０２、並びにメモリ１０２を制御するための回路への電源が遮断される。
【００７４】
メモリ装置１０１は、ホスト１１１が発行したコマンドの処理状態をホスト１１１に通知するために、アドレスｎ＋１にステータス／エラー情報３１４を格納する。ホスト１１１は、あるコマンドを発行した後、アドレスｎ＋１で示される記憶領域にアクセスすることにより、発行コマンドの処理結果を知ることができる。
【００７５】
図４は、ステータス並びにエラーの内容の一例を示す図である。Ｂｉｔ０は、コマンド処理中であることを示す（４０１）。Ｂｉｔ１は、処理が正常に終了したことを示す（４０２）。Ｂｉｔ２は、前述のＥＣＣ訂正を行い、訂正可能であったことを示す（４０３）。Ｂｉｔ３は、ＥＣＣ訂正を行ったが訂正不可能であったことを示す（４０４）。Ｂｉｔ４は、コマンドの処理が実行できなかったことを示す（４０５）。
【００７６】
図５は、上述のコマンド発行時におけるシステムの処理の手順を示すフローチャートである。ホスト１１１は、上述のアドレスに対してデータをライトを行うことにより、メモリ装置１０１に対してコマンドを発行する（５０１）。コマンドを受け取ったメモリ装置１０１は、コマンドをデコードし（５０８）、デコード結果に基づいて発行コマンドに対する内部処理を実行する（５０９）。処理終了後、メモリ装置１０１は、結果をステータス／エラー情報を格納するアドレスｎ＋１に書き込む（５１０）。ホスト１１１はアドレスをリードして（５０２）、コマンドで指示した処理が正常に終了したかどうか判定する（５０３）。正常に終了しなかった場合（５０５）は、コマンドで指示した処理をリトライするか、若しくは異常終了する（５０７）。
【００７７】
本発明では、図１に示したメモリ制御部１０４に、上述の処理を実行するための機能を施している。以下、メモリ制御部１０４の中核を成すデータ転送制御部１０５について詳細に説明する。
【００７８】
図６は、データ転送制御部１０５の内部構成を示す図である。データ転送制御部１０５は、コマンドデコーダ６０１、シーケンサ６０２、アドレスマッピングテーブル６０３、フラッシュアドレス（ＡＤＲｆｌ）生成回路６０４、セクタカウンタ６０５、フラッシュ−バッファ転送回路６０６、ＳＤＲＡＭ−バッファ転送回路６０７、ＳＤＲＡＭアドレス（ＡＤＲｓｄ）生成回路６０８、ＭＵＸ／ＤＥＭＵＸ０（６０９）、バッファアドレス（ＡＤＲｂｕ）生成回路６１０、及びＭＵＸ／ＤＥＭＵＸ１（６１１）から構成される。コマンドデコーダ６０１は、ホスト１１１が発行したコマンドの内容を解釈する。シーケンサ６０２は、データ転送制御部１０５全体の処理を管理するものである。
【００７９】
図７は、シーケンサ６０２の状態遷移の一例を示す図である。メモリ装置１０１に電源が投入された後、シーケンサ６０２は、ＳＤＲＡＭモード７０２に移行し、メモリ装置１０１はＳＤＲＡＭ１０３として動作する。その後、ホスト１１１が発行するコマンドによってシーケンサ６０２の状態が遷移する。ホスト１１から、フラッシュメモリ１０２のデータ転送を起動するコマンドＣＭＤｔｘ７０６（図３に示したアドレス８）が発行された場合、シーケンサ６０２は、フラッシュ転送モード７０３に遷移する。データ転送の処理が終了し、そのステータス情報をライトするＳＴｔｘ７０７（図３のアドレスｎ＋１へのライト）の書き込み時に、シーケンサ６０２は、再度ＳＤＲＡＭモード７０２に遷移する。また、フラッシュメモリ１０２をフォーマットするコマンドＣＭＤｆｍ７０８（図３のアドレス４）が発行された場合、シーケンサ６０２はフラッシュフォーマットモード７０４に遷移し、処理終了後、ステータスの書き込みＳＴｆｍ７０９実行後にＳＤＲＡＭモード７０２に遷移する。フラッシュメモリ１０２上のデータを消去するコマンドＣＭＤｅｒ７１０（図３のアドレス１０）が発行された場合、シーケンサ６０２は、フラッシュデータ消去モード７０５に遷移し、処理終了後、ステータスの書き込みＳＴｅｒ７１１実行後にＳＤＲＡＭモード７０２に遷移する。
【００８０】
図６に戻って説明を続ける。アドレスマッピングテーブル６０３は、ＳＤＲＡＭ１０３におけるアドレス空間上の不揮発領域２０４をフラッシュメモリ１０２の論理セクタアドレス２０５に割り当てるものである。ＡＤＲｆｌ生成回路６０４は、フラッシュメモリ１０２上の論理セクタアドレスを生成する。セクタカウンタ６０５は、ホスト１１１から指示された転送サイズに基づき、フラッシュメモリ１０２のデータ転送セクタ数を管理する。フラッシュ−バッファ転送回路６０６は、フラッシュメモリ１０２とデータバッファ１０８間のデータ転送を実行する。同様に、ＳＤＲＡＭ−バッファ転送回路６０７は、ＳＤＲＡＭ１０３とデータバッファ１０８間のデータ転送を実行する。ＡＤＲｓｄ生成回路６０８は、ＳＤＲＡＭ１０３にアクセスするためのアドレスを生成する。ＭＵＸ／ＤＥＭＵＸ０（６０９）は、書き込み時、ホスト１１１と接続されたＳＤＲＡＭインタフェイス１１２バスとデータ転送制御部１０５において生成されたＳＤＲＡＭインタフェイスバス１１２のいずれかを選択し、ＳＤＲＡＭインタフェイス制御回路１０７に送る。また、読み出し時は、ＳＤＲＡＭインタフェイス制御回路１０７から送られるＳＤＲＡＭ１０３のデータを、ホスト１１１と接続されたＳＤＲＡＭインタフェイス１１２のデータバス若しくはＳＤＲＡＭ−バッファ転送回路６０７に送る。ＡＤＲｂｕ生成回路６１０は、データバッファ１０８のアドレスを生成する。ＭＵＸ／ＤＥＭＵＸ１（６１１）は、データバッファ１０８への書き込み時において、フラッシュ−バッファ転送回路６０６若しくはＳＤＲＡＭ−バッファ転送回路６０７の出力データバスをデータバッファ１０８に送る。また、データバッファ１０８からデータを読み出す場合は、フラッシュ−バッファ転送回路６０６若しくはＳＤＲＡＭ−バッファ転送回路６０７に該データを送る。
【００８１】
以下、フラッシュメモリ１０２からＳＤＲＡＭ１０３へのデータ転送処理を例に挙げ、各回路の動作を説明する。
【００８２】
ホスト１１１は、データ転送を起動する前に、フラッシュメモリ１０２側の転送始論理セクタアドレス（Ｄｔｘ２１３）を指定する（図３のアドレス５）。アドレスの指定方法としては、Ｄｔｘ２１３を指定する以外に、ＳＤＲＡＭ１０３上のアドレス（Ｃｔｘ２１２）を指定する方法もある。その場合、アドレスマッピングテーブル６０３に基づいて、Ｃｔｘ２１２はＤｔｘ２１３に変換される。Ｄｔｘ２１３はＡＤＲｆｌ生成回路６０４にて保持され、フラッシュメモリインタフェイス制御部１０６に送られる。ホスト１１１は、データ転送サイズを設定するコマンド（図３のアドレス７）を用いて転送サイズを設定する。設定された転送サイズは、セクタカウンタ６０５にて保持される。ここで、転送サイズの指定がバイト単位であれば、転送サイズの情報は、カウンタ６０５にてセクタ単位に変換され、フラッシュメモリインタフェイス制御部１０６に送られる。更にホスト１１１は、ＳＤＲＡＭ１０３の転送開始アドレスＣｔｘ２１２を設定するコマンド（図３のアドレス６）を発行する。Ｃｔｘ２１２はＡＤＲｓｄ生成回路６０８にて保持される。
【００８３】
データ転送を起動するコマンドＣＭＤｔｘ７０６が発行されると、コマンドデコーダ６０１においてそのコマンド内容が解釈される。シーケンサ６０２は、フラッシュ転送モード７０３に状態遷移し、ＭＵＸ／ＤＥＭＵＸ０（６０９）を介して、ＡＤＲｓｄ生成回路６０８並びにＳＤＲＡＭ−バッファ転送回路６０７の出力をＳＤＲＡＭインタフェイス制御回路１０７に送るように指示する。また、フラッシュメモリインタフェイス制御部１０６に対して、論理セクタアドレスＤｔｘ２１３から指定された転送セクタ数のデータをフラッシュメモリ１０２から読み出すように指示する。読み出されたセクタデータ（ＳＣＴｎ）は、フラッシュ−バッファ転送回路６０６及びＭＵＸ／ＤＥＭＵＸ１（６１１）を介してデータバッファ１０８に転送される。その後、データは、データバッファ１０８からＳＤＲＡＭ−バッファ転送回路６０７及びＭＵＸ／ＤＥＭＵＸ０（６０９）を介してＳＤＲＡＭインタフェイス制御回路１０７に転送され、ＳＤＲＡＭ１０３に書き込まれる。
【００８４】
図８は、データ転送のタイミング例を示した図である。一つのセクタ（ＳＣＴ０（８０２））がフラッシュメモリ１０２からデータバッファ１０８に転送されると、データバッファ１０８からＳＤＲＡＭ１０３へのデータ転送が開始され（８０４）、併せてフラッシュメモリ１０２からデータバッファ１０８へのデータ転送が継続される（ＳＣＴ１の転送）。なお、ＳＤＲＡＭ１０３からフラッシュメモリ１０２へのデータ転送は上述の転送経路とは逆の経路で行われる。
【００８５】
以上説明したように、フラッシュメモリ１０２からＳＤＲＡＭ１０３へのデータ転送をホスト１１１からのコマンドに応じてあらかじめ実施しておくことによって、ホスト１１１は、ＳＤＲＡＭ１０３上のデータを高速にアクセスすることができる。またＳＤＲＡＭ１０３上のデータをフラッシュメモリ１０２に転送することにより、電源遮断後でもデータを保持することができる。
【００８６】
図９は本発明を適用したメモリ装置９０１の第二の実施形態を示す図である。メモリ装置９０１は、ホスト９０６との接続インタフェイスとして、図１で示したＳＤＲＡＭインタフェイス１１２の他に、ＭｕｌｔｉＭｅｄｉａＣａｒｄ（ＭｕｌｔｉＭｅｄｉａＣａｒｄはＩｎｆｉｎｅｏｎＴｅｃｈｎｏｌｏｇｉｅｓＡＧの登録商標。以下、「ＭＭＣ」と略記する）インタフェイス９０７を持つ。ＭＭＣは、フラッシュメモリ１０２を記憶媒体とするメモリカードであり、ホスト９０６はＭＭＣコマンドを発行することによってフラッシュメモリ１０２のデータ読み出し並びに書き込みを行う。即ち、メモリ装置９０１は、前述のメモリ間転送等の機能の他に、ＭＭＣとしての機能も持つ。従って、メモリ装置９０１におけるＭＭＣインタフェイス９０７は、ＭＭＣ仕様に準拠するものである。
【００８７】
ＭＭＣインタフェイス９０７は、図１０に示すように、チップセレクト端子（ＣＳ）１００１、コマンド端子（ＣＭＤ）１００２、２本のグランド端子（ＧＮＤ１）１００３、１００６、ホスト９０６からの電源供給端子（ＶＣＣ１）１００４、クロック端子（ＣＬＫ１）１００５、及びデータ（ＤＡＴ）１００７の７つの端子から構成される。ＣＳ１００１は、ＭＭＣのＳＰＩモードの動作において使用される入力端子であり、ロウレベルでアクティブとなる。ＣＭＤ１００２は、ホスト９０６が、ＭＭＣ仕様に準拠したメモリカードコマンドをメモリ装置９０１に送信したり、同仕様に準拠したメモリカードレスポンスをメモリ装置９０１から受信するために使用する入出力端子である。ＤＡＴ１００７は、ホスト９０６が、メモリカードインタフェイス仕様に準拠した形式の入力データをメモリ装置９０１に送信したり、同仕様に準拠した形式の出力データをメモリ装置９０１から受信するために使用する入出力端子である。ＣＬＫ１（１００５）は、ホスト９０６から供給されるクロック信号が入力される端子である。ホスト９０６が、ＣＭＤ１００２を通してメモリカードコマンド、メモリカードレスポンスを送受信したり、ＤＡＴ１００７を通してホストデータを送受信するときに、ＣＬＫ１（１００５）にクロック信号が入力される。なお、ＭＭＣインタフェイス９０７の転送速度がシステム上ボトルネックとなる場合、ＭＭＣインタフェイス９０７の仕様を変更して、ＣＬＫ１（１００５）のクロック周波数を高めたり、ＤＡＴ１００７を複数本使用してデータをパラレルに転送してもよい。
【００８８】
メモリ装置９０１の内部構成は、図１で示したメモリ装置１０１の内部構成と比べて、ＭＭＣインタフェイス制御部９０３が追加されており、ＭＭＣインタフェイス制御部９０３がデータ転送制御部９０５に接続されている点が異なる。ここで、前述の実施形態では、ホスト１１１からのコマンド発行がＳＤＲＡＭインタフェイス１１２を介して実行される例を挙げたが、本実施形態の構成では、ＭＭＣインタフェイス９０７を介して実行することが可能である。即ち、図３に示したコマンドを、ＭＭＣのコマンドとして、ホスト９０６からメモリ装置９０１に発行することができる。発行されたコマンドは、ＭＭＣインタフェイス制御部９０３においてコマンド制御回路９０４がその内容を解釈する。これは前述の図６で示したコマンドデコーダ６０１と同じ機能である。
【００８９】
また、上述と同様の機能を実現する形態として、図１３に示すような内部構成を取ってもよい。これは、ＭＭＣとしての機能を実現するために必要な機能を有するＭＭＣ制御部１３０２及びフラッシュメモリ１０２、メモリ統括制御部１３０４、並びにＳＤＲＡＭ１０３から構成される。メモリ統括制御部１３０４は、ＭＭＣインタフェイス９０７とＳＤＲＡＭインタフェイス１１２を変換する機能を持つインタフェイス変換制御回路１３０５及びＳＤＲＡＭインタフェイス制御回路１０７から構成される。この構成の場合、ＭＭＣ用の制御ＬＳＩをそのまま流用することによって、ＭＭＣインタフェイス９０７を持たないホスト１３０６に対しても（ＳＤＲＡＭインタフェイス１１２を介して）第二の実施形態と同様の機能を提供することができる。
【００９０】
なお、本発明は上記ＭＭＣインタフェイス９０７に限らず、様々なインタフェイスに適用できる。図１１及び図１２は、それぞれ、本発明をＳＤカード（幅２４ミリメートル、長さ３２ミリメートル、厚さ２。１ミリメートルで、９つの外部端子をもち、フラッシュメモリを搭載した小型メモリカード）とメモリースティック（メモリースティックはソニー株式会社の登録商標である）のインタフェイスに適用したメモリ装置１１０１、１２０１の内部構成の概略を示す図である。
【００９１】
ＳＤカード外部端子は９つの端子からなり、それらの位置は、端からＤａｔａ２端子１１０４、Ｄａｔａ３端子１１０５、Ｃｏｍ端子１１０６、Ｖｓｓ端子１１０７、Ｖｄｄ端子１１０８、Ｃｌｏｃｋ端子１１０９、Ｖｓｓ端子１１１０、Ｄａｔａ０端子１１１１、Ｄａｔａ１端子１１１２の順で並んでいる。Ｖｄｄ端子１１０８は電源供給端子、Ｖｓｓ端子１１０７はグランド端子、Ｄａｔａ０端子１１１１とＤａｔａ１端子１１１２とＤａｔａ２端子１１０４とＤａｔａ３端子１１０５はデータ入出力端子、Ｃｏｍ端子１１０６はコマンド入出力端子、Ｃｌｏｃｋ端子１１０９はクロック入力端子である。この場合、外部に接続するＳＤカード対応ホスト１１１４とのインタフェイス仕様にＭＭＣと違いがあるものの、ＭＭＣ外部端子と非常に類似した外部端子を持ち、ＭＭＣと同様に外部からコマンドを発行することにより動作する特徴を持つため、本発明を適用することができる。
【００９２】
一方、メモリースティック外部端子は１０個の端子からなり、それらの位置は、端からＧｎｄ端子１２０４、ＢＳ端子１２０５、Ｖｃｃ端子１２０６、予約端子Ｒｓｖを１つ飛ばしてＤＩＯ端子１２０７、ＩＮＳ端子１２０８、予約端子Ｒｓｖを１つ飛ばしてＳＣＫ端子１２０９、Ｖｃｃ端子１２１０、Ｇｎｄ端子１２１１の順で並んでいる。Ｖｃｃ端子１２０６は電源供給端子、Ｇｎｄ端子１２０４とはグランド端子、ＤＩＯ端子１２０７はコマンドおよびデータ入出力端子、ＳＣＫ端子１２０９はクロック入力端子である。メモリースティックは、外部に接続するメモリースティック対応ホスト１２１３とのインタフェイス仕様にＭＭＣと違いがあるものの、ＭＭＣと同様に外部からコマンドを発行することにより動作する特徴を持つため、本発明を適用することができる。
【００９３】
以上説明したように、ＭＭＣインタフェイス９０７並びにＳＤＲＡＭインタフェイス１１２を有するホスト９０６は、メモリ装置９０１を、高速な揮発並びに不揮発メモリとして使用するだけでなく、ＭＭＣとしても使用することが可能となる。
【００９４】
図１４は、本発明を適用したメモリ装置１４０１の第三の実施形態を示した図である。メモリ装置１４０１は、ホスト１４０８とのインタフェイスとしてＭＭＣインタフェイス１４０７を持つ。なお、本実施形態のメモリ装置１４０１はカード形状であるが、形状についてはカードの形状だけでなく、前述の実施形態と同様に、メモリ装置として扱うこともできる。図１４におけるメモリ装置１４０１の内部構成は、図９で示したメモリ装置９０１の内部構成と比べて、ＭＭＣインタフェイス制御部１４０３においてコマンドリッパ−回路１４０５が追加されており、その出力がデータ転送制御部１４０６に接続されている点が異なる。また、ホスト１４０８との接続にはＳＤＲＡＭインタフェイス１１２は無く、ＭＭＣインタフェイス１４０７だけである点が異なる。その他の構成は図９と変わらない。
【００９５】
前述の実施形態では、ホスト１１１、９０６からＳＤＲＡＭ１０３へのアクセスはＳＤＲＡＭインタフェイス１１２を介して行われる例を示したが、本実施形態の構成では、ＳＤＲＡＭ１０３へのアクセスも、ＭＭＣインタフェイス１４０７を介して行われる。即ち、メモリ装置１４０１は、ＭＭＣとしての機能の他に、ＭＭＣインタフェイス１４０７を介して、フラッシュメモリ１０２とＳＤＲＡＭ１０３間のデータ転送を指示するコマンドを発行したり、ＭＭＣインタフェイス１４０７からＳＤＲＡＭ１０３へのアクセスを行うことが出来る。上述のアクセスを実現する一例として、例えば、新たに定義したＭＭＣコマンドを用いてコマンドのデータ領域にＳＤＲＡＭ１０３へのデータ書き込み若しくは読み出し命令をカプセル化してＭＭＣ１４０１に発行することが考えられる。この場合、ＭＭＣインタフェイス制御部１４０３のコマンド制御回路１４０４においてＳＤＲＡＭ１０３へのアクセスを要求するコマンドを検出し、コマンドリッパ−回路１４０５においてアクセス要求情報を取り出して、データ転送制御部１４０６のコマンドデコーダ６０１（図６参照）に送ることにより、前述の実施形態と同様に、メモリ制御部１４０２からＳＤＲＡＭ１０３へのアクセスが可能になる。
【００９６】
以上説明したように、ＭＭＣインタフェイス１４０７だけを用いて、ＭＭＣとしての機能だけでなく、高速な揮発並びに不揮発メモリとしても使用することが可能となる。
【００９７】
なお、本発明で示したメモリ装置１０１、９０１、１３０１、又は１４０１は、どのような形状にも適用できる。例えば、各メモリチップと制御用チップを１つのパッケージに収納したＬＳＩにしてもよいし、全ての機能を１つの半導体チップ上に収納してもよい。更に、上述したＭＭＣ等メモリーカードの形状に収納してもよい。更に、本発明で示した不揮発性メモリ並びに揮発性メモリの種別については各々フラッシュメモリ１０２、ＳＤＲＡＭ１０３に限るものではなく、例えば不揮発性メモリについて言えば、強誘電体メモリやＭＲＡＭ（磁気メモリ）等でも同様の処理が可能である。
【００９８】
次に、本発明のＳＤＲＡＭ１０３上の不揮発領域管理方法の詳細について述べる。図１５は、ＳＤＲＡＭ１０３の不揮発領域の構成、及びＳＤＲＡＭ１０３の不揮発領域とフラッシュメモリ１０２の記憶領域との対応関係を示す図である。
【００９９】
ＳＤＲＡＭ１０３の不揮発領域は、図のように、用途別に領域ＳＡ１５０１、領域ＳＢ１５０２、領域ＳＣ１５０３、領域ＳＤ１５０４、及び領域ＳＥ１５０５に分けて管理される。各々の領域はフラッシュメモリ１０２上の領域ＦＡ１５１０、領域ＦＢ１５１１、領域ＦＣ１５１２、領域ＦＤ１５１３、領域ＦＥ１(１５１４)、及び領域ＦＥ２(１５１５)に対応付けられている。ＳＤＲＡＭ１０３上の領域とフラッシュメモリ１０２上の領域の対応付けは、一対一でなくてもよく、領域ＳＥ１５０５と領域ＦＥ１（１５１４）及び領域ＦＥ２（１５１５）とを対応付けてもかまわない。尚、これ以上領域を分割して管理してもかまわない。
【０１００】
領域の管理は、アドレスマッピングテーブル６０３内に領域管理テーブル１６０１を用意し、その情報に基づいてデータ転送制御部１０５が管理する。尚、領域管理テーブル１６０１は、他の記録装置上に用意してもかまわない。図１６は、領域管理テーブル１６０１の具体例を示す図である。領域管理テーブル１６０１は、フラッシュメモリ１０２の先頭から、順次領域を割り当てた時の各領域の属性情報を管理する。例えば、ＳＤＲＡＭの不揮発領域が、図１５に示すような領域構成である場合、図１６に示すように各領域の属性が領域管理テーブル１６０１に割り当てられる。各領域に属性を設定することで、ホスト１１１の使用条件に応じてアクセス方式などの特性を設定することが可能となる。
【０１０１】
図１６において、ＯＦＦＳＥＴ  ＡＤＤＲＥＳＳの値ｐは、割り当て可能な領域数の最大値に設定される。領域管理テーブル１６０１の領域情報が保存されていない各領域は、予備領域１６０７として次回領域割り当て時に使用するために、データ転送制御部１０５により管理される。
【０１０２】
図１７は、図１６で説明した領域属性情報の一例である。
【０１０３】
ＳＤＲＡＭ領域の先頭アドレス１７０２は、ＳＤＲＡＭ領域の開始アドレスを指定する。フラッシュ領域の先頭アドレス１７０３は、ＳＤＲＡＭ領域の先頭アドレス１７０２に対応するフラッシュメモリ領域の開始アドレスを指定する。ＳＤＲＡＭ領域サイズ１７０４は、ＳＤＲＡＭ領域のサイズを指定する。更新回数１７０５は、フラッシュメモリ１０２からＳＤＲＡＭ１０３へデータを転送した後、ＳＤＲＡＭ１０３上のデータが何度ホスト１１１により更新されたかを記録する。ＳＤＲＡＭ１０３からフラッシュメモリ１０２へデータが書き込まれると０にクリアされる。更新回数閾値１７０６は、０が指定されると、ＳＤＲＡＭ領域が更新されるたびにフラッシュメモリ１０２へデータが書き込まれる。１以上の値が指定されると、ＳＤＲＡＭ領域が指定回数更新されるまでフラッシュメモリ１０２へデータが書き込まれない。プレイレース１７０７は、０が指定されると、ＳＤＲＡＭ１０３が更新されても対応するフラッシュメモリ領域上のデータが削除されない。１が指定されると、対応するフラッシュメモリ領域上のデータが削除される。データ複製数１７０８は、０が指定されると、ＳＤＲＡＭ１０３上のデータが複製されない。１以上が指定されると、ＳＤＲＡＭ１０３上のデータを指定数複製してフラッシュメモリ１０２へデータが書き込まれる。ウェアレベリング数１７０９は、ＳＤＲＡＭ１０３からフラッシュメモリ１０２へデータを書き込むたびに書き込む位置を変化させるウェアレベリングという処理を制御するパラメータである。０が指定されると、ＳＤＲＡＭ１０３からフラッシュメモリ１０２へデータを書き込む際に、ウェアレベリングが行われない。１以上の値が指定されると、ＳＤＲＡＭ１０３からフラッシュメモリ１０２へデータを書き込む際に、指定数のウェアレベリングが行われる。例えば、１が指定された場合、図１５の領域ＳＥおよび領域ＦＥ１（１５１４）、ＦＥ２（１５１５）のように、ＳＤＲＡＭ領域の２倍の領域がフラッシュメモリ１０２へ準備され、ＳＤＲＡＭ領域ＳＥ１５０５からフラッシュメモリ１０２へデータを書き込む際に、領域ＦＥ１（１５１４）と領域ＦＥ２（１５１５）に交互にデータが書き込まれる。ウェアレベリング値１７１０は、ウェアレベリング有効時に、次に書き込むべき位置を計算するために必要なウェアレベリング値である。値がウェアレベリング数１７０９と等しくなると、０にクリアされる。ユーザ定義属性１７１１は、ホスト１１１が設定可能な領域ごとのユーザ定義属性値である。
【０１０４】
図１８は、メモリ装置１０１起動時の領域設定データ設定処理と初期化処理の手順を示したフローチャートである。メモリ装置１０１が起動すると、メモリ制御部１０４、ＳＤＲＡＭ１０３、及びフラッシュメモリ１０２が初期化される（１８０１）。初期化が終了すると、メモリ制御部１０４は、領域設定データリード指示をフラッシュメモリ１０２へ発行する（１８０２）。フラッシュメモリ１０２は、領域設定データをメモリ制御部１０４へ送信する（１８０４）。メモリ制御部１０４は、領域設定データをデータバッファ１０８へ保存する（１８０３）。次に、メモリ制御部１０４は、領域設定情報に基き、初期データをフラッシュメモリ１０２からＳＤＲＡＭ１０３へ転送するよう指示し、データの転送が行われる（１８０５）。データリード処理の詳細については後述する。復号メモリ装置１０１は、必要なデータがすべて読み込まれるまでデータリード処理を繰り返す(１８０６)。データの転送が終了すると、メモリ装置１０１は、装置自身の初期化終了をホスト１１１へ報告する（１８０７）。その後、ホスト１１１及びメモリ装置１０１は通常動作を開始する（１８０８）。
【０１０５】
図１９は、ホスト１１１が領域データを更新するときの手順を示したフローチャートである。ホスト１１１は、領域設定データをメモリ装置１０１へライトする（１９０１）。メモリ制御部１０４は、このデータをデータバッファ１０８へ書き込み、データの更新をする（１９０２）。その後、メモリ制御部１０４は、領域設定データをフラッシュメモリ１０２の領域設定データ記録領域へ書き込む（１９０３、１９０４）。
【０１０６】
図２０は、ホスト１１１がメモリ装置１０１へデータライトしたときの処理の手順を示したフローチャートである。
【０１０７】
ホスト１１１は、メモリ装置１０１へデータをライトする（２００１）。このとき、メモリ制御部１０４は、ホスト１１１のアクセスアドレスを検出する（２００２）。ホスト１１１がライトしたデータはＳＤＲＡＭ１０３へ記録される（２００３）。メモリ制御部１０４は、検出したアクセスアドレスからホスト１１１のアクセス領域を調べ、領域管理テーブル１６０１上の領域属性を参照する（２００４）。その後、メモリ制御部１０４は、領域属性の更新回数値１７０５に１を加える（２００５）。更新回数値１７０５が更新回数閾値１７０６以上になると、メモリ制御部１０４は、ＳＤＲＡＭ１０３からフラッシュメモリ１０２へのデータライト処理（２００７）の実行を指示し、その後更新回数値１７０５をクリアする（２００８）。更新回数１７０５が更新回数閾値１７０６に満たなければ、メモリ制御部１０４は、プレイレース１７０７の有効判定を行う（２００９）。プレイレース１７０７が有効なら、メモリ制御部１０４は、イレースすべき領域をフラッシュメモリ１０２へ指示する（２０１０）。フラッシュメモリ１０２は、指定領域のイレースを行う（２０１１）。プレイレース１７０７が無効なら、メモリ制御部１０４は、処理を終了する。
【０１０８】
図２１は、データライト処理２００７の詳細処理を示したフローチャートである。
【０１０９】
メモリ制御部１０４は、ウェアレベリングが有効か判定する（２１０１）。有効なら、メモリ制御部１０４は、ウェアレベリング値に１を加える（２１０２）。ウェアレベリング値１７１０がウェアレベリング数１７０９以上になったら、メモリ制御部１０４は、ウェアレベリング値１７１０をクリアする(２１０３、２１０４)。次に、メモリ制御部１０４は、ウェアレベリング値で示す領域へＳＤＲＡＭ１０３からフラッシュメモリ１０２へデータ転送を指示し（２１０５）、データ転送終了後処理を終了する（２１１０）。ウェアレベリングが無効なら、メモリ制御部１０４は、データ複製数判定を行う（２１０６）。複製数が１以上なら、メモリ制御部１０４は、ＳＤＲＡＭ１０３からフラッシュメモリ１０２へ指定数の複製データ転送を指示し（２１０８）ＳＤＲＡＭ１０３及びフラッシュメモリ１０２は、ＳＤＲＡＭ１０３からフラッシュメモリ１０２へのデータ転送を行う（２１０７）。次に、メモリ制御部１０４は、ＳＤＲＡＭ１０３およびフラッシュメモリ１０２へデータライトを指示し(２１０９)、ＳＤＲＡＭ１０３及びフラッシュメモリ１０２は、通常のデータライトを行う（２１１０）。
【０１１０】
図２２は、メモリ装置１０１の動作を終了する時の処理を示したフローチャートである。
【０１１１】
ホスト１１１は、メモリ動作停止指示を発行する（２２０１）。メモリ装置１０１は、ＳＤＲＡＭ１０３上の未保存データのうち、保存すべきデータをすべてフラッシュメモリ１０２へ書き込む（２００７）。ＳＤＲＡＭ１０３上の保存すべき全領域のフラッシュメモリ１０２への書き込みが終了すると（２２０２）、メモリ装置１０１は、データ保存完了報告２２０３をホスト１１１へ発行する。その後、ホスト１１１はメモリ停止処理を行う（２２０４）。
【０１１２】
図２３は、フラッシュメモリ１０２からＳＤＲＡＭ１０３へのデータ転送時の詳細処理を示したフローチャートである。
【０１１３】
メモリ制御部１０４は、データリードを実行する領域のウェアレベリング有効判定を行う(２３００)。ウェアレベリングが有効なら、メモリ制御部１０４は、ウェアレベリング値１７１０で示すフラッシュメモリ領域からＳＤＲＡＭ１０３へデータ転送を行うよう指示し、データの転送が行われる（２３０１、２３０３）。ウェアレベリング無効なら、メモリ制御部１０４は、通常のデータリードの実行を指示し、通常のデータリードが行われる（２３０２、２３０３）。尚、データの転送時に、ＥＣＣ制御回路１０９がリードデータのＥＣＣエラー訂正を自動的に行っても良い。これらの処理終了後、メモリ制御部１０４は、ＳＤＲＡＭ１０３上に読み出されたデータのエラー判定（２３０４）を行い、エラーが発生していなければ処理を終了する。エラーが発生していれば、メモリ制御部１０４は、データ複製領域が有効か否か判定する(２３０５)。有効なら、メモリ制御部１０４は、ＳＤＲＡＭ１０３及びフラッシュメモリ１０２に、複製領域からのデータリードを指示する（２３０６、２３０８）。その後、メモリ制御部１０４は、再びエラー判定を行い（２３０４）エラーが発生していなければ処理を終了する。エラーが発生していれば再び複製データが存在するか判定する（２３０５）。メモリ制御部１０４は、複製データがなくなるまでこの処理を実行し、複製データがなくなってもエラーがなくならない場合は、エラー処理を実行する（２３０７）。エラー処理の例としては、その領域を不良セクタとして代替セクタ回路１１０が処理をして代替セクタを用意し、エラーが発生したことをホスト１１１へ通知する等が考えられる。
【０１１４】
【発明の効果】
本発明によれば、揮発性メモリと不揮発性メモリから構成されるメモリ装置において、高速かつ不揮発なメモリシステムをホストに合わせて自由に構築することができる。即ちホストがアクセス可能な揮発領域に、不揮発な領域を自由にマッピングすることができる。また、任意のアドレス範囲に対して任意のタイミングで揮発メモリと不揮発メモリ間のデータ転送を実行することが可能である。更に、ＭＭＣ等のカードインタフェイスとの併用やカードインタフェイスだけで、揮発性メモリ、不揮発性メモリへのアクセスが可能となるため使い勝手が向上できる。
【図面の簡単な説明】
【図１】本発明を適用したメモリ装置の内部構成を示す図である。
【図２】本発明を適用したＳＤＲＡＭ並びにフラッシュメモリのアドレス空間を示す図である。
【図３】本発明を適用したコマンド群の一例を示す図である。
【図４】本発明を適用したステータス／エラー情報の一例を示す図である。
【図５】本発明を適用したホスト並びにメモリ装置の処理フローチャートを示す図である。
【図６】本発明を適用したデータ転送制御部の内部構成を示す図である。
【図７】本発明を適用したシーケンサの状態遷移を示す図である。
【図８】本発明を適用したデータ転送のタイミングチャートを示す図である。
【図９】本発明を適用した他のメモリ装置の内部構成を示す図である。
【図１０】本発明を適用したＭＭＣインタフェイスの端子構成を示す図である。
【図１１】本発明を適用したＳＤカードインタフェイスの端子構成を示す図である。
【図１２】本発明を適用したメモリスティックインタフェイスの端子構成を示す図である。
【図１３】本発明を適用した更に他のメモリ装置の内部構成を示す図である。
【図１４】本発明を適用した更に他のメモリ装置の内部構成を示す図である。
【図１５】本発明を適用したＳＤＲＡＭ並びにフラッシュメモリのアドレス空間を示す図である。
【図１６】本発明を適用したＳＤＲＡＭ並びにフラッシュメモリのアドレス空間管理テーブルを示す図である。
【図１７】本発明を適用したアドレス空間管理テーブルの詳細を示す図である。
【図１８】本発明を適用したホスト並びにメモリ装置の起動時の処理フローチャートを示す図である。
【図１９】本発明を適用したホスト並びにメモリ装置のアドレス空間管理テーブル更新時の処理フローチャートを示す図である
【図２０】本発明を適用したホスト並びにメモリ装置のホストデータライト時の処理フローチャートを示す図である。
【図２１】本発明を適用したメモリ装置のフラッシュメモリデータライト時の処理フローチャートを示す図である。
【図２２】本発明を適用したホスト並びにメモリ装置の動作終了時の処理フローチャートを示す図である。
【図２３】本発明を適用したメモリ装置のフラッシュデータリード時の処理フローチャートを示す図である。
【図２４】本発明を適用したメモリ装置の構成例を示す図である。
【図２５】本発明を適用したメモリ装置の電源供給開始時から電源供給停止時までの処理フローの一例を示す図である。
【図２６】本発明を適用したメモリ装置のＳＤＲＡＭ互換メモリ動作の処理フローの一例を示す図である。
【符号の説明】
１０１、４０００…メモリ装置、１０２、４０２０…フラッシュメモリ、１０３、４０１０…ＳＤＲＡＭ、１０５…データ転送制御部、１０６…フラッシュメモリインタフェイス制御部、１１２、４００１…ＳＤＲＡＭインタフェイス、６０１…コマンドデコーダ、６０２…シーケンサ、６０６…フラッシュ−バッファ転送回路、６０７…ＳＤＲＡＭ−バッファ転送回路、９０３…ＭＭＣインタフェイス制御部、９０７…ＭＭＣインタフェイス、１３０２…ＭＭＣ制御部、１３０４…メモリ統括制御部、１３０５…インタフェイス変換制御回路、１４０１…複合型メモリカード、１４０５…コマンドリッパー回路
【図１】
0004059002.tif 000002
【図２】
0004059002.tif 000003
【図３】
0004059002.tif 000004
【図４】
0004059002.tif 000005
【図５】
0004059002.tif 000006
【図６】
0004059002.tif 000007
【図７】
0004059002.tif 000008
【図８】
0004059002.tif 000009
【図９】
0004059002.tif 000010
【図１０】
0004059002.tif 000011
【図１１】
0004059002.tif 000012
【図１２】
0004059002.tif 000013
【図１３】
0004059002.tif 000014
【図１４】
0004059002.tif 000015
【図１５】
0004059002.tif 000016
【図１６】
0004059002.tif 000017
【図１７】
0004059002.tif 000018
【図１８】
0004059002.tif 000019
【図１９】
0004059002.tif 000020
【図２０】
0004059002.tif 000021
【図２１】
0004059002.tif 000022
【図２２】
0004059002.tif 000023
【図２３】
0004059002.tif 000024
【図２４】
0004059002.tif 000025
【図２５】
0004059002.tif 000026
【図２６】
0004059002.tif 000027