JP2015522196A - ベクトル処理中のデータ要素処理のための順序制御 - Google Patents
ベクトル処理中のデータ要素処理のための順序制御 Download PDFInfo
- Publication number
- JP2015522196A JP2015522196A JP2015521057A JP2015521057A JP2015522196A JP 2015522196 A JP2015522196 A JP 2015522196A JP 2015521057 A JP2015521057 A JP 2015521057A JP 2015521057 A JP2015521057 A JP 2015521057A JP 2015522196 A JP2015522196 A JP 2015522196A
- Authority
- JP
- Japan
- Prior art keywords
- data
- vector
- register
- instruction
- elements
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000013598 vector Substances 0.000 title claims abstract description 322
- 238000012545 processing Methods 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000005192 partition Methods 0.000 claims description 116
- 230000004044 response Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 7
- 230000002040 relaxant effect Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 238000005457 optimization Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 8
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
- G06F8/4451—Avoiding pipeline stalls
-
- 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/30018—Bit or string instructions
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
処理されているベクトルを記憶するための複数のレジスタを備えるレジスタ・バンクと、
ベクトル命令のストリームを処理するためのパイプライン化プロセッサとを備え、
パイプライン化プロセッサは、ベクトル命令のストリームによって処理され、複数のレジスタに記憶されるベクトルのためのデータ依存性を検出し、且つレジスタ・データ・ハザードが生じないようにベクトル命令のための実行のタイミングに関する制約を決定するように構成される回路を備え、レジスタ・データ・ハザードは、命令ストリーム内で後に生じるアクセスが、その命令ストリームにおいて先に生じているアクセスが完了する前に開始するように、そのうちの少なくとも一方が書込みである、同じレジスタへの2つのアクセスが、命令ストリームの順序と異なる順序において生じる場合に生じ、
パイプライン化プロセッサは、データ依存性が識別されたベクトル内のデータ要素のうちの少なくとも幾つかに関して、そのデータ要素の少なくとも幾つかの場合にそれぞれ、そのベクトルに対して識別されたデータ依存性があるか否かを判断し、データ依存性がない場合には、そのデータ要素を処理する命令のための実行のタイミングに関する決定された制約を緩和するように構成されるデータ要素ハザード判断回路を備える。
ベクトル命令のストリームによって処理され、複数のレジスタ内に記憶されるベクトルのためのデータ依存性を検出することであって、レジスタ・データ・ハザードが生じないように、ベクトル命令のための実行のタイミングに関する制約を決定し、レジスタ・データ・ハザードは、命令ストリーム内で後に生じるアクセスが、その命令ストリーム内で先に生じているアクセスが完了する前に開始するように、そのうちの少なくとも一方が書込みである、同じレジスタへの2つのアクセスが、命令ストリームの順序と異なる順序において生じる場合に生じる、検出することと、
データ依存性が識別されたベクトル内のデータ要素の少なくとも幾つかのデータ要素に関して、データ要素のうちの少なくとも幾つかのデータ要素の場合にそれぞれ、そのベクトルに対して識別されたデータ依存性があるか否かを判断することと、データ依存性がない場合には、
データ要素を処理する命令のための実行のタイミングに関して決定された制約を緩和することとを含む。
複数のベクトル命令を解析することと、
複数のベクトル命令によって処理されるベクトルのためのデータ依存性を検出することであって、レジスタ・データ・ハザードが生じないように、ベクトル命令のための実行のタイミングに関する制約を決定し、レジスタ・データ・ハザードは、命令ストリーム内で後に生じるアクセスが、その命令ストリームにおいて先に生じているアクセスが完了する前に開始するように、そのうちの少なくとも一方が書込みである、同じレジスタへの2つのアクセスが、命令ストリームの順序と異なる順序において生じる場合に生じる、検出することと、
データ依存性が識別されたベクトル内のデータ要素のうちの少なくとも幾つかのデータ要素に関して、データ要素のうちの少なくとも幾つかのデータ要素の場合にそれぞれ、そのベクトルに関して識別されたデータ依存性があるか否かを判断することと、データ依存性がない場合には、
データ要素を処理する命令のための実行のタイミングに関して決定された制約を緩和することと、
そのコンピュータ・プログラムをデータ処理システム上で実行するのに適したコードに変換することとを含む。
VPCLR
;VP=[0..0]
VPNXT V5;V5内の情報を用いて、次の区画を決定する(例示のために0..2が用いられる)。
;VP=[0..2]
VADD V0,V1,V2;V1[0..2]の要素をV2[0..2]に加算し、結果としてV0[0..2]が生成される。
;VP=[3..5]
VSUB V0,V4,V6;V4[3..5]の要素をV6[3..5]から減算し、結果としてV0[3..5]が生成され、V0[0..2]を保存する。
;VP=[6..7]
VADD V0,V8,V9;V8[6..7]の要素をV9[6..7]に加算し、結果としてV0[6..7]が生成される。
1)各ベクトル演算は、以前の演算とは異なる(重複しない)1組の要素への書込みを行う。この特性は区画の場所とは無関係であり、1つのベクトル演算が実行されるときにはいつでも当てはまり、その後、VPNXTを用いて、次の区画に移動し、その後、別のベクトル演算が実行される。この結果は、レジスタレベルにおいてRAWハザードが存在するが、要素レベルではRAWハザードは存在しないことを意味する。
2)現在の区画を超える要素は未定義であり(?で示される)、次のVPNXT及び後続のベクトル演算後まで、プログラムによって任意の特定の値を有するように信頼することはできない。これは要素レベルにおける誤ったWARハザードを排除する。
1)V0への書込みを行う3つ全てのベクトル演算は、その間に実際のハザード又は依存性が存在しないので、原理的には、並列に、又は異なる順序において実行することができる。必要とされるのは、それらの結果を単一の結果レジスタに併合することだけである。
2)同じ宛先レジスタに関与する演算を並列に、又はアウト・オブ・オーダで実行するとき、正確な例外をサポートするために、又はWAWハザードを取り扱うストールを導入するために、通常、レジスタ・リネーミングを用いる必要がある。区画内の早期の書込みは、後の要素を未定義のままにするので、この例では、レジスタ・リネーミング又はストールを使用する必要はない。全ての演算が単一の物理レジスタへの書込みを行うことができる。
1.分割ベクトル演算は宛先レジスタの先行値を現在の区画のための新たに計算された値と併合するので、このレジスタに以前にマッピングされた物理レジスタから先行値を読み出す必要がある。これは、更なる読出しポートを必要とし、ベクトル演算が部分的に順次の実施態様を有する場合には、著しい時間を要する場合がある。このコピープロセスは多くの場合に、要素ごとに何度も繰り返される。ベクトルがN個の別々の区画に分割される場合には、第1の区画の要素がN−1回コピーされることになる。
2.それは同じレジスタ上の演算間に更なる依存性を生み出す。それらが互いに素な要素集合に関して演算する場合であっても、同じレジスタ上の第1の演算がその結果を生成するまで、第2の演算は完了することができない。このシリアル化は、分割ベクトル演算を用いるプログラムにおける潜在的な並列処理を低下させる。
− Vset_first命令によって、ベクトル・レジスタV0にマッピングされる未使用の物理レジスタPが割り当てられるが、V0に以前にマッピングされた物理レジスタの内容がPにコピーされる必要がないことが指示される。
− Vset_partial命令は、V0にマッピングされた物理レジスタPの適切な要素を更新する(その命令は、未使用の物理レジスタを割り当て、レジスタの以前の内容を新たな要素値と併合する必要はない)
− Vset_last命令は、V0にマッピングされた物理レジスタPの最後の要素を更新し(再び、その命令は、未使用の物理レジスタを割り当てる必要はないか、又は古い値を併合する必要はなく)、ここでレジスタが最終的に更新されたことを指示する。
Claims (21)
- ベクトルに関する演算を実行するためのベクトル命令ストリームを処理するためのデータ処理装置であって、前記ベクトルはそれぞれ複数のデータ要素を含み、前記データ処理装置は、
処理される前記ベクトルを記憶するための複数のレジスタを備えるレジスタ・バンクと、
前記ベクトル命令ストリームを処理するためのパイプライン化プロセッサとを備え、
前記パイプライン化プロセッサは、前記ベクトル命令ストリームによって処理され、前記複数のレジスタ内に記憶される前記ベクトルのためのデータ依存性を検出し、且つレジスタ・データ・ハザードが生じないように前記ベクトル命令のための実行のタイミングに関する制約を決定するように構成され、前記レジスタ・データ・ハザードは、前記命令ストリーム内で後に生じるアクセスが、前記命令ストリーム内で先に生じるアクセスが完了する前に開始するように、少なくとも一方が書込みである、同じレジスタへの2つのアクセスが、前記命令ストリームの順序と異なる順序において生じる場合に生じ、
前記パイプライン化プロセッサはデータ要素ハザード判断回路を備え、前記データ要素ハザード判断回路は、データ依存性が識別されたベクトル内の前記データ要素の少なくとも幾つかに関して、前記データ要素の前記少なくとも幾つかの場合にそれぞれ、前記ベクトルに対して識別された前記データ依存性があるか否かを判断し、依存性がない場合には、前記データ要素を処理する命令のための実行のタイミングに関する前記決定された制約を緩和するように構成される、データ処理装置。 - 所定のアクセス順序においてベクトル内のデータ要素にアクセスするように構成され、前記データ要素ハザード判断回路は、ベクトル命令に応答してベクトル内で少なくとも1つのデータ要素が更新されることになるとき、前記ベクトル内の前記所定のアクセス順序における後続のデータ要素が、変更される場合があり、破棄することができる値を現在含むことを判断し、且つ前記後続のデータ要素のうちの少なくとも1つを更新する少なくとも1つの更なるベクトル命令に応答して、少なくとも1つの演算を、前記データ要素を更新する前記演算に対して任意の順序において実行できることを実行回路に知らせるように構成される、請求項1に記載のデータ処理装置。
- 前記ベクトルは複数の区画に分割され、各区画は少なくとも1つのデータ要素を含み、前記区画は複数のデータ要素を含み、前記複数のデータ要素は隣接するデータ要素であり、前記データ処理装置は、所定のアクセス順序においてベクトル内の前記区画にアクセスするように構成される、請求項2に記載のデータ処理装置。
- 前記データ要素ハザード判断回路は状態機械を含み、前記状態機械は、命令によってベクトルがアクセスされるのに応じて、前記ベクトル内のデータ要素によって記憶される値の状態を指示し、前記状態は、前記データ要素が、保存されることになるデータ値を記憶しているか、破棄できるデータ値を記憶しているかを指示する、請求項1から3のいずれか一項に記載のデータ処理装置。
- 前記データ要素ハザード判断回路は状態機械を含み、前記状態機械は、命令によってベクトルがアクセスされるのに応じて、前記ベクトル内のデータ要素によって記憶される値の状態を指示し、前記状態は、前記データ要素が、保存されることになるデータ値を記憶しているか、破棄できるデータ値を記憶しているかを指示し、
前記状態機械は3つの状態、すなわち、全てのデータ要素が保存されることになるデータ値を含むことを指示する未知状態と、前記ベクトル命令によって現在アクセスされている前記現在の区画に後続する全てのデータ要素を破棄することができ、他の全てのデータ要素が保存されることになることを指示するアクセス現在状態と、前記現在の区画内の全てのデータ要素と、後続の全てのデータ要素とを破棄することができ、全ての先行するデータ要素が保存されることになるデータ値を有することを指示する先行区画アクセス状態とを含む、請求項3、又は請求項3に従属するときの請求項4に記載のデータ処理装置。 - 前記命令が前記区画のうちのいずれに関して演算することになるかを制御するための複数のベクトル制御レジスタと、前記複数のベクトル制御レジスタのうちのいずれが現在の区画を指示しているかを指示する値を記憶するための記憶装置とを備え、前記記憶された値から、次の区画を指示する前記ベクトル制御レジスタのうちの1つが、前記先行する区画を指示した前記ベクトル制御レジスタと異なることを検出するのに応答して、前記状態機械は未知状態に切り替えられる、請求項5に記載のデータ処理装置。
- 前記先行区画アクセス状態は、前記データ要素ハザード判断回路に、前記現在の区画におけるベクトル演算及び先行する区画における前記ベクトル演算が任意の順序において実行できることを指示する、請求項5又は6に記載のデータ処理装置。
- 前記ベクトル命令ストリームによって処理される前記ベクトルのためのデータ依存性を検出するように構成される前記回路は、前記データ依存性を判断するときに、データ依存性がないことを指示する、前記ベクトル命令に関連付けられる注釈に応答する、請求項1から7のいずれか一項に記載のデータ処理装置。
- 前記ベクトル命令内のレジスタ識別子によって識別されたレジスタを前記レジスタ・バンク内の前記複数のレジスタのうちの1つとマッピングするためのレジスタ・リネーミング回路を更に備え、
前記データ要素ハザード判断回路が、ベクトル命令に応答してベクトル内の少なくとも1つのデータ要素が更新されることになると判断し、且つ前記ベクトル内の前記所定のアクセス順序における後続のデータ要素が、変更される場合があり、破棄することができる値を現在含むと判断するのに応答して、前記パイプライン化プロセッサは、前記ベクトル命令内の前記レジスタ識別子によって識別された前記レジスタに現在マッピングされている前記レジスタを更新するように構成される、請求項2、又は請求項2に従属するときの請求項3から8のいずれか一項に記載のデータ処理装置。 - 前記パイプライン化プロセッサは、アクセスの順序においてベクトルの第1のデータ要素が更新されることになる時点を判断し、前記ベクトルを任意の現在未使用のレジスタに書き込むことができることを指示する信号を送信するための付加回路を備える、請求項9に記載のデータ処理装置。
- 前記付加回路は、未知状態を指示する第1の状態と、アクセスされることになる前記ベクトルの第1の要素が更新されることを指示する少なくとも1つの更なる状態とを有する第1の要素状態機械を含む、請求項10に記載のデータ処理装置。
- ベクトル内のデータ要素ごとに、前記データ要素が現在、保存されるべきであるデータ値を記憶しているか、破棄できるデータ値を記憶しているかを指示する指示を与える指示子を記憶するためのデータ記憶装置を更に備え、前記要素データハザード判断回路は前記指示子記憶装置を更新するように構成される、請求項1から11のいずれか一項に記載のデータ処理装置。
- ベクトル・レジスタ要素を読み出す命令に応答して、破棄することができるデータ値を記憶するとマークされた区画内のデータ要素ごとに、前記データ要素内に現在記憶されている値の代わりに、所定の値を記憶するように構成される、請求項12に記載のデータ処理装置。
- 前記パイプライン化プロセッサは、前記ベクトル命令を発行し、実行するための発行回路及び実行回路を備え、前記発行回路は前記データ要素ハザード検出回路を備える、請求項1から13のいずれか一項に記載のデータ処理装置。
- 同期回路を備え、前記同期回路は前記実行回路によって現在処理されているデータ要素の状態を定期的に判断し、前記状態情報を前記発行回路に送信するように構成される、請求項14に記載のデータ処理装置。
- 前記ベクトルはベクトル演算によって演算されることになるデータ要素を識別するように構成されるベクトル・マスクを備え、前記データ要素ハザード判断回路は、前記ベクトル・マスクから、前記データ要素の前記少なくとも幾つかの場合にそれぞれ、前記ベクトルに関して識別された前記データ依存性があるか否かを判断し、依存性がない場合には、前記データ要素を処理する命令のための実行のタイミングに関する前記決定された制約を緩和するように構成される、請求項1から15のいずれか一項に記載のデータ処理装置。
- 前記ベクトルは、ベクトル演算によって演算されることになるベクトル区画内のデータ要素を識別するように構成される、前記ベクトルに関連付けられるベクトル・マスクを有し、前記データ処理装置は、ベクトル・マスクの制御下でベクトル区画に関する1つの演算を実行し、前記ベクトル・マスクの反転の制御下で前記ベクトル区画に関する更なる演算を実行するように構成され、前記状態機械は、前記ベクトル命令によって現在アクセスされている前記現在の区画に後続する全てのデータ要素と、前記データ区画内の前記マスクされたデータ要素とを破棄することができ、全ての他のデータ要素が保存されることを指示する、マスクアクセス現在状態を含む少なくとも1つの更なる状態を含む、請求項5、又は請求項5に従属するときの請求項6から15のいずれか一項に記載のデータ処理装置。
- データ処理装置内のベクトルに関する演算を実行するためのベクトル命令ストリームを処理する方法であって、前記ベクトルはそれぞれ複数のデータ要素を含み、前記データ処理装置内にレジスタに記憶される方法において、
前記ベクトル命令ストリームによって処理され、前記複数のレジスタ内に記憶される前記ベクトルのためのデータ依存性を検出することであって、レジスタ・データ・ハザードが生じないように、前記ベクトル命令のための実行のタイミングに関する制約を決定し、前記レジスタ・データ・ハザードは、前記命令ストリーム内で後に生じるアクセスが、前記命令ストリーム内で先に生じるアクセスが完了する前に開始するように、少なくとも一方が書込みである、同じレジスタへの2つのアクセスが、前記命令ストリームの順序と異なる順序において生じる場合に生じる、検出することと、
データ依存性が識別されたベクトル内の前記データ要素の少なくとも幾つかに関して、前記データ要素の前記少なくとも幾つかの場合にそれぞれ、前記ベクトルに対して識別された前記データ依存性があるか否かを判断することと、依存性がない場合には、
前記データ要素を処理する命令のための実行のタイミングに関する前記決定された制約を緩和することとを含む、方法。 - 所定のアクセス順序においてベクトル内のデータ要素にアクセスするように構成され、実行のタイミングに関する前記決定された制約を緩和する前記ステップは、
ベクトル命令に応答してベクトル内の少なくとも1つのデータ要素が更新されることになるときに、前記ベクトル内の前記所定のアクセス順序における後続のデータ要素が、変更される場合があり、破棄できるデータ値を現在含むことを判断することと、
前記後続のデータ要素のうちの少なくとも1つを更新する少なくとも1つの更なるベクトル命令に応答して、少なくとも1つの演算を、前記データ要素を更新する前記演算に対して任意の順序において実行できることを実行回路に知らせることとを含む、請求項18に記載の方法。 - コンピュータ・プログラムを変換する方法であって、前記コンピュータ・プログラムはベクトルに関する演算を実行するための複数のベクトル命令を含み、前記ベクトルはそれぞれ複数のデータ要素を含み、前記コンパイルする方法は、
前記複数のベクトル命令を解析することと、
前記複数のベクトル命令によって処理される前記ベクトルのためのデータ依存性を検出することであって、レジスタ・データ・ハザードが生じないように、前記ベクトル命令のための実行のタイミングに関する制約を決定し、前記レジスタ・データ・ハザードは、前記命令ストリーム内で後に生じるアクセスが、前記命令ストリーム内で先に生じるアクセスが完了する前に開始するように、少なくとも一方が書込みである、同じレジスタへの2つのアクセスが、前記命令ストリームの順序と異なる順序において生じる場合に生じる、検出することと、
データ依存性が識別されたベクトル内の前記データ要素の少なくとも幾つかに関して、前記データ要素の前記少なくとも幾つかの場合にそれぞれ、前記ベクトルに対して識別された前記データ依存性があるか否かを判断することと、依存性がない場合には、
前記データ要素を処理する命令のための実行のタイミングに関する前記決定された制約を緩和することと、
前記コンピュータ・プログラムをデータ処理システム上で実行するのに適したコードに変換することとを含む、コンピュータ・プログラムを変換する方法。 - コンピュータ上で実行されるときに、請求項20に記載の方法のステップを実行するように前記コンピュータを制御するコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/546,227 US9098265B2 (en) | 2012-07-11 | 2012-07-11 | Controlling an order for processing data elements during vector processing |
US13/546,227 | 2012-07-11 | ||
PCT/GB2013/051530 WO2014009689A2 (en) | 2012-07-11 | 2013-06-11 | Controlling an order for processing data elements during vector processing |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015522196A true JP2015522196A (ja) | 2015-08-03 |
JP2015522196A5 JP2015522196A5 (ja) | 2016-07-21 |
JP6236443B2 JP6236443B2 (ja) | 2017-11-22 |
Family
ID=48670609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015521057A Active JP6236443B2 (ja) | 2012-07-11 | 2013-06-11 | ベクトル処理中のデータ要素処理のための順序制御 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9098265B2 (ja) |
EP (1) | EP2872988B1 (ja) |
JP (1) | JP6236443B2 (ja) |
KR (1) | KR102071272B1 (ja) |
CN (1) | CN104487941B (ja) |
GB (1) | GB2517877B (ja) |
IL (1) | IL236572A (ja) |
MY (1) | MY174573A (ja) |
WO (1) | WO2014009689A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019086809A (ja) * | 2017-11-01 | 2019-06-06 | Necプラットフォームズ株式会社 | 命令制御装置、命令制御方法およびプログラム |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544214B2 (en) * | 2015-02-02 | 2023-01-03 | Optimum Semiconductor Technologies, Inc. | Monolithic vector processor configured to operate on variable length vectors using a vector length register |
GB2540940B (en) * | 2015-07-31 | 2018-01-03 | Advanced Risc Mach Ltd | An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank |
GB2543554B (en) * | 2015-10-22 | 2019-01-23 | Advanced Risc Mach Ltd | Handling exceptional conditions for vector arithmetic instruction |
CN111580866B (zh) * | 2016-01-20 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
US10762164B2 (en) | 2016-01-20 | 2020-09-01 | Cambricon Technologies Corporation Limited | Vector and matrix computing device |
GB2548601B (en) * | 2016-03-23 | 2019-02-13 | Advanced Risc Mach Ltd | Processing vector instructions |
GB2549737B (en) * | 2016-04-26 | 2019-05-08 | Advanced Risc Mach Ltd | An apparatus and method for managing address collisions when performing vector operations |
GB2552153B (en) * | 2016-07-08 | 2019-07-24 | Advanced Risc Mach Ltd | An apparatus and method for performing a rearrangement operation |
GB2552154B (en) * | 2016-07-08 | 2019-03-06 | Advanced Risc Mach Ltd | Vector register access |
EP3336692B1 (en) * | 2016-12-13 | 2020-04-29 | Arm Ltd | Replicate partition instruction |
EP3336691B1 (en) | 2016-12-13 | 2022-04-06 | ARM Limited | Replicate elements instruction |
KR102343652B1 (ko) * | 2017-05-25 | 2021-12-24 | 삼성전자주식회사 | 벡터 프로세서의 서열 정렬 방법 |
CN107291425B (zh) * | 2017-06-23 | 2020-11-24 | 上海兆芯集成电路有限公司 | 合并解决重命名尺寸问题的部分写入结果的系统和方法 |
CN108710505A (zh) * | 2018-05-18 | 2018-10-26 | 南京大学 | 一种基于fpga的可扩展稀疏矩阵向量乘处理器 |
CN110971401B (zh) * | 2019-11-19 | 2021-10-22 | 武汉大学 | 一种基于交叉互锁机制的认证密钥协商方法及其实施装置 |
US20210157598A1 (en) * | 2019-11-26 | 2021-05-27 | Advanced Micro Devices, Inc. | Register write suppression |
US11301252B2 (en) * | 2020-01-15 | 2022-04-12 | Arm Limited | Executing mutually exclusive vector instructions according to a vector predicate instruction |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6116362A (ja) * | 1984-06-13 | 1986-01-24 | Fujitsu Ltd | ベクトルプロセツサ制御処理方式 |
JPH0721154A (ja) * | 1993-06-21 | 1995-01-24 | Hitachi Ltd | ベクトル処理装置 |
JP2005234968A (ja) * | 2004-02-20 | 2005-09-02 | Seiko Epson Corp | 演算処理装置 |
JP2010218076A (ja) * | 2009-03-16 | 2010-09-30 | Nec Computertechno Ltd | ベクトル演算装置及びベクトル演算方法 |
US20120124332A1 (en) * | 2010-11-11 | 2012-05-17 | Fujitsu Limited | Vector processing circuit, command issuance control method, and processor system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6988183B1 (en) | 1998-06-26 | 2006-01-17 | Derek Chi-Lan Wong | Methods for increasing instruction-level parallelism in microprocessors and digital system |
JP3988144B2 (ja) * | 2004-02-23 | 2007-10-10 | 日本電気株式会社 | ベクトル処理装置、及び、追い越し制御回路 |
US7644255B2 (en) | 2005-01-13 | 2010-01-05 | Sony Computer Entertainment Inc. | Method and apparatus for enable/disable control of SIMD processor slices |
WO2007039837A2 (en) | 2005-09-15 | 2007-04-12 | Dharmasena Suminda Sirinath Sa | Implied instruction set computing (iisc) / dual instruction set computing (disc) / single instruction set computing (sisc) / recurring multiple instruction set computing (rmisc) based computing machine / apparatus / processor |
US7822951B2 (en) * | 2007-08-01 | 2010-10-26 | Advanced Micro Devices, Inc. | System and method of load-store forwarding |
US8356159B2 (en) | 2008-08-15 | 2013-01-15 | Apple Inc. | Break, pre-break, and remaining instructions for processing vectors |
US8214831B2 (en) | 2009-05-05 | 2012-07-03 | International Business Machines Corporation | Runtime dependence-aware scheduling using assist thread |
US9696995B2 (en) | 2009-12-30 | 2017-07-04 | International Business Machines Corporation | Parallel execution unit that extracts data parallelism at runtime |
-
2012
- 2012-07-11 US US13/546,227 patent/US9098265B2/en active Active
-
2013
- 2013-06-11 GB GB1500062.3A patent/GB2517877B/en active Active
- 2013-06-11 KR KR1020157002617A patent/KR102071272B1/ko active IP Right Grant
- 2013-06-11 WO PCT/GB2013/051530 patent/WO2014009689A2/en active Application Filing
- 2013-06-11 MY MYPI2015700010A patent/MY174573A/en unknown
- 2013-06-11 EP EP13730630.4A patent/EP2872988B1/en active Active
- 2013-06-11 CN CN201380035953.5A patent/CN104487941B/zh active Active
- 2013-06-11 JP JP2015521057A patent/JP6236443B2/ja active Active
-
2015
- 2015-01-04 IL IL236572A patent/IL236572A/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6116362A (ja) * | 1984-06-13 | 1986-01-24 | Fujitsu Ltd | ベクトルプロセツサ制御処理方式 |
JPH0721154A (ja) * | 1993-06-21 | 1995-01-24 | Hitachi Ltd | ベクトル処理装置 |
JP2005234968A (ja) * | 2004-02-20 | 2005-09-02 | Seiko Epson Corp | 演算処理装置 |
JP2010218076A (ja) * | 2009-03-16 | 2010-09-30 | Nec Computertechno Ltd | ベクトル演算装置及びベクトル演算方法 |
US20120124332A1 (en) * | 2010-11-11 | 2012-05-17 | Fujitsu Limited | Vector processing circuit, command issuance control method, and processor system |
JP2012103959A (ja) * | 2010-11-11 | 2012-05-31 | Fujitsu Ltd | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019086809A (ja) * | 2017-11-01 | 2019-06-06 | Necプラットフォームズ株式会社 | 命令制御装置、命令制御方法およびプログラム |
JP7078380B2 (ja) | 2017-11-01 | 2022-05-31 | Necプラットフォームズ株式会社 | 命令制御装置、命令制御方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
MY174573A (en) | 2020-04-27 |
WO2014009689A2 (en) | 2014-01-16 |
US20140019728A1 (en) | 2014-01-16 |
GB2517877B (en) | 2020-08-26 |
EP2872988B1 (en) | 2016-12-14 |
GB2517877A (en) | 2015-03-04 |
WO2014009689A3 (en) | 2014-03-27 |
IL236572A (en) | 2017-12-31 |
CN104487941B (zh) | 2017-09-29 |
KR102071272B1 (ko) | 2020-01-30 |
US9098265B2 (en) | 2015-08-04 |
EP2872988A2 (en) | 2015-05-20 |
IL236572A0 (en) | 2015-02-26 |
KR20150037951A (ko) | 2015-04-08 |
CN104487941A (zh) | 2015-04-01 |
JP6236443B2 (ja) | 2017-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6236443B2 (ja) | ベクトル処理中のデータ要素処理のための順序制御 | |
CN111164578B (zh) | 核内锁步模式的错误恢复 | |
JP6095670B2 (ja) | コンピュータ・システム内のオペランド活性情報の維持 | |
TWI537824B (zh) | 零循環載入 | |
US6189088B1 (en) | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location | |
US7003629B1 (en) | System and method of identifying liveness groups within traces stored in a trace cache | |
JP6942298B2 (ja) | ベクトル演算命令の例外条件処理 | |
US20050247774A1 (en) | System and method for validating a memory file that links speculative results of load operations to register values | |
KR102256188B1 (ko) | 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법 | |
US9256427B2 (en) | Tracking multiple conditions in a general purpose register and instruction therefor | |
KR102484125B1 (ko) | 벡터 처리회로를 사용한 에러 검출 | |
KR20120025492A (ko) | Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행 | |
JP2002508567A (ja) | 誤推論後の命令再実施のためのアウトオブパイプライン・トレース・バッファ | |
JP2002508568A (ja) | 不適正順序マルチスレッド実行を実行するロード命令およびストア命令を順序付けるシステム | |
KR20140131472A (ko) | 상수 저장 레지스터를 구비하는 재구성 가능 프로세서 | |
WO2013144732A1 (en) | Decode time instruction optimization for load reserve and store conditional sequences | |
KR100316710B1 (ko) | 병렬 프로세서를 위한 무순서 명령어 발행 방법 및 장치 | |
US20180300148A1 (en) | Apparatus and method for determining a recovery point from which to resume instruction execution following handling of an unexpected change in instruction flow | |
US7694110B1 (en) | System and method of implementing microcode operations as subroutines | |
JP6882320B2 (ja) | ベクトル命令の処理 | |
CN114174986A (zh) | 用于推测性向量化程序代码的装置和方法 | |
JP2010067141A (ja) | 命令発行制御装置及び命令発行制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160603 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170420 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170726 |
|
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: 20171005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171030 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6236443 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |