(57)【要約】【課題】ＵＳＢによるデータ転送が間欠的に発生する場合は、ＵＳＢ装置が低電力ステートに滞在出来る時間が短くなる。したがって、ＵＳＢホスト装置側コントローラと、ＵＳＢペリフェラル装置とにおいて、消費電力が大きくなる。【解決手段】ＵＳＢペリフェラル装置において、データ処理速度と、データ転送速度との差に応じてＥＲＤＹ  ＴＰの送信タイミングを制御し、ステート遷移の回数を減らすことで、消費電力を低減させることが可能となる。【選択図】図６
2014052981.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ユニバーサル・シリアル・バス）ホスト側装置と送受信するデータをバッファリングするバッファＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ランダムアスセスメモリ）と、
前記送受信の転送ステータスを監視し、前記バッファＲＡＭにバッファリングするデータを準備するためのフローコントロール状態への遷移を検出するフローコントロール状態遷移検出部と、
前記検出に基づいて、フローコントロール遷移通知信号を生成するフローコントロール遷移通知信号生成部と、
前記データが転送中であることを示す転送ステータス信号を生成する転送ステータス信号生成部と、
前記転送ステータス信号と、前記フローコントロール遷移通知信号とに基づいて、前記バッファＲＡＭのデータ転送速度と、前記ＵＳＢホスト側装置のデータ転送速度との優劣を検出する転送速度監視制御部と、
前記バッファＲＡＭのデータ転送速度が、前記ＵＳＢホスト側装置の転送速度より低い場合に、ＥＲＤＹ  ＴＰ（Ｅｎｄｐｏｉｎｔ  ＲｅａＤＹ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｃｋｅｔ：転送準備完了通知トランザクションパケット）の送信タイミングを変更するＥＲＤＹ  ＴＰ送信タイミング制御部と、
前記ＥＲＤＹ  ＴＰ送信タイミング制御部によって変更された前記送信タイミングで前記ＥＲＤＹ  ＴＰを前記ＵＳＢホスト側装置に向けて送信するＥＲＤＹ  ＴＰ送信部と
を具備する
ＵＳＢペリフェラル装置。
【請求項２】
請求項１に記載のＵＳＢペリフェラル装置において、
前記送受信が終了した際に転送終了通知信号を生成する転送終了通知信号生成部
をさらに具備し、
前記転送速度監視制御部は、
前記フローコントロール遷移通知信号を受信する第１受信部と、
前記転送ステータス信号を受信する第２受信部と、
前記データの転送中に前記フローコントロール遷移通知信号を受信した場合にはカウンタ値をインクリメントし、前記データの転送中に前記フローコントロール遷移通知信号を受信しなかった場合には前記カウンタ値を初期化するカウンタ部と、
前記カウンタ値が所定値に達した場合に転送速度通知信号を生成する転送速度通知信号生成部と
を具備し、
前記ＥＲＤＹ  ＴＰ送信タイミング制御部は、
前記転送速度通知信号を受信する第１受信部と、
前記転送終了通知信号を受信する第２受信部と、
前記転送速度通知信号を受信した場合には前記送信タイミングを遅らせる第１の変更指示信号を生成し、前記転送終了通知信号を受信した場合には前記送信タイミングを初期化する第２の変更指示信号を生成するＥＲＤＹ  ＴＰ送信タイミング変更指示信号生成部と
を具備し、
前記ＥＲＤＹ  ＴＰ送信部は、
前記第１または前記第２の変更指示信号を受信する受信部
を具備する
ＵＳＢペリフェラル装置。
【請求項３】
請求項１または２に記載のＵＳＢペリフェラル装置において、
前記フローコントロール状態遷移検出部、前記フローコントロール遷移通知信号生成部、前記転送ステータス信号生成部、前記ＥＲＤＹ  ＴＰ送信部および前記転送終了通知信号生成部を含み、前記バッファＲＡＭを制御するバッファ制御部
をさらに具備する
ＵＳＢペリフェラル装置。
【請求項４】
請求項３に記載のＵＳＢペリフェラル装置において、
前記バッファ制御部、前記転送速度監視制御部および前記ＥＲＤＹ  ＴＰ送信タイミング制御部を含み、ＵＳＢプロトコル層を制御するプロトコル層制御部と、
前記プロトコル層制御部に接続されて、ＵＳＢリンク層を制御するリンク層制御部と、
一方では前記ＵＳＢリンク層制御部に接続されて、他方ではＵＳＢ伝送線路を介してＵＳＢホスト側装置に接続されて、ＵＳＢ物理層を制御する物理層制御部と
をさらに具備する
ＵＳＢペリフェラル装置。
【請求項５】
データをバッファリングすることと、
前記データをＵＳＢホスト側装置と送受信することと、
バッファリングする前記データを準備するためのフローコントロール状態への遷移を検出することと、
前記検出に基づいて、フローコントロール遷移通知信号を生成することと、
前記データが転送中であることを示す転送ステータス信号を生成することと、
前記転送ステータス信号と、前記フローコントロール遷移通知信号とに基づいて、バッファＲＡＭのデータ転送速度と、ＵＳＢホスト側装置のデータ転送速度との優劣を検出することと、
前記バッファＲＡＭのデータ転送速度が、前記ＵＳＢホスト側装置の転送速度より低い場合に、ＥＲＤＹ  ＴＰの送信タイミングを変更することと、
前記ＥＲＤＹ  ＴＰ送信タイミング制御部によって変更された送信タイミングで前記ＥＲＤＹ  ＴＰを送信することと
を具備する
ＵＳＢペリフェラル装置の制御方法。
【請求項６】
請求項５に記載のＵＳＢペリフェラル装置の制御方法において、
前記送受信が終了した際に転送終了通知信号を生成することと、
前記データの転送中に前記フローコントロール遷移通知信号を受信した場合にはカウンタ値をインクリメントし、前記データの転送中に前記フローコントロール遷移通知信号を受信しなかった場合には前記カウンタ値を初期化することと、
前記カウンタ値が所定値に達した場合に転送速度通知信号を生成することと、
前記転送速度通知信号を受信した場合には前記送信タイミングを遅らせる第１の変更指示信号を生成することと、
前記転送終了通知信号を受信した場合には前記送信タイミングを初期化する第２の変更指示信号を生成することと、
前記第１または前記第２の変更指示信号に応じて前記送信タイミングを変更することと
を具備する
ＵＳＢペリフェラル装置の制御方法。
【請求項７】
請求項６に記載のＵＳＢペリフェラル装置の制御方法において、
送信未了データが無くなった際に、前記カウンタ値および前記送信タイミングをそれぞれ初期化すること
をさらに具備する
ＵＳＢペリフェラル装置の制御方法。
【請求項８】
請求項６に記載のＵＳＢペリフェラル装置の制御方法において、
最終データを受信した際に、前記カウンタ値および前記送信タイミングをそれぞれ初期化すること
をさらに具備する
ＵＳＢペリフェラル装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ユニバーサル・シリアル・バス）ペリフェラル装置に関し、例えば、ＵＳＢ３．０のＳｕｐｅｒ  Ｓｐｅｅｄ（スーパースピード）モードによるデータ転送を行うＵＳＢペリフェラル装置などに好適に利用出来るものである。
【背景技術】
【０００２】
ＵＳＢのプロトコルにおいて、データの転送が一定期間発生しない場合には、ＵＳＢホスト装置側コントローラと、ＵＳＢペリフェラル装置との双方を、低電力ステートに遷移させることが可能である。
【０００３】
ここで、ＵＳＢ３．０のＳｕｐｅｒ  Ｓｐｅｅｄによるデータ転送において、ＵＳＢペリフェラル装置側が転送データを読み出す処理速度や、転送データを書き込む処理速度が、ＵＳＢデータ転送速度と比較して遅い場合について考える。すなわち、１パケット分のデータをＵＳＢによって転送完了するまでに次の１パケット分の転送データの準備が完了しない場合について考える。このような場合において、ＵＳＢによるデータ転送が１パケット分ずつ完了する度に、フローコントロール状態への遷移と、ＵＳＢペリフェラル装置からＵＳＢホスト側装置へのＥＲＤＹ  ＴＰ（Ｅｎｄｐｏｉｎｔ  ＲｅａＤＹ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｃｋｅｔ：転送準備完了通知トランザクションパケット）送信と、ＵＳＢによる１パケット分のデータ転送とが、この順番に繰り返されることになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３０２７７８号公報
【特許文献２】特開２００５−１９０２０２号公報
【非特許文献】
【０００５】
【非特許文献１】Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  ３．０  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖ．  １．０  Ｎｏｖｅｍｂｅｒ  １２，  ２００８
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ただし、ステートの遷移には無視出来ない時間が必要とされる。このため、ＵＳＢによるデータ転送が間欠的に発生する場合は、各装置が低電力ステートに滞在出来る時間が短くなる。したがって、ＵＳＢホスト装置側コントローラと、ＵＳＢペリフェラル装置とにおいて、消費電力が大きくなる。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
以下に、（発明を実施するための形態）で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、（特許請求の範囲）の記載と（発明を実施するための形態）との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、（特許請求の範囲）に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
一実施の形態によれば、ＵＳＢペリフェラル装置（２）において、データ処理速度と、データ転送速度との差に応じてＥＲＤＹ  ＴＰの送信タイミングを制御し、ステート遷移の回数を減らすことで、消費電力を低減させることが可能となる。
【発明の効果】
【０００９】
前記一実施の形態によれば、ＵＳＢペリフェラル装置において、データ転送速度を下げずに消費電力を低減させることが出来る。
【図面の簡単な説明】
【００１０】
【図１】図１は、従来技術によるＵＳＢペリフェラル装置の構成の一例を示す機能ブロック図である。
【図２】図２は、図１に示した従来技術によるＵＳＢペリフェラル装置からＵＳＢホスト側装置に向けたデータ送信において、ＵＳＢペリフェラル装置が送信パケットを準備する速度が、ＵＳＢホスト側装置へのデータ転送速度と比較して遅い場合の一例を示すタイムチャートである。
【図３】図３は、図１に示した従来技術によるＵＳＢペリフェラル装置からＵＳＢホスト側装置に向けたデータ送信において、ＵＳＢペリフェラル装置が送信パケットを準備する速度が、ＵＳＢホスト側装置へのデータ転送速度と比較して速い場合の一例を示すタイムチャートである。
【図４】図４は、ＵＳＢホスト側装置から図１に示した従来技術によるＵＳＢペリフェラル装置に向けたデータ送信において、ＵＳＢペリフェラル装置が受信パケットを処理する速度が、ＵＳＢホスト側装置からのデータ転送速度と比較して遅い場合の一例を示すタイムチャートである。
【図５】図５は、ＵＳＢホスト側装置から図１に示した従来技術によるＵＳＢペリフェラル装置に向けたデータ送信において、ＵＳＢペリフェラル装置が受信パケットを処理する速度が、ＵＳＢホスト側装置からのデータ転送速度と比較して速い場合の一例を示すタイムチャートである。
【図６】図６は、本発明の実施形態によるＵＳＢペリフェラル装置の構成の一例を示す機能ブロック図である。
【図７】図７は、一実施形態によるＵＳＢペリフェラル装置を制御する方法の、ＵＳＢペリフェラル装置からＵＳＢホスト側装置に向けたデータ送信を行う場合の一例を示すフローチャートである。
【図８】図８は、一実施形態によるＵＳＢペリフェラル装置において、ＵＳＢホスト側装置に向けて送信するデータを準備する処理速度が、送信処理速度よりも遅いことを認識するまでの工程の一例を示すタイムチャートである。
【図９】図９は、一実施形態によるＵＳＢペリフェラル装置を制御する方法の、ＵＳＢホスト側装置からＵＳＢペリフェラル装置に向けたデータ送信を行う場合の一例を示すフローチャートである。
【図１０】図１０は、一実施形態によるＵＳＢペリフェラル装置において、ＵＳＢホスト側装置からのデータ受信速度よりも、ＵＳＢペリフェラル装置側の受信データ処理速度の方が遅いことを認識するまでの工程の一例を示すタイムチャートである。
【図１１】図１１は、一実施形態によるＵＳＢペリフェラル装置において、ＵＳＢホスト側装置に向けたデータ送信を行う際にＥＲＤＹ  ＴＰ送信タイミングの調整を行った場合の一例を示すタイムチャートである。
【図１２】図１２は、一実施形態によるＵＳＢペリフェラル装置において、ＵＳＢホスト側装置からのデータ受信を行う際にＥＲＤＹ  ＴＰ送信タイミングの調整を行った場合の一例を示すタイムチャートである。
【図１３】図１３は、本発明による一実施形態によるＵＳＢペリフェラル装置でＥＲＤＹ  ＴＰ送信タイミングを調整することで得られる、ステート遷移に関わる効果を示すタイムチャートである。
【発明を実施するための形態】
【００１１】
添付図面を参照して、本発明によるＵＳＢペリフェラル装置と、このＵＳＢペリフェラル装置の制御方法とを実施するための形態を以下に説明する。
【００１２】
本発明によるＵＳＢペリフェラル装置およびその制御方法の特徴について説明するために、それらの比較対象となる従来技術によるＵＳＢペリフェラル装置およびその動作について説明する。
【００１３】
図１は、従来技術によるＵＳＢペリフェラル装置の構成の一例を示す機能ブロック図である。図１に示したＵＳＢペリフェラル装置２０は、一方ではＵＳＢ伝送線路１０を介して図示しないＵＳＢホスト側装置に接続されており、他方ではＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央演算装置）３０などに接続されている。
【００１４】
図１に示したＵＳＢペリフェラル装置２０は、物理層制御部２０１と、リンク層制御部２０２と、プロトコル層制御部２０３と、バッファＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ランダム・アクセス・メモリ）２０４とを含んでいる。プロトコル層制御部２０３は、バッファ制御部２０３１を含んでいる。バッファＲＡＭ  ２０４は、図示されない複数の記憶領域を含んでいる。図１に示した例では、バッファＲＡＭ  ２０４は合計３つの記憶領域を含んでおり、それぞれの記憶領域が１パケット分のデータを格納出来るものとする。
【００１５】
物理層制御部２０１は、一方ではＵＳＢ伝送線路１０に接続されており、他方ではリンク層制御部２０２に接続されている。リンク層制御部２０２は、一方では物理層制御部２０１に接続されており、他方ではバッファ制御部２０３１に接続されている。バッファ制御部２０３１は、リンク層制御部２０２と、バッファＲＡＭ  ２０４と、ＣＰＵ  ３０とに接続されている。
【００１６】
図２は、図１に示した従来技術によるＵＳＢペリフェラル装置２０からＵＳＢホスト側装置に向けたデータ送信において、ＵＳＢペリフェラル装置２０が送信パケットを準備する速度が、ＵＳＢホスト側装置へのデータ転送速度と比較して遅い場合の一例を示すタイムチャートである。図２に示したタイムチャートは、上から順に第１〜９のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｇ）を含んでいる。
【００１７】
図２において、第１のタイムチャート（Ａ）は、データ転送の準備がされるデータの時間変化を表している。図２に示した例では、時刻ｔ１まではデータ１の準備がされており、時刻ｔ１から時刻ｔ３まではデータ２の準備がされており、時刻ｔ３から時刻ｔ５まではデータ３の準備がされており、時刻ｔ５以降はデータ４の準備がされている。
【００１８】
図２において、第２〜４のタイムチャート（Ｂ１）〜（Ｂ３）は、ハイ状態であればバッファＲＡＭ  ２０４の第１〜３の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファＲＡＭ  ２０４の対応する記憶領域が書き込み可能状態であることを表している。図２に示した例では、バッファＲＡＭ  ２０４の第１の記憶領域は、時刻ｔ１から時刻ｔ２まではデータ１をバッファリングしており、時刻ｔ３から時刻ｔ４まではデータ２をバッファリングしており、時刻ｔ５から時刻ｔ６まではデータ３をバッファリングしている。また、図２に示した例では、バッファＲＡＭ  ２０４の第２および第３の記憶領域は、ずっと書き込み可能状態のままである。
【００１９】
図２において、第５のタイムチャート（Ｃ）は、ＥＲＤＹ  ＴＰがＵＳＢペリフェラル装置２０からＵＳＢホスト側装置に向けて送信されるタイミングを表している。図２に示した例では、時刻ｔ１、ｔ３およびｔ５においてＥＲＤＹ  ＴＰが送信されている。
【００２０】
図２において、第６のタイムチャート（Ｄ）は、転送要求信号がＵＳＢホスト側装置からＵＳＢペリフェラル装置２０に向けて送信されるタイミングを表している。図２に示した例では、ＥＲＤＹ  ＴＰが送信される度に転送要求信号が送信されている。
【００２１】
図２において、第７のタイムチャート（Ｅ）は、ＵＳＢペリフェラル装置２０からＵＳＢホスト側装置に向けてデータが送信されるタイミングを表している。図２に示した例では、転送要求信号が送信される度にデータが送信されている。なお、ここで送信されるデータは、基本的には、その時にバッファＲＡＭ  ２０４にバッファリングされているデータのうち最も早くからバッファリングされているものである。
【００２２】
図２において、第８のタイムチャート（Ｆ）は、ハイ状態であればＵＳＢペリフェラル装置２０がフローコントロール状態に遷移している期間を表している。図２に示した例では、ＵＳＢペリフェラル装置２０は時刻ｔ１までと、時刻ｔ２から時刻ｔ３までと、時刻ｔ４から時刻ｔ５までと、時刻ｔ６以降とにおいて、フローコントロール状態に遷移している。
【００２３】
図２において、第９のタイムチャート（Ｇ）は、ＵＳＢペリフェラル装置２０の状態において、通常ステート（Ｕ０）と、低電力ステート（Ｕ１）との間で行われるステート遷移を表している。図２に示した例では、ＵＳＢペリフェラル装置２０は、時刻ｔ１から時刻ｔ２までと、時刻ｔ３から時刻ｔ４までと、時刻ｔ５から時刻ｔ６までとにおいて、通常ステート（Ｕ０）に遷移している。なお、ＵＳＢペリフェラル装置２０は、通常ステート（Ｕ０）ではない期間に低電力ステート（Ｕ１）に遷移するが、その前後における無視出来ない時間をステート遷移に費やす必要がある。したがって、例えば、時刻ｔ２から時刻ｔ３までの期間において低電力ステート（Ｕ１）に遷移出来る時間は、時刻ｔ２から時刻ｔ３までの期間よりも短い。
【００２４】
図２の例を用いて、従来技術によるＵＳＢペリフェラル装置２０の動作の一例について説明する。まず、ＵＳＢペリフェラル装置２０は、ＵＳＢホスト側装置に転送するデータ１の準備を、時刻ｔ１までに完了する。その結果、時刻ｔ１において、バッファＲＡＭ  ２０４の第１の記憶領域には、データ１が読み出し可能な状態で格納されている。
【００２５】
次に、時刻ｔ１において、ＵＳＢペリフェラル装置２０は、ＵＳＢホスト側装置に向けてＥＲＤＹ  ＴＰを送信する。ＵＳＢホスト側装置は、ＥＲＤＹ  ＴＰを受信すると、ＵＳＢペリフェラル装置２０に向けて転送要求信号を送信する。ＵＳＢペリフェラル装置２０は、転送要求信号を受信すると、バッファＲＡＭ  ２０４に格納されているデータ１をＵＳＢホスト側装置に向けて送信する。
【００２６】
時刻ｔ２において、データ１の送信は完了するが、次に転送するデータ２の準備はまだ完了していない。この場合、ＵＳＢペリフェラル装置２０はフローコントロール状態に遷移する。また、ＵＳＢホスト側装置は、次のＥＲＤＹ  ＴＰを受信するまで転送要求信号を発送しない。その結果として、ＵＳＢペリフェラル装置２０は、通常ステート（Ｕ０）から低電力ステート（Ｕ１）に遷移する。この遷移には、上述したとおり、無視出来ない時間が必要である。
【００２７】
時刻ｔ３において、データ２の準備が完了する。ＵＳＢペリフェラル装置２０は、次のＥＲＤＹ  ＴＰを送信する前に、低電力ステート（Ｕ１）から通常ステート（Ｕ０）に遷移する。この遷移には、上述したとおり、無視出来ない時間が必要である。
【００２８】
以下同様に繰り返すことで、従来技術によるＵＳＢペリフェラル装置２０からＵＳＢホスト側装置へのデータ転送が行われる。
【００２９】
図２に示したように、従来技術によるＵＳＢペリフェラル装置２０が送信パケットを処理する速度が、ＵＳＢホスト側装置とのデータ転送速度よりも低い場合は、１パケットのデータ送信が完了した後、次のデータ送信の準備が完了するまでの間に通常ステート（Ｕ０）から低電力ステート（Ｕ１）に遷移して、データ送信の準備が完了するタイミングに合わせて再び通常ステート（Ｕ０）に戻る。
【００３０】
図３は、図１に示した従来技術によるＵＳＢペリフェラル装置２０からＵＳＢホスト側装置に向けたデータ送信において、ＵＳＢペリフェラル装置２０が送信パケットを準備する速度が、ＵＳＢホスト側装置へのデータ転送速度と比較して速い場合の一例を示すタイムチャートである。図３に示したタイムチャートは、上から順に第１〜８のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｆ）を含んでいる。
【００３１】
図３に示した第１〜８のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｆ）は、図２に示した第１〜８のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｆ）と、それぞれ同じデータ、信号または状態を表している。なお、図３に示した例では、ＵＳＢペリフェラル装置２０が低電力ステート（Ｕ１）に遷移しないので、さらなる詳細な説明を省略する。
【００３２】
図４は、ＵＳＢホスト側装置から図１に示した従来技術によるＵＳＢペリフェラル装置に向けたデータ送信において、ＵＳＢペリフェラル装置が受信パケットを処理する速度が、ＵＳＢホスト側装置からのデータ転送速度と比較して遅い場合の一例を示すタイムチャートである。図４に示したタイムチャートは、上から順に第１〜８のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｆ）を含んでいる。
【００３３】
図４において、第１のタイムチャート（Ａ）は、バッファＲＡＭ  ２０４に格納されている受信データのうち処理されるデータの時間変化を表している。図４に示した例では、時刻ｔ１まではデータ１の処理がされており、時刻ｔ１から時刻ｔ３まではデータ２の処理がされており、時刻ｔ３から時刻ｔ５まではデータ３の処理がされており、時刻ｔ５以降はデータ４の処理がされている。
【００３４】
図４において、第２〜４のタイムチャート（Ｂ１）〜（Ｂ３）は、ハイ状態であればバッファＲＡＭ  ２０４の第１〜３の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファＲＡＭ  ２０４の対応する記憶領域が書き込み可能状態であることを表している。図４に示した例では、バッファＲＡＭ  ２０４の第１の記憶領域は、時刻ｔ５まではデータ３を格納しており、時刻ｔ６以降はデータ６を格納しており、その他の期間は書き込み可能状態である。同じく第２の記憶領域は、時刻ｔ３まではデータ２を格納しており、時刻ｔ４以降はデータ５を格納しており、その他の期間は書き込み可能状態である。同じく第３の記憶領域は、時刻ｔ１まではデータ１を格納しており、時刻ｔ２以降はデータ４を格納しており、その他の期間は書き込み可能状態である。
【００３５】
図４において、第５のタイムチャート（Ｃ）は、ＥＲＤＹ  ＴＰがＵＳＢペリフェラル装置２０からＵＳＢホスト側装置に向けて送信されるタイミングを表している。図４に示した例では、時刻ｔ１、ｔ３およびｔ５においてＥＲＤＹ  ＴＰが送信されている。
【００３６】
図４において、第６のタイムチャート（Ｄ）は、ＵＳＢホスト側装置からＵＳＢペリフェラル装置２０に向けてデータが送信されるタイミングを表している。図４に示した例では、ＥＲＤＹ  ＴＰが送信される度にデータが送信されている。ＵＳＢホスト側装置から送信されたデータは、ＵＳＢペリフェラル装置２０のバッファＲＡＭ  ２０４のうち書き込み可能状態な記憶領域に格納された後、適宜処理される。
【００３７】
図４において、第７のタイムチャート（Ｅ）は、ハイ状態であればＵＳＢペリフェラル装置２０がフローコントロール状態に遷移している期間を表している。図４に示した例では、ＵＳＢペリフェラル装置２０は時刻ｔ１までと、時刻ｔ２から時刻ｔ３までと、時刻ｔ４から時刻ｔ５までと、時刻ｔ６以降とにおいて、フローコントロール状態に遷移している。
【００３８】
図４において、第８のタイムチャート（Ｆ）は、ＵＳＢペリフェラル装置２０の状態において、通常ステート（Ｕ０）と、低電力ステート（Ｕ１）との間で行われるステート遷移を表している。図４に示した例では、ＵＳＢペリフェラル装置２０は、時刻ｔ１から時刻ｔ２までと、時刻ｔ３から時刻ｔ４までと、時刻ｔ５から時刻ｔ６までとにおいて、通常ステート（Ｕ０）に遷移している。なお、ＵＳＢペリフェラル装置２０は、通常ステート（Ｕ０）ではない期間に低電力ステート（Ｕ１）に遷移するが、その前後における無視出来ない時間をステート遷移に費やす必要がある。したがって、例えば、時刻ｔ２から時刻ｔ３までの期間において低電力ステート（Ｕ１）に遷移出来る時間は、時刻ｔ２から時刻ｔ３までの期間よりも短い。
【００３９】
図４の例を用いて、従来技術によるＵＳＢペリフェラル装置の動作の他の一例について説明する。まず、バッファＲＡＭ  ２０４が含む３つの記憶領域にはそれぞれデータ１、データ２およびデータ３が格納されている。
【００４０】
次に、時刻ｔ１において、データ１の処理が完了すると、それまでデータ１を格納していた記憶領域が書き込み可能状態になる。ここで、データ２の処理が開始する。また、ＵＳＢペリフェラル装置２０からＵＳＢホスト側装置に向けてＥＲＤＹ  ＴＰが送信される。ＵＳＢホスト側装置は、ＥＲＤＹ  ＴＰを受信すると、ＵＳＢペリフェラル装置２０に向けてデータ４を送信する。
【００４１】
時刻ｔ２において、データ４の送信が完了しても、データ２の処理は完了しておらず、バッファＲＡＭ  ２０４の全ての記憶領域が書き込み不可能状態になっている。この場合、ＵＳＢペリフェラル装置２０はフローコントロール状態に遷移する。また、ＵＳＢペリフェラル装置はさらなるＥＲＤＹ  ＴＰを発送せず、ＵＳＢホスト側装置はさらなるデータを送信しない。その結果として、ＵＳＢペリフェラル装置２０は、通常ステート（Ｕ０）から低電力ステート（Ｕ１）に遷移する。この遷移には、上述したとおり、無視出来ない時間が必要である。
【００４２】
時刻ｔ３において、データ２の準備が完了すると、バッファＲＡＭ  ２０４に書き込み可能な記憶領域が出来る。ＵＳＢペリフェラル装置２０は、次のＥＲＤＹ  ＴＰを送信する前に、低電力ステート（Ｕ１）から通常ステート（Ｕ０）に遷移する。この遷移には、上述したとおり、無視出来ない時間が必要である。
【００４３】
以下同様に繰り返すことで、ＵＳＢホスト側装置から従来技術によるＵＳＢペリフェラル装置２０に向けたデータ転送が行われる。
【００４４】
図４に示したように、ＵＳＢペリフェラル装置２０が受信パケットを処理する速度が、ＵＳＢホスト側装置とのデータ転送速度よりも低い場合は、１パケットのデータ受信が完了した後、次のデータ受信の準備が完了するまでの間に通常ステート（Ｕ０）から低電力ステート（Ｕ１）に遷移して、データ受信の準備が完了するタイミングに合わせて再び通常ステート（Ｕ０）に戻る。
【００４５】
図５は、ＵＳＢホスト側装置から図１に示した従来技術によるＵＳＢペリフェラル装置に向けたデータ送信において、ＵＳＢペリフェラル装置が受信パケットを処理する速度が、ＵＳＢホスト側装置からのデータ転送速度と比較して速い場合の一例を示すタイムチャートである。図５に示したタイムチャートは、上から順に第１〜７のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｅ）を含んでいる。
【００４６】
図５に示した第１〜７のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｅ）は、図４に示した第１〜７のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｅ）と、それぞれ同じデータ、信号または状態を表している。なお、図５に示した例では、ＵＳＢペリフェラル装置２０が低電力ステート（Ｕ１）に遷移しないので、さらなる詳細な説明を省略する。
【００４７】
以上に説明したように、ＵＳＢペリフェラル装置２０の消費電力を低減させるためには、低電力ステート（Ｕ１）に滞在出来る時間を極力長くすることが必要である。このとき、通常ステート（Ｕ０）から低電力ステート（Ｕ１）に遷移するための時間と、戻るための時間とを加味する必要がある。その理由は、ＵＳＢペリフェラル装置２０で送信データまたは受信データを処理する速度が、ＵＳＢホスト側装置とのデータ転送速度よりも低い場合に、ＵＳＢによるデータ転送が間欠的に発生して、低電力ステート（Ｕ１）に滞在出来る時間が短くなり、消費電力を低減出来なくなるからである。
【００４８】
（実施形態）
一実施形態によるＵＳＢペリフェラル装置およびその制御方法では、ＥＲＤＹ  ＴＰの送信タイミングを所定の条件下において遅らせるアルゴリズムを用いてフロー状態を維持し、低電力ステート（Ｕ１）に滞在出来る時間を延ばすことによって、転送効率を下げずに消費電力を低減させる。この条件には、ＵＳＢペリフェラル装置における送受信データの処理速度が、ＵＳＢホスト側装置におけるデータ転送速度よりも遅いことが含まれる。
【００４９】
なお、ＵＳＢペリフェラル装置における送受信データの処理速度が、ＵＳＢホスト側装置におけるデータ転送速度よりも速い場合は、ＥＲＤＹ  ＴＰの送信タイミングを遅らせない方が、転送効率や消費電力などの面で有利となる。したがって、このような場合に、一実施形態によるアルゴリズムは、データ転送のスケジューリングや、低電力状態への遷移を行うタイミングなどを、ＵＳＢホストコントローラ側に委ねる。
【００５０】
図６は、本発明の実施形態によるＵＳＢペリフェラル装置の構成の一例を示す機能ブロック図である。図６に示したＵＳＢペリフェラル装置２は、一方ではＵＳＢ伝送線路１を介して図示しないＵＳＢホスト側装置に接続されており、他方ではＣＰＵ  ３などに接続されている。
【００５１】
図６に示したＵＳＢペリフェラル装置２は、物理層制御部２１と、リンク層制御部２２と、プロトコル層制御部２３と、バッファＲＡＭ  ２４とを含んでいる。プロトコル層制御部２３は、バッファ制御部２３１と、転送速度監視制御部２３２と、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３とを含んでいる。バッファＲＡＭ  ２４は、図示しない第１〜３の記憶領域を含んでいる。ここで、バッファＲＡＭ  ２４が含む記憶領域の総数はあくまでも一例に過ぎず、自由に変更可能である。
【００５２】
バッファ制御部２３１は、フローコントロール状態遷移検出部２３１ａと、フローコントロール遷移通知信号生成部２３１ｂと、転送ステータス信号生成部２３１ｃと、ＥＲＤＹ  ＴＰ送信部２３１ｄと、転送終了通知信号生成部２３１ｅとを含んでいる。
【００５３】
転送速度監視制御部２３２は、第１受信部２３２ａと、第２受信部２３２ｂと、カウンタ部２３２ｃと、転送速度通知信号生成部２３２ｄとを含んでいる。
【００５４】
ＥＲＤＹ  ＴＰ送信タイミング制御部２３３は、第１受信部２３３ａと、第２受信部２３３ｂと、ＥＲＤＹ  ＴＰ送信タイミング変更指示信号生成部２３３ｃとを含んでいる。
【００５５】
図６に示したＵＳＢペリフェラル装置２の構成要素の接続関係について説明する。物理層制御部２１は、ＵＳＢ伝送線路１と、リンク層制御部２２とに接続されている。リンク層制御部２２は、物理層制御部２１と、バッファ制御部２３１に接続されている。バッファ制御部２３１は、リンク層制御部２２と、転送速度監視制御部２３２と、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３と、バッファＲＡＭ  ２４とに接続されており、さらに、図示しない外部バスなどを介してＣＰＵ  ３に接続されている。転送速度監視制御部２３２は、バッファ制御部２３１と、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３とに接続されている。ＥＲＤＹ  ＴＰ送信タイミング制御部２３３は、バッファ制御部２３１と、転送速度監視制御部２３２とに接続されている。バッファＲＡＭ  ２４は、バッファ制御部２３１に接続されている。ＣＰＵ  ３は、バッファ制御部２３１に、図示しない外部バスなどを介して接続されている。
【００５６】
図６に示したＵＳＢペリフェラル装置２の構成要素の動作について説明する。ＵＳＢペリフェラル装置２は、ＵＳＢ伝送線路１を介して、ＵＳＢホスト側装置とのデータ転送を行う。物理層制御部２１は、ＵＳＢレイヤにおける物理層の制御を行う。リンク層制御部２２は、ＵＳＢレイヤにおけるリンク層の制御を行う。プロトコル層制御部２３は、ＵＳＢレイヤにおけるプロトコル層の制御を行う。バッファＲＡＭ  ２４は、プロトコル層制御部２３と送受信するデータを入出力して格納する。
【００５７】
バッファ制御部２３１は、ＣＰＵ  ３と、バッファＲＡＭ  ２４と、リンク層制御部２２とに対して送受信データの入出力を行う。フローコントロール状態遷移検出部２３１ａは、フローコントロール状態への遷移を検出する。フローコントロール遷移通知信号生成部２３１ｂは、フローコントロール遷移通知信号Ｓ２を生成し、転送速度監視制御部２３２に向けて出力する。転送ステータス信号生成部２３１ｃは、転送ステータス信号Ｓ１を生成し、転送速度監視制御部２３２に向けて出力する。転送終了通知信号生成部２３１ｅは、転送終了通知信号Ｓ４を生成し、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３に向けて出力する。
【００５８】
転送速度監視制御部２３２は、送信パケットの準備中または受信パケットの処理中にフローコントロール状態に遷移したかどうかを監視する。転送速度監視制御部２３２は、第１受信部２３２ａを介して転送ステータス信号Ｓ１を入力し、第２受信部２３２ｂを介してフローコントロール遷移通知信号Ｓ２を入力する。転送速度通知信号生成部２３２ｄは、転送速度通知信号Ｓ３を生成し、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３に向けて出力する。
【００５９】
ＥＲＤＹ  ＴＰ送信タイミング制御部２３３は、ＵＳＢペリフェラル装置２がデータ送受信の準備が出来たことをＵＳＢホスト側装置に通知するためのＥＲＤＹ  ＴＰを、本発明で提案するアルゴリズムに従って変更する。ＥＲＤＹ  ＴＰ送信タイミング制御部２３３は、第１受信部２３３ａを介して転送終了通知信号Ｓ４を入力し、第２受信部２３３ｂを介して転送速度通知信号Ｓ３を入力する。ＥＲＤＹ  ＴＰ送信タイミング変更指示信号生成部２３３ｃは、ＥＲＤＹ  ＴＰ送信タイミング変更指示信号Ｓ５を生成し、ＥＲＤＹ  ＴＰ送信部２３１ｄに向けて出力する。
【００６０】
ＥＲＤＹ  ＴＰ送信部２３１ｄは、ＥＲＤＹ  ＴＰ送信タイミング変更指示信号Ｓ５に基づくタイミングで、ＵＳＢホスト側装置に向けてＥＲＤＹ  ＴＰを送信する。リンク層制御部２２は、プロトコル層制御部２３から送受信するデータを入出力し、物理層制御部２１に物理的な転送レベルに変換した送受信データを入出力する。物理層制御部２１は、リンク層制御部２２より物理的な転送レベルに変換された送受信データを入出力し、ＵＳＢ伝送線路１を介して外部のＵＳＢホスト側装置とデータの送受信を行う。
【００６１】
図６に示したＵＳＢペリフェラル装置２の全体的な動作、すなわち本発明によるＵＳＢペリフェラル装置の制御方法について説明する。ここで、ＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けてデータを送信するＩＮ転送と、ＵＳＢホスト側装置からＵＳＢペリフェラル装置２に向けてデータを送信するＯＵＴ転送とに分けて説明する。また、ＩＮ転送およびＯＵＴ転送のそれぞれにおいて、ＵＳＢペリフェラル装置における送受信データの処理速度が、ＵＳＢホスト側装置における送受信データの転送速度よりも遅いことを、検出するまでと、検出してからとに分けて説明する。
【００６２】
まず、ＩＮ転送において速度差を検出するまでの過程について説明する。図７は、一実施形態によるＵＳＢペリフェラル装置を制御する方法の、ＵＳＢペリフェラル装置からＵＳＢホスト側装置に向けたデータ送信を行う場合の一例を示すフローチャートである。図７に示したフローチャートは、第１〜８のステップＳＩ１〜ＳＩ８を含んでいる。
【００６３】
図８は、一実施形態によるＵＳＢペリフェラル装置において、ＵＳＢホスト側装置に向けて送信するデータを準備する処理速度が、送信処理速度よりも遅いことを認識するまでの工程の一例を示すタイムチャートである。図８に示したタイムチャートは、第１〜９のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）、（Ｃ）〜（Ｇ）を含んでいる。
【００６４】
図８において、第１のタイムチャート（Ａ）は、データ転送の準備がされるデータの時間変化を表している。図８に示した例では、時刻ｔ１まではデータ１の準備がされており、時刻ｔ１から時刻ｔ３まではデータ２の準備がされており、時刻ｔ３から時刻ｔ５まではデータ３の準備がされており、時刻ｔ５から時刻ｔ７まではデータ４の準備がされており、時刻ｔ７以降はデータ５の準備がされている。
【００６５】
図８において、第２〜４のタイムチャート（Ｂ１）〜（Ｂ３）は、ハイ状態であればバッファＲＡＭ  ２４の第１〜３の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファＲＡＭ  ２４の対応する記憶領域が書き込み可能状態であることを表している。図８に示した例では、バッファＲＡＭ  ２４の第１の記憶領域は、時刻ｔ１から時刻ｔ２まではデータ１をバッファリングしており、その他の期間は書き込み可能状態である。バッファＲＡＭ  ２４の第２の記憶領域は、時刻ｔ３から時刻ｔ４まではデータ２をバッファリングしており、その他の期間は書き込み可能状態である。バッファＲＡＭ  ２４の第３の記憶領域は、時刻ｔ５から時刻ｔ６まではデータ３をバッファリングしており、その他の期間は書き込み可能状態である。
【００６６】
図８において、第５のタイムチャート（Ｃ）は、ＥＲＤＹ  ＴＰがＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けて送信されるタイミングを表している。図８に示した例では、時刻ｔ１、ｔ３、ｔ５およびｔ７においてＥＲＤＹ  ＴＰが送信されている。
【００６７】
図８において、第６のタイムチャート（Ｄ）は、転送要求信号がＵＳＢホスト側装置からＵＳＢペリフェラル装置２に向けて送信されるタイミングを表している。図８に示した例では、ＥＲＤＹ  ＴＰが送信される度に転送要求信号が送信されている。
【００６８】
図８において、第７のタイムチャート（Ｅ）は、ＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けてデータが送信されるタイミングを表している。図８に示した例では、転送要求信号が送信される度にデータが送信されている。なお、ここで送信されるデータは、基本的には、その時にバッファＲＡＭ  ２４にバッファリングされているデータのうち最も早くからバッファリングされているものである。
【００６９】
図８において、第８のタイムチャート（Ｆ）は、ハイ状態であればＵＳＢペリフェラル装置２がフローコントロール状態に遷移している期間を表している。図８に示した例では、ＵＳＢペリフェラル装置２は時刻ｔ１までと、時刻ｔ２から時刻ｔ３までと、時刻ｔ４から時刻ｔ５までと、時刻ｔ６から時刻ｔ７までとにおいて、フローコントロール状態に遷移している。
【００７０】
図８において、第９のタイムチャート（Ｇ）は、カウンタ部２３２ｃでカウントされる連続遷移カウント値の時間変化を表している。図８の例では、この連続遷移カウント値は時刻ｔ３までは０であり、時刻ｔ３から時刻ｔ５までは１であり、時刻ｔ５から時刻ｔ７までは２であり、時刻ｔ７以降は３である。
【００７１】
図７および図８の例を用いて、一実施形態によるＵＳＢペリフェラル装置２の動作のうち、すなわち一実施形態によるＵＳＢペリフェラル装置２の制御方法のうち、ＩＮ転送においてＵＳＢペリフェラル装置２の送受信データ処理速度がＵＳＢホスト側装置のデータ転送速度より低いことを検出する場合の一例について説明する。まず、ステップＳＩ１を実行する。
【００７２】
ステップＳＩ１において、送信データの準備が行われる。より具体的には、例えば、バッファ制御部２３１が、ＣＰＵ  ３からデータ１を読み出して、バッファＲＡＭ  ２４に含まれる第１の記憶領域に書き込んでも良い。このステップＳＩ１は、図８に示した例では、例えば時刻ｔ１までの期間に対応する。その結果、時刻ｔ１において、バッファＲＡＭ  ２４のうち、図８に示した第２のタイムチャート（Ｂ１）に対応する第１の記憶領域に、データ１が読み出し可能に格納される。なお、詳細は後述するが、バッファＲＡＭ  ２４に送信未了データが既に格納されている場合には、その送信処理が並行して行われる。ステップＳＩ１の次には、ステップＳＩ２が実行される。
【００７３】
ステップＳＩ２において、フローコントロール状態遷移検出部２３１ａが、送信データ準備中にフローコントロール状態に遷移したかどうかを検出する。このような遷移があった場合（Ｙｅｓ）はステップＳＩ３が実行され、このような遷移がなかった場合（Ｎｏ）はステップＳＩ４が実行される。なお、図８に示した例では、第８のタイムチャート（Ｆ）に示したとおり、時刻ｔ１においてフローコントロール状態が終了する。そこで、ステップＳＩ３について説明する前に、ステップＳＩ４について説明する。
【００７４】
ステップＳＩ４において、連続遷移カウンタの初期化が行われる。より具体的には、例えば、転送速度監視制御部２３２が、カウンタ部２３２ｃの連続遷移カウント値を０に初期化しても良い。図８に示した例では、第９のタイムチャート（Ｇ）に示したように、連続遷移カウント値は最初から０になっているが、時刻ｔ１で改めて０に初期化されている。ステップＳＩ４の次には、ステップＳＩ５が実行される。
【００７５】
ステップＳＩ５において、連続遷移カウンタの値が所定の基準値ｎに達したかどうかの判定が行われる。より具体的には、例えば、転送速度監視制御部２３２が、カウンタ部２３２ｃの連続遷移カウント値を読み出して、基準値ｎと比較しても良い。基準値ｎの値は適宜に設定可能であるが、ここでは一例として、基準値ｎが３に設定されている場合について説明する。ステップＳＩ５の次には、カウンタ値が基準値ｎ以上である場合（Ｙｅｓ）にはステップＳＩ６が実行され、その他の場合（Ｎｏ）にはステップＳＩ７が実行される。なお、図８に示した例では、第９のタイムチャート（Ｇ）に示したように、時刻ｔ１における連続遷移カウント値は０であって、基準値ｎに達していない。そこで、ステップＳＩ６について説明する前に、ステップＳＩ７について説明する。
【００７６】
ステップＳＩ７において、送信未了データがあるかどうかの判定が行われる。より具体的には、例えば、バッファ制御部２３１が、バッファＲＡＭ  ２４に送信未了データが残っているかどうかを検出しても良い。そして、この検出の結果、送信未了データが残っていなければ、転送終了通知信号生成部２３１ｅが転送終了通知信号Ｓ４を生成し、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３の第１受信部２３３ａに向けて出力しても良い。ステップＳＩ７の次には、送信未了データが無い場合（Ｎｏ）にはステップＳＩ８が実行され、その他の場合（Ｙｅｓ）にはステップＳＩ１に戻る。なお、図８に示した例では、第２のタイムチャート（Ｂ１）に示したように、時刻ｔ１においてデータ１が送信未了データとしてバッファＲＡＭ  ２４に残っている。そこで、ステップＳＩ８について説明する前に、図８に示した時刻ｔ１においてステップＳＩ１に戻ることについて説明する。
【００７７】
図８に示した時刻ｔ１において、ステップＳＩ１が再度実行されると、送信データとしてデータ１に続くデータ２の準備が始まる。より具体的には、前述したデータ１の準備と同様に、例えば、バッファ制御部２３１がデータ２をＣＰＵ  ３から読み出して、バッファＲＡＭ  ２４の第２の記憶領域に書き込んでも良い。
【００７８】
なお、時刻ｔ１において、バッファＲＡＭ  ２４にはデータ１が送信未了データとして格納されている。したがって、今回のステップＳＩ１では、データ２の準備と並行して、データ１の送信処理が実行される。図８に示した例によると、より具体的には、まず、ＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けて、第５のタイムチャート（Ｃ）に示したようにＥＲＤＹ  ＴＰが送信される。次に、このＥＲＤＹ  ＴＰを受信したＵＳＢホスト側装置から、ＵＳＢペリフェラル装置２に向けて、第６のタイムチャート（Ｄ）に示したように転送要求信号が送信される。次に、転送要求信号を受信したＵＳＢペリフェラル装置２から、ＵＳＢホスト側装置に向けて、第７のタイムチャート（Ｅ）に示したようにデータ１が送信される。データ１の送信が完了した時刻ｔ２において、ＵＳＢペリフェラル装置２は、第８のタイムチャート（Ｆ）に示したように、フローコントロール状態に遷移する。
【００７９】
図８に示した例では、データ１の送信と並行して行われているデータ２の準備は時刻ｔ３に完了する。ステップＳＩ１が時刻ｔ３に完了すると、前述のとおり、その次にはステップＳＩ２が実行される。
【００８０】
時刻ｔ２において、送信データとしてのデータ２は準備中であり、かつ、ＵＳＢペリフェラル装置２はフローコントロール状態に遷移した。したがって、ステップＳＩ２の判定結果は「Ｙｅｓ」となる。より具体的には、例えば、時刻ｔ２において、フローコントロール遷移通知信号生成部２３１ｂがフローコントロール遷移通知信号Ｓ２を生成し、転送速度監視制御部２３２が第１受信部２３２ａを介してこのフローコントロール遷移通知信号Ｓ２を受信しても良い。また、時刻ｔ３において、転送ステータス信号生成部２３１ｃが転送速度通知信号Ｓ３を生成し、転送速度監視制御部２３２が第２受信部２３２ｂを介してこの転送速度通知信号Ｓ３を受信しても良い。さらに、転送速度監視制御部２３２は、時刻ｔ２においてフローコントロール遷移通知信号Ｓ２が受信され、その後の時刻ｔ３において転送速度通知信号Ｓ３が受信された結果として、「送信データ準備中にフローコントロール状態に遷移した」と判定しても良い。ステップＳＩ２の次には、ステップＳＩ３が実行される。
【００８１】
ステップＳＩ３において、連続遷移カウンタのインクリメントが行われる。より具体的には、例えば、転送速度監視制御部２３２がカウンタ部２３２ｃの連続遷移カウント値をインクリメントしても良い。なお、この動作は、図８に示した例では、第９のタイムチャート（Ｇ）に示したように、時刻ｔ３、時刻ｔ５、時刻ｔ７などで実行される。ステップＳＩ３の次には、ステップＳＩ５が実行される。
【００８２】
図８に示した例では、時刻ｔ３の時点ではまだ連続遷移カウンタの値が所定の基準値ｎに達しておらず、かつ、送信未了データとしてデータ２がバッファＲＡＭ  ２４に残っている。したがって、ステップＳＩ３の後には、前述の場合と同様に、ステップＳＩ５、ＳＩ６およびＳＩ７を経て、ステップＳＩ１に戻る。
【００８３】
図８に示した例では、このようなループがさらに２回繰り返されて、時刻ｔ７に到達する際には、データ１〜３の送信が完了しており、データ４の準備も完了しており、連続遷移カウンタの値が所定の基準値ｎ（＝３）に達している状態が得られている。このとき、ステップＳＩ５における判定結果が「Ｙｅｓ」となる。より具体的には、例えば、転送速度監視制御部２３２がカウンタ部２３２ｃの連続遷移カウント値を所定の基準値ｎと比較し、その比較結果に応じて転送速度通知信号生成部２３２ｄが転送速度通知信号Ｓ３を生成し、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３がその第２受信部２３３ｂを介してこの転送速度通知信号Ｓ３を受信しても良い。その次にはステップＳＩ６が実行される。
【００８４】
ステップＳＩ６において、ＥＲＤＹ  ＴＰの送信タイミングが変更される。より具体的には、例えば、転送速度通知信号Ｓ３に応じて、ＥＲＤＹ  ＴＰ送信タイミング変更指示信号生成部２３３ｃがＥＲＤＹ  ＴＰ送信タイミング変更指示信号Ｓ５を生成し、バッファ制御部２３１に向けて出力する。ＥＲＤＹ  ＴＰ送信部２３１ｄは、バッファ制御部２３１が入力したＥＲＤＹ  ＴＰ送信タイミング変更指示信号Ｓ５に応じたタイミングで、ＥＲＤＹ  ＴＰをＵＳＢホスト側装置に向けて送信する。ステップＳＩ６の次には、ステップＳＩ７が実行される。
【００８５】
なお、図８に示した例では、時刻ｔ７以降も送信未了データがバッファＲＡＭ  ２４に残っている。さらにその後、データの送信が完了した際には、ステップＳＩ７の次にステップＳＩ８が実行される。
【００８６】
ステップＳＩ８において、連続遷移カウンタが初期化され、また、ＥＲＤＹ  ＴＰ送信タイミングも初期化される。これらの初期化を行う理由は、ＵＳＢ側装置とのデータ転送速度が、同じホストコントローラに接続されている他のＵＳＢペリフェラル装置の状態などによって変化する可能性があるからである。
【００８７】
より具体的には、転送速度監視制御部２３２が転送ステータス信号Ｓ１に応じてカウンタ部２３２ｃの連続遷移カウント値を初期化しても良いし、ＥＲＤＹ  ＴＰ送信タイミング変更指示信号生成部２３３ｃが転送終了通知信号Ｓ４に応じてＥＲＤＹ  ＴＰ送信タイミングを初期化するＥＲＤＹ  ＴＰ送信タイミング変更指示信号Ｓ５を生成し、バッファ制御部２３１に向けて出力しても良い。ステップＳＩ８の次には、ステップＳＩ１に戻る。
【００８８】
次に、ＯＵＴ転送において速度差を検出するまでの過程について説明する。図９は、一実施形態によるＵＳＢペリフェラル装置を制御する方法の、ＵＳＢホスト側装置からＵＳＢペリフェラル装置に向けたデータ送信を行う場合の一例を示すフローチャートである。図９に示したフローチャートは、第１〜８のステップＳＯ１〜ＳＯ８を含んでいる。
【００８９】
図１０は、一実施形態によるＵＳＢペリフェラル装置において、ＵＳＢホスト側装置からのデータ受信速度よりも、ＵＳＢペリフェラル装置側の受信データ処理速度の方が遅いことを認識するまでの工程の一例を示すタイムチャートである。図１０に示したタイムチャートは、第１〜８のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）、（Ｃ）〜（Ｆ）を含んでいる。
【００９０】
図１０において、第１のタイムチャート（Ａ）は、バッファＲＡＭ  ２４から処理されるデータの時間変化を表している。図１０に示した例では、時刻ｔ１まではデータ１の処理がされており、時刻ｔ１から時刻ｔ４まではデータ２の準備がされており、時刻ｔ４から時刻ｔ７まではデータ３の準備がされており、時刻ｔ７から時刻ｔ１０まではデータ４の準備がされている。
【００９１】
図１０において、第２〜４のタイムチャート（Ｂ１）〜（Ｂ３）は、ハイ状態であればバッファＲＡＭ  ２４の第１〜３の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファＲＡＭ  ２４の対応する記憶領域が書き込み可能状態であることを表している。図１０に示した例では、バッファＲＡＭ  ２４の第１の記憶領域は、時刻ｔ１まではデータ１をバッファリングしており、時刻ｔ３から時刻ｔ１０まではデータ４をバッファリングしており、その他の期間は書き込み可能状態である。バッファＲＡＭ  ２４の第２の記憶領域は、時刻ｔ４まではデータ２をバッファリングしており、時刻ｔ６以降はデータ５をバッファリングしており、その他の期間は書き込み可能状態である。バッファＲＡＭ  ２４の第３の記憶領域は、時刻ｔ７まではデータ３をバッファリングしており、時刻ｔ９以降はデータ６をバッファリングしており、その他の期間は書き込み可能状態である。
【００９２】
図１０において、第５のタイムチャート（Ｃ）は、ＥＲＤＹ  ＴＰがＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けて送信されるタイミングを表している。図１０に示した例では、時刻ｔ１、ｔ４、ｔ７およびｔ１０においてＥＲＤＹ  ＴＰが送信されている。
【００９３】
図１０において、第６のタイムチャート（Ｄ）は、ＵＳＢホスト側装置からＵＳＢペリフェラル装置２に向けてデータが送信されるタイミングを表している。図１０に示した例では、ＥＲＤＹ  ＴＰが時刻ｔ１に送信された直後、時刻ｔ２においてデータ４が送信されている。同様に、ＥＲＤＹ  ＴＰが時刻ｔ４に送信された直後、時刻ｔ５においてデータ５が送信されている。同様に、ＥＲＤＹ  ＴＰが時刻ｔ７に送信された直後、時刻ｔ８においてデータ６が送信されている。なお、ここで送信されるデータは、例えば、その時にバッファＲＡＭ  ２４に含まれるうち最も早くから書き込み可能状態になっている記憶領域にバッファリングされても良い。
【００９４】
図１０において、第７のタイムチャート（Ｅ）は、ハイ状態であればＵＳＢペリフェラル装置２がフローコントロール状態に遷移している期間を表している。図１０に示した例では、ＵＳＢペリフェラル装置２は時刻ｔ１までと、時刻ｔ３から時刻ｔ４までと、時刻ｔ６から時刻ｔ７までと、時刻ｔ９から時刻ｔ１０までとにおいて、フローコントロール状態に遷移している。
【００９５】
図１０において、第８のタイムチャート（Ｆ）は、カウンタ部２３２ｃにおける連続遷移カウント値の時間変化を表している。図１０の例では、この連続遷移カウント値は時刻ｔ４までは０であり、時刻ｔ４から時刻ｔ７までは１であり、時刻ｔ７から時刻ｔ９までは２であり、時刻ｔ１０以降は３である。
【００９６】
図９および図１０の例を用いて、一実施形態によるＵＳＢペリフェラル装置２０の動作のうち、すなわち一実施形態によるＵＳＢペリフェラル装置２０の制御方法のうち、ＵＳＢホスト側装置からＵＳＢペリフェラル装置２０へのデータ送信の一例について説明する。まず、ステップＳＯ１を実行する。
【００９７】
ステップＳＯ１において、受信データの処理が行われる。より具体的には、例えば、バッファ制御部２３１が、バッファＲＡＭ  ２４に含まれる第１の記憶領域にバッファリングされたデータ１を読み込んで、ＣＰＵ  ３に向けて送信しても良い。このステップＳＯ１は、図１０に示した例では、例えば時刻ｔ１までの期間に対応する。その結果、時刻ｔ１において、バッファＲＡＭ  ２４のうち、図１０に示した第２のタイムチャート（Ｂ１）に対応する第１の記憶領域が書き込み可能状態になる。なお、詳細は後述するが、ＵＳＢホスト側装置から受信するデータが残っている場合には、その受信処理が並行して行われる。ステップＳＯ１の次には、ステップＳＯ２が実行される。
【００９８】
ステップＳＯ２において、フローコントロール状態遷移検出部２３１ａが、受信データ処理中にフローコントロール状態に遷移したかどうかを検出する。このような遷移があった場合（Ｙｅｓ）はステップＳＯ３が実行され、このような遷移がなかった場合（Ｎｏ）はステップＳＯ４が実行される。なお、図１０に示した例では、第７のタイムチャート（Ｅ）に示したとおり、時刻ｔ１においてフローコントロール状態が終了する。そこで、ステップＳＯ３について説明する前に、ステップＳＯ４について説明する。
【００９９】
ステップＳＯ４において、連続遷移カウンタの初期化が行われる。より具体的には、例えば、転送速度監視制御部２３２が、カウンタ部２３２ｃの連続遷移カウント値を０に初期化しても良い。図１０に示した例では、第８のタイムチャート（Ｆ）に示したように、連続遷移カウント値は最初から０になっているが、時刻ｔ１で改めて０に初期化されている。ステップＳＯ４の次には、ステップＳＯ５が実行される。
【０１００】
ステップＳＯ５において、連続遷移カウンタの値が所定の基準値ｎに達したかどうかの判定が行われる。より具体的には、例えば、転送速度監視制御部２３２が、カウンタ部２３２ｃの連続遷移カウント値を読み出して、基準値ｎと比較しても良い。基準値ｎの値は適宜に設定可能であるが、ここでは一例として、基準値ｎが３に設定されている場合について説明する。ステップＳＯ５の次には、カウンタ値が基準値ｎ以上である場合（Ｙｅｓ）にはステップＳＯ６が実行され、その他の場合にはステップＳＩ７が実行される。なお、図１０に示した例では、第８のタイムチャート（Ｆ）に示したように、時刻ｔ１における連続遷移カウント値は０であって、基準値ｎ（＝３）に達していない。そこで、ステップＳＯ６について説明する前に、ステップＳＯ７について説明する。
【０１０１】
ステップＳＯ７において、最新の受信データが最終データであるかどうかの判定が行われる。より具体的には、例えば、バッファ制御部２３１が、ＵＳＢ規格で定義される変数「ＰａｃｋｅｔＰｅｎｄｉｎｇ」の値が０かどうかを検出しても良い。そして、この検出の結果、受信未了データが残っていなければ、転送終了通知信号生成部２３１ｅが転送終了通知信号Ｓ４を生成し、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３の第１受信部２３３ａに向けて出力しても良い。ステップＳＯ７の次には、受信未了データが無い場合（Ｙｅｓ）にはステップＳＯ８が実行され、その他の場合（Ｎｏ）にはステップＳＯ１に戻る。なお、図１０に示した例では、第６のタイムチャート（Ｄ）に示したように、時刻ｔ１以降もデータの受信は続く。そこで、ステップＳＯ８について説明する前に、図１０に示した時刻ｔ１においてステップＳＯ１に戻ることについて説明する。
【０１０２】
図１０に示した時刻ｔ１において、ステップＳＯ１が再度実行されると、バッファＲＡＭ  ２４にバッファリングされたデータ２の処理が始まる。より具体的には、前述したデータ１の処理と同様に、例えば、バッファ制御部２３１がバッファＲＡＭ  ２４に含まれる第２の記憶領域からデータ２を読み出して、ＣＰＵ  ３に向けて送信しても良い。
【０１０３】
なお、時刻ｔ１において、バッファＲＡＭ  ２４における第１の記憶領域は書き込み可能状態になっている。したがって、今回のステップＳＯ１では、データ２の処理と並行して、データ４の受信処理が実行される。図１０に示した例によると、より具体的には、まず、時刻ｔ１において、ＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けて、第５のタイムチャート（Ｃ）に示したようにＥＲＤＹ  ＴＰが送信される。次に、時刻ｔ２において、このＥＲＤＹ  ＴＰを受信したＵＳＢホスト側装置から、ＵＳＢペリフェラル装置２に向けて、第６のタイムチャート（Ｄ）に示したようにデータ４が送信される。データ４の送信が完了した時刻ｔ３において、ＵＳＢペリフェラル装置２は、第７のフローチャート（Ｅ）に示したように、フローコントロール状態に遷移する。
【０１０４】
図１０に示した例では、データ４の受信と並行して行われているデータ２の処理は、時刻ｔ４に完了する。ステップＳＯ１が時刻ｔ４に完了すると、前述のとおり、その次にはステップＳＯ２が実行される。
【０１０５】
時刻ｔ３において、受信済みデータとしてバッファＲＡＭ  ２４にバッファリングされているデータ２は処理中であり、かつ、ＵＳＢペリフェラル装置２はフローコントロール状態に遷移する。したがって、ステップＳＯ２の判定結果は「Ｙｅｓ」となる。より具体的には、例えば、時刻ｔ３において、フローコントロール遷移通知信号生成部２３１ｂがフローコントロール遷移通知信号Ｓ２を生成し、転送速度監視制御部２３２が第１受信部２３２ａを介してこのフローコントロール遷移通知信号Ｓ２を受信しても良い。また、時刻ｔ３において、転送ステータス信号生成部２３１ｃが転送速度通知信号Ｓ３を生成し、転送速度監視制御部２３２が第２受信部２３２ｂを介してこの転送速度通知信号Ｓ３を受信しても良い。さらに、転送速度監視制御部２３２は、時刻ｔ２においてフローコントロール遷移通知信号Ｓ２が受信され、その後の時刻ｔ３において転送速度通知信号Ｓ３が受信された結果として、「送信データ準備中にフローコントロール状態に遷移した」と判定しても良い。ステップＳＯ２の次には、ステップＳＯ３が実行される。
【０１０６】
ステップＳＯ３において、連続遷移カウンタのインクリメントが行われる。より具体的には、例えば、転送速度監視制御部２３２がカウンタ部２３２ｃの連続遷移カウント値をインクリメントしても良い。なお、この動作は、図１０に示した例では、第８のタイムチャート（Ｆ）に示したように、時刻ｔ４、時刻ｔ７、時刻ｔ１０などで実行される。ステップＳＯ３の次には、ステップＳＯ５が実行される。
【０１０７】
図１０に示した例では、時刻ｔ３の時点ではまだ連続遷移カウンタの値が所定の基準値ｎに達しておらず、かつ、時刻ｔ３以降もデータの受信が続く。したがって、ステップＳＯ３の後には、前述の場合と同様に、ステップＳＯ５、ＳＯ６およびＳＯ７を経て、ステップＳＯ１に戻る。
【０１０８】
図１０に示した例では、このようなループがさらに２回繰り返されて、時刻ｔ１０に到達する際には、データ１〜３の処理が完了しており、データ４〜６の受信も完了しており、連続遷移カウンタの値が所定の基準値ｎ（＝３）に達している状態が得られている。このとき、ステップＳＯ５における判定結果が「Ｙｅｓ」となる。より具体的には、例えば、転送速度監視制御部２３２がカウンタ部２３２ｃの連続遷移カウント値を所定の基準値ｎと比較し、その比較結果に応じて転送速度通知信号生成部２３２ｄが転送速度通知信号Ｓ３を生成し、ＥＲＤＹ  ＴＰ送信タイミング制御部２３３がその第２受信部２３３ｂを介してこの転送速度通知信号Ｓ３を受信しても良い。その次にはステップＳＯ６が実行される。
【０１０９】
ステップＳＯ６において、ＥＲＤＹ  ＴＰの送信タイミングが変更される。より具体的には、例えば、転送速度通知信号Ｓ３に応じて、ＥＲＤＹ  ＴＰ送信タイミング変更指示信号生成部２３３ｃがＥＲＤＹ  ＴＰ送信タイミング変更指示信号Ｓ５を生成し、バッファ制御部２３１に向けて出力する。ＥＲＤＹ  ＴＰ送信部２３１ｄは、バッファ制御部２３１が入力したＥＲＤＹ  ＴＰ送信タイミング変更指示信号Ｓ５に応じたタイミングで、ＥＲＤＹ  ＴＰをＵＳＢホスト側装置に向けて送信する。ステップＳＯ６の次には、ステップＳＯ７が実行される。
【０１１０】
なお、図１０に示した例では、時刻ｔ１０以降もデータの受信が続く。さらにその後、データの受信が完了した際には、ステップＳＯ７の次にステップＳＯ８が実行される。
【０１１１】
ステップＳＯ８において、連続遷移カウンタが初期化され、また、ＥＲＤＹ  ＴＰ送信タイミングも初期化される。これらの初期化を行う理由は、ＵＳＢ側装置とのデータ転送速度が、同じホストコントローラに接続されている他のＵＳＢペリフェラル装置の状態などによって変化する可能性があるからである。
【０１１２】
より具体的には、転送速度監視制御部２３２が転送ステータス信号Ｓ１に応じてカウンタ部２３２ｃの連続遷移カウント値を初期化しても良いし、ＥＲＤＹ  ＴＰ送信タイミング変更指示信号生成部２３３ｃが転送終了通知信号Ｓ４に応じてＥＲＤＹ  ＴＰ送信タイミングを初期化するＥＲＤＹ  ＴＰ送信タイミング変更指示信号Ｓ５を生成し、バッファ制御部２３１に向けて出力しても良い。ステップＳＯ８の次には、ステップＳＯ１に戻る。
【０１１３】
次に、ＩＮ転送において速度差を検出した後の過程について説明する。図１１は、一実施形態によるＵＳＢペリフェラル装置において、ＵＳＢホスト側装置に向けたデータ送信を行う際にＥＲＤＹ  ＴＰ送信タイミングの調整を行った場合の一例を示すタイムチャートである。図１１に示したタイムチャートは、第１〜９のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｇ）を含んでいる。
【０１１４】
図１１において、第１のタイムチャート（Ａ）は、データ転送の準備がされるデータの時間変化を表している。図１１に示した例では、時刻ｔ１まではデータ１の準備がされており、時刻ｔ１から時刻ｔ２まではデータ２の準備がされており、時刻ｔ２から時刻ｔ３まではデータ３の準備がされており、時刻ｔ６以降はデータ４の準備がされており、その後さらにデータ５の準備がされている。
【０１１５】
図１１において、第２〜４のタイムチャート（Ｂ１）〜（Ｂ３）は、ハイ状態であればバッファＲＡＭ  ２４の第１〜３の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファＲＡＭ  ２４の対応する記憶領域が書き込み可能状態であることを表している。図１１に示した例では、バッファＲＡＭ  ２４の第１の記憶領域は、時刻ｔ１から時刻ｔ６まではデータ１をバッファリングしており、その後さらにデータ４をバッファリングしており、その他の期間は書き込み可能状態である。バッファＲＡＭ  ２４の第２の記憶領域は、時刻ｔ２から時刻ｔ７まではデータ２をバッファリングしており、その他の期間は書き込み可能状態である。バッファＲＡＭ  ２４の第３の記憶領域は、時刻ｔ３から時刻ｔ８まではデータ３をバッファリングしており、その他の期間は書き込み可能状態である。
【０１１６】
図１１において、第５のタイムチャート（Ｃ）は、ＥＲＤＹ  ＴＰがＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けて送信されるタイミングを表している。図１１に示した例では、時刻ｔ３においてＥＲＤＹ  ＴＰが送信されている。
【０１１７】
図１１において、第６のタイムチャート（Ｄ）は、転送要求信号がＵＳＢホスト側装置からＵＳＢペリフェラル装置２に向けて送信されるタイミングを表している。図１１に示した例では、ＥＲＤＹ  ＴＰが送信された時刻ｔ３の直後、すなわち時刻ｔ４において、転送要求信号が送信されている。
【０１１８】
図１１において、第７のタイムチャート（Ｅ）は、ＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けてデータが送信されるタイミングを表している。図１１に示した例では、転送要求信号が送信された時刻ｔ４の直後、すなわち時刻ｔ５から、時刻ｔ８にかけて、データ１〜３が連続的に送信されている。なお、ここで送信されるデータ１〜３は、例えば、その時にバッファＲＡＭ  ２４にバッファリングされているデータのうち最も早くバッファリングされた順番に送信されても良い。
【０１１９】
図１１において、第８のタイムチャート（Ｆ）は、ハイ状態であればＵＳＢペリフェラル装置２がフローコントロール状態に遷移している期間を表している。図１１に示した例では、ＵＳＢペリフェラル装置２は時刻ｔ３までと、時刻ｔ８以降とにおいて、フローコントロール状態に遷移している。
【０１２０】
図１１において、第９のタイムチャート（Ｇ）は、通常ステート（Ｕ０）と、低電力ステート（Ｕ１）との間で行われるステート遷移を表している。図１１に示した例では、時刻ｔ３〜ｔ８の間では通常ステート（Ｕ０）で、それ以外の期間はほぼ低電力ステート（Ｕ１）に遷移している。
【０１２１】
図１１を用いて、一実施形態によるＵＳＢペリフェラル装置２の動作のうち、すなわち一実施形態によるＵＳＢペリフェラル装置２の制御方法のうち、ＩＮ転送においてＥＲＤＹ  ＴＰの送信タイミングを遅らせた場合の一例について説明する。
【０１２２】
図１１に示した例では、ＥＲＤＹ  ＴＰの送信タイミングが、図７および図８を用いて説明したとおりに遅らされている。より具体的には、例えば、バッファＲＡＭ  ２４に含まれる全ての記憶領域が、準備されたデータ１〜３をバッファリングする時刻ｔ３まで待ってから、通常ステート（Ｕ０）に遷移してＥＲＤＹ  ＴＰを送信しても良い。
【０１２３】
その結果、図１１に示した例では、データ１〜３を準備している期間、すなわち時刻ｔ３までは低電力ステート（Ｕ１）に連続的に滞在することが可能となっている。また、データ１〜３の送信を時刻ｔ５から時刻ｔ８にかけて連続的に行うことで、通常ステート（Ｕ０）に滞在する時間を最小限に抑えることが可能となっている。したがって、一実施形態によるＵＳＢペリフェラル装置２の消費電力が低減される。
【０１２４】
次に、ＯＵＴ転送において速度差を検出した後の過程について説明する。図１２は、一実施形態によるＵＳＢペリフェラル装置において、ＵＳＢホスト側装置からのデータ受信を行う際にＥＲＤＹ  ＴＰ送信タイミングの調整を行った場合の一例を示すタイムチャートである。図１２に示したタイムチャートは、第１〜８のタイムチャート（Ａ）、（Ｂ１）〜（Ｂ３）および（Ｃ）〜（Ｆ）を含んでいる。
【０１２５】
図１２において、第１のタイムチャート（Ａ）は、バッファＲＡＭ  ２４から処理されるデータの時間変化を表している。図１２に示した例では、時刻ｔ１まではデータ１の処理がされており、時刻ｔ１から時刻ｔ２まではデータ２の準備がされており、時刻ｔ２から時刻ｔ３まではデータ３の準備がされており、時刻ｔ５以降はデータ４の準備がされており、そのさらに後にはデータ５の準備がされている。
【０１２６】
図１２において、第２〜４のタイムチャート（Ｂ１）〜（Ｂ３）は、ハイ状態であればバッファＲＡＭ  ２４の第１〜３の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファＲＡＭ  ２４の対応する記憶領域が書き込み可能状態であることを表している。図１２に示した例では、バッファＲＡＭ  ２４の第１の記憶領域は、時刻ｔ１まではデータ１をバッファリングしており、時刻ｔ５以降はデータ４をバッファリングしており、その他の期間は書き込み可能状態である。バッファＲＡＭ  ２４の第２の記憶領域は、時刻ｔ２まではデータ２をバッファリングしており、時刻ｔ６以降はデータ５をバッファリングしており、その他の期間は書き込み可能状態である。バッファＲＡＭ  ２４の第３の記憶領域は、時刻ｔ３まではデータ３をバッファリングしており、時刻ｔ７以降はデータ６をバッファリングしており、その他の期間は書き込み可能状態である。
【０１２７】
図１２において、第５のタイムチャート（Ｃ）は、ＥＲＤＹ  ＴＰがＵＳＢペリフェラル装置２からＵＳＢホスト側装置に向けて送信されるタイミングを表している。図１２に示した例では、時刻ｔ３においてＥＲＤＹ  ＴＰが送信されている。
【０１２８】
図１２において、第６のタイムチャート（Ｄ）は、ＵＳＢホスト側装置からＵＳＢペリフェラル装置２に向けてデータが送信されるタイミングを表している。図１２に示した例では、ＥＲＤＹ  ＴＰが時刻ｔ３に送信された直後、時刻ｔ４から時刻ｔ７にかけてデータ４〜６が送信されている。なお、ここで送信されるデータは、例えば、その時にバッファＲＡＭ  ２４に含まれる中で最も早くから書き込み可能状態になっている記憶領域にバッファリングされても良い。
【０１２９】
図１２において、第７のタイムチャート（Ｅ）は、ハイ状態であればＵＳＢペリフェラル装置２がフローコントロール状態に遷移している期間を表している。図１２に示した例では、ＵＳＢペリフェラル装置２は時刻ｔ３までと、時刻ｔ７以降とにおいて、フローコントロール状態に遷移している。
【０１３０】
図１２において、第８のタイムチャート（Ｆ）は、通常ステート（Ｕ０）と、低電力ステート（Ｕ１）との間で行われるステート遷移を表している。図１２に示した例では、時刻ｔ３から時刻ｔ７までは通常ステート（Ｕ０）に遷移しており、その他の期間はほぼ低電力ステート（Ｕ１）に遷移している。
【０１３１】
図１２を用いて、一実施形態によるＵＳＢペリフェラル装置２の動作のうち、すなわち一実施形態によるＵＳＢペリフェラル装置２の制御方法のうち、ＯＵＴ転送においてＥＲＤＹ  ＴＰの送信タイミングを遅らせた場合の一例について説明する。
【０１３２】
図１２に示した例では、ＥＲＤＹ  ＴＰの送信タイミングが、図９および図１０を用いて説明したとおりに遅らされている。より具体的には、例えば、バッファＲＡＭ  ２４に含まれる全ての記憶領域が、バッファリングしていたデータ１〜３が処理されて書き込み可能状態になる時刻ｔ３まで待ってから、通常ステート（Ｕ０）に遷移してＥＲＤＹ  ＴＰを送信しても良い。
【０１３３】
その結果、図１２に示した例では、データ１〜３を処理している期間、すなわち時刻ｔ３までは低電力ステート（Ｕ１）に連続的に滞在することが可能となっている。また、データ４〜６の受信を時刻ｔ４から時刻ｔ７にかけて連続的に行うことで、通常ステート（Ｕ０）に滞在する時間を最小限に抑えることが可能となっている。したがって、一実施形態によるＵＳＢペリフェラル装置２の消費電力が低減される。
【０１３４】
一実施形態によるＵＳＢペリフェラル装置２およびその制御方法において、たとえ通常ステート（Ｕ０）に滞在する時間の総和が同じであっても、低電力ステート（Ｕ１）に滞在する時間を連続させることによって、消費電力が低減し、かつ、データ転送速度が下がらない効果が得られることについて、定量的な例を挙げて説明する。
【０１３５】
図１３は、本発明による一実施形態によるＵＳＢペリフェラル装置でＥＲＤＹ  ＴＰ送信タイミングを調整することで得られる、ステート遷移に関わる効果を示すタイムチャートである。図１３は、第１〜４のタイムチャート（Ａ）〜（Ｄ）を含んでいる。
【０１３６】
図１３において、第１のタイムチャート（Ａ）はＥＲＤＹ  ＴＰを送信するタイミングを表しており、第２のタイムチャート（Ｂ）は転送要求信号が送信されるタイミングを表しており、第３のタイムチャート（Ｃ）はデータが転送されるタイミングを表しており、第４のタイムチャート（Ｄ）は通常ステート（Ｕ０）および低電力ステート（Ｕ１）の間で遷移するタイミングを表している。
【０１３７】
ＵＳＢ３．０の規格によると、１パケットの最大サイズは１０２４バイトと定義されている。この最大サイズを有するパケットを、ＵＳＢペリフェラル装置と、ＵＳＢホスト側装置との間で転送するためには、すなわちＥＲＤＹ  ＴＰを送信してからデータの転送が完了するまでには、約２μ（マイクロ）秒の時間が必要である。この時間を、図１３では期間ｔＡとして表している。パケット転送完了後に低電力ステート（Ｕ１）への遷移を開始するまでのタイムアウト時間が任意に設定可能である。このタイムアウト時間を、ここでは一例として５マイクロ秒に設定し、図１３では期間ｔＢとして表している。
【０１３８】
また、通常ステート（Ｕ０）から低電力ステート（Ｕ１）への遷移には、約１μ秒の時間が必要である。この時間を、図１３では期間ｔＣとして表している。反対に、低電力ステート（Ｕ１）から通常ステート（Ｕ０）への遷移には、約２μ秒の時間が必要である。この時間を、図１３では期間ｔＤとして表している。
【０１３９】
以上の期間ｔＡ〜ｔＤを用いて、１０２４バイトのパケットを６５５３６個、合計６４ＭＢ（メガバイト）のデータを送信する場合について計算すると、低電力ステート（Ｕ１）に滞在出来る合計時間は、以下のように求められる。
低電力ステート滞在時間  ＝  ｛（１パケットの準備に必要な時間  ×  ＥＲＤＹ  ＴＰ送信までに準備するパケット個数）  −  （ｔＡ＋ｔＢ＋ｔＣ＋ｔＤ）｝  ×  （全転送パケット数  ÷  ＥＲＤＹ  ＴＰ送信までに準備するパケット個数）  …（式１）
【０１４０】
上記式１において、ＵＳＢペリフェラル装置２側で１パケットの準備に必要な時間を１０μ秒と置き、バッファＲＡＭ  ２４の容量を３ＫＢ（キロバイト）、すなわち３パケット分と置く。この条件を用いて、従来技術と、一実施形態とで、低電力ステート滞在時間を算出して比較する。
従来技術による低電力ステート滞在時間
＝  （（１０μ秒  ×  １）  −  （ｔＡ＋ｔＢ＋ｔＣ＋ｔＤ））  ×  （６５５３６  ÷  １）
＝０μ秒  …（式２）
一実施形態による低電力ステート滞在時間
＝  （（１０μ秒  ×  ３）  −  （ｔＡ＋ｔＢ＋ｔＣ＋ｔＤ））  ×  （６５５３６  ÷  ３）
≒４３６ｍ（ミリ）秒  …（式３）
【０１４１】
上記式２および式３を比較すると、一実施形態による低電力ステート滞在時間の方が、従来技術による低電力ステート滞在時間よりも長いことが確認される。
【０１４２】
同様に、ＵＳＢペリフェラル装置２側で１パケットの準備に必要な時間を２０μ秒と置き、バッファＲＡＭ  ２４の容量を３２ＫＢ、すなわち３２パケット分と置く。この条件を用いて、従来技術と、一実施形態とで、低電力ステート滞在時間を算出して比較する。
従来技術による低電力ステート滞在時間
＝  （（２０μ秒  ×  １）  −  （ｔＡ＋ｔＢ＋ｔＣ＋ｔＤ））  ×  （６５５３６  ÷  １）
≒６５５ｍ秒  …（式４）
一実施形態による低電力ステート滞在時間
＝  （（２０μ秒  ×  ３２）  −  （ｔＡ＋ｔＢ＋ｔＣ＋ｔＤ））  ×  （６５５３６  ÷  ３２）
≒１２９０ｍ秒  …（式５）
【０１４３】
上記式４および式５を比較しても、一実施形態による低電力ステート滞在時間の方が、従来技術による低電力ステート滞在時間よりも長く、２倍近いことが確認される。
【０１４４】
以上、発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。また、前記実施の形態に説明したそれぞれの特徴は、技術的に矛盾しない範囲で自由に組み合わせることが可能である。
【符号の説明】
【０１４５】
１  ＵＳＢ伝送線路
２  ＵＳＢペリフェラル装置
２１  物理層制御部
２２  リンク層制御部
２３  プロトコル層制御部
２３１  バッファ制御部
２３１ａ  フローコントロール状態遷移検出部
２３１ｂ  フローコントロール遷移通知信号生成部
２３１ｃ  転送ステータス信号生成部
２３１ｄ  ＥＲＤＹ  ＴＰ送信部
２３１ｅ  転送終了通知信号生成部
２３２  転送速度監視制御部
２３２ａ  第１受信部
２３２ｂ  第２受信部
２３２ｃ  カウンタ部
２３２ｄ  転送速度通知信号生成部
２３３  ＥＲＤＹ  ＴＰ送信タイミング制御部
２３３ａ  第１受信部
２３３ｂ  第２受信部
２３３ｃ  ＥＲＤＹ  ＴＰ送信タイミング変更指示信号生成部
２４  バッファＲＡＭ
３  ＣＰＵ
１０  ＵＳＢ伝送線路
２０  ＵＳＢペリフェラル装置
２０１  物理層制御部
２０２  リンク層制御部
２０３  プロトコル層制御部
２０３１  バッファ制御部
２０４  バッファＲＡＭ
３０  ＣＰＵ
Ｓ１  転送ステータス信号
Ｓ２  フローコントロール遷移通知信号
Ｓ３  転送速度通知信号
Ｓ４  転送終了通知信号
Ｓ５  ＥＲＤＹ  ＴＰ送信タイミング変更指示信号
【図１】
2014052981.tif 000003
【図２】
2014052981.tif 000004
【図３】
2014052981.tif 000005
【図４】
2014052981.tif 000006
【図５】
2014052981.tif 000007
【図６】
2014052981.tif 000008
【図７】
2014052981.tif 000009
【図８】
2014052981.tif 000010
【図９】
2014052981.tif 000011
【図１０】
2014052981.tif 000012
【図１１】
2014052981.tif 000013
【図１２】
2014052981.tif 000014
【図１３】
2014052981.tif 000015