JP3988144B2 - ベクトル処理装置、及び、追い越し制御回路 - Google Patents
ベクトル処理装置、及び、追い越し制御回路 Download PDFInfo
- Publication number
- JP3988144B2 JP3988144B2 JP2004047066A JP2004047066A JP3988144B2 JP 3988144 B2 JP3988144 B2 JP 3988144B2 JP 2004047066 A JP2004047066 A JP 2004047066A JP 2004047066 A JP2004047066 A JP 2004047066A JP 3988144 B2 JP3988144 B2 JP 3988144B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- vector
- store
- load
- collection
- 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 - Fee Related
Links
- 239000013598 vector Substances 0.000 title claims description 1355
- 238000012545 processing Methods 0.000 title claims description 173
- 230000004044 response Effects 0.000 claims description 13
- 238000009792 diffusion process Methods 0.000 description 126
- 238000002360 preparation method Methods 0.000 description 41
- 238000012546 transfer Methods 0.000 description 24
- 238000012790 confirmation Methods 0.000 description 17
- 238000000034 method Methods 0.000 description 8
- 230000000644 propagated effect Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B28—WORKING CEMENT, CLAY, OR STONE
- B28D—WORKING STONE OR STONE-LIKE MATERIALS
- B28D1/00—Working stone or stone-like materials, e.g. brick, concrete or glass, not provided for elsewhere; Machines, devices, tools therefor
- B28D1/14—Working stone or stone-like materials, e.g. brick, concrete or glass, not provided for elsewhere; Machines, devices, tools therefor by boring or drilling
- B28D1/146—Tools therefor
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23B—TURNING; BORING
- B23B47/00—Constructional features of components specially designed for boring or drilling machines; Accessories therefor
- B23B47/34—Arrangements for removing chips out of the holes made; Chip- breaking arrangements attached to the tool
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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, look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- 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, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
Description
第1格納部(61)は、入力命令として第1命令を格納する。
第2格納部(61)は、入力命令として第1命令の後の第2命令を格納する。第1命令と第2命令はベクトルロード命令以外の命令である。
ベクトルロード命令格納部(22)は、入力命令として第2命令の後の第3命令であるベクトルロード命令(VLD1)を格納する。ベクトルロード命令格納部(22)はベクトルロード命令(VLD1)を格納したときにベクトルロード命令有効フラグを設定する。
アドレス領域格納部(55、56)は、第1命令と第2命令との少なくとも1つがベクトルストア命令である場合、ベクトルストア命令に関連するアドレス領域を格納する。
アドレス領域判定部(57、58、10)は、ベクトルロード命令格納部(22)に格納されたベクトルロード命令(VLD1)に関連するアドレス領域とアドレス領域格納部(55、56)に格納されたベクトルストア命令に関連するアドレス領域との少なくとも一部が一致するか否かを示す判定結果を出力する。
出力命令判定部(14)は、アドレス領域判定部(57、58、10)からの判定結果がベクトルロード命令(VLD1)に関連するアドレス領域とベクトルストア命令に関連するアドレス領域とが一致しないことを示し、ベクトルロード命令格納部(22)にベクトルロード命令有効フラグが設定されている場合、追い越し許可信号を出力する。
出力選択部(15)は、追い越し許可信号に応じて、ベクトルロード命令(VLD1)と第1命令と第2命令との順に、ベクトルロード命令(VLD1)と第1命令と第2命令とを出力命令として命令実行部(3)に出力する。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトルストア命令(VST1)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトルストア命令(VST1)とが命令実行部3に転送されるのを待つ必要がない。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とが命令実行部3に転送されるのを待つ必要がない。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトルストア命令(VST2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトルストア命令(VST2)とが命令実行部3に転送されるのを待つ必要がない。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
第4格納部(61)は、入力命令として第1命令と第2命令との間の第4命令を格納する。
出力選択部(15)は、追い越し許可信号に応じて、ベクトルロード命令(VLD1)と第1命令と第4命令と第2命令との順に、ベクトルロード命令(VLD1)と第1命令と第4命令と第2命令とを出力命令として命令実行部(3)に出力する。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトルストア命令(VST2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とベクトルストア命令(VST2)とが命令実行部3に転送されるのを待つ必要がない。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトルストア命令(VST2)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトルストア命令(VST2)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
第4格納部(61)は、入力命令として第1命令と第2命令との間の第4命令を格納する。
第5格納部(61)は、入力命令として第2命令とベクトルロード命令(VLD1)との間の第5命令を格納する。
出力選択部(15)は、追い越し許可信号に応じて、ベクトルロード命令(VLD1)と第1命令と第4命令と第2命令と第5命令との順に、ベクトルロード命令(VLD1)と第1命令と第4命令と第2命令と第5命令とを出力命令として命令実行部(3)に出力する。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトルストア命令(VST2)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とベクトルストア命令(VST2)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
ベクトル命令(ベクトルロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を実行するために必要なデータはアドレス、リストアドレスおよびストアデータであるが、このうちアドレスを準備するまでの時間は、リストアドレスおよびストアデータに比べて短い。
ベクトルロード命令に必要なデータは、アドレスであり、ベクトルロード命令における準備時間は、他の命令における準備時間に比べて短い。
ベクトルストア命令に必要なデータは、アドレスおよびストアデータであり、ベクトルストア命令における準備時間は、他の命令における準備時間に比べて長い。
ベクトル収集命令に必要なデータは、リストアドレスであり、ベクトル収集命令における準備時間は、他の命令における準備時間に比べて長い。
ベクトル拡散命令に必要なデータは、リストアドレスおよびストアデータであり、ベクトル拡散命令における準備時間は、他の命令における準備時間に比べて長い。
ベクトル収集命令とは、間接アドレス(リストベクトル)を用いたベクトルロード命令である。言い換えると、ベクトル収集命令とはメモリアドレスにベクトルレジスタの内容を使用してロードを行うベクトル命令である。
ベクトル拡散命令とは、間接アドレス(リストベクトル)を用いたベクトルストア命令である。言い換えると、ベクトル拡散命令とはメモリアドレスにベクトルレジスタの内容を使用してストアを行うベクトル命令である。
ケ−ス1とは、後続のベクトルロード命令が先行のベクトル収集命令を追い越す場合をいう。
ケ−ス2とは、後続のベクトルロード命令が先行のベクトルストア命令を追い越す場合をいう。
ケ−ス3とは、後続のベクトル収集命令が先行のベクトルロード命令を追い越す場合をいう。
ケ−ス4とは、後続のベクトルストア命令が先行のベクトルロード命令を追い越す場合をいう。
一方、ケ−ス3およびケ−ス4の組み合わせについては、上述したように、準備時間の観点から追い越しの効果が少ないと考えられる。
これより、メモリアクセスに必要な処理時間を短縮できる命令の組み合わせは、ケ−ス1およびケ−ス2の組み合わせであり、ベクトルロード命令がベクトル収集命令およびベクトルストア命令を追い越す制御を実現することにより性能向上を図ることができる。
このため、本発明のベクトル処理装置におけるメモリアクセスでは、ベクトルロード命令がベクトル収集命令およびベクトルストア命令を追い越す制御を行う。
条件1とは、先行命令としてベクトルストア命令が存在し、かつベクトルロード命令がアクセスするアドレス領域とベクトルストア命令がアクセスするアドレス領域との少なくとも一部が重なる(一致する)場合をいう。
条件2とは、先行命令としてベクトル拡散命令が存在する場合をいう。
ベクトルロード命令がベクトルストア命令を追い越すためには、ベクトルロード命令がアクセスするアドレス領域とベクトルストア命令がアクセスするアドレス領域が重なるかどうかを確認し、重ならない場合のみ、ベクトルロード命令がベクトルストア命令を追い越すことが好ましい。
条件2については、ベクトル拡散命令がストア命令であるため、ベクトル拡散命令がアクセスした領域のデータをベクトルロード命令がロードする場合については、ベクトルロード命令とベクトル拡散命令の順番を入れ替えて実行すると、順番入れ替えない場合と比べると結果が異なる場合がある。
ベクトル拡散命令はリストアドレスを用いたアクセスであるため、ベクトル拡散命令がアクセスするアドレス領域を特定することは困難である。このため、本発明のベクトル処理装置におけるメモリアクセスでは、先行命令としてベクトル拡散命令が存在する場合は追い越しを行わない。
なお、先行命令としてベクトル収集命令が存在する場合については、ベクトルロード命令およびベクトル収集命令ともにロード命令であるため、メモリ上のデータを書き換えることがない。このため、ベクトルロード命令とベクトル収集命令の順番を入れ替えて実行してもロードされるデータは変わらないので、適時ベクトルロード命令がベクトル収集命令を追い越すことが可能である。
追い越し制御回路1、命令発行部2、命令実行部3、ストアデータ・アドレスデータ準備部4は外部からのクロック(システムクロック)に同期して動作する。命令発行部2は、システムクロックに同期して、入力命令としてベクトル命令(ベクトルロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を追い越し制御回路1に出力(転送)する。追い越し制御回路1は、入力命令に応じて出力命令を出力する。命令実行部3は、出力命令に従って主記憶メモリ200をアクセスする。出力命令については後述する。
命令発行部2は、ベクトルストア命令を追い越し制御回路1に転送したとき、ベクトルストア命令を転送した旨を表すベクトルストア命令転送情報をストアデータ・アドレスデータ準備部4に出力する。ストアデータ・アドレスデータ準備部4は、命令発行部2からのベクトルストア命令転送情報を受けて、所定時間が経過した後にシステムクロックに同期して、ベクトルストア命令に対応するストアデータを追い越し制御回路1に出力(転送)する。
命令発行部2は、ベクトル拡散命令を追い越し制御回路1に転送したとき、ベクトル拡散命令を転送した旨を表すベクトル拡散命令転送情報をストアデータ・アドレスデータ準備部4に出力する。ストアデータ・アドレスデータ準備部4は、命令発行部2からのベクトル拡散命令転送情報を受けて、所定時間が経過した後にシステムクロックに同期して、ベクトル拡散命令に対応するリストアドレスとストアデータとを追い越し制御回路1に出力(転送)する。
命令発行部2がベクトル命令を追い越し制御回路1に転送するタイミングは、本発明のベクトル処理装置の設計により決まる。ストアデータ・アドレスデータ準備部4がリストアドレス、ストアデータを追い越し制御回路1に転送するタイミングは、本発明のベクトル処理装置の設計とベクトル命令転送情報とにより決まる。
ベクトルロード命令デコ−ダ20は、命令発行部2から送られるベクトル命令を解析し、そのベクトル命令がベクトルロード命令である場合は、ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグをセットし、同時にベクトルロード命令レジスタ22にベクトルロード命令をデータとして格納する。
ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60は、命令発行部2から転送されたベクトル命令を解析し、そのベクトル命令がベクトル収集命令、ベクトルストア命令、ベクトル拡散命令である場合はその命令をデータとしてベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納する。ベクトル収集/ベクトルストア/ベクトル拡散命令格納部61はFIFO制御を行うことにより、格納された命令を格納された順番で出力する。
ベクトル収集命令デコ−ダ30は、命令発行部2から転送されたベクトル命令を解析し、そのベクトル命令がベクトル収集命令である場合は、上段ベクトル収集命令有効フラグ格納部31にベクトル収集命令有効フラグ(ステ−ジ1−#1)をセットする。ベクトル収集命令有効フラグ(ステ−ジ1−#1)は、システムクロックに同期して、ベクトル収集命令有効フラグ(ステ−ジ2−#1)として下段ベクトル収集命令有効フラグ格納部32に伝播される。
ベクトル収集命令デコ−ダ30は、次に命令発行部2から転送されたベクトル命令がベクトル収集命令である場合は、上段ベクトル収集命令有効フラグ格納部33にベクトル収集命令有効フラグ(ステ−ジ1−#2)をセットする。ベクトル収集命令有効フラグ(ステ−ジ1−#2)は、システムクロックに同期して、ベクトル収集命令有効フラグ(ステ−ジ2−#2)として下段ベクトル収集命令有効フラグ格納部34に伝播される。
ベクトル収集命令有効フラグは、ベクトル収集命令と他の命令の順序を決定するために使用する情報であり、ベクトル収集命令の存在を示す情報でもある。ベクトル収集命令については、上記のベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納されている。
ベクトル拡散命令デコ−ダ40は、命令発行部2から転送されたベクトル命令を解析し、そのベクトル命令がベクトル拡散命令である場合は、上段ベクトル拡散命令有効フラグ格納部41にベクトル拡散命令有効フラグ(ステ−ジ1−#1)をセットする。ベクトル拡散命令有効フラグ(ステ−ジ1−#1)は、システムクロックに同期して、ベクトル拡散命令有効フラグ(ステ−ジ2−#1)として下段ベクトル拡散命令有効フラグ格納部42に伝播される。
ベクトル拡散命令デコ−ダ40は、次に命令発行部2から転送されたベクトル命令がベクトル拡散命令である場合は、上段ベクトル拡散命令有効フラグ格納部43にベクトル拡散命令有効フラグ(ステ−ジ1−#2)をセットする。ベクトル拡散命令有効フラグ(ステ−ジ1−#2)は、システムクロックに同期して、ベクトル拡散命令有効フラグ(ステ−ジ2−#2)として下段ベクトル拡散命令有効フラグ格納部44に伝播される。
ベクトル拡散命令有効フラグは、ベクトル拡散命令と他の命令の順序を決定するために使用する情報であり、ベクトル拡散命令の存在を示す情報でもある。ベクトル拡散命令については、上記のベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納されている。
ベクトルストア命令デコ−ダ50は、命令発行部2から転送されたベクトル命令を解析し、そのベクトル命令がベクトルストア命令である場合は、上段ベクトルストア命令有効フラグ格納部51にベクトルストア命令有効フラグ(ステ−ジ1−#1)をセットし、同時にベクトルストア命令アドレス格納レジスタ55にベクトルストア命令に関連するアドレス領域(#1)を格納する。ベクトルストア命令有効フラグ(ステ−ジ1−#1)は、システムクロックに同期して、ベクトルストア命令有効フラグ(ステ−ジ2−#1)として下段ベクトルストア命令有効フラグ格納部52に伝播される。
ベクトルストア命令デコ−ダ50は、次に命令発行部2から転送されたベクトル命令がベクトルストア命令である場合は、上段ベクトルストア命令有効フラグ格納部52にベクトルストア命令有効フラグ(ステ−ジ1−#2)をセットし、同時にベクトルストア命令アドレス格納レジスタ56にベクトルストア命令に関連するアドレス領域(#2)を格納する。ベクトルストア命令有効フラグ(ステ−ジ1−#2)は、システムクロックに同期して、ベクトルストア命令有効フラグ(ステ−ジ2−#2)として下段ベクトルストア命令有効フラグ格納部54に伝播される。
ベクトル拡散命令有効フラグは、ベクトル拡散命令と他の命令の順序を決定するために使用する情報であり、ベクトルストア命令についてはベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納されている。
アドレス領域判定部57は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ55に格納されているアドレス領域(#1)とが重なる場合、ベクトルストア命令追い越し禁止情報を照合結果として出力する。ベクトルストア命令追い越し禁止情報は、ベクトルロード命令がベクトルストア命令を追い越すことを禁止することを表す。
アドレス領域判定部57は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ55に格納されているアドレス領域(#1)とが重ならない場合、ベクトルストア命令追い越し許可情報を照合結果として出力する。ベクトルストア命令追い越し許可情報は、ベクトルロード命令がベクトルストア命令を追い越すことを許可することを表す。
アドレス領域判定部58は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ56に格納されているアドレス領域(#2)とが重なる場合、ベクトルストア命令追い越し禁止情報を照合結果として出力する。
アドレス領域判定部58は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ56に格納されているアドレス領域(#2)とが重ならない場合、ベクトルストア命令追い越し許可情報を照合結果として出力する。
ストアデータ・リストアドレス格納部70は、ストアデータ・アドレスデータ準備部4から転送されたストアデータ、リストアドレスをデータとして格納し、同時に、格納したストアデータ、リストアドレスが有効であることを示す有効ビットを設定する。ストアデータ・リストアドレス格納部70はFIFO制御を行うことにより、格納された命令を格納された順番で出力する。
追い越し判定部10は、ベクトルロード命令有効フラグ格納部21、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54にセットされる上記のフラグと、アドレス領域判定部57、58からの照合結果(ベクトルストア命令追い越し許可情報/ベクトルストア命令追い越し禁止情報)とに基づいて、後続のベクトルロード命令がベクトルストア命令、ベクトル拡散命令を追い越し可能か否かを判定する。
ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11は、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54にセットされる上記のフラグを監視する。ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11は、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54に上記のフラグがセットされた順序を記憶し、その順序を表す順序情報を出力する。
許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12は、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54にセットされる上記のフラグを監視し、セットされるフラグによりベクトル収集命令、ベクトル拡散命令、ベクトルストア命令が存在するか(有効であるか)否かを判定する。許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12は、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54に上記のフラグがセットされたとき、ベクトル命令有効情報を判定結果として出力する。ベクトル命令有効情報は、セットされたフラグによりベクトル命令(ベクトル収集命令、ベクトル拡散命令、ベクトルストア命令)が存在することを表す。
ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12から出力された判定結果(ベクトル命令有効情報)とストアデータ・リストアドレス格納部70から出力されたストアデータ・リストアドレス情報とに基づいて、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令を命令実行部3に転送できるか否かを判定する。
例えば、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13に、ベクトル収集命令の存在を表す判定結果が許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12から出力され、リストアドレスがストアデータ・リストアドレス格納部70から出力される。この場合、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、ベクトル収集命令確認情報を判定結果として出力する。ベクトル収集命令確認情報は、ベクトル収集命令を命令実行部3に転送可能であることを表す。
例えば、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13に、ベクトルストア命令の存在を表す判定結果が許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12から出力され、ストアデータがストアデータ・リストアドレス格納部70から出力される。この場合、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、ベクトルストア命令確認情報を判定結果として出力する。ベクトルストア命令確認情報は、ベクトルストア命令を命令実行部3に転送可能であることを表す。
例えば、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13に、ベクトル拡散命令の存在を表す判定結果が許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12から出力され、リストアドレスとストアデータとがストアデータ・リストアドレス格納部70から出力される。この場合、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、ベクトル拡散命令確認情報を判定結果として出力する。ベクトル拡散命令確認情報は、ベクトル拡散命令を命令実行部3に転送可能であることを表す。
出力命令判定部14は、追い越し判定部10からの判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果(ベクトル収集命令確認情報、ベクトルストア命令確認情報、ベクトル拡散命令確認情報)とベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグとに基づいて、命令実行部3に転送すべきベクトル命令(ベクトルロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を表す判定結果を出力命令選択部15に出力する。
出力命令選択部15は、出力命令判定部14からの判定結果に応じて、ベクトルロード命令レジスタ22に格納されたベクトルロード命令、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からのベクトル命令(ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)又は、命令発行部2からのベクトルロード命令を選択し、出力命令として命令実行部3に出力(転送)する。
出力命令判定部14は、追い越し判定部10からの判定結果とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果とベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグとに基づいて、追い越し許可信号と、第1命令出力許可信号と、第2命令出力許可信号との順に、追い越し許可信号と第1命令出力許可信号と第2命令出力許可信号とを判定結果として出力命令選択部15に出力する。
出力命令選択部15は、出力命令判定部14からの判定結果である追い越し許可信号に応じて、ベクトルロード命令レジスタ22に格納された第3命令(ベクトルロード命令)を出力命令として命令実行部3に出力(転送)する。出力命令選択部15は、出力命令判定部14からの判定結果である第1命令出力許可信号に応じて、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からの第1命令(ベクトルストア命令)を出力命令として命令実行部3に出力(転送)する。出力命令選択部15は、出力命令判定部14からの判定結果である第2命令出力許可信号に応じて、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からの第2命令(ベクトル収集命令)を出力命令として命令実行部3に出力(転送)する。
ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60は、命令発行部2からのベクトル収集命令(VGT1)をデコードし、クロックサイクルT2にて、デコ−ドされたベクトル収集命令(VGT1)をデータとしてベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納する。
ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60は、命令発行部2からのベクトルストア命令(VST1)をデコードし、クロックサイクルT5にて、デコ−ドされたベクトルストア命令(VST1)をデータとしてVGT/VST/VSC(ベクトル収集/ベクトルストア/ベクトル拡散)命令格納部61に格納する。
アドレス領域判定部57は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令(VLD1)に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ55に格納されているアドレス領域(#1)を照合し、アドレス領域が重なっていないか否かを判定する。ここで、ベクトルロード命令(VLD1)に関連するアドレス領域と、ベクトルストア命令(VST1)に関連するアドレス領域(#1)とが重ならないため、アドレス領域判定部57は、ベクトルストア命令追い越し許可情報を照合結果として出力する。
ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグがセットされ、下段ベクトルストア命令有効フラグ格納部52にベクトルストア命令有効フラグ(ステ−ジ2−#1)がセットされていてもアドレス領域判定部57からの照合結果がベクトルストア命令追い越し許可情報を表すため、追い越し判定部10は、ベクトルストア命令追い越し許可情報を判定結果として出力する。
出力命令判定部14は、追い越し判定部10からの判定結果とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果とベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグとに基づいて、ベクトルロード命令(VLD1)における追い越し許可信号を判定結果として出力命令選択部15に出力する。ここで、ベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグを出力命令判定部14が読み出したとき、ベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグがリセットされる。
このとき、出力命令判定部14は、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果およびストアデータ・リストアドレス格納部70に設定された有効ビットにより、ベクトル収集命令(VGT1)が出力可能であると判定する。
このとき、出力命令判定部14は、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果およびストアデータ・リストアドレス格納部70に設定された有効ビットにより、ベクトルストア命令(VST1)が出力可能であると判定する。
図5に示されるように、第1命令がベクトル収集命令(VGT1)であり、第2命令がベクトルストア命令(VST1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、命令実行処理(追い越し制御)を採用しないベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトルストア命令(VST1)を追い越すことが不可能である。即ち、追い越し制御を行わないと各命令は発行された順序で命令実行部3に転送される。このため、命令実行処理(追い越し制御)を採用しないベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトルストア命令(VST1)とが命令実行部3に転送されるのを待つ必要がある。
図6に示されるように、第1命令がベクトル収集命令(VGT1)であり、第2命令がベクトルストア命令(VST1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、特許文献1〜5における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)を追い越すことが可能である。しかし、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)を追い越すことは不可能である。このため、特許文献1〜5における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)が命令実行部3に転送されるのを待つ必要がある。
この場合、図7に示されるように、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)を追い越すことが可能である。このため、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とが命令実行部3に転送されるのを待つ必要がない。
図8に示されるように、命令実行処理(追い越し制御)を採用しないベクトル処理装置では、第1命令がベクトルストア命令(VST1)であり、第2命令がベクトル収集命令(VGT1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)を追い越すことが不可能である。即ち、追い越し制御を行わないと各命令は発行された順序で命令実行部3に転送される。このため、命令実行処理(追い越し制御)を採用しないベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とが命令実行部3に転送されるのを待つ必要がある。
図9に示されるように、第1命令がベクトルストア命令(VST1)であり、第2命令がベクトル収集命令(VGT1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、特許文献1〜5における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)を追い越すことが可能である。しかし、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)を追い越すことは不可能である。このため、特許文献1〜5における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)が命令実行部3に転送されるのを待つ必要がある。
この場合、図10に示されるように、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトルストア命令(VST2)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とベクトルストア命令(VST2)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
追加1とは、ベクトルロード命令が、ロード系であり、アクセスするアドレス領域が特定できる命令を表す(以下スカラ系ロード命令)。
追加2とは、ストア系であり、ストアデータが格納されていて、アクセスするアドレス領域が特定できる命令を表す(以下スカラ系ストア命令)。
図11に示される本発明のベクトル処理装置では、図1に示される本発明のベクトル処理装置と同じ構成要件については同一符号を付しており、重複する説明を割愛する。スカラ系ロード命令は、同じ領域にアクセスしているベクトルロード命令と同じであると考えられるので、ベクトルロード命令に関係する構成要素についてのみスカラ系ロード命令を考慮する。
追い越し判定部10は、ベクトルロード/スカラロード命令有効フラグ格納部81、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54にセットされるフラグと、アドレス領域判定部57、58からの照合結果(ベクトルストア命令追い越し許可情報/ベクトルストア命令追い越し禁止情報)とに基づいて、後続のベクトルロード/スカラロード命令がベクトルストア命令、ベクトル拡散命令を追い越し可能か否かを判定し、判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)を出力する。
出力命令判定部14は、追い越し判定部10からの判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果(ベクトル収集命令確認情報、ベクトルストア命令確認情報、ベクトル拡散命令確認情報)とベクトルロード/スカラロード命令有効フラグ格納部81に格納されたベクトルロード/スカラロード命令有効フラグとに基づいて、命令実行部3に転送すべきベクトル命令(ベクトルロード/スカラロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を表す判定結果を出力命令選択部15に出力する。
出力命令選択部15は、出力命令判定部14からの判定結果に応じて、ベクトルロード/スカラロード命令レジスタ82に格納されたベクトルロード/スカラロード命令、又は、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からのベクトル命令(ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を選択し、出力命令として命令実行部3に出力(転送)する。
図12に示される本発明のベクトル処理装置では、図1に示される本発明のベクトル処理装置と同じ構成要件については同一符号を付しており、重複する説明を割愛する。
また、スカラ系ストア命令はベクトル収集命令を追い越すことは不可能である。このため、下段ベクトル収集命令有効フラグ格納部32、34から追い越し判定部10にベクトル収集命令の存在を伝えるための信号線100、101を追加している。即ち、追い越し判定部10は、更に、下段ベクトル収集命令有効フラグ格納部32、34に接続されている。
先行命令としてベクトル収集命令が存在しないときは、スカラ系ストア命令はベクトルロード命令と同様に追い越しを行うことが可能である。先行命令としてベクトル収集命令が存在するときは、ベクトル収集命令が命令実行部3に転送されるまでスカラ系ストア命令は追い越しを行うことが不可能である。
追い越し判定部10は、ベクトルロード/スカラロード/スカラストア命令有効フラグ格納部91、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトルストア命令有効フラグ格納部52、54にセットされるフラグと、アドレス領域判定部57、58からの照合結果(ベクトルストア命令追い越し許可情報/ベクトルストア命令追い越し禁止情報)とに基づいて、後続のベクトルロード/スカラロード/スカラストア命令がベクトルストア命令、ベクトル拡散命令を追い越し可能か否かを判定し、判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)を出力する。
出力命令判定部14は、追い越し判定部10からの判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果(ベクトル収集命令確認情報、ベクトルストア命令確認情報、ベクトル拡散命令確認情報)とベクトルロード/スカラロード/スカラストア命令有効フラグ格納部81に格納されたベクトルロード/スカラロード/スカラストア命令有効フラグとに基づいて、命令実行部3に転送すべきベクトル命令(ベクトルロード/スカラロード/スカラストア命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を表す判定結果を出力命令選択部15に出力する。
出力命令選択部15は、出力命令判定部14からの判定結果に応じて、ベクトルロード/スカラロード/スカラストア命令レジスタ92に格納されたベクトルロード/スカラロード/スカラストア命令、又は、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からのベクトル命令(ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を選択し、出力命令として命令実行部3に出力(転送)する。
2 命令発行部
3 命令実行部
4 ストアデータ・アドレスデータ準備部
10 追い越し判定部
11 ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部
12 許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部
13 許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部
14 出力命令判定部
15 出力命令選択部
20 ベクトルロード命令デコ−ダ
21 ベクトルロード命令有効フラグ格納部
22 ベクトルロード命令レジスタ
30 ベクトル収集命令デコ−ダ
31 上段ベクトル収集命令有効フラグ格納部
32 下段ベクトル収集命令有効フラグ格納部
33 上段ベクトル収集命令有効フラグ格納部
34 下段ベクトル収集命令有効フラグ格納部
40 ベクトル拡散命令デコ−ダ
41 上段ベクトル拡散命令有効フラグ格納部
42 下段ベクトル拡散命令有効フラグ格納部
43 上段ベクトル拡散命令有効フラグ格納部
44 下段ベクトル拡散命令有効フラグ格納部
50 ベクトルストア命令デコ−ダ
51 上段ベクトルストア命令有効フラグ格納部
52 下段ベクトルストア命令有効フラグ格納部
53 上段ベクトルストア命令有効フラグ格納部
54 下段ベクトルストア命令有効フラグ格納部
55 ベクトルストア命令アドレス格納レジスタ
56 ベクトルストア命令アドレス格納レジスタ
57 アドレス領域判定部
58 アドレス領域判定部
60 ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ
61 ベクトル収集/ベクトルストア/ベクトル拡散命令格納部
70 ストアデータ・リストアドレス格納部
80 ベクトルロード/スカラロード命令デコ−ダ
81 ベクトルロード/スカラロード命令有効フラグ格納部
82 ベクトルロード/スカラロード命令レジスタ
90 ベクトルロード/スカラロード/スカラストア命令デコ−ダ
91 ベクトルロード/スカラロード/スカラストア命令有効フラグ格納部
92 ベクトルロード/スカラロード/スカラストア命令レジスタ
100、101 信号線
200 主記憶メモリ
Claims (22)
- 入力命令を出力する命令発行部と、
前記入力命令に応じて出力命令を出力する追い越し制御回路と、
主記憶メモリに接続され、前記出力命令に従って前記主記憶メモリをアクセスする命令実行部と
を具備し、
前記追い越し制御回路は、
前記入力命令として第1命令を格納する第1格納部と、
前記入力命令として前記第1命令の後の第2命令を格納する第2格納部と、前記第1命令と前記第2命令はベクトルロード命令以外の命令であり、
前記入力命令として前記第2命令の後の第3命令であるベクトルロード命令を格納するベクトルロード命令格納部と、前記ベクトルロード命令格納部はベクトルロード命令を格納したときにベクトルロード命令有効フラグを設定し、
前記第1命令と前記第2命令との少なくとも1つがベクトルストア命令である場合、前記ベクトルストア命令に関連するアドレス領域を格納するアドレス領域格納部と、
前記ベクトルロード命令格納部に格納された前記ベクトルロード命令に関連するアドレス領域と前記アドレス領域格納部に格納された前記ベクトルストア命令に関連するアドレス領域との少なくとも一部が一致するか否かを示す判定結果を出力するアドレス領域判定部と、
前記アドレス領域判定部からの判定結果が前記ベクトルロード命令に関連するアドレス領域と前記ベクトルストア命令に関連するアドレス領域とが一致しないことを示し、前記ベクトルロード命令格納部にベクトルロード命令有効フラグが設定されている場合、追い越し許可信号を出力する出力命令判定部と、
前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第2命令との順に、前記ベクトルロード命令と前記第1命令と前記第2命令とを前記出力命令として前記命令実行部に出力する出力選択部と
を具備するベクトル処理装置。 - 請求項1に記載のベクトル処理装置において、
前記第1命令はベクトル収集命令であり、
前記第2命令は前記ベクトルストア命令である
ベクトル処理装置。 - 請求項1に記載のベクトル処理装置において、
前記第1命令は前記ベクトルストア命令であり、
前記第2命令はベクトル収集命令である
ベクトル処理装置。 - 請求項1に記載のベクトル処理装置において、
前記第1命令は前記ベクトルストア命令であり、
前記第2命令は前記ベクトルストア命令である
ベクトル処理装置。 - 請求項1に記載のベクトル処理装置において、
前記第1命令はベクトル収集命令であり、
前記第2命令はベクトル収集命令である
ベクトル処理装置。 - 請求項1に記載のベクトル処理装置において、
前記追い越し制御回路は、更に、
前記入力命令として前記第1命令と前記第2命令との間の第4命令を格納する第4格納部を具備し、
前記出力選択部は、前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令との順に、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令とを前記出力命令として前記命令実行部に出力する
ベクトル処理装置。 - 請求項6に記載のベクトル処理装置において、
前記第1命令と前記第2命令は前記ベクトルストア命令であり、
前記第4命令はベクトル収集命令である
ベクトル処理装置。 - 請求項6に記載のベクトル処理装置において、
前記第1命令は前記ベクトルストア命令であり、
前記第2命令と前記第4命令はベクトル収集命令である
ベクトル処理装置。 - 請求項6に記載のベクトル処理装置において、
前記第2命令は前記ベクトルストア命令であり、
前記第1命令と前記第4命令はベクトル収集命令である
ベクトル処理装置。 - 請求項1に記載のベクトル処理装置において、
前記追い越し制御回路は、更に、
前記入力命令として前記第1命令と前記第2命令との間の第4命令を格納する第4格納部と、
前記入力命令として前記第2命令と前記ベクトルロード命令との間の第5命令を格納する第5格納部とを具備し、
前記出力選択部は、前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令と前記第5命令との順に、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令と前記第5命令とを前記出力命令として前記命令実行部に出力する
ベクトル処理装置。 - 請求項10に記載のベクトル処理装置において、
前記第1命令と前記第2命令は前記ベクトルストア命令であり、
前記第4命令と前記第5命令はベクトル収集命令である
ベクトル処理装置。 - 入力命令を出力する命令発行部と、出力命令に従って主記憶メモリをアクセスする命令実行部とに接続され、前記入力命令に応じて前記出力命令を出力する追い越し制御回路であって、
前記入力命令として第1命令を格納する第1格納部と、
前記入力命令として前記第1命令の後の第2命令を格納する第2格納部と、前記第1命令と前記第2命令はベクトルロード命令以外の命令であり、
前記入力命令として前記第2命令の後の第3命令であるベクトルロード命令を格納するベクトルロード命令格納部と、前記ベクトルロード命令格納部はベクトルロード命令を格納したときにベクトルロード命令有効フラグを設定し、
前記第1命令と前記第2命令との少なくとも1つがベクトルストア命令である場合、前記ベクトルストア命令に関連するアドレス領域を格納するアドレス領域格納部と、
前記ベクトルロード命令格納部に格納された前記ベクトルロード命令に関連するアドレス領域と前記アドレス領域格納部に格納された前記ベクトルストア命令に関連するアドレス領域との少なくとも一部が一致するか否かを示す判定結果を出力するアドレス領域判定部と、
前記アドレス領域判定部からの判定結果が前記ベクトルロード命令に関連するアドレス領域と前記ベクトルストア命令に関連するアドレス領域とが一致しないことを示し、前記ベクトルロード命令格納部にベクトルロード命令有効フラグが設定されている場合、追い越し許可信号を出力する出力命令判定部と、
前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第2命令との順に、前記ベクトルロード命令と前記第1命令と前記第2命令とを前記出力命令として前記命令実行部に出力する出力選択部と
を具備する追い越し制御回路。 - 請求項12に記載の追い越し制御回路において、
前記第1命令はベクトル収集命令であり、
前記第2命令は前記ベクトルストア命令である
追い越し制御回路。 - 請求項12に記載の追い越し制御回路において、
前記第1命令は前記ベクトルストア命令であり、
前記第2命令はベクトル収集命令である
追い越し制御回路。 - 請求項12に記載の追い越し制御回路において、
前記第1命令は前記ベクトルストア命令であり、
前記第2命令は前記ベクトルストア命令である
追い越し制御回路。 - 請求項12に記載の追い越し制御回路において、
前記第1命令はベクトル収集命令であり、
前記第2命令はベクトル収集命令である
追い越し制御回路。 - 請求項12に記載の追い越し制御回路において、
更に、
前記入力命令として前記第1命令と前記第2命令との間の第4命令を格納する第4格納部を具備し、
前記出力選択部は、前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令との順に、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令とを前記出力命令として前記命令実行部に出力する
追い越し制御回路。 - 請求項17に記載の追い越し制御回路において、
前記第1命令と前記第2命令は前記ベクトルストア命令であり、
前記第4命令はベクトル収集命令である
追い越し制御回路。 - 請求項17に記載の追い越し制御回路において、
前記第1命令は前記ベクトルストア命令であり、
前記第2命令と前記第4命令はベクトル収集命令である
追い越し制御回路。 - 請求項17に記載の追い越し制御回路において、
前記第2命令は前記ベクトルストア命令であり、
前記第1命令と前記第4命令はベクトル収集命令である
追い越し制御回路。 - 請求項12に記載の追い越し制御回路において、
更に、
前記入力命令として前記第1命令と前記第2命令との間の第4命令を格納する第4格納部と、
前記入力命令として前記第2命令と前記ベクトルロード命令との間の第5命令を格納する第5格納部とを具備し、
前記出力選択部は、前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令と前記第5命令との順に、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令と前記第5命令とを前記出力命令として前記命令実行部に出力する
追い越し制御回路。 - 請求項21に記載の追い越し制御回路において、
前記第1命令と前記第2命令は前記ベクトルストア命令であり、
前記第4命令と前記第5命令はベクトル収集命令である
追い越し制御回路。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004047066A JP3988144B2 (ja) | 2004-02-23 | 2004-02-23 | ベクトル処理装置、及び、追い越し制御回路 |
CA002497807A CA2497807A1 (en) | 2004-02-23 | 2005-02-22 | Vector processing apparatus with overtaking function |
EP05003907A EP1569091A3 (en) | 2004-02-23 | 2005-02-23 | Vector processing apparatus with instruction re-ordering |
AU2005200812A AU2005200812A1 (en) | 2004-02-23 | 2005-02-23 | Vector processing apparatus with overtaking function |
BR0501160-4A BRPI0501160A (pt) | 2004-02-23 | 2005-02-23 | Aparelho processador de vetores |
US11/062,561 US7526629B2 (en) | 2004-02-23 | 2005-02-23 | Vector processing apparatus with overtaking function to change instruction execution order |
KR1020050014924A KR100636759B1 (ko) | 2004-02-23 | 2005-02-23 | 추월 기능을 갖춘 벡터 처리 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004047066A JP3988144B2 (ja) | 2004-02-23 | 2004-02-23 | ベクトル処理装置、及び、追い越し制御回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005235135A JP2005235135A (ja) | 2005-09-02 |
JP3988144B2 true JP3988144B2 (ja) | 2007-10-10 |
Family
ID=34747424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004047066A Expired - Fee Related JP3988144B2 (ja) | 2004-02-23 | 2004-02-23 | ベクトル処理装置、及び、追い越し制御回路 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7526629B2 (ja) |
EP (1) | EP1569091A3 (ja) |
JP (1) | JP3988144B2 (ja) |
KR (1) | KR100636759B1 (ja) |
AU (1) | AU2005200812A1 (ja) |
BR (1) | BRPI0501160A (ja) |
CA (1) | CA2497807A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495602B2 (en) * | 2007-09-28 | 2013-07-23 | Qualcomm Incorporated | Shader compile system and method |
JP5573134B2 (ja) * | 2009-12-04 | 2014-08-20 | 日本電気株式会社 | ベクトル型計算機及びベクトル型計算機の命令制御方法 |
JP5585304B2 (ja) * | 2010-08-25 | 2014-09-10 | 日本電気株式会社 | データ処理装置、メモリアクセス制御方法及びメモリアクセス制御プログラム |
JP5630281B2 (ja) * | 2011-01-19 | 2014-11-26 | 日本電気株式会社 | ベクトル命令制御回路及びリストベクトルの追い越し制御方法 |
JP5732953B2 (ja) * | 2011-03-24 | 2015-06-10 | 日本電気株式会社 | ベクトル処理装置、ベクトル処理方法、及び、プログラム |
US8521705B2 (en) * | 2011-07-11 | 2013-08-27 | Dell Products L.P. | Accelerated deduplication |
US9021233B2 (en) * | 2011-09-28 | 2015-04-28 | Arm Limited | Interleaving data accesses issued in response to vector access instructions |
CN108241504A (zh) | 2011-12-23 | 2018-07-03 | 英特尔公司 | 经改进的提取指令的装置和方法 |
CN107220029B (zh) | 2011-12-23 | 2020-10-27 | 英特尔公司 | 掩码置换指令的装置和方法 |
WO2013095620A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method of improved insert instructions |
CN107391086B (zh) | 2011-12-23 | 2020-12-08 | 英特尔公司 | 改进置换指令的装置和方法 |
US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
US20130173886A1 (en) * | 2012-01-04 | 2013-07-04 | Qualcomm Incorporated | Processor with Hazard Tracking Employing Register Range Compares |
WO2013180738A1 (en) | 2012-06-02 | 2013-12-05 | Intel Corporation | Scatter using index array and finite state machine |
US8972697B2 (en) * | 2012-06-02 | 2015-03-03 | Intel Corporation | Gather using index array and finite state machine |
US9098265B2 (en) * | 2012-07-11 | 2015-08-04 | Arm Limited | Controlling an order for processing data elements during vector processing |
JP6256088B2 (ja) * | 2014-02-20 | 2018-01-10 | 日本電気株式会社 | ベクトルプロセッサ、情報処理装置および追い越し制御方法 |
US9891914B2 (en) * | 2015-04-10 | 2018-02-13 | Intel Corporation | Method and apparatus for performing an efficient scatter |
CN108595371B (zh) * | 2016-01-20 | 2019-11-19 | 北京中科寒武纪科技有限公司 | 用于向量运算的数据读取、写入及读写调度器及保留站 |
GB2554096B (en) * | 2016-09-20 | 2019-03-20 | Advanced Risc Mach Ltd | Handling of inter-element address hazards for vector instructions |
US10474461B2 (en) * | 2016-09-22 | 2019-11-12 | Qualcomm Incorporated | Instruction-based synchronization of operations including at least one SIMD scatter operation |
US11093438B2 (en) * | 2019-01-07 | 2021-08-17 | International Business Machines Corporation | Pipelining multi-directional reduction |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4722049A (en) * | 1985-10-11 | 1988-01-26 | Unisys Corporation | Apparatus for out-of-order program execution |
JPH0810451B2 (ja) | 1989-03-28 | 1996-01-31 | 日本電気株式会社 | 情報処理装置 |
JPH04369773A (ja) | 1991-06-19 | 1992-12-22 | Nec Corp | 情報処理装置 |
JPH0812661A (ja) | 1994-07-01 | 1996-01-16 | Tokuyama Corp | 2−オキセタノンの精製方法 |
JPH09231203A (ja) | 1996-02-27 | 1997-09-05 | Kofu Nippon Denki Kk | ベクトルストア追い越し制御回路 |
US5941980A (en) * | 1996-08-05 | 1999-08-24 | Industrial Technology Research Institute | Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system |
JPH10269199A (ja) | 1997-03-24 | 1998-10-09 | Kofu Nippon Denki Kk | 命令追い越し処理回路 |
US6212622B1 (en) | 1998-08-24 | 2001-04-03 | Advanced Micro Devices, Inc. | Mechanism for load block on store address generation |
JP2000259609A (ja) | 1999-03-12 | 2000-09-22 | Hitachi Ltd | データ処理プロセッサおよびシステム |
JP3826648B2 (ja) | 2000-01-13 | 2006-09-27 | 日本電気株式会社 | バウンダリ実行制御装置及びバウンダリ制御方法 |
JP3698027B2 (ja) | 2000-07-19 | 2005-09-21 | 日本電気株式会社 | ベクトル収集・拡散命令実行順序制御装置 |
US6880073B2 (en) * | 2000-12-28 | 2005-04-12 | International Business Machines Corporation | Speculative execution of instructions and processes before completion of preceding barrier operations |
JP3789315B2 (ja) | 2001-04-03 | 2006-06-21 | エヌイーシーコンピュータテクノ株式会社 | ベクトルギャザー命令追い越し回路 |
JP3789320B2 (ja) | 2001-06-12 | 2006-06-21 | エヌイーシーコンピュータテクノ株式会社 | ベクトル処理装置及び該装置を用いた追い越し制御方法 |
JP4050226B2 (ja) | 2001-06-26 | 2008-02-20 | サン・マイクロシステムズ・インコーポレイテッド | マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用 |
-
2004
- 2004-02-23 JP JP2004047066A patent/JP3988144B2/ja not_active Expired - Fee Related
-
2005
- 2005-02-22 CA CA002497807A patent/CA2497807A1/en not_active Abandoned
- 2005-02-23 AU AU2005200812A patent/AU2005200812A1/en not_active Abandoned
- 2005-02-23 BR BR0501160-4A patent/BRPI0501160A/pt not_active IP Right Cessation
- 2005-02-23 US US11/062,561 patent/US7526629B2/en active Active
- 2005-02-23 KR KR1020050014924A patent/KR100636759B1/ko not_active IP Right Cessation
- 2005-02-23 EP EP05003907A patent/EP1569091A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CA2497807A1 (en) | 2005-08-23 |
BRPI0501160A (pt) | 2005-10-18 |
AU2005200812A1 (en) | 2005-09-08 |
JP2005235135A (ja) | 2005-09-02 |
KR100636759B1 (ko) | 2006-10-20 |
US7526629B2 (en) | 2009-04-28 |
EP1569091A3 (en) | 2008-01-16 |
EP1569091A2 (en) | 2005-08-31 |
US20050188178A1 (en) | 2005-08-25 |
KR20060043130A (ko) | 2006-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3988144B2 (ja) | ベクトル処理装置、及び、追い越し制御回路 | |
US8082420B2 (en) | Method and apparatus for executing instructions | |
JP2004234642A (ja) | 命令実行ユニットのための統合化構造のレイアウト | |
JP6005392B2 (ja) | ルーティングのための方法及び装置 | |
US20050223204A1 (en) | Data processing apparatus adopting pipeline processing system and data processing method used in the same | |
US20060218124A1 (en) | Performance of a data processing apparatus | |
US6701425B1 (en) | Memory access address comparison of load and store queques | |
US6496924B2 (en) | Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline | |
US7685351B2 (en) | External device access apparatus | |
WO1996027833A1 (fr) | Unite de traitement informatique | |
US8117425B2 (en) | Multithread processor and method of synchronization operations among threads to be used in same | |
JP4985452B2 (ja) | ベクトル処理装置 | |
US20140331025A1 (en) | Reconfigurable processor and operation method thereof | |
WO2009098737A1 (ja) | 外部デバイスアクセス装置、その制御方法及びシステムlsi | |
US6769049B1 (en) | Memory access in a computer system having parallel execution pipelines | |
US20090031118A1 (en) | Apparatus and method for controlling order of instruction | |
US7143247B1 (en) | Method and apparatus for parallel execution pipeline data storage in a computer memory | |
JP2000181707A (ja) | 命令制御装置及びその方法 | |
KR20150081148A (ko) | 프로세서 및 프로세서 제어 방법 | |
US20080195805A1 (en) | Micro Controller Unit System Including Flash Memory and Method of Accessing the Flash Memory By the Micro Controller Unit | |
US6775735B2 (en) | Instruction pair detection and pseudo ports for cache array | |
US20070288675A1 (en) | Bus system, bus slave and bus control method | |
US20030074532A1 (en) | Instruction pair detection and pseudo ports for cache array | |
JPH03218524A (ja) | 命令処理装置 | |
JP2005135123A (ja) | マイクロプロセッサでのパイプライン制御機能検証の方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070327 |
|
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: 20070622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070705 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100727 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3988144 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: 20110727 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110727 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120727 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120727 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130727 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |