JP4586469B2 - メモリ制御装置、メモリ制御方法、プログラム - Google Patents
メモリ制御装置、メモリ制御方法、プログラム Download PDFInfo
- Publication number
- JP4586469B2 JP4586469B2 JP2004268300A JP2004268300A JP4586469B2 JP 4586469 B2 JP4586469 B2 JP 4586469B2 JP 2004268300 A JP2004268300 A JP 2004268300A JP 2004268300 A JP2004268300 A JP 2004268300A JP 4586469 B2 JP4586469 B2 JP 4586469B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit area
- block
- area
- update
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
Description
つまり、データを更新するときには、更新前のデータが書き込まれていたブロックに再度書き込むことはせずに、他の消去状態にあるブロックを選択して書き込みを行うようにされる(ブロック交替処理)。これにより、1つのブロックに対してデータの消去/書き込みが集中しないようにして、フラッシュメモリ全体としての寿命をのばすことが可能となる。
先に説明したようにして、データの更新が行われた後には、実際のブロックに対するデータの書き込み/消去の結果が反映されるようにして、論理−物理アドレス変換テーブルの更新を行うようにされる。
このような場合、例えば、次の半導体記憶装置の起動時においては、実際のフラッシュメモリ上での物理的なデータの記憶状態と、上記論理−物理アドレス変換テーブルなどの管理情報の内容とに不整合が生じていることになる。このままでは、以降において、フラッシュメモリに対する正常なデータの管理、アクセスが保証できなくなる。
ここで、この中断判定準備処理としては、データ書き込み処理が実行されるごとに必ず行われるべきものとなるから、できるだけ効率的に行われることが求められる。
つまり、データ消去の最小単位となる消去単位領域により記憶領域が分割されるメモリに対する物理的なデータ更新処理として、少なくとも、消去済み状態の消去単位領域のうちから決定された書込対象消去単位領域に対して更新データを書き込む処理と、更新の対象となる更新対象データが書き込まれていた更新対象消去単位領域から、この更新対象データを消去する処理とによる単位領域交替処理を実行するデータ更新手段を備える。
また、単位領域交替処理が実行されるときに応じて、次回の単位領域交替処理において書込対象消去単位領域として決定されるべき、消去済み状態の上記消去単位領域を特定するための領域特定情報を生成する情報生成手段と、単位領域交替処理が終了した後において、情報生成手段により生成された領域特定情報を、メモリに対して物理的に書き込むための処理を実行する情報書込手段と、メモリに書き込まれているとされる領域特定情報により特定した消去単位領域を、上記データ更新手段が実行する今回の単位領域交替処理において使用すべき上記書込対象消去単位領域として決定する領域決定手段とを備える。
また、最後の単位領域交替処理の開始から情報書込手段の処理が終了するまでの過程において中断が生じたか否かについての判定を行うのにあたり、現在のメモリに書き込まれている領域特定情報により特定される消去単位領域の状態として、データが消去済みの状態であるか否かについて判別するようにされた中断判定手段を備える。
また、単位領域交替処理が実行されるときに応じて、次回の単位領域交替処理において上記書込対象消去単位領域として決定されるべき、消去済み状態の消去単位領域を特定するための領域特定情報を生成する情報生成手順と、単位領域交替処理が終了した後において、情報生成手順により生成された領域特定情報をメモリに対して物理的に書き込むための処理を実行する情報書込手順と、メモリに書き込まれているとされる領域特定情報により特定した消去単位領域を、データ更新手順が実行する今回の単位領域交替処理において使用すべき書込対象消去単位領域として決定する領域決定手順を実行する。
また、最後の単位領域交替処理の開始から情報書込手順の処理が終了するまでの過程において中断が生じたか否かについての判定を行うのにあたり、現在のメモリに書き込まれている領域特定情報により特定される消去単位領域の状態として、データが消去済みの状態であるか否かについて判別するようにされた中断判定手順とを実行するように構成することとした。
このような構成の場合において、例えば最後の単位領域交替処理から領域特定情報のメモリ書き込み処理までのシーケンスが正常に終了した場合、領域特定情報もメモリに対して正常に記録されることになる。このときにメモリに記録された領域特定情報の内容は、適正に、次回の単位領域交替処理において更新データの書き込みに使用されるべき消去済みの消去単位領域を特定するものであることになる。
これに対して、最後の単位領域交替処理から領域特定情報のメモリ書き込み処理までのシーケンスの間で中断が生じた場合には、メモリへの領域特定情報の書き込みが完了していないことで、例えば最後の単位領域交替処理において更新データを書き込んだ書込対象消去単位領域を特定する内容のままであることになる。しかしながら、単位領域交替処理が開始されてからの中断であるから、何らかのデータは、この書込対象消去単位領域に書き込まれた状態となっている。
このことから、中断判定手段(手順)としては、現在の領域特定情報により特定される消去単位領域について、消去済みであるか否かを判別することで、中断判定が行えることになる。
このようにして本発明における中断判定は、メモリに書き込んで記憶させた領域特定情報を利用するのであるが、この領域特定情報のメモリへの書き込みは、1回の単位領域交替処理に対応して1回のみしか行われないようになっている。
これにより、或るデータサイズのデータの更新(書き込み)に要する時間は、メモリへのアクセス回数が少なくなる分、短縮されることになる。
また、上記した単位領域交替処理を行う目的が、消去回数により寿命が決まる特性のメモリの寿命の延長を目的とするものである場合には、メモリへの書き込み回数が少なくなることにより、上記した消去単位領域の消去頻度も低くなる。つまり、メモリの長寿命化を図ることも可能となる。
このようにして本発明では、中断判定準備処理について、メモリに対するデータ処理速度やメモリの寿命の点などに関して、効率化が図られているものである。
この半導体記憶装置は、1つの独立したリムーバブルメディアとしての形態を採り、外形形状としては、例えば小型の板状となっている。
なお、以降の説明は次の順序で行う。
1.半導体記憶装置の構成。
2.フラッシュメモリの物理フォーマット。
3.物理アドレス及び論理アドレスの概念。
4.論理−物理アドレス変換テーブル。
5.BMAPの構造(第1例)。
6.BMAPの構造(第2例)。
7.SMAP。
8.データの書き込み(更新)処理手順。
8−1.ユーザデータの書き込み。
8−2.管理情報(SMAP、BMAP)の書き込み。
9.処理動作。
9−1.データ書込処理。
9−2.中断判定処理。
9−3.BMAP再構築処理。
10.他の中断判定のための構成。
1.半導体記憶装置の構成。
図1は、本実施の形態の半導体記憶装置1の内部構成例を示している。
この図に示すようにして、半導体記憶装置1は、フラッシュメモリ2、データ処理部3、及びホスト間通信処理部4を備えて成る。
なお、データ処理部3としては、例えばCPU、ROM及びRAMなどを備えるマイクロコンピュータとして構成される。
通信処理部4では、所定の通信方式によりホストシステム10から送信されてきたコマンド(レスポンス)、データなどの情報を受信、デコードし、半導体記憶装置1内部のデータ通信方式に従った形式のデータに変換してデータ処理部3に対して転送する。データ処理部3は、通信処理部4から転送されてきたコマンド、データなどを受信したのに応じて、コマンドに応答した処理や、フラッシュメモリ2へのデータ書き込みなどの処理を実行する。
また、例えばデータ処理部3が、コマンド(レスポンス)を送信したり、フラッシュメモリ2から読み出したデータをホストシステム10に転送する場合には、データ処理部3は、これらのコマンド、データなどを通信処理部4に転送して、ホストシステム10に対して送信するように指示を行う。これに応じて通信処理部4は、データ処理部3から転送されてきたコマンド、データを、ホストシステム10との通信方式に従った形式に変換してホストシステム10に送信する。
この場合のホストシステム10がどのような機器であるのかについては、ここでは特に限定されるべきものではないが、例えばパーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオレコーダ、携帯電話などを挙げることができる。例えばデジタルスチルカメラを例にとると、撮影操作に応じて生成された写真としての画像データを半導体記憶装置1に対して転送して、フラッシュメモリ2に記憶させるようにする。また、例えば半導体記憶装置1(フラッシュメモリ2)から写真の画像データを読み出して取り込み、液晶ディスプレイパネルなどの表示部に表示出力させることなどが行われる。
2.フラッシュメモリの物理フォーマット。
続いて、図2を参照して、フラッシュメモリ2の物理フォーマットについて説明する。 フラッシュメモリとしての記憶領域全体は、図2(a)に示すようにして、先ず、所定の固定長によるセグメント単位で分割される。
また、1セグメントは、図2(b)に示すようにして、所定の固定長によるブロック(消去単位領域)0〜nにより分割される。周知のようにして、フラッシュメモリは、データの上書きはできないことになっており、データの書き込みは、消去済みの領域に対して行われる。そして、このブロックは、データを消去するときの最小単位となる。
本実施の形態に対応するフォーマットでは、原則として、1セグメントは512ブロックにより分割されて成る。この場合、図2(b)に示される最終のブロック番号nは511となる。また、図2(a)において示されるセグメント0〜Mで表されるM+1個のセグメントは、それぞれ512ブロックごとの単位で分割されることになる。
そして、1つのフラッシュメモリ内におけるデータ用セグメントの数(M)は1以上であることが規定されるが、これについてはフラッシュメモリの容量に応じて異なってくることになる。
また、図2(a)においては、セグメント0内の先頭においてシステム用セグメントが記されているが、これについては、後述する。
1ページは固定長であり、図2(d)に示すように、所定サイズのデータ部と冗長部より成る。データ部にはデータを格納する領域であり、冗長部は、各種の所要の管理情報などが格納される領域となる。
データ書き込みについては、このページが最小単位となる。つまり、フラッシュメモリ2は、データの消去はブロック単位で行われ、データの書き込みはページ単位で行われるべきものとなっており、データ消去単位とデータ書込単位のデータサイズが相互に異なるものとなっている。なお、ブロック内におけるページ数は、固定的に規定されているものではなく、例えばこれまでにおいては、16(m=15),32(m=31),64(m=63)などのページ数の構造とすることが行われている。
3.物理アドレス及び論理アドレスの概念。
上述したフラッシュメモリの物理フォーマットを踏まえたうえで、フラッシュメモリのファイル管理において定義される物理アドレスと論理アドレスの概念について、図3を参照して説明する。図3は、データの更新手順を示している。
図3(a)は、データ更新処理前の状態として、或るセグメント内から4つのブロックを抜き出して、これを模式的に示している。
フラッシュメモリにおいて物理的に存在する各ブロック(物理ブロック)に対しては物理アドレスが付される。この物理アドレスはメモリにおける物理ブロックの物理的な配列順に従って決まるもので、或る物理ブロックとこれに対応付けされた物理アドレスとの関係は不変となる。図2(a)において示されていたブロックアドレスは、この物理アドレスとなる。
ここでは、図3(a)に示す4つのブロックに対して、上から順に物理アドレスの値として、105,106,107,108が付されている。なお、実際の物理アドレスは例えば2バイトにより表現される。
図3(a)では、4つの各ブロックに対して、上から順に論理アドレスの値として、102,103,104,105が付されている状態が示されている。なお、論理アドレスも実際には2バイトにより表現されるものである。
このような場合、フラッシュメモリのファイルシステムでは、同じブロックに対して更新したデータを再度書き込むことはせずに、消去済ブロックに対してその更新したデータを書き込むようにされる。
つまり、例えば図3において処理1となる図3(a)から図3(b)の遷移として示すようにして、物理アドレス105のブロックに書き込まれていたデータについての更新データは、これまで未使用ブロックであった物理アドレス107で示されるブロックに書き込むようにされる。そして、物理アドレス105のブロックのデータについては消去するようにされる。
そして、この際に論理アドレスを上記処理2のようにして扱うことで、更新前と更新後のデータとで書き込まれるブロックの交替があるようにされても、FATは論理アドレスによりファイル管理を行っているために、FAT側からは同一のアドレスが見えることになり、以降のアクセスを適正に実行することができるものである。
なお、後述する論理−物理アドレス変換テーブル上での更新のための管理を簡略にすることなどを目的として、上記したようなデータ書き込み対象とするブロックの交替は、1セグメント内で完結するものとして規定されており、セグメント間で跨るようにしては行われない。
4.論理−物理アドレス変換テーブル。
上記図3に示したようにしてブロックの交替を伴ってデータの書き込みが行われることで、物理アドレスと論理アドレスの対応は変化する。従って、フラッシュメモリに対するデータの書き込み及び読み出しのためのアクセスを実現するには、物理アドレスと論理アドレスとの対応が示される論理−物理アドレス変換テーブルが必要となる。つまり、論理−物理アドレス変換テーブルをFATが参照することで、FATが指定した論理アドレスに対応する物理アドレスが特定され、この特定された物理アドレスにより示されるブロックにアクセスすることが可能になるものである。逆に言えば、論理−物理アドレス変換テーブルが無ければ、FATによるフラッシュメモリへのアクセスが不可能となる。
この図に示すようにして、論理−物理アドレス変換テーブルとしては、例えば、先ず論理アドレスを昇順に整列させることことしている。そして、各論理アドレスごとに、対応させるべき物理アドレスを格納するようにしてテーブル情報を構築する。
なお、先に図3により説明したデータ書き込み時におけるブロックの変更はセグメントの範囲内で行われるので、上記図4に示した構造概念の論理−物理アドレス変換テーブルは、セグメントごとに設けられるものとなる。
この図においては、各512ブロックの容量のセグメント0〜3の4セグメントが設定された例が示されている。そのうえで、この場合において、フラッシュメモリにおいて先頭となるセグメント0については、物理ブロックのアドレス、つまり、物理アドレスとしては、0〜511までの範囲が割与えられることになる。また、次のセグメント1の物理アドレスは512〜1023の範囲が割与えられ、さらに、セグメント2は、1024〜1535、セグメント3は、1536〜2047の物理アドレス範囲が割り振られることになる。
また、セグメント1の論理−物理アドレス変換テーブルは、論理アドレス490〜979のそれぞれに対して、物理アドレス512〜1023の何れかを対応させ、セグメント2の論理−物理アドレス変換テーブルは、論理アドレス980〜1469のそれぞれに対して、物理アドレス1024〜1535の何れかを対応させ、セグメント3の論理−物理アドレス変換テーブルは、論理アドレス1470〜1959のそれぞれに対して、物理アドレス1536〜2047の何れかを対応させることになる。
また、論理−物理アドレス変換テーブルは、実際には、管理情報であるBMAPに対して格納されるものであり、その具体的な構造については、BMAPの構造とともに次に説明する。
5.BMAPの構造(第1例)。
フラッシュメモリにおいては、セグメントごとにブロック単位の管理を行うための管理情報として、BMAPといわれるテーブル情報を備えることとしている。このBMAP内に、論理−物理アドレス変換テーブルが含められる。そして、このBMAPは、フラッシュメモリ上のセグメントごとに、或るブロック内に対して書き込まれるようにして記憶される。
以下、このBMAPの構造について図6及び図7を参照して説明する。
なお、この説明にあたっても、単純に、フラッシュメモリについては、512ブロック単位のセグメントで分割した基本的なフォーマットをとっていることを前提とする。また、図6及び図7には、フラッシュメモリの記憶領域において物理的に先頭となるセグメント0に対応した場合の構造を示すこととする。
BMAPは、1ページ分の情報であり、従って、図2(d)にても説明したように、データ部と冗長部とから成るものとされる。そして、本実施の形態としては、図6(a)に示すようにして、データ部については2048バイト、冗長部については、64バイトであることとしている。つまり、この場合のページ単位は、2112バイトの固定長となる。
そして、論理−物理アドレス変換テーブルは、データ部の第0列〜第489列における、下位9ビットの領域を使用する。
この論理−物理アドレス変換テーブルとしての領域は、9ビットの単位領域が490個配列された構造となる。そして、この領域について、図6(b)に示すようにして第0列〜第489列の各列ごとに対応させて、論理アドレス0〜490を割り当てるものとする。そして、この9ビットの領域に対して、図6(c)に示すようにして、各論理アドレスに対応する物理アドレスを格納するようにされる。つまり、本実施の形態では、物理アドレスは9ビットにより表現される。
このようにして、実際の論理−物理アドレス変換テーブルの構造としても、図4にて説明したように、論理アドレスを昇順に整列させたうえで、これらの論理アドレスごとに物理アドレスを対応させる構造となっている。
そして、本実施の形態としては、この7ビットのブロック情報領域について、図6(e)に示すように、少なくとも、書込済みフラグと、不良フラグの領域を設けることを規定する。この場合、書込済みフラグ及び不良フラグは共に1ビットとされ、書込済みフラグを第1ビットに配置し、不良フラグを第2ビットに配置することとしている。もちろん、このフォーマットは一例であり、書込済みフラグ及び不良フラグのビット数及びブロック情報領域におけるビット位置などは変更されてよい。
不良フラグは、0、1の値により、現ブロック情報領域に対応する物理アドレスが示すブロックが、不良(ディフェクト)ブロックであるか否かを示す。
このような場合には、BMAPなどの管理情報の再構築を行うことで、以降の正常なデータ管理、アクセス等が可能となるのであるが、このためには、例えば半導体記憶装置1の起動時などにおいて、最後のデータ書き込み処理が中断されたか否かについての判定(中断判定)が行えるように構成する必要がある。
予約ブロックアドレスは、次回のデータ書き込み時にデータ書き込み対象とするブロックの物理アドレスを格納する領域とされ、ここでも、物理アドレスのビット数に対応させて9ビットのデータサイズを割り当てている。
また、この予約ブロックアドレスの格納位置としては、データ部における第490列以降における所定の列の下位9ビットとするようにされる。
あるいは、冗長部における所定の9ビットの領域を割与えるようにしてもよい。図においては、冗長部の先頭9ビットを割り当てるようにして記載されているが、実際の格納位置としては、冗長部に格納される他の情報との兼ね合いにより適切とされる9ビット範囲の領域が規定されればよい。
なお、予約ブロックアドレスの領域を、中断判定のためにどのようにして使用するのかについては後述する。
6.BMAPの構造(第2例)。
BMAPの構造としては、上記図6に示したものに限定されるべきではない。そこで、BMAPの構造の他の例を図7に示しておく。
先ず、この図7(a)に示すBMAPとしてのページ構造において、データ部は、第0バイト〜第2047バイトまでの1バイト単位の列による構造としている。そのうえで、論理−物理アドレス変換テーブルは、データ部の第0バイト〜第551バイトまでの552バイトの領域を使用して、図2(b)に示すようにして構築する。
つまり、上記バイト0〜551までの552バイトの領域について、9ビット単位で区切っていくようにする。すると、この9ビット単位の領域を490個つくることができる。そして、これら490個の9ビット単位の領域について、先頭から論理アドレス0〜489をそれぞれ対応付ける。つまり、論理アドレス0〜489の昇順に従って、9ビットの領域が存在するようにしている。
そして、この9ビットの領域に対して、図7(c)に示すようにして、各論理アドレスに対応する物理アドレスを格納するようにされる。このようにして、図7に示す論理−物理アドレス変換テーブルの構造としても、論理アドレスを昇順に整列させたうえで、これらの論理アドレスごとに物理アドレスを対応させる構造となっているものである。
この不良ブロックビットマップを形成する512ビットに対しては、先頭のビット位置から順に、1ビットごとに、物理アドレス0〜511を対応させる。つまり、不良ブロックビットマップを形成する512ビットの先頭ビットから最終ビットまでの各ビットが、物理アドレス0〜511により示されるブロックに対応するようにされる。そして、各ビットに対して0,1を格納することで、そのビット位置に対応する物理アドレスが示すブロックが不良であるか否かを示すことになる。
このようにして512ビットとなる書込済みブロックビットマップとしても、先頭のビット位置から順に、1ビットごとに物理アドレス0〜511を対応させ、各ビットに対して0,1を格納することで、そのビット位置に対応する物理アドレスが示すブロックについて、データが書き込み済みの状態と消去済みの状態の何れであるのかを示すようにされる。
あるいは、図6の場合と同様にして、冗長部における所定の9ビットの領域を割与えるようにする。
また、BMAPの構造は、上記図6及び図7に示したものに限定されるべきものではなく、例えば各セグメントのBMAPのアドレス、セグメント内の不良ブロック、書込済みブロック、及び予約ブロックアドレスなどについての管理が可能とされる構造であれば、適宜変更されてよいものである。
7.SMAP。
ここで、確認のために述べておくと、BMAPが格納されるブロックについても、ブロック単位でのデータ更新が必要となった場合には、例外なく、先に図3にて説明したブロックの交替が行われる。従って、セグメント内においてBMAPが格納されるブロックは不定である。
このために、ファイルシステムがBMAPを参照するなど、BMAPを利用するためには、BMAPを格納するブロックのアドレスを取得可能とするための仕組みを構成する必要があることになる。
しかしながら、このような手順では、BMAPの格納位置がセグメント内において後ろ側に位置するほど探索時間が長くなるという不都合が生じる。
そこで、本実施の形態としては、BMAPを管理するための管理情報である、システム管理情報(SMAP)を設けることとする。
そして、このシステム用セグメント内に対してSMAPを格納するようにされる。なお、後述するようにして、本実施の形態において規定するSMAPは、1ページ単位のデータとなる。
なお、本実施の形態のようにしてシステム用セグメントを規定した場合、他の通常のセグメントについてはデータ用セグメントともいうことにして、システム用セグメントと区別する。
先ず、SMAPについても、BMAPと同様にして、ブロック単位での更新が必要となったときにはブロック交替が行われるので、システム用セグメント内においてSMAPを格納するブロックは不定である。
BMAPについては、後述する説明から分かるようにSMAPを参照することでBMAPのアドレスが特定されるので、検索時間が高速で安定したものとなる。しかしながら、BMAPの上層の管理情報となるSMAPについては、例えば起動時などにおいて、ブロック単位での読み出しを行って検索していく必要がある。この場合において、システム用セグメントについても原則通りに、512ブロックにより形成したとすると、SMAPの格納位置によっては、検索に多くの時間を要することとなってしまう。
そこで、本実施の形態のようにして、システム用セグメントとしては、512ブロックよりも少ない適切なブロック数を設定することとすれば、SMAPの検索時間としては短縮されることになる。
なお、ここでは、システム用セグメントを72ブロック分としているが、これはあくまでも一例である。システム用セグメントについては、上記した検索時間のほかに、システム用セグメントに格納すべき情報量と、これらの情報の更新頻度と、消去回数制限(寿命)とのバランス、その他考慮して、適切なブロック数を規定すればよい。
つまり、システム用セグメントは、本来は、フラッシュメモリ2において物理的に先頭となる、ブロックアドレス0〜511までの512ブロック分のデータ用セグメント0から、前半72ブロックを割り当てて形成するものとしている。なお、残るデータ用セグメント1〜Mについては、原則通り512ブロック単位となる。
本実施の形態が対応するフラッシュメモリ全体は、セグメント容量が512ブロック単位であることに応じて、512ブロック×n(nは自然数)に相当する記憶容量とすることが通常である。そこで、上記のようにして、システム用セグメントとデータ用セグメント0とによって512ブロックのサイズとすることで、フラッシュメモリ全体において、システム用セグメント及びデータ用セグメントが効率よく収まるようにしている。
図8(a)に示すようにして、SMAPとしてもBMAPと同様にして1ページ分の情報とされ、例えば2048バイトのデータ部と64バイトの冗長部とを有する。そして、この図8(a)に示すSMAPとしてのページ構造において、データ部は、第0バイト〜第2047バイトまでの1バイト単位の列による構造としている。
そして、データ部の第0バイトから、必要なデータ容量に応じたバイト位置までの領域を、図8(b)に示すBMAP物理アドレステーブルとして使用する。
このような構造を有するBMAP物理アドレステーブルを参照することで、例えばファイルシステムとしては、物理アドレスにより、各セグメント(データ用セグメント)においてBMAPが格納されるブロックを特定することが可能となる。
この不良ブロックビットマップを形成する72ビットに対しては、先頭のビット位置から順に、1ビットごとに、物理アドレス0〜71を対応させる。つまり、不良ブロックビットマップを形成する72ビットの先頭ビットから最終ビットまでの各ビットが、物理アドレス0〜72により示される物理ブロックに対応するようにされる。そして、各ビットに対して0,1を格納することで、そのビット位置に対応する物理アドレスが示すブロックが不良であるか否かを示すようにされる。
このようにして512ビットとなる書込済みブロックビットマップとしても、先頭のビット位置から順に、1ビットごとに物理アドレス0〜71を対応させ、各ビットに対して0,1を格納することで、そのビット位置に対応する物理アドレスが示すブロックについて、データが書き込み済みの状態であるか否かを示すようにされる。
なお、システム管理情報テーブルとしては、各セグメントのBMAPを管理するためのものとされるので、予約ブロックアドレスを設ける必要はない。
また、このSMAPの構造としても、BMAPと同様にして、図示したものに限定されるべきものではなく、例えば各セグメントのBMAPのアドレス、システム用セグメント内の不良ブロック、及び書込済みブロックなどが管理可能とされる構造であれば、適宜変更されてよい。
8.データの書き込み(更新)処理手順。
8−1.ユーザデータの書き込み。
また、本実施の形態では、上記したSMAP、BMAPなどのページ単位の管理情報と、ユーザデータとしてのデータとで、異なるデータ書き込み(更新)の処理手順をとるようにされる。
先ず、ユーザデータの書き込み処理としては、先に図3により説明したブロック交替を伴ったものとなるのであるが、この書き込み処理についての具体的な手順例を図9により説明する。
ここで、図9(a)は、更新処理前において、新規ブロックが決定された状態例を模式的に示している。ここでの更新対象ブロックとして示すように、更新前のデータとしては、Page0、Page1、Page nの3つのページ位置のデータから成るものとされる。また、この段階では、新規ブロックは消去済みの状態となっている。なお、上記更新前のデータを形成するPage1は、あくまでもPage0及びPage n以外の、更新前データを成すページ位置としての一例を示しているものであり、実際には、他のページのうちで、更新対象のページ以外の位置のページも更新前のデータ要素となり得るものである。
また、今回のブロック交替によって、上記更新対象ブロックについては、書込済みの状態から消去済みの状態に変化し、上記新規ブロックについては、消去済みの状態から書込済みの状態に変化したので、これに応じて、物理ブロック管理情報についても更新を行うようにされる。
図6の場合であれば、上記更新対象ブロックを示す物理アドレスのブロック情報領域(図6(e))の書込済みフラグについて、書込済みを示す値から消去済みを示す値に書き換えを行う。また、上記新規ブロックを示す物理アドレスのブロック情報領域の書込済みフラグについては、消去済みを示す値から書込済みを示す値に書き換えを行う。
また、図7の場合であれば、図7(e)に示す書込済ブロックビットマップを書き換えることになる。つまり、上記更新対象ブロックを示す物理アドレスのビット位置については、書込済みから消去済みを示すビット値に変更し、上記新規ブロックを示す物理アドレスのビット位置については、消去済みから書込済みを示す値に変更する。
8−2.管理情報(SMAP、BMAP)の書き込み。
続いては、SMAP、BMAPなどの管理情報の書き込み(更新)処理手順について、図10を参照して説明する。
これまでにも述べてきたように、フラッシュメモリは、データの消去単位はブロック単位であるが、書き込み単位はページ単位である。また、先に図6、図7、図8により説明しているように、SMAP、BMAPは1ページ単位のデータとしている。このことをふまえて、図10について説明する。また、図10の説明にあたっては、BMAPを更新する場合を例に挙げることとする。SMAPに関しても、ブロックに対する更新処理の手順そのものは、BMAPと同様である。
つまり、本実施の形態におけるBMAPの更新にあたっては、1つのブロックに対して、ページ番号の昇順に従って、順次、更新されたBMAPを1ページ単位で追記して埋めていくようにして書き込みを行っていくようにされる。このようにして更新を行っていくことによっては、例えばブロック内のページ数分の回数によるBMAPの書き込みを行った段階で、ブロックにおける全ページが書込済みの状態となる。この状態において、BMAPの更新が必要となったときに、ブロック交替を伴う更新が行われる。つまり、新規のブロックを用意して、この新規ブロックのPage0のページ位置に対して、更新されたBMAPを書き込むようにされる。また、更新前のBMAPが書き込まれていたブロックにつについてはデータを消去する。
つまり、SMAPにおいては、図8(b)(c)に示されるBMAP物理アドレステーブルによりBMAPの所在を管理しているが、物理アドレスによりBMAPの所在を示していることから理解されるように、BMAP物理アドレステーブルでは、BMAPを格納しているブロックを示すのみにとどまっており、ページ単位までの管理を行っていない。これにより、SMAPにおけるBMAP物理アドレステーブルの更新は、ブロック交替を伴うBMAPの更新が行われるときにのみ対応して行われることになる。このことから、SMAPそのものの更新頻度としては、BMAPよりもはるかに少ないものとなることが分かる。
つまり、BMAPにアクセスする手順としては、先ず、SMAPのBMAP物理アドレステーブルを参照して、最新の有効なBMAPが格納されているブロックを特定し、このブロックにアクセスする。
そして、先に図10により説明した管理情報の更新手順であれば、ブロック内における最新の有効なBMAPは、ブロック内において消去状態となっていない、データが書込済みとされたページのうち、必然的に最後のページ(データ最終書き込みページ)であることになる。そこで、BMAPを格納するブロックにアクセスした後は、そのブロック内の先頭ページからページ順に従って読み出しを行っていけば、最後には、データ最終書き込みページにアクセスできることとなり、有効なBMAPを取得することができる。規定によれば、ブロック内のページ数は、例えば多くても64程度であり、1ページは、例えば2112バイトなので、1セグメント(512のブロック)を対象として検索することと比較すればはるかに短時間で済み、また、処理負担も軽い。
9.処理動作。
9−1.データ書込処理。
続いては、本実施の形態の半導体記憶装置1が実行するデータ(ユーザデータ)の書込処理について、データ処理部3が実行すべき処理として、図11に示すフローチャートにより説明する。先に図1において説明したように、データ処理部3は、マイクロコンピュータとして構成されるものであり、従って、図11に示す処理は、データ処理部3としてのマイクロコンピュータにおいて、CPUがROMなどに記憶されたプログラムを実行することで実行されるものとなる。この点については、後述する図12、図13に示される処理についても同様である。
また、図11に示す処理を実行するのにあたって必要なBMAPは、半導体記憶装置1のフラッシュメモリ2に対するアクセスを完了しており、例えばデータ処理部3の内部RAMに保持している状態にあるものとされる。
また、次のステップS102により、同じBMAPから、予約ブロックアドレス(図6(f)、図7(f))を読み出して取得する。
上記ステップS102の処理によりBMAPから取得された予約ブロックアドレスの値は、今回のデータ更新の前となる、最後のデータ更新のときに設定されたものである。従って、ステップS102の処理により取得した予約ブロックアドレスが示すブロックが、今回の更新における新規ブロックであることになる。そこで、ステップS103においては、この予約ブロックアドレスが示す物理アドレスを、今回の新規ブロックの物理アドレスとして決定するようにされる。
例えば図6のBMAPの場合であれば、図6(d)に示す物理ブロック管理テーブルにおいて、物理アドレスごとに対応する9ビット列単位の情報から書込済みフラグ(図6(e))を参照することで、現在消去済み状態のブロックを特定できる。そして、これらの消去済み状態のブロックのうちから所定規則に従って新規の予約ブロックを決定するようにされる。
また、図7の場合であれば、図7(e)に示す書込済ブロックビットマップを参照することで、上記と同様にして現在消去済み状態のブロックを特定して、所定規則に従って新規の予約ブロックを決定することができる。
そして、次のステップS105では、上記ステップS104での決定結果が反映されるようにして、新規の予約ブロックアドレスを設定する。具体的には、内部RAMに保持したBMAPの構造における予約ブロックアドレスの領域に対して、上記ステップS104により決定された新規の予約ブロックの物理アドレスを上書きするようにして書き込むようにされる。
なお、確認のために述べておくと、この段階では、フラッシュメモリ側のBMAPにおいては、新規の予約ブロックアドレスについての設定(書き込み)は未だ行われていない。
また、続くステップS107においては、図9(c)にて説明したように、新規書き込みデータをページ単位で新規ブロックに書き込むための処理を実行する。
また、続くステップS108においては、図9(d)にて説明したように、更新対象ブロックに書き込まれている後ページデータを、新規ブロックに対してコピーするようにし書き込むための処理を実行する。
なお、上記ステップS106〜S108の処理は、説明を分かりやすいものとするために、図9に対応させた具体的な処理の流れに対応させている。しかしながら、実際における新規ブロックに対するデータ書き込み処理としては、ページ番号の若い順に、適宜、更新対象ブロックからのページデータのコピーによる書き込みと、新規書込データとしてのページデータの書き込みとを実行するようにされており、実際の処理動作としても、このようなページデータ単位での書き込みが実行されるようにプログラムが構成される。
このステップS111による処理が完了した段階で、フラッシュメモリ2におけるBMAPは、そのセグメントにおける現在の物理的なデータ書き込み状態と整合した内容に更新された状態で保存されたことになる。
9−2.中断判定処理。
続いては、本実施の形態における中断判定処理について図12を参照して説明する。ここでいう中断判定とは、先にも説明したように、フラッシュメモリ2に対する最後のデータ書き込み処理が中断されたか否かについての判定を行うことであり、本実施の形態の半導体記憶装置1の起動時において実行される。
なお、半導体記憶装置1が起動するときとは、例えば、電源が投入されて動作中にあるホストシステム10に対して半導体記憶装置1が装填された場合を挙げることができる。また、動作停止中のホストシステム10に対して半導体記憶装置1が装填された状態において、ホストシステム10に対する電源が供給されるなどして動作を開始した場合にも、これに応じて、半導体記憶装置1が起動することになる。
そして、次のステップS203においては、上記ステップS202によりアクセスしたBMAPをフラッシュメモリ2から読み出して、例えば内部RAMに書き込んで保持する。
この場合、ステップS111による、フラッシュメモリ上のBMAPの更新は行われない、あるいは行われていたとしても不完全であるので、フラッシュメモリ2のBMAPは、このデータ書き込みの1つ前のデータ書き込みに対応した内容が残っている状態であると考えてよい。従って、このBMAPの予約ブロックアドレスが示すブロックは、最後の中断されたデータ書き込み処理のときに、新規ブロックとして選択されて、不完全なかたちで更新データが書き込まれている状態のブロックであることになる。
このことから、ステップS207において、アクセスした予約ブロックのデータが消去済みではなく、何らかのデータが書込済みの状態であるとして否定の判別結果が得られた場合には、最後のデータ書き込み処理は中断されたと判定してよいことになる。そこで、この場合には、ステップS208に進んで、このBMAPの再構築の処理を実行してから、この図に示す処理を終了するようにされる。
なお、フラッシュメモリ2において複数のセグメント(データ用セグメント)が存在する場合において、例えば起動時に、これら複数のセグメントごとに対応する中断判定を全て行うとする場合は、例えばステップS201において、各セグメントごとのBMAPのアドレスを取得したうえで、以降は、セグメントごとに、ステップS202〜S208により説明した処理を繰り返し実行するようにすればよい。
9−3.BMAP再構築処理。
図13のフローチャートは、上記図12のステップS208の処理となる、BMAPの再構築処理を示している。
BMAPの再構築処理としては、先ず、ステップS301により現在において内部RAMに保持しているBMAPを破棄し、次のステップS302の処理によって、現在の処理対象セグメント(現セグメント)内の全ブロックが消去済み状態であることを示す内容のBMAPを生成する。
そして、次のステップS303においては、現セグメント内のブロックの物理アドレス範囲の値をとる変数nについて初期値を設定する。ここでの初期値は、上記物理アドレス範囲のなかで最も小さい物理アドレスの値とする。例えば、図5に示したセグメント構成のもとで、現セグメントがセグメント0であるとすればn=0となり、セグメント1であるとすればn=512となる。
ここで、ブロックを形成するページの冗長部によっては、所定構造により、そのブロックについての各種の状態などを示す管理情報(ブロック内管理情報)が形成される。ステップS305においては、上記ステップS304により読み出したブロックからブロック内管理情報を取得するための処理を実行する。
判別結果として、不良ブロックであることが判別された場合には、ステップS307の処理により、このブロックを不良ブロックとしてBMAPの物理ブロック管理情報(図6(d)(e)、図7(d))に登録する。
また、ブロック内管理情報の内容から消去済みであることが判別された場合、あるいはブロック内管理情報の内容からでは状態判定が不可能である結果、不明として判定された場合には、ステップS308の処理により、このブロックを消去済みブロックとしてBMAPの物理ブロック管理情報(図6(d)(e)、図7(e))に登録する。
また、書込済みであることが判別された場合には、ステップS309の処理により、このブロックを論理−物理アドレス変換テーブル(図6(b)、図7(b))に対して登録する。
ここで、ブロック内管理情報には、現物理ブロックに対応付けられる論理アドレスの情報も含まれている。このステップS309の登録処理にあたっては、このブロック内管理情報において示される論理アドレスの情報を使用する。つまり、論理−物理アドレス変換テーブルにおいて、ブロック内管理情報において示される論理アドレスが対応付けられた9ビットの領域に対して、現在の物理アドレスnの値を格納する。
このステップS310において、変数nは最大値ではないとして否定の判定結果が得られた場合には、ステップS311において変数nについて1インクリメントしたうえで、ステップS304の処理に戻るようにされる。これにより、上記もしているように、現セグメント内の全ブロックの各々について、ステップS304〜ステップS310の処理を実行するようにされる。
このような場合には、これらの重複したブロック間で、所定規則に従ったマージ処理、あるいはブロックの選択処理を実行することで整合をとるようにされる。このマージ処理又はブロック選択処理の結果、論理−物理アドレス変換テーブルの登録から外すべきこととなったブロックについては、データの消去を実行したうえで、消去済みブロックとして登録するようにされる。
例えば、ブロック内管理情報としては、現ブロックがBMAPであれば、このことを示す情報が格納されている。従って、現セグメントにおける全ブロックについてステップS304〜ステップS309の処理を終了させた段階では、どのアドレスのブロックがBMAPであるのかを認識できていることになる。そこで、ステップS313としては、このBMAPが格納されているブロックを対象として、例えば先に図10により説明したようにして更新処理を実行するようにされる。
10.他の中断判定のための構成。
ここで、本実施の形態との比較として、本実施の形態以前において採られていた中断判定の構成の一例を、図14により説明しておく。
図14のフローチャートは、本実施の形態以外の他の中断判定に対応する、データ書き込み(更新)のための処理の流れを示している。
この場合には、先ず、ステップS401として示すように、内部RAM上に保持されるBMAPから更新対象ブロックの物理アドレスを取得する。この処理は、図11のステップS101と同様となる。また、次のステップS402においては、同じ内部RAM上に保持されるBMAPを参照して、このBMAPが管理する消去済みブロックのうちから新規ブロックを選択する。
ステップS403では、以降において新規ブロックに対してデータを書き込むのに応じて、上記状態フラグについて、先に、書き込み中を示す値を設定するようにされる。そして、この場合には、ステップS404により、いったん、内部RAM上に保持しているBMAPを、フラッシュメモリ2に転送して書き込んで(更新して)保存する。この保存処理は、フラッシュメモリ2が不揮発性であることを利用して、データ書き込みが中断されたとしても、ステップS403にて設定した書き込み中の状態フラグが残り、正しい中断判定結果が得られるようにすることを目的として行われる。
次のステップS407では、上記ステップS405及びS406のデータ更新結果が反映されるようにして、内部RAM上のBMAPについての更新を行う。また、この場合には、このステップS407によるBMAPの更新にあたり、書き込み中が設定されていた上記状態フラグについて、書込済みを示す値に変更設定する。
そのうえで、ステップS408により、この内部RAM上のBMAPのデータをフラッシュメモリ2に転送して書き込んで保存させるための制御を実行する。
例えば上記図14に示した手順であれば、最後のデータの書き込みが正常に終了していた場合には、上記状態フラグは、書込済みであることを示していることになる。従って、状態フラグを参照した結果、状態フラグが書込済みであることを示していれば、最後のデータ書き込みは正常に実行されたと判定することができる。これに対して、ステップS405以降の処理を開始して、ステップS408のBMAPの保存処理が終了するまでの間に、データ書き込み処理が中断されたとすると、ステップS408の処理が正常に完了しなかったのであるから、上記のようにして参照した状態フラグは、書き込み中(あるいは書き込み済みでもない不明の状態もあり得る)を示していることとなる。これにより、最後のデータ書き込み処理は中断されたと判定することができる。
また、これまでの説明から理解されるように、フラッシュメモリ2に対するデータ書き込み回数が少なくなるのに応じては、その分、フラッシュメモリ2の寿命を延ばすことにも成る。そして、特にBMAPなどは更新頻度が高いデータの範疇であるから、フラッシュメモリ2の長寿命化に関しては特に効果が高い。
このようにして、本実施の形態による中断判定の構成としては、データ書き込み処理の速度や半導体メモリ素子の寿命などの点で、これまでよりも効率的になっているものである。
例えば本実施の形態における領域特定情報としては、予約ブロックとしての物理アドレスを直接示す内容となっている、しかしながら、例えば、BMAPの構造その他の事情に応じては、領域特定情報によっては、予約ブロックの物理アドレスを直接的に示すものではなく、先ず、他の所定の情報項目であったり、他のアドレスなどを示し、この示された対象から辿っていくことで、予約ブロックが特定されるような仕組みとしてもよいものである。
また、これまでにも述べてきているように、各図に示したフラッシュメモリの物理フォーマット及びBMAP、SMAPなどのデータ構造などは適宜変更されてよい。
また、本実施の形態の半導体記憶装置としては、内部の半導体メモリ素子としてフラッシュメモリを備えているが、例えばフラッシュメモリにおけるブロックのようにデータ消去単位に対応する物理的メモリ領域の交替を伴ってデータ書き込みが行われる半導体メモリ素子であれば、フラッシュメモリ以外を備える構成としてもかまわない。
Claims (4)
- データ消去の最小単位となる消去単位領域により記憶領域が分割されるメモリに対する物理的なデータ更新処理として、少なくとも、消去済み状態の上記消去単位領域のうちから決定された書込対象消去単位領域に対して更新データを書き込む処理と、更新の対象となる更新対象データが書き込まれていた更新対象消去単位領域から、この更新対象データを消去する処理とによる単位領域交替処理を実行するデータ更新手段と、
上記単位領域交替処理が実行されるときに応じて、次回の単位領域交替処理において上記書込対象消去単位領域として決定されるべき、消去済み状態の上記消去単位領域を特定するための領域特定情報を生成する情報生成手段と、
上記単位領域交替処理が終了した後において、上記情報生成手段により生成された領域特定情報を、上記メモリに対して物理的に書き込むための処理を実行する情報書込手段と、
上記メモリに書き込まれているとされる上記領域特定情報により特定した消去単位領域を、上記データ更新手段が実行する今回の単位領域交替処理において使用すべき上記書込対象消去単位領域として決定する領域決定手段と、
最後の上記単位領域交替処理の開始から上記情報書込手段の処理が終了するまでの過程において中断が生じたか否かについての判定を行うのにあたり、現在の上記メモリに書き込まれている上記領域特定情報により特定される消去単位領域の状態として、データが消去済みの状態であるか否かについて判別するようにされた中断判定手段と、
を備えることを特徴とするメモリ制御装置。 - 上記記憶領域においては、少なくとも、上記記憶領域におけるデータ書き込み状態を上記消去単位領域により管理するための管理情報が書き込まれており、
上記情報書込手段は、上記管理情報における所定位置に対して上記領域特定情報を格納させて書き込むようにされていることを特徴とする請求項1に記載のメモリ制御装置。 - データ消去の最小単位となる消去単位領域により記憶領域が分割されるメモリに対する物理的なデータ更新処理として、少なくとも、消去済み状態の上記消去単位領域のうちから決定された書込対象消去単位領域に対して更新データを書き込む処理と、更新の対象となる更新対象データが書き込まれていた更新対象消去単位領域から、この更新対象データを消去する処理とによる単位領域交替処理を実行するデータ更新手順と、
上記単位領域交替処理が実行されるときに応じて、次回の単位領域交替処理において上記書込対象消去単位領域として決定されるべき、消去済み状態の上記消去単位領域を特定するための領域特定情報を生成する情報生成手順と、
上記単位領域交替処理が終了した後において、上記情報生成手順により生成された領域特定情報を、上記メモリに対して物理的に書き込むための処理を実行する情報書込手順と、
上記メモリに書き込まれているとされる上記領域特定情報により特定した消去単位領域を、上記データ更新手順が実行する今回の単位領域交替処理において使用すべき上記書込対象消去単位領域として決定する領域決定手順と、
最後の上記単位領域交替処理の開始から上記情報書込手順の処理が終了するまでの過程において中断が生じたか否かについての判定を行うのにあたり、現在の上記メモリに書き込まれている上記領域特定情報により特定される消去単位領域の状態として、データが消去済みの状態であるか否かについて判別するようにされた中断判定手順と、
を実行することを特徴とするメモリ制御方法。 - データ消去の最小単位となる消去単位領域により記憶領域が分割されるメモリに対する物理的なデータ更新処理として、少なくとも、消去済み状態の上記消去単位領域のうちから決定された書込対象消去単位領域に対して更新データを書き込む処理と、更新の対象となる更新対象データが書き込まれていた更新対象消去単位領域から、この更新対象データを消去する処理とによる単位領域交替処理を実行するデータ更新手順と、
上記単位領域交替処理が実行されるときに応じて、次回の単位領域交替処理において上記書込対象消去単位領域として決定されるべき、消去済み状態の上記消去単位領域を特定するための領域特定情報を生成する情報生成手順と、
上記単位領域交替処理が終了した後において、上記情報生成手順により生成された領域特定情報を、上記メモリに対して物理的に書き込むための処理を実行する情報書込手順と、
上記メモリに書き込まれているとされる上記領域特定情報により特定した消去単位領域を、上記データ更新手順が実行する今回の単位領域交替処理において使用すべき上記書込対象消去単位領域として決定する領域決定手順と、
最後の上記単位領域交替処理の開始から上記情報書込手順の処理が終了するまでの過程において中断が生じたか否かについての判定を行うのにあたり、現在の上記メモリに書き込まれている上記領域特定情報により特定される消去単位領域の状態として、データが消去済みの状態であるか否かについて判別するようにされた中断判定手順と、
をメモリ制御装置に実行させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004268300A JP4586469B2 (ja) | 2004-09-15 | 2004-09-15 | メモリ制御装置、メモリ制御方法、プログラム |
US11/220,040 US8060684B2 (en) | 2004-09-15 | 2005-09-06 | Memory control apparatus, memory control method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004268300A JP4586469B2 (ja) | 2004-09-15 | 2004-09-15 | メモリ制御装置、メモリ制御方法、プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006085342A JP2006085342A (ja) | 2006-03-30 |
JP2006085342A5 JP2006085342A5 (ja) | 2007-06-28 |
JP4586469B2 true JP4586469B2 (ja) | 2010-11-24 |
Family
ID=36035424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004268300A Expired - Fee Related JP4586469B2 (ja) | 2004-09-15 | 2004-09-15 | メモリ制御装置、メモリ制御方法、プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8060684B2 (ja) |
JP (1) | JP4586469B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100703807B1 (ko) * | 2006-02-17 | 2007-04-09 | 삼성전자주식회사 | 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치 |
JP2007241539A (ja) * | 2006-03-07 | 2007-09-20 | Hitachi Systems & Services Ltd | 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置 |
KR100845137B1 (ko) * | 2006-10-02 | 2008-07-09 | 삼성전자주식회사 | 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러 |
US8745315B2 (en) * | 2006-11-06 | 2014-06-03 | Rambus Inc. | Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory |
KR101497074B1 (ko) * | 2008-06-17 | 2015-03-05 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
JP2010044504A (ja) * | 2008-08-11 | 2010-02-25 | Hitachi Cable Ltd | フラッシュメモリを用いた装置及びそのフラッシュメモリへのデータの書き込み方法 |
JP5540969B2 (ja) * | 2009-09-11 | 2014-07-02 | ソニー株式会社 | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム |
US20120166686A1 (en) * | 2010-12-22 | 2012-06-28 | Joerg Hartung | Method, apparatus and system for aggregating interrupts of a data transfer |
JP5643708B2 (ja) * | 2011-03-30 | 2014-12-17 | 株式会社ケーヒン | 電子制御装置 |
JP5677336B2 (ja) * | 2011-08-01 | 2015-02-25 | 株式会社東芝 | メモリ・デバイス |
US20130227238A1 (en) * | 2012-02-28 | 2013-08-29 | Thomas VIJVERBERG | Device and method for a time and space partitioned based operating system on a multi-core processor |
JP6075456B2 (ja) * | 2013-09-20 | 2017-02-08 | 富士通株式会社 | 情報処理方法、情報処理装置、メモリコントローラ及びメモリ |
CN104657192A (zh) * | 2013-11-20 | 2015-05-27 | 上海华虹集成电路有限责任公司 | 在仿真器上模拟flash的方法 |
US10593412B2 (en) | 2018-07-19 | 2020-03-17 | Micron Technology, Inc. | Using a status indicator in a memory sub-system to detect an event |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051883A (ja) * | 1999-08-12 | 2001-02-23 | Nec Corp | 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置 |
JP2002169729A (ja) * | 2000-12-04 | 2002-06-14 | Toshiba Corp | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 |
JP2002278850A (ja) * | 2001-03-14 | 2002-09-27 | Nec Corp | 半導体装置 |
JP2002318733A (ja) * | 2001-04-20 | 2002-10-31 | Matsushita Electric Works Ltd | ブロック消去型記憶媒体の管理装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581723A (en) * | 1993-02-19 | 1996-12-03 | Intel Corporation | Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array |
US6795890B1 (en) * | 1999-02-19 | 2004-09-21 | Mitsubishi Denki Kabushiki Kaisha | Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US6675281B1 (en) * | 2002-01-22 | 2004-01-06 | Icreate Technologies Corporation | Distributed mapping scheme for mass storage system |
KR100526178B1 (ko) * | 2003-03-31 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리 액세스 장치 및 방법 |
-
2004
- 2004-09-15 JP JP2004268300A patent/JP4586469B2/ja not_active Expired - Fee Related
-
2005
- 2005-09-06 US US11/220,040 patent/US8060684B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051883A (ja) * | 1999-08-12 | 2001-02-23 | Nec Corp | 不揮発性メモリにおける自己修復方法および不揮発性メモリ装置 |
JP2002169729A (ja) * | 2000-12-04 | 2002-06-14 | Toshiba Corp | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 |
JP2002278850A (ja) * | 2001-03-14 | 2002-09-27 | Nec Corp | 半導体装置 |
JP2002318733A (ja) * | 2001-04-20 | 2002-10-31 | Matsushita Electric Works Ltd | ブロック消去型記憶媒体の管理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2006085342A (ja) | 2006-03-30 |
US20060059297A1 (en) | 2006-03-16 |
US8060684B2 (en) | 2011-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4418439B2 (ja) | 不揮発性記憶装置およびそのデータ書込み方法 | |
JP4268396B2 (ja) | 1回プログラム可能な不揮発性メモリデバイスのファイル管理 | |
JP5035636B2 (ja) | フラッシュメモリ内のブロックにおける移動セクタ | |
JP4586469B2 (ja) | メモリ制御装置、メモリ制御方法、プログラム | |
JP4356686B2 (ja) | メモリ装置及びメモリ制御方法 | |
US7702846B2 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method | |
US20080082773A1 (en) | Systems for Managing File Allocation Table Information | |
US8775758B2 (en) | Memory device and method for performing a write-abort-safe firmware update | |
JP2003196142A (ja) | ライトワンス型メモリ装置及びファイル管理方法 | |
JP2006350430A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4665539B2 (ja) | メモリ制御装置、メモリ制御方法、プログラム | |
JP6123766B2 (ja) | データ読み出し装置、プログラムおよびデータ読み出し方法 | |
JPWO2006011186A1 (ja) | コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト | |
JP5057887B2 (ja) | データ更新装置及びデータ更新方法及びデータ更新プログラム | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
JP2008305061A (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
US20050149493A1 (en) | Data recording apparatus and data recording method | |
JP3826115B2 (ja) | 記憶装置、メモリ管理方法及びプログラム | |
JP2004078902A (ja) | 記憶装置、メモリ管理方法及びプログラム | |
JP2013033338A (ja) | メモリシステム | |
WO2020039927A1 (ja) | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム | |
JP2013045285A (ja) | 情報処理装置、画像形成装置およびプログラム | |
JP6864228B2 (ja) | 記憶装置および記憶装置のデータ管理方法 | |
JP2006260158A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2000330850A (ja) | フラッシュメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070515 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070515 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100805 |
|
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: 20100810 |
|
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: 20100823 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130917 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |