JP2011065630A - データ転送制御装置及びデータ転送制御方法 - Google Patents

データ転送制御装置及びデータ転送制御方法 Download PDF

Info

Publication number
JP2011065630A
JP2011065630A JP2010110009A JP2010110009A JP2011065630A JP 2011065630 A JP2011065630 A JP 2011065630A JP 2010110009 A JP2010110009 A JP 2010110009A JP 2010110009 A JP2010110009 A JP 2010110009A JP 2011065630 A JP2011065630 A JP 2011065630A
Authority
JP
Japan
Prior art keywords
communication unit
data transfer
transfer
data
host
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
JP2010110009A
Other languages
English (en)
Inventor
Shinya Saito
真也 齊藤
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010110009A priority Critical patent/JP2011065630A/ja
Priority to US12/827,362 priority patent/US20110047303A1/en
Priority to CN2010102420818A priority patent/CN101996150A/zh
Publication of JP2011065630A publication Critical patent/JP2011065630A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】ホスト機能とペリフェラル機能が同時に動作する時にホスト機能又はペリフェラル機能のいずれか一方の転送パフォーマンスを高く保つこと。
【解決手段】本発明にかかるデータ転送制御装置は、デバイス装置との間のデータ転送を処理する第1の通信部と、ホスト装置との間のデータ転送を処理する第2の通信部と、を有し、第1の通信部又は第2の通信部の一方がデータ転送を優先すべき優先通信部であり、他方が非優先通信部であり、優先通信部は、当該優先通信部においてデータ転送中である場合に非優先通信部に対してデータ転送中であることを通知し、非優先通信部は、優先通信部からデータ転送中であることが通知されている場合に、当該非優先通信部におけるデータ転送を保留する。
【選択図】図1

Description

本発明は、データ転送制御装置及びデータ転送制御方法に関し、特に、ホスト機能とペリフェラル機能とを同時に使用することが可能なデータ転送制御装置及びデータ転送制御方法に関する。
近年、USB(Universal Serial Bus)インタフェースを搭載した装置(以下、USB機器)が広く利用されている。USB機器として、例えば、パーソナルコンピュータ(以下、PC)、プリンタ、デジタルカメラ、USBメモリ等が利用されている。これらのUSB機器はUSBインタフェースを介して他のUSB機器と接続され、USB規格に準拠したデータ転送が行われる。USBによるデータ転送では、一方の機器がホスト機器(例えば、パーソナルコンピュータなど)となり、他方の機器がペリフェラル機器(USBメモリ等の周辺機器)となる。各機器間で転送されるデータは、USBコントローラに設けられたバッファメモリに一時的に格納される。
また、USB規格の中でも、OTG(USB On-The-Go)と呼ばれるインタフェース規格に対応した機器に対するニーズが高まっている。特に、OTGには、ホスト機能(ホスト機器として動作する機能。但し、転送速度制限がある)とペリフェラル機能(ペリフェラル機器として動作する機能)との両方を持つことができるデュアルロールデバイス(Dual-Role Device)が定義されている。すなわち、デュアルロールデバイスは、ホスト機器又はペリフェラル機器のいずれとしても動作することができる。そして、デュアルロールデバイスに接続された相手が、従来のUSB規格におけるホスト機器やペリフェラル機器である場合には、デュアルロールデバイスの役割は一意に定まる。つまり、接続相手がホスト機器であれば、デュアルロールデバイスはペリフェラル機能を動作させ、接続相手がペリフェラル機器であれば、デュアルロールデバイスはホスト機能を動作させる。一方、通信機器同士がともにOTG規格に準拠したデュアルロールデバイスである場合には、規格に従ってどちらの機器がホスト機能として動作するかが決まる。
特許文献1には、ホスト機能におけるコントロール転送の処理負荷の軽減等を図るためのデータ転送制御装置に関する技術が開示されている。特許文献2には、内部バッファメモリに各パイプ領域を確保するためにパイプ領域の再構築処理を行うことにより効率化を図るデータ転送制御装置に関する技術が開示されている。特許文献3には、データ転送の帯域の有効活用と低消費電力化とを図るデータ転送制御装置に関する技術が開示されている。特許文献3にかかるデータ転送制御装置は、NAK(Negative AcKnowledgement)応答を受信した際に、所定の期間待った後に再送トランザクションを発行する。
特開2003−316728号公報 特開2004−349836号公報 特開2005−122372号公報
ここで、上述したデュアルロールデバイスにペリフェラル機器とホスト機器がそれぞれ接続可能な場合、当該デュアルロールデバイスは、ホスト機能とペリフェラル機能とを同時に動作させることができる。この場合、接続されたホスト機器に対しては、ペリフェラル機能が動作して処理を行う間に、接続されたペリフェラル機器に対しては、ホスト機能が動作して処理を行うこととなる。
しかしながら、デュアルロールデバイスにおいて、ホスト機能とペリフェラル機能とが同時に動作する場合、一方の機能の動作の影響により、他方の機能の高い転送パフォーマンスを保つことが困難であるという問題がある。その理由は、ホスト機能とペリフェラル機能とが共に接続先とのデータ転送を行うことにより、デュアルロールデバイスのリソースを適切に割り当てられないということが懸念されるためである。例えば、当該デュアルロールデバイスの制御を行うCPU(Central Processing Unit)が、ペリフェラル機能の制御のために処理負荷が高まった場合に、ホスト機能の転送パフォーマンスが低下してしまうことが懸念される。逆に、当該CPUがホスト機能の制御のために処理負荷が高まった場合には、ペリフェラル機能の転送パフォーマンスが低下してしまうことが懸念される。
尚、特許文献1乃至3では、ホスト機能とペリフェラル機能とが同時に動作する場合を想定していないため、課題が異なる。特許文献1は、転送種別がコントロール転送に限定されており、メインのデータ転送を対象としていない。また、特許文献2は、メモリ領域の効率的な使用に関するものである。さらに、特許文献3は、接続先のホスト装置側の技術である。
本発明の第1の態様にかかるデータ転送制御装置は、デバイス装置との間のデータ転送を処理する第1の通信部と、ホスト装置との間のデータ転送を処理する第2の通信部と、を有し、前記第1の通信部又は前記第2の通信部の一方が前記データ転送を優先すべき優先通信部であり、他方が非優先通信部であり、前記優先通信部は、当該優先通信部において前記データ転送中である場合に前記非優先通信部に対してデータ転送中であることを通知し、前記非優先通信部は、前記優先通信部から前記データ転送中であることが通知されている場合に、当該非優先通信部における前記データ転送を保留する。
本発明の第2の態様にかかるデータ転送制御方法は、デバイス装置との間のデータ転送を処理する第1の通信部と、ホスト装置との間のデータ転送を処理する第2の通信部とを有するデータ転送制御装置を制御するデータ転送制御方法であって、前記第1の通信部又は前記第2の通信部の一方が前記データ転送を優先すべき優先通信部であり、他方が非優先通信部であり、前記優先通信部は、当該優先通信部において前記データ転送中である場合に前記非優先通信部に対してデータ転送中であることを通知し、前記非優先通信部は、前記優先通信部から前記データ転送中であることが通知されている場合に、当該非優先通信部における前記データ転送を保留する。
上述した本発明の第1及び第2の態様にかかるデータ転送制御装置及びデータ転送制御方法により、優先通信部により外部の装置とデータ転送を行っている間に、非優先通信部によるデータ転送を控えることができる。それにより、優先通信部の機能におけるデータ転送処理により多くのリソースを割り当てることができる。例えば、優先通信部が上述したデュアルロールデバイスのホスト機能である場合には、ホスト機能によるデバイス装置とのデータ転送における転送パフォーマンスを高く保つことができる。一方、優先通信部が上述したデュアルロールデバイスのペリフェラル機能である場合には、ペリフェラル機能によるホスト装置とのデータ転送における転送パフォーマンスを高く保つことができる。
本発明により、ホスト機能とペリフェラル機能が同時に動作する時のホスト機能又はペリフェラル機能のいずれか一方の転送パフォーマンスを高く保つデータ転送制御装置及びデータ転送制御方法を提供することができる。
本発明の実施の形態1にかかるデータ転送制御装置を含む全体構成を示すブロック図である。 本発明の実施の形態1にかかるホストコントローラの処理の流れを示すフローチャートである。 本発明の実施の形態1にかかるペリフェラルコントローラの処理の流れを示すフローチャートである。 本発明の実施の形態1にかかる転送ステータス信号とペリフェラルコントローラの応答の例を説明する図である。 本発明の実施の形態1にかかる転送ステータス信号とペリフェラルコントローラの応答の例を説明する図である。 本発明の実施の形態1にかかるホストコントローラと転送ステータス信号の出力の関係を示す図である。 本発明の実施の形態1にかかるホストコントローラと転送ステータス信号の出力の関係を示す図である。 本発明の実施の形態2にかかるデータ転送制御装置を含む全体構成を示すブロック図である。 本発明の実施の形態2にかかるホストコントローラの処理の流れを示すフローチャートである。 本発明の実施の形態3にかかるデータ転送制御装置を含む全体構成を示すブロック図である。 本発明の実施の形態1にかかるホストコントローラ又はペリフェラルコントローラの処理の流れを示すフローチャートである。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかるデータ転送制御装置100を含む全体構成を示すブロック図である。図1には、データ転送制御装置100と、USBデバイス201、202及び203と、USBホスト300とを含む。データ転送制御装置100は、CPU10と、USB規格に準拠したデュアルロールデバイスであるUSBデュアルロールデバイス20とを備える装置である。USBデバイス201、202及び203は、USB規格に準拠したペリフェラル機器として動作するデバイス装置である。尚、デバイス装置の数は、USBデバイス201、202及び203の3つに限定されず、少なくとも1つ以上であれば構わない。USBホスト300は、USB規格に準拠したホスト機器として動作するホスト装置である。
尚、本発明の実施の形態1におけるデータ転送とは、データ転送制御装置100と、USBデバイス201、202若しくは203又はUSBホスト300のいずれかとの間で、USB規格に基づく転送を指し、少なくとも1以上のUSBトランザクションが実施されているものとする。
データ転送制御装置100は、ホスト機能とペリフェラル機能とが同時に動作可能である。尚、ここで言うところの同時とは、完全な同時に限るものではなく、1つのUSB機器において、1つ以上のUSBポートがホスト機能に使用された状態で、他のUSBポートがペリフェラル機能として使用されること、あるいはその逆を言う。例えば、プリンタなどは、ホスト機能とペリフェラル機能を同時に使用する併用機器となる。その場合、プリンタが、PCに接続された状態でペリフェラルとして動作し、他のポートにデジタルカメラを接続した状態でホストとして動作する。すなわち、プリンタにPCとデジタルカメラが同時に接続された状態では、ホスト機能とペリフェラル機能とが同時に動作する。
図1の具体的な利用形態の一例として次のものが挙げられる。ここでは、USBデバイス201がUSBメモリ、USBホスト300がPC及びデータ転送制御装置100がプリンタである場合について例示する。その場合、データ転送制御装置100は、USBデバイス201に格納された画像データをプリンタ機能により印刷することができる。また、データ転送制御装置100は、USBホスト300からの指示によりUSBホスト300から送信された画像データを印刷することができる。または、データ転送制御装置100は、USBデバイス201に格納された画像データの印刷処理と、USBホスト300から送信された画像データの印刷処理とを交互に行うことができる。尚、データ転送制御装置100、USBデバイス201及びUSBホスト300の具体例は、これに限定されない。
CPU10は、データ転送制御装置100全体の動作を制御する。例えば、CPU10がシステムメモリ(不図示)に格納された制御プログラムや設定値を読み出して、USBデュアルロールデバイス20を制御する。また、USBデュアルロールデバイス20は、USB制御回路であり、USBデバイス201,202若しくは203又はUSBホスト300に対するインタフェースを提供する。これにより、他のUSB機器との接続が可能になる。
次に、USBデュアルロールデバイス20について詳述する。USBデュアルロールデバイス20は、ペリフェラル機能に比べてホスト機能におけるデータ転送処理を優先させるデバイスである。USBデュアルロールデバイス20は、ホストコントローラ21とペリフェラルコントローラ22と、ダウンストリームポート241乃至243と、アップストリームポート25と、バスインタフェース27とを備える。USBデュアルロールデバイス20は、例えば、LSI(Large Scale Integration)で実現される。
ダウンストリームポート241乃至243は、ホスト機能専用ポートである。ダウンストリームポート241乃至243に、USBデバイス201乃至203のいずれかがUSBケーブルを介して接続されることにより、ホストコントローラ21は、USBデバイス201乃至203のいずれかとデータ転送を行う。尚、ダウンストリームポート241乃至243は、3つに限らず、少なくとも1つ以上であればよい。
ホストコントローラ21は、USBデバイス201乃至203のいずれかとのデータ転送を制御する。言い換えると、ホストコントローラ21は、USBデバイス201乃至203のいずれかとの間のデータ転送を処理する第1の通信部である。また、ホストコントローラ21は、バスインタフェース27を介してCPU10と接続されている。また、ホストコントローラ21は、USBデバイス201乃至203のいずれかとの間でのデータ転送処理中に、当該データ転送処理中であることをペリフェラルコントローラ22へ通知する。図1では、ホストコントローラ21は、ホストコントローラ21とUSBデバイス201乃至203のいずれかとの間のデータ転送状態を示す転送ステータス信号(TRANSFER STATUS SIGNAL)26をペリフェラルコントローラ22へ出力する場合を示す。以下の説明において、転送ステータス信号26は、当該データ転送状態がデータ転送中である場合、信号レベルがアクティブであり、当該データ転送状態がデータ転送中でない場合、信号レベルがインアクティブであるものとする。尚、データ転送状態の信号レベルはこれに限定されない。例えば、アクティブレベルは、"High(1)"又は"Low(0)"のいずれかであっても構わない。尚、以下の説明では、アクティブレベルを"1"、インアクティブレベルを"0"として説明する。尚、転送ステータス信号26は、ペリフェラルコントローラ22とUSBホスト300との間のデータ転送の許否を通知するための転送許否信号と呼ぶことができる。
ホストコントローラ21は、USBデバイス201乃至203のいずれかの複数のエンドポイントのそれぞれとデータ転送を実行する複数の転送実行部であるパイプP1、P2、・・・、Pnと、送信部(TRANSMISSION UNIT)23とを備える。尚、パイプP1、P2、・・・、Pnは、図示した数に限定されず、所定の上限値の範囲内である。パイプP1、P2、・・・、Pnは、データ転送の実行に必要な情報である転送情報を保持し、保持された転送情報に基づき、ダウンストリームポート241乃至243のいずれかを介してUSBデバイス201乃至203のいずれかとのデータ転送を実行することができる。ここで、転送情報には、総データ転送サイズ、最大パケットサイズ、転送方向(IN又はOUT)、転送タイプ(Control、Bulk、Interrupt、Isochronous)等を含む。尚、転送情報は、これに限定されない。尚、USBに基づくデータ転送の仕組みは公知のものであるため、ここでは詳細な説明を省略する。
パイプP1は、出力制御レジスタC1及びステータスレジスタS1を備え、パイプP2は、出力制御レジスタC2及びステータスレジスタS2を備える。尚、以降、パイプP3(不図示)、・・・、パイプPnまでの内部構成については、パイプP1及びP2と同等であるため、図示及び説明は、省略する。ステータスレジスタS1又はS2には、それぞれパイプP1又はP2がデータ転送を行っているか否かを示す転送ステータス信号が保持される。例えば、パイプP1が、転送情報に基づき前記複数のエンドポイントのいずれかとのデータ転送を開始した場合に、ステータスレジスタS1には、一例である"1"が格納される。出力制御レジスタC1又はC2は、それぞれパイプP1又はP2の転送ステータス信号を送信部23に出力するかしないかを制御するためのフラグ情報を格納する。例えば、出力制御レジスタC1に格納されたフラグ情報が"1"の場合は、ステータスレジスタS1が保持している値をそのまま送信部23へ出力する。また、出力制御レジスタC1に格納されたフラグ情報が"0"の場合は、ステータスレジスタS1の値に係わらず常にインアクティブレベルの一例である"0"を出力する。尚、出力制御レジスタC1又はC2に格納されるフラグ情報は、外部から任意のタイミングで変更可能である。
そして、パイプP1は、出力制御レジスタC1及びステータスレジスタS1に格納された値の論理積を取り、送信部23へ出力する。同様に、パイプP2は、出力制御レジスタC2及びステータスレジスタS2に格納された値の論理積を取り、送信部23へ出力する。
送信部23は、パイプP1、P2、・・・、Pnから出力された転送ステータス信号を1本にまとめて、アクティブレベル又はインアクティブレベルの転送ステータス信号26としてペリフェラルコントローラ22へ出力する。送信部23は、パイプP1、P2、・・・、Pnから出力された転送ステータス信号の論理和を取り、論理和の結果が"1"である場合に、転送ステータス信号26を"1"としてペリフェラルコントローラ22へ出力する。また、送信部23は、パイプP1、P2、・・・、Pnから出力された転送ステータス信号の論理和を取り、論理和の結果が"0"である場合に、転送ステータス信号26を"0"としてペリフェラルコントローラ22へ出力する。
また、ホストコントローラ21は、パイプP1、P2、・・・、PnのいずれかにおいてUSBデバイス201乃至203のいずれかとの間でデータ転送が開始されたときから、USBデバイス201乃至203のいずれかとの間でデータ転送中である全てのパイプP1、P2、・・・、Pnにおいて当該データ転送が終了するまで、転送ステータス信号26をアクティブにしてペリフェラルコントローラ22に対して送信する。これにより、ペリフェラルコントローラ22に対して、ホストコントローラ21のデータ転送状態を効率的に伝えることができる。
尚、送信部23は、必ずしもパイプP1、P2、・・・、Pnから出力される転送ステータス信号を1本にまとめて、転送ステータス信号26としてペリフェラルコントローラ22へ出力する必要はない。例えば、送信部23は、パイプP1、P2、・・・、Pnから出力される転送ステータス信号を都度、ペリフェラルコントローラ22へ出力し、ペリフェラルコントローラ22は、転送ステータス信号のいずれかを受け付けた場合に、ホストコントローラ21がUSBデバイス200とデータ転送中であると認識してもよい。
また、上述した出力制御レジスタC1及びC2は、USBデバイス201乃至203のいずれかとの間でデータ転送中であることをペリフェラルコントローラ22へ通知するか否かを決定する通知決定部により実現しても構わない。その場合、ホストコントローラ21は、USBデバイス201乃至203のいずれかとの間でデータ転送中であるパイプP1、P2、・・・、Pnのいずれかの内、通知決定部によりペリフェラルコントローラ22へ通知すると決定されたパイプが存在する場合に、転送ステータス信号26をアクティブにしてペリフェラルコントローラ22に対して送信する。これにより、複数のパイプをパイプの重要度や負荷状況に応じて部分的な制御を行うことができる。例えば、特定のパイプにおけるデータ転送について、ホスト機能とペリフェラル機能とが同時に動作することを許容できる場合に、不必要にペリフェラルコントローラ22のデータ転送を遅らせることがなくなり、データ転送を効率的に行うことができる。
さらに、ホストコントローラ21は、転送ステータス信号26をアクティブにしたペリフェラルコントローラ22に対する送信が所定時間以上継続した場合に、転送ステータス信号26をインアクティブにしてペリフェラルコントローラ22に対して送信するようにしてもよい。または、送信部23において、転送ステータス信号26の出力を制御しても構わない。
これにより、所定時間連続してホストコントローラ21のデータ転送を優先することにより、ペリフェラルコントローラ22の処理への影響、つまり、データ転送遅延が大きすぎる場合に、ホスト機能とペリフェラル機能とが同時に動作することを許容することができる。また、ペリフェラルコントローラ22の処理抑止を緩和し、転送効率を上げることができる場合がある。そのため、不必要にペリフェラルコントローラ22のデータ転送を遅らせることがなくなり、データ転送を効率的に行うことができる。
アップストリームポート25は、ペリフェラル機能専用ポートである。アップストリームポート25に、USBホスト300がUSBケーブルを介して接続されることにより、ペリフェラルコントローラ22は、USBホスト300とペリフェラルコントローラ22とのデータ転送を行う。
ペリフェラルコントローラ22は、USBホスト300とのデータ転送を行う。言い換えると、ペリフェラルコントローラ22は、USBホスト300との間のデータ転送を処理する第2の通信部である。また、ペリフェラルコントローラ22は、バスインタフェース27を介してCPU10と接続されている。
ペリフェラルコントローラ22は、ホストコントローラ21から当該ホストコントローラ21がUSBデバイス201乃至203のいずれかとの間でデータ転送中であることが通知されている場合に、USBホスト300からのデータ転送開始要求に対して、USBホスト300へデータ転送が行えないことを示す転送不可応答を送信する。これにより、ホスト機能とペリフェラル機能とが同時に動作する時に、ペリフェラルコントローラ22側の処理を抑え、ホストコントローラ21側の高い転送パフォーマンスを維持できる。
ペリフェラルコントローラ22は、複数のエンドポイントE1、E2、・・・、Emを備える。尚、エンドポイントE1、E2、・・・、Emは、図示した数に限定されず、所定の上限値の範囲内である。エンドポイントE1、E2、・・・、Emのいずれかは、アップストリームポート25を介してUSBホスト300とのデータ転送を実行することができる。また、本発明の実施の形態1におけるデータ転送は、USB規格に基づく転送であり、ペリフェラルコントローラ22は、バルク転送又はインタラプト転送において、USBホスト300からIN、OUT又はPINGトークンを受信した場合に、NAK(Negative AcKnowledgement)応答を返信する。尚、NAK応答は、上記転送不可応答の一例である。
また、ペリフェラルコントローラ22は、USBホスト300とのデータ転送中に、例えば、USBトランザクション中に、USBデバイス201乃至203のいずれかとホストコントローラ21との間のデータ転送が開始された場合、現在のデータ転送が完了した以後のUSBホスト300からのデータ転送開始要求に対して、転送不可応答を送信する。これにより、必要最小限のデータ転送を維持しつつ、不必要にデータ転送を中断することを防ぎ、データ転送処理の効率を上げることができる。
また、ペリフェラルコントローラ22は、ホストコントローラ21からの転送ステータス信号26に応じて、USBホスト300からのデータ転送開始要求に対して転送不可応答を送信するデータ転送不可モードになると言える。
さらに、ペリフェラルコントローラ22は、ホストコントローラ21からの転送ステータス信号26がアクティブであった場合に、前記データ転送不可モードとなる。また、ペリフェラルコントローラ22は、ホストコントローラ21からの転送ステータス信号26がインアクティブであった場合に、前記データ転送不可モード以外のモードとなる。
また、上述したように本発明の実施の形態1にかかるデータ転送制御装置100では、転送ステータス信号26により、ペリフェラル機能とCPUとのアクセス処理を抑えることができ、CPUの全体的な負荷を抑えることができる。
図2は、本発明の実施の形態1にかかるホストコントローラ21の処理の流れを示すフローチャートである。尚、この例においては、出力制御レジスタC1及びC2には、予め"1"が格納済みとする。
まず、ホストコントローラ21は、データ転送中か否かを判定する(S11)。例えば、送信部23は、パイプP1、P2、・・・、Pnから出力された転送ステータス信号の論理和を取り、論理和の結果が"1"であるか否かを判定する。
ステップS11において、論理和の結果が"1"となった場合、送信部23は、アクティブレベルの転送ステータス信号をペリフェラルコントローラ22へ出力する(S12)。例えば、ホストコントローラ21とUSBデバイス201とのデータ転送を開始した場合、ステータスレジスタS1に"1"が格納されており、出力制御レジスタC1には予め"1"が格納されているため、パイプP1は、送信部23へ"1"を出力する。この場合、パイプP2、・・・、Pnからの出力結果に係わらず、論理和の結果は"1"となる。このとき、送信部23は、転送ステータス信号を"1"としてペリフェラルコントローラ22へ出力する。
また、ステップS11において、論理和の結果が"0"となった場合、送信部23は、インアクティブレベルの転送ステータス信号をペリフェラルコントローラ22へ出力する(S13)。例えば、ホストコントローラ21とUSBデバイス201乃至203の全てとのデータ転送が行われていない場合、パイプP2、・・・、Pnから送信部23への出力結果は、いずれも"0"となり、論理和の結果が"0"となる。このとき、送信部23は、転送ステータス信号を"0"としてペリフェラルコントローラ22へ出力する。
図3は、本発明の実施の形態1にかかるペリフェラルコントローラ22の処理の流れを示すフローチャートである。まず、ペリフェラルコントローラ22は、USBホスト300からデータ転送の開始要求を受信する(S21)。例えば、ペリフェラルコントローラ22のエンドポイントE1は、USBホスト300からのコントロール転送、バルク転送、インタラプト転送又はアイソクロナス転送における開始要求であるトークンを受信する。
次に、ペリフェラルコントローラ22は、受信した開始要求が所定の転送タイプであるか否かを判定する(S22)。ここでは、ペリフェラルコントローラ22は、転送タイプがバルク転送又はインタラプト転送のいずれかであるかを判定する。転送タイプがバルク転送又はインタラプト転送のいずれかでない場合、すなわち、転送タイプがコントロール転送又はアイソクロナス転送である場合、ペリフェラルコントローラ22は、転送ステータス信号26の信号レベルにかかわらず、USBホスト300に対して、USB規格に則った応答を行う(S25)。例えば、ペリフェラルコントローラ22は、内部バッファの状態やソフトウェアの制御内容に応じて応答する。
ステップS22において、転送タイプがバルク転送又はインタラプト転送のいずれかであると判定した場合、ペリフェラルコントローラ22は、当該開始要求が所定のトークンであるか否かを判定する(S23)。ここでは、ペリフェラルコントローラ22は、開始要求がIN、OUT又はPINGトークンのいずれかであるかを判定する。開始要求がIN、OUT又はPINGトークン以外であると判定した場合、ステップS25へ進む。
ステップS23において、開始要求がIN、OUT又はPINGトークンのいずれかであると判定した場合、ペリフェラルコントローラ22は、転送ステータス信号26がアクティブであるか否かを判定する(S24)。ここでは、ペリフェラルコントローラ22は、ホストコントローラ21から受け付けた転送ステータス信号26が"1"であるか否かを判定する。転送ステータス信号26がアクティブでないと判定した場合、ステップS25へ進む。
ステップS24において、転送ステータス信号26がアクティブであると判定した場合、ペリフェラルコントローラ22は、USBホスト300へNAK応答する(S26)。これにより、USBホスト300とペリフェラルコントローラ22との間のデータ転送は、一時保留される。
図4は、本発明の実施の形態1にかかる転送ステータス信号とペリフェラルコントローラの応答の例を説明する図である。
図4では、まず、時刻T41からT42の間において、転送ステータス信号26がアクティブとなる。すなわち、時刻T41において、ホストコントローラ21は、ペリフェラルコントローラ22へアクティブレベルの転送ステータス信号26を出力する。また、時刻T41以前及び時刻T42以降において、ホストコントローラ21は、ペリフェラルコントローラ22へインアクティブレベルの転送ステータス信号26を出力する。
そして、時刻T41からT42の間において、USBホスト300は、ペリフェラルコントローラ22へPINGトークン41を送信する。このとき、ペリフェラルコントローラ22は、転送ステータス信号26がアクティブであるため、USBホスト300へNAK応答42を送信する。同様に、USBホスト300からのPINGトークン43に対して、ペリフェラルコントローラ22は、NAK応答44を送信する。
一方、時刻T42以降に、USBホスト300がペリフェラルコントローラ22に対してPINGトークン45を送信した場合、ペリフェラルコントローラ22は、転送ステータス信号26がインアクティブであるため、ACK応答46を送信する。これにより、ペリフェラルコントローラ22とUSBホスト300との間のUSBトランザクションが開始される。以後、USBホスト300は、ペリフェラルコントローラ22へOUTトークン47及びDATA48を送信する。そして、ペリフェラルコントローラ22は、USBホスト300へACK応答49を送信する。
尚、上述した例では、説明の都合上、ペリフェラルコントローラ22は、PINGトークン45及びDATA48に対して、ACK応答46及びACK応答49を送信することとしたが、これに限定されない。つまり、ペリフェラルコントローラ22は、少なくとも時刻T42以降、転送の準備ができているものとする。
図5は、本発明の実施の形態1にかかる転送ステータス信号とペリフェラルコントローラの応答の例を説明する図である。
図5では、時刻0から時刻T51の間において、転送ステータス信号26がアクティブでなく、時刻T51以降、転送ステータス信号26がアクティブとなる。
まず、時刻0から時刻T51の間において、USBホスト300がペリフェラルコントローラ22に対してPINGトークン51を送信した場合、ペリフェラルコントローラ22は、転送ステータス信号26がアクティブでないため、ACK応答52を送信する。続いて、USBホスト300は、ペリフェラルコントローラ22へOUTトークン53を送信する。このようにして、時刻T51以前にUSBトランザクションが開始される。次に、時刻T51以後に、USBホスト300がペリフェラルコントローラ22に対してDATA54を送信した場合、ペリフェラルコントローラ22は、転送ステータス信号26がアクティブであるが、USBトランザクションが実施中であるため、ACK応答55を送信する。
そして、時刻T52において、ペリフェラルコントローラ22とUSBホスト300との間のUSBトランザクションが終了する。ここで、時刻T52以後に、USBホスト300がペリフェラルコントローラ22に対してPINGトークン56を送信した場合、ペリフェラルコントローラ22は、転送ステータス信号26がアクティブであるため、NAK応答57を送信する。同様に、USBホスト300がペリフェラルコントローラ22に対してPINGトークン58を送信した場合、ペリフェラルコントローラ22は、NAK応答59を送信する。
尚、上述した例では、説明の都合上、ペリフェラルコントローラ22は、PINGトークン51及びDATA54に対して、ACK応答52及びACK応答55を送信することとしたが、これに限定されない。つまり、ペリフェラルコントローラ22は、少なくとも時刻T52以前、正常に転送が行える状況であるものとする。
図6は、本発明の実施の形態1にかかるホストコントローラと転送ステータス信号の出力の関係の例を示す図である。まず、図6では、時刻0において、パイプP1の出力制御レジスタC1及びパイプP2の出力制御レジスタC2には、"1"が格納済みである。そして、時刻T61において、パイプP1がUSBデバイス201乃至203のいずれかとの間のデータ転送を開始することにより、ステータスレジスタS1に"1"が格納される。これに伴い、時刻T61において、ホストコントローラ21は、ペリフェラルコントローラ22へ転送ステータス信号26を"1"として出力する。
次に、時刻T62において、パイプP2がUSBデバイス201乃至203のいずれかとの間のデータ転送を開始することにより、ステータスレジスタS2に"1"が格納される。これに伴い、時刻T62において、ホストコントローラ21は、ペリフェラルコントローラ22へ転送ステータス信号26を"1"として出力する。
次に、時刻T63において、パイプP1がデータ転送を終了することにより、ステータスレジスタS1に"0"が格納される。しかし、時刻T63において、出力制御レジスタC2及びステータスレジスタS2に格納された値が共に"1"であるため、ホストコントローラ21は、ペリフェラルコントローラ22へ転送ステータス信号26である"1"の出力を維持する。
そして、時刻T64において、パイプP2がデータ転送を終了することにより、ステータスレジスタS2に"0"が格納される。これに伴い、時刻T64において、ホストコントローラ21は、ペリフェラルコントローラ22へ転送ステータス信号26を"0"として出力する。
図7は、本発明の実施の形態1にかかるホストコントローラと転送ステータス信号の出力の関係の他の例を示す図である。まず、図7では、時刻0において、パイプP1の出力制御レジスタC1には、"0"が格納済みであり、パイプP2の出力制御レジスタC2には、"1"が格納済みである。そして、時刻T71において、パイプP1がUSBデバイス201乃至203のいずれかとの間のデータ転送を開始することにより、ステータスレジスタS1に"1"が格納される。しかし、時刻T71において、出力制御レジスタC1に格納されたが"0"であるため、パイプP1から転送ステータス信号が"0"として出力され、ホストコントローラ21は、ペリフェラルコントローラ22へ転送ステータス信号26を"0"として出力する。
次に、時刻T72において、パイプP2がUSBデバイス201乃至203のいずれかとの間のデータ転送を開始することにより、ステータスレジスタS2に"1"が格納される。これに伴い、時刻T72において、ホストコントローラ21は、ペリフェラルコントローラ22へ転送ステータス信号26を"1"として出力する。
続いて、時刻T73において、パイプP1がデータ転送を終了することにより、ステータスレジスタS1に"0"が格納される。しかし、時刻T73において、出力制御レジスタC1に格納されたが"0"であるが、出力制御レジスタC2及びステータスレジスタS2に格納された値が共に"1"であるため、ホストコントローラ21は、ペリフェラルコントローラ22へ転送ステータス信号26である"1"の出力を維持する。
そして、時刻T74において、パイプP2がデータ転送を終了することにより、ステータスレジスタS2に"0"が格納される。これに伴い、時刻T74において、ホストコントローラ21は、ペリフェラルコントローラ22へ転送ステータス信号26を"0"として出力する。
このように、本発明の実施の形態1により、例えば、上述したデュアルロールデバイスがホスト機能によりデバイス装置とデータ転送を行っている間に、ペリフェラル機能によるホスト装置とのデータ転送を控えることができる。それにより、ホスト機能におけるデータ転送処理により多くのリソースを割り当てることができる。そのため、ホスト機能とペリフェラル機能が同時に動作する時にホスト機能の転送パフォーマンスを高く保つデータ転送制御装置及びデータ転送制御方法を提供することができる。
<発明の実施の形態2>
上述した発明の実施の形態1では、ホスト機能の転送パフォーマンスの向上を目的としていたが、本発明の実施の形態2では、ペリフェラル機能の転送パフォーマンスがホスト機能よりも重視される場合を対象とする。図8は、本発明の実施の形態2にかかるデータ転送制御装置100aを含む全体構成を示すブロック図である。図8では、図1と同等の機能を有する構成については、同一の符号を付し、以下では、詳細な説明を省略する。また、以下では、本発明の実施の形態1との違いを中心に説明する。
データ転送制御装置100aは、データ転送制御装置100との違いとして、USBデュアルロールデバイス20の代わりに、USB規格に準拠したデュアルロールデバイスであるUSBデュアルロールデバイス20aを備える装置である。USBデュアルロールデバイス20aは、USBデュアルロールデバイス20とは異なり、ホスト機能に比べてペリフェラル機能におけるデータ転送処理を優先させるデバイスである。USBデュアルロールデバイス20aは、USBデュアルロールデバイス20との違いとして、ホストコントローラ21及びペリフェラルコントローラ22の代わりに、ホストコントローラ21a及びペリフェラルコントローラ22aを備える。
ペリフェラルコントローラ22aは、USBホスト300との間のデータ転送処理中に、当該データ転送処理中であることをホストコントローラ21aへ通知する。図8では、ペリフェラルコントローラ22aは、ペリフェラルコントローラ22aとUSBホスト300との間のデータ転送状態を示す転送ステータス信号26aをホストコントローラ21aへ出力する場合を示す。尚、転送ステータス信号26aは、上述した転送ステータス信号26と同等の信号であっても構わない。尚、転送ステータス信号26aは、ホストコントローラ21aとUSBデバイス201乃至203のいずれかとの間のデータ転送の保留の要求を通知する転送保留要求信号と呼ぶことができる。
ペリフェラルコントローラ22aは、USBホスト300の複数のパイプのそれぞれとデータ転送を実行する複数のエンドポイントE1a、E2a、・・・、Emaと、送信部23aとを備える。尚、エンドポイントE1a、E2a、・・・、Emaは、図示した数に限定されず、所定の上限値の範囲内である。エンドポイントE1a、E2a、・・・、Emaのいずれかは、アップストリームポート25を介してUSBホスト300とのデータ転送を実行することができる。
エンドポイントE1aは、出力制御レジスタC1a及びステータスレジスタS1aを備え、エンドポイントE2aは、出力制御レジスタC2a及びステータスレジスタS2aを備える。尚、以降、エンドポイントE3a(不図示)、・・・、エンドポイントEmaまでの内部構成については、エンドポイントE1a及びE2aと同等であるため、図示及び説明は、省略する。ステータスレジスタS1a又はS2aには、それぞれエンドポイントE1a又はE2aがデータ転送を行っているか否かを示す転送ステータス信号が保持される。例えば、エンドポイントE1aが、USBホスト300からのデータ転送要求に応じて前記複数のパイプのいずれかとのデータ転送を開始した場合に、ステータスレジスタS1aには、一例である"1"が格納される。出力制御レジスタC1a又はC2aは、それぞれエンドポイントE1a又はE2aの転送ステータス信号を送信部23aに出力するかしないかを制御するためのフラグ情報を格納する。例えば、出力制御レジスタC1aに格納されたフラグ情報が"1"の場合は、ステータスレジスタS1aが保持している値をそのまま送信部23aへ出力する。また、出力制御レジスタC1aに格納されたフラグ情報が"0"の場合は、ステータスレジスタS1aの値に係わらず常にインアクティブレベルの一例である"0"を出力する。尚、出力制御レジスタC1a又はC2aに格納されるフラグ情報は、外部から任意のタイミングで変更可能である。
そして、エンドポイントE1aは、出力制御レジスタC1a及びステータスレジスタS1aに格納された値の論理積を取り、送信部23aへ出力する。同様に、エンドポイントE2aは、出力制御レジスタC2a及びステータスレジスタS2aに格納された値の論理積を取り、送信部23aへ出力する。
送信部23aは、エンドポイントE1a、E2a、・・・、Emaから出力された転送ステータス信号を1本にまとめて、アクティブレベル又はインアクティブレベルの転送ステータス信号26aとしてホストコントローラ21aへ出力する。送信部23aは、エンドポイントE1a、E2a、・・・、Emaから出力された転送ステータス信号の論理和を取り、論理和の結果が"1"である場合に、転送ステータス信号26aを"1"としてホストコントローラ21aへ出力する。また、送信部23aは、エンドポイントE1a、E2a、・・・、Emaから出力された転送ステータス信号の論理和を取り、論理和の結果が"0"である場合に、転送ステータス信号26aを"0"としてホストコントローラ21aへ出力する。
尚、ステータスレジスタS1a又はS2aに格納されたフラグは、ペリフェラルコントローラ22aがUSBホスト300にハンドシェイクパケットを送信するまで保持される。同様に、送信部23aは、ペリフェラルコントローラ22aがUSBホスト300にハンドシェイクパケットを送信するまで転送ステータス信号26aの出力を保持する。
また、ペリフェラルコントローラ22aは、エンドポイントE1a、E2a、・・・、EmaのいずれかにおいてUSBホスト300との間でデータ転送が開始されたときから、USBホスト300との間でデータ転送中である全てのエンドポイントE1a、E2a、・・・、Emaにおいて当該データ転送が終了するまで、転送ステータス信号26aをアクティブにしてホストコントローラ21aに対して送信する。これにより、ホストコントローラ21aに対して、ペリフェラルコントローラ22aのデータ転送状態を効率的に伝えることができる。
尚、送信部23aは、必ずしもエンドポイントE1a、E2a、・・・、Emaから出力される転送ステータス信号を1本にまとめて、転送ステータス信号26aとしてホストコントローラ21aへ出力する必要はない。例えば、送信部23aは、エンドポイントE1a、E2a、・・・、Emaから出力される転送ステータス信号を都度、ホストコントローラ21aへ出力し、ホストコントローラ21aは、転送ステータス信号のいずれかを受け付けた場合に、ペリフェラルコントローラ22aがUSBホスト300とデータ転送中であると認識してもよい。
また、上述した出力制御レジスタC1a及びC2aは、USBホスト300との間でデータ転送中であることをホストコントローラ21aへ通知するか否かを決定する通知決定部により実現しても構わない。その場合、ペリフェラルコントローラ22aは、USBホスト300との間でデータ転送中であるエンドポイントE1a、E2a、・・・、Emaのいずれかの内、通知決定部によりホストコントローラ21aへ通知すると決定されたエンドポイントが存在する場合に、転送ステータス信号26aをアクティブにしてホストコントローラ21aに対して送信する。これにより、複数のエンドポイントをエンドポイントの重要度や負荷状況に応じて部分的な制御を行うことができる。例えば、特定のエンドポイントにおけるデータ転送について、ホスト機能とペリフェラル機能とが同時に動作することを許容できる場合に、不必要にホストコントローラ21aのデータ転送を遅らせることがなくなり、データ転送を効率的に行うことができる。
さらに、ペリフェラルコントローラ22aは、転送ステータス信号26aをアクティブにしたホストコントローラ21aに対する送信が所定時間以上継続した場合に、転送ステータス信号26aをインアクティブにしてホストコントローラ21aに対して送信するようにしてもよい。または、送信部23aにおいて、転送ステータス信号26aの出力を制御しても構わない。
これにより、所定時間連続してペリフェラルコントローラ22aのデータ転送を優先することにより、ホストコントローラ21aの処理への影響、つまり、データ転送遅延が大きすぎる場合に、ホスト機能とペリフェラル機能とが同時に動作することを許容することができる。また、ホストコントローラ21aの処理抑止を緩和し、転送効率を上げることができる場合がある。そのため、不必要にペホストコントローラ21aのデータ転送を遅らせることがなくなり、データ転送を効率的に行うことができる。
ホストコントローラ21aは、ペリフェラルコントローラ22aがUSBホスト300との間でデータ転送中であることがペリフェラルコントローラ22aから通知されている場合に、USBデバイス201乃至203に対するデータ転送開始要求の送信を保留する。そして、ホストコントローラ21aは、ペリフェラルコントローラ22aがUSBホスト300との間のデータ転送が完了した後に、USBデバイス201乃至203のいずれかに対して当該保留したデータ転送開始要求を送信する。これにより、ホスト機能とペリフェラル機能とが同時に動作する時に、ホストコントローラ21a側の処理を抑え、ペリフェラルコントローラ22a側の高い転送パフォーマンスを維持できる。尚、ホストコントローラ21aは、ホストコントローラ21とは異なり、転送ステータス信号26をペリフェラルコントローラ22aへ出力しないものとする。
ホストコントローラ21aは、複数のパイプP1a、P2a、・・・、Pnaを備える。尚、パイプP1a、P2a、・・・、Pnaは、図示した数に限定されず、所定の上限値の範囲内である。パイプP1a、P2a、・・・、Pnaは、データ転送の実行に必要な情報である転送情報を保持し、保持された転送情報に基づき、ダウンストリームポート241乃至243のいずれかを介してUSBデバイス201乃至203のいずれかとのデータ転送を実行することができる。また、本発明の実施の形態2におけるデータ転送は、USB規格に基づく転送であり、ホストコントローラ21aは、バルク転送又はコントロール転送において、データ転送開始要求の送信を保留する。インタラプト及びアイソクロナス転送を行うパイプについては、周期性を維持するため、アクティブな転送ステータス信号26aがホストコントローラ21aに入力されても、ホストコントローラ21aは、現在のトランザクションに限らず、それ以降のトランザクションも実行する。
また、ホストコントローラ21aは、USBデバイス201乃至203のいずれかとのデータ転送中に、例えば、USBトランザクション中に、USBホスト300とペリフェラルコントローラ22aとの間のデータ転送が開始された場合、現在のデータ転送が完了した以後のUSBデバイス201乃至203に対するデータ転送開始要求の送信を保留する。これにより、必要最小限のデータ転送を維持しつつ、不必要にデータ転送を中断することを防ぎ、データ転送処理の効率を上げることができる。
また、ホストコントローラ21aは、ペリフェラルコントローラ22aからの転送ステータス信号26aに応じて、USBデバイス201乃至203に対するデータ転送開始要求の送信を保留するデータ転送保留モードになると言える。
さらに、ホストコントローラ21aは、ペリフェラルコントローラ22aからの転送ステータス信号26aがアクティブであった場合に、前記データ転送保留モードとなる。また、ホストコントローラ21aは、ペリフェラルコントローラ22aからの転送ステータス信号26aがインアクティブであった場合に、前記データ転送保留モード以外のモードとなる。
つまり、ホストコントローラ21aは、アクティブな転送ステータス信号26aを認識すると、ホストコントローラ21aがUSBデバイス201乃至203のいずれかと通信中であれば、現在のトランザクションが完了した後に次のトランザクションからUSBデバイス201乃至203のいずれかとの通信を中断する。そして、ホストコントローラ21aは、転送ステータス信号26aがインアクティブとなったことを認識すると、つまり、転送保留モードが解除されると、中断していたデータ転送を開始する。
また、上述したように本発明の実施の形態2にかかるデータ転送制御装置100aでは、転送ステータス信号26aにより、ホスト機能とCPUとのアクセス処理を抑えることができ、CPUの全体的な負荷を抑えることができる。すなわち、本発明の実施の形態2により、ホスト機能とペリフェラル機能が同時に動作するシステムにおいて、ホスト機能よりもペリフェラル機能の転送パフォーマンスが重視される場合、ペリフェラル機能の動作中にホスト機能の動作を停止することにより、ペリフェラル機能の転送パフォーマンスの低下を防ぐことができる。
尚、本発明の実施の形態2にかかるペリフェラルコントローラ22aにおける転送ステータス信号26aを出力するか否かの処理の流れは、図2の説明においてホストコントローラ21をペリフェラルコントローラ22aに置き換えることで同等となるため、図示及び説明を省略する。
図9は、本発明の実施の形態2にかかるホストコントローラ21aの処理の流れを示すフローチャートである。まず、ホストコントローラ21aは、外部からUSBデバイス201乃至USBデバイス203のいずれかとのデータ転送の開始指示を受け付ける(S31)。例えば、ユーザからデータ転送制御装置100aに対する操作により、ホストコントローラ21aは、データ転送の開始指示を受け付ける。
次に、ホストコントローラ21aは、受け付けた開始指示が所定の転送タイプであるか否かを判定する(S32)。ここでは、ホストコントローラ21aは、転送タイプがバルク転送又はコントロール転送のいずれかであるかを判定する。転送タイプがバルク転送又はコントロール転送のいずれかでない場合、すなわち、転送タイプがインタラプト転送又はアイソクロナス転送である場合、ホストコントローラ21aは、転送ステータス信号26aの信号レベルにかかわらず、USBデバイス201乃至203のいずれかに対して、USB規格に則り、データ転送開始要求を送信する(S35)。例えば、ホストコントローラ21aは、内部バッファの状態やソフトウェアの制御内容に応じて、通常の動作を行う。
ステップS32において、転送タイプがバルク転送又はコントロール転送のいずれかであると判定した場合、ホストコントローラ21aは、転送ステータス信号26aがアクティブであるか否かを判定する(S33)。ここでは、ホストコントローラ21aは、ペリフェラルコントローラ22aから受け付けた転送ステータス信号26aが"1"であるか否かを判定する。
ステップS33において、転送ステータス信号26aがアクティブであると判定した場合、ホストコントローラ21aは、USBデバイス201乃至203に対するデータ転送開始要求を保留する(S34)。これにより、USBデバイス201乃至203とホストコントローラ21aとの間のデータ転送は、一時保留される。
ステップS33において、転送ステータス信号26aがアクティブでないと判定した場合、ステップS35へ進む。このとき、ステップS34において保留したデータ転送開始要求が存在する場合、ホストコントローラ21aは、当該保留したデータ転送開始要求をUSBデバイス201乃至203のいずれかに対して送信する。これにより、データ転送を開始することができる。
このように、本発明の実施の形態2により、例えば、上述したデュアルロールデバイスがペリフェラル機能によりホスト装置とデータ転送を行っている間に、ホスト機能によるデバイス装置とのデータ転送を控えることができる。それにより、ペリフェラル機能におけるデータ転送処理により多くのリソースを割り当てることができる。そのため、ホスト機能とペリフェラル機能が同時に動作する時にペリフェラル機能の転送パフォーマンスを高く保つデータ転送制御装置及びデータ転送制御方法を提供することができる。
<発明の実施の形態3>
本発明の実施の形態3では、ホスト機能又はペリフェラル機能のいずれの転送パフォーマンスを向上させるかを制御可能としたデータ転送制御装置100bについて説明する。図10は、本発明の実施の形態3にかかるデータ転送制御装置100bを含む全体構成を示すブロック図である。尚、データ転送制御装置100bは、上述したデータ転送制御装置100又は100aに改良を加えたものであってもよい。図10では、図1又は図8と同等の機能を有する構成については、同一の符号を付し、以下では、詳細な説明を省略する。また、以下では、本発明の実施の形態1及び2との違いを中心に説明する。
データ転送制御装置100bは、CPU10と、USB規格に準拠したデュアルロールデバイスであるUSBデュアルロールデバイス20bとを備える装置である。データ転送制御装置100bは、外部からのホスト機能又はペリフェラル機能のいずれかにおけるデータ転送処理を優先させることが指定された優先機能指定情報(PRIORITY FLAG)281を受け付け、優先機能指定情報281に基づきUSBデバイス201乃至203及びUSBホスト300との間でデータ転送処理を行う。
USBデュアルロールデバイス20bは、ホストコントローラ21bとペリフェラルコントローラ22bと、ダウンストリームポート241乃至243と、アップストリームポート25と、バスインタフェース27とレジスタ28とを備える。
レジスタ28は、上述した優先機能指定情報281を格納したレジスタである。例えば、データ転送制御装置100bは、外部から優先機能指定情報281を受け付けて、レジスタ28に格納するようにしてもよい。ここで、優先機能指定情報281は、データ転送処理を優先すべき機能を制御するための情報である。または、優先機能指定情報281は、データ転送を優先すべき通信部としてホストコントローラ21b又はペリフェラルコントローラ22bのいずれかが指定された通信部指定情報と呼ぶこともできる。また、以下に優先機能指定情報281の例を示す。例えば、優先機能指定情報281は、2ビットで表現されるデータとする。このとき、上位ビットが"1"である場合、ホストコントローラ21bからペリフェラルコントローラ22bへの転送ステータス信号26の送信を許可し、上位ビットが"0"である場合、当該転送ステータス信号26の送信を不許可とすることを示すものとする。また、下位ビットが"1"である場合、ペリフェラルコントローラ22bからホストコントローラ21bへの転送ステータス信号26aの送信を許可し、下位ビットが"0"である場合、当該転送ステータス信号26aの送信を不許可とすることを示すものとする。但し、上位及び下位ビットが共に"1"とは指定できないものとする。すなわち、この例では、優先機能指定情報281が"10"である場合、データ転送を優先すべき通信部としてホストコントローラ21bが指定されていることを示す。また、優先機能指定情報281が"01"である場合、データ転送を優先すべき通信部としてペリフェラルコントローラ22bが指定されていることを示す。尚、優先機能指定情報281の例は、これに限定されない。
ホストコントローラ21bは、優先機能指定情報281に自己が指定されている場合にのみ、ペリフェラルコントローラ22bに対して転送ステータス信号26を出力する。その他、ホストコントローラ21bの機能は、ホストコントローラ21と同様の機能を有するものとする。
また、ペリフェラルコントローラ22bは、優先機能指定情報281に自己が指定されている場合にのみ、ホストコントローラ21bに対して転送ステータス信号26aを出力する。その他、ペリフェラルコントローラ22bの機能は、ペリフェラルコントローラ22aと同様の機能を有するものとする。
すなわち、ホストコントローラ21bは、ホストコントローラ21bとUSBデバイス201乃至203のいずれかとの間のデータ転送が開始され、かつ、データ転送を優先すべき通信部として当該ホストコントローラ21bが指定されている場合に、ペリフェラルコントローラ22bに対し、ホストコントローラ21bがUSBデバイス201乃至203のいずれかとの間でデータ転送中であることを通知する。そして、ペリフェラルコントローラ22bは、ホストコントローラ21bから当該ホストコントローラ21bがUSBデバイス201乃至203のいずれかとの間でデータ転送中であることが通知されている場合に、USBホスト300からのデータ転送開始要求に対して、USBホスト300へデータ転送が行えないことを示す転送不可応答を送信する。
一方、ペリフェラルコントローラ22bは、当該ペリフェラルコントローラ22bとUSBホスト300との間のデータ転送が開始され、かつ、データ転送を優先すべき通信部として当該ペリフェラルコントローラ22bが指定されている場合に、ホストコントローラ21bに対し、ペリフェラルコントローラ22bがUSBホスト300との間でデータ転送中であることを通知する。そして、ホストコントローラ21bは、ペリフェラルコントローラ22bがUSBホスト300との間でデータ転送中であることが当該ペリフェラルコントローラ22bから通知されている場合に、USBデバイス201乃至203に対するデータ転送開始要求の送信を保留し、ペリフェラルコントローラ22bがUSBホスト300との間のデータ転送が完了した後に、USBデバイス201乃至203のいずれかに対して当該保留したデータ転送開始要求を送信する。
また、ホストコントローラ21bは、パイプP1、P2、・・・、Pnと、論理和回路231と、論理積回路232とを備える。パイプP1、P2、・・・、Pnは、図1と同等の構成及び機能であるため、内部構成の図示及び詳細な説明を省略する。論理和回路231は、パイプP1、P2、・・・、Pnから出力された転送ステータス信号を1本にまとめて、アクティブレベル又はインアクティブレベルの信号として論理積回路232へ出力する。論理積回路232は、論理和回路231から入力された信号と、レジスタ28に格納された優先機能指定情報281の上位ビットとの論理積を取り、論理積の結果が"1"である場合に、転送ステータス信号26を"1"としてペリフェラルコントローラ22bへ出力する。また、ホストコントローラ21bは、当該論理積の結果が"0"である場合に、転送ステータス信号26を"0"としてペリフェラルコントローラ22bへ出力する。尚、論理和回路231及び論理積回路232は、図1の送信部23に対して改良を加えたものを用いても構わない。
つまり、ホストコントローラ21bは、USBデバイス201乃至203のいずれかとの間でデータ転送を開始した場合に、レジスタ28に格納された優先機能指定情報281に応じて、データ転送中であるか否かを通知する。
また、ペリフェラルコントローラ22bは、エンドポイントE1a、E2a、・・・、Emaと、論理和回路233と、論理積回路234とを備える。エンドポイントE1a、E2a、・・・、Emaは、図8と同等の構成及び機能であるため、内部構成の図示及び詳細な説明を省略する。論理和回路233は、エンドポイントE1a、E2a、・・・、Emaから出力された転送ステータス信号を1本にまとめて、アクティブレベル又はインアクティブレベルの信号として論理積回路234へ出力する。論理積回路234は、論理和回路233から入力された信号と、レジスタ28に格納された優先機能指定情報281の下位ビットとの論理積を取り、論理積の結果が"1"である場合に、転送ステータス信号26aを"1"としてホストコントローラ21bへ出力する。また、ペリフェラルコントローラ22bは、当該論理積の結果が"0"である場合に、転送ステータス信号26aを"0"としてホストコントローラ21bへ出力する。尚、論理和回路233及び論理積回路234は、図8の送信部23aに対して改良を加えたものを用いても構わない。
つまり、ペリフェラルコントローラ22bは、USBホスト300との間でデータ転送を開始した場合に、レジスタ28に格納された優先機能指定情報281に応じて、データ転送中であるか否かを通知する。
また、ホストコントローラ21bは、優先機能指定情報281に応じて、ペリフェラルコントローラ22bに対し、当該ペリフェラルコントローラ22bとUSBホスト300との間のデータ転送の許否を通知する転送許否信号として転送ステータス信号26を出力する。そして、ペリフェラルコントローラ22bは、ホストコントローラ21bからの転送ステータス信号26に応じて、USBホスト300からのデータ転送開始要求に対して転送不可応答を送信するデータ転送不可モードになる。
一方、ペリフェラルコントローラ22bは、優先機能指定情報281に応じて、ペリフェラルコントローラ22bとUSBホスト300との間でデータ転送中であることを転送ステータス信号26aによりホストコントローラ21bへ通知する。そして、ホストコントローラ21bは、ペリフェラルコントローラ22bからアクティブな転送ステータス信号26aを受信すると、USBデバイス201乃至203に対するデータ転送開始要求を一時保留する。
図11は、本発明の実施の形態1にかかるホストコントローラ又はペリフェラルコントローラの処理の流れを示すフローチャートである。尚、ここでは、ペリフェラルコントローラ22bについて説明するが、ホストコントローラ21bについても同等の処理が行われる。また、この例においては、出力制御レジスタC1a及びC2aには、予め"1"が格納済みとする。
まず、ペリフェラルコントローラ22bは、データ転送中か否かを判定する(S41)。例えば、論理和回路233は、エンドポイントE1a、E2a、・・・、Emaから出力された転送ステータス信号の論理和を取り、論理和の結果が"1"であるか否かを判定する。
ステップS41において、論理和の結果が"1"となった場合、ペリフェラルコントローラ22bは、データ転送を優先するか否かを判定する(S42)。例えば、論理積回路234は、論理和回路233から入力された信号と、レジスタ28に格納された優先機能指定情報281の下位ビットとの論理積を取り、論理積の結果が"1"であるか否かを判定する。
ステップS42において、論理積の結果が"1"となった場合、論理積回路234は、アクティブレベルの転送ステータス信号26aをホストコントローラ21bへ出力する(S43)。例えば、ペリフェラルコントローラ22bとUSBホスト300とのデータ転送を開始した場合、ステータスレジスタS1aに"1"が格納されており、出力制御レジスタC1aには予め"1"が格納されているため、エンドポイントE1aは、論理和回路233へ"1"を出力する。この場合、エンドポイントE2a、・・・、Emaからの出力結果に係わらず、論理和の結果は"1"となる。そして、優先機能指定情報281が"01"つまり、下位ビットが"1"である場合、論理積回路234における論理積の結果は"1"となる。つまり、データ転送を優先すべき通信部としてペリフェラルコントローラ22bが指定されていると判定される。このとき、論理積回路234は、転送ステータス信号26aを"1"としてホストコントローラ21bへ出力する。
また、ステップS42において、論理積の結果が"0"となった場合、論理積回路234は、インアクティブレベルの転送ステータス信号26aをホストコントローラ21bへ出力する(S44)。例えば、優先機能指定情報281が"10"つまり、下位ビットが"0"である場合、論理積回路234における論理積の結果は、論理和回路233における論理和の結果に関わらず、常に"0"となる。つまり、データ転送を優先すべき通信部としてペリフェラルコントローラ22bが指定されていないと判定される。このとき、論理積回路234は、転送ステータス信号26aを"0"としてホストコントローラ21bへ出力する。
また、ステップS41において、論理和の結果が"0"となった場合、論理積回路234は、インアクティブレベルの転送ステータス信号26aをホストコントローラ21bへ出力する(S44)。例えば、ペリフェラルコントローラ22bとUSBホスト300とのデータ転送が行われていない場合、エンドポイントE1a、・・・、Emaから論理和回路233への出力結果は、いずれも"0"となり、論理和の結果が"0"となる。そのため、優先機能指定情報281の下位ビットが"1"であっても、論理積回路234における論理積の結果は"0"となる。このとき、論理積回路234は、転送ステータス信号26aを"0"としてホストコントローラ21bへ出力する。
このように、本発明の実施の形態3では、実施の形態1にかかるホストコントローラ21aと実施の形態2にかかるペリフェラルコントローラ22aとを改良し、優先機能指定情報281が格納されたレジスタ28を加えたものといえる。そのため、優先機能指定情報281に応じて、ホスト機能又はペリフェラル機能のいずれかの転送ステータス信号の出力を制御することができる。これにより、例えば、データ転送制御装置100bを使用するユーザがホスト機能又はペリフェラル機能のいずれの転送パフォーマンスを優先させるかを選択することができる。特に、データ転送制御装置100bに接続されるUSBデバイス201乃至203及びUSBホスト300の機器の種別や、具体的なデータ転送処理の種別に応じて、レジスタ28に格納された優先機能指定情報281を更新することにより、柔軟に転送パフォーマンスを優先させるべき機能を切り替えることが可能となる。
また、高機能かつ転送パフォーマンスが高いUSBデバイス装置又はUSBホスト装置を開発した場合であっても、データ転送制御装置100bが搭載されたUSBデュアルロールデバイスに接続することで所望の機能を利用することができる。
このように、本発明の実施の形態3により、任意に指定されたホスト機能又はペリフェラル機能のいずれか一方を優先してデータ転送処理を行わせることができる。それにより、例えば、上述したデュアルロールデバイスを使用するユーザにいずれの機能を優先させるかを柔軟に選択させることができる。そして、ホスト機能とペリフェラル機能が同時に動作する時に、指定された機能の転送パフォーマンスを高く保つデータ転送制御装置及びデータ転送制御方法を提供することができる。
<その他の実施の形態>
尚、本発明の実施の形態1にかかるデータ転送制御装置100は、USBデバイス201乃至203のいずれかとホストコントローラ21との間のデータ転送の状態を保持する状態管理レジスタをさらに備え、ペリフェラルコントローラ22は、USBデバイス201乃至203のいずれかとホストコントローラ21との間のデータ転送が開始された場合に、状態管理レジスタにデータ転送中であることを示す情報を格納し、当該データ転送が完了した場合に状態管理レジスタに格納された情報をクリアするようにしてもよい。これにより、データ転送状態及び負荷状態をソフトウェアにより取得することができ、デバッグ又は分析等に用いることができる。
尚、本発明の実施の形態1にかかるペリフェラルコントローラ22は、ホストコントローラ21におけるデータ転送の開始及び終了に伴い、自己におけるデータ転送の待ち状態を内部のフラグ(不図示)を切り替えることにより管理しても構わない。その場合、ペリフェラルコントローラ22は、当該内部のフラグに応じて、USBホスト300からのデータ転送開始要求に対する応答を切り替えるように制御しても構わない。また、本発明の実施の形態3にかかるペリフェラルコントローラ22bも同様である。
また、本発明の実施の形態2にかかるホストコントローラ21aは、ペリフェラルコントローラ22aにおけるデータ転送の開始及び終了に伴い、自己におけるデータ転送の待ち状態を内部のフラグ(不図示)を切り替えることにより管理しても構わない。その場合、ホストコントローラ21aは、当該内部のフラグに応じて、USBデバイス201乃至203に対するデータ転送開始要求の送信を保留するか否か切り替えるように制御しても構わない。また、本発明の実施の形態3にかかるホストコントローラ21bも同様である。
ここで、本発明の実施の形態1乃至3は、次のようにいうことができる。すなわち、本発明の実施の形態1乃至3にかかるデータ転送制御装置は、ホストコントローラ又はペリフェラルコントローラ22の一方がデータ転送を優先すべき優先通信部であり、他方が非優先通信部であり、優先通信部は、当該優先通信部においてデータ転送中である場合に非優先通信部に対してデータ転送中であることを通知し、非優先通信部は、優先通信部からデータ転送中であることが通知されている場合に、当該非優先通信部におけるデータ転送を保留する。
そして、本発明の実施の形態1は、ホストコントローラ21が優先通信部として、ペリフェラルコントローラ22が非優先通信部として固定された場合を示す。そして、ペリフェラルコントローラ22は、転送不可応答を送信することにより、USBホスト300との間のデータ転送を保留することを示す。
また、本発明の実施の形態2は、ペリフェラルコントローラ22aが優先通信部として、ホストコントローラ21aが非優先通信部として固定された場合を示す。そして、ホストコントローラ21aは、USBデバイス201乃至203のいずれかに対するデータ転送開始要求の送信を保留することにより、USBデバイス201乃至203との間のデータ転送を保留することを示す。
さらに、本発明の実施の形態3は、ホストコントローラ21b及びペリフェラルコントローラ22bに対して、外部から優先通信部又は非優先通信部の指定が可能である場合を示す。そして、レジスタ28は、ホストコントローラ21b又はペリフェラルコントローラ22bのいずれかが優先通信部として指定された優先機能指定情報281を格納したものである。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、ホストコントローラ21及びペリフェラルコントローラ22を制御する処理を、CPU10にコンピュータプログラムを実行させることにより実現することも可能である。その場合、当該コンピュータプログラムは、ホストコントローラ21のデータ転送状態を監視し、ホストコントローラ21においてデータ転送中である場合に、ペリフェラルコントローラ22に対して、転送不可応答を送信させる指示を行うようにしても構わない。これにより、ホスト機能とペリフェラル機能が同時に動作する時において、ホスト機能のデータ転送処理のパフォーマンスを高く維持することが可能となる。
尚、上述したコンピュータプログラムの実現には、複雑な処理の実装が必要となり、当該複雑な処理をCPU10が実行する場合、CPU10の処理不可が高まる恐れがある。上述した本発明の実施の形態1では、転送不可信号を出力させる指示を、CPU10を介さずにホストコントローラ21からペリフェラルコントローラ22への転送ステータス信号として実現するものである。これにより、CPU10の処理負荷をさらに軽減させるものである。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)デバイス装置との間のデータ転送を処理する第1の通信部と、
ホスト装置との間のデータ転送を処理する第2の通信部と、を有し、
前記第2の通信部は、前記第1の通信部が前記デバイス装置との間でデータ転送中であることが当該第1の通信部から通知されている場合に、前記ホスト装置からのデータ転送開始要求に対し、当該ホスト装置へデータ転送が行えないことを示す転送不可応答を送信するデータ転送制御装置。
(付記2)前記第1の通信部は、当該第1の通信部と前記デバイス装置との間のデータ転送が開始され、かつ、データ転送を優先すべき通信部として当該第1の通信部が指定されている場合に、前記第2の通信部に対し、前記第1の通信部が前記デバイス装置との間でデータ転送中であることを通知し、
前記第2の通信部は、当該第2の通信部と前記ホスト装置との間のデータ転送が開始され、かつ、データ転送を優先すべき通信部として当該第2の通信部が指定されている場合に、前記第1の通信部に対し、前記第2の通信部が前記ホスト装置との間でデータ転送中であることを通知し、
前記第1の通信部は、前記第2の通信部が前記ホスト装置との間でデータ転送中であることが当該第2の通信部から通知されている場合に、前記デバイス装置に対するデータ転送開始要求の送信を保留し、前記第2の通信部が前記ホスト装置との間のデータ転送が完了した後に、前記デバイス装置に対して当該保留したデータ転送開始要求を送信することを特徴とする付記1に記載のデータ転送制御装置。
(付記3)前記データ転送制御装置は、前記データ転送を優先すべき通信部として前記第1の通信部又は前記第2の通信部のいずれかが指定された通信部指定情報を格納したレジスタをさらに備え、
前記第1の通信部又は前記第2の通信部は、前記データ転送を開始した場合に、前記レジスタに格納された前記通信部指定情報に応じて、前記データ転送中であるか否かを通知することを特徴とする付記2に記載のデータ転送制御装置。
(付記4)前記第1の通信部は、前記通信部指定情報に応じて、前記第2の通信部に対し、当該第2の通信部と前記ホスト装置との間のデータ転送の許否を通知する転送許否信号を出力し、
前記第2の通信部は、前記転送許否信号に応じて、前記ホスト装置からのデータ転送開始要求に対して前記転送不可応答を送信するデータ転送不可モードになり、
前記第2の通信部は、前記通信部指定情報に応じて、前記第1の通信部に対し、当該第1の通信部と前記デバイス装置との間のデータ転送の保留の要求を通知する転送保留要求信号を出力し、
前記第1の通信部は、前記転送保留要求信号に応じて、前記デバイス装置に対するデータ転送開始要求を保留するデータ転送保留モードになることを特徴とする付記3に記載のデータ転送制御装置。
(付記5)デバイス装置との間のデータ転送を処理する第1の通信部と、
ホスト装置との間のデータ転送を処理する第2の通信部と、を有し、
前記第1の通信部は、前記第2の通信部が前記ホスト装置との間でデータ転送中であることが当該第2の通信部から通知されている場合に、前記デバイス装置に対するデータ転送開始要求の送信を保留し、前記第2の通信部が前記ホスト装置との間のデータ転送が完了した後に、前記デバイス装置に対して当該保留したデータ転送開始要求を送信するデータ転送制御装置。
(付記6)前記デバイス装置と前記第1の通信部との間のデータ転送及び前記ホスト装置と前記第2の通信部との間のデータ転送は、USB(Universal Serial Bus)規格に基づく転送であり、
前記第1の通信部は、バルク転送又はコントロール転送において、前記データ転送開始要求の送信を保留することを特徴とする付記5に記載のデータ転送制御装置。
(付記7)デバイス装置との間のデータ転送を処理する第1の通信部と、
ホスト装置との間のデータ転送を処理する第2の通信部とを有するデータ転送制御装置を制御するデータ転送制御方法であって、
前記第1の通信部において、当該第1の通信部と前記デバイス装置との間のデータ転送が開始された場合に、前記第2の通信部に対し、当該第1の通信部が前記デバイス装置との間でデータ転送中であることを通知し、
前記第2の通信部において、前記第1の通信部が前記デバイス装置との間でデータ転送中であることが当該第1の通信部から通知されている場合に、前記ホスト装置からのデータ転送開始要求に対し、当該ホスト装置へデータ転送が行えないことを示す転送不可応答を送信するデータ転送制御方法。
(付記8)デバイス装置との間のデータ転送を処理する第1の通信部と、
ホスト装置との間のデータ転送を処理する第2の通信部とを有するデータ転送制御装置を制御するデータ転送制御方法であって、
前記第2の通信部において、当該第2の通信部と前記ホスト装置との間のデータ転送が開始された場合に、前記第1の通信部に対し、前記第2の通信部が前記ホスト装置との間でデータ転送中であることを通知し、
前記第1の通信部において、前記第2の通信部が前記ホスト装置との間でデータ転送中であることが当該第2の通信部から通知されている場合に、前記デバイス装置に対するデータ転送開始要求の送信を保留し、前記第2の通信部が前記ホスト装置との間のデータ転送が完了した後に、前記デバイス装置に対して当該保留したデータ転送開始要求を送信するデータ転送制御方法。
(付記9)デバイス装置との間のデータ転送を処理する第1の通信部と、
ホスト装置との間のデータ転送を処理する第2の通信部とを有するデータ転送制御装置を制御するデータ転送制御方法であって、
前記第1の通信部において、当該第1の通信部と前記デバイス装置との間のデータ転送が開始され、かつ、データ転送を優先すべき通信部として当該第1の通信部が指定されている場合に、前記第2の通信部に対し、前記第1の通信部が前記デバイス装置との間でデータ転送中であることを通知し、
前記第2の通信部において、前記第1の通信部が前記デバイス装置との間でデータ転送中であることが当該第1の通信部から通知されている場合に、前記ホスト装置からのデータ転送開始要求に対し、当該ホスト装置へデータ転送が行えないことを示す転送不可応答を送信し、
前記第2の通信部において、当該第2の通信部と前記ホスト装置との間のデータ転送が開始され、かつ、データ転送を優先すべき通信部として当該第2の通信部が指定されている場合に、前記第1の通信部に対し、前記第2の通信部が前記ホスト装置との間でデータ転送中であることを通知し、
前記第1の通信部において、前記第2の通信部が前記ホスト装置との間でデータ転送中であることが当該第2の通信部から通知されている場合に、前記デバイス装置に対するデータ転送開始要求の送信を保留し、前記第2の通信部が前記ホスト装置との間のデータ転送が完了した後に、前記デバイス装置に対して当該保留したデータ転送開始要求を送信するデータ転送制御方法。
100 データ転送制御装置
100a データ転送制御装置
100b データ転送制御装置
10 CPU
20 USBデュアルロールデバイス
20a USBデュアルロールデバイス
20b USBデュアルロールデバイス
21 ホストコントローラ
21a ホストコントローラ
21b ホストコントローラ
22 ペリフェラルコントローラ
22a ペリフェラルコントローラ
22b ペリフェラルコントローラ
23 送信部
23a 送信部
231 論理和回路
232 論理積回路
233 論理和回路
234 論理積回路
241 ダウンストリームポート
242 ダウンストリームポート
243 ダウンストリームポート
25 アップストリームポート
26 転送ステータス信号
26a 転送ステータス信号
27 バスインタフェース
28 レジスタ
281 優先機能指定情報
41 PINGトークン
42 NAK応答
43 PINGトークン
44 NAK応答
45 PINGトークン
46 ACK応答
47 OUTトークン
48 DATA
49 ACK応答
51 PINGトークン
52 ACK応答
53 OUTトークン
54 DATA
55 ACK応答
56 PINGトークン
57 NAK応答
58 PINGトークン
59 NAK応答
P1 パイプ
P2 パイプ
Pn パイプ
C1 出力制御レジスタ
C2 出力制御レジスタ
S1 ステータスレジスタ
S2 ステータスレジスタ
E1 エンドポイント
E2 エンドポイント
Em エンドポイント
P1a パイプ
P2a パイプ
Pna パイプ
C1a 出力制御レジスタ
C2a 出力制御レジスタ
S1a ステータスレジスタ
S2a ステータスレジスタ
E1a エンドポイント
E2a エンドポイント
Ema エンドポイント
201 USBデバイス
202 USBデバイス
203 USBデバイス
300 USBホスト
T41 時刻
T42 時刻
T51 時刻
T52 時刻
T61 時刻
T62 時刻
T63 時刻
T64 時刻
T71 時刻
T72 時刻
T73 時刻
T74 時刻

Claims (20)

  1. デバイス装置との間のデータ転送を処理する第1の通信部と、
    ホスト装置との間のデータ転送を処理する第2の通信部と、を有し、
    前記第1の通信部又は前記第2の通信部の一方が前記データ転送を優先すべき優先通信部であり、他方が非優先通信部であり、
    前記優先通信部は、当該優先通信部において前記データ転送中である場合に前記非優先通信部に対してデータ転送中であることを通知し、
    前記非優先通信部は、前記優先通信部から前記データ転送中であることが通知されている場合に、当該非優先通信部における前記データ転送を保留する
    データ転送制御装置。
  2. 前記データ転送制御装置は、前記第1の通信部又は前記第2の通信部のいずれかが前記優先通信部として指定された通信部指定情報を格納したレジスタをさらに備え、
    前記第1の通信部及び前記第2の通信部は、前記データ転送を開始した場合に、前記レジスタに格納された前記通信部指定情報に応じて、前記データ転送中であるか否かを通知することを特徴とする請求項1に記載のデータ転送制御装置。
  3. 前記第1の通信部は、自己が前記優先通信部であり、かつ、自己と前記デバイス装置との間でデータ転送が開始された場合に、前記デバイス装置との間でデータ転送中であることを前記第2の通信部へ通知し、
    前記第2の通信部は、前記第1の通信部が前記デバイス装置との間でデータ転送中であることが当該第1の通信部から通知されている場合に、前記ホスト装置からのデータ転送開始要求に対し、当該ホスト装置へデータ転送が行えないことを示す転送不可応答を送信することを特徴とする請求項1又は2に記載のデータ転送制御装置。
  4. 前記第2の通信部は、前記ホスト装置との間のデータ転送中に、前記デバイス装置と前記第1の通信部との間のデータ転送が開始された場合、現在のデータ転送が完了した以後の当該ホスト装置からの前記データ転送開始要求に対し、前記転送不可応答を送信することを特徴とする請求項3に記載のデータ転送制御装置。
  5. 前記第1の通信部は、前記第2の通信部に対し、当該第2の通信部と前記ホスト装置との間のデータ転送の許否を通知する転送許否信号を出力し、
    前記第2の通信部は、前記転送許否信号に応じて、前記ホスト装置からのデータ転送開始要求に対して前記転送不可応答を送信するデータ転送不可モードになることを特徴とする請求項3又は4に記載のデータ転送制御装置。
  6. 前記第2の通信部は、自己が前記優先通信部であり、かつ、自己と前記ホスト装置との間でデータ転送が開始された場合に、前記ホスト装置との間でデータ転送中であることを前記第1の通信部へ通知し、
    前記第1の通信部は、前記第2の通信部が前記ホスト装置との間でデータ転送中であることが当該第2の通信部から通知されている場合に、前記デバイス装置に対するデータ転送開始要求の送信を保留し、前記第2の通信部が前記ホスト装置との間でデータ転送が完了したことが当該第2の通信部から通知されている場合に、前記デバイス装置に対して当該保留したデータ転送開始要求を送信することを特徴とする請求項1乃至5のいずれか1項に記載のデータ転送制御装置。
  7. 前記第1の通信部は、前記デバイス装置との間のデータ転送中に、前記ホスト装置と前記第2の通信部との間のデータ転送が開始された場合、現在のデータ転送が完了した以後の当該デバイス装置に対する前記データ転送開始要求の送信を保留することを特徴とする請求項6に記載のデータ転送制御装置。
  8. 前記第2の通信部は、前記第1の通信部に対し、当該第1の通信部と前記デバイス装置との間のデータ転送の保留の要求を通知する転送保留要求信号を出力し、
    前記第1の通信部は、前記転送保留要求信号に応じて、前記デバイス装置に対するデータ転送開始要求を保留するデータ転送保留モードになることを特徴とする請求項6又は7に記載のデータ転送制御装置。
  9. 前記第1の通信部は、
    前記デバイス装置の複数のエンドポイントのそれぞれとデータ転送を実行する複数の転送実行部を備え、
    前記複数の転送実行部のいずれかにおいて前記デバイス装置との間でデータ転送が開始されたときから、前記デバイス装置との間でデータ転送中である全ての転送実行部において当該データ転送が終了するまで、前記転送許否信号をアクティブにして前記第2の通信部に対して送信し、
    前記第2の通信部は、
    前記転送許否信号がアクティブであった場合に、前記データ転送不可モードとなることを特徴とする請求項5に記載のデータ転送制御装置。
  10. 前記複数の転送実行部のそれぞれは、前記デバイス装置との間でデータ転送中であることを前記第2の通信部へ通知するか否かを決定する通知決定部を有し、
    前記第1の通信部は、
    前記デバイス装置との間でデータ転送中である転送実行部の内、前記通知決定部により前記第2の通信部へ通知すると決定された転送実行部が存在する場合に、前記転送許否信号をアクティブにして前記第2の通信部に対して送信し、
    前記第2の通信部は、
    前記転送許否信号がアクティブであった場合に、前記データ転送不可モードとなることを特徴とする請求項9に記載のデータ転送制御装置。
  11. 前記第1の通信部は、前記転送許否信号をアクティブにした前記第2の通信部に対する送信が所定時間以上継続した場合に、当該転送許否信号をインアクティブにして前記第2の通信部に対して送信し、
    前記第2の通信部は、
    前記転送許否信号がインアクティブであった場合に、前記データ転送不可モード以外のモードとなることを特徴とする請求項9又は10のいずれか1項に記載のデータ転送制御装置。
  12. 前記デバイス装置と前記第1の通信部との間のデータ転送及び前記ホスト装置と前記第2の通信部との間のデータ転送は、USB(Universal Serial Bus)規格に基づく転送であり、
    前記第2の通信部は、バルク転送又はインタラプト転送において、前記ホスト装置からIN、OUT又はPINGトークンを受信した場合に、NAK(Negative AcKnowledgement)応答を返信することを特徴とする請求項3乃至5又は9乃至11のいずれか1項に記載のデータ転送制御装置。
  13. 前記デバイス装置と前記第1の通信部との間データ転送の状態を保持する状態管理レジスタをさらに備え、
    前記第2の通信部は、前記デバイス装置と前記第1の通信部との間のデータ転送が開始された場合に、前記状態管理レジスタにデータ転送中であることを示す情報を格納し、当該データ転送が完了した場合に前記状態管理レジスタに格納された情報をクリアすることを特徴とする請求項1乃至12のいずれか1項に記載のデータ転送制御装置。
  14. 前記第2の通信部は、
    前記ホスト装置の複数の転送実行部のそれぞれとデータ転送を実行する複数のエンドポイントを備え、
    前記複数のエンドポイントのいずれかにおいて前記ホスト装置との間でデータ転送が開始されたときから、前記ホスト装置との間でデータ転送中である全てのエンドポイントにおいて当該データ転送が終了するまで、前記転送保留要求信号をアクティブにして前記第1の通信部に対して送信し、
    前記第1の通信部は、
    前記転送保留要求信号がアクティブであった場合に、前記データ転送保留モードとなることを特徴とする請求項8に記載のデータ転送制御装置。
  15. 前記複数のエンドポイントのそれぞれは、前記ホスト装置との間でデータ転送中であることを前記第1の通信部へ通知するか否かを決定する通知決定部を有し、
    前記第2の通信部は、
    前記ホスト装置との間でデータ転送中であるエンドポイントの内、前記通知決定部により前記第1の通信部へ通知すると決定されたエンドポイントが存在する場合に、前記転送保留要求信号をアクティブにして前記第1の通信部に対して送信し、
    前記第1の通信部は、
    前記転送保留要求信号がアクティブであった場合に、前記データ転送保留モードとなることを特徴とする請求項14に記載のデータ転送制御装置。
  16. デバイス装置との間のデータ転送を処理する第1の通信部と、
    ホスト装置との間のデータ転送を処理する第2の通信部とを有するデータ転送制御装置を制御するデータ転送制御方法であって、
    前記第1の通信部又は前記第2の通信部の一方が前記データ転送を優先すべき優先通信部であり、他方が非優先通信部であり、
    前記優先通信部は、当該優先通信部において前記データ転送中である場合に前記非優先通信部に対してデータ転送中であることを通知し、
    前記非優先通信部は、前記優先通信部から前記データ転送中であることが通知されている場合に、当該非優先通信部における前記データ転送を保留する
    データ転送制御方法。
  17. 前記データ転送制御装置は、前記第1の通信部又は前記第2の通信部のいずれかが前記優先通信部として指定された通信部指定情報を格納するレジスタをさらに備え、
    前記データ転送制御装置は、外部からデータ転送を優先すべき通信部として前記第1の通信部又は前記第2の通信部のいずれかが指定された通信部指定情報を受け付け、当該受け付けた通信部指定情報をレジスタに格納し、
    前記第1の通信部は、当該第1の通信部と前記デバイス装置との間のデータ転送が開始された場合に、前記レジスタに格納された前記通信部指定情報に応じて、前記第2の通信部に対し、前記第1の通信部が前記デバイス装置との間でデータ転送中であるか否かを通知し、
    前記第2の通信部は、当該第2の通信部と前記ホスト装置との間のデータ転送が開始された場合に、前記レジスタに格納された前記通信部指定情報に応じて、前記第1の通信部に対し、前記第2の通信部が前記ホスト装置との間でデータ転送中であることを通知することを特徴とする請求項16に記載のデータ転送制御方法。
  18. 前記第1の通信部は、自己が前記優先通信部であり、かつ、自己と前記デバイス装置との間のデータ転送を開始した場合に、前記第2の通信部に対し、前記第1の通信部が前記デバイス装置との間でデータ転送中であることを通知し、
    前記第2の通信部は、前記第1の通信部が前記デバイス装置との間でデータ転送中であることが当該第1の通信部から通知されている場合に、前記ホスト装置からのデータ転送開始要求に対し、当該ホスト装置へデータ転送が行えないことを示す転送不可応答を送信し、
    前記第1の通信部は、自己が前記優先通信部であり、かつ、自己と前記デバイス装置との間のデータ転送が完了した場合に、前記第2の通信部に対し、前記第1の通信部が前記デバイス装置との間でデータ転送が完了したことを通知し、
    前記第2の通信部は、前記第1の通信部が前記デバイス装置との間でデータ転送が完了したことが当該第1の通信部から通知されている場合に、前記ホスト装置からのデータ転送開始要求に対し、当該ホスト装置との間でデータ転送を開始するための応答を送信することを特徴とする請求項16又は17に記載のデータ転送制御方法。
  19. 前記第2の通信部は、自己が前記優先通信部であり、かつ、自己と前記ホスト装置との間のデータ転送が開始された場合に、前記第1の通信部に対し、前記第2の通信部が前記ホスト装置との間でデータ転送中であることを通知し、
    前記第1の通信部は、前記第2の通信部が前記ホスト装置との間でデータ転送中であることが当該第2の通信部から通知されている場合に、前記デバイス装置に対するデータ転送開始要求の送信を保留し、
    前記第2の通信部は、自己が前記優先通信部であり、かつ、自己と前記ホスト装置との間のデータ転送が完了した場合に、前記第1の通信部に対し、前記第2の通信部が前記ホスト装置との間でデータ転送が完了したことを通知し、
    前記第1の通信部は、前記第2の通信部が前記ホスト装置との間でデータ転送が完了したことが当該第2の通信部から通知されている場合に、前記デバイス装置に対して当該保留したデータ転送開始要求を送信することを特徴とする請求項16又は17に記載のデータ転送制御方法。
  20. 前記第1の通信部は、前記通信部指定情報に応じて、前記第2の通信部に対し、当該第2の通信部と前記ホスト装置との間のデータ転送の許否を通知する転送許否信号を出力し、
    前記第2の通信部は、前記転送許否信号に応じて、前記ホスト装置からのデータ転送開始要求に対して前記転送不可応答を送信するデータ転送不可モードになり、
    前記第2の通信部は、前記通信部指定情報に応じて、前記第1の通信部に対し、当該第1の通信部と前記デバイス装置との間のデータ転送の保留の要求を通知する転送保留要求信号を出力し、
    前記第1の通信部は、前記転送保留要求信号に応じて、前記デバイス装置に対するデータ転送開始要求を保留するデータ転送保留モードになることを特徴とする請求項17に記載のデータ転送制御方法。
JP2010110009A 2009-08-20 2010-05-12 データ転送制御装置及びデータ転送制御方法 Pending JP2011065630A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010110009A JP2011065630A (ja) 2009-08-20 2010-05-12 データ転送制御装置及びデータ転送制御方法
US12/827,362 US20110047303A1 (en) 2009-08-20 2010-06-30 Data transfer control device and data transfer control method
CN2010102420818A CN101996150A (zh) 2009-08-20 2010-07-29 数据传输控制装置和数据传输控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009191046 2009-08-20
JP2010110009A JP2011065630A (ja) 2009-08-20 2010-05-12 データ転送制御装置及びデータ転送制御方法

Publications (1)

Publication Number Publication Date
JP2011065630A true JP2011065630A (ja) 2011-03-31

Family

ID=43606196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010110009A Pending JP2011065630A (ja) 2009-08-20 2010-05-12 データ転送制御装置及びデータ転送制御方法

Country Status (3)

Country Link
US (1) US20110047303A1 (ja)
JP (1) JP2011065630A (ja)
CN (1) CN101996150A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6232604B2 (ja) * 2014-02-10 2017-11-22 サイレックス・テクノロジー株式会社 デバイスサーバとその制御方法
US9588925B2 (en) * 2014-09-17 2017-03-07 Valens Semiconductor Ltd. USB extension for lossy channel
US20170168968A1 (en) * 2015-12-15 2017-06-15 Qualcomm Incorporated Audio bus interrupts
CN106095714A (zh) * 2016-06-08 2016-11-09 芯启源电子科技有限公司 Usb数据传输的存储装置及电子设备
US10559351B2 (en) * 2017-02-20 2020-02-11 Texas Instruments Incorporated Methods and apparatus for reduced area control register circuit

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751684B2 (en) * 2000-12-21 2004-06-15 Jonathan M. Owen System and method of allocating bandwidth to a plurality of devices interconnected by a plurality of point-to-point communication links
JP3636160B2 (ja) * 2002-04-26 2005-04-06 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US7852796B2 (en) * 2002-05-13 2010-12-14 Xudong Wang Distributed multichannel wireless communication
JP3614161B2 (ja) * 2003-05-20 2005-01-26 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
TW200506637A (en) * 2003-08-07 2005-02-16 Ali Corp Host-to-host USB bridge
KR100557215B1 (ko) * 2003-08-19 2006-03-10 삼성전자주식회사 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법
JP2005122372A (ja) * 2003-10-15 2005-05-12 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP4131234B2 (ja) * 2003-12-17 2008-08-13 セイコーエプソン株式会社 マクロセル、集積回路装置、及び電子機器
US7328849B2 (en) * 2004-04-21 2008-02-12 Stmicroelectronics, Inc. Smart card providing data mapping for multiple applications and related methods
JP2006238413A (ja) * 2005-01-27 2006-09-07 Nec Electronics Corp Usbハブ、usb対応装置及び通信システム
US7969873B2 (en) * 2005-06-22 2011-06-28 Intel Corporation Data transmission scheme with scheduling optimization for physical channel group
KR100703787B1 (ko) * 2005-08-09 2007-04-06 삼성전자주식회사 무선 유에스비 통신에서의 흐름 제어 방법 및 이를사용하는 무선 유에스비 디바이스 및 무선 유에스비 호스트
US8068495B2 (en) * 2005-09-27 2011-11-29 Intel Corporation Mechanisms for data rate improvement in a wireless network
KR20070076726A (ko) * 2006-01-19 2007-07-25 삼성전자주식회사 엔드포인트 제어 장치 및 방법
US20080005262A1 (en) * 2006-06-16 2008-01-03 Henry Wurzburg Peripheral Sharing USB Hub for a Wireless Host

