JP2019503010A - 第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する符号化命令 - Google Patents
第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する符号化命令 Download PDFInfo
- Publication number
- JP2019503010A JP2019503010A JP2018536878A JP2018536878A JP2019503010A JP 2019503010 A JP2019503010 A JP 2019503010A JP 2018536878 A JP2018536878 A JP 2018536878A JP 2018536878 A JP2018536878 A JP 2018536878A JP 2019503010 A JP2019503010 A JP 2019503010A
- Authority
- JP
- Japan
- Prior art keywords
- register number
- architecture
- instruction
- architecture register
- operand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 161
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 9
- 230000000295 complement effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000003672 processing method Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000013459 approach Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Description
データ値を記憶するための複数のレジスタと、
命令に応答して処理演算を実行する処理回路と
を備える装置であって、
第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する第1のクラスの命令のうちの1つに応答して、処理回路は、第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号に対応する第1のレジスタおよび第2のレジスタを使用して、対応する処理演算を実行するように構成され、
上記第1の命令クラスの命令は、上記第1のアーキテクチャレジスタ番号を上記第2のアーキテクチャのレジスタ番号よりも大きくなるように制約する命令符号化を有する、装置を提供する。
命令に応答して処理演算を実行するように処理回路を制御するステップを含み、
第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する第1のクラスの命令のうちの1つに応答して、処理回路は、第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号に対応する第1のレジスタおよび第2のレジスタを使用して、対応する処理演算を実行するように制御され、
上記第1の命令クラスの命令は、上記第1のアーキテクチャレジスタ番号を上記第2のアーキテクチャのレジスタ番号よりも大きくなるように制約する命令符号化を有する、データ処理方法を提供する。
データ値を記憶するための複数のレジスタと、
命令に応答して処理演算を実行する処理回路と
を備える装置であって、
第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する命令符号化を有する命令に応答して、処理回路は、第1のアーキテクチャレジスタ番号と第2のアーキテクチャレジスタ番号との比較に基づいて、第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号に対応するレジスタを使用して、第1のタイプの処理演算を実行すべきか、または、第2のタイプの処理演算を実行すべきかを選択するように構成されている、装置を提供する。
第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する命令符号化を有する命令に応答して、第1のアーキテクチャレジスタ番号と第2のアーキテクチャレジスタ番号とを比較するステップと、
第1のアーキテクチャレジスタ番号と第2のアーキテクチャレジスタ番号との比較に基づいて、第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号に対応するレジスタを使用して、第1のタイプの処理演算を実行すべきか、または、第2のタイプの処理演算を実行すべきかを選択するステップと
を含む、データ処理方法を提供する。
・いくつかの命令では、Rx=Ryのとき、処理回路は、第1のタイプの処理演算または第2のタイプの処理演算のいずれかを選択することができる。例えば、第1のタイプの処理演算はRx≧Ryであるときに選択することができ、第2のタイプの動作はRx<Ryである場合に選択することができる。Rx=Ryのとき、両方のタイプの演算を符号化することが意味をなさない場合があるいくつかのタイプの処理演算がある。例えば、第1のタイプの演算が減算であり、第2のタイプの演算が減算の結果の絶対値を生成する場合、Rx=Ryの場合、両方の演算は結果0を生成するため、Rx=Ryのときの2つのタイプの演算のための別々の符号化を提供することには何の意味もなく、代わりに、Rx=Ryのときには、これによって第1のタイプの演算が選択されることになり得る。
・代替的に、Rx=Ryである何らかの命令について、第3のタイプの処理演算が実行されてもよい。したがって、Rx=Ryの符号化は、Rx>RyまたはRx<Ryの場合の演算とはまったく異なる演算をシグナリングすることができる。
・もう1つの手法は、特定の命令について、Rx=Ryの符号化が単に、任意のタイプの処理演算に対応しない無効な符号化であることであり得る。そのような符号化に遭遇すると、命令復号器は未定義の命令をシグナリングしてもよく、またはその命令をNOPとして扱ってもよい。
Rx=Ryの場合を処理するのに、ISAのすべての命令が同じ手法を使用する必要はない。所与のISAは、これらの手法の1つを使用するある命令、および、別の手法を使用する他の命令を有し得る。
2つのソースレジスタRx、Ryを必要とする2入力動作の場合、
A=x EOR Replicate(y<N−1>);
B=x<N−2:0>EOR y<N−2:0>;
instruction=binary_opcode:B:A:d;
1入力演算のために単一のソースレジスタRxを符号化するには、
A=x EOR Replicate(x<N−1>);
B=0;
S=x<N−1>;instruction=unary_opcode:S:B:A:d;
この記法において、
・v<b>は値vのビットbを意味する。例えば、y<N−1>は値yからのビットN−1を参照する。
・v<b:a>は、値vのビットの範囲a〜bを意味し(bは慣例的にaより大きい)、x<N−2:0>は、値xのビット0〜N−2を意味する。
・EORは排他的論理和(XOR)を意味する。
・Replicate()は、カッコ()内の引数のビットを繰り返すことによって形成される全幅の値を意味する。したがって、Replicate(y<N−1>)は、yのビットN−1(yの最上位ビット)にすべて等しいNビットを含む。実効的には、yの最上位ビットが1の場合、A=xであり、yの最上位ビットが0の場合、A=invert(x)である。
・コロン(:)は連結を示し、最上位ビットが最初に表示される。したがって、binary_opcodeが101、Bが00、Aが10、dが1001の場合、binary_opcode:B:A:dの結果は10100101001になる。
boolean binary=(B:A<N−1>!=Replicate(’0’));
bits(N−1)tmp_y=B EOR A<N−2:0>;
boolean flip=(’0’:tmp_y:S>A:’0’);
bits(N)mask=flip?Replicate(’1’,N):Replicate(’0’,N);
bits(N)x=A EOR mask;
bits(N)y=’0’:tmp_y EOR mask;
「binary」フラグは、オペコードがバイナリオペコード(第1のクラスの演算)または単項オペコード(第2のクラスの演算)として解釈されるべきであるかをオペコード復号器40にシグナリングするために使用され得る。
これは、比較的複雑な一連の演算のように見え得るが、回路内でこれを判定する論理は、実際には上記の式によって暗示されるよりも単純である。Aおよびtmp_yの値が反転されるか否かに影響を与える値「flip」を決定するために、Aのいずれのビットが、AがA XOR Bより大きいか否かを決定するのを選択するために、Bの第1の非ゼロスキャンを使用することができる。図6Aは、Rx、Ryを識別するためにAおよびBを復号する回路の例を示す。回路は、Bのそれぞれのビットと、Aの対応するビットとの排他的論理和をとる一連の排他的ORゲート50を含む(すなわち、これらのゲート50は、実効的に、上記の式において「tmp_y」の値を決定する)。この回路はまた、その出力がORゲート54によって結合された一連のNORゲート52を含む。ORゲート54の出力は、上に示したパラメータ「flip」を表す。NORゲート52−0は、追加のオペコードビットSの反転バージョン、Bフィールドの3ビット、およびAフィールドの最上位ビットを入力として受信し、その出力は、S=1、B=000かつAの最上位ビットが0である場合のみ、1になる。NORゲート52−1は、Bの上位2ビット、Aの最上位ビット、Bの最下位ビットの反転バージョンおよびAの最下位ビットを入力として受信し、その出力は、B=001かつA=0?0(ここでも、?によって表されるすべてのビットは0または1のいずれかになり得る)である場合に1になる。NORゲート52−2は、Bの最上位ビット、Aの最上位ビット、Bの最上位から2番目のビットの反転バージョンおよびAの最下位から2番目のビットを入力として受信し、その出力はB=01?かつA=0?0?である場合に1になる。最後に、NORゲート52−3は、Aの最上位から2ビット、および、Bの最上位ビットの反転バージョンを入力として受信し、その出力はB=1??かつA=00??である場合に1になる。いずれかのNORゲート52が1を出力する場合、ORゲート54によって生成されるものとして「flip」=1となる。「flip」が1に等しいとき、Aフィールドは、XORゲート56を使用して反転されて、第1のソースレジスタ指定子Rxが生成される。また、「flip」が1に等しいとき、Ryの最上位ビットは1であり、Ryの他の3ビットは、XORゲート50によって生成されるものとしてのtmp_yの対応するビットの出力を反転するXORビット58によって形成される。代替的に、「flip」が0に等しいとき、Rx=A、Ryの最上位ビット=0であり、Ryの残りのビットはBの対応するビットに等しい。
if(y>=2N−1)then
A=x EOR(2N−1)//(2N−1はすべて1であるN−1ビットを有する値)
B=y EOR(2N−1)
else
A=x
B=y
endif
Ryのこの制約された値のために、Bは常に2N−1より小さくなるため、1ビットを削除することができることが観察され得る。
if(B>=A)then
x=A EOR(2N−1)
y=B EOR(2N−1)
else
x=A
y=B
endif
この手法では、B>=Aであるか否かを判定するためにBとAとのデジタル比較がいくつかのXNORゲートを必要とするため、わずかにより深い復号論理が必要になる場合がある。第2のクラスの命令について、比較器は、Aの下位3ビットがBの対応するビットに等しいか否かを判定することができ、そうである場合、RxはSおよびBからいかなる復号もせずに直接決定することができる。
CMP(Rx<Ry)はCMP(Rx>=Ry)と等価であるため、これらの2つの命令のうちの1つだけを符号化すればよい。
CMP(Rx<=Ry)はCMP(Rx>Ry)と等価であるため、ここでもまた1つの選択肢だけを符号化することができる。
CMP(Rx==Ry)とCMP(Rx!=Ry)とは可換的であるため、これら両方を1つの演算値によって符号化することができ、Rx<RyかRx>Ryかに基づいて正しい演算を選択することができる。
CMP(Rx==Rx)はCMP(Rx<=Rx)と同じように常に真であるため、代わりにCMP(Rx<=Rx)を符号化する。
CMP(Rx!=Rx)はCMP(Rx<=Rx)と同じように常に偽であるため、代わりにCMP(Rx<=Rx)を符号化する。
これらの組み合わせにより、比較演算を符号化するために2ビットのみを使用することが可能になり、合計で(Nx+Ny+2)ビットになる。
Claims (30)
- データ値を記憶するための複数のレジスタと、
命令に応答して処理演算を実行する処理回路と
を備える装置であって、
第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する第1のクラスの命令のうちの1つに応答して、前記処理回路は、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号に対応する第1のレジスタおよび第2のレジスタを使用して、対応する処理演算を実行するように構成され、
前記第1の命令クラスの命令は、前記第1のアーキテクチャレジスタ番号を前記第2のアーキテクチャのレジスタ番号よりも大きくなるように制約する命令符号化を有する、装置。 - 前記第1のクラスの命令は、前記対応する処理演算が可換的演算である少なくとも1つの可換的命令を含む、請求項1に記載の装置。
- 前記第1のクラスの命令は、前記対応する処理演算が非可換的演算である少なくとも1つの非可換的命令を含む、請求項1および2のいずれか一項に記載の装置。
- 前記第1のクラスの命令は、前記第1のレジスタおよび前記第2のレジスタに記憶された第1のオペランドおよび第2のオペランドに適用される同じタイプの前記非可換的演算に対応する少なくとも1対の相補的な非可換的命令を含み、各対について、前記対のうちの1つの命令は、前記第1のオペランドおよび前記第2のオペランドを用いて前記非可換的演算を、前記対の他の命令と異なる順序で実行するように、前記処理回路を制御するためのものである、請求項1〜3のいずれか一項に記載の装置。
- 前記第1のクラスの命令は、前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号との間の連続範囲内のアーキテクチャレジスタ番号に対応する複数のレジスタを使用して処理演算を実行するように前記処理回路を制御するための少なくとも1つのレジスタ範囲指定命令を含む、請求項1〜4のいずれか一項に記載の装置。
- 前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号を識別するために前記第1のクラスの命令の前記命令符号化を復号するレジスタ復号回路を備える、請求項1〜5のいずれか一項に記載の装置。
- 前記処理回路は、2N個のアーキテクチャレジスタを提供する命令セットアーキテクチャに従って命令を処理するように構成され、前記第1の命令クラスにおいて、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号が前記命令符号化の2N−1ビットを用いて表される、請求項1〜6のいずれか一項に記載の装置。
- 前記第1の命令クラスの前記命令符号化は、オペコードフィールドと、前記複数のレジスタの複数のスペアビットパターンが、前記第1のアーキテクチャレジスタ番号が前記第2のアーキテクチャレジスタ番号よりも大きい前記第1のアーキテクチャレジスタ番号と第2のアーキテクチャレジスタ番号との任意の有効な組み合わせに対応しない所定の符号化方式に従って前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号を表す複数のレジスタ識別ビットとを含み、
前記命令セットアーキテクチャは、前記オペコードフィールドと、前記複数のレジスタ識別ビットが前記スペアビットパターンのうちの1つを有する前記複数のレジスタ識別ビットとを含む命令符号化を有する第2のクラスの命令を含み、
前記第2のクラスの命令のうちの1つに応答して、前記処理回路は、前記命令の前記オペコードフィールドを、前記第1のクラスの命令のうちの1つの同一のオペコードフィールドとは別様に解釈するように構成される、請求項1〜7のいずれか一項に記載の装置。 - 前記第2のクラスの命令は、単一ソースアーキテクチャレジスタ番号によって識別されるレジスタを使用して対応する処理演算を実行するように前記処理回路を制御するための、前記単一ソースアーキテクチャレジスタ番号を識別する少なくとも1つの命令を含む、請求項8に記載の装置。
- 前記単一ソースアーキテクチャレジスタ番号は、前記レジスタ識別ビットのサブセットおよび前記オペコードフィールドのビットを使用して、前記第2のクラスの前記少なくとも1つの命令の前記命令符号化において表現される、請求項9に記載の装置。
- 前記第1のクラスの命令の前記命令符号化は、
前記第2のアーキテクチャレジスタ番号の最上位ビットが0であるときに前記第1のアーキテクチャレジスタ番号に依存し、前記第2のアーキテクチャレジスタの最上位ビットが1であるときに、前記第1のアーキテクチャレジスタ番号のすべてのビットを反転した結果に依存する第1のレジスタフィールドと、
前記第2のアーキテクチャレジスタ番号の前記最上位ビット以外の前記第2のアーキテクチャレジスタ番号の残りのビットに依存する値を有する第2のレジスタフィールドと
を含む、請求項1〜10のいずれか一項に記載の装置。 - 前記第2のレジスタフィールドは、前記第2のアーキテクチャレジスタ番号の前記残りのビットと前記第1のアーキテクチャレジスタ番号の対応するビットとの、ビットごとの排他的論理和の結果に依存する値を有する、請求項11に記載の装置。
- 前記第2のレジスタフィールドは、前記第2のアーキテクチャレジスタ番号の前記最上位ビットが0である場合、前記第2のアーキテクチャレジスタ番号の前記残りのビットに依存し、前記第2のアーキテクチャレジスタ番号の最上位ビットが1である場合、前記第2のアーキテクチャレジスタ番号の前記残りのビットを反転した結果に依存する値を有する、請求項11に記載の装置。
- データ処理方法であって、
命令に応答して処理演算を実行するように処理回路を制御するステップを含み、
第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する第1のクラスの命令のうちの1つに応答して、前記処理回路は、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号に対応する第1のレジスタおよび第2のレジスタを使用して、対応する処理演算を実行するように制御され、
前記第1の命令クラスの命令は、前記第1のアーキテクチャレジスタ番号を前記第2のアーキテクチャのレジスタ番号よりも大きくなるように制約する命令符号化を有する、データ処理方法。 - 請求項1〜13のいずれか一項に記載の装置に対応する仮想マシン実行環境を提供するようにコンピュータを制御するコンピュータプログラムを記憶した、コンピュータ可読記憶媒体。
- データ値を記憶するための複数のレジスタと、
命令に応答して処理演算を実行する処理回路と
を備える装置であって、
第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する命令符号化を有する命令に応答して、前記処理回路は、前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号との比較に基づいて、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号に対応するレジスタを使用して、第1のタイプの処理演算を実行すべきか、または、第2のタイプの処理演算を実行すべきかを選択するように構成されている、装置。 - 前記第1のアーキテクチャレジスタ番号が前記第2のアーキテクチャレジスタ番号よりも大きい場合、前記処理回路は前記第1のタイプの処理演算を実行するように構成され、
前記第1のアーキテクチャレジスタ番号が前記第2のアーキテクチャレジスタ番号よりも小さい場合、前記処理回路は前記第2のタイプの処理演算を実行するように構成される、請求項16に記載の装置。 - 前記第1のタイプの処理演算および前記第2のタイプの処理演算は、異なる可換的演算である、請求項17に記載の装置。
- 前記第1のタイプの処理演算および前記第2のタイプの処理演算のうちの1つは、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号に対応する前記レジスタに記憶された第1のオペランドおよび第2のオペランドに対して実行される処理演算を含み、
前記第1のアーキテクチャレジスタ番号が前記第2のアーキテクチャレジスタ番号に等しいとき、前記処理回路は、前記第1のタイプの処理演算および前記第2のタイプの処理演算のうちの前記一方を実行するように構成され、前記第1のオペランドおよび前記第2のオペランドは両方とも同じデータ値を含む、請求項17および18のいずれか一項に記載の装置。 - 前記第1のアーキテクチャレジスタ番号が前記第2のアーキテクチャレジスタ番号と等しい場合、前記処理回路は、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号に対応するレジスタを使用して第3のタイプの処理演算を実行するように構成される、請求項17および18のいずれか一項に記載の装置。
- 前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号とが異なる場合、前記処理回路は前記第1のタイプの処理演算を実行するように構成され、
前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号とが等しい場合、前記処理回路は前記第2のタイプの処理演算を実行するように構成される、請求項16に記載の装置。 - 前記第1のタイプの処理演算は、非可換的演算を含む、請求項21に記載の装置。
- 前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号とを比較するレジスタ番号比較回路と、
前記命令のオペコードおよび前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号との前記比較の結果に基づいて実行されるべき処理演算のタイプを識別する復号回路と
を備える、請求項16〜22のいずれか一項に記載の装置。 - 前記レジスタ番号比較回路は、前記比較の前記結果に応じて少なくとも1つの追加のオペコードビットを生成するように構成され、前記復号回路は、前記オペコードおよび前記少なくとも1つの追加のオペコードビットを復号して、実行される処理演算のタイプを識別するように構成される、請求項23に記載の装置。
- 前記第2のタイプの処理演算は、前記第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号に対応する前記レジスタに記憶された第1のオペランドおよび第2のオペランドに対して前記第1のタイプの処理演算を実行した結果と等価な値を生成することと、前記第1のタイプの処理演算の前記結果の絶対的な大きさを決定することとを含む、請求項17〜20のいずれか一項に記載の装置。
- 前記命令は、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号に対応する前記レジスタに記憶された第1のオペランドおよび第2のオペランドを比較する比較命令を含み、前記第1のタイプの処理演算は、前記第1のオペランドと前記第2のオペランドとが等しいか否かの判定を含み、前記第2のタイプの処理演算は、前記第1のオペランドと前記第2のオペランドとが不等であるか否かの判定を含む、請求項17〜20のいずれか一項に記載の装置。
- 前記命令は、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号に対応する前記レジスタに記憶された第1のオペランドおよび第2のオペランドを比較する比較命令を含み、前記比較命令は比較条件フィールドを有し、
前記比較条件フィールドが第1の値を有するとき、前記比較回路は、前記第1のアーキテクチャレジスタ番号が前記第2のアーキテクチャレジスタ番号より大きい場合に前記第1のオペランドおよび前記第2のオペランドが等しいか否かを判定し、前記第1のアーキテクチャレジスタ番号が前記第2のアーキテクチャレジスタ番号よりも小さい場合に前記第1のオペランドおよび前記第2のオペランドが不等であるか否かを判定するように構成され、
前記比較条件フィールドが第2の値を有するとき、前記処理回路は、前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号との前記比較にかかわらず、(i)前記第1のオペランドが前記第2のオペランドよりも大きいか否か、および(ii)前記第1のオペランドが前記第2のオペランド以下であるか否かのいずれかを判定するように構成され、
前記比較条件フィールドが第3の値を有するとき、前記処理回路は、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号の前記比較にかかわらず、(i)前記第1のオペランドが前記第2のオペランド以上であるか否か、および(ii)前記第1のオペランドが前記第2のオペランドよりも小さいか否かを判定するように構成されている、請求項17〜20のいずれか一項に記載の装置。 - 前記比較条件フィールドは、2ビットフィールドを含む、請求項27に記載の装置。
- 第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する命令符号化を有する命令に応答して、前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号とを比較するステップと、
前記第1のアーキテクチャレジスタ番号と前記第2のアーキテクチャレジスタ番号との比較に基づいて、前記第1のアーキテクチャレジスタ番号および前記第2のアーキテクチャレジスタ番号に対応するレジスタを使用して、第1のタイプの処理演算を実行すべきか、または、第2のタイプの処理演算を実行すべきかを選択するステップと
を含む、データ処理方法。 - 請求項16〜28のいずれか一項に記載の装置に対応する仮想マシン実行環境を提供するようにコンピュータを制御するコンピュータプログラムを記憶した、コンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/003,828 US10331449B2 (en) | 2016-01-22 | 2016-01-22 | Encoding instructions identifying first and second architectural register numbers |
US15/003,828 | 2016-01-22 | ||
PCT/GB2016/051503 WO2017125700A1 (en) | 2016-01-22 | 2016-05-25 | Encoding instructions identifying first and second architectural register numbers |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019503010A true JP2019503010A (ja) | 2019-01-31 |
JP6803390B2 JP6803390B2 (ja) | 2020-12-23 |
Family
ID=56116465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018536878A Active JP6803390B2 (ja) | 2016-01-22 | 2016-05-25 | 第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する符号化命令 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10331449B2 (ja) |
EP (1) | EP3405863B1 (ja) |
JP (1) | JP6803390B2 (ja) |
KR (1) | KR102560426B1 (ja) |
CN (1) | CN108463801B (ja) |
IL (1) | IL260142B (ja) |
WO (1) | WO2017125700A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443948B (zh) * | 2020-03-30 | 2022-09-09 | 龙芯中科技术股份有限公司 | 指令执行方法、处理器和电子设备 |
CN113608785A (zh) * | 2021-08-23 | 2021-11-05 | 北京奕斯伟计算技术有限公司 | 处理器核、处理器及指令处理方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282634B1 (en) * | 1998-05-27 | 2001-08-28 | Arm Limited | Apparatus and method for processing data having a mixed vector/scalar register file |
US6282633B1 (en) * | 1998-11-13 | 2001-08-28 | Tensilica, Inc. | High data density RISC processor |
US6957321B2 (en) | 2002-06-19 | 2005-10-18 | Intel Corporation | Instruction set extension using operand bearing NOP instructions |
US7596680B2 (en) | 2003-09-15 | 2009-09-29 | International Business Machines Corporation | System and method for encoding and decoding architecture registers |
US7263577B2 (en) * | 2005-03-03 | 2007-08-28 | Qualcomm Incorporated | Power saving methods and apparatus to selectively enable comparators in a CAM renaming register file based on known processor state |
US20070038984A1 (en) * | 2005-08-12 | 2007-02-15 | Gschwind Michael K | Methods for generating code for an architecture encoding an extended register specification |
US20070186210A1 (en) * | 2006-02-06 | 2007-08-09 | Via Technologies, Inc. | Instruction set encoding in a dual-mode computer processing environment |
US20110296140A1 (en) | 2010-05-25 | 2011-12-01 | National Chung Cheng University | RISC processor register expansion method |
US9405548B2 (en) * | 2011-12-07 | 2016-08-02 | International Business Machines Corporation | Prioritizing instructions based on the number of delay cycles |
CN105573962B (zh) * | 2013-03-15 | 2018-10-16 | 甲骨文国际公司 | 单指令多数据处理器与相关方法 |
GB2522990B (en) * | 2013-12-20 | 2016-08-03 | Imagination Tech Ltd | Processor with virtualized instruction set architecture and methods |
-
2016
- 2016-01-22 US US15/003,828 patent/US10331449B2/en active Active
- 2016-05-25 EP EP16728076.7A patent/EP3405863B1/en active Active
- 2016-05-25 KR KR1020187023246A patent/KR102560426B1/ko active IP Right Grant
- 2016-05-25 WO PCT/GB2016/051503 patent/WO2017125700A1/en active Application Filing
- 2016-05-25 JP JP2018536878A patent/JP6803390B2/ja active Active
- 2016-05-25 CN CN201680078725.XA patent/CN108463801B/zh active Active
-
2018
- 2018-06-19 IL IL260142A patent/IL260142B/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US20170212758A1 (en) | 2017-07-27 |
WO2017125700A1 (en) | 2017-07-27 |
US10331449B2 (en) | 2019-06-25 |
JP6803390B2 (ja) | 2020-12-23 |
IL260142B (en) | 2020-06-30 |
EP3405863A1 (en) | 2018-11-28 |
CN108463801B (zh) | 2023-03-07 |
IL260142A (en) | 2018-07-31 |
KR20180104652A (ko) | 2018-09-21 |
CN108463801A (zh) | 2018-08-28 |
EP3405863B1 (en) | 2020-08-12 |
KR102560426B1 (ko) | 2023-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5646737B2 (ja) | 条件付き比較命令 | |
KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
EP1267256A2 (en) | Conditional execution of instructions with multiple destinations | |
CN107851013B (zh) | 数据处理装置和方法 | |
US11307855B2 (en) | Register-provided-opcode instruction | |
CN108780395B (zh) | 矢量预测指令 | |
CN107851016B (zh) | 向量算术指令 | |
JP6807073B2 (ja) | 高速ベクトルによる動的なメモリ競合検出 | |
KR101016257B1 (ko) | 프로세서 및 정보 처리 장치 | |
US7146491B2 (en) | Apparatus and method for generating constant values | |
JP6803390B2 (ja) | 第1のアーキテクチャレジスタ番号および第2のアーキテクチャレジスタ番号を識別する符号化命令 | |
JP5732139B2 (ja) | データ要素の条件付き選択 | |
JP2001306321A (ja) | プロセッサ | |
US11573801B1 (en) | Method and apparatus for executing vector instructions with merging behavior | |
JP2001195252A (ja) | マスク技術による無効で分岐効率向上を図るプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190517 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200408 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200707 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200807 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201013 |
|
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: 20201106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6803390 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |