JP5551512B2 - 通信制御装置、データ通信方法及びプログラム - Google Patents

通信制御装置、データ通信方法及びプログラム Download PDF

Info

Publication number
JP5551512B2
JP5551512B2 JP2010117160A JP2010117160A JP5551512B2 JP 5551512 B2 JP5551512 B2 JP 5551512B2 JP 2010117160 A JP2010117160 A JP 2010117160A JP 2010117160 A JP2010117160 A JP 2010117160A JP 5551512 B2 JP5551512 B2 JP 5551512B2
Authority
JP
Japan
Prior art keywords
buffer
packet
shared
reception
endpoint
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.)
Expired - Fee Related
Application number
JP2010117160A
Other languages
English (en)
Other versions
JP2011243142A (ja
Inventor
史生 高橋
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 JP2010117160A priority Critical patent/JP5551512B2/ja
Priority to US13/105,427 priority patent/US8635386B2/en
Publication of JP2011243142A publication Critical patent/JP2011243142A/ja
Application granted granted Critical
Publication of JP5551512B2 publication Critical patent/JP5551512B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3812USB port controller

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)

Description

本発明は、通信制御装置に関し、特に複数のエンドポイントを持つ通信制御装置、データ通信方法及びプログラムに関する。
近年、パーソナルコンピュータや家電製品と周辺機器を接続する、シリアルバス規格の一つとしてUSB(Universal Serial Bus)が広く用いられている。USBは物理的にはシリアルで通信を行うものであるが、USBコントローラ内にエンドポイントを複数持つことにより、エンドポイントごとに独立した通信を行うことが可能である(図3参照)。
特許文献1において、各エンドポイントそれぞれに対応する専用バッファと、各エンドポイントで共用する共用バッファとを備えるダブルバッファ構成のUSBコントローラが開示されている。特許文献1によれば、データ転送を行う際にエンドポイントに共用バッファが割り当てられていれば、専用バッファ及び共用バッファを制御してデータ転送を行う。さらに、共用バッファが割り当てられていなければ、バッファ切り替え制御部で共用バッファが割り当てられている他のエンドポイントの読み出し側のバッファが空か否かを判定し、空であればそのバッファをデータ通信するエンドポイントに割り当て、ダブルバッファ構成でデータ転送を行うものとしている。
このように、回路規模を最小限に抑えた上で、高い通信性能を発揮するUSBコントローラの開発が進んでいる。一方で、最大転送速度向上のため、USB規格自体の拡張が行われ、最大データ転送速度として5Gbit/sの速度を実現するUSB3.0(非特許文献1)の普及が始まっている。USB3.0においては、上記転送速度実現のため、USB2.0でのコントロール転送やバルク転送などの転送モードに加えバースト転送が規定されている。バースト転送は、データ転送を高速に行うための手順であり、連続したデータを転送する際に、アドレスの指定などを一部省略することによって転送速度を向上させている。
特許第3415567号公報
USB Implementers Forum, Inc、"USB 3.0 Specification"、2008年11月12日、[online]、[平成22年4月20日検索]、インターネット〈URL:http://www.usb.org/developers/docs/〉
以下の分析は、本発明の観点からなされたものである。
上述のように、USB3.0においてはバースト転送及び複数のエンドポイントにおける独立した通信が可能となるわけであるが、このような通信に対応するためには、USBコントローラのバッファ容量を大きくすることが必要となる。
例えば、特許文献1で開示された技術をバースト転送及び複数のエンドポイントを持つUSBコントローラに適用するとするならば、ホストが連続的に送信する転送データ量(パケット数)は可変になるため専用バッファ容量を大きくする必要がある。つまり、特許文献1の構成はUSB側とCPU側がそれぞれ1パケット分のバッファを持つものであるため、複数のパケットを1つのバーストとして連続的に転送するバースト転送においては、エンドポイントごとにパケットサイズ×最大バースト長の容量の専用バッファを持ち、同様にパケットサイズ×最大バースト長の容量の共用バッファを付加する構成が必要となる。
しかし、このような構成では回路規模が増大するという問題がある。専用バッファの容量を大きくすると、回路規模が増大し、結果として製品のコストアップに繋がってしまう。また、専用バッファと共用バッファの容量をパケットサイズ×最大バースト長とする構成では、バースト転送が連続する場合、最初のバースト転送は受信できたとしても、次のバースト転送の最初のパケットの受信時に共用バッファの確保が間に合わず、フローコントロールが必要となり、転送速度が低下してしまうことがある。
以上のとおり、従来技術には、解決すべき問題点が存在する。
本発明の一側面において、バースト転送に対応するにあたり、専用バッファ及び共用バッファの制御を効率的に行い、回路規模を縮小した通信制御装置、データ通信方法及びプログラムが、望まれる。
本発明の第1の視点によれば、複数のパケットを1つのバーストとして連続して転送するバースト転送モードにてデータを受信可能な受信コントローラ部を複数有し、少なくとも1パケット分の容量を有し、前記受信コントローラ部に対応付けられた複数の専用バッファ部と、それぞれが、少なくとも前記バースト転送モードにおいて連続して転送されるパケット数分の容量を有し、複数の前記受信コントローラ部によって共用される複数の共用バッファ部と、を備え、前記バースト転送モードが開始された場合、前記専用バッファ部に先頭パケットをバッファし、後続するパケットを前記共用バッファ部にバッファし、前記バースト転送モードにおいて、前記共用バッファ部に生じる少なくとも1パケット分の空き領域に、後続するバースト転送の先頭パケットをバッファするとともに、別の前記共用バッファ部を確保し、後続するパケットのバッファを継続する通信制御装置が提供される。
本発明の第2の視点によれば、複数のパケットを1つのバーストとして連続して転送するバースト転送モードにてデータを受信可能な受信コントローラ部を複数有し、少なくとも1パケット分の容量を有し、前記受信コントローラ部に対応付けられた複数の専用バッファ部と、それぞれが、少なくとも前記バースト転送モードにおいて連続して転送されるパケット数分の容量を有し、前記複数の受信コントローラ部によって共用される複数の共用バッファ部と、を備える通信制御装置におけるデータ通信方法であって、前記バースト転送モードが開始された場合、前記専用バッファ部に先頭パケットをバッファする工程と、後続するパケットを前記共用バッファ部にバッファする工程と、前記バースト転送モードにおいて、前記共用バッファ部に生じる少なくとも1パケット分の空き領域に、後続するバースト転送の先頭パケットをバッファする工程と、別の前記共用バッファ部を確保し、後続するパケットのバッファを継続する工程と、を含むデータ通信方法が提供される。
本発明の第3の視点によれば、複数のパケットを1つのバーストとして連続して転送するバースト転送モードにてデータを受信可能な受信コントローラ部を複数有し、少なくとも1パケット分の容量を有し、前記受信コントローラ部に対応付けられた複数の専用バッファ部と、それぞれが、少なくとも前記バースト転送モードにおいて連続して転送されるパケット数分の容量を有し、前記複数の受信コントローラ部によって共用される複数の共用バッファ部と、を備える通信制御装置を構成するコンピュータに実行させるプログラムであって、前記バースト転送モードが開始された場合、前記専用バッファ部に先頭パケットをバッファする処理と、後続するパケットを前記共用バッファ部にバッファする処理と、前記バースト転送モードにおいて、前記共用バッファ部に生じる少なくとも1パケット分の空き領域に、後続するバースト転送の先頭パケットをバッファする処理と、別の共用バッファ部を確保し、後続するパケットのバッファを継続する処理と、を実行するプログラムが提供される。

本発明の各視点によれば、エンドポイントごとの独立した通信方式において、バッファのサイズを縮小した構成で、高速なデータ通信が実現できる。
一実施例によるUSBエンドポイントコントローラ部のブロック図である。 図1におけるバースト転送時の転送データ量と専用バッファと共用バッファとの関係図である。 複数のエンドポイントを有する、USBコントローラ内の参考図である。 一実施例によるUSBコントローラ全体のブロック図の詳細である。 一実施例におけるバッファの状態遷移図である。 共用バッファを管理するためのテーブルの一例である。 図5の状態遷移に対応した図6におけるテーブルの値である。
続いて、本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。
はじめに、本発明の概要について説明する。図1にUSBエンドポイントコントローラ部の構成を示す。USB3.0規格のバースト転送に対応する際に、各エンドポイントに対して1パケット分に相当するサイズの専用バッファを確保する。さらに、共用バッファとしては、パケットサイズ×最大バースト長に相当するサイズを共用バッファの1単位とし、その共用バッファを複数備える構成とする。これらの専用バッファ及び共用バッファを適切に制御することで、バッファ全体のサイズを抑えつつ、高速なデータ通信を実現する。
USB機器間でバースト転送が開始されると、USBデバイスコントローラでは最初のパケットを専用バッファ103に格納する。この時点ではまだ共用バッファ1051の確保が行われておらず、このままでは次のパケットの受信ができないため、共用バッファの確保を行う。共用バッファの確保に成功すれば、最初のパケット以降のパケットを共用バッファに格納する。すると、共用バッファ1051のサイズとしてはパケットサイズ×最大バースト長に相当する容量を確保しているため、最初の専用バッファで1パケット分は受信済みであるから、共用バッファに格納されるデータの容量はパケットサイズ×(最大バースト長−1)に相当するサイズである。つまり、未だ共用バッファには1パケット分格納する余裕があることになる(図2参照)。
バースト転送が終了した時点で、必ず1パケット分の余裕があることから、最初に確保した共用バッファのデータが読み出されておらず、別のバッファの確保が必要な場合であっても、次のバースト転送のうち最初のパケットの受信は確実に行うことができる。そのため、次のバースト転送における最初のバケットの受信中に、さらなる共用バッファの確保を要求することが出来る。
このように、専用バッファのサイズを1パケット分と最小にし、共用バッファのサイズをパケットサイズ×最大バースト長相当とすることで、常に1パケット分の余裕を作り出し、この1パケット分の余裕を有効活用することでUSB3.0規格のバースト転送に対応することとした。
[第1の実施形態]
続いて、本発明の一実施形態の構成を詳細に説明し、次に、各構成要素の動作及び構成要素間の連携について詳細に説明する。図4は、本発明の実施形態に係るUSBデバイスコントローラの一構成例である。
USBデバイスコントローラ1は、USBエンドポイントコントローラ部10、USBインタフェース部20及び外部バスインタフェース部30から構成されている。
USBエンドポイントコントローラ部10は、ホストからのデータ送受信の要求を受け付け、データの送受信の管理を行う。USBインタフェース部20は、USBから受信したアナログ信号のデジタル変換や誤り訂正などの処理に加えて、ホストからのデジタル信号をアナログ信号に変換し、USBに送出する処理も行う。外部バスインタフェース部30は、周辺機器のCPU(Central Processing Unit)やDMA(Direct Memory Access)コントローラと接続されたバスを制御し、これらとの間でデータの送受信を行う。USBエンドポイントコントローラ部10は、受信コントローラ部101及び102、バッファ選択部106、バッファアクセス生成部107、受信用エンドポイント専用バッファ103及び104、エンドポイント共用バッファ105から構成される。
ここで、USB規格は複数のエンドポイントに対応可能であり、本実施形態においては2つのエンドポイントに対応する場合を考え説明をする。受信コントローラ部101で制御するエンドポイントを第1のエンドポイント、受信コントローラ部102で制御するエンドポイントを第2のエンドポイントとする。なお、受信コントローラ部102は、受信コントローラ部101と同等の構成である。そのため、受信コントローラ部102に関する説明は省略する。
受信コントローラ部101はUSBインタフェース部20や外部バスインタフェース部30からのデータ送受信の要求を受け付け、データのリード・ライトの管理を行う。バッファ選択部106は、受信コントローラ部101からの共用バッファ確保要求及び共用バッファ開放要求を制御する。バッファアクセス生成部107は、受信コントローラ部101からのライト要求若しくはリード要求に従い、確保した専用バッファ及び共用バッファに対してデータのリード・ライトを行う。受信用エンドポイント専用バッファ103は、受信コントローラ部と1対1で対応付けられ、第1のエンドポイントに対応する受信用エンドポイント専用バッファを103、第2のエンドポイントに対応する受信用エンドポイント専用バッファを104とする。エンドポイント共用バッファ105はそれぞれのエンドポイントで共用するバッファである。
受信コントローラ部101は、受信用PHY(Physical Layer)側制御部1011と、受信用CPU側制御部1012と、受信用バッファインタフェース部1013と、受信用バッファ管理部1014から構成される。
受信用PHY側制御部1011は、USBインタフェース部20においてデジタル変換されたパケットを受信し、このパケットに対するプロトコル制御を行い、正常受信したデータを受信用バッファ管理部1014に送出する。また、受信用PHY側制御部1011は、受信用バッファ管理部1014からバッファエンプティ信号1131が通知された場合にはUSB3.0規格で定義されるフローコントロール制御を行う。
受信用CPU側制御部1012は、外部バスインタフェース部30を介して受信データのリード要求を受けた場合には、受信用バッファ管理部1014に対してリード要求信号を出力し、受信用バッファ管理部1014を経由してリードデータを外部バスインタフェース部30に出力する。
受信用バッファインタフェース部1013は、受信用バッファ管理部1014から通知されるライト要求、リード要求に従い、バッファアクセス生成部107に対してアクセスタイミング信号を生成する。すなわち、受信用バッファ管理部1014からバッファライト要求信号1141、データ信号1161、アドレス信号1171を受信すると、受信用バッファインタフェース部1013がバッファアクセス生成部107に対してライトアドレス及びライトデータを含んだアクセスタイミング信号を生成する。それを受けて、バッファアクセス生成部107では、受信用エンドポイント専用バッファ103もしくはエンドポイント共用バッファ105にデータのライトを行う。
次に、受信用バッファ管理部1014からバッファリード要求信号1151を受信すると、受信用バッファインタフェース部1013がバッファアクセス生成部107に対してリードアドレスを含んだアクセスタイミング信号を生成する。それを受けて、バッファアクセス生成部107では、受信用エンドポイント専用バッファ103若しくはエンドポイント共用バッファ105から読み出したリードデータをデータ信号1161及びアドレス信号1171として受信用バッファ管理部1014に出力する。
受信用バッファ管理部1014は、共用バッファの確保、開放要求の制御を行うと共に、確保している共用バッファの状態と、受信用PHY側制御部1011の受信状態及び、受信用CPU側制御部1012からの読み出し状態を管理する。さらに、受信用PHY側制御部1011からデータを受信し、共用バッファを確保する必要が生じた場合、受信用バッファ管理部1014はバッファ選択部106に対して、共用バッファ確保要求信号1101をアサートする。受信用バッファ管理部1014は、バッファ選択部106から共用バッファ確保受付信号1111を受信することにより、共用バッファ確保要求が受理されたことを認識する。
一方、受信用バッファ管理部1014が、共用バッファを開放する場合には、バッファ選択部106に対して、共用バッファ開放要求信号1121をアサートする。
また、受信用バッファ管理部1014は、USBからのデータの受信が可能か否かを示すバッファエンプティ信号1131を受信用PHY側制御部1011に対して通知する機能を有する。
ここで、受信用バッファ管理部1014が、受信用PHY側制御部1011から正常受信したデータをバッファに書き込む手順を説明する。受信用バッファ管理部1014は、受信用PHY側制御部1011から正常受信したデータを受け付けると、受信用バッファインタフェース部1013に対して、バッファライト要求信号1141を出力し、同時に、アドレス信号1171及びデータ信号1161を出力する。さらに、バッファ選択部106に対しては、バッファライト要求信号1141に加えて、専用バッファ103若しくはエンドポイント共用バッファ105内に確保したバッファ領域に、どのような順番でデータを書き込むかを指定するバッファ領域選択信号1181を出力する。
次に、受信用バッファ管理部1014が、受信用CPU側制御部1012からリード要求を受けた場合の読み出し手順を説明する。受信用バッファ管理部1014は、データの読み出しのため、受信用バッファインタフェース部1013に対して、バッファリード要求信号1151を出力し、同時に、アドレス信号1171を出力し、データ信号1161から受信したリードデータを受信用CPU側制御部1012に出力する。さらに、バッファ選択部106に対して、前記バッファリード要求信号1151に加えて、専用バッファ103若しくはエンドポイント共用バッファ105内に確保したバッファ領域から、どのような順序でデータを読み出すかを指定するバッファ領域選択信号1181を出力する。
以上が受信コントローラ部101の説明である。次に、バッファ選択部106について説明する。
バッファ選択部106は、受信用バッファ管理部1014から共用バッファ確保要求信号1101を受け付けた場合には、エンドポイント共用バッファ105の確保を開始し、確保が完了すると、共用バッファ確保受付信号1111をアサートする。一方、受信用バッファ管理部1014から共用バッファ開放要求があった場合、直ちにエンドポイント共用バッファ105の開放処理を行う。バッファ選択部106は、受信用バッファ管理部1014からのライトアクセスもしくはリードアクセスがあった場合、同時に通知されたバッファ領域選択信号1181により、どのエンドポイントからのアクセスかを判別する。前記判別結果により、バッファ選択部106は、受信用エンドポイント専用バッファ103、又はエンドポイント共用バッファ105を構成するエンドポイント共用バッファ領域1051、1052の何れに対してアクセスするかを決定するためのバッファ選択信号1034をバッファアクセス生成部107に対して出力する。
バッファ選択部106はバッファ選択制御テーブルを有している。バッファ選択部106はこのテーブルに従ってエンドポイント共用バッファ105の管理を行っている。そのテーブルの内容を示したものが、図6である。バッファ選択制御テーブルは、エンドポイント共用バッファ領域ごとに、領域番号フィールドと、割り当て対象エンドポイントフィールドと、領域確保順序フィールドの3つのフィールドを有している。
領域番号フィールドは、エンドポイント共用バッファ領域1051、1052を一意に識別するためのフィールドであり、図6においては、エンドポイント共用バッファ領域1051を領域番号1、エンドポイント共用バッファ領域1052を領域番号2としている。割り当て対象エンドポイントフィールドは、エンドポイント共用バッファ領域が、どのエンドポイントによって使用されているかを示すフィールドであり、図6のテーブルにおいては2つのエンドポイントを想定しているため、第1のエンドポイントを1、第2のエンドポイントを2として管理する。なお、割り当て対象エンドポイントフィールドが0の場合には、当該エンドポイント領域がどのエンドポイントに対しても使用されていないことを示す。領域確保順序フィールドは、エンドポイント共用バッファ領域が割り当て対象エンドポイントに対して、何番目に割り当てられたかを示すフィールドである。
以上が、バッファ選択部106についての説明である。次に、バッファアクセス生成部107について説明する。
バッファアクセス生成部107は、バッファ選択部106からのバッファ選択信号1034に基づき、受信用エンドポイント専用バッファ103若しくは104、又はエンドポイント共用バッファ領域1051若しくは1052のいずれかの領域を選択する。さらに、アクセスの対象となるエンドポイントの受信用バッファインタフェース部1013若しくは1023から受信したリード又はライトアクセスタイミング信号を前記のバッファ選択信号1034で選択された領域に出力する。
リードアクセスの場合においては、選択したバッファから読み出したデータを、対象となるエンドポイントの受信用バッファインタフェース部1013、1023に出力する。
次に、バッファの容量について記述する。受信用エンドポイント専用バッファ103、104の容量は1パケットに相当するサイズである。さらに、エンドポイント共用バッファ105は、エンドポイント共用バッファ領域1051、1052から構成され、それぞれパケットサイズ×最大バースト長に相当する容量を有する。
以上が、USBデバイスコントローラ1の構成である。
次に、各構成要素の動作及び構成要素間の連携について詳細に説明する。図5は、本実施形態における動作を示す図であり、図5を用いて図4の構成をもつUSBデバイスコントローラ1の動作を説明する。動作の説明は、第1のエンドポイントについてのみ行い、第2のエンドポイントは第1のエンドポイントと同様の動作のため説明を省略する。また本実施形態では、最大バースト長を4パケットとして説明する。図5は、T1〜T12の各時刻におけるUSB側、CPU側の通信状態と、受信用エンドポイント専用バッファ103、エンドポイント共用バッファ領域1051、1052の状態と、受信用バッファ管理部1014の状態遷移、共用バッファ確保要求信号1101、共用バッファ確保受付信号1111、共用バッファ開放要求信号1121の各動作を示すものである。また、通信状態をB11〜B14、B21〜B24で表し、それぞれ1つのOUTトランザクションである。即ち、これらが1パケットである。USBの通信モードはバースト転送とし、パケットB11〜B14、パケットB21〜B24をそれぞれ1つのバースト転送の単位とする。
時刻T1は、USB側、CPU側ともに通信は行われていない初期状態を示す。初期状態時は、受信用エンドポイント専用バッファ103及びエンドポイント共用バッファ領域1051、1052は未使用であり、バッファ選択制御テーブルの領域番号フィールドの番号1、2ともに割り当て対象エンドポイントフィールドは0である(図7のT1時のテーブル参照)。
時刻T2において、USB側から最初のバーストの先頭パケットB11の受信を開始する。受信用PHY側制御部1011は、受信したパケットB11を受信用バッファ管理部1014に出力する。B11の受信開始により受信用バッファ管理部1014は、パケットB11の受信が完了すると、次のパケットB12を受信する空き領域がなくなるため、受信用PHY側制御部1011に対してバッファエンプティ信号1131をアサートし、同時に次のパケットを受信するためにバッファ選択部106に対して共用バッファ確保要求信号1101をアサートする。
ここで、受信したパケットを専用バッファへ書き込みするための処理を示す。受信用バッファ管理部1014は、バッファ選択部106に対しては、バッファライト要求信号1141と、データの書き込み先として受信用エンドポイント専用バッファ103を示すバッファ領域選択信号1181をアサートする。同時に、受信用バッファインタフェース部1013に対して、バッファライト要求信号1141、アドレス信号1171及びデータ信号1161を出力する。バッファ選択部106においては、受信用バッファ管理部1014より受信用エンドポイント専用バッファ103を示すバッファ領域選択信号1181がアサートされているため、バッファアクセス生成部107に対し、受信用エンドポイント専用バッファ103を示すバッファ選択信号1034をバッファアクセス生成部107に出力する。バッファアクセス生成部107は、バッファ選択信号1034に従い受信用エンドポイント専用バッファ103を選択し、受信用バッファインタフェース部1013で生成されたライトタイミング信号により指定されたライトアドレスにライトデータを書き込む。
時刻T3では、時刻T2から継続してUSB側から最初のバーストの先頭パケットB11を受信中であり、時刻T2と同様に専用バッファ書き込み処理を行っている。バッファ選択部106は、受信用バッファ管理部1014からの共用バッファ確保要求信号1101のアサートを認識すると、バッファ選択制御テーブルに基づいて共用バッファが確保可能か検索する。具体的には、バッファ選択制御テーブル内の全ての領域番号について、割り当て対象エンドポイントフィールドが0の領域があるかを判定し0の領域がある場合は対象となる領域の割り当て対象エンドポイントフィールドに要求対象のエンドポイント番号を書き込む。さらに、使用領域の中の領域確保順序フィールドの最大値に1を加算した値を対象となる領域の領域確保順序フィールドに書き込むことで共用バッファの確保を完了する。一方、バッファ選択制御テーブル内に確保可能な領域がない場合は、バッファ選択制御テーブルに対して何らの処理を行わない。
当初のエンドポイント共用バッファ領域1、2のそれぞれの割り当て対象エンドポイントフィールドは、0であるため、エンドポイント共用バッファ領域1051の割り当て対象エンドポイントフィールドに第1エンドポイントを示す1、領域確保順序フィールドに最初の確保であることを示す1をそれぞれ書き込む。これにより、第1のエンドポイントに対して、エンドポイント共用バッファ領域1051を格納領域として共用バッファの確保が完了する(図7のT3時のテーブル参照)。確保が完了すれば、共用バッファ確保受付信号1111をアサートして受信用バッファ管理部1014に通知する。受信用バッファ管理部1014においては、共用バッファ確保受付信号1111のアサートを認識した後、共用バッファ確保要求信号1101をネゲートする。一方、共用バッファが確保できない場合には、共用バッファ確保受付信号1111をアサートしない。
時刻T4は、USB側から最初のバーストの先頭パケットB11の受信を完了した状態である。パケットB11は受信用エンドポイント専用バッファ103に格納され、CPU側からの読み出しが可能となり、同時に次のパケットが受信可能となる。
ここで、受信用エンドポイント専用バッファ103に格納されたデータをCPU側から読み出す処理を以下に示す。CPU側からのバッファの読み出しが開始されると、受信用CPU側制御部1012ではデータ読み出し要求を受信用バッファ管理部1014に出力する。受信用バッファ管理部1014は、バッファ選択部106に対して、バッファリード要求信号1151と、読み出し先として受信用エンドポイント専用バッファ103を示すバッファ領域選択信号1181をアサートする。さらに、受信用バッファインタフェース部1013に対しては、バッファリード要求信号1151に加えて、アドレス信号1171を出力してデータを受信用エンドポイント専用バッファ103から読み出し、受信用CPU側制御部1012に出力する。バッファ選択部106は、受信用バッファ管理部1014より受信用エンドポイント専用バッファ103を示すバッファ領域選択信号1181がアサートされたため、バッファアクセス生成部107に対し、受信用エンドポイント専用バッファ103を示すバッファ選択信号1034をバッファアクセス生成部107に出力する。バッファアクセス生成部107は、バッファ選択信号1034に基づき、受信用エンドポイント専用バッファ103を選択し、受信用バッファインタフェース部1013で生成されたリードタイミング信号により指定されたリードアドレスからデータを読み出し、受信用バッファインタフェース部1013、受信用バッファ管理部1014を介して、受信用CPU側制御部1012に出力する。さらに、読み出されたデータは外部バスインタフェース部30を通じてCPU側に出力される。
時刻T5は、USB側からバースト転送の2パケット目であるパケットB12の受信を開始した状態である。パケットB12は、確保済みの共用バッファであるエンドポイント共用バッファ領域1051に格納される。ここで、受信したパケットを共用バッファに書き込む際の処理について説明する。受信用バッファ管理部1014は、受信用PHY側制御部1011において受信したパケットを計数し、バッファ選択部106に対して、バッファライト要求信号1141と、何番目に確保した共用バッファかを示すバッファ領域選択信号1181をアサートし、同時に、バッファライト要求信号1141、アドレス信号1171及びデータ信号1161を受信用バッファインタフェース部1013に出力する。バッファ選択部106においては、受信用バッファ管理部1014より確保済みの共用バッファを示すバッファ領域選択信号1181がアサートされているため、バッファ選択制御テーブルの各エンドポイント共用バッファ領域のうち、割り当て対象エンドポイントフィールドが一致する各エンドポイント共用バッファ領域の中で、領域確保順序フィールドの値とバッファ領域選択信号1181が一致するエンドポイント共用バッファ領域を検索し、当該エンドポイント共用バッファ領域の領域番号フィールドをバッファ選択信号1034としてバッファアクセス生成部107に対して出力する。バッファアクセス生成部107では、バッファ選択信号1034に基づき、エンドポイント共用バッファ領域1051を選択し、受信用バッファインタフェース部1013で生成されたライトタイミング信号で指定されたライトアドレスにライトデータを書き込む。
時刻T6は、USB側から最初のバースト転送であるパケットB11〜B14の受信が完了した状態である。時刻T6では、時刻T4と同様に、受信用エンドポイント専用バッファ103に格納されたデータの読み出し処理が行われる。
時刻T7は、パケットB11のCPU側からの読み出しが完了し、パケットB12の読み出しを開始した状態である。先に、専用バッファのCPU側からの読み出しについて説明したが、ここではCPU側からの共用バッファ読み出し処理を以下に示す。CPU側からバッファの読み出しが開始されると、受信用CPU側制御部1012は読み出し要求を受信用バッファ管理部1014に出力する。受信用バッファ管理部1014では、バッファリード要求信号1151と、何番目に確保した共用バッファから読み出すかを示すバッファ領域選択信号1181をバッファ選択部106に対してアサートする。さらに、受信用バッファインタフェース部1013に対してはバッファリード要求信号1151とアドレス信号1171を出力してデータを共用バッファから読み出し、受信用CPU側制御部1012に出力する。受信用バッファ管理部1014においては、最初に確保した共用バッファから読み出しを行うため、バッファ領域選択信号1181を1としてバッファ選択部106に対して通知する。また、バッファ選択部106では、バッファ選択制御テーブルを検索し、割り当て対象エンドポイントフィールドが1であり、かつ、領域確保順序フィールドが1であるエンドポイント共用バッファ領域1を指定されたバッファ領域であると判定し、領域番号フィールドの値である1をバッファ選択信号1034としてバッファアクセス生成部107に出力する。バッファアクセス生成部107は、バッファ選択信号1034に基づき、エンドポイント共用バッファ領域1051を選択し、受信用バッファインタフェース部1013で生成されたリードタイミング信号により指定されたリードアドレスからデータを読み出し、受信用バッファインタフェース部1013、受信用バッファ管理部1014を介して、受信用CPU側制御部1012に出力する。さらに、読み出されたデータは外部バスインタフェース部30を通じてCPU側に出力される。
時刻T8は、USB側から2番目のバーストの先頭パケットB21の受信を開始した状態である。パケットB21は、時刻T5で示した共用バッファ書き込み処理と同様の手順でエンドポイント共用バッファ領域1051に格納が開始される。パケットB21の受信開始により、エンドポイント共用バッファ領域1051に次のパケットB22を受信する空き領域がなくなるため、受信用バッファ管理部1014は、受信用PHY側制御部1011に対し、バッファエンプティ信号1131をアサートする。同時に、次のパケットを受信するため、バッファ選択部106に対して共用バッファ確保要求信号1101をアサートする。
時刻T9では、時刻T8から継続してUSB側から2番目のバースト転送の先頭パケットB21の受信中であり、パケットB21を、先に示した共用バッファ書き込み処理と同様の手順でエンドポイント共用バッファ領域1051に格納している。また、既に受信したパケットB12〜B14はT7に示す共用バッファ読み出し処理と同様の手順によりCPU側からリード可能である。バッファ選択部106は、共用バッファ確保要求信号1101からのアサートを確認すると、時刻T3に示す共用バッファ確保処理と同様の手順で共用バッファの確保を行う。すなわち、バッファ選択部106はバッファ選択制御テーブルを検索し、エンドポイント共用バッファ領域1051の割り当て対象エンドポイントフィールドが1であること及びエンドポイント共用バッファ領域1052の割り当て対象エンドポイントフィールドが0であることを判定し、前記判定結果よりエンドポイント共用バッファ領域1052の割り当て対象エンドポイントフィールドに第1エンドポイントを示す1を、領域確保順序フィールドに2番目に確保した領域であることを示す2を書き込み、第1のエンドポイントに対してエンドポイント共用バッファ領域1052を格納領域として共用バッファの追加確保が完了する(図7のT9時のテーブル参照)。バッファ選択部106は共用バッファの確保が完了すると、共用バッファ確保受付信号1111をアサートして受信用バッファ管理部1014に通知する。受信用バッファ管理部1014は共用バッファ確保受付信号1111のアサートを認識し、共用バッファ確保要求信号1101をネゲートする。
時刻T10は、USB側から2番目のバーストの2パケット目であるパケットB22の受信を開始した状態である。パケットB22は、時刻T5で示す共用バッファ書き込み処理と同様の手順でエンドポイント共用バッファ領域1052に格納が開始される。共用バッファに格納済みのパケットB13、B14、B21はT7で説明した共用バッファ読み出し処理と同様の手順によりCPU側から読み出しが可能である。
時刻T11は、エンドポイント共用バッファ領域1051に格納されたパケットB12〜B14及びB21の読み出しが完了した状態である。ここで、エンドポイント共用バッファ領域1051に格納されたデータは全てCPU側で読み出しが完了しており、本共用バッファ領域の開放を行う。
以下、共用バッファ開放処理について示す。受信用バッファ管理部1014は、バッファ選択部106に対して、共用バッファ開放要求信号1121をアサートする。バッファ選択部106は、共用バッファ開放要求信号1121のアサートを認識すると、バッファ選択制御テーブルの割り当て対象エンドポイントフィールドが一致する領域に対して、要求対象であるエンドポイントのエンドポイント共用バッファの開放処理を行う。バッファ選択制御テーブルの各エンドポイント共用バッファ領域のうち、対象エンドポイントフィールドの値が要求対象であるエンドポイント番号と一致する場合、対応する領域確保順序フィールドに既に当該フィールドに書き込まれていた値から1減算した値を書き込む。特に対象となる領域の領域確保順序フィールドの値が1である場合は、対象エンドポイントフィールド及び領域確保順序フィールドに0を書き込み、未使用状態にする。バッファ選択部106は、エンドポイント共用バッファ領域1051の対象エンドポイントフィールドが1、領域確保順序フィールドも1なので、エンドポイント共用バッファ領域1051の対象エンドポイントフィールドと領域確保順序フィールドを0にし、エンドポイント共用バッファ領域1052の対象エンドポイントフィールドが1で領域確保順序フィールドが2であるため、エンドポイント共用バッファ領域1052の領域確保順序フィールドから1減算して1にすることにより、エンドポイント共用バッファ領域1052のみが確保された状態となる(図7のT11時のテーブル参照)。エンドポイント共用バッファ領域1052に確保されたパケットB22〜B24は、時刻T7に示す共用バッファ読み出し処理と同様の手順でCPU側から読み出し可能である。
時刻T12は、エンドポイント共用バッファ領域1052に格納されたパケットB22〜B24の読み出しが完了した状態であり、受信用バッファ管理部1014はバッファ選択部106に対して、共用バッファ開放要求信号1121をアサートする。バッファ選択部106は、時刻T11に示す共用バッファ開放処理と同様の手順により共用バッファを開放する。すなわち、バッファ選択部106は、エンドポイント共用バッファ領域1052の対象エンドポイントフィールドが1で領域確保順序フィールドが1であるため、エンドポイント共用バッファ領域1052の対象エンドポイントフィールドを0にすることにより、全ての共用バッファの開放が完了し、初期状態に戻る(図7のT12時のテーブル参照)。
このように、専用バッファに、パケットサイズ×最大バースト長分の共用バッファを付加し、容量が(バースト長+1)分のバッファを構成することで、実際には通信を行っていないエンドポイントに割り当てる専用バッファの容量を最小限にすることができ、必要となるバッファの容量を抑え、回路規模の増加を防止できる。また、1つのバーストのパケットを全て受信した後であっても、必ずバッファに1パケット分が受信可能な空きが確保できるため、引き続き次のバーストのパケットを受信可能となり、フローコントロールに移行せず、通信速度が低下することはない。
ここで、本実施形態における必要とするバッファのサイズを特許文献1の方式と比較して検証する。USB3.0規定でのパケットのサイズは1024バイトであり、最大バースト長を4パケット、対応エンドポイントの数を2として検証する。特許文献1に示す方式では、受信用エンドポイント専用バッファとして、次式で計算されるサイズが必要である。
専用バッファ容量=最大バースト長×パケットサイズ×エンドポイント数
=4×1024×2
=8192バイト
共用バッファは次式で計算されるサイズが必要となる。
共用バッファ容量=最大バースト長×パケットサイズ
=4×1024
=4096バイト
これらを合計すると、12288バイトのバッファサイズを必要とする。
一方、本実施形態においては、受信用エンドポイント専用バッファは各エンドポイントに対して1パケット分で良いため、受信用エンドポイント専用バッファとしては以下の式で計算されるバッファのサイズが必要となる。
専用バッファ容量=パケットサイズ×エンドポイント数
=1024×2
=2048バイト
共用バッファは次式で計算されるサイズが必要となる。
共用バッファ容量=最大バースト長×パケットサイズ×共用バッファ領域数
=4×1024×2
=8192バイト
これらを合計すると、10240バイトのバッファサイズを必要とする。
このように、より少ないバッファ容量で、USB3.0のバースト転送に対応可能であることがわかる。
なお、対応可能なエンドポイントの数は2つのエンドポイントに限定されるものではないことは明らかであり、複数のエンドポイントに適用可能である。すなわち、使用するエンドポイントの個数分だけ受信コントローラ部及び受信用エンドポイント専用バッファを有し、バッファ選択制御テーブルをエンドポイント共用バッファの領域数と同数の領域が選択可能とすることができる。その結果、任意の個数のエンドポイントに対してのエンドポイント共用バッファの共有が可能であるため、エンドポイント共用バッファの容量を適切に選択することにより、バッファとして使用するバッファの使用量を削減し、回路規模の増加を防止できる。
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 USBデバイスコントローラ
10 USBエンドポイントコントローラ部
20 USBインタフェース部(PHY)
30 外部バスインタフェース部
101、102 受信コントローラ部
103、104 受信用エンドポイント専用バッファ
105 エンドポイント共用バッファ
106 バッファ選択部
107 バッファアクセス生成部
1011、1021 受信用PHY側制御部
1012、1022 受信用CPU側制御部
1013、1023 受信用バッファインタフェース部
1014、1024 受信用バッファ管理部
1034 バッファ選択信号
1051、1052 エンドポイント共用バッファ領域
1101、1201 共用バッファ確保要求信号
1111、1211 共用バッファ確保受付信号
1121、1221 共用バッファ開放要求信号
1131、1231 バッファエンプティ信号
1141、1241 バッファライト要求信号
1151、1251 バッファリード要求信号
1161、1261 データ信号
1171、1271 アドレス信号
1181、1281 バッファ領域選択信号

Claims (3)

  1. 複数のパケットを1つのバーストとして連続して転送するバースト転送モードにてデータを受信可能な受信コントローラ部を複数有し、
    少なくとも1パケット分の容量を有し、前記受信コントローラ部に対応付けられた複数の専用バッファ部と、
    それぞれが、少なくとも前記バースト転送モードにおいて連続して転送されるパケット数分の容量を有し、複数の前記受信コントローラ部によって共用される複数の共用バッファ部と、を備え、
    前記バースト転送モードが開始された場合、前記専用バッファ部に先頭パケットをバッファし、後続するパケットを前記共用バッファ部にバッファし、
    前記バースト転送モードにおいて、前記共用バッファ部に生じる少なくとも1パケット分の空き領域に、後続するバースト転送の先頭パケットをバッファするとともに、別の前記共用バッファ部を確保し、後続するパケットのバッファを継続する通信制御装置。
  2. 複数のパケットを1つのバーストとして連続して転送するバースト転送モードにてデータを受信可能な受信コントローラ部を複数有し、
    少なくとも1パケット分の容量を有し、前記受信コントローラ部に対応付けられた複数の専用バッファ部と、
    それぞれが、少なくとも前記バースト転送モードにおいて連続して転送されるパケット数分の容量を有し、前記複数の受信コントローラ部によって共用される複数の共用バッファ部と、
    を備える通信制御装置におけるデータ通信方法であって、
    前記バースト転送モードが開始された場合、前記専用バッファ部に先頭パケットをバッファする工程と、後続するパケットを前記共用バッファ部にバッファする工程と、
    前記バースト転送モードにおいて、前記共用バッファ部に生じる少なくとも1パケット分の空き領域に、後続するバースト転送の先頭パケットをバッファする工程と、
    別の前記共用バッファ部を確保し、後続するパケットのバッファを継続する工程と、
    を含むことを特徴とするデータ通信方法。
  3. 複数のパケットを1つのバーストとして連続して転送するバースト転送モードにてデータを受信可能な受信コントローラ部を複数有し、
    少なくとも1パケット分の容量を有し、前記受信コントローラ部に対応付けられた複数の専用バッファ部と、
    それぞれが、少なくとも前記バースト転送モードにおいて連続して転送されるパケット数分の容量を有し、前記複数の受信コントローラ部によって共用される複数の共用バッファ部と、
    を備える通信制御装置を構成するコンピュータに実行させるプログラムであって、
    前記バースト転送モードが開始された場合、前記専用バッファ部に先頭パケットをバッファする処理と、後続するパケットを前記共用バッファ部にバッファする処理と、
    前記バースト転送モードにおいて、前記共用バッファ部に生じる少なくとも1パケット分の空き領域に、後続するバースト転送の先頭パケットをバッファする処理と、
    別の共用バッファ部を確保し、後続するパケットのバッファを継続する処理と、
    を実行することを特徴とするプログラム。
JP2010117160A 2010-05-21 2010-05-21 通信制御装置、データ通信方法及びプログラム Expired - Fee Related JP5551512B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010117160A JP5551512B2 (ja) 2010-05-21 2010-05-21 通信制御装置、データ通信方法及びプログラム
US13/105,427 US8635386B2 (en) 2010-05-21 2011-05-11 Communication control device, data communication method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010117160A JP5551512B2 (ja) 2010-05-21 2010-05-21 通信制御装置、データ通信方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011243142A JP2011243142A (ja) 2011-12-01
JP5551512B2 true JP5551512B2 (ja) 2014-07-16

Family

ID=44973418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010117160A Expired - Fee Related JP5551512B2 (ja) 2010-05-21 2010-05-21 通信制御装置、データ通信方法及びプログラム

Country Status (2)

Country Link
US (1) US8635386B2 (ja)
JP (1) JP5551512B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140129742A1 (en) * 2012-11-08 2014-05-08 Nvidia Corporation Nak moderation in usb2/usb1.1 buses
US8938561B2 (en) * 2013-01-10 2015-01-20 Skymedi Corporation Time-sharing buffer access system
US8989011B2 (en) * 2013-03-14 2015-03-24 Mellanox Technologies Ltd. Communication over multiple virtual lanes using a shared buffer
US9325641B2 (en) 2014-03-13 2016-04-26 Mellanox Technologies Ltd. Buffering schemes for communication over long haul links
US9584429B2 (en) 2014-07-21 2017-02-28 Mellanox Technologies Ltd. Credit based flow control for long-haul links
JP7006106B2 (ja) * 2017-10-04 2022-01-24 セイコーエプソン株式会社 電子機器、及び、制御方法
CN108563595B (zh) * 2018-04-17 2020-09-25 上海固高欧辰智能科技有限公司 一种远距离传输usb数据的系统及方法
US10951549B2 (en) 2019-03-07 2021-03-16 Mellanox Technologies Tlv Ltd. Reusing switch ports for external buffer network
CN111930648B (zh) * 2020-08-07 2023-01-10 山东云海国创云计算装备产业创新中心有限公司 一种缓存配置方法、装置及电子设备和存储介质
US11558316B2 (en) 2021-02-15 2023-01-17 Mellanox Technologies, Ltd. Zero-copy buffering of traffic of long-haul links
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958027A (en) * 1997-08-05 1999-09-28 Advanced Micro Devices, Inc. Method and system for optimizing the flow of isochronous data and clock rate information
US6393493B1 (en) * 1998-04-20 2002-05-21 National Instruments Corporation System and method for optimizing serial USB device reads using virtual FIFO techniques
JP2001306482A (ja) * 2000-04-18 2001-11-02 Hitachi Ltd 入出力制御方法および装置
JP3415567B2 (ja) 2000-06-21 2003-06-09 エヌイーシーマイクロシステム株式会社 Usb転送制御方法およびusbコントローラ
US7035948B1 (en) * 2001-03-19 2006-04-25 Transdimension, Inc. System and method for USB controllers
JP3636157B2 (ja) * 2002-04-19 2005-04-06 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
DE102005009021A1 (de) * 2005-02-28 2006-09-07 Advanced Micro Devices Inc., Sunnyvale Vereinheitliche USB OTG-Steuerungseinheit
TWI297439B (en) * 2006-01-20 2008-06-01 Via Tech Inc Method for exchanging data with an usb device
JP5209535B2 (ja) * 2009-02-24 2013-06-12 ルネサスエレクトロニクス株式会社 Usbホストコントローラ及びusbホストコントローラの制御方法

Also Published As

Publication number Publication date
US20110289243A1 (en) 2011-11-24
JP2011243142A (ja) 2011-12-01
US8635386B2 (en) 2014-01-21

Similar Documents

Publication Publication Date Title
JP5551512B2 (ja) 通信制御装置、データ通信方法及びプログラム
KR101077900B1 (ko) 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치
US9734085B2 (en) DMA transmission method and system thereof
JP5349515B2 (ja) バッファ管理装置、バッファ管理方法及び記憶装置
JP4908017B2 (ja) Dmaデータ転送装置及びdmaデータ転送方法
EP1389760B1 (en) Data transfer control system, program and data transfer control method
JP5527512B2 (ja) バスプロトコル変換装置及びバスプロトコル変換方法
US7505461B2 (en) Data transfer control device, electronic instrument, and data transfer control method
JP2021501941A (ja) メモリブロックリクレーム方法およびメモリブロックリクレーム装置
KR20180030985A (ko) Usb 2.0 대역폭 예약을 위한 방법 및 시스템
US20060095637A1 (en) Bus control device, arbitration device, integrated circuit device, bus control method, and arbitration method
JP4855864B2 (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
KR101197294B1 (ko) QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법
US20090138673A1 (en) Internal memory mapped external memory interface
JP2004349836A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
CN113485643B (zh) 用于数据存取的方法及数据写入的控制器
US7451254B2 (en) System and method for adaptive buffer allocation in a memory device interface
JP2010198138A (ja) データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
JP5146284B2 (ja) データ転送装置及びデータ転送方法
CN111930648A (zh) 一种缓存配置方法、装置及电子设备和存储介质
JP2007018195A (ja) 情報処理方法および情報処理装置
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
CN115017093B (zh) 一种片上外部总线通信的方法以及装置
JP2004056376A (ja) 半導体装置及びデータ転送制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140522

R150 Certificate of patent or registration of utility model

Ref document number: 5551512

Country of ref document: JP

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