JP2010198171A - Usbホストコントローラ、及びusbホストコントローラの制御方法 - Google Patents

Usbホストコントローラ、及びusbホストコントローラの制御方法 Download PDF

Info

Publication number
JP2010198171A
JP2010198171A JP2009040550A JP2009040550A JP2010198171A JP 2010198171 A JP2010198171 A JP 2010198171A JP 2009040550 A JP2009040550 A JP 2009040550A JP 2009040550 A JP2009040550 A JP 2009040550A JP 2010198171 A JP2010198171 A JP 2010198171A
Authority
JP
Japan
Prior art keywords
buffer memory
usb
memory area
address information
control block
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
JP2009040550A
Other languages
English (en)
Other versions
JP2010198171A5 (ja
JP5209535B2 (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 JP2009040550A priority Critical patent/JP5209535B2/ja
Priority to US12/656,562 priority patent/US8386725B2/en
Priority to DE102010008907A priority patent/DE102010008907A1/de
Priority to CN201010126672.9A priority patent/CN101814011B/zh
Publication of JP2010198171A publication Critical patent/JP2010198171A/ja
Publication of JP2010198171A5 publication Critical patent/JP2010198171A5/ja
Application granted granted Critical
Publication of JP5209535B2 publication Critical patent/JP5209535B2/ja
Expired - Fee Related 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/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

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)
  • Memory System (AREA)

Abstract

【課題】ストレージ機器間のデータ転送時間を短縮することが可能なUSBホストコントローラを提供することである。
【解決手段】本発明にかかるUSBホストコントローラ11は、第1のバッファメモリ領域41と第2のバッファメモリ領域42とを有するUSBパイプ用バッファメモリ2と、第1の機器18と第2の機器19とUSBパイプ用バッファメモリ2の間のデータ転送を制御するバッファメモリ制御部1を備える。バッファメモリ制御部1は、第1の機器18からのデータを第1のバッファメモリ領域41に格納し、第1のバッファメモリ領域41に対応するアドレス情報と第2のバッファメモリ領域42に対応するアドレス情報を入れ替え、当該入れ替えた後の第1のバッファメモリ領域41に対応するアドレス情報に基づき第1のバッファメモリ領域41に格納されているデータを第2の機器19に転送する。
【選択図】図1

Description

本発明はUSBホストコントローラ、及びUSBホストコントローラの制御方法に関する。
近年、USB(Universal Serial Bus)インタフェースは、コンピュータとその周辺機器を接続するインタフェースとして用いられている。また、組み込み機器システムにおいてもUSBインタフェースが用いられている。図5はデータ入出力装置とその装置に接続されるUSB周辺機器の構成例を示す図である。図5に示すデータ入力装置は、例えばデジタルビデオカメラなどで動画像、静止画像データを保存する場合に使用するストレージ機器、及びその機器との入出力制御部を抜粋したものである。
図5に示すデータ入出力装置122は、CPU120、メモリ121、USBホストコントローラ111、コネクタ116、117、SATA(Serial ATA)コントローラ114、ハードディスク115、バス113を有する。CPU120、メモリ121、USBホストコントローラ111はバス113を介してそれぞれ接続されている。また、ハードディスク115はSATAコントローラ114を介してバス113と接続されている。そして、USBメモリ118はコネクタ1(116)を介してUSBホストコントローラ111と接続されており、また、外付けハードディスク119はコネクタ2(117)を介してUSBホストコントローラ111と接続されている。
また、データ通信手段としてUSBを使用する場合、装置内部にUSBホストコントローラを内蔵することが一般的になってきている。図6は、図5に示すUSBホストコントローラ111を示す図である。図6に示すUSBホストコントローラ111はCPUインタフェース制御ブロック108と、USBパイプ用バッファメモリ102と、第1のUSBパイプ制御ブロック104と、第2のUSBパイプ制御ブロック105と、第nのUSBパイプ制御ブロック106と、USBインタフェース制御ブロック107と、ポート109、110、バス112を有する。CPUインタフェース制御ブロック108と、USBパイプ用バッファメモリ102と、第1のUSBパイプ制御ブロック104と、第2のUSBパイプ制御ブロック105と、第nのUSBパイプ制御ブロック106は、それぞれバス112を介して接続されている。
次に、図5に示すUSBメモリ118から外付けハードディスク119へデータを移動するための処理シーケンスについて図7を用いて説明する。また、この時のデータの流れについて図8を用いて説明する。尚、この例ではUSBメモリ118からのデータの読み出し(BulkIN)には第1のUSBパイプ制御ブロック104を、外付けハードディスク119へのデータの書き込み(BulkOUT)には第2のUSBパイプ制御ブロック105を用いるものとする。
まず、図5の外付けハードディスク119へコピーするデータをUSBメモリ118から読み出すために、CPU120はUSBホストコントローラ111に対してBulkIN転送を発生させるための処理を行う(S101)。次に、USBホストコントローラ111はUSBメモリ118に対してBulkIN転送を発行しデータを要求する(S102)。
USBメモリ118はBulkIN要求に応答してUSBホストコントローラ111に対してデータを送信する(S103)。USBホストコントローラ111は、USBメモリからの受信データをUSBパイプ用バッファメモリ102の第1のバッファメモリ領域(図8の141)に格納する(S104)。
そして、USBホストコントローラ111はUSBメモリからの全データをUSBパイプ用バッファメモリ102へ格納後、CPU120に対して割り込み通知をする(S105)。当該割り込みを検出したCPU120は、USBパイプ用バッファメモリ102の第1のバッファメモリ領域に格納されているデータを、図5のデータ入出力装置122のメモリ121へデータ転送し格納する(S106)。
次に、外付けハードディスク119へデータを転送するために、メモリ121に格納したデータをUSBホストコントローラ111へデータ転送する(S107)。USBホストコントローラ111は受信したデータを内部のUSBパイプ用バッファメモリ102の第2のバッファメモリ領域(図8の142)に格納する(S108)。CPU120は、全データ(1パケット分)を転送し終えると、外付けハードディスク119に対するBulkOUT転送開始処理を行う(S109)。
USBホストコントローラ111は、外付けハードディスク119に対してBulkOUT転送を発行し、第2のバッファメモリ領域に格納されているデータを外付けハードディスク119へ転送する(S110)。外付けハードディスク119は、BulkOUT転送で受信したデータをハードディスクへ格納する(S111)。
図8はUSBメモリ118から外付けハードディスク119へデータを移動する際のデータの流れを説明するための図である。図8に示すように、データはUSBメモリ118から第1のUSBパイプ制御ブロック104を経由し、USBパイプ用バッファメモリ102の第1のバッファメモリ領域141に格納される(S101〜S104)。その後、データはUSBパイプ用バッファメモリ102の第1のバッファメモリ領域141からメモリ121へ転送される(S106)。
そして、外付けハードディスク119へデータを転送するために、メモリ121に格納したデータをUSBパイプ用バッファメモリ102の第2のバッファメモリ領域142に格納する(S108)。その後、データはUSBパイプ用バッファメモリ102の第2のバッファメモリ領域142から第2のUSBパイプ制御ブロック105を経由し、外付けハードディスク119へ転送され、格納される(S109〜S111)。
また、特許文献1にはCPUの負荷を抑制しつつ、転送効率を向上させることができるUSBホスト制御回路に関する技術が開示されている。特許文献1にかかるUSBホスト制御回路は、パイプ制御バッファ、パイプ情報バッファ、転送情報バッファ、パイプ選択回路、プロトコルエンジンを有する。そして、パイプ選択回路はパイプ制御バッファおよびパイプ情報バッファに記憶されている情報に従って、CPUとUSBデバイスとの間でデータ転送を行うパイプを選択している。更に、プロトコルエンジンからデータ転送に対する応答結果を取得し、当該応答結果に応じて転送情報バッファの内容を書き換えつつ、データ転送を行うパイプを切り替えている。
特開2004−46392号公報
しかしながら、図5に示すUSBホストコントローラ111を用いてUSBメモリ118から外付けハードディスク119へデータ転送をする場合、メモリ121へデータを一時的に格納する必要がある。
図8を用いて説明すると、上記例ではUSBメモリ118からのデータの読み出し(BulkIN)には第1のUSBパイプ制御ブロック104を、外付けハードディスク119へのデータの書き込み(BulkOUT)には第2のUSBパイプ制御ブロック105を用いている。このため、図5に示すUSBホストコントローラ111を用いてデータ転送をする場合、USBパイプ用バッファメモリの第1のバッファメモリ領域141に格納されているデータを第2のバッファメモリ領域142へ転送する必要がある。よって、図5に示すUSBホストコントローラ111を用いてデータ転送をする場合、メモリ121を用いて第1のバッファメモリ領域141に格納されたデータを第2のバッファメモリ領域142へ転送している。
このように、USBホストコントローラ111の外部にあるメモリ121を用いて第1のバッファメモリ領域141から第2のバッファメモリ領域142へデータを転送すると、当該データ転送に時間を要する。また、USBホストコントローラ111と外部メモリ121間におけるデータ転送中にバスが占有されるため、他の処理の速度を低下させる。
本発明にかかるUSBホストコントローラは、第1のバッファメモリ領域と第2のバッファメモリ領域とを有するバッファメモリと、第1の機器と前記バッファメモリ間のデータ転送と、第2の機器と前記バッファメモリ間のデータ転送を制御するバッファメモリ制御部と、を備える。前記バッファメモリ制御部は、前記第1のバッファメモリ領域に対応するアドレス情報と前記第2のバッファメモリ領域に対応するアドレス情報を保持すると共に、前記第1の機器からのデータを前記第1のバッファメモリ領域に格納し、前記第1のバッファメモリ領域に対応するアドレス情報と前記第2のバッファメモリ領域に対応するアドレス情報を入れ替え、当該入れ替えた後の第1のバッファメモリ領域に対応するアドレス情報に基づき前記第1のバッファメモリ領域に格納されている前記データを第2の機器に転送する。
本発明にかかるUSBホストコントローラでは、バッファメモリ制御部が第1のバッファメモリ領域に対応するアドレス情報と第2のバッファメモリ領域に対応するアドレス情報を入れ替えている。これにより、USBホストコントローラの外部にあるメモリを用いてデータ転送をする必要がないためストレージ機器間のデータ転送時間を短縮することができる。
本発明にかかる、第1のバッファメモリ領域と第2のバッファメモリ領域とを有するバッファメモリと、第1の機器と前記バッファメモリ間のデータ転送と第2の機器と前記バッファメモリ間のデータ転送を制御するバッファメモリ制御部と、を有するUSBホストコントローラの制御方法は次の工程を有する。前記第1の機器からのデータを前記第1のバッファメモリ領域に格納する工程。前記バッファメモリ制御部が保持する前記第1のバッファメモリ領域に対応するアドレス情報と前記第2のバッファメモリ領域に対応するアドレス情報を入れ替える工程。当該入れ替えた後の第1のバッファメモリ領域に対応するアドレス情報に基づき前記第1のバッファメモリ領域に格納されている前記データを第2の機器に転送する工程。
本発明にかかるUSBホストコントローラの制御方法では、第1のバッファメモリ領域に対応するアドレス情報と第2のバッファメモリ領域に対応するアドレス情報を入れ替えている。これにより、USBホストコントローラの外部にあるメモリを用いてデータ転送をする必要がないためストレージ機器間のデータ転送時間を短縮することができる。
本発明により、ストレージ機器間のデータ転送時間を短縮することが可能なUSBホストコントローラ及びUSBホストコントローラの制御方法を提供することができる。
実施の形態にかかるUSBホストコントローラを示す図である。 実施の形態にかかるUSBホストコントローラのメモリスワップ制御ブロックを示す図である。 実施の形態にかかるUSBホストコントローラを用いてデータ転送した場合のシーケンスを説明するための図である。 実施の形態にかかるUSBホストコントローラを用いてデータ転送した場合を説明するための図である。(a)はスワップ前の状態、(b)はスワップ後の状態である。 背景技術にかかるデータ入出力装置を示す図である。 背景技術にかかるUSBホストコントローラを示す図である。 背景技術にかかるUSBホストコントローラを用いてデータ転送した場合のシーケンスを説明するための図である。 背景技術にかかるUSBホストコントローラを用いてデータ転送した場合を説明するための図である。
以下、図面を参照して本発明の実施の形態について説明する。
本実施の形態にかかるUSBホストコントローラを図1に示す。本実施の形態にかかるUSBホストコントローラ11は、第1のバッファメモリ領域41(図4参照)と第2のバッファメモリ領域42(図4参照)とを有するUSBパイプ用バッファメモリ(バッファメモリ)2と、第1の機器18とUSBパイプ用バッファメモリ2間のデータ転送と、第2の機器19とUSBパイプ用バッファメモリ2間のデータ転送を制御するバッファメモリ制御部1と、を備える。
バッファメモリ制御部1は、第1のバッファメモリ領域41に対応するアドレス情報と第2のバッファメモリ領域42に対応するアドレス情報を保持する。また、バッファメモリ制御部1は、第1の機器18からのデータを第1のバッファメモリ領域41に格納し、その後に、第1のバッファメモリ領域41に対応するアドレス情報と第2のバッファメモリ領域42に対応するアドレス情報を入れ替え、当該入れ替えた後の第1のバッファメモリ領域に対応するアドレス情報に基づき前記第1のバッファメモリ領域41に格納されているデータを第2の機器19に転送する。
図1に示すUSBホストコントローラ11のバッファメモリ制御部1はメモリスワップ制御ブロック3と複数のUSBパイプ制御ブロック4、5、6を有する。更に、USBホストコントローラ11はUSBパイプ用バッファメモリ2とCPUインタフェース制御ブロック8を有する。そして、メモリスワップ制御ブロック3、複数のUSBパイプ制御ブロック4、5、6、USBパイプ用バッファメモリ2、CPUインタフェース制御ブロック8はバス12を介してそれぞれ接続されている。CPUインタフェース制御ブロック8はCPUからの命令、CPUへの割り込み信号を制御する機能を有する。
また、各USBパイプ制御ブロック4、5、6はUSBインタフェース制御ブロック7と接続されている。そして、第1の機器18と第2の機器19はそれぞれポート1(9)とポート2(10)を介してUSBインタフェース制御ブロック7と接続されている。ここで、第1の機器18と第2の機器19は情報をストレージする機能を有する機器であればどのような機器でもよい。本実施の形態では、例えば第1の機器18をUSBメモリとし、第2の機器19を外付けハードディスクとして説明する。
次に、バッファメモリ制御部1とUSBパイプ用バッファメモリ2の動作について説明する。バッファメモリ制御部1はUSBメモリ18からのデータをUSBパイプ用バッファメモリ2へ転送すると共に、USBパイプ用バッファメモリ2に格納されているデータを外付けハードディスク19へ転送する。
図4(a)に示すように、USBパイプ用バッファメモリ2は複数のバッファメモリ領域を有する。そして、それぞれのバッファメモリ領域に対応するように、各USBパイプ制御ブロックが割り当てられている。
例えば、図4(a)では、第1のバッファメモリ領域41には第1のUSBパイプ制御ブロック4が割り当てられている。そして、第1のUSBパイプ制御ブロック4はUSBメモリ18からのデータを第1のバッファメモリ領域41へ転送する機能を有している。この時、第1のUSBパイプ制御ブロック4は、メモリスワップ制御ブロック3により書き込まれたベースアドレス情報とデータサイズに基づいて、第1のバッファメモリ領域41へデータを転送している。ここで、例えばベースアドレス情報は第1のバッファメモリ領域41における始点アドレスである。そして、当該始点アドレスとデータサイズ情報を用いることで、第1のバッファメモリ領域41を特定することができる。
同様に、第2のバッファメモリ領域42には第2のUSBパイプ制御ブロック5が割り当てられている。そして、第2のUSBパイプ制御ブロック5は第2のバッファメモリ領域42に格納されているデータを外付けハードディスク19へ転送する機能を有している。この時、第2のUSBパイプ制御ブロック5は、メモリスワップ制御ブロック3により書き込まれたベースアドレス情報とデータサイズに基づいて、第2のバッファメモリ領域42に格納されているデータを外付けハードディスク19へ転送している。
図4(a)ではUSBメモリ18からのデータは第1のUSBパイプ制御ブロック4を経由して第1のバッファメモリ領域41へ転送されている。しかし、外付けハードディスク19へデータを転送するためには第2のUSBパイプ制御ブロック5を経由する必要がある。そのため、第1のバッファメモリ領域41に格納されたデータを外付けハードディスク19へ転送するためには、第1のバッファメモリ領域41に格納されたデータを第2のバッファメモリ領域42へ移動する必要がある。そこで、背景技術では外部メモリを設けることで、第1のバッファメモリ領域41に格納されたデータを第2のバッファメモリ領域42へ移動していた。しかし、外部メモリを用いると、第1のバッファメモリ領域41から外部メモリへのデータの転送、外部メモリから第2のバッファメモリ領域42へのデータの転送が必要となるため、データの移動に時間を要する。また、USBホストコントローラ11と外部メモリ間におけるデータ転送中にバスが占有されるため、他の処理能力を低下させるという問題が生じる。また、USBホストコントローラ11の外部にメモリを別途設けなければならない。
本実施の形態では、第1のUSBパイプ制御ブロック4と第2のUSBパイプ制御ブロック5が保持するアドレス情報(ベースアドレス情報、データサイズ情報)を、メモリスワップ制御ブロック3を用いて書き替えることで、上記問題を解決している。以下で、メモリスワップ制御ブロック3がUSBパイプ制御ブロックのアドレス情報を書き替える場合について説明する。
図2はメモリスワップ制御ブロック3を示す図である。メモリスワップ制御ブロック3はCPUバスインタフェース制御ブロック21とスワップ元パイプ番号レジスタ22とスワップ先パイプ番号レジスタ23とスワップ開始イネーブルレジスタ24とを有し、これらはバス32を介して接続されている。CPUバスインタフェース制御ブロック21はCPUからの命令を制御する機能を有する。
スワップ元パイプ番号レジスタ22にはスワップ元のUSBパイプ制御ブロックのパイプ番号が格納されている。マルチプレクサ25は、スワップ元パイプ番号レジスタ22からスワップ元のパイプ番号を取得し、当該パイプ番号に従いUSBパイプ制御ブロックのベースアドレス情報を選択し、スワップ先のUSBパイプ制御ブロックのメモリベースアドレス保持回路へベースアドレス情報を送信する。
同様に、マルチプレクサ26は、スワップ元パイプ番号レジスタ22からスワップ元のパイプ番号を取得し、当該パイプ番号に従いUSBパイプ制御ブロックのデータサイズ情報を選択し、スワップ先のUSBパイプ制御ブロックのデータサイズ保持回路へデータサイズ情報を送信する。
また、スワップ先パイプ番号レジスタ23にはスワップ先のUSBパイプ制御ブロックのパイプ番号が格納されている。マルチプレクサ27は、スワップ先パイプ番号レジスタ23からスワップ先のパイプ番号を取得し、当該パイプ番号に従いUSBパイプ制御ブロックのベースアドレス情報を選択し、スワップ元のUSBパイプ制御ブロックのメモリベースアドレス保持回路へベースアドレス情報を送信する。
同様に、マルチプレクサ28は、スワップ先パイプ番号レジスタ23からスワップ先のパイプ番号を取得し、当該パイプ番号に従いUSBパイプ制御ブロックのデータサイズ情報を選択し、スワップ元のUSBパイプ制御ブロックのデータサイズ保持回路へデータサイズ情報を送信する。
上記スワップ元パイプ番号レジスタ22、スワップ先パイプ番号レジスタ23に書き込まれるパイプ番号は、CPUからの命令に基づき書き込まれる。
スワップ元パイプ番号レジスタ22、スワップ先パイプ番号レジスタ23にパイプ番号が書き込まれると、スワップ開始イネーブルレジスタ24がセットされ、スワップ開始イネーブルレジスタ24がセットされたことを示す信号がスワップタイミング信号生成回路30へ送信される。マルチプレクサ29は、スワップ先パイプ番号レジスタ23に格納されたパイプ番号に基づき、スワップ先のバッファステータス情報を選択し、当該情報をスワップタイミング信号生成回路30へ送信する。ここで、スワップ先のバッファステータス情報とはスワップ先のバッファメモリ領域が空であるか否かを示す情報である。そして、スワップ先のバッファメモリ領域が空でない場合、スワップ動作の開始を保留し、スワップ先のバッファメモリ領域が空になるまで待つ。スワップ先のバッファメモリ領域が空である場合、スワップタイミング信号生成回路30はスワップ開始信号生成回路31に対して、スワップタイミング信号を送信する。
スワップ開始信号生成回路31は、スワップ元パイプ番号レジスタ22からスワップ元のパイプ番号を取得し、スワップ先パイプ番号レジスタ23からスワップ先のパイプ番号を取得し、スワップタイミング信号生成回路30からスワップタイミング信号を受け取ると、スワップ元のUSBパイプ制御ブロックとスワップ先のUSBパイプ制御ブロックに対してスワップ開始信号を送信する。スワップ開始信号を受信したスワップ元のUSBパイプ制御ブロックとスワップ先のUSBパイプ制御ブロックは、それぞれが保持するベースアドレス情報及びデータサイズ情報を、各マルチプレクサ25、26、27、28で選択されたベースアドレス情報及びデータサイズ情報に書き替える。
次に、図3を用いて本実施の形態にかかるUSBホストコントローラを用いてUSBメモリ18から外付けハードディスク19へデータ転送した場合について説明する。ここで、USBメモリ18からのデータの読み出し(BulkIN)には第1のUSBパイプ制御ブロック4を使用し、外付けハードディスク19へのデータの書き込み(BulkOUT)には第2のUSBパイプ制御ブロック5を使用するものとする。また、USBホストコントローラ11は例えば図5に示すようなデータ入出力装置122に組み込まれているものとする。また、スワップ前の第1のUSBパイプ制御ブロック4と第2のUSBパイプ制御ブロック5の状態を図4(a)に示し、スワップ後の第1のUSBパイプ制御ブロック4と第2のUSBパイプ制御ブロック5の状態を図4(b)に示す。以下では適宜、図1、図2、図4も用いて説明をする。
まず、図1の外付けハードディスク19へコピーするデータをUSBメモリ18から読み出すために、CPUはUSBホストコントローラ11に対してBulkIN転送を発生させるための処理を行う(S1)。次に、USBホストコントローラ11はUSBメモリ18に対してBulkIN転送を発行しデータを要求する(S2)。
USBメモリ18はBulkIN要求に応答してUSBホストコントローラ11に対してデータを送信する(S3)。USBホストコントローラ11は、USBメモリからの受信データをUSBパイプ用バッファメモリ2の第1のバッファメモリ領域41(図4参照)に格納する(S4)。
そして、USBホストコントローラ11はUSBメモリからの全データをUSBパイプ用バッファメモリ2へ格納後、CPUに対して割り込み通知をする(S5)。当該割り込みを検出したCPUは、メモリスワップするために、図2に示すメモリスワップ制御ブロックのスワップ元パイプ番号レジスタ22にUSBメモリからのデータを受信したパイプ番号(本実施の形態の例では、1h)を設定する。また、CPUは、スワップ先パイプ番号レジスタ23に外付けハードディスク19へデータを送信するパイプ番号(本実施の形態の例では、2h)を設定する。
図2に示すマルチプレクサ25は、スワップ元パイプ番号レジスタ22からスワップ元のパイプ番号(1h)を取得し、当該パイプ番号に従い第1のUSBパイプ制御ブロック4のベースアドレス情報(010h)を選択し、スワップ先の第2のUSBパイプ制御ブロック5のベースアドレス保持回路へベースアドレス情報を送信する。
同様に、マルチプレクサ26は、スワップ元パイプ番号レジスタ22からスワップ元のパイプ番号(1h)を取得し、当該パイプ番号に従い第1のUSBパイプ制御ブロック4のデータサイズ情報(200h)を選択し、スワップ先の第2のUSBパイプ制御ブロック5のデータサイズ保持回路へデータサイズ情報を送信する。
マルチプレクサ27は、スワップ先パイプ番号レジスタ23からスワップ先のパイプ番号(2h)を取得し、当該パイプ番号に従い第2のUSBパイプ制御ブロック5のベースアドレス情報(410h)を選択し、スワップ元の第1のUSBパイプ制御ブロック4のベースアドレス保持回路へベースアドレス情報を送信する。
同様に、マルチプレクサ28は、スワップ先パイプ番号レジスタ23からスワップ先のパイプ番号(2h)を取得し、当該パイプ番号に従い第2のUSBパイプ制御ブロック5のデータサイズ情報(000h)を選択し、スワップ元の第1のUSBパイプ制御ブロック4のデータサイズ保持回路へデータサイズ情報を送信する。
図2に示すスワップ元パイプ番号レジスタ22、スワップ先パイプ番号レジスタ23にパイプ番号が書き込まれると、スワップ開始イネーブルレジスタ24がセットされ、スワップ開始イネーブルレジスタ24がセットされたことを示す信号がスワップタイミング信号生成回路30へ送信される。マルチプレクサ29は、スワップ先パイプ番号レジスタ23に格納されたパイプ番号(2h)に基づき、スワップ先のバッファステータス情報を選択し、当該情報をスワップタイミング信号生成回路30へ送信する。
スワップ先のバッファメモリ領域である第2のバッファメモリ領域42が空でない場合、スワップタイミング信号生成回路30は、スワップ動作の開始を保留し、第2のバッファメモリ領域42が空になるまで待つ。第2のバッファメモリ領域42が空である場合、スワップタイミング信号生成回路30はスワップ開始信号生成回路31へスワップタイミング信号を送信する。
スワップ開始信号生成回路31は、スワップ元のパイプ番号(1h)、スワップ先のパイプ番号(2h)を取得し、スワップタイミング信号生成回路30からスワップタイミング信号を受け取ると、スワップ元の第1のUSBパイプ制御ブロック4とスワップ先の第2のUSBパイプ制御ブロック5に対してスワップ開始信号を送信する(S6)。
スワップ開始信号を受信したスワップ元の第1のUSBパイプ制御ブロック4とスワップ先の第2のUSBパイプ制御ブロック5は、それぞれが保持するベースアドレス情報及びデータサイズ情報と、各マルチプレクサ25、26、27、28で選択されたベースアドレス情報及びデータサイズ情報を入れ替えるというメモリスワップ処理を行う(S7)。
S7の動作について図4を用いて説明する。スワップ前の第1のUSBパイプ制御ブロック4のベースアドレス情報は010h、データサイズ情報は200hであり、第2のUSBパイプ制御ブロック5のベースアドレスは410h、データサイズは000hである。そして、スワップ処理を実行すると、スワップ後の第1のUSBパイプ制御ブロック4のベースアドレス情報は410h、データサイズ情報は000hとなる。また、第2のUSBパイプ制御ブロック5のベースアドレスは010h、データサイズは200hとなる。
すなわち、上記スワップ処理により第2のUSBパイプ制御ブロック5のベースアドレス情報とデータサイズ情報が第1のバッファメモリ領域41に対応する情報となったため、第2のUSBパイプ制御ブロック5は第1のバッファメモリ領域41に格納されているデータを読み出すことができる。
尚、図4ではUSBパイプ制御ブロックのアドレス情報として、ベースアドレス情報とデータサイズ情報を用いているが、バッファメモリ領域を特定できる情報であればどのようなものでもよい。例えば、アドレス情報として、バッファメモリ領域の始点アドレスと終点アドレスを用いてもよい。
そして、上記スワップ処理後、USBホストコントローラ11はCPUに対してスワップ完了を通知するために、CPUに対して割り込みを発行する(S8)。CPUは、USBホストコントローラ11からスワップ完了通知を受け取ると、外付けハードディスク19に対するBulkOUT転送開始処理を行う(S9)。
USBホストコントローラ11は、外付けハードディスク19に対してBulkOUT転送を発行し、第1のバッファメモリ領域に格納されているデータを外付けハードディスク19へ転送する(S10)。外付けハードディスク19は、BulkOUT転送で受信したデータをハードディスクへ格納する(S11)。
本実施の形態にかかるUSBホストコントローラでは、メモリスワップ制御ブロック3が第1のUSBパイプ制御ブロック4に格納されている第1のバッファメモリ領域41に対応するアドレス情報と、第2のUSBパイプ制御ブロック5に格納されている第2のバッファメモリ領域42に対応するアドレス情報を入れ替えている。これにより、USBホストコントローラの外部にあるメモリを用いてデータ転送をする必要がないためストレージ機器間のデータ転送時間を短縮することができる。また、USBホストコントローラ11の外部にメモリを別途設ける必要がなくなる。
また、本実施の形態にかかる、第1のバッファメモリ領域と第2のバッファメモリ領域とを有するバッファメモリ(USBパイプ用バッファメモリ)と、第1の機器と前記バッファメモリ間のデータ転送と、第2の機器と前記バッファメモリ間のデータ転送を制御するバッファメモリ制御部と、を有するUSBホストコントローラの制御方法は次の工程を有する。
第1の機器からのデータを前記第1のバッファメモリ領域に格納する工程。
バッファメモリ制御部が保持する第1のバッファメモリ領域に対応するアドレス情報と第2のバッファメモリ領域に対応するアドレス情報を入れ替える工程。
入れ替えた後の第1のバッファメモリ領域に対応するアドレス情報に基づき第1のバッファメモリ領域に格納されているデータを第2の機器に転送する工程。
本発明にかかるUSBホストコントローラの制御方法においても、第1のバッファメモリ領域に対応するアドレス情報と第2のバッファメモリ領域に対応するアドレス情報を入れ替えている。これにより、USBホストコントローラの外部にあるメモリを用いてデータ転送をする必要がないためストレージ機器間のデータ転送時間を短縮することができる。
よって、本実施の形態にかかる発明により、ストレージ機器間のデータ転送時間を短縮することが可能なUSBホストコントローラ及びUSBホストコントローラの制御方法を提供することができる。
以上、本発明を上記実施の形態に即して説明したが、本発明は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得るであろう各種変形、修正、組み合わせを含むことは勿論である。
1 バッファメモリ制御部
2 USBパイプ用バッファメモリ(バッファメモリ)
3 メモリスワップ制御ブロック
4 第1のUSBパイプ制御ブロック
5 第2のUSBパイプ制御ブロック
6 第nのUSBパイプ制御ブロック
7 USBインタフェース制御ブロック
8 CPUインタフェース制御ブロック
9 ポート1
10 ポート2
11 USBホストコントローラ
12 バス
18 第1の機器(USBメモリ)
19 第2の機器(外付けハードディスク)
21 CPUバスインタフェース制御ブロック
22 スワップ元パイプ番号レジスタ
23 スワップ先パイプ番号レジスタ
24 スワップ開始イネーブルレジスタ
25、26、27、28、29 マルチプレクサ
30 スワップタイミング信号生成回路
31 スワップ開始信号生成回路
41 第1のバッファメモリ領域
42 第2のバッファメモリ領域

Claims (8)

  1. 第1のバッファメモリ領域と第2のバッファメモリ領域とを有するバッファメモリと、
    第1の機器と前記バッファメモリ間のデータ転送と、第2の機器と前記バッファメモリ間のデータ転送を制御するバッファメモリ制御部と、を備え、
    前記バッファメモリ制御部は、
    前記第1のバッファメモリ領域に対応するアドレス情報と前記第2のバッファメモリ領域に対応するアドレス情報を保持すると共に、前記第1の機器からのデータを前記第1のバッファメモリ領域に格納し、前記第1のバッファメモリ領域に対応するアドレス情報と前記第2のバッファメモリ領域に対応するアドレス情報を入れ替え、当該入れ替えた後の第1のバッファメモリ領域に対応するアドレス情報に基づき前記第1のバッファメモリ領域に格納されている前記データを第2の機器に転送する、USBホストコントローラ。
  2. 前記バッファメモリ制御部は、前記アドレス情報を格納すると共に、当該アドレス情報に基づき前記データを転送する複数のUSBパイプ制御ブロックを有する、請求項1に記載のUSBホストコントローラ。
  3. 前記バッファメモリ制御部は、第1のUSBパイプ制御ブロックと、第2のUSBパイプ制御ブロックと、当該第1のUSBパイプ制御ブロックと当該第2のUSBパイプ制御ブロックのアドレス情報を入れ替えるメモリスワップ制御ブロックと、を有し、
    前記第1のUSBパイプ制御ブロックは前記第1のバッファメモリ領域に対応するアドレス情報を保持すると共に、前記第1の機器からのデータを前記第1のバッファメモリ領域に格納し、
    前記第2のUSBパイプ制御ブロックは前記第2のバッファメモリ領域に対応するアドレス情報を保持し、
    前記メモリスワップ制御ブロックは、前記第1のUSBパイプ制御ブロックが前記第1の機器からのデータを前記第1のバッファメモリ領域に格納した後に、前記第1のUSBパイプ制御ブロックが保持する前記第1のバッファメモリ領域に対応するアドレス情報と前記第2のUSBパイプ制御ブロックが保持する前記第2のバッファメモリ領域に対応するアドレス情報を入れ替えることで、前記第2のUSBパイプ制御ブロックに前記第1のバッファメモリ領域のアドレス情報を保持させ、
    前記第2のUSBパイプ制御ブロックは前記第1のバッファメモリ領域に格納されている前記データを前記第2の機器に転送する、請求項1または2に記載のUSBホストコントローラ。
  4. 前記アドレス情報は前記第1及び第2のバッファメモリ領域のそれぞれのアドレス情報と前記第1及び第2のバッファメモリ領域のそれぞれに格納されているデータのサイズである、請求項1乃至3のいずれか一項に記載のUSBホストコントローラ。
  5. 前記アドレス情報は前記第1及び第2のバッファメモリ領域のそれぞれの始点アドレスと前記第1及び第2のバッファメモリ領域のそれぞれに格納されているデータのサイズである、請求項1乃至3のいずれか一項に記載のUSBホストコントローラ。
  6. 前記アドレス情報は前記第1及び第2のバッファメモリ領域のそれぞれの始点アドレス及び終点アドレスである、請求項1乃至3のいずれか一項に記載のUSBホストコントローラ。
  7. 前記バッファメモリ制御部は、前記第2のバッファメモリ領域が空となった後に、前記第1のバッファメモリ領域に対応するアドレス情報と前記第2のバッファメモリ領域に対応するアドレス情報を入れ替える、請求項1乃至6のいずれか一項に記載のUSBホストコントローラ。
  8. 第1のバッファメモリ領域と第2のバッファメモリ領域とを有するバッファメモリと、
    第1の機器と前記バッファメモリ間のデータ転送と、第2の機器と前記バッファメモリ間のデータ転送を制御するバッファメモリ制御部と、を有するUSBホストコントローラの制御方法であって、
    前記第1の機器からのデータを前記第1のバッファメモリ領域に格納し、
    前記バッファメモリ制御部が保持する前記第1のバッファメモリ領域に対応するアドレス情報と前記第2のバッファメモリ領域に対応するアドレス情報を入れ替え、
    当該入れ替えた後の第1のバッファメモリ領域に対応するアドレス情報に基づき前記第1のバッファメモリ領域に格納されている前記データを第2の機器に転送する、
    USBホストコントローラの制御方法。
JP2009040550A 2009-02-24 2009-02-24 Usbホストコントローラ及びusbホストコントローラの制御方法 Expired - Fee Related JP5209535B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009040550A JP5209535B2 (ja) 2009-02-24 2009-02-24 Usbホストコントローラ及びusbホストコントローラの制御方法
US12/656,562 US8386725B2 (en) 2009-02-24 2010-02-03 USB host controller and controlling method for USB host controller
DE102010008907A DE102010008907A1 (de) 2009-02-24 2010-02-23 USB-Hostcontroller und Steuerverfahren für USB-Hostcontroller
CN201010126672.9A CN101814011B (zh) 2009-02-24 2010-02-24 Usb主机控制器以及用于usb主机控制器的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009040550A JP5209535B2 (ja) 2009-02-24 2009-02-24 Usbホストコントローラ及びusbホストコントローラの制御方法

Publications (3)

Publication Number Publication Date
JP2010198171A true JP2010198171A (ja) 2010-09-09
JP2010198171A5 JP2010198171A5 (ja) 2012-03-22
JP5209535B2 JP5209535B2 (ja) 2013-06-12

Family

ID=42621277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009040550A Expired - Fee Related JP5209535B2 (ja) 2009-02-24 2009-02-24 Usbホストコントローラ及びusbホストコントローラの制御方法

Country Status (4)

Country Link
US (1) US8386725B2 (ja)
JP (1) JP5209535B2 (ja)
CN (1) CN101814011B (ja)
DE (1) DE102010008907A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013041456A (ja) * 2011-08-17 2013-02-28 Fujitsu Ltd 中継装置および中継方法
WO2014193376A1 (en) * 2013-05-30 2014-12-04 Hewlett-Packard Development Company, L.P. Separate memory controllers to access data in memory

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5551512B2 (ja) * 2010-05-21 2014-07-16 ルネサスエレクトロニクス株式会社 通信制御装置、データ通信方法及びプログラム
US9250858B2 (en) * 2013-02-20 2016-02-02 International Business Machines Corporation Dual-buffer serialization and consumption of variable-length data records produced by multiple parallel threads
CN111124953B (zh) * 2019-12-18 2021-04-27 海光信息技术股份有限公司 数据交换方法、装置、处理器及计算机系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04297935A (ja) * 1991-03-27 1992-10-21 Mitsubishi Electric Corp 入力装置および出力装置
JPH06205481A (ja) * 1992-12-28 1994-07-22 Fuji Xerox Co Ltd 時分割交換スイッチ
JP2000207276A (ja) * 1999-01-11 2000-07-28 Ricoh Co Ltd 画像形成装置
JP2004046392A (ja) * 2002-07-10 2004-02-12 Renesas Technology Corp Usbホスト制御回路
JP2004118407A (ja) * 2002-09-25 2004-04-15 Renesas Technology Corp 不揮発性半導体記憶装置
US20050160223A1 (en) * 2004-01-15 2005-07-21 Super Talent Electronics Inc. Dual-Mode Flash Storage Exchanger that Transfers Flash-Card Data to a Removable USB Flash Key-Drive With or Without a PC Host
JP2005316793A (ja) * 2004-04-30 2005-11-10 Tdk Corp フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007310760A (ja) * 2006-05-22 2007-11-29 Renesas Technology Corp 記憶装置
JP2008107924A (ja) * 2006-10-23 2008-05-08 Ricoh Co Ltd 画像形成装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055479A1 (en) 2002-11-21 2005-03-10 Aviad Zer Multi-module circuit card with inter-module direct memory access

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04297935A (ja) * 1991-03-27 1992-10-21 Mitsubishi Electric Corp 入力装置および出力装置
JPH06205481A (ja) * 1992-12-28 1994-07-22 Fuji Xerox Co Ltd 時分割交換スイッチ
JP2000207276A (ja) * 1999-01-11 2000-07-28 Ricoh Co Ltd 画像形成装置
JP2004046392A (ja) * 2002-07-10 2004-02-12 Renesas Technology Corp Usbホスト制御回路
JP2004118407A (ja) * 2002-09-25 2004-04-15 Renesas Technology Corp 不揮発性半導体記憶装置
US20050160223A1 (en) * 2004-01-15 2005-07-21 Super Talent Electronics Inc. Dual-Mode Flash Storage Exchanger that Transfers Flash-Card Data to a Removable USB Flash Key-Drive With or Without a PC Host
JP2005316793A (ja) * 2004-04-30 2005-11-10 Tdk Corp フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007310760A (ja) * 2006-05-22 2007-11-29 Renesas Technology Corp 記憶装置
JP2008107924A (ja) * 2006-10-23 2008-05-08 Ricoh Co Ltd 画像形成装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN7012002737; Axelson, Jan: USB Complete - Everything You Need to Develop Custom USB Peripherals, 3rd Edition , 2005, 22-25, 33-44, 61, 62, 80-84, 117-121頁, Lake view Research LLC *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013041456A (ja) * 2011-08-17 2013-02-28 Fujitsu Ltd 中継装置および中継方法
US9170739B2 (en) 2011-08-17 2015-10-27 Fujitsu Limited Relay apparatus and relay method
WO2014193376A1 (en) * 2013-05-30 2014-12-04 Hewlett-Packard Development Company, L.P. Separate memory controllers to access data in memory
US10691344B2 (en) 2013-05-30 2020-06-23 Hewlett Packard Enterprise Development Lp Separate memory controllers to access data in memory

Also Published As

Publication number Publication date
US8386725B2 (en) 2013-02-26
US20100217942A1 (en) 2010-08-26
CN101814011A (zh) 2010-08-25
CN101814011B (zh) 2014-06-18
JP5209535B2 (ja) 2013-06-12
DE102010008907A1 (de) 2010-10-07

Similar Documents

Publication Publication Date Title
CN101876925B (zh) 内存镜像处理方法、装置和系统
JP5600517B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2007087388A (ja) メモリコントローラ及びそれを含んだデータ処理システム
KR20060113248A (ko) 낸드 플래시 메모리 제어 장치 및 방법
JP5209535B2 (ja) Usbホストコントローラ及びusbホストコントローラの制御方法
JP2010176442A (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
JP2016045899A (ja) データ転送制御装置
US8756356B2 (en) 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
US9146693B2 (en) Storage control device, storage system, and storage control method
JPH10334037A (ja) 通信dma装置
JP2018106222A (ja) 情報処理装置及び通信制御方法
JP4723334B2 (ja) Dma転送システム
CN110399322B (zh) 一种数据传输方法及乒乓dma架构
TWI230863B (en) Input/output system and method for transferring control and data, and arbiter for coordinating data communication
JP5780768B2 (ja) 情報処理装置、その制御方法、およびプログラム
US8296481B2 (en) Device and method for improving transfer efficiency of odd number of data blocks
JP3959407B2 (ja) 画像処理装置及び画像処理システム
JP2008299747A (ja) Usbホストシステム及び転送データの転送方法
JP4743110B2 (ja) データ処理装置
JP5889372B2 (ja) 情報処理装置、情報処理システム、情報処理方法、制御装置および制御方法
JP2007011884A (ja) データ転送装置
JP2014081952A (ja) ホストコントローラ
JP2009169599A (ja) バス装置
JP2012094081A (ja) バス調停回路及びバス調停方法
JP2008059195A (ja) インタフェース方法及びデータ処理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120912

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: 20130205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees