JP2009059155A - Usb host controller device - Google Patents
Usb host controller device Download PDFInfo
- 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
Links
- 238000006243 chemical reaction Methods 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 description 15
- 238000012546 transfer Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
Description
本発明は、マスタバスとスレーブバスとを有するUSBホストコントローラから、メモリ及びCPUへのアクセスを制御するUSBホストコントローラ制御回路を有するUSBホストコントローラ装置に関する。 The present invention relates to a USB host controller device having a USB host controller control circuit for controlling access to a memory and a CPU from a USB host controller having a master bus and a slave bus.
一般的に、コンピュータとUSB接続される機器との通信を制御するUSBホストコントローラ装置は、OHCI(Open Host Controller Interface)、EHCI(Enhanced Host Controller Interface)等に準拠している。ここで、USB(Universal Serial Bus)ホストコントローラ装置は、AHB(Advanced High-performance Bus)などのマスタ(Master)とスレーブ(Slave)に分離したバスを有する。 In general, a USB host controller device that controls communication between a computer and a device connected by USB conforms to OHCI (Open Host Controller Interface), EHCI (Enhanced Host Controller Interface), and the like. Here, a universal serial bus (USB) host controller device has a bus separated into a master (Master) and a slave (Slave) such as AHB (Advanced High-performance Bus).
この様な従来の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にアクセスする。
An
USBホストコントローラ10が動作中は、CPUバス51を占有してしまい、この間、CPU50は、CPUバス51を使用することができなくなる。この様に、USBホストコントローラ10の動作により、CPU50の動作に大きな影響を及ぼしていた。
While the
ここで、パーソナルコンピュータ等の比較的高スペックの情報機器では、DRAM40及びバスの動作速度が高速なため、CPU50の動作に、それほど大きな影響を及ぼさない。しかし、携帯電話機やHDDレコーダなどのいわゆる組み込み機器では、CPU50の動作に大きな影響を及ぼしてしまう。更に、このような組み込み機器では、消費電力や回路コストが制限されているため、DRAM40やバスの動作速度を、パーソナルコンピュータ等の様に高めることはできない。又、CPU50の処理能力も、パーソナルコンピュータ等の様に、高スペックのものを搭載することができない。従って、特に組み込み機器においては、USBホストコントローラ10が動作中にCPUバス51を占拠してしまう問題が顕著となってしまう。この様に、USBホストコントローラ10の動作は、組み込み機器に大きな負担を強いているという問題があった。
Here, in a relatively high-spec information device such as a personal computer, the operation speed of the
特に、OHCI又はEHCIに準拠したUSBホストコントローラ10は、フレーム毎に、デスクリプタをDRAM40へアクセスさせる必要があった。従って、データの転送以外でも定期的にDRAM40へのアクセスが発生することにより、他のモジュールのDRAM40の使用効率を低下させることになっていた。
In particular, the
又、USBホストコントローラ10は、32ビットのリニアアドレスを使用するとともに、データのアライメントなども要求される。従って、USBホストコントローラ10を既存のシステムに組み込もうとした場合、既存のシステムのアドレスをUSBホストコントローラ10に合わせなければならない。これにより、既存システムに、大幅な設計変更が必要になる場合が多かった。
Further, the
これらの解決方法として、スレーブバスからのみ、システムメモリにアクセスする様に制御する方法がある(例えば、特許文献1参照)。特許文献1に記載の方法においては、USBホストとして動作する電子デバイスが、互いにメモリバスで接続され、組み込みプロセッサとシステムメモリとを備えている。バスコントローラ集積回路は、システムメモリを支配せず、単にスレーブとして機能する。組み込みプロセッサは、ホストコントローラ集積回路に転送ベースのトランザクションの形式で、データを書き込む。
As a solution to these problems, there is a method of controlling to access the system memory only from the slave bus (see, for example, Patent Document 1). In the method described in
又、DMAコントローラを介してシステムメモリにアクセスする方法もある(例えば、特許文献2参照)。特許文献2に記載の方法においては、ホストコントローラが、関連するシステムメモリからデータを取り出すために、開始アドレス及びブロック長をDMAコントローラに送信し、DMAコントローラは、ホストコントローラから送信された開始アドレス及びブロック長を受信すると、DMAコントローラがシステムメモリから指示データを取り出す。
しかしながら、上述した特許文献1及び特許文献2に記載の方法は、下記のような問題がある。
However, the methods described in
特許文献1に記載の方法では、内部RAMに転送に必要な情報を全て記憶しなければならない。従って、内部RAMの容量が小さい場合、大きいデータサイズのデータを送信するたびに、CPUがデータを内部RAMに転送しなければならない問題がある。これを回避しようとすると、非常に大きいデータサイズのRAMを内部に備えなければならない。このため、CPUは適時、USBホストコントローラのアクセスを許可する制御をしなければならない。これにより、負担の大きい制御が必要となるとともに、OHCIやEHCIに適合するようにソフトウェアの書き直しが必要となってしまうという問題がある。
In the method described in
特許文献2に記載の方法では、CPUは、USBホストコントローラがアクセスするDRAMへのアクセス権を調停する必要がある。又、調停する必要がない場合でも、アドレス空間は、CPUとUSBホストコントローラとで共有である。又、SDRAMコントローラを内部に有しているため、他のIOとの共有が難しい。又、組み込み機器の場合、USBなどのIOより、他のモジュールを優先する場合もある。又、DRAMのアクセス頻度が高かったり、アクセス方法に制限がある場合もある。従って、DRAMとのアクセスでレイテンシーが大きい場合があり、データの転送に遅延が生じる可能性がある。
In the method described in
この様に、上述した特許文献1及び特許文献2に記載のUSBホストコントローラは、組み込み機器に適切なものではなかった。
As described above, the USB host controllers described in
そこで本発明は、組み込み機器に好適なUSBホストコントローラ装置を提供することを目的とする。 Therefore, an object of the present invention is to provide a USB host controller device suitable for an embedded device.
上記課題を解決するために、本発明の第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)と、を備える。 In order to solve the above problems, the first feature of the present invention is that the USB host controller (10) having the master bus (12) and the slave bus (13) accesses the memory (40) and the CPU (50). The present invention relates to a USB host controller device (1) having a USB host controller control circuit (20) for controlling the above. That is, when the USB host controller control circuit (20) of the USB host controller device (1) according to the first feature of the present invention is accessed to the master bus (12), it determines whether the access address is a descriptor area or a data area. In the case of access to the descriptor area, the address offset value for descriptor area is added to the address and converted into the descriptor area address of the memory (40). On the other hand, in the case of access to the data area, the address for data area is used. When an access to the data address selector address conversion unit (21) that adds the offset value and converts it to the data area address of the memory (40) and the descriptor area occurs, the memory (40 ) Descriptor area address obtained from A descriptor cache memory (24) for storing data, and a data buffer memory (28) for storing data at the data area address acquired from the memory (40) based on the data area address when an access to the data area occurs And comprising.
ここで、スレーブバス(13)にアクセスされると、アクセスされたアドレスを、CPU(50)のアドレスに変換するCPU用バス変換部(29)を更に備えてもよい。 Here, when the slave bus (13) is accessed, a CPU bus conversion unit (29) may be further provided that converts the accessed address into an address of the CPU (50).
ここで、データバッファメモリ(28)は、先読み可能なメモリであることが好ましい。 Here, the data buffer memory (28) is preferably a pre-readable memory.
更に、メモリ(40)のデスクリプタ領域アドレスの一部のアドレスのデータを、予め記憶するデスクリプタメモリ(25)を更に備えてもよい。この場合、デスクリプタ領域アドレスのデータがデスクリプタメモリ(25)にない場合、デスクリプタキャッシュメモリ(24)に、メモリ(40)から取得したデスクリプタ領域アドレスのデータが記憶される。 Furthermore, you may further provide the descriptor memory (25) which memorize | stores beforehand the data of the one part address of the descriptor area | region address of a memory (40). In this case, when the data of the descriptor area address is not in the descriptor memory (25), the data of the descriptor area address acquired from the memory (40) is stored in the descriptor cache memory (24).
又、メモリ(40)のデータ領域アドレスの一部のアドレスのデータを、予め記憶するバルクIOレジスタ(27)を更に備えてもよい。この場合、データ領域アドレスのデータがバルクIOレジスタ(27)にない場合、データバッファメモリ(28)に、メモリ(40)から取得したデータ領域アドレスのデータが記憶される。 Further, a bulk IO register (27) for storing in advance data at a part of the data area address of the memory (40) may be further provided. In this case, when the data at the data area address is not in the bulk IO register (27), the data at the data area address acquired from the memory (40) is stored in the data buffer memory (28).
本発明によれば、データ用アドレスセレクタアドレス変換部を設けることにより、USBホストコントローラで用いられるアドレスと、CPU及びDRAMで用いられるアドレスが競合することを防ぎ、機器にUSB装置を組み込む際に、CPU及びDRAMで用いられるアドレスが、USBホストコントローラで用いられるアドレスに依存することがなく、利便性のよいUSBホストコントローラ装置を提供することができる。 According to the present invention, by providing the data address selector address conversion unit, it is possible to prevent the address used in the USB host controller and the address used in the CPU and DRAM from competing, and when incorporating the USB device into the device, An address used in the CPU and DRAM does not depend on an address used in the USB host controller, and a convenient USB host controller device can be provided.
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。 Next, embodiments of the present invention will be described with reference to the drawings. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals.
(実施の形態)
図1を参照して、本発明の実施の形態に係るUSBホストコントローラ装置1を説明する。本発明の実施の形態に係るUSBホストコントローラ装置1は、携帯電話機などのいわゆる組み込み機器である情報機器100に用いられる。
(Embodiment)
A USB
図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との通信を調停する。
1, an
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とを有する。
The USB
USBホストコントローラ10は、OHCI(Open Host Controller Interface)又はEHCI(Enhanced Host Controller Interface)に準拠している。USBホストコントローラ10は、USBバス11を介して入力されたアクセスを、AHBマスタバス12又はAHBスレーブバス13を介して、USBホストコントローラ制御回路20に入力する。
The
USBホストコントローラ制御回路20は、USBホストコントローラ10から、AHBマスタバス12を介して入力されたアクセスについて、アドレスをDRAM40の論理アドレスに変換して、USBホストコントローラ20のメモリを介して、DRAM40とのアクセスを制御する。更にUSBホストコントローラ制御回路20は、AHBスレーブバス13を介して入力されたアクセスについて、アドレスをCPU50用の論理アドレスに変換して、CPUバス51を介して、CPU50とのアクセスを制御する。
The USB host
CPU50は、AHBスレーブバス13を介して、USBホストコントローラ10の内部のレジスタにアクセスし、USBホストコントローラ10の設定や制御を行う。更にCPU50は、他のIO60や、CPUバス51を介して接続されたモジュール(図示せず)が接続されている。CPU50は、他のIO60や、モジュールも制御する。
The
USBホストコントローラ制御回路20は、データ用アドレスセレクタアドレス変換部21、デスクリプタメモリコントローラ22、データメモリコントローラ23、デスクリプタキャッシュメモリ24、デスクリプタメモリ25、バルクIOレジスタ27、データバッファメモリ28及びCPU用バス変換部29を備えている。
The USB host
データ用アドレスセレクタアドレス変換部21は、AHBマスタバス12にアクセスされると、アクセスのアドレスがデスクリプタ領域かデータ領域かを判断する。デスクリプタ領域へのアクセスの場合、データ用アドレスセレクタアドレス変換部21は、アドレスにデスクリプタ領域用アドレスオフセット値を加算して、DRAM40のデスクリプタ領域アドレスに変換して、デスクリプタメモリコントローラ22に入力する。一方データ領域へのアクセスの場合、データ用アドレスセレクタアドレス変換部21は、アドレスにデータ領域用アドレスオフセット値を加算して、DRAM40のデータ領域アドレスに変換して、データメモリコントローラ23に入力する。
When the
デスクリプタメモリコントローラ22は、アクセスされたDRAM40のデスクリプタ領域アドレスに基づいて、デスクリプタキャッシュメモリ24又はデスクリプタメモリ25にアクセスして、データを要求する。
The
デスクリプタキャッシュメモリ24は、デスクリプタ領域アドレスに基づいて、DRAM40から取得したデスクリプタ領域アドレスのデータが記憶されたメモリである。デスクリプタキャッシュメモリ24は、一般的にはDRAMである。
The
デスクリプタメモリ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)等である。
The
デスクリプタメモリ25に格納されるデータは、情報機器100の機能やスペックに応じて任意に設定されてもよい。例えば、OHCIで多数のフレームに渡るデータを転送する場合、DRAM40にEDを記憶するとともに、デスクリプタメモリ25に、TDを記憶するのが好ましい。
The data stored in the
一般的に、EDについて、毎フレーム毎にDRAM40にアクセスされるが、値は変更されない。従って、本発明の実施の形態においては、デスクリプタキャッシュメモリ24にキャッシュしたデータを記憶することにより、都度DRAM40にアクセスすることなく、デスクリプタキャッシュメモリ24からデータを取得することが可能となる。これにより、USBホストコントローラ装置1とDRAM40とのアクセスを減らすことができる。
In general, for the ED, the
一方、TDは、転送毎にUSBホストコントローラ10によって値が書き換えられる。デスクリプタメモリ25がSRAMである場合、デスクリプタメモリ25への書き込み処理は高速に処理され、DRAM40へのアクセスは発生しないので、処理を高速化することができる。
On the other hand, the value of TD is rewritten by the
この様に、デスクリプタ又はデータのアクセス種別に応じて処理系統を分けるとともに、データ転送とデスクリプタのアクセスについて、デスクリプタキャッシュメモリ24とデスクリプタメモリ25を有することが好ましい。これにより、DRAM40への頻繁なアクセスを低減することができる。
As described above, it is preferable that the processing system is divided according to the descriptor or data access type, and that the
デスクリプタメモリコントローラ22は、デスクリプタ領域アドレスへのアクセスが発生すると、デスクリプタ領域アドレスのデータが、デスクリプタメモリ25にあるか否かを判断する。デスクリプタメモリ25にある場合、デスクリプタメモリコントローラ22は、デスクリプタメモリ25から、当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。一方、デスクリプタ領域アドレスのデータがデスクリプタメモリ25にない場合、DRAM40に当該デスクリプタ領域アドレスのデータを要求する。デスクリプタキャッシュメモリ24にDRAM40からDRAMインタフェース調停回路30を介して取得したデスクリプタ領域アドレスのデータが記憶されると、デスクリプタメモリコントローラ22は、デスクリプタキャッシュメモリ24から当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。
When access to the descriptor area address occurs, the
データメモリコントローラ23は、アクセスされたDRAM40のデータ領域アドレスに基づいて、バルクIOレジスタ27又はデータバッファメモリ28にアクセスして、データを要求する。
The
バルクIOレジスタ27には、DRAM40のデータ領域アドレスの一部のアドレスのデータが、予め記憶されたレジスタである。
The bulk IO register 27 is a register in which data at a part of the data area address of the
バルクIOレジスタ27は、比較的小量でよい。組み込み機器のデータは、一般的に連続して配置される場合がほとんどあるので、データバッファメモリ28に先読み(プリフェッチ)機能を持たせることで、高速処理が可能となるからである。
The bulk IO register 27 may be a relatively small amount. This is because the data of the embedded device is generally almost continuously arranged, so that the
バルクIOレジスタ27に格納するデータとしては、マスストレージクラスなどで、BOT(Bulk-Only Transport)を用いる場合のコマンド及びステータスデータ等が適している。
As data to be stored in the
データバッファメモリ28は、データ領域アドレスに基づいて、DRAM40から取得したデータ領域アドレスのデータが記憶されたメモリである。データバッファメモリ28は、先読み(プリフェッチ)可能なメモリであることが好ましい。
The
データバッファメモリ28に先読み機能を持たせることにより、連続して配置されているデータを先読み機能で予めデータバッファメモリ28に記憶させることができる。これにより、本発明の実施の形態に係るUSBホストコントローラ装置1は、効率的にデータ転送をすることができる。又、DRAM40とデータバッファメモリ28との間でレイテンシーが発生する場合でも、データバッファメモリ28の先読み機能により、レイテンシーを隠蔽することができる。
By providing the
データメモリコントローラ23は、データ領域アドレスへのアクセスが発生すると、データ領域アドレスのデータが、バルクIOレジスタ27にあるか否かを判断する。バルクIOレジスタ27にある場合、データメモリコントローラ23は、バルクIOレジスタ27から、当該データ領域アドレスのデータを読み出して、アクセスに応答する。一方、データ領域アドレスのデータがバルクIOレジスタ27にない場合、DRAM40に当該データ領域アドレスのデータを要求する。データバッファメモリ28にDRAM40から取得したデータ領域アドレスのデータが記憶されると、データメモリコントローラ22は、デスクリプタキャッシュメモリ24から当該デスクリプタ領域アドレスのデータを読み出して、アクセスに応答する。
When access to the data area address occurs, the
CPU用バス変換部29は、AHBスレーブバス13にアクセスされると、アクセスされたアドレスを、CPU50のアドレスに変換する。
When the
CPUバス変換部29では、CPU用のバスのアドレスに定数を加算あるいは減算することにより変換し、又はマッピングすることにより変換し、USBホストコントローラ10側のAHBスレーブバス13のアドレスをCPU50側からアクセスした際、他の機器と競合しないように、あるいは、IO空間内にあるようにする等のアドレスに変換する。
In the CPU
次に図2を参照して、本発明の実施の形態に係るデータ用アドレスセレクタアドレス変換部21が変換するアドレスを説明する。
Next, with reference to FIG. 2, an address converted by the data address
図2(a)は、データ用アドレスセレクタアドレス変換部21に入力されるアドレスのマッピング図である。図2(a)に示すアドレス領域は、USBホストコントローラ10が使用するホストコントローラレジスタ領域と、TD、ED、Hcca等のデスクリプタ領域と、データ領域とを有している。
FIG. 2A is a mapping diagram of addresses input to the data address selector
図2(b)は、DRAM40の論理アドレスのマッピング図である。図2(b)は、データ用アドレスセレクタアドレス変換部21が出力するアドレスのマッピング図に相当する。図2(b)は、ホストコントローラレジスタ領域、他のIO60のレジスタ領域、デスクリプタ領域及びデータ領域を有している。図2(b)において、図2(a)のレジスタ領域、デスクリプタ領域及びデータ領域が、それぞれ対応づけられている。
FIG. 2B is a logical address mapping diagram of the
データ用アドレスセレクタアドレス変換部21は、入力されたアドレスがホストコントローラレジスタ領域の場合、ホストコントローラレジスタ領域用アドレスオフセット値を加算して、図2(b)に示されたホストコントローラレジスタ領域のアドレスに変換する。
When the input address is the host controller register area, the data address selector
データ用アドレスセレクタアドレス変換部21では、AHBマスタバス12のアドレスを、DRAM40がマッピングされているアドレスに変換する。本実施の形態では、CPU用バス変換部29とデータ用アドレスセレクタアドレス変換部21のアドレスは、同一のアドレス上にマッピングされているが、それぞれ違うアドレスにマッピングされてもよい。
The data address
データ用アドレスセレクタアドレス変換部21は、入力されたアドレスがデスクリプタ領域の場合、デスクリプタ領域用アドレスオフセット値を加算して、図2(b)に示されたデスクリプタ領域のアドレスに変換する。図2(b)のデスクリプタ領域の一部のアドレス領域は、デスクリプタメモリ25に記憶される。図2(b)に示す例では、一つのアドレスの集合が、デスクリプタメモリ25に記憶されるように記載しているが、複数のアドレスの集合が、デスクリプタメモリ25に記憶されるようにしてもよい。
When the input address is the descriptor area, the data address selector
データ用アドレスセレクタアドレス変換部21は、入力されたアドレスがデータ領域の場合、データ領域用アドレスオフセットを加算して、図2(b)に示されたデータ領域のアドレスに変換する。図2(b)のデータ領域の一部のアドレス領域は、バルクIOレジスタ27に記憶される。図2(b)に示す例では、一つのアドレスの集合が、バルクIOレジスタ27に記憶されるように記載しているが、複数のアドレスの集合が、バルクIOレジスタ27に記憶されるようにしてもよい。
If the input address is a data area, the data address selector
図3を参照して、本発明の実施の形態に係るUSBホストコントローラ装置1においてアクセスが発生した場合の処理を説明する。
With reference to FIG. 3, a process when an access occurs in the USB
まず、ステップS1において、AHBマスタバス12にアクセスが発生すると、ステップS2において、アクセスされたアドレスが、データ領域かデスクリプタ領域かが判断される。このとき、図2(a)に示したアドレスのマッピングに基づいて、判断される。
First, when an access occurs in the
ステップS2においてデータ領域であると判断された場合、ステップS3に進む。ステップS3において、アクセスされたアドレスにデータ領域用アドレスオフセット値を加算して、DRAM40におけるアドレスを出力する。
If it is determined in step S2 that the area is a data area, the process proceeds to step S3. In step S3, the data area address offset value is added to the accessed address, and the address in the
次に、ステップS4において、ステップS3で出力されたアドレスが図2(b)のバルクIOレジスタ領域のアドレスであるか否かを判断する。バルクIOレジスタ領域のアドレスである場合、ステップS7において、バルクIOレジスタ27にアクセスして、当該アドレスのデータを取得する。 Next, in step S4, it is determined whether or not the address output in step S3 is the address of the bulk IO register area in FIG. If it is the address of the bulk IO register area, in step S7, the bulk IO register 27 is accessed to obtain the data at that address.
一方、ステップS4において、ステップS3で出力されたアドレスが図2(b)のバルクIOレジスタ領域のアドレスでないと判断された場合、ステップS5に進む。ステップS5において、データバッファメモリ28に当該アドレスのデータを要求し、ステップS6においてDRAM40にアクセスして当該アドレスのデータをデータバッファメモリ28に記憶して、当該アドレスのデータを取得する。
On the other hand, if it is determined in step S4 that the address output in step S3 is not the address of the bulk IO register area in FIG. 2B, the process proceeds to step S5. In step S5, the data at the address is requested to the
一方、ステップS2においてデスクリプタ領域であると判断された場合、ステップS8に進む。ステップS8において、アクセスされたアドレスにデスクリプタ領域用アドレスオフセット値を加算して、DRAM40におけるアドレスを出力する。
On the other hand, if it is determined in step S2 that the area is a descriptor area, the process proceeds to step S8. In step S8, the descriptor area address offset value is added to the accessed address, and the address in the
次に、ステップS9において、ステップS8で出力されたアドレスが図2(b)のデスクリプタメモリ領域のアドレスであるか否かを判断する。デスクリプタメモリ領域のアドレスである場合、ステップS10において、デスクリプタメモリ25にアクセスして、当該アドレスのデータを取得する。
Next, in step S9, it is determined whether or not the address output in step S8 is the address of the descriptor memory area in FIG. If it is the address of the descriptor memory area, in step S10, the
一方、ステップS9において、ステップS8で出力されたアドレスが図2(b)のバルクIOレジスタ領域のアドレスでないと判断された場合、ステップS11に進む。ステップS11において、デスクリプタキャッシュメモリ24に当該アドレスのデータを要求する。ステップS12において、DRAM40にアクセスして当該アドレスのデータをデスクリプタキャッシュメモリ24に記憶して、当該アドレスのデータを取得する。
On the other hand, if it is determined in step S9 that the address output in step S8 is not the address of the bulk IO register area in FIG. 2B, the process proceeds to step S11. In step S11, the data of the address is requested to the
この様な本発明の実施の形態に係るUSBホストコントローラ装置1によれば、USBホストコントローラ10に接続されたAHBマスタバス12及びAHBスレーブバス13から入力されたアドレスは、データ用アドレスセレクタアドレス変換部21で、DRAM40の論理アドレスに変換される。これにより、CPU50やDRAM40で使用されるアドレスと、USBホストコントローラ10で使用されるアドレスが競合することがない。従って、DRAMインタフェース調停回路30、DRAM40、CPU50、他のIO60等の既存の装置の設計変更をすることなく、これらの既存の装置のアドレスと、USBホストコントローラを接続する際のアドレスとの整合性を保つことができる。
According to the USB
又、USBホストコントローラ装置1において、各種デスクリプタ領域のアドレスとデータ領域のアドレス領域のアドレスとを分離させている。これにより、データ用アドレスセレクタアドレス変換部21において、デスクリプタのアドレスとデータのアドレスを容易に分離させることができる。
Further, in the USB
又、先読み機能を搭載したデータバッファメモリ28を備えているので、DRAM40のデータを予めデータバッファメモリ28に読み込むことができる。これにより、DRAM40のアクセスのレイテンシーが大きい場合でも、レイテンシーを隠蔽することが可能となる。ここで、組み込み機器においては特に、転送データは連続して配置されている場合が多いので、データバッファメモリ28の先読み機能によるレスポンス時間の短縮の効果は大きい。一方、デスクリプタのデータは、転送データとは、転送容量が少なくアドレスが連続しているとは限らない。従って、デスクリプタキャッシュメモリ24で小容量のキャッシングを行っている。この様に、デスクリプタと転送データの処理系統を分離しているので、デスクリプタと転送データの特性に応じてDRAM50へのアクセスを実現することができる。デスクリプタと転送データをと同一処理すると、例えば、デスクリプタデータを先読みさせることにより、処理性能が大幅に悪化するなどの弊害が生じるが、本発明の実施の形態によれば、この様な弊害は発生しない。
Further, since the
本発明の実施の形態に係るUSBホストコントローラ装置1によれば、更に、デスクリプタメモリ25及びバルクIOレジスタ27に、DRAM40のアドレスにマッピングされたメモリ領域を有している。これにより、DRAMにアクセスすることなく、高速処理を行うことが可能となる。
According to the USB
ここで、各メモリ容量を必要最小限に抑え、DRAM40から、デスクリプタキャッシュメモリ24又はデータバッファメモリ28に読み出すことにより、DRAM40のデータを取得することができる。従って、デスクリプタキャッシュメモリ24、デスクリプタメモリ25、バルクIOレジスタ27及びデータバッファメモリ28のデータサイズは、任意に定められてもよい。又、各メモリに記憶されないデータは、DRAM40に記憶されてもよい。各メモリの容量は、情報機器100の機能や要求される性能等に応じて決定されればよい。
Here, the data of the
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 情報機器
DESCRIPTION OF
50 CPU
51
70
Claims (5)
前記USBホストコントローラ制御回路は、
前記マスタバスにアクセスされると、前記アクセスのアドレスがデスクリプタ領域かデータ領域かを判断し、前記デスクリプタ領域へのアクセスの場合、前記アドレスにデスクリプタ領域用アドレスオフセット値を加算して、前記メモリのデスクリプタ領域アドレスに変換する一方、前記データ領域へのアクセスの場合、前記アドレスにデータ領域用アドレスオフセット値を加算して、前記メモリのデータ領域アドレスに変換するデータ用アドレスセレクタアドレス変換部と、
前記デスクリプタ領域へのアクセスが発生した場合、前記デスクリプタ領域アドレスに基づいて、前記メモリから取得した前記デスクリプタ領域アドレスのデータを記憶するデスクリプタキャッシュメモリと、
前記データ領域へのアクセスが発生した場合、前記データ領域アドレスに基づいて、前記メモリから取得した前記データ領域アドレスのデータを記憶するデータバッファメモリと、
を備えることを特徴とするUSBホストコントローラ装置。 A USB host controller device having a USB host controller control circuit for controlling access to a memory and a CPU from a USB host controller having a master bus and a slave bus,
The USB host controller control circuit
When the master bus is accessed, it is determined whether the access address is a descriptor area or a data area. When accessing the descriptor area, the address offset value for the descriptor area is added to the address, and the descriptor of the memory is On the other hand, in the case of access to the data area, a data address selector address conversion unit for adding a data area address offset value to the address and converting it to the data area address in the case of accessing the data area,
When an access to the descriptor area occurs, a descriptor cache memory that stores data of the descriptor area address acquired from the memory based on the descriptor area address;
When access to the data area occurs, based on the data area address, a data buffer memory that stores data of the data area address acquired from the memory;
A USB host controller device comprising:
前記デスクリプタ領域アドレスのデータが前記デスクリプタメモリにない場合、前記デスクリプタキャッシュメモリに、前記メモリから取得した前記デスクリプタ領域アドレスのデータが記憶されることを特徴とする請求項1乃至3のいずれか1項に記載のUSBホストコントローラ装置。 A descriptor memory for storing in advance data of a part of the descriptor area address of the memory;
4. The data of the descriptor area address acquired from the memory is stored in the descriptor cache memory when the data of the descriptor area address is not in the descriptor memory. 5. The USB host controller device described in 1.
前記データ領域アドレスのデータが前記バルクIOレジスタにない場合、前記データバッファメモリに、前記メモリから取得した前記データ領域アドレスのデータが記憶されることを特徴とする請求項1乃至4のいずれか1項に記載のUSBホストコントローラ装置。 A bulk IO register that pre-stores data at a part of the data area address of the memory;
5. The data area address data acquired from the memory is stored in the data buffer memory when the data area address data is not in the bulk IO register. The USB host controller device according to the item.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007225706A JP2009059155A (en) | 2007-08-31 | 2007-08-31 | Usb host controller device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007225706A JP2009059155A (en) | 2007-08-31 | 2007-08-31 | Usb host controller device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009059155A true JP2009059155A (en) | 2009-03-19 |
Family
ID=40554834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007225706A Pending JP2009059155A (en) | 2007-08-31 | 2007-08-31 | Usb host controller device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009059155A (en) |
Cited By (1)
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 |
-
2007
- 2007-08-31 JP JP2007225706A patent/JP2009059155A/en active Pending
Cited By (1)
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 (en) | Final level cache system and corresponding methods | |
US10540306B2 (en) | Data copying method, direct memory access controller, and computer system | |
US20040107265A1 (en) | Shared memory data transfer apparatus | |
EP2466474A1 (en) | Streaming translation in display pipe | |
JP2007199841A (en) | Electronic device controller, bus control device | |
KR20160121024A (en) | Data storage device and method for operating thereof | |
KR20150095139A (en) | Direct Memory Access controller and system for accessing to channel buffer directly | |
JP4902640B2 (en) | Integrated circuit and integrated circuit system | |
KR102144185B1 (en) | Processing In Memory Device using a Conventional Memory Bus | |
JP2004118252A (en) | Semiconductor data processing equipment | |
JP2009059155A (en) | Usb host controller device | |
US8244929B2 (en) | Data processing apparatus | |
CN106325377A (en) | External device expansion card and input/output external device data processing method | |
JP2005107873A (en) | Semiconductor integrated circuit | |
US20250217292A1 (en) | Adaptive System Probe Action to Minimize Input/Output Dirty Data Transfers | |
JP2003085125A (en) | Memory controller and memory control method | |
JP2009266152A (en) | Controller, hard disk drive and control method | |
JP2008299747A (en) | USB host system and transfer data transfer method | |
JP2006195810A (en) | High-speed data transfer method | |
CN118503162A (en) | SRAM controller, electronic device and SRAM control method | |
KR20080035873A (en) | Image Processing System and Method of Multiprocessor Structure | |
JP2000047930A (en) | Data processor | |
JP2009205412A (en) | Dram controller and memory system | |
JP2005275473A (en) | Memory control adapter | |
JP2006331252A (en) | Bus bridge device |