JP2018521423A - ベクトル算術命令 - Google Patents

ベクトル算術命令 Download PDF

Info

Publication number
JP2018521423A
JP2018521423A JP2018503593A JP2018503593A JP2018521423A JP 2018521423 A JP2018521423 A JP 2018521423A JP 2018503593 A JP2018503593 A JP 2018503593A JP 2018503593 A JP2018503593 A JP 2018503593A JP 2018521423 A JP2018521423 A JP 2018521423A
Authority
JP
Japan
Prior art keywords
vector
source operand
bit size
arithmetic
mixed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018503593A
Other languages
English (en)
Other versions
JP7071913B2 (ja
JP2018521423A5 (ja
Inventor
ジョン スティーブンス、ナイジェル
ジョン スティーブンス、ナイジェル
Original Assignee
エイアールエム リミテッド
エイアールエム リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エイアールエム リミテッド, エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2018521423A publication Critical patent/JP2018521423A/ja
Publication of JP2018521423A5 publication Critical patent/JP2018521423A5/ja
Application granted granted Critical
Publication of JP7071913B2 publication Critical patent/JP7071913B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

データ処理システム(2)は、複数のベクトルオペランド要素を含むベクトルオペランドに対して行われるベクトル処理演算をサポートする。データ処理システムは、要素サイズが混在したベクトル算術命令をデコードして、第1のビットサイズAの第1のソースオペランド要素aの第1のベクトルと、第2のビットサイズBの第2のソースオペランド要素bの第2のベクトルに対して算術演算を行うように処理回路18を制御する制御信号16を生成する命令デコーダ(14)を有するプロセッサ(4)4を含む。第2のビットサイズBは、第1のビットサイズAより大きい。

Description

本開示は、データ処理システムの分野に関する。より詳細には、本開示は、ベクトル算術命令をサポートするデータ処理システムに関する。
それぞれの入力オペランドとして機能する複数のベクトル要素によってベクトル算術命令をサポートするデータ処理システムを設けることは知られている。ベクトル算術命令は2つのそのようなベクトル入力オペランドを利用し、2つのベクトルオペランド内のそれぞれ対のベクトル要素に対する命令によって特定される算術演算を行うことができる。ベクトル処理は、並列計算を容易にする。
本開示の少なくとも一部の実施形態は、
処理演算を行うための処理回路と、プログラム命令をデコードして、前記処理演算を行うように前記処理回路を制御するための制御信号を生成するデコーダ回路とを備える、データを処理するための装置であって、
前記デコーダ回路が、要素サイズが混在した少なくとも1つのベクトル算術命令に応答して、第1のビットサイズの第1のソースオペランド要素の第1のベクトルと、前記第1のビットサイズより大きい第2のビットサイズの第2のソースオペランド要素の第2のベクトルに対して算術処理演算を行うように前記処理回路を制御するための制御信号を生成する装置を提供する。
本開示の少なくとも一部の実施形態は、
処理演算を行うための処理手段と、プログラム命令をデコードして、前記処理演算を行うように前記処理回路を制御するための制御信号を生成するデコーダ手段とを備えるデータを処理するための装置であって、
前記デコーダ手段が、要素サイズが混在した少なくとも1つのベクトル算術命令に応答して、第1のビットサイズの第1のソースオペランド要素の第1のベクトルと、前記第1のビットサイズより大きい第2のビットサイズの第2のソースオペランド要素の第2のベクトルに対して算術処理演算を行うように前記処理手段を制御するための制御信号を生成する装置を提供する。
本開示の少なくとも一部の実施形態は、
要素サイズが混在した少なくとも1つのベクトル算術命令をデコードして、第1のビットサイズの第1のソースオペランド要素の第1のベクトルと、前記第1のビットサイズより大きい第2のビットサイズの第2のソースオペランド要素の第2のベクトルに対して算術処理演算を行うように処理回路を制御するための制御信号を生成するステップを含む、データを処理する方法を提供する。
単なる一例として、添付の図面を参照して以下に実施形態を記載する。
ベクトル算術命令をサポートするデータ処理システムを概略的に例示する図である。 要素サイズが混在したベクトル算術命令の作用およびシンタクスを概略的に例示する図である。 いかにして算術命令のデスティネーションオペランドにおける所与のビットが異なるビット位置から取得された入力オペランドビットに依存するかを概略的に例示する図である。 要素サイズが混在したベクトル算術命令の利用を概略的に例示するフロー図である。 仮想マシンの実装を概略的に例示する図である。
図1は、メモリ6に結合されたプロセッサ4を備えるデータ処理システム2を概略的に例示している。メモリ6は、プロセッサ4によって実行されるべきデータ処理演算を特定する操作されたプログラム命令10に対するデータ値8を記憶する。プログラム命令10は、命令フェッチユニット12によってフェッチされ、デコーダ回路14に渡される。デコーダ回路14は、デコードされた命令によって特定される処理演算を実行するようにプロセッサ4内の処理回路18、20、22、24を制御するように機能する制御信号16を生成する。
プロセッサ4は、ベクトル演算とスカラー演算の両方をサポートする。ベクトルレジスタファイル22内に格納されたベクトルオペランドに対して作用するベクトル処理回路18は、ベクトル処理演算を行うように機能する。スカラーレジスタファイル24内に格納されたスカラーオペランド値に対して作用するスカラー処理回路20は、スカラー処理演算を行うように機能する。ベクトル処理演算は、多様な異なる形態を採ることができることを理解されたい。例えばSIMD(単一命令多重データ)処理演算は、ベクトル処理演算の1つの形態である。より具体的には、ベクトル処理演算は、一緒に1つのベクトルオペランドを形成した複数のベクトル要素に対して行われる。
従来式の整数算術命令におけるソースオペランドと、デスティネーションオペランドのベクトル要素は合致する。例えば256ビット長のベクトルオペランドは、各々が16ビット長の16個のベクトル要素で形成されてよい。個々のベクトル要素に対して行われる処理演算は典型的には、少なくとも一部が並行して行われるが、これは常にそうである必要はない。スカラー処理演算は、単一の値を有する入力オペランドによって行われ、例えば64ビットのスカラー処理演算が、2つの64ビットのスカラー入力オペランドに対して行われ、64ビットのスカラー出力オペランドを生成することができる。
ベクトル処理回路18は、要素サイズが混在したベクトル算術命令がフェッチされ、デコードされ実行される際、デコーダ回路14によって生成される制御信号16の制御の下で実行される要素サイズが混在した少なくとも1つのベクトル算術命令をサポートするように本開示に従って形成される。
図2は、要素サイズが混在したベクトル算術命令の作用とシンタクスを概略的に例示する図である。要素サイズが混在したベクトル算術命令は、第1のソースオペランド要素aの第1のベクトルに対して、例えば論理シフト、除算または比較などの算術処理演算を行う。この例では、16個の第1のソースオペランド要素a〜a15が存在している。このような第1のソースオペランド要素aの各々は、Aのビットサイズを有する。この例では、16個の第1のソースオペランド要素aは、4つの別個のサブセットa〜a、a〜a、a〜a11およびa12〜a15になるように構成される。要素サイズが混在したベクトル算術命令は、第2のソースオペランド要素biの第2のベクトルを有する。この例では、第2のソースオペランド要素の第2のベクトルは、4つの第2のソースオペランド要素で形成され、すなわち各々がビットサイズBの第2のソースオペランド要素b〜bで形成される。
この一例の実施形態では、16個の第1のソースオペランド要素と、4つの第2のソースオペランド要素が存在するが、より具体的には、N個の第1のソースオペランド要素と、M個の第2のソースオペランド要素があってよい。第2のソースオペランド要素は、第1のソースオペランド要素のビットサイズAより大きなビットサイズBを有する。この例では、第2のソースオペランド要素より4倍多い第1のソースオペランド要素が存在しており、ビットサイズBの第2のソースオペランド要素と、ビットサイズAの第1のソースオペランド要素の比は4:1である。これは、第1のソースオペランド要素の数Nと、第2のソースオペランド要素Mの比と同じである。
この一例の実施形態では、第1のソースオペランド要素の別個のサブセットの各々は、第2のオペランド入力である第2のソースオペランド要素のうちのそれぞれ1つと共に算術処理演算を受ける。より詳細には第1のソースオペランド要素a〜aは、その算術処理演算に対する第2の入力である第2のソースオペランド要素bと共に算術処理演算を受ける。例えば第1のソースオペランド要素a〜aの各々は別々に、第2のソースオペランド要素bによって指定されたシフト量だけ論理右シフトを受ける場合がある。結果として生じる出力オペランドは、第1のソースオペランド要素と同じビットサイズAを有する。他の例の算術処理演算が、要素サイズの混在したベクトル算術命令に関して行われる場合もあり、例えば第1のソースオペランド要素aを対応する第2のソースオペランド要素bで割る、または第1のソースオペランド要素aが、対応する第2のソースオペランド要素bとの比較(減算)を受ける場合もある。
要素サイズが混在したベクトル算術命令の一例のシンタクスが、図2の底部に例示されている。例えば論理シフト、除算または比較などの算術処理演算は、LSR、DIVまたはDMPなどの簡略記号によって指定される。命令はその後、第1のソースオペランド要素に関する要素サイズを指定する、すなわちこれらがバイトBであるか、ハーフワードHであるか、ワードWであるか、またはダブルワードDであるかを指定する。64ビットダブルワードDの場合、512ビットのベクトルオペランドは、8つのそのようなダブルワードを含むことになる。そのような場合の第2のソースオペランド要素は、例えばダブルワードの第1のソースオペランド要素のうちの2つが、128ビットの第2のソースオペランド要素の各々に対応づけられた128ビットのベクトル要素であってよい。多くの他の異なる全体のベクトルサイズおよびベクトル要素サイズが、実装形態および特定の命令セットまたは行われる処理の要件に応じて利用される場合があることを理解されたい。
要素サイズが混在したベクトル算術命令のシンタクスは、その要素のビットサイズAと共にデスティネーションベクトルレジスタZを指定することによって継続する。この後に、その要素のビットサイズAと共に第1のソースオペランドのベクトルレジスタ、すなわちZs1を指定することが続く。最後に、その要素のビットサイズBと共に第2のソースオペランドのベクトルレジスタZS2が指定される。これは、2つの入力オペランドと、1つの出力オペランドを有する要素サイズが混在したベクトル算術命令の一例である。比較命令の場合、ZS1内の各々の要素をZS2内のより幅の広い要素と比較(減算)した結果に相当する「true」または「false」の結果を含む、プレディケートレジスタPに書き込まれた結果によって2つの入力オペランドが特定されてよい。
要素サイズが混在したベクトルシフト命令LSRの場合、処理演算は、第1のソースオペランド要素を、対応する第2のソースオペランド要素によって指定されたシフト量だけシフトするシフト演算である。要素サイズが混在したベクトル算術命令が除算命令であるの場合、算術処理演算は、対応する第2のソースオペランド要素によって指定される除数によって第1のソースオペランド要素を割る除算演算である。要素サイズが混在したベクトル算術命令が比較命令である場合、算術処理演算は、第1のソースオペランド要素を対応する第2のソースオペランド要素と比較する比較演算である。
第1のソースオペランド要素の要素ビットサイズは、上記に述べたように、第1のソースオペランド要素が8ビットのサイズ、16ビットのサイズ、32ビットのサイズまたは64ビットのサイズを有するかを特定する要素サイズフィールド「x」によって特定される。第2のソースオペランド要素は、一部の例の実施形態では、要素サイズが混在した命令の中の特定のフィールドによって特定されたビットサイズを有する。しかしながら例えば図2に例示されるものなど他の例の実施形態では、第2のソースオペランド要素は、例えば64ビットまたは128ビットなどの固定されたサイズを有する場合もある。第1のソースオペランド要素は、第2のソース要素よりビットサイズが小さい。第2のソースオペランド要素が64のビットサイズを有する場合、このとき第1のソースオペランド要素は、8、16または32のビットサイズを有することになる。
図3は、デスティネーションオペランド要素内のビット値26が、対応する第1のオペランド要素28と、第2のソースオペランド要素30のうちの少なくとも一方における異なるビット有意性(significance)の1つまたは複数のビット値に応じて設定されるようにどのようにして算術命令が作用するかを概略的に例示している。第2のソースオペランド要素Bjによって指定された右シフト量による第1のソースオペランド要素の右シフトの場合、デスティネーションオペランドDにおけるそれぞれのビット位置26は、適用される右シフト量を指定する第2のソースオペランド要素30内の全てのビット31と共に、第1のソースオペランド要素28内のより高次の有意性を有する対応するビット29に依存している。
本開示は、要素サイズが混在したベクトル算術命令がサポートされるシステムを教示している。これは、この分野における通常の技術的偏見に対抗するものである。通常、算術命令に関する全てのソースオペランドは全て、共通の要素サイズを有する。本開示は、特定の状況において、要素サイズが混在したベクトル算術命令を提供することは、そのような命令が、プロセッサ4によってサポートされデコーダ回路14によってデコードされた命令セット内で消費する命令ビットスペースを揃えるという利点を提供することを認識している。プログラムループの複数の演算を並行して行い、そのプログラムループがスカラー値オペランドを有する場合、要素サイズが混在したベクトル算術命令を利用して、ループのそれぞれの演算に関して第1のソースオペランド要素と同一のビットサイズを共有していないそのスカラーオペランドのコピーを記憶することができる。実際のレベルでは、要素サイズが混在したベクトル算術命令の提供は、各々のループの繰り返しの際、スカラーレジスタファイル24からベクトル処理回路18にスカラーオペランドをコピーする必要性を回避する場合があり、これは、ベクトル処理回路18が、それがより直接的に結合されるベクトルレジスタファイル22にアクセスするのと比べて比較的ゆっくりとしたプロセスであり得る。よって例えば、本開示によって提供される要素サイズが混在したベクトル算術命令の1つの使用法は、第1のソースベクトル要素よりも有意なビットを含むスカラーオペランド値を、スカラーレジスタファイル24から、第2のベクトルオペランド内のより幅の広い第2のソースオペランド要素の各々にコピーすることである。スカラーオペランドがコピーされたより幅の広い第2のソースオペランド要素を利用して、第2のベクトルをその後、複数の第1のソースベクトルオペランド要素に対して作用する要素サイズが混在したベクトル算術命令に対するベクトルオペランド入力の1つとして使用することができる。
図4は、上記のタイプの演算の一例を概略的に例示するフロー図である。ステップ32において、スカラーレジスタXからの64ビット値が、ベクトルオペランドZs2の全てのベクトルレジスタ要素に直接コピーされる。ステップ34は次いで、この64ビットがコピーされたベクトルレジスタ要素から、第2のベクトルの全ての他のベクトルレジスタ要素にわたって、この64ビットの複製を作製する。ステップ36において、実行されるべき処理ループに入る。ステップ38は、要素サイズが混在したベクトル算術命令を第1の入力ベクトルZs1と、第2の入力ベクトルZs2に対して実行して出力ベクトルZを生成する。この段階で、スカラーレジスタの複数のコピーが、第2のベクトルの適切な要素内に存在しており、従って処理が進むにつれてスカラーレジスタファイル24からベクトルレジスタファイル22に移動させる必要はない。ステップ40において、実行されていたロープから出る。
上記は、要素サイズが混在したベクトル算術命令の単なる一例の使用であることを理解されたい。図2の例では、第1のソースオペランド要素aと、第2のソースオペランド要素bの間に多対1の関係が生じており、すなわち別個のサブセット構成が存在しており、これにより第1のソースオペランド要素の各々の別個のサブセットは、単一の対応付けられた第2のソースオペランド要素を有する。一部の実施形態では、第1のソースオペランド要素と、対応する第2のソースオペランド要素の分離を設ける必要がないことを理解されたい。上記の例は、シフト演算、除算演算および比較演算の形式で算術処理演算を考察している。他の形式の算術演算もサポートされ得ることを理解されたい。算術演算によって作用されるオペランドは、二進数の値であってよく、この場合、第1のソースオペランド要素が二進数の値を含み、第2のソースオペランド要素が2進数の値を含み、デスティネーションオペランド要素は、デスティネーションオペランドの二進数の値を含むように、各々のビットは、異なる位置的有意性を有する。この方法において処理演算は、独立したビット単位の演算が異なる位置にある他のビットから独立して行われるのではなく(例えばOR、XORまたはAND)、全体として二進数の値に対して行われる。
図5は、使用され得る仮想マシンの実装を例示している。先に記載した実施形態は、関連する技術をサポートする特定の処理ハードウェアを作動させるための装置および方法の点で本発明を履行するが、いわゆるハードウェアデバイスの仮想マシン実装を設けることも可能である。仮想マシン実装は、仮想マシンプログラム510をサポートするホストオペレーティングシステム520を起動中のホストプロセッサ530上で起動する。典型的には、適度な速度で動作する仮想マシン実装を実現するには大型の強力なプロセッサが必要とされ、そのような手法は、例えば互換性または再利用の理由のための別のプロセッサに固有のコードを実行するという要望がある場合など特定の状況において正当化され得る。仮想マシンプログラム510は、仮想マシンプログラム510によってモデル化されるデバイスであるリアルハードウェアによって提供されるアプリケーションプログラムインターフェースと同一である、アプリケーションプログラム500に対するアプリケーションプログラムインターフェースを提供する。よって、上記に記載したメモリアクセスの制御を含めたプログラム命令が、仮想マシンプログラム510を利用してアプリケーションプログラム500において実行されて、仮想マシンハードウェアとのその対話をモデル化することができる。
本発明の例示の実施形態を添付の図面を参照して本明細書に詳細に記載してきたが、本発明は、そのような正確な実施形態に限定されるものではなく、添付の特許請求の範囲によって定義される本発明の精神および範囲から逸脱することなく、種々の変更、追加および修正を当業者によって行うことができることを理解されたい。例えば従属クレームの特徴の種々の組み合わせは、本発明の範囲から逸脱することなく、独立クレームの特徴と共に形成される場合がある。

Claims (19)

  1. 処理演算を行うための処理回路と、
    プログラム命令をデコードして、前記処理演算を行うように前記処理回路を制御するための制御信号を生成するデコーダ回路とを備える、データを処理するための装置であって、
    前記デコーダ回路が、要素サイズが混在した少なくとも1つのベクトル算術命令に応答して、第1のビットサイズの第1のソースオペランド要素の第1のベクトルと、前記第1のビットサイズより大きい第2のビットサイズの第2のソースオペランド要素の第2のベクトルに対して算術処理演算を行うように前記処理回路を制御するための制御信号を生成する、データを処理するための装置。
  2. 前記第1のベクトルは、N個の第1のソースオペランド要素を有し、前記第2のベクトルは、M個の第2のソースオペランド要素を有し、NとMは、正の整数値であり、NはMより大きく、前記第2のソースオペランド要素のうちの少なくとも1つは、それぞれの他の入力オペラントとしての複数の異なる第1のソースオペランド要素と共に行われる前記算術処理演算に対する入力オペランドとして機能する、請求項1に記載の装置。
  3. Nは、X*Mであり、この場合Xは、1より大きい整数であり、各々の前記第2のソースオペランド要素は、前記第1のソースオペランド要素のXのそれぞれ別個のサブセットに対して行われる前記算術演算に対する入力オペランドとして機能する、請求項2に記載の装置。
  4. 前記第2のビットサイズは、前記第1のビットサイズのX倍である、請求項3に記載の装置。
  5. 第1のソースオペランド要素は、前記それぞれ別個のサブセットが、前記シーケンスの順序でX個の隣接する第1のソースオペランドを含むように、特定のシーケンス順序を有する、請求項3および4のいずれか一項に記載の装置。
  6. 前記要素サイズが混在した少なくとも1つのベクトル算術命令は、デスティネーションオペランド要素のベクトルを有し、所与のデスティネーションオペランド要素内の所与の位置的有意性のビット値は、対応する第1のソースオペランド要素と、対応する第2のソースオペランド要素のうちの少なくとも一方の内の異なる位置的有意性の1つまたは複数のビット値に依存している、請求項1から5のいずれか一項に記載の装置。
  7. 前記第1のソースオペランド要素は二進数の値であり、前記第2のソースオペランド要素は二進数の値であり、前記デスティネーションオペランド要素はデスティネーションオペランドの二進数の値である、請求項6に記載の装置。
  8. デスティネーションオペランド要素の前記ベクトルは、前記第1のビットサイズと等しいデスティネーションビットサイズを有する、請求項6および7のいずれか一項に記載の装置。
  9. 前記要素サイズが混在した少なくとも1つのベクトル算術命令は、要素サイズが混在したベクトルシフト命令を含み、前記算術処理演算は、対応する第2のソースオペランド要素によって指定されたシフト量だけ前記第1のソースオペランド要素をシフトするシフト演算である、請求項1から8のいずれか一項に記載の装置。
  10. 前記要素サイズが混在した少なくとも1つのベクトル算術命令は、要素サイズが混在したベクトル除算命令を含み、前記算術処理演算は、対応する第2のソースオペランド要素によって指定された除数によって前記第1のソースオペランド要素を割る除算演算である、請求項1から9のいずれか一項に記載の装置。
  11. 前記要素サイズが混在した少なくとも1つのベクトル算術命令は、要素サイズが混在したベクトル比較命令を含み、前記算術処理演算は、前記第1のソースオペランド要素を対応する第2のソースオペランド要素と比較する比較演算である、請求項1から10のいずれか一項に記載の装置。
  12. 前記要素サイズが混在したベクトル算術命令は、前記第1のベクトルと前記第2のベクトルのそれぞれの要素間の比較の結果を示すデスティネーションオペランド要素のベクトルを有する、請求項11に記載の装置。
  13. 前記第1のビットサイズは、要素サイズが混在した少なくとも1つのベクトル算術命令の中の要素サイズフィールドに依存している、請求項1から12のいずれか一項に記載の装置。
  14. 前記第1のビットサイズは、8ビット、16ビットおよび32ビットのうちの1つとして選択される、請求項13に記載の装置。
  15. 前記第2のビットサイズは固定される、請求項1から14のいずれか一項に記載の装置。
  16. 前記第2のビットサイズは64ビットである、請求項1から15のいずれか一項に記載の装置。
  17. 処理演算を行うための処理手段と、
    プログラム命令をデコードして、前記処理演算を行うように前記処理回路を制御するための制御信号を生成するデコーダ手段とを備える、データを処理するための装置であって、
    前記デコーダ手段が、要素サイズが混在した少なくとも1つのベクトル算術命令に応答して、第1のビットサイズの第1のソースオペランド要素の第1のベクトルと、前記第1のビットサイズより大きい第2のビットサイズの第2のソースオペランド要素の第2のベクトルに対して算術処理演算を行うように前記処理手段を制御するための制御信号を生成する、データを処理するための装置。
  18. 要素サイズが混在した少なくとも1つのベクトル算術命令をデコードして、第1のビットサイズの第1のソースオペランド要素の第1のベクトルと、前記第1のビットサイズより大きい第2のビットサイズの第2のソースオペランド要素の第2のベクトルに対して算術処理演算を行うように処理回路を制御するための制御信号を生成するステップを含む、データを処理する方法。
  19. 請求項1から16のいずれか一項においてクレーム主張される装置に対応する仮想マシン実行環境を実現するようにコンピュータを制御するために非一時的記憶媒体に記憶されるコンピュータプログラム。
JP2018503593A 2015-07-31 2016-06-23 ベクトル算術命令 Active JP7071913B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1513511.4A GB2540943B (en) 2015-07-31 2015-07-31 Vector arithmetic instruction
GB1513511.4 2015-07-31
PCT/GB2016/051868 WO2017021681A1 (en) 2015-07-31 2016-06-23 Vector arithmethic instruction

Publications (3)

Publication Number Publication Date
JP2018521423A true JP2018521423A (ja) 2018-08-02
JP2018521423A5 JP2018521423A5 (ja) 2019-07-25
JP7071913B2 JP7071913B2 (ja) 2022-05-19

Family

ID=54062956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018503593A Active JP7071913B2 (ja) 2015-07-31 2016-06-23 ベクトル算術命令

Country Status (9)

Country Link
US (1) US11003447B2 (ja)
EP (1) EP3329363B1 (ja)
JP (1) JP7071913B2 (ja)
KR (1) KR102584001B1 (ja)
CN (1) CN107851016B (ja)
GB (1) GB2540943B (ja)
IL (1) IL256663B (ja)
TW (1) TWI739754B (ja)
WO (1) WO2017021681A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315717B (zh) * 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行向量四则运算的装置和方法
EP3428792B1 (en) 2017-07-10 2022-05-04 Arm Ltd Testing bit values inside vector elements
JP6604393B2 (ja) * 2018-03-08 2019-11-13 日本電気株式会社 ベクトルプロセッサ、演算実行方法、プログラム
US10528346B2 (en) * 2018-03-29 2020-01-07 Intel Corporation Instructions for fused multiply-add operations with variable precision input operands
US20210389948A1 (en) * 2020-06-10 2021-12-16 Arm Limited Mixed-element-size instruction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125631A1 (en) * 2003-12-09 2005-06-09 Arm Limited Data element size control within parallel lanes of processing
US20050240870A1 (en) * 2004-03-30 2005-10-27 Aldrich Bradley C Residual addition for video software techniques
US20140195783A1 (en) * 2011-12-29 2014-07-10 Krishnan Karthikeyan Dot product processors, methods, systems, and instructions
US20150012724A1 (en) * 2013-07-08 2015-01-08 Arm Limited Data processing apparatus having simd processing circuitry
US20150082010A1 (en) * 2013-09-16 2015-03-19 Oracle International Corporation Shift instruction with per-element shift counts and full-width sources

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408320B1 (en) * 1998-01-27 2002-06-18 Texas Instruments Incorporated Instruction set architecture with versatile adder carry control
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
KR101239304B1 (ko) * 2004-11-03 2013-03-05 실리콘 하이브 비.브이. Simd 명령을 지원하는 프로그램 가능한 데이터 처리회로
US20080091924A1 (en) * 2006-10-13 2008-04-17 Jouppi Norman P Vector processor and system for vector processing
GB2464292A (en) * 2008-10-08 2010-04-14 Advanced Risc Mach Ltd SIMD processor circuit for performing iterative SIMD multiply-accumulate operations
GB2474901B (en) * 2009-10-30 2015-01-07 Advanced Risc Mach Ltd Apparatus and method for performing multiply-accumulate operations
JP5699554B2 (ja) * 2010-11-11 2015-04-15 富士通株式会社 ベクトル処理回路、命令発行制御方法、及びプロセッサシステム
GB2488985A (en) * 2011-03-08 2012-09-19 Advanced Risc Mach Ltd Mixed size data processing operation with integrated operand conversion instructions
CN104081336B (zh) 2011-12-23 2018-10-23 英特尔公司 用于检测向量寄存器内的相同元素的装置和方法
WO2013095607A1 (en) 2011-12-23 2013-06-27 Intel Corporation Instruction execution unit that broadcasts data values at different levels of granularity
CN103999037B (zh) 2011-12-23 2020-03-06 英特尔公司 用于响应于单个指令来执行横向相加或相减的系统、装置和方法
US10133577B2 (en) * 2012-12-19 2018-11-20 Intel Corporation Vector mask driven clock gating for power efficiency of a processor
US9552205B2 (en) * 2013-09-27 2017-01-24 Intel Corporation Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions
US10489155B2 (en) * 2015-07-21 2019-11-26 Qualcomm Incorporated Mixed-width SIMD operations using even/odd register pairs for wide data elements
US10146535B2 (en) * 2016-10-20 2018-12-04 Intel Corporatoin Systems, apparatuses, and methods for chained fused multiply add

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125631A1 (en) * 2003-12-09 2005-06-09 Arm Limited Data element size control within parallel lanes of processing
US20050240870A1 (en) * 2004-03-30 2005-10-27 Aldrich Bradley C Residual addition for video software techniques
US20140195783A1 (en) * 2011-12-29 2014-07-10 Krishnan Karthikeyan Dot product processors, methods, systems, and instructions
US20150012724A1 (en) * 2013-07-08 2015-01-08 Arm Limited Data processing apparatus having simd processing circuitry
US20150082010A1 (en) * 2013-09-16 2015-03-19 Oracle International Corporation Shift instruction with per-element shift counts and full-width sources

Also Published As

Publication number Publication date
JP7071913B2 (ja) 2022-05-19
CN107851016A (zh) 2018-03-27
KR102584001B1 (ko) 2023-10-04
GB2540943B (en) 2018-04-11
US20180203692A1 (en) 2018-07-19
WO2017021681A1 (en) 2017-02-09
CN107851016B (zh) 2022-05-17
GB201513511D0 (en) 2015-09-16
KR20180035211A (ko) 2018-04-05
IL256663A (en) 2018-02-28
GB2540943A (en) 2017-02-08
EP3329363B1 (en) 2020-10-14
US11003447B2 (en) 2021-05-11
TW201721409A (zh) 2017-06-16
IL256663B (en) 2020-02-27
TWI739754B (zh) 2021-09-21
EP3329363A1 (en) 2018-06-06

Similar Documents

Publication Publication Date Title
CN106575215B (zh) 处理指令的系统、设备、方法、处理器、介质和电子设备
TWI512531B (zh) 用以處理blake安全雜湊演算法的方法、設備、系統及製品
JP7071913B2 (ja) ベクトル算術命令
US20160179523A1 (en) Apparatus and method for vector broadcast and xorand logical instruction
US9507595B2 (en) Execution of multi-byte memory access instruction specifying endian mode that overrides current global endian mode
JP6051458B2 (ja) 複数のハッシュ動作を効率的に実行する方法および装置
US20160011873A1 (en) Instruction for implementing vector loops of iterations having an iteration dependent condition
US11301580B2 (en) Instruction execution that broadcasts and masks data values at different levels of granularity
US20210200880A1 (en) Method and apparatus for multi-key total memory encryption based on dynamic key derivation
CN106030514B (zh) 用于执行采用传播的被屏蔽源元素存储指令的处理器及其方法
GB2485774A (en) Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field
US11917067B2 (en) Apparatuses, methods, and systems for instructions for usage restrictions cryptographically tied with data
WO2012136975A1 (en) A data processing apparatus and method for performing vector operations
TWI564733B (zh) 快速向量動態記憶衝突檢測
JP2018521423A5 (ja)
JP6818010B2 (ja) ベクトル長クエリ命令
JP2017534982A (ja) 4d座標から4dのz曲線インデックスを計算するための機械レベル命令
JP5732139B2 (ja) データ要素の条件付き選択
US20180203699A1 (en) Vector operand bitsize control
JP2021515929A (ja) データ処理
JP5753603B2 (ja) データ要素内のビットをゼロ化するためのシステム、装置、および方法
US20160283242A1 (en) Apparatus and method for vector horizontal logical instruction

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210831

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220509

R150 Certificate of patent or registration of utility model

Ref document number: 7071913

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150