(57)【特許請求の範囲】
【請求項１】
１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコントローラであって、
前記メモリコントローラは、
前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶する読み書きメモリと、
データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込む、メモリ制御部と、
初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記アドレス管理テーブルを生成する、アドレス管理テーブル生成部と、
を有することを特徴とするメモリコントローラ。
【請求項２】
前記アドレス範囲は、前記不揮発性メモリの記憶領域を所定サイズ毎に区分けした領域であり、アクセス装置により指定される複数の論理単位に対応した複数の物理ブロックを含み、
前記アドレス管理テーブルは、前記アドレス範囲内に含まれる複数の論理単位をまとめて管理するテーブルである、ことを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記アドレス範囲は、アクセス装置から指定される論理単位毎に設けられた領域であり、前記アドレス管理テーブルが複数の前記アドレス範囲をまとめて管理するテーブルである、ことを特徴とする請求項１に記載のメモリコントローラ。
【請求項４】
前記メモリ制御部は、データの書き込み先の物理ブロックがあるアドレス範囲から他のアドレス範囲へ切り替わる時に、切り替わり先のアドレス範囲を特定するためのアドレス範囲特定情報を前記不揮発性メモリに書き込む、ことを特徴とする請求項１に記載のメモリコントローラ。
【請求項５】
前記メモリ制御部は、前記アドレス範囲特定情報を前記アドレス管理テーブルに組み込んだ形で前記不揮発性メモリに書き込むことを特徴とする請求項４に記載のメモリコントローラ。
【請求項６】
前記メモリ制御部は、初期化時に、前記アドレス範囲特定情報に基づいて、初期化前にアクセスしていた前記アドレス範囲を特定する、ことを特徴とする請求項４に記載のメモリコントローラ。
【請求項７】
１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコントローラであって、
前記メモリコントローラは、
１つの前記アドレス範囲内の物理ブロックの書き込み状態を管理する第１のテーブルと複数の前記アドレス範囲内の物理ブロックの状態を管理する第２のテーブルとを含むアドレス管理テーブルを一時記憶する読み書きメモリと、
データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記不揮発性メモリに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込み、初期化時に、前記第２のテーブルを前記不揮発性メモリから読み出して、前記読み書きメモリに格納する、メモリ制御部と、
初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記第１のテーブルを生成して、前記読み書きメモリに格納する、アドレス管理テーブル生成部と、
を有することを特徴とするメモリコントローラ。
【請求項８】
１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリと、
前記不揮発性メモリへのデータの書き込み又は読み出しを制御する、請求項１に記載のメモリコントローラと、
を有することを特徴とする不揮発性記憶装置。
【請求項９】
１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリを含む、請求項８に記載の不揮発性記憶装置と、
前記アドレス範囲を指定して前記不揮発性メモリに対するデータの書き込み又は読み出しを制御するアクセス装置と、
を有することを特徴とする不揮発性記憶システム。
【請求項１０】
１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリと、前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶するための読み書きメモリと、を有する不揮発性記憶装置を制御するメモリ制御方法であって、
前記メモリ制御方法は、
データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込むステップと、
初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記アドレス管理テーブルを生成するステップと、
を有することを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを主記憶メモリとして具備する半導体メモリカード等の不揮発性記憶装置、それに内蔵されるメモリコントローラ、不揮発性記憶装置とアクセス装置を備えた不揮発性記憶システム、及びメモリ制御方法に関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。また半導体メモリカードを使用した不揮発性記憶システムは、デジタルスチルカメラやパーソナルコンピュータ等を中心にその需要が広まっている。
【０００３】
実用に供されている半導体メモリカードは、通常、内部に不揮発性メモリであるフラッシュメモリと、その制御回路であるコントローラＬＳＩを内蔵している。近年、半導体メモリカードの大容量化のニーズに伴い、不揮発性メモリチップ自体も多値化による大容量が進んでいる。また実装技術の進歩により、半導体メモリカードに実装される不揮発性メモリのチップ数も増加しつつある。例えば半導体メモリカードのメモリ空間として１Ｇバイトを超えるものが実用化されている。
【０００４】
半導体メモリカードにおけるアドレス管理方法として、分散型管理方法が従来から利用されている。「分散型管理方法」とは、書き込み単位であるページの管理領域に論理アドレスやそのページの状態フラグを記憶し、初期化時に、論理アドレスやページの状態フラグに基づいてアドレス管理テーブルを生成し、コントローラＬＳＩ内のＲＡＭに格納する方法である。以下、上記の論理アドレスやそのページの状態フラグを総称して「分散管理情報」と呼ぶ。
【０００５】
しかし、大容量メモリ空間を有する半導体メモリカードにおいて、初期化時に全メモリ空間の分散管理情報を読み出すには多大な時間を要してしまう。これでは半導体メモリカードの規格上の初期化時間上限値を超えてしまう等の規格違反が生じる。また特に規格が無い半導体メモリカードにおいては、規格違反ではないものの、アクセス可能になるまでの待ち時間の面でユーザにデメリットを強いていた。更にはアドレス管理テーブル等を一時記憶するＲＡＭの容量が膨大となり、コスト面でも問題を有していた。
【０００６】
このような問題を回避する方法として「集中型管理方法」が提案されており、特許文献１にその内容が開示されている。特許文献１の不揮発性記憶装置は、半導体メモリカードに搭載されている不揮発性メモリのアドレス空間を複数のアドレス範囲に区分し、各アドレス範囲に対応した複数のアドレス管理テーブルを不揮発性メモリに記憶し、ホストからの所定の論理アドレスへの書き込みや消去命令に応じて、対応するアドレス管理テーブルをＲＡＭに読み出している。
【０００７】
また、特許文献２には、分散型管理方法とアドレス管理テーブル自体を不揮発性メモリに一括して記憶する集中型管理方法との両方を併用する方法が開示されている。特許文献２に開示されている方法及び装置は、ホストなどのアクセス装置からの書き込みコマンド毎にアドレス管理テーブルを不揮発性メモリに書き戻すのではなく、電源ＯＦＦ等のアクセスの無い所定タイミングにおいてアドレス管理テーブルを不揮発性メモリに書き戻し、初期化時にアドレス管理テーブルの有効性を判断し、有効ならばアドレス管理テーブルを使用し、有効でなければ分散型管理情報に基づいてアドレス管理テーブルを生成する。
【特許文献１】特開２００１−１４２７７４号公報
【特許文献２】特開平１１−７３３７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１は、初期化時、アドレス管理テーブルを不揮発性メモリから読み出すだけで良いため、短時間で初期化処理が完了する。しかし、電源遮断等の障害対応のために、通常、ホストからの所定の論理アドレスへの書き込みや消去命令毎に、ＲＡＭ上のアドレス管理テーブルを更新し、さらに更新されたアドレス管理テーブルをユーザデータの書き込みや消去の後に不揮発性メモリに書き戻す処理が必要であった。この方法は上述した分散型管理方法と比較すると、アドレス管理テーブルの書き戻し処理の時間分、アクセス速度が低下するといった問題を有していた。
【０００９】
特許文献２は、アクセスの無い所定のタイミングにおいてアドレス管理テーブルを不揮発性メモリに書き戻しているため、データの書き込み時のアクセス速度が低下することはない。しかし、電源遮断等により、アドレス管理テーブルが正しく不揮発性メモリに書き戻されない場合、初期化時に不揮発性メモリの全領域の分散管理情報に基づいてアドレス管理テーブルを生成する必要が生じる。よって、電源遮断等の障害が起きた場合に初期化時間が長くなるという問題を解決することはできない。
【００１０】
本発明はこのような従来の問題点に鑑みてなされたものであって、通常動作時におけるアドレス管理テーブルの書き戻し処理に起因するアクセス速度の低下を回避しつつ、電源遮断等の障害が起きた場合であっても初期化時におけるアドレス管理テーブルの作成時間を短縮することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコントローラであって、前記メモリコントローラは、前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶する読み書きメモリと、データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込む、メモリ制御部と、初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記アドレス管理テーブルを生成する、アドレス管理テーブル生成部と、を有する。
【００１２】
本発明によれば、初期化時において不揮発性メモリの全領域の分散管理情報を調べる必要がないため、初期化時におけるアドレス管理テーブルの作成時間を短縮することができる。さらに、アクセス装置からの書き込み指示毎にアドレス管理テーブルを不揮発性メモリに書き戻す必要がないため、通常動作時におけるアドレス管理テーブルの書き戻し処理に起因するアクセス速度低下を回避することができる。
【００１３】
前記アドレス範囲は、前記不揮発性メモリの記憶領域を所定サイズ毎に区分けした領域であり、アクセス装置により指定される複数の論理単位に対応した複数の物理ブロックを含み、前記アドレス管理テーブルは、前記アドレス範囲内に含まれる複数の論理単位をまとめて管理するテーブルであっても良い。
【００１４】
前記アドレス範囲は、アクセス装置から指定される論理単位毎に設けられた領域であり、前記アドレス管理テーブルが複数の前記アドレス範囲をまとめて管理するテーブルであっても良い。
【００１５】
前記メモリ制御部は、データの書き込み先の物理ブロックがあるアドレス範囲から他のアドレス範囲へ切り替わる時に、切り替わり先のアドレス範囲を特定するためのアドレス範囲特定情報を前記不揮発性メモリに書き込んでも良い。
【００１６】
前記メモリ制御部は、前記アドレス範囲特定情報を前記アドレス管理テーブルに組み込んだ形で前記不揮発性メモリに書き込んでも良い。
【００１７】
前記メモリ制御部は、初期化時に、前記アドレス範囲特定情報に基づいて、初期化前にアクセスしていた前記アドレス範囲を特定しても良い。
【００１８】
本発明の他のメモリコントローラは、１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリに、データを書き込む又は読み出すメモリコントローラであって、前記メモリコントローラは、１つの前記アドレス範囲内の物理ブロックの書き込み状態を管理する第１のテーブルと複数の前記アドレス範囲内の物理ブロックの状態を管理する第２のテーブルとを含むアドレス管理テーブルを一時記憶する読み書きメモリと、データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記不揮発性メモリに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込み、初期化時に、前記第２のテーブルを前記不揮発性メモリから読み出して、前記読み書きメモリに格納する、メモリ制御部と、初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記第１のテーブルを生成して、前記読み書きメモリに格納する、アドレス管理テーブル生成部と、を有する。
【００１９】
本発明の不揮発性記憶装置は、１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリと、前記不揮発性メモリへのデータの書き込み又は読み出しを制御する、上記のメモリコントローラと、を有する。
【００２０】
本発明の不揮発性記憶システムは、１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリを含む、上記の不揮発性記憶装置と、前記アドレス範囲を指定して前記不揮発性メモリに対するデータの書き込み又は読み出しを制御するアクセス装置と、を有する。
【００２１】
本発明のメモリ制御方法は、１以上の物理ブロックにより構成されるアドレス範囲を複数個有する不揮発性メモリと、前記物理ブロックの状態を管理するアドレス管理テーブルを一時記憶するための読み書きメモリと、を有する不揮発性記憶装置を制御するメモリ制御方法であって、前記メモリ制御方法は、データの書き込み時に、データと、前記アドレス管理テーブルを生成するための分散管理情報とを前記物理ブロックに書き込んで、前記読み書きメモリの前記アドレス管理テーブルを更新し、データの書き込み先があるアドレス範囲から他のアドレス範囲へ切り替わる時に、前記読み書きメモリに一時記憶されている前記アドレス管理テーブルを前記不揮発性メモリに書き込むステップと、初期化時に、初期化前にアクセスしていた前記アドレス範囲内から前記分散管理情報を読み出して、読み出した前記分散管理情報に基づいて前記読み書きメモリ上に前記アドレス管理テーブルを生成するステップと、を有する。
【発明の効果】
【００２２】
本発明によれば、通常動作時におけるアドレス管理テーブルの書き戻し処理に起因するアクセス速度低下を回避しつつ、初期化時におけるアドレス管理テーブルの作成時間の短縮を実現できる。
【発明を実施するための最良の形態】
【００２３】
以下本発明の実施をするための最良の形態を具体的に示した実施形態について、図面を参照して説明する。
【００２４】
（第１の実施形態）
図１に、本実施形態における不揮発性記憶システムの構成を示す。本実施形態の不揮発性記憶システムは、アクセス装置１００と、アクセス装置１００から送信されたユーザデータ（以下、単に「データ」という）の読み書き命令に基づいて動作する不揮発性記憶装置１２３とを有する。
【００２５】
不揮発性記憶装置１２３は、アクセス装置１００から転送されたデータを格納する不揮発性メモリ１１５と、アクセス装置１００から送信された読み書き命令と論理アドレスとに基づいて、不揮発性メモリ１１５を制御するメモリコントローラ１１４とを有する。不揮発性メモリ１１５の記憶領域は、複数のアドレス範囲に分割されている。
【００２６】
［メモリコントローラの内部構成］
メモリコントローラ１１４は、ホストインターフェース部（以下、「ホストＩ／Ｆ部」と呼ぶ）１０１、ワーク用ＲＡＭ１０３、プログラムを格納したＲＯＭ１０４、及びワーク用ＲＡＭ１０３とＲＯＭ１０４に格納されたプログラムを用いてメモリコントローラ１１４内全体を制御するＣＰＵ１０２、を有する。
【００２７】
メモリコントローラ１１４は、さらに、不揮発性メモリ１１５を制御するメモリ制御部１２２、アドレス管理テーブル１１２を生成するアドレス管理テーブル生成部１０７、及びアドレス管理テーブル１１２を一時的に格納する読み書きメモリ１１３を有する。
【００２８】
メモリ制御部１２２は、不揮発性メモリ１１５のアドレス範囲の切り替わりを判断するアドレス範囲制御部１２４、不揮発性メモリ１１５に対してデータの読み書き等を制御する不揮発性メモリアクセス部１０９、及び読み書きメモリ１１３に一時記憶されたアドレス管理テーブル１１２を不揮発性メモリアクセス部１０９を介して不揮発性メモリ１１５に書き込むアドレス管理テーブル制御部１０８を有する。
【００２９】
［不揮発性メモリの記憶領域の構成］
図２に、本実施形態の不揮発性メモリ１１５の記憶領域の構成を具体的に示す。図２において、不揮発性メモリ１１５は１ＧＢであり、１Ｇビットのフラッシュメモリを８チップ実装している。不揮発性メモリ１１５は、複数の物理ブロック２１１により構成されている。ここで、物理ブロック２１１とは、選択的に消去できる最小単位のイレーズブロックのことであり、本実施形態では約４ｋＢの大きさを持つ。
【００３０】
不揮発性メモリ１１５は、図２の縦方向にアドレス範囲０〜７の８つのアドレス範囲に分割されており、横方向にバンク０〜３の４バンクに分割されている。各アドレス範囲は、４ｋブロック個の物理ブロック２１１により構成される。各アドレス範囲は、データを格納するためのユーザデータ領域１１６と、アドレス管理テーブル１１２を格納するためのアドレス管理テーブル領域１１７とを有する。本実施形態において、各アドレス範囲に設けられたアドレス管理テーブル領域１１７は、各アドレス範囲に応じたアドレス管理テーブル１１２を記憶する。
【００３１】
アドレス管理テーブル領域１１７は、下位側（図２の上側）から順に、アドレス管理テーブル１１２を格納していく。その後、新しいアドレス管理テーブル１１２を記憶できるように、不要となった古いアドレス管理テーブル１１２は順に消去される。このように、アドレス管理テーブル領域１１７は巡回的に使用される。例えば、アクセス装置１００からの書き込み命令がなされ、不揮発性メモリ１１５に有効データが書かれている状態において、アドレス範囲１の最新のアドレス管理テーブルが２０４７＿ａ０〜２０４７＿ｄ０に書き込まれているとすると、それより下位側（図２の上側）の２０４６＿ａ１〜２０４６＿ｄ１と２０４６＿ａ０〜２０４６＿ｄ０に格納されているアドレス管理テーブルは、消去して、無効ブロックにしておく。そして、無効ブロックにした領域は後に使用する。
【００３２】
不揮発性メモリ１１５は、さらに、図８に示すアドレス範囲特定情報８０１（詳細は後述。）を格納するためのカレントアドレス範囲ナンバー記憶領域１１８を有する。本実施形態において、カレントアドレス範囲ナンバー記憶領域１１８は、アドレス範囲７の上位側に設けられている。アドレス範囲７のユーザデータ領域１１６とアドレス管理テーブル領域１１７のサイズの和は、他のアドレス範囲のサイズより小さくなっている。不揮発性メモリ１１５が未使用の時、カレントアドレス範囲ナンバー記憶領域１１８は、下位側（図２の上側）から順に、アドレス範囲特定情報８０１を格納していく。その後、新しいアドレス範囲特定情報８０１を記憶できるように、不要となった古いアドレス範囲特定情報８０１は順に消去される。このように、カレントアドレス範囲ナンバー記憶領域１１８は巡回的に使用される。
【００３３】
不揮発性メモリ１１５において、セキュリティ関係の情報やメーカコード等が書き込まれた所謂システム領域については、説明を省略する。
【００３４】
図３に、本実施形態における物理ブロック２１１の具体例を示す。物理ブロック２１１はページ０とページ１の２ページを有する。ページは書き込み単位であり、図２において、最大同時書き込み数は４バンクの各１ページ、即ち最大４ページ分である。各ページは、２０４８バイトのデータ領域２１２と６４バイトの管理領域２１３を有する。１セクタは５１２バイトであり、データ領域２１２は４セクタにより構成される。データ領域２１２は、アクセス装置１００から転送されるデータが書き込まれる領域である。ページ０の管理領域２１３には、分散管理情報２１４が格納される。分散管理情報２１４は、アクセス装置１００が指定する論理ブロックナンバーと、物理ブロック２１１のステータスを示すブロックステータスとを含む。アクセス装置１００から転送されたデータがページ０のデータ領域２１２に書き込まれるときに、分散管理情報２１４はページ０の管理領域２１３に書き込まれる。
【００３５】
［論理アドレスのフォーマット］
図４に、本実施形態におけるアクセス装置１００が不揮発性記憶装置１２３に送信する論理アドレス４００のフォーマットを示す。図４の論理アドレス４００のフォーマットにおいて、ビット０〜ビット１（ｂ０〜ｂ１）がセクタナンバー４０１、ビット２〜ビット３（ｂ２〜ｂ３）がバンクナンバー４０２、ビット４（ｂ４）がページナンバー４０３である。ビット５〜ビット１４（ｂ５〜ｂ１４）のナンバー４０４とバンクナンバー４０２を併せた１２ビット分が論理ブロックナンバー４１１、ビット１５〜ビット１７（ｂ１５〜ｂ１７）がアドレス範囲ナンバー４０５である。３ビットのアドレス範囲ナンバー４０５により、不揮発性メモリ１１５のアドレス範囲０〜７が指定される。また、論理ブロックナンバー４１１に対応する１２ビット分が物理ブロックナンバー４１２へのアドレス変換の対象となる。
【００３６】
［アドレス管理テーブルの構成］
図１に戻り、アドレス管理テーブル１１２は、アドレス変換テーブル１１０と物理領域管理テーブル１１１とを含む。
【００３７】
図５に、本実施形態におけるアドレス変換テーブル１１０を示す。アドレス変換テーブル１１０はアクセス装置１００が指定した論理アドレス４００に含まれる論理ブロックナンバー４１１を不揮発性メモリ１１５内の物理ブロックナンバー４１２に変換するテーブルである。アドレス変換テーブル１１０は、論理ブロックナンバー４１１毎に、対応する物理ブロックナンバー４１２を示す。本実施形態において、アドレス変換テーブル１１０は、アドレス範囲毎に生成されるため、４０９６個分の論理ブロックナンバー４１１で指定される物理ブロックナンバー４１２を含む。
【００３８】
図６に、本実施形態における物理領域管理テーブル１１１を示す。物理領域管理テーブル１１１は不揮発性メモリ１１５内の消去単位である物理ブロック２１１の状態、即ち有効なデータが物理ブロック２１１に記憶されているかどうか等のブロックステータスを記憶するテーブルである。物理領域管理テーブル１１１は、不揮発性メモリ１１５の物理ブロックナンバー４１２毎に、各物理ブロックの状態を示す。物理ブロックの状態を示すブロックステータスは、有効、無効、不良等を含む。２進数の「００」は、既に有効なデータが書き込まれている有効ブロックであること示し、２進数の「１１」は消去済み又は書き込まれているデータが不要であることを示す無効ブロックを示す。２進数の「１０」は、メモリセル上のソリッドエラー等により使用できなくなった不良ブロックを示す。このように、ブロックステータスは、少なくとも３つの状態を含む。本実施形態において、物理領域管理テーブル１１１は、アドレス範囲毎に生成されるため、４０９６個分の物理ブロックナンバー４１２に対するブロックステータスが格納される。
【００３９】
［アドレス管理テーブルの生成］
図１に示すアドレス管理テーブル生成部１０７は、電源ＯＮ等による初期化時に、ユーザデータ領域１１６に格納されている分散管理情報２１４に基づいてアドレス管理テーブル１１２を生成し、読み書きメモリ１１３上に記憶させる。本実施形態においては、カレントアドレス範囲ナンバー記憶領域１１８から読み出したアドレス範囲のユーザデータ領域１１６に記憶された分散管理情報２１４だけを読み出す。すなわち、初期化時に、アドレス範囲０〜７の中のいずれか１つのアドレス範囲についてのアドレス管理テーブル１１２が生成される。
【００４０】
読み書きメモリ１１３は、ＳＲＡＭなどの揮発性メモリあるいは強誘電体メモリなどの不揮発性メモリであり、アドレス管理テーブル１１２を一時的に記憶する。アクセス装置１００の指示によるデータの書き込み等は、読み書きメモリ１１３に格納されたアドレス管理テーブル１１２を参照し、更新しながら行われる。
【００４１】
メモリ制御部１２２は、アクセス装置１００からの書き込み指示に応じてユーザデータ領域１１６にデータと分散管理情報２１４を書き込む。このとき、メモリ制御部１２２内のアドレス管理テーブル制御部１０８は、読み書きメモリ１１３に一時記憶されたアドレス管理テーブル１１２を更新する。アドレス管理テーブル制御部１０８は、アクセス装置１００が指示した書き込み先アドレスが現在のアドレス範囲から他のアドレス範囲に切り替わる際に、読み書きメモリ１１３上に一時記憶されたアドレス管理テーブル１１２を、不揮発性メモリアクセス部１０９を介して、現在のアドレス範囲のアドレス管理テーブル領域１１７に書き込む。
【００４２】
［アドレス範囲特定情報の書き込み］
アドレス範囲特定情報８０１とは、切り替わり先のアドレス範囲を特定するための情報である。図８に、本実施形態におけるアドレス範囲特定情報８０１を示す。アドレス範囲特定情報８０１は、時間的な前後関係を識別する時刻情報７１１とアドレス範囲切り替え時における切り替え後のアドレス範囲ナンバー７１２を含む。下位側の２７ビット分が時刻情報７１１を示し、上位３ビット分がアドレス範囲ナンバー７１２を示す。
【００４３】
図１に示すアドレス範囲制御部１２４は、アドレス範囲切替部１０５とアドレス範囲特定部１０６を有する。アドレス範囲特定部１０６は、現在アクセス中のアドレス範囲がどのアドレス範囲であるかを不揮発性メモリ１１５に記憶するために、すなわち電源立ち上げ時の初期化において、電源立ち上げ前又はリセット前にアクセスされていたアドレス範囲を特定できるようにするために、アドレス範囲が切り替わった直後、切り替わり後のアドレス範囲への書き込みを始める際に、不揮発性メモリアクセス部１０９を介して、アドレス範囲特定情報８０１を不揮発性メモリ１１５のカレントアドレス範囲ナンバー記憶領域１１８に格納する。さらに、アドレス範囲特定部１０６は、電源立ち上げ後の初期化時において、不揮発性メモリ１１５のカレントアドレス範囲ナンバー記憶領域１１８から最新の時刻情報７１１を持つアドレス範囲特定情報８０１を読み出して、アドレス範囲ナンバー７１２を特定する。これにより、例えば、電源遮断等の障害によって再起動された場合であっても、アドレス範囲特定部１０６は起動前にアクセスされていたアドレス範囲ナンバー７１２を特定できる。
【００４４】
図７に、本実施形態におけるアドレス範囲切替部１０５の構成を示す。アドレス範囲切替部１０５は、カウンタ７０１、レジスタ７０２、比較器７０３、及びレジスタ７０４を有する。レジスタ７０２は、アクセス装置１００が転送した論理アドレス４００に含まれるアドレス範囲ナンバー４０５をシステムクロックＳＣＫに応じて一時記憶する。比較器７０３は、アクセス装置１００が転送したアドレス範囲ナンバー４０５と、レジスタ７０２が一時記憶したアドレス範囲ナンバー４０５とを比較して、両者が異なる場合に、アドレス範囲切替信号をアクティブにして出力する。レジスタ７０４は、アドレス範囲切替信号がアクティブになったときに、アクセス装置１００が転送したアドレス範囲ナンバー４０５を一時記憶する。レジスタ７０４の出力は、アドレス範囲切り替え時における、切り替え後のアドレス範囲ナンバー７１２となる。
【００４５】
カウンタ７０１には、起動時に、カレントアドレス範囲ナンバー記憶領域１１８に格納されている最新のアドレス範囲特定情報８０１の時刻情報７１１がプリセットされる。なお、工場出荷直後の不揮発性メモリ１１５の物理ブロック２１１は全て消去されているので、カレントアドレス範囲ナンバー記憶領域１１８の最下位の１ページのデータが読み込まれ、初期値０の時刻情報がカウンタ７０１にプリセットされる。カウンタ７０１は、アドレス範囲切替信号がアクティブになった時に値を１つインクリメントする。
【００４６】
本実施形態のカウンタ７０１のビット数について説明する。アクセス装置１００からの１回の書き込みコマンドにおける平均的な書き込みデータ容量を４物理ブロック分（即ち、ＦＡＴ１６における１クラスタ分）の１６ｋＢとした場合、１つのアドレス範囲のユーザデータ領域１１６において、全ての物理ブロックを書き込むコマンド数は式（１）により、約１ｋ回（２の１０乗）となる。
（４ｋブロック個×４ｋＢ）÷１６ｋＢ＝１ｋ      （１）
【００４７】
不揮発性メモリ１１５の書換寿命、即ち保証良ブロック率を下回る書換回数を１０万回（≒２の１７乗）として、式（２）により、本実施形態のカウンタ７０１のビット数は２７ビットとする。
１７＋１０＝２７      （２）
【００４８】
なお、不揮発性メモリ１１５の書換寿命の違いや、設計余裕を鑑みてビット数を増やしても構わない。
【００４９】
上記のように構成されるアドレス範囲切替部１０５は、アクセス装置１００が転送した論理アドレス４００に基づいてアドレス範囲ナンバー４０５が切り替わったか否かを検出し、切り替わったことを検出すれば、切り替わり先のアドレス範囲ナンバー７１２を出力すると共に、アクセス装置１００が転送した命令が何時の時点での命令かがわかるように、時間的前後関係を表す時刻情報７１１を出力する。
【００５０】
［初期化処理］
以上のように構成された不揮発性記憶システムにおける、不揮発性記憶装置１２３の初期化処理について説明する。アクセス装置１００により不揮発性記憶装置１２３の電源がＯＮされると、ＣＰＵ１０２はＲＯＭ１０４に記憶されたプログラムに基づいて初期化処理を行う。初期化処理は、電源ＯＮ時の他に、不揮発性記憶装置１２３のリセット時も行われる。
【００５１】
初期化処理において、アドレス範囲特定部１０６は、不揮発性メモリアクセス部１０９を介して不揮発性メモリ１１５のカレントアドレス範囲ナンバー記憶領域１１８をサーチし、カレントアドレス範囲ナンバー記憶領域１１８に格納されているアドレス範囲特定情報８０１のうち、時刻情報７１１の値が最も大きいものを、最新のアドレス範囲特定情報８０１として読み出す。これにより、電源立ち上げ前にアクセスされていたアドレス範囲ナンバー７１２を特定する。また、アドレス範囲特定情報８０１に含まれる時刻情報７１１をカウンタ７０１にプリセットする。但し、時刻情報７１１の全てのビットの値が１の場合は、工場出荷直後であると判断し、０の値をカウンタ７０１にプリセットする。
【００５２】
アドレス管理テーブル生成部１０７は、特定されたアドレス範囲内のユーザデータ領域１１６に格納されている分散管理情報２１４を読み出して、アドレス変換テーブル１１０と物理領域管理テーブル１１１を生成し、読み書きメモリ１１３に格納する。初期化処理が終了すると、不揮発性記憶装置１２３は、アクセス装置１００からの読み書き等のコマンドの受付状態に入る。
【００５３】
［アドレス範囲内のデータの書き込み処理］
メモリコントローラ１１４は、アクセス装置１００から任意のアドレス範囲内への書き込み指示、例えば「０」のアドレス範囲ナンバー４０５を指定する論理アドレス４００を受信すると、アドレス範囲切替部１０５は、アクセス装置１００が転送したアドレス範囲ナンバー４０５が、初期化処理時に特定したアドレス範囲ナンバー７１２と同一かどうかを判断する。同一であれば、アドレス管理テーブル１１２に基づいて、論理アドレス４００に含まれる論理ブロックナンバー４１１を物理ブロックナンバー４１２に変換し、物理ブロックナンバー４１２で指定される物理ブロック２１１にデータを書き込む。
【００５４】
図９に、本実施形態におけるアドレス範囲の切り替えが発生しない場合の通常の書き込みシーケンスを示す。図９は、物理ブロック２１１のページ０にデータを書き込むデータライト期間ＴＡ０と、物理ブロック２１１のページ１にデータを書き込むデータライト期間ＴＡ１とを示す。本実施形態においては、バンク０〜３の４ページ分のページ０又はページ１を同時に書き込むマルチバンクライトにより、不揮発性メモリ１１５にデータを書き込む。データライト期間ＴＡ０及びＴＡ１は、ライドコマンド及びアドレス／データ転送期間Ｔａ１、イレーズビジー期間Ｔａ２、プログラムビジー期間Ｔａ３を含む。
【００５５】
データライト期間ＴＡ０において、メモリコントローラ１１４は、まず、ライトコマンド、ユーザデータ領域１１６内の物理ブロックナンバー４１２及びバンク０〜３の４ページ分のデータを不揮発性メモリ１１５に転送する（ライドコマンド及びアドレス／データ転送期間Ｔａ１）。このとき、分散管理情報２１４も同時に不揮発性メモリ１１５に転送する。次に、物理ブロックナンバー４１２で指定される物理ブロック２１１を消去する（イレーズビジー期間Ｔａ２）。最後に、バンク０〜３の物理ブロック２１１のページ０にデータと分散管理情報２１４を書き込み、読み書きメモリ１１３上のアドレス管理テーブル１１２を更新する（プログラムビジー期間Ｔａ３）。
【００５６】
次に、データライト期間ＴＡ１において、データライト期間ＴＡ０と同様の処理がなされ、バンク０〜３の４ページ分の物理ブロック２１１のページ１にデータが書き込まれる。但し、分散管理情報２１４は、ページ１に書き込まれない。
【００５７】
図９に示す１回のデータライト期間ＴＡ０及びＴＡ１により、例えば論理アドレス０＿ａ０〜０＿ｄ０と０＿ａ１〜０＿ｄ１の物理ブロック２１１にデータが書き込まれる。また、アドレス範囲０内において、データライト期間ＴＡ０及びＴＡ１による動作が繰り返されることにより、例えば論理アドレス０＿ａ０〜０＿ｄ０から１０２１＿ａ１〜１０２１＿ｄ１の物理ブロック２１１にデータが書き込まれる。
【００５８】
ＦＡＴ１６を使用するアクセス装置１００において、通常１クラスタは１６ｋＢであり、多くの製品において、アクセス装置１００は１６ｋＢ単位で書き込み指示を不揮発性記憶装置１２３に転送する。特許文献１に示す従来の半導体メモリ装置は、１６ｋＢ分を書き込んだ後に読み書きメモリ１１３に一時記憶されたアドレス管理テーブル１１２を不揮発性メモリ１１５に書き戻しており、時間的オーバヘッドが処理速度を下げる要因となっていた。しかし、本実施形態の不揮発性記憶装置１２３は、アドレス範囲が切り替わらない場合、読み書きメモリ１１３に一時記憶されたアドレス管理テーブル１１２を不揮発性メモリ１１５に書き戻す処理を行わず、データの書き込み時に併せて分散管理情報２１４を書き込んでおり、オーバヘッドの合理化を行っている。
【００５９】
［アドレス範囲が切り替わる場合のデータの書き込み処理］
次に、アクセス装置１００が転送したアドレス範囲ナンバーが切り替わった時の不揮発性記憶装置１２３の動作について説明する。図１０に、アドレス範囲の切り替えが発生した場合の書き込みシーケンスを示す。アドレス範囲切替部１０５が、比較器７０３により、アドレス範囲が切り替わることを検知すると、メモリ制御部１２３は、アドレス管理テーブルライト期間（以下、「ＡＴライト期間」と呼ぶ。）ＴＢ、アドレス管理テーブルリード期間（以下、「ＡＴリード期間」と呼ぶ。）ＴＣ、及びアドレス範囲特定情報ライト期間ＴＤの順に処理を行う。アクセス装置１００の指定するアドレス範囲が０から１に切り替わった場合を例として以下に説明する。
【００６０】
アドレス範囲０の論理アドレス１０２１＿ａ１〜１０２１＿ｄ１の物理ブロック２１１にデータが書き込まれた後、メモリコントローラ１１４はアクセス装置１００からアドレス範囲１を指定する論理アドレス４００を受け取ると、アドレス範囲切替部１０５は、比較器７０３により、アドレス範囲が０から１に切り替わることを検知する。すると、メモリコントローラ１１４は、まず旧アドレス範囲の後処理として、ＡＴライト期間ＴＢにおける処理を行う。
【００６１】
ＡＴライト期間ＴＢにおいて、メモリコントローラ１１４は、読み書きメモリ１１３に一時的に格納されているアドレス範囲０のアドレス管理テーブル１１２を不揮発性メモリ１１５のアドレス範囲０のアドレス管理テーブル領域１１７に最新のアドレス管理テーブルとして書き戻す。まず、メモリコントローラ１１４は、ライトコマンド、アドレス範囲０内のアドレス管理テーブル領域１１７内の物理ブロックナンバー４１２、及び読み書きメモリ１１３に格納されているアドレス管理テーブル１１２を不揮発性メモリ１１５に転送する（ライトコマンド及びアドレス／ＡＴ転送期間Ｔｂ１）。次に、物理ブロックナンバー４１２で指定される物理ブロック２１１を消去する（イレーズビジー期間Ｔｂ２）。最後に、消去した物理ブロック２１１に、アドレス管理テーブル１１２を書き込む（プログラムビジー期間Ｔｂ３）。
【００６２】
こうして、アドレス範囲０に対する書き込み処理は終了し、ＡＴライト期間ＴＢの終了時点とＡＴリード期間ＴＣの開始時点との間が実際のアドレス範囲切替時点ＴＳとなる。次に、新アドレス範囲の前処理として、ＡＴリード期間ＴＣとアドレス範囲特定情報ライト期間ＴＤにおける処理を行う。
【００６３】
ＡＴリード期間ＴＣにおいて、ＣＰＵ１０２は、アドレス範囲１のアドレス管理テーブル１１２の読み込み指示を不揮発性メモリアクセス部１０９に対して発行し、不揮発性メモリアクセス部１０９は、アドレス範囲１のアドレス管理テーブル１１２をアドレス範囲１のアドレス管理テーブル領域１１７から読み出して、アドレス管理テーブル制御部１０８は読み出したアドレス管理テーブル１１２を読み書きメモリ１１３に記憶させる（リードコマンド及びアドレス／ＡＴ転送期間Ｔｃ１）。ここで読み込まれるアドレス管理テーブル１１２は、アドレス範囲１内のアドレス管理テーブル領域１１７内における最新のアドレス管理テーブルである。アドレス管理テーブル１１２が最新かどうかは、次のように判断する。まず、アドレス管理テーブル領域１１７内の物理ブロックのページの最上位アドレス、具体的には図２における論理アドレス２０４７＿ａ１〜２０４７＿ｄ１の４ページ分（全８ｋＢ）をセットとして、消去されているか否かを判断する。消去されていなければ、論理アドレス２０４７＿ａ１〜２０４７＿ｄ１のセットが最新のアドレス管理テーブルであると判断する。また、消去されていれば、図２の上位方向、すなわち不揮発性メモリ１１５の下位側にサーチしていき、消去されていない、即ち何らかの値が書き込まれた４ページ分を最新のアドレス管理テーブルとして選択する。
【００６４】
なお、不揮発性記憶装置１２３が出荷された直後は、不揮発性メモリ１１５の物理ブロックは全て消去された状態となっている。実際は、システム領域に所定の値が書き込まれているが、本実施形態ではこの状態を省略して説明する。その場合、最下位（図２において、上側）の４ページ、即ち２０４６＿ａ０〜２０４６＿ｄ０をアドレス管理テーブル１１２として読み書きメモリ１１３に読み込むことになる。このとき、図６に示す物理領域管理テーブル１１１は全て無効ブロックの「１１」を示し、有効なデータはアドレス範囲１に記憶されていない状態ということになる。
【００６５】
アドレス範囲特定情報ライト期間ＴＤにおいて、メモリコントローラ１１４は、図８に示す切り替え後のアドレス範囲ナンバー７１２を含むアドレス範囲特定情報８０１を不揮発性メモリ１１５のカレントアドレス範囲ナンバー記憶領域１１８に格納する。まず、アドレス範囲特定部１０６内のカウンタ７０１はインクリメントすると共に、切り替え後のアドレス範囲ナンバー７１２がレジスタ７０４に格納される。アドレス範囲特定部１０６は、カウンタ７０１の時刻情報７１１とレジスタ７０４に格納されたアドレス範囲ナンバー７１２とを含むアドレス範囲特定情報８０１を生成する。不揮発性メモリアクセス部１０９は、ライトコマンド、不揮発性記憶装置１１５のカレントアドレス範囲ナンバー記憶領域１１８内の物理ブロックナンバー４１２及びアドレス範囲特定情報８０１を不揮発性メモリ１１５に転送する（ライトコマンド及びアドレス／アドレス範囲特定情報転送期間Ｔｄ１）。次に、物理ブロックナンバー４１２で指定される物理ブロック２１１が消去される（イレーズビジー期間Ｔｄ２）。最後に、消去された物理ブロック２１１にアドレス範囲特定情報８０１が書き込まれる（プログラムビジー期間Ｔｄ３）。
【００６６】
アドレス範囲特定情報ライト期間ＴＤの後のデータライト期間ＴＡ０において、アドレス範囲１の論理アドレス１０２４＿ａ０〜１０２４＿ｄ０にデータが書き込まれる。
【００６７】
アドレス範囲特定情報ライト期間ＴＤに、アドレス範囲特定情報８０１を不揮発性メモリ１１５のカレントアドレス範囲ナンバー記憶領域１１８に記憶することにより、次回起動時に、起動前にアクセスされていたアドレス範囲ナンバー７１２を特定できる。よって、電源遮断などの障害が発生した後の起動時であっても、アドレス範囲特定部１０６はどのアドレス範囲の処理中に電源遮断などの障害が起きたかを判別することができる。また、処理が途中中断されたアドレス範囲のアドレス管理テーブル領域１１７にアドレス管理テーブル１１２が書き戻しされていなくても、アドレス範囲特定情報８０１に記憶されたアドレス範囲についてのアドレス変換テーブル１１２は、初期化処理時に、分散管理情報２１４を用いて生成されるため、誤って古いアドレス変換テーブル１１２を使用することはない。
【００６８】
［初期化処理に要する時間］
本実施形態において、アドレス管理テーブル生成部１０７が不揮発性メモリアクセス部１０９を介して読み込む分散管理情報２１４は、１つのアドレス範囲内に限られる。例えば、不揮発性メモリ１１５がマルチバンクページリード機能を備え、各マルチバンクページリードの所要時間が１００μ秒とすると、式（３）により、約１００ｍ秒で分散管理情報２１４の読み出しが完了する。
１００μ秒×１ｋ＝１００ｍ秒      （３）
【００６９】
１ＧＢの容量をもつ半導体メモリ装置（フラッシュメモリチップが８枚分）の場合は、式（４）により約８００ｍ秒となる。
１００ｍ秒×８枚＝８００ｍ秒      （４）
【００７０】
これに対して、特許文献２に示すような従来の半導体メモリ装置は、全領域の分散管理情報を読み出すため、読み出し時間は、式（５）により、約６４００ｍ秒となる。
８００ｍ秒×８＝６４００ｍ秒      （５）
【００７１】
特許文献２の不揮発性メモリ１１５は８区分に分割されていないため、式（５）の値は、式（４）に比べて、８倍の値になる。この値は、ユーザの起動時の待ち時間としては長時間になる。また、この式（５）の値は、不揮発性メモリの容量が大きくなればなる程、大きくなり、致命的な問題となる。
【００７２】
本実施形態の初期化処理に要する時間は、特許文献２の１／８となり、短時間で処理が行える。
【００７３】
［データの書き換えレート］
次に、本実施形態による書き込み速度の向上に関して、定量的に説明する。図９に示したデータライト期間ＴＡ０及びＴＡ１と図１０に示したＡＴライト期間ＴＢ及びデータライト期間ＴＡ０を各々１．５ｍ秒とする。
【００７４】
特許文献１に示す従来の半導体メモリ装置が、例えば論理アドレス０＿ａ０〜０＿ｄ０と、０＿ａ１〜０＿ｄ１の物理ブロック４個分にデータを書き込む場合、図９のデータライト期間ＴＡ１の後にＡＴライト期間ＴＢが必要であったため、式（６）により、４．５ｍ秒を要していた。
１．５ｍ秒×３＝４．５ｍ秒      （６）
【００７５】
一方、本実施形態において、アドレス範囲が変化しない場合、例えば論理アドレス０＿ａ０〜０＿ｄ０と、論理アドレス０＿ａ１〜０＿ｄ１の物理ブロック４個分にデータを書き込む場合、式（７）により、３ｍ秒要する。
１．５ｍ秒×２＝３ｍ秒      （７）
【００７６】
このように、アドレス範囲が変化しない場合、本実施形態の書き込み時間は特許文献１に示す書き込み時間より短い。
【００７７】
アドレス範囲が変化する場合、本実施形態は、図１０に示すように、旧アドレス範囲の後処理を行うＡＴライト期間ＴＢと、新アドレス範囲の前処理を行うＡＴリード期間ＴＣ及びアドレス範囲特定情報ライト期間ＴＤが必要となり、特許文献１より余分に処理時間を要する。
【００７８】
これを踏まえて、１つの論理範囲全体を１６ｋＢ単位で全て書き換えるレート値を基準にして、本実施形態と特許文献１とを比較する。まず、１つのアドレス範囲の容量は約１６ＭＢ（簡単のため、アドレス管理テーブル領域分は誤差とする）であり、式（８）により１６ｋＢ単位の書き込みで１つのアドレス範囲を書き換えるのに、アクセス装置１００は１ｋ回の書き込みを指示することになる。
１６ＭＢ÷１６ｋＢ＝１ｋ回      （８）
【００７９】
この場合、特許文献１に示す従来の半導体メモリ装置では、式（９）に示すように平均３．６ＭＢ／秒の書き換えレートとなる。
１６ＭＢ÷（１ｋ回×４．５ｍ秒）≒３．６ＭＢ／秒      （９）
【００８０】
一方、本実施形態の不揮発性記憶装置１２３では、式（１０）に示すように平均５．５ＭＢ／秒の書き換えレートとなり、本実施形態における不揮発性記憶装置１２３の方がより高速に１つのアドレス範囲を書き換えることができる。
１６ＭＢ÷｛（１ｋ回×３ｍ秒）＋（２回×１．５ｍ秒）｝≒５．５ＭＢ／秒      （１０）
【００８１】
なお、アドレス範囲切り替え時の瞬間的な速度劣化は、数ｍ秒オーダであるので、アクセス装置１００側が通常備えているバッファを使用することにより、十分吸収することができる。これにより処理が破綻することはない。
【００８２】
以上のように、本実施形態によれば、不揮発性メモリ１１５のメモリ容量が大きくなっても、起動時の初期化時間を極小化することができると共に、アドレス管理テーブル１１２の更新における時間的なオーバヘッドを合理化し、結果として書き換えレートを向上できる。すなわち、本発明によれば、通常動作時におけるアドレス管理テーブル１１２の書き戻し処理に起因するアクセス速度の低下を回避しつつ、電源遮断等の障害が起きた後の初期化時におけるアドレス管理テーブル１１２の作成時間を短縮することができる。
【００８３】
なお、図３における管理領域２１３は、分散管理情報２１４に加え、時刻情報７１１を格納しても良い。例えば、データをユーザデータ領域１１６のデータ領域２１２に書き込むときに、時刻情報７１１を管理領域２１３に書き込む。初期化処理時に、アドレス範囲を特定した後、アドレス範囲特定情報８０１の時刻情報７１１と一致する時刻情報７１１が書き込まれた物理ブロック２１１のみを読み出すことにより、アドレス管理テーブル領域１１７に記憶された最新のアドレス管理テーブル１１２を改訂しても良い。これにより、短時間で、アドレス管理テーブル領域１１７のアドレス管理テーブル１１２を更新でき、電源遮断等により処理が中断した後の初期化処理において有用である。
【００８４】
また、読み書きメモリ１１３は、比較的高速にアクセスできればＲＡＭ以外の読み書きメモリを使用しても構わない。また、不揮発性メモリ１１５は、複数の不揮発性メモリチップを内蔵しても構わない。また不揮発性メモリ１１５は、フラッシュメモリ以外の不揮発性メモリを用いても良い。
【００８５】
なお、不揮発性メモリ１１５は１つのフラッシュメモリチップを用いて構成してもよいし、また複数のフラッシュメモリチップを用いて構成してもよい。
【００８６】
本実施形態において、アドレス管理テーブル領域１１７は各アドレス範囲内に設けているが、アドレス範囲０〜７のアドレス管理テーブル領域１１７をまとめて、一つの範囲、例えば不揮発性メモリ１１５の最後尾の領域に設けても良い。
【００８７】
また、アドレス管理テーブル１１２の記憶位置を、本実施形態のアドレス管理テーブル領域１１７内のように、物理的に固定させなくても良い。例えば、アドレス管理テーブル領域１１７を設けずに、アドレス管理テーブル１１２をユーザデータ領域１１６の物理ブロック２１１に格納する。その際、アドレス管理テーブル１１２の格納先の物理アドレスを指し示すポインタ情報を不揮発性メモリ１１５内に記憶しておき、そのポインタ情報に応じて記憶位置をサーチできるようにすれば良い。
【００８８】
なお、カレントアドレス範囲ナンバー記憶領域１１８の位置は、アドレス範囲７の上位側に限定されない。また、本実施形態において、アドレス範囲特定情報８０１は不揮発性メモリ１１５のカレントアドレス範囲ナンバー記憶領域１１８に記憶されたが、不揮発性メモリ１１５以外の不揮発性メモリを別に設け、そこに記憶するようにしても構わない。
【００８９】
また、アドレス範囲特定情報８０１は、アドレス範囲が切り替わった際に、切り替え前のアドレス範囲に対応するアドレス管理テーブル１１２に組み込んだ形で、不揮発性メモリ１１５に書き戻すようにしても構わない。その場合、電源立ち上げ後の初期化において、全てのアドレス範囲０〜７に記憶された最新のアドレス管理テーブル１１２を調べて、最も直近の時刻情報７１１を含むアドレス管理テーブル１１２内に記憶されたアドレス範囲ナンバー７１２が、電源遮断がなされた時刻におけるアドレス範囲ナンバーと判断する。
【００９０】
（第２の実施形態）
図１１に、本発明の第２の実施形態における不揮発性記憶システムを示す。第２の実施形態の不揮発性記憶システムは、不揮発性メモリ１１１５のアドレス範囲の大きさと、アドレス管理テーブル１１１２の初期化時の生成方法が第１の実施形態と異なる。
【００９１】
本実施形態の不揮発性記憶システムは、アクセス装置１００と、アクセス装置１００から送信されたデータの読み書き命令に基づいて動作する不揮発性記憶装置１２３とを有する。
【００９２】
不揮発性記憶装置１２３は、アクセス装置１００から転送されたデータを格納する不揮発性メモリ１１１５と、アクセス装置１００から送信されたデータの読み書き命令と論理アドレスとに基づいて、不揮発性メモリ１１１５を制御するメモリコントローラ１１４とを有する。不揮発性メモリ１１１５の記憶領域は、複数のアドレス範囲を有する。
【００９３】
［メモリコントローラの内部構成］
メモリコントローラ１１４は、ホストＩ／Ｆ部１０１、ワーク用ＲＡＭ１０３、プログラムを格納したＲＯＭ１０４、及びワーク用ＲＡＭ１０３とＲＯＭ１０４に格納されたプログラムを用いてメモリコントローラ１１４内全体の制御を行うＣＰＵ１０２を有する。
【００９４】
メモリコントローラ１１４は、さらに、不揮発性メモリ１１１５を制御するメモリ制御部１２２、アドレス管理テーブル１１１２を生成するアドレス管理テーブル生成部１０７、及びアドレス管理テーブル１１１２を一時的に格納する読み書きメモリ１１３を有する。
【００９５】
メモリ制御部１２２は、不揮発性メモリ１１１５のアドレス範囲の切り替わりを判断するアドレス範囲制御部１２４、不揮発性メモリ１１１５に対してデータの読み書き等を制御する不揮発性メモリアクセス部１０９、及び読み書きメモリ１１３に一時記憶されたアドレス管理テーブル１１１２を不揮発性メモリアクセス部１０９を介して不揮発性メモリ１１１５に書き込むアドレス管理テーブル制御部１０８を有する。
【００９６】
［不揮発性メモリの内部構成］
本実施形態において、不揮発性メモリ１１１５の記憶領域は、データを記憶するためのユーザデータ領域１１１６、アドレス管理テーブル１１１２を記憶するためのアドレス管理テーブル領域１１１７、及び図１８に示すアドレス範囲特定情報１８０１を格納するためのカレントアドレス範囲ナンバー記憶領域１１８を有する。
【００９７】
図１２に、本実施形態の不揮発性メモリ１１１５の記憶領域の構成を具体的に示す。図１２において、不揮発性メモリ１１１５は１ＧＢであり、１Ｇビットのフラッシュメモリを８チップ実装している。不揮発性メモリ１１１５は、複数の物理ブロック２１１により構成されている。ここで、物理ブロック２１１とは、選択的に消去できる最小単位のイレーズブロックのことであり、本実施形態では約４ｋＢの大きさを持つ。
【００９８】
不揮発性メモリ１１１５は、横方向にバンク０〜３の４バンクに分割されている。本実施形態において、アドレス範囲１２０１は、ユーザデータ領域１１１６内の各バンクから１つずつ選択された、合計４つの物理ブロック２１１により構成される。例えば、論理アドレス０＿ａ０と０＿ａ１〜０＿ｄ０と０＿ｄ１を含む論理ブロックナンバー「０」の４つの物理ブロックが１つのアドレス範囲１２０１となる。すなわち、本実施形態において、論理ブロックナンバーは、アドレス範囲１２０１を指定するアドレス範囲ナンバーとなり、例えば論理ブロックナンバー「０」＝アドレス範囲ナンバー「０」となる。図１２において、ユーザデータ領域１１１６は、アドレス範囲０〜８１８８を有する。
【００９９】
本実施形態において、アドレス管理テーブル領域１１１７は、アドレス範囲１２０１内に設けられるのではなく、不揮発性メモリ１１１５の上位側の領域に設けられる。アドレス管理テーブル領域１１１７は、下位側（図１２の上側）から順に、アドレス管理テーブル１１１２を格納していく。その後、新しいアドレス管理テーブル１１１２を記憶できるように、不要となった古いアドレス管理テーブル１１１２は順に消去される。このように、アドレス管理テーブル領域１１１７は巡回的に使用される。例えば、アクセス装置１００からの書き込み命令がなされ、不揮発性メモリ１１１５に有効データが書かれている状態において、最新のアドレス管理テーブル１１１２が論理アドレス８１９０＿ａ０〜８１９０＿ｄ０に格納されているとすると、それより下位（図１２の上側）の８１８９＿ａ１〜８１８９＿ｄ１と８１８９＿ａ０〜８１８９＿ｄ０に格納されているアドレス管理テーブル１１１２は無効ブロックとして消去しておく。そしてこの領域は後々使用できるようにしておく。
【０１００】
不揮発性メモリ１１１５の記憶領域は、アドレス管理テーブル領域１１１７の上位側にカレントアドレス範囲ナンバー記憶領域１１８を有する。カレントアドレス範囲ナンバー記憶領域１１８は、アドレス範囲ナンバーを特定する情報を格納するための領域であり、図１８に示すアドレス範囲特定情報１８０１を格納する。カレントアドレス範囲ナンバー記憶領域１１８を設けることにより、電源遮断等の障害によって再起動された際に、起動前にアクセスされていたアドレス範囲ナンバーを特定することができるようになる。カレントアドレス範囲ナンバー記憶領域１１８は、不要となった古いアドレス範囲特定情報１８０１が格納された物理ブロック２１１を消去しながら巡回的に使用される。
【０１０１】
なお、不揮発性メモリ１１１５において、セキュリティ関係の情報やメーカコード等が書き込まれた所謂システム領域については、ここでは説明を省略する。
【０１０２】
図１３に、本実施形態における物理ブロック２１１の具体例を示す。物理ブロック２１１はページ０とページ１の２ページを有する。ページは書き込み単位であり、図１２において、最大同時書き込み数は４バンクの各１ページ、即ち最大４ページ分である。各ページは、２０４８バイトのデータ領域２１２と６４バイトの管理領域２１３を有する。１セクタは５１２バイトであり、データ領域２１２は４セクタにより構成される。データ領域２１２は、アクセス装置１００から転送されるデータが書き込まれる領域である。ページ０の管理領域２１３には、分散管理情報２１４が格納される。分散管理情報２１４は、アクセス装置１００が指定する論理ブロックナンバーと、物理ブロック２１１のステータスを示すブロックステータスとを含む。アクセス装置１００から転送されたデータがページ０のデータ領域２１２に書き込まれるときに、分散管理情報２１４はページ０の管理領域２１３に書き込まれる。
【０１０３】
［論理アドレスのフォーマット］
図１４に、本実施形態におけるアクセス装置１００が不揮発性記憶装置１２３に送信する論理アドレス１４００のフォーマットを示す。論理アドレス１４００は、下位ビットから順に、セクタナンバー４０１、バンクナンバー４０２、ページナンバー４０３、及びアドレス範囲ナンバー１４０５を有する。本実施形態において、アドレス範囲ナンバー１４０５は、論理ブロックナンバー１４１１である。論理ブロックナンバー１４１１に対応する１３ビット分が物理ブロックナンバー１４１２へのアドレス変換の対象となる。
【０１０４】
［アドレス管理テーブルの構成］
図１１に示すように、本実施形態のアドレス管理テーブル１１１２は、アドレス変換テーブル１１１０と物理領域管理テーブル１１１１と書き込み管理テーブル１１２１とを含む。
【０１０５】
図１５に本実施形態におけるアドレス変換テーブル１１１０を示す。アドレス変換テーブル１１１０は、アクセス装置１００が指定した論理アドレス１４００に含まれる論理ブロックナンバー１４１１を不揮発性メモリ１１１５内の物理ブロックナンバー１４１２に変換するためのテーブルである。アドレス変換テーブル１１１０は、論理ブロックナンバー１４１１毎に対応する物理ブロックナンバー１４１２を示す。本実施形態において、アドレス変換テーブル１１１０は、不揮発性メモリ１１１５内の全ての論理ブロックナンバー１４１１に対する物理ブロックナンバー１４１２を含んでいる。さらに、アドレス変換テーブル１１１０は、アクセス装置１００からの書き込み指示に応じて新規に確保した物理ブロックナンバーを最後尾に記憶する。
【０１０６】
図１６に、本実施形態における物理領域管理テーブル１１１１を示す。物理領域管理テーブル１１１１は、不揮発性メモリ１１１５内において消去単位である物理ブロック２１１の状態を示すテーブルであり、有効なデータが記憶されているかどうか等のブロックステータスを記憶する。物理領域管理テーブル１１１１は、アドレス変換テーブル１１１０に含まれる全ての物理ブロックナンバー１４１２に対してのブロックステータスを格納しており、本実施形態の物理領域管理テーブル１１１１の容量は、第１の実施形態の物理領域管理テーブル１１１の容量と異なる。容量以外については、本実施形態の物理領域管理テーブル１１１１は、第１の実施形態の物理領域管理テーブル１１１と同じである。
【０１０７】
図１７に、本実施形態における書き込み管理テーブル１１２１を示す。書き込み管理テーブル１１２１は、アドレス変換テーブル１１１０が管理する１単位である論理ブロックに対応する物理ブロックの書き込み状態を記憶するテーブルである。書き込み管理テーブル１１２１は、ページ０とページ１のバンク毎に、書き込み済みか否かの状態を１ビットで表し、書き込み未であれば「１」、書き込み済であれば「０」を記憶する。例えば、アクセス装置１００からの書き込み指示に応じて、新規に４つの物理ブロックが確保された場合、書き込み管理テーブル１１２１の全てのビットは２進数の「１」にセットされる。次にデータが書き込まれると、書き込みが行われたページに対応するビットに２進数の「０」がセットされる。書き込み管理テーブル１１２１は、既に「０」がセットされているページにデータを書き込む場合に、再度新規に物理ブロックを確保する必要があるかどうかを判断するものである。
【０１０８】
［アドレス管理テーブルの生成］
図１１に示すアドレス管理テーブル制御部１０８は、初期化時に、アドレス変換テーブル１１１０と物理領域管理テーブル１１１１とを、不揮発性メモリ１１１５のアドレス管理テーブル領域１１１７から読み込む。
【０１０９】
アドレス管理テーブル生成部１０７は、電源立ち上げ前にアクセスしていたアドレス範囲の物理ブロック２１１に記憶された分散管理情報２１４に基づいて書き込み管理テーブル１１２１を生成する。
【０１１０】
読み書きメモリ１１３は、ＳＲＡＭなどの揮発性メモリあるいは強誘電体メモリなどの不揮発性メモリであり、アドレス管理テーブル１１１２を一時的に記憶する。アクセス装置１００の指示によるデータの書き込み等は、読み書きメモリ１１３に格納されたアドレス管理テーブル１１１２を参照し、更新しながら行われる。
【０１１１】
メモリ制御部１２２は、アクセス装置１００からの書き込み指示に応じてユーザデータ領域１１１６にデータと分散管理情報２１４を書き込む。このとき、メモリ制御部１２２内のアドレス管理テーブル制御部１０８は、読み書きメモリ１１３に一時記憶されたアドレス管理テーブル１１１２を更新する。アドレス管理テーブル制御部１０８は、アクセス装置１００が指示した書き込み先アドレスが現在のアドレス範囲から他のアドレス範囲に切り替わる際に、読み書きメモリ１１３上に一時記憶されたアドレス管理テーブル１１１２を不揮発性メモリ１１１５のアドレス管理テーブル領域１１１７に書き込む。
【０１１２】
［アドレス範囲特定情報の書き込み］
アドレス範囲特定情報１８０１とは、切り替わり先のアドレス範囲を特定するための情報である。図１８に、本実施形態におけるアドレス範囲特定情報１８０１を示す。アドレス範囲特定情報１８０１は、時刻情報７１１と、切り替わり後のアドレス範囲を特定するためのアドレス範囲ナンバー１７１２を有する。アドレス範囲ナンバー１７１２のビット数は、第１の実施形態のアドレス範囲ナンバー７１２のビット数と異なる。
【０１１３】
図１１に示すアドレス範囲制御部１２４は、アドレス範囲切替部１０５とアドレス範囲特定部１０６を有する。
【０１１４】
アドレス範囲切替部１０５の内部構成は、第１の実施形態の図７と同様である。アドレス範囲切替部１０５は、アクセス装置１００が転送した論理アドレスに基づき、アドレス範囲ナンバー１７１２が切り替わったか否かを検出する。切り替わったことを検出すると、切り替わり後のアドレス範囲ナンバー１７１２を出力すると共に、アクセス装置１００が転送した命令が何時の時点での命令かがわかるように、各命令の時間的前後関係を表す時刻情報７１１とを出力する。
【０１１５】
アドレス範囲特定部１０６は、アドレス範囲が切り替わった直後、切り替わり後のアドレス範囲への書き込みを始める際に、アドレス範囲特定情報１８０１を不揮発性メモリアクセス部１０９を介して、不揮発性メモリ１１１５のカレントアドレス範囲ナンバー記憶領域１１８に記憶する。さらに、アドレス範囲特定部１０６は、電源立ち上げ後の初期化時において、カレントアドレス範囲ナンバー記憶領域１１８に記憶されたアドレス範囲特定情報１８０１に基づいて、電源立ち上げ前にアクセスされていたアドレス範囲１２０１を特定する。これにより、例えば、電源遮断等の障害によって再起動された場合であっても、アドレス範囲特定部１０６は起動前にアクセスされていたアドレス範囲ナンバー１７１２を特定できる。
【０１１６】
［初期化処理］
以上のように構成された本実施形態の不揮発性記憶システムの初期化処理について説明する。電源ＯＮ後、ＣＰＵ１０２はＲＯＭ１０４に記憶されたプログラムに基づいて、不揮発性メモリアクセス部１０９にアドレス管理テーブル領域１１１７内のアドレス変換テーブル１１１０と物理領域管理テーブル１１１１の読み込み指示を発行する。初期化処理は、電源ＯＮ時の他に、不揮発性記憶装置１２３のリセット時も行われる。不揮発性メモリアクセス部１０９は、不揮発性メモリ１１１５のアドレス管理テーブル領域１１１７からアドレス変換テーブル１１１０と物理領域管理テーブル１１１１を読み出す。アドレス管理テーブル制御部１０８は、アドレス変換テーブル１１１０と物理領域管理テーブル１１１１を読み書きメモリ１１３に書き込む。
【０１１７】
初期化処理時に読み込まれるアドレス変換テーブル１１１０と物理領域管理テーブル１１１１は、アドレス管理テーブル領域１１１７内における物理ブロック２１１に格納されている最新のアドレス変換テーブル１１１０と物理領域管理テーブル１１１１である。どれが最新であるかの判断については、アドレス管理テーブル領域１１１７に対応する物理ブロック２１１のページの最上位アドレス、具体的には図１２における論理アドレス８１９０＿ａ１〜８１９０＿ｄ１の４ページ分（全８ｋＢ）をセットとして消去されているか否かを判断基準とする。そして、図１２の上位方向にサーチしていき、消去されていない、即ち何らかの値が書き込まれた４ページ分を最新のアドレス変換テーブル１１１０と物理領域管理テーブル１１１１として選択する。
【０１１８】
さらに、ＣＰＵ１０２は不揮発性メモリアクセス部１０９にアドレス範囲特定情報１８０１の読み込み指示を発行する。アドレス範囲特定部１０６は、不揮発性メモリアクセス部１０９を介して、不揮発性メモリ１１１５のカレントアドレス範囲ナンバー記憶領域１１８から、最も大きい時刻情報７１１を持つアドレス範囲特定情報１８０１を検索し、検索したアドレス範囲特定情報１８０１に含まれるアドレス範囲ナンバー１７１２をアドレス管理テーブル生成部１０７に転送する。アドレス管理テーブル生成部１０７は、電源立ち上げ前にアクセスしていたアドレス範囲の物理ブロック２１１の分散管理情報２１４に基づいて、書き込み管理テーブル１１２１を生成し、読み書きメモリ１１３上に格納する。但し、全てのビット値が１の時刻情報７１１については、アドレス範囲特定情報１８０１が書き込み未であると判断する。
【０１１９】
なお、不揮発性記憶システムの記憶媒体である不揮発性記憶装置１２３が出荷された後、最初に使用される際は、不揮発性メモリ１１１５の物理ブロック２１１は全て消去された状態となっている。実際は、システム領域に所定の値が書き込まれているが、ここではこの状態を省略して説明する。工場出荷直後は、最下位（図１２の上側）の８１８９＿ａ０〜８１８９＿ｄ０の４ページを、アドレス管理テーブル１１１２として読み書きメモリ１１３に読み込む。このとき、有効なデータは不揮発性メモリ１１１５に記憶されていないため、図１６に示す物理領域管理テーブル１１１１は全て無効ブロックの「１１」を記憶している。また、図１７に示す書き込み管理テーブル１１２１は、全て書き込み未の状態を示す「１」を記憶している。
【０１２０】
上記のように、アドレス変換テーブル１１１０、物理領域管理テーブル１１１１及び書き込み管理テーブル１１２１を読み書きメモリ１１３に書き込んだあと、メモリコントローラ１０１は、アクセス装置１００からの読み書き等のコマンドの受付状態に入る。
【０１２１】
［アドレス範囲内のデータの書き込み処理］
図１９に、アドレス範囲の切り替えが無い場合の書き込み処理を示す。なお、第１の実施形態においては不揮発性メモリ１１５へのアクセスは１６ｋＢ単位であったが、第２の実施形態においては２ｋＢ単位である。図１９においては、データライト期間ＴＡ０において、アドレス範囲０内の論理アドレス０＿ａ０で示される物理ブロック２１１のページ０に２ｋＢのデータが書き込まれ、次のデータライト期間ＴＢ１において、アドレス範囲０内の論理アドレス０＿ｂ０で示される物理ブロック２１１のページ０に２ｋＢ分のデータが書き込まれる。ライトコマンド及びアドレス／データ転送期間Ｔａ１、イレーズビジー期間Ｔａ２、及びプログラムビジー期間Ｔａ３については、第１の実施形態の図９と同じである。
【０１２２】
特許文献１に示すような従来の半導体メモリ装置は、２ｋＢ分のデータを書き込んだ後に、読み書きメモリ１１３に一時記憶されたアドレス管理テーブル１１１２を不揮発性メモリ１１１５に書き戻す処理がなされており、その時間的オーバヘッドが処理速度を下げる要因となっていた。一方、本発明の第２の実施形態においては、アドレス範囲が切り替わらない場合は、読み書きメモリ１１３に一時記憶されたアドレス管理テーブル１１１２を不揮発性メモリ１１１５に書き戻す処理は行わず、データの書き込みの時に併せて分散管理情報２１４をユーザデータ領域１１１６に書き込むことにより、上述したオーバヘッドの合理化を行っている。
【０１２３】
［アドレス範囲が切り替わる場合のデータの書き込み処理］
図２０に、アドレス範囲の切り替えがある場合の書き込み処理を示す。図２０は、アドレス範囲１２０１が「３」から「４」に切り替わる場合を例としている。データライト期間ＴＡ３とデータライト期間ＴＡ０との間が、アドレス範囲切替時点ＴＳである。
【０１２４】
データライト期間ＴＡ３において、３＿ｄ１の物理ブロック２１１のページ１にデータが書き込まれた後、アドレス範囲切替部１０５は、アクセス装置１００からアドレス範囲４を指定する論理アドレス１４００を受け取ると、アドレス範囲が「３」から「４」に切り替わったことを検知する。これにより、アドレス範囲３に対する処理は終了し、データライト期間ＴＡ３とデータライト期間ＴＡ０との間が、アドレス範囲切替時点ＴＳとなる。
【０１２５】
次のデータライト期間ＴＡ０において、４＿ａ０の物理ブロック２１１のページ０にデータが書き込まれる。このとき、アドレス管理テーブル制御部１０８は、アドレス範囲４へ書き込みを行うために確保した物理ブロックナンバー１４１２をアドレス変換テーブル１１１０の新規確保ブロックに書き込む。
【０１２６】
その後、ＡＴライト期間ＴＢにおいて、読み書きメモリ１１３に一時的に記憶されたアドレス変換テーブル１１１０、物理領域管理テーブル１１１１及び書き込み管理テーブル１１２１が、不揮発性メモリ１１１５のアドレス管理テーブル領域１１１７に格納される。
【０１２７】
次に、アドレス範囲特定情報ライト期間ＴＤにおいて、アドレス範囲「４」を含むアドレス範囲特定情報１８０１が、不揮発性メモリ１１１５のカレントアドレス範囲ナンバー記憶領域１１８に書き込まれる。この処理を行うことにより、電源遮断などの障害が発生したとき、その直後の起動時に、どのアドレス範囲の処理中に電源遮断などの障害が起きたかを判別できる。
【０１２８】
ライトコマンド及びアドレス／データ転送期間Ｔａ１、Ｔｂ１、Ｔｄ１、イレーズビジー期間Ｔａ２、Ｔｂ２、Ｔｄ２、及びプログラムビジー期間Ｔａ３、Ｔｂ３、Ｔｄ３、についての詳細は、第１の実施形態の図１０と同じである。
【０１２９】
本実施形態は、初期化処理時に、全ての論理ブロックナンバー１４１１に対するアドレス変換テーブル１１１０と、アドレス変換テーブル１１１０に含まれる全ての物理ブロックナンバー１４１２に対する物理領域管理テーブル１１１１とが読み書きメモリ１１３に格納されているため、図１０のＡＴリード期間ＴＣを設けなくて良い。
【０１３０】
上記のように、本実施形態の不揮発性記憶装置１２３は、データの書き込み毎にアドレス管理テーブル１１１２を不揮発性メモリ１１１５に書き戻さない。そのため、電源遮断等の障害が起きた場合の不揮発性メモリ１１１５上のアドレス管理テーブル１１１２は、最新のアドレス管理情報でない場合がある。そこで、アドレス範囲特定部１０６が電源遮断等の障害が起きた直後の起動時に、電源遮断等の障害が起きた時のアドレス範囲を特定し、そのアドレス範囲に記憶されている分散管理情報２１４に基づき、アドレス管理テーブル生成部１０７が読み書きメモリ１１３上に書き込み管理テーブル１１２１を生成している。
【０１３１】
［初期化処理に要する時間］
アドレス管理テーブル生成部１０７が不揮発性メモリアクセス部１０９を介して読み込むデータ量は、アドレス範囲内の分散管理情報２１４に限るので、比較的少ない時間で読み込むことができる。例えば不揮発性メモリ１１１５がマルチバンクページリード機能を備え、各ページ毎のマルチバンクページリードの所要時間が１００μ秒とすると、式（１１）により、約０．８ｍ秒で読み出しが完了する。
１００μ秒×８＝０．８ｍ秒      （１１）
【０１３２】
１ＧＢの容量をもつ半導体メモリ装置（フラッシュメモリチップが８枚分）の場合は、式（１２）により、約６．４ｍ秒となる。
０．８ｍ秒×８枚＝６．４ｍ秒      （１２）
【０１３３】
一方、特許文献２に示すような従来の半導体メモリ装置は、全領域の分散管理情報の読み出し時間は式（１３）により、約６４００ｍ秒となる。
１００μ秒×８ｋ×８＝６４００ｍ秒      （１３）
【０１３４】
この値はユーザの起動時の待ち時間としては長時間であるといえる。このような問題は、半導体メモリ装置の容量が大きくなればなる程、致命的な問題となる。しかし、本実施形態によれば、短時間で初期化処理を行うことができる。
【０１３５】
［データの書き換えレート］
次に、書き込み速度の向上に関して、以下定量的に説明する。図１９に示したデータライト期間ＴＡ０、ＴＡ１及び図２０に示したデータライト期間ＴＡ３、ＴＡ０、ＡＴライト期間ＴＢ、アドレス範囲特定情報ライト期間ＴＤを各々１．５ｍ秒とする。
【０１３６】
特許文献１に示すような従来の半導体メモリ装置では、図１９のデータライト期間ＴＡ０、ＴＡ１の後にＡＴライト期間ＴＢが必要であったため、２ページ分のデータの書き込みは、式（１４）により、４．５ｍ秒を要していた。
１．５ｍ秒×３＝４．５ｍ秒      （１４）
【０１３７】
一方、本実施形態におけるアドレス範囲が切り替わらない場合の２ページ分のデータの書き込みは、式（１５）により３ｍ秒である。
１．５ｍ秒×２＝３ｍ秒      （１５）
【０１３８】
但し、本実施形態においては、図２０に示すようにアドレス範囲が切り替わる場合、アドレス範囲特定情報ライト期間ＴＤの分、従来例より余分に処理時間を要する。
【０１３９】
これを踏まえて、１つのアドレス範囲を２ｋＢ単位で全て書き換えるレート値を基準にして、本実施形態と特許文献１とを比較する。本実施形態において、１つのアドレス範囲の容量は１６ｋＢである。２ｋＢ単位の書き込みで１つのアドレス範囲を書き換える場合、式（１６）により、アクセス装置１００は８回の書き込みを指示することになる。
１６ｋＢ÷２ｋＢ＝８回      （１６）
【０１４０】
特許文献１に示すような従来の半導体メモリ装置の書き換えレートは、式（１７）に示すように、平均４４４ｋＢ／秒である。
１６ｋＢ÷（８回×４．５ｍ秒）≒４４４ｋＢ／秒      （１７）
【０１４１】
一方、本実施形態の不揮発性記憶装置１２３の書き換えレートは、式（１８）に示すように、平均５９３ｋＢ／秒である。本実施形態における不揮発性記憶装置１２３の方が、従来の半導体メモリ装置より高速に書き換えることができる。
１６ｋＢ÷｛（８回×３ｍ秒）＋（２回×１．５ｍ秒）｝≒５９３ｋＢ／秒      （１８）
【０１４２】
なお、論理アドレス範囲切り替え時の瞬間的な速度劣化は、数ｍ秒オーダであるので、アクセス装置１００側が通常備えているバッファを使用することにより、十分吸収することができる。これにより処理が破綻することはない。
【０１４３】
以上のように、本実施形態によれば、半導体装置のメモリ容量が大きくなっても、また電源遮断等の障害が発生した後においても起動時の初期化時間を極小化することができると共に、アドレス管理テーブル１１１２の更新における時間的なオーバヘッドを合理化し、結果として書き換えレートを向上できる。
【０１４４】
なお、図２０に代えて、図２１に示す書き込みシーケンスを用いて、アドレス範囲が切り替わったときの処理を行っても良い。図２１においては、ＡＴライト期間ＴＢはデータライト期間ＴＡ３の後に設けており、ＡＴライト期間ＴＢとデータライト期間ＴＡ０との間をアドレス範囲切替時点ＴＳとしている。
【０１４５】
なお、図１３における管理領域２１３は、分散管理情報２１４等に加え、時刻情報７１１を記憶しても良い。これにより、図１２のカレントアドレス範囲ナンバー記憶領域１１８に記憶されたアドレス範囲特定情報１８０１の時刻情報７１１と一致する物理ブロックのみの情報に基づき、アドレス管理テーブル領域に記憶された最新のアドレス管理テーブル１１１２を改訂することによって、真の最新のアドレス管理テーブル１１１２を生成することができる。
【０１４６】
また、読み書きメモリ１１３は、比較的高速にアクセスできればＲＡＭ以外の読み書きメモリを使用しても構わない。
【０１４７】
また、不揮発性メモリ１１１５は１つのフラッシュメモリチップを用いて構成してもよいし、複数のフラッシュメモリチップを用いて構成してもよい。また不揮発性メモリ１１１５は、フラッシュメモリ以外の不揮発性メモリを用いても良い。
【０１４８】
また、本実施形態のアドレス管理テーブル領域１１１７のように、アドレス管理テーブル１１１２の記憶位置を物理的に固定させるのではなく、アドレス管理情報用の領域の物理アドレスを指し示すポインタ情報を別に設けて、ユーザデータ領域１１１６と同じ領域にアドレス管理テーブル１１１２を混在させ、ポインタ情報に応じて記憶位置を移動させるようにしてもよい。
【０１４９】
また、時刻情報７１１等のアドレス範囲を特定する為のアドレス範囲特定情報１８０１を、不揮発性メモリ１１１５のカレントアドレス範囲ナンバー記憶領域１１８に記憶するようにしたが、不揮発性メモリ１１１５以外の不揮発性メモリを別に設け、そこに記憶するようにしても構わない。
【０１５０】
また、アドレス範囲特定情報１８０１は、アドレス範囲が切り替わった際に、切り替え後のアドレス範囲に対応するアドレス管理テーブル１１１２に組み込んだ形で、不揮発性メモリ１１１５に書き戻すようにしても構わない。但し、その場合は電源立ち上げ後の初期化において、アドレス管理テーブル領域１１１７内の全てのアドレス範囲０〜８１８８に対応する最新のアドレス管理テーブル１１１２を調べ、最も直近の時刻情報７１１を含むアドレス管理テーブル１１１２内に記憶されたアドレス範囲ナンバー１７１２を電源遮断がなされた時刻におけるアドレス範囲ナンバー１７１２と判断する。そこに書かれている切替時のアドレス範囲ナンバー１７１２を、電源遮断などの障害が起きた時点でアクセス装置１００からの書き込み指示等が転送されていたアドレス範囲ナンバー１７１２と特定することができる。
【産業上の利用可能性】
【０１５１】
本発明の不揮発性記憶装置は、フラッシュメモリなどの不揮発性メモリを使用したメモリカード等の記憶媒体を用いて、高速書き込みと初期化時間短縮とを両立できるという効果を有し、静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、あるいは携帯電話等のポータブル通信機器の記録媒体として有益である。
【図面の簡単な説明】
【０１５２】
【図１】本発明の第１の実施形態における不揮発性記憶システムの構成を示すブロック図
【図２】第１の実施形態における不揮発性メモリの内部構成を示す図
【図３】第１の実施形態における物理ブロックの構成を示す図
【図４】第１の実施形態における論理アドレスのフォーマットを示す図
【図５】第１の実施形態におけるアドレス変換テーブルを示す図
【図６】第１の実施形態における物理領域管理テーブルを示す図
【図７】第１の実施形態におけるアドレス範囲切替部の構成を示す回路図
【図８】第１の実施形態におけるアドレス範囲特定情報を示す図
【図９】第１の実施形態におけるアドレス範囲が切り替わらない場合の書込みシーケンスを示す図
【図１０】第１の実施形態におけるアドレス範囲が切り替わる場合の書込みシーケンスを示す図
【図１１】本発明の第２の実施形態における不揮発性記憶システムの構成を示すブロック図
【図１２】第２の実施形態における不揮発性メモリの内部構成を示す図
【図１３】第２の実施形態における物理ブロックを示す図
【図１４】第２の実施形態における論理アドレスのフォーマットを示す図
【図１５】第２の実施形態におけるアドレス変換テーブルを示す図
【図１６】第２の実施形態における物理領域管理テーブルを示す図
【図１７】第２の実施形態における書き込み管理テーブルを示す図
【図１８】第２の実施形態におけるアドレス範囲特定情報を示す図
【図１９】第２の実施形態におけるアドレス範囲が切り替わらない場合の書込みシーケンスを示す図
【図２０】第２の実施形態におけるアドレス範囲が切り替わる場合の書込みシーケンスを示す図
【図２１】第２の実施形態におけるアドレス範囲が切り替わる場合の別の書込みシーケンスを示す図
【符号の説明】
【０１５３】
１００  アクセス装置
１０１  ホストＩ／Ｆ部
１０２  ＣＰＵ
１０３  ＲＡＭ
１０４  ＲＯＭ
１０５  アドレス範囲切替部
１０６  アドレス範囲特定部
１０７  アドレス管理テーブル生成部
１０８  アドレス管理テーブル制御部
１０９  不揮発性メモリアクセス部
１１０  アドレス変換テーブル
１１１  物理領域管理テーブル
１１２  アドレス管理テーブル
１１３  読み書きメモリ
１１４  メモリコントローラ
１１５  不揮発性メモリ
１１６  ユーザデータ領域
１１７  アドレス管理テーブル領域
１１８  カレントアドレス範囲ナンバー記憶領域
１２２  メモリ制御部
１２３  不揮発性記憶装置
１２４  アドレス範囲制御部
１１１０  アドレス変換テーブル
１１１１  物理領域管理テーブル
１１１２  アドレス管理テーブル
１１１５  不揮発性メモリ
１１１６  ユーザデータ領域
１１１７  アドレス管理テーブル領域
１１２１  書き込み管理テーブル
【図１】
0004884382.tif 000002
【図２】
0004884382.tif 000003
【図３】
0004884382.tif 000004
【図４】
0004884382.tif 000005
【図５】
0004884382.tif 000006
【図６】
0004884382.tif 000007
【図７】
0004884382.tif 000008
【図８】
0004884382.tif 000009
【図９】
0004884382.tif 000010
【図１０】
0004884382.tif 000011
【図１１】
0004884382.tif 000012
【図１２】
0004884382.tif 000013
【図１３】
0004884382.tif 000014
【図１４】
0004884382.tif 000015
【図１５】
0004884382.tif 000016
【図１６】
0004884382.tif 000017
【図１７】
0004884382.tif 000018
【図１８】
0004884382.tif 000019
【図１９】
0004884382.tif 000020
【図２０】
0004884382.tif 000021
【図２１】
0004884382.tif 000022