JP4665539B2 - メモリ制御装置、メモリ制御方法、プログラム - Google Patents

メモリ制御装置、メモリ制御方法、プログラム Download PDF

Info

Publication number
JP4665539B2
JP4665539B2 JP2005023110A JP2005023110A JP4665539B2 JP 4665539 B2 JP4665539 B2 JP 4665539B2 JP 2005023110 A JP2005023110 A JP 2005023110A JP 2005023110 A JP2005023110 A JP 2005023110A JP 4665539 B2 JP4665539 B2 JP 4665539B2
Authority
JP
Japan
Prior art keywords
logical
physical address
physical
address
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005023110A
Other languages
English (en)
Other versions
JP2006209608A (ja
Inventor
健一 中西
暢宏 金子
淳子 佐々木
尊司 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005023110A priority Critical patent/JP4665539B2/ja
Publication of JP2006209608A publication Critical patent/JP2006209608A/ja
Application granted granted Critical
Publication of JP4665539B2 publication Critical patent/JP4665539B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、例えばフラッシュメモリなどの不揮発性のメモリ素子を対象として、データ書き込み/読み出しなどについての制御を行うメモリ制御装置、及びその方法と、このようなメモリ制御装置が実行すべきプログラムに関するものである。
近年、リムーバブルメディアとして、例えばフラッシュメモリなどの不揮発性の半導体記憶素子を備えて、各種のデータの書き込み/読み出しが可能とされた小型の記憶装置(半導体記憶装置)が知られている。
このような半導体記憶装置に備えられるフラッシュメモリは、特性として、データの上書きは不可であり、消去されている状態から書き込みを行うべきことが知られている。また、データの消去は、フラッシュメモリとしての記憶領域を所定サイズに分割したブロックといわれる物理的な記憶領域単位を最小単位として行われ、データの書き込みは、ブロックをさらに所定サイズに分割したページといわれる記憶領域単位を最小単位として行われる。そのうえで、フラッシュメモリの物理特性としては、消去の繰り返し回数により決まる寿命がある。このために、データの書き込み(更新)は次のようにして行われる。
実際にデータの更新を行うときには、例えば、更新対象のデータが書き込み済みとなっているブロックからデータを読み出して、この読み出したデータと更新のための追加データなどを利用して更新されたデータを生成する。そして、この段階で消去済みとなっている他の特定ブロックに対して、この更新されたデータを書き込むようにされる。そのうえで、上記更新対象のデータが書き込まれていたブロックについては、データを消去するようにされる。
つまり、データを更新するときには、更新前のデータが書き込まれていたブロックに再度書き込むことはせずに、他の消去状態にあるブロックを選択して書き込みを行うようにされる(ブロック交替処理)。これにより、1つのブロックに対してデータの消去/書き込みが集中しないようにして、フラッシュメモリ全体としての寿命をのばすことが可能となる。
上記したブロック交替処理は、フラッシュメモリを記憶媒体として使用するのにあたり、長寿命化を目的として規定される基本的な仕様となっている。そのうえで、フラッシュメモリに記録されるデータの管理は、例えばFAT(File Allocation Table)などのファイルシステムを採用することが広く行われている。また、このファイルシステムに対応するファイルの管理情報についても、通常、そのファイルシステムフォーマットに準拠したデータ配置構造によりフラッシュメモリに記憶させるようにしている。
例えばFATなどのファイルシステムフォーマットでは、その管理情報を、下位側のアドレスに配置するようになっている。ファイルシステムの管理情報は、ユーザデータと比較して頻繁に書き換え(更新)が行われる。このことをフラッシュメモリと対応させると、下位側のアドレスに対応する特定の記憶領域範囲において、ブロック交替処理が頻繁に発生するということになる。つまり、フラッシュメモリにおける一部の記憶領域のみが頻繁に使用される状況となる。このような状況が続けば、他のアドレス範囲の記憶領域は未だ消去回数に余裕があるのにもかかわらず、管理情報が配置される記憶領域における消去の繰り返し回数が制限値に達することとなり、結果的にフラッシュメモリが使用できなくなる時期を早めてしまう、という不都合が生じることになる。
そこで、例えば特許文献1として示すように、フォーマットの書き換え時(初期化時)において、ファイルシステムの管理情報の領域である管理領域(及び交替領域)が、初期化前におけるユーザデータ領域内に配置されるようにして、領域移動を行う技術が示されている。このようにして領域移動を行うことで、使用頻度の高い記憶領域が固定せずに、初期化処理ごとに変更されることとなり、記憶領域全体における使用頻度の均一化が図られる。この結果、フラッシュメモリ全体としての寿命が延長される。
特開平8−329610号公報
本発明としても、フラッシュメモリなどに代表されるメモリ(記憶媒体)について、特定の記憶領域の使用が集中することによる短命化を回避して長寿命化が図られるようにすることを目的とするが、そのための処理構成、手順などについて、より効率的なものとなることを目指す。
そこで本発明は上記した課題を考慮して、メモリ制御装置として次のように構成する。 つまり、メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、上記単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手段と、メモリを初期化するときに、1つの集合領域の論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の1つの集合領域の論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手段とを備え、上記メモリ管理手段は、アドレス値が連続する所定の論理アドレス範囲を分割したうえで、論理−物理アドレス対応情報における物理アドレス範囲と対応付けられる1つの論理アドレス範囲について、上記分割されたアドレス範囲の1つを含めるようにして形成するとともに、分割の対象としての上記アドレス番号が連続する所定の論理アドレス範囲を、メモリに記憶されるデータを所定の情報単位により管理するための管理情報としてのデータに対応付けた論理アドレス範囲とすることとした。
また、メモリ制御方法として、メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手順と、メモリを初期化するときに、1つの集合領域の論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の1つの集合領域の論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手順とを実行させ、上記メモリ管理手順は、アドレス値が連続する所定の論理アドレス範囲を分割したうえで、論理−物理アドレス対応情報における物理アドレス範囲と対応付けられる1つの論理アドレス範囲について、上記分割されたアドレス範囲の1つを含めるようにして形成するとともに、分割の対象としての上記アドレス番号が連続する所定の論理アドレス範囲を、メモリに記憶されるデータを所定の情報単位により管理するための管理情報としてのデータに対応付けた論理アドレス範囲とすることとした。

また、上記メモリ制御方法としての手順をメモリ制御装置に実行させるようにしてプログラムを構成することとした。
上記各構成によれば、本発明においては、メモリ管理として、先ず、メモリの記憶領域を所定の固定長により分割した単位領域を規定し、この単位領域ごとに物理アドレスを対応させる。そのうえで、単位領域に書き込まれるべきデータに対応付けられる論理アドレスを規定して、この論理アドレスと物理アドレスとの対応を示す論理−物理アドレス対応情報を構築する。この論理−物理アドレス対応情報によりメモリ管理を行うようにされる。また、この論理−物理アドレス対応情報を使用してのメモリ管理は、所定の連続する物理アドレスの範囲に対応する単位領域を集合して形成される集合領域ごとに行うようにされる。つまり、論理−物理アドレス対応情報は、上記集合領域ごとに構築される。
そして、メモリを初期化するのに際しては、1つの集合領域を管理する論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の1つの集合領域の上記論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして、論理−物理アドレス対応情報を再構築する。
上記のようにして論理−物理アドレス対応情報が再構築されることによっては、初期化前と初期化後とで集合領域に対応する論理アドレス範囲が変更されることになる。メモリに書き込まれるべきデータは論理アドレスとの対応が付けられる。
このことから、例えば、更新頻度が高いとされる内容のデータが存在するとした場合、この高更新頻度のデータは、本発明による対応情報の再構築によって、初期化前とは異なる集合領域の単位領域を使用して更新が行われることになる。つまり、メモリの物理的記憶領域において使用頻度が高いとされる領域を、集合領域単位で移動させていくことができる。これにより、メモリの物理的記憶領域の使用頻度を分散させて均一化を図ることが可能になる。
このようにして本発明によっては、メモリの物理的記憶領域の使用頻度の均一化を図ることで、書き込みデータ内容の変更回数などに応じて寿命が決まっているメモリについての長寿命化(使用可能時間の延長)を図ることが可能になる。また、このためには、集合領域ごとに対応する対応情報について論理アドレス範囲を変更設定するという簡易な処理を実行すればよい。つまり、処理負担も軽く、効率的である。
以下、本発明を実施するための最良の形態(以下、実施の形態ともいう)について説明していく。本実施の形態では、半導体記憶素子としてフラッシュメモリを備える半導体記憶装置を例に挙げることとする。この半導体記憶装置は、1つの独立したリムーバブルメディアとしての形態を採り、外形形状としては、例えば小型の板状となっている。
図1は、本実施の形態の半導体記憶装置1の内部構成例を示している。
この図に示すようにして、半導体記憶装置1は、フラッシュメモリ2、データ処理部3、及び通信処理部4を備えて成る。
フラッシュメモリ2は、周知のようにして、半導体による不揮発性の記憶素子の1つであり、この場合には、所定の記憶容量を有するものが備えられる。
データ処理部3は、半導体記憶装置1におけるデータ処理として、フラッシュメモリ2に対するデータの書き込み(消去)/読み出しについての制御、処理を実行する。このために、データ処理部3は、フラッシュメモリに記憶されている、データ書き込み/読み出しのための所要の情報により形成される管理情報を利用する。また、データ処理部3は、この管理情報についての更新などをはじめとする、管理情報についての管理も行うようにされる。また、データ処理部3は、ホストシステム10との通信を行うために通信処理部4に対する通信制御も実行する。
なお、データ処理部3としては、例えばCPU、ROM及びRAMなどを備えるマイクロコンピュータとして構成される。
通信処理部4は、ホストシステム10とデータ処理部3との間で、所定の通信方式による通信を行うためのハードウェアデバイスなどを備えて成る。
通信処理部4では、所定の通信方式によりホストシステム10から送信されてきたコマンド(レスポンス)、データなどの情報を受信、デコードし、半導体記憶装置1内部のデータ通信方式に従った形式のデータに変換してデータ処理部3に対して転送する。データ処理部3は、通信処理部4から転送されてきたコマンド、データなどを受信したのに応じて、コマンドに応答した処理や、フラッシュメモリ2へのデータ書き込みなどの処理を実行する。
また、例えばデータ処理部3が、コマンド(レスポンス)を送信したり、フラッシュメモリ2から読み出したデータをホストシステム10に転送する場合には、データ処理部3は、これらのコマンド、データなどを通信処理部4に転送して、ホストシステム10に対して送信するように指示を行う。これに応じて通信処理部4は、データ処理部3から転送されてきたコマンド、データを、ホストシステム10との通信方式に従った形式に変換してホストシステム10に送信する。
ホストシステム10は、例えば所定の機能を備える電子機器であり、リムーバブルメディアである半導体記憶装置1を装脱するためのスロット部位を備えている。そして、このスロットに装填された半導体記憶装置1に対して、データの書き込み/読み出しを行うことが可能とされている。
この場合のホストシステム10がどのような機器であるのかについては、ここでは特に限定されるべきものではないが、例えばパーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオレコーダ、携帯電話などを挙げることができる。デジタルスチルカメラを例にとると、撮影操作に応じて生成された写真としての画像データを半導体記憶装置1に対して転送して、フラッシュメモリ2に記憶させるようにする。また、例えば半導体記憶装置1(フラッシュメモリ2)から写真の画像データを読み出して取り込み、液晶ディスプレイパネルなどの表示部に表示出力させることなどが行われる。
図2は、フラッシュメモリ2の物理フォーマットを示している。
フラッシュメモリとしての記憶領域全体は、図2(a)に示すようにして、先ず、所定の固定長によるセグメント単位で分割される。
また、1セグメントは、図2(b)に示すようにして、所定の固定長によるブロック(消去単位領域)0〜nにより分割される。周知のようにして、フラッシュメモリは、データの上書きはできないことになっており、データの書き込みは、消去済みの領域に対して行われる。そして、このブロックは、データを消去するときの最小単位となる。
本実施の形態に対応するフォーマットでは、原則として、1セグメントは512ブロックにより分割されて成る。この場合、図2(b)に示される最終のブロック番号nは511となる。また、図2(a)において示されるセグメント0〜Mで表されるM+1個のセグメントは、それぞれ512ブロックごとの単位で分割されることになる。
この図2(a)にはフラッシュメモリの領域に対応してブロックアドレス(物理アドレス)が示されている。このブロックアドレスとセグメント0〜Mの対応としては、セグメント0がブロックアドレス0〜511となり、セグメント1がブロックアドレス512〜1023、セグメント2がブロックアドレス1024〜1535となる。つまり、セグメント番号が1つ増加するごとに、512ブロック分オフセットが与えられたブロックアドレスの値をとっていくことになる。
そして、1つのフラッシュメモリ内におけるデータ用セグメントの数(M)は1以上であることが規定されるが、これについてはフラッシュメモリの容量に応じて異なってくることになる。
また、図2(a)においては、セグメント0内の先頭においてシステム用セグメントが記されているが、これについては、後述する。
そして、図2(b)に示したブロックの各々は、図2(c)に示すようにして、ページ0〜mにより分割される。
1ページは固定長であり、図2(d)に示すように、所定サイズのデータ部と冗長部より成る。データ部にはデータを格納する領域であり、冗長部は、各種の所要の管理情報などが格納される領域となる。
データ書き込みについては、このページが最小単位となる。つまり、フラッシュメモリ2は、データの消去はブロック単位で行われ、データの書き込みはページ単位で行われるべきものとなっており、データ消去単位とデータ書込単位のデータサイズが相互に異なるものとなっている。なお、ブロック内におけるページ数は、固定的に規定されているものではなく、例えばこれまでにおいては、16(m=15),32(m=31),64(m=63)などのページ数の構造とすることが行われている。
上述したフラッシュメモリの物理フォーマットを踏まえたうえで、フラッシュメモリのファイル管理において定義される物理アドレスと論理アドレスの概念について、図3を参照して説明する。図3は、データの更新手順を示している。
図3(a)は、データ更新処理前の状態として、或るセグメント内から4つのブロックを抜き出して、これを模式的に示している。
フラッシュメモリにおいて物理的に存在する各ブロック(物理ブロック)に対しては物理アドレスが付される。この物理アドレスはメモリにおける物理ブロックの物理的な配列順に従って決まるもので、或る物理ブロックとこれに対応付けされた物理アドレスとの関係は不変となる。図2(a)において示されていたブロックアドレスは、この物理アドレスとなる。
ここでは、図3(a)に示す4つのブロックに対して、上から順に物理アドレスの値として、105,106,107,108が付されている。
ここで、図3(a)に示すように、物理アドレス105,106で示されるブロックがデータの記憶されている書込済ブロックで、物理アドレス107,108で示されるブロックがデータが消去(即ち、未記録領域である)された消去済ブロックとなっている状態であるとする。
そして、論理アドレスであるが、この論理アドレスは、ブロックに対して書き込まれたデータに付随するようにして割り振られるアドレスとされる。そして、この論理アドレスが、ファイルシステムとして、論理アドレス、物理アドレス管理層の上層に位置するとされる、ファイルシステムが利用するアドレスとされている。本実施の形態では、ファイルシステムのフォーマットとして、FAT(File Allocation Table)を採用することとしている。
図3(a)では、4つの各ブロックに対して、上から順に論理アドレスの値として、102,103,104,105が付されている状態が示されている。なお、論理アドレスも実際には2バイトにより表現されるものである。
ここで、上記図3(a)に示す状態から、例えば物理アドレス105に格納されているデータの更新として、内容の書き換え、追加、又は一部消去を行うとする。
このような場合、フラッシュメモリのファイルシステムでは、同じブロックに対して更新したデータを再度書き込むことはせずに、消去済ブロックに対してその更新したデータを書き込むようにされる。
つまり、例えば図3において処理1となる図3(a)から図3(b)の遷移として示すようにして、物理アドレス105のブロックに書き込まれていたデータについての更新データは、これまで未使用ブロックであった物理アドレス107で示されるブロックに書き込むようにされる。そして、物理アドレス105のブロックのデータについては消去するようにされる。
続いては、処理2として示すように、データ更新前(図3(a))の状態では物理アドレス105に対応していた論理アドレス102が、更新されたデータが書き込まれたブロックの物理アドレス107に対応するように、論理アドレスと物理アドレスとの対応関係についての変更を行う。これに伴って、データ更新前は物理アドレス107に対応していた論理アドレス104については、物理アドレス105に対応するように変更されている。
つまり、物理アドレスはブロックに対して固有に付されるアドレスであり、論理アドレスは、一旦ブロックに対して書き込まれたデータに付随するようにしてついて回る、ブロック単位の書き込みデータに固有となるアドレスであるとみることができる。
周知のようにして、フラッシュメモリとしての半導体素子には寿命があり、この寿命は、データの消去回数により決まる。そこで、上記したようなデータの書き込み(更新)手順とすることで、或る同一の記憶領域(ブロック)に対して繰り返し集中的にアクセスされることが無くなり、フラッシュメモリの寿命を延ばすことが可能となる。
そして、この際に論理アドレスを上記処理2のようにして扱うことで、更新前と更新後のデータとで書き込まれるブロックの交替があるようにされても、FATは論理アドレスによりファイル管理を行っているために、FAT側からは同一のアドレスが見えることになり、以降のアクセスを適正に実行することができるものである。
なお、後述する論理−物理アドレス変換テーブル上での更新のための管理を簡略にすることなどを目的として、上記したようなデータ書き込み対象とするブロックの交替は、1セグメント内で完結するものとして規定されており、セグメント間で跨るようにしては行われない。
上記図3に示したようにしてブロックの交替を伴ってデータの書き込みが行われることで、物理アドレスと論理アドレスの対応は変化する。従って、フラッシュメモリに対するデータの書き込み及び読み出しのためのアクセスを実現するには、物理アドレスと論理アドレスとの対応が示される論理−物理アドレス変換テーブルが必要となる。つまり、論理−物理アドレス変換テーブルをFATが参照することで、FATが指定した論理アドレスに対応する物理アドレスが特定され、この特定された物理アドレスにより示されるブロックにアクセスすることが可能になるものである。逆に言えば、論理−物理アドレス変換テーブルが無ければ、FATによるフラッシュメモリへのアクセスが不可能となる。
図4は、論理−物理アドレス変換テーブルの概念を示している。
この図に示すようにして、論理−物理アドレス変換テーブルとしては、例えば、先ず論理アドレスの値を昇順に整列させることことしている。そして、各論理アドレスごとに、対応させるべき物理アドレスを格納するようにしてテーブル情報を構築する。
なお、先に図3により説明したデータ書き込み時におけるブロックの変更はセグメントの範囲内で行われるので、上記図4に示した構造概念の論理−物理アドレス変換テーブルは、セグメントごとに設けられるものとなる。
図5は、フラッシュメモリ2において複数のセグメント(データ用セグメント)が設定されている場合の物理ブロック(物理アドレス)と、論理アドレスの割り当て例を示している。
この図においては、各512ブロックの容量のセグメント0〜3の4セグメントが設定された例が示されている。そのうえで、この場合において、フラッシュメモリにおいて先頭となるセグメント0については、物理ブロックのアドレス、つまり、物理アドレスとしては、0〜511までの範囲が割与えられることになる。また、次のセグメント1の物理アドレスは512〜1023の範囲が割与えられ、さらに、セグメント2は、1024〜1535、セグメント3は、1536〜2047の物理アドレス範囲が割与えられることになる。
このような物理アドレス範囲の割り当てに対して、論理アドレス範囲の割り当ては例えば次のようになる。つまり、この場合には、1セグメントあたりの論理アドレスとしては、セグメント0には494個を割り当て、以降のセグメント1,2,3については、それぞれ496個を割り当てることとしている。これに応じて、セグメント0には論理アドレス0〜493の範囲の値を割り当て、また、セグメント1には論理アドレス494〜989、セグメント2には論理アドレス990〜1485、セグメント3には論理アドレス1486〜1981の各範囲の値を割り当てる。
従って、セグメント0の論理−物理アドレス変換テーブルとしては、論理アドレス0〜493のそれぞれに対して、物理アドレス0〜511のいずれかを対応させることになる。
また、セグメント1の論理−物理アドレス変換テーブルは、論理アドレス494〜989のそれぞれに対して、物理アドレス512〜1023の何れかを対応させ、セグメント2の論理−物理アドレス変換テーブルは、論理アドレス990〜1485のそれぞれに対して、物理アドレス1024〜1535の何れかを対応させ、セグメント3の論理−物理アドレス変換テーブルは、論理アドレス1486〜1981のそれぞれに対して、物理アドレス1536〜2047の何れかを対応させることになる。
ところで、図5によると、1セグメントは物理的に512ブロックに分割されるのに対して、1セグメントあたりの論理アドレス数は494又は496となっており物理ブロック数よりも少ない。これは、1セグメント内において、例えば余剰ブロックといわれる通常のデータ書き込みには使用しない特殊用途のブロックが所定数存在することが規定されていることや、或るブロック数までのディフェクト(不良:使用不可領域)が許可されており、現実には、相当数の不良(ディフェクト)ブロックが存在することに依る。このことに基づいたうえで、フラッシュメモリ2の実際の仕様などを考慮すると、この場合においては、書き込み/消去が有効なブロックを管理するのに、1セグメントあたり、490前後の数のブロックを管理できるように構成しておけば充分であるとしているものである。なお、このセグメントごとの論理アドレス範囲数は適宜変更されてよいものであり、必ずしも、494あるいは496に限定される必要はない。
ところで、上記のようにしてフラッシュメモリの物理的記憶領域全体をセグメントで分割し、このセグメントごとに論理−物理アドレス変換テーブルを設けてメモリ管理(分割管理)を行うことには、次のようなメリットがある。
例えば、論理−物理アドレス変換テーブルによるメモリ管理を、フラッシュメモリの記憶領域全体を対象として一括に行うこととすると、1つの論理−物理アドレス変換テーブルにより、フラッシュメモリの記憶領域における全ての物理ブロックを管理することとなる。論理−物理アドレス変換テーブルを参照して、目的の物理アドレス又は論理アドレスを検索するのに要する時間の平均は、検索範囲となる物理ブロックの数、つまり、論理−物理アドレス変換テーブル上で管理する物理ブロック数に比例する、ということがいえる。従って、上記のようにして、論理−物理アドレス変換テーブルによるメモリ管理を、フラッシュメモリの記憶領域全体で一括的に行った場合には、目的の物理アドレス又は論理アドレスの検索に要する平均時間がそれだけ長くなる。
そこで、論理−物理アドレス変換テーブルによるメモリ管理について、セグメント単位により分割して行うようにすれば、各セグメントごとに対応する論理−物理アドレス変換テーブルのそれぞれが管理する物理ブロック数は、セグメント単位により分割されることなって、その分、記憶領域全体に対応する物理ブロック数よりも少なくなる。そして、論理アドレス又は物理アドレスの検索は、この検索対象の論理アドレス又は物理アドレスを含む論理−物理アドレス変換テーブルのみを参照して実行すればよいことになる。つまり、分割管理によっては、論理−物理アドレス変換テーブルの検索に要する平均時間が短縮される。
また、論理−物理アドレス変換テーブルは、実際においては、マップ情報の形式により保持する場合が多い。このマップ情報の論理−物理アドレス変換テーブルでは、例えば論理アドレスごとに物理アドレスの格納領域を対応させる構造とすることが行われる。
この場合において、1つの論理−物理アドレス変換テーブルによりフラッシュメモリの記憶領域全体を一括的に管理することとした場合には、物理アドレスの格納領域について、フラッシュメモリの記憶領域全体における最大ブロック番号(ブロック数)までを表現可能なだけのビット数を与える必要がある。これに対して、分割管理を行うこととすれば、上記もしているように、セグメントごとが対応する物理アドレス数(ブロック数)は、記憶領域全体に対応する物理ブロック数よりも少なくなる。従って、論理−物理アドレス変換テーブルにおける物理アドレスの格納領域としては、対応するセグメントが有する物理アドレス数(ブロック数)までを表現可能な、より少ないビット数を設定することができる。分割管理を行う場合は、セグメントごとに0から始まる物理アドレス(ブロック番号)を使用したうえで、セグメントの位置に応じたオフセット値を与えるようにすれば、記憶領域全体における物理アドレス(ブロック番号)を適正に表現できるからである。
このようにして、分割管理を行うことによっては、論理−物理アドレス変換テーブルにおいて物理アドレスを格納する領域のビット数を削減することができる。この結果、フラッシュメモリの記憶領域全体に対応する論理−物理アドレス変換テーブルのサイズを縮小することが可能になる。
また、本実施の形態の半導体記憶装置1は、前述もしたように、ファイルシステムフォーマットとしてFATファイルシステムを採用することとしている。FATファイルシステムは、メディアに記録されるユーザデータを、ツリー型ディレクトリ構造により、ファイル単位で管理するようにされており、このためのファイル管理情報として、ディレクトリエントリ及びFAT領域などを備える。
このファイル管理情報は、FATファイルシステムのフォーマット(初期化)構造の規定に従った論理的配置によりメディアに記録すべきものとされており、FATファイルシステムをフラッシュメモリに適用する場合にも、ファイル管理情報は、上記フォーマット(初期化)構造の規定に従って所定の論理的記憶領域に記憶される。FATファイルシステムでは、特に、FAT領域及びルートディレクトリエントリなどのファイル管理情報については、起動時におけるアクセス性などを考慮して、フォーマット(初期化)構造における下位側のアドレス(アドレス値の小さい側)に配置することとしている。このようなフォーマット(初期化)構造は、論理的に規定されるものであるから、本実施の形態のようにして論理−物理アドレス変換テーブルを設ける場合には、フォーマット(初期化)構造のアドレスは、論理アドレスが対応することになる。
このフォーマット構造におけるファイル管理情報の配置位置と、図5とを対応させると、ファイル管理情報は、0〜493の論理アドレス範囲に含まれるものとしてみることができる。従って、図5の場合において、ファイル管理情報の内容の更新があった場合には、論理アドレス範囲0〜493が対応するセグメント0内のブロックを使用してブロック交替処理が行われることになる。
一般に、ファイル管理情報は、ファイルなどを形成するユーザデータと比較すると、更新頻度は遙かに高い。このことからすると、図5に示すフラッシュメモリでは、ファイル管理情報が位置する論理アドレス範囲0〜100を含むセグメント0において、最も高い頻度でブロックが使用される(ブロック交替処理が実行される)ということになる。
従来、例えば図5に示しているようなセグメントごとの物理アドレス範囲と論理アドレス範囲との対応は固定的なものとされている。このために、フラッシュメモリの使用経過に応じて、ブロックの使用は、ファイル管理情報が存在するセグメント0に集中することになる。これにより、半導体記憶装置1がデータ記録、更新に使用されるごとに、セグメント0におけるブロックの使用回数は、残るセグメントにおけるユーザデータの更新に伴うブロックの使用回数よりも高い率で増加していくことになる。この結果、最終的には、例えばセグメント1〜3においては、消去回数に充分余裕があるのにかかわらず、セグメント0において消去回数の上限に到達して使用不可のブロックが増加することとなり、フラッシュメモリ全体としても使用できなくなるような状態に至ることになる。つまり、一部の記憶領域への消去が集中したことが原因で、フラッシュメモリの短命化を招くことになる。
そこで、本実施の形態としては、上記したようなフラッシュメモリの短命化を避けて長寿命化を図ることを目的として、基本概念的には、フラッシュメモリのフォーマット処理(初期化処理)にあたり、図6に示す手順を実行するようにされる。
先ず、図6(a)においては、フラッシュメモリ2に関して、図5(a)と同様の物理アドレスと論理アドレスとの対応を設定した状態が示されている。そして、図6(a)に示す状態から、フラッシュメモリ2をフォーマットした場合には、図6(b)に示すようにして、論理アドレス範囲0〜493が対応するセグメントを、セグメント0からセグメント3に変更する。また、これに伴い、論理アドレス範囲494〜989については、セグメント1からセグメント0に変更し、論理アドレス範囲990〜1485については、セグメント2からセグメント1に変更し、論理アドレス範囲1486〜1981については、セグメント3からセグメント2に変更する。
さらに、図6(b)に示す状態の下でフォーマット処理が実行されたとすると、図6(c)に示すようにして、論理アドレス範囲0〜493が対応するセグメントを、セグメント3からセグメント2に、論理アドレス範囲494〜989については、セグメント0からセグメント3に、論理アドレス範囲990〜1485については、セグメント1からセグメント0に変更し、論理アドレス範囲1486〜1981については、セグメント2からセグメント1に変更する。
さらにまた、図6(c)に示す状態の下でフォーマット処理が実行されたとすると、図6(d)に示すようにして、論理アドレス範囲0〜493が対応するセグメントを、セグメント2からセグメント1に、論理アドレス範囲494〜989については、セグメント3からセグメント2に、論理アドレス範囲990〜1485については、セグメント0からセグメント3に変更し、論理アドレス範囲1486〜1981については、セグメント1からセグメント0に変更する。
そして、図6(d)の状態においてフォーマット処理が実行されたとすると、図6(a)の状態に変更するようにされる。
つまり、この場合においては、フォーマット処理が実行されるごとに、セグメントに対する論理アドレス範囲の対応を、セグメント番号順に従って循環(ローテーション)させるようにして変更していくようにされる。
また、確認のために述べておくと、この図6に示されるセグメントに対する論理アドレス範囲の対応の変更は、セグメントが対応する物理アドレス範囲に対する、論理アドレス範囲の対応を変更しているものである。つまり、セグメントごとの論理−物理アドレス変換テーブルにおける、論理アドレス範囲の対応を変更しているということになる。
このようにして、セグメント(物理アドレス範囲)に対する論理アドレス範囲の対応が変更されることで、例えば先に説明したファイル管理情報が記録される物理領域も、図6(a)ではセグメント0となるが、図6(b)ではセグメント3となり、図6(c)(d)では、それぞれセグメント2,1となるようにして変更されることになる。つまり、ファイル管理情報に対応して使用頻度の高いとされる物理的記憶領域が、セグメント単位で移動するようにされる。
より具体的には、例えば、論理アドレス範囲0〜493のうちで、ファイル管理情報が使用する論理アドレス範囲は0〜95の96ブロック分であるとする。この場合、図6(a)に示した状態については、例えば図7(a)のようにして表すことができる。つまり、この状態において、ファイル管理情報の論理アドレス範囲0〜95を含む論理アドレス範囲0〜493はセグメント0に対応しているので、実際のファイル管理情報としてもセグメント0の物理アドレス範囲0〜511を使用して更新が行われることになる。なお、この場合には、論理アドレス範囲0〜493において、論理アドレス96〜99までの4ブロック分は空き領域として確保することとして、論理アドレス範囲100〜493までを、例えばユーザデータ領域として使用することとしている。
そして、図7(a)に示した状態の下でフォーマット処理を実行したとすると、図6(a)から図6(b)への遷移と同様の論理アドレス範囲のローテーションが行われることになる。そして、この状態では、図7(b)に示すようにして、論理アドレス範囲0〜493はセグメント3に対応するようにして変更され、これに伴って、論理アドレス範囲0〜95のファイル管理情報としても、セグメント3に対応することとなる。
このようにして、論理アドレス範囲をセグメントに対応させて変更することで、ファイル管理情報(つまり更新頻度が高い情報)が使用する物理的記憶領域について、セグメント単位で変更が行われる結果となることが、図7において明確に示されている。
これにより、従来のようにして、使用頻度が高くなる物理的記憶領域を含むセグメントは、定常的に固定となることはなく、フォーマット処理ごとに変更されることになる。つまり、フラッシュメモリの物理的記憶領域全体についての使用頻度を均一的にすることが可能となるわけであり、これによるフラッシュメモリの長寿命化、延命化が図られることとなる。
なお、確認のために述べておくと、本実施の形態としての論理アドレス範囲のローテーション(変更)によっては、ファイル管理情報のみではなく、ユーザデータを記憶するためのデータ領域として使用されるフラッシュメモリの物理的記憶領域の使用頻度も均一化されることになる。つまり、FATなどのファイルシステムでは、ユーザデータの書き込みにあたり、データ領域をアドレス(論理アドレス)の下位側から使用していくことが一般的である。従って、データ領域に関しても、論理アドレスの下位側となるほどデータの書き込みが集中しており使用頻度が高くなる傾向である。このことから、例えば図6及び図7により説明したようにして論理アドレス範囲のローテーションが行われることによっては、データ領域として使用される物理的記憶領域についても、その使用頻度が分散されることとなり、上記もしているように、使用頻度が均一化される。
続いて、図8を参照して、本実施の形態としての論理アドレス範囲のローテーションについての変形例について説明する。
先ず、図8(a)により、変形例としての基本的な論理アドレス範囲の割り当て設定について説明する。なお、この図においても、図6及び図7と同様にして、物理ブロック(アドレス)範囲0〜2047までの2048ブロックを、物理ブロック範囲0〜511のセグメント0、物理ブロック範囲512〜1023のセグメント1、物理ブロック範囲1024〜1535のセグメント2、物理ブロック範囲1536〜2047のセグメント3の4セグメントに分割している。また、論理アドレス範囲としては、ここでは全体で、0〜1983までの1984としたうえで、ファイル管理情報については、0〜95の連続した論理アドレス値による論理アドレス範囲を割り当て、データ領域については、論理アドレス範囲100〜1983を割り当てることとしている。論理アドレス範囲96〜99は、この場合にも空き領域として設定される。
そのうえで、この変形例としては、先ず、ファイル管理情報に割り当てられた論理アドレス範囲0〜95について、0〜23、24〜47、48〜71、72〜95の4つの論理アドレス範囲に分割する。また、ここでは、データ領域の論理アドレス範囲100〜569については、100〜569、570〜1039,1040〜1511、1512〜1983の4つの論理アドレス範囲に分割する。
そして、セグメント0〜3ごとの物理アドレス範囲に対応させる論理アドレス範囲としては、図8(a)において示されるようにして、パターンA,B,C,Dの4パターンを形成することとする。パターンAは、論理アドレス範囲0〜23と、論理アドレス範囲100〜569とを含んで形成される。パターンBは、論理アドレス範囲24〜47と、論理アドレス範囲570〜1039とを含んで形成され、パターンCは、論理アドレス範囲48〜71と、論理アドレス範囲1040〜1511とを含んで形成され、パターンDは、論理アドレス範囲72〜95と、論理アドレス範囲1512〜1983とを含んで形成される。
つまり、変形例としては、メディアに記憶される情報のうちで、他の情報と比較して更新機会が最多とされる情報であるファイル管理情報に関して、割り当てが行われた論理アドレス範囲をセグメントに対応して分割する。そして、セグメント単位に対応させるローテーション対象の論理アドレス範囲の個々に対して、これらの分割したファイル管理情報の論理アドレス範囲を1つずつ含めるようにされる。
そのうえで、図8(a)においては、セグメント0(物理アドレス範囲0〜511)に対しては、パターンAの論理アドレス範囲を対応させ、セグメント1(物理アドレス範囲512〜1023)に対しては、パターンBの論理アドレス範囲を対応させ、セグメント2(物理アドレス範囲1024〜1535)に対しては、パターンCの論理アドレス範囲を対応させ、セグメント3(物理アドレス範囲1536〜2047)に対しては、パターンDの論理アドレス範囲を対応させている。
そして、この変形例としても、フラッシュメモリ2をフォーマット(初期化)するごとに、セグメントに対する論理アドレス範囲の対応を、セグメント番号順に従って循環(ローテーション)させるようにして変更する。
つまり、例えば図8(a)に示す状態の下でフラッシュメモリ2をフォーマット(初期化)したとすると、図8(b)に示すようにして、パターンAが対応するセグメントについては、セグメント0からセグメント3に変更するようにされる。また、パターンBが対応するセグメントについては、セグメント1からセグメント0に変更し、パターンCが対応するセグメントについては、セグメント2からセグメント1に変更し、パターンDが対応するセグメントについては、セグメント3からセグメント2に変更する。
そして、ここでの図示は省略しているが、以降においてフラッシュメモリ2のフォーマットが実行されるごとに、各論理アドレス範囲のパターン(A,B,C,D)が対応するセグメントは、セグメント番号を1つずつデクリメントする(セグメント0の次は、最大のセグメント番号(3)に戻る)ようにして変更される。
これまでにも説明しているように、ファイル管理情報は、ユーザデータと比較して更新頻度が著しく高い。しかしながら、よりマクロにみれば、ファイル管理情報においても、その情報内容や、ユーザの使用の特徴などに応じて、使用頻度が高い領域と低い領域とが存在し得る。つまり、ファイル管理情報に割り当てられた論理アドレス範囲において、その範囲部分に応じて使用頻度に差異、ばらつきが生じる。そこで、図8に示したようにしてセグメント(物理ブロック(アドレス)範囲)に対応させる論理アドレス範囲のパターンを設定したうえで、この論理アドレス範囲のパターンをローテーションさせれば、ファイル管理情報内で更新頻度が高い論理アドレス範囲が使用する物理ブロックが変更されることとなり、結果的に、物理ブロックについての使用頻度の均一化がより推し進められることになる。
続いて、これまでに図6〜図8により説明した、本実施の形態としての論理アドレス範囲のローテーションを実現するための構成について説明を行う。なお、以降の説明にあたっては、セグメントに対応させる論理アドレス範囲として、図8に示したパターンによる設定を行った場合を例に挙げることとする。
図6〜図8により模式的に示したように、本実施の形態における、セグメントに対する論理アドレス範囲のローテーションは、論理−物理アドレス変換テーブルにおいて示される物理アドレス範囲に対応させる論理アドレス範囲を変更することで実現される。そこで、本実施の形態では、先ず、図9(a)(b)(c)(d)に示すようにして、論理−物理アドレス変換テーブルとして、テーブルパターンA,B,C,Dの4つのテーブルパターンの基本形を用意する。
図9(a)に示すテーブルパターンAは、図8に示したパターンAの論理アドレス範囲に対応する論理−物理アドレス変換テーブルのパターンである。
このテーブルパターンAは、所定ビット数の物理アドレス格納領域FL1を494列配置した構造とされる。そのうえで、これら494の物理アドレス格納領域FL1の個々に対しては、配列順に従って特定の1つの論理アドレスが対応付けられる。このテーブルパターンAでは、先ず、1番目から24番目の列順に従って、論理アドレス0,1,2〜22,23のアドレス値を対応させ、続く25番目から494番目までの列に対して、論理アドレス100〜569までのアドレス値を順次対応させる。つまり、1番目から494番目までの列に対して、図8におけるパターンAの論理アドレス範囲(0〜23,100〜569)を下位から順に割り当てていくようにして対応させている。
図9(b)に示すテーブルパターンBは、図8に示したパターンBの論理アドレス範囲に対応する論理−物理アドレス変換テーブルのパターンとなる。つまり、物理アドレス格納領域FL1を494列配置し、この列順に従って、論理アドレス範囲(24〜47、570〜1039)を順次対応させる。
図9(c)に示すテーブルパターンCは、図8に示したパターンCの論理アドレス範囲に対応する論理−物理アドレス変換テーブルのパターンであり、物理アドレス格納領域FL1を496列配置し、この列順に従って、論理アドレス範囲(48〜71、1040〜1511)を順次対応させる。
図9(c)に示すテーブルパターンDは、図8に示したパターンDの論理アドレス範囲に対応する論理−物理アドレス変換テーブルのパターンであり、物理アドレス格納領域FL1を496列配置し、この列順に従って、論理アドレス範囲(72〜95、1512〜1983)を順次対応させる。
このようにして論理−物理アドレス変換テーブルの構造について、テーブルパターンA,B,C,Dの4つの基本パターンを用意したうえで、物理アドレス格納領域FL1については、セグメント0,1,2,3ごとに、図9(e)に示すようにして定義する。
先ず、物理アドレス格納領域FL1に格納すべき値であり、物理アドレスを示す物理アドレス値dについて、セグメント0については、d=0〜511までの整数を使用し、この物理アドレス値dに与えるべきオフセット値offsetについては、offset=0であることとする。また、セグメント1については、物理アドレス値dについてd=0〜511、オフセット値offsetについてoffset=512とする。また、セグメント2については、物理アドレス値dについてd=0〜511、オフセット値offsetについてoffset=1024とし、セグメント3については、物理アドレス値dについてd=0〜511、オフセット値offsetについてoffset=1536とする。
このようにして、物理アドレス格納領域FL1としては、セグメント0、1,2,3でそれぞれ、d=0〜511の同じ物理アドレス値dを使用したうえで、この物理アドレス値dに設定すべきオフセット値offsetを変更するようにされている。例として、セグメント1の場合には、物理アドレス値dに対して、オフセット値offset=512が設定されるから、物理アドレス格納領域FL1に格納する0〜511までのアドレス値dにより、512(=0+512)〜1023(=511+512)までの実際の物理アドレスを適正に表現できることになる。このような物理アドレス格納領域の定義とすれば、実際の物理アドレス範囲が、例えば図6〜図8に示すようにして0〜2047であるとしても、物理アドレス値dとしては、セグメントにかかわらず、0〜512までの整数値が表現できればよいことになる。つまり、例えば具体的には、物理アドレス格納領域FL1については、最小で9ビットのサイズにとどめることが可能になる。
上記図9に示した論理−物理アドレス変換テーブルの定義に基づいては、先に、図8(a)(b)に示したセグメントと論理アドレス範囲のパターンとの対応は、次のようにしして論理−物理アドレス変換テーブルを構築して設定されるものとなる。
先ず、図8(a)から説明する。
セグメント0としては、
図9(e)にて説明したように、物理アドレス格納領域FL1に格納する物理アドレス値dについては、d=0〜511、オフセット値offset=0とされる。そのうえで、図8(a)の場合においては、図9(a)のテーブルパターンAの構造を採用する。
同様にして、セグメント1の論理−物理アドレス変換テーブルについては、物理アドレス格納領域FL1について物理アドレス値d=0〜511、オフセット値offset=512としたうえで、図9(b)のテーブルパターンBの構造を採用する。
また、セグメント2の論理−物理アドレス変換テーブルについては、物理アドレス格納領域FL1について物理アドレス値d=0〜511、オフセット値offset=1024とされたうえで、図9(c)のテーブルパターンCの構造を採用する。
セグメント3の論理−物理アドレス変換テーブルは、物理アドレス格納領域FL1について物理アドレス値d=0〜511、オフセット値offset=1536とされたうえで、図9(d)のテーブルパターンDの構造を採用する。
そして、図8(a)から図8(b)に示すようにして、論理アドレス範囲のパターンがローテーションされたの応じては、各セグメントの論理−物理アドレス変換テーブルは、次のようにして再構築されることになる。
先ず、セグメント0については、テーブルパターンAの採用に代えて、テーブルパターンBを採用する。なお、物理アドレス格納領域FL1の定義は、セグメント0に対応する物理アドレス値d=0〜511、オフセット値offset=0のままであり、これは変更されるものではない。
セグメント1については、テーブルパターンBの採用に代えて、テーブルパターンCを採用する。物理アドレス格納領域FL1の定義は、物理アドレス値d=0〜511、オフセット値offset=512のままでである。
セグメント2については、テーブルパターンCの採用に代えて、テーブルパターンDを採用する。物理アドレス格納領域FL1の定義は、物理アドレス値d=0〜511、オフセット値offset=1024のままでである。
セグメント3については、テーブルパターンDの採用に代えて、テーブルパターンAを採用する。物理アドレス格納領域FL1の定義は、物理アドレス値d=0〜511、オフセット値offset=0のままでである。
このようにして、セグメントごとの物理アドレス範囲に対する論理アドレス範囲を変更するためには、セグメントごとに図9(a)(b)(c)(d)に示した基本のテーブルパターンのうちからしかるべきテーブルパターンを選択して採用して論理−物理アドレス変換テーブルを作成すればよいということが分かる。
図10のフローチャートは、図9に示した論理−物理アドレス変換テーブルの定義を前提として、図8に示した論理アドレス範囲のローテーションを実現するための処理を示している。つまり、フラッシュメモリ2の初期化時において、セグメントごとに対応する論理−物理アドレス変換テーブルを構築(再構築)する処理である。なお、この図に示す処理は、先に図1に示したデータ処理部3が実行するものとされる。前述もしたように、データ処理部3はマイクロコンピュータとして構成されるものであり、従って、図11に示す処理は、データ処理部3としてのマイクロコンピュータにおいて、CPUがROMなどに記憶されたプログラムを実行することで実行されるものとなる。
例えばフラッシュメモリの初期化処理のルーチンの1つとして、論理−物理アドレス変換テーブルの再構築の処理を開始すべき段階に至ったとされると、先ず、図10のステップS101として示すように、セグメント番号を示す変数n(nは0以上の整数)について、初期値として0を設定する。
次のステップS102においては、現在のセグメントnについての、今回の初期化が実行される直前までの論理−物理アドレス変換テーブルの構築状態として、このセグメントnに対応して採用されていたテーブルパターンが、テーブルパターンA,B,C,Dのうちの何れであったのかについて判別する。
ステップS102においてテーブルパターンAであるとの判別結果が得られた場合には、ステップS103に進んで、セグメントnに対応するテーブルパターンとして、テーブルパターンBを選択して採用する。
また、ステップS102においてテーブルパターンBであるとの判別結果が得られた場合には、ステップS104に進んで、セグメントnに対応するテーブルパターンとして、テーブルパターンCを採用する。
ステップS102においてテーブルパターンCであるとの判別結果が得られた場合には、ステップS105に進んで、セグメントnに対応するテーブルパターンとして、テーブルパターンDを採用する。
ステップS102においてテーブルパターンDであるとの判別結果が得られた場合には、ステップS106に進んで、セグメントnに対応するテーブルパターンとして、テーブルパターンAを採用する。
これらステップS103,S104,S105,S106の処理により採用されたテーブルパターンを用いて、初期化処理時において、各セグメントの論理−物理アドレス変換テーブルが構築されて、所定の記憶領域に書き込まれるようにして領域が確保されることになる。ステップS103,S104,S105,S106の処理を実行した後は、ステップS107に進む。
ステップS107においては、セグメント番号を示す変数nについて、最大値(full)に至った状態であるか否かについて判別している。図8の場合には、セグメント0〜3までのセグメントが形成されているので、最大値としては3となる。ここで、変数nが最大値には至っていないとして否定の判別結果が得られた場合には、ステップS108にて、変数nについて1インクリメントし、ステップS102の処理に戻るようにされる。つまり、ここでの処理としては、セグメント番号の昇順に従って、セグメントごとに、論理−物理アドレス変換テーブルの再構築(テーブルパターンの変更)を行うものとしている。
そして、フラッシュメモリ2において形成される全てのセグメントについての論理−物理アドレス変換テーブルの再構築が終了したとされると、ステップS107において肯定の判別結果が得られることとなって、この図に示す処理を終了することになる。
このような処理が実行されることで、図8にて説明したようにして、フラッシュメモリ2の初期化が行われるごとに、セグメント0〜3に対応する論理アドレス範囲のパターンについての変更が行われることとなる。
ところで、本実施の形態では、上記図10に示した処理は、半導体記憶装置1内のデータ処理部3が実行するものとしている。つまり、論理−物理アドレス変換テーブルの再構築処理は、半導体記憶装置1内で完結したものとなる。換言すれば、アプリケーションよりも下位のファイルシステム階層レベルでの処理となる。このために、例えばホストシステム10に実装されるアプリケーションとしては、フラッシュメモリ2の初期化ごとに論理−物理アドレス変換テーブルが再構築されることについては特に意識することなく、通常のファイルの書き込み/読み出しを実行すればよい。つまり、アプリケーションなどの上位処理層のプログラム等については、フラッシュメモリ2における物理的記憶領域の使用頻度の均一化を図るのにあたり変更の必要がない。
また、本発明としては、これまで説明してきた実施の形態の構成に限定されるべきものではない。例えば、フラッシュメモリに形成されるセグメント数などは、その容量等に応じて変更されるべきものである。例えば図9に示した論理−物理アドレス変換テーブルのテーブルパターンなどは、実際のセグメント数に応じたパターンを用意し、また、個々のテーブルパターンは、実際に設定した論理アドレス範囲に応じた物理アドレス格納領域を用意し、物理アドレス格納領域に設定するオフセット値offsetなども、セグメントごとに対応して適宜設定されるべきものとなる。
また、図9により説明した論理−物理アドレス変換テーブルの構造は、あくまでも一例であり、他の構造を採る場合にも、各セグメントごとの論理−物理アドレス変換テーブルにおいて、論理アドレス範囲の対応を変更できるようにすればよいことになる。
また、図8においては、1つのパターンにおけるファイル管理情報とデータ領域との各論理アドレス範囲の対応関係は固定とされているが、例えば、ファイル管理情報の論理アドレス範囲と、データ領域の論理アドレス範囲とについて、それぞれ独立したものとして扱い、それぞれ異なる規則によりローテーションさせるようにして、論理−物理アドレス変換テーブルを再構築するようにしてもよい。
また、実施の形態では、セグメントに対応する論理アドレス範囲を、単純にローテーション(循環)させるようにして変更しているが、本発明としては、セグメントに対応する論理アドレス範囲の変更パターンとしても、特にローテーションのみに限定されない。例えば、各セグメントにおける物理ブロックの使用頻度の結果に基づいて、物理ブロックの使用頻度が最も高かったとされるセグメントと、最も低かったとされるセグメントとの間で論理アドレス範囲の交換が行われるような変更パターンとされてもよい。
また、本発明としては、必ずしも、全てのセグメントについて論理アドレス範囲を変更すべき必要はなく、1つのセグメントを対象としてみたときに、このセグメントの論理−物理アドレス変換テーブルの物理アドレス範囲に対応する論理アドレス範囲が、初期化前において、他のセグメントの論理−物理アドレス変換テーブルにおいて対応付けられていたものに変更されればよい。従って、例えば、或る特定の2つのセグメント間においてのみ、論理アドレス範囲の交換が行われるようにされてもよい。この場合にも、セグメントと論理アドレス範囲の対応が固定である従来と比較すれば、使用頻度の均一化の目的は達成される。
また、実施の形態では、ファイル管理情報を記憶するために使用する物理的記憶領域が一部に集中しないことを主目的としており、このために、図8においては、ファイル管理情報に対応する論理アドレス範囲を分割して、セグメントごとに分散させることも行っている。しかしながら、本発明としては、ファイル管理情報以外の情報であって、例えば他の情報よりも更新頻度が高いとされる情報を考慮して、例えば図8と同様の論理アドレス範囲の分割を行っても良いものである。例えば、図6〜図8に示したファイル管理情報とデータ領域との区分は、説明の都合上、実際よりも簡略に示されているもので、実際に即しては、ファイル管理情報以外の情報についても考慮した論理アドレス範囲設定を行うことは充分に可能性がある。
また、本実施の形態の半導体記憶装置としては、内部の半導体メモリ素子としてフラッシュメモリを備えているが、例えばフラッシュメモリにおけるブロックのように、データ消去単位に対応する物理的メモリ領域の交替を伴ってデータ書き込みが行われる半導体メモリ素子であれば、フラッシュメモリ以外を備える構成とされてもかまわない。
本発明の実施の形態としての半導体記憶装置の内部構成例を示すブロック図である。 実施の形態の半導体記憶装置が備えるフラッシュメモリの物理構造を示す図である。 実施の形態のフラッシュメモリに対するデータ更新処理(ブロック交替処理)と、論理アドレス及び物理アドレスの概念を示す図である。 論理−物理アドレス変換テーブルの構造を概念的に示す図である。 フラッシュメモリが複数のセグメントにより分割される場合の物理ブロック(物理アドレス)の範囲と論理アドレス範囲との対応関係を示す図である。 図5に示した物理ブロック(物理アドレス)の範囲と論理アドレス範囲との対応関係を基として、本実施の形態における、セグメントに対応させる論理アドレス範囲をローテーションさせた場合の態様例を示す図である。 図6に示した論理アドレス範囲について、ファイル管理情報とデータ領域との論理アドレス範囲を個々に示している図である。 実施の形態としての論理アドレス範囲のローテーション態様の変形例を示す図である。 図8に対応する論理アドレス範囲のローテーションを実現するための論理−物理アドレス変換テーブルの構造例を示す図である。 図8に対応する論理アドレス範囲のローテーションを実現するための処理を示すフローチャートである。
符号の説明
1 半導体記憶装置、2 フラッシュメモリ、3 データ処理部、4 通信処理部、10 ホストシステム

Claims (3)

  1. メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、上記単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この上記論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手段と、
    上記メモリを初期化するときに、1つの集合領域の上記論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の1つの集合領域の上記論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手段と、
    を備え
    上記メモリ管理手段は、
    アドレス値が連続する所定の論理アドレス範囲を分割したうえで、
    論理−物理アドレス対応情報における物理アドレス範囲と対応付けられる1つの論理アドレス範囲について、上記分割されたアドレス範囲の1つを含めるようにして形成するとともに、
    分割の対象としての上記アドレス番号が連続する所定の論理アドレス範囲を、メモリに記憶されるデータを所定の情報単位により管理するための管理情報としてのデータに対応付けた論理アドレス範囲とする、
    メモリ制御装置。
  2. メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、上記単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この上記論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手順と、
    上記メモリを初期化するときに、1つの集合領域の上記論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の1つの集合領域の上記論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手順と、
    を実行し、
    上記メモリ管理手順は、
    アドレス値が連続する所定の論理アドレス範囲を分割したうえで、
    論理−物理アドレス対応情報における物理アドレス範囲と対応付けられる1つの論理アドレス範囲について、上記分割されたアドレス範囲の1つを含めるようにして形成するとともに、
    分割の対象としての上記アドレス番号が連続する所定の論理アドレス範囲を、メモリに記憶されるデータを所定の情報単位により管理するための管理情報としてのデータに対応付けた論理アドレス範囲とする、
    メモリ制御方法。
  3. メモリの記憶領域を所定の固定長により分割した単位領域ごとに対応する物理アドレスと、上記単位領域に書き込まれるべきデータに対応付けられる論理アドレスとの対応を示す論理−物理アドレス対応情報によりメモリ管理を行うもので、この上記論理−物理アドレス対応情報によるメモリ管理を、所定の連続する物理アドレスの範囲に対応する単位領域の集合から成る集合領域ごとに行うメモリ管理手順と、
    上記メモリを初期化するときに、1つの集合領域の上記論理−物理アドレス対応情報における物理アドレス範囲と対応付けられていた論理アドレス範囲を、他の1つの集合領域の上記論理−物理アドレス対応情報において物理アドレスと対応付けられていた論理アドレス範囲に変更するようにして論理−物理アドレス対応情報の再構築を行う再構築手順とを、
    メモリ制御装置に実行させ
    上記メモリ管理手順は、
    アドレス値が連続する所定の論理アドレス範囲を分割したうえで、
    論理−物理アドレス対応情報における物理アドレス範囲と対応付けられる1つの論理アドレス範囲について、上記分割されたアドレス範囲の1つを含めるようにして形成するとともに、
    分割の対象としての上記アドレス番号が連続する所定の論理アドレス範囲を、メモリに記憶されるデータを所定の情報単位により管理するための管理情報としてのデータに対応付けた論理アドレス範囲とする、
    プログラム。
JP2005023110A 2005-01-31 2005-01-31 メモリ制御装置、メモリ制御方法、プログラム Expired - Fee Related JP4665539B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005023110A JP4665539B2 (ja) 2005-01-31 2005-01-31 メモリ制御装置、メモリ制御方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005023110A JP4665539B2 (ja) 2005-01-31 2005-01-31 メモリ制御装置、メモリ制御方法、プログラム

Publications (2)

Publication Number Publication Date
JP2006209608A JP2006209608A (ja) 2006-08-10
JP4665539B2 true JP4665539B2 (ja) 2011-04-06

Family

ID=36966372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005023110A Expired - Fee Related JP4665539B2 (ja) 2005-01-31 2005-01-31 メモリ制御装置、メモリ制御方法、プログラム

Country Status (1)

Country Link
JP (1) JP4665539B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4679581B2 (ja) * 2005-07-29 2011-04-27 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
JP4572205B2 (ja) * 2007-01-12 2010-11-04 Necインフロンティア株式会社 フラッシュメモリドライブ装置、その制御方法及びそのプログラム
US7669092B2 (en) * 2007-02-26 2010-02-23 Micron Technology, Inc. Apparatus, method, and system of NAND defect management
TW200917277A (en) * 2007-10-15 2009-04-16 A Data Technology Co Ltd Adaptive hybrid density memory storage device and control method thereof
JP4737223B2 (ja) * 2008-04-21 2011-07-27 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5180726B2 (ja) * 2008-07-31 2013-04-10 株式会社日立製作所 記憶装置およびデータ書き込み制御方法
US8793429B1 (en) * 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
KR102024725B1 (ko) * 2016-11-23 2019-09-24 한양대학교 산학협력단 스토리지 정보에 기반한 포맷팅 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004040586A1 (en) * 2002-10-28 2004-05-13 Sandisk Corporation Automated wear leveling in non-volatile storage systems
JP2004234473A (ja) * 2003-01-31 2004-08-19 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
JP2004240660A (ja) * 2003-02-05 2004-08-26 Matsushita Electric Ind Co Ltd 不揮発性メモリ装置の制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004040586A1 (en) * 2002-10-28 2004-05-13 Sandisk Corporation Automated wear leveling in non-volatile storage systems
JP2004234473A (ja) * 2003-01-31 2004-08-19 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
JP2004240660A (ja) * 2003-02-05 2004-08-26 Matsushita Electric Ind Co Ltd 不揮発性メモリ装置の制御方法

Also Published As

Publication number Publication date
JP2006209608A (ja) 2006-08-10

Similar Documents

Publication Publication Date Title
JP4665539B2 (ja) メモリ制御装置、メモリ制御方法、プログラム
JP4356686B2 (ja) メモリ装置及びメモリ制御方法
JP4356782B2 (ja) メモリ装置、メモリ制御方法、およびプログラム
EP1561168B1 (en) Method and apparatus for splitting a logical block
JP4679581B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
US6625713B2 (en) Memory controller and method for managing a logical/physical address control table
KR100847506B1 (ko) 기억 장치, 메모리 관리 방법 및 프로그램
US20150186224A1 (en) Data storage device and flash memory control method
US20100082878A1 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
US20080082773A1 (en) Systems for Managing File Allocation Table Information
US20100042775A1 (en) Block management method for flash memory, and storage system and controller using the same
US20060059297A1 (en) Memory control apparatus, memory control method and program
CN1319205A (zh) 记录系统、数据记录设备、存储设备和数据记录方法
JP4561246B2 (ja) メモリ装置
JPWO2008139689A1 (ja) メモリコントローラ、半導体記録装置及び書き換え回数通知方法
TWI457941B (zh) 區塊為基礎快閃記憶體之位元組存取的方法與裝置
JP2007233838A (ja) メモリシステムの制御方法
JP2006252137A (ja) 不揮発性記憶装置の最適化方法
KR100997819B1 (ko) 정보 처리 장치
KR100514756B1 (ko) 플래쉬 메모리를 파일 시스템으로 라이트하기 위한캐쉬처리 방법
JP2007280329A (ja) 不揮発性記憶装置および不揮発性記憶装置の管理方法
JP2005301885A (ja) データ記憶媒体へのアクセス方法,情報処理装置,データ記憶媒体へのアクセスプログラム
JP4218406B2 (ja) 情報記録再生方法
JP4895264B2 (ja) 記憶装置および情報処理装置
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070628

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101122

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101214

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101227

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

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees