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

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

Info

Publication number
JP5093294B2
JP5093294B2 JP2010111786A JP2010111786A JP5093294B2 JP 5093294 B2 JP5093294 B2 JP 5093294B2 JP 2010111786 A JP2010111786 A JP 2010111786A JP 2010111786 A JP2010111786 A JP 2010111786A JP 5093294 B2 JP5093294 B2 JP 5093294B2
Authority
JP
Japan
Prior art keywords
page
block
physical
logical
logical 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.)
Active
Application number
JP2010111786A
Other languages
English (en)
Other versions
JP2011242833A (ja
Inventor
直樹 向田
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 JP2010111786A priority Critical patent/JP5093294B2/ja
Priority to US12/820,200 priority patent/US8316208B2/en
Publication of JP2011242833A publication Critical patent/JP2011242833A/ja
Application granted granted Critical
Publication of JP5093294B2 publication Critical patent/JP5093294B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
フラッシュメモリを用いたメモリシステムでは、通常、論理ブロック単位でホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係が管理されている。論理ブロックは、論理アドレスがそれぞれに割り当てられている複数個の論理セクタで構成されている。そして、論理ブロックが、所定数の物理ブロック(1以上の物理ブロック)に割り当てられる。物理ブロックは、フラッシュメモリにおける消去単位であり、複数個の物理ページで構成され、この物理ページ単位で書き込み、及び読み出しが行われる。
物理ブロック内の各物理ページに対するデータの書き込みは、その物理ページのページ番号が小さい方から順番に行わなければならない。従って、物理ブロックにデータを書き込むときには、書き込み先の物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページが特定される。そして、その物理ページを起点として、ページ番号の小さい方から順番にデータが書き込まれる。
例えば、特許文献1に開示されているように、アドレス変換テーブルに基づいて、論理ブロックと物理ブロックとの対応関係が管理される。更に、アクセスの効率及びアドレス変換テーブルの管理の効率を考慮して、それぞれが複数個の論理ブロックから成るゾーンを形成し、ゾーン毎にアドレス変換テーブルを作成する。そして、使用しているテーブル又は使用される可能性が高いテーブルだけをSRAMに保持する。
又、物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページは、特許文献2に開示されているような方法で特定される。
特開2001−243110号公報 特開2007−323138号公報
特許文献1又は特許文献2に記載されたメモリシステムでは、
特定の論理ブロックがホストシステムからのアクセス要求で頻繁に指定されたとしても、その都度(ホストシステムから、その論理ブロックに対するアクセス要求が与えられる度に)、その論理ブロックと対応する物理ブロックを特定する処理が行われる。つまり、その論理ブロックの論理ブロック番号をその論理ブロックと対応する物理ブロックの物理ブロックアドレスに変換する処理が、その都度行われる。更に、その物理ブロックにデータを書き込むときには、その物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページも特定しなければならない。
従って、アクセス要求で頻繁に指定される論理ブロックについて、上記のような物理ブロック及び物理ページの特定を効率的に行うことができれば、フラッシュメモリに対するアクセスの効率を向上させることができる。
そこで、本発明は、ホストシステムからのアクセス要求により頻繁に指定される論理ブロックに対応する物理ブロックへのアクセスを効率的に行うことを目的とする。
本発明の第1の側面に従うメモリコントローラは、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理手段と、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御手段と
を備える。前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持手段は、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する。
本発明の第2の側面に従うメモリコントローラは、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成手段と、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理手段と、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御手段と
を備える。前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持手段は、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する。
本発明の第3の側面に従うフラッシュメモリシステムは、前記第1又は第2の側面に従うメモリコントローラと、このメモリコントローラにより制御される1個又は複数個のフラッシュメモリとを備える。
本発明の第4の側面に従う、フラッシュメモリの制御方法は、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理ステップと、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御ステップと
を有する。前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持ステップでは、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する。
本発明の第5の側面に従う、フラッシュメモリの制御方法は、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成ステップと、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理ステップと、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御ステップと
を有する。前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第1の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持ステップでは、前記第1の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第1の論理ブロック情報を保持する。
本発明によれば、ホストシステムからのアクセス要求により、そのときまでに指定された論理ブロックについて、それらの論理ブロックに対応する物理ブロックにアクセスするための情報を保持するようにしたので、アクセス要求により頻繁に指定される論理ブロックに対応する物理ブロックへのアクセスを効率的に行うことができる。
本発明の実施の形態に係るフラッシュメモリシステムのブロック図である。 アドレス変換テーブルを示した図である。 物理ブロック内の空きページのうちで一番小さいページ番号の物理ページを探す処理を示した図である。 論理ブロック情報が保持されるエントリーを示した図である。 エントリーの優先順位を示した図である。 エントリーの優先順位を示した図である。 エントリーの優先順位を示した図である。 ページテーブルを示した図である。
図1は、本実施の形態に係るフラッシュメモリシステム1を概略的に示すブロック図である。
図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と、ECC(Error Correcting Code)ブロック11と、ROM(Read Only Memory)12とから構成される。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積される。以下、各機能ブロックについて説明する。
ホストインターフェースブロック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に保持される。上記各種テーブルには、アドレス変換テーブル、検索テーブル、不良ブロックテーブル等が含まれる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。検索テーブルは、空きブロックを検索するためのテーブルである。不良ブロックテーブルは不良ブロックを管理するためのテーブルである。
尚、本発明では、ホストシステム4からの最近のアクセス要求より指示された論理ブロックを対象に、その論理ブロックに対応する物理ブロックに関する情報をSRAM8に保持している。
バッファ9は、フラッシュメモリ2から読み出したデータ、又はフラッシュメモリ2に書き込むデータを、一時的に保持する揮発性メモリである。
フラッシュメモリインターフェースブロック10は、フラッシュメモリ2との間で行われるデータ、アドレス情報、ステータス情報、内部コマンド等の送受信を制御する。ここで、内部コマンドとは、メモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、メモリコントローラ3から与えられる内部コマンドに従って動作する。
ECCブロック11は、フラッシュメモリ2に書き込むデータの誤り訂正符号(ECC:Error Correcting Code)を生成する。そして、データは、そのデータの誤り訂正符号と共に、フラッシュメモリ2に格納される。更に、ECCブロック11は、読み出したデータに含まれる誤りを、そのデータの誤り訂正符号に基づいて検出・訂正する。
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から与えられるデータを格納するための領域であり、512バイト単位の記憶領域(以下、「セクタ領域」と言う)複数個含む領域として取り扱われる。冗長領域は、誤り訂正符号(ECC:Error Correcting Code)、論理アドレス情報、ブロックステータス(フラグ)等の付加データを格納するための領域である。
論理アドレス情報は、当該情報に係る物理ブロックと対応する論理ブロックを特定するための情報である。ブロックステータス(フラグ)は、当該情報に係る物理ブロックが、不良ブロック(正常にデータの書き込み等を行うことができない物理ブロック)であるか否かを示すフラグである。尚、不良ブロックには、初期不良の不良ブロックと後発不良の不良ブロックがある。初期不良の不良ブロックは、出荷前に検出された不良ブロックである。後発不良の不良ブロックは、使用中に生じた不良ブロックである。初期不良の物理ブロックについては、不良ブロックであることを示すブロックステータス(フラグ)が製造メーカによって書き込まれている。また、この初期不良の物理ブロックを示すブロックステータス(フラグ)を、ユーザ領域に書き込んでいる製造メーカもある。不良ブロックか否かの判断基準は、設計の際に決められる。
ホストシステム4からフラッシュメモリシステム1への書き込み要求では、フラッシュメモリシステム1が、書き込みコマンドのコマンドコードをコマンドレジスタR1に書き込み、書き込むデータのセクタ数を示す情報をセクタ数レジスタR2に書き込み、書き込みを開始する論理セクタに対応するLBAを示す情報をLBAレジスタR3に書き込む。メモリコントローラ3は、セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて、書き込み要求で指示された論理セクタを特定し、更に、その論理セクタが含まれる論理ブロックを特定する。
ホストシステム4側のアドレス空間は、論理セクタ単位で管理されている。それぞれの論理セクタは、1セクタ(512バイト)の領域であり、通し番号であるLBA(Logical Block Address)が割り当てられている。又、複数個の論理セクタで構成された論理ブロックが複数個形成され、それぞれの論理ブロックが、1個又は複数個の物理ブロックに割り当てられる。
上記書き込み要求に従って、ホストシステム4から与えられるデータをフラッシュメモリ2に書き込むデータ書き込みでは、特定された論理ブロックに対応する物理ブロック内の空きページ(データが書き込まれていない物理ページ)のうちで、一番小さいページ番号の物理ページから書き込みが開始される。そして、ホストシステム4から与えられるデータは、ページ番号の順番(ページ番号が小さい方から大きい方に向かう順番)で、その物理ブロック内の物理ページに格納されていく。
従って、ホストシステム4からの書き込み要求により指示された論理セクタが含まれる論理ブロックが特定されても、その論理ブロックに対応する物理ブロックと、その物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとが特定されなければ、フラッシュメモリ2へのデータの書き込みを開始することができない。
書き込み要求に基づいて特定された論理ブロックと対応する物理ブロックは、図2に示したようなアドレス変換テーブルを参照することにより特定することができる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。このテーブルは、論理ブロックに割り当てられている論理ブロック番号(LBN)と物理ブロックの物理ブロックアドレス(PBA)の対応関係を示している。
この論理ブロックと物理ブロックの対応関係は、ゾーン単位で管理されることが多い。つまり、複数個の論理ブロックで構成された論理ゾーンが複数個形成され、この論理ゾーン単位でアドレス変換テーブルの作成及び更新が行われる。
このアドレス変換テーブルの作成や更新は、通常、SRAM8上で行われる。アドレス変換テーブルは、冗長領域に記憶されている論理アドレス情報に基づいて作成することができる。尚、作成したアドレス変換テーブルをフラッシュメモリ2に保存しておき、必要なときにフラッシュメモリ2から読み出すようにしてもよい。
更に、その物理ブロック内の空きページのうちで一番小さいページ番号の物理ページは、物理ページの冗長領域から空きページか否かを示す情報を読み出すことにより特定することができる。この処理は、二分探索木(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のページの冗長領域から情報が読み出される。この処理は、同様に続けられ、空きページのうちで一番小さいページ番号の物理ページが最終的に特定される。
尚、空きページのうちで一番小さいページ番号の物理ページは、データが格納されている物理ページのうちで一番大きいページ番号の物理ページの次のページである。従って、当該一番大きいページ番号の物理ページを特定し、その次のページからデータの書き込みを開始してもよい。データが格納されている物理ページのうちで一番大きいページ番号の物理ページは、空きページのうちで一番小さいページ番号の物理ページの場合と同様な方法で特定することができる。
セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて特定される論理セクタのうち、一部の論理セクタが属する論理ブロックとその他の論理セクタが属する論理ブロックが異なる場合、データの書き込み又は読み出しは論理ブロック毎に行われる。例えば、書き込み要求により指示された論理セクタのうち、一部の論理セクタが第1の論理ブロックに属し、その他の論理セクタが第2の論理ブロックに属する場合、第1の論理ブロックに対応する物理ブロックに対する書き込み処理と、第2の論理ブロックに対応する物理ブロックに対する書き込み処理とが別々に行われる。そして、第1の論理ブロックに対応する物理ブロックには、第1の論理ブロックに属する論理セクタに対応するデータが格納され、第2の論理ブロックに対応する物理ブロックには、第2の論理ブロックに属する論理セクタに対応するデータが格納される。
本実施形態では、ホストシステム4からのアクセス要求により指示された論理ブロックに関する論理ブロック情報を32個保持できるように、メモリコントローラ3が構成されている。この論理ブロック情報には、アクセス要求により指示された論理ブロックを特定するための論理ブロック番号(LBN)、その論理ブロックに対応する物理ブロックを特定するための物理ブロックアドレス(PBA)及びその物理ブロック内のデータを格納している物理ページのうちで一番大きいページ番号の物理ページを特定するためのページ番号(PN)を含んでいる。
図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の論理ブロックに対応する物理ブロックが無いことが分かる。
この論理ブロック情報の保持では、最近のアクセス要求により指示された論理ブロックに関するものが優先される。つまり、ホストシステム4からアクセス要求を受けたときに、そのアクセス要求により指示された論理ブロックに関する論理ブロック情報の優先の度合いが最高になる。論理ブロック情報が新たに保持されるときには、その論理ブロック情報は、32個の論理ブロック情報の中で優先順位が最低の論理ブロック情報と置き換えられる。この優先順位の管理を、図5を参照して説明する。
本実施形態では、32個の論理ブロック情報がそれぞれ保持される32個のエントリーの優先順位を管理することにより、32個の論理ブロック情報の優先順位を管理する。図5は、32個のエントリーに関する優先順位を示しており、優先順位が高い方から順番に32個のエントリーのエントリー番号が並べられている。図5では、エントリー番号#10のエントリーの優先順位が一番高く、エントリー番号#22のエントリーの優先順位が二番目に高く、エントリー番号#19のエントリーの優先順位が一番低くなっている。
この優先順位は、ホストシステム4からのアクセス要求に基づいて変化する。アクセス要求をホストシステム4から受けたときには、そのアクセス要求により指示された論理ブロック(そのアクセス要求により指示された論理セクタが属する論理ブロック)に対応する論理ブロック情報が、32個のエントリーのうち、いずれかのエントリーに保持されているか否かが判断される。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されている場合は、そのエントリーの優先順位が一番高くなるように優先順位が変更される。例えば、その論理ブロック情報が保持されているエントリーがエントリー番号#7のエントリーであれば、エントリー番号#7のエントリーの優先順位が一番高くなるように優先順位が変更される。つまり、図6に示されているように、エントリー番号#7のエントリーの優先順位が一番高くなり、エントリー番号#10のエントリーの優先順位が二番目に高くなる。又、エントリー番号#11のエントリーの優先順位は、エントリー番号#22のエントリーの優先順位より1順位低い優先順位になる。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていない場合は、指示された論理ブロックに対応する論理ブロック情報が一番低い優先順位のエントリーに書き込まれ、そのエントリーの優先順位が一番高くなるように優先順位が変更される。つまり、図7に示されていように、エントリー番号#19のエントリーの優先順位が一番高くなり、エントリー番号#10のエントリーの優先順位が二番目に高くなる。又、エントリー番号#28のエントリーの優先順位が一番低くなる。
上記のような優先順位の管理が行われることにより、ホストシステム4からのアクセス要求により頻繁に指示される論理ブロックに対応する論理ブロック情報は、エントリーに保持され続ける傾向が強くなる。従って、アクセス要求により頻繁に指示される論理ブロックについては、そのほとんどのアクセス要求において、指示された論理ブロックに対応する物理ブロック、及びその物理ブロック内の空きページのうち一番小さいページ番号の物理ページを、エントリーに保持されている論理ブロック情報に基づいて特定することができる。
次に、ホストシステム4からのアクセス要求に応答したメモリコントローラ3の動作について説明する。ホストシステム4からアクセス要求を受けたときに、メモリコントローラ3は、エントリーを参照することにより、そのアクセス要求により指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されている否かを判断する。その結果、指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていると判断された場合には、エントリーに保持されている論理ブロック情報に基づいて、指示された論理ブロックに対応する物理ブロック、及びその物理ブロック内の空きページのうち一番小さいページ番号の物理ページを特定する。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていないと判断された場合には、アドレス変換テーブルを参照することにより、指示された論理ブロックに対応する物理ブロックが特定される。更に、二分探索木等の手法を用いることより、その物理ブロック内の空きページのうち一番小さいページ番号の物理ページ、又はその物理ブロック内のデータが格納されている物理ページのうち一番大きいページ番号の物理ページが特定される。このようにして特定された情報に基づいた論理ブロック情報が、一番低い優先順位のエントリーに新たに書き込まれる。
次に、メモリコントローラ3は、エントリーに保持されている論理ブロック情報又はエントリーに新たに書き込まれた論理ブロック情報に基づいて、アクセス要求により指示された論理ブロックに対応する物理ブロックにアクセスする。ホストシステム4からのアクセス要求が、データの書き込みを要求するものであった場合は、その物理ブロック内の空きページのうち一番小さいページ番号の物理ページからページ番号の順番で、データの書き込みが行われる。ホストシステム4からのアクセス要求が、データの消去を要求するものであった場合は、その物理ブロックに格納されているデータが消去される。ホストシステム4からのアクセス要求が、データの読み出しを要求するものであった場合は、アクセス要求で指示された論理セクタが含まれる論理ページと対応する物理ページが特定され、その物理ページからデータが読み出される。
物理ブロック内の物理ページに格納されている複数ページのデータが、論理ページに割り当てられた通し番号の順番で格納されていない場合、論理ページと物理ページの対応関係を示したページテーブルを参照して、アクセス要求で指示された論理セクタが属する論理ページと対応する物理ページを特定してもよい。図8は、ページテーブルの一例を示している。このページテーブルは、論理ページに割り当てられた通し番号である論理ページ番号(LPN)と物理ページに割り当てられた通し番号である物理ページ番号(PPN)の対応関係を示している。例えば、このページテーブルを参照することにより、LPN#0の論理ページがPPN#0の物理ページに対応し、LPN#6の論理ページがPPN#31の物理ページに対応し、LPN#56の論理ページがPPN#60の物理ページに対応することが分かる。
また、物理ブロックにデータを書き込んだときに、その物理ブロックに関するページテーブルも、その物理ブロックに書き込まれるようにしてもよい。例えば、物理ブロックにデータを書き込んだときに、最後のデータが格納された物理ページの次の物理ページにページテーブルが書き込まれるようにしてもよい。このようにページテーブルがれば、ページテーブルは、物理ブロック内のデータ(ページテーブルに関するデータも含む)が格納されている物理ページのうち一番大きいページ番号の物理ページに格納される。従って、論理ブロック情報に基づいて、アクセス要求で指示された論理ブロックに対応する物理ブロックからページテーブルを読み出し、その物理ブロックから読み出されたページテーブルを参照して、その物理ブロックからのデータ読み出しを行ってもよい。尚、物理ブロック内の物理ページに、論理ページの順番で複数ページのデータが格納されている場合には、ページテーブルをその物理ブロックに格納しなくてもよい。従って、論理ブロック情報にページテーブルが格納されているか否かを示す情報が含まれるようにしてもよい。
ホストシステム4からのアクセス要求に応答して、データの書き込み又はデータの消去が行われた場合、そのアクセスに応じて論理ブロック情報が更新される。例えば、データの書き込み又はデータの消去に応じて、物理ブロック内のデータが格納されている物理ページのうち一番大きいページ番号の物理ページを示すページ番号が変更される。
以上、本発明の実施の形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施の形態にのみ限定する趣旨ではない。本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば、論理ブロックを複数個の物理ブロックで構成された仮想ブロックに割り当て、論理ブロックと仮想ブロックの対応関係が管理される場合には、論理ブロック情報が、論理ブロックに対応する仮想ブロックを特定するための情報(仮想ブロックを構成する物理ブロックを特定するための情報)を含むようにしてもよい。更に、仮想ブロックを構成するそれぞれの物理ブロック内の物理ページで構成された仮想ページ単位でデータの書き込みを行う場合には、論理ブロック情報が、データの書き込みを開始する仮想ページを特定するための情報を含むようにしてもよい。
又、複数個の論理ブロック情報を対象とした優先順位の管理は、その目的を達成することができれば、上述の方法と異なる方法であってもよい。
1…フラッシュメモリシステム、2…フラッシュメモリ、3…メモリコントローラ、6…マイクロプロセッサ

Claims (5)

  1. ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
    複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係を表すアドレス変換テーブルを管理するブロック管理手段と、
    物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定手段と、
    前記アドレス変換テーブルとは別に、論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を保持するエントリーを所定個数保持する論理ブロック情報保持手段と、
    前記所定個数の論理ブロック情報のエントリーの優先順位を管理する優先順位管理手段と、
    前記アクセス要求より指示された論理セクタを含む論理ブロックに対応する物理ブロックに対するアクセスを制御する制御手段と
    を備え、
    物理ブロックには、ページ番号が小さい方から大きい方に向かう順番でデータが書き込まれるようになっており、
    前記一番小さいページ番号の物理ページを特定するための情報は、前記アドレス変換テーブルには含まれておらず、前記論理ブロック情報に含まれる情報であり、
    前記ホストシステムからアクセス要求を受信した場合、前記制御手段は、
    (A)前記アクセス要求により指示された論理セクタを含む論理ブロックを特定し、
    (B)前記(A)で特定された論理ブロックに対応する第1の論理ブロック情報を保持するエントリーが前記所定個数のエントリーに含まれているか否かを判断し、
    (C)前記(B)の判断の結果が否定的であれば、前記アドレス変換テーブルを参照して、前記(A)で特定された論理ブロックに対応する物理ブロックである対象物理ブロックを特定し、更に、前記対象物理ブロックが有する物理ページの冗長領域から空きページか否かを示す情報を読み出すことにより、前記対象物理ブロック内の空きページのうちページ番号が最も小さい空きページを特定し、前記優先順位管理手段により、優先順位が最も低いエントリーに、当該エントリーが保持している前記論理ブロック情報に代えて、前記第1の論理ブロック情報として、前記対象物理ブロックと空きページの番号とを含んだ論理ブロック情報を保持させ、当該エントリーの優先度を最高とし、
    (D)前記(B)の判断の結果が肯定的であれば、前記優先順位管理手段により、前記第1の論理ブロック情報のエントリーの優先順位を前記所定個数のエントリーのうちで最も高くし、
    (E)前記第1の論理ブロック情報を参照して、前記(A)で特定された論理ブロックに対応する物理ブロックである前記対象物理ブロックに対するアクセスを制御し、
    前記アクセス要求が書き込み要求である場合、前記(E)において、前記制御手段は、前記対象物理ブロックの空きページのうち一番小さいページ番号の物理ページからページ番号の順番でデータを書き込み、その際、前記対象物理ブロック内の物理ページに論理ページの順番で複数ページのデータが格納されていない場合、論理ページの通し番号である論理ページ番号と物理ページの通し番号である物理ページ番号との対応関係を表すテーブルであるページテーブルを、データが最後に書き込まれた物理ページの次の物理ページに書き込み、且つ、前記第1の論理ブロック情報に、前記対象物理ブロックに前記ページテーブルが格納されていることを示す情報を含め、
    前記アクセス要求が読み出し要求である場合、前記(E)において、前記制御手段は、前記対象物理ブロックにおける、前記アクセス要求で指示された論理セクタが含まれる論理ページと対応する物理ページを特定し、その物理ページからデータを読み出し、その際、前記第1の論理ブロック情報に、前記対象物理ブロックに前記ページテーブルが格納されていることを示す情報が含まれている場合、前記対象物理ブロックにおける、前記第1の論理ブロック情報から特定される物理ページから前記ページテーブルを読み出し、前記ページテーブルを参照して、前記対象物理ブロックからデータを読み出す、
    ことを特徴とするメモリコントローラ。
  2. ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
    それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成手段と、
    複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係を表すアドレス変換テーブルを管理するブロック管理手段と、
    複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定手段と、
    前記アドレス変換テーブルとは別に、論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を保持するエントリーを所定個数保持する論理ブロック情報保持手段と、
    前記所定個数の論理ブロック情報のエントリーの優先順位を管理する優先順位管理手段と、
    前記アクセス要求より指示された論理セクタを含む論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御手段と
    を備え、
    仮想ブロックには、ページ番号が小さい方から大きい方に向かう順番でデータが書き込まれるようになっており、
    前記一番小さいページ番号の仮想ページを特定するための情報は、前記アドレス変換テーブルには含まれておらず、前記論理ブロック情報に含まれる情報であり、
    前記ホストシステムからアクセス要求を受信した場合、前記制御手段は、
    (A)前記アクセス要求により指示された論理セクタを含む論理ブロックを特定し、
    (B)前記(A)で特定された論理ブロックに対応する第1の論理ブロック情報を保持するエントリーが前記所定個数のエントリーに含まれているか否かを判断し、
    (C)前記(B)の判断の結果が否定的であれば、前記アドレス変換テーブルを参照して、前記(A)で特定された論理ブロックに対応する仮想ブロックである対象仮想ブロックを特定し、更に、前記対象仮想ブロックが有する物理ページの冗長領域から空きページか否かを示す情報を読み出すことにより、前記対象仮想ブロック内の空きページのうちページ番号が最も小さい空きページを特定し、前記優先順位管理手段により、優先順位が最も低いエントリーに、当該エントリーが保持している前記論理ブロック情報に代えて、前記第1の論理ブロック情報として、前記対象仮想ブロックと空きページの番号とを含んだ論理ブロック情報を保持させ、当該エントリーの優先度を最高とし、
    (D)前記(B)の判断の結果が肯定的であれば、前記優先順位管理手段により、前記第1の論理ブロック情報のエントリーの優先順位を前記所定個数のエントリーのうちで最も高くし、
    (E)前記第1の論理ブロック情報を参照して、前記(A)で特定された論理ブロックに対応する仮想ブロックである前記対象仮想ブロックに対するアクセスを制御し、
    前記アクセス要求が書き込み要求である場合、前記(E)において、前記制御手段は、前記対象仮想ブロックの空きページのうち一番小さいページ番号の物理ページからページ番号の順番でデータを書き込み、その際、前記対象仮想ブロック内の物理ページに論理ページの順番で複数ページのデータが格納されていない場合、論理ページの通し番号である論理ページ番号と物理ページの通し番号である物理ページ番号との対応関係を表すテーブルであるページテーブルを、データが最後に書き込まれた物理ページの次の物理ページに書き込み、且つ、前記第1の論理ブロック情報に、前記対象仮想ブロックに前記ページテーブルが格納されていることを示す情報を含め、
    前記アクセス要求が読み出し要求である場合、前記(E)において、前記制御手段は、前記対象仮想ブロックにおける、前記アクセス要求で指示された論理セクタが含まれる論理ページと対応する物理ページを特定し、その物理ページからデータを読み出し、その際、前記第1の論理ブロック情報に、前記対象仮想ブロックに前記ページテーブルが格納されていることを示す情報が含まれている場合、前記対象仮想ブロックにおける、前記第1の論理ブロック情報から特定される物理ページから前記ページテーブルを読み出し、前記ページテーブルを参照して、前記対象仮想ブロックからデータを読み出す、
    ことを特徴とするメモリコントローラ。
  3. 請求項1又は2に記載のメモリコントローラと、
    このメモリコントローラにより制御される1個又は複数個のフラッシュメモリと
    を備えるフラッシュメモリシステム。
  4. ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
    複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係を表すアドレス変換テーブルを管理するブロック管理ステップと、
    物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定ステップと、
    前記アドレス変換テーブルとは別に、論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を保持するエントリーを所定個数保持する論理ブロック情報保持ステップと、
    前記所定個数の論理ブロック情報のエントリーの優先順位を管理する優先順位管理ステップと、
    前記アクセス要求より指示された論理セクタを含む論理ブロックに対応する物理ブロックに対するアクセスを制御する制御ステップと
    を有し、
    物理ブロックには、ページ番号が小さい方から大きい方に向かう順番でデータが書き込まれるようになっており、
    前記一番小さいページ番号の物理ページを特定するための情報は、前記アドレス変換テーブルには含まれておらず、前記論理ブロック情報に含まれる情報であり、
    前記ホストシステムからアクセス要求を受信した場合、前記制御ステップでは、
    (A)前記アクセス要求により指示された論理セクタを含む論理ブロックを特定し、
    (B)前記(A)で特定された論理ブロックに対応する第1の論理ブロック情報を保持するエントリーが前記所定個数のエントリーに含まれているか否かを判断し、
    (C)前記(B)の判断の結果が否定的であれば、前記アドレス変換テーブルを参照して、前記(A)で特定された論理ブロックに対応する物理ブロックである対象物理ブロックを特定し、更に、前記対象物理ブロックが有する物理ページの冗長領域から空きページか否かを示す情報を読み出すことにより、前記対象物理ブロック内の空きページのうちページ番号が最も小さい空きページを特定し、前記優先順位管理ステップにより、優先順位が最も低いエントリーに、当該エントリーが保持している前記論理ブロック情報に代えて、前記(A)で特定された論理ブロックに対応する第1の論理ブロック情報として、前記対象物理ブロックと空きページの番号とを含んだ論理ブロック情報を保持させ、当該エントリーの優先度を最高とし、
    (D)前記(B)の判断の結果が肯定的であれば、前記優先順位管理ステップにより、前記第1の論理ブロック情報のエントリーの優先順位を前記所定個数のエントリーのうちで最も高くし、
    (E)前記第1の論理ブロック情報を参照して、前記(A)で特定された論理ブロックに対応する物理ブロックである前記対象物理ブロックに対するアクセスを制御し、
    前記アクセス要求が書き込み要求である場合、前記(E)において、前記制御ステップでは、前記対象物理ブロックの空きページのうち一番小さいページ番号の物理ページからページ番号の順番でデータを書き込み、その際、前記対象物理ブロック内の物理ページに論理ページの順番で複数ページのデータが格納されていない場合、論理ページの通し番号である論理ページ番号と物理ページの通し番号である物理ページ番号との対応関係を表すテーブルであるページテーブルを、データが最後に書き込まれた物理ページの次の物理ページに書き込み、且つ、前記第1の論理ブロック情報に、前記対象物理ブロックに前記ページテーブルが格納されていることを示す情報を含め、
    前記アクセス要求が読み出し要求である場合、前記(E)において、前記制御ステップでは、前記対象物理ブロックにおける、前記アクセス要求で指示された論理セクタが含まれる論理ページと対応する物理ページを特定し、その物理ページからデータを読み出し、その際、前記第1の論理ブロック情報に、前記対象物理ブロックに前記ページテーブルが格納されていることを示す情報が含まれている場合、前記対象物理ブロックにおける、前記第1の論理ブロック情報から特定される物理ページから前記ページテーブルを読み出し、前記ページテーブルを参照して、前記対象物理ブロックからデータを読み出す、
    ことを特徴とするフラッシュメモリの制御方法。
  5. ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
    それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成ステップと、
    複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係を表すアドレス変換テーブルを管理するブロック管理ステップと、
    複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定ステップと、
    前記アドレス変換テーブルとは別に、論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を保持するエントリーを所定個数保持する論理ブロック情報保持ステップと、
    前記所定個数の論理ブロック情報のエントリーの優先順位を管理する優先順位管理ステップと、
    前記アクセス要求より指示された論理セクタを含む論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御ステップと
    を有し、
    仮想ブロックには、ページ番号が小さい方から大きい方に向かう順番でデータが書き込まれるようになっており、
    前記一番小さいページ番号の仮想ページを特定するための情報は、前記アドレス変換テーブルには含まれておらず、前記論理ブロック情報に含まれる情報であり、
    前記ホストシステムからアクセス要求を受信した場合、前記制御ステップでは、
    (A)前記アクセス要求により指示された論理セクタを含む論理ブロックを特定し、
    (B)前記(A)で特定された論理ブロックに対応する第1の論理ブロック情報を保持するエントリーが前記所定個数のエントリーに含まれているか否かを判断し、
    (C)前記(B)の判断の結果が否定的であれば、前記アドレス変換テーブルを参照して、前記(A)で特定された論理ブロックに対応する仮想ブロックである対象仮想ブロックを特定し、更に、前記対象仮想ブロックが有する物理ページの冗長領域から空きページか否かを示す情報を読み出すことにより、前記対象仮想ブロック内の空きページのうちページ番号が最も小さい空きページを特定し、前記優先順位管理ステップにより、優先順位が最も低いエントリーに、当該エントリーが保持している前記論理ブロック情報に代えて、前記第1の論理ブロック情報として、前記対象仮想ブロックと空きページの番号とを含んだ論理ブロック情報を保持させ、当該エントリーの優先度を最高とし、
    (D)前記(B)の判断の結果が肯定的であれば、前記優先順位管理ステップにより、前記第1の論理ブロック情報のエントリーの優先順位を前記所定個数のエントリーのうちで最も高くし、
    (E)前記第1の論理ブロック情報を参照して、前記(A)で特定された論理ブロックに対応する仮想ブロックである前記対象仮想ブロックに対するアクセスを制御し、
    前記アクセス要求が書き込み要求である場合、前記(E)において、前記制御ステップでは、前記対象仮想ブロックの空きページのうち一番小さいページ番号の物理ページからページ番号の順番でデータを書き込み、その際、前記対象仮想ブロック内の物理ページに論理ページの順番で複数ページのデータが格納されていない場合、論理ページの通し番号である論理ページ番号と物理ページの通し番号である物理ページ番号との対応関係を表すテーブルであるページテーブルを、データが最後に書き込まれた物理ページの次の物理ページに書き込み、且つ、前記第1の論理ブロック情報に、前記対象仮想ブロックに前記ページテーブルが格納されていることを示す情報を含め、
    前記アクセス要求が読み出し要求である場合、前記(E)において、前記制御ステップでは、前記対象仮想ブロックにおける、前記アクセス要求で指示された論理セクタが含まれる論理ページと対応する物理ページを特定し、その物理ページからデータを読み出し、その際、前記第1の論理ブロック情報に、前記対象仮想ブロックに前記ページテーブルが格納されていることを示す情報が含まれている場合、前記対象仮想ブロックにおける、前記第1の論理ブロック情報から特定される物理ページから前記ページテーブルを読み出し、前記ページテーブルを参照して、前記対象仮想ブロックからデータを読み出す、
    ことを特徴とするフラッシュメモリの制御方法。
JP2010111786A 2010-05-14 2010-05-14 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Active JP5093294B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010111786A JP5093294B2 (ja) 2010-05-14 2010-05-14 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US12/820,200 US8316208B2 (en) 2010-05-14 2010-06-22 Memory controller, flash memory system with memory controller, and method of controlling flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010111786A JP5093294B2 (ja) 2010-05-14 2010-05-14 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2011242833A JP2011242833A (ja) 2011-12-01
JP5093294B2 true JP5093294B2 (ja) 2012-12-12

Family

ID=44912747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010111786A Active JP5093294B2 (ja) 2010-05-14 2010-05-14 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Country Status (2)

Country Link
US (1) US8316208B2 (ja)
JP (1) JP5093294B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2965318B1 (en) * 2013-03-07 2018-05-02 Charles I. Peddle High speed flash controllers
US9158678B2 (en) * 2013-03-13 2015-10-13 Kabushiki Kaisha Toshiba Memory address management system and method
KR20160112135A (ko) 2015-03-18 2016-09-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10235198B2 (en) * 2016-02-24 2019-03-19 Samsung Electronics Co., Ltd. VM-aware FTL design for SR-IOV NVME SSD
CN109491927B (zh) * 2018-11-06 2023-02-03 镕铭微电子(济南)有限公司 数据存储、读取方法、装置及电子设备
JP7102482B2 (ja) * 2020-10-23 2022-07-19 キオクシア株式会社 メモリシステムおよび制御方法
US11599305B2 (en) * 2021-05-11 2023-03-07 Western Digital Technologies, Inc. Data storage device using predefined data segments for logical address mapping
US11657848B1 (en) 2022-02-24 2023-05-23 Western Digital Technologies, Inc. Data access and logical mapping for magnetic disks

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2645347B2 (ja) * 1988-08-16 1997-08-25 工業技術院長 平行x線用露光マスク
JP2001243110A (ja) * 1999-12-20 2001-09-07 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
JP4233213B2 (ja) * 2000-12-27 2009-03-04 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US7617352B2 (en) 2000-12-27 2009-11-10 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
JP4316824B2 (ja) * 2001-05-31 2009-08-19 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6976123B2 (en) * 2002-12-30 2005-12-13 Micron Technology, Inc. Priority resolver and “near match” detection circuit
JP4513782B2 (ja) 2006-05-30 2010-07-28 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4687720B2 (ja) * 2008-01-30 2011-05-25 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5374075B2 (ja) * 2008-06-06 2013-12-25 エイチジーエスティーネザーランドビーブイ ディスク装置及びその制御方法
JP4632180B2 (ja) * 2008-10-15 2011-02-16 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4666080B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Also Published As

Publication number Publication date
JP2011242833A (ja) 2011-12-01
US20110283052A1 (en) 2011-11-17
US8316208B2 (en) 2012-11-20

Similar Documents

Publication Publication Date Title
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5093294B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
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
US8407397B2 (en) Block management method for flash memory and controller and storage system using the same
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
JP4666080B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP2009086738A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4153535B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4710918B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4952742B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012068764A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP4952741B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4636046B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP6260395B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP4569554B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP7030636B2 (ja) メモリシステムおよびその制御方法
JP2008176606A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120821

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120903

R150 Certificate of patent or registration of utility model

Ref document number: 5093294

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150928

Year of fee payment: 3