JP2009059155A - Usbホストコントローラ装置 - Google Patents

Usbホストコントローラ装置 Download PDF

Info

Publication number
JP2009059155A
JP2009059155A JP2007225706A JP2007225706A JP2009059155A JP 2009059155 A JP2009059155 A JP 2009059155A JP 2007225706 A JP2007225706 A JP 2007225706A JP 2007225706 A JP2007225706 A JP 2007225706A JP 2009059155 A JP2009059155 A JP 2009059155A
Authority
JP
Japan
Prior art keywords
address
data
descriptor
memory
host controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007225706A
Other languages
English (en)
Inventor
Toshio Mori
俊夫 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2007225706A priority Critical patent/JP2009059155A/ja
Publication of JP2009059155A publication Critical patent/JP2009059155A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】組み込み機器に好適なUSBホストコントローラ装置を提供する。
【解決手段】USBホストコントローラ装置1は、デスクリプタ領域へのアクセスの場合、アドレスにデスクリプタ領域用アドレスオフセット値を加算して、メモリ40のデスクリプタ領域アドレスに変換するとともに、データ領域へのアクセスの場合、アドレスにデータ領域用アドレスオフセット値を加算して、メモリ40のデータ領域アドレスに変換するデータ用アドレスセレクタアドレス変換部21と、デスクリプタ領域へのアクセスが発生した場合、デスクリプタ領域アドレスに基づいて、メモリ40から取得したデスクリプタ領域アドレスのデータを記憶するデスクリプタキャッシュメモリ24と、データ領域へのアクセスが発生した場合、データ領域アドレスに基づいて、メモリ40から取得したデータ領域アドレスのデータを記憶するデータバッファメモリ28とを備える。
【選択図】図1

Description

