JP5071707B2 - Data processing apparatus and control method thereof - Google Patents
Data processing apparatus and control method thereof Download PDFInfo
- Publication number
- JP5071707B2 JP5071707B2 JP2007165116A JP2007165116A JP5071707B2 JP 5071707 B2 JP5071707 B2 JP 5071707B2 JP 2007165116 A JP2007165116 A JP 2007165116A JP 2007165116 A JP2007165116 A JP 2007165116A JP 5071707 B2 JP5071707 B2 JP 5071707B2
- Authority
- JP
- Japan
- Prior art keywords
- output
- connection information
- input
- memory element
- elements
- 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
Links
Images
Description
本発明は、回路を再構成可能なユニットを含むデータ処理装置およびその制御方法に関するものである。 The present invention relates to a data processing apparatus including a unit whose circuit can be reconfigured and a control method thereof.
特許文献1には、生物の進化の過程を模倣した最適化手法の1つである遺伝的アルゴリズム(GA:Genetic Algorithm)をもとに考案された遺伝的プログラミング(GP:Genetic Programming)を画像処理に適用したツリー構造状画像変換自動作成方法を印刷物の文字列抽出方法に用いることが記載されている。
さらに、この特許文献1には以下のことが記載されている。この手法は、予め用意した複数の画像変換処理フィルタを任意の形のツリー構造状に組み合わせることによって、入力画像から出力画像への画像変換処理を実現するものである。なお、該手法は、1つ又は複数の入出力手段と、1つの出力手段を持つ画像変換処理フィルタFnを用いる。処理される画像はツリー構造における全ての葉ノード(終端)より入力され、フィルタの組み合わせにより異なった処理を受ける。それらは画像変換処理により順次合成され、最後に1つの画像となって出力される。フィルタの組み合わせにより、領域や目的毎に異なった処理を施し、それらの結果を適宜合成するような複雑な画像変換処理を構築することが可能になる。
Further,
特許文献2には、複数種類のプロセッシングエレメントの接続を変えて種々のデータパスを再構成するタイプの集積回路装置が記載されている。この集積回路装置は、プロセッシングエレメントとして、算術論理演算用のエレメントに加え、RAMとして機能するRAMエレメントを有する。
GAGPを画像処理に適用したツリー構造状の画像変換プログラムは、複数の画像変換処理フィルタがツリー構造状に組み合わされたアプリケーションプログラムである。特許文献2に開示されている集積回路装置は、動的に、例えば、数クロックサイクル、さらには1クロックサイクルで回路を再構成可能な集積回路装置(動的再構成可能LSI)である。したがって、画像変換プログラムに含まれている複数の画像変換処理フィルタの1つまたは限られた数の機能を回路化して、順番に動的再構成可能LSIに構成することにより、種々のツリー構造状で機能が指示される画像変換プログラムによる処理を、より少ないハードウェア資源を用い、そのプログラムを実行するために専用に開発された回路(ハードウェア)で実行することが可能となる。このため、回路構成が基本的には変わらないプロセッサの上で画像変換プログラムを稼動させるよりは、高速で処理結果を得ることができる。
A tree-structured image conversion program in which GAGP is applied to image processing is an application program in which a plurality of image conversion processing filters are combined in a tree structure. The integrated circuit device disclosed in
画像変換処理により得られた情報を、機器の制御、例えば、自動車を安全に制御するために使用する場合は、高い処理速度が要求される。さらに、画像データが得られる環境、画像データから抽出したい認識対象物などの相違によって、画像変換プログラムも異なる可能性がある。したがって、ツリー構造状のような画像変換プログラムの機能を高速で処理でき、さらに、異なる構造の画像変換プログラムの機能にも迅速に対応できるデータ処理装置が要望されている。 When the information obtained by the image conversion process is used to control a device, for example, to control an automobile safely, a high processing speed is required. Further, the image conversion program may be different depending on the environment in which the image data is obtained, the recognition object to be extracted from the image data, and the like. Therefore, there is a demand for a data processing apparatus that can process the functions of an image conversion program such as a tree structure at high speed and that can also quickly cope with the functions of image conversion programs having different structures.
本発明の一態様は、回路を構成するための複数のエレメントと、複数のエレメントを接続するための内部配線とを含む再構成ユニットであって、内部配線による複数のエレメントの接続を変更することにより、回路を再構成可能な再構成ユニットと、再構成ユニットの回路を再構成するために、複数のエレメントの接続情報を含む再構成情報を出力する制御ユニットとを有するデータ処理装置である。複数のエレメントは、少なくとも1種類の演算を実行するための複数の演算エレメントと、複数のメモリエレメントとを含み、内部配線の接続を変更することにより、複数のメモリエレメントの少なくともいずれかを、複数の演算エレメントの少なくともいずれかの演算エレメントを含む処理回路の入力対象または出力対象とすることが可能である。当該データ処理装置は、さらに、データの入出力を伴う複数の処理のそれぞれの処理について、第1のメモリエレメントを入力対象とし、第2のメモリエレメントを出力対象としてそれぞれの処理を行う処理回路(第1の処理回路)を構成するための第1の接続情報と、第2のメモリエレメントを入力対象とし、第1のメモリエレメントを出力対象としてそれぞれの処理を行う処理回路(第2の処理回路)を構成するための第2の接続情報とが格納された接続情報ライブラリを有する。そして、制御ユニットは、複数の処理を順番に実行するために、先の処理において出力対象となったメモリエレメントを入力対象とする接続情報を接続情報ライブラリから選択し、その選択された接続情報を含む再構成情報を出力する。 One aspect of the present invention is a reconfiguration unit including a plurality of elements for configuring a circuit and an internal wiring for connecting the plurality of elements, wherein the connection of the plurality of elements by the internal wiring is changed. Thus, the data processing device includes a reconfiguration unit that can reconfigure the circuit, and a control unit that outputs reconfiguration information including connection information of a plurality of elements in order to reconfigure the circuit of the reconfiguration unit. The plurality of elements include a plurality of calculation elements for executing at least one kind of calculation and a plurality of memory elements, and changing at least one of the plurality of memory elements by changing connection of internal wiring The processing circuit including at least one of the calculation elements can be set as an input target or an output target. The data processing device further includes for each of the processing of a plurality of processes involving the input and output of data, the first memory element an input object, processing for each of the processing as an output target of the second memory element a first connection information for configuring the circuit (the first processing circuit), a second memory element an input object, the first memory element and the output target performs each processing processor (second And a connection information library in which second connection information for configuring the second processing circuit) is stored. Then, in order to execute the plurality of processes in order, the control unit selects, from the connection information library, the connection information for which the memory element that is the output target in the previous process is the input target, and the selected connection information is selected. Output reconfiguration information.
このデータ処理装置においては、データの入出力を伴う複数の処理のそれぞれについて、制御ユニットが、接続情報ライブラリに用意された接続情報を含む再構成情報を出力することにより、再構成ユニットにそれぞれの処理を実行するための回路が構成される。したがって、複数の処理を、その処理のために専用に設計された回路を用いて実行することができ、より少ないハードウェア資源により、高速に実行できる。さらに、接続情報ライブラリに用意された第1または第2の接続情報を含む再構成情報により再構成ユニットに再構成された回路は、内部配線によりアクセス可能な再構成ユニット内のメモリエレメントを入出力の対象とする。したがって、入出力インターフェイスおよび外部バスなどを経由して外部メモリとの間でデータを入出力するために要するメモリアクセスの時間を省略または短縮できる。このため、処理速度を向上できる。 In this data processing device, for each of a plurality of processes involving data input / output, the control unit outputs reconfiguration information including connection information prepared in the connection information library, whereby A circuit for executing the process is configured. Therefore, a plurality of processes can be executed using a circuit designed specifically for the processes, and can be executed at a high speed with fewer hardware resources. Furthermore, the circuit reconfigured in the reconfiguration unit by the reconfiguration information including the first or second connection information prepared in the connection information library inputs and outputs the memory elements in the reconfiguration unit that can be accessed by internal wiring. The target of. Therefore, the memory access time required to input / output data to / from the external memory via the input / output interface and the external bus can be omitted or shortened. For this reason, a processing speed can be improved.
さらに、接続情報ライブラリには、データの入出力を伴う複数の処理のそれぞれについて、第1のメモリエレメントを入力対象とし、第2のメモリエレメントを出力対象とする第1の処理回路を構成するための第1の接続情報と、第2のメモリエレメントを入力対象とし、第1のメモリエレメントを出力対象とする第2の処理回路を構成するための第2の接続情報とが格納されている。したがって、制御ユニットが、複数の処理を順番に実行するために、先の処理において出力対象となったメモリエレメントを入力対象とする接続情報を接続情報ライブラリから選択し、その選択された接続情報を含む再構成情報を出力することにより、入力対象のメモリエレメントと、出力対象のメモリエレメントとをフレキシブルに選択できる。このため、入出力対象の複数のメモリエレメントを共通のバスで接続したり、セレクタで切り替えて選択するような冗長な回路構成を用いなくても、再構成ユニットに、入出力の対象となるメモリエレメントをフレキシブルに選択できる回路を再構成できる。すなわち、再構成ユニットに、特定の入出力のメモリエレメントに対して入出力するように最適化された回路を再構成することにより、入出力の対象となるメモリエレメントをフレキシブルに選択できる。 Further, the connection information library includes a first processing circuit having a first memory element as an input target and a second memory element as an output target for each of a plurality of processes involving data input / output. The first connection information and second connection information for configuring a second processing circuit having the second memory element as an input target and the first memory element as an output target are stored. Therefore, in order to execute a plurality of processes in order, the control unit selects, from the connection information library, connection information for which the memory element that is the output target in the previous process is the input target, and the selected connection information is selected. By outputting the included reconfiguration information, it is possible to flexibly select an input target memory element and an output target memory element. For this reason, even if a plurality of memory elements to be input / output are connected by a common bus, or without using a redundant circuit configuration that is selected by switching with a selector, the memory to be input / output is supplied to the reconfigurable unit. A circuit that allows flexible selection of elements can be reconfigured. That is, by reconfiguring a circuit optimized to input / output a specific input / output memory element in the reconfiguration unit, a memory element to be input / output can be flexibly selected.
さらに、再構成情報に含まれる接続情報は、複数の処理を実行する順番に基づき選択することができる。このことは、制御ユニットが、再構成情報を動的に生成することが可能であることを意味する。すなわち、このデータ処理装置において、複数の処理を実行する順番が変わったときは、再構成ユニットを再構成するための情報を、最初から生成しなおす必要はない。制御ユニットに複数の処理を実行する順番に関する情報を提供することにより、制御ユニットは、新しい順番にマッチした再構成情報を動的に出力することが可能である。複数の処理を実行する順番の変更は、データ処理装置の外部から供給されても良く、データ処理装置の内部の結果、例えば、再構成ユニットに構成された回路の演算結果により与えられても良い。 Furthermore, the connection information included in the reconfiguration information can be selected based on the order in which a plurality of processes are executed. This means that the control unit can dynamically generate reconfiguration information. That is, in this data processing apparatus, when the order in which a plurality of processes are executed is changed, it is not necessary to regenerate information for reconfiguring the reconfiguration unit from the beginning. By providing the control unit with information regarding the order in which a plurality of processes are executed, the control unit can dynamically output reconfiguration information that matches the new order. The change in the order of executing the plurality of processes may be supplied from the outside of the data processing apparatus, or may be given by a result inside the data processing apparatus, for example, an operation result of a circuit configured in the reconfiguration unit. .
再構成ユニットは、入力インターフェイスと、出力インターフェイスとを含み、内部配線の接続を変更することにより、入力インターフェイスを複数の演算エレメントのいずれかを含む処理回路の入力対象とし、出力インターフェイスを処理回路の出力対象とすることが可能であることが望ましい。さらに、接続情報ライブラリは、複数の処理のそれぞれについて、入力インターフェイスを入力対象とし、第1のメモリエレメントまたは第2のメモリエレメントを出力対象とする第3の処理回路を構成するための第3の接続情報と、第1のメモリエレメントまたは第2のメモリエレメントを入力対象とし、出力インターフェイスを出力対象とする第4の処理回路を構成するための第4の接続情報とが格納されていることが望ましい。 The reconfigurable unit includes an input interface and an output interface, and by changing the connection of internal wiring, the input interface is set as an input target of a processing circuit including any of a plurality of arithmetic elements, and the output interface is set in the processing circuit. It is desirable that it can be output. Further, the connection information library includes a third processing circuit for configuring a third processing circuit having the input interface as an input target and the first memory element or the second memory element as an output target for each of the plurality of processes. The connection information and the fourth connection information for configuring the fourth processing circuit having the first memory element or the second memory element as an input target and the output interface as an output target are stored. desirable.
第4の接続情報は、第1の接続情報、第2の接続情報および第3の接続情報とマージすることが可能である。すなわち、接続情報ライブラリの、第1の接続情報は、第2のメモリエレメントに加え出力インターフェイスを出力対象とし、第2の接続情報は、第1のメモリエレメントに加え出力インターフェイスを出力対象とし、第3の接続情報は、第1のメモリエレメントまたは第2のメモリエレメントに加え出力インターフェイスを出力対象とする。
The fourth connection information can be merged with the first connection information, the second connection information, and the third connection information. That is, in the connection information library, the first connection information has an output interface as an output target in addition to the second memory element, and the second connection information has an output interface as an output target in addition to the first memory element. The
第3の接続情報および第4の接続情報または出力インターフェイスも出力対象とする第1および第2の接続情報を用いることにより、入力対象および出力対象が、入力インターフェイスおよび出力インターフェイスの回路を構成するための再構成情報を、制御ユニットが生成することができる。 By using the first and second connection information whose third connection information and the fourth connection information or the output interface are also output targets, the input target and the output target constitute a circuit of the input interface and the output interface. The reconfiguration information can be generated by the control unit.
複数の処理の一例は、複数のノードが連なったツリー構造で機能が示されるアプリケーションに含まれる複数のノードの処理である。制御ユニットは、処理対象のアプリケーションのツリー構造にしたがって複数の処理の中から実行する処理およびそれらの順番を決めることが可能である。このため、このデータ処理装置においては、任意の構成のツリー構造プログラムにより与えられる機能を、専用の回路により実行することが可能である。さらに、ツリー構造で機能が示されるアプリケーションを自動生成したり、自律的に、あるいは他律的に、ツリー構造を動的に変更させながら、変更されたツリー構造で機能が示されるアプリケーションをハードウェアベースで実行することが可能となる。 An example of a plurality of processes is a process of a plurality of nodes included in an application whose function is indicated by a tree structure in which a plurality of nodes are connected. The control unit can determine the processes to be executed from among a plurality of processes and their order according to the tree structure of the application to be processed. For this reason, in this data processing apparatus, a function given by a tree structure program having an arbitrary configuration can be executed by a dedicated circuit. In addition, an application whose function is shown in the tree structure is automatically generated, or the application whose function is shown in the changed tree structure is changed to hardware while autonomously or otherwise dynamically changing the tree structure. It is possible to execute on a base.
本発明の他の態様の1つは、メモリエレメントを含む再構成ユニットを有するデータ処理装置を、再構成ユニットに含まれる回路を再構成するために、複数のエレメントの接続情報を含む再構成情報を出力する制御ユニットにより制御する方法である。当該方法は、以下の工程を含む。
・上述した第1の接続情報と、第2の接続情報とが格納された接続情報ライブラリから、複数の処理を順番に実行するために、先の処理において出力対象となったメモリエレメントを入力対象とする接続情報を選択すること。
・選択された接続情報を含む再構成情報を出力すること。
Another aspect of the present invention provides reconfiguration information including connection information of a plurality of elements in order to reconfigure a data processing apparatus having a reconfiguration unit including a memory element in a circuit included in the reconfiguration unit. Is controlled by a control unit that outputs. The method includes the following steps.
In order to execute a plurality of processes in order from the connection information library in which the first connection information and the second connection information described above are stored, the memory element that is the output target in the previous process is the input target. Select connection information.
-Output reconfiguration information including the selected connection information.
接続情報ライブラリは、さらに、上述した第3の接続情報と、第4の接続情報とが格納されていることが望ましい。また、第1の接続情報および第2の接続情報は、出力インターフェイスも出力対象とすることが望ましい。 It is desirable that the connection information library further stores the above-described third connection information and fourth connection information. Moreover, it is desirable that the first connection information and the second connection information are also output targets of the output interface.
さらに、複数の処理が、ツリー構造により機能が示されるアプリケーションに含まれる複数のノードの処理であれば、当該方法は、さらに以下の工程を含むことが望ましい。
・処理対象のアプリケーションのツリー構造にしたがって複数の処理の中から実行する処理およびそれらの順番を決めること。
Furthermore, if the plurality of processes are processes of a plurality of nodes included in an application whose function is indicated by a tree structure, the method preferably further includes the following steps.
-Decide the process to be executed from among multiple processes and their order according to the tree structure of the application to be processed.
接続情報ライブラリには、さらに、第3のメモリエレメントを入力対象とし、第4のメモリエレメントを出力対象とする第5の接続情報と、第4のメモリエレメントを入力対象とし、第3のメモリエレメントを出力対象とする第6の接続情報とを含めた他の接続情報が格納されていても良い。2つまたはそれ以上の処理を実行するための複数の回路を同時に再構成ユニットに構成し、複数の処理を並列に実行するための再構成情報を、制御ユニットは出力することが可能となる。 The connection information library further includes fifth connection information whose input is the third memory element and whose output is the fourth memory element, and whose input is the fourth memory element. Other connection information may be stored including the sixth connection information whose output is to be output. A plurality of circuits for executing two or more processes are simultaneously configured in the reconfiguration unit, and the control unit can output reconfiguration information for executing the plurality of processes in parallel.
本発明の他の態様の1つは、メモリエレメントを含む再構成ユニットを有するデータ処理装置を、複数のエレメントの接続情報を含む再構成情報を出力する制御ユニットにより制御するためのプログラムまたはプログラム製品である。当該プログラムは、上述した第1の接続情報と、第2の接続情報とが格納された接続情報ライブラリから、複数の処理を順番に実行するために、先の処理において出力対象となったメモリエレメントを入力対象とする接続情報を選択することと、選択された接続情報を含む再構成情報を出力することとを含む。 Another aspect of the present invention provides a program or a program product for controlling a data processing apparatus having a reconfiguration unit including a memory element by a control unit that outputs reconfiguration information including connection information of a plurality of elements. It is. The program executes a plurality of processes in order from the connection information library in which the first connection information and the second connection information described above are stored. Selecting connection information whose input is to be input, and outputting reconfiguration information including the selected connection information.
図1(a)に、再構成可能なデバイスの一例を示している。このデバイス1は、本願の出願人が開発したDAPDNAと称する半導体集積回路装置である。このデバイス1は、DAPと呼ばれるRISCコアモジュール2と、DNAと呼ばれるダイナミックリコンフィグラブルデータフローアクセレレータ3とを含む。デバイス1は、DAP2およびDNA3に加え、DNA3のダイレクト入出力用のインターフェイス4と、PCIインターフェイス5と、SDRAMインターフェイス6と、DMAコントローラ7と、その他の周辺デバイス8と、これらを接続するための高速スイッチングバス(内部バス)9とを含む。DAP2は、デバッグインターフェイス42aと、RISCコア42bと、命令キャッシュ42cと、データキャッシュ42dとを含む。DNA3は、376個のPE(PEs、処理エレメント)が2次元に配置されたPEマトリクス10と、このPEマトリクス10に含まれるPEsの機能および/または接続を変えてPEマトリクス10を再構成するためのコンフィグレーションデータ18が格納されるコンフィグレーションメモリ19とを含む。
FIG. 1A shows an example of a reconfigurable device. This
コンフィグレーションメモリ19は、複数バンクの構成になっている。例えば、図1(b)に示すように、PEマトリクス10には、フォアグラウンドバンクに格納されるコンフィグレーションデータ18により第1の機能(データフロー、回路デザイン)17aが構成される。また、異なるバックグラウンドバンクにそれぞれ格納されるコンフィグレーションデータにより、第2の機能17bおよび第3の機能17cがそれぞれ構成される。メモリ19のバンクを切り替えることにより、PEマトリクス10には、第1の機能17aに変わって第2の機能17bまたは第3の機能17cが再構成される。PEマトリクス10の再構成は、例えば、1サイクル(クロックサイクル)でダイナミックに行なわれる。このようにPEマトリクス10は、回路を構成するための複数のエレメントと、これらのエレメントを接続するための内部配線とを含む再構成ユニットであり、内部配線によりエレメントの接続を変えることによりPEマトリクス10に含まれる回路を再構成できる。
The
図1(c)は、PEマトリクス10に回路を再構成する一例である。あるアプリケーション、例えばMPEGデコーダを時分割した複数の機能(サブファンクション)を、PEマトリクス10に時分割で再構成し、MPEGデコーダの機能を専用回路(専用ハードウェア)で提供する。このような使用により、再構成可能なデータ処理装置であるデバイス1を用いて、多くのハードウエア資源を必要とするアプリケーションを、少ないハードウエア資源で実行できる。
FIG. 1C is an example in which a circuit is reconfigured in the
図1(d)は、PEマトリクス10に回路を構成する他の例の一つである。再生方式が異なるアプリケーションを実行するために、複数の機能がそれぞれ実現されるようにPEマトリクス10を再構成できる。このような使用により、多くのアプリケーションを共通のハードウエア(デバイス)1を用いて実行できる。このデバイス1は、プログラムレベル(命令レベル)ではなく、データフローレベル(データパスレベル、ハードウエアレベル)で多数の機能を切り換えて実装できるので、専用のハードウエアに匹敵する速度で処理を行うことができる。
FIG. 1 (d) is another example of configuring a circuit in the
図2に、PEマトリクス10の配列を拡大して示している。処理エレメントPEsは、全体として、16×24のマトリクスを構成するように配置されている。なお、図3に示すように、PEのいくつかは、2個分のPEのスペースを占め、全体として376個のPEがPEマトリクス10に実際には配置されているが、図2には反映していない。これらのPEsは、さらに、それぞれ8×8のPEsからなる6つのグループに区分けされている。これらのグループをセグメントSと称し、PEマトリクス10の左上から右下に向かって順番にセグメントS0からセグメントS5が配置されている。各々のセグメントS0〜S5に含まれるPEは、1サイクルの遅延の範囲内でデータを送受信可能なイントラセグメントコネクションで接続されている。また、セグメントS0〜S5の内、隣接するセグメントは、後述するディレイエレメントを介してインターセグメントコネクション22により接続されている。
FIG. 2 shows an enlarged arrangement of the
図3に、PEマトリクス10に含まれるPEsの具体的な配置例を示している。図3に示したPEのうち、「EX」で始まるPEは、EXEエレメントと呼ばれ、算術演算、論理演算および2入力の比較機能を含む演算用のエレメントである。「EXC」は、CMPSB命令を搭載し、「EXF」は、FF1命令を搭載し、「EXM」は、乗算命令を搭載し、「EXR」はBREV命令を搭載し、「EXS」は、BSWAP命令を搭載するというように、タイプ毎に固有の演算機能も含んでいる。
FIG. 3 shows a specific arrangement example of PEs included in the
「DL」で始まるPEは、ディレイエレメントであり、1−8クロックの間の遅延をそれぞれ設定できる。「DLE」は、セグメント内のデータ遅延用であり、「DLV」は縦方向のセグメント間のデータ送受信用であり、「DLH」は横方向のセグメント間のデータ送受信用であり、「DLX」は縦横方向のセグメント間のデータ送受信用のエレメントである。 PEs beginning with “DL” are delay elements, and can each set a delay of 1-8 clocks. “DLE” is for data delay within a segment, “DLV” is for data transmission / reception between vertical segments, “DLH” is for data transmission / reception between horizontal segments, and “DLX” is It is an element for data transmission / reception between vertical and horizontal segments.
「RAM」と表示されたPEは、DNAの内部メモリとして使用されるエレメント(メモリエレメント)である。「LDB」と表示されたPEは、データ入力用のDNA内部バッファである。「STB」と表示されたPEは、データ出力用のDNA内部バッファである。「C16E」と表示されたPEは、DNA内部バッファに対するアドレス生成エレメントである。「C32E」と表示されたPEは、外部メモリ空間に対するアドレス生成エレメントである。「LDX」と表示されたPEは、DNAダイレクトI/Oからのデータ入力用エレメントである。「STX」と表示されたPEは、DNAダイレクトI/Oへのデータ出力用エレメントである。PEマトリクス10において、LDBおよびLDXは、外部からデータを入力するための入力インターフェイスとして使用でき、STBおよびSTXは、外部へデータを出力するための出力インターフェイスとして使用できる。
The PE displayed as “RAM” is an element (memory element) used as an internal memory of DNA. The PE displayed as “LDB” is a DNA internal buffer for data input. The PE displayed as “STB” is a DNA internal buffer for data output. The PE displayed as “C16E” is an address generation element for the DNA internal buffer. The PE displayed as “C32E” is an address generation element for the external memory space. The PE displayed as “LDX” is an element for data input from the DNA direct I / O. The PE displayed as “STX” is an element for outputting data to the DNA direct I / O. In the
図4に、PEの一例として、EXEエレメント(「EXM」)の概略構成をブロック図により示している。EXMエレメントは、ALU11aと、MUL(16×16)11bと、FF11cなどを含む。このEXMエレメントは、DNA3のコンフィグレーションメモリ19に格納されたコンフィグレーションデータ18により、算術演算、論理演算、2入力の比較機能、さらには、乗算のいずれか、または複合した命令を実行するように構成できる。また、複数のFF11cを内蔵しているので、エレメントPEに対するデータの入力から出力までのレイテンシを制御することが可能であり、ディレイエレメント(DLE)の数が不足する構成では、ディレイエレメントとしての機能をセットすることも可能である。
FIG. 4 is a block diagram showing a schematic configuration of an EXE element (“EXM”) as an example of PE. The EXM element includes an
図5に、PEの他の例として、RAMエレメント(「RAM」)の概略構成をブロック図により示している。このRAMエレメントは、データ格納用メモリエレメントであり、16KB(32ビット×4096ワード)のRAMモジュール12aと、アドレス入力用のアドレスレジスタ(FF)12b、ラッチ12c、データ入力用のライトデータレジスタ(FF)12d、ラッチ12e、データ出力用のリードデータレジスタ(FF)12fを含む。RAMモジュール12aのリードとライトの制御は、アドレスデータおよび/またはリードデータとともに入力されるトークンの値により行なわれる。アドレス入力からリードデータの出力までは、EXEエレメントと同様に3クロックサイクル程度で可能になっており、PEマトリクス10に含まれる他のタイプのPEと同様のレイテンシで、データの入出力が可能である。このRAMエレメントは、DNA3のコンフィグレーションメモリ19に格納されたコンフィグレーションデータ18により、32ビットモード、デュアルポート32ビットモード、FIFOモード、16ビットモード、8ビットモード、さらに、FSM(フィードバックステートモード)でデータ入力および/または出力するように構成できる。
FIG. 5 is a block diagram showing a schematic configuration of a RAM element (“RAM”) as another example of PE. This RAM element is a data storage memory element, which is a 16 KB (32 bits × 4096 words)
RAMエレメントのアクセスアドレスの生成には、EXEエレメント、カウンタエレメントであるC16Eおよび/またはC32Eを使用することができ、PEマトリクス10のルーティングマトリクス(マトリクスバス)を通じて、RAMエレメントに入力できる。したがって、RAMエレメントへの入出力は、PEマトリクス10に再構成される回路により制御できる。
The EXE element and the counter element C16E and / or C32E can be used to generate the access address of the RAM element, and can be input to the RAM element through the routing matrix (matrix bus) of the
PEマトリクス10は、複数のPEsと、それらを接続するためのルーティングマトリクス(配線群)20を含む。ルーティングマトリクス20は、セグメントS内のPEを接続するための第1レベルの配線群(第1レベルのルーティングマトリクス、イントラコネクト)21と、ディレイエレメントを介して隣接するセグメントSの間を接続するための第2レベルの配線群(第2レベルのルーティングマトリクス、インターコネクト)22とを含む。ルーティングマトリクス20によるPEsの接続はコンフィグレーションデータ18により制御できる。したがって、PEマトリクス10には、コンフィグレーションデータ18により、複数のPEのそれぞれの機能を変更すること、および/または、ルーティングマトリクス20の少なくとも一部の接続を変更することにより、異なる回路(データパス、データフロー)を再構成できる。
The
図6に、セグメントSの内部のPEsを接続するための第1レベルの配線群21の構成の一例を示している。第1レベルのルーティングマトリクス21は、セグメントS0に含まれる8×8個のPEsを接続するために、128の縦方向のバス23と、64の横方向のバス24とを含む。縦方向のバス23は、16のグループに分けられ、それぞれ8のバスを含む2つのV−バス23xおよび23yがペアとなり、PEsの縦の列(コラム)に沿って、その列の両側に配置されている。横方向のバス24は8のグループに分けられ、それぞれ8のバスを含むH−バス24がPEの横方向の行(ライン)に沿って配置されている。V−バス23xおよび23yには、8−1のバスセレクタ(マルチプレクサ、MUX)25がそれぞれのPEに対応して設けられており、それぞれのPEに対してデータの入力を可能としている。
FIG. 6 shows an example of the configuration of the first-
H−バス24には、H−バス24とV−バス23xおよび23yのそれぞれの交差に対応して、8−1のバスセレクタ(マルチプレクサ、MUX)26が設けられている。したがって、1つのH−バス24から1つのデータセットを、そのH−バス24と交差している1つのV−バス23xまたは23yに出力できる。逆も可能である。H−バス24に含まれるバスのそれぞれには、そのラインのPEsの出力が接続される。したがって、V−バス23xおよび23yと、H−バス24とを介することにより、セグメントSに含まれるPEsを接続できる。これらのV−バス23xおよび23y、およびH−バス24を含む第1レベルのバス21により接続できる範囲、すなわち、各セグメントS0〜S5内のPEの間では1サイクル(1クロック)以内にデータを送受信できる。したがって、タイミング的には、例えば、セグメントS0に含まれるPEsは、いずれも等価である。このため、同一セグメント内であれば、回路を構成するために、いずれのPEを選択して機能を割り付けても、タイミングの検討は不要であり、タイミング的には、セグメント内のPEsを用いて、所定の回路を自由に配置および配線できる。
The H-
図7に、第2レベルのルーティングマトリクス22の構成を示している。図7では、第2レベルのルーティングマトリクス22により、隣接するセグメントS1およびS4にそれぞれ含まれている接続用のエレメントDLHを接続している。それぞれのDLHは、それぞれのセグメントS1およびS4の内部の第1レベルのルーティングマトリクス21に接続している。したがって、セグメントS1に含まれるPEと、セグメントS4に含まれるPEとを第2レベルのルーティングマトリクス22を介して接続することができる。接続用のディレイエレメントDLHは、第1レベルのルーティングマトリクス21に含まれるバスのインターフェイスとして機能する。したがって、第1レベルのルーティングマトリクス21に含まれるバスを、セグメント毎に独立して使用できる。一方、セグメント間でデータを入出力する必要があるときは、接続用のディレイエレメントDLHに含まれる複数のFFを介してデータを入出力する必要があり、クロックに同期した2サイクル以上の遅延が新たに加わる。
FIG. 7 shows the configuration of the second
このように、第1レベルのルーティングマトリクス21のみを用いてPEを接続する場合、PEsの間は1サイクル(第1の遅延)の範囲内で接続されることが保証され、タイミングの検証は不用である。これに対し、第2レベルのルーティングマトリクス22を介してPEを接続する場合は、2サイクル以上の遅延が加わる。第2レベルのルーティングマトリクス22を介して接続する場合の遅延は、ディレイエレメントDLHの設定に依存する。例えば、DLHの遅延量を制御することにより、第2のルーティングマトリクス22を2回使用する信号と、1回使用する信号とをシンクロナイズできる。他の接続用のディレイエレメントDLVおよびDLXを介して隣接するセグメントS0〜S5を接続するときも同様である。
In this way, when PEs are connected using only the first
このため、セグメントS0〜S5の複数のセグメントに分散する回路、すなわち、セグメントを跨ぐ回路は、配置配線の間あるいは終了した後に、タイミングの調整あるいは再検討が必要となる。その結果、遅延エレメントを追加したり、遅延エレメントの遅延を調整したりすることが要求される可能性がある。したがって、回路をPEマトリクス10に配置および配線するときは、第2レベルのルーティングマトリクス22の使用を最小限にすることが好ましい。
For this reason, a circuit distributed to a plurality of segments S0 to S5, that is, a circuit across the segments, needs to be adjusted or reexamined during or after the placement and routing. As a result, it may be required to add delay elements or adjust the delay of the delay elements. Therefore, it is preferable to minimize the use of the second
図8に、ツリー構造により機能が示されたアプリケーションの一例を示している。ツリー構造とはノードが一列にあるいは枝分かれして連なった構造を示している。このアプリケーション30は複数の処理がツリー構造をなすように組み合わされた画像処理(画像フィルタ)であり、ツリー構造は、入力される画像、抽出したい対象などの条件に基づき最適化されたものである。最適化の手法は、上述したGAGPと称される手法であり、遺伝的アルゴリズム(GA)をもとに考案された遺伝的プログラミング(GP)である。ツリー構造を見出すための最適化の手法はGAGPに限らず、免疫的アルゴリズムに基づく手法、シミュレーテッドアニーリング法などの他の最適化手法であっても良い。
FIG. 8 shows an example of an application whose function is shown by a tree structure. The tree structure indicates a structure in which nodes are connected in a line or branched. This
ツリー構造の画像処理アプリケーション30は、任意に組み合わされた複数のノードの処理31を含み、これらのノードの処理31が組み合わされた順番に実行されるようになっている。ノードの処理31は、1入力1出力の処理に限られず、多入力1出力、多入力多出力であっても良く、この例では2入力1出力の処理31が含まれている。1入力1出力の処理(ノード)31が接続されている場合は、先の処理31の出力が次の処理31の入力となる。2入力1出力の処理がノードの処理31の場合は、2の枝(処理経路)が交わり、1つの枝(処理経路)となって次のノードに接続される。すなわち、先の2つの処理31の出力が、次の処理31の入力となる。
The
画像処理アプリケーション30において、ツリー構造をなす各ノードの処理31は、画像処理の目的に応じて、ある程度、変換機能が限定された画像フィルタ(フィルタユニット)である。1入力1出力のフィルタユニットとしては、平均値フィルタ(−)、最大値フィルタ(M)、最小値フィルタ(m)、ゾーベルフィルタ(d)、黒領域エッジ抽出ラプラシアンフィルタ(E)、明領域エッジ抽出ラプラシアンフィルタ(e)、分割領域面積が平均値よりも小さいものを明るくするフィルタ(X)、分割領域面積が平均値よりも大きいものを明るくするフィルタ(x)、明るいピクセル(例えば平均より階調値が大)を選択して他は黒にするフィルタ(T)、暗いピクセル(例えば平均より階調値が小)を選択して他は明るくするフィルタ(t)、ハイパスフィルタ(F、例えば、離散コサイン変換し、低周波数成分をカットし、逆離散コサイン変換する)、ローパスフィルタ(f、例えば、離散コサイン変換し、高周波成分をカットし、逆離散コサイン変換する)、階調値反転処理フィルタ(i)、線形変換フィルタ(H)、平均値による2値化処理フィルタ(N)、分析処理により得られた値による2処理フィルタ(n)などを挙げることができる。
In the
2入力1出力のフィルタユニットとしては、論理和(L)、論理積(l)、代数和(A)、代数積(a)、限界和(B)、限界積(b)、差分フィルタ(D)などを挙げることができる。 The filter unit with two inputs and one output includes logical sum (L), logical product (l), algebraic sum (A), algebraic product (a), limit sum (B), limit product (b), and differential filter (D ) And the like.
図9に、ツリー構造で機能が示されたアプリケーション30を図1に示したDAPDNA1で実行する一例を示している。この例では、DAP2は再構成制御ユニット2aとしての機能を含み、PEマトリクス10は再構成領域である。再構成制御ユニット2aが、コンフィグレーションメモリ19に、ツリー構造にしたがって各ノードの処理31を実行するための1セットの(ノード単位の)回路構成(再構成情報、コンフィグレーションデータ)18を出力し、PEマトリクス10にノードの処理31を実行するための回路を構成する。各ノードの処理31を実行するための回路構成を指示するコンフィグレーションデータ18を含むアプリケーション30を実行するためのハードウェア情報39は、アプリケーション30のツリー構造にしたがって予め設計(生成)されており、DRAM(SDRAM)6に格納されている。
FIG. 9 shows an example in which the
DAPDNA1においては、コンフィグレーションメモリ19のバンクに、次のノードの処理31を実行するための回路のコンフィグレーションデータ18を格納しておくことができる。したがって、PEマトリクス10を、ツリー構造にしたがってほぼ1クロックサイクルで再構成することができる。このため、ツリー構造で機能が示されたアプリケーションを、専用回路を用いて、高速で実行できる。さらに、コンフィグレーションデータ18を変えることにより、ツリー構造の異なるアプリケーションをDAPDNA1に実装できるので、画像の入力状況および/または抽出対象に適した複数種類のツリー構造のアプリケーションを1つのDAPDNA1で適宜実行できる。
In the
図10(a)および(b)に、ツリー構造で機能が示されたアプリケーション30をDAPDNA1で実行する異なる例を示している。図9に示した例では、PEマトリクス10に構成された回路は、DAPDNA1のDRAM6を作業領域としてデータを入出力している。これに対し、図10(a)および(b)に示した例では、PEマトリクス10に構成された回路は、PEマトリクス10のRAMエレメントを作業領域としてデータを入出力している。
FIGS. 10A and 10B show different examples in which the
ツリー構造の画像処理のアプリケーション30において、各ノードの処理は、処理対象の画像データに含まれる画素データを読み込んで変換して出力する作業を繰り返して行なう。したがって、作業用のメモリ領域との間でデータの入出力は頻繁になる。図9に示した例では、DRAM6に作業領域6aを設けている。DRAM6は、DAPDNA1に含まれるメモリなので、PEマトリクス10に構成された回路から高速でデータを入力および出力できる。
In the
しかしながら、PEマトリクス10とDRAM6との間でデータを入力または出力するためには、幾つかの手続きが必要となる。例えば、データをDRAM6からPEマトリクス10へ供給する場合、まず、PEマトリクス10とDRAM6とを接続する内部バス9をPEマトリクス10のアクセスのために開放し、PEマトリクス10からメモリアクセス用のアドレスを出力する。その後、DRAM6から所定のデータがバス9に出力されPEマトリクス10に供給される。そのバス9に出力されたデータは、PEマトリクス10において、データ入力用の内部バッファとなるLDBエレメントを介して、ノード(画像フィルタ)としての機能を果たすためにPEマトリクス10に構成された回路に入力される。PEマトリクス10に構成された回路により処理されたデータを出力する場合も、ほぼ同じ手続きを経る必要がある。
However, several procedures are required to input or output data between the
このようなデータの入出力に消費されるサイクルは、プログラムの記述にしたがって逐次処理を進めるRISCなどの汎用型のプロセッサにおいても同様である。したがって、DAPDNA1では、ノードにより異なる処理31を実行するための回路をPEマトリクス10に1クロックサイクルで再構成できるのに対し、データの入出力が多数のクロックサイクルを消費するので、回路を再構成することはデータ処理の遅れに繋がる恐れはない。逆に、いったんPEマトリクス10に回路が構成されれば、ノードの処理31は専用回路(ハードウェア)でアプリケーション30が実行される。このため、DAPDNA1では、アプリケーション30を、汎用プロセッサをプログラム制御して実行する場合よりも高速で処理が進む。
The cycle consumed for such data input / output is the same in a general-purpose processor such as RISC that sequentially performs processing according to the description of the program. Therefore, in DAPDNA1, a circuit for executing
さらに、図10(a)および(b)に示した例では、PEマトリクス10の内部に、RAMエレメントを入出力対象とするフィルタ回路(処理回路)61および62が構成される。これらのフィルタ回路61および62は、PEマトリクス10に配置された演算エレメント(EXE)を含み、所定のフィルタとしての機能を実現するための回路であり、RAMエレメントが含まれていてもよい。図10(a)では、PEマトリクス10に、第1のRAMエレメント(RAM#1)を入力対象とし、第2のRAMエレメント(RAM#2)を出力対象とするフィルタ回路61が構成されている。図10(b)には、第2のRAMエレメント(RAM#2)を入力対象とし、第1のRAMエレメント(RAM#1)を出力対象とするフィルタ回路62が構成されている。このように、図10(a)に示したK番目(5番目)の処理回路61で出力対象となったRAM#2を、図10(b)に示した(K+1)番目(6番目)の処理回路62においては入力対象とすることにより、PEマトリクス10の内部のデータ転送だけで、ツリー構造で繋がった複数の処理31を実行することが可能となる。したがって、DAPDNA1の内部バス9およびLDBエレメントを介してデータを入力する必要がなくなり、作業用のメモリにアクセスするために要する手続きは簡略化される。このため、ノードの処理31において、データの入出力に要する処理時間が低減され、DAPDNA1において、さらに高速でアプリケーション30を実行することができる。
Further, in the example shown in FIGS. 10A and 10B, filter circuits (processing circuits) 61 and 62 having RAM elements as input / output targets are configured in the
図11は、本発明の実施形態の一例のデータ処理装置のブロック図である。このデータ処理装置50は、DAPDNA1を用いて実現されている。データ処理装置50は、再構成ユニット(再構成領域)であるPEマトリクス10を有する。このPEマトリクス10は、回路を構成するための複数のエレメント(PE)と、これらPEを接続するための内部配線20とを含み、内部配線20による複数のPEの接続を変更することにより、当該再構成ユニット10に含まれる回路を再構成可能である。さらに、データ処理装置50は、PEマトリクス10に実装される回路を再構成するために、複数のPEの接続情報を含む再構成情報(コンフィグレーションデータ)18を出力する再構成制御ユニット2aを有する。このデータ処理装置50では、再構成制御ユニット2aはDAP2により提供されている。
FIG. 11 is a block diagram of a data processing apparatus as an example of an embodiment of the present invention. The
PEマトリクス10は、上述したように、算術演算用のPEである演算エレメント(EXE)、内部メモリ用のRAMエレメント(RAM)をはじめとする複数種類のPEを含む。そして、第1レベルの配線21および第2のレベルの配線22を含む内部配線20の接続を変更することにより、所定のRAMエレメントを、EXEを含む処理回路入力対象または出力対象とすることが可能である。
As described above, the
データ処理装置50では、複数セットの接続情報(接続データ)56を含む接続情報ライブラリ55と、ツリー構造の情報35とがDRAM6に格納されている。接続情報ライブラリ55には、ツリー構造のノードの処理31の幾つか、特に、1入力1出力の処理のそれぞれについて、第1のメモリエレメント(RAM#1)を入力対象とし、第2のメモリエレメント(RAM#2)を出力対象とする第1の処理回路を構成するための第1の接続情報と、第2のメモリエレメント(RAM#2)を入力対象とし、第1のメモリエレメント(RAM#1)を出力対象とする第2の処理回路を構成するための第2の接続情報とが格納されている。したがって、再構成制御ユニット2aは、ツリー構造の情報35にしたがってノードの処理31を順番に実行する際に、先の処理において出力対象となったメモリエレメントを入力対象とする接続情報を接続情報ライブラリ55から選択し、その選択された接続情報を含むコンフィグレーションデータ18をコンフィグレーションメモリ19に出力することにより、PEマトリクス10にツリー構造のアプリケーション30を実行するための回路を順番に構成できる。接続情報ライブラリ55に含まれている、それぞれのノードの処理31に対応した接続情報(接続情報のセットまたはピース(接続データセット))56は、PEの接続に関する情報だけではなく、PEにセットされるパラメータなど、コンフィグレーションデータ18として必要な情報を全て含んでいても良い。
In the
図12に、接続情報ライブラリ55に含まれる接続情報56のいくつかのタイプ(セット、ピース)を示している。タイプ1の接続情報56aは、第1のRAMエレメント(RAM#1)を入力対象とし、第2のRAMエレメント(RAM#2)を出力対象とする第1の処理回路61を構成するための第1の接続情報である。この接続情報56aは、RAMエレメントに加えて、出力インターフェイスのPEであるSTBも出力対象とする処理回路61が構成されるようにしている。第1の処理回路61の処理結果をPEマトリクス10からDRAM6の作業領域6aに格納する必要があれば、STBからバス9を介してDRAM6に処理結果が送られる。
FIG. 12 shows several types (sets, pieces) of the
タイプ2の接続情報56bは、RAM#2を入力対象とし、RAM#1を出力対象とする第2の処理回路62を構成するための第2の接続情報である。この接続情報56bも、さらに、出力インターフェイスのPEであるSTBも出力対象とする処理回路62が構成されるようにしている。
The
タイプ3の接続情報56cは、入力インターフェイスのPEであるLDBを入力対象とし、RAM#1を出力対象とする第3の処理回路63を構成するための第3の接続情報である。この接続情報56cも、さらに、出力インターフェイスのPEであるSTBも出力対象とする処理回路63が構成されるようにしている。
The
タイプXの接続情報56dは、2入力1出力のフィルタ回路をPEマトリクス10に構成するための接続情報であり、2つのLDBを入力対象とし、RAM#1と、STBとを出力対象とする処理回路69を構成するための接続情報である。RAM#1と、STBとには同じデータが出力される。
The type
ツリー構造の画像処理アプリケーション30のノードとして含まれる可能性のある1入力1出力のフィルタ処理31については、それぞれの処理に対して、タイプ1からタイプ3の接続情報が接続情報ライブラリ55に用意されている。例えば、平均値フィルタをPEマトリクス10に構成するための接続情報として、タイプ1からタイプ3の3種類の接続情報56がライブラリ55に格納されている。これらの3種類の接続情報56によりPEマトリクス10に構成される回路は、平均値フィルタとしての機能を提供するためのものであり、入出力を除いて同じ機能を提供する。さらに、3種類の接続情報56は、異なる入力対象と、異なる出力対象とにそれぞれの処理回路が接続するように最適化されており、フィルタとしての機能を提供するために消費されるPEの数ができるだけ少なくなるように生成されている。例えば、入力を切り換えるためにセレクタとして機能する演算エレメントや、ディレイエレメント、特に、セグメントを跨いだ配線に導入されるディレイエレメントを少なくし、PEマトリクス10に含まれるPEを有効利用して複雑なフィルタ処理に対応できるようにする。また、PEマトリクス10に構成される処理回路を簡易な構成にして、処理に要する時間が短縮されるようにしている。
For the 1-input 1-
2入力1出力の処理についても、1入力1出力の処理と同様に、複数種類の接続情報を用意することが可能である。しかしながら、画像処理アプリケーション30において、2入力1出力のフィルタ処理は、少なくとも一方の画像データが、異なるフレームの画像データである。このため、2入力1出力のフィルタの入力は、外部メモリ(DRAM)6またはDAPDNA1の外のメモリから供給されるデータを受けることが多い。さらに、第1および第2のRAMエレメントを2入力とすると、2入力の処理の前方の処理においては、出力対象のRAMエレメントに制限が発生する可能性があるので、この例においては、2入力1出力の処理については、外部メモリからデータが入力されるようにしている。したがって、2入力1出力の処理に入力するフィルタ処理されたデータはいったんDRAM6の作業領域6aに出力する。
As for the 2-input 1-output process, it is possible to prepare a plurality of types of connection information as in the 1-input 1-output process. However, in the
接続情報ライブラリ55に格納される接続情報56は、上述したものに限定されない。1入力1出力の処理について用意されたタイプ1から3の接続情報56a〜56cは、出力対象に、RAMエレメントに加えて、出力インターフェイスであるSTBを含めている。これに対し、出力対象をRAMエレメントのみとした接続情報と、出力対象を出力インターフェイスのみとした接続情報とを独立して用意することが可能である。例えば、第1のRAMエレメントまたは第2のRAMエレメントを入力対象とし、出力インターフェイスであるSTBを出力対象とする第4の処理回路を構成するための第4の接続情報を接続情報ライブラリ55に格納しておくことができる。
The
さらに、第1および第2のRAMエレメントとは異なる、第3のRAMエレメントと、第4のRAMエレメントとを入力対象または出力対象とする接続情報をライブラリ55に用意しておくことは有効である。処理回路の規模が十分に小さい場合には、第1および第2のRAMエレメントを入出力対象とする処理回路と、第3および第4のRAMエレメントを入出力対象とする処理回路とを、PEマトリクス10に同時に生成し、それらの処理を並列に実行することが可能となる。例えば、アプリケーション30のツリー構造の枝別れした部分のノードの処理を並列に実行することにより、アプリケーション30をさらに高速に実行できる。
Furthermore, it is effective to prepare in the
図13に、データ処理装置50において、ツリー構造を備えたアプリケーション30を実行するときの再構成制御ユニット2aの動作を、フローチャートを用いて示している。ステップ70において、DRAM6からアプリケーション30のツリー構造に関する情報(以降ではツリー構造)35を取得する。ステップ71において、ツリー構造35の最初のノード#0(図8の処理#0、階調値反転処理)の接続情報56を、接続情報ライブラリ55から取得する。ノード#0は最初の処理なので、画像データをDRAM6から取得する必要がある。したがって、ステップ71において、制御ユニット2aは、階調値反転処理を行う処理回路をPEマトリクス10に構成するため接続情報のうちのタイプ3の接続情報56cを取得する。ステップ72において、制御ユニット2aは、接続情報56cに基づいてコンフィグレーションデータ18を生成し、コンフィグレーションメモリ19の、例えば、バンク#1に出力する。ステップ73において、制御ユニット2aは、コンフィグレーションメモリ19のバンク#1のコンフィグレーションデータ18をフォアグラウンドバンクに移す。これにより、PEマトリクス10に、階調値反転処理を行う処理回路であって、LDBを入力対象とし、RAM#1を出力対象とする処理回路が構成され、画像データを外部メモリから入力し、階調値反転処理を施した画像データをRAM#1に出力する処理が開始される。
FIG. 13 shows the operation of the
PEマトリクス10において処理が行われている間に、制御ユニット2aは、さらに、ステップ74において、次のノード#1(図8の処理#1、平均値処理)の接続情報56を、接続情報ライブラリ55から取得する。ノード#1は、2番目の処理であり、最初の処理の出力対象はRAM#1である。したがって、制御ユニット2aは、平均値処理を行う処理回路をPEマトリクス10に構成するための接続情報のうちのタイプ1の接続情報56aを取得する。ステップ75において、制御ユニット2aは、接続情報56aに基づいてコンフィグレーションデータ18を生成し、コンフィグレーションメモリ19の、例えば、バンク#1に出力する。
While the processing is being performed in the
ステップ76において、制御ユニット2aは、PEマトリクス10に構成された今の処理、すなわち、処理#0が終了するのを待つ。ステップ77において、ツリー構造35の全ての処理の終了を確認し、終了していない場合には、ステップ78において、コンフィグレーションメモリ19のバンク#1のコンフィグレーションデータ18をフォアグラウンドバンクに移す。これにより、PEマトリクス10に、平均値処理を行う処理回路であって、RAM#1を入力対象とし、RAM#2を出力対象とする処理回路が構成される。そして、RAM#1から階調値反転処理が施された画像データを読み出し、平均値処理を施した画像データをRAM#2に出力する処理が開始される。
In
ステップ79において、ツリー構造35に次のノードの処理が残っていれば、ステップ74に戻って、そのノードの処理を行なうのに適した接続情報56を接続情報ライブラリ55から取得する。ステップ79において、次のノードの処理が残っていなければ、ステップ76に戻り、今の処理が終了すると、コンフィグレーションメモリ19に出力されたコンフィグレーションデータ18により最後のノードの処理を行う回路を再構成する。
If it is determined in
なお、DAPDNA1のコンフィグレーションメモリ19は4バンク構成なので、バンク#2およびバンク#3に、次の処理回路をPEマトリクス10に構成するためのコンフィグレーションデータ18を予め出力することも可能である。また、再構成制御ユニット2aの機能は、RISCタイプのDAP2にロードされるプログラム(プログラム製品)として提供することができ、ROMなどの適当な記録媒体に記録して提供できる。
Since the
このデータ処理装置50においては、処理#2の処理回路をPEマトリクス10に構成するためには、処理#1の処理回路の出力対象であるRAM#2を入力対象とするタイプ2の接続情報56bが選択される。2入力1出力のノードの前のノードにおいては、出力対象をDRAM6の作業領域6aにする必要がある。したがって、処理#3の処理回路をPEマトリクス10に構成するためには、RAM#1を入力対象とするタイプ1の接続情報56aが選択され、処理回路61により処理されたデータはSTBを介してDRAM6に出力される。2入力1出力の処理#4の処理回路をPEマトリクス10に構成するためには、2系統のLDBを入力対象とするタイプXの接続情報56dが選択され、処理回路69により処理されたデータはRAM#1に出力される。
In this
このように、このデータ処理装置50においては、ツリー構造35が与えられれば、ツリー構造35を解析し、ツリー構造35に含まれるノードの順番により、そのノードの処理を実行するのに適した処理回路を構成するための接続情報56が接続情報ライブラリ55から選択され、その処理回路がPEマトリクス10に構成される。したがって、ツリー構造35の異なるアプリケーション30であっても、そのツリー構造の情報がデータ処理装置50に与えられることにより、アプリケーション30を実行することができる。このため、ツリー構造の異なるアプリケーション毎に、そのアプリケーションを実行するための回路構成をすべて事前に生成し、コンフィグレーション情報として生成しておく必要はない。
As described above, in the
さらに、データ処理装置50の内部において、ツリー構造35が自律的な要因により、あるいは、外部的な要因により変異したとしても、その変異したツリー構造35にしたがって各ノードの処理を行うための回路をPEマトリクス10に構成することができる。
Furthermore, even if the
図14は、本発明の実施形態の異なるデータ処理装置のブロック図である。このデータ処理装置51は、DAPDNA1を用いて実現され、再構成ユニット(再構成領域)であるPEマトリクス10と、PEマトリクス10に実装される回路を再構成するためにコンフィグレーションデータ18を出力する再構成制御ユニット2aを有する。再構成制御ユニット2aの機能はDAP2により提供されている。さらに、DAP2は、候補ツリー構造生成ユニット2cと、処理順序出力ユニット2dと、候補ツリー構造評価ユニット2bとしての機能を提供している。
FIG. 14 is a block diagram of a different data processing apparatus according to the embodiment of the present invention. The
候補ツリー構造生成ユニット2cは、遺伝的アルゴリズムの規則により、ツリー構造により機能が示された画像処理を生成する。DRAM6には、フィルタライブラリ37が設けられており、候補ツリー構造生成ユニット2cが利用できるツリー構造のノードとして採用できる各フィルタの情報36が格納されている。DRAM6は、画像データ収納部66を有し、画像データ収納部66には、ツリー構造の画像処理の処理対象となる初期画像データ66aと、評価の基準を提供するリファレンス画像データ66bと、評価の対象となる画像データ66cとが格納される。評価部2bの評価の対象となる画像データ66cは、候補ツリー構造生成ユニット2cにより生成されたツリー構造を備えた画像処理により初期画像データを処理した結果である。評価部2bにより高い評価が得られたツリー構造35は、このデータ処理装置51において画像処理のために使用されるアプリケーション30としてDRAM6に登録され、外部から入力される画像データの処理に用いられる。
The candidate tree
処理順序出力部2dは、候補ツリー構造生成ユニット2cにより、遺伝的アルゴリズムの規則により生成された候補ツリーに含まれる各ノードの処理31と、その順番とを抽出し、再構成制御ユニット2aに供給する。再構成制御ユニット2aは、上記のデータ処理装置50と同様に、順序出力ユニット2dからの情報にしたがって、適切な接続情報を選択し、PEマトリクス10に適切な回路を構成する。
The processing
このように、データ処理装置51は、候補ツリー構造生成部2cにより任意のツリー構造35が生成されると、そのツリー構造35を備えた画像処理を行なうための回路を時分割でPEマトリクス10に再構成できる。このため、遺伝的アルゴリズムの規則にしたがって、最適な処理結果が得られる画像処理のツリー構造を生成する処理を、そのツリー構造に含まれるノードの処理に専用化した回路を用いて実行できる。このため、最適な結果が得られる画像処理のためのツリー構造を短時間で得ることができる。
As described above, when an
図15は、接続情報56によりPEマトリクス10に構成される回路の異なる例である。この回路80を構成するための接続情報56eは、タイプ1の接続情報に相当するが、この例では、STBへの出力は省かれている。RAM#1およびRAM#2は、エレメント単体である必要はなく、幾つかのRAMエレメントを含むデータ読み出し回路であっても良い。アドレス調停回路80aおよび80bは、カウンタエレメントであるC16Eおよび/またはC32E、さらにはEXEエレメントなどを用いて構成することができる。以下の回路においても同様である。
FIG. 15 shows different examples of circuits configured in the
図16は、接続情報56によりPEマトリクス10に構成される回路のさらに異なる例である。この回路81を構成するための接続情報56fは、タイプ1の接続情報に相当するが、この例では、STBへの出力は省かれている。フィルタ処理回路61は4並列の処理ルート(データパス)を含む。したがって、この回路81は、RAM#1−1〜RAM#1−4をそれぞれ入力対象とし、RAM#2−1〜RAM#2−4をそれぞれ出力対象とする4系統の処理回路を含む。4並列の処理を行うフィルタ回路の一例は、図17に示した平均値フィルタの処理回路89である。この平均値フィルタは、対象画素と、周辺画素(8画素)の平均値を算出して出力する。図17に示した回路89では、4ピクセルを対象画素とした平均値の処理を4並列で行っている。なお、図17に示した回路89では、8ビット×4ピクセルを32ビットのデータにパックして入出力しており、入力対象および出力対象のRAMエレメントは1つずつである。
FIG. 16 is a further different example of a circuit configured in the
図18は、接続情報56によりPEマトリクス10に構成される回路のさらに異なる例である。この回路82を構成するための接続情報56gは、タイプ1の接続情報に相当するが、この例では、STBへの出力は省かれている。入力対象となる4つのRAM#1−1〜RAM#1−4は、セレクタ82aによりシリアル変換されて読み出されている。また、出力対象となるRAM#2−1〜RAM#2−4に対してはセレクタ82bによりパラレル変換して書き込まれる。
FIG. 18 is a further different example of a circuit configured in the
図19は、接続情報56によりPEマトリクス10に構成される回路のさらに異なる例である。この回路83を構成するための接続情報56hは、タイプ1の接続情報に相当するが、この例では、STBへの出力は省かれている。入力対象となる4つのRAM#1−1〜RAM#1−4は、セレクタ82aによりシリアル変換されて読み出され、出力対象となるRAM#2−1〜RAM#2−4に対してはパラレルでデータが書き込まれる。
FIG. 19 is a further different example of a circuit configured in the
以上では、ツリー構造により機能が示されるアプリケーションとして、画像処理を行うアプリケーションを例に説明している。ツリー構造により機能が示されるアプリケーションは画像処理に限らず、音声処理などであっても良い。さらに、このデータ処理装置において実行可能なアプリケーションは、ツリー構造を有するアプリケーションに限定されない。アプリケーションの機能が、データの入出力を伴う、複数のある程度纏まった処理の集合として与えられており、それらの処理の順番が決まるのであれば、再構成制御ユニットが、その順番に従って接続情報を選択し、コンフィグレーションデータとして出力することにより、そのアプリケーションを、再構成ユニットに構成された専用回路により実行することが可能となる。 In the above, an application that performs image processing is described as an example of an application whose function is indicated by a tree structure. The application whose function is indicated by the tree structure is not limited to image processing, and may be audio processing. Furthermore, applications that can be executed in the data processing apparatus are not limited to applications having a tree structure. If the function of the application is given as a set of processes that are combined to some extent with data input and output, and the order of those processes is determined, the reconfiguration control unit selects connection information according to the order. By outputting the configuration data, the application can be executed by a dedicated circuit configured in the reconfiguration unit.
1 再構成可能なデバイス
2a 再構成制御ユニット
10 PEマトリクス(再構成ユニット)
50、51 データ処理装置
55 接続情報ライブラリ、 56 接続情報
1
50, 51
Claims (9)
前記再構成ユニットの回路を再構成するために、前記複数のエレメントの接続情報を含む再構成情報を出力する制御ユニットとを有するデータ処理装置であって、
前記複数のエレメントは、少なくとも1種類の演算を実行するための複数の演算エレメントと、複数のメモリエレメントとを含み、前記内部配線の接続を変更することにより、前記複数のメモリエレメントの少なくともいずれかを、前記複数の演算エレメントの少なくともいずれかを含む処理回路の入力対象または出力対象とすることが可能であり、
当該データ処理装置は、さらに、データの入出力を伴う複数の処理のそれぞれの処理について、第1のメモリエレメントを入力対象とし、第2のメモリエレメントを出力対象として前記それぞれの処理を行う処理回路を構成するための第1の接続情報と、前記第2のメモリエレメントを入力対象とし、前記第1のメモリエレメントを出力対象として前記それぞれの処理を行う処理回路を構成するための第2の接続情報とが格納された接続情報ライブラリを有し、
前記制御ユニットは、前記複数の処理を順番に実行するために、先の処理において出力対象となったメモリエレメントを入力対象とする接続情報を前記接続情報ライブラリから選択し、その選択された接続情報を含む再構成情報を出力する、データ処理装置。 A reconfiguration unit including a plurality of elements for configuring a circuit and an internal wiring for connecting the plurality of elements, wherein the circuit is changed by changing connection of the plurality of elements by the internal wiring. A reconfigurable reconfigurable unit;
A data processing device having a control unit that outputs reconfiguration information including connection information of the plurality of elements to reconfigure the circuit of the reconfiguration unit,
The plurality of elements include a plurality of calculation elements for executing at least one kind of calculation and a plurality of memory elements, and by changing connection of the internal wiring, at least one of the plurality of memory elements Can be an input object or an output object of a processing circuit including at least one of the plurality of arithmetic elements,
The data processing device further includes for each of the processing of a plurality of processes involving the input and output of data, the first memory element of the input object, performs the respective processes as an output target of the second memory element a first connection information for configuring the processing circuit, and the second input of the memory element target, for configuring the processing circuit for performing the respective processes in the output target the first memory element A connection information library storing second connection information;
In order to execute the plurality of processes in order, the control unit selects, from the connection information library, connection information whose input target is a memory element that is an output target in the previous process, and the selected connection information A data processing device that outputs reconstruction information including
前記接続情報ライブラリには、さらに、前記複数の処理のそれぞれについて、前記入力インターフェイスを入力対象とし、前記第1のメモリエレメントまたは前記第2のメモリエレメントを出力対象とする処理回路を構成するための第3の接続情報と、前記第1のメモリエレメントまたは前記第2のメモリエレメントを入力対象とし、前記出力インターフェイスを出力対象とする処理回路を構成するための第4の接続情報とが格納されている、データ処理装置。 2. The reconfiguration unit according to claim 1, wherein the reconfiguration unit includes an input interface and an output interface, and by changing connection of the internal wiring, the input interface is set as an input target of the processing circuit, and the output interface is set as the processing circuit. Can be output,
The connection information library further includes, for each of the plurality of processes, a processing circuit having the input interface as an input target and the first memory element or the second memory element as an output target. Third connection information and fourth connection information for configuring a processing circuit having the first memory element or the second memory element as an input target and the output interface as an output target are stored. A data processing device.
前記複数のエレメントは、少なくとも1種類の演算を実行するための複数の演算エレメントと、複数のメモリエレメントとを含み、前記内部配線の接続を変更することにより、前記複数のメモリエレメントの少なくともいずれかを、前記複数の演算エレメントの少なくともいずれかを含む処理回路の入力対象または出力対象とすることが可能であり、
当該方法は、
データの入出力を伴う複数の処理のそれぞれの処理について、第1のメモリエレメントを入力対象とし、第2のメモリエレメントを出力対象として前記それぞれの処理を行う処理回路を構成するための第1の接続情報と、前記第2のメモリエレメントを入力対象とし、前記第1のメモリエレメントを出力対象として前記それぞれの処理を行う処理回路を構成するための第2の接続情報とが格納された接続情報ライブラリから、前記複数の処理を順番に実行するために、先の処理において出力対象となったメモリエレメントを入力対象とする接続情報を選択することと、
選択された接続情報を含む再構成情報を出力することとを含む、方法。 A reconfiguration unit including a plurality of elements for configuring a circuit and an internal wiring for connecting the plurality of elements, wherein the circuit is changed by changing connection of the plurality of elements by the internal wiring. In this method, a data processing apparatus having a reconfigurable reconfigurable unit is controlled by a control unit that outputs reconfiguration information including connection information of the plurality of elements in order to reconfigure the circuit of the reconfigurable unit. And
The plurality of elements include a plurality of calculation elements for executing at least one kind of calculation and a plurality of memory elements, and by changing connection of the internal wiring, at least one of the plurality of memory elements Can be an input object or an output object of a processing circuit including at least one of the plurality of arithmetic elements,
The method is
For each processing of a plurality of processes involving the input and output of data, the first memory element of the input object, for configuring the processing circuit for performing the respective processes as an output target second memory element of the and first connection information, and the second input of the memory element target, the second connection information and the storage for configuring the processing circuit for performing the respective processes in the output target the first memory element In order to execute the plurality of processes in order from the connection information library that has been selected, selecting connection information whose input target is a memory element that is an output target in the previous process;
Outputting reconfiguration information including the selected connection information.
前記接続情報ライブラリは、前記複数の処理のそれぞれについて、前記入力インターフェイスを入力対象とし、前記第1のメモリエレメントまたは前記第2のメモリエレメントを出力対象とする処理回路を構成するための第3の接続情報と、前記第1のメモリエレメントまたは前記第2のメモリエレメントを入力対象とし、前記出力インターフェイスを出力対象とする処理回路を構成するための第4の接続情報とが格納されている、方法。 6. The reconfiguration unit according to claim 5, wherein the reconfiguration unit includes an input interface and an output interface, and by changing the connection of the internal wiring, the input interface is set as an input target of the processing circuit, and the output interface is set as the processing circuit. Can be output,
The connection information library includes, for each of the plurality of processes, a third processing circuit that configures a processing circuit that uses the input interface as an input target and outputs the first memory element or the second memory element as an output target. Method of storing connection information and fourth connection information for configuring a processing circuit having the first memory element or the second memory element as an input target and the output interface as an output target .
当該方法は、
処理対象のアプリケーションのツリー構造にしたがって前記複数の処理の中から実行する処理およびそれらの順番を決めることを、さらに含む、方法。 8. The process according to claim 5, wherein the plurality of processes are processes of a plurality of nodes included in an application whose function is indicated by a tree structure in which a plurality of nodes are connected.
The method is
Determining processes to be executed from among the plurality of processes and their order according to the tree structure of the application to be processed.
前記制御ユニットは、前記再構成ユニットの回路を再構成するために、前記複数のエレメントの接続情報を含む再構成情報を出力し、
前記複数のエレメントは、少なくとも1種類の演算を実行するための複数の演算エレメントと、複数のメモリエレメントとを含み、前記内部配線の接続を変更することにより、前記複数のメモリエレメントの少なくともいずれかを、前記複数の演算エレメントの少なくともいずれかを含む処理回路の入力対象または出力対象とすることが可能であり、
当該プログラムは、
データの入出力を伴う複数の処理のそれぞれの処理について、第1のメモリエレメントを入力対象とし、第2のメモリエレメントを出力対象として前記それぞれの処理を行う処理回路を構成するための第1の接続情報と、前記第2のメモリエレメントを入力対象とし、前記第1のメモリエレメントを出力対象として前記それぞれの処理を行う処理回路を構成するための第2の接続情報とが格納された接続情報ライブラリから、前記複数の処理を順番に実行するために、先の処理において出力対象となったメモリエレメントを入力対象とする接続情報を選択することと、
選択された接続情報を含む再構成情報を出力することとを含む、プログラム。 A reconfiguration unit including a plurality of elements for configuring a circuit and an internal wiring for connecting the plurality of elements, wherein the circuit is changed by changing connection of the plurality of elements by the internal wiring. A program for controlling a data processing apparatus having a reconfigurable reconfigurable unit by a control unit,
The control unit outputs reconfiguration information including connection information of the plurality of elements to reconfigure the circuit of the reconfiguration unit;
The plurality of elements include a plurality of calculation elements for executing at least one kind of calculation and a plurality of memory elements, and by changing connection of the internal wiring, at least one of the plurality of memory elements Can be an input object or an output object of a processing circuit including at least one of the plurality of arithmetic elements,
The program is
For each processing of a plurality of processes involving the input and output of data, the first memory element of the input object, for configuring the processing circuit for performing the respective processes as an output target second memory element of the and first connection information, and the second input of the memory element target, the second connection information and the storage for configuring the processing circuit for performing the respective processes in the output target the first memory element In order to execute the plurality of processes in order from the connection information library that has been selected, selecting connection information whose input target is a memory element that is an output target in the previous process;
Outputting reconfiguration information including the selected connection information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007165116A JP5071707B2 (en) | 2007-06-22 | 2007-06-22 | Data processing apparatus and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007165116A JP5071707B2 (en) | 2007-06-22 | 2007-06-22 | Data processing apparatus and control method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009003765A JP2009003765A (en) | 2009-01-08 |
JP5071707B2 true JP5071707B2 (en) | 2012-11-14 |
Family
ID=40320075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007165116A Active JP5071707B2 (en) | 2007-06-22 | 2007-06-22 | Data processing apparatus and control method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5071707B2 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5423419B2 (en) | 2010-01-21 | 2014-02-19 | 富士ゼロックス株式会社 | Data processing device |
JP5711889B2 (en) | 2010-01-27 | 2015-05-07 | スパンション エルエルシー | Reconfigurable circuit and semiconductor integrated circuit |
JP5614122B2 (en) | 2010-06-21 | 2014-10-29 | 富士ゼロックス株式会社 | Image data decoding device |
JP5655392B2 (en) | 2010-06-23 | 2015-01-21 | 富士ゼロックス株式会社 | Print image processing apparatus and program |
JP5776306B2 (en) | 2011-04-25 | 2015-09-09 | 富士ゼロックス株式会社 | Image data processing apparatus and program |
JP5786434B2 (en) | 2011-04-28 | 2015-09-30 | 富士ゼロックス株式会社 | Image data processing apparatus and program |
JP5942934B2 (en) | 2013-07-09 | 2016-06-29 | 富士ゼロックス株式会社 | Image processing apparatus and program |
JP2015130640A (en) | 2014-01-09 | 2015-07-16 | 富士ゼロックス株式会社 | Data expander, program, and recording-medium |
WO2022249418A1 (en) * | 2021-05-27 | 2022-12-01 | 日本電信電話株式会社 | Learning device, learning method, and learning program |
-
2007
- 2007-06-22 JP JP2007165116A patent/JP5071707B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009003765A (en) | 2009-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5071707B2 (en) | Data processing apparatus and control method thereof | |
US11386644B2 (en) | Image preprocessing for generalized image processing | |
US10768894B2 (en) | Processor, information processing apparatus and operation method for processor | |
US7873811B1 (en) | Polymorphous computing fabric | |
US8527972B2 (en) | Method for forming a parallel processing system | |
JPS58169663A (en) | Array processor device | |
EP0099135B1 (en) | Dynamic gate array whereby an assembly of gates is simulated by logic operations on variables selected according to the gates | |
US6915410B2 (en) | Compiler synchronized multi-processor programmable logic device with direct transfer of computation results among processors | |
CN102301325B (en) | Digital signal processing block with preadder stage | |
US10460416B1 (en) | Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit | |
US9026967B1 (en) | Method and apparatus for designing a system on multiple field programmable gate array device types | |
JP2008537268A (en) | An array of data processing elements with variable precision interconnection | |
US8499262B1 (en) | Method and apparatus for implementing a parameterizable filter block with an electronic design automation tool | |
US8402400B1 (en) | Method and apparatus for implementing a processor interface block with an electronic design automation tool | |
CN109564585B (en) | Dot product based processing element | |
US10218357B2 (en) | Logical elements with switchable connections for multifunction operation | |
WO2018067251A1 (en) | Methods and apparatus for dynamically configuring soft processors on an integrated circuit | |
US8793629B1 (en) | Method and apparatus for implementing carry chains on FPGA devices | |
US9230047B1 (en) | Method and apparatus for partitioning a synthesis netlist for compile time and quality of results improvement | |
US7509479B2 (en) | Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit | |
JP2021108104A (en) | Partially readable/writable reconfigurable systolic array system and method | |
JP4814679B2 (en) | Image processing device | |
US7260709B2 (en) | Processing method and apparatus for implementing systolic arrays | |
JP2002229970A (en) | Simd product sum operation method, sum of product sum arithmetic circuit and semiconductor integrated circuit device | |
Giefers et al. | A many-core implementation based on the reconfigurable mesh model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100309 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120316 |
|
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: 20120726 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120808 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5071707 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150831 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |