JP2018525735A - 動的ベクトル長のループを用いたベクトル処理 - Google Patents
動的ベクトル長のループを用いたベクトル処理 Download PDFInfo
- Publication number
- JP2018525735A JP2018525735A JP2018503592A JP2018503592A JP2018525735A JP 2018525735 A JP2018525735 A JP 2018525735A JP 2018503592 A JP2018503592 A JP 2018503592A JP 2018503592 A JP2018503592 A JP 2018503592A JP 2018525735 A JP2018525735 A JP 2018525735A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- value
- data
- variable
- vector
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 249
- 239000013598 vector Substances 0.000 title claims abstract description 246
- 230000008859 change Effects 0.000 claims abstract description 106
- 230000004044 response Effects 0.000 claims description 27
- 238000000034 method Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 14
- 230000001419 dependent effect Effects 0.000 claims description 14
- 238000003672 processing method Methods 0.000 claims description 11
- 229920006395 saturated elastomer Polymers 0.000 claims description 8
- 238000012360 testing method Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000012937 correction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/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/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
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Communication Control (AREA)
Abstract
Description
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、ベクトル処理演算を選択的に適用するための処理回路であって、
プログラム命令をデコードするための命令デコーダ回路と、
命令デコーダ回路によりデコードされた命令を実行するための命令処理回路と、
を含む処理回路
を備えるデータ処理装置であって、
命令デコーダ回路が、命令パラメータとして修正値を有するCHANGE命令に応答して、述語フラグの数および修正値に依存する量だけ変数の値を変化させるように命令処理回路を制御するようにする、データ処理装置が提供される。
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、ベクトル処理演算を選択的に適用するための手段であって、
命令をデコードするための手段と、
デコードするための手段によりデコードされた命令を実行するための手段と、
を含む適用する手段
を備えるデータ処理装置であって、
命令をデコードするための手段が、命令パラメータとして修正値を有するCHANGE命令に応答して、述語フラグの数に依存し、かつ修正値に依存する量だけ変数の値を変化させるように命令を実行するための手段を制御するようにする、データ処理装置が提供される。
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、ベクトル処理演算を選択的に適用するステップと、
命令をデコードするステップと、
命令を実行するステップと、
を備えるデータ処理方法であって、
デコードするステップが、命令パラメータとして修正値を有するCHANGE命令に応答して、述語フラグの数に依存し、かつ修正値に依存する量だけ変数の値を変化させるように実行するステップを制御するようにする、データ処理方法が提供される。
機械可読命令を含むコンピュータプログラムを実行するためのデータプロセッサを備えた仮想マシンであって、コンピュータプログラムの実行が、データプロセッサに、
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、ベクトル処理演算を選択的に適用するためのプロセッサであって、
命令をデコードするための命令デコーダと、
命令デコーダによりデコードされた命令を実行するための命令プロセッサと、
を含むプロセッサ
を備えるデータ処理装置であって、
命令デコーダが、命令パラメータとして修正値を有するCHANGE命令に応答して、述語フラグの数に依存し、かつ修正値に依存する量だけ変数の値を変化させるように命令プロセッサを制御するようにする、データ処理装置として動作させる、仮想マシンが提供される。
命令をデコードするための命令デコーダ回路と、
命令デコーダ回路によりデコードされた命令を実行するための命令処理回路と、
を備えるデータ処理装置であって、
命令デコーダ回路が、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、算術条件が制御変数に当てはまる間、ベクトル処理命令を適用するように命令処理回路を制御するよう、WHILE命令に応答し、
命令デコーダ回路が、制御変数の値をわずか飽和値まで変化させるように、関連付けられた飽和値に従って述語フラグの数に依存する量だけ制御変数の値を変化させるように命令処理回路を制御するよう、CHANGE命令に応答する、データ処理装置が提供される。
命令をデコードするための手段と、
デコードするための手段によりデコードされた命令を実行するための手段と、
を備えるデータ処理装置であって、
デコードするための手段が、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、算術条件が制御変数に当てはまる間、ベクトル処理命令を適用するように実行するための手段を制御するよう、WHILE命令に応答し、
デコードするための手段が、特定の状態に現在設定されている述語フラグの数に依存する量だけ制御変数の値を変化させるように実行するための手段を制御するよう、CHANGE命令に応答し、CHANGE命令が、CHANGE命令の実行が制御変数の値をわずか飽和値まで変化させるように動作可能なように、関連付けられた飽和値を有する、データ処理装置が提供される。
命令をデコードするステップと、
デコードするステップによりデコードされた命令を実行するステップと、
を備えるデータ処理方法であって、
デコードするステップが、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、算術条件が制御変数に当てはまる間、ベクトル処理命令を適用するように実行ステップを制御するよう、WHILE命令に応答し、
デコードするステップが、特定の状態に現在設定されている述語フラグの数に依存する量だけ制御変数の値を変化させるように実行するステップを制御するよう、CHANGE命令に応答し、CHANGE命令が、CHANGE命令の実行が制御変数の値をわずか飽和値まで変化させるように、関連付けられた飽和値を有する、データ処理方法が提供される。
命令をデコードするための命令デコーダと、
命令デコーダによりデコードされた命令を実行するための命令プロセッサと、
を備えるデータ処理装置であって、
命令デコーダが、制御変数により少なくとも部分的に定義され、複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、複数のデータアイテムに関連付けられたそれぞれの述語フラグの状態に従って、算術条件が制御変数に当てはまる間、ベクトル処理演算を適用するように命令プロセッサを制御するよう、WHILE命令に応答し、
命令デコーダが、特定の状態に現在設定されている述語フラグの数に依存する量だけ制御変数の値を変化させるように命令プロセッサを制御するよう、CHANGE命令に応答し、CHANGE命令が、CHANGE命令の実行が、実行されるとき、制御変数の値をわずか飽和値まで変化させるように、関連付けられた飽和値を有する、データ処理装置として動作させる、仮想マシンが提供される。
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、ベクトル処理演算を選択的に適用するための処理回路であって、
プログラム命令をデコードするための命令デコーダ回路と、
命令デコーダ回路によりデコードされた命令を実行するための命令処理回路と、
を含む処理回路
を備えるデータ処理装置であって、
命令デコーダ回路が、命令パラメータとして修正値を有するCHANGE命令に応答して、述語フラグの数および修正値に依存する量だけ変数の値を変化させるように命令処理回路を制御するようにする、データ処理装置を提供する。
i.カウンタ変数が、上限値未満である、
ii.カウンタ変数が、下限値より大きい、
iii.カウンタ変数が、上限値以下である、および
iv.カウンタ変数が、下限値以上である、
からなるリストから選択される条件であってもよい。
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、ベクトル処理演算を選択的に適用するための手段であって、
命令をデコードするための手段と、
デコードするための手段によりデコードされた命令を実行するための手段と、
を含む適用する手段
を備えるデータ処理装置であって、
命令をデコードするための手段が、命令パラメータとして修正値を有するCHANGE命令に応答して、述語フラグの数に依存し、かつ修正値に依存する量だけ変数の値を変化させるように命令を実行するための手段を制御するようにする、データ処理装置、を提供する。
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、ベクトル処理演算を選択的に適用するステップと、
命令をデコードするステップと、
命令を実行するステップと、
を備えるデータ処理方法であって、
デコードするステップが、命令パラメータとして修正値を有するCHANGE命令に応答して、述語フラグの数に依存し、かつ修正値に依存する量だけ変数の値を変化させるように実行するステップを制御するようにする、データ処理方法、を提供する。
機械可読命令を含むコンピュータプログラムを実行するためのデータプロセッサを備えた仮想マシンであって、コンピュータプログラムの実行が、データプロセッサに、
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、ベクトル処理演算を選択的に適用するためのプロセッサであって、
命令をデコードするための命令デコーダと、
命令デコーダによりデコードされた命令を実行するための命令プロセッサと、
を含むプロセッサ
を備えるデータ処理装置であって、
命令デコーダが、命令パラメータとして修正値を有するCHANGE命令に応答して、述語フラグの数に依存し、かつ修正値に依存する量だけ変数の値を変化させるように命令プロセッサを制御するようにする、データ処理装置として動作させる、仮想マシン、を提供する。
命令をデコードするための命令デコーダ回路と、
命令デコーダ回路によりデコードされた命令を実行するための命令処理回路と、
を備えるデータ処理装置であって、
命令デコーダ回路が、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、算術条件が制御変数に当てはまる間、ベクトル処理命令を適用するように命令処理回路を制御するよう、WHILE命令に応答し、
命令デコーダ回路が、制御変数の値をわずか飽和値まで変化させるように、関連付けられた飽和値に従って述語フラグの数に依存する量だけ制御変数の値を変化させるように命令処理回路を制御するよう、CHANGE命令に応答する、データ処理装置、を提供する。
i.制御変数が、上限値未満である、
ii.制御変数が、下限値より大きい、
iii.制御変数が、上限値以下である、および
iv.制御変数が、下限値以上である、
からなるリストから選択される条件である。
命令をデコードするための手段と、
デコードするための手段によりデコードされた命令を実行するための手段と、
を備えるデータ処理装置であって、
デコードするための手段が、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、算術条件が制御変数に当てはまる間、ベクトル処理命令を適用するように実行するための手段を制御するよう、WHILE命令に応答し、
デコードするための手段が、特定の状態に現在設定されている述語フラグの数に依存する量だけ制御変数の値を変化させるように実行するための手段を制御するよう、CHANGE命令に応答し、CHANGE命令が、CHANGE命令の実行が制御変数の値をわずか飽和値まで変化させるように動作可能なように、関連付けられた飽和値を有する、データ処理装置、を提供する。
命令をデコードするステップと、
デコードするステップによりデコードされた命令を実行するステップと、
を備えるデータ処理方法であって、
デコードするステップが、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、その位置に関連付けられたそれぞれの述語フラグの状態に従って、算術条件が制御変数に当てはまる間、ベクトル処理命令を適用するように実行ステップを制御するよう、WHILE命令に応答し、
デコードするステップが、特定の状態に現在設定されている述語フラグの数に依存する量だけ制御変数の値を変化させるように実行するステップを制御するよう、CHANGE命令に応答し、CHANGE命令が、CHANGE命令の実行が制御変数の値をわずか飽和値まで変化させるように、関連付けられた飽和値を有する、データ処理方法、を提供する。
機械可読命令を含むコンピュータプログラムを実行するためのデータプロセッサを備えた仮想マシンであって、コンピュータプログラムの実行が、データプロセッサに、
命令をデコードするための命令デコーダと、
命令デコーダによりデコードされた命令を実行するための命令プロセッサと、
を備えるデータ処理装置であって、
命令デコーダが、制御変数により少なくとも部分的に定義され、複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、複数のデータアイテムに関連付けられたそれぞれの述語フラグの状態に従って、算術条件が制御変数に当てはまる間、ベクトル処理演算を適用するように命令プロセッサを制御するよう、WHILE命令に応答し、
命令デコーダが、特定の状態に現在設定されている述語フラグの数に依存する量だけ制御変数の値を変化させるように命令プロセッサを制御するよう、CHANGE命令に応答し、CHANGE命令が、CHANGE命令の実行が、実行されるとき、制御変数の値をわずか飽和値まで変化させるように、関連付けられた飽和値を有する、データ処理装置として動作させる、仮想マシン、を提供する。
VectorA=Data[SA+i,…,SA+i+VL−1]
ここで、変数iはループ制御変数であり、変数SAはデータの連続したブロックの開始アドレスであり、変数VLは使用中の特定の処理システムに適用可能なベクトル長である。言い換えれば、この例では、アドレス(SA+i)とアドレス(SA+i+VL−1)との間であって両端を含むデータアイテムの連続した集団が、ベクトルVectorAのVL個のデータアイテムを形成する。
For i=0 to 97
Process Data [i]
Next i
・制御変数が、上限値未満である、
・制御変数が、下限値より大きい、
・制御変数が、上限値以下である、および
・制御変数が、下限値以上である、
からなるリストから選択される条件であることができる。
Claims (30)
- 命令をデコードするための命令デコーダ回路と、
前記命令デコーダ回路によりデコードされた命令を実行するための命令処理回路と、
を備えるデータ処理装置であって、
前記命令デコーダ回路が、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、前記位置に関連付けられたそれぞれの述語フラグの前記状態に従って、算術条件が前記制御変数に当てはまる間、ベクトル処理命令を適用するように前記命令処理回路を制御するよう、WHILE命令に応答し、
前記命令デコーダ回路が、前記制御変数の値をわずか飽和値まで変化させるように、関連付けられた前記飽和値に従って前記述語フラグの数に依存する量だけ前記制御変数の前記値を変化させるように前記命令処理回路を制御するよう、CHANGE命令に応答する、データ処理装置。 - 前記算術条件が、
i.前記制御変数が、上限値未満である、
ii.前記制御変数が、下限値より大きい、
iii.前記制御変数が、上限値以下である、および
iv.前記制御変数が、下限値以上である、
からなるリストから選択される条件である、請求項1に記載の装置。 - 前記述語フラグが、その状態の述語フラグに対応するデータベクトルの位置に対して前記ベクトル処理命令が適用されるべきであることを示すアクティブ状態を有する、請求項1または請求項2に記載の装置。
- 前記命令デコーダ回路が、前記アクティブ状態に設定するために選択された述語フラグの前記数を考慮に入れて、前記制御変数の値が前記算術条件に違反しないように、前記アクティブ状態に設定するために前記述語フラグの1つ以上を選択するように前記命令処理回路を制御するよう、前記WHILE命令に応答する、請求項3に記載の装置。
- 前記命令デコーダ回路が、前記述語フラグの所定の順序に従って前記アクティブ状態に設定するために前記述語フラグの1つ以上を選択するように前記命令処理回路を制御するよう、前記WHILE命令に応答する、請求項4に記載の装置。
- 前記命令デコーダ回路が、算術条件が前記制御変数に当てはまる間、処理ループを実行することを繰り返し継続するように前記命令処理回路を制御するよう、前記WHILE命令に応答する、請求項1〜5のいずれか一項に記載の装置。
- 前記命令デコーダ回路が、前記述語フラグの数に依存し、かつ前記CHANGE命令のパラメータを形成する修正値に依存する量だけ前記制御変数の前記値を変化させるように前記命令処理回路を制御するよう、前記CHANGE命令に応答する、請求項1〜6のいずれか一項に記載の装置。
- 前記CHANGE命令が、前記制御変数の前記値を低減させるためのデクリメント命令であり、
前記飽和値が、前記制御変数により表現され得る最小値である、請求項1〜7のいずれか一項に記載の装置。 - 前記CHANGE命令が、前記制御変数の前記値を増大させるためのインクリメント命令であり、
前記飽和値が、前記制御変数により表現され得る最大値である、請求項1〜7のいずれか一項に記載の装置。 - 命令をデコードするための手段と、
前記デコードするための手段によりデコードされた命令を実行するための手段と、
を備えるデータ処理装置であって、
前記デコードするための手段が、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、前記位置に関連付けられたそれぞれの述語フラグの前記状態に従って、算術条件が前記制御変数に当てはまる間、ベクトル処理命令を適用するように前記実行するための手段を制御するよう、WHILE命令に応答し、
前記デコードするための手段が、特定の状態に現在設定されている前記述語フラグの数に依存する量だけ前記制御変数の前記値を変化させるように前記実行するための手段を制御するよう、CHANGE命令に応答し、前記CHANGE命令が、前記CHANGE命令の実行が前記制御変数の前記値をわずか飽和値まで変化させるように動作可能なように、関連付けられた前記飽和値を有する、データ処理装置。 - 命令をデコードするステップと、
前記デコードするステップによりデコードされた命令を実行するステップと、
を備えるデータ処理方法であって、
前記デコードするステップが、制御変数により少なくとも部分的に定義され、そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、前記位置に関連付けられたそれぞれの述語フラグの前記状態に従って、算術条件が前記制御変数に当てはまる間、ベクトル処理命令を適用するように前記実行ステップを制御するよう、WHILE命令に応答し、
前記デコードするステップが、特定の状態に現在設定されている前記述語フラグの数に依存する量だけ前記制御変数の前記値を変化させるように前記実行するステップを制御するよう、CHANGE命令に応答し、前記CHANGE命令が、前記CHANGE命令の実行が前記制御変数の前記値をわずか飽和値まで変化させるように、関連付けられた前記飽和値を有する、データ処理方法。 - コンピュータにより実行されるとき、前記コンピュータに請求項11に記載の方法を行わせるコンピュータソフトウェア。
- 請求項12に記載のコンピュータソフトウェアを記憶する非一時的な機械可読記憶媒体。
- 機械可読命令を含むコンピュータプログラムを実行するためのデータプロセッサを備えた仮想マシンであって、前記コンピュータプログラムの実行が、前記データプロセッサに、
命令をデコードするための命令デコーダと、
前記命令デコーダによりデコードされた命令を実行するための命令プロセッサと、
を備えるデータ処理装置であって、
前記命令デコーダが、制御変数により少なくとも部分的に定義され、複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、前記複数のデータアイテムに関連付けられたそれぞれの述語フラグの前記状態に従って、算術条件が前記制御変数に当てはまる間、ベクトル処理演算を適用するように前記命令プロセッサを制御するよう、WHILE命令に応答し、
前記命令デコーダが、特定の状態に現在設定されている前記述語フラグの数に依存する量だけ前記制御変数の前記値を変化させるように前記命令プロセッサを制御するよう、CHANGE命令に応答し、前記CHANGE命令が、前記CHANGE命令の実行が、実行されるとき、前記制御変数の前記値をわずか飽和値まで変化させるように、関連付けられた前記飽和値を有する、データ処理装置として動作させる、仮想マシン。 - そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、前記位置に関連付けられたそれぞれの述語フラグの前記状態に従って、ベクトル処理演算を選択的に適用するための処理回路であって、
プログラム命令をデコードするための命令デコーダ回路と、
前記命令デコーダ回路によりデコードされた命令を実行するための命令処理回路と、
を含む処理回路
を備えるデータ処理装置であって、
前記命令デコーダ回路が、命令パラメータとして修正値を有するCHANGE命令に応答して、前記述語フラグの数および前記修正値に依存する量だけ変数の前記値を変化させるように前記命令処理回路を制御するようにする、データ処理装置。 - 前記命令デコーダ回路が、前記述語フラグの前記数に依存する値と前記修正値との積に依存する量だけ前記変数の前記値を変化させるように前記命令処理回路を制御するよう、前記CHANGE命令に応答する、請求項15に記載の装置。
- 前記CHANGE命令が、前記命令デコーダ回路が、前記変数の前記値をわずか飽和値まで変化させるように前記命令処理回路を制御するように、前記CHANGE命令に応答する、関連付けられた前記飽和値を有する、請求項15または請求項16に記載の装置。
- 前記CHANGE命令が、前記変数の前記値を低減させるためのデクリメント命令であり、
前記飽和値が、前記変数により表現され得る最小値である、請求項17に記載の装置。 - 前記CHANGE命令が、前記変数の前記値を増大させるためのインクリメント命令であり、
前記飽和値が、前記変数により表現され得る最大値である、請求項17に記載の装置。 - 前記変数が、カウンタ変数であり、前記処理回路が、処理ループの1回以上の繰り返しの間、前記カウンタ変数により少なくとも部分的に定義されたデータベクトルに対して前記ベクトル処理命令を適用し、
前記命令デコーダ回路が、前記処理ループを実行することを繰り返し継続すべきどうかを前記カウンタ変数に依存して検出するように前記命令処理回路を制御するよう、さらなる命令に応答する、請求項15〜19のいずれか一項に記載の装置。 - 前記処理ループを実行することを継続すべきかどうかを検出するための前記さらなる命令がWHILE命令を含み、前記命令デコーダ回路が、算術条件が前記カウンタ変数に当てはまる間、前記処理ループを実行することを繰り返し継続するように前記命令処理回路を制御するよう、前記WHILE命令に応答する、請求項20に記載の装置。
- 前記算術条件が、
i.前記カウンタ変数が、上限値未満である、
ii.前記カウンタ変数が、下限値より大きい、
iii.前記カウンタ変数が、上限値以下である、および
iv.前記カウンタ変数が、下限値以上である、
からなるリストから選択される条件である、請求項21に記載の装置。 - 前記命令デコーダ回路が、前記述語フラグの前記数のうちの選択された下位集合および前記修正値に依存する量だけ前記変数の前記値を変化させるように前記命令処理回路を制御するよう、前記CHANGE命令に応答する、請求項21または請求項22に記載の装置。
- 前記命令デコーダ回路が、前記アクティブ状態に設定するために選択された述語フラグの前記数を考慮に入れて、前記ループ変数の値が前記算術条件に違反しないように、前記アクティブ状態に設定するために前記述語フラグの1つ以上を選択するように前記命令処理回路を制御するよう、前記WHILE命令に応答する、請求項23に記載の装置。
- 前記命令デコーダ回路が、前記アクティブ状態に設定するために選択された述語フラグの前記数を考慮に入れて、前記ループ変数の値が前記算術条件に違反しないように、前記述語フラグの所定の順序に従って前記アクティブ状態に設定するために前記述語フラグの1つ以上を選択するように前記命令処理回路を制御するよう、前記WHILE命令に応答する、請求項24に記載の装置。
- そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、前記位置に関連付けられたそれぞれの述語フラグの前記状態に従って、ベクトル処理演算を選択的に適用するための手段であって、
命令をデコードするための手段と、
前記デコードするための手段によりデコードされた命令を実行するための手段と、
を含む適用する手段
を備えるデータ処理装置であって、
前記命令をデコードするための手段が、命令パラメータとして修正値を有するCHANGE命令に応答して、前記述語フラグの数に依存し、かつ前記修正値に依存する量だけ変数の前記値を変化させるように前記命令を実行するための手段を制御するようにする、データ処理装置。 - そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、前記位置に関連付けられたそれぞれの述語フラグの前記状態に従って、ベクトル処理演算を選択的に適用するステップと、
命令をデコードするステップと、
命令を実行するステップと、
を備えるデータ処理方法であって、
前記デコードするステップが、命令パラメータとして修正値を有するCHANGE命令に応答して、前記述語フラグの数に依存し、かつ前記修正値に依存する量だけ変数の前記値を変化させるように前記実行するステップを制御するようにする、データ処理方法。 - コンピュータにより実行されるとき、前記コンピュータに請求項27に記載の方法を行わせるコンピュータソフトウェア。
- 請求項28に記載のコンピュータソフトウェアを記憶する非一時的な機械可読記憶媒体。
- 機械可読命令を含むコンピュータプログラムを実行するためのデータプロセッサを備えた仮想マシンであって、前記コンピュータプログラムの実行が、前記データプロセッサに、
そのデータベクトル内のそれぞれの位置に複数のデータアイテムを含むデータベクトルの1つ以上のデータアイテムに対して、前記位置に関連付けられたそれぞれの述語フラグの前記状態に従って、ベクトル処理演算を選択的に適用するためのプロセッサであって、
命令をデコードするための命令デコーダと、
前記命令デコーダによりデコードされた命令を実行するための命令プロセッサと、
を含むプロセッサ
を備えるデータ処理装置であって、
前記命令デコーダが、命令パラメータとして修正値を有するCHANGE命令に応答して、前記述語フラグの数に依存し、かつ前記修正値に依存する量だけ変数の前記値を変化させるように前記命令プロセッサを制御するようにする、データ処理装置として動作させる、仮想マシン。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15386025.9 | 2015-07-31 | ||
EP15386025.9A EP3125108A1 (en) | 2015-07-31 | 2015-07-31 | Vector processing using loops of dynamic vector length |
PCT/EP2016/068013 WO2017021269A1 (en) | 2015-07-31 | 2016-07-28 | Vector processing using loops of dynamic vector length |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018525735A true JP2018525735A (ja) | 2018-09-06 |
JP6883564B2 JP6883564B2 (ja) | 2021-06-09 |
Family
ID=54140381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018503592A Active JP6883564B2 (ja) | 2015-07-31 | 2016-07-28 | 動的ベクトル長のループを用いたベクトル処理 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10430192B2 (ja) |
EP (2) | EP3125108A1 (ja) |
JP (1) | JP6883564B2 (ja) |
KR (2) | KR20180034501A (ja) |
CN (1) | CN107851021B (ja) |
IL (1) | IL256859B (ja) |
TW (1) | TWI723036B (ja) |
WO (1) | WO2017021269A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021515929A (ja) * | 2018-02-28 | 2021-06-24 | アーム・リミテッド | データ処理 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9606803B2 (en) * | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
US10528346B2 (en) * | 2018-03-29 | 2020-01-07 | Intel Corporation | Instructions for fused multiply-add operations with variable precision input operands |
EP4278366A1 (en) | 2021-01-12 | 2023-11-22 | Emed Labs, LLC | Health testing and diagnostics platform |
US11929168B2 (en) | 2021-05-24 | 2024-03-12 | Emed Labs, Llc | Systems, devices, and methods for diagnostic aid kit apparatus |
US11615888B2 (en) | 2021-03-23 | 2023-03-28 | Emed Labs, Llc | Remote diagnostic testing and treatment |
US11610682B2 (en) | 2021-06-22 | 2023-03-21 | Emed Labs, Llc | Systems, methods, and devices for non-human readable diagnostic tests |
US12014829B2 (en) | 2021-09-01 | 2024-06-18 | Emed Labs, Llc | Image processing and presentation techniques for enhanced proctoring sessions |
GB2616601B (en) * | 2022-03-11 | 2024-05-08 | Advanced Risc Mach Ltd | Sub-vector-supporting instruction for scalable vector instruction set architecture |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002084451A2 (en) * | 2001-02-06 | 2002-10-24 | Victor Demjanenko | Vector processor architecture and methods performed therein |
EP2725484A1 (en) * | 2012-10-23 | 2014-04-30 | Analog Devices Technology | Processor architecture and method for simplifying programmable single instruction, multiple data within a register |
JP2015534189A (ja) * | 2012-09-28 | 2015-11-26 | インテル・コーポレーション | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 |
JP2018521424A (ja) * | 2015-07-31 | 2018-08-02 | エイアールエム リミテッド | データ処理 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4745547A (en) * | 1985-06-17 | 1988-05-17 | International Business Machines Corp. | Vector processing |
IT1270439B (it) * | 1993-06-10 | 1997-05-05 | Sip | Procedimento e dispositivo per la quantizzazione dei parametri spettrali in codificatori numerici della voce |
US5537606A (en) * | 1995-01-31 | 1996-07-16 | International Business Machines Corporation | Scalar pipeline replication for parallel vector element processing |
US6976158B2 (en) * | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US7055021B2 (en) * | 2002-02-05 | 2006-05-30 | Sun Microsystems, Inc. | Out-of-order processor that reduces mis-speculation using a replay scoreboard |
US8370806B2 (en) * | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US7945763B2 (en) * | 2006-12-13 | 2011-05-17 | International Business Machines Corporation | Single shared instruction predecoder for supporting multiple processors |
US8345968B2 (en) * | 2007-06-28 | 2013-01-01 | Mitsubishi Electric Corporation | Image encoding device, image decoding device, image encoding method and image decoding method |
CA2798354C (en) * | 2010-05-12 | 2016-01-26 | Nippon Telegraph And Telephone Corporation | A video encoding bit rate control technique using a quantization statistic threshold to determine whether re-encoding of an encoding-order picture group is required |
US20120254588A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask |
CN103583048B (zh) * | 2011-06-30 | 2017-05-17 | 太阳专利托管公司 | 图像解码方法、图像编码方法、图像解码装置、图像编码装置及图像编码解码装置 |
SE536462C2 (sv) * | 2011-10-18 | 2013-11-26 | Mediatek Sweden Ab | Digital signalprocessor och basbandskommunikationsanordning |
US20130151822A1 (en) * | 2011-12-09 | 2013-06-13 | International Business Machines Corporation | Efficient Enqueuing of Values in SIMD Engines with Permute Unit |
US20140189296A1 (en) * | 2011-12-14 | 2014-07-03 | Elmoustapha Ould-Ahmed-Vall | System, apparatus and method for loop remainder mask instruction |
US9619229B2 (en) * | 2012-12-27 | 2017-04-11 | Intel Corporation | Collapsing of multiple nested loops, methods and instructions |
JP2014191757A (ja) * | 2013-03-28 | 2014-10-06 | Fujitsu Ltd | 情報処理方法、装置及びプログラム |
-
2015
- 2015-07-31 EP EP15386025.9A patent/EP3125108A1/en not_active Ceased
-
2016
- 2016-07-28 KR KR1020187004899A patent/KR20180034501A/ko not_active IP Right Cessation
- 2016-07-28 TW TW105123856A patent/TWI723036B/zh active
- 2016-07-28 US US15/748,734 patent/US10430192B2/en active Active
- 2016-07-28 JP JP2018503592A patent/JP6883564B2/ja active Active
- 2016-07-28 CN CN201680043612.6A patent/CN107851021B/zh active Active
- 2016-07-28 WO PCT/EP2016/068013 patent/WO2017021269A1/en active Application Filing
- 2016-07-28 EP EP16750681.5A patent/EP3329365A1/en active Pending
- 2016-07-28 KR KR1020247013072A patent/KR20240058195A/ko active Application Filing
-
2018
- 2018-01-11 IL IL256859A patent/IL256859B/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002084451A2 (en) * | 2001-02-06 | 2002-10-24 | Victor Demjanenko | Vector processor architecture and methods performed therein |
JP2015534189A (ja) * | 2012-09-28 | 2015-11-26 | インテル・コーポレーション | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 |
EP2725484A1 (en) * | 2012-10-23 | 2014-04-30 | Analog Devices Technology | Processor architecture and method for simplifying programmable single instruction, multiple data within a register |
JP2018521424A (ja) * | 2015-07-31 | 2018-08-02 | エイアールエム リミテッド | データ処理 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021515929A (ja) * | 2018-02-28 | 2021-06-24 | アーム・リミテッド | データ処理 |
JP7377208B2 (ja) | 2018-02-28 | 2023-11-09 | アーム・リミテッド | データ処理 |
Also Published As
Publication number | Publication date |
---|---|
TWI723036B (zh) | 2021-04-01 |
US10430192B2 (en) | 2019-10-01 |
EP3125108A1 (en) | 2017-02-01 |
WO2017021269A1 (en) | 2017-02-09 |
EP3329365A1 (en) | 2018-06-06 |
CN107851021A (zh) | 2018-03-27 |
KR20240058195A (ko) | 2024-05-03 |
CN107851021B (zh) | 2022-04-22 |
IL256859B (en) | 2020-03-31 |
JP6883564B2 (ja) | 2021-06-09 |
TW201716991A (zh) | 2017-05-16 |
US20190012176A1 (en) | 2019-01-10 |
IL256859A (en) | 2018-03-29 |
KR20180034501A (ko) | 2018-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6883564B2 (ja) | 動的ベクトル長のループを用いたベクトル処理 | |
JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
JP6900363B2 (ja) | データ処理 | |
CN108319559B (zh) | 用于控制矢量内存存取的数据处理装置及方法 | |
JP2011086298A (ja) | プログラム・フロー制御 | |
JP2019509573A (ja) | ベクトル述語命令 | |
JP6874262B2 (ja) | ベクトル被演算子ビットサイズの制御 | |
KR102458467B1 (ko) | 벡터 생성 명령 | |
KR102586258B1 (ko) | 벡터 길이 질의 명령 | |
JP7377208B2 (ja) | データ処理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200916 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201216 |
|
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: 20210416 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210510 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6883564 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |