JP5162846B2 - 記憶装置、コンピュータシステム、および記憶システム - Google Patents
記憶装置、コンピュータシステム、および記憶システム Download PDFInfo
- Publication number
- JP5162846B2 JP5162846B2 JP2006137844A JP2006137844A JP5162846B2 JP 5162846 B2 JP5162846 B2 JP 5162846B2 JP 2006137844 A JP2006137844 A JP 2006137844A JP 2006137844 A JP2006137844 A JP 2006137844A JP 5162846 B2 JP5162846 B2 JP 5162846B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- data
- area
- recovery process
- erase
- 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/16—Protection against loss of memory contents
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Read Only Memory (AREA)
- Memory System (AREA)
Description
その代表例として、NAND型フラッシュメモリが挙げられる。
図1のNAND型フラッシュメモリは、ビット線BL1〜BLnに接続された複数のメモリユニット1−1〜1−nがアレイ状(縦横)に配列されている。
たとえば、選択用トランジスタ2のゲートが選択ゲート線SL1に接続され、選択用トランジスタ3のゲートが選択ゲート線SL2に接続されている。また、各メモリセルN0〜N15のゲートがワード線WL0〜WL15に接続されている。
特許文献1等にはその一つとしてローカルセルフブースト(Local Self−Boost)と呼ばれる手法を用いた書き込み手順が記載されている。
図1のNAND型フラッシュメモリにおいて、そのような書き込みの例を以下に説明する。
このような書き込み手順を用いると、0Vのワード線WL0,WL2にはさまれ、かつ非選択ビット線に繋がるノードは他のノードから切り離され、ワード線WL1からのカップリングを受けて10V程度まで電位が上昇する。
一方、選択されたメモリセルN1については、隣接したセルトランジスタN0がディプレッション状態の時に限って、ビット線BL1に印加された0VがセルトランジスタN1のチャンネルに伝達され、書き込みが実施される。
すなわち、上のような書き込み手法を用いる場合、書き込みを実施するセルのビット線側の隣接セルは常に消去され、ディプレッション状態に成っている必要がある。そのため、ブロック全体を消去した後、書き込みはメモリセルN15、N14、N13、・・・、N0と順になされることが必須の条件となる。
ISSCC2002予稿集のp106、セッション6.4
しかし上述の如く、フラッシュメモリにはアクセス単位を大きくしないと高速化できないという欠点がある。また、データの上書きができないので、書き換えには必ず消去が必要であり、その際の消去ブロックはさらに大きい。このようにアクセス単位に対して消去単位が数十倍大きいのは、消去時間が長く、かつ書き込み時に非選択セルにディスターブが生じるフラッシュメモリには一般的な仕様である。しかしこれによりその書き込み効率は著しく低下する。
その転送速度を、シリアルATA接続の高速ストレージで目標とされる160MB/sにまで高めようとした場合、マルチバンクやマルチチップの構成を取りながら、たとえば16個のメモリアレイを並列動作させる必要がある。
図2において、高速転送を実現するため、16個のアレイAR0〜AR15を同時に動作させる。この場合データ書き込み時は、たとえばページP0,P1を同時書き込みし、消去時はブロックB0〜B15を同時消去する。このとき一括書き込み単位となる実ページ領域21は32kB、一括消去単位となる実消去ブロック領域22は2MBに達することになる。
さらに、通常のファイル記憶装置は、ATA等のインターフェース仕様に従って、たとえば512バイトのセクタ単位でランダムアクセスされる。
その場合、たとえばページP0とP1のみを書き換える要求が頻繁に発生する。
しかし、上述のような装置でそのようなアクセスを行うと、結局実消去ブロック領域22全体を消去しなければならない。かつその中の非選択領域に有効ファイルがあれば、それを消失から保護する必要がある。その典型的な対処例は次のようになる。
2.次にメモリ領域24内で、ページP0とP1に相当するデータを更新する。
3.次にフラッシュメモリ上のブロック領域22の消去を実行する。
4.最後に上記消去済みの領域22に、更新後のメモリ領域24のブロックデータを全て書き戻す。
具体的には、1ページ分のデータの読み出しおよび書き込みにはそれぞれ200マイクロ秒(μs)を要し、ブロックの消去には2ミリ秒(ms)を要するので、30ミリ秒(ms)近くを必要とする。
この場合、仮想アドレス構成を用いて消去ブロック単位で論理アドレスと物理アドレスの対応を更新し、アクセス対象とされた論理アドレスに対応する物理ブロックは元の消去ブロック領域22からデータの移動先ブロック領域25に入れ替える。
図3(A)はフラッシュメモリ30の記憶領域を、図3(B)はアドレステーブル40を示している。
たとえば、ホストまたはアプリケーションが”0x55”のブロックアドレスへのアクセスを要求した場合、そのアドレスはテーブルにより”0x6B”に変換され、フラッシュメモリ30の消去ブロック31にアクセスが実施される。
このような管理下におけるフラッシュメモリ上のデータ更新手順は以下の通りである。
2.論理ブロックアドレス”0x55”が指定され、対応する物理ブロックアドレス”0x6B”が取得され、ブロック31内のページ33にアクセスがなされたとする。このとき、フラッシュメモリ30の書き換え対象ブロック31から、別途設けられたページバッファ34)を介して、予備ブロック32にデータを順次コピーしていく。
3.更新対象となるページ33のコピー時には、ページバッファ34上で所望の箇所を更新してコピーを行い、コピー先ページ35にそれが反映される。
4.有効なページデータのコピーが全て完了したら、アドレステーブル40上で、ブロック31と予備ブロック32のアドレスを入れ替える。
5.最後に元ブロック31の消去を実施する。
したがって、この場合も現実の転送性能は著しく低いものになってしまう。
一般のファイルシステムにおいては、セクタ間の書き込み順序に保証はなされない。したがって、消去ブロック途中から書き込みがなされることがしばしばあるが、その場合、ブロック内におけるそれより上位のアドレス領域が空いていても、そこにデータは書き込めなくなる。その結果、後でそれらの領域に書き込み要求が出ると、書き換えと同様の処理が必要となり、前述のデータ退避や消去、書き込みを繰り返さざるを得なくなってしまう。
このようなシステムにおいては、書き換えは、更新データを空き領域に追記し、元のデータを無効化することで実施される。
より具体的には、論理アドレスを物理アドレスに対応させるアドレス変換テーブルを用い、書き換えは対照データの物理アドレスを変更し、記憶メディアの空き領域に追記することで実施する。
図4(A)はフラッシュメモリ50に記憶領域を、図4(B)はアドレステーブル60を示している。
たとえば、ホストから指定された論理ページアドレス”0x5502”への書き込みに対して、アドレステーブルを用いてページ単位でアドレス変換を実施し、フラッシュメモリ50上の物理ページアドレス”0x6B05”を取得する。これによりブロック51内の対応するページ領域53へアクセスが実施される。
一方、同ページに更新を行う際には、フラッシュメモリ50内で直接書き込める適当な空きページ領域が検索される。たとえば物理ブロックアドレス”0xAA”に相当する消去済み空きブロック52の先頭ページ領域55が適切な書き込み先として選択された場合、ページ領域53のデータのみがページバッファ34Aを介して更新され、ページ領域55に書き込まれる。この際、論理ページアドレス”0x5502”はページ領域55の物理アドレス”0xAA00”にリマッピングされる。ページ領域53上の旧データは、当面そのまま残して無効扱いとしておく。
しかしその場合、特に消去ブロックが複数のページ領域を含むと、無効化されたページ領域と同じ消去ブロック内に有効データを含むページ領域が存在するケースが多発する。このようなブロックを回復させるには、消去前に有効ページのみを、他のブロックに退避させる必要がある。
一方、このような各ページの有効/無効の情報をフラグによってRAM上に保管した場合、フラッシュデバイスの容量増加に伴って、フラグ保管に必要なRAM容量が著しく増加してしまう。
また、本発明の目的は、特に追記型記憶システムにおいてブロック消去を実施する際、RAM等のハードウエアリソースをなるべく使用せず、有効ページと無効ページを識別判定し、有効ページのみを他のブロックに速やかに退避させることが可能な記憶システムを提供することにある。
通常型の書き換えでは、有効ページ領域の退避等をはじめとする冗長な処理が、ユーザーのアクセスに応じてその都度発生する。それは、アクセスされるデータ領域の状況に依存する不可避な処理であって、その発生時期をアクセスと独立に制御することは困難である。
一方、追記型書き換えでは、無効化データ領域の回復時に同様のオーバーヘッドが生じるが、その発生時期はユーザーのアクセス状況にかかわらず、ストレージシステムもしくはホストの都合に応じて自由に決定することができる。
ところで、通常の用途において、データストレージは常にアクセスされているわけではなく、むしろアクセスの無い期間の方が長い。したがって、フラッシュメモリに直接アクセスの無い期間を抽出し、その期間を利用して上記回復処理を実施する機能を設けることにより、回復処理に伴うオーバーヘッドを見かけ上消滅させることができる。
さらにそのような性能向上を得つつ、フラッシュメモリにおいて無効化された領域の回復も適切に実施できる。
そして、フラッシュメモリを記憶メディアとして使用しつつ高速な書き換えを実現しつつ、低コストなハードウエアでフラッシュメモリ上の記憶領域を有効に活用できる。
ページバッファ72は、アクセスされたページ領域を一時記憶するバッファであり、外部とのインターフェース回路71に接続されている。
制御回路74は、メモリチップであるフラッシュメモリ75,76とページバッファ72およびインターフェース回路71の間のデータのやりとりを管理するコントローラであり、処理ユニットである内蔵CPU85によって制御される。同じく内蔵されたRAM77には、CPU85を制御するためのプログラム領域やワークエリアが確保されるとともに、アドレス変換テーブル78、およびページ状態の管理テーブル86が構築されている。
この物理ページアドレスPA中、上位の”0x00”はメモリチップのフラッシュメモリ75,76内の消去ブロック83,84のアドレスである。下位”0xB0”は各消去ブロック内のページ領域79,80のアドレスである。
この物理アドレスPAをもとにメモリチップのフラッシュメモリ75,76が共にアクセスされ、各々からページアドレス”0x00B0”に格納されたページ領域79,80のデータが読み出され、ページバッファ72に格納される。インターフェース回路71はその中から、下位アドレス”0xC”に相当するセクタを選択し、外部に出力する。
このページ領域の物理ページアドレスは”0x0280”であり、すなわち消去ブロック”0x02”内の”0x80”のページに相当する。またこの処理の前まで、その領域はアドレス変換テーブル78のいずれの物理アドレスフィールドにも登録されていない、未使用の空きページであった。
更新後のデータがこの領域に追記の形で書き込まれるとともに、アドレス変換テーブル78の論理アドレス”0x5500”に対応する物理アドレスフィールドには、空き領域81,82の物理ページアドレス”0x0280”が登録される。
本テーブルは(BA:Block Address)で表現される各消去ブロックに格納された各々のページの状態を2ビットのフラグ列で記録している。”0”は空き領域であり、”1”は書き込みが行なわれた有効領域、”2”はデータが更新され、無効化された無効領域を示す。
フラッシュへの書き込み要求があれば、その上位ページからこのテーブルのフラグをスキャンして空きページ領域を検索する。ブロック全ての空き領域が使用されていると、ポインタをインクリメントし、次は”0x03”のブロックから空きページ領域を探す。
このようにしてポインタをブロックアドレスの先頭から末尾にかけて循環させていけば、フラッシュメモリ全域に対して均一な書き込みが実施できる。
一方、並列化の弱点である消去回数の増加や、書き換え疲労が加速することはページ単位のアドレス変換を用いた追記型の書き込みで大幅に緩和される。
しかしそれらにはデータが書き込まれており、そのままでは空き領域として使用することもできない。上述のような書き換えを何度も繰り返すと、多くの無効ページ領域が発生する。それらは再度空き領域として使用できるよう、消去して回復させる必要がある。またその場合、消去ブロック83,84に残された有効データは退避させなければならない。
図7(A)〜(C)には、消去ブロック83,84内部の有効データを退避し、無効ページ領域を実質的に回復させる、具体的手順<1>、<2>、<3>を例示している。
図6の状態からさらに追記による書き換えが進行し、消去ブロック83,84には、一度データが書き込まれた後、更新によって無効化されたページ領域群94,96が、有効なページ領域群93,95,97と共存しているとする。ここで有効ページ領域のデータを残しつつ、無効化領域を空き領域に回復させる必要がある。
一方、ブロック91,92は現在追記用の空き領域として使用している消去ブロックであり、ページ領域102まで書き込みが行われている。
有効なページ領域群93,95,97を消去ブロック91,92内の空き領域98,99,100に上詰めにして順番にコピーしていく。この際たとえば図5のページバッファ72に消去ブロック83,84から順次1ページ領域ずつを読み出し、消去ブロック91,92に書き込むとともに、アドレス変換テーブル78を更新する。すなわち各々のページ領域の論理アドレスに対応する物理アドレスフィールドに、コピー先の物理ページアドレスを登録していく。
この操作は、すなわち有効ページ領域群93,95,97を追記方式で書き換える作業(処理)に等しい。
実際には書き換えずコピーするのみであるが、この作業によって消去ブロック83および84内の全てのページは無効化され、有効ページ領域のデータは消去ブロック91,92に実質的に退避させられる。
消去ブロック83,84を消去する。これによってその内部は全て空き領域となり、後の追記に使用することが可能になる。これをもって無効領域94,96は実効的に回復される。
この場合、制御が容易になるばかりではなく、フラッシュメモリへの書き込みの均一化等、書き込み時の信頼性向上のための各種工夫を回復処理にも適用することができ、記憶装置の総合的な信頼性を向上させることができる。
またはたとえば映像の録画のように、記憶装置に見かけ上継続的にアクセスがなされている場合でも、ホストから記憶装置に入力される平均的なデータ転送量が記憶装置自体のもつデータ転送能力より十分小さければ、実際にはホスト側バッファが一定量の映像データを蓄積した後でまとめて装置にデータが入力されることになる。したがってバッファに映像データを蓄積する間、装置は待機状態となる。
記憶装置は電源が入り、アクセスに必要となる初期化がなされた後(ST1)、無効ページ領域の回復処理を実行する。それは以下のステップST2〜ST5の処理の繰り返しから成る。
無効化されたページ領域を探査し、その回復処理を実施すべきか否かを、しかるべきアルゴリズムで判定する。たとえば以下のようなケースでの回復が有効である。
・同一ブロック内に一定数以上の無効ページ領域が存在する。
(このようなブロックは実質的に回復されるページ数が多い一方、退避の必要なページ数が少ない。したがって効率的な回復が可能である。)
・空き領域に対して、一定割合以上の無効ページ領域が存在する。
・空き領域が全体の容量の一定割合以下である。
回復処理が不要な場合は、処理を終了し、単にアクセスを待って何も実施しない通常の待機状態に入る。
回復処理が必要と判定されれば、回復対象とする消去ブロックと、他の消去ブロック内の退避先の空き領域を選定し、回復処理をスタートする。
回復対象となった消去ブロック中に、退避すべき有効ページ領域があるか否かを判定する。もしあれば、上位から1ページ領域ずつ空き領域に上詰でコピーしていく。各ページのコピーが完了する都度に、アドレス変換テーブルを更新する。
全ての有効ページ領域の退避が完了したら、元ブロックを消去する。
また、フラッシュへメモリの消去が開始されていれば、消去を完了したところで処理を中断する。これにより数ミリ秒の遅延で安全にアクセス処理を開始できる。
この場合、書き込みや消去は中途半端な状態で中断されるが、書き込んでいたページ領域や消去中であった消去ブロックの所在が解れば、アクセス応答処理の完了後、再度上記書き込みまたは消去処理を再開することで、問題なく処理を完了できる。
たとえば、ステップST2〜ST5の処理中途で中断が成された際は、少なくとも回復対象の消去ブロックの所在を進捗情報として保存しておく。また望ましくは回復処理を中断したことを示すフラグを立てておく。その他必要に応じて有効ページの退避先の空き領域や退避中だったページの所在等を記録しておいても良い。
これらの情報は、たとえば図5におけるRAM77内の適当な領域に保存する。たとえばCPUを制御するファームウエア内で、変数として保存しておけば良い。
その際、ステップST2では前記フラグに基づいて中断された処理があることを判定し、回復処理に進む。
ステップST3の処理で前回の処理を継続するように、回復対象の消去ブロックと退避先の空き領域を選択する。
さらにステップST4では、中断時に有効ページデータはどこまで退避が完了したか、もしくは既に退避は完了し、元ブロックの消去中に中断されたのかを検査、判定し、その情報に従って未完了の工程から回復処理を実施する。
しかし、回復処理の分割方法には各種バリエーションが考えられる。たとえば上記図8のステップST2〜ST5の回復処理を、予めより小さな作業に分割しておき、それを単位として実行して行けば、割り込みなしでも迅速にアクセスに対応できる。その例を図9に示す。
記憶装置は電源が入り、アクセスに必要となる初期化がなされた後(ST11)、無効ページ領域の回復処理を分割単位ごとに実行する。分割単位処理は以下のステップST12〜ST15の処理より成る。
無効化されたページ領域を探査し、その回復処理を実施すべきか否かを、しかるべきアルゴリズムで判定する。ここで、消去ブロックレベルで完了していない未完了の回復処理が残存している場合、その継続処理に進む。回復処理が不要な場合は、処理を終了し、単にアクセスを待って何も実施しない通常の待機状態に入る。
回復処理が必要と判定されれば、回復対象とする消去ブロックと、退避先の空き領域を選定し、回復処理をスタートする。未完了の回復処理が残存している場合、そこで作業対象となっていた消去ブロックが選択される。
回復対象となった消去ブロック中に、退避すべき有効ページ領域があるか否かを判定する。もしあれば、再上位の1ページを空き領域に上詰でコピーする(ST16)。さらにアドレス変換テーブル78を更新して分割単位処理を完了する(ST17)。
全ての有効ページ領域の退避が完了していたら、元ブロックを消去して、分割単位処理を完了する。なおフラッシュメモリチップに消去動作を中断し、再度同じブロックを消去することで分割して消去できる機能があれば、所定の時間消去を行って、消去完了前でもそれを中断し、分割単位処理を完了しても良い。すなわち分割消去を行っても良い。
本発明の第2の実施形態は、外部からの専用の回復コマンドに従って上記回復処理を実施する形態である。
上述した第1の実施形態においては、装置が待機状態になると自動的に回復処理が実施されるのに対して、本第2の実施形態では装置外部から入力された回復コマンドに従って回復処理を実施する。図中、破線で示した無効ページ領域の回復処理ST21〜ST26は、第1の実施形態における図8の処理(作業)ST2〜ST7と同様である。
アクセスコマンド、回復処理の開始コマンド、回復処理の中断コマンドは、統一的にCPUへの割り込み処理をイベントとして、それぞれの処理ルーチンが実行されるようにする。
ステップST22で前回の処理を継続するように、回復対象の消去ブロックと退避先の空き領域を選択する。
さらに、ステップST23では、中断時に有効ページデータはどこまで退避が完了したか、もしくは既に退避は完了し、元ブロックの消去中に中断されたのかを検査、判定し、その情報に従って未完了の工程から回復処理を実施する。
また装置へのアクセスを事前に予測して、回復処理を中断し、待機状態に推移させておけば、中断処理に要する時間が不要となり、より迅速なアクセスへの応答処理が可能になる。
たとえばユーザーからのキー入力やマウス入力が一定時間なければ回復処理を開始し、入力が入ったところで回復処理を中断する。
しかし、第1の実施形態の変形例と同様に、予め回復処理をより小さな作業に分割しておき、それを単位として実行して行けば、割り込みなしでも迅速にアクセスに対応できる。
図中、破線で示した無効ページ領域回復の分割単位処理ST31〜ST36は、第1の実施形態の変形例における図9の処理(作業)ST12〜ST17と同様である。
本発明の第3の実施形態は、記憶装置内部にキャッシュメモリを設け、それにヒットしている間に回復処理を行うものである。
ページバッファ112はアクセスされたページ領域を一時記憶するバッファであり、外部とのインターフェース回路111に第2の内部データバス118を介して接続されている。さらに第2の内部データバス118にはキャッシュメモリ117が接続されている。
同じく内蔵されたRAM120には、CPU119を制御するためのプログラム領域やワークエリアが確保されるとともに、アドレス変換テーブル121が構築されている。
さらに制御回路114には、CPUの制御無しでキャッシュメモリ117とインターフェース回路111間のデータ転送を制御する制御回路122が搭載されている。
装置立ち上げ後、ホストからのアクセスがキャッシュにヒットしている間、アクセス処理は制御回路122に任され、CPU119は無効ページ領域の回復処理を実施する。
キャッシュがミスヒットすると、制御回路122はCPU119に割り込みをかけ、CPU119はそれに応じてミスヒットへの応答処理を実施する。
具体的にはホストのアクセス要求に応じてアドレス変換テーブル121を参照し、そこで取得された物理アドレスからフラッシュメモリ115,116をアクセスし、ページバッファ112を介してページデータの書き込みまたは読み出しを行う。
また必要に応じてホストからの入力データまたはホストへの出力データをキャッシュメモリ117にキャッシュする。
その際、ステップST42では、前記フラグに基づいて中断された処理があることを判定し、回復処理に進む。
ステップST43で前回の処理を継続するように、回復対象の消去ブロックと退避先の空き領域を選択する。
さらにステップST44では、中断時に有効ページデータはどこまで退避が完了したか、もしくは既に退避は完了し、元ブロックの消去中に中断されたのかを検査、判定し、その情報に従って未完了の工程から回復処理を実施する。
図中、破線で示した無効ページ領域回復の分割単位処理は、第1の実施形態の変形例における図9の処理(作業)ST12〜ST15と同様である。
すなわちホストからのアクセスがキャッシュメモリ117にヒットすると、CPU119はアクセスへの応答を制御回路122に渡し(ST61)、無効ページ領域回復の分割単位処理を実施する。破線で示した無効ページ領域回復の分割単位処理は、第1の実施形態の変形例における図9の処理(作業)ST12〜ST17と同様である。
たとえばNAND型フラッシュメモリでは1ページのコピーが150〜200マイクロ(μ)秒程度で終了するのに対し、消去は1〜2ミリ(m)秒かかる。したがってホストがアクセスを行う際の遅延時間は、消去時がワーストとなる。
電源オン・オフ時であれば、ユーザーは体感速度として200ミリ(m)秒以下の遅延は殆ど気にしない。したがって電源オンまたはオフ時だけでは100ブロック以上を消去することが可能となる。
無効化されたページ領域を探査し、その回復処理を実施すべきか否かを、しかるべきアルゴリズムで判定する。回復処理が不要な場合は、処理を終了し、単にアクセスを待って何も実施しない通常の待機状態に入る。
回復処理が必要と判定されれば、回復対象とする消去ブロックと、退避先の空き領域を選択し、回復処理をスタートする。
回復対象となった消去ブロック中に、退避すべき有効ページ領域があるか否かを判定する。もしあれば、上位から1ページ領域ずつ空き領域に上詰でコピーしていく(ST77)。各ページのコピーが完了する都度に、アドレス変換テーブルを更新する(ST78)。
全ての有効ページ領域の退避が完了したら、元ブロックを「退避済みブロック」としてマークする。マークの手法としてはたとえばブロックの末尾ページにフラグを立てるか、或いは退避済みブロックの物理アドレスを装置内のどこかに保存する。
たとえば図5におけるページバッファ72は、制御回路74内部のRAM77上に構築しても良い。そのような場合にはインターフェース回路71、フラッシュメモリ75,76および制御回路74は共通の内部データバス73で接続された構成となる。
またはページバッファ72とフラッシュメモリ75,76との間にECCによるエラー訂正回路を設けて、ページバッファからフラッシュメモリへのページデータ書き込み時には符号化を実施してパリティビットを追加し、フラッシュメモリからページバッファへのページデータ読み出し時には復号化を行なっても良い。そのような装置構成の違いに関わらず、本発明を適用することは可能である。
または先に説明した第1〜第4の実施形態で述べたように、アドレス変換テーブル78,121に従ってページ単位のアドレス変換を実施した後、フラッシュメモリ内の欠陥ブロックをスキップするために、さらにブロックレベルでのアドレス変換を挿入しても良い。このような場合でも、前述した例と同様の制御で、本発明は問題なく適用することが可能である。
しかし、このようなアドレス変換テーブルの管理と回復処理を、ホスト側の制御で実施することも可能である。そのようなコンピュータシステムを第5の実施形態として、図18に示す。
ページバッファ138はアクセスされたページ領域を一時記憶するバッファであり、ブリッジ回路134に内蔵されている。
ブリッジ回路134はCPU131から各種コマンドを受け取り、フラッシュメモリ135,136とCPU131またはシステムメモリ132との間のデータのやり取りを、ページバッファ138を用いて媒介する。
ブリッジ回路134が受け取るコマンドは、たとえばフラッシュメモリ135,136の所定のページへのアクセスの他、同フラッシュメモリの所定ブロックの消去、および所定ページの指定アドレスへのコピー、フラッシュメモリのリセット等である。
この物理ページアドレスPA中、上位の”0x00”はメモリチップのフラッシュメモリ135,136内の消去ブロック141,142のアドレスである。下位”0xB0”は各消去ブロック内のページ領域143,144のアドレスである。
この物理アドレスをもとに、ブリッジ回路134を介してメモリチップのフラッシュメモリ135,136が共にアクセスされ、各々からページアドレス”0x00B0”に格納されたページ領域143,144のデータが読み出され、ページバッファ138に格納される。
ブリッジ回路134はその中から、下位アドレス”0xC”に相当するセクタを選択し、CPU131またはシステムメモリ132に出力する。
更新後のページデータは、フラッシュメモリ135,136に書き戻されるが、その際各々の空き領域145,146に書き込まれる。このページ領域の物理ページアドレスは”0x0280”であり、すなわち消去ブロック”0x02”内の”0x80”のページに相当する。またこの処理の前まで、その領域はアドレス変換テーブル140のいずれの物理アドレスフィールドにも登録されていない、未使用の空きページであった。
更新後のデータがこの領域に追記の形で書き込まれるとともに、アドレス変換テーブル140の論理アドレス”0x5500”に対応する物理アドレスフィールドには、空き領域145,146の物理ページアドレス”0x0280”が登録される。
しかしそれらにはデータが書き込まれており、そのままでは空き領域として使用することもできない。上述のような書き換えを何度も繰り返すと、多くの無効ページ領域が発生する。それらは再度空き領域として使用できるよう、消去して回復させる必要がある。またその場合、消去ブロック141,142に残された有効データは退避させなければならない。
たとえば上記回復作業における有効ページデータのコピーは、ホストCPU131からのコピーコマンドに応じて、ブリッジ回路134が所定のページをコピー元からページバッファ138に読み出してコピー先に書き込む。または所定のブロックを消去する。この際システムバス133は使用されないので、もし必要があれば、CPU131は上記コマンドを送信した後は別の処理(作業)を並行して実施することも可能である。
ホストCPU131はタイマーや優先順位を用いたスケジューリングに応じて回復タスクを適時実行する。各実行には5ミリ秒のタイムスライスが割り当てられるとする。ホストはこの割り当て時間を用いて、回復処理を分割して実行する。
無効化されたページ領域を探査し、その回復処理を実施すべきか否かを、しかるべきアルゴリズムで判定する。ここで、消去ブロックレベルで完了していない未完了の回復処理が残存している場合、その継続処理に進む。回復処理が不要な場合は、タスクを終了する。
回復処理が必要と判定されれば、回復対象とする消去ブロックと、退避先の空き領域を選定し、回復処理をスタートする。未完了の回復処理が残存している場合、そこで作業対象となっていた消去ブロックと、退避先の空き領域が選択される。
回復対象となった消去ブロック中に、退避すべき有効ページ領域があるか否かを判定する。もしあれば、再上位の1ページを空き領域に上詰でコピーする(ST86)。さらにアドレス変換テーブル140を更新して分割単位処理を完了する(ST87)。
なお、本例のように一回のタスク実行に5ミリ秒の割り当てがある場合、その間に複数のページコピーが可能である。従って割り当てられたタイムスライスに従って処理ページの上限を設け(ST88)、それに達するまでコピー処理を繰り返しても良い。
全ての有効ページ領域の退避が完了していたら、元ブロックを消去して、分割単位処理を完了する。
中途にECCによるエラー訂正や、欠陥ブロック回避のための、ブロック単位のアドレス変換を挿入してもよく、その制御はホスト側で行なっても、記憶装置側、たとえばブリッジ回路134の内部で独立して行っても良い。
したがってこのようなケースでは、回復処理の進捗状況の少なくとも一部は、いわゆる不揮発性RAMに記録されているのが望ましい。
MRAMは強磁性膜のスピン方向の違いでデータを記憶する半導体メモリである。たとえばISSCC2000の論文ダイジェストの128ページに、R.Scheuerleinらが論文を掲載している。
OUMはたとえばカルコゲナイド膜の相転移でデータを記憶する半導体メモリである。たとえばIEDM2001の論文ダイジェストの803ページに、S.Laiらが論文を掲載している。
RRAMは磁気抵抗効果材料の抵抗ヒステリシスでデータを記憶する半導体メモリである。たとえばIEDM2002の論文ダイジェストの7.5にはW.W.Zhuangらが論文を掲載している。
それらの不揮発性メモリは、いずれもセルレベルのアクセス速度や書き換え回数において、フラッシュメモリより数桁性能が高い。
さらにアドレス変換テーブル78やページ管理テーブル86も進捗情報の一部を含むので、不揮発性RAMに保存されるのが望ましい。
たとえば図5のRAM77をSRAMと不揮発性RAMの混合で構築し、上記回復処理の進捗状況や各種管理テーブルを不揮発性RAM側に、記憶装置制御用のファームウェアプログラムやワークエリアをSRAM側に構築しても良い。
図22は、第6の実施形態に係る制御回路のアドレス変換テーブルおよびページ状態の管理テーブルの構成例を示す図である。
ページバッファ112Aはアクセスされたページ領域を一時記憶するバッファであり、外部とのインターフェース回路111Aに第2の内部データバス118Aを介して接続されている。さらに第2の内部データバス118Aにはキャッシュメモリ117Aが接続されている。
制御回路123はフラッシュメモリ115A,116Aとページバッファ112Aの間の転送を制御する。制御回路123にはフラッシュメモリ内の欠陥ブロックがアクセスされぬよう、その内蔵RAM124上に、ブロック単位のアドレス変換でそれらをスキップさせるためのアドレス変換テーブル126が構築されている。
さらに制御回路123にはECC回路125が搭載されており、ページバッファ112Aからフラッシュメモリ115A,116Aにデータが書き込まれる際には符号化によるパリティビットの追加を行い、フラッシュメモリ115A,116Aからページバッファ112Aにデータが読み出される際には復号化によるエラー訂正を実施する。
制御回路114Aはページバッファ112A、キャッシュメモリ117Aおよびインターフェース回路111Aの間のデータのやりとりを管理するコントローラであり、内蔵CPU119Aによって制御される。同じく内蔵されたRAM120Aには、CPU119Aを制御するためのプログラム領域やワークエリアが確保されるとともに、アドレス変換テーブル121Aが構築されている。
さらに制御回路114Aには、CPU119Aの制御無しでキャッシュメモリ117Aとインターフェース回路111A間のデータ転送を制御する制御回路122Aが搭載されている。
なお本図面においては制御線の記載は省略されている。
これにより外部から入力された論理アドレスは、それを元にフラッシュメモリ115A,116Aへのアクセスが成される場合、アドレス変換テーブル121Aと126により二重の変換を受ける。さらに入出力データにもECCによる符号化、復号化の変換が施される。
具体的な動作を以下に述べる。
この物理ページアドレスPA中、上位の”0x00”は消去ブロックのアドレスを示すが、さらに制御回路123に入力されると、この部分は論理ブロックアドレス(LBA:LOGICAL BLOCK ADDRESS)として扱われ、アドレス変換テーブル126から物理ブロックアドレス(PBA:PHISICAL BLOCK ADDRESS)”0x01”が取得される。これがメモリチップのフラッシュメモリ115A,116A内の消去ブロック127,128のアドレスである。
この物理アドレスをもとにフラッシュメモリ115A,116Aが共にアクセスされ、各々からページアドレス”0x01B0”に格納されたページ領域1271,1281のデータが読み出され、さらにECCによる復号化が施されて、ページバッファ112Aに格納される。
更新後のページデータは、フラッシュメモリ115A,116Aに書き戻されるが、その際読み出し元のページ領域1271,1281が書き換えられるのでは無く、アドレス変換テーブル121Aのいずれの物理アドレスフィールドにも登録されていない、未使用の空きページに書き込まれる。そのような空きページは制御回路114A側で管理されており、たとえば図6のような管理テーブル86が使用されて、物理ページアドレス” 0x0280”が選択される。
このうち上位の”0x02”は制御回路123に入力されると、アドレス変換テーブル126から”0x03”に変換され、合成されたアドレス”0x0380”から、メモリチップのフラッシュメモリ115A,116Aのページ領域129a,129bに、ページバッファ112Aの更新済みデータが書き込み転送される。この際データには、ECC符号化によるパリティビットが追加される。
その結果、制御回路114Aは、第3の実施形態と全く同様のアルゴリズムで無効化領域の回復処理を実施することが可能となる。
たとえば、図5の第1実施形態は、無効領域を回復させる際、各データ領域が無効か有効かの判定にテーブル86の”Page State”フラグを使用した。しかしこのようなフラグをデータ領域ごとに設けると、テーブル86はかなり大きなRAM容量を占有することになる。したがって、このようなフラグは廃止し、異なる方法でデータ領域の有効判定を行なった方が、RAM容量を節約でき、コスト的に有利である。本記憶装置はそのような要請から考案された。
また、制御回路152は、RAM162を内蔵しており、RAM162にはワーキングエリア163、アドレス変換テーブル164、およびアドレス検索テーブル165が形成される。
すなわち、メモリバス158は16ビットバスを2チャンネル備えた構成となっている。各々のフラッシュメモリ155,156は書き込みや読み出しのアクセスをたとえば4kBのページ単位で行う。したがって、実ページサイズとしては8kBが一括アクセスされることになる。
ページバッファ154はアクセスされたページ領域のデータを一時記憶するページバッファである。
フラッシュメモリ155,156とページバッファ154との間のデータの送受は、制御回路157で制御されている。
制御回路157は、必要に応じて転送データにECC符号化によるエラー補正を施す。両フラッシュメモリ155,156はページバッファ154を介してファイル記憶装置160の内部バス153との間でデータを入出力する。すなわち、左記回路群は実質的に一つのフラッシュメモリデバイス161を構成し、ファイル記憶装置160の内部バス153に接続されているとみなすことができる。その総容量は16Gb(2GB)であり、実ページサイズは8kBである。すなわち、装置内には256k個のページデータが格納される。
インターフェース回路151はATAやPCIエクスプレス等の規格に従ってホストシステム159との間で、データやコマンドの送受を行う。
制御回路152はファイル記憶装置160の内部においてページバッファ154とインターフェース回路151の間のデータの送受を管理する。制御回路152に内蔵されたRAM162には、プログラムを実行するためのコードエリアやワーキングエリア163が設けられており、さらにページ単位の仮想アドレスを管理するアドレス変換テーブル164および正常な空きブロックを検索するアドレス検索テーブル165が構築されている。
制御回路152はその間のデータ授受に介在し、アドレス変換テーブル164を用いてアドレス変換を伴う等のアクセス管理を実施する。
たとえば、外部入力アドレスが”0x05502C”であった場合、上位20ビットの”0x05502”はページアドレスであり、最大1Mページを管理できる。
一方、下位4ビットの”0xC”はページ領域内のセクタドレスであり、1ページ中には16のセクタが含まれる。本記憶装置160はページバッファ154内のデータを選択することで、1セクタ単位のランダムアクセスが可能である。
図25は、図24のアドレス変換テーブルおよび検索テーブルを使用したデータアクセス処理を説明するためのフローチャートである。
ファイル記憶装置160の内部におけるフラッシュメモリデバイス161への具体的アクセスは、図25のフローチャートに従って、以下のような手順で実行される。
ホストシステム159からユーザーデータのアクセスコマンドとともに”0x05502C”のセクタドレスが入力されると、制御回路152は論理ページアドレス部(LPA)”0x05502”をインデックスにアドレス変換テーブル164を参照し、アクセス対象たるユーザーデータの物理ページアドレス(PPA)”0x060B0”を取得する。
上記物理ページアドレスをもって、フラッシュメモリデバイス161がアクセスされ、ページバッファ154内にユーザーデータが格納されたページグループが読み出される。その後セクタドレス”0xC”に相当する部分がページバッファ154から選択的にホストシステム159に出力され、読み出し動作が完了する。
同じ”0x05502C”のセクタを更新するとする。その場合、まずページバッファ154に所望のページを読み出す必要があり、その手順はステップST101,ST102と同様である。
ステップST101,ST102の読み出し時と同様に、フラッシュモメモリデバイス161より読み出した所望のデータをページバッファ154に格納する。
ページバッファ154上で所望のセクタ箇所を更新する。
更新したユーザーデータのフラッシュメモリデバイス161への書き込み先として、RAM162内に常駐したアドレス検索テーブル165およびレジスタ166(図24)から、適当なページ領域の物理ページアドレス(PPA)が選択される。
ここでは簡単のため、物理ページアドレスは、上位12ビットの物理ブロックアドレス部(Phisical Block Address :PBA)と下位8ビットのページオフセット部よりなるとする。この時各消去ブロックは256ページ(28)より構成される。
アドレス検索テーブル165には、各ブロックごとにそれらが現在使用されているか、もしくは消去済みの空き状態であるかが、”Used Flag”でマークされている。さらに欠陥ブロックの場合、”Defect Flag”が”1”となっている。
データの書き込みは、消去済みブロックの先頭ページから順に実行されていく。前回の書き込んだページの物理アドレスは、レジスタ166に保存されており、書き込み先にはそれがインクリメントされたページが順次選択される。選択がブロックの末尾に達したら、それ以降のブロックの”Used Flag”と”Defect Flag”がスキャンされ、次の未使用かつ良品のブロックが検出されて、その先頭ページが選択される。
レジスタ166の値は現在”0x0AA01”であり、制御回路152はまずユーザーデータの書き込み先として、それをインクリメントした物理ページアドレス”0x0AA02”を選択する。
上記物理ページアドレスをもって、フラッシュモメモリデバイス161がアクセスされ、ページバッファ154内のユーザーデータがフラッシュメモリデバイス161に一括書き込みされる。書き込みが完了すると、アドレス変換テーブル164が更新され、論理ページアドレス(LPA)”0x05502”に対応する物理ページアドレス(PPA)は”0x0AA02”に更新される。これに伴って旧物理ページアドレス”0x060B0”に相当するページ領域は無効とる。
さらに無効化された旧データのページ”0x060B0”の予備領域に所定の値を書き込んで、無効である旨を刻印する。なおこのような作業はブロック内のページの書き込み順が制限されたフラッシュでは実施できない。この対処については後述する。
しかしそれらにはデータが書き込まれており、そのままでは空き領域として使用することもできない。上述のような書き換えを何度も繰り返すと、多くの無効ページ領域が発生する。それらは再度空き領域として使用できるよう、消去して回復させる必要がある。またその場合、消去ブロック”0x060”に残された他の有効データは退避させなければならない。
図26(A)〜(C)には消去ブロック170,171内部の有効データを退避し、無効ページ領域を実質的に回復させる手順を、概念的に図解している。
上述したような追記による書き換えが進行し、消去ブロック170,171には、一度データが書き込まれた後、更新によって無効化されたページ領域群175,177が、有効なページ領域群174,156,178と共存しているとする。ここで有効ページ領域のデータを残しつつ、無効化領域を空き領域に回復させる必要がある。一方、ブロック172,173は現在追記用の空き領域として使用している消去ブロックであり、ページ領域183まで書き込みが成されている。
有効なページ領域群174,176,178を消去ブロック172,173内の空き領域179,180,181に上詰めにして順番にコピーしていく。
一方、無効なページ領域群175,177はコピーしない。有効ページと無効ページの判定は、消去ブロック172,173から各ページの予備領域をまず図23のページバッファ154に読み込み、その値に基づいて実施するが、その詳細は後述する。
判定結果が有効ページの場合、今度は対象ページ内のデータ全体をページバッファ154に読み込み、消去ブロック172,173に書き込むとともに、アドレス変換テーブル164を更新する。すなわち、各々のページ領域の論理アドレスに対応する物理アドレスフィールドに、コピー先の物理ページアドレスを登録していく。
この操作は、すなわち有効ページ領域群174,176,178を追記方式で書き換える作業に等しい。実際には書き換えずコピーするのみであるが、この作業によって消去ブロック170および171内の全てのページは無効化され、有効ページ領域のデータは消去ブロック172,173に実質的に退避させられる。
消去ブロック170,171を消去する。これによってその内部は全て空き領域となり、後の追記に使用することが可能になる。これをもって無効領域175,177は実効的に回復される。
また、回復対象となる消去ブロック内の有効ページに通常の更新処理と同様の手順でダミーの更新を施し、それをもってページの退避を実行すれば、回復処理時の有効ページ退避を通常の書き込みアルゴリズムに統合させることが可能である。
この場合、制御が容易になるばかりではなく、フラッシュメモリへの書き込みの均一化等、書き込み時の信頼性向上のための各種工夫を回復処理にも適用することができ、記憶装置の総合的な信頼性を向上させることができる。
ガベッジポインタを参照する。
ガベッジポインタは回復対象となっている消去ブロックの中で、処理中のページの物理アドレス(PPA)を示している。回復処理開始時はブロックの先頭を指している。処理が進むにつれて、ブロックの末尾まで順次値がインクリメントされていく。
上記ガベッジポインタが指すページを選択し、まずその予備領域のデータを読み込む。予備領域とは、ユーザーデータの格納とは別に、記憶装置システム内で生成された管理用データを格納する領域であり、たとえば2kByteのユーザーデータに対して72Byte程度の予備領域がフラッシュメモリ上に予め設けられている。ここに記載された情報を元に、選択したページが有効か無効かを判定する。
選択したページが有効か無効かを判定し、判定結果が有効であれば、ダミー更新処理を実施する。すなわちまず選択ページ全体をページバッファに読み込み(ST114)、図24のアドレス検索テーブル165からフラッシュメモリ上の書き込み先を決定し、そこにデータを書き込む(ST115)。すなわちデータを他のブロックにコピー、退避する。
ガベッジポインタがブロックの末尾ページであるか否かを判定し、ガベッジポインタがブロックの末尾ページであればガベッジポインタをクリアし(ST117)、対象ブロックを消去する(ST118)。中途であればガベッジポインタをインクリメントし(ST119)、ステップST111に戻って次のページの処理を行う。
すなわち、まず選択ページの全領域をページバッファに読み込み、その予備領域に記載されていたデータ箇所からそのページが有効か否かを判定する。無効であればそれらは全て破棄してステップST116に移る。
一方、有効ならば、既にページバッファにはページ内の全データが読み込まれているので、読み込み工程を省略してダミー更新処理を実施する。この場合無効ページについてはより多くのデータを読み出す必要があるが、有効ページについては多重の読み出しを防止でき、迅速に処理できる。
ブリッジ回路194が受け取るコマンドは、たとえばフラッシュメモリ195,196の所定のページへのアクセスの他、同フラッシュメモリ195,196の所定ブロックの消去、および所定ページの指定アドレスへのコピー、フラッシュメモリ195,196のリセット等である。
すなわち、ドライバー200はアドレス変換テーブル201やアドレス検索テーブル202に図24に示したテーブル164,165と同じものを使用し、OSやアプリケーションから論理アドレスを受け、物理アドレス(PPA)を生成してブリッジ回路194にコマンドを送信することで、フラッシュメモリ195,196の各種アクセスを実施する。
・まず、少なくとも領域の一部を読み出し、
・その値からデータ領域に有効なデータが記録されているか否かを判定し、
・判定の結果有効なデータが記録されていれば、データ領域のデータを他の消去ブロックにコピーする。
Claims (15)
- 主記憶としてフラッシュメモリを有し、
上記フラッシュメモリにおける少なくとも一部領域の書き換えは、更新データを空き領域に追記し、元のデータを無効化する追記型の書き込みで実施され、
外部からアクセスの無い装置の待機時に、上記無効化領域を自動的に消去して空き領域に回復する回復処理を行う機能を有し、
当該記憶装置に格納されたデータに外部からアクセスが生じた場合に、上記回復処理を実行中であれば、当該回復処理を中断し、アクセスへの応答処理を行い、当該アクセスへの応答処理が終了し、待機状態になってから上記回復処理を再開する機能を有し、
上記フラッシュメモリは一括消去単位である消去ブロックを複数有し、各消去ブロックは各々独立した書き込み単位であるページ領域を複数含み、
上記回復処理は、回復対象たる無効ページ領域を含む消去ブロックに残存する有効ページ領域のデータを、他の消去ブロックの消去済みの空き領域に退避する処理を含み、
消去対象として選択されたブロックに対して、
別途システム内のメモリ上に設けたフラグを用いて有効ページを判定する処理、およびページ書き込み時に同時記載された論理アドレスと物理アドレスの対応がアドレス管理テーブルと照合しているか否かから有効ページを判定する処理により有効ページを判定し、その退避を行う
記憶装置。 - 待機時にブロックを検査し、
同一ブロック内に一定数以上の無効ページ領域が存在する場合、空き領域に対して、一定割合以上の無効ページ領域が存在する場合、および空き領域が全体の容量の一定割合以下である場合のいずれかを含む場合に、回復処理の実行を判定する
請求項1記載の記憶装置。 - 上記回復処理を中断する場合、回復処理の進捗情報を装置内のレジスタもしくはメモリに保存し、上記アクセスが終了すると当該進捗情報を参照して回復処理を再開する機能を有する
請求項1または2記載の記憶装置。 - 内部に処理ユニットを有し、待機時に当該処理ユニットは上記回復処理を実施し、外部からアクセスが生じると当該処理ユニットに割り込みが発生し、当該割り込みイベントに従って上記処理ユニットは回復処理を中断し、アクセス処理を開始する
請求項3記載の記憶装置。 - 上記フラッシュメモリは一括消去単位である消去ブロックを複数有し、各消去ブロックは各々独立した書き込み単位であるページ領域を複数含み、
ひとつの消去ブロック内に存在する一つまたは複数の無効ページ領域の回復処理は、複数の工程に分割され、外部からアクセスの無い記憶装置の待機時に、その一部が実行される
請求項1から4のいずれか一に記載の記憶装置。 - 主記憶としてフラッシュメモリを有し、
上記フラッシュメモリにおける少なくとも一部領域の書き換えは、更新データを空き領域に追記し、元のデータを無効化する追記型の書き込みで実施され、
外部から所定のコマンドに応じて、上記無効化領域を消去して空き領域に回復する処理を実行する機能を有し、
当該記憶装置に格納されたデータに外部からアクセスコマンドが生じた場合に、上記回復処理を実行中であれば、当該回復処理を中断し、アクセスへの応答処理を行い、当該アクセスへの応答処理が終了し、待機状態になってから上記回復処理を再開する機能を有し、
上記フラッシュメモリは一括消去単位である消去ブロックを複数有し、各消去ブロックは各々独立した書き込み単位であるページ領域を複数含み、
上記回復処理は、回復対象たる無効ページ領域を含む消去ブロックに残存する有効ページ領域のデータを、他の消去ブロックの消去済みの空き領域に退避する処理を含み、
消去対象として選択されたブロックに対して、
別途システム内のメモリ上に設けたフラグを用いて有効ページを判定する処理、およびページ書き込み時に同時記載された論理アドレスと物理アドレスの対応がアドレス管理テーブルと照合しているか否かから有効ページを判定する処理により有効ページを判定し、その退避を行う
記憶装置。 - 外部からの所定のコマンドに応じて、上記回復処理を中断する際、回復処理の進捗情報を装置内のレジスタもしくはメモリに保存し、再度回復処理の実行コマンドを受けると、当該進捗情報を参照して回復処理を再開する機能を有する
請求項6記載の記憶装置。 - 上記フラッシュメモリは一括消去単位である消去ブロックを複数有し、各消去ブロックは各々独立した書き込み単位であるページ領域を複数含み、
ひとつの消去ブロック内に存在する一つまたは複数の無効ページ領域の回復処理は、複数の工程に分割され、外部から所定のコマンドに応じて、その一部が実行される
請求項6または7記載の記憶装置。 - 主記憶としてのフラッシュメモリと、
キャッシュメモリと、を有し、
上記フラッシュメモリにおける少なくとも一部領域の書き換えは、更新データを空き領域に追記し、元のデータを無効化する追記型の書き込みで実施され、
外部からのアクセスがキャッシュメモリにヒットし、キャッシュへのアクセスが実施される間に、上記無効化データを消去して空き領域に回復させる処理の少なくとも一部を並行して実施する機能を有し、
外部からのアクセスがキャッシュメモリにミスヒットした場合に、上記回復処理を実行中であれば、当該回復処理を中断し、アクセスへの応答処理を行い、当該アクセスへの応答処理が終了し、外部からのアクセスがキャッシュメモリにヒットしたときまたは待機状態になってから上記回復処理を再開する機能を有し、
上記フラッシュメモリは一括消去単位である消去ブロックを複数有し、各消去ブロックは各々独立した書き込み単位であるページ領域を複数含み、
上記回復処理は、回復対象たる無効ページ領域を含む消去ブロックに残存する有効ページ領域のデータを、他の消去ブロックの消去済みの空き領域に退避する処理を含み、
消去対象として選択されたブロックに対して、
別途システム内のメモリ上に設けたフラグを用いて有効ページを判定する処理、およびページ書き込み時に同時記載された論理アドレスと物理アドレスの対応がアドレス管理テーブルと照合しているか否かから有効ページを判定する処理により有効ページを判定し、その退避を行う
記憶装置。 - 上記回復処理を中断する場合、回復処理の進捗情報を装置内のレジスタもしくはメモリに保存し、上記アクセスが終了すると当該進捗情報を参照して回復処理を再開する機能を有する
請求項9記載の記憶装置。 - 上記フラッシュメモリは一括消去単位である消去ブロックを複数有し、各消去ブロックは各々独立した書き込み単位であるページ領域を複数含み、
ひとつの消去ブロック内に存在する一つまたは複数の無効ページ領域の回復処理は、複数の工程に分割され、外部からのアクセスがキャッシュメモリにヒットしてキャッシュへのアクセスが実施される間に、その一部が実行される
請求項9または10に記載の記憶装置。 - 制御回路を有し、
上記フラッシュメモリは、一括消去単位である消去ブロックを有し、各消去ブロックは複数のデータ領域を含み、
上記制御回路は、消去ブロックの消去を実行する前に、各データ領域ごとに、少なくとも領域の一部を読み出し、当該読み出した値から当該データ領域に有効なデータが記録されているか否かを判定し、判定の結果、有効なデータが記録されている場合に、当該データ領域のデータを他の消去ブロックにコピーする
請求項1から11のいずれか一に記載の記憶装置。 - ホストコンピュータと、
主記憶としてフラッシュメモリを含み、上記ホストコンピュータで扱う諸データを記憶するための不揮発性データストレージと、を有し、
上記フラッシュメモリにおける少なくとも一部領域の書き換えは、更新データを空き領域に追記し、元のデータを無効化する追記型の書き込みで実施され、
上記無効化領域を消去して空き領域に回復させる処理が、上記データストレージに対してそれ以外のデータ処理要求の無い待機時に実施され、
前記データストレージに対してデータ処理要求が生じた場合に、上記回復処理を実行中であれば、当該回復処理を中断し、アクセスへの応答処理を行い、当該アクセスへの応答処理が終了し、待機状態になってから上記回復処理を再開する機能を有し、
上記フラッシュメモリは一括消去単位である消去ブロックを複数有し、各消去ブロックは各々独立した書き込み単位であるページ領域を複数含み、
上記回復処理は、回復対象たる無効ページ領域を含む消去ブロックに残存する有効ページ領域のデータを、他の消去ブロックの消去済みの空き領域に退避する処理を含み、
消去対象として選択されたブロックに対して、
別途システム内のメモリ上に設けたフラグを用いて有効ページを判定する処理、およびページ書き込み時に同時記載された論理アドレスと物理アドレスの対応がアドレス管理テーブルと照合しているか否かから有効ページを判定する処理により有効ページを判定し、その退避を行う
コンピュータシステム。 - 上記ホストコンピュータにおいて、データストレージへのデータアクセスの要求が生じた場合に、上記回復処理を実行中であれば、当該回復処理を一時中断し、当該一時中断する際、回復処理の進捗情報をコンピュータシステム内部のいずれかのレジスタまたはメモリ内に保管し、再度回復処理を実行する際には当該進捗情報を参照して処理を再開、継続する
請求項13記載のコンピュータシステム。 - 上記フラッシュメモリは一括消去単位である消去ブロックを複数有し、各消去ブロックは各々独立した書き込み単位であるページ領域を複数含み、
ひとつの消去ブロック内に存在する一つまたは複数の無効ページ領域の回復処理は、複数の工程に分割され、上記データストレージに対してそれ以外のデータ処理要求の無い、待機時にその一部が実施される
請求項14記載のコンピュータシステム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006137844A JP5162846B2 (ja) | 2005-07-29 | 2006-05-17 | 記憶装置、コンピュータシステム、および記憶システム |
US11/493,904 US9183132B2 (en) | 2005-07-29 | 2006-07-27 | Storage device, computer system, and storage system |
KR1020060071459A KR20070015074A (ko) | 2005-07-29 | 2006-07-28 | 기억장치, 컴퓨터 시스템, 및 기억 시스템 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005221714 | 2005-07-29 | ||
JP2005221714 | 2005-07-29 | ||
JP2006137844A JP5162846B2 (ja) | 2005-07-29 | 2006-05-17 | 記憶装置、コンピュータシステム、および記憶システム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2007058840A JP2007058840A (ja) | 2007-03-08 |
JP2007058840A5 JP2007058840A5 (ja) | 2009-04-30 |
JP5162846B2 true JP5162846B2 (ja) | 2013-03-13 |
Family
ID=37695698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006137844A Expired - Fee Related JP5162846B2 (ja) | 2005-07-29 | 2006-05-17 | 記憶装置、コンピュータシステム、および記憶システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9183132B2 (ja) |
JP (1) | JP5162846B2 (ja) |
KR (1) | KR20070015074A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9773562B2 (en) | 2014-06-19 | 2017-09-26 | Denso Corporation | Storage apparatus, flash memory control apparatus, and program |
US10509565B2 (en) | 2016-12-12 | 2019-12-17 | Megachips Corporation | Apparatuses, methods, and computer-readable non-transitory recording mediums for erasure in data processing |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315917B2 (en) | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
JP4961693B2 (ja) * | 2005-07-29 | 2012-06-27 | ソニー株式会社 | コンピュータシステム |
WO2007026393A1 (ja) * | 2005-08-30 | 2007-03-08 | Spansion Llc | 半導体装置およびその制御方法 |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for non-volatile memory with worst-case control data management |
US8074011B2 (en) | 2006-12-06 | 2011-12-06 | Fusion-Io, Inc. | Apparatus, system, and method for storage space recovery after reaching a read count limit |
US9116823B2 (en) | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
KR101490327B1 (ko) | 2006-12-06 | 2015-02-05 | 퓨전-아이오, 인크. | 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법 |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
KR100881597B1 (ko) * | 2007-02-02 | 2009-02-03 | 지인정보기술 주식회사 | 읽기 요청 처리 시스템 및 방법 |
US7804718B2 (en) * | 2007-03-07 | 2010-09-28 | Mosaid Technologies Incorporated | Partial block erase architecture for flash memory |
JP4410271B2 (ja) | 2007-04-25 | 2010-02-03 | 株式会社東芝 | メモリ制御装置 |
JP5074104B2 (ja) * | 2007-06-07 | 2012-11-14 | 株式会社ダイヘン | データ保存装置 |
US9396103B2 (en) * | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
JP4491000B2 (ja) * | 2007-08-17 | 2010-06-30 | 株式会社東芝 | メモリシステム |
JP5087347B2 (ja) * | 2007-09-06 | 2012-12-05 | 株式会社日立製作所 | 半導体記憶装置及び半導体記憶装置の制御方法 |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US8195912B2 (en) | 2007-12-06 | 2012-06-05 | Fusion-io, Inc | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US7719876B2 (en) * | 2008-07-31 | 2010-05-18 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
KR101014149B1 (ko) * | 2008-11-13 | 2011-02-14 | (주)인디링스 | 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한컨트롤러 |
US8055334B2 (en) * | 2008-12-11 | 2011-11-08 | Proteus Biomedical, Inc. | Evaluation of gastrointestinal function using portable electroviscerography systems and methods of using the same |
JP5221332B2 (ja) | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
US9612954B2 (en) | 2008-12-31 | 2017-04-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
KR101056560B1 (ko) * | 2009-02-11 | 2011-08-11 | (주)인디링스 | 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치 |
JP5332800B2 (ja) * | 2009-03-26 | 2013-11-06 | 株式会社デンソー | 記憶装置 |
JP2011128826A (ja) * | 2009-12-17 | 2011-06-30 | Hitachi Ulsi Systems Co Ltd | 記憶装置と半導体不揮発性メモリの記憶方法 |
JP4745465B1 (ja) * | 2010-01-29 | 2011-08-10 | 株式会社東芝 | 半導体記憶装置及び半導体記憶装置の制御方法 |
JP2011192240A (ja) | 2010-03-17 | 2011-09-29 | Sony Corp | 記憶装置および記憶システム |
JP5404483B2 (ja) * | 2010-03-17 | 2014-01-29 | 株式会社東芝 | メモリシステム |
US20120265548A1 (en) * | 2011-04-14 | 2012-10-18 | Searete Llc, A Limited Liability Corporation Of The Sate Of Delaware | Cost-effective resource apportionment technologies suitable for facilitating therapies |
JP5708216B2 (ja) | 2011-05-09 | 2015-04-30 | ソニー株式会社 | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム |
CN102981959B (zh) * | 2011-09-05 | 2015-11-04 | 光宝科技股份有限公司 | 固态存储装置及其垃圾搜集动作的控制方法 |
WO2013108456A1 (ja) * | 2012-01-16 | 2013-07-25 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
TWI605458B (zh) | 2012-04-25 | 2017-11-11 | Sony Corp | Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods |
JP6072428B2 (ja) | 2012-05-01 | 2017-02-01 | テセラ アドバンスト テクノロジーズ インコーポレーテッド | 制御装置、記憶装置、記憶制御方法 |
JP5929485B2 (ja) | 2012-05-08 | 2016-06-08 | ソニー株式会社 | 制御装置、記憶装置、データ書込方法 |
JP5949122B2 (ja) | 2012-05-11 | 2016-07-06 | ソニー株式会社 | 制御装置、記憶装置、記憶制御方法 |
JP5983019B2 (ja) | 2012-05-17 | 2016-08-31 | ソニー株式会社 | 制御装置、記憶装置、記憶制御方法 |
JP5939120B2 (ja) * | 2012-10-04 | 2016-06-22 | 株式会社デンソー | フラッシュメモリのデータ処理方法、及び、このデータ処理用のプログラム |
JP6012432B2 (ja) * | 2012-11-27 | 2016-10-25 | 株式会社メガチップス | 半導体記憶装置 |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
KR20150015621A (ko) * | 2013-07-31 | 2015-02-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP6213040B2 (ja) * | 2013-08-19 | 2017-10-18 | 富士通株式会社 | 半導体記憶装置および半導体記憶装置の制御方法 |
JP6036618B2 (ja) * | 2013-09-13 | 2016-11-30 | カシオ計算機株式会社 | 電子機器及びプログラム |
TWI554944B (zh) | 2014-06-20 | 2016-10-21 | 慧榮科技股份有限公司 | 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法 |
US10101992B2 (en) * | 2015-06-15 | 2018-10-16 | Lear Corporation | Telematics control unit comprising a differential update package |
US9836300B2 (en) * | 2015-06-16 | 2017-12-05 | Lear Corporation | Method for updating vehicle ECUs using differential update packages |
JP2016026345A (ja) * | 2015-09-03 | 2016-02-12 | マイクロン テクノロジー, インク. | メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止 |
US9996268B2 (en) | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
JP2018097769A (ja) * | 2016-12-16 | 2018-06-21 | ルネサスエレクトロニクス株式会社 | 半導体回路設計装置 |
WO2018150820A1 (ja) * | 2017-02-17 | 2018-08-23 | 日立オートモティブシステムズ株式会社 | 情報処理装置 |
CN109213433A (zh) * | 2017-07-07 | 2019-01-15 | 华为技术有限公司 | 闪存设备中数据写入的方法及设备 |
JP7305340B2 (ja) * | 2018-12-11 | 2023-07-10 | キヤノン株式会社 | 情報処理装置 |
FR3104285B1 (fr) * | 2019-12-05 | 2022-05-27 | St Microelectronics Grenoble 2 | Contrôle d’intégrité d’une mémoire |
US20220082286A1 (en) * | 2020-09-11 | 2022-03-17 | Johnson Controls Tyco IP Holdings LLP | Control system for an hvac system |
KR102316532B1 (ko) * | 2021-05-24 | 2021-10-22 | 한양대학교 산학협력단 | 플래시 메모리에서의 런타임 배드 블록 관리 방법 |
US11941281B2 (en) | 2022-04-01 | 2024-03-26 | Nxp B.V. | Non-volative memory system configured to mitigate errors in read and write operations |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430859A (en) * | 1991-07-26 | 1995-07-04 | Sundisk Corporation | Solid state memory system including plural memory chips and a serialized bus |
JP3215237B2 (ja) * | 1993-10-01 | 2001-10-02 | 富士通株式会社 | 記憶装置および記憶装置の書き込み/消去方法 |
JPH07114500A (ja) * | 1993-10-19 | 1995-05-02 | Matsushita Electric Ind Co Ltd | 不揮発性メモリ記憶装置 |
JP3450071B2 (ja) * | 1994-12-19 | 2003-09-22 | 三菱電機株式会社 | Pcカード |
JP3706167B2 (ja) * | 1995-02-16 | 2005-10-12 | 株式会社ルネサステクノロジ | 半導体ディスク装置 |
US5933847A (en) * | 1995-09-28 | 1999-08-03 | Canon Kabushiki Kaisha | Selecting erase method based on type of power supply for flash EEPROM |
US5805501A (en) * | 1996-05-22 | 1998-09-08 | Macronix International Co., Ltd. | Flash memory device with multiple checkpoint erase suspend logic |
US6201739B1 (en) * | 1996-09-20 | 2001-03-13 | Intel Corporation | Nonvolatile writeable memory with preemption pin |
JP4146006B2 (ja) * | 1998-09-28 | 2008-09-03 | 富士通株式会社 | フラッシュメモリを有する電子機器 |
US6704835B1 (en) * | 2000-09-26 | 2004-03-09 | Intel Corporation | Posted write-through cache for flash memory |
JP3957985B2 (ja) | 2001-03-06 | 2007-08-15 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP4762435B2 (ja) * | 2001-05-09 | 2011-08-31 | 富士通セミコンダクター株式会社 | 内部カウンタを複数備えた不揮発性半導体記憶装置 |
JP2004030438A (ja) * | 2002-06-27 | 2004-01-29 | Renesas Technology Corp | マイクロコンピュータ |
JP3931772B2 (ja) * | 2002-09-13 | 2007-06-20 | 株式会社デンソーウェーブ | 携帯情報端末 |
US7206230B2 (en) * | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
JP2008117505A (ja) * | 2006-11-03 | 2008-05-22 | Spansion Llc | 半導体装置およびその制御方法 |
-
2006
- 2006-05-17 JP JP2006137844A patent/JP5162846B2/ja not_active Expired - Fee Related
- 2006-07-27 US US11/493,904 patent/US9183132B2/en active Active
- 2006-07-28 KR KR1020060071459A patent/KR20070015074A/ko not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9773562B2 (en) | 2014-06-19 | 2017-09-26 | Denso Corporation | Storage apparatus, flash memory control apparatus, and program |
DE112015002881B4 (de) | 2014-06-19 | 2022-02-03 | Denso Corporation | Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm |
US10509565B2 (en) | 2016-12-12 | 2019-12-17 | Megachips Corporation | Apparatuses, methods, and computer-readable non-transitory recording mediums for erasure in data processing |
Also Published As
Publication number | Publication date |
---|---|
US9183132B2 (en) | 2015-11-10 |
JP2007058840A (ja) | 2007-03-08 |
KR20070015074A (ko) | 2007-02-01 |
US20070028035A1 (en) | 2007-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5162846B2 (ja) | 記憶装置、コンピュータシステム、および記憶システム | |
JP5130646B2 (ja) | 記憶装置 | |
JP5076411B2 (ja) | 記憶装置、コンピュータシステム | |
JP4910360B2 (ja) | 記憶装置、コンピュータシステム、およびデータ書き込み方法 | |
JP4956922B2 (ja) | 記憶装置 | |
US9448919B1 (en) | Data storage device accessing garbage collected memory segments | |
US20150309927A1 (en) | Hybrid Non-Volatile Memory System | |
JP4961693B2 (ja) | コンピュータシステム | |
US8904083B2 (en) | Method and apparatus for storing data in solid state memory | |
US8745310B2 (en) | Storage apparatus, computer system, and method for managing storage apparatus | |
US7173863B2 (en) | Flash controller cache architecture | |
KR20170035155A (ko) | 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법 | |
JP2008146253A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
JP2008146255A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
JP2008146254A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
KR20210065197A (ko) | 그리디 가비지 컬렉션을 사용하고 있는 메모리 구성요소에서의 주기적인 플러시 | |
JP2009217755A (ja) | メモリシステム | |
JP5338859B2 (ja) | 記憶装置および情報処理システム | |
JP2007334413A (ja) | 記憶装置 | |
JP2008181203A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 | |
JP5617873B2 (ja) | 記憶装置 | |
JP2003242788A (ja) | 不揮発性半導体メモリ装置及びその制御方法 | |
JP2006053950A (ja) | 不揮発性半導体メモリ装置及びその制御方法 | |
JP2004265447A (ja) | 不揮発性半導体メモリ装置のデータ書き込み方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090317 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090317 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120220 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120731 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121029 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20121105 |
|
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: 20121120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121203 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151228 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5162846 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151228 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |