(57)【要約】【課題】フラッシュメモリにアクセスするときの処理効率を向上させる。【解決手段】  ホストシステムから読出しコマンドと共に供給される論理アドレスとセクタ数で指定される複数セクタの領域を、ステップ１で論理ブロック毎のグループに区分し、ステップ２で最初のグループ内の先頭セクタに対応する物理アドレスを求め、ステップ４で、最初のグループを対象として読出しを開始する。そして、ステップ５において、ステップ４で開始した読出しシーケンス処理の終了を待たずに、次のグループ内の先頭セクタに対応する物理アドレスを求め、ステップ７で、次のグループを対象として読出しを開始する。【選択図】図７
2006155335.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムから読出しコマンドと共に供給される論理アドレスと読出すデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第１の手段と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を管理する第２の手段と、
前記論理ブロックと前記物理ブロックとの対応関係に基づいて、前記グループ内の先頭セクタに対応する前記フラッシュメモリの記憶空間上のページの物理アドレス情報を求める第３の手段と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まるページ数情報とを保持する第４の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出し処理を実行する第５の手段とを備え、
前記第５の手段が処理を実行しているときに、前記第３の手段が処理を実行することができるように構成されていることを特徴とするメモリコントローラ。
【請求項２】
各ページに対する読出し処理が終了する毎に、前記第４の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
各ページに対する読出し処理が終了する毎に、前記第４の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項２に記載のメモリコントローラ。
【請求項４】
各ページに対する読出し処理が終了する毎に、前記第４の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項２又３に記載のメモリコントローラ。
【請求項５】
ホストシステムから書込みコマンドと共に供給される論理アドレスと書込むデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムから供給される複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第６の手段と、
前記フラッシュメモリの記憶空間上の物理ブロックから消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第７の手段と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まる前記フラッシュメモリの記憶空間上のページ数情報とを保持する第８の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、消去状態の同一の物理ブロック内の連続するページに対して順次書込み処理を実行する第９の手段とを備え、
前記第９の手段が処理を実行しているときに、前記第７の手段が処理を実行することができるように構成されていることを特徴とするメモリコントローラ。
【請求項６】
各ページに対する書込み処理が終了する毎に、前記第８の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項５に記載のメモリコントローラ。
【請求項７】
各ページに対する書込み処理が終了する毎に、前記第８の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項６に記載のメモリコントローラ。
【請求項８】
各ページに対する書込み処理が終了する毎に、前記第８の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項６又は７に記載のメモリコントローラ。
【請求項９】
ホストシステムから読出しコマンド若しくは書込みコマンドと共に供給される論理アドレスとアクセスするデータ量を示すセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータ若しくは該ホストシステムから供給される複数セクタ分のデータを、該ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第１０の手段と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を管理する第１１の手段と、
前記論理ブロックと前記物理ブロックとの対応関係に基づいて、前記グループ内の先頭セクタに対応する前記フラッシュメモリ記憶空間上のページの物理アドレス情報を求める第１２の手段と、
消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第１３の手段と、
前記第１２の手段若しくは前記第１３の手段によって求めた物理アドレス情報と前記グループに属するセクタ数に応じて決まるページ数情報とを保持する第１４の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出し処理若しくは書込み処理を実行する第１５の手段とを備え、
前記第１５の手段が処理を実行しているときに、前記第１２の手段若しくは前記第１３の手段が処理を実行することができるように構成されていることを特徴とするメモリコントローラ。
【請求項１０】
各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第１４の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項９に記載のメモリコントローラ。
【請求項１１】
各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第１４の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項１０に記載のメモリコントローラ。
【請求項１２】
各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第１４の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項１０又は１１に記載のメモリコントローラ。
【請求項１３】
請求項１乃至１２のいずれか１項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
【請求項１４】
ホストシステムから読出しコマンドと共に供給される論理アドレスと読出すデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第１の処理と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を示すテーブルを作成する第２の処理と、
前記テーブルを用いて、前記グループ内の先頭セクタに対応する前記フラッシュメモリの記憶空間上のページの物理アドレス情報を求める第３の処理と、
前記物理アドレス情報と、前記グループに属するセクタ数に応じて決まるページ数情報を設定する第４の処理と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出しを行う第５の処理とを含み、
前記第５の処理が実行中であっても、前記第３の処理が開始されるように処理の工程が設定されていることを特徴とするフラッシュメモリの制御方法。
【請求項１５】
各ページに対する読出し処理が終了する毎に、前記第４の処理で設定された前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項１４に記載のフラッシュメモリの制御方法。
【請求項１６】
各ページに対する読出し処理が終了する毎に、前記第４の処理で設定された前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項１５に記載のフラッシュメモリの制御方法。
【請求項１７】
各ページに対する読出し処理が終了する毎に、前記第３の処理で設定された前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項１５又１６に記載のフラッシュメモリの制御方法。
【請求項１８】
ホストシステムから書込みコマンドと共に供給される論理アドレスと書込むデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムから供給される複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第６の処理と、
前記フラッシュメモリの記憶空間上の物理ブロックから消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第７の処理と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まる前記フラッシュメモリの記憶空間上のページ数情報とを設定する第８の処理と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次書込みを行う第９の処理とを含み、
前記第９の処理が実行中であっても、前記第７の処理が開始されるように処理の工程が設定されていることを特徴とするフラッシュメモリの制御方法。
【請求項１９】
各ページに対する書込み処理が終了する毎に、前記第８の処理で設定された前記物理アドレス情報と前記ページ数情報とを、更新することを特徴とする請求項１８に記載のフラッシュメモリの制御方法。
【請求項２０】
各ページに対する書込み処理が終了する毎に、前記第７の処理で設定された前記物理アドレス情報を、次にアクセスするページに対応する情報に更新することを特徴とする請求項１９に記載のフラッシュメモリの制御方法。
【請求項２１】
各ページに対する書込み処理が終了する毎に、前記第７の処理で設定された前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新することを特徴とする請求項１９又は２０に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、及びフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“１”を示すデータが格納されている消去状態から、論理値“０”を示すデータが格納されている書込み状態へと変化することができる。これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去"と称されている。ＮＡＮＤ型フラッシュメモリに対する書込み処理若しくは読出し処理は、ページと称される予め定められた数のメモリセル単位で処理が実行されている。消去処理の単位であるブロックは、複数のページで構成されている。
【０００４】
上述のような構成を有するＮＡＮＤ型フラッシュメモリでは、データの重ね書きを行うことができないため、データの書替えを行う場合には、ブロック消去されている消去済ブロックに新たなデータ（書替え後のデータ）を書込み、古いデータ（書替え前のデータ）が書込まれていたブロックを消去するという処理を行わなければならない。
【０００５】
このようなデータの書替えを行った場合、書替え後のデータは、書替え前のデータと異なるブロックに書込まれる。従って、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内の物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、フラッシュメモリにアクセスする場合には、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。
【０００６】
このアドレス変換テーブルを作成するときの時間的な負担等を軽減するため、特許文献１では、フラッシュメモリ内を複数のゾーンに分割し、各ゾーンに割当てられたブロックを対象にしてアドレス変換テーブルを作成している。
【特許文献１】特開２０００−２８４９９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のように各ゾーンに割当てられたブロックを対象にしてアドレス変換テーブルを作成するようにすれば、アドレス変換テーブルを作成するときの負担は軽減される。しかしながら、フラッシュメモリにアクセスするときは、従来と同様に、その都度、作成したアドレス変換テーブルを用いて、論理ブロックアドレスから物理ブロックアドレスへの変換を行わなければならない。
【０００８】
従って、ホストシステムからの要求に基づいて、複数セクタ分のデータを読出す場合に、それらのデータが、複数の物理ブロックに記憶されているときは、複数回、アドレスの変換処理を行わなければならない。又、このアドレスの変換処理は、フラッシュメモリに対してコマンドやアドレス等を供給する前に行わなければならない。
【０００９】
そこで、本発明は、フラッシュメモリにアクセスするときの処理効率を向上させることができるメモリコントローラ、フラッシュメモリシステム、及び、フラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の第１の観点に係るメモリコントローラは、
ホストシステムから読出しコマンドと共に供給される論理アドレスと読出すデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第１の手段と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を管理する第２の手段と、
前記論理ブロックと前記物理ブロックとの対応関係に基づいて、前記グループ内の先頭セクタに対応する前記フラッシュメモリの記憶空間上のページの物理アドレス情報を求める第３の手段と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まるページ数情報とを保持する第４の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出し処理を実行する第５の手段とを備え、
前記第５の手段が処理を実行しているときに、前記第３の手段が処理を実行することができるように構成されていることを特徴とする。
【００１１】
なお、各ページに対する読出し処理が終了する毎に、前記第４の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
【００１２】
この場合、各ページに対する読出し処理が終了する毎に、前記第４の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
また、各ページに対する読出し処理が終了する毎に、前記第４の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
【００１３】
上記目的を達成するために、本発明の第２の観点に係るメモリコントローラは、
ホストシステムから書込みコマンドと共に供給される論理アドレスと書込むデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムから供給される複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第６の手段と、
前記フラッシュメモリの記憶空間上の物理ブロックから消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第７の手段と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まる前記フラッシュメモリの記憶空間上のページ数情報とを保持する第８の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、消去状態の同一の物理ブロック内の連続するページに対して順次書込み処理を実行する第９の手段とを備え、
前記第９の手段が処理を実行しているときに、前記第７の手段が処理を実行することができるように構成されていることを特徴とする。
【００１４】
なお、各ページに対する書込み処理が終了する毎に、前記第８の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
【００１５】
この場合、各ページに対する書込み処理が終了する毎に、前記第８の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
【００１６】
また、各ページに対する書込み処理が終了する毎に、前記第８の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
【００１７】
上記目的を達成するために、本発明の第３の観点に係るメモリコントローラは、
ホストシステムから読出しコマンド若しくは書込みコマンドと共に供給される論理アドレスとアクセスするデータ量を示すセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータ若しくは該ホストシステムから供給される複数セクタ分のデータを、該ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第１０の手段と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を管理する第１１の手段と、
前記論理ブロックと前記物理ブロックとの対応関係に基づいて、前記グループ内の先頭セクタに対応する前記フラッシュメモリ記憶空間上のページの物理アドレス情報を求める第１２の手段と、
消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第１３の手段と、
前記第１２の手段若しくは前記第１３の手段によって求めた物理アドレス情報と前記グループに属するセクタ数に応じて決まるページ数情報とを保持する第１４の手段と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出し処理若しくは書込み処理を実行する第１５の手段とを備え、
前記第１５の手段が処理を実行しているときに、前記第１２の手段若しくは前記第１３の手段が処理を実行することができるように構成されていることを特徴とする。
【００１８】
なお、各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第１４の手段に保持されている前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
【００１９】
この場合、各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第１４の手段に保持されている前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
【００２０】
また、各ページに対する読出し処理若しくは書込み処理が終了する毎に、前記第１４の手段に保持されている前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
【００２１】
上記目的を達成するために、本発明の第４の観点に係るフラッシュメモリシステムは、本発明の第１〜第３の観点に係るメモリコントローラとフラッシュメモリとを備えることを特徴とする。
【００２２】
上記目的を達成するために、本発明の第５の観点に係るフラッシュメモリの制御方法は、
ホストシステムから読出しコマンドと共に供給される論理アドレスと読出すデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムに対して送出する複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第１の処理と、
前記論理ブロックと前記フラッシュメモリの記憶空間上の物理ブロックとの対応関係を示すテーブルを作成する第２の処理と、
前記テーブルを用いて、前記グループ内の先頭セクタに対応する前記フラッシュメモリの記憶空間上のページの物理アドレス情報を求める第３の処理と、
前記物理アドレス情報と、前記グループに属するセクタ数に応じて決まるページ数情報を設定する第４の処理と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次読出しを行う第５の処理とを含み、
前記第５の処理が実行中であっても、前記第３の処理が開始されるように処理の工程が設定されていることを特徴とする。
【００２３】
なお、各ページに対する読出し処理が終了する毎に、前記第４の処理で設定された前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
【００２４】
この場合、各ページに対する読出し処理が終了する毎に、前記第４の処理で設定された前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
【００２５】
また、各ページに対する読出し処理が終了する毎に、前記第３の処理で設定された前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
【００２６】
上記目的を達成するために、本発明の第６の観点に係るフラッシュメモリの制御方法は、
ホストシステムから書込みコマンドと共に供給される論理アドレスと書込むデータ量を示す情報のセクタ数とに基づいて、フラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記論理アドレス及びセクタ数に応じて、前記ホストシステムから供給される複数セクタ分のデータを、前記ホストシステムの記憶空間上の論理ブロック毎のグループに区分する第６の処理と、
前記フラッシュメモリの記憶空間上の物理ブロックから消去状態の物理ブロックを検索し、該消去状態の物理ブロックの物理アドレス情報を求める第７の処理と、
前記物理アドレス情報と前記グループに属するセクタ数に応じて決まる前記フラッシュメモリの記憶空間上のページ数情報とを設定する第８の処理と、
前記物理アドレス情報と前記ページ数情報とに基づいて、同一物理ブロック内の連続するページに対して順次書込みを行う第９の処理とを含み、
前記第９の処理が実行中であっても、前記第７の処理が開始されるように処理の工程が設定されていることを特徴とする。
【００２７】
なお、各ページに対する書込み処理が終了する毎に、前記第８の処理で設定された前記物理アドレス情報と前記ページ数情報とを、更新してもよい。
【００２８】
この場合、各ページに対する書込み処理が終了する毎に、前記第７の処理で設定された前記物理アドレス情報を、次にアクセスするページに対応する情報に更新してもよい。
【００２９】
また、各ページに対する書込み処理が終了する毎に、前記第７の処理で設定された前記ページ数情報を、同一グループ内の未アクセスのページ数に対応する情報に更新してもよい。
【発明の効果】
【００３０】
本発明によれば、フラッシュメモリに対する読出し若しくは書込みの処理と、アクセス先の物理アドレスを求めるアドレスの変換処理や消去済み物理ブロックの検索処理を並行して実行しているので、フラッシュメモリにアクセスするときの処理効率を向上させることができる。
【発明を実施するための最良の形態】
【００３１】
図１は、本発明の実施形態に係るフラッシュメモリシステム１を、概略的に示すブロック図である。
図１に示したように、フラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するメモリコントローラ３で構成されている。又、フラッシュメモリシステム１は、通常、ホストシステム４に着脱可能に装着され、ホストシステム４に対して、一種の外部記憶装置として用いられる。
尚、ホストシステム４としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータや、デジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
以下に、フラッシュメモリ２及びメモリコントローラ３の詳細を説明する。
【００３２】
[フラッシュメモリ２の説明]
このフラッシュメモリシステム１において、データが記憶されるフラッシュメモリ２は、ＮＡＮＤ型フラッシュメモリで構成されている。ＮＡＮＤ型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
【００３３】
ＮＡＮＤ型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替え後のデータ）を書込み、古いデータ（書替え前のデータ）が書込まれていたブロックを消去するという処理を行なっている。
【００３４】
このようなデータの書替えを行なった場合、書替え後のデータは、書替え前と異なるブロックに書込まれるため、ホストシステム４側から与えられる論理アドレスと、フラッシュメモリ２内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ２にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ２に対するアクセスが行なわれる。
【００３５】
図２は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、本実施形態のフラッシュメモリ２では、図２（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイトのユーザー領域と１６バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図２（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザー領域と６４バイトの冗長領域で構成されているものも提供されている。
【００３６】
ここで、ユーザー領域は、主に、ホストシステム４から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するＥＣＣブロックによって生成される。
【００３７】
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。
【００３８】
ブロックステータスは、その物理ブロックが不良ブロック（正常にデータの書込み等を行なうことができない物理ブロック）であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００３９】
次に、フラッシュメモリ２の、回路構成について説明する。一般的なＮＡＮＤ型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００４０】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入したり、フローティングゲートから電荷（電子）を排出したりすることによって、データの書込みや消去を行っている。
【００４１】
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態（書込み状態）が、論理値“０”のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値“１”のデータに対応する。
【００４２】
［メモリコントローラ３の説明］
メモリコントローラ３は、ホストインターフェース制御ブロック５と、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、フラッシュメモリシーケンサブロック１２とから構成される。これら機能ブロックによって構成されるメモリコントローラ３は、１つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
【００４３】
マイクロプロセッサ６は、メモリコントローラ３を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を設定する動作設定レジスタ（図示せず）を備えており、この動作設定レジスタに基づいて、ホストインターフェースブロック７は動作する。
【００４４】
ホストインターフェースブロック７は、ホストシステム４とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム１がホストシステム４に装着されると、フラッシュメモリシステム１とホストシステム４は、外部バス１３を介して相互に接続される。かかる状態において、ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口として、メモリコントローラ３の内部に取り込まれる。フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口として、ホストシステム４に供給される。
【００４５】
さらに、ホストインターフェースブロック７は、ホストシステム４より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ（図示せず）等を有している。
【００４６】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルによって構成されている。
【００４７】
バッファ９は、フラッシュメモリ２から読出したデータ及びフラッシュメモリ２に書込むデータを、一時的に保持する機能ブロックである。すなわち、フラッシュメモリ２から読出したデータは、ホストシステム４の受取準備ができるまで、バッファ９に保持され、フラッシュメモリ２に書込むデータは、フラッシュメモリ２の書込準備ができるまで、バッファ９に保持される。
【００４８】
フラッシュメモリシーケンサブロック１２は、内部コマンドに基づいて、フラッシュメモリ２の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック１２は、複数のレジスタ（図示せず）を備え、この複数のレジスタに、内部コマンドを実行する際に必要な情報が設定される。複数のレジスタに、内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック１２は、その情報に基づいて処理を実行する。
【００４９】
ここで、「内部コマンド」とは、メモリコントローラ３からフラッシュメモリ２に与えられるコマンドであり、ホストシステム４からフラッシュメモリシステム１に与えられるコマンドである「外部コマンド」と区別される。
【００５０】
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスＩＤ情報等の授受を行う機能ブロックである。
【００５１】
ＥＣＣブロック１１は、フラッシュメモリ２に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されているエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
【００５２】
［フラッシュメモリに対するアクセスの説明］
本実施例に係るフラッシュメモリシステム１では、複数の物理ブロックでゾーンを形成し、各ゾーンに対して、予め設定された論理アドレスの領域を割当てている。
【００５３】
図３は、ゾーンを説明するための説明図である。
図３に示した例では、１０２４個の物理ブロックでゾーンが形成されている。又、このゾーンに対して、１０００ブロック分（物理ブロック１０００個分）の論理ブロック空間が割当てられている。
【００５４】
図３では、論理アドレス空間を、セクタ単位で付けた連番であるＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）で示している。
ここで、１セクタの容量がフラッシュメモリ２の１ページの容量と等しく、各物理ブロックが３２個のページで構成されている場合、ゾーン内の各物理ブロックは、論理アドレス空間の３２セクタ分の領域に割当てられる。従って、論理アドレス空間の３２セクタ分の領域を１個の論理ブロックとすれば、１個の物理ブロックに対して１個の論理ブロックが割当てられる。
【００５５】
又、１つのゾーンに割当てられる３２００セクタ分の領域（ＬＢＡ０〜ＬＢＡ３１９９）を、３２セクタ毎に区切った論理ブロックには、連番（ＬＢ０〜ＬＢ９９９）がそれぞれ付けられている（以下、この論理ブロックに付けた連番を論理ブロック連番という）。一方、ゾーンを構成する１０２４個の各物理ブロックにも連番（＃０〜＃１０２３）が付けられている（以下、物理ブロックに付けた連番を物理ブロック連番という）。
【００５６】
例えば、ＬＢＡ０〜ＬＢＡ３１に対応する論理ブロック連番ＬＢ０の論理ブロックが、物理ブロック連番＃３の物理ブロックに割当てられ、ＬＢＡ３２〜ＬＢＡ６３に対応する論理ブロック連番ＬＢ１の論理ブロックが、物理ブロック連番＃１の物理ブロックに割当てられている。ＬＢＡ０〜ＬＢＡ３１に対応する論理ブロック連番ＬＢ０の論理ブロックが、物理ブロック連番＃３の物理ブロックに割当てられ、ＬＢＡ６４〜ＬＢＡ９５に対応する論理ブロック連番ＬＢ２の論理ブロックが、物理ブロック連番＃５の物理ブロックに割当てられ、ＬＢＡ９６〜ＬＢＡ１２７に対応する論理ブロック連番ＬＢ３の論理ブロックが、物理ブロック連番＃７の物理ブロックに割当てられている。
【００５７】
フラッシュメモリ２にアクセスするときは、論理ブロックと物理ブロックの対応関係を示した変換テーブルを作成し、この変換テーブルを用いて、アクセスするページのアドレスを求めている。変換テーブルは、各物理ブロックの冗長領域に書込まれている論理ブロックに関する情報（その物理ブロックに書込まれているユーザーデータに対応する論理ブロックを示す情報）に基づいて作成される。
【００５８】
例えば、物理ブロックにユーザーデータを書込んだときに、そのユーザーデータに対応する論理ブロックの論理ブロック連番を、その物理ブロックの冗長領域に書込めば、この論理ブロック連番を順次読出すことにより、変換テーブルを作成することができる。
【００５９】
図４は、論理ブロック連番と物理ブロック連番との対応関係を示す変換テーブルの説明図である。
この変換テーブルは、１つのゾーンに対して作成されたものであり、ゾーンに割当てられている論理アドレス空間の論理ブロック連番ＬＢ０〜ＬＢ９９９と、これ対応する物理ブロックの物理ブロック連番＃０〜＃１０２３の対応関係を示している。図４に示した例では、論理ブロック連番ＬＢ０は、物理ブロック連番＃３に対応し、論理ブロック連番ＬＢ１は、物理ブロック連番＃１に対応し、論理ブロック連番ＬＢ２は、物理ブロック連番＃５に対応する。このように、各論理ブロック連番に対応する物理ブロック連番が示されているので、ホストシステム４からコマンドと共にアドレス情報としてＬＢＡが供給された場合は、そのＬＢＡが属する論理ブロックの論理ブロック連番を変換テーブル上で検索することにより、それに対応する物理ブロックの物理ブロック連番を求めることができる。
【００６０】
ホストシステム４からは、読出し若しくは書込みコマンドと共に、アクセスの対象となる論理アドレスの領域に関する情報が供給される。このアクセスの対象は、論理アドレス（例えば、ＬＢＡ）とセクタ数で指定される。ここで、ホストシステム４から供給される論理アドレスは、アクセスの対象の先頭アドレスを示し、ホストシステム４から供給されるセクタ数は、先頭アドレスから何セクタ分の領域がアクセスの対象であるかを示している。
【００６１】
図５は、論理ブロックと物理ブロックの対応関係を示す説明図である。
図６は、グループ分割の例を示す説明図である。
例えば、ホストシステム４から論理アドレスとしてＬＢＡ１６が供給され、セクタ数として３１が供給された場合、図５に示したように、ＬＢＡ１６から３１セクタ分の領域、つまり、ＬＢＡ１６からＬＢＡ４６までの領域が、アクセスの対象として指定される。
【００６２】
このアクセスの対象が、複数の論理ブロックに跨っている場合は、論理ブロック毎に論理ブロックから物理ブロックへの変換処理を行わなければならない。以下、論理ブロックから物理ブロックへの変換処理、つまり、各論理ブロックに対応する物理ブロックのアドレスを求める処理を論物変換処理という。
図５に示した例では、ＬＢＡ１６〜ＬＢＡ３１が論理ブロック連番ＬＢ０の論理ブロックに属し、ＬＢＡ３２〜ＬＢＡ４６が論理ブロック連番ＬＢ１の論理ブロックに属している。従って、論理ブロック連番ＬＢ０の論理ブロックに対応する物理ブロックの物理ブロック連番を求める論物変換処理と、論理ブロック連番ＬＢ１の論理ブロックに対応する物理ブロックの物理ブロック連番を求める論物変換処理を実行しなければならない。
【００６３】
アクセスの対象が、複数の論理ブロックに跨っている場合の論物変換処理について、図６を参照して説明する。
アクセスの対象の先頭アドレスがＬＢＡ１６で、セクタ数が３１の場合、ＬＢＡ１６からＬＢＡ４６までがアクセスの対象となる。これを論理ブロック毎のグループに分割すると、ＬＢＡ１６〜ＬＢＡ３１のグループと、ＬＢＡ３２〜ＬＢＡ４６のグループに分割される。これを２進数で表示して説明すれば、０００  ００００  ０００１  ００００Ｂ（２進数）から０００  ００００  ００１０  １１１０（２進数）までのアクセスの対象が、０００  ００００  ０００１  ００００Ｂ（２進数）から０００  ００００  ０００１  １１１１（２進数）までのグループと、０００  ００００  ００１０  ００００Ｂ（２進数）から０００  ００００  ００１０  １１１０（２進数）までのグループに分割される。
【００６４】
ここで、３２個のセクタを１個の論理ブロックとするので、０から３１９９までのＬＢＡを２進数で表現したときの、下位の５ビットが、各論理ブロック内でのセクタ番号を示し、下位の５ビットを除いた上位の１０ビットが０から９９９までの論理ブロック連番に対応する。又、下位の５ビットのセクタ番号は、フラッシュメモリ２内の０から３１までのページ番号に対応し、下位の５ビットを除いた上位の１０ビットは、物理ブロックのアドレスに置き換えられる。
【００６５】
０００  ００００  ０００１  ００００Ｂ（２進数）から０００  ００００  ０００１  １１１１（２進数）までのグループでは、下位の５ビットを除いた上位の１０ビットがＬＢＡ０に対応するので、変換テーブルを用いてＬＢＡ０に対応する物理ブロックの物理ブロック連番を検索する。その結果、ＬＢＡ０に対応する物理ブロック連番が＃３であれば、物理ブロック連番＃３の物理ブロックのアドレスに１  ００００Ｂ（２進数）から１  １１１１（２進数）までのページ番号を付加した物理アドレスにアクセスが行われるように、フラッシュメモリシーケンサブロック１２のレジスタに物理アドレスとセクタ数が設定される。
【００６６】
０００  ００００  ００１０  ００００Ｂ（２進数）から０００  ００００  ００１０  １１１０（２進数）までのグループは、下位の５ビットを除いた上位の１０ビットがＬＢＡ１に対応するので、変換テーブルを用いてＬＢＡ１に対応する物理ブロックの物理ブロック連番を検索する。その結果、ＬＢＡ１に対応する物理ブロック連番が＃１であれば、物理ブロック連番＃１の物理ブロックのアドレスに０  ００００Ｂ（２進数）から０  １１１０（２進数）までのページ番号を付加した物理アドレスにアクセスが行われるように、フラッシュメモリシーケンサブロック１２のレジスタに物理アドレスとセクタ数が設定される。
【００６７】
次に、ホストシステム４から複数の論理ブロックに跨る読出し処理の要求を受けた場合の処理について、図７を参照して説明する。
図７は、読出し処理の要求を受けた場合の処理を示すフローチャートである。
【００６８】
まず、ホストシステム４から読出しコマンドと共に供給される論理アドレスとセクタ数で指定される複数セクタの領域を、論理ブロック毎のグループに区分する（ステップ１）。
続いて、最初のグループの論物変換処理を実行し、グループ内の先頭セクタに対応する物理アドレスを求める（ステップ２）。フラッシュメモリシーケンサブロック１２が処理を実行しているか否かをチェックし（ステップ３）、処理が終了した後に（ステップ３：ＮＯ）、ステップ４を実行する。
【００６９】
ステップ４では、フラッシュメモリシーケンサブロック１２内のレジスタに、フラッシュメモリ２に与えられる読出しコマンドと、ステップ２で求めたグループ内の先頭セクタに対応する物理アドレスと、グループに含まれるセクタのセクタ数を設定した後、フラッシュメモリ２に対する読出しシーケンス処理を開始する。この読出しシーケンス処理では、グループ内の各セクタに対応するフラッシュメモリ２内のページからユーザーデータを順次読み出す。この際、グループ内の各セクタに対応するフラッシュメモリ２内のページからユーザーデータが読み出される毎に、フラッシュメモリシーケンサブロック１２内のレジスタに設定した物理アドレスが１ずつ加算されると共に、フラッシュメモリシーケンサブロック１２内のレジスタに設定したセクタ数が１ずつ減算される。
【００７０】
又、フラッシュメモリシーケンサブロック１２内のレジスタに設定した物理アドレスが加算される毎に、加算された物理アドレスに対する読出し処理を実行し、セクタ数が“０”になると読出しシーケンス処理を終了する。尚、各物理ブロック内のページには、ＬＢＡの順番（論理アドレスの順番）で、ユーザーデータが書込まれているので、フラッシュメモリシーケンサブロック１２内のレジスタに設定した物理アドレスを、初期値（グループ内の先頭セクタに対応する物理アドレス）に１ずつ加算していくことにより、グループ内の各セクタに対応するフラッシュメモリ２内のページから順次ユーザーデータを読み出すことができる。又、読み出されるページのページ数は、フラッシュメモリシーケンサブロック１２内のレジスタに設定されたセクタ数と一致する。
【００７１】
ステップ４で、フラッシュメモリシーケンサブロック１２内のレジスタに、読出しコマンド、物理アドレス及びセクタ数を設定して、フラッシュメモリ２に対する読出しシーケンス処理を開始した後、読出しシーケンス処理の終了を待たずに、次のグループに対する論物変換処理を開始する。この論物変換処理では、次のグループ内の先頭セクタに対応する物理アドレスを求める（ステップ５）。
ステップ４の読出しシーケンス処理が終了しているか否かをチェックし（ステップ６）、処理が終了した後に（ステップ６：ＮＯ）、ステップ７を実行する。
【００７２】
ステップ７では、フラッシュメモリシーケンサブロック１２内のレジスタに、フラッシュメモリ２に与えられる読出しコマンドと、ステップ５で求めたグループ内の先頭セクタに対応する物理アドレスと、グループに含まれるセクタのセクタ数を設定した後、ステップ４と同様にフラッシュメモリ２に対する読出しシーケンス処理を開始する。
【００７３】
この読出しシーケンス処理では、前回の読出しシーケンス処理で処理対象となったグループの次のグループが処理対象となる。
ステップ７で、開始した読出しシーケンス処理の処理対象が最後のグループであれば（ステップ８：ＹＥＳ）、ホストシステム４から与えられた読出しコマンドに基づいた処理を終了する。ステップ７で、開始した読出しシーケンス処理の処理対象が最後のグループでない場合は（ステップ８：ＮＯ）、読出しシーケンス処理の終了を待たずに、次のグループに対する論物変換処理が開始される（ステップ５）。この後、最後のグループに対する読出しシーケンス処理が実行されるまで、ステップ５からステップ８までの処理を繰り返す。
【００７４】
次に、複数の論理ブロックに跨る書込み処理について説明する。
図８は、書込み処理における論理ブロックと物理ブロックの対応関係を示す説明図であり、ＬＢＡ０からＬＢＡ９５までの３個の論理ブロックを処理対象として書込み処理を実行した場合の論理ブロックと物理ブロックの対応関係を示している。
【００７５】
書込み処理では、各論理ブロックに対して、消去済みの物理ブロックが１個ずつ割当てられる。図８に示した例では、論理ブロック連番ＬＢ０の論理ブロックに対して、物理ブロック連番＃１の物理ブロックが割当てられ、論理ブロック連番ＬＢ１の論理ブロックに対して、物理ブロック連番＃４の物理ブロックが割当てられ、論理ブロック連番ＬＢ２の論理ブロックに対して、物理ブロック連番＃６の物理ブロックが割当てられている。
【００７６】
各物理ブロック内のページには、セクタ順（論理アドレスの順番）にデータが書込まれる。つまり、物理ブロック連番＃１の物理ブロックのページ０には、ＬＢＡ０に対応するユーザーデータが書込まれ、ページ１には、ＬＢＡ１に対応するユーザーデータが書込まれ、以下同様にして、ページ３１には、ＬＢＡ３１に対応するユーザーデータが書込まれる。
【００７７】
尚、論理ブロック連番ＬＢ０〜ＬＢ２の論理ブロックに対応する古いデータがある場合には、変換テーブルを用いて古いデータが書込まれている物理ブロックを検索して、その物理ブロックに対して消去処理を実行する。又、消去済みの物理ブロックを検索する場合は、例えば、ゾーンを構成する各物理ブロックを各ビットに割当てた検索テーブルを作成して検索することができる。この検索テーブルでは、各ビットの論理値が"０"であるか、又は"１"であるかで、ユーザーデータが書込まれているか否かを示している。従って、各ビットの論理値を走査していくことにより、消去済みの物理ブロックを検索することができる。
【００７８】
次に、ホストシステム４から複数の論理ブロックに跨る読出し処理の要求を受けた場合の処理について、図９を参照して説明する。
図９は、書込み処理の要求を受けた場合の処理を示すフローチャートである。
尚、説明を簡略化するため、物理ブロック内の全てのページに、ホストシステム４側から供給されるユーザーデータが書込まれる場合について説明する。従って、古いデータが書込まれていた物理ブロックからの転送処理は行われない。
【００７９】
まず、ホストシステム４から書込みコマンドと共に供給される、論理アドレスとセクタ数で指定される複数セクタの領域を、論理ブロック毎のグループに区分する（ステップ１１）。尚、上記のように物理ブロック内の全てのページに、ホストシステム４側から供給されるユーザーデータが書込まれる場合、つまり、全てのグループが３２セクタで構成されるについて説明するので、グループと論理ブロック（グループを構成するセクタと論理ブロックを構成するセクタ）は一致する。
【００８０】
続いて、最初のグループの論理ブロックの論物変換処理を実行し、最初のグループの論理ブロックに対応するユーザーデータ（旧データ）が書込まれている物理ブロックの物理アドレスを求める。更に、最初のグループの論理ブロックに割当てられる消去済みの物理ブロックを検索テーブルを用いて検索し、最初のグループの論理ブロックに対応するユーザーデータ（新データ）が新たに書込まれる物理ブロックの物理アドレスを求める（ステップ１２）。フラッシュメモリシーケンサブロック１２が処理を実行しているか否かをチェックし（ステップ１３）、処理が終了した後に（ステップ１３：ＮＯ）、ステップ１４を実行する。
【００８１】
ステップ１４では、フラッシュメモリシーケンサブロック１２内のレジスタに、フラッシュメモリ２に与えられる書込みコマンドと、ステップ１２で求めた消去済みの物理ブロックの物理アドレス（先頭ページの物理アドレス）と、グループの論理ブロックに含まれるセクタのセクタ数“３２”を設定した後、フラッシュメモリ２に対する書込みシーケンス処理を開始する。
この書込みシーケンス処理では、グループの論理ブロック内の各セクタに対応するユーザーデータが、書込み先の物理ブロック内の各ページに順次書込まれていく。
【００８２】
この際、物理ブロック内の各ページにユーザーデータが書込まれる毎に、フラッシュメモリシーケンサブロック１２内のレジスタに設定した物理アドレスが１ずつ加算されると共に、フラッシュメモリシーケンサブロック１２内のレジスタに設定したセクタ数が１ずつ減算される。又、フラッシュメモリシーケンサブロック１２内のレジスタに設定した物理アドレスが加算される毎に、加算された物理アドレスに対する書込み処理を実行し、セクタ数が“０”になると書込みシーケンス処理を終了する。尚、各物理ブロック内のページには、ＬＢＡの順番（論理アドレスの順番）で、ユーザーデータが書込まれる。
【００８３】
ステップ１４で、フラッシュメモリシーケンサブロック１２内のレジスタに、書込みコマンド、物理アドレス及びセクタ数を設定して、フラッシュメモリ２に対する書込みシーケンス処理を開始した後、書込みシーケンス処理の終了を待たずに、次のグループに対する論物変換処理と消去済み物理ブロックの検索処理を開始する。この論物変換処理では、次のグループの論理ブロックに対応するユーザーデータ（旧データ）が書込まれている物理ブロックの物理アドレスを求め、消去済み物理ブロックの検索処理では、次のグループ（論理ブロック）に対応するユーザーデータ（新データ）を新たに書込む物理ブロックの物理アドレスを求める（ステップ１５）。
【００８４】
ステップ１４の書込みシーケンス処理が終了しているか否かをチェックし（ステップ１６）、処理が終了した後に（ステップ１６：ＮＯ）、ステップ１７を実行する。
ステップ１７では、フラッシュメモリシーケンサブロック１２内のレジスタに、フラッシュメモリ２に与えられる書込みコマンドと、ステップ１５で求めた消去済みの物理ブロックの物理アドレス（先頭ページの物理アドレス）と、グループの論理ブロックに含まれるセクタのセクタ数“３２”を設定した後、ステップ１４と同様にフラッシュメモリ２に対する書込みシーケンス処理を開始する。
この書込みシーケンス処理では、前回の書込みシーケンス処理で処理対象となったグループの論理ブロックの次のグループの論理ブロックが処理対象となる。
【００８５】
ステップ１７で、開始した書込みシーケンス処理の処理対象が最後のグループであれば（ステップ１８：ＹＥＳ）、ホストシステム４から与えられた読出しコマンドに基づいた処理を終了する。ステップ１７で、開始した読出しシーケンス処理の処理対象が最後のグループでない場合は（ステップ１８：ＮＯ）、読出しシーケンス処理の終了を待たずに、次のグループに対する論物変換処理と消去済み物理ブロックの検索処理が開始される（ステップ１５）。この後、最後のグループに対する書込みシーケンス処理が実行されるまで、ステップ１５からステップ１８までの処理を繰り返す。
【００８６】
尚、上記ステップ１２とステップ１５で、論物変換処理により旧データが書込まれている物理ブロックの物理アドレスを求めたのは、その物理ブロックに対して消去処理を実行するためである。この消去処理は、書換えを行う毎に実行してもよいが、旧データが書込まれている物理ブロックの冗長領域に、その物理ブロックに書込まれているユーザーデータが無効であることを示す情報を設定しておき、消去処理を後で行うようにしてもよい。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施形態に係るフラッシュメモリシステムのブロック図である。
【図２】ブロックとページの関係を示す説明図である。
【図３】ゾーンを説明するための説明図である。
【図４】論理ブロック連番と物理ブロック連番との対応関係を示す変換テーブルの説明図である。
【図５】論理ブロックと物理ブロックの対応関係を示す説明図である。
【図６】グループ分割の例を示す説明図である。
【図７】読出し処理の要求を受けた場合の処理を示すフローチャートである。
【図８】書込み処理における論理ブロックと物理ブロックの対応関係を示す説明図である。
【図９】書込み要求に対応する処理のフローチャートである。
【符号の説明】
【００８８】
１  フラッシュメモリシステム
２  フラッシュメモリ
３  メモリコントローラ
４  ホストシステム
５  ホストインターフェース制御ブロック
６  マイクロプロセッサ
７  ホストインターフェースブロック
８  ワークエリア
９  バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１２  フラッシュメモリシーケンサブロック
１３  外部バス
１４  内部バス
【図１】
2006155335.tif 000003
【図２】
2006155335.tif 000004
【図３】
2006155335.tif 000005
【図４】
2006155335.tif 000006
【図５】
2006155335.tif 000007
【図６】
2006155335.tif 000008
【図７】
2006155335.tif 000009
【図８】
2006155335.tif 000010
【図９】
2006155335.tif 000011