説明

メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

【課題】アクセス要求により頻繁に指定される論理ブロックに対応する物理ブロックへのアクセスを効率的に行う。
【解決手段】アクセス要求により、そのときまでに指定された論理ブロックについて、その論理ブロックに対応する物理ブロックにアクセスするための論理ブロック情報が所定個数保持される。この論理ブロック情報の保持では、優先順位の高い論理ブロック情報が優先順位の低い論理ブロック情報より優先される。この優先順位の管理では、アクセス要求により頻繁に指定される論理ブロックに対応する論理ブロック情報の優先順位が高くなる。アクセス要求を受けたときに、そのアクセス要求により指定された論理ブロックに対応する論理ブロック情報が保持されていれば、その保持されている論理ブロック情報に基づいて指定された論理ブロックに対応する物理ブロックへのアクセスが行われる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
【背景技術】
【0002】
フラッシュメモリを用いたメモリシステムでは、通常、論理ブロック単位でホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係が管理されている。論理ブロックは、論理アドレスがそれぞれに割り当てられている複数個の論理セクタで構成されている。そして、論理ブロックが、所定数の物理ブロック(1以上の物理ブロック)に割り当てられる。物理ブロックは、フラッシュメモリにおける消去単位であり、複数個の物理ページで構成され、この物理ページ単位で書き込み、及び読み出しが行われる。
【0003】
物理ブロック内の各物理ページに対するデータの書き込みは、その物理ページのページ番号が小さい方から順番に行わなければならない。従って、物理ブロックにデータを書き込むときには、書き込み先の物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページが特定される。そして、その物理ページを起点として、ページ番号の小さい方から順番にデータが書き込まれる。
【0004】
例えば、特許文献1に開示されているように、アドレス変換テーブルに基づいて、論理ブロックと物理ブロックとの対応関係が管理される。更に、アクセスの効率及びアドレス変換テーブルの管理の効率を考慮して、それぞれが複数個の論理ブロックから成るゾーンを形成し、ゾーン毎にアドレス変換テーブルを作成する。そして、使用しているテーブル又は使用される可能性が高いテーブルだけをSRAMに保持する。
【0005】
又、物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページは、特許文献2に開示されているような方法で特定される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−243110号公報
【特許文献2】特開2007−323138号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1又は特許文献2に記載されたメモリシステムでは、
特定の論理ブロックがホストシステムからのアクセス要求で頻繁に指定されたとしても、その都度(ホストシステムから、その論理ブロックに対するアクセス要求が与えられる度に)、その論理ブロックと対応する物理ブロックを特定する処理が行われる。つまり、その論理ブロックの論理ブロック番号をその論理ブロックと対応する物理ブロックの物理ブロックアドレスに変換する処理が、その都度行われる。更に、その物理ブロックにデータを書き込むときには、その物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページも特定しなければならない。
【0008】
従って、アクセス要求で頻繁に指定される論理ブロックについて、上記のような物理ブロック及び物理ページの特定を効率的に行うことができれば、フラッシュメモリに対するアクセスの効率を向上させることができる。
【0009】
そこで、本発明は、ホストシステムからのアクセス要求により頻繁に指定される論理ブロックに対応する物理ブロックへのアクセスを効率的に行うことを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の側面に従うメモリコントローラは、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理手段と、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御手段と
を備える。前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持手段は、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する。
【0011】
本発明の第2の側面に従うメモリコントローラは、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成手段と、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理手段と、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御手段と
を備える。前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持手段は、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する。
【0012】
本発明の第3の側面に従うフラッシュメモリシステムは、前記第1又は第2の側面に従うメモリコントローラと、このメモリコントローラにより制御される1個又は複数個のフラッシュメモリとを備える。
【0013】
本発明の第4の側面に従う、フラッシュメモリの制御方法は、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理ステップと、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御ステップと
を有する。前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持ステップでは、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する。
【0014】
本発明の第5の側面に従う、フラッシュメモリの制御方法は、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成ステップと、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理ステップと、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御ステップと
を有する。前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持ステップでは、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する。
【発明の効果】
【0015】
本発明によれば、ホストシステムからのアクセス要求により、そのときまでに指定された論理ブロックについて、それらの論理ブロックに対応する物理ブロックにアクセスするための情報を保持するようにしたので、アクセス要求により頻繁に指定される論理ブロックに対応する物理ブロックへのアクセスを効率的に行うことができる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の形態に係るフラッシュメモリシステムのブロック図である。
【図2】アドレス変換テーブルを示した図である。
【図3】物理ブロック内の空きページのうちで一番小さいページ番号の物理ページを探す処理を示した図である。
【図4】論理ブロック情報が保持されるエントリーを示した図である。
【図5】エントリーの優先順位を示した図である。
【図6】エントリーの優先順位を示した図である。
【図7】エントリーの優先順位を示した図である。
【図8】ページテーブルを示した図である。
【発明を実施するための最良の形態】
【0017】
図1は、本実施の形態に係るフラッシュメモリシステム1を概略的に示すブロック図である。
【0018】
図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。メモリコントローラ3は、内部バス14を介してフラッシュメモリ2と接続されている。
【0019】
フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続されている。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
【0020】
メモリコントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、SRAM8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(Error Correcting Code)ブロック11と、ROM(Read Only Memory)12とから構成される。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積される。以下、各機能ブロックについて説明する。
【0021】
ホストインターフェースブロック7は、ホストシステム4との間で行われるデータ、アドレス情報、ステータス情報、外部コマンド等の送受信を制御する。つまり、フラッシュメモリシステム1は、ホストインターフェースブロック7を介して、ホストシステム4から供給されるデータ等を取り込む。また、フラッシュメモリシステム1は、ホストインターフェースブロック7を介して、データ等をホストシステム4に供給する。外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
【0022】
ホストインターフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えている。コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタR2には、書き込むデータ又は読み出すデータのセクタ数が書き込まれる。LBAレジスタR3には、書き込み又は読み出しを開始する論理セクタに対応するLBA(Logical Block Address)が書き込まれる。LBAは、512バイトの容量を持った論理セクタに割り当てられたアドレスである。
【0023】
SRAM(Static Random Access Memory)8は、フラッシュメモリ2の制御に必要な情報を一時的に格納するきは揮発性メモリである。フラッシュメモリ2にアクセスするために必要な各種のテーブルは、SRAM8に保持され、SRAM8上で更新される。フラッシュメモリ2にアクセスするために必要なテーブルが、SRAM8に保持されていない場合は、そのテーブルはSRAM8上で作成される。但し、そのテーブルが、フラッシュメモリ2に格納されている場合は、格納されているテーブルがフラッシュメモリ2から読み出され、SRAM8に保持される。上記各種テーブルには、アドレス変換テーブル、検索テーブル、不良ブロックテーブル等が含まれる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。検索テーブルは、空きブロックを検索するためのテーブルである。不良ブロックテーブルは不良ブロックを管理するためのテーブルである。
【0024】
尚、本発明では、ホストシステム4からの最近のアクセス要求より指示された論理ブロックを対象に、その論理ブロックに対応する物理ブロックに関する情報をSRAM8に保持している。
【0025】
バッファ9は、フラッシュメモリ2から読み出したデータ、又はフラッシュメモリ2に書き込むデータを、一時的に保持する揮発性メモリである。
【0026】
フラッシュメモリインターフェースブロック10は、フラッシュメモリ2との間で行われるデータ、アドレス情報、ステータス情報、内部コマンド等の送受信を制御する。ここで、内部コマンドとは、メモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、メモリコントローラ3から与えられる内部コマンドに従って動作する。
【0027】
ECCブロック11は、フラッシュメモリ2に書き込むデータの誤り訂正符号(ECC:Error Correcting Code)を生成する。そして、データは、そのデータの誤り訂正符号と共に、フラッシュメモリ2に格納される。更に、ECCブロック11は、読み出したデータに含まれる誤りを、そのデータの誤り訂正符号に基づいて検出・訂正する。
【0028】
ROM12は、フラッシュメモリ2を制御するために必要なファームウェアを格納するための不揮発性の記憶素子である。尚、フラッシュメモリシステム1を起動させるために必要な最小限のファームウェアだけをROM12に格納し、その他のファームウェアをフラッシュメモリ2に格納するようにしてもよい。
【0029】
マイクロプロセッサ6は、ROM12又はフラッシュメモリ2から、ファームウェアを読み込み、ファームウェアに従って動作する。メモリコントローラ3に含まれる機能ブロックは、マイクロプロセッサ6により制御される。
【0030】
フラッシュメモリ2は、NAND型フラッシュメモリであり、レジスタと、複数のメモリセルが2次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み又は選択されたメモリセルからレジスタへのデータの読み出しが行われる。尚、フラッシュメモリには、SLC(Single Level Cell)タイプのメモリセルで構成されたものと、MLC(Multi Level Cell)タイプのメモリセルで構成されたものがある。
【0031】
NAND型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ単位で行われ、データ消去動作はブロック(物理ブロック)単位で行われる。それぞれの物理ブロックは、複数のページ(物理ページ)で構成され、それぞれの物理ページは、ユーザ領域と冗長領域で構成されている。例えば、1個の物理ページは、4セクタ(2048バイト)のユーザ領域と、64バイトの冗長領域とで構成され、1個の物理ブロックは、64個の物理ページで構成されている。ユーザ領域は、ホストシステム4から与えられるデータを格納するための領域であり、512バイト単位の記憶領域(以下、「セクタ領域」と言う)複数個含む領域として取り扱われる。冗長領域は、誤り訂正符号(ECC:Error Correcting Code)、論理アドレス情報、ブロックステータス(フラグ)等の付加データを格納するための領域である。
【0032】
論理アドレス情報は、当該情報に係る物理ブロックと対応する論理ブロックを特定するための情報である。ブロックステータス(フラグ)は、当該情報に係る物理ブロックが、不良ブロック(正常にデータの書き込み等を行うことができない物理ブロック)であるか否かを示すフラグである。尚、不良ブロックには、初期不良の不良ブロックと後発不良の不良ブロックがある。初期不良の不良ブロックは、出荷前に検出された不良ブロックである。後発不良の不良ブロックは、使用中に生じた不良ブロックである。初期不良の物理ブロックについては、不良ブロックであることを示すブロックステータス(フラグ)が製造メーカによって書き込まれている。また、この初期不良の物理ブロックを示すブロックステータス(フラグ)を、ユーザ領域に書き込んでいる製造メーカもある。不良ブロックか否かの判断基準は、設計の際に決められる。
【0033】
ホストシステム4からフラッシュメモリシステム1への書き込み要求では、フラッシュメモリシステム1が、書き込みコマンドのコマンドコードをコマンドレジスタR1に書き込み、書き込むデータのセクタ数を示す情報をセクタ数レジスタR2に書き込み、書き込みを開始する論理セクタに対応するLBAを示す情報をLBAレジスタR3に書き込む。メモリコントローラ3は、セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて、書き込み要求で指示された論理セクタを特定し、更に、その論理セクタが含まれる論理ブロックを特定する。
【0034】
ホストシステム4側のアドレス空間は、論理セクタ単位で管理されている。それぞれの論理セクタは、1セクタ(512バイト)の領域であり、通し番号であるLBA(Logical Block Address)が割り当てられている。又、複数個の論理セクタで構成された論理ブロックが複数個形成され、それぞれの論理ブロックが、1個又は複数個の物理ブロックに割り当てられる。
【0035】
上記書き込み要求に従って、ホストシステム4から与えられるデータをフラッシュメモリ2に書き込むデータ書き込みでは、特定された論理ブロックに対応する物理ブロック内の空きページ(データが書き込まれていない物理ページ)のうちで、一番小さいページ番号の物理ページから書き込みが開始される。そして、ホストシステム4から与えられるデータは、ページ番号の順番(ページ番号が小さい方から大きい方に向かう順番)で、その物理ブロック内の物理ページに格納されていく。
【0036】
従って、ホストシステム4からの書き込み要求により指示された論理セクタが含まれる論理ブロックが特定されても、その論理ブロックに対応する物理ブロックと、その物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとが特定されなければ、フラッシュメモリ2へのデータの書き込みを開始することができない。
【0037】
書き込み要求に基づいて特定された論理ブロックと対応する物理ブロックは、図2に示したようなアドレス変換テーブルを参照することにより特定することができる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。このテーブルは、論理ブロックに割り当てられている論理ブロック番号(LBN)と物理ブロックの物理ブロックアドレス(PBA)の対応関係を示している。
【0038】
この論理ブロックと物理ブロックの対応関係は、ゾーン単位で管理されることが多い。つまり、複数個の論理ブロックで構成された論理ゾーンが複数個形成され、この論理ゾーン単位でアドレス変換テーブルの作成及び更新が行われる。
【0039】
このアドレス変換テーブルの作成や更新は、通常、SRAM8上で行われる。アドレス変換テーブルは、冗長領域に記憶されている論理アドレス情報に基づいて作成することができる。尚、作成したアドレス変換テーブルをフラッシュメモリ2に保存しておき、必要なときにフラッシュメモリ2から読み出すようにしてもよい。
【0040】
更に、その物理ブロック内の空きページのうちで一番小さいページ番号の物理ページは、物理ページの冗長領域から空きページか否かを示す情報を読み出すことにより特定することができる。この処理は、二分探索木(binary search tree)等の手法を用いれば、効率的に行うことができる。例えば、この処理は、図3に示されているようにして行われる。第1のステップでは、最初のページと最後のページの真ん中にある第1のページの冗長領域から情報が読み出される。第2のステップでは、第1のステップで読み出された情報が空きページであることを示す情報である場合、最初のページと第1のページの真ん中にある第2のページの冗長領域から情報が読み出される。これに対して、第1のステップで読み出された情報が空きページでないことを示す情報である場合、最後のページと第1のページの真ん中にある第3のページの冗長領域から情報が読み出される。第3のステップでは、第1のステップ及び第2のステップで読み出された情報に基づいて、格納している情報が読み出される物理ページが決定される。第1のステップ及び第2のステップで読み出された情報の双方が空きページであることを示す情報である場合、最初のページと第2のページの真ん中にある第4のページの冗長領域から情報が読み出される。第1のステップ及び第2のステップで読み出された情報の双方が空きページでないことを示す情報である場合、最後のページと第3のページの真ん中にある第5のページの冗長領域から情報が読み出される。第1のステップで読み出された情報が空きページであることを示す情報であり、第2のステップで読み出された情報が空きページでないことを示す情報である場合、第1のページと第2のページの真ん中にある第6のページの冗長領域から情報が読み出される。第1のステップで読み出された情報が空きページでないことを示す情報であり、第2のステップで読み出された情報が空きページであることを示す情報である場合、第1のページと第3のページの真ん中にある第7のページの冗長領域から情報が読み出される。この処理は、同様に続けられ、空きページのうちで一番小さいページ番号の物理ページが最終的に特定される。
【0041】
尚、空きページのうちで一番小さいページ番号の物理ページは、データが格納されている物理ページのうちで一番大きいページ番号の物理ページの次のページである。従って、当該一番大きいページ番号の物理ページを特定し、その次のページからデータの書き込みを開始してもよい。データが格納されている物理ページのうちで一番大きいページ番号の物理ページは、空きページのうちで一番小さいページ番号の物理ページの場合と同様な方法で特定することができる。
【0042】
セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて特定される論理セクタのうち、一部の論理セクタが属する論理ブロックとその他の論理セクタが属する論理ブロックが異なる場合、データの書き込み又は読み出しは論理ブロック毎に行われる。例えば、書き込み要求により指示された論理セクタのうち、一部の論理セクタが第1の論理ブロックに属し、その他の論理セクタが第2の論理ブロックに属する場合、第1の論理ブロックに対応する物理ブロックに対する書き込み処理と、第2の論理ブロックに対応する物理ブロックに対する書き込み処理とが別々に行われる。そして、第1の論理ブロックに対応する物理ブロックには、第1の論理ブロックに属する論理セクタに対応するデータが格納され、第2の論理ブロックに対応する物理ブロックには、第2の論理ブロックに属する論理セクタに対応するデータが格納される。
【0043】
本実施形態では、ホストシステム4からのアクセス要求により指示された論理ブロックに関する論理ブロック情報を32個保持できるように、メモリコントローラ3が構成されている。この論理ブロック情報には、アクセス要求により指示された論理ブロックを特定するための論理ブロック番号(LBN)、その論理ブロックに対応する物理ブロックを特定するための物理ブロックアドレス(PBA)及びその物理ブロック内のデータを格納している物理ページのうちで一番大きいページ番号の物理ページを特定するためのページ番号(PN)を含んでいる。
【0044】
図4は、論理ブロック情報を保持するエントリー番号#0〜#31の32個のエントリーを示している。各エントリーには、論理ブロック番号(LBN)、物理ブロックアドレス(PBA)及びページ番号(PN)が保持される。例えば、エントリー番号#0のエントリーには、論理ブロック番号として#1が保持され、物理ブロックアドレスとして#17が保持され、ページ番号として#36が保持されている。従って、LBN#1の論理ブロックは、PBA#17の物理ブロックに対応し、PBA#17の物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページは、PN#36の物理ページであることが分かる。エントリー番号#2のエントリーには、論理ブロック番号として#524が保持され、物理ブロックアドレス(PBA)及びページ番号(PN)に対応する情報は保持されていない。従って、LBN#524の論理ブロックに対応する物理ブロックが無いことが分かる。
【0045】
この論理ブロック情報の保持では、最近のアクセス要求により指示された論理ブロックに関するものが優先される。つまり、ホストシステム4からアクセス要求を受けたときに、そのアクセス要求により指示された論理ブロックに関する論理ブロック情報の優先の度合いが最高になる。論理ブロック情報が新たに保持されるときには、その論理ブロック情報は、32個の論理ブロック情報の中で優先順位が最低の論理ブロック情報と置き換えられる。この優先順位の管理を、図5を参照して説明する。
【0046】
本実施形態では、32個の論理ブロック情報がそれぞれ保持される32個のエントリーの優先順位を管理することにより、32個の論理ブロック情報の優先順位を管理する。図5は、32個のエントリーに関する優先順位を示しており、優先順位が高い方から順番に32個のエントリーのエントリー番号が並べられている。図5では、エントリー番号#10のエントリーの優先順位が一番高く、エントリー番号#22のエントリーの優先順位が二番目に高く、エントリー番号#19のエントリーの優先順位が一番低くなっている。
【0047】
この優先順位は、ホストシステム4からのアクセス要求に基づいて変化する。アクセス要求をホストシステム4から受けたときには、そのアクセス要求により指示された論理ブロック(そのアクセス要求により指示された論理セクタが属する論理ブロック)に対応する論理ブロック情報が、32個のエントリーのうち、いずれかのエントリーに保持されているか否かが判断される。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されている場合は、そのエントリーの優先順位が一番高くなるように優先順位が変更される。例えば、その論理ブロック情報が保持されているエントリーがエントリー番号#7のエントリーであれば、エントリー番号#7のエントリーの優先順位が一番高くなるように優先順位が変更される。つまり、図6に示されているように、エントリー番号#7のエントリーの優先順位が一番高くなり、エントリー番号#10のエントリーの優先順位が二番目に高くなる。又、エントリー番号#11のエントリーの優先順位は、エントリー番号#22のエントリーの優先順位より1順位低い優先順位になる。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていない場合は、指示された論理ブロックに対応する論理ブロック情報が一番低い優先順位のエントリーに書き込まれ、そのエントリーの優先順位が一番高くなるように優先順位が変更される。つまり、図7に示されていように、エントリー番号#19のエントリーの優先順位が一番高くなり、エントリー番号#10のエントリーの優先順位が二番目に高くなる。又、エントリー番号#28のエントリーの優先順位が一番低くなる。
【0048】
上記のような優先順位の管理が行われることにより、ホストシステム4からのアクセス要求により頻繁に指示される論理ブロックに対応する論理ブロック情報は、エントリーに保持され続ける傾向が強くなる。従って、アクセス要求により頻繁に指示される論理ブロックについては、そのほとんどのアクセス要求において、指示された論理ブロックに対応する物理ブロック、及びその物理ブロック内の空きページのうち一番小さいページ番号の物理ページを、エントリーに保持されている論理ブロック情報に基づいて特定することができる。
【0049】
次に、ホストシステム4からのアクセス要求に応答したメモリコントローラ3の動作について説明する。ホストシステム4からアクセス要求を受けたときに、メモリコントローラ3は、エントリーを参照することにより、そのアクセス要求により指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されている否かを判断する。その結果、指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていると判断された場合には、エントリーに保持されている論理ブロック情報に基づいて、指示された論理ブロックに対応する物理ブロック、及びその物理ブロック内の空きページのうち一番小さいページ番号の物理ページを特定する。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていないと判断された場合には、アドレス変換テーブルを参照することにより、指示された論理ブロックに対応する物理ブロックが特定される。更に、二分探索木等の手法を用いることより、その物理ブロック内の空きページのうち一番小さいページ番号の物理ページ、又はその物理ブロック内のデータが格納されている物理ページのうち一番大きいページ番号の物理ページが特定される。このようにして特定された情報に基づいた論理ブロック情報が、一番低い優先順位のエントリーに新たに書き込まれる。
【0050】
次に、メモリコントローラ3は、エントリーに保持されている論理アドレス情報又はエントリーに新たに書き込まれた論理アドレス情報に基づいて、アクセス要求により指示された論理ブロックに対応する物理ブロックにアクセスする。ホストシステム4からのアクセス要求が、データの書き込みを要求するものであった場合は、その物理ブロック内の空きページのうち一番小さいページ番号の物理ページからページ番号の順番で、データの書き込みが行われる。ホストシステム4からのアクセス要求が、データの消去を要求するものであった場合は、その物理ブロックに格納されているデータが消去される。ホストシステム4からのアクセス要求が、データの読み出しを要求するものであった場合は、アクセス要求で指示された論理セクタが含まれる論理ページと対応する物理ページが特定され、その物理ページからデータが読み出される。
【0051】
物理ブロック内の物理ページに格納されている複数ページのデータが、論理ページに割り当てられた通し番号の順番で格納されていない場合、論理ページと物理ページの対応関係を示したページテーブルを参照して、アクセス要求で指示された論理セクタが属する論理ページと対応する物理ページを特定してもよい。図8は、ページテーブルの一例を示している。このページテーブルは、論理ページに割り当てられた通し番号である論理ページ番号(LPN)と物理ページに割り当てられた通し番号である物理ページ番号(PPN)の対応関係を示している。例えば、このページテーブルを参照することにより、LPN#0の論理ページがPPN#0の物理ページに対応し、LPN#6の論理ページがPPN#31の物理ページに対応し、LPN#56の論理ページがPPN#60の物理ページに対応することが分かる。
【0052】
また、物理ブロックにデータを書き込んだときに、その物理ブロックに関するページテーブルも、その物理ブロックに書き込まれるようにしてもよい。例えば、物理ブロックにデータを書き込んだときに、最後のデータが格納された物理ページの次の物理ページにページテーブルが書き込まれるようにしてもよい。このようにページテーブルがれば、ページテーブルは、物理ブロック内のデータ(ページテーブルに関するデータも含む)が格納されている物理ページのうち一番大きいページ番号の物理ページに格納される。従って、論理ブロック情報に基づいて、アクセス要求で指示された論理ブロックに対応する物理ブロックからページテーブルを読み出し、その物理ブロックから読み出されたページテーブルを参照して、その物理ブロックからのデータ読み出しを行ってもよい。尚、物理ブロック内の物理ページに、論理ページの順番で複数ページのデータが格納されている場合には、ページテーブルをその物理ブロックに格納しなくてもよい。従って、論理ブロック情報にページテーブルが格納されているか否かを示す情報が含まれるようにしてもよい。
【0053】
ホストシステム4からのアクセス要求に応答して、データの書き込み又はデータの消去が行われた場合、そのアクセスに応じて論理ブロック情報が更新される。例えば、データの書き込み又はデータの消去に応じて、物理ブロック内のデータが格納されている物理ページのうち一番大きいページ番号の物理ページを示すページ番号が変更される。
【0054】
以上、本発明の実施の形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施の形態にのみ限定する趣旨ではない。本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【0055】
例えば、論理ブロックを複数個の物理ブロックで構成された仮想ブロックに割り当て、論理ブロックと仮想ブロックの対応関係が管理される場合には、論理ブロック情報が、論理ブロックに対応する仮想ブロックを特定するための情報(仮想ブロックを構成する物理ブロックを特定するための情報)を含むようにしてもよい。更に、仮想ブロックを構成するそれぞれの物理ブロック内の物理ページで構成された仮想ページ単位でデータの書き込みを行う場合には、論理ブロック情報が、データの書き込みを開始する仮想ページを特定するための情報を含むようにしてもよい。
【0056】
又、複数個の論理ブロック情報を対象とした優先順位の管理は、その目的を達成することができれば、上述の方法と異なる方法であってもよい。
【符号の説明】
【0057】
1…フラッシュメモリシステム、2…フラッシュメモリ、3…メモリコントローラ、6…マイクロプロセッサ

【特許請求の範囲】
【請求項1】
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理手段と、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御手段と
を備え、
前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くし、
前記論理ブロック情報保持手段は、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する、
ことを特徴とするメモリコントローラ。
【請求項2】
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成手段と、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理手段と、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御手段と
を備え、
前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くし、
前記論理ブロック情報保持手段は、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する、
ことを特徴とするメモリコントローラ。
【請求項3】
請求項1又は2に記載のメモリコントローラと、
このメモリコントローラにより制御される1個又は複数個のフラッシュメモリと
を備えるフラッシュメモリシステム。
【請求項4】
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理ステップと、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御ステップと
を有し、
前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くし、
前記論理ブロック情報保持ステップでは、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する、
ことを特徴とするフラッシュメモリの制御方法。
【請求項5】
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成ステップと、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理ステップと、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御ステップと
を有し、
前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くし、
前記論理ブロック情報保持ステップでは、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する、
ことを特徴とするフラッシュメモリの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−242833(P2011−242833A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−111786(P2010−111786)
【出願日】平成22年5月14日(2010.5.14)
【出願人】(000003067)TDK株式会社 (7,238)
【Fターム(参考)】