JP6882320B2 - ベクトル命令の処理 - Google Patents
ベクトル命令の処理 Download PDFInfo
- Publication number
- JP6882320B2 JP6882320B2 JP2018548864A JP2018548864A JP6882320B2 JP 6882320 B2 JP6882320 B2 JP 6882320B2 JP 2018548864 A JP2018548864 A JP 2018548864A JP 2018548864 A JP2018548864 A JP 2018548864A JP 6882320 B2 JP6882320 B2 JP 6882320B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- instruction
- processing
- beat
- instructions
- 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.)
- Active
Links
- 239000013598 vector Substances 0.000 title claims description 472
- 238000012545 processing Methods 0.000 title claims description 285
- 238000000034 method Methods 0.000 claims description 63
- 230000004044 response Effects 0.000 claims description 57
- 230000008569 process Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 3
- 230000001629 suppression Effects 0.000 claims 1
- 230000004888 barrier function Effects 0.000 description 20
- 230000035508 accumulation Effects 0.000 description 16
- 238000009825 accumulation Methods 0.000 description 16
- 230000001960 triggered effect Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 241000238876 Acari Species 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
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)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
ソース・オペランド及び結果値のうちの少なくとも1つが、複数のデータ要素を含むベクトル値である、ベクトル命令を処理するための処理回路を備える装置であって、
所与のベクトル命令に応答して、処理回路が、処理の複数のビートを実施するように構成され、各ビートが、ベクトル値の一部分に対応する処理を含み、
処理回路は、前記所与のベクトル命令を含む複数のベクトル命令のどのビートが完了したかを示すビート・ステータス情報を設定するように構成され、
イベントに応答して、処理回路が、前記所与のベクトル命令の処理を中断するように構成され、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰(return−from−event)要求に応答して、処理回路が、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令のビートを抑制しながら、前記複数のベクトル命令の処理を再開するように構成され、
ベクトル値が、処理回路にとってアクセス可能なデータ要素サイズ情報によって指定された複数のデータ要素サイズのうちの1つを有するデータ要素を含み、
処理の各ビートが、前記データ要素サイズ情報によって示されたデータ要素サイズにかかわらず、ベクトル値の固定サイズ部分に対応する処理を含む、
装置を提供する。
ソース・オペランド及び結果値のうちの少なくとも1つが、複数のデータ要素を含むベクトル値である、ベクトル命令を処理するための手段を備える装置であって、
所与のベクトル命令に応答して、処理するための手段が、処理の複数のビートを実施するように構成され、各ビートが、ベクトル値の一部分に対応する処理を含み、
処理するための手段は、前記所与のベクトル命令を含む複数のベクトル命令のどのビートが完了したかを示すビート・ステータス情報を設定するように構成され、
イベントに応答して、処理するための手段が、前記所与のベクトル命令の処理を中断するように構成され、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰要求に応答して、処理するための手段が、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令のビートを抑制しながら、前記複数のベクトル命令の処理を再開するように構成され、
ベクトル値が、処理するための手段にとってアクセス可能なデータ要素サイズ情報によって指定された複数のデータ要素サイズのうちの1つを有するデータ要素を含み、
処理の各ビートが、前記データ要素サイズ情報によって示されたデータ要素サイズにかかわらず、ベクトル値の固定サイズ部分に対応する処理を含む、
装置を提供する。
所与のベクトル命令に応答して、処理の複数のビートを実施するステップであって、各ビートが、ベクトル値の一部分に対応する処理を含む、ステップと、
前記所与のベクトル命令を含む複数のベクトル命令のどのビートが完了したかを示すビート・ステータス情報を設定するステップと、
イベントに応答して、前記所与のベクトル命令の処理を中断するステップと、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰要求に応答して、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令のビートを抑制しながら、前記複数のベクトル命令の処理を再開するステップと
を含み、
ベクトル値が、データ要素サイズ情報によって指定された複数のデータ要素サイズのうちの1つを有するデータ要素を含み、
処理の各ビートが、前記データ要素サイズ情報によって示されたデータ要素サイズにかかわらず、ベクトル値の固定サイズ部分に対応する処理を含む。
・(図11の実例の場合のように)第1のスカラー・レジスタはソース・レジスタであり、第2のスカラー・レジスタは宛先レジスタであり、処理回路は、第2のスカラー・レジスタが前記第1のスカラー・レジスタと同じレジスタであるかどうかに応じて異なる、前記第1の混合スカラー・ベクトル命令の結果を生成するために、前記第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との重複実行を許可するように構成されるやり方と、
・(図12の実例の場合のように)第1のスカラー・レジスタは宛先レジスタであり、前記第2のスカラー・レジスタはソース・レジスタであり、前記第1のスカラー・レジスタ及び前記第2のスカラー・レジスタは、同じレジスタであり(第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との間に所定の数の介在する命令又は所定の数よりも少ない介在する命令をもち)、処理回路は、第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との間の介在する命令の数に応じて異なる、前記第2の混合スカラー・ベクトル命令の結果を生成するために、前記第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との前記重複実行を許可にするように構成されるやり方と
のうちの1つで、緩和された実行をサポートし得る。
(1) ソース・オペランド及び結果値のうちの少なくとも1つが、複数のデータ要素を含むベクトル値である、ベクトル命令を処理するための処理回路を備える装置であって、
所与のベクトル命令に応答して、処理回路が、処理の複数のビートを実施するように構成され、各ビートが、ベクトル値の一部分に対応する処理を含み、
処理回路は、前記所与のベクトル命令を含む複数のベクトル命令のどのビートが完了したかを示すビート・ステータス情報を設定するように構成され、
イベントに応答して、処理回路が、前記所与のベクトル命令の処理を中断するように構成され、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰要求に応答して、処理回路が、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令のビートを抑制しながら、前記複数のベクトル命令の処理を再開するように構成された、
装置。
(2) 処理回路が、前記複数のベクトル命令のうちの1つのアドレスを示す復帰アドレスを設定するように構成され、
イベントからの復帰要求に応答して、処理回路は、復帰アドレス及び前記ビート・ステータス情報に基づいて、処理が再開されるべきであるポイントを識別するように構成された、
項(1)に記載の装置。
(3) 復帰アドレスは、少なくとも1つのビートが依然として完了されるべきである、最も古いベクトル命令のアドレスを示す、項(2)に記載の装置。
(4) 複数のベクトル命令は、少なくとも1つのビートが依然として完了されるべきである、最も古いベクトル命令と、少なくとも1つの後続のベクトル命令とを含む、項(1)から(3)までのいずれか一項に記載の装置。
(5) 処理回路が、所与のベクトル命令の複数のビートのすべてを並行して実施するには不十分なハードウェアを備える、項(1)から(4)までのいずれか一項に記載の装置。
(6) 処理回路が、所与のベクトル命令の複数のビートの第1のサブセットを完了した後に、所与のベクトル命令の複数のビートの第2のサブセットを実施するように構成された、項(1)から(5)までのいずれか一項に記載の装置。
(7) 処理回路が、第2のベクトル命令のためのビートの第1のサブセットを実施することと並行して、第1のベクトル命令のためのビートの第2のサブセットを実施するように構成された、項(6)に記載の装置。
(8) 後続のベクトル命令の第1のビートを開始する前に、1つのベクトル命令のいくつのビートが完了されるべきかを、命令ごとに変化させるための制御回路を備える、項(1)から(7)までのいずれか一項に記載の装置。
(9) 処理回路が、所与のベクトル命令の複数のビートのすべてを並行して実施するのをサポートするように構成されたハードウェアを備える、項(1)から(4)まで、(6)及び(7)のいずれか一項に記載の装置。
(10) ベクトル値が、処理回路にとってアクセス可能なデータ要素サイズ情報によって指定された複数のデータ要素サイズのうちの1つを有するデータ要素を含み、
処理の各ビートが、前記データ要素サイズ情報によって示されたデータ要素サイズにかかわらず、ベクトル値の固定サイズ部分に対応する処理を含む、
項(1)から(9)までのいずれか一項に記載の装置。
(11) 処理回路が、前記ビート・ステータス情報を、処理回路によって実行されるソフトウェア、例外ハンドラ及びデバッガのうちの少なくとも1つにとってアクセス可能にするように構成された、項(1)から(10)までのいずれか一項に記載の装置。
(12) 前記イベントがデバッグ・イベントを含み、前記イベントからの復帰要求がデバッグ状態からの復帰を含む、項(1)から(11)までのいずれか一項に記載の装置。
(13) 前記イベントが例外イベントを含み、前記イベントからの復帰要求が例外復帰を含む、項(1)から(12)までのいずれか一項に記載の装置。
(14) 前記例外イベントが障害イベントを含み、前記障害イベントに応答して、処理回路は、前記複数のベクトル命令のうちのどれが、前記障害イベントが検出された、前記所与のベクトル命令であるかを識別する情報を設定するように構成された、項(13)に記載の装置。
(15) 例外イベントに応答して、前記処理回路が、前記ビート・ステータス情報へのアクセスを無効化するように構成され、
前記ビート・ステータス情報にアクセスすることを試みる命令、又は処理の複数のビートを含む少なくとも1つのタイプのさらなるベクトル命令の実行に応答して、前記処理回路が、
前記ビート・ステータス情報を所定のロケーションに保存すること、又は
第2の例外イベントを起こすこと
を行うように構成された、項(13)及び(14)のいずれか一項に記載の装置。
(16) 例外イベントに応答して、処理回路が、ビート・ステータス情報を、スタック・ポインタ・レジスタによって示された値に対するオフセットにおいてデータ・ストア中のロケーションに保存するように構成された、項(13)及び(14)のいずれか一項に記載の装置。
(17) 前記処理回路が、少なくともセキュアな状態及びあまりセキュアでない状態を含む複数のセキュリティ状態で動作可能であり、例外イベントが、前記セキュアな状態から前記あまりセキュアでない状態への遷移を生じることに応答して、処理回路が、ビート・ステータス情報をクリアするように構成された、項(16)に記載の装置。
(18) 処理回路が、
処理の所与のビートに対応する宛先ベクトル・レジスタの一部分を更新することを抑制することと、
処理の前記所与のビートに関連する処理演算を抑制することと
のうちの1つによって処理の前記所与のビートを抑制するように構成された、項(1)から(17)までのいずれか一項に記載の装置。
(19) ソース・オペランド及び結果値のうちの少なくとも1つが、複数のデータ要素を含むベクトル値である、ベクトル命令を処理するための手段を備える装置であって、
所与のベクトル命令に応答して、処理するための手段が、処理の複数のビートを実施するように構成され、各ビートが、ベクトル値の一部分に対応する処理を含み、
処理するための手段は、前記所与のベクトル命令を含む複数のベクトル命令のどのビートがすでに完了したかを示すビート・ステータス情報を設定するように構成され、
イベントに応答して、処理するための手段が、前記所与のベクトル命令の処理を中断するように構成され、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰要求に応答して、処理するための手段が、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令のビートを抑制しながら、前記複数のベクトル命令の処理を再開するように構成された、
装置。
(20) ソース・オペランド及び結果値のうちの少なくとも1つが、複数のデータ要素を含むベクトル値である、ベクトル命令を処理する方法であって、
所与のベクトル命令に応答して、処理の複数のビートを実施するステップであって、各ビートが、ベクトル値の一部分に対応する処理を含む、ステップと、
前記所与のベクトル命令を含む複数のベクトル命令のどのビートがすでに完了したかを示すビート・ステータス情報を設定するステップと、
イベントに応答して、前記所与のベクトル命令の処理を中断するステップと、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰要求に応答して、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令のビートを抑制しながら、前記複数のベクトル命令の処理を再開するステップと
を含む、方法。
(21) 項(1)から(18)までのいずれか一項に記載の装置に対応する、命令実行環境を与えるようにホスト・データ処理装置を制御するためのプログラム命令を含む、仮想マシン・コンピュータ・プログラム。
(22) 1つ又は複数のソース・レジスタ及び宛先レジスタを指定するベクトル命令を処理するための処理回路を備える装置であって、前記宛先レジスタ及び前記1つ又は複数のソース・レジスタのうちの少なくとも1つが、複数のデータ要素を含むベクトル値を記憶するためのベクトル・レジスタであり、
ベクトル命令は、前記宛先レジスタ及び前記1つ又は複数のソース・レジスタのうちの別のものが、単一のデータ要素を含むスカラー値を記憶するためのスカラー・レジスタである、少なくとも1つのタイプの混合スカラー・ベクトル命令を含み、
所与のベクトル命令に応答して、処理回路が、処理の複数のビートを実施するように構成され、各ビートが、ベクトル値の一部分に対応する処理を含み、
処理回路は、第1のベクトル命令の少なくとも1つのビートが、第2のベクトル命令の少なくとも1つのビートと並行して実施される、第1のベクトル命令と第2のベクトル命令との重複実行をサポートするように構成され、
第1のスカラー・レジスタを指定する第1の混合スカラー・ベクトル命令と第2のスカラー・レジスタを指定する後続の混合スカラー・ベクトル命令とを、第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との間の所定の数よりも少ない介在する命令とともに含む命令のシーケンスに応答して、前記処理回路は、
前記第1のスカラー・レジスタはソース・レジスタであり、前記第2のスカラー・レジスタは宛先レジスタである場合、処理回路は、第2のスカラー・レジスタが前記第1のスカラー・レジスタと同じレジスタであるかどうかに応じて異なる、前記第1の混合スカラー・ベクトル命令の結果を生成するために、前記第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との前記重複実行を許可するように構成されること、並びに、
前記第1のスカラー・レジスタは宛先レジスタであり、前記第2のスカラー・レジスタはソース・レジスタであり、前記第1のスカラー・レジスタ及び前記第2のスカラー・レジスタは、同じレジスタである場合、前記処理回路は、第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との間の介在する命令の数に応じて異なる、前記第2の混合スカラー・ベクトル命令の結果を生成するために、前記第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との前記重複実行を可能にするように構成されること、
のうちの少なくとも1つを含む緩和された実行をサポートするように構成された、
装置。
(23) 前記第1混合スカラー・ベクトル命令及び後続の混合スカラー・ベクトル命令のうちの少なくとも1つが算術命令である、項(22)に記載の装置。
(24) 処理回路が、混合スカラー・ベクトル命令の複数の異なるクラスの処理をサポートするように構成され、
処理回路は、第1のカラー・ベクトル命令及び後続の混合スカラー・ベクトル命令が両方とも同じクラスからのものであるとき、処理回路は第1の後続の混合スカラー・ベクトル命令の前記緩和された実行を防ぐように構成された、
項(22)及び(23)のいずれか一項に記載の装置。
(25) 処理回路は、前記第1混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との前記重複実行を防ぐことによって、前記緩和された実行を防ぐように構成された、項(24)に記載の装置。
(26) 前記第1のスカラー・レジスタがソース・レジスタであり、前記第2のスカラー・レジスタが宛先レジスタである場合、処理回路は、第1のスカラー・レジスタからのスカラー値を第3のスカラー・レジスタにコピーすることと、ソース・レジスタとして前記第1のスカラー・レジスタの代わりに前記第3のスカラー・レジスタを使用して、前記第1の混合スカラー・ベクトル命令の少なくとも1つのビートを実行することとによって、前記緩和された実行を防ぐように構成された、項(24)及び(25)のいずれか一項に記載の装置。
(27) 処理回路が、同じハードウェア回路ユニットを使用して、同じクラスからの混合スカラー・ベクトル命令を処理するように構成された、項(24)から(26)までのいずれか一項に記載の装置。
(28) 処理回路が、異なるハードウェア回路ユニットを使用して、少なくともいくつかの異なるクラスからの混合スカラー・ベクトル命令を処理するように構成された、項(27)に記載の装置。
(29) 混合スカラー・ベクトル命令の複数のクラスは、少なくとも
少なくともロード命令を含む第1のクラスと、
少なくとも、乗算を実行する命令含む第第2のクラスと
を含む、項(24)から(28)までのいずれか一項に記載の装置。
(30) 混合スカラー・ベクトル命令の複数のクラスが、少なくとも
少なくともメモリ・アクセス命令を含む第1のクラスと、
少なくとも、乗算を実施する命令を含む第2のクラスと
少なくとも非乗算算術命令を含む第3のクラス、および
少なくとも浮動小数点命令を含む第4のクラスのうちの少なくとも1つと
を含む、項(24)から(29)までのいずれか一項に記載の装置。
(31) 処理回路は、前記第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との間の介在する命令が、重複バリア命令であるとき、前記第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との前記緩和された実行を防ぐように構成された、項(22)から(30)までのいずれか一項に記載の装置。
(32) 前記第1のスカラー・レジスタがソース・レジスタであり、前記第2のスカラー・レジスタが宛先レジスタである場合、処理回路が、第1のスカラー・レジスタからのスカラー値を第3のスカラー・レジスタにコピーすることと、ソース・レジスタとして前記第1のスカラー・レジスタの代わりに前記第3のスカラー・レジスタを使用して、前記第1の混合スカラー・ベクトル命令の少なくとも1つのビートを実行することとによって、前記緩和された実行を防ぐように構成された、項(31)に記載の装置。
(33) 処理回路が、少なくとも1つの無演算動作として前記重複バリア命令を実行するように構成された、項(31)から(32)までのいずれか一項に記載の装置。
(34) 前記スカラー・レジスタが前記ソース・レジスタのうちの1つである、混合スカラー・ベクトル命令に応答して、処理回路は、前記スカラー・レジスタにおけるスカラー値に依存する処理の前記複数のビートの各々を実施するように構成された、項(22)から(33)までのいずれか一項に記載の装置。
(35) 前記スカラー・レジスタが宛先レジスタである、混合スカラー・ベクトル命令に応答して、前記スカラー・レジスタに書き込まれるべきスカラー結果値は、処理の前記複数のビートの各々の成果に依存する、項(22)から(34)までのいずれか一項に記載の装置。
(36) 少なくとも1つのタイプの混合スカラー・ベクトル命令の場合、前記スカラー・レジスタは、ソース・レジスタと宛先レジスタの両方である、項(22)から(35)までのいずれか一項に記載の装置。
(37) 処理回路が、所与のベクトル命令の複数のビートのすべてを並行して実施するには不十分なハードウェアを備える、項(22)から(36)までのいずれか一項に記載の装置。
(38) 前記重複実行では、処理回路が、前記第1のベクトル命令のビートの第2のサブセットと並行して、前記第2のベクトル命令のビートの第1のサブセットを実施するように構成された、項(22)から(37)までのいずれか一項に記載の装置。
(39) 処理の前記複数のビートが、処理の2J個のビートを含み、ここで、Jは、1よりも大きいか又はそれに等しい整数である、
前記重複実行では、処理回路が、前記第1のベクトル命令の第(2K+1)のビートと並行して、前記第2のベクトル命令の第1のビートを実施するように構成され、ここで、Kは、整数及び0≦K<Jである、
介在する命令の所定の数は、(2(J−K)−1)を含む、
項(22)から(38)までのいずれか一項に記載の装置。
(40) ベクトル値が、処理回路にとってアクセス可能なデータ要素サイズ情報によって指定された複数のデータ要素サイズのうちの1つを有するデータ要素を含み、
処理の各ビートが、前記データ要素サイズ情報によって示されたデータ要素サイズにかかわらず、ベクトル値の固定サイズ部分に対応する処理を含む、
項(22)から(39)までのいずれか一項に記載の装置。
(41) 1つ又は複数のソース・レジスタ及び宛先レジスタを指定するベクトル命令を処理するための手段であって、前記宛先レジスタ及び前記1つ又は複数のソース・レジスタの少なくとも1つが、複数のデータ要素を含むベクトル値を記憶するためのベクトル・レジスタである、処理するための手段を備える装置であって、
ベクトル命令は、前記宛先レジスタ及び前記1つ又は複数のソース・レジスタのうちの別のものが、単一のデータ要素を含むスカラー値を記憶するためのスカラー・レジスタである、少なくとも1つのタイプの混合スカラー・ベクトル命令を含み、
所与のベクトル命令に応答して、処理するための手段が、処理の複数のビートを実施するように構成され、各ビートが、ベクトル値の一部分に対応する処理を含み、
処理するための手段は、第1のベクトル命令と第2のベクトル命令との重複実行をサポートするように構成され、第1のベクトル命令の少なくとも1つのビートが、第2のベクトル命令の少なくとも1つのビートと並行して実施され、
第1のスカラー・レジスタを指定する第1の混合スカラー・ベクトル命令と、第2のスカラー・レジスタを指定する後続の混合スカラー・ベクトル命令とを、第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との間の所定の数よりも少ない介在する命令とともに含む命令のシーケンスに応答して、処理するための前記手段は、以下のうちの少なくとも1つを含む緩和された実行をサポートするように構成され、
前記第1のスカラー・レジスタはソース・レジスタであり、前記第2のスカラー・レジスタは宛先レジスタであり、処理するための手段は、第2のスカラー・レジスタが前記第1のスカラー・レジスタと同じレジスタであるかどうかに応じて異なる、前記第1の混合スカラー・ベクトル命令の結果を生成するために、前記第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との前記重複実行を許可にするように構成され、
前記第1のスカラー・レジスタは宛先レジスタであり、前記第2のスカラー・レジスタはソース・レジスタであり、前記第1のスカラー・レジスタ及び前記第2のスカラー・レジスタは、同じレジスタであり、処理するための前記手段は、第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との間の介在する命令の数に応じて異なる、前記第2の混合スカラー・ベクトル命令の結果を生成するために、前記第1の混合スカラー・ベクトル命令と後続の混合スカラー・ベクトル命令との前記重複実行を許可にするように構成される、
装置。
(42) 項(22)から(40)までのいずれか一項に記載の装置に対応する、命令実行環境を与えるようにホスト・データ処理装置を制御するためのプログラム命令を含む、仮想マシン・コンピュータ・プログラム。
Claims (20)
- ソース・オペランド及び結果値のうちの少なくとも1つが、複数のデータ要素を含むベクトル値である、ベクトル命令を処理するための処理回路を備える装置であって、
所与のベクトル命令に応答して、前記処理回路が、処理の複数のビートを実施するように構成され、各ビートが、前記ベクトル値の一部分に対応する処理を含み、
前記処理回路は、前記所与のベクトル命令を含む複数のベクトル命令のどのビートが完了したかを示すビート・ステータス情報を設定するように構成され、
イベントに応答して、前記処理回路が、前記所与のベクトル命令の処理を中断するように構成され、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰要求に応答して、前記処理回路が、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令の前記ビートを抑制しながら、前記複数のベクトル命令の処理を再開するように構成され、
前記ベクトル値が、前記処理回路にとってアクセス可能なデータ要素サイズ情報によって指定された複数のデータ要素サイズのうちの1つを有するデータ要素を含み、
処理の各ビートが、前記データ要素サイズ情報によって示された前記データ要素サイズにかかわらず、前記ベクトル値の固定サイズ部分に対応する処理を含む、
装置。 - 前記処理回路が、前記複数のベクトル命令のうちの1つのアドレスを示す復帰アドレスを設定するように構成され、
前記イベントからの復帰要求に応答して、前記処理回路は、前記復帰アドレス及び前記ビート・ステータス情報に基づいて、処理が再開されるべきであるポイントを識別するように構成された、請求項1に記載の装置。 - 前記復帰アドレスは、少なくとも1つのビートが依然として完了されるべきである、最も古いベクトル命令のアドレスを示す、請求項2に記載の装置。
- 前記複数のベクトル命令は、少なくとも1つのビートが依然として完了されるべきである、最も古いベクトル命令と、少なくとも1つの後続のベクトル命令とを含む、請求項1から3のいずれか一項に記載の装置。
- 前記処理回路が、前記所与のベクトル命令の前記複数のビートの第1のサブセットを完了した後に、前記所与のベクトル命令の前記複数のビートの第2のサブセットを実施するように構成された、請求項1から4のいずれか一項に記載の装置。
- 前記処理回路が、第2のベクトル命令のためのビートの前記第1のサブセットを実施することと並行して、第1のベクトル命令のためのビートの前記第2のサブセットを実施するように構成された、請求項5に記載の装置。
- 後続のベクトル命令の第1のビートを開始する前に、1つのベクトル命令のいくつのビートが完了されるべきかを、命令ごとに変化させるための制御回路を備える、請求項1から6のいずれか一項に記載の装置。
- 前記処理回路が、前記所与のベクトル命令の前記複数のビートのすべてを並行して実施するには不十分なハードウェアを備える、請求項1から7のいずれか一項に記載の装置。
- 前記処理回路が、前記所与のベクトル命令の前記複数のビートのすべてを並行して実施するのをサポートするように構成されたハードウェアを備える、請求項1から4、6及び7のいずれか一項に記載の装置。
- 前記処理回路が、前記ビート・ステータス情報を、前記処理回路によって実行されるソフトウェア、例外ハンドラ及びデバッガのうちの少なくとも1つにとってアクセス可能にするように構成された、請求項1から9のいずれか一項に記載の装置。
- 前記イベントがデバッグ・イベントを含み、前記イベントからの復帰要求がデバッグ状態からの復帰を含む、請求項1から10のいずれか一項に記載の装置。
- 前記イベントが例外イベントを含み、前記イベントからの復帰要求が例外復帰を含む、請求項1から11のいずれか一項に記載の装置。
- 前記例外イベントが障害イベントを含み、前記障害イベントに応答して、前記処理回路は、前記複数のベクトル命令のうちのどれが、前記障害イベントが検出された、前記所与のベクトル命令であるかを識別する情報を設定するように構成された、請求項12に記載の装置。
- 前記例外イベントに応答して、前記処理回路が、前記ビート・ステータス情報へのアクセスを無効化するように構成され、
前記ビート・ステータス情報にアクセスすることを試みる命令、又は処理の複数のビートを含む少なくとも1つのタイプのさらなるベクトル命令の実行に応答して、前記処理回路が、
前記ビート・ステータス情報を所定のロケーションに保存すること、又は
第2の例外イベントを起こすこと
を行うように構成された、請求項12又は13に記載の装置。 - 前記例外イベントに応答して、前記処理回路が、前記ビート・ステータス情報を、スタック・ポインタ・レジスタによって示された値に対するオフセットにおいてデータ・ストア中のロケーションに保存するように構成された、請求項12又は13に記載の装置。
- 前記処理回路が、少なくともセキュアな状態及びあまりセキュアでない状態を含む複数のセキュリティ状態で動作可能であり、前記例外イベントが、前記セキュアな状態から前記あまりセキュアでない状態への遷移を生じることに応答して、前記処理回路が、前記ビート・ステータス情報をクリアするように構成された、請求項15に記載の装置。
- 前記処理回路が、
処理の所与のビートに対応する宛先ベクトル・レジスタの一部分を更新することを抑制することと、
処理の前記所与のビートに関連する処理演算を抑制することと
のうちの1つによって処理の前記所与のビートを抑制するように構成された、請求項1から16のいずれか一項に記載の装置。 - ソース・オペランド及び結果値のうちの少なくとも1つが、複数のデータ要素を含むベクトル値である、ベクトル命令を処理するための手段を備える装置であって、
所与のベクトル命令に応答して、処理するための前記手段が、処理の複数のビートを実施するように構成され、各ビートが、前記ベクトル値の一部分に対応する処理を含み、
処理するための前記手段は、前記所与のベクトル命令を含む複数のベクトル命令のどのビートが完了したかを示すビート・ステータス情報を設定するように構成され、
イベントに応答して、処理するための前記手段が、前記所与のベクトル命令の処理を中断するように構成され、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰要求に応答して、処理するための前記手段が、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令の前記ビートを抑制しながら、前記複数のベクトル命令の処理を再開するように構成され、
前記ベクトル値が、処理するための前記手段にとってアクセス可能なデータ要素サイズ情報によって指定された複数のデータ要素サイズのうちの1つを有するデータ要素を含み、
処理の各ビートが、前記データ要素サイズ情報によって示された前記データ要素サイズにかかわらず、前記ベクトル値の固定サイズ部分に対応する処理を含む、装置。 - ソース・オペランド及び結果値のうちの少なくとも1つが、複数のデータ要素を含むベクトル値である、ベクトル命令を処理する方法であって、前記方法は、
所与のベクトル命令に応答して、処理の複数のビートを実施するステップであって、各ビートが、前記ベクトル値の一部分に対応する処理を含む、ステップと、
前記所与のベクトル命令を含む複数のベクトル命令のどのビートが完了したかを示すビート・ステータス情報を設定するステップと、
イベントに応答して、前記所与のベクトル命令の処理を中断するステップと、
前記所与のベクトル命令の処理への復帰を示す、イベントからの復帰要求に応答して、完了したものとして前記ビート・ステータス情報によって示された前記複数のベクトル命令の前記ビートを抑制しながら、前記複数のベクトル命令の処理を再開するステップと
を含み、
前記ベクトル値が、データ要素サイズ情報によって指定された複数のデータ要素サイズのうちの1つを有するデータ要素を含み、
処理の各ビートが、前記データ要素サイズ情報によって示された前記データ要素サイズにかかわらず、前記ベクトル値の固定サイズ部分に対応する処理を含む、方法。 - 請求項1から17のいずれか一項に記載の前記装置に対応する、命令実行環境を与えるようにホスト・データ処理装置を制御するためのプログラム命令を含む、仮想マシン・コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1604944.7A GB2548601B (en) | 2016-03-23 | 2016-03-23 | Processing vector instructions |
GB1604944.7 | 2016-03-23 | ||
PCT/GB2017/050736 WO2017163023A1 (en) | 2016-03-23 | 2017-03-17 | Processing vector instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019510313A JP2019510313A (ja) | 2019-04-11 |
JP6882320B2 true JP6882320B2 (ja) | 2021-06-02 |
Family
ID=55968774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018548864A Active JP6882320B2 (ja) | 2016-03-23 | 2017-03-17 | ベクトル命令の処理 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11269649B2 (ja) |
EP (1) | EP3433724B1 (ja) |
JP (1) | JP6882320B2 (ja) |
KR (1) | KR102379886B1 (ja) |
CN (1) | CN108834427B (ja) |
GB (1) | GB2548601B (ja) |
IL (1) | IL261309B (ja) |
TW (1) | TWI756212B (ja) |
WO (1) | WO2017163023A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2620381A (en) * | 2022-06-30 | 2024-01-10 | Advanced Risc Mach Ltd | Vector extract and merge instruction |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0766329B2 (ja) * | 1985-06-14 | 1995-07-19 | 株式会社日立製作所 | 情報処理装置 |
US4745547A (en) * | 1985-06-17 | 1988-05-17 | International Business Machines Corp. | Vector processing |
US5008812A (en) | 1988-03-18 | 1991-04-16 | Digital Equipment Corporation | Context switching method and apparatus for use in a vector processing system |
US5113521A (en) | 1988-03-18 | 1992-05-12 | Digital Equipment Corporation | Method and apparatus for handling faults of vector instructions causing memory management exceptions |
EP0333365A3 (en) * | 1988-03-18 | 1991-05-08 | Digital Equipment Corporation | Method and apparatus for handling asynchronous memory management exceptions by a vector processor |
US5623650A (en) | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
US6317819B1 (en) | 1996-01-11 | 2001-11-13 | Steven G. Morton | Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction |
US6304963B1 (en) * | 1998-05-14 | 2001-10-16 | Arm Limited | Handling exceptions occuring during processing of vector instructions |
US6530011B1 (en) | 1999-10-20 | 2003-03-04 | Sandcraft, Inc. | Method and apparatus for vector register with scalar values |
US6701424B1 (en) * | 2000-04-07 | 2004-03-02 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
US6857061B1 (en) | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
GB2376100B (en) | 2001-05-31 | 2005-03-09 | Advanced Risc Mach Ltd | Data processing using multiple instruction sets |
US20030221086A1 (en) | 2002-02-13 | 2003-11-27 | Simovich Slobodan A. | Configurable stream processor apparatus and methods |
US7043616B1 (en) * | 2002-04-18 | 2006-05-09 | Advanced Micro Devices, Inc. | Method of controlling access to model specific registers of a microprocessor |
US8719837B2 (en) * | 2004-05-19 | 2014-05-06 | Synopsys, Inc. | Microprocessor architecture having extendible logic |
US7594102B2 (en) | 2004-12-15 | 2009-09-22 | Stmicroelectronics, Inc. | Method and apparatus for vector execution on a scalar machine |
US8098251B2 (en) | 2008-02-22 | 2012-01-17 | Qualcomm Incorporated | System and method for instruction latency reduction in graphics processing |
GB2470782B (en) * | 2009-06-05 | 2014-10-22 | Advanced Risc Mach Ltd | A data processing apparatus and method for handling vector instructions |
US10175990B2 (en) * | 2009-12-22 | 2019-01-08 | Intel Corporation | Gathering and scattering multiple data elements |
US8893306B2 (en) * | 2010-08-31 | 2014-11-18 | International Business Machines Corporation | Resource management and security system |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US20120216011A1 (en) * | 2011-02-18 | 2012-08-23 | Darryl Gove | Apparatus and method of single-instruction, multiple-data vector operation masking |
GB2489914B (en) | 2011-04-04 | 2019-12-18 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing vector operations |
CN106951214B (zh) * | 2011-09-26 | 2019-07-19 | 英特尔公司 | 用于向量加载/存储操作的处理器、系统、介质和方法 |
US9202071B2 (en) * | 2012-02-08 | 2015-12-01 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US9098265B2 (en) * | 2012-07-11 | 2015-08-04 | Arm Limited | Controlling an order for processing data elements during vector processing |
US20140188961A1 (en) | 2012-12-27 | 2014-07-03 | Mikhail Plotnikov | Vectorization Of Collapsed Multi-Nested Loops |
KR102179385B1 (ko) | 2013-11-29 | 2020-11-16 | 삼성전자주식회사 | 명령어를 실행하는 방법 및 프로세서, 명령어를 부호화하는 방법 및 장치 및 기록매체 |
US10387150B2 (en) | 2015-06-24 | 2019-08-20 | International Business Machines Corporation | Instructions to count contiguous register elements having a specific value in a selected location |
US11275590B2 (en) | 2015-08-26 | 2022-03-15 | Huawei Technologies Co., Ltd. | Device and processing architecture for resolving execution pipeline dependencies without requiring no operation instructions in the instruction memory |
-
2016
- 2016-03-23 GB GB1604944.7A patent/GB2548601B/en active Active
-
2017
- 2017-03-17 JP JP2018548864A patent/JP6882320B2/ja active Active
- 2017-03-17 KR KR1020187029665A patent/KR102379886B1/ko active IP Right Grant
- 2017-03-17 WO PCT/GB2017/050736 patent/WO2017163023A1/en active Application Filing
- 2017-03-17 CN CN201780017771.3A patent/CN108834427B/zh active Active
- 2017-03-17 US US16/078,780 patent/US11269649B2/en active Active
- 2017-03-17 EP EP17713390.7A patent/EP3433724B1/en active Active
- 2017-03-22 TW TW106109458A patent/TWI756212B/zh active
-
2018
- 2018-08-22 IL IL261309A patent/IL261309B/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
GB2548601B (en) | 2019-02-13 |
GB2548601A (en) | 2017-09-27 |
CN108834427B (zh) | 2023-03-03 |
EP3433724A1 (en) | 2019-01-30 |
KR20180126518A (ko) | 2018-11-27 |
KR102379886B1 (ko) | 2022-03-30 |
US11269649B2 (en) | 2022-03-08 |
JP2019510313A (ja) | 2019-04-11 |
IL261309A (en) | 2018-10-31 |
GB201604944D0 (en) | 2016-05-04 |
CN108834427A (zh) | 2018-11-16 |
US20190056933A1 (en) | 2019-02-21 |
TW201734769A (zh) | 2017-10-01 |
WO2017163023A1 (en) | 2017-09-28 |
EP3433724B1 (en) | 2022-09-07 |
TWI756212B (zh) | 2022-03-01 |
IL261309B (en) | 2020-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10599428B2 (en) | Relaxed execution of overlapping mixed-scalar-vector instructions | |
US11263073B2 (en) | Error recovery for intra-core lockstep mode | |
TWI740844B (zh) | 用於資料處理的方法、設備、及電腦程式 | |
US6631460B1 (en) | Advanced load address table entry invalidation based on register address wraparound | |
JP2786574B2 (ja) | コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置 | |
US6505296B2 (en) | Emulated branch effected by trampoline mechanism | |
US11507475B2 (en) | Error detection using vector processing circuitry | |
JPH0668726B2 (ja) | レジスタ管理システム | |
CN111133418A (zh) | 在例外屏蔽更新指令之后允许未中止的事务处理 | |
JPH03116234A (ja) | 複数の命令ソースを有するマルチプロセッサシステム | |
CN109416632B (zh) | 用于处理数据的装置和方法 | |
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 | |
JP6882320B2 (ja) | ベクトル命令の処理 | |
US7890740B2 (en) | Processor comprising a first and a second mode of operation and method of operating the same | |
JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
Shah et al. | SPSIM: SuperScalar Processor SIMulater CS305 Project Report | |
JPS5971550A (ja) | 命令処理方式 | |
Kong | Interrupt Support on the ρ-VEX processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200310 |
|
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: 20210409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210506 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6882320 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |