(57)【要約】【課題】フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いたメモリシステムにおいて、不良ビットを含まないにもかかわらず未使用になるブロックが多くなり実質的な記憶容量が減少するのを防止する。【解決手段】複数のバンク（ＢＡＮＫ０〜ＢＡＮＫ３）を有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、各バンクの先頭から不良ビットを含むブロックを回避しつつ１ブロックずつ選択してグループ化させて、各ブロックのグループに先頭から順次アドレスを割り当ててバンク間ブロックチェーンを構成するようにした。【選択図】  図５
2004265162.tif 000002
【特許請求の範囲】
【請求項１】
データを同時に消去可能な複数の不揮発性メモリセルを含む第１メモリセル群が複数集合してなる第２メモリセル群が複数個設けられ、前記複数の第２メモリセル群の中のいずれかの第１メモリセル群に対して並行してデータの書込み動作を行なうことができるように構成された不揮発性半導体記憶装置と、外部からの指令に応じて前記不揮発性半導体記憶装置に対してアドレスとデータを与えて前記第１メモリセル群に対してデータの書込みを行なう制御装置とを備えた記憶装置であって、
前記複数の第２メモリセル群のうちいずれかの第２メモリセル群の第１メモリセル群には、他の第２メモリセル群の中のいずれかの第１メモリセル群との結合情報を記憶する領域が設けられ、外部から供給されたアドレスに基づいて前記結合情報を記憶する領域が設けられた第１メモリセル群のうち前記アドレスに対応した第１メモリセル群を選択して前記結合情報を読み出し、読み出された該結合情報に基づいて他の第２メモリセル群の中のいずれかの第１メモリセル群に対して書込みまたは消去動作を行なうように構成されてなることを特徴とする記憶装置。
【請求項２】
外部から供給される論理アドレスと前記不揮発性半導体記憶装置内のいずれかの第１メモリセル群を指定する物理アドレスとの関係を示す情報を有する参照テーブルを備え、該参照テーブルを用いて前記論理アドレスから変換された物理アドレスにより前記結合情報を記憶する領域が設けられた第１メモリセル群のうち前記アドレスに対応した第１メモリセル群を選択して前記結合情報を読み出し、読み出された該結合情報に基づいて他の第２メモリセル群の中のいずれかの第１メモリセル群に対して書込みまたは消去動作を行なうように構成されてなることを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記不揮発性半導体記憶装置の外部にあって前記制御装置によりデータを読み出したり書き込んだりすることが可能なバッファメモリを備え、前記参照テーブルは電源遮断時に前記不揮発性半導体記憶装置に格納され、電源投入時に前記バッファメモリに読み出されることを特徴とする請求項１または２に記載の記憶装置。
【請求項４】
前記第１メモリセル群は、同一のワード線に接続された複数のメモリセルからなり、該複数のメモリセルのうち互いに隣接する２つのメモリセルは同一のビット線に接続され、該同一ビット線に接続されたメモリセルのうち一方は第１のソース線に接続され、他方は第２のソース線に接続され、記憶データの消去動作は同一のワード線に接続されたメモリセルを対象として行なわれ、記憶データの書込み消去動作は同一のワード線に接続されたメモリセルのうち第１のソース線または第２のソース線に接続されたメモリセルを対象として行なわれることを特徴とする請求項１〜３のいずれかに記載の記憶装置。
【請求項５】
前記結合情報により結合がなされていない第１メモリセル群は、前記結合情報により結合がなされているいずれかの第１メモリセル群において後天的に不良が発生した際に該不良が発生した第１メモリセル群と置換されるように構成されていることを特徴とする請求項１〜４のいずれかに記載の記憶装置。
【請求項６】
前記不揮発性半導体記憶装置内のすべての第１メモリセル群についてそれぞれの第１メモリセル群に新たなデータを記憶することが可能か否かを示す情報を有する第２テーブルを備え、前記第２テーブルは電源遮断時に前記不揮発性半導体記憶装置に格納され、電源投入時に前記バッファメモリに読み出されることを特徴とする請求項３〜５のいずれかに記載の記憶装置。
【請求項７】
外部から供給された論理アドレスに対応した第１メモリセル群へのデータの書込みに際して、当該論理アドレスに対応する元の物理アドレスにより指定される第１メモリセル群に記憶されているデータを前記揮発性メモリへ読み出して書込みデータと合成して新データを生成し、該新データを前記元の物理アドレスと異なる物理アドレスに格納するように構成されていることを特徴とする請求項３〜６のいずれかに記載の記憶装置。
【請求項８】
前記新データの格納後に前記第２テーブルの前記元の物理アドレスにより指定される第１メモリセル群に関する情報を書き換えた後、前記参照テーブルの物理アドレスを前記新データが格納された第１メモリセル群を指定する物理アドレスに書き換え、前記第２テーブルの前記元の物理アドレスと異なる物理アドレスにより指定される第１メモリセル群に関する情報を書き換えるように構成されていることを特徴とする請求項７に記載の記憶装置。
【請求項９】
前記結合情報を記憶する領域が設けられた第１メモリセル群には、消去済みか否かを示す管理情報を記憶する領域が設けらていることを特徴とする請求項１〜８のいずれかに記載の記憶装置。
【請求項１０】
前記不揮発性半導体記憶装置は、前記第２メモリセル群のそれぞれに対応して設けられ書込みデータを保持可能な揮発性メモリを備えていることを特徴とする請求項１〜９のいずれかに記載の記憶装置。
【請求項１１】
データを同時に消去可能な複数の不揮発性メモリセルを含む第１メモリセル群が複数集合してなる第２メモリセル群が複数個設けられ、前記複数の第２メモリセル群の中のいずれかの第１メモリセル群に対して並行してデータの書込み動作を行なうことができるように構成された不揮発性半導体記憶装置におけるアドレス管理方法であって、
前記第１メモリセル群の中に不良メモリセルが含まれているか否かを検出する第１の動作と、
前記複数の第２メモリセル群の中からそれぞれ不良メモリセルを含む第１メモリセル群を回避しつつブリアドレスの先頭側から順に１つずつ第１メモリセル群を選択してグループ化させる第２の動作と、
前記グループ化された第１メモリセル群のうちいずれかの第１メモリセル群の管理情報記憶領域に、他の第２メモリセル群に属する第１メモリセル群の位置を示す結合情報を格納する第３の動作と、
を含む不揮発性半導体記憶装置におけるアドレス管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、電気的に書込み、消去可能な不揮発性半導体記憶装置におけるアドレス管理方式に適用して有効な技術に関し、例えば複数のバンクを有しデータを所定の単位で一括消去可能なフラッシュメモリを内蔵したメモリカードのような記憶装置に利用して有効な技術に関するものである。
【０００２】
【従来の技術】
近年、デジタルカメラなどの携帯用電子機器のデータ記憶媒体として、電源電圧を遮断しても記憶データを保持できるフラッシュメモリなどの不揮発性メモリを内蔵したメモリカードと呼ばれるカード型記憶装置が広く利用されるようになって来ている。メモリカードは、一般に不揮発性メモリと該不揮発性メモリへのデータの書込みや読出しを制御するコントローラを内蔵して構成されることが多い。
【０００３】
従来のメモリカードに内蔵されるフラッシュメモリは、一般に１つのメモリアレイを有し、該メモリアレイ内の同一ワード線に接続されたメモリセル群のような単位（以下、これをブロックと称する）で書込みを行なうように構成されていた（特許文献１参照）。そのため、かかるフラッシュメモリへのデータの書込みや読出しを制御するコントローラは、ブロック単位でアドレスを管理する方式が採用されていた。
【０００４】
ところで、半導体メモリは大容量化に対する要望が高い。この大容量化を達成するため、１つのメモリアレイを構成するメモリセルの数を多くすることも一つのやり方であるが、ビット線やワード線の長さが長くなってデータの読出し時間が長くなるという不具合がある。これに対し、１つのチップ内に複数のメモリアレイ（以下、バンクと称する）を設けることで大容量化を図る方式（マルチバンク方式）がある。
【０００５】
かかるマルチバンク方式を採用すると、バンク内のビット線やワード線の長さはそれほど長くならないので、データの読出し時間を短縮することができるとともに、複数のバンクにおいて並行して書込み動作または消去動作を行なうことで書込み時間と消去時間の短縮を図ることができるという利点がある。
【０００６】
【特許文献１】
特開２００２−１９７８７６号公報
【０００７】
【発明が解決しようとする課題】
本発明者は、マルチバンク方式を採用したフラッシュメモリを用いたメモリカードのようなメモリシステムにおけるアドレス管理方式について検討を行なった。その結果、以下に述べるように課題があることが明らかになった。
図１５は、従来のフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す。図１５のフラッシュメモリは、メモリアレイ内の１本のワード線に２１１２バイトのようなデータを記憶可能なメモリセルが接続されて１つのブロックを構成し、かかるブロックが例えば１６３８４個設けられて１２８Ｍビットのような記憶容量を有するようにされている。この場合、外部のコントローラは、各ブロックに対応された１４ビットのアドレス００００ｈ〜１ＦＦＦｈにより書込み対象のブロックを指定することとなる。
【０００８】
かかるブロック対応のアドレス方式で、４つのバンクを有するフラッシュメモリを管理すると、複数のバンクの並列書込みが行なえない。そこで、図１６に示すように４つのバンクＢＡＮＫ０〜ＢＡＮＫ３に対応してＳＲＡＭなどからなる４つのバッファメモリＢＦＭ０〜ＢＦＭ３を設け、各バンクの同一ブロック同士を結合（グループ化）させて１つのアドレスに対応させることで複数のバンクの並列書込みが可能になる。
【０００９】
ところで、従来のフラッシュメモリでは、一般に、各ブロックに当該ブロックが不良ビットを含んでいるか否か等の管理情報を記憶する領域ＭＤＡ（図１５参照）を設け、該管理領域の情報をチェックしてから書込みを行なう方式が採用されている。かかる方式を前述のようなマルチバンク方式のフラッシュメモリに適用すると、結合された４つのブロックのうちいずれかのブロックに不良メモリセル（以下、不良ビットと称する）が含まれていると正常な書込みができないため、書込みの度にすべてのブロックの管理領域の情報をチェックしなければならない。
【００１０】
そのため、管理領域の情報チェックに時間がかかるとともに正常なメモリセル（以下、正常ビットと称する）に対する不良ビットの割合が各バンクで同じであると仮定すると、各バンクにおいてそれぞれ同一箇所で不良が発生するとは限らないので、メモリ全体として不良アドレスが発生する確率が高くなり、書込み処理に要する時間が長くなる。
【００１１】
そこで、図１６に示すように、互いに結合された４つのブロックのうちいずれかのブロックに不良ビットが含まれている場合には、アドレスを割り付けないようにする管理方式が考えられる。図１６においては、ハッチングが付されているブロックが不良ビットを含むブロックである。しかしながら、かかるアドレス管理方式に従うと、不良ビットを含まないにもかかわらず未使用になるブロックが多くなり、実質的な記憶容量が少なくなってしまうという不具合がある。図１６においては、×印が付されているブロックが不良ビットを含まないにもかかわらず未使用になるブロックである。
【００１２】
また、従来より、フラッシュメモリのアドレス管理方式として図１５や図１６のように各ブロックの物理アドレスと論理アドレスとを１対１で順に対応させて行く方式（以下、論物方式と称する）の他に、物理アドレスと論理アドレスとの対応を示す参照テーブルを用意して、該テーブルを用いて論理アドレスから物理アドレスへの変換を行なってブロックをアクセスする方式（以下、テーブル方式と称する）が知られているが、かかるテーブル方式においては、フラッシュメモリ内のすべてのブロックに関する物理アドレスを記憶させるようにすると、参照テーブルのデータ量が多くなる。
【００１３】
そして、参照テーブルのデータ量が多くなると、参照テーブルは一般にフラッシュメモリ内に格納されるため、フラッシュメモリ内のユーザが利用できる有効な領域が少なくなるとともに、参照テーブルを展開する外部のＲＡＭのようなメモリの容量が大きくなるという不具合がある。なお、参照テーブルを外部のメモリに展開するのは、フラッシュメモリのアクセス速度はＲＡＭに比べて遅いためいちいちフラッシュメモリ内の参照テーブルを参照していたのではアクセス時間が長くなるためである。
【００１４】
この発明の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いたメモリシステムにおいて、不良ビットを含まないにもかかわらず未使用になるブロックが多くなり実質的な記憶容量が減少するのを防止することができるアドレス管理方式を提供することにある。
【００１５】
この発明の他の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いテーブル方式を採用したメモリシステムにおいて、アドレス変換用の参照テーブルのデータ量を減らして実質的な記憶容量が減少するのを防止することができるアドレス管理方式を提供することにある。
【００１６】
この発明のさらに他の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いたメモリシステムにおいて、外部メモリの記憶容量を少なくすることができるアドレス管理方式を提供することにある。
この発明の前記ならびにほかの目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【００１７】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記のとおりである。
すなわち、本願の第１の発明は、複数のバンクを有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、各バンクの先頭から不良ビットを含むブロックを回避しつつ１ブロックずつ選択してグループ化させて、各ブロックのグループに先頭から順次アドレスを割り当ててチェーンを構成するようにしたものである。ここで、上記１ブロックとは一括消去の対象のメモリセル群全体を指す。一括消去の単位と一括書込みの単位は異なっていても良い。以下、各バンクから１つずつ選択されグループ化されたブロックの集まりを、バンク間ブロックチェーンと称する。
【００１８】
上記した手段によれば、不良ビットを含むブロックを回避してブロックチェーンが形成されるため、不良ビットを含まないにもかかわらず未使用になるブロックの数を減少させることができるようになる。
【００１９】
また、望ましくは、互いに結合されたブロックのうちいずれか１つのバンクに属するブロックに管理情報格納領域を設け、当該ブロックに他のバンクのどのブロックが結合されるか示す情報（ページアドレス）を格納するように構成する。これにより、管理情報格納領域を有するバンクのブロックから管理情報を読み出すだけで結合された他のブロックの位置を知ることができる。
【００２０】
【発明の実施の形態】
以下、本発明の実施例を、図面を用いて説明する。
図１は、本発明が適用される不揮発性メモリを内蔵したメモリカードの一実施例を示す。
この実施例のメモリカード１００は、特に制限されないが、所定の単位でデータを電気的に一括消去することが可能なフラッシュメモリ１１０と、外部から供給されるコマンドに基づいて上記フラッシュメモリ１１０に対するデータの書込みや読出しを行なうコントローラ１２０とからなる。フラッシュメモリ１１０とコントローラ１２０は、それぞれ別個の半導体チップ上に半導体集積回路として形成されており、これら２つの半導体チップが図示しない基板上に実装され全体が樹脂でモールドもしくはセラミックパッケージ等に収納されてカードとして構成されている。
【００２１】
また、カードの一側には、外部の装置のカードスロットに挿入されたときに外部装置側の回路と電気的に接続され、外部のホスト装置からメモリカード１００に対して電源を供給したり信号の入出力を行なうための外部端子群１３０が設けられ、これらの外部端子は上記基板上に形成されたプリント配線もしくはボンディングワイヤによって上記コントローラ１２０の外部端子としてのパッドに接続される。フラッシュメモリ１１０とコントローラ１２０との間はプリント配線によって接続してもよいし、コントローラ１２０とフラッシュメモリ１１０とをいずれか一方の上に他方を搭載してボンディングワイヤによって接続するようにしてもよい。
【００２２】
コントローラ１２０は、データ転送などカード内部全体の制御を行なうマイクロプロセッサ（ＭＰＵ）１２１と、外部の装置との間の信号のやり取りを行なうホストインタフェース部１２２と、フラッシュメモリ１２０との間の信号のやり取りを行なうメモリインタフェース部１２３と、外部から入力されたコマンドや書込みデータ、フラッシュメモリ１１０から読み出された読出しデータを一次保持するＲＡＭ（ランダムアクセスメモリ）などからなるバッファメモリ１２４と、該バッファメモリ１２４に対するデータの書込み読出しの制御を行なうバッファ制御部１２５などから構成されている。バッファ制御部１２５には、フラッシュメモリ１１０への書込みデータに対するエラー訂正符号の生成およびエラー訂正符号に基づく読出しデータのチェックと訂正の機能を有するエラー訂正符号生成＆エラー訂正回路を設けることも可能である。
【００２３】
フラッシュメモリ１１０は、ＭＰＵ１２１からの指示（コマンド）に従ってデータの書込み、読出しの制御を行なういわゆるフラッシュコントローラを内蔵したものであってもよいし、フラッシュコントローラを内蔵しないフラッシュメモリの場合にはフラッシュコントローラの機能をバッファ制御部１２５もしくはＭＰＵ１２１に持たせることも可能である。
【００２４】
また、フラッシュメモリ１１０は、コマンドと制御信号に基づいて動作するように構成されている。フラッシュメモリに有効なコマンドとしては、リードコマンドの他、ライトコマンド、消去コマンド等がある。これらのコマンドや制御信号は、ＭＰＵ１２１等から与えられる。
【００２５】
図１には、便宜上、従来のマルチメディアカード（Ｍｕｌｔｉ  Ｍｅｄｉａ  Ｃａｒｄ（登録商標））と呼ばれるカードメモリに設けられる外部端子を示したが、本発明を適用可能なメモリカードに設けられる外部端子は、図１に示されているものに限定されるものでなく、例えばデータ入出力端子を複数個備えパラレルでデータの転送が可能なものであっても良い。
【００２６】
図２は、上記メモリカードに内蔵されているフラッシュメモリ１１０の概略構成を示す。フラッシュメモリには１つのメモリセルに１ビットのデータを記憶可能な２値メモリがあるが、この実施例のフラッシュメモリは１つのメモリセルに２ビットのデータを記憶可能な４値メモリとして構成され、単結晶シリコンのような１個の半導体チップ上に形成される。
【００２７】
図２において、符号１０は複数の不揮発性記憶素子（メモリセル）がマトリックス状に配置されたメモリアレイで、この実施例ではメモリアレイ１０は４つのバンクＢＡＮＫ０，ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３で構成されている。Ｘ−ＤＥＣ０，Ｘ−ＤＥＣ１，Ｘ−ＤＥＣ２，Ｘ−ＤＥＣ３はアドレス（Ｘアドレス）信号をデコードして前記メモリアレイ１０内の対応するワード線を選択レベルにするＸアドレスデコーダで、該ＸアドレスデコーダＸ−ＤＥＣ０〜Ｘ−ＤＥＣ３にはメモリアレイ内のワード線を選択レベルに駆動するワードドライバ回路が含まれている。
【００２８】
メモリアレイ１０を構成するメモリセルは、フローティングゲートとコントロールゲートを有するＭＯＳＦＥＴからなり、フローティングゲートに注入される電荷の量に応じてしきい値電圧が、４段階のいずかに設定されることにより２ビットの情報を記憶するようにされる。
【００２９】
なお、本明細書においては、しきい値電圧が最も低い状態を消去状態と称する。つまり、しきい値電圧を下げる動作を消去と称し、しきい値電圧を上げる動作を書込みもしくは書戻しと称する。本実施例のフラッシュメモリにおいては、メモリアレイ１０内のデータを書き換える際に、メモリセルは一旦消去状態にされてからデータに相当するしきい値電圧になるように書込み電圧の印加が行なわれる。
【００３０】
図２において、符号１２ａ，１２ｂはメモリアレイ１０内のグローバルビット線に接続され書込みデータを保持したり読出し信号の増幅を行なったり、１本のワード線に接続された複数のメモリセルのうちバイト単位やワード単位など所定の単位で書込みデータや読出しデータを選択したりするセンスアンプ＆カラムスイッチ（ＳＡ＆Ｃ−ＳＷ）、ＳＲＡＭ０，ＳＲＡＭ１，ＳＲＡＭ２，ＳＲＡＭ３は上記各バンクＢＡＮＫ０，ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３に対応して設けられ外部から入力された書込みデータを保持したりセンスアンプ１２ａ，１２ｂにより増幅された読出しデータを例えばページ単位で保持するスタティックＲＡＭ（ランダムアクセスメモリ）などからなるバッファメモリ（以下、ＳＲＡＭバッファと称する）、１３は外部からのアドレス信号に基づいてもしくは内部で自動的にカラムアドレス信号を生成するカラムアドレスカウンタである。
【００３１】
また、２０は外部から入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７を介して入力されたコマンドコードをデコードするコマンドデコーダ２１や内部電源回路を制御する内部電源制御回路２３など有し、入力されたコマンドに従ってチップ内部の制御信号を生成する制御部である。３０は該制御部２０の制御シーケンスをマイクロプログラムのような形式で記憶するシーケンス用ＲＯＭ、３１はデータ書込み時や消去時に必要とされる高電圧（負電圧を含む）を生成する内部電源回路である。
【００３２】
入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７は、上記コマンドの入力の他、書込みデータやアドレスの入力、リードデータの出力にも利用される。書込み時に外部より入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７に入力されたライトデータは前記ＳＲＡＭバッファＳＲＡＭ０〜ＳＲＡＭ３およびセンスアンプ１２ａ，１２ｂを経てメモリアレイ１０の各バンクに供給され、ライトアドレスは一旦制御部２０に取り込まれてからアドレスデコーダＸ−ＤＥＣ０〜Ｘ−ＤＥＣ３に供給される。
【００３３】
また、この実施例のフラッシュメモリには、外部のコントローラから入力される例えばチップ選択信号／ＣＥ、書込み制御信号／ＷＥ、出力制御信号／ＯＥ、読出し制御信号／ＲＥ等の制御信号が入力される制御端子が設けられており、これらの制御端子に入力された制御信号は制御部２０に供給され、これらの制御信号に従ってチップ内部の動作状態が制御される。ここで、特に制限されるものでないが、符号の前に「／」が付記されている信号は、ロウレベルが有効レベルであること意味する。また、制御部２０からはフラッシュメモリチップにコマンドを入力することが可能な状態にあるか否かを示すレディ／ビジー信号Ｒ／Ｂがチップ外部へ出力されるようにされている。
【００３４】
図３にはこの実施例のメモリカードに用いられるフラッシュメモリ１１０のメモリアレイの１バンクの具体的な構成例を示す。
図３に示されているように、フラッシュメモリ１１０のメモリアレイの１バンクには、２５６個のメモリセルＭＣ１〜ＭＣ２５６がローカルビット線ＬＢＬ１，ＢＬ２……とローカルソース線ＬＳＬ１１，ＬＳＬ２１……との間に並列に接続されたメモリ列が例えば４２２４個ワード線方向に並んで配設されている。本明細書ではこれらの２５６×４２２４個のメモリセル群をサブブロックと称する。横方向つまり同一行のメモリセルはそれぞれ共通のワード線ＷＬ１，ＷＬ２，……ＷＬ２５６に接続されている。本明細書では、同一のワード線に接続されたメモリセル群をブロックと称する。本実施例のフラッシュメモリは、このブロックを単位として消去を行なうように構成されている。サブブロックは１バンク当り４０個設けられている。
【００３５】
さらに、この実施例のメモリアレイは、２５６個のメモリセルからなるメモリ列のうち互いに隣接する奇数列のメモリセルと偶数列のメモリセルのドレイン端子が共通のローカルビット線ＬＢＬ１，ＬＢＬ２……に接続されている。そして、ローカルビット線ＬＢＬ１，ＬＢＬ２……は、それぞれ選択ＭＯＳＦＥＴ  Ｑｓ１，Ｑｓ２……を介して対応するグローバルビット線ＧＢＬ１，ＧＢＬ２……に接続可能にされている。図示しないが、グローバルビット線ＧＢＬ１，ＧＢＬ２……には、同様な構成のサブブロック内の対応するメモリ列のローカルビット線が接続可能にされる。
【００３６】
また、奇数列のメモリセルのソース端子はローカルソース線ＬＳＬ１１，ＬＳＬ１２……に接続され、偶数列のメモリセルのソース端子はローカルソース線ＬＳＬ２１，ＬＳＬ２２……に接続されている。そして、奇数列のローカルソース線ＬＳＬ１１，ＬＳＬ１２……は第１のコモンソース線ＣＳＬ１に接続され、偶数列のローカルソース線ＬＳＬ２１，ＬＳＬ２２……は第２のコモンソース線ＣＳＬ２に接続されている。第１のコモンソース線ＣＳＬ１と第２のコモンソース線ＣＳＬ２には、データ消去時には同一の電圧（０Ｖ）が印加され、データ書込み時には一方に書込み電圧（０Ｖ）、他方に書込み阻止電圧（３Ｖ）が印加される。これにより、書込みの単位は消去の単位の半分とされる。
【００３７】
なお、書込みまたは消去時にはサブブロック内の２５６本のワード線のうち１本が選択にされ、書込み時には８Ｖのような正の高電圧がまた消去時には−１２Ｖのような負の高電圧が印加される。これにより、消去はブロック単位すなわち１本のワード線に接続された４２２４個のメモリセルを対象として行なわれ、書込みは１本のワード線に接続された４２２４個のうち半分すなわち２１１２個のメモリセルを対象として行なわれる。以下、書込みの単位をページと称する。従って、１ブロックは２ページで構成される。また、１ブロックを構成する２ページのうち奇数列のメモリセルからなるページを表ページ、偶数列のメモリセルからなるページを裏ページと称する。
【００３８】
図４には、このページを基本単位とした場合の４つのバンクＢＡＮＫ０〜ＢＡＮＫ３とバッファメモリＢＦＭ０〜ＢＦＭ３との対応関係を示す。なお、図示の都合上、図４では１つのバンク当りのブロックの数は正確には示されていない。図４に示されているように、各バンクＢＡＮＫ０〜ＢＡＮＫ３は複数のブロックＢＬＫ１１〜ＢＬＫ１ｎ，ＢＬＫ２１〜ＢＬＫ２ｎ，ＢＬＫ３１〜ＢＬＫ３ｎ，ＢＬＫ４１〜ＢＬＫ４ｎにより構成され、各ブロックはそれぞれ表ページＳＦＰと裏ページＲＳＰとで構成されている。そして、バンクＢＡＮＫ０にはバッファメモリＢＦＭ０が対応され、バンクＢＡＮＫ１にはバッファメモリＢＦＭ１が、バンクＢＡＮＫ２にはバッファメモリＢＦＭ２が、さらにバンクＢＡＮＫ３にはバッファメモリＢＦＭ３が対応されている。
【００３９】
図５（Ａ）には、上記のような構成を有するフラッシュメモリを内蔵したメモリカードにおけるアドレス割付け方式の一例を示す。図５（Ａ）は図４に示されている回路のうちメモリアレイの部分のみ取り出して示したものであり、ＢＡＮＫ０〜ＢＡＮＫ３はそれぞれバンク、符号ＢＬＫが付されているのはそれぞれブロックである。また、図５（Ａ）において、ハッチングが付されているブロックはその中に不良ビッドが含まれているブロックであることを表わしている。
【００４０】
図５（Ａ）から分かるように、本実施例においては、各バンクの先頭から不良ビットを含むブロックを回避しつつ順番に１ブロックずつ選択してグループ化させて、各ブロックのグループに先頭からいずれか１つのバンクの最終ブロックに到達するまで順次アドレスを割り当てるように構成されている。図５（Ａ）において、同一の丸付き数字が付されているブロックは同一のアドレスによって同時に選択されるブロックであることを意味している。図１６と比較すると明らかなように、本実施例を適用することにより、不良ビットを含まないにもかかわらず未使用になるブロック（×印が付いたブロック）の数を大幅に減らすことができる。なお、未割当のブロックは、後に発生した不良ビットを含むブロックと置換される予備ブロックとすることができる。
【００４１】
各ブロックはそれぞれ図５（Ｂ）に示すように、表ページに設けられた表データ記憶部Ｓ−ＤＴＭおよび管理情報記憶部Ｓ−ＭＤＭと、裏ページに設けられた裏データ記憶部Ｒ−ＤＴＭおよび管理情報記憶部Ｒ−ＭＤＭとにより構成されている。特に制限されるものでないが、この実施例のフラッシュメモリは、１つのメモリセルに２ビットのデータを記憶可能に構成された多値メモリであるが、１つのメモリセルに１ビットのデータを記憶し読み出すように動作することができるようにされており、データ記憶部Ｓ−ＤＴＭとＲ−ＤＴＭでは１つのメモリセルに２ビットのデータを記憶し、管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭでは１つのメモリセルに１ビットのデータを記憶するようにされる。
【００４２】
これより、表データ記憶部Ｓ−ＤＴＭと裏データ記憶部Ｒ−ＤＴＭの記憶容量は２０８０バイト、管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭの記憶容量は１６バイトとなる。１つのメモリセルに１ビットのデータを記憶する方が読出しデータの信頼性は高くなる。つまり、この実施例では、管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭの記憶データの方が信頼性は高いといえる。
【００４３】
図６（Ａ）にはバンクＢＡＮＫ０に属する各ブロックの管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭに設けられるデータの格納領域の構成、図６（Ｂ）にはバンクＢＡＮＫ１〜３に属する各ブロックの管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭに設けられるデータの格納領域の構成を示す。
【００４４】
図６（Ａ）に示すように、この実施例においては、バンクＢＡＮＫ０の表ページに設けられる管理情報記憶部Ｓ−ＭＤＭに、当該ページが不良でないことを示すコードが格納される２バイトの良／不良領域ＭＧＡと、当該ブロックのデータ記憶部Ｓ−ＤＴＭ，Ｒ−ＤＴＭに格納されるデータがシステムデータなのかユーザデータなのかを示すデータ種別識別情報が格納される２バイトのデータ識別領域ＤＤＡと、データを消去してはいけないブロックか否かを示す書込み禁止フラグ領域ＷＰＦとが設けられている。残りの領域は未使用の領域である。この未使用領域には、消去済みか否かを示す情報や当該ブロックの消去回数、エラー訂正用のＥＣＣコードを格納するようにしてもよい。
【００４５】
また、バンクＢＡＮＫ０の裏ページに設けられる管理情報記憶部Ｒ−ＭＤＭには、当該ページが不良でないことを示すコード（ＭＧＭコード）が格納される２バイトの良／不良領域ＭＧＡと、当該ブロックと結合されるバンクＢＡＮＫ１の対応ブロックのページアドレスを格納するチェーン情報記憶領域ＲＤＡ１と、当該ブロックと結合されるバンクＢＡＮＫ２の対応ブロックのページアドレスを格納するチェーン情報記憶領域ＲＤＡ２と、当該ブロックと結合されるバンクＢＡＮＫ３の対応ブロックのページアドレスを格納するチェーン情報記憶領域ＲＤＡ３とが設けられる。チェーン情報記憶領域ＲＤＡ１，ＲＤＡ２，ＲＤＡ３はそれぞれ２バイトで構成される。残りの８バイトは未使用の領域である。
【００４６】
以下、上記のように４つのバンクの中から１ブロックずつ選択して結合させることをバンク間ブロックチェーンと称し、ＦＬＢＡと記す。このバンク間ブロックチェーンは、カード製造時に書き込まれる。
【００４７】
一方、図６（Ｂ）に示すように、バンクＢＡＮＫ１〜３の管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭには、それぞれ当該ページが不良でないことを示すＭＧＭコードが格納される２バイトの良／不良領域ＭＧＡが設けられ、残りの１４バイトは未使用の領域とされている。なお、バンクＢＡＮＫ１〜３の管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭには必ずしも良／不良領域ＭＧＡを設ける必要はなく、省略することも可能である。ＭＧＭコードの格納は、バンク間ブロックチェーンの生成の際に行なうようにすることができる。
【００４８】
また、実施例では、バンクＢＡＮＫ０の管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭを図６（Ａ）のような構成にし、バンクＢＡＮＫ１〜３の管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭを図６（Ｂ）のような構成にすると説明したが、バンクＢＡＮＫ１〜３のうちいずれか１つの管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭを図６（Ａ）のような構成にして、残りの３つのバンクの管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭを図６（Ｂ）のような構成にするようにしてもよい。その場合、図６（Ａ）のような構成にされたバンクの裏管理情報記憶部Ｒ−ＭＤＭのチェーン情報記憶領域ＲＤＡ１〜３には、当該ブロックと結合される他の３つのバンクＢＡＮＫにあるブロックのページアドレスが格納される。つまり、図６（Ａ）のような構成の管理情報記憶部を設けるのはバンクＢＡＮＫ０に限定されず、いずれのバンクであっても良い。
【００４９】
次に、本実施例のメモリカードにおいてバンク間ブロックチェーンが定義されたフラッシュメモリに対してデータの書込みおよび読出しを行なう場合の手順の一例を、図７および図８のフローチャートを用いて説明する。なお、図７および図８のフローチャートに従った制御は、コントローラ１２０によって実行される。
【００５０】
データ書込み処理では、図７のように、先ず外部のホスト装置から入力された論理アドレスを、コントローラ１２０のＭＰＵ１２１が演算によりまたはテーブルを参照していずれかのバンク間ブロックチェーンＦＬＢＡを指定する物理アドレスに変換する（ステップＳ１１）。
【００５１】
続いて、該アドレスを用いてフラッシュメモリ１１０をアクセスし、該アドレスで指定されるバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０のブロックの管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭに記憶されている管理情報を読み出してバッファメモリ１２４へ転送する（ステップＳ１２）。そして、読み出された管理情報から、バンクＢＡＮＫ０の選択ブロックに対応するバンクＢＡＮＫ１〜３のブロックのページアドレスを取得する（ステップＳ１３）。
【００５２】
ここで、バンクＢＡＮＫ０のブロックの管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭに記憶されている管理情報から直接分かるのは、対応するバンクＢＡＮＫ１〜３のブロックの表ページ（もしくは裏ページ）のページアドレスであるが、表ページと裏ページのアドレスは所定の関係にあるので、裏ページ（もしくは表ページ）のページアドレスは計算によって求めることができる。また、バンクＢＡＮＫ０の選択ブロックのページアドレスは、ステップＳ１１の演算により予め得ておくことができる。これにより、選択バンク間ブロックチェーンＦＬＢＡに属する全ブロックのページアドレスを知ることができる。
【００５３】
次に、外部のホスト装置から入力された書込みデータをバッファメモリ１２４を経由してフラッシュメモリ１１０の各バンクに対応されたＳＲＡＭバッファＢＦＭ０〜ＢＦＭ３へ転送する（ステップＳ１４）。それから、書込み先のブロックのメモリセルはすべてデータ消去済みであるか否かをチェックする（ステップＳ１５）。この判定は、ステップＳ２でフラッシュメモリ１１０から読み出されたデータ記憶部Ｓ−ＤＴＭ，Ｒ−ＤＴＭのデータがオール“０”か否かを調べて行なっても良いし、バンクＢＡＮＫ０のブロックの管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭにデータ消去済みであるか否かを記憶する領域が設けられている場合にはその領域の情報を調べて行なうことも可能である。
【００５４】
ステップＳ１５の判定でデータ消去済みであったときはそのままステップＳ１７へ移行し、データ消去済みでなかったときはステップＳ１６で当該バンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０〜３に属するブロックのデータ記憶部Ｓ−ＤＴＭ，Ｒ−ＤＴＭのデータを消去してからステップＳ１７へ移行する。
【００５５】
ステップＳ１７では、ステップＳ１４でＳＲＡＭバッファＢＦＭ０〜ＢＦＭ３へ転送した書込みデータを、ステップＳ１３で取得したページアドレスを使用して所望のブロックへ４バンク同時に並列書込みを行なう。続いて、ステップＳ１８へ移行して書込みベリファイ動作を行ない、すべての選択ブロックの表ページ又は裏ページへの書込みが終了したか否かを判定し、終了していないときはステップＳ１４へ戻って再度上記動作（ステップＳ１４〜Ｓ１７）を繰り返す。本実施例では、フラッシュメモリの構成から書込みは表ページと裏ページ別々に行なわれる。則ち、４バンクの所望のブロックの表ページに関し書込を行い（ステップＳ１７）、書込終了を確認（ステップＳ１８）した後、当該ブロックの裏ページに関し書込を行い（ステップＳ１７）、書込終了を確認（ステップＳ１８）する。
【００５６】
そして、ステップＳ１８で表ページと裏ページへの書込みが終了したと判定すると、ステップＳ１９へ移行して複数のブロックに亘る全データの書込みが終了したか否かを判定し、終了していないときはステップＳ１１へ戻って再度上記動作（ステップＳ１１〜Ｓ１７）を繰り返す。ステップＳ１９で全データの書込みが終了したと判定したならば、書込み処理を終了する。ただし、ステップＳ１１で論理アドレスから物理アドレスへの変換をテーブルを参照して行ないかつデータを他のブロックへ移し変えたような場合つまり論理アドレスは同じで物理アドレスを変えた場合には、ステップＳ１９の後でテーブルの書換え等の処理をしてから終了する。
【００５７】
データ読出し処理では、図８のように、先ず外部のホスト装置から入力された論理アドレスを、コントローラ１２０のＭＰＵ１２１が演算によりまたはテーブルを参照していずれかのバンク間ブロックチェーンＦＬＢＡを指定する物理アドレスに変換する（ステップＳ２１）。
【００５８】
続いて、該アドレスを用いてフラッシュメモリ１１０をアクセスし、該アドレスで指定されるバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０に属するブロックの管理情報記憶部Ｓ−ＭＤＭとＲ−ＭＤＭに記憶されている管理情報を読み出してバッファメモリ１２４へ転送する（ステップＳ２２）。そして、読み出された管理情報から、バンクＢＡＮＫ０の選択ブロックに対応するバンクＢＡＮＫ１〜３のブロックのページアドレスを取得する（ステップＳ２３）。ステップＳ２１〜２３は書込み処理のステップＳ１１〜Ｓ１３と同様である。
【００５９】
次に、ステップＳ２３で取得したページアドレスを使用して、フラッシュメモリ１１０のメモリアレイから読み出された選択ブロックのぺージデータを、各バンクに対応されたＳＲＡＭバッファＢＦＭ０〜ＢＦＭ３へ転送する（ステップＳ２４）。そして、ＳＲＡＭバッファＢＦＭ０〜ＢＦＭ３のデータをバッファメモリ１２４を経由して外部のホスト装置へ転送する（ステップＳ２５）。本実施例では、フラッシュメモリの構成から読出しは表ページと裏ページ別々に行なわれる。
【００６０】
それから、すべての選択ブロックの表ページ又は裏ページの読出しが終了したか否かを判定し、終了していないときはステップＳ２４へ戻って再度上記動作（ステップＳ２４〜Ｓ２６）を繰り返す。
【００６１】
そして、ステップＳ２５で表ページと裏ページの読出しが終了したと判定すると、ステップＳ２６へ移行して複数のブロックに亘る全データの読出しが終了したか否かを判定し、終了していないときはステップＳ２１へ戻って再度上記動作（ステップＳ２１〜Ｓ２７）を繰り返す。ステップＳ２７で全データの読出しが終了したと判定したならば、読出し処理を終了する。読出し処理では、ステップＳ２１で論理アドレスから物理アドレスへの変換をテーブルを参照して行なったとしても、ステップＳ２７の後でテーブルの書換え等の処理はしなくてもよい。
【００６２】
次に、本発明の第２の実施例を、図９〜図１５を用いて説明する。この第２の実施例は、外部から入力された論理アドレスを、変換テーブルを参照してフラッシュメモリの物理アドレスに変換するテーブル方式に適用した実施例である。この変換テーブルはフラッシュメモリのメモリアレイ内に格納されており、電源投入時にバッファメモリ１２４上もしくはコントローラＭＰＵ内のワークＲＡＭ上に、テーブルが格納されているＦＬＢＡの物理アドレスが登録される。
【００６３】
図９は、第２実施例のテーブル方式のアドレス管理におけるフラッシュメモリのバンク間ブロックチェーンの構成例およびテーブル領域の設定例を示すものである。
バンク間ブロックチェーンの構成の仕方は、図５（Ａ）を用いて説明した第１の実施例におけるそれと同じである。図９において、符号ＦＬＢＡが付されたそれぞれの箱は、表裏２つのページからなるブロックである。各バンクに属するブロックのうち同一の符号が付されたものは同一のバンク間ブロックチェーンを構成するブロックである。また、ハッチングが付されているブロックはその中に不良ビットが含まれているブロックであることを意味している。
【００６４】
図９に示されているように、この実施例においても各バンクの先頭から不良ビットを含むブロックを回避しつつ順番に１ブロックずつ選択してグループ化させてチェーンを構成し、各チェーンに先頭からいずれか１つのバンクの最終ブロックに到達するまで順次アドレスを割り当てるようにされている。
【００６５】
さらに、この第２の実施例では、上記のようにしてチェーンが構成されたメモリアレイのうち不良ビットを含むブロックの少ない箇所がテーブル格納領域ＴＳＡとして選択され、残りの領域がデータ格納領域とされるようになっている。
【００６６】
フラッシュメモリは不良ビットが局所的に発生する傾向があるので、上記のように重要なテーブルデータが格納される領域をサブブロックのうち不良ビットを含むブロックの少ない箇所に割り当てることにより、信頼性を向上させることができるとともに新たに不良ビットを含むブロックが発生した時に行なわれるテーブル格納領域の再配置の処理回数を減らして待ち時間を短くすることができる。
【００６７】
不良ビットを含まないにもかかわらず未使用になるバンク最終ブロック近傍の未割当のブロックは、後に発生した不良ビットを含むブロックと置換される予備ブロックとすることができる。上記テーブル格納領域ＴＳＡに格納されるテーブルは、本実施例では、アドレス変換用のテーブルおよびデータを書込みあるいは上書きしてもよいブロックをリストアップした未使用テーブルである。
【００６８】
特に制限されるものでないが、アドレス変換テーブルはメモリアレイ内のサブブロックの数（３２０個）だけ設けられ、各アドレス変換テーブルはそれぞれ５１２バイトで構成されている。本実施例のフラッシュメモリの１ページは前述したように２１１２バイトであるので、１ページに４つ、１ブロックに８つのアドレス変換テーブルが格納される。
【００６９】
アドレス変換テーブルが格納されるサブブロックは、カード製造時に実行されるフォーマット動作により決定される。また、テーブルが格納されているサブブロックの位置及び各テーブルの物理アドレスは、電源投入時にＭＰＵ１２１が各ブロックの管理情報記憶部のデータ種別識別情報等を参照して見つけ、ＭＰＵ１２１内のワークＲＡＭもしくはバッファメモリ１２４内に登録しておくようにされる。
図１０（Ａ）には上記アドレス変換テーブルの構成例を、また図１０（Ｂ）には未使用テーブルの構成例を示す。
【００７０】
図１０（Ａ）のアドレス変換テーブルにおいて、上欄ＣＡはカラムアドレス、下欄の「値」は変換後のページアドレスを意味する。また、末尾に“ｈ”が付されている数字はそれが１６進数表示であることを意味している。ホスト装置から与えられる論理アドレスはフラッシュメモリのカラムアドレスに対応され、かつ論理アドレスはカラムアドレスの先頭から順番に対応される。
【００７１】
１つのアドレス変換テーブルは１つのブロックに格納され、１つのバンク間ブロックチェーンＦＬＢＡのページアドレスは２バイトで表わされるので、１テーブルには２５６個のＦＬＢＡページアドレスを登録することができる。これは変換前の論理アドレスに換算すると８１９２個であり、外部のホスト装置から入力される論理アドレスが６４バイト単位であるとすると、８１９２×６４バイトのアドレス情報を１つの変換テーブルに登録できることを意味している。
【００７２】
また、１ブロックには４０９６バイトのデータ領域があるので、１つのブロックには８つのアドレス変換テーブルが格納可能である。一方、実施例のフラッシュメモリは、１つのサブブロックには２５６個のブロックがあり、１ブロックは２ページからなり１つのバンクに４０個のサブブロックがあるので、ＦＬＢＡページアドレスの数は最大で８１９２０個である。従って、アドレス変換テーブルは３２０個必要であり、３２０個のアドレス変換テーブルは４０個のブロックすなわちいずれか１つバンクの１サブブロックに格納することができる。
【００７３】
図１０（Ａ）の変換テーブルでは、変換前の論理アドレス“ＨＢＡ０〜３１”はバンクＢＡＮＫ０のページアドレスが“００００”から始まるバンク間ブロックチェーンＦＬＢＡに割り当てられ、変換前の論理アドレス“ＨＢＡ３２〜６３”はバンクＢＡＮＫ０のページアドレスが“００５０”から始まるバンク間ブロックチェーンＦＬＢＡに割り当てられることを示している。変換後の物理アドレスは連続していなくても良い。
【００７４】
なお、図１０（Ａ）のアドレス変換テーブルにおいて、下欄の変換後の値がＦＦＦＦである時はまだページアドレスが割り当てられていないことを示している。また、この実施例では、バンクＢＡＮＫ０のページアドレスを指定するのに１３ビットあればよく、これを２バイト（１６ビット）の変換後アドレス格納領域に格納する場合３ビット余るので、ここに書込み禁止を指示する情報などバンク間ブロックチェーンの管理に関係する制御情報フラグを格納するのに利用することができる。
【００７５】
未使用テーブルは、物理アドレス順に各ブロックに１ビットが割り当てられ、“１”が立っているビットに対応するブロックは消去が可能であることを表わし、“０”  が立っているビットに対応するブロックは消去が不許可であることを表わすようにされる。図１０（Ｂ）の未使用テーブルは、バンクＢＡＮＫ０の２番目のブロックと５番目及び６番目のブロックがそれぞれ消去可能であることを宣言している。
【００７６】
１つの未使用テーブルは５１２バイト（４０９６ビット）で構成され、４０９６個のブロックの消去の可否が１つの未使用テーブルで設定可能である。実施例のフラッシュメモリは、１つのサブブロックに２５６個のブロックがあり、１つのバンクに４０個のサブブロックがあるので、４つのバンク全体で４０９６０個のブロックがある。従って、未使用テーブルは１０個必要である。一方、１ブロックには４０９６バイトのデータ領域があり、１つのブロックには８つの未使用テーブルを格納できるスペースがあるので、１０個の未使用テーブルは２つのブロックに格納することができる。また、前述のように全てのアドレス変換テーブルは１つのバンクの１サブブロックに格納可能である。
【００７７】
実施例のフラッシュメモリには４つのバンクがあるので、図９のように４つのバンクのあるサブブロックをテーブル格納領域ＴＳＡとした場合、大部分（約３／４）が未使用の領域となる。そこで、このテーブル格納領域ＴＳＡ内でアドレス変換テーブルおよび未使用テーブルを順次シフトさせながら格納することができ、かつそのようにシフトを行なうことによりテーブルの書換えで特定のブロックの書換え回数のみ極端に多くなって信頼性が低下するのを回避することができる。
【００７８】
図１１には、テーブル方式を採用したメモリカードにおける論理アドレスから物理アドレスへの変換手順が示されている。なお、図１１のフローチャートに従った制御は、コントローラ１２０によって実行される。
コントローラ１２０のＭＰＵ１２１は、外部のホスト装置からリードコマンドやライトコマンドと共に論理アドレスを受け取ると、当該論理アドレスの論理−物理変換情報を登録してあるアドレス変換テーブルの番号を決定する（ステップＳ３１）。次に、フラッシュメモリ１１０のフォーマット時に選択されたテーブル専用のサブブロックの中から、電源投入時にＭＰＵのＲＡＭもしくはコントローラ内バッファに登録されたアドレス変換テーブルの物理アドレスを参照して、アドレス変換テーブルのデータをフラッシュメモリ１１０から読み出してコントローラ１２０のバッファメモリ１２４の所定の番地に格納する（ステップＳ３２）。それから、バッファメモリ１２４内に格納したテーブルを参照してホスト装置が指定した論理アドレスに対応したバンク間ブロックチェーンＦＬＢＡのページアドレスを取得する（ステップＳ３３）。その後、このページアドレスを用いてホスト装置により指定されたコマンドに応じてフラッシュメモリからのデータの読出し、または書込みを実行する。
【００７９】
次に、実施例のメモリカードにおいて、テーブル方式を採用してデータの書込みを行なう場合の手順を、図１２〜図１４を用いて説明する。
図１２には、あるバンク間ブロックチェーンＦＬＢＡｉのバンクＢＡＮＫ０の表ページのデータの一部を書き換える場合の手順の概略が示されている。
図１２において、ＤＢＡ，ＴＢＡはバッファメモリ２１４のデータバッファ領域およびテーブル展開領域、ＳＲＡＭ０〜ＳＲＡＭ３はリードデータとライトデータが一時保持されるＳＲＡＭバッファ、ＦＬＳはフラッシュメモリのメモリアレイ、ＴＳＡはテーブル格納領域、またはＡＣＴはアドレス変換テーブル、ＥＥＴは未使用テーブルである。丸で囲まれた数字はデータ書換えの際の動作の順番を示す。
【００８０】
具体的には、▲１▼のようにメモリアレイＦＬＳからアドレス変換テーブルＡＣＴと未使用テーブルＥＥＴをバッファメモリのテーブル展開領域ＴＢＡへ読み出してから、▲２▼のようにＭＰＵがバッファ上のテーブルから旧データのブロックと新データのブロックのブロックアドレスを取得する。次に、▲３▼のようにＭＰＵからメモリアレイＦＬＳへ旧データのブロックアドレスを与え、旧データをＳＲＡＭバッファＳＲＡＭ０〜ＳＲＡＭ３へ読み出す。
【００８１】
それから、▲４▼のようにホスト装置からのライトデータをデータバッファ領域ＤＢＡから書込み位置に対応したＳＲＡＭバッファ（例えばＳＲＡＭ０）に転送する。しかる後、▲５▼のようにＭＰＵからメモリアレイＦＬＳへ新データのブロックアドレスを与え、ＳＲＡＭバッファＳＲＡＭ０〜ＳＲＡＭ３のデータをメモリアレイＦＬＳの新ブロックへ格納する。それから、▲６▼のようにアドレス変換テーブルＡＣＴに新データのブロックアドレスを登録するとともに未使用テーブルＥＥＴに旧データのブロックを消去可能なブロックとして登録する。
【００８２】
データの一部を書き換える場合、新しいデータを元のメモリセルに書き込むことも可能であるが、新データの書込み中に電源が遮断されたりすると元のデータが消滅してしまうことがある。そこで、この実施例では、データの一部を書き換える場合には、元のデータが入っているバンク間ブロックチェーンＦＬＢＡｉのデータの一部を外部からの新データに置き換えて他のバンク間ブロックチェーンＦＬＢＡｊに書き込むようにしている。
【００８３】
これにより、新データの書込み中やテーブル更新中に電源が遮断されても、元のデータが消滅したり正しいデータを読み出せなくなってしまうのを防止することができる。また、このようにすることによって、新データの書込み先のブロックの書換え回数をチェックして書換え回数の少ないブロックへ書込みを行なうことにより、データの書換えが特定のページに集中して発生することで局所的なメモリセルの劣化が生じるのを回避することができるようになる。
【００８４】
次に、データ書換えのより詳細な手順を図１３および図１４のフローチャートを用いて説明する。
外部のホスト装置から書込みコマンドが入力されると、ＭＰＵ１２１はホスト装置からの論理アドレスから使用するアドレス変換テーブルのページアドレスとカラムアドレスを算出し、算出したアドレスを用いてフラッシュメモリ１１０からアドレス変換テーブルをバッファメモリ１２４へ読み出す（ステップＳ４１，Ｓ４２）。
【００８５】
なお、このステップＳ４１，Ｓ４２を実行する代わりに、電源投入時等に予めフラッシュメモリ内のすべてのアドレス変換テーブルをバッファメモリ１２４へ読み込んでおくようにしてもよい。このようにすることより、例えばテーブルの更新はバッファメモリ１２４上で行ない電源遮断時にテーブルのデータをフラッシュメモリ１１０へ戻すことでフラッシュメモリの書換え回数を減らすことが可能となる。
【００８６】
ステップＳ４２でアドレス変換テーブルを読み込んだ後は、テーブルを参照して、書き換えようとするデータが格納されているブロックを含むバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０のページアドレスを取得する（ステップＳ４３）。このとき、アドレス変換テーブルの変換後のアドレス値が“ＦＦＦＦｈ”であり対応する物理アドレスがないときは、そこには旧データがないということであるので、ステップＳ４４からそのままステップＳ４６へジャンプする。
【００８７】
アドレス変換テーブルの変換後のアドレス値が“ＦＦＦＦｈ”以外のときはその物理アドレスには旧データがあるということであるので、ステップＳ４４からステップＳ４５へ移行して、旧データが格納されているバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０の裏ページの管理情報記憶部のデータを読み出して、結合された他のバンクＢＡＮＫ１〜ＢＡＮＫ３のページアドレスを取得する。
【００８８】
ステップＳ４６では、例えばバンクＢＡＮＫ０の裏ページの管理情報記憶部に設けられている書込み禁止フラグＷＰＦ等をチェックしてライトプロテクトがかかっているか否か判定する。そして、ライトプロテクトがかかっていると判定したときはそのまま処理を終了し、ライトプロテクトがかかっていないと判定したときはステップＳ４７へ移行してフラッシュメモリ１１０内に格納されている未使用テーブルを読み出してバッファメモリ１２４に転送する。
【００８９】
次に、新データを書き込むバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０の検索開始ページアドレスを算出する（ステップＳ４８）。このページアドレスは乱数生成機能等を用いてランダムに生成される。生成されるアドレスが検索開始ページアドレスとされているのは、未使用テーブルにはすべてのブロックの消去可能か不許可かを示す情報がのっているので生成されたページアドレスをそのままライトアドレスとすると、ランダムに生成されたページアドレスがたまたま消去不許可なブロックを指示するものであった場合に上書きにより必要なデータが失われてしまうのを回避するためである。また、検索開始ページアドレスをランダムに生成しているのは、常に先頭から検索を開始すると書込みが行なわれるブロックが先頭の方にあるものに集中してしまうためである。
【００９０】
ステップＳ４８の後、上記検索開始ページアドレスを用いて未使用テーブルを検索して新データを書き込むバンク間ブロックチェーンＦＬＢＡが見つからなかったときは書込みエラーとして処理を終了する（ステップＳ４９）。一方、ステップＳ４９で新データを書き込むバンク間ブロックチェーンＦＬＢＡが見つかった時は、符号Ａに従って図１４のステップＳ５０へ移行する。
【００９１】
ステップＳ５０では、新データを書き込むバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０の表ページと裏ページの管理情報記憶部のデータを読み出して、当該バンクがユーザデータ領域等で書込み可能な領域であるか否かを判定するとともに、結合された他のバンクＢＡＮＫ１〜ＢＡＮＫ３のページアドレスを取得する。その後、旧データが格納されているバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０〜ＢＡＮＫ４の表ページのデータをすべてＳＲＡＭバッファＳＲＡＭ０〜ＳＲＡＭ４へ読み出す（ステップＳ５１）。
【００９２】
それから、ステップＳ５０で読み出した管理情報のフラグから新データを書き込むバンク間ブロックチェーンＦＬＢＡのブロックが既に消去済みか否かを判定する（ステップＳ５２）。そして、消去済みであればステップＳ５４へジャンプし、消去済みでなければステップＳ５３で新データを書き込むバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０〜ＢＡＮＫ４のデータ記憶部のデータをすべて消去してからステップＳ５４へ移行する。
【００９３】
ステップＳ５４では、ステップＳ５１で読み出した旧データとホスト装置からの書込みデータとをＳＲＡＭバッファＳＲＡＭ０〜ＳＲＡＭ４上で合成することにより表ページの新データの作成を行なう。ここで、旧データには、旧データが格納されているバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０〜ＢＡＮＫ４のデータ記憶部のデータの他に、管理情報記憶部のデータが含まれる。また、新データを作成する際に消去済フラグやＥＣＣコード、消去回数など更新の必要があるものは、ＭＰＵ１２１の処理により更新が行なわれる。
【００９４】
その後、上記ステップＳ５４で作成した新データを、新データのバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０とこれに結合された他のバンクＢＡＮＫ１〜ＢＡＮＫ３の表ページに書き込む（ステップＳ５５）。
【００９５】
次に、旧データが格納されているバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０〜ＢＡＮＫ４の裏ページのデータをすべてＳＲＡＭバッファＳＲＡＭ０〜ＳＲＡＭ４へ読み出す（ステップＳ５６）。
【００９６】
それから、ステップＳ５６で読み出した旧データとホスト装置からの書込みデータとをＳＲＡＭバッファＳＲＡＭ０〜ＳＲＡＭ４上で合成することにより裏ページの新データの作成を行なう（ステップＳ５７）。ここで、書込みデータが表ページのものである場合にはデータ記憶部の旧データと管理情報記憶部のページアドレスがそのまま新データとなる。
【００９７】
書込みデータが表ページのものである場合にはデータ記憶部の旧データのうち書換え対象のデータのみ書込みデータで置換されたものが新データとなる。この場合にも管理情報記憶部のページアドレスはそのまま新データに含まれるようにされる。また、裏ページの管理情報記憶部にＥＣＣコードや消去回数などを格納する領域が設けられている場合にはそれらの管理情報のうち更新の必要性があるものは、ＭＰＵ１２１の処理により更新が行なわれる。
【００９８】
その後、上記ステップＳ５７で作成した新データを、新データのバンク間ブロックチェーンＦＬＢＡのバンクＢＡＮＫ０とこれに結合された他のバンクＢＡＮＫ１〜ＢＡＮＫ３の表ページに書き込む（ステップＳ５８）。それから、新データが書き込まれたブロックに関する未使用テーブルの値が「消去可」から「消去不許可」に更新する処理が行なわれる（ステップＳ５９）。
【００９９】
また、アドレス変換テーブルに関しても変換後の物理アドレスを、旧データのバンクＢＡＮＫ０のページアドレスから新データのバンクＢＡＮＫ０のページアドレスへ更新する処理が行なわれる（ステップＳ６０）。そして、最後に旧データが格納されていたブロックに関する未使用テーブルの値を「消去不許可」から「消去可」に更新する処理が行なわれる（ステップＳ６１）。このように、アドレス変換テーブルの更新後に旧データが格納されていたブロックに関する未使用テーブルが更新されることにより、新データの書込みや新データのブロックに関する未使用テーブルの更新、アドレス変換テーブルの更新中に電源が遮断されたような場合にも旧データを保存つまり再読出しすることができるようになる。
【０１００】
なお、この実施例のメモリカードにおいては、ブロック間チェーン情報（ページアドレス）の他に消去済フラグ等の逐次更新される管理情報が格納されるバンクがＢＡＮＫ０に固定されている場合を説明したが、管理情報が格納されるバンクをＢＡＮＫ０から、ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３に順次入れ替えるようにすることも可能である。消去済フラグ等の管理情報が逐次更新されるとその度に当該ブロックに対する書換えが発生するので、バンクＢＡＮＫ０のみ書換え回数が多くなるが、管理情報が格納されるバンクを入れ替えることにより書換え回数を平均化することができ、局所的なメモリセルの劣化を抑制することができる。
【０１０１】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、実施例においては、消去単位が書込み単位の２倍であるフラッシュメモリに適用した場合を説明したが、本発明は消去単位が書込み単位と同一であるフラッシュメモリにも適用することができる。
【０１０２】
具体的には、実施例では、１つのワード線に接続された複数のメモリセル群（ブロック）のうち半分が第１のローカルソース線に接続され、残りの半分が第２のローカルソース線に接続されて、１ブロックが２つのページにより構成されているが、ページとブロックが同じである場合にも適用することができる。また、逆に消去単位が書込み単位の３倍以上であるフラッシュメモリにも適用することができる。本発明はメモリアレイが並列書込み可能な複数のバンクで構成されている不揮発性メモリおよびそれを用いた記憶装置に広く利用することができる。
【０１０３】
また、実施例においては、バンクＢＡＮＫ０の管理情報記憶部にこれと結合された他の３つのバンクＢＡＮＫ１〜ＢＡＮＫ３のページアドレスを記憶するようにしているが、いずれかのバンクの管理情報記憶部にこれと結合された他のいずれかのバンクのページアドレスを記憶し、該いずれかのバンクの管理情報記憶部にこれとさらに結合された他のバンクのページアドレスを記憶させるようにする。つまり、チェーンを２段階以上に張るように構成することも可能である。
【０１０４】
さらに、実施例では、１つの記憶素子（メモリセル）に２ビットのデータを記憶可能な４値のフラッシュメモリについて説明したが、本発明は１つの記憶素子に１ビットのデータを記憶する２値のフラッシュメモリや３ビット以上のデータを記憶する多値のフラッシュメモリに対しても適用することができる。
【０１０５】
また、実施例においてはメモリセルのしきい値電圧が低い状態を消去状態と称し、しきい値電圧が高い状態を書込み状態と称しているが、メモリセルのしきい値電圧が高い状態を消去状態に対応させ、しきい値電圧が低い状態を書込み状態に対応させるようにしたフラッシュメモリに対しても本発明を適用することができる。
【０１０６】
さらに、前記実施例においては、複数の記憶素子がビット線とソース線との間に並列に接続されたいわゆるＡＮＤ型もしくはＮＯＲ型のフラッシュメモリについて説明したが、本発明は記憶素子が直列に接続されたいわゆるＮＡＮＤ型のフラッシュメモリや、ＭＯＮＯＳ構造のメモリセルを持つ不揮発性メモリ等に対しても適用することができる。
【０１０７】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリを用いたメモリカードに適用した場合について説明したが、この発明はそれに限定されるものでなく、本発明は、電圧を印加してしきい値電圧を変化させて情報の記憶を行なう不揮発性記憶素子を有するＥＥＰＲＯＭその他の半導体メモリを用いたメモリカードおよび複数の不揮発性メモリを１枚のプリント配線基板上に搭載してなるメモリモジュールと呼ばれる記憶装置などに広く利用することができる。
【０１０８】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本発明に従うと、複数のバンクを有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、不良ビットを含むブロックを回避してブロックチェーンが形成されるため、不良ビットを含まないにもかかわらず未使用になるブロックを減少させ、実質的な記憶容量を増加させることができるようになる。
【０１０９】
また、管理情報格納領域を有するバンクのブロックから管理情報を読み出すだけで結合された他のブロックを知ることができるとともに、すべてのブロックに関して論理アドレスを物理アドレスに変換するアドレス変換テーブルを用意する場合に比べてテーブルの規模を小さくし、テーブルをフラッシュメモリに格納することによりメモリの実質的な記憶容量が減少するのを防止することができるようになる。
【図面の簡単な説明】
【図１】本発明を適用して有効な不揮発性半導体記憶装置としてのフラッシュメモリを内蔵したメモリカードの一実施例を示すブロック図である。
【図２】実施例のメモリカードに内蔵されたフラッシュメモリの構成例を示すブロック図である。
【図３】実施例のフラッシュメモリのメモリアレイの構成例を示す回路説明図である。
【図４】実施例のフラッシュメモリにおけるメモリアレイのバンク構成とバッファメモリとの関係を示す説明図である。
【図５】図５（Ａ）は実施例のフラッシュメモリを内蔵したメモリカードにおけるアドレス割付け方式の一例を示す説明図、図５（Ｂ）は各バンク内のブロックの構成例を示す説明図である。
【図６】図６（Ａ）は実施例のフラッシュメモリにおけるバンクＢＡＮＫ０の管理情報記憶部の構成例を示す説明図、図６（Ｂ）はバンクＢＡＮＫ１〜３の管理情報記憶部の構成例を示す説明図である。
【図７】第１実施例のメモリカードにおけるデータ書込み処理の手順の一例を示すフローチャートである。
【図８】第１実施例のメモリカードにおけるデータ読出し処理の手順の一例を示すフローチャートである。
【図９】第２実施例のテーブル方式のアドレス管理におけるフラッシュメモリのバンク間ブロックチェーンの構成例およびテーブル領域の設定例を示す説明図である。
【図１０】図１０（Ａ）はアドレス変換テーブルの構成例を示す説明図、図１０（Ｂ）は未使用テーブルの構成例を示す説明図である。
【図１１】テーブル方式を採用したメモリカードにおける論理アドレスから物理アドレスへの変換手順を示すフローチャートである。
【図１２】あるバンク間ブロックチェーンのバンクＢＡＮＫ０の表ページのデータの一部を書き換える場合の手順の概略を示す説明図である。
【図１３】テーブル方式を採用したメモリカードにおけるデータ書換え時の手順の前半を示すフローチャートである。
【図１４】テーブル方式を採用したメモリカードにおけるデータ書換え時の手順の後半を示すフローチャートである。
【図１５】従来のフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す説明図である。
【図１６】本発明に先立って検討したマルチバンクのフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す説明図である。
【符号の説明】
１０  メモリアレイ
１２ａ，１２ｂ  センスアンプ＆カラムスイッチ
２０  制御部
ＢＡＮＫ０〜ＢＡＮＫ３  バンク
ＳＲＡＭ０〜ＳＲＡＭ３  ＳＲＡＭバッファ
Ｘ−ＤＥＣ０〜Ｘ−ＤＥＣ３  Ｘアドレスデコーダ
ＭＣ  メモリセル
ＷＬ  ワード線
ＬＢＬ  ローカルビット線
ＧＢＬ  グローバルビット線
ＬＳＬ１１〜ＬＳＬ２２  ローカルソース線
Ｑｓ１，ＱＳ２  選択スイッチＭＯＳＦＥＴ
【図１】
2004265162.tif 000003
【図２】
2004265162.tif 000004
【図３】
2004265162.tif 000005
【図４】
2004265162.tif 000006
【図５】
2004265162.tif 000007
【図６】
2004265162.tif 000008
【図７】
2004265162.tif 000009
【図８】
2004265162.tif 000010
【図９】
2004265162.tif 000011
【図１０】
2004265162.tif 000012
【図１１】
2004265162.tif 000013
【図１２】
2004265162.tif 000014
【図１３】
2004265162.tif 000015
【図１４】
2004265162.tif 000016
【図１５】
2004265162.tif 000017
【図１６】
2004265162.tif 000018