JP5753372B2 - データ処理装置およびその制御方法 - Google Patents

データ処理装置およびその制御方法 Download PDF

Info

Publication number
JP5753372B2
JP5753372B2 JP2010264296A JP2010264296A JP5753372B2 JP 5753372 B2 JP5753372 B2 JP 5753372B2 JP 2010264296 A JP2010264296 A JP 2010264296A JP 2010264296 A JP2010264296 A JP 2010264296A JP 5753372 B2 JP5753372 B2 JP 5753372B2
Authority
JP
Japan
Prior art keywords
input
data
output
control signal
router
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.)
Active
Application number
JP2010264296A
Other languages
English (en)
Other versions
JP2011151786A5 (ja
JP2011151786A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2010264296A priority Critical patent/JP5753372B2/ja
Priority to US12/968,694 priority patent/US9071504B2/en
Publication of JP2011151786A publication Critical patent/JP2011151786A/ja
Publication of JP2011151786A5 publication Critical patent/JP2011151786A5/ja
Application granted granted Critical
Publication of JP5753372B2 publication Critical patent/JP5753372B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Description

本発明はデータ処理装置及びその制御方法に関し、特に、ネットワークオンチップシステムを用いたデータ処理装置においてデータ通信効率を向上させるための技術に関する。
SoC(System−on−Chip)におけるIP(Intellectual Property)コア間のデータ通信技術として、ネットワークオンチップが知られている(非特許文献1を参照)。これは、コンピュータネットワークの発想をチップ内のモジュール間通信に応用した技術である。
ネットワークオンチップを用いたシステムは、一般的に複数のデータ処理モジュール(IPコア)と複数のルータとを備え、各データ処理モジュールはルータを介してデータを授受する。データの通信経路はファームウェアなどから設定することができる。これにより、データを処理するデータ処理モジュールの順序などを動的に変更できるため、柔軟性の高いデータ処理装置を実現可能となる。また、ルータを介して通信をするので、データ処理モジュールと他のデータ処理モジュールとを網羅的に信号線で直結する必要がない。このため、配線の削減が可能である。更に、データ処理モジュールの追加が容易であるので、拡張性にも優れている。
上記のルータは複数の入力ポートと複数の出力ポートとを具備し、各入力ポートへ入力されたデータに対して適切な出力ポートを選択して出力する。従来、ルータはデータ出力先の選択に、受け取った通信データに付随する情報を参照するのが一般的であった。例えば非特許文献1の10章や非特許文献2に記載されている構成では、送信先を識別するためのアドレス情報を通信データに付加し、このアドレス情報を基にルーティングを行う。
Axel Jantsch and Hannu Tenhunen,"Networks on Chip", UK, Kluwer Academic Publishers. Wolf−Dietrich Weber,"Enabling Reuse via an IP Core−centric Communications Protocol: Open Core Protocol", Sonics Inc.
しかしながら、上記の従来の構成では通信データに付加した情報の分だけ通信しなければならない情報の情報量が増える。そのため、データ通信のオーバーヘッドとなる。そこで、本発明はこのオーバーヘッドが低減されたデータ通信技術を提供することを目的とする。
上記目的を達成するため、本発明によるデータ処理装置は以下の構成を備える。即ち、
入力データに基づいてデータ処理を実施する複数のモジュールと、
前記入力データを転送するためのタイミングで制御信号を出力する制御手段と、
複数の入力ポートと、複数の出力ポートと、複数のデマルチプレクサと、記憶手段であって、前記入力ポートの識別情報、前記入力ポートへの入力タイミングの前記制御信号の値、前記出力ポートの識別情報及び前記出力ポートへの出力タイミングの前記制御信号の値、の対応関係を示す対応情報を記憶する記憶手段とを備え、前記複数のモジュール間でのデータ転送をする複数のルータと、
を備え、
前記デマルチプレクサは前記入力ポートへの入力タイミングの前記制御信号に対応して、前記複数の入力ポートの1つを前記対応情報に基づいて前記複数の出力ポートの1つに関連付け、
前記制御信号は前記データとは異なる別のものであり、
前記制御手段は各ルータに共通信号としてクロックサイクルごとに値を切り替えて前記制御信号を出力し、前記ルータは、前記制御手段が出力した制御信号の値が前記対応情報に示された前記出力ポートへの出力タイミングの前記制御信号の値のときに前記関連付けた出力ポートに前記入力データを出力す
ことを特徴とする。
本発明によれば、オーバーヘッドが低減されたデータ通信技術を提供することができる。
画像処理装置の構成例を示す図。 ルータの動作を説明する図。 仮想チャネルのマッピング例を説明する図。 ルータの動作を説明する図。 ルータの動作を説明する図。 ルータの構成例を示す図。 ルータの設定例を説明する図。 ルータの動作例を説明する図。 スロット制御部の構成例を示す図。 ネットワークインタフェースの構成例を示す図。 ネットワークインタフェースの動作例を説明する図。 画像処理装置の動作例を説明する図。 画像処理装置の動作例を説明する図。 画像処理装置の設定例を説明する図。 画像処理装置の構成例を示す図。 画像処理装置の動作例を説明する図。 画像処理装置の構成例を示す図。 画像処理装置の構成例を示す図。 ルータの構成例を示す図。
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
(処理概要)
図1に本発明の実施形態におけるデータ処理装置の構成例を示す。図1中、100は本データ処理装置である。本実施形態では、データ処理装置100の入力は画像データとする。入力された画像データに対し、各IP(Intellectual Property)コア210で動作モードに応じた画像処理を施して処理結果の画像を出力する。
IPコア210は、例えば色空間変換モジュール、フィルタ演算モジュール、解像度変換モジュールなどである。これらのモジュールが画像を処理する順序は一意ではない。ルータ230が画像データを動的にルーティングすることで、動作モードに応じて処理順序を変更できるようにする。また、処理順序の異なる複数の画像データシーケンスを同時に処理できるようにする。
このような処理を実現するため、本実施形態に係るルータ230はデータを受け取ったタイミングを基にルーティングを行う。このタイミングは、スロット制御部240が生成する通信制御信号245により制御される。このため、例えば送信先アドレスなどの情報を画像データに付随させる必要がない。したがって、各要素間を繋ぐ信号線のビット幅全てを画像データの転送に利用できる。
ここで、上記のような制御を行うための動作原理について説明する。例えば図2のような三入力三出力のルータを考える。図2中、350はルータ230の入力ポートであり、360は出力ポートである。図示したように、入力ポート350−1から入力されたデータは全て出力ポート360−1へ出力する。また、入力ポート350−2から入力されたデータは全て出力ポート360−3へ出力する。また、入力ポート350−3から入力されたデータは全て出力ポート360−2へ出力する。このような場合、ルータ230は各入力ポートを識別する番号と各出力ポートを識別する番号との対応を取るテーブルがあれば問題なく処理できる。
しかしながら、例えば複数の画像データシーケンスの同時処理を考えると、入力ポート350−1から入力されたデータを、データ毎に出力ポート360−1と出力ポート360−2に振り分けるなどといった必要性が生じる。データ毎に出力ポートを適切に選択するには、従来の構成のようにデータに出力ポートを選択するための付加情報を付随させ、この付加情報を参照することで実現することもできる。しかし、本実施形態ではデータ入力のタイミングに有意性を持たせることでルーティングに必要な情報を得る。これにより、データ通信のオーバーヘッドを低減することができる。
ここで、各ポートの信号線を時間軸方向に分割し、それぞれを仮想的な通信チャネル(以下、仮想チャネルと呼ぶ)として考える。図3に四分割の場合における仮想チャネルの概念図を示す。図3中、381、382、383、384、385、386はそれぞれ仮想チャネルである。各仮想チャネルの通信のスループットは、例えば元のポートの1/4ずつとなる。通信制御信号245は各クロックサイクルにおける、有効な仮想チャネルを指し示す。すなわち、例えば通信制御信号245の値が”1”の時、仮想チャネルは381−1、382−1、383−1、384−1、385−1、386−1がそれぞれ有効である。通信制御信号245の値が”2”の時、仮想チャネルは381−2、382−2、383−2、384−2、385−2、386−2がそれぞれ有効である。通信制御信号245の値が”3”の時、仮想チャネルは381−3、382−3、383−3、384−3、385−3、386−3がそれぞれ有効である。通信制御信号245の値が”4”の時、仮想チャネルは381−4、382−4、383−4、384−4、385−4、386−4がそれぞれ有効である。以降では、このように通信制御信号の値によって区別したクロックサイクルの集合をスロットと呼ぶ。
図4および図5を用いて、上記の通信制御信号245による制御を説明する。図4は通信制御信号245が”1”のスロットを示し、図5は通信制御信号245が”2”のスロットを示している。このように、各スロットにおける有効な仮想チャネルのみを切り出して考えると、図2と同等となる。すなわち、入力ポートの識別番号(識別情報)および入力スロット(データが入力されたクロックサイクルにおける通信制御信号の値)によって、出力ポートを選択できることを意味する。ただし、出力ポートの接続先が別のルータである場合、データを出力したスロットによって更にその先へルーティングされるため、出力するスロットもまた適切に選択する必要がある。したがって、入力ポートの識別番号および入力スロット(データが入力されたクロックサイクルにおける通信制御信号の値)によって、出力ポートおよび出力スロット(出力するクロックサイクルにおける通信制御信号の値)を選択する。これにより、本実施形態に係るルーティングを実現できる。なお、本実施形態では、データの入力スロットはデータの入力タイミングに相当し、出力スロットはデータの出力タイミングに相当する。
この時、入力の仮想チャネルと出力の仮想チャネルとのマッピングは、図に示した例のように1対1である必要がある(使用しない仮想チャネルは開放でもよい)。例えば、1対多の接続(分岐)があるとすれば、出力先の選択に他の情報が必要であることを意味する。また、多対1の接続(統合)があるとすれば、データを同時に同じポートへ出力することになるので、データの衝突によるストールやデータの消失が生じる。逆に言えば、1対1の接続である時、入力データを所定の仮想チャネルに出力するだけであるため、送信先アドレスといったルーティングのための情報は不要であり、またデータの衝突がルータ内で生じないことを保証できる。
(データ処理装置の構成要素)
次に、図1中の各要素の概略を述べる。外部インタフェース200は、図示していないメモリやプロセッサなどの外部モジュールと接続されている。画像処理パラメータや動作モード設定のための制御データ、および入力画素データ、出力画素データなどをこれらの外部モジュールとやり取りする。本実施形態では、一例として、入力画素データおよび出力画素データは、24ビット(RGB各8ビット)とする。
ネットワークインタフェース220は、各IPコア210のプロトコルとルータ230のプロトコルとの差異、もしくは外部インタフェース200のプロトコルとルータ230のプロトコルとの差異を吸収する。なお、以降ではネットワークインタフェース220とルータ230を合わせてネットワークノードと呼ぶ。
ネットワークノード間の信号線はいずれも双方向に接続されている。信号線のビット幅は8ビットとする。8ビットを越えるデータを授受する場合は、送信側ネットワークインタフェースで8ビット単位に分割し、受信側ネットワークインタフェースで復元する。また、ルータ230−1からルータ230−2へ、ルータ230−2からルータ230−3へと繋がる方向(すなわち、時計回りの方向)を順方向と呼ぶ。ルータ230−2からルータ230−1へ、ルータ230−1からルータ230−8へと繋がる方向(すなわち、反時計回りの方向)を逆方向と呼ぶ。
スロット制御部240は、データ処理装置100内で共通の通信制御信号を生成する。本実施形態では、通信制御信号は”0”、”1”、”2”、”3”、”4”のいずれかの値を取るとして説明する。通信制御信号は全てのネットワークノードへ同時に入力され、ネットワークノード間の通信は通信制御信号に同期して行われる。なお、通信制御信号の値が”0”の時は全ての通信を一時的に止める。このように、本実施形態では、各ルータ230に対して共通の制御信号を出力するため、実装が容易である。
(ルータ)
次に、データ処理装置100の各要素について詳説する。ルータ230は、複数のモジュール間のデータ伝送を中継するために、データの入力ポートおよび入力スロットごとに、データの出力ポートおよび出力スロットを処理開始前に設定可能な構成をとる。ルータ230の構成例を図6に示す。図6中、245はスロット制御部240で生成された通信制御信号、300はルーティングテーブル(対応情報)、310はデマルチプレクサである。また、320はスイッチ、330はスロットレジスタ、340はマルチプレクサ、350は入力ポート、360は出力ポートである。
入力ポート350−1,2,3の入力ポート識別番号(識別情報)をそれぞれ”1”、”2”、”3”とする。出力ポート360−1,2,3の出力ポート識別番号(識別情報)をそれぞれ”1”、”2”、”3”とする。
ルーティングテーブル300は、データが入力されたポートの入力ポート識別番号と入力スロット(データが入力されたクロックサイクルにおける通信制御信号245の値)とを入力とする。そして、データを出力するポートの出力ポート識別番号301と出力スロット302(データを出力するクロックサイクルにおける通信制御信号245の値)とを出力する。このように、ルーティングテーブル300は、入力ポート及び入力スロットの識別情報と、出力ポート及び出力スロットの識別情報との対応関係を示す対応情報に該当し、予め記憶装置に記憶されている。なお、本実施形態では、入力スロットの識別情報は制御信号の値として特定される。
ルーティングテーブル300の中身は処理開始前にファームウェアなどから設定する。この時、出力ポート識別番号と出力スロットの組合せが同じ複数のエントリが存在すると、前述した仮想チャネルのマッピングは多対1になる。そのため、出力ポート識別番号と出力スロットの組合せは排他である必要がある。
ルータ230の他の部分は、このルーティングテーブル300を参照して、入力データを適切なポートから適切なタイミングで出力するための構成となっている。デマルチプレクサ310は、ルーティングテーブル300を参照して求められた出力ポート識別番号301を基に、入力データを出力するスイッチ320を決定する。例えば、出力ポート識別番号301が”1”であればスイッチ320−1、出力ポート識別番号301が”2”であればスイッチ320−2、出力ポート識別番号301が”3”であればスイッチ320−3へ入力データを送る。
スイッチ320は、図6に示したように三つの入力と四つの出力を持つ。入力はそれぞれデマルチプレクサ310に接続されており、出力はそれぞれスロットレジスタ330内のレジスタに接続されている。スイッチ320は、ルーティングテーブル300を参照して求められた出力スロット302を基に、入力データをスロットレジスタ330内の所定のレジスタへ格納する。
スロットレジスタ330はデータ四つ分(計32ビット)を格納できるレジスタを備える。各レジスタは出力スロットが”1”、”2”、”3”、”4”の場合にそれぞれ対応しており、通信制御信号245がその値を指し示すまでは(すなわち、マルチプレクサ340に選択されて出力されるまでは)データを保持する。
マルチプレクサ340は、スロットレジスタ330のうち、通信制御信号245が指し示すスロットに対応するレジスタに格納されているデータを出力ポート360へ出力する。ただし、通信制御信号245の値が”0”の場合、出力ポート360は前サイクルでの値を維持する。
次に、ルータ230の動作について、例を用いて説明する。図7にルーティングテーブル300の設定例を示す。図7中、iPortは入力ポート識別番号、iSlotは入力スロット、oPortは出力ポート識別番号、oSlotは出力スロットをそれぞれ示している。この例では、1番の入力ポートへ入力されたデータは、2番の出力ポートへルーティングされる。2番の入力ポートへ入力されたデータは、1番と3番の出力ポートへ分岐してルーティングされる。3番の入力ポートへ入力されたデータは3番の出力ポートへルーティングされる。図7のように、出力スロットoSlotは入力スロットiSlotの値によって切り替えられる。
この場合のタイミングチャート例を図8に示す。図8中、clockはシステムクロック、slotCtrlは入力スロットを示す通信制御信号245、iPort(N)はそれぞれ入力ポート識別番号が(N)である入力ポートである。regSlot(N)−(M)はそれぞれスロットレジスタ330−(N)内における出力スロットが(M)の場合に対応するレジスタ、oPort(N)はそれぞれ出力ポート識別番号が(N)である出力ポートである。d♯(♯は1,2,3,...,A,B,C,...,α,β,γ,...)はそれぞれ通信データを示している。ここで、♯は各データを区別するための記号である。
例えば、iPort1に入力されたデータd1は、入力ポート識別番号が”1”で、入力スロットが”1”であるため、ルーティングテーブルを参照して出力ポート識別番号は2、出力スロットは2と求められる。したがって、デマルチプレクサ310−1によりスイッチ320−2に送られ、更にスイッチ320−2により、スロットレジスタ330−2内における出力スロットが”2”の場合に対応するレジスタに格納される。これは、図8中のregSlot2−2に示されている。regSlot2−2に格納されたデータd1は、slotCtrlの値が”2”のクロックサイクルでマルチプレクサ340−2によりoPort2へ出力される。
また、例えば同時に入力されたデータdBとデータdαはどちらも出力ポート識別番号は”3”である。しかし、出力スロットが異なるため、データdBはregSlot3−3へ格納され、データdαはregSlot3−4へ格納される。マルチプレクサ340−3は出力スロットに対応するレジスタregSlot3−1,2,3,4の値を順次出力するので、dB、dαの順で出力される。このように、同一の出力ポートへ出力するデータであっても、異なる出力スロットを設定すれば、競合なく処理できる。
なお、図8に示したように、slotCtrlが”0”であるクロックサイクルにおいては、入力データは無効である。また、出力データは次サイクルまで保持される。
(スロット制御部)
スロット制御部240は通信制御信号245を生成し、ネットワークノード間の全通信を制御する。具体的には、複数のルータの各々に制御信号を出力して、ルータの経路選択を制御する。スロット制御部240の構成例を図9に示す。図9中、500はストール信号、510はスロットテーブル、520はマルチプレクサである。
スロットテーブル510はS個のエントリを持つLUTである。ストール信号500がOFFの時、LUTのポインタは1からT(1≦T≦S)までの値をクロックサイクルに合わせて繰り返しインクリメントし、ストール信号500がONの時、LUTのポインタは前の値を維持する。ここで、Tはデータ処理装置100の動作周期をクロック単位で示す値である。各エントリの中身およびTは例えばファームウェアによりあらかじめ設定する。
マルチプレクサ520では、ストール信号500がOFFの時、LUTのポインタが指し示すエントリの値を出力し、ストール信号500がONの時、”0”を出力する。ストール信号500は、例えば外部インタフェース200が外部モジュールへデータを出力できない時、ONにする。これにより、データ処理装置100内の通信を全て一時的に止めることができる。このようにして、入力された制御信号の値が所定値の場合に、ルータ230に、データ伝送の中継を停止させることができる。
以上により、ストール信号500がOFFである通常動作時、通信制御信号245は周期Tサイクルで所定のパターンを繰り返す。したがって、各スロットの値がT以下のエントリに格納されている頻度は、各スロットのスループットを決定する。例えば、T=4であり、スロットテーブル510に”1”、”2”、”3”、”4”の順で格納されているとすれば、スロット1〜4のスループットはそれぞれ1/4[Byte/cycle]となる。例えば、T=6であり、スロットテーブル510に”1”、”2”、”3”、”1”、”2”、”4”の順で格納されているとすれば、スロット1〜4のスループットはそれぞれ1/3、1/3、1/6、1/6[Byte/cycle]となる。
また、前述したようにルータ230の動作は通信制御信号245に同期している。そのため、上記通信制御信号245の周期性により、ルータ230もまた周期Tサイクルで動作する。これにより、各ルータ230において全データが問題なく処理できるようにルーティングテーブル300などを設定するには、一周期分のデータのみを考慮するだけでよい。このようにして、スロット制御部240は、制御信号として、予め設定された複数の値を順に所定のタイミングで繰り返し出力する。したがって、スロット制御部240は、図9のように単純な構成で容易に実装することが可能である。
(ネットワークインタフェース)
ネットワークインタフェース220は、ルータ230とIPコア210との間でビット幅やスループットの差異を吸収し、またルータ230へのデータ送出タイミングを調整する。ネットワークインタフェース220の構成例を図10に示す。図10中、410は統合部、430はFIFO(First−In, First−Out)、440は分割部、460はタイミング調整部である。
ルータ230からネットワークインタフェース220へ入力されたデータは、まず統合部410へ送られる。統合部410では、入力データを必要に応じて複数回分蓄積し、IPコア210へ入力する形式へとまとめる。例えば、IPコア210への入力は画素データ24ビットおよび属性情報8ビットで計32ビットであるとする。これらのデータは他のIPコア210からルータ230を介して8ビットずつ順次入力される。この場合、ルータ230から入力されたデータを統合部410で4回分蓄積し、入力形式に統合してFIFO430へ渡す。
FIFO430では、IPコア210への入力スループットの変動を吸収する。ここで、入力スループットの変動とは、IPコア210へデータを入力できる間隔がIPコアの内部状態によって変化することを意味している。本実施形態では、入力スループットの変動を時間方向に平均化することにより、ネットワークインタフェース220への入力スループットは変動がないとして取り扱うことができるようにする。動作例を後で説明する。
分割部440では、IPコア210が出力するデータを分割し、ルータ230が扱うデータ形式に変換する。例えば、IPコア210が出力するデータが16ビットであるとすれば、データを転送単位である8ビットごとに分割し、2回に分けてタイミング調整部460へ送る。
タイミング調整部460では、通信制御信号245の値が、あらかじめ設定された出力スロットと一致する場合にデータを出力する。一致しない場合は一致するまでデータを一時的に蓄積する。この出力スロットは、例えばファームウェアにより処理開始前に設定しておく。ネットワークインタフェース220からのデータを受け取るルータ230では、どのスロットでデータが入力されたかによってデータの宛先が決まる。よってこの出力スロットの値は、隣接するルータ230のルーティングテーブルに合わせる必要がある。
このように、FIFO430及びタイミング調整部460は、モジュールとルータとの間のスループットの違いを吸収するスループット緩衝手段として機能する。また、統合部410及び分割部440は、モジュールとルータとの間のビット幅の違いを吸収するビット幅緩衝手段として機能する。
入力スループットの変動の吸収について説明する。例えば、IPコア210として解像度変換モジュールを考える。出力スループットは1/2[pixel/cycle]で一定であるとする。画素の入力順序および出力順序はラスタ順とし、また縦方向および横方向の倍率はそれぞれ二倍とする。この時、画素数は入力の四倍になるので入力スループットは平均1/8[pixel/cycle]となる。ただし、一行の入力データに対し、画素数が二倍となった行が出力され、その後もう一行出力されるため、入力スループットは出力一行ごとに異なる。FIFO430は入力データをバッファリングし、この入力スループットの変動を隠蔽する。
ネットワークインタフェース220の動作を示すタイミングチャートの例を図11に示す。図11中、clock はシステムクロック、input NI はルータ230からネットワークインタフェース220への入力、input IP はIPコア210への入力、output IP はIPコア210からの出力をそれぞれ示している。図11では各信号の値が High の時にデータの入力もしくは出力があることを示している。また、”Y−th line @Z” はデータが画像中においてY行目であり、そのスループットがZ[pixel/cycle]であることを示している。入力画像中のP行目(図11中、600)の入力に対し、出力画像中のQ行目(図11中、620)と(Q+1)行目(図11中、630)が出力される場合、(Q+1)行目の出力時には新たな入力データは必要ない(図11中、610)。このため、IPコア210への入力としては、スループットが1/4[pixel/cycle]の行と、それと同程度のサイクル数のブランク期間とが交互に必要となる。
このような入力スループットの変動を吸収するため、FIFO430では入力一行分を保持して遅延させる。すなわち、IPコアへの入力がP行目である時(図11中、600)、FIFO430では(P+1)行目の入力をバッファリングする(図11中、640)。これにより、スループットが1/8[pixel/cycle]の行が連続する input NI を、スループットが1/4[pixel/cycle]の行とブランク期間が交互に必要な input IP へ変換し、IPコア210へ供給する。input NI は入力スループットに変動がないので、ネットワークインタフェース220は入力スループットの変動がないモジュールとなる。
(動作例)
次に、本データ処理装置100の動作例を説明する。ルータ230の入力ポート識別番号1の入力ポートおよび出力ポート識別番号1の出力ポートは順方向に隣接するルータ230と接続されている。同様に、入力ポート識別番号2の入力ポートおよび出力ポート識別番号2の出力ポートは逆方向に隣接するルータ230と接続されている。入力ポート識別番号3の入力ポートおよび出力ポート識別番号3の出力ポートはネットワークインタフェース220と接続されている。
既述したように、本データ処理装置100内の各ネットワークノード間の通信は、スロット制御部240が生成する通信制御信号245に同期して行われる。よって、各スロットの周期が各ネットワークノードの処理性能を超過すると、データの一部消失といった不具合を招く可能性がある。そのため、各IPコア210の処理スループットと処理順序とを勘案して、適切にスロットテーブル510の中身を設定する必要がある。
例えば、各IPコア210の入力スループット、出力スループット、および処理順序が図12に示す通りであるとする。このときのデータの流れを図13に示す。1/6[pixel/cycle]のスループットで外部インタフェース200からデータがデータ処理装置100内に入力されたとする。この場合、IPコア210−2、IPコア210−4、IPコア210−3、IPコア210−5、IPコア210−6、IPコア210−7、IPコア210−8でそれぞれ順番に処理される。IPコア210−8ではスループット1/4[pixel/cycle]で出力され、外部インタフェース200からデータ処理装置100外に出力される。
この場合、スロット制御部240におけるスロットテーブル510のエントリには順に”1”、”2”、”3”、”4”を設定し、T=4として通信制御信号245を生成する。このようにすることで、ストール信号500がOFFの時、通信制御信号245は”1”、”2”、”3”、”4”を周期的に繰り返す。すなわち、各スロットはそれぞれスループット1/4[Byte/cycle]として実現される。一画素は24ビットであり、また一転送単位は8ビットなので、一画素の転送には三回の転送が必要となる。すなわち、各スロットのスループットは1/12[pixel/cycle]である。よって、外部インタフェース200からIPコア210−8まではスロットを二つ使用してデータを転送することで、1/6[pixel/cycle]のスループットを達成できる。IPコア210−8から外部インタフェース200へはスロットを三つ使用してデータを転送することで、1/4[pixel/cycle]のスループットを達成できる。
ここで、通信制御信号の値が”1”の時のスロットをスロット1(図13中、s1と表記)、通信制御信号の値が”2”の時のスロットをスロット2(図13中、s2と表記)などと呼ぶこととする。例えば、ネットワークインタフェース220−1からネットワークインタフェース220−3までのデータパスではスロット1およびスロット3を使用してデータを転送している。ネットワークインタフェース220−3からルータ230−3までのデータパスではスロット2およびスロット4を使用している。これは、ルータ230−3における順方向出力のスロット1およびスロット3は既に使われているためである。ルータ230−4からネットワークインタフェース220−8までのデータパスではスロット1およびスロット3を使用している。ネットワークインタフェース220−8からネットワークインタフェース220−1まではスロット1、スロット2、およびスロット3を使用している。
このようなルーティングを実現するためのルータ230内のルーティングテーブルの設定例を示す。ルータ230−1では、例えば図14(RT1)のテーブルのように設定する。これにより、順方向(すなわち、ルータ230−8)から入力されたスロット1、2、3のデータに対し、出力スロット1、2、3を用いて順次ネットワークインタフェース220−1へルーティングする。また、ネットワークインタフェース220−1から入力されたスロット1、3のデータに対し、出力スロット1、3を用いて順方向へ順次出力する。
ルータ230−2,5,6,7では、例えば図14(RT2)のテーブルのように設定する。これにより、順方向から入力されたスロット1、3のデータに対し、出力スロット1、3を用いて順次ネットワークインタフェース220−2,5,6,7へルーティングする。また、ネットワークインタフェース220−2,5,6,7から入力されたスロット1、3のデータに対し、出力スロット1、3を用いて順方向へ順次出力する。
ルータ230−3では、例えば図14(RT3)のテーブルのように設定する。これにより、順方向(すなわち、ルータ230−2)から入力されたスロット1、3のデータに対し、出力スロット1、3を用いて順方向(すなわち、ルータ230−4)へ順次出力する。また、逆方向(すなわち、ルータ230−4)から入力されたスロット1、3のデータに対し、出力スロット1、3を用いて順次ネットワークインタフェース220−3へルーティングする。また、ネットワークインタフェース220−3から入力されたスロット2、4のデータに対し、出力スロット2、4を用いて順方向(すなわち、ルータ230−4)へ順次出力する。
ルータ230−4では、例えば図14(RT4)のテーブルのように設定する。これにより、順方向(すなわち、ルータ230−3)から入力されたスロット1、3のデータに対し、出力スロット1、3を用いて順次ネットワークインタフェース220−4へルーティングする。また、順方向(すなわち、ルータ230−3)から入力されたスロット2、4のデータに対し、出力スロット1、3を用いて順方向(すなわち、ルータ230−5)へ順次出力する。また、ネットワークインタフェース220−4から入力されたスロット1、3のデータに対し、出力スロット1、3を用いて逆方向(すなわち、ルータ230−3)へ順次出力する。
ルータ230−8では、例えば図14(RT5)のテーブルのように設定する。これにより、順方向(すなわち、ルータ230−7)から入力されたスロット1、3のデータに対し、出力スロット1、3を用いて順次ネットワークインタフェース220−8へルーティングする。また、ネットワークインタフェース220−8から入力されたスロット1、2、3のデータに対し、出力スロット1、2、3を用いて順方向(すなわち、ルータ230−1)へ順次出力する。以上により、図12に示した要求仕様を満たすことができる。
以上のように、本実施形態では、複数のルータ230の各々は、入力された制御信号の値を利用して、データ送出に用いる出力ポート及び出力タイミングを決定する。このため、伝送データにルーティングを制御するための情報を付加する必要がなく、効率的なデータ伝送が可能になる。
また、ルータ230はルーティングテーブル300を参照して、データ送出に用いる出力ポート及び出力タイミングを決定する。このため、構成が複雑でなく、実装が容易である。
以上説明したように、本実施形態ではスロット制御部が生成する通信制御信号に同期して各ネットワークノード間の通信を行う。これにより、通信データにルーティングのための情報を付加することなくデータ通信を実現できる。したがって、オーバーヘッドが低減されたデータ通信技術の提供が可能である。
なお、本実施形態では、通信制御信号245の値が”0”の場合は通信を一時停止させ、他の値の場合は通常動作であったが、他にも特定用途のスロットがあってもよい。例えば、IPコア210のパラメータを設定するためのスロットがあってもよい。また、本実施形態においては通信制御信号245の値を”0”、”1”、”2”、”3”、”4”の五種としたが、任意の数で実現できる。通信制御信号245の値をワンホットで表現してもよい。
さらに、IPコア210はデータの通信制御信号の値をデータ処理時のパラメータとして用いてもよい。例えばフィルタ演算を行うIPコアで、スロットに応じてフィルタの係数を切り替えてもよい。
入力を画像データとし、IPコア210で画像処理を行うとしたが、任意の処理内容で実現できる。例えば、音声データや文書データ、アプリケーション・プログラム等でもよい。
また、ルータ230におけるルーティングには入力ポート識別番号と入力スロットのみを用いたが、他の情報と併用してもよい。例えば、入力ポート識別番号および入力スロットに加え、データに付随する情報を参照してもよい。
また、ネットワークインタフェース220は上記で説明した構成に限らない。例えば、IPコア210の入力スループットに変動が無ければFIFO430は無くてもよい。IPコア210のビット幅がルータ230のビット幅以下であれば統合部410および分割部440は無くてもよい。
前述の構成では八つのルータをリング状に接続したが、これに限られるわけではない。次に図15のようなトポロジで構成した場合について説明する。図15ではルータ230−2、3、4、5は四入力四出力であるが、其々の構成は前述の構成と同様である。図15のルータは、スロット数がAで、入力ポート数がB、出力ポート数がCである場合、以下を備えている。
・エントリ数が(A×B)であるルーティングテーブル。
・C出力のB個のデマルチプレクサ。
・B入力A出力のC個のスイッチ。
・A個分のデータが格納可能なC個のスロットレジスタ。
・A入力のC個のマルチプレクサ。
この構成における動作例を図16に示す。このように、二つの外部インタフェースから異なるデータシーケンスが同時に入力されても、各ルータ230のルーティングテーブルにおいて出力ポート番号と出力スロットの組合せが排他である限り問題なく処理できる。このように、図15の構成ではトポロジを限定しないので、アプリケーションに応じて容易に構成を変更できる。
前述の説明ではIPコア間でのデータ通信について説明したが、次にマルチプロセッサシステムに係る構成を説明する。構成例を図17に示す。図17中、800はプロセッサである。プロセッサ800は全て同じプロセッサでなくてもよい。
スロット制御プロセス830は、プロセッサ800上で通信制御信号245を生成する関数である。画像処理プロセス810は、プロセッサ800上で各種画像処理を行う関数である。ルーティングプロセス820は、プロセッサ800上で隣接するプロセッサとデータを通信する関数である。データを受け取ったタイミングにおける通信制御信号245の値および通信データが入力されたポートに割り振られた入力ポート識別番号により、データの出力ポートおよびデータを出力するタイミングを決定する。ここでのポートとはハードウェアとして実装されたポートでもよいし、ソフトウェアで実装されたポートでもよい。以上のような構成により、データ通信を実現できる。
以上説明したように、マルチプロセッサシステムにおいても、通信のオーパヘッドを低減することができる。なお、マルチプロセッサの構成の上記実施形態で述べた構成に限らない。例えば、スロット制御プロセス830と画像処理プロセス810が同じプロセッサ上で動作してもよい。複数のスロット制御プロセス830が複数のプロセッサ上で並列に動作し、それらを同期する機構があってもよい。
前述の構成ではスロット制御部が通信制御信号を生成し、各ネットワークノードに配信した。このため、スロット制御部を中心として放射状に通信制御信号を配線する必要がある。よってネットワークノードの数が大きくなると、配線が困難になる可能性がある。本実施例では、各ネットワークノードがそれぞれ通信制御信号を自己生成する。
通信制御信号は通常、周期的であるため、各ネットワークノード間で同期が取れていれば(通信制御信号の値が同じであれば)、前述の構成と同等の機能を実現できる。ただし、通信を止める場合(すなわち通信制御信号の値を0とする場合)に用いるストール信号はネットワークノード間でリレーする。これにより、ストールのタイミングをも同期できるようにする。
構成例を図18に示す。図示したように、ストール発行部940をリング状に接続されたルータ間の1ノードとして接続する。図中、縦縞の矢印はストール信号950の伝搬を示している。ストール信号はストール発行部940から1サイクルに1ノードずつ順番にリレーされていく。すなわち図18の場合は、一番遠いネットワークインタフェース920−4および920−5まで5サイクルかかる。
ストールはネットワークノード間で同期させる必要があるため、ストール発行部940からストール信号が発行されてから5サイクル後に全通信を一時停止させる事とする。例えばルータ930−1はストール信号を受け取ってから5サイクル後に通信を一時停止させる。ルータ930−3はストール信号を受け取ってから3サイクル後に通信を一時停止させる。ネットワークインタフェース920−4はストール信号を受け取って次のサイクルで通信を一時停止させる。このようにする事でストールを同一のタイミングとする事ができる。
図19にルータの構成例を示す。図示したように、この場合ネットワークノードは図9で示したスロット制御部の機能を内包する。これにより、通信制御信号245を内部で生成する。ストール信号950はタイマ960へ入力され、ここで所定のサイクル数待たされる。このサイクル数は前述したように、ストール発行部940への距離によって異なる。なお、ネットワークインタフェースも同様である。以上により、各ネットワークノード間で生成する通信制御信号の値は同一となり、前述の制御と同様の制御が可能になる。
以上説明したように、各ネットワークノード内部で通信制御信号を生成させることもできる。この場合ストールを同期させるための機構が必要になる。
なお、ネットワークノードそれぞれが通信制御信号を生成部したが、いくつかのネットワークノードでこれを共有しても良い。(なお全てのネットワークノードで共有すると前述の構成と同様となる。)ストール発行部は複数あっても良い。
上記の各構成によれば、ルータは通信制御信号の値を参照してルーティングを行う。これにより、通信データに付加する情報の情報量を低減させることができるため、データ通信効率の向上が可能である。例えば、ルータ間におけるデータ通信の帯域幅が32[bit/cycle]だと仮定する。上記従来の方法の場合、通信データに付加する情報が16ビットだとすれば、1サイクルに転送できる通信データは最大で16ビットである。一方、本発明によれば1サイクルに転送できる通信データは最大で32ビットとなる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (9)

  1. 入力データに基づいてデータ処理を実施する複数のモジュールと、
    前記入力データを転送するためのタイミングで制御信号を出力する制御手段と、
    複数の入力ポートと、複数の出力ポートと、複数のデマルチプレクサと、記憶手段であって、前記入力ポートの識別情報、前記入力ポートへの入力タイミングの前記制御信号の値、前記出力ポートの識別情報及び前記出力ポートへの出力タイミングの前記制御信号の値、の対応関係を示す対応情報を記憶する記憶手段とを備え、前記複数のモジュール間でのデータ転送をする複数のルータと、
    を備え、
    前記デマルチプレクサは前記入力ポートへの入力タイミングの前記制御信号に対応して、前記複数の入力ポートの1つを前記対応情報に基づいて前記複数の出力ポートの1つに関連付け、
    前記制御信号は前記データとは異なる別のものであり、
    前記制御手段は各ルータに共通信号としてクロックサイクルごとに値を切り替えて前記制御信号を出力し、前記ルータは、前記制御手段が出力した制御信号の値が前記対応情報に示された前記出力ポートへの出力タイミングの前記制御信号の値のときに前記関連付けた出力ポートに前記入力データを出力す
    ことを特徴とするデータ処理装置。
  2. 前記複数のルータの各々は、前記出力ポート毎にレジスタを更に備え、
    前記レジスタは前記出力ポートへの出力タイミングの前記制御信号の値に対応した出力データを保持する
    ことを特徴とする請求項1に記載のデータ処理装置。
  3. 前記制御手段は、データ送出に用いる前記出力ポート及び前記出力タイミングを決定する際に、当該データが入力された入力ポートの識別情報を利用することを特徴とする請求項1に記載のデータ処理装置
  4. 前記制御信号として、予め設定された複数の値を順に所定のタイミングで繰り返し出力することを特徴とする請求項1に記載のデータ処理装置。
  5. 前記モジュールと前記ルータとの間のスループットの違いを吸収するスループット緩衝手段をさらに備えることを特徴とする請求項1に記載のデータ処理装置。
  6. 前記モジュールと前記ルータとの間のビット幅の違いを吸収するビット幅緩衝手段をさらに備えることを特徴とする請求項1に記載のデータ処理装置。
  7. 前記制御手段は、制御信号として連続する整数値を等間隔で出力することを特徴とする請求項1に記載のデータ処理装置。
  8. 前記ルータは制御信号からの値がある値であれば、リレーを保留することを特徴とする請求項1に記載のデータ処理装置。
  9. データ処理装置の制御方法であって、
    複数のモジュールが、入力データに基づいてデータ処理を実施する工程と、
    制御手段が、前記入力データを転送するためのタイミングで制御信号を出力する工程と、
    複数の入力ポートと、複数の出力ポートと、複数のデマルチプレクサと、記憶手段であって、前記入力ポートの識別情報、前記入力ポートへの入力タイミングの前記制御信号の値、前記出力ポートの識別情報及び前記出力ポートへの出力タイミングの前記制御信号の値、の対応関係を示す対応情報を記憶する記憶手段とを備えた複数のルータが、前記複数のモジュール間でのデータ転送をする工程と、
    を有し、
    前記デマルチプレクサは、前記入力ポートへの入力タイミングの前記制御信号に対応して、前記複数の入力ポートの1つを前記対応情報に基づいて前記複数の出力ポートの1つに関連付け、
    前記制御信号は、前記データとは異なる別のものであり、
    前記制御手段は、各ルータに共通信号としてクロックサイクルごとに値を切り替えて前記制御信号を出力し、前記ルータは、前記制御手段が出力した制御信号の値が前記対応情報に示された前記出力ポートへの出力タイミングの前記制御信号の値のときに前記関連付けた出力ポートに前記入力データを出力す
    ことを特徴とするデータ処理装置の制御方法。
JP2010264296A 2009-12-22 2010-11-26 データ処理装置およびその制御方法 Active JP5753372B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010264296A JP5753372B2 (ja) 2009-12-22 2010-11-26 データ処理装置およびその制御方法
US12/968,694 US9071504B2 (en) 2009-12-22 2010-12-15 Data processing apparatus and method of controlling the same

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009291398 2009-12-22
JP2009291398 2009-12-22
JP2010264296A JP5753372B2 (ja) 2009-12-22 2010-11-26 データ処理装置およびその制御方法

Publications (3)

Publication Number Publication Date
JP2011151786A JP2011151786A (ja) 2011-08-04
JP2011151786A5 JP2011151786A5 (ja) 2014-01-16
JP5753372B2 true JP5753372B2 (ja) 2015-07-22

Family

ID=44151005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010264296A Active JP5753372B2 (ja) 2009-12-22 2010-11-26 データ処理装置およびその制御方法

Country Status (2)

Country Link
US (1) US9071504B2 (ja)
JP (1) JP5753372B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812727B1 (en) 2011-06-23 2014-08-19 Amazon Technologies, Inc. System and method for distributed load balancing with distributed direct server return
JPWO2015194072A1 (ja) * 2014-06-18 2017-04-20 日本電気株式会社 中継装置、通信装置、管理装置、中継方法および中継プログラム
CN111684769B (zh) * 2017-11-06 2023-03-24 思想系统公司 包括基于表的动作的匹配处理单元的网络系统
CA3091265A1 (en) 2018-02-22 2019-08-29 Michael Brian Galles Programmable computer io device interface
US11134030B2 (en) * 2019-08-16 2021-09-28 Intel Corporation Device, system and method for coupling a network-on-chip with PHY circuitry

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU665521B2 (en) * 1990-10-03 1996-01-11 Thinking Machines Corporation Parallel computer system
TW357521B (en) * 1996-12-26 1999-05-01 Dsc Telecom Lp Data transfer system and method for distributed digital cross-connect system
US6570872B1 (en) * 1999-04-06 2003-05-27 Nortel Networks Limited Self-configuring distributed switch
US6693914B1 (en) * 1999-10-01 2004-02-17 Stmicroelectronics, Inc. Arbitration mechanism for packet transmission
US7266122B1 (en) * 2002-11-27 2007-09-04 Genband Inc. System and method for allocating bandwidth in a communications environment
JP4199994B2 (ja) * 2002-12-09 2008-12-24 株式会社日立製作所 信号通信装置および信号通信方式
KR100493096B1 (ko) * 2003-05-07 2005-06-02 삼성전자주식회사 고속 광 라우팅 장치 및 그 방법
JP4365672B2 (ja) * 2003-12-04 2009-11-18 株式会社日立製作所 パケット通信ノード装置
KR20040052921A (ko) * 2004-05-17 2004-06-23 김기천 분산 트래픽 제어를 위한 클록 동기화 장치
JP4332079B2 (ja) * 2004-07-01 2009-09-16 株式会社日立製作所 モジュール型パケット通信ノード装置
JP4373322B2 (ja) * 2004-12-22 2009-11-25 日本電信電話株式会社 データ転送ネットワークおよびネットワーク制御装置
JP2008538670A (ja) * 2005-04-21 2008-10-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ通信ネットワークを備えた集積回路及びic設計方法
US7599289B2 (en) * 2005-05-13 2009-10-06 Lockheed Martin Corporation Electronic communication control
US8249067B2 (en) * 2008-02-27 2012-08-21 Broadcom Corporation Separation of fabric and packet processing source in a system

Also Published As

Publication number Publication date
US9071504B2 (en) 2015-06-30
US20110149985A1 (en) 2011-06-23
JP2011151786A (ja) 2011-08-04

Similar Documents

Publication Publication Date Title
JP5753372B2 (ja) データ処理装置およびその制御方法
JP4808513B2 (ja) システムオンチップの大域的非同期通信アーキテクチャ
US8954174B2 (en) Method and device to process digital media streams
JP3783731B2 (ja) 高速切替ネットワーク構造
CN101159687B (zh) 一种多通道通信传输数据的系统和装置与方法
JP2002512485A (ja) 二重リングトポロジにおける動的同期転送モード用の方法及び装置
JP5895153B2 (ja) インタフェース装置およびバスシステム
JP2000224213A (ja) 通信ネットワーク、および該通信ネットワークを構成するマスタ装置、スレーブ装置、多重化装置、並びに交換装置
WO2010104033A1 (ja) プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム
JP5821624B2 (ja) 通信制御装置、並列計算機システム及び通信制御方法
JP2008066901A (ja) スイッチ装置及びそれに用いるスイッチング方法
JP6847334B2 (ja) ネットワーク装置、ネットワークシステム、ネットワーク方法、およびネットワークプログラム
JP4994280B2 (ja) ルート変更型ネットワーク装置及びシステム
JP2006109258A (ja) 通信方法及び通信装置
JP5347772B2 (ja) 転送速度設定方法、データ転送装置及び情報処理システム
TW201109940A (en) A method for dynamical adjusting channel direction and network-on-chip architecture thereof
JP2024505262A (ja) 量子コンピュータのためのデータ処理装置のネットワークを制御すること
JP6029329B2 (ja) 同期ネットワークスイッチ
JP5374290B2 (ja) ネットワーク中継装置
JP4944377B2 (ja) 線形拡張可能な配信ルータ装置
JP2001094598A (ja) サーバ装置、サーバノード装置、クライアントノード装置及びネットワークシステム
JP5218324B2 (ja) ネットワーク接続装置及びネットワーク
JP2009188479A (ja) ネットワーク・プロセッサ
JP2004153397A (ja) 伝送装置および伝送方法
JP6572539B2 (ja) 時刻同期装置及び通信ネットワーク装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140916

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150310

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150522

R151 Written notification of patent or utility model registration

Ref document number: 5753372

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151