JP2020526825A - ベクトル要素内のビット値のテスト - Google Patents

ベクトル要素内のビット値のテスト Download PDF

Info

Publication number
JP2020526825A
JP2020526825A JP2019572555A JP2019572555A JP2020526825A JP 2020526825 A JP2020526825 A JP 2020526825A JP 2019572555 A JP2019572555 A JP 2019572555A JP 2019572555 A JP2019572555 A JP 2019572555A JP 2020526825 A JP2020526825 A JP 2020526825A
Authority
JP
Japan
Prior art keywords
bit
instruction
index
source vector
result
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.)
Pending
Application number
JP2019572555A
Other languages
English (en)
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 JP2020526825A publication Critical patent/JP2020526825A/ja
Priority to JP2023040331A priority Critical patent/JP2023085319A/ja
Pending legal-status Critical Current

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/30018Bit or string 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/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Abstract

装置および装置を動作させる方法が提供される。装置は、複数の結果ビットを生成するためにソースベクトルレジスタに格納された複数の要素に対してビットテスト手順を実行するため、ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応答する。ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを含む。したがって、このビットテスト命令により、複数のビットテストを実行するために必要とされ、ベクトル化された形式に適切に定式化され得る、プログラムコードの性能を向上させることができる。

Description

本開示は、データ処理装置に関する。より具体的には、データ処理装置によって処理されたベクトル要素内のビット値のテストに関する。
データ処理装置がデータ処理を実行しているとき、入力値の指定されたビットが設定されているか否かをデータ処理装置がテストすることは有用であり得る。このように、たとえば特定の機能をオンまたはオフに切り替えるように、特定のデータ処理挙動を修正するように、処理のために特定の指定された入力データを包含または除外するようになど、データ処理装置の動作を制御するために、入力値の当該ビットはプログラマによって使用され得る。
例示的な一実施形態では、命令をデコードし、命令に応じた制御信号を生成する命令デコード回路と、命令デコード回路によって生成された制御信号に応えてデータ処理動作を実行するデータ処理回路とを備える装置であって、命令デコード回路は、複数の結果ビットを生成するためにソースベクトルレジスタ内に格納された複数の要素に対してデータ処理回路にビットテスト手順を実行させるため、ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応答し、ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを含む、装置がある。
別の例示的実施形態では、データ処理装置を動作させる方法であって、命令をデコードし、命令に応じた制御信号を生成するステップと、生成された制御信号に応えてデータ処理動作を実行するステップと、ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応えて、複数の結果ビットを生成するためにソースベクトルレジスタ内に格納された複数の要素に対するビットテスト手順の実行を行わせるステップと、を備え、ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを備える、方法がある。
別の例示的実施形態では、命令をデコードし、命令に応じた制御信号を生成する手段と、生成された制御信号に応えてデータ処理動作を実行する手段と、ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応えて、複数の結果ビットを生成するためにソースベクトルレジスタ内に格納された複数の要素に対するビットテスト手順の実行を行わせる手段と、を備える装置であって、ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを備える、装置がある。
別の例示的実施形態では、命令をデコードし、命令に応じた制御信号を生成するための命令デコードプログラムロジックと、命令デコードプログラムロジックによって生成された制御信号に応えてデータ処理動作を実行するためのデータ処理プログラムロジックと、を備える命令実行環境を提供するようにホストデータ処理装置を制御するためのコンピュータプログラムであって、命令デコードプログラムロジックは、データ処理プログラムロジックに、複数の結果ビットを生成するためにソースベクトルデータ構造内に格納された複数の要素に対してビットテスト手順を実行させるため、ソースベクトルデータ構造およびインデックスを指定するビットテスト命令に応答し、ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルデータ構造の処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを含む、コンピュータプログラムがある。
本技術は、以下の添付図面に示されるようなその実施形態を参照して、単なる例示によって、さらに説明される。
一実施形態のデータ処理装置を概略的に示す図である。 一実施形態のソースベクトルの要素に対してビットテスト手順を実行するデータ処理回路を概略的に示す図である。 一実施形態の支配述語値を参照してソースベクトルの要素に対してビットテスト手順を実行するデータ処理回路を概略的に示す図である。 図3Aに示される実施形態に対応する2つの例示的なビットテスト命令を示す図である。 一実施形態のスカラーインデックス値を参照してビットテスト手順を実行するための例示的なビットテスト命令および対応するデータ処理回路を示す図である。 一実施形態のインデックスベクトルによって与えられた各要素について特定のインデックス値を参照してソースベクトルの要素に対してビットテスト手順を実行するための、例示的なビットテスト命令および対応するデータ処理回路を示す図である。 一実施形態の方法を実行するときに取られる一連のステップを示す図である。 一実施形態のシミュレータ実装を提供するシステムのコンポーネントを概略的に示す図である。
少なくともいくつかの実施形態は、命令をデコードし、命令に応じた制御信号を生成する命令デコード回路と、命令デコード回路によって生成された制御信号に応えてデータ処理動作を実行するデータ処理回路とを備える装置であって、命令デコード回路は、複数の結果ビットを生成するためにソースベクトルレジスタ内に格納された複数の要素に対してデータ処理回路にビットテスト手順を実行させるため、ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応答し、ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを含む、装置を提供する。
したがって、ビットテスト命令、およびこれを実行するための対応するサポート回路は、テストすべきそれぞれのビットがソースベクトルのそれぞれの要素内で見つかるアプローチによって、複数のビットに対して平行してビットテストを実行する能力をプログラマに提供する。これを保持するベクトルレジスタを参照して指定されたソースベクトルは、こうしてビットテスト手順への1つの入力を形成し、ビットテスト命令で指定されたインデックスにより、プログラマは、ソースベクトル内の要素のどのビットがビットテストを受けるかを定義することができる。ビットテスト命令に応えて実行されるビットテスト手順の結果は、結果ビットのセットであり(1つの結果ビットは、ビットテスト手順を受けるソースベクトルの複数の要素の各処理済み要素に対応する)、複数の結果ビットの各結果ビットは、対応するテストビットの値に応じて設定される。したがって、ビットテストの文脈では、結果ビットはテストビットと一致するように設定されることが可能であり、または反対に、結果ビットはテストビットの補数(逆数)になるように設定されることが可能であることが理解され、これは本質的に実装の選択である。したがって、このビットテスト命令の提供により、複数のビットテストを実行するために必要とされ、ベクトル化された形式に適切に定式化され得る、任意のプログラムコードの性能を向上させることができる。基本的に、線形アプローチの代わりに並列化アプローチが提供される。
データ処理回路の能力および構成によっては、ソースベクトルレジスタの要素の全てがビットテスト手順を受けなくてもよい。言い換えると、ソースベクトルレジスタの要素の厳密なサブセットのみがビットテスト手順を受けてもよい。しかしながら、いくつかの実施形態では、ビットテスト手順を受ける複数の要素は、ソースベクトルレジスタの全ての要素を含む。
プログラマには、ソースベクトルレジスタのどの要素がビットテスト手順を受けるかを指定する能力が提供されてもよい。したがって、ビットテスト手順のいくつかの実施形態では、支配述語ビット値のセットのそれぞれの述語ビットが第1所定値を有するとき、複数の要素のうちの1つの要素は処理済み要素としてビットテスト手順を受ける。言い換えると、プログラマは、ソースベクトルの対応する要素に対してビットテスト手順を実行させるために、対応する述語ビットを第1所定値(たとえば1)に設定する。
データ処理回路の構成および能力に応じて、支配述語ビット値のセットは、たとえばソースベクトルレジスタの要素の厳密なサブセットにのみ対応する、ソースベクトルレジスタ内の要素の数に関連して長さが異なる可能性があるが、いくつかの実施形態では、支配述語ビット値のセット内のいくつかの値は、ソースベクトルレジスタ内のいくつかの要素と一致する。
支配述語ビット値のセットは様々な方法で提供され得るが、いくつかの実施形態では、ビットテスト命令は支配述語ビット値のセットを指定し、さらにいくつかの実施形態では、ビットテスト命令は支配述語ビット値のセットを保持するレジスタを指定する。したがって、たとえば指定されたレジスタに支配述語ビット値を設定することによって、プログラマは、ソースベクトルの要素のうちのどれがビットテスト手順を受けるかを決定できる。
ビットテスト手順は、このような支配述語ビット値のセットが提供されるときに様々に構成され得るが、ビットテスト手順のいくつかの実施形態では、支配述語ビット値のセットのそれぞれの述語ビットが第1所定値を有していないとき、複数の結果ビットのそれぞれの結果ビットが第2所定値に設定される。第1所定値および第2所定値の選択が任意の実装選択であることは明確に理解されるが、いくつかの実施形態では、支配述語ビット値が0であるとき、対応するそれぞれの結果ビットもまた0に設定される。したがって、反対に述語ビットが1に設定されるとき、ソースベクトルレジスタの対応する要素はビットテスト手順の一部として処理され、インデックスによって示されるビット位置における処理済み要素のテストビットは、対応する結果ビットを決定する。
データ処理回路は、様々な方法で複数の結果ビットを利用し得るが、いくつかの実施形態では、データ処理回路は、複数の結果ビットを結果レジスタに格納するように配置される。この結果レジスタは、デフォルトで既知であってもよく、またはいくつかの実施形態では、結果レジスタはビットテスト命令において指定される。したがって、プログラマには、複数の結果ビットが格納されるべきレジスタを指定する能力が与えられる。
一般に、複数の結果ビットの数は、ソースベクトルの複数の要素に関連して、たとえばデータ処理回路の能力および構成に応じて異なってもよく、複数の結果ビットの数はソースベクトルレジスタ内の要素の数よりも少なくてもよいが、いくつかの実施形態では、複数の結果ビットのカウントは、ソースベクトルレジスタに格納された複数の要素のカウントと一致する。
複数の結果ビットのそれぞれの結果ビットは、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置におけるテストビットの値に応じて設定され、装置がこの設定を補完的に行うために設定され得ることは、理解されるだろう。言い換えると、ビットテスト手順のいくつかの実施形態では、複数の結果ビットのそれぞれの結果ビットは、テストビットの値と一致するように設定される。反対に、ビットテスト手順の別の実施形態では、複数の結果ビットのそれぞれの結果ビットは、テストビットの値と一致しないように設定される。実際、これら2つの変形は2つの異なるビットテスト命令として提供され得、これらは本明細書において、TSTZ(「テストゼロ(test zero)」)およびTSTNZ(「テスト非ゼロ(test non-zero)」)と呼ばれる。
また、両方のタイプのビットテスト命令に応答し得る本技術による装置が提供されてもよく、こうしてプログラマに、ゼロ設定ビットでテストするか非ゼロ設定ビットでテストするかの選択肢を与え、したがっていくつかの実施形態では、命令デコード回路はさらなるビットテスト命令に応答し、これによってデータ処理回路は、さらなるテストビットの値と一致しないようにさらなる複数の結果ビットのさらなるそれぞれの結果ビットを設定することを含む、さらなるビットテスト手順を実行することができる。言い換えると、プログラマは、結果ビットがテストビットの値と一致するように設定されるビットテスト命令を使用し、その後、結果ビットがテストビットと一致するように設定されないさらなるビットテスト命令を使用することができる。
反対に、いくつかの実施形態では、命令デコード回路はさらなるビットテスト命令に応答し、これによってデータ処理回路は、さらなるテストビットの値と一致するようにさらなる複数の結果ビットのさらなるそれぞれの結果ビットを設定することを含む、さらなるビットテスト手順を実行する。したがって、プログラマは、結果ビットをテストビットの値と一致しないように設定させるビットテスト命令を使用し、その後、結果ビットをテストビットと一致させるさらなるビットテスト命令を使用することができる。本明細書で論じられる特定の実施形態の言語では、プログラマは、TSTZ命令およびTSTNZ命令の両方を、どのような定義でも、どちらの順序でも、使用することができる。
インデックスは、様々に定義され得るが、いくつかの実施形態では、インデックスは、ビットテスト命令で指定された即値である。あるいは、ビットテスト命令はスカラーインデックスレジスタを指定してもよく、このような実施形態では、インデックスは、ビットテスト命令で指定されたスカラーインデックスレジスタに格納されたスカラー値である。さらに別の実施形態では、ビットテスト命令は、複数のインデックス値を保持するベクトルインデックスレジスタを指定してもよく、ビットテスト手順において、複数の要素の各処理済み要素では、インデックスは、複数のインデックス値のそれぞれのインデックス値によって与えられる。これは、スカラーの例とは異なり、プログラマが、ソースベクトルの複数の要素の各処理済み要素について異なるインデックス値を使用し、こうして所与の要素のいずれのビットもビットテストできることを意味する。
少なくともいくつかの実施形態は、命令をデコードして命令に応じた制御信号を生成し、生成された制御信号に応えてデータ処理動作を実行し、ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応えて、複数の結果ビットを生成するためにソースベクトルレジスタ内に格納された複数の要素に対するビットテスト手順の実行を行わせる方法であって、ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを備える、方法を提供する。
少なくともいくつかの実施形態は、命令をデコードし、命令に応じた制御信号を生成する手段と、生成された制御信号に応えてデータ処理動作を実行する手段と、ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応えて、複数の結果ビットを生成するためにソースベクトルレジスタ内に格納された複数の要素に対するビットテスト手順の実行を行わせる手段と、を備える装置であって、ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを備える、装置を提供する。
別の例示的実施形態では、命令をデコードし、命令に応じた制御信号を生成するための命令デコードプログラムロジックと、命令デコードプログラムロジックによって生成された制御信号に応えてデータ処理動作を実行するためのデータ処理プログラムロジックと、を備える命令実行環境を提供するようにホストデータ処理装置を制御するためのコンピュータプログラムであって、命令デコードプログラムロジックは、データ処理プログラムロジックに、複数の結果ビットを生成するためにソースベクトルデータ構造内に格納された複数の要素に対してビットテスト手順を実行させるため、ソースベクトルデータ構造およびインデックスを指定するビットテスト命令に応答し、ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルデータ構造の処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを含む、コンピュータプログラムがある。
少なくともいくつかの実施形態は、上述の実施形態によるコンピュータプログラムを格納するコンピュータ可読記憶媒体を提供する。プログラムは、非一時的に格納されてもよい。
ここで、いくつかの具体的な実施形態が、図面を参照して説明される。
図1は、一実施形態のデータ処理装置を概略的に示す。データ処理装置10の一般的な構成は、当業者によく知られており、本技術に特に関連しないコンポーネントの詳細な説明は、簡潔にするために本明細書では省略される。概略的に、図1に示されるように、データ処理装置10は、関連するシステムレジスタ14、汎用レジスタ16、およびベクトルレジスタ18を有する実行回路12を備える。実行回路12は、そのデータ処理動作を実行する際に、これらのレジスタを利用する。実行回路12が実行するデータ処理動作は、フェッチ回路22の動作によってメモリ20から取得された一連の命令によって定義される。メモリ20から命令を取得する際に、命令は、レベル1命令キャッシュ24および統合レベル2キャッシュ26の一方または両方に一時的にキャッシュされてもよい。このようにしてフェッチ回路22によってフェッチされた命令は、取得された命令およびこれらが担持する特定の命令パラメータに基づいて実行回路12の制御信号を生成する、デコード回路28に渡される。実行回路12は、上述のように、レジスタ14、16、および18に関して、また必要に応じて、メモリ20からデータ項目を取得し、処理したデータ項目をメモリ20に書き戻すことによって、データ処理動作を実行する。命令の場合のように、実行回路12によってメモリ20内でアクセスされたデータ項目は、キャッシュ階層、すなわちレベル1データキャッシュ30および統合レベル2キャッシュ26によって、同様にアクセスされる。実行回路12のさらなる詳細は、以下の図面を参照して、様々な実施形態に関連してここで与えられる。
図2は、ビットテスト命令によって開始されるビットテスト手順を実行するために提供された一実施形態における実行回路12の一部の構成を概略的に示す。ビットテスト命令は、2つの変形、すなわちTSTZおよびTSTNZで、図2の上部に示される。図示されるように、これらの命令は、ソースベクトル(レジスタ)およびインデックス値を指定する。この例では、インデックス値は即値である。図示される例では2の即値を有するインデックス値により、データ処理回路は、ソースベクトルの各要素内のビット位置2におけるそれぞれのビットにアクセスできる。したがって、ソースベクトルが、各々8ビットを含む4つの要素を備える図示の例では、これによってデータ処理回路は、(ビット位置2において)各要素の3つ目のビットにアクセスできる。これらのビットは、コンパレータ40、42、44、および46に渡される。これらのコンパレータの各々は、ビットテスト命令がTSTZかTSTNZかを示すバイナリ入力である、第2の入力を有する。このバイナリ入力は、TSTZ命令では、コンパレータが、ソースベクトルの対応する要素内のインデックスされたビット位置におけるテストビットの補数を生成し、その一方で命令がTSTNZであるときにはそれぞれのコンパレータにより、結果ビットがソースベクトルの対応する要素内のインデックスされたビット位置におけるテストビットと一致するように、各コンパレータによって実行されるビットテストを反転させる。図2に示される例示的な値はTSTZ命令を受け、したがってコンパレータは、結果ビットのセットを作成するために、ソースベクトルからの4つのテストビットのセットを反転させる。
図3Aは、ここではビットテスト手順が支配述語ビット値のセットの内容にさらにしたがって実行される、さらなる例示的実施形態におけるデータ処理回路の関連コンポーネントを概略的に示す。TSTZおよびTSTNZとも呼ばれる、ビットテスト命令の対応する対が、図3Bに示される。図3Aの項目60として示される、支配述語ビット値のセットのそれぞれのビットは、ソースベクトルの特定の要素がビットテスト手順のビットテストを受けるか否かを決定する。図示される例では、支配述語ビット値のセットの対応するビットが1に設定されるソースベクトルの要素のみが、このビットテストを受ける。これを実施するために、ビットテスト制御回路62は、支配述語ビット値60のセットを受け取り、ビットテストコンパレータ64、66、68、および70の動作を制御するオーバーライド信号のセットを生成する。図2の例のように、これらのコンパレータは、ソースベクトルの各要素からのインデックス値によって識別された対応するテスト対象ビットを受け取り、バイナリTSTZ/TSTNZ入力によっても制御される。結果ビット72のセットは、こうしてコンパレータによって生成される。したがって、支配述語60の2つの最下位ビットのみが設定される図3Aの例では、結果ビットのセットの2つの最上位ビットが自動的に0に設定され、その一方で、結果ビット72のセットの2つの最下位ビットは、これらがテストとしたそれぞれのビットに応じて、コンパレータ68および70によって設定される。これは、図3Aの例で実行されているTSTZ命令であり、したがってテストビットは、結果ビット72のセットの2つの最下位ビットを「0」および「1」として生成するために反転される。図3Bに示される例に見られるように、この例のTSTZおよびTSTNZ命令は、図2の例としてソースベクトルレジスタおよびインデックス即値として指定するが、ここでは支配述語レジスタおよび宛先レジスタをさらに指定する。したがって、支配述語ビット値60のセットは指定された支配述語レジスタから取得され、一方で結果ビット72のセットは指定された宛先レジスタに書き込まれる。図3Bの命令は図2の例に関して宛先レジスタおよび支配述語レジスタの両方を追加で指定するという事実に意味はなく、別の例示的実施形態では、ビットテスト命令は、ソースレジスタおよびインデックスに加えてこれらのうちの1つのみを指定してもよいことは、理解されるだろう。
図4Aは、TSTZ命令が、宛先レジスタ、支配述語レジスタ、ソースベクトルレジスタ、インデックス(スカラー)レジスタを指定する例を示す。したがって、対応するビットテスト手順を実行するデータ処理回路は、指定されたレジスタPgから支配述語ビット値80のセットを、指定されたインデックスレジスタからインデックス値82を、取得する(この例では、インデックス値は7)。したがって、ソースベクトルZsのそれぞれの要素において、支配述語80の対応するビットが設定されると、各(i=7)の8番目のビットがアクセスされてテストされる。説明を簡単にするために、簡略化された構成が図4Aに示されており、ソースベクトルZsのテストビットから宛先述語84のそれぞれの結果ビットまで矢印が直接延びている。実際には、これらの矢印は、図3Aの例に示されるもののようなコンパレータのセットを介して実施され、これらは支配述語80のそれぞれのセットによって、ならびに命令がTSTZかTSTNZかを示すバイナリ値によっても制御される。命令がTSTZである図4Aの例では、テストビットは、宛先述語84の対応するビットを提供するために反転される(これは表記によって図4Aに示されている:ソースビット(0/1)は結果ビット(1/0)へ)。
図4Bを見ると、やはり宛先結果レジスタ、支配述語レジスタ、およびソースベクトルレジスタを指定し、この例ではインデックスベクトルレジスタも指定する、TSTNZ命令の例が示されている。したがって、支配述語86は、ビットテスト手順を受けるべきソースベクトルZsの要素を再び選択する一方で、各テスト済み要素のうちどのビットがテストされるかは、インデックスベクトル88の対応する要素において与えられたインデックスによって個別に指定される。このように、図4Bで与えられる例では、ビット位置4は要素0でテストされ、ビット位置2は要素2でテストされ、ビット位置7は要素4でテストされ、ビット位置0は要素6でテストされることがわかる。支配述語86の対応するビットは0に設定され、したがって述語90の宛先の対応するビットも0に設定されるので、要素1、3、5、および7ではビットはテストされない。
図4Bに示される例はTSTNZ命令の例であり、したがってソースベクトルのテストビットは宛先述語90の対応するビット内に効率的に複製される(これは表記によって図4Bに示されている:ソースビット(0/1)は結果ビット(0/1)へ)。図4Aの場合のように、図4Bの説明は、説明を簡単にするために、ソースベクトルZsのそれぞれの要素のテストビットから宛先述語90の対応するビット位置まで単に矢印が延びている、簡略化された形態で示されている。以前のように、実際には、これらは、テスト対象入力ビットを受け取り、命令がTSTZかTSTNZかを示すバイナリ入力によって制御される、コンパレータのセットを介して実施される。
さらなる変形例は、上記で説明された例示的実施形態のいずれにも適用可能であり、すなわちビットテスト命令が、そのレジスタの内容のサイズ解釈を示すサイズ指定子を用いてその指定されたレジスタのいずれかをさらに修整し得るものである。これは、たとえばTSTZ<Pd>.<T>,<Pg>.<T>,<Zs>.<T>,インデックスなどのように記述され得る。このサイズ指定子は、たとえば00=バイト長(B);01=半語長(H);10=1倍長(S);および11=2倍長(D)などの命令において、コンパクトに符号化され得る。
サイズ指定子<T>の使用により、プログラマは、要素のそれぞれのベクトルの各要素においてデータ値のサイズを指定することができる。したがって、このサイズ指定子がない場合、または実際にサイズ指定子がデフォルトと一致する値を有する場合には、たとえば「S」、1倍長など、レジスタの要素のデフォルト解釈が使用され得る。しかしながら、<T>の値が命令で指定された場合には、各ベクトル要素の指定されたサイズが使用される。サイズ指定子自体がレジスタによって与えられ、必要なサイズ値を抽出するためにデータ処理回路がその指定されたサイズ指定レジスタにアクセスする、この機能に関するさらなる変形例もまた、上記の例示的実施形態のいずれでも可能である。
図5は、一実施形態の方法にしたがって実行される一連のステップを示す。フローはステップ100で開始されると見なされ、命令デコード回路が、装置に提供された一連の命令における次の命令をデコードする。この図を簡単にするために、デコードすべき次の命令が常にあると想定される。ステップ102において、これがビットテスト命令であるか否かが判断され、そうでない場合には、この命令は、この命令にとって通常の方法でステップ104において単に実行され、フローはステップ100に戻る(ここでは新規なビットテスト命令のみが対象となるため)。ビットテスト命令では、フローはステップ102からステップ104に進み、そこで支配述語のいずれかのビットが0に設定されているか否かが判断される。これは、結果述語の対応する1つまたは複数のビットもまた0に設定されるステップ106を介してフローが進む場合である。次にステップ108において、ビットテスト命令がベクトル(定義された即値またはスカラーレジスタの対語として)インデックスを指定したか否かが判断される。そうである場合には、ベクトルインデックスの対応する要素から取得された、ソースベクトルの各処理済み要素に一意のインデックスが使用される、ステップ110を介してフローが進む。そうでなければ、ステップ112において、インデックスのスカラー値(スカラーレジスタ内で、または命令内の即値として提供される)は、ソースベクトルの全ての処理済み要素に使用される。次にステップ114において、これがTSTZ命令かTSTNZ命令かが判断される。TSTNZ命令では、フローはステップ116に進み、そこでソースベクトルの各処理済み要素のインデックスビットが、結果述語のそれぞれのビットに複製される。あるいは、これがTSTZ命令である場合、フローは、ソースベクトルの各処理済み要素の反転インデックスビットが結果述語のそれぞれのビットに複製される、ステップ118を介して進む。その後、このビットテスト命令の実行が完了し、フローはステップ100に戻る。
図6は、使用され得るシミュレータ実装を示す。先に説明された実施形態は、関連する技術をサポートする特定の処理ハードウェアを動作させる装置および方法に関して本発明を実施したが、コンピュータプログラムの使用を通じて実施される本明細書に記載の実施形態による命令実行環境を提供することも、可能である。このようなコンピュータプログラムは、ハードウェアアーキテクチャのソフトウェアベースの実装を提供する限りにおいて、しばしばシミュレータと呼ばれる。様々なシミュレータコンピュータプログラムは、エミュレータ、仮想マシン、モデル、および動的バイナリトランスレータを含むバイナリトランスレータを含む。通常、シミュレータ実装はホストプロセッサ730上で実行されてもよく、任意選択的に、ホストオペレーティングシステム720を実行し、シミュレータプログラム710をサポートする。いくつかの配置では、ハードウェアと提供された命令実行環境との間、および/または同じホストプロセッサ上に提供された複数の異なる命令実行環境の間に、複数のシミュレーションの層があってもよい。歴史的には、合理的な速度で実行するシミュレータ実装を提供するために強力なプロセッサが必要とされてきたが、このようなアプローチは、互換性または再利用の理由で別のプロセッサにネイティブなコードを実行したいときなど、特定の状況において正当化され得る。たとえば、シミュレータ実装は、ホストプロセッサハードウェアによってサポートされない追加機能を有する命令実行環境を提供してもよく、または通常は異なるハードウェアアーキテクチャに関連付けられた命令実行環境を提供してもよい。シミュレーションの概要は、“Some Efficient Architecture Simulation Techniques”,Robert Bedichek,Winter 1990 USENIX Conference、53〜63ページに記載されている。
特定のハードウェア構造または機能を参照して実施形態が以前に説明された限りにおいて、シミュレートされた実施形態では、適切なソフトウェア構造または機能によって同等の機能が提供され得る。たとえば、特定の回路が、コンピュータプログラムロジックとしてシミュレートされた実施形態で実装されてもよい。同様に、レジスタまたはキャッシュなどのメモリハードウェアが、ソフトウェアデータ構造としてシミュレートされた実施形態に実装されてもよい。先に記載された実施形態で言及されたハードウェア要素の1つ以上がホストハードウェア(たとえば、ホストプロセッサ730)上に存在する配置では、適切であれば、いくつかのシミュレートされた実施形態は、ホストハードウェアを利用してもよい。
シミュレータプログラム710は、コンピュータ可読記憶媒体(非一時的媒体であってもよい)上に格納されてもよく、シミュレータプログラム710によってモデリングされているハードウェアアーキテクチャのアプリケーションプログラムインターフェースと同じであるターゲットコード700にプログラムインターフェース(命令実行環境)を提供する。したがって、上記のビットテスト命令を含む、ターゲットコード700のプログラム命令は、上記で論じられた装置のハードウェア機能を実際には有していないホストコンピュータ730がこれらの機能をエミュレートできるように、シミュレータプログラム710を使用して、命令実行環境内から実行され得る。
簡単な全体的要約では、装置および装置を動作させる方法が提供される。装置は、複数の結果ビットを生成するためにソースベクトルレジスタに格納された複数の要素に対してビットテスト手順を実行するため、ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応答する。ビットテスト手順は、複数の要素の各処理済み要素について、インデックスによって示されるソースベクトルレジスタの処理済み要素内のビット位置のテストビットの値に応じて複数の結果ビットのそれぞれの結果ビットを設定することを含む。したがって、このビットテスト命令により、複数のビットテストを実行するために必要とされ、ベクトル化された形式に適切に定式化され得る、プログラムコードの性能を向上させることができる。
本出願において、「〜するように構成された」という用語は、装置の要素が定義された動作を実行できる構成を有することを意味するために使用される。この文脈で、「構成」は、ハードウェアまたはソフトウェアの配置、または相互接続の方法を意味する。たとえば、装置は、所定の動作を提供する専用ハードウェアを有してもよく、あるいはプロセッサまたは他の処理装置が機能を実行するようにプログラムされてもよい。「構成された」は、所定の動作を提供するために装置要素が多少なりとも変更されなければならないことを示唆するものではない。
以上、添付図面を参照して例示的な実施形態を本明細書で詳細に説明したが、本発明はこれらの厳密な実施形態に限定されるものではなく、添付の特許請求によって規定される本発明の範囲および趣旨から逸脱することなく、様々な変更、追加、および修正が当業者によって実施され得ることが、理解されるべきである。たとえば、従属請求項の特徴の様々な組み合わせは、本発明の範囲から逸脱することなく、独立請求項の特徴と一緒になされ得る。

Claims (21)

  1. 命令をデコードし、前記命令に応じた制御信号を生成する命令デコード回路と、
    前記命令デコード回路によって生成された前記制御信号に応えてデータ処理動作を実行するデータ処理回路と、
    を備える装置であって、
    前記命令デコード回路は、
    ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応答し、前記データ処理回路が複数の結果ビットを生成するためにソースベクトルレジスタ内に格納された複数の要素に対してビットテスト手順を実行させようにし、
    ここで、前記ビットテスト手順は、前記複数の要素の各処理済み要素について、前記インデックスによって示される前記ソースベクトルレジスタの前記処理済み要素内のビット位置のテストビットの値に応じて前記複数の結果ビットのそれぞれの結果ビットを設定することを含む、
    装置。
  2. 前記ビットテスト手順を受ける前記複数の要素は、前記ソースベクトルレジスタの全ての要素を含む、請求項1に記載の装置。
  3. 前記ビットテスト手順では、支配述語ビット値のセットのそれぞれの述語ビットが第1所定値を有するとき、前記複数の要素のうちの1つの要素は前記処理済み要素として前記ビットテスト手順を受ける、請求項1または2に記載の装置。
  4. 前記支配述語ビット値のセット内のいくつかの値は、前記ソースベクトルレジスタ内のいくつかの要素と一致する、請求項3に記載の装置。
  5. 前記ビットテスト命令は、前記支配述語ビット値のセットを指定する、請求項3または4に記載の装置。
  6. 前記ビットテスト命令は、前記支配述語ビット値のセットを保持するレジスタを指定する、請求項5に記載の装置。
  7. 前記ビットテスト手順では、前記支配述語ビット値のセットの前記それぞれの述語ビットが前記第1所定値を有していないとき、前記複数の結果ビットの前記それぞれの結果ビットが第2所定値に設定される、請求項3から6のいずれか一項に記載の装置。
  8. 前記データ処理回路は、前記複数の結果ビットを結果レジスタ内に格納するように配置されている、請求項1から7のいずれか一項に記載の装置。
  9. 前記結果レジスタは、前記ビットテスト命令で指定される、請求項8に記載の装置。
  10. 前記複数の結果ビットのカウントは、前記ソースベクトルレジスタ内に格納された前記複数の要素のカウントと一致する、請求項1から9のいずれか一項に記載の装置。
  11. 前記ビットテスト手順において、前記複数の結果ビットの前記それぞれの結果ビットは、前記テストビットの前記値と一致するように設定されている、請求項1から10のいずれか一項に記載の装置。
  12. 前記ビットテスト手順において、前記複数の結果ビットの前記それぞれの結果ビットは、前記テストビットの前記値と一致しないように設定されている、請求項1から10のいずれか一項に記載の装置。
  13. 前記命令デコード回路はさらなるビットテスト命令に応答し、これによって前記データ処理回路は、さらなるビットテスト手順を実行し、ここで、当該さらなるビットテスト手順は、さらなるテストビットの値と一致しないようにさらなる複数の結果ビットのさらなるそれぞれの結果ビットを設定することを含む、請求項11に記載の装置。
  14. 前記命令デコード回路はさらなるビットテスト命令に応答し、これによって前記データ処理回路は、さらなるビットテスト手順を実行し、ここで、当該さらなるビットテスト手順は、さらなるテストビットの値と一致するようにさらなる複数の結果ビットのさらなるそれぞれの結果ビットを設定することを含む、請求項12に記載の装置。
  15. 前記インデックスは、前記ビットテスト命令の即値である、請求項1から14のいずれか一項に記載の装置。
  16. 前記インデックスは、前記ビットテスト命令で指定されたスカラーインデックスレジスタに格納されたスカラー値である、請求項1から14のいずれか一項に記載の装置。
  17. 前記ビットテスト命令は、複数のインデックス値を保持するベクトルインデックスレジスタを指定し、前記ビットテスト手順において、前記複数の要素の各処理済み要素について、前記インデックスが前記複数のインデックス値のそれぞれのインデックス値によって与えられる、請求項1から14のいずれか一項に記載の装置。
  18. データ処理装置を動作させる方法であって、
    命令をデコードし、前記命令に応じた制御信号を生成するステップと、
    生成された前記制御信号に応えてデータ処理動作を実行するステップと、
    ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応えて、複数の結果ビットを生成するために前記ソースベクトルレジスタ内に格納された複数の要素に対するビットテスト手順の実行を行わせるステップと、
    を備え、
    前記ビットテスト手順は、前記複数の要素の各処理済み要素について、
    前記インデックスによって示される前記ソースベクトルレジスタの前記処理済み要素内のビット位置のテストビットの値に応じて前記複数の結果ビットのそれぞれの結果ビットを設定することを備える、
    方法。
  19. 命令をデコードし、前記命令に応じた制御信号を生成する手段と、
    生成された前記制御信号に応えてデータ処理動作を実行する手段と、
    ソースベクトルレジスタおよびインデックスを指定するビットテスト命令に応えて、複数の結果ビットを生成するために前記ソースベクトルレジスタ内に格納された複数の要素に対するビットテスト手順の実行を行わせる手段と、
    を備える装置であって、
    前記ビットテスト手順は、前記複数の要素の各処理済み要素について、
    前記インデックスによって示される前記ソースベクトルレジスタの前記処理済み要素内のビット位置のテストビットの値に応じて前記複数の結果ビットのそれぞれの結果ビットを設定することを備える、
    装置。
  20. 命令をデコードし、前記命令に応じた制御信号を生成するための命令デコードプログラムロジックと、
    前記命令デコードプログラムロジックによって生成された前記制御信号に応えてデータ処理動作を実行するためのデータ処理プログラムロジックと、
    を備える命令実行環境を提供するようにホストデータ処理装置を制御するためのコンピュータプログラムであって、
    前記命令デコードプログラムロジックは、前記データ処理プログラムロジックに、
    複数の結果ビットを生成するためにソースベクトルデータ構造内に格納された複数の要素に対してビットテスト手順を実行させるため、前記ソースベクトルデータ構造およびインデックスを指定するビットテスト命令に応答し、前記ビットテスト手順は、前記複数の要素の各処理済み要素について、
    前記インデックスによって示される前記ソースベクトルデータ構造の前記処理済み要素内のビット位置のテストビットの値に応じて前記複数の結果ビットのそれぞれの結果ビットを設定することを含む、
    コンピュータプログラム。
  21. 請求項20に記載のコンピュータプログラムを非一時的に格納するコンピュータ可読記憶媒体。
JP2019572555A 2017-07-10 2018-06-27 ベクトル要素内のビット値のテスト Pending JP2020526825A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023040331A JP2023085319A (ja) 2017-07-10 2023-03-15 ベクトル要素内のビット値のテスト

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17386023.0A EP3428792B1 (en) 2017-07-10 2017-07-10 Testing bit values inside vector elements
EP17386023.0 2017-07-10
PCT/EP2018/067234 WO2019011653A1 (en) 2017-07-10 2018-06-27 TEST OF BIT VALUES WITHIN VECTOR ELEMENTS

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023040331A Division JP2023085319A (ja) 2017-07-10 2023-03-15 ベクトル要素内のビット値のテスト

Publications (1)

Publication Number Publication Date
JP2020526825A true JP2020526825A (ja) 2020-08-31

Family

ID=59501374

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019572555A Pending JP2020526825A (ja) 2017-07-10 2018-06-27 ベクトル要素内のビット値のテスト
JP2023040331A Pending JP2023085319A (ja) 2017-07-10 2023-03-15 ベクトル要素内のビット値のテスト

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023040331A Pending JP2023085319A (ja) 2017-07-10 2023-03-15 ベクトル要素内のビット値のテスト

Country Status (8)

Country Link
US (1) US11422807B2 (ja)
EP (1) EP3428792B1 (ja)
JP (2) JP2020526825A (ja)
KR (1) KR102590679B1 (ja)
CN (1) CN110832455B (ja)
IL (1) IL271438B2 (ja)
TW (1) TWI785064B (ja)
WO (1) WO2019011653A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593105B2 (en) * 2018-12-29 2023-02-28 Intel Corporation Vector logical operation and test instructions with result negation
US11327862B2 (en) 2019-05-20 2022-05-10 Micron Technology, Inc. Multi-lane solutions for addressing vector elements using vector index registers
US11403256B2 (en) 2019-05-20 2022-08-02 Micron Technology, Inc. Conditional operations in a vector processor having true and false vector index registers
US11507374B2 (en) 2019-05-20 2022-11-22 Micron Technology, Inc. True/false vector index registers and methods of populating thereof
US11340904B2 (en) 2019-05-20 2022-05-24 Micron Technology, Inc. Vector index registers
CN116973736B (zh) * 2023-09-22 2023-12-19 悦芯科技股份有限公司 一种基于fail周期的ATE测试方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5353237A (en) * 1976-10-26 1978-05-15 Toshiba Corp Program switching device
JPH02230320A (ja) * 1989-03-03 1990-09-12 Hitachi Ltd データ処理装置
JPH05108542A (ja) * 1991-10-16 1993-04-30 Hitachi Ltd データ処理装置
JP2000322408A (ja) * 1998-10-06 2000-11-24 Texas Instr Inc <Ti> 線形ベクトル計算
JP2002073346A (ja) * 2000-08-28 2002-03-12 Denso Corp コンパイラ,記録媒体,プログラム変換装置,プログラム変換方法及びマイクロコンピュータ
JP2005174298A (ja) * 2003-12-09 2005-06-30 Arm Ltd “ベクトル×スカラ”演算
US20080253668A1 (en) * 2007-04-13 2008-10-16 Brian Lamb Method of decoding entropy-encoded data
JP2014182802A (ja) * 2013-03-15 2014-09-29 Intel Corp 演算マスクのマスクされていない要素をコンソリデートするプロセッサ、方法、システム、及び命令
EP2889756A1 (en) * 2013-12-27 2015-07-01 Intel Corporation Systems, apparatuses, and methods for vector bit test
WO2017021681A1 (en) * 2015-07-31 2017-02-09 Arm Limited Vector arithmethic instruction

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6414368B1 (en) * 1982-11-26 2002-07-02 Stmicroelectronics Limited Microcomputer with high density RAM on single chip
US5459841A (en) * 1993-12-28 1995-10-17 At&T Corp. Finite state machine with minimized vector processing
US5623680A (en) * 1993-12-28 1997-04-22 Lucent Technologies Inc. Finite state machine for process control
US5473531A (en) * 1993-12-28 1995-12-05 At&T Corp. Finite state machine with minimized memory requirements
US7124160B2 (en) * 2000-03-08 2006-10-17 Sun Microsystems, Inc. Processing architecture having parallel arithmetic capability
US20020188830A1 (en) * 2001-06-01 2002-12-12 Brian Boles Bit replacement and extraction instructions
GB2382673B (en) * 2001-10-31 2005-10-26 Alphamosaic Ltd A vector processing system
US7043511B1 (en) * 2002-08-30 2006-05-09 Lattice Semiconductor Corporation Performing conditional operations in a programmable logic device
US7548944B2 (en) * 2003-07-15 2009-06-16 Intel Corporation Statistics collection framework for a network processor
US9557994B2 (en) * 2004-07-13 2017-01-31 Arm Limited Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
US20090254694A1 (en) * 2008-04-02 2009-10-08 Zikbit Ltd. Memory device with integrated parallel processing
US8433883B2 (en) * 2009-06-11 2013-04-30 Cray Inc. Inclusive “OR” bit matrix compare resolution of vector update conflict masks
EP2584460A1 (en) * 2011-10-20 2013-04-24 ST-Ericsson SA Vector processing system comprising a replicating subsystem and method
US9792117B2 (en) * 2011-12-08 2017-10-17 Oracle International Corporation Loading values from a value vector into subregisters of a single instruction multiple data register
CN104137059B (zh) * 2011-12-23 2018-10-09 英特尔公司 多寄存器分散指令
CN104081336B (zh) * 2011-12-23 2018-10-23 英特尔公司 用于检测向量寄存器内的相同元素的装置和方法
US10678541B2 (en) * 2011-12-29 2020-06-09 Intel Corporation Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions
US9715383B2 (en) * 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
US9588762B2 (en) * 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9424031B2 (en) * 2013-03-13 2016-08-23 Intel Corporation Techniques for enabling bit-parallel wide string matching with a SIMD register
US9830151B2 (en) * 2014-12-23 2017-11-28 Intel Corporation Method and apparatus for vector index load and store
US20160179520A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Method and apparatus for variably expanding between mask and vector registers
US10445092B2 (en) * 2014-12-27 2019-10-15 Intel Corporation Method and apparatus for performing a vector permute with an index and an immediate
US10001995B2 (en) * 2015-06-02 2018-06-19 Intel Corporation Packed data alignment plus compute instructions, processors, methods, and systems
US10198264B2 (en) * 2015-12-15 2019-02-05 Intel Corporation Sorting data and merging sorted data in an instruction set architecture
CN109313552A (zh) * 2016-07-27 2019-02-05 英特尔公司 用于复用向量比较的系统和方法
US10747819B2 (en) * 2018-04-20 2020-08-18 International Business Machines Corporation Rapid partial substring matching

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5353237A (en) * 1976-10-26 1978-05-15 Toshiba Corp Program switching device
JPH02230320A (ja) * 1989-03-03 1990-09-12 Hitachi Ltd データ処理装置
JPH05108542A (ja) * 1991-10-16 1993-04-30 Hitachi Ltd データ処理装置
JP2000322408A (ja) * 1998-10-06 2000-11-24 Texas Instr Inc <Ti> 線形ベクトル計算
JP2002073346A (ja) * 2000-08-28 2002-03-12 Denso Corp コンパイラ,記録媒体,プログラム変換装置,プログラム変換方法及びマイクロコンピュータ
JP2005174298A (ja) * 2003-12-09 2005-06-30 Arm Ltd “ベクトル×スカラ”演算
US20080253668A1 (en) * 2007-04-13 2008-10-16 Brian Lamb Method of decoding entropy-encoded data
JP2014182802A (ja) * 2013-03-15 2014-09-29 Intel Corp 演算マスクのマスクされていない要素をコンソリデートするプロセッサ、方法、システム、及び命令
EP2889756A1 (en) * 2013-12-27 2015-07-01 Intel Corporation Systems, apparatuses, and methods for vector bit test
WO2017021681A1 (en) * 2015-07-31 2017-02-09 Arm Limited Vector arithmethic instruction

