JP2011090485A - パイプ調停回路、パイプ調停方法 - Google Patents

パイプ調停回路、パイプ調停方法 Download PDF

Info

Publication number
JP2011090485A
JP2011090485A JP2009243245A JP2009243245A JP2011090485A JP 2011090485 A JP2011090485 A JP 2011090485A JP 2009243245 A JP2009243245 A JP 2009243245A JP 2009243245 A JP2009243245 A JP 2009243245A JP 2011090485 A JP2011090485 A JP 2011090485A
Authority
JP
Japan
Prior art keywords
data transfer
control circuit
pipe control
pipe
arbitration
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.)
Granted
Application number
JP2009243245A
Other languages
English (en)
Other versions
JP5456434B2 (ja
Inventor
Kunihiro Kondo
邦裕 近藤
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 JP2009243245A priority Critical patent/JP5456434B2/ja
Priority to US12/902,855 priority patent/US8423693B2/en
Priority to CN201510075877.1A priority patent/CN104636280B/zh
Priority to CN201010516546.4A priority patent/CN102043741B/zh
Publication of JP2011090485A publication Critical patent/JP2011090485A/ja
Priority to US13/853,500 priority patent/US8756356B2/en
Application granted granted Critical
Publication of JP5456434B2 publication Critical patent/JP5456434B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Abstract

【課題】組み込み機器向けUSBホストコントローラによっては、パイプを介して接続状態にできる周辺機器の数が制限される
【解決手段】複数の外部機器と、複数のパイプ制御回路を介して接続可能なホストコントローラ10に調停回路13を設ける。調停回路13には複数のパイプ制御回路15の空き状態を示し、所定の通信サイズのデータ転送単位で更新される空き状態を記憶する空き状態情報記憶部132を備える。また、調停回路13は空き状態情報記憶部132を参照し、空き状態のパイプ制御回路15から任意のパイプ制御回路を選択して、選択したパイプ制御回路に外部機器を割り当てるとともに、空き状態情報記憶部132の更新を行う調停部135を備える。
【選択図】図1

Description

本発明はパイプ調停回路、パイプ調停方法に関し、特に組み込み機器に対するパイプ調停回路、パイプ調停方法に関する。
ホスト機器に様々な周辺機器を接続する為のシリアルバス規格として、USB(Universal Serial Bus)が挙げられる。USBの一般的なホストコントローラ規格であるEHCI(Enhanced Host Controller Interface)、及びOHCI(Open Host Controller Interface)は、PCI(Peripheral Component Interconnect)バスを介してデータの入出力を実行することを前提としている。図4は、EHCI規格を用いたUSBデータ転送の概念を示すブロック図である。
EHCI規格を用いたUSBデータ転送において、転送要求が発生したエンドポイントに関し、制御ソフトウェアがEHCI規格で定められているフォーマットに従ったUSBトランザクションリストを作成する。制御ソフトウェアは、作成したUSBトランザクションリストをシステムメモリ21に書き込む。すなわち、制御ソフトウェアは、USBトランザクションリストの作成、及びシステムメモリ21へのアロケート/リリースのメモリ管理を行う。DMA(Direct Memory Access)マスタ23は、PCIバスを介し、システムメモリ21からUSBトランザクションリストを読み込む。そして、シーケンサ22が、DMAマスタ23が読み込んだUSBトランザクションリストにより定められた転送順序に従ってUSBデータ転送を行う。シーケンサ22は、データの転送制御を行う処理部である。
しかし、デジタルスチルカメラ、プリンタ等の組み込み機器は、PC(Personal Computer)のように高性能のCPU(Central Processing Unit, 中央演算処理装置)、及びPCIバスを搭載していないことが多い。そのため、PCIバスを搭載していない組み込み機器は、規格に準拠したUSBホストコントローラを使用することができない。また、EHCI規格を用いたUSBデータ転送では、上述のUSBトランザクションリストの作成などのソフトウェアによる処理が必要となり、処理の負荷が高い。
特許文献1には、組み込み機器に用いるUSBホストコントローラに関連する技術を開示している。このUSBホストコントローラによって、PCIバスを持たない機器であっても、USBホストコントローラ規格に準拠したUSBデータ転送を行うことが可能となる。しかし、このUSBホストコントローラによっても、制御ソフトウェアによるUSBトランザクションリスト作成処理の負荷を軽減することはできない。
このような制御ソフトウェアによる処理の煩雑さを軽減するために、USBトランザクションリストの生成が不要であり、I/Oアクセス処理のみでUSB転送を可能とするUSBホストコントローラ(以下、組み込み機器向けUSBホストコントローラと記載する)を搭載した製品がある(たとえば、ルネサス社製 USB2.0コントローラ R8A66597)。
図5は、組み込み機器向けUSBホストコントローラの構成を示す図である。USBホストコントローラ40は、CPUインターフェイス制御ブロック41と、USB転送スケジュール制御ブロック42と、USBパイプ制御回路43と、USBパイプ用バッファメモリ44と、USBインターフェイス制御ブロック45と、USBダウンストリームポート46と、を備える。CPUインターフェイス制御ブロック41は、USBホストコントローラ40を制御するソフトウェアの処理を行うCPUとのインターフェイスである。USB転送スケジュール制御ブロック42は、USBホストコントローラ規格に定められている条件に従って、有効な状態にあるエンドポイントのデータ転送順序を決定するブロックである。USBパイプ制御回路43は、パイプと呼ばれる仮想通信路を制御することにより、USBデータ転送の発行、転送データのバッファリング制御、及びUSBプロトコルの制御を行う。USBパイプ用バッファメモリ44は、USB接続する外部機器、及びUSBホストコントローラ40を備えるマイクロコンピュータ等がデータ転送を行う際に、一時的なデータの入出力に用いるバッファメモリである。USBインターフェイス制御ブロック45は、USBパイプ制御回路43と、USBダウンストリームポート46と、の間に生じる処理を仲介するインターフェイスである。USBダウンストリームポート46は、USBホストコントローラ40が外部機器と接続する為のポートである。
図6は、図5に示したUSBホストコントローラ40を搭載したUSBシステムにおいて、USB制御にかかる部分を抜粋して記載したブロック図である。図6は、USBホスト搭載システム50に、マルチカードリーダ/ライタ55と、USB外付けハードディスク56と、を物理的に接続している状態を示す。
特表2007−502476号公報
しかしながら、組み込み機器向けUSBホストコントローラによるUSBデータ転送処理では、以下の問題がある。図5及び図6を用いて、組み込み機器向けUSBホストコントローラによるUSBデータ転送処理について説明する。
図6に記載のUSBホストコントローラ40は、6個のパイプ制御回路431〜436をサポートする。すなわち、USBホストコントローラ40は、6個のパイプ制御回路431〜436を有する。ここで、USB転送スケジュール制御ブロック42は、マルチカードリーダ/ライタ55のエンドポイントをUSBデータ転送対象のエンドポイントとして選択する。マルチカードリーダ/ライタ55は、6つのパイプを使用してデータ転送を行うものとする。マルチカードリーダ/ライタ55をUSBホストコントローラ40に接続した場合、マルチカードリーダ/ライタ55はパイプ制御回路431〜436を占有して、使用する。この場合、新たにUSB外付けハードディスク56をUSBホスト搭載システム50に物理的に接続しても、USBホストコントローラ40内に空き状態のパイプ制御回路がない。そのため、USB外付けハードディスク56は、USBホストコントローラ51とパイプを介した接続状態にすることができない。
一般に組み込み機器向けUSBホストコントローラは、10個程度のパイプ制御回路をサポートしている。一般的なUSBメモリやUSBハードディスクは、3個のパイプ制御回路を使用してデータ転送を行う。また、高機能なマルチファンクションプリンタでは、12個程度のパイプ制御回路を使用してデータ転送を行う。このため、組み込み機器向けUSBホストコントローラでは、合計で3個程度のUSBメモリまたはUSBハードディスクしかパイプを介した接続状態とできない。また、上述の組み込み機器向けUSBホストコントローラでは、高機能なマルチファンクションプリンタを、パイプを介した接続状態にできない恐れがある。
すなわち、上述の組み込み機器向けUSBホストコントローラによっては、パイプを介して接続状態にできる周辺機器の数が制限されるという問題がある。
本発明にかかる調停回路の一態様は、外部機器と、複数のパイプ制御回路を介して接続可能なホストコントローラに設けられた調停回路であって、前記複数のパイプ制御回路の空き状態を示し、パイプ制御回路から所定の通信サイズのデータ転送単位で更新される空き状態情報を記憶する空き状態情報記憶部と、前記空き状態情報記憶部を参照し、空き状態の前記パイプ制御回路の中から任意のパイプ制御回路を選択して、選択した前記パイプ制御回路を外部機器に割り当てるとともに、前記空き状態情報記憶部の更新を行う調停部と、を備えるものである。
本発明においては、所定の通信サイズのデータ転送毎にパイプ制御回路の空き情報を更新する。調停回路は、空き状態のパイプ制御回路を割り当てることにより、パイプ制御回路を複数の外部機器とのデータ転送で共有することが可能となる。
本発明によれば、データ転送に用いるパイプ制御回路を複数の外部機器とのデータ転送において共有することが可能となる。
実施の形態1にかかるUSBホストコントローラの構成図である。 実施の形態1にかかるUSBパイプアービタの構成図である。 実施の形態1にかかるUSBホストコントローラを用いた機器の接続関係を示す図である。 従来のEHCI規格を用いたUSBデータ転送の概念図である。 従来のUSBホストコントローラの構成図である。 従来のUSBホストコントローラを用いた機器の接続関係を示す図である。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。まず、図1を参照して、本実施の形態にかかるUSBホストコントローラの基本構成について説明する。USBホストコントローラ10は、CPU(Central Processing Unit, 中央演算処理装置)インターフェイス制御ブロック11と、USB転送スケジュール制御ブロック12と、USBパイプアービタ13と、パイプ状態保持メモリ14と、複数のUSBパイプ制御回路15(151〜15n)と、USBパイプ用バッファメモリ16と、USBインターフェイス制御ブロック17と、USBダウンストリームポート18と、を備える。
CPUインターフェイス制御ブロック11は、CPU(図示せず)とのインターフェイスである。CPUは、USBホストコントローラ10を制御する為のソフトウェアを実行する。USB転送スケジュール制御ブロック12は、USB規格に定められた条件に従い、有効なエンドポイントのデータ転送順序を決定する処理部である。また、USB転送スケジュール制御ブロック12は、USBホストコントローラ10を備える機器と接続されている外部機器のエンドポイントの情報を保持する。エンドポイントとは、データ転送用のバッファである。エンドポイントの情報とは、少なくとも、USBホストコントローラ10がデータ転送先を特定するための情報であり、デバイスアドレスと、エンドポイント番号と、転送方向と、からなる。
USBパイプアービタ13は、後述のUSBパイプ制御回路15の使用状態を保持する。USBパイプアービタ13は、USBパイプ制御回路15の調停を行う調停回路として動作する。USBパイプアービタ13は、USBパイプ制御回路15の使用状態に基づいて、各外部機器のエンドポイントにUSBパイプ制御回路15を割り当てる。USBパイプアービタ13の詳細な構成、及び動作は後述する。
パイプ状態保持メモリ14は、USBホストコントローラ10に物理的に接続されている外部機器の性能情報を格納する。ここで外部機器の性能情報とは、USBパイプ制御回路15が転送対象の外部機器とのUSBデータ転送に使用する情報である。例えば、外部機器のUSB転送タイプ、転送スピード、割込みステータス情報等が挙げられる。当該外部機器の性能情報は、外部機器がUSBダウンストリームポート18に物理的に接続されたときに格納される。
また、パイプ状態保持メモリ14は、各外部機器のエンドポイントによるデータ転送の処理履歴情報を保持する。処理履歴情報は、USBパイプ制御回路15がこれまでの当該エンドポイントによるデータ転送状態を参照し、適切な状態からデータ転送を再開する為に用いられる。例えば、処理履歴情報は、直前のデータ転送でエラーが起こったか否かの情報、データトグルシーケンスの値等が該当する。なお、データトグルシーケンスとは、データ転送に用いるパケットに含まれる値(Packet ID)であり、USBホストコントローラと外部機器との間でパケット送受信の同期を取るためのシーケンス情報である。
なお、パイプ情報保持メモリ14は、外部機器の性能情報と、処理履歴情報と、を格納する記憶部として説明したが、これらの情報を別のメモリに保持する構成でもよい。また、USBパイプアービタ13内にパイプ情報保持メモリ14を設けてもよい。
USBパイプ制御回路15(151〜15n)は、パイプを制御する為の回路である。詳しくは、USBパイプ制御回路15(151〜15n)は、USB転送の発行、転送データのバッファリング制御、USBプロトコル制御を行う制御回路である。USBパイプ制御回路15は、データ転送を行うエンドポイントの情報をロードすることにより、データ転送先を認識することが可能となる。USBパイプ制御回路15を構成する回路数は、通信中と、次通信準備中と、待機中と、に用いる3個で構成することにより律速することなくデータ通信が可能である。なお、USBパイプ制御回路15を構成する回路数は、これに限らず、3個以上、または3個以下の回路から構成してもよい。USBパイプ制御回路15は、所定の通信サイズのデータ転送が終了した場合に、後述のパイプ状態管理レジスタ132の保持する値を更新する。すなわち、USBパイプ制御回路15は、所定の通信サイズのデータ転送が終了した場合に、パイプ状態管理レジスタ132に当該USBパイプ制御回路が空き状態になったことを書き込む。
USBパイプ用バッファメモリ16は、USB接続する外部機器、及びUSBホストコントローラ10を備えるマイクロコンピュータ等がデータ転送を行う際に、一時的なデータの入出力に用いるバッファメモリである。なお、USBパイプ用バッファメモリ16は、複数設けてもよい。
USBインターフェイス制御ブロック17は、USBパイプ制御回路15と、USBダウンストリームポート18と、の間に生じる処理を仲介するインターフェイスである。USBダウンストリームポート18は、USBホストコントローラ10が外部機器と接続する為のポートである。USBダウンストリームポート18は、USBホストコントローラ10を備える機器により、その数が異なる。USBダウンストリームポート18の数は、USBホストコントローラ10を備える機器と物理的に接続できる外部機器の数と同数となる。
続いて、図2を参照し、USBパイプアービタ13の詳細な構成を説明する。USBパイプアービタ13は、CPUバスインターフェイス制御ブロック131と、パイプ状態管理レジスタ132と、パイプ呼び出し管理レジスタ133と、パイプ呼び出し完了通知レジスタ134と、パイプ―メモリ間データ転送制御部135と、パイプ状態転送制御バス制御ブロック136と、を備える。
CPUバスインターフェイス制御ブロック131は、CPU制御用バスとのインターフェイスとなる処理部である。パイプ状態管理レジスタ132は、USBパイプ制御回路15の使用状況(空き状態か、使用状態か)をリアルタイムに記憶するためのレジスタである。すなわち、パイプ状態管理レジスタ132は、USBパイプ制御回路15の空き状態を記憶する空き状態情報記憶部である。パイプ状態管理レジスタ132に格納された値は、USBパイプ制御回路15が所定データサイズのデータ転送を完了したときに書き換えられる。
パイプ呼び出し管理レジスタ133は、データ転送要求が発生したエンドポイントを特定する為の情報を設定するレジスタである。パイプ呼び出し管理レジスタ133には、転送対象のエンドポイントの情報がUSB転送スケジュール制御ブロック12から入力される。
パイプ呼び出し完了通知レジスタ134は、データ転送要求を行ったエンドポイントの情報が、USBパイプ制御回路15にロードされたことを示すレジスタである。パイプ呼び出し完了通知レジスタ134は、パイプ―メモリ間データ転送制御部135による、USBパイプ制御回路15のエンドポイントへの割り当てが完了した場合に、そのエンドポイントの情報が書き込まれる。
パイプ―メモリ間データ転送制御部135は、USBパイプ制御回路15の割り当てを調停する調停部として機能する。具体的には、以下のように動作する。
パイプ―メモリ間データ転送制御部135は、定期的にパイプ呼び出し管理レジスタ133を参照し、データ転送対象となるエンドポイントがあるか否かを判定する。データ転送対象となるエンドポイントがある場合、パイプ―メモリ間データ転送制御部135は、パイプ状態管理レジスタ132を参照し、空き状態となっているUSBパイプ制御回路15を特定する。また、パイプ―メモリ間データ転送制御部135は、データ転送対象となるエンドポイントと対応する外部機器の機器情報、及び当該エンドポイントの処理履歴をパイプ状態保持メモリ14から取得し、取得した処理履歴を空き状態のUSBパイプ制御回路15にロードする。ロードが完了した場合、パイプ―メモリ間データ転送制御部135は、パイプ状態管理レジスタ132の値を更新する。また、ロードが完了した場合、パイプ―メモリ間データ転送制御部135は、パイプ呼び出し完了通知レジスタ134にロードが終了したエンドポイントの情報を書き込むとともに、CPUインターフェイス制御ブロック11に割込み信号を出力する。
次に、外部機器をUSBダウンストリームポート18に物理的に接続した場合の、USBホストコントローラ10の動作を説明する。USBホストコントローラ10は、接続された外部機器のエンドポイント情報、すなわちデバイスアドレスと、エンドポイント番号と、転送方向と、を外部機器から取得する。そして、USB転送スケジュール制御ブロック12は取得したエンドポイント情報を保持する。
さらに、USBホストコントローラ10は、接続された外部機器の性能情報を取得し、取得した情報をパイプ状態保持メモリ14に格納する。ここで、外部機器の性能情報と、前述のエンドポイントの情報を関連付けて格納する。例えば、USBホストコントローラ10は、物理的に接続された外部機器の転送対象の機器のUSB転送タイプ、転送スピード、割込みステータス情報等を取得し、取得した情報をパイプ状態保持メモリ14に格納する。
次に図2を参照し、IN転送、すなわち外部機器がUSBホストコントローラ10を備える機器からデータを読み出す場合の処理を説明する。最初にUSB転送スケジュール制御ブロック12は、USB規格に基づいて、USB転送が可能なエンドポイントから、データ転送対象となるエンドポイントを選択する。USB転送スケジュール制御ブロック12は、選択されたエンドポイントの情報、すなわちデバイスアドレスと、エンドポイント情報と、転送方向と、をUSBパイプアービタ13内のパイプ呼び出し管理レジスタ133に書き込む。
パイプ―メモリ間データ転送制御部135は、定期的にパイプ呼び出し管理レジスタ133を参照し、データ転送対象となるエンドポイントがあるか否かを判定する。データ転送対象となるエンドポイントがある場合、パイプ―メモリ間データ転送制御部135は、パイプ呼び出し管理レジスタ133に記憶されたエンドポイント情報を基に、アクセスすべきパイプ状態保持メモリ14の領域を特定する。パイプ―メモリ間データ転送制御部135は、特定した領域を参照し、データ転送対象のエンドポイントと対応する外部機器の機器情報、及び当該エンドポイントの処理履歴を取得する。また、パイプ―メモリ間データ転送制御部135は、パイプ状態管理レジスタ132を参照し、空き状態であるUSBパイプ制御回路15を特定する。ここでは、USBパイプ制御回路151が空き状態であるものとする。そして、パイプ―メモリ間データ転送制御部135は、パイプ状態保持メモリ14から取得した機器情報、及び処理履歴情報を空き状態であるUSBパイプ制御回路151にロードする。例えば、パイプ―メモリ間データ転送制御部135は、USBパイプ制御回路151に当該エンドポイントの機器情報として外部機器のUSB転送タイプ、転送スピード等をロードする。また、パイプ―メモリ間データ転送制御部135は、USBパイプ制御回路151に当該エンドポイントの前回のデータ転送がエラー状態ではなかったこと、データトグルシーケンスの値が"1"であること、等をロードする。
パイプ―メモリ間データ転送制御部135は、上述のロード処理が完了の後に、パイプ状態管理レジスタ132に対してロードの完了を通知する。すなわち、エンドポイントを割り当てたUSBパイプ制御回路151が使用状態である旨をパイプ状態管理レジスタ132に書き込む。また、パイプ―メモリ間データ転送制御部135は、パイプ呼び出し完了通知レジスタ134にロードが終了したエンドポイントの情報を書き込むとともに、CPUインターフェイス制御ブロック11に割込み信号を出力する。エンドポイント情報がロードされたUSBパイプ制御回路151は、USBトークンを発行し、USB IN転送を開始する。この場合、USBパイプ制御回路151は、ロードされた機器情報と、処理履歴情報とを用いて、適切な状態からUSB IN転送を行う。
続いて図2を参照して、OUT転送、すなわちUSBホストコントローラ10を備える機器から外部機器に対してデータの書き込みを行う場合の処理を説明する。OUT転送要求が発生した場合、USBホストコントローラ10を備える機器のシステムソフトウェアは、CPUインターフェイス制御ブロック11を介してUSBスケジュール制御ブロック12からデータ転送先のエンドポイントの情報を取り出す。そして、システムソフトウェアは、パイプ呼び出し管理レジスタ132にデータ転送先のエンドポイント情報を書き込む。
パイプ―メモリ間データ転送制御部135は、定期的にパイプ呼び出し管理レジスタ133を参照し、データ転送対象となるエンドポイントがあるか否かを判定する。データ転送対象となるエンドポイントがある場合の以降の処理はIN転送と同様である。すなわち、パイプ―メモリ間データ転送制御部135によるパイプ状態保持メモリ14へのアクセス、空き状態であるUSBパイプ制御回路15の選択、及びUSBパイプ制御回路15への機器情報、及び処理履歴情報のロードが実行される。そして、USBパイプ制御回路15は、USBトークンを発行し、USB OUT転送を開始する。
次に、IN転送、及びOUT転送の終了時のUSBホストコントローラ10の動作を以下に説明する。ここで、IN転送、及びOUT転送の終了とは、データ送信に用いるパケット単位での送信の終了を指す。たとえばUSBパイプ制御回路151が所定の通信サイズのデータ転送(たとえば512バイト)のデータ転送が終了した場合、パイプ状態管理レジスタ132を更新する。すなわち、USBパイプ制御回路15の各々は、パイプ状態管理レジスタ132に対し、所定の通信サイズのデータ処理毎に当該USBパイプ制御回路15が空き状態になったことを書き込む。
また、USBパイプ制御回路151は、所定の通信サイズのデータ転送(たとえば512バイト)のデータ転送が終了した場合に、当該データ転送先のエンドポイントの処理履歴をパイプ状態保持メモリ14に書き込む。例えば、USBパイプ制御回路151は、当該エンドポイントとのデータ転送がエラー状態で終了したか否か、データトグルシーケンスの値等をパイプ状態保持メモリ14に書き込む。
図3は、上述のUSBホストコントローラ10を内蔵したUSBホスト搭載システムを示す。マルチカードリーダ/ライタ34、及びUSB外付けハードディスク35は、USBパイプアービタ13を介して、USBパイプ制御回路15を使用する。USBパイプアービタ13が、USBパイプ制御回路15の使用を調停することにより、USBパイプ制御回路15は共有可能となる。
続いて、本実施の形態にかかるホストコントローラによる効果を説明する。上述のように、ホストコントローラ内に調停回路を設け、パイプ制御回路の空き情報を所定の通信サイズのデータ転送毎に書き換える。調停回路が所定の通信サイズのデータ転送毎に空き状態のパイプ制御回路を外部機器とのエンドポイントに割り当てることにより、パイプ制御回路の共有が可能となる。これにより、多くのパイプ制御回路を用意しない場合であっても、接続可能な周辺機器の数が限定されない。すなわち、回路規模を小さく保ったまま、多くの周辺機器とパイプを介した接続状態にすることが可能となる。
USB規格を用いたデータ転送では、規格上127個の外部機器が持つ最大4064個のエンドポイントと、USBホストコントローラを備える機器とがパイプを介した接続状態にできる。本実施の形態にかかるホストコントローラでは、パイプ制御回路を共有することにより、規格上限と同一個数の外部機器を、パイプを介した接続状態とすることが可能となる。
さらに、本実施の形態にかかるホストコントローラでは、物理的に接続状態となっている外部機器の各エンドポイントの処理履歴情報をパイプ状態保持メモリに格納している。パイプ制御回路には、データ転送を開始する前にデータ転送対象のエンドポイントの処理履歴情報が通知される。これにより、所定サイズ毎にパイプ制御回路のデータ転送対象が変わったとしても、適切な状態からデータ転送を開始することが可能となる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
10 USBホストコントローラ
11 CPUインターフェイス制御ブロック
12 USB転送スケジュール制御ブロック
13 USBパイプアービタ
14 パイプ状態保持メモリ
15 USBパイプ制御回路
16 USBパイプ用バッファメモリ
17 USBインターフェイス制御ブロック
18 USBダウンストリームポート
131 CPUバスインターフェイス制御ブロック
132 パイプ状態管理レジスタ
133 パイプ呼び出し管理レジスタ
134 パイプ呼び出し完了通知レジスタ
135 パイプ―メモリ間データ転送制御部
136 パイプ状態転送制御バス制御ブロック

Claims (18)

  1. 外部機器と、複数のパイプ制御回路を介して接続可能なホストコントローラに設けられた調停回路であって、
    前記複数のパイプ制御回路の空き状態を示し、パイプ制御回路から所定の通信サイズのデータ転送単位で更新される空き状態情報を記憶する空き状態情報記憶部と、
    前記空き状態情報記憶部を参照し、空き状態の前記パイプ制御回路の中から任意のパイプ制御回路を選択して、選択した前記パイプ制御回路を外部機器に割り当てるとともに、前記空き状態情報記憶部の更新を行う調停部と、を備える調停回路。
  2. 前記所定の通信サイズは、シリアルバスによるデータ転送により扱われる通信パケットと同一サイズであることを特徴とする請求項1に記載の調停回路。
  3. 前記外部機器から出力されたデータ転送要求に含まれるデータ転送用バッファの識別情報を記憶するパイプ呼び出し設定記憶部を備え、
    前記調停部は、当該パイプ呼び出し設定記憶部に格納された前記データ転送用バッファの識別情報を読み出して、前記パイプ制御回路の割り当て処理を開始することを特徴とする請求項1または請求項2に記載の調停回路。
  4. 前記パイプ制御回路の所定の通信サイズのデータ転送終了により前記空き状態情報記憶部が更新された場合に、所定の通信サイズのデータ転送が終了した前記データ転送用バッファを記憶するパイプ呼び出し完了通知記憶部をさらに備え、
    前記調停部は、所定の通信サイズのデータ転送が終了した前記データ転送用バッファを前記パイプ呼び出し完了通知記憶部に書き込むとともに、中央演算処理装置に割込み信号を送信することを特徴とする請求項1乃至請求項3に記載の調停回路。
  5. 前記調停部は、前記パイプ制御回路の割り当て処理において、データ転送対象の外部機器の機器情報を、選択した前記パイプ制御回路に通知することを特徴とする請求項1乃至請求項4に記載の調停回路。
  6. 前記調停部は、前記パイプ制御回路の割り当て処理において、データ転送対象の外部機器との処理履歴情報を、選択した前記パイプ制御回路に通知することを特徴とする請求項1乃至請求項5に記載の調停回路。
  7. 外部機器と、複数のパイプ制御回路を介して接続可能なホストコントローラにおける前記パイプ制御回路の調停方法であって、
    前記複数のパイプ制御回路の空き状態に基づいて、空き状態の前記パイプ制御回路から任意のパイプ制御回路を選択して、
    選択した前記パイプ制御回路を外部機器に割り当て、
    前記空き状態情報を所定の通信サイズのデータ転送単位で更新するパイプ制御回路調停方法。
  8. 前記所定の通信サイズは、シリアルバスによるデータ転送により扱われる通信パケットと同一サイズであることを特徴とする請求項7に記載のパイプ制御回路調停方法。
  9. 前記外部機器からデータ転送要求を受け付けた場合に、データ転送要求に含まれるデータ転送用バッファの識別情報を記憶し、
    記憶された当該データ転送用バッファの識別情報を用いて前記パイプ制御回路の割り当て処理を開始することを特徴とする請求項7または請求項8に記載のパイプ制御回路調停方法。
  10. 前記パイプ制御回路の所定の通信サイズのデータ転送終了により前記空き状態情報が更新された場合に、所定の通信サイズのデータ転送終了が終了した前記データ転送用バッファを記憶し、
    記憶した当該データ転送用バッファを通知する割込み信号を中央演算処理装置に送信することを特徴とする請求項7乃至請求項9に記載のパイプ制御回路調停方法。
  11. 前記パイプ制御回路の割り当て処理において、データ転送対象の外部機器の機器情報を、選択した前記パイプ制御回路に通知することを特徴とする請求項7乃至請求項10に記載のパイプ制御回路調停方法。
  12. 前記パイプ制御回路の割り当て処理において、データ転送対象の外部機器との処理履歴情報を、選択した前記パイプ制御回路に通知することを特徴とする請求項7乃至請求項11に記載のパイプ制御回路調停方法。
  13. 外部機器と、複数のパイプ制御回路を介して接続可能なホストコントローラであって、
    前記複数のパイプ制御回路の空き状態を示し、前記パイプ制御回路により所定の通信サイズのデータ転送単位で更新される空き状態を記憶する空き状態情報記憶部と、
    前記空き状態情報記憶部を参照し、空き状態の前記パイプ制御回路の中から任意のパイプ制御回路を選択して、選択した前記パイプ制御回路に外部機器を割り当てるとともに、前記空き状態情報記憶部の更新を行う調停部と、を有する調停回路を備え、
    前記パイプ制御回路は、所定の通信サイズのデータ転送終了後に前記空き状態情報記憶部を更新する、ホストコントローラ。
  14. 前記所定の通信サイズは、シリアルバスによるデータ転送により扱われる通信パケットと同一サイズであることを特徴とする請求項13に記載のホストコントローラ。
  15. 前記調停回路は、前記外部機器からデータ転送要求を受け付けるとともに、データ転送要求に含まれるデータ転送用バッファの識別情報を記憶するパイプ呼び出し設定記憶部を備え、
    前記調停部は、当該パイプ呼び出し設定記憶部に格納された前記データ転送用バッファの識別情報を読み出して、前記パイプ制御回路の割り当て処理を開始することを特徴とする請求項13または請求項14に記載のホストコントローラ。
  16. 前記調停回路は、前記パイプ制御回路の所定の通信サイズのデータ転送終了により前記空き状態情報記憶部が更新された場合に、所定の通信サイズのデータ転送が終了した前記データ転送用バッファを記憶するパイプ呼び出し完了通知記憶部をさらに備え、
    前記調停部は、所定の通信サイズのデータ転送が終了した前記データ転送用バッファを前記パイプ呼び出し完了通知記憶部に書き込むとともに、中央演算処理装置に割込み信号を送信することを特徴とする請求項13乃至請求項15に記載のホストコントローラ。
  17. 接続可能な外部機器の性能情報を格納する機器情報記憶部を備え、
    前記調停部は、前記パイプ制御回路の割り当て処理において、データ転送対象の外部機器の性能情報を前記機器情報記憶部から取り出し、選択した前記パイプ制御回路に取り出した前記性能情報を通知することを特徴とする請求項13乃至請求項16に記載のホストコントローラ。
  18. 接続可能な外部機器とのデータ転送の処理履歴を格納する処理履歴記憶部をさらに備え、前記調停部は、前記パイプ制御回路の割り当て処理において、データ転送対象の外部機器との処理履歴を前記処理履歴記憶部から取り出し、選択した前記パイプ制御回路に取り出した前記処理履歴を通知することを特徴とする請求項13乃至請求項17に記載のホストコントローラ。
JP2009243245A 2009-10-22 2009-10-22 パイプ調停回路、パイプ調停方法 Active JP5456434B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009243245A JP5456434B2 (ja) 2009-10-22 2009-10-22 パイプ調停回路、パイプ調停方法
US12/902,855 US8423693B2 (en) 2009-10-22 2010-10-12 Circuit and method for pipe arbitration using available state information and arbitration
CN201510075877.1A CN104636280B (zh) 2009-10-22 2010-10-20 用于管道仲裁的电路和方法
CN201010516546.4A CN102043741B (zh) 2009-10-22 2010-10-20 用于管道仲裁的电路和方法
US13/853,500 US8756356B2 (en) 2009-10-22 2013-03-29 Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009243245A JP5456434B2 (ja) 2009-10-22 2009-10-22 パイプ調停回路、パイプ調停方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014001438A Division JP2014081952A (ja) 2014-01-08 2014-01-08 ホストコントローラ

Publications (2)

Publication Number Publication Date
JP2011090485A true JP2011090485A (ja) 2011-05-06
JP5456434B2 JP5456434B2 (ja) 2014-03-26

Family

ID=43899342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009243245A Active JP5456434B2 (ja) 2009-10-22 2009-10-22 パイプ調停回路、パイプ調停方法

Country Status (3)

Country Link
US (2) US8423693B2 (ja)
JP (1) JP5456434B2 (ja)
CN (2) CN104636280B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5506304B2 (ja) * 2009-09-18 2014-05-28 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理システム
JP5456434B2 (ja) * 2009-10-22 2014-03-26 ルネサスエレクトロニクス株式会社 パイプ調停回路、パイプ調停方法
US8930585B2 (en) * 2012-05-29 2015-01-06 Mediatek Inc. USB host controller and scheduling methods thereof
GB202001700D0 (en) * 2020-02-07 2020-03-25 Blancco Tech Group Ip Oy USB controller endpoint resource management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000196607A (ja) * 1998-12-24 2000-07-14 Canon Inc 情報処理システム及びその制御方法並びに情報処理装置
JP2003316735A (ja) * 2003-02-19 2003-11-07 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP2004334417A (ja) * 2003-05-06 2004-11-25 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP2004355117A (ja) * 2003-05-27 2004-12-16 Noritsu Koki Co Ltd バス制御システム及びバス制御方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205501B1 (en) * 1998-01-07 2001-03-20 National Semiconductor Corp. Apparatus and method for handling universal serial bus control transfers
US6145045A (en) * 1998-01-07 2000-11-07 National Semiconductor Corporation System for sending and receiving data on a Universal Serial Bus (USB) using a memory shared among a number of end points
CN1273903C (zh) * 1998-03-19 2006-09-06 韩旭 通用串行总线多功能转接控制器
US6119195A (en) * 1998-08-04 2000-09-12 Intel Corporation Virtualizing serial bus information point by address mapping via a parallel port
JP2002312296A (ja) * 2001-04-10 2002-10-25 Nec Microsystems Ltd 周辺装置のusbインタフェース装置、その制御方法およびプログラム並びにusbインタフェースシステム
TW518502B (en) * 2001-07-13 2003-01-21 Prolific Technology Inc USB compound device and the realization method thereof
JP3636160B2 (ja) * 2002-04-26 2005-04-06 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
JP2004046392A (ja) * 2002-07-10 2004-02-12 Renesas Technology Corp Usbホスト制御回路
US7069373B2 (en) * 2002-11-07 2006-06-27 Nec Electronics America, Inc. USB endpoint controller flexible memory management
US7222201B2 (en) * 2003-01-06 2007-05-22 Plx Technology, Inc. Virtual endpoint for USB devices
US7340554B2 (en) 2003-05-15 2008-03-04 Nxp B.V. USB host controller with DMA capability
ATE369588T1 (de) 2003-05-15 2007-08-15 Nxp Bv Usb host controller mit dma fähigkeit
JP2005122372A (ja) * 2003-10-15 2005-05-12 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
CN100385787C (zh) * 2005-12-12 2008-04-30 天津理工大学 基于dsp芯片的励磁控制器通讯系统及其usb协议实现的方法
TWI317882B (en) * 2006-01-27 2009-12-01 Prolific Technology Inc An usb interface provided with host/device function and its control method
JP2007249938A (ja) * 2006-02-14 2007-09-27 Matsushita Electric Ind Co Ltd Usbホストシステム、avデータ再生装置およびavデータ記録装置
US7526590B2 (en) * 2006-03-31 2009-04-28 Intel Corporation Systems and methods for remote pipe resource management in wireless adapters
US20080005415A1 (en) * 2006-06-06 2008-01-03 Lopez Fernando A Disabling a Universal Serial Bus Port
CN101256452A (zh) * 2007-03-01 2008-09-03 昆盈企业股份有限公司 Usb输入装置及其扩展带宽的方法
US7904626B2 (en) * 2007-06-07 2011-03-08 Renesas Electronics Corporation Arbiter and arbitration method of multiple data accesses
JP5456434B2 (ja) * 2009-10-22 2014-03-26 ルネサスエレクトロニクス株式会社 パイプ調停回路、パイプ調停方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000196607A (ja) * 1998-12-24 2000-07-14 Canon Inc 情報処理システム及びその制御方法並びに情報処理装置
JP2003316735A (ja) * 2003-02-19 2003-11-07 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP2004334417A (ja) * 2003-05-06 2004-11-25 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP2004355117A (ja) * 2003-05-27 2004-12-16 Noritsu Koki Co Ltd バス制御システム及びバス制御方法

Also Published As

Publication number Publication date
US8423693B2 (en) 2013-04-16
JP5456434B2 (ja) 2014-03-26
CN104636280B (zh) 2018-03-30
US20110099312A1 (en) 2011-04-28
CN102043741A (zh) 2011-05-04
CN102043741B (zh) 2015-02-25
US8756356B2 (en) 2014-06-17
US20130219095A1 (en) 2013-08-22
CN104636280A (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
TWI447650B (zh) 中斷分佈方案
EP1909474B1 (en) Image processor and its control method
US20080040526A1 (en) Processing apparatus and method of modifying system configuration
JP4837659B2 (ja) 分割トランザクションを処理するためのバス・コントローラ
CN112765059A (zh) 一种基于fpga的dma设备及dma数据搬移方法
JP5506304B2 (ja) データ処理装置及びデータ処理システム
CN110647359B (zh) 半导体装置、其操作方法和具有其的层叠存储装置
JP5456434B2 (ja) パイプ調停回路、パイプ調停方法
JP2018519587A (ja) 構成可能メールボックスデータバッファ装置
JP2006209778A (ja) ダイレクトメモリアクセスの実現方法および装置、ダイレクトメモリアクセスコンピュータシステム
EP3716084A1 (en) Apparatus and method for sharing a flash device among multiple masters of a computing platform
JP5209535B2 (ja) Usbホストコントローラ及びusbホストコントローラの制御方法
US9146693B2 (en) Storage control device, storage system, and storage control method
CN115114013A (zh) 高速外围组件互连装置及其操作方法
CN111290983A (zh) Usb传输设备及传输方法
JP6106986B2 (ja) 演算処理装置、情報処理装置及び割込制御方法
JPH1040215A (ja) Pciバス・システム
JP2014081952A (ja) ホストコントローラ
JP2008108126A (ja) データ転送制御装置及びそのバスアクセス調停方法
JP2006285872A (ja) マルチcpuシステム
JP2006119724A (ja) Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム
JP2015014962A (ja) 演算装置、演算方法、及びプログラム
TWI230863B (en) Input/output system and method for transferring control and data, and arbiter for coordinating data communication
JP2007108858A (ja) ピン共有装置およびピン共有方法
US7272680B2 (en) Method of transferring data between computer peripherals

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140108

R150 Certificate of patent or registration of utility model

Ref document number: 5456434

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350