JP4037605B2 - 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 - Google Patents
不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 Download PDFInfo
- Publication number
- JP4037605B2 JP4037605B2 JP2000368849A JP2000368849A JP4037605B2 JP 4037605 B2 JP4037605 B2 JP 4037605B2 JP 2000368849 A JP2000368849 A JP 2000368849A JP 2000368849 A JP2000368849 A JP 2000368849A JP 4037605 B2 JP4037605 B2 JP 4037605B2
- Authority
- JP
- Japan
- Prior art keywords
- management information
- write
- memory unit
- nonvolatile memory
- old
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- 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/7207—Details relating to flash memory management management of metadata or control data
Description
【発明の属する技術分野】
本発明は、不揮発性メモリユニットへのライト中に異常が発生した場合に好適な不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法に関する。
【0002】
【従来の技術】
近年、画像データや音楽データに代表される種々のデジタル情報を保存する記憶装置として、電源がオフされても保存情報が消失する虞のない書き換え可能な少なくとも1つの不揮発性メモリからなる不揮発性メモリユニットを有するメモリシステム、例えばメモリカードが広まってきている。
【0003】
しかし、不揮発性メモリユニットであっても、当該ユニットへのデータライト中に電源供給が遮断されたり、電源電圧が低下するといった異常(ライト異常)時には問題が発生する。つまり、不揮発性メモリ内に書きかけのデータが残ったり、消去(erase)が完全に実行されなかったりして不揮発性メモリのデータ管理用の情報(管理情報)が破壊されてしまうために、その後正しい電源電圧の電源を供給しても正常にライトできなくなったり、不揮発性メモリの管理情報がないためにデータが全て失われてしまうといった問題が発生する。
【0004】
そこで、特開平7−200418号公報では、半導体メモリ装置(不揮発性メモリユニット)へのデータライト中に電源供給が遮断されても、電源供給後にデータの書き込みを再開できるようにした技術が提案されている。ここでは、データ記憶部(を構成する不揮発性半導体メモリなど)に電源が供給されなくてもデータを一時的に記憶できる第1のメモリと、その第1のメモリから上記データ記憶部へのデータ転送に必要な制御情報を、データ記憶部に電源が供給されなくても一時的に記憶できる第2のメモリと、上記データ転送時に電源の供給が遮断されたときに、その転送中の所定単位のデータを電源供給再開後にデータ記憶部に再書き込みするための制御手段とを備えている。
【0005】
【発明が解決しようとする課題】
上記公報に記載された技術では、データ記憶部(不揮発性メモリユニット)へのデータライト中に電源供給が遮断されても、電源供給後にデータの書き込みを再開できるようするためには、データ記憶部用のメモリとは別に、電源が供給されていなくてもデータを保持できるメモリを備える必要があった。
【0006】
本発明は上記事情を考慮してなされたものでその目的は、不揮発性メモリユニットへのライト中に何らかの要因でライト異常が発生した場合でも、不揮発性メモリユニット用のメモリとは別にデータを保持できるメモリを必要とすることなく、不揮発性メモリユニットの状態を正常に保ち、ライト異常の要因が解消された後も正常に不揮発性メモリユニットが使用できるようにすることにある。
【0007】
【課題を解決するための手段】
本発明は、少なくとも1つの不揮発性メモリから構成される不揮発性メモリユニットであって、当該メモリユニットの管理情報が保存される不揮発性メモリユニットを制御するコントローラにおいて、不揮発性メモリユニットへのデータライトの終了後に、そのデータライトが反映された新たな管理情報を、その時点までは最新であった管理情報が保存されている不揮発性メモリユニットの領域とは別領域にライトする手段と、この管理情報ライト手段による管理情報ライトの終了後に、それまで最新であった管理情報に対応付けて当該管理情報が旧管理情報であることを示す旧管理情報フラグをライトする手段と、初期化時に不揮発性メモリユニットから最新の正常な管理情報を検索する手段と、この検索手段により最新の正常な管理情報が見つけられなかった場合、上記旧管理情報フラグに対応付けられている正常な旧管理情報をもとに最新の管理情報を復元する手段とを備えたことを特徴とする。
【0008】
このような構成のコントローラによって不揮発性メモリユニットを制御することにより、データライトの終了後に、新たな管理情報が、その時点まで最新であった管理情報を消去せずに残した状態で、不揮発性メモリユニットの別領域にライトされる。そして、それまで最新であった管理情報には旧管理情報であることを示す旧管理情報フラグがつけられる。これにより、たとえ不揮発性メモリユニットへのライト中にライト異常が発生して、不揮発性メモリユニット上の最新の管理情報が失われてしまい、そのままでは不揮発性メモリユニットが全く使用できないような異常な状態になる恐れがある場合でも、旧管理情報フラグがつけられている旧管理情報を、例えばそのまま使用して最新の管理情報として復元することで、不揮発性メモリユニット(を備えたメモリシステム)が異常になるのを防止できる。
【0009】
ここで、データライトに際しては、不揮発性メモリユニット(の物理アドレス空間)を構成する複数の物理ブロックのうちの空きブロックを探して当該ブロックをイレースし、そのイレースしたブロックにデータライトを行えはよい。同様に、管理情報ライトに際しても、空きブロックを探して当該ブロックをイレースし、そのイレースしたブロックに管理情報ライトを行えばよい。この他に、上記管理情報ライトと並行して、当該管理情報のページ毎に、当該管理情報がライトされていることを示す管理情報フラグをライトする手段を更に備えるならば、上記検索手段では、不揮発性メモリユニットから管理情報フラグを探すことで、検索する管理情報を絞ることができ、管理情報検索を効率的に行うことが可能となる。
【0010】
また本発明は、管理情報ライトの終了後、旧管理情報フラグライトの前に、当該管理情報ライトが最後まで実行されたことを示すエンドフラグを、当該管理情報に対応付けてライトする手段とを更に備え、エンドフラグに対応付けられていて旧管理情報フラグには対応付けられていない管理情報を最新の管理情報とすることを特徴とする。
【0011】
このような構成においては、たとえ不揮発性メモリユニットへのライト中にライト異常が発生して、不揮発性メモリユニット上の最新の管理情報が失われてしまい、そのままでは不揮発性メモリユニットが全く使用できないような異常な状態になる恐れがある場合でも、管理情報ライトが最後まで実行されたことを示すエンドフラグをチェックすることで書きかけの管理情報は使用しないように制御されるため、不揮発性メモリユニットが異常な状態になるのを防止できる。
【0012】
また本発明は、エンドフラグライトの終了後、旧管理情報フラグライトの前に、上記管理情報ライト手段によりライトされた管理情報をリードして、当該管理情報が正しくライトされているか否かを確認するベリファイを行い、ベリファイエラーの場合に管理情報ライトを再実行させるベリファイ手段を更に備えたことを特徴とする。
【0013】
このような構成においては、ライトされた管理情報のベリファイを行うことで、ライト時に発生する不揮発性メモリユニットのエラーを検出し、再度管理情報ライトをやり直すことでライトエラーをなくすことができる。ここでライトされた管理情報をリードしてECCチェックのみでベリファイを行うならば、高速にベリファイを実行することができる。また、ライトされた管理情報をリードし、そのリードした管理情報と元の管理情報とのデータコンペアによりベリファイを行うならば、正確にベリファイを実行することができる。また、ECCチェックとデータコンペアとを併用するならば、より一層正確にベリファイできる。
【0014】
以上の不揮発性メモリのコントローラに係る発明は、不揮発性メモリユニットとコントローラとを備えたメモリシステムに係る発明としても成立する。ここで不揮発性メモリユニットの管理情報は、当該メモリユニットを対象とするリード、ライト、イレースなどの処理を行うのに必要な情報であり、頻繁にアクセスされる。そこで、上記コントローラが使用する情報の格納に用いられる、不揮発性メモリより高速アクセスが可能な揮発性メモリを更に備えると共に、上記コントローラに、初期化時に不揮発性メモリユニットから管理情報をリードしてそのコピーを上記揮発性メモリに格納する管理情報リード手段を設けるとよい。このように、不揮発性メモリより高速で、且つデータの書き換え時にイレース動作が不要な揮発性メモリに管理情報のコピーを用意して、通常の不揮発性メモリユニットアクセス時には当該揮発性メモリ内の管理情報が利用可能な構成とすることで、高速処理を実現することが可能となる。
【0015】
また、以上の不揮発性メモリのコントローラに係る本発明は、当該コントローラで適用される処理手順からなる方法(不揮発性メモリユニットの制御方法)に係る発明としても成立する。ここで、ライトすべきデータが論理的に複数のブロックにまたがる場合、当該データが全てライトし終えた後に、そのデータライトが全て反映された新たな管理情報のライトが実行される構成とするとよい。もし、ブロック単位でデータライトを行い、そのブロック単位のデータライト(ブロックライト)の都度、そのブロックライトが反映された新たな管理情報をライトするならば、その途中でライト異常が発生すると、不揮発性メモリユニット上にライト異常発生前のデータはライトされていて、ライト異常発生後のデータはライトされていない状態になる。このように論理的に複数のブロックにまたがるデータ同士で不整合が発生しないように、全てのデータのライトが終了した後に、管理情報をライトすることで、論理的に複数のブロックにまたがるデータの一貫性を保つことができる。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【0017】
[構成]
図1は本発明の一実施形態に係るメモリシステム10の全体構成を示すブロック図である。
【0018】
図1のメモリシステム10は、パーソナルコンピュータ、電子カメラ、ゲーム機を始めとする各種電子機器(ホストシステム)のカードスロットに装着して使用されるメモリカードであるものとする。このメモリシステム(メモリカード)10は、コントローラ11と、RAM12と、不揮発性メモリユニット13と、バス14とを備えている。
【0019】
コントローラ11は、不揮発性メモリユニット13を制御するもので、マイクロプロセッサ(MPU)111及び制御プログラム(ファームウェア)が予め格納されているROM112を内蔵する。コントローラ11(内のマイクロプロセッサ111)は、図1のメモリシステム(メモリカード)10が装着されるカードスロットを備えたホストシステム(例えばパーソナルコンピュータ)から送られるコマンドをROM112に格納されている制御プログラムに従って解釈して実行する。
【0020】
RAM12は揮発性メモリである。RAM12は、コントローラ11(内のマイクロプロセッサ111)の作業用領域の他に、後述する論理ブロック/物理ブロック変換テーブル131及びアサインテーブル132のコピー(である論理ブロック/物理ブロック変換テーブル121、アサインテーブル122)を格納するテーブル領域120を提供する。
【0021】
不揮発性メモリユニット13は、少なくとも1つの不揮発性メモリ(不揮発性メモリ素子)から構成される。ここでは、不揮発性メモリユニット13は、書き換えが可能なk個の不揮発性メモリ130-1〜130-kから構成されるものとする。
【0022】
不揮発性メモリユニット13(内の不揮発性メモリ)をリード/ライトするためのアクセスの単位をページと呼ぶ。また、不揮発性メモリユニット13(内の不揮発性メモリ)に記憶されているデータを消去(erace)するためのアクセスの単位をブロックと呼ぶ。このブロックは、1以上の所定数のページ、例えばページ1〜ページmのmページから構成される。このブロックとページとの関係を図2に示す。
【0023】
不揮発性メモリユニット13は、複数のブロック(物理ブロック)、例えばn個のブロック0〜ブロック(n−1)から構成される。この不揮発性メモリユニット13のブロック構成を図3に示す。
【0024】
不揮発性メモリユニット13内の物理ブロックは、ホストシステムから見ることはできない。ホストシステムから見えるのは不揮発性メモリユニット13(内の全物理ブロックの一部)が割り当てられている論理アドレス空間を構成する論理ブロックである。このため、ホストシステムから論理ブロック(を示す論理ブロック番号)を指定してメモリシステム10内の不揮発性メモリユニット13をアクセスするには、メモリシステム10内で、論理ブロック(を示す論理ブロック番号)から物理ブロック(を示す物理ブロック番号)への変換が必要となる。
【0025】
そこで、この変換を可能とするために、不揮発性メモリユニット13には、論理ブロック(を示す論理ブロック番号)と当該論理ブロック(を示す論理ブロック番号)に割り当てられている物理ブロック(を示す物理ブロック番号)との対応を示す管理情報(割り当て情報)が用意される。ここでは、この管理情報として、図4に示すデータ構造の論理ブロック/物理ブロック変換テーブル131が用いられる。本実施形態において、変換テーブル131の各エントリの並び順で決まるエントリ番号は、そのまま論理ブロック番号を表すようになっている。このテーブル131の各エントリには、そのエントリに固有の論理ブロック番号に対応付けられている物理ブロック番号が設定されている。なお、変換テーブル131の各エントリに、論理ブロック番号及び当該論理ブロック番号に対応付けられている物理ブロック番号の対が設定されるようにしても構わない。変換テーブル131には、1ブロックのページ数mに満たない複数ページが割り当てられる。
【0026】
また、不揮発性メモリユニット13には、当該ユニット13を構成する物理ブロックの中で新たに使用可能な物理ブロックを示す管理情報、例えば各物理ブロック毎に、そのブロックが使用中か否(空き状態にある)かを示す管理情報が用意される。ここでは、この管理情報として、図5に示すデータ構造のアサインテーブル132が用いられる。本実施形態において、アサインテーブル132の各エントリの並び順で決まるエントリ番号がそのまま物理ブロック番号を表すようになっている。このテーブル131の各エントリには、そのエントリに固有の物理ブロック番号の物理ブロックが使用中であるか否(空きである)かを示すフラグ(フラグデータ)が設定されている。アサインテーブル132には、1ページが割り当てられる。このアサインテーブル132及び上記変換テーブル131は、任意の同一ブロック内の所定の領域に格納される。またアサインテーブル132及び上記変換テーブル131のコピーがアサインテーブル122及び変換テーブル121としてRAM12内のテーブル領域120に格納される。
【0027】
不揮発性メモリユニット13を構成する各ページは、図6に示すように、例えばバイト0からバイト511の512バイトのデータ部601と、バイト512からバイト527の16バイトの冗長部602とからなる。この冗長部602は、管理情報フラグF1、エンドフラグEF及び旧管理情報フラグF2が設定される(書き込まれる)それぞれ1バイトのフラグフィールド602a,602b及び602cと、エラー訂正符号(ECC)が設定されるECCフィールド(図示せず)とを含む。ここでは、バイト512がフラグF1の、バイト513がフラグEFの、そしてバイト514がフラグF2の、それぞれフラグフィールドをなす。フラグF1はオン(有効)状態で、該当ページ(のデータ部601)に管理情報、つまり変換テーブル131の一部またはアサインテーブル132が格納されていることを示す。フラグEFはオン(有効)状態で、管理情報の書き込み、つまりアサインテーブル132及び変換テーブル131の書き込みが最後まで終了していることを示す。フラグF2はオン(有効)状態で、格納されている管理情報が古くなったこと、つまり旧管理情報(無効管理情報)が格納されていることを示す。
【0028】
本実施形態では、フラグフィールド(602a,602b,602c)の全ビットに“1”のデータが書かれている状態により、対応するフラグ(F1,EF,F2)のオフ(無効)状態が示される。この状態で、フラグフィールドの全ビットに“0”のデータを書くことにより、対応するフラグをオン(有効)状態に設定できる。つまり、フラグフィールド602a,602b,602cにそれぞれ“0”のデータを書くことは、有効なフラグF1,EF,F2を書くことを意味する。なお不揮発性メモリユニット13では、“0”が書かれている任意のビットを“1”に書き換えることはできない。したがって、フラグ(F1,EF,F2)をオフ(無効)状態に設定するには、該当するブロック内の全ビットに“1”のデータを書き込むイレースが必要となる。
【0029】
今、不揮発性メモリユニット13内のブロック(物理ブロック)iに変換テーブル131及びアサインテーブル132が格納されているものとすると、このブロックi内の変換テーブル131及びアサインテーブル132の格納形態は、図7のようになる。即ち、ブロックiの先頭ページ1のデータ部601にはアサインテーブル132が格納され、ブロックiのページ1〜ページ6のデータ部601には、アサインテーブル132が分割して格納される。このように、ブロックiのページ1〜ページ6にアサインテーブル132及び変換テーブル131、即ち管理情報が書き込まれ、しかも当該管理情報の書き込みが最後まで終了しており、更に当該管理情報が最新の管理情報であり、旧管理情報でない場合には、ページ1〜ページ5の冗長部602内のフラグF1,EF,F2は、それぞれオン(0),オフ(1),オフ(1)である。またページ6の冗長部602内のフラグF1,EF,F2は、それぞれオン(0),オン(0),オフ(1)である。
【0030】
[動作]
次に、図1の構成のメモリシステム(メモリカード)10における動作について、(1)初期化時と、(2)ライト時を例に順に説明する。
【0031】
(1)初期化時
メモリシステム10の初期化(立ち上げ)時には、コントローラ11は、論理ブロックから物理ブロックへの変換などのために必要な管理情報、即ち論理ブロック/物理ブロック変換テーブル131及びアサインテーブル132を不揮発性メモリユニット13から検索してリードし、RAM104へ格納する動作を実行する。この初期化時の管理情報の検索処理の詳細について、図8のフローチャートを参照して説明する。
【0032】
コントローラ11はまず、検索する物理ブロックを表すインデックス(index)を、管理情報が格納され得る不揮発性メモリユニット13内の領域(管理情報の保存領域)のスタートブロックに設定する(ステップS1)。ここでは、管理情報の保存領域は、不揮発性メモリユニット13を構成する全ての物理ブロックの範囲とする。この場合、不揮発性メモリユニット13の物理ブロック範囲のスタートブロック及びエンドブロックは、それぞれ管理情報保存領域のスタートブロック及びエンドブロックに一致する。
【0033】
次にコントローラ11は、indexの示すブロックの先頭ページ1から、当該ブロックに管理情報が格納(ライト)されているか否かを示す管理情報フラグF1をリードする(ステップS2)。もし、リードしたフラグF1がオン(有効)であったならば、即ち有効なフラグF1がライトされていたならば(ステップS3)、コントローラ11はindexの示すブロックには管理情報が格納されているものとしてステップS4へ進む。これに対し、リードしたフラグF1がオフ(無効)であったならば、即ち有効なフラグF1がライトされていなかったならば(ステップS3)、コントローラ11はindexの示すブロックには管理情報が格納されていないものとしてステップS10へ進む。
【0034】
ステップS4においてコントローラ11は、indexの示すブロックから管理情報、即ち変換テーブル131及びアサインテーブル132をリードし、そのコピーである変換テーブル121及びアサインテーブル122をRAM104のテーブル領域120へ格納する。そしてコントローラ11は、リードしたデータ(管理情報)が正常ならば(ステップS5)、ステップS6へ進む。これに対し、リードした管理情報にエラーがあれば、コントローラ11はステップS10へ進む。
【0035】
ステップS6においてコントローラ11は、管理情報の書き込みが最後まで終了したか否かを示すエンドフラグEF及び旧管理情報であるか否かを示す旧管理情報フラグF2を、管理情報が書かれている最終ページ(ここではページ6)からリードする。そしてコントローラ11は、リードしたフラグEFがオン状態にあり、且つフラグF2がオフ状態にあるならば(ステップS7)、indexの示すブロックに格納されている管理情報(変換テーブル131及びアサインテーブル132)が最後まで正常に書かれた最新の管理情報であるとして、つまり最新の管理情報が検索できたとして検索処理を終了する。
【0036】
これに対し、フラグEFがオン状態にない場合には(ステップS8)、コントローラ11はこの管理情報は書きかけの情報であり、したがって使用できないものと判断する。この場合、コントローラ11はステップS10へ進む。またフラグEF及びF2が共にオン状態にあるならば(ステップS8)、コントローラ11はindexの示すブロックに格納されている管理情報(変換テーブル131及びアサインテーブル132)は無効化された古い管理情報(旧管理情報)であり、使用しないものと判断し、その際のindexをRAM12内の所定領域に一時的に格納して(ステップS9)、ステップS10へ進む。
【0037】
ステップS10においてコントローラ11は、次のブロックを検索するためにindexをインクリメントする。そしてコントローラ11は、インクリメント後のindexが管理情報の保存領域内を指しているか否かを判定する(ステップS11)。もし、保存領域内であれば、コントローラ11はインクリメント後のindexを用いてステップS2以降の処理を再度実行する。これに対し保存領域外であれば、ステップS12へ進む。
【0038】
ステップS12においてコントローラ11は、最新の正常な管理情報が見つからなかったことから、ステップS9でRAM12内の所定領域に一時的に格納しておいたindexの示すブロックに格納されている管理情報、即ち旧管理情報を示すフラグF2が有効なために使用されなかった管理情報(つまり旧管理情報)から最新の管理情報を作成し直す(復元する)エラー処理を実行する。ここでは、旧管理情報がそのまま最新の管理情報として用いられ、テーブル領域120内の管理情報もその新管理情報に書き換えられる。これにより、以後ステップS12のエラー処理で作成された管理情報が用いられる。
【0039】
なお、以上の説明では、管理情報を管理情報保存領域のスタートブロックからインクリメントする方向へ検索したが、エンドブロックからスタートブロック方向へと検索してもよい。管理情報保存領域内のブロックが全て検索対象になる方法ならば、どのような順番で検索してもよい。また冗長部602内のフラグF1,EF,F2をステップS2とステップS6とに分けてリードしているが、ステップS2でまとめてリードしてもよい。
【0040】
コントローラ11は、以上のようにして検索した管理情報、即ち変換テーブル131及びアサインテーブル132(のコピーであるRAM12内の変換テーブル121及びアサインテーブル122)を用いて、不揮発性メモリユニット13を有するメモリシステム10の初期化を行う。
【0041】
(2)ライト時
次にメモリシステム(メモリカード)10におけるライト時の動作(ライト要求処理)について、図9のフローチャートを参照して説明する。
【0042】
コントローラ11は、ホストシステムからライト要求が与えられた場合、RAM12のテーブル領域120に格納されている管理情報の1つであるアサインテーブル122を検索して、不揮発性メモリユニット13内のいずれの物理ブロックがデータライトに使用できる空きブロックであるかをサーチする(ステップS21)。
【0043】
次にコントローラ11は、ステップS21で見つけられた空きブロックをイレース(erase)する(ステップS22)。ブロックのイレースは、当該ブロック内の全ビットに“1”のデータを書き込む動作により行われる。
【0044】
そしてコントローラ11は、ステップS22でイレースしたブロックに、ホストから指定されたデータをライトして(ステップS23)、ステップS24へ進む。ここで、指定されたデータが1ブロックに満たない場合で、且つRAM12のテーブル領域120に格納されている変換テーブル121により、指定された論理ブロックに割り当てられている物理ブロックが存在することが示されている場合、その物理ブロックのデータと指定されたデータとから1ブロック分の新たなライトデータを生成し、当該新たなライトデータを上記イレースしたブロックにライトする。この新たなライトデータは、物理ブロックのデータのうち、指定されたデータに対応するページが当該指定されたデータに置き換えられたものである。また、複数の論理ブロックにまたがるアクセス要求の場合、つまり論理的に複数のブロックにまたがるアクセス要求の場合には、同数の空き物理ブロックを探してイレースし(ステップS21,S22)、その同数のブロックにブロック単位でデータを全てライトしてから(ステップS23)、ステップS24へ進む。
【0045】
ステップS24においてコントローラ11は、RAM12のテーブル領域120に格納されている管理情報の1つであるアサインテーブル122を検索し、今度は不揮発性メモリユニット13内のいずれの物理ブロックが管理情報ライトに使用できる空きブロックであるかをサーチする。このステップS24の処理自体は、上記ステップS21と同様である。
【0046】
次にコントローラ11は、ステップS24で見つけられた空きブロックをイレースする(ステップS25)。
そしてコントローラ11は、ステップS25でイレースしたブロックの先頭ページ1から順に、そのページのデータ部601に、管理情報、即ちアサインテーブル132及び変換テーブル131をページ単位でライトとすると共に、そのページの冗長部602内のフラグフィールドに有効な管理情報フラグF1をライトする(ステップS26)。これにより、有効な管理情報フラグF1がライトされたページ、即ちフラグF1がオンされたページには管理情報がライトされていることが示される。
【0047】
ここで、ステップS25でイレースしたブロックに書き込まれる管理情報(アサインテーブル132及び変換テーブル131)は、現在RAM12のテーブル領域120に格納されている管理情報(アサインテーブル122及び変換テーブル121)、即ちステップS23でのデータライトのために利用された管理情報をもとに生成することができる。具体的には、アサインテーブル122の各エントリのうち、ステップS22及びS25でイレースされた全てのブロックに対応するエントリが、空きを示す状態から使用中を示す状態に変更された新たなアサインテーブル132が生成される。また、変換テーブル121の各エントリのうち、ホストシステムから指定された論理ブロックに対応するエントリの内容が、ステップS25でイレースされた物理ブロックを指す物理ブロック番号に変更された新たな変換テーブル131が生成される。
【0048】
コントローラ11は、上記イレースしたブロックに管理情報を全てライトし終えると、即ち当該ブロックのページ6のデータ部601に変換テーブル131の最終ページ部分を書き終えると共に当該ページ6の冗長部602内のフラグフィールド602aに有効な管理情報フラグF1を書き込むと(ステップS26)、この冗長部602内のフラグフィールド602bに有効なエンドフラグEFをライトする(ステップS27)。この有効なフラグEFのライト操作、即ちフラグEFのオン操作により、管理情報ライトが最後まで終了したことが示される。
【0049】
次にコントローラ11は、管理情報ライトが正常に行えたか否かをチェックするために、ライトした管理情報のベリファイを行う(ステップS28)。このベリファイの方法としては、ライトした管理情報をリードして冗長部602のECCフィールドに設定されているECCに基づくエラー検出処理(ECCチェック)を行う第1の方法、ライトした管理情報をRAM12の所定領域に一時的に格納しておき、ライトした管理情報をリードして、RAM12に一時的に格納しておいた元の管理情報と比較して一致の有無をチェックするデータコンペアを行う第2の方法、またはECCチェックとデータコンペアの両方を用いてベリファイを行う第3の方法が適用可能である。
【0050】
コントローラ11は、ステップS28でのベリファイの結果が正常でなかった場合には(ステップS29)、ステップS24以降の処理を再度実行する。
これに対し、ステップS28でのベリファイの結果が正常であったならば(ステップS29)、コントローラ11は不揮発性メモリユニット13内の古い管理情報がライトされているブロックに旧管理情報であることを示す有効な旧管理情報フラグF2をライトして、古い管理情報が使用されないようにする(ステップS30)。具体的には、古い管理情報がライトされているブロック内のページ1〜ページ6の冗長部602のフラグフィールド602cに有効な旧管理情報フラグF2をライトする。この段階で、RAM12のテーブル領域120に格納されている管理情報(変換テーブル121及びアサインテーブル122)を、上記ステップS26でライトされた最新の管理情報のコピーに変更する。
【0051】
[電源遮断時のタイミングの違いによるメモリシステム10の状態]
次に、以上のような処理を行うことで、メモリシステム(メモリカード)10がホストシステムのカードスロットから引き抜かれたなどの要因で、当該メモリシステム10への電源供給が遮断された際のタイミングの違いにより、当該メモリシステム10がどのような状態になるかについて以下に説明する。
【0052】
(1)ステップS21の実行前
ステップS21の実行前にメモリシステム10への電源供給が遮断された場合、まだライト処理が何も実行されていないことになる。このため、不揮発性メモリユニット13はライト前の状態のままであり、問題はない。
【0053】
(2)ステップS21の実行中
ステップS21はデータライトするブロックをサーチする処理である。したがってステップS21の実行中に電源が遮断されても、不揮発性メモリユニット13に対しては何も実行されていない。つまり不揮発性メモリユニット13はライト前の状態のままであり、問題はない。
【0054】
(3)ステップS21とステップS22との間
上記(2)で述べたように、ステップS21はデータライトするブロックをサーチする処理であり、不揮発性メモリユニット13に対しては何も実行されていない。したがって、このステップS21とステップS22との間で電源が遮断されても、不揮発性メモリユニット13はライト前の状態のままであり、問題はない。
【0055】
(4)ステップS22の実行中
ステップS22の処理は、データライトするブロックをイレースする処理である。したがってステップS22の実行中に電源が遮断されると、ステップS21で見つけられたブロックのイレースが途中で終了してしまう。しかし再び電源が供給された後にこのブロックへのライトが発生したとしても、ライト前には必ずイレースを行うため、問題はない。
【0056】
(5)ステップS22とステップS23との間
データライトするブロックをステップS22でイレースした後、ステップS23でのデータライト前に電源が遮断されても、空きブロックをイレースしただけなので、問題はない。
【0057】
(6)ステップS23の実行中
ステップS23でのデータライト実行中に電源が遮断されると、そのブロックには書きかけのデータが残ってしまう。しかしライトが実行されたブロックは空きブロックであり、管理情報は更新前であるためライト実行前の状態を保持している。このため問題はない。
【0058】
(7)ステップS23とステップS24との間
ステップS23でのデータライトの実行後に電源が遮断されると、データライトは終了したが管理情報が更新されていない状態になる。しかし、上記(6)で述べたように、ライトを実行したブロックは空きブロックであり、管理情報は更新されていないためライト実行前の状態を保持している。このため問題はない。
【0059】
(8)ステップS24の実行中
ステップS24での管理情報ライト用ブロックのサーチ中に電源が遮断されても、上記(7)の状態と同じなので、問題はない。
【0060】
(9)ステップS24とステップS25との間
ステップS24での管理情報ライト用ブロックのサーチを実行後、ステップS25での管理情報ライト用ブロックのイレース実行前に電源が遮断されても、上記(7)の状態と同じなので、問題はない。
【0061】
(10)ステップS25の実行中
ステップS25での管理情報ライト用ブロックのイレース実行中に電源が遮断されると、そのブロックのイレースが途中で終了してしまう。しかし再び電源が供給された後にこのブロツクへのライトが発生したとしても、ライト前には必ずイレースを行うため、問題はない。また、データライトは終了したが管理情報が更新されていない状態になってしまうが、上記(7)の場合と同じ理由により問題はない。
【0062】
(10)ステップS25とステップS26との間
ステップS25で管理情報ライト用ブロックをイレースした後、そのイレースしたブロックへのステップS26での管理情報ライト前に電源が遮断されても、空きブロックをイレースしただけなので、問題はない。またデータライトは終了したが管理情報が更新されていない状態になってしまうが、上記(7)の場合と同じ理由により問題はない。
【0063】
(11)ステップS26の実行中
ステップS26での管理情報ライトの実行中に電源が遮断されると、書きかけの管理情報ができてしまう。しかし、次のステップS27は実行されておらず、管理情報ライトが最後まで終了していことを示す有効なエンドフラグEFはライトされていないため、再び電源が供給されたときにはこの管理情報は書きかけと判断されて使用されない。また古い管理情報は不揮発性メモリユニット13にそのまま残っているため、ライト実行前の状態を保持している。したがって、前記ステップS12での処理で、この古い管理情報に基づいて新たな管理情報が生成できる。また、データライトは終了したが管理情報が更新されていない状態になってしまうが、上記(7)の場合と同じ理由により問題はない。
【0064】
(12)ステップS26とステップS27との間
ステップS26での管理情報ライトを実行した後、ステップS26での有効なエンドフラグEFのライト前に電源が遮断されると、管理情報はライトされたが、エンドフラグEFが無効(オフ)状態のままになってしまう。しかし、エンドフラグEFが無効(オフ)状態のため、即ち有効でないため、再び電源が供給されたときにはこの管理情報は書きかけと判断されて使用されない。また古い管理情報は不揮発性メモリユニット13にそのまま残っているため、ライト実行前の状態を保持している。したがって、この古い管理情報から新たな管理情報が生成できる。また、データライトは終了したが管理情報が更新されていない状態になってしまうが、上記(7)の場合と同じ理由により問題はない。
【0065】
(13)ステップS27の実行中
ステップS27での有効なエンドフラグEFのライト中に電源が遮断されると、管理情報はライトされたが、エンドフラグEFが無効(オフ)状態のままになってしまう。しかし、エンドフラグEFが有効でないため、再び電源が供給されたときにはこの管理情報は書きかけと判断されて使用されない。また古い管理情報は不揮発性メモリユニット13にそのまま残っているため、ライト実行前の状態を保持している。また、データライトは終了したが管理情報が更新されていない状態になってしまうが、上記(7)の場合と同じ理由により問題はない。
【0066】
(14)ステップS27とステップS30との間
ステップS27での有効なエンドフラグEFのライト後、ステップS30で古い管理情報に旧管理情報(無効管理情報)であることを示す旧管理情報フラグF2をつける前に電源が遮断されると、正常と判断される管理情報が、新たにライトされたものと、古いものとの2つ存在してしまう。このため、再び電源が供給されたときは、新たにライトされた管理情報を使用する場合と,古い管理情報を使用する場合の2通りが考えられる。
【0067】
新しい管理情報を使用した場合には、ホストシステムから要求されたライトが正常に終了した状態になる。しかし古い管理情報を使用した場合にはホストシステムから要求されたライトはまだ実行されていない状態になる。しかしホストシステムからのライト実行中に電源が遮断されたので、どちらの状態であってもメモリシステム(メモリカード)10は異常にはならないので問題ない。
【0068】
(15)ステップS30の実行中
ステップS30で有効な旧管理情報フラグF2のライト中に電源が遮断されると、つまり古い管理情報のブロックライト中に電源が遮断されると、古い管理情報が異常になってしまう場合が考えられる。しかし本実施形態では、図8のフローチャートに示したように、再び電源が供給されたときに管理情報が正しいかをチェックしてを行って、正しい管理情報が使用される。したがって古い管理情報が異常であったなら、古い管理情報は使用されずに、新しい管理情報が使用される。これによりホストシステムから要求されたライトが正常に終了した状態になるため問題はない。
【0069】
(16)ステップS30の終了後
ステップS30での有効な旧管理情報フラグF2のライト後に電源が遮断されても、正常にライトが終了しているため問題はない。
【0070】
以上の説明から明らかなように、本実施形態においては、メモリシステム(メモリカード)10がホストシステムのカードスロットから引き抜かれたなどの要因で、当該メモリシステム10への電源供給がどのようなタイミングで遮断されたとしても、不揮発性メモリユニット13へのライトが正常に実行できない状況になったり、書きかけの管理情報を使用してしまうことによりデータがリードできなくなってしまうような状況の発生を防止できる。このような効果は、電源供給が遮断された場合に限らず、電源電圧が低下した場合にも同様に得られる。
【0071】
以上に述べた実施形態では、不揮発性メモリユニット13の管理情報として当該ユニット13の全ブロックに対して1つの変換テーブル131と1つのアサインテーブル132とを用意する場合について説明したが、これに限るものではない。例えば、不揮発性メモリユニット13の物理アドレス空間と、不揮発性メモリユニット13が割り当てられている論理アドレス空間とを、それぞれ一定のブロック数p,qからなるr個のゾーン0〜ゾーンr−1に分割し、対応するゾーンi(i=0〜r−1)毎に、そのゾーン内の各論理ブロックに割り当てられている物理ブロックを示す変換テーブル131とそのゾーン内の使用可能な物理ブロックを示すアサインテーブル132との組を用意するようにしても構わない。ここでは、RAM12内のテーブル領域120には、全ての変換テーブル131とアサインテーブル132との組のコピーを格納するのではなく、一部の組のみのコピーを格納するとよい。
【0072】
このようにすると、テーブル領域120の必要サイズを減らして、RAM12の必要容量を低減できる。但し、ホストシステムから不揮発性メモリユニット13へのアクセスが要求された場合に、論理ブロックから物理ブロックへの変換に必要な変換テーブル131のコピーがテーブル領域120に存在するかを判定し、存在しない場合には、変換テーブル131とアサインテーブル132との組のコピーを入れ替える必要がある。
【0073】
また、以上に述べた実施形態では、不揮発性メモリユニット13を制御するコントローラ11が当該ユニット13を内蔵するメモリシステム10に設けられている場合について説明したが、メモリシステム10を利用するホストシステム側に設けられていても構わない。また、RAM12がコントローラ11に内蔵されていても構わない。
【0074】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0075】
【発明の効果】
以上詳述したように本発明によれば、不揮発性メモリユニットへのライト中に何らかの要因でライト異常が発生して、不揮発性メモリユニット上の最新の管理情報が失われてしまい、そのままでは不揮発性メモリユニットが全く使用できないような異常な状態になる恐れがある場合でも、不揮発性メモリユニット用のメモリとは別にデータを保持できるメモリを必要とすることなく、それ以前の管理情報を利用して最新の管理情報として復元できる。これにより、不揮発性メモリユニットの状態を正常に保ち、ライト異常の要因が解消された後も正常に不揮発性メモリユニットが使用できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るメモリシステム10の全体構成を示すブロック図。
【図2】不揮発性メモリユニット13をリード/ライトするためのアクセスの単位であるページと、不揮発性メモリユニット13の消去のアクセスの単位であるブロックとの関係を示す図。
【図3】不揮発性メモリユニット13のブロック構成を示す図。
【図4】論理ブロック/物理ブロック変換テーブル131のデータ構造例を示す図。
【図5】アサインテーブル132のデータ構造例を示す図。
【図6】ページのデータ構造例を示す図。
【図7】アサインテーブル132及び変換テーブル131が格納されている不揮発性メモリユニット13内のブロックにおける、当該テーブル132,131のページ毎の格納形態とフラグF1,EF,F2との関係を示す図。
【図8】同実施形態における初期化時の動作(管理情報検索処理)を説明するためのフローチャート。
【図9】同実施形態におけるライト時の動作(ライト要求処理)を説明するためのフローチャート。
【符号の説明】
10…メモリシステム
11…コントローラ
12…RAM
13…不揮発性メモリユニット
111…マイクロプロセッサ(MPU)
120…テーブル領域
121,131…論理ブロック/物理ブロック変換テーブル(管理情報)
122,132…アサインテーブル(管理情報)
130-1〜130-k…不揮発性メモリ
601…データ部
602…冗長部
602a,602b,602c…フラグフィールド
Claims (7)
- 少なくとも1つの不揮発性メモリから構成される不揮発性メモリユニットであって、当該メモリユニットを管理するための論理ブロック/物理ブロック変換テーブルを含む管理情報が保存される不揮発性メモリユニットを制御するコントローラにおいて、
前記不揮発性メモリユニットへのデータライトの終了後に、そのデータライトが反映された新たな管理情報を、その時点までは最新であった管理情報が保存されている前記不揮発性メモリユニットの領域とは別領域にライトする手段と、
前記管理情報ライト手段による管理情報ライトの終了後に、それまで最新であった管理情報に対応付けて当該管理情報が旧管理情報であることを示す旧管理情報フラグをライトする手段と、
初期化時に前記不揮発性メモリユニットから最新の正常な管理情報を検索する手段と、
前記検索手段により最新の正常な管理情報が見つけられなかった場合、前記旧管理情報フラグに対応付けられている正常な旧管理情報をもとに最新の管理情報を復元する手段と
を具備することを特徴とする不揮発性メモリユニットのコントローラ。 - 前記管理情報ライト手段による管理情報ライトの終了後、前記旧管理情報フラグライト手段による旧管理情報フラグライトの前に、当該管理情報ライトが最後まで実行されたことを示すエンドフラグを、当該管理情報に対応付けてライトする手段を更に具備し、
前記検索手段は前記エンドフラグに対応付けられていて前記旧管理情報フラグには対応付けられていない管理情報を最新の管理情報とすることを特徴とする請求項1記載の不揮発性メモリユニットのコントローラ。 - 前記管理情報ライト手段による管理情報ライトと並行して、当該管理情報のページ毎に、当該管理情報がライトされていることを示す管理情報フラグをライトする手段を更に具備し、
前記検索手段は、前記不揮発性メモリユニットから前記管理情報フラグを探すことで、検索する管理情報を絞ることを特徴とする請求項1記載の不揮発性メモリユニットのコントローラ。 - 前記エンドフラグライト手段によるエンドフラグライトの終了後、前記旧管理情報フラグライト手段による旧管理情報フラグライトの前に、前記管理情報ライト手段によりライトされた前記管理情報をリードして、当該管理情報が正しくライトされているか否かを確認するベリファイを行い、ベリファイエラーの場合に前記管理情報ライト手段による管理情報ライトを再実行させるベリファイ手段を更に具備することを特徴とする請求項2記載の不揮発性メモリユニットのコントローラ。
- 少なくとも1つの不揮発性メモリから構成される不揮発性メモリユニットであって、当該メモリユニットの管理情報が保存される不揮発性メモリユニットと、
前記不揮発性メモリユニットを制御するコントローラと、
前記コントローラが使用する情報の格納に用いられる、前記不揮発性メモリより高速アクセスが可能な揮発性メモリと
を具備し、
前記コントローラは、
前記不揮発性メモリユニットへのデータライトの終了後に、そのデータライトが反映された新たな管理情報を、その時点までは最新であった管理情報が保存されている前記不揮発性メモリユニットの領域とは別領域にライトする手段と、
前記管理情報ライト手段による管理情報ライトの終了後に、それまで最新であった管理情報に対応付けて当該管理情報が旧管理情報であることを示す旧管理情報フラグをライトする手段と、
初期化時に前記不揮発性メモリユニットから管理情報をリードしてそのコピーを前記揮発性メモリに格納する管理情報リード手段と、
前記管理情報リード手段によってリードされた管理情報が最新でない場合、或いは最新であっても異常である場合には、前記旧管理情報フラグに対応付けられている正常な旧管理情報をもとに最新の管理情報を復元する手段と
を備えていることを特徴とするメモリシステム。 - 複数の物理ブロックから構成される不揮発性メモリユニットであって、当該メモリユニットを管理するための論理ブロック/物理ブロック変換テーブルを含む管理情報が保存される不揮発性メモリユニットを制御する不揮発性メモリユニットの制御方法において、
前記不揮発性メモリユニットへのデータライト要求を受けて当該要求を処理するライト要求処理ステップと、
初期化時に前記管理情報の検索処理を実行する管理情報検索処理ステップと
を具備し、
前記ライト要求処理ステップは、
前記データライト要求で指定されたデータを前記不揮発性メモリにライトするステップと、
前記データライトステップによる前記不揮発性メモリユニットへのデータライトの終了後に、そのデータライトが反映された新たな管理情報を、その時点までは最新であった管理情報が保存されている前記不揮発性メモリユニットの領域とは別領域にライトするステップと、
前記管理情報ライトステップによる管理情報ライトの終了後に、それまで最新であった管理情報に対応付けて当該管理情報が旧管理情報であることを示す旧管理情報フラグをライトするステップと
を備え、
前記管理情報検索処理ステップは、
初期化時に前記不揮発性メモリユニットから最新の正常な管理情報を検索するステップと、
前記検索ステップで最新の正常な管理情報が見つけられなかった場合、前記旧管理情報フラグに対応付けられている正常な旧管理情報をもとに最新の管理情報を復元するステップと
を備えていることを特徴とする不揮発性メモリユニットの制御方法。 - 前記管理情報ライトステップでは、前記データライト要求で指定されたデータが論理的に複数のブロックにまたがる場合、当該指定されたデータが前記データライトステップで全てライトし終えた後に、そのデータライトが全て反映された前記新たな管理情報のライトを実行することを特徴とする請求項6記載の不揮発性メモリユニットの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000368849A JP4037605B2 (ja) | 2000-12-04 | 2000-12-04 | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 |
US09/954,015 US6687784B2 (en) | 2000-12-04 | 2001-09-18 | Controller for controlling nonvolatile memory unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000368849A JP4037605B2 (ja) | 2000-12-04 | 2000-12-04 | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002169729A JP2002169729A (ja) | 2002-06-14 |
JP4037605B2 true JP4037605B2 (ja) | 2008-01-23 |
Family
ID=18838989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000368849A Expired - Fee Related JP4037605B2 (ja) | 2000-12-04 | 2000-12-04 | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6687784B2 (ja) |
JP (1) | JP4037605B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384849B2 (en) | 2013-12-26 | 2016-07-05 | Canon Kabushiki Kaisha | Memory control apparatus, memory control method, and storage medium |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4079506B2 (ja) * | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
TW539950B (en) * | 2000-12-28 | 2003-07-01 | Sony Corp | Data recording device and data write method for flash memory |
JP2002229621A (ja) * | 2001-01-31 | 2002-08-16 | Toshiba Corp | ハードウェア管理装置 |
JP2004086991A (ja) * | 2002-08-27 | 2004-03-18 | Renesas Technology Corp | 不揮発性記憶装置 |
JP4499982B2 (ja) * | 2002-09-11 | 2010-07-14 | 株式会社日立製作所 | メモリシステム |
CN101231618B (zh) * | 2002-10-02 | 2012-06-13 | 松下电器产业株式会社 | 非易失性存储器装置的控制方法 |
US6901498B2 (en) | 2002-12-09 | 2005-05-31 | Sandisk Corporation | Zone boundary adjustment for defects in non-volatile memories |
JP4175881B2 (ja) * | 2002-12-25 | 2008-11-05 | スパンション エルエルシー | 不揮発性メモリの記憶方法及び記憶装置 |
JP2004258946A (ja) * | 2003-02-26 | 2004-09-16 | Renesas Technology Corp | メモリカード |
JP2004280752A (ja) * | 2003-03-19 | 2004-10-07 | Sony Corp | データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム |
DE10322723B3 (de) * | 2003-05-20 | 2004-10-14 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Behandeln eines Zustands eines Speichers |
JP2005107608A (ja) * | 2003-09-29 | 2005-04-21 | Nec Electronics Corp | 電子機器、不揮発性メモリ及び不揮発性メモリのデータ書き換え方法 |
US7299314B2 (en) * | 2003-12-31 | 2007-11-20 | Sandisk Corporation | Flash storage system with write/erase abort detection mechanism |
JP4701618B2 (ja) * | 2004-02-23 | 2011-06-15 | ソニー株式会社 | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
JP4586469B2 (ja) * | 2004-09-15 | 2010-11-24 | ソニー株式会社 | メモリ制御装置、メモリ制御方法、プログラム |
JP2006285600A (ja) * | 2005-03-31 | 2006-10-19 | Tokyo Electron Device Ltd | 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム |
JP4574475B2 (ja) * | 2005-07-15 | 2010-11-04 | キヤノン株式会社 | 記録再生装置、記録再生装置の制御方法 |
JP2007140733A (ja) * | 2005-11-16 | 2007-06-07 | Renesas Technology Corp | 半導体処理装置及び半導体集積回路 |
JP4501881B2 (ja) * | 2006-03-23 | 2010-07-14 | Tdk株式会社 | メモリコントローラ及びフラッシュメモリシステム |
US20080120461A1 (en) * | 2006-11-21 | 2008-05-22 | Accusys. Inc. | Method for maintaining disk array management information |
JP4967680B2 (ja) * | 2007-01-23 | 2012-07-04 | ソニー株式会社 | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 |
WO2009004674A1 (ja) * | 2007-06-29 | 2009-01-08 | Fujitsu Limited | 記憶装置、ディスク装置、書込み判定方法、制御装置 |
TWI454906B (zh) * | 2009-09-24 | 2014-10-01 | Phison Electronics Corp | 資料讀取方法、快閃記憶體控制器與儲存系統 |
JP6118045B2 (ja) * | 2012-07-31 | 2017-04-19 | 株式会社メガチップス | 半導体記憶装置 |
JP6152999B2 (ja) * | 2012-08-10 | 2017-06-28 | 株式会社メガチップス | 半導体記憶装置 |
CN104937577B (zh) * | 2013-03-15 | 2018-11-30 | 慧与发展有限责任合伙企业 | 支持扩展写入的存储器模块控制器 |
JP5664807B2 (ja) * | 2014-01-21 | 2015-02-04 | ソニー株式会社 | 通信装置、通信方法、及び、無線タグ |
JP6241373B2 (ja) | 2014-06-19 | 2017-12-06 | 株式会社デンソー | 記憶装置、フラッシュメモリ制御装置、及びプログラム |
JP2016032123A (ja) * | 2014-07-25 | 2016-03-07 | 株式会社東芝 | 映像収録再生装置、コンテンツ制御方法及びコンピュータプログラム |
WO2016056290A1 (ja) * | 2014-10-09 | 2016-04-14 | ソニー株式会社 | メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法 |
DE102018208096A1 (de) * | 2018-05-23 | 2019-11-28 | Robert Bosch Gmbh | Verfahren zum Austauschen eines ersten ausführbaren Programm-Codes und eines zweiten ausführbaren Programm-Codes und Steuergerät |
CN110851401B (zh) * | 2018-08-03 | 2023-09-08 | 伊姆西Ip控股有限责任公司 | 用于管理数据存储的方法、装置和计算机可读介质 |
JP2020086483A (ja) * | 2018-11-15 | 2020-06-04 | 株式会社日立製作所 | 計算機システム及び記憶デバイスの制御方法 |
JP6708762B1 (ja) * | 2019-01-29 | 2020-06-10 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
JP7010257B2 (ja) * | 2019-03-14 | 2022-01-26 | オムロン株式会社 | 制御システムおよび制御装置 |
CN113434086B (zh) * | 2021-06-25 | 2024-02-02 | 南京英锐创电子科技有限公司 | 数据存储方法、装置、非易失性存储器件和存储器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0617363B1 (en) * | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Defective cell substitution in EEprom array |
TW261687B (ja) * | 1991-11-26 | 1995-11-01 | Hitachi Seisakusyo Kk | |
JP3215237B2 (ja) * | 1993-10-01 | 2001-10-02 | 富士通株式会社 | 記憶装置および記憶装置の書き込み/消去方法 |
JPH07200418A (ja) | 1993-12-28 | 1995-08-04 | Hitachi Maxell Ltd | データ記憶装置ならびにその制御方法 |
US6643731B2 (en) * | 1999-12-31 | 2003-11-04 | Texas Instruments Incorporated | Low cost memory management that resists power interruption |
-
2000
- 2000-12-04 JP JP2000368849A patent/JP4037605B2/ja not_active Expired - Fee Related
-
2001
- 2001-09-18 US US09/954,015 patent/US6687784B2/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384849B2 (en) | 2013-12-26 | 2016-07-05 | Canon Kabushiki Kaisha | Memory control apparatus, memory control method, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US20020069313A1 (en) | 2002-06-06 |
US6687784B2 (en) | 2004-02-03 |
JP2002169729A (ja) | 2002-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4037605B2 (ja) | 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法 | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
JP3078946B2 (ja) | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
US5966720A (en) | Flash memory accessed using only the logical address | |
KR100531192B1 (ko) | 비휘발성 메모리의 제어방법 | |
US6957295B1 (en) | File management of one-time-programmable nonvolatile memory devices | |
JP3682256B2 (ja) | ディスクアレイ装置及び同装置におけるパリティ処理方法 | |
US20100070729A1 (en) | System and method of managing metadata | |
JP4046877B2 (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
US6950918B1 (en) | File management of one-time-programmable nonvolatile memory devices | |
JP2012128643A (ja) | メモリシステム | |
JP4301301B2 (ja) | 不揮発性半導体記憶装置およびその管理方法 | |
JPH10124384A (ja) | 不揮発性半導体メモリの制御方法 | |
JP3472008B2 (ja) | フラッシュメモリ管理方法 | |
US20070136510A1 (en) | Storage device, memory managing device, memory managing method, and program | |
JPWO2009004674A1 (ja) | 記憶装置、ディスク装置、書込み判定方法、制御装置 | |
US20120159046A1 (en) | Memory system | |
JP5066894B2 (ja) | 記憶媒体制御装置 | |
JP4794530B2 (ja) | 半導体装置および携帯電話 | |
JP2004326523A (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
EP1359500B1 (en) | File management of one-time-programmable nonvolatile memory devices | |
KR20210022260A (ko) | 메모리 컨트롤러의 구동방법, 메모리 컨트롤러 및 스토리지 장치 | |
JP4580724B2 (ja) | 不揮発性メモリの制御方法 | |
JP3790756B2 (ja) | ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041019 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070605 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070803 |
|
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: 20071030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071101 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101109 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101109 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111109 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121109 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131109 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |