(57)【要約】【課題】半導体記憶装置の不揮発性メモリに対するデータの書換えなどの処理効率を向上させる。【解決手段】半導体記憶装置は、フラッシュメモリ１，２と、これらフラッシュメモリ１，２とは種類の異なるＭＲＡＭ５とを有する。コントローラ３は、書き込み要求されたデータがファイルの管理データに該当するものであるかユーザデータに該当するものであるかを判定する。管理データに該当する場合は、当該データをＭＲＡＭ５に書き込み、ユーザデータに該当する場合は、当該データをフラッシュメモリ１，２に書き込む。【選択図】      図１
2005108304.tif 000002
【特許請求の範囲】
【請求項１】
ファイルのユーザデータを記憶するための第１の不揮発性メモリと、
ファイルの管理データを記憶するための、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリと、
前記第１の不揮発性メモリ及び前記第２の不揮発性メモリに対するデータの読み書きを制御する制御手段と、
を具備することを特徴とする半導体記憶装置。
【請求項２】
データを記憶するための第１の不揮発性メモリと、
ホスト側が指定する論理アドレスと、該当するデータが記憶されている前記第１の不揮発性メモリ上の物理アドレスとを関連付けるアドレス変換情報を記憶するための、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリと、
前記第２の不揮発性メモリに記憶される前記アドレス変換情報を参照して、前記第１の不揮発性メモリに対するデータの読み書きを制御する制御手段と、
を具備することを特徴とする半導体記憶装置。
【請求項３】
データを記憶するための第１の不揮発性メモリと、
前記第１の不揮発性メモリ上のデータを更新する際に更新すべき部分の新たなデータと更新しない部分のデータとを一時記憶するための、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリと、
前記第１の不揮発性メモリ及び前記第２の不揮発性メモリに対するデータの読み書きを制御する制御手段と、
を具備することを特徴とする半導体記憶装置。
【請求項４】
前記第２の不揮発性メモリは、前記第１の不揮発性メモリよりも、高速な読み書きが可能であることを特徴とする請求項１乃至３のいずれかに記載の半導体記憶装置。
【請求項５】
前記第１の不揮発性メモリは、複数のメモリセルがそれらのソース、ドレインを隣接するメモリセル同士で共有する形で直列接続されているＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１乃至４のいずれかに記載の半導体記憶装置。
【請求項６】
前記第２の不揮発性メモリは、ＭＲＡＭ（Magnetic Random Access Memory）もしくはＦｅＲＡＭ（Ferroelectric Random Access Memory）であることを特徴とする請求項１乃至５のいずれかに記載の半導体記憶装置。
【請求項７】
前記第１の不揮発性メモリから前記第２の不揮発性メモリへデータが転送される場合、前記第２の不揮発性メモリから出力されるデータのビット幅よりも小さいビット幅で前記第１の不揮発性メモリへのデータ書き込みが行われるようデータ変換を行なう変換手段を更に具備することを特徴とする請求項１乃至６のいずれかに記載の半導体記憶装置。
【請求項８】
前記変換手段は、データのパラレル／シリアル変換を行なうパラレル／シリアル変換回路を含むことを特徴とする請求項７記載の半導体記憶装置。
【請求項９】
前記第２の不揮発性メモリの内部における昇圧回路の活性化時に、前記第１の不揮発性メモリへの書き込み動作が発生しないように制御する手段を更に具備することを特徴とする請求項１乃至６のいずれかに記載の半導体記憶装置。
【請求項１０】
前記第２の不揮発性メモリが書き込み動作中もしくは消去動作中であるか否かを判別し、動作中もしくは消去動作中であれば、前記第１の不揮発性メモリへの書き込み動作が発生しないように制御する手段を更に具備することを特徴とする請求項１乃至６のいずれかに記載の半導体記憶装置。
【請求項１１】
前記第１の不揮発性メモリから前記第２の不揮発性メモリへデータが転送される場合、前記第１の不揮発性メモリから読み出されたデータと前記第２の不揮発性メモリ上の該当するデータとを比較し、一致すれば、前記第２の不揮発性メモリへのデータ書き込みが行われないように制御する手段を更に具備することを特徴とする請求項１乃至６のいずれかに記載の半導体記憶装置。
【請求項１２】
第１の不揮発性メモリと、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリとを有する半導体記憶装置の制御方法であって、
書き込み要求されたデータがファイルの管理データに該当するものであるかユーザデータに該当するものであるかを判定し、
管理データに該当する場合は、当該データを前記第２の不揮発性メモリに書き込み、
ユーザデータに該当する場合は、当該データを前記第１の不揮発性メモリに書き込む、
ことを特徴とする半導体記憶装置の制御方法。
【請求項１３】
第１の不揮発性メモリと、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリとを有する半導体記憶装置の制御方法であって、
データを前記第１の不揮発性メモリに記憶させ、
ホスト側が指定する論理アドレスと、該当するデータが記憶されている前記第１の不揮発性メモリ上の物理アドレスとを関連付けるアドレス変換情報を、前記第２の不揮発性メモリに記憶させる、
ことを特徴とする半導体記憶装置の制御方法。
【請求項１４】
第１の不揮発性メモリと、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリとを有する半導体記憶装置の制御方法であって、
データを前記第１の不揮発性メモリに記憶させ、
前記第１の不揮発性メモリ上のデータを更新する際に更新すべき部分の新たなデータと更新しない部分のデータとを前記第２の不揮発性メモリに一時記憶させる、
ことを特徴とする半導体記憶装置の制御方法。
【請求項１５】
前記第１の不揮発性メモリから前記第２の不揮発性メモリへデータが転送される場合、前記第２の不揮発性メモリから出力されるデータのビット幅よりも小さいビット幅で前記第１の不揮発性メモリへのデータ書き込みが行われるようデータ変換を行なうことを特徴とする請求項１２乃至１４のいずれかに記載の半導体記憶装置の制御方法。
【請求項１６】
前記データ変換は、データのパラレル／シリアル変換を含むことを特徴とする請求項１５記載の半導体記憶装置の制御方法。
【請求項１７】
前記第２の不揮発性メモリの内部における昇圧回路の活性化時に、前記第１の不揮発性メモリへの書き込み動作が発生しないように制御することを特徴とする請求項１２乃至１４のいずれかに記載の半導体記憶装置の制御方法。
【請求項１８】
前記第２の不揮発性メモリが書き込み動作中もしくは消去動作中であるか否かを判別し、動作中もしくは消去動作中であれば、前記第１の不揮発性メモリへの書き込み動作が発生しないように制御することを特徴とする請求項１２乃至１４のいずれかに記載の半導体記憶装置の制御方法。
【請求項１９】
前記第１の不揮発性メモリから前記第２の不揮発性メモリへデータが転送される場合、前記第１の不揮発性メモリから読み出されたデータと前記第２の不揮発性メモリ上の該当するデータとを比較し、一致すれば、前記第２の不揮発性メモリへのデータ書き込みが行われないように制御することを特徴とする請求項１２乃至１４のいずれかに記載の半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリなどの不揮発性メモリを備えた半導体記憶装置に関する。
【背景技術】
【０００２】
近年、ＮＡＮＤ型フラッシュメモリを使用したフラッシュメモリカードが、デジタルカメラを始めとする各種携帯情報端末等の記憶媒体として使用されている。
【０００３】
ＮＡＮＤ型フラッシュメモリは隣接するメモリセル同士がドレインとソースを共有する形で直列接続されたものを基本単位（NAND unit）とし、その直列接続の一端はセレクトゲート(SD(D))を介してビット線に、他端はセレクトゲート(SG(S))を介してソース線に接続されている。同一ワード線に接続されたセルの集合体は、書き込みや読み出しの基本単位であるページを構成し、ビット線側セレクトゲートとソース線側セレクトゲートに挟まれたページの集合体がブロックを構成する。
【０００４】
消去動作は、基本的に上記のブロック単位で行なわれる。従って、ブロック内の一部分に対して書換えが発生した場合は、書換えを行なわないデータを他にブロックにコピーするなどの退避動作が必要である。なお、書換え／消去の技術に関しては、例えば特許文献１などにも記載されている。
【０００５】
また、ある論理アドレスのデータが存在するフラッシュメモリ上の物理番地は常に移動しているため、論理アドレス−物理アドレス変換を行なうのに必要な論理アドレス−物理アドレス変換テーブルを、その都度作成する必要がある。この変換テーブルの作成は、電源投入時に、次のような手順で行なわれる。すなわち、各ブロックの先頭ページの冗長部をサーチし、そのブロックに格納されているデータがどの論理アドレスのデータに相当するのかを確認する。その際、冗長部の論理アドレス領域を読み出し、得られた値を基に、論理アドレス−物理アドレス変換テーブルを作成するようにしている。なお、論理アドレス−物理アドレス変換テーブルの技術に関しては、例えば特許文献２などにも記載されている。
【特許文献１】特開平６−５２６９１号公報
【特許文献２】特開平１０−１２４３８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ＮＡＮＤ型フラッシュメモリを使用したメモリカードにおいてファイルの更新が行われる場合、ファイル本体のデータ（ユーザデータ）は、比較的データ量が大きいため、上記のような退避動作はそれほど多くは発生しない。しかしながら、ＦＡＴ（File Allocation Table）やディレクトリ、サブディレクトリと言ったファイル管理領域のデータは、セクタ単位の書換えが発生しその頻度も大きいため、上記のような退避動作が頻繁に発生しフラッシュメモリカードのファイル書換え性能が劣化するという問題点がある。このため、ファイルの書換え性能を向上させる技術の提示が望まれている。
【０００７】
また、近年、フラッシュメモリの容量が増大する傾向にあり、上述した論理アドレス−物理アドレス変換テーブルの作成時間（すなわち起動時間）は無視できないほどの長時間になってきているという問題がある。このため、フラッシュメモリの容量が増大しても変換テーブルの起動時間が増大しないような技術の提示が望まれている。更には、論理アドレス−物理アドレス変換テーブルを用いなくても、簡単な書き込みアルゴリズムでデータ更新を行なえるような技術の提示が望まれる。
【課題を解決するための手段】
【０００８】
本発明は上記課題を解決するためになされたものであり、不揮発性メモリに対するデータの書換えなどの処理効率を向上させることのできる半導体記憶装置及びその制御方法を提供することを目的とする。
【０００９】
本発明に係る半導体記憶装置は、ファイルのユーザデータを記憶するための第１の不揮発性メモリと、ファイルの管理データを記憶するための、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリと、前記第１の不揮発性メモリ及び前記第２の不揮発性メモリに対するデータの読み書きを制御する制御手段とを具備することを特徴とする。
【００１０】
また、本発明に係る半導体記憶装置は、データを記憶するための第１の不揮発性メモリと、ホスト側が指定する論理アドレスと、該当するデータが記憶されている前記第１の不揮発性メモリ上の物理アドレスとを関連付けるアドレス変換情報を記憶するための、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリと、前記第２の不揮発性メモリに記憶される前記アドレス変換情報を参照して、前記第１の不揮発性メモリに対するデータの読み書きを制御する制御手段とを具備することを特徴とする。
【００１１】
また、本発明に係る半導体記憶装置は、データを記憶するための第１の不揮発性メモリと、前記第１の不揮発性メモリ上のデータを更新する際に更新すべき部分の新たなデータと更新しない部分のデータとを一時記憶するための、前記第１の不揮発性メモリとは種類の異なる第２の不揮発性メモリと、前記第１の不揮発性メモリ及び前記第２の不揮発性メモリに対するデータの読み書きを制御する制御手段とを具備することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、半導体記憶装置において不揮発性メモリに対するデータ更新などの処理効率を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施形態について説明する。  
（第１〜第４の実施形態に共通）  
図１は、本発明の第１〜第４の実施形態に共通するメモリカードの構成例を示す図である。また、図２は、図１の構成とは異なる別の構成例を示す図である。また、図３は、図１及び図２の構成とは異なる更なる別の構成例を示す図である。
【００１４】
図１〜図３に示される各メモリカード１０は、それぞれ共通する要素として、ファイル本体のデータ（ユーザデータ）を格納するための複数のＮＡＮＤ型フラッシュメモリ１，２と、ホスト側との通信やフラッシュメモリ１，２に対するデータの読み書き、各種メモリ間のデータ転送などを制御するコントローラ３と、コントローラ３により使用されるＣＰＵ４とを搭載している。また、各メモリカード１０には、更に、１つ又は複数のＭＲＡＭ (Magnetic Random Access Memory)５が搭載されるが、配置の場所が構成例によって異なる。また、このＭＲＡＭは、各実施形態によってその用途が異なる。
【００１５】
図１の構成例では、メモリカード１０内のコントローラ３内部にＭＲＡＭ５が混載されている。ここで混載と記載しているが、同一チップ上に混載されているものは勿論、例えば図４に示すＭＣＰ(Multi Chip Package)のようにパッケージのアセンブリ技術により１パッケージ内に積層されているような場合も含む。ＭＲＡＭは、トンネル磁気抵抗（ＴＭＲ：Tunneling Magneto Resistive）効果を利用してデータを記憶する記憶素子である。電源を切ってもデータが失われない不揮発性、読み書きの速度が速い、集積度が高いといった特徴を兼ね備えているが、コスト的に難点がありメモリカード１０全体をＭＲＡＭで構成するのは難しい。従って、ここでは、コントローラ内部に比較的小容量のＭＲＡＭ５を混載している。
【００１６】
図２の構成例では、ＭＲＡＭ５をコントローラ３と混載させないが、メモリカード１０内部に、ユーザデータを格納するためのフラッシュメモリ１，２とは別に、比較的小容量のＭＲＡＭ５を搭載している。  
図３の構成例では、フラッシュメモリ１，２内部に、それぞれ比較的小容量のＭＲＡＭ５Ａ，５Ｂを混載している。この場合も、各ＭＲＡＭは、図４に示すＭＣＰ(Multi Chip Package)のようにパッケージのアセンブリ技術により１パッケージ内に積層されていてもよい。
【００１７】
上述したいずれも構成例も、メモリカード１０内部に、ユーザデータを格納するフラッシュメモリ１，２とは別に、比較的小容量のＭＲＡＭを有するという点で共通している。また、ＭＲＡＭとは別に、ＳＲＡＭ／ＤＲＡＭ等のメモリを同時にメモリカード内に設けるようにしても良い。
【００１８】
次に、図５を参照して、図１〜図３の構成例で使用されるＮＡＮＤ型フラッシュメモリの内部構成について説明する。
【００１９】
ＮＡＮＤ型フラッシュメモリは、隣接するメモリセル同士がドレインとソースを共有する形で直列接続されたものを基本単位（NAND unit）とし、その直列接続の一端はセレクトゲート(SD(D))を介してビット線に、他端はセレクトゲート（SG(S)）を介してソース線に接続されている。上記の基本単位（NAND Unit）はワード線方向に集積され、書き込みや読み出しの基本単位であるページを構成する。ビット線とソース線にはさまれたページの集合体がブロックをなす。図示の例では16ページで１ブロックを構成している。また、１ページのデータ長は528バイトである。このうち、512バイトはユーザデータ領域であり、残りの16バイトは冗長部をなす。冗長部は、512バイトのユーザデータに対するエラー訂正用（ＥＣＣ）符合、論理アドレス、ブロックの良否を示すフラグ等を格納するのに使用される。
【００２０】
次に、図６〜図８を参照して、上記ＭＲＡＭの構成について説明する。  
図６は、ＭＲＡＭの等価回路図を示す。図７は、ＭＲＡＭを構成するＭＴＪ（Magnetic Tunnel Junction）素子の概略的な断面図を示す。
【００２１】
図７に示すように、ビット線２１とワード線１９、２６とが互いに直交するように配置され、これらのうちビット線２１と書き込みワード線１９との交点にＭＴＪ素子２０が配置されている。このＭＴＪ素子２０の一端はビット線２１に接続され、他端はトランジス１３に接続されている。そして、このトランジスタ１３のゲート電極が読み出しワード線２６となっている。
【００２２】
上記ＭＴＪ素子２０は、２つの磁性層と、これら磁性層に挟まれた非磁性層とからなる３層構造になっている。つまり、図７に示すように、ＭＴＪ素子２０は、下部電極１７に接続する磁化固着層４１と、上部電極（図示せず）を介してビット線２１に接続する磁気記録層４３と、これら磁化固着層４１と磁気記録層４３とに挟まれた薄いトンネル接合層４２とで構成される。
【００２３】
ここで、磁化固着層４１は、反強磁性層と強磁性層で構成されており、磁化が一方向に固定されているためピン層と呼ばれる。一方、磁気記録層４３は、強磁性層で構成されており、磁化方向が自由に変えられ情報を貯えられるためメモリ層と呼ばれる。この磁気記録層４３の磁化方向は、ビット線２１に流れる電流と書き込みワード線１９に流れる電流とで形成される合成磁界によって変化させることができる。
【００２４】
図８は、ＭＲＡＭの断面図を示す。図８に示すように、例えばＰ型の半導体基板（又はウェル）１１内にＳＴＩ（Shallow Trench Isolation）構造の素子分離領域１２が選択的に形成され、半導体基板１１上にＭＯＳＦＥＴ１３が選択的に形成され、このＭＯＳＦＥＴ１３の両端部下に例えばＮ型のソース／ドレイン領域１４が形成されている。ここで、ＭＯＳＦＥＴ１３のゲート電極は読み出しワード線２６となる。また、半導体基板１１上にはソース／ドレイン領域１４に接続する第１のコンタクト１６ａが絶縁膜１５内に設けられ、この第１のコンタクト１６ａ上には第１の配線１７ａが設けられる。同様に、絶縁膜１５内には、第２乃至第４のコンタクト１６ｂ、１６ｃ、１６ｄ及び第２乃至第４の配線１７ｂ、１７ｃ、１７ｄが設けられる。ここで、第１の配線１７ａの一部は、Ｇｎｄ（グランド）線１８となる。また、第３の配線１７ｃの一部は、書き込みワード線１９ａ、１９ｂ、１９ｃとなる。そして、第４の配線１７ｄにはＭＴＪ素子２０が接続され、このＭＴＪ素子２０にはビット線２１が接続される。
【００２５】
次に、ＭＲＡＭにおけるデータの書き込み・読み出し動作について簡単に説明する。  
まず、ＭＴＪ素子２０に“１”、“０”情報を書き込む場合は、一対の書き込みワード線１９及びビット線２１を選択し、この選択された書き込みワード線１９及びビット線２１の両方に電流を流して電流磁界を各々発生させる。これにより、書き込みワード線１９とビット線２１との交点に位置している選択セルに磁界がかかり、この磁界によってＭＴＪ素子２０の磁化の反転閾値を超えて、情報が書き込まれる。
【００２６】
この際、例えば、磁化固着層４１と磁気記録層４３の磁化方向が平行になった場合、トンネル接合層４２に電流を流すことにより検出されたトンネル抵抗は最も低くなり、この状態で“１”を記憶させることができる。一方、磁化固着層４１と磁気記録層４３の磁化方向が反平行になった場合、トンネル接合層４２に電流を流すことにより検出されたトンネル抵抗は最も高くなり、この状態で“０”を記憶させることができる。つまり、ＭＲＡＭでは、このトンネル抵抗の差を“１”、“０”情報として記憶する。
【００２７】
一方、ＭＴＪ素子２０に書き込まれた“１”、“０”情報を読み出す場合は、読み出しワード線２６とビット線２１を選択すると、ビット線２１からＭＴＪ素子２０とＭＯＳＦＥＴ１３を通してＧｎｄ線１８に電流が流れる。そして、異なるＭＴＪ素子２０間のトンネル抵抗の違いを周辺回路が情報として読み取ることにより、“１”、“０”情報の判定が行われる。
【００２８】
（第１の実施形態）  
この第１の実施形態では、コントローラ３内部などにＭＲＡＭ５を設け、ＦＡＴやディレクトリ領域をＭＲＡＭ５内に記憶させることにより、ファイル更新の際に発生するＦＡＴおよびディレクトリの書換え等といったセクタ単位の書換えに伴って発生する書き込み速度の低下を防止する。
【００２９】
図９に、メモリカード１０における記憶領域割当てを規定するフォーマットパラメータの一例を示す。図９の情報は、コントローラ３が参照可能な所定の領域に保管される。ここでは、クラスタサイズが４ＫＢおよび８ＫＢの場合の例を示している。
【００３０】
クラスタは、ファイル管理の基本最小単位であり、ファイルサイズが非常に小さくても１個のクラスタ分の容量は占有する。サイズのファイルが大きい場合は、複数個のクラスタのチェーンとして管理され、その管理情報はＦＡＴ（File Allocation Table）に格納される。クラスタのサイズやＦＡＴの管理方法等はブートセクタと呼ばれるセクタ内で管理される。１個のデバイスが複数個のドライブとして管理される場合は、マスターブートセクタにその情報が格納される。
【００３１】
ファイルの書き込みとしては、ＯＳからクラスタ単位で書き込み命令が発行される。
【００３２】
クラスタサイズが４ＫＢの場合、論理セクタの０にマスターブートセクタ、論理セクタ１９にブートセクタ、論理セクタ２０〜２５にＦＡＴ１（オリジナルのＦＡＴ）、論理セクタ２６〜３１にＦＡＴ２（ＦＡＴのコピー）、論理セクタ３２〜４７にディレクトリ、論理セクタ４８以降にファイルのユーザデータ領域が配置されている。
【００３３】
クラスタサイズが８ＫＢの場合、論理セクタの０にマスターブートセクタ、論理セクタ２５にブートセクタ、論理セクタ２６〜２８にＦＡＴ１（オリジナルのＦＡＴ）、論理セクタ２９〜３１にＦＡＴ２（ＦＡＴのコピー）、論理セクタ３２〜４７にディレクトリ、論理セクタ４８以降にファイルのユーザデータ領域が配置されている。
【００３４】
図９に示したフォーマットパラメータは、論理セクタアドレス順に記載されている。ホストシステムはこの論理セクタアドレスを基にアクセスを行なうが、実際にメモリカード１０内部におけるフラッシュメモリ上のどこの物理番地にデータが存在するかは、コントローラ３の制御に依存する。
【００３５】
従来はファイルの管理データ領域（論理セクタ０〜４７）及びユーザデータ領域（論理セクタ４８〜６３）の全てのデータをフラッシュメモリに割り当てる構成であるのに対し、本実施形態ではファイルのユーザデータ領域（論理セクタ４８〜６３）をフラッシュメモリに割り当てる一方、ファイルの管理データ領域（論理セクタ０〜４７）をＭＲＡＭ５に割り当てる構成である。
【００３６】
次に、図１０及び図１１を参照して、図１のメモリカード１０の場合における書き込み処理について説明する。  
なお、メモリカード１０のコントローラ３内部のＭＲＡＭ５上にはファイルの管理データが予め格納されているものとする。また、フラッシュメモリ１，２上にも、必要に応じてユーザデータが予め格納されていてもよい。
【００３７】
図１０に示すように、ホストからホストインタフェースを通じて「ファイル本体のデータ」（ユーザデータ）を含む書き込み要求が来た場合を考える。書き込み要求には論理アドレスが指定されている。この時、論理アドレスが、ファイル本体のデータが格納されるべき番地であれば、データの書き込みはフラッシュメモリ（例えば、フラッシュメモリ１）に対して実行される。この時、コントローラ３内部のＭＲＡＭ５は、データバッファとして作用し、ホストからのデータを一度ＭＲＡＭ５内に格納し（ステップＡ１）、その後、フラッシュメモリ１へ転送する（ステップＡ２）。
【００３８】
一方、図１１に示すように、ホストからホストインタフェースを通じて「ＦＡＴやディレクトリデータ等」（ファイルの管理データ）を含む書き込み要求が来た場合を考える。
【００３９】
論理アドレスが、ＦＡＴやディレクトリ等がファイル管理領域等に相当する場合は、ＭＲＡＭ５上の管理データを更新する（ステップＡ３）。
【００４０】
従来のメモリカード内のコントローラは、ホストから指定された番地に基づいて、指定されたデータを書き込みのみで、それがユーザデータ領域のデータか、管理データ領域のデータかは判別しない。これに対し、本実施形態におけるコントローラ３は、ホストから指定された番地に基づいて、指定されたデータがユーザデータ領域のデータか、管理データ領域のデータかを判別できる。
【００４１】
ところで、フォーマットのパラメータ（例えば容量、ルートディレクトリの総エントリ数、クラスタのサイズ等）により、ファイルの管理データが格納される論理アドレスは変化する。このため、本実施形態では、例えば以下のような判断基準を設ける。
【００４２】
すなわち、コントローラ３内に混載されたＭＲＡＭ５の容量と、通常設定しうるフォーマットパラメータを鑑みて、ファイルの管理データを格納するための論理アドレス領域をあらかじめ設定しておく。例えば、論理アドレス０〜４７がファイルの管理データ領域に割り当てられるよう設定する。この範囲の論理アドレスがホストから指定された場合、コントローラ３はファイル管理領域へのアクセスと判断する。
【００４３】
なお、ここで必ずしも論理アドレス０〜を管理データ領域に割り当てる必要はない。通常、論理アドレス０にあるマスターブートセクタの書換え頻度は非常に少ないと考えられ、同時にマスターブートセクタからパーティションブートセクタ間の論理アドレスが書き換えられる頻度も非常に少ない。従って、フラッシュメモリの１ブロックに相当する論理アドレス０〜１５の領域は、ファイルの管理データ領域から除外してもよい。こうすることにより、ＭＲＡＭの容量を減らすことができ、結果としてＭＲＡＭにかけるコストを低減させることが可能である。
【００４４】
ここで、パーソナルコンピュータ（ＰＣ）やデジタルカメラ等で再フォーマットを実行し、フォーマットパラメータが変更された場合を考える。この場合、ファイルの管理データ領域とファイルのユーザデータ領域との境界が論理アドレスの小さい値の方向へずれたとすると、ユーザデータも一部ＭＲＡＭに格納されることになるが、全く問題は無い。
【００４５】
ファイルの管理データ領域とユーザデータ領域の境界が論理アドレスの大きい方向にずれたとすると、一部のファイル管理データは通常のユーザデータの場合と同様の書換えアルゴリズムとなり、性能の劣化を抑える効果は最大限発揮されることとはならないが、全く想定とかけ離れたパラメータとなることは通常想定できないので、少なくともある程度の管理データ領域のデータはＭＲＡＭ５上に格納されることになり、性能向上の効果は期待できる。なお、コントローラ３が自らデータを解読し、フォーマットパラメータを理解し、ファイル管理領域の論理アドレス範囲を動的に設定するように構成しても良い。
【００４６】
次に、図１２を参照して、本実施形態における書き込み動作を説明する。  
コントローラ３は、ホストから書き込み要求を受けると（ステップＳ１１）、ホストにより指定された論理アドレスを図９の情報を参照して確認し、書き込むべきデータがファイルの管理データに該当するものであるかユーザデータに該当するものであるかを判定する（ステップＳ１２）。ファイルの管理データに該当する場合は、当該データをＭＲＡＭ５に書き込む（ステップＳ１３）。一方、ユーザデータ（ファイル本体のデータ）に該当する場合は、当該データをフラッシュメモリ１，２のいずれか該当する方に書き込む（ステップＳ１４）。
【００４７】
このように第１の実施形態では、コントローラ３内部などにＭＲＡＭ５を設け、ＦＡＴやディレクトリ領域をＭＲＡＭ５内に記憶させることにより、ファイル更新の際に発生するＦＡＴおよびディレクトリの書換え等といったセクタ単位の書換えに伴って発生する書き込み速度の低下を防げる。
【００４８】
（第２の実施形態）  
この第２の実施形態では、コントローラ３内部などにＭＲＡＭ５を設け、ホスト側が指定する論理アドレスとフラッシュメモリ上の物理アドレスとを関連付ける論理アドレス−物理アドレス変換テーブル（Allocation Table）をＭＲＡＭ５内に記憶させることにより、従来電源投入時に行なっていた論理アドレス−物理アドレス変換テーブルの作成のための時間の短縮を実現する。
【００４９】
図１３に、ＭＲＡＭ５上に作成される論理アドレス−物理アドレス変換テーブルの一例を示す。  
ここでは、２バイト（１ワード）を一単位として、論理アドレスと物理アドレスの変換を管理する。例えばオフセット０（すなわち、ＭＲＡＭ領域の先頭からテーブルを作成していれば先頭ワードであるWord0）には、論理アドレス０（すなわち、LBA=0）のデータがどの物理アドレスに存在するかを示す物理アドレス情報（上位アドレス，下位アドレス）が入っている。本実施形態では、１ブロックが８ＫバイトのＮＡＮＤ型フラッシュメモリを例にとっているので、論理セクタ０〜１５（１セクタ＝５１２バイトとする。ただし５１２バイトに限定されるわけではない）の１６セクタ分のデータが存在する物理ブロックアドレスが格納される。  
なお、製品出荷または初期化直後で、論理アドレスに対応するデータがフラッシュメモリ上に存在しなければ、ＦＦｈ等で該当ワード領域が埋められている。
【００５０】
次に、図１４を参照して、本実施形態における読み出しの動作を説明する。この読み出しの動作は、コントローラ３により実行される。  
本実施形態では、ＭＲＡＭ５上に論理アドレス−物理アドレス変換テーブルがあり、ＭＲＡＭの特性上、不揮発且つランダムアクセス可能なので、電源投入時に従来のように全部ブロックの冗長部をサーチし、論理アドレス−物理アドレスの変換テーブルを作成する必要はない。
【００５１】
まず、データの読み出しを行なう先頭セクタアドレスと転送セクタ数をホストから受け取り（ステップＳ２１）、妥当な範囲か否かを検証する（ステップＳ２２）。妥当な範囲でなければ、ＩＤを確認できないものとして処理する。一方、妥当な範囲であれば、セクタアドレスを論理ブロックアドレス（論理アドレス）に変換するとともに、ブロック内のページ番号を算出する（ステップＳ２３）。例えば、本実施形態の場合は１ブロック１６セクタ構成なので、各セクタアドレスの値を１６で割る。そして、ＭＲＡＭ５上の論理アドレス−物理アドレス変換テーブルを参照し、該当する論理ブロックが存在する物理ブロックアドレスを得る（ステップＳ２４）。
【００５２】
ここで、特定された物理ブロックから１セクタ分のデータを読み出す（ステップＳ２５）。例えばセクタ番号が０の時は、物理ブロックの先頭ページのデータを読む。１個の物理ブロックの中では、１６個のセクタのデータが順番に並んでいる。
【００５３】
読み出したデータに対してエラーチェックし、エラーが無いか確認する（ステップＳ２６）。エラーが検出されなければステップＳ２９へ進み、一方、エラーが検出されたら訂正可能か否かを判別する（ステップＳ２７）。訂正不可であればエラーとして処理し、一方、エラーが検出され、なおかつ訂正可能な場合は、データを訂正する（ステップＳ２８）。
【００５４】
ここで、ホストが要求したセクタ数を読み出し終えたか（最終セクタまで到達したか）否かを判別する（ステップＳ２９）。最終セクタまで到達していれば、処理を終了する。一方、最終セクタまで到達していなければ、次の読み出しセクタが物理ブロックの境界を越えるかどうかを判別する（ステップＳ３０）。このとき必要に応じ、論理アドレス−物理アドレス変換テーブルを再度参照する。
【００５５】
境界を越えていなければ、読み出すページをカウントアップし（ステップＳ３１）、同一ブロック内で読み出しを継続する。一方、境界を越えていれば、論理ブロックアドレス（論理アドレス）をカウントアップし、ページのカウントもリセットし（ステップＳ３２）、別のブロックに関する処理へ移行する。
【００５６】
次に、図１５を参照して、本実施形態における書き込みの動作を説明する。この書き込みの動作は、コントローラ３により実行される。  
なお、書き込みの処理は、基本的には次の３つの部分に大別される。例えば論理セクタ３を書き換える場合を例に取る。この場合、更新の対象はセクタ３のみだが、セクタ０〜１５の１６セクタ分のデータは同一ブロック上に存在するので、１ブロックに対する処理が必要になる。
【００５７】
（１）論理セクタ０、１及び２に関しては、データの更新は無い。従って、論理セクタ０、１及び２のデータは、元々格納されていた物理ブロックから、新しく書き込みを行なう物理ブロックへコピーする必要がある。  
（２）論理セクタ３は更新するので、元データをコピーする必要はなく、ホストから与えられたデータを新たに書き込む。  
（３）論理セクタ４〜１５はデータの更新はない。従って、論理セクタ４〜１５のデータは、元々格納されていた物理ブロックから、新しく書き込みを行なう物理ブロックへコピーする必要がある。
【００５８】
このように、１ブロックに対して、コピーを行ない、次に更新データ書き込みを行ない、次にコピーを行なうといった一連の動作が基本となる。書き込みがセクタ０〜１５のような場合は、１ブロック分全てのデータが更新されるので、コピー動作は勿論不要となる。
【００５９】
図１５のフローチャートにおける各判別部は、主に、これから書き込みを行なおうとしているセクタが更新データなのか、それともコピー動作なのかを判別するための処理に相当する部分である。
【００６０】
まず、データの更新を行なう先頭セクタ番地と転送セクタ数をホストから受け取り（ステップＳ４１）、セクタアドレスを論理ブロックアドレス（論理アドレス）に変換するための処理を行なう。すなわち、先頭セクタアドレスから論理ブロックアドレスを算出し、ＭＲＡＭ５上の論理アドレス−物理アドレス変換テーブルから、データの存在するブロックの物理アドレスを抽出する（ステップＳ４２）。ここで選択したブロックから、コピーすべきデータを吸い上げることになる。
【００６１】
算出した論理ブロックアドレスの先頭アドレスに対応する物理ブロックの先頭から処理を開始する（ステップＳ４３）。ここで、ブロック前半のコピー動作を行なうのか、それともデータの更新を行なうのかを判別する（ステップＳ４４）。コピーであれば、元ブロックからデータを読み出して新ブロックへの書き込みを実行し（ステップＳ４５）、次のセクタのための処理へ移行する（ステップＳ４６）。一方、更新であれば、ホストから受け取った更新データを基に書き込みを行ない（ステップＳ４７）、次のセクタのための処理へ移行する（ステップＳ４８）。
【００６２】
ホストが要求するセクタ数分書き込みを行なったか否かを判別する（ステップＳ４９）。要求されたセクタ数分の書き込みが終了していれば、ブロックの境界に達したか否かを判別する（ステップＳ５０）。ブロックの境界に達していなければ、書き込みの領域が残っているため、ブロック後半のコピー動作に移行する。すなわち、元ブロックからデータを読み出して新ブロックに書き込み（ステップＳ５１）、次のセクタのための処理へ移行する（ステップＳ５２）。一方、ブロック境界に達していれば、これ以上コピー動作を実行する必要はない。このため、書き込みを行った結果をもとにＭＲＡＭ５上の論理アドレス−物理アドレス変換テーブルの更新を行ない、さらに元データが存在した物理ブロックを消去し、次の処理での新たな書き込み領域を候補領域として登録して（ステップＳ５４）、処理を終了する。  
上記ステップＳ４９において、ホストが要求するセクタ数分の書き込みが終了していない場合、ブロックの境界に達したか否かを判別する（ステップＳ５３）。ブロックの境界に達していなければ、更なる書き込みが必要であるため、ステップＳ４７へ進む。一方、ブロックの境界に達していれば、次の物理ブロックのための処理に移行することとなる。次のブロック処理に移行する前に、書き込みを行った結果をもとにＭＲＡＭ５上の論理アドレス−物理アドレス変換テーブルの更新を行ない、さらに元データが存在した物理ブロックを消去し、次の処理での新たな書き込み領域を候補領域として登録して（ステップＳ５４）、次のブロックのための処理に移行し（ステップＳ５５）、ステップＳ４２へ進む。
【００６３】
以上のようにしてフラッシュメモリに対する書き込み処理が実施される。また、次回の電源投入時には、ＭＲＡＭ５上に論理アドレス−物理アドレス変換テーブルがすでに存在しているので、従来のように全部のブロックの冗長部をサーチし、論理アドレス−物理アドレスの変換テーブルを作成する必要はない。
【００６４】
上記実施形態では、ＮＡＮＤ型フラッシュメモリ１，２の冗長部に論理アドレス情報を格納しているが、必ずしも論理アドレス情報を格納している必要は無い。ＭＲＡＭ５上に論理アドレス−物理アドレス変換テーブルが存在しており、従来のように電源投入時に論理アドレス−物理アドレス変換テーブルを作成する必要がないので、冗長部の論理アドレスが格納されていなくても問題ない。但し、ＭＲＡＭ５上での変換テーブルの更新中の電源遮断等を考慮すると、保険的な意味合いでフラッシュメモリ１，２の冗長部に論理アドレスデータが入っていることが望ましい。
【００６５】
また、フラッシュメモリには、出荷段階で既に使用不可能な先天性不良ブロック、もしくは使用中にメモリセルに破壊が生じる等によって発生した後天性不良ブロックがあり、そのフラグがフラッシュメモリの冗長部に書き込まれている。この不良ブロックの情報をＭＲＡＭ５上に記憶させるようにしても良い。これにより、誤ってフラッシュメモリ上のデータが消去されてもＭＲＡＭ５上にデータが残っているので、そのデータを参照できる。
【００６６】
また、消去済みのブロックのテーブルをＭＲＡＭ５上に記憶させるようにしてもよい。例えば、１ブロックに１ビットを割り振り、ビットが“１”であれば消去ブロック、“０”であればいずれかの論理アドレスのデータが格納されているブロックとみなす。このようなテーブルをＭＲＡＭ５上に記憶しておけば、次にデータを書き込むべきブロックを容易に探し出せるので、性能が向上する。
【００６７】
また、フラッシュメモリカードのコントローラのファームウエアをＭＲＡＭ５上に格納してもよい。通常、ファームウエアはマスクＲＯＭで形成されるが、バグ等が発生し、修正の必要性が発生することを考慮し、ファームウエアの全部または一部をＭＲＡＭ５上に書き込んでおけば、外部からテストコマンド等を使用してファームウエアのバージョンアップを図ることができる。
【００６８】
また、ＭＲＡＭ５は、論理アドレス−物理アドレス変換テーブル等の格納にとどまらず、ホストから書き込まれるデータまたは、ホストへ読み出されるデータのバッファとして使用することもできる。
【００６９】
このように第２の実施形態では、コントローラ３内部などにＭＲＡＭ５を設け、ホスト側が指定する論理アドレスとフラッシュメモリ上の物理アドレスとを関連付ける論理アドレス−物理アドレス変換テーブルをＭＲＡＭ５内に記憶させることにより、従来電源投入時に行なっていた論理アドレス−物理アドレス変換テーブルの作成のための時間を短縮することができる。
【００７０】
（第３の実施形態）  
この第３の実施形態では、コントローラ３内部などにＭＲＡＭ５を設け、データ更新の際にＭＲＡＭ５を不揮発のデータ保持用バッファ等として使用することにより、書き込みアルゴリズムの簡略化し、論理アドレス−物理アドレス変換テーブルを不要とする。
【００７１】
図１６は、図１〜図３に示したメモリカード１０中の、ＭＲＡＭ５の記憶領域とフラッシュメモリ１（又は２）の記憶領域の一部とを抜き出して示す図である。説明を簡略化するため、１ブロックは４ページ（１ページは、１セクタすなわち５１２バイトとする。実際には既述のようにＥＣＣ用のデータ等があるが、ここでは取り扱わない。）で構成されるものとする。
【００７２】
図示のように、ＭＲＡＭ５には、主にホストとのデータのやり取りを行なうデータバッファであるBuffer A,Bとフラッシュメモリのデータ退避用バッファであるBuffer0〜3とが設けられている。BufferA,B,0,1,2,3はそれぞれフラッシュメモリのページサイズと同様の５１２バイト構成とする（既述のようにＥＣＣ等のバイトの説明は割愛する）。また、フラッシュメモリには、Block1〜7があり、そのうちのBlock3はPage0〜3で構成されている。
【００７３】
ここで、図１６および図１７〜図２０を参照して、図１６中のＭＲＡＭ５とフラッシュメモリとの間で実行される書き込みアルゴリズムの一例を説明する。書き込み等の処理は、コントローラ３により実行される。
【００７４】
図１７は、初期状態を示している。この状態では、図１６に示したフラッシュメモリのBlock3のPage0には論理セクタSector12のデータが、Page1には論理セクタSector13のデータが、Page2には論理セクタSector14のデータが、Page3には論理セクタSector15のデータがそれぞれ格納されている（ステップＢ１）。
【００７５】
図１８は、Sector12に対しデータの更新要求が発生したときのＭＲＡＭ５側での一時記憶処理を示している。データの更新要求時にホストから転送されてくる論理セクタ12の新しいデータは、まずメモリカード１０内部におけるＭＲＡＭ５の所定の領域（ここではBuffer A）に一旦記録される（ステップＢ２）。次に、Block3に格納されているデータのうち、更新の必要の無いSector13,14,15のデータをＭＲＡＭ５に転送する（ステップＢ３）。
【００７６】
図１９は、フラッシュメモリ側でのブロック消去処理を示している。ＭＲＡＭ５側での一時記憶処理が完了すると、Block3をブロック消去する（ステップＢ４）。  
図２０は、ＭＲＡＭ５からフラッシュメモリへのデータ転送処理を示している。フラッシュメモリ側でのブロック消去処理が完了すると、消去したBlock3に対し、ＭＲＡＭ５上からSector13の更新用データが、Buffer AからBlock3のpage0へ転送される（ステップＢ５）。また、残りの論理セクタのデータが、ＭＲＡＭ５上からフラッシュメモリのBlock3上に書き戻される（ステップＢ６）。これによってSector12のデータ更新が完了する。
【００７７】
従来は更新処理の最中において電源が遮断されれば、データが消失していたが、本実施形態によればＭＲＡＭ５上に必要なデータが残っているので、復旧することが可能である。また、元々データの存在していたブロックを消去し、データを更新するので、論理アドレスと物理アドレスの関係は固定関係となり、論理アドレス−物理アドレス変換テーブルを作成する必要性がなくなる。従って、電源投入時に論理アドレス−物理アドレス変換テーブルを作成する時間が削除され、高速な起動が実現できる。
【００７８】
また、書き込み途中で電源が遮断したかどうかを判断する方法として、下記のような方法が考えられる。  
ＭＲＡＭ５の特定領域を書き込み終了フラグ領域と定義する。例えば図１８に示す処理が終了した時点で前記領域のフラグを“１”とする。フラグの解除は、図２０に示す処理が完了した時点で行なう。すなわちフラグを“０”とする。
【００７９】
もし図１９の段階で電源が遮断され、再度電源投入されたとすると、前記フラグが“１”のままであり、書き込み動作の途中で電源が遮断されたことがわかる。従ってその場合は、ＭＲＡＭ５上にあるデータを利用して不完全であった処理を続行し終了させる。勿論、その処理が完結したところでフラグを“０”にリセットするのは当然である。また、フラッシュメモリの消去動作を単独に捉え、消去動作に入る前にフラグをセットし、消去動作が終了した時点でリセットするような消去動作用のフラグを設定するようにしても良い。
【００８０】
また、図１６〜図２０では、説明を容易にするため、ホストとデータをやり取りするのに使用するバッファとフラッシュメモリのデータを退避するのに使用するバッファとを分離させた記載としてあるが、共通化しても良い。例えば、フラッシュメモリの１ブロックと同じサイズの領域をＭＲＡＭ５上に設定すれば、更新すべきデータと保持すべきデータの両方を格納することが可能である。
【００８１】
さらに、図１６〜図２０の説明においては、書き込みの単位は５１２バイトを基本に説明した。しかしながら近年のフラッシュメモリの大容量化に伴い、ＮＡＮＤ型フラッシュメモリの書き込みの単位も５１２バイトではなく、例えば１Ｋバイト、２Ｋバイト、４Ｋバイト等（実際には各々ＥＣＣ符合領域等の容量が加算される。）の書き込み単位を持つ製品が量産されている。これらに対しても本発明が適応可能であることは明らかである。この場合、ＭＲＡＭのバッファサイズは、フラッシュメモリのページサイズかブロックサイズに合わせて最適値に調整されることになる。  
また、ホストからＭＲＡＭ５で書き込みデータを受け取るシーケンスと、フラッシュメモリとＭＲＡＭ５間のデータ転送等を同時に実行しても良い。
【００８２】
このように第３の実施形態では、コントローラ３内部などにＭＲＡＭ５を設け、データ更新の際にＭＲＡＭ５を不揮発のデータ保持用バッファ等として使用することにより、書き込みアルゴリズムを簡略化でき、論理アドレス−物理アドレス変換テーブルを不要とすることができる。
【００８３】
（第４の実施形態）  
この第４の実施形態は、第１〜第３の実施形態で扱った各構成と適宜組み合わせて実施することが可能である。  
一般に、ＭＲＡＭでは、現状メモリセルに情報を書き込む際に、書き込み電流が大きい。すなわち、メモリセルに情報を記憶させるには、ワード線、およびビット線が発生させる電流磁界により、メモリセルの磁化方向を反転させるが、そのときに大きな電流が必要となる。例えばワード線やビット線が、銅やアルミニウムで構成される場合、１メモリセルあたり、１０ｍＡ程度の電流が必要となり、エレクトロン・マイグレーションによる断線限界値に近くなるとともに、複数のメモリセルに同時に書き込むとシステム全体の消費電流が著しく増加してしまう。また、メモリセルの保磁力を小さくすると、書き込み電流は小さくできるが、外部からの磁気的な影響によりメモリセルの磁化方向が反転してしまい、メモリセルの信頼性を損なう恐れもある。この第４の実施形態では、これらの問題を解消する。
【００８４】
図２１に、ＭＲＡＭ５へのデータ書き込み時の電流のピーク値を低減させるメモリカードの構成例を示す。  
この構成例では、ＭＲＡＭ５へのデータ書き込みに際し、そのビット幅が例えば１ビット等に制限されるようになっている。例えば、フラッシュメモリ１，２は８ビット幅でデータの入出力がなされるの対し、ＭＲＡＭ５は１ビット幅でデータの書き込みがなされる。例えば図示のように、フラッシュメモリ１，２とＭＲＡＭ５との間に、パラレル／シリアル変換回路５１が設けられる。この場合、パラレル／シリアル変換回路５１は、フラッシュメモリ１，２からＭＲＡＭ５へデータが転送される場合、データをパラレル／シリアル変換する。そして、フラッシュメモリ１，２から出力されるデータのビット幅よりも小さいビット幅でＭＲＡＭ５へのデータ書き込みが行われることになる。ＭＲＡＭ５への書き込みは例えば１ビットずつ実行されるので、電流のピーク値を抑えることが可能となる。
【００８５】
なお、フラッシュメモリ１，２とＭＲＡＭ５のビット幅は、上記値に限られない。ＭＲＡＭ５でのビット幅は、例えば２ビットや４ビット等に変更しても良い。また、フラッシュメモリ１，２のビット幅は、例えば１６ビットにしても構わない。この場合、フラッシュメモリ１，２のビット幅との関係から、ＭＲＡＭ５への書き込み単位を８ビットにしても良い。すなわち、ＭＲＡＭ５へのデータ書き込みを時分割的に実行し、書き込み電流のピーク値を抑えていれば、効果を期待することができる。
【００８６】
また、パラレル／シリアル変換回路５１の構成や配置場所を変更しても構わない。例えば、ＭＲＡＭ５は、コントローラ３内部に実装されている場合のほか、コントローラ３外部に別チップとして実装される場合がある。それと同様に、パラレル／シリアル変換回路５１も、コントローラ３内部に実装されている場合のほか、コントローラ３と外付けＭＲＡＭ５（図２参照）との間に配置する場合、ＭＲＡＭチップ自身の中に実装される場合、またフラッシュメモリ自身がシリアル出力のモードを有する場合等、様々なケースが許容される。ＭＲＡＭ５へのデータ書き込みが、フラッシュメモリ１，２のビット幅に比べ小さい値で実行されていれば、本実施形態の主旨に合致する。
【００８７】
また、システム全体の消費電流を低減する方法として以下の手法がある。  
フラッシュメモリ、特にＮＡＮＤ型フラッシュメモリは、書き込みおよび消去時に、高電圧（２０Ｖ程度）を作るための昇圧回路が活性化され、消費電流が増大する。従って、図２２に示すように、フラッシュメモリ１，２の書き込みおよび消去時（昇圧回路が活性化している時）には、コントローラ３はＭＲＡＭ５へのデータ書き込みが発生しないように制御する（ステップＳ６１、Ｓ６２）。そうすれば、フラッシュメモリ１，２内の昇圧回路とＭＲＡＭへの書き込みが同時に発生することがなく、システム全体の消費電流の削減が図れる。書き込みおよび消去中の定義としては、「フラッシュメモリ内部の昇圧回路の動作時」としても良いし、書き込みおよび消去中であることをレディ／ビジー信号で外部に知らせる仕様となっていれば、「フラッシュメモリのビジー中」と定義しても良い。
【００８８】
また、システム全体の消費電流を低減する方法として以下の手法もある。  
例えば図２３に示すように、フラッシュメモリ１，２からＭＲＡＭ５へデータが転送されたとき（ステップＳ７１）、コントローラ３は、ＭＲＡＭ５へ書き込もうとするデータ（フラッシュメモリ１，２から読み出されたデータ）と、ＭＲＡＭ５の保持データを比較し（ステップＳ７２）、同じデータでなければ、通常通りの書き込みを行なうが（ステップＳ７３、Ｓ７４）、もし同じデータであれば、書き込みを行なわないよう制御する（ステップＳ７３、Ｓ７５）。
【００８９】
例えば、書き込もうとするデータが“１”の場合、ＭＲＡＭ５の書き込み対象メモリセルのデータを事前に読み出し、“１”であれば書き込みを行なわない。  
もし“０”であれば、“１”を書き込む。これにより単純確率計算では、書き込みの回数を１／２に削減することができ、システムの消費電力を削減することができ、携帯情報端末等の使用を考えると有用である。
【００９０】
そのほか、システム全体の消費電流を低減する方法として以下の手法もある。  
例えば、所定単位で書き込みデータを以下のように管理する。説明の簡略化のため８ビット単位で管理する場合を例に取る。ここでは書き込みデータ８ビットに対し、１ビットの反転フラグを割り当てる。例えば書き込みデータが“1111 1111”であるとする。この場合、ＭＲＡＭ５に保持中のデータが“0000 0000”であれば、本来８ビット書き込みを行なう必要があるが、ここでは８ビットの書き込みを行なう代わりに反転フラグを“１”にセットする。ＭＲＡＭ５からデータを読み出す際、反転フラグが“１”にセットされていれば、保持しているデータの反転データが正しいデータであるものとする。本例の場合、読み出しデータは“0000 0000”であるが、反転フラグが“１”なので、データ自身も反転させて“1111 1111”とする。実際には、任意の書き込みデータと、ＭＲＡＭ５に保持中のデータのビットを比較し、反転フラグを使用するか否かを判断することが望ましい。例えばＭＲＡＭ５中のデータが“1111 1111”で、書き込みデータが“1111 0011”の場合は、“０”を書きたいビットのみを書き込む。ＭＲＡＭ５中のデータが“1111 1111”で、書き込みデータが“0000 1100”の場合は、“１”を書きたいビットのみを“０”に書換え、さらに反転フラグを書き込む。これにより実際の書き込まれるデータは、“1111 0011”だが、反転フラグにより反転され“0000 1100”と正しく認識される。以上のようにすれば、ＭＲＡＭ５に書きこむビット数が削減され、システム全体の消費電力が削減される。
【００９１】
また、信頼向上の観点から、外部磁界からの影響を緩和する手段を設けても良い。例えばメモリカードの場合であれば、フレームや筐体、もしくは表面に貼るラベル等に磁気をシールドする効果のある材質のものを用い、ＭＲＡＭ５外部からの磁気的な影響によりメモリセルの磁化方向が反転してしまいメモリセルの信頼性を損なうことを防止するようにしても良い。
【００９２】
また、信頼性確保のため、エラー訂正の技術を用いても良い。例えばＭＲＡＭ５へのデータ書き込み時に、所定の単位でエラー訂正用の符合を生成し、この符合とともにＭＲＡＭ５にデータを保持させる。エラー訂正の方法としては一般的なリード・ソロモン符合や、ＢＣＨ符合、ハミングコード等が考えられるが、上述したようなパラレル／シリアル変換回路を有している場合には、ＢＣＨ符合等が扱いやすい。ＣＲＣ（Cyclic Redundancy Check）によりエラーの有無のみを判断する手法を採用しても良い。
【００９３】
このように第４の実施形態では、各種の手法を取り入れることにより、ＭＲＡＭ５を使用した場合の消費電力の削減や、信頼性向上が実現される。なお、上述したＭＲＡＭ５の諸問題の解決案は、単独で実施しても良いし、複数個を組み合わせて実施しても良い。
【００９４】
上述した各実施形態では、ＭＲＡＭを搭載した場合を例にとって説明したが、必ずしもＭＲＡＭに限られない。例えば、強誘電体を使用したＦｅＲＡＭ（Ferroelectric Random Access Memory）や、カルコゲン化物等を使用したＯＵＭ （Ovonics Unified Memory）等を使用しても良い。ＮＡＮＤ型フラッシュメモリと比較して、小さいサイズでの書換えが可能（ランダムアクセス機能があればバッファとしても使用可能なので望ましい）、不揮発性で、書換え回数の制限が事実上無い等の条件が整った記憶装置であれば問題無い。
【００９５】
また、同じフラッシュメモリでも仕様の異なるフラッシュメモリを少なくとも２種類以上を搭載することにより、実用上問題ない範囲で本発明を実施することも可能である。また、使用するフラッシュメモリはＮＡＮＤ型フラッシュメモリに限られない。ＮＯＲ型、ＡＮＤ型、ＤＩＮＯＲ型などの各種フラッシュメモリでも適応可能である。
【００９６】
本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００９７】
【図１】本発明の第１〜第４の実施形態に共通するメモリカードの構成例を示す図。
【図２】図１の構成とは異なる別の構成例を示す図。
【図３】図１及び図２の構成とは異なる更なる別の構成例を示す図。
【図４】ＭＣＰの一例を示す図。
【図５】図１〜図３の構成例で使用されるＮＡＮＤ型フラッシュメモリの内部構成を説明するための図。
【図６】ＭＲＡＭの等価回路図を示す図。
【図７】ＭＲＡＭを構成するＭＴＪ素子の概略的な断面図を示す図。
【図８】ＭＲＡＭの断面図を示す図。
【図９】本発明の第１の実施形態に係るメモリカードにおける記憶領域割当てを規定するフォーマットパラメータの一例を示す図。
【図１０】ファイルのユーザデータの書き込み要求があった場合の処理を示す図。
【図１１】ファイルの管理データの書き込み要求があった場合の処理を示す図。
【図１２】同実施形態における書き込み動作を示すフローチャート。
【図１３】本発明の第２の実施形態に係るＭＲＡＭ上に作成される論理アドレス−物理アドレス変換テーブルの一例を示す図。
【図１４】同実施形態における読み出しの動作を示すフローチャート。
【図１５】同実施形態における書き込みの動作を示すフローチャート。
【図１６】本発明の第３の実施形態に係るＭＲＡＭの記憶領域とフラッシュメモリの記憶領域の一部とを抜き出して示す図。
【図１７】書き込みアルゴリズムの中の初期状態を示す図。
【図１８】書き込みアルゴリズムの中の一時記憶処理を示す図。
【図１９】書き込みアルゴリズムの中のブロック消去処理を示す図。
【図２０】書き込みアルゴリズムの中のデータ転送処理を示す図。
【図２１】ＭＲＡＭへのデータ書き込み時の電流のピーク値を低減させるメモリカードの構成例を示す図。
【図２２】システム全体の消費電流を低減する方法を示すフローチャート。
【図２３】システム全体の消費電流を低減する別の方法を示すフローチャート。
【符号の説明】
【００９８】
１，２…フラッシュメモリ、３…コントローラ、４…ＣＰＵ、５…ＭＲＡＭ、１０…コントローラ、１１…半導体基板又はウェル、１２…素子分離領域、１３…トランジスタ（ＭＯＳＦＥＴ）、１４…ソース／ドレイン領域、１５…絶縁膜、１６ａ…第１のコンタクト、１６ｂ…第２のコンタクト、１６ｃ…第３のコンタクト、１６ｄ…第４のコンタクト、１７ａ…第１の配線、１７ｂ…第２の配線、１７ｃ…第３の配線、１７ｄ…第４の配線、１８…Ｇｎｄ線、１９、１９ａ、１９ｂ、１９ｃ…書き込みワード線、２０…ＭＴＪ素子、２１、２１ｂ…ビット線、２６…読み出しワード線、４１…磁化固着層、４２…トンネル接合層、４３…磁気記録層、５１…パラレル／シリアル変換回路。
【図１】
2005108304.tif 000003
【図２】
2005108304.tif 000004
【図３】
2005108304.tif 000005
【図４】
2005108304.tif 000006
【図５】
2005108304.tif 000007
【図６】
2005108304.tif 000008
【図７】
2005108304.tif 000009
【図８】
2005108304.tif 000010
【図９】
2005108304.tif 000011
【図１０】
2005108304.tif 000012
【図１１】
2005108304.tif 000013
【図１２】
2005108304.tif 000014
【図１３】
2005108304.tif 000015
【図１４】
2005108304.tif 000016
【図１５】
2005108304.tif 000017
【図１６】
2005108304.tif 000018
【図１７】
2005108304.tif 000019
【図１８】
2005108304.tif 000020
【図１９】
2005108304.tif 000021
【図２０】
2005108304.tif 000022
【図２１】
2005108304.tif 000023
【図２２】
2005108304.tif 000024
【図２３】
2005108304.tif 000025