(57)【要約】【課題】アクセス要求により頻繁に指定される論理ブロックに対応する物理ブロックへのアクセスを効率的に行う。【解決手段】アクセス要求により、そのときまでに指定された論理ブロックについて、その論理ブロックに対応する物理ブロックにアクセスするための論理ブロック情報が所定個数保持される。この論理ブロック情報の保持では、優先順位の高い論理ブロック情報が優先順位の低い論理ブロック情報より優先される。この優先順位の管理では、アクセス要求により頻繁に指定される論理ブロックに対応する論理ブロック情報の優先順位が高くなる。アクセス要求を受けたときに、そのアクセス要求により指定された論理ブロックに対応する論理ブロック情報が保持されていれば、その保持されている論理ブロック情報に基づいて指定された論理ブロックに対応する物理ブロックへのアクセスが行われる。【選択図】図７
2011242833.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理手段と、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御手段と
を備え、
前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第１の論理ブロック情報の優先順位を最も高くし、
前記論理ブロック情報保持手段は、前記第１の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第１の論理ブロック情報を保持する、
ことを特徴とするメモリコントローラ。
【請求項２】
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成手段と、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理手段と、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御手段と
を備え、
前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第１の論理ブロック情報の優先順位を最も高くし、
前記論理ブロック情報保持手段は、前記第１の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第１の論理ブロック情報を保持する、
ことを特徴とするメモリコントローラ。
【請求項３】
請求項１又は２に記載のメモリコントローラと、
このメモリコントローラにより制御される１個又は複数個のフラッシュメモリと
を備えるフラッシュメモリシステム。
【請求項４】
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理ステップと、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御ステップと
を有し、
前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第１の論理ブロック情報の優先順位を最も高くし、
前記論理ブロック情報保持ステップでは、前記第１の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第１の論理ブロック情報を保持する、
ことを特徴とするフラッシュメモリの制御方法。
【請求項５】
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成ステップと、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理ステップと、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御ステップと
を有し、
前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第１の論理ブロック情報の優先順位を最も高くし、
前記論理ブロック情報保持ステップでは、前記第１の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第１の論理ブロック情報を保持する、
ことを特徴とするフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
フラッシュメモリを用いたメモリシステムでは、通常、論理ブロック単位でホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係が管理されている。論理ブロックは、論理アドレスがそれぞれに割り当てられている複数個の論理セクタで構成されている。そして、論理ブロックが、所定数の物理ブロック（１以上の物理ブロック）に割り当てられる。物理ブロックは、フラッシュメモリにおける消去単位であり、複数個の物理ページで構成され、この物理ページ単位で書き込み、及び読み出しが行われる。
【０００３】
物理ブロック内の各物理ページに対するデータの書き込みは、その物理ページのページ番号が小さい方から順番に行わなければならない。従って、物理ブロックにデータを書き込むときには、書き込み先の物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページが特定される。そして、その物理ページを起点として、ページ番号の小さい方から順番にデータが書き込まれる。
【０００４】
例えば、特許文献１に開示されているように、アドレス変換テーブルに基づいて、論理ブロックと物理ブロックとの対応関係が管理される。更に、アクセスの効率及びアドレス変換テーブルの管理の効率を考慮して、それぞれが複数個の論理ブロックから成るゾーンを形成し、ゾーン毎にアドレス変換テーブルを作成する。そして、使用しているテーブル又は使用される可能性が高いテーブルだけをＳＲＡＭに保持する。
【０００５】
又、物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページは、特許文献２に開示されているような方法で特定される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２４３１１０号公報
【特許文献２】特開２００７−３２３１３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１又は特許文献２に記載されたメモリシステムでは、
特定の論理ブロックがホストシステムからのアクセス要求で頻繁に指定されたとしても、その都度（ホストシステムから、その論理ブロックに対するアクセス要求が与えられる度に）、その論理ブロックと対応する物理ブロックを特定する処理が行われる。つまり、その論理ブロックの論理ブロック番号をその論理ブロックと対応する物理ブロックの物理ブロックアドレスに変換する処理が、その都度行われる。更に、その物理ブロックにデータを書き込むときには、その物理ブロック内のデータが書き込まれていない物理ページのうちで、一番小さいページ番号の物理ページも特定しなければならない。
【０００８】
従って、アクセス要求で頻繁に指定される論理ブロックについて、上記のような物理ブロック及び物理ページの特定を効率的に行うことができれば、フラッシュメモリに対するアクセスの効率を向上させることができる。
【０００９】
そこで、本発明は、ホストシステムからのアクセス要求により頻繁に指定される論理ブロックに対応する物理ブロックへのアクセスを効率的に行うことを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の側面に従うメモリコントローラは、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理手段と、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御手段と
を備える。前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第１の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持手段は、前記第１の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第１の論理ブロック情報を保持する。
【００１１】
本発明の第２の側面に従うメモリコントローラは、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成手段と、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理手段と、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定手段と、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持手段と、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理手段と、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定手段と、
前記論理ブロック情報保持手段に保持されている前記論理ブロック情報を参照して、前記論理ブロック特定手段により特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御手段と
を備える。前記論理ブロック特定手段が論理ブロックを特定したときに、前記優先順位管理手段は、当該特定された論理ブロックに対応する前記論理ブロック情報である第１の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持手段は、前記第１の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第１の論理ブロック情報を保持する。
【００１２】
本発明の第３の側面に従うフラッシュメモリシステムは、前記第１又は第２の側面に従うメモリコントローラと、このメモリコントローラにより制御される１個又は複数個のフラッシュメモリとを備える。
【００１３】
本発明の第４の側面に従う、フラッシュメモリの制御方法は、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
複数個の論理セクタで構成された論理ブロックと物理ブロックの対応関係に関する情報を管理するブロック管理ステップと、
物理ブロック内の空きページのうちで一番小さいページ番号の物理ページ又は物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページを特定する物理ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する物理ブロックと当該物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する物理ブロックに対するアクセスを制御する制御ステップと
を有する。前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第１の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持ステップでは、前記第１の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第１の論理ブロック情報を保持する。
【００１４】
本発明の第５の側面に従う、フラッシュメモリの制御方法は、
ホストシステムからのアクセス要求に基づいて、物理ブロック単位でデータ消去が行われ、物理ページ単位でデータ書き込みが行われるフラッシュメモリに対するアクセスを制御する、フラッシュメモリの制御方法であって、
それぞれが複数個の物理ブロックで構成された仮想ブロックを複数個形成する仮想ブロック形成ステップと、
複数個の論理セクタで構成された論理ブロックと前記仮想ブロックの対応関係に関する情報を管理するブロック管理ステップと、
複数個の仮想ページを含む前記仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページ又は前記仮想ブロック内のデータが格納されている仮想ページのうちで一番大きいページ番号の仮想ページを特定する仮想ページ特定ステップと、
論理ブロックに関する情報であって、当該論理ブロックに対応する仮想ブロックと当該仮想ブロック内の空きページのうちで一番小さいページ番号の仮想ページとを特定するための情報を含む論理ブロック情報を所定個数保持する論理ブロック情報保持ステップと、
前記所定個数の論理ブロック情報の優先順位を管理する優先順位管理ステップと、
前記アクセス要求より指示された論理セクタを含む論理ブロックを特定する論理ブロック特定ステップと、
前記論理ブロック情報保持ステップに保持されている前記論理ブロック情報を参照して、前記論理ブロック特定ステップにより特定された論理ブロックに対応する仮想ブロックに対するアクセスを制御する制御ステップと
を有する。前記論理ブロック特定ステップで論理ブロックを特定したときに、前記優先順位管理ステップでは、当該特定された論理ブロックに対応する前記論理ブロック情報である第１の論理ブロック情報の優先順位を最も高くする。前記論理ブロック情報保持ステップでは、前記第１の論理ブロック情報を保持していない場合、優先順位が最も低い前記論理ブロック情報に代えて前記第１の論理ブロック情報を保持する。
【発明の効果】
【００１５】
本発明によれば、ホストシステムからのアクセス要求により、そのときまでに指定された論理ブロックについて、それらの論理ブロックに対応する物理ブロックにアクセスするための情報を保持するようにしたので、アクセス要求により頻繁に指定される論理ブロックに対応する物理ブロックへのアクセスを効率的に行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るフラッシュメモリシステムのブロック図である。
【図２】アドレス変換テーブルを示した図である。
【図３】物理ブロック内の空きページのうちで一番小さいページ番号の物理ページを探す処理を示した図である。
【図４】論理ブロック情報が保持されるエントリーを示した図である。
【図５】エントリーの優先順位を示した図である。
【図６】エントリーの優先順位を示した図である。
【図７】エントリーの優先順位を示した図である。
【図８】ページテーブルを示した図である。
【発明を実施するための最良の形態】
【００１７】
図１は、本実施の形態に係るフラッシュメモリシステム１を概略的に示すブロック図である。
【００１８】
図１に示すように、フラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するメモリコントローラ３とで構成されている。メモリコントローラ３は、内部バス１４を介してフラッシュメモリ２と接続されている。
【００１９】
フラッシュメモリシステム１は、外部バス１３を介してホストシステム４と接続されている。ホストシステム４は、ホストシステム４の全体の動作を制御するためのＣＰＵ（Central Processing Unit）、フラッシュメモリシステム１との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム４は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
【００２０】
メモリコントローラ３は、図１に示すように、マイクロプロセッサ６と、ホストインターフェースブロック７と、ＳＲＡＭ８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（Error Correcting Code）ブロック１１と、ＲＯＭ（Read Only Memory）１２とから構成される。これら機能ブロックによって構成されるメモリコントローラ３は、一つの半導体チップ上に集積される。以下、各機能ブロックについて説明する。
【００２１】
ホストインターフェースブロック７は、ホストシステム４との間で行われるデータ、アドレス情報、ステータス情報、外部コマンド等の送受信を制御する。つまり、フラッシュメモリシステム１は、ホストインターフェースブロック７を介して、ホストシステム４から供給されるデータ等を取り込む。また、フラッシュメモリシステム１は、ホストインターフェースブロック７を介して、データ等をホストシステム４に供給する。外部コマンドとは、ホストシステム４がフラッシュメモリシステム１に対して処理の実行を指示するためのコマンドである。
【００２２】
ホストインターフェースブロック７は、コマンドレジスタＲ１、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３を備えている。コマンドレジスタＲ１、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３には、ホストシステム４から与えられる情報が書き込まれる。コマンドレジスタＲ１には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタＲ２には、書き込むデータ又は読み出すデータのセクタ数が書き込まれる。ＬＢＡレジスタＲ３には、書き込み又は読み出しを開始する論理セクタに対応するＬＢＡ（Logical Block Address）が書き込まれる。ＬＢＡは、５１２バイトの容量を持った論理セクタに割り当てられたアドレスである。
【００２３】
ＳＲＡＭ（Static Random Access Memory）８は、フラッシュメモリ２の制御に必要な情報を一時的に格納するきは揮発性メモリである。フラッシュメモリ２にアクセスするために必要な各種のテーブルは、ＳＲＡＭ８に保持され、ＳＲＡＭ８上で更新される。フラッシュメモリ２にアクセスするために必要なテーブルが、ＳＲＡＭ８に保持されていない場合は、そのテーブルはＳＲＡＭ８上で作成される。但し、そのテーブルが、フラッシュメモリ２に格納されている場合は、格納されているテーブルがフラッシュメモリ２から読み出され、ＳＲＡＭ８に保持される。上記各種テーブルには、アドレス変換テーブル、検索テーブル、不良ブロックテーブル等が含まれる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。検索テーブルは、空きブロックを検索するためのテーブルである。不良ブロックテーブルは不良ブロックを管理するためのテーブルである。
【００２４】
尚、本発明では、ホストシステム４からの最近のアクセス要求より指示された論理ブロックを対象に、その論理ブロックに対応する物理ブロックに関する情報をＳＲＡＭ８に保持している。
【００２５】
バッファ９は、フラッシュメモリ２から読み出したデータ、又はフラッシュメモリ２に書き込むデータを、一時的に保持する揮発性メモリである。
【００２６】
フラッシュメモリインターフェースブロック１０は、フラッシュメモリ２との間で行われるデータ、アドレス情報、ステータス情報、内部コマンド等の送受信を制御する。ここで、内部コマンドとは、メモリコントローラ３がフラッシュメモリ２に処理の実行を指示するためのコマンドであり、フラッシュメモリ２は、メモリコントローラ３から与えられる内部コマンドに従って動作する。
【００２７】
ＥＣＣブロック１１は、フラッシュメモリ２に書き込むデータの誤り訂正符号（ＥＣＣ：Error Correcting Code）を生成する。そして、データは、そのデータの誤り訂正符号と共に、フラッシュメモリ２に格納される。更に、ＥＣＣブロック１１は、読み出したデータに含まれる誤りを、そのデータの誤り訂正符号に基づいて検出・訂正する。
【００２８】
ＲＯＭ１２は、フラッシュメモリ２を制御するために必要なファームウェアを格納するための不揮発性の記憶素子である。尚、フラッシュメモリシステム１を起動させるために必要な最小限のファームウェアだけをＲＯＭ１２に格納し、その他のファームウェアをフラッシュメモリ２に格納するようにしてもよい。
【００２９】
マイクロプロセッサ６は、ＲＯＭ１２又はフラッシュメモリ２から、ファームウェアを読み込み、ファームウェアに従って動作する。メモリコントローラ３に含まれる機能ブロックは、マイクロプロセッサ６により制御される。
【００３０】
フラッシュメモリ２は、ＮＡＮＤ型フラッシュメモリであり、レジスタと、複数のメモリセルが２次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み又は選択されたメモリセルからレジスタへのデータの読み出しが行われる。尚、フラッシュメモリには、ＳＬＣ(Single Level Cell)タイプのメモリセルで構成されたものと、ＭＬＣ(Multi Level Cell)タイプのメモリセルで構成されたものがある。
【００３１】
ＮＡＮＤ型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ単位で行われ、データ消去動作はブロック（物理ブロック）単位で行われる。それぞれの物理ブロックは、複数のページ（物理ページ）で構成され、それぞれの物理ページは、ユーザ領域と冗長領域で構成されている。例えば、１個の物理ページは、４セクタ（２０４８バイト）のユーザ領域と、６４バイトの冗長領域とで構成され、１個の物理ブロックは、６４個の物理ページで構成されている。ユーザ領域は、ホストシステム４から与えられるデータを格納するための領域であり、５１２バイト単位の記憶領域（以下、「セクタ領域」と言う）複数個含む領域として取り扱われる。冗長領域は、誤り訂正符号（ＥＣＣ：Error Correcting Code）、論理アドレス情報、ブロックステータス（フラグ）等の付加データを格納するための領域である。
【００３２】
論理アドレス情報は、当該情報に係る物理ブロックと対応する論理ブロックを特定するための情報である。ブロックステータス（フラグ）は、当該情報に係る物理ブロックが、不良ブロック（正常にデータの書き込み等を行うことができない物理ブロック）であるか否かを示すフラグである。尚、不良ブロックには、初期不良の不良ブロックと後発不良の不良ブロックがある。初期不良の不良ブロックは、出荷前に検出された不良ブロックである。後発不良の不良ブロックは、使用中に生じた不良ブロックである。初期不良の物理ブロックについては、不良ブロックであることを示すブロックステータス（フラグ）が製造メーカによって書き込まれている。また、この初期不良の物理ブロックを示すブロックステータス（フラグ）を、ユーザ領域に書き込んでいる製造メーカもある。不良ブロックか否かの判断基準は、設計の際に決められる。
【００３３】
ホストシステム４からフラッシュメモリシステム１への書き込み要求では、フラッシュメモリシステム１が、書き込みコマンドのコマンドコードをコマンドレジスタＲ１に書き込み、書き込むデータのセクタ数を示す情報をセクタ数レジスタＲ２に書き込み、書き込みを開始する論理セクタに対応するＬＢＡを示す情報をＬＢＡレジスタＲ３に書き込む。メモリコントローラ３は、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３に書き込まれた情報に基づいて、書き込み要求で指示された論理セクタを特定し、更に、その論理セクタが含まれる論理ブロックを特定する。
【００３４】
ホストシステム４側のアドレス空間は、論理セクタ単位で管理されている。それぞれの論理セクタは、１セクタ（５１２バイト）の領域であり、通し番号であるＬＢＡ（Logical Block Address）が割り当てられている。又、複数個の論理セクタで構成された論理ブロックが複数個形成され、それぞれの論理ブロックが、１個又は複数個の物理ブロックに割り当てられる。
【００３５】
上記書き込み要求に従って、ホストシステム４から与えられるデータをフラッシュメモリ２に書き込むデータ書き込みでは、特定された論理ブロックに対応する物理ブロック内の空きページ（データが書き込まれていない物理ページ）のうちで、一番小さいページ番号の物理ページから書き込みが開始される。そして、ホストシステム４から与えられるデータは、ページ番号の順番（ページ番号が小さい方から大きい方に向かう順番）で、その物理ブロック内の物理ページに格納されていく。
【００３６】
従って、ホストシステム４からの書き込み要求により指示された論理セクタが含まれる論理ブロックが特定されても、その論理ブロックに対応する物理ブロックと、その物理ブロック内の空きページのうちで一番小さいページ番号の物理ページとが特定されなければ、フラッシュメモリ２へのデータの書き込みを開始することができない。
【００３７】
書き込み要求に基づいて特定された論理ブロックと対応する物理ブロックは、図２に示したようなアドレス変換テーブルを参照することにより特定することができる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。このテーブルは、論理ブロックに割り当てられている論理ブロック番号（ＬＢＮ）と物理ブロックの物理ブロックアドレス（ＰＢＡ）の対応関係を示している。
【００３８】
この論理ブロックと物理ブロックの対応関係は、ゾーン単位で管理されることが多い。つまり、複数個の論理ブロックで構成された論理ゾーンが複数個形成され、この論理ゾーン単位でアドレス変換テーブルの作成及び更新が行われる。
【００３９】
このアドレス変換テーブルの作成や更新は、通常、ＳＲＡＭ８上で行われる。アドレス変換テーブルは、冗長領域に記憶されている論理アドレス情報に基づいて作成することができる。尚、作成したアドレス変換テーブルをフラッシュメモリ２に保存しておき、必要なときにフラッシュメモリ２から読み出すようにしてもよい。
【００４０】
更に、その物理ブロック内の空きページのうちで一番小さいページ番号の物理ページは、物理ページの冗長領域から空きページか否かを示す情報を読み出すことにより特定することができる。この処理は、二分探索木（binary search tree）等の手法を用いれば、効率的に行うことができる。例えば、この処理は、図３に示されているようにして行われる。第１のステップでは、最初のページと最後のページの真ん中にある第１のページの冗長領域から情報が読み出される。第２のステップでは、第１のステップで読み出された情報が空きページであることを示す情報である場合、最初のページと第１のページの真ん中にある第２のページの冗長領域から情報が読み出される。これに対して、第１のステップで読み出された情報が空きページでないことを示す情報である場合、最後のページと第１のページの真ん中にある第３のページの冗長領域から情報が読み出される。第３のステップでは、第１のステップ及び第２のステップで読み出された情報に基づいて、格納している情報が読み出される物理ページが決定される。第１のステップ及び第２のステップで読み出された情報の双方が空きページであることを示す情報である場合、最初のページと第２のページの真ん中にある第４のページの冗長領域から情報が読み出される。第１のステップ及び第２のステップで読み出された情報の双方が空きページでないことを示す情報である場合、最後のページと第３のページの真ん中にある第５のページの冗長領域から情報が読み出される。第１のステップで読み出された情報が空きページであることを示す情報であり、第２のステップで読み出された情報が空きページでないことを示す情報である場合、第１のページと第２のページの真ん中にある第６のページの冗長領域から情報が読み出される。第１のステップで読み出された情報が空きページでないことを示す情報であり、第２のステップで読み出された情報が空きページであることを示す情報である場合、第１のページと第３のページの真ん中にある第７のページの冗長領域から情報が読み出される。この処理は、同様に続けられ、空きページのうちで一番小さいページ番号の物理ページが最終的に特定される。
【００４１】
尚、空きページのうちで一番小さいページ番号の物理ページは、データが格納されている物理ページのうちで一番大きいページ番号の物理ページの次のページである。従って、当該一番大きいページ番号の物理ページを特定し、その次のページからデータの書き込みを開始してもよい。データが格納されている物理ページのうちで一番大きいページ番号の物理ページは、空きページのうちで一番小さいページ番号の物理ページの場合と同様な方法で特定することができる。
【００４２】
セクタ数レジスタＲ２及びＬＢＡレジスタＲ３に書き込まれた情報に基づいて特定される論理セクタのうち、一部の論理セクタが属する論理ブロックとその他の論理セクタが属する論理ブロックが異なる場合、データの書き込み又は読み出しは論理ブロック毎に行われる。例えば、書き込み要求により指示された論理セクタのうち、一部の論理セクタが第１の論理ブロックに属し、その他の論理セクタが第２の論理ブロックに属する場合、第１の論理ブロックに対応する物理ブロックに対する書き込み処理と、第２の論理ブロックに対応する物理ブロックに対する書き込み処理とが別々に行われる。そして、第１の論理ブロックに対応する物理ブロックには、第１の論理ブロックに属する論理セクタに対応するデータが格納され、第２の論理ブロックに対応する物理ブロックには、第２の論理ブロックに属する論理セクタに対応するデータが格納される。
【００４３】
本実施形態では、ホストシステム４からのアクセス要求により指示された論理ブロックに関する論理ブロック情報を３２個保持できるように、メモリコントローラ３が構成されている。この論理ブロック情報には、アクセス要求により指示された論理ブロックを特定するための論理ブロック番号（ＬＢＮ）、その論理ブロックに対応する物理ブロックを特定するための物理ブロックアドレス（ＰＢＡ）及びその物理ブロック内のデータを格納している物理ページのうちで一番大きいページ番号の物理ページを特定するためのページ番号（ＰＮ）を含んでいる。
【００４４】
図４は、論理ブロック情報を保持するエントリー番号＃０〜＃３１の３２個のエントリーを示している。各エントリーには、論理ブロック番号（ＬＢＮ）、物理ブロックアドレス（ＰＢＡ）及びページ番号（ＰＮ）が保持される。例えば、エントリー番号＃０のエントリーには、論理ブロック番号として＃１が保持され、物理ブロックアドレスとして＃１７が保持され、ページ番号として＃３６が保持されている。従って、ＬＢＮ＃１の論理ブロックは、ＰＢＡ＃１７の物理ブロックに対応し、ＰＢＡ＃１７の物理ブロック内のデータが格納されている物理ページのうちで一番大きいページ番号の物理ページは、ＰＮ＃３６の物理ページであることが分かる。エントリー番号＃２のエントリーには、論理ブロック番号として＃５２４が保持され、物理ブロックアドレス（ＰＢＡ）及びページ番号（ＰＮ）に対応する情報は保持されていない。従って、ＬＢＮ＃５２４の論理ブロックに対応する物理ブロックが無いことが分かる。
【００４５】
この論理ブロック情報の保持では、最近のアクセス要求により指示された論理ブロックに関するものが優先される。つまり、ホストシステム４からアクセス要求を受けたときに、そのアクセス要求により指示された論理ブロックに関する論理ブロック情報の優先の度合いが最高になる。論理ブロック情報が新たに保持されるときには、その論理ブロック情報は、３２個の論理ブロック情報の中で優先順位が最低の論理ブロック情報と置き換えられる。この優先順位の管理を、図５を参照して説明する。
【００４６】
本実施形態では、３２個の論理ブロック情報がそれぞれ保持される３２個のエントリーの優先順位を管理することにより、３２個の論理ブロック情報の優先順位を管理する。図５は、３２個のエントリーに関する優先順位を示しており、優先順位が高い方から順番に３２個のエントリーのエントリー番号が並べられている。図５では、エントリー番号＃１０のエントリーの優先順位が一番高く、エントリー番号＃２２のエントリーの優先順位が二番目に高く、エントリー番号＃１９のエントリーの優先順位が一番低くなっている。
【００４７】
この優先順位は、ホストシステム４からのアクセス要求に基づいて変化する。アクセス要求をホストシステム４から受けたときには、そのアクセス要求により指示された論理ブロック（そのアクセス要求により指示された論理セクタが属する論理ブロック）に対応する論理ブロック情報が、３２個のエントリーのうち、いずれかのエントリーに保持されているか否かが判断される。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されている場合は、そのエントリーの優先順位が一番高くなるように優先順位が変更される。例えば、その論理ブロック情報が保持されているエントリーがエントリー番号＃７のエントリーであれば、エントリー番号＃７のエントリーの優先順位が一番高くなるように優先順位が変更される。つまり、図６に示されているように、エントリー番号＃７のエントリーの優先順位が一番高くなり、エントリー番号＃１０のエントリーの優先順位が二番目に高くなる。又、エントリー番号＃１１のエントリーの優先順位は、エントリー番号＃２２のエントリーの優先順位より１順位低い優先順位になる。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていない場合は、指示された論理ブロックに対応する論理ブロック情報が一番低い優先順位のエントリーに書き込まれ、そのエントリーの優先順位が一番高くなるように優先順位が変更される。つまり、図７に示されていように、エントリー番号＃１９のエントリーの優先順位が一番高くなり、エントリー番号＃１０のエントリーの優先順位が二番目に高くなる。又、エントリー番号＃２８のエントリーの優先順位が一番低くなる。
【００４８】
上記のような優先順位の管理が行われることにより、ホストシステム４からのアクセス要求により頻繁に指示される論理ブロックに対応する論理ブロック情報は、エントリーに保持され続ける傾向が強くなる。従って、アクセス要求により頻繁に指示される論理ブロックについては、そのほとんどのアクセス要求において、指示された論理ブロックに対応する物理ブロック、及びその物理ブロック内の空きページのうち一番小さいページ番号の物理ページを、エントリーに保持されている論理ブロック情報に基づいて特定することができる。
【００４９】
次に、ホストシステム４からのアクセス要求に応答したメモリコントローラ３の動作について説明する。ホストシステム４からアクセス要求を受けたときに、メモリコントローラ３は、エントリーを参照することにより、そのアクセス要求により指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されている否かを判断する。その結果、指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていると判断された場合には、エントリーに保持されている論理ブロック情報に基づいて、指示された論理ブロックに対応する物理ブロック、及びその物理ブロック内の空きページのうち一番小さいページ番号の物理ページを特定する。指示された論理ブロックに対応する論理ブロック情報がエントリーに保持されていないと判断された場合には、アドレス変換テーブルを参照することにより、指示された論理ブロックに対応する物理ブロックが特定される。更に、二分探索木等の手法を用いることより、その物理ブロック内の空きページのうち一番小さいページ番号の物理ページ、又はその物理ブロック内のデータが格納されている物理ページのうち一番大きいページ番号の物理ページが特定される。このようにして特定された情報に基づいた論理ブロック情報が、一番低い優先順位のエントリーに新たに書き込まれる。
【００５０】
次に、メモリコントローラ３は、エントリーに保持されている論理アドレス情報又はエントリーに新たに書き込まれた論理アドレス情報に基づいて、アクセス要求により指示された論理ブロックに対応する物理ブロックにアクセスする。ホストシステム４からのアクセス要求が、データの書き込みを要求するものであった場合は、その物理ブロック内の空きページのうち一番小さいページ番号の物理ページからページ番号の順番で、データの書き込みが行われる。ホストシステム４からのアクセス要求が、データの消去を要求するものであった場合は、その物理ブロックに格納されているデータが消去される。ホストシステム４からのアクセス要求が、データの読み出しを要求するものであった場合は、アクセス要求で指示された論理セクタが含まれる論理ページと対応する物理ページが特定され、その物理ページからデータが読み出される。
【００５１】
物理ブロック内の物理ページに格納されている複数ページのデータが、論理ページに割り当てられた通し番号の順番で格納されていない場合、論理ページと物理ページの対応関係を示したページテーブルを参照して、アクセス要求で指示された論理セクタが属する論理ページと対応する物理ページを特定してもよい。図８は、ページテーブルの一例を示している。このページテーブルは、論理ページに割り当てられた通し番号である論理ページ番号（ＬＰＮ）と物理ページに割り当てられた通し番号である物理ページ番号（ＰＰＮ）の対応関係を示している。例えば、このページテーブルを参照することにより、ＬＰＮ＃０の論理ページがＰＰＮ＃０の物理ページに対応し、ＬＰＮ＃６の論理ページがＰＰＮ＃３１の物理ページに対応し、ＬＰＮ＃５６の論理ページがＰＰＮ＃６０の物理ページに対応することが分かる。
【００５２】
また、物理ブロックにデータを書き込んだときに、その物理ブロックに関するページテーブルも、その物理ブロックに書き込まれるようにしてもよい。例えば、物理ブロックにデータを書き込んだときに、最後のデータが格納された物理ページの次の物理ページにページテーブルが書き込まれるようにしてもよい。このようにページテーブルがれば、ページテーブルは、物理ブロック内のデータ（ページテーブルに関するデータも含む）が格納されている物理ページのうち一番大きいページ番号の物理ページに格納される。従って、論理ブロック情報に基づいて、アクセス要求で指示された論理ブロックに対応する物理ブロックからページテーブルを読み出し、その物理ブロックから読み出されたページテーブルを参照して、その物理ブロックからのデータ読み出しを行ってもよい。尚、物理ブロック内の物理ページに、論理ページの順番で複数ページのデータが格納されている場合には、ページテーブルをその物理ブロックに格納しなくてもよい。従って、論理ブロック情報にページテーブルが格納されているか否かを示す情報が含まれるようにしてもよい。
【００５３】
ホストシステム４からのアクセス要求に応答して、データの書き込み又はデータの消去が行われた場合、そのアクセスに応じて論理ブロック情報が更新される。例えば、データの書き込み又はデータの消去に応じて、物理ブロック内のデータが格納されている物理ページのうち一番大きいページ番号の物理ページを示すページ番号が変更される。
【００５４】
以上、本発明の実施の形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施の形態にのみ限定する趣旨ではない。本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００５５】
例えば、論理ブロックを複数個の物理ブロックで構成された仮想ブロックに割り当て、論理ブロックと仮想ブロックの対応関係が管理される場合には、論理ブロック情報が、論理ブロックに対応する仮想ブロックを特定するための情報（仮想ブロックを構成する物理ブロックを特定するための情報）を含むようにしてもよい。更に、仮想ブロックを構成するそれぞれの物理ブロック内の物理ページで構成された仮想ページ単位でデータの書き込みを行う場合には、論理ブロック情報が、データの書き込みを開始する仮想ページを特定するための情報を含むようにしてもよい。
【００５６】
又、複数個の論理ブロック情報を対象とした優先順位の管理は、その目的を達成することができれば、上述の方法と異なる方法であってもよい。
【符号の説明】
【００５７】
１…フラッシュメモリシステム、２…フラッシュメモリ、３…メモリコントローラ、６…マイクロプロセッサ
【図１】
2011242833.tif 000003
【図２】
2011242833.tif 000004
【図３】
2011242833.tif 000005
【図４】
2011242833.tif 000006
【図５】
2011242833.tif 000007
【図６】
2011242833.tif 000008
【図７】
2011242833.tif 000009
【図８】
2011242833.tif 000010