(57)【要約】【課題】フラッシュメモリの長寿命化を図る【解決手段】フラッシュメモリの物理的記憶領域をセグメント単位で分割し、論理−物理アドレス変換テーブルは、セグメントごとに設ける。そのうえで、初期化時において、論理−物理アドレス変換テーブルにおいて物理アドレス範囲に対応させる論理アドレス範囲を、それまで他のセグメントに対応させていたものに変更する。【選択図】図６
2006209608.tif 000002
【特許請求の範囲】
【請求項１】
メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、上記単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この上記論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手段と、
上記メモリを初期化するときに、１つの集合領域の上記論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の１つの集合領域の上記論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手段と、
を備えることを特徴とするメモリ制御装置。
【請求項２】
上記メモリ管理手段は、
アドレス値が連続する所定の論理アドレス範囲を分割したうえで、
論理−物理アドレス対応情報における物理アドレス範囲と対応付けられる１つの論理アドレス範囲について、上記分割されたアドレス範囲の１つを含めるようにして形成する、
ことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
上記メモリ管理手段は、
分割の対象としての上記アドレス番号が連続する所定の論理アドレス範囲を、メモリに記憶されるデータを所定の情報単位により管理するための管理情報としてのデータに対応付けた論理アドレス範囲とする、
ことを特徴とする請求項２に記載のメモリ制御装置。
【請求項４】
メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、上記単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この上記論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手順と、
上記メモリを初期化するときに、１つの集合領域の上記論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の１つの集合領域の上記論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手順と、
を実行することを特徴とするメモリ制御方法。
【請求項５】
メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、上記単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この上記論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手順と、
上記メモリを初期化するときに、１つの集合領域の上記論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の１つの集合領域の上記論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手順とを、
メモリ制御装置に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばフラッシュメモリなどの不揮発性のメモリ素子を対象として、データ書き込み／読み出しなどについての制御を行うメモリ制御装置、及びその方法と、このようなメモリ制御装置が実行すべきプログラムに関するものである。
【背景技術】
【０００２】
近年、リムーバブルメディアとして、例えばフラッシュメモリなどの不揮発性の半導体記憶素子を備えて、各種のデータの書き込み／読み出しが可能とされた小型の記憶装置（半導体記憶装置）が知られている。
【０００３】
このような半導体記憶装置に備えられるフラッシュメモリは、特性として、データの上書きは不可であり、消去されている状態から書き込みを行うべきことが知られている。また、データの消去は、フラッシュメモリとしての記憶領域を所定サイズに分割したブロックといわれる物理的な記憶領域単位を最小単位として行われ、データの書き込みは、ブロックをさらに所定サイズに分割したページといわれる記憶領域単位を最小単位として行われる。そのうえで、フラッシュメモリの物理特性としては、消去の繰り返し回数により決まる寿命がある。このために、データの書き込み（更新）は次のようにして行われる。
【０００４】
実際にデータの更新を行うときには、例えば、更新対象のデータが書き込み済みとなっているブロックからデータを読み出して、この読み出したデータと更新のための追加データなどを利用して更新されたデータを生成する。そして、この段階で消去済みとなっている他の特定ブロックに対して、この更新されたデータを書き込むようにされる。そのうえで、上記更新対象のデータが書き込まれていたブロックについては、データを消去するようにされる。
つまり、データを更新するときには、更新前のデータが書き込まれていたブロックに再度書き込むことはせずに、他の消去状態にあるブロックを選択して書き込みを行うようにされる（ブロック交替処理）。これにより、１つのブロックに対してデータの消去／書き込みが集中しないようにして、フラッシュメモリ全体としての寿命をのばすことが可能となる。
【０００５】
上記したブロック交替処理は、フラッシュメモリを記憶媒体として使用するのにあたり、長寿命化を目的として規定される基本的な仕様となっている。そのうえで、フラッシュメモリに記録されるデータの管理は、例えばＦＡＴ(File Allocation Table)などのファイルシステムを採用することが広く行われている。また、このファイルシステムに対応するファイルの管理情報についても、通常、そのファイルシステムフォーマットに準拠したデータ配置構造によりフラッシュメモリに記憶させるようにしている。
【０００６】
例えばＦＡＴなどのファイルシステムフォーマットでは、その管理情報を、下位側のアドレスに配置するようになっている。ファイルシステムの管理情報は、ユーザデータと比較して頻繁に書き換え（更新）が行われる。このことをフラッシュメモリと対応させると、下位側のアドレスに対応する特定の記憶領域範囲において、ブロック交替処理が頻繁に発生するということになる。つまり、フラッシュメモリにおける一部の記憶領域のみが頻繁に使用される状況となる。このような状況が続けば、他のアドレス範囲の記憶領域は未だ消去回数に余裕があるのにもかかわらず、管理情報が配置される記憶領域における消去の繰り返し回数が制限値に達することとなり、結果的にフラッシュメモリが使用できなくなる時期を早めてしまう、という不都合が生じることになる。
【０００７】
そこで、例えば特許文献１として示すように、フォーマットの書き換え時（初期化時）において、ファイルシステムの管理情報の領域である管理領域（及び交替領域）が、初期化前におけるユーザデータ領域内に配置されるようにして、領域移動を行う技術が示されている。このようにして領域移動を行うことで、使用頻度の高い記憶領域が固定せずに、初期化処理ごとに変更されることとなり、記憶領域全体における使用頻度の均一化が図られる。この結果、フラッシュメモリ全体としての寿命が延長される。
【０００８】
【特許文献１】特開平８−３２９６１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明としても、フラッシュメモリなどに代表されるメモリ（記憶媒体）について、特定の記憶領域の使用が集中することによる短命化を回避して長寿命化が図られるようにすることを目的とするが、そのための処理構成、手順などについて、より効率的なものとなることを目指す。
【課題を解決するための手段】
【００１０】
そこで本発明は上記した課題を考慮して、メモリ制御装置として次のように構成する。  つまり、メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、上記単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手段と、メモリを初期化するときに、１つの集合領域の論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の１つの集合領域の論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手段とを備えることとした。
【００１１】
また、メモリ制御方法として、メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手順と、メモリを初期化するときに、１つの集合領域の論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の１つの集合領域の論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手順とを実行するように構成することとした。
【００１２】
また、上記メモリ制御方法としての手順をメモリ制御装置に実行させるようにしてプログラムを構成することとした。
【００１３】
上記各構成によれば、本発明においては、メモリ管理として、先ず、メモリの記憶領域を所定の固定長により分割した単位領域を規定し、この単位領域ごとに物理アドレスを対応させる。そのうえで、単位領域に書き込まれるべきデータに対応付けられる論理アドレスを規定して、この論理アドレスと物理アドレスとの対応を示す論理−物理アドレス対応情報を構築する。この論理−物理アドレス対応情報によりメモリ管理を行うようにされる。また、この論理−物理アドレス対応情報を使用してのメモリ管理は、所定の連続する物理アドレスの範囲に対応する単位領域を集合して形成される集合領域ごとに行うようにされる。つまり、論理−物理アドレス対応情報は、上記集合領域ごとに構築される。
そして、メモリを初期化するのに際しては、１つの集合領域を管理する論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の１つの集合領域の上記論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして、論理−物理アドレス対応情報を再構築する。
上記のようにして論理−物理アドレス対応情報が再構築されることによっては、初期化前と初期化後とで集合領域に対応する論理アドレス範囲が変更されることになる。メモリに書き込まれるべきデータは論理アドレスとの対応が付けられる。
このことから、例えば、更新頻度が高いとされる内容のデータが存在するとした場合、この高更新頻度のデータは、本発明による対応情報の再構築によって、初期化前とは異なる集合領域の単位領域を使用して更新が行われることになる。つまり、メモリの物理的記憶領域において使用頻度が高いとされる領域を、集合領域単位で移動させていくことができる。これにより、メモリの物理的記憶領域の使用頻度を分散させて均一化を図ることが可能になる。
【発明の効果】
【００１４】
このようにして本発明によっては、メモリの物理的記憶領域の使用頻度の均一化を図ることで、書き込みデータ内容の変更回数などに応じて寿命が決まっているメモリについての長寿命化（使用可能時間の延長）を図ることが可能になる。また、このためには、集合領域ごとに対応する対応情報について論理アドレス範囲を変更設定するという簡易な処理を実行すればよい。つまり、処理負担も軽く、効率的である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態（以下、実施の形態ともいう）について説明していく。本実施の形態では、半導体記憶素子としてフラッシュメモリを備える半導体記憶装置を例に挙げることとする。この半導体記憶装置は、１つの独立したリムーバブルメディアとしての形態を採り、外形形状としては、例えば小型の板状となっている。
【００１６】
図１は、本実施の形態の半導体記憶装置１の内部構成例を示している。
この図に示すようにして、半導体記憶装置１は、フラッシュメモリ２、データ処理部３、及び通信処理部４を備えて成る。
【００１７】
フラッシュメモリ２は、周知のようにして、半導体による不揮発性の記憶素子の１つであり、この場合には、所定の記憶容量を有するものが備えられる。
【００１８】
データ処理部３は、半導体記憶装置１におけるデータ処理として、フラッシュメモリ２に対するデータの書き込み（消去）／読み出しについての制御、処理を実行する。このために、データ処理部３は、フラッシュメモリに記憶されている、データ書き込み／読み出しのための所要の情報により形成される管理情報を利用する。また、データ処理部３は、この管理情報についての更新などをはじめとする、管理情報についての管理も行うようにされる。また、データ処理部３は、ホストシステム１０との通信を行うために通信処理部４に対する通信制御も実行する。
なお、データ処理部３としては、例えばＣＰＵ、ＲＯＭ及びＲＡＭなどを備えるマイクロコンピュータとして構成される。
【００１９】
通信処理部４は、ホストシステム１０とデータ処理部３との間で、所定の通信方式による通信を行うためのハードウェアデバイスなどを備えて成る。
通信処理部４では、所定の通信方式によりホストシステム１０から送信されてきたコマンド（レスポンス）、データなどの情報を受信、デコードし、半導体記憶装置１内部のデータ通信方式に従った形式のデータに変換してデータ処理部３に対して転送する。データ処理部３は、通信処理部４から転送されてきたコマンド、データなどを受信したのに応じて、コマンドに応答した処理や、フラッシュメモリ２へのデータ書き込みなどの処理を実行する。
また、例えばデータ処理部３が、コマンド（レスポンス）を送信したり、フラッシュメモリ２から読み出したデータをホストシステム１０に転送する場合には、データ処理部３は、これらのコマンド、データなどを通信処理部４に転送して、ホストシステム１０に対して送信するように指示を行う。これに応じて通信処理部４は、データ処理部３から転送されてきたコマンド、データを、ホストシステム１０との通信方式に従った形式に変換してホストシステム１０に送信する。
【００２０】
ホストシステム１０は、例えば所定の機能を備える電子機器であり、リムーバブルメディアである半導体記憶装置１を装脱するためのスロット部位を備えている。そして、このスロットに装填された半導体記憶装置１に対して、データの書き込み／読み出しを行うことが可能とされている。
この場合のホストシステム１０がどのような機器であるのかについては、ここでは特に限定されるべきものではないが、例えばパーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオレコーダ、携帯電話などを挙げることができる。デジタルスチルカメラを例にとると、撮影操作に応じて生成された写真としての画像データを半導体記憶装置１に対して転送して、フラッシュメモリ２に記憶させるようにする。また、例えば半導体記憶装置１（フラッシュメモリ２）から写真の画像データを読み出して取り込み、液晶ディスプレイパネルなどの表示部に表示出力させることなどが行われる。
【００２１】
図２は、フラッシュメモリ２の物理フォーマットを示している。
フラッシュメモリとしての記憶領域全体は、図２（ａ）に示すようにして、先ず、所定の固定長によるセグメント単位で分割される。
また、１セグメントは、図２（ｂ）に示すようにして、所定の固定長によるブロック（消去単位領域）０〜ｎにより分割される。周知のようにして、フラッシュメモリは、データの上書きはできないことになっており、データの書き込みは、消去済みの領域に対して行われる。そして、このブロックは、データを消去するときの最小単位となる。
本実施の形態に対応するフォーマットでは、原則として、１セグメントは５１２ブロックにより分割されて成る。この場合、図２（ｂ）に示される最終のブロック番号ｎは５１１となる。また、図２（ａ）において示されるセグメント０〜Ｍで表されるＭ＋１個のセグメントは、それぞれ５１２ブロックごとの単位で分割されることになる。
【００２２】
この図２（ａ）にはフラッシュメモリの領域に対応してブロックアドレス（物理アドレス）が示されている。このブロックアドレスとセグメント０〜Ｍの対応としては、セグメント０がブロックアドレス０〜５１１となり、セグメント１がブロックアドレス５１２〜１０２３、セグメント２がブロックアドレス１０２４〜１５３５となる。つまり、セグメント番号が１つ増加するごとに、５１２ブロック分オフセットが与えられたブロックアドレスの値をとっていくことになる。
そして、１つのフラッシュメモリ内におけるデータ用セグメントの数（Ｍ）は１以上であることが規定されるが、これについてはフラッシュメモリの容量に応じて異なってくることになる。
また、図２（ａ）においては、セグメント０内の先頭においてシステム用セグメントが記されているが、これについては、後述する。
【００２３】
そして、図２（ｂ）に示したブロックの各々は、図２（ｃ）に示すようにして、ページ０〜ｍにより分割される。
１ページは固定長であり、図２（ｄ）に示すように、所定サイズのデータ部と冗長部より成る。データ部にはデータを格納する領域であり、冗長部は、各種の所要の管理情報などが格納される領域となる。
データ書き込みについては、このページが最小単位となる。つまり、フラッシュメモリ２は、データの消去はブロック単位で行われ、データの書き込みはページ単位で行われるべきものとなっており、データ消去単位とデータ書込単位のデータサイズが相互に異なるものとなっている。なお、ブロック内におけるページ数は、固定的に規定されているものではなく、例えばこれまでにおいては、１６（ｍ＝１５），３２（ｍ＝３１），６４（ｍ＝６３）などのページ数の構造とすることが行われている。
【００２４】
上述したフラッシュメモリの物理フォーマットを踏まえたうえで、フラッシュメモリのファイル管理において定義される物理アドレスと論理アドレスの概念について、図３を参照して説明する。図３は、データの更新手順を示している。
図３（ａ）は、データ更新処理前の状態として、或るセグメント内から４つのブロックを抜き出して、これを模式的に示している。
フラッシュメモリにおいて物理的に存在する各ブロック（物理ブロック）に対しては物理アドレスが付される。この物理アドレスはメモリにおける物理ブロックの物理的な配列順に従って決まるもので、或る物理ブロックとこれに対応付けされた物理アドレスとの関係は不変となる。図２（ａ）において示されていたブロックアドレスは、この物理アドレスとなる。
ここでは、図３（ａ）に示す４つのブロックに対して、上から順に物理アドレスの値として、１０５，１０６，１０７，１０８が付されている。
【００２５】
ここで、図３（ａ）に示すように、物理アドレス１０５，１０６で示されるブロックがデータの記憶されている書込済ブロックで、物理アドレス１０７，１０８で示されるブロックがデータが消去（即ち、未記録領域である）された消去済ブロックとなっている状態であるとする。
【００２６】
そして、論理アドレスであるが、この論理アドレスは、ブロックに対して書き込まれたデータに付随するようにして割り振られるアドレスとされる。そして、この論理アドレスが、ファイルシステムとして、論理アドレス、物理アドレス管理層の上層に位置するとされる、ファイルシステムが利用するアドレスとされている。本実施の形態では、ファイルシステムのフォーマットとして、ＦＡＴ(File Allocation Table)を採用することとしている。
図３（ａ）では、４つの各ブロックに対して、上から順に論理アドレスの値として、１０２，１０３，１０４，１０５が付されている状態が示されている。なお、論理アドレスも実際には２バイトにより表現されるものである。
【００２７】
ここで、上記図３（ａ）に示す状態から、例えば物理アドレス１０５に格納されているデータの更新として、内容の書き換え、追加、又は一部消去を行うとする。
このような場合、フラッシュメモリのファイルシステムでは、同じブロックに対して更新したデータを再度書き込むことはせずに、消去済ブロックに対してその更新したデータを書き込むようにされる。
つまり、例えば図３において処理１となる図３（ａ）から図３（ｂ）の遷移として示すようにして、物理アドレス１０５のブロックに書き込まれていたデータについての更新データは、これまで未使用ブロックであった物理アドレス１０７で示されるブロックに書き込むようにされる。そして、物理アドレス１０５のブロックのデータについては消去するようにされる。
【００２８】
続いては、処理２として示すように、データ更新前（図３（ａ））の状態では物理アドレス１０５に対応していた論理アドレス１０２が、更新されたデータが書き込まれたブロックの物理アドレス１０７に対応するように、論理アドレスと物理アドレスとの対応関係についての変更を行う。これに伴って、データ更新前は物理アドレス１０７に対応していた論理アドレス１０４については、物理アドレス１０５に対応するように変更されている。
【００２９】
つまり、物理アドレスはブロックに対して固有に付されるアドレスであり、論理アドレスは、一旦ブロックに対して書き込まれたデータに付随するようにしてついて回る、ブロック単位の書き込みデータに固有となるアドレスであるとみることができる。
【００３０】
周知のようにして、フラッシュメモリとしての半導体素子には寿命があり、この寿命は、データの消去回数により決まる。そこで、上記したようなデータの書き込み（更新）手順とすることで、或る同一の記憶領域（ブロック）に対して繰り返し集中的にアクセスされることが無くなり、フラッシュメモリの寿命を延ばすことが可能となる。
そして、この際に論理アドレスを上記処理２のようにして扱うことで、更新前と更新後のデータとで書き込まれるブロックの交替があるようにされても、ＦＡＴは論理アドレスによりファイル管理を行っているために、ＦＡＴ側からは同一のアドレスが見えることになり、以降のアクセスを適正に実行することができるものである。
なお、後述する論理−物理アドレス変換テーブル上での更新のための管理を簡略にすることなどを目的として、上記したようなデータ書き込み対象とするブロックの交替は、１セグメント内で完結するものとして規定されており、セグメント間で跨るようにしては行われない。
【００３１】
上記図３に示したようにしてブロックの交替を伴ってデータの書き込みが行われることで、物理アドレスと論理アドレスの対応は変化する。従って、フラッシュメモリに対するデータの書き込み及び読み出しのためのアクセスを実現するには、物理アドレスと論理アドレスとの対応が示される論理−物理アドレス変換テーブルが必要となる。つまり、論理−物理アドレス変換テーブルをＦＡＴが参照することで、ＦＡＴが指定した論理アドレスに対応する物理アドレスが特定され、この特定された物理アドレスにより示されるブロックにアクセスすることが可能になるものである。逆に言えば、論理−物理アドレス変換テーブルが無ければ、ＦＡＴによるフラッシュメモリへのアクセスが不可能となる。
【００３２】
図４は、論理−物理アドレス変換テーブルの概念を示している。
この図に示すようにして、論理−物理アドレス変換テーブルとしては、例えば、先ず論理アドレスの値を昇順に整列させることことしている。そして、各論理アドレスごとに、対応させるべき物理アドレスを格納するようにしてテーブル情報を構築する。
なお、先に図３により説明したデータ書き込み時におけるブロックの変更はセグメントの範囲内で行われるので、上記図４に示した構造概念の論理−物理アドレス変換テーブルは、セグメントごとに設けられるものとなる。
【００３３】
図５は、フラッシュメモリ２において複数のセグメント（データ用セグメント）が設定されている場合の物理ブロック（物理アドレス）と、論理アドレスの割り当て例を示している。
この図においては、各５１２ブロックの容量のセグメント０〜３の４セグメントが設定された例が示されている。そのうえで、この場合において、フラッシュメモリにおいて先頭となるセグメント０については、物理ブロックのアドレス、つまり、物理アドレスとしては、０〜５１１までの範囲が割与えられることになる。また、次のセグメント１の物理アドレスは５１２〜１０２３の範囲が割与えられ、さらに、セグメント２は、１０２４〜１５３５、セグメント３は、１５３６〜２０４７の物理アドレス範囲が割与えられることになる。
【００３４】
このような物理アドレス範囲の割り当てに対して、論理アドレス範囲の割り当ては例えば次のようになる。つまり、この場合には、１セグメントあたりの論理アドレスとしては、セグメント０には４９４個を割り当て、以降のセグメント１，２，３については、それぞれ４９６個を割り当てることとしている。これに応じて、セグメント０には論理アドレス０〜４９３の範囲の値を割り当て、また、セグメント１には論理アドレス４９４〜９８９、セグメント２には論理アドレス９９０〜１４８５、セグメント３には論理アドレス１４８６〜１９８１の各範囲の値を割り当てる。
【００３５】
従って、セグメント０の論理−物理アドレス変換テーブルとしては、論理アドレス０〜４９３のそれぞれに対して、物理アドレス０〜５１１のいずれかを対応させることになる。
また、セグメント１の論理−物理アドレス変換テーブルは、論理アドレス４９４〜９８９のそれぞれに対して、物理アドレス５１２〜１０２３の何れかを対応させ、セグメント２の論理−物理アドレス変換テーブルは、論理アドレス９９０〜１４８５のそれぞれに対して、物理アドレス１０２４〜１５３５の何れかを対応させ、セグメント３の論理−物理アドレス変換テーブルは、論理アドレス１４８６〜１９８１のそれぞれに対して、物理アドレス１５３６〜２０４７の何れかを対応させることになる。
【００３６】
ところで、図５によると、１セグメントは物理的に５１２ブロックに分割されるのに対して、１セグメントあたりの論理アドレス数は４９４又は４９６となっており物理ブロック数よりも少ない。これは、１セグメント内において、例えば余剰ブロックといわれる通常のデータ書き込みには使用しない特殊用途のブロックが所定数存在することが規定されていることや、或るブロック数までのディフェクト（不良：使用不可領域）が許可されており、現実には、相当数の不良（ディフェクト）ブロックが存在することに依る。このことに基づいたうえで、フラッシュメモリ２の実際の仕様などを考慮すると、この場合においては、書き込み／消去が有効なブロックを管理するのに、１セグメントあたり、４９０前後の数のブロックを管理できるように構成しておけば充分であるとしているものである。なお、このセグメントごとの論理アドレス範囲数は適宜変更されてよいものであり、必ずしも、４９４あるいは４９６に限定される必要はない。
【００３７】
ところで、上記のようにしてフラッシュメモリの物理的記憶領域全体をセグメントで分割し、このセグメントごとに論理−物理アドレス変換テーブルを設けてメモリ管理（分割管理）を行うことには、次のようなメリットがある。
例えば、論理−物理アドレス変換テーブルによるメモリ管理を、フラッシュメモリの記憶領域全体を対象として一括に行うこととすると、１つの論理−物理アドレス変換テーブルにより、フラッシュメモリの記憶領域における全ての物理ブロックを管理することとなる。論理−物理アドレス変換テーブルを参照して、目的の物理アドレス又は論理アドレスを検索するのに要する時間の平均は、検索範囲となる物理ブロックの数、つまり、論理−物理アドレス変換テーブル上で管理する物理ブロック数に比例する、ということがいえる。従って、上記のようにして、論理−物理アドレス変換テーブルによるメモリ管理を、フラッシュメモリの記憶領域全体で一括的に行った場合には、目的の物理アドレス又は論理アドレスの検索に要する平均時間がそれだけ長くなる。
そこで、論理−物理アドレス変換テーブルによるメモリ管理について、セグメント単位により分割して行うようにすれば、各セグメントごとに対応する論理−物理アドレス変換テーブルのそれぞれが管理する物理ブロック数は、セグメント単位により分割されることなって、その分、記憶領域全体に対応する物理ブロック数よりも少なくなる。そして、論理アドレス又は物理アドレスの検索は、この検索対象の論理アドレス又は物理アドレスを含む論理−物理アドレス変換テーブルのみを参照して実行すればよいことになる。つまり、分割管理によっては、論理−物理アドレス変換テーブルの検索に要する平均時間が短縮される。
【００３８】
また、論理−物理アドレス変換テーブルは、実際においては、マップ情報の形式により保持する場合が多い。このマップ情報の論理−物理アドレス変換テーブルでは、例えば論理アドレスごとに物理アドレスの格納領域を対応させる構造とすることが行われる。
この場合において、１つの論理−物理アドレス変換テーブルによりフラッシュメモリの記憶領域全体を一括的に管理することとした場合には、物理アドレスの格納領域について、フラッシュメモリの記憶領域全体における最大ブロック番号（ブロック数）までを表現可能なだけのビット数を与える必要がある。これに対して、分割管理を行うこととすれば、上記もしているように、セグメントごとが対応する物理アドレス数（ブロック数）は、記憶領域全体に対応する物理ブロック数よりも少なくなる。従って、論理−物理アドレス変換テーブルにおける物理アドレスの格納領域としては、対応するセグメントが有する物理アドレス数（ブロック数）までを表現可能な、より少ないビット数を設定することができる。分割管理を行う場合は、セグメントごとに０から始まる物理アドレス（ブロック番号）を使用したうえで、セグメントの位置に応じたオフセット値を与えるようにすれば、記憶領域全体における物理アドレス（ブロック番号）を適正に表現できるからである。
このようにして、分割管理を行うことによっては、論理−物理アドレス変換テーブルにおいて物理アドレスを格納する領域のビット数を削減することができる。この結果、フラッシュメモリの記憶領域全体に対応する論理−物理アドレス変換テーブルのサイズを縮小することが可能になる。
【００３９】
また、本実施の形態の半導体記憶装置１は、前述もしたように、ファイルシステムフォーマットとしてＦＡＴファイルシステムを採用することとしている。ＦＡＴファイルシステムは、メディアに記録されるユーザデータを、ツリー型ディレクトリ構造により、ファイル単位で管理するようにされており、このためのファイル管理情報として、ディレクトリエントリ及びＦＡＴ領域などを備える。
このファイル管理情報は、ＦＡＴファイルシステムのフォーマット（初期化）構造の規定に従った論理的配置によりメディアに記録すべきものとされており、ＦＡＴファイルシステムをフラッシュメモリに適用する場合にも、ファイル管理情報は、上記フォーマット（初期化）構造の規定に従って所定の論理的記憶領域に記憶される。ＦＡＴファイルシステムでは、特に、ＦＡＴ領域及びルートディレクトリエントリなどのファイル管理情報については、起動時におけるアクセス性などを考慮して、フォーマット（初期化）構造における下位側のアドレス（アドレス値の小さい側）に配置することとしている。このようなフォーマット（初期化）構造は、論理的に規定されるものであるから、本実施の形態のようにして論理−物理アドレス変換テーブルを設ける場合には、フォーマット（初期化）構造のアドレスは、論理アドレスが対応することになる。
このフォーマット構造におけるファイル管理情報の配置位置と、図５とを対応させると、ファイル管理情報は、０〜４９３の論理アドレス範囲に含まれるものとしてみることができる。従って、図５の場合において、ファイル管理情報の内容の更新があった場合には、論理アドレス範囲０〜４９３が対応するセグメント０内のブロックを使用してブロック交替処理が行われることになる。
【００４０】
一般に、ファイル管理情報は、ファイルなどを形成するユーザデータと比較すると、更新頻度は遙かに高い。このことからすると、図５に示すフラッシュメモリでは、ファイル管理情報が位置する論理アドレス範囲０〜１００を含むセグメント０において、最も高い頻度でブロックが使用される（ブロック交替処理が実行される）ということになる。
従来、例えば図５に示しているようなセグメントごとの物理アドレス範囲と論理アドレス範囲との対応は固定的なものとされている。このために、フラッシュメモリの使用経過に応じて、ブロックの使用は、ファイル管理情報が存在するセグメント０に集中することになる。これにより、半導体記憶装置１がデータ記録、更新に使用されるごとに、セグメント０におけるブロックの使用回数は、残るセグメントにおけるユーザデータの更新に伴うブロックの使用回数よりも高い率で増加していくことになる。この結果、最終的には、例えばセグメント１〜３においては、消去回数に充分余裕があるのにかかわらず、セグメント０において消去回数の上限に到達して使用不可のブロックが増加することとなり、フラッシュメモリ全体としても使用できなくなるような状態に至ることになる。つまり、一部の記憶領域への消去が集中したことが原因で、フラッシュメモリの短命化を招くことになる。
【００４１】
そこで、本実施の形態としては、上記したようなフラッシュメモリの短命化を避けて長寿命化を図ることを目的として、基本概念的には、フラッシュメモリのフォーマット処理（初期化処理）にあたり、図６に示す手順を実行するようにされる。
先ず、図６（ａ）においては、フラッシュメモリ２に関して、図５（ａ）と同様の物理アドレスと論理アドレスとの対応を設定した状態が示されている。そして、図６（ａ）に示す状態から、フラッシュメモリ２をフォーマットした場合には、図６（ｂ）に示すようにして、論理アドレス範囲０〜４９３が対応するセグメントを、セグメント０からセグメント３に変更する。また、これに伴い、論理アドレス範囲４９４〜９８９については、セグメント１からセグメント０に変更し、論理アドレス範囲９９０〜１４８５については、セグメント２からセグメント１に変更し、論理アドレス範囲１４８６〜１９８１については、セグメント３からセグメント２に変更する。
さらに、図６（ｂ）に示す状態の下でフォーマット処理が実行されたとすると、図６（ｃ）に示すようにして、論理アドレス範囲０〜４９３が対応するセグメントを、セグメント３からセグメント２に、論理アドレス範囲４９４〜９８９については、セグメント０からセグメント３に、論理アドレス範囲９９０〜１４８５については、セグメント１からセグメント０に変更し、論理アドレス範囲１４８６〜１９８１については、セグメント２からセグメント１に変更する。
さらにまた、図６（ｃ）に示す状態の下でフォーマット処理が実行されたとすると、図６（ｄ）に示すようにして、論理アドレス範囲０〜４９３が対応するセグメントを、セグメント２からセグメント１に、論理アドレス範囲４９４〜９８９については、セグメント３からセグメント２に、論理アドレス範囲９９０〜１４８５については、セグメント０からセグメント３に変更し、論理アドレス範囲１４８６〜１９８１については、セグメント１からセグメント０に変更する。
そして、図６（ｄ）の状態においてフォーマット処理が実行されたとすると、図６（ａ）の状態に変更するようにされる。
つまり、この場合においては、フォーマット処理が実行されるごとに、セグメントに対する論理アドレス範囲の対応を、セグメント番号順に従って循環（ローテーション）させるようにして変更していくようにされる。
また、確認のために述べておくと、この図６に示されるセグメントに対する論理アドレス範囲の対応の変更は、セグメントが対応する物理アドレス範囲に対する、論理アドレス範囲の対応を変更しているものである。つまり、セグメントごとの論理−物理アドレス変換テーブルにおける、論理アドレス範囲の対応を変更しているということになる。
【００４２】
このようにして、セグメント（物理アドレス範囲）に対する論理アドレス範囲の対応が変更されることで、例えば先に説明したファイル管理情報が記録される物理領域も、図６（ａ）ではセグメント０となるが、図６（ｂ）ではセグメント３となり、図６（ｃ）（ｄ）では、それぞれセグメント２，１となるようにして変更されることになる。つまり、ファイル管理情報に対応して使用頻度の高いとされる物理的記憶領域が、セグメント単位で移動するようにされる。
【００４３】
より具体的には、例えば、論理アドレス範囲０〜４９３のうちで、ファイル管理情報が使用する論理アドレス範囲は０〜９５の９６ブロック分であるとする。この場合、図６（ａ）に示した状態については、例えば図７（ａ）のようにして表すことができる。つまり、この状態において、ファイル管理情報の論理アドレス範囲０〜９５を含む論理アドレス範囲０〜４９３はセグメント０に対応しているので、実際のファイル管理情報としてもセグメント０の物理アドレス範囲０〜５１１を使用して更新が行われることになる。なお、この場合には、論理アドレス範囲０〜４９３において、論理アドレス９６〜９９までの４ブロック分は空き領域として確保することとして、論理アドレス範囲１００〜４９３までを、例えばユーザデータ領域として使用することとしている。
そして、図７（ａ）に示した状態の下でフォーマット処理を実行したとすると、図６（ａ）から図６（ｂ）への遷移と同様の論理アドレス範囲のローテーションが行われることになる。そして、この状態では、図７（ｂ）に示すようにして、論理アドレス範囲０〜４９３はセグメント３に対応するようにして変更され、これに伴って、論理アドレス範囲０〜９５のファイル管理情報としても、セグメント３に対応することとなる。
このようにして、論理アドレス範囲をセグメントに対応させて変更することで、ファイル管理情報（つまり更新頻度が高い情報）が使用する物理的記憶領域について、セグメント単位で変更が行われる結果となることが、図７において明確に示されている。
これにより、従来のようにして、使用頻度が高くなる物理的記憶領域を含むセグメントは、定常的に固定となることはなく、フォーマット処理ごとに変更されることになる。つまり、フラッシュメモリの物理的記憶領域全体についての使用頻度を均一的にすることが可能となるわけであり、これによるフラッシュメモリの長寿命化、延命化が図られることとなる。
【００４４】
なお、確認のために述べておくと、本実施の形態としての論理アドレス範囲のローテーション（変更）によっては、ファイル管理情報のみではなく、ユーザデータを記憶するためのデータ領域として使用されるフラッシュメモリの物理的記憶領域の使用頻度も均一化されることになる。つまり、ＦＡＴなどのファイルシステムでは、ユーザデータの書き込みにあたり、データ領域をアドレス（論理アドレス）の下位側から使用していくことが一般的である。従って、データ領域に関しても、論理アドレスの下位側となるほどデータの書き込みが集中しており使用頻度が高くなる傾向である。このことから、例えば図６及び図７により説明したようにして論理アドレス範囲のローテーションが行われることによっては、データ領域として使用される物理的記憶領域についても、その使用頻度が分散されることとなり、上記もしているように、使用頻度が均一化される。
【００４５】
続いて、図８を参照して、本実施の形態としての論理アドレス範囲のローテーションについての変形例について説明する。
先ず、図８（ａ）により、変形例としての基本的な論理アドレス範囲の割り当て設定について説明する。なお、この図においても、図６及び図７と同様にして、物理ブロック（アドレス）範囲０〜２０４７までの２０４８ブロックを、物理ブロック範囲０〜５１１のセグメント０、物理ブロック範囲５１２〜１０２３のセグメント１、物理ブロック範囲１０２４〜１５３５のセグメント２、物理ブロック範囲１５３６〜２０４７のセグメント３の４セグメントに分割している。また、論理アドレス範囲としては、ここでは全体で、０〜１９８３までの１９８４としたうえで、ファイル管理情報については、０〜９５の連続した論理アドレス値による論理アドレス範囲を割り当て、データ領域については、論理アドレス範囲１００〜１９８３を割り当てることとしている。論理アドレス範囲９６〜９９は、この場合にも空き領域として設定される。
【００４６】
そのうえで、この変形例としては、先ず、ファイル管理情報に割り当てられた論理アドレス範囲０〜９５について、０〜２３、２４〜４７、４８〜７１、７２〜９５の４つの論理アドレス範囲に分割する。また、ここでは、データ領域の論理アドレス範囲１００〜５６９については、１００〜５６９、５７０〜１０３９，１０４０〜１５１１、１５１２〜１９８３の４つの論理アドレス範囲に分割する。
そして、セグメント０〜３ごとの物理アドレス範囲に対応させる論理アドレス範囲としては、図８（ａ）において示されるようにして、パターンＡ，Ｂ，Ｃ，Ｄの４パターンを形成することとする。パターンＡは、論理アドレス範囲０〜２３と、論理アドレス範囲１００〜５６９とを含んで形成される。パターンＢは、論理アドレス範囲２４〜４７と、論理アドレス範囲５７０〜１０３９とを含んで形成され、パターンＣは、論理アドレス範囲４８〜７１と、論理アドレス範囲１０４０〜１５１１とを含んで形成され、パターンＤは、論理アドレス範囲７２〜９５と、論理アドレス範囲１５１２〜１９８３とを含んで形成される。
つまり、変形例としては、メディアに記憶される情報のうちで、他の情報と比較して更新機会が最多とされる情報であるファイル管理情報に関して、割り当てが行われた論理アドレス範囲をセグメントに対応して分割する。そして、セグメント単位に対応させるローテーション対象の論理アドレス範囲の個々に対して、これらの分割したファイル管理情報の論理アドレス範囲を１つずつ含めるようにされる。
そのうえで、図８（ａ）においては、セグメント０（物理アドレス範囲０〜５１１）に対しては、パターンＡの論理アドレス範囲を対応させ、セグメント１（物理アドレス範囲５１２〜１０２３）に対しては、パターンＢの論理アドレス範囲を対応させ、セグメント２（物理アドレス範囲１０２４〜１５３５）に対しては、パターンＣの論理アドレス範囲を対応させ、セグメント３（物理アドレス範囲１５３６〜２０４７）に対しては、パターンＤの論理アドレス範囲を対応させている。
【００４７】
そして、この変形例としても、フラッシュメモリ２をフォーマット（初期化）するごとに、セグメントに対する論理アドレス範囲の対応を、セグメント番号順に従って循環（ローテーション）させるようにして変更する。
つまり、例えば図８（ａ）に示す状態の下でフラッシュメモリ２をフォーマット（初期化）したとすると、図８（ｂ）に示すようにして、パターンＡが対応するセグメントについては、セグメント０からセグメント３に変更するようにされる。また、パターンＢが対応するセグメントについては、セグメント１からセグメント０に変更し、パターンＣが対応するセグメントについては、セグメント２からセグメント１に変更し、パターンＤが対応するセグメントについては、セグメント３からセグメント２に変更する。
そして、ここでの図示は省略しているが、以降においてフラッシュメモリ２のフォーマットが実行されるごとに、各論理アドレス範囲のパターン（Ａ，Ｂ，Ｃ，Ｄ）が対応するセグメントは、セグメント番号を１つずつデクリメントする（セグメント０の次は、最大のセグメント番号（３）に戻る）ようにして変更される。
【００４８】
これまでにも説明しているように、ファイル管理情報は、ユーザデータと比較して更新頻度が著しく高い。しかしながら、よりマクロにみれば、ファイル管理情報においても、その情報内容や、ユーザの使用の特徴などに応じて、使用頻度が高い領域と低い領域とが存在し得る。つまり、ファイル管理情報に割り当てられた論理アドレス範囲において、その範囲部分に応じて使用頻度に差異、ばらつきが生じる。そこで、図８に示したようにしてセグメント（物理ブロック（アドレス）範囲）に対応させる論理アドレス範囲のパターンを設定したうえで、この論理アドレス範囲のパターンをローテーションさせれば、ファイル管理情報内で更新頻度が高い論理アドレス範囲が使用する物理ブロックが変更されることとなり、結果的に、物理ブロックについての使用頻度の均一化がより推し進められることになる。
【００４９】
続いて、これまでに図６〜図８により説明した、本実施の形態としての論理アドレス範囲のローテーションを実現するための構成について説明を行う。なお、以降の説明にあたっては、セグメントに対応させる論理アドレス範囲として、図８に示したパターンによる設定を行った場合を例に挙げることとする。
【００５０】
図６〜図８により模式的に示したように、本実施の形態における、セグメントに対する論理アドレス範囲のローテーションは、論理−物理アドレス変換テーブルにおいて示される物理アドレス範囲に対応させる論理アドレス範囲を変更することで実現される。そこで、本実施の形態では、先ず、図９（ａ）（ｂ）（ｃ）（ｄ）に示すようにして、論理−物理アドレス変換テーブルとして、テーブルパターンＡ，Ｂ，Ｃ，Ｄの４つのテーブルパターンの基本形を用意する。
図９（ａ）に示すテーブルパターンＡは、図８に示したパターンＡの論理アドレス範囲に対応する論理−物理アドレス変換テーブルのパターンである。
このテーブルパターンＡは、所定ビット数の物理アドレス格納領域FL1を４９４列配置した構造とされる。そのうえで、これら４９４の物理アドレス格納領域FL1の個々に対しては、配列順に従って特定の１つの論理アドレスが対応付けられる。このテーブルパターンＡでは、先ず、１番目から２４番目の列順に従って、論理アドレス０，１，２〜２２，２３のアドレス値を対応させ、続く２５番目から４９４番目までの列に対して、論理アドレス１００〜５６９までのアドレス値を順次対応させる。つまり、１番目から４９４番目までの列に対して、図８におけるパターンＡの論理アドレス範囲（０〜２３，１００〜５６９）を下位から順に割り当てていくようにして対応させている。
【００５１】
図９（ｂ）に示すテーブルパターンＢは、図８に示したパターンＢの論理アドレス範囲に対応する論理−物理アドレス変換テーブルのパターンとなる。つまり、物理アドレス格納領域FL1を４９４列配置し、この列順に従って、論理アドレス範囲（２４〜４７、５７０〜１０３９）を順次対応させる。
図９（ｃ）に示すテーブルパターンＣは、図８に示したパターンＣの論理アドレス範囲に対応する論理−物理アドレス変換テーブルのパターンであり、物理アドレス格納領域FL1を４９６列配置し、この列順に従って、論理アドレス範囲（４８〜７１、１０４０〜１５１１）を順次対応させる。
図９（ｃ）に示すテーブルパターンＤは、図８に示したパターンＤの論理アドレス範囲に対応する論理−物理アドレス変換テーブルのパターンであり、物理アドレス格納領域FL1を４９６列配置し、この列順に従って、論理アドレス範囲（７２〜９５、１５１２〜１９８３）を順次対応させる。
【００５２】
このようにして論理−物理アドレス変換テーブルの構造について、テーブルパターンＡ，Ｂ，Ｃ，Ｄの４つの基本パターンを用意したうえで、物理アドレス格納領域FL1については、セグメント０，１，２，３ごとに、図９（ｅ）に示すようにして定義する。
先ず、物理アドレス格納領域FL1に格納すべき値であり、物理アドレスを示す物理アドレス値ｄについて、セグメント０については、ｄ＝０〜５１１までの整数を使用し、この物理アドレス値ｄに与えるべきオフセット値offsetについては、offset＝０であることとする。また、セグメント１については、物理アドレス値ｄについてｄ＝０〜５１１、オフセット値offsetについてoffset＝５１２とする。また、セグメント２については、物理アドレス値ｄについてｄ＝０〜５１１、オフセット値offsetについてoffset＝１０２４とし、セグメント３については、物理アドレス値ｄについてｄ＝０〜５１１、オフセット値offsetについてoffset＝１５３６とする。
このようにして、物理アドレス格納領域FL1としては、セグメント０、１，２，３でそれぞれ、ｄ＝０〜５１１の同じ物理アドレス値ｄを使用したうえで、この物理アドレス値ｄに設定すべきオフセット値offsetを変更するようにされている。例として、セグメント１の場合には、物理アドレス値ｄに対して、オフセット値offset＝５１２が設定されるから、物理アドレス格納領域FL1に格納する０〜５１１までのアドレス値ｄにより、５１２（＝０＋５１２）〜１０２３（＝５１１＋５１２）までの実際の物理アドレスを適正に表現できることになる。このような物理アドレス格納領域の定義とすれば、実際の物理アドレス範囲が、例えば図６〜図８に示すようにして０〜２０４７であるとしても、物理アドレス値ｄとしては、セグメントにかかわらず、０〜５１２までの整数値が表現できればよいことになる。つまり、例えば具体的には、物理アドレス格納領域FL1については、最小で９ビットのサイズにとどめることが可能になる。
【００５３】
上記図９に示した論理−物理アドレス変換テーブルの定義に基づいては、先に、図８（ａ）（ｂ）に示したセグメントと論理アドレス範囲のパターンとの対応は、次のようにしして論理−物理アドレス変換テーブルを構築して設定されるものとなる。
先ず、図８（ａ）から説明する。
セグメント０としては、
図９（ｅ）にて説明したように、物理アドレス格納領域FL1に格納する物理アドレス値ｄについては、ｄ＝０〜５１１、オフセット値offset＝０とされる。そのうえで、図８（ａ）の場合においては、図９（ａ）のテーブルパターンＡの構造を採用する。
同様にして、セグメント１の論理−物理アドレス変換テーブルについては、物理アドレス格納領域FL1について物理アドレス値ｄ＝０〜５１１、オフセット値offset＝５１２としたうえで、図９（ｂ）のテーブルパターンＢの構造を採用する。
また、セグメント２の論理−物理アドレス変換テーブルについては、物理アドレス格納領域FL1について物理アドレス値ｄ＝０〜５１１、オフセット値offset＝１０２４とされたうえで、図９（ｃ）のテーブルパターンＣの構造を採用する。
セグメント３の論理−物理アドレス変換テーブルは、物理アドレス格納領域FL1について物理アドレス値ｄ＝０〜５１１、オフセット値offset＝１５３６とされたうえで、図９（ｄ）のテーブルパターンＤの構造を採用する。
【００５４】
そして、図８（ａ）から図８（ｂ）に示すようにして、論理アドレス範囲のパターンがローテーションされたの応じては、各セグメントの論理−物理アドレス変換テーブルは、次のようにして再構築されることになる。
先ず、セグメント０については、テーブルパターンＡの採用に代えて、テーブルパターンＢを採用する。なお、物理アドレス格納領域FL1の定義は、セグメント０に対応する物理アドレス値ｄ＝０〜５１１、オフセット値offset＝０のままであり、これは変更されるものではない。
セグメント１については、テーブルパターンＢの採用に代えて、テーブルパターンＣを採用する。物理アドレス格納領域FL1の定義は、物理アドレス値ｄ＝０〜５１１、オフセット値offset＝５１２のままでである。
セグメント２については、テーブルパターンＣの採用に代えて、テーブルパターンＤを採用する。物理アドレス格納領域FL1の定義は、物理アドレス値ｄ＝０〜５１１、オフセット値offset＝１０２４のままでである。
セグメント３については、テーブルパターンＤの採用に代えて、テーブルパターンＡを採用する。物理アドレス格納領域FL1の定義は、物理アドレス値ｄ＝０〜５１１、オフセット値offset＝０のままでである。
このようにして、セグメントごとの物理アドレス範囲に対する論理アドレス範囲を変更するためには、セグメントごとに図９（ａ）（ｂ）（ｃ）（ｄ）に示した基本のテーブルパターンのうちからしかるべきテーブルパターンを選択して採用して論理−物理アドレス変換テーブルを作成すればよいということが分かる。
【００５５】
図１０のフローチャートは、図９に示した論理−物理アドレス変換テーブルの定義を前提として、図８に示した論理アドレス範囲のローテーションを実現するための処理を示している。つまり、フラッシュメモリ２の初期化時において、セグメントごとに対応する論理−物理アドレス変換テーブルを構築（再構築）する処理である。なお、この図に示す処理は、先に図１に示したデータ処理部３が実行するものとされる。前述もしたように、データ処理部３はマイクロコンピュータとして構成されるものであり、従って、図１１に示す処理は、データ処理部３としてのマイクロコンピュータにおいて、ＣＰＵがＲＯＭなどに記憶されたプログラムを実行することで実行されるものとなる。
【００５６】
例えばフラッシュメモリの初期化処理のルーチンの１つとして、論理−物理アドレス変換テーブルの再構築の処理を開始すべき段階に至ったとされると、先ず、図１０のステップＳ１０１として示すように、セグメント番号を示す変数ｎ（ｎは０以上の整数）について、初期値として０を設定する。
【００５７】
次のステップＳ１０２においては、現在のセグメントｎについての、今回の初期化が実行される直前までの論理−物理アドレス変換テーブルの構築状態として、このセグメントｎに対応して採用されていたテーブルパターンが、テーブルパターンＡ，Ｂ，Ｃ，Ｄのうちの何れであったのかについて判別する。
【００５８】
ステップＳ１０２においてテーブルパターンＡであるとの判別結果が得られた場合には、ステップＳ１０３に進んで、セグメントｎに対応するテーブルパターンとして、テーブルパターンＢを選択して採用する。
また、ステップＳ１０２においてテーブルパターンＢであるとの判別結果が得られた場合には、ステップＳ１０４に進んで、セグメントｎに対応するテーブルパターンとして、テーブルパターンＣを採用する。
ステップＳ１０２においてテーブルパターンＣであるとの判別結果が得られた場合には、ステップＳ１０５に進んで、セグメントｎに対応するテーブルパターンとして、テーブルパターンＤを採用する。
ステップＳ１０２においてテーブルパターンＤであるとの判別結果が得られた場合には、ステップＳ１０６に進んで、セグメントｎに対応するテーブルパターンとして、テーブルパターンＡを採用する。
これらステップＳ１０３，Ｓ１０４，Ｓ１０５，Ｓ１０６の処理により採用されたテーブルパターンを用いて、初期化処理時において、各セグメントの論理−物理アドレス変換テーブルが構築されて、所定の記憶領域に書き込まれるようにして領域が確保されることになる。ステップＳ１０３，Ｓ１０４，Ｓ１０５，Ｓ１０６の処理を実行した後は、ステップＳ１０７に進む。
【００５９】
ステップＳ１０７においては、セグメント番号を示す変数ｎについて、最大値（full）に至った状態であるか否かについて判別している。図８の場合には、セグメント０〜３までのセグメントが形成されているので、最大値としては３となる。ここで、変数ｎが最大値には至っていないとして否定の判別結果が得られた場合には、ステップＳ１０８にて、変数ｎについて１インクリメントし、ステップＳ１０２の処理に戻るようにされる。つまり、ここでの処理としては、セグメント番号の昇順に従って、セグメントごとに、論理−物理アドレス変換テーブルの再構築（テーブルパターンの変更）を行うものとしている。
そして、フラッシュメモリ２において形成される全てのセグメントについての論理−物理アドレス変換テーブルの再構築が終了したとされると、ステップＳ１０７において肯定の判別結果が得られることとなって、この図に示す処理を終了することになる。
【００６０】
このような処理が実行されることで、図８にて説明したようにして、フラッシュメモリ２の初期化が行われるごとに、セグメント０〜３に対応する論理アドレス範囲のパターンについての変更が行われることとなる。
【００６１】
ところで、本実施の形態では、上記図１０に示した処理は、半導体記憶装置１内のデータ処理部３が実行するものとしている。つまり、論理−物理アドレス変換テーブルの再構築処理は、半導体記憶装置１内で完結したものとなる。換言すれば、アプリケーションよりも下位のファイルシステム階層レベルでの処理となる。このために、例えばホストシステム１０に実装されるアプリケーションとしては、フラッシュメモリ２の初期化ごとに論理−物理アドレス変換テーブルが再構築されることについては特に意識することなく、通常のファイルの書き込み／読み出しを実行すればよい。つまり、アプリケーションなどの上位処理層のプログラム等については、フラッシュメモリ２における物理的記憶領域の使用頻度の均一化を図るのにあたり変更の必要がない。
【００６２】
また、本発明としては、これまで説明してきた実施の形態の構成に限定されるべきものではない。例えば、フラッシュメモリに形成されるセグメント数などは、その容量等に応じて変更されるべきものである。例えば図９に示した論理−物理アドレス変換テーブルのテーブルパターンなどは、実際のセグメント数に応じたパターンを用意し、また、個々のテーブルパターンは、実際に設定した論理アドレス範囲に応じた物理アドレス格納領域を用意し、物理アドレス格納領域に設定するオフセット値offsetなども、セグメントごとに対応して適宜設定されるべきものとなる。
【００６３】
また、図９により説明した論理−物理アドレス変換テーブルの構造は、あくまでも一例であり、他の構造を採る場合にも、各セグメントごとの論理−物理アドレス変換テーブルにおいて、論理アドレス範囲の対応を変更できるようにすればよいことになる。
【００６４】
また、図８においては、１つのパターンにおけるファイル管理情報とデータ領域との各論理アドレス範囲の対応関係は固定とされているが、例えば、ファイル管理情報の論理アドレス範囲と、データ領域の論理アドレス範囲とについて、それぞれ独立したものとして扱い、それぞれ異なる規則によりローテーションさせるようにして、論理−物理アドレス変換テーブルを再構築するようにしてもよい。
【００６５】
また、実施の形態では、セグメントに対応する論理アドレス範囲を、単純にローテーション（循環）させるようにして変更しているが、本発明としては、セグメントに対応する論理アドレス範囲の変更パターンとしても、特にローテーションのみに限定されない。例えば、各セグメントにおける物理ブロックの使用頻度の結果に基づいて、物理ブロックの使用頻度が最も高かったとされるセグメントと、最も低かったとされるセグメントとの間で論理アドレス範囲の交換が行われるような変更パターンとされてもよい。
また、本発明としては、必ずしも、全てのセグメントについて論理アドレス範囲を変更すべき必要はなく、１つのセグメントを対象としてみたときに、このセグメントの論理−物理アドレス変換テーブルの物理アドレス範囲に対応する論理アドレス範囲が、初期化前において、他のセグメントの論理−物理アドレス変換テーブルにおいて対応付けられていたものに変更されればよい。従って、例えば、或る特定の２つのセグメント間においてのみ、論理アドレス範囲の交換が行われるようにされてもよい。この場合にも、セグメントと論理アドレス範囲の対応が固定である従来と比較すれば、使用頻度の均一化の目的は達成される。
【００６６】
また、実施の形態では、ファイル管理情報を記憶するために使用する物理的記憶領域が一部に集中しないことを主目的としており、このために、図８においては、ファイル管理情報に対応する論理アドレス範囲を分割して、セグメントごとに分散させることも行っている。しかしながら、本発明としては、ファイル管理情報以外の情報であって、例えば他の情報よりも更新頻度が高いとされる情報を考慮して、例えば図８と同様の論理アドレス範囲の分割を行っても良いものである。例えば、図６〜図８に示したファイル管理情報とデータ領域との区分は、説明の都合上、実際よりも簡略に示されているもので、実際に即しては、ファイル管理情報以外の情報についても考慮した論理アドレス範囲設定を行うことは充分に可能性がある。
【００６７】
また、本実施の形態の半導体記憶装置としては、内部の半導体メモリ素子としてフラッシュメモリを備えているが、例えばフラッシュメモリにおけるブロックのように、データ消去単位に対応する物理的メモリ領域の交替を伴ってデータ書き込みが行われる半導体メモリ素子であれば、フラッシュメモリ以外を備える構成とされてもかまわない。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態としての半導体記憶装置の内部構成例を示すブロック図である。
【図２】実施の形態の半導体記憶装置が備えるフラッシュメモリの物理構造を示す図である。
【図３】実施の形態のフラッシュメモリに対するデータ更新処理（ブロック交替処理）と、論理アドレス及び物理アドレスの概念を示す図である。
【図４】論理−物理アドレス変換テーブルの構造を概念的に示す図である。
【図５】フラッシュメモリが複数のセグメントにより分割される場合の物理ブロック（物理アドレス）の範囲と論理アドレス範囲との対応関係を示す図である。
【図６】図５に示した物理ブロック（物理アドレス）の範囲と論理アドレス範囲との対応関係を基として、本実施の形態における、セグメントに対応させる論理アドレス範囲をローテーションさせた場合の態様例を示す図である。
【図７】図６に示した論理アドレス範囲について、ファイル管理情報とデータ領域との論理アドレス範囲を個々に示している図である。
【図８】実施の形態としての論理アドレス範囲のローテーション態様の変形例を示す図である。
【図９】図８に対応する論理アドレス範囲のローテーションを実現するための論理−物理アドレス変換テーブルの構造例を示す図である。
【図１０】図８に対応する論理アドレス範囲のローテーションを実現するための処理を示すフローチャートである。
【符号の説明】
【００６９】
１  半導体記憶装置、２  フラッシュメモリ、３  データ処理部、４  通信処理部、１０  ホストシステム
【図１】
2006209608.tif 000003
【図２】
2006209608.tif 000004
【図３】
2006209608.tif 000005
【図４】
2006209608.tif 000006
【図５】
2006209608.tif 000007
【図６】
2006209608.tif 000008
【図７】
2006209608.tif 000009
【図８】
2006209608.tif 000010
【図９】
2006209608.tif 000011
【図１０】
2006209608.tif 000012