JP2004265162A - 記憶装置およびアドレス管理方法 - Google Patents
記憶装置およびアドレス管理方法 Download PDFInfo
- Publication number
- JP2004265162A JP2004265162A JP2003055129A JP2003055129A JP2004265162A JP 2004265162 A JP2004265162 A JP 2004265162A JP 2003055129 A JP2003055129 A JP 2003055129A JP 2003055129 A JP2003055129 A JP 2003055129A JP 2004265162 A JP2004265162 A JP 2004265162A
- Authority
- JP
- Japan
- Prior art keywords
- memory cell
- memory
- data
- address
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Memory System (AREA)
Abstract
【課題】フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いたメモリシステムにおいて、不良ビットを含まないにもかかわらず未使用になるブロックが多くなり実質的な記憶容量が減少するのを防止する。
【解決手段】複数のバンク(BANK0〜BANK3)を有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、各バンクの先頭から不良ビットを含むブロックを回避しつつ1ブロックずつ選択してグループ化させて、各ブロックのグループに先頭から順次アドレスを割り当ててバンク間ブロックチェーンを構成するようにした。
【選択図】 図5
【解決手段】複数のバンク(BANK0〜BANK3)を有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、各バンクの先頭から不良ビットを含むブロックを回避しつつ1ブロックずつ選択してグループ化させて、各ブロックのグループに先頭から順次アドレスを割り当ててバンク間ブロックチェーンを構成するようにした。
【選択図】 図5
Description
【0001】
【発明の属する技術分野】
この発明は、電気的に書込み、消去可能な不揮発性半導体記憶装置におけるアドレス管理方式に適用して有効な技術に関し、例えば複数のバンクを有しデータを所定の単位で一括消去可能なフラッシュメモリを内蔵したメモリカードのような記憶装置に利用して有効な技術に関するものである。
【0002】
【従来の技術】
近年、デジタルカメラなどの携帯用電子機器のデータ記憶媒体として、電源電圧を遮断しても記憶データを保持できるフラッシュメモリなどの不揮発性メモリを内蔵したメモリカードと呼ばれるカード型記憶装置が広く利用されるようになって来ている。メモリカードは、一般に不揮発性メモリと該不揮発性メモリへのデータの書込みや読出しを制御するコントローラを内蔵して構成されることが多い。
【0003】
従来のメモリカードに内蔵されるフラッシュメモリは、一般に1つのメモリアレイを有し、該メモリアレイ内の同一ワード線に接続されたメモリセル群のような単位(以下、これをブロックと称する)で書込みを行なうように構成されていた(特許文献1参照)。そのため、かかるフラッシュメモリへのデータの書込みや読出しを制御するコントローラは、ブロック単位でアドレスを管理する方式が採用されていた。
【0004】
ところで、半導体メモリは大容量化に対する要望が高い。この大容量化を達成するため、1つのメモリアレイを構成するメモリセルの数を多くすることも一つのやり方であるが、ビット線やワード線の長さが長くなってデータの読出し時間が長くなるという不具合がある。これに対し、1つのチップ内に複数のメモリアレイ(以下、バンクと称する)を設けることで大容量化を図る方式(マルチバンク方式)がある。
【0005】
かかるマルチバンク方式を採用すると、バンク内のビット線やワード線の長さはそれほど長くならないので、データの読出し時間を短縮することができるとともに、複数のバンクにおいて並行して書込み動作または消去動作を行なうことで書込み時間と消去時間の短縮を図ることができるという利点がある。
【0006】
【特許文献1】
特開2002−197876号公報
【0007】
【発明が解決しようとする課題】
本発明者は、マルチバンク方式を採用したフラッシュメモリを用いたメモリカードのようなメモリシステムにおけるアドレス管理方式について検討を行なった。その結果、以下に述べるように課題があることが明らかになった。
図15は、従来のフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す。図15のフラッシュメモリは、メモリアレイ内の1本のワード線に2112バイトのようなデータを記憶可能なメモリセルが接続されて1つのブロックを構成し、かかるブロックが例えば16384個設けられて128Mビットのような記憶容量を有するようにされている。この場合、外部のコントローラは、各ブロックに対応された14ビットのアドレス0000h〜1FFFhにより書込み対象のブロックを指定することとなる。
【0008】
かかるブロック対応のアドレス方式で、4つのバンクを有するフラッシュメモリを管理すると、複数のバンクの並列書込みが行なえない。そこで、図16に示すように4つのバンクBANK0〜BANK3に対応してSRAMなどからなる4つのバッファメモリBFM0〜BFM3を設け、各バンクの同一ブロック同士を結合(グループ化)させて1つのアドレスに対応させることで複数のバンクの並列書込みが可能になる。
【0009】
ところで、従来のフラッシュメモリでは、一般に、各ブロックに当該ブロックが不良ビットを含んでいるか否か等の管理情報を記憶する領域MDA(図15参照)を設け、該管理領域の情報をチェックしてから書込みを行なう方式が採用されている。かかる方式を前述のようなマルチバンク方式のフラッシュメモリに適用すると、結合された4つのブロックのうちいずれかのブロックに不良メモリセル(以下、不良ビットと称する)が含まれていると正常な書込みができないため、書込みの度にすべてのブロックの管理領域の情報をチェックしなければならない。
【0010】
そのため、管理領域の情報チェックに時間がかかるとともに正常なメモリセル(以下、正常ビットと称する)に対する不良ビットの割合が各バンクで同じであると仮定すると、各バンクにおいてそれぞれ同一箇所で不良が発生するとは限らないので、メモリ全体として不良アドレスが発生する確率が高くなり、書込み処理に要する時間が長くなる。
【0011】
そこで、図16に示すように、互いに結合された4つのブロックのうちいずれかのブロックに不良ビットが含まれている場合には、アドレスを割り付けないようにする管理方式が考えられる。図16においては、ハッチングが付されているブロックが不良ビットを含むブロックである。しかしながら、かかるアドレス管理方式に従うと、不良ビットを含まないにもかかわらず未使用になるブロックが多くなり、実質的な記憶容量が少なくなってしまうという不具合がある。図16においては、×印が付されているブロックが不良ビットを含まないにもかかわらず未使用になるブロックである。
【0012】
また、従来より、フラッシュメモリのアドレス管理方式として図15や図16のように各ブロックの物理アドレスと論理アドレスとを1対1で順に対応させて行く方式(以下、論物方式と称する)の他に、物理アドレスと論理アドレスとの対応を示す参照テーブルを用意して、該テーブルを用いて論理アドレスから物理アドレスへの変換を行なってブロックをアクセスする方式(以下、テーブル方式と称する)が知られているが、かかるテーブル方式においては、フラッシュメモリ内のすべてのブロックに関する物理アドレスを記憶させるようにすると、参照テーブルのデータ量が多くなる。
【0013】
そして、参照テーブルのデータ量が多くなると、参照テーブルは一般にフラッシュメモリ内に格納されるため、フラッシュメモリ内のユーザが利用できる有効な領域が少なくなるとともに、参照テーブルを展開する外部のRAMのようなメモリの容量が大きくなるという不具合がある。なお、参照テーブルを外部のメモリに展開するのは、フラッシュメモリのアクセス速度はRAMに比べて遅いためいちいちフラッシュメモリ内の参照テーブルを参照していたのではアクセス時間が長くなるためである。
【0014】
この発明の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いたメモリシステムにおいて、不良ビットを含まないにもかかわらず未使用になるブロックが多くなり実質的な記憶容量が減少するのを防止することができるアドレス管理方式を提供することにある。
【0015】
この発明の他の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いテーブル方式を採用したメモリシステムにおいて、アドレス変換用の参照テーブルのデータ量を減らして実質的な記憶容量が減少するのを防止することができるアドレス管理方式を提供することにある。
【0016】
この発明のさらに他の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いたメモリシステムにおいて、外部メモリの記憶容量を少なくすることができるアドレス管理方式を提供することにある。
この発明の前記ならびにほかの目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【0017】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記のとおりである。
すなわち、本願の第1の発明は、複数のバンクを有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、各バンクの先頭から不良ビットを含むブロックを回避しつつ1ブロックずつ選択してグループ化させて、各ブロックのグループに先頭から順次アドレスを割り当ててチェーンを構成するようにしたものである。ここで、上記1ブロックとは一括消去の対象のメモリセル群全体を指す。一括消去の単位と一括書込みの単位は異なっていても良い。以下、各バンクから1つずつ選択されグループ化されたブロックの集まりを、バンク間ブロックチェーンと称する。
【0018】
上記した手段によれば、不良ビットを含むブロックを回避してブロックチェーンが形成されるため、不良ビットを含まないにもかかわらず未使用になるブロックの数を減少させることができるようになる。
【0019】
また、望ましくは、互いに結合されたブロックのうちいずれか1つのバンクに属するブロックに管理情報格納領域を設け、当該ブロックに他のバンクのどのブロックが結合されるか示す情報(ページアドレス)を格納するように構成する。これにより、管理情報格納領域を有するバンクのブロックから管理情報を読み出すだけで結合された他のブロックの位置を知ることができる。
【0020】
【発明の実施の形態】
以下、本発明の実施例を、図面を用いて説明する。
図1は、本発明が適用される不揮発性メモリを内蔵したメモリカードの一実施例を示す。
この実施例のメモリカード100は、特に制限されないが、所定の単位でデータを電気的に一括消去することが可能なフラッシュメモリ110と、外部から供給されるコマンドに基づいて上記フラッシュメモリ110に対するデータの書込みや読出しを行なうコントローラ120とからなる。フラッシュメモリ110とコントローラ120は、それぞれ別個の半導体チップ上に半導体集積回路として形成されており、これら2つの半導体チップが図示しない基板上に実装され全体が樹脂でモールドもしくはセラミックパッケージ等に収納されてカードとして構成されている。
【0021】
また、カードの一側には、外部の装置のカードスロットに挿入されたときに外部装置側の回路と電気的に接続され、外部のホスト装置からメモリカード100に対して電源を供給したり信号の入出力を行なうための外部端子群130が設けられ、これらの外部端子は上記基板上に形成されたプリント配線もしくはボンディングワイヤによって上記コントローラ120の外部端子としてのパッドに接続される。フラッシュメモリ110とコントローラ120との間はプリント配線によって接続してもよいし、コントローラ120とフラッシュメモリ110とをいずれか一方の上に他方を搭載してボンディングワイヤによって接続するようにしてもよい。
【0022】
コントローラ120は、データ転送などカード内部全体の制御を行なうマイクロプロセッサ(MPU)121と、外部の装置との間の信号のやり取りを行なうホストインタフェース部122と、フラッシュメモリ120との間の信号のやり取りを行なうメモリインタフェース部123と、外部から入力されたコマンドや書込みデータ、フラッシュメモリ110から読み出された読出しデータを一次保持するRAM(ランダムアクセスメモリ)などからなるバッファメモリ124と、該バッファメモリ124に対するデータの書込み読出しの制御を行なうバッファ制御部125などから構成されている。バッファ制御部125には、フラッシュメモリ110への書込みデータに対するエラー訂正符号の生成およびエラー訂正符号に基づく読出しデータのチェックと訂正の機能を有するエラー訂正符号生成&エラー訂正回路を設けることも可能である。
【0023】
フラッシュメモリ110は、MPU121からの指示(コマンド)に従ってデータの書込み、読出しの制御を行なういわゆるフラッシュコントローラを内蔵したものであってもよいし、フラッシュコントローラを内蔵しないフラッシュメモリの場合にはフラッシュコントローラの機能をバッファ制御部125もしくはMPU121に持たせることも可能である。
【0024】
また、フラッシュメモリ110は、コマンドと制御信号に基づいて動作するように構成されている。フラッシュメモリに有効なコマンドとしては、リードコマンドの他、ライトコマンド、消去コマンド等がある。これらのコマンドや制御信号は、MPU121等から与えられる。
【0025】
図1には、便宜上、従来のマルチメディアカード(Multi Media Card(登録商標))と呼ばれるカードメモリに設けられる外部端子を示したが、本発明を適用可能なメモリカードに設けられる外部端子は、図1に示されているものに限定されるものでなく、例えばデータ入出力端子を複数個備えパラレルでデータの転送が可能なものであっても良い。
【0026】
図2は、上記メモリカードに内蔵されているフラッシュメモリ110の概略構成を示す。フラッシュメモリには1つのメモリセルに1ビットのデータを記憶可能な2値メモリがあるが、この実施例のフラッシュメモリは1つのメモリセルに2ビットのデータを記憶可能な4値メモリとして構成され、単結晶シリコンのような1個の半導体チップ上に形成される。
【0027】
図2において、符号10は複数の不揮発性記憶素子(メモリセル)がマトリックス状に配置されたメモリアレイで、この実施例ではメモリアレイ10は4つのバンクBANK0,BANK1,BANK2,BANK3で構成されている。X−DEC0,X−DEC1,X−DEC2,X−DEC3はアドレス(Xアドレス)信号をデコードして前記メモリアレイ10内の対応するワード線を選択レベルにするXアドレスデコーダで、該XアドレスデコーダX−DEC0〜X−DEC3にはメモリアレイ内のワード線を選択レベルに駆動するワードドライバ回路が含まれている。
【0028】
メモリアレイ10を構成するメモリセルは、フローティングゲートとコントロールゲートを有するMOSFETからなり、フローティングゲートに注入される電荷の量に応じてしきい値電圧が、4段階のいずかに設定されることにより2ビットの情報を記憶するようにされる。
【0029】
なお、本明細書においては、しきい値電圧が最も低い状態を消去状態と称する。つまり、しきい値電圧を下げる動作を消去と称し、しきい値電圧を上げる動作を書込みもしくは書戻しと称する。本実施例のフラッシュメモリにおいては、メモリアレイ10内のデータを書き換える際に、メモリセルは一旦消去状態にされてからデータに相当するしきい値電圧になるように書込み電圧の印加が行なわれる。
【0030】
図2において、符号12a,12bはメモリアレイ10内のグローバルビット線に接続され書込みデータを保持したり読出し信号の増幅を行なったり、1本のワード線に接続された複数のメモリセルのうちバイト単位やワード単位など所定の単位で書込みデータや読出しデータを選択したりするセンスアンプ&カラムスイッチ(SA&C−SW)、SRAM0,SRAM1,SRAM2,SRAM3は上記各バンクBANK0,BANK1,BANK2,BANK3に対応して設けられ外部から入力された書込みデータを保持したりセンスアンプ12a,12bにより増幅された読出しデータを例えばページ単位で保持するスタティックRAM(ランダムアクセスメモリ)などからなるバッファメモリ(以下、SRAMバッファと称する)、13は外部からのアドレス信号に基づいてもしくは内部で自動的にカラムアドレス信号を生成するカラムアドレスカウンタである。
【0031】
また、20は外部から入出力端子I/O0〜I/O7を介して入力されたコマンドコードをデコードするコマンドデコーダ21や内部電源回路を制御する内部電源制御回路23など有し、入力されたコマンドに従ってチップ内部の制御信号を生成する制御部である。30は該制御部20の制御シーケンスをマイクロプログラムのような形式で記憶するシーケンス用ROM、31はデータ書込み時や消去時に必要とされる高電圧(負電圧を含む)を生成する内部電源回路である。
【0032】
入出力端子I/O0〜I/O7は、上記コマンドの入力の他、書込みデータやアドレスの入力、リードデータの出力にも利用される。書込み時に外部より入出力端子I/O0〜I/O7に入力されたライトデータは前記SRAMバッファSRAM0〜SRAM3およびセンスアンプ12a,12bを経てメモリアレイ10の各バンクに供給され、ライトアドレスは一旦制御部20に取り込まれてからアドレスデコーダX−DEC0〜X−DEC3に供給される。
【0033】
また、この実施例のフラッシュメモリには、外部のコントローラから入力される例えばチップ選択信号/CE、書込み制御信号/WE、出力制御信号/OE、読出し制御信号/RE等の制御信号が入力される制御端子が設けられており、これらの制御端子に入力された制御信号は制御部20に供給され、これらの制御信号に従ってチップ内部の動作状態が制御される。ここで、特に制限されるものでないが、符号の前に「/」が付記されている信号は、ロウレベルが有効レベルであること意味する。また、制御部20からはフラッシュメモリチップにコマンドを入力することが可能な状態にあるか否かを示すレディ/ビジー信号R/Bがチップ外部へ出力されるようにされている。
【0034】
図3にはこの実施例のメモリカードに用いられるフラッシュメモリ110のメモリアレイの1バンクの具体的な構成例を示す。
図3に示されているように、フラッシュメモリ110のメモリアレイの1バンクには、256個のメモリセルMC1〜MC256がローカルビット線LBL1,BL2……とローカルソース線LSL11,LSL21……との間に並列に接続されたメモリ列が例えば4224個ワード線方向に並んで配設されている。本明細書ではこれらの256×4224個のメモリセル群をサブブロックと称する。横方向つまり同一行のメモリセルはそれぞれ共通のワード線WL1,WL2,……WL256に接続されている。本明細書では、同一のワード線に接続されたメモリセル群をブロックと称する。本実施例のフラッシュメモリは、このブロックを単位として消去を行なうように構成されている。サブブロックは1バンク当り40個設けられている。
【0035】
さらに、この実施例のメモリアレイは、256個のメモリセルからなるメモリ列のうち互いに隣接する奇数列のメモリセルと偶数列のメモリセルのドレイン端子が共通のローカルビット線LBL1,LBL2……に接続されている。そして、ローカルビット線LBL1,LBL2……は、それぞれ選択MOSFET Qs1,Qs2……を介して対応するグローバルビット線GBL1,GBL2……に接続可能にされている。図示しないが、グローバルビット線GBL1,GBL2……には、同様な構成のサブブロック内の対応するメモリ列のローカルビット線が接続可能にされる。
【0036】
また、奇数列のメモリセルのソース端子はローカルソース線LSL11,LSL12……に接続され、偶数列のメモリセルのソース端子はローカルソース線LSL21,LSL22……に接続されている。そして、奇数列のローカルソース線LSL11,LSL12……は第1のコモンソース線CSL1に接続され、偶数列のローカルソース線LSL21,LSL22……は第2のコモンソース線CSL2に接続されている。第1のコモンソース線CSL1と第2のコモンソース線CSL2には、データ消去時には同一の電圧(0V)が印加され、データ書込み時には一方に書込み電圧(0V)、他方に書込み阻止電圧(3V)が印加される。これにより、書込みの単位は消去の単位の半分とされる。
【0037】
なお、書込みまたは消去時にはサブブロック内の256本のワード線のうち1本が選択にされ、書込み時には8Vのような正の高電圧がまた消去時には−12Vのような負の高電圧が印加される。これにより、消去はブロック単位すなわち1本のワード線に接続された4224個のメモリセルを対象として行なわれ、書込みは1本のワード線に接続された4224個のうち半分すなわち2112個のメモリセルを対象として行なわれる。以下、書込みの単位をページと称する。従って、1ブロックは2ページで構成される。また、1ブロックを構成する2ページのうち奇数列のメモリセルからなるページを表ページ、偶数列のメモリセルからなるページを裏ページと称する。
【0038】
図4には、このページを基本単位とした場合の4つのバンクBANK0〜BANK3とバッファメモリBFM0〜BFM3との対応関係を示す。なお、図示の都合上、図4では1つのバンク当りのブロックの数は正確には示されていない。図4に示されているように、各バンクBANK0〜BANK3は複数のブロックBLK11〜BLK1n,BLK21〜BLK2n,BLK31〜BLK3n,BLK41〜BLK4nにより構成され、各ブロックはそれぞれ表ページSFPと裏ページRSPとで構成されている。そして、バンクBANK0にはバッファメモリBFM0が対応され、バンクBANK1にはバッファメモリBFM1が、バンクBANK2にはバッファメモリBFM2が、さらにバンクBANK3にはバッファメモリBFM3が対応されている。
【0039】
図5(A)には、上記のような構成を有するフラッシュメモリを内蔵したメモリカードにおけるアドレス割付け方式の一例を示す。図5(A)は図4に示されている回路のうちメモリアレイの部分のみ取り出して示したものであり、BANK0〜BANK3はそれぞれバンク、符号BLKが付されているのはそれぞれブロックである。また、図5(A)において、ハッチングが付されているブロックはその中に不良ビッドが含まれているブロックであることを表わしている。
【0040】
図5(A)から分かるように、本実施例においては、各バンクの先頭から不良ビットを含むブロックを回避しつつ順番に1ブロックずつ選択してグループ化させて、各ブロックのグループに先頭からいずれか1つのバンクの最終ブロックに到達するまで順次アドレスを割り当てるように構成されている。図5(A)において、同一の丸付き数字が付されているブロックは同一のアドレスによって同時に選択されるブロックであることを意味している。図16と比較すると明らかなように、本実施例を適用することにより、不良ビットを含まないにもかかわらず未使用になるブロック(×印が付いたブロック)の数を大幅に減らすことができる。なお、未割当のブロックは、後に発生した不良ビットを含むブロックと置換される予備ブロックとすることができる。
【0041】
各ブロックはそれぞれ図5(B)に示すように、表ページに設けられた表データ記憶部S−DTMおよび管理情報記憶部S−MDMと、裏ページに設けられた裏データ記憶部R−DTMおよび管理情報記憶部R−MDMとにより構成されている。特に制限されるものでないが、この実施例のフラッシュメモリは、1つのメモリセルに2ビットのデータを記憶可能に構成された多値メモリであるが、1つのメモリセルに1ビットのデータを記憶し読み出すように動作することができるようにされており、データ記憶部S−DTMとR−DTMでは1つのメモリセルに2ビットのデータを記憶し、管理情報記憶部S−MDMとR−MDMでは1つのメモリセルに1ビットのデータを記憶するようにされる。
【0042】
これより、表データ記憶部S−DTMと裏データ記憶部R−DTMの記憶容量は2080バイト、管理情報記憶部S−MDMとR−MDMの記憶容量は16バイトとなる。1つのメモリセルに1ビットのデータを記憶する方が読出しデータの信頼性は高くなる。つまり、この実施例では、管理情報記憶部S−MDMとR−MDMの記憶データの方が信頼性は高いといえる。
【0043】
図6(A)にはバンクBANK0に属する各ブロックの管理情報記憶部S−MDMとR−MDMに設けられるデータの格納領域の構成、図6(B)にはバンクBANK1〜3に属する各ブロックの管理情報記憶部S−MDMとR−MDMに設けられるデータの格納領域の構成を示す。
【0044】
図6(A)に示すように、この実施例においては、バンクBANK0の表ページに設けられる管理情報記憶部S−MDMに、当該ページが不良でないことを示すコードが格納される2バイトの良/不良領域MGAと、当該ブロックのデータ記憶部S−DTM,R−DTMに格納されるデータがシステムデータなのかユーザデータなのかを示すデータ種別識別情報が格納される2バイトのデータ識別領域DDAと、データを消去してはいけないブロックか否かを示す書込み禁止フラグ領域WPFとが設けられている。残りの領域は未使用の領域である。この未使用領域には、消去済みか否かを示す情報や当該ブロックの消去回数、エラー訂正用のECCコードを格納するようにしてもよい。
【0045】
また、バンクBANK0の裏ページに設けられる管理情報記憶部R−MDMには、当該ページが不良でないことを示すコード(MGMコード)が格納される2バイトの良/不良領域MGAと、当該ブロックと結合されるバンクBANK1の対応ブロックのページアドレスを格納するチェーン情報記憶領域RDA1と、当該ブロックと結合されるバンクBANK2の対応ブロックのページアドレスを格納するチェーン情報記憶領域RDA2と、当該ブロックと結合されるバンクBANK3の対応ブロックのページアドレスを格納するチェーン情報記憶領域RDA3とが設けられる。チェーン情報記憶領域RDA1,RDA2,RDA3はそれぞれ2バイトで構成される。残りの8バイトは未使用の領域である。
【0046】
以下、上記のように4つのバンクの中から1ブロックずつ選択して結合させることをバンク間ブロックチェーンと称し、FLBAと記す。このバンク間ブロックチェーンは、カード製造時に書き込まれる。
【0047】
一方、図6(B)に示すように、バンクBANK1〜3の管理情報記憶部S−MDMとR−MDMには、それぞれ当該ページが不良でないことを示すMGMコードが格納される2バイトの良/不良領域MGAが設けられ、残りの14バイトは未使用の領域とされている。なお、バンクBANK1〜3の管理情報記憶部S−MDMとR−MDMには必ずしも良/不良領域MGAを設ける必要はなく、省略することも可能である。MGMコードの格納は、バンク間ブロックチェーンの生成の際に行なうようにすることができる。
【0048】
また、実施例では、バンクBANK0の管理情報記憶部S−MDMとR−MDMを図6(A)のような構成にし、バンクBANK1〜3の管理情報記憶部S−MDMとR−MDMを図6(B)のような構成にすると説明したが、バンクBANK1〜3のうちいずれか1つの管理情報記憶部S−MDMとR−MDMを図6(A)のような構成にして、残りの3つのバンクの管理情報記憶部S−MDMとR−MDMを図6(B)のような構成にするようにしてもよい。その場合、図6(A)のような構成にされたバンクの裏管理情報記憶部R−MDMのチェーン情報記憶領域RDA1〜3には、当該ブロックと結合される他の3つのバンクBANKにあるブロックのページアドレスが格納される。つまり、図6(A)のような構成の管理情報記憶部を設けるのはバンクBANK0に限定されず、いずれのバンクであっても良い。
【0049】
次に、本実施例のメモリカードにおいてバンク間ブロックチェーンが定義されたフラッシュメモリに対してデータの書込みおよび読出しを行なう場合の手順の一例を、図7および図8のフローチャートを用いて説明する。なお、図7および図8のフローチャートに従った制御は、コントローラ120によって実行される。
【0050】
データ書込み処理では、図7のように、先ず外部のホスト装置から入力された論理アドレスを、コントローラ120のMPU121が演算によりまたはテーブルを参照していずれかのバンク間ブロックチェーンFLBAを指定する物理アドレスに変換する(ステップS11)。
【0051】
続いて、該アドレスを用いてフラッシュメモリ110をアクセスし、該アドレスで指定されるバンク間ブロックチェーンFLBAのバンクBANK0のブロックの管理情報記憶部S−MDMとR−MDMに記憶されている管理情報を読み出してバッファメモリ124へ転送する(ステップS12)。そして、読み出された管理情報から、バンクBANK0の選択ブロックに対応するバンクBANK1〜3のブロックのページアドレスを取得する(ステップS13)。
【0052】
ここで、バンクBANK0のブロックの管理情報記憶部S−MDMとR−MDMに記憶されている管理情報から直接分かるのは、対応するバンクBANK1〜3のブロックの表ページ(もしくは裏ページ)のページアドレスであるが、表ページと裏ページのアドレスは所定の関係にあるので、裏ページ(もしくは表ページ)のページアドレスは計算によって求めることができる。また、バンクBANK0の選択ブロックのページアドレスは、ステップS11の演算により予め得ておくことができる。これにより、選択バンク間ブロックチェーンFLBAに属する全ブロックのページアドレスを知ることができる。
【0053】
次に、外部のホスト装置から入力された書込みデータをバッファメモリ124を経由してフラッシュメモリ110の各バンクに対応されたSRAMバッファBFM0〜BFM3へ転送する(ステップS14)。それから、書込み先のブロックのメモリセルはすべてデータ消去済みであるか否かをチェックする(ステップS15)。この判定は、ステップS2でフラッシュメモリ110から読み出されたデータ記憶部S−DTM,R−DTMのデータがオール“0”か否かを調べて行なっても良いし、バンクBANK0のブロックの管理情報記憶部S−MDMとR−MDMにデータ消去済みであるか否かを記憶する領域が設けられている場合にはその領域の情報を調べて行なうことも可能である。
【0054】
ステップS15の判定でデータ消去済みであったときはそのままステップS17へ移行し、データ消去済みでなかったときはステップS16で当該バンク間ブロックチェーンFLBAのバンクBANK0〜3に属するブロックのデータ記憶部S−DTM,R−DTMのデータを消去してからステップS17へ移行する。
【0055】
ステップS17では、ステップS14でSRAMバッファBFM0〜BFM3へ転送した書込みデータを、ステップS13で取得したページアドレスを使用して所望のブロックへ4バンク同時に並列書込みを行なう。続いて、ステップS18へ移行して書込みベリファイ動作を行ない、すべての選択ブロックの表ページ又は裏ページへの書込みが終了したか否かを判定し、終了していないときはステップS14へ戻って再度上記動作(ステップS14〜S17)を繰り返す。本実施例では、フラッシュメモリの構成から書込みは表ページと裏ページ別々に行なわれる。則ち、4バンクの所望のブロックの表ページに関し書込を行い(ステップS17)、書込終了を確認(ステップS18)した後、当該ブロックの裏ページに関し書込を行い(ステップS17)、書込終了を確認(ステップS18)する。
【0056】
そして、ステップS18で表ページと裏ページへの書込みが終了したと判定すると、ステップS19へ移行して複数のブロックに亘る全データの書込みが終了したか否かを判定し、終了していないときはステップS11へ戻って再度上記動作(ステップS11〜S17)を繰り返す。ステップS19で全データの書込みが終了したと判定したならば、書込み処理を終了する。ただし、ステップS11で論理アドレスから物理アドレスへの変換をテーブルを参照して行ないかつデータを他のブロックへ移し変えたような場合つまり論理アドレスは同じで物理アドレスを変えた場合には、ステップS19の後でテーブルの書換え等の処理をしてから終了する。
【0057】
データ読出し処理では、図8のように、先ず外部のホスト装置から入力された論理アドレスを、コントローラ120のMPU121が演算によりまたはテーブルを参照していずれかのバンク間ブロックチェーンFLBAを指定する物理アドレスに変換する(ステップS21)。
【0058】
続いて、該アドレスを用いてフラッシュメモリ110をアクセスし、該アドレスで指定されるバンク間ブロックチェーンFLBAのバンクBANK0に属するブロックの管理情報記憶部S−MDMとR−MDMに記憶されている管理情報を読み出してバッファメモリ124へ転送する(ステップS22)。そして、読み出された管理情報から、バンクBANK0の選択ブロックに対応するバンクBANK1〜3のブロックのページアドレスを取得する(ステップS23)。ステップS21〜23は書込み処理のステップS11〜S13と同様である。
【0059】
次に、ステップS23で取得したページアドレスを使用して、フラッシュメモリ110のメモリアレイから読み出された選択ブロックのぺージデータを、各バンクに対応されたSRAMバッファBFM0〜BFM3へ転送する(ステップS24)。そして、SRAMバッファBFM0〜BFM3のデータをバッファメモリ124を経由して外部のホスト装置へ転送する(ステップS25)。本実施例では、フラッシュメモリの構成から読出しは表ページと裏ページ別々に行なわれる。
【0060】
それから、すべての選択ブロックの表ページ又は裏ページの読出しが終了したか否かを判定し、終了していないときはステップS24へ戻って再度上記動作(ステップS24〜S26)を繰り返す。
【0061】
そして、ステップS25で表ページと裏ページの読出しが終了したと判定すると、ステップS26へ移行して複数のブロックに亘る全データの読出しが終了したか否かを判定し、終了していないときはステップS21へ戻って再度上記動作(ステップS21〜S27)を繰り返す。ステップS27で全データの読出しが終了したと判定したならば、読出し処理を終了する。読出し処理では、ステップS21で論理アドレスから物理アドレスへの変換をテーブルを参照して行なったとしても、ステップS27の後でテーブルの書換え等の処理はしなくてもよい。
【0062】
次に、本発明の第2の実施例を、図9〜図15を用いて説明する。この第2の実施例は、外部から入力された論理アドレスを、変換テーブルを参照してフラッシュメモリの物理アドレスに変換するテーブル方式に適用した実施例である。この変換テーブルはフラッシュメモリのメモリアレイ内に格納されており、電源投入時にバッファメモリ124上もしくはコントローラMPU内のワークRAM上に、テーブルが格納されているFLBAの物理アドレスが登録される。
【0063】
図9は、第2実施例のテーブル方式のアドレス管理におけるフラッシュメモリのバンク間ブロックチェーンの構成例およびテーブル領域の設定例を示すものである。
バンク間ブロックチェーンの構成の仕方は、図5(A)を用いて説明した第1の実施例におけるそれと同じである。図9において、符号FLBAが付されたそれぞれの箱は、表裏2つのページからなるブロックである。各バンクに属するブロックのうち同一の符号が付されたものは同一のバンク間ブロックチェーンを構成するブロックである。また、ハッチングが付されているブロックはその中に不良ビットが含まれているブロックであることを意味している。
【0064】
図9に示されているように、この実施例においても各バンクの先頭から不良ビットを含むブロックを回避しつつ順番に1ブロックずつ選択してグループ化させてチェーンを構成し、各チェーンに先頭からいずれか1つのバンクの最終ブロックに到達するまで順次アドレスを割り当てるようにされている。
【0065】
さらに、この第2の実施例では、上記のようにしてチェーンが構成されたメモリアレイのうち不良ビットを含むブロックの少ない箇所がテーブル格納領域TSAとして選択され、残りの領域がデータ格納領域とされるようになっている。
【0066】
フラッシュメモリは不良ビットが局所的に発生する傾向があるので、上記のように重要なテーブルデータが格納される領域をサブブロックのうち不良ビットを含むブロックの少ない箇所に割り当てることにより、信頼性を向上させることができるとともに新たに不良ビットを含むブロックが発生した時に行なわれるテーブル格納領域の再配置の処理回数を減らして待ち時間を短くすることができる。
【0067】
不良ビットを含まないにもかかわらず未使用になるバンク最終ブロック近傍の未割当のブロックは、後に発生した不良ビットを含むブロックと置換される予備ブロックとすることができる。上記テーブル格納領域TSAに格納されるテーブルは、本実施例では、アドレス変換用のテーブルおよびデータを書込みあるいは上書きしてもよいブロックをリストアップした未使用テーブルである。
【0068】
特に制限されるものでないが、アドレス変換テーブルはメモリアレイ内のサブブロックの数(320個)だけ設けられ、各アドレス変換テーブルはそれぞれ512バイトで構成されている。本実施例のフラッシュメモリの1ページは前述したように2112バイトであるので、1ページに4つ、1ブロックに8つのアドレス変換テーブルが格納される。
【0069】
アドレス変換テーブルが格納されるサブブロックは、カード製造時に実行されるフォーマット動作により決定される。また、テーブルが格納されているサブブロックの位置及び各テーブルの物理アドレスは、電源投入時にMPU121が各ブロックの管理情報記憶部のデータ種別識別情報等を参照して見つけ、MPU121内のワークRAMもしくはバッファメモリ124内に登録しておくようにされる。
図10(A)には上記アドレス変換テーブルの構成例を、また図10(B)には未使用テーブルの構成例を示す。
【0070】
図10(A)のアドレス変換テーブルにおいて、上欄CAはカラムアドレス、下欄の「値」は変換後のページアドレスを意味する。また、末尾に“h”が付されている数字はそれが16進数表示であることを意味している。ホスト装置から与えられる論理アドレスはフラッシュメモリのカラムアドレスに対応され、かつ論理アドレスはカラムアドレスの先頭から順番に対応される。
【0071】
1つのアドレス変換テーブルは1つのブロックに格納され、1つのバンク間ブロックチェーンFLBAのページアドレスは2バイトで表わされるので、1テーブルには256個のFLBAページアドレスを登録することができる。これは変換前の論理アドレスに換算すると8192個であり、外部のホスト装置から入力される論理アドレスが64バイト単位であるとすると、8192×64バイトのアドレス情報を1つの変換テーブルに登録できることを意味している。
【0072】
また、1ブロックには4096バイトのデータ領域があるので、1つのブロックには8つのアドレス変換テーブルが格納可能である。一方、実施例のフラッシュメモリは、1つのサブブロックには256個のブロックがあり、1ブロックは2ページからなり1つのバンクに40個のサブブロックがあるので、FLBAページアドレスの数は最大で81920個である。従って、アドレス変換テーブルは320個必要であり、320個のアドレス変換テーブルは40個のブロックすなわちいずれか1つバンクの1サブブロックに格納することができる。
【0073】
図10(A)の変換テーブルでは、変換前の論理アドレス“HBA0〜31”はバンクBANK0のページアドレスが“0000”から始まるバンク間ブロックチェーンFLBAに割り当てられ、変換前の論理アドレス“HBA32〜63”はバンクBANK0のページアドレスが“0050”から始まるバンク間ブロックチェーンFLBAに割り当てられることを示している。変換後の物理アドレスは連続していなくても良い。
【0074】
なお、図10(A)のアドレス変換テーブルにおいて、下欄の変換後の値がFFFFである時はまだページアドレスが割り当てられていないことを示している。また、この実施例では、バンクBANK0のページアドレスを指定するのに13ビットあればよく、これを2バイト(16ビット)の変換後アドレス格納領域に格納する場合3ビット余るので、ここに書込み禁止を指示する情報などバンク間ブロックチェーンの管理に関係する制御情報フラグを格納するのに利用することができる。
【0075】
未使用テーブルは、物理アドレス順に各ブロックに1ビットが割り当てられ、“1”が立っているビットに対応するブロックは消去が可能であることを表わし、“0” が立っているビットに対応するブロックは消去が不許可であることを表わすようにされる。図10(B)の未使用テーブルは、バンクBANK0の2番目のブロックと5番目及び6番目のブロックがそれぞれ消去可能であることを宣言している。
【0076】
1つの未使用テーブルは512バイト(4096ビット)で構成され、4096個のブロックの消去の可否が1つの未使用テーブルで設定可能である。実施例のフラッシュメモリは、1つのサブブロックに256個のブロックがあり、1つのバンクに40個のサブブロックがあるので、4つのバンク全体で40960個のブロックがある。従って、未使用テーブルは10個必要である。一方、1ブロックには4096バイトのデータ領域があり、1つのブロックには8つの未使用テーブルを格納できるスペースがあるので、10個の未使用テーブルは2つのブロックに格納することができる。また、前述のように全てのアドレス変換テーブルは1つのバンクの1サブブロックに格納可能である。
【0077】
実施例のフラッシュメモリには4つのバンクがあるので、図9のように4つのバンクのあるサブブロックをテーブル格納領域TSAとした場合、大部分(約3/4)が未使用の領域となる。そこで、このテーブル格納領域TSA内でアドレス変換テーブルおよび未使用テーブルを順次シフトさせながら格納することができ、かつそのようにシフトを行なうことによりテーブルの書換えで特定のブロックの書換え回数のみ極端に多くなって信頼性が低下するのを回避することができる。
【0078】
図11には、テーブル方式を採用したメモリカードにおける論理アドレスから物理アドレスへの変換手順が示されている。なお、図11のフローチャートに従った制御は、コントローラ120によって実行される。
コントローラ120のMPU121は、外部のホスト装置からリードコマンドやライトコマンドと共に論理アドレスを受け取ると、当該論理アドレスの論理−物理変換情報を登録してあるアドレス変換テーブルの番号を決定する(ステップS31)。次に、フラッシュメモリ110のフォーマット時に選択されたテーブル専用のサブブロックの中から、電源投入時にMPUのRAMもしくはコントローラ内バッファに登録されたアドレス変換テーブルの物理アドレスを参照して、アドレス変換テーブルのデータをフラッシュメモリ110から読み出してコントローラ120のバッファメモリ124の所定の番地に格納する(ステップS32)。それから、バッファメモリ124内に格納したテーブルを参照してホスト装置が指定した論理アドレスに対応したバンク間ブロックチェーンFLBAのページアドレスを取得する(ステップS33)。その後、このページアドレスを用いてホスト装置により指定されたコマンドに応じてフラッシュメモリからのデータの読出し、または書込みを実行する。
【0079】
次に、実施例のメモリカードにおいて、テーブル方式を採用してデータの書込みを行なう場合の手順を、図12〜図14を用いて説明する。
図12には、あるバンク間ブロックチェーンFLBAiのバンクBANK0の表ページのデータの一部を書き換える場合の手順の概略が示されている。
図12において、DBA,TBAはバッファメモリ214のデータバッファ領域およびテーブル展開領域、SRAM0〜SRAM3はリードデータとライトデータが一時保持されるSRAMバッファ、FLSはフラッシュメモリのメモリアレイ、TSAはテーブル格納領域、またはACTはアドレス変換テーブル、EETは未使用テーブルである。丸で囲まれた数字はデータ書換えの際の動作の順番を示す。
【0080】
具体的には、▲1▼のようにメモリアレイFLSからアドレス変換テーブルACTと未使用テーブルEETをバッファメモリのテーブル展開領域TBAへ読み出してから、▲2▼のようにMPUがバッファ上のテーブルから旧データのブロックと新データのブロックのブロックアドレスを取得する。次に、▲3▼のようにMPUからメモリアレイFLSへ旧データのブロックアドレスを与え、旧データをSRAMバッファSRAM0〜SRAM3へ読み出す。
【0081】
それから、▲4▼のようにホスト装置からのライトデータをデータバッファ領域DBAから書込み位置に対応したSRAMバッファ(例えばSRAM0)に転送する。しかる後、▲5▼のようにMPUからメモリアレイFLSへ新データのブロックアドレスを与え、SRAMバッファSRAM0〜SRAM3のデータをメモリアレイFLSの新ブロックへ格納する。それから、▲6▼のようにアドレス変換テーブルACTに新データのブロックアドレスを登録するとともに未使用テーブルEETに旧データのブロックを消去可能なブロックとして登録する。
【0082】
データの一部を書き換える場合、新しいデータを元のメモリセルに書き込むことも可能であるが、新データの書込み中に電源が遮断されたりすると元のデータが消滅してしまうことがある。そこで、この実施例では、データの一部を書き換える場合には、元のデータが入っているバンク間ブロックチェーンFLBAiのデータの一部を外部からの新データに置き換えて他のバンク間ブロックチェーンFLBAjに書き込むようにしている。
【0083】
これにより、新データの書込み中やテーブル更新中に電源が遮断されても、元のデータが消滅したり正しいデータを読み出せなくなってしまうのを防止することができる。また、このようにすることによって、新データの書込み先のブロックの書換え回数をチェックして書換え回数の少ないブロックへ書込みを行なうことにより、データの書換えが特定のページに集中して発生することで局所的なメモリセルの劣化が生じるのを回避することができるようになる。
【0084】
次に、データ書換えのより詳細な手順を図13および図14のフローチャートを用いて説明する。
外部のホスト装置から書込みコマンドが入力されると、MPU121はホスト装置からの論理アドレスから使用するアドレス変換テーブルのページアドレスとカラムアドレスを算出し、算出したアドレスを用いてフラッシュメモリ110からアドレス変換テーブルをバッファメモリ124へ読み出す(ステップS41,S42)。
【0085】
なお、このステップS41,S42を実行する代わりに、電源投入時等に予めフラッシュメモリ内のすべてのアドレス変換テーブルをバッファメモリ124へ読み込んでおくようにしてもよい。このようにすることより、例えばテーブルの更新はバッファメモリ124上で行ない電源遮断時にテーブルのデータをフラッシュメモリ110へ戻すことでフラッシュメモリの書換え回数を減らすことが可能となる。
【0086】
ステップS42でアドレス変換テーブルを読み込んだ後は、テーブルを参照して、書き換えようとするデータが格納されているブロックを含むバンク間ブロックチェーンFLBAのバンクBANK0のページアドレスを取得する(ステップS43)。このとき、アドレス変換テーブルの変換後のアドレス値が“FFFFh”であり対応する物理アドレスがないときは、そこには旧データがないということであるので、ステップS44からそのままステップS46へジャンプする。
【0087】
アドレス変換テーブルの変換後のアドレス値が“FFFFh”以外のときはその物理アドレスには旧データがあるということであるので、ステップS44からステップS45へ移行して、旧データが格納されているバンク間ブロックチェーンFLBAのバンクBANK0の裏ページの管理情報記憶部のデータを読み出して、結合された他のバンクBANK1〜BANK3のページアドレスを取得する。
【0088】
ステップS46では、例えばバンクBANK0の裏ページの管理情報記憶部に設けられている書込み禁止フラグWPF等をチェックしてライトプロテクトがかかっているか否か判定する。そして、ライトプロテクトがかかっていると判定したときはそのまま処理を終了し、ライトプロテクトがかかっていないと判定したときはステップS47へ移行してフラッシュメモリ110内に格納されている未使用テーブルを読み出してバッファメモリ124に転送する。
【0089】
次に、新データを書き込むバンク間ブロックチェーンFLBAのバンクBANK0の検索開始ページアドレスを算出する(ステップS48)。このページアドレスは乱数生成機能等を用いてランダムに生成される。生成されるアドレスが検索開始ページアドレスとされているのは、未使用テーブルにはすべてのブロックの消去可能か不許可かを示す情報がのっているので生成されたページアドレスをそのままライトアドレスとすると、ランダムに生成されたページアドレスがたまたま消去不許可なブロックを指示するものであった場合に上書きにより必要なデータが失われてしまうのを回避するためである。また、検索開始ページアドレスをランダムに生成しているのは、常に先頭から検索を開始すると書込みが行なわれるブロックが先頭の方にあるものに集中してしまうためである。
【0090】
ステップS48の後、上記検索開始ページアドレスを用いて未使用テーブルを検索して新データを書き込むバンク間ブロックチェーンFLBAが見つからなかったときは書込みエラーとして処理を終了する(ステップS49)。一方、ステップS49で新データを書き込むバンク間ブロックチェーンFLBAが見つかった時は、符号Aに従って図14のステップS50へ移行する。
【0091】
ステップS50では、新データを書き込むバンク間ブロックチェーンFLBAのバンクBANK0の表ページと裏ページの管理情報記憶部のデータを読み出して、当該バンクがユーザデータ領域等で書込み可能な領域であるか否かを判定するとともに、結合された他のバンクBANK1〜BANK3のページアドレスを取得する。その後、旧データが格納されているバンク間ブロックチェーンFLBAのバンクBANK0〜BANK4の表ページのデータをすべてSRAMバッファSRAM0〜SRAM4へ読み出す(ステップS51)。
【0092】
それから、ステップS50で読み出した管理情報のフラグから新データを書き込むバンク間ブロックチェーンFLBAのブロックが既に消去済みか否かを判定する(ステップS52)。そして、消去済みであればステップS54へジャンプし、消去済みでなければステップS53で新データを書き込むバンク間ブロックチェーンFLBAのバンクBANK0〜BANK4のデータ記憶部のデータをすべて消去してからステップS54へ移行する。
【0093】
ステップS54では、ステップS51で読み出した旧データとホスト装置からの書込みデータとをSRAMバッファSRAM0〜SRAM4上で合成することにより表ページの新データの作成を行なう。ここで、旧データには、旧データが格納されているバンク間ブロックチェーンFLBAのバンクBANK0〜BANK4のデータ記憶部のデータの他に、管理情報記憶部のデータが含まれる。また、新データを作成する際に消去済フラグやECCコード、消去回数など更新の必要があるものは、MPU121の処理により更新が行なわれる。
【0094】
その後、上記ステップS54で作成した新データを、新データのバンク間ブロックチェーンFLBAのバンクBANK0とこれに結合された他のバンクBANK1〜BANK3の表ページに書き込む(ステップS55)。
【0095】
次に、旧データが格納されているバンク間ブロックチェーンFLBAのバンクBANK0〜BANK4の裏ページのデータをすべてSRAMバッファSRAM0〜SRAM4へ読み出す(ステップS56)。
【0096】
それから、ステップS56で読み出した旧データとホスト装置からの書込みデータとをSRAMバッファSRAM0〜SRAM4上で合成することにより裏ページの新データの作成を行なう(ステップS57)。ここで、書込みデータが表ページのものである場合にはデータ記憶部の旧データと管理情報記憶部のページアドレスがそのまま新データとなる。
【0097】
書込みデータが表ページのものである場合にはデータ記憶部の旧データのうち書換え対象のデータのみ書込みデータで置換されたものが新データとなる。この場合にも管理情報記憶部のページアドレスはそのまま新データに含まれるようにされる。また、裏ページの管理情報記憶部にECCコードや消去回数などを格納する領域が設けられている場合にはそれらの管理情報のうち更新の必要性があるものは、MPU121の処理により更新が行なわれる。
【0098】
その後、上記ステップS57で作成した新データを、新データのバンク間ブロックチェーンFLBAのバンクBANK0とこれに結合された他のバンクBANK1〜BANK3の表ページに書き込む(ステップS58)。それから、新データが書き込まれたブロックに関する未使用テーブルの値が「消去可」から「消去不許可」に更新する処理が行なわれる(ステップS59)。
【0099】
また、アドレス変換テーブルに関しても変換後の物理アドレスを、旧データのバンクBANK0のページアドレスから新データのバンクBANK0のページアドレスへ更新する処理が行なわれる(ステップS60)。そして、最後に旧データが格納されていたブロックに関する未使用テーブルの値を「消去不許可」から「消去可」に更新する処理が行なわれる(ステップS61)。このように、アドレス変換テーブルの更新後に旧データが格納されていたブロックに関する未使用テーブルが更新されることにより、新データの書込みや新データのブロックに関する未使用テーブルの更新、アドレス変換テーブルの更新中に電源が遮断されたような場合にも旧データを保存つまり再読出しすることができるようになる。
【0100】
なお、この実施例のメモリカードにおいては、ブロック間チェーン情報(ページアドレス)の他に消去済フラグ等の逐次更新される管理情報が格納されるバンクがBANK0に固定されている場合を説明したが、管理情報が格納されるバンクをBANK0から、BANK1,BANK2,BANK3に順次入れ替えるようにすることも可能である。消去済フラグ等の管理情報が逐次更新されるとその度に当該ブロックに対する書換えが発生するので、バンクBANK0のみ書換え回数が多くなるが、管理情報が格納されるバンクを入れ替えることにより書換え回数を平均化することができ、局所的なメモリセルの劣化を抑制することができる。
【0101】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、実施例においては、消去単位が書込み単位の2倍であるフラッシュメモリに適用した場合を説明したが、本発明は消去単位が書込み単位と同一であるフラッシュメモリにも適用することができる。
【0102】
具体的には、実施例では、1つのワード線に接続された複数のメモリセル群(ブロック)のうち半分が第1のローカルソース線に接続され、残りの半分が第2のローカルソース線に接続されて、1ブロックが2つのページにより構成されているが、ページとブロックが同じである場合にも適用することができる。また、逆に消去単位が書込み単位の3倍以上であるフラッシュメモリにも適用することができる。本発明はメモリアレイが並列書込み可能な複数のバンクで構成されている不揮発性メモリおよびそれを用いた記憶装置に広く利用することができる。
【0103】
また、実施例においては、バンクBANK0の管理情報記憶部にこれと結合された他の3つのバンクBANK1〜BANK3のページアドレスを記憶するようにしているが、いずれかのバンクの管理情報記憶部にこれと結合された他のいずれかのバンクのページアドレスを記憶し、該いずれかのバンクの管理情報記憶部にこれとさらに結合された他のバンクのページアドレスを記憶させるようにする。つまり、チェーンを2段階以上に張るように構成することも可能である。
【0104】
さらに、実施例では、1つの記憶素子(メモリセル)に2ビットのデータを記憶可能な4値のフラッシュメモリについて説明したが、本発明は1つの記憶素子に1ビットのデータを記憶する2値のフラッシュメモリや3ビット以上のデータを記憶する多値のフラッシュメモリに対しても適用することができる。
【0105】
また、実施例においてはメモリセルのしきい値電圧が低い状態を消去状態と称し、しきい値電圧が高い状態を書込み状態と称しているが、メモリセルのしきい値電圧が高い状態を消去状態に対応させ、しきい値電圧が低い状態を書込み状態に対応させるようにしたフラッシュメモリに対しても本発明を適用することができる。
【0106】
さらに、前記実施例においては、複数の記憶素子がビット線とソース線との間に並列に接続されたいわゆるAND型もしくはNOR型のフラッシュメモリについて説明したが、本発明は記憶素子が直列に接続されたいわゆるNAND型のフラッシュメモリや、MONOS構造のメモリセルを持つ不揮発性メモリ等に対しても適用することができる。
【0107】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリを用いたメモリカードに適用した場合について説明したが、この発明はそれに限定されるものでなく、本発明は、電圧を印加してしきい値電圧を変化させて情報の記憶を行なう不揮発性記憶素子を有するEEPROMその他の半導体メモリを用いたメモリカードおよび複数の不揮発性メモリを1枚のプリント配線基板上に搭載してなるメモリモジュールと呼ばれる記憶装置などに広く利用することができる。
【0108】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本発明に従うと、複数のバンクを有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、不良ビットを含むブロックを回避してブロックチェーンが形成されるため、不良ビットを含まないにもかかわらず未使用になるブロックを減少させ、実質的な記憶容量を増加させることができるようになる。
【0109】
また、管理情報格納領域を有するバンクのブロックから管理情報を読み出すだけで結合された他のブロックを知ることができるとともに、すべてのブロックに関して論理アドレスを物理アドレスに変換するアドレス変換テーブルを用意する場合に比べてテーブルの規模を小さくし、テーブルをフラッシュメモリに格納することによりメモリの実質的な記憶容量が減少するのを防止することができるようになる。
【図面の簡単な説明】
【図1】本発明を適用して有効な不揮発性半導体記憶装置としてのフラッシュメモリを内蔵したメモリカードの一実施例を示すブロック図である。
【図2】実施例のメモリカードに内蔵されたフラッシュメモリの構成例を示すブロック図である。
【図3】実施例のフラッシュメモリのメモリアレイの構成例を示す回路説明図である。
【図4】実施例のフラッシュメモリにおけるメモリアレイのバンク構成とバッファメモリとの関係を示す説明図である。
【図5】図5(A)は実施例のフラッシュメモリを内蔵したメモリカードにおけるアドレス割付け方式の一例を示す説明図、図5(B)は各バンク内のブロックの構成例を示す説明図である。
【図6】図6(A)は実施例のフラッシュメモリにおけるバンクBANK0の管理情報記憶部の構成例を示す説明図、図6(B)はバンクBANK1〜3の管理情報記憶部の構成例を示す説明図である。
【図7】第1実施例のメモリカードにおけるデータ書込み処理の手順の一例を示すフローチャートである。
【図8】第1実施例のメモリカードにおけるデータ読出し処理の手順の一例を示すフローチャートである。
【図9】第2実施例のテーブル方式のアドレス管理におけるフラッシュメモリのバンク間ブロックチェーンの構成例およびテーブル領域の設定例を示す説明図である。
【図10】図10(A)はアドレス変換テーブルの構成例を示す説明図、図10(B)は未使用テーブルの構成例を示す説明図である。
【図11】テーブル方式を採用したメモリカードにおける論理アドレスから物理アドレスへの変換手順を示すフローチャートである。
【図12】あるバンク間ブロックチェーンのバンクBANK0の表ページのデータの一部を書き換える場合の手順の概略を示す説明図である。
【図13】テーブル方式を採用したメモリカードにおけるデータ書換え時の手順の前半を示すフローチャートである。
【図14】テーブル方式を採用したメモリカードにおけるデータ書換え時の手順の後半を示すフローチャートである。
【図15】従来のフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す説明図である。
【図16】本発明に先立って検討したマルチバンクのフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す説明図である。
【符号の説明】
10 メモリアレイ
12a,12b センスアンプ&カラムスイッチ
20 制御部
BANK0〜BANK3 バンク
SRAM0〜SRAM3 SRAMバッファ
X−DEC0〜X−DEC3 Xアドレスデコーダ
MC メモリセル
WL ワード線
LBL ローカルビット線
GBL グローバルビット線
LSL11〜LSL22 ローカルソース線
Qs1,QS2 選択スイッチMOSFET
【発明の属する技術分野】
この発明は、電気的に書込み、消去可能な不揮発性半導体記憶装置におけるアドレス管理方式に適用して有効な技術に関し、例えば複数のバンクを有しデータを所定の単位で一括消去可能なフラッシュメモリを内蔵したメモリカードのような記憶装置に利用して有効な技術に関するものである。
【0002】
【従来の技術】
近年、デジタルカメラなどの携帯用電子機器のデータ記憶媒体として、電源電圧を遮断しても記憶データを保持できるフラッシュメモリなどの不揮発性メモリを内蔵したメモリカードと呼ばれるカード型記憶装置が広く利用されるようになって来ている。メモリカードは、一般に不揮発性メモリと該不揮発性メモリへのデータの書込みや読出しを制御するコントローラを内蔵して構成されることが多い。
【0003】
従来のメモリカードに内蔵されるフラッシュメモリは、一般に1つのメモリアレイを有し、該メモリアレイ内の同一ワード線に接続されたメモリセル群のような単位(以下、これをブロックと称する)で書込みを行なうように構成されていた(特許文献1参照)。そのため、かかるフラッシュメモリへのデータの書込みや読出しを制御するコントローラは、ブロック単位でアドレスを管理する方式が採用されていた。
【0004】
ところで、半導体メモリは大容量化に対する要望が高い。この大容量化を達成するため、1つのメモリアレイを構成するメモリセルの数を多くすることも一つのやり方であるが、ビット線やワード線の長さが長くなってデータの読出し時間が長くなるという不具合がある。これに対し、1つのチップ内に複数のメモリアレイ(以下、バンクと称する)を設けることで大容量化を図る方式(マルチバンク方式)がある。
【0005】
かかるマルチバンク方式を採用すると、バンク内のビット線やワード線の長さはそれほど長くならないので、データの読出し時間を短縮することができるとともに、複数のバンクにおいて並行して書込み動作または消去動作を行なうことで書込み時間と消去時間の短縮を図ることができるという利点がある。
【0006】
【特許文献1】
特開2002−197876号公報
【0007】
【発明が解決しようとする課題】
本発明者は、マルチバンク方式を採用したフラッシュメモリを用いたメモリカードのようなメモリシステムにおけるアドレス管理方式について検討を行なった。その結果、以下に述べるように課題があることが明らかになった。
図15は、従来のフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す。図15のフラッシュメモリは、メモリアレイ内の1本のワード線に2112バイトのようなデータを記憶可能なメモリセルが接続されて1つのブロックを構成し、かかるブロックが例えば16384個設けられて128Mビットのような記憶容量を有するようにされている。この場合、外部のコントローラは、各ブロックに対応された14ビットのアドレス0000h〜1FFFhにより書込み対象のブロックを指定することとなる。
【0008】
かかるブロック対応のアドレス方式で、4つのバンクを有するフラッシュメモリを管理すると、複数のバンクの並列書込みが行なえない。そこで、図16に示すように4つのバンクBANK0〜BANK3に対応してSRAMなどからなる4つのバッファメモリBFM0〜BFM3を設け、各バンクの同一ブロック同士を結合(グループ化)させて1つのアドレスに対応させることで複数のバンクの並列書込みが可能になる。
【0009】
ところで、従来のフラッシュメモリでは、一般に、各ブロックに当該ブロックが不良ビットを含んでいるか否か等の管理情報を記憶する領域MDA(図15参照)を設け、該管理領域の情報をチェックしてから書込みを行なう方式が採用されている。かかる方式を前述のようなマルチバンク方式のフラッシュメモリに適用すると、結合された4つのブロックのうちいずれかのブロックに不良メモリセル(以下、不良ビットと称する)が含まれていると正常な書込みができないため、書込みの度にすべてのブロックの管理領域の情報をチェックしなければならない。
【0010】
そのため、管理領域の情報チェックに時間がかかるとともに正常なメモリセル(以下、正常ビットと称する)に対する不良ビットの割合が各バンクで同じであると仮定すると、各バンクにおいてそれぞれ同一箇所で不良が発生するとは限らないので、メモリ全体として不良アドレスが発生する確率が高くなり、書込み処理に要する時間が長くなる。
【0011】
そこで、図16に示すように、互いに結合された4つのブロックのうちいずれかのブロックに不良ビットが含まれている場合には、アドレスを割り付けないようにする管理方式が考えられる。図16においては、ハッチングが付されているブロックが不良ビットを含むブロックである。しかしながら、かかるアドレス管理方式に従うと、不良ビットを含まないにもかかわらず未使用になるブロックが多くなり、実質的な記憶容量が少なくなってしまうという不具合がある。図16においては、×印が付されているブロックが不良ビットを含まないにもかかわらず未使用になるブロックである。
【0012】
また、従来より、フラッシュメモリのアドレス管理方式として図15や図16のように各ブロックの物理アドレスと論理アドレスとを1対1で順に対応させて行く方式(以下、論物方式と称する)の他に、物理アドレスと論理アドレスとの対応を示す参照テーブルを用意して、該テーブルを用いて論理アドレスから物理アドレスへの変換を行なってブロックをアクセスする方式(以下、テーブル方式と称する)が知られているが、かかるテーブル方式においては、フラッシュメモリ内のすべてのブロックに関する物理アドレスを記憶させるようにすると、参照テーブルのデータ量が多くなる。
【0013】
そして、参照テーブルのデータ量が多くなると、参照テーブルは一般にフラッシュメモリ内に格納されるため、フラッシュメモリ内のユーザが利用できる有効な領域が少なくなるとともに、参照テーブルを展開する外部のRAMのようなメモリの容量が大きくなるという不具合がある。なお、参照テーブルを外部のメモリに展開するのは、フラッシュメモリのアクセス速度はRAMに比べて遅いためいちいちフラッシュメモリ内の参照テーブルを参照していたのではアクセス時間が長くなるためである。
【0014】
この発明の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いたメモリシステムにおいて、不良ビットを含まないにもかかわらず未使用になるブロックが多くなり実質的な記憶容量が減少するのを防止することができるアドレス管理方式を提供することにある。
【0015】
この発明の他の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いテーブル方式を採用したメモリシステムにおいて、アドレス変換用の参照テーブルのデータ量を減らして実質的な記憶容量が減少するのを防止することができるアドレス管理方式を提供することにある。
【0016】
この発明のさらに他の目的は、フラッシュメモリのような電気的に書込み、消去可能であって複数のバンクを有する不揮発性半導体記憶装置を用いたメモリシステムにおいて、外部メモリの記憶容量を少なくすることができるアドレス管理方式を提供することにある。
この発明の前記ならびにほかの目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【0017】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記のとおりである。
すなわち、本願の第1の発明は、複数のバンクを有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、各バンクの先頭から不良ビットを含むブロックを回避しつつ1ブロックずつ選択してグループ化させて、各ブロックのグループに先頭から順次アドレスを割り当ててチェーンを構成するようにしたものである。ここで、上記1ブロックとは一括消去の対象のメモリセル群全体を指す。一括消去の単位と一括書込みの単位は異なっていても良い。以下、各バンクから1つずつ選択されグループ化されたブロックの集まりを、バンク間ブロックチェーンと称する。
【0018】
上記した手段によれば、不良ビットを含むブロックを回避してブロックチェーンが形成されるため、不良ビットを含まないにもかかわらず未使用になるブロックの数を減少させることができるようになる。
【0019】
また、望ましくは、互いに結合されたブロックのうちいずれか1つのバンクに属するブロックに管理情報格納領域を設け、当該ブロックに他のバンクのどのブロックが結合されるか示す情報(ページアドレス)を格納するように構成する。これにより、管理情報格納領域を有するバンクのブロックから管理情報を読み出すだけで結合された他のブロックの位置を知ることができる。
【0020】
【発明の実施の形態】
以下、本発明の実施例を、図面を用いて説明する。
図1は、本発明が適用される不揮発性メモリを内蔵したメモリカードの一実施例を示す。
この実施例のメモリカード100は、特に制限されないが、所定の単位でデータを電気的に一括消去することが可能なフラッシュメモリ110と、外部から供給されるコマンドに基づいて上記フラッシュメモリ110に対するデータの書込みや読出しを行なうコントローラ120とからなる。フラッシュメモリ110とコントローラ120は、それぞれ別個の半導体チップ上に半導体集積回路として形成されており、これら2つの半導体チップが図示しない基板上に実装され全体が樹脂でモールドもしくはセラミックパッケージ等に収納されてカードとして構成されている。
【0021】
また、カードの一側には、外部の装置のカードスロットに挿入されたときに外部装置側の回路と電気的に接続され、外部のホスト装置からメモリカード100に対して電源を供給したり信号の入出力を行なうための外部端子群130が設けられ、これらの外部端子は上記基板上に形成されたプリント配線もしくはボンディングワイヤによって上記コントローラ120の外部端子としてのパッドに接続される。フラッシュメモリ110とコントローラ120との間はプリント配線によって接続してもよいし、コントローラ120とフラッシュメモリ110とをいずれか一方の上に他方を搭載してボンディングワイヤによって接続するようにしてもよい。
【0022】
コントローラ120は、データ転送などカード内部全体の制御を行なうマイクロプロセッサ(MPU)121と、外部の装置との間の信号のやり取りを行なうホストインタフェース部122と、フラッシュメモリ120との間の信号のやり取りを行なうメモリインタフェース部123と、外部から入力されたコマンドや書込みデータ、フラッシュメモリ110から読み出された読出しデータを一次保持するRAM(ランダムアクセスメモリ)などからなるバッファメモリ124と、該バッファメモリ124に対するデータの書込み読出しの制御を行なうバッファ制御部125などから構成されている。バッファ制御部125には、フラッシュメモリ110への書込みデータに対するエラー訂正符号の生成およびエラー訂正符号に基づく読出しデータのチェックと訂正の機能を有するエラー訂正符号生成&エラー訂正回路を設けることも可能である。
【0023】
フラッシュメモリ110は、MPU121からの指示(コマンド)に従ってデータの書込み、読出しの制御を行なういわゆるフラッシュコントローラを内蔵したものであってもよいし、フラッシュコントローラを内蔵しないフラッシュメモリの場合にはフラッシュコントローラの機能をバッファ制御部125もしくはMPU121に持たせることも可能である。
【0024】
また、フラッシュメモリ110は、コマンドと制御信号に基づいて動作するように構成されている。フラッシュメモリに有効なコマンドとしては、リードコマンドの他、ライトコマンド、消去コマンド等がある。これらのコマンドや制御信号は、MPU121等から与えられる。
【0025】
図1には、便宜上、従来のマルチメディアカード(Multi Media Card(登録商標))と呼ばれるカードメモリに設けられる外部端子を示したが、本発明を適用可能なメモリカードに設けられる外部端子は、図1に示されているものに限定されるものでなく、例えばデータ入出力端子を複数個備えパラレルでデータの転送が可能なものであっても良い。
【0026】
図2は、上記メモリカードに内蔵されているフラッシュメモリ110の概略構成を示す。フラッシュメモリには1つのメモリセルに1ビットのデータを記憶可能な2値メモリがあるが、この実施例のフラッシュメモリは1つのメモリセルに2ビットのデータを記憶可能な4値メモリとして構成され、単結晶シリコンのような1個の半導体チップ上に形成される。
【0027】
図2において、符号10は複数の不揮発性記憶素子(メモリセル)がマトリックス状に配置されたメモリアレイで、この実施例ではメモリアレイ10は4つのバンクBANK0,BANK1,BANK2,BANK3で構成されている。X−DEC0,X−DEC1,X−DEC2,X−DEC3はアドレス(Xアドレス)信号をデコードして前記メモリアレイ10内の対応するワード線を選択レベルにするXアドレスデコーダで、該XアドレスデコーダX−DEC0〜X−DEC3にはメモリアレイ内のワード線を選択レベルに駆動するワードドライバ回路が含まれている。
【0028】
メモリアレイ10を構成するメモリセルは、フローティングゲートとコントロールゲートを有するMOSFETからなり、フローティングゲートに注入される電荷の量に応じてしきい値電圧が、4段階のいずかに設定されることにより2ビットの情報を記憶するようにされる。
【0029】
なお、本明細書においては、しきい値電圧が最も低い状態を消去状態と称する。つまり、しきい値電圧を下げる動作を消去と称し、しきい値電圧を上げる動作を書込みもしくは書戻しと称する。本実施例のフラッシュメモリにおいては、メモリアレイ10内のデータを書き換える際に、メモリセルは一旦消去状態にされてからデータに相当するしきい値電圧になるように書込み電圧の印加が行なわれる。
【0030】
図2において、符号12a,12bはメモリアレイ10内のグローバルビット線に接続され書込みデータを保持したり読出し信号の増幅を行なったり、1本のワード線に接続された複数のメモリセルのうちバイト単位やワード単位など所定の単位で書込みデータや読出しデータを選択したりするセンスアンプ&カラムスイッチ(SA&C−SW)、SRAM0,SRAM1,SRAM2,SRAM3は上記各バンクBANK0,BANK1,BANK2,BANK3に対応して設けられ外部から入力された書込みデータを保持したりセンスアンプ12a,12bにより増幅された読出しデータを例えばページ単位で保持するスタティックRAM(ランダムアクセスメモリ)などからなるバッファメモリ(以下、SRAMバッファと称する)、13は外部からのアドレス信号に基づいてもしくは内部で自動的にカラムアドレス信号を生成するカラムアドレスカウンタである。
【0031】
また、20は外部から入出力端子I/O0〜I/O7を介して入力されたコマンドコードをデコードするコマンドデコーダ21や内部電源回路を制御する内部電源制御回路23など有し、入力されたコマンドに従ってチップ内部の制御信号を生成する制御部である。30は該制御部20の制御シーケンスをマイクロプログラムのような形式で記憶するシーケンス用ROM、31はデータ書込み時や消去時に必要とされる高電圧(負電圧を含む)を生成する内部電源回路である。
【0032】
入出力端子I/O0〜I/O7は、上記コマンドの入力の他、書込みデータやアドレスの入力、リードデータの出力にも利用される。書込み時に外部より入出力端子I/O0〜I/O7に入力されたライトデータは前記SRAMバッファSRAM0〜SRAM3およびセンスアンプ12a,12bを経てメモリアレイ10の各バンクに供給され、ライトアドレスは一旦制御部20に取り込まれてからアドレスデコーダX−DEC0〜X−DEC3に供給される。
【0033】
また、この実施例のフラッシュメモリには、外部のコントローラから入力される例えばチップ選択信号/CE、書込み制御信号/WE、出力制御信号/OE、読出し制御信号/RE等の制御信号が入力される制御端子が設けられており、これらの制御端子に入力された制御信号は制御部20に供給され、これらの制御信号に従ってチップ内部の動作状態が制御される。ここで、特に制限されるものでないが、符号の前に「/」が付記されている信号は、ロウレベルが有効レベルであること意味する。また、制御部20からはフラッシュメモリチップにコマンドを入力することが可能な状態にあるか否かを示すレディ/ビジー信号R/Bがチップ外部へ出力されるようにされている。
【0034】
図3にはこの実施例のメモリカードに用いられるフラッシュメモリ110のメモリアレイの1バンクの具体的な構成例を示す。
図3に示されているように、フラッシュメモリ110のメモリアレイの1バンクには、256個のメモリセルMC1〜MC256がローカルビット線LBL1,BL2……とローカルソース線LSL11,LSL21……との間に並列に接続されたメモリ列が例えば4224個ワード線方向に並んで配設されている。本明細書ではこれらの256×4224個のメモリセル群をサブブロックと称する。横方向つまり同一行のメモリセルはそれぞれ共通のワード線WL1,WL2,……WL256に接続されている。本明細書では、同一のワード線に接続されたメモリセル群をブロックと称する。本実施例のフラッシュメモリは、このブロックを単位として消去を行なうように構成されている。サブブロックは1バンク当り40個設けられている。
【0035】
さらに、この実施例のメモリアレイは、256個のメモリセルからなるメモリ列のうち互いに隣接する奇数列のメモリセルと偶数列のメモリセルのドレイン端子が共通のローカルビット線LBL1,LBL2……に接続されている。そして、ローカルビット線LBL1,LBL2……は、それぞれ選択MOSFET Qs1,Qs2……を介して対応するグローバルビット線GBL1,GBL2……に接続可能にされている。図示しないが、グローバルビット線GBL1,GBL2……には、同様な構成のサブブロック内の対応するメモリ列のローカルビット線が接続可能にされる。
【0036】
また、奇数列のメモリセルのソース端子はローカルソース線LSL11,LSL12……に接続され、偶数列のメモリセルのソース端子はローカルソース線LSL21,LSL22……に接続されている。そして、奇数列のローカルソース線LSL11,LSL12……は第1のコモンソース線CSL1に接続され、偶数列のローカルソース線LSL21,LSL22……は第2のコモンソース線CSL2に接続されている。第1のコモンソース線CSL1と第2のコモンソース線CSL2には、データ消去時には同一の電圧(0V)が印加され、データ書込み時には一方に書込み電圧(0V)、他方に書込み阻止電圧(3V)が印加される。これにより、書込みの単位は消去の単位の半分とされる。
【0037】
なお、書込みまたは消去時にはサブブロック内の256本のワード線のうち1本が選択にされ、書込み時には8Vのような正の高電圧がまた消去時には−12Vのような負の高電圧が印加される。これにより、消去はブロック単位すなわち1本のワード線に接続された4224個のメモリセルを対象として行なわれ、書込みは1本のワード線に接続された4224個のうち半分すなわち2112個のメモリセルを対象として行なわれる。以下、書込みの単位をページと称する。従って、1ブロックは2ページで構成される。また、1ブロックを構成する2ページのうち奇数列のメモリセルからなるページを表ページ、偶数列のメモリセルからなるページを裏ページと称する。
【0038】
図4には、このページを基本単位とした場合の4つのバンクBANK0〜BANK3とバッファメモリBFM0〜BFM3との対応関係を示す。なお、図示の都合上、図4では1つのバンク当りのブロックの数は正確には示されていない。図4に示されているように、各バンクBANK0〜BANK3は複数のブロックBLK11〜BLK1n,BLK21〜BLK2n,BLK31〜BLK3n,BLK41〜BLK4nにより構成され、各ブロックはそれぞれ表ページSFPと裏ページRSPとで構成されている。そして、バンクBANK0にはバッファメモリBFM0が対応され、バンクBANK1にはバッファメモリBFM1が、バンクBANK2にはバッファメモリBFM2が、さらにバンクBANK3にはバッファメモリBFM3が対応されている。
【0039】
図5(A)には、上記のような構成を有するフラッシュメモリを内蔵したメモリカードにおけるアドレス割付け方式の一例を示す。図5(A)は図4に示されている回路のうちメモリアレイの部分のみ取り出して示したものであり、BANK0〜BANK3はそれぞれバンク、符号BLKが付されているのはそれぞれブロックである。また、図5(A)において、ハッチングが付されているブロックはその中に不良ビッドが含まれているブロックであることを表わしている。
【0040】
図5(A)から分かるように、本実施例においては、各バンクの先頭から不良ビットを含むブロックを回避しつつ順番に1ブロックずつ選択してグループ化させて、各ブロックのグループに先頭からいずれか1つのバンクの最終ブロックに到達するまで順次アドレスを割り当てるように構成されている。図5(A)において、同一の丸付き数字が付されているブロックは同一のアドレスによって同時に選択されるブロックであることを意味している。図16と比較すると明らかなように、本実施例を適用することにより、不良ビットを含まないにもかかわらず未使用になるブロック(×印が付いたブロック)の数を大幅に減らすことができる。なお、未割当のブロックは、後に発生した不良ビットを含むブロックと置換される予備ブロックとすることができる。
【0041】
各ブロックはそれぞれ図5(B)に示すように、表ページに設けられた表データ記憶部S−DTMおよび管理情報記憶部S−MDMと、裏ページに設けられた裏データ記憶部R−DTMおよび管理情報記憶部R−MDMとにより構成されている。特に制限されるものでないが、この実施例のフラッシュメモリは、1つのメモリセルに2ビットのデータを記憶可能に構成された多値メモリであるが、1つのメモリセルに1ビットのデータを記憶し読み出すように動作することができるようにされており、データ記憶部S−DTMとR−DTMでは1つのメモリセルに2ビットのデータを記憶し、管理情報記憶部S−MDMとR−MDMでは1つのメモリセルに1ビットのデータを記憶するようにされる。
【0042】
これより、表データ記憶部S−DTMと裏データ記憶部R−DTMの記憶容量は2080バイト、管理情報記憶部S−MDMとR−MDMの記憶容量は16バイトとなる。1つのメモリセルに1ビットのデータを記憶する方が読出しデータの信頼性は高くなる。つまり、この実施例では、管理情報記憶部S−MDMとR−MDMの記憶データの方が信頼性は高いといえる。
【0043】
図6(A)にはバンクBANK0に属する各ブロックの管理情報記憶部S−MDMとR−MDMに設けられるデータの格納領域の構成、図6(B)にはバンクBANK1〜3に属する各ブロックの管理情報記憶部S−MDMとR−MDMに設けられるデータの格納領域の構成を示す。
【0044】
図6(A)に示すように、この実施例においては、バンクBANK0の表ページに設けられる管理情報記憶部S−MDMに、当該ページが不良でないことを示すコードが格納される2バイトの良/不良領域MGAと、当該ブロックのデータ記憶部S−DTM,R−DTMに格納されるデータがシステムデータなのかユーザデータなのかを示すデータ種別識別情報が格納される2バイトのデータ識別領域DDAと、データを消去してはいけないブロックか否かを示す書込み禁止フラグ領域WPFとが設けられている。残りの領域は未使用の領域である。この未使用領域には、消去済みか否かを示す情報や当該ブロックの消去回数、エラー訂正用のECCコードを格納するようにしてもよい。
【0045】
また、バンクBANK0の裏ページに設けられる管理情報記憶部R−MDMには、当該ページが不良でないことを示すコード(MGMコード)が格納される2バイトの良/不良領域MGAと、当該ブロックと結合されるバンクBANK1の対応ブロックのページアドレスを格納するチェーン情報記憶領域RDA1と、当該ブロックと結合されるバンクBANK2の対応ブロックのページアドレスを格納するチェーン情報記憶領域RDA2と、当該ブロックと結合されるバンクBANK3の対応ブロックのページアドレスを格納するチェーン情報記憶領域RDA3とが設けられる。チェーン情報記憶領域RDA1,RDA2,RDA3はそれぞれ2バイトで構成される。残りの8バイトは未使用の領域である。
【0046】
以下、上記のように4つのバンクの中から1ブロックずつ選択して結合させることをバンク間ブロックチェーンと称し、FLBAと記す。このバンク間ブロックチェーンは、カード製造時に書き込まれる。
【0047】
一方、図6(B)に示すように、バンクBANK1〜3の管理情報記憶部S−MDMとR−MDMには、それぞれ当該ページが不良でないことを示すMGMコードが格納される2バイトの良/不良領域MGAが設けられ、残りの14バイトは未使用の領域とされている。なお、バンクBANK1〜3の管理情報記憶部S−MDMとR−MDMには必ずしも良/不良領域MGAを設ける必要はなく、省略することも可能である。MGMコードの格納は、バンク間ブロックチェーンの生成の際に行なうようにすることができる。
【0048】
また、実施例では、バンクBANK0の管理情報記憶部S−MDMとR−MDMを図6(A)のような構成にし、バンクBANK1〜3の管理情報記憶部S−MDMとR−MDMを図6(B)のような構成にすると説明したが、バンクBANK1〜3のうちいずれか1つの管理情報記憶部S−MDMとR−MDMを図6(A)のような構成にして、残りの3つのバンクの管理情報記憶部S−MDMとR−MDMを図6(B)のような構成にするようにしてもよい。その場合、図6(A)のような構成にされたバンクの裏管理情報記憶部R−MDMのチェーン情報記憶領域RDA1〜3には、当該ブロックと結合される他の3つのバンクBANKにあるブロックのページアドレスが格納される。つまり、図6(A)のような構成の管理情報記憶部を設けるのはバンクBANK0に限定されず、いずれのバンクであっても良い。
【0049】
次に、本実施例のメモリカードにおいてバンク間ブロックチェーンが定義されたフラッシュメモリに対してデータの書込みおよび読出しを行なう場合の手順の一例を、図7および図8のフローチャートを用いて説明する。なお、図7および図8のフローチャートに従った制御は、コントローラ120によって実行される。
【0050】
データ書込み処理では、図7のように、先ず外部のホスト装置から入力された論理アドレスを、コントローラ120のMPU121が演算によりまたはテーブルを参照していずれかのバンク間ブロックチェーンFLBAを指定する物理アドレスに変換する(ステップS11)。
【0051】
続いて、該アドレスを用いてフラッシュメモリ110をアクセスし、該アドレスで指定されるバンク間ブロックチェーンFLBAのバンクBANK0のブロックの管理情報記憶部S−MDMとR−MDMに記憶されている管理情報を読み出してバッファメモリ124へ転送する(ステップS12)。そして、読み出された管理情報から、バンクBANK0の選択ブロックに対応するバンクBANK1〜3のブロックのページアドレスを取得する(ステップS13)。
【0052】
ここで、バンクBANK0のブロックの管理情報記憶部S−MDMとR−MDMに記憶されている管理情報から直接分かるのは、対応するバンクBANK1〜3のブロックの表ページ(もしくは裏ページ)のページアドレスであるが、表ページと裏ページのアドレスは所定の関係にあるので、裏ページ(もしくは表ページ)のページアドレスは計算によって求めることができる。また、バンクBANK0の選択ブロックのページアドレスは、ステップS11の演算により予め得ておくことができる。これにより、選択バンク間ブロックチェーンFLBAに属する全ブロックのページアドレスを知ることができる。
【0053】
次に、外部のホスト装置から入力された書込みデータをバッファメモリ124を経由してフラッシュメモリ110の各バンクに対応されたSRAMバッファBFM0〜BFM3へ転送する(ステップS14)。それから、書込み先のブロックのメモリセルはすべてデータ消去済みであるか否かをチェックする(ステップS15)。この判定は、ステップS2でフラッシュメモリ110から読み出されたデータ記憶部S−DTM,R−DTMのデータがオール“0”か否かを調べて行なっても良いし、バンクBANK0のブロックの管理情報記憶部S−MDMとR−MDMにデータ消去済みであるか否かを記憶する領域が設けられている場合にはその領域の情報を調べて行なうことも可能である。
【0054】
ステップS15の判定でデータ消去済みであったときはそのままステップS17へ移行し、データ消去済みでなかったときはステップS16で当該バンク間ブロックチェーンFLBAのバンクBANK0〜3に属するブロックのデータ記憶部S−DTM,R−DTMのデータを消去してからステップS17へ移行する。
【0055】
ステップS17では、ステップS14でSRAMバッファBFM0〜BFM3へ転送した書込みデータを、ステップS13で取得したページアドレスを使用して所望のブロックへ4バンク同時に並列書込みを行なう。続いて、ステップS18へ移行して書込みベリファイ動作を行ない、すべての選択ブロックの表ページ又は裏ページへの書込みが終了したか否かを判定し、終了していないときはステップS14へ戻って再度上記動作(ステップS14〜S17)を繰り返す。本実施例では、フラッシュメモリの構成から書込みは表ページと裏ページ別々に行なわれる。則ち、4バンクの所望のブロックの表ページに関し書込を行い(ステップS17)、書込終了を確認(ステップS18)した後、当該ブロックの裏ページに関し書込を行い(ステップS17)、書込終了を確認(ステップS18)する。
【0056】
そして、ステップS18で表ページと裏ページへの書込みが終了したと判定すると、ステップS19へ移行して複数のブロックに亘る全データの書込みが終了したか否かを判定し、終了していないときはステップS11へ戻って再度上記動作(ステップS11〜S17)を繰り返す。ステップS19で全データの書込みが終了したと判定したならば、書込み処理を終了する。ただし、ステップS11で論理アドレスから物理アドレスへの変換をテーブルを参照して行ないかつデータを他のブロックへ移し変えたような場合つまり論理アドレスは同じで物理アドレスを変えた場合には、ステップS19の後でテーブルの書換え等の処理をしてから終了する。
【0057】
データ読出し処理では、図8のように、先ず外部のホスト装置から入力された論理アドレスを、コントローラ120のMPU121が演算によりまたはテーブルを参照していずれかのバンク間ブロックチェーンFLBAを指定する物理アドレスに変換する(ステップS21)。
【0058】
続いて、該アドレスを用いてフラッシュメモリ110をアクセスし、該アドレスで指定されるバンク間ブロックチェーンFLBAのバンクBANK0に属するブロックの管理情報記憶部S−MDMとR−MDMに記憶されている管理情報を読み出してバッファメモリ124へ転送する(ステップS22)。そして、読み出された管理情報から、バンクBANK0の選択ブロックに対応するバンクBANK1〜3のブロックのページアドレスを取得する(ステップS23)。ステップS21〜23は書込み処理のステップS11〜S13と同様である。
【0059】
次に、ステップS23で取得したページアドレスを使用して、フラッシュメモリ110のメモリアレイから読み出された選択ブロックのぺージデータを、各バンクに対応されたSRAMバッファBFM0〜BFM3へ転送する(ステップS24)。そして、SRAMバッファBFM0〜BFM3のデータをバッファメモリ124を経由して外部のホスト装置へ転送する(ステップS25)。本実施例では、フラッシュメモリの構成から読出しは表ページと裏ページ別々に行なわれる。
【0060】
それから、すべての選択ブロックの表ページ又は裏ページの読出しが終了したか否かを判定し、終了していないときはステップS24へ戻って再度上記動作(ステップS24〜S26)を繰り返す。
【0061】
そして、ステップS25で表ページと裏ページの読出しが終了したと判定すると、ステップS26へ移行して複数のブロックに亘る全データの読出しが終了したか否かを判定し、終了していないときはステップS21へ戻って再度上記動作(ステップS21〜S27)を繰り返す。ステップS27で全データの読出しが終了したと判定したならば、読出し処理を終了する。読出し処理では、ステップS21で論理アドレスから物理アドレスへの変換をテーブルを参照して行なったとしても、ステップS27の後でテーブルの書換え等の処理はしなくてもよい。
【0062】
次に、本発明の第2の実施例を、図9〜図15を用いて説明する。この第2の実施例は、外部から入力された論理アドレスを、変換テーブルを参照してフラッシュメモリの物理アドレスに変換するテーブル方式に適用した実施例である。この変換テーブルはフラッシュメモリのメモリアレイ内に格納されており、電源投入時にバッファメモリ124上もしくはコントローラMPU内のワークRAM上に、テーブルが格納されているFLBAの物理アドレスが登録される。
【0063】
図9は、第2実施例のテーブル方式のアドレス管理におけるフラッシュメモリのバンク間ブロックチェーンの構成例およびテーブル領域の設定例を示すものである。
バンク間ブロックチェーンの構成の仕方は、図5(A)を用いて説明した第1の実施例におけるそれと同じである。図9において、符号FLBAが付されたそれぞれの箱は、表裏2つのページからなるブロックである。各バンクに属するブロックのうち同一の符号が付されたものは同一のバンク間ブロックチェーンを構成するブロックである。また、ハッチングが付されているブロックはその中に不良ビットが含まれているブロックであることを意味している。
【0064】
図9に示されているように、この実施例においても各バンクの先頭から不良ビットを含むブロックを回避しつつ順番に1ブロックずつ選択してグループ化させてチェーンを構成し、各チェーンに先頭からいずれか1つのバンクの最終ブロックに到達するまで順次アドレスを割り当てるようにされている。
【0065】
さらに、この第2の実施例では、上記のようにしてチェーンが構成されたメモリアレイのうち不良ビットを含むブロックの少ない箇所がテーブル格納領域TSAとして選択され、残りの領域がデータ格納領域とされるようになっている。
【0066】
フラッシュメモリは不良ビットが局所的に発生する傾向があるので、上記のように重要なテーブルデータが格納される領域をサブブロックのうち不良ビットを含むブロックの少ない箇所に割り当てることにより、信頼性を向上させることができるとともに新たに不良ビットを含むブロックが発生した時に行なわれるテーブル格納領域の再配置の処理回数を減らして待ち時間を短くすることができる。
【0067】
不良ビットを含まないにもかかわらず未使用になるバンク最終ブロック近傍の未割当のブロックは、後に発生した不良ビットを含むブロックと置換される予備ブロックとすることができる。上記テーブル格納領域TSAに格納されるテーブルは、本実施例では、アドレス変換用のテーブルおよびデータを書込みあるいは上書きしてもよいブロックをリストアップした未使用テーブルである。
【0068】
特に制限されるものでないが、アドレス変換テーブルはメモリアレイ内のサブブロックの数(320個)だけ設けられ、各アドレス変換テーブルはそれぞれ512バイトで構成されている。本実施例のフラッシュメモリの1ページは前述したように2112バイトであるので、1ページに4つ、1ブロックに8つのアドレス変換テーブルが格納される。
【0069】
アドレス変換テーブルが格納されるサブブロックは、カード製造時に実行されるフォーマット動作により決定される。また、テーブルが格納されているサブブロックの位置及び各テーブルの物理アドレスは、電源投入時にMPU121が各ブロックの管理情報記憶部のデータ種別識別情報等を参照して見つけ、MPU121内のワークRAMもしくはバッファメモリ124内に登録しておくようにされる。
図10(A)には上記アドレス変換テーブルの構成例を、また図10(B)には未使用テーブルの構成例を示す。
【0070】
図10(A)のアドレス変換テーブルにおいて、上欄CAはカラムアドレス、下欄の「値」は変換後のページアドレスを意味する。また、末尾に“h”が付されている数字はそれが16進数表示であることを意味している。ホスト装置から与えられる論理アドレスはフラッシュメモリのカラムアドレスに対応され、かつ論理アドレスはカラムアドレスの先頭から順番に対応される。
【0071】
1つのアドレス変換テーブルは1つのブロックに格納され、1つのバンク間ブロックチェーンFLBAのページアドレスは2バイトで表わされるので、1テーブルには256個のFLBAページアドレスを登録することができる。これは変換前の論理アドレスに換算すると8192個であり、外部のホスト装置から入力される論理アドレスが64バイト単位であるとすると、8192×64バイトのアドレス情報を1つの変換テーブルに登録できることを意味している。
【0072】
また、1ブロックには4096バイトのデータ領域があるので、1つのブロックには8つのアドレス変換テーブルが格納可能である。一方、実施例のフラッシュメモリは、1つのサブブロックには256個のブロックがあり、1ブロックは2ページからなり1つのバンクに40個のサブブロックがあるので、FLBAページアドレスの数は最大で81920個である。従って、アドレス変換テーブルは320個必要であり、320個のアドレス変換テーブルは40個のブロックすなわちいずれか1つバンクの1サブブロックに格納することができる。
【0073】
図10(A)の変換テーブルでは、変換前の論理アドレス“HBA0〜31”はバンクBANK0のページアドレスが“0000”から始まるバンク間ブロックチェーンFLBAに割り当てられ、変換前の論理アドレス“HBA32〜63”はバンクBANK0のページアドレスが“0050”から始まるバンク間ブロックチェーンFLBAに割り当てられることを示している。変換後の物理アドレスは連続していなくても良い。
【0074】
なお、図10(A)のアドレス変換テーブルにおいて、下欄の変換後の値がFFFFである時はまだページアドレスが割り当てられていないことを示している。また、この実施例では、バンクBANK0のページアドレスを指定するのに13ビットあればよく、これを2バイト(16ビット)の変換後アドレス格納領域に格納する場合3ビット余るので、ここに書込み禁止を指示する情報などバンク間ブロックチェーンの管理に関係する制御情報フラグを格納するのに利用することができる。
【0075】
未使用テーブルは、物理アドレス順に各ブロックに1ビットが割り当てられ、“1”が立っているビットに対応するブロックは消去が可能であることを表わし、“0” が立っているビットに対応するブロックは消去が不許可であることを表わすようにされる。図10(B)の未使用テーブルは、バンクBANK0の2番目のブロックと5番目及び6番目のブロックがそれぞれ消去可能であることを宣言している。
【0076】
1つの未使用テーブルは512バイト(4096ビット)で構成され、4096個のブロックの消去の可否が1つの未使用テーブルで設定可能である。実施例のフラッシュメモリは、1つのサブブロックに256個のブロックがあり、1つのバンクに40個のサブブロックがあるので、4つのバンク全体で40960個のブロックがある。従って、未使用テーブルは10個必要である。一方、1ブロックには4096バイトのデータ領域があり、1つのブロックには8つの未使用テーブルを格納できるスペースがあるので、10個の未使用テーブルは2つのブロックに格納することができる。また、前述のように全てのアドレス変換テーブルは1つのバンクの1サブブロックに格納可能である。
【0077】
実施例のフラッシュメモリには4つのバンクがあるので、図9のように4つのバンクのあるサブブロックをテーブル格納領域TSAとした場合、大部分(約3/4)が未使用の領域となる。そこで、このテーブル格納領域TSA内でアドレス変換テーブルおよび未使用テーブルを順次シフトさせながら格納することができ、かつそのようにシフトを行なうことによりテーブルの書換えで特定のブロックの書換え回数のみ極端に多くなって信頼性が低下するのを回避することができる。
【0078】
図11には、テーブル方式を採用したメモリカードにおける論理アドレスから物理アドレスへの変換手順が示されている。なお、図11のフローチャートに従った制御は、コントローラ120によって実行される。
コントローラ120のMPU121は、外部のホスト装置からリードコマンドやライトコマンドと共に論理アドレスを受け取ると、当該論理アドレスの論理−物理変換情報を登録してあるアドレス変換テーブルの番号を決定する(ステップS31)。次に、フラッシュメモリ110のフォーマット時に選択されたテーブル専用のサブブロックの中から、電源投入時にMPUのRAMもしくはコントローラ内バッファに登録されたアドレス変換テーブルの物理アドレスを参照して、アドレス変換テーブルのデータをフラッシュメモリ110から読み出してコントローラ120のバッファメモリ124の所定の番地に格納する(ステップS32)。それから、バッファメモリ124内に格納したテーブルを参照してホスト装置が指定した論理アドレスに対応したバンク間ブロックチェーンFLBAのページアドレスを取得する(ステップS33)。その後、このページアドレスを用いてホスト装置により指定されたコマンドに応じてフラッシュメモリからのデータの読出し、または書込みを実行する。
【0079】
次に、実施例のメモリカードにおいて、テーブル方式を採用してデータの書込みを行なう場合の手順を、図12〜図14を用いて説明する。
図12には、あるバンク間ブロックチェーンFLBAiのバンクBANK0の表ページのデータの一部を書き換える場合の手順の概略が示されている。
図12において、DBA,TBAはバッファメモリ214のデータバッファ領域およびテーブル展開領域、SRAM0〜SRAM3はリードデータとライトデータが一時保持されるSRAMバッファ、FLSはフラッシュメモリのメモリアレイ、TSAはテーブル格納領域、またはACTはアドレス変換テーブル、EETは未使用テーブルである。丸で囲まれた数字はデータ書換えの際の動作の順番を示す。
【0080】
具体的には、▲1▼のようにメモリアレイFLSからアドレス変換テーブルACTと未使用テーブルEETをバッファメモリのテーブル展開領域TBAへ読み出してから、▲2▼のようにMPUがバッファ上のテーブルから旧データのブロックと新データのブロックのブロックアドレスを取得する。次に、▲3▼のようにMPUからメモリアレイFLSへ旧データのブロックアドレスを与え、旧データをSRAMバッファSRAM0〜SRAM3へ読み出す。
【0081】
それから、▲4▼のようにホスト装置からのライトデータをデータバッファ領域DBAから書込み位置に対応したSRAMバッファ(例えばSRAM0)に転送する。しかる後、▲5▼のようにMPUからメモリアレイFLSへ新データのブロックアドレスを与え、SRAMバッファSRAM0〜SRAM3のデータをメモリアレイFLSの新ブロックへ格納する。それから、▲6▼のようにアドレス変換テーブルACTに新データのブロックアドレスを登録するとともに未使用テーブルEETに旧データのブロックを消去可能なブロックとして登録する。
【0082】
データの一部を書き換える場合、新しいデータを元のメモリセルに書き込むことも可能であるが、新データの書込み中に電源が遮断されたりすると元のデータが消滅してしまうことがある。そこで、この実施例では、データの一部を書き換える場合には、元のデータが入っているバンク間ブロックチェーンFLBAiのデータの一部を外部からの新データに置き換えて他のバンク間ブロックチェーンFLBAjに書き込むようにしている。
【0083】
これにより、新データの書込み中やテーブル更新中に電源が遮断されても、元のデータが消滅したり正しいデータを読み出せなくなってしまうのを防止することができる。また、このようにすることによって、新データの書込み先のブロックの書換え回数をチェックして書換え回数の少ないブロックへ書込みを行なうことにより、データの書換えが特定のページに集中して発生することで局所的なメモリセルの劣化が生じるのを回避することができるようになる。
【0084】
次に、データ書換えのより詳細な手順を図13および図14のフローチャートを用いて説明する。
外部のホスト装置から書込みコマンドが入力されると、MPU121はホスト装置からの論理アドレスから使用するアドレス変換テーブルのページアドレスとカラムアドレスを算出し、算出したアドレスを用いてフラッシュメモリ110からアドレス変換テーブルをバッファメモリ124へ読み出す(ステップS41,S42)。
【0085】
なお、このステップS41,S42を実行する代わりに、電源投入時等に予めフラッシュメモリ内のすべてのアドレス変換テーブルをバッファメモリ124へ読み込んでおくようにしてもよい。このようにすることより、例えばテーブルの更新はバッファメモリ124上で行ない電源遮断時にテーブルのデータをフラッシュメモリ110へ戻すことでフラッシュメモリの書換え回数を減らすことが可能となる。
【0086】
ステップS42でアドレス変換テーブルを読み込んだ後は、テーブルを参照して、書き換えようとするデータが格納されているブロックを含むバンク間ブロックチェーンFLBAのバンクBANK0のページアドレスを取得する(ステップS43)。このとき、アドレス変換テーブルの変換後のアドレス値が“FFFFh”であり対応する物理アドレスがないときは、そこには旧データがないということであるので、ステップS44からそのままステップS46へジャンプする。
【0087】
アドレス変換テーブルの変換後のアドレス値が“FFFFh”以外のときはその物理アドレスには旧データがあるということであるので、ステップS44からステップS45へ移行して、旧データが格納されているバンク間ブロックチェーンFLBAのバンクBANK0の裏ページの管理情報記憶部のデータを読み出して、結合された他のバンクBANK1〜BANK3のページアドレスを取得する。
【0088】
ステップS46では、例えばバンクBANK0の裏ページの管理情報記憶部に設けられている書込み禁止フラグWPF等をチェックしてライトプロテクトがかかっているか否か判定する。そして、ライトプロテクトがかかっていると判定したときはそのまま処理を終了し、ライトプロテクトがかかっていないと判定したときはステップS47へ移行してフラッシュメモリ110内に格納されている未使用テーブルを読み出してバッファメモリ124に転送する。
【0089】
次に、新データを書き込むバンク間ブロックチェーンFLBAのバンクBANK0の検索開始ページアドレスを算出する(ステップS48)。このページアドレスは乱数生成機能等を用いてランダムに生成される。生成されるアドレスが検索開始ページアドレスとされているのは、未使用テーブルにはすべてのブロックの消去可能か不許可かを示す情報がのっているので生成されたページアドレスをそのままライトアドレスとすると、ランダムに生成されたページアドレスがたまたま消去不許可なブロックを指示するものであった場合に上書きにより必要なデータが失われてしまうのを回避するためである。また、検索開始ページアドレスをランダムに生成しているのは、常に先頭から検索を開始すると書込みが行なわれるブロックが先頭の方にあるものに集中してしまうためである。
【0090】
ステップS48の後、上記検索開始ページアドレスを用いて未使用テーブルを検索して新データを書き込むバンク間ブロックチェーンFLBAが見つからなかったときは書込みエラーとして処理を終了する(ステップS49)。一方、ステップS49で新データを書き込むバンク間ブロックチェーンFLBAが見つかった時は、符号Aに従って図14のステップS50へ移行する。
【0091】
ステップS50では、新データを書き込むバンク間ブロックチェーンFLBAのバンクBANK0の表ページと裏ページの管理情報記憶部のデータを読み出して、当該バンクがユーザデータ領域等で書込み可能な領域であるか否かを判定するとともに、結合された他のバンクBANK1〜BANK3のページアドレスを取得する。その後、旧データが格納されているバンク間ブロックチェーンFLBAのバンクBANK0〜BANK4の表ページのデータをすべてSRAMバッファSRAM0〜SRAM4へ読み出す(ステップS51)。
【0092】
それから、ステップS50で読み出した管理情報のフラグから新データを書き込むバンク間ブロックチェーンFLBAのブロックが既に消去済みか否かを判定する(ステップS52)。そして、消去済みであればステップS54へジャンプし、消去済みでなければステップS53で新データを書き込むバンク間ブロックチェーンFLBAのバンクBANK0〜BANK4のデータ記憶部のデータをすべて消去してからステップS54へ移行する。
【0093】
ステップS54では、ステップS51で読み出した旧データとホスト装置からの書込みデータとをSRAMバッファSRAM0〜SRAM4上で合成することにより表ページの新データの作成を行なう。ここで、旧データには、旧データが格納されているバンク間ブロックチェーンFLBAのバンクBANK0〜BANK4のデータ記憶部のデータの他に、管理情報記憶部のデータが含まれる。また、新データを作成する際に消去済フラグやECCコード、消去回数など更新の必要があるものは、MPU121の処理により更新が行なわれる。
【0094】
その後、上記ステップS54で作成した新データを、新データのバンク間ブロックチェーンFLBAのバンクBANK0とこれに結合された他のバンクBANK1〜BANK3の表ページに書き込む(ステップS55)。
【0095】
次に、旧データが格納されているバンク間ブロックチェーンFLBAのバンクBANK0〜BANK4の裏ページのデータをすべてSRAMバッファSRAM0〜SRAM4へ読み出す(ステップS56)。
【0096】
それから、ステップS56で読み出した旧データとホスト装置からの書込みデータとをSRAMバッファSRAM0〜SRAM4上で合成することにより裏ページの新データの作成を行なう(ステップS57)。ここで、書込みデータが表ページのものである場合にはデータ記憶部の旧データと管理情報記憶部のページアドレスがそのまま新データとなる。
【0097】
書込みデータが表ページのものである場合にはデータ記憶部の旧データのうち書換え対象のデータのみ書込みデータで置換されたものが新データとなる。この場合にも管理情報記憶部のページアドレスはそのまま新データに含まれるようにされる。また、裏ページの管理情報記憶部にECCコードや消去回数などを格納する領域が設けられている場合にはそれらの管理情報のうち更新の必要性があるものは、MPU121の処理により更新が行なわれる。
【0098】
その後、上記ステップS57で作成した新データを、新データのバンク間ブロックチェーンFLBAのバンクBANK0とこれに結合された他のバンクBANK1〜BANK3の表ページに書き込む(ステップS58)。それから、新データが書き込まれたブロックに関する未使用テーブルの値が「消去可」から「消去不許可」に更新する処理が行なわれる(ステップS59)。
【0099】
また、アドレス変換テーブルに関しても変換後の物理アドレスを、旧データのバンクBANK0のページアドレスから新データのバンクBANK0のページアドレスへ更新する処理が行なわれる(ステップS60)。そして、最後に旧データが格納されていたブロックに関する未使用テーブルの値を「消去不許可」から「消去可」に更新する処理が行なわれる(ステップS61)。このように、アドレス変換テーブルの更新後に旧データが格納されていたブロックに関する未使用テーブルが更新されることにより、新データの書込みや新データのブロックに関する未使用テーブルの更新、アドレス変換テーブルの更新中に電源が遮断されたような場合にも旧データを保存つまり再読出しすることができるようになる。
【0100】
なお、この実施例のメモリカードにおいては、ブロック間チェーン情報(ページアドレス)の他に消去済フラグ等の逐次更新される管理情報が格納されるバンクがBANK0に固定されている場合を説明したが、管理情報が格納されるバンクをBANK0から、BANK1,BANK2,BANK3に順次入れ替えるようにすることも可能である。消去済フラグ等の管理情報が逐次更新されるとその度に当該ブロックに対する書換えが発生するので、バンクBANK0のみ書換え回数が多くなるが、管理情報が格納されるバンクを入れ替えることにより書換え回数を平均化することができ、局所的なメモリセルの劣化を抑制することができる。
【0101】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、実施例においては、消去単位が書込み単位の2倍であるフラッシュメモリに適用した場合を説明したが、本発明は消去単位が書込み単位と同一であるフラッシュメモリにも適用することができる。
【0102】
具体的には、実施例では、1つのワード線に接続された複数のメモリセル群(ブロック)のうち半分が第1のローカルソース線に接続され、残りの半分が第2のローカルソース線に接続されて、1ブロックが2つのページにより構成されているが、ページとブロックが同じである場合にも適用することができる。また、逆に消去単位が書込み単位の3倍以上であるフラッシュメモリにも適用することができる。本発明はメモリアレイが並列書込み可能な複数のバンクで構成されている不揮発性メモリおよびそれを用いた記憶装置に広く利用することができる。
【0103】
また、実施例においては、バンクBANK0の管理情報記憶部にこれと結合された他の3つのバンクBANK1〜BANK3のページアドレスを記憶するようにしているが、いずれかのバンクの管理情報記憶部にこれと結合された他のいずれかのバンクのページアドレスを記憶し、該いずれかのバンクの管理情報記憶部にこれとさらに結合された他のバンクのページアドレスを記憶させるようにする。つまり、チェーンを2段階以上に張るように構成することも可能である。
【0104】
さらに、実施例では、1つの記憶素子(メモリセル)に2ビットのデータを記憶可能な4値のフラッシュメモリについて説明したが、本発明は1つの記憶素子に1ビットのデータを記憶する2値のフラッシュメモリや3ビット以上のデータを記憶する多値のフラッシュメモリに対しても適用することができる。
【0105】
また、実施例においてはメモリセルのしきい値電圧が低い状態を消去状態と称し、しきい値電圧が高い状態を書込み状態と称しているが、メモリセルのしきい値電圧が高い状態を消去状態に対応させ、しきい値電圧が低い状態を書込み状態に対応させるようにしたフラッシュメモリに対しても本発明を適用することができる。
【0106】
さらに、前記実施例においては、複数の記憶素子がビット線とソース線との間に並列に接続されたいわゆるAND型もしくはNOR型のフラッシュメモリについて説明したが、本発明は記憶素子が直列に接続されたいわゆるNAND型のフラッシュメモリや、MONOS構造のメモリセルを持つ不揮発性メモリ等に対しても適用することができる。
【0107】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリを用いたメモリカードに適用した場合について説明したが、この発明はそれに限定されるものでなく、本発明は、電圧を印加してしきい値電圧を変化させて情報の記憶を行なう不揮発性記憶素子を有するEEPROMその他の半導体メモリを用いたメモリカードおよび複数の不揮発性メモリを1枚のプリント配線基板上に搭載してなるメモリモジュールと呼ばれる記憶装置などに広く利用することができる。
【0108】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本発明に従うと、複数のバンクを有するフラッシュメモリのような不揮発性半導体記憶装置を用いたメモリシステムにおいて、不良ビットを含むブロックを回避してブロックチェーンが形成されるため、不良ビットを含まないにもかかわらず未使用になるブロックを減少させ、実質的な記憶容量を増加させることができるようになる。
【0109】
また、管理情報格納領域を有するバンクのブロックから管理情報を読み出すだけで結合された他のブロックを知ることができるとともに、すべてのブロックに関して論理アドレスを物理アドレスに変換するアドレス変換テーブルを用意する場合に比べてテーブルの規模を小さくし、テーブルをフラッシュメモリに格納することによりメモリの実質的な記憶容量が減少するのを防止することができるようになる。
【図面の簡単な説明】
【図1】本発明を適用して有効な不揮発性半導体記憶装置としてのフラッシュメモリを内蔵したメモリカードの一実施例を示すブロック図である。
【図2】実施例のメモリカードに内蔵されたフラッシュメモリの構成例を示すブロック図である。
【図3】実施例のフラッシュメモリのメモリアレイの構成例を示す回路説明図である。
【図4】実施例のフラッシュメモリにおけるメモリアレイのバンク構成とバッファメモリとの関係を示す説明図である。
【図5】図5(A)は実施例のフラッシュメモリを内蔵したメモリカードにおけるアドレス割付け方式の一例を示す説明図、図5(B)は各バンク内のブロックの構成例を示す説明図である。
【図6】図6(A)は実施例のフラッシュメモリにおけるバンクBANK0の管理情報記憶部の構成例を示す説明図、図6(B)はバンクBANK1〜3の管理情報記憶部の構成例を示す説明図である。
【図7】第1実施例のメモリカードにおけるデータ書込み処理の手順の一例を示すフローチャートである。
【図8】第1実施例のメモリカードにおけるデータ読出し処理の手順の一例を示すフローチャートである。
【図9】第2実施例のテーブル方式のアドレス管理におけるフラッシュメモリのバンク間ブロックチェーンの構成例およびテーブル領域の設定例を示す説明図である。
【図10】図10(A)はアドレス変換テーブルの構成例を示す説明図、図10(B)は未使用テーブルの構成例を示す説明図である。
【図11】テーブル方式を採用したメモリカードにおける論理アドレスから物理アドレスへの変換手順を示すフローチャートである。
【図12】あるバンク間ブロックチェーンのバンクBANK0の表ページのデータの一部を書き換える場合の手順の概略を示す説明図である。
【図13】テーブル方式を採用したメモリカードにおけるデータ書換え時の手順の前半を示すフローチャートである。
【図14】テーブル方式を採用したメモリカードにおけるデータ書換え時の手順の後半を示すフローチャートである。
【図15】従来のフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す説明図である。
【図16】本発明に先立って検討したマルチバンクのフラッシュメモリを使用したシステムにおけるアドレス割付け方式の一例を示す説明図である。
【符号の説明】
10 メモリアレイ
12a,12b センスアンプ&カラムスイッチ
20 制御部
BANK0〜BANK3 バンク
SRAM0〜SRAM3 SRAMバッファ
X−DEC0〜X−DEC3 Xアドレスデコーダ
MC メモリセル
WL ワード線
LBL ローカルビット線
GBL グローバルビット線
LSL11〜LSL22 ローカルソース線
Qs1,QS2 選択スイッチMOSFET
Claims (11)
- データを同時に消去可能な複数の不揮発性メモリセルを含む第1メモリセル群が複数集合してなる第2メモリセル群が複数個設けられ、前記複数の第2メモリセル群の中のいずれかの第1メモリセル群に対して並行してデータの書込み動作を行なうことができるように構成された不揮発性半導体記憶装置と、外部からの指令に応じて前記不揮発性半導体記憶装置に対してアドレスとデータを与えて前記第1メモリセル群に対してデータの書込みを行なう制御装置とを備えた記憶装置であって、
前記複数の第2メモリセル群のうちいずれかの第2メモリセル群の第1メモリセル群には、他の第2メモリセル群の中のいずれかの第1メモリセル群との結合情報を記憶する領域が設けられ、外部から供給されたアドレスに基づいて前記結合情報を記憶する領域が設けられた第1メモリセル群のうち前記アドレスに対応した第1メモリセル群を選択して前記結合情報を読み出し、読み出された該結合情報に基づいて他の第2メモリセル群の中のいずれかの第1メモリセル群に対して書込みまたは消去動作を行なうように構成されてなることを特徴とする記憶装置。 - 外部から供給される論理アドレスと前記不揮発性半導体記憶装置内のいずれかの第1メモリセル群を指定する物理アドレスとの関係を示す情報を有する参照テーブルを備え、該参照テーブルを用いて前記論理アドレスから変換された物理アドレスにより前記結合情報を記憶する領域が設けられた第1メモリセル群のうち前記アドレスに対応した第1メモリセル群を選択して前記結合情報を読み出し、読み出された該結合情報に基づいて他の第2メモリセル群の中のいずれかの第1メモリセル群に対して書込みまたは消去動作を行なうように構成されてなることを特徴とする請求項1に記載の記憶装置。
- 前記不揮発性半導体記憶装置の外部にあって前記制御装置によりデータを読み出したり書き込んだりすることが可能なバッファメモリを備え、前記参照テーブルは電源遮断時に前記不揮発性半導体記憶装置に格納され、電源投入時に前記バッファメモリに読み出されることを特徴とする請求項1または2に記載の記憶装置。
- 前記第1メモリセル群は、同一のワード線に接続された複数のメモリセルからなり、該複数のメモリセルのうち互いに隣接する2つのメモリセルは同一のビット線に接続され、該同一ビット線に接続されたメモリセルのうち一方は第1のソース線に接続され、他方は第2のソース線に接続され、記憶データの消去動作は同一のワード線に接続されたメモリセルを対象として行なわれ、記憶データの書込み消去動作は同一のワード線に接続されたメモリセルのうち第1のソース線または第2のソース線に接続されたメモリセルを対象として行なわれることを特徴とする請求項1〜3のいずれかに記載の記憶装置。
- 前記結合情報により結合がなされていない第1メモリセル群は、前記結合情報により結合がなされているいずれかの第1メモリセル群において後天的に不良が発生した際に該不良が発生した第1メモリセル群と置換されるように構成されていることを特徴とする請求項1〜4のいずれかに記載の記憶装置。
- 前記不揮発性半導体記憶装置内のすべての第1メモリセル群についてそれぞれの第1メモリセル群に新たなデータを記憶することが可能か否かを示す情報を有する第2テーブルを備え、前記第2テーブルは電源遮断時に前記不揮発性半導体記憶装置に格納され、電源投入時に前記バッファメモリに読み出されることを特徴とする請求項3〜5のいずれかに記載の記憶装置。
- 外部から供給された論理アドレスに対応した第1メモリセル群へのデータの書込みに際して、当該論理アドレスに対応する元の物理アドレスにより指定される第1メモリセル群に記憶されているデータを前記揮発性メモリへ読み出して書込みデータと合成して新データを生成し、該新データを前記元の物理アドレスと異なる物理アドレスに格納するように構成されていることを特徴とする請求項3〜6のいずれかに記載の記憶装置。
- 前記新データの格納後に前記第2テーブルの前記元の物理アドレスにより指定される第1メモリセル群に関する情報を書き換えた後、前記参照テーブルの物理アドレスを前記新データが格納された第1メモリセル群を指定する物理アドレスに書き換え、前記第2テーブルの前記元の物理アドレスと異なる物理アドレスにより指定される第1メモリセル群に関する情報を書き換えるように構成されていることを特徴とする請求項7に記載の記憶装置。
- 前記結合情報を記憶する領域が設けられた第1メモリセル群には、消去済みか否かを示す管理情報を記憶する領域が設けらていることを特徴とする請求項1〜8のいずれかに記載の記憶装置。
- 前記不揮発性半導体記憶装置は、前記第2メモリセル群のそれぞれに対応して設けられ書込みデータを保持可能な揮発性メモリを備えていることを特徴とする請求項1〜9のいずれかに記載の記憶装置。
- データを同時に消去可能な複数の不揮発性メモリセルを含む第1メモリセル群が複数集合してなる第2メモリセル群が複数個設けられ、前記複数の第2メモリセル群の中のいずれかの第1メモリセル群に対して並行してデータの書込み動作を行なうことができるように構成された不揮発性半導体記憶装置におけるアドレス管理方法であって、
前記第1メモリセル群の中に不良メモリセルが含まれているか否かを検出する第1の動作と、
前記複数の第2メモリセル群の中からそれぞれ不良メモリセルを含む第1メモリセル群を回避しつつブリアドレスの先頭側から順に1つずつ第1メモリセル群を選択してグループ化させる第2の動作と、
前記グループ化された第1メモリセル群のうちいずれかの第1メモリセル群の管理情報記憶領域に、他の第2メモリセル群に属する第1メモリセル群の位置を示す結合情報を格納する第3の動作と、
を含む不揮発性半導体記憶装置におけるアドレス管理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003055129A JP2004265162A (ja) | 2003-03-03 | 2003-03-03 | 記憶装置およびアドレス管理方法 |
US10/721,362 US7197595B2 (en) | 2003-03-03 | 2003-11-26 | Nonvolatile memory and method of address management |
US11/709,778 US20070150649A1 (en) | 2003-03-03 | 2007-02-23 | Nonvolatile memory and method of address management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003055129A JP2004265162A (ja) | 2003-03-03 | 2003-03-03 | 記憶装置およびアドレス管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004265162A true JP2004265162A (ja) | 2004-09-24 |
Family
ID=32923490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003055129A Withdrawn JP2004265162A (ja) | 2003-03-03 | 2003-03-03 | 記憶装置およびアドレス管理方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7197595B2 (ja) |
JP (1) | JP2004265162A (ja) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007164303A (ja) * | 2005-12-09 | 2007-06-28 | Megachips Lsi Solutions Inc | 情報処理装置、コントローラおよびファイル読み出し方法 |
JP2007179286A (ja) * | 2005-12-27 | 2007-07-12 | Megachips Lsi Solutions Inc | 記憶装置および情報処理装置 |
JP2007520842A (ja) * | 2003-12-30 | 2007-07-26 | サンディスク コーポレイション | マルチブロック単位へのブロックの適応決定論的グループ化 |
JP2008044126A (ja) * | 2006-08-11 | 2008-02-28 | Fuji Xerox Co Ltd | 画像形成装置 |
JP2008123241A (ja) * | 2006-11-13 | 2008-05-29 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US7548479B2 (en) | 2006-07-13 | 2009-06-16 | Nec Electronics Corporation | Semiconductor memory device and manufacturing method thereof |
JP2010086106A (ja) * | 2008-09-30 | 2010-04-15 | Tdk Corp | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US8161320B2 (en) | 2006-10-02 | 2012-04-17 | Samsung Electronics Co., Ltd. | Apparatus, memory device controller and method of controlling a memory device |
JP2012174106A (ja) * | 2011-02-23 | 2012-09-10 | Denso Corp | フラッシュメモリに対してデータの読み出しおよび書き込みを行う制御装置 |
JP2012203508A (ja) * | 2011-03-24 | 2012-10-22 | Toshiba Corp | メモリシステムおよびプログラム |
JP2012212487A (ja) * | 2011-03-30 | 2012-11-01 | Toshiba Corp | メモリシステム |
US8370564B2 (en) | 2009-03-03 | 2013-02-05 | Fujitsu Limited | Access control device, information processing device, access control program and access control method |
JP2019082813A (ja) * | 2017-10-30 | 2019-05-30 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003085677A1 (fr) | 2002-04-05 | 2003-10-16 | Renesas Technology Corp. | Memoire non volatile |
JP2005108273A (ja) * | 2003-09-26 | 2005-04-21 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2005322109A (ja) * | 2004-05-11 | 2005-11-17 | Renesas Technology Corp | Icカードモジュール |
KR100643287B1 (ko) * | 2004-11-19 | 2006-11-10 | 삼성전자주식회사 | 플래시 메모리의 데이터 처리 장치 및 방법 |
JP2006164408A (ja) * | 2004-12-08 | 2006-06-22 | Toshiba Corp | 不揮発性半導体記憶装置及びそのデータ消去方法。 |
US8051252B2 (en) * | 2005-03-11 | 2011-11-01 | Ross Neil Williams | Method and apparatus for detecting the presence of subblocks in a reduced-redundancy storage system |
TWI308741B (en) * | 2005-06-03 | 2009-04-11 | Quanta Storage Inc | A method of defect areas management |
US7259988B2 (en) * | 2005-10-06 | 2007-08-21 | Phison Electronics Corp. | Method for managing memory blocks in flash memory |
US8180738B2 (en) * | 2006-06-15 | 2012-05-15 | Panasonic Corporation | Memory controller, nonvolatile storage device, and nonvolatile storage device system |
US8019940B2 (en) * | 2006-12-06 | 2011-09-13 | Fusion-Io, Inc. | Apparatus, system, and method for a front-end, distributed raid |
US8239612B2 (en) * | 2007-09-27 | 2012-08-07 | Tdk Corporation | Memory controller, flash memory system with memory controller, and control method of flash memory |
JP2009110053A (ja) * | 2007-10-26 | 2009-05-21 | Toshiba Corp | メモリシステム |
KR20100013824A (ko) * | 2008-08-01 | 2010-02-10 | 주식회사 하이닉스반도체 | 고속 동작하는 반도체 스토리지 시스템 |
US20110225654A1 (en) * | 2008-08-25 | 2011-09-15 | Mao-Huai Weng | Write-Proof Protection Method of a Storage Device |
KR20100030990A (ko) * | 2008-09-11 | 2010-03-19 | 삼성전자주식회사 | 특정 조건을 갖는 파일을 정해진 위치에 저장할 수 있는 하이브리드 하드디스크 드라이브, 이에 적합한 제어 방법 및 이에 적합한 기록 매체 |
KR101465099B1 (ko) * | 2008-09-11 | 2014-11-25 | 시게이트 테크놀로지 엘엘씨 | 특정 조건을 갖는 파일을 신속하게 판독할 수 있는 하이브리드 하드디스크 드라이브, 이에 적합한 제어 방법 및 이에 적합한 기록 매체 |
US20100332922A1 (en) * | 2009-06-30 | 2010-12-30 | Mediatek Inc. | Method for managing device and solid state disk drive utilizing the same |
TWI484334B (zh) * | 2009-12-24 | 2015-05-11 | Univ Nat Taiwan | 非揮發記憶體的區域式管理方法 |
DE102010028231A1 (de) * | 2010-04-27 | 2011-10-27 | Robert Bosch Gmbh | Speichermodul zur gleichzeitigen Bereitstellung wenigstens eines sicheren und wenigstens eines unsicheren Speicherbereichs |
FR2959586B1 (fr) * | 2010-04-30 | 2012-06-22 | Proton World Int Nv | Procede d'ecriture et de lecture dans une memoire d'atomicite |
JP5464066B2 (ja) * | 2010-06-10 | 2014-04-09 | ソニー株式会社 | 通信装置、及び、通信方法 |
US20120066444A1 (en) * | 2010-09-14 | 2012-03-15 | Advanced Micro Devices, Inc. | Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation |
US8593866B2 (en) * | 2011-11-11 | 2013-11-26 | Sandisk Technologies Inc. | Systems and methods for operating multi-bank nonvolatile memory |
TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
CN104217765B (zh) * | 2014-09-09 | 2017-11-24 | 武汉新芯集成电路制造有限公司 | 闪存芯片操作时间的测量方法 |
CN107730254B (zh) * | 2016-08-12 | 2021-10-15 | 南京市碧幄信息技术有限公司 | 货币安全交易系统及货币安全交易方法 |
US10361853B2 (en) | 2016-10-12 | 2019-07-23 | Bank Of America Corporation | Automated data authentication and service authorization via cryptographic keys in a private blockchain |
US11146535B2 (en) | 2016-10-12 | 2021-10-12 | Bank Of America Corporation | System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network |
CN110636037B (zh) * | 2019-07-02 | 2021-11-26 | 中国联合网络通信集团有限公司 | 一号多卡业务申请方法、用户节点、运营商系统和区块链 |
CN111815932A (zh) * | 2020-06-03 | 2020-10-23 | 南京南瑞信息通信科技有限公司 | 一种基于区块链的用电信息采集方法及装置 |
TWI738390B (zh) | 2020-06-19 | 2021-09-01 | 群聯電子股份有限公司 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
CN111724851B (zh) * | 2020-06-28 | 2022-05-10 | 群联电子股份有限公司 | 数据保护方法、存储器存储装置及存储器控制电路单元 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473753A (en) * | 1992-10-30 | 1995-12-05 | Intel Corporation | Method of managing defects in flash disk memories |
US5581723A (en) * | 1993-02-19 | 1996-12-03 | Intel Corporation | Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array |
JPH07153286A (ja) * | 1993-11-30 | 1995-06-16 | Sony Corp | 半導体不揮発性記憶装置 |
US5862314A (en) * | 1996-11-01 | 1999-01-19 | Micron Electronics, Inc. | System and method for remapping defective memory locations |
JP2000099215A (ja) | 1998-09-25 | 2000-04-07 | Ricoh Co Ltd | Pcカードのインタフェース |
GB9903490D0 (en) * | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
JP2001283594A (ja) * | 2000-03-29 | 2001-10-12 | Sharp Corp | 不揮発性半導体記憶装置 |
US6748505B1 (en) * | 2000-07-11 | 2004-06-08 | Intel Corporation | Efficient system bus architecture for memory and register transfers |
JP4084922B2 (ja) | 2000-12-22 | 2008-04-30 | 株式会社ルネサステクノロジ | 不揮発性記憶装置の書込み方法 |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
GB0123412D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system sectors |
JP3702231B2 (ja) * | 2002-01-31 | 2005-10-05 | 株式会社東芝 | ディスクアレイ装置及び同装置における動的記憶容量拡張方法 |
-
2003
- 2003-03-03 JP JP2003055129A patent/JP2004265162A/ja not_active Withdrawn
- 2003-11-26 US US10/721,362 patent/US7197595B2/en active Active
-
2007
- 2007-02-23 US US11/709,778 patent/US20070150649A1/en not_active Abandoned
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117381B2 (en) | 2003-12-30 | 2012-02-14 | Sandisk Technologies Inc. | Adaptive deterministic grouping of blocks into multi-block units |
JP2007520842A (ja) * | 2003-12-30 | 2007-07-26 | サンディスク コーポレイション | マルチブロック単位へのブロックの適応決定論的グループ化 |
JP2007164303A (ja) * | 2005-12-09 | 2007-06-28 | Megachips Lsi Solutions Inc | 情報処理装置、コントローラおよびファイル読み出し方法 |
JP2007179286A (ja) * | 2005-12-27 | 2007-07-12 | Megachips Lsi Solutions Inc | 記憶装置および情報処理装置 |
US7548479B2 (en) | 2006-07-13 | 2009-06-16 | Nec Electronics Corporation | Semiconductor memory device and manufacturing method thereof |
JP2008044126A (ja) * | 2006-08-11 | 2008-02-28 | Fuji Xerox Co Ltd | 画像形成装置 |
US8161320B2 (en) | 2006-10-02 | 2012-04-17 | Samsung Electronics Co., Ltd. | Apparatus, memory device controller and method of controlling a memory device |
JP2008123241A (ja) * | 2006-11-13 | 2008-05-29 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4636005B2 (ja) * | 2006-11-13 | 2011-02-23 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4720891B2 (ja) * | 2008-09-30 | 2011-07-13 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2010086106A (ja) * | 2008-09-30 | 2010-04-15 | Tdk Corp | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US8370564B2 (en) | 2009-03-03 | 2013-02-05 | Fujitsu Limited | Access control device, information processing device, access control program and access control method |
JP2012174106A (ja) * | 2011-02-23 | 2012-09-10 | Denso Corp | フラッシュメモリに対してデータの読み出しおよび書き込みを行う制御装置 |
JP2012203508A (ja) * | 2011-03-24 | 2012-10-22 | Toshiba Corp | メモリシステムおよびプログラム |
US8812774B2 (en) | 2011-03-24 | 2014-08-19 | Kabushiki Kaisha Toshiba | Memory system and computer program product |
JP2012212487A (ja) * | 2011-03-30 | 2012-11-01 | Toshiba Corp | メモリシステム |
JP2019082813A (ja) * | 2017-10-30 | 2019-05-30 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP7074453B2 (ja) | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20040177216A1 (en) | 2004-09-09 |
US7197595B2 (en) | 2007-03-27 |
US20070150649A1 (en) | 2007-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004265162A (ja) | 記憶装置およびアドレス管理方法 | |
US8363468B2 (en) | Semiconductor memory device | |
US20150255159A1 (en) | Method for controlling a non-volatile semiconductor memory, and semiconductor storage system | |
US7116578B2 (en) | Non-volatile memory device and data storing method | |
JP4061272B2 (ja) | メモリシステム及びメモリカード | |
JP3938309B2 (ja) | リードディスターブを緩和したフラッシュメモリ | |
KR100939146B1 (ko) | 비휘발성 반도체 메모리 시스템 및 그 데이터 기입 방법 | |
JP2004086991A (ja) | 不揮発性記憶装置 | |
EP1312095A2 (en) | Method and structure for reliable data copy operation for non-volatile memories | |
KR20070117606A (ko) | 데이터용과 에러 정정 코드용으로 전환가능한 부분을 갖는메모리 | |
US11081171B2 (en) | Nonvolatile memory device including a fast read page and a storage device including the same | |
JP5166118B2 (ja) | 半導体メモリの制御方法 | |
JP4730846B2 (ja) | メモリシステム | |
US7543104B2 (en) | Non-volatile semiconductor device for use in memory card and memory system | |
JP5204069B2 (ja) | 不揮発性半導体記憶装置 | |
JP2009129477A (ja) | 不揮発性半導体記憶装置 | |
JP4442771B2 (ja) | 記憶装置及びコントローラ | |
TW202117721A (zh) | 記憶體系統 | |
KR101598379B1 (ko) | 불휘발성 반도체 기억장치 | |
JP2008108299A (ja) | 不揮発性半導体メモリ、及びメモリカード | |
JP2004030849A (ja) | データの一部書き換え機能を有する半導体不揮発性メモリ | |
JP2009003995A (ja) | 半導体記憶装置 | |
US20230297239A1 (en) | Memory system | |
JP2009003994A (ja) | 半導体記憶装置 | |
JP2004273117A (ja) | 複合化フラッシュメモリを搭載した半導体装置及び携帯用機器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050701 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070427 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20071122 |