JP2009093418A - ホストコントローラ装置及びデータ転送制御方法 - Google Patents
ホストコントローラ装置及びデータ転送制御方法 Download PDFInfo
- Publication number
- JP2009093418A JP2009093418A JP2007263388A JP2007263388A JP2009093418A JP 2009093418 A JP2009093418 A JP 2009093418A JP 2007263388 A JP2007263388 A JP 2007263388A JP 2007263388 A JP2007263388 A JP 2007263388A JP 2009093418 A JP2009093418 A JP 2009093418A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- system memory
- endpoint information
- address
- information
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】USBのホストコントローラ装置において、データ転送に寄与しないエンドポイント情報を含めたエンドポイント情報のループを逐次読み出すことにより、データ転送効率が低下していた。
【解決手段】システムメモリ2を有するホスト装置に備えられ、USBデバイスと通信を行うホストコントローラ装置であって、システムメモリ2が保持する複数のエンドポイント情報を解析してデータ転送が要求されているエンドポイント情報を選択する情報選択部13と、選択したエンドポイント情報を特定するシステムメモリ2上のアドレスを少なくとも一つ保存する記録領域14と、記録領域14に保存した少なくとも一つのシステムメモリ上のアドレスが特定するエンドポイント情報に基づいて、要求されたデータ転送を行うデータ転送部15と、を備える。
【選択図】図2
【解決手段】システムメモリ2を有するホスト装置に備えられ、USBデバイスと通信を行うホストコントローラ装置であって、システムメモリ2が保持する複数のエンドポイント情報を解析してデータ転送が要求されているエンドポイント情報を選択する情報選択部13と、選択したエンドポイント情報を特定するシステムメモリ2上のアドレスを少なくとも一つ保存する記録領域14と、記録領域14に保存した少なくとも一つのシステムメモリ上のアドレスが特定するエンドポイント情報に基づいて、要求されたデータ転送を行うデータ転送部15と、を備える。
【選択図】図2
Description
本発明は、USB(Universal Serial Bus)デバイスとデータ転送を行うホストコントローラに関する。
USBは有線であることを想定してプロトコル仕様が策定されたものであるが、近年、USBを無線化するワイヤレスUSB(Wireless USB)の技術が開発されている。例えば、ホスト装置に、有線によるUSBデバイスとのデータ転送を制御するドライバと、無線通信用のホストコントローラ装置とを装着し、ワイヤレスUSBデバイス(Wireless USB device)と無線通信によるデータ転送を実現している。USBでは、データ転送は、エンドポイント情報に基づいて実施される。このような場合、エンドポイント情報はホスト装置のシステムメモリ上に配置されている。このため、ホストコントローラ装置はシステムメモリ上に配置されているエンドポイント情報を逐次読み込み解析することになる。
また、エンドポイント情報は、次に参照するエンドポイント情報のシステムメモリ上のアドレスを保持することによって、次に参照するエンドポイント情報を指定している。最後のエンドポイント情報には、最初のエンドポイント情報を参照するように設定され、複数のエンドポイント情報がループを形成している。従って、ホストコントローラ装置は、エンドポイント情報を順番に参照することによって、すべてのエンドポイント情報を環状に参照することになる。あるいは、最後のエンドポイント情報に終端情報を有し、直線状に形成されているエンドポイント情報もある。この場合にも、終端情報に達するまで順番に参照し、終端情報のエンドポイント情報に続いて最初のエンドポイント情報から再度参照して環状に参照する。
エンドポイント情報には、データ転送を要求するエンドポイント情報と、データ転送に寄与しないエンドポイント情報とが混在し、これらのエンドポイント情報が区別されることなく一つのループを形成している。このため、データ転送を行う場合、ホストコントローラ装置はエンドポイント情報を一つずつシステムメモリ上から読み出し、データ転送を要求しているエンドポイント情報を選択していた。
エンドポイント情報には、データ転送を要求するエンドポイント情報と、データ転送に寄与しないエンドポイント情報とが混在し、これらのエンドポイント情報が区別されることなく一つのループを形成している。このため、データ転送を行う場合、ホストコントローラ装置はエンドポイント情報を一つずつシステムメモリ上から読み出し、データ転送を要求しているエンドポイント情報を選択していた。
無線LAN(Local Area Network)のパケット転送処理において、キュー制御時の共有メモリアクセス時間を短縮して転送効率を上げる技術が特許文献1に公開されているが、ワイヤレスUSBのデータ転送に適用することは困難であった。
特開2001−127767号公報
上述したように、エンドポイント情報にはデータ転送に寄与しないエンドポイント情報も含まれているため、ホストコントローラ装置は、データ転送に寄与するエンドポイント情報を読み出すまでは、データ転送を実施することができなかった。また、複数のエンドポイント情報によってデータ転送が要求された場合、ホストコントローラ装置は、データ転送に寄与しないエンドポイント情報も毎回読み出して次に参照するエンドポイント情報を取得する必要があった。
このように、USBのホストコントローラ装置において、データ転送に寄与しないエンドポイント情報を含めたエンドポイント情報のループを逐次読み出すことにより、データ転送効率が低下しているという問題があった。
本発明に係るホストコントローラ装置の一態様は、システムメモリを有するホスト装置に備えられ、USBデバイスと通信を行うホストコントローラ装置であって、前記システムメモリが保持する複数のエンドポイント情報を解析してデータ転送が要求されているエンドポイント情報を選択する情報選択部と、前記情報選択部が選択したエンドポイント情報を特定するシステムメモリ上のアドレスを少なくとも一つ保存する記録領域と、前記記録領域に保存した少なくとも一つのシステムメモリ上のアドレスが特定するエンドポイント情報に基づいて、要求されたデータ転送を行うデータ転送部と、を備える。
また、本発明に係るデータ転送制御方法の一態様は、システムメモリを有するホスト装置に備えられ、USBデバイスと通信を行うホストコントローラ装置のデータ転送制御方法であって、前記システムメモリが保持する複数のエンドポイント情報を一つずつ順番に読み出し、読み出したエンドポイント情報を解析して、データ転送が要求されているエンドポイント情報を選択し、選択したエンドポイント情報を特定するシステムメモリ上のアドレスを記録領域に保存することを、前記システムメモリが保持する複数のエンドポイント情報それぞれについて繰り返し、前記記録領域に保存した少なくとも一つのシステムメモリ上のアドレスに基づいて、データ転送を行う。
これにより、システムメモリが保持するエンドポイント情報を順番にアクセスすることなく、データ転送を行うことができる。従って、システムメモリへのアクセスを削減することができるため、データ転送効率を向上させることができる。
本発明によれば、USBのホストコントローラ装置において、データ転送に寄与しないエンドポイント情報を含めたエンドポイント情報のループを逐次読み出すことを回避することが可能となる。これにより、データ転送効率を向上させることができる。
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。また、本明細書では、同じ構成要素が複数存在し、それぞれを区別する場合に、符号に"−n"(n>0の整数)付加して、複数の構成要素それぞれを区別するものとする。例えば、図1では、複数のワイヤレスUSBデバイス8−1、8−2・・・を示している。例えば、図1を用いて説明する場合、ワイヤレスUSBデバイス8−1、8−2・・・のいずれか一つまたは複数を示すものとし、ワイヤレスUSBデバイス8−1(あるいは、ワイヤレスUSBデバイス8−2など)は、複数のワイヤレスUSBデバイスのそれぞれを区別して示すものとする。
また、以下の説明ではワイヤレスUSBの通信を行うシステムを一例として説明する。しかしながら、本発明は、有線のUSBのシステムに適用することも可能である。
図1は、本発明に係るワイヤレスUSBの通信を行うシステムの構成例を示す図である。ホスト側は、ホストコントローラ装置1、システムメモリ2、CPU(Central Processing Unit)3、及びメモリ4がPCI(Peripheral Component Interconnect)バス5に接続され、PCIバスコントローラ6が制御するホスト装置7を例示している。図1において、ホスト装置7には本発明に関連する構成要素を示したものであり、その他の構成要素を省略している。また、デバイス側は、ワイヤレスUSBデバイス8がデバイス装置9として例示されている。なお、デバイス装置9は、少なくとも一つのワイヤレスUSBデバイス8が配置されていればよく、また、ワイヤレスUSBデバイス8に限らず、無線通信を行うホストコントローラ装置1とワイヤーUSBデバイスとのデータ転送を中継する中継装置であってもよい。
ホストコントローラ装置1は、ホスト装置7に装着されるマイクロコンピュータを想定して説明する。ホストコントローラ装置1は、PCIバス5に接続され、ホスト装置7が備えるドライバ機能によって制御される。ドライバ機能は、例えばプログラムにより実現されるものであり、メモリ4にロードされたドライバ機能を実現する各命令がCPU3によって実行される。メモリ4は、例えばRAM(Random Access Memory)を用いる。
ホスト装置7は、デバイス装置9が接続されるとホストコントローラ装置1を介して各デバイス装置9(例えば、ワイヤレスUSBデバイス8)から各デバイス装置9を識別するエンドポイント情報を取得し、システムメモリ2に保存する。
ホスト装置7とデバイス装置9間でデータ転送が要求される場合には、システムメモリ2にエンドポイント情報が作成され、このエンドポイント情報に基づいて、ホストコントローラ装置1はデータを転送する。エンドポイント情報には、データ転送を要求する情報(適宜、「有効エンドポイント情報」ともいう)と、データ転送に寄与しない情報(適宜、「無効エンドポイント情報」ともいう)とが存在する。
以下の各実施形態では、ホストコントローラ装置1が有効エンドポイント情報を効率よく参照できる手法について説明する。
(実施形態1)
実施形態1では、有効エンドポイント情報が保持されているシステムメモリ2上のアドレスをホストコントローラ内の記録領域に保存する場合を説明する。
実施形態1では、有効エンドポイント情報が保持されているシステムメモリ2上のアドレスをホストコントローラ内の記録領域に保存する場合を説明する。
図2は、本発明の実施形態に係るホストコントローラ装置の構成例を示すブロック図である。また、図2には、システムメモリ2の一例も示している。ホストコントローラ装置1は、ホスト側インターフェース(以降、「ホスト側I/F」という)11、デバイス側インターフェース(以降、「デバイス側I/F」という)12、送受信制御部16、及びバッファ17を備える。
ホスト側I/F11は、ホスト装置7内のシステムメモリ2及びその他の構成要素とPCIバス5を介してデータの送受信を行う。
デバイス側I/F12は、デバイス装置9と無線通信によりデータの送受信を行う。
デバイス側I/F12は、デバイス装置9と無線通信によりデータの送受信を行う。
送受信制御部16は、ホスト装置7とデバイス装置9との間のデータ転送を制御する。具体的には、図2では、情報選択部13、記録領域14、及びデータ転送部15の機能に分割して実現する例を示している。
情報選択部13は、システムメモリ2が保持する複数のエンドポイント情報を解析してデータ転送が要求されている複数のエンドポイント情報を選択する。
情報選択部13は、システムメモリ2が保持する複数のエンドポイント情報を解析してデータ転送が要求されている複数のエンドポイント情報を選択する。
記録領域14は、情報選択部13が選択したシステムメモリ2上のアドレスを保存する。記録領域14は、複数のシステムメモリ2上のアドレスに順番をつけて保存する(例えば、レコード番号順など)。保存する順番は、複数のデータ転送を繰り返し行う場合の順番となる。一例として、記憶領域14は次のように使用される。記憶領域14はメモリで構成されているため、例えば、記憶領域14のアドレスの若番から順にシステムメモリのアドレスを保持する。また、繰り返し転送を行う場合は、現在参照している記憶領域14のアドレスを指すカウンタを0に設定して、カウンタが指す記憶領域14に保持されているシステムメモリ2のアドレスから順に処理し、処理を終えるとカウンタをインクリメントして、次のシステムメモリのアドレスを取得する。記憶領域14に保持しているシステムメモリ2のアドレス上にあるエンドポイント情報が要求しているデータを転送し終えたかを判断するためのフラグをシステムメモリ2上のアドレスと対で記憶領域14に保持する。例えば、最初に保持する場合はフラグを1に設定する。また、各エンドポイントで転送するデータの量は一定とは限らない。例えはコピーするファイルのサイズが異なれば送るデータの量も異なる。順番に処理をした場合、データを全て転送したエンドポイント情報を指すシステムメモリ2上のアドレスは処理対照から除外する必要があるためフラグを0に設定する。カウンタはインクリメントされながら、最後になった場合は0に戻される。フラグが0になっているシステムメモリ2上のアドレスは転送対象にはせず、カウンタをインクリメントして次のアドレスに進む。
データ転送部15は、記録領域14に保存した少なくとも一つのシステムメモリ2上のアドレスに基づいて、要求されたデータ転送を行う。データ転送部15は、システムメモリ2上の複数のアドレスからエンドポイント情報を参照し、複数のエンドポイント情報に基づいて、要求されたデータ転送を繰り返す。データ転送部15は、システムメモリ2上の一つのアドレスから参照されるエンドポイント情報に一つ以上のデータ転送を行い、システムメモリ2上の各アドレス対応するエンドポイント情報によって要求されたデータ転送のデータ量になるまで、繰り返して転送する。データ転送部15は、一度のデータ転送を自己のホストコントローラ1のデータ転送に割り当てられた時間内(自己の転送時間内)で行う。具体的には、転送するデータをパケットに割り当て、パケットの転送を割り当てられた時間内において繰り返す。また、データ転送部15は、データ転送するデータを一時的にバッファ17へ保持させる。
バッファ17は、ホスト装置7とデバイス装置9との間で転送するデータを一時的に保持する記憶領域である。
図2では、システムメモリ2にエンドポイント情報が5つ保持されている状況を示している。左側の数値はシステムメモリ2上のアドレスであり、アドレスの右側は、エンドポイント情報である。エンドポイント情報は、デバイス装置9から通知されたエンドポイント情報(M−1、M−2、H−1〜H−3)に、次に読み出すエンドポイント情報が保持されているアドレス(以降、「次のアドレス」という)が付加されてシステムメモリ2内に保持されている。また、データ転送に寄与するエンドポイント情報には、転送するデータを保持するシステムメモリ2上のアドレスが含まれている。ここで、図2において、エンドポイント情報M−1、M−2はワイヤレスUSBデバイス8−1から通知され、エンドポイント情報H−1〜H−3はワイヤレスUSBデバイス8−2から通知されているとする。なお、図2では、環状に構成されているエンドポイント情報を一例として説明したが、直線的に構成されているエンドポイント情報であってもよい。この場合、最後のエンドポイント情報に終端情報があり、最後であることを把握することができる。
続いて、ホストコントローラ装置1がシステムメモリ2に保持するエンドポイント情報へのアクセスする順番について説明する。図3は、エンドポイント情報を環状に読み込むことを説明する図であり、(a)は、システムメモリ2に保持されるエンドポイント情報の一例を示し、(b)は、エンドポイント情報を読み出す順番を示し、(c)は、有効エンドポイント情報のみを読み出す状態を示す。USBでは、リストアドレス(List Address)に最初に読み出すエンドポイント情報のアドレスが保持されている。データ転送を行う場合、ホストコントローラ装置1は、まず、リストアドレスに保持されているアドレスに配置されたエンドポイント情報を読み込み、続いて、読み出したエンドポイント情報に含まれる次のアドレスのエンドポイント情報を読み出す。ここでは、リストアドレスに100が格納されていると仮定する。
具体的には、ホストコントローラ装置1は、図3(a)に示す(1)〜(5)の順番にエンドポイント情報を読み出す。従って、図3(b)に示すように、ホストコントローラ装置1は、M−1、M−2、H−1、H−3、H−2の順番にエンドポイント情報を解析することになる。このとき、M−2とH−2のみが有効エンドポイント情報であり、その他は無効エンドポイント情報であったと仮定する。このような場合、ホストコントローラ装置1は、一度有効エンドポイント情報を解析した後、図3(c)に示すようなループでエンドポイント情報を読み出すことが好ましいといえる。
そこで、本実施形態の送受信制御部16は、システムメモリ2が保存するエンドポイント情報を解析した後、データ転送を要求する有効エンドポイント情報を参照するシステムメモリ2上のアドレスをホストコントローラ装置1内の記録領域14に保存する。そして、送受信制御部16は、保存したシステムメモリ2上のアドレスに基づいて、システムメモリ2へアクセスする。従って、無効エンドポイント情報をデータ転送の度に読み出す必要がなくなる。これにより、ホストコントローラ装置1がシステムメモリ2へアクセスする回数、特に無効エンドポイント情報を読み出す回数を削減することができる。この効果は記録領域14に保存するシステムメモリ2上のアドレスの有無に関らず生じる。システムメモリ2上のアドレスが記録領域14に保存されていない場合、ホストコントローラ装置1は、データ転送の処理を行う必要がないことを示す。また、一つ以上のシステムメモリ2上のアドレスが記録領域14に保存されている場合、データ転送に寄与しないエンドポイント情報へアクセスすることなくデータ転送を行うことができる。
続いて、送受信制御部16の動作について説明する。ホストコントローラ装置1の送受信制御部16の動作の概略は、次のようになる。(1)有効エンドポイント情報を特定するシステムメモリ2上のアドレスを記録領域14へ保存、(2)データ転送、(3)ハンドシェイク受信、(4)システムメモリ2に保持するエンドポイント情報を更新。送受信制御部16は、(2)〜(4)の処理を、有効エンドポイント情報がなくなるまで繰り返す。以下、具体的なフローチャートに基づいて動作例を説明する。ここでは、(1)を情報選択部13が実施し、(2)〜(4)をデータ転送部15が実施する場合を説明する。
図4は、情報選択部の動作例を示すフローチャートである。情報選択部13は、ホストコントローラ装置1の電源がONになると(S11)、システムメモリ2からエンドポイント情報を読み出す(S12)。始めにエンドポイント情報を読み出すとき、情報選択部13は、リストアドレスに保持されているアドレスに配置されたエンドポイント情報を読み出す。続いて、情報選択部13は、読み出したエンドポイント情報を解析し、データ転送が要求されている有効エンドポイント情報であるかを解析する(S13)。有効エンドポイント情報である場合(S14でYes)、情報選択部13は、記録領域14にシステムメモリ2上のアドレスを保存する(S15)。有効エンドポイント情報でない場合(S14でNo)、ステップS14の処理を行わない。
続いて、情報選択部13は、読み出したエンドポイント情報に付加された次のアドレスがリストアドレスに保持されているアドレスと一致しない場合、次のエンドポイント情報が有ると判断し(S16でYes)、ステップS12からの処理を繰り返す。このとき、情報選択部13は次のアドレスに配置されたエンドポイント情報をシステムメモリ2から読み出す(S12)。以降の処理は上記と同様である。これに対して、情報選択部13は、次のアドレスがリストアドレスに保持されているアドレスと一致する場合、エンドポイント情報全部を解析したと判断し(S16でNo)、待ち状態にはいる(S17)。情報選択部13は、システムメモリ2が保持するエンドポイント情報が更新された場合、更新通知を受け取り(S17で通知)、ステップS12からの処理を繰り返す。具体的には、情報選択部13は、ホスト装置7上で動作しているドライバソフトウェアからのアップデート通知(PCIレジスタのライト)を受ける。また、情報選択部13は、ホストコントローラ装置1の電源がOFFになったり、異常の発生が通知された場合(S17でOFF・異常)、処理を終了する。
このようにして、記録領域14にシステムメモリ2上のアドレスが保存されることになる。例えば、図3に示したエンドポイント情報について、情報選択部13がエンドポイント情報を解析・保存した結果例を図5に示す。情報選択部13は、データ転送を要求するエンドポイント情報の数のシステムメモリ2上のアドレスを、例えば記録領域14aのように保存する。データ転送部15は、記録領域14に保存されたシステムメモリ2上のアドレスに基づいてデータ転送を実施する。
続いてデータ転送部15の動作について説明する。図6は、データ転送部の動作例を示すフローチャートである。
データ転送部15は、情報選択部13からデータ転送が要求されていることが通知され、初期処理を実施する(S21)。例えば、カウンタの初期化などの初期処理を実施する。続いて、記録領域14に保存されているアドレスを順番に読み出す(S22)。データ転送部15は、読み出したアドレスに基づいてシステムメモリ2に配置されたエンドポイント情報をシステムメモリ2から読み出す(S23)。読み出す順番は、例えばカウンタなどにより何番目のシステムメモリ2上のアドレスであるかを指定する。続いて、データ転送部15は、エンドポイント情報により要求されたデータ転送を行う(S24)。このとき、データ転送部15は、例えば、システムメモリ2上の一つのアドレスのデータ転送を予め決められた時間の範囲(自己の転送時間の範囲)で実施し、エンドポイント情報により要求されたデータ転送が完了しない場合は、次のデータ転送において残りのデータを転送する。
データ転送部15は、情報選択部13からデータ転送が要求されていることが通知され、初期処理を実施する(S21)。例えば、カウンタの初期化などの初期処理を実施する。続いて、記録領域14に保存されているアドレスを順番に読み出す(S22)。データ転送部15は、読み出したアドレスに基づいてシステムメモリ2に配置されたエンドポイント情報をシステムメモリ2から読み出す(S23)。読み出す順番は、例えばカウンタなどにより何番目のシステムメモリ2上のアドレスであるかを指定する。続いて、データ転送部15は、エンドポイント情報により要求されたデータ転送を行う(S24)。このとき、データ転送部15は、例えば、システムメモリ2上の一つのアドレスのデータ転送を予め決められた時間の範囲(自己の転送時間の範囲)で実施し、エンドポイント情報により要求されたデータ転送が完了しない場合は、次のデータ転送において残りのデータを転送する。
データ転送部15は、データ転送に対するハンドシェイクを受信し(S25)、受信したハンドシェイクの結果に基づいて、当該エンドポイント情報によるデータ転送が完了したかを判断する(S26)。データ転送が完了している場合(S26でYes)、データ転送部15は、記録領域14から当該エンドポイント情報のアドレスを削除する(S27)。一方、データ転送が完了していない場合(S26でNo)、ステップS27の処理を行わない。続いて、データ転送部15は、今回のデータ転送をシステムメモリ2内のエンドポイント情報へ反映させる(S28)。データ転送部15は、記録領域14にアドレスが保存されているかを判断し、アドレスが保存されている場合(S29でYes)、ステップ31からの処理を繰り返す。記録領域14にアドレスが保存されてない場合(S29でNo)、データ転送部15は、処理を終了する。データ転送が完了しない場合は、途中経過としてシステムメモリを更新する。カウンタが進み再度指定されると、続きから転送を開始する。
図6の動作例において、例えば図3(c)のような有効エンドポイント情報がある場合、記録領域14は、M−2とH−2のエンドポイント情報に対応するシステムメモリ2上のアドレスを保存する。データ転送部15は、ステップS23において、M−2とH−2のエンドポイント情報をシステムメモリ2から順番に繰り返して読み出すことになる。また、M−2とH−2の一方のデータ転送が終了した場合には、他方のエンドポイント情報をシステムメモリ2から続けて読み出すことになる。
ここで、システムメモリ2へのアクセス回数について検討する。システムメモリ2へのアクセスは、情報選択部13がまず始めに有効エンドポイント情報を選択するために全部のエンドポイント情報の数だけシステムメモリ2からエンドポイント情報を読み出すが、その後、有効エンドポイント情報のみをアクセスすればよいことになる。従って、ホストコントローラ装置1は、一度有効エンドポイント情報を選択すると、システムメモリ2が保持するエンドポイント情報を順番に読み出す必要がなくなり、システムメモリ2へのアクセス数を削減できる。
以上説明したように本実施形態によれば、有効エンドポイント情報を選択し、有効エンドポイント情報が保持されているシステムメモリ2のアドレスを記録領域14へ保存することにより、無効エンドポイント情報を読み出す回数を削減することができる。このため、データ転送効率を向上させることが可能になる。また、本実施形態は、ホストコントローラ装置に配置するメモリ量に制限がある場合にもシステムメモリ2上のアドレスを保存に必要なメモリ量はエンドポイント情報を保存する場合に比べ少ないため、本発明を広く適用することが期待できる。また、ホストコントローラ装置1が接続するデバイス装置9から要求されるデータ転送が多い場合、あるいはデバイス装置9の数が多い場合にも、本発明を適用することが容易になる。
なお、上記実施形態では、記録領域14にシステムメモリ2上のアドレスを保存する場合を説明したが、エンドポイント情報を一時的に記憶領域14に保存してもよい。これにより、当該有効エンドポイント情報により要求されるデータ転送をホストコントローラ装置1内で完了することが可能になり、有効エンドポイント情報をシステムメモリ2から読み出す回数を削減することができる。また、有効エンドポイント情報のうちデータ転送に関連する部分を記録領域14に保存することによっても、システムメモリ2へのアクセス回数を削減することができる。有効エンドポイント情報の一部分とすることにより、全部を保存する場合に比べ、保存に要するメモリ量を削減することができる。
(実施形態2)
実施形態1では、システムメモリに配置される複数のエンドポイント情報のうち、データ転送に寄与するエンドポイント情報を選択し、選択したエンドポイント情報を、有効エンドポイント情報としてホストコントローラ装置1内の記録領域14に保存する場合について説明する。ホストコントローラ装置1の構成は図2と同様である。以下に、送受信制御部16の動作のうち、実施形態1と異なる部分を中心に説明する。
実施形態1では、システムメモリに配置される複数のエンドポイント情報のうち、データ転送に寄与するエンドポイント情報を選択し、選択したエンドポイント情報を、有効エンドポイント情報としてホストコントローラ装置1内の記録領域14に保存する場合について説明する。ホストコントローラ装置1の構成は図2と同様である。以下に、送受信制御部16の動作のうち、実施形態1と異なる部分を中心に説明する。
情報選択部13は、基本的に図4のフローチャートの動作を実施するが、ステップ15において、記録領域14にシステムメモリ2上のアドレスに加え、有効エンドポイント情報を保存する。その他の動作は実施形態1と同様である。例えば、図3に示したエンドポイント情報について、情報選択部13が解析・保存した結果を図7に示す。図5と異なり、記録領域14bに示すように、エンドポイント情報が配置されているシステムメモリ2上のアドレスとエンドポイント情報とを組み合わせて保存している例を示している。
次に、データ転送部15の動作について説明する。図8は、実施形態2のデータ転送部の動作例を示すフローチャートである。図8中、図6と同じステップ番号をつけた動作は図6と同様である。まず、データ転送部15は、初期処理を実施し(S21)、データ転送部15は、記録領域14に保存されている有効エンドポイント情報を順番に読み出す(S31)。読み出す順番は、例えばカウンタなどにより何番目の有効エンドポイント情報であるかを指定する。続いて、データ転送部15は、エンドポイント情報により要求されたデータ転送を行う(S24)。一度に転送するデータ量等は、実施形態1と同様である。
ハンドシェイク受信後(S25)、データ転送部15は、記録領域14のエンドポイント情報を更新する(S32)。例えば、ハンドシェイクでデータ転送済みのデータに関する情報をエンドポイント情報から除き、再送する必要のあるデータに関する情報は残しておくなどの処理を行う。さらに、エンドポイント情報により要求されたデータ転送が完了している場合は、記録領域14から当該エンドポイント情報を削除する。さらに、データ転送部15は、エンドポイント情報によって要求されたデータ転送が完了している場合(S26でYes)、システムメモリ2の当該エンドポイント情報を更新する(S33)。データ転送部15は、記録領域14に保存するシステムメモリ2上のアドレスを用いてエンドポイント情報を更新する。データ転送が未完了の場合(S26でNo)、ステップS27の処理を行わない。次に、データ転送部15は、記録領域14にエンドポイント情報が保存されている場合(S34でYes)、ステップS22の処理から繰り返す。記録領域14にエンドポイント情報が保存されていない場合(S34でNo)、処理を終了する。
以上説明したように本実施形態によれば、有効エンドポイント情報を選択し、記録領域14へ保存することにより、無効エンドポイント情報を読み出す回数を削減することができる。また、記録領域14へ有効エンドポイント情報を保存するため、当該有効エンドポイント情報により要求されるデータ転送をホストコントローラ装置1内で完了することが可能になり、有効エンドポイント情報をシステムメモリ2から読み出す回数を削減することができる。このようにして、データ転送効率を向上させることが可能になる。
以上のように、本発明に係る好適な実施形態によれば、システムメモリ2上に保持されているエンドポイント情報のうち、データ転送を要求している有効エンドポイント情報を特定するシステムメモリ2のアドレスを、ホストコントローラ装置1内の記録領域14に保存することにより、データ転送に寄与しない無効エンドポイント情報にアクセスする回数を削減することができる。有効エンドポイント情報をホストコントローラ装置1内の記録領域に保存することにより、システムメモリ2上の有効エンドポイント情報へアクセスする回数をさらに削減することができる。これらにより、データ転送効率の向上が期待できる。
なお、上記各実施形態で示した記録領域へ転送要求情報を保存する例は一例であり、これらに限定されるものではない。また、転送要求情報として記録領域14へ保存する有効エンドポイント情報を特定する情報の具体例は一例を示したものであり、システムメモリ2上のエンドポイント情報へのアクセスの回数を削減するような情報であれば、上記で説明した以外の情報それぞれ、あるいは情報の組み合わせであってもよい。
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
1 ホストコントローラ装置、2 システムメモリ、3 CPU、4 メモリ、5 PCIバス5、6 PCIバスコントローラ、7 ホスト装置、8 ワイヤレスUSBデバイス、9 デバイス装置、11 ホスト側インターフェース(ホスト側I/F)、12 デバイス側インターフェース(デバイス側I/F)、13 情報選択部、14、14a、14b 記録領域、15 データ転送部、16 送受信制御部、17 バッファ
Claims (8)
- システムメモリを有するホスト装置に備えられ、USBデバイスと通信を行うホストコントローラ装置であって、
前記システムメモリが保持する複数のエンドポイント情報を解析してデータ転送が要求されているエンドポイント情報を選択する情報選択部と、
前記情報選択部が選択したエンドポイント情報を特定するシステムメモリ上のアドレスを少なくとも一つ保存する記録領域と、
前記記録領域に保存した少なくとも一つのシステムメモリ上のアドレスが特定するエンドポイント情報に基づいて、要求されたデータ転送を行うデータ転送部と、を備えるホストコントローラ装置。 - 前記データ転送部は、前記要求されたデータ転送のデータ量になるか、自己に割り当てられた転送時間まで、データ転送を行い、前記記憶領域に保存するシステムメモリ上のアドレスが特定するエンドポイント情報によって要求されるデータ転送が終了するまでデータ転送を繰り返すことを特徴とする請求項1記載のホストコントローラ装置。
- 前記記録領域は、システムメモリ上の複数のアドレスを保存し、
前記データ転送部は、前記システムメモリ上の複数のアドレスが特定する複数のエンドポイント情報を参照し、前記複数のエンドポイント情報に基づいて、前記複数のエンドポイント情報によって要求されたデータ転送のデータ量になるまで、データ転送を繰り返すことを特徴とする請求項2記載のホストコントローラ装置。 - 前記情報選択部は、前記システムメモリが保持するエンドポイント情報に変更があったことを前記ホスト装置から通知され、前記通知に基づいて、前記システムメモリが保持するエンドポイント情報を順番に解析し、前記記録領域に保存するシステムメモリ上のアドレスを更新することを特徴とする請求項1乃至3のいずれか一項に記載のホストコントローラ装置。
- 前記データ転送部は、自己に割り当てられた転送時間のデータ転送が終了すると、前記システムメモリが保持するエンドポイント情報を更新することを特徴とする請求項1乃至4のいずれか一項に記載のホストコントローラ装置。
- 前記記録領域は、前記システムメモリ上のアドレスに加えを、選択されたエンドポイント情報を保存することを特徴とする請求項1乃至4のいずれか一項に記載のホストコントローラ装置。
- 前記データ転送部は、データ転送が完了したエンドポイント情報に対応するシステムメモリ上のアドレスを前記記録領域から削除することを特徴とする請求項1乃至6のいずれか一項に記載のホストコントローラ装置。
- システムメモリを有するホスト装置に備えられ、USBデバイスと通信を行うホストコントローラ装置のデータ転送制御方法であって、
前記システムメモリが保持する複数のエンドポイント情報を一つずつ順番に読み出し、
読み出したエンドポイント情報を解析して、データ転送が要求されているエンドポイント情報を選択し、
選択したエンドポイント情報を特定するシステムメモリ上のアドレスを記録領域に保存することを、前記システムメモリが保持する複数のエンドポイント情報それぞれについて繰り返し、
前記記録領域に保存した少なくとも一つのシステムメモリ上のアドレスに基づいて、データ転送を行うデータ転送制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007263388A JP2009093418A (ja) | 2007-10-09 | 2007-10-09 | ホストコントローラ装置及びデータ転送制御方法 |
TW097135742A TW200919197A (en) | 2007-10-09 | 2008-09-18 | Host controller device and data transfer control method |
US12/212,965 US20090094397A1 (en) | 2007-10-09 | 2008-09-18 | Host controller device and data transfer control method |
CNA2008101699183A CN101409711A (zh) | 2007-10-09 | 2008-10-09 | 主控制器设备和数据传送控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007263388A JP2009093418A (ja) | 2007-10-09 | 2007-10-09 | ホストコントローラ装置及びデータ転送制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009093418A true JP2009093418A (ja) | 2009-04-30 |
Family
ID=40524282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007263388A Withdrawn JP2009093418A (ja) | 2007-10-09 | 2007-10-09 | ホストコントローラ装置及びデータ転送制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20090094397A1 (ja) |
JP (1) | JP2009093418A (ja) |
CN (1) | CN101409711A (ja) |
TW (1) | TW200919197A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908421B2 (en) * | 2008-09-30 | 2011-03-15 | Intel Corporation | Universal serial bus endpoint context caching |
US8924614B2 (en) | 2011-06-29 | 2014-12-30 | Renesas Electronics Corporation | Host controller apparatus, information processing apparatus, and event information output method |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10268448B2 (en) | 2016-05-06 | 2019-04-23 | Texas Instruments Incorporated | Data flow control for multi-chip-select |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185641B1 (en) * | 1997-05-01 | 2001-02-06 | Standard Microsystems Corp. | Dynamically allocating space in RAM shared between multiple USB endpoints and USB host |
JP3415567B2 (ja) * | 2000-06-21 | 2003-06-09 | エヌイーシーマイクロシステム株式会社 | Usb転送制御方法およびusbコントローラ |
US6745264B1 (en) * | 2002-07-15 | 2004-06-01 | Cypress Semiconductor Corp. | Method and apparatus for configuring an interface controller wherein ping pong FIFO segments stores isochronous data and a single circular FIFO stores non-isochronous data |
US7069373B2 (en) * | 2002-11-07 | 2006-06-27 | Nec Electronics America, Inc. | USB endpoint controller flexible memory management |
US20050070227A1 (en) * | 2003-09-30 | 2005-03-31 | Chih-Hsiang Shen | Detecting and actuating method of bluetooth devices and a control system thereof |
US7149839B2 (en) * | 2004-12-03 | 2006-12-12 | Microsoft Corporation | Wireless USB hardware scheduling |
KR100647906B1 (ko) * | 2005-09-15 | 2006-11-23 | 한국전자통신연구원 | 초광대역방식의 무선 usb 호스트 장치 |
US7603474B2 (en) * | 2005-10-05 | 2009-10-13 | Microsoft Corporation | Efficient endpoint matching using a header-to-bit conversion table |
US7526590B2 (en) * | 2006-03-31 | 2009-04-28 | Intel Corporation | Systems and methods for remote pipe resource management in wireless adapters |
KR100725932B1 (ko) * | 2006-05-02 | 2007-06-11 | 삼성전자주식회사 | 무선 유에스비 장치의 동작 방법 및 이를 이용한 무선유에스비 장치 |
US7844760B2 (en) * | 2007-09-29 | 2010-11-30 | Intel Corporation | Schedule and data caching for wireless transmission |
-
2007
- 2007-10-09 JP JP2007263388A patent/JP2009093418A/ja not_active Withdrawn
-
2008
- 2008-09-18 TW TW097135742A patent/TW200919197A/zh unknown
- 2008-09-18 US US12/212,965 patent/US20090094397A1/en not_active Abandoned
- 2008-10-09 CN CNA2008101699183A patent/CN101409711A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908421B2 (en) * | 2008-09-30 | 2011-03-15 | Intel Corporation | Universal serial bus endpoint context caching |
US8924614B2 (en) | 2011-06-29 | 2014-12-30 | Renesas Electronics Corporation | Host controller apparatus, information processing apparatus, and event information output method |
US9201822B2 (en) | 2011-06-29 | 2015-12-01 | Renesas Electronics Corporation | Host controller apparatus, information processing apparatus, and event information output method |
Also Published As
Publication number | Publication date |
---|---|
US20090094397A1 (en) | 2009-04-09 |
TW200919197A (en) | 2009-05-01 |
CN101409711A (zh) | 2009-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4834362B2 (ja) | メモリ制御装置。 | |
US20120209939A1 (en) | Memory system capable of adding time information to data obtained via network | |
EP2054800A2 (en) | Flash memory access circuit | |
JP6468937B2 (ja) | 情報処理装置、制御方法、制御プログラム | |
JP2009093418A (ja) | ホストコントローラ装置及びデータ転送制御方法 | |
JP2009099092A (ja) | 携帯型情報端末 | |
JP2005258509A (ja) | ストレージ装置 | |
JP4218034B2 (ja) | データ通信システムおよびデータ通信方法、データ通信プログラム | |
JP2009025896A (ja) | データ処理装置及びデータ処理方法 | |
EP2393013A2 (en) | Method and apparatus for wireless broadband systems direct data transfer | |
JP6146306B2 (ja) | I/oデバイス制御システムおよびi/oデバイス制御システムの制御方法 | |
JP5054716B2 (ja) | 通信プロトコル処理回路、情報処理装置及び通信プロトコル処理方法 | |
JP4723334B2 (ja) | Dma転送システム | |
US10025730B2 (en) | Register device and method for software programming | |
JP4793798B2 (ja) | マイクロコンピュータ | |
JP2020027509A (ja) | 中継システム | |
KR100615694B1 (ko) | 복수개의 기능블럭을 제어하는 제어시스템 | |
JP2015061295A (ja) | 処理装置および処理方法 | |
JP2005526335A (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
JP2010237770A (ja) | 情報処理装置、ブリッジ装置および情報処理方法 | |
JP2007219925A (ja) | バス制御装置、バス制御プログラム及び記録媒体 | |
JP2008027353A (ja) | Dma制御方法及びdmaコントローラ | |
JP2005276104A (ja) | マイクロコンピュータ | |
JP6497061B2 (ja) | 情報処理装置およびプログラム | |
JP5045168B2 (ja) | 周辺デバイス制御装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100513 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20101130 |