JP2012068764A - メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 - Google Patents

メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 Download PDF

Info

Publication number
JP2012068764A
JP2012068764A JP2010211427A JP2010211427A JP2012068764A JP 2012068764 A JP2012068764 A JP 2012068764A JP 2010211427 A JP2010211427 A JP 2010211427A JP 2010211427 A JP2010211427 A JP 2010211427A JP 2012068764 A JP2012068764 A JP 2012068764A
Authority
JP
Japan
Prior art keywords
physical
page
logical
block
pages
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
Application number
JP2010211427A
Other languages
English (en)
Inventor
Takuma Mitsunaga
琢真 光永
Hitoshi Abe
仁 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by TDK Corp filed Critical TDK Corp
Priority to JP2010211427A priority Critical patent/JP2012068764A/ja
Publication of JP2012068764A publication Critical patent/JP2012068764A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】ホストシステムから与えられるデータを格納するための領域を減少させることなく、論理ページと物理ページの対応関係を効率良く管理する。
【解決手段】それぞれの物理ブロックにおいて、物理ブロック内の物理ページをn個(nは2以上の整数)のグループに分割し、物理ブロック内のそれぞれの物理ページに、ホストシステムから与えられるユーザデータを書き込む際に、当該ユーザデータを書き込む物理ページに、当該ユーザデータに対応する論理ページを示す番号と共に、当該物理ページと同じグループに属する他の物理ページに格納されているユーザデータに対応する論理ページを示す番号を書き込む。
【選択図】図2

Description

本発明は、ホストシステムの書き換え単位よりも大きな消去ブロックサイズを持つ不揮発性メモリを用いて、記憶装置を構成するための、メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法に関する。
コンピュータ等の情報処理装置(ホストシステム)では、各種のファイルデータを保存するためにフラッシュメモリを記憶媒体として用いたCF(Compact Flash)カード、SSD(Solid State Drive)等の情報記憶装置(フラッシュメモリシステム)が使われることが多くなっている。このようなフラッシュメモリシステムでは、ホストシステムから与えられるアクセス指示に基づいて、フラッシュメモリに対する読み出し処理や書き込み処理が行われる。また、ホストシステムから与えられるアクセス指示では、セクタ(512バイト)単位の領域に付けられたアドレスでアクセス対象の領域が指示される。このようなフラッシュメモリシステムの記憶媒体として一般的に使用されているNAND型フラッシュメモリでは、ページ(物理ページ)単位でデータの書き込みが行われ、複数の物理ページを含む物理ブロック単位で記憶データの消去が行われる。従って、ホストシステムからはセクタ単位での書き換えを前提とした書き込み指示が与えられるが、このNAND型フラッシュメモリに対する書き込みはページ単位で実行しなければならない。更に、一度書き込まれたデータを書き換えるためにはブロック全体を一旦消去しなければならない。
NAND型フラッシュメモリを用いたフラッシュメモリシステムでは、ホストシステム側で管理されているアドレスが付けられたセクタ単位の領域を1個又は複数個集めた論理ブロックを物理ブロックに割り当てて管理している。更に、物理ブロック内の物理ページに、その物理ブロックに割り当てられた論理ブロック内の論理ページに対応するデータをランダムに書き込む場合には、物理ブロック内の物理ページと論理ブロック内の論理ページの対応関係を管理しなければならない。例えば、特許文献1では、物理ページの冗長領域に、その物理ページに対応する論理ページを特定するための番号を書き込んでいる。従って、この番号に基づいて、論理ページと物理ページの対応関係を管理することができる。しかし、この番号に基づいて、論理ページと物理ページの対応関係を把握するとすれば、この対応関係を把握する際に、それぞれの物理ページの冗長領域から、この番号を順次読み出さなければならない。この処理負担を軽減するために、一部の物理ブロックを、論理ページと物理ページの対応関係を示すマッピング情報を格納するための物理ブロックに割り当てている。また、特許文献2では、このようなマッピング情報を、ホストシステムから与えられたデータが格納されている物理ブロック内の一部の物理ページに格納している。
特開2005−196736号公報 特開2009−181254号公報
しかしながら、このようなマッピング情報を、一部の物理ブロックに、又は物理ブロック内の一部の物理ページに格納するようにした場合、ホストシステムから与えられるデータを格納するために使用できるフラッシュメモリ内の記憶領域が減少する。また、それぞれの物理ページの冗長領域から、それぞれの物理ページに対応する論理ページを特定するための番号を読み出して、論理ページと物理ページの対応関係を把握するとすれば、この対応関係を把握する際の処理負担が大きくなる。
そこで、本発明は、ホストシステムから与えられるデータを格納するための領域を減少させることなく、論理ページと物理ページの対応関係を効率良く管理することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。
本発明の第1の側面に従う、メモリコントローラは、
ホストシステムから与えられる論理アドレスが割り当てられている論理セクタを1個又は複数個含む論理ページ及び当該論理ページを複数個含む論理ブロックを定義して、書き込み処理の処理単位である物理ページを複数個含む物理ブロックが消去処理の処理単位である不揮発性メモリに対するアクセスを制御するメモリコントローラであって、
それぞれの物理ブロックにおいて、物理ブロック内の物理ページをn個(nは2以上の整数)のグループに分割するグループ管理手段と、
物理ブロックに論理ブロックを割り当てると共に、当該論理ブロックと当該論理ブロックを割り当てた物理ブロックの対応関係を管理する対応関係管理手段と、
物理ブロック内の先頭の物理ページから末尾の物理ページに向かう書き込み順序で、物理ブロック内のそれぞれの物理ページに、ホストシステムから与えられるユーザデータを書き込んでいくデータ書き込み手段と、
前記データ書き込み手段がユーザデータを書き込む物理ページに、当該ユーザデータに対応する論理ページを示す番号と共に、当該物理ページと同じグループに属する他の物理ページに格納されているユーザデータに対応する論理ページを示す番号を書き込むページ情報書き込み手段と、
を備える。
本発明の第1の側面に従う、メモリコントローラは、
物理ブロック内のユーザデータが書き込まれている物理ページのうち、末尾側のn個の物理ページに格納されている論理ページを示す番号を読み出すことにより、論理ブロック内の論理ページと当該論理ブロックが割り当てられている物理ブロック内の物理ページの対応関係を特定するページ管理手段を更に備えることが好ましい。
本発明の第1の側面に従う、メモリコントローラは、
前記グループ管理手段が、物理ブロック内の物理ページに通し番号を付け、当該通し番号をnで割った際の余りが同じものが同じグループに属するようにグループを形成することが好ましい。
本発明の第2の側面に従う、メモリコントローラは、
前記第1の側面に従うメモリコントローラと、
このメモリコントローラにより制御される1個又は複数個の不揮発性メモリを備える。
本発明の第3の側面に従う、不揮発性メモリの制御方法は、
ホストシステムから与えられる論理アドレスが割り当てられている論理セクタを1個又は複数個含む論理ページ及び当該論理ページを複数個含む論理ブロックを定義して、書き込み処理の処理単位である物理ページを複数個含む物理ブロックが消去処理の処理単位である不揮発性メモリに対するアクセスを制御する不揮発性メモリの制御方法であって、
それぞれの物理ブロックにおいて、物理ブロック内の物理ページをn個(nは2以上の整数)のグループに分割するグループ管理ステップと、
物理ブロックに論理ブロックを割り当てると共に、当該論理ブロックと当該論理ブロックを割り当てた物理ブロックの対応関係を管理する対応関係管理ステップと、
物理ブロック内の先頭の物理ページから末尾の物理ページに向かう書き込み順序で、物理ブロック内のそれぞれの物理ページに、ホストシステムから与えられるユーザデータを書き込んでいくデータ書き込みステップと、
前記データ書き込み手段がユーザデータを書き込む物理ページに、当該ユーザデータに対応する論理ページを示す番号と共に、当該物理ページと同じグループに属する他の物理ページに格納されているユーザデータに対応する論理ページを示す番号を書き込むページ情報書き込みステップと、
を備える。
本発明の第3の側面に従う、不揮発性メモリの制御方法は、
物理ブロック内のユーザデータが書き込まれている物理ページのうち、末尾側のn個の物理ページに格納されている論理ページを示す番号を読み出すことにより、論理ブロック内の論理ページと当該論理ブロックが割り当てられている物理ブロック内の物理ページの対応関係を特定するページ管理ステップを更に備えることが好ましい。
本発明の第3の側面に従う、不揮発性メモリの制御方法は、
前記グループ管理ステップが、物理ブロック内の物理ページに通し番号を付け、当該通し番号をnで割った際の余りが同じものが同じグループに属するようにグループを形成するステップであることが好ましい。
本発明によれば、物理ブロック内の物理ページをn個(nは2以上の整数)のグループに分割し、物理ブロック内の物理ページにホストシステムから与えられるユーザデータを書き込む際に、当該ユーザデータに対応する論理ページを示す番号と共に、当該物理ページと同じグループに属する他の物理ページに格納されているユーザデータに対応する論理ページを示す番号を書き込むようにしたので、ユーザデータを格納するための領域を減少させることなく、論理ページと物理ページの対応関係を効率良く管理することができる。
図1は、本実施の形態に係るフラッシュメモリシステム1を概略的に示すブロック図である。 図2は、本実施の形態に係るページ情報領域の概念図である。 図3は、本実施の形態に係るページ情報テーブルの概念図である。 図4は、本実施の形態に係るページ変換テーブルの概念図である。 図5は、本実施の形態に係るページ情報領域の初期状態を示す図である。 図6は、本実施の形態に係るページ情報テーブルの初期状態を示す図である。 図7は、本実施の形態に係る1ページ書き込み後のページ情報領域を示す図である。 図8は、本実施の形態に係る1ページ書き込み後のページ情報テーブルを示す図である。 図9は、本実施の形態に係る2ページ書き込み後のページ情報領域を示す図である。 図10は、本実施の形態に係る2ページ書き込み後のページ情報テーブルを示す図である。 図11は、本実施の形態に係る5ページ書き込み後のページ情報領域を示す図である。 図12は、本実施の形態に係る5ページ書き込み後のページ情報テーブルを示す図である。 図13は、本実施の形態に係る8ページ書き込み後のページ情報領域を示す図である。 図14は、本実施の形態に係る8ページ書き込み後のページ情報テーブルを示す図である。 図15は、本実施の形態に係るページ情報領域とページ情報テーブルの対応関係を示す図である。
図1に示されているように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。メモリコントローラ3は、内部バス14を介してフラッシュメモリ2と接続されている。
フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続されている。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
メモリコントローラ3は、図1に示されているように、マイクロプロセッサ6と、ホストインターフェースブロック7と、SRAM8と、バッファメモリ9と、フラッシュメモリインターフェースブロック10と、誤り訂正ブロック11と、ROM(Read Only Memory)12とから構成される。以下、各機能ブロックについて説明する。
ホストインターフェースブロック7は、ホストシステム4との間で行われるデータ、アドレス情報、ステータス情報、外部コマンド等の送受信を制御する。つまり、フラッシュメモリシステム1は、ホストインターフェースブロック7を介して、ホストシステム4から供給されるデータ等を取り込む。また、フラッシュメモリシステム1は、ホストインターフェースブロック7を介して、データ等をホストシステム4に供給する。外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
ホストインターフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えている。コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタR2には、書き込むデータ又は読み出すデータのセクタ数が書き込まれる。LBAレジスタR3には、書き込み又は読み出しを開始する論理セクタに対応するLBA(Logical Block Address)が書き込まれる。LBAは、512バイトの容量を持った論理セクタに割り当てられたアドレスである。
SRAM(Static Random Access Memory)8は、フラッシュメモリ2の制御に必要な情報を一時的に格納する揮発性メモリである。フラッシュメモリ2にアクセスするために必要な各種のテーブルは、SRAM8に保持され、SRAM8上で更新される。フラッシュメモリ2にアクセスするために必要なテーブルが、SRAM8に保持されていない場合は、そのテーブルはSRAM8上で作成される。但し、そのテーブルが、フラッシュメモリ2に格納されている場合は、格納されているテーブルがフラッシュメモリ2から読み出され、SRAM8に保持される。上記各種テーブルには、アドレス変換テーブル、検索テーブル、不良ブロックテーブル等が含まれる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。検索テーブルは、空きブロックを検索するためのテーブルである。不良ブロックテーブルは不良ブロックを管理するためのテーブルである。
バッファメモリ9は、フラッシュメモリ2から読み出したデータ、又はフラッシュメモリ2に書き込むデータを、一時的に保持する揮発性メモリである。
フラッシュメモリインターフェースブロック10は、フラッシュメモリ2との間で行われるデータ、アドレス情報、ステータス情報、内部コマンド等の送受信を制御する。ここで、内部コマンドとは、メモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、メモリコントローラ3から与えられる内部コマンドに従って動作する。
誤り訂正ブロック11は、フラッシュメモリ2にデータを書き込むときに、そのデータをBCH符号の誤り訂正符号(ECC:Error Correcting Code)に符号化し、フラッシュメモリ2から符号化されたデータを読み出したときに、その符号化されたデータを復号化する。つまり、フラッシュメモリ2に書き込まれるデータは、冗長ビットが付加されたBCH符号に符号化されてフラッシュメモリ2に書き込まれ、その符号化されたデータ(冗長ビットが付加されたデータ)は、読み出されたときに復号化される。この復号化では、符号化の際に付加される冗長ビットのビット数に応じて、所定のビット数までのビットエラーが訂正される。更に、誤り訂正ブロック11は、このBCH符号に基づいた訂正機能に加えて、当該訂正機能の訂正能力を超えるビット数のビットエラーが発生したことを検出する検出機能を備えている。
ROM12は、フラッシュメモリ2を制御するために必要なファームウェアを格納するための不揮発性の記憶素子である。尚、フラッシュメモリシステム1を起動させるために必要な最小限のファームウェアだけをROM12に格納し、その他のファームウェアをフラッシュメモリ2に格納するようにしてもよい。
マイクロプロセッサ6は、ROM12又はフラッシュメモリ2から、ファームウェアを読み込み、ファームウェアに従って動作する。メモリコントローラ3に含まれる機能ブロックは、マイクロプロセッサ6により制御される。
フラッシュメモリ2は、NAND型フラッシュメモリであり、レジスタと、複数のメモリセルが2次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み又は選択されたメモリセルからレジスタへのデータの読み出しが行われる。尚、フラッシュメモリには、SLC(Single Level Cell)タイプのメモリセルで構成されたものと、MLC(Multi Level Cell)タイプのメモリセルで構成されたものがある。
NAND型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ単位で行われ、データ消去動作はブロック(物理ブロック)単位で行われる。それぞれの物理ブロックは、複数のページ(物理ページ)で構成され、それぞれの物理ページは、ユーザ領域と冗長領域で構成されている。例えば、1個の物理ページは、4セクタ(2048バイト)のユーザ領域と、64バイトの冗長領域とで構成され、1個の物理ブロックは、64個の物理ページで構成されている。ユーザ領域は、ホストシステム4から与えられるデータを主に格納するための領域であり、冗長領域は、論理アドレス情報、ブロックステータス(フラグ)等の付加データを主に格納するための領域である。
論理アドレス情報は、当該情報に係る物理ブロックと対応する論理ブロックを特定するための情報である。ブロックステータス(フラグ)は、当該情報に係る物理ブロックが、不良ブロック(正常にデータの書き込み等を行うことができない物理ブロック)であるか否かを示すフラグである。尚、不良ブロックには、初期不良の不良ブロックと後発不良の不良ブロックがある。初期不良の不良ブロックは、出荷前に検出された不良ブロックである。後発不良の不良ブロックは、使用中に生じた不良ブロックである。初期不良の物理ブロックについては、不良ブロックであることを示すブロックステータス(フラグ)が製造メーカによって書き込まれている。また、この初期不良の物理ブロックを示すブロックステータス(フラグ)を、ユーザ領域に書き込んでいる製造メーカもある。
次に本実施の形態において行われる論理アドレス情報の冗長領域への書き込み処理、およびこの論理アドレス情報を利用したアドレス変換テーブルの作成処理について説明する。
ホストシステム4がメモリシステム3のデータをアクセスする場合、LBA(Logical Block Addressing)と呼ばれるセクタ単位でアドレスによりアクセス対象の領域が指定される。メモリコントローラ3は、ホストシステム4から受信したLBAを、フラッシュメモリ内の記憶領域の物理アドレスに変換する。次に、メモリコントローラ3は、その物理アドレスをフラッシュメモリに与えることにより、フラッシュメモリにデータを書き込んだり、フラッシュメモリからデータを読み出したりする。より具体的には、ホストシステム4は、アクセス対象の領域を指定するために、LBAをメモリコントローラ3に与える。メモリコントローラ3は、このLBAに対応する論理セクタが属する論理ブロック及び論理ページを特定する。1個の論理ページがm個の論理セクタで構成され、1個の論理ブロックがn個の論理ページで構成されている場合、LBAを1個の論理ブロックに含まれる論理セクタの個数(m×n)で割った商がアクセス対象の論理セクタが属する論理ブロックの論理ブロック番号に対応する。更に、この除算における剰余を1個の論理ページに含まれる論理セクタの個数(m)で割った商が論理ページ番号に対応する。通常、論理ブロックのサイズは、フラッシュメモリ2の消去単位である物理ブロックのサイズ、あるいは、物理ブロックを複数個集めたサイズに一致させることが多いが、メモリコントローラ3によっては、物理ブロックを構成する複数の物理ページの内、一部の物理ページを冗長的な目的で使用するため、その分を差し引いたサイズとなることもある。
次に、論理ブロック番号から、フラッシュメモリ2の物理ブロックアドレスにアドレス変換する方法を説明する。一般的には、起動時にメモリコントローラ3が、フラッシュメモリ2の冗長領域に格納されている論理アドレス情報を読み出し、メモリコントローラ3内のSRAM8に、論理ブロック番号順に、各々の論理ブロック番号に対応する物理ブロックアドレスを書き込むことによりアドレス変換テーブルを作成する。そして、このアドレス変換テーブルを参照して、論理ブロック番号を物理ブロックアドレスに変換する。
つまり、メモリコントローラ3は、ホストシステム4から受信したLBAから論理ブロック番号を求めた後、アドレス変換テーブルに基づいて、その論理ブロック番号に対応する物理ブロックアドレスを特定する。
さらに、物理ブロックアドレスが求まった後、メモリコントローラ3は、ページ変換テーブルを参照することで、ホストシステム4から受信したLBAから求めた論理ページ番号に対応する物理ページ番号を特定する。この物理ページ番号を物理ブロックアドレスの下位側に連結したものが、物理ページを指定するための物理アドレスに対応する。ページ変換テーブルは、論理ページ番号と物理ページ番号の対応関係を管理するためのテーブルであり、論理ページ番号順に、各々の論理ページのデータが書き込まれている物理ページの物理ページ番号を保持している。フラッシュメモリへのアクセス(書き込み及び読み出し)の基本単位は物理ページなので、最終的に、ホストシステム4から受信したLBAから物理ページを指定するための物理アドレスが求められる。
この物理ページは、ホストシステムから受信したユーザデータを格納するユーザ領域と、論理ページ番号などの情報を格納する冗長領域とで構成されている。ユーザ領域は、通常、複数セクタの領域で構成されている。冗長領域内の一部の領域は、複数の論理ページ番号を格納することができるページ情報領域として確保されている。このページ情報領域に格納される論理ページ番号に基づいて、論理ページ番号と物理ページ番号の対応関係が管理される。図2は、1個の物理ブロックが64個の物理ページで構成されている場合に、物理ブロックを構成するそれぞれの物理ページのページ情報領域を概念的に示している。各物理ページには#0から#63までの物理ページ番号が割り当てられており、ユーザデータが各物理ページのユーザ領域に書き込まれる際に、当該物理ページに格納されるユーザデータに対応する論理ページ番号と予め定められた他の物理ページに格納されたユーザデータに対応する論理ページ番号が、当該物理ページのページ情報領域に書き込まれる。本実施の形態では、それぞれの物理ページ内のページ情報領域が領域#0〜#15の16個の領域に分割されている。従って、それぞれの物理ページ内のページ情報領域には、最大16個の論理ページ番号を書き込むことができる。
図2に示したように、1個の物理ブロックが64個の物理ページで構成されている場合、少なくとも4個の物理ページ内のページ情報領域を使用すれば、それぞれの物理ページに格納されたユーザデータに対応する論理ページ番号を格納することができる。つまり、それぞれの物理ページに対応する64個の論理ページ番号を4つのグループに分割(等分)すれば、それぞれのグループを1個の物理ページ内のページ情報領域に格納することができる。尚、物理ブロック内のそれぞれの物理ページに対応する64個の論理ページ番号に関する情報は、実質的に、ページ情報テーブルに相当する。次に、ページ変換テーブルの元になるテーブルであるこのページ情報テーブルについて説明する。図3は、フラッシュメモリの1個の物理ブロックに該当するページ情報テーブルの一例を示す概念図である。この例では、フラッシュメモリの1個の物理ブロックを構成する全ての物理ページにデータが書き込まれている。このページ情報テーブルは、物理ページ番号の順番でそれぞれ物理ページに対応する論理ページ番号を保持するテーブルである。従って、4つのグループに分割(等分)して物理ページ内のページ情報領域に格納される論理ページ番号を、物理ページ番号の順番で並べることによりページ情報テーブルを作成することができる。
このページ情報テーブルは、64個の物理ページにそれぞれ対応する64個の論理ページ番号格納領域によって構成されている。各論理ページ番号格納領域には、#0から#63までのいずれかの論理ページ番号が格納される。そして、複数の論理ページ番号格納領域に、同じ論理ページ番号が重複して格納されることがある。
一方、ページ変換テーブルは、図4に示すとおり、論理ページ番号の順番でそれぞれ論理ページに対応する物理ページ番号を保持するテーブルである。このページ変換テーブルは、ページ情報テーブルに基づいて作成することができる。ページ情報テーブルに基づいてページ変換テーブルを作成する際に、ひとつの論理ページ番号に複数の物理ページ番号が対応している場合は、もっとも番号の大きな物理ページ番号が、その論理ページ番号に対応する物理ページ番号として選択される。本実施の形態では、物理ブロック内の複数個の物理ページをn個のグループに分割するときに、物理ページ番号をnで割った際の余りが同じになるものが同じグループに属するようにグループが形成される。つまり、余りが、“0”
のグループ、“1” のグループ、・・・・・“n−1” のグループが形成される。例えば、2個のグループに分ける場合、物理ページ番号が#0,#2,#4,#6・・・の物理ページが属するグループと、物理ページ番号が#1,#3,#5,#7・・・の物理ページが属するグループとが形成される。このようにした場合、1個の物理ブロックが64個の物理ページで構成されていれば、各グループに32個の物理ページが属する。従って、論理ページ番号格納領域の容量は、32個の論理ページ番号を格納することができる容量に設定する必要がある。
また、nで割った際の余りが同じになるものが同じグループに属するようにグループが形成すれば、データが書き込まれている物理ページのうちで、物理ページ番号が大きい方からn個の物理ページの論理ページ番号格納領域に格納されている論理ページ番号により、最新のページ変換テーブルを作成することができる。つまり、n個の物理ページの論理ページ番号格納領域から論理ページ番号を読み出すことにより、ページ変換テーブルを作成することができる。
尚、グループの個数を少なくすれば、ページ変換テーブルを作成するときに読み出し対象となる物理ページの個数は少なくなるが、論理ページ番号格納領域の容量は大きくなる。本実施の形態では、このグループの個数を、MLC(Multi Level Cell)タイプのフラッシュメモリを使用することを考慮して設定している。このMLCタイプのフラッシュメモリでは、複数個の物理ページによりメモリセルが共用されている。例えば、2個の物理ページがメモリセルを共用している場合、一方の物理ページである下位ページに対するデータの書き込みが行われた後に、他方の物理ページである上位ページに対するデータの書き込みが行われる。従って、上位ページに対するデータの書き込みの際に、エラーが発生した場合、その上位ページと対になっている下位ページのデータが破壊されてしまう。この上位ページと対になっている下位ページとの間に少なくともm個の物理ページが存在する場合、グループの個数がm個以下であれば、上位ページに対するデータの書き込みの際に、その上位ページと対になっている下位ページはページ変換テーブルを作成するときに読み出し対象の物理ページから外れている。従って、上位ページに対するデータの書き込みの際に、エラーが発生しても、その影響を小さくすることができる。
次に、物理ブロック内のそれぞれの物理ページにおいて、物理ページ内のユーザ領域に書き込まれるデータとページ情報領域に書き込まれる論理ページ番号との関係を説明する。以下の説明では、各物理ページ内のページ情報領域に書き込まれる論理ページ番号、それに対応するページ情報テーブルの遷移を示す図を参照する。図5は、消去状態にある物理ブロックの状態である。消去状態においては、物理ブロックのすべてのページ情報領域は消去状態(論理値が“1”の状態)、つまりFFhが読み出される状態にある。図6は、この初期状態にある物理ブロックに対応するページ情報テーブルの概念図を示す。この状態ではデータが書き込まれていないので、ページ情報テーブルのそれぞれの物理ブロック番号に対応する論理ページ番号領域(8ビット×16)は、すべて消去状態を示すコード、例えば、FFhが設定されている。
次に、ホストシステムからの要求に基づいて、物理ブロック内の物理ページにデータが書き込まれる場合について説明する。この要求では、ホストシステムから書き込み命令、書き込み先のLBA等が与えられる。メモリコントローラは、ホストシステムから与えられたLBAから論理ブロック番号と論理ページ番号を計算する。ここでは、その論理ブロック番号に対応する物理ブロック番号が、アドレス変換テーブルに示されていなかったとする。この場合、その論理ブロック番号に対して、消去状態の物理ブロックが新たに割り当てられる。消去状態の物理ブロックに対して書き込みを実施する場合は、先頭の物理ページである物理ページ番号(PPN)#0の物理ページからデータの書き込みが開始される。物理ページ番号#0の物理ページのユーザ領域に、論理ページ番号#3のユーザデータを書き込む際に、当該物理ページのページ情報領域内の領域0に、当該のユーザデータに対応する論理ページ番号である#3を書き込む。つまり、論理ページ番号#3のユーザデータを物理ページ番号#0の物理ページ内のユーザ領域に書き込む際に、論理ページ番号を示す#3がページ情報領域内の領域0に書き込まれる。図7は、物理ページ番号#0の物理ページに、論理ページ番号#3のユーザデータが書き込まれた状態を示している。また、図8は、この状態のページ情報テーブルを示している。この状態では、物理ページ番号#0に対応する論理ページ番号は#3になる。
以下、この物理ブロック内の物理ページ番号#1以降の物理ページにデータが書き込まれる場合について説明する。物理ページ番号#1の物理ページのユーザ領域に、論理ページ番号#8に対応するユーザデータを書き込む際に、当該物理ページのページ情報領域内の領域0に、当該ユーザデータに対応する論理ページ番号を示す#8を書き込む。図9は、物理ページ番号#0の物理ページと物理ページ番号#1の物理ページに、論理ページ番号#3のユーザデータと論理ページ番号#8のユーザデータがそれぞれ書き込まれた状態を示している。また、図10は、この状態のページ情報テーブルを示している。この状態では、物理ページ番号#0に対応する論理ページ番号は#3になり、物理ページ番号#1に対応する論理ページ番号は#8になる。
以下同様に、物理ページ番号#2の物理ページのユーザ領域に、論理ページ番号#9に対応するユーザデータを書き込む際に、当該物理ページのページ情報領域内の領域0に、当該ユーザデータに対応する論理ページ番号を示す#9を書き込む。物理ページ番号#3の物理ページのユーザ領域に、論理ページ番号#4に対応するユーザデータを書き込む際に、当該物理ページのページ情報領域内の領域0に、当該ユーザデータに対応する論理ページ番号を示す#4を書き込む。
次に、物理ページ番号#4の物理ページに対するユーザデータ及び論理ページ番号の書き込みについて説明する。物理ページ番号#4の物理ページは、物理ページ番号#0の物理ページと同じグループに属している。従って、物理ページ番号#4の物理ページのユーザ領域に、論理ページ番号#5に対応するユーザデータを書き込む際に、当該物理ページのページ情報領域内の領域1に、当該ユーザデータに対応する論理ページ番号を示す#5を書き込むと共に、当該物理ページのページ情報領域内の領域0に、論理ページ番号を示す#3を書き込む。つまり、物理ページ番号#0の物理ページに対応する論理ページ番号(#3)と物理ページ番号#4の物理ページに対応する論理ページ番号(#5)が、ページ情報領域内の領域0と領域1にそれぞれ書き込まれる。
図11は、物理ページ番号#0〜#4の物理ページに、論理ページ番号#3,#8,#9,#4,#5のユーザデータがそれぞれ書き込まれた状態を示している。また、図12は、この状態のページ情報テーブルを示している。この状態では、物理ページ番号#0に対応する論理ページ番号は#3になり、物理ページ番号#1に対応する論理ページ番号は#8になり、物理ページ番号#2に対応する論理ページ番号は#9になり、物理ページ番号#3に対応する論理ページ番号は#4になり、物理ページ番号#4に対応する論理ページ番号は#5になる。
同様に、物理ページ番号#5〜#7の物理ページに対するユーザデータ及び論理ページ番号の書き込みが行われる。ここで、物理ページ番号#5の物理ページは、物理ページ番号#1の物理ページと同じグループに属している。物理ページ番号#6の物理ページは、物理ページ番号#2の物理ページと同じグループに属している。物理ページ番号#7の物理ページは、物理ページ番号#3の物理ページと同じグループに属している。従って、物理ページ番号#5の物理ページのユーザ領域に、論理ページ番号#6に対応するユーザデータを書き込む際に、物理ページ番号#1の物理ページに対応する論理ページ番号(#8)と物理ページ番号#5の物理ページに対応する論理ページ番号(#6)が、ページ情報領域内の領域0と領域1にそれぞれ書き込まれる。物理ページ番号#6の物理ページのユーザ領域に、論理ページ番号#1に対応するユーザデータを書き込む際に、物理ページ番号#2の物理ページに対応する論理ページ番号(#9)と物理ページ番号#6の物理ページに対応する論理ページ番号(#1)が、ページ情報領域内の領域0と領域1にそれぞれ書き込まれる。物理ページ番号#7の物理ページのユーザ領域に、論理ページ番号#0に対応するユーザデータを書き込む際に、物理ページ番号#3の物理ページに対応する論理ページ番号(#4)と物理ページ番号#7の物理ページに対応する論理ページ番号(#0)が、ページ情報領域内の領域0と領域1にそれぞれ書き込まれる。
図13は、物理ページ番号#0〜#7の物理ページに、論理ページ番号#3,#8,#9,#4,#5,#6,#1,#0のユーザデータがそれぞれ書き込まれた状態を示している。また、図14は、この状態のページ情報テーブルを示している。この状態では、物理ページ番号#0に対応する論理ページ番号は#3になり、物理ページ番号#1に対応する論理ページ番号は#8になり、物理ページ番号#2に対応する論理ページ番号は#9になり、物理ページ番号#3に対応する論理ページ番号は#4になり、物理ページ番号#4に対応する論理ページ番号は#5になり、物理ページ番号#5に対応する論理ページ番号は#6になり、物理ページ番号#6に対応する論理ページ番号は#1になり、物理ページ番号#7に対応する論理ページ番号は#0になる。 次に、ページ変換テーブルを作成する処理について説明する。メモリコントローラは、アクセス対象の物理ブロックのページ変換テーブルがSRAM上に作成されていないときに、この処理を実行する。まず、メモリコントローラは、このアクセス対象の物理ブロック内のユーザデータが格納されている末尾の物理ページを特定する。例えば、図13に示したように物理ページ番号#0〜#7の物理ページにユーザデータが格納されている場合、末尾からその3つ前までの4個の物理ページに対応する物理ページのページ情報領域内から論理ページ番号が読み出される。つまり、物理ページ番号#4〜#7の物理ページのページ情報領域内から論理ページ番号が読み出される。物理ページ番号#0〜#7の物理ページにユーザデータが格納されている状態のページ情報テーブルは、物理ページ番号#4〜#7の物理ページのページ情報領域内から読み出され論理ページ番号に基づいて作成することができる。従って、物理ページ番号#4〜#7の物理ページのページ情報領域内から読み出され論理ページ番号に基づいて、ページ変換テーブルを作成することができる。
また、図4に示したように物理ページ番号#0〜#63の物理ページにユーザデータが格納されている場合、物理ページ番号#60〜#63の物理ページのページ情報領域内から論理ページ番号が読み出される。図15は、図4に示したように物理ページ番号#0〜#63の物理ページにユーザデータが格納されている状態におけるページ情報テーブルと、この状態において物理ページ番号#60〜#63の物理ページのページ情報領域に格納されている論理ページ番号との関係を示している。ここで、物理ページ番号#60の物理ページのページ情報領域には、物理ページ番号#0,#4,#8,#12・・・#60の物理ページに対応する論理ページ番号が格納される。物理ページ番号#61の物理ページのページ情報領域には、物理ページ番号#1,#5,#9,#13・・・#61の物理ページに対応する論理ページ番号が格納される。物理ページ番号#62の物理ページのページ情報領域には、物理ページ番号#2,#6,#10,#14・・・#62の物理ページに対応する論理ページ番号が格納される。物理ページ番号#63の物理ページのページ情報領域には、物理ページ番号#3,#7,#11,#15・・・#63の物理ページに対応する論理ページ番号が格納される。つまり、ページ情報テーブルが、4つのグループに分割されて、物理ページ番号#0〜#63の物理ページに格納されている状態になっている。このため、物理ページ番号#60〜#63の物理ページのページ情報領域内から読み出された論理ページ番号に基づいて、ページ変換テーブルを作成することができる。
以上、本発明の実施の形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施の形態にのみ限定する趣旨ではない。本発明の要旨を逸脱しない範囲内において種々の変更を加え得ることは勿論である。
例えば、物理ブロックに含まれる複数個の物理ページを複数のグループに分割するときのグループ数、及びその分割の仕方は適宜変更することができる。そして、ページ情報領域の容量も、それぞれのグループに含まれる物理ページの個数に応じて、適宜変更することができる。
また、複数のフラッシュメモリをアクセスするために複数のチャンネルのバスを備えたフラッシュメモリシステムにおいても本発明は有効である。各チャンネルに接続された複数のフラッシュメモリから、それぞれ選択された複数の物理ブロックを、ひとつの仮想ブロックとして定義する。さらにその仮想ブロックを構成する複数の物理ブロックにそれぞれ含まれる複数の物理ページを、ひとつの仮想ページと定義する。この様な仮想空間に対しても本発明は適用可能である。その場合、ホストシステムのLBA空間からフラッシュメモリ内の物理アドレスへのアドレス変換は、仮想ブロックの単位で行われる。つまり、ひとつの論理ブロックはひとつの仮想ブロックに割り当てられ、ひとつの論理ページはひとつの仮想ページに割り当てられる。従って、論理ページのサイズは、仮想ページのユーザデータ領域の合計値に一致する。
本発明は、種々のデジタル情報を取り扱うパーソナルコンピュータやデジタルスチルカメラ等の電子機器に装着又内蔵される情報記憶(記録)装置に適用することができる。
1…フラッシュメモリシステム、2…フラッシュメモリ、3…メモリコントローラ

Claims (7)

  1. ホストシステムから与えられる論理アドレスが割り当てられている論理セクタを1個又は複数個含む論理ページ及び当該論理ページを複数個含む論理ブロックを定義して、書き込み処理の処理単位である物理ページを複数個含む物理ブロックが消去処理の処理単位である不揮発性メモリに対するアクセスを制御するメモリコントローラであって、
    それぞれの物理ブロックにおいて、物理ブロック内の物理ページをn個(nは2以上の整数)のグループに分割するグループ管理手段と、
    物理ブロックに論理ブロックを割り当てると共に、当該論理ブロックと当該論理ブロックを割り当てた物理ブロックの対応関係を管理する対応関係管理手段と、
    物理ブロック内の先頭の物理ページから末尾の物理ページに向かう書き込み順序で、物理ブロック内のそれぞれの物理ページに、ホストシステムから与えられるユーザデータを書き込んでいくデータ書き込み手段と、
    前記データ書き込み手段がユーザデータを書き込む物理ページに、当該ユーザデータに対応する論理ページを示す番号と共に、当該物理ページと同じグループに属する他の物理ページに格納されているユーザデータに対応する論理ページを示す番号を書き込むページ情報書き込み手段と、
    を備えることを特徴とするメモリコントローラ。
  2. 物理ブロック内のユーザデータが書き込まれている物理ページのうち、末尾側のn個の物理ページに格納されている論理ページを示す番号を読み出すことにより、論理ブロック内の論理ページと当該論理ブロックが割り当てられている物理ブロック内の物理ページの対応関係を特定するページ管理手段を更に備えることを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記グループ管理手段は、物理ブロック内の物理ページに通し番号を付け、当該通し番号をnで割った際の余りが同じものが同じグループに属するようにグループを形成することを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 請求項1乃至3のいずれか1項に記載のメモリコントローラと、
    このメモリコントローラにより制御される1個又は複数個の不揮発性メモリを備えるフラッシュメモリシステム。
  5. ホストシステムから与えられる論理アドレスが割り当てられている論理セクタを1個又は複数個含む論理ページ及び当該論理ページを複数個含む論理ブロックを定義して、書き込み処理の処理単位である物理ページを複数個含む物理ブロックが消去処理の処理単位である不揮発性メモリに対するアクセスを制御する不揮発性メモリの制御方法であって、
    それぞれの物理ブロックにおいて、物理ブロック内の物理ページをn個(nは2以上の整数)のグループに分割するグループ管理ステップと、
    物理ブロックに論理ブロックを割り当てると共に、当該論理ブロックと当該論理ブロックを割り当てた物理ブロックの対応関係を管理する対応関係管理ステップと、
    物理ブロック内の先頭の物理ページから末尾の物理ページに向かう書き込み順序で、物理ブロック内のそれぞれの物理ページに、ホストシステムから与えられるユーザデータを書き込んでいくデータ書き込みステップと、
    前記データ書き込み手段がユーザデータを書き込む物理ページに、当該ユーザデータに対応する論理ページを示す番号と共に、当該物理ページと同じグループに属する他の物理ページに格納されているユーザデータに対応する論理ページを示す番号を書き込むページ情報書き込みステップと、
    を備えることを特徴とする不揮発性メモリの制御方法。
  6. 物理ブロック内のユーザデータが書き込まれている物理ページのうち、末尾側のn個の物理ページに格納されている論理ページを示す番号を読み出すことにより、論理ブロック内の論理ページと当該論理ブロックが割り当てられている物理ブロック内の物理ページの対応関係を特定するページ管理ステップを更に備えることを特徴とする請求項5に記載の不揮発性メモリの制御方法。
  7. 前記グループ管理ステップでは、物理ブロック内の物理ページに通し番号を付け、当該通し番号をnで割った際の余りが同じものが同じグループに属するようにグループを形成することを特徴とする請求項5又は6に記載のメモリコントローラ。
JP2010211427A 2010-09-21 2010-09-21 メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 Withdrawn JP2012068764A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010211427A JP2012068764A (ja) 2010-09-21 2010-09-21 メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010211427A JP2012068764A (ja) 2010-09-21 2010-09-21 メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法

Publications (1)

Publication Number Publication Date
JP2012068764A true JP2012068764A (ja) 2012-04-05

Family

ID=46166010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010211427A Withdrawn JP2012068764A (ja) 2010-09-21 2010-09-21 メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法

Country Status (1)

Country Link
JP (1) JP2012068764A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232144A (ja) * 2012-05-01 2013-11-14 Sony Corp 制御装置、記憶装置、記憶制御方法
US9195591B2 (en) 2013-06-10 2015-11-24 Kabushiki Kaisha Toshiba Memory system
CN112148203A (zh) * 2019-06-27 2020-12-29 龙芯中科技术有限公司 存储器管理方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232144A (ja) * 2012-05-01 2013-11-14 Sony Corp 制御装置、記憶装置、記憶制御方法
US9195591B2 (en) 2013-06-10 2015-11-24 Kabushiki Kaisha Toshiba Memory system
CN112148203A (zh) * 2019-06-27 2020-12-29 龙芯中科技术有限公司 存储器管理方法、装置、电子设备及存储介质
CN112148203B (zh) * 2019-06-27 2023-12-05 龙芯中科技术股份有限公司 存储器管理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US9520992B2 (en) Logical-to-physical address translation for a removable data storage device
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
US8037232B2 (en) Data protection method for power failure and controller using the same
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
US8001317B2 (en) Data writing method for non-volatile memory and controller using the same
US8775771B2 (en) Block management method for a flash memory and flash memory controller and storage system using the same
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
JP4666080B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20110231597A1 (en) Data access method, memory controller and memory storage system
US9785384B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
US9268688B2 (en) Data management method, memory controller and memory storage apparatus
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US20130275655A1 (en) Memory management method and memory controller and memory storage device using the same
JP5093294B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4737223B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012068764A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP4952741B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4636046B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2009301491A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20131203