JP2006079434A - 記憶装置、メモリ管理方法及びプログラム - Google Patents
記憶装置、メモリ管理方法及びプログラム Download PDFInfo
- Publication number
- JP2006079434A JP2006079434A JP2004263995A JP2004263995A JP2006079434A JP 2006079434 A JP2006079434 A JP 2006079434A JP 2004263995 A JP2004263995 A JP 2004263995A JP 2004263995 A JP2004263995 A JP 2004263995A JP 2006079434 A JP2006079434 A JP 2006079434A
- Authority
- JP
- Japan
- Prior art keywords
- group
- address
- block
- data
- logical
- 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.)
- Granted
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
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/08—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
Abstract
【解決手段】 フラッシュメモリ11の記憶領域には、消去の単位であるブロックより小さな単位であるグループ毎に物理グループアドレスが与えられ、グループは複数のページを含み、ページは複数のカラムを含む。CPU121は、書き込む対象のデータと書込先の論理アドレスとを供給されると、書込ポインタが示すグループ内のカラムにこのデータを書き込み、供給された論理アドレスを、このカラムに与える。このカラムがあるグループの物理グループアドレス及び論理グループアドレスの対応関係は論理物理変換テーブルの形でRAM123に記憶される。ブロックのフラッシュイレースは、空きグループのないブロックの数が所定数以下になったとき行う。
【選択図】 図1
Description
フラッシュメモリは、データの消去が、所定の記憶容量の単位(一般に「ブロック」と呼ばれる)で行われる。
また、この発明は、記憶領域へのアクセスが円滑に行える記憶装置及びメモリ管理方法を提供することも目的とする。
ユーザデータを記憶するための記憶領域を形成する複数のメモリブロックを含み、各々のメモリブロックが複数のグループより構成されており、各々のグループが複数のページより構成されている記憶手段と、
前記グループの前記記憶領域内での物理的位置を指定する物理グループアドレスと当該グループの論理グループアドレスとの対応付けを表す論理物理変換テーブルを記憶する論理物理変換テーブル記憶手段と、
前記グループのうちからユーザデータを記憶可能な状態にある空きグループを特定して、特定した空きグループの物理グループアドレスを指示する書込ポインタを記憶する書込対象グループポイント手段と、
新たなユーザデータを書き込むグループの論理グループアドレス、当該グループに属するページ内において当該ユーザデータを書き込む記憶位置を指定するグループ内アドレス、及び、当該ユーザデータが自己に供給されたとき、当該ユーザデータを、前記書込ポインタにより指示された空きグループに属するページ内において当該グループ内アドレスが指定している記憶位置に書き込み、当該空きグループの物理グループアドレスと、供給された当該論理グループアドレスとの対応付けを表すよう前記論理物理変換テーブルを更新する書込手段と、を備える、
ことを特徴とする。
前記新たなユーザデータを書き込む記憶位置が属するグループの論理グループアドレス及び当該記憶位置のグループ内アドレスにより従前特定されていた他の記憶位置に記憶されているユーザデータを無効とする旨を指定するユーザデータ無効化手段と、
無効なユーザデータを記憶しているメモリブロックのうちからデータを消去する対象のメモリブロックを指定する消去対象指定手段と、
前記消去対象指定手段により指定されたメモリブロックに格納されているユーザデータが有効か否かを判別し、有効と判別したユーザデータを他のメモリブロックに転記し、当該指定されたメモリブロックが記憶するデータを消去する消去手段と、を備えることにより、古いデータの消去を伴うユーザデータの書き込みを行えばよい。
この場合、前記書込手段は、
自己に供給されたユーザデータを空きグループに書き込む結果、当該グループを含むメモリブロックから空きグループが無くなったとき、当該メモリブロックが空きグループを含んでいない旨を示すように前記ブロックステートテーブルを更新する手段と、
記憶するデータを前記消去手段により消去されたメモリブロックが空きグループを含む旨を示すように前記ブロックステートテーブルを更新する手段と、を備え、
前記消去対象指定手段は、空きグループを含まない旨が前記ブロックステートテーブルにより示されているメモリブロックのうちからデータを消去する対象のメモリブロックを指定するものであってもよい。
前記消去対象指定手段は、空きグループを含むメモリブロックの数が所定条件に満たない数になったと判別されたとき、無効なユーザデータを記憶しているメモリブロックのうちからデータを消去する対象のメモリブロックを指定するものであってもよい。
このような構成を有していれば、ユーザデータが格納されていないグループの数が十分にあるうちはメモリブロックのデータ消去が行われないので、無用のデータ消去が避けられる。このため、ブロック1個当たりの記憶容量が大きい場合であっても記憶装置の劣化が更に起きにくく、またデータの退避に要する処理も少なくなるので記憶装置へのアクセスが更に円滑になる。
前記消去対象指定手段は、無効なユーザデータを記憶しているメモリブロックのうち、最後にデータを消去されたブロック以降で先頭のブロックアドレスを与えられているものを、データを消去する対象のメモリブロックとして指定するものであってもよい。
このような構成を有していれば、各ブロックは、書き込まれているデータが古い順にデータ消去の対象となっていくから、各ブロックがデータ消去される頻度が均等になる。従って、特定のメモリブロックが集中的に劣化することにより記憶装置全体の寿命が短くなる、ということが防止される。
この場合、前記ユーザデータ無効化手段が、前記新たなユーザデータを書き込む記憶位置が属するグループの論理グループアドレス及び当該記憶位置のグループ内アドレスにより従前特定されていた他の記憶位置を含むメモリブロックに無効なユーザデータが記憶されている旨を示すように前記ブロックステートテーブルを更新する手段を備え、前記消去対象指定手段は、無効なユーザデータを記憶している旨が前記ブロックステートテーブルにより示されているメモリブロックのうちからデータを消去する対象のメモリブロックを指定するようにしてもよい。
前記書込対象グループポイント手段は、ユーザデータが書き込まれた結果すべてのページにユーザデータが格納されるに至ったグループの物理グループアドレス以降の物理グループアドレスを与えられている空きグループのうちの先頭の空きグループを特定するものであってもよい。
このような構成を有していれば、データを書き込むグループは物理グループアドレス順に指定されるので、特定のメモリブロックに書き込みが集中することが避けられ、従って、書き込みが集中したメモリブロックにデータ消去の機会が集中することが避けられる。従って、記憶装置の劣化が更に防止される。
カラムの記憶位置のグループ内アドレスは、当該カラムを含むページのグループ内での論理的位置を指定するグループ内ページアドレスと、当該ページ内での当該カラムの論理的位置を指定するカラムアドレスと、より構成されていてもよい。
ユーザデータを記憶するための複数のメモリブロックを含み、各々のメモリブロックが複数のグループより構成されており、各々のグループが複数のページより構成されている記憶領域を管理するためのメモリ管理方法であって、
前記グループの前記記憶領域内での物理的位置を指定する物理グループアドレスと当該グループの論理グループアドレスとの対応付けを表す論理物理変換テーブルを記憶する論理物理変換テーブル記憶ステップと、
前記グループのうちからユーザデータを記憶可能な状態にある空きグループを特定して、特定した空きグループの物理グループアドレスを指示する書込ポインタを記憶する書込対象グループポイントステップと、
新たなユーザデータを書き込むグループの論理グループアドレス、当該グループに属するページ内において当該ユーザデータを書き込む記憶位置を指定するグループ内アドレス、及び、当該ユーザデータが自己に供給されたとき、当該ユーザデータを、前記書込ポインタにより指示された空きグループに属するページ内において当該グループ内アドレスが指定している記憶位置に書き込み、当該空きグループの物理グループアドレスと、供給された当該論理グループアドレスとの対応付けを表すよう前記論理物理変換テーブルを更新する書込ステップと、より構成される、
ことを特徴とする。
ユーザデータを記憶するための記憶領域を形成する複数のメモリブロックを含み、各々のメモリブロックが複数のグループより構成されており、各々のグループが複数のページより構成されている記憶装置に接続されたコンピュータを、
前記グループの前記記憶領域内での物理的位置を指定する物理グループアドレスと当該グループの論理グループアドレスとの対応付けを表す論理物理変換テーブルを記憶する論理物理変換テーブル記憶手段と、
前記グループのうちからユーザデータを記憶可能な状態にある空きグループを特定して、特定した空きグループの物理グループアドレスを指示する書込ポインタを記憶する書込対象グループポイント手段と、
新たなユーザデータを書き込むグループの論理グループアドレス、当該グループに属するページ内において当該ユーザデータを書き込む記憶位置を指定するグループ内アドレス、及び、当該ユーザデータが自己に供給されたとき、当該ユーザデータを、前記書込ポインタにより指示された空きグループに属するページ内において当該グループ内アドレスが指定している記憶位置に書き込み、当該空きグループの物理グループアドレスと、供給された当該論理グループアドレスとの対応付けを表すよう前記論理物理変換テーブルを更新する書込手段と、
して機能させるためのものであることを特徴とする。
また、この発明によれば、記憶領域へのアクセスが円滑に行える記憶装置及びメモリ管理方法が実現される。
図示するように、この記憶システムは、メモリユニット1と、コンピュータ2とから構成されている。メモリユニット1は、コンピュータ2が備える内部バスを介して、コンピュータ2に装着されている。なお、例えば図1に示すように、メモリユニット1及びコンピュータ2が同一の筐体に組み込まれていてもよい。
フラッシュメモリ11は、コントローラ12が行うアクセスに応答し、コンピュータ2から供給されたデータの記憶(書き込み)と、記憶しているデータの読み出し及びコンピュータ2への供給と、記憶しているデータの消去とを行う。
また、フラッシュメモリ11は、データの書き込み、読み出し及び消去の動作それぞれについて、当該動作が行われている状態(ビジー状態)であるか否かを示す情報や、消去の動作が正常に行われたか否かを示すステータス情報などを生成してコントローラ12へと供給する機能を行う。
フラッシュメモリ11が有する記憶領域は、例えば図2に示すように1024個のブロックより構成されており、データの消去は、ブロックを単位として行われる。各ブロックには、先頭から連続的に0から1023までの物理ブロックアドレスが与えられている。
一方、フラッシュメモリ11のそれぞれのページに含まれるメモリセルは、記憶容量が各1バイトである計2112個の記憶領域を構成しており、これらの記憶領域には、連続的に0から2111までの番地が与えられている。
不良ブロックフラグは、この冗長部を含むブロックがデータを正常に格納することができないブロック(不良ブロック)であることを示すフラグである。
旧グループフラグは、この冗長部を含むカラムが属するグループ内のデータ領域に格納されているユーザデータが無効なデータとして扱われるべき古いデータ(以下、旧データと呼ぶ)であることを示すフラグである。
ECCは、この冗長部と同じカラムに属するデータ領域に格納されているユーザデータの内容が破壊されていないことを確認するためのデータである。
CPU121は、コントローラ12の製造者等によって予めROM122に格納されているプログラムの処理に従って、後述する処理を行う。
そして、CPU121は、アクセス装置を構成するコンピュータ2から供給される命令を取得すると、その命令を実行する。CPU121が実行する命令には、フラッシュメモリ11にアクセスする命令が含まれる。
(1) 不良ブロック
(2) 不良ブロックでないブロックすなわち良品ブロックであって、当該良品ブロック内に、データが書き込まれているグループが存在しないブロック(空きブロック)
(3) 良品ブロックであって、当該良品ブロック内に、データが書き込まれているグループと書き込まれていないグループとが混在するブロック
(4a) 良品ブロックであって、当該良品ブロックに属するすべてのグループにデータが書き込まれており、書き込まれているこれらのデータのうちに、無効となった古いデータ(旧データ)が含まれていないブロック
(4b) 良品ブロックであって、当該良品ブロックに書き込まれているデータのうちに旧データが含まれているブロック
のうちいずれの状態にあるかを特定する情報を、当該ブロックの物理ブロックアドレスと対応付けて格納する。(なお、図5において、(1)の状態を示すデータは「BB」、(2)の状態を示すデータは「EB」、(4a)の状態を示すデータは「UWO」、(4b)の状態を示すデータは「UWC」として示されている。また、(3)の状態を示すデータは空白により示されている。)
ブロックステートテーブルは、例えばRAM123の不揮発性の記憶領域内に予め作成され、コントローラ12の後述する処理に従って更新される。
すなわち、論理物理変換テーブルは、例えばRAM123の不揮発性の記憶領域内の所定の論理的位置を占め、各々の論理グループアドレスに対応付けられた物理グループアドレスを記憶するための記憶領域を備える。そして、論理グループアドレスの総数が8000個であるとした場合、例えば、図示するように、先頭から13ビット毎に付されたアドレスが1000h〜2F3Fhである、合計13000バイトの記憶領域を備えていればよい。
そして、各々のアドレスを付された13ビットの記憶領域に格納されている内容は、当該アドレスが示す論理グループアドレスに対応付けられているグループの物理グループアドレスを表す。
次に、この記憶システムの動作を、図7〜図14を参照して説明する。
図7は、データ読み出しの処理を示すフローチャートである。
図8〜図12は、データ書き込みの処理を示すフローチャートである。
図13は、空きブロック確保の処理を示すフローチャートである。
図14は、グループ登録の処理を示すフローチャートである。
この記憶システムが起動すると、メモリユニット1のCPU121は、コンピュータ2より、フラッシュメモリ11へのアクセスを指示するための各種のコマンドを受け付ける状態に入る。
コンピュータ2は、CPU121にフラッシュメモリ11からのデータの読み出しを指示するときは、まず、所定の読出コマンドと、データを読み出す対象のセクタのうち先頭のセクタの論理アドレスと、読み出すセクタの数を示すデータとを、CPU121に供給する(図7、ステップS201)。
正しく読み出されていないと判別すると、CPU121は、データ領域に格納されていたデータを正しい内容へと訂正することが可能か否かを、冗長部に格納されていたECC等に基づいて判別する(ステップS206)。そして、訂正が可能であると判別すると、データ領域に格納されていたデータを訂正して(ステップS209)、コンピュータ2に供給する(ステップS210)。
また、フラッシュメモリ11へのデータの書き込みを行う場合、まずコンピュータ2は、CPU121に、所定の書込コマンドと、データを書き込む対象のセクタのうち先頭のセクタの論理アドレスと、書き込むセクタの数を示すデータとを、CPU121に供給する(図8、ステップS301)。
そしてCPU121は、RAM123の一時記憶用領域の全域に、所定のダミーデータを書き込む(ステップS308)。
そしてCPU121は、一時記憶用領域に、ステップS331で特定したカラムを含む1ページのデータを転記する(ステップS332)。
そして、書き込みが完了したと判別すると、CPU121は、処理をステップS314からステップS318へ(又は、ステップS338からステップS342へ)と移す。
一方、属さない(すなわち、データの書き込みが複数のグループを跨いで行われる)と判別すると、インクリメント前の論理アドレスが示すセクタに相当するページを含むグループを登録対象のグループとして、図14に示すグループ登録の処理を行う(ステップS317又はS341)。そして、グループ登録の処理を終えると、処理をステップS303へ戻す。
一方、格納されている(クリアされていない)と判別すると、一時記憶用領域のうち、該当する書き込み対象のデータが格納されていない部分に所定のダミーデータを格納し(ステップS319)、又は、ステップS337で最後に旧データとされたデータがあるカラムに後続するカラムに格納されているデータを当該部分に転記する(ステップS343)。
そしてCPU121は、一時記憶用領域に格納されているデータを、書込ポインタが指し示すブロック中、最後に書き込みを行ったページの次のページに書き込む(ステップS320又はS344)。
次に、空きブロック確保の処理を説明する。空きブロック確保の処理において、まずCPU121は、フラッシュメモリ11の空きブロックが所定数以上あるか否かを、空きブロック数カウンタの値に基づいて判別する(図13、ステップS401)。そして、所定数以上あると判別すると処理をステップS409に移し、所定数未満であると判別すると、処理をステップS402に移す。
次に、グループ登録の処理を説明する。グループ登録の処理において、まずCPU121は、登録対象のグループの物理グループアドレスが論理物理変換テーブルに登録されているか否かを判別する(図14、ステップS501)。
また、ステップS502でCPU121は、データの転記ないし更新が行われた場合、新たに旧データとなったデータ(例えば転記元のデータや更新前のデータ)を格納しているグループ内のカラムの冗長部に旧グループフラグを書き込み、また、当該旧データに代わる新しいデータ(例えば転記先のデータや更新後のデータ)を格納しているグループの物理グループアドレスを、論理物理変換テーブルに登録し直す。つまり、論理物理変換テーブル内に格納されている、旧データとなったデータのあるグループの物理グループアドレスを、新たなデータのあるグループの物理グループアドレスに書き換える。
例えば、フラッシュメモリ11の記憶領域のブロックの数、1ブロック当たりのグループの数、1グループ当たりのページの数、各ページの記憶容量、データ領域及び冗長部の記憶容量は、いずれも任意である。また、フラッシュメモリ11は、EEPROMから構成されるものである必要はなく、コンピュータにより読み書き可能な任意の記憶装置であってよい。また、ディレクトリ及びFATが格納されるカラムの論理アドレスは上述の値である必要はなく、また、ディレクトリ及びFATが格納されるカラムの個数も任意である。また、1個のカラムのデータ領域及び冗長部が互いに隣接している必要はなく、従って、フラッシュメモリ11の記憶領域は、たとえば、4個のカラムのデータ領域が1個のページ内で先頭から4個連続し、次いでこれら4個のカラムの冗長部が4個連続する、といった構造を有していてもよい。
このように、各ブロックが、書き込まれているデータが古い順にフラッシュイレースの対象となっていけば、ブロックがフラッシュイレースされる頻度が均等になる。従って、特定のメモリブロックが集中的に劣化することによりフラッシュメモリ11全体の寿命が短くなる、ということが防止される。
このような処理を行うものとすれば、論理物理変換テーブルを参照するたびにフラッシュメモリ11から論理物理変換テーブルの全体を逐一読み出す、という操作を要しないので、論理物理変換テーブルの参照に要する時間が短くなる。
また、CPU121は、ブロックステートテーブルを構成するデータを新たに書き込まれた各カラムの物理アドレスを、このデータが従前書き込まれていたカラムを指し示すブロックステートテーブル格納カラムポインタに対応付けた形で、ブロックステートテーブルカラムリストに格納する一方、このブロックステートテーブル格納カラムポインタに従前対応付けられていた物理アドレスは、ブロックステートテーブルカラムリストから削除するものとすればよい。
このような処理を行うものとすれば、ブロックステートテーブルを参照するたびにフラッシュメモリ11からブロックステートテーブルの全体を逐一読み出す、という操作を要しないので、ブロックステートテーブルの参照に要する時間が短くなる。
ただしこの場合、ブロックが上述の(3)、(4a)あるいは(4b)の状態にあるか否かを判別可能とするため、CPU121は例えば、ユーザデータの書き込みを行う際には書き込みの対象となるカラムの冗長部に、ユーザデータの書き込みが行われていることを示す所定の識別用データ(例えば、当該カラムの論理アドレスなど)を書き込むものとする。そしてCPU121は、ブロックが上述の(3)、(4a)あるいは(4b)の状態にあるか否かを判別する場合は、当該ブロック内でこれらの識別用データや上述の旧グループフラグを検索することにより、当該判別を行うものとする。
なお、CPU121がブロックステートテーブルを新規に作成する処理を行うものである場合、RAM123は、ブロックステートテーブルを格納する不揮発性の記憶領域を提供するための不揮発性メモリを備えている必要はない。
そして、該プログラムを起動し、OSの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
11 フラッシュメモリ
12 コントローラ
121 CPU
122 ROM
123 RAM
2 コンピュータ
Claims (11)
- ユーザデータを記憶するための記憶領域を形成する複数のメモリブロックを含み、各々のメモリブロックが複数のグループより構成されており、各々のグループが複数のページより構成されている記憶手段と、
前記グループの前記記憶領域内での物理的位置を指定する物理グループアドレスと当該グループの論理グループアドレスとの対応付けを表す論理物理変換テーブルを記憶する論理物理変換テーブル記憶手段と、
前記グループのうちからユーザデータを記憶可能な状態にある空きグループを特定して、特定した空きグループの物理グループアドレスを指示する書込ポインタを記憶する書込対象グループポイント手段と、
新たなユーザデータを書き込むグループの論理グループアドレス、当該グループに属するページ内において当該ユーザデータを書き込む記憶位置を指定するグループ内アドレス、及び、当該ユーザデータが自己に供給されたとき、当該ユーザデータを、前記書込ポインタにより指示された空きグループに属するページ内において当該グループ内アドレスが指定している記憶位置に書き込み、当該空きグループの物理グループアドレスと、供給された当該論理グループアドレスとの対応付けを表すよう前記論理物理変換テーブルを更新する書込手段と、を備える、
ことを特徴とする記憶装置。 - 前記書込手段は、
前記新たなユーザデータを書き込む記憶位置が属するグループの論理グループアドレス及び当該記憶位置のグループ内アドレスにより従前特定されていた他の記憶位置に記憶されているユーザデータを無効とする旨を指定するユーザデータ無効化手段と、
無効なユーザデータを記憶しているメモリブロックのうちからデータを消去する対象のメモリブロックを指定する消去対象指定手段と、
前記消去対象指定手段により指定されたメモリブロックに格納されているユーザデータが有効か否かを判別し、有効と判別したユーザデータを他のメモリブロックに転記し、当該指定されたメモリブロックが記憶するデータを消去する消去手段と、を備える、
ことを特徴とする請求項1に記載の記憶装置。 - 各々のメモリブロックに空きグループが含まれているか否かを識別する情報を含むブロックステートテーブルを記憶するメモリを更に備え、
前記書込手段は、
自己に供給されたユーザデータを空きグループに書き込む結果、当該グループを含むメモリブロックから空きグループが無くなったとき、当該メモリブロックが空きグループを含んでいない旨を示すように前記ブロックステートテーブルを更新する手段と、
記憶するデータを前記消去手段により消去されたメモリブロックが空きグループを含む旨を示すように前記ブロックステートテーブルを更新する手段と、を備え、
前記消去対象指定手段は、空きグループを含まない旨が前記ブロックステートテーブルにより示されているメモリブロックのうちからデータを消去する対象のメモリブロックを指定する、
ことを特徴とする請求項2に記載の記憶装置。 - 前記書込手段は、空きグループを含むメモリブロックの数が所定条件に満たない数になったか否かを前記ブロックステートテーブルに基づいて判別する空きブロック数判別手段を備え、
前記消去対象指定手段は、空きグループを含むメモリブロックの数が所定条件に満たない数になったと判別されたとき、無効なユーザデータを記憶しているメモリブロックのうちからデータを消去する対象のメモリブロックを指定する、
ことを特徴とする請求項3に記載の記憶装置。 - 物理グループアドレスはサイクリックに順位付けされていて、当該物理グループアドレスが示すグループが属するブロックを示すブロックアドレスを含んでおり、
前記消去対象指定手段は、無効なユーザデータを記憶しているメモリブロックのうち、最後にデータを消去されたブロック以降で先頭のブロックアドレスを与えられているものを、データを消去する対象のメモリブロックとして指定する、
ことを特徴とする請求項2、3又は4に記載の記憶装置。 - 前記ブロックステートテーブルは、各々のメモリブロックに無効なユーザデータが記憶されているか否かを識別する情報を更に含み、
前記ユーザデータ無効化手段は、前記新たなユーザデータを書き込む記憶位置が属するグループの論理グループアドレス及び当該記憶位置のグループ内アドレスにより従前特定されていた他の記憶位置を含むメモリブロックに無効なユーザデータが記憶されている旨を示すように前記ブロックステートテーブルを更新する手段を備え、
前記消去対象指定手段は、無効なユーザデータを記憶している旨が前記ブロックステートテーブルにより示されているメモリブロックのうちからデータを消去する対象のメモリブロックを指定する、
ことを特徴とする請求項4又は5に記載の記憶装置。 - 物理グループアドレスはサイクリックに順位付けされており、
前記書込対象グループポイント手段は、ユーザデータが書き込まれた結果すべてのページにユーザデータが格納されるに至ったグループの物理グループアドレス以降の物理グループアドレスを与えられている空きグループのうちの先頭の空きグループを特定する、
ことを特徴とする請求項1乃至6のいずれか1項に記載の記憶装置。 - 読み出し対象のデータが格納されているグループの論理グループアドレス、及び、当該グループに属するページ内において当該読み出し対象のデータが格納されている記憶位置を指定するグループ内アドレスが自己に供給されたとき、前記アドレス変換テーブルに基づいて、当該論理グループアドレスに対応付けられた物理グループアドレスを特定し、特定した物理グループアドレスが示すグループに属するページ内において当該グループ内アドレスが指定している記憶位置よりユーザデータを読み出して外部に出力する読出手段を備える、
ことを特徴とする請求項1乃至7のいずれか1項に記載の記憶装置。 - 前記ページは1個以上のカラムを含んでおり、
カラムの記憶位置のグループ内アドレスは、当該カラムを含むページのグループ内での論理的位置を指定するグループ内ページアドレスと、当該ページ内での当該カラムの論理的位置を指定するカラムアドレスと、より構成されている、
ことを特徴とする請求項1乃至8のいずれか1項に記載の記憶装置。 - ユーザデータを記憶するための複数のメモリブロックを含み、各々のメモリブロックが複数のグループより構成されており、各々のグループが複数のページより構成されている記憶領域を管理するためのメモリ管理方法であって、
前記グループの前記記憶領域内での物理的位置を指定する物理グループアドレスと当該グループの論理グループアドレスとの対応付けを表す論理物理変換テーブルを記憶する論理物理変換テーブル記憶ステップと、
前記グループのうちからユーザデータを記憶可能な状態にある空きグループを特定して、特定した空きグループの物理グループアドレスを指示する書込ポインタを記憶する書込対象グループポイントステップと、
新たなユーザデータを書き込むグループの論理グループアドレス、当該グループに属するページ内において当該ユーザデータを書き込む記憶位置を指定するグループ内アドレス、及び、当該ユーザデータが自己に供給されたとき、当該ユーザデータを、前記書込ポインタにより指示された空きグループに属するページ内において当該グループ内アドレスが指定している記憶位置に書き込み、当該空きグループの物理グループアドレスと、供給された当該論理グループアドレスとの対応付けを表すよう前記論理物理変換テーブルを更新する書込ステップと、より構成される、
ことを特徴とするメモリ管理方法。 - ユーザデータを記憶するための記憶領域を形成する複数のメモリブロックを含み、各々のメモリブロックが複数のグループより構成されており、各々のグループが複数のページより構成されている記憶装置に接続されたコンピュータを、
前記グループの前記記憶領域内での物理的位置を指定する物理グループアドレスと当該グループの論理グループアドレスとの対応付けを表す論理物理変換テーブルを記憶する論理物理変換テーブル記憶手段と、
前記グループのうちからユーザデータを記憶可能な状態にある空きグループを特定して、特定した空きグループの物理グループアドレスを指示する書込ポインタを記憶する書込対象グループポイント手段と、
新たなユーザデータを書き込むグループの論理グループアドレス、当該グループに属するページ内において当該ユーザデータを書き込む記憶位置を指定するグループ内アドレス、及び、当該ユーザデータが自己に供給されたとき、当該ユーザデータを、前記書込ポインタにより指示された空きグループに属するページ内において当該グループ内アドレスが指定している記憶位置に書き込み、当該空きグループの物理グループアドレスと、供給された当該論理グループアドレスとの対応付けを表すよう前記論理物理変換テーブルを更新する書込手段と、
して機能させるためのプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004263995A JP3942612B2 (ja) | 2004-09-10 | 2004-09-10 | 記憶装置、メモリ管理方法及びプログラム |
PCT/JP2005/017001 WO2006028283A1 (en) | 2004-09-10 | 2005-09-08 | Storage device, memory management method and program |
EP05783698A EP1787202A4 (en) | 2004-09-10 | 2005-09-08 | MEMORY DEVICE, MEMORY MANAGEMENT PROCESS AND PROGRAM |
US11/547,181 US20070245069A1 (en) | 2004-09-10 | 2005-09-08 | Storage Device, Memory Management Method and Program |
KR1020067020537A KR100847506B1 (ko) | 2004-09-10 | 2005-09-08 | 기억 장치, 메모리 관리 방법 및 프로그램 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004263995A JP3942612B2 (ja) | 2004-09-10 | 2004-09-10 | 記憶装置、メモリ管理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006079434A true JP2006079434A (ja) | 2006-03-23 |
JP3942612B2 JP3942612B2 (ja) | 2007-07-11 |
Family
ID=36036550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004263995A Expired - Fee Related JP3942612B2 (ja) | 2004-09-10 | 2004-09-10 | 記憶装置、メモリ管理方法及びプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070245069A1 (ja) |
EP (1) | EP1787202A4 (ja) |
JP (1) | JP3942612B2 (ja) |
KR (1) | KR100847506B1 (ja) |
WO (1) | WO2006028283A1 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234514A (ja) * | 2007-03-23 | 2008-10-02 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
WO2009110301A1 (en) * | 2008-03-01 | 2009-09-11 | Kabushiki Kaisha Toshiba | Memory system |
JP2009230414A (ja) * | 2008-03-21 | 2009-10-08 | Toshiba Corp | 複数の不揮発性メモリデバイスを有する記憶装置 |
JP2010097563A (ja) * | 2008-10-20 | 2010-04-30 | Nec Corp | ネットワークストレージシステム、ディスクアレイ装置、ホスト装置、アクセス制御方法、データアクセス方法 |
JP2017068804A (ja) * | 2015-10-02 | 2017-04-06 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、アクセスコントローラ、および情報処理方法 |
JP2017068805A (ja) * | 2015-10-02 | 2017-04-06 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、プロセッサ、および情報処理方法 |
US10635596B2 (en) | 2015-10-02 | 2020-04-28 | Sony Interactive Entertainment Inc. | Information processing device, access controller, information processing method, and computer program for accessing memory having access units of different sizes |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100885783B1 (ko) | 2007-01-23 | 2009-02-26 | 주식회사 하이닉스반도체 | 플래시 메모리 장치 및 동작 방법 |
US7765426B2 (en) | 2007-06-07 | 2010-07-27 | Micron Technology, Inc. | Emerging bad block detection |
KR20090026941A (ko) | 2007-09-11 | 2009-03-16 | 삼성전자주식회사 | 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치 |
TWI381383B (zh) * | 2007-11-14 | 2013-01-01 | Netac Technology Co Ltd | 快閃記憶體的資料儲存方法 |
TWI408688B (zh) * | 2009-10-12 | 2013-09-11 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
TWI421869B (zh) * | 2009-10-14 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
TWI421870B (zh) * | 2009-10-30 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
US9110594B2 (en) * | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
KR101826137B1 (ko) | 2011-03-24 | 2018-03-22 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 장치들, 및 이의 동작 방법 |
KR101355892B1 (ko) * | 2013-01-15 | 2014-01-28 | 한밭대학교 산학협력단 | 실시간 단일 메모리 동시 입출력을 위한 영상데이터 처리방법 |
US9727249B1 (en) * | 2014-02-06 | 2017-08-08 | SK Hynix Inc. | Selection of an open block in solid state storage systems with multiple open blocks |
US9778864B2 (en) * | 2015-03-10 | 2017-10-03 | SK Hynix Inc. | Data storage device using non-sequential segment access and operating method thereof |
TWI596476B (zh) * | 2015-11-27 | 2017-08-21 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
US10613988B2 (en) * | 2016-09-28 | 2020-04-07 | Micro Focus Llc | Purging storage partitions of databases |
CN111324287A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
CN113196258A (zh) * | 2018-12-19 | 2021-07-30 | 索尼集团公司 | 信息处理装置、信息处理方法和信息处理程序 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60156151A (ja) * | 1983-12-23 | 1985-08-16 | Nec Corp | メモリアクセス制御装置 |
US5867641A (en) * | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
JPH09185551A (ja) * | 1996-01-08 | 1997-07-15 | Mitsubishi Electric Corp | 半導体記憶装置 |
JPH10124381A (ja) * | 1996-10-21 | 1998-05-15 | Mitsubishi Electric Corp | 半導体記憶装置 |
JP3797649B2 (ja) * | 1999-05-31 | 2006-07-19 | シャープ株式会社 | 不揮発性半導体記憶装置 |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US6948026B2 (en) * | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
US20030236746A1 (en) * | 2002-06-19 | 2003-12-25 | Turner Michael B. | Check and cash dispensing machine and method |
US20060143365A1 (en) * | 2002-06-19 | 2006-06-29 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
US7254668B1 (en) * | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
US7174440B2 (en) * | 2002-10-28 | 2007-02-06 | Sandisk Corporation | Method and apparatus for performing block caching in a non-volatile memory system |
JP2005115562A (ja) * | 2003-10-06 | 2005-04-28 | Media Logic:Kk | フラッシュrom制御装置 |
US7433993B2 (en) * | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
JP2005242897A (ja) * | 2004-02-27 | 2005-09-08 | Oki Electric Ind Co Ltd | フラッシュディスク装置 |
-
2004
- 2004-09-10 JP JP2004263995A patent/JP3942612B2/ja not_active Expired - Fee Related
-
2005
- 2005-09-08 US US11/547,181 patent/US20070245069A1/en not_active Abandoned
- 2005-09-08 WO PCT/JP2005/017001 patent/WO2006028283A1/en active Application Filing
- 2005-09-08 KR KR1020067020537A patent/KR100847506B1/ko not_active IP Right Cessation
- 2005-09-08 EP EP05783698A patent/EP1787202A4/en not_active Withdrawn
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234514A (ja) * | 2007-03-23 | 2008-10-02 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4640366B2 (ja) * | 2007-03-23 | 2011-03-02 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
KR101102634B1 (ko) | 2008-03-01 | 2012-01-04 | 가부시끼가이샤 도시바 | 메모리 시스템 |
WO2009110301A1 (en) * | 2008-03-01 | 2009-09-11 | Kabushiki Kaisha Toshiba | Memory system |
JP2009211234A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8171208B2 (en) | 2008-03-01 | 2012-05-01 | Kabushiki Kaisha Toshiba | Memory system |
JP2009230414A (ja) * | 2008-03-21 | 2009-10-08 | Toshiba Corp | 複数の不揮発性メモリデバイスを有する記憶装置 |
JP2010097563A (ja) * | 2008-10-20 | 2010-04-30 | Nec Corp | ネットワークストレージシステム、ディスクアレイ装置、ホスト装置、アクセス制御方法、データアクセス方法 |
US9104338B2 (en) | 2008-10-20 | 2015-08-11 | Nec Corporation | Network storage system, disk array device, host device, access control method, and data access method |
JP2017068804A (ja) * | 2015-10-02 | 2017-04-06 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、アクセスコントローラ、および情報処理方法 |
JP2017068805A (ja) * | 2015-10-02 | 2017-04-06 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、プロセッサ、および情報処理方法 |
US10635596B2 (en) | 2015-10-02 | 2020-04-28 | Sony Interactive Entertainment Inc. | Information processing device, access controller, information processing method, and computer program for accessing memory having access units of different sizes |
US11144464B2 (en) | 2015-10-02 | 2021-10-12 | Sony Interactive Entertainment Inc. | Information processing device, access controller, information processing method, and computer program for issuing access requests from a processor to a sub-processor |
US11907129B2 (en) | 2015-10-02 | 2024-02-20 | Sony Interactive Entertainment Inc. | Information processing device, access controller, information processing method, and computer program for issuing access requests from a processor to a sub-processor |
Also Published As
Publication number | Publication date |
---|---|
WO2006028283A1 (en) | 2006-03-16 |
KR20070024504A (ko) | 2007-03-02 |
KR100847506B1 (ko) | 2008-07-22 |
WO2006028283B1 (en) | 2006-07-13 |
EP1787202A1 (en) | 2007-05-23 |
JP3942612B2 (ja) | 2007-07-11 |
EP1787202A4 (en) | 2008-05-21 |
US20070245069A1 (en) | 2007-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3942612B2 (ja) | 記憶装置、メモリ管理方法及びプログラム | |
JP3977370B2 (ja) | フラッシュメモリのアドレスマッピング方法、マッピング情報管理方法及びこれらの方法を用いたフラッシュメモリ | |
USRE46404E1 (en) | Flash memory management method | |
JP4695801B2 (ja) | 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置 | |
EP1729304B1 (en) | Space management for managing high capacity nonvolatile memory | |
US5953737A (en) | Method and apparatus for performing erase operations transparent to a solid state storage system | |
EP1895418B1 (en) | Nonvolatile memory device, method of writing data, and method of reading out data | |
US20060143365A1 (en) | Memory device, memory managing method and program | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
US8239612B2 (en) | Memory controller, flash memory system with memory controller, and control method of flash memory | |
US8296503B2 (en) | Data updating and recovering methods for a non-volatile memory array | |
KR100370893B1 (ko) | 일괄 소거형 비휘발성 메모리 장치 | |
JPH08137634A (ja) | フラッシュディスクカード | |
JP2005242897A (ja) | フラッシュディスク装置 | |
JPWO2007000862A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 | |
JP2006285600A (ja) | 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム | |
US20060062041A1 (en) | Memory device, momory managing method and program | |
JP4308780B2 (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 | |
JP2004078902A (ja) | 記憶装置、メモリ管理方法及びプログラム | |
KR100654344B1 (ko) | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 | |
JP3826115B2 (ja) | 記憶装置、メモリ管理方法及びプログラム | |
JP2008047155A (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
KR100654343B1 (ko) | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
WO2006093304A1 (en) | Storage device, memory block managing method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051227 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060215 |
|
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: 20070306 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070403 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100413 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100413 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |