(57)【要約】【課題】ＵＳＢ２．０のホストデバイスの消費電力を削減する。【解決手段】ＵＳＢ２．０のホストコントローラ１５０は、予め定められた所定のデータサイズを示すサイズ情報を格納するサイズ記憶部１５２と、制御実行部１５４を備える。制御実行部１５４は、ペリフェラルデバイス１７０に送信する転送要求として、サイズ記憶部１５２に格納されたサイズ情報を含む転送要求である第１種の転送要求を生成する。第１種の転送要求に応じてペリフェラルデバイス１７０が出力した転送データを受信したときに、制御実行部１５４は、システムメモリ１３２から転送情報を読み出し、該転送情報が示す前記格納先に転送データを格納する。【選択図】図１
2013246457.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ２．０（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）のホストコントローラであって、
予め定められた所定のデータサイズを示すサイズ情報を格納するサイズ記憶部と、
転送データのサイズである転送サイズと格納先とを示す転送情報であって、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）がシステムメモリに格納した前記転送情報に基づいてペリフェラルデバイスからホストデバイスへのデータ転送を制御する制御実行部とを備え、
前記制御実行部は、
前記ペリフェラルデバイスに送信する転送要求として、前記サイズ記憶部に格納された前記サイズ情報を含む転送要求である第１種の転送要求を生成し、
前記第１種の転送要求に応じて前記ペリフェラルデバイスが出力した転送データを受信したときに、前記システムメモリから前記転送情報を読み出し、該転送情報が示す前記格納先に前記転送データを格納する、
ホストコントローラ。
【請求項２】
前記制御実行部は、
前記ペリフェラルデバイスが予め定められた特定のタイプである場合においてのみ、前記第１種の転送要求を生成し、
前記ペリフェラルデバイスが前記特定のタイプ以外のタイプである場合において、前記システムメモリから前記転送情報を読み出し、該転送情報が示す前記転送サイズを含む転送要求である第２種の転送要求を生成し、
前記第２種の転送要求に応じて前記ペリフェラルデバイスが出力した転送データを受信したときに、前記転送情報が示す前記格納先に前記転送データを格納する、
請求項１に記載のホストコントローラ。
【請求項３】
前記特定のタイプは、ＩｎｔｅｒｒｕｐｔＩＮ転送タイプである、
請求項２に記載のホストコントローラ。
【請求項４】
前記制御実行部は、
前記ペリフェラルデバイスに１回目の転送要求を送信する際に、前記システムメモリから前記転送情報を読み出し、該転送情報が示す前記転送サイズを含む転送要求である第２種の転送要求を生成し、
前記第２種の転送要求に応じて前記ペリフェラルデバイスが出力した転送データを受信したときに、前記転送情報が示す前記格納先に前記転送データを格納し、
前記第２種の転送要求に対して前記ペリフェラルデバイスが拒否応答をしたときに、前記第１種の転送要求を生成する、
請求項１に記載のホストコントローラ。
【請求項５】
前記制御実行部は、
前記第２種の転送要求に対して拒否応答をした前記ペリフェラルデバイスが予め定められた特定のタイプである場合においてのみ、前記第１種の転送要求を生成し、
前記第２種の転送要求に対して拒否応答をした前記ペリフェラルデバイスが前記特定のタイプ以外のタイプである場合において、前記第２種の転送要求を生成する、
請求項４に記載のホストコントローラ。
【請求項６】
前記特定のタイプは、ＩｎｔｅｒｒｕｐｔＩＮ転送タイプである、
請求項５に記載のホストコントローラ。
【請求項７】
ＵＳＢ２．０（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）のホストデバイスであって、
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、
システムメモリと、
ホストコントローラとを備え、
前記ホストコントローラは、
予め定められた所定のデータサイズを示すサイズ情報を格納するサイズ記憶部と、
転送データのサイズである転送サイズと格納先とを示す転送情報であって、前記ＣＰＵが前記システムメモリに格納した前記転送情報に基づいてペリフェラルデバイスからホストデバイスへのデータ転送を制御する制御実行部とを備え、
前記制御実行部は、
前記ペリフェラルデバイスに送信する転送要求として、前記サイズ記憶部に格納された前記サイズ情報を含む転送要求である第１種の転送要求を生成し、
前記第１種の転送要求に応じて前記ペリフェラルデバイスが出力した転送データを受信したときに、前記システムメモリから前記転送情報を読み出し、該転送情報が示す前記格納先に前記転送データを格納する、
ホストデバイス。
【請求項８】
前記制御実行部は、
前記ペリフェラルデバイスが予め定められた特定のタイプである場合においてのみ、前記第１種の転送要求を生成し、
前記ペリフェラルデバイスが前記特定のタイプ以外のタイプである場合において、前記システムメモリから前記転送情報を読み出し、該転送情報が示す前記転送サイズを含む転送要求である第２種の転送要求を生成し、
前記第２種の転送要求に応じて前記ペリフェラルデバイスが出力した転送データを受信したときに、前記転送情報が示す前記格納先に前記転送データを格納する、
請求項７に記載のホストデバイス。
【請求項９】
前記特定のタイプは、ＩｎｔｅｒｒｕｐｔＩＮ転送タイプである、
請求項８に記載のホストデバイス。
【請求項１０】
前記制御実行部は、
前記ペリフェラルデバイスに１回目の転送要求を送信する際に、前記システムメモリから前記転送情報を読み出し、該転送情報が示す前記転送サイズを含む転送要求である第２種の転送要求を生成し、
前記第２種の転送要求に応じて前記ペリフェラルデバイスが出力した転送データを受信したときに、前記転送情報が示す前記格納先に前記転送データを格納し、
前記第２種の転送要求に対して前記ペリフェラルデバイスが拒否応答をしたときに、前記第１種の転送要求を生成する、
請求項７に記載のホストデバイス。
【請求項１１】
前記制御実行部は、
前記第２種の転送要求に対して拒否応答をした前記ペリフェラルデバイスが予め定められた特定のタイプである場合においてのみ、前記第１種の転送要求を生成し、
前記第２種の転送要求に対して拒否応答をした前記ペリフェラルデバイスが前記特定のタイプ以外のタイプである場合において、前記第２種の転送要求を生成する、
請求項１０に記載のホストデバイス。
【請求項１２】
前記特定のタイプは、ＩｎｔｅｒｒｕｐｔＩＮ転送タイプである、
請求項１１に記載のホストデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、例えばＵＳＢ２．０に準拠する通信システムにおけるホストデバイスとペリフェラルデバイス間のデータ転送技術に関する。
【背景技術】
【０００２】
ホストデバイス（以下単に「ホスト」ともいう）が転送要求を発行し、ペリフェラルデバイスがホストデバイスからの転送要求に応じて転送データをホストに転送する通信システムが知られている。このような通信システムにおけるデータ転送の制御について、様々な技術が提案されている。
【０００３】
例えば、特許文献１には、ＩＥＥＥ１３９４の通信システムにおいて、データ転送を要求する端末における転送制御装置が、システムメモリに格納された複数の転送情報（転送データ長及び転送先アドレスを含む情報）に含まれる各転送先アドレスにより夫々示される領域が連続領域を形成する場合に、該複数の転送情報のデータ転送長を加算して１つの転送要求を生成して別の端末に発行する技術が開示されている。なお、データ転送の視点からは、データ転送を要求する端末と、データ転送を要求される端末は、ホストとペリフェラルデバイスに夫々該当する。
【０００４】
この技術によれば、１つの転送要求により複数の転送情報に対応するデータの転送を実行することができるため、データ転送の効率を向上させることができる。
【０００５】
ＵＳＢ２．０通信システム（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）において、ホストコントローラは、上記転送制御装置に該当し、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）がシステムメモリに格納した転送情報に基づいて転送要求を生成してペリフェラルデバイスに発行する（非特許文献１、特許文献２）。なお、ＵＳＢ２．０システムでは、上記転送情報は、転送サイズ（上記転送データ長に該当する）と、転送されたデータの格納先を示す情報（上記転送先アドレスに該当する）を含む。
【０００６】
ＵＳＢ２．０のホストコントローラは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）から転送開始の通知がされると、システムメモリに格納された転送情報を読み出し、該転送情報が示す転送サイズを含む転送要求を、ペリフェラルデバイスに出力する。そして、転送要求に応じてペリフェラルデバイスから送信されてきた転送データを、上記転送情報が示す格納先に格納する。
【０００７】
なお、システムメモリに複数の転送情報が格納されている場合には、ホストコントローラは、ＵＳＢ２．０規格で定められた優先順序で転送情報の読出しと転送要求の出力を行う。
【０００８】
転送要求を受信したペリフェラルデバイスは、送信するデータが無い、または送信するデータの準備ができていない場合には、拒否応答を行う。拒否応答を受信した場合に、ホストコントローラは、ペリフェラルデバイスから転送データを受信するまで、システムメモリからの転送情報の読出し、転送要求の出力を繰り返す。
【０００９】
なお、ＵＳＢ規格は、下位互換性を有し、ＵＳＢ３．０のホストには、ＵＳＢ２．０のホストコントローラが設けられている。ＵＳＢ２．０のペリフェラルデバイスに対するデータ転送の制御は、ＵＳＢ２．０のホストコントローラにより制御される。
【００１０】
以下において、特別な説明が無い限り、「ホストデバイス」と「ホストコントローラ」は、ＵＳＢ２．０のホストデバイスとホストコントローラを意味し、「ペリフェラルデバイス」は、ＵＳＢ２．０のペリフェラルデバイスを意味する。また、ＵＳＢ２．０のホストデバイスは、ＵＳＢ２．０にのみ対応するホストデバイスに限らず、ＵＳＢ３．０のホストデバイスに含まれた、ＵＳＢ２．０の機能を担う機能ブロックを含む。ＵＳＢ２．０のペリフェラルデバイスも、ＵＳＢ２．０にのみ対応するペリフェラルデバイスに限らず、ＵＳＢ３．０のペリフェラルデバイスに含まれた、ＵＳＢ２．０の機能ブロックを担う機能ブロックを含む。同様に、ＵＳＢ２．０のホストコントローラも、ＵＳＢ２．０にのみ対応するホストに設けられたホストコントローラに限らず、ＵＳＢ３．０のホストに設けられたＵＳＢ２．０のホストコントローラも含む。この点に関しては、以下繰り返さない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００２−２２２１６２号公報
【特許文献２】特開２０１１−１８６９１８号公報
【非特許文献】
【００１２】
【非特許文献１】Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，Ｒｅｖｉｓｉｏｎ  ２.０，Ａｐｒｉｌ  ２７，２０００
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述したように、ホストコントローラは、ペリフェラルデバイスから転送データを受信するまで、転送情報の読出しと転送要求の出力を実行し続ける。
【００１４】
一方、ペリフェラルデバイスの中に、特にＵＳＢマウスやＵＳＢキーボードなどは、ホストに送信するデータが常にある訳ではない。そのため、ホストコントローラは、これらのペリフェラルデバイスから拒否応答を受信し続ける状況が頻繁に発生する。
【００１５】
拒否応答を受信する度にホストコントローラが転送情報の読出しを行うため、拒否応答を受信し続ける状況では、システムメモリへのアクセスの連発に伴う電力消費は、無駄である。
【００１６】
上記問題を解消するために、例えば、ホストコントローラが転送情報を保持しておき、ペリフェラルデバイスから拒否応答を受信した場合に、保持した転送情報に基づいて転送要求を再発行するようにすれば、システムメモリへのアクセス回数を減らすことができる。しかし、これでは、ペリフェラルデバイス毎に転送情報を保持するメモリをホストコントローラに設ける必要があり、ホストコントローラの回路規模が大きくなってしまう。
【００１７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１８】
一実施の形態は、ＵＳＢ２．０のホストコントローラである。該ホストコントローラは、ペリフェラルデバイスに送信する転送要求として、予め定められた所定のデータサイズを示すサイズ情報を含む転送要求である第１種の転送要求を生成する。また、該ホストコントローラは、前記第１種の転送要求に応じて前記ペリフェラルデバイスが出力した転送データを受信したときに、システムメモリから、ＣＰＵが前記システムメモリに格納した転送情報を読み出し、該転送情報が示す格納先に前記転送データを格納する。
【００１９】
なお、上記実施の形態のホストコントローラを方法やシステムに置き換えて表現したもの、該ホストコントローラを備えたホストデバイスなども、実施の形態としては有効である。
【発明の効果】
【００２０】
一実施の形態のホストコントローラによれば、消費電力を抑制することができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施の形態にかかるＵＳＢシステムを示す図である。
【図２】図１に示す第１の実施の形態におけるＵＳＢコントローラによる処理の流れを示すフローチャートである。
【図３】第２の実施の形態にかかるＵＳＢシステムにおけるＵＳＢコントローラによる処理の流れを示すフローチャートである。
【図４】第３の実施の形態にかかるＵＳＢシステムにおけるＵＳＢコントローラによる処理の流れを示すフローチャートである。
【図５】第４の実施の形態にかかるＵＳＢシステムにおけるＵＳＢコントローラによる処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２２】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００２３】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００２４】
＜第１の実施の形態＞
図１は、第１の実施の形態にかかるＵＳＢシステム１００を示す。該ＵＳＢシステム１００は、ＵＳＢ２．０のホストデバイス１１０、ＵＳＢ２．０のペリフェラルデバイス１７０を備える。なお、図１は、１つのペリフェラルデバイス１７０のみを示しているが、ペリフェラルデバイス１７０は、複数であってもよい。
【００２５】
ホストデバイス１１０は、例えばコンピュータであり、ＣＰＵ１２０、システムメモリ１３０、システムバス１４０、ホストコントローラ１５０、ペリフェラルバス１６０を有する。ホストデバイス１１０には、ＵＳＢのドライバがインストールされており、ＣＰＵは、ドライバを実行することにより、ＵＳＢ関連の処理を実現する。
【００２６】
システムメモリ１３０は、転送情報領域１３２と、データ領域１３４を有する。
ＣＰＵ１２０は、転送情報を生成して転送情報領域１３２に格納する。この転送情報は、ペリフェラルデバイス１７０に転送させる転送データのサイズ（転送サイズ）例えばパケット数と、ペリフェラルデバイス１７０からの転送データの格納先とを示すものである。なお、上記格納先を示すものは、データ領域１３４内のアドレスを示すポインタである。
【００２７】
ホストコントローラ１５０は、サイズ記憶部１５２、制御実行部１５４、データバッファ１５６を備える。
【００２８】
サイズ記憶部１５２は、予め定められた所定のデータサイズを示すサイズ情報を格納している。本実施の形態のＵＳＢシステム１００において、サイズ記憶部１５２に格納されたサイズ情報は、転送データの最小転送単位である１パケットのサイズを示す。
【００２９】
従来のホストコントローラは、ペリフェラルデバイスにデータ転送を要求する際に、システムメモリ１３０の転送情報領域１３２から転送情報を読み出して、該転送情報が示す転送サイズを含む転送要求を生成してペリフェラルデバイスに送信する。そして、転送要求に応じてペリフェラルデバイスが転送データを送信してきた場合には、上記転送情報が示す格納先に該転送データを格納する。また、転送要求に対してペリフェラルデバイスが拒否応答をした場合には、ホストコントローラは、上記転送情報の読出しと、転送要求の生成及び送信を再度行う。
【００３０】
本実施の形態において、ホストコントローラ１５０における制御実行部１５４は、ペリフェラルデバイス１７０に送信する転送要求の生成に際して、転送情報領域１３２からの転送情報の読出しをせずに、サイズ記憶部１５２に格納されたサイズ情報を含む転送用要求を生成する。そして、転送要求に応じてペリフェラルデバイス１７０が転送データを送信してきた場合には、転送情報領域１３２から転送情報を読み出し、該転送情報が示す格納先に転送データを格納するように制御を行う。また、転送要求に対してペリフェラルデバイス１７０が拒否応答した場合にも、転送情報領域１３２からの転送情報の読出しをせずに、サイズ記憶部１５２に格納されたサイズ情報を含む転送用要求を再度生成する。
【００３１】
以下の説明において、制御実行部１５４がサイズ記憶部１５２に格納されたサイズ情報で生成した転送要求を「第１種の転送要求」といい、制御実行部１５４が転送情報領域１３２から転送情報を読み出し、該転送情報に含まれる転送サイズで生成した転送要求を「第２種の転送要求」という。本第１の実施の形態において、ホストコントローラ１５０の制御実行部１５４は、第１種の転送要求のみを生成する。すなわち、本実施の形態において、制御実行部１５４は、転送要求の生成に際して、システムメモリ１３０へのアクセスを行わない。
【００３２】
データバッファ１５６は、制御実行部１５４が送信した転送要求に応じてペリフェラルデバイス１７０が送信した転送データを一時的に格納し、制御実行部１５４の制御に従って、システムメモリ１３０におけるデータ領域１３４の当該アドレスに格納する。
【００３３】
ペリフェラルデバイス１７０は、ホストデバイス１１０（具体的にはホストコントローラ１５０における制御実行部１５４）から転送要求を受信したとき、転送データの準備ができていれば、転送要求が示すサイズの転送データをホストデバイス１１０に転送する。また、転送データが無い、または転送データの準備ができていない場合には、ペリフェラルデバイス１７０は、拒否応答を行う。
【００３４】
なお、ペリフェラルデバイス１７０がホストデバイス１１０に転送する転送データのサイズは、転送要求により要求されたサイズより小さい場合もある。
【００３５】
ペリフェラルデバイス１７０は、通常のＵＳＢ２．０ペリフェラルデバイスと同様であり、ここでさらなる詳細な説明を省略する。
【００３６】
ＣＰＵ１２０、システムメモリ１３０、ホストコントローラ１５０間の通信は、システムバス１４０を介して行われる。また、ホストコントローラ１５０とペリフェラルデバイス１７０間の通信は、ペリフェラルバス１６０を介して行われる。
【００３７】
図２は、図１に示すＵＳＢシステム１００のホストデバイス１１０における制御実行部１５４による処理の流れを示すフローチャートである。
【００３８】
図示のように、制御実行部１５４は、ＣＰＵ１２０から転送開始通知を受信すると（Ｓ１００）、第１種の転送要求を生成してペリフェラルデバイス１７０に送信する（Ｓ１０２）。
【００３９】
そして、ペリフェラルデバイス１７０から転送データを受信するまで、制御実行部１５４は、ペリフェラルデバイス１７０から拒否応答を受信する度に、第１種の転送要求の生成と送信を繰り返す（Ｓ１０４：Ｙｅｓ、Ｓ１０２）。
【００４０】
ペリフェラルデバイス１７０から転送データを受信すると、制御実行部１５４は、該転送データの格納先を知るために転送情報領域１３２から転送情報を読み出し、該転送情報が示す格納先への転送データの出力をデータバッファ１５６に行わせる（Ｓ１０４：Ｎｏ、Ｓ１０６、Ｓ１０８）。
【００４１】
そして、制御実行部１５４は、データ領域１３４に格納した転送データのサイズを示す情報（ここではサイズ記憶部１５２に格納されたサイズ情報と同一である）が含まれる転送完了通知をＣＰＵ１２０に送信する（Ｓ１１０）。
【００４２】
このように、本実施の形態のＵＳＢシステム１００において、ホストデバイス１１０は、ペリフェラルデバイス１７０に送信する転送要求を生成する際に、システムメモリ１３０にアクセスしないため、特にペリフェラルデバイス１７０が拒否応答をし続ける状況において、消費電力を節約することができる。また、サイズ記憶部１５２は、ペリフェラルデバイスの数に関わらず、予め定められた１つのデータサイズを示すサイズ情報のみを格納できればよいので、ホストコントローラの回路規模の増大を抑制することができる。
【００４３】
＜第２の実施の形態＞
第２の実施の形態もＵＳＢシステムである。該第２の実施の形態のＵＳＢシステムは、制御実行部が、図１に示すＵＳＢシステム１００のホストデバイス１１０における制御実行部１５４と異なる点を除き、ＵＳＢシステム１００と同様である。そのため、第２の実施の形態のＵＳＢシステムに対して、制御実行部のみを説明する。
【００４４】
図３は、第２の実施の形態における制御実行部による処理の流れを示すフローチャートである。なお、図３のフローチャートにおいて、図２におけるステップ番号が付与されたステップは、図２において該ステップ番号が示すステップと同様の処理である。
【００４５】
本第２の実施の形態において、制御実行部は、ＣＰＵ１２０から転送開始通知を受信すると（Ｓ１００）、まず、転送要求の送信先のペリフェラルデバイス１７０がＩｎｔｅｒｒｕｐｔＩＮ転送タイプであるか否かを確認する（Ｓ１２０）。
【００４６】
ペリフェラルデバイス１７０がＩｎｔｅｒｒｕｐｔＩＮ転送タイプである場合に（Ｓ１２０：Ｙｅｓ）、制御実行部は、ステップＳ１０２〜ステップＳ１１０の処理を行う。これらの処理は、図２におけるステップＳ１０２〜ステップＳ１１０の処理と同様である。
【００４７】
一方、ペリフェラルデバイス１７０がＩｎｔｅｒｒｕｐｔＩＮ転送タイプではない場合には（Ｓ１２０：Ｎｏ）、制御実行部は、転送情報領域１３２から転送情報を読み出し、該転送情報が示す転送サイズで転送要求（第２種の転送要求）を生成してペリフェラルデバイス１７０に送信する（Ｓ１２２、Ｓ１２４）。
【００４８】
そして、ペリフェラルデバイス１７０から転送データを受信するまで、制御実行部は、ペリフェラルデバイス１７０から拒否応答を受信する度に、転送情報領域１３２からの転送情報の読出し、第２種の転送要求の生成と送信を繰り返す（Ｓ１２６：Ｙｅｓ、Ｓ１２２、Ｓ１２４）。
【００４９】
ペリフェラルデバイス１７０から転送データを受信すると、制御実行部は、ステップＳ１２２で転送情報領域１３２から読み出した転送情報が示す格納先に転送データを出力することをデータバッファ１５６に行わせる（Ｓ１２６：Ｎｏ、Ｓ１０８）。
その後、制御実行部は、ＣＰＵ１２０に転送完了通知を出力する（Ｓ１１０）。
【００５０】
図３に示すフローチャートにおいて、ステップＳ１０２〜ステップＳ１１０の処理は、第１の実施の形態にかかるＵＳＢシステム１００の制御実行部１５４の処理と同様である、ステップＳ１２２〜ステップＳ１１０の処理は、従来のホストコントローラの処理と同様である。
【００５１】
すなわち、本第２の実施の形態において、ホストコントローラは、拒否応答を連続して行う状況が頻繁に生じる可能性の高いＩｎｔｅｒｒｕｐｔＩＮ転送タイプのペリフェラルデバイスの場合においてのみ、転送要求を生成する際に第１種の転送要求を生成し、転送が成功した後にシステムメモリ１３０から転送情報を読み出す。これにより、第１の実施の形態にかかるＵＳＢシステム１００と同様に、ホストコントローラの消費電力を削減する。
【００５２】
他のタイプのペリフェラルデバイスの場合には、従来のホストコントローラと同様に、転送要求を生成する際にシステムメモリ１３０から転送情報を読み出し、転送情報に基づいて第２種の転送要求を生成する。これにより、拒否応答を連続して行う状況が頻繁に生じる可能性の低い他のタイプのペリフェラルデバイスの場合において、転送効率の低下を防ぐことができる。
【００５３】
＜第３の実施の形態＞
第３の実施の形態もＵＳＢシステムである。該第３の実施の形態のＵＳＢシステムは、制御実行部が、図１に示すＵＳＢシステム１００のホストデバイス１１０における制御実行部１５４と異なる点を除き、ＵＳＢシステム１００と同様である。そのため、本第３の実施の形態のＵＳＢシステムに対して、制御実行部のみを説明する。
【００５４】
図４は、第３の実施の形態における制御実行部による処理の流れを示すフローチャートである。なお、図４のフローチャートにおいて、図２におけるステップ番号が付与されたステップは、図２において該ステップ番号が示すステップと同様の処理である。
【００５５】
本第３の実施の形態において、制御実行部は、ＣＰＵ１２０から転送開始通知を受信すると（Ｓ１００）、１つ目の転送要求を生成するために、転送情報領域１３２から転送情報を読み出す（Ｓ１３０）。そして、該転送情報が示す転送サイズで転送要求（第２種の転送要求）を生成してペリフェラルデバイス１７０に送信する（Ｓ１３２）。
【００５６】
そして、１つ目の転送要求（第２種の転送要求）に対してペリフェラルデバイス１７０が転送データを送信した場合に（Ｓ１３４：Ｎｏ）、制御実行部は、ステップＳ１３０で転送情報領域１３２から読み出した転送情報が示す格納先に転送データを出力することをデータバッファ１５６に行わせると共に、ＣＰＵ１２０に転送完了通知を出力する（Ｓ１０８、Ｓ１１０）。
【００５７】
なお、「１つ目の転送要求」とは、システムの起動後に該ペリフェラルデバイス１７０に初めて送信する転送要求、または、該ペリフェラルデバイス１７０からのデータ転送の成功後に初めて該ペリフェラルデバイス１７０に送信する転送要求を意味する。
【００５８】
ここまでに制御実行部が行った処理は、従来のホストコントローラが行う処理と同様である。
【００５９】
ステップＳ１３４において、１つ目の転送要求（第２種の転送要求）に対してペリフェラルデバイス１７０が拒否応答をした場合に（Ｓ１３４：Ｙｅｓ）、制御実行部は、ステップＳ１０２〜ステップＳ１１０の処理を行う。これらの処理は、図２におけるステップＳ１０２〜ステップＳ１１０の処理と同様である。
【００６０】
すなわち、本第３の実施の形態において、制御実行部は、１つ目の転送要求の送信に際して、従来のホストコントローラと同様に、転送要求を生成する際にシステムメモリ１３０から転送情報を読み出し、転送情報に基づいて第２種の転送要求を生成する。
【００６１】
一方、１つ目の転送要求に対してペリフェラルデバイス１７０が拒否応答をした後には、制御実行部は、転送要求を生成する際に、システムメモリ１３０へのアクセスをせずに第１種の転送要求を生成し、転送が成功した後にシステムメモリ１３０から転送情報を読み出す。
【００６２】
１つ目の転送要求に対して拒否応答をしたペリフェラルデバイスは、その後の転送要求に対しても拒否応答をする可能性が高い。そのため、本第３の実施の形態にかかるＵＳＢシステムのホストコントローラによれば、拒否応答の可能性が高い場合においてのみシステムメモリ１３０へのアクセスをせずに第１種の転送要求を生成してペリフェラルデバイスに送信することにより、消費電力を削減することができる。また、１つ目の転送要求のときには、第２種の転送要求を生成して送信することにより、既に転送準備ができたペリフェラルデバイスにＣＰＵ１２０が要求した転送サイズの転送データを送信させることができ、転送効率を高めることができる。
【００６３】
＜第４の実施の形態＞
第４の実施の形態もＵＳＢシステムである。該第４の実施の形態のＵＳＢシステムは、制御実行部が、第３の実施の形態にかかるＵＳＢシステムにおける制御実行部と異なる点を除き、第３の実施の形態にかかるＵＳＢシステムと同様である。そのため、本第４の実施の形態のＵＳＢシステムに対しても、制御実行部のみを説明する。
【００６４】
図５は、第４の実施の形態における制御実行部による処理の流れを示すフローチャートである。なお、図５のフローチャートにおいて、図４におけるステップ番号が付与されたステップは、図４において該ステップ番号が示すステップと同様の処理である。
【００６５】
本第４の実施の形態において、制御実行部は、ＣＰＵ１２０から転送開始通知を受信すると（Ｓ１００）、１つ目の転送要求を生成するために、転送情報領域１３２から転送情報を読み出す（Ｓ１３０）。そして、該転送情報が示す転送サイズで転送要求（第２種の転送要求）を生成してペリフェラルデバイス１７０に送信する（Ｓ１３２）。
【００６６】
そして、１つ目の転送要求（第２種の転送要求）に対してペリフェラルデバイス１７０が転送データを送信した場合に（Ｓ１３４：Ｎｏ）、制御実行部は、ステップＳ１３０で転送情報領域１３２から読み出した転送情報が示す格納先に転送データを出力することをデータバッファ１５６に行わせると共に、ＣＰＵ１２０に転送完了通知を出力する（Ｓ１０８、Ｓ１１０）。
【００６７】
ここまでに制御実行部が行った処理は、第３の実施の形態にかかるＵＳＢシステムにおけるホストコントローラ、及び従来のホストコントローラが行う処理と同様である。
【００６８】
ステップＳ１３４において、１つ目の転送要求（第２種の転送要求）に対してペリフェラルデバイス１７０が拒否応答をした場合に（Ｓ１３４：Ｙｅｓ）、制御実行部は、制御実行部は、転送要求の送信先のペリフェラルデバイス１７０がＩｎｔｅｒｒｕｐｔＩＮ転送タイプであるか否かを確認する（Ｓ１４０）。
【００６９】
ペリフェラルデバイス１７０がＩｎｔｅｒｒｕｐｔＩＮ転送タイプである場合に（Ｓ１４０：Ｙｅｓ）、制御実行部は、ステップＳ１０２〜ステップＳ１１０の処理を行う。これらの処理は、図２〜図４におけるステップＳ１０２〜ステップＳ１１０の処理と同様である。
【００７０】
一方、ペリフェラルデバイス１７０がＩｎｔｅｒｒｕｐｔＩＮ転送タイプではない場合には（Ｓ１４０：Ｎｏ）、制御実行部は、転送情報領域１３２から転送情報を読み出し、該転送情報が示す転送サイズで転送要求（第２種の転送要求）を生成してペリフェラルデバイス１７０に送信する（Ｓ１４２、Ｓ１４４）。
【００７１】
そして、ペリフェラルデバイス１７０から転送データを受信するまで、制御実行部は、ペリフェラルデバイス１７０から拒否応答を受信する度に、転送情報領域１３２からの転送情報の読出し、第２種の転送要求の生成と送信を繰り返す（Ｓ１４６：Ｙｅｓ、Ｓ１４２、Ｓ１４４）。
【００７２】
ペリフェラルデバイス１７０から転送データを受信すると、制御実行部は、ステップＳ１４２で転送情報領域１３２から読み出した転送情報が示す格納先に転送データを出力することをデータバッファ１５６に行わせる（Ｓ１４６：Ｎｏ、Ｓ１０８）。
その後、制御実行部は、ＣＰＵ１２０に転送完了通知を出力する（Ｓ１１０）
【００７３】
本第４の実施の形態にかかるＵＳＢシステムは、第１〜第３の実施の形態の組合せであり、第１〜第３の実施の形態にかかる各ＵＳＢシステムの効果を得ることができる。
【００７４】
なお、第２の実施の形態と第４の実施の形態において、ホストコントローラは、対象のペリフェラルデバイスがＩｎｔｅｒｒｕｐｔＩＮ転送タイプである否かに応じて、第１種の転送要求と第２種の転送要求のどちらを生成するかを判定している。この判定は、ＩｎｔｅｒｒｕｐｔＩＮ転送タイプである否かに基づいてなされるとは限らず、例えば、予め定められた特定の転送タイプであるか否かに基づいてなされるようにしてもよい。
【００７５】
例えば、上記特定の転送タイプが、ＩｎｔｅｒｒｕｐｔＩＮ転送タイプに属する全ての種類ではなく、ＩｎｔｅｒｒｕｐｔＩＮ転送タイプに属する特定の種類（例えばマウス）であるようにしてもよい。
【００７６】
勿論、システムの用途などに応じて、上記特定の転送タイプがＢｕｌｋＩＮ転送タイプ、または、ＢｕｌｋＩＮ転送タイプに属する特定の種類（例えばハードディスク）であるようにしてもよい。
【００７７】
また、上記特定の転送タイプの数も、１つに限られることがなく、複数であってもよい。さらに、この場合において、複数の特定の転送タイプのうちに、ＩｎｔｅｒｒｕｐｔＩＮ転送タイプに属する種類と、ＢｕｌｋＩＮ転送タイプに属する種類が混在してもよい。
【００７８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００７９】
１００  ＵＳＢシステム
１１０  ホストデバイス
１２０  ＣＰＵ
１３０  システムメモリ
１３２  転送情報領域
１３４  データ領域
１４０  システムバス
１５０  ホストコントローラ
１５２  サイズ記憶部
１５４  制御実行部
１５６  データバッファ
１６０  ペリフェラルバス
１７０  ペリフェラルデバイス
【図１】
2013246457.tif 000003
【図２】
2013246457.tif 000004
【図３】
2013246457.tif 000005
【図４】
2013246457.tif 000006
【図５】
2013246457.tif 000007