JP2017151604A - Arithmetic processing unit - Google Patents
Arithmetic processing unit Download PDFInfo
- Publication number
- JP2017151604A JP2017151604A JP2016031949A JP2016031949A JP2017151604A JP 2017151604 A JP2017151604 A JP 2017151604A JP 2016031949 A JP2016031949 A JP 2016031949A JP 2016031949 A JP2016031949 A JP 2016031949A JP 2017151604 A JP2017151604 A JP 2017151604A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data holding
- arithmetic
- unit
- arithmetic processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims description 67
- 230000009467 reduction Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 28
- 238000000605 extraction Methods 0.000 description 22
- 239000000872 buffer Substances 0.000 description 15
- 238000000034 method Methods 0.000 description 15
- 238000011176 pooling Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000001994 activation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000009825 accumulation Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 6
- 101150064138 MAP1 gene Proteins 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000012447 hatching Effects 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
- Complex Calculations (AREA)
Abstract
Description
本発明は、演算処理装置に関する。 The present invention relates to an arithmetic processing device.
従来より、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置が考えられている。特に画像認識を行う演算処理装置においては、いわゆる畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)が中核的な存在となっている。 2. Description of the Related Art Conventionally, there has been considered an arithmetic processing device that executes arithmetic operations using a neural network in which a plurality of processing layers are hierarchically connected. Particularly in arithmetic processing devices that perform image recognition, a so-called convolutional neural network (CNN) is at the core.
ところで、この種の演算処理装置においては、演算処理層の階層数の増加や演算処理の複雑化に対応するために、複数の演算ブロックと複数のメモリを搭載し、例えば1つの演算ブロックに対し複数のメモリを接続し、また、1つのメモリに対し複数の演算ブロックを接続することが考えられている。この構成によれば、1つの演算ブロックが複数のメモリにデータを書き込むことができ、また、1つのメモリから複数の演算ブロックにデータを読み込ませることができるので、演算処理層の階層数の増加や演算処理の複雑化に対応して演算処理を効率的に行うことができる。しかし、複数の演算ブロックと複数のメモリとを接続する配線が複雑化し、これに伴う処理速度の低下や、演算処理装置の大型化が懸念される。 By the way, in this kind of arithmetic processing device, in order to cope with the increase in the number of arithmetic processing layers and the complexity of arithmetic processing, a plurality of arithmetic blocks and a plurality of memories are mounted. It is considered to connect a plurality of memories and to connect a plurality of operation blocks to one memory. According to this configuration, one arithmetic block can write data to a plurality of memories, and data can be read from one memory to a plurality of arithmetic blocks. In addition, it is possible to efficiently perform arithmetic processing corresponding to the complexity of arithmetic processing. However, the wiring for connecting a plurality of operation blocks and a plurality of memories becomes complicated, and there is a concern that the processing speed will decrease and the size of the operation processing device will increase.
そこで、本発明は、複数の演算ブロックと複数のメモリを搭載することにより演算処理の効率化を図るようにした演算処理装置において、複数の演算ブロックと複数のメモリとを接続する配線の複雑化を抑えることができ、処理速度の低下や装置の大型化を回避することができる構成を提供することを目的とする。 Therefore, the present invention provides a complicated wiring for connecting a plurality of operation blocks and a plurality of memories in an operation processing apparatus designed to improve the efficiency of the operation processing by mounting a plurality of operation blocks and a plurality of memories. It is an object of the present invention to provide a configuration that can suppress the decrease in processing speed and increase in the size of the apparatus.
本発明に係る演算処理装置は、階層的に接続された複数の処理層による演算を実行する演算処理装置であって、前記演算を実行する複数の演算ブロックと、複数の前記演算ブロックとそれぞれ対をなす複数のデータ保持部と、複数の前記演算ブロックとそれぞれ対をなす複数のデータ出力部と、を備える。複数の前記演算ブロック、複数の前記データ保持部、複数の前記データ出力部は、それぞれ下位側から上位側に向かって列状に配列されている。複数の前記演算ブロックは、下位側から上位側に向かって演算結果データを順次累積する。前記データ出力部は、対をなす前記演算ブロックが生成する演算結果データを対をなす前記データ保持部に出力、または、累積された演算結果データを対をなす前記データ保持部および当該データ保持部よりも下位側の前記データ保持部に出力する。 An arithmetic processing apparatus according to the present invention is an arithmetic processing apparatus that executes an operation by a plurality of processing layers connected in a hierarchy, and each of the operation blocks that executes the operation and a plurality of the operation blocks. A plurality of data holding units, and a plurality of data output units each paired with the plurality of operation blocks. The plurality of calculation blocks, the plurality of data holding units, and the plurality of data output units are respectively arranged in a row from the lower side to the upper side. The plurality of operation blocks sequentially accumulate operation result data from the lower side toward the upper side. The data output unit outputs the operation result data generated by the pair of operation blocks to the data holding unit that forms a pair, or the data holding unit that forms a pair of accumulated operation result data and the data holding unit Is output to the data holding unit on the lower side.
また、本発明に係る演算処理装置は、階層的に接続された複数の処理層による演算を実行する演算処理装置であって、前記演算を実行する複数の演算ブロックと、複数の前記演算ブロックとそれぞれ対をなす複数のデータ保持部と、複数の前記演算ブロックとそれぞれ対をなす複数のデータ出力部と、を備える。複数の前記演算ブロック、複数の前記データ保持部、複数の前記データ出力部は、それぞれ下位側から上位側に向かって列状に配列されている。前記データ出力部は、対をなす前記データ保持部が保持しているデータを対をなす前記演算ブロックに出力、または、対をなす前記データ保持部が保持しているデータを対をなす前記演算ブロックおよび当該演算ブロックよりも上位側の前記演算ブロックに出力する。 The arithmetic processing device according to the present invention is an arithmetic processing device that executes arithmetic operations by a plurality of hierarchically connected processing layers, and includes a plurality of arithmetic blocks that execute the arithmetic operations, and a plurality of the arithmetic blocks. A plurality of data holding units each making a pair; and a plurality of data output units each making a pair with the plurality of operation blocks. The plurality of calculation blocks, the plurality of data holding units, and the plurality of data output units are respectively arranged in a row from the lower side to the upper side. The data output unit outputs the data held by the data holding unit that makes a pair to the operation block that makes a pair, or the operation that makes a pair of the data held by the data holding unit that makes a pair The data is output to the block and the calculation block above the calculation block.
本発明に係る演算処理装置によれば、データ出力部による選択処理により、1つの演算ブロックの演算結果データを複数のデータ保持部に書き込むことが可能である。また、本発明に係る演算処理装置によれば、データ出力部による選択処理により、1つのデータ保持部が保持しているデータを複数の演算ブロックに分配することが可能である。この構成によれば、複数の演算ブロックと複数のデータ保持部とを接続する配線の複雑化を抑えつつも、複数の演算ブロックと複数のデータ保持部との間でデータの読み書きを効率的に行うことができ、処理速度の低下や装置の大型化を回避することができる。 According to the arithmetic processing device according to the present invention, it is possible to write the operation result data of one arithmetic block into a plurality of data holding units by the selection processing by the data output unit. In addition, according to the arithmetic processing device according to the present invention, it is possible to distribute the data held by one data holding unit to a plurality of calculation blocks by the selection process by the data output unit. According to this configuration, it is possible to efficiently read and write data between the plurality of operation blocks and the plurality of data holding units, while suppressing the complexity of the wiring connecting the plurality of operation blocks and the plurality of data holding units. This can be done, and a reduction in processing speed and an increase in the size of the apparatus can be avoided.
以下、演算処理装置の一実施形態について図面を参照しながら説明する。
(ニューラルネットワーク)
図1には、詳しくは後述する演算処理装置10に適用されるニューラルネットワーク、この場合、畳み込みニューラルネットワークの構成を概念的に示している。畳み込みニューラルネットワークNは、入力データである画像データD1から所定の形状やパターンを認識する画像認識技術に応用されるものであり、中間層Naと全結合層Nbとを有する。中間層Naは、複数の特徴量抽出処理層Na1,Na2・・・が階層的に接続された構成である。各特徴量抽出処理層Na1,Na2・・・は、それぞれ畳み込み層Cおよびプーリング層Pを備える。
Hereinafter, an embodiment of an arithmetic processing device will be described with reference to the drawings.
(neural network)
FIG. 1 conceptually shows the configuration of a neural network that is applied to an
次に、中間層Naにおける処理の流れについて説明する。図2に例示するように、第1層目の特徴量抽出処理層Na1では、演算処理装置は、入力される画像データD1を例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第1層目の特徴量抽出処理層Na1では、例えば水平方向に延びる線状の特徴量や斜め方向に延びる線状の特徴量などといった比較的シンプルな単独の特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。 Next, the flow of processing in the intermediate layer Na will be described. As illustrated in FIG. 2, in the first feature amount extraction processing layer Na1, the arithmetic processing unit scans the input image data D1 for each predetermined size by, for example, raster scanning. A plurality of feature amounts included in the input image are extracted by performing a known feature amount extraction process on the scanned data. Note that the first feature amount extraction processing layer Na1 extracts relatively simple single feature amounts such as a linear feature amount extending in the horizontal direction and a linear feature amount extending in the oblique direction. At this time, the arithmetic processing device generates a plurality of feature maps respectively corresponding to the plurality of features included in the input image.
第2層目の特徴量抽出処理層Na2では、演算処理装置は、前階層の特徴量抽出処理層Na1から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第2層目の特徴量抽出処理層Na2では、第1層目の特徴量抽出処理層Na1で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。 In the second feature amount extraction processing layer Na2, the arithmetic processing unit scans the input data input from the preceding feature amount extraction processing layer Na1 for each predetermined size by, for example, raster scanning. A plurality of feature amounts included in the input image are extracted by performing a known feature amount extraction process on the scanned data. In addition, in the feature amount extraction processing layer Na2 of the second layer, by integrating the spatial positional relationship of a plurality of feature amounts extracted by the feature amount extraction processing layer Na1 of the first layer, Extract higher-dimensional composite features. At this time, the arithmetic processing device generates a plurality of feature maps respectively corresponding to the plurality of features included in the input image.
第3層目の特徴量抽出処理層Na3では、演算処理装置は、前階層の特徴量抽出処理層Na2から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第3層目の特徴量抽出処理層Na3では、第2層目の特徴量抽出処理層Na2で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。このように、複数の特徴量抽出処理層による特徴量の抽出処理を繰り返すことで、演算処理装置は、画像データD1に含まれる検出対象物体の画像認識を行う。 In the third feature quantity extraction processing layer Na3, the arithmetic processing unit scans the input data input from the previous feature quantity extraction processing layer Na2 for each predetermined size by, for example, raster scanning. A plurality of feature amounts included in the input image are extracted by performing a known feature amount extraction process on the scanned data. The feature extraction processing layer Na3 of the third layer is integrated by considering the spatial positional relationship of a plurality of feature amounts extracted by the feature extraction processing layer Na2 of the second layer, Extract higher-dimensional composite features. At this time, the arithmetic processing device generates a plurality of feature maps respectively corresponding to the plurality of features included in the input image. In this way, by repeating the feature amount extraction processing by the plurality of feature amount extraction processing layers, the arithmetic processing device performs image recognition of the detection target object included in the image data D1.
演算処理装置は、中間層Naにおいて複数の特徴量抽出処理層Na1,Na2,Na3・・・による処理を繰り返すことで入力画像データD1に含まれる種々の特徴量を高次元で抽出していく。そして、演算処理装置は、中間層Naの処理により得られた結果を中間演算結果データとして全結合層Nbに出力する。 The arithmetic processing unit extracts various feature amounts included in the input image data D1 in a high dimension by repeating the processing by the plurality of feature amount extraction processing layers Na1, Na2, Na3... In the intermediate layer Na. Then, the arithmetic processing unit outputs the result obtained by the processing of the intermediate layer Na to the all coupling layer Nb as intermediate operation result data.
全結合層Nbは、中間層Naから得られる複数の中間演算結果データを結合して最終的な演算結果データを出力する。即ち、全結合層Nbは、中間層Naから得られる複数の中間演算結果データを結合し、さらに、その結合結果に対して重み係数を異ならせながら積和演算を行うことにより、最終的な演算結果データ、即ち、入力データである画像データD1に含まれる検出対象物を認識した画像データを出力する。このとき、積和演算による演算結果の値が大きい部分が検出対象物の一部または全部として認識される。 The total coupling layer Nb combines a plurality of intermediate calculation result data obtained from the intermediate layer Na and outputs final calculation result data. That is, the total connection layer Nb combines a plurality of intermediate operation result data obtained from the intermediate layer Na, and further performs a sum-of-products operation while varying the weighting coefficient for the combined result, thereby obtaining a final operation. Result data, that is, image data in which the detection target included in the image data D1 as input data is recognized is output. At this time, the part where the value of the result of the product-sum operation is large is recognized as a part or all of the detection target.
次に、演算処理装置による特徴量抽出処理の流れについて説明する。図3に例示するように、演算処理装置は、前階層の特徴量抽出処理層から入力される入力データDnを所定サイズ、この場合、図にてハッチングで示す3×3画素ごとのフィルタサイズにより走査する。なお、画素サイズは、3×3画素に限られず、例えば5×5画素など適宜変更することができる。 Next, a flow of feature amount extraction processing by the arithmetic processing device will be described. As illustrated in FIG. 3, the arithmetic processing device uses a predetermined size for the input data Dn input from the feature extraction processing layer in the previous hierarchy, in this case, according to the filter size for each 3 × 3 pixel indicated by hatching in the figure. Scan. Note that the pixel size is not limited to 3 × 3 pixels, and can be appropriately changed, for example, 5 × 5 pixels.
そして、演算処理装置は、走査したデータに対して、それぞれ周知の畳み込み演算を行う。そして、演算処理装置は、畳み込み演算後のデータに対して周知の活性化処理を行い、畳み込み層Cの出力とする。そして、演算処理装置は、畳み込み層Cの出力データCnに対して、所定サイズ、この場合、2×2画素ごとに周知のプーリング処理を行い、プーリング層Pの出力とする。そして、演算処理装置は、プーリング層Pの出力データPnを次の階層の特徴量抽出処理層に出力する。なお、画素サイズは、2×2画素に限られず適宜変更することができる。 The arithmetic processing unit performs a known convolution operation on the scanned data. Then, the arithmetic processing device performs a well-known activation process on the data after the convolution operation, and outputs the result to the convolution layer C. Then, the arithmetic processing unit performs a well-known pooling process on the output data Cn of the convolution layer C at a predetermined size, in this case, 2 × 2 pixels, and outputs the result to the pooling layer P. Then, the arithmetic processing device outputs the output data Pn of the pooling layer P to the feature amount extraction processing layer of the next layer. The pixel size is not limited to 2 × 2 pixels and can be changed as appropriate.
図4には、畳み込み演算処理に用いられる畳み込み関数、活性化処理に用いられる関数、プーリング処理に用いられる関数の一般的な例を示している。即ち、畳み込み関数Yijは、直前の層の出力Xijに学習により得られる重み係数Wp,qを乗算した値を累積する関数となっている。なお、「N」は1サイクルの畳み込み演算処理により処理される画素サイズを示す。即ち、例えば1演算サイクルの画素サイズが「3×3」画素である場合、Nの値は「2」である。また、畳み込み関数Yijは、累積値に所定のバイアス値を加算する関数としてもよい。また、畳み込み関数は、全結合処理にも対応し得る積和演算が可能な関数であれば、種々の関数を採用することができる。また、活性化処理には、周知のロジスティックジグモイド関数やReLU関数(Rectified Linear Units)などが用いられる。また、プーリング処理には、入力されるデータの最大値を出力する周知の最大プーリング関数や、入力されるデータの平均値を出力する周知の平均プーリング関数などが用いられる。 FIG. 4 shows general examples of a convolution function used for convolution operation processing, a function used for activation processing, and a function used for pooling processing. That is, the convolution function Yij is a function that accumulates values obtained by multiplying the output Xij of the immediately preceding layer by the weighting factors Wp, q obtained by learning. Note that “N” indicates a pixel size to be processed by one cycle of convolution operation processing. That is, for example, when the pixel size of one calculation cycle is “3 × 3” pixels, the value of N is “2”. Further, the convolution function Yij may be a function for adding a predetermined bias value to the accumulated value. Various functions can be adopted as the convolution function as long as it is a function capable of multiply-accumulate operation that can cope with all-join processing. For the activation process, a well-known logistic sigmoid function, ReLU function (Rectified Linear Units), or the like is used. For the pooling process, a known maximum pooling function that outputs a maximum value of input data, a known average pooling function that outputs an average value of input data, or the like is used.
上述した畳み込みニューラルネットワークNによれば、コンボルーション層Cによる処理およびプーリング層Pによる処理が繰り返されることにより、より高次元の特徴量の抽出が可能となる。次に、この畳み込みニューラルネットワークNを適用した演算処理装置に係る実施形態について説明する。 According to the convolutional neural network N described above, the processing by the convolution layer C and the processing by the pooling layer P are repeated, so that higher-dimensional feature amounts can be extracted. Next, an embodiment according to an arithmetic processing apparatus to which the convolution neural network N is applied will be described.
(一実施形態)
図5に例示する演算処理装置10は、複数の演算ブロック11、複数の中継部12,13、複数のデータ保持部14、複数のインタフェース15などを備える。演算処理装置10は、1つの演算ブロック11、2つの中継部12,13、1つのデータ保持部14により1つの演算処理ユニット16を構成している。そして、演算処理装置10は、複数の演算処理ユニット16を下流側から上流側に向けて列状に配列した構成となっている。なお、説明の便宜上、図の下側を下流側、図の上側を上流側と定義する。また、演算処理ユニット16は、それぞれインタフェース15を介してインターコネクト部17に接続されている。インターコネクト部17は、演算処理装置10の外部に設けられた外部メモリ18に接続されている。
(One embodiment)
The
図6に例示するように、演算ブロック11は、それぞれ、畳み込み演算処理部11a、累積処理部11b、活性化処理部11c、プーリング処理部11dなどを備えている。これらの処理部は、例えば回路などのハードウェアにより構成してもよいし、ソフトウェアにより構成してもよいし、ハードウェアとソフトウェアの組み合わせにより構成してもよい。畳み込み演算処理部11aは、前階層から入力される入力データに対して周知の畳み込み演算処理を実行して、その処理結果データを累積処理部11bに出力する。
As illustrated in FIG. 6, the calculation blocks 11 each include a convolution
累積処理部11bは、例えば加算器などで構成されている。累積処理部11bは、下位側の演算ブロック11の累積処理部11bからデータが入力される場合には、そのデータを、自身と同じ演算ブロック11の畳み込み演算処理部11aから入力されるデータに加算する。これにより、複数の演算ブロック11は、それぞれの演算ブロック11の畳み込み演算処理部11aによる演算結果データを、下位側から上位側に向かって順次累積することが可能となっている。
The
累積処理部11bは、下位側の演算ブロック11からデータが入力されない場合には、自身と同じ演算ブロック11の畳み込み演算処理部11aから入力されるデータを活性化処理部11cに出力する。また、累積処理部11bは、下位側の演算ブロック11からデータが入力される場合には、自身と同じ演算ブロック11の畳み込み演算処理部11aから入力されるデータに下位側の演算ブロック11から入力されるデータを加算した累積データを活性化処理部11cに出力する。
When no data is input from the
活性化処理部11cは、累積処理部11bから入力されるデータに対して周知の活性化処理を実行して、その処理結果データをプーリング処理部11dに出力する。プーリング処理部11dは、活性化処理部11cによる処理結果データに対して周知のプーリング処理を実行して、その処理結果データを出力する。
The
中継部12は、データ保持部14から演算ブロック11にデータを出力するためのデータ出力部の一例であり、図示しないマルチプレクサ回路やフリップフロップ回路などを備えている。中継部12は、自身と同じ演算処理ユニット16のデータ保持部14から入力されるデータを、自身と同じ演算処理ユニット16の演算ブロック11に出力することが可能である。また、中継部12は、自身と同じ演算処理ユニット16のデータ保持部14から入力されるデータ、および、自身よりも下位側の中継部12から入力されるデータのうち何れか一方を選択し、その選択したデータを、自身と同じ演算処理ユニット16の演算ブロック11に出力することが可能である。
The
中継部13は、演算ブロック11からデータ保持部14にデータを出力するためのデータ出力部の一例であり、図示しないマルチプレクサ回路やフリップフロップ回路などを備えている。中継部13は、自身と同じ演算処理ユニット16の演算ブロック11から入力されるデータを、自身と同じ演算処理ユニット16のデータ保持部14に出力することが可能である。また、中継部13は、自身と同じ演算処理ユニット16の演算ブロック11から入力されるデータ、および、自身よりも上位側の中継部13から入力されるデータのうち何れか一方を選択し、その選択したデータを、自身と同じ演算処理ユニット16のデータ保持部14に出力することが可能である。
The
データ保持部14は、いわゆる内部メモリとして機能するものであり、現階層における演算処理時に入力される入力データ、つまり演算結果データ、および、次階層における演算処理時に出力する出力データを一時的に保持するものである。データ保持部14は、それぞれ2つのバッファ14a,14bを備える。また、データ保持部14は、それぞれ図示しないスイッチング機能部を備える。スイッチング機能部は、バッファ14a,14bを、演算ブロック11へのデータ出力用および演算ブロック11からのデータ入力用に切り換える機能を有する。
The
即ち、スイッチング機能部は、例えば、バッファ14aをデータ出力用として機能させる場合にはバッファ14bをデータ入力用として機能させるように切り換える。また、スイッチング機能部は、バッファ14aをデータ入力用として機能させる場合にはバッファ14bをデータ出力用として機能させるように切り換える。
That is, the switching function unit switches the
データ保持部14は、現階層における演算処理時に入力される入力データ、つまり演算結果データを、データ入力用に切り換えられているバッファ14aあるいはバッファ14bに保持する。そして、データ保持部14は、次回層の演算処理時には、現階層の演算処理時においてデータ入力用に切り換えられていたバッファ14aあるいはバッファ14bをデータ出力用に切り換え、そのバッファに保持されているデータを、演算ブロック11に出力する。これにより、データ保持部14は、現階層の演算処理時における演算結果データを外部メモリ18に退避させなくとも、演算処理装置10内部において、現階層の演算結果データを次階層に送ることができる。
The
外部メモリ18は、例えばDouble−Data−Rate−SDRAMなどで構成される大規模記憶媒体であり、入力画像データD1や、演算ブロック11による演算結果データなどを記憶可能である。外部メモリ18は、この場合、インターコネクト部17を介して複数のインタフェース15、換言すれば複数の演算処理ユニット16に接続されている。インターコネクト部17は、外部メモリ18から読み出されるデータを各演算処理ユニット16に振り分ける機能を有する。また、インターコネクト部17は、各演算処理ユニット16から外部メモリ18に書き出されるデータを外部メモリ18に集約する機能を有する。
The
演算処理装置10は、さらに、冗長データ保持部19を備える。冗長データ保持部19は、データ保持部14と同様に2つのバッファ19a,19bを備える。これらバッファ19a,19bの機能は、上述したバッファ14a,14bと同様である。冗長データ保持部19は、最も下位側の中継部13が出力するデータを、最も下位側のデータ保持部14と冗長に保持する。そして、最も下位側の演算ブロック11は、冗長データ保持部14に保持されているデータを、自身が生成する演算結果データに加算することが可能となっている。
The
次に、演算処理装置10の動作例について説明する。即ち、図7に例示するように、複数の演算ブロック11による演算結果データを累積して処理する場合には、矢印A1で示すように、最も上位側の中継部13は、自身と同じ演算処理ユニット16の演算ブロック11から入力されるデータ、つまり累積データを選択して、自身と同じ演算処理ユニット16のデータ保持部14に出力する。また、最上位の中継部13を除く他の中継部13は、自身よりも上位側の中継部13から入力されるデータ、つまり累積データを選択して、自身と同じ演算処理ユニット16のデータ保持部14に出力する。
Next, an operation example of the
また、図8に例示するように、複数の演算ブロック11による演算結果データを累積せずにパラレルに処理する場合には、矢印A2で示すように、中継部13は、それぞれ、自身と同じ演算処理ユニット16の演算ブロック11から入力されるデータを選択して、自身と同じ演算処理ユニット16のデータ保持部14に出力する。
Further, as illustrated in FIG. 8, when the calculation result data by the plurality of calculation blocks 11 are processed in parallel without being accumulated, as shown by the arrow A <b> 2, each
また、図9に例示するように、1つのデータを複数の演算ブロック11により分散して処理する場合には、矢印A3で示すように、最も下位側の中継部12は、自身と同じ演算処理ユニット16のデータ保持部14から入力されるデータを選択して、自身と同じ演算処理ユニット16の演算ブロック11に出力する。また、最下位の中継部12を除く他の中継部12は、自身よりも下位側の中継部12から入力されるデータを選択して、自身と同じ演算処理ユニット16の演算ブロック11に出力する。
Also, as illustrated in FIG. 9, when one data is distributed and processed by a plurality of calculation blocks 11, the
また、図10に例示するように、複数の演算ブロック11により処理を分散せずにパラレルに処理する場合には、矢印A4で示すように、中継部12は、それぞれ、自身と同じ演算処理ユニット16のデータ保持部14から入力されるデータを選択して、自身と同じ演算処理ユニット16の演算ブロック11に出力する。
Further, as illustrated in FIG. 10, when the processing is performed in parallel without being distributed by the plurality of operation blocks 11, as indicated by the arrow A <b> 4, each
演算処理装置10によれば、1つの演算ブロック11、2つの中継部12,13、1つのデータ保持部14により1つの演算処理ユニット16を構成している。そして、中継部13は、同じ演算処理ユニット16において対をなす演算ブロック11が生成する演算結果データを、同じ演算処理ユニット16において対をなすデータ保持部14に出力することが可能である。また、中継部13は、複数の演算ブロック11により累積された演算結果データを、同じ演算処理ユニット16において対をなすデータ保持部14および当該データ保持部14よりも下位側のデータ保持部14に出力することが可能である。
According to the
また、演算処理装置10によれば、中継部12は、同じ演算処理ユニット16において対をなすデータ保持部14が保持しているデータを、同じ演算処理ユニット16において対をなす演算ブロック11に出力することが可能である。また、中継部12は、同じ演算処理ユニット16において対をなすデータ保持部14が保持しているデータを、同じ演算処理ユニット16において対をなす演算ブロック11および当該演算ブロック11よりも上位側の演算ブロック11に出力することが可能である。
Further, according to the
即ち、演算処理装置10によれば、中継部13による選択処理により、1つの演算ブロック11の演算結果データを複数のデータ保持部14に書き込むことが可能である。また、演算処理装置10によれば、中継部12による選択処理により、1つのデータ保持部14が保持しているデータを複数の演算ブロック11に分配することが可能である。この構成によれば、複数の演算ブロック11と複数のデータ保持部14とを接続する配線の複雑化を抑えつつも、複数の演算ブロック11と複数のデータ保持部14との間でデータの読み書きを効率的に行うことができ、処理速度の低下や装置の大型化を回避することができる。
That is, according to the
また、演算処理装置10によれば、冗長データ保持部19は、最も下位側の中継部13が出力するデータを、最も下位側のデータ保持部14と冗長的に保持する。即ち、冗長データ保持部19は、最も下位側のデータ保持部14と同じデータを保持する。そして、最も下位側の演算ブロック11は、冗長データ保持部19に保持されているデータを読み込んで自身の演算結果データに加算することが可能である。
Further, according to the
この構成によれば、例えば、ある処理階層において演算するデータの数が演算ブロック11の数を超えていて、1度の演算サイクルで全てのデータに対し演算を行えない場合に、まず、演算ブロック11の数分のデータに対して演算処理を行い、その演算結果を冗長データ保持部19に保持しておく。そして、演算ブロック11の数分の次のデータに対して演算処理を行う場合に、冗長データ保持部19に保持されているデータを読み出して累積加算することができる。従って、演算ブロック11の数以上のデータ、つまり特徴マップデータを処理する場合であっても、演算ブロック11の数分ずつに分割して得られた演算処理結果を順次累積加算していくことで、全てのデータに対するトータルの演算処理結果を得ることができる。
According to this configuration, for example, when the number of data to be calculated in a certain processing hierarchy exceeds the number of calculation blocks 11 and calculation cannot be performed on all data in one calculation cycle, first, the calculation block Arithmetic processing is performed on the data corresponding to the number of 11 and the calculation result is held in the redundant
また、演算処理装置10によれば、複数のデータ保持部14が直接アクセス可能な外部メモリ18を備える。この構成によれば、格納するデータサイズがバッファ14a,14bの容量を超えている場合に、そのデータを外部メモリ18に退避させることができ、大規模なデータサイズのデータに対する演算処理に対応することができる。
In addition, the
さらに、演算処理装置10は、データ保持部14と外部メモリ18とのアクセス方式としてDMA方式(Direct Memory Access)を採用している。そのため、データ保持部14と外部メモリ18との間のデータの書き込み処理および読み出し処理を高速で行うことができる。
Further, the
このとき、外部メモリ18は、データ保持部14がアクセスするアドレスを次の式[1]または式[2]により決定するように構成するとよい。
A[n]=a[n]+m×d・・・・・[1]
A[n]=a[0]+m×d・・・・・[2]
n:データ保持部の番号
A[n]:n番目のデータ保持部がアクセスするアドレス
a[n]:n番目のデータ保持部のオフセットアドレス
m:演算ブロックが生成する特徴マップの番号
d:演算ブロックが生成する特徴マップのデータサイズ
At this time, the
A [n] = a [n] + m × d [1]
A [n] = a [0] + m × d (2)
n: Number of the data holding unit
A [n]: Address accessed by the nth data holding unit
a [n]: Offset address of the nth data holding unit
m: Number of feature map generated by the calculation block
d: Data size of the feature map generated by the calculation block
式[1]によりアドレスを決定する場合、図11に例示するように、例えば1番目、つまり最上位のデータ保持部14がアクセスするアドレスA[1]は、1番目のデータ保持部14のオフセットアドレスa[1]を「1000」、演算ブロック11が生成する特徴マップの番号を「1」、演算ブロック11が生成する特徴マップ1のデータサイズを「300」バイトとすると、
A[1]=「1000」+「1」×「300」
=1300
となる。
When the address is determined by the expression [1], as illustrated in FIG. 11, for example, the address A [1] accessed by the first, that is, the highest
A [1] = “1000” + “1” × “300”
= 1300
It becomes.
また、例えば2番目、つまり最上位から2番目のデータ保持部14がアクセスするアドレスA[2]は、2番目のデータ保持部14のオフセットアドレスa[2]を「2000」、演算ブロック11が生成する特徴マップの番号を「1」、演算ブロック11が生成する特徴マップ1のデータサイズを「300」バイトとすると、
A[2]=「2000」+「1」×「300」
=2300
となる。
Further, for example, the address A [2] accessed by the second
A [2] = “2000” + “1” × “300”
= 2300
It becomes.
即ち、式[1]によりアドレスを決定する場合、複数のデータ保持部14は、それぞれに割り当てられたアドレスにアクセスすることとなる。換言すれば、外部メモリ18のメモリ領域を複数のデータ保持部14により分割して利用する形態となる。
That is, when the address is determined by the equation [1], the plurality of
また、式[2]によりアドレスを決定する場合、図12に例示するように、例えば1番目、つまり最上位のデータ保持部14がアクセスするアドレスA[1]は、予め設定されているa[0]を「1000」、演算ブロック11が生成する特徴マップの番号を「1」、演算ブロック11が生成する特徴マップ1のデータサイズを「300」バイトとすると、
A[1]=「1000」+「1」×「300」
=1300
となる。
When the address is determined by the expression [2], as illustrated in FIG. 12, for example, the address A [1] accessed by the first, that is, the uppermost
A [1] = “1000” + “1” × “300”
= 1300
It becomes.
また、例えば2番目、つまり最上位から2番目のデータ保持部14がアクセスするアドレスA[2]も、a[0]を「1000」、演算ブロック11が生成する特徴マップの番号を「1」、演算ブロック11が生成する特徴マップ1のデータサイズを「300」バイトとして、
A[2]=「1000」+「1」×「300」
=1300
となる。
Also, for example, the address A [2] accessed by the second, that is, the second highest
A [2] = “1000” + “1” × “300”
= 1300
It becomes.
即ち、式[2]によりアドレスを決定する場合、全てのデータ保持部14が同じアドレス「1300」にアクセスすることとなる。換言すれば、外部メモリ18のメモリ領域を複数のデータ保持部14により共有する形態となる。
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
That is, when the address is determined by the expression [2], all the
Note that the present invention is not limited to the above-described embodiments, and can be applied to various embodiments without departing from the gist thereof.
図面中、10は演算処理装置、11は演算ブロック、12は中継部(データ出力部)、13は中継部(データ出力部)、14はデータ保持部、18は外部メモリ、19は冗長データ保持部を示す。 In the figure, 10 is an arithmetic processing unit, 11 is an arithmetic block, 12 is a relay unit (data output unit), 13 is a relay unit (data output unit), 14 is a data holding unit, 18 is an external memory, and 19 is redundant data. Indicates the part.
Claims (5)
前記演算を実行する複数の演算ブロック(11)と、
複数の前記演算ブロックとそれぞれ対をなす複数のデータ保持部(14)と、
複数の前記演算ブロックとそれぞれ対をなす複数のデータ出力部(13)と、
を備え、
複数の前記演算ブロック、複数の前記データ保持部、複数の前記データ出力部は、それぞれ下位側から上位側に向かって列状に配列されており、
複数の前記演算ブロックは、下位側から上位側に向かって演算結果データを順次累積し、
前記データ出力部は、対をなす前記演算ブロックが生成する演算結果データを対をなす前記データ保持部に出力、または、累積された演算結果データを対をなす前記データ保持部および当該データ保持部よりも下位側の前記データ保持部に出力する演算処理装置。 An arithmetic processing device (10) that executes arithmetic operations by a plurality of processing layers connected in a hierarchical manner,
A plurality of calculation blocks (11) for performing the calculation;
A plurality of data holding units (14) each paired with a plurality of the calculation blocks;
A plurality of data output units (13) each paired with a plurality of the operation blocks;
With
The plurality of operation blocks, the plurality of data holding units, and the plurality of data output units are arranged in a row from the lower side to the upper side,
The plurality of operation blocks sequentially accumulate operation result data from the lower side to the upper side,
The data output unit outputs the operation result data generated by the pair of operation blocks to the data holding unit that forms a pair, or the data holding unit that forms a pair of accumulated operation result data and the data holding unit An arithmetic processing unit that outputs to the data holding unit on the lower side.
最も下位側の前記演算ブロックは、前記冗長データ保持部に保持されているデータを演算結果データに加算する請求項1に記載の演算処理装置。 A redundant data holding unit (19) for holding data output by the data output unit on the lowest side;
The arithmetic processing unit according to claim 1, wherein the lowermost arithmetic block adds data held in the redundant data holding unit to arithmetic result data.
前記演算を実行する複数の演算ブロック(11)と、
複数の前記演算ブロックとそれぞれ対をなす複数のデータ保持部(14)と、
複数の前記演算ブロックとそれぞれ対をなす複数のデータ出力部(12)と、
を備え、
複数の前記演算ブロック、複数の前記データ保持部、複数の前記データ出力部は、それぞれ下位側から上位側に向かって列状に配列されており、
前記データ出力部は、対をなす前記データ保持部が保持しているデータを対をなす前記演算ブロックに出力、または、対をなす前記データ保持部が保持しているデータを対をなす前記演算ブロックおよび当該演算ブロックよりも上位側の前記演算ブロックに出力する演算処理装置。 An arithmetic processing device (10) that executes arithmetic operations by a plurality of processing layers connected in a hierarchical manner,
A plurality of calculation blocks (11) for performing the calculation;
A plurality of data holding units (14) each paired with a plurality of the calculation blocks;
A plurality of data output units (12) each paired with a plurality of the operation blocks;
With
The plurality of operation blocks, the plurality of data holding units, and the plurality of data output units are arranged in a row from the lower side to the upper side,
The data output unit outputs the data held by the data holding unit that makes a pair to the operation block that makes a pair, or the operation that makes a pair of the data held by the data holding unit that makes a pair An arithmetic processing unit that outputs the block and the arithmetic block on the upper side of the arithmetic block.
前記外部メモリは、前記データ保持部がアクセスするアドレスを、次の式[1]または式[2]により決定する請求項4に記載の演算処理装置。
A[n]=a[n]+m×d・・・・・[1]
A[n]=a[0]+m×d・・・・・[2]
n:データ保持部の番号
A[n]:n番目のデータ保持部がアクセスするアドレス
a[n]:n番目のデータ保持部のオフセットアドレス
m:演算ブロックが生成する特徴マップの番号
d:演算ブロックが生成する特徴マップのデータサイズ The calculation block generates a plurality of feature maps respectively corresponding to a plurality of features included in input data,
The arithmetic processing apparatus according to claim 4, wherein the external memory determines an address to be accessed by the data holding unit using the following formula [1] or formula [2].
A [n] = a [n] + m × d [1]
A [n] = a [0] + m × d (2)
n: Number of the data holding unit
A [n]: Address accessed by the nth data holding unit
a [n]: Offset address of the nth data holding unit
m: Number of feature map generated by the calculation block
d: Data size of the feature map generated by the calculation block
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016031949A JP6645252B2 (en) | 2016-02-23 | 2016-02-23 | Arithmetic processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016031949A JP6645252B2 (en) | 2016-02-23 | 2016-02-23 | Arithmetic processing unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017151604A true JP2017151604A (en) | 2017-08-31 |
JP6645252B2 JP6645252B2 (en) | 2020-02-14 |
Family
ID=59741955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016031949A Active JP6645252B2 (en) | 2016-02-23 | 2016-02-23 | Arithmetic processing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6645252B2 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020003345A1 (en) * | 2018-06-25 | 2020-01-02 | オリンパス株式会社 | Arithmetic processing device |
WO2020158384A1 (en) * | 2019-01-30 | 2020-08-06 | Necプラットフォームズ株式会社 | Computation processing device, computation processing method, and configuration program |
JP2021503141A (en) * | 2017-11-14 | 2021-02-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | Memory bandwidth reduction technology for low-power convolutional neural network inference applications |
CN112639838A (en) * | 2018-10-12 | 2021-04-09 | 奥林巴斯株式会社 | Arithmetic processing device |
JP2021521516A (en) * | 2018-04-19 | 2021-08-26 | エーアイモーティブ ケーエフティー. | Accelerators and systems for accelerating operations |
US11769041B2 (en) | 2018-10-31 | 2023-09-26 | Advanced Micro Devices, Inc. | Low latency long short-term memory inference with sequence interleaving |
WO2023204041A1 (en) * | 2022-04-21 | 2023-10-26 | 株式会社日立製作所 | Information processing device, information processing method, information processing program, software creation device, software creation method, and software creation program |
US11900253B2 (en) | 2018-12-20 | 2024-02-13 | Advanced Mic ro Devices, Inc. | Tiling format for convolutional neural networks |
US11948073B2 (en) | 2018-04-20 | 2024-04-02 | Advanced Micro Devices, Inc. | Machine learning inference engine scalability |
US11983624B2 (en) | 2019-03-18 | 2024-05-14 | Advanced Micro Devices, Inc. | Auto generation and tuning tool for convolution kernels |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04112362A (en) * | 1990-09-03 | 1992-04-14 | Nippon Telegr & Teleph Corp <Ntt> | Accumulation circuit |
JPH05242065A (en) * | 1992-02-28 | 1993-09-21 | Hitachi Ltd | Information processor and its system |
WO2007110898A1 (en) * | 2006-03-24 | 2007-10-04 | Fujitsu Limited | Multiprocessor system and multiprocessor system operating method |
JP2015179409A (en) * | 2014-03-19 | 2015-10-08 | 株式会社デンソー | Data processing apparatus |
JP2015215837A (en) * | 2014-05-13 | 2015-12-03 | 株式会社デンソー | Arithmetic processor |
-
2016
- 2016-02-23 JP JP2016031949A patent/JP6645252B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04112362A (en) * | 1990-09-03 | 1992-04-14 | Nippon Telegr & Teleph Corp <Ntt> | Accumulation circuit |
JPH05242065A (en) * | 1992-02-28 | 1993-09-21 | Hitachi Ltd | Information processor and its system |
WO2007110898A1 (en) * | 2006-03-24 | 2007-10-04 | Fujitsu Limited | Multiprocessor system and multiprocessor system operating method |
JP2015179409A (en) * | 2014-03-19 | 2015-10-08 | 株式会社デンソー | Data processing apparatus |
JP2015215837A (en) * | 2014-05-13 | 2015-12-03 | 株式会社デンソー | Arithmetic processor |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021503141A (en) * | 2017-11-14 | 2021-02-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | Memory bandwidth reduction technology for low-power convolutional neural network inference applications |
JP7407720B2 (en) | 2017-11-14 | 2024-01-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Memory bandwidth reduction techniques for low-power convolutional neural network inference applications |
JP2021521516A (en) * | 2018-04-19 | 2021-08-26 | エーアイモーティブ ケーエフティー. | Accelerators and systems for accelerating operations |
JP7358382B2 (en) | 2018-04-19 | 2023-10-10 | エーアイモーティブ ケーエフティー. | Accelerators and systems for accelerating calculations |
US11948073B2 (en) | 2018-04-20 | 2024-04-02 | Advanced Micro Devices, Inc. | Machine learning inference engine scalability |
JPWO2020003345A1 (en) * | 2018-06-25 | 2021-04-08 | オリンパス株式会社 | Arithmetic processing unit |
WO2020003345A1 (en) * | 2018-06-25 | 2020-01-02 | オリンパス株式会社 | Arithmetic processing device |
US12050985B2 (en) | 2018-06-25 | 2024-07-30 | Olympus Corporation | Arithmetic processing device |
CN112639838A (en) * | 2018-10-12 | 2021-04-09 | 奥林巴斯株式会社 | Arithmetic processing device |
US11769041B2 (en) | 2018-10-31 | 2023-09-26 | Advanced Micro Devices, Inc. | Low latency long short-term memory inference with sequence interleaving |
US11900253B2 (en) | 2018-12-20 | 2024-02-13 | Advanced Mic ro Devices, Inc. | Tiling format for convolutional neural networks |
JP2020123125A (en) * | 2019-01-30 | 2020-08-13 | Necプラットフォームズ株式会社 | Computation processing device, computation processing method, and program |
WO2020158384A1 (en) * | 2019-01-30 | 2020-08-06 | Necプラットフォームズ株式会社 | Computation processing device, computation processing method, and configuration program |
US11983624B2 (en) | 2019-03-18 | 2024-05-14 | Advanced Micro Devices, Inc. | Auto generation and tuning tool for convolution kernels |
WO2023204041A1 (en) * | 2022-04-21 | 2023-10-26 | 株式会社日立製作所 | Information processing device, information processing method, information processing program, software creation device, software creation method, and software creation program |
Also Published As
Publication number | Publication date |
---|---|
JP6645252B2 (en) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017151604A (en) | Arithmetic processing unit | |
US10942986B2 (en) | Hardware implementation of convolutional layer of deep neural network | |
US11720646B2 (en) | Operation accelerator | |
JP5376920B2 (en) | Convolution operation circuit, hierarchical convolution operation circuit, and object recognition device | |
EP3855367A1 (en) | Operation accelerator, processing method, and related device | |
WO2019201656A1 (en) | Method for accelerating operations and accelerator apparatus | |
WO2019201657A1 (en) | Accelerator and system for accelerating operations | |
JP7261226B2 (en) | Arithmetic processing unit | |
JP2018073102A (en) | Arithmetic circuit, method for controlling the same, and program | |
CN108629406B (en) | Arithmetic device for convolutional neural network | |
JP2016099707A (en) | Arithmetic processing unit | |
JP6684951B2 (en) | Artificial intelligence reasoning arithmetic unit | |
JP7201802B2 (en) | Data read/write method and system in 3D image processing, storage medium and terminal | |
CN109993293B (en) | Deep learning accelerator suitable for heap hourglass network | |
CN111984189B (en) | Neural network computing device, data reading method, data storage method and related equipment | |
JPWO2019234794A1 (en) | Calculation method | |
CN110738317A (en) | FPGA-based deformable convolution network operation method, device and system | |
WO2016208260A1 (en) | Image recognition device and image recognition method | |
US20220113944A1 (en) | Arithmetic processing device | |
JP2022137247A (en) | Processing for a plurality of input data sets | |
US11704546B2 (en) | Operation processing apparatus that calculates addresses of feature planes in layers of a neutral network and operation processing method | |
JP6631262B2 (en) | Arithmetic processing unit | |
CN108920097B (en) | Three-dimensional data processing method based on interleaving storage | |
CN116167425A (en) | Neural network acceleration method, device, equipment and medium | |
JP6747305B2 (en) | Data processing device and neural network system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190121 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191015 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191125 |
|
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: 20191210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191223 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6645252 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |