(57)【要約】【課題】不揮発性記憶装置への書き込みデータバーストが不揮発性メモリのページ境界をまたぐとき、効率よく書き込みを行うために追加のバッファが必要となる。【解決手段】ホスト装置は不揮発性記憶装置のインターフェースバッファに格納できるセクタ数を取得し、データバースト内のＤＡＴＡパケット数ＮＤＢを決定する。続いてホスト装置は、最初のＤＡＴＡパケットから、Ｗｒｉｔｅ先セクタアドレスがＮＤＢの倍数である直前のＤＡＴＡパケットまでで第１データバーストを構成する。【選択図】図１
2011107928.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置とスレーブ装置とを接続して、命令の実行もしくはデータの送受信を行う通信路のインターフェース回路であって、
第一のデータ管理単位と、前記第一のデータ管理単位を１または複数個分束ねた第二のデータ管理単位があるとき、
データ転送命令直後は、前記第一のデータ管理単位で指定される開始アドレスから、前記第二のデータ管理単位の境界に達するまでのデータでデータバーストを構成し、以降は前記第二のデータ管理単位のデータでデータバーストを構成することを特徴とするインターフェース回路。
【請求項２】
前記第一のデータ管理単位は、５１２ｂｙｔｅであることを特徴とする、
請求項１に記載のインターフェース回路。
【請求項３】
請求項１乃至請求項２のいずれかに記載のインターフェース回路を備え、
前記インターフェース回路を介してスレーブ装置と接続して命令やデータの送受信を行うことを特徴とするホスト装置。
【請求項４】
請求項１乃至請求項２のいずれかに記載のインターフェース回路と、
不揮発性メモリと、
バッファと、
前記バッファのバッファサイズを格納したレジスタと、を備え、
前記インターフェース回路を介してホスト装置と接続して命令やデータの送受信を行う、
ことを特徴とするスレーブ装置。
【請求項５】
請求項３に記載のホスト装置と、
請求項４に記載のスレーブ装置と、を備える不揮発性記憶システムであって、
前記ホスト装置が前記スレーブ装置のレジスタに格納されたバッファサイズを読み出し、前記第二のデータ管理単位を決定する、
ことを特徴とする不揮発性記憶システム。
【請求項６】
前記第二のデータ管理単位は、不揮発性メモリの書き込み単位であるページサイズ、もしくは前記ページサイズの約数である、
ことを特徴とする請求項５に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置、および不揮発性記憶装置をはじめとするスレーブ装置との間のインターフェースを制御するインターフェース回路、およびインターフェース回路を含むホスト装置、スレーブ装置、およびホスト装置とスレーブ装置から構成される不揮発性記憶システムに関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを用いた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。不揮発性記憶装置は、光ディスクやテープメディアなどと比較して高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さ等のメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体としてその需要が広まっている。この不揮発性記憶装置は、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するフラッシュメモリ読み書き制御部、およびデジタルスチルカメラやパソコン（パーソナルコンピュータ）本体等のホスト装置との通信を司るスレーブインターフェース回路を有している。
【０００３】
以下スレーブ装置として不揮発性記憶装置の場合を中心に説明する。ホスト装置と不揮発性記憶装置の間は、複数本のインターフェースバスにより接続されている。このような外部バス上には、ホスト装置から不揮発性記憶装置に対する命令であるコマンドや通知、不揮発性メモリから読み出される、もしくは不揮発性メモリに書き込まれるデータ等が、デジタル信号として伝送される。不揮発性記憶装置の一例としてＳＤカードがある。これまでのＳＤカードでは、読み書きの際のデータの基本単位は５１２ｂｙｔｅのセクタであった。すなわち、ホスト装置およびＳＤカード間のデータ転送はセクタ単位で実施され、ＳＤカード上のアドレスもセクタ単位で管理されていた。また一般にホスト装置からＳＤカードをはじめとする不揮発性記憶装置へデータを転送する速度より、ＳＤカード内でデータを不揮発性メモリ（フラッシュメモリ）に書き込む速度のほうが遅いため、通常不揮発性記憶装置内にバッファを設け、不揮発性記憶装置がこれ以上データを受信できないときにはホスト装置に対してＢＵＳＹ通知を実施してホスト装置からのデータ送信を抑止する。このことにより速度差を吸収し、データのオーバーフローを防止している。
【０００４】
一方不揮発性記憶装置内の不揮発性メモリの大容量化に伴い、よりレートの高いデータを効率よく伝送するニーズが高まってきている。上記を実現するための一つの方法として、複数のセクタデータを束ねたデータバーストを単位として転送する方法がある。図６は、上記ニーズを実現するために、ホスト装置と、スレーブ装置の一種である不揮発性記憶装置と、が２本の伝送路で接続された従来の不揮発性記憶システムの構成例を示したブロック図である。
【０００５】
図６における不揮発性記憶システムは、ホスト装置６００と不揮発性記憶装置６１０とから構成され、両者はインターフェースバスである第１伝送路６２１および第２伝送路６２２により接続されている。第１伝送路６２１はホスト装置６００から不揮発性記憶装置６１０への通信（ダウンリンク）、第２伝送路６２２は不揮発性記憶装置６１０からホスト装置６００への通信（アップリンク）を担う。
【０００６】
ホスト装置６００は、少なくともアプリケーション６０１、メモリ６０２、ホストインターフェース回路６３０を含む。またホストインターフェース回路６３０は少なくとも制御パケット生成部６３１、制御パケット解析部６３２、データバースト生成部６３３からなる。
【０００７】
不揮発性記憶装置６１０は、少なくともスレーブインターフェース回路６４０、インターフェースバッファ６１１、ページバッファ６１２、不揮発性メモリ読み書き制御部６１３および不揮発性メモリ６１４からなる。またスレーブインターフェース回路６４０は、少なくとも制御パケット解析部６４１、制御パケット生成部６４２、データバースト解析部６４３からなる。またインターフェースバッファ（Ｉｎｔｅｒｆａｃｅ  Ｂｕｆｆｅｒ）６１１はＩＢ（Ａ）およびＩＢ（Ｂ）の２面から構成される。
【０００８】
不揮発性メモリ６１４への書き込みは通常セクタの倍数であるページと呼ばれる単位で実施される。ページバッファ６１２は、書き込みアドレスがページ境界に合致したセクタからページサイズ分のデータがそろって書き込みが可能になる。このことから、ページバッファ６１２へは、不揮発性メモリ６１４のページ境界に合わせて書き込む必要がある。またインターフェースバッファ６１１内のＩＢ（Ａ）およびＩＢ（Ｂ）のサイズは、ページサイズに等しいかページサイズの約数であれば、上記制御が容易となり、かつ不要なバッファ領域が削減可能となる。ここでは、ページサイズおよびＩＢ（Ａ）、ＩＢ（Ｂ）をすべて４セクタすなわち２ＫＢｙｔｅであると仮定する。なお不揮発性メモリ６１４上のページの一部に、すでに有効データが書き込まれているセクタを含むページの空きセクタにデータを書き込むときは、書き込みデータをページバッファ６１２に転送後、上記有効データもページバッファ６１２にコピーした上で不揮発性メモリ６１４に書き込まなければならない。
【０００９】
図７（ａ）〜（ｃ）はインターフェースバッファ６１１の構成の詳細を説明した図である。インターフェースバッファ６１１内の２面のバッファＩＢ（Ａ）、ＩＢ（Ｂ）は、いずれもＳｅｃｔｏｒ［０］からＳｅｃｔｏｒ［３］までの４つの領域に分かれており、それぞれにセクタ分のデータを格納することができる。ＩＢ（Ａ）およびＩＢ（Ｂ）のうち一方はスレーブインターフェース回路６４０と接続されているとき、もう一方はページバッファ６１２に
接続されている。
【００１０】
図７（ａ）はＩＢ（Ａ）がスレーブインターフェース回路６４０に、ＩＢ（Ｂ）がページバッファ１１２に接続されていることを示した図である。このときＩＢ（Ａ）は、スレーブインターフェース回路６４０からデータを受信することができる。一方ＩＢ（Ｂ）は、ページバッファ６１２へ書き込みデータの転送、および不揮発性メモリ６１４への書き込みを行う。
【００１１】
図７（ｂ）はＩＢ（Ａ）がページバッファ６１２にＩＢ（Ｂ）がスレーブインターフェース回路６４０に接続されていることを示した図である。、この場合、ＩＢ（Ａ）は、ページバッファ６１２へ書き込みのデータの転送、および不揮発性メモリ６１４への書き込みを行う。一方、ＩＢ（Ｂ）は、スレーブインターフェース回路６４０からデータを受信する。
【００１２】
図８は、本実施の形態において、ホスト装置６００から不揮発性記憶装置６１０にデータを書き込む際のパケットの流れをシーケンシャルに記載した図である。以下図６〜８を用いて、従来例の動作を説明する。なおインターフェースバッファ６１１の初期状態は図７（ａ）の通りとする。
【００１３】
ホスト装置６００内のアプリケーション６０１が不揮発性記憶装置６１０にデータを書き込もうとするとき、アプリケーション６０１はホストインターフェース回路６３０にメモリＷｒｉｔｅコマンドを発行するよう指示する。メモリＷｒｉｔｅコマンドには、Ｗｒｉｔｅ開始セクタアドレスが多重される。このとき、ホストインターフェース回路６３０内の制御パケット生成部６３１はメモリＷｒｉｔｅコマンドパケットを生成し、第１伝送路６２１を介して不揮発性記憶装置６１０に送信する（図８  ８０１）。
【００１４】
前記パケットを受信したスレーブインターフェース回路６４０は、制御パケット解析部６４１にてメモリＷｒｉｔｅコマンドであると解析される。不揮発性記憶装置６１０がコマンド受理可能であれば、スレーブインターフェース回路６４０内の制御パケット生成部６４２はＲＥＳパケットを生成し、第２伝送路６２２を介してホスト装置６００に送信する（図８  ８０２）。
【００１５】
ＲＥＳパケットを受信したホストインターフェース回路６３０は、制御パケット解析部６３２にてＲＥＳパケットであると解析され、不揮発性記憶装置６１０がメモリＷｒｉｔｅコマンドを受理したことを検出する。続いてホストインターフェース回路６３０内の制御パケット生成部６３１はＤＢＲＥＱパケットを生成し、第１伝送路６２１を介して不揮発性記憶装置６１０に送信する（図８  ８０３）。ＤＢＲＥＱパケットは、データ送信側（ここではホスト装置６００）がデータ受信側（ここでは不揮発性記憶装置６１０）に対して、データを送信したい旨通知するための制御パケットである。
【００１６】
ＤＢＲＥＱパケットを受信したスレーブインターフェース回路６４０は、制御パケット解析部６４１にて受信したパケットがＤＢＲＥＱであると解析する。不揮発性記憶装置６１０がデータ受信可能であれば、スレーブインターフェース回路６４０内の制御パケット生成部６４２はＤＢＲＤＹパケットを生成し、第２伝送路６２２を介してホスト装置６００に送信する（図８  ８０４）。ＤＢＲＤＹパケットは、データ受信側（ここでは不揮発性記憶装置６１０）がデータ送信側（ここではホスト装置６００）に対して、データ受信可能である旨通知するための制御パケットである。
【００１７】
ＤＢＲＤＹパケットを受信したホストインターフェース回路６３０は、制御パケット解析部６３２にて受信したパケットがＤＢＲＤＹであると解析すると、データ転送が開始さする。
【００１８】
メモリ６０２内に格納されているデータは、データバースト生成部６３３に供給される。データバースト生成部６３３では、メモリ６０２から供給されたデータをセクタ単位に分割し、必要に応じてパケットヘッダやＣＲＣ符号（いずれも図示せず）を付加してＤＡＴＡパケットを構成し、不揮発性記憶装置６１０内のインターフェースバッファ６１１のＩＢ（Ａ）およびＩＢ（Ｂ）の容量に等しいＤＡＴＡパケットからなるデータバーストを生成し、第１伝送路６２１を介して不揮発性記憶装置６１０に送信する。図８のデータバースト８０５は、Ｄ（０）からＤ（３）までの４個のＤＡＴＡパケットから構成されている。
【００１９】
データバースト８０５を受信したスレーブインターフェース回路６４０は、データバースト解析部６４３でデータバーストであると解析され、必要ならばパケットヘッダやＣＲＣ符号等を除去したデータをインターフェースバッファ６１１のＩＢ（Ａ）に供給する。４セクタ分のデータがＩＢ（Ａ）に供給されると、インターフェースバッファ６１１は接続形態を図７（ｂ）のように切り換えて、前記データをページバッファ６１２に供給し、不揮発性メモリ読み書き制御部６１３を介して不揮発性メモリ６１４の所定の領域に書き込まれる。
【００２０】
ホスト装置６１０は、第１データバースト８０５を送信後、ＤＢＲＥＱパケット８０６を不揮発性記憶装置６１０に送信する。不揮発性記憶装置６１０は次のデータバーストも受信可能であるので、ＤＢＲＤＹパケット８０７をホスト装置６００へ送信し、結果としてＤ（４）からＤ（７）から構成される第２データバースト８０８が送信される。
【００２１】
第２データバースト８０８を受信したスレーブインターフェース回路６４０は、データをインターフェースバッファ６１１のＩＢ（Ｂ）に供給する。ＩＢ（Ａ）に格納されていた第１データバースト８０５により伝送されたデータの不揮発性メモリ６１４への書き込み中は、次のデータバーストを受信してもインターフェースバッファ６１１はそれを格納することができない。従ってスレーブインターフェース回路６４０は、ＩＢ（Ａ）に格納されていた第１データバースト８０５により伝送されたデータの不揮発性メモリ６１４への書き込みが完了するまで、ＤＢＲＤＹパケット８０９を送信してはならない。インターフェースバッファ６１１が接続形態を図７（ａ）のように切り換えてＩＢ（Ｂ）に格納されていたデータを不揮発性メモリ６１４に書き込みを開始したときに、ＤＢＲＤＹパケット８０９をホスト装置６００に送信できる。すなわち前のデータバースト送信後、ＤＢＲＤＹ送信までがＢＵＳＹ期間となる。言い換えると、ホスト装置６００は不揮発性記憶装置６１０からＤＢＲＤＹを受信するまでがＢＵＳＹ期間であると認識される。なお、ＤＢＲＥＱパケットおよびＤＢＲＤＹパケットによるハンドシェークは、データバーストのフロー制御を兼ねているため、データバースト送信中は、ＤＢＲＤＹを送信することができない。
【００２２】
ところで上記説明した方法では以下のような課題がある。制御の簡便化のために、インターフェースバッファ６１１およびページバッファ６１２間のデータ転送においてセクタデータの配列が入れ替わらないことが望ましい。これはすなわち、不揮発性メモリ６１４上でページ境界に一致するセクタアドレスに書き込まれるセクタは、ＩＢ（Ａ）もしくはＩＢ（Ｂ）のＳｅｃｔｏｒ［０］に格納されなければならないことを意味する。またこれまで述べた従来例のように、ページサイズとＩＢ（Ａ）、ＩＢ（Ｂ）のサイズが等しいときは、ＩＢ（Ａ）もしくはＩＢ（Ｂ）のＳｅｃｔｏｒ［０］は、常にページ境界先頭のセクタデータが格納される必要がある。
【００２３】
図９は、図８においてメモリＷｒｉｔｅコマンド８０１に多重されたＷｒｉｔｅ開始セクタアドレスが０ｘ００１０００２１の場合に、各ＤＡＴＡパケットのＷｒｉｔｅ先アドレスを記載した図である。また図１０は、Ｗｒｉｔｅ開始セクタアドレスが０ｘ００１０００２１の場合のインターフェースバッファ６１１の動作について説明した図である。
【００２４】
スレーブインターフェース回路６４０は、第１データバーストを受信したとき、Ｄ（０）からＤ（３）はＩＢ（Ａ）に供給される。しかし図９により、Ｄ（０）のＷｒｉｔｅ先セクタアドレスはページ境界の先頭ではないので、ＩＢ（Ａ）のＳｅｃｔｏｒ［０］に格納されず、Ｓｅｃｔｏｒ［１］に格納される（本実施の形態では、各ＤＡＴＡパケットのセクタデータは、Ｗｒｉｔｅ先セクタアドレスを４で除したときの余りの番号を有するＳｅｃｔｏｒ領域に格納される）。同様にＤ（１）はＳｅｃｔｏｒ［２］に、Ｄ（２）はＳｅｃｔｏｒ［３］に格納される（図１０（ａ））。
【００２５】
しかし、図７のようなインターフェースバッファの構成ではＤ（３）を格納する領域がない。なぜならば、ＩＢ（Ａ）のＳｅｃｔｏｒ［０］にＤ（３）を格納すると、図１０（ｂ）でＩＢ（Ａ）からページバッファ６１２に転送されるデータはＤ（３）−Ｄ（０）−Ｄ（１）−Ｄ（２）の順となって順序が不正となる。またＩＢ（Ｂ）のＳｅｃｔｏｒ［０］に格納するものとすると、図１０（ｃ）のようにページバッファ６１２に書き込み最中のバッファにアクセスすることになり、書き込みデータを破壊する恐れがある。
【００２６】
上記を回避するには、ＩＢ（Ａ）、ＩＢ（Ｂ）と独立にＴｅｍｐ領域を設け、ＩＢ（Ａ）もしくはＩＢ（Ｂ）に格納できなかったセクタデータをＴｅｍｐ領域に一時的に格納し、インターフェースバッファ６１１の接続形態が変わったときに所定のＳｅｃｔｏｒ領域に書き込む方法がある。しかしこの方法では、ＩＢ（Ａ）もしくはＩＢ（Ｂ）のセクタ数がＮのとき、２×（Ｎ−１）セクタ分の追加バッファ領域が必要となり、かつインターフェースバッファ６１１の制御が複雑になる、という課題が残る。
【００２７】
上記を解決するための方法を示唆した内容が特許文献１に記載されている。特許文献１には、メモリアクセスする際に先頭から８ｂｙｔｅアドレス境界までの部分と、８ｂｙｔｅアドレス境界と整合する部分とに分割してメモリアクセスすることで、データ処理の高速化を実現するする技術が開示されている。しかしながら特許文献１においては、メモリアドレス境界が８ｂｙｔｅ固定であることと、および転送元および転送先アクセスをＣＰＵが一元制御しており、ホスト装置およびスレーブ装置が個別に動作するシステムへの適用は困難である。
【先行技術文献】
【特許文献】
【００２８】
【特許文献１】特開平４-２８９９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００２９】
以上の通り、ホスト装置から不揮発性記憶装置に複数のセクタを束ねたデータバーストの形態で書き込みデータを転送する際に、Ｗｒｉｔｅ開始アドレスが不揮発性メモリの書き込み単位であるページ境界に一致しない場合に、インターフェースバッファのサイズが大きくなる、あるいは、バスの効率が下がるという課題がある。
【００３０】
そこで本発明は、上記問題点を鑑み、ホスト装置およびスレーブ装置である不揮発性記憶装置がバス接続されている不揮発性記憶システムにおいて、複数セクタを束ねて送信することにより転送効率を高めつつ不揮発性記憶装置のバッファサイズを抑止するためのインターフェース回路、ホスト装置、スレーブ装置、および前記ホスト装置、スレーブ装置からなる不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【００３１】
前記目的を達成するために、ホスト装置とスレーブ装置とを接続して、命令の実行もしくはデータの送受信を行う通信路のインターフェース回路は、第一のデータ管理単位と、前記第一のデータ管理単位を１または複数個分束ねた第二のデータ管理単位があるとき、データ転送命令直後は、前記第一のデータ管理単位で指定される開始アドレスから、前記第二のデータ管理単位の境界に達するまでのデータでデータバーストを構成し、以降は前記第二のデータ管理単位のデータでデータバーストを構成する。
【００３２】
前記第一のデータ管理単位は、５１２ｂｙｔｅであってもよい。
【００３３】
また、本出願の発明は、上記のインターフェース回路を備え、スレーブ装置と接続して命令やデータの送受信を行うホスト装置であってもよい。
【００３４】
また、同様に本出願の発明は、記載のインターフェース回路と、不揮発性メモリと、バッファと、前記バッファのバッファサイズを格納したレジスタと、を備え、前記インターフェース回路を介してホスト装置と接続して命令やデータの送受信を行うスレーブ装置として実現することも可能である。
【００３５】
また、上記のホスト装置と、スレーブ装置とを備え、前記ホスト装置が前記スレーブ装置のレジスタに格納されたバッファサイズを読み出し、前記第二のデータ管理単位を決定する不揮発性記憶システムであってもよい。
【００３６】
上記の不揮発性記憶システムでは、第二のデータ管理単位は、不揮発性メモリの書き込み単位であるページサイズ、もしくは前記ページサイズの約数であってもよい。
【発明の効果】
【００３７】
本発明によれば、ホスト装置から不揮発性記憶装置に複数のセクタを束ねたデータバーストの形態で書き込みデータを転送する際に、Ｗｒｉｔｅ開始アドレスが不揮発性メモリの書き込み単位であるページ境界に一致しない場合でも、不揮発性記憶装置のバッファサイズ増加を抑止することができる。また本発明では、不揮発性記憶装置のバッファサイズが好適で無い場合であっても、データバーストに含めるセクタの数を最適化することで、バス効率をより高めることができる。
【図面の簡単な説明】
【００３８】
【図１】本実施の形態のホスト装置と不揮発性記憶装置の構成例を説明したブロック図
【図２】本実施の形態におけるスレーブバッファの構成例を説明した図
【図３】本実施の形態において、不揮発性記憶装置がホスト装置に装着されたときにＮＤＢを決定するためにバス上を伝送されるパケットを時系列に示したタイミング図
【図４】本実施の形態において、不揮発性記憶装置にデータを書き込むためにバス上を伝送されるパケットを時系列に示したタイミング図
【図５（ａ）】第１データバーストをＳｅｃｔｏｒ［１］から格納した場合の図
【図５（ｂ）】ＩＢ（Ａ）からページバッファに書き込むよう接続形態を変更した場合の図
【図５（ｃ）】データをすべてページ境界に合致させ、ＢＵＳＹ期間とインターフェースバッファの接続形態の切り換えとを同期させた場合の図
【図６】従来のホスト装置と不揮発性記憶装置の構成例を説明したブロック図
【図７（ａ）】スレーブインターフェース回路に、ＩＢ（Ｂ）がページバッファに接続されていることを示した図
【図７（ｂ）】ＩＢ（Ａ）がページバッファに、ＩＢ（Ｂ）がスレーブインターフェース回路６４０に、接続されていることを示した図
【図８】従来技術において、不揮発性記憶装置にデータを伝送するパケットを時系列に示したタイミング図
【図９】従来技術において、各ＤＡＴＡパケットのＷｒｉｔｅ先セクタアドレスを示した図
【図１０（ａ）】スレーブインターフェース回路が、第１データバーストを受信したとき、Ｄ（０）がＳｅｃｔｏｒ［１］に格納された場合の図
【図１０（ｂ）】Ｄ（３）がＩＢ（Ａ）に格納されず、ＩＢ（Ｂ）に格納された場合の図
【図１０（ｃ）】Ｄ（７）がＩＢ（Ａ）のＳｅｃｔｏｒ［０］に格納された場合の図
【発明を実施するための形態】
【００３９】
以下に、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の各実施の形態において、以前に説明した符号の説明は省略する。
【００４０】
図１は、本発明の実施の形態に於ける不揮発性記憶システムの構成を示したブロック図である。図１における不揮発性記憶システムは、ホスト装置１００と不揮発性記憶装置１１０とから構成され、両者は第１伝送路１２１および第２伝送路１２１により接続されている。第１伝送路１２１および第２伝送路１２２の機能は、図６に記載のものと同一である。
【００４１】
ホスト装置１００は、少なくともアプリケーション１０１、メモリ１０２、ホストインターフェース回路１３０を含む。またホストインターフェース回路１３０は少なくとも制御パケット生成部１３１、制御パケット解析部１３２、データバースト生成部１３３からなる。
【００４２】
不揮発性記憶装置１１０は、少なくともスレーブインターフェース回路１４０、インターフェースバッファ１１１、ページバッファ１１２、不揮発性メモリ読み書き制御部１１３、不揮発性メモリ１１４、およびスレーブレジスタ１５０からなる。またスレーブインターフェース回路１４０は、少なくとも制御パケット解析部１４１、制御パケット生成部１４２、データバースト解析部１４３からなる。
【００４３】
図２は、スレーブレジスタ１５０の構成例を説明した図である。スレーブレジスタ１５０は、原則Ｒｅａｄ  ＯｎｌｙのＣａｐａｂｉｌｉｔｙ領域と原則ＲｅａｄおよびＷｒｉｔｅが可能なＳｅｔｔｉｎｇ領域からなる。Ｃａｐａｂｉｌｉｔｙ領域は少なくともＩＢサイズフィールドを含む。ＩＢサイズフィールドには、インターフェースバッファ１１１のＩＢ（Ａ）およびＩＢ（Ｂ）の大きさがセクタ単位で格納されている。本実施の形態ではＩＢサイズに４が格納されているものとする。このとき、ＩＢ（Ａ）、ＩＢ（Ｂ）それぞれの大きさは２ＫＢｙｔｅ（５１２ｂｙｔｅ×４）である。またＳｅｔｔｉｎｇ領域は少なくともＮＤＢ（Ｎｕｍｂｅｒ  ｏｆ  ｐａｃｋｔｅｓ  ｉｎ  Ｄａｔａ  Ｂｕｒｓｔ）フィールドを含む。
【００４４】
図３は、本実施の形態において、不揮発性記憶装置１１０がホスト装置１００に装着されたときに実行する際のパケットの流れをシーケンシャルに記載した図である。図４は、本実施の形態において、ホスト装置１００から不揮発性記憶装置１１０にデータを書き込む際のパケットの流れをシーケンシャルに記載した図である。図５は、図４においてメモリＷｒｉｔｅコマンド４０１に多重されたＷｒｉｔｅ開始セクタアドレスが０ｘ００１０００２１の場合のインターフェースバッファ１１１の動作について説明した図である。以下図１〜５を用いて、本実施の形態の動作を説明する。
（ＮＤＢの決定）
不揮発性記憶装置１１０がホスト装置１００に装着され、所定の初期化処理が完了したとき、ホストインターフェース回路１３０内の制御パケット生成部１３１は、少なくともスレーブレジスタ１５０に格納されているＩＢサイズを取得するために、レジスタＲｅａｄコマンドパケットを生成し、第１伝送路１２１を介して不揮発性記憶装置１１０に送信する（図３  ３０１）。
【００４５】
Ｒｅａｄコマンドパケットを受信したスレーブインターフェース回路１４０は、制御パケット解析部１４１にてレジスタＲｅａｄコマンドであると解析する。不揮発性記憶装置１１０がコマンド受理可能であれば、スレーブインターフェース回路１４０内の制御パケット生成部１４２は、少なくともスレーブバッファ１５０より取得したＩＢサイズの値を多重してＲＥＳパケットを生成し、第２伝送路１２２を介してホスト装置１００に送信する（図３  ３０２）。
【００４６】
ＲＥＳパケットを受信したホストインターフェース回路１３０は、制御パケット解析部１３２にてＲＥＳパケットであると解析し、レジスタＲｅａｄコマンド受理を検出すると同時に、ＲＥＳパケットからＩＢサイズの値（本実施の形態では４）を取得する。
【００４７】
ホストインターフェース回路１３０は、データバースト生成部１３３が有するバッファサイズ（ＨＢＳＺ）と、不揮発性記憶装置１１０から取得したＩＢサイズの値から、ＤＡＴＡパケット転送時のデータバースト内のＤＡＴＡパケットの個数の最大値（ＮＤＢ）を求め、制御パケット生成部１３１およびデータバースト生成部１３３にＮＤＢの値を通知する。ＮＤＢは通常ＨＢＳＺとＩＢサイズのうち小さいほうの値を選択する。本実施の形態では、ＨＢＳＺは十分大きいと仮定してＮＤＢ＝ＩＢサイズ＝４とする。
【００４８】
ホストインターフェース回路１３０内の制御パケット生成部１３１は、少なくともスレーブレジスタ１５０にＮＤＢの値を設定するために、ＮＤＢの値を多重したレジスタＷｒｉｔｅコマンドパケットを生成し、第１伝送路１２１を介して不揮発性記憶装置１１０に送信する（図３  ３０３）。
【００４９】
レジスタＷｒｉｔｅコマンドパケットを受信したスレーブインターフェース回路１４０は、制御パケット解析部１４１にてレジスタＷｒｉｔｅコマンドであると解析する。不揮発性記憶装置１１０がコマンド受理可能であれば、制御パケット解析部１４１は、受理したレジスタＷｒｉｔｅコマンドよりＮＤＢの値を抽出し、スレーブレジスタ１５０の所定のフィールドに書き込む。上記操作が完了したとき、スレーブインターフェース回路１４０内の制御パケット生成部１４２は、コマンド受理を意味するＲＥＳパケットを生成し、第２伝送路１２２を介してホスト装置１００に送信する（図３  ３０４）。
【００５０】
これまでに述べた一連のシーケンスによりホスト装置１００および不揮発性記憶装置１１０に、共通のＮＤＢの値が格納されたことになり、以後ホスト装置１００から不揮発性メモリ１１４へのデータ書き込みが可能となる。
【００５１】
なお図３において、ＩＢサイズはＲＥＳパケット３０２に、ＮＤＢはレジスタＷｒｉｔｅコマンドパケット３０３に多重しているが、メモリＷｒｉｔｅコマンド等と同様に、コマンドに続くＤＡＴＡパケットを用いてこれらの値を転送してもよい。その場合は、アクセス先アドレス値もしくは識別フラグ等により、不揮発性メモリ１１４のアドレス空間とスレーブレジスタ１５０のアドレス空間を識別する必要がある。
【００５２】
（不揮発性メモリへのデータ書き込み）
ホスト装置１００内のアプリケーション１０１が不揮発性記憶装置１１０内の不揮発性メモリ１１４に、Ｗｒｉｔｅ開始セクタアドレス０ｘ００１０００２１からデータを書き込もうとするとき、アプリケーション１０１はホストインターフェース回路１３０にメモリＷｒｉｔｅコマンドを発行するよう指示する。このとき、ホストインターフェース回路１３０内の制御パケット生成部１３１は、前記Ｗｒｉｔｅ開始セクタアドレスを多重したメモリＷｒｉｔｅコマンドパケットを生成し、第１伝送路１２１を介して不揮発性記憶装置１１０に送信する（図４  ４０１）。
【００５３】
メモリＷｒｉｔｅコマンドパケットを受信したスレーブインターフェース回路１４０は、制御パケット解析部１４１にてメモリＷｒｉｔｅコマンドであると解析する。不揮発性記憶装置１１０がコマンド受理可能であれば、スレーブインターフェース回路１４０内の制御パケット生成部１４２はＲＥＳパケットを生成し、第２伝送路１２２を介してホスト装置１００に送信する（図４  ４０２）。同時にメモリＷｒｉｔｅコマンドに多重されたＷｒｉｔｅ開始アドレスを抽出し、インターフェースバッファ１１１に通知する。
【００５４】
ホストインターフェース回路１３０はＲＥＳパケットを受信した後、図６と同様にＤＢＲＥＱおよびＤＢＲＤＹを相互に通信した後、データ転送に移る。
【００５５】
メモリ１０２内に格納されているデータは、データバースト生成部１３３に供給される。
データバースト生成部１３３におけるＤＡＴＡパケット生成は、Ｄ（０）から、Ｗｒｉｔｅ先セクタアドレスがＮＤＢの倍数である直前のＤＡＴＡパケットまでで第１データバースト（図４  ４０３）を構成する点が図６と異なる。本実施の形態では、Ｗｒｉｔｅ開始セクタアドレスが０ｘ００１０００２１であるので、Ｗｒｉｔｅ先セクタアドレスがＮＤＢの倍数である０ｘ００１０００２４に書き込まれるＤ（３）の直前のＤ（２）までで第１データバーストを構成する。上記の通り構成された第１データバースト４０３は、第１伝送路１２１を介して不揮発性記憶装置１１０に送信される。
【００５６】
一般に、第１データバースト４０３は、
ＮＤＢ−「Ｗｒｉｔｅ開始セクタアドレスをＮＤＢで除算したときの余り」
のＤＡＴＡパケットから構成すればよい。
【００５７】
データバースト４０３を受信したスレーブインターフェース回路１４０は、データバースト解析部１４３でデータバーストであると解析され、必要ならばパケットヘッダやＣＲＣ符号等を除去したデータをインターフェースバッファ１１１のＩＢ（Ａ）に供給する。このとき、インターフェースバッファ１１１は、通知されているＷｒｉｔｅ開始セクタアドレスをＮＤＢで除したときの余りのＳｅｃｔｏｒ番号に相当する領域から格納される。すなわち本実施の形態では、Ｗｒｉｔｅ開始セクタアドレス（０ｘ００１０００２１）をＮＤＢ（４）で除した値は１であるので、第１データバーストをＳｅｃｔｏｒ［１］から格納する（図５（ａ））。
【００５８】
第１データバースト書き込み完了後、インターフェースバッファ１１１はＩＢ（Ａ）からページバッファに書き込むよう接続形態を変更する。このとき、ＩＢ（Ａ）に格納されているデータをそのまま転送するだけで書き込みデータをページ境界に合致させることができる（図５（ｂ））。
【００５９】
第１データバースト４０３転送後、従来例と同様にホスト装置１００はＤＢＲＥＱパケット４０４送信後、ＢＵＳＹ期間解除を示すＤＢＲＤＹパケット４０５受信まで、次のデータバーストを送信することはできない。ＢＵＳＹ期間の定義は図８と同様である。第２データバースト４０６以降は、ＮＤＢ個のＤＡＴＡパケットによりデータバーストを構成する。こうすると、以降のデータバーストのデータは、すべてページ境界に合致させることができ、かつＢＵＳＹ期間とインターフェースバッファ１１１の接続形態の切り換えとを常に同期させることができ、図１０に示すようなＴｅｍｐ領域は不要となる（図５（ｂ）、（ｃ））。
【００６０】
以上説明したように、本発明の実施の形態では、複数個のセクタをデータバーストとして送信する場合、Ｗｒｉｔｅ開始セクタアドレスによって、第１データバーストの構成を変更することで、不揮発性メモリへの書き込み時、アドレスバッファサイズの増加を伴わずに、データバースト転送による処理性能の向上と、従来のＳＤカードと同様にセクタ単位でのＷｒｉｔｅ開始アドレス指定可という利便性を両立させることができる。
【００６１】
また本実施の形態では、ホスト装置が不揮発性記憶装置を装着された後、ホスト装置が不揮発性記憶装置のインターフェースバッファのサイズである「ＩＢサイズ」を読み、データバースト内のセクタ数であるＮＤＢを書き込んで、両者がＮＤＢの値を共有することで、不揮発性記憶装置のバッファサイズがいかなる場合であっても、ホスト装置は最適なデータバーストを構成することができる。
【００６２】
さらに不揮発性記憶装置がＢＵＳＹ期間をホスト装置に通知可能とすることで、オーバーフローなどデータ通信が破綻しない範囲で、ホスト装置からのデータ送信と、不揮発性記憶装置でのデータ受信を独立に実施することができる。
【００６３】
なお、本実施の形態では、ＢＵＳＹ期間は、データバースト転送完了からＤＢＲＤＹ送信までと定義したが、例えばＢＵＳＹ通知信号線を独自に設ける等の方法でも実現可能である。また本実施の形態ではデータの書き込みについて説明したが、不揮発性記憶装置からのデータ読み出しの場合にも適用可能である。
【００６４】
なお本実施の形態においては、ＩＢ（Ａ）およびＩＢ（Ｂ）はページサイズと同じと仮定したが、ページサイズの約数であっても構わない。またページバッファ１１２もページサイズと同様としたが、これはページサイズの倍数であっても構わない。
【００６５】
なお本実施の形態において、ＮＤＢ＝１と設定することも可能である。この場合はＳＤカードの場合と同様に、１セクタ単位でのデータ転送であり、ＢＵＳＹ通知も１セクタ転送完了の度に実施することができる。
【産業上の利用可能性】
【００６６】
本発明は、ホスト装置がスレーブ装置に複数セクタ分のデータを束ねてデータバーストとして書き込みデータを送信する不揮発性記憶システムにおいて、ホスト装置は不揮発性記憶装置が備えるインターフェースバッファのサイズを取得し、Ｗｒｉｔｅ開始セクタアドレスに応じて最初に送信するデータバーストの構成を適宜変更することにより、高速性を維持しつつ、バッファサイズ増加を抑止することができるインターフェース回路、および不揮発性記憶システムを提案したものである。本発明は、インターフェース回路と不揮発性メモリを有した不揮発性記憶装置、およびこれを装着するホスト装置である動画記録再生装置、静止画記録再生装置、音声記録再生装置、あるいは携帯電話等において有益である。
【符号の説明】
【００６７】
１００    ホスト装置
１０１    アプリケーション
１０２    メモリ
１１０    スレーブ装置
１１１    インターフェースバッファ
１１２    ページバッファ
１１３    不揮発性メモリ読み書き制御部
１１４    不揮発性メモリ
１２１    第１伝送路
１２２    第２伝送路
１３０    ホストインターフェース回路
１３１    制御パケット生成部
１３２    制御パケット解析部
１３３    データバースト生成部
１４０    スレーブインターフェース回路
１４１    制御パケット解析部
１４２    制御パケット生成部
１４３    データバースト解析部
１５０    スレーブレジスタ
３０１    レジスタＲｅａｄコマンドパケット
３０２、３０４、４０２    ＲＥＳパケット
３０３    レジスタＷｒｉｔｅコマンド
４０１    メモリＷｒｉｔｅコマンドパケット
４０３    第１データバースト
４０４    ＤＢＲＥＱパケット
４０５    ＤＢＲＤＹパケット
４０６    第２データバースト
【図１】
2011107928.tif 000003
【図２】
2011107928.tif 000004
【図３】
2011107928.tif 000005
【図４】
2011107928.tif 000006
【図５（ａ）】
2011107928.tif 000007
【図５（ｂ）】
2011107928.tif 000008
【図５（ｃ）】
2011107928.tif 000009
【図６】
2011107928.tif 000010
【図７（ａ）】
2011107928.tif 000011
【図７（ｂ）】
2011107928.tif 000012
【図８】
2011107928.tif 000013
【図９】
2011107928.tif 000014
【図１０（ａ）】
2011107928.tif 000015
【図１０（ｂ）】
2011107928.tif 000016
【図１０（ｃ）】
2011107928.tif 000017