(57)【要約】【課題】複数枚のメモリカードで構成され、メモリカードを並列動作させて高速化したメモリカードドライブにおいて、論物変換テーブルの更新による記録レートの劣化を最小限に抑えること。【解決手段】メモリカード１３は、データとアドレス変換テーブルを不揮発性メモリ３０に保持する。アドレス変換テーブル２３は当該メモリカードに発行された論理アドレスと内蔵する不揮発性メモリの物理アドレスの対応関係を示す。データの書き込みにおいてライトエラーが発生した場合に、メモリカードのアドレス変換テーブルの更新を検出する。検出されていないメモリカードもアドレス変換テーブルを更新し、複数のメモリカードで同期化する。これにより書き込み転送レートの劣化を最小限にする。【選択図】図６
2009282836.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ、及び前記不揮発性メモリを制御するメモリ制御部を有する複数のメモリグループと、
前記メモリグループに接続され、前記メモリグループにデータを書き込み読み出す統合制御手段と、を具備するメモリカードであって、
前記メモリグループの前記メモリ制御部は、
ホスト機器が発行するコマンドの論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示すアドレス変換テーブルと、
前記ホスト機器からライトコマンドが与えられたときに、前記アドレス変換テーブルから論理ブロックに対応する物理ブロックを参照して当該物理ブロックに空き領域があればその物理ブロックにデータを書き込み、空き領域がなければ新規物理ブロックにデータを書き込むと共に前記アドレス変換テーブルを更新し、前記アドレス変換テーブルを前記不揮発性メモリに書き込むブロック管理手段と、
前記アドレス変換テーブルの物理ブロックが更新されたときに、その旨を検出して外部に出力する更新検出手段と、
外部から与えられたアドレス変換テーブル更新コマンドを検出して、前記ブロック管理手段に前記アドレス変換テーブル更新コマンドを伝える更新コマンド検出手段と、を具備するものであり、
前記統合制御手段は、各メモリグループのアドレス変換テーブルを格納している物理ブロックの書き込みページ数が同一になるように、前記書き込みページ数が少ない前記メモリグループのメモリ制御部に、アドレス変換テーブル更新コマンドを発行するメモリカード。
【請求項２】
前記メモリグループは、
アドレス変換テーブル更新コマンドを受信したときに、前記不揮発性メモリより前回更新したアドレス変換テーブルを読み出し、次のアドレス変換テーブルとして前記不揮発性メモリに書き込む請求項１に記載のメモリカード。
【請求項３】
メモリ制御部のブロック管理手段は、
不揮発性メモリの特定の物理ブロックにページ単位に追記され、前記特定の物理ブロックの全ページが書き込み済みになった場合は、消去可能な新規物理ブロックを抽出して消去し、新規物理ブロックの最初のページより順番に前記アドレス変換テーブルを書き込む請求項１又は２に記載のメモリカード。
【請求項４】
前記更新検出手段は、
空き領域にある物理領域にデータを書き込む際に書き込みエラーが検出されたときに、エラー検出に伴うアドレス変換テーブルの物理ブロックの更新のみを検出して外部に出力するものである請求項１〜３のいずれかに記載のメモリカード。
【請求項５】
不揮発性メモリと、
前記不揮発性メモリを制御するメモリ制御部と、を具備するメモリカードであって、
前記メモリ制御部は、
ホスト機器が発行するコマンドの論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示すアドレス変換テーブルと、
前記ホスト機器からライトコマンドが与えられたときに、前記アドレス変換テーブルから論理ブロックに対応する物理ブロックを参照して当該物理ブロックに空き領域があればその物理ブロックにデータを書き込み、空き領域がなければ新規物理ブロックにデータを書き込むと共に前記アドレス変換テーブルを更新し、前記アドレス変換テーブルを前記不揮発性メモリに書き込むブロック管理手段と、
前記アドレス変換テーブルの物理ブロックが更新されたときに、その旨を外部に出力する更新検出手段と、
外部から与えられたアドレス変換テーブル更新コマンドを検出して、前記ブロック管理手段に前記アドレス変換テーブル更新コマンドを伝える更新コマンド検出手段と、を具備するメモリカード。
【請求項６】
前記ブロック管理手段は、
前記更新コマンド検出手段よりアドレス変換テーブル更新コマンドが与えられたときに、前記不揮発性メモリより前回更新したアドレス変換テーブルを読み出し、次のアドレス変換テーブルとして前記不揮発性メモリに書き込む請求項５に記載のメモリカード。
【請求項７】
前記ブロック管理手段は、
前記アドレス変換テーブルを不揮発性メモリの特定の物理ブロックにページ単位に追記し、前記特定の物理ブロックの全ページが書き込み済みになった場合は、新規物理ブロックの最初のページより順番に前記アドレス変換テーブルを書き込むものである請求項５又は６に記載のメモリカード。
【請求項８】
前記更新検出手段は、
空き領域のある物理ブロックにデータ書き込む際に書き込みエラーが検出されたときに、エラー検出に伴うアドレス変換テーブルの物理ブロックの更新のみを検出して出力するものである請求項５〜７のいずれかに記載のメモリカード。
【請求項９】
複数のメモリカードと、
前記複数のメモリカードの書き込みを並列に制御するメモリカードコントローラと、を具備するメモリカードドライブであって、
前記メモリカードは、
不揮発性メモリと、
前記不揮発性メモリを制御するメモリ制御部と、を具備するメモリカードであって、
前記メモリ制御部は、
ホスト機器が発行するコマンドの論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示すアドレス変換テーブルと、
前記ホスト機器からライトコマンドが与えられたときに、前記アドレス変換テーブルから論理ブロックに対応する物理ブロックを参照して当該物理ブロックに空き領域があればその物理ブロックにデータを書き込み、空き領域がなければ新規物理ブロックにデータを書き込むと共に前記アドレス変換テーブルを更新し、前記アドレス変換テーブルを前記不揮発性メモリに書き込むブロック管理手段と、
アドレス変換テーブルが更新されたときに、その旨を検出して前記メモリカードコントローラに出力する更新検出手段と、
外部から与えられたアドレス変換テーブル更新コマンドを検出して、前記ブロック管理手段に前記アドレス変換テーブル更新コマンドを伝える更新コマンド検出手段と、を具備するものであり、
前記メモリカードコントローラは、
各メモリカードのアドレス変換テーブルを格納している物理ブロックの書き込みページ数が同一になるように、特定のメモリカードに、アドレス変換テーブル更新コマンドを発行することを特徴としたメモリカードドライブ。
【請求項１０】
前記メモリ制御部の更新検出手段は、
空き領域のある物理ブロックにデータ書き込む際に書き込みエラーが検出されたときに、エラー検出に伴うアドレス変換テーブルの物理ブロックの更新のみを検出して前記メモリカードコントローラに出力する請求項９記載のメモリカードドライブ。
【請求項１１】
前記メモリカードコントローラは、
並列に接続されている前記複数のメモリカードのうちいずれかのメモリカードからのみアドレス変換テーブル更新の情報が伝えられたときに、その他のメモリカードに、アドレス変換テーブル更新コマンドを発行する請求項９又は１０に記載のメモリカードドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発メモリを内蔵したメモリカード及びメモリカードを含むメモリカードドライブに関し、特に複数のメモリカードに動画像データ等を書き込むためのメモリカード及びメモリカードドライブに関する。
【背景技術】
【０００２】
近年、不揮発性メモリを用いたメモリカードは大容量化が進んでおり、音声のみならず、映像信号の記録メディアとしても民生ディジタル機器に拡がりつつある。大容量のメモリカードの容量は、例えば数Ｇバイト（以下、単にＢという）であり、実効記録レートは例えば２ＭＢ／ｓｅｃである。このようなメモリカードに、ディジタルビデオの映像信号と音声信号を記録するには、約４ＭＢ／ｓｅｃの記録レートが必要であり、大容量のメモリカードでも短時間しか記録することができない。そこで、複数のメモリカードに並行してデータを記録することで、帯域と容量を増加させる方法が提案されている。特許文献１には、外部インターフェイスを有するメモリカードドライブ本体に、複数のメモリカードの装着部を設け、これらの装着部に複数のメモリカードを装着することによって、１個のメモリカードドライブで大容量の情報を記録可能にする技術が開示されている。
【０００３】
一方、不揮発性メモリで構成されるメモリカードでは、書き換え回数は約１０万回に制限されている。よって、特定の物理ブロックやページに書き換えが集中するのを避けるため、メモリカードにアクセスするホスト機器が発行する論理アドレスを、メモリカード内部で物理アドレスに変換して不揮発性メモリに書き込む。つまり、同一の論理アドレスを発行しても、メモリカード上では別の物理アドレスに書き込む。上記のように、記録する物理アドレスを循環させながら記録していく手法をレベリングという。
【０００４】
このように、レベリングを実施しながら記録する場合は、論理アドレスと物理アドレスの変換テーブル（以下、論物変換テーブルという）を、メモリカード内部の不揮発性メモリに記録していくことが必要になる。この場合データ書き込み時のメモリカードのステップは、以下のようになる。
（１） 不揮発性メモリに格納されている論物変換テーブルを読み取り、メモリカード内部のメモリカードコントローラの揮発性メモリに格納する。
（２） ホスト機器から発行される論理アドレスを、論物変換テーブルを参照して物理アドレスに変換し、物理アドレスで示される不揮発性メモリのページにデータを書き込む。
（３）オーバーライトを繰り返す等によりレベリングが必要な場合は、論物変換テーブルを更新し、不揮発性メモリに反映する。
【０００５】
メモリカードの大容量化に比例して、この論物変換テーブルも大きくなっていく。例えば、１ページが５１２Ｂで構成されている１ＧＢのメモリカードの場合、ページ数は約2,000,000個であるが、４ＧＢのメモリカードではページ数は8,000,000になる。ページ数に比例して論物変換テーブルも増大していくので、論物変換テーブルを読み取る（１）の時間、及び論物変換テーブルの書き込みに要する（３）の時間も長くなっていく。
【０００６】
また、特許文献２では、複数個に分割された論物変換テーブルと、論物変換テーブルを書き込む物理アドレスを示す情報であるＡＴＩ情報を不揮発性メモリに記録し、論物変換テーブルの更新が所定回数実施される毎にＡＴＩ情報を更新することにより、論物変換テーブルを書き込む物理アドレスを適宜遷移していくことで、同じ物理アドレスに対する論物変換テーブルの書き換え回数の増加を防止している。
【０００７】
従来のメモリカードでは、記録容量の増加に比例して、論物変換テーブルのサイズが増大するため、論物変換テーブルやＡＴＩ情報の更新が記録レートに与える影響が無視できなくなる。この特性に加えて、大容量のメモリカードを複数個使用して並列動作させる従来のメモリカードドライブでは、メモリカード毎に論物変換テーブルやＡＴＩ情報の更新が発生するために、より一層これらの更新処理が記録レートに与える影響が大きくなるという問題点があった。
【０００８】
例えば、論物変換テーブルを揮発性メモリに保持し、タイマーを用いて所定時間毎に、または所定書き込み回数毎に不揮発性メモリ上の論物変換テーブルを更新するものとする。このメモリカードを並列動作させた場合は、各メモリカードが同一の動作をするとは限らないため、不揮発性メモリ上の論物変換テーブルの更新が同時に行われない可能性が高い。例えば、４枚のメモリカードで構成されたメモリカードドライブでは、最悪の場合、論物変換テーブルが別々の時間に更新されるため、論物変換テーブルの更新による記録レートの劣化は４倍になってしまう。
【０００９】
そこで特許文献３では、複数のメモリカードを並列動作させて高速化したメモリカードドライブにおいて、メモリカードに、論物変換テーブルの更新するための制御可能なアドレス変換情報更新コマンドを備える。そして搭載したすべてのメモリカードにアドレス変換情報更新コマンドを同時に発行するようにしている。これにより、各メモリカードの論物変換テーブルの更新を同期化し、書き込み転送レートの劣化を抑制することができる。
【特許文献１】特開２００２−１８９９９２号公報
【特許文献２】特開２００４−１９９６０５号公報
【特許文献３】特開２００６−１５５１２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
次に、従来のメモリカードドライブで、書き込みエラーが発生した場合の動作について説明する。図１は、メモリカードドライブ１００の構成例であり、外部インターフェイス１１１はＡＴＡにより外部のホスト機器とのインターフェイスを行う。メモリカードコントローラ１１２は、ＳＤカード等のメモリカード１１３，１１４，１１５，１１６を制御するものである。メモリカード１１３〜１１６は、上書きができないフラッシュメモリなどの不揮発性メモリが使用される。
【００１１】
各メモリカードのフラッシュメモリは、複数の物理ブロックによって構成される。物理ブロックは消去の単位であり、図２に物理ブロックの概要図を示す。物理ブロックはＮ個のページによって構成され、書き込みはページ番号順に、ページ単位で実行される。フラッシュメモリは書き込み済みのページには上書きできないため、フラッシュメモリに一旦データが書き込まれた後は、新規物理ブロックを確保し、新規物理ブロックを消去してから改めてデータを書き込む。また各メモリカード１１３〜１１６は夫々独立した論物変換テーブルを有している。データを記録する際には転送を高速化するため、ストライピング記録がされる。例えばライトコマンドのセクタ番号をＮ＿Ｓｅｃとすると、以下のように各メモリカードにストライピング記録される。
メモリカード１１３には０≦（Ｎ＿Ｓｅｃ％１６）＜４のセクタ番号に該当するデータを記録する。
メモリカード１１４には４≦（Ｎ＿Ｓｅｃ％１６）＜８のセクタ番号に該当するデータを記録する。
メモリカード１１５には８≦（Ｎ＿Ｓｅｃ％１６）＜１２のセクタ番号に該当するデータを記録する。
メモリカード１１６には１２≦（Ｎ＿Ｓｅｃ％１６）＜１６のセクタ番号に該当するデータを記録する。
【００１２】
上記のようにストライピングされるメモリカードドライブにおいて、ＡＴＡのライトコマンドの先頭セクタ番号、ライトセクタ数を以下のように限定する。
（ａ）（ライトコマンドの先頭セクタ番号）％１６＝０
（ｂ）（１ライトコマンドにかかるライトセクタ数）％１６＝０
こうすれば４枚のメモリカードには必ず同時にセクタ単位の書き込みが発生するため、各メモリカードが受け付けるライトコマンド数は一定になる。
【００１３】
さて、フラッシュメモリは書き込み時に書き込みエラーが発生することがある。たとえば、物理ブロックのページ（Ｎ−２）の書き込み中にエラーが発生した場合について、図３を参照にしながら説明する。
【００１４】
図３は、書き込みエラー発生時の動作の一例である。図３（ａ）に示すように、ある物理ブロックにデータを書き込んでおり、ページ番号ＰＮ０〜（Ｎ−３）までハッチングで示すように正常にデータを書き込んでいたとする。ここでページ番号（Ｎ−２）への書き込み中にエラーが発生した場合には、当該物理ブロックをバッドブロックとし、図３（ｂ）に示すように別の物理ブロックを確保する。新規に確保した物理ブロックを一旦消去し、書き込み済みのＰＮ０〜（Ｎ−３）のデータを新物理ブロックにコピーした後に、ＰＮ（Ｎ−２）にデータを書き込む。このようにフラッシュメモリで書き込みエラーが発生した場合は、新規物理ブロックを確保し、書き込みエラーが発生したブロックのデータを移動させる処理を行う。
【００１５】
図４は、従来の構成において、メモリカード１１３〜１１６のうち１枚のメモリカードにのみエラーが発生した場合のアドレス変換テーブルを記録する物理ブロックの説明図である。図４（ａ）は、（Ｎ−２）回目の書き込み後の状態を示し、右端のメモリカード１１６は、（Ｎ−２）回のうち１回に書き込みエラーがあって他のメモリカードに比べて１ページ分多くアドレス変換テーブルが書き込まれている。図４（ｂ）は、（Ｎ−１）回目の書き込み後の状態を示す。ここで右端のメモリカード１１６は、１回アドレス変換テーブルの書き込みページが多い。
【００１６】
図４（ｃ）は、Ｎ回目の書き込みの状態により、さらに１回アドレス変換テーブルを更新した場合の状態を示す。Ｎ回目の更新では、右端のメモリカード１１６にのみ、アドレス変換テーブルを記録する物理ブロックを新規物理ブロックとし、そのページ０に書き込み、元の物理ブロックを消去して物理ブロックを更新している。
【００１７】
図４（ｄ）では、さらに、もう１回アドレス変換テーブルの更新がなされたときの状態を示す。（Ｎ＋１）回目の更新では、メモリカード１１３，１１４，１１５において、アドレス変換テーブルを記録する物理ブロックを更新している。
【００１８】
このように複数のメモリカードから構成されるメモリカードドライブにおいて、書き込みエラーが発生したメモリカードは、新規物理ブロックを確保するため論物変換テーブルの更新回数が他のメモリカードより多くなる。このため、各メモリカードの論物変換テーブルを更新するタイミングがずれてしまい、結果として記録レートが低下してしまうといった問題があった。
【００１９】
さらに、書き込みエラーが各メモリカードに異なった回数ずつ発生すると、アドレス変換テーブルを記録する物理ブロックの更新は４回に分かれて発生することになり、さらにその影響は大きい。フラッシュメモリの１物理ブロックの消去時間は、１ページの記録に比較して１０倍以上の時間がかかるので、物理ブロックの消去を伴うアドレス変換テーブルの更新が４相で発生した場合の影響は大きくなる。
【００２０】
本発明はこのような問題点に鑑みてなされたもので、複数枚のメモリカードで構成され、メモリカードを並列動作させて高速化したメモリカードドライブにおいて、論物変換テーブルの更新による記録レートの劣化を最小限に抑えるメモリカード及びメモリカードドライブを提供することを目的とする。
【課題を解決するための手段】
【００２１】
この課題を解決するために本発明のメモリカードは、不揮発性メモリ、及び前記不揮発性メモリを制御するメモリ制御部を有する複数のメモリグループと、前記メモリグループに接続され、前記メモリグループにデータを書き込み読み出す統合制御手段と、を具備するメモリカードであって、前記メモリグループの前記メモリ制御部は、ホスト機器が発行するコマンドの論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示すアドレス変換テーブルと、前記ホスト機器からライトコマンドが与えられたときに、前記アドレス変換テーブルから論理ブロックに対応する物理ブロックを参照して当該物理ブロックに空き領域があればその物理ブロックにデータを書き込み、空き領域がなければ新規物理ブロックにデータを書き込むと共に前記アドレス変換テーブルを更新し、前記アドレス変換テーブルを前記不揮発性メモリに書き込むブロック管理手段と、前記アドレス変換テーブルの物理ブロックが更新されたときに、その旨を検出して外部に出力する更新検出手段と、外部から与えられたアドレス変換テーブル更新コマンドを検出して、前記ブロック管理手段に前記アドレス変換テーブル更新コマンドを伝える更新コマンド検出手段と、を具備するものであり、前記統合制御手段は、各メモリグループのアドレス変換テーブルを格納している物理ブロックの書き込みページ数が同一になるように、前記書き込みページ数が少ない前記メモリグループのメモリ制御部に、アドレス変換テーブル更新コマンドを発行するものである。
【００２２】
ここで前記メモリグループは、アドレス変換テーブル更新コマンドを受信したときに、前記不揮発性メモリより前回更新したアドレス変換テーブルを読み出し、次のアドレス変換テーブルとして前記不揮発性メモリに書き込むようにしてもよい。
【００２３】
ここでメモリ制御部のブロック管理手段は、不揮発性メモリの特定の物理ブロックにページ単位に追記され、前記特定の物理ブロックの全ページが書き込み済みになった場合は、消去可能な新規物理ブロックを抽出して消去し、新規物理ブロックの最初のページより順番に前記アドレス変換テーブルを書き込むようにしてもよい。
【００２４】
ここで前記更新検出手段は、空き領域にある物理領域にデータを書き込む際に書き込みエラーが検出されたときに、エラー検出に伴うアドレス変換テーブルの物理ブロックの更新のみを検出して外部に出力するようにしてもよい。
【００２５】
この課題を解決するために本発明のメモリカードは、不揮発性メモリと、前記不揮発性メモリを制御するメモリ制御部と、を具備するメモリカードであって、前記メモリ制御部は、ホスト機器が発行するコマンドの論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示すアドレス変換テーブルと、前記ホスト機器からライトコマンドが与えられたときに、前記アドレス変換テーブルから論理ブロックに対応する物理ブロックを参照して当該物理ブロックに空き領域があればその物理ブロックにデータを書き込み、空き領域がなければ新規物理ブロックにデータを書き込むと共に前記アドレス変換テーブルを更新し、前記アドレス変換テーブルを前記不揮発性メモリに書き込むブロック管理手段と、前記アドレス変換テーブルの物理ブロックが更新されたときに、その旨を外部に出力する更新検出手段と、外部から与えられたアドレス変換テーブル更新コマンドを検出して、前記ブロック管理手段に前記アドレス変換テーブル更新コマンドを伝える更新コマンド検出手段と、を具備するものである。
【００２６】
ここで前記ブロック管理手段は、前記更新コマンド検出手段よりアドレス変換テーブル更新コマンドが与えられたときに、前記不揮発性メモリより前回更新したアドレス変換テーブルを読み出し、次のアドレス変換テーブルとして前記不揮発性メモリに書き込むようにしてもよい。
【００２７】
ここで前記ブロック管理手段は、前記アドレス変換テーブルを不揮発性メモリの特定の物理ブロックにページ単位に追記し、前記特定の物理ブロックの全ページが書き込み済みになった場合は、新規物理ブロックの最初のページより順番に前記アドレス変換テーブルを書き込むようにしてもよい。
【００２８】
ここで前記更新検出手段は、空き領域のある物理ブロックにデータ書き込む際に書き込みエラーが検出されたときに、エラー検出に伴うアドレス変換テーブルの物理ブロックの更新のみを検出して出力するようにしてもよい。
【００２９】
この課題を解決するために本発明のメモリカードドライブは、複数のメモリカードと、前記複数のメモリカードの書き込みを並列に制御するメモリカードコントローラと、を具備するメモリカードドライブであって、前記メモリカードは、不揮発性メモリと、前記不揮発性メモリを制御するメモリ制御部と、を具備するメモリカードであって、前記メモリ制御部は、ホスト機器が発行するコマンドの論理ブロックと前記不揮発性メモリの物理ブロックとの対応を示すアドレス変換テーブルと、前記ホスト機器からライトコマンドが与えられたときに、前記アドレス変換テーブルから論理ブロックに対応する物理ブロックを参照して当該物理ブロックに空き領域があればその物理ブロックにデータを書き込み、空き領域がなければ新規物理ブロックにデータを書き込むと共に前記アドレス変換テーブルを更新し、前記アドレス変換テーブルを前記不揮発性メモリに書き込むブロック管理手段と、アドレス変換テーブルが更新されたときに、その旨を検出して前記メモリカードコントローラに出力する更新検出手段と、外部から与えられたアドレス変換テーブル更新コマンドを検出して、前記ブロック管理手段に前記アドレス変換テーブル更新コマンドを伝える更新コマンド検出手段と、を具備するものであり、前記メモリカードコントローラは、各メモリカードのアドレス変換テーブルを格納している物理ブロックの書き込みページ数が同一になるように、特定のメモリカードに、アドレス変換テーブル更新コマンドを発行することを特徴とするものである。
【００３０】
ここで前記メモリ制御部の更新検出手段は、空き領域のある物理ブロックにデータ書き込む際に書き込みエラーが検出されたときに、エラー検出に伴うアドレス変換テーブルの物理ブロックの更新のみを検出して前記メモリカードコントローラに出力するようにしてもよい。
【００３１】
ここで前記メモリカードコントローラは、並列に接続されている前記複数のメモリカードのうちいずれかのメモリカードからのみアドレス変換テーブル更新の情報が伝えられたときに、その他のメモリカードに、アドレス変換テーブル更新コマンドを発行するようにしてもよい。
【発明の効果】
【００３２】
上記の構成により、メモリカードの一部に書き込みエラーがあっても、各メモリカードのアドレス変換テーブルの更新を同期化することができ、書き込み転送レートの劣化を最小限にすることができる。また、書き込み転送レートの変動が発生する周期を固定できるため、ホスト機器に実装するバッファメモリ量を抑制することが可能である。
【００３３】
さらに、アドレス変換テーブル更新コマンドを受信したメモリカードは、現アドレス変換情報をコピーすることによってアドレス変換テーブル更新を実施するため、アドレス変換テーブル更新コマンドの実行に要する時間は比較的小さい。
【発明を実施するための最良の形態】
【００３４】
図５は本発明の第１の実施の形態によるメモリカードドライブの構成を示す。図５は、メモリカードドライブ１０の構成例であり、外部インターフェイス１１はＡＴＡにより外部のホスト機器とのインターフェイスを行う。メモリカードコントローラ１２は、ＳＤカード等のメモリカード１３，１４，１５，１６を制御するものである。メモリカード１３〜１６は、上書きができないフラッシュメモリなどの不揮発性メモリを内蔵するメモリカードである。
【００３５】
各メモリカード１３〜１６は同一であるので、メモリカード１３について説明する。図６は本実施の形態のメモリカードの内部構成を示す。図６において、メモリカード１３はメモリ制御部２０及びフラッシュメモリ３０を有している。メモリ制御部２０はフラッシュメモリ３０にデータを書き込み及び読み出す制御を行うものである。
【００３６】
図７にフラッシュメモリ３０の領域マップを示す。図７に示すように、フラッシュメモリ３０はＡ個（Ａは自然数）の物理ブロックより構成されている。本実施の形態では、Ａ個の物理ブロックに対して０〜（Ａ−１）の物理ブロック番号ＰＢを付している。以下では物理ブロックは６４ｋＢの容量とする。
【００３７】
そして、物理ブロック番号ＰＢ０〜ＰＢ（Ｂ−１）（Ｂは、Ｂ＜Ａを満たす自然数）のＢ個の物理ブロックをフラッシュメモリ３０の第１領域３１−１とし、物理ブロック番号Ｂ〜（Ａ−１）の（Ａ−Ｂ）個の物理ブロックを第２領域３１−２とする。フラッシュメモリ３０の第１領域にはホストから転送されるユーザデータを記録する。このデータにはＦＡＴ等のファイルシステムが含まれる。また第２領域３１−２には後述するアドレス変換テーブル２３等のシステムデータを記録する。
【００３８】
また論理ブロック番号は０〜（Ｂ−ｍ）（ｍ＞１）とし、論理ブロックに対応するメモリの第１領域の物理ブロック数を論理ブロック数より多く割り当てる。これにより、書き込み済みの論理ブロックのデータを書き換える場合において、当該論理ブロックに対応している物理ブロックとは別の物理ブロックに書き込むことが可能となる。よって、ホスト機器から同一の論理ブロックに集中してライトコマンドが発行された場合においても、書き換えが同一の物理ブロックに集中することを防止している。
【００３９】
また、各物理ブロックは図２に示すように、Ｎ個（Ｎは自然数）のページによって構成され、各ページには０〜（Ｎ−１）のページ番号ＰＮが付される。物理ブロックのページは書き込みの単位であり、ここではＮを例えば３２、１ページ当たりの容量を２ｋＢとする。データサイズが１ページに相当する場合は、同一物理ブロックに３２回データを書き込むことができる。
【００４０】
次にメモリ制御部２０について詳細に説明する。メモリ制御部２０内のインターフェイス２１は、コマンド受信及びデータの転送を行うインターフェイスである。またアドレス変換テーブルがエラーによって更新された場合にその旨を外部に伝える機能も有している。
【００４１】
コマンド解析手段２２はインターフェイス２１によって受信されたコマンドを解析するものである。
【００４２】
アドレス変換テーブル２３は、ホストから発行される論理アドレス番号とフラッシュメモリ３０に書き込まれている物理アドレス番号との対応を示すテーブルである。
【００４３】
図８に、アドレス変換テーブル２３の一例を示す。図８では、論理ブロック番号０のブロックがブロック番号３の物理ブロックに、論理ブロック番号１が物理ブロック番号４に、ブロック番号２の論理ブロックがブロック番号６の物理ブロックにマッピングされていることを示している。また論理ブロック番号Ｌ及び（Ｌ＋１）の論理ブロックは、データが書かれていないことを示している。尚ブロック番号は０〜Ａ−１が有効値なので、Ａは無効であることを示している。
【００４４】
アドレス変換テーブル２３は、フラッシュメモリ３０の第２領域３１−２の物理ブロックに順次書き込まれる。ここでは１ページに記録されるものとし、アドレス変換テーブル２３の更新が発生すると、０ページから順番に書き込まれる。各物理ブロックはＮ個（Ｎは自然数）のページによって構成されるので、Ｎ回目の書き込みで、当該物理ブロックは全ページ書き込み済みになる。Ｎ＋１回目のアドレス変換テーブル２３は新物理ブロックに書き込まれる。このときフラッシュメモリの第２領域３１−２の物理ブロック番号の大きいものから降順でアドレス変換テーブル２３を記録する物理ブロックを割り当てる。
【００４５】
ブロック管理テーブル２４は、各物理ブロックが、消去可能であるかどうかを登録するものである。ブロック管理テーブル２４は特にフラッシュメモリ３０に書き込む必要はない。電源投入時にアドレス変換テーブル２３を読み取り、フラッシュメモリの全物理ブロックについて、アドレス変換テーブル２３に登録されているブロックを「０」、そうでないブロックを「１」のように登録して作成する。この場合に「１」と登録されたフラッシュメモリの第１領域の物理ブロックが消去可能ブロックとなる。
【００４６】
ブロック管理手段２５は、ホストよりライトコマンドが発行された場合、アドレス変換テーブル２３を参照してライトコマンドに含まれる論理アドレスに対応する物理ブロックを判別する。更にブロック管理テーブル２４を参照して空きページがあるかどうかを判別する。空きページがあればそのページに書き込み、空きページがなければ新物理ブロックを抽出し、抽出された物理ブロックにデータを書き込む。そしてデータを書き込んだ物理ブロック番号とホスト機器から発行された論理ブロック番号の対応関係をアドレス変換テーブル２３に登録するものである。
【００４７】
更新検出手段２６は、ライトコマンドに対して新規物理ブロックを抽出することなくデータを書き込んだときに、書き込みエラーがあった旨の情報が伝えられたときにアドレス変換テーブル２３がエラーによって余分に更新されたことを検出する。更にこの検出の結果をインターフェイス２１に伝えるものである。
【００４８】
更新コマンド検出手段２７は、アドレス変換テーブルを更新するための更新コマンドを受信したことを検出し、検出した場合にはブロック管理手段２５を介してアドレス変換テーブル２３を更新するものである。
【００４９】
フラッシュ制御手段２８は、フラッシュメモリ３０へのデータの書き込み及びフラッシュメモリ３０からのデータの読み出しを行うものである。またデータの書き込み中にエラーがあれば、エラーがあったことを更新検出手段２６に伝える。
【００５０】
次に本実施の形態の半導体記録装置の動作について、以下詳細に説明する。例えばＡＴＡのセクタ番号をＮ＿Ｓｅｃとすると、転送の高速化を図るため、各メモリカードにストライピング記録される。メモリカードに内蔵されているフラッシュメモリの記録の最小単位はページであるため、ページサイズである２ｋＢ単位でストライピング記録される。
メモリカード１３には０≦（Ｎ＿Ｓｅｃ％１６）＜４のセクタ番号に該当するデータを記録する。
メモリカード１４には４≦（Ｎ＿Ｓｅｃ％１６）＜８のセクタ番号に該当するデータを記録する。
メモリカード１５には８≦（Ｎ＿Ｓｅｃ％１６）＜１２のセクタ番号に該当するデータを記録する。
メモリカード１６には１２≦（Ｎ＿Ｓｅｃ％１６）＜１６のセクタ番号に該当するデータを記録する。
【００５１】
上記のようにストライピングされるメモリカードドライブにおいて、
（ａ）（ＡＴＡのライトコマンドの先頭セクタ番号）％１６  ＝０
（ｂ）（１ライトコマンドにかかるライトセクタ数）％１６  ＝０
に限定すると、４枚のメモリカードには必ず同時にセクタの書き込みが発生するため、各メモリカードが受け付けるライトコマンド数は一定になる。
【００５２】
次に個別のメモリカードの書き込み処理について図９のフローチャートを参照しつつ説明する。図９のフローチャートにおいて、ステップＳ１でライトコマンドかどうかを判別し、ライトコマンドであればステップＳ２に進む。
ステップＳ２において、アドレス変換テーブル２３を読み出し、ライトコマンドに含まれる論理ブロックに割り当てられている物理ブロックを検出する。
ステップＳ３において、検出した物理ブロックに未記録ページが存在するかを検出する。
ステップＳ４において、未記録ページが存在する場合は、未記録ページにライトコマンドのデータを書き込み、処理を終える。
ステップＳ５において、未記録ページが存在しない場合は、消去可能な物理ブロックをブロック管理テーブル２４より抽出する。
ステップＳ６において、抽出した新物理ブロックのデータを消去する。
ステップＳ７において、消去した新物理ブロックに、当該コマンドのデータを書き込む。
ステップＳ８において、アドレス変換テーブル２３を更新し、ライトコマンドに係る論理ブロックと新物理ブロックとを対応付ける。
ステップＳ９において、アドレス変換テーブル２３をフラッシュメモリ３０に書き込む。
ステップＳ１０において、ブロック管理テーブル２４において、ステップＳ３で検出した物理ブロックを消去可能物理ブロックに、ステップＳ５で抽出した新物理ブロックを消去不可ブロックとなるように更新する。
上記のように、データを記録する際には、当該論理ブロックに割り当てられている物理ブロックに未記録ページが存在するか否かにより、処理は大きく異なる。
【００５３】
次に、上記のステップＳ４において、データの書き込み中に書き込みエラーが発生した場合には、図１０のフローチャートに進んでエラー処理が行われる。
ステップＳ１１において、消去可能な物理ブロックをブロック管理テーブル２４より抽出する。
ステップＳ１２において、抽出した新物理ブロックのデータを消去する。
ステップＳ１３において、書き込みエラーが発生した元の物理ブロックの書き込む以前に記録されていたデータを新物理ブロックにコピーする。
ステップＳ１４において、ライトコマンドの書き込むべきデータを新物理ブロックに書き込む。
ステップＳ１５において、アドレス変換テーブル２３を更新し、ライトコマンドに含まれる論理ブロックと新物理ブロックとを対応付ける。
ステップＳ１６において、アドレス変換テーブル２３をフラッシュメモリ３０に記録する。
ステップＳ１７において、ブロック管理テーブル２４において、新物理ブロックと、エラーが発生した物理ブロックを消去不可ブロックに更新する。またエラーが発生したブロックをバッドブロックとして別途管理する。
上記に説明したように、エラーが発生した場合は、現物理ブロックのデータを新物理ブロックにコピーする処理が発生するため、新たに新物理ブロックを抽出し、アドレス変換テーブル２３を更新する処理が発生する。
【００５４】
図５の構成のメモリカードドライブの書き込み処理において、書き込みエラー発生がない場合の動作について詳細に説明する。ホスト機器は、
（ａ）（ライトコマンドの先頭セクタ番号）％１６＝０
（ｂ）（１ライトコマンドにかかるライトセクタ数）％１６＝０
を満たすべく、８ｋＢ単位でライトコマンドコマンドを発行して書き込んでいく。
例えば、セクタ０より８ｋＢ毎に連続してライトコマンドを発行する。フラッシュメモリ３０の物理ブロックサイズは６４ｋＢであるので、８ｋＢのデータ書き込みのライトコマンドを３２回（６４＊４／８）発行すると、次のライトコマンドではデータは新規の物理ブロックに書き込まれることになる。つまり、下記（ｃ）の条件を満たすときに、ステップＳ１〜ステップＳ３，ステップＳ５〜ステップＳ１０の処理が発生する。
（ｃ）（コマンド発行回数）％３２＝１
逆に（ｃ）を満たさない回数での書き込みは、ステップＳ１〜ステップＳ４のみの処理で終了となる。
【００５５】
また、ステップＳ８のアドレス変換テーブルを記録する物理ブロックの更新について説明する。３２回のライトコマンドがあれば物理ブロックが更新され、これに伴いアドレス管理テーブルに割り当てられた物理ブロックも１ページを更新する。従って１０２４回（＝３２×３２）のライトコマンドが発行されると、アドレス変換テーブルを記録する物理ブロックの全３２ページが記録済みになる。そして、次のライトコマンドが発行されると、ブロック管理手段２５はフラッシュメモリ３０の第２領域３１−２から降順に１物理ブロックを抽出し、抽出した物理ブロックを消去し、消去した物理ブロックの最初のページにアドレス管理テーブルを書き込む。従ってエラーが発生していない場合には、（ａ）（ｂ）のルールに従ってライトコマンドを発行していれば、アドレス管理テーブルの物理ブロックの更新は、全メモリカード１３〜１６で同時にかつ定期的に発生する。この場合、アドレス管理テーブルのブロック更新に伴う転送レートの劣化は最小となる。
【００５６】
次に、４枚のメモリカードのうち、１枚のメモリカードに書き込みエラーが発生した場合の動作について、図１１を参照にしながら詳細に説明する。図１１において左端から順次メモリカード１３，１４，１５，１６のアドレス変換テーブルを格納している物理ブロックの状態を示す。また図１１（ａ）は（Ｎ−２）回目の書き込みにおいて、メモリカード１６のフラッシュメモリにデータを記録しているときに書き込みエラーが発生したとする。書き込みエラーが発生した場合は、フラッシュ制御手段２８はその旨を更新検出手段２６に伝える。余分にアドレス変換テーブルの更新が発生するため、図１１（ａ）に示すように、右端のメモリカード１６は、１ページ分余分にアドレス変換テーブルが書き込まれている。本実施の形態では、更新検出手段２６はステップＳ４に分岐しているときに書き込みエラーがあれば、アドレス変換テーブルの更新を検出する。そしてインターフェイス２１を介してメモリカードコントローラ１２にこの情報を伝送する。ライトコマンド終了のステータスにおいて、アドレス変換テーブルの更新の有無を伝送するので、メモリカードコントローラ１２は右端のメモリカード１６にアドレス変換テーブルの更新が余分に発生したことを認識できる。
【００５７】
このときメモリカードコントローラ１２は、他の３つのメモリカード１３，１４，１５にアドレス変換テーブル更新コマンドを発行する。アドレス変換テーブル更新コマンドを受信したメモリカード１３，１４，１５は、夫々現在のアドレス変換テーブルを読み出し、図１１（ｂ）に矢印で示すように次のページにアドレス変換テーブルを書き込む。これにより、全メモリカードのアドレス管理テーブルを格納している物理ブロックの記録済みページ数を同一にすることができる。この場合の各メモリカードの揮発性メモリに保持されているアドレス管理テーブル２３をフラッシュメモリに再度書き込むようにしてもよい。またいずれかのメモリカードからアドレス変換テーブルの更新を検出したことが送信されたときに、メモリカードコントローラ１２は外部インターフェイス１１を介して外部のホスト機器にこの更新を伝送し、ホスト機器よりアドレス変換テーブル更新コマンドを発行するようにしてもよい。
【００５８】
図１１（ｃ）は、アドレス管理テーブルの（Ｎ−１）回目の書き込みにおいて、全メモリカード１３〜１６のアドレス管理テーブルを格納する物理ブロックの記録済みページ数に空きがなくなった場合を示す。
【００５９】
図１１（ｄ）は、アドレス管理テーブルのＮ回目の更新が発生し、全メモリカード同時に、（ステップＳ５）〜（ステップＳ１０）の処理がなされた場合を示す。このように本実施の形態では全メモリカードに同時にアドレス管理テーブルを保持する物理ブロックの更新が行われる。
【００６０】
アドレス変換テーブルの更新の影響について、定量的に説明する。フラッシュメモリの物理ブロックの消去時間をＴｅ、２ｋＢのページのプログラム時間（書き込み時間）をＴｐとする。各物理ブロックの容量は６４ｋＢ、物理ブロックのページ数は３２ページとする。フラッシュメモリを内蔵したメモリカードを４枚実装したメモリカードドライブ１０に１２８ｋＢのデータを書き込む場合の処理時間の平均値を求める。１２８ｋＢのデータは各メモリカード１３〜１６に３２ｋＢづつ書き込まれる。フラッシュメモリの各物理ブロックの容量は夫々６４ｋＢなので、１２８ｋＢのライトコマンドでは、１／２の割合で（ステップＳ５）〜（ステップＳ１０）の処理が必要となる。また、アドレス変換テーブルを記録する物理ブロックの更新は１／６４（＝１／（２＊３２））の割合で発生する。よって、１２８ｋＢのライトコマンドにかかる処理時間の平均値Ｔｗは次式（１）で示される。
Ｔｗ＝１／２＊Ｔｅ＋１６＊Ｔｐ＋１／６４＊Ｔｅ＋１／２＊Ｔｐ  ・・・（１）
式（１）の右辺第１項は、１２８ｋＢのデータを２回書き込むと、１回物理ブロックの消去が発生することを示す。
右辺第２項は、１２８ｋＢのデータの書き込みでは、各メモリカードあたり、１６ページの書き込み動作が発生することを示す。
右辺第３項は、１２８ｋＢのデータを６４回書き込むと、アドレス変換テーブルを記録する物理ブロックを別の物理ブロックに移すための消去が発生することを示す。
また右辺第４項は、１２８ｋＢのデータを２回書き込むと、アドレス変換テーブルを記録している物理ブロック内でテーブルの更新が発生することを示す。
【００６１】
次に、書き込みエラーが発生し、本実施の形態で説明した処理を実施しなかった場合の１２８ｋＢのデータのライトコマンドにかかる処理時間の平均値Ｔｗａを式（２）に示す。
Ｔｗａ＝  １／２＊Ｔｅ＋１６＊Ｔｐ＋４／６４＊Ｔｅ＋１／２＊Ｔｐ  ・・・（２）
【００６２】
式（２）に示すように、右辺の第３項が式（１）に比較して４倍になる。ここでフラッシュメモリの物理ブロックの消去にかかる時間を１ページの書き込み時間の６４倍とする。
Ｔｅ＝６４＊Ｔｐ
これを（１），（２）に代入したものを夫々式（３），（４）に示す。
Ｔｗ＝４９．５＊Ｔｐ  ・・・（３）
Ｔｗａ＝５２．５＊Ｔｐ  ・・・（４）
式（３）は式（４）と比較すると、６％程度の劣化が生じていることがわかる。
【００６３】
また、転送にかかる時間の最大値Ｔｗ＿Ｍａｘを式（５）に示す。
Ｔｗ＿Ｍａｘ  ＝  Ｔｅ＋Ｔｐ＋Ｔｅ＋Ｔｐ＝１３０＊Ｔｐ  ・・・（５）
式（５）に示すように、最大値は、平均値の約２．６倍の時間を要する。
【００６４】
従来では転送時間が最大値となる場合４回連続して発生する可能性があったが、本実施の形態では、前記最大値が発生する周期は６４回に１回であり、ｋ回の書き込みエラーがあってもその周期は（６４−ｋ）回に１回である。従って映像信号などのリアルタイム記録に対応する場合には、転送レートの変動に対応するバッファメモリの容量を小さくすることができる。
【００６５】
さらに式（１）、（２）は、アドレス変換テーブルにかかる第３項と第４項の値が大きくなれば、その効果は大きいことを示す。たとえば、メモリカードの物理ブロック数とアドレス変換テーブルのサイズとは比例するので、メモリカードの容量に比例して大きくなっていく。例えばアドレス変換テーブルが２ページに及ぶ場合には、効果は２倍になる。
【００６６】
以上説明したように、本実施の形態で示した構成により、各メモリカードのアドレス変換テーブルの物理ブロックの更新を同期させることができるので、書き込み転送レートにおけるアドレス変換テーブルの更新の影響を最小限に抑えることができる。
【００６７】
なお、本実施の形態のメモリカードドライブは、メモリカード４枚のストライピング（ＲＡＩＤ０）で実装したが、メモリカードの枚数、ＲＡＩＤの構成については、これに限定されるものではない。また本実施の形態では、所定回数の書き込みコマンドが実行されると、不揮発性メモリの論物変換テーブルを更新するようなメモリカードを例にとって説明した。本発明はこれに限らず電源投入後に論物変換テーブルを揮発性メモリに展開し、その論物変換テーブルを不揮発性メモリに書き戻すメモリカードに対しても適用できる。
【００６８】
尚この実施の形態では更新検出手段は書き込みエラーによる余分のアドレス変換テーブルの更新のみを検出しているが、全てのアドレス変換テーブルの更新を検出するようにしてもよい。この場合にはメモリカードコントローラ１２は並列に接続されている４つのメモリカードからほぼ同時にアドレス変換テーブルの更新が連絡されたときには何も処理を行わない。一方、一部のメモリカードからアドレス変換テーブルの更新が通知されたときに、他のメモリカードにアドレス変換テーブル更新コマンドを送出する。こうすれば並列接続されている４つのメモリカードのアドレス変換テーブルの物理ブロックの更新を同期させることができる。
【００６９】
（第２の実施の形態）
第１の実施の形態では、メモリカード４枚を制御するメモリカードドライブについて説明したが、フラッシュメモリを複数個制御するメモリカードであって、複数個のフラッシュメモリをＲ個のグループにわけ、前記グループごとに、メモリカードの内部で制御を行い、アドレス管理情報の更新のみを統合制御手段が管理するような構成であっても同様の効果が得られる。図１２はこのような第２の実施の形態によるメモリカードを示すものである。本図において、メモリカード４０は外部インターフェイス４１、統合制御手段４２を有している。また統合制御手段４２には複数のメモリグループ、この場合には４つのメモリグループ４３，４４，４５，４６が接続される。各メモリグループは夫々フラッシュメモリ４３ａ〜４６ａとメモリ制御部４３ｂ〜４６ｂを有している。各メモリグループのメモリ制御部４３ｂ〜４６ｂは、前述した第１の実施の形態のメモリ制御部２０と同一のものである。このように複数のフラッシュメモリをグループに分け、グループ毎にメモリ制御部で制御を行うと共に、アドレス変換テーブルの更新に関して統合制御部によってアドレス変換テーブルの更新回数を常に同期させる。即ち統合制御手段は、各メモリグループのアドレス変換テーブルを格納している物理ブロックの書き込みページ数が同一になるように、書き込みページ数が少ない前記メモリグループのメモリ制御部に、アドレス変換テーブル更新コマンドを発行する。これによってアドレス変換テーブルの物理ブロックの更新がメモリグループ毎にばらつくことなく一斉に更新されるため、転送レートの低下を避けることができる。
【産業上の利用可能性】
【００７０】
本発明に係るメモリカードドライブは、メモリカードへの書き込み時における転送レートを高めることができるため、動画データの記録という用途にメモリカードを用いる場合等に最適である。動画データの記録という用途に適していることから、映像機器の製造に関連する映像機器産業にて利用される可能性が高い。
【図面の簡単な説明】
【００７１】
【図１】従来のメモリカードドライブの構成を示す図
【図２】フラッシュメモリを構成する物理ブロックの構成図
【図３】書き込みエラーが発生した場合の修復動作の説明図
【図４】従来における、書き込みエラー発生後の処理フローを示す図
【図５】本発明の第１の実施の形態によるメモリカードドライブの構成の一例を示す図
【図６】本発明のメモリカードドライブで用いられるメモリカードの内部構成図
【図７】本実施の形態のメモリカードのフラッシュメモリの領域説明図
【図８】本実施の形態のアドレス変換テーブルの一例を示す図
【図９】本実施の形態のデータ書き込み処理を示すフローチャート
【図１０】本実施の形態の書き込みエラーがあったときのフローチャート
【図１１】本実施の形態における、書き込みエラー発生後の処理フローを示す図
【図１２】本発明の第２の実施の形態によるメモリカードの構成を示す図
【符号の説明】
【００７２】
１０  メモリカードドライブ
１１，４１  外部インターフェイス
１２  メモリカードコントローラ
１３〜１６  メモリカード
２０，４３ｂ〜４６ｂ  メモリ制御部
２１  インターフェイス
２２  コマンド解析手段
２３  アドレス変換テーブル
２４  ブロック管理テーブル
２５  ブロック管理手段
２６  更新検出手段
２７  更新コマンド検出手段
２８  フラッシュ制御手段
３０，４３ａ〜４６ａ  フラッシュメモリ
４２  統合制御手段
４３〜４６  メモリグループ
【図１】
2009282836.tif 000003
【図２】
2009282836.tif 000004
【図３】
2009282836.tif 000005
【図４】
2009282836.tif 000006
【図５】
2009282836.tif 000007
【図６】
2009282836.tif 000008
【図７】
2009282836.tif 000009
【図８】
2009282836.tif 000010
【図９】
2009282836.tif 000011
【図１０】
2009282836.tif 000012
【図１１】
2009282836.tif 000013
【図１２】
2009282836.tif 000014