JP3583443B2 - 演算装置および演算方法 - Google Patents
演算装置および演算方法 Download PDFInfo
- Publication number
- JP3583443B2 JP3583443B2 JP54260298A JP54260298A JP3583443B2 JP 3583443 B2 JP3583443 B2 JP 3583443B2 JP 54260298 A JP54260298 A JP 54260298A JP 54260298 A JP54260298 A JP 54260298A JP 3583443 B2 JP3583443 B2 JP 3583443B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- stored
- arithmetic
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000004364 calculation method Methods 0.000 claims description 6
- 239000013598 vector Substances 0.000 description 51
- 238000010586 diagram Methods 0.000 description 28
- 101100030849 Arabidopsis thaliana PROT3 gene Proteins 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 229910052739 hydrogen Inorganic materials 0.000 description 2
- 238000013507 mapping Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
本発明は、CPUを用いた算術論理演算を行うための演算装置および演算方法に関するものである。
背景技術
コンピュータなどに用いられる演算装置であるCPU(Central Processing Unit)のなかには、マルチメディア命令(以下では、MM命令または単に命令という。)と呼ばれる命令群を持つものがある。このMM命令は、CPUが備えている演算器を分割して複数の演算を同時に実行させるものである。
図1は、従来のCPUの一構成例を示している。この従来のCPUは、データ処理を実行するための算術論理演算手段である算術論理演算ユニット(ALU)130、データを左右にシフトさせるためのシフト処理手段であるシフト処理ユニット(SHT)140、およびレジスタユニット(REG)150を備えており、例えば64ビットのバス160,170,180と接続されてデータを相互に転送する。
図2は、上述した従来のCPUにおける、64ビット×64ビットの乗算器による乗算を示している。すなわち、レジスタAの64ビットのワードsと、レジスタBの64ビットのワードtとの積である128ビットのワードs*tが生成されてレジスタCに格納される。
図3は、上記の64ビットワードsおよびtを各々4個のフィールドに分割してそれぞれ4つのビットフィールドを形成し、対応するフィールドのビット、すなわち、16ビット×16ビットの乗算を行う様子を示している。すなわち、レジスタAの各々16ビットs0,s1,s2,s3と、レジスタBの各々16ビットt0,t1,t2,t3との積である各々32ビットのs0*t0,s1*t1,s2*t2,s3*t3が生成されてレジスタCに格納される。
このような4並列乗算は、CPUが備えている乗算器を4分割して4並列の乗算器を構成することにより実現できる。また同様に、CPUが備えている加算器を4分割して4並列加算器を構成することもできる。
図4は、上述した従来のCPUにおける、128ビット+128ビットの加算器による加算を示している。すなわち、レジスタAの128ビットsと、レジスタBの128ビットtとの和である128ビット(s+t)が生成されてレジスタCに格納される。
図5は、上記の各ワードを4分割して、各々32ビット+32ビットの加算を行う様子を示している。すなわち、レジスタAの各々32ビットs0,s1,s2,s3と、レジスタBの各々32ビットt0,t1,t2,t3との和である各々32ビットのs0+t0,s1+t1,s2+t2,s3+t3が生成されてレジスタCに格納される。
上記のように演算対象のデータ幅が16ビットや32ビット程度であるときには、一つの演算器を分割して構成される並列演算器を用いれば、演算処理を高速に行うことができる。図3および図5に示した並列演算を行わせる命令は、このために用いられるマルチメディア(MM)命令の一部である。
以下に、従来のMM命令を用いる並列演算の具体例を示す。
まず、第1の具体例として、以下の(1)式のようなn+1元連立一次方程式をクラーマー(cramer)の公式を用いて解く場合について説明する。
このクラーマーの公式を用いると、(2)式のように(n+1)×(n+1)行列式のj列目を順次置き換えることにより(1)式の連立一次方程式の解を得ることができる。つまり、行列式を計算できれば、連立一次方程式を解くことができる。
一般に、(n+1)×(n+1)行列式は、次数がn+1より低い小行列式を用いて(3)式のように展開される。ここで、Δijは、上記の(n+1)×(n+1)行列式のi行目およびj列目を取り去ったものに、(−1)i+jで与えられる符号を付したものである。
すなわち、次数がより低い小行列式を順次計算すれば、もとの行列式を計算できる。従って、最低次の行列式である2×2行列式を計算できれば任意の次数の行列式を計算できることになる。2×2行列式を計算するためには(4)式で示される展開を用いればよい。
また、3×3行列の行列式を計算する場合には、(3)式で示される展開が(5)式のようになる。
図6は、3×3行列の各行ベクトル(a00,a01,a02),(a10,a11,a12),(a20,a21,a22)が、各々64ビットとしてレジスタA0,A1,A2に格納されている様子を示している。以下では、このように格納された行ベクトルに対して、従来のMM命令を用いて2×2の小行列式を計算する手順について説明する。
図7は、図6の3×3行列の行ベクトルに対して、従来のMM命令を用いて2×2の小行列式を計算する手順を示している。
まず、命令「SRL B,A1,16」により、レジスタA1に格納された行ベクトルが、右に16ビットだけシフトされてレジスタBに格納される。
次に、命令「ANDI B,0x000000000000ffff」により、レジスタBに格納された上記の行ベクトルと、000000000000ffffとの積(AND)が生成されてレジスタBに再び格納される。これにより、レジスタBのビット0からビット15までの下位の16ビットにa11のみが格納される。
次に、命令「SLL C,A1,16」により、レジスタA1に格納された行ベクトルが、左に16ビットだけシフトされてレジスタCに格納される。
次に、命令「ANDI C,0x00000000ffff0000」により、レジスタCに格納された上記の行ベクトルと、00000000ffff0000との積(AND)が生成されてレジスタCに再び格納される。これにより、レジスタCのビット16からビット31までの16ビットにa12のみが格納される。
次に、命令「OR D,B,C」により、レジスタBに格納されたデータと、レジスタCに格納されたデータの和(OR)が生成されてレジスタDに格納される。これにより、レジスタDの下位の32ビットにa12,a11が格納される。
次に、命令「PMUL E,A0,D」により、レジスタA0に格納された行ベクトルと、レジスタDに格納されたデータとが並列に乗算され、その結果がレジスタEに格納される。すなわち、レジスタEの上位の32ビットにa01*a12が格納され、下位の32ビットにa02*a11が格納される。
次に、命令「SRL F,E,32」により、レジスタEに格納されたデータが、右に32ビットだけシフトされてレジスタFに格納される。すなわち、レジスタFの下位の32ビットにa01*a12のみが格納される。
次に、命令「ANDI E,0x00000000ffffffff」により、レジスタEを格納された上記のデータと、00000000ffffffffとの積(AND)が生成されてレジスタEに再び格納される。これにより、レジスタEの下位の16ビットにa02*a11のみが格納される。
次に、命令「SUB G,F,E」により、レジスタFに格納されたデータから、レジスタEに格納されたデータが差し引かれて差が生成され、レジスタGに格納される。これにより、レジスタGの下位の32ビットに2×2行列の行列式a01*a12−a02*a11が格納される。
このように、従来のMM命令を用いて2×2行列の行列式を計算する場合には、上記の9ステップが必要であった。
次に、従来のMM命令を用いて並列演算を行う第2の具体例として、三角形の法線を求める場合について説明する。
3次元空間の3つの点は、一つの三角形を決める。また、三角形の面積と法線ベクトルは、外積ベクトルの絶対値と正規化ベクトルとで与えられる。このような2つの3次元ベクトルの外積は、(6)式で与えられる3次元ベクトルである。
図8は、2つの3次元ベクトル(a00,a01,a02),(a10,a11,a12)が、各々64ビットの2つのワードとしてレジスタA0,A1に格納されている様子を示している。以下では、このように格納された2つの3次元ベクトルに対して、従来のMM命令を用いて外積を計算する手順について説明する。
図9は、図8の2つの3次元ベクトルに対して、従来のMM命令を用いて外積を計算する手順を示している。
まず、命令「SRL B,A0,16」により、レジスタA0に格納された行ベクトルが、右に16ビットだけシフトされてレジスタBに格納される。
次に、命令「SLL C,A0,32」により、レジスタA0に格納された行ベクトルが、左に32ビットだけシフトされてレジスタCに格納される。
次に命令「OR D,B,C」により、レジスタBに格納されたデータと、レジスタCに格納されたデータとの和(OR)が生成されてレジスタDに格納される。これにより、レジスタDに各々16ビットのa01,a02,a00,a01が格納される。
次に、命令「SLL E,A1,16」により、レジスタA1に格納された行ベクトルが、左に16ビットだけシフトされてレジスタEに格納される。
次に、命令「SRL F,A1,32」により、レジスタA1に格納された行ベクトルが、右に32ビットだけシフトされてレジスタFに格納される。
次に、命令「OR G,E,F」により、レジスタEに格納されたデータと、レジスタFに格納されたデータとの和(OR)が生成されてレジスタGに格納される。これにより、レジスタGに各々16ビットのa10,a11,a12,a10が格納される。
次に、命令「PMUL H,D,G」により、レジスタDに格納されたデータと、レジスタGに格納されたデータとが並列に乗算され、その結果がレジスタHに格納される。すなわち、レジスタHに各々32ビットのa01*a10,a02*a11,a00*a12,a01*a10が格納される。
次に、命令「SLL B,A0,16」により、レジスタA0に格納された行ベクトルが、左に16ビットだけシフトされてレジスタBに格納される。
次に、命令「SRL C,A0,32」により、レジスタA0に格納された行ベクトルが、右に32ビットだけシフトされてレジスタCに格納される。
次に、命令「OR D,B,C」により、レジスタBに格納されたデータと、レジスタCに格納されたデータとの和(OR)が生成されてレジスタDに格納される。これにより、レジスタDに各々16ビットのa00,a01,a02,a00が格納される。
次に、命令「SRL E,A1,16」により、レジスタA1に格納された行ベクトルが、右に16ビットだけシフトされてレジスタEに格納される。
次に、命令「SLL F,A1,32」により、レジスタA1に格納された行ベクトルが、左に32ビットだけシフトされてレジスタEに格納される。
次に、命令「OR G,E,F」により、レジスタEに格納されたデータと、レジスタFに格納されたデータとの和(OR)が生成されてレジスタGに格納される。これにより、レジスタGに各々16ビットのa11,a12,a10,a11が格納される。
次に、命令「PMUL H,D,G」により、レジスタDに格納されたデータと、レジスタGに格納されたデータとが並列に乗算され、その結果がレジスタHに格納される。すなわち、レジスタHに各々32ビットのa00*a11,a01*a12,a02*a10,a00*a11が格納される。
次に、命令「PSUB K,J,H」により、レジスタJに格納されたデータから、レジスタHに格納されたデータが並列に減算され、その結果がレジスタKに格納される。すなわち、レジスタKに各々32ビットのa00*a11−a01*a10,a01*a12−a02*a11,a02*a10−a00*a12,a00*a11−a01*a10が格納される。
このように、従来のMM命令を用いて2つの3次元ベクトルの外積を計算する場合には、上記の15ステップが必要であった。
次に、従来のMM命令を用いて並列演算を行う第3の具体例として、2つのベクトルの内積を計算する場合について説明する。
2つのベクトルの内積は、それらの相関の度合いを表す。このような2つのベクトルの内積として、例えば2つの4次元ベクトルの内積は、(7)式で与えられる。
(a0a1a2a3)*(b0b1b2b3)
=a0*b0+a1*b1+a2*b2+a3*b3 (7)
図10は、64ビットワードの2つの4次元ベクトル(a0,a1,a2,a3),(b0,b1,b2,b3)が、それぞれ2つのワードとしてレジスタA,Bに格納されている様子を示している。以下では、このように格納された2つの4次元ベクトルに対して、従来のMM命令を用いて内積を計算する手順について説明する。
図11は、図10の2つの4次元ベクトルに対して、従来のMM命令を用いて内積を計算する手順を示している。なお、この図11の×印をつけた部分は、この演算に無関係な値が格納されていることを示している。
まず、命令「PMUL C,A,B」により、レジスタAに格納されたデータと、レジスタBに格納されたデータとが並列に乗算され、その結果がレジスタHに格納される。すなわち、レジスタCに各々16ビットのa0*b0,a1*b1,a2*b2,a3*b3が格納される。
次に、命令「SLL D,C,16」により、レジスタCに格納されたデータが、左に16ビットだけシフトされてレジスタDに格納される。
次に、命令「PADD E,C,D」により、レジスタCに格納されたデータと、レジスタDに格納されたデータとが並列に加算され、その結果がレジスタEに格納される。これにより、レジスタEには、ビット16からビット31に16ビットのa2*b2+a3*b3が格納され、ビット48からビット63に16ビットのa0*b0+a1*b1が格納される。
次に、命令「SLL F,E,32」により、レジスタEに格納されたデータが、左に32ビットだけシフトされてレジスタFに格納される。これにより、レジスタFには、最上位の16ビットにa2*b2+a3*b3のみが格納され、下位の2つの16ビットのデータ値はいずれも0になる。
次に、命令「PADD G,E,F」により、レジスタEに格納されたデータと、レジスタFに格納されたデータとが並列に加算され、その結果がレジスタGに格納される。これにより、レジスタGには、最上位の16ビットにa0*b0+a1*b1+a2*b2+a3*b3が格納される。
このように、従来のMM命令を用いて2つの4次元ベクトルの内積を計算する場合には、上記の5ステップが必要であった。
ところで、従来のMM命令を用いる演算装置および演算方法では、レジスタに複数のnビットのワードのデータを格納しているものの、それらのうちの同一のビットフィールド間でのみ演算が行われる。すなわち、複数フィールドからなる演算対象ワード内のフィールド間で直接に演算操作を施すことができないため、上述したような並列演算を行う際に所望のフィールド間で演算を行うための余分なフィールド操作を行う必要が生じ、演算速度を十分に高めることができなかった。
発明の開示
本発明は、上述した問題点に鑑みてなされたものであり、従来の演算装置よりも少ないステップ数で高速に並列演算が可能な演算装置および演算方法を提供することを目的としている。
本発明に係る演算装置は、複数のMビット(M≧1)からなるフィールドで構成される演算対象ワードに対して算術論理演算を行う算術論理演算手段と、上記演算対象ワードに対して所定のビット数だけシフトさせるシフト処理手段と、上記演算対象ワードおよび上記演算が行われたワードを格納するレジスタとを備え、上記同一の演算対象ワード内の上記複数フィールド間で並列演算を行う機能を有することを特徴とする。
また、本発明に係る演算方法は、複数のMビットからなるフィールドで構成される演算対象ワードに対してフィールド単位で算術論理演算を行う演算方法であって、同一演算対象ワード内の2以上のフィールドを交換するステップを有することを特徴とする。
このような演算装置および演算方法によれば、余分なフィールド操作を行う必要がないため、従来よりも少ないステップ数で高速に並列演算を行うことができる。
【図面の簡単な説明】
図1は、従来のCPUの構成例を示す図である。
図2は、64ビット×64ビットの乗算器による乗算について説明するための図である。
図3は、4分割された64ビット×64ビットの乗算器による並列乗算について説明するための図である。
図4は、64ビット×64ビットの加算器による加算について説明するための図である。
図5は、4分割された64ビット×64ビットの加算器による並列加算について説明するための図である。
図6は、3×3行列の行ベクトルが、各々64ビットワードとしてレジスタに格納されている様子を示す図である。
図7は、3×3行列の行ベクトルに対して、従来のMM命令を用いて2×2の小行列式を計算する手順を示す図である。
図8は、2つの3次元ベクトルが、各々64ビットのワードとしてレジスタに格納されている様子を示す図である。
図9は、2つの3次元ベクトルに対して、従来のMM命令を用いて外積を計算する手順を示す図である。
図10は、2つの4次元ベクトルが、各々2つのワードとしてレジスタに格納されている様子を示す図である。
図11は、2つの4次元ベクトルに対して、従来のMM命令を用いて内積を計算する手順を示す図である。
図12は、本発明の演算装置の一形態であるCPUの構成例を示す図である。
図13は、MM命令を有するCPUの基本的な構成例を示す図である。
図14A,B,Cは、命令「PMUL」と「PADD」について説明するための図である。
図15A〜Eは、本発明の演算装置のMM命令について説明するための図である。
図16は、データ交換ユニット(EXC回路)の構成例を示す図である。
図17は、EXC回路のマルチプレクサ(MUX)について説明するための図である。
図18は、MUXに送られる2つのコマンドと動作を示す図である。
図19は、EXC回路に送られるEXCコマンドと実現されるMM命令との対応を示す図である。
図20は、命令「PEXC」を実現するための回路を示す図である。
図21は、命令「PEXH」を実現するための回路を示す図である。
図22は、命令「PROT3」を実現するための回路を示す図である。
図23は、命令「PHADD」を実現するための回路を示す図である。
図24は、命令「PHSUB」を実現するための回路を示す図である。
図25は、本発明の演算装置により、各々格納された3×3行列の行ベクトルに対して2×2の小行列式を計算する手順を示す図である。
図26は、本発明の演算装置により2つの3次元ベクトルに対して外積を計算する手順を示す図である。
図27は、本発明の演算装置により2つの4次元ベクトルに対して内積を計算する手順を示す図である。
図28は、本発明に係る演算装置を適用した画像作成装置の構成例を示すブロック図である。
発明を実施するための最良の形態
以下、本発明の演算装置および演算方法の好ましい実施の形態について図を参照しながら説明する。以下では、まず本発明の演算装置の実施の形態の構成について説明し、その構成を参照しながら本発明の演算方法の実施の形態について説明する。
図12は、本発明の演算装置の実施の一形態としてのCPUの主要部の構成例を示している。このCPUは、算術論理演算手段である算術論理演算ユニット(ALU)330、シフト処理ユニット(SHT)340、およびレジスタユニット(REG)350を備えて構成されており、これらは64ビットのバス(BUS)360,370,380および16ビットのパラレルバスを介して互いにデータを転送することができる。上記のALU330,SHT340,REG350は、それぞれ4つに分割されて構成されている。
上記の各部は、図13に示すCPUの各部と同様の構成を有しているが、バス360,370とALU330の間に、ワード内のビットフィールド交換手段であるデータ交換ユニツト(EXC)310,320を備えている点が相違している。すなわち、このワード内のビットフィールド交換手段であるEXC310,320により、ALU330で同一の演算対象ワード内の複数フィールド間で演算を行う演算機能を実現している。なお、1フィールドはMビット(M≧1)から成っており、以下の実施の形態では、1フィールドを例えば16ビットとしている。
次に、上述した本発明の演算装置が有している新たなMM命令についての説明に先立って、本発明の演算装置の基本となる演算装置の構成例を参照しながら、前述したMM命令である「PMUL」と「PADD」について再度説明する。
図13は、MM命令を有するCPUの基本的な構成例を示している。このMM命令を有するCPUの構成例は、図1に示したMM命令を有していない従来のCPUの構成例に基づいているが、ALU230,SHT240,REG250が、それぞれ分割されて4つずつ構成されている点が異なっている。
そして、バス260とALU230との間のデータ転送路として、64ビットのパラレル転送路に代えて、4つの16ビットパラレル転送路265を備えている。
図14A〜Cは、図13の演算装置で実行されるMM命令「PMUL」と「PADD」について示している。
図14Aは、各々16ビットのデータがREG250の64ビットレジスタA,Bの4分割された16ビットの各フィールドにそれぞれ格納されている様子を示している。
図14Bは、命令「PMUL C,A,B」により、上記のレジスタAの4つのフィールドに個々に格納されている4つのデータと、レジスタBに格納されている4つのデータとがALU230で並列に乗算され、各々32ビットの積がREG250のレジスタCに格納される様子を示している。
また、図14Cは、命令「PADD C,A,B」により、上記のレジスタAに格納されている4つのデータと、レジスタBに格納されている4つのデータとが並列に加算され、各々16ビットの和がレジスタCに格納される様子を示している。
ところが、図13の演算装置における上述のようなMM命令による演算は、ワード単位で行われるものであり、フィールド単位で演算を行うためにはステップ数が余計に必要であった。そこで、本発明の演算装置は、新しいMM命令である「ワード内のビットフィールド交換命令」および「ワード内のデータ間の演算命令」をさらに有して、より少ないステップ数で演算を行うように構成されている。
以下では、本発明の演算装置のMM命令群について、図15A〜Eを参照しながら説明する。
図15Aは、命令「PEXC」について示している。すなわち、命令「PEXC B,A」は、4分割されたレジスタAの、最上位のフィールドのデータと最下位のフィールドのデータはそのままにして、中央の2つのフィールドのデータを交換して、レジスタBに格納するものである。
図15Bは、命令「PEXH」について示している。すなわち、命令「PEXH B,A」は、4分割されたレジスタAの、上位の2つのフィールドの各データを互いに交換し、下位の2つのフィールドの各データを互いに交換して、レジスタBに格納するものである。
図15Cは、命令「PROT3」について示している。すなわち、命令「PROT3 B,A,16」は、4分割されたレジスタAの、最上位のフィールドのデータはそのままにして、下位の3つのフィールドの各データを16ビットだけずらしてローテーションさせて、レジスタBに格納するものである。
図15Dは、命令「PHADD」について示している。すなわち、命令「PHADD B,A」は、4分割されたレジスタAの、上位の2つのフィールドの各データを互いに加算し、下位の2つのフィールドの各データを互いに加算して、レジスタBに格納するものである。
図15Eは、命令「PHSUB」について示している。すなわち、命令「PHSUB B,A」は、4分割されたレジスタAの、上位の2つのフィールドの各データを減算し、下位の2つのフィールドの各データを減算して、レジスタBに格納するものである。
このように、本発明の演算装置は、従来のMM命令に加えて、分割されたビットフィールド間の交換を行う命令、および同一レジスタ内の異なるビットフィールド間の演算を行う命令をさらに有することにより演算性能を向上させたものである。
次に、従来のMM命令に加えて、上述したような新たなMM命令をさらに有する本発明の演算装置の構成について具体的に説明する。
図16は、図12のデータ交換ユニツト(EXC回路)310の構成例を示している。このEXC回路310への各入力A0〜A3は、マルチプレクサ(MUX)311〜314のそれぞれに供給される。そして、上記の各MUXは、供給される2つのコマンドにより、出力するデータを選択する。これにより、EXC310の動作が、コマンドC0〜C7により制御される。
なお、ここではEXC310についてのみ説明したが、EXC回路320についても同様である。
次に、上述したEXC回路310,320のMUX311〜314について説明する。これらのMUXは、4入力1出力の構成を有しており、各々2つのコマンドにより動作が制御される。
図17は、上記のMUX311〜314のうちのMUX311を示している。このMUX311は、4入力1出力の構成を有しており、2つのコマンドC0,C1によって動作が制御される。
図18は、上記のMUX311に送られる2つのコマンドと動作の対応を示している。すなわち、コマンドC0,C1が共に0のときには入力A0が出力B0とされる。また、C0が0であり、C1が1のときには入力A1が出力B0とされる。同様に、C0が1であり、C1が0のときには入力A2が出力B0とされ、C0,C1が共に1のときには入力A3が出力B0とされる。
なお、ここでは、MUX311について説明したが、MUX312〜314についても同様である。すなわち、MUX312はコマンドC2,C3により、MUX313はコマンドC4,C5により、MUX314はコマンドC6,C7により、それぞれ動作が同様に制御される。
図19は、図16に示したEXC回路に送られるEXCコマンドC0〜C7と、これらのコマンドにより実現されるMM命令との対応を示している。すなわち、
C0,C1,C3,C4が0であり、C2,C5,C6,C7が1であるときには、命令「PEXC」が実現される。
C0,C2,C3,C7が0であり、C1,C4,C5,C6が1であるときには、命令「PEXH」が実現される。
C0,C1,C4,C7が0であり、C2,C3,C5,C6が1であるときには、命令「PROT3」が実現される。
C0,C2,C3,C7が0であり、C1,C4,C5,C6が1であるときには、命令「PHADD」が実現される。
C0,C2,C3,C7が0であり、C1,C4,C5,C6が1であるときには、命令「PHSUB」が実現される。
なお、上記の命令「PHADD」と「PHSUB」は、EXC命令が同一であるが、ALUのコマンドが異なっている。
次に、上述した本発明の演算装置が有する新しいMM命令を実現するための回路について具体的に説明する。なお、以下の説明において、a0〜a3は、各々16ビットまたは32ビットのデータ幅を持つ入力データであり、全体として1つのワードを構成している。また、b0〜b3は、それぞれ16ビットまたは32ビットのデータ幅を持つ出力データであり、全体として1つのワードを構成している。
図20は、命令「PEXC」を実現するための回路を示している。この回路は、交換回路「exchange」を備えて構成されている。この回路に入力される4つのデータa0,a1,a2,a3に対して、最上位のa0および最下位のa3は、そのままb0およびb3として出力される。また、最上位と最下位のデータの間の2つのデータは互いに交換されて、a1がb2とされ、a2がb1とされて出力される。
図21は、命令「PEXH」を実現するための回路を示している。この回路は、2つの交換回路「exchange」を備えて構成されている。この回路に入力される4つのデータa0,a1,a2,a3のうち、上位の2つのデータa0,a1が互いに交換されて、a0がb1とされ、a1がb0とされて出力される。また、入力される上記の4つのデータのうち、下位の2つのデータa2,a3が互いに交換されて、a2がb3とされ、a3がb2とされて出力される。
図22は、命令「PROT3」を実現するための回路を示している。ここで、「SELECT」は選択回路である。この回路に入力される4つのデータa0,a1,a2,a3のうち、最上位のデータa0は、そのままb0とされて出力される。また。他の3つのデータa1,a2,a3は、3入力1出力の選択回路「select」で、例えば、a1がb3とされ、a2がb1とされ、a3がb2とされて出力される。すなわち、最上位のデータa0を除く上記の3つのデータは、ローテーションされて出力される。
図23は、命令「PHADD」を実現するための回路を示している。この回路は、2つの足し算回路「ADD」を備えて構成されている。この回路に入力される4つのデータa0,a1,a2,a3のうち、上位の2つのデータa0,a1が互いに加算されてb0とされて出力される。また、入力される上記の4つのデータのうち、下位の2つのデータa2,a3が互いに交換されてb2とされて出力される。
図24は、命令「PHSUB」を実現するための回路を示している。この回路は、2つの引き算回路「SUB」を備えて構成されている。この回路に入力される4つのデータa0,a1,a2,a3のうち、上位の2つのデータa0からa1が減算されてb0とされて出力される。また、出力される上記の4つのデータのうち、下位の2つのデータa2からa3が減算されてb2とされて出力される。
次に、前述したような、同一ワード内の異なるビットフィールドどうしを交換したり演算する機能を有する本発明の演算装置により、演算を行う場合について説明する。
図25は、本発明の演算装置を用いて、3×3行列の行ベクトルに対して2×2の小行列式を計算する手順を示している。
まず、前述した命令「PEXH D,A1」により、4分割されたレジスタA1の、上位の2つのデータを互いに交換し、下位の2つのデータを互いに交換してレジスタDに格納する。
次に、命令「PMULH E,A0,D」により、レジスタA0に格納された行ベクトルと、レジスタDに格納されたデータとの並列乗算が、16ビット単位で行われ、その結果がレジスタEに格納される。この命令「PMULH」は、前述した命令「PMUL」と同様の操作を、ワード長の半分だけを単位として行う命令である。これにより、レジスタEの上位の32ビットにはa01*a12が格納され、下位の32ビットにはa02*a11が格納される。
次に、命令「PSUBW G,E」により、レジスタEに格納されたデータを32ビット単位で、レジスタHに格納された16ビット単位のデータを差し引く並列減算が行われ、その結果がレジスタKに格納される。この命令「PSUBW」は、命令「PSUB」と同様の操作を、ワード長を単位として行う命令である。これにより、レジスタGの上位の32ビットには0が格納され、下位のa01*a12−a02*a11が格納される。
このように、2×2行列式を計算するために、従来の演算装置では図7に示したように9ステップが必要であったが、本発明の演算装置によれば上記の3ステップのみで済む。
図26は、本発明の演算装置により、2つの3次元ベクトルの外積を計算する手順を示している。
まず、命令「PROT3 B,A0,16」により、レジスタA0の、最上位のデータはそのままにして、下位の3つのデータを16ビットだけずらしてローテーションさせてレジスタBに格納する。
次に、命令「PROT3 C,A1,32」により、レジスタA1の、最上位のデータはそのままにして、下位の3つのデータを32ビットだけずらしてローテーションさせてレジスタCに格納する。
次に、命令「PMUL D,B,C」により、レジスタBに格納された行ベクトルと、レジスタCに格納されたデータとの並列乗算が行われ、その結果がレジスタDに格納される。すなわち、レジスタDの最上位の32ビットには0が格納され、続く各々32ビットにはa02*a11,a00*a12,a01*a10が順次格納される。
次に、命令「PROT3 B,A0,32」により、レジスタA0の、最上位のデータはそのままにして、下位の3つのデータを32ビットだけずらしてローテーションさせてレジスタBに格納する。
次に、命令「PROT3 C,A1,16」により、レジスタA1の、最上位のデータはそのままにして、下位の3つのデータを16ビットだけずらしてローテーションさせてレジスタCに格納する。
次に、命令「PMUL E,B,C」により、レジスタBに格納されたデータと、レジスタCに格納されたデータとの並列乗算が行われ、その結果がレジスタEに格納される。すなわち、レジスタEの最上位の32ビットには0が格納され、続く各々32ビットにはa01*a12,a02*a10,a00*a11が順次格納される。
次に、命令「PSUB F,E,D」により、レジスタE格納されたデータから、レジスタDに格納されたデータを差し引く並列減算が行われ、その結果がレジスタKに格納される。すなわち、レジスタFの最上位の32ビットには0が格納され、続く各々32ビットにはa01*a12−a02*a11,a02*a10−a00*a12,a00*a11−a01*a10が格納される。
このように、2つの3次元ベクトルの外積を計算するために、従来の演算装置では図9に示したように15ステップが必要であったが、本発明の演算装置によれば上記の7ステップのみで済む。
図27は、本発明の演算装置により、2つの4次元ベクトルの内積を計算する手順を示している。
まず、命令「PMUL C,A,B」により、レジスタAに格納されたデータと、レジスタBに格納されたデータとの並列乗算が行われ、その結果がレジスタCに格納される。すなわち、レジスタCには、各々32ビットのa0*b0,a1*b1,a2*b2,a3*b3が格納される。
次に、命令「PHADD E,C」により、レジスタEの、上位の2つのデータを互いに加算し、下位の2つのデータを互いに加算してレジスタEに格納する。
次に、命令「PEXC E」によりレジスタEの、最上位のデータと最下位のデータはそのままにして、中央の2つのデータを交換して格納する。
次に、命令「PHADD G,E」により、レジスタEの、上位の2つのデータを互いに加算し、下位の2つのデータを互いに加算してレジスタGに格納する。これにより、レジスタGの最上位の32ビットには、a0*b0+a1*b1+a3*b3+a3*b3が格納される。
なお、この図27の×印をつけた部分は、この演算に無関係な値が格納されていることを示している。
このように、2つの4次元ベクトルの内積を計算するために、従来の演算装置では図11に示したように5ステップが必要であったが、本発明の演算装置によれば上記の4ステップのみで済む。
図28は、以上説明したMM命令を備える本発明に係る演算装置を用いて構成した画像作成装置の構成例を示している。
この図28において、マイクロプロセッサ等からなる中央処理装置であるCPU1は、入力パッドやジョイスティック等の入力デバイス4の操作情報をインタフェース3およびメインバス9を介して取り出すためのものであり、本発明の演算装置が用いられている。そして、上記CPU1は、取り出された操作情報に基づいて、第1のメモリであるメインメモリ2に記憶されている3次元画像の情報を上記メインバス9を介してグラフィックプロセッサ6に送る。
グラフィックプロセッサ6は、送られた3次元画像の情報を交換して画像データを生成するためのものであり、ここで生成された画像データによる3次元画像が第2のメモリであるビデオメモリ5上に描かれる。このビデオメモリ5上に描かれた3次元画像データは、ビデオ信号のスキャン時に読み出されて図示しない表示装置上に3次元画像が表示される。
また、上述のように3次元画像を表示すると同時に、上記CPU1によって取り出された操作情報中の上記表示された3次元画像に対応する音声情報が、オーディオプロセッサ7に送られる。上記オーディオプロセッサ7は、この送られた音声情報に基づいてオーディオメモリ8内に記憶されている音声データを表示する。
このような画像作成装置は、例えば、3次元画像を比較的高精度かつ高速度に表示することが要求される家庭用ゲーム機に使用されるものである。
家庭用ゲーム機において、上述のような画像作成装置を用いて3次元画像を表示する方法は、表示対象となる物体の陰影を付加するシェーディング法や、他の2次元画像を変形して貼り付けるテクスチャマッピングが代表的である。
また、3次元を示す座標計には、3次元の物体そのものに関する形状や寸法を表現するためのオブジェクト座標系、3次元の物体を空間に配置したときの物体の位置を示すワールド(世界)座標系、およびスクリーン上に表示した3次元の物体を表現するためのスクリーン座標系が使用されることが多い。特に、スクリーン座標系上の3次元物体の3次元画像を表す単位となる多角形領域、いわゆるポリゴンは、簡略化した三角形領域として扱われることが多い。
本発明に係る演算装置は、この三角形領域(ポリゴン)に対して、頂点座標を算出したり、対象物体の属性と光源データとから法線ベクトルと光源ベクトルとの内積計算等を行うために好適なものである。
以上説明したような演算装置によれば、従来のMM命令に加えて、演算対象の同一ワード内の複数フィールド間で演算を行う機能を有するMM命令をさらに有して構成されているために、従来より少ないステップ数で高速に並列演算を行うことができる。
なお、本発明は上記実施の形態のみに限定されるものではなく、例えばレジスタのビット数やフィールドのビット数は図示のものに限定されないことは勿論である。
Claims (5)
- それぞれMビット(M≧1)から成る複数のフィールドで構成される演算対象ワードに対して算術論理演算を行う算術論理演算手段と、
上記演算対象ワードに対して所定のビット数だけシフトさせるシフト処理手段と、
上記演算対象ワードおよび上記演算が行われたワードを格納するレジスタとを備え、
上記同一の演算対象ワード内の上記複数フィールド間で並列演算を行うことを特徴とする演算装置。 - 上記算術論理演算手段は演算対象データに対して上記フィールド単位で算術論理演算を行う算術論理演算ユニットを複数有して成り、上記シフト処理手段は演算対象データに対して上記フィールド単位で所定のビット数だけシフトさせるシフト処理演算ユニットを有して成り、上記レジスタは演算対象および演算が行われたデータを上記フィールド単位で格納するレジスタユニットを複数有して成ることを特徴とする請求項1記載の演算装置。
- 上記複数フィールドからなる演算対象ワード内のフィールドを交換するフィールド交換手段を更に備えることを特徴とする請求項2記載の演算装置。
- 演算装置によって、複数のMビットからなるフィールドで構成される演算対象ワードに対してフィールド単位で算術論理演算を行う演算方法であって、
前記演算装置に設けられたフィールド交換手段によって、同一演算対象ワード内の2以上のフィールドの交換を実行し、
更に、前記演算装置は、上記フィールドを交換した演算 対象ワードのフィールド間での算術論理演算を実行し、 上記演算結果を上記演算対象フィールドの一方に格納す ることを特徴とする演算方法。 - 前記算術論理演算を行うステップでは、上記フィールドを交換した演算対象ワードのフィールド間で加算又は減算を行うことを特徴とする請求項4記載の演算方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8975197 | 1997-04-08 | ||
PCT/JP1998/001626 WO1998045774A1 (en) | 1997-04-08 | 1998-04-08 | Arithmetic unit and arithmetic method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3583443B2 true JP3583443B2 (ja) | 2004-11-04 |
Family
ID=13979457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP54260298A Expired - Lifetime JP3583443B2 (ja) | 1997-04-08 | 1998-04-08 | 演算装置および演算方法 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0930564B1 (ja) |
JP (1) | JP3583443B2 (ja) |
KR (1) | KR20000016448A (ja) |
CN (1) | CN1231038A (ja) |
DE (1) | DE69836408T2 (ja) |
WO (1) | WO1998045774A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2820523B1 (fr) * | 2001-02-08 | 2003-05-16 | St Microelectronics Sa | Microprocesseur comportant une instruction d'inversion des bits d'un mot binaire |
JP3753991B2 (ja) | 2002-02-15 | 2006-03-08 | 株式会社ルネサステクノロジ | プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4839845A (en) * | 1986-03-31 | 1989-06-13 | Unisys Corporation | Method and apparatus for performing a vector reduction |
JP3154542B2 (ja) * | 1992-02-27 | 2001-04-09 | 株式会社日立製作所 | データ処理装置 |
JPH07262010A (ja) * | 1994-03-25 | 1995-10-13 | Hitachi Ltd | 演算処理装置および演算処理方法 |
GB9509989D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
US5673321A (en) * | 1995-06-29 | 1997-09-30 | Hewlett-Packard Company | Efficient selection and mixing of multiple sub-word items packed into two or more computer words |
GB9514695D0 (en) * | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | Combining data values |
GB9514684D0 (en) * | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | An arithmetic unit |
-
1998
- 1998-04-08 CN CN98800698A patent/CN1231038A/zh active Pending
- 1998-04-08 WO PCT/JP1998/001626 patent/WO1998045774A1/ja active IP Right Grant
- 1998-04-08 JP JP54260298A patent/JP3583443B2/ja not_active Expired - Lifetime
- 1998-04-08 KR KR1019980710032A patent/KR20000016448A/ko not_active Application Discontinuation
- 1998-04-08 DE DE69836408T patent/DE69836408T2/de not_active Expired - Lifetime
- 1998-04-08 EP EP98912729A patent/EP0930564B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69836408D1 (de) | 2006-12-28 |
KR20000016448A (ko) | 2000-03-25 |
WO1998045774A1 (en) | 1998-10-15 |
DE69836408T2 (de) | 2007-09-27 |
CN1231038A (zh) | 1999-10-06 |
EP0930564A4 (en) | 2002-11-06 |
EP0930564A1 (en) | 1999-07-21 |
EP0930564B1 (en) | 2006-11-15 |
WO1998045774A9 (fr) | 1999-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7783860B2 (en) | Load misaligned vector with permute and mask insert | |
US7724261B2 (en) | Processor having a compare extension of an instruction set architecture | |
US5001662A (en) | Method and apparatus for multi-gauge computation | |
US8332452B2 (en) | Single precision vector dot product with “word” vector write mask | |
US20060149804A1 (en) | Multiply-sum dot product instruction with mask and splat | |
JPH02289097A (ja) | 画像表示データ処理装置 | |
US6714197B1 (en) | Processor having an arithmetic extension of an instruction set architecture | |
JP3954171B2 (ja) | コンピュータにおけるスカラ値をベクトルに記入する方法 | |
JP2001520775A (ja) | 算術プロセッサ | |
TWI780116B (zh) | 用於資料處理設備、方法、電腦可讀式儲存媒體及虛擬機器的向量逐元素操作 | |
US20090015589A1 (en) | Store Misaligned Vector with Permute | |
US6732259B1 (en) | Processor having a conditional branch extension of an instruction set architecture | |
US6778188B2 (en) | Reconfigurable hardware filter for texture mapping and image processing | |
US6674435B1 (en) | Fast, symmetric, integer bezier curve to polygon conversion | |
JP3583443B2 (ja) | 演算装置および演算方法 | |
US5850227A (en) | Bit map stretching using operand routing and operation selective multimedia extension unit | |
JPH09288722A (ja) | 高性能バンド結合機能 | |
JP3723115B2 (ja) | 単一命令多重データ処理 | |
JP2001222712A (ja) | 画像処理装置、畳み込み積分回路及びその方法 | |
JPS62134763A (ja) | 3アドレス・コ−ドの指標づけ装置 | |
JP5608932B2 (ja) | 並列プロセッサ用のアドレス指定装置 | |
CA2308249C (en) | Triangle strip length maximization | |
JPH06309349A (ja) | プログラム制御のプロセッサ | |
JP3691538B2 (ja) | ベクトルデータ加算方法及びベクトルデータ乗算方法 | |
JPH03268024A (ja) | マイクロプロセッサ、情報処理装置及びそれを用いた図形表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040610 |
|
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: 20040727 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040729 |
|
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: 20070806 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100806 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110806 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110806 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120806 Year of fee payment: 8 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120806 Year of fee payment: 8 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120806 Year of fee payment: 8 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120806 Year of fee payment: 8 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120806 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |