(57)【要約】【課題】ＵＳＢデータ転送の転送速度を向上させて、他機能モジュールが転送データにアクセス可能なアクセス時間を確保する。【解決手段】ＵＳＢホストシステム１０５の内部に共用メモリ１０３と専用メモリ１０７とを備える。ＵＳＢホストコントローラ１０１及び外部モジュール１０４によって共用されるべき転送データ００３を前記共用メモリ１０３に保存し、前記ＵＳＢホストコントローラ１０１によって専用されるべき管理データ００４を前記専用メモリ１０７に保存する。管理データ００４が保存される専用メモリ１０７を設けることにより、前記ＵＳＢホストコントローラ１０１及び前記外部モジュール１０４による転送データ００３の共用を維持しつつ、前記外部モジュール１０４が転送データ００３にアクセスするメモリアクセスと、前記ＵＳＢホストコントローラ１０１が管理データ００４にアクセスするメモリアクセスとのアクセス競合を回避する。【選択図】図１
2008299747.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢデバイス機器とＵＳＢ転送を行うためのＵＳＢホスト機能を有するＵＳＢホストモジュールと、
前記ＵＳＢ転送の対象となる転送データを用いた所定の機能を有する他機能モジュールと、
前記ＵＳＢホストモジュール及び前記他機能モジュールによって共用される少なくとも１つ以上の共用メモリと、
前記ＵＳＢホストモジュールによって専用される少なくとも１つ以上の専用メモリとを備え、
前記専用メモリには、少なくとも前記ＵＳＢ転送を行うための管理データの一部が保存される
ことを特徴とするＵＳＢホストシステム。
【請求項２】
前記請求項１記載のＵＳＢホストシステムにおいて、
前記専用メモリには、ＵＳＢ転送での管理データの全部が保存され、
前記共用メモリには、ＵＳＢ転送での転送データの全部が保存される
ことを特徴とするＵＳＢホストシステム。
【請求項３】
前記請求項１記載のＵＳＢホストシステムにおいて、
前記専用メモリには、ＵＳＢ転送での管理データの全部及びＵＳＢ転送での転送データの一部が保存され、
前記共用メモリには、前記ＵＳＢ転送での転送データの他部が保存される
ことを特徴とするＵＳＢホストシステム。
【請求項４】
前記請求項１記載のＵＳＢホストシステムにおいて、
前記専用メモリには、ＵＳＢ転送での管理データの一部が保存され、
前記共用メモリには、前記ＵＳＢ転送での管理データの他部及びＵＳＢ転送での転送データの全部が保存される
ことを特徴とするＵＳＢホストシステム。
【請求項５】
前記請求項１記載のＵＳＢホストシステムにおいて、
前記専用メモリには、ＵＳＢ転送での管理データの一部及びＵＳＢ転送での転送データの一部が保存され、
前記共用メモリには、前記ＵＳＢ転送での管理データの他部及び前記ＵＳＢ転送での転送データの他部が保存される
ことを特徴とするＵＳＢホストシステム。
【請求項６】
前記請求項１〜５の何れか一項に記載のＵＳＢホストシステムにおいて、
前記ＵＳＢ転送での管理データは、前記ＵＳＢホストモジュールがトランザクションを構築・管理する際に用いるデータである
ことを特徴とするＵＳＢホストシステム。
【請求項７】
前記請求項６記載のＵＳＢホストシステムにおいて、
前記ＵＳＢ転送での管理データは、ＵＳＢバルク転送におけるＱｕｅｕｅ  Ｈｅａｄ及びＱｕｅｕｅ  Ｅｌｅｍｅｎｔ  Ｔｒａｎｓｆｅｒ  Ｄｅｓｃｒｉｐｔｏｒである
ことを特徴とするＵＳＢホストシステム。
【請求項８】
前記請求項１〜５の何れか一項に記載のＵＳＢホストシステムにおいて、
前記ＵＳＢホストモジュールの内部に前記専用メモリを備えた
ことを特徴とするＵＳＢホストシステム。
【請求項９】
ＵＳＢデバイス機器とＵＳＢ転送を行うためのＵＳＢホスト機能を有するＵＳＢホストモジュールと、
前記ＵＳＢ転送の対象となる転送データを用いた所定の機能を有する他機能モジュールと、
前記ＵＳＢホストモジュール及び前記他機能モジュールによって共用され、前記ＵＳＢ転送での転送データの全部が保存される少なくとも１つ以上の共用メモリと、
前記ＵＳＢホストモジュールの内部に配置されると共に、当該ＵＳＢホストモジュールによって専用され、少なくともＵＳＢバルク転送におけるＱｕｅｕｅ  Ｈｅａｄ及びＱｕｅｕｅ  Ｅｌｅｍｅｎｔ  Ｔｒａｎｓｆｅｒ  Ｄｅｓｃｒｉｐｔｏｒの全部が保存される少なくとも１つ以上の専用メモリとを備えた
ことを特徴とするＵＳＢホストシステム。
【請求項１０】
前記請求項１〜５及び８の何れか一項に記載のＵＳＢホストシステムにおいて、
当該ＵＳＢホストシステムの少なくとも一部は、１チップ上に配置されたシステムＬＳＩとして形成されている
ことを特徴とするＵＳＢホストシステム。
【請求項１１】
前記請求項１記載のＵＳＢホストシステムにおいて前記ＵＳＢデバイス機器から前記他機能モジュールに転送データを転送する転送データの転送方法であって、
前記ＵＳＢホストモジュールが、前記専用メモリに保存された管理データを読み込んで、トランザクションを構築するトランザクション構築ステップと、
前記ＵＳＢホストモジュールが、前記トランザクション構築ステップにおいて構築したトランザクションに基づいて、前記ＵＳＢデバイス機器から転送データを読み込み、その転送データを前記共用メモリに保存する転送データ保存ステップと、
前記ＵＳＢホストモジュールが、前記転送データ保存ステップにおけるデータ転送の転送情報を前記専用メモリ内の管理データに書き込む管理データ書込ステップと、
前記管理データ書込ステップと並行して、前記他機能モジュールが、前記転送データ保存ステップにおいて保存した前記共用メモリ内の転送データを読み込む転送データ読込ステップとを備えた
ことを特徴とする転送データの転送方法。
【請求項１２】
前記請求項１１記載の転送データの転送方法において、
前記転送データ読込ステップにおいて前記他機能モジュールが前記共用メモリ内の転送データを読み込んでいるとき、
前記共用メモリに保存された転送データの次の転送データについての管理データを前記トランザクション構築ステップにおいて前記専用メモリ内から読み込んでトランザクションを構築する
ことを特徴とする転送データの転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（以下、ＵＳＢと言う）のホスト機能を有するＵＳＢホストシステムに関し、特に、ＵＳＢホストコントローラのメモリアクセスに関するものである。
【背景技術】
【０００２】
現在、ＵＳＢはパーソナルコンピュータ（以下、ＰＣと言う）に周辺機器を容易に接続するためのインターフェースとして普及しており、その搭載率はほぼ１００％である。ＵＳＢのＲｅｖｉｓｉｏｎ２．０（以下、ＵＳＢ２．０と言う）の規格では、従来よりも高速化が図られ、最大データ転送速度が４８０Ｍｂｐｓと規定されている。そして、映像などを扱うＡＶ機器とＰＣとのインターフェースとしてＵＳＢ２．０が採用されるようになっている。
【０００３】
近年では、ＰＣだけでなく、ＡＶ家電など様々な機器がＵＳＢホストコントローラを備えてＵＳＢホストとしての機能を持ち、様々なＵＳＢデバイスを活用できるようになっている。また、ＵＳＢホストコントローラに関しては、当初はＰＣ向けのＬＳＩのみであったが、現在では様々なメーカーから組み込み機器向けのＬＳＩや、ＵＳＢホスト機能内蔵のシステムＬＳＩが開発されている。
【０００４】
ＵＳＢ機器には、ＵＳＢホストコントローラを備えたＵＳＢホスト機器及び、ＵＳＢデバイス機器の２種類があり、ＵＳＢのデータ転送は、常にＵＳＢホスト機器が主導してＵＳＢデバイス機器に対して処理を行う形態である。
【０００５】
このＵＳＢのデータ転送は、トランザクション単位で行われており、１つのトランザクションは複数のフェーズで構成されている。例えば、データＩＮのトランザクションは、ホスト機器がデバイス機器へＩＮトークンを発行するトークン・フェーズと、ホスト機器がデバイス機器からのデータパケット（転送データ）を受信するデータ・フェーズと、ホスト機器がデバイス機器へデータ受信の成否を通知するハンドシェーク・フェーズとによって構成されている。１つのトランザクションで転送可能な最大転送データサイズは、転送タイプによって異なる。フルスピード時の最大転送データサイズは、コントロール転送、バルク転送、及びインタラプト転送では６４バイトであり、アイソクロナス転送では１０２３バイトである。また、ハイスピード時の最大転送データサイズは、コントロール転送では６４バイト、バルク転送では５１２バイト、インタラプト転送及びアイソクロナス転送では１０２４バイトである。ＵＳＢでは、このようなトランザクションを繰り返すことによって、大きなサイズのデータを転送している。
【０００６】
ＵＳＢのホスト機器がデータ転送を行う際には、転送サイズ、転送先、転送状態や転送データ用バッファへのポインタなどの情報が含まれる管理データを使用してトランザクションを構築する。複数のトランザクションによって複数の転送データを転送する際には、各々のトランザクション毎に管理データをホスト機器に読み込んで、各々のトランザクションを構築する必要がある。
【０００７】
以下に、ＵＳＢ２．０対応のホストコントローラ規格であるＥＨＣＩ（Ｅｎｈａｎｃｅｄ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ）規格に依るバルク転送における管理データであるＱｕｅｕｅ  Ｈｅａｄ（以下、ＱＨと言う）及び、Ｑｕｅｕｅ  Ｅｌｅｍｅｎｔ  Ｔｒａｎｓｆｅｒ  Ｄｅｓｃｒｉｐｔｏｒ（以下、ｑＴＤと言う）について説明する。
【０００８】
図８は、ＱＨの全体構成の構成図であり、図９はｑＴＤの全体構成の構成図である。
【０００９】
図８において、０３−００Ｈ（８０１）は、Ｑｕｅｕｅ  Ｈｅａｄ  Ｈｏｒｉｚｏｎｔａｌ  Ｌｉｎｋ  Ｐｏｉｎｔｅｒ(ＱＨＬＰ）を含むデータ、０Ｂ−０４Ｈ（８０２）は、ＵＳＢ転送に使用するエンドポイントの特性、０Ｆ−０ＣＨ（８０３）は、現在のｑＴＤへのポインタなどである。また、２Ｆ−１０Ｈ（８０４）は、トランザクションの作業空間の情報などであり、このうち、２７−１４Ｈ（８０５）には、ＵＳＢ転送の転送結果などが格納される。
【００１０】
図９において、０７−００Ｈ（９０１）は、後続のｑＴＤへのポインタ、０Ｂ−０８Ｈ（９０２）は、要求されるトランザクションの内容、１Ｆ−０ＣＨ（９０３）は、転送データ用バッファへのポインタなどである。
【００１１】
管理データとしては、上記のＱＨやｑＴＤの他に、アイソクロナス転送で使用するＩｓｏｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｄｅｓｃｒｉｐｔｏｒ（ｉＴＤ）などがある。
【００１２】
ＵＳＢホストコントローラは、これらの管理データを使用してトランザクションを構築し、このトランザクションを用いてＵＳＢの転送データ保存用のメモリへのＲｅａｄ／Ｗｒｉｔｅを行う。そして、転送結果やエラー情報などを管理データに書き込んだ後に、後続のデータ転送用の管理データを得て、後続のトランザクションを構築する。
【００１３】
従来のＵＳＢホストシステムとして、図１０の技術が知られている。
【００１４】
図１０は、従来のＵＳＢホストシステムの全体構成のブロック図である。
【００１５】
同図において、ＵＳＢホストシステム１００５は、当該ＵＳＢホストシステム１００５の全体を制御するＣＰＵ１０１０と、ＵＳＢホスト機能を有し、ＵＳＢ転送の制御を行うＵＳＢホストコントローラ１００１と、ＵＳＢホスト機能以外の機能を有する外部モジュール１００４とを備えている。前記ＣＰＵ１０１０、前記ＵＳＢホストコントローラ１００１、前記外部モジュール１００４の各々からシステムメモリ１００３へのメモリアクセスは、メモリコントローラ（Ｍ／Ｃ）１００２を介して行われる。また、当該ＵＳＢホストシステム１００５の外部とのデータ転送はＵＳＢデータバス１００６を介して行われる。
【００１６】
上記のＵＳＢホストシステム１００５において、外部から転送されたり、外部に転送される転送データ００３は、前記システムメモリ１００３に保存される。また、ＵＳＢ転送を行う際のトランザクション構築に用いられる管理データ００４は、前記ＣＰＵ１０１０によって前記システムメモリ１００３上に作成される。
【００１７】
以下に、上記のＵＳＢホストシステム１００５によって、ＵＳＢメモリ１０１１に格納されている動画データをシステムメモリ１００３に読み込み、その動画データを外部モジュール１００４において再生処理を行う場合の動作を示す。
【００１８】
まず、外部モジュール１００４からＣＰＵ１０１０に対してＵＳＢデータ転送の要求が発行されると、前記ＣＰＵ１０１０は、システムメモリ１００３に管理データ００４を生成する。
【００１９】
そして、前記ＣＰＵ１０１０の指示に基づいて、ＵＳＢホストコントローラ１００１は、前記システムメモリ１００３内の管理データ００４を読み込んで、トランザクションを構築する。
【００２０】
次に、前記ＵＳＢホストコントローラ１００１は、構築したトランザクションに基づいて、前記ＵＳＢメモリ１０１１内の動画データを読み込んで、読み込んだ転送データ００３を前記システムメモリ１００３に保存する。
【００２１】
そして、前記外部モジュール１００４は、前記ＵＳＢホストコントローラ１００１が前記システムメモリ１００３に保存した転送データ００３を読み込んで再生処理し、その処理結果をディスプレイなどに出力する。
【００２２】
ここで、前記ＵＳＢメモリ１０１１から読み込まれた転送データ００３が、前記ＵＳＢホストコントローラ１００１及び前記外部モジュール１００４によって共用されているシステムメモリ１００３に保存されることにより、前記外部モジュール１００４が前記転送データ００３を処理することが可能となる。
【００２３】
図１１は、従来のＵＳＢホストシステム１００５におけるＵＳＢリードトランザクションの実行時のＵＳＢのデータ転送及び管理情報の処理を模式的に示した模式図である。
【００２４】
まず、ＵＳＢによる転送要求が発生すると、ＵＳＢホストコントローラ１００１は、システムメモリ１００３内の管理データ００４のＱＨを読み込んで、そのＱＨに基づいて転送設定を行い、トランザクションを構築する（ステップＳ１１０１）。次に、前記ステップＳ１１０１において構築したトランザクションを実行して、ＵＳＢでの転送データ００３のシステムメモリ１００３内へのＲｅａｄ／Ｗｒｉｔｅを行い、その実行結果である転送結果やエラー情報などを前記ＱＨに記録する（ステップＳ１１０２）。そして、前記ステップＳ１１０２において記録したＱＨの内容をｑＴＤに反映し（ステップＳ１１０３）、次の転送を行うためのＱＨを読み込む状態に移行する（ステップＳ１１０４）。その後、外部モジュール１００４は、転送データ００３を読み込むためのメモリアクセスを前記システムメモリ１００３に対して行う（ステップＳ１１０５）。
【００２５】
上記のステップＳ１１０１〜Ｓ１１０４において、前記ＵＳＢホストコントローラ１００１は、管理データ００４に対しては、転送情報の準備及び転送状態の更新の際に４回のアクセスを行うと共に、転送データ００３に対しては、書き込みの際に１回のアクセスを行う。その後、上記ステップＳ１１０５において、前記外部モジュール１００４は、転送データ００３に対して、読み込みの際に１回のアクセスを行う。
【００２６】
図１２は、従来のＵＳＢホストシステム１００５における単純なＵＳＢリードトランザクションの実行時のメモリアクセスを模式的に示した模式図である。
【００２７】
同図において、横軸は時間を表しており、ＵＳＢホストコントローラ１００１及び外部モジュール１００４は共にシステムメモリ１００３にアクセスする。
【００２８】
まず、ＵＳＢホストコントローラ１００１は、システムメモリ１００３内の管理データ００４を読み込み（１２０１）、前記管理データに００４基づいて、トランザクションを構築する（１２０２）。次に、前記ＵＳＢホストコントローラ１００１は、構築したトランザクションに基づいて、ＵＳＢホストシステム１００５の外部から受信した転送データ００３を前記システムメモリ１００３に記録する（１２０３）。そして、前記ＵＳＢホストコントローラ１００１は、上記トランザクションにおける転送状態を前記システムメモリ１００３内の管理データ００４に反映する（１２０４）。その後、ＵＳＢデータ転送の要求元である外部モジュール１００４が、前記システムメモリ１００３から転送データ００３を取得する（１２０５）。
【００２９】
上記の１２０１〜１２０５の一連の処理を行うことによって、ＵＳＢデータ転送が完了となる。前記外部モジュール１００４が前記システムメモリ１００３からの転送データ００３の取得を完了した後に、続くＵＳＢデータ転送の実行が可能となり、複数の転送データをＵＳＢ転送する際には、上記の１２０１〜１２０５と同様の処理である１２０６〜１２１０のＵＳＢ転送を行って、前記ＵＳＢホストコントローラ１００１が新たなトランザクション用の管理データ００４を読み込み、そのトランザクションの構築・実行などの処理を行う。
【００３０】
例えば、ＵＳＢホストシステムとして特許文献１記載の技術が知られている。前記特許文献１記載の技術では、システムメモリに保存された管理データをＵＳＢホストモジュール内部のメモリ（データフェッチユニット）にフェッチし、フェッチした管理データを用いてトランザクションを構築・実行し、そのトランザクションの転送結果をシステムメモリ内の管理データにフィードバックする処理を行って、ＵＳＢでのデータ転送を行っている。
【特許文献１】国際公開第０３／０７９２００号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【００３１】
しかしながら、前記従来のＵＳＢホストシステム１００５では、ＵＳＢデータ転送の速度が不足すると、例えば外部モジュール１００４による動画再生処理が通常通り行われなくて、コマ送りとなったり、動画が停止したりするなどの不具合が発生することがあった。
【００３２】
本発明の目的は、例えば上記のようなデータ転送速度不足による動画再生でのコマ送りや画像停止がないように、トランザクションを構築・実行してＵＳＢデバイス機器に保存された転送データをシステムメモリに書き込んだ後にその転送データを外部モジュールに読み込むまでの一連のＵＳＢデータ転送の転送速度を向上させることにある。
【００３３】
また、その逆方向、すなわちＵＳＢホストシステム１００５からＵＳＢデバイス機器へのＵＳＢデータ転送の転送速度も、同様に向上させることを目的とする。
【課題を解決するための手段】
【００３４】
前記の目的を達成するために、本発明では、次の点に着目した。前記図１０を用いて説明すると、上記従来のＵＳＢホストシステム１００５でのＵＳＢデータ転送では、ＵＳＢホストコントローラ１００１がシステムメモリ１００３内の管理データ００４にアクセスしている場合に、外部モジュール１００４が前記システムメモリ１００３内の転送データ００３にアクセスを行おうとした際には、前記システムメモリ１００３に対するメモリアクセスのアクセス競合が発生する。また、前記外部モジュール１００４が前記システムメモリ１００３内の転送データ００３にアクセスしている場合に、前記ＵＳＢホストコントローラ１００１が前記システムメモリ１００３内の管理データ００４にアクセスを行おうとした際にも、上記と同様に前記システムメモリ１００３に対するメモリアクセスのアクセス競合が発生する。また、前記特許文献１記載の技術でも、上記と同様にメモリアクセスのアクセス競合が発生する。このように、上記従来のＵＳＢホストシステム１００５においてアクセス競合が発生した場合には、ＣＰＵ１０１０のアービトレーション機能によってアクセスの調整が行われるが、このアービトレーション機能では、ＵＳＢホストコントローラ１００１がシステムメモリ１００３内の管理データ００４にアクセスしている際には、外部モジュール１００４では、前記システムメモリ１００３内の転送データ００３へのアクセスが待ち状態に調整され、このため、動画再生に遅れが生じることになる。また、上記とは逆に、前記外部モジュール１００４が前記システムメモリ１００３内の転送データ００３にアクセスしている際には、前記ＵＳＢホストコントローラ１００１から前記システムメモリ１００３内の管理データ００４へのアクセスが待ち状態に調整され、このため、トランザクションの構築に時間を要することになる。
【００３５】
そこで、本願発明では、前記ＵＳＢホストコントローラと前記外部モジュールとがメモリアクセス競合を起こさないように構成して、ＵＳＢ転送のデータ転送速度を速くする。具体的にはＵＳＢデータ転送での管理データを保存する専用メモリを設けることとする。
【００３６】
具体的に、請求項１記載の発明のＵＳＢホストシステムは、ＵＳＢデバイス機器とＵＳＢ転送を行うためのＵＳＢホスト機能を有するＵＳＢホストモジュールと、前記ＵＳＢ転送の対象となる転送データを用いた所定の機能を有する他機能モジュールと、前記ＵＳＢホストモジュール及び前記他機能モジュールによって共用される少なくとも１つ以上の共用メモリと、前記ＵＳＢホストモジュールによって専用される少なくとも１つ以上の専用メモリとを備え、前記専用メモリには、少なくとも前記ＵＳＢ転送を行うための管理データの一部が保存されることを特徴とする。
【００３７】
請求項２記載の発明は、前記請求項１記載のＵＳＢホストシステムにおいて、前記専用メモリには、ＵＳＢ転送での管理データの全部が保存され、前記共用メモリには、ＵＳＢ転送での転送データの全部が保存されることを特徴とする。
【００３８】
請求項３記載の発明は、前記請求項１記載のＵＳＢホストシステムにおいて、前記専用メモリには、ＵＳＢ転送での管理データの全部及びＵＳＢ転送での転送データの一部が保存され、前記共用メモリには、前記ＵＳＢ転送での転送データの他部が保存されることを特徴とする。
【００３９】
請求項４記載の発明は、前記請求項１記載のＵＳＢホストシステムにおいて、前記専用メモリには、ＵＳＢ転送での管理データの一部が保存され、前記共用メモリには、前記ＵＳＢ転送での管理データの他部及びＵＳＢ転送での転送データの全部が保存されることを特徴とする。
【００４０】
請求項５記載の発明は、前記請求項１記載のＵＳＢホストシステムにおいて、前記専用メモリには、ＵＳＢ転送での管理データの一部及びＵＳＢ転送での転送データの一部が保存され、前記共用メモリには、前記ＵＳＢ転送での管理データの他部及び前記ＵＳＢ転送での転送データの他部が保存されることを特徴とする。
【００４１】
請求項６記載の発明は、前記請求項１〜５の何れか一項に記載のＵＳＢホストシステムにおいて、前記ＵＳＢ転送での管理データは、前記ＵＳＢホストモジュールがトランザクションを構築・管理する際に用いるデータであることを特徴とする。
【００４２】
請求項７記載の発明は、前記請求項６記載のＵＳＢホストシステムにおいて、前記ＵＳＢ転送での管理データは、ＵＳＢバルク転送におけるＱｕｅｕｅ  Ｈｅａｄ及びＱｕｅｕｅ  Ｅｌｅｍｅｎｔ  Ｔｒａｎｓｆｅｒ  Ｄｅｓｃｒｉｐｔｏｒであることを特徴とする。
【００４３】
請求項８記載の発明は、前記請求項１〜５の何れか一項に記載のＵＳＢホストシステムにおいて、前記ＵＳＢホストモジュールの内部に前記専用メモリを備えたことを特徴とする。
【００４４】
請求項９記載の発明のＵＳＢホストシステムは、ＵＳＢデバイス機器とＵＳＢ転送を行うためのＵＳＢホスト機能を有するＵＳＢホストモジュールと、前記ＵＳＢ転送の対象となる転送データを用いた所定の機能を有する他機能モジュールと、前記ＵＳＢホストモジュール及び前記他機能モジュールによって共用され、前記ＵＳＢ転送での転送データの全部が保存される少なくとも１つ以上の共用メモリと、前記ＵＳＢホストモジュールの内部に配置されると共に、当該ＵＳＢホストモジュールによって専用され、少なくともＵＳＢバルク転送におけるＱｕｅｕｅ  Ｈｅａｄ及びＱｕｅｕｅ  Ｅｌｅｍｅｎｔ  Ｔｒａｎｓｆｅｒ  Ｄｅｓｃｒｉｐｔｏｒの全部が保存される少なくとも１つ以上の専用メモリとを備えたことを特徴とする。
【００４５】
請求項１０記載の発明は、前記請求項１〜５及び８の何れか一項に記載のＵＳＢホストシステムにおいて、当該ＵＳＢホストシステムの少なくとも一部は、１チップ上に配置されたシステムＬＳＩとして形成されていることを特徴とする。
【００４６】
請求項１１記載の発明の転送データの転送方法は、前記請求項１記載のＵＳＢホストシステムにおいて前記ＵＳＢデバイス機器から前記他機能モジュールに転送データを転送する転送データの転送方法であって、前記ＵＳＢホストモジュールが、前記専用メモリに保存された管理データを読み込んで、トランザクションを構築するトランザクション構築ステップと、前記ＵＳＢホストモジュールが、前記トランザクション構築ステップにおいて構築したトランザクションに基づいて、前記ＵＳＢデバイス機器から転送データを読み込み、その転送データを前記共用メモリに保存する転送データ保存ステップと、前記ＵＳＢホストモジュールが、前記転送データ保存ステップにおけるデータ転送の転送情報を前記専用メモリ内の管理データに書き込む管理データ書込ステップと、前記管理データ書込ステップと並行して、前記他機能モジュールが、前記転送データ保存ステップにおいて保存した前記共用メモリ内の転送データを読み込む転送データ読込ステップとを備えたことを特徴とする。
【００４７】
請求項１２記載の発明は、前記請求項１１記載の転送データの転送方法において、前記転送データ読込ステップにおいて前記他機能モジュールが前記共用メモリ内の転送データを読み込んでいるとき、前記共用メモリに保存された転送データの次の転送データについての管理データを前記トランザクション構築ステップにおいて前記専用メモリ内から読み込んでトランザクションを構築することを特徴とする。
【００４８】
以上により、請求項１〜１２記載の発明では、ＵＳＢホストシステムの内部に共用メモリと専用メモリとを備えているので、ＵＳＢホストモジュール及び他機能モジュールによって共用されるべき転送データを前記共用メモリに保存し、前記ＵＳＢホストモジュールによって専用されるべき管理データを前記専用メモリに保存することによって、前記ＵＳＢホストモジュール及び前記他機能モジュールによる転送データの共用を維持しつつ、前記他機能モジュールが転送データにアクセスするメモリアクセスと、前記ＵＳＢホストモジュールが管理データにアクセスするメモリアクセスとのアクセス競合を回避することが可能となる。
【発明の効果】
【００４９】
以上説明したように、請求項１〜１２記載の発明のＵＳＢホストシステム及び転送データの転送方法によれば、ＵＳＢホストモジュールによるメモリアクセスと、他機能モジュールによるメモリアクセスとのメモリアクセス競合を回避して、両メモリアクセスを同時並列に実行することが可能であるので、ＵＳＢデータ転送速度を向上させて、前記他機能モジュールが前記転送データにアクセス可能なアクセス時間を確保したり、前記ＵＳＢホストモジュールがトランザクションを円滑に構築したりすることが可能となる。
【発明を実施するための最良の形態】
【００５０】
以下、本発明の実施形態のＵＳＢホストシステムを図面に基づいて説明する。
【００５１】
＜回路構成、メモリアクセス＞
図１は、本発明の実施形態のＵＳＢホストシステムの全体構成のブロック図である。
【００５２】
同図において、ＵＳＢホストシステム１０５は、当該ＵＳＢホストシステム１０５の全体を制御するＣＰＵ１１０と、ＵＳＢメモリ（ＵＳＢデバイス機器）１１１とＵＳＢ転送を行うためのＵＳＢホスト機能を有するＵＳＢホストコントローラ（ＵＳＢホストモジュール）１０１と、前記ＵＳＢ転送の対象となる転送データ００３を用いた所定の機能を有する外部モジュール（他機能モジュール）１０４とを備えている。前記転送データ００３は動画データであり、前記外部モジュール１０４は、前記動画データを再生する動画再生機能を有している。
【００５３】
また、前記ＵＳＢホストシステム１０５の内部には、前記ＵＳＢホストコントローラ１０１及び前記外部モジュール１０４によって共用される共用メモリ１０３と、前記ＵＳＢホストコントローラ１０１によって専用される専用メモリ１０７とを備えている。
【００５４】
前記ＵＳＢホストコントローラ１０１及び前記外部モジュール１０４から前記共用メモリ１０３や前記専用メモリ１０７へのアクセスは、各々のメモリ１０３、１０７に対応したメモリコントローラ（Ｍ／Ｃ）１０２、１０８を介して行われる。また、前記ＵＳＢメモリ１１１とのデータ転送はＵＳＢデータバス１０６を介して行われる。
【００５５】
前記ＣＰＵ１１０は、前記外部モジュール１０４のＵＳＢ転送要求に基づいて、前記専用メモリ１０７にＵＳＢ転送を行うための管理データ００４を生成し、前記ＵＳＢホストコントローラ１０１は、前記ＣＰＵ１１０からの指示によって、前記専用メモリ１０７内の管理データ００４を読み込んでトランザクションを構築する。また、ＵＳＢ転送での転送データ００３は、前記共用メモリ１０３に保存されて、前記ＵＳＢホストコントローラ１０１及び前記外部モジュール１０４によって共用される。
【００５６】
ここで、前記共用メモリ１０３には、前記転送データ００３の全部が保存され、前記専用メモリ１０７には、前記管理データ００４の全部が保存される。
【００５７】
前記管理データ００４は、前記ＵＳＢホストコントローラ１０１がトランザクションを構築・管理する際に用いるデータであり、ここでは前記管理データ００４をＵＳＢバルク転送におけるＱＨ００１及びｑＴＤ００２とし、以下、ＵＳＢバルク転送の場合について説明する。
【００５８】
以下に、上記のＵＳＢホストシステム１０５によって、ＵＳＢメモリ１１１に格納されている動画データを共用メモリ１０３に読み込み、その動画データを外部モジュール１０４において再生処理を行うＵＳＢリードトランザクションの動作の単純な例を示す。
【００５９】
まず、外部モジュール１０４からＣＰＵ１１０に対してＵＳＢデータ転送の要求が発行されると、前記ＣＰＵ１１０は、専用メモリ１０７に管理データ００４（ＱＨ００１及びｑＴＤ００２）を生成する。
【００６０】
そして、前記ＣＰＵ１１０の指示に基づいて、ＵＳＢホストコントローラ１０１は、前記専用メモリ１０７内の管理データ００４を読み込んで、トランザクションを構築する。
【００６１】
次に、前記ＵＳＢホストコントローラ１０１は、構築したトランザクションに基づいて、前記ＵＳＢメモリ１１１内の動画データを読み込んで、読み込んだ転送データ００３を前記共用メモリ１０３に保存する。
【００６２】
そして、前記外部モジュール１０４は、前記ＵＳＢホストコントローラ１０１が前記共用メモリ１０３に保存した転送データ００３を読み込んで再生処理し、その処理結果をディスプレイなどに出力する。
【００６３】
図２は、本実施形態のＵＳＢホストシステム１０５におけるＵＳＢリードトランザクションの実行時のＵＳＢのデータ転送及び管理情報の処理を模式的に示した模式図である。
【００６４】
まず、ＵＳＢによる転送要求が発生すると、ＵＳＢホストコントローラ１０１は、専用メモリ１０７内のＱＨ００１を読み込んで、そのＱＨ００１に基づいて転送設定を行い、トランザクションを構築する（ステップＳ２０１）。次に、前記ステップＳ２０１において構築したトランザクションを実行して、ＵＳＢでの転送データ００３を共用メモリ１０３内に書き込み、その実行結果である転送結果やエラー情報などを前記ＱＨ００１に記録する（ステップＳ２０２）。
【００６５】
そして、前記ステップＳ２０２において記録したＱＨ００１の内容をｑＴＤ００２に反映し（ステップＳ２０３）、次の転送を行うためのＱＨ００１を読み込む状態に移行する（ステップＳ２０４）。また、上記ステップＳ２０３、Ｓ２０４と並行して、外部モジュール１０４は、転送データ００３を読み込むためのメモリアクセスを前記共用メモリ１０３に対して行う（ステップＳ２０５）。
【００６６】
上記のステップＳ２０１〜Ｓ２０４において、ＵＳＢホストコントローラ１０１は、専用メモリ１０７に対しては、転送情報の準備及び転送状態の更新の際に４回のアクセスを行うと共に、共用メモリ１０３に対しては、書き込みの際に１回のアクセスを行う。また、上記ステップＳ２０５において、外部モジュール１０４は、共用メモリ１０３に対して、読み込みの際に１回のアクセスを行う。
【００６７】
図３は、本実施形態のＵＳＢホストシステム１０５におけるＵＳＢリードトランザクションの実行時のメモリアクセスを模式的に示した模式図である。
【００６８】
同図において、横軸は時間を表している。ここで、ＵＳＢホストコントローラ１０１は、専用メモリ１０７及び共用メモリ１０３にアクセスする。つまり、管理データ００４へのアクセスの際には前記専用メモリ１０７にアクセスし、転送データ００３へのアクセスの際には前記共用メモリ１０３にアクセスする。また、外部モジュール１０４は共用メモリ１０３へのみアクセスする。
【００６９】
まず、ＵＳＢホストコントローラ１０１が、専用メモリ１０７に保存された管理データ００４を読み込んで、トランザクションを構築する（トランザクション構築処理３０１、３０２）。
【００７０】
次に、前記ＵＳＢホストコントローラ１０１が、上記トランザクション構築処理３０１、３０２において構築したトランザクションに基づいて、ＵＳＢメモリ１１１から転送データ００３を読み込み、その転送データ００３を共用メモリ１０３に記録する（転送データ保存処理３０３）。
【００７１】
そして、前記ＵＳＢホストコントローラ１０１が、上記転送データ保存処理３０３におけるデータ転送の転送状態を前記専用メモリ１０７内の管理データ００４に書き込む（管理データ書込処理３０４）。
【００７２】
また、上記管理データ書込処理３０４と並行して、ＵＳＢデータ転送の要求元である外部モジュール１０４が、上記転送データ保存処理３０３において保存した前記共用メモリ１０３の転送データ００３を読み込む（転送データ読込処理３０５）。
【００７３】
ここで、管理データ書込処理３０４は専用メモリ１０７へのアクセスであり、転送データ読込処理３０５は共用メモリ１０３へのアクセスであるので、転送データ保存処理３０３が終了した後には、ＵＳＢホストコントローラ１０１による転送状態の管理データ００４への反映（管理データ書込処理３０４）と、外部モジュール１０４による転送データ００３の取得（転送データ読込処理３０５）とを並行して行った場合であっても、メモリアクセス競合が発生することなく、前記管理データ００４への書き込みと、前記転送データ００３の読み込みを同時に行うことが可能である。すなわち、ＵＳＢホストコントローラ１０１が共用メモリ１０３に転送データ００３を書き込んだ後には、遅延を生じることなく外部モジュール１０４がその転送データ００３を読み込んで動画再生処理を行うことができる。
【００７４】
また、上記のトランザクション構築処理３０１、３０２〜転送データ読込処理３０５の処理と同様の処理であるトランザクション構築処理３０６、３０７〜転送データ読込処理３１０の処理を行ってＵＳＢ転送を行う際には、転送データ読込処理３０５において、外部モジュール１０４が前記共用メモリ１０３内の転送データ００３を読み込んでいるときに、前記共用メモリ１０３に保存された転送データ００３の次の転送データについての管理データをトランザクション構築処理３０６、３０７において前記専用メモリ１０７内から読み込んでトランザクションを構築する。
【００７５】
ここで、転送データ読込処理３０５は共用メモリ１０３へのアクセスであり、トランザクション構築処理３０６、３０７は専用メモリ１０７へのアクセスであるので、前記転送データ読込処理３０５と前記トランザクション構築処理３０６、３０７とを並行して行った場合であっても、メモリアクセス競合が発生しない。よって、外部モジュール１０４が共用メモリ１０３にアクセスして転送データ００３を読み込んで動画再生処理を行っているときには、前記ＵＳＢホストコントローラ１０１が専用メモリ１０７にアクセスして管理データ００４を読み込んで新たなトランザクションを構築することが可能となる。すなわち、先のトランザクションによってＵＳＢホストコントローラ１０１が転送データ００３を共用メモリ１０３に書き込んだ後には、遅延を生じることなく、前記ＵＳＢホストコントローラ１０１が後のトランザクションの管理データ００４を読み込んで、後のトランザクションを構築することが可能となる。
【００７６】
以下、本実施形態の他のＵＳＢホストシステムについて説明する。
【００７７】
図４は、本実施形態の他のＵＳＢホストシステムの全体構成のブロック図である。
【００７８】
同図のＵＳＢホストシステム４０５が上記図１のＵＳＢホストシステム１０５と異なる点は、ＵＳＢホストコントローラ４０１と、専用メモリ４０７と、前記専用メモリ４０７に対応したメモリコントローラ（Ｍ／Ｃ）４０８とが１つの機能ブロック４０９として当該ＵＳＢホストシステム４０５に搭載されている点のみである。本構成では、前記機能ブロック４０９をＵＳＢホストモジュールとし、このＵＳＢホストモジュール４０９の内部に専用メモリ４０７が配置されている。その他の構成については、上記図１のＵＳＢホストシステム１０５と同様であるので、その説明は省略する。
【００７９】
図５は、本実施形態のさらに他のＵＳＢホストシステムの全体構成のブロック図である。
【００８０】
同図のＵＳＢホストシステム５０５が上記図１及び図４のＵＳＢホストシステム１０５、４０５と異なる点は、ＵＳＢホストコントローラ４０１、専用メモリ４０７及びメモリコントローラ（Ｍ／Ｃ）４０８を有する機能ブロック４０９と、ＣＰＵ５１０と、外部モジュール５０４とがシステムＬＳＩ５１１として１チップ上に配置され、前記システムＬＳＩ５１１が当該ＵＳＢホストシステム５０５に搭載されている点のみである。本構成においても、前記機能ブロック４０９をＵＳＢホストモジュールとする。その他の構成については、上記図１及び図４のＵＳＢホストシステム１０５、４０５と同様であるので、その説明は省略する。
【００８１】
本発明のＵＳＢホストシステムは、上記図１、図４、図５の何れの構成であった場合でも、ＵＳＢホストコントローラ１０１、６０１の動作やＵＳＢ転送の制御方法は同様である。
【００８２】
＜メモリ配分＞
以下、本実施形態のＵＳＢホストシステムにおける保存対象データの配分について説明する。
【００８３】
表１は、本実施形態のＵＳＢホストシステムにおける共用メモリ及び専用メモリの各々の保存対象データの配分（メモリ配分）を示している。
【００８４】
【表１】
2008299747.tif 000003
【００８５】
同表において、組み合わせ１では、専用メモリ１０７、４０７には、ＵＳＢ転送での管理データ００４の全部が保存され、共用メモリ１０３には、ＵＳＢ転送での転送データ００３の全部が保存されるメモリ配分である。
【００８６】
組み合わせ２では、前記専用メモリ１０７、４０７には、管理データの全部及び転送データの一部が保存され、前記共用メモリ１０３には、転送データ００３の他部が保存されるメモリ配分である。ここで、転送データ００３の配分としては、頻繁に使用するデータブロックを前記専用メモリ１０７、４０７に保存し、それ以外のデータブロックを前記共用メモリ１０３に保存するといった実装が考えられる。頻繁に使用するデータブロックとしては、例えば、Ｂｕｌｋ−Ｏｎｌｙ  Ｔｒａｎｓｐｏｒｔ規格（ＢＯＴ）に従ってＵＳＢバルク転送を行う際のＣｏｍｍａｎｄ  Ｂｌｏｃｋ  Ｗｒａｐｐｅｒ（ＣＢＷ）やＣｏｍｍａｎｄ  Ｓｔａｔｕｓ  Ｗｒａｐｐｅｒ（ＣＳＷ）がある。前記ＣＢＷは、データサイズが３１バイトで固定されたデータブロック、前記ＣＳＷは、データサイズが１３バイトで固定されたデータブロックである。前記ＣＢＷ及び前記ＣＳＷはＵＳＢ転送での転送データの一種であるが、それらはＢＯＴに従ったＵＳＢ転送におけるコマンドやステータスとして用いられている。具体的には、３１バイトのＣＢＷを転送した後に、転送データにおける種々の実データを転送し、その後に１３バイトのＣＳＷを転送するものである。そこで、これらのデータブロックを管理データ００４と同じ専用メモリ１０７、４０７に保存する。
【００８７】
組み合わせ３では、前記専用メモリに１０７、４０７には、管理データの一部が保存され、前記共用メモリ１０３には、管理データの他部及び転送データの全部が保存されるメモリ配分である。ここで、管理データ００４の配分としては、例えばバルク転送において、ＱＨを専用メモリ１０７、４０７に保存し、ｑＴＤを共用メモリ１０３に保存するといった実装が考えられる。
【００８８】
組み合わせ４は、前記専用メモリ１０７、４０７には、管理データの一部及び転送データの一部が保存され、前記共用メモリ１０３には、管理データの他部及び転送データの他部が保存されるメモリ配分である。
【００８９】
上記の組み合わせ１〜組み合わせ４の何れの組み合わせを採用した場合であっても、データの参照先は変化するがＵＳＢホストシステム１０５の動作は同様であるので、その説明は省略する。
【００９０】
上記の組み合わせ１〜組み合わせ４の何れの組み合わせを選択するかは、ＵＳＢホストシステムの構成、取り扱う転送データ００３のデータサイズ、共用メモリ１０３及び専用メモリ１０７、４０７の各々のメモリサイズや、共用メモリ１０３へのアクセス競合の度合いによって決定する。例えば、管理データ００４の他にも、上記で述べた頻繁に使用するデータブロックなど、転送データ００３のうち特定のデータを専用メモリ１０７、４０７に保存することによって、共用メモリ１０３におけるアクセス競合を効率的に削減することができる。また、容量が十分に大きなメモリを専用メモリ１０７、４０７として使用することができる場合には、転送データ００３も含めた全てのデータを前記専用メモリ１０７、４０７に保存することによって、共用メモリ１０３におけるアクセス競合を無くすことが可能である。
＜ＵＳＢドライバ＞
以下、本発明のＵＳＢホストシステムにおけるＵＳＢホストコントローラ及びＵＳＢホストドライバによるデータ転送処理について説明する。
【００９１】
図６は、ＵＳＢホストコントローラとＵＳＢ関連ソフトウェアとの関係を模式的に示した模式図である。
【００９２】
本書ではＵＳＢバスドライバとＵＳＢホストコントローラドライバを合わせてＵＳＢホストドライバ６０２と記述する。ＵＳＢホストドライバ６０２は、ＵＳＢホストコントローラ６０１を制御し、システムメモリへのアクセスやＵＳＢ通信を実行する。ＵＳＢクラスドライバ６０３は、ＵＳＢホストドライバ６０２の上位に位置するドライバで、主にＵＳＢ通信におけるプロトコル制御を行う。アプリケーション層６０４は、ＵＳＢホストシステムにおける外部モジュール用のソフトウェアである。前記アプリケーション層６０４、前記ＵＳＢクラスドライバ６０３及び前記ＵＳＢホストドライバ６０２の関係は、例えば、アプリケーション層６０４からのＵＳＢメモリ内の転送データの読み込み要求によって、前記ＵＳＢクラスドライバ６０３が転送プロトコルの管理を行い、前記ＵＳＢホストドライバ６０２が転送データの読み込みに必要なトランザクションに対応した管理データを生成する。
【００９３】
上記のＵＳＢホストドライバ６０２、ＵＳＢクラスドライバ６０３、アプリケーション層６０４によるソフトウェア的な処理はＵＳＢホストシステム内のＣＰＵが行い、ＵＳＢデバイス機器からの転送データの転送処理などは、ＵＳＢホストドライバ６０２からの指示によって、ＵＳＢホストコントローラ６０１が行う。
【００９４】
図７は、本発明のＵＳＢホストシステムにおけるバルク転送時の処理フローのフロー図である。
【００９５】
以下、図４のＵＳＢホストシステム４０５の全体構成、表１の組み合わせ１のメモリ配分を用いた際のＵＳＢバルク転送時の処理フローについて説明する。
【００９６】
ＵＳＢデータ転送を行う際には、ＣＰＵ１１０上で動作するアプリケーション層６０４やＵＳＢクラスドライバ６０３（上位層）から、ＵＳＢホストドライバ６０２に対して転送リクエストが発行される（ステップＳ７０１）。転送リクエストを受けたＵＳＢホストドライバ６０２は、転送リクエストの内容に従って、必要なトランザクションに対応した管理データ００４を専用メモリ４０７内に生成する（ステップＳ７０２）。ここで、大きなデータを転送する際には、複数回のトランザクションによってそのデータの転送が完了するので、この複数回のトランザクション用の複数個の管理データ００４を生成する。
【００９７】
この管理データ００４の生成が完了すると、実際の通信処理が開始される。
【００９８】
ＵＳＢホストドライバ６０２からの指示を受けてＵＳＢホストコントローラ４０１は、専用メモリ４０７内の管理データ００４の情報を読み込んでトランザクションを構築し（ステップＳ７０３）、構築したトランザクションを使用して転送データ００３の転送を開始する（ステップＳ７０４）。ＵＳＢによるデータ通信においては、ＵＳＢホストコントローラ４０１は、まずトークン・フェーズを実行する（ステップＳ７０５）。ステップステップＳ７０５において、データ・フェーズがＩＮ方向のデータ転送である場合には、トークン・フェーズではＩＮトークンを発行し、データ・フェーズがＯＵＴ方向のデータ転送である場合は、トークン・フェーズではＯＵＴトークンを発行する。
【００９９】
データ・フェーズでは、ＩＮ方向のデータ転送である場合は、ＵＳＢホストコントローラ４０１は通信相手のＵＳＢデバイス機器から転送データ００３を受信し（ステップＳ７０６）、受信した転送データ００３を管理データ００４の持つポインタの示す共用メモリ１０３へ保存する（ステップＳ７０７）。
【０１００】
ＯＵＴ方向のデータ転送である場合は、ＵＳＢホストコントローラ４０１は、送信する転送データ００３を管理データ００４の持つポインタの示す共用メモリ１０３から読み出し（ステップＳ７０８）、通信相手のＵＳＢデバイス機器に対して転送データ００３を送信する（ステップＳ７０９）。
【０１０１】
そして、ＵＳＢホストコントローラ４０１はハンドシェーク・フェーズを実行し（ステップＳ７１０）、その後、ＵＳＢホストドライバ６０２は、ＵＳＢデータ転送の結果を専用メモリ４０７内の管理データ００４に反映する（ステップＳ７１１）。
【０１０２】
以上のステップＳ７０１〜Ｓ７１１の処理によって１つのトランザクションのＵＳＢ転送の通信処理が完了する。
【０１０３】
そして、ＵＳＢホストドライバ６０２からの指示を受けてＵＳＢホストコントローラ４０１は、専用メモリ４０７内の管理データ００４から次のＵＳＢデータ転送に関する情報を取得し（ステップＳ７１２）、次のＵＳＢデータ転送があるか否かを判定する（ステップＳ７１３）。
【０１０４】
次のＵＳＢデータ転送がある場合には、上記ステップＳ７０３の処理に戻り、上記と同様の処理フローによって次のトランザクションを構築し、ＵＳＢデータ転送を行う。
【０１０５】
次のＵＳＢデータ転送がない場合には、ＵＳＢホストドライバ６０２は、ＵＳＢホストシステム４０５上で動作するアプリケーション層６０４やＵＳＢクラスドライバ６０３に対してＵＳＢデータ転送の完了通知を行い（ステップＳ７１４）、処理完了となる。
【０１０６】
上記の処理フローにおいて、メモリ配分や使用するメモリ構成が異なる場合であっても、ＵＳＢホストドライバ６０２が管理データ００４を生成／処理する場所、Ｒｅａｄ／Ｗｒｉｔｅする転送データ００３の保存場所や、その保存場所を示す管理データ００４内のポインタの設定が変わるのみであるので、ソフトウェア及びハードウェアの処理は同じである。
【０１０７】
以上のように、本実施形態では、ＵＳＢホストシステム１０５、４０５、５０５の内部に共用メモリ１０３と専用メモリ１０７、４０７とを備え、ＵＳＢホストコントローラ１０１、４０１及び外部機能モジュール１０４、５０４によって共用されるべき転送データ００３を前記共用メモリ１０３に保存し、前記ＵＳＢホストコントローラ１０１によって専用されるべき管理データ００４を前記専用メモリ１０７、４０７に保存する。よって、ＵＳＢホストコントローラ１０１、４０１及び外部機能モジュール１０４、５０４による転送データ００３の共用を維持しつつ、外部モジュール１０４、５０４が転送データ００３にアクセスするメモリアクセスと、ＵＳＢホストコントローラ１０１、４０１が管理データ００４にアクセスするメモリアクセスとのアクセス競合の回避が可能となる。従って、両メモリアクセスを同時並列に実行することが可能となり、ＵＳＢデータ転送速度を向上させて、外部モジュール１０４、５０４が前記転送データ００３にアクセス可能なアクセス時間を確保したり、ＵＳＢホストコントローラ１０１、４０１が管理データ００４にアクセスしてトランザクションを円滑に構築したりすることが可能となる。
【０１０８】
尚、本実施形態では、ＵＳＢホストシステム１０５、４０５、５０５の内部に、１つの共用メモリ１０３及び１つの専用メモリ１０７、４０７を備えているが、前記共用メモリ１０３及び前記専用メモリ１０７、４０７は、各々、複数のメモリで構成されていてもよいのは勿論である。
【０１０９】
また、専用メモリ１０７、４０７には、管理データ００４の全部が保存されているが、少なくとも前記管理データ００４の一部が保存されていればよい。
【０１１０】
さらに、上記図１、図４、図５のＵＳＢホストシステム１０５、４０５、５０５の一部若しくは全部を１チップ上に配置してシステムＬＳＩ化してもよいのは勿論である。
【産業上の利用可能性】
【０１１１】
以上説明したように、本発明は、ＵＳＢホストモジュールによるメモリアクセスと、他機能モジュールによるメモリアクセスとのメモリアクセス競合を回避して、両メモリアクセスを同時並列に実行することを可能にして、ＵＳＢデータ転送速度を向上させることができるので、特に、コンピュータ資源の少ない中でＵＳＢデータ転送速度の確保を必要とする組み込み機器におけるＵＳＢホストシステム等として有用である。
【図面の簡単な説明】
【０１１２】
【図１】本発明の実施形態のＵＳＢホストシステムにおける全体構成を示すブロック図である。
【図２】同ＵＳＢホストシステムにおけるＵＳＢリードトランザクションの実行時のＵＳＢのデータ転送及び管理情報の処理を模式的に示した模式図である。
【図３】同ＵＳＢホストシステムにおけるＵＳＢリードトランザクションの実行時のメモリアクセスを模式的に示した模式図である。
【図４】本実施形態の他のＵＳＢホストシステムにおける全体構成を示すブロック図である。
【図５】本実施形態のさらに他のＵＳＢホストシステムにおける全体構成を示すブロック図である。
【図６】ＵＳＢホストコントローラとＵＳＢ関連ソフトウェアとの一般的な関係を模式的に示した模式図である。
【図７】本発明のＵＳＢホストシステムにおけるバルク転送時の処理フローのフロー図である。
【図８】ＱＨの全体構成の構成図である。
【図９】ｑＴＤの全体構成の構成図である。
【図１０】従来のＵＳＢホストシステムにおける全体構成のブロック図である。
【図１１】同ＵＳＢホストシステムにおけるＵＳＢリードトランザクションの実行時のＵＳＢのデータ転送及び管理情報の処理を模式的に示した模式図である。
【図１２】同ＵＳＢホストシステムにおけるＵＳＢリードトランザクションの実行時のメモリアクセスを模式的に示した模式図である。
【符号の説明】
【０１１３】
００１                    ＱＨ
００２                    ｑＴＤ
００３                    転送データ
００４                    管理データ
１０１                    ＵＳＢホストコントローラ（ＵＳＢホストモジュール）
１０２、１０８、４０８    メモリコントローラ
１０３                    共用メモリ
１０４、５０４            外部モジュール（他機能モジュール）
１０５、４０５、５０５    ＵＳＢホストシステム
１０６                    ＵＳＢデータバス
１０７、４０７            専用メモリ
１１０、５１０            ＣＰＵ
１１１                    ＵＳＢメモリ
３０１、３０２            トランザクション構築処理
３０３                    転送データ保存処理
３０４                    管理データ書込処理
３０５                    転送データ読込処理
４０１                    ＵＳＢホストコントローラ
４０９                    機能ブロック（ＵＳＢホストモジュール）
５１１                    システムＬＳＩ
６０２                    ＵＳＢホストドライバ
６０３                    ＵＳＢクラスドライバ
６０４                    アプリケーション層
【図１】
2008299747.tif 000004
【図２】
2008299747.tif 000005
【図３】
2008299747.tif 000006
【図４】
2008299747.tif 000007
【図５】
2008299747.tif 000008
【図６】
2008299747.tif 000009
【図７】
2008299747.tif 000010
【図８】
2008299747.tif 000011
【図９】
2008299747.tif 000012
【図１０】
2008299747.tif 000013
【図１１】
2008299747.tif 000014
【図１２】
2008299747.tif 000015