本発明は、マスタバスとスレーブバスとを有するUSBホストコントローラから、メモリ及びCPUへのアクセスを制御するUSBホストコントローラ制御回路を有するUSBホストコントローラ装置に関する。
一般的に、コンピュータとUSB接続される機器との通信を制御するUSBホストコントローラ装置は、OHCI(Open Host Controller Interface)、EHCI(Enhanced Host Controller Interface)等に準拠している。ここで、USB(Universal Serial Bus)ホストコントローラ装置は、AHB(Advanced High-performance Bus)などのマスタ(Master)とスレーブ(Slave)に分離したバスを有する。
この様な従来のUSBホストコントローラを備える情報機器200は、図4に示す構成を備える。情報機器200は、USBホストコントローラ10、DRAM(Dynamic Random Access Memory)インタフェース調停回路30、DRAM40、CPU(Central Processing Unit)50、他のIO(Input/Output)60、AHB調停回路(Arbiter)70を備える。USBホストコントローラ10は、AHBインタフェース10Aを介して、AHBマスタバス12とAHBスレーブバス13とにそれぞれ接続されている。USBホストコントローラ10は、AHBマスタバス12及びAHBスレーブバス13を介して、AHB調停回路70に接続される。更に、AHB調停回路70は、CPUバス51を介して、CPU50及びDRAMインタフェース調停回路30に接続される。DRAMインタフェース調停回路30は、USBホストコントローラ10、及び他のIO60からDRAM40へのアクセスを調整する。USBホストコントローラ10は、DRAMインタフェース調停回路30等を介して、DRAM40にアクセスする。
USBホストコントローラ10が動作中は、CPUバス51を占有してしまい、この間、CPU50は、CPUバス51を使用することができなくなる。この様に、USBホストコントローラ10の動作により、CPU50の動作に大きな影響を及ぼしていた。
ここで、パーソナルコンピュータ等の比較的高スペックの情報機器では、DRAM40及びバスの動作速度が高速なため、CPU50の動作に、それほど大きな影響を及ぼさない。しかし、携帯電話機やHDDレコーダなどのいわゆる組み込み機器では、CPU50の動作に大きな影響を及ぼしてしまう。更に、このような組み込み機器では、消費電力や回路コストが制限されているため、DRAM40やバスの動作速度を、パーソナルコンピュータ等の様に高めることはできない。又、CPU50の処理能力も、パーソナルコンピュータ等の様に、高スペックのものを搭載することができない。従って、特に組み込み機器においては、USBホストコントローラ10が動作中にCPUバス51を占拠してしまう問題が顕著となってしまう。この様に、USBホストコントローラ10の動作は、組み込み機器に大きな負担を強いているという問題があった。
特に、OHCI又はEHCIに準拠したUSBホストコントローラ10は、フレーム毎に、デスクリプタをDRAM40へアクセスさせる必要があった。従って、データの転送以外でも定期的にDRAM40へのアクセスが発生することにより、他のモジュールのDRAM40の使用効率を低下させることになっていた。
又、USBホストコントローラ10は、32ビットのリニアアドレスを使用するとともに、データのアライメントなども要求される。従って、USBホストコントローラ10を既存のシステムに組み込もうとした場合、既存のシステムのアドレスをUSBホストコントローラ10に合わせなければならない。これにより、既存システムに、大幅な設計変更が必要になる場合が多かった。
これらの解決方法として、スレーブバスからのみ、システムメモリにアクセスする様に制御する方法がある(例えば、特許文献1参照)。特許文献1に記載の方法においては、USBホストとして動作する電子デバイスが、互いにメモリバスで接続され、組み込みプロセッサとシステムメモリとを備えている。バスコントローラ集積回路は、システムメモリを支配せず、単にスレーブとして機能する。組み込みプロセッサは、ホストコントローラ集積回路に転送ベースのトランザクションの形式で、データを書き込む。
又、DMAコントローラを介してシステムメモリにアクセスする方法もある(例えば、特許文献2参照)。特許文献2に記載の方法においては、ホストコントローラが、関連するシステムメモリからデータを取り出すために、開始アドレス及びブロック長をDMAコントローラに送信し、DMAコントローラは、ホストコントローラから送信された開始アドレス及びブロック長を受信すると、DMAコントローラがシステムメモリから指示データを取り出す。
特表2007−501472号公報 特表2007−502476号公報
しかしながら、上述した特許文献1及び特許文献2に記載の方法は、下記のような問題がある。
特許文献1に記載の方法では、内部RAMに転送に必要な情報を全て記憶しなければならない。従って、内部RAMの容量が小さい場合、大きいデータサイズのデータを送信するたびに、CPUがデータを内部RAMに転送しなければならない問題がある。これを回避しようとすると、非常に大きいデータサイズのRAMを内部に備えなければならない。このため、CPUは適時、USBホストコントローラのアクセスを許可する制御をしなければならない。これにより、負担の大きい制御が必要となるとともに、OHCIやEHCIに適合するようにソフトウェアの書き直しが必要となってしまうという問題がある。
特許文献2に記載の方法では、CPUは、USBホストコントローラがアクセスするDRAMへのアクセス権を調停する必要がある。又、調停する必要がない場合でも、アドレス空間は、CPUとUSBホストコントローラとで共有である。又、SDRAMコントローラを内部に有しているため、他のIOとの共有が難しい。又、組み込み機器の場合、USBなどのIOより、他のモジュールを優先する場合もある。又、DRAMのアクセス頻度が高かったり、アクセス方法に制限がある場合もある。従って、DRAMとのアクセスでレイテンシーが大きい場合があり、データの転送に遅延が生じる可能性がある。
この様に、上述した特許文献1及び特許文献2に記載のUSBホストコントローラは、組み込み機器に適切なものではなかった。
そこで本発明は、組み込み機器に好適なUSBホストコントローラ装置を提供することを目的とする。
上記課題を解決するために、本発明の第1の特徴は、マスタバス(12)とスレーブバス(13)とを有するUSBホストコントローラ(10)から、メモリ(40)及びCPU(50)へのアクセスを制御するUSBホストコントローラ制御回路(20)を有するUSBホストコントローラ装置(1)に関する。即ち本発明の第1の特徴に係るUSBホストコントローラ装置(1)のUSBホストコントローラ制御回路(20)は、マスタバス(12)にアクセスされると、アクセスのアドレスがデスクリプタ領域かデータ領域かを判断し、デスクリプタ領域へのアクセスの場合、アドレスにデスクリプタ領域用アドレスオフセット値を加算して、メモリ(40)のデスクリプタ領域アドレスに変換する一方、データ領域へのアクセスの場合、アドレスにデータ領域用アドレスオフセット値を加算して、メモリ(40)のデータ領域アドレスに変換するデータ用アドレスセレクタアドレス変換部(21)と、デスクリプタ領域へのアクセスが発生した場合、デスクリプタ領域アドレスに基づいて、メモリ(40)から取得したデスクリプタ領域アドレスのデータを記憶するデスクリプタキャッシュメモリ(24)と、データ領域へのアクセスが発生した場合、データ領域アドレスに基づいて、メモリ(40)から取得したデータ領域アドレスのデータを記憶するデータバッファメモリ(28)と、を備える。
ここで、スレーブバス(13)にアクセスされると、アクセスされたアドレスを、CPU(50)のアドレスに変換するCPU用バス変換部(29)を更に備えてもよい。
ここで、データバッファメモリ(28)は、先読み可能なメモリであることが好ましい。
更に、メモリ(40)のデスクリプタ領域アドレスの一部のアドレスのデータを、予め記憶するデスクリプタメモリ(25)を更に備えてもよい。この場合、デスクリプタ領域アドレスのデータがデスクリプタメモリ(25)にない場合、デスクリプタキャッシュメモリ(24)に、メモリ(40)から取得したデスクリプタ領域アドレスのデータが記憶される。
又、メモリ(40)のデータ領域アドレスの一部のアドレスのデータを、予め記憶するバルクIOレジスタ(27)を更に備えてもよい。この場合、データ領域アドレスのデータがバルクIOレジスタ(27)にない場合、データバッファメモリ(28)に、メモリ(40)から取得したデータ領域アドレスのデータが記憶される。
本発明によれば、データ用アドレスセレクタアドレス変換部を設けることにより、USBホストコントローラで用いられるアドレスと、CPU及びDRAMで用いられるアドレスが競合することを防ぎ、機器にUSB装置を組み込む際に、CPU及びDRAMで用いられるアドレスが、USBホストコントローラで用いられるアドレスに依存することがなく、利便性のよいUSBホストコントローラ装置を提供することができる。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
(実施の形態)
図1を参照して、本発明の実施の形態に係るUSBホストコントローラ装置1を説明する。本発明の実施の形態に係るUSBホストコントローラ装置1は、携帯電話機などのいわゆる組み込み機器である情報機器100に用いられる。
図1において、本発明の実施の形態に係る情報機器100は、USBホストコントローラ装置1、DRAM(Dynamic Random Access Memory)インタフェース調停回路30、DRAM(メモリ)40、CPU50及び他のIO60を備えている。USBホストコントローラ装置1は、USB機器からのアクセスをUSBバス11を介して受信し、アクセスに応じて、DRAMインタフェース調停回路30、CPU50及び他のIOに出力する。DRAMインタフェース調停回路30は、USBホストコントローラ装置1、CPU50及び他のIO60と、DRAM40との通信を調停する。
USBホストコントローラ装置1は、USBホストコントローラ10と、USBホストコントローラ制御回路20とを備える。USB機器は、USBバス11及びUSBホストコントローラ装置1等を介して、DRAM40に接続される。USBホストコントローラ装置1は、AHBインタフェース10Aを介してAHBマスタバス12とAHBスレーブバス13にそれぞれ接続されたUSBホストコントローラ10と、USBホストコントローラ10から、DRAM40及びCPU50へのアクセスを制御するUSBホストコントローラ制御回路20とを有する。
USBホストコントローラ10は、OHCI(Open Host Controller Interface)又はEHCI(Enhanced Host Controller Interface)に準拠している。USBホストコントローラ10は、USBバス11を介して入力されたアクセスを、AHBマスタバス12又はAHBスレーブバス13を介して、USBホストコントローラ制御回路20に入力する。
USBホストコントローラ制御回路20は、USBホストコントローラ10から、AHBマスタバス12を介して入力されたアクセスについて、アドレスをDRAM40の論理アドレスに変換して、USBホストコントローラ20のメモリを介して、DRAM40とのアクセスを制御する。更にUSBホストコントローラ制御回路20は、AHBスレーブバス13を介して入力されたアクセスについて、アドレスをCPU50用の論理アドレスに変換して、CPUバス51を介して、CPU50とのアクセスを制御する。
CPU50は、AHBスレーブバス13を介して、USBホストコントローラ10の内部のレジスタにアクセスし、USBホストコントローラ10の設定や制御を行う。更にCPU50は、他のIO60や、CPUバス51を介して接続されたモジュール(図示せず)が接続されている。CPU50は、他のIO60や、モジュールも制御する。
USBホストコントローラ制御回路20は、データ用アドレスセレクタアドレス変換部21、デスクリプタメモリコントローラ22、データメモリコントローラ23、デスクリプタキャッシュメモリ24、デスクリプタメモリ25、バルクIOレジスタ27、データバッファメモリ28及びCPU用バス変換部29を備えている。
データ用アドレスセレクタアドレス変換部21は、AHBマスタバス12にアクセスされると、アクセスのアドレスがデスクリプタ領域かデータ領域かを判断する。デスクリプタ領域へのアクセスの場合、データ用アドレスセレクタアドレス変換部21は、アドレスにデスクリプタ領域用アドレスオフセット値を加算して、DRAM40のデスクリプタ領域アドレスに変換して、デスクリプタメモリコントローラ22に入力する。一方データ領域へのアクセスの場合、データ用アドレスセレクタアドレス変換部21は、アドレスにデータ領域用アドレスオフセット値を加算して、DRAM40のデータ領域アドレスに変換して、データメモリコントローラ23に入力する。
デスクリプタメモリコントローラ22は、アクセスされたDRAM40のデスクリプタ領域アドレスに基づいて、デスクリプタキャッシュメモリ24又はデスクリプタメモリ25にアクセスして、データを要求する。
デスクリプタキャッシュメモリ24は、デスクリプタ領域アドレスに基づいて、DRAM40から取得したデスクリプタ領域アドレスのデータが記憶されたメモリである。デスクリプタキャッシュメモリ24は、一般的にはDRAMである。
デスクリプタメモリ25には、DRAM40のデスクリプタ領域アドレスの一部のアドレスのデータが、予め記憶されたメモリである。デスクリプタメモリ25は、一般的にはSRAM(Static Random Access Memory)である。ここでデスクリプタ(Descriptor)とは、ED(Endpoint Descriptor)、TD(Transport Descriptor)、Hcca(Host Controller Communication Area)、Periodic Flame List、iTD(Isochronous Transport Descriptor)、qTD(Queue Transport Descriptor)、siTD(Split Transaction Transport Descriptor)、Queue Head、FSTN(Periodic Span Traversal Node)等である。
デスクリプタメモリ25に格納されるデータは、情報機器100の機能やスペックに応じて任意に設定されてもよい。例えば、OHCIで多数のフレームに渡るデータを転送する場合、DRAM40にEDを記憶するとともに、デスクリプタメモリ25に、TDを記憶するのが好ましい。
一般的に、EDについて、毎フレーム毎にDRAM40にアクセスされるが、値は変更されない。従って、本発明の実施の形態においては、デスクリプタキャッシュメモリ24にキャッシュしたデータを記憶することにより、都度DRAM40にアクセスすることなく、デスクリプタキャッシュメモリ24からデータを取得することが可能となる。これにより、USBホストコントローラ装置1とDRAM40とのアクセスを減らすことができる。
一方、TDは、転送毎にUSBホストコントローラ10によって値が書き換えられる。デスクリプタメモリ25がSRAMである場合、デスクリプタメモリ25への書き込み処理は高速に処理され、DRAM40へのアクセスは発生しないので、処理を高速化することができる。
この様に、デスクリプタ又はデータのアクセス種別に応じて処理系統を分けるとともに、データ転送とデスクリプタのアクセスについて、デスクリプタキャッシュメモリ24とデスクリプタメモリ25を有することが好ましい。これにより、DRAM40への頻繁なアクセスを低減することができる。
デスクリプタメモリコントローラ22は、デスクリプタ領域アドレスへのアクセスが発生すると、デスクリプタ領域アドレスのデータが、デスクリプタメモリ25にあるか否かを判断する。デスクリプタメモリ25にある場合、デスクリプタメモリコントローラ22は、デスクリプタメモリ25から、当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。一方、デスクリプタ領域アドレスのデータがデスクリプタメモリ25にない場合、DRAM40に当該デスクリプタ領域アドレスのデータを要求する。デスクリプタキャッシュメモリ24にDRAM40からDRAMインタフェース調停回路30を介して取得したデスクリプタ領域アドレスのデータが記憶されると、デスクリプタメモリコントローラ22は、デスクリプタキャッシュメモリ24から当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。
データメモリコントローラ23は、アクセスされたDRAM40のデータ領域アドレスに基づいて、バルクIOレジスタ27又はデータバッファメモリ28にアクセスして、データを要求する。
バルクIOレジスタ27には、DRAM40のデータ領域アドレスの一部のアドレスのデータが、予め記憶されたレジスタである。
バルクIOレジスタ27は、比較的小量でよい。組み込み機器のデータは、一般的に連続して配置される場合がほとんどあるので、データバッファメモリ28に先読み(プリフェッチ)機能を持たせることで、高速処理が可能となるからである。
バルクIOレジスタ27に格納するデータとしては、マスストレージクラスなどで、BOT(Bulk-Only Transport)を用いる場合のコマンド及びステータスデータ等が適している。
データバッファメモリ28は、データ領域アドレスに基づいて、DRAM40から取得したデータ領域アドレスのデータが記憶されたメモリである。データバッファメモリ28は、先読み(プリフェッチ)可能なメモリであることが好ましい。
データバッファメモリ28に先読み機能を持たせることにより、連続して配置されているデータを先読み機能で予めデータバッファメモリ28に記憶させることができる。これにより、本発明の実施の形態に係るUSBホストコントローラ装置1は、効率的にデータ転送をすることができる。又、DRAM40とデータバッファメモリ28との間でレイテンシーが発生する場合でも、データバッファメモリ28の先読み機能により、レイテンシーを隠蔽することができる。
データメモリコントローラ23は、データ領域アドレスへのアクセスが発生すると、データ領域アドレスのデータが、バルクIOレジスタ27にあるか否かを判断する。バルクIOレジスタ27にある場合、データメモリコントローラ23は、バルクIOレジスタ27から、当該データ領域アドレスのデータを読み出して、アクセスに応答する。一方、データ領域アドレスのデータがバルクIOレジスタ27にない場合、DRAM40に当該データ領域アドレスのデータを要求する。データバッファメモリ28にDRAM40から取得したデータ領域アドレスのデータが記憶されると、データメモリコントローラ22は、デスクリプタキャッシュメモリ24から当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。
CPU用バス変換部29は、AHBスレーブバス13にアクセスされると、アクセスされたアドレスを、CPU50のアドレスに変換する。
CPUバス変換部29では、CPU用のバスのアドレスに定数を加算あるいは減算することにより変換し、又はマッピングすることにより変換し、USBホストコントローラ10側のAHBスレーブバス13のアドレスをCPU50側からアクセスした際、他の機器と競合しないように、あるいは、IO空間内にあるようにする等のアドレスに変換する。
次に図2を参照して、本発明の実施の形態に係るデータ用アドレスセレクタアドレス変換部21が変換するアドレスを説明する。
図2(a)は、データ用アドレスセレクタアドレス変換部21に入力されるアドレスのマッピング図である。図2(a)に示すアドレス領域は、USBホストコントローラ10が使用するホストコントローラレジスタ領域と、TD、ED、Hcca等のデスクリプタ領域と、データ領域とを有している。
図2(b)は、DRAM40の論理アドレスのマッピング図である。図2(b)は、データ用アドレスセレクタアドレス変換部21が出力するアドレスのマッピング図に相当する。図2(b)は、ホストコントローラレジスタ領域、他のIO60のレジスタ領域、デスクリプタ領域及びデータ領域を有している。図2(b)において、図2(a)のレジスタ領域、デスクリプタ領域及びデータ領域が、それぞれ対応づけられている。
データ用アドレスセレクタアドレス変換部21は、入力されたアドレスがホストコントローラレジスタ領域の場合、ホストコントローラレジスタ領域用アドレスオフセット値を加算して、図2(b)に示されたホストコントローラレジスタ領域のアドレスに変換する。
データ用アドレスセレクタアドレス変換部21では、AHBマスタバス12のアドレスを、DRAM40がマッピングされているアドレスに変換する。本実施の形態では、CPU用バス変換部29とデータ用アドレスセレクタアドレス変換部21のアドレスは、同一のアドレス上にマッピングされているが、それぞれ違うアドレスにマッピングされてもよい。
データ用アドレスセレクタアドレス変換部21は、入力されたアドレスがデスクリプタ領域の場合、デスクリプタ領域用アドレスオフセット値を加算して、図2(b)に示されたデスクリプタ領域のアドレスに変換する。図2(b)のデスクリプタ領域の一部のアドレス領域は、デスクリプタメモリ25に記憶される。図2(b)に示す例では、一つのアドレスの集合が、デスクリプタメモリ25に記憶されるように記載しているが、複数のアドレスの集合が、デスクリプタメモリ25に記憶されるようにしてもよい。
データ用アドレスセレクタアドレス変換部21は、入力されたアドレスがデータ領域の場合、データ領域用アドレスオフセットを加算して、図2(b)に示されたデータ領域のアドレスに変換する。図2(b)のデータ領域の一部のアドレス領域は、バルクIOレジスタ27に記憶される。図2(b)に示す例では、一つのアドレスの集合が、バルクIOレジスタ27に記憶されるように記載しているが、複数のアドレスの集合が、バルクIOレジスタ27に記憶されるようにしてもよい。
図3を参照して、本発明の実施の形態に係るUSBホストコントローラ装置1においてアクセスが発生した場合の処理を説明する。
まず、ステップS1において、AHBマスタバス12にアクセスが発生すると、ステップS2において、アクセスされたアドレスが、データ領域かデスクリプタ領域かが判断される。このとき、図2(a)に示したアドレスのマッピングに基づいて、判断される。
ステップS2においてデータ領域であると判断された場合、ステップS3に進む。ステップS3において、アクセスされたアドレスにデータ領域用アドレスオフセット値を加算して、DRAM40におけるアドレスを出力する。
次に、ステップS4において、ステップS3で出力されたアドレスが図2(b)のバルクIOレジスタ領域のアドレスであるか否かを判断する。バルクIOレジスタ領域のアドレスである場合、ステップS7において、バルクIOレジスタ27にアクセスして、当該アドレスのデータを取得する。
一方、ステップS4において、ステップS3で出力されたアドレスが図2(b)のバルクIOレジスタ領域のアドレスでないと判断された場合、ステップS5に進む。ステップS5において、データバッファメモリ28に当該アドレスのデータを要求し、ステップS6においてDRAM40にアクセスして当該アドレスのデータをデータバッファメモリ28に記憶して、当該アドレスのデータを取得する。
一方、ステップS2においてデスクリプタ領域であると判断された場合、ステップS8に進む。ステップS8において、アクセスされたアドレスにデスクリプタ領域用アドレスオフセット値を加算して、DRAM40におけるアドレスを出力する。
次に、ステップS9において、ステップS8で出力されたアドレスが図2(b)のデスクリプタメモリ領域のアドレスであるか否かを判断する。デスクリプタメモリ領域のアドレスである場合、ステップS10において、デスクリプタメモリ25にアクセスして、当該アドレスのデータを取得する。
一方、ステップS9において、ステップS8で出力されたアドレスが図2(b)のバルクIOレジスタ領域のアドレスでないと判断された場合、ステップS11に進む。ステップS11において、デスクリプタキャッシュメモリ24に当該アドレスのデータを要求する。ステップS12において、DRAM40にアクセスして当該アドレスのデータをデスクリプタキャッシュメモリ24に記憶して、当該アドレスのデータを取得する。
この様な本発明の実施の形態に係るUSBホストコントローラ装置1によれば、USBホストコントローラ10に接続されたAHBマスタバス12及びAHBスレーブバス13から入力されたアドレスは、データ用アドレスセレクタアドレス変換部21で、DRAM40の論理アドレスに変換される。これにより、CPU50やDRAM40で使用されるアドレスと、USBホストコントローラ10で使用されるアドレスが競合することがない。従って、DRAMインタフェース調停回路30、DRAM40、CPU50、他のIO60等の既存の装置の設計変更をすることなく、これらの既存の装置のアドレスと、USBホストコントローラを接続する際のアドレスとの整合性を保つことができる。
又、USBホストコントローラ装置1において、各種デスクリプタ領域のアドレスとデータ領域のアドレス領域のアドレスとを分離させている。これにより、データ用アドレスセレクタアドレス変換部21において、デスクリプタのアドレスとデータのアドレスを容易に分離させることができる。
又、先読み機能を搭載したデータバッファメモリ28を備えているので、DRAM40のデータを予めデータバッファメモリ28に読み込むことができる。これにより、DRAM40のアクセスのレイテンシーが大きい場合でも、レイテンシーを隠蔽することが可能となる。ここで、組み込み機器においては特に、転送データは連続して配置されている場合が多いので、データバッファメモリ28の先読み機能によるレスポンス時間の短縮の効果は大きい。一方、デスクリプタのデータは、転送データとは、転送容量が少なくアドレスが連続しているとは限らない。従って、デスクリプタキャッシュメモリ24で小容量のキャッシングを行っている。この様に、デスクリプタと転送データの処理系統を分離しているので、デスクリプタと転送データの特性に応じてDRAM50へのアクセスを実現することができる。デスクリプタと転送データをと同一処理すると、例えば、デスクリプタデータを先読みさせることにより、処理性能が大幅に悪化するなどの弊害が生じるが、本発明の実施の形態によれば、この様な弊害は発生しない。
本発明の実施の形態に係るUSBホストコントローラ装置1によれば、更に、デスクリプタメモリ25及びバルクIOレジスタ27に、DRAM40のアドレスにマッピングされたメモリ領域を有している。これにより、DRAMにアクセスすることなく、高速処理を行うことが可能となる。
ここで、各メモリ容量を必要最小限に抑え、DRAM40から、デスクリプタキャッシュメモリ24又はデータバッファメモリ28に読み出すことにより、DRAM40のデータを取得することができる。従って、デスクリプタキャッシュメモリ24、デスクリプタメモリ25、バルクIOレジスタ27及びデータバッファメモリ28のデータサイズは、任意に定められてもよい。又、各メモリに記憶されないデータは、DRAM40に記憶されてもよい。各メモリの容量は、情報機器100の機能や要求される性能等に応じて決定されればよい。
図1は、本発明の実施の形態に係るUSBホストコントローラ装置と、USBホストコントローラ装置を備える情報機器とを説明する図である。 図2は、本発明の実施の形態において、データ用アドレスセレクタアドレス変換部によるアドレス変換を説明する図である。 図3は、本発明の実施の形態において、AHBマスタバスがアクセスされたときのUSBホストコントローラ装置の処理を説明するフローチャートである。 図4は、従来のUSBホストコントローラ装置と、USBホストコントローラ装置を備える情報機器とを説明する図である。
符号の説明
1 USBホストコントローラ装置
10 USBホストコントローラ
11 USBバス
12 AHBマスタバス
13 AHBスレーブバス
20 USBホストコントローラ制御回路
21 データ用アドレスセレクタアドレス変換部
22 デスクリプタメモリコントローラ
23 データメモリコントローラ
24 デスクリプタキャッシュメモリ
25 デスクリプタメモリ
27 バルクIOレジスタ
28 データバッファメモリ
29 CPU用バス変換部
30 DRAMインタフェース調停回路
40 DRAM
50 CPU
51 CPUバス
60 他のIO
70 AHB調停回路
100、200 情報機器

