(57)【要約】【課題】組み込み機器に好適なＵＳＢホストコントローラ装置を提供する。【解決手段】ＵＳＢホストコントローラ装置１は、デスクリプタ領域へのアクセスの場合、アドレスにデスクリプタ領域用アドレスオフセット値を加算して、メモリ４０のデスクリプタ領域アドレスに変換するとともに、データ領域へのアクセスの場合、アドレスにデータ領域用アドレスオフセット値を加算して、メモリ４０のデータ領域アドレスに変換するデータ用アドレスセレクタアドレス変換部２１と、デスクリプタ領域へのアクセスが発生した場合、デスクリプタ領域アドレスに基づいて、メモリ４０から取得したデスクリプタ領域アドレスのデータを記憶するデスクリプタキャッシュメモリ２４と、データ領域へのアクセスが発生した場合、データ領域アドレスに基づいて、メモリ４０から取得したデータ領域アドレスのデータを記憶するデータバッファメモリ２８とを備える。【選択図】図１
2009059155.tif 000002
【特許請求の範囲】
【請求項１】
マスタバスとスレーブバスとを有するＵＳＢホストコントローラから、メモリ及びＣＰＵへのアクセスを制御するＵＳＢホストコントローラ制御回路を有するＵＳＢホストコントローラ装置であって、
前記ＵＳＢホストコントローラ制御回路は、
前記マスタバスにアクセスされると、前記アクセスのアドレスがデスクリプタ領域かデータ領域かを判断し、前記デスクリプタ領域へのアクセスの場合、前記アドレスにデスクリプタ領域用アドレスオフセット値を加算して、前記メモリのデスクリプタ領域アドレスに変換する一方、前記データ領域へのアクセスの場合、前記アドレスにデータ領域用アドレスオフセット値を加算して、前記メモリのデータ領域アドレスに変換するデータ用アドレスセレクタアドレス変換部と、
前記デスクリプタ領域へのアクセスが発生した場合、前記デスクリプタ領域アドレスに基づいて、前記メモリから取得した前記デスクリプタ領域アドレスのデータを記憶するデスクリプタキャッシュメモリと、
前記データ領域へのアクセスが発生した場合、前記データ領域アドレスに基づいて、前記メモリから取得した前記データ領域アドレスのデータを記憶するデータバッファメモリと、
を備えることを特徴とするＵＳＢホストコントローラ装置。
【請求項２】
前記スレーブバスにアクセスされると、前記アクセスされたアドレスを、前記ＣＰＵのアドレスに変換するＣＰＵ用バス変換部を更に備えることを特徴とする請求項１に記載のＵＳＢホストコントローラ装置。
【請求項３】
前記データバッファメモリは、先読み可能なメモリであることを特徴とする請求項１、又は２に記載のＵＳＢホストコントローラ装置。
【請求項４】
前記メモリの前記デスクリプタ領域アドレスの一部のアドレスのデータを、予め記憶するデスクリプタメモリを更に備え、
前記デスクリプタ領域アドレスのデータが前記デスクリプタメモリにない場合、前記デスクリプタキャッシュメモリに、前記メモリから取得した前記デスクリプタ領域アドレスのデータが記憶されることを特徴とする請求項１乃至３のいずれか１項に記載のＵＳＢホストコントローラ装置。
【請求項５】
前記メモリのデータ領域アドレスの一部のアドレスのデータを、予め記憶するバルクＩＯレジスタを更に備え、
前記データ領域アドレスのデータが前記バルクＩＯレジスタにない場合、前記データバッファメモリに、前記メモリから取得した前記データ領域アドレスのデータが記憶されることを特徴とする請求項１乃至４のいずれか１項に記載のＵＳＢホストコントローラ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタバスとスレーブバスとを有するＵＳＢホストコントローラから、メモリ及びＣＰＵへのアクセスを制御するＵＳＢホストコントローラ制御回路を有するＵＳＢホストコントローラ装置に関する。
【背景技術】
【０００２】
一般的に、コンピュータとＵＳＢ接続される機器との通信を制御するＵＳＢホストコントローラ装置は、ＯＨＣＩ（Open Host Controller Interface）、ＥＨＣＩ（Enhanced Host Controller Interface）等に準拠している。ここで、ＵＳＢ（Universal Serial Bus）ホストコントローラ装置は、ＡＨＢ（Advanced High-performance Bus）などのマスタ（Master）とスレーブ（Slave）に分離したバスを有する。
【０００３】
この様な従来のＵＳＢホストコントローラを備える情報機器２００は、図４に示す構成を備える。情報機器２００は、ＵＳＢホストコントローラ１０、ＤＲＡＭ（Dynamic Random Access Memory）インタフェース調停回路３０、ＤＲＡＭ４０、ＣＰＵ（Central Processing Unit）５０、他のＩＯ（Input/Output）６０、ＡＨＢ調停回路（Arbiter）７０を備える。ＵＳＢホストコントローラ１０は、ＡＨＢインタフェース１０Ａを介して、ＡＨＢマスタバス１２とＡＨＢスレーブバス１３とにそれぞれ接続されている。ＵＳＢホストコントローラ１０は、ＡＨＢマスタバス１２及びＡＨＢスレーブバス１３を介して、ＡＨＢ調停回路７０に接続される。更に、ＡＨＢ調停回路７０は、ＣＰＵバス５１を介して、ＣＰＵ５０及びＤＲＡＭインタフェース調停回路３０に接続される。ＤＲＡＭインタフェース調停回路３０は、ＵＳＢホストコントローラ１０、及び他のＩＯ６０からＤＲＡＭ４０へのアクセスを調整する。ＵＳＢホストコントローラ１０は、ＤＲＡＭインタフェース調停回路３０等を介して、ＤＲＡＭ４０にアクセスする。
【０００４】
ＵＳＢホストコントローラ１０が動作中は、ＣＰＵバス５１を占有してしまい、この間、ＣＰＵ５０は、ＣＰＵバス５１を使用することができなくなる。この様に、ＵＳＢホストコントローラ１０の動作により、ＣＰＵ５０の動作に大きな影響を及ぼしていた。
【０００５】
ここで、パーソナルコンピュータ等の比較的高スペックの情報機器では、ＤＲＡＭ４０及びバスの動作速度が高速なため、ＣＰＵ５０の動作に、それほど大きな影響を及ぼさない。しかし、携帯電話機やＨＤＤレコーダなどのいわゆる組み込み機器では、ＣＰＵ５０の動作に大きな影響を及ぼしてしまう。更に、このような組み込み機器では、消費電力や回路コストが制限されているため、ＤＲＡＭ４０やバスの動作速度を、パーソナルコンピュータ等の様に高めることはできない。又、ＣＰＵ５０の処理能力も、パーソナルコンピュータ等の様に、高スペックのものを搭載することができない。従って、特に組み込み機器においては、ＵＳＢホストコントローラ１０が動作中にＣＰＵバス５１を占拠してしまう問題が顕著となってしまう。この様に、ＵＳＢホストコントローラ１０の動作は、組み込み機器に大きな負担を強いているという問題があった。
【０００６】
特に、ＯＨＣＩ又はＥＨＣＩに準拠したＵＳＢホストコントローラ１０は、フレーム毎に、デスクリプタをＤＲＡＭ４０へアクセスさせる必要があった。従って、データの転送以外でも定期的にＤＲＡＭ４０へのアクセスが発生することにより、他のモジュールのＤＲＡＭ４０の使用効率を低下させることになっていた。
【０００７】
又、ＵＳＢホストコントローラ１０は、３２ビットのリニアアドレスを使用するとともに、データのアライメントなども要求される。従って、ＵＳＢホストコントローラ１０を既存のシステムに組み込もうとした場合、既存のシステムのアドレスをＵＳＢホストコントローラ１０に合わせなければならない。これにより、既存システムに、大幅な設計変更が必要になる場合が多かった。
【０００８】
これらの解決方法として、スレーブバスからのみ、システムメモリにアクセスする様に制御する方法がある（例えば、特許文献１参照）。特許文献１に記載の方法においては、ＵＳＢホストとして動作する電子デバイスが、互いにメモリバスで接続され、組み込みプロセッサとシステムメモリとを備えている。バスコントローラ集積回路は、システムメモリを支配せず、単にスレーブとして機能する。組み込みプロセッサは、ホストコントローラ集積回路に転送ベースのトランザクションの形式で、データを書き込む。
【０００９】
又、ＤＭＡコントローラを介してシステムメモリにアクセスする方法もある（例えば、特許文献２参照）。特許文献２に記載の方法においては、ホストコントローラが、関連するシステムメモリからデータを取り出すために、開始アドレス及びブロック長をＤＭＡコントローラに送信し、ＤＭＡコントローラは、ホストコントローラから送信された開始アドレス及びブロック長を受信すると、ＤＭＡコントローラがシステムメモリから指示データを取り出す。
【特許文献１】特表２００７−５０１４７２号公報
【特許文献２】特表２００７−５０２４７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した特許文献１及び特許文献２に記載の方法は、下記のような問題がある。
【００１１】
特許文献１に記載の方法では、内部ＲＡＭに転送に必要な情報を全て記憶しなければならない。従って、内部ＲＡＭの容量が小さい場合、大きいデータサイズのデータを送信するたびに、ＣＰＵがデータを内部ＲＡＭに転送しなければならない問題がある。これを回避しようとすると、非常に大きいデータサイズのＲＡＭを内部に備えなければならない。このため、ＣＰＵは適時、ＵＳＢホストコントローラのアクセスを許可する制御をしなければならない。これにより、負担の大きい制御が必要となるとともに、ＯＨＣＩやＥＨＣＩに適合するようにソフトウェアの書き直しが必要となってしまうという問題がある。
【００１２】
特許文献２に記載の方法では、ＣＰＵは、ＵＳＢホストコントローラがアクセスするＤＲＡＭへのアクセス権を調停する必要がある。又、調停する必要がない場合でも、アドレス空間は、ＣＰＵとＵＳＢホストコントローラとで共有である。又、ＳＤＲＡＭコントローラを内部に有しているため、他のＩＯとの共有が難しい。又、組み込み機器の場合、ＵＳＢなどのＩＯより、他のモジュールを優先する場合もある。又、ＤＲＡＭのアクセス頻度が高かったり、アクセス方法に制限がある場合もある。従って、ＤＲＡＭとのアクセスでレイテンシーが大きい場合があり、データの転送に遅延が生じる可能性がある。
【００１３】
この様に、上述した特許文献１及び特許文献２に記載のＵＳＢホストコントローラは、組み込み機器に適切なものではなかった。
【００１４】
そこで本発明は、組み込み機器に好適なＵＳＢホストコントローラ装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明の第１の特徴は、マスタバス（１２）とスレーブバス（１３）とを有するＵＳＢホストコントローラ（１０）から、メモリ（４０）及びＣＰＵ（５０）へのアクセスを制御するＵＳＢホストコントローラ制御回路（２０）を有するＵＳＢホストコントローラ装置（１）に関する。即ち本発明の第１の特徴に係るＵＳＢホストコントローラ装置（１）のＵＳＢホストコントローラ制御回路（２０）は、マスタバス（１２）にアクセスされると、アクセスのアドレスがデスクリプタ領域かデータ領域かを判断し、デスクリプタ領域へのアクセスの場合、アドレスにデスクリプタ領域用アドレスオフセット値を加算して、メモリ（４０）のデスクリプタ領域アドレスに変換する一方、データ領域へのアクセスの場合、アドレスにデータ領域用アドレスオフセット値を加算して、メモリ（４０）のデータ領域アドレスに変換するデータ用アドレスセレクタアドレス変換部（２１）と、デスクリプタ領域へのアクセスが発生した場合、デスクリプタ領域アドレスに基づいて、メモリ（４０）から取得したデスクリプタ領域アドレスのデータを記憶するデスクリプタキャッシュメモリ（２４）と、データ領域へのアクセスが発生した場合、データ領域アドレスに基づいて、メモリ（４０）から取得したデータ領域アドレスのデータを記憶するデータバッファメモリ（２８）と、を備える。
【００１６】
ここで、スレーブバス（１３）にアクセスされると、アクセスされたアドレスを、ＣＰＵ（５０）のアドレスに変換するＣＰＵ用バス変換部（２９）を更に備えてもよい。
【００１７】
ここで、データバッファメモリ（２８）は、先読み可能なメモリであることが好ましい。
【００１８】
更に、メモリ（４０）のデスクリプタ領域アドレスの一部のアドレスのデータを、予め記憶するデスクリプタメモリ（２５）を更に備えてもよい。この場合、デスクリプタ領域アドレスのデータがデスクリプタメモリ（２５）にない場合、デスクリプタキャッシュメモリ（２４）に、メモリ（４０）から取得したデスクリプタ領域アドレスのデータが記憶される。
【００１９】
又、メモリ（４０）のデータ領域アドレスの一部のアドレスのデータを、予め記憶するバルクＩＯレジスタ（２７）を更に備えてもよい。この場合、データ領域アドレスのデータがバルクＩＯレジスタ（２７）にない場合、データバッファメモリ（２８）に、メモリ（４０）から取得したデータ領域アドレスのデータが記憶される。
【発明の効果】
【００２０】
本発明によれば、データ用アドレスセレクタアドレス変換部を設けることにより、ＵＳＢホストコントローラで用いられるアドレスと、ＣＰＵ及びＤＲＡＭで用いられるアドレスが競合することを防ぎ、機器にＵＳＢ装置を組み込む際に、ＣＰＵ及びＤＲＡＭで用いられるアドレスが、ＵＳＢホストコントローラで用いられるアドレスに依存することがなく、利便性のよいＵＳＢホストコントローラ装置を提供することができる。
【発明を実施するための最良の形態】
【００２１】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【００２２】
（実施の形態）
図１を参照して、本発明の実施の形態に係るＵＳＢホストコントローラ装置１を説明する。本発明の実施の形態に係るＵＳＢホストコントローラ装置１は、携帯電話機などのいわゆる組み込み機器である情報機器１００に用いられる。
【００２３】
図１において、本発明の実施の形態に係る情報機器１００は、ＵＳＢホストコントローラ装置１、ＤＲＡＭ（Dynamic Random Access Memory）インタフェース調停回路３０、ＤＲＡＭ（メモリ）４０、ＣＰＵ５０及び他のＩＯ６０を備えている。ＵＳＢホストコントローラ装置１は、ＵＳＢ機器からのアクセスをＵＳＢバス１１を介して受信し、アクセスに応じて、ＤＲＡＭインタフェース調停回路３０、ＣＰＵ５０及び他のＩＯに出力する。ＤＲＡＭインタフェース調停回路３０は、ＵＳＢホストコントローラ装置１、ＣＰＵ５０及び他のＩＯ６０と、ＤＲＡＭ４０との通信を調停する。
【００２４】
ＵＳＢホストコントローラ装置１は、ＵＳＢホストコントローラ１０と、ＵＳＢホストコントローラ制御回路２０とを備える。ＵＳＢ機器は、ＵＳＢバス１１及びＵＳＢホストコントローラ装置１等を介して、ＤＲＡＭ４０に接続される。ＵＳＢホストコントローラ装置１は、ＡＨＢインタフェース１０Ａを介してＡＨＢマスタバス１２とＡＨＢスレーブバス１３にそれぞれ接続されたＵＳＢホストコントローラ１０と、ＵＳＢホストコントローラ１０から、ＤＲＡＭ４０及びＣＰＵ５０へのアクセスを制御するＵＳＢホストコントローラ制御回路２０とを有する。
【００２５】
ＵＳＢホストコントローラ１０は、ＯＨＣＩ（Open Host Controller Interface）又はＥＨＣＩ（Enhanced Host Controller Interface）に準拠している。ＵＳＢホストコントローラ１０は、ＵＳＢバス１１を介して入力されたアクセスを、ＡＨＢマスタバス１２又はＡＨＢスレーブバス１３を介して、ＵＳＢホストコントローラ制御回路２０に入力する。
【００２６】
ＵＳＢホストコントローラ制御回路２０は、ＵＳＢホストコントローラ１０から、ＡＨＢマスタバス１２を介して入力されたアクセスについて、アドレスをＤＲＡＭ４０の論理アドレスに変換して、ＵＳＢホストコントローラ２０のメモリを介して、ＤＲＡＭ４０とのアクセスを制御する。更にＵＳＢホストコントローラ制御回路２０は、ＡＨＢスレーブバス１３を介して入力されたアクセスについて、アドレスをＣＰＵ５０用の論理アドレスに変換して、ＣＰＵバス５１を介して、ＣＰＵ５０とのアクセスを制御する。
【００２７】
ＣＰＵ５０は、ＡＨＢスレーブバス１３を介して、ＵＳＢホストコントローラ１０の内部のレジスタにアクセスし、ＵＳＢホストコントローラ１０の設定や制御を行う。更にＣＰＵ５０は、他のＩＯ６０や、ＣＰＵバス５１を介して接続されたモジュール（図示せず）が接続されている。ＣＰＵ５０は、他のＩＯ６０や、モジュールも制御する。
【００２８】
ＵＳＢホストコントローラ制御回路２０は、データ用アドレスセレクタアドレス変換部２１、デスクリプタメモリコントローラ２２、データメモリコントローラ２３、デスクリプタキャッシュメモリ２４、デスクリプタメモリ２５、バルクＩＯレジスタ２７、データバッファメモリ２８及びＣＰＵ用バス変換部２９を備えている。
【００２９】
データ用アドレスセレクタアドレス変換部２１は、ＡＨＢマスタバス１２にアクセスされると、アクセスのアドレスがデスクリプタ領域かデータ領域かを判断する。デスクリプタ領域へのアクセスの場合、データ用アドレスセレクタアドレス変換部２１は、アドレスにデスクリプタ領域用アドレスオフセット値を加算して、ＤＲＡＭ４０のデスクリプタ領域アドレスに変換して、デスクリプタメモリコントローラ２２に入力する。一方データ領域へのアクセスの場合、データ用アドレスセレクタアドレス変換部２１は、アドレスにデータ領域用アドレスオフセット値を加算して、ＤＲＡＭ４０のデータ領域アドレスに変換して、データメモリコントローラ２３に入力する。
【００３０】
デスクリプタメモリコントローラ２２は、アクセスされたＤＲＡＭ４０のデスクリプタ領域アドレスに基づいて、デスクリプタキャッシュメモリ２４又はデスクリプタメモリ２５にアクセスして、データを要求する。
【００３１】
デスクリプタキャッシュメモリ２４は、デスクリプタ領域アドレスに基づいて、ＤＲＡＭ４０から取得したデスクリプタ領域アドレスのデータが記憶されたメモリである。デスクリプタキャッシュメモリ２４は、一般的にはＤＲＡＭである。
【００３２】
デスクリプタメモリ２５には、ＤＲＡＭ４０のデスクリプタ領域アドレスの一部のアドレスのデータが、予め記憶されたメモリである。デスクリプタメモリ２５は、一般的にはＳＲＡＭ（Static Random Access Memory）である。ここでデスクリプタ（Descriptor）とは、ＥＤ（Endpoint Descriptor）、ＴＤ（Transport Descriptor）、Ｈｃｃａ（Host Controller Communication Area）、Ｐｅｒｉｏｄｉｃ  Ｆｌａｍｅ  Ｌｉｓｔ、ｉＴＤ（Isochronous Transport Descriptor）、ｑＴＤ（Queue Transport Descriptor）、ｓｉＴＤ（Split Transaction Transport Descriptor）、Ｑｕｅｕｅ  Ｈｅａｄ、ＦＳＴＮ（Periodic Span Traversal Node）等である。
【００３３】
デスクリプタメモリ２５に格納されるデータは、情報機器１００の機能やスペックに応じて任意に設定されてもよい。例えば、ＯＨＣＩで多数のフレームに渡るデータを転送する場合、ＤＲＡＭ４０にＥＤを記憶するとともに、デスクリプタメモリ２５に、ＴＤを記憶するのが好ましい。
【００３４】
一般的に、ＥＤについて、毎フレーム毎にＤＲＡＭ４０にアクセスされるが、値は変更されない。従って、本発明の実施の形態においては、デスクリプタキャッシュメモリ２４にキャッシュしたデータを記憶することにより、都度ＤＲＡＭ４０にアクセスすることなく、デスクリプタキャッシュメモリ２４からデータを取得することが可能となる。これにより、ＵＳＢホストコントローラ装置１とＤＲＡＭ４０とのアクセスを減らすことができる。
【００３５】
一方、ＴＤは、転送毎にＵＳＢホストコントローラ１０によって値が書き換えられる。デスクリプタメモリ２５がＳＲＡＭである場合、デスクリプタメモリ２５への書き込み処理は高速に処理され、ＤＲＡＭ４０へのアクセスは発生しないので、処理を高速化することができる。
【００３６】
この様に、デスクリプタ又はデータのアクセス種別に応じて処理系統を分けるとともに、データ転送とデスクリプタのアクセスについて、デスクリプタキャッシュメモリ２４とデスクリプタメモリ２５を有することが好ましい。これにより、ＤＲＡＭ４０への頻繁なアクセスを低減することができる。
【００３７】
デスクリプタメモリコントローラ２２は、デスクリプタ領域アドレスへのアクセスが発生すると、デスクリプタ領域アドレスのデータが、デスクリプタメモリ２５にあるか否かを判断する。デスクリプタメモリ２５にある場合、デスクリプタメモリコントローラ２２は、デスクリプタメモリ２５から、当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。一方、デスクリプタ領域アドレスのデータがデスクリプタメモリ２５にない場合、ＤＲＡＭ４０に当該デスクリプタ領域アドレスのデータを要求する。デスクリプタキャッシュメモリ２４にＤＲＡＭ４０からＤＲＡＭインタフェース調停回路３０を介して取得したデスクリプタ領域アドレスのデータが記憶されると、デスクリプタメモリコントローラ２２は、デスクリプタキャッシュメモリ２４から当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。
【００３８】
データメモリコントローラ２３は、アクセスされたＤＲＡＭ４０のデータ領域アドレスに基づいて、バルクＩＯレジスタ２７又はデータバッファメモリ２８にアクセスして、データを要求する。
【００３９】
バルクＩＯレジスタ２７には、ＤＲＡＭ４０のデータ領域アドレスの一部のアドレスのデータが、予め記憶されたレジスタである。
【００４０】
バルクＩＯレジスタ２７は、比較的小量でよい。組み込み機器のデータは、一般的に連続して配置される場合がほとんどあるので、データバッファメモリ２８に先読み（プリフェッチ）機能を持たせることで、高速処理が可能となるからである。
【００４１】
バルクＩＯレジスタ２７に格納するデータとしては、マスストレージクラスなどで、ＢＯＴ（Bulk-Only Transport）を用いる場合のコマンド及びステータスデータ等が適している。
【００４２】
データバッファメモリ２８は、データ領域アドレスに基づいて、ＤＲＡＭ４０から取得したデータ領域アドレスのデータが記憶されたメモリである。データバッファメモリ２８は、先読み（プリフェッチ）可能なメモリであることが好ましい。
【００４３】
データバッファメモリ２８に先読み機能を持たせることにより、連続して配置されているデータを先読み機能で予めデータバッファメモリ２８に記憶させることができる。これにより、本発明の実施の形態に係るＵＳＢホストコントローラ装置１は、効率的にデータ転送をすることができる。又、ＤＲＡＭ４０とデータバッファメモリ２８との間でレイテンシーが発生する場合でも、データバッファメモリ２８の先読み機能により、レイテンシーを隠蔽することができる。
【００４４】
データメモリコントローラ２３は、データ領域アドレスへのアクセスが発生すると、データ領域アドレスのデータが、バルクＩＯレジスタ２７にあるか否かを判断する。バルクＩＯレジスタ２７にある場合、データメモリコントローラ２３は、バルクＩＯレジスタ２７から、当該データ領域アドレスのデータを読み出して、アクセスに応答する。一方、データ領域アドレスのデータがバルクＩＯレジスタ２７にない場合、ＤＲＡＭ４０に当該データ領域アドレスのデータを要求する。データバッファメモリ２８にＤＲＡＭ４０から取得したデータ領域アドレスのデータが記憶されると、データメモリコントローラ２２は、デスクリプタキャッシュメモリ２４から当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。
【００４５】
ＣＰＵ用バス変換部２９は、ＡＨＢスレーブバス１３にアクセスされると、アクセスされたアドレスを、ＣＰＵ５０のアドレスに変換する。
【００４６】
ＣＰＵバス変換部２９では、ＣＰＵ用のバスのアドレスに定数を加算あるいは減算することにより変換し、又はマッピングすることにより変換し、ＵＳＢホストコントローラ１０側のＡＨＢスレーブバス１３のアドレスをＣＰＵ５０側からアクセスした際、他の機器と競合しないように、あるいは、ＩＯ空間内にあるようにする等のアドレスに変換する。
【００４７】
次に図２を参照して、本発明の実施の形態に係るデータ用アドレスセレクタアドレス変換部２１が変換するアドレスを説明する。
【００４８】
図２（ａ）は、データ用アドレスセレクタアドレス変換部２１に入力されるアドレスのマッピング図である。図２（ａ）に示すアドレス領域は、ＵＳＢホストコントローラ１０が使用するホストコントローラレジスタ領域と、ＴＤ、ＥＤ、Ｈｃｃａ等のデスクリプタ領域と、データ領域とを有している。
【００４９】
図２（ｂ）は、ＤＲＡＭ４０の論理アドレスのマッピング図である。図２（ｂ）は、データ用アドレスセレクタアドレス変換部２１が出力するアドレスのマッピング図に相当する。図２（ｂ）は、ホストコントローラレジスタ領域、他のＩＯ６０のレジスタ領域、デスクリプタ領域及びデータ領域を有している。図２（ｂ）において、図２（ａ）のレジスタ領域、デスクリプタ領域及びデータ領域が、それぞれ対応づけられている。
【００５０】
データ用アドレスセレクタアドレス変換部２１は、入力されたアドレスがホストコントローラレジスタ領域の場合、ホストコントローラレジスタ領域用アドレスオフセット値を加算して、図２（ｂ）に示されたホストコントローラレジスタ領域のアドレスに変換する。
【００５１】
データ用アドレスセレクタアドレス変換部２１では、ＡＨＢマスタバス１２のアドレスを、ＤＲＡＭ４０がマッピングされているアドレスに変換する。本実施の形態では、ＣＰＵ用バス変換部２９とデータ用アドレスセレクタアドレス変換部２１のアドレスは、同一のアドレス上にマッピングされているが、それぞれ違うアドレスにマッピングされてもよい。
【００５２】
データ用アドレスセレクタアドレス変換部２１は、入力されたアドレスがデスクリプタ領域の場合、デスクリプタ領域用アドレスオフセット値を加算して、図２（ｂ）に示されたデスクリプタ領域のアドレスに変換する。図２（ｂ）のデスクリプタ領域の一部のアドレス領域は、デスクリプタメモリ２５に記憶される。図２（ｂ）に示す例では、一つのアドレスの集合が、デスクリプタメモリ２５に記憶されるように記載しているが、複数のアドレスの集合が、デスクリプタメモリ２５に記憶されるようにしてもよい。
【００５３】
データ用アドレスセレクタアドレス変換部２１は、入力されたアドレスがデータ領域の場合、データ領域用アドレスオフセットを加算して、図２（ｂ）に示されたデータ領域のアドレスに変換する。図２（ｂ）のデータ領域の一部のアドレス領域は、バルクＩＯレジスタ２７に記憶される。図２（ｂ）に示す例では、一つのアドレスの集合が、バルクＩＯレジスタ２７に記憶されるように記載しているが、複数のアドレスの集合が、バルクＩＯレジスタ２７に記憶されるようにしてもよい。
【００５４】
図３を参照して、本発明の実施の形態に係るＵＳＢホストコントローラ装置１においてアクセスが発生した場合の処理を説明する。
【００５５】
まず、ステップＳ１において、ＡＨＢマスタバス１２にアクセスが発生すると、ステップＳ２において、アクセスされたアドレスが、データ領域かデスクリプタ領域かが判断される。このとき、図２（ａ）に示したアドレスのマッピングに基づいて、判断される。
【００５６】
ステップＳ２においてデータ領域であると判断された場合、ステップＳ３に進む。ステップＳ３において、アクセスされたアドレスにデータ領域用アドレスオフセット値を加算して、ＤＲＡＭ４０におけるアドレスを出力する。
【００５７】
次に、ステップＳ４において、ステップＳ３で出力されたアドレスが図２（ｂ）のバルクＩＯレジスタ領域のアドレスであるか否かを判断する。バルクＩＯレジスタ領域のアドレスである場合、ステップＳ７において、バルクＩＯレジスタ２７にアクセスして、当該アドレスのデータを取得する。
【００５８】
一方、ステップＳ４において、ステップＳ３で出力されたアドレスが図２（ｂ）のバルクＩＯレジスタ領域のアドレスでないと判断された場合、ステップＳ５に進む。ステップＳ５において、データバッファメモリ２８に当該アドレスのデータを要求し、ステップＳ６においてＤＲＡＭ４０にアクセスして当該アドレスのデータをデータバッファメモリ２８に記憶して、当該アドレスのデータを取得する。
【００５９】
一方、ステップＳ２においてデスクリプタ領域であると判断された場合、ステップＳ８に進む。ステップＳ８において、アクセスされたアドレスにデスクリプタ領域用アドレスオフセット値を加算して、ＤＲＡＭ４０におけるアドレスを出力する。
【００６０】
次に、ステップＳ９において、ステップＳ８で出力されたアドレスが図２（ｂ）のデスクリプタメモリ領域のアドレスであるか否かを判断する。デスクリプタメモリ領域のアドレスである場合、ステップＳ１０において、デスクリプタメモリ２５にアクセスして、当該アドレスのデータを取得する。
【００６１】
一方、ステップＳ９において、ステップＳ８で出力されたアドレスが図２（ｂ）のバルクＩＯレジスタ領域のアドレスでないと判断された場合、ステップＳ１１に進む。ステップＳ１１において、デスクリプタキャッシュメモリ２４に当該アドレスのデータを要求する。ステップＳ１２において、ＤＲＡＭ４０にアクセスして当該アドレスのデータをデスクリプタキャッシュメモリ２４に記憶して、当該アドレスのデータを取得する。
【００６２】
この様な本発明の実施の形態に係るＵＳＢホストコントローラ装置１によれば、ＵＳＢホストコントローラ１０に接続されたＡＨＢマスタバス１２及びＡＨＢスレーブバス１３から入力されたアドレスは、データ用アドレスセレクタアドレス変換部２１で、ＤＲＡＭ４０の論理アドレスに変換される。これにより、ＣＰＵ５０やＤＲＡＭ４０で使用されるアドレスと、ＵＳＢホストコントローラ１０で使用されるアドレスが競合することがない。従って、ＤＲＡＭインタフェース調停回路３０、ＤＲＡＭ４０、ＣＰＵ５０、他のＩＯ６０等の既存の装置の設計変更をすることなく、これらの既存の装置のアドレスと、ＵＳＢホストコントローラを接続する際のアドレスとの整合性を保つことができる。
【００６３】
又、ＵＳＢホストコントローラ装置１において、各種デスクリプタ領域のアドレスとデータ領域のアドレス領域のアドレスとを分離させている。これにより、データ用アドレスセレクタアドレス変換部２１において、デスクリプタのアドレスとデータのアドレスを容易に分離させることができる。
【００６４】
又、先読み機能を搭載したデータバッファメモリ２８を備えているので、ＤＲＡＭ４０のデータを予めデータバッファメモリ２８に読み込むことができる。これにより、ＤＲＡＭ４０のアクセスのレイテンシーが大きい場合でも、レイテンシーを隠蔽することが可能となる。ここで、組み込み機器においては特に、転送データは連続して配置されている場合が多いので、データバッファメモリ２８の先読み機能によるレスポンス時間の短縮の効果は大きい。一方、デスクリプタのデータは、転送データとは、転送容量が少なくアドレスが連続しているとは限らない。従って、デスクリプタキャッシュメモリ２４で小容量のキャッシングを行っている。この様に、デスクリプタと転送データの処理系統を分離しているので、デスクリプタと転送データの特性に応じてＤＲＡＭ５０へのアクセスを実現することができる。デスクリプタと転送データをと同一処理すると、例えば、デスクリプタデータを先読みさせることにより、処理性能が大幅に悪化するなどの弊害が生じるが、本発明の実施の形態によれば、この様な弊害は発生しない。
【００６５】
本発明の実施の形態に係るＵＳＢホストコントローラ装置１によれば、更に、デスクリプタメモリ２５及びバルクＩＯレジスタ２７に、ＤＲＡＭ４０のアドレスにマッピングされたメモリ領域を有している。これにより、ＤＲＡＭにアクセスすることなく、高速処理を行うことが可能となる。
【００６６】
ここで、各メモリ容量を必要最小限に抑え、ＤＲＡＭ４０から、デスクリプタキャッシュメモリ２４又はデータバッファメモリ２８に読み出すことにより、ＤＲＡＭ４０のデータを取得することができる。従って、デスクリプタキャッシュメモリ２４、デスクリプタメモリ２５、バルクＩＯレジスタ２７及びデータバッファメモリ２８のデータサイズは、任意に定められてもよい。又、各メモリに記憶されないデータは、ＤＲＡＭ４０に記憶されてもよい。各メモリの容量は、情報機器１００の機能や要求される性能等に応じて決定されればよい。
【図面の簡単な説明】
【００６７】
【図１】図１は、本発明の実施の形態に係るＵＳＢホストコントローラ装置と、ＵＳＢホストコントローラ装置を備える情報機器とを説明する図である。
【図２】図２は、本発明の実施の形態において、データ用アドレスセレクタアドレス変換部によるアドレス変換を説明する図である。
【図３】図３は、本発明の実施の形態において、ＡＨＢマスタバスがアクセスされたときのＵＳＢホストコントローラ装置の処理を説明するフローチャートである。
【図４】図４は、従来のＵＳＢホストコントローラ装置と、ＵＳＢホストコントローラ装置を備える情報機器とを説明する図である。
【符号の説明】
【００６８】
１  ＵＳＢホストコントローラ装置
１０  ＵＳＢホストコントローラ
１１  ＵＳＢバス
１２  ＡＨＢマスタバス
１３  ＡＨＢスレーブバス
２０  ＵＳＢホストコントローラ制御回路
２１  データ用アドレスセレクタアドレス変換部
２２  デスクリプタメモリコントローラ
２３  データメモリコントローラ
２４  デスクリプタキャッシュメモリ
２５  デスクリプタメモリ
２７  バルクＩＯレジスタ
２８  データバッファメモリ
２９  ＣＰＵ用バス変換部
３０  ＤＲＡＭインタフェース調停回路
４０  ＤＲＡＭ
５０  ＣＰＵ
５１  ＣＰＵバス
６０  他のＩＯ
７０  ＡＨＢ調停回路
１００、２００  情報機器
【図１】
2009059155.tif 000003
【図２】
2009059155.tif 000004
【図３】
2009059155.tif 000005
【図４】
2009059155.tif 000006