Also Published As

Publication number Publication date
EP3428792B1 (en) 2022-05-04
IL271438B2 (en) 2024-02-01
WO2019011653A1 (en) 2019-01-17
JP2023085319A (ja) 2023-06-20
TWI785064B (zh) 2022-12-01
CN110832455B (zh) 2023-09-29
KR102590679B1 (ko) 2023-10-18
KR20200021517A (ko) 2020-02-28
US11422807B2 (en) 2022-08-23
CN110832455A (zh) 2020-02-21
IL271438B1 (en) 2023-10-01
US20200225953A1 (en) 2020-07-16
EP3428792A1 (en) 2019-01-16
TW201908757A (zh) 2019-03-01
IL271438A (en) 2020-01-30

Similar Documents

Publication Publication Date Title
JP2020526825A (ja) ベクトル要素内のビット値のテスト
JP2019029023A (ja) メモリ圧縮を実行するシステム及び方法
US9734033B2 (en) Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads
KR20110044465A (ko) 재구성 프로세서, 재구성 제어 장치 및 방법, 그리고, 스레드 모델링 방법
US20240061682A1 (en) Load chunk instruction and store chunk instruction
JP7245817B2 (ja) データ処理装置における連続値の照合
US10409602B2 (en) Vector operand bitsize control
JP7335952B2 (ja) ベクトル述語要約の生成
JP7377208B2 (ja) データ処理
US11099848B1 (en) Overlapped-immediate/register-field-specifying instruction
JP7317099B2 (ja) ガード・タグ紛失の取り扱い
JP2023549315A (ja) 範囲指定子に基づくフィルタリング
Thota Design enhancements and a validation framework for arm emulator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220909

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230315

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20230315

C11 Written invitation by the commissioner to file amendments

Free format text: JAPANESE INTERMEDIATE CODE: C11

Effective date: 20230328

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230428

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20230512

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20240129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20240229

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240326