JP2014052981A - Usbペリフェラル装置 - Google Patents

Usbペリフェラル装置 Download PDF

Info

Publication number
JP2014052981A
JP2014052981A JP2012198883A JP2012198883A JP2014052981A JP 2014052981 A JP2014052981 A JP 2014052981A JP 2012198883 A JP2012198883 A JP 2012198883A JP 2012198883 A JP2012198883 A JP 2012198883A JP 2014052981 A JP2014052981 A JP 2014052981A
Authority
JP
Japan
Prior art keywords
data
time
usb
peripheral device
erdy
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
JP2012198883A
Other languages
English (en)
Inventor
Kentaro Oi
賢太郎 大井
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 JP2012198883A priority Critical patent/JP2014052981A/ja
Publication of JP2014052981A publication Critical patent/JP2014052981A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】USBによるデータ転送が間欠的に発生する場合は、USB装置が低電力ステートに滞在出来る時間が短くなる。したがって、USBホスト装置側コントローラと、USBペリフェラル装置とにおいて、消費電力が大きくなる。
【解決手段】USBペリフェラル装置において、データ処理速度と、データ転送速度との差に応じてERDY TPの送信タイミングを制御し、ステート遷移の回数を減らすことで、消費電力を低減させることが可能となる。
【選択図】図6

Description

本発明はUSB(Universal Serial Bus:ユニバーサル・シリアル・バス)ペリフェラル装置に関し、例えば、USB3.0のSuper Speed(スーパースピード)モードによるデータ転送を行うUSBペリフェラル装置などに好適に利用出来るものである。
USBのプロトコルにおいて、データの転送が一定期間発生しない場合には、USBホスト装置側コントローラと、USBペリフェラル装置との双方を、低電力ステートに遷移させることが可能である。
ここで、USB3.0のSuper Speedによるデータ転送において、USBペリフェラル装置側が転送データを読み出す処理速度や、転送データを書き込む処理速度が、USBデータ転送速度と比較して遅い場合について考える。すなわち、1パケット分のデータをUSBによって転送完了するまでに次の1パケット分の転送データの準備が完了しない場合について考える。このような場合において、USBによるデータ転送が1パケット分ずつ完了する度に、フローコントロール状態への遷移と、USBペリフェラル装置からUSBホスト側装置へのERDY TP(Endpoint ReaDY Transaction Packet:転送準備完了通知トランザクションパケット)送信と、USBによる1パケット分のデータ転送とが、この順番に繰り返されることになる。
特開2004−302778号公報 特開2005−190202号公報
Universal Serial Bus 3.0 Specification Rev. 1.0 November 12, 2008
ただし、ステートの遷移には無視出来ない時間が必要とされる。このため、USBによるデータ転送が間欠的に発生する場合は、各装置が低電力ステートに滞在出来る時間が短くなる。したがって、USBホスト装置側コントローラと、USBペリフェラル装置とにおいて、消費電力が大きくなる。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
以下に、(発明を実施するための形態)で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、(特許請求の範囲)の記載と(発明を実施するための形態)との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、(特許請求の範囲)に記載されている発明の技術的範囲の解釈に用いてはならない。
一実施の形態によれば、USBペリフェラル装置(2)において、データ処理速度と、データ転送速度との差に応じてERDY TPの送信タイミングを制御し、ステート遷移の回数を減らすことで、消費電力を低減させることが可能となる。
前記一実施の形態によれば、USBペリフェラル装置において、データ転送速度を下げずに消費電力を低減させることが出来る。
図1は、従来技術によるUSBペリフェラル装置の構成の一例を示す機能ブロック図である。 図2は、図1に示した従来技術によるUSBペリフェラル装置からUSBホスト側装置に向けたデータ送信において、USBペリフェラル装置が送信パケットを準備する速度が、USBホスト側装置へのデータ転送速度と比較して遅い場合の一例を示すタイムチャートである。 図3は、図1に示した従来技術によるUSBペリフェラル装置からUSBホスト側装置に向けたデータ送信において、USBペリフェラル装置が送信パケットを準備する速度が、USBホスト側装置へのデータ転送速度と比較して速い場合の一例を示すタイムチャートである。 図4は、USBホスト側装置から図1に示した従来技術によるUSBペリフェラル装置に向けたデータ送信において、USBペリフェラル装置が受信パケットを処理する速度が、USBホスト側装置からのデータ転送速度と比較して遅い場合の一例を示すタイムチャートである。 図5は、USBホスト側装置から図1に示した従来技術によるUSBペリフェラル装置に向けたデータ送信において、USBペリフェラル装置が受信パケットを処理する速度が、USBホスト側装置からのデータ転送速度と比較して速い場合の一例を示すタイムチャートである。 図6は、本発明の実施形態によるUSBペリフェラル装置の構成の一例を示す機能ブロック図である。 図7は、一実施形態によるUSBペリフェラル装置を制御する方法の、USBペリフェラル装置からUSBホスト側装置に向けたデータ送信を行う場合の一例を示すフローチャートである。 図8は、一実施形態によるUSBペリフェラル装置において、USBホスト側装置に向けて送信するデータを準備する処理速度が、送信処理速度よりも遅いことを認識するまでの工程の一例を示すタイムチャートである。 図9は、一実施形態によるUSBペリフェラル装置を制御する方法の、USBホスト側装置からUSBペリフェラル装置に向けたデータ送信を行う場合の一例を示すフローチャートである。 図10は、一実施形態によるUSBペリフェラル装置において、USBホスト側装置からのデータ受信速度よりも、USBペリフェラル装置側の受信データ処理速度の方が遅いことを認識するまでの工程の一例を示すタイムチャートである。 図11は、一実施形態によるUSBペリフェラル装置において、USBホスト側装置に向けたデータ送信を行う際にERDY TP送信タイミングの調整を行った場合の一例を示すタイムチャートである。 図12は、一実施形態によるUSBペリフェラル装置において、USBホスト側装置からのデータ受信を行う際にERDY TP送信タイミングの調整を行った場合の一例を示すタイムチャートである。 図13は、本発明による一実施形態によるUSBペリフェラル装置でERDY TP送信タイミングを調整することで得られる、ステート遷移に関わる効果を示すタイムチャートである。
添付図面を参照して、本発明によるUSBペリフェラル装置と、このUSBペリフェラル装置の制御方法とを実施するための形態を以下に説明する。
本発明によるUSBペリフェラル装置およびその制御方法の特徴について説明するために、それらの比較対象となる従来技術によるUSBペリフェラル装置およびその動作について説明する。
図1は、従来技術によるUSBペリフェラル装置の構成の一例を示す機能ブロック図である。図1に示したUSBペリフェラル装置20は、一方ではUSB伝送線路10を介して図示しないUSBホスト側装置に接続されており、他方ではCPU(Central Processing Unit:中央演算装置)30などに接続されている。
図1に示したUSBペリフェラル装置20は、物理層制御部201と、リンク層制御部202と、プロトコル層制御部203と、バッファRAM(Randam Access Memory:ランダム・アクセス・メモリ)204とを含んでいる。プロトコル層制御部203は、バッファ制御部2031を含んでいる。バッファRAM 204は、図示されない複数の記憶領域を含んでいる。図1に示した例では、バッファRAM 204は合計3つの記憶領域を含んでおり、それぞれの記憶領域が1パケット分のデータを格納出来るものとする。
物理層制御部201は、一方ではUSB伝送線路10に接続されており、他方ではリンク層制御部202に接続されている。リンク層制御部202は、一方では物理層制御部201に接続されており、他方ではバッファ制御部2031に接続されている。バッファ制御部2031は、リンク層制御部202と、バッファRAM 204と、CPU 30とに接続されている。
図2は、図1に示した従来技術によるUSBペリフェラル装置20からUSBホスト側装置に向けたデータ送信において、USBペリフェラル装置20が送信パケットを準備する速度が、USBホスト側装置へのデータ転送速度と比較して遅い場合の一例を示すタイムチャートである。図2に示したタイムチャートは、上から順に第1〜9のタイムチャート(A)、(B1)〜(B3)および(C)〜(G)を含んでいる。
図2において、第1のタイムチャート(A)は、データ転送の準備がされるデータの時間変化を表している。図2に示した例では、時刻t1まではデータ1の準備がされており、時刻t1から時刻t3まではデータ2の準備がされており、時刻t3から時刻t5まではデータ3の準備がされており、時刻t5以降はデータ4の準備がされている。
図2において、第2〜4のタイムチャート(B1)〜(B3)は、ハイ状態であればバッファRAM 204の第1〜3の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファRAM 204の対応する記憶領域が書き込み可能状態であることを表している。図2に示した例では、バッファRAM 204の第1の記憶領域は、時刻t1から時刻t2まではデータ1をバッファリングしており、時刻t3から時刻t4まではデータ2をバッファリングしており、時刻t5から時刻t6まではデータ3をバッファリングしている。また、図2に示した例では、バッファRAM 204の第2および第3の記憶領域は、ずっと書き込み可能状態のままである。
図2において、第5のタイムチャート(C)は、ERDY TPがUSBペリフェラル装置20からUSBホスト側装置に向けて送信されるタイミングを表している。図2に示した例では、時刻t1、t3およびt5においてERDY TPが送信されている。
図2において、第6のタイムチャート(D)は、転送要求信号がUSBホスト側装置からUSBペリフェラル装置20に向けて送信されるタイミングを表している。図2に示した例では、ERDY TPが送信される度に転送要求信号が送信されている。
図2において、第7のタイムチャート(E)は、USBペリフェラル装置20からUSBホスト側装置に向けてデータが送信されるタイミングを表している。図2に示した例では、転送要求信号が送信される度にデータが送信されている。なお、ここで送信されるデータは、基本的には、その時にバッファRAM 204にバッファリングされているデータのうち最も早くからバッファリングされているものである。
図2において、第8のタイムチャート(F)は、ハイ状態であればUSBペリフェラル装置20がフローコントロール状態に遷移している期間を表している。図2に示した例では、USBペリフェラル装置20は時刻t1までと、時刻t2から時刻t3までと、時刻t4から時刻t5までと、時刻t6以降とにおいて、フローコントロール状態に遷移している。
図2において、第9のタイムチャート(G)は、USBペリフェラル装置20の状態において、通常ステート(U0)と、低電力ステート(U1)との間で行われるステート遷移を表している。図2に示した例では、USBペリフェラル装置20は、時刻t1から時刻t2までと、時刻t3から時刻t4までと、時刻t5から時刻t6までとにおいて、通常ステート(U0)に遷移している。なお、USBペリフェラル装置20は、通常ステート(U0)ではない期間に低電力ステート(U1)に遷移するが、その前後における無視出来ない時間をステート遷移に費やす必要がある。したがって、例えば、時刻t2から時刻t3までの期間において低電力ステート(U1)に遷移出来る時間は、時刻t2から時刻t3までの期間よりも短い。
図2の例を用いて、従来技術によるUSBペリフェラル装置20の動作の一例について説明する。まず、USBペリフェラル装置20は、USBホスト側装置に転送するデータ1の準備を、時刻t1までに完了する。その結果、時刻t1において、バッファRAM 204の第1の記憶領域には、データ1が読み出し可能な状態で格納されている。
次に、時刻t1において、USBペリフェラル装置20は、USBホスト側装置に向けてERDY TPを送信する。USBホスト側装置は、ERDY TPを受信すると、USBペリフェラル装置20に向けて転送要求信号を送信する。USBペリフェラル装置20は、転送要求信号を受信すると、バッファRAM 204に格納されているデータ1をUSBホスト側装置に向けて送信する。
時刻t2において、データ1の送信は完了するが、次に転送するデータ2の準備はまだ完了していない。この場合、USBペリフェラル装置20はフローコントロール状態に遷移する。また、USBホスト側装置は、次のERDY TPを受信するまで転送要求信号を発送しない。その結果として、USBペリフェラル装置20は、通常ステート(U0)から低電力ステート(U1)に遷移する。この遷移には、上述したとおり、無視出来ない時間が必要である。
時刻t3において、データ2の準備が完了する。USBペリフェラル装置20は、次のERDY TPを送信する前に、低電力ステート(U1)から通常ステート(U0)に遷移する。この遷移には、上述したとおり、無視出来ない時間が必要である。
以下同様に繰り返すことで、従来技術によるUSBペリフェラル装置20からUSBホスト側装置へのデータ転送が行われる。
図2に示したように、従来技術によるUSBペリフェラル装置20が送信パケットを処理する速度が、USBホスト側装置とのデータ転送速度よりも低い場合は、1パケットのデータ送信が完了した後、次のデータ送信の準備が完了するまでの間に通常ステート(U0)から低電力ステート(U1)に遷移して、データ送信の準備が完了するタイミングに合わせて再び通常ステート(U0)に戻る。
図3は、図1に示した従来技術によるUSBペリフェラル装置20からUSBホスト側装置に向けたデータ送信において、USBペリフェラル装置20が送信パケットを準備する速度が、USBホスト側装置へのデータ転送速度と比較して速い場合の一例を示すタイムチャートである。図3に示したタイムチャートは、上から順に第1〜8のタイムチャート(A)、(B1)〜(B3)および(C)〜(F)を含んでいる。
図3に示した第1〜8のタイムチャート(A)、(B1)〜(B3)および(C)〜(F)は、図2に示した第1〜8のタイムチャート(A)、(B1)〜(B3)および(C)〜(F)と、それぞれ同じデータ、信号または状態を表している。なお、図3に示した例では、USBペリフェラル装置20が低電力ステート(U1)に遷移しないので、さらなる詳細な説明を省略する。
図4は、USBホスト側装置から図1に示した従来技術によるUSBペリフェラル装置に向けたデータ送信において、USBペリフェラル装置が受信パケットを処理する速度が、USBホスト側装置からのデータ転送速度と比較して遅い場合の一例を示すタイムチャートである。図4に示したタイムチャートは、上から順に第1〜8のタイムチャート(A)、(B1)〜(B3)および(C)〜(F)を含んでいる。
図4において、第1のタイムチャート(A)は、バッファRAM 204に格納されている受信データのうち処理されるデータの時間変化を表している。図4に示した例では、時刻t1まではデータ1の処理がされており、時刻t1から時刻t3まではデータ2の処理がされており、時刻t3から時刻t5まではデータ3の処理がされており、時刻t5以降はデータ4の処理がされている。
図4において、第2〜4のタイムチャート(B1)〜(B3)は、ハイ状態であればバッファRAM 204の第1〜3の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファRAM 204の対応する記憶領域が書き込み可能状態であることを表している。図4に示した例では、バッファRAM 204の第1の記憶領域は、時刻t5まではデータ3を格納しており、時刻t6以降はデータ6を格納しており、その他の期間は書き込み可能状態である。同じく第2の記憶領域は、時刻t3まではデータ2を格納しており、時刻t4以降はデータ5を格納しており、その他の期間は書き込み可能状態である。同じく第3の記憶領域は、時刻t1まではデータ1を格納しており、時刻t2以降はデータ4を格納しており、その他の期間は書き込み可能状態である。
図4において、第5のタイムチャート(C)は、ERDY TPがUSBペリフェラル装置20からUSBホスト側装置に向けて送信されるタイミングを表している。図4に示した例では、時刻t1、t3およびt5においてERDY TPが送信されている。
図4において、第6のタイムチャート(D)は、USBホスト側装置からUSBペリフェラル装置20に向けてデータが送信されるタイミングを表している。図4に示した例では、ERDY TPが送信される度にデータが送信されている。USBホスト側装置から送信されたデータは、USBペリフェラル装置20のバッファRAM 204のうち書き込み可能状態な記憶領域に格納された後、適宜処理される。
図4において、第7のタイムチャート(E)は、ハイ状態であればUSBペリフェラル装置20がフローコントロール状態に遷移している期間を表している。図4に示した例では、USBペリフェラル装置20は時刻t1までと、時刻t2から時刻t3までと、時刻t4から時刻t5までと、時刻t6以降とにおいて、フローコントロール状態に遷移している。
図4において、第8のタイムチャート(F)は、USBペリフェラル装置20の状態において、通常ステート(U0)と、低電力ステート(U1)との間で行われるステート遷移を表している。図4に示した例では、USBペリフェラル装置20は、時刻t1から時刻t2までと、時刻t3から時刻t4までと、時刻t5から時刻t6までとにおいて、通常ステート(U0)に遷移している。なお、USBペリフェラル装置20は、通常ステート(U0)ではない期間に低電力ステート(U1)に遷移するが、その前後における無視出来ない時間をステート遷移に費やす必要がある。したがって、例えば、時刻t2から時刻t3までの期間において低電力ステート(U1)に遷移出来る時間は、時刻t2から時刻t3までの期間よりも短い。
図4の例を用いて、従来技術によるUSBペリフェラル装置の動作の他の一例について説明する。まず、バッファRAM 204が含む3つの記憶領域にはそれぞれデータ1、データ2およびデータ3が格納されている。
次に、時刻t1において、データ1の処理が完了すると、それまでデータ1を格納していた記憶領域が書き込み可能状態になる。ここで、データ2の処理が開始する。また、USBペリフェラル装置20からUSBホスト側装置に向けてERDY TPが送信される。USBホスト側装置は、ERDY TPを受信すると、USBペリフェラル装置20に向けてデータ4を送信する。
時刻t2において、データ4の送信が完了しても、データ2の処理は完了しておらず、バッファRAM 204の全ての記憶領域が書き込み不可能状態になっている。この場合、USBペリフェラル装置20はフローコントロール状態に遷移する。また、USBペリフェラル装置はさらなるERDY TPを発送せず、USBホスト側装置はさらなるデータを送信しない。その結果として、USBペリフェラル装置20は、通常ステート(U0)から低電力ステート(U1)に遷移する。この遷移には、上述したとおり、無視出来ない時間が必要である。
時刻t3において、データ2の準備が完了すると、バッファRAM 204に書き込み可能な記憶領域が出来る。USBペリフェラル装置20は、次のERDY TPを送信する前に、低電力ステート(U1)から通常ステート(U0)に遷移する。この遷移には、上述したとおり、無視出来ない時間が必要である。
以下同様に繰り返すことで、USBホスト側装置から従来技術によるUSBペリフェラル装置20に向けたデータ転送が行われる。
図4に示したように、USBペリフェラル装置20が受信パケットを処理する速度が、USBホスト側装置とのデータ転送速度よりも低い場合は、1パケットのデータ受信が完了した後、次のデータ受信の準備が完了するまでの間に通常ステート(U0)から低電力ステート(U1)に遷移して、データ受信の準備が完了するタイミングに合わせて再び通常ステート(U0)に戻る。
図5は、USBホスト側装置から図1に示した従来技術によるUSBペリフェラル装置に向けたデータ送信において、USBペリフェラル装置が受信パケットを処理する速度が、USBホスト側装置からのデータ転送速度と比較して速い場合の一例を示すタイムチャートである。図5に示したタイムチャートは、上から順に第1〜7のタイムチャート(A)、(B1)〜(B3)および(C)〜(E)を含んでいる。
図5に示した第1〜7のタイムチャート(A)、(B1)〜(B3)および(C)〜(E)は、図4に示した第1〜7のタイムチャート(A)、(B1)〜(B3)および(C)〜(E)と、それぞれ同じデータ、信号または状態を表している。なお、図5に示した例では、USBペリフェラル装置20が低電力ステート(U1)に遷移しないので、さらなる詳細な説明を省略する。
以上に説明したように、USBペリフェラル装置20の消費電力を低減させるためには、低電力ステート(U1)に滞在出来る時間を極力長くすることが必要である。このとき、通常ステート(U0)から低電力ステート(U1)に遷移するための時間と、戻るための時間とを加味する必要がある。その理由は、USBペリフェラル装置20で送信データまたは受信データを処理する速度が、USBホスト側装置とのデータ転送速度よりも低い場合に、USBによるデータ転送が間欠的に発生して、低電力ステート(U1)に滞在出来る時間が短くなり、消費電力を低減出来なくなるからである。
(実施形態)
一実施形態によるUSBペリフェラル装置およびその制御方法では、ERDY TPの送信タイミングを所定の条件下において遅らせるアルゴリズムを用いてフロー状態を維持し、低電力ステート(U1)に滞在出来る時間を延ばすことによって、転送効率を下げずに消費電力を低減させる。この条件には、USBペリフェラル装置における送受信データの処理速度が、USBホスト側装置におけるデータ転送速度よりも遅いことが含まれる。
なお、USBペリフェラル装置における送受信データの処理速度が、USBホスト側装置におけるデータ転送速度よりも速い場合は、ERDY TPの送信タイミングを遅らせない方が、転送効率や消費電力などの面で有利となる。したがって、このような場合に、一実施形態によるアルゴリズムは、データ転送のスケジューリングや、低電力状態への遷移を行うタイミングなどを、USBホストコントローラ側に委ねる。
図6は、本発明の実施形態によるUSBペリフェラル装置の構成の一例を示す機能ブロック図である。図6に示したUSBペリフェラル装置2は、一方ではUSB伝送線路1を介して図示しないUSBホスト側装置に接続されており、他方ではCPU 3などに接続されている。
図6に示したUSBペリフェラル装置2は、物理層制御部21と、リンク層制御部22と、プロトコル層制御部23と、バッファRAM 24とを含んでいる。プロトコル層制御部23は、バッファ制御部231と、転送速度監視制御部232と、ERDY TP送信タイミング制御部233とを含んでいる。バッファRAM 24は、図示しない第1〜3の記憶領域を含んでいる。ここで、バッファRAM 24が含む記憶領域の総数はあくまでも一例に過ぎず、自由に変更可能である。
バッファ制御部231は、フローコントロール状態遷移検出部231aと、フローコントロール遷移通知信号生成部231bと、転送ステータス信号生成部231cと、ERDY TP送信部231dと、転送終了通知信号生成部231eとを含んでいる。
転送速度監視制御部232は、第1受信部232aと、第2受信部232bと、カウンタ部232cと、転送速度通知信号生成部232dとを含んでいる。
ERDY TP送信タイミング制御部233は、第1受信部233aと、第2受信部233bと、ERDY TP送信タイミング変更指示信号生成部233cとを含んでいる。
図6に示したUSBペリフェラル装置2の構成要素の接続関係について説明する。物理層制御部21は、USB伝送線路1と、リンク層制御部22とに接続されている。リンク層制御部22は、物理層制御部21と、バッファ制御部231に接続されている。バッファ制御部231は、リンク層制御部22と、転送速度監視制御部232と、ERDY TP送信タイミング制御部233と、バッファRAM 24とに接続されており、さらに、図示しない外部バスなどを介してCPU 3に接続されている。転送速度監視制御部232は、バッファ制御部231と、ERDY TP送信タイミング制御部233とに接続されている。ERDY TP送信タイミング制御部233は、バッファ制御部231と、転送速度監視制御部232とに接続されている。バッファRAM 24は、バッファ制御部231に接続されている。CPU 3は、バッファ制御部231に、図示しない外部バスなどを介して接続されている。
図6に示したUSBペリフェラル装置2の構成要素の動作について説明する。USBペリフェラル装置2は、USB伝送線路1を介して、USBホスト側装置とのデータ転送を行う。物理層制御部21は、USBレイヤにおける物理層の制御を行う。リンク層制御部22は、USBレイヤにおけるリンク層の制御を行う。プロトコル層制御部23は、USBレイヤにおけるプロトコル層の制御を行う。バッファRAM 24は、プロトコル層制御部23と送受信するデータを入出力して格納する。
バッファ制御部231は、CPU 3と、バッファRAM 24と、リンク層制御部22とに対して送受信データの入出力を行う。フローコントロール状態遷移検出部231aは、フローコントロール状態への遷移を検出する。フローコントロール遷移通知信号生成部231bは、フローコントロール遷移通知信号S2を生成し、転送速度監視制御部232に向けて出力する。転送ステータス信号生成部231cは、転送ステータス信号S1を生成し、転送速度監視制御部232に向けて出力する。転送終了通知信号生成部231eは、転送終了通知信号S4を生成し、ERDY TP送信タイミング制御部233に向けて出力する。
転送速度監視制御部232は、送信パケットの準備中または受信パケットの処理中にフローコントロール状態に遷移したかどうかを監視する。転送速度監視制御部232は、第1受信部232aを介して転送ステータス信号S1を入力し、第2受信部232bを介してフローコントロール遷移通知信号S2を入力する。転送速度通知信号生成部232dは、転送速度通知信号S3を生成し、ERDY TP送信タイミング制御部233に向けて出力する。
ERDY TP送信タイミング制御部233は、USBペリフェラル装置2がデータ送受信の準備が出来たことをUSBホスト側装置に通知するためのERDY TPを、本発明で提案するアルゴリズムに従って変更する。ERDY TP送信タイミング制御部233は、第1受信部233aを介して転送終了通知信号S4を入力し、第2受信部233bを介して転送速度通知信号S3を入力する。ERDY TP送信タイミング変更指示信号生成部233cは、ERDY TP送信タイミング変更指示信号S5を生成し、ERDY TP送信部231dに向けて出力する。
ERDY TP送信部231dは、ERDY TP送信タイミング変更指示信号S5に基づくタイミングで、USBホスト側装置に向けてERDY TPを送信する。リンク層制御部22は、プロトコル層制御部23から送受信するデータを入出力し、物理層制御部21に物理的な転送レベルに変換した送受信データを入出力する。物理層制御部21は、リンク層制御部22より物理的な転送レベルに変換された送受信データを入出力し、USB伝送線路1を介して外部のUSBホスト側装置とデータの送受信を行う。
図6に示したUSBペリフェラル装置2の全体的な動作、すなわち本発明によるUSBペリフェラル装置の制御方法について説明する。ここで、USBペリフェラル装置2からUSBホスト側装置に向けてデータを送信するIN転送と、USBホスト側装置からUSBペリフェラル装置2に向けてデータを送信するOUT転送とに分けて説明する。また、IN転送およびOUT転送のそれぞれにおいて、USBペリフェラル装置における送受信データの処理速度が、USBホスト側装置における送受信データの転送速度よりも遅いことを、検出するまでと、検出してからとに分けて説明する。
まず、IN転送において速度差を検出するまでの過程について説明する。図7は、一実施形態によるUSBペリフェラル装置を制御する方法の、USBペリフェラル装置からUSBホスト側装置に向けたデータ送信を行う場合の一例を示すフローチャートである。図7に示したフローチャートは、第1〜8のステップSI1〜SI8を含んでいる。
図8は、一実施形態によるUSBペリフェラル装置において、USBホスト側装置に向けて送信するデータを準備する処理速度が、送信処理速度よりも遅いことを認識するまでの工程の一例を示すタイムチャートである。図8に示したタイムチャートは、第1〜9のタイムチャート(A)、(B1)〜(B3)、(C)〜(G)を含んでいる。
図8において、第1のタイムチャート(A)は、データ転送の準備がされるデータの時間変化を表している。図8に示した例では、時刻t1まではデータ1の準備がされており、時刻t1から時刻t3まではデータ2の準備がされており、時刻t3から時刻t5まではデータ3の準備がされており、時刻t5から時刻t7まではデータ4の準備がされており、時刻t7以降はデータ5の準備がされている。
図8において、第2〜4のタイムチャート(B1)〜(B3)は、ハイ状態であればバッファRAM 24の第1〜3の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファRAM 24の対応する記憶領域が書き込み可能状態であることを表している。図8に示した例では、バッファRAM 24の第1の記憶領域は、時刻t1から時刻t2まではデータ1をバッファリングしており、その他の期間は書き込み可能状態である。バッファRAM 24の第2の記憶領域は、時刻t3から時刻t4まではデータ2をバッファリングしており、その他の期間は書き込み可能状態である。バッファRAM 24の第3の記憶領域は、時刻t5から時刻t6まではデータ3をバッファリングしており、その他の期間は書き込み可能状態である。
図8において、第5のタイムチャート(C)は、ERDY TPがUSBペリフェラル装置2からUSBホスト側装置に向けて送信されるタイミングを表している。図8に示した例では、時刻t1、t3、t5およびt7においてERDY TPが送信されている。
図8において、第6のタイムチャート(D)は、転送要求信号がUSBホスト側装置からUSBペリフェラル装置2に向けて送信されるタイミングを表している。図8に示した例では、ERDY TPが送信される度に転送要求信号が送信されている。
図8において、第7のタイムチャート(E)は、USBペリフェラル装置2からUSBホスト側装置に向けてデータが送信されるタイミングを表している。図8に示した例では、転送要求信号が送信される度にデータが送信されている。なお、ここで送信されるデータは、基本的には、その時にバッファRAM 24にバッファリングされているデータのうち最も早くからバッファリングされているものである。
図8において、第8のタイムチャート(F)は、ハイ状態であればUSBペリフェラル装置2がフローコントロール状態に遷移している期間を表している。図8に示した例では、USBペリフェラル装置2は時刻t1までと、時刻t2から時刻t3までと、時刻t4から時刻t5までと、時刻t6から時刻t7までとにおいて、フローコントロール状態に遷移している。
図8において、第9のタイムチャート(G)は、カウンタ部232cでカウントされる連続遷移カウント値の時間変化を表している。図8の例では、この連続遷移カウント値は時刻t3までは0であり、時刻t3から時刻t5までは1であり、時刻t5から時刻t7までは2であり、時刻t7以降は3である。
図7および図8の例を用いて、一実施形態によるUSBペリフェラル装置2の動作のうち、すなわち一実施形態によるUSBペリフェラル装置2の制御方法のうち、IN転送においてUSBペリフェラル装置2の送受信データ処理速度がUSBホスト側装置のデータ転送速度より低いことを検出する場合の一例について説明する。まず、ステップSI1を実行する。
ステップSI1において、送信データの準備が行われる。より具体的には、例えば、バッファ制御部231が、CPU 3からデータ1を読み出して、バッファRAM 24に含まれる第1の記憶領域に書き込んでも良い。このステップSI1は、図8に示した例では、例えば時刻t1までの期間に対応する。その結果、時刻t1において、バッファRAM 24のうち、図8に示した第2のタイムチャート(B1)に対応する第1の記憶領域に、データ1が読み出し可能に格納される。なお、詳細は後述するが、バッファRAM 24に送信未了データが既に格納されている場合には、その送信処理が並行して行われる。ステップSI1の次には、ステップSI2が実行される。
ステップSI2において、フローコントロール状態遷移検出部231aが、送信データ準備中にフローコントロール状態に遷移したかどうかを検出する。このような遷移があった場合(Yes)はステップSI3が実行され、このような遷移がなかった場合(No)はステップSI4が実行される。なお、図8に示した例では、第8のタイムチャート(F)に示したとおり、時刻t1においてフローコントロール状態が終了する。そこで、ステップSI3について説明する前に、ステップSI4について説明する。
ステップSI4において、連続遷移カウンタの初期化が行われる。より具体的には、例えば、転送速度監視制御部232が、カウンタ部232cの連続遷移カウント値を0に初期化しても良い。図8に示した例では、第9のタイムチャート(G)に示したように、連続遷移カウント値は最初から0になっているが、時刻t1で改めて0に初期化されている。ステップSI4の次には、ステップSI5が実行される。
ステップSI5において、連続遷移カウンタの値が所定の基準値nに達したかどうかの判定が行われる。より具体的には、例えば、転送速度監視制御部232が、カウンタ部232cの連続遷移カウント値を読み出して、基準値nと比較しても良い。基準値nの値は適宜に設定可能であるが、ここでは一例として、基準値nが3に設定されている場合について説明する。ステップSI5の次には、カウンタ値が基準値n以上である場合(Yes)にはステップSI6が実行され、その他の場合(No)にはステップSI7が実行される。なお、図8に示した例では、第9のタイムチャート(G)に示したように、時刻t1における連続遷移カウント値は0であって、基準値nに達していない。そこで、ステップSI6について説明する前に、ステップSI7について説明する。
ステップSI7において、送信未了データがあるかどうかの判定が行われる。より具体的には、例えば、バッファ制御部231が、バッファRAM 24に送信未了データが残っているかどうかを検出しても良い。そして、この検出の結果、送信未了データが残っていなければ、転送終了通知信号生成部231eが転送終了通知信号S4を生成し、ERDY TP送信タイミング制御部233の第1受信部233aに向けて出力しても良い。ステップSI7の次には、送信未了データが無い場合(No)にはステップSI8が実行され、その他の場合(Yes)にはステップSI1に戻る。なお、図8に示した例では、第2のタイムチャート(B1)に示したように、時刻t1においてデータ1が送信未了データとしてバッファRAM 24に残っている。そこで、ステップSI8について説明する前に、図8に示した時刻t1においてステップSI1に戻ることについて説明する。
図8に示した時刻t1において、ステップSI1が再度実行されると、送信データとしてデータ1に続くデータ2の準備が始まる。より具体的には、前述したデータ1の準備と同様に、例えば、バッファ制御部231がデータ2をCPU 3から読み出して、バッファRAM 24の第2の記憶領域に書き込んでも良い。
なお、時刻t1において、バッファRAM 24にはデータ1が送信未了データとして格納されている。したがって、今回のステップSI1では、データ2の準備と並行して、データ1の送信処理が実行される。図8に示した例によると、より具体的には、まず、USBペリフェラル装置2からUSBホスト側装置に向けて、第5のタイムチャート(C)に示したようにERDY TPが送信される。次に、このERDY TPを受信したUSBホスト側装置から、USBペリフェラル装置2に向けて、第6のタイムチャート(D)に示したように転送要求信号が送信される。次に、転送要求信号を受信したUSBペリフェラル装置2から、USBホスト側装置に向けて、第7のタイムチャート(E)に示したようにデータ1が送信される。データ1の送信が完了した時刻t2において、USBペリフェラル装置2は、第8のタイムチャート(F)に示したように、フローコントロール状態に遷移する。
図8に示した例では、データ1の送信と並行して行われているデータ2の準備は時刻t3に完了する。ステップSI1が時刻t3に完了すると、前述のとおり、その次にはステップSI2が実行される。
時刻t2において、送信データとしてのデータ2は準備中であり、かつ、USBペリフェラル装置2はフローコントロール状態に遷移した。したがって、ステップSI2の判定結果は「Yes」となる。より具体的には、例えば、時刻t2において、フローコントロール遷移通知信号生成部231bがフローコントロール遷移通知信号S2を生成し、転送速度監視制御部232が第1受信部232aを介してこのフローコントロール遷移通知信号S2を受信しても良い。また、時刻t3において、転送ステータス信号生成部231cが転送速度通知信号S3を生成し、転送速度監視制御部232が第2受信部232bを介してこの転送速度通知信号S3を受信しても良い。さらに、転送速度監視制御部232は、時刻t2においてフローコントロール遷移通知信号S2が受信され、その後の時刻t3において転送速度通知信号S3が受信された結果として、「送信データ準備中にフローコントロール状態に遷移した」と判定しても良い。ステップSI2の次には、ステップSI3が実行される。
ステップSI3において、連続遷移カウンタのインクリメントが行われる。より具体的には、例えば、転送速度監視制御部232がカウンタ部232cの連続遷移カウント値をインクリメントしても良い。なお、この動作は、図8に示した例では、第9のタイムチャート(G)に示したように、時刻t3、時刻t5、時刻t7などで実行される。ステップSI3の次には、ステップSI5が実行される。
図8に示した例では、時刻t3の時点ではまだ連続遷移カウンタの値が所定の基準値nに達しておらず、かつ、送信未了データとしてデータ2がバッファRAM 24に残っている。したがって、ステップSI3の後には、前述の場合と同様に、ステップSI5、SI6およびSI7を経て、ステップSI1に戻る。
図8に示した例では、このようなループがさらに2回繰り返されて、時刻t7に到達する際には、データ1〜3の送信が完了しており、データ4の準備も完了しており、連続遷移カウンタの値が所定の基準値n(=3)に達している状態が得られている。このとき、ステップSI5における判定結果が「Yes」となる。より具体的には、例えば、転送速度監視制御部232がカウンタ部232cの連続遷移カウント値を所定の基準値nと比較し、その比較結果に応じて転送速度通知信号生成部232dが転送速度通知信号S3を生成し、ERDY TP送信タイミング制御部233がその第2受信部233bを介してこの転送速度通知信号S3を受信しても良い。その次にはステップSI6が実行される。
ステップSI6において、ERDY TPの送信タイミングが変更される。より具体的には、例えば、転送速度通知信号S3に応じて、ERDY TP送信タイミング変更指示信号生成部233cがERDY TP送信タイミング変更指示信号S5を生成し、バッファ制御部231に向けて出力する。ERDY TP送信部231dは、バッファ制御部231が入力したERDY TP送信タイミング変更指示信号S5に応じたタイミングで、ERDY TPをUSBホスト側装置に向けて送信する。ステップSI6の次には、ステップSI7が実行される。
なお、図8に示した例では、時刻t7以降も送信未了データがバッファRAM 24に残っている。さらにその後、データの送信が完了した際には、ステップSI7の次にステップSI8が実行される。
ステップSI8において、連続遷移カウンタが初期化され、また、ERDY TP送信タイミングも初期化される。これらの初期化を行う理由は、USB側装置とのデータ転送速度が、同じホストコントローラに接続されている他のUSBペリフェラル装置の状態などによって変化する可能性があるからである。
より具体的には、転送速度監視制御部232が転送ステータス信号S1に応じてカウンタ部232cの連続遷移カウント値を初期化しても良いし、ERDY TP送信タイミング変更指示信号生成部233cが転送終了通知信号S4に応じてERDY TP送信タイミングを初期化するERDY TP送信タイミング変更指示信号S5を生成し、バッファ制御部231に向けて出力しても良い。ステップSI8の次には、ステップSI1に戻る。
次に、OUT転送において速度差を検出するまでの過程について説明する。図9は、一実施形態によるUSBペリフェラル装置を制御する方法の、USBホスト側装置からUSBペリフェラル装置に向けたデータ送信を行う場合の一例を示すフローチャートである。図9に示したフローチャートは、第1〜8のステップSO1〜SO8を含んでいる。
図10は、一実施形態によるUSBペリフェラル装置において、USBホスト側装置からのデータ受信速度よりも、USBペリフェラル装置側の受信データ処理速度の方が遅いことを認識するまでの工程の一例を示すタイムチャートである。図10に示したタイムチャートは、第1〜8のタイムチャート(A)、(B1)〜(B3)、(C)〜(F)を含んでいる。
図10において、第1のタイムチャート(A)は、バッファRAM 24から処理されるデータの時間変化を表している。図10に示した例では、時刻t1まではデータ1の処理がされており、時刻t1から時刻t4まではデータ2の準備がされており、時刻t4から時刻t7まではデータ3の準備がされており、時刻t7から時刻t10まではデータ4の準備がされている。
図10において、第2〜4のタイムチャート(B1)〜(B3)は、ハイ状態であればバッファRAM 24の第1〜3の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファRAM 24の対応する記憶領域が書き込み可能状態であることを表している。図10に示した例では、バッファRAM 24の第1の記憶領域は、時刻t1まではデータ1をバッファリングしており、時刻t3から時刻t10まではデータ4をバッファリングしており、その他の期間は書き込み可能状態である。バッファRAM 24の第2の記憶領域は、時刻t4まではデータ2をバッファリングしており、時刻t6以降はデータ5をバッファリングしており、その他の期間は書き込み可能状態である。バッファRAM 24の第3の記憶領域は、時刻t7まではデータ3をバッファリングしており、時刻t9以降はデータ6をバッファリングしており、その他の期間は書き込み可能状態である。
図10において、第5のタイムチャート(C)は、ERDY TPがUSBペリフェラル装置2からUSBホスト側装置に向けて送信されるタイミングを表している。図10に示した例では、時刻t1、t4、t7およびt10においてERDY TPが送信されている。
図10において、第6のタイムチャート(D)は、USBホスト側装置からUSBペリフェラル装置2に向けてデータが送信されるタイミングを表している。図10に示した例では、ERDY TPが時刻t1に送信された直後、時刻t2においてデータ4が送信されている。同様に、ERDY TPが時刻t4に送信された直後、時刻t5においてデータ5が送信されている。同様に、ERDY TPが時刻t7に送信された直後、時刻t8においてデータ6が送信されている。なお、ここで送信されるデータは、例えば、その時にバッファRAM 24に含まれるうち最も早くから書き込み可能状態になっている記憶領域にバッファリングされても良い。
図10において、第7のタイムチャート(E)は、ハイ状態であればUSBペリフェラル装置2がフローコントロール状態に遷移している期間を表している。図10に示した例では、USBペリフェラル装置2は時刻t1までと、時刻t3から時刻t4までと、時刻t6から時刻t7までと、時刻t9から時刻t10までとにおいて、フローコントロール状態に遷移している。
図10において、第8のタイムチャート(F)は、カウンタ部232cにおける連続遷移カウント値の時間変化を表している。図10の例では、この連続遷移カウント値は時刻t4までは0であり、時刻t4から時刻t7までは1であり、時刻t7から時刻t9までは2であり、時刻t10以降は3である。
図9および図10の例を用いて、一実施形態によるUSBペリフェラル装置20の動作のうち、すなわち一実施形態によるUSBペリフェラル装置20の制御方法のうち、USBホスト側装置からUSBペリフェラル装置20へのデータ送信の一例について説明する。まず、ステップSO1を実行する。
ステップSO1において、受信データの処理が行われる。より具体的には、例えば、バッファ制御部231が、バッファRAM 24に含まれる第1の記憶領域にバッファリングされたデータ1を読み込んで、CPU 3に向けて送信しても良い。このステップSO1は、図10に示した例では、例えば時刻t1までの期間に対応する。その結果、時刻t1において、バッファRAM 24のうち、図10に示した第2のタイムチャート(B1)に対応する第1の記憶領域が書き込み可能状態になる。なお、詳細は後述するが、USBホスト側装置から受信するデータが残っている場合には、その受信処理が並行して行われる。ステップSO1の次には、ステップSO2が実行される。
ステップSO2において、フローコントロール状態遷移検出部231aが、受信データ処理中にフローコントロール状態に遷移したかどうかを検出する。このような遷移があった場合(Yes)はステップSO3が実行され、このような遷移がなかった場合(No)はステップSO4が実行される。なお、図10に示した例では、第7のタイムチャート(E)に示したとおり、時刻t1においてフローコントロール状態が終了する。そこで、ステップSO3について説明する前に、ステップSO4について説明する。
ステップSO4において、連続遷移カウンタの初期化が行われる。より具体的には、例えば、転送速度監視制御部232が、カウンタ部232cの連続遷移カウント値を0に初期化しても良い。図10に示した例では、第8のタイムチャート(F)に示したように、連続遷移カウント値は最初から0になっているが、時刻t1で改めて0に初期化されている。ステップSO4の次には、ステップSO5が実行される。
ステップSO5において、連続遷移カウンタの値が所定の基準値nに達したかどうかの判定が行われる。より具体的には、例えば、転送速度監視制御部232が、カウンタ部232cの連続遷移カウント値を読み出して、基準値nと比較しても良い。基準値nの値は適宜に設定可能であるが、ここでは一例として、基準値nが3に設定されている場合について説明する。ステップSO5の次には、カウンタ値が基準値n以上である場合(Yes)にはステップSO6が実行され、その他の場合にはステップSI7が実行される。なお、図10に示した例では、第8のタイムチャート(F)に示したように、時刻t1における連続遷移カウント値は0であって、基準値n(=3)に達していない。そこで、ステップSO6について説明する前に、ステップSO7について説明する。
ステップSO7において、最新の受信データが最終データであるかどうかの判定が行われる。より具体的には、例えば、バッファ制御部231が、USB規格で定義される変数「PacketPending」の値が0かどうかを検出しても良い。そして、この検出の結果、受信未了データが残っていなければ、転送終了通知信号生成部231eが転送終了通知信号S4を生成し、ERDY TP送信タイミング制御部233の第1受信部233aに向けて出力しても良い。ステップSO7の次には、受信未了データが無い場合(Yes)にはステップSO8が実行され、その他の場合(No)にはステップSO1に戻る。なお、図10に示した例では、第6のタイムチャート(D)に示したように、時刻t1以降もデータの受信は続く。そこで、ステップSO8について説明する前に、図10に示した時刻t1においてステップSO1に戻ることについて説明する。
図10に示した時刻t1において、ステップSO1が再度実行されると、バッファRAM 24にバッファリングされたデータ2の処理が始まる。より具体的には、前述したデータ1の処理と同様に、例えば、バッファ制御部231がバッファRAM 24に含まれる第2の記憶領域からデータ2を読み出して、CPU 3に向けて送信しても良い。
なお、時刻t1において、バッファRAM 24における第1の記憶領域は書き込み可能状態になっている。したがって、今回のステップSO1では、データ2の処理と並行して、データ4の受信処理が実行される。図10に示した例によると、より具体的には、まず、時刻t1において、USBペリフェラル装置2からUSBホスト側装置に向けて、第5のタイムチャート(C)に示したようにERDY TPが送信される。次に、時刻t2において、このERDY TPを受信したUSBホスト側装置から、USBペリフェラル装置2に向けて、第6のタイムチャート(D)に示したようにデータ4が送信される。データ4の送信が完了した時刻t3において、USBペリフェラル装置2は、第7のフローチャート(E)に示したように、フローコントロール状態に遷移する。
図10に示した例では、データ4の受信と並行して行われているデータ2の処理は、時刻t4に完了する。ステップSO1が時刻t4に完了すると、前述のとおり、その次にはステップSO2が実行される。
時刻t3において、受信済みデータとしてバッファRAM 24にバッファリングされているデータ2は処理中であり、かつ、USBペリフェラル装置2はフローコントロール状態に遷移する。したがって、ステップSO2の判定結果は「Yes」となる。より具体的には、例えば、時刻t3において、フローコントロール遷移通知信号生成部231bがフローコントロール遷移通知信号S2を生成し、転送速度監視制御部232が第1受信部232aを介してこのフローコントロール遷移通知信号S2を受信しても良い。また、時刻t3において、転送ステータス信号生成部231cが転送速度通知信号S3を生成し、転送速度監視制御部232が第2受信部232bを介してこの転送速度通知信号S3を受信しても良い。さらに、転送速度監視制御部232は、時刻t2においてフローコントロール遷移通知信号S2が受信され、その後の時刻t3において転送速度通知信号S3が受信された結果として、「送信データ準備中にフローコントロール状態に遷移した」と判定しても良い。ステップSO2の次には、ステップSO3が実行される。
ステップSO3において、連続遷移カウンタのインクリメントが行われる。より具体的には、例えば、転送速度監視制御部232がカウンタ部232cの連続遷移カウント値をインクリメントしても良い。なお、この動作は、図10に示した例では、第8のタイムチャート(F)に示したように、時刻t4、時刻t7、時刻t10などで実行される。ステップSO3の次には、ステップSO5が実行される。
図10に示した例では、時刻t3の時点ではまだ連続遷移カウンタの値が所定の基準値nに達しておらず、かつ、時刻t3以降もデータの受信が続く。したがって、ステップSO3の後には、前述の場合と同様に、ステップSO5、SO6およびSO7を経て、ステップSO1に戻る。
図10に示した例では、このようなループがさらに2回繰り返されて、時刻t10に到達する際には、データ1〜3の処理が完了しており、データ4〜6の受信も完了しており、連続遷移カウンタの値が所定の基準値n(=3)に達している状態が得られている。このとき、ステップSO5における判定結果が「Yes」となる。より具体的には、例えば、転送速度監視制御部232がカウンタ部232cの連続遷移カウント値を所定の基準値nと比較し、その比較結果に応じて転送速度通知信号生成部232dが転送速度通知信号S3を生成し、ERDY TP送信タイミング制御部233がその第2受信部233bを介してこの転送速度通知信号S3を受信しても良い。その次にはステップSO6が実行される。
ステップSO6において、ERDY TPの送信タイミングが変更される。より具体的には、例えば、転送速度通知信号S3に応じて、ERDY TP送信タイミング変更指示信号生成部233cがERDY TP送信タイミング変更指示信号S5を生成し、バッファ制御部231に向けて出力する。ERDY TP送信部231dは、バッファ制御部231が入力したERDY TP送信タイミング変更指示信号S5に応じたタイミングで、ERDY TPをUSBホスト側装置に向けて送信する。ステップSO6の次には、ステップSO7が実行される。
なお、図10に示した例では、時刻t10以降もデータの受信が続く。さらにその後、データの受信が完了した際には、ステップSO7の次にステップSO8が実行される。
ステップSO8において、連続遷移カウンタが初期化され、また、ERDY TP送信タイミングも初期化される。これらの初期化を行う理由は、USB側装置とのデータ転送速度が、同じホストコントローラに接続されている他のUSBペリフェラル装置の状態などによって変化する可能性があるからである。
より具体的には、転送速度監視制御部232が転送ステータス信号S1に応じてカウンタ部232cの連続遷移カウント値を初期化しても良いし、ERDY TP送信タイミング変更指示信号生成部233cが転送終了通知信号S4に応じてERDY TP送信タイミングを初期化するERDY TP送信タイミング変更指示信号S5を生成し、バッファ制御部231に向けて出力しても良い。ステップSO8の次には、ステップSO1に戻る。
次に、IN転送において速度差を検出した後の過程について説明する。図11は、一実施形態によるUSBペリフェラル装置において、USBホスト側装置に向けたデータ送信を行う際にERDY TP送信タイミングの調整を行った場合の一例を示すタイムチャートである。図11に示したタイムチャートは、第1〜9のタイムチャート(A)、(B1)〜(B3)および(C)〜(G)を含んでいる。
図11において、第1のタイムチャート(A)は、データ転送の準備がされるデータの時間変化を表している。図11に示した例では、時刻t1まではデータ1の準備がされており、時刻t1から時刻t2まではデータ2の準備がされており、時刻t2から時刻t3まではデータ3の準備がされており、時刻t6以降はデータ4の準備がされており、その後さらにデータ5の準備がされている。
図11において、第2〜4のタイムチャート(B1)〜(B3)は、ハイ状態であればバッファRAM 24の第1〜3の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファRAM 24の対応する記憶領域が書き込み可能状態であることを表している。図11に示した例では、バッファRAM 24の第1の記憶領域は、時刻t1から時刻t6まではデータ1をバッファリングしており、その後さらにデータ4をバッファリングしており、その他の期間は書き込み可能状態である。バッファRAM 24の第2の記憶領域は、時刻t2から時刻t7まではデータ2をバッファリングしており、その他の期間は書き込み可能状態である。バッファRAM 24の第3の記憶領域は、時刻t3から時刻t8まではデータ3をバッファリングしており、その他の期間は書き込み可能状態である。
図11において、第5のタイムチャート(C)は、ERDY TPがUSBペリフェラル装置2からUSBホスト側装置に向けて送信されるタイミングを表している。図11に示した例では、時刻t3においてERDY TPが送信されている。
図11において、第6のタイムチャート(D)は、転送要求信号がUSBホスト側装置からUSBペリフェラル装置2に向けて送信されるタイミングを表している。図11に示した例では、ERDY TPが送信された時刻t3の直後、すなわち時刻t4において、転送要求信号が送信されている。
図11において、第7のタイムチャート(E)は、USBペリフェラル装置2からUSBホスト側装置に向けてデータが送信されるタイミングを表している。図11に示した例では、転送要求信号が送信された時刻t4の直後、すなわち時刻t5から、時刻t8にかけて、データ1〜3が連続的に送信されている。なお、ここで送信されるデータ1〜3は、例えば、その時にバッファRAM 24にバッファリングされているデータのうち最も早くバッファリングされた順番に送信されても良い。
図11において、第8のタイムチャート(F)は、ハイ状態であればUSBペリフェラル装置2がフローコントロール状態に遷移している期間を表している。図11に示した例では、USBペリフェラル装置2は時刻t3までと、時刻t8以降とにおいて、フローコントロール状態に遷移している。
図11において、第9のタイムチャート(G)は、通常ステート(U0)と、低電力ステート(U1)との間で行われるステート遷移を表している。図11に示した例では、時刻t3〜t8の間では通常ステート(U0)で、それ以外の期間はほぼ低電力ステート(U1)に遷移している。
図11を用いて、一実施形態によるUSBペリフェラル装置2の動作のうち、すなわち一実施形態によるUSBペリフェラル装置2の制御方法のうち、IN転送においてERDY TPの送信タイミングを遅らせた場合の一例について説明する。
図11に示した例では、ERDY TPの送信タイミングが、図7および図8を用いて説明したとおりに遅らされている。より具体的には、例えば、バッファRAM 24に含まれる全ての記憶領域が、準備されたデータ1〜3をバッファリングする時刻t3まで待ってから、通常ステート(U0)に遷移してERDY TPを送信しても良い。
その結果、図11に示した例では、データ1〜3を準備している期間、すなわち時刻t3までは低電力ステート(U1)に連続的に滞在することが可能となっている。また、データ1〜3の送信を時刻t5から時刻t8にかけて連続的に行うことで、通常ステート(U0)に滞在する時間を最小限に抑えることが可能となっている。したがって、一実施形態によるUSBペリフェラル装置2の消費電力が低減される。
次に、OUT転送において速度差を検出した後の過程について説明する。図12は、一実施形態によるUSBペリフェラル装置において、USBホスト側装置からのデータ受信を行う際にERDY TP送信タイミングの調整を行った場合の一例を示すタイムチャートである。図12に示したタイムチャートは、第1〜8のタイムチャート(A)、(B1)〜(B3)および(C)〜(F)を含んでいる。
図12において、第1のタイムチャート(A)は、バッファRAM 24から処理されるデータの時間変化を表している。図12に示した例では、時刻t1まではデータ1の処理がされており、時刻t1から時刻t2まではデータ2の準備がされており、時刻t2から時刻t3まではデータ3の準備がされており、時刻t5以降はデータ4の準備がされており、そのさらに後にはデータ5の準備がされている。
図12において、第2〜4のタイムチャート(B1)〜(B3)は、ハイ状態であればバッファRAM 24の第1〜3の記憶領域にそれぞれバッファリングされているデータの時間変化を表しており、ロー状態であればバッファRAM 24の対応する記憶領域が書き込み可能状態であることを表している。図12に示した例では、バッファRAM 24の第1の記憶領域は、時刻t1まではデータ1をバッファリングしており、時刻t5以降はデータ4をバッファリングしており、その他の期間は書き込み可能状態である。バッファRAM 24の第2の記憶領域は、時刻t2まではデータ2をバッファリングしており、時刻t6以降はデータ5をバッファリングしており、その他の期間は書き込み可能状態である。バッファRAM 24の第3の記憶領域は、時刻t3まではデータ3をバッファリングしており、時刻t7以降はデータ6をバッファリングしており、その他の期間は書き込み可能状態である。
図12において、第5のタイムチャート(C)は、ERDY TPがUSBペリフェラル装置2からUSBホスト側装置に向けて送信されるタイミングを表している。図12に示した例では、時刻t3においてERDY TPが送信されている。
図12において、第6のタイムチャート(D)は、USBホスト側装置からUSBペリフェラル装置2に向けてデータが送信されるタイミングを表している。図12に示した例では、ERDY TPが時刻t3に送信された直後、時刻t4から時刻t7にかけてデータ4〜6が送信されている。なお、ここで送信されるデータは、例えば、その時にバッファRAM 24に含まれる中で最も早くから書き込み可能状態になっている記憶領域にバッファリングされても良い。
図12において、第7のタイムチャート(E)は、ハイ状態であればUSBペリフェラル装置2がフローコントロール状態に遷移している期間を表している。図12に示した例では、USBペリフェラル装置2は時刻t3までと、時刻t7以降とにおいて、フローコントロール状態に遷移している。
図12において、第8のタイムチャート(F)は、通常ステート(U0)と、低電力ステート(U1)との間で行われるステート遷移を表している。図12に示した例では、時刻t3から時刻t7までは通常ステート(U0)に遷移しており、その他の期間はほぼ低電力ステート(U1)に遷移している。
図12を用いて、一実施形態によるUSBペリフェラル装置2の動作のうち、すなわち一実施形態によるUSBペリフェラル装置2の制御方法のうち、OUT転送においてERDY TPの送信タイミングを遅らせた場合の一例について説明する。
図12に示した例では、ERDY TPの送信タイミングが、図9および図10を用いて説明したとおりに遅らされている。より具体的には、例えば、バッファRAM 24に含まれる全ての記憶領域が、バッファリングしていたデータ1〜3が処理されて書き込み可能状態になる時刻t3まで待ってから、通常ステート(U0)に遷移してERDY TPを送信しても良い。
その結果、図12に示した例では、データ1〜3を処理している期間、すなわち時刻t3までは低電力ステート(U1)に連続的に滞在することが可能となっている。また、データ4〜6の受信を時刻t4から時刻t7にかけて連続的に行うことで、通常ステート(U0)に滞在する時間を最小限に抑えることが可能となっている。したがって、一実施形態によるUSBペリフェラル装置2の消費電力が低減される。
一実施形態によるUSBペリフェラル装置2およびその制御方法において、たとえ通常ステート(U0)に滞在する時間の総和が同じであっても、低電力ステート(U1)に滞在する時間を連続させることによって、消費電力が低減し、かつ、データ転送速度が下がらない効果が得られることについて、定量的な例を挙げて説明する。
図13は、本発明による一実施形態によるUSBペリフェラル装置でERDY TP送信タイミングを調整することで得られる、ステート遷移に関わる効果を示すタイムチャートである。図13は、第1〜4のタイムチャート(A)〜(D)を含んでいる。
図13において、第1のタイムチャート(A)はERDY TPを送信するタイミングを表しており、第2のタイムチャート(B)は転送要求信号が送信されるタイミングを表しており、第3のタイムチャート(C)はデータが転送されるタイミングを表しており、第4のタイムチャート(D)は通常ステート(U0)および低電力ステート(U1)の間で遷移するタイミングを表している。
USB3.0の規格によると、1パケットの最大サイズは1024バイトと定義されている。この最大サイズを有するパケットを、USBペリフェラル装置と、USBホスト側装置との間で転送するためには、すなわちERDY TPを送信してからデータの転送が完了するまでには、約2μ(マイクロ)秒の時間が必要である。この時間を、図13では期間tAとして表している。パケット転送完了後に低電力ステート(U1)への遷移を開始するまでのタイムアウト時間が任意に設定可能である。このタイムアウト時間を、ここでは一例として5マイクロ秒に設定し、図13では期間tBとして表している。
また、通常ステート(U0)から低電力ステート(U1)への遷移には、約1μ秒の時間が必要である。この時間を、図13では期間tCとして表している。反対に、低電力ステート(U1)から通常ステート(U0)への遷移には、約2μ秒の時間が必要である。この時間を、図13では期間tDとして表している。
以上の期間tA〜tDを用いて、1024バイトのパケットを65536個、合計64MB(メガバイト)のデータを送信する場合について計算すると、低電力ステート(U1)に滞在出来る合計時間は、以下のように求められる。
低電力ステート滞在時間 = {(1パケットの準備に必要な時間 × ERDY TP送信までに準備するパケット個数) − (tA+tB+tC+tD)} × (全転送パケット数 ÷ ERDY TP送信までに準備するパケット個数) …(式1)
上記式1において、USBペリフェラル装置2側で1パケットの準備に必要な時間を10μ秒と置き、バッファRAM 24の容量を3KB(キロバイト)、すなわち3パケット分と置く。この条件を用いて、従来技術と、一実施形態とで、低電力ステート滞在時間を算出して比較する。
従来技術による低電力ステート滞在時間
= ((10μ秒 × 1) − (tA+tB+tC+tD)) × (65536 ÷ 1)
=0μ秒 …(式2)
一実施形態による低電力ステート滞在時間
= ((10μ秒 × 3) − (tA+tB+tC+tD)) × (65536 ÷ 3)
≒436m(ミリ)秒 …(式3)
上記式2および式3を比較すると、一実施形態による低電力ステート滞在時間の方が、従来技術による低電力ステート滞在時間よりも長いことが確認される。
同様に、USBペリフェラル装置2側で1パケットの準備に必要な時間を20μ秒と置き、バッファRAM 24の容量を32KB、すなわち32パケット分と置く。この条件を用いて、従来技術と、一実施形態とで、低電力ステート滞在時間を算出して比較する。
従来技術による低電力ステート滞在時間
= ((20μ秒 × 1) − (tA+tB+tC+tD)) × (65536 ÷ 1)
≒655m秒 …(式4)
一実施形態による低電力ステート滞在時間
= ((20μ秒 × 32) − (tA+tB+tC+tD)) × (65536 ÷ 32)
≒1290m秒 …(式5)
上記式4および式5を比較しても、一実施形態による低電力ステート滞在時間の方が、従来技術による低電力ステート滞在時間よりも長く、2倍近いことが確認される。
以上、発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。また、前記実施の形態に説明したそれぞれの特徴は、技術的に矛盾しない範囲で自由に組み合わせることが可能である。
1 USB伝送線路
2 USBペリフェラル装置
21 物理層制御部
22 リンク層制御部
23 プロトコル層制御部
231 バッファ制御部
231a フローコントロール状態遷移検出部
231b フローコントロール遷移通知信号生成部
231c 転送ステータス信号生成部
231d ERDY TP送信部
231e 転送終了通知信号生成部
232 転送速度監視制御部
232a 第1受信部
232b 第2受信部
232c カウンタ部
232d 転送速度通知信号生成部
233 ERDY TP送信タイミング制御部
233a 第1受信部
233b 第2受信部
233c ERDY TP送信タイミング変更指示信号生成部
24 バッファRAM
3 CPU
10 USB伝送線路
20 USBペリフェラル装置
201 物理層制御部
202 リンク層制御部
203 プロトコル層制御部
2031 バッファ制御部
204 バッファRAM
30 CPU
S1 転送ステータス信号
S2 フローコントロール遷移通知信号
S3 転送速度通知信号
S4 転送終了通知信号
S5 ERDY TP送信タイミング変更指示信号

Claims (8)

  1. USB(Universal Serial Bus:ユニバーサル・シリアル・バス)ホスト側装置と送受信するデータをバッファリングするバッファRAM(Randam Access Memory:ランダムアスセスメモリ)と、
    前記送受信の転送ステータスを監視し、前記バッファRAMにバッファリングするデータを準備するためのフローコントロール状態への遷移を検出するフローコントロール状態遷移検出部と、
    前記検出に基づいて、フローコントロール遷移通知信号を生成するフローコントロール遷移通知信号生成部と、
    前記データが転送中であることを示す転送ステータス信号を生成する転送ステータス信号生成部と、
    前記転送ステータス信号と、前記フローコントロール遷移通知信号とに基づいて、前記バッファRAMのデータ転送速度と、前記USBホスト側装置のデータ転送速度との優劣を検出する転送速度監視制御部と、
    前記バッファRAMのデータ転送速度が、前記USBホスト側装置の転送速度より低い場合に、ERDY TP(Endpoint ReaDY Transaction Packet:転送準備完了通知トランザクションパケット)の送信タイミングを変更するERDY TP送信タイミング制御部と、
    前記ERDY TP送信タイミング制御部によって変更された前記送信タイミングで前記ERDY TPを前記USBホスト側装置に向けて送信するERDY TP送信部と
    を具備する
    USBペリフェラル装置。
  2. 請求項1に記載のUSBペリフェラル装置において、
    前記送受信が終了した際に転送終了通知信号を生成する転送終了通知信号生成部
    をさらに具備し、
    前記転送速度監視制御部は、
    前記フローコントロール遷移通知信号を受信する第1受信部と、
    前記転送ステータス信号を受信する第2受信部と、
    前記データの転送中に前記フローコントロール遷移通知信号を受信した場合にはカウンタ値をインクリメントし、前記データの転送中に前記フローコントロール遷移通知信号を受信しなかった場合には前記カウンタ値を初期化するカウンタ部と、
    前記カウンタ値が所定値に達した場合に転送速度通知信号を生成する転送速度通知信号生成部と
    を具備し、
    前記ERDY TP送信タイミング制御部は、
    前記転送速度通知信号を受信する第1受信部と、
    前記転送終了通知信号を受信する第2受信部と、
    前記転送速度通知信号を受信した場合には前記送信タイミングを遅らせる第1の変更指示信号を生成し、前記転送終了通知信号を受信した場合には前記送信タイミングを初期化する第2の変更指示信号を生成するERDY TP送信タイミング変更指示信号生成部と
    を具備し、
    前記ERDY TP送信部は、
    前記第1または前記第2の変更指示信号を受信する受信部
    を具備する
    USBペリフェラル装置。
  3. 請求項1または2に記載のUSBペリフェラル装置において、
    前記フローコントロール状態遷移検出部、前記フローコントロール遷移通知信号生成部、前記転送ステータス信号生成部、前記ERDY TP送信部および前記転送終了通知信号生成部を含み、前記バッファRAMを制御するバッファ制御部
    をさらに具備する
    USBペリフェラル装置。
  4. 請求項3に記載のUSBペリフェラル装置において、
    前記バッファ制御部、前記転送速度監視制御部および前記ERDY TP送信タイミング制御部を含み、USBプロトコル層を制御するプロトコル層制御部と、
    前記プロトコル層制御部に接続されて、USBリンク層を制御するリンク層制御部と、
    一方では前記USBリンク層制御部に接続されて、他方ではUSB伝送線路を介してUSBホスト側装置に接続されて、USB物理層を制御する物理層制御部と
    をさらに具備する
    USBペリフェラル装置。
  5. データをバッファリングすることと、
    前記データをUSBホスト側装置と送受信することと、
    バッファリングする前記データを準備するためのフローコントロール状態への遷移を検出することと、
    前記検出に基づいて、フローコントロール遷移通知信号を生成することと、
    前記データが転送中であることを示す転送ステータス信号を生成することと、
    前記転送ステータス信号と、前記フローコントロール遷移通知信号とに基づいて、バッファRAMのデータ転送速度と、USBホスト側装置のデータ転送速度との優劣を検出することと、
    前記バッファRAMのデータ転送速度が、前記USBホスト側装置の転送速度より低い場合に、ERDY TPの送信タイミングを変更することと、
    前記ERDY TP送信タイミング制御部によって変更された送信タイミングで前記ERDY TPを送信することと
    を具備する
    USBペリフェラル装置の制御方法。
  6. 請求項5に記載のUSBペリフェラル装置の制御方法において、
    前記送受信が終了した際に転送終了通知信号を生成することと、
    前記データの転送中に前記フローコントロール遷移通知信号を受信した場合にはカウンタ値をインクリメントし、前記データの転送中に前記フローコントロール遷移通知信号を受信しなかった場合には前記カウンタ値を初期化することと、
    前記カウンタ値が所定値に達した場合に転送速度通知信号を生成することと、
    前記転送速度通知信号を受信した場合には前記送信タイミングを遅らせる第1の変更指示信号を生成することと、
    前記転送終了通知信号を受信した場合には前記送信タイミングを初期化する第2の変更指示信号を生成することと、
    前記第1または前記第2の変更指示信号に応じて前記送信タイミングを変更することと
    を具備する
    USBペリフェラル装置の制御方法。
  7. 請求項6に記載のUSBペリフェラル装置の制御方法において、
    送信未了データが無くなった際に、前記カウンタ値および前記送信タイミングをそれぞれ初期化すること
    をさらに具備する
    USBペリフェラル装置の制御方法。
  8. 請求項6に記載のUSBペリフェラル装置の制御方法において、
    最終データを受信した際に、前記カウンタ値および前記送信タイミングをそれぞれ初期化すること
    をさらに具備する
    USBペリフェラル装置の制御方法。
JP2012198883A 2012-09-10 2012-09-10 Usbペリフェラル装置 Pending JP2014052981A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012198883A JP2014052981A (ja) 2012-09-10 2012-09-10 Usbペリフェラル装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012198883A JP2014052981A (ja) 2012-09-10 2012-09-10 Usbペリフェラル装置

Publications (1)

Publication Number Publication Date
JP2014052981A true JP2014052981A (ja) 2014-03-20

Family

ID=50611376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012198883A Pending JP2014052981A (ja) 2012-09-10 2012-09-10 Usbペリフェラル装置

Country Status (1)

Country Link
JP (1) JP2014052981A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016035721A (ja) * 2014-08-05 2016-03-17 Necエンジニアリング株式会社 Usb転送装置、usb転送システムおよびusb転送方法
JP2017520052A (ja) * 2014-06-18 2017-07-20 クアルコム,インコーポレイテッド ユニバーサルシリアルバス(usb)通信システムおよび方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017520052A (ja) * 2014-06-18 2017-07-20 クアルコム,インコーポレイテッド ユニバーサルシリアルバス(usb)通信システムおよび方法
JP2016035721A (ja) * 2014-08-05 2016-03-17 Necエンジニアリング株式会社 Usb転送装置、usb転送システムおよびusb転送方法

Similar Documents

Publication Publication Date Title
TW201907314A (zh) 用於虛擬通用輸入/輸出有限狀態機器之硬體事件優先感測可程式化傳輸等待窗
TWI547784B (zh) 動態調整匯流排時脈的方法及其裝置
TW200830109A (en) Controller link for manageability engine
JP2016076257A5 (ja)
US20160124876A1 (en) Methods and systems for noticing completion of read requests in solid state drives
TW201411369A (zh) 配置遠端m-phy
JP2006040293A (ja) 直列ataインターフェースのデータ伝送速度の設定装置、及びその方法
CN113227990A (zh) 通过时钟频率缩放和自适应轮询交错降低通信接口的功耗
KR20180002634A (ko) 스케줄링된 범용 직렬 버스 (usb) 저전력 동작들
KR101770038B1 (ko) 네트워킹 디바이스에 대한 전력 및 성능을 관리하기 위한 기술
US10572438B1 (en) Dynamic optimal data sampling time on a multi-drop bus
CN104753504A (zh) 用于校正偏斜的接收器电路、包括其的半导体设备及系统
JP5776022B2 (ja) 制御装置
JP2014052981A (ja) Usbペリフェラル装置
US9990027B2 (en) Status switching method
CN116074267A (zh) 一种数据通信系统及SoC芯片
CN117222994A (zh) 使用共享时钟和专用数据线的i2c总线架构
JP2009110335A (ja) 半導体装置及びデータ処理システム
JP5926583B2 (ja) 情報処理装置、シリアル通信システムおよびそれらの通信初期化の方法、並びにシリアル通信装置
US10429881B2 (en) Semiconductor device for stopping an oscillating clock signal from being provided to an IP block, a semiconductor system having the semiconductor device, and a method of operating the semiconductor device
WO2016164120A1 (en) Shared control of a phase locked loop (pll) for a multi-port physical layer (phy)
CN111258936A (zh) 一种dma数据传输系统及数据传输方法
TWI743638B (zh) 時序產生器、時序產生方法以及控制晶片
Li et al. Research on Improvement of Configurable I2C controller IP Core
CN113890783B (zh) 一种数据收发系统、方法、电子设备及存储介质