Claims (5)

  1. マスタバスとスレーブバスとを有するUSBホストコントローラから、メモリ及びCPUへのアクセスを制御するUSBホストコントローラ制御回路を有するUSBホストコントローラ装置であって、
    前記USBホストコントローラ制御回路は、
    前記マスタバスにアクセスされると、前記アクセスのアドレスがデスクリプタ領域かデータ領域かを判断し、前記デスクリプタ領域へのアクセスの場合、前記アドレスにデスクリプタ領域用アドレスオフセット値を加算して、前記メモリのデスクリプタ領域アドレスに変換する一方、前記データ領域へのアクセスの場合、前記アドレスにデータ領域用アドレスオフセット値を加算して、前記メモリのデータ領域アドレスに変換するデータ用アドレスセレクタアドレス変換部と、
    前記デスクリプタ領域へのアクセスが発生した場合、前記デスクリプタ領域アドレスに基づいて、前記メモリから取得した前記デスクリプタ領域アドレスのデータを記憶するデスクリプタキャッシュメモリと、
    前記データ領域へのアクセスが発生した場合、前記データ領域アドレスに基づいて、前記メモリから取得した前記データ領域アドレスのデータを記憶するデータバッファメモリと、
    を備えることを特徴とするUSBホストコントローラ装置。
  2. 前記スレーブバスにアクセスされると、前記アクセスされたアドレスを、前記CPUのアドレスに変換するCPU用バス変換部を更に備えることを特徴とする請求項1に記載のUSBホストコントローラ装置。
  3. 前記データバッファメモリは、先読み可能なメモリであることを特徴とする請求項1、又は2に記載のUSBホストコントローラ装置。
  4. 前記メモリの前記デスクリプタ領域アドレスの一部のアドレスのデータを、予め記憶するデスクリプタメモリを更に備え、
    前記デスクリプタ領域アドレスのデータが前記デスクリプタメモリにない場合、前記デスクリプタキャッシュメモリに、前記メモリから取得した前記デスクリプタ領域アドレスのデータが記憶されることを特徴とする請求項1乃至3のいずれか1項に記載のUSBホストコントローラ装置。
  5. 前記メモリのデータ領域アドレスの一部のアドレスのデータを、予め記憶するバルクIOレジスタを更に備え、
    前記データ領域アドレスのデータが前記バルクIOレジスタにない場合、前記データバッファメモリに、前記メモリから取得した前記データ領域アドレスのデータが記憶されることを特徴とする請求項1乃至4のいずれか1項に記載のUSBホストコントローラ装置。
JP2007225706A 2007-08-31 2007-08-31 Usbホストコントローラ装置 Pending JP2009059155A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007225706A JP2009059155A (ja) 2007-08-31 2007-08-31 Usbホストコントローラ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007225706A JP2009059155A (ja) 2007-08-31 2007-08-31 Usbホストコントローラ装置

Publications (1)

Publication Number Publication Date
JP2009059155A true JP2009059155A (ja) 2009-03-19

Family

ID=40554834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007225706A Pending JP2009059155A (ja) 2007-08-31 2007-08-31 Usbホストコントローラ装置

Country Status (1)

Country Link
JP (1) JP2009059155A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160048353A1 (en) * 2014-08-13 2016-02-18 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160048353A1 (en) * 2014-08-13 2016-02-18 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system

Similar Documents

Publication Publication Date Title
JP6796304B2 (ja) 最終レベルキャッシュシステム及び対応する方法
US20040107265A1 (en) Shared memory data transfer apparatus
US10540306B2 (en) Data copying method, direct memory access controller, and computer system
JP2007199841A (ja) 電子機器のコントローラ、バス制御装置
WO2012067848A1 (en) Streaming translation in display pipe
US8583842B2 (en) Data transfer device and data transfer system
KR20160121024A (ko) 데이터 저장 장치와 이의 작동 방법
JP2011081553A (ja) 情報処理装置及びその制御方法
KR20180116717A (ko) 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법
JP2004118252A (ja) 半導体データ処理装置
JP4902640B2 (ja) 集積回路、及び集積回路システム
KR20150095139A (ko) 채널 버퍼로의 직접 접근이 가능한 직접 메모리 접근 컨트롤러 및 시스템.
TWI553483B (zh) 處理器及存取記憶體的方法
KR102144185B1 (ko) 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치
JP2009059155A (ja) Usbホストコントローラ装置
US8244929B2 (en) Data processing apparatus
JP2005107873A (ja) 半導体集積回路
JP2009266152A (ja) コントローラ、ハードディスクドライブおよびコントロール方法
JP2006195810A (ja) メモリコントローラおよび高速データ転送方法
JP2003085125A (ja) メモリ制御器及びメモリ制御方法
JP4496923B2 (ja) 共有メモリシステム
JP2000047930A (ja) データ処理装置
JP2009205412A (ja) Dramコントローラおよびメモリシステム
JP2006331252A (ja) バスブリッジ装置
JP2005275473A (ja) メモリコントロールアダプタ