JP5222941B2 - コンパクト命令セットの符号化 - Google Patents
コンパクト命令セットの符号化 Download PDFInfo
- Publication number
- JP5222941B2 JP5222941B2 JP2010506907A JP2010506907A JP5222941B2 JP 5222941 B2 JP5222941 B2 JP 5222941B2 JP 2010506907 A JP2010506907 A JP 2010506907A JP 2010506907 A JP2010506907 A JP 2010506907A JP 5222941 B2 JP5222941 B2 JP 5222941B2
- Authority
- JP
- Japan
- Prior art keywords
- operand
- bit
- decoding
- instruction
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 43
- 230000009977 dual effect Effects 0.000 claims description 19
- 239000000872 buffer Substances 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 11
- 239000013598 vector Substances 0.000 claims description 11
- 230000002093 peripheral effect Effects 0.000 claims description 10
- 239000000470 constituent Substances 0.000 claims 1
- 230000015654 memory Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- QXOQNNAWFUXKMH-UHFFFAOYSA-N 1-(Malonylamino)cyclopropanecarboxylic acid Chemical compound OC(=O)CC(=O)NC1(C(O)=O)CC1 QXOQNNAWFUXKMH-UHFFFAOYSA-N 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 101000740968 Homo sapiens Transcription factor IIIB 50 kDa subunit Proteins 0.000 description 1
- 101100490488 Mus musculus Add3 gene Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 102100039038 Transcription factor IIIB 50 kDa subunit Human genes 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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
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)
Description
−オペランドレジスタを含む各スレッド毎の1組のレジスタ。
−実行するスレッドを動的に選択するスレッドスケジューラ。
−入出力に使用される1組のポート(ポート22)。
−レジスタ間にチャネルを確立するための相互接続システム。
−実時間実行を制御する1組のタイマ。
−入出力をクロックするための1組のクロックジェネレータ。
命令レジスタ:
−PCはプログラムカウンタである。
−SRは状態レジスタである。
アクセスレジスタ:
−GPはグローバルプールポインタである。
−DPはデータポインタである。
−SPはスタックポインタである。
−LRはリンクレジスタである。
オペランドレジスタ:OP1...OP12
命令レジスタは、スレッドの状態に関する、スレッドの実行を制御する際に使用される情報を記憶する。詳細には、スレッドがイベントまたは割り込みを受け入れる能力は、スレッド状態レジスタSRに保持された情報によって制御される。状態レジスタSRは、後で更に詳しく述べるように、スレッドがシングル命令モードかデュアル命令モードかに関する情報を含む場合もある。アクセスレジスタは、プロシージャのローカル変数に使用されたスタックポインタ、プロシージャ間で共用されるデータに通常使用されるデータポインタ、および、大きな定数及びプロシージャエントリポイントにアクセスするために使用される一定のプールポインタとを含む。オペランドレジスタOP1...OP12は、算術および論理演算を実行し、データ構造にアクセスし、サブルーチンを呼び出す命令によって使用される。相互接続システム42は、オペランドレジスタの組の間で、好ましくはある組のオペランドレジスタから別の組のオペランドレジスタにデータを転送するための1つまたは複数のチャネルを提供する。
−レジスタが、実行できる前に初期化されている。
−レジスタが、準備ができていないポート又はデータが利用可能でないポートから入力を試みた。
−レジスタが、準備ができていないポート又はデータの余地のないポートへの出力を試みた。
−所定の資源の特定の条件が満たされたときに生成される可能性のある1つまたは複数のイベントを待機させる命令を実行した。
x[1:0]=i[5:4]
y[1:0]=i[3:2]
z[1:0]=i[1:0]
他の2ビットの各オペランド指定子x、yおよびz(合計6ビット)は、図5では510と示されたオペランド部分i[10:6]の残りの5ビットから復号されなければならない。復号例を以下に示す。復号は、ハードウェアロジックで実施されることが好ましいが、原理上はアルゴリズムまたは参照テーブルで実施されてもよい。
オペランド指定子ビットi[10:61] オペランド番地への復号
00000 x[3:2]=00, y[3:2]=00, z[3:2]=00
00001 x[3:2]=00, y[3:2]=00, z[3:2]=01
00010 x[3:2]=00, y[3:2]=00, z[3:2]=10
00011 x[3:2]=00, y[3:2]=01, z[3:2]=00
00100 x[3:2]=00, y[3:2]=01, z[3:2]=01
00101 x[3:2]=00, y[3:2]=01, z[3:2]=10
00110 x[3:2]=00, y[3:2]=10, z[3:2]=00
00111 x[3:2]=00, y[3:2]=10, z[3:2]=01
01000 x[3:2]=00, y[3:2]=10, z[3:2]=10
01001 x[3:2]=01, y[3:2]=00, z[3:2]=00
01010 x[3:2]=01, y[3:2]=00, z[3:2]=01
01011 x[3:2]=01, y[3:2]=00, z[3:2]=10
01100 x[3:2]=01, y[3:2]=01, z[3:2]=00
01101 x[3:2]=01, y[3:2]=01, z[3:2]=01
01110 x[3:2]=01, y[3:2]=01, z[3:2]=10
01111 x[3:2]=01, y[3:2]=10, z[3:2]=00
10000 x[3:2]=01, y[3:2]=10, z[3:2]=01
10001 x[3:2]=01, y[3:2]=10, z[3:2]=10
10010 x[3:2]=10, y[3:2]=00, z[3:2]=00
10011 x[3:2]=10, y[3:2]=00, z[3:2]=01
10100 x[3:2]=10, y[3:2]=00, z[3:2]=10
10101 x[3:2]-10, y[3:2]=01, z[3:2]=00
10110 x[3:2]=10, y[3:2]=01, z[3:2]=01
10111 x[3:2]=10, y[3:2]=01, z[3:2]=10
11000 x[3:2]=10, y[3:2]=10, z[3:2]=00
11001 x[3:2]=10, y[3:2]=10, z[3:2]=01
11010 x[3:2]=10, y[3:2]=10, z[3:2]=10
11011 Alt
11100 Alt
11101 Alt
11110 Alt
11111 Alt
従って、上記の方式を使用することにより、オペランド指定子x[3:0]、y[3:0]およびz[3:0]はそれぞれ、0(0000)〜11(1011)の値を取り出して、それぞれ以下の12個のオペランドレジスタのどれかを指定することができる、
オペランドレジスタ 番地
OP1 0000
OP2 0001
OP3 0010
OP4 0011
OP5 0100
OP6 0101
OP7 0110
OP8 0111
OP9 1000
OP10 1001
OP11 1010
OP12 1011
必要に応じて、代りに値x、yおよびzのうちのいくつかまたはすべてを使用して即値オペランドを提供してもよく、すなわち、指定されたレジスタから取り出されるのではなくオペランド自体が命令内に直接符号化されてもよい。好ましい形式では、1つのオペランド指定子だけを即値オペランドと置き換えることができる。指定子と同様に、即値オペランドは、範囲0〜11内でなければならない。値x、yおよびzはそれぞれ、オペランド指定子または即値オペランドを指すために、本明細書では総称的に「オペランド要素」と呼ばれる場合がある。
x[1:0]=i[3:2]
y[1:0]=i[1:0]
各オペランド指定子xおよびyの他の2ビット(合計4ビット)は、オペランド部分i[10:5]の残りの6ビットから復号されなければならず、図6では604と示される。i[10:6]が、形式IIの27(11011)〜31(11111)でしか有効でなく、過剰ビット(extra bit)i[5]が含まれるときは可能な値は10個だけになることに注意されたい。例示的な復号を以下に示す。
オペランド指定子ビットi[10:5] オペランド番地への復号
110110 x[3:2]=00, y[3:2]=00
111000 x[3:2]=00, y[3:2]=01
111010 x[3:2]=00, y[3:2]=10
111100 x[3:2]=01, y[3:2]=00
111110 x[3:2]=01, y[3:2]=01
110111 x[3:2]=01, y[3:2]=10
111001 x[3:2]=10, y[3:2]=00
111011 x[3:2]=1O, y[3:23=01
111101 x[3:2]=10, y[3:2]=10
111111 Alt
したがって、オペランド指定子x[3:0]およびy[3:0]はそれぞれ、上記の12個のオペランドレジスタのどれかそれぞれ指定するために0(0000)〜11(1011)の値を取ることができる。
PFIX この命令は、その10ビット即値オペランドをその後の16ビット命令の即値オペランドと連結する。これは、形式VIIIである、
EOPR この命令は、その11ビットオペランド部分をその後の命令と連結する。この命令は、単純にオペレーションコードとしてビットi[15:11]と即値オペランドとしてビットi[10:0]を有する別の形式を有する。
ADDI dest, source, constant ソースを定数に加える(2つのop regと4ビットimm)
MUL dest, sourcel , source2 ソース1とソース2を掛ける(3つのop reg)
LSU dest, sourcel , source2 符号なし未満(3つのop reg)
STW data, base offset データをメモリに記憶する(3つのop reg)
LDW data, base, offset メモリからデータをロードする(3つのop reg)
LDWSP data, offset スタックからデータをロードする(任意のregと6ビットimm)
LDC data, constant 定数をロードする(任意のregと6ビットimm)
STB data, addr バイトをメモリに記憶する(2つのop reg)
BRFT flag, offset フラグが真の場合に前方に分岐する(op regと6ビットimm)
BRBF flag, offset フラグが偽の場合に後方に分岐(op regと6ビットimm)
BRFU offset 無条件に相対前方に分岐する(6ビットimm)
BLRF offset 分岐とリンク相対前方(10ビットimm呼出しサブルーチン)
GETR resource, type 資源をスレッドに割り当てる(2つのop reg)
IN resource, data 入力(2つのop reg)
OUT resource, data 出力(2つのop reg)
INSHR resource, data 入力し右にシフトする(2つのop reg)
NOT dest, source ビット単位でない(2つのop reg)
EET flag, resource フラグが真の場合にイベントをイネーブルする(2つのop reg)
EEU resource イベントを無条件にイネーブルする(1のop reg)
WAITEU 無条件にイベントを待つ(オペランドなし)
CLRE スレッドのイベントをクリアする(オペランドなし)
デュアル命令発行のいくつかの例がある。2つの命令が同一行に示された場合、これは、命令が2つの並列パイプラインに一緒に発行されたことを示す。
MACC:
LDW x, a, i LSU go, i, limit
LDW y, b, i ADD i, i, 1
MUL prod, x, y
BRBF go, MACC ADD sum, sum, prod
次の2つは、DMA(直接記憶アクセス)コントローラによって通常実行されるのと同じ入出力機能を実行する。これらの機能は、メモリ内のアドレス基底で始まるチャネルcを使用してワードのブロックを転送する。
DMAI:
LSU go, i, limit IN c, x
STW x, base, i
BRBF go, DMAI ADDl i, i, 1
DMAO:
LDW x, base, i LSU go, I, limit
ADDI U, 1 OUT c.x
BRBF go, DMAO
次の例は、イーサネット(登録商標)によって使用されるメディア独立インタフェースから入力を実行する。これは、4ビットdportからのデータと1ビットvportからの有効信号をシフトインする。各対の4ビット値が、1バイトを形成し、各バイトがメモリに記憶される。有効信号をバイトごとに確認して一連のバイトが終了したことを判定する。
MACI:
STB data, ptr INSHR dport, data
ADDI ptr, ptr, 1 INSHR vport, valid
NOT go, valid INSHR dport, data
BRBF go, MACI INSHR vport, valid
最後の例は、1命令サイクル当たり1アイテム(ビット、ニブル、バイトなど)のポートレートで入力されたデータを示す。これは、トークンをずっとカウントしかつ/またはトークン値の終了をスキャンしている間に行うことができる。アイテムは、バイト、ハーフワードまたはワード間で変換され、メモリ間で転送されてもよい。
82、84 オペランド復号ロジック
90 スイッチングロジック
Claims (56)
- オペレーションコード復号ロジック、オペランド復号ロジック、および16ビット入力を有し、プロセッサ内で命令を復号するための復号ユニットであって、
前記オペレーションコード復号ロジックは、前記入力の5ビットを使用してオペレーションコードを決定する働きをし、前記オペランド復号ロジックは、前記入力の残りの11ビットから、可能な12個の2進値のうちの1つをそれぞれ有する3つの4ビットオペランド要素を決定する働きをし、
前記オペランド復号ロジックは、前記11ビットの符号化グループを復号して3つのオペランド要素の各オペランド要素の第1の部分を決定し、前記11ビットの逐語的グループを逐語的に読み出して3つのオペランド要素の各オペランド要素の第2の部分を決定する働きをする復号ユニット。 - 前記入力の値が所定の条件を満たす場合に、前記11ビットの少なくとも1ビットを前記オペランド復号ロジックから前記オペレーションコード復号ロジックに分流する働きをするスイッチングロジックを含み、前記オペレーションコード復号ロジックは、前記入力の値が所定の条件を満たす場合に、前記5ビットと前記分流された少なくとも1ビットを使用してオペレーションコードを決定する働きをする、請求項1に記載の復号ユニット。
- 前記オペランド復号ロジックは、前記入力の値が所定の条件を満たす場合に、前記11ビットの残りのビットから少なくとも1つのオペランドを決定する働きをする、請求項2に記載の復号ユニット。
- 前記スイッチングロジックは、前記11ビットが、前記3つの4ビットオペランド要素を符号化するために使用されない値を有する場合に、前記少なくとも1ビットを分流するように構成された、請求項2に記載の復号ユニット。
- 前記スイッチングロジックは、前記5ビットが所定の値または範囲の値を有する場合に、前記少なくとも1ビットを分流するように構成された、請求項2に記載の復号ユニット。
- 前記符号化グループは5ビットであり、前記逐語的グループは6ビットであり、各オペランド要素の前記第1の部分は2ビットであり、各オペランド要素の前記第2の部分は2ビットである、請求項1に記載の復号ユニット。
- 前記入力は、16ビットの命令レジスタから送られる、請求項1に記載の復号ユニット。
- 前記オペランド要素の少なくとも1つは、1組12個のオペランドレジスタのうちのいずれかからオペランドレジスタを指定するためのオペランド指定子である、請求項1に記載の復号ユニット。
- 前記3つのオペランド要素はそれぞれ、前記組のいずれかからのオペランドレジスタをそれぞれ指定するそれぞれのオペランド指定子を含む、請求項8に記載の復号ユニット。
- 前記3つのオペランド要素は、
1つの即値オペランドと、前記組のいずれかからの2つのオペランドレジスタをそれぞれ指定するための2つのオペランド指定子とを含む、請求項8に記載の復号ユニット。 - 前記3つのオペランド要素は、
即値ソースオペランド、または、前記組のいずれかからそれぞれのソースオペランドレジスタを指定するためのソースオペランド指定子である2つのソースオペランド要素と、
前記組のいずれかからのディスティネーションオペランドレジスタを指定するための1つのディスティネーションオペランド指定子と、を含み、
前記復号ユニットは、前記ソースオペランドを処理し、前記処理の結果を前記ディスティネーションオペランドレジスタに記憶することを示す前記オペレーションコードに従って前記命令を実行する働きをする、請求項8に記載の復号ユニット。 - 前記3つのオペランドは、3つのソースオペランドを含む、請求項1に記載の復号ユニット。
- 前記入力の値が所定の条件を満たす場合に、前記11ビットのうちの1ビットを前記オペランド復号ロジックから前記オペレーションコード復号ロジックに分流する働きをするスイッチングロジックを含み、
前記オペレーションコード復号ロジックは、前記入力の値が所定の条件を満たす場合に、前記5ビットと前記分流された1ビットを使用してオペレーションコードを決定する働きをし、前記オペランド復号ロジックは、前記入力の値が所定の条件を満たす場合に、残りの10ビットから2つの4ビットオペランド指定子を決定する働きをし、各4ビットオペランド指定子は、1組の12個のオペランドレジスタのいずれかからオペランドレジスタを指定するための12個の可能な2進値のうちの1つを有し、
前記オペランド復号ロジックは、前記入力の値が所定の条件を満たす場合に、前記10ビットの符号化グループを復号して前記2つのオペランド指定子の各オペランド指定子の第1の部分を決定し、前記10ビットの逐語的グループを逐語的に読み出して前記2つのオペランド指定子の各オペランド指定子の第2の部分を決定する働きをする、請求項1に記載の復号ユニット。 - 前記復号ユニットは、複数スレッドの命令を復号するように構成され、各スレッドは、命令のシーケンスを含み、前記復号ユニットによって復号された命令の少なくとも1つは、前記シーケンスのうちの1つのシーケンスの構成要素である、請求項1に記載の復号ユニット。
- 前記少なくとも1つの命令は、前記複数スレッドのうちの1つまたは複数のスレッドのスケジューリングを管理するためのスレッドスケジューリング命令である、請求項14に記載の復号ユニット。
- 前記命令の少なくとも1つは、
イベントと関連付けられた条件を設定するためのセットイベント条件命令と、イベント条件と関連付けられたデータを設定するためのセット条件データ命令と、イベントと関連付けられた継続点ベクトルを設定するためのセットベクトル命令と、イベントソースがイベントを生成することを可能にするソースイベントイネーブル命令と、スレッドがイベントに反応することを可能にするスレッドイベントイネーブル命令と、のいずれかである、請求項1に記載の復号ユニット。 - 前記復号ユニットは、プレフィックス命令のオペランドを、次に実行する命令のオペランドと連結する働きをする、請求項1に記載の復号ユニット。
- 前記入力は、64ビット命令バッファから命令を受け取るように構成された、請求項1に記載の復号ユニット。
- 2つのそれぞれの16ビット命令を同時に並列に実行する働きをする少なくとも2つの並列パイプラインを含み、各パイプラインが請求項1による復号ユニットを含む実行ユニット。
- 前記実行ユニットは、デュアル発行モードとシングル発行モードで動作可能であり、前記デュアル発行モードでは、前記実行ユニットは、2つの16ビット命令を2つのそれぞれのパイプラインに単一サイクルで発行する働きをし、シングル発行モードでは1つの16ビットの命令だけをパイプラインに単一サイクルで発行する働きをする、請求項19に記載の実行ユニット。
- 前記実行ユニットは、前記パイプラインのうちの1つのパイプラインに32ビット命令を単一サイクルで発行する働きをする、請求項19に記載の実行ユニット。
- 複数組の12個のオペランドレジスタを含み、各組が、前記スレッドのそれぞれの1つに関するオペランドを記憶するように構成された、請求項14による復号ユニットを含むプロセッサ。
- 前記プロセッサは、第1の外部装置と第2の外部装置とを接続するインタフェースプロセッサである、請求項1による復号ユニットを含むプロセッサ。
- 前記第1の外部装置は、別のプロセッサであり、前記第2の外部装置は、周辺装置である、請求項23に記載のプロセッサ。
- 前記第1および第2の外部装置は、両方とも他のプロセッサである、請求項23に記載のプロセッサ。
- 前記命令の少なくとも1つは、
前記外部装置のうちの1つから前記インタフェースプロセッサにデータを入力するための入力命令と、前記インタフェースプロセッサから前記外部装置のうちの1つにデータを出力するための出力命令のいずれかである、請求項23に記載のプロセッサ。 - オペレーションコード復号ロジック、オペランド復号ロジック、および16ビット入力を含む復号ユニットを使用して、プロセッサ内で命令を復号する方法であって、
前記オペレーションコード復号ロジックを操作して、前記入力の5ビットを使用してオペレーションコードを決定するステップと、
前記オペランド復号ロジックを操作して、前記入力の残りの11ビットから、可能な12個の可能な2進値のうちの1つをそれぞれ有する3つの4ビットオペランド要素を決定するステップとを含み、
前記3つのオペランド要素を決定するステップは、前記11ビットの符号化グループを復号して前記3つのオペランド要素の各オペランド要素の第1の部分を決定し、前記11ビットの逐語的グループを逐語的に読み出して3つのオペランド要素の各オペランド要素の第2の部分を決定する方法。 - 前記入力の値が所定の条件を満たす場合に、前記11ビットの少なくとも1ビットを前記オペランド復号ロジックから前記オペレーションコード復号ロジックに分流するステップと、
前記オペレーションコード復号ロジックを操作して、前記入力の値が所定の条件を満たす場合に、前記5ビットと前記分流された少なくとも1ビットを使用してオペレーションコードを決定するステップとを含む、請求項27に記載の方法。 - 前記オペランド復号ロジックを操作して、前記入力の値が所定の条件を満たす場合に、前記11ビットの残りのビットから少なくとも1つのオペランドを決定するステップを含む、請求項28に記載の方法。
- 前記少なくとも1ビットを分流する前記ステップは、前記11ビットが、前記3つの4ビットオペランド要素を符号化するために使用されない値を有する場合に実行される、請求項28に記載の方法。
- 前記少なくとも1ビットを分流する前記ステップは、前記5ビットが所定の値または範囲の値を有する場合に実行される、請求項28に記載の方法。
- 前記符号化グループが5ビットであり、前記逐語的グループが6ビットであり、各オペランド要素の前記第1の部分が2ビットであり、各オペランド要素の前記第2の部分が2ビットである、請求項27に記載の方法。
- 前記入力は、16ビットの命令レジスタから送られる、請求項27に記載の方法。
- 前記オペランド要素の少なくとも1つは、1組12個のオペランドレジスタのうちのいずれかからオペランドレジスタを指定するためのオペランド指定子である、請求項27に記載の方法。
- 前記3つのオペランド要素はそれぞれ、前記組のいずれかからのオペランドレジスタをそれぞれ指定するためのそれぞれのオペランド指定子を含む、請求項34に記載の方法。
- 前記3つのオペランド要素は、1つの即値オペランドと、前記組のいずれかからの2つのオペランドレジスタをそれぞれ指定するための2つのオペランド指定子とを含む、請求項34に記載の方法。
- 前記3つのオペランド要素は、
即値ソースオペランド、または、前記組のいずれかからのそれぞれのソースオペランドレジスタを指定するためのソースオペランド指定子である2つのソースオペランド要素と、
前記組のいずれかからのディスティネーションオペランドレジスタを指定するための1つのディスティネーションオペランド指定子と、を含み、
前記ソースオペランドを処理し、前記処理の結果を前記ディスティネーションオペランドレジスタに記憶するステップを含む、オペレーションコードに従って前記命令を実行するステップを含む、請求項34に記載の方法。 - 前記3つのオペランドは、3つのソースオペランドを含む、請求項27に記載の方法。
- 前記入力の値が所定の条件を満たす場合に、前記11ビットのうちの1ビットを前記オペランド復号ロジックから前記オペレーションコード復号ロジックに分流するステップと、
前記オペレーションコード復号ロジックを操作して、前記入力の値が所定の条件を満たす場合に、前記5ビットと前記分流された1ビットを使用してオペレーションコードを決定するステップと、
前記オペランド復号ロジックを操作して、前記入力の値が所定の条件を満たす場合に、残りの10ビットから、1組の12個のオペランドレジスタのいずれかからのオペランドレジスタを指定するために、可能な12個の2進値のうちの1つをそれぞれ有する2つの4ビットオペランド指定子を決定するステップとを含み、
前記2つのオペランド指定子を決定する前記ステップは、前記入力の値が所定の条件を満たす場合に、前記10ビットの符号化グループを復号して前記2つのオペランド指定子の各オペランド指定子の第1の部分を決定し、前記10ビットの逐語的グループを逐語的に読み出して前記2つのオペランド指定子の各オペランド指定子の第2の部分を決定するステップを含む、請求項27に記載の方法。 - 前記復号ユニットを操作して複数スレッドの命令を復号するステップを含み、各スレッドは、命令のシーケンスを含み、前記復号された命令の少なくとも1つが、前記シーケンスのうちの1つの構成要素である、請求項27に記載の方法。
- 前記少なくとも1つの命令は、前記複数スレッドの1つまたは複数のスレッドのスケジューリングを管理するためのスレッドスケジューリング命令である、請求項40に記載の方法。
- 前記命令の少なくとも1つは、
イベントと関連付けられた条件を設定するためのセットイベント条件命令と、イベント条件と関連付けられたデータを設定するためのセット条件データ命令と、イベントと関連付けられた継続点ベクトルを設定するためのセットベクトル命令と、イベントソースがイベントを生成することを可能にするためのソースイベントイネーブル命令と、スレッドがイベントに反応することを可能にするスレッドイベントイネーブル命令のいずれかである、請求項27に記載の方法。 - 前記復号ユニットを操作して、プレフィックス命令のオペランドを、次に実行される命令のオペランドと連結するステップを含む、請求項27に記載の方法。
- 前記入力に64ビット命令バッファから命令を受け取るステップを含む、請求項27に記載の方法。
- 2つのそれぞれの並列パイプラインを含む実行ユニットを同時に使用して少なくとも2つの16ビット命令を実行するステップを含み、各パイプラインが請求項27に記載の方法により操作される、請求項27に記載の方法。
- 前記実行ユニットをデュアル発行モードで操作するかシングル発行モードで操作するかを選択するステップを含み、前記デュアル発行モードでは、前記実行ユニットは、2つの16ビット命令を2つのそれぞれのパイプラインに単一サイクルで発行する働きをし、シングル発行モードでは、実行ユニットは、1つの16ビット命令だけをパイプラインに単一サイクルで発行する働きをする、請求項45に記載の方法。
- 前記パイプラインのうちの1つを操作して32ビット命令を単一サイクルで実行する、請求項45に記載の方法。
- それぞれのスレッドに関するオペランドを、それぞれの組の12個のオペランドレジスタに記憶するステップを含む、請求項40に記載の方法。
- 前記プロセッサは、インタフェースプロセッサであり、前記プロセッサを使用して第1の外部装置と第2の外部装置を接続するステップを含む、請求項27に記載の方法。
- 前記第1の外部装置が別のプロセッサであり、前記第2の外部装置が周辺装置である、請求項49に記載の方法。
- 前記第1と第2の外部装置が両方とも他のプロセッサである、請求項49に記載の方法。
- 前記命令の少なくとも1つは、
前記外部装置のうちの1つから前記インタフェースプロセッサにデータを入力するための入力命令と、前記インタフェースプロセッサから前記外部装置のうちの1つにデータを出力するための出力命令のいずれかである、請求項49に記載の方法。 - モバイルアプリケーションプロセッサ、少なくとも1つの周辺装置、およびモバイルアプリケーションプロセッサと周辺装置の間に接続されたインタフェースプロセッサを有し、前記インタフェースプロセッサが、プロセッサ内で命令を復号するための復号ユニットを有し、前記復号ユニットが、オペレーションコード復号ロジック、オペランド復号ロジック、および16ビット入力を含むモバイル端末であって、
前記オペレーションコード復号ロジックは、前記入力の5ビットを使用してオペレーションコードを決定する働きをし、前記オペランド復号ロジックは、前記入力の残りの11ビットから、可能な12個の2進値のうちの1つをそれぞれ有する3つの4ビットオペランド要素を決定する働きをし、
前記オペランド復号ロジックは、前記11ビットの符号化グループを復号して前記3つのオペランド要素の各オペランド要素の第1の部分を決定し、前記11ビットの逐語的グループを逐語的に読み出して前記3つのオペランド要素の各オペランド要素の第2の部分を決定する働きをするモバイル端末。 - 相互接続プロセッサアレイにおいて、前記プロセッサのうちの少なくとも1つが、オペレーションコード復号ロジック、オペランド復号ロジック、および16ビット入力を有し、プロセッサ内で命令を復号するための復号ユニットを有する相互接続プロセッサアレイであって、
前記オペレーションコード復号ロジックは、前記入力の5ビットを使用してオペレーションコードを決定する働きをし、前記オペランド復号ロジックは、前記入力の残りの11ビットから、可能な12個の2進値のうちの1つをそれぞれ有する3つの4ビットオペランド要素を決定する働きをし、
前記オペランド復号ロジックは、前記11ビットの符号化グループを復号して3つのオペランド要素の各オペランド要素の第1の部分を決定し、前記11ビットの逐語的グループを逐語的に読み出して前記3つのオペランド要素の各オペランド要素の第2の部分を決定する働きをする、相互接続プロセッサアレイ。 - オペレーションコード復号ロジック、オペランド復号ロジック、および16ビット入力を含み、命令を復号するための復号ユニットを有するプロセッサであって、
前記オペレーションコード復号ロジックは、前記入力の5ビットを使用してオペレーションコードを決定する働きをし、前記オペランド復号ロジックは、前記入力の残りの11ビットから、可能な12個の2進値のうちの1つをそれぞれ有する3つの4ビットオペランド要素を決定する働きをし、
前記オペランド復号ロジックは、前記11ビットの符号化グループを復号して前記3つのオペランド要素の各オペランド要素の第1の部分を決定し、前記11ビットの逐語的グループを逐語的に読み出して前記3つのオペランド要素の各オペランド要素の第2の部分を決定する働きをするプロセッサ。 - プロセッサ内で命令を復号するための復号ユニットであって、
16ビット入力手段と、
前記入力の5ビットを使用してオペレーションコードを決定するためのオペレーションコード復号手段と、
前記入力の残りの11ビットから、可能な12個の2進値のうちの1つをそれぞれ有する3つの4ビットオペランド要素を決定するためのオペランド復号手段と、を含み、
前記オペランド復号手段は、前記11ビットの符号化グループを復号して前記3つのオペランド要素の各オペランド要素の第1の部分を決定し、前記11ビットの逐語的グループを逐語的に読み出して前記3つのオペランド要素の各オペランド要素の第2の部分を決定する復号ユニット。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/797,968 | 2007-05-09 | ||
US11/797,968 US7676653B2 (en) | 2007-05-09 | 2007-05-09 | Compact instruction set encoding |
PCT/EP2008/055436 WO2008138781A1 (en) | 2007-05-09 | 2008-05-02 | Compact instruction set encoding |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010526383A JP2010526383A (ja) | 2010-07-29 |
JP5222941B2 true JP5222941B2 (ja) | 2013-06-26 |
Family
ID=39651396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010506907A Active JP5222941B2 (ja) | 2007-05-09 | 2008-05-02 | コンパクト命令セットの符号化 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7676653B2 (ja) |
EP (1) | EP2145249B1 (ja) |
JP (1) | JP5222941B2 (ja) |
KR (1) | KR101528614B1 (ja) |
CN (1) | CN101720460B (ja) |
WO (1) | WO2008138781A1 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101084728B1 (ko) | 2009-12-24 | 2011-11-22 | 서울대학교산학협력단 | 동적 암시 어드레싱 모드를 지원하는 파이프라인 방식의 프로세서 |
US20120284488A1 (en) * | 2011-05-03 | 2012-11-08 | Qualcomm Incorporated | Methods and Apparatus for Constant Extension in a Processor |
US9286072B2 (en) | 2011-10-03 | 2016-03-15 | International Business Machines Corporation | Using register last use infomation to perform decode-time computer instruction optimization |
US8612959B2 (en) | 2011-10-03 | 2013-12-17 | International Business Machines Corporation | Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US8756591B2 (en) | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
US9354874B2 (en) | 2011-10-03 | 2016-05-31 | International Business Machines Corporation | Scalable decode-time instruction sequence optimization of dependent instructions |
US10078515B2 (en) | 2011-10-03 | 2018-09-18 | International Business Machines Corporation | Tracking operand liveness information in a computer system and performing function based on the liveness information |
US9697002B2 (en) | 2011-10-03 | 2017-07-04 | International Business Machines Corporation | Computer instructions for activating and deactivating operands |
US9690583B2 (en) | 2011-10-03 | 2017-06-27 | International Business Machines Corporation | Exploiting an architected list-use operand indication in a computer system operand resource pool |
US9329869B2 (en) | 2011-10-03 | 2016-05-03 | International Business Machines Corporation | Prefix computer instruction for compatibily extending instruction functionality |
US8615745B2 (en) | 2011-10-03 | 2013-12-24 | International Business Machines Corporation | Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US20150019845A1 (en) * | 2013-07-09 | 2015-01-15 | Texas Instruments Incorporated | Method to Extend the Number of Constant Bits Embedded in an Instruction Set |
US10061592B2 (en) * | 2014-06-27 | 2018-08-28 | Samsung Electronics Co., Ltd. | Architecture and execution for efficient mixed precision computations in single instruction multiple data/thread (SIMD/T) devices |
US9696992B2 (en) * | 2014-12-23 | 2017-07-04 | Intel Corporation | Apparatus and method for performing a check to optimize instruction flow |
US10394568B2 (en) | 2015-09-30 | 2019-08-27 | International Business Machines Corporation | Exception handling for applications with prefix instructions |
US10761852B2 (en) | 2015-09-30 | 2020-09-01 | International Business Machines Corporation | Extending data range addressing |
US10877759B2 (en) | 2015-09-30 | 2020-12-29 | International Business Machines Corporation | Managing the capture of information in applications with prefix instructions |
US9870305B2 (en) | 2015-09-30 | 2018-01-16 | International Business Machines Corporation | Debugging of prefixed code |
US10089077B1 (en) | 2017-01-10 | 2018-10-02 | Apple Inc. | Parallel processing circuitry for encoded fields of related threads |
CN110175048A (zh) * | 2019-05-15 | 2019-08-27 | 童先娥 | 一种指令处理方法及处理器 |
US11288072B2 (en) * | 2019-09-11 | 2022-03-29 | Ceremorphic, Inc. | Multi-threaded processor with thread granularity |
CN110995285B (zh) * | 2019-12-27 | 2023-05-05 | 成都达安众科技有限公司 | 一种uhf rfid分步式指令解码方法及芯片 |
CN113805942A (zh) * | 2021-08-23 | 2021-12-17 | 北京奕斯伟计算技术有限公司 | 处理器核、处理器及指令处理方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5303358A (en) * | 1990-01-26 | 1994-04-12 | Apple Computer, Inc. | Prefix instruction for modification of a subsequent instruction |
JP3505266B2 (ja) * | 1995-06-15 | 2004-03-08 | 三洋電機株式会社 | プログラム実行装置 |
US5905893A (en) * | 1996-06-10 | 1999-05-18 | Lsi Logic Corporation | Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set |
AU3480897A (en) | 1996-06-10 | 1998-01-07 | Lsi Logic Corporation | An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set |
US5933627A (en) * | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
EP0942357A3 (en) | 1998-03-11 | 2000-03-22 | Matsushita Electric Industrial Co., Ltd. | Data processor compatible with a plurality of instruction formats |
JP3472504B2 (ja) * | 1998-03-11 | 2003-12-02 | 松下電器産業株式会社 | 命令解読方法、命令解読装置及びデータ処理装置 |
JP4457474B2 (ja) * | 2000-04-04 | 2010-04-28 | ソニー株式会社 | 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体 |
US6976152B2 (en) * | 2001-09-24 | 2005-12-13 | Broadcom Corporation | Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard |
US7428631B2 (en) * | 2003-07-31 | 2008-09-23 | Intel Corporation | Apparatus and method using different size rename registers for partial-bit and bulk-bit writes |
-
2007
- 2007-05-09 US US11/797,968 patent/US7676653B2/en active Active
-
2008
- 2008-05-02 EP EP08750005.4A patent/EP2145249B1/en active Active
- 2008-05-02 CN CN2008800227357A patent/CN101720460B/zh active Active
- 2008-05-02 WO PCT/EP2008/055436 patent/WO2008138781A1/en active Application Filing
- 2008-05-02 KR KR1020097025743A patent/KR101528614B1/ko active IP Right Grant
- 2008-05-02 JP JP2010506907A patent/JP5222941B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
CN101720460B (zh) | 2013-02-13 |
EP2145249A1 (en) | 2010-01-20 |
JP2010526383A (ja) | 2010-07-29 |
US20080282066A1 (en) | 2008-11-13 |
KR101528614B1 (ko) | 2015-06-12 |
WO2008138781A1 (en) | 2008-11-20 |
CN101720460A (zh) | 2010-06-02 |
US7676653B2 (en) | 2010-03-09 |
EP2145249B1 (en) | 2015-12-09 |
KR20100017744A (ko) | 2010-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5222941B2 (ja) | コンパクト命令セットの符号化 | |
US5961628A (en) | Load and store unit for a vector processor | |
EP1126368B1 (en) | Microprocessor with non-aligned circular addressing | |
CN101681262B (zh) | 用于执行线程的处理器及方法 | |
JP2006004042A (ja) | データ処理装置 | |
US7401205B1 (en) | High performance RISC instruction set digital signal processor having circular buffer and looping controls | |
JP3856737B2 (ja) | データ処理装置 | |
US20100146244A1 (en) | Method for instructing a data processor to process data | |
US6832117B1 (en) | Processor core for using external extended arithmetic unit efficiently and processor incorporating the same | |
KR100991700B1 (ko) | 처리 장치, 처리 방법 및 컴퓨터로 판독가능한 기록 매체 | |
EP1089167A2 (en) | Processor architecture for executing two different fixed-length instruction sets | |
WO1990008355A1 (en) | Microprocessor | |
JP2006500673A (ja) | 処理装置、処理方法及びコンパイラ | |
JP3789583B2 (ja) | データ処理装置 | |
US7340591B1 (en) | Providing parallel operand functions using register file and extra path storage | |
US6925548B2 (en) | Data processor assigning the same operation code to multiple operations | |
US7051146B2 (en) | Data processing systems including high performance buses and interfaces, and associated communication methods | |
US6857063B2 (en) | Data processor and method of operation | |
JP2002229779A (ja) | 情報処理装置 | |
US7024540B2 (en) | Methods and apparatus for establishing port priority functions in a VLIW processor | |
JP2006164279A (ja) | プロセッサ・アーキテクチャ | |
US6389528B2 (en) | Processor with a control instruction for sending control signals without interpretation for extension of instruction set | |
Pircher et al. | Accelerator Interface for Patmos | |
JP2000029686A (ja) | デ―タ処理装置及び命令フォ―マット | |
JP2004005738A (ja) | データ処理装置及び命令セット拡張方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110420 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121023 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130123 |
|
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: 20130212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130311 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160315 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5222941 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |