(57)【要約】ホスト装置が半二重モードでスレーブ装置に対しデータ読み出しコマンドおよびデータ書き込みコマンドを実行中に、割り込み要求を通知することができない。ホスト装置およびスレーブ装置は、半二重モードで所定の個数のデータパケットを送受信終了後、第１伝送路もしくは第２伝送路の通信方向を一時的に切り換え、全二重モードに設定する。ホスト装置もしくはスレーブ装置は、上記一時的に設定された全二重モード期間にＷａｉｔやＢｕｓｙ等の割り込み要求を相手方に送信することで、半二重モードでの高速データ伝送中であっても割り込み要求を実行することができる。
2009147811.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記第１伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な第１伝送路用入出力端子と、
前記第２伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも２つの状態に設定可能な第２伝送路用入出力端子と、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した前記第１条件または前記第２条件を満たすか否かを判定する通信モード切換条件検出部と、
前記通信モード切換条件検出部により、前記第１条件が満たされたと判定された場合、前記第１伝送路用入出力端子および前記第２伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出部により、前記第２条件が満たされたと判定された場合、前記第１伝送路用入出力端子および前記第２伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御部と、
を備えるインターフェース装置。
【請求項２】
前記通信モード切換条件検出部は、前記通信システムが、前記半二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、前記第２条件が満たされたと判断する、
請求項１に記載のインターフェース装置。
【請求項３】
前記通信モード切換条件検出部は、前記通信システムが、前記半二重通信モードでの通信に切り換えられた時点から、Ｎ個（Ｎは自然数）のパケットの送信もしくは受信を完了した場合に、前記第２条件が満たされたと判断する、
請求項１に記載のインターフェース装置。
【請求項４】
前記伝送路切換制御部は、前記第２条件を、データ送受信要求またはデータ送受信命令に含めて通信相手に通知する、
請求項１から３のいずれかに記載のインターフェース装置。
【請求項５】
前記伝送路切換制御部は、前記インターフェース装置の初期設定時に、前記第２条件を、通信相手に通知及び／又は設定させるためのパケットを送信する、
請求項１から４のいずれかに記載のインターフェース装置。
【請求項６】
前記第２条件が満たされたと判断するための送信もしくは受信したパケット数Ｎは、前記通信システムにかかるバッファサイズから決定する、
請求項１、２、３、および５のいずれかに記載のインターフェース装置。
【請求項７】
前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた時点から、所定の時間Ｔが経過した場合に、前記第１条件が満たされたと判断する、
請求項１から６のいずれかに記載のインターフェース装置。
【請求項８】
前記伝送路切換制御部は、前記インターフェース装置の初期設定時に、前記第１条件を、通信相手に通知及び／又は設定させるためのパケットを送信する、
請求項１から７のいずれかに記載のインターフェース装置。
【請求項９】
前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、前記第１条件が満たされたと判断する、
請求項１から７のいずれかに記載のインターフェース装置。
【請求項１０】
前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を送信した場合に、前記第１条件が満たされたと判断する、
請求項１から７のいずれかに記載のインターフェース装置。
【請求項１１】
前記伝送路切換制御部は、
前記全二重通信モードに切り換え後、Ｗａｉｔ指示の割り込み通知を受信した場合、前記全二重通信モードの状態で待機し、
前記Ｗａｉｔ指示の割り込み通知に対応する割り込み処理の完了後に送信される割込処理完了を指示する通知を受信した場合、前記半二重通信モードへ切り換える、
請求項１から６のいずれかに記載のインターフェース装置。
【請求項１２】
前記伝送路切換制御部は、
前記全二重通信モードに切り換え後、所定時間以内にＷａｉｔ指示の割り込み通知を受信しなかった場合、前記半二重通信モードへ切り換える、
請求項１から６のいずれかに記載のインターフェース装置。
【請求項１３】
不揮発性メモリと、
前記不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、
請求項１から１２のいずれかに記載のインターフェース装置と、
を備える不揮発性記憶装置。
【請求項１４】
外部との通信を行う外部通信部と、
前記外部通信部に対する制御を行う外部通信制御部と、
請求項１から１２のいずれかに記載のインターフェース装置と、
を備える通信装置。
【請求項１５】
請求項１から１２のいずれかに記載のインターフェース装置を含むホスト装置と、
請求項１３または１４に記載の装置を含むスレーブ装置と、
を備える通信システム。
【請求項１６】
少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられる通信モード切換方法であって、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した前記第１条件または前記第２条件を満たすか否かを判定する通信モード切換条件検出ステップと、
前記通信モード切換条件検出ステップにより、前記第１条件が満たされたと判定された場合、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出ステップにより、前記第２条件が満たされたと判定された場合、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御ステップと、
を備える通信モード切換方法。
【請求項１７】
少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記第１伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な第１伝送路用入出力端子と、
前記第２伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも２つの状態に設定可能な第２伝送路用入出力端子と、
を備えるインターフェース装置に用いられる集積回路であって、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した前記第１条件または前記第２条件を満たすか否かを判定する通信モード切換条件検出部と、
前記通信モード切換条件検出部により、前記第１条件が満たされたと判定された場合、前記第１伝送路用入出力端子および前記第２伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出部により、前記第２条件が満たされたと判定された場合、前記第１伝送路用入出力端子および前記第２伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御部と、
を備える集積回路。
【請求項１８】
低速伝送路および複数の高速伝送路を有し、前記低速伝送路または複数の前記高速伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記低速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な低速伝送路用入出力端子と、
前記高速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な複数の高速伝送路用入出力端子と、
前記低速伝送路用入出力端子および前記複数の高速伝送路用入出力端子の入出力状態を、それぞれを独立に設定することができ、
前記複数の高速伝送路用入出力端子のうち少なくとも１つの前記高速伝送路用入出力端子を出力状態に設定し、当該出力状態に設定した前記高速伝送路用入出力端子以外の前記高速伝送路用入出力端子を入力状態に設定する全二重通信モードと、
前記複数の高速伝送路用入出力端子のすべてを出力状態に設定する半二重出力モードと、
前記複数の高速伝送路用入出力端子のすべてを入力状態に設定する半二重入力モードと、に基づいて、前記低速伝送路用入出力端子および前記複数の高速伝送路用入出力端子の入出力状態を設定する伝送路切換制御部と、
を備え、
前記伝送路切換制御部は、
前記半二重出力モードでは、前記低速伝送路用入出力端子を入力状態に設定し、
前記半二重入力モードでは、前記低速伝送路用入出力端子を出力状態に設定する、
インターフェース装置。
【請求項１９】
前記低速伝送路用入出力端子は、シングルエンド方式による通信を行う伝送路用の入出力端子であり、
前記複数の高速伝送路用入出力端子のうちの少なくとも１つの高速伝送路用入出力端子は、差動伝送方式による通信を行う伝送路用の入出力端子である、
請求項１８に記載のインターフェース装置。
【請求項２０】
不揮発性メモリと、
前記不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、
請求項１８または１９に記載のインターフェース装置と、
を備える不揮発性記憶装置。
【請求項２１】
外部との通信を行う外部通信部と、
前記外部通信部に対する制御を行う外部通信制御部と、
請求項１８または１９に記載のインターフェース装置と、
を備える通信装置。
【請求項２２】
請求項１８または１９に記載のインターフェース装置を含むホスト装置と、
請求項１８または１９に記載のインターフェース装置を含むスレーブ装置と、
を備える通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターフェース装置、インターフェース装置を含むホスト装置とインターフェース装置を含むスレーブ装置、インターフェース装置を含む複数の通信装置から構成される通信システムと、その通信方法に関する。
【背景技術】
【０００２】
近年、半導体の微細化・高速化技術の進展に伴って、機器間の通信、あるいは機器内に搭載されるＬＳＩ間の通信データ量は益々増加し、通信速度の高速化が求められる傾向にある。一方で、ＬＳＩのダイサイズ（チップ面積）に影響を及ぼすとともに、チップ（ＬＳＩ）の製造単価増の要因となるＬＳＩの端子（パッド）数には、厳しい制約がある。
そこで、より少ないＬＳＩ端子数で高速なデータ通信を実現する目的でＵＳＢ２．０、ＩＥＥＥ１３９４、ＰＣＩ  Ｅｘｐｒｅｓｓといった高速シリアル通信規格が広く採用されている。このような規格における通信方式としては、ＵＳＢ２．０やＩＥＥＥ１３９４のように送受信の方向制御や送信権の調停制御が必要な「半二重通信方式」と、ＰＣＩ  Ｅｘｐｒｅｓｓのように送信専用の伝送路と、受信専用の伝送路とを少なくとも１チャンネルずつ備えることにより送受信を同時に処理できる「全二重通信方式」が挙げられる。一般的に、全二重通信方式の方が、半二重通信方式に比べ、制御が容易である。その一方で、全二重通信方式では、送信あるいは受信のどちらか一方向のみの通信を行っている期間は、他方向の伝送路が使用されないので、通信に使用されていない他方の伝送路の帯域が無駄になる、という効率面での課題がある。【０００３】
また、他の分野に目を向けてみると、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体として、半導体メモリカード等の不揮発性記憶装置の需要が拡大しており、かつ、その大容量化が急速に進んでいる。この不揮発性記憶装置は、不揮発性メモリとしてフラッシュメモリを備え、フラッシュメモリを制御するフラッシュメモリ部読み書き制御部、およびデジタルスチルカメラやＰＣ（パーソナルコンピュータ）等のホスト装置との通信を行うためのインターフェース回路を有している。このインターフェース回路を介して、不揮発性記憶装置は、ホスト装置から制御可能なスレーブ装置として機能する。
こうした装置間の通信データ量は、例えば、デジタルスチルカメラの高画素化と高画質化により、急速に増大している。また、一眼レフタイプのデジタルスチルカメラにおいては、高速連写機能の搭載により、データ通信の高速化が強く求められている。【０００４】
また、他のスレーブ装置の例としては、ホスト装置にネットワーク機能を追加するためのネットワークインターフェース装置などがあり、ネットワークの高速化に伴い、ホスト装置とスレーブ装置との間のデータ通信の高速化が必須条件として、強く要請されている。
こうした不揮発性記憶装置やネットワークインターフェース装置に代表されるスレーブ装置と、ホスト装置との間は、複数の伝送路により接続される。例えば、スレーブ装置が不揮発性記憶装置である場合、このような伝送路上には、ホスト装置から不揮発性記憶装置に対する命令（コマンド）や通知、不揮発性メモリから読み出されるデータ、もしくは不揮発性メモリに書き込まれるデータ等が、デジタル信号として伝送される。
伝送路を２チャンネル備える場合、１チャンネルの伝送路がホスト装置から不揮発性記憶装置（スレーブ装置の一例）への伝送路（ダウンリンク）として利用され、もう一方の伝送路が不揮発性記憶装置からホスト装置への伝送路（アップリンク）として利用される。全二重通信方式では、ホスト装置および不揮発性記憶装置が同時にコマンドもしくはデータを送信することができる。【０００５】
一方、半二重通信方式では、２チャンネルの伝送路がともにホスト装置から不揮発性記憶装置への伝送路（ダウンリンク）、もしくは、ともに不揮発性記憶装置からホスト装置への伝送路（アップリンク）として利用される。このため、半二重通信方式では、一方の装置が送信するとき、他方の装置は、受信のみ可能で、送信は出来なくなる。したがって、ダウンリンク、もしくは、アップリンク、どちらかの一方向のみで見た場合、半二重通信方式では、一方向当たりの通信帯域が、全二重方式の場合の２倍になるため、半二重通信方式は、大容量のデータを同一方向に高速伝送する場合に有効である。
特に、半導体メモリカードに代表される不揮発性記憶装置においては、高速なデータ書き込みと、高速なデータ読み出しが同時に行われることは希で、高速書き込み、もしくは、高速読み出しのどちらか一方の処理のみが継続する用途が圧倒的に多い。したがって、このような不揮発性記憶装置において、データ転送（データ書き込み又はデータ読み出し）を行う期間に関しては、半二重通信方式の方が効率の面で極めて有利になる。【０００６】
なお、送信あるいは受信のどちらか一方の通信のみを行う期間は、全二重通信を行うための伝送路の方向を切換えることにより、全伝送路を用いた半二重通信方式とし、限られた伝送路の帯域を効率的に使用する従来技術がある（例えば、特許文献１参照）。
従来の、全二重モードと半二重モードとを切り換え可能な通信システムについて、図１１Ａおよび図１１Ｂを用いて、説明する。
図１１Ａおよび図１１Ｂは、ホスト装置と不揮発性記憶装置とが２チャンネルの外部伝送路により接続され、全二重モードと半二重モードとを切り換えて通信を行うことができる通信システムにおける、第１伝送路および第２伝送路により送受信されるコマンドおよびデータのタイミング図（タイミングチャート）（外部伝送路上を伝送するコマンド（命令）およびデータを時系列に示したタイミング図）である。具体的には、図１１Ａは、ホスト装置が半二重モードにて不揮発性記憶装置よりデータを読み出すときのタイミング図である。図１１Ｂは、不揮発性記憶装置へデータを書き込むときのタイミング図である。【０００７】
図１１Ａおよび図１１Ｂに示すように、外部伝送路は、第１伝送路１１０１および第２伝送路１１０２からなり、初期状態では、第１伝送路１１０１は、ダウンリンクに設定されており、第２伝送路１１０２は、アップリンクに設定されている。なお、ホスト装置からはクロック伝送路（図示せず）を介して不揮発性記憶装置にクロックが供給されている。
このような構成とする理由は、通常、不揮発性記憶装置をはじめとするスレーブ装置は、小型かつ安価であることが求められるため、独自にクロックを持たず（独自にクロック生成せず）、ホスト装置から供給されるクロックで駆動する方が好ましいからである。
図１１Ａにおいて、ホスト装置は、不揮発性記憶装置に対し半二重モードでデータ読み出しを指示するために、高速Ｒｅａｄコマンドを送信する（１１１１）。高速Ｒｅａｄコマンドには、データ読み出し先のアドレス、読み出しサイズが多重されているものとする。【０００８】
高速Ｒｅａｄコマンド送信後、ホスト装置は、第１伝送路１１０１のホスト側入出力端子を入力状態に設定する。一方、高速Ｒｅａｄコマンドを受信した不揮発性記憶装置は、第１伝送路１１０１の不揮発性記憶装置側入出力端子を出力状態に設定する。これにより、第１伝送路１１０１はアップリンクに設定される（１１１２）。
その後、不揮発性記憶装置は、高速Ｒｅａｄコマンドに多重された読み出し先のアドレスから読み出しサイズ分のデータを、第１伝送路１１０１および第２伝送路１１０２を用いて並列に送信する（１１１３）。
所定サイズのデータの送受信完了後、不揮発性記憶装置は、第１伝送路１１０１の不揮発性記憶装置側入出力端子を入力状態にし、ホスト装置は、第１伝送路１１０１のホスト側入出力端子を出力状態にする。これにより、第１伝送路１１０１はダウンリンクに戻る（１１１４）。【０００９】
図１１Ｂにおいて、ホスト装置は、不揮発性記憶装置に対し半二重モードでデータ書き込みを指示するために、高速Ｗｒｉｔｅコマンドを送信する（１１１５）。高速Ｗｒｉｔｅコマンドには、データ書き込み先のアドレス、書き込みサイズが多重されているものとする。
高速Ｗｒｉｔｅコマンド送信後、ホスト装置は、第２伝送路１１０２のホスト側入出力端子を出力状態に設定する。一方、高速Ｗｒｉｔｅコマンドを受信した不揮発性記憶装置は、第２伝送路１１０２の不揮発性記憶装置側入出力端子を入力状態に設定する。これにより、第２伝送路１１０２はダウンリンクに設定される（１１１６）。
その後、ホスト装置は、高速Ｗｒｉｔｅコマンドに多重された書き込み先のアドレスへ書き込みサイズ分のデータを、第１伝送路１１０１および第２伝送路１１０２を用いて並列に送信する（１１１７）。【００１０】
所定サイズのデータの送受信完了後、ホスト装置は、第２伝送路１１０２のホスト側入出力端子を入力状態にし、不揮発性記憶装置は、第２伝送路１１０２の不揮発性記憶装置側入出力端子を出力状態にする。これにより、第２伝送路１１０２はアップリンクに戻る（１１１８）。
以上により、従来の、全二重モードと半二重モードとを切り換え可能な通信システムでは、全二重モードと半二重モードとを切り替えることで効率の良い通信を実現することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００２−９４６００号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記で説明した通信システムでは、以下のような問題が生じる。
第１に、ホスト装置が高速Ｒｅａｄコマンドを発行し、第１伝送路１１０１がアップリンクに切り換わった後から再度ダウンリンクに切り換わるまで（１１１２〜１１１４）は、第１伝送路１１０１および第２伝送路１１０２共にアップリンクとなるため、ホスト装置から不揮発性記憶装置に情報を伝達する手段がない。例えば、高速Ｒｅａｄコマンドによるデータ転送の途中（１１１３）で、ホスト装置の受信バッファの空き領域がなくなり高速Ｒｅａｄコマンドを一時停止（「Ｗａｉｔ」）させようとしても、データ転送が完了し、第１伝送路１１０１が再度ダウンリンクに切り換わるまで、ホスト装置から不揮発性記憶装置に「Ｗａｉｔ」を指示できない。
第２に、ホスト装置が高速Ｗｒｉｔｅコマンドを発行した場合も、第２伝送路１１０２がダウンリンクに切り換わった後から再度アップリンクに切り換わるまで（１１１６〜１１１８）は、第１伝送路１１０１および第２伝送路１１０２共にダウンリンクとなるため、不揮発性記憶装置からホスト装置に情報を伝達する手段がない。よって、データ転送途中（１１１７）で、高速Ｗｒｉｔｅコマンドを一時停止（「Ｂｕｓｙ」）させようとしても、データ転送が完了し、第２伝送路１１０２が再度アップリンクに切り換わるまで、不揮発性記憶装置からホスト装置に「Ｂｕｓｙ」を通知できない。【００１３】
そこで、本発明は、上記問題点を鑑み、半二重モードでのデータ読み出しおよび書き込み中であっても、ホスト装置とスレーブ装置との間で速やかに指示や割り込み通知を伝達できるインターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の発明は、少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、第１伝送路用入出力端子と、第２伝送路用入出力端子と、通信モード切換条件検出部と、伝送路切換制御部と、を備える。
第１伝送路用入出力端子は、第１伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能である。第２伝送路用入出力端子は、第２伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも２つの状態に設定可能である。通信モード切換条件検出部は、通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、半二重通信モードを全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した第１条件または第２条件を満たすか否かを判定する。伝送路切換制御部は、通信モード切換条件検出部により、第１条件が満たされたと判定された場合、第１伝送路用入出力端子および第２伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、通信モードを、全二重通信モードから半二重通信モードに切り換える。また、伝送路切換制御部は、通信モード切換条件検出部により、第２条件が満たされたと判定された場合、第１伝送路用入出力端子および第２伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、通信モードを、半二重通信モードから全二重通信モードに切り換える。【００１５】
このインターフェース装置では、半二重モードでのデータ読み出しやデータ書き込みの実行中であっても、所定の条件を満たしたときに伝送路の方向を切り換えて一時的に全二重モードとすることができるので、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
なお、第１伝送路用入出力端子と、第２伝送路用入出力端子と、「２つの状態」である「入力状態」と「出力状態」の他に、例えば、「ハイインピーダンス」（絶縁状態）のような、「入力状態」と「出力状態」以外の状態をとるものであってもよい。
第２の発明は、第１の発明であって、通信モード切換条件検出部は、通信システムが、半二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、第２条件が満たされたと判断する。【００１６】
このインターフェース装置では、通信システムが、半二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、必ず、全二重通信モードに戻るので、半二重通信モード中の割り込み要求の速やかな実行を保証することができる。
第３の発明は、第１の発明であって、通信モード切換条件検出部は、通信システムが、半二重通信モードでの通信に切り換えられた時点から、Ｎ個（Ｎは自然数）のパケットの送信もしくは受信を完了した場合に、第２条件が満たされたと判断する。
このインターフェース装置では、通信システムが、半二重通信モードでの通信に切り換えられた時点から、Ｎ個（Ｎは自然数）のパケットの送信もしくは受信を完了した場合に、必ず、全二重通信モードに戻るので、半二重通信モード中の割り込み要求の速やかな実行を保証することができる。さらに、このインターフェース装置では、送受信パケット数をカウントするだけで、簡単に、通信モードの切換タイミングを決定することができる。【００１７】
第４の発明は、第１から第３のいずれかの発明であって、伝送路切換制御部は、第２条件を、データ送受信要求またはデータ送受信命令に含めて通信相手に通知する。
これにより、第２条件を、簡易かつ確実に、通信相手に通知することができる。なお、データ送受信要求またはデータ送受信命令は、予め定義されたパケットを利用するものであってもよい。
第５の発明は、第１から第４のいずれかの発明であって、伝送路切換制御部は、インターフェース装置の初期設定時に、第２条件を、通信相手に通知及び／又は設定させるためのパケットを送信する。
これにより、インターフェース装置の初期化時に第２条件（半二重から全二重に切り換えるための条件）を、通信相手に通知及び／又は設定させることができるため、通信システムが動作中に、別途第２条件を設定するための通信を行う必要がない。【００１８】
なお、「初期化時」とは、例えば、インターフェース装置が起動した時や、インターフェース装置がアクティブになった時や、電源投入時等である。
第６の発明は、第１、第２、第３、および第５のいずれかの発明であって、第２条件が満たされたと判断するための送信もしくは受信したパケット数Ｎは、通信システムにかかるバッファサイズから決定する。
これにより、通信システムにおいて、適切に高速データ転送を行うことができる。
例えば、パケット数Ｎの決定方法は、以下のようにすればよい。
インターフェース装置を含むホスト装置と、インターフェース装置を含むスレーブ装置と、を備える通信システムを想定し、ホスト装置側のインターフェース装置のバッファサイズをＢｕｆ１［バイト］とし、スレーブ装置側のインターフェース装置のバッファサイズをＢｕｆ２［バイト］とし、ホスト装置とスレーブ装置間で通信されるパケットのパケットサイズをＡ［バイト］としたとき、
（１）Ｂｕｆ１＞Ｂｕｆ２である場合、
Ｎ＝Ｉｎｔ（Ｂｕｆ２／Ａ）
（２）Ｂｕｆ１≦Ｂｕｆ２である場合、
Ｎ＝Ｉｎｔ（Ｂｕｆ１／Ａ）
により、パケット数Ｎを決定すればよい。なお、Ｉｎｔ（Ｘ）は、Ｘを超えない最大の整数値を表すものとする（Ｉｎｔ（Ｘ）は、ガウス記号による演算に相当する関数である）。【００１９】
また、パケット数Ｎの決定方法は、ホスト装置およびスレーブ装置の処理性能に基づいてパケット数Ｎを決定する方法であってもよい。つまり、このパケット数Ｎを決定する方法では、パケット数Ｎを、バッファサイズの小さい装置を基準にして決定するので、通信システムの通信性能を最大限に引き出すことが可能となる。
また、パケット数Ｎの決定方法は、ホスト装置およびスレーブ装置の処理速度性能に基づいてパケット数Ｎを決定する方法であってもよい。例えば、ホスト装置の処理速度、動作クロックがそれぞれＰ１、Ｃ１であり、スレーブ装置の処理速度、動作クロックがそれぞれＰ２、Ｃ２であり、通信パケットのパケットサイズがＡである場合、Ｐ１、Ｐ２、Ｃ１、Ｃ２およびＡの全部若しくは一部に基づいて、パケット数Ｎを決定するようにしてもよい。なお処理速度性能は、ホスト装置またはスレーブ装置に実装されているプロセッサ処理能力、同じくホスト装置またはスレーブ装置に実装されているＲＡＭやフラッシュメモリ等記録媒体への読み書き速度、外部との通信を行う外部通信路の伝送速度の全部若しくは一部から決まる。【００２０】
第７の発明は、第１から第６のいずれかの発明であって、通信モード切換条件検出部は、通信システムが全二重通信モードでの通信に切り換えられた時点から、所定の時間経過した場合に、第１条件が満たされたと判断する。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。
第８の発明は、第１から第７のいずれかの発明であって、伝送路切換制御部は、インターフェース装置の初期設定時に、第１条件を、通信相手に通知及び／又は設定させるためのパケットを送信する。【００２１】
これにより、インターフェース装置の初期化時に第１条件（全二重から半二重に切り換えるための条件）を、通信相手に通知及び／又は設定させることができるため、通信システムが動作中に、別途第１条件を設定するための通信を行う必要がない。
第９の発明は、第１から第７のいずれかの発明であって、通信モード切換条件検出部は、通信システムが全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、第１条件が満たされたと判断する。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。また、このインターフェース装置では、インターフェース切換要求命令を受信により通信モードが切り換えられるので、送信側および受信側において、（クロックカウント等による）時間計測を行う必要がない。【００２２】
第１０の発明は、第１から第７のいずれかの発明であって、通信モード切換条件検出部は、通信システムが全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を送信した場合に、第１条件が満たされたと判断する。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を送信した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。また、このインターフェース装置では、インターフェース切換要求命令を受信により通信モードが切り換えられるので、送信側および受信側において、（クロックカウント等による）時間計測を行う必要がない。さらに、インターフェース切換要求命令を送信するタイミングを制御することで、全二重通信モードによる通信期間を所望の期間に設定することができる。このため、効率のよい通信を実現させることができる。【００２３】
第１１の発明は、第１から第６のいずれかの発明であって、伝送路切換制御部は、全二重通信モードに切り換え後、Ｗａｉｔ指示の割り込み通知を受信した場合、全二重通信モードの状態で待機し、Ｗａｉｔ指示の割り込み通知に対応する割り込み処理の完了後に送信される割込処理完了を指示する通知を受信した場合、半二重通信モードへ切り換える。
これにより、このインターフェース装置では、Ｗａｉｔ指示の割り込み通知（例えば、Ｗａｉｔ通知パケット）を受信した時点から、割込処理完了を指示する通知（例えば、Ｗａｉｔ解除パケット）を受信する時点までの間、確実に全二重モードを維持することができ、かつ、その間、インターフェース装置は、通信モードを維持したまま、待機していればよいので、余計な通信（余計なパケットの送受信）を行う必要がない（例えば、ポーリングにより、所定の周期で、通信相手の装置の状態を確かめる必要がない）。【００２４】
第１２の発明は、第１から第６のいずれかの発明であって、伝送路切換制御部は、全二重通信モードに切り換え後、所定時間以内にＷａｉｔ指示の割り込み通知を受信しなかった場合、半二重通信モードへ切り換える。
これにより、このインターフェース装置では、Ｗａｉｔ指示の割り込み通知（例えば、Ｗａｉｔ通知パケット）を受信した時点から、所定時間が経過するまでの間、確実に全二重モードを維持することができ、かつ、その間、インターフェース装置は、通信モードを維持したまま、待機していればよいので、余計な通信（余計なパケットの送受信）を行う必要がない（例えば、ポーリングにより、所定の周期で、通信相手の装置の状態を確かめる必要がない）。
なお、所定時間以内にＷａｉｔ指示の割り込み通知を受信しなかった場合、直ちに、半二重通信モードに切り換えることが好ましい。【００２５】
第１３の発明は、不揮発性メモリと、不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、第１から第１２のいずれかの発明であるインターフェース装置と、を備える不揮発性記憶装置である。
これにより、第１から第１２のいずれかの発明であるインターフェース装置の効果を実現することができる不揮発性記憶装置（例えば、ＳＤカード）を実現することができる。
第１４の発明は、外部との通信を行う外部通信部と、外部通信部に対する制御を行う外部通信制御部と、第１から第１２のいずれかの発明であるインターフェース装置と、を備える通信装置である。
第１５の発明は、第１３または第１４の発明であるインターフェース装置を含むホスト装置と、第１から第８のいずれかの発明であるインターフェース装置を含むスレーブ装置と、を備える通信システムである。【００２６】
これにより、第１から第８のいずれかの発明であるインターフェース装置の効果を実現することができる通信システムを実現することができる。なお、ホスト装置とスレーブ装置は、１つの装置の中に存在し、例えば、内部バスによりホスト装置とスレーブ装置とが接続されているものであってもよい。これにより、例えば、携帯端末装置内のデバイス間において、第１から第８のいずれかの発明であるインターフェース装置により実現される効果と同様の効果を実現させることができる。
第１６の発明は、少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、伝送路を用いて命令やデータの送受信を行う通信システムに用いられる通信モード切換方法であって、通信モード切換条件検出ステップと、伝送路切換制御ステップと、を備える。【００２７】
通信モード切換条件検出ステップでは、通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、半二重通信モードを全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した第１条件または第２条件を満たすか否かを判定する。伝送路切換制御ステップでは、通信モード切換条件検出ステップにより、第１条件が満たされたと判定された場合、通信モードを、全二重通信モードから半二重通信モードに切り換え、そして、通信モード切換条件検出ステップにより、第２条件が満たされたと判定された場合、通信モードを、半二重通信モードから全二重通信モードに切り換える。
この通信モード切換方法では、半二重モードでのデータ読み出しやデータ書き込みの実行中であっても、所定の条件を満たしたときに伝送路の方向を切り換えて一時的に全二重モードとすることができるので、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。【００２８】
第１７の発明は、少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置に用いられる集積回路である。そして、インターフェース装置は、第１伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な第１伝送路用入出力端子と、第２伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも２つの状態に設定可能な第２伝送路用入出力端子と、を備える。そして、第１７の発明である集積回路は、通信モード切換条件検出部と、伝送路切換制御部と、を備える。
通信モード切換条件検出部は、通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、半二重通信モードを全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した第１条件または第２条件を満たすか否かを判定する。伝送路切換制御部は、通信モード切換条件検出部により、第１条件が満たされたと判定された場合、第１伝送路用入出力端子および第２伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、通信モードを、全二重通信モードから半二重通信モードに切り換え。また、伝送路切換制御部は、通信モード切換条件検出部により、第２条件が満たされたと判定された場合、第１伝送路用入出力端子および第２伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、通信モードを、半二重通信モードから全二重通信モードに切り換える。【００２９】
これにより、第１の発明と同様の効果を奏する集積回路を実現することができる。
第１８の発明は、低速伝送路および複数の高速伝送路を有し、低速伝送路または複数の高速伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、低速伝送路用入出力端子と、複数の高速伝送路用入出力端子と、伝送路切換制御部と、を備える。
低速伝送路用入出力端子は、低速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な入出力端子である。複数の高速伝送路用入出力端子は、高速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な入出力端子である。【００３０】
伝送路切換制御部は、低速伝送路用入出力端子および複数の高速伝送路用入出力端子の入出力状態を、それぞれを独立に設定することができ、以下の３つのモードに基づいて、低速伝送路用入出力端子および複数の高速伝送路用入出力端子の入出力状態を設定する。
（１）複数の高速伝送路用入出力端子のうち少なくとも１つの高速伝送路用入出力端子を出力状態に設定し、当該出力状態に設定した高速伝送路用入出力端子以外の高速伝送路用入出力端子を入力状態に設定する全二重通信モード。
（２）複数の高速伝送路用入出力端子のすべてを出力状態に設定する半二重出力モード。
（３）複数の高速伝送路用入出力端子のすべてを入力状態に設定する半二重入力モード。
そして、伝送路切換制御部は、半二重出力モードでは、低速伝送路用入出力端子を入力状態に設定し、半二重入力モードでは、低速伝送路用入出力端子を出力状態に設定する。【００３１】
このインターフェース装置では、複数の高速伝送路を用いて、半二重通信を行っている場合、低速伝送路の通信方向を、当該半二重通信の通信方向と逆方向に設定される。したがって、このインターフェース装置では、複数の高速伝送路を用いて、半二重通信を行っている場合であっても、確実に、割込処理を行うことができる。その結果、このインターフェース装置では、適切な割り込み処理と高速データ転送（半二重モードによる高速なデータ伝送）と両立させることができる。
第１９の発明は、第１８の発明であって、低速伝送路用入出力端子は、シングルエンド方式による通信を行う伝送路用の入出力端子であり、複数の高速伝送路用入出力端子のうちの少なくとも１つの高速伝送路用入出力端子は、差動伝送方式による通信を行う伝送路用の入出力端子である。【００３２】
このインターフェース装置では、高い通信速度を要求される複数の高速伝送路に使用される複数の高速伝送路用入出力端子を、差動伝送方式用の入出力端子とし、高い通信速度を要求されない低速伝送路用に使用される低速伝送路用入出力端子をシングルエンド方式用の入出力端子としたので、インターフェース装置の回路規模の増大を抑えつつ、適切な割り込み処理および高速データ転送を実現させることができる。
第２０の発明は、不揮発性メモリと、不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、第１８または第１９の発明であるインターフェース装置と、を備える不揮発性記憶装置である。
第２１の発明は、外部との通信を行う外部通信部と、外部通信部に対する制御を行う外部通信制御部と、第１８または第１９の発明であるインターフェース装置と、を備える通信装置である。【００３３】
第２２の発明は、第１８または第１９の発明であるインターフェース装置を含むホスト装置と、第１８または第１９の発明であるインターフェース装置を含むスレーブ装置と、を備える通信システムである。
【発明の効果】
【００３４】
本発明によれば、ホスト装置とスレーブ装置が半二重モードでのデータ読み出しやデータ書き込みの実行中であっても、所定の条件を満たしたときに伝送路の方向を切り換えて一時的に全二重モードとすることで、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
【図面の簡単な説明】
【００３５】
【図１】第１実施形態の構成を説明したブロック図
【図２Ａ】第１実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図２Ｂ】第１実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図２Ｃ】第１実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図３Ａ】第１実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図３Ｂ】第１実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図４】第１実施形態の別の構成を説明したブロック図
【図５】第２実施形態の構成を説明したブロック図
【図６Ａ】第２実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図６Ｂ】第２実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図６Ｃ】第２実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図７Ａ】第２実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図７Ｂ】第２実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図８】第３実施形態の構成を説明したブロック図
【図９Ａ】第３実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図９Ｂ】第３実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図９Ｃ】第３実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図１０Ａ】第３実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１０Ｂ】第３実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１１Ａ】従来の不揮発性記憶システムにおける伝送路上を伝送されるコマンドおよびデータを時系列に示したタイミング図
【図１１Ｂ】従来の不揮発性記憶システムにおける伝送路上を伝送されるコマンドおよびデータを時系列に示したタイミング図
【図１２Ａ】第１実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１２Ｂ】第１実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１３Ａ】第２実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１３Ｂ】第２実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１４Ａ】第３実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１４Ｂ】第３実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１５】第１実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１６】第１実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１７】第１実施形態のパケット構成図
【図１８】第１実施形態のパケットヘッダーと、Ａｒｇｕｍｅｎｔの一部を示した図
【図１９】第１実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図２０】第１実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図２１】第１実施形態のＩ／Ｏ空間を示す図
【図２２】第４実施形態の構成を説明したブロック図
【図２３】第４実施形態におけるバス切換制御部の全二重モードにおける構成を説明したブロック図
【図２４】第４実施形態の高速Ｒｅａｄ時におけるバス上を伝送されるパケットを時系列に示したタイミング図
【図２５】第４実施形態におけるバス切換制御部の半二重Ｒｅａｄモードにおける構成を説明したブロック図
【図２６】第４実施形態の高速Ｗｒｉｔｅ時におけるバス上を伝送されるパケットを時系列に示したタイミング図
【図２７】第４実施形態におけるバス切換制御部の半二重Ｗｒｉｔｅモードにおける構成を説明したブロック図
【図２８】第４実施形態の別の構成を説明したブロック図
【図２９】第５実施形態の高速Ｗｒｉｔｅ時におけるバス上を伝送されるパケットを時系列に示したタイミング図
【発明を実施するための形態】
【００３６】
以下に、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の各実施形態において、以前に説明した符号の説明は省略する。
［第１実施形態］
＜１．１：通信システムの構成＞
図１は、本発明の第１実施形態に係る通信システム１の構成を示したブロック図である。
図１に示すように、通信システム１は、ホスト装置１００とスレーブ装置の一種である不揮発性記憶装置１１０とを備える。そして、ホスト装置１００と不揮発性記憶装置１１０とは、第１伝送路１２１、第２伝送路１２２、クロック伝送路１２３により接続されている。
【００３７】
ホスト装置１００は、少なくともユーザーインターフェース部１３１、アプリケーション部１３２、メモリ部１３３、およびホストインターフェース部１４０を備える。
ホストインターフェース部１４０は、クロック送信部１４１、パケット生成部１４２、伝送路切換制御部１４３、パケット解析部１４４、クロックカウンタ１４５を備える。
不揮発性記憶装置１１０は、少なくともスレーブインターフェース部１６０、不揮発性メモリ部読み書き制御部１７０および不揮発性メモリ部１７１を備える。
スレーブインターフェース部１６０は、クロック再生成部１６１、伝送路切換制御部１６２、パケット解析部１６３、パケット生成部１６４、クロックカウンタ１６５を備える。
なお、パケット生成部１４２および１６４、パケット解析部１４４および１６３は、適当な大きさのバッファを備えているものとする。
【００３８】
図２Ａ〜Ｃは、ホストインターフェース部１４０およびスレーブインターフェース部１６０の構成図であり、特に、ホスト装置側の伝送路切換制御部１４３およびスレーブ装置側の伝送路切換制御部１６２の構成を詳細に示した図である。
図２Ａ〜Ｃに示すように、ホスト装置側の伝送路切換制御部１４３は、ホストインターフェース部１４０の切換条件検出部２４０と、第１伝送路１２１のホストインターフェース部１４０内の入出力端子２４１と、第２伝送路１２２のホストインターフェース部１４０内の入出力端子２４２と、を備える。
スレーブ装置側の伝送路切換制御部１６２は、スレーブインターフェース部１６０の切換条件検出部２６０と、第１伝送路１２１のスレーブインターフェース部１６０内の入出力端子２６１と、第２伝送路１２２のスレーブインターフェース部１６０内の入出力端子２６２と、を備える。
【００３９】
ホスト装置側の切換条件検出部２４０は、パケット生成部１４２、パケット解析部１４４、およびクロックカウンタ１４５の状態を監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部２４０は、切換条件の充足状況に応じて入出力端子２４１、２４２を、それぞれ、送信状態または受信状態に設定する。
同様に、スレーブ装置側の切換条件検出部２６０は、パケット解析部１６３、パケット生成部１６４、およびクロックカウンタ１６５の状態を監視して切換条件の充足状況を検出する。そして、切換条件の充足状況に応じて入出力端子２６１、２６２を、それぞれ、送信状態または受信状態に設定する。
図２Ａでは、第１伝送路１２１のホストインターフェース部１４０内の入出力端子２４１は送信状態（Ｔ）、スレーブインターフェース部１６０内の入出力端子２６１は受信状態（Ｒ）に設定されており、第２伝送路１２２のホストインターフェース部１４０内の入出力端子２４２は受信状態（Ｒ）、スレーブインターフェース部１６０内の入出力端子２６２は送信状態（Ｔ）に設定されている。
【００４０】
このとき、第１伝送路１２１の通信方向は、ホストインターフェース部１４０からスレーブインターフェース部１６０へむかう向き（ダウンリンク）である。そして、第２伝送路１２２の通信方向は、スレーブインターフェース部１６０からホストインターフェース部１４０へむかう向き（アップリンク）である。よって、図２Ａに示すように、通信システム１において、第１伝送路１２１および第２伝送路１２２の向きが異なり、ホストインターフェース部１４０とスレーブインターフェース部１６０の双方からデータを同時に送信することができる。すなわち、図２Ａは、通信システム１が「全二重モード」に設定されている場合を示している。
一方、図２Ｂでは、第１伝送路１２１および第２伝送路１２２のホストインターフェース部１４０内の入出力端子２４１および２４２は、共に受信状態（Ｒ）、スレーブインターフェース部１６０内の入出力端子２６１および２６２は、共に送信状態（Ｔ）に設定され、第１伝送路１２１および第２伝送路１２２の通信方向が同じ（アップリンク）になっている。また、図２Ｃでも、第１伝送路１２１および第２伝送路１２２の通信方向が同じ（ダウンリンク）になっている。
【００４１】
つまり、図２ＢおよびＣは、通信システム１が「半二重モード」に設定されている場合を示している。この場合、通信システム１では、全二重モードの２倍の帯域幅でデータを伝送することができる。
＜１．２：通信システムの動作＞
図３Ａ、Ｂ、および図１２Ａ、Ｂは、第１実施形態における第１伝送路１２１および第２伝送路１２２上を伝送されるパケットを時系列に示したタイミング図（タイミングチャート）である。
以下、図１Ａ、Ｂから図３Ａ、Ｂ、図１２Ａ、Ｂ、および図１５から図２１を用いて、本実施形態に係る通信システム１の動作を説明する。
不揮発性記憶装置１１０がホスト装置１００に装着されたとき、ホストインターフェース部１４０がアクティブになる。また、ホストインターフェース部１４０のクロック送信部１４１からクロック伝送路１２３を介してスレーブインターフェース部１６０のクロック再生成部１６１にクロックが供給され、スレーブインターフェース部１６０がアクティブになる。このとき、クロック再生成部１６１で生成されるクロックは、不揮発性記憶装置１１０全体、もしくは一部に供給される。
【００４２】
まず、パケット生成部１４２は、初期化コマンドパケットを生成する。初期化コマンドに関しては、後述する。
パケット生成部１４２及びパケット生成部１６４は、例えば、図１７に示すような各種のリクエストパケット、データパケット、レスポンスパケット、メッセージパケット等を生成する。そして、パケット解析部１４４及びパケット解析部１６３は、例えば、図１７に示すような各種のリクエストパケット、データパケット、レスポンスパケット、メッセージパケット等の解析を行う。
Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１は、図１７に示すパケット構造を有している。Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１は、制御レジスタや、状態レジスタ（ステータスレジスタ）等がマッピングされたＩ／Ｏ空間をＲｅａｄ／Ｗｒｉｔｅするための要求を伝達する。
【００４３】
図２１に、通信システム１で用いられるＩ／Ｏ空間の一例を示す。
図２１に示すＩ／Ｏ空間は、アドレス０００(ｈ)（「（ｈ）」は、１６進数による表記であることを示す。以下同様。）から、１ＦＦ(ｈ)までの各アドレスに１バイト（＝８ｂｉｔ）のレジスタもしくはメモリ等の記憶素子が割り当てられていることを示している。よって、この例では、５１２バイト分のＩ／Ｏ空間が定義されている。
なお、Ｉ／Ｏ空間は、ホスト装置１００、不揮発性記憶装置１１０のどちらにも存在し（実装され）、それぞれに固有の情報（ホスト装置１００にのみ保持される情報と、不揮発性記憶装置のみに保持される情報）と、ホスト装置１００と不揮発性記憶装置１１０の両者に共通の情報とが存在する。
図１７に、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２、データパケット１７０３、レスポンスパケット１７０４、およびメッセージパケット１７０５のパケット構造の一例を示す。これらのパケットについて、以下、説明する。
【００４４】
Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２は、メモリ空間をＲｅａｄ／Ｗｒｉｔｅするための要求を伝達する。この要求を基に、不揮発性記憶装置１１０の不揮発性メモリ部１７１からのデータ読み出し、もしくは、不揮発性メモリ部１７１へのデータ書き込みが実行される。
データパケット１７０３は、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットによる不揮発性メモリ部１７１からの読み出し要求に基づいて、不揮発性メモリ部１７１から読み出されたデータを伝送する。また、データパケット１７０３は、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットによる不揮発性メモリ部１７１への書き込み要求に基づいて、不揮発性メモリ部１７１への書き込みデータを伝送する。
レスポンスパケット１７０４は、リクエストパケット（Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット、及び、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット）に対する応答を伝送する。
【００４５】
メッセージパケット１７０５は、割込みや、Ｂｕｓｙ、Ｗａｉｔ、といった主にイベント通知に使用する。
図１７に示すように、パケット１７０１〜１７０５において、各パケットの先頭には、各パケット共通の情報を伝達するための、Ｈｅａｄｅｒ１７１１〜１７１５が、それぞれ、付加される。
図１８に、パケット１７０１〜１７０５において、各パケットの先頭に付加されるＨｅａｄｅｒ情報の構成例を示す。
図１８に示す例では、Ｈｅａｄｅｒ情報は、２バイトで構成し、バイト０のビット７“ＤＩＲ”は、パケットの伝送方向を示すビットであり、このビット”Ｄｉｒ”が“０”の場合は不揮発性記憶装置１１０からホスト装置１００にパケットが伝送されることを示し、ビット”Ｄｉｒｅ”が“１”の場合は、ホスト装置１００から不揮発性記憶装置１１０にパケットが伝送されることを示す。
【００４６】
また、図１８に示すように、バイト０のビット６〜ビット４“Ｐａｃｋｅｔ  Ｔｙｐｅ”は、パケットの種類を示すビットであり、この“Ｐａｃｋｅｔ  Ｔｙｐｅ”が０００(ｂ)（「（ｂ）」は、２進数による表記であることを示す。以下同様。）の場合は、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１であることを示し、００１(ｂ)の場合は、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２であることを示し、０１０(ｂ)の場合は、レスポンスパケット１７０４であることを示し、０１１(ｂ)の場合は、データパケット１７０３であることを示し、１１１(ｂ)の場合は、メッセージパケット１７０５であることを示す。
また、バイト０のビット３〜ビット０、および、バイト１のビット７〜ビット６の合計６ビットで構成される“Ｄｅｓｔｉｎａｔｉｏｎ  ＩＤ”には、一つのホスト装置１００に、複数の不揮発性記憶装置１１０が接続された場合、どの不揮発性記憶装置にパケットを伝送するかを示すＩＤ（パケットの届け先情報）を格納する。
【００４７】
また、バイト１のビット５〜ビット０“Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ”は、それぞれの処理毎に割り当てられるＩＤであり、ある一つのリクエストパケットに対応したレスポンスパケットやデータパケットには、同じＩＤが付与され、リクエストとその結果（レスポンスやリクエストに対応したデータ）との対応関係を管理するために用いられる。
通信システム１において、例えば、ホスト装置１００から不揮発性記憶装置１１０に対して、メモリ部のデータを読み出す要求を行うＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２が伝送される場合について説明する。
Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ”が００１０００(ｂ)であった場合、前記リクエストパケット伝送後に、不揮発性記憶装置１１０からホスト装置１００に伝送されるレスポンスパケット１７０４の“Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ”が００１０００(ｂ)の値であれば、当該レスポンスパケット１７０４は、直前に伝送されたメモリ部のデータを読み出す要求を行うＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットに対応したレスポンスパケットであると判定する。
【００４８】
一方、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２のパケット伝送後に、不揮発性記憶装置１１０からホスト装置１００に伝送されるレスポンスパケット１７０４の“Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ”が００１０００(ｂ)以外の値であった場合、当該レスポンスパケット１７０４は、直前に伝送されたメモリのデータを読み出す要求を行うＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットとは別のリクエストパケットに対応したレスポンスパケットであると判定する。
また、図１７に示すように、パケット１７０１〜１７０５の各パケットにおいて、それぞれ、１７２１〜１７２５で示す“Ａｒｇｕｍｅｎｔ”は、必要に応じてパケット長に関する情報や、その他制御系の情報等を格納する領域である。
図１８に、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２のＡｒｇｕｍｅｎｔ１７２２の一部（Ａｒｇｕｍｅｎｔ１７２２の先頭１バイト）の例を示す。
【００４９】
バイト２（Ａｒｇｕｍｅｎｔ１７２２の先頭バイト）のビット７“ＤＰＬＸ”は、通信モードの設定を行うビットである。“ＤＰＬＸ”が“０”の場合、通信モード設定が、全二重モード、すなわち、第１通信モードであることを意味する。一方、“ＤＰＬＸ”が“１”の場合、通信モード設定が、半二重モード、すなわち、第２通信モードであることを意味する。
バイト２（Ａｒｇｕｍｅｎｔ１７２２の先頭バイト）のビット６“Ｒ／Ｗ”は、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２が、Ｒｅａｄリクエスト、Ｗｒｉｔｅリクエストのどちらであるかを示すビットである。ビット６“Ｒ／Ｗ”が“０”の場合、当該パケットが、Ｒｅａｄリクエスト（用のパケット）であることを示し、ビット６“Ｒ／Ｗ”が“１”の場合、当該パケットが、Ｗｒｉｔｅリクエスト（用のパケット）であることを示す。
【００５０】
バイト２のビット３〜ビット０“ＤＩＲ  Ｃｔｒｌ”に関しては、後述する。
Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１の“Ａｄｄｒｅｓｓ”（図１７の１７３１で示す部分）は、Ｉ／Ｏ空間のどのエリアの読み出し、もしくは、Ｉ／Ｏ空間のどのエリアに書き込みを行うかを指定するアドレスを格納する領域である。
また、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１の“Ｄａｔａ”（図１７の１７４１で示す部分）は、Ｉ／Ｏ空間に書き込むデータを格納する領域である。
例えば、図２１に示すＩ／Ｏ空間の“ＤＩＲ  Ｃ”へ、値“４(ｄ)”（「（ｄ）」は、１０進数による表記であることを示す。以下同様。）を書き込む場合には、“Ａｄｄｒｅｓｓ”（図１７の１７３１の部分）に０３０(ｈ)を、“Ｄａｔａ”（図１７の１７４１の部分）に“４(ｄ)”を設定して、Ｉ／Ｏ  Ｗｒｉｔｅ  リクエストパケットを伝送する。
【００５１】
同様に、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｄｄｒｅｓｓ”（図１７の１７３２の部分）は、メモリ空間のどのエリアの読み出し、もしくは、メモリ空間のどのエリアに書き込みを行うかを指定するアドレスを格納する領域である。
データパケット１７０３の“Ｄａｔａ”（図１７の１７４２の部分）は、主に、メモリ空間のＲｅａｄ／Ｗｒｉｔｅ要求に対するデータを格納する領域であり、レスポンスパケット１７０４の“Ｄａｔａ”（図１７の１７４３の部分）は、主に、Ｉ／Ｏ空間のＲｅａｄ要求に対するデータを格納する領域である。
図１７に示すように、パケット１７０１〜１７０５において、各パケットの最後尾には必要に応じて“ＣＲＣ”（図１７の１７５１〜１７５５で示す部分）が付加され、伝送した各パケットのデータ誤り検出に用いられる。
【００５２】
本実施形態において、初期化コマンドは、図３の初期化コマンドパケット３０１、及び、図１２の初期化コマンド１２０１に示すように、説明便宜のために（簡単化するために）、一つのパケットで描き表している。しかし、実際には、前記Ｉ／Ｏ  Ｒ／Ｗ  リクエストにより、ホスト装置１００に装着された不揮発性記憶装置１１０の各種情報（例えば、対応規格のバージョンに関する情報や、製造メーカに関する情報、不揮発性記憶装置のシリアル番号、動作可能な電圧に関する情報、等々）を読み出したり、不揮発性記憶装置１１０への各種設定を行ったりするための一連のパケット通信により、通信システム１において、初期化を行うのが一般的である。
（１．２．１：初期化時の伝送切換条件に関するパラメータの設定）
こうした初期化時に、通信システム１のインターフェース部では、伝送路切換条件に関するパラメータのＩ／Ｏ空間への書き込み（設定）を、以下のように行う。
【００５３】
図２１のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”は、Ｄｉｒｅｃｔｉｏｎ  Ｃｏｎｔｒｏｌｌ設定レジスタであり、半二重モードによるデータ伝送中、一時的に全二重モードに切り替えを行うための条件（切り替え周期についての条件）として、半二重モードによる伝送データパケットの数を設定するためのレジスタである。
例えば、ホスト装置１００は、自身（ホスト装置１００）のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”を設定した上で、ホスト装置１００のパケット生成部１４２により、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケットを生成する。そして、ホスト装置１００は、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に書き込みを行う（Ｗｒｉｔｅをする）要求とその書き込み値を“４”としたパケットを不揮発性記憶装置１１０に送信する。
【００５４】
不揮発性記憶装置１１０は、ホスト装置１００からのパケットを受信して、Ｉ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”を設定する（書き込む）。これにより、不揮発性記憶装置１１０は、通信システム１で半二重モードによるデータパケット転送が開始された時点以降において、データパケット４パケット分の転送が行われる毎に、半二重モード（第２通信モード）から、一旦、全二重モード（第１通信モード）への伝送路切り替えを行う。
なお、図２１に示すＩ／Ｏ空間は論理空間であり、それぞれのアドレスに対応するレジスタもしくはメモリ等の記憶素子は、実際には、関連する各回路ブロック（ハードウェアで実現する場合）に実装されるのが一般的である。本実施形態では、ホスト装置１００のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”レジスタは、切換条件検出部２４０内に実装され、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”レジスタは、切換条件検出部２６０内に実装されている。
【００５５】
ホストインターフェース部１４０およびスレーブインターフェース部１６０がアクティブになった直後は、通信システム１は、全二重モード、すなわち図２Ａの状態になっているものとする。よって、初期化コマンドパケットは、第１伝送路１２１経由でパケット解析部１６３に伝達される（３０１、１２０１）。
パケット解析部１６３では、上記パケットが初期化コマンドであることが解析され、必要な初期化が実行される。
初期化完了後、ユーザーは、高速データＲｅａｄおよび高速データＷｒｉｔｅをホスト装置１００のユーザーインターフェース部１３１に指示することができる。
ここで、「高速データＲｅａｄ」とは、伝送路１２１および１２２を半二重モード、すなわち、第２通信モードに設定して、不揮発性記憶装置１１０の不揮発性メモリ部１７１からデータを読み出す動作のことである。
【００５６】
また、「高速データＷｒｉｔｅ」とは、伝送路１２１および１２２を半二重モード、すなわち、第２通信モードに設定して、ホスト装置１００から不揮発性記憶装置１１０内の不揮発性メモリ部１７１にデータを書き込む動作のことである。
（１．２．２：高速Ｒｅａｄの動作（時間Ｔ経過による半二重／全二重モード切換））
以下では、まず、図３Ａのタイミング図を参照しながら、通信システム１における高速Ｒｅａｄの動作（ユーザーが高速データＲｅａｄをユーザーインターフェース部１３１に指示したときの通信システム１の動作）について、説明する。
ユーザーが高速データＲｅａｄをユーザーインターフェース部１３１に指示した場合、ユーザーインターフェース部１３１は、アプリケーション部１３２に高速データＲｅａｄ指示を伝達する。
【００５７】
アプリケーション部１３２は、メモリ部１３３に読み出したデータを格納するための空き領域が存在することを確認し、その後、パケット生成部１４２に高速Ｒｅａｄコマンドパケットを生成させる。高速Ｒｅａｄコマンドには、読み出し先のアドレス、読み出しサイズが多重されているものとする。
ここで、パケット生成部１４２により生成される高速Ｒｅａｄコマンドパケットについて、具体的に説明する。
高速Ｒｅａｄコマンドパケットは、図１７のＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｄｄｒｅｓｓ”１７３２に、読み出し先のアドレスを格納し、“Ａｒｇｕｍｅｎｔ”１７２２の一部に読み出しサイズを格納することで生成される。
また、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットでＲｅａｄ要求を行うことを示すために、“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイト（図１８のバイト２）のビット６“Ｒ／Ｗ”は、“０”に設定される。
【００５８】
また、高速モードでＲｅａｄを行うことを示すために、“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイト（図１８のバイト２）のビット７“ＤＰＬＸ”は、“１”（半二重モード）に設定される（“ＤＰＬＸ”を、“１”（半二重モード）に設定することで、通信システム１において、半二重モード（半二重モード）、すなわち、第２通信モードで通信を行うことを指示することができる）。
パケット生成部１４２により生成された高速Ｒｅａｄコマンドパケットは、第１伝送路１２１経由で、パケット解析部１６３に伝達される（３０２）。
パケット解析部１６３では、上記パケットが高速Ｒｅａｄコマンドであることが解析される。
伝送路切換制御部１４３の切換条件検出部２４０は、パケット生成部１４２が高速Ｒｅａｄコマンドパケットを送信したことを検出し、第１伝送路１２１の入出力端子２４１を受信状態に設定する。また、伝送路切換制御部１６２の切換条件検出部２６０は、パケット解析部１６３が高速Ｒｅａｄコマンドパケットを受信したことを検出し、第１伝送路１２１の入出力端子２６１を送信状態に設定する。これにより、第１伝送路１２１はアップリンクに設定され（３０３）、通信システム１は、図２Ｂに示す半二重モードとなる。
【００５９】
その後、スレーブインターフェース部１６０は、不揮発性メモリ部読み書き制御部１７０を介し、高速Ｒｅａｄコマンドパケットに多重されたアドレスに対応する不揮発性メモリ部１７１上の領域から、同じくコマンドに多重された読み出しサイズだけデータを順次取得し、パケット生成部１６４に供給する。
パケット生成部１６４では、パケットの種別等を示したヘッダと、読み出したデータを適当なサイズに分割して生成されるボディからデータパケットが生成される。
パケット生成部１６４は、生成したデータパケットを第１伝送路１２１および第２伝送路１２２に振り分けながら、伝送路切換制御部１６２を介してホスト装置１００に送信する。
本実施形態では、１番目のデータパケットＤＡＴＡ（１）を第１伝送路１２１に、２番目のデータパケットＤＡＴＡ（２）を第２伝送路１２２に振り分けて送信する（３０４）。
【００６０】
ホスト装置１００に送信された上記ＤＡＴＡ（１）、ＤＡＴＡ（２）は、伝送路切換制御部１４３を介して、パケット解析部１４４に蓄積される。
パケット解析部１４４では、これらのパケットがデータパケットであると解析され、ヘッダを除いたボディ、すなわち、データ本体がメモリ部１３３に格納される。
以降、３番目のデータパケットＤＡＴＡ（３）および４番目のデータパケットＤＡＴＡ（４）についても、同様に、ホスト装置１００に送信される（３０５）。
次に、伝送路切換制御部１６２の切換条件検出部２６０は、初期化時にＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”が設定されているので、パケット生成部１６４が４個のデータパケットを送信したことを検出し、第１伝送路１２１の入出力端子２６１を受信状態に設定する。
【００６１】
また、伝送路切換制御部１４３の切換条件検出部２４０は、初期化時にＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”が設定されているので、パケット解析部１４４が４個のデータパケットを受信したことを検出し、第１伝送路１２１の入出力端子２４１を送信状態に設定する。これにより、第１伝送路１２１は、ダウンリンクに設定され（３０６）、通信システム１は、図２Ａに示す全二重モードとなる。
このように、通信システム１では、半二重モードから全二重モードに切り換える条件は、Ｎ個（Ｎは任意の整数）のデータパケットの送受信完了時であるとして、初期化コマンドのパラメータで予めホスト装置１００から不揮発性記憶装置１１０に対し通知しておく。
具体的には、ホスト装置１００は、自身（ホスト装置１００）のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“Ｎ”を設定した上で、ホスト装置１００のパケット生成部１４２により、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケットを生成する。そして、ホスト装置１００は、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に書き込みを行う（Ｗｒｉｔｅをする）要求とその書き込み値を“Ｎ”としたパケットを不揮発性記憶装置１１０に送信する。
【００６２】
不揮発性記憶装置１１０は、ホスト装置１００からのパケットを受信して、Ｉ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“Ｎ”を設定する（書き込む）。
図３ＡおよびＢでは、初期化コマンドのパラメータをＮ＝４としたときの、通信システム１におけるタイミング図の一例を示している。
また、図２０（ｂ）では、Ｎ＝８としたときの、通信システム１におけるタイミング図の一例を示している。
通信システム１において、第１伝送路１２１がダウンリンクに設定されたとき、クロックカウンタ１６５は、クロック再生成部１６１から供給されるクロックを元にクロック数の計上を開始する。同様に、クロックカウンタ１４５は、クロック送信部１４１から供給されるクロックを元にクロック数の計上を開始する。
【００６３】
ホストインターフェース部１４０内の切換条件検出部２４０は、第１伝送路１２１がダウンリンクに切り換わった時点から所定の時間Ｔが経過したことを、クロックカウンタ１４５を監視することで検出し、第１伝送路１２１の入出力端子２４１を再び受信状態に設定する。このとき、切換条件検出部２４０は、クロックカウンタ１４５に対してクロック数をゼロクリアさせる。
同様に、スレーブインターフェース部１６０内の切換条件検出部２６０は、第１伝送路１２１がダウンリンクに切り換わった時点から所定の時間Ｔが経過したことを、クロックカウンタ１６５を監視することで検出し、第１伝送路１２１の入出力端子２６１を再び送信状態に設定する。このとき、切換条件検出部２６０は、クロックカウンタ１６５に対してクロック数をゼロクリアさせる。
【００６４】
これにより、第１伝送路１２１は、再びアップリンクに設定され（３０７）、通信システム１は、図２Ｂに示す半二重モードに戻る。ここで、全二重モードから半二重モードへ切り換える条件が、全二重モードに移行した後、所定の時間Ｔが経過した時であることは、初期化コマンドのパラメータで、予めホスト装置１００から不揮発性記憶装置１１０に対し通知しておく。
以後同様に、通信システム１では、４個のデータパケットの送受信を完了する度に、第１伝送路１２１は、ダウンリンクに設定され（３０８）、所定の時間Ｔが経過すると、半二重モードに戻る（３０９）という制御が繰り返される。
ここで、第１伝送路１２１がダウンリンクに設定されている間（３０６〜３０７、３０８〜３０９）に、ホスト装置１００が第１伝送路１２１上にコマンドやメッセージ等を送信することで、不揮発性記憶装置１１０に対して割り込み要求を行うことが可能である。
【００６５】
（１．２．３：高速Ｒｅａｄの動作（Ｗａｉｔ通知・解除による半二重／全二重モード切換））
次に、通信システム１において、Ｗａｉｔ指示（Ｗａｉｔ通知・解除）により半二重／全二重モードを切り換える場合の高速Ｒｅａｄ動作について、説明する。
図３Ｂは、半二重モードによる通信中に、割り込み要求として、ホスト装置１００が不揮発性記憶装置１１０にＷａｉｔ指示（Ｗａｉｔ通知・解除）を送る場合のシーケンスを示している。
初期化コマンドパケット発行から第１伝送路１２１がアップリンクに設定される（３０１〜３０３）までは、図３Ａの場合と同様であるので、詳細な説明は省略する。
例えば、半二重モード期間（３０４〜３０５）において、メモリ部１３３の空き状態を監視しているアプリケーション部１３２が、高速Ｒｅａｄコマンドによるスレーブ装置（不揮発性記憶装置１１０）からのデータ読み出し動作を継続すると、データを格納するためのメモリ部１３３上の空き領域が不足すると判断したとする。この場合、アプリケーション部１３２は、パケット生成部１４２にＷａｉｔ通知パケットを生成させ、第１伝送路１２１がダウンリンクに設定されている間に不揮発性記憶装置１１０に送信させる（３１０）。
【００６６】
不揮発性記憶装置１１０に送信されたＷａｉｔ通知パケットは、他のコマンドと同様にパケット解析部１６３で解析される。このとき、実行中の高速Ｒｅａｄコマンドは、一時停止され、全二重モードが保持される。この場合、通信システム１は、図３Ａの場合とは異なり、所定の時間Ｔが経過しても半二重モードへは切り換わらない。そして、切換条件検出部２４０および２６０は、それぞれ、クロックカウンタ１４５および１６５に対して、クロック数をゼロクリアさせる。
その後、メモリ部１３３に十分な空き領域ができると、アプリケーション部１３２がそれを検知し、パケット生成部１４２にＷａｉｔ解除パケットを生成させ、不揮発性記憶装置１１０に送信させる（３１１）。
このとき、切換条件検出部２４０は、パケット生成部１４２がＷａｉｔ解除パケットを生成したことを検出し、第１伝送路１２１の入出力端子２４１を受信状態に設定する。
【００６７】
また、切換条件検出部２６０は、パケット解析部１６３がＷａｉｔ解除パケットを解析したことを検出し、第１伝送路１２１の入出力端子２６１を送信状態に設定する。
これにより、第１伝送路１２１がアップリンクに設定され、通信システム１は、半二重モードとなり、通信システム１において、高速Ｒｅａｄコマンドの実行が再開される。
このように、通信システム１では、ホスト装置１００から不揮発性記憶装置１１０に対して、Ｗａｉｔ通知パケットが送信された時点から、Ｗａｉｔ解除パケットが送信される時点までの間、確実に全二重モードが維持され、かつ、Ｗａｉｔに関するステータスを確かめるための余計なパケットを送受信させる必要がない（例えば、ポーリングにより、所定の周期で、ホスト装置１００および／または不揮発性記憶装置１１０の状態を確かめる必要がない）。
【００６８】
したがって、通信システム１では、余計なパケットの送受信を発生させることがなく、また、適切な割込処理を実現させつつ、高速データ転送を行うことができる。
なお、ホスト装置１００から不揮発性記憶装置１１０に対して送信されるＷａｉｔ通知パケットに対して、当該Ｗａｉｔ通知パケットに対するレスポンスパケットを、不揮発性記憶装置１１０からホスト装置１００に送信するようにしてもよい。また、ホスト装置１００から不揮発性記憶装置１１０に対して送信されるＷａｉｔ解除パケットに対して、当該Ｗａｉｔ解除パケットに対するレスポンスパケットを不揮発性記憶装置１１０からホスト装置１００に送信するようにしてもよい。この場合、Ｗａｉｔ解除パケットに対するレスポンスパケットが不揮発性記憶装置１１０からホスト装置１００に送信された後、通信モードを切り換えることが好ましい。
【００６９】
以上が、ユーザーが高速データＲｅａｄを指示したときの通信システム１の動作である。
（１．２．４：高速Ｗｒｉｔｅの動作（時間Ｔ経過による半二重／全二重モード切換））
次に、通信システム１における高速Ｗｒｉｔｅの動作（時間Ｔ経過により半二重／全二重モードを切り替える場合の動作）について、説明する。
図１２Ａは、通信システム１における高速Ｗｒｉｔｅの動作（時間Ｔ経過により半二重／全二重モードを切り替える場合の動作）を説明するためのタイミング図（タイミングチャート）である。
ユーザーが高速データＷｒｉｔｅをユーザーインターフェース部１３１に指示した場合、ユーザーインターフェース部１３１は、アプリケーション部１３２に高速データＷｒｉｔｅ指示を伝達する。
【００７０】
アプリケーション部１３２は、パケット生成部１４２に高速Ｗｒｉｔｅコマンドパケットを生成させる。高速Ｗｒｉｔｅコマンドには、書き込み先のアドレス、書き込みサイズが多重されているものとする。
ここで、パケット生成部１４２により生成される高速Ｗｒｉｔｅコマンドパケットについて、具体的に説明する。
高速Ｗｒｉｔｅコマンドパケットは、図１７のＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｄｄｒｅｓｓ”１７３２に、読み出し先のアドレスを格納し、“Ａｒｇｕｍｅｎｔ”１７２２の一部に読み出しサイズを格納することで生成される。
また、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットでＷｒｉｔｅ要求を行うことを示すために、“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイト（図１８のバイト２）のビット６“Ｒ／Ｗ”は、“１”に設定される。
【００７１】
また、高速モードでＷｒｉｔｅを行うことを示すために、“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイト（図１８のバイト２）のビット７“ＤＰＬＸ”は、“１”（半二重モード）に設定される（“ＤＰＬＸ”を、“１”（半二重モード）に設定することで、通信システム１において、半二重モード（半二重モード）、すなわち、第２通信モードで通信を行うことを指示することができる）。
パケット生成部１４２により生成された高速Ｗｒｉｔｅコマンドパケットは、第１伝送路１２１経由でパケット解析部１６３に供給される（１２０２）。
パケット解析部１６３では、上記パケットが高速Ｗｒｉｔｅコマンドであることが解析され、それが不揮発性メモリ部読み書き制御部１７０に通知される。
不揮発性メモリ部読み書き制御部１７０は、不揮発性メモリ部１７１にデータを格納するための空き領域が存在することを確認する。不揮発性メモリ部読み書き制御部１７０は、不揮発性メモリ部１７１に空き領域が存在することを確認した場合、パケット生成部１４２に高速Ｗｒｉｔｅコマンドに対するレスポンスパケットを生成させる。このレスポンスパケットは、第２伝送路１２２経由でパケット解析部１４４に供給される（１２０３）。
【００７２】
そして、パケット解析部１４４では、不揮発性記憶装置１１０から送信されてきたパケットが解析され、当該パケットが高速Ｗｒｉｔｅコマンドに対するレスポンスパケットであることが確認される。
伝送路切換制御部１６２の切換条件検出部２６０は、パケット解析部１６３が上記レスポンスパケットを送信したことを検出し、第２伝送路１２２の入出力端子２６２を受信状態に設定する。
伝送路切換制御部１４３の切換条件検出部２４０は、パケット解析部１４４が上記レスポンスパケットを受信したことを検出し、第２伝送路１２２の入出力端子２４２を送信状態に設定する。
これにより、第２伝送路１２２は、ダウンリンクに設定され（１２０４）、通信システム１は、図２Ｃに示す半二重モードとなる。
【００７３】
その後、ホストインターフェース部１４０は、メモリ部１３３を介し、不揮発性メモリ部１７１に書き込むデータをパケット生成部１４２に供給し、パケット生成部１４２によりデータパケットが生成される。本実施形態においては、高速Ｗｒｉｔｅ時の第１伝送路１２１、第２伝送路１２２へのパケットの振り分け方は、高速Ｒｅａｄ時と同様とする（１２０５、１２０６）。
不揮発性記憶装置１１０に送信されたデータパケットは、伝送路切換制御部１６２を介してパケット解析部１６３に蓄積される。パケット解析部１６３により、これらのパケットは、データパケットであると解析されて、データ本体が不揮発性メモリ部読み書き制御部１７０を介して不揮発性メモリ部１７１に格納される。
伝送路切換制御部１４３の切換条件検出部２４０は、初期化時にＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”が設定されているので、パケット生成部１４２が４個のデータパケットを送信したことを検出し、第２伝送路１２２の入出力端子２４２を受信状態に設定する。
【００７４】
また、伝送路切換制御部１６２の切換条件検出部２６０は、初期化時にＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”が設定されているので、パケット解析部１６３が４個のデータパケットを受信したことを検出し、第２伝送路１２２の入出力端子２６２を送信状態に設定する。
これにより、第２伝送路１２２はアップリンクに設定され（１２０７）、通信システム１は、図２Ａに示す全二重モードとなる。
通信システム１において、半二重モードから全二重モードに切り換える条件の設定方法は、高速Ｒｅａｄ時と同様である。
図１２Ａ、Ｂにおいても、初期化コマンドのパラメータをＮ＝４としたときの、通信システム１におけるタイミング図の一例を示している。
【００７５】
また、図１９の（ｂ）では、Ｎ＝８としたときの、通信システム１におけるタイミング図の一例を示している。
以後、通信システム１では、高速Ｒｅａｄ時と同様に、第２伝送路１２２がアップリンクに設定されてから所定の時間Ｔ経過後、切換条件検出部２６０は、第２伝送路１２２の入出力端子２６２を再び受信状態に設定する。そして、切換条件検出部２４０は、第２伝送路１２２の入出力端子２４２を再び送信状態に設定する。このとき、切換条件検出部２４０および２６０は、それぞれ、クロックカウンタ１４５および１６５に対してクロック数をゼロクリアさせる。
これにより、第２伝送路１２２は、ダウンリンクに再設定され（１２０８）、通信システム１は、図２Ｂに示す半二重モードに戻る。
【００７６】
以後同様に、通信システム１では、４個のデータパケットの送受信を完了する毎に、第２伝送路１２２は、アップリンクに設定され（１２０９）、所定の時間Ｔが経過すると、半二重モードに戻る（１２１０）という制御が繰り返される。
ここで、第２伝送路１２２がアップリンクに設定されている間（１２０７〜１２０８、１２０９〜１２１０）に、不揮発性記憶装置１１０が第２伝送路１２２上にコマンドやメッセージ等を送信することで、ホスト装置１００に対して割り込み通知を伝送できる。
（１．２．５：高速Ｗｒｉｔｅの動作（Ｂｕｓｙ通知・解除による半二重／全二重モード切換））
次に、通信システム１において、Ｂｕｓｙ通知・解除により半二重／全二重モードを切り換える場合の高速Ｗｒｉｔｅ動作について、説明する。
【００７７】
図１２Ｂは、半二重モードによる通信中に、割り込み通知として、不揮発性記憶装置１１０がホスト装置１００にＢｕｓｙ通知・解除を伝送する場合のシーケンスを示している。
半二重モードにおいて、不揮発性メモリ部読み書き制御部１７０による不揮発性メモリ部１７１への書き込みが終了するまでデータの受信を一時停止させたい場合や、図示しないデータ受信用メモリの空き容量が不足した場合、不揮発性メモリ部読み書き制御部１７０は、パケット生成部１６４にＢｕｓｙ通知パケットを生成させる。そして、不揮発性メモリ部読み書き制御部１７０は、第２伝送路１２２がアップリンクに設定されている間に、Ｂｕｓｙ通知パケットがホスト装置１００に送信されるように制御する（１２１１）。
ホスト装置１００に送信されたＢｕｓｙ通知パケットは、パケット解析部１４４で解析される。このとき、実行中の高速Ｗｒｉｔｅコマンドは、一時停止され、通信システム１において、全二重モードの状態が保持される。この場合、図１２Ａの場合と異なり、通信システム１は、所定の時間Ｔが経過しても半二重モードへは切り換わらず、切換条件検出部２４０および２６０は、それぞれ、クロックカウンタ１４５および１６５に対して、クロック数をゼロクリアさせる。
【００７８】
その後、不揮発性メモリ部読み書き制御部１７０がデータ受信可能と判断すると、不揮発性メモリ部読み書き制御部１７０は、パケット生成部１６４にＢｕｓｙ解除パケットを生成させ、ホスト装置１００に送信させる（１２１２）。
このとき、切換条件検出部２６０は、パケット生成部１６４がＢｕｓｙ解除パケットを生成したことを検出し、第２伝送路１２２の入出力端子２６２を再び受信状態に設定する。
また、切換条件検出部２４０は、パケット解析部１４４がＢｕｓｙ解除パケットを解析したことを検出し、第２伝送路１２２の入出力端子２４２を再び送信状態に設定する。
これにより、第２伝送路１２２がダウンリンクに設定され、通信システム１は、半二重モードとなり、高速Ｗｒｉｔｅコマンドの実行が再開される。
【００７９】
このように、通信システム１では、不揮発性記憶装置１１０からホスト装置１００に対して、Ｂｕｓｙ通知パケットが送信された時点から、Ｂｕｓｙ解除パケットが送信される時点までの間、確実に全二重モードが維持され、かつ、Ｂｕｓｙに関するステータスを確かめるための余計なパケットを送受信させる必要がない（例えば、ポーリングにより、所定の周期で、ホスト装置１００および／または不揮発性記憶装置１１０の状態を確かめる必要がない）。
また、上記処理は、コマンドレベルでの処理、すなわち、ホストインターフェース部１４０およびメモリ部１３３による処理で実現させることができ、アプリケーション部１３２での処理が不要であるため、高速に処理を行うことができる。
したがって、通信システム１では、余計なパケットの送受信を発生させることがなく、また、適切な割込処理を実現させつつ、高速データ転送を行うことができる。
【００８０】
なお、不揮発性記憶装置１１０からホスト装置１００に対して送信されるＢｕｓｙ通知パケットに対して、当該Ｂｕｓｙ通知パケットに対するレスポンスパケットをホスト装置１００から不揮発性記憶装置１１０に送信するようにしてもよい。また、不揮発性記憶装置１１０からホスト装置１００に対して送信されるＢｕｓｙ解除パケットに対して、当該Ｂｕｓｙ解除パケットに対するレスポンスパケットをホスト装置１００から不揮発性記憶装置１１０に送信するようにしてもよい。この場合、Ｂｕｓｙ解除パケットに対するレスポンスパケットがホスト装置１００から不揮発性記憶装置１１０に送信された後、通信モードを切り換えることが好ましい。
以上が、ユーザーが高速データＷｒｉｔｅを指示したときの通信システム１の動作である。
【００８１】
以上説明したように、本実施形態の通信システム１では、２チャンネルの伝送路を同時に使用する半二重モードでデータを高速に伝送するとき、所定数のデータパケットの通信が完了した際に、一時的に１チャンネルの伝送路の通信方向を切り換える。これにより、通信システム１では、半二重モードでコマンドを実行中であっても、ホスト装置１００と不揮発性記憶装置１１０との間で、コマンドやメッセージ等を伝達することができる。この結果、通信システム１では、半二重モードでのデータ読み出し、または書き込みの最中であっても、ＷａｉｔやＢｕｓｙ等の割り込み要求に迅速に対応することが可能となる。
したがって、本実施形態の通信システム１では、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。また、通信システム１では、「Ｗａｉｔ」や「Ｂｕｓｙ」等の割り込み通知を伝送するための外部伝送路を１チャンネル追加する必要もないので、インターフェース装置の回路規模が増大し、コストアップを招くこともない。
【００８２】
一方、通信システム１において、それほど高速なデータ読み出しを必要としない場合は、通信システム１を全二重モードのままにしておき、データを読み出す、あるいは書き込むコマンドである通常Ｒｅａｄコマンドまたは通常Ｗｒｉｔｅコマンドを発行すればよい。
通常Ｒｅａｄ時に、ホスト装置１００がＷａｉｔ指示を出す場合は、初期化直後にダウンリンクに設定されている第１伝送路１２１上に任意のタイミングでＷａｉｔ通知パケットを送信し、さらに、Ｗａｉｔを解除するときも第１伝送路１２１上に任意のタイミングでＷａｉｔ解除パケットを送信すればよい。
通常Ｗｒｉｔｅ時も同様に、初期化直後にアップリンクに設定されている第２伝送路１２２上に任意のタイミングでＢｕｓｙ通知およびＢｕｓｙ解除パケットを送信すればよい。
【００８３】
なお、本実施形態では、通信システム１において、全二重モード時にデータパケットを送らないものとして説明しているが、全二重モード期間であっても第１伝送路１２１および第２伝送路１２２を用いてデータパケットを送受信することが可能である。
さらに、通信システム１において、モード切り換えのトリガとなる送受信データパケット数Ｎおよび所定の時間Ｔは、ホスト装置１００および不揮発性記憶装置１１０におけるバッファサイズ、処理性能などの条件を元に、適宜取り決めればよい。
≪パケット数Ｎの決定方法≫
例えば、パケット数Ｎの決定方法は、以下のようにすればよい。
ホスト装置１００と、不揮発性記憶装置１１０と、を備える通信システム１において、ホスト装置１のバッファサイズをＢｕｆ１［バイト］とし、不揮発性記憶装置１１０（スレーブ装置）のバッファサイズをＢｕｆ２［バイト］とし、ホスト装置１００と不揮発性記憶装置１１０（スレーブ装置）間で通信されるパケットのパケットサイズをＡ［バイト］としたとき、
（１）Ｂｕｆ１＞Ｂｕｆ２である場合、
Ｎ＝Ｉｎｔ（Ｂｕｆ２／Ａ）
（２）Ｂｕｆ１≦Ｂｕｆ２である場合、
Ｎ＝Ｉｎｔ（Ｂｕｆ１／Ａ）
により、パケット数Ｎを決定すればよい。なお、Ｉｎｔ（Ｘ）は、Ｘを超えない最大の整数値を表すものとする（Ｉｎｔ（Ｘ）は、ガウス記号による演算に相当する関数である）。
【００８４】
また、パケット数Ｎの決定方法は、ホスト装置１００および不揮発性記憶装置１１０（スレーブ装置）の処理性能に基づいてパケット数Ｎを決定する方法であってもよい。つまり、このパケット数Ｎを決定する方法では、パケット数Ｎを、バッファサイズの小さい装置を基準にして決定するので、通信システム１の通信性能を最大限に引き出すことが可能となる。
また、パケット数Ｎの決定方法は、ホスト装置１００および不揮発性記憶装置１１０（スレーブ装置）の処理速度性能に基づいてパケット数Ｎを決定する方法であってもよい。例えば、ホスト装置１００の処理速度、動作クロックがそれぞれＰ１、Ｃ１であり、不揮発性記憶装置１１０（スレーブ装置）の処理速度、動作クロックがそれぞれＰ２、Ｃ２であり、通信パケットのパケットサイズがＡである場合、Ｐ１、Ｐ２、Ｃ１、Ｃ２、およびＡの全部若しくは一部に基づいて、パケット数Ｎを決定するようにしてもよい。なお処理速度性能は、ホスト装置１００または不揮発性記憶装置１１０（スレーブ装置）に実装されているプロセッサ処理能力、同じくホスト装置１００または不揮発性記憶装置１１０（スレーブ装置）に実装されているＲＡＭやフラッシュメモリ等記録媒体への読み書き速度、外部との通信を行う外部通信路の伝送速度の全部若しくは一部から決まる。
【００８５】
また、上記では、モード切り換えのトリガとなる送受信データパケット数Ｎは、初期化コマンドのパラメータで予めホスト装置１００から不揮発性記憶装置１１０に対し通知する方法について説明した。すなわち、ホスト装置１００が、自身（ホスト装置１００）のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“Ｎ”を設定した上で、ホスト装置１００のパケット生成部１４２により、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケットを生成し、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に書き込みを行う（Ｗｒｉｔｅをする）要求とその書き込み値を“Ｎ”としたパケットを伝送し、不揮発性記憶装置１１０がこれを受信して、Ｉ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“Ｎ”を設定する（書き込む）方法、について説明した。しかし、この方法に限定されることはなく、通信システム１において、初期化コマンドではなく、高速Ｒｅａｄコマンド、及び／又は高速Ｗｒｉｔｅコマンドに、モード切り換えのトリガとなる送受信データパケット数Ｎを格納するフィールドを定義して、高速Ｒｅａｄコマンド、及び／又は高速Ｗｒｉｔｅコマンドに含めて伝送するようにしてもよい。
【００８６】
この方法は、例えば、図１７のＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイトに、図１８に示すビット３〜ビット０の“ＤＩＲ  Ｃｔｒｌ”フィールドを定義して、前記“ＤＩＲ  Ｃｔｒｌ”に、モード切り換えのトリガとなる送受信データパケット数Ｎを格納することで、実現することができる。
また、通信システム１において、ホスト装置１００のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”の値を、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｒｇｕｍｅｎｔ”に定義された前記“ＤＩＲ  Ｃｔｒｌ”に設定して、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２を伝送し、このＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２を受信した不揮発性記憶装置１１０が、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｒｇｕｍｅｎｔ”に格納された前記“ＤＩＲ  Ｃｔｒｌ”の値を、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に書き込むようにしてもよい。
【００８７】
これにより、通信システム１において、モード切り換えのトリガとなる送受信データパケット数Ｎを、初期化コマンドのパラメータで予めホスト装置１００から不揮発性記憶装置１１０に対し通知したときと、同様の動作が可能になる。
この方法によれば、Ｎ＝４の場合の高速Ｗｒｉｔｅは、図１５の（ａ）（Ｎ＝８の場合は図１５（ｂ））のシーケンスで実行することが可能になり、モード切り換えのトリガとなる送受信データパケット数Ｎを、初期化コマンドのパラメータで予め設定する図１９（ａ）（Ｎ＝８の場合は図１９（ｂ））では必要となる初期化コマンド１９０１の一部が不要になる。
同様に、Ｎ＝４の場合の高速Ｒｅａｄは、図１６の（ａ）（Ｎ＝８の場合は図１６（ｂ））のシーケンスで実行することが可能になり、モード切り換えのトリガとなる送受信データパケット数Ｎを、初期化コマンドのパラメータで予め設定する図２０（ａ）（Ｎ＝８の場合は図２０（ｂ））では必要となる初期化コマンド２００１の一部が不要になる。
【００８８】
≪変形例≫
また、本実施形態では、スレーブ装置として不揮発性メモリを有する不揮発性記憶装置を用いる通信システム１について説明したが、これに限定されることはない。例えば、図４に示すように、スレーブ装置を、スレーブインターフェース部１６０と、ネットワークインターフェース部４７０と、を備えるネットワークインターフェース装置４１０とすることで通信システム１Ａを構成するようにしてもよい。この場合においても、上記通信システム１と同様の効果を得ることが可能である。
通信システム１Ａにおいて、ネットワークインターフェース装置４１０は、リモート装置４８０とネットワーク通信路４８１を介して接続されている。また、ネットワークインターフェース部４７０は、ネットワーク通信路４８１を制御する機能と、スレーブインターフェース部１６０からネットワークを制御する機能とを有する。
【００８９】
図４に示すように、通信システム１Ａにおいて、ホスト装置１００が高速Ｒｅａｄコマンドを発行したとき、リモート装置４８０内の図示しないメモリ部から、ネットワーク通信路４８１、ネットワークインターフェース部４７０を介してパケット生成部１６４にデータが格納され、パケット化された上で半二重モードにてホスト装置１００に送信される。
また、通信システム１Ａにおいて、高速Ｗｒｉｔｅ時は、半二重モードにて、ホスト装置１００からデータパケットが送信され、パケット解析部１６３で取り出されたデータ本体は、ネットワークインターフェース部４７０、ネットワーク通信路４８１を介してリモート装置４８０内のメモリ部に格納される。
なお、ネットワーク通信路４８１は、有線ネットワーク、無線ネットワークいずれでも実現可能である。
【００９０】
以上により、通信システム１Ａにおいても、通信システム１と同様に、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
［第２実施形態］
＜２．１：通信システムの構成＞
図５は、本発明の第２実施形態に係る通信システム２の構成を示したブロック図である。
図５に示すように、通信システム２は、ホスト装置５００と、スレーブ装置としての不揮発性記憶装置５１０と、を備える。そして、ホスト装置５００と不揮発性記憶装置５１０とは、第１伝送路１２１、第２伝送路１２２、クロック伝送路１２３により接続されている。
【００９１】
ホスト装置５００は、少なくともユーザーインターフェース部１３１、アプリケーション部１３２、メモリ部１３３、およびホストインターフェース部５４０を備える。
ホストインターフェース部５４０は、クロック送信部１４１、パケット生成部１４２、伝送路切換制御部５４３、パケット解析部１４４を含む。ホストインターフェース部５４０は、クロックカウンタを有していない点が、第１実施形態に係るホストインターフェース部１４０とは異なる。
不揮発性記憶装置５１０は、少なくともスレーブインターフェース部５６０、不揮発性メモリ部読み書き制御部１７０および不揮発性メモリ部１７１を備える。
スレーブインターフェース部５６０は、クロック再生成部１６１、伝送路切換制御部５６２、パケット解析部１６３、パケット生成部１６４、クロックカウンタ１６５を備える。
【００９２】
なお、本実施形態において、第１実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図６Ａ〜Ｃは、ホストインターフェース部５４０およびスレーブインターフェース部５６０の構成図であり、特に、ホスト装置側の伝送路切換制御部５４３およびスレーブ装置側の伝送路切換制御部５６２の構成を詳細に示した図である。
図６Ａ〜Ｃに示すように、ホスト装置側の伝送路切換制御部５４３は、ホストインターフェース部５４０の切換条件検出部６４０と、第１伝送路１２１のホストインターフェース部５４０内の入出力端子６４１と、第２伝送路１２２のホストインターフェース部５４０内の入出力端子６４２と、を備える。
スレーブ装置側の伝送路切換制御部５６２は、スレーブインターフェース部５６０の切換条件検出部６６０と、第１伝送路１２１のスレーブインターフェース部５６０内の入出力端子６６１と、第２伝送路１２２のスレーブインターフェース部５６０内の入出力端子６６２と、を備える。
【００９３】
ホスト装置側の切換条件検出部６４０は、パケット生成部１４２、およびパケット解析部１４４の状態を監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部６４０は、切換条件の充足状況に応じて入出力端子６４１、６４２を、それぞれ、送信状態または受信状態に設定する。
同様に、切換条件検出部６６０は、パケット解析部１６３、パケット生成部１６４、クロックカウンタ１６５の状態を監視して切換条件の充足状況を検出する。そして、切換条件の充足状況に応じて入出力端子６６１、６６２を送信状態または受信状態に設定する。
＜２．２：通信システムの動作＞
図７Ａ、Ｂおよび図１３Ａ、Ｂは、第２実施形態における第１伝送路１２１および第２伝送路１２２上を伝送されるパケットを時系列に示したタイミング図（タイミングチャート）である。
【００９４】
以下、図５から図７Ａ、Ｂ、および図１３Ａ、Ｂを用いて、本実施形態に係る通信システム２の動作を、第１実施形態との相違点を中心に説明する。
（２．２．１：高速Ｒｅａｄの動作）
まず、図７Ａ、Ｂのタイミング図を参照しながら、ユーザーが高速データＲｅａｄをユーザーインターフェース部１３１に指示したときの動作を説明する。
第１実施形態と同様に、不揮発性記憶装置５１０がホスト装置５００に装着されたとき、通信システム２は、図６Ａに示す全二重モードとなる。通信システム２において、初期化コマンドパケットが送信（７０１）された後、高速Ｒｅａｄコマンドパケットが不揮発性記憶装置５１０に送信される（７０２）と、第１伝送路１２１がアップリンクに設定される（７０３）。この結果、通信システム２は、図６Ｂに示す半二重モードとなる。
【００９５】
伝送路切換制御部５６２の切換条件検出部６６０は、パケット生成部１６４が４個のデータパケットを送信したことを検出し、第１伝送路１２１の入出力端子６６１を受信状態に設定する。
また、伝送路切換制御部５４３の切換条件検出部６４０は、パケット解析部１４４が４個のデータパケットを受信したことを検出し、第１伝送路１２１の入出力端子６４１を送信状態に設定する。
これにより、第１伝送路１２１はダウンリンクに設定され（７０４）、通信システム２は、図６Ａに示す全二重モードとなる。
第１伝送路１２１がダウンリンクに設定されたとき、クロックカウンタ１６５は、クロック再生成部１６１から供給されるクロックを元にクロック数の計上を開始する。
【００９６】
スレーブインターフェース部５６０内の切換条件検出部６６０は、第１伝送路１２１がダウンリンクに切り換わった時点から所定の時間Ｔが経過したことを、クロックカウンタ１６５を監視することで検出する。このとき、切換条件検出部６６０は、パケット生成部１６４に対し切換通知パケットを生成するよう指示する。
生成された切換通知パケットは、アップリンクに設定されている第２伝送路１２２を介してホスト装置５００に送信される（７０５）。
伝送路切換制御部５６２の切換条件検出部６６０は、パケット生成部１６４が切換通知パケットを送信したことを検出し、第１伝送路１２１の入出力端子６６１を送信状態に設定する。
また、伝送路切換制御部５４３の切換条件検出部６４０は、パケット解析部１４４が切換通知パケットを受信したことを検出し、第１伝送路１２１の入出力端子６４１を受信状態に設定する。
【００９７】
これにより、第１伝送路１２１は、アップリンクに設定される（７０６）。
以上のように、切換通知パケットを用いることで、通信システム２では、ホストインターフェース部５４０のクロックカウンタを省略することができるとともに、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
また、図７Ｂに示すように、第１実施形態と同様に、通信システム２では、図６Ａに示す全二重モードのとき、ホスト装置５００は、不揮発性記憶装置５１０に対してＷａｉｔ等の割り込み要求を行う（７０７）ことができる。
（２．２．２：高速Ｗｒｉｔｅの動作）
次に、図１３Ａ、Ｂのタイミング図を参照しながら、ユーザーが高速データＷｒｉｔｅを指示したときの通信システム２の動作を、高速データＲｅａｄとの相違点を中心に説明する。
【００９８】
通信システム２において、初期化コマンドパケットが送信（１３０１）された後、高速Ｗｒｉｔｅコマンドパケットが不揮発性記憶装置５１０に送信され（１３０２）、不揮発性記憶装置５１０からホスト装置５００に対して高速Ｗｒｉｔｅコマンドに対するレスポンスパケットが返送される（１３０３）と、第２伝送路１２２がダウンリンクに設定される（１３０４）。この結果、通信システム２は、図６Ｃに示す半二重モードとなる。
伝送路切換制御部５４３の切換条件検出部６４０は、パケット生成部１４２が４個のデータパケットを送信したことを検出し、第２伝送路１２２の入出力端子６４２を受信状態に設定する。
また、伝送路切換制御部５６２の切換条件検出部６６０は、パケット解析部１６３が４個のデータパケットを受信したことを検出し、第２伝送路１２２の入出力端子６６２を送信状態に設定する。
【００９９】
これにより、第２伝送路１２２は、アップリンクに設定され（１３０５）、通信システム２は、図６Ａに示す全二重モードとなる。
通信システム２において、第２伝送路１２２がアップリンクに設定されたとき、クロックカウンタ１６５は、クロック再生成部１６１から供給されるクロックを元にクロック数の計上を開始する。
スレーブインターフェース部５６０内の切換条件検出部６６０は、第２伝送路１２２がアップリンクに切り換わった時点から所定の時間Ｔが経過したことを、クロックカウンタ１６５を監視することで検出する。このとき、切換条件検出部６６０は、パケット生成部１６４に対し切換通知パケットを生成するよう指示する。
生成された切換通知パケットは、アップリンクに設定されている第２伝送路１２２を介してホスト装置５００に送信される（１３０６）。
【０１００】
伝送路切換制御部５６２の切換条件検出部６６０は、パケット生成部１６４が切換通知パケットを送信したことを検出し、第２伝送路１２２の入出力端子６６２を受信状態に設定する。
また、伝送路切換制御部５４３の切換条件検出部６４０は、パケット解析部１４４が切換通知パケットを受信したことを検出し、第２伝送路１２２の入出力端子６４２を送信状態に設定する。
これにより、第２伝送路１２２は、ダウンリンクに設定される（１３０７）。
以上のように、切換通知パケットを用いることで、通信システム２では、ホストインターフェース部５４０のクロックカウンタを省略することができるとともに、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
【０１０１】
また、図１３Ｂに示すように、第１実施形態と同様、通信システム２では、図６Ａに示す全二重モードのとき、不揮発性記憶装置５１０は、ホスト装置５００に対してＢｕｓｙ等の割り込み要求を行う（１３０８）ことができる。
以上説明したように、本実施形態の通信システム２では、全二重モードから半二重モードの切り換えタイミングを、切換通知パケットにより不揮発性記憶装置５１０からホスト装置５００に通知することで、ホスト装置５００においてクロックカウントがなくても第１実施形態と同様の効果を得ることができる。
なお、ホスト装置５００がクロックカウンタを持ち、切換通知パケットをホスト装置５００から不揮発性記憶装置５１０へ通知することで、不揮発性記憶装置５１０がクロックカウンタを持たないようにしてもよい。
【０１０２】
本実施形態においても、全二重モード時にデータパケットを送らないものとして説明していたが、全二重モード期間であっても第１伝送路１２１および第２伝送路１２２を用いてデータパケットを送受信することが可能である。この場合は、所定の時間Ｔが経過してもデータパケット送信中であれば、当該データパケットの送信完了後に切換通知パケットを送信すればよい。これにより、全二重モード時のデータパケット送信を中断することなく、確実にデータ伝送を完了できる。
［第３実施形態］
＜３．１：通信システムの構成＞
図８は、本発明の第３実施形態に係る通信システム３の構成を示したブロック図である。
【０１０３】
図８に示すように、通信システム３は、ホスト装置８００と、不揮発性記憶装置８１０と、を備える。そして、ホスト装置８００と不揮発性記憶装置８１０とは、第１伝送路１２１、第２伝送路１２２、クロック伝送路１２３により接続されている。
ホスト装置８００は、少なくともユーザーインターフェース部１３１、アプリケーション部１３２、メモリ部１３３、およびホストインターフェース部８４０を備える。
ホストインターフェース部８４０は、クロック送信部１４１、パケット生成部１４２、伝送路切換制御部８４３、パケット解析部１４４を含む。ホストインターフェース部８４０は、クロックカウンタを有していない点が、第１実施形態に係るホストインターフェース部１４０とは異なる。
不揮発性記憶装置８１０は、少なくともスレーブインターフェース部８６０、不揮発性メモリ部読み書き制御部１７０および不揮発性メモリ部１７１を備える。
【０１０４】
スレーブインターフェース部８６０は、クロック再生成部１６１、伝送路切換制御部８６２、パケット解析部１６３、およびパケット生成部１６４を備える。スレーブインターフェース部８６０は、クロックカウンタを有していない点が、上記実施形態に係るスレーブインターフェース部１６０、５６０とは異なる。
つまり、通信システム３は、ホスト装置側およびスレーブ装置側の双方に、クロックカウンタを有していない点が、前述の実施形態に係る通信システム１、１Ａおよび２とは相違する。
なお、本実施形態において、前述の実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図９Ａ〜Ｃは、ホストインターフェース部８４０およびスレーブインターフェース部８６０の構成図であり、特に、ホスト装置側の伝送路切換制御部８４３およびスレーブ装置側の伝送路切換制御部８６２の構成を詳細に示した図である。
【０１０５】
図９Ａ〜Ｃに示すように、ホスト装置側の伝送路切換制御部８４３は、ホストインターフェース部８４０の切換条件検出部９４０と、第１伝送路１２１のホストインターフェース部８４０内の入出力端子９４１と、第２伝送路１２２のホストインターフェース部８４０内の入出力端子９４２と、を備える。
スレーブ装置側の伝送路切換制御部８６２は、スレーブインターフェース部８６０の切換条件検出部９６０と、第１伝送路１２１のスレーブインターフェース部８６０内の入出力端子９６１と、第２伝送路１２２のスレーブインターフェース部８６０内の入出力端子９６２と、を備える。
ホスト装置側の切換条件検出部９４０は、パケット生成部１４２、およびパケット解析部１４４の状態を監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部９４０は、切換条件の充足状況に応じて入出力端子９４１、９４２を、それぞれ、送信状態または受信状態に設定する。
【０１０６】
同様に、切換条件検出部９６０は、パケット解析部１６３、パケット生成部１６４の状態を監視して切換条件の充足状況を検出する。そして、切換条件の充足状況に応じて入出力端子９６１、９６２を送信状態または受信状態に設定する。
＜３．２：通信システムの動作＞
図１０Ａ、Ｂは、第３実施形態における第１伝送路１２１および第２伝送路１２２上を伝送されるパケットを時系列に示したタイミング図である。
以下、図８〜図１０Ａ、Ｂ、および図１４Ａ、Ｂを用いて、本実施形態に係る通信システム３の動作を、前述の実施形態との相違点を中心に説明する。
（３．２．１：高速Ｒｅａｄの動作）
まず、図１０Ａ、Ｂのタイミング図を参照しながら、ユーザーが高速データＲｅａｄをユーザーインターフェース部１３１に指示したときの動作を説明する。
【０１０７】
不揮発性記憶装置８１０がホスト装置８００に装着された後、初期化コマンドパケットが送信され（１００１）、第１伝送路１２１がアップリンクに設定（１００３）されて、通信システム３は、図９Ｂに示す半二重モードとなる。そして、通信システム３において、４個のデータパケットが送受信された後、第１伝送路１２１がダウンリンクに設定（１００４）されて、通信システム３は、図９Ａに示す全二重モードとなる。通信システム３における、ここまでの動作は、第１および第２実施形態と同様である。
第１伝送路１２１がダウンリンクに設定された時点、もしくはそれ以前の所定の時点を起点として、伝送路切換制御部８４３の切換条件検出部９４０は、パケット生成部１４２を監視し、ホスト装置８００から不揮発性記憶装置８１０に対して発行すべき命令があるか否かを検出する。
【０１０８】
ここで、発行すべき命令が存在しない場合、切換条件検出部９４０は、パケット生成部１４２に対して切換通知パケットの生成を指示する。そして、生成された切換通知パケットは、第１伝送路１２１経由で、不揮発性記憶装置８１０に送信される（１００５）。
伝送路切換制御部８４３の切換条件検出部９４０は、切換通知パケットがパケット生成部１４２より送信されたことを検出すると、第１伝送路１２１の入出力端子９４１を受信状態に設定する。
また、伝送路切換制御部８６２の切換条件検出部９６０は、切換通知パケットがパケット解析部１６３で受信されたことを検出すると、第１伝送路１２１の入出力端子９６１を送信状態に設定する。
これにより、第１伝送路１２１はアップリンクに設定され（１００６）、通信システム３は、図９Ｂに示す半二重モードとなる。
【０１０９】
また、図１０Ｂに示すように、第１伝送路１２１がダウンリンクに設定されたときに、伝送路切換制御部８４３の切換条件検出部９４０がパケット生成部１４２に発行すべきパケット（例えば、Ｗａｉｔ通知パケット）があることを検知した場合、パケット生成部１４２は、直ちに当該パケットを不揮発性記憶装置８１０に送信する（１００７）。
これにより、ホスト装置８００は、不揮発性記憶装置８１０に対して、割り込み要求を実行できる。
（３．２．２：高速Ｗｒｉｔｅの動作）
次に、図１４Ａ、Ｂのタイミング図を参照しながら、ユーザーが高速データＷｒｉｔｅを指示したときの通信システム３の動作を、高速データＲｅａｄとの相違点を中心に説明する。
【０１１０】
通信システム３において、初期化コマンドパケットが送信（１４０１）され、レスポンスパケットが返送（１４０３）され、さらに、第２伝送路１２２がダウンリンクに設定（１４０４）されて、通信システム３は、図９Ｃに示す半二重モードとなる。そして、４個のデータパケットの送受信を終えて、第２伝送路１２２がアップリンクに設定（１４０５）されて、通信システム３は、図９（ａ）に示す全二重モードとなる。
通信システム３における、以上の動作は、第１および第２実施形態と同様である。
通信システム３において、第２伝送路１２２がアップリンクに設定された時点、もしくはそれ以前の所定の時点を起点として、伝送路切換制御部８６２の切換条件検出部９６０は、パケット生成部１６４を監視し、不揮発性記憶装置８１０からホスト装置８００に対して発行すべき命令があるか否かを検出する。
【０１１１】
ここで、発行すべき命令が存在しない場合、切換条件検出部９６０は、パケット生成部１６４に対して切換通知パケットの生成を指示する。切換通知パケットは、第２伝送路１２２経由で、ホスト装置８００に送信される（１４０６）。伝送路切換制御部８６２の切換条件検出部９６０は、切換通知パケットがパケット生成部１６４より送信されたことを検出すると、第２伝送路１２２の入出力端子９６２を受信状態に設定する。また、伝送路切換制御部８４３の切換条件検出部９４０は、切換通知パケットがパケット解析部１４４で受信されたことを検出すると、第２伝送路１２２の入出力端子９４２を送信状態に設定する。
これにより、第２伝送路１２２は、ダウンリンクに設定され（１４０７）、通信システム３は、図９Ｃに示す半二重モードとなる。
【０１１２】
また、図１４Ｂに示すように、第２伝送路１２２がアップリンクに設定されたときに、伝送路切換制御部８６２の切換条件検出部９６０がパケット生成部１６４に発行すべきパケット（例えば、Ｂｕｓｙ通知パケット）があることを検知した場合、パケット生成部１６４は、直ちに当該パケットをホスト装置８００に送信する（１４０８）。
これにより不揮発性記憶装置８１０は、ホスト装置８００に対して、割り込み要求を実行できる。
以上説明したように、本実施形態に係る通信システム３では、全二重モードから半二重モードの切り換えタイミングを、高速Ｒｅａｄ時はホスト装置８００から不揮発性記憶装置８１０へ、高速Ｗｒｉｔｅ時は不揮発性記憶装置８１０からホスト装置８００へ、切り換え通知パケットを送信する。したがって、通信システム３では、全二重モードから半二重モードへの切り換えの際にクロックカウンタによる計時が不要となる。
【０１１３】
さらに、本実施形態の通信システム３では、ＷａｉｔやＢｕｓｙなどの割り込み要求がなければ、直ちに切り換え通知パケットを送信し半二重モードでのデータパケット伝送を再開することで、伝送路の使用効率をより高めることができる。
［第４実施形態］
次に、第４実施形態について、図２２〜図２８を参照しながら説明する。
なお、上記実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
＜４．１：通信システム構成＞
図２２は、第４実施形態に係る通信システム４の構成を示したブロック図である。
図２２に示すように通信システム４は、ホスト装置１００Ａとスレーブ装置の一種である不揮発性記憶装置１１０Ａとを備える。そして、ホスト装置１００Ａと不揮発性記憶装置１１０Ａとは、第１伝送路（第１高速バス）１２１、第２伝送路（第２高速バス）１２２、第３伝送路（低速バス）１２３、クロック伝送路（クロックバス）１２４により接続されている。
【０１１４】
ホスト装置１００Ａは、少なくともユーザーインターフェース部１３１、アプリケーション部１３２、メモリ部１３３、ホストインターフェース部１４０Ａを備える。
ホストインターフェース部１４０は、クロック送信部１４１Ａ、パケット生成部１４２Ａ、伝送路（バス）切換制御部１４３Ａ、パケット解析部１４４Ａ、信号生成部１４５Ａ、信号解析部１４６Ａを備える。
不揮発性記憶装置１１０は、スレーブインターフェース部１６０Ａ、不揮発性メモリ読み書き制御部１７０および不揮発性メモリ１７１を備える。
スレーブインターフェース部１６０Ａは、クロック再生成部１６１Ａ、伝送路（バス）切換制御部１６２Ａ、パケット解析部１６３Ａ、パケット生成部１６４Ａ、信号解析部１６５Ａ、信号生成部１６６Ａを備える。
【０１１５】
なお、パケット生成部１４２Ａおよび１６４Ａ、パケット解析部１４４Ａおよび１６３Ａは、適当な大きさのバッファを備えているものとする。
なお一般的に、高速バスには差動伝送方式が用いられ、低速バスにはシングルエンド伝送方式が用いられる。
＜４．２：通信システムの動作＞
以下、本実施形態における通信システム４の動作について、図面を用いて説明する。
（４．２．１：起動〜初期化〜定常状態）
不揮発性記憶装置１１０Ａが、ホスト装置１００Ａに装着されたとき、ホストインターフェース部１４０Ａがアクティブになる。また、ホストインターフェース部１４０Ａのクロック送信部１４１Ａからクロックバス１２４を介してスレーブインターフェース部１６０Ａのクロック再生成部１６１Ａにクロックが供給され、スレーブインターフェース部１６０Ａがアクティブになる。このとき、クロック再生成部１６１Ａで生成されるクロックは、不揮発性記憶装置１１０Ａ全体に供給される。
【０１１６】
図２３は、ホストインターフェース部１４０Ａおよびスレーブインターフェース部１６０Ａの構成図であり、特に、ホスト装置側の伝送路（バス）切換制御部１４３Ａおよびスレーブ装置側の伝送路（バス）切換制御部１６２Ａの構成を詳細に示した図であり、ホストインターフェース部１４０Ａおよびスレーブインターフェース部１６０Ａがアクティブになった直後の設定について説明するための図である。
図２３に示すように、ホスト装置側の伝送路（バス）切換制御部１４３Ａは、切換条件検出部２４０Ａと、第１高速バス１２１の入出力端子２４１Ａと、第２高速バス１２２の入出力端子２４２Ａと、低速バス１２３の入出力端子２４３Ａと、を備える。
また、図２３に示すように、スレーブ装置側の伝送路（バス）切換制御部１６２Ａは、切換条件検出部２６０Ａと、第１高速バス１２１の入出力端子２６１Ａと、第２高速バス１２２の入出力端子２６２Ａと、低速バス１２３の入出力端子２６３Ａと、を備える。
【０１１７】
ホスト装置側の切換条件検出部２４０Ａは、パケット生成部１４２Ａ、パケット解析部１４４Ａが送受信したパケットを監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部２４０Ａは、切換条件の充足状況に応じて入出力端子２４１Ａ、２４２Ａ、２４３Ａを、それぞれ、送信状態または受信状態に設定する。
同様に、スレーブ装置側の切換条件検出部２６０は、パケット解析部１６３Ａ、パケット生成部１６４Ａが送受信したパケットを監視して切換条件が満たされているか否かを検出する。そして、切換条件の充足状況に応じて入出力端子２６１Ａ、２６２Ａ、２６３Ａを、それぞれ、送信状態または受信状態に設定する。
図２３では、第１高速バス１２１のホストインターフェース部１４０Ａ側の入出力端子２４１Ａは、送信状態（Ｔ）に設定されており、スレーブインターフェース部１６０Ａ側の入出力端子２６１Ａは、受信状態（Ｒ）に設定されている。また、第２高速バス１２２のホストインターフェース部１４０Ａ側の入出力端子２４２Ａは、受信状態（Ｒ）に設定されており、スレーブインターフェース部１６０Ａ側の入出力端子２６２Ａは、送信状態（Ｔ）に設定されている。
【０１１８】
このとき、第１高速バス１２１の通信方向はダウンリンクに設定され、第２高速バス１２２の通信方向はアップリンクに設定されることになる。図２３では、第１高速バス１２１および第２高速バス１２２の向きが異なるので、通信システム４は、双方からデータを同時に送信できる全二重モードになっている。通信システム４において、全二重モードでは、低速バス１２３のホストインターフェース部１４０Ａ側の入出力端子２４３Ａを受信状態（Ｒ）に設定し、スレーブインターフェース部１６０Ａ側の入出力端子２６３Ａを受信状態（Ｒ）に設定する。このとき、通信システム４では、低速バス１２３は、通信不可に設定されることになる。
この状態で、ホスト装置１００Ａは、初期化コマンドパケットを第１高速バス１２１経由で不揮発性記憶装置１１０Ａのパケット解析部１６３Ａに供給する。パケット解析部１６３Ａでは、上記パケットが初期化コマンドであることが解析され、必要な初期化が実施される。初期化完了後、通信システム４は、定常状態（全二重モード）になる。
【０１１９】
（４．２．２：高速Ｒｅａｄの動作）
図２４は、通信システム４において、ホスト装置１００Ａより高速Ｒｅａｄコマンドが発行されたときの第１高速バス１２１、第２高速バス１２２、および低速バス１２３上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
通信システム４において、定常状態で、ユーザーは、高速データＲｅａｄをホスト装置１００Ａのユーザーインターフェース部１３１に指示することができる。このとき、ユーザーインターフェース部１３１は、アプリケーション部１３２に高速データＲｅａｄ指示を伝達する。アプリケーション部１３２は、メモリ部１３３に読み出すデータの格納領域が存在することを確認した後、パケット生成部１４２に高速Ｒｅａｄコマンドパケットを生成させる。高速Ｒｅａｄコマンドには、読み出し先のアドレス、読み出しサイズが多重されているものとする。
【０１２０】
高速Ｒｅａｄコマンドパケットは、第１高速バス１２１経由で不揮発性記憶装置１１０Ａのパケット解析部１６３Ａに供給される（３０１）。パケット解析部１６３では、上記パケットが高速Ｒｅａｄコマンドであることが解析される。
ホスト装置１００Ａのバス切換制御部１４３Ａの切換条件検出部２４０Ａは、パケット生成部１４２Ａが高速Ｒｅａｄコマンドパケットを送信したことを検出し、第１高速バス１２１の入出力端子２４１を受信状態に設定する。また、不揮発性記憶装置１１０Ａのバス切換制御部１６２の切換条件検出部２６０Ａは、パケット解析部１６３Ａが高速Ｒｅａｄコマンドパケットを受信したことを検出し、第１高速バス１２１の入出力端子２６１Ａを送信状態に設定する。
これにより、通信システム４において、第１高速バス１２１はアップリンクに設定される（３０２）。さらに、ホスト装置１００Ａのバス切換制御部１４３Ａの切換条件検出部２４０Ａは、低速バス１２３の入出力端子２４３Ａを送信状態に設定する。
【０１２１】
これにより、低速バス１２３はダウンリンクに設定される（３０３）。
この結果、通信システム４は、半二重Ｒｅａｄモードとなり、このときのバス切換制御部１４３Ａおよび１６２Ａによる設定は、図２５に示すようになる。
通信システム４では、半二重Ｒｅａｄモードに切り換わった後、スレーブインターフェース部１６０Ａは、不揮発性メモリ読み書き制御部１７０を介し、高速Ｒｅａｄコマンドパケットに多重されたアドレスに対応する不揮発性メモリ１７１上の領域から、同じくコマンドに多重された読み出しサイズだけデータを順次取得し、取得したデータをパケット生成部１６４Ａに供給する。そして、不揮発性記憶装置１１０Ａのパケット生成部１６４Ａは、パケットの種別等を示したヘッダと、不揮発性メモリ読み書き制御部１７０により読み出されたデータを適当なサイズに分割して生成されるボディと、からデータパケットを生成する。
【０１２２】
次に、パケット生成部１６４Ａは、生成したデータパケットを第１高速バス１２１および第２高速バス１２２に振り分けながら、不揮発性記憶装置１１０Ａの伝送路（バス）切換制御部１６２Ａを介してホスト装置１００に送信する。本実施形態では、１番目のデータパケットＤＡＴＡ（１）を第１高速バス１２１に、２番目のデータパケットＤＡＴＡ（２）を第２高速バス１２２に振り分けて送信する（３０４）。
ホスト装置１００Ａに送信された上記ＤＡＴＡ（１）、ＤＡＴＡ（２）は、ホスト装置１００Ａの伝送路（バス）切換制御部１４３Ａを介して、パケット解析部１４４Ａに蓄積される。パケット解析部１４４では、これらのパケットがデータパケットと解析され、ヘッダを除いたボディ、すなわちデータ本体が抽出され、抽出されたデータ本体がメモリ部１３３に格納される。
【０１２３】
以下、順次、３番目のデータパケットＤＡＴＡ（３）と４番目のデータパケットＤＡＴＡ（４）、５番目のデータパケットＤＡＴＡ（５）と６番目のデータパケットＤＡＴＡ（６）についても同様に、不揮発性記憶装置１１０Ａからホスト装置１００に送信される（３０５、３０６）。
２ｋ−１番目のデータパケットＤＡＴＡ（２ｋ−１）と２ｋ番目のデータパケットＤＡＴＡ（２ｋ）の転送中（３０７）、ユーザーが高速Ｒｅａｄを中止するようホスト装置１００Ａのユーザーインターフェース部１３１に指示したとき、ユーザーインターフェース部１３１は、アプリケーション部１３２を介してホストインターフェース部１４０Ａの信号生成部１４５Ａに上記指示を伝達する。
信号生成部１４５Ａは、所定の長さのパルスを生成し、ダウンリンクに設定されている低速バス１２３経由で、スレーブインターフェース部１６０Ａに上記パルスを送信する（３０８）。
【０１２４】
信号生成部１４５Ａにより生成された上記パルスは、スレーブインターフェース部１６０Ａの信号解析部１６５Ａに供給される。
信号解析部１６５Ａは、上記パルスを受信したとき、「高速Ｒｅａｄ中止」を指示されていると解析（判断）し、不揮発性メモリ読み書き制御部１７０に不揮発性メモリ１７１からのデータ取得を中止するよう指示する。同時に、信号解析部１６５Ａは、パケット生成部１６４Ａに対してコマンド中止受諾パケットを生成するよう指示する。
パケット生成部１６４Ａにより生成されたコマンド中止受諾パケットは、アップリンクに設定されている第２高速バス１２２を介してホスト装置１００Ａに送信される（３０９）。
伝送路（バス）切換制御部１６２Ａの切換条件検出部２６０Ａは、パケット生成部１６４Ａがコマンド中止受諾パケットを送信したことを検出し、第１高速バス１２１の入出力端子２６１を受信状態に設定する。
【０１２５】
また、ホスト装置１００Ａの伝送路（バス）切換制御部１４３Ａの切換条件検出部２４０Ａは、パケット解析部１４４Ａがコマンド中止受諾パケットを受信したことを検出し、第１高速バス１２１の入出力端子２４１を送信状態に設定する。これにより、第１高速バス１２１は、ダウンリンクに設定される（３１０）。
さらに、切換条件検出部２４０Ａは、低速バス１２３の入出力端子２４３を受信状態に設定する。これにより、低速バス１２３は通信不可に設定される（３１１）。
この結果、通信システム４は、全二重モード（定常状態）となり、伝送路（バス）切換制御部１４３Ａおよび１６２Ａによる設定は、図２３に示すようになる。
（４．２．３：高速Ｗｒｉｔｅの動作）
図２６は、通信システム４において、ホスト装置１００Ａより高速Ｗｒｉｔｅコマンドが発行されたときの第１高速バス１２１、第２高速バス１２２、および低速バス１２３上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
【０１２６】
通信システム４において、定常状態では、ユーザーは、高速データＷｒｉｔｅをホスト装置１００Ａのユーザーインターフェース部１３１に指示することができる。このときユーザーインターフェース部１３１はアプリケーション部１３２に高速データＷｒｉｔｅ指示を伝達する。
アプリケーション部１３２は、不揮発性メモリ１７１に書き込むべきデータがメモリ部１３３に保持されていることを確認した後、ホスト装置１００Ａのパケット生成部１４２Ａに高速Ｗｒｉｔｅコマンドパケットを生成させる。高速Ｗｒｉｔｅコマンドには、書き込み先のアドレス、書き込みサイズが多重されているものとする。
高速Ｗｒｉｔｅコマンドパケットは、第１高速バス１２１経由で、不揮発性記憶装置１１０Ａのパケット解析部１６３Ａに供給される（５０１）。パケット解析部１６３Ａでは、上記パケットが高速Ｗｒｉｔｅコマンドであることが解析される。
【０１２７】
不揮発性記憶装置１１０Ａにて、高速Ｗｒｉｔｅが可能であれば、パケット生成部１６４Ａは、コマンド受諾レスポンスパケットを生成し、生成したコマンド受諾レスポンスパケットをホスト装置１００に送信する（５０２）。
不揮発性記憶装置１１０Ａでは、伝送路（バス）切換制御部１６２Ａの切換条件検出部２６０Ａは、パケット生成部１６４Ａがコマンド受諾レスポンスパケットを送信したことを検出し、第２高速バス１２２の入出力端子２６２Ａを受信状態に設定する。
また、ホスト装置１００Ａでは、伝送路（バス）切換制御部１４３Ａの切換条件検出部２４０Ａは、パケット解析部１４４Ａがコマンド受諾レスポンスパケットを受信したことを検出し、第２高速バス１２２の入出力端子２４２Ａを送信状態に設定する。これにより、第２高速バス１２２はダウンリンクに設定される（５０３）。
【０１２８】
さらに、不揮発性記憶装置１１０Ａでは、伝送路（バス）切換制御部１６２Ａの切換条件検出部２６０Ａは、低速バス１２３の入出力端子２６３Ａを送信状態に設定する。これにより、低速バス１２３はアップリンクに設定される（５０４）。
この結果、通信システム４は、半二重Ｗｒｉｔｅモードとなり、このときの伝送路（バス）切換制御部１４３Ａおよび１６２Ａによる設定は、図２７に示すようになる。
通信システム４において、半二重Ｗｒｉｔｅモードに切り換わった後、ホストインターフェース部１４０Ａは、メモリ部１３３に保持されているデータをパケット生成部１４２Ａに供給する。
パケット生成部１４２Ａは、パケットの種別等を示したヘッダと、不揮発性記憶装置１１０Ａに書き込むデータを適当なサイズに分割して生成されるボディと、からデータパケットを生成する。
【０１２９】
次に、パケット生成部１４２Ａは、生成したデータパケットを第１高速バス１２１および第２高速バス１２２に振り分けながら、伝送路（バス）切換制御部１４３Ａを介して不揮発性記憶装置１１０Ａに送信する。本実施形態の通信システム４では、１番目のデータパケットＤＡＴＡ（１）を第１高速バス１２１、２番目のデータパケットＤＡＴＡ（２）を第２高速バス１２２に振り分けて送信する（５０５）。
ホスト装置１００Ａから不揮発性記憶装置１１０Ａに送信された上記ＤＡＴＡ（１）、ＤＡＴＡ（２）は、不揮発性記憶装置１１０Ａの伝送路（バス）切換制御部１６２Ａを介して、パケット解析部１６３Ａに蓄積される。パケット解析部１６３Ａでは、これらのパケットは、データパケットであると解析（判定）され、ヘッダを除いたボディ、すなわちデータ本体が、不揮発性メモリ読み書き制御部１７０に供給（出力）される。不揮発性メモリ読み書き制御部１７０は、不揮発性メモリ１７１に対して、高速Ｗｒｉｔｅコマンドパケットに多重されたアドレスに対応する不揮発性メモリ１７１上の領域に、同じく高速Ｗｒｉｔｅコマンドに多重された書き込みサイズに達するまでデータを書き込むよう制御する。
【０１３０】
以下、３番目のデータパケットＤＡＴＡ（３）と４番目のデータパケットＤＡＴＡ（４）についても同様に、ホスト装置１００Ａから不揮発性記憶装置１１０Ａに送信される（５０６）。
不揮発性記憶装置１１０Ａのパケット解析部１６３Ａに適当なサイズのバッファを備えていることは前述したが、通常、第１高速バス１２１もしくは第２高速バス１２２上でのデータ転送速度より、不揮発性メモリ１７１への書き込み速度の方が遅いため、不揮発性記憶装置１１０Ａがパケットを間断なく受信し続けると、不揮発性記憶装置１１０Ａのパケット解析部１６３Ａ内のバッファ残量がなくなり、受信したデータがオーバーフローする恐れがある。
図２６に示す場合において、不揮発性記憶装置１１０Ａにおいて、ＤＡＴＡ（３）およびＤＡＴＡ（４）を受信し、バッファ残量が所定値以下になると判明したと仮定する。この場合、不揮発性記憶装置１１０Ａのパケット解析部１６３Ａは、ホスト装置１００Ａからのデータ転送を中断すべく、スレーブインターフェース部１６０Ａ内の信号生成部１６６Ａにその旨の指示を伝達する。
【０１３１】
信号生成部１６６Ａは、所定の長さのパルスを生成し、アップリンクに設定されている低速バス１２３経由で、ホスト装置１００Ａのホストインターフェース部１４０Ａに上記パルスを送信する（５０７）。
信号生成部１６６Ａにより生成された上記パルスは、ホストインターフェース部１４０Ａの信号解析部１４６Ａに供給される。
信号解析部１４６Ａは、上記パルスを受信したとき、「高速Ｗｒｉｔｅ中断」を指示されていると解析（判断）し、パケット生成部１４２Ａに対して、データ送信を中断するよう指示する。
不揮発性記憶装置１１０Ａにおいて、不揮発性記憶装置１１０Ａがホスト装置１００Ａから受信したデータの不揮発性メモリ１７１への書き込みが進み、パケット解析部１６３Ａ内のバッファ残量が所定値以上になったと判明したとき、パケット解析部１６３Ａは、ホスト装置１００Ａからのデータ転送を再開すべく、スレーブインターフェース部１６０Ａ内の信号生成部１６６Ａにその旨の指示を伝達する。
【０１３２】
不揮発性記憶装置１１０Ａの信号生成部１６６Ａは、所定の長さのパルスを生成し、アップリンクに設定されている低速バス１２３経由でホストインターフェース部１４０Ａに上記パルスを送信する（５０８）。
信号生成部１６６Ａにより生成された上記パルスは、ホストインターフェース部１４０Ａの信号解析部１４６Ａに供給される。
ホスト装置１００Ａの信号解析部１４６Ａは、上記パルスを受信したとき、高速Ｗｒｉｔｅ再開を指示されていると解析（判断）し、パケット生成部１４２Ａに対して、不揮発性記憶装置１１０Ａに対するデータ送信を再開するよう指示する。
その結果、５番目のデータパケットＤＡＴＡ（５）と６番目のデータパケットＤＡＴＡ（６）とが、ホスト装置１００Ａから不揮発性記憶装置１１０に送信される（５０９）。
【０１３３】
通信システム４において、２ｋ−１番目のデータパケットＤＡＴＡ（２ｋ−１）と２ｋ番目のデータパケットＤＡＴＡ（２ｋ）との伝送により、伝送データサイズが、高速Ｗｒｉｔｅコマンドに多重された書き込みサイズに達する場合（５１０）、ホスト装置１００Ａの伝送路（バス）切換制御部１４３Ａの切換条件検出部２４０Ａは、パケット生成部１４２ＡがＤＡＴＡ（２ｋ）を送信したことを検出し、第２高速バス１２２の入出力端子２４２Ａを受信状態に設定する。
また、不揮発性記憶装置１１０Ａの伝送路（バス）切換制御部１６２Ａの切換条件検出部２６０Ａは、パケット解析部１６３ＡがＤＡＴＡ（２ｋ）を受信したことを検出し、第２高速バス１２２の入出力端子２６２Ａを送信状態に設定する。これにより、通信システム４において、第２高速バス１２２はアップリンクに設定される（５１１）。
【０１３４】
さらに、不揮発性記憶装置１１０Ａの切換条件検出部２６０Ａは、低速バス１２３の入出力端子２６３Ａを受信状態に設定する。これにより、低速バス１２３は通信不可に設定される（５１２）。
この結果、通信システム４は、全二重モード（定常状態）となり、伝送路（バス）切換制御部１４３および１６２による設定は、図２３に示すようになる。
以上説明したように、通信システム４では、２本の高速バスを同時に使用してデータを高速に読み出す半二重Ｒｅａｄモードの場合、低速バスをアップリンクに設定し、ホスト装置１００Ａからパルス信号を送信することで、Ｒｅａｄを中止させることができる。
また、通信システム４では、２本の高速バスを同時に使用してデータを高速に書き込む半二重Ｗｒｉｔｅモードの場合、低速バスをダウンリンクに設定し、スレーブ装置（不揮発性記憶装置）１１０Ａからパルス信号をホスト装置１００Ａに送信することで、ホスト装置１００Ａに対してデータ送信の可否を通知することができる。
【０１３５】
なお、本実施形態においては、スレーブ装置（不揮発性記憶装置）１１０Ａからホスト装置１００Ａに対する通知は、データ伝送中は「書き込み中断」を意味するものとし、書き込み中断中は「データ伝送再開」を意味するものとしたが、これに限定されることはなく、例えば、通知は、単なる割り込みとし、ホスト装置１００Ａは、書き込み中断中に高速バスを用いてスレーブ装置（不揮発性記憶装置）１１０Ａに要因を問い合わせる構成としてもよい。
また、通信システム４において、定常状態である全二重モードでのデータＲｅａｄもしくはデータＷｒｉｔｅも可能である。たとえば、通信システム４が、図２３に示される状態に設定されているとすると、データＲｅａｄの場合、アップリンクに設定されている第２高速バス１２２はデータ伝送に使用されるので、第１高速バス１２１を使用してＲｅａｄ中止指示を行うことができる。
【０１３６】
また、データＷｒｉｔｅの場合、ダウンリンクに設定されている第１高速バス１２１はデータ伝送に使用されるので、第２高速バス１２２を使用してデータ書き込み可否の通知を行うことができる。
ところで、本実施形態の通信システム４では、低速バス１２３に所定の長さのパルスを伝送するとしたが、これに限定されることはなく、例えば、低速バス１２３に所定の長さのビットパターンを伝送するようにしてもよい。この場合、各ビットパターンに複数種類の指示を割り当てることができ、より複雑な指示を行うことも可能である。
また、本実施形態の通信システム４では、スレーブ装置が、不揮発性メモリを有する不揮発性記憶装置１１０Ａである場合について説明したが、これに限定されることはなく、例えば、図２８に示すようなスレーブインターフェース部１６０、ネットワークインターフェース部７７０を備えるネットワークインターフェース装置７１０Ａにおいても同様の効果を得ることが可能である。
【０１３７】
ネットワークインターフェース装置７１０Ａは、リモート装置７８０とネットワーク通信路７８１を介して接続されている。また、ネットワークインターフェース部７７０は、ネットワーク通信路７８１を制御する機能と、スレーブインターフェース部１６０Ａからネットワークを制御する機能と、を有する。
図２８において、ホスト装置１００Ａが高速Ｒｅａｄコマンドを発行したとき、リモート装置７８０内のメモリ（図示せず）から、ネットワーク通信路７８１、ネットワークインターフェース部７７０を介して、ネットワークインターフェース装置７１０Ａのパケット生成部１６４Ａに格納されたデータは、パケット化された上で、半二重Ｒｅａｄモードにて、ネットワークインターフェース装置７１０Ａからホスト装置１００Ａに送信される。
【０１３８】
同様に、ホスト装置１００Ａが高速Ｗｒｉｔｅコマンドを発行したとき、ホスト装置１００Ａよりネットワークインターフェース装置７１０Ａに送信されたデータパケットが半二重Ｗｒｉｔｅモードにてパケット解析部１６３Ａに送信され、ボディのみを取り出してネットワークインターフェース部７７０に供給される。ネットワークインターフェース部７７０に供給されたデータは、ネットワーク通信路７８１を介して、リモート装置７８０内のメモリ（図示せず）に書き込まれる。
通常、第１高速バス１２１もしくは第２高速バス１２２のデータ転送速度は、ネットワーク通信路７８１の速度より速いので、本実施形態にて説明したデータ転送中断、再開の制御が必要となる。
なお、ネットワーク通信路７８１は、有線ネットワーク、無線ネットワークいずれでも実現可能である。
【０１３９】
［第５実施形態］
図２９は、本発明の第５実施形態において、ホスト装置より高速Ｗｒｉｔｅコマンドが発行されたときの第１高速バス１２１、第２高速バス１２２、および低速バス１２３上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
なお、本実施形態の通信システムは、第４実施形態の通信システム４と同様の構成により実現される。
本実施形態において、第４実施形態と異なる点は、以下の点である。すなわち、本実施形態における高速Ｗｒｉｔｅ時には、不揮発性記憶装置１１０Ａが書き込み不可の場合、低速バス１２３を「ＨＩＧＨ」に設定し、それ以外の場合、低速バス１２３を「ＬＯＷ」に設定する、とする点が、第４実施形態と異なる。
【０１４０】
つまり、図２９に示すように、ＤＡＴＡ（３）およびＤＡＴＡ（４）を受信するとバッファ残量が所定値以下になると判明したとき（８０１）、スレーブ装置のパケット解析部１６３Ａは、スレーブインターフェース部１６０Ａ内の信号生成部１６６Ａに、低速バス１２３を「ＨＩＧＨ」にするよう指示する（８０２）。
ホスト装置のホストインターフェース部１４０Ａの信号解析部１４６Ａは、低速バス１２３が「ＨＩＧＨ」であることを検出し、パケット生成部１４２Ａに対して、データ送信を中断するよう指示する。
また、スレーブ装置のパケット解析部１６３Ａは、バッファ残量が所定値以上になり、データ受信が再開できると判明したとき、スレーブインターフェース部１６０Ａ内の信号生成部１６６Ａに、低速バス１２３を「ＬＯＷ」に設定するよう指示する（８０３）。これにより、ＤＡＴＡ（５）およびＤＡＴＡ（６）の伝送が開始される（８０４）。
【０１４１】
以上、本実施形態によれば、ホスト装置のホストインターフェース部１４０Ａは、低速バス１２３が「ＨＩＧＨ」であるか「ＬＯＷ」であるかを検出するのみで、不揮発性記憶装置１１０Ａが書き込み可能であるか否かを検出することができる。このため、本実施形態に係る通信システムにおいて、上記判定のための回路をより小さくすることができる。
同様に、高速Ｒｅａｄの場合、ホスト装置１００Ａが低速バス１２３を「ＬＯＷ」から「ＨＩＧＨ」にして、不揮発性記憶装置１１０Ａにデータ転送中止を指示する構成が可能である。
なお、本実施形態において、全二重モードは低速バスを通信不可状態に設定していたが、これに限定されることはなく、たとえば、全二重モードにおいて低速バスをダウンリンクに設定してホスト装置からスレーブ装置に指示が伝送できるようにしても構わない。また、２本の高速バスを介してホスト装置とスレーブ装置がネゴシエーションを行って、適宜低速バスの方向を切り換える構成としてもよい。
【０１４２】
［他の実施形態］
なお、上記で説明した本発明のすべての実施形態において、スレーブ装置がホスト装置に装着され外部伝送路により接続されている場合について説明した。しかし、これに限定されることはなく、例えば、ホスト装置およびスレーブ装置に含まれる構成要素が１個の装置上で内部の伝送路により接続されているような構成においても、本発明と同様の効果を得ることができる。
また、本発明のすべての実施形態において、半二重モードから全二重モードへの切換を４個のデータパケットの送信完了時に実施するとして説明したが、これに限定されることはない。例えば、Ｎ個（Ｎは自然数）のデータパケットの送信完了時に、半二重モードから全二重モードへの切換を実行するようにしてもよい。
【０１４３】
また、例えば、通信システムの電源投入時や、スレーブ装置が装着されてアクティブになった時点に、初期化処理として、ホスト装置およびスレーブ装置がネゴシエーションすることで、データパケット数Ｎおよび、各データパケットのデータ容量を決定するようにしてもよい。このとき、例えば、ホスト装置およびスレーブ装置の送受信能力（バッファリング能力等）を考慮して、データパケット数Ｎおよび、各データパケットのデータ容量を決定することが好ましい（例えば、ホスト装置およびスレーブ装置のうち、送受信バッファの容量の小さい方の装置の送受信能力を最大限に生かすように、データパケット数Ｎおよび、各データパケットのデータ容量を決定すればよい）。
また、通信システムにおいて、データパケット数Ｎおよび、各データパケットのデータ容量は、必ずしも固定にする必要はなく、例えば、通信システムの通信状況により、可変にしてもよい。これにより、通信システムにおいて、通信効率を向上させることができる。
【０１４４】
さらに、ホスト装置および不揮発性記憶装置との間で、半二重モード／全二重モードの切換条件等を予め取り決めておき、その取り決めに従い、上記以外の方法により、半二重モード／全二重モードの切換を実行するものであってもよい。
なお、上記実施形態で説明した通信システムのホスト装置およびスレーブ装置において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１４５】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る通信システムをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【０１４６】
本発明は、ホスト装置が複数チャンネルの伝送路を使用してスレーブ装置とデータ伝送する通信システムにおいて、ホスト装置がスレーブ装置から半二重モードで高速にデータを送受信する際に、一時的に全二重モードに切り換えることでＷａｉｔやＢｕｓｙといった割り込み処理を迅速に実行できるインターフェース部、ホスト装置、スレーブ装置、および通信システムを提案したものである。本発明は、少なくともインターフェース部と不揮発性メモリを有した不揮発性記憶装置、少なくともインターフェース部と有線もしくは無線ネットワークインターフェース部を有したネットワークインターフェース装置のほか、これらを装着する動画記録再生装置、静止画記録再生装置、音声記録再生装置、あるいは携帯電話等において有益である。
【符号の説明】
【０１４７】
１、１Ａ、２、３、４  通信システム
１００、１００Ａ  ホスト装置
１１０、１１０Ａ  不揮発性記憶装置（スレーブ装置）
１２１  第１伝送路
１２２  第２伝送路
１２３  クロック伝送路（第３伝送路）
１３１  ユーザーインターフェース部
１３２  アプリケーション部
１３３  メモリ
１４０、１４０Ａ  ホストインターフェース部
１４１、１４１Ａ  クロック送信部
１４２、１４２Ａ  パケット生成部
１４３、１４３Ａ  伝送路切換制御部
１４４、１４４Ａ  パケット解析部
１４５  クロックカウンタ
１６０、１６０Ａ  スレーブインターフェース部
１６１、１６１Ａ  クロック再生成部
１６２、１６２Ａ  伝送路切換制御部
１６３、１６３Ａ  パケット解析部
１６４、１６４Ａ  パケット生成部
１６５  クロックカウンタ
１７０  不揮発性メモリ部読み書き制御部
１７１  不揮発性メモリ
２４０  切換条件検出部
２４１、２４２  入出力端子
２６０  切換条件検出部
２６１、２６２  入出力端子
４１０  ネットワークインターフェース装置
４７０  ネットワークインターフェース部
４８０  リモート装置
４８１  ネットワーク通信路
５００  ホスト装置
５１０  不揮発性記憶装置
５４０  ホストインターフェース部
５４３  伝送路切換制御部
５６０  スレーブインターフェース部
５６２  伝送路切換制御部
６４０  切換条件検出部
６４１、６４２  入出力端子
６６０  切換条件検出部
６６１、６６２  入出力端子
８００  ホスト装置
８１０  不揮発性記憶装置
８４０  ホストインターフェース部
８４３  伝送路切換制御部
８６０  スレーブインターフェース部
８６２  伝送路切換制御部
９４０  切換条件検出部
９４１、９４２  入出力端子
９６０  切換条件検出部
９６１、９６２  入出力端子
【図１】
2009147811.tif 000003
【図２Ａ】
2009147811.tif 000004
【図２Ｂ】
2009147811.tif 000005
【図２Ｃ】
2009147811.tif 000006
【図３Ａ】
2009147811.tif 000007
【図３Ｂ】
2009147811.tif 000008
【図４】
2009147811.tif 000009
【図５】
2009147811.tif 000010
【図６Ａ】
2009147811.tif 000011
【図６Ｂ】
2009147811.tif 000012
【図６Ｃ】
2009147811.tif 000013
【図７Ａ】
2009147811.tif 000014
【図７Ｂ】
2009147811.tif 000015
【図８】
2009147811.tif 000016
【図９Ａ】
2009147811.tif 000017
【図９Ｂ】
2009147811.tif 000018
【図９Ｃ】
2009147811.tif 000019
【図１０Ａ】
2009147811.tif 000020
【図１０Ｂ】
2009147811.tif 000021
【図１１Ａ】
2009147811.tif 000022
【図１１Ｂ】
2009147811.tif 000023
【図１２Ａ】
2009147811.tif 000024
【図１２Ｂ】
2009147811.tif 000025
【図１３Ａ】
2009147811.tif 000026
【図１３Ｂ】
2009147811.tif 000027
【図１４Ａ】
2009147811.tif 000028
【図１４Ｂ】
2009147811.tif 000029
【図１５】
2009147811.tif 000030
【図１６】
2009147811.tif 000031
【図１７】
2009147811.tif 000032
【図１８】
2009147811.tif 000033
【図１９】
2009147811.tif 000034
【図２０】
2009147811.tif 000035
【図２１】
2009147811.tif 000036
【図２２】
2009147811.tif 000037
【図２３】
2009147811.tif 000038
【図２４】
2009147811.tif 000039
【図２５】
2009147811.tif 000040
【図２６】
2009147811.tif 000041
【図２７】
2009147811.tif 000042
【図２８】
2009147811.tif 000043
【図２９】
2009147811.tif 000044
【手続補正書】
【提出日】平成22年11月8日(2010.11.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記第１伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な第１伝送路用入出力端子と、
前記第２伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも２つの状態に設定可能な第２伝送路用入出力端子と、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した前記第１条件または前記第２条件を満たすか否かを判定する通信モード切換条件検出部と、
前記通信モード切換条件検出部により、前記第１条件が満たされたと判定された場合、前記第１伝送路用入出力端子および前記第２伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出部により、前記第２条件が満たされたと判定された場合、前記第１伝送路用入出力端子および前記第２伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御部と、
を備えるインターフェース装置。
【請求項２】
前記通信モード切換条件検出部は、前記通信システムが、前記半二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、前記第２条件が満たされたと判断する、
請求項１に記載のインターフェース装置。
【請求項３】
前記通信モード切換条件検出部は、前記通信システムが、前記半二重通信モードでの通信に切り換えられた時点から、Ｎ個（Ｎは自然数）のパケットの送信もしくは受信を完了した場合に、前記第２条件が満たされたと判断する、
請求項１に記載のインターフェース装置。
【請求項４】
前記伝送路切換制御部は、前記第２条件を、データ送受信要求またはデータ送受信命令に含めて通信相手に通知する、
請求項１から３のいずれかに記載のインターフェース装置。
【請求項５】
前記伝送路切換制御部は、前記インターフェース装置の初期設定時に、前記第２条件を、通信相手に通知及び／又は設定させるためのパケットを送信する、
請求項１から４のいずれかに記載のインターフェース装置。
【請求項６】
前記第２条件が満たされたと判断するための送信もしくは受信したパケット数Ｎは、前記通信システムにかかるバッファサイズから決定する、
請求項１、２、３、および５のいずれかに記載のインターフェース装置。
【請求項７】
前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた時点から、所定の時間Ｔが経過した場合に、前記第１条件が満たされたと判断する、
請求項１から６のいずれかに記載のインターフェース装置。
【請求項８】
前記伝送路切換制御部は、前記インターフェース装置の初期設定時に、前記第１条件を、通信相手に通知及び／又は設定させるためのパケットを送信する、
請求項１から７のいずれかに記載のインターフェース装置。
【請求項９】
前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、前記第１条件が満たされたと判断する、
請求項１から７のいずれかに記載のインターフェース装置。
【請求項１０】
前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を送信した場合に、前記第１条件が満たされたと判断する、
請求項１から７のいずれかに記載のインターフェース装置。
【請求項１１】
前記伝送路切換制御部は、
前記全二重通信モードに切り換え後、Ｗａｉｔ指示の割り込み通知を受信した場合、前記全二重通信モードの状態で待機し、
前記Ｗａｉｔ指示の割り込み通知に対応する割り込み処理の完了後に送信される割込処理完了を指示する通知を受信した場合、前記半二重通信モードへ切り換える、
請求項１から６のいずれかに記載のインターフェース装置。
【請求項１２】
前記伝送路切換制御部は、
前記全二重通信モードに切り換え後、所定時間以内にＷａｉｔ指示の割り込み通知を受信しなかった場合、前記半二重通信モードへ切り換える、
請求項１から６のいずれかに記載のインターフェース装置。
【請求項１３】
不揮発性メモリと、
前記不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、
請求項１から１２のいずれかに記載のインターフェース装置と、
を備える不揮発性記憶装置。
【請求項１４】
外部との通信を行う外部通信部と、
前記外部通信部に対する制御を行う外部通信制御部と、
請求項１から１２のいずれかに記載のインターフェース装置と、
を備える通信装置。
【請求項１５】
請求項１から１２のいずれかに記載のインターフェース装置を含むホスト装置と、
請求項１３または１４に記載の装置を含むスレーブ装置と、
を備える通信システム。
【請求項１６】
少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられる通信モード切換方法であって、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した前記第１条件または前記第２条件を満たすか否かを判定する通信モード切換条件検出ステップと、
前記通信モード切換条件検出ステップにより、前記第１条件が満たされたと判定された場合、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出ステップにより、前記第２条件が満たされたと判定された場合、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御ステップと、
を備える通信モード切換方法。
【請求項１７】
少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記第１伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な第１伝送路用入出力端子と、
前記第２伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも２つの状態に設定可能な第２伝送路用入出力端子と、
を備えるインターフェース装置に用いられる集積回路であって、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した前記第１条件または前記第２条件を満たすか否かを判定する通信モード切換条件検出部と、
前記通信モード切換条件検出部により、前記第１条件が満たされたと判定された場合、前記第１伝送路用入出力端子および前記第２伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出部により、前記第２条件が満たされたと判定された場合、前記第１伝送路用入出力端子および前記第２伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御部と、
を備える集積回路。
【請求項１８】
低速伝送路および複数の高速伝送路を有し、前記低速伝送路または複数の前記高速伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記低速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な低速伝送路用入出力端子と、
前記高速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な複数の高速伝送路用入出力端子と、
前記低速伝送路用入出力端子および前記複数の高速伝送路用入出力端子の入出力状態を、それぞれを独立に設定することができ、
前記複数の高速伝送路用入出力端子のうち少なくとも１つの前記高速伝送路用入出力端子を出力状態に設定し、当該出力状態に設定した前記高速伝送路用入出力端子以外の前記高速伝送路用入出力端子を入力状態に設定する全二重通信モードと、
前記複数の高速伝送路用入出力端子のすべてを出力状態に設定する半二重出力モードと、
前記複数の高速伝送路用入出力端子のすべてを入力状態に設定する半二重入力モードと、に基づいて、前記低速伝送路用入出力端子および前記複数の高速伝送路用入出力端子の入出力状態を設定する伝送路切換制御部と、
を備え、
前記伝送路切換制御部は、
前記半二重出力モードでは、前記低速伝送路用入出力端子を入力状態に設定し、
前記半二重入力モードでは、前記低速伝送路用入出力端子を出力状態に設定する、
インターフェース装置。
【請求項１９】
前記低速伝送路用入出力端子は、シングルエンド方式による通信を行う伝送路用の入出力端子であり、
前記複数の高速伝送路用入出力端子のうちの少なくとも１つの高速伝送路用入出力端子は、差動伝送方式による通信を行う伝送路用の入出力端子である、
請求項１８に記載のインターフェース装置。
【請求項２０】
不揮発性メモリと、
前記不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、
請求項１８または１９に記載のインターフェース装置と、
を備える不揮発性記憶装置。
【請求項２１】
外部との通信を行う外部通信部と、
前記外部通信部に対する制御を行う外部通信制御部と、
請求項１８または１９に記載のインターフェース装置と、
を備える通信装置。
【請求項２２】
請求項１８または１９に記載のインターフェース装置を含むホスト装置と、
請求項１８または１９に記載のインターフェース装置を含むスレーブ装置と、
を備える通信システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターフェース装置、インターフェース装置を含むホスト装置とインターフェース装置を含むスレーブ装置、インターフェース装置を含む複数の通信装置から構成される通信システムと、その通信方法に関する。
【背景技術】
【０００２】
近年、半導体の微細化・高速化技術の進展に伴って、機器間の通信、あるいは機器内に搭載されるＬＳＩ間の通信データ量は益々増加し、通信速度の高速化が求められる傾向にある。一方で、ＬＳＩのダイサイズ（チップ面積）に影響を及ぼすとともに、チップ（ＬＳＩ）の製造単価増の要因となるＬＳＩの端子（パッド）数には、厳しい制約がある。
そこで、より少ないＬＳＩ端子数で高速なデータ通信を実現する目的でＵＳＢ２．０、ＩＥＥＥ１３９４、ＰＣＩ  Ｅｘｐｒｅｓｓといった高速シリアル通信規格が広く採用されている。このような規格における通信方式としては、ＵＳＢ２．０やＩＥＥＥ１３９４のように送受信の方向制御や送信権の調停制御が必要な「半二重通信方式」と、ＰＣＩ  Ｅｘｐｒｅｓｓのように送信専用の伝送路と、受信専用の伝送路とを少なくとも１チャンネルずつ備えることにより送受信を同時に処理できる「全二重通信方式」が挙げられる。一般的に、全二重通信方式の方が、半二重通信方式に比べ、制御が容易である。その一方で、全二重通信方式では、送信あるいは受信のどちらか一方向のみの通信を行っている期間は、他方向の伝送路が使用されないので、通信に使用されていない他方の伝送路の帯域が無駄になる、という効率面での課題がある。
【０００３】
また、他の分野に目を向けてみると、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体として、半導体メモリカード等の不揮発性記憶装置の需要が拡大しており、かつ、その大容量化が急速に進んでいる。この不揮発性記憶装置は、不揮発性メモリとしてフラッシュメモリを備え、フラッシュメモリを制御するフラッシュメモリ部読み書き制御部、およびデジタルスチルカメラやＰＣ（パーソナルコンピュータ）等のホスト装置との通信を行うためのインターフェース回路を有している。このインターフェース回路を介して、不揮発性記憶装置は、ホスト装置から制御可能なスレーブ装置として機能する。
こうした装置間の通信データ量は、例えば、デジタルスチルカメラの高画素化と高画質化により、急速に増大している。また、一眼レフタイプのデジタルスチルカメラにおいては、高速連写機能の搭載により、データ通信の高速化が強く求められている。
【０００４】
また、他のスレーブ装置の例としては、ホスト装置にネットワーク機能を追加するためのネットワークインターフェース装置などがあり、ネットワークの高速化に伴い、ホスト装置とスレーブ装置との間のデータ通信の高速化が必須条件として、強く要請されている。
こうした不揮発性記憶装置やネットワークインターフェース装置に代表されるスレーブ装置と、ホスト装置との間は、複数の伝送路により接続される。例えば、スレーブ装置が不揮発性記憶装置である場合、このような伝送路上には、ホスト装置から不揮発性記憶装置に対する命令（コマンド）や通知、不揮発性メモリから読み出されるデータ、もしくは不揮発性メモリに書き込まれるデータ等が、デジタル信号として伝送される。
伝送路を２チャンネル備える場合、１チャンネルの伝送路がホスト装置から不揮発性記憶装置（スレーブ装置の一例）への伝送路（ダウンリンク）として利用され、もう一方の伝送路が不揮発性記憶装置からホスト装置への伝送路（アップリンク）として利用される。全二重通信方式では、ホスト装置および不揮発性記憶装置が同時にコマンドもしくはデータを送信することができる。
【０００５】
一方、半二重通信方式では、２チャンネルの伝送路がともにホスト装置から不揮発性記憶装置への伝送路（ダウンリンク）、もしくは、ともに不揮発性記憶装置からホスト装置への伝送路（アップリンク）として利用される。このため、半二重通信方式では、一方の装置が送信するとき、他方の装置は、受信のみ可能で、送信は出来なくなる。したがって、ダウンリンク、もしくは、アップリンク、どちらかの一方向のみで見た場合、半二重通信方式では、一方向当たりの通信帯域が、全二重方式の場合の２倍になるため、半二重通信方式は、大容量のデータを同一方向に高速伝送する場合に有効である。
特に、半導体メモリカードに代表される不揮発性記憶装置においては、高速なデータ書き込みと、高速なデータ読み出しが同時に行われることは希で、高速書き込み、もしくは、高速読み出しのどちらか一方の処理のみが継続する用途が圧倒的に多い。したがって、このような不揮発性記憶装置において、データ転送（データ書き込み又はデータ読み出し）を行う期間に関しては、半二重通信方式の方が効率の面で極めて有利になる。
【０００６】
なお、送信あるいは受信のどちらか一方の通信のみを行う期間は、全二重通信を行うための伝送路の方向を切換えることにより、全伝送路を用いた半二重通信方式とし、限られた伝送路の帯域を効率的に使用する従来技術がある（例えば、特許文献１参照）。
従来の、全二重モードと半二重モードとを切り換え可能な通信システムについて、図１１Ａおよび図１１Ｂを用いて、説明する。
図１１Ａおよび図１１Ｂは、ホスト装置と不揮発性記憶装置とが２チャンネルの外部伝送路により接続され、全二重モードと半二重モードとを切り換えて通信を行うことができる通信システムにおける、第１伝送路および第２伝送路により送受信されるコマンドおよびデータのタイミング図（タイミングチャート）（外部伝送路上を伝送するコマンド（命令）およびデータを時系列に示したタイミング図）である。具体的には、図１１Ａは、ホスト装置が半二重モードにて不揮発性記憶装置よりデータを読み出すときのタイミング図である。図１１Ｂは、不揮発性記憶装置へデータを書き込むときのタイミング図である。
【０００７】
図１１Ａおよび図１１Ｂに示すように、外部伝送路は、第１伝送路１１０１および第２伝送路１１０２からなり、初期状態では、第１伝送路１１０１は、ダウンリンクに設定されており、第２伝送路１１０２は、アップリンクに設定されている。なお、ホスト装置からはクロック伝送路（図示せず）を介して不揮発性記憶装置にクロックが供給されている。
このような構成とする理由は、通常、不揮発性記憶装置をはじめとするスレーブ装置は、小型かつ安価であることが求められるため、独自にクロックを持たず（独自にクロック生成せず）、ホスト装置から供給されるクロックで駆動する方が好ましいからである。
図１１Ａにおいて、ホスト装置は、不揮発性記憶装置に対し半二重モードでデータ読み出しを指示するために、高速Ｒｅａｄコマンドを送信する（１１１１）。高速Ｒｅａｄコマンドには、データ読み出し先のアドレス、読み出しサイズが多重されているものとする。
【０００８】
高速Ｒｅａｄコマンド送信後、ホスト装置は、第１伝送路１１０１のホスト側入出力端子を入力状態に設定する。一方、高速Ｒｅａｄコマンドを受信した不揮発性記憶装置は、第１伝送路１１０１の不揮発性記憶装置側入出力端子を出力状態に設定する。これにより、第１伝送路１１０１はアップリンクに設定される（１１１２）。
その後、不揮発性記憶装置は、高速Ｒｅａｄコマンドに多重された読み出し先のアドレスから読み出しサイズ分のデータを、第１伝送路１１０１および第２伝送路１１０２を用いて並列に送信する（１１１３）。
所定サイズのデータの送受信完了後、不揮発性記憶装置は、第１伝送路１１０１の不揮発性記憶装置側入出力端子を入力状態にし、ホスト装置は、第１伝送路１１０１のホスト側入出力端子を出力状態にする。これにより、第１伝送路１１０１はダウンリンクに戻る（１１１４）。
【０００９】
図１１Ｂにおいて、ホスト装置は、不揮発性記憶装置に対し半二重モードでデータ書き込みを指示するために、高速Ｗｒｉｔｅコマンドを送信する（１１１５）。高速Ｗｒｉｔｅコマンドには、データ書き込み先のアドレス、書き込みサイズが多重されているものとする。
高速Ｗｒｉｔｅコマンド送信後、ホスト装置は、第２伝送路１１０２のホスト側入出力端子を出力状態に設定する。一方、高速Ｗｒｉｔｅコマンドを受信した不揮発性記憶装置は、第２伝送路１１０２の不揮発性記憶装置側入出力端子を入力状態に設定する。これにより、第２伝送路１１０２はダウンリンクに設定される（１１１６）。
その後、ホスト装置は、高速Ｗｒｉｔｅコマンドに多重された書き込み先のアドレスへ書き込みサイズ分のデータを、第１伝送路１１０１および第２伝送路１１０２を用いて並列に送信する（１１１７）。
【００１０】
所定サイズのデータの送受信完了後、ホスト装置は、第２伝送路１１０２のホスト側入出力端子を入力状態にし、不揮発性記憶装置は、第２伝送路１１０２の不揮発性記憶装置側入出力端子を出力状態にする。これにより、第２伝送路１１０２はアップリンクに戻る（１１１８）。
以上により、従来の、全二重モードと半二重モードとを切り換え可能な通信システムでは、全二重モードと半二重モードとを切り替えることで効率の良い通信を実現することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００２−９４６００号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記で説明した通信システムでは、以下のような問題が生じる。
第１に、ホスト装置が高速Ｒｅａｄコマンドを発行し、第１伝送路１１０１がアップリンクに切り換わった後から再度ダウンリンクに切り換わるまで（１１１２〜１１１４）は、第１伝送路１１０１および第２伝送路１１０２共にアップリンクとなるため、ホスト装置から不揮発性記憶装置に情報を伝達する手段がない。例えば、高速Ｒｅａｄコマンドによるデータ転送の途中（１１１３）で、ホスト装置の受信バッファの空き領域がなくなり高速Ｒｅａｄコマンドを一時停止（「Ｗａｉｔ」）させようとしても、データ転送が完了し、第１伝送路１１０１が再度ダウンリンクに切り換わるまで、ホスト装置から不揮発性記憶装置に「Ｗａｉｔ」を指示できない。
第２に、ホスト装置が高速Ｗｒｉｔｅコマンドを発行した場合も、第２伝送路１１０２がダウンリンクに切り換わった後から再度アップリンクに切り換わるまで（１１１６〜１１１８）は、第１伝送路１１０１および第２伝送路１１０２共にダウンリンクとなるため、不揮発性記憶装置からホスト装置に情報を伝達する手段がない。よって、データ転送途中（１１１７）で、高速Ｗｒｉｔｅコマンドを一時停止（「Ｂｕｓｙ」）させようとしても、データ転送が完了し、第２伝送路１１０２が再度アップリンクに切り換わるまで、不揮発性記憶装置からホスト装置に「Ｂｕｓｙ」を通知できない。
【００１３】
そこで、本発明は、上記問題点を鑑み、半二重モードでのデータ読み出しおよび書き込み中であっても、ホスト装置とスレーブ装置との間で速やかに指示や割り込み通知を伝達できるインターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の発明は、少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、第１伝送路用入出力端子と、第２伝送路用入出力端子と、通信モード切換条件検出部と、伝送路切換制御部と、を備える。
第１伝送路用入出力端子は、第１伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能である。第２伝送路用入出力端子は、第２伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも２つの状態に設定可能である。通信モード切換条件検出部は、通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、半二重通信モードを全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した第１条件または第２条件を満たすか否かを判定する。伝送路切換制御部は、通信モード切換条件検出部により、第１条件が満たされたと判定された場合、第１伝送路用入出力端子および第２伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、通信モードを、全二重通信モードから半二重通信モードに切り換える。また、伝送路切換制御部は、通信モード切換条件検出部により、第２条件が満たされたと判定された場合、第１伝送路用入出力端子および第２伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、通信モードを、半二重通信モードから全二重通信モードに切り換える。
【００１５】
このインターフェース装置では、半二重モードでのデータ読み出しやデータ書き込みの実行中であっても、所定の条件を満たしたときに伝送路の方向を切り換えて一時的に全二重モードとすることができるので、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
なお、第１伝送路用入出力端子と、第２伝送路用入出力端子と、「２つの状態」である「入力状態」と「出力状態」の他に、例えば、「ハイインピーダンス」（絶縁状態）のような、「入力状態」と「出力状態」以外の状態をとるものであってもよい。
第２の発明は、第１の発明であって、通信モード切換条件検出部は、通信システムが、半二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、第２条件が満たされたと判断する。
【００１６】
このインターフェース装置では、通信システムが、半二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、必ず、全二重通信モードに戻るので、半二重通信モード中の割り込み要求の速やかな実行を保証することができる。
第３の発明は、第１の発明であって、通信モード切換条件検出部は、通信システムが、半二重通信モードでの通信に切り換えられた時点から、Ｎ個（Ｎは自然数）のパケットの送信もしくは受信を完了した場合に、第２条件が満たされたと判断する。
このインターフェース装置では、通信システムが、半二重通信モードでの通信に切り換えられた時点から、Ｎ個（Ｎは自然数）のパケットの送信もしくは受信を完了した場合に、必ず、全二重通信モードに戻るので、半二重通信モード中の割り込み要求の速やかな実行を保証することができる。さらに、このインターフェース装置では、送受信パケット数をカウントするだけで、簡単に、通信モードの切換タイミングを決定することができる。
【００１７】
第４の発明は、第１から第３のいずれかの発明であって、伝送路切換制御部は、第２条件を、データ送受信要求またはデータ送受信命令に含めて通信相手に通知する。
これにより、第２条件を、簡易かつ確実に、通信相手に通知することができる。なお、データ送受信要求またはデータ送受信命令は、予め定義されたパケットを利用するものであってもよい。
第５の発明は、第１から第４のいずれかの発明であって、伝送路切換制御部は、インターフェース装置の初期設定時に、第２条件を、通信相手に通知及び／又は設定させるためのパケットを送信する。
これにより、インターフェース装置の初期化時に第２条件（半二重から全二重に切り換えるための条件）を、通信相手に通知及び／又は設定させることができるため、通信システムが動作中に、別途第２条件を設定するための通信を行う必要がない。
【００１８】
なお、「初期化時」とは、例えば、インターフェース装置が起動した時や、インターフェース装置がアクティブになった時や、電源投入時等である。
第６の発明は、第１、第２、第３、および第５のいずれかの発明であって、第２条件が満たされたと判断するための送信もしくは受信したパケット数Ｎは、通信システムにかかるバッファサイズから決定する。
これにより、通信システムにおいて、適切に高速データ転送を行うことができる。
例えば、パケット数Ｎの決定方法は、以下のようにすればよい。
インターフェース装置を含むホスト装置と、インターフェース装置を含むスレーブ装置と、を備える通信システムを想定し、ホスト装置側のインターフェース装置のバッファサイズをＢｕｆ１［バイト］とし、スレーブ装置側のインターフェース装置のバッファサイズをＢｕｆ２［バイト］とし、ホスト装置とスレーブ装置間で通信されるパケットのパケットサイズをＡ［バイト］としたとき、
（１）Ｂｕｆ１＞Ｂｕｆ２である場合、
Ｎ＝Ｉｎｔ（Ｂｕｆ２／Ａ）
（２）Ｂｕｆ１≦Ｂｕｆ２である場合、
Ｎ＝Ｉｎｔ（Ｂｕｆ１／Ａ）
により、パケット数Ｎを決定すればよい。なお、Ｉｎｔ（Ｘ）は、Ｘを超えない最大の整数値を表すものとする（Ｉｎｔ（Ｘ）は、ガウス記号による演算に相当する関数である）。
【００１９】
また、パケット数Ｎの決定方法は、ホスト装置およびスレーブ装置の処理性能に基づいてパケット数Ｎを決定する方法であってもよい。つまり、このパケット数Ｎを決定する方法では、パケット数Ｎを、バッファサイズの小さい装置を基準にして決定するので、通信システムの通信性能を最大限に引き出すことが可能となる。
また、パケット数Ｎの決定方法は、ホスト装置およびスレーブ装置の処理速度性能に基づいてパケット数Ｎを決定する方法であってもよい。例えば、ホスト装置の処理速度、動作クロックがそれぞれＰ１、Ｃ１であり、スレーブ装置の処理速度、動作クロックがそれぞれＰ２、Ｃ２であり、通信パケットのパケットサイズがＡである場合、Ｐ１、Ｐ２、Ｃ１、Ｃ２およびＡの全部若しくは一部に基づいて、パケット数Ｎを決定するようにしてもよい。なお処理速度性能は、ホスト装置またはスレーブ装置に実装されているプロセッサ処理能力、同じくホスト装置またはスレーブ装置に実装されているＲＡＭやフラッシュメモリ等記録媒体への読み書き速度、外部との通信を行う外部通信路の伝送速度の全部若しくは一部から決まる。
【００２０】
第７の発明は、第１から第６のいずれかの発明であって、通信モード切換条件検出部は、通信システムが全二重通信モードでの通信に切り換えられた時点から、所定の時間経過した場合に、第１条件が満たされたと判断する。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた時点から、所定の時間経過した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。
第８の発明は、第１から第７のいずれかの発明であって、伝送路切換制御部は、インターフェース装置の初期設定時に、第１条件を、通信相手に通知及び／又は設定させるためのパケットを送信する。
【００２１】
これにより、インターフェース装置の初期化時に第１条件（全二重から半二重に切り換えるための条件）を、通信相手に通知及び／又は設定させることができるため、通信システムが動作中に、別途第１条件を設定するための通信を行う必要がない。
第９の発明は、第１から第７のいずれかの発明であって、通信モード切換条件検出部は、通信システムが全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、第１条件が満たされたと判断する。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。また、このインターフェース装置では、インターフェース切換要求命令を受信により通信モードが切り換えられるので、送信側および受信側において、（クロックカウント等による）時間計測を行う必要がない。
【００２２】
第１０の発明は、第１から第７のいずれかの発明であって、通信モード切換条件検出部は、通信システムが全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を送信した場合に、第１条件が満たされたと判断する。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を送信した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。また、このインターフェース装置では、インターフェース切換要求命令の送信により通信モードが切り換えられるので、送信側および受信側において、（クロックカウント等による）時間計測を行う必要がない。さらに、インターフェース切換要求命令を送信するタイミングを制御することで、全二重通信モードによる通信期間を所望の期間に設定することができる。このため、効率のよい通信を実現させることができる。
【００２３】
第１１の発明は、第１から第６のいずれかの発明であって、伝送路切換制御部は、全二重通信モードに切り換え後、Ｗａｉｔ指示の割り込み通知を受信した場合、全二重通信モードの状態で待機し、Ｗａｉｔ指示の割り込み通知に対応する割り込み処理の完了後に送信される割込処理完了を指示する通知を受信した場合、半二重通信モードへ切り換える。
これにより、このインターフェース装置では、Ｗａｉｔ指示の割り込み通知（例えば、Ｗａｉｔ通知パケット）を受信した時点から、割込処理完了を指示する通知（例えば、Ｗａｉｔ解除パケット）を受信する時点までの間、確実に全二重モードを維持することができ、かつ、その間、インターフェース装置は、通信モードを維持したまま、待機していればよいので、余計な通信（余計なパケットの送受信）を行う必要がない（例えば、ポーリングにより、所定の周期で、通信相手の装置の状態を確かめる必要がない）。
【００２４】
第１２の発明は、第１から第６のいずれかの発明であって、伝送路切換制御部は、全二重通信モードに切り換え後、所定時間以内にＷａｉｔ指示の割り込み通知を受信しなかった場合、半二重通信モードへ切り換える。
これにより、このインターフェース装置では、Ｗａｉｔ指示の割り込み通知（例えば、Ｗａｉｔ通知パケット）を受信した時点から、所定時間が経過するまでの間、確実に全二重モードを維持することができ、かつ、その間、インターフェース装置は、通信モードを維持したまま、待機していればよいので、余計な通信（余計なパケットの送受信）を行う必要がない（例えば、ポーリングにより、所定の周期で、通信相手の装置の状態を確かめる必要がない）。
なお、所定時間以内にＷａｉｔ指示の割り込み通知を受信しなかった場合、直ちに、半二重通信モードに切り換えることが好ましい。
【００２５】
第１３の発明は、不揮発性メモリと、不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、第１から第１２のいずれかの発明であるインターフェース装置と、を備える不揮発性記憶装置である。
これにより、第１から第１２のいずれかの発明であるインターフェース装置の効果を実現することができる不揮発性記憶装置（例えば、ＳＤカード）を実現することができる。
第１４の発明は、外部との通信を行う外部通信部と、外部通信部に対する制御を行う外部通信制御部と、第１から第１２のいずれかの発明であるインターフェース装置と、を備える通信装置である。
第１５の発明は、第１３または第１４の発明であるインターフェース装置を含むホスト装置と、第１から第８のいずれかの発明であるインターフェース装置を含むスレーブ装置と、を備える通信システムである。
【００２６】
これにより、第１から第８のいずれかの発明であるインターフェース装置の効果を実現することができる通信システムを実現することができる。なお、ホスト装置とスレーブ装置は、１つの装置の中に存在し、例えば、内部バスによりホスト装置とスレーブ装置とが接続されているものであってもよい。これにより、例えば、携帯端末装置内のデバイス間において、第１から第８のいずれかの発明であるインターフェース装置により実現される効果と同様の効果を実現させることができる。
第１６の発明は、少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、伝送路を用いて命令やデータの送受信を行う通信システムに用いられる通信モード切換方法であって、通信モード切換条件検出ステップと、伝送路切換制御ステップと、を備える。
【００２７】
通信モード切換条件検出ステップでは、通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、半二重通信モードを全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した第１条件または第２条件を満たすか否かを判定する。伝送路切換制御ステップでは、通信モード切換条件検出ステップにより、第１条件が満たされたと判定された場合、通信モードを、全二重通信モードから半二重通信モードに切り換え、そして、通信モード切換条件検出ステップにより、第２条件が満たされたと判定された場合、通信モードを、半二重通信モードから全二重通信モードに切り換える。
この通信モード切換方法では、半二重モードでのデータ読み出しやデータ書き込みの実行中であっても、所定の条件を満たしたときに伝送路の方向を切り換えて一時的に全二重モードとすることができるので、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
【００２８】
第１７の発明は、少なくとも２チャンネルの伝送路である第１伝送路と第２伝送路とを有し、伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置に用いられる集積回路である。そして、インターフェース装置は、第１伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な第１伝送路用入出力端子と、第２伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも２つの状態に設定可能な第２伝送路用入出力端子と、を備える。そして、第１７の発明である集積回路は、通信モード切換条件検出部と、伝送路切換制御部と、を備える。
通信モード切換条件検出部は、通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第１条件と、半二重通信モードを全二重通信モードに切り換えるための条件である第２条件と、を設定し、設定した第１条件または第２条件を満たすか否かを判定する。伝送路切換制御部は、通信モード切換条件検出部により、第１条件が満たされたと判定された場合、第１伝送路用入出力端子および第２伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、通信モードを、全二重通信モードから半二重通信モードに切り換え。また、伝送路切換制御部は、通信モード切換条件検出部により、第２条件が満たされたと判定された場合、第１伝送路用入出力端子および第２伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、通信モードを、半二重通信モードから全二重通信モードに切り換える。
【００２９】
これにより、第１の発明と同様の効果を奏する集積回路を実現することができる。
第１８の発明は、低速伝送路および複数の高速伝送路を有し、低速伝送路または複数の高速伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、低速伝送路用入出力端子と、複数の高速伝送路用入出力端子と、伝送路切換制御部と、を備える。
低速伝送路用入出力端子は、低速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な入出力端子である。複数の高速伝送路用入出力端子は、高速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも２つの状態に設定可能な入出力端子である。
【００３０】
伝送路切換制御部は、低速伝送路用入出力端子および複数の高速伝送路用入出力端子の入出力状態を、それぞれを独立に設定することができ、以下の３つのモードに基づいて、低速伝送路用入出力端子および複数の高速伝送路用入出力端子の入出力状態を設定する。
（１）複数の高速伝送路用入出力端子のうち少なくとも１つの高速伝送路用入出力端子を出力状態に設定し、当該出力状態に設定した高速伝送路用入出力端子以外の高速伝送路用入出力端子を入力状態に設定する全二重通信モード。
（２）複数の高速伝送路用入出力端子のすべてを出力状態に設定する半二重出力モード。
（３）複数の高速伝送路用入出力端子のすべてを入力状態に設定する半二重入力モード。
そして、伝送路切換制御部は、半二重出力モードでは、低速伝送路用入出力端子を入力状態に設定し、半二重入力モードでは、低速伝送路用入出力端子を出力状態に設定する。
【００３１】
このインターフェース装置では、複数の高速伝送路を用いて、半二重通信を行っている場合、低速伝送路の通信方向を、当該半二重通信の通信方向と逆方向に設定される。したがって、このインターフェース装置では、複数の高速伝送路を用いて、半二重通信を行っている場合であっても、確実に、割込処理を行うことができる。その結果、このインターフェース装置では、適切な割り込み処理と高速データ転送（半二重モードによる高速なデータ伝送）と両立させることができる。
第１９の発明は、第１８の発明であって、低速伝送路用入出力端子は、シングルエンド方式による通信を行う伝送路用の入出力端子であり、複数の高速伝送路用入出力端子のうちの少なくとも１つの高速伝送路用入出力端子は、差動伝送方式による通信を行う伝送路用の入出力端子である。
【００３２】
このインターフェース装置では、高い通信速度を要求される複数の高速伝送路に使用される複数の高速伝送路用入出力端子を、差動伝送方式用の入出力端子とし、高い通信速度を要求されない低速伝送路用に使用される低速伝送路用入出力端子をシングルエンド方式用の入出力端子としたので、インターフェース装置の回路規模の増大を抑えつつ、適切な割り込み処理および高速データ転送を実現させることができる。
第２０の発明は、不揮発性メモリと、不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、第１８または第１９の発明であるインターフェース装置と、を備える不揮発性記憶装置である。
第２１の発明は、外部との通信を行う外部通信部と、外部通信部に対する制御を行う外部通信制御部と、第１８または第１９の発明であるインターフェース装置と、を備える通信装置である。
【００３３】
第２２の発明は、第１８または第１９の発明であるインターフェース装置を含むホスト装置と、第１８または第１９の発明であるインターフェース装置を含むスレーブ装置と、を備える通信システムである。
【発明の効果】
【００３４】
本発明によれば、ホスト装置とスレーブ装置が半二重モードでのデータ読み出しやデータ書き込みの実行中であっても、所定の条件を満たしたときに伝送路の方向を切り換えて一時的に全二重モードとすることで、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
【図面の簡単な説明】
【００３５】
【図１】第１実施形態の構成を説明したブロック図
【図２Ａ】第１実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図２Ｂ】第１実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図２Ｃ】第１実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図３Ａ】第１実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図３Ｂ】第１実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図４】第１実施形態の別の構成を説明したブロック図
【図５】第２実施形態の構成を説明したブロック図
【図６Ａ】第２実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図６Ｂ】第２実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図６Ｃ】第２実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図７Ａ】第２実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図７Ｂ】第２実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図８】第３実施形態の構成を説明したブロック図
【図９Ａ】第３実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図９Ｂ】第３実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図９Ｃ】第３実施形態における伝送路切換制御部の詳細構成を説明したブロック図
【図１０Ａ】第３実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１０Ｂ】第３実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１１Ａ】従来の不揮発性記憶システムにおける伝送路上を伝送されるコマンドおよびデータを時系列に示したタイミング図
【図１１Ｂ】従来の不揮発性記憶システムにおける伝送路上を伝送されるコマンドおよびデータを時系列に示したタイミング図
【図１２Ａ】第１実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１２Ｂ】第１実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１３Ａ】第２実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１３Ｂ】第２実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１４Ａ】第３実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１４Ｂ】第３実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１５】第１実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１６】第１実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図１７】第１実施形態のパケット構成図
【図１８】第１実施形態のパケットヘッダーと、Ａｒｇｕｍｅｎｔの一部を示した図
【図１９】第１実施形態における、高速データＷｒｉｔｅ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図２０】第１実施形態における、高速データＲｅａｄ実行時に伝送路上を伝送されるパケットを時系列に示したタイミング図
【図２１】第１実施形態のＩ／Ｏ空間を示す図
【図２２】第４実施形態の構成を説明したブロック図
【図２３】第４実施形態におけるバス切換制御部の全二重モードにおける構成を説明したブロック図
【図２４】第４実施形態の高速Ｒｅａｄ時におけるバス上を伝送されるパケットを時系列に示したタイミング図
【図２５】第４実施形態におけるバス切換制御部の半二重Ｒｅａｄモードにおける構成を説明したブロック図
【図２６】第４実施形態の高速Ｗｒｉｔｅ時におけるバス上を伝送されるパケットを時系列に示したタイミング図
【図２７】第４実施形態におけるバス切換制御部の半二重Ｗｒｉｔｅモードにおける構成を説明したブロック図
【図２８】第４実施形態の別の構成を説明したブロック図
【図２９】第５実施形態の高速Ｗｒｉｔｅ時におけるバス上を伝送されるパケットを時系列に示したタイミング図
【発明を実施するための形態】
【００３６】
以下に、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の各実施形態において、以前に説明した符号の説明は省略する。
［第１実施形態］
＜１．１：通信システムの構成＞
図１は、本発明の第１実施形態に係る通信システム１の構成を示したブロック図である。
図１に示すように、通信システム１は、ホスト装置１００とスレーブ装置の一種である不揮発性記憶装置１１０とを備える。そして、ホスト装置１００と不揮発性記憶装置１１０とは、第１伝送路１２１、第２伝送路１２２、クロック伝送路１２３により接続されている。
【００３７】
ホスト装置１００は、少なくともユーザーインターフェース部１３１、アプリケーション部１３２、メモリ部１３３、およびホストインターフェース部１４０を備える。
ホストインターフェース部１４０は、クロック送信部１４１、パケット生成部１４２、伝送路切換制御部１４３、パケット解析部１４４、クロックカウンタ１４５を備える。
不揮発性記憶装置１１０は、少なくともスレーブインターフェース部１６０、不揮発性メモリ部読み書き制御部１７０および不揮発性メモリ部１７１を備える。
スレーブインターフェース部１６０は、クロック再生成部１６１、伝送路切換制御部１６２、パケット解析部１６３、パケット生成部１６４、クロックカウンタ１６５を備える。
なお、パケット生成部１４２および１６４、パケット解析部１４４および１６３は、適当な大きさのバッファを備えているものとする。
【００３８】
図２Ａ〜Ｃは、ホストインターフェース部１４０およびスレーブインターフェース部１６０の構成図であり、特に、ホスト装置側の伝送路切換制御部１４３およびスレーブ装置側の伝送路切換制御部１６２の構成を詳細に示した図である。
図２Ａ〜Ｃに示すように、ホスト装置側の伝送路切換制御部１４３は、ホストインターフェース部１４０の切換条件検出部２４０と、第１伝送路１２１のホストインターフェース部１４０内の入出力端子２４１と、第２伝送路１２２のホストインターフェース部１４０内の入出力端子２４２と、を備える。
スレーブ装置側の伝送路切換制御部１６２は、スレーブインターフェース部１６０の切換条件検出部２６０と、第１伝送路１２１のスレーブインターフェース部１６０内の入出力端子２６１と、第２伝送路１２２のスレーブインターフェース部１６０内の入出力端子２６２と、を備える。
【００３９】
ホスト装置側の切換条件検出部２４０は、パケット生成部１４２、パケット解析部１４４、およびクロックカウンタ１４５の状態を監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部２４０は、切換条件の充足状況に応じて入出力端子２４１、２４２を、それぞれ、送信状態または受信状態に設定する。
同様に、スレーブ装置側の切換条件検出部２６０は、パケット解析部１６３、パケット生成部１６４、およびクロックカウンタ１６５の状態を監視して切換条件の充足状況を検出する。そして、切換条件の充足状況に応じて入出力端子２６１、２６２を、それぞれ、送信状態または受信状態に設定する。
図２Ａでは、第１伝送路１２１のホストインターフェース部１４０内の入出力端子２４１は送信状態（Ｔ）、スレーブインターフェース部１６０内の入出力端子２６１は受信状態（Ｒ）に設定されており、第２伝送路１２２のホストインターフェース部１４０内の入出力端子２４２は受信状態（Ｒ）、スレーブインターフェース部１６０内の入出力端子２６２は送信状態（Ｔ）に設定されている。
【００４０】
このとき、第１伝送路１２１の通信方向は、ホストインターフェース部１４０からスレーブインターフェース部１６０へむかう向き（ダウンリンク）である。そして、第２伝送路１２２の通信方向は、スレーブインターフェース部１６０からホストインターフェース部１４０へむかう向き（アップリンク）である。よって、図２Ａに示すように、通信システム１において、第１伝送路１２１および第２伝送路１２２の向きが異なり、ホストインターフェース部１４０とスレーブインターフェース部１６０の双方からデータを同時に送信することができる。すなわち、図２Ａは、通信システム１が「全二重モード」に設定されている場合を示している。
一方、図２Ｂでは、第１伝送路１２１および第２伝送路１２２のホストインターフェース部１４０内の入出力端子２４１および２４２は、共に受信状態（Ｒ）、スレーブインターフェース部１６０内の入出力端子２６１および２６２は、共に送信状態（Ｔ）に設定され、第１伝送路１２１および第２伝送路１２２の通信方向が同じ（アップリンク）になっている。また、図２Ｃでも、第１伝送路１２１および第２伝送路１２２の通信方向が同じ（ダウンリンク）になっている。
【００４１】
つまり、図２ＢおよびＣは、通信システム１が「半二重モード」に設定されている場合を示している。この場合、通信システム１では、全二重モードの２倍の帯域幅でデータを伝送することができる。
＜１．２：通信システムの動作＞
図３Ａ、Ｂ、および図１２Ａ、Ｂは、第１実施形態における第１伝送路１２１および第２伝送路１２２上を伝送されるパケットを時系列に示したタイミング図（タイミングチャート）である。
以下、図１から図３Ａ、Ｂ、図１２Ａ、Ｂ、および図１５から図２１を用いて、本実施形態に係る通信システム１の動作を説明する。
不揮発性記憶装置１１０がホスト装置１００に装着されたとき、ホストインターフェース部１４０がアクティブになる。また、ホストインターフェース部１４０のクロック送信部１４１からクロック伝送路１２３を介してスレーブインターフェース部１６０のクロック再生成部１６１にクロックが供給され、スレーブインターフェース部１６０がアクティブになる。このとき、クロック再生成部１６１で生成されるクロックは、不揮発性記憶装置１１０全体、もしくは一部に供給される。
【００４２】
まず、パケット生成部１４２は、初期化コマンドパケットを生成する。初期化コマンドに関しては、後述する。
パケット生成部１４２及びパケット生成部１６４は、例えば、図１７に示すような各種のリクエストパケット、データパケット、レスポンスパケット、メッセージパケット等を生成する。そして、パケット解析部１４４及びパケット解析部１６３は、例えば、図１７に示すような各種のリクエストパケット、データパケット、レスポンスパケット、メッセージパケット等の解析を行う。
Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１は、図１７に示すパケット構造を有している。Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１は、制御レジスタや、状態レジスタ（ステータスレジスタ）等がマッピングされたＩ／Ｏ空間をＲｅａｄ／Ｗｒｉｔｅするための要求を伝達する。
【００４３】
図２１に、通信システム１で用いられるＩ／Ｏ空間の一例を示す。
図２１に示すＩ／Ｏ空間は、アドレス０００(ｈ)（「（ｈ）」は、１６進数による表記であることを示す。以下同様。）から、１ＦＦ(ｈ)までの各アドレスに１バイト（＝８ｂｉｔ）のレジスタもしくはメモリ等の記憶素子が割り当てられていることを示している。よって、この例では、５１２バイト分のＩ／Ｏ空間が定義されている。
なお、Ｉ／Ｏ空間は、ホスト装置１００、不揮発性記憶装置１１０のどちらにも存在し（実装され）、それぞれに固有の情報（ホスト装置１００にのみ保持される情報と、不揮発性記憶装置のみに保持される情報）と、ホスト装置１００と不揮発性記憶装置１１０の両者に共通の情報とが存在する。
図１７に、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２、データパケット１７０３、レスポンスパケット１７０４、およびメッセージパケット１７０５のパケット構造の一例を示す。これらのパケットについて、以下、説明する。
【００４４】
Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２は、メモリ空間をＲｅａｄ／Ｗｒｉｔｅするための要求を伝達する。この要求を基に、不揮発性記憶装置１１０の不揮発性メモリ部１７１からのデータ読み出し、もしくは、不揮発性メモリ部１７１へのデータ書き込みが実行される。
データパケット１７０３は、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットによる不揮発性メモリ部１７１からの読み出し要求に基づいて、不揮発性メモリ部１７１から読み出されたデータを伝送する。また、データパケット１７０３は、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットによる不揮発性メモリ部１７１への書き込み要求に基づいて、不揮発性メモリ部１７１への書き込みデータを伝送する。
レスポンスパケット１７０４は、リクエストパケット（Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット、及び、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット）に対する応答を伝送する。
【００４５】
メッセージパケット１７０５は、割込みや、Ｂｕｓｙ、Ｗａｉｔ、といった主にイベント通知に使用する。
図１７に示すように、パケット１７０１〜１７０５において、各パケットの先頭には、各パケット共通の情報を伝達するための、Ｈｅａｄｅｒ１７１１〜１７１５が、それぞれ、付加される。
図１８に、パケット１７０１〜１７０５において、各パケットの先頭に付加されるＨｅａｄｅｒ情報の構成例を示す。
図１８に示す例では、Ｈｅａｄｅｒ情報は、２バイトで構成し、バイト０のビット７“ＤＩＲ”は、パケットの伝送方向を示すビットであり、このビット”Ｄｉｒ”が“０”の場合は不揮発性記憶装置１１０からホスト装置１００にパケットが伝送されることを示し、ビット”Ｄｉｒ”が“１”の場合は、ホスト装置１００から不揮発性記憶装置１１０にパケットが伝送されることを示す。
【００４６】
また、図１８に示すように、バイト０のビット６〜ビット４“Ｐａｃｋｅｔ  Ｔｙｐｅ”は、パケットの種類を示すビットであり、この“Ｐａｃｋｅｔ  Ｔｙｐｅ”が０００(ｂ)（「（ｂ）」は、２進数による表記であることを示す。以下同様。）の場合は、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１であることを示し、００１(ｂ)の場合は、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２であることを示し、０１０(ｂ)の場合は、レスポンスパケット１７０４であることを示し、０１１(ｂ)の場合は、データパケット１７０３であることを示し、１１１(ｂ)の場合は、メッセージパケット１７０５であることを示す。
また、バイト０のビット３〜ビット０、および、バイト１のビット７〜ビット６の合計６ビットで構成される“Ｄｅｓｔｉｎａｔｉｏｎ  ＩＤ”には、一つのホスト装置１００に、複数の不揮発性記憶装置１１０が接続された場合、どの不揮発性記憶装置にパケットを伝送するかを示すＩＤ（パケットの届け先情報）を格納する。
【００４７】
また、バイト１のビット５〜ビット０“Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ”は、それぞれの処理毎に割り当てられるＩＤであり、ある一つのリクエストパケットに対応したレスポンスパケットやデータパケットには、同じＩＤが付与され、リクエストとその結果（レスポンスやリクエストに対応したデータ）との対応関係を管理するために用いられる。
通信システム１において、例えば、ホスト装置１００から不揮発性記憶装置１１０に対して、メモリ部のデータを読み出す要求を行うＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２が伝送される場合について説明する。
Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ”が００１０００(ｂ)であった場合、前記リクエストパケット伝送後に、不揮発性記憶装置１１０からホスト装置１００に伝送されるレスポンスパケット１７０４の“Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ”が００１０００(ｂ)の値であれば、当該レスポンスパケット１７０４は、直前に伝送されたメモリ部のデータを読み出す要求を行うＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットに対応したレスポンスパケットであると判定する。
【００４８】
一方、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２のパケット伝送後に、不揮発性記憶装置１１０からホスト装置１００に伝送されるレスポンスパケット１７０４の“Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ”が００１０００(ｂ)以外の値であった場合、当該レスポンスパケット１７０４は、直前に伝送されたメモリのデータを読み出す要求を行うＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットとは別のリクエストパケットに対応したレスポンスパケットであると判定する。
また、図１７に示すように、パケット１７０１〜１７０５の各パケットにおいて、それぞれ、１７２１〜１７２５で示す“Ａｒｇｕｍｅｎｔ”は、必要に応じてパケット長に関する情報や、その他制御系の情報等を格納する領域である。
図１８に、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２のＡｒｇｕｍｅｎｔ１７２２の一部（Ａｒｇｕｍｅｎｔ１７２２の先頭１バイト）の例を示す。
【００４９】
バイト２（Ａｒｇｕｍｅｎｔ１７２２の先頭バイト）のビット７“ＤＰＬＸ”は、通信モードの設定を行うビットである。“ＤＰＬＸ”が“０”の場合、通信モード設定が、全二重モード、すなわち、第１通信モードであることを意味する。一方、“ＤＰＬＸ”が“１”の場合、通信モード設定が、半二重モード、すなわち、第２通信モードであることを意味する。
バイト２（Ａｒｇｕｍｅｎｔ１７２２の先頭バイト）のビット６“Ｒ／Ｗ”は、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２が、Ｒｅａｄリクエスト、Ｗｒｉｔｅリクエストのどちらであるかを示すビットである。ビット６“Ｒ／Ｗ”が“０”の場合、当該パケットが、Ｒｅａｄリクエスト（用のパケット）であることを示し、ビット６“Ｒ／Ｗ”が“１”の場合、当該パケットが、Ｗｒｉｔｅリクエスト（用のパケット）であることを示す。
【００５０】
バイト２のビット３〜ビット０“ＤＩＲ  Ｃｔｒｌ”に関しては、後述する。
Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１の“Ａｄｄｒｅｓｓ”（図１７の１７３１で示す部分）は、Ｉ／Ｏ空間のどのエリアの読み出し、もしくは、Ｉ／Ｏ空間のどのエリアに書き込みを行うかを指定するアドレスを格納する領域である。
また、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケット１７０１の“Ｄａｔａ”（図１７の１７４１で示す部分）は、Ｉ／Ｏ空間に書き込むデータを格納する領域である。
例えば、図２１に示すＩ／Ｏ空間の“ＤＩＲ  Ｃ”へ、値“４(ｄ)”（「（ｄ）」は、１０進数による表記であることを示す。以下同様。）を書き込む場合には、“Ａｄｄｒｅｓｓ”（図１７の１７３１の部分）に０３０(ｈ)を、“Ｄａｔａ”（図１７の１７４１の部分）に“４(ｄ)”を設定して、Ｉ／Ｏ  Ｗｒｉｔｅ  リクエストパケットを伝送する。
【００５１】
同様に、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｄｄｒｅｓｓ”（図１７の１７３２の部分）は、メモリ空間のどのエリアの読み出し、もしくは、メモリ空間のどのエリアに書き込みを行うかを指定するアドレスを格納する領域である。
データパケット１７０３の“Ｄａｔａ”（図１７の１７４２の部分）は、主に、メモリ空間のＲｅａｄ／Ｗｒｉｔｅ要求に対するデータを格納する領域であり、レスポンスパケット１７０４の“Ｄａｔａ”（図１７の１７４３の部分）は、主に、Ｉ／Ｏ空間のＲｅａｄ要求に対するデータを格納する領域である。
図１７に示すように、パケット１７０１〜１７０５において、各パケットの最後尾には必要に応じて“ＣＲＣ”（図１７の１７５１〜１７５５で示す部分）が付加され、伝送した各パケットのデータ誤り検出に用いられる。
【００５２】
本実施形態において、初期化コマンドは、図３の初期化コマンドパケット３０１、及び、図１２の初期化コマンド１２０１に示すように、説明便宜のために（簡単化するために）、一つのパケットで描き表している。しかし、実際には、前記Ｉ／Ｏ  Ｒ／Ｗ  リクエストにより、ホスト装置１００に装着された不揮発性記憶装置１１０の各種情報（例えば、対応規格のバージョンに関する情報や、製造メーカに関する情報、不揮発性記憶装置のシリアル番号、動作可能な電圧に関する情報、等々）を読み出したり、不揮発性記憶装置１１０への各種設定を行ったりするための一連のパケット通信により、通信システム１において、初期化を行うのが一般的である。
（１．２．１：初期化時の伝送切換条件に関するパラメータの設定）
こうした初期化時に、通信システム１のインターフェース部では、伝送路切換条件に関するパラメータのＩ／Ｏ空間への書き込み（設定）を、以下のように行う。
【００５３】
図２１のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”は、Ｄｉｒｅｃｔｉｏｎ  Ｃｏｎｔｒｏｌ設定レジスタであり、半二重モードによるデータ伝送中、一時的に全二重モードに切り替えを行うための条件（切り替え周期についての条件）として、半二重モードによる伝送データパケットの数を設定するためのレジスタである。
例えば、ホスト装置１００は、自身（ホスト装置１００）のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”を設定した上で、ホスト装置１００のパケット生成部１４２により、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケットを生成する。そして、ホスト装置１００は、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に書き込みを行う（Ｗｒｉｔｅをする）要求とその書き込み値を“４”としたパケットを不揮発性記憶装置１１０に送信する。
【００５４】
不揮発性記憶装置１１０は、ホスト装置１００からのパケットを受信して、Ｉ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”を設定する（書き込む）。これにより、不揮発性記憶装置１１０は、通信システム１で半二重モードによるデータパケット転送が開始された時点以降において、データパケット４パケット分の転送が行われる毎に、半二重モード（第２通信モード）から、一旦、全二重モード（第１通信モード）への伝送路切り替えを行う。
なお、図２１に示すＩ／Ｏ空間は論理空間であり、それぞれのアドレスに対応するレジスタもしくはメモリ等の記憶素子は、実際には、関連する各回路ブロック（ハードウェアで実現する場合）に実装されるのが一般的である。本実施形態では、ホスト装置１００のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”レジスタは、切換条件検出部２４０内に実装され、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”レジスタは、切換条件検出部２６０内に実装されている。
【００５５】
ホストインターフェース部１４０およびスレーブインターフェース部１６０がアクティブになった直後は、通信システム１は、全二重モード、すなわち図２Ａの状態になっているものとする。よって、初期化コマンドパケットは、第１伝送路１２１経由でパケット解析部１６３に伝達される（３０１、１２０１）。
パケット解析部１６３では、上記パケットが初期化コマンドであることが解析され、必要な初期化が実行される。
初期化完了後、ユーザーは、高速データＲｅａｄおよび高速データＷｒｉｔｅをホスト装置１００のユーザーインターフェース部１３１に指示することができる。
ここで、「高速データＲｅａｄ」とは、伝送路１２１および１２２を半二重モード、すなわち、第２通信モードに設定して、不揮発性記憶装置１１０の不揮発性メモリ部１７１からデータを読み出す動作のことである。
【００５６】
また、「高速データＷｒｉｔｅ」とは、伝送路１２１および１２２を半二重モード、すなわち、第２通信モードに設定して、ホスト装置１００から不揮発性記憶装置１１０内の不揮発性メモリ部１７１にデータを書き込む動作のことである。
（１．２．２：高速Ｒｅａｄの動作（時間Ｔ経過による半二重／全二重モード切換））
以下では、まず、図３Ａのタイミング図を参照しながら、通信システム１における高速Ｒｅａｄの動作（ユーザーが高速データＲｅａｄをユーザーインターフェース部１３１に指示したときの通信システム１の動作）について、説明する。
ユーザーが高速データＲｅａｄをユーザーインターフェース部１３１に指示した場合、ユーザーインターフェース部１３１は、アプリケーション部１３２に高速データＲｅａｄ指示を伝達する。
【００５７】
アプリケーション部１３２は、メモリ部１３３に読み出したデータを格納するための空き領域が存在することを確認し、その後、パケット生成部１４２に高速Ｒｅａｄコマンドパケットを生成させる。高速Ｒｅａｄコマンドには、読み出し先のアドレス、読み出しサイズが多重されているものとする。
ここで、パケット生成部１４２により生成される高速Ｒｅａｄコマンドパケットについて、具体的に説明する。
高速Ｒｅａｄコマンドパケットは、図１７のＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｄｄｒｅｓｓ”１７３２に、読み出し先のアドレスを格納し、“Ａｒｇｕｍｅｎｔ”１７２２の一部に読み出しサイズを格納することで生成される。
また、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットでＲｅａｄ要求を行うことを示すために、“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイト（図１８のバイト２）のビット６“Ｒ／Ｗ”は、“０”に設定される。
【００５８】
また、高速モードでＲｅａｄを行うことを示すために、“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイト（図１８のバイト２）のビット７“ＤＰＬＸ”は、“１”（半二重モード）に設定される（“ＤＰＬＸ”を、“１”（半二重モード）に設定することで、通信システム１において、半二重モード（半二重モード）、すなわち、第２通信モードで通信を行うことを指示することができる）。
パケット生成部１４２により生成された高速Ｒｅａｄコマンドパケットは、第１伝送路１２１経由で、パケット解析部１６３に伝達される（３０２）。
パケット解析部１６３では、上記パケットが高速Ｒｅａｄコマンドであることが解析される。
伝送路切換制御部１４３の切換条件検出部２４０は、パケット生成部１４２が高速Ｒｅａｄコマンドパケットを送信したことを検出し、第１伝送路１２１の入出力端子２４１を受信状態に設定する。また、伝送路切換制御部１６２の切換条件検出部２６０は、パケット解析部１６３が高速Ｒｅａｄコマンドパケットを受信したことを検出し、第１伝送路１２１の入出力端子２６１を送信状態に設定する。これにより、第１伝送路１２１はアップリンクに設定され（３０３）、通信システム１は、図２Ｂに示す半二重モードとなる。
【００５９】
その後、スレーブインターフェース部１６０は、不揮発性メモリ部読み書き制御部１７０を介し、高速Ｒｅａｄコマンドパケットに多重されたアドレスに対応する不揮発性メモリ部１７１上の領域から、同じくコマンドに多重された読み出しサイズだけデータを順次取得し、パケット生成部１６４に供給する。
パケット生成部１６４では、パケットの種別等を示したヘッダと、読み出したデータを適当なサイズに分割して生成されるボディからデータパケットが生成される。
パケット生成部１６４は、生成したデータパケットを第１伝送路１２１および第２伝送路１２２に振り分けながら、伝送路切換制御部１６２を介してホスト装置１００に送信する。
本実施形態では、１番目のデータパケットＤＡＴＡ（１）を第１伝送路１２１に、２番目のデータパケットＤＡＴＡ（２）を第２伝送路１２２に振り分けて送信する（３０４）。
【００６０】
ホスト装置１００に送信された上記ＤＡＴＡ（１）、ＤＡＴＡ（２）は、伝送路切換制御部１４３を介して、パケット解析部１４４に蓄積される。
パケット解析部１４４では、これらのパケットがデータパケットであると解析され、ヘッダを除いたボディ、すなわち、データ本体がメモリ部１３３に格納される。
以降、３番目のデータパケットＤＡＴＡ（３）および４番目のデータパケットＤＡＴＡ（４）についても、同様に、ホスト装置１００に送信される（３０５）。
次に、伝送路切換制御部１６２の切換条件検出部２６０は、初期化時にＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”が設定されているので、パケット生成部１６４が４個のデータパケットを送信したことを検出し、第１伝送路１２１の入出力端子２６１を受信状態に設定する。
【００６１】
また、伝送路切換制御部１４３の切換条件検出部２４０は、初期化時にＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”が設定されているので、パケット解析部１４４が４個のデータパケットを受信したことを検出し、第１伝送路１２１の入出力端子２４１を送信状態に設定する。これにより、第１伝送路１２１は、ダウンリンクに設定され（３０６）、通信システム１は、図２Ａに示す全二重モードとなる。
このように、通信システム１では、半二重モードから全二重モードに切り換える条件は、Ｎ個（Ｎは任意の整数）のデータパケットの送受信完了時であるとして、初期化コマンドのパラメータで予めホスト装置１００から不揮発性記憶装置１１０に対し通知しておく。
具体的には、ホスト装置１００は、自身（ホスト装置１００）のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“Ｎ”を設定した上で、ホスト装置１００のパケット生成部１４２により、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケットを生成する。そして、ホスト装置１００は、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に書き込みを行う（Ｗｒｉｔｅをする）要求とその書き込み値を“Ｎ”としたパケットを不揮発性記憶装置１１０に送信する。
【００６２】
不揮発性記憶装置１１０は、ホスト装置１００からのパケットを受信して、Ｉ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“Ｎ”を設定する（書き込む）。
図３ＡおよびＢでは、初期化コマンドのパラメータをＮ＝４としたときの、通信システム１におけるタイミング図の一例を示している。
また、図２０（ｂ）では、Ｎ＝８としたときの、通信システム１におけるタイミング図の一例を示している。
通信システム１において、第１伝送路１２１がダウンリンクに設定されたとき、クロックカウンタ１６５は、クロック再生成部１６１から供給されるクロックを元にクロック数の計上を開始する。同様に、クロックカウンタ１４５は、クロック送信部１４１から供給されるクロックを元にクロック数の計上を開始する。
【００６３】
ホストインターフェース部１４０内の切換条件検出部２４０は、第１伝送路１２１がダウンリンクに切り換わった時点から所定の時間Ｔが経過したことを、クロックカウンタ１４５を監視することで検出し、第１伝送路１２１の入出力端子２４１を再び受信状態に設定する。このとき、切換条件検出部２４０は、クロックカウンタ１４５に対してクロック数をゼロクリアさせる。
同様に、スレーブインターフェース部１６０内の切換条件検出部２６０は、第１伝送路１２１がダウンリンクに切り換わった時点から所定の時間Ｔが経過したことを、クロックカウンタ１６５を監視することで検出し、第１伝送路１２１の入出力端子２６１を再び送信状態に設定する。このとき、切換条件検出部２６０は、クロックカウンタ１６５に対してクロック数をゼロクリアさせる。
【００６４】
これにより、第１伝送路１２１は、再びアップリンクに設定され（３０７）、通信システム１は、図２Ｂに示す半二重モードに戻る。ここで、全二重モードから半二重モードへ切り換える条件が、全二重モードに移行した後、所定の時間Ｔが経過した時であることは、初期化コマンドのパラメータで、予めホスト装置１００から不揮発性記憶装置１１０に対し通知しておく。
以後同様に、通信システム１では、４個のデータパケットの送受信を完了する度に、第１伝送路１２１は、ダウンリンクに設定され（３０８）、所定の時間Ｔが経過すると、半二重モードに戻る（３０９）という制御が繰り返される。
ここで、第１伝送路１２１がダウンリンクに設定されている間（３０６〜３０７、３０８〜３０９）に、ホスト装置１００が第１伝送路１２１上にコマンドやメッセージ等を送信することで、不揮発性記憶装置１１０に対して割り込み要求を行うことが可能である。
【００６５】
（１．２．３：高速Ｒｅａｄの動作（Ｗａｉｔ通知・解除による半二重／全二重モード切換））
次に、通信システム１において、Ｗａｉｔ指示（Ｗａｉｔ通知・解除）により半二重／全二重モードを切り換える場合の高速Ｒｅａｄ動作について、説明する。
図３Ｂは、半二重モードによる通信中に、割り込み要求として、ホスト装置１００が不揮発性記憶装置１１０にＷａｉｔ指示（Ｗａｉｔ通知・解除）を送る場合のシーケンスを示している。
初期化コマンドパケット発行から第１伝送路１２１がアップリンクに設定される（３０１〜３０３）までは、図３Ａの場合と同様であるので、詳細な説明は省略する。
例えば、半二重モード期間（３０４〜３０５）において、メモリ部１３３の空き状態を監視しているアプリケーション部１３２が、高速Ｒｅａｄコマンドによるスレーブ装置（不揮発性記憶装置１１０）からのデータ読み出し動作を継続すると、データを格納するためのメモリ部１３３上の空き領域が不足すると判断したとする。この場合、アプリケーション部１３２は、パケット生成部１４２にＷａｉｔ通知パケットを生成させ、第１伝送路１２１がダウンリンクに設定されている間に不揮発性記憶装置１１０に送信させる（３１０）。
【００６６】
不揮発性記憶装置１１０に送信されたＷａｉｔ通知パケットは、他のコマンドと同様にパケット解析部１６３で解析される。このとき、実行中の高速Ｒｅａｄコマンドは、一時停止され、全二重モードが保持される。この場合、通信システム１は、図３Ａの場合とは異なり、所定の時間Ｔが経過しても半二重モードへは切り換わらない。そして、切換条件検出部２４０および２６０は、それぞれ、クロックカウンタ１４５および１６５に対して、クロック数をゼロクリアさせる。
その後、メモリ部１３３に十分な空き領域ができると、アプリケーション部１３２がそれを検知し、パケット生成部１４２にＷａｉｔ解除パケットを生成させ、不揮発性記憶装置１１０に送信させる（３１１）。
このとき、切換条件検出部２４０は、パケット生成部１４２がＷａｉｔ解除パケットを生成したことを検出し、第１伝送路１２１の入出力端子２４１を受信状態に設定する。
【００６７】
また、切換条件検出部２６０は、パケット解析部１６３がＷａｉｔ解除パケットを解析したことを検出し、第１伝送路１２１の入出力端子２６１を送信状態に設定する。
これにより、第１伝送路１２１がアップリンクに設定され、通信システム１は、半二重モードとなり、通信システム１において、高速Ｒｅａｄコマンドの実行が再開される。
このように、通信システム１では、ホスト装置１００から不揮発性記憶装置１１０に対して、Ｗａｉｔ通知パケットが送信された時点から、Ｗａｉｔ解除パケットが送信される時点までの間、確実に全二重モードが維持され、かつ、Ｗａｉｔに関するステータスを確かめるための余計なパケットを送受信させる必要がない（例えば、ポーリングにより、所定の周期で、ホスト装置１００および／または不揮発性記憶装置１１０の状態を確かめる必要がない）。
【００６８】
したがって、通信システム１では、余計なパケットの送受信を発生させることがなく、また、適切な割込処理を実現させつつ、高速データ転送を行うことができる。
なお、ホスト装置１００から不揮発性記憶装置１１０に対して送信されるＷａｉｔ通知パケットに対して、当該Ｗａｉｔ通知パケットに対するレスポンスパケットを、不揮発性記憶装置１１０からホスト装置１００に送信するようにしてもよい。また、ホスト装置１００から不揮発性記憶装置１１０に対して送信されるＷａｉｔ解除パケットに対して、当該Ｗａｉｔ解除パケットに対するレスポンスパケットを不揮発性記憶装置１１０からホスト装置１００に送信するようにしてもよい。この場合、Ｗａｉｔ解除パケットに対するレスポンスパケットが不揮発性記憶装置１１０からホスト装置１００に送信された後、通信モードを切り換えることが好ましい。
【００６９】
以上が、ユーザーが高速データＲｅａｄを指示したときの通信システム１の動作である。
（１．２．４：高速Ｗｒｉｔｅの動作（時間Ｔ経過による半二重／全二重モード切換））
次に、通信システム１における高速Ｗｒｉｔｅの動作（時間Ｔ経過により半二重／全二重モードを切り替える場合の動作）について、説明する。
図１２Ａは、通信システム１における高速Ｗｒｉｔｅの動作（時間Ｔ経過により半二重／全二重モードを切り替える場合の動作）を説明するためのタイミング図（タイミングチャート）である。
ユーザーが高速データＷｒｉｔｅをユーザーインターフェース部１３１に指示した場合、ユーザーインターフェース部１３１は、アプリケーション部１３２に高速データＷｒｉｔｅ指示を伝達する。
【００７０】
アプリケーション部１３２は、パケット生成部１４２に高速Ｗｒｉｔｅコマンドパケットを生成させる。高速Ｗｒｉｔｅコマンドには、書き込み先のアドレス、書き込みサイズが多重されているものとする。
ここで、パケット生成部１４２により生成される高速Ｗｒｉｔｅコマンドパケットについて、具体的に説明する。
高速Ｗｒｉｔｅコマンドパケットは、図１７のＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｄｄｒｅｓｓ”１７３２に、読み出し先のアドレスを格納し、“Ａｒｇｕｍｅｎｔ”１７２２の一部に読み出しサイズを格納することで生成される。
また、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケットでＷｒｉｔｅ要求を行うことを示すために、“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイト（図１８のバイト２）のビット６“Ｒ／Ｗ”は、“１”に設定される。
【００７１】
また、高速モードでＷｒｉｔｅを行うことを示すために、“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイト（図１８のバイト２）のビット７“ＤＰＬＸ”は、“１”（半二重モード）に設定される（“ＤＰＬＸ”を、“１”（半二重モード）に設定することで、通信システム１において、半二重モード（半二重モード）、すなわち、第２通信モードで通信を行うことを指示することができる）。
パケット生成部１４２により生成された高速Ｗｒｉｔｅコマンドパケットは、第１伝送路１２１経由でパケット解析部１６３に供給される（１２０２）。
パケット解析部１６３では、上記パケットが高速Ｗｒｉｔｅコマンドであることが解析され、それが不揮発性メモリ部読み書き制御部１７０に通知される。
不揮発性メモリ部読み書き制御部１７０は、不揮発性メモリ部１７１にデータを格納するための空き領域が存在することを確認する。不揮発性メモリ部読み書き制御部１７０は、不揮発性メモリ部１７１に空き領域が存在することを確認した場合、パケット生成部１４２に高速Ｗｒｉｔｅコマンドに対するレスポンスパケットを生成させる。このレスポンスパケットは、第２伝送路１２２経由でパケット解析部１４４に供給される（１２０３）。
【００７２】
そして、パケット解析部１４４では、不揮発性記憶装置１１０から送信されてきたパケットが解析され、当該パケットが高速Ｗｒｉｔｅコマンドに対するレスポンスパケットであることが確認される。
伝送路切換制御部１６２の切換条件検出部２６０は、パケット解析部１６３が上記レスポンスパケットを送信したことを検出し、第２伝送路１２２の入出力端子２６２を受信状態に設定する。
伝送路切換制御部１４３の切換条件検出部２４０は、パケット解析部１４４が上記レスポンスパケットを受信したことを検出し、第２伝送路１２２の入出力端子２４２を送信状態に設定する。
これにより、第２伝送路１２２は、ダウンリンクに設定され（１２０４）、通信システム１は、図２Ｃに示す半二重モードとなる。
【００７３】
その後、ホストインターフェース部１４０は、メモリ部１３３を介し、不揮発性メモリ部１７１に書き込むデータをパケット生成部１４２に供給し、パケット生成部１４２によりデータパケットが生成される。本実施形態においては、高速Ｗｒｉｔｅ時の第１伝送路１２１、第２伝送路１２２へのパケットの振り分け方は、高速Ｒｅａｄ時と同様とする（１２０５、１２０６）。
不揮発性記憶装置１１０に送信されたデータパケットは、伝送路切換制御部１６２を介してパケット解析部１６３に蓄積される。パケット解析部１６３により、これらのパケットは、データパケットであると解析されて、データ本体が不揮発性メモリ部読み書き制御部１７０を介して不揮発性メモリ部１７１に格納される。
伝送路切換制御部１４３の切換条件検出部２４０は、初期化時にＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”が設定されているので、パケット生成部１４２が４個のデータパケットを送信したことを検出し、第２伝送路１２２の入出力端子２４２を受信状態に設定する。
【００７４】
また、伝送路切換制御部１６２の切換条件検出部２６０は、初期化時にＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“４”が設定されているので、パケット解析部１６３が４個のデータパケットを受信したことを検出し、第２伝送路１２２の入出力端子２６２を送信状態に設定する。
これにより、第２伝送路１２２はアップリンクに設定され（１２０７）、通信システム１は、図２Ａに示す全二重モードとなる。
通信システム１において、半二重モードから全二重モードに切り換える条件の設定方法は、高速Ｒｅａｄ時と同様である。
図１２Ａ、Ｂにおいても、初期化コマンドのパラメータをＮ＝４としたときの、通信システム１におけるタイミング図の一例を示している。
【００７５】
また、図１９の（ｂ）では、Ｎ＝８としたときの、通信システム１におけるタイミング図の一例を示している。
以後、通信システム１では、高速Ｒｅａｄ時と同様に、第２伝送路１２２がアップリンクに設定されてから所定の時間Ｔ経過後、切換条件検出部２６０は、第２伝送路１２２の入出力端子２６２を再び受信状態に設定する。そして、切換条件検出部２４０は、第２伝送路１２２の入出力端子２４２を再び送信状態に設定する。このとき、切換条件検出部２４０および２６０は、それぞれ、クロックカウンタ１４５および１６５に対してクロック数をゼロクリアさせる。
これにより、第２伝送路１２２は、ダウンリンクに再設定され（１２０８）、通信システム１は、図２Ｂに示す半二重モードに戻る。
【００７６】
以後同様に、通信システム１では、４個のデータパケットの送受信を完了する毎に、第２伝送路１２２は、アップリンクに設定され（１２０９）、所定の時間Ｔが経過すると、半二重モードに戻る（１２１０）という制御が繰り返される。
ここで、第２伝送路１２２がアップリンクに設定されている間（１２０７〜１２０８、１２０９〜１２１０）に、不揮発性記憶装置１１０が第２伝送路１２２上にコマンドやメッセージ等を送信することで、ホスト装置１００に対して割り込み通知を伝送できる。
（１．２．５：高速Ｗｒｉｔｅの動作（Ｂｕｓｙ通知・解除による半二重／全二重モード切換））
次に、通信システム１において、Ｂｕｓｙ通知・解除により半二重／全二重モードを切り換える場合の高速Ｗｒｉｔｅ動作について、説明する。
【００７７】
図１２Ｂは、半二重モードによる通信中に、割り込み通知として、不揮発性記憶装置１１０がホスト装置１００にＢｕｓｙ通知・解除を伝送する場合のシーケンスを示している。
半二重モードにおいて、不揮発性メモリ部読み書き制御部１７０による不揮発性メモリ部１７１への書き込みが終了するまでデータの受信を一時停止させたい場合や、図示しないデータ受信用メモリの空き容量が不足した場合、不揮発性メモリ部読み書き制御部１７０は、パケット生成部１６４にＢｕｓｙ通知パケットを生成させる。そして、不揮発性メモリ部読み書き制御部１７０は、第２伝送路１２２がアップリンクに設定されている間に、Ｂｕｓｙ通知パケットがホスト装置１００に送信されるように制御する（１２１１）。
ホスト装置１００に送信されたＢｕｓｙ通知パケットは、パケット解析部１４４で解析される。このとき、実行中の高速Ｗｒｉｔｅコマンドは、一時停止され、通信システム１において、全二重モードの状態が保持される。この場合、図１２Ａの場合と異なり、通信システム１は、所定の時間Ｔが経過しても半二重モードへは切り換わらず、切換条件検出部２４０および２６０は、それぞれ、クロックカウンタ１４５および１６５に対して、クロック数をゼロクリアさせる。
【００７８】
その後、不揮発性メモリ部読み書き制御部１７０がデータ受信可能と判断すると、不揮発性メモリ部読み書き制御部１７０は、パケット生成部１６４にＢｕｓｙ解除パケットを生成させ、ホスト装置１００に送信させる（１２１２）。
このとき、切換条件検出部２６０は、パケット生成部１６４がＢｕｓｙ解除パケットを生成したことを検出し、第２伝送路１２２の入出力端子２６２を再び受信状態に設定する。
また、切換条件検出部２４０は、パケット解析部１４４がＢｕｓｙ解除パケットを解析したことを検出し、第２伝送路１２２の入出力端子２４２を再び送信状態に設定する。
これにより、第２伝送路１２２がダウンリンクに設定され、通信システム１は、半二重モードとなり、高速Ｗｒｉｔｅコマンドの実行が再開される。
【００７９】
このように、通信システム１では、不揮発性記憶装置１１０からホスト装置１００に対して、Ｂｕｓｙ通知パケットが送信された時点から、Ｂｕｓｙ解除パケットが送信される時点までの間、確実に全二重モードが維持され、かつ、Ｂｕｓｙに関するステータスを確かめるための余計なパケットを送受信させる必要がない（例えば、ポーリングにより、所定の周期で、ホスト装置１００および／または不揮発性記憶装置１１０の状態を確かめる必要がない）。
また、上記処理は、コマンドレベルでの処理、すなわち、ホストインターフェース部１４０およびメモリ部１３３による処理で実現させることができ、アプリケーション部１３２での処理が不要であるため、高速に処理を行うことができる。
したがって、通信システム１では、余計なパケットの送受信を発生させることがなく、また、適切な割込処理を実現させつつ、高速データ転送を行うことができる。
【００８０】
なお、不揮発性記憶装置１１０からホスト装置１００に対して送信されるＢｕｓｙ通知パケットに対して、当該Ｂｕｓｙ通知パケットに対するレスポンスパケットをホスト装置１００から不揮発性記憶装置１１０に送信するようにしてもよい。また、不揮発性記憶装置１１０からホスト装置１００に対して送信されるＢｕｓｙ解除パケットに対して、当該Ｂｕｓｙ解除パケットに対するレスポンスパケットをホスト装置１００から不揮発性記憶装置１１０に送信するようにしてもよい。この場合、Ｂｕｓｙ解除パケットに対するレスポンスパケットがホスト装置１００から不揮発性記憶装置１１０に送信された後、通信モードを切り換えることが好ましい。
以上が、ユーザーが高速データＷｒｉｔｅを指示したときの通信システム１の動作である。
【００８１】
以上説明したように、本実施形態の通信システム１では、２チャンネルの伝送路を同時に使用する半二重モードでデータを高速に伝送するとき、所定数のデータパケットの通信が完了した際に、一時的に１チャンネルの伝送路の通信方向を切り換える。これにより、通信システム１では、半二重モードでコマンドを実行中であっても、ホスト装置１００と不揮発性記憶装置１１０との間で、コマンドやメッセージ等を伝達することができる。この結果、通信システム１では、半二重モードでのデータ読み出し、または書き込みの最中であっても、ＷａｉｔやＢｕｓｙ等の割り込み要求に迅速に対応することが可能となる。
したがって、本実施形態の通信システム１では、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。また、通信システム１では、「Ｗａｉｔ」や「Ｂｕｓｙ」等の割り込み通知を伝送するための外部伝送路を１チャンネル追加する必要もないので、インターフェース装置の回路規模が増大し、コストアップを招くこともない。
【００８２】
一方、通信システム１において、それほど高速なデータ読み出しを必要としない場合は、通信システム１を全二重モードのままにしておき、データを読み出す、あるいは書き込むコマンドである通常Ｒｅａｄコマンドまたは通常Ｗｒｉｔｅコマンドを発行すればよい。
通常Ｒｅａｄ時に、ホスト装置１００がＷａｉｔ指示を出す場合は、初期化直後にダウンリンクに設定されている第１伝送路１２１上に任意のタイミングでＷａｉｔ通知パケットを送信し、さらに、Ｗａｉｔを解除するときも第１伝送路１２１上に任意のタイミングでＷａｉｔ解除パケットを送信すればよい。
通常Ｗｒｉｔｅ時も同様に、初期化直後にアップリンクに設定されている第２伝送路１２２上に任意のタイミングでＢｕｓｙ通知およびＢｕｓｙ解除パケットを送信すればよい。
【００８３】
なお、本実施形態では、通信システム１において、全二重モード時にデータパケットを送らないものとして説明しているが、全二重モード期間であっても第１伝送路１２１および第２伝送路１２２を用いてデータパケットを送受信することが可能である。
さらに、通信システム１において、モード切り換えのトリガとなる送受信データパケット数Ｎおよび所定の時間Ｔは、ホスト装置１００および不揮発性記憶装置１１０におけるバッファサイズ、処理性能などの条件を元に、適宜取り決めればよい。
≪パケット数Ｎの決定方法≫
例えば、パケット数Ｎの決定方法は、以下のようにすればよい。
ホスト装置１００と、不揮発性記憶装置１１０と、を備える通信システム１において、ホスト装置１のバッファサイズをＢｕｆ１［バイト］とし、不揮発性記憶装置１１０（スレーブ装置）のバッファサイズをＢｕｆ２［バイト］とし、ホスト装置１００と不揮発性記憶装置１１０（スレーブ装置）間で通信されるパケットのパケットサイズをＡ［バイト］としたとき、
（１）Ｂｕｆ１＞Ｂｕｆ２である場合、
Ｎ＝Ｉｎｔ（Ｂｕｆ２／Ａ）
（２）Ｂｕｆ１≦Ｂｕｆ２である場合、
Ｎ＝Ｉｎｔ（Ｂｕｆ１／Ａ）
により、パケット数Ｎを決定すればよい。なお、Ｉｎｔ（Ｘ）は、Ｘを超えない最大の整数値を表すものとする（Ｉｎｔ（Ｘ）は、ガウス記号による演算に相当する関数である）。
【００８４】
また、パケット数Ｎの決定方法は、ホスト装置１００および不揮発性記憶装置１１０（スレーブ装置）の処理性能に基づいてパケット数Ｎを決定する方法であってもよい。つまり、このパケット数Ｎを決定する方法では、パケット数Ｎを、バッファサイズの小さい装置を基準にして決定するので、通信システム１の通信性能を最大限に引き出すことが可能となる。
また、パケット数Ｎの決定方法は、ホスト装置１００および不揮発性記憶装置１１０（スレーブ装置）の処理速度性能に基づいてパケット数Ｎを決定する方法であってもよい。例えば、ホスト装置１００の処理速度、動作クロックがそれぞれＰ１、Ｃ１であり、不揮発性記憶装置１１０（スレーブ装置）の処理速度、動作クロックがそれぞれＰ２、Ｃ２であり、通信パケットのパケットサイズがＡである場合、Ｐ１、Ｐ２、Ｃ１、Ｃ２、およびＡの全部若しくは一部に基づいて、パケット数Ｎを決定するようにしてもよい。なお処理速度性能は、ホスト装置１００または不揮発性記憶装置１１０（スレーブ装置）に実装されているプロセッサ処理能力、同じくホスト装置１００または不揮発性記憶装置１１０（スレーブ装置）に実装されているＲＡＭやフラッシュメモリ等記録媒体への読み書き速度、外部との通信を行う外部通信路の伝送速度の全部若しくは一部から決まる。
【００８５】
また、上記では、モード切り換えのトリガとなる送受信データパケット数Ｎは、初期化コマンドのパラメータで予めホスト装置１００から不揮発性記憶装置１１０に対し通知する方法について説明した。すなわち、ホスト装置１００が、自身（ホスト装置１００）のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“Ｎ”を設定した上で、ホスト装置１００のパケット生成部１４２により、Ｉ／Ｏ  Ｒ／Ｗ  リクエストパケットを生成し、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に書き込みを行う（Ｗｒｉｔｅをする）要求とその書き込み値を“Ｎ”としたパケットを伝送し、不揮発性記憶装置１１０がこれを受信して、Ｉ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に“Ｎ”を設定する（書き込む）方法、について説明した。しかし、この方法に限定されることはなく、通信システム１において、初期化コマンドではなく、高速Ｒｅａｄコマンド、及び／又は高速Ｗｒｉｔｅコマンドに、モード切り換えのトリガとなる送受信データパケット数Ｎを格納するフィールドを定義して、高速Ｒｅａｄコマンド、及び／又は高速Ｗｒｉｔｅコマンドに含めて伝送するようにしてもよい。
【００８６】
この方法は、例えば、図１７のＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｒｇｕｍｅｎｔ”１７２２の先頭バイトに、図１８に示すビット３〜ビット０の“ＤＩＲ  Ｃｔｒｌ”フィールドを定義して、前記“ＤＩＲ  Ｃｔｒｌ”に、モード切り換えのトリガとなる送受信データパケット数Ｎを格納することで、実現することができる。
また、通信システム１において、ホスト装置１００のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”の値を、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｒｇｕｍｅｎｔ”に定義された前記“ＤＩＲ  Ｃｔｒｌ”に設定して、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２を伝送し、このＭｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２を受信した不揮発性記憶装置１１０が、Ｍｅｍｏｒｙ  Ｒ／Ｗ  リクエストパケット１７０２の“Ａｒｇｕｍｅｎｔ”に格納された前記“ＤＩＲ  Ｃｔｒｌ”の値を、不揮発性記憶装置１１０のＩ／Ｏ空間のアドレス３０(ｈ)“ＤＩＲ  Ｃ”に書き込むようにしてもよい。
【００８７】
これにより、通信システム１において、モード切り換えのトリガとなる送受信データパケット数Ｎを、初期化コマンドのパラメータで予めホスト装置１００から不揮発性記憶装置１１０に対し通知したときと、同様の動作が可能になる。
この方法によれば、Ｎ＝４の場合の高速Ｗｒｉｔｅは、図１５の（ａ）（Ｎ＝８の場合は図１５（ｂ））のシーケンスで実行することが可能になり、モード切り換えのトリガとなる送受信データパケット数Ｎを、初期化コマンドのパラメータで予め設定する図１９（ａ）（Ｎ＝８の場合は図１９（ｂ））では必要となる初期化コマンド１９０１の一部が不要になる。
同様に、Ｎ＝４の場合の高速Ｒｅａｄは、図１６の（ａ）（Ｎ＝８の場合は図１６（ｂ））のシーケンスで実行することが可能になり、モード切り換えのトリガとなる送受信データパケット数Ｎを、初期化コマンドのパラメータで予め設定する図２０（ａ）（Ｎ＝８の場合は図２０（ｂ））では必要となる初期化コマンド２００１の一部が不要になる。
【００８８】
≪変形例≫
また、本実施形態では、スレーブ装置として不揮発性メモリを有する不揮発性記憶装置を用いる通信システム１について説明したが、これに限定されることはない。例えば、図４に示すように、スレーブ装置を、スレーブインターフェース部１６０と、ネットワークインターフェース部４７０と、を備えるネットワークインターフェース装置４１０とすることで通信システム１Ａを構成するようにしてもよい。この場合においても、上記通信システム１と同様の効果を得ることが可能である。
通信システム１Ａにおいて、ネットワークインターフェース装置４１０は、リモート装置４８０とネットワーク通信路４８１を介して接続されている。また、ネットワークインターフェース部４７０は、ネットワーク通信路４８１を制御する機能と、スレーブインターフェース部１６０からネットワークを制御する機能とを有する。
【００８９】
図４に示すように、通信システム１Ａにおいて、ホスト装置１００が高速Ｒｅａｄコマンドを発行したとき、リモート装置４８０内の図示しないメモリ部から、ネットワーク通信路４８１、ネットワークインターフェース部４７０を介してパケット生成部１６４にデータが格納され、パケット化された上で半二重モードにてホスト装置１００に送信される。
また、通信システム１Ａにおいて、高速Ｗｒｉｔｅ時は、半二重モードにて、ホスト装置１００からデータパケットが送信され、パケット解析部１６３で取り出されたデータ本体は、ネットワークインターフェース部４７０、ネットワーク通信路４８１を介してリモート装置４８０内のメモリ部に格納される。
なお、ネットワーク通信路４８１は、有線ネットワーク、無線ネットワークいずれでも実現可能である。
【００９０】
以上により、通信システム１Ａにおいても、通信システム１と同様に、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
［第２実施形態］
＜２．１：通信システムの構成＞
図５は、本発明の第２実施形態に係る通信システム２の構成を示したブロック図である。
図５に示すように、通信システム２は、ホスト装置５００と、スレーブ装置としての不揮発性記憶装置５１０と、を備える。そして、ホスト装置５００と不揮発性記憶装置５１０とは、第１伝送路１２１、第２伝送路１２２、クロック伝送路１２３により接続されている。
【００９１】
ホスト装置５００は、少なくともユーザーインターフェース部１３１、アプリケーション部１３２、メモリ部１３３、およびホストインターフェース部５４０を備える。
ホストインターフェース部５４０は、クロック送信部１４１、パケット生成部１４２、伝送路切換制御部５４３、パケット解析部１４４を含む。ホストインターフェース部５４０は、クロックカウンタを有していない点が、第１実施形態に係るホストインターフェース部１４０とは異なる。
不揮発性記憶装置５１０は、少なくともスレーブインターフェース部５６０、不揮発性メモリ部読み書き制御部１７０および不揮発性メモリ部１７１を備える。
スレーブインターフェース部５６０は、クロック再生成部１６１、伝送路切換制御部５６２、パケット解析部１６３、パケット生成部１６４、クロックカウンタ１６５を備える。
【００９２】
なお、本実施形態において、第１実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図６Ａ〜Ｃは、ホストインターフェース部５４０およびスレーブインターフェース部５６０の構成図であり、特に、ホスト装置側の伝送路切換制御部５４３およびスレーブ装置側の伝送路切換制御部５６２の構成を詳細に示した図である。
図６Ａ〜Ｃに示すように、ホスト装置側の伝送路切換制御部５４３は、ホストインターフェース部５４０の切換条件検出部６４０と、第１伝送路１２１のホストインターフェース部５４０内の入出力端子６４１と、第２伝送路１２２のホストインターフェース部５４０内の入出力端子６４２と、を備える。
スレーブ装置側の伝送路切換制御部５６２は、スレーブインターフェース部５６０の切換条件検出部６６０と、第１伝送路１２１のスレーブインターフェース部５６０内の入出力端子６６１と、第２伝送路１２２のスレーブインターフェース部５６０内の入出力端子６６２と、を備える。
【００９３】
ホスト装置側の切換条件検出部６４０は、パケット生成部１４２、およびパケット解析部１４４の状態を監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部６４０は、切換条件の充足状況に応じて入出力端子６４１、６４２を、それぞれ、送信状態または受信状態に設定する。
同様に、切換条件検出部６６０は、パケット解析部１６３、パケット生成部１６４、クロックカウンタ１６５の状態を監視して切換条件の充足状況を検出する。そして、切換条件の充足状況に応じて入出力端子６６１、６６２を送信状態または受信状態に設定する。
＜２．２：通信システムの動作＞
図７Ａ、Ｂおよび図１３Ａ、Ｂは、第２実施形態における第１伝送路１２１および第２伝送路１２２上を伝送されるパケットを時系列に示したタイミング図（タイミングチャート）である。
【００９４】
以下、図５から図７Ａ、Ｂ、および図１３Ａ、Ｂを用いて、本実施形態に係る通信システム２の動作を、第１実施形態との相違点を中心に説明する。
（２．２．１：高速Ｒｅａｄの動作）
まず、図７Ａ、Ｂのタイミング図を参照しながら、ユーザーが高速データＲｅａｄをユーザーインターフェース部１３１に指示したときの動作を説明する。
第１実施形態と同様に、不揮発性記憶装置５１０がホスト装置５００に装着されたとき、通信システム２は、図６Ａに示す全二重モードとなる。通信システム２において、初期化コマンドパケットが送信（７０１）された後、高速Ｒｅａｄコマンドパケットが不揮発性記憶装置５１０に送信される（７０２）と、第１伝送路１２１がアップリンクに設定される（７０３）。この結果、通信システム２は、図６Ｂに示す半二重モードとなる。
【００９５】
伝送路切換制御部５６２の切換条件検出部６６０は、パケット生成部１６４が４個のデータパケットを送信したことを検出し、第１伝送路１２１の入出力端子６６１を受信状態に設定する。
また、伝送路切換制御部５４３の切換条件検出部６４０は、パケット解析部１４４が４個のデータパケットを受信したことを検出し、第１伝送路１２１の入出力端子６４１を送信状態に設定する。
これにより、第１伝送路１２１はダウンリンクに設定され（７０４）、通信システム２は、図６Ａに示す全二重モードとなる。
第１伝送路１２１がダウンリンクに設定されたとき、クロックカウンタ１６５は、クロック再生成部１６１から供給されるクロックを元にクロック数の計上を開始する。
【００９６】
スレーブインターフェース部５６０内の切換条件検出部６６０は、第１伝送路１２１がダウンリンクに切り換わった時点から所定の時間Ｔが経過したことを、クロックカウンタ１６５を監視することで検出する。このとき、切換条件検出部６６０は、パケット生成部１６４に対し切換通知パケットを生成するよう指示する。
生成された切換通知パケットは、アップリンクに設定されている第２伝送路１２２を介してホスト装置５００に送信される（７０５）。
伝送路切換制御部５６２の切換条件検出部６６０は、パケット生成部１６４が切換通知パケットを送信したことを検出し、第１伝送路１２１の入出力端子６６１を送信状態に設定する。
また、伝送路切換制御部５４３の切換条件検出部６４０は、パケット解析部１４４が切換通知パケットを受信したことを検出し、第１伝送路１２１の入出力端子６４１を受信状態に設定する。
【００９７】
これにより、第１伝送路１２１は、アップリンクに設定される（７０６）。
以上のように、切換通知パケットを用いることで、通信システム２では、ホストインターフェース部５４０のクロックカウンタを省略することができるとともに、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
また、図７Ｂに示すように、第１実施形態と同様に、通信システム２では、図６Ａに示す全二重モードのとき、ホスト装置５００は、不揮発性記憶装置５１０に対してＷａｉｔ等の割り込み要求を行う（７０７）ことができる。
（２．２．２：高速Ｗｒｉｔｅの動作）
次に、図１３Ａ、Ｂのタイミング図を参照しながら、ユーザーが高速データＷｒｉｔｅを指示したときの通信システム２の動作を、高速データＲｅａｄとの相違点を中心に説明する。
【００９８】
通信システム２において、初期化コマンドパケットが送信（１３０１）された後、高速Ｗｒｉｔｅコマンドパケットが不揮発性記憶装置５１０に送信され（１３０２）、不揮発性記憶装置５１０からホスト装置５００に対して高速Ｗｒｉｔｅコマンドに対するレスポンスパケットが返送される（１３０３）と、第２伝送路１２２がダウンリンクに設定される（１３０４）。この結果、通信システム２は、図６Ｃに示す半二重モードとなる。
伝送路切換制御部５４３の切換条件検出部６４０は、パケット生成部１４２が４個のデータパケットを送信したことを検出し、第２伝送路１２２の入出力端子６４２を受信状態に設定する。
また、伝送路切換制御部５６２の切換条件検出部６６０は、パケット解析部１６３が４個のデータパケットを受信したことを検出し、第２伝送路１２２の入出力端子６６２を送信状態に設定する。
【００９９】
これにより、第２伝送路１２２は、アップリンクに設定され（１３０５）、通信システム２は、図６Ａに示す全二重モードとなる。
通信システム２において、第２伝送路１２２がアップリンクに設定されたとき、クロックカウンタ１６５は、クロック再生成部１６１から供給されるクロックを元にクロック数の計上を開始する。
スレーブインターフェース部５６０内の切換条件検出部６６０は、第２伝送路１２２がアップリンクに切り換わった時点から所定の時間Ｔが経過したことを、クロックカウンタ１６５を監視することで検出する。このとき、切換条件検出部６６０は、パケット生成部１６４に対し切換通知パケットを生成するよう指示する。
生成された切換通知パケットは、アップリンクに設定されている第２伝送路１２２を介してホスト装置５００に送信される（１３０６）。
【０１００】
伝送路切換制御部５６２の切換条件検出部６６０は、パケット生成部１６４が切換通知パケットを送信したことを検出し、第２伝送路１２２の入出力端子６６２を受信状態に設定する。
また、伝送路切換制御部５４３の切換条件検出部６４０は、パケット解析部１４４が切換通知パケットを受信したことを検出し、第２伝送路１２２の入出力端子６４２を送信状態に設定する。
これにより、第２伝送路１２２は、ダウンリンクに設定される（１３０７）。
以上のように、切換通知パケットを用いることで、通信システム２では、ホストインターフェース部５４０のクロックカウンタを省略することができるとともに、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
【０１０１】
また、図１３Ｂに示すように、第１実施形態と同様、通信システム２では、図６Ａに示す全二重モードのとき、不揮発性記憶装置５１０は、ホスト装置５００に対してＢｕｓｙ等の割り込み要求を行う（１３０８）ことができる。
以上説明したように、本実施形態の通信システム２では、全二重モードから半二重モードの切り換えタイミングを、切換通知パケットにより不揮発性記憶装置５１０からホスト装置５００に通知することで、ホスト装置５００においてクロックカウントがなくても第１実施形態と同様の効果を得ることができる。
なお、ホスト装置５００がクロックカウンタを持ち、切換通知パケットをホスト装置５００から不揮発性記憶装置５１０へ通知することで、不揮発性記憶装置５１０がクロックカウンタを持たないようにしてもよい。
【０１０２】
本実施形態においても、全二重モード時にデータパケットを送らないものとして説明していたが、全二重モード期間であっても第１伝送路１２１および第２伝送路１２２を用いてデータパケットを送受信することが可能である。この場合は、所定の時間Ｔが経過してもデータパケット送信中であれば、当該データパケットの送信完了後に切換通知パケットを送信すればよい。これにより、全二重モード時のデータパケット送信を中断することなく、確実にデータ伝送を完了できる。
［第３実施形態］
＜３．１：通信システムの構成＞
図８は、本発明の第３実施形態に係る通信システム３の構成を示したブロック図である。
【０１０３】
図８に示すように、通信システム３は、ホスト装置８００と、不揮発性記憶装置８１０と、を備える。そして、ホスト装置８００と不揮発性記憶装置８１０とは、第１伝送路１２１、第２伝送路１２２、クロック伝送路１２３により接続されている。
ホスト装置８００は、少なくともユーザーインターフェース部１３１、アプリケーション部１３２、メモリ部１３３、およびホストインターフェース部８４０を備える。
ホストインターフェース部８４０は、クロック送信部１４１、パケット生成部１４２、伝送路切換制御部８４３、パケット解析部１４４を含む。ホストインターフェース部８４０は、クロックカウンタを有していない点が、第１実施形態に係るホストインターフェース部１４０とは異なる。
不揮発性記憶装置８１０は、少なくともスレーブインターフェース部８６０、不揮発性メモリ部読み書き制御部１７０および不揮発性メモリ部１７１を備える。
【０１０４】
スレーブインターフェース部８６０は、クロック再生成部１６１、伝送路切換制御部８６２、パケット解析部１６３、およびパケット生成部１６４を備える。スレーブインターフェース部８６０は、クロックカウンタを有していない点が、上記実施形態に係るスレーブインターフェース部１６０、５６０とは異なる。
つまり、通信システム３は、ホスト装置側およびスレーブ装置側の双方に、クロックカウンタを有していない点が、前述の実施形態に係る通信システム１、１Ａおよび２とは相違する。
なお、本実施形態において、前述の実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図９Ａ〜Ｃは、ホストインターフェース部８４０およびスレーブインターフェース部８６０の構成図であり、特に、ホスト装置側の伝送路切換制御部８４３およびスレーブ装置側の伝送路切換制御部８６２の構成を詳細に示した図である。
【０１０５】
図９Ａ〜Ｃに示すように、ホスト装置側の伝送路切換制御部８４３は、ホストインターフェース部８４０の切換条件検出部９４０と、第１伝送路１２１のホストインターフェース部８４０内の入出力端子９４１と、第２伝送路１２２のホストインターフェース部８４０内の入出力端子９４２と、を備える。
スレーブ装置側の伝送路切換制御部８６２は、スレーブインターフェース部８６０の切換条件検出部９６０と、第１伝送路１２１のスレーブインターフェース部８６０内の入出力端子９６１と、第２伝送路１２２のスレーブインターフェース部８６０内の入出力端子９６２と、を備える。
ホスト装置側の切換条件検出部９４０は、パケット生成部１４２、およびパケット解析部１４４の状態を監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部９４０は、切換条件の充足状況に応じて入出力端子９４１、９４２を、それぞれ、送信状態または受信状態に設定する。
【０１０６】
同様に、切換条件検出部９６０は、パケット解析部１６３、パケット生成部１６４の状態を監視して切換条件の充足状況を検出する。そして、切換条件の充足状況に応じて入出力端子９６１、９６２を送信状態または受信状態に設定する。
＜３．２：通信システムの動作＞
図１０Ａ、Ｂは、第３実施形態における第１伝送路１２１および第２伝送路１２２上を伝送されるパケットを時系列に示したタイミング図である。
以下、図８〜図１０Ａ、Ｂ、および図１４Ａ、Ｂを用いて、本実施形態に係る通信システム３の動作を、前述の実施形態との相違点を中心に説明する。
（３．２．１：高速Ｒｅａｄの動作）
まず、図１０Ａ、Ｂのタイミング図を参照しながら、ユーザーが高速データＲｅａｄをユーザーインターフェース部１３１に指示したときの動作を説明する。
【０１０７】
不揮発性記憶装置８１０がホスト装置８００に装着された後、初期化コマンドパケットが送信され（１００１）、第１伝送路１２１がアップリンクに設定（１００３）されて、通信システム３は、図９Ｂに示す半二重モードとなる。そして、通信システム３において、４個のデータパケットが送受信された後、第１伝送路１２１がダウンリンクに設定（１００４）されて、通信システム３は、図９Ａに示す全二重モードとなる。通信システム３における、ここまでの動作は、第１および第２実施形態と同様である。
第１伝送路１２１がダウンリンクに設定された時点、もしくはそれ以前の所定の時点を起点として、伝送路切換制御部８４３の切換条件検出部９４０は、パケット生成部１４２を監視し、ホスト装置８００から不揮発性記憶装置８１０に対して発行すべき命令があるか否かを検出する。
【０１０８】
ここで、発行すべき命令が存在しない場合、切換条件検出部９４０は、パケット生成部１４２に対して切換通知パケットの生成を指示する。そして、生成された切換通知パケットは、第１伝送路１２１経由で、不揮発性記憶装置８１０に送信される（１００５）。
伝送路切換制御部８４３の切換条件検出部９４０は、切換通知パケットがパケット生成部１４２より送信されたことを検出すると、第１伝送路１２１の入出力端子９４１を受信状態に設定する。
また、伝送路切換制御部８６２の切換条件検出部９６０は、切換通知パケットがパケット解析部１６３で受信されたことを検出すると、第１伝送路１２１の入出力端子９６１を送信状態に設定する。
これにより、第１伝送路１２１はアップリンクに設定され（１００６）、通信システム３は、図９Ｂに示す半二重モードとなる。
【０１０９】
また、図１０Ｂに示すように、第１伝送路１２１がダウンリンクに設定されたときに、伝送路切換制御部８４３の切換条件検出部９４０がパケット生成部１４２に発行すべきパケット（例えば、Ｗａｉｔ通知パケット）があることを検知した場合、パケット生成部１４２は、直ちに当該パケットを不揮発性記憶装置８１０に送信する（１００７）。
これにより、ホスト装置８００は、不揮発性記憶装置８１０に対して、割り込み要求を実行できる。
（３．２．２：高速Ｗｒｉｔｅの動作）
次に、図１４Ａ、Ｂのタイミング図を参照しながら、ユーザーが高速データＷｒｉｔｅを指示したときの通信システム３の動作を、高速データＲｅａｄとの相違点を中心に説明する。
【０１１０】
通信システム３において、初期化コマンドパケットが送信（１４０１）され、レスポンスパケットが返送（１４０３）され、さらに、第２伝送路１２２がダウンリンクに設定（１４０４）されて、通信システム３は、図９Ｃに示す半二重モードとなる。そして、４個のデータパケットの送受信を終えて、第２伝送路１２２がアップリンクに設定（１４０５）されて、通信システム３は、図９（ａ）に示す全二重モードとなる。
通信システム３における、以上の動作は、第１および第２実施形態と同様である。
通信システム３において、第２伝送路１２２がアップリンクに設定された時点、もしくはそれ以前の所定の時点を起点として、伝送路切換制御部８６２の切換条件検出部９６０は、パケット生成部１６４を監視し、不揮発性記憶装置８１０からホスト装置８００に対して発行すべき命令があるか否かを検出する。
【０１１１】
ここで、発行すべき命令が存在しない場合、切換条件検出部９６０は、パケット生成部１６４に対して切換通知パケットの生成を指示する。切換通知パケットは、第２伝送路１２２経由で、ホスト装置８００に送信される（１４０６）。伝送路切換制御部８６２の切換条件検出部９６０は、切換通知パケットがパケット生成部１６４より送信されたことを検出すると、第２伝送路１２２の入出力端子９６２を受信状態に設定する。また、伝送路切換制御部８４３の切換条件検出部９４０は、切換通知パケットがパケット解析部１４４で受信されたことを検出すると、第２伝送路１２２の入出力端子９４２を送信状態に設定する。
これにより、第２伝送路１２２は、ダウンリンクに設定され（１４０７）、通信システム３は、図９Ｃに示す半二重モードとなる。
【０１１２】
また、図１４Ｂに示すように、第２伝送路１２２がアップリンクに設定されたときに、伝送路切換制御部８６２の切換条件検出部９６０がパケット生成部１６４に発行すべきパケット（例えば、Ｂｕｓｙ通知パケット）があることを検知した場合、パケット生成部１６４は、直ちに当該パケットをホスト装置８００に送信する（１４０８）。
これにより不揮発性記憶装置８１０は、ホスト装置８００に対して、割り込み要求を実行できる。
以上説明したように、本実施形態に係る通信システム３では、全二重モードから半二重モードの切り換えタイミングを、高速Ｒｅａｄ時はホスト装置８００から不揮発性記憶装置８１０へ、高速Ｗｒｉｔｅ時は不揮発性記憶装置８１０からホスト装置８００へ、切り換え通知パケットを送信する。したがって、通信システム３では、全二重モードから半二重モードへの切り換えの際にクロックカウンタによる計時が不要となる。
【０１１３】
さらに、本実施形態の通信システム３では、ＷａｉｔやＢｕｓｙなどの割り込み要求がなければ、直ちに切り換え通知パケットを送信し半二重モードでのデータパケット伝送を再開することで、伝送路の使用効率をより高めることができる。
［第４実施形態］
次に、第４実施形態について、図２２〜図２８を参照しながら説明する。
なお、上記実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
＜４．１：通信システム構成＞
図２２は、第４実施形態に係る通信システム４の構成を示したブロック図である。
図２２に示すように通信システム４は、ホスト装置１００Ａとスレーブ装置の一種である不揮発性記憶装置１１０Ａとを備える。そして、ホスト装置１００Ａと不揮発性記憶装置１１０Ａとは、第１伝送路（第１高速バス）１２１、第２伝送路（第２高速バス）１２２、第３伝送路（低速バス）１２３、クロック伝送路（クロックバス）１２４により接続されている。
【０１１４】
ホスト装置１００Ａは、少なくともユーザーインターフェース部１３１、アプリケーション部１３２、メモリ部１３３、ホストインターフェース部１４０Ａを備える。
ホストインターフェース部１４０は、クロック送信部１４１Ａ、パケット生成部１４２Ａ、伝送路（バス）切換制御部１４３Ａ、パケット解析部１４４Ａ、信号生成部１４５Ａ、信号解析部１４６Ａを備える。
不揮発性記憶装置１１０は、スレーブインターフェース部１６０Ａ、不揮発性メモリ読み書き制御部１７０および不揮発性メモリ１７１を備える。
スレーブインターフェース部１６０Ａは、クロック再生成部１６１Ａ、伝送路（バス）切換制御部１６２Ａ、パケット解析部１６３Ａ、パケット生成部１６４Ａ、信号解析部１６５Ａ、信号生成部１６６Ａを備える。
【０１１５】
なお、パケット生成部１４２Ａおよび１６４Ａ、パケット解析部１４４Ａおよび１６３Ａは、適当な大きさのバッファを備えているものとする。
なお一般的に、高速バスには差動伝送方式が用いられ、低速バスにはシングルエンド伝送方式が用いられる。
＜４．２：通信システムの動作＞
以下、本実施形態における通信システム４の動作について、図面を用いて説明する。
（４．２．１：起動〜初期化〜定常状態）
不揮発性記憶装置１１０Ａが、ホスト装置１００Ａに装着されたとき、ホストインターフェース部１４０Ａがアクティブになる。また、ホストインターフェース部１４０Ａのクロック送信部１４１Ａからクロックバス１２４を介してスレーブインターフェース部１６０Ａのクロック再生成部１６１Ａにクロックが供給され、スレーブインターフェース部１６０Ａがアクティブになる。このとき、クロック再生成部１６１Ａで生成されるクロックは、不揮発性記憶装置１１０Ａ全体に供給される。
【０１１６】
図２３は、ホストインターフェース部１４０Ａおよびスレーブインターフェース部１６０Ａの構成図であり、特に、ホスト装置側の伝送路（バス）切換制御部１４３Ａおよびスレーブ装置側の伝送路（バス）切換制御部１６２Ａの構成を詳細に示した図であり、ホストインターフェース部１４０Ａおよびスレーブインターフェース部１６０Ａがアクティブになった直後の設定について説明するための図である。
図２３に示すように、ホスト装置側の伝送路（バス）切換制御部１４３Ａは、切換条件検出部２４０Ａと、第１高速バス１２１の入出力端子２４１Ａと、第２高速バス１２２の入出力端子２４２Ａと、低速バス１２３の入出力端子２４３Ａと、を備える。
また、図２３に示すように、スレーブ装置側の伝送路（バス）切換制御部１６２Ａは、切換条件検出部２６０Ａと、第１高速バス１２１の入出力端子２６１Ａと、第２高速バス１２２の入出力端子２６２Ａと、低速バス１２３の入出力端子２６３Ａと、を備える。
【０１１７】
ホスト装置側の切換条件検出部２４０Ａは、パケット生成部１４２Ａ、パケット解析部１４４Ａが送受信したパケットを監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部２４０Ａは、切換条件の充足状況に応じて入出力端子２４１Ａ、２４２Ａ、２４３Ａを、それぞれ、送信状態または受信状態に設定する。
同様に、スレーブ装置側の切換条件検出部２６０は、パケット解析部１６３Ａ、パケット生成部１６４Ａが送受信したパケットを監視して切換条件が満たされているか否かを検出する。そして、切換条件の充足状況に応じて入出力端子２６１Ａ、２６２Ａ、２６３Ａを、それぞれ、送信状態または受信状態に設定する。
図２３では、第１高速バス１２１のホストインターフェース部１４０Ａ側の入出力端子２４１Ａは、送信状態（Ｔ）に設定されており、スレーブインターフェース部１６０Ａ側の入出力端子２６１Ａは、受信状態（Ｒ）に設定されている。また、第２高速バス１２２のホストインターフェース部１４０Ａ側の入出力端子２４２Ａは、受信状態（Ｒ）に設定されており、スレーブインターフェース部１６０Ａ側の入出力端子２６２Ａは、送信状態（Ｔ）に設定されている。
【０１１８】
このとき、第１高速バス１２１の通信方向はダウンリンクに設定され、第２高速バス１２２の通信方向はアップリンクに設定されることになる。図２３では、第１高速バス１２１および第２高速バス１２２の向きが異なるので、通信システム４は、双方からデータを同時に送信できる全二重モードになっている。通信システム４において、全二重モードでは、低速バス１２３のホストインターフェース部１４０Ａ側の入出力端子２４３Ａを受信状態（Ｒ）に設定し、スレーブインターフェース部１６０Ａ側の入出力端子２６３Ａを受信状態（Ｒ）に設定する。このとき、通信システム４では、低速バス１２３は、通信不可に設定されることになる。
この状態で、ホスト装置１００Ａは、初期化コマンドパケットを第１高速バス１２１経由で不揮発性記憶装置１１０Ａのパケット解析部１６３Ａに供給する。パケット解析部１６３Ａでは、上記パケットが初期化コマンドであることが解析され、必要な初期化が実施される。初期化完了後、通信システム４は、定常状態（全二重モード）になる。
【０１１９】
（４．２．２：高速Ｒｅａｄの動作）
図２４は、通信システム４において、ホスト装置１００Ａより高速Ｒｅａｄコマンドが発行されたときの第１高速バス１２１、第２高速バス１２２、および低速バス１２３上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
通信システム４において、定常状態で、ユーザーは、高速データＲｅａｄをホスト装置１００Ａのユーザーインターフェース部１３１に指示することができる。このとき、ユーザーインターフェース部１３１は、アプリケーション部１３２に高速データＲｅａｄ指示を伝達する。アプリケーション部１３２は、メモリ部１３３に読み出すデータの格納領域が存在することを確認した後、パケット生成部１４２に高速Ｒｅａｄコマンドパケットを生成させる。高速Ｒｅａｄコマンドには、読み出し先のアドレス、読み出しサイズが多重されているものとする。
【０１２０】
高速Ｒｅａｄコマンドパケットは、第１高速バス１２１経由で不揮発性記憶装置１１０Ａのパケット解析部１６３Ａに供給される（３０１）。パケット解析部１６３では、上記パケットが高速Ｒｅａｄコマンドであることが解析される。
ホスト装置１００Ａのバス切換制御部１４３Ａの切換条件検出部２４０Ａは、パケット生成部１４２Ａが高速Ｒｅａｄコマンドパケットを送信したことを検出し、第１高速バス１２１の入出力端子２４１Ａを受信状態に設定する。また、不揮発性記憶装置１１０Ａのバス切換制御部１６２Ａの切換条件検出部２６０Ａは、パケット解析部１６３Ａが高速Ｒｅａｄコマンドパケットを受信したことを検出し、第１高速バス１２１の入出力端子２６１Ａを送信状態に設定する。
これにより、通信システム４において、第１高速バス１２１はアップリンクに設定される（３０２）。さらに、ホスト装置１００Ａのバス切換制御部１４３Ａの切換条件検出部２４０Ａは、低速バス１２３の入出力端子２４３Ａを送信状態に設定する。
【０１２１】
これにより、低速バス１２３はダウンリンクに設定される（３０３）。
この結果、通信システム４は、半二重Ｒｅａｄモードとなり、このときのバス切換制御部１４３Ａおよび１６２Ａによる設定は、図２５に示すようになる。
通信システム４では、半二重Ｒｅａｄモードに切り換わった後、スレーブインターフェース部１６０Ａは、不揮発性メモリ読み書き制御部１７０を介し、高速Ｒｅａｄコマンドパケットに多重されたアドレスに対応する不揮発性メモリ１７１上の領域から、同じくコマンドに多重された読み出しサイズだけデータを順次取得し、取得したデータをパケット生成部１６４Ａに供給する。そして、不揮発性記憶装置１１０Ａのパケット生成部１６４Ａは、パケットの種別等を示したヘッダと、不揮発性メモリ読み書き制御部１７０により読み出されたデータを適当なサイズに分割して生成されるボディと、からデータパケットを生成する。
【０１２２】
次に、パケット生成部１６４Ａは、生成したデータパケットを第１高速バス１２１および第２高速バス１２２に振り分けながら、不揮発性記憶装置１１０Ａの伝送路（バス）切換制御部１６２Ａを介してホスト装置１００Ａに送信する。本実施形態では、１番目のデータパケットＤＡＴＡ（１）を第１高速バス１２１に、２番目のデータパケットＤＡＴＡ（２）を第２高速バス１２２に振り分けて送信する（３０４）。
ホスト装置１００Ａに送信された上記ＤＡＴＡ（１）、ＤＡＴＡ（２）は、ホスト装置１００Ａの伝送路（バス）切換制御部１４３Ａを介して、パケット解析部１４４Ａに蓄積される。パケット解析部１４４Ａでは、これらのパケットがデータパケットと解析され、ヘッダを除いたボディ、すなわちデータ本体が抽出され、抽出されたデータ本体がメモリ部１３３に格納される。
【０１２３】
以下、順次、３番目のデータパケットＤＡＴＡ（３）と４番目のデータパケットＤＡＴＡ（４）、５番目のデータパケットＤＡＴＡ（５）と６番目のデータパケットＤＡＴＡ（６）についても同様に、不揮発性記憶装置１１０Ａからホスト装置１００Ａに送信される（３０５、３０６）。
２ｋ−１番目のデータパケットＤＡＴＡ（２ｋ−１）と２ｋ番目のデータパケットＤＡＴＡ（２ｋ）の転送中（３０７）、ユーザーが高速Ｒｅａｄを中止するようホスト装置１００Ａのユーザーインターフェース部１３１に指示したとき、ユーザーインターフェース部１３１は、アプリケーション部１３２を介してホストインターフェース部１４０Ａの信号生成部１４５Ａに上記指示を伝達する。
信号生成部１４５Ａは、所定の長さのパルスを生成し、ダウンリンクに設定されている低速バス１２３経由で、スレーブインターフェース部１６０Ａに上記パルスを送信する（３０８）。
【０１２４】
信号生成部１４５Ａにより生成された上記パルスは、スレーブインターフェース部１６０Ａの信号解析部１６５Ａに供給される。
信号解析部１６５Ａは、上記パルスを受信したとき、「高速Ｒｅａｄ中止」を指示されていると解析（判断）し、不揮発性メモリ読み書き制御部１７０に不揮発性メモリ１７１からのデータ取得を中止するよう指示する。同時に、信号解析部１６５Ａは、パケット生成部１６４Ａに対してコマンド中止受諾パケットを生成するよう指示する。
パケット生成部１６４Ａにより生成されたコマンド中止受諾パケットは、アップリンクに設定されている第２高速バス１２２を介してホスト装置１００Ａに送信される（３０９）。
伝送路（バス）切換制御部１６２Ａの切換条件検出部２６０Ａは、パケット生成部１６４Ａがコマンド中止受諾パケットを送信したことを検出し、第１高速バス１２１の入出力端子２６１を受信状態に設定する。
【０１２５】
また、ホスト装置１００Ａの伝送路（バス）切換制御部１４３Ａの切換条件検出部２４０Ａは、パケット解析部１４４Ａがコマンド中止受諾パケットを受信したことを検出し、第１高速バス１２１の入出力端子２４１Ａを送信状態に設定する。これにより、第１高速バス１２１は、ダウンリンクに設定される（３１０）。
さらに、切換条件検出部２４０Ａは、低速バス１２３の入出力端子２４３Ａを受信状態に設定する。これにより、低速バス１２３は通信不可に設定される（３１１）。
この結果、通信システム４は、全二重モード（定常状態）となり、伝送路（バス）切換制御部１４３Ａおよび１６２Ａによる設定は、図２３に示すようになる。
（４．２．３：高速Ｗｒｉｔｅの動作）
図２６は、通信システム４において、ホスト装置１００Ａより高速Ｗｒｉｔｅコマンドが発行されたときの第１高速バス１２１、第２高速バス１２２、および低速バス１２３上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
【０１２６】
通信システム４において、定常状態では、ユーザーは、高速データＷｒｉｔｅをホスト装置１００Ａのユーザーインターフェース部１３１に指示することができる。このときユーザーインターフェース部１３１はアプリケーション部１３２に高速データＷｒｉｔｅ指示を伝達する。
アプリケーション部１３２は、不揮発性メモリ１７１に書き込むべきデータがメモリ部１３３に保持されていることを確認した後、ホスト装置１００Ａのパケット生成部１４２Ａに高速Ｗｒｉｔｅコマンドパケットを生成させる。高速Ｗｒｉｔｅコマンドには、書き込み先のアドレス、書き込みサイズが多重されているものとする。
高速Ｗｒｉｔｅコマンドパケットは、第１高速バス１２１経由で、不揮発性記憶装置１１０Ａのパケット解析部１６３Ａに供給される（５０１）。パケット解析部１６３Ａでは、上記パケットが高速Ｗｒｉｔｅコマンドであることが解析される。
【０１２７】
不揮発性記憶装置１１０Ａにて、高速Ｗｒｉｔｅが可能であれば、パケット生成部１６４Ａは、コマンド受諾レスポンスパケットを生成し、生成したコマンド受諾レスポンスパケットをホスト装置１００Ａに送信する（５０２）。
不揮発性記憶装置１１０Ａでは、伝送路（バス）切換制御部１６２Ａの切換条件検出部２６０Ａは、パケット生成部１６４Ａがコマンド受諾レスポンスパケットを送信したことを検出し、第２高速バス１２２の入出力端子２６２Ａを受信状態に設定する。
また、ホスト装置１００Ａでは、伝送路（バス）切換制御部１４３Ａの切換条件検出部２４０Ａは、パケット解析部１４４Ａがコマンド受諾レスポンスパケットを受信したことを検出し、第２高速バス１２２の入出力端子２４２Ａを送信状態に設定する。これにより、第２高速バス１２２はダウンリンクに設定される（５０３）。
【０１２８】
さらに、不揮発性記憶装置１１０Ａでは、伝送路（バス）切換制御部１６２Ａの切換条件検出部２６０Ａは、低速バス１２３の入出力端子２６３Ａを送信状態に設定する。これにより、低速バス１２３はアップリンクに設定される（５０４）。
この結果、通信システム４は、半二重Ｗｒｉｔｅモードとなり、このときの伝送路（バス）切換制御部１４３Ａおよび１６２Ａによる設定は、図２７に示すようになる。
通信システム４において、半二重Ｗｒｉｔｅモードに切り換わった後、ホストインターフェース部１４０Ａは、メモリ部１３３に保持されているデータをパケット生成部１４２Ａに供給する。
パケット生成部１４２Ａは、パケットの種別等を示したヘッダと、不揮発性記憶装置１１０Ａに書き込むデータを適当なサイズに分割して生成されるボディと、からデータパケットを生成する。
【０１２９】
次に、パケット生成部１４２Ａは、生成したデータパケットを第１高速バス１２１および第２高速バス１２２に振り分けながら、伝送路（バス）切換制御部１４３Ａを介して不揮発性記憶装置１１０Ａに送信する。本実施形態の通信システム４では、１番目のデータパケットＤＡＴＡ（１）を第１高速バス１２１、２番目のデータパケットＤＡＴＡ（２）を第２高速バス１２２に振り分けて送信する（５０５）。
ホスト装置１００Ａから不揮発性記憶装置１１０Ａに送信された上記ＤＡＴＡ（１）、ＤＡＴＡ（２）は、不揮発性記憶装置１１０Ａの伝送路（バス）切換制御部１６２Ａを介して、パケット解析部１６３Ａに蓄積される。パケット解析部１６３Ａでは、これらのパケットは、データパケットであると解析（判定）され、ヘッダを除いたボディ、すなわちデータ本体が、不揮発性メモリ読み書き制御部１７０に供給（出力）される。不揮発性メモリ読み書き制御部１７０は、不揮発性メモリ１７１に対して、高速Ｗｒｉｔｅコマンドパケットに多重されたアドレスに対応する不揮発性メモリ１７１上の領域に、同じく高速Ｗｒｉｔｅコマンドに多重された書き込みサイズに達するまでデータを書き込むよう制御する。
【０１３０】
以下、３番目のデータパケットＤＡＴＡ（３）と４番目のデータパケットＤＡＴＡ（４）についても同様に、ホスト装置１００Ａから不揮発性記憶装置１１０Ａに送信される（５０６）。
不揮発性記憶装置１１０Ａのパケット解析部１６３Ａに適当なサイズのバッファを備えていることは前述したが、通常、第１高速バス１２１もしくは第２高速バス１２２上でのデータ転送速度より、不揮発性メモリ１７１への書き込み速度の方が遅いため、不揮発性記憶装置１１０Ａがパケットを間断なく受信し続けると、不揮発性記憶装置１１０Ａのパケット解析部１６３Ａ内のバッファ残量がなくなり、受信したデータがオーバーフローする恐れがある。
図２６に示す場合において、不揮発性記憶装置１１０Ａにおいて、ＤＡＴＡ（３）およびＤＡＴＡ（４）を受信し、バッファ残量が所定値以下になると判明したと仮定する。この場合、不揮発性記憶装置１１０Ａのパケット解析部１６３Ａは、ホスト装置１００Ａからのデータ転送を中断すべく、スレーブインターフェース部１６０Ａ内の信号生成部１６６Ａにその旨の指示を伝達する。
【０１３１】
信号生成部１６６Ａは、所定の長さのパルスを生成し、アップリンクに設定されている低速バス１２３経由で、ホスト装置１００Ａのホストインターフェース部１４０Ａに上記パルスを送信する（５０７）。
信号生成部１６６Ａにより生成された上記パルスは、ホストインターフェース部１４０Ａの信号解析部１４６Ａに供給される。
信号解析部１４６Ａは、上記パルスを受信したとき、「高速Ｗｒｉｔｅ中断」を指示されていると解析（判断）し、パケット生成部１４２Ａに対して、データ送信を中断するよう指示する。
不揮発性記憶装置１１０Ａにおいて、不揮発性記憶装置１１０Ａがホスト装置１００Ａから受信したデータの不揮発性メモリ１７１への書き込みが進み、パケット解析部１６３Ａ内のバッファ残量が所定値以上になったと判明したとき、パケット解析部１６３Ａは、ホスト装置１００Ａからのデータ転送を再開すべく、スレーブインターフェース部１６０Ａ内の信号生成部１６６Ａにその旨の指示を伝達する。
【０１３２】
不揮発性記憶装置１１０Ａの信号生成部１６６Ａは、所定の長さのパルスを生成し、アップリンクに設定されている低速バス１２３経由でホストインターフェース部１４０Ａに上記パルスを送信する（５０８）。
信号生成部１６６Ａにより生成された上記パルスは、ホストインターフェース部１４０Ａの信号解析部１４６Ａに供給される。
ホスト装置１００Ａの信号解析部１４６Ａは、上記パルスを受信したとき、高速Ｗｒｉｔｅ再開を指示されていると解析（判断）し、パケット生成部１４２Ａに対して、不揮発性記憶装置１１０Ａに対するデータ送信を再開するよう指示する。
その結果、５番目のデータパケットＤＡＴＡ（５）と６番目のデータパケットＤＡＴＡ（６）とが、ホスト装置１００Ａから不揮発性記憶装置１１０に送信される（５０９）。
【０１３３】
通信システム４において、２ｋ−１番目のデータパケットＤＡＴＡ（２ｋ−１）と２ｋ番目のデータパケットＤＡＴＡ（２ｋ）との伝送により、伝送データサイズが、高速Ｗｒｉｔｅコマンドに多重された書き込みサイズに達する場合（５１０）、ホスト装置１００Ａの伝送路（バス）切換制御部１４３Ａの切換条件検出部２４０Ａは、パケット生成部１４２ＡがＤＡＴＡ（２ｋ）を送信したことを検出し、第２高速バス１２２の入出力端子２４２Ａを受信状態に設定する。
また、不揮発性記憶装置１１０Ａの伝送路（バス）切換制御部１６２Ａの切換条件検出部２６０Ａは、パケット解析部１６３ＡがＤＡＴＡ（２ｋ）を受信したことを検出し、第２高速バス１２２の入出力端子２６２Ａを送信状態に設定する。これにより、通信システム４において、第２高速バス１２２はアップリンクに設定される（５１１）。
【０１３４】
さらに、不揮発性記憶装置１１０Ａの切換条件検出部２６０Ａは、低速バス１２３の入出力端子２６３Ａを受信状態に設定する。これにより、低速バス１２３は通信不可に設定される（５１２）。
この結果、通信システム４は、全二重モード（定常状態）となり、伝送路（バス）切換制御部１４３および１６２による設定は、図２３に示すようになる。
以上説明したように、通信システム４では、２本の高速バスを同時に使用してデータを高速に読み出す半二重Ｒｅａｄモードの場合、低速バスをアップリンクに設定し、ホスト装置１００Ａからパルス信号を送信することで、Ｒｅａｄを中止させることができる。
また、通信システム４では、２本の高速バスを同時に使用してデータを高速に書き込む半二重Ｗｒｉｔｅモードの場合、低速バスをダウンリンクに設定し、スレーブ装置（不揮発性記憶装置）１１０Ａからパルス信号をホスト装置１００Ａに送信することで、ホスト装置１００Ａに対してデータ送信の可否を通知することができる。
【０１３５】
なお、本実施形態においては、スレーブ装置（不揮発性記憶装置）１１０Ａからホスト装置１００Ａに対する通知は、データ伝送中は「書き込み中断」を意味するものとし、書き込み中断中は「データ伝送再開」を意味するものとしたが、これに限定されることはなく、例えば、通知は、単なる割り込みとし、ホスト装置１００Ａは、書き込み中断中に高速バスを用いてスレーブ装置（不揮発性記憶装置）１１０Ａに要因を問い合わせる構成としてもよい。
また、通信システム４において、定常状態である全二重モードでのデータＲｅａｄもしくはデータＷｒｉｔｅも可能である。たとえば、通信システム４が、図２３に示される状態に設定されているとすると、データＲｅａｄの場合、アップリンクに設定されている第２高速バス１２２はデータ伝送に使用されるので、第１高速バス１２１を使用してＲｅａｄ中止指示を行うことができる。
【０１３６】
また、データＷｒｉｔｅの場合、ダウンリンクに設定されている第１高速バス１２１はデータ伝送に使用されるので、第２高速バス１２２を使用してデータ書き込み可否の通知を行うことができる。
ところで、本実施形態の通信システム４では、低速バス１２３に所定の長さのパルスを伝送するとしたが、これに限定されることはなく、例えば、低速バス１２３に所定の長さのビットパターンを伝送するようにしてもよい。この場合、各ビットパターンに複数種類の指示を割り当てることができ、より複雑な指示を行うことも可能である。
また、本実施形態の通信システム４では、スレーブ装置が、不揮発性メモリを有する不揮発性記憶装置１１０Ａである場合について説明したが、これに限定されることはなく、例えば、図２８に示すようなスレーブインターフェース部１６０Ａ、ネットワークインターフェース部７７０を備えるネットワークインターフェース装置７１０Ａにおいても同様の効果を得ることが可能である。
【０１３７】
ネットワークインターフェース装置７１０Ａは、リモート装置７８０とネットワーク通信路７８１を介して接続されている。また、ネットワークインターフェース部７７０は、ネットワーク通信路７８１を制御する機能と、スレーブインターフェース部１６０Ａからネットワークを制御する機能と、を有する。
図２８において、ホスト装置１００Ａが高速Ｒｅａｄコマンドを発行したとき、リモート装置７８０内のメモリ（図示せず）から、ネットワーク通信路７８１、ネットワークインターフェース部７７０を介して、ネットワークインターフェース装置７１０Ａのパケット生成部１６４Ａに格納されたデータは、パケット化された上で、半二重Ｒｅａｄモードにて、ネットワークインターフェース装置７１０Ａからホスト装置１００Ａに送信される。
【０１３８】
同様に、ホスト装置１００Ａが高速Ｗｒｉｔｅコマンドを発行したとき、ホスト装置１００Ａよりネットワークインターフェース装置７１０Ａに送信されたデータパケットが半二重Ｗｒｉｔｅモードにてパケット解析部１６３Ａに送信され、ボディのみを取り出してネットワークインターフェース部７７０に供給される。ネットワークインターフェース部７７０に供給されたデータは、ネットワーク通信路７８１を介して、リモート装置７８０内のメモリ（図示せず）に書き込まれる。
通常、第１高速バス１２１もしくは第２高速バス１２２のデータ転送速度は、ネットワーク通信路７８１の速度より速いので、本実施形態にて説明したデータ転送中断、再開の制御が必要となる。
なお、ネットワーク通信路７８１は、有線ネットワーク、無線ネットワークいずれでも実現可能である。
【０１３９】
［第５実施形態］
図２９は、本発明の第５実施形態において、ホスト装置より高速Ｗｒｉｔｅコマンドが発行されたときの第１高速バス１２１、第２高速バス１２２、および低速バス１２３上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
なお、本実施形態の通信システムは、第４実施形態の通信システム４と同様の構成により実現される。
本実施形態において、第４実施形態と異なる点は、以下の点である。すなわち、本実施形態における高速Ｗｒｉｔｅ時には、不揮発性記憶装置１１０Ａが書き込み不可の場合、低速バス１２３を「ＨＩＧＨ」に設定し、それ以外の場合、低速バス１２３を「ＬＯＷ」に設定する、とする点が、第４実施形態と異なる。
【０１４０】
つまり、図２９に示すように、ＤＡＴＡ（３）およびＤＡＴＡ（４）を受信するとバッファ残量が所定値以下になると判明したとき（８０１）、スレーブ装置のパケット解析部１６３Ａは、スレーブインターフェース部１６０Ａ内の信号生成部１６６Ａに、低速バス１２３を「ＨＩＧＨ」にするよう指示する（８０２）。
ホスト装置のホストインターフェース部１４０Ａの信号解析部１４６Ａは、低速バス１２３が「ＨＩＧＨ」であることを検出し、パケット生成部１４２Ａに対して、データ送信を中断するよう指示する。
また、スレーブ装置のパケット解析部１６３Ａは、バッファ残量が所定値以上になり、データ受信が再開できると判明したとき、スレーブインターフェース部１６０Ａ内の信号生成部１６６Ａに、低速バス１２３を「ＬＯＷ」に設定するよう指示する（８０３）。これにより、ＤＡＴＡ（５）およびＤＡＴＡ（６）の伝送が開始される（８０４）。
【０１４１】
以上、本実施形態によれば、ホスト装置のホストインターフェース部１４０Ａは、低速バス１２３が「ＨＩＧＨ」であるか「ＬＯＷ」であるかを検出するのみで、不揮発性記憶装置１１０Ａが書き込み可能であるか否かを検出することができる。このため、本実施形態に係る通信システムにおいて、上記判定のための回路をより小さくすることができる。
同様に、高速Ｒｅａｄの場合、ホスト装置１００Ａが低速バス１２３を「ＬＯＷ」から「ＨＩＧＨ」にして、不揮発性記憶装置１１０Ａにデータ転送中止を指示する構成が可能である。
なお、本実施形態において、全二重モードは低速バスを通信不可状態に設定していたが、これに限定されることはなく、たとえば、全二重モードにおいて低速バスをダウンリンクに設定してホスト装置からスレーブ装置に指示が伝送できるようにしても構わない。また、２本の高速バスを介してホスト装置とスレーブ装置がネゴシエーションを行って、適宜低速バスの方向を切り換える構成としてもよい。
【０１４２】
［他の実施形態］
なお、上記で説明した本発明のすべての実施形態において、スレーブ装置がホスト装置に装着され外部伝送路により接続されている場合について説明した。しかし、これに限定されることはなく、例えば、ホスト装置およびスレーブ装置に含まれる構成要素が１個の装置上で内部の伝送路により接続されているような構成においても、本発明と同様の効果を得ることができる。
また、本発明のすべての実施形態において、半二重モードから全二重モードへの切換を４個のデータパケットの送信完了時に実施するとして説明したが、これに限定されることはない。例えば、Ｎ個（Ｎは自然数）のデータパケットの送信完了時に、半二重モードから全二重モードへの切換を実行するようにしてもよい。
【０１４３】
また、例えば、通信システムの電源投入時や、スレーブ装置が装着されてアクティブになった時点に、初期化処理として、ホスト装置およびスレーブ装置がネゴシエーションすることで、データパケット数Ｎおよび、各データパケットのデータ容量を決定するようにしてもよい。このとき、例えば、ホスト装置およびスレーブ装置の送受信能力（バッファリング能力等）を考慮して、データパケット数Ｎおよび、各データパケットのデータ容量を決定することが好ましい（例えば、ホスト装置およびスレーブ装置のうち、送受信バッファの容量の小さい方の装置の送受信能力を最大限に生かすように、データパケット数Ｎおよび、各データパケットのデータ容量を決定すればよい）。
また、通信システムにおいて、データパケット数Ｎおよび、各データパケットのデータ容量は、必ずしも固定にする必要はなく、例えば、通信システムの通信状況により、可変にしてもよい。これにより、通信システムにおいて、通信効率を向上させることができる。
【０１４４】
さらに、ホスト装置および不揮発性記憶装置との間で、半二重モード／全二重モードの切換条件等を予め取り決めておき、その取り決めに従い、上記以外の方法により、半二重モード／全二重モードの切換を実行するものであってもよい。
なお、上記実施形態で説明した通信システムのホスト装置およびスレーブ装置において、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１４５】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る通信システムをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【０１４６】
本発明は、ホスト装置が複数チャンネルの伝送路を使用してスレーブ装置とデータ伝送する通信システムにおいて、ホスト装置がスレーブ装置から半二重モードで高速にデータを送受信する際に、一時的に全二重モードに切り換えることでＷａｉｔやＢｕｓｙといった割り込み処理を迅速に実行できるインターフェース部、ホスト装置、スレーブ装置、および通信システムを提案したものである。本発明は、少なくともインターフェース部と不揮発性メモリを有した不揮発性記憶装置、少なくともインターフェース部と有線もしくは無線ネットワークインターフェース部を有したネットワークインターフェース装置のほか、これらを装着する動画記録再生装置、静止画記録再生装置、音声記録再生装置、あるいは携帯電話等において有益である。
【符号の説明】
【０１４７】
１、１Ａ、２、３、４  通信システム
１００、１００Ａ  ホスト装置
１１０、１１０Ａ  不揮発性記憶装置（スレーブ装置）
１２１  第１伝送路
１２２  第２伝送路
１２３  クロック伝送路（第３伝送路）
１３１  ユーザーインターフェース部
１３２  アプリケーション部
１３３  メモリ
１４０、１４０Ａ  ホストインターフェース部
１４１、１４１Ａ  クロック送信部
１４２、１４２Ａ  パケット生成部
１４３、１４３Ａ  伝送路切換制御部
１４４、１４４Ａ  パケット解析部
１４５  クロックカウンタ
１６０、１６０Ａ  スレーブインターフェース部
１６１、１６１Ａ  クロック再生成部
１６２、１６２Ａ  伝送路切換制御部
１６３、１６３Ａ  パケット解析部
１６４、１６４Ａ  パケット生成部
１６５  クロックカウンタ
１７０  不揮発性メモリ部読み書き制御部
１７１  不揮発性メモリ
２４０  切換条件検出部
２４１、２４２  入出力端子
２６０  切換条件検出部
２６１、２６２  入出力端子
４１０  ネットワークインターフェース装置
４７０  ネットワークインターフェース部
４８０  リモート装置
４８１  ネットワーク通信路
５００  ホスト装置
５１０  不揮発性記憶装置
５４０  ホストインターフェース部
５４３  伝送路切換制御部
５６０  スレーブインターフェース部
５６２  伝送路切換制御部
６４０  切換条件検出部
６４１、６４２  入出力端子
６６０  切換条件検出部
６６１、６６２  入出力端子
８００  ホスト装置
８１０  不揮発性記憶装置
８４０  ホストインターフェース部
８４３  伝送路切換制御部
８６０  スレーブインターフェース部
８６２  伝送路切換制御部
９４０  切換条件検出部
９４１、９４２  入出力端子
９６０  切換条件検出部
９６１、９６２  入出力端子
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009147811.tif 000045
【図２Ａ】
2009147811.tif 000046
【図２Ｂ】
2009147811.tif 000047
【図２Ｃ】
2009147811.tif 000048
【図３Ａ】
2009147811.tif 000049
【図３Ｂ】
2009147811.tif 000050
【図４】
2009147811.tif 000051
【図５】
2009147811.tif 000052
【図６Ａ】
2009147811.tif 000053
【図６Ｂ】
2009147811.tif 000054
【図６Ｃ】
2009147811.tif 000055
【図７Ａ】
2009147811.tif 000056
【図７Ｂ】
2009147811.tif 000057
【図８】
2009147811.tif 000058
【図９Ａ】
2009147811.tif 000059
【図９Ｂ】
2009147811.tif 000060
【図９Ｃ】
2009147811.tif 000061
【図１０Ａ】
2009147811.tif 000062
【図１０Ｂ】
2009147811.tif 000063
【図１１Ａ】
2009147811.tif 000064
【図１１Ｂ】
2009147811.tif 000065
【図１２Ａ】
2009147811.tif 000066
【図１２Ｂ】
2009147811.tif 000067
【図１３Ａ】
2009147811.tif 000068
【図１３Ｂ】
2009147811.tif 000069
【図１４Ａ】
2009147811.tif 000070
【図１４Ｂ】
2009147811.tif 000071
【図１５】
2009147811.tif 000072
【図１６】
2009147811.tif 000073
【図１７】
2009147811.tif 000074
【図１８】
2009147811.tif 000075
【図１９】
2009147811.tif 000076
【図２０】
2009147811.tif 000077
【図２１】
2009147811.tif 000078
【図２２】
2009147811.tif 000079
【図２３】
2009147811.tif 000080
【図２４】
2009147811.tif 000081
【図２５】
2009147811.tif 000082
【図２６】
2009147811.tif 000083
【図２７】
2009147811.tif 000084
【図２８】
2009147811.tif 000085
【図２９】
2009147811.tif 000086
【国際調査報告】
2009147811.tif 000087
2009147811.tif 000088