以下の記述において、各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。どの機能ブロックによって特定されるかによって実施形態が限定されるものではない。
また、以下の各実施形態では、メモリおよびメモリを制御するコントローラを有するメモリデバイス(半導体記憶装置)について説明する。メモリデバイスは、例えばホスト装置のスロットに挿入される、ホスト装置の外部記憶装置である。またはホスト装置の内部に実装されるものであってもよい。以下の記述では、メモリデバイスの一例として、メモリカードを用いて実施形態を説明する。メモリカードは、例えばSDカードである。
(第1実施形態)
(メモリカードの構成例)
図1に示されているように、メモリカード(メモリデバイス)1は、ホスト装置2とバスインターフェースを介して通信可能に接続可能に構成されており、例えばホスト装置2中のスロット(図示せず)に挿入可能に構成されている。ホスト装置2は、例えばパーソナルコンピュータ、デジタルカメラ、音楽プレーヤ等である。ホスト装置2は、通信可能に接続されているメモリカード1に対しアクセスするためのハードウェアおよびソフトウェアを備えている。メモリカード1は、ホスト装置2に接続されるとホスト装置2から電源を供給され、ホスト装置2からの制御に従って種々の処理を行う。
メモリカード1は、ハードウェアに関する構成として、メモリ3およびメモリを制御するためのメモリコントローラ4を含んでいる。メモリ3は、不揮発性メモリであり、例えばNAND型フラッシュメモリである。メモリカード1は、バスインターフェースを介してホスト装置2と情報を授受する。また、メモリカード1は、複数の信号ピン(図示せず)を含んでいる。複数の信号ピンは、メモリコントローラ4と電気的に接続されている。複数の信号ピンは、例えば、電源電圧(例えば3.3Vや1.8V)ピン、グランド(GND)ピン、クロック信号ピン、複数のデータ信号ピン、コマンド信号ピンから構成される。複数のデータ信号ピンは、例えば、4ビットデータのバス信号ピンで構成されたり、小振幅差動信号ピンで構成されたりする。データを授受するためのピンによりバスインターフェースが構成される。メモリコントローラ4は、これらの複数の信号ピンを介してホスト装置2内のホストコントローラと各種信号およびデータを通信する。例えば、メモリカード1にデータが書き込まれる場合、ホストコントローラは、書き込みコマンドを、データ信号ピンを介してメモリコントローラ4にシリアルな電気信号として送出する。メモリコントローラ4はクロック信号ピンに供給されるクロック信号に応じて、データ信号ピンから受信される書き込みコマンドを取り込む。
メモリ3とメモリコントローラ4との間の通信は、メモリ3用のインターフェースによって行われる。インターフェースは例えば8ビットの入出力信号線によって接続される。メモリコントローラ4は、インターフェースを介して、メモリ3からのデータの読み出し、メモリ3へのデータの書き込み、メモリ3中のデータの消去に必要なコマンド、アドレス、データ等を通信する。メモリ3がNAND型フラッシュメモリである場合、インターフェースは、NANDインターフェースである。
(パケットの構成例)
図2は、第1実施形態に係るメモリカード1(メモリコントローラ4)とホスト装置2との間で通信されるパケットのフォーマットの例を示している。図2では、コマンドパケット、レスポンスパケット、データパケット、およびメッセージパケットの4種類が例示されている。
各パケットは、4種のパケットに共通のヘッダ部を含んでいる。ヘッダ部は、ホストコントローラまたはメモリコントローラ4が受信処理に必要な情報を含んでいる。具体的には、ヘッダ部は、タイプフィールド、IDフィールド、TIDフィールド等を含んでいる。タイプフィールドは、パケットの種類に応じた値を含んでいる。タイプフィールドに設定されるビット列によって、パケットが、コマンドパケット、レスポンスパケット、データパケット、およびメッセージパケットのうちのいずれであるかが特定される。IDフィールドは、直接の宛先、または送信元の個体識別情報を含んでいる。TIDフィールドは、発生した処理(例えば、データ読み込みまたはデータ書き込み等)を識別するための識別番号を含んでいる。
各パケットは、さらに、アーギュメント(Argument)部、拡張アーギュメント(Extended Argument)部、ペイロード部、パッド(Pad)部、CRC(Cyclic Redundancy Code)部のうちの特定のものを含んでいる。例えば、アーギュメント部は、コマンド、レスポンス、およびメッセージパケットに含まれ、拡張アーギュメント部はコマンドパケットに含まれ、ペイロード部およびパッド部はデータパケットに含まれ、CRC部はコマンドパケット、レスポンスパケット、データパケット、およびメッセージパケットに含まれている。アーギュメント部は、制御情報(メモリ3のうちのデータを格納する部分のアドレス等)を含んでいる。ペイロード部は、読み出しまたは書き込みされるデータ(メモリ3に格納されたデータ等)を含んでいる。パッド部は、パケットの長さを偶数バイトに調整するためのビットを含んでいる。CRC部は、アーギュメント部、拡張アーギュメント部、ペイロード部、およびパッド部が正常に受信されたか否かを判定するために用いられるCRCを含んでいる。ヘッダ部以外のフィールドは、同じ名称のフィールドであっても上記4種類のパケットごとに含まれる情報が異なる場合がある。
コマンドパケットにおいて、アーギュメント部は、例えばRWビット、二重モードビット、ユニットビット等を含んでいる。RWビットは、そのコマンドがデータの読み出し転送命令なのか、書き込み転送命令なのかを指示する。二重モードビットは、データ転送の最中にデータパケットの転送のモードを指定する。ユニットビットは、後述する転送長(Transfer Length)フィールドに示される数値の単位を指定する。また、コマンドパケット中の拡張アーギュメント部は、例えば、転送長フィールド、データアドレスフィールドを含んでいる。転送長フィールドは、転送されるデータの総量を示す値を含んでいる。データアドレスフィールドは、メモリ3中の読み出されるデータのアドレスまたはデータが書き込まれるアドレスを示す。
コマンドパケットを受信したメモリコントローラ4はタイプフィールドによってコマンドパケットであること、IDフィールドによって自身を宛先とするパケットであること、および、そのコマンドパケットを送信した送信元装置のIDを認識する。また、RWビットによって読み出し処理であるのか、書き込み処理であるのかを識別し、データアドレスフィールドによってアクセスすべきメモリ中の領域のアドレスを認識する。メモリコントローラ4が受信したコマンドパケットが自身を宛先とする場合、メモリコントローラ4はレスポンスパケットを送信元装置に返信する。
レスポンスパケットにおいて、アーギュメント部は、否定応答(Negative Ack)ビットを含んでいる。否定応答ビットは、受信されたコマンドパケットにより示される指示をメモリコントローラ4が正しく処理できるか否かを示す。例えば、コマンドパケットによってメモリ領域に存在しないアドレスを指定された場合には、メモリコントローラ4はその命令を正しく処理できないと判断し、否定応答ビットに“1”を設定する。一方、正しく処理できると判断すれば、メモリコントローラ4は、否定応答ビットに“0”を設定する。
データパケットにおいて、ペイロード部は、例えば、ホスト装置2がメモリ3に書き込むデータを含んでいる。その長さはデータ通信開始前にホスト装置2とメモリカード1がネゴシエーションして決定された値(例えば、512バイト)とされる。この決定された値の大きさのデータを本明細書では単位データと称する。例えば大きな書き込みデータは、この特定の大きさに分割して単位データごとに取り扱われる。パッド部は、データパケットの長さが奇数バイトである場合に1バイト分付加され、長さが偶数バイトになるように調整するためのものである。その長さが偶数バイトである場合には付加されない。本実施形態に係るメモリカード1は、ハーフデュプレクス(半二重)モードで動作する。ハーフデュプレクスモードは、平時は、2つの独立のデータラインをそれぞれ相対する方向の通信に利用し、データパケットの送信時には一方の通信方向を逆転させて両方のデータラインを使用する方式である。ハーフデュプレクスモードでは、単位データは2つに分けられ、それらが2つの別々のデータパケットによって並行して送信される。例えば、単位データをデータ0パケットおよびデータ1パケットの各ペイロード部によって並行して送信する。分け方として、例えばデータ0パケットのペイロード部には、単位データの偶数バイト目のデータが含められ、データ1パケットのペイロード部には、この単位データの奇数バイト目のデータが含められる。
データパケットには、さらにグループ番号が割り当てられている。ハーフデュプレクスモードでは1つの単位データは2つのデータパケットによって並行して送信され、これらの2つのデータパケットは、相違するペイロード部を有するが、同じヘッダ部を有する。そこで、データパケットの送信側(例えばデータ書き込み時はホスト装置2)は、同じ単位データに起因する2つのデータパケット(例えばデータ0パケットおよびデータ1パケット)にグループ番号0を割り当てる。同様に、続く別の第2、3、4単位データにも、それぞれグループ番号1、2、3が割り当てられる。さらなる単位データがある場合も、それらに対して先の説明と同様の原則に従って、グループ番号が割り当てられる。グループ番号は、データパケットのヘッダ部に含められてもよいし、ヘッダ部とは異なるフィールドが追加されてもよい。データパケットの受信側(例えばデータ書き込み時はメモリカード1)は、受信したデータパケットに割り当てられたグループ番号を認識可能になっている。
メッセージパケットにおいて、アーギュメント部は、例えばインデックスフィールド、エラーフィールドを含む。インデックスフィールドは、メッセージパケットによって実現される下位区分パケットの種類を示す。メッセージパケットは、例えばリクエストパケット、レディーパケット、ステータスパケット等として機能し得る。インデックスフィールドは、これらのうちのメッセージパケットが担う種類を示すビットを含んでいる。リクエストパケットおよびレディーパケットは、バーストデータ送信前のネゴシエーションに用いられる。ステータスパケットは、バーストデータ送信終了後にデータパケット受信の状態を通知するために用いられる。エラーフィールドは、エラーが生じたときのエラーの種類を示し、例えば受信側の受信バッファがオーバーフローしている場合にそのことを示す。
さらに、メッセージパケットにより実現される下位区分パケットとして、ステータス2パケットが定義されている。ステータスパケットは、データの受信側によって全てのデータパケットを正しく受信されたか否かを明示するエラービットを含んでいる。このビットはバーストデータ送信期間中に少なくとも1つのデータパケットが誤っている場合に設定される。このビットが誤りの存在を示していると、データの送信側は先と同じデータパケットを全て再送する。したがって、誤ったデータパケットだけを個別に再送することはできない。そこで、データの受信側が正常に受信できなかったデータパケットを個別に再送要求できるようにするために、ステータス2パケットが定義される。ステータス2パケットは、例えば、図3に示される構成を有する。図3に示されているように、ステータス2パケットは、ステータスパケットと同じ構成、および新たなビットマップフィールド(Bitmap)を含んでいる。受信側がステータス2パケットであることを認識するために、メッセージパケットのアーギュメント部内のインデックスフィールドに新規のユニークなビット列(例えば、2´b0100)が設けられる。ビットマップフィールドのサイズは例えば16ビットであり、Bitmap[0]がグループ番号0に対応する。したがって、この例ではグループ番号0〜15までの受信状態をデータの送信側に通知することができる。
(メモリコントローラ4の構成例)
メモリコントローラ4は、ホスト装置2の命令に従って、メモリ3からデータを読み出し、それをホスト装置2へ転送し、あるいは、ホスト装置2から転送される書き込みデータをメモリ3に書き込むための動作を行う。以下ではホスト装置2とメモリコントローラ4とが通信するための構成に特に着目して説明する。
図4は、第1実施形態に係るメモリコントローラ4の構成例を示している。メモリコントローラ4は、例えば、フラッシュコントローラ10、バッファ20、パケット制御部30、シンボル制御部40、応答制御部50、および入出力制御部60の機能ブロックを含んでいる。フラッシュコントローラ10、バッファ20、および入出力制御部60は、典型例として、ハードウェアにより実現される。一方、パケット制御部30、シンボル制御部40、および応答制御部50は、ハードウェアおよびソフトウェアの一方あるいは両者の組み合わせから実現される。ソフトウェアによる一部または全部の実現のため、またはその他の目的で、メモリコントローラ4は、ハードウェアとして少なくともCPU(Central Processing Unit)70、RAM(Random Access Memory)80、ROM(Read Only Memory)90を含んでいる。ROM90上には、パケット制御部30、シンボル制御部40、および応答制御部50の動作を実現するためのプログラムが格納されている。メモリコントローラ4の動作の開始に伴い、このプログラムがRAM80上に読み出され、CPU70によって実行されることにより、パケット制御部30、シンボル制御部40、および応答制御部50の動作が実行される。RAM80は、CPU70の作業メモリとして使用され、制御プログラムを記憶し、例えばSRAM(Statice RAM)である。ROM90上には、CPU70によってメモリコントローラ4の全体を司るファームウェア(制御プログラム)も格納されている。例えばメモリカード1がホスト装置2から電源を供給されると、ファームウェアがROM90からRAM80上に読み出され、CPU70はファームウェアに従って所定の処理を実行する。こうして、CPU70がメモリコントローラ4の動作を制御する。
フラッシュコントローラ10は、CPU70からの制御に従って、メモリコントローラ4によるメモリ3へのアクセスを制御する。例えば、データ読み出しの際、メモリ3から読み出されたデータを受信し、バッファ20に格納する。また、データ書き込みの際、ホスト装置2から転送された後にバッファ20に格納されたデータをCPU70からの制御に従ってバッファ20から読み出し、メモリ3に書き込む。
バッファ20は、メモリ3から読み出されたデータを一時的に格納し、パケット制御部30に転送する。また、バッファ20は、ホスト装置2から受け取った書き込みデータを一時的に格納し、フラッシュコントローラ10へ転送する。
シンボル制御部40は、CPU70およびパケット制御部30からの制御に従って、メモリカード1がホスト装置2と通信するのに必要な各種シンボル(あるいは制御信号とも言える)を生成し、パケット制御部30へ転送する。また、シンボル制御部40は、入出力制御部60が受信した信号をパケット制御部30を経由して受け取り、特定のシンボルであるかを解析する。その解析結果をパケット制御部30に通知することを介してパケット受信の開始および終了を指示したり、入出力制御部60におけるバッファの入出力方向の切り替えを通知したりする。例えば、シンボル制御部40は、パケットの非通信の間は、アイドル状態を示すシンボルを生成したり、パケット制御部30がパケットを送信する際にパケットの開始および終了を示すシンボルを生成したりする。また、シンボル制御部40は、パケットの受信時にパケットの開始を示すシンボルを検出すると、パケット制御部30に対してパケット受信を開始するよう通知する。シンボル制御部40は、本明細書で記述されているあらゆるシンボルを認識および生成し、対応する動作を実行できるように構成されている。
パケット制御部30は、CPU70からの制御に従って、コマンドパケットの受信処理、レスポンスパケットの送信処理、データパケットおよびメッセージパケットの受信ならびに送信処理を行う。パケット制御部30は、これらのパケットを含め本明細書中に記述されているあらゆるパケットを認識および生成し、対応する動作を実行できるように構成されている。また、パケット制御部30は、バッファ20に格納された読み出しデータをデータパケットのフォーマットに従って形成し、入出力制御部60へ転送する。また、パケット制御部30は、ホスト装置2から入出力制御部60経由で転送されたデータパケットのペイロード部を抽出し、バッファ20に格納する。また、パケット制御部30は、シンボル制御部40からのシンボルを入出力制御部60へ送信する。また、パケット制御部30は、シンボル制御部40からの情報に従って、入出力制御部60中の入力バッファおよび出力バッファの方向制御を行う。また、パケット制御部30は、CRC処理部31を含んでいる。CRC処理部31は、受信したデータパケットに対してCRC検査を行い、その結果を、パケット制御部30の全体を制御するモジュールに渡す。
応答制御部50は、CPU70およびパケット制御部30からの制御に従って、ホスト装置2から受信したデータパケットの受信状態を応答ビット生成部51に保持する。また、応答制御部50は、パケット制御部30がステータスパケットをホスト装置2に返信する際に、データパケットの受信状態についての情報をパケット制御部30に通知する。
入出力制御部60は、パケット制御部30からのパラレル信号(例えば、8ビット信号)をシリアル信号(1ビット信号)に変換し、ホスト装置2へ送信する。また、ホスト装置2からのシリアル信号をパラレル信号に変換し、パケット制御部30に転送する。また、パケット制御部30が入力バッファおよび出力バッファの方向を指示した場合、指示に基づいて方向を切り替える。
(入出力制御部60の構成例)
図5は、第1実施形態に係る入出力制御部60の構成例を示している。入出力制御部60は、シリアル・パラレル(シリパラ)変換部100および111、パラレル・シリアル(パラシリ)変換部101および110を含んでいる。また、入出力制御部60は、入力バッファ120および131ならびに出力バッファ121および130を含んでいる。シリパラ変換部100および111は、入力されるシリアルデータをパラレルデータに変換する。パラシリ変換部101および110は、入力されるパラレルデータをシリアルデータに変換する。シリパラ変換部100および111、パラシリ変換部101および110は、パケット制御部30と接続されている。
パケット制御部30から出力された8ビットのパラレルデータは、パラシリ変換部110、またはパラシリ変換部101および110の両方に入力され、シリアルデータに変換される。変換されたデータは、それぞれ出力バッファ121および130を経由してライン140およびライン141に電気信号として出力される。パラシリ変換部110は、一般的な8b/10b変換処理を含んでいてもよい。
ライン140およびライン141は各々、小振幅差動信号を伝送するように構成されることが可能である。そのような構成では、ライン140(ライン141)およびラインN140(ラインN141)を含んでいる。そして、ラインP140(ラインP141)のグランドを基準とした電位が、ラインN140(ラインN141)のグランドを基準とした電位より、特定の電位差だけ高い状態が、ライン140(ライン141)によって“1”の信号を伝送されていると定められる。他方、同様にラインN140(ラインN141)の電位が、ラインP140(ラインP141)の電位より、特定の電位差だけ高い状態が、ライン140(ライン141)によって“0”の信号を伝送されていると定める。これらの関係は逆でもよい。しかしながら、ライン140およびライン141は、必ずしも差動信号用に構成されていなくともよい。
ライン140およびライン141上の差動信号は、それぞれ入力バッファ120および131を経由してシリパラ変換部100および111によってパラレルデータに変換された後、パケット制御部30に出力される。メモリカード1がデータパケット以外のパケットをホスト装置2と送受信するには、ホスト装置2からの通信についてはライン140が用いられ、ホスト装置2への通信についてはライン141が用いられるように入力バッファ120および131ならびに出力バッファ121および130が、パケット制御部30によって制御される。具体的には、例えば、ホスト装置2からのシリアルデータはライン140上で入力バッファ120に入力され、シリパラ変換部100によってパラレルデータに変換され、変換されたデータはパケット制御部30へ送信される。一方、パケット制御部30からのパラレルデータは、パラシリ変換部110によってシリアルデータに変換され、変換されたデータは、バッファ130を経由してライン141上で送信される。したがって、この例では、パケット制御部30は、入力バッファ120および出力バッファ130を動作可能状態にし、出力バッファ121および入力バッファ131を動作停止状態にする。対照的に、データパケットを転送する間は、データの書き込みについてはライン140およびライン141をそれぞれホスト装置2からメモリコントローラ4への転送が可能になるように入出力バッファがパケット制御部30によって制御される。したがって、パケット制御部30は、入力バッファ120および入力バッファ131を動作可能状態にし、出力バッファ121および出力バッファ130を動作停止状態にする。以上のバッファの制御により、ハーフデュプレクスモードが実現される。
(動作)
次に、第1実施形態のメモリカードの動作について説明する。図6は、第1実施形態のメモリカードに対するハーフデュプレクスモードでのデータ書き込みの際のパケットシーケンスを示している。先端が右を向いているパケットまたはシンボルはホスト装置2からメモリカード1へ向かっており、先端が左を向いているパケットまたはシンボルはメモリカード1からホスト装置2へ向かっていることを示している。ホスト装置2とメモリカード1は、パケットが転送されていない間も通信状態を維持するために必要なシンボルを送信する。上記のように、シンボルは、シンボルの役割に応じた情報を含んだメッセージパケットによって実現される。
時刻t0において、ホスト装置2はライン140上でコマンドパケット(Cmd(w))をメモリカード1に送信する。このコマンドパケットはIDフィールドにおいてメモリカード1を指定し、RWビットは書き込みを指定し、また、ハーフデュプレクスモードでデータパケットを送信することを通知する。コマンドパケットを含むいずれのパケットも、実際には、図2の構成の前後においてスタートシンボル(Start)およびエンドシンボル(End)を含んでいる。スタートシンボルはパケットの先頭を明示し、エンドシンボルはパケットの終りを明示する。さらに、各シンボルはコマンドシンボル(COM)とペアで構成されている。コマンドシンボルは、シンボル間の区切りを明示する。例えばアイドルシンボル(IDLE)は、コマンドシンボルと アイドルシンボルで構成される。コマンドシンボルを含むいずれのシンボルも、ある固定長の固有なビット列で表現される。これにより、受信側が受信したシンボルを特定できる。
ホスト装置2は、コマンドパケットに続いて、ライン140上でアイドルシンボルを送信し続ける。アイドルシンボルは、パケットを転送していないアイドル状態を明示する。一方、メモリカード1は、ライン141上でアイドルシンボルを送信し続ける。以降、アイドルシンボルは、以下の説明において触れていなくとも何らのパケットも送信されていない間、送信されているものとする。
時刻t1において、メモリカード1はライン140上でレスポンスパケット(Res)をホスト装置2に返信する。レスポンスパケットはコマンドパケットにおいて示された命令が実行可能である旨の情報を含んでいる。
時刻t2からt3までの間は、データのバースト送信の準備確認のための期間である。時刻t2においてホスト装置2がライン140上でリクエストパケット(Req)を送信し、次いでメモリカード1がライン141上でレディー・パケット(Rdy)を返信する。レディーパケットは、メモリカード1が準備完了状態であることを示す。
時刻t3からt7までの間において、メモリカード1およびホスト装置2は、ライン141上での通信の方向をホスト装置2からメモリカード1へと向かう方向へと反転させる。まず、パケット制御部30は、時刻t4において出力バッファ130および入力バッファ131を停止状態にし、時刻t5においてメモリカード1の入力バッファ131を動作状態にする。次に、時刻t6において、ホスト装置2は、ホスト装置2中のライン141に接続されている入力バッファおよび出力バッファを停止状態にする。時刻t7において、ホスト装置は、ホスト装置中のライン141に接続されている出力バッファを動作状態にし、ライン141を一定期間にわたってSTBL状態にする。STBL状態の間、STBL信号(STBL)が送信される。STBL信号は、規格によっては、バッファがオフからオンに切り替わった後に送信されることになっており、送信側のバッファの状態を一定期間、電気的にある固定の状態にすることを通じてその信号を受信した受信側に対して送信側がSTBL信号の後にシンボルおよびパケットを送信開始することを通知するためのものである。例えば、STBL信号の間、ラインN140(ラインN141)がラインP140(ラインP141)より、ある特定の電位差より高くなっている。ホスト装置は、また、時刻t6からt7までの間、ライン140上でDIRシンボル(DIR)を送信する。
時刻t8において、ホスト装置2は、STBL状態を解除して、ライン141上でDIRシンボルを送信する。
時刻t9からt10までの間は、データのバースト送信期間であり、SDBシンボル(SDB)とEDBシンボル(EDB)で挟まれた期間により定められる。SDBシンボルは、バーストデータ送信期間の開始を通知し、EDBシンボルは、バーストデータ送信期間の終了を通知する。ホスト装置2は、時刻t9において、ライン140および141上でSDBシンボルを送信する。メモリコントローラ4のシンボル制御部40はSDBシンボルを検出したことを通じて、バーストデータ送信期間の開始を認識する。シンボル制御部40はSDBシンボル検出後にスタートシンボルを検出することを通じて、以降パケット受信を行うようにパケット制御部30に指示する。
次いで、ホスト装置2は、データパケットを送信する。1つのデータバースト送信期間でいくつのデータパケットを送信するかは、図6に示す動作に先立つネゴシエーションによって事前に決定されている。図6は、4つの単位データの送信の例を示している。4つの単位データには、それぞれグループ番号0〜3が割り当てられている。したがって、データパケット中のビットマップフィールドBitmap[3:0]が使用される。一方、ビットマップフィールドBitmap[15:4]は、リザーブとされ、本例では使用されず、例えば“0”ビットとされる。
ホスト装置2は、グループ番号0を割り当てられた第1単位データを上記の原理に従ってデータ0パケットおよびデータ1パケットとして、それぞれライン140およびライン141上で並行して送信する。パケット制御部30は、データ0パケットおよびデータ1パケットについてのCRC検査が正常であれば、データ0パケットのペイロード部の1バイトとデータ1パケットのペイロード部中の1バイトを交互にバッファ20に書き込む。また、パケット制御部30は、CRC検査の合格に基づいて、グループ番号0については受信に成功したと判定する。応答ビット生成部51は、グループ番号ごとに正常受信か否かを示すビットを保持する。グループ番号0については、正常受信を示す“1”ビットが対応する。
次に、ホスト装置2は、グループ番号1を割り当てられた第2単位データを上記の原理に従ってデータ2パケットおよびデータ3パケットとして、それぞれライン140およびライン141上で送信する。データ0パケットとデータ2パケットとの間、およびデータ1とデータ3との間には、シンボルが存在せずにデータパケットが連続してもよいし、何らかのシンボル(例えば1つ以上のアイドルシンボル)が送信されてもよい。後続の隣接するデータパケット同士についても同様である。
例として、パケット制御部30は、データ2パケットを正常に受信したが、データ3パケットを正常に受信しなかったとする。データパケットの正常受信の失敗は、例えば、CRC検査が不合格であること、および/またはスタートシンボルあるいはエンドシンボルが検出されないことに基づくことが可能である。パケット制御部30は、データ3パケットの受信の失敗に基づいて、グループ番号1について受信に失敗したと判定する。なお、全てのデータパケットが正常に受信された場合の動作については、第2実施形態において説明する。
同様に、グループ番号2を割り当てられた第3単位データがデータ4パケットおよびデータ5パケットとして送信され、グループ番号3を割り当てられた第4単位データがデータ6パケットおよびデータ7パケットとして送信される。例として、データ4、データ5、データ7パケットは正常に受信され、データ6パケットは正常に受信されなかったとする。この例に則ると、グループ番号0および2は正常受信され、グループ番号1および3は正常受信されなかったと判定される。この結果、応答ビット生成部51により生成されたビット列は “1010”となる。
1回のバースト送信期間中の全てのデータパケットの送信後、ホスト装置2は、ライン140および141上でEDBシンボルを送信する。メモリカード1は、EDBシンボルの検出によって、データのバースト送信期間の終了を認識する。
次に、時刻t10からt14までの間において、メモリカード1およびホスト装置2は、ライン141に接続された入力バッファおよび出力バッファを制御して、メモリカード1による応答の準備を行う。具体的には、メモリカード1およびホスト装置2は、ライン141上での通信の方向をメモリカード1からホスト装置2へ向かう方向へと反転させる。まず、時刻t10において、ホスト装置2は、ホスト装置2中のライン140に接続されている出力バッファからDIR2シンボル(DIR2)を送信する。DIR2シンボルは、その他のシンボルのものとは異なるユニークなビットパターンを有している。こうして、DIR2シンボルは、シンボル制御部40によってDIRシンボルから区別されることが可能となっている。DIR2シンボルの1つの機能は、DIRシンボルと同様に送信されているラインの方向を示すことである。DIR2シンボルのさらなる機能は、全てのデータパケットが正常受信された場合の応答方法を指定することである。この点については第2実施形態で説明する。
シンボル制御部40は、DIR2シンボルの検出を受けて、パケット制御部30にステータス2パケットを生成するように指示する。応答ビット生成部51に保持されているグループ番号ごとの正常受信を示すビット列(本例で“1010”)は、パケット制御部30によって、ステータス2パケットのBitmap[3:0]フィールドに設定される。また、パケット制御部30は、アーギュメント部にはデータパケット受信に誤りがあったことを通知するビットを設定する。
時刻t11において、ホスト装置2は、ホスト装置2中のライン141に接続されてい入力バッファおよび出力バッファを停止状態にする。次に、時刻t12において、ホスト装置2は、ホスト装置2中のライン141に接続されている入力バッファを動作状態にする。次に、時刻t13において、パケット制御部30は、出力バッファ130および入力バッファ131を停止状態にする。ホスト装置2は、時刻t11からt13までの間においてもライン140上でDIR2シンボルを送信し続ける。時刻t10からt13までの長さは、ホスト装置2とメモリカード1との間で図6の動作に先立って予めネゴシエートされた固定時間とされている。
時刻t14において、メモリカード1は、ライン141を一定期間にわたってSTBL状態にする。このことは、ライン141上でのSTBL信号の送信に相当する。時刻t15において、メモリカード1は、STBL状態を解除して、ライン141上でDIR2シンボルを送信する。時刻t16において、ホスト装置2は、メモリカード1からのDIR2シンボルの受信の検出を受けて、ライン140上でアイドルシンボルを送信する。
時刻t17において、パケット制御部30は、生成されたステータス2パケットをライン141上で送信する。このステータス2パケットは、上記のように、エラーの存在を示すビット、およびグループ番号ごとの受信の成功または失敗を示すビット列を含んでいる。ホスト装置2のメモリコントローラ中のパケット制御部(図示せず)は、このようなステータス2パケットを受信すると、ステータス2パケットであること、エラービットが含まれることを認識する。さらに、パケット制御部は、ビットマップフィールド情報に基づいて、グループ番号1および3について再送が必要であることを認識する。データパケットの再送準備として、時刻t18からt25までの間において、時刻t2からt9までの間とそれぞれ同じ動作が行われる。
時刻t25において、ホスト装置2は、SDBシンボルの送信後、ステータス2コマンドにより特定されたグループ番号についてのデータを再送する。すなわち、まず、ホスト装置2は、グループ番号1についてのデータ2パケットおよびデータ3パケットをそれぞれライン140および141上で送信する。次いで、グループ番号3についてのデータ6パケットおよびデータ7パケットをそれぞれライン140および141上で送信する。続くEDBシンボルを送信により、データ転送が終了する。この後、バッファ20に保持されたデータがメモリ3に書き込まれる。
上記の例は、2つのデータパケットに同じ1つのグループ番号を割り当てる例に関する。しかしながら、同じ1つのグループ番号を割り当てられるデータパケットは、2つに限られず、例えば4つでもよい。その例に則ると、データ0パケット〜データ3パケットにグループ番号0が割り当てられ、データ4パケット〜データ7パケットにをグループ番号1が割り当てられる。この例においても、データ0パケット〜データ3パケットのうち少なくとも1つが正常に受信されたなかった場合、メモリカード1はステータス2パケットの中のグループ番号0に相当するビットマップフィールドのビットを例えば“0”に設定して、ホスト装置2に送信する。この後、ホスト装置2は、データ0パケット〜データ3パケットをメモリカード1に再送する。
また、上記の例は、ステータス2パケットにビットマップ情報を含める例に関する。それに代えて、誤りが含まれるグループ番号がステータス2パケットにおいて直接設定されてもよい。グループ番号1および3に誤りが含まれる図6の例に則ると、ステータス2パケットには、図7に示されるように、1番および3番という情報が含められる。シーケンシャル・ナンバー・フィールド(SeqNum1, 2)のサイズは予め定められた長さ(例えば8ビット)とされる。
ここまで、メモリカード1へのデータ書き込みについて説明した。しかしながら、データ読み出しの動作も、データ書き込みと同様である。すなわち、データ読み出しでは、コマンドパケットはホスト装置2から送信され、データパケットを送信するのはメモリカード1であり、それに対して応答をするのはホスト装置2である。しかしながら、データ書き込みと比較してメモリカード1およびホスト装置2の立場が逆転するのみで、授受されるコマンドおよびシンボルは方向こそ異なれど、データ書き込みと同じである。ただし、通信の方向の逆転に伴い、メモリカード1およびホスト装置2中の入力バッファおよび出力バッファの停止および動作状態の切り替えも逆転する。
なお、ここまでの説明では、時刻t10から時刻t16までの間に、ライン140上でDIR2パケットが送信されている。DIR2パケットは、第2実施形態で説明するように、第2実施形態に係る応答を要求することを目的の1つとしている。しかしながら、第2実施形態に係る応答が必要でない場合は、時刻t10からt16までの間のDIR2の送信に代えて、DIRパケットが送信されてもよい。
以上説明したように、第1実施形態に係るメモリカード1によれば、ステータス2パケットが定義され、ステータス2パケットの送信、受信、認識、および対応する動作が可能になっている。具体的には、パケット制御部30は、ステータス2パケットを、生成および認識する。ステータス2パケットは、1つのバースト送信期間中に送信される複数の単位データを識別するための情報を含んでいる。ホスト装置2もステータス2シンボルを認識し、特定された単位データをグループ番号に基づいて認識し、特定された単位データのみを再送する。このため、受信に失敗したパケットの再送に要する時間を、全ての単位データを再送する場合より削減できる。
(第2実施形態)
第2実施形態は、バーストデータ送信期間中に全てのデータパケットが正常受信された際の応答方法に関する。
第2実施形態に係るメモリカード1の構成は、第1実施形態(図4)と同じである。ただし、パケット制御部30、シンボル制御部40、および応答制御部50の動作、ならびにCPU70による制御が第1実施形態のものと異なる。相応して、パケット制御部30、シンボル制御部40、応答制御部50、およびプログラムに基づくCPU70が、以下に説明する動作を実行可能に構成されている。構成および後述の動作を含め、以下の説明で触れられていない特徴の全てについて、第1実施形態の記述が適用される。まず、本実施形態に係る動作の説明に先立ち、従来の動作を簡単に説明する。
(従来のメモリカードによるハーフデュプレクスモードでのデータパケットの受信)
図8は、従来のメモリカードに対するハーフデュプレクスモードでのデータ書き込みの際のパケットシーケンスを示している。
時刻t100からt109までの間の動作は、第1実施形態(図6)の時刻t0からt9までの間の動作と同じである。
ホスト装置は、時刻t109からt110までのデータバースト送信期間において、ライン140および141上で、それぞれデータ0パケットおよびデータ1パケットを送信し、次いで、それぞれデータ2パケットおよびデータ3パケットを送信する。データ0パケットおよびデータ1パケットは、1つの単位データから生成されたものであり、データ2パケットおよびデータ3パケットは、別の1つの単位データから生成されたものである。これらの全てのデータパケットは正常に受信されたものとする。次に、ホスト装置は、EDBシンボルを送信する。
次に、時刻t110からt117までの間の動作は、DIR2ではなくDIRシンボルが送信されることを除いて、第1実施形態(図6)の時刻t10からt17までの間の動作と同じである。時刻t117において、メモリカードは、ライン141上でステータスパケットを送信することを通じて、全てのデータパケットを受信したことを通知する。いずれか1つでもデータパケットが正常に受信されたなかった場合、メモリカードは、全てのデータパケットの再送を要求するために、受信エラーであることを示す通知ビットを含んだステータスパケットを送信する。
時刻t118以降の動作は、さらなるデータバースト送信または再送がある場合に行われ、時刻t102から時刻t117までの間と同じである。
(第1実施形態のメモリカードによるハーフデュプレクスモードでのデータパケットの受信)
次に、第2実施形態のメモリカードの動作について説明する。図9は、第2実施形態のメモリカードに対するデータ書き込みの際のハーフデュプレクスモードでのパケットシーケンスを示している。時刻t200からt209までの間の動作は、第1実施形態(図6)と同じである。
時刻t209からt210までは、データのバースト送信期間である。ホスト装置2は、このデータバースト送信期間内において、まず第1単位データをデータ0パケットおよびデータ1パケットとしてライン140および141上で並行して送信する。次いで、ホスト装置2は、第2単位データをデータ2パケットおよびデータ3パケットとしてライン140および141上で並行して送信する。これらの全てのデータパケットは正常に受信されたものとする。すなわち、それぞれのデータパケットに対するCRC検査の結果、誤りが検出されなかったとする。続く時刻t210からt212までの間の動作は、第1実施形態(図6)の時刻t10からt12までの間の動作と同じである。
メモリカード1がライン140上でDIR2シンボルを受け取っていることに基づいて、時刻t213においてパケット制御部30は出力バッファ130および入力バッファ131を停止状態にする。また、時刻t213からの期間おいて、メモリカード1は、ステータスパケットを送信せずに、データパケットの正常受信の応答を行う。すなわち、メモリカード1は、DIR2シンボルを認識し、DIR2シンボルを送信するホスト装置2が本実施形態に係る応答を要求していることを知得する。具体的には、メモリカード1が送信された全てのデータパケット(図9の例ではデータ0〜データ3パケット)を正常に受信した場合、パケット制御部30の制御によって本実施形態に係る応答を行う。応答は、一定期間(時刻t213〜t214の間)にわたって、ラインN141およびラインP141の両方を特定の状態に維持する。例えば、メモリカード1は、ラインN141およびラインP141の両方をハイレベル状態に維持する。または、メモリカード1は、ラインN141およびラインP141の両方をある基準電位より低い状態に固定する(例えば、抵抗素子を介して接地電位(グランド)に接続するプルダウン状態にする)。または、メモリカード1は、ラインN141およびラインP141の両方をある基準電位より高い状態に固定する(例えば、抵抗素子を介して電源電位に接続するプルアップ状態にする)。ホスト装置2は、このような応答を受け取ると、送信された全てのデータパケットがメモリカード1によって正常に受信されたことを知得する。時刻t213からt214までのの間、ライン140上では、DIR2シンボルが流れ続けている。
次に、時刻t214からt216までの間において、メモリカード1およびホスト装置2は、ライン141上での通信の方向をメモリカード1からホスト装置2へ向かう方向へと反転させる。まず、時刻t214において、パケット制御部30は、メモリカード1の入力バッファ130を動作状態にする。次に、時刻t215において、ホスト装置2は、ホスト装置2中のライン141に接続されている入力バッファおよび出力バッファを停止状態にするとともに、ライン140上でDIR2シンボルを送信する。時刻t216において、ホスト装置2は、ホスト装置2中のライン141に接続されている出力バッファを動作状態にすろとともに、ライン141をSTBL状態にする。
時刻t217からt219までの間の動作は、時刻t208からt210までの間の動作と同様である。異なるのは、データパケットの中身のみである。
なお、ホスト装置2によるEDBシンボル直後のDIR2シンボルの送信は、さらに送信すべきデータパケットがあるときに限定してもよい。すなわち、継続して送信すべきデータパケットがない場合、ホスト装置2はEDBシンボル送信直後にDIRシンボルを送信してメモリカード1からのステータスパケットの送信を促す。また、コマンドパケット中の転送長フィールド中の値に基づいてさらなるデータパケットの受信がないことをメモリカード1が認識した場合、メモリカード1は、EDBシンボル送信直後にDIR2シンボルを送信したとしてもステータスパケットを送信してもよい。
第2実施形態も、メモリカード2へのデータ書き込みを例に取り説明が行われた。しかしながら、データ読み出しの動作も、データ書き込みと同様である。すなわち、データ書き込みと比較してメモリカード1およびホスト装置2の立場が逆転するのみで、授受されるコマンドおよびシンボルは方向こそ異なれど、データ書き込みと同じである。データ読み出しに関するその他の点は、第1実施形態において記述した内容が、第2実施形態にも当てはまる。
以上説明したように、第2実施形態に係るメモリカード1によれば、第1実施形態と同様にステータス2シンボルが定義される。このため、第1実施形態と同じ利点を得られる。また、第2実施形態に係るメモリカード1によれば、DIR2シンボルが定義され、DIR2シンボルの送信、受信、認識、および対応する動作が可能になっている。具体的には、シンボル制御部40は、DIR2シンボルを生成および認識し、DIR2シンボルに基づいてメモリコントローラ4中の各部が動作する。DIR2シンボルを受信したメモリカード1は、対応するバーストデータ送信期間中に送信された全てのデータパケットを正常に受信した旨を、パケットの送信によらずに、ラインを特定の電位に固定することを通じて通知する。このため、正常受信の通知い要する時間を短くできる。具体的には、時刻t213からt214までの応答期間自体は必要ではあるが、図8のt114からt117の間のような、ライン141の通信方向の切り替え後に必要なDIRシンボルの送信期間は不要である。また、ステータスパケットの送信が不要のため、その送信に必要な電力も消費されない。
(第3実施形態)
第2実施形態では、データパケット中にグループ番号を示す情報が含められている。これに対して、第3実施形態は、データパケット中でグループ番号を明示せずに、再送されるべきグループ番号を特定することに関する。
第3実施形態に係るメモリカード1の構成は、第1実施形態(図4)と同じである。ただし、パケット制御部30、シンボル制御部40、および応答制御部50の動作、ならびにCPU70による制御が第1実施形態のものと異なる。相応して、パケット制御部30、シンボル制御部40、応答制御部50、およびプログラムに基づくCPU70が、以下に説明する動作を実行可能に構成されている。構成および後述の動作を含め、以下の説明で触れられていない特徴の全てについて、第2実施形態の記述が適用される。
図10は、第3実施形態に係るメモリカードによるデータ受信フローを示している。図10は、バーストデータ送信から再送要求までの動作を示している。したがって、図10のフローに先立って、図6等の時刻t0からt9までの間の動作は済んでいる。図10に示されているように、ステップS1において、シンボル制御部40は、SDBシンボルを検出する。次に、パケット制御部30は、パラメータRxNumを0にリセットする(ステップS2)。パラメータRxNumは、パケット制御部30が用いる内部パラメータであり、受信されたグループの個数を計数するためのものである。
シンボル制御部40は、スタートシンボルを検出したか確認する(ステップS3)。ステップS3の判断がYESの場合、ステップS4において、シンボル制御部40はエンドシンボルを検出したかを確認する。ステップS4の判断がNOの場合、パケット制御部30は、1バイト(あるいは2バイト)ごとにデータを受信する(ステップS5)。これはエンドシンボルが検出されるまで続けられる。すなわち、ステップS5の後、処理はステップS4に戻る。
ステップS4の判断がYESの場合、パケット制御部30は、受信したパケットのペイロードのサイズが予め決められた値と一致しているか確認する(ステップS11)。すなわち、ペイロードに含まれているはずのデータの全体が受信されたかが確認される。例えば、1つのデータパケットに含まれるペイロードのサイズが256バイトとホスト装置2とメモリカード1とでネゴシエーションにより決定されていたとする。さらに、ヘッダ部とCRC部の長さがそれぞれ2バイトであるとする。この例に則ると、ステップS11に先立って受信したデータの総量のサイズは260バイトであるはずである。そうすれば、ペイロード部の全体が受信されたと判断されることが可能である。
ステップS11の判断がYESの場合、CRC処理部31は、受信したデータパケットに対してCRCを用いてエラー検出および訂正を行う(ステップS12)。ステップS12の判断がYESの場合、これは、1つのデータパケット、すなわち1つのグループ番号についてのデータがライン140または141上で正常に受信されたことを意味する。そこで、応答ビット生成部51はビットマップ情報中の対応する(処理中の)グループ番号に対応するビットに“1”を設定する(ステップS13)。また、パケット制御部30は、続いて、受信されたグループの個数の記録を増やすために、パラメータRxNumを1だけインクリメントする(ステップS14)。一方、ステップS12の判断がNOの場合、これは、1つのデータパケット、すなわち1つのグループ番号についてのデータがライン140または141上で正常に受信されなかったことを意味する。そこで、応答ビット生成部51はビットマップ情報中の対応するグループ番号に対応するビットに“0”を設定する(ステップS15)。また、処理は、ステップS14に移行する。ステップS14の後、およびステップS11の判断がNOの場合、処理はステップS3に戻る。ビットマップ情報の生成方法については、後に詳述する。
ステップS3の判断がNOの場合、シンボル制御部40は、EDBシンボルを検出したかを確認する(ステップS21)。ステップS21の判断がNOの場合、処理は、ステップS3に戻る。ステップS21の判断がYESの場合、パケット制御部30は、パラメータRxNumが、予め定められたパラメータBurstNumと一致するかを確認する(ステップS22)。パラメータBurstNumは、メモリカード1とホスト装置2がデータ送信に先立ってネゴシエーションによって決定した、1つのバースト送信期間中に送信されるはずのバースト数(すなわち単位データの数)である。
ステップS22での判断がYESである場合、これは、データバースト送信期間中に送信された全てのデータバーストがメモリカード1によって受信されたことを意味する。そこで、次に各データパケットの正常受信か否かを通知すために、パケット制御部30は、ステータス2パケットを送信する(ステップS23)。このステータス2パケットには、ステップS13およびS15において応答ビット生成部51によって生成された、各グループについての正常受信を示すビットマップ情報が含まれている。EDBシンボル送信後のステータス2パケットの送信の詳細は、第1実施形態と同じである。ホスト装置2は、このステータス2パケットを受信し、その内容に基づいて、特定のデータパケットをメモリカード1に再送する。
一方、ステップS22での判断がNOである場合、これは、データバースト送信期間中に送信されたデータパケットの全てがメモリカード1によって受信されたなかったことを意味する。そこで、パケット制御部30は、全てのデータパケットの再送を要求するために、受信エラーであることを示す通知ビットを含んだステータスパケットを送信する(ステップS24)。EDBシンボル送信後のステータス2パケットの送信の詳細は、第1実施形態と同じである。ホスト装置2は、このステータスパケットを受信すると、全てのデータパケットをメモリカード1に再送する。
次に、応答ビット生成部51によって生成されるビットマップおよびフローの一例について説明する。以下の説明は、1つのバーストデータ送信期間中に4つのバーストデータ(4つの単位データ)が送信される例に関する。
図11は、第3実施形態に係るメモリカードに対するハーフデュプレクスモードでのデータ書き込みの際のパケットシーケンスの例を示している。図11は、バーストデータ送信から再送要求までの動作を示している。時刻t309に先立つ動作は、第1実施形態(図6)の時刻t0からt9までの間のと同じである。
時刻t309からt310までの間のバーストデータ送信期間において、ホスト装置2は、まずグループ番号0のデータ0パケットおよびデータ1パケットを送信し、グループ番号1データ2パケットおよびデータ3パケットを送信する。続いて、ホスト装置2は、グループ番号2のデータ4パケットおよびデータ5パケットを送信し、グループ番号3のデータ6パケットおよびデータ7パケットを送信する。
例として、ライン140上では、データ0パケット、データ2パケット、データ4パケットが正常に受信され、データ6パケットに対するCRC検査の結果が不合格であったとする。この例に則ると、ライン140についてのビットマップ140[3:0]は、“0111”となる。例として、ビット[1]〜[3]が、それぞれグループ番号0〜3に相当するからである。
また、例として、ライン141上では、データ5パケットのみが正常に受信され、データ1パケット、データ3パケット、データ7パケットが正常に受信されなかったとする。この例に則ると、ライン141についてのビットマップ141[3:0]は、例えば“0100”となる。
応答ビット生成部51は、ビットマップ140とビットマップ141の論理積を計算する。この結果、ビットマップ[3:0]は、“0100”となる。応答ビット生成部51は、これをステータス2パケットに含め、そのようなステータス2パケットが時刻t317においてパケット制御部30によって送信される。時刻t310からt317までの間の動作は、第1実施形態の時刻t10からt17までの間の動作と同じである。
時刻t318からt325までの間において第1実施形態のt18からt25までの間と同じ動作の実行の後、時刻t325からt326までの間に、指定されたパケットがホスト装置2から再送される。再送されるパケットは、ステータス2パケット中のビットマップ“0100”がグループ番号0、1、3のデータパケットの再送を指定していることに基づいて、データ0パケット、データ1パケット、データ2パケット、データ3パケット、データ6パケット、データ7パケットである。
第3実施形態においても、あるデータバースト送信期間中に送信された全てのデータパケットが正常に受信された場合、第2実施形態の時刻t213からt214までの間と同様に、ラインN141およびラインP141を特定の電位にすることを通じて応答を行う。または、図8に示されているとともに図8に関して説明されたように、ステータスパケットが送信されてもよい。
第3実施形態も、メモリカード2へのデータ書き込みを例に取り説明が行われた。しかしながら、データ読み出しの動作も、データ書き込みと同様である。すなわち、データ書き込みと比較してメモリカード1およびホスト装置2の立場が逆転するのみで、授受されるコマンドおよびシンボルは方向こそ異なれど、データ書き込みと同じである。データ読み出しに関するその他の点は、第1実施形態において記述した内容が、第3実施形態にも当てはまる。
以上説明したように、第3実施形態に係るメモリカード1によれば、第1および第2実施形態と同様に、ステータス2シンボルおよびDIR2シンボルが定義される。このため、第1および2実施形態と同じ利点を得られる。さらに第3実施形態によれば、パケット制御部30によって受信されたデータパケットの個数(バーストの個数)と受信されるはずの個数との比較や、2つのラインで送信されるデータパケットの受信の成功に基づくビットの論理演算を用いて、再送が必要なデータパケットが特定され、結果がステータス2シンボル内で明示される。このため、データパケット中でグループ番号は明示されない。したがって、データパケットの定義を変える必要は生じず、グループ番号の個数の上限がデータパケットのヘッダ部のサイズによって制限される恐れもない。
その他、各実施形態は、上記のものに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。例えば、上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、この構成要件が削除された構成が実施形態として抽出され得る。