Also Published As

Publication number Publication date
CN101996150A (zh) 2011-03-30
US20110047303A1 (en) 2011-02-24

Similar Documents

Publication Publication Date Title
JP5902834B2 (ja) 暗示的なメモリの登録のための明示的なフロー制御
US9430432B2 (en) Optimized multi-root input output virtualization aware switch
KR101951072B1 (ko) 코어 간 통신 장치 및 방법
US20110022769A1 (en) Translation USB Intermediate Device and Data Rate Apportionment USB Intermediate Device
US9489028B2 (en) Managing sideband segments in on-die system fabric
WO2017056725A1 (ja) 車載制御装置
US20080222330A1 (en) Semiconductor integrated circuit and image processing apparatus having the same
JP2004334417A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2011065630A (ja) データ転送制御装置及びデータ転送制御方法
JP5145929B2 (ja) 半導体集積回路及び画像処理装置
US7337382B2 (en) Data transfer control device, electronic instrument, and data transfer control method
EP2336897B1 (en) Data processing apparatus, data processing method, and computer-readable storage medium
JP5741245B2 (ja) 画像処理装置、画像処理制御方法及び画像処理制御プログラム
JP2012190283A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
JP5587530B2 (ja) エンジン・プロセッサ連携システム及び連携方法
WO2023015551A1 (zh) 通信方法、装置及电子设备
US20220019459A1 (en) Controlled early response in master-slave systems
JP2002176464A (ja) ネットワークインタフェース装置
JP6542513B2 (ja) Usb転送装置、usb転送システムおよびusb転送方法
US20180307299A1 (en) Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device
KR20230016816A (ko) 시스템 온 칩에서 기능 블록 간의 데이터 송수신을 위한 인터페이스 방법 및 이를 이용하는 시스템 온 칩
JPH06149703A (ja) メッセージ転送制御装置
JP2011024156A (ja) パケット通信装置およびシステム、ならびに同システムにおける受信割り込み制御方法、パケット通信制御プログラム
TW201118586A (en) Universal serial bus host controller and method utilizing the same