JP2018521421A - Vector operand bit size control - Google Patents

Vector operand bit size control Download PDF

Info

Publication number
JP2018521421A
JP2018521421A JP2018503484A JP2018503484A JP2018521421A JP 2018521421 A JP2018521421 A JP 2018521421A JP 2018503484 A JP2018503484 A JP 2018503484A JP 2018503484 A JP2018503484 A JP 2018503484A JP 2018521421 A JP2018521421 A JP 2018521421A
Authority
JP
Japan
Prior art keywords
exception level
level state
vector operand
bit size
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
Application number
JP2018503484A
Other languages
Japanese (ja)
Other versions
JP6874262B2 (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 JP2018521421A publication Critical patent/JP2018521421A/en
Application granted granted Critical
Publication of JP6874262B2 publication Critical patent/JP6874262B2/en
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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • 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
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Abstract

データ処理システム2は、処理回路18と、プログラム命令をデコードし、プロセッサ回路を制御するためのデコーダ回路14とを含む。デコーダ回路は、例外レベル状態の階層のうちの選択された例外レベル状態で実行されるベクトル被演算子ビットサイズ依存命令に応答して、現在選択されている例外レベル状態に関連付けられたベクトル被演算子ビットサイズの制限値と、階層内で最上層の例外レベル状態により近い例外レベル状態に関して設定された任意のプログラマブルな限界値と、実装限界と、により支配されるベクトル被演算子ビットサイズで処理を遂行するように処理回路を制御する。The data processing system 2 includes a processing circuit 18 and a decoder circuit 14 for decoding program instructions and controlling the processor circuit. The decoder circuit is responsive to a vector operand bit size dependent instruction that is executed in a selected exception level state of the hierarchy of exception level states, in a vector operand associated with the currently selected exception level state. Process with a vector operand bit size governed by child bit size limits, any programmable limit values set for exception level states closer to the highest exception level state in the hierarchy, and implementation limits The processing circuit is controlled to perform the following.

Description

本開示は、データ処理システムの分野に関する。より具体的には、本開示は、ベクトル処理動作をサポートするデータ処理システムに関する。   The present disclosure relates to the field of data processing systems. More specifically, the present disclosure relates to data processing systems that support vector processing operations.

あるベクトル被演算子ビットサイズを有し、複数のベクトル要素を含む少なくとも1つのベクトル被演算子を使用するベクトル処理動作をサポートするデータ処理システムを提供することが知られている。典型的に、ベクトル被演算子ビットサイズは、データ処理システムのアーキテクチャの一部として定義される。例えば、アーキテクチャは、ベクトル被演算子ビットサイズが256ビット、512ビット、1024ビットなどの何らかの特定の固定値になることを定義する。   It is known to provide data processing systems that support vector processing operations that have at least one vector operand having a vector operand bit size and including a plurality of vector elements. Typically, the vector operand bit size is defined as part of the architecture of the data processing system. For example, the architecture defines that the vector operand bit size is some specific fixed value, such as 256 bits, 512 bits, 1024 bits.

本開示の少なくとも一部の実施形態は、データを処理するための装置であって、
最上層の例外レベル状態〜最下層の例外レベル状態にわたる例外レベル状態の階層のうちの選択された例外レベル状態で処理動作を遂行するための処理回路と、
プログラム命令をデコードして、該処理動作を遂行するように該処理回路を制御するための制御信号を生成するためのデコーダ回路であって、該処理動作が、少なくとも1つのベクトル被演算子を使用するベクトル処理動作を含む、デコーダ回路と、を備え、
該デコーダ回路が、該選択された例外レベル状態で実行されるベクトル被演算子ビットサイズ依存プログラム命令に応答して、該選択された例外レベル状態のベクトル被演算子ビットサイズ限界値と、該選択された例外レベル状態よりも該階層内で該最上層の例外レベル状態により近い例外レベル状態の少なくとも1つのプログラマブルなベクトル被演算子ビットサイズ限界値とに依拠してベクトル処理動作を遂行するように該処理回路を制御する、装置、を提供する。
At least some embodiments of the present disclosure are devices for processing data comprising:
A processing circuit for performing a processing operation in a selected exception level state in a hierarchy of exception level states ranging from the highest exception level state to the lowest exception level state;
A decoder circuit for decoding a program instruction and generating a control signal for controlling the processing circuit to perform the processing operation, wherein the processing operation uses at least one vector operand A decoder circuit including a vector processing operation to
The decoder circuit in response to a vector operand bit size dependent program instruction executed in the selected exception level state, the vector operand bit size limit value of the selected exception level state, and the selection To perform vector processing operations depending on at least one programmable vector operand bit size limit value of the exception level state closer to the topmost exception level state in the hierarchy than the specified exception level state An apparatus for controlling the processing circuit is provided.

本開示の少なくとも一部の実施形態は、データを処理するための装置であって、
最上層の例外レベル状態〜最下層の例外レベル状態にわたる例外レベル状態の階層のうちの選択された例外レベル状態で処理動作を遂行するための処理手段と、
プログラム命令をデコードして、処理動作を遂行するように該処理手段を制御するための制御信号を生成するためのデコーダ手段であって、該処理動作が、少なくとも1つのベクトル被演算子を使用する1つ以上のベクトル処理動作を含む、デコーダ手段と、を備え、
該デコーダ手段が、該選択された例外レベル状態で実行されるベクトル被演算子ビットサイズ依存プログラム命令に応答して、該選択された例外レベル状態のベクトル被演算子ビットサイズ限界値と、該選択された例外レベル状態よりも該階層内で該最上層の例外レベル状態により近い例外レベル状態の少なくとも1つのプログラマブルなベクトル被演算子ビットサイズ限界値とに依拠してベクトル処理動作を遂行するように該処理手段を制御する、装置、を提供する。
At least some embodiments of the present disclosure are devices for processing data comprising:
Processing means for performing a processing operation in a selected exception level state in a hierarchy of exception level states ranging from the highest exception level state to the lowest exception level state;
Decoding means for decoding a program instruction and generating a control signal for controlling the processing means to perform a processing operation, the processing operation using at least one vector operand Decoder means including one or more vector processing operations;
The decoder means is responsive to a vector operand bit size dependent program instruction executed in the selected exception level state, the vector operand bit size limit value of the selected exception level state, and the selection To perform vector processing operations depending on at least one programmable vector operand bit size limit value of the exception level state closer to the topmost exception level state in the hierarchy than the specified exception level state An apparatus for controlling the processing means is provided.

本開示の少なくとも一部の実施形態は、データを処理する方法であって、
最上層の例外レベル状態〜最下層の例外レベル状態にわたる例外レベル状態の階層のうちの選択された例外レベル状態で処理回路により処理動作を遂行することと、
プログラム命令をデコードして、該処理動作を遂行するように該処理回路を制御するための制御信号を生成することであって、該処理動作が、少なくとも1つのベクトル被演算子を使用するベクトル処理動作を含む、生成することと、を含み、
該選択された例外レベル状態で実行されるベクトル被演算子ビットサイズ依存プログラム命令に応答して、該選択された例外レベル状態のベクトル被演算子ビットサイズ限界値と、該選択された例外レベル状態よりも該階層内で該最上層の例外レベル状態により近い例外レベル状態の少なくとも1つのプログラマブルなベクトル被演算子サイズ限界値とに依拠してベクトル処理動作を遂行するように該処理回路を制御する、方法、を提供する。
At least some embodiments of the present disclosure are methods for processing data, comprising:
Performing a processing operation by a processing circuit in a selected exception level state in a hierarchy of exception level states ranging from an exception level state at a top layer to an exception level state at a bottom layer;
Decoding a program instruction and generating a control signal for controlling the processing circuit to perform the processing operation, wherein the processing operation uses at least one vector operand Including generating, including,
In response to a vector operand bit size dependent program instruction executed in the selected exception level state, the vector operand bit size limit value of the selected exception level state and the selected exception level state Controlling the processing circuit to perform vector processing operations depending on at least one programmable vector operand size limit value of an exception level state closer to the exception level state of the top layer in the hierarchy than Provide a method.

これより、添付図面を参照しながら、例示的な実施形態を単に例として説明する。   The exemplary embodiments will now be described by way of example only with reference to the accompanying drawings.

ベクトル被演算子を使用したベクトル処理をサポートするデータ処理システムを概略的に例示する。1 schematically illustrates a data processing system that supports vector processing using vector operands. 汎用ベクトル被演算子の形の例示的なベクトル被演算子およびベクトル述語被演算子を概略的に例示する。3 schematically illustrates an example vector operand and vector predicate operand in the form of a general vector operand. 複数の例外レベル状態とそれぞれの例外レベル状態に関連付けられたベクトル被演算子ビットサイズを制御するためのプログラマブルな限界値とを有するシステム内のベクトル被演算子ビットサイズ依存命令と許容ベクトル被演算子ビットサイズクエリ命令の挙動の具体的な例を概略的に例示する。Vector operand bit size dependent instructions and allowed vector operands in a system with multiple exception level states and programmable limit values for controlling the vector operand bit size associated with each exception level state A specific example of the behavior of a bit size query instruction is schematically illustrated. N個の例外レベル状態を有するシステムの挙動を例示する、図3の一般化されたバージョンである。FIG. 4 is a generalized version of FIG. 3 illustrating the behavior of a system with N exception level states. プログラマブルな限界値を記憶するために使用され、許容ベクトル被演算子ビットサイズクエリ命令による文脈依存型読み出しがそこから行われ得る、システム構成レジスタを概略的に例示する。Fig. 5 schematically illustrates a system configuration register that can be used to store programmable limit values from which a context-dependent read by an allowed vector operand bit size query instruction can be performed. 文脈依存型ベクトル被演算子ビットサイズ依存命令および文脈依存型許容ベクトル被演算子サイズクエリ命令の挙動をそれぞれ概略的に例示する流れ図である。3 is a flowchart schematically illustrating the behavior of a context-dependent vector operand bit size dependent instruction and a context-dependent allowed vector operand size query instruction, respectively. 文脈依存型ベクトル被演算子ビットサイズ依存命令および文脈依存型許容ベクトル被演算子サイズクエリ命令の挙動をそれぞれ概略的に例示する流れ図である。3 is a flowchart schematically illustrating the behavior of a context-dependent vector operand bit size dependent instruction and a context-dependent allowed vector operand size query instruction, respectively. プログラマブルな限界値を書き込むときの挙動を概略的に例示する流れ図である。6 is a flowchart schematically illustrating a behavior when writing a programmable limit value. ベクトル被演算子サイズが増大されるときの挙動を概略的に例示する。Fig. 6 schematically illustrates the behavior when the vector operand size is increased. 仮想マシン実装を概略的に例示する。1 schematically illustrates a virtual machine implementation.

図1は、プロセッサ4およびメモリ6を含むデータ処理システム2を概略的に例示し、メモリ6は、データ8およびプログラム命令10を記憶する。プロセッサ4は、プログラム命令10をメモリ6からフェッチし、これらをデコーダ回路14に渡す命令フェッチ回路12を含み、プログラム命令10は、デコーダ回路14においてデコードされて、プロセッサ4の動作を制御する制御信号16を生成する。より具体的には、制御信号16は、デコードされたプログラム命令により指定される処理動作を遂行するように処理回路18を制御する。処理回路18は、あるベクトル被演算子ビットサイズを有し、複数のベクトル要素を含むベクトル被演算子を記憶するためのベクトルレジスタ回路20に連結されている。システム構成レジスタ22もまた、処理回路18に連結されている。システム構成レジスタ22は、ベクトル処理命令のために使用されるベクトル被演算子ビットサイズおよびプログラマブルな限界値(PLV)によるベクトル被演算子ビットサイズの制約などの、ソフトウェア制御下で処理回路18によりプログラムされ得、処理回路18の挙動を構成する働きをする構成値を記憶する働きをする。   FIG. 1 schematically illustrates a data processing system 2 that includes a processor 4 and a memory 6, which stores data 8 and program instructions 10. The processor 4 includes an instruction fetch circuit 12 that fetches the program instructions 10 from the memory 6 and passes them to the decoder circuit 14. The program instructions 10 are decoded by the decoder circuit 14 to control the operation of the processor 4. 16 is generated. More specifically, the control signal 16 controls the processing circuit 18 to perform a processing operation specified by the decoded program instruction. The processing circuit 18 is connected to a vector register circuit 20 for storing a vector operand having a vector operand bit size and including a plurality of vector elements. A system configuration register 22 is also coupled to the processing circuit 18. The system configuration register 22 is programmed by the processing circuit 18 under software control, such as constraints on the vector operand bit size used for vector processing instructions and vector operand bit size with programmable limit values (PLVs). It can serve to store configuration values that serve to configure the behavior of the processing circuit 18.

図2は、ベクトル被演算子の2つの例示的な形態を概略的に例示する。第1の例示的なベクトル被演算子24は、ベクトルプログラム命令(例えば、ベクトル算術命令、ベクトル論理命令など)を実行するときにソース被演算子または宛先被演算子として使用され得るものなどの、汎用ベクトル被演算子である。この例では、汎用ベクトル被演算子24は、512ビットのベクトル被演算子ビットサイズを有するとして、かつそれぞれ64ビットのベクトル要素ビットサイズを有する8個のベクトル要素を含むとして例示されている。ベクトル要素は、a〜aとして表示されている。 FIG. 2 schematically illustrates two exemplary forms of vector operands. The first exemplary vector operand 24 may be used as a source or destination operand when executing vector program instructions (eg, vector arithmetic instructions, vector logic instructions, etc.), such as A general vector operand. In this example, the general vector operand 24 is illustrated as having a vector operand bit size of 512 bits and including eight vector elements each having a vector element bit size of 64 bits. Vector elements are displayed as a 0 ~a 7.

図2はまた、ベクトル被演算子の別の例示的な形態、すなわちベクトル述語被演算子26を例示する。これは、汎用ベクトル被演算子24に対して遂行されているベクトル処理動作に関連付けられたベクトル述語被演算子であってもよい。ベクトル述語被演算子26は、複数の述語値p〜pを含み、複数の述語値p〜pは、関連付けられたベクトルプログラム命令の実行を、そのベクトルプログラム命令により操作されるベクトル被演算子内の対応するベクトル要素に関して制御する。一例として、述語値は、汎用ベクトル被演算子内のそれぞれのベクトル要素に関連付けられたベクトル処理をスイッチオンまたはスイッチオフし得る。例示した例では、ベクトル述語被演算子は、64ビットを有し、各述語値は、長さ8ビットである。 FIG. 2 also illustrates another exemplary form of vector operand, the vector predicate operand 26. This may be a vector predicate operand associated with a vector processing operation being performed on the general vector operand 24. The vector predicate operand 26 includes a plurality of predicate values p 0 to p 7 , and the plurality of predicate values p 0 to p 7 are vectors operated by the vector program instruction to execute the associated vector program instruction. Control over the corresponding vector element in the operand. As an example, the predicate value may switch on or off the vector processing associated with each vector element in the general vector operand. In the illustrated example, the vector predicate operand has 64 bits and each predicate value is 8 bits long.

図1のデータ処理システム2は、ベクトル被演算子24、26を記憶するために使用されるベクトルレジスタ回路22の特定の実装により実装される。実務上、本開示のプロセッサアーキテクチャを使用する異なる物理実装は、異なる実装限界の最大ビットサイズを有するベクトル被演算子を提供し得る。高速処理スピードを目指した複雑な実装は、1024ビットなどの大きいビットサイズを有するベクトル被演算子を提供してもよい。逆に、動作中の低い方のエネルギー消費を提供することを目指したプロセッサの実装は、128ビットなどのより小さい最大ベクトル被演算子ビットサイズをサポートしてもよい。データ処理システム2のプロセッサアーキテクチャ上で実行されるように書かれたソフトウェアは、いかなる修正も必要とすることなしに(または著しい修正を必要とすることなしに)、そのソフトウェアを実行するために使用されている特定のプロセッサ4の実装限界のベクトル被演算子ビットサイズに依拠して使用することができることが望ましい。さらに、特定のソフトウェアは、特定のベクトル被演算子ビットサイズで動くことが試験/検証されている場合があり、ソフトウェア自体が、そのソフトウェアの実行において使用されるベクトル被演算子ビットサイズを実装の最大ベクトル被演算子ビットサイズとは異なるように(それ未満になるように)制約することを希望する場合がある。複数の例外レベル状態(例えば、特権レベル)を利用するシステム内では、高い方の特権レベルにあるソフトウェアが低い方の例外レベル状態で実行されているソフトウェアにより使用されるベクトル被演算子ビットサイズを制約することができることが望ましい場合がある。例えば、最大で所与の最大ベクトル被演算子ビットサイズまで正確に動作すると検証されているオペレーティングシステムは、そのオペレーティングシステムの下で実行されているアプリケーションプログラムが、オペレーティングシステムが検証されている最大ベクトル被演算子ビットサイズを超えないように制約することを希望する場合がある。   The data processing system 2 of FIG. 1 is implemented by a specific implementation of the vector register circuit 22 that is used to store the vector operands 24, 26. In practice, different physical implementations using the processor architecture of this disclosure may provide vector operands with maximum bit sizes with different implementation limits. Complex implementations aimed at high processing speed may provide vector operands with large bit sizes, such as 1024 bits. Conversely, processor implementations aimed at providing lower energy consumption during operation may support a smaller maximum vector operand bit size, such as 128 bits. Software written to run on the processor architecture of the data processing system 2 is used to run the software without requiring any modifications (or without requiring significant modifications) It may be desirable to be able to use depending on the implementation-specific vector operand bit size of the particular processor 4 being implemented. In addition, certain software may have been tested / verified to run at a particular vector operand bit size, and the software itself implements the vector operand bit size used in the execution of that software. It may be desired to constrain the maximum vector operand bit size to be different (less than). In systems that utilize multiple exception level states (eg, privilege levels), the vector operand bit size used by software running in the lower exception level state may be used by software in the higher privilege level. It may be desirable to be able to constrain. For example, an operating system that has been verified to operate correctly up to a given maximum vector operand bit size is that an application program running under that operating system is the largest vector for which the operating system has been verified. There may be a desire to constrain the operand bit size not to be exceeded.

図3は、プロセッサ4の特定の実装に関して、異なる例外レベル状態に関連付けられたプログラマブルな限界値を概略的に例示する。この実装では、実装限界の最大被演算子ビットサイズは、512である。プロセッサ4は、4つの異なる例外レベル状態、すなわちEL0、EL1、EL2、およびEL3における実行をサポートする。これらの例外レベル状態は、最下層の例外レベル状態EL0〜最上層の例外レベル状態EL3にわたる例外レベル状態の階層内に配置されている。最下層の例外レベル状態以外の例外レベル状態のそれぞれは、それに関連付けられたプログラマブルな限界値(PLV)を有する。他の例示的な実施形態(図示せず)では、最下層の例外レベル状態EL0もまた、それに関連付けられたプログラマブルな限界値(PLV)を有し得る。これらのプログラマブルな限界値は、例外レベル状態のそれぞれと関連付けられたベクトル被演算子ビットサイズを示す。図3の例では、例外レベル状態EL1は、384ビットのプログラマブルな限界値を有し、例外レベル状態EL2は、256ビットのプログラマブルな限界値を有し、例外レベルEL3は、512ビットのプログラマブルな限界レベルを有する。これらのプログラマブルな限界値は、当該の例外レベル状態および当該の例外レベル状態より下の全ての例外レベル状態で実行されているベクトルプログラム命令を実行するために使用されるべき最大ベクトル被演算子ビットサイズを示す。したがって、ある例外レベル状態に関連付けられたプログラマブルな限界値は、それ自身の例外レベルで実行されているプログラム命令のベクトル被演算子サイズに対して限界を課し、さらに例外レベル状態の階層内の低い方の例外レベルで実行されているプログラム命令に対してこの限界を課す。一例として、例外レベル状態EL2で実行されているハイパーバイザーは、256の最大ベクトル被演算子ビットサイズをサポートし得、この限界は、例外レベルEL1で実行されているオペレーティングシステムソフトウェアおよび例外レベルEL0で実行されているアプリケーションソフトウェアに対して課されることになる。たとえソフトウェアのこれらの他のインスタンス自体、例えば例外レベル状態EL1にあるオペレーティングシステムは、それら自身のプログラマブルな限界値により指定されるより大きいベクトル被演算子ビットサイズを使用することができるとしてでもある。 FIG. 3 schematically illustrates programmable limit values associated with different exception level states for a particular implementation of processor 4. In this implementation, the maximum operand bit size at the implementation limit is 512. The processor 4 supports execution in four different exception level states, EL0, EL1, EL2, and EL3. These exception level states are arranged in a hierarchy of exception level states ranging from the lowest exception level state EL0 to the highest exception level state EL3. Each exception level state other than the lowest level exception level state has a programmable limit value (PLV x ) associated with it. In other exemplary embodiments (not shown), the bottommost exception level state EL0 may also have a programmable limit value (PLV 0 ) associated therewith. These programmable limit values indicate the vector operand bit size associated with each of the exception level states. In the example of FIG. 3, exception level state EL1 has a 384-bit programmable limit value, exception level state EL2 has a 256-bit programmable limit value, and exception level EL3 has a 512-bit programmable limit value. Has a limit level. These programmable limits are the maximum vector operand bits to be used to execute vector program instructions that are executed in the exception level state and all exception level states below the exception level state. Indicates size. Thus, a programmable limit value associated with an exception level state imposes a limit on the vector operand size of the program instruction executing at its own exception level, and further within the exception level state hierarchy. This limit is imposed on program instructions being executed at the lower exception level. As an example, a hypervisor running in exception level state EL2 may support a maximum vector operand bit size of 256, which is limited by operating system software running in exception level EL1 and exception level EL0. It will be imposed on the application software being executed. Even though these other instances of software themselves, such as operating systems in exception level state EL1, may use larger vector operand bit sizes as specified by their own programmable limits.

ベクトル被演算子ビットサイズ依存命令が実行されるとき、用いられるベクトル被演算子ビットサイズは、現在選択されている例外レベル状態の限界値と、現在選択されている選択レベル状態(これ自体は、プログラマブルであってもよく、プログラマブルでなくてもよい)よりも階層内で最上層の例外レベル状態により近い例外レベル状態に関して設定されている任意の(全ての)プログラマブルな限界値とにより支配されるベクトル被演算子ビットサイズで処理を遂行するように制御され(かつ処理回路18により使用され)る。(この例示的な実施形態における)最下層の例外レベル状態は、関連付けられたプログラマブルな限界値を有さないが、最下層の例外レベル状態よりも階層の最上層により近い他の例外レベル状態のうちの全てのプログラマブルな限界値に服する。ベクトルプログラム命令は、通常、実行されているベクトル被演算子ビットサイズ依存命令に関して許容されている最大値を有するベクトル被演算子ビットサイズを使用することになる。これは、増大したレベルの並列動作を提供する。   When a vector operand bit size dependent instruction is executed, the vector operand bit size used is determined by the limits of the currently selected exception level state and the currently selected selection level state (which itself is Governed by any (all) programmable limit values set for exception level states closer to the topmost exception level state in the hierarchy than (may or may not be programmable) It is controlled (and used by the processing circuit 18) to perform processing with the vector operand bit size. The lowest level exception level state (in this exemplary embodiment) does not have an associated programmable limit value, but other exception level states closer to the top layer of the hierarchy than the lowest level exception level state. Subject to all our programmable limits. Vector program instructions will typically use the vector operand bit size that has the maximum value allowed for the vector operand bit size dependent instruction being executed. This provides an increased level of parallel operation.

特定の例外レベル状態で実行されているソフトウェアは、最上層の例外レベル状態により近い例外レベル状態の制約のゆえに、そのソフトウェアが潜在的に使用できる最大ベクトル被演算子ビットサイズを決定する必要がある場合がある。これを達成するために、デコーダ回路14および処理回路18は、許容被演算子ビットサイズクエリ命令をサポートしている。この許容ベクトル被演算子ビットサイズクエリ命令は、処理回路18が許容ベクトル被演算子ビットサイズクエリ命令を実行する選択された例外レベル状態よりも階層内で最上層の例外レベル状態により近い例外レベル状態により制約されるベクトル被演算子ビットサイズ指示値を返す働きをする。したがって、図3の例では、アプリケーションプログラムにより使用される最下層の例外レベル状態に対応する例外レベル状態EL0で実行される許容ベクトル被演算子ビットサイズクエリ命令は、たとえ(この例示的な実施形態における)例外レベル状態EL0が関連付けられた限界値を有さず、例外レベルEL1で実行されているオペレーティングシステムに関連付けられた限界値が384という高い方の値であるとしても、例外レベル状態EL2の256のプログラマブルな限界値により制約される256の許容ベクトル被演算子ビットサイズ指示値を返すことになる。返される許容ベクトル被演算子ビットサイズ指示値は、高い方の例外レベル状態に関連付けられたプログラマブルな限界値に依拠するが、許容ベクトル被演算子ビットサイズクエリ命令自体が実行される選択された例外状態に関連付けられたいずれのプログラマブルな限界値にも依拠しない。図3の例では、例外レベル状態EL2自体に関連付けられたプログラマブルな限界値は256であるが、例外レベル状態EL2における許容ベクトル被演算子ビットサイズクエリ命令の実行は、512の許容ベクトル被演算子ビットサイズ指示値を返す。これが、例外レベル状態EL3に関連付けられたプログラマブルな限界値であるからである。許容ベクトル被演算子ビットサイズクエリ命令は、特定の例外レベル状態で実行されているソフトウェアが、そのソフトウェア自身のプログラマブルな限界値を設定するため、またはそのソフトウェアの挙動の何らかの他の側面を修正するためなどに、そのソフトウェアが使用し得る最大ベクトル被演算子ビットサイズを決定することを可能にする。   Software running in a particular exception level state must determine the maximum vector operand bit size that the software can potentially use because of exception level state constraints that are closer to the topmost exception level state There is a case. To accomplish this, decoder circuit 14 and processing circuit 18 support allowable operand bit size query instructions. This allowed vector operand bit size query instruction is an exception level state that is closer to the highest exception level state in the hierarchy than the selected exception level state in which the processing circuit 18 executes the allowed vector operand bit size query instruction. Returns the vector operand bit size indication value constrained by. Thus, in the example of FIG. 3, the allowed vector operand bit size query instruction executed in the exception level state EL0 corresponding to the lowest level exception level state used by the application program is (even in this exemplary embodiment). Even if the exception level state EL0 has no associated limit value and the limit value associated with the operating system running at exception level EL1 is the higher value of 384, the exception level state EL2 It will return 256 allowed vector operand bit size indication values constrained by 256 programmable limit values. The allowed vector operand bit size indication value returned depends on the programmable limit value associated with the higher exception level state, but the selected exception on which the allowable vector operand bit size query instruction itself is executed. Do not rely on any programmable limits associated with the state. In the example of FIG. 3, the programmable limit value associated with the exception level state EL2 itself is 256, but the execution of the allowable vector operand bit size query instruction in the exception level state EL2 is 512 allowable vector operands. Returns the bit size indication value. This is because this is a programmable limit value associated with the exception level state EL3. Permissive vector operand bit size query instructions allow software running in a particular exception level state to set its own programmable limits or to modify some other aspect of the software's behavior For example, the maximum vector operand bit size that the software can use can be determined.

図4は、図3で与えた具体的な例の一般化されたバージョンである。この一般化されたバージョンでは、N個の例外レベルが存在する。所与の例外レベルでベクトル被演算子ビットサイズ依存命令のために使用されるベクトル被演算子ビットサイズは、さらにその例外レベル状態自体のプログラマブルな限界値ならびに階層内で最上層の例外レベル状態により近い他のプログラマブルな限界値により示される最小数として決定される。(この例示的な実施形態における)例外レベルEL0の場合、これ自体は、プログラマブルな限界値を有さず、それゆえに、そのベクトル被演算子ビットサイズは、階層内の高い方の例外レベル状態の全てのプログラマブルな限界値により示される最小数として決定される。最上層の例外レベル状態EL(N−1)は、それ自身のプログラマブルな限界値PLV(n−1)により指定される、そのベクトル被演算子ビットサイズ依存命令のために使用されるベクトル被演算子ビットサイズを有する。 FIG. 4 is a generalized version of the specific example given in FIG. In this generalized version, there are N exception levels. The vector operand bit size used for a vector operand bit size dependent instruction at a given exception level is further dependent on the programmable limit value of the exception level state itself and the highest exception level state in the hierarchy. Determined as the minimum number indicated by the nearest other programmable limit. In the case of exception level EL0 (in this exemplary embodiment), it itself has no programmable limit value, and therefore its vector operand bit size is that of the higher exception level state in the hierarchy. Determined as the minimum number indicated by all programmable limits. The topmost exception level state EL (N-1) is the vector operand used for its vector operand bit size dependent instruction, specified by its own programmable limit value PLV (n-1). Has a child bit size.

図4の一般化された例の場合に返されるベクトル被演算子ビットサイズ指示値の場合、これは、許容ベクトル被演算子ビットサイズクエリ命令自体が実行される例外レベル状態と比較して、階層内の高い方の例外レベル状態に関連付けられた全てのプログラマブルな限界値により示される最小数により与えられる。最上層の例外レベル状態の場合、返される許容ベクトル被演算子ビットサイズ指示値は、プロセッサ4(およびベクトルレジスタ回路20)の特定の実装の実装限界のベクトル被演算子ビットサイズである。   In the case of the vector operand bit size indication value returned in the generalized example of FIG. 4, this is compared to the exception level state where the allowed vector operand bit size query instruction itself is executed. Given by the minimum number indicated by all programmable limit values associated with the higher exception level state of the. For the topmost exception level state, the allowed vector operand bit size indication value returned is the implementation limited vector operand bit size of the particular implementation of processor 4 (and vector register circuit 20).

図5は、上述の挙動を制御するために使用され得るシステムレジスタ22の形態の例を概略的に例示する。これらのシステムレジスタ22は、複数の例外レベル構成レジスタZCR_ELと共に識別レジスタZIDR_EL1を含む。デコーダ回路14は、許容ベクトル被演算子ビットサイズクエリ命令および現在の例外レベル状態に応答して(それにより、命令を文脈依存型にして)、識別レジスタZIDR_EL1を読み出す。このようなレジスタ読み出しから返される値は、上述したように図3および4に関して決定される許容ベクトル被演算子ビットサイズ指示値である。特に、許容ベクトル被演算子ビットサイズクエリ命令の実行は、プログラマーには識別システムレジスタを読み出すことのように見え得るものの、実務上、結果は、複数の例外レベル構成レジスタZCR_ELおよび実装限界の最大被演算子ビットサイズを含む他のソースから引き出され得る。プログラムモデルでは、ベクトル被演算子ビットサイズクエリ命令の実行の効果は、識別レジスタZIDR_EL1の最下位ビットを返すことである。これは、上述の最大許容ベクトル被演算子ビットサイズ指示値に対応する値を有する。例外レベル構成レジスタZCR_ELのうちのいずれにこの戻り値が依存するかは、許容ベクトル被演算子ビットサイズクエリ命令が実行される例外レベル状態により制御される。最下層の例外レベル状態で実行されるとき、読み出し識別レジスタZIDR_EL1に対する試みは、値を返さない場合があり、命令は、次いで、その代わりとして未定義の命令として扱われて、未定義命令例外をトリガする場合がある。最下層レベルの例外レベル状態以外のそれぞれの例外レベル状態に関連付けられた例外レベル構成レジスタZCR_ELは、これらの例外レベル構成レジスタに対する書き込みにより設定されるプログラマブルな限界値PLVを記憶するために使用される。所与の例外レベル状態で実行される例外レベル構成レジスタZCR_ELに対するシステムレジスタ読み出しまたは書き込み命令は、それ自身の例外レベル状態と、例外レベル状態の階層内の任意の低い方の(最下層の例外レベル状態により近い)例外レベル状態との例外レベル構成レジスタを読み出しまたは書き込むことを許容されている。高い方の例外レベル状態の例外レベル構成レジスタZCR_ELを読み出しまたは書き込む試みは、未定義命令挙動という結果をもたらす。 FIG. 5 schematically illustrates an example of a form of the system register 22 that can be used to control the behavior described above. These system registers 22 include an identification register ZIDR_EL1 along with a plurality of exception level configuration registers ZCR_EL x . The decoder circuit 14 reads the identification register ZIDR_EL1 in response to the allowed vector operand bit size query instruction and the current exception level state (thus making the instruction context sensitive). The value returned from such a register read is the allowed vector operand bit size indication value determined with respect to FIGS. 3 and 4 as described above. In particular, while the execution of the allowable vector operand bit size query instruction may appear to the programmer to read the identification system register, in practice the result is that multiple exception level configuration registers ZCR_EL x and the maximum implementation limit It can be derived from other sources including the operand bit size. In the program model, the effect of executing the vector operand bit size query instruction is to return the least significant bit of the identification register ZIDR_EL1. This has a value corresponding to the maximum allowable vector operand bit size indication value described above. Which of the exception level configuration registers ZCR_EL x depends on this return value is controlled by the exception level state in which the allowed vector operand bit size query instruction is executed. When executed in the lowest level exception level state, an attempt to the read identification register ZIDR_EL1 may not return a value, and the instruction is then treated as an undefined instruction instead, and an undefined instruction exception is thrown. May trigger. The exception level configuration register ZCR_EL x associated with each exception level state other than the lowest level exception level state is used to store programmable limit values PLV x set by writing to these exception level configuration registers. Is done. A system register read or write instruction to the exception level configuration register ZCR_EL x executed in a given exception level state will cause its own exception level state and any lower (lowest level exception in the exception level state hierarchy). Reading or writing the exception level configuration register with the exception level state (closer to the level state) is allowed. Attempts to read or write to the exception level configuration register ZCR_EL x in the higher exception level state result in undefined instruction behavior.

この例示的な実施形態では、プログラマブルな限界値は、4ビット値であってもよく、1だけインクリメントし、128で乗算することによりベクトル被演算子ビットサイズを表示するために使用される。プログラマブルな限界値とプログラマブルな限界値が指定するベクトル被演算子ビットサイズとの間の他のマッピング、例えばベクトル被演算子サイズを2の累乗として指定することも用いられ得ることは、明らかであろう。   In this exemplary embodiment, the programmable limit value may be a 4-bit value and is used to indicate the vector operand bit size by incrementing by 1 and multiplying by 128. Obviously, other mappings between the programmable limit values and the vector operand bit size specified by the programmable limit values can also be used, eg specifying the vector operand size as a power of two. Let's go.

図6Aは、文脈依存型ベクトル被演算子ビットサイズ依存命令の実行を概略的に例示する流れ図であるである。ステップ28では、処理は、ベクトル被演算子ビットサイズ依存命令がデコーダ14により受信されるまで待機する。次いで、ステップ30では、デコーダ14は、現在選択されている例外レベル状態のプログラマブルな限界値および全ての高い方の例外レベル状態のプログラマブルな限界値を読み出すように処理回路18およびプロセッサ内の他の要素を制御するための制御信号16を生成する。ステップ32は、これらの読み出し値のうちの最小数を決定する。ステップ34は、ステップ32で決定された最小値をベクトル被演算子ビットサイズとして使用するベクトル被演算子ビットサイズ依存命令により指定される処理(算術演算、論理演算、または何らかの他の演算など)を遂行する。   FIG. 6A is a flow diagram that schematically illustrates execution of a context sensitive vector operand bit size dependent instruction. In step 28, the process waits until a vector operand bit size dependent instruction is received by the decoder 14. Next, in step 30, the decoder 14 reads the programmable limit value of the currently selected exception level state and the programmable limit value of all the higher exception level states to other processing circuits 18 and other processors in the processor. A control signal 16 for controlling the element is generated. Step 32 determines the minimum number of these read values. Step 34 performs a process (such as an arithmetic operation, a logical operation, or some other operation) specified by a vector operand bit size dependent instruction that uses the minimum value determined in Step 32 as the vector operand bit size. Carry out.

図6Bは、文脈依存型許容ベクトル被演算子ビットサイズクエリ命令の動作を概略的に例示する流れ図である。ステップ36では、処理は、許容ベクトル被演算子ビットサイズクエリ命令がデコーダ回路14により受信されるまで待機する。この許容ベクトル被演算子ビットサイズクエリ命令は、例えば、識別レジスタZIDR_EL1の読み出しであってもよい。このような命令が受信されると、処理は、ステップ38に進み、全ての高い方の例外レベル状態に関して設定されたプログラマブルな限界値(および適切な場合には、実装限界の最大ベクトル被演算子ビットサイズ)の読み出しが行われる。ステップ40は、ステップ38からの読み出し値のうちの最小数を決定する。ステップ42は、読み出し値のうちの最小数を最大許容ベクトル被演算子ビットサイズ(許容ベクトル被演算子ビットサイズ指示値)として返す。次いで、処理は、終了する。   FIG. 6B is a flow diagram that schematically illustrates the operation of the context-sensitive allowed vector operand bit size query instruction. In step 36, the process waits until an allowed vector operand bit size query instruction is received by the decoder circuit 14. This allowable vector operand bit size query instruction may be, for example, reading of the identification register ZIDR_EL1. When such an instruction is received, processing proceeds to step 38, where programmable limit values (and implementation limit maximum vector operands where applicable) set for all higher exception level conditions. (Bit size) is read out. Step 40 determines the minimum number of readings from step 38. Step 42 returns the minimum number of read values as the maximum allowable vector operand bit size (allowable vector operand bit size indication value). Then, the process ends.

図7は、プログラマブルな限界値PLVをシステム構成レジスタ22のうちの1つに書き込むときのプロセッサ4の挙動を概略的に例示する流れ図である。所与の例外レベル状態に関して設定され得るプログラマブルな限界値は、高い方の例外レベル状態に関して設定されたプログラマブルな限界値により制限され、プロセッサ4の特定の実装の制約によっても制限される。例えば、プロセッサ4の特定の実装は、512、256、および128のベクトル被演算子ビットサイズをサポートすることができるが、384のベクトル被演算子ビットサイズをサポートすることはできない。それゆえに、例外レベル構成レジスタZCR_ELのうちの1つに対するシステムレジスタ書き込み命令が384のベクトル被演算子ビットサイズに対応するプログラマブルな限界値を定義しようとしている場合、これは、例外レベル状態の階層内の高い方のプログラマブルな限界値により許容され得るが、プロセッサ4のハードウェア実装により許容されない。この場合、例外レベル構成レジスタZCR_EL内に記憶されたプログラマブルな限界値は、システムレジスタ書き込み命令に応答して、ハードウェアによりサポートされているz低いベクトル被演算子ビットサイズに丸められる。したがって、上述の例において、384に対応するプログラマブルな限界値の書き込みの試みは、高い方の例外レベル状態のプログラマブルな限界値により許容され得るが、ハードウェア実装により許容されず、それゆえに、記憶されている値は、サポートされている次に低いベクトル被演算子サイズ、すなわち256に丸められる。異なるプログラマブルな限界値を例外レベル構成レジスタに書き込むことを試み、次いで記憶された値を読み出すことにより、特定の例外レベル状態で実行されているソフトウェアは、高い方の例外レベル状態にあるソフトウェアにより設定されたプログラマブルな限界とハードウェア実装により設定された限界との両方の結果として、どのベクトル被演算子ビットサイズがサポートされており、どのベクトル被演算子ビットサイズがサポートされていないのかを決定し得る。 FIG. 7 is a flow diagram that schematically illustrates the behavior of the processor 4 when writing the programmable limit value PLV to one of the system configuration registers 22. The programmable limit values that can be set for a given exception level state are limited by the programmable limit values set for the higher exception level state, and are also limited by the specific implementation constraints of the processor 4. For example, certain implementations of processor 4 can support 512, 256, and 128 vector operand bit sizes, but cannot support 384 vector operand bit sizes. Therefore, if a system register write instruction for one of the exception level configuration registers ZCR_EL x is trying to define a programmable limit corresponding to a vector operand bit size of 384, this is the exception level state hierarchy. Can be allowed by the higher of the programmable limits, but not by the hardware implementation of the processor 4. In this case, the programmable limit value stored in the exception level configuration register ZCR_EL x is rounded to the z low vector operand bit size supported by the hardware in response to a system register write instruction. Thus, in the above example, an attempt to write a programmable limit value corresponding to 384 may be tolerated by the programmable limit value of the higher exception level state, but is not tolerated by the hardware implementation and is therefore stored. The value being rounded to the next lowest supported vector operand size, ie 256. By attempting to write different programmable limit values to the exception level configuration register and then reading the stored value, the software running in a particular exception level state is set by the software in the higher exception level state Determine which vector operand bit sizes are supported and which vector operand bit sizes are not supported as a result of both the programmed limits and the limits set by the hardware implementation. obtain.

図7のステップ44では、処理は、例外レベル構成レジスタZCR_ELへの命令書き込みがデコーダ14により受信されるまで待機する。ステップ46は、書き込まれている指定されたプログラマブルな限界値がハードウェアによりサポートされているものかどうかを決定する。書き込まれた値が高い方の例外レベル状態のプログラマブルな限界値と決して相反しないように、追加のチェック(図示せず)が遂行される。 In step 44 of FIG. 7, the process waits until an instruction write to the exception level configuration register ZCR_EL x is received by the decoder 14. Step 46 determines whether the specified programmable limit value being written is supported by the hardware. An additional check (not shown) is performed so that the written value never contradicts the programmable limit value of the higher exception level state.

ステップ44でデコードされた命令により書き込まれているプログラマブルな限界値がハードウェア(およびソフトウェアにより制御される構成)によりサポートされている場合、ステップ48は、指定されたプログラマブルな限界値を当該の状態構成レジスタに書き込む働きをする。書き込まれるプログラマブルな限界値が、ステップ46により、ハードウェアによりサポートされていないと決定される場合、処理は、ステップ50を経て進み、丸められたプログラマブルな限界値が、その代わりとして、当該のハードウェア実装によりサポートされている次に低い値に丸められて、状態構成値に書き込まれる。   If the programmable limit value written by the instruction decoded in step 44 is supported by the hardware (and the configuration controlled by software), step 48 sets the specified programmable limit value to the state Serves to write to the configuration register. If the programmable limit value to be written is determined by step 46 to be unsupported by the hardware, processing proceeds through step 50 and the rounded programmable limit value is instead replaced by the relevant hardware. Rounded to the next lower value supported by the hardware implementation and written to the state configuration value.

図8は、ベクトル被演算子ビットサイズが増大されるときの処理システムの挙動を概略的に例示する。プログラマブルな限界値の使用により、ソフトウェアは、使用中にベクトル被演算子ビットサイズを動的に変更し得ることが理解されるであろう。このような変更は、システムに対して著しい動作上の影響を有する場合があり、このことは、最下層の例外レベル状態がそれ自身のベクトル被演算子ビットサイズを制御することが許容されない1つの理由であり、これにより、典型的にこの最下層の例外レベル状態で実行されるアプリケーションプログラムが望ましくない挙動を引き起こすのを回避する。   FIG. 8 schematically illustrates the behavior of the processing system when the vector operand bit size is increased. It will be appreciated that through the use of programmable limits, software can dynamically change the vector operand bit size during use. Such a change may have a significant operational impact on the system, which is one that does not allow the lowest level exception level state to control its own vector operand bit size. This is why it avoids application programs that typically run in this lowest level exception level state from causing undesirable behavior.

(プログラマブルな限界値の変更、またはより大きいベクトル被演算子ビットサイズの使用を許容する例外レベル状態における動作への例外レベル状態の変更に対する応答などに対して、)ベクトル被演算子ビットサイズが増大されるとき、ベクトル被演算子の新たにアクセス可能になった部分52が、ベクトル処理命令により使用可能になる。処理システム2の確定的挙動を提供するのを助けるために、処理システム2は、このようなベクトル被演算子ビットサイズの増大に対して、ベクトル被演算子の新たにアクセス可能になった部分内の値をゼロにすることにより、あるいは新たにアクセス可能になった部分内の値が、新たにアクセス可能になった部分が最後に使用可能であったときに有していた状態で必ず保持されているようにすることにより、応答する。   Increased vector operand bit size (such as in response to a change in a programmable limit value or an exception level state to an operation in an exception level state that allows the use of a larger vector operand bit size) When done, the newly accessible portion 52 of the vector operand is made available for use by vector processing instructions. In order to help provide deterministic behavior of the processing system 2, the processing system 2 can accommodate the increase in vector operand bit size within the newly accessible portion of the vector operand. The value in the newly accessible part is always preserved by having the value of zero set to zero or in the state it had when the newly accessible part was last usable. Respond by making sure.

図9は、使用され得る仮想マシン実装を例示する。上述の実施形態は、本発明を、当該技法をサポートする特定の処理ハードウェアを動作させるための装置および方法に関して実装しているものの、ハードウェアデバイスのいわゆる仮想マシン実装を提供することも可能である。これらの仮想マシン実装は、仮想マシンプログラム510をサポートするホストオペレーティングシステム520を動かすホストプロセッサ530上で動く。典型的に、妥当な速度で実行される仮想マシン実装を提供するには大型の強力なプロセッサが必要とされるが、このようなアプローチは、別のプロセッサのネイティブコードを互換性または再利用のために動かしたいというニーズが存在するときなど、特定の状況下において正当化され得る。仮想マシンプログラム510は、仮想マシンプログラム510により具現化されているデバイスである現実のハードウェアにより提供されるであろうアプリケーションプログラミングインターフェースと同じアプリケーションプログラミングインターフェースを、アプリケーションプログラム500に提供する。したがって、上述のメモリアクセスの制御を含むプログラム命令は、仮想マシンプログラム510を使用してプログラム命令と仮想マシンハードウェアとの相互作用を具現化するアプリケーションプログラム500内から実行することができる。   FIG. 9 illustrates a virtual machine implementation that may be used. Although the embodiments described above implement the present invention with respect to apparatus and methods for operating specific processing hardware that supports the techniques, it is also possible to provide so-called virtual machine implementations of hardware devices. is there. These virtual machine implementations run on a host processor 530 that runs a host operating system 520 that supports a virtual machine program 510. Typically, a large and powerful processor is required to provide a virtual machine implementation that runs at a reasonable speed, but such an approach is compatible or reusable with the native code of another processor. Can be justified under certain circumstances, such as when there is a need to move to. The virtual machine program 510 provides the application program 500 with the same application programming interface that would be provided by real hardware, which is a device embodied by the virtual machine program 510. Accordingly, program instructions including memory access control as described above can be executed from within an application program 500 that embodies the interaction between program instructions and virtual machine hardware using the virtual machine program 510.

本明細書では添付図面を参照しながら本発明の例示的な実施形態を詳細に説明してきたものの、本発明は厳密なそれらの実施形態には限定されないこと、ならびにそれらの実施形態に対する様々な変更、追加、および修正が、添付請求項により定義される本発明の範囲および趣旨から逸脱することなしに、当業者により行われ得ることが理解されるべきである。例えば、従属請求項の特徴は、本発明の範囲から逸脱することなしに、独立請求項の特徴と様々に組み合わせることができる。   Although exemplary embodiments of the present invention have been described in detail herein with reference to the accompanying drawings, the present invention is not limited to those exact embodiments and various modifications to those embodiments are described. It should be understood that additions, modifications, and alterations may be made by those skilled in the art without departing from the scope and spirit of the invention as defined by the appended claims. For example, the features of the dependent claims can be variously combined with the features of the independent claims without departing from the scope of the present invention.

Claims (15)

データを処理するための装置であって、
最上層の例外レベル状態〜最下層の例外レベル状態にわたる例外レベル状態の階層のうちの選択された例外レベル状態で処理動作を遂行するための処理回路と、
プログラム命令をデコードして、前記処理動作を遂行するように前記処理回路を制御するための制御信号を生成するためのデコーダ回路であって、前記処理動作が、少なくとも1つのベクトル被演算子を使用するベクトル処理動作を含む、デコーダ回路と、を備え、
前記デコーダ回路が、前記選択された例外レベル状態で実行されるベクトル被演算子ビットサイズ依存プログラム命令に応答して、前記選択された例外レベル状態のベクトル被演算子ビットサイズ限界値と、前記選択された例外レベル状態よりも前記階層内で前記最上層の例外レベル状態により近い例外レベル状態の少なくとも1つのプログラマブルなベクトル被演算子ビットサイズ限界値とに依拠してベクトル処理動作を遂行するように前記処理回路を制御する、装置。
A device for processing data,
A processing circuit for performing a processing operation in a selected exception level state in a hierarchy of exception level states ranging from the highest exception level state to the lowest exception level state;
A decoder circuit for decoding a program instruction and generating a control signal for controlling the processing circuit to perform the processing operation, wherein the processing operation uses at least one vector operand A decoder circuit including a vector processing operation to
The decoder circuit in response to a vector operand bit size dependent program instruction executed in the selected exception level state, the vector operand bit size limit value of the selected exception level state; and the selection Performing a vector processing operation depending on at least one programmable vector operand bit size limit value of an exception level state closer to the uppermost exception level state in the hierarchy than the specified exception level state. An apparatus for controlling the processing circuit.
前記ベクトル被演算子ビットサイズが、前記選択された例外レベル状態の前記限界値により許容される最大値であって、前記選択された例外レベル状態よりも前記階層内で前記最上層の例外レベル状態により近い例外レベル状態に関して設定された任意のプログラマブルな限界値によっても許容される、最大値、を有する、請求項1に記載の装置。 The vector operand bit size is a maximum value allowed by the limit value of the selected exception level state, and the exception level state of the highest layer in the hierarchy than the selected exception level state 2. The apparatus of claim 1 having a maximum value that is allowed by any programmable limit value set for an exception level condition closer to. 前記デコーダ回路が、許容ベクトル被演算子ビットサイズクエリ命令に応答して、前記選択された例外レベル状態よりも前記階層内で前記最上層の例外レベル状態により近い例外レベル状態に関して設定された任意のプログラマブルな限界値により支配される許容ベクトル被演算子ビットサイズ指示値を返す、請求項1および2のいずれか一項に記載の装置。 The decoder circuit is responsive to an allowed vector operand bit size query instruction to set any exception level state that is closer to the topmost exception level state in the hierarchy than the selected exception level state. The apparatus according to any one of claims 1 and 2, which returns an allowed vector operand bit size indication value governed by a programmable limit value. 前記階層内の対応する例外レベル状態に関連付けられた前記ベクトル被演算子ビットサイズのそれぞれのプログラマブルな限界値を記憶する複数の例外レベル構成レジスタを備えた、請求項1、2、および3のいずれか一項に記載の装置。 4. The exception level configuration register of claim 1, comprising a plurality of exception level configuration registers storing respective programmable limit values of the vector operand bit size associated with corresponding exception level states in the hierarchy. A device according to claim 1. 前記最下層の例外レベル状態を除く前記階層内の各例外レベル状態のためのそれぞれの例外レベル構成レジスタを備えた、請求項4に記載の装置。 5. The apparatus of claim 4, comprising a respective exception level configuration register for each exception level state in the hierarchy excluding the lowest level exception level state. 前記処理回路が、前記選択された例外状態の例外レベル構成レジスタと、前記選択された例外レベル状態よりも前記階層内で前記最下層の例外レベル状態により近い例外レベル状態の任意の例外レベル構成レジスタとにアクセスすることが許容されている、請求項4および5のいずれか一項に記載の装置。 The processing circuit includes an exception level configuration register in the selected exception state and an arbitrary exception level configuration register in an exception level state that is closer to the exception level state in the lowest layer in the hierarchy than the selected exception level state 6. The device according to any one of claims 4 and 5, wherein access to the device is permitted. 前記処理回路が、前記処理回路が前記最下層の例外レベル状態にあるとき、前記許容ベクトル被演算子ビットサイズクエリ命令を使用して前記許容ベクトル被演算子ビットサイズをクエリすることを阻止される、請求項3に記載の装置。 The processing circuit is prevented from querying the allowable vector operand bit size using the allowable vector operand bit size query instruction when the processing circuit is in the lowest level exception level state. The apparatus according to claim 3. 前記処理回路が、最大で実装限界のベクトル被演算子ビットサイズを有するベクトル被演算子を記憶するためのベクトル被演算子レジスタ回路を含み、前記プログラマブルな限界値が、前記実装限界のベクトル被演算子ビットサイズ以下のベクトル被演算子ビットサイズを使用して前記ベクトル被演算子ビットサイズ依存命令を遂行するように前記処理回路を制御する、請求項1〜7のいずれか一項に記載の装置。 The processing circuit includes a vector operand register circuit for storing a vector operand having a vector operand bit size of a maximum implementation limit, and the programmable limit value is a vector operand of the implementation limit. The apparatus according to claim 1, wherein the processing circuit is controlled to perform the vector operand bit size dependent instruction using a vector operand bit size that is less than or equal to a child bit size. . 前記ベクトル被演算子が、汎用ベクトル被演算子と、ベクトルプログラム命令の実行を制御するための述語値を指定するベクトル述語被演算子とのうちの1つである、請求項1〜8のいずれか一項に記載の装置。 9. The vector operand according to claim 1, wherein the vector operand is one of a general vector operand and a vector predicate operand that specifies a predicate value for controlling execution of a vector program instruction. A device according to claim 1. 前記処理回路が、前記装置によりサポートされていないベクトル被演算子ビットサイズに対応するようにプログラマブルな限界値を設定しようとする試みに応答して、前記プログラマブルな限界値を前記装置によりサポートされている次に低いベクトル被演算子ビットサイズに設定する、請求項1〜9のいずれか一項に記載の装置。 In response to the processing circuit attempting to set a programmable limit value to accommodate a vector operand bit size not supported by the device, the programmable limit value is supported by the device. 10. Apparatus according to any one of the preceding claims, wherein the apparatus is set to the next lowest vector operand bit size. 前記処理回路が、ベクトル被演算子ビットサイズの増大に応答して、前記選択された例外レベル状態の変更と少なくとも1つの前記プログラマブルな限界値の変更とのうちの少なくとも1つの際に、前記ベクトル被演算子の新たにアクセス可能になった部分内に、ゼロの値または前記新たにアクセス可能になった部分が最後にアクセス可能であったときに前記新たにアクセス可能になった部分内に保持されていた値に等しい値のうちの1つを提供する、請求項1〜10のいずれか一項に記載の装置。 The processing circuit is responsive to an increase in the vector operand bit size at the time of at least one of the change of the selected exception level state and the change of at least one of the programmable limit values. Retained in the newly accessible part of the operand in the newly accessible part when the value of zero or the newly accessible part was last accessible 11. Apparatus according to any one of the preceding claims, providing one of the values equal to the value that has been made. 前記許容ベクトル被演算子ビットサイズクエリ命令が、システムレジスタ読み出し命令である、請求項3に記載の装置。 4. The apparatus of claim 3, wherein the allowed vector operand bit size query instruction is a system register read instruction. データを処理するための装置であって、
最上層の例外レベル状態〜最下層の例外レベル状態にわたる例外レベル状態の階層のうちの選択された例外レベル状態で処理動作を遂行するための処理手段と、
プログラム命令をデコードして、前記処理動作を遂行するように前記処理手段を制御するための制御信号を生成するためのデコーダ手段であって、前記処理動作が、少なくとも1つのベクトル被演算子を使用する1つ以上のベクトル処理動作を含む、デコーダ手段と、を備え、
前記デコーダ手段が、前記選択された例外レベル状態で実行されるベクトル被演算子ビットサイズ依存プログラム命令に応答して、前記選択された例外レベル状態のベクトル被演算子ビットサイズ限界値と、前記選択された例外レベル状態よりも前記階層内で前記最上層の例外レベル状態により近い例外レベル状態の少なくとも1つのプログラマブルなベクトル被演算子ビットサイズ限界値とに依拠してベクトル処理動作を遂行するように前記処理手段を制御する、装置。
A device for processing data,
Processing means for performing a processing operation in a selected exception level state in a hierarchy of exception level states ranging from the highest exception level state to the lowest exception level state;
Decoding means for decoding a program instruction and generating a control signal for controlling the processing means to perform the processing operation, wherein the processing operation uses at least one vector operand Decoder means including one or more vector processing operations to
The decoder means, in response to a vector operand bit size dependent program instruction executed in the selected exception level state, the vector operand bit size limit value of the selected exception level state; and the selection Performing a vector processing operation depending on at least one programmable vector operand bit size limit value of an exception level state closer to the uppermost exception level state in the hierarchy than the specified exception level state. An apparatus for controlling the processing means.
データを処理する方法であって、
最上層の例外レベル状態〜最下層の例外レベル状態にわたる例外レベル状態の階層のうちの選択された例外レベル状態で処理回路により処理動作を遂行することと、
プログラム命令をデコードして、前記処理動作を遂行するように前記処理回路を制御するための制御信号を生成することであって、前記処理動作が、少なくとも1つのベクトル被演算子を使用するベクトル処理動作を含む、生成することと、を含み、
前記選択された例外レベル状態で実行されるベクトル被演算子ビットサイズ依存プログラム命令に応答して、前記選択された例外レベル状態のベクトル被演算子ビットサイズ限界値と、前記選択された例外レベル状態よりも前記階層内で前記最上層の例外レベル状態により近い例外レベル状態の少なくとも1つのプログラマブルなベクトル被演算子サイズ限界値とに依拠してベクトル処理動作を遂行するように前記処理回路を制御する、方法。
A method of processing data,
Performing a processing operation by a processing circuit in a selected exception level state in a hierarchy of exception level states ranging from an exception level state at a top layer to an exception level state at a bottom layer;
Decoding a program instruction to generate a control signal for controlling the processing circuit to perform the processing operation, wherein the processing operation uses at least one vector operand Including generating, including,
In response to a vector operand bit size dependent program instruction executed in the selected exception level state, the vector operand bit size limit value of the selected exception level state and the selected exception level state Controlling the processing circuit to perform a vector processing operation depending on at least one programmable vector operand size limit value in an exception level state closer to the exception level state in the hierarchy than in the hierarchy. ,Method.
請求項1〜12のいずれか一項に記載の装置に対応する仮想マシン実行環境を提供するようにコンピュータを制御するための、非一時的な記憶媒体上に記憶されたコンピュータプログラム。 A computer program stored on a non-transitory storage medium for controlling a computer to provide a virtual machine execution environment corresponding to the apparatus according to claim 1.
JP2018503484A 2015-07-31 2016-06-21 Vector operand Bit size control Active JP6874262B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1513512.2A GB2540944B (en) 2015-07-31 2015-07-31 Vector operand bitsize control
GB1513512.2 2015-07-31
PCT/GB2016/051857 WO2017021680A1 (en) 2015-07-31 2016-06-21 Vector operand bitsize control

Publications (2)

Publication Number Publication Date
JP2018521421A true JP2018521421A (en) 2018-08-02
JP6874262B2 JP6874262B2 (en) 2021-05-19

Family

ID=54062957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018503484A Active JP6874262B2 (en) 2015-07-31 2016-06-21 Vector operand Bit size control

Country Status (9)

Country Link
US (1) US10409602B2 (en)
EP (1) EP3329361B1 (en)
JP (1) JP6874262B2 (en)
KR (1) KR102581576B1 (en)
CN (1) CN107851015B (en)
GB (1) GB2540944B (en)
IL (1) IL256440B (en)
TW (1) TWI710956B (en)
WO (1) WO2017021680A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2540944B (en) * 2015-07-31 2018-02-21 Advanced Risc Mach Ltd Vector operand bitsize control
GB2562102B (en) * 2017-05-05 2019-09-04 Advanced Risc Mach Ltd An apparatus and method for managing use of capabilities

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513366A (en) * 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
DE19826826A1 (en) 1998-06-16 1999-07-15 Siemens Ag RISC-processor commands decoding and execution method
US20030221086A1 (en) * 2002-02-13 2003-11-27 Simovich Slobodan A. Configurable stream processor apparatus and methods
GB2474901B (en) * 2009-10-30 2015-01-07 Advanced Risc Mach Ltd Apparatus and method for performing multiply-accumulate operations
US8555034B2 (en) * 2009-12-15 2013-10-08 Oracle America, Inc. Execution of variable width vector processing instructions
GB2478731B (en) 2010-03-15 2013-08-21 Advanced Risc Mach Ltd Operand size control
JP5720111B2 (en) * 2010-04-16 2015-05-20 富士通株式会社 Information processing device
US20110320765A1 (en) * 2010-06-28 2011-12-29 International Business Machines Corporation Variable width vector instruction processor
WO2012134532A1 (en) * 2011-04-01 2012-10-04 Intel Corporation Vector friendly instruction format and execution thereof
GB2489914B (en) * 2011-04-04 2019-12-18 Advanced Risc Mach Ltd A data processing apparatus and method for performing vector operations
CN103765400B (en) * 2011-04-07 2016-05-04 威盛电子股份有限公司 The storage instruction of having ready conditions in a kind of disorder performing microcomputer
WO2013095611A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Apparatus and method for performing a permute operation
US10678541B2 (en) * 2011-12-29 2020-06-09 Intel Corporation Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions
US9594724B2 (en) * 2012-08-09 2017-03-14 International Business Machines Corporation Vector register file
US20140281418A1 (en) * 2013-03-14 2014-09-18 Shihjong J. Kuo Multiple Data Element-To-Multiple Data Element Comparison Processors, Methods, Systems, and Instructions
US9348589B2 (en) * 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US9552209B2 (en) * 2013-12-27 2017-01-24 Intel Corporation Functional unit for instruction execution pipeline capable of shifting different chunks of a packed data operand by different amounts
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
GB2540944B (en) * 2015-07-31 2018-02-21 Advanced Risc Mach Ltd Vector operand bitsize control

Also Published As

Publication number Publication date
TWI710956B (en) 2020-11-21
CN107851015A (en) 2018-03-27
IL256440A (en) 2018-02-28
GB2540944A (en) 2017-02-08
EP3329361A1 (en) 2018-06-06
KR102581576B1 (en) 2023-09-22
EP3329361B1 (en) 2020-08-05
GB201513512D0 (en) 2015-09-16
JP6874262B2 (en) 2021-05-19
CN107851015B (en) 2022-04-26
US20180203699A1 (en) 2018-07-19
KR20180034471A (en) 2018-04-04
GB2540944B (en) 2018-02-21
TW201712535A (en) 2017-04-01
IL256440B (en) 2020-03-31
WO2017021680A1 (en) 2017-02-09
US10409602B2 (en) 2019-09-10

Similar Documents

Publication Publication Date Title
JP2019504403A5 (en)
JP5668143B2 (en) Debugging data processing equipment
KR102590679B1 (en) Testing bit values inside vector elements
WO2012136975A1 (en) A data processing apparatus and method for performing vector operations
KR20130098303A (en) Alignment control
US11003447B2 (en) Vector arithmetic and logical instructions performing operations on different first and second data element widths from corresponding first and second vector registers
JP2018521421A (en) Vector operand bit size control
JP6818010B2 (en) Vector length query instruction
US20220382550A1 (en) Method and apparatus for efficient programmable instructions in computer systems
JP7377208B2 (en) Data processing
US10956159B2 (en) Method and processor for implementing an instruction including encoding a stopbit in the instruction to indicate whether the instruction is executable in parallel with a current instruction, and recording medium therefor
KR20220113724A (en) Content addressable memory with subfield min and max clamping
TW201734821A (en) Register access control

Legal Events

Date Code Title Description
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: 20200811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210330

R150 Certificate of patent or registration of utility model

Ref document number: 6874262

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250