JP2007034473A - Data processing method in simd type microprocessor - Google Patents

Data processing method in simd type microprocessor Download PDF

Info

Publication number
JP2007034473A
JP2007034473A JP2005214122A JP2005214122A JP2007034473A JP 2007034473 A JP2007034473 A JP 2007034473A JP 2005214122 A JP2005214122 A JP 2005214122A JP 2005214122 A JP2005214122 A JP 2005214122A JP 2007034473 A JP2007034473 A JP 2007034473A
Authority
JP
Japan
Prior art keywords
register
data
bits
simd type
type microprocessor
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
Application number
JP2005214122A
Other languages
Japanese (ja)
Other versions
JP4516495B2 (en
Inventor
Takao Katayama
貴雄 片山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2005214122A priority Critical patent/JP4516495B2/en
Publication of JP2007034473A publication Critical patent/JP2007034473A/en
Application granted granted Critical
Publication of JP4516495B2 publication Critical patent/JP4516495B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce the number of instruction execution cycles for effectively using a universal register which can be divided into a plurality of pieces, and performing image processing in an SIMD type microprocessor. <P>SOLUTION: As to an SIMD type microprocessor including an arithmetic logical arithmetic unit and a register for storing the arithmetic result, and having a plurality of processor elements for performing processing in a status that the register is divided, this data processing method is characterized to set data by the division units of the register based on the arrangement of processor elements and the division of the register. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、SIMD型マイクロプロセッサに関し、特に、プロセッサエレメント内で演算結果を保持するレジスタを分割して使用する構造を備えるSIMD型プロセッサエレメントに関する。   The present invention relates to a SIMD type microprocessor, and more particularly to a SIMD type processor element having a structure in which a register for holding an operation result is divided and used in the processor element.

近年、デジタル複写機やファクシミリ装置等の画像処理では、画素数の増加、画像処理の多様化などにより画質の向上が図られている。これらの画像処理では複数の画像データに対して同じ処理をすることが多い。そこで高速性を高めるために、1命令で複数のデータを同時処理するSIMD(Single Instruction−stream Multiple Data−stream)型のマイクロプロセッサが用いられることが多い。   In recent years, in image processing such as digital copying machines and facsimile machines, image quality has been improved by increasing the number of pixels and diversifying image processing. In these image processing, the same processing is often performed on a plurality of image data. Therefore, in order to improve the high speed, a SIMD (Single Instruction-stream Multiple Data-stream) type microprocessor that simultaneously processes a plurality of data with one instruction is often used.

SIMD型マイクロプロセッサは、算術論理演算器(ALU)と演算レジスタを備えたプロセッサエレメントと呼ばれるブロックを持つが、複数のデータを一度に処理するためにプロセッサエレメントを複数個装備している。また、プロセッサエレメントには算術論理演算器に利用する汎用レジスタが装備されており、該算術論理演算器は、汎用レジスタのデータと演算レジスタのデータとの演算、又は、汎用レジスタのデータと命令コード中に記述された数値データとの演算等を行う。   The SIMD type microprocessor has a block called a processor element having an arithmetic logic unit (ALU) and an arithmetic register, but has a plurality of processor elements for processing a plurality of data at a time. In addition, the processor element is equipped with a general-purpose register used for an arithmetic logic unit, and the arithmetic logic unit operates between the data of the general-purpose register and the data of the arithmetic register, or the data of the general-purpose register and the instruction code. Performs calculations with numerical data described in it.

SIMD型マイクロプロセッサは、1クロックサイクルで1命令を処理するから、1命令でプロセッサエレメントの個数分のデータを一度に処理することができる。SIMD型マイクロプロセッサの性能を表すには、動作周波数やプロセッサエレメントの個数、即ち1命令で処理できるデータの数などが重要であるが、一方で命令サイクル数も重要となる。つまり、同じ画像処理を行うのに必要な命令サイクルが少ないほうが性能がよいとされる。ただし、1命令で複雑な処理を行うとすれば、複雑な処理を行うための回路が必要となりコストが増加する。   Since the SIMD type microprocessor processes one instruction in one clock cycle, it can process data for the number of processor elements at one time with one instruction. In order to express the performance of the SIMD type microprocessor, the operating frequency and the number of processor elements, that is, the number of data that can be processed by one instruction, are important. On the other hand, the number of instruction cycles is also important. That is, the performance is better when the number of instruction cycles required to perform the same image processing is smaller. However, if complex processing is performed with one instruction, a circuit for performing complex processing is required, which increases costs.

ところで、1つのプロセッサエレメントで扱えるデータビットサイズを増やし、そのビットサイズを均等分割して一つのプロセッサエレメントで扱えるデータ数を増やしているSIMD型マイクロプロセッサもある。このタイプのSIMD型マイクロプロセッサでは、処理対象のデータのビットサイズが大きくても小さくても、扱うことができるというメリットがある。   Some SIMD type microprocessors increase the data bit size that can be handled by one processor element and increase the number of data that can be handled by one processor element by equally dividing the bit size. This type of SIMD microprocessor has the advantage that it can be handled regardless of whether the bit size of the data to be processed is large or small.

例えば、1つのプロセッサエレメントで扱えるデータビットサイズを64ビット、プロセッサエレメントの個数を256個とした場合、1サイクルで同時に処理できるデータ数は、データサイズが64ビットの場合は256データ、データサイズが32ビットの場合は2分割できるため256×2=512データ、データサイズが16ビットに至っては4分割できるため256×4=1024データである。   For example, if the data bit size that can be handled by one processor element is 64 bits and the number of processor elements is 256, the number of data that can be processed simultaneously in one cycle is 256 data when the data size is 64 bits. In the case of 32 bits, since it can be divided into two, 256 × 2 = 512 data, and when the data size reaches 16 bits, it can be divided into four, so that 256 × 4 = 1024 data.

上記のような分割のないSIMD型マイクロプロセッサにおいてプロセッサエレメント(PE)に順に番号(PE番号)が付されているのと同様に、上記のように一つのプロセッサエレメントで扱えるデータ数を増やしているSIMD型マイクロプロセッサにおいても、分割された個別データ単位に番号が順に付されることが、データ処理上望ましいことがある。例えば、プロセッサ設計段階におけるシミュレーションや、IC化されたときの選別におけるテストを行う場合である。   In the SIMD type microprocessor without division as described above, the number of data that can be handled by one processor element is increased as described above, in the same way that processor elements (PE) are numbered sequentially (PE number). Also in the SIMD type microprocessor, it may be desirable in terms of data processing that numbers are sequentially assigned to the divided individual data units. For example, it is a case where a simulation in a processor design stage or a test in selection when an IC is made.

しかし、プロセッサエレメントにおける汎用レジスタの分割に合わせて、PE番号を分割された個別データ単位に対応させて設定するという構成を実現する発明は為されていない。   However, no invention has been made to realize a configuration in which the PE number is set in correspondence with the divided individual data unit in accordance with the division of the general-purpose register in the processor element.

特許文献1の発明は、オペランドに指定したデータをレジスタ上に複数格納し、その複数データを一括して演算するとき、比較結果をフラグに残し高速に演算することを特徴とするプロセッサに関するが、レジスタにプロセッサエレメント毎で異なる値を入力する構成とはなっていない。特許文献2の発明は、プロセッサエレメントごとに固有の値とプロセッサエレメント共有の命令によって演算を行うSIMD型並列装置に関するが、分割レジスタについての記述はなく、単体レジスタについての記載のみである。特許文献3の発明は、SIMD型マイクロプロセッサにおいてプロセッサエレメント毎に固有の値を入力できるようにし、各プロセッサエレメントに演算結果により以降の演算に条件を加える、条件フラグを作成する。更に特許文献4の発明は、グローバルプロセッサから各PEに値を同時または条件をつけて設定することを目的とするものである。
特開2001−265592公報 特開2002−91929公報 特開2002−108832公報 特開2001−202351公報
The invention of Patent Document 1 relates to a processor characterized by storing a plurality of data designated as operands on a register and performing a high-speed operation while leaving a comparison result in a flag when the plurality of data are calculated at once. The register is not configured to input different values for each processor element. The invention of Patent Document 2 relates to a SIMD type parallel device that performs an operation using a unique value for each processor element and an instruction shared by the processor element. However, there is no description of a division register, and only a description of a single register. The invention of Patent Document 3 makes it possible to input a unique value for each processor element in a SIMD type microprocessor, and creates a condition flag that adds a condition to the subsequent calculation depending on the calculation result for each processor element. Further, the invention of Patent Document 4 is intended to set a value from the global processor to each PE simultaneously or with a condition.
JP 2001-265592 A JP 2002-91929 A JP 2002-108832 A JP 2001-202351 A

本発明は、前述の汎用レジスタを複数分割し得るプロセッサエレメントを有するSIMD型マイクロプロセッサおいて、複数分割される汎用レジスタを実効的に利用するデータ設定方法と、そのようなデータ設定を実現する手段を開発し、このことにより画像データ処理を行う命令実行サイクル数を減らすようにすることを目的としている。   The present invention provides a data setting method for effectively using a plurality of divided general purpose registers and means for realizing such data setting in a SIMD type microprocessor having a processor element capable of dividing a plurality of the general purpose registers. The purpose of this is to reduce the number of instruction execution cycles for image data processing.

本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項1に記載のデータ処理方法は、
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
プロセッサエレメントの配置、及びレジスタの分割に基づいて、レジスタの分割単位にデータを設定することを特徴とするデータ処理方法である。
The present invention has been made to achieve the above object. The data processing method according to claim 1 according to the present invention includes:
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
A data processing method characterized in that data is set in a register division unit based on an arrangement of processor elements and register division.

本発明に係る請求項2に記載のデータ処理方法は、
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
プロセッサエレメント間では異なるが、各プロセッサエレメント内のレジスタの分割単位間では同じデータを設定することを特徴とするデータ処理方法である。
The data processing method according to claim 2 according to the present invention includes:
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The data processing method is characterized in that the same data is set between the division units of the registers in each processor element, although it differs among the processor elements.

本発明に係る請求項3に記載のデータ処理方法は、
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
レジスタの分割数をiとし、各プロセッサエレメントには異なる番号nを付すとして、
プロセッサエレメントにおけるレジスタの分割単位の、上位ビット位置にあるものから、データとして(n×i)、(n×i+1)・・・(n×i+(i−1))を設定することを特徴とするデータ処理方法である。
According to a third aspect of the present invention, there is provided a data processing method comprising:
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The number of register divisions is i, and each processor element is given a different number n.
(N × i), (n × i + 1)... (N × i + (i−1)) are set as data from the register at the upper bit position of the register division unit in the processor element. Is a data processing method.

本発明に係る請求項4に記載のデータ処理方法は、
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
レジスタの分割数をi、プロセッサエレメントの配置数をmaxとし、各プロセッサエレメントには異なる番号nを付すとして、
プロセッサエレメントにおけるレジスタの分割単位の、上位ビット位置にあるものから、データとして(n)、(n+max)・・・(n+max×(i−1))を設定することを特徴とするデータ処理方法である。
The data processing method according to claim 4 according to the present invention includes:
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The number of register divisions is i, the number of processor elements arranged is max, and each processor element is given a different number n.
(N), (n + max)... (N + max × (i−1)) are set as data from the register in the higher order bit position of the register in the processor element. is there.

本発明に係る請求項5に記載のデータ処理方法は、
各プロセッサエレメントには異なる番号PEnを付すとして、
レジスタを分割しない状態で処理を行う場合には、各プロセッサエレメントに含まれるレジスタにはデータとして(n)を設定することを特徴とする請求項1に記載のデータ処理方法である。
The data processing method according to claim 5 according to the present invention comprises:
Each processor element is given a different number PEn,
2. The data processing method according to claim 1, wherein when processing is performed without dividing the register, (n) is set as data in the register included in each processor element.

本発明を利用すれば、SIMD型マイクロプロセッサにおいて複数分割され得る汎用レジスタを実効的に利用でき、このことにより画像データ処理を行う命令実行サイクル数を減らすようにすることができる。   If the present invention is used, a general-purpose register that can be divided into a plurality of parts in the SIMD type microprocessor can be effectively used, thereby reducing the number of instruction execution cycles for performing image data processing.

以下、図面を参照して本発明に係るSIMD型マイクロプロセッサ、及び該SIMD型マイクロプロセッサにおけるデータ処理方法を説明する。   Hereinafter, a SIMD type microprocessor according to the present invention and a data processing method in the SIMD type microprocessor will be described with reference to the drawings.

図1は、本発明を含む一般的なSIMD型マイクロプロセッサ2の概略の構成を示すブロック図である。SIMD型マイクロプロセッサ2は、主としてプロセッサ2全体を制御するCISC型のグローバルプロセッサ(以下、GPと言う。)4と、主として外部入出力装置からデータを入力しデータ処理を行い外部入出力装置にデータを出力するプロセッサエレメント3とから構成される。プロセッサエレメント3は、複数のデータを同時に処理するために複数用意されている。図1では、1個のGP4と、(例えば)256個のプロセッサエレメント3とにより、SIMD型マイクロプロセッサ2が構成されている。   FIG. 1 is a block diagram showing a schematic configuration of a general SIMD type microprocessor 2 including the present invention. The SIMD type microprocessor 2 is mainly a CISC type global processor (hereinafter referred to as GP) 4 that controls the entire processor 2 and mainly inputs data from an external input / output device, performs data processing, and sends data to the external input / output device. And a processor element 3 for outputting. A plurality of processor elements 3 are prepared for simultaneously processing a plurality of data. In FIG. 1, a SIMD type microprocessor 2 is constituted by one GP 4 and (for example) 256 processor elements 3.

《第1の実施形態》
図2は、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2の構成を示すブロック図である。GP4は、プログラムに記述された命令に従ってSCU(シーケンシャル・コントロール・ユニット;Sequential Control Unit)36でデコードされた制御信号を各プロセッサエレメント3に送って、プロセッサエレメント3の制御を行う。GP4は、算術論理演算装置(ALU)(図示せず。)も保持している。GP4はALUの演算結果などを汎用レジスタ(Gレジスタ)34に保持する。更にGP4は汎用レジスタ(Gレジスタ)34から一度に全プロセッサエレメント3にデータを転送する経路(GAバス)30も有する。
<< First Embodiment >>
FIG. 2 is a block diagram showing a configuration of the SIMD type microprocessor 2 according to the first embodiment of the present invention. The GP 4 controls each processor element 3 by sending a control signal decoded by an SCU (Sequential Control Unit) 36 to each processor element 3 in accordance with an instruction described in the program. GP4 also holds an arithmetic logic unit (ALU) (not shown). The GP 4 holds the operation result of the ALU in the general-purpose register (G register) 34. The GP 4 also has a path (GA bus) 30 for transferring data from the general-purpose register (G register) 34 to all the processor elements 3 at a time.

プロセッサエレメント3は、(例えば)R0〜R31までの32本の汎用レジスタ10と、汎用レジスタ10からのデータをシフト処理若しくはデータ拡張処理するシフタ12と、算術論理演算装置(ALU)20と、算術論理演算装置20への2つの入力データを一旦保持する第1の記憶手段16及び第2の記憶手段18と、シフタ12や算術論理演算装置20の演算結果を保持する演算レジスタ(Aレジスタ)24と、演算結果により設定されるフラグデータを保持するPPレジスタ22と、算術論理演算装置20の結果をAレジスタ24に格納するか否かを制御する条件フラグを複数ビット持つTレジスタ26とから構成される。   The processor element 3 includes (for example) 32 general-purpose registers 10 from R0 to R31, a shifter 12 that shifts or extends data from the general-purpose register 10, an arithmetic logic unit (ALU) 20, an arithmetic unit First storage means 16 and second storage means 18 that temporarily hold two input data to the logical operation device 20, and an operation register (A register) 24 that holds the operation results of the shifter 12 and the arithmetic logic operation device 20. And a PP register 22 for holding flag data set according to the operation result, and a T register 26 having a plurality of bits for a condition flag for controlling whether or not the result of the arithmetic logic unit 20 is stored in the A register 24. Is done.

第1の記憶手段16には、GP4のSCU36で命令コードから抜き出された即値データを転送することも可能である。第1の記憶手段16への即値データの転送はIMMとして示されている。即値は命令コードに1種類しか含まれないため、通常全プロセッサエレメントのIMMは、同じデータである。   It is also possible to transfer the immediate data extracted from the instruction code by the SCU 36 of GP4 to the first storage means 16. The transfer of immediate data to the first storage means 16 is indicated as IMM. Since only one type of immediate value is included in the instruction code, the IMM of all the processor elements is usually the same data.

図2に示す本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2では、プロセッサエレメントの数は256とし、特に指定のないレジスタのサイズは32ビットとする。また、レジスタのサイズの32ビットに対してレジスタの分割数は2とする。32本の汎用レジスタ10は、図示していないが、外部装置(例えば、画像データの格納されたメモリ)と接続している。256個のプロセッサエレメントにおける同一番号の汎用レジスタは、水平ラインの画像データを一度に保持したりする。   In the SIMD type microprocessor 2 according to the first embodiment of the present invention shown in FIG. 2, the number of processor elements is 256, and the register size not particularly specified is 32 bits. The number of register divisions is 2 for the register size of 32 bits. Although not shown, the 32 general-purpose registers 10 are connected to an external device (for example, a memory storing image data). The general-purpose registers having the same number in the 256 processor elements hold the image data of the horizontal line at a time.

更に、図2に示す本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2のプロセッサエレメント3には、PE番号を保持しているブロック(PE番号保持ブロック)28を設けてある。前述のように、PE番号は、配列されるプロセッサエレメントに順に付される番号である。   Further, the processor element 3 of the SIMD type microprocessor 2 according to the first embodiment of the present invention shown in FIG. 2 is provided with a block (PE number holding block) 28 holding a PE number. As described above, the PE number is a number assigned to the arranged processor elements in order.

例えば、256個のプロセッサエレメント3が装備され汎用レジスタ10が2分割され得る場合は、“分割される個別データ単位に付すべき番号”として0〜511(=2−1)まで必要になる。即ち、9ビットが必要となるため、“分割される個別データ単位に付すべき番号”をAレジスタ24のビット0〜8にロードする構成とする。また、同じく9ビットの“分割される個別データ単位に付すべき番号”をビット16〜24にロードする構成とする。 For example, when 256 processor elements 3 are installed and the general-purpose register 10 can be divided into two, 0 to 511 (= 2 9 −1) are required as “numbers to be assigned to individual data units to be divided”. That is, since 9 bits are required, the “number to be assigned to each divided data unit” is loaded into bits 0 to 8 of the A register 24. Similarly, a 9-bit “number to be assigned to each individual data unit to be divided” is loaded into bits 16 to 24.

なお以下では、“分割される個別データ単位に付すべき番号”を、「拡張PE番号」と称することとする。   Hereinafter, the “number to be assigned to each individual data unit to be divided” will be referred to as an “extended PE number”.

次に、本発明の第1の実施形態に係るSIMD型マイクロプロセッサ2によるデータ処理方法を説明する。まず、PE番号保持ブロック28から、PE番号がAレジスタ24にロードされる。なお、上述のように、256個のプロセッサエレメント3が装備され汎用レジスタ10が2分割され得る場合は、拡張PE番号として0〜511(=2−1)まで必要になる。 Next, a data processing method by the SIMD type microprocessor 2 according to the first embodiment of the present invention will be described. First, the PE number is loaded into the A register 24 from the PE number holding block 28. As described above, when 256 processor elements 3 are installed and the general-purpose register 10 can be divided into two, 0 to 511 (= 2 9 −1) are required as extended PE numbers.

まず、PE番号をAレジスタ24のビット0〜8とビット16〜24にロードする。Aレジスタ24にロードされた後、Aレジスタ24のデータ、若しくは、命令に記述される即値データたるIMMが、第1の記憶手段16に保持され、Aレジスタ24のデータにつきシフタ12を経由させたものが、第2の記憶手段18に保持される。第1の記憶手段16のデータと第2の記憶手段18のデータがALU20にて演算され、その結果が再度Aレジスタ24に設定される。こうすることでAレジスタ24の上位16ビットと下位16ビットとにおいて、PE番号から作られるデータ(ここでは、拡張PE番号)を一度に設定することができる。上記のデータ処理方法は、ALU20を1回しか伝播しないため、クロックサイクルは1サイクルでしかない。   First, the PE number is loaded into bits 0 to 8 and bits 16 to 24 of the A register 24. After being loaded into the A register 24, the data in the A register 24 or the IMM as immediate data described in the instruction is held in the first storage means 16, and the data in the A register 24 is passed through the shifter 12. Things are held in the second storage means 18. The data in the first storage means 16 and the data in the second storage means 18 are calculated by the ALU 20 and the result is set in the A register 24 again. In this way, the data (here, the extended PE number) created from the PE number can be set at a time in the upper 16 bits and the lower 16 bits of the A register 24. Since the above data processing method propagates through the ALU 20 only once, the clock cycle is only one cycle.

《第2の実施形態》
本発明の第2の実施形態に係るSIMD型マイクロプロセッサ2におけるデータ処理方法を説明する。第2の実施形態に係るデータ処理方法も、図1及び図2に構成を示すSIMD型マイクロプロセッサ2を利用して行うものである。
<< Second Embodiment >>
A data processing method in the SIMD type microprocessor 2 according to the second embodiment of the present invention will be described. The data processing method according to the second embodiment is also performed using the SIMD type microprocessor 2 having the configuration shown in FIGS.

まず、プロセッサエレメント3毎に異なる番号n(n=0〜255)がAレジスタ24にロードされる。このとき例えば、各プロセッサエレメント3では、PE番号保持ブロック28からPE番号がAレジスタ24のビット0〜8とビット16〜24に設定される。このAレジスタ24の値がシフタ12でのシフトなしに第2の記憶手段18に保持され、一方第1の記憶手段16にはIMMから0が入力保持される。そして、第1の記憶手段16と第2の記憶手段18のデータがALU20にて論理和される、若しくは加算される。こうすることで、Aレジスタ24の上位16ビットと下位16ビットに、同じPE番号が保持される。以上の処理を全プロセッサエレメント3で同時に行うため、結果的に図3に示すパターンAのようにAレジスタ24が設定されることになる。このようなAレジスタ24のデータは、同じプロセッサエレメント3にて2分割された汎用レジスタ10に同じ処理をする場合に用いることができる。   First, a different number n (n = 0 to 255) for each processor element 3 is loaded into the A register 24. At this time, for example, in each processor element 3, the PE number is set in bits 0 to 8 and bits 16 to 24 of the A register 24 from the PE number holding block 28. The value of the A register 24 is held in the second storage means 18 without being shifted by the shifter 12, while 0 is input and held in the first storage means 16 from the IMM. Then, the data of the first storage means 16 and the second storage means 18 are logically summed or added by the ALU 20. In this way, the same PE number is held in the upper 16 bits and the lower 16 bits of the A register 24. Since the above processing is performed simultaneously by all the processor elements 3, as a result, the A register 24 is set as in the pattern A shown in FIG. Such data in the A register 24 can be used when the same processing is performed on the general-purpose register 10 divided into two by the same processor element 3.

また、図3に示すAレジスタ24のパターンAの設定は、別の手順でも実施できる。まず、各プロセッサエレメント3にて、PE番号保持ブロック28からPE番号をAレジスタ24のビット0〜8に設定する。このAレジスタ24の値をそのまま第1の記憶手段16に保持し、一方Aレジスタ24の値をシフタ12経由で16ビット左シフトして第2の記憶手段18に保持する。第1の記憶手段16と第2の記憶手段18のデータをALU20にて論理和すると、若しくは加算すると、図3に示すAレジスタ24のパターンAが実現される。   Further, the setting of the pattern A of the A register 24 shown in FIG. 3 can be performed by another procedure. First, in each processor element 3, the PE number is set to bits 0 to 8 of the A register 24 from the PE number holding block 28. The value of the A register 24 is held in the first storage unit 16 as it is, while the value of the A register 24 is shifted to the left by 16 bits via the shifter 12 and held in the second storage unit 18. When the data of the first storage means 16 and the second storage means 18 are logically summed or added by the ALU 20, the pattern A of the A register 24 shown in FIG. 3 is realized.

図4に示すように、原稿をスキャナで読み取り画像処理をする場合、通常、SIMD型マイクロプロセッサに一度に入力されるデータは、主走査方向に連続する256個のデータの単位である(このデータの単位は、SIMD型マイクロプロセッサで1回で演算し得る最大量であるという意味で1SIMDとも称される。)。各プロセッサエレメント3において2分割処理をする場合には、主走査方向の更なる1SIMD分のデータ、若しくは副走査方向の1SIMD分のデータを同時に処理できる。画像処理では副走査方向に隣接する同じ主走査方向位置では、同じ処理を行うことが多いため、副走査方向に隣接して同じ主走査方向位置にある上下2SIMD分のデータ処理には、パターンAのような演算レジスタ(Aレジスタ)24を用意することが有効である。   As shown in FIG. 4, when a document is read by a scanner and image processing is performed, data input to the SIMD type microprocessor at a time is usually a unit of 256 data in the main scanning direction (this data). Is also referred to as 1 SIMD in the sense that it is the maximum amount that can be computed at one time by a SIMD microprocessor.) When each processor element 3 performs the two-division processing, it is possible to simultaneously process data for one more SIMD in the main scanning direction or one SIMD in the sub-scanning direction. In image processing, the same processing is often performed at the same main scanning direction position adjacent in the sub-scanning direction. Therefore, the pattern A is used for data processing for two upper and lower SIMDs adjacent to the sub-scanning direction and at the same main scanning direction position. It is effective to prepare an arithmetic register (A register) 24 such as

《第3の実施形態》
本発明の第3の実施形態に係るSIMD型マイクロプロセッサ2におけるデータ処理方法を説明する。第3の実施形態に係るデータ処理方法も、図1及び図2に構成を示すSIMD型マイクロプロセッサ2を利用して行うものである。
<< Third Embodiment >>
A data processing method in the SIMD type microprocessor 2 according to the third embodiment of the present invention will be described. The data processing method according to the third embodiment is also performed using the SIMD type microprocessor 2 having the configuration shown in FIGS.

まず、各プロセッサエレメント3では、PE番号保持ブロック28からPE番号がAレジスタ24のビット0〜8とビット16〜24に設定される。このAレジスタ24の値がシフタ12で1ビット左シフトされて第2の記憶手段18に保持され、一方第1の記憶手段16にはIMMから“1”が入力保持される。第1の記憶手段16と第2の記憶手段18のデータがALU20にて加算される。こうすることで、PE番号が連続する複数のプロセッサエレメントの各々において、Aレジスタ24の上位16ビットと下位16ビットに、連続する拡張PE番号が保持されることになる。つまり、図3に示すパターンBのようなAレジスタ24が1クロックサイクルで設定されることになる。   First, in each processor element 3, the PE number is set in bits 0 to 8 and bits 16 to 24 of the A register 24 from the PE number holding block 28. The value of the A register 24 is shifted by 1 bit to the left by the shifter 12 and held in the second storage unit 18, while “1” is input and held from the IMM to the first storage unit 16. The data in the first storage means 16 and the second storage means 18 are added by the ALU 20. In this way, in each of a plurality of processor elements having consecutive PE numbers, continuous extended PE numbers are held in the upper 16 bits and lower 16 bits of the A register 24. That is, the A register 24 like the pattern B shown in FIG. 3 is set in one clock cycle.

図4に示すような画像処理において、主走査方向に連続する2SIMD分の512個のデータを処理する場合、汎用レジスタ10の分割単位に夫々に異なるデータを設定できることになり一度に512個のデータを扱えるSIMD型マイクロプロセッサとすることができる。   In the image processing as shown in FIG. 4, when processing 512 pieces of data for 2 SIMD continuous in the main scanning direction, different data can be set for each division unit of the general-purpose register 10, and 512 pieces of data at a time. SIMD type microprocessor capable of handling

《第4の実施形態》
本発明の第4の実施形態に係るSIMD型マイクロプロセッサ2におけるデータ処理方法を説明する。第4の実施形態に係るデータ処理方法も、図1及び図2に構成を示すSIMD型マイクロプロセッサ2を利用して行うものである。
<< Fourth Embodiment >>
A data processing method in the SIMD type microprocessor 2 according to the fourth embodiment of the present invention will be described. The data processing method according to the fourth embodiment is also performed using the SIMD type microprocessor 2 having the configuration shown in FIGS.

まず、各プロセッサエレメント3では、PE番号保持ブロック28からPE番号がAレジスタ24のビット0〜8とビット16〜24に設定される。このAレジスタ24の値がシフタ12でのシフト無しで第2の記憶手段18に保持され、一方第1の記憶手段16にはIMMから“256=100h”(“h”は16進表記であることを示す。)が入力保持される。第1の記憶手段16と第2の記憶手段18のデータがALU20にて加算される。こうすることで、PE番号が連続するプロセッサエレメントにおいて、Aレジスタ24の上位16ビットに連続する拡張PE番号が保持され、下位16ビットにその後続の連続する拡張PE番号が保持されることになる。つまり、図3に示すパターンCのようなAレジスタ24が1クロックサイクルで設定されることになる。   First, in each processor element 3, the PE number is set in bits 0 to 8 and bits 16 to 24 of the A register 24 from the PE number holding block 28. The value of the A register 24 is held in the second storage unit 18 without being shifted by the shifter 12, while the first storage unit 16 stores "256 = 100h" ("h" is in hexadecimal notation) from the IMM. Is input). The data in the first storage means 16 and the second storage means 18 are added by the ALU 20. In this way, in the processor element having continuous PE numbers, the extended PE number continuous in the upper 16 bits of the A register 24 is held, and the subsequent continuous extended PE number is held in the lower 16 bits. . That is, the A register 24 like the pattern C shown in FIG. 3 is set in one clock cycle.

《第5の実施形態》
本発明の第5の実施形態に係るSIMD型マイクロプロセッサ2におけるデータ処理方法を説明する。第5の実施形態に係るデータ処理方法も、図1及び図2に構成を示すSIMD型マイクロプロセッサ2を利用して行うものである。
<< Fifth Embodiment >>
A data processing method in the SIMD type microprocessor 2 according to the fifth embodiment of the present invention will be described. The data processing method according to the fifth embodiment is also performed using the SIMD type microprocessor 2 having the configuration shown in FIGS.

このデータ処理方法は、汎用レジスタ10をフルビットで使用する場合の方法である。このとき、各プロセッサエレメント3にてPE番号保持ブロック28からPE番号をAレジスタ24のビット0〜8に設定することで、分割が無い32ビット×256データのSIMD型マイクロプロセッサに対応できることとなる。このようなAレジスタ24の設定は、上位ビットをマスクする制御信号をグローバルプロセッサ4から出力することでも実現できる。また、PE番号をAレジスタ24のビット0〜8とビット16〜24に設定し、シフタ12で右に16ビットシフトして第2の記憶手段18に保持し、IMMから“0”を第1の記憶手段16に入力保持し、第1の記憶手段16と第2の記憶手段18のデータをALU20で論理和若しくは加算することでも実現できる。   This data processing method is a method when the general-purpose register 10 is used with full bits. At this time, by setting the PE number from the PE number holding block 28 to the bits 0 to 8 of the A register 24 in each processor element 3, it is possible to cope with a SIMD type microprocessor of 32 bits × 256 data without division. . Such setting of the A register 24 can also be realized by outputting a control signal for masking the upper bits from the global processor 4. Also, the PE number is set to bits 0 to 8 and bits 16 to 24 of the A register 24, shifted by 16 bits to the right by the shifter 12 and held in the second storage means 18, and "0" is set from the IMM to the first. It can also be realized by holding the data in the storage means 16 and ORing or adding the data in the first storage means 16 and the second storage means 18 by the ALU 20.

《第6の実施形態》
以上の第1の実施形態から第4の実施形態に係るSIMD型マイクロプロセッサにおいては、32ビットの汎用レジスタが2分割されて使用されることを想定している。汎用レジスタが32ビット以外のデータ幅、例えば64ビットであっても、勿論、上記の第1〜第4の実施形態に係るデータ処理方法は実施できる。
<< Sixth Embodiment >>
In the SIMD type microprocessors according to the first to fourth embodiments described above, it is assumed that a 32-bit general-purpose register is divided and used. Of course, even if the general-purpose register has a data width other than 32 bits, for example, 64 bits, the data processing methods according to the first to fourth embodiments can be implemented.

64ビットの汎用レジスタ10を16ビット×4分割で使用する場合、プロセッサエレメント4の数を256個と仮定すると、拡張PE番号には0〜1023(=210−1)の10ビットが必要となる。従って、Aレジスタ24における(拡張)PE番号の設定ビットをビット0〜9、ビット16〜25、ビット32〜41、ビット48〜57の4箇所とする。なお、ALU、シフタ、その他レジスタ、及びバスは、64ビットに対応するものとなっていると仮定する。 When the 64-bit general-purpose register 10 is used in 16 bits × 4 divisions, assuming that the number of processor elements 4 is 256, 10 bits from 0 to 1023 (= 2 10 −1) are required for the extended PE number. Become. Therefore, the (extended) PE number setting bits in the A register 24 are set to four locations of bits 0 to 9, bits 16 to 25, bits 32 to 41, and bits 48 to 57. It is assumed that the ALU, shifter, other registers, and bus correspond to 64 bits.

図3に示すパターンAを実現するには、まず、PE番号をAレジスタ24のビット0〜9、ビット16〜25、ビット32〜41、ビット48〜57に設定し、それをシフタ12でのシフトなしで第2の記憶手段18に保持する。一方、第1の記憶手段16にはIMMから0を入力保持する。第1の記憶手段16と第2の記憶手段18のデータをALU20にて論理和若しくは加算すれば、4分割されたAレジスタ24の夫々に同じ拡張PE番号を保持することができる。   In order to realize the pattern A shown in FIG. 3, first, the PE number is set to bits 0 to 9, bits 16 to 25, bits 32 to 41, and bits 48 to 57 of the A register 24. It holds in the second storage means 18 without shifting. On the other hand, the first storage means 16 holds 0 from the IMM. If the data of the first storage means 16 and the second storage means 18 are logically summed or added by the ALU 20, the same extended PE number can be held in each of the four divided A registers 24.

図3に示すパターンBを実現するには、まず、PE番号をAレジスタ24のビット0〜9、ビット16〜25、ビット32〜41、ビット48〜57に設定し、それをシフタ12で2ビット左シフトして第2の記憶手段18に保持する。一方、第1の記憶手段16にはIMMから“1_0002_0003h”(ここで、“_”は16ビット毎の区切りを示す表記である)を入力保持する。第1の記憶手段16と第2の記憶手段18のデータをALU20にて論理和若しくは加算すれば、4分割されたAレジスタにおける分割単位の各々に、パターンBのように、連続する拡張PE番号が保持されることになる。   In order to realize the pattern B shown in FIG. 3, first, the PE number is set to bits 0 to 9, bits 16 to 25, bits 32 to 41, and bits 48 to 57 of the A register 24. The bit is shifted left and held in the second storage means 18. On the other hand, “1 — 0002 — 0003h” (where “_” is a notation indicating a delimiter every 16 bits) is input and held in the first storage means 16. If the data in the first storage means 16 and the second storage means 18 are logically summed or added by the ALU 20, each extended unit number in the A register divided into four, like the pattern B, is continuous. Will be held.

図3に示すパターンCを実現するには、まず、PE番号をAレジスタ24のビット0〜9、ビット16〜25、ビット32〜41、ビット48〜57に設定し、それをシフタ12でのシフトなしで第2の記憶手段18に保持する。一方、第1の記憶手段16にはIMMから“100_0200_0300h”を入力保持する。第1の記憶手段16と第2の記憶手段18のデータをALU20にて加算する。こうすることで、PE番号が連続するプロセッサエレメントにおいて、Aレジスタ24のビット48〜57に連続する拡張PE番号が保持され、続いてビット32〜41にその後続の連続する拡張PE番号が保持され、続いてビット16〜25にその後続の連続する拡張PE番号が保持され、更に続いてビット0〜9に更に後続の連続する拡張PE番号が保持されることになる。   In order to realize the pattern C shown in FIG. 3, first, the PE number is set to bits 0 to 9, bits 16 to 25, bits 32 to 41, and bits 48 to 57 of the A register 24. It holds in the second storage means 18 without shifting. On the other hand, “100 — 0200 — 0300h” is input and held from the IMM to the first storage means 16. The data in the first storage means 16 and the second storage means 18 are added by the ALU 20. In this way, in the processor elements having continuous PE numbers, the extended PE numbers that are continuous in bits 48 to 57 of the A register 24 are held, and subsequently, the subsequent continuous extended PE numbers are held in bits 32 to 41. Subsequently, the subsequent consecutive extended PE numbers are held in bits 16 to 25, and further, the subsequent continuous extended PE numbers are further held in bits 0 to 9.

本発明を含む一般的なSIMD型マイクロプロセッサの概略の構成を示すブロック図である。1 is a block diagram showing a schematic configuration of a general SIMD type microprocessor including the present invention. FIG. 本発明の第1の実施形態に係るSIMD型マイクロプロセッサの構成を示すブロック図である。1 is a block diagram showing a configuration of a SIMD type microprocessor according to a first embodiment of the present invention. 本発明における演算レジスタの設定のパターンを複数示す図である。It is a figure which shows multiple patterns of the setting of the arithmetic register in this invention. 原稿をスキャナで読み取り画像処理をする場合の主走査方向と副走査方向の関係を示す図である。FIG. 6 is a diagram illustrating a relationship between a main scanning direction and a sub-scanning direction when an original is read by a scanner and image processing is performed.

符号の説明Explanation of symbols

2・・・SIMD型マイクロプロセッサ、3・・・プロセッサエレメント、4・・・グローバルプロセッサ、8・・・演算アレイ、10・・・汎用レジスタ、12・・・シフタ、16・・・第1の記憶手段、18・・・第2の記憶手段、20・・・ALU、24・・・Aレジスタ(演算レジスタ)、28・・・PE番号保持ブロック。

2 ... SIMD type microprocessor, 3 ... processor element, 4 ... global processor, 8 ... arithmetic array, 10 ... general-purpose register, 12 ... shifter, 16 ... first Storage means, 18... Second storage means, 20... ALU, 24... A register (operation register), 28.

Claims (5)

算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
プロセッサエレメントの配置、及びレジスタの分割に基づいて、レジスタの分割単位にデータを設定することを特徴とするデータ処理方法。
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
A data processing method comprising: setting data in a register division unit based on arrangement of processor elements and register division.
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
プロセッサエレメント間では異なるが、各プロセッサエレメント内のレジスタの分割単位間では同じデータを設定することを特徴とするデータ処理方法。
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
A data processing method characterized in that the same data is set between the division units of the registers in each processor element, although it differs among processor elements.
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
レジスタの分割数をiとし、各プロセッサエレメントには異なる番号nを付すとして、
プロセッサエレメントにおけるレジスタの分割単位の、上位ビット位置にあるものから、データとして(n×i)、(n×i+1)・・・(n×i+(i−1))を設定することを特徴とするデータ処理方法。
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The number of register divisions is i, and each processor element is given a different number n.
(N × i), (n × i + 1)... (N × i + (i−1)) are set as data from the register at the upper bit position of the register division unit in the processor element. Data processing method.
算術論理演算器と演算結果を保持するレジスタを含み前記レジスタが分割された状態で処理を行い得るプロセッサエレメントを、複数持つSIMD型マイクロプロセッサにおいて、
レジスタの分割数をi、プロセッサエレメントの配置数をmaxとし、各プロセッサエレメントには異なる番号nを付すとして、
プロセッサエレメントにおけるレジスタの分割単位の、上位ビット位置にあるものから、データとして(n)、(n+max)・・・(n+max×(i−1))を設定することを特徴とするデータ処理方法。
In a SIMD type microprocessor having a plurality of processor elements including an arithmetic logic unit and a register for holding an operation result and capable of performing processing in a state where the register is divided,
The number of register divisions is i, the number of processor elements arranged is max, and each processor element is given a different number n.
A data processing method characterized by setting (n), (n + max) (n + max × (i−1)) as data from a register division unit in a processor element which is in an upper bit position.
各プロセッサエレメントには異なる番号nを付すとして、
レジスタを分割しない状態で処理を行う場合には、各プロセッサエレメントに含まれるレジスタにはデータとして(n)を設定することを特徴とする請求項1に記載のデータ処理方法。

Each processor element is given a different number n,
2. The data processing method according to claim 1, wherein when processing is performed without dividing the register, (n) is set as data in a register included in each processor element.

JP2005214122A 2005-07-25 2005-07-25 Data processing method in SIMD type microprocessor Expired - Fee Related JP4516495B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005214122A JP4516495B2 (en) 2005-07-25 2005-07-25 Data processing method in SIMD type microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005214122A JP4516495B2 (en) 2005-07-25 2005-07-25 Data processing method in SIMD type microprocessor

Publications (2)

Publication Number Publication Date
JP2007034473A true JP2007034473A (en) 2007-02-08
JP4516495B2 JP4516495B2 (en) 2010-08-04

Family

ID=37793696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005214122A Expired - Fee Related JP4516495B2 (en) 2005-07-25 2005-07-25 Data processing method in SIMD type microprocessor

Country Status (1)

Country Link
JP (1) JP4516495B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217061A (en) * 2007-02-28 2008-09-18 Ricoh Co Ltd Simd microprocessor

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0589262A (en) * 1991-07-18 1993-04-09 Toshiba Corp Processor address setting system
JP2001202351A (en) * 2000-01-19 2001-07-27 Ricoh Co Ltd Simd type processor
JP2001265592A (en) * 2000-03-17 2001-09-28 Matsushita Electric Ind Co Ltd Information processor
JP2002091929A (en) * 2000-09-11 2002-03-29 Matsushita Electric Ind Co Ltd Simd type parallel processor
JP2002108832A (en) * 2000-09-28 2002-04-12 Ricoh Co Ltd Data-setting device for simd processor
JP2002171401A (en) * 2000-11-29 2002-06-14 Canon Inc Simd arithmetic unit provided with thinning arithmetic instruction
JP2002207707A (en) * 2001-01-11 2002-07-26 Ricoh Co Ltd Simd type micro-processor having function for selecting constant
JP2003241960A (en) * 2002-02-15 2003-08-29 Hitachi Ltd Processor, and computation instruction processing method and computation control method therein

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0589262A (en) * 1991-07-18 1993-04-09 Toshiba Corp Processor address setting system
JP2001202351A (en) * 2000-01-19 2001-07-27 Ricoh Co Ltd Simd type processor
JP2001265592A (en) * 2000-03-17 2001-09-28 Matsushita Electric Ind Co Ltd Information processor
JP2002091929A (en) * 2000-09-11 2002-03-29 Matsushita Electric Ind Co Ltd Simd type parallel processor
JP2002108832A (en) * 2000-09-28 2002-04-12 Ricoh Co Ltd Data-setting device for simd processor
JP2002171401A (en) * 2000-11-29 2002-06-14 Canon Inc Simd arithmetic unit provided with thinning arithmetic instruction
JP2002207707A (en) * 2001-01-11 2002-07-26 Ricoh Co Ltd Simd type micro-processor having function for selecting constant
JP2003241960A (en) * 2002-02-15 2003-08-29 Hitachi Ltd Processor, and computation instruction processing method and computation control method therein

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217061A (en) * 2007-02-28 2008-09-18 Ricoh Co Ltd Simd microprocessor
US8060726B2 (en) 2007-02-28 2011-11-15 Ricoh Company, Ltd. SIMD microprocessor, image processing apparatus including same, and image processing method used therein

Also Published As

Publication number Publication date
JP4516495B2 (en) 2010-08-04

Similar Documents

Publication Publication Date Title
JP2008071130A (en) Simd type microprocessor
JP2009015556A (en) Simd type microprocessor
KR100812555B1 (en) Arrangement, system and method for vector permutation in single-instruction multiple-data microprocessors
EP3329363B1 (en) Vector arithmethic instruction
JP2008217061A (en) Simd microprocessor
JP4516495B2 (en) Data processing method in SIMD type microprocessor
JP4408113B2 (en) Signal processing method
JP3971543B2 (en) SIMD type processor
JP4868607B2 (en) SIMD type microprocessor
JP4442905B2 (en) Image data processing method
JP4451433B2 (en) Parallel processor
JP3895267B2 (en) SIMD processor
JP3837293B2 (en) SIMD type microprocessor having constant selection function
JP4398965B2 (en) Data setting device in SIMD processor
JP4442907B2 (en) SIMD type processor
JP3971557B2 (en) Data setting device in SIMD processor
JP2012059131A (en) Simd microprocessor and processing method thereof
JP2008071037A (en) Simd microprocessor
JP2010033426A (en) Simd type microprocessor and operation method
JP3969580B2 (en) Data processing apparatus, image processing apparatus, image forming apparatus, program, and storage medium
JP4708387B2 (en) Address data generation apparatus and memory addressing method
JP2005267362A (en) Image processing method using simd processor and image processor
JP3742745B2 (en) Arithmetic processing unit
JP2013161325A (en) Simd (single instruction-stream multiple data-stream) type microprocessor, processor system and data processing method for simd type microprocessor
JP2011134042A (en) Simd type microprocessor and data alignment method of the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080422

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100416

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140521

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees