(57)【要約】【課題】安定した書き込み性能でリアルタイム記録を可能にする。【解決手段】本発明の例に係る追記型メモリデバイスは、不揮発性半導体メモリ５と、不揮発性半導体メモリ５を追記方式で制御するコントローラ４とを備える。不揮発性半導体メモリ５は、ホスト１からの直接アクセスが可能とされるユーザエリアと、コントローラ４により管理されるシステムエリアとを有する。そして、再フォーマットされた不揮発性半導体メモリ５のユーザエリアに対するデータ書き込みは、再フォーマット直前にユーザエリア内に記録された旧追記データの最終の物理アドレスの後方のある未使用領域を開始点とし、またその開始点がユーザエリアの最終の物理アドレスを超えた場合はユーザエリアの先頭の物理アドレスを開始点として順に書き込む。【選択図】図１
2010122898.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性半導体メモリと、前記不揮発性半導体メモリを追記方式で制御するコントローラとを具備し、前記不揮発性半導体メモリは、ホストからの直接アクセスが可能とされるユーザエリアと、前記コントローラにより管理されるシステムエリアとを有し、再フォーマットされた前記不揮発性半導体メモリの前記ユーザエリアに対するデータ書き込みが、前記再フォーマット直前に前記ユーザエリア内に記録された旧追記データの最終の物理アドレスの後方のある未使用領域を開始点とし、またその開始点がユーザエリアの最終の物理アドレスを超えた場合はユーザエリアの先頭の物理アドレスを開始点として順に書き込むことを特徴とする追記型メモリデバイス。
【請求項２】
前記データ書き込みは、新追記データが前記ユーザエリアの最終の物理アドレスに到達したとき、これに引き続き、前記ユーザエリアの先頭の物理アドレスから順に行うようにされたことを特徴とする請求項１に記載の追記型メモリデバイス。
【請求項３】
メモリデバイスのメモリ空間の先頭から前記ユーザエリアとして使用できる大きさをＳとし、前記開始点の物理アドレスを“Ｎ”とし、このデバイスに対して追記を行う論理アドレス０〜(Ｓ−１)に対して、論理アドレスが０〜(Ｓ−Ｎ−１)の範囲では“Ｎ”を加算して物理アドレスを求め、論理アドレスが(Ｓ−Ｎ)〜(Ｓ−１)までの範囲では“Ｓ−Ｎ”を減算して物理アドレスを求めることを特徴とする請求項１に記載の追記型メモリデバイス。
【請求項４】
前記システムエリアは、代替エリアを含み、前記ユーザエリアの特定の物理アドレスに対して書き込みデータの書き込みエラーが発生したときに、前記代替エリアの物理アドレスに前記書き込みデータとエラーが発生した場所の物理アドレスを書き込み、前記特定の物理アドレスでエラーが発生したことを示す代替フラグをアクティブにし、前記特定の物理アドレスの使用を禁止するようにされたことを特徴とする請求項１乃至３のいずれか１項に記載の追記型メモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、追記型メモリデバイスの書き込み制御に関する。
【背景技術】
【０００２】
ビデオレコーダは、その小型化に伴い、メモリカードのような不揮発性記録媒体に画像データをリアルタイム記録する必要性に迫られている。同時に、ビデオ画像の高画質化により4MB/sec程度のビットレートでの安定した書き込み性能が要求される。
【０００３】
しかし、FAT (File Allocation Tables)ファイルシステムによりメモリデータを管理すると、書き込みと消去とを繰り返すうちにフラグメンテーションと呼ばれるデータの断片化が発生する。このフラグメンテーションは、メモリの性能を著しく低下させるため、上述のようなリアルタイム記録が難しくなる。
【０００４】
NANDフラッシュメモリを例にとると、フラグメンテーションを有するNANDブロックに対する書き込みでは、リアルタイム記録に加えて、既にそのNANDブロック内に記録されているデータを別のNANDブロックに記録し直す作業が必要になるため、書き込み時間のオーバーヘッドが生じてメモリの性能が低下する。
【０００５】
また、従来のリアルタイム記録においては、エラーが発生すると、ホスト装置とメモリカードとの間のデータ転送を一時中断して、リトライ処理を行う必要があるため、書き込み効率が低下する（例えば、特許文献１を参照）。
【０００６】
さらに、リトライ処理中においては、リアルタイム記録を行うことができないため、データを喪失してしまう可能性がある。
【０００７】
具体的には、メモリカードは、ランダムアクセスメモリのコマンド体系により読み出し／書き込みが制御される。この場合、リアルタイム記録中にエラーが発生すると、メモリカードは、ホスト装置にエラーを通知する。ホスト装置は、エラーの通知を受けると、データ転送を一時中断し、リトライ処理を行うために、リトライ処理中に得た画像データについてはリアルタイム記録できなくなる。
【０００８】
以上のようなことから、安定した書き込み性能でリアルタイム記録が可能な技術の開発が望まれていた。
【特許文献１】特開２００４−３２６１６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、安定した書き込み性能でリアルタイム記録を可能にする技術を提案する。
【課題を解決するための手段】
【００１０】
本発明の例に係る追記型メモリデバイスは、不揮発性半導体メモリと、前記不揮発性半導体メモリを追記方式で制御するコントローラとを備え、前記不揮発性半導体メモリは、ホストからの直接アクセスが可能とされるユーザエリアと、前記コントローラにより管理されるシステムエリアとを有し、再フォーマットされた前記不揮発性半導体メモリの前記ユーザエリアに対するデータ書き込みが、前記再フォーマット直前に前記ユーザエリア内に記録された旧追記データの最終の物理アドレスの後方のある未使用領域を開始点とし、またその開始点がユーザエリアの最終の物理アドレスを超えた場合はユーザエリアの先頭の物理アドレスを開始点として順に書き込む。
【発明の効果】
【００１１】
本発明によれば、安定した書き込み性能でリアルタイム記録を可能にする。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら、本発明の例を実施するための最良の形態について詳細に説明する。
【００１３】
１．  概要  
本発明の例に係わるメモリデバイスは、コントローラを有するインテリジェントメモリデバイス、例えば、ファイルメモリとしてフラッシュメモリなどの不揮発性半導体メモリを使用し、データをアドレスの小さい方から順に書いていく追記型メモリカードや追記型メモリデバイスを対象とする。
【００１４】
一般に、CD-R, CD-RW, DVD-R, DVD-RWなどの追記型メディア (recordable media)は、コントローラを有しないため、UDF (Universal Disk Format)のようなファイルシステムによるエラー処理が必要になる。しかし、インテリジェントメモリデバイスにおいては、エラーを検出したときは、ファイルシステムによりエラー処理を行わずに、インテリジェントデバイス内のコントローラにより処理を行う。
【００１５】
例えば、フラッシュメモリを搭載したメモリカードの場合、書き込み時に発生した回復可能なエラーに対しては、ホスト装置にエラーを通知せずに、コントローラがエラー処理を行うことで、ファイルシステムの負担を減らし、書き込み時のエラー処理の効率化を図る。
【００１６】
追記型書き込みでは、データを分断することなく連続的に書き込むことが可能なので、DMA (Direct Memory Access)コントローラなどのハードウエアによりデータ転送を制御することにより、高効率のデータ転送と安定した書き込み性能とを実現できる。また、CRC (Cycle Redundancy Check)エラーについては、データ再送要求を出すことにより、データ転送の中断を回避できる。
【００１７】
書き込みエラーが発生した場合に、アドレス変換テーブルによる代替処理を行うと、この変換テーブルが大きいために、チップコストが高くなる。一方、アドレス変換テーブルを小さくすると、コントローラの負担が増大する。
【００１８】
そこで、本発明の例に係わるメモリデバイスでは、再フォーマットされた不揮発性半導体メモリのユーザエリアに対するデータ書き込みは、再フォーマット直前にユーザエリア内に記録されていた旧追記データの最終の物理アドレスの次の物理アドレスから順に行うことにする。
【００１９】
但し、旧追記データの最終の物理アドレスがユーザエリアの最終の物理アドレスであるときは、データ書き込みは、ユーザエリアの先頭の物理アドレスから順に行う。
【００２０】
また、データ書き込みは、新追記データがユーザエリアの最終の物理アドレスに到達したときは、これに引き続き、ユーザエリアの先頭の物理アドレスから順に行う。
【００２１】
このように、ユーザエリアについては、リアルタイム記録ごとに、使用する物理アドレスをローテーションさせるアドレスマッピングを行うことで、メモリが均等に使用されるようになり、不良アドレス（例えば、バッドブロック）の発生を防止できると共に、アドレス変換テーブルも不要になる。
【００２２】
即ち、アドレス変換テーブルについては、システムエリアのみに適用すればよいため、コントローラの負担の増大なしに、チップコストを低くすることができる。
【００２３】
２．  実施形態  
(1)   システム構成  
図１は、本発明のメモリデバイスが適用されるシステムの例を示している。
【００２４】
ホスト装置１は、書き込みデータを一時的に記録するバッファメモリ２を有する。ホスト装置１は、ソフトウェア（例えば、ＲＯＭに記録されたプログラム）に従い、ファイルシステムを制御する。
【００２５】
メモリデバイス（例えば、メモリカード）３は、コントローラ４及びファイルメモリとしてのフラッシュメモリ（例えば、NAND-Flash ROM）５を備える。
【００２６】
コントローラ４は、ホストインターフェイスモジュール(HIM)６、マイクロプロセッサユニット(MPU)７、バッファメモリ(Buffer memory)８、ＲＯＭ(read only memory)９、ＲＡＭ(random access memory)１０、及び、アクセスコントローラ(Flash Cont.)１１を有する。また、ホストインターフェイスモジュール６は、レジスタ(REG)１２を有する。
【００２７】
ホストインターフェイスモジュール６は、ホスト装置１から転送されるコマンドを解釈し、バスプロトコルを管理する。マイクロプロセッサユニット７は、コマンドにより指定される処理を実行する。バッファメモリ８は、フラッシュメモリ５に対する書き込みデータを一時的に記録する。
【００２８】
ＲＯＭ９は、プログラムデータを記録し、ＲＡＭ１０は、マイクロプロセッサユニット７で処理するデータを一時的に記録する。
【００２９】
アクセスコントローラ１１は、読み出し／書き込み時にフラッシュメモリ５に対するアクセスを制御する。
【００３０】
そして、ホストインターフェイスモジュール６内のレジスタ１２は、ホスト装置１に転送するメモリデバイス３の情報を一時的に記録する。
【００３１】
また、書き込み時に、CRCエラーなどの回復可能なエラーが発生したときに、コントローラ４がエラー処理を行う。コントローラ４がエラー処理を行うことで、ファイルシステムの負担を減らし、データ転送の中断を防止する。
【００３２】
尚、上述のシステムにおいて、コントローラ４は、図１に開示される要素以外の要素を含んでいてもよい。
【００３３】
また、ファイルメモリは、フラッシュメモリ５ではなく、次世代メモリデバイス、例えば、Ｒｅ(resistive)ＲＡＭ、Ｍ(magnetic)ＲＡＭ、Ｐ(phase change)ＲＡＭなどであってもよい。
【００３４】
(2)   第１実施例  
システムは、図１に示す通りである。
【００３５】
第１実施例では、メモリデバイス３において、ホスト装置１から送られてきた書き込みデータは、バッファメモリ８内に一時的に保存される。バッファメモリ８内に正しくデータが保存されない場合、例えば、CRCエラーが発生した場合には、コマンドレベルでのデータ再送要求を出し、正しいデータを再取得する。
【００３６】
即ち、メモリデバイス３からホスト装置１に対してデータ再送要求を通知することにより、データ転送を中断させずにエラー処理を行う。
【００３７】
バッファメモリ８内に正しくデータが保存された場合、アクセスコントローラ１１は、フラッシュメモリ５に対して書き込みを指示する。フラッシュメモリ５において書き込みエラーが発生した場合には、バッファメモリ８内に保存されているデータを用いてリトライ処理を行うため、この場合にはデータ再送要求は必要としない。
【００３８】
しかし、リトライ処理が行えなかった場合は、ホスト装置１に対してエラーを通知してデータ転送を中断させる必要がある。但し、その確率は非常に小さい。
【００３９】
第１実施例では、主として、CRCエラーを対象とする。CRCエラーとは、ノイズなどの外的要因によるデータ化けのことである。1のホスト装置と3のメモリデバイス間のインタフェースプロトコルにおいて送信側はデータに相関したCRCコードが埋め込み受信側がCRCコードの正当性を確認することで受け取ったデータに誤りがないかどうかを確認できる。
【００４０】
図２は、一般的なエラー処理方法を示している。
【００４１】
Data2をホスト装置からメモリデバイスに転送中にエラーが発生した場合、CRCステータスによってエラーがホスト装置に通知される。ホスト装置は、CMD(command)12を発行することによりデータ転送を一時中断する。例えば、Data2の書き込みが完了していない場合は、再び、Data2の書き込み（リトライ）を行う。
【００４２】
図３は、第１実施例のエラー処理方法を示している。
【００４３】
Data2をホスト装置からメモリデバイスに転送中にエラーが発生した場合、CRCステータスによってエラー及びデータ再送要求がホスト装置に通知される。ホスト装置は、データ再送要求を認識すると、直ちにData2を再送する。Data2の書き込みが成功すると、ホスト装置は、続けてData3を転送する。
【００４４】
ここで、このようなデータ再送機能については、図１のホスト装置１とメモリデバイス３との間で互換性を持たせる必要がある。
【００４５】
そこで、例えば、図１のレジスタ１２は、データ再送機能の有無を示す再送ステータスと、データ再送機能を有効／無効に切り換える再送フラグとを有する。但し、再送フラグは、レジスタ１２以外のメモリデバイス３内のメモリに記録させてもよい。
【００４６】
データ再送機能を有するメモリデバイスとデータ再送機能に対応するホスト装置とによりシステムを構成すれば、ホスト装置は、例えば、初期化時に再送ステータスを確認し、事前に再送フラグを有効に設定しておくことが可能である。
【００４７】
データ再送機能が有効の場合、メモリデバイス内のコントローラがCRCエラーを検出しても、ホスト装置が続けて同じデータを再送してくると判断し、バッファメモリ８及びフラッシュメモリ５に対する書き込みを進める。但し、連続して同じデータにCRCエラーが発生した場合は、ホスト装置は、データ再送を中断する。
【００４８】
また、データ再送機能が無効の場合、メモリデバイス内のコントローラがCRCエラーを検出すると、コントローラは、CRCエラーを検出したことのみをホスト装置に通知し、書き込み処理を中断する。
【００４９】
(3)   第２実施例  
システムは、図１に示す通りである。
【００５０】
第２実施例では、メモリデバイス３において、書き込みデータがメモリエリア内の特定アドレスに正しく記録されなかったときに、特定アドレスに対応する代替フラグにエラーの発生を記録し、その特定アドレス及び書き込みデータを代替エリア内に記録する。
【００５１】
この場合、エラー処理は、コントローラ４内で行われ、エラーの発生は、ホスト装置１に通知されない。このため、ファイルシステムの負担が減り、このような回復可能なエラーが発生したときにデータ転送が中断することもない。
【００５２】
第２実施例は、追記型ファイルシステムによってフォーマットされ、書き込みデータが連続するアドレスに順番に記録されるメモリデバイスに適用される。
【００５３】
図４は、メモリの初期フォーマット状態を示している。
【００５４】
物理アドレス (Physical Address)は、例えば、１つのNANDブロック（消去ブロック）のブロックアドレスに対応し、自然数（０を含むものとする）で表される。ユーザエリアＵＡの物理アドレスは、０，１，２，３，４，５，６，…Ｓ−２，Ｓ−１であり、システムエリアＳＡの物理アドレスは、Ｓ，Ｓ＋１，Ｓ＋２，…である。
【００５５】
１つの物理アドレスに対応する記録エリアは、メインデータを記録するメイン記録部分 (Recorded Date)と冗長データを記録する冗長部分 (Extra Data)とから構成される。
【００５６】
メイン記録部分において、Freeは、未記録の状態、Systemは、システムデータを示している。冗長部分には、代替フラグ (Flag)と代替アドレス (Address)が記録される。代替フラグと代替アドレスは、１つの消去ブロックに対して１つずつあればよい。また、冗長部分内の代替フラグと代替アドレスの位置を検索する手段を付加してもよい。
【００５７】
ユーザエリアＵＡは、読み出し／書き込みコマンドによりホストから直接アクセスできるが、システムエリアＳＡは、メモリデバイス内のコントローラによって管理され、ホストからアクセスできないエリアである。代替エリアＲＡは、システムエリアＳＡの一部である。システムエリアＳＡの容量は、ユーザエリアＵＡの容量に比べて非常に小さい。
【００５８】
本発明の例に係わる追記型メモリのメモリ管理方式では、システムエリアのみにアドレス変換テーブルを設け、ユーザエリアに対しては、以下で説明するように、使用する物理アドレスをローテーションさせるアドレスマッピングを行う。このため、アドレス変換テーブルを使用しない。即ち、アドレス変換テーブルについては、システムエリアのみに適用すればよいため、チップコストを低くすることができる。
【００５９】
図５は、初期フォーマット状態からData 1〜Data Nを書き込んだ状態を示している。
【００６０】
初期フォーマット状態から、例えば、マルチブロックライトコマンドによりデータを書き込む場合には、論理アドレスと物理アドレスとが一致している。
【００６１】
ユーザエリアＵＡにおいて、追記データData 1〜Data Nは、論理アドレス (Logical Address)０〜Ｎ−１に対応する物理アドレス０〜Ｎ−１のメイン記録部分に記録される。
【００６２】
ここで、論理アドレス０にData 1が書き込まれ、論理アドレス１にData 2が書き込まれた後に、論理アドレス２に対するData 3の書き込みが失敗した場合を検討する。
【００６３】
この場合、Data 3を代替エリアＲＡ内の物理アドレスＳに書き込み、物理アドレスＳの代替アドレスに、論理アドレス２又はそれを示すデータを書き込む（ここでは、単に、“２”で示している）。また、物理アドレス２の代替フラグを“１”にして、物理アドレス２が不良であることを示すと共に、代替アドレスに、Data 3が書き込まれた物理アドレスＳ又はそれを示すデータを書き込む（ここでは、単に、“Ｓ”で示している）。
【００６４】
これらの情報は、読み出し時に使用される。
【００６５】
この後、論理アドレス３にData 4が書き込まれ、最後に、論理アドレスＮ−１にData Nが書き込まれる。
【００６６】
このように、物理アドレス２が不良の場合、一般的な追記型メディアでは、データ転送を一時中断し、物理アドレス２をスキップして、次の物理アドレス３にデータを記録するのに対し、第２実施例では、データ転送を中断することなく、代替アドレスＳにデータを記録する。
【００６７】
尚、追記データData 1〜Data Nの記録に使用した論理アドレス０〜Ｎ−１の数Ｎは、ユーザエリアＵＡ内の全ての論理アドレス０〜Ｓ−１の数Ｓよりも小さいものとする。即ち、Ｎ及びＳは、共に、自然数とし、Ｎ＜Ｓの関係を有する。
【００６８】
図６は、メモリの再フォーマット状態を示している。
【００６９】
再フォーマットは、図５の状態から行われるものとする。
【００７０】
図中の記号又は文字は、図４の初期フォーマット状態におけるそれと同じである。
【００７１】
再フォーマット状態が初期フォーマット状態と異なる点は、不良の物理アドレス２に対応する代替フラグが“１”に設定されていることにある。即ち、物理アドレス２が不良であるという情報が引き継がれている。
【００７２】
図７及び図８は、再フォーマット状態からData 1〜Data Mを書き込んだ状態を示している。
【００７３】
ここで、Ｓ、Ｍ及びＮは、共に、自然数とし、Ｍ＞Ｓ−Ｎの関係を有するものとする。また、Ｎは、図４〜図６におけるＮと同じものとする。
【００７４】
再フォーマット状態から、例えば、マルチブロックライトコマンドによりデータを書き込む場合には、アドレスマッピングにより、論理アドレスを物理アドレスに変換する。
【００７５】
具体的には、論理アドレス０〜Ｓ−Ｎ−１については、論理アドレスに“＋Ｎ”を加算した物理アドレスにデータを書き込む。
【００７６】
例えば、図７において、Data 1は、論理アドレス０に“＋Ｎ”を加算した物理アドレスＮのメイン記録部分に記録され、Data 2は、論理アドレス１に“＋Ｎ”を加算した物理アドレスＮ＋１のメイン記録部分に記録される。
【００７７】
同様に、Data S-Nは、論理アドレスＳ−Ｎ−１に“＋Ｎ”を加算した物理アドレスＳ−１のメイン記録部分に記録される。
【００７８】
また、論理アドレスＳ−Ｎ〜Ｍ−１については、論理アドレスに“−（Ｓ−Ｎ）”を加算した物理アドレスにデータを書き込む。
【００７９】
例えば、図８において、Data S-N+1は、論理アドレスＳ−Ｎに“−（Ｓ−Ｎ）”を加算した物理アドレス０のメイン記録部分に記録され、Data S-N+2は、論理アドレスＳ−Ｎ＋１に“−（Ｓ−Ｎ）”を加算した物理アドレス１のメイン記録部分に記録される。
【００８０】
ここで、物理アドレス２の代替フラグは“１”になっている。
【００８１】
この場合、Data S-N+3は、代替エリアＲＡ内の物理アドレスＳに書き込まれ、物理アドレスＳの代替アドレスに、論理アドレス２又はそれを示すデータを書き込む（ここでは、単に、“２”で示している）。また、物理アドレス２の代替アドレスに、Data S-N+3が書き込まれた物理アドレスＳ又はそれを示すデータを書き込む（ここでは、単に、“Ｓ”で示している）。
【００８２】
これらの情報は、読み出し時に使用される。
【００８３】
そして、最後に、Data Mは、論理アドレスＭ−１に“−（Ｓ−Ｎ）”を加算した物理アドレス（Ｍ−１）−（Ｓ−Ｎ）のメイン記録部分に記録される。
【００８４】
このように、使用する物理アドレスをローテーションさせることにより、メモリが均等に使用されるようにして、不良ブロックの発生などを防止する。
【００８５】
第２実施例は、追記型記録デバイスのメモリ管理に有効である。論理アドレスと物理アドレスが異なるシステムでは任意のアドレス変換が必要であり、それに使用される変換テーブルは大きなものが必要になってしまう。追記型記録の特徴であるアドレスの連続性を活かすことができない。第２実施例によるエラー処理方法は、エラーの発生した箇所のみアドレス変換を行うため、大きなアドレス変換テーブルが不要になる。
【００８６】
(4)   第３実施例  
第３実施例は、第２実施例の応用例であり、第２実施例を実現するためのアドレス変換回路に関する。
【００８７】
図９は、図６のアドレスマッピングを実行するアドレス変換回路を示している。
【００８８】
２０，２３及び２４は、レジスタ（ＲＥＧ）、２１，２５及び２７は、セレクタ（ＳＥＬ）、２２は、アドレス変換テーブル、２６は、加算器、２８は、メモリである。
【００８９】
レジスタ２０，２３，２４の動作は、制御信号Ｃ１，Ｃ２，Ｃ３により制御され、セレクタ２１，２５，２７の切り替えは、制御信号φ１，φ２，φ３により制御される。書き込みデータＤwriteは、メモリ２８に書き込まれ、読み出しデータＤreadは、メモリ２８から読み出される。
【００９０】
システムエリアアドレスＡｓａは、セレクタ２１に入力され、ユーザエリアアドレスＡｕａは、加算器２６に入力される。オフセット信号ＯＳ１は、レジスタ２３に入力され、オフセット信号ＯＳ２は、レジスタ２４に入力される。
【００９１】
メモリ２８において書き込みエラーが発生した場合、読み出し代替アドレスがレジスタ２０に記録される。
【００９２】
図５におけるデータ書き込み時には、ＯＳ１，ＯＳ２＝“０”であり、例えば、ＯＳ１がセレクタ２５を経由して加算器２６に入力される。即ち、初期フォーマット状態では、レジスタ２３，２４には“０”が記録される。
【００９３】
従って、ユーザエリアアドレス（論理アドレス）は、そのまま物理アドレスになる。
【００９４】
Data 3の書き込み時に書き込みエラーが検出されると、読み出し代替アドレスがレジスタ２０に記録される。読み出し代替アドレスは、アドレス変換テーブル２２により物理アドレスに変換された後、セレクタ２７を介してメモリ２８に与えられる。
【００９５】
システムエリアでは、ランダムに書き換えが行われる可能性があるため、消去ブロックの置き換えやバッドブロック処理などをアドレス変換テーブル２２により制御する。
【００９６】
この書き込みが終了した後には、ＯＳ１＝“＋Ｎ”、ＯＳ２＝“−（Ｓ−Ｎ）”に設定される。
【００９７】
データ書き込み時には、ＯＳ１＝“＋Ｎ”、ＯＳ２＝“−（Ｓ−Ｎ）”であり、ＯＳ１がセレクタ２５を経由して加算器２６に入力される。即ち、再フォーマット状態では、レジスタ２３には“＋Ｎ”が記録され、レジスタ２４には“−（Ｓ−Ｎ）”が記録されるが、レジスタ２３の出力“＋Ｎ”のみが加算器２６に転送される。
【００９８】
従って、ユーザエリアアドレス（論理アドレス）に“＋Ｎ”を足した値が物理アドレスになる。
【００９９】
この書き込みが終了した後には、ＯＳ１＝“＋（Ｎ＋Ｍ）”、ＯＳ２＝“−（Ｓ−Ｎ−Ｍ）”に設定される。
【０１００】
図７及び図８におけるデータ書き込み時には、ＯＳ１＝“＋Ｎ”、ＯＳ２＝“−（Ｓ−Ｎ）”であり、論理アドレス０〜Ｓ−Ｎ−１については、ＯＳ１がセレクタ２５を経由して加算器２６に入力され、論理アドレスＳ−Ｎ〜Ｍ−１については、ＯＳ２がセレクタ２５を経由して加算器２６に入力される。
【０１０１】
従って、ユーザエリアアドレス（論理アドレス）０〜Ｓ−Ｎ−１に“＋Ｎ”を足した値が物理アドレスになり、ユーザエリアアドレスＳ−Ｎ〜Ｍ−１に“−（Ｓ−Ｎ）”を足した値が物理アドレスになる。
【０１０２】
この書き込みが終了した後には、ＯＳ１＝“＋Ｍ−（Ｓ−Ｎ）”、ＯＳ２＝“−（Ｓ−（Ｍ−（Ｓ−Ｎ）））”に設定される。
【０１０３】
(5)   ファイルシステムとの連携  
本発明の例によれば、追記型記録において、エラーが発生しても、データ転送を中断させることなく、効率の良いデータ転送を可能にする。また、ユーザエリア内の連続するアドレスに書き込みを行うことで、ユーザエリアに対するアドレス変換テーブルを不要とする。さらに、本発明の例は、従来のファイルシステムと連携させることも可能である。
【０１０４】
例えば、図１において、コントローラ４は、仮にエラーが回復されなかったときに、その旨をホスト装置１に通知する。ホスト装置１は、コントローラ４からエラーが回復されなかった旨の通知を受けると、データ転送を一時中断し、ファイルシステムのエラー回復機能によりリトライを開始するアドレスを決定する。
【０１０５】
ホスト装置１は、コントローラ４からエラーが回復されなかった旨の通知を受けた場合に、コントローラ４から書き込み完了済みのアドレス情報を取得し、再び、エラー発生アドレスから書き込みデータを再送する。
【０１０６】
この場合、ホスト装置１は、リトライ処理をエラー発生アドレスから行うことができるため、リトライ処理を効率よく行うことができる。
【０１０７】
(6)   まとめ  
以上、第１乃至第３実施例で説明したように、追記型の特性を生かしたメモリのアドレス管理機能と、CRCエラー発生時のブロックデータ再送機能と、メモリデバイス内のコントローラによるエラー処理機能とにより、書き込み時のデータ転送の中断が防止されるため、ビデオデータなどのリアルタイム記録がデータの紛失なしに実現できる。
【０１０８】
３．  適用例  
本発明は、追記型ファイルシステムによってフォーマットされる追記型メモリデバイスに適用されるのが最も好ましい。
【０１０９】
ＲＡＭ（ランダムアクセスメモリ）の場合、使用中にファイルのフラグメンテーションが発生するため、連続したアドレスへの書き込みに関しては、途中で中断されてしまう欠点がある。
【０１１０】
これに対し、追記型メモリデバイスは、連続したアドレスに対する書き込みが可能である。本発明を追記型メモリデバイスに適用すれば、連続したアドレスに対する書き込みに関して、データ転送の中断なしに行えることになり、ファイルシステムによる書き込み制御が簡素化される。
【０１１１】
これにより、例えば、ファイルシステムによるエラー処理が不要になるメリットがある。
【０１１２】
また、本発明は、特に、データ書き込みをハードウエアによるDMA(Direct Memory Access)によるデータ転送時に、割り込みによるシステムオーバヘッドを減らす効果があり、リアルタイム記録の用途に適する。
【０１１３】
４．  むすび  
本発明によれば、安定した書き込み性能でリアルタイム記録を可能にする。
【０１１４】
本発明の例は、上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で、各構成要素を変形して具体化できる。また、上述の実施の形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。例えば、上述の実施の形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施の形態の構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１１５】
【図１】メモリシステムを示す図。
【図２】エラー処理を示す波形図。
【図３】エラー処理を示す波形図。
【図４】初期フォーマット状態を示す図。
【図５】初期フォーマット状態からの書き込みを示す図。
【図６】再フォーマット状態を示す図。
【図７】再フォーマット状態からの書き込みを示す図。
【図８】再フォーマット状態からの書き込みを示す図。
【図９】アドレス変換回路を示す図。
【符号の説明】
【０１１６】
１：  ホスト装置、  ２：  バッファメモリ、  ３：  メモリデバイス、  ４：  コントローラ、  ５：  フラッシュメモリ、  ６：  ホストインターフェイスモジュール、  ７：  マイクロプロセッサユニット、  ８：  バッファメモリ、  ９：  ＲＯＭ、  １０：  ＲＡＭ、  １１：  アクセスコントローラ、  １２，２０，２３，２４：  レジスタ，  ２１，２５，２７：  セレクタ、  ２２：  アドレス変換テーブル、  ２６：  加算器、  ２８：メモリ。
【図１】
2010122898.tif 000003
【図２】
2010122898.tif 000004
【図３】
2010122898.tif 000005
【図４】
2010122898.tif 000006
【図５】
2010122898.tif 000007
【図６】
2010122898.tif 000008
【図７】
2010122898.tif 000009
【図８】
2010122898.tif 000010
【図９】
2010122898.tif 000011