JP5217431B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP5217431B2 JP5217431B2 JP2007341387A JP2007341387A JP5217431B2 JP 5217431 B2 JP5217431 B2 JP 5217431B2 JP 2007341387 A JP2007341387 A JP 2007341387A JP 2007341387 A JP2007341387 A JP 2007341387A JP 5217431 B2 JP5217431 B2 JP 5217431B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- extended
- information
- extension
- 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 title claims description 42
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 230000007704 transition Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 101150071111 FADD gene Proteins 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 102100033992 Dual specificity protein phosphatase 22 Human genes 0.000 description 1
- 101001017467 Homo sapiens Dual specificity protein phosphatase 22 Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004044 response Effects 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
-
- 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/30181—Instruction operation extension or modification
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- 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
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)
Description
例えば特許文献1及び特許文献2では、レジスタを指定するレジスタ指定情報を、2つの部分に分割する。そしてこの2つの部分を命令コードの基本単位上の別々の基本単位に配置し、一方の命令コードを省略可能とし、省略可能な命令コードを省略すると、所定レジスタ指定情報を暗黙的に想定してレジスタ選択動作を行うようにしている。
SPARCアーキテクチャを例にとると、CWP(Current Window Pointer)というポインタを別命令で設定し、その後の命令はそのCWPの指すウィンドウ内のレジスタ(例えば1つのウィンドウ内は1つのオペコードで指示できる5ビット32本)を参照する。
この方式だと、1つの命令では32本のレジスタ内の演算処理しか行えない。これでは同時に32本以上のレジスタを用いて演算処理が行えないので、コンパイラによるソフトウェアパイプライニングやループアンローリングなどの最適化ができず、性能向上が狙えない。
後半のデータを別々に扱うこともできず、このことはソフトウエアのプログラミングの際に制約となってしまう。
拡張レジスタは、命令の拡張を示す命令拡張情報が設定可能なレジスタである。
また前記拡張レジスタには、設定された命令拡張情報が有効であるか否かを示す情報が設定され、前記演算部は、命令拡張情報が有効であることを示す情報が設定されているとき、前記後続の命令を前記拡張レジスタに設定された命令拡張情報により拡張する構成としても良い。
更に拡張された前記後続の命令がコミットされたとき、前記拡張レジスタに設定された命令拡張情報を無効にすることを特徴とする。
また前記拡張レジスタには、複数命令分の前記命令拡張情報が設定される構成とすることも出来る。
更に前記拡張レジスタに前記命令拡張情報を書き込む命令の実行と、前記拡張命令によって拡張される命令の実行との間にトラップが生じるとき、前記拡張レジスタに設定された命令拡張情報を退避するトラップ用レジスタを備える構成としても良い。
また前記命令拡張情報は、レジスタアドレスを含み、前記命令拡張情報によって拡張される命令は、レジスタの拡張がなされる構成とすることが出来る。
更に前記命令拡張情報は、SIMD命令であるかどうかを示す情報を含み、命令拡張情報によって拡張される命令はSIMD処理を行なう構成とすることも出来る。
また前記拡張レジスタに書き込む情報をオペコードの即値として持つ、前記拡張レジスタに書き込む命令が登録されている構成とすることが出来る。
更に固定小数点レジスタを用いて前記拡張レジスタに書き込む情報を生成する、前記拡張レジスタに書き込む命令が登録されている構成とすることが出来る。
また本発明は演算処理装置のみだけでなく演算処理装置における命令の拡張方法もその範囲に含む。
また新たなSIMD命令や、キャッシュ属性の番号指定などの定義に要するオペコードが、1つのオペコード追加だけで済ますことができる。
以下に説明する本実施形態の演算処理装置は、RISCアーキテクチャのSPARCアーキテクチャを元にした論理仕様 JPS1(SPARC Joint Programming Specification)をベースとするものを例として説明する。JPS1のレジスタ数は倍精度64ビットの浮動小数点レジスタが32本ある。また固定小数点レジスタは、レジスタウィンドウ方式であり、CWPによって切り替わるin、out、local レジスタそれぞれ8本ずつ、CWPによらないglobalレジスタ8本の合計32本となる。
本実施形態の演算処理装置100は、命令拡張を行うための専用のレジスタとして数値
演算拡張レジスタ(eXtended Arithmetic Register:以下XARレジスタという)1を設けてある。
本実施形態による演算処理装置100は、XARレジスタ1の内容で、XARレジスタ1にデータを格納する命令に続いて実行される既存命令の拡張を行う。既存命令の拡張では、上述したJPS1のレジスタ以外の拡張されたレジスタを用いることが出来たり、SIMD命令を実行することが出来る。
またXARレジスタ1に情報を書き込む命令と既存の命令を組み合わせるだけで、既存の命令を拡張することが出来るので、命令オペコードの制約がほとんど無い。
図2に、本実施形態の演算処理装置100の浮動小数点レジスタの構成を示す。
本実施形態の演算処理装置100のでは、64ビット長のデータの浮動小数点レジスタは、JPS1では%f0から%f62までの32本だったのが、%f0から%f510までの256本に拡張されており、図2では斜線部が拡張部分である。この図2のレジスタは、SIMD命令でない場合には256本のレジスタすべての間で演算が可能である。
本実施形態の演算処理装置100では、64ビット長のデータの固定小数点レジスタは
、従来のJPS1のレジスタは、globalレジスタ8本、CWPによるレジスタ24本の計32本である。またこのレジスタは、ウインドウの切り替えによってCWPからCWP+1若しくはCWP−1に切り替わる。こららに加えて、本実施形態の演算処理装置100の固定小数点レジスタは新たに、CWPによらないレジスタXG(eXtended Global)を32本追加し、合計64本に拡張されており、図3では斜線部が拡張部分である。この追加されたレジスタはウィンドウ形式ではない。
図4は、XARレジスタの構成を示す図である。
同図においてXARレジスタは、大きく分けて従属命令F(First)部と従属命令S(Second)部に分かれる。そしてF部は、F_VAL、F_SIMD、F_RD、F_RS1、F_RS2及びF_RS3領域を持つ。またS部も同様にS_VAL、S_SIMD、S_RD、S_RS1、S_RS2及びS_RS3領域を持つ。F_VAL、S_VALは、1ビットの領域で、続く情報が有効かどうかを示す情報(バリッド)である。
る上位3ビットとなるものである。なお固定小数点レジスタを指定する場合は、3ビットのうちの最下位1ビットのみを用いる。そして固定少数レジスタを指定してなお上位2ビットが‘1’になると、拡張される命令の実行時にXARによる拡張違反であることを示す新規例外illegal_actionトラップを起こす。この新規例外illegal_actionトラップは、加算命令や乗算命令等において第3のソースレジスタを指定した場合などにも発生する。
図5ではSXAR命令等で、XARレジスタにデータをセットした次の命令で、JPS1で定義されている倍精度浮動小数点積和演算命令(FMADD)を実行した場合を例としている。
図6は、XARレジスタにデータをセットした次の命令でJPS1で定義されている倍精度浮動小数点ロード(LDDF)命令を実行した場合を例として示している。
本実施形態の演算処理装置では、SXAR命令は、XARレジスタの更新を行う命令の一つで、更新するデータを命令オペコード内に即値形式で有する命令として定義されている。これにより、ハードウェアは命令デコードの際にXARに書き込む内容が投機的に判断できるので、次にデコードされる命令の拡張を容易に可能にする。
同時にデコードされる。
図7にSXAR1命令のフィールドを示す。
図7においてSXAR1命令は、命令の種類を示すOPCODE[4:0]領域にはSXAR命令であることを示す「OP[1:0]=0」「OP2[3:0]=7」が設定されており、またSXAR1命令かSXAR2命令かを示すCOMB領域にはSXAR1命令であることを示す‘0’が設定されており、それに続くoperand領域には、XARレジスタのF部の命令拡張情報に書き込まれる情報が設定されている。なおSXAR1命令では、operand領域に続く領域の値は不定となっている。また第3のソースレジスタを指定するF_RS3[7:5]の領域は、拡張される命令がメモリアクセスの命令であるとき、キャッシュメモリアクセス用の付加情報(セクタ番号等)を指定する領域となる。
SXAR2命令は、SXAR2命令に続く2命令をXARレジスタの設定値で拡張するものである。
図8においてSXAR2命令は、命令の種類を示すOPCODE[4:0]領域には図7のSXAR1命令と同様、SXAR命令であることを示す「OP[1:0]=0」「OP2[3:0]=7」が設定されている。またSXAR1命令かSXAR2命令かを示すCOMB領域にはSXAR2命令であることを示す‘1’が設定されている。COMB領域に続くoperand領域には、従属命令F部と従属命令S部があり、従属命令F部内にはXARレジスタのF領域に、また従属命令S部内の情報はXARレジスタのS領域に書き込まれる情報が設定されている。なお第3のソースレジスタを指定するF_RS3[7:5]及びS_RS3[7:5]の領域は、拡張される命令がメモリアクセスの命令であるとき、キャッシュメモリアクセス用の付加情報(セクタ番号等)を指定する領域となる。
令の次に実行される、2番目に実行される命令は、XARレジスタのS領域の値に基づいて拡張される。そしてこの2番目に実行される命令が完了すると、XARレジスタのS領域はクリアされ、またS_VALは‘0’にリセットされる。
図9において、プログラム21はSXAR2命令を用いずにプログラムがコード生成したものである。それに対してプログラム22は、プログラム21とソフトウエア的には等価なプログラムを、SXAR2命令を用いてコード生成したものである。
このような命令拡張を行うものとして従来から行われている方法に、モード切り替えを行う方法がある。
図10では、FMADD命令を被拡張命令として実行し、その後にLDDF命令を拡張を受けない命令として実行する処理の場合を示している。
それに対して、本実施形態の演算処理装置で行なわれている命令の拡張方法では、拡張命令が実行されると、XARレジスタ内の対応する情報が自動的にリセットされる。これにより、拡張する命令と拡張しない命令が混在した場合であってもXARレジスタをリセットする必要が無く、その分コード効率が良くなる。
図11では、被拡張命令であるFMADD命令の前に、SXAR1命令を実行してXARレジスタに命令拡張のための情報を書き込む。そしてFMADD命令を拡張命令として実行すると、XARレジスタ内の命令拡張のための情報はリセットされる。したがって次に実行されるLDDF命令は、XARレジスタ内に命令拡張のための情報が無いので命令を拡張しないで実行される。
図12はSXAR2命令時の動作例を示す図である。
図12においては、FMADD命令と、それに続くLDDF命令を拡張して実行する場合を示している。
SXAR2命令が実行されると、XARレジスタのF領域とS領域に命令拡張に用いる拡張情報が書き込まれる。またF_VAL及びS_VALに1がセットされる。
、SXAR2命令で後続の2命令を拡張することが出来、また拡張したい命令と拡張したくない命令が混在してもコード効率は下がらない。
本実施形態の演算処理装置では、1つの命令で複数の処理を行うSIMD命令が拡張命令として定義されている。
図13(a)は非SIMD命令の場合、図13(b)はSIMD命令の場合の構成を示している。
2つの加算器を用いて、%f100レジスタ内のデータと%f200レジスタの加算処理に加え、f100と%f200に256を加えたアドレス(すなわち最上位ビットを0から1にしたアドレス)の、%f356レジスタ内のデータと%f456レジスタの加算処理が同時に行われる。
本実施形態では、XARレジスタに書き込む命令(SXAR1命令、SXAR2命令、Write−XAR命令)と、被拡張命令の2つに分けて実行することにより命令の拡張を行っている。
スタックTXARは、SPARCアーキテクチャに定義されている他のトラップスタックと同様、各トラップレベル毎に用意される。
図15(a)は、trap命令でトラップが発生したときのスタックTXARとXARレジスタの動きを示している。トラップ発生前XARレジスタの内容が‘X’であったとき、トラップが発生してトラップレベルがnからn+1に上がるとスタックTXARn+1 にXARレジスタの内容‘X’が書き込まれ、またXARレジスタは‘0’にクリアされる。
現在のトラップレベルのスタックTXARに関しては、スタックTXAR内のデータを固定小数点レジスタに読み出すRD−TXAR命令や、ソースレジスタ1、ソースレジスタ2を固定小数点レジスタから読み出し、ソースレジスタ1とソースレジスタ2の排他的論理和(xor: exclusive or)を算出して、その結果をTXARに書き込むWr−TXAR命令を定義し、これらの命令を用いる。
図16の例では、トラップレベルTL=nで、SXAR2命令により続く命令Aと命令Bを拡張したプログラムにおいて、拡張命令Bを実行中にトラップが発生した場合のXARレジスタとスタックTXARの動きを示している。
次に被拡張命令Aが実行されるとXARレジスタのF_VALとF領域は‘0’にクリアされ、S領域はそのまま命令拡張情報Bが格納されている。
次に被拡張命令Bが実行中にトラップが発生すると、XARレジスタ内の値はスタックTXARn に退避されると共に、XARレジスタはクリアされる。したがってスタックTXARn には、XARレジスタ内に格納されていた0,Bが書き込まれており、またXARレジスタの値は全て‘0’となる。
また本実施形態の演算処理装置におけるトラップには、誤った定義できない命令がデコードされたときに生じるトラップがある。
命令デコード4による命令デコードの結果から、拡張例外検出部31が誤った定義できない命令を検出すると、拡張例外検出部31がトラップ遷移制御部32に拡張例外トラップが発生したことを通知する。この通知を受けて、トラップ遷移制御部32は、XAR更新用バッファ3の内容でXARレジスタ1が書き換えられるのを止め、また実行演算部5がXARレジスタ1やレジスタ6にアクセスするのを止め、拡張例外トラップ処理ルーチンにプログラム処理を移す。
次に、XASRレジスタについて説明する。
OSのスケジューラの機能で、コンテキストスイッチで処理を行うプログラムを切り替える場合がある。
図18において、ビット0〜7がXFDとなっており、ビット0が%f0〜%f62の
ブロックに、ビット1が%f64〜%f126のブロックに、・・・、ビット7が%f448〜%f510のブロックに該当する。XFDの各ビットはデフォルトでは、‘0’が設定されており、各ブロックのレジスタの内容に変更があるとそのレジスタが所属しているブロックに対応するビットに‘1’が設定される。
本実施形態の演算処理装置では、レジスタの復帰処理において、このXASRレジスタを参照し、ダーディビットに‘1’が設定されているブロックのレジスタのみに対して復旧処理を行なう。
なおXASRレジスタ内のデータは、RD−XASR命令によって固定小数点レジスタへ読み出したり、またWR−XAR命令によって固定小数点レジスタのデータを書き込むことを可能とする。
次に、Write−XAR命令について説明する。
次にSXAR命令やこのWrite−XAR命令による命令の拡張のタイミングについて説明する。
図20は、Write−XAR命令によって命令拡張を行う場合の命令拡張のタイミングを示す図である。同図では、図19と同様、命令実行のための概略ステージとその時行われる処理が横方向に時間軸を取って示してある。
図21は、このソフトウエアエミュレーションの定義外命令例外ルーチンの動作を示すフローチャートである。
次にエミュレーションソフトウエアは、ステップS2としてTPC内のプログラムカウンタ値を読み出し、定義外命令(Illegal_instruction)例外となった命令をメモリからフェッチする。
8に処理を移す。
次に本実施形態の演算処理装置で実行されるデバッガについて説明する。
図22においてfaddd命令41の時点でデバッグトラップを行いたいとした場合、42のようにfaddd命令41をソフトウェアトラップ命令TAに置き換える。
ところで本実施形態の演算処理装置のXARレジスタによる命令拡張は、通常XARレジスタが有効な命令拡張情報を持っている場合は、直後の命令が常に拡張されてしまう仕様のため、XARレジスタの命令拡張情報で拡張されるはずだった命令をデバッガ機能でTA命令に置き換えてしまうと、TA命令がXARレジスタの命令拡張情報で拡張されようとしてしまう。またソフトウェアトラップ命令は、固定小数点レジスタをソースレジスタに用いるので、レジスタ拡張アドレスフィールドが、256番目を指している場合には、illegal_actionトラップを発生させてしまう場合もある。
トラップを起こしたあとに、TXARからRD−TXAR命令によってトラップに入るときのXARの値を読み出すことが可能である。
図23においては、SXAR1命令の直後のfaddd命令51が実行される時点でデバッグを行いたいものとする。この場合も同様に、デバッガは52のようにfaddd命令をTA命令に置き換える。
なお上記例では、命令拡張はSXAR2命令による2命令が最大であったが、本実施形態の演算処理装置はこれに限定されるものではなく、例えば拡張するレジスタ数を減らしたり、SIMD命令の拡張をしないことにより3命令以上の命令を拡張するようにしても良い。
(付記1)
命令の拡張を示す命令拡張情報が設定可能な拡張レジスタと、
前記拡張レジスタに命令拡張情報が設定されているときに、前記拡張レジスタに前記命令拡張情報を書き込む命令の後続の命令を前記命令拡張情報により拡張して実行する演算部と、
を有する演算処理装置。
前記拡張レジスタには、設定された命令拡張情報が有効であるか否かを示す情報が設定され、前記演算部は、命令拡張情報が有効であることを示す情報が設定されているとき、前記後続の命令を前記拡張レジスタに設定された命令拡張情報により拡張することを特徴とする付記1に記載の演算処理装置。
拡張された前記後続の命令がコミットされたとき、前記拡張レジスタに設定された命令拡張情報を無効にすることを特徴とする付記1に記載の演算処理装置。
前記拡張レジスタには、複数命令分の前記命令拡張情報が設定されることを特徴とする付記1に記載の演算処理装置。
前記後続の命令が拡張されて実行がコミットされる毎に、複数命令分の前記命令拡張情
報のうち対応するものを無効とすることを特徴とする付記4に記載の演算処理装置。
前記拡張レジスタに前記命令拡張情報を書き込む命令の実行と、前記命令拡張情報によって拡張される命令の実行との間にトラップが生じるとき、前記拡張レジスタに設定された命令拡張情報を退避するトラップ用レジスタを更に備えることを特徴とする付記1に記載の演算処理装置。
前記トラップが生じて、トラップ処理に入ったとき、前記拡張レジスタ内の前記命令拡張情報を無効にすることを特徴とする付記6に記載の演算処理装置。
前記トラップ処理から戻ったとき、前記トラップ用レジスタ内の情報を前記拡張レジスタに書き戻すことを特徴とする付記6に記載の演算処理装置。
前記トラップ用レジスタに格納された情報の読み出し、書き込みを行う命令が定義されていることを特徴とする付記6に記載の演算処理装置。
前記命令拡張情報は、レジスタアドレスを含み、前記命令拡張情報によって拡張される命令は、レジスタの拡張がなされることを特徴とする付記1に記載の演算処理装置。)
(付記11)
拡張されたレジスタをいくつかのグループに分け、グループ内のレジスタの更新が行われた場合にこれを示すビットをグループごとに持ち、前記グループ数分のビットを保持するレジスタを備えることを特徴とする付記10に記載の演算処理装置。
前記命令拡張情報は、SIMD命令であるかどうかを示す情報を含み、命令拡張情報によって拡張される命令はSIMD処理を行なうことを特徴とする付記1に記載の演算処理装置。
前記SIMD処理は、レジスタアドレスの最上位ビットを‘0’にして指定されたレジスタを用いた演算と、最上位ビットを‘1’にして指定されたレジスタを用いた演算とを行うことを特徴とする付記12の演算処理装置。
前記後続の命令が、2つ以下のソースレジスタしか指定しない命令であるとき、前記命令拡張情報は、キャッシュメモリにデータを登録するときに当該データを登録するキャッシュウェイの属性を指定することを特徴とする付記1に記載の演算処理装置。
前記拡張レジスタに書き込む情報をオペコードの即値として持つ、前記拡張レジスタに書き込む命令が登録されていることを特徴とする付記1に記載の演算処理装置。
固定小数点レジスタを用いて前記拡張レジスタに書き込む情報を生成する、前記拡張レジスタに書き込む命令が登録されていることを特徴とする付記1に記載の演算処理装置。
前記命令拡張情報によって、前記後続の命令が命令の種類によって拡張できないときに、拡張できなかった命令の処理時に拡張違反例外トラップを起こすトラップ遷移制御部を更に備えることを特徴とする請求項1に記載の演算処理装置。
前記拡張違反例外トラップが、定義外命令実行時に生じるによるトラップよりもトラップの優先度が低いことを特徴とする付記17に記載の演算処理装置。
前記拡張レジスタに有効な前記命令拡張情報が格納されているときに、当該命令拡張情報によって拡張されない命令が定義されていることを特徴とする付記1に記載の演算処理装置(図23)
(付記20)
命令が固定長の演算処理装置における命令の拡張方法において
命令の拡張を示す命令拡張情報が設定可能な拡張レジスタに命令拡張情報が設定し、
前記拡張レジスタに前記命令拡張情報を書き込む命令の後続の命令を前記命令拡張情報により拡張して実行する
ことを特徴とする命令の拡張方法。
2 D_XARレジスタ
3 XAR更新用バッファ
4 命令デコード
5 実行演算部
6 レジスタ
7 命令キャッシュ
8 データキャッシュ
9 2次キャッシュ
31 拡張例外検出部
32 トラップ遷移制御部
100 演算処理装置
Claims (9)
- 拡張情報レジスタと、
第1の拡張情報と第2の拡張情報を前記拡張情報レジスタに設定する拡張情報設定命令を実行した場合、前記拡張情報設定命令に後続する第1の被拡張命令を前記第1の拡張情報により拡張して実行するとともに、前記第1の被拡張命令に後続する第2の被拡張命令を前記第2の拡張情報により拡張して実行する演算部を有することを特徴とする演算処理装置。 - 前記拡張情報レジスタはさらに、
前記拡張情報設定命令を実行した場合、前記拡張情報レジスタに保持した前記第1の拡張情報が有効であるかを示す有効情報が設定され、
前記演算部はさらに、
前記第1の被拡張命令を、前記有効情報と前記第1の拡張情報に基づいて実行することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置において、
前記演算部が、前記第1の拡張情報により拡張された前記第1の被拡張命令の実行を完了した場合、前記拡張情報レジスタに保持された第1の拡張情報を初期化することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置はさらに、
前記演算部による前記拡張情報設定命令の実行と、前記演算部による前記第1の被拡張命令の実行の間に例外が発生した場合、前記拡張情報レジスタが保持した第1の拡張情報を退避する退避レジスタを有することを特徴とする請求項1記載の演算処理装置。 - 前記第1の拡張情報は、
レジスタの指定を拡張するレジスタ指定拡張情報を含み、
前記第1の被拡張命令は、
前記レジスタ指定拡張情報によりレジスタを指定できる範囲が拡張されることを特徴とする請求項1記載の演算処理装置。 - 前記第1の拡張情報は、
前記第1の被拡張命令が、複数の被演算数を用いて演算を行う複数被演算数命令であるかを示す被演算数拡張情報を含み、
前記演算部はさらに、
前記第1の被拡張命令を、前記被演算数拡張情報に基づいて、前記第1の被拡張命令に含まれるレジスタを指定するレジスタ指定アドレスにより指定される第1のレジスタに保持された第1の被演算数と、前記レジスタ指定アドレスから所定アドレス離れた第2のレジスタに保持された第2の被演算数に保持された第2の被演算数を用いて実行することを特徴とする請求項1記載の演算処理装置。 - 前記演算部は、
前記拡張情報設定命令を実行した場合、実行した前記拡張情報設定命令に埋め込まれた第1の拡張情報を、前記拡張情報レジスタに設定することを特徴とする請求項1記載の演算処理装置。 - 前記演算処理装置はさらに、
固定小数点レジスタを有し、
前記演算部は、
前記拡張情報設定命令を実行した場合、前記固定小数点レジスタに保持された第1の拡張情報を、前記拡張情報レジスタに設定することを特徴とする請求項1記載の演算処理装置。 - 拡張情報レジスタを有する演算処理装置の制御方法において、
前記演算処理装置が有する演算部が、拡張情報設定命令を実行して、第1の拡張情報と第2の拡張情報を前記拡張情報レジスタに設定し、
前記演算部が、前記拡張情報設定命令に後続する第1の被拡張命令を前記第1の拡張情報により拡張して実行し、
前記演算部が、前記第1の被拡張命令に後続する第2の被拡張命令を前記第2の拡張情報により拡張して実行することを特徴とする演算処理装置の制御方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007341387A JP5217431B2 (ja) | 2007-12-28 | 2007-12-28 | 演算処理装置及び演算処理装置の制御方法 |
EP08171647.4A EP2083352B1 (en) | 2007-12-28 | 2008-12-15 | Processing unit |
US12/338,245 US8281112B2 (en) | 2007-12-28 | 2008-12-18 | Processor decoding extension instruction to store plural address extension information in extension register for plural subsequent instructions |
KR1020080133532A KR101059906B1 (ko) | 2007-12-28 | 2008-12-24 | 연산 처리 장치 및 명령의 확장 방법 |
CN2008101850417A CN101470599B (zh) | 2007-12-28 | 2008-12-26 | 处理单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007341387A JP5217431B2 (ja) | 2007-12-28 | 2007-12-28 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009163442A JP2009163442A (ja) | 2009-07-23 |
JP5217431B2 true JP5217431B2 (ja) | 2013-06-19 |
Family
ID=40750878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007341387A Active JP5217431B2 (ja) | 2007-12-28 | 2007-12-28 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8281112B2 (ja) |
EP (1) | EP2083352B1 (ja) |
JP (1) | JP5217431B2 (ja) |
KR (1) | KR101059906B1 (ja) |
CN (1) | CN101470599B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5471082B2 (ja) * | 2009-06-30 | 2014-04-16 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8635415B2 (en) * | 2009-09-30 | 2014-01-21 | Intel Corporation | Managing and implementing metadata in central processing unit using register extensions |
JP5367020B2 (ja) * | 2011-06-24 | 2013-12-11 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、情報処理方法、プログラム及び情報記憶媒体 |
US9632786B2 (en) * | 2011-12-20 | 2017-04-25 | International Business Machines Corporation | Instruction set architecture with extended register addressing using one or more primary opcode bits |
US9507599B2 (en) * | 2013-07-22 | 2016-11-29 | Globalfoundries Inc. | Instruction set architecture with extensible register addressing |
US9875107B2 (en) | 2015-01-19 | 2018-01-23 | International Business Machines Corporation | Accelerated execution of execute instruction target |
US10761849B2 (en) * | 2016-09-22 | 2020-09-01 | Intel Corporation | Processors, methods, systems, and instruction conversion modules for instructions with compact instruction encodings due to use of context of a prior instruction |
US10877548B2 (en) * | 2018-03-09 | 2020-12-29 | Hewlett Packard Enterprise Development Lp | Context switches with processor performance states |
CN112445855B (zh) * | 2020-11-17 | 2024-05-17 | 海光信息技术股份有限公司 | 用于图形处理器芯片的可视化分析方法和可视化分析装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2555963C2 (de) * | 1975-12-12 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Funktionsmodifizierung |
US4293907A (en) * | 1978-12-29 | 1981-10-06 | Bell Telephone Laboratories, Incorporated | Data processing apparatus having op-code extension register |
JPH04172533A (ja) * | 1990-11-07 | 1992-06-19 | Toshiba Corp | 電子計算機 |
JP3711422B2 (ja) * | 1995-12-20 | 2005-11-02 | セイコーエプソン株式会社 | 情報処理回路 |
US6014739A (en) * | 1997-10-27 | 2000-01-11 | Advanced Micro Devices, Inc. | Increasing general registers in X86 processors |
US6418527B1 (en) * | 1998-10-13 | 2002-07-09 | Motorola, Inc. | Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods |
KR100322277B1 (ko) * | 1998-11-20 | 2002-03-08 | 권 기 홍 | 확장 명령어를 가진 중앙처리장치 |
WO2000046704A2 (en) | 1999-02-05 | 2000-08-10 | Tensilica, Inc. | Automated processor generation system and method for designing a configurable processor |
US6477683B1 (en) | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
JP4172533B2 (ja) | 1999-02-18 | 2008-10-29 | 株式会社リコー | 光走査装置及び画像出力装置 |
JP2006313561A (ja) * | 1999-04-30 | 2006-11-16 | Renesas Technology Corp | データ処理装置 |
JP3839835B2 (ja) | 1999-04-30 | 2006-11-01 | 株式会社ルネサステクノロジ | データ処理装置及びマイクロコンピュータ |
JP2001202243A (ja) | 1999-04-30 | 2001-07-27 | Hitachi Ltd | データ処理装置 |
US6651160B1 (en) * | 2000-09-01 | 2003-11-18 | Mips Technologies, Inc. | Register set extension for compressed instruction set |
US7373483B2 (en) * | 2002-04-02 | 2008-05-13 | Ip-First, Llc | Mechanism for extending the number of registers in a microprocessor |
JP3627725B2 (ja) | 2002-06-24 | 2005-03-09 | セイコーエプソン株式会社 | 情報処理装置及び電子機器 |
JP2004038521A (ja) * | 2002-07-03 | 2004-02-05 | Renesas Technology Corp | マイクロコンピュータ |
FR2867874A1 (fr) * | 2004-03-22 | 2005-09-23 | St Microelectronics Sa | Dispositif et procede de gestion d'un jeu d'instructions d'un microprocesseur |
US7231509B2 (en) * | 2005-01-13 | 2007-06-12 | International Business Machines Corporation | Extended register bank allocation based on status mask bits set by allocation instruction for respective code block |
JP2006284962A (ja) | 2005-03-31 | 2006-10-19 | Sumitomo Osaka Cement Co Ltd | 光学素子 |
-
2007
- 2007-12-28 JP JP2007341387A patent/JP5217431B2/ja active Active
-
2008
- 2008-12-15 EP EP08171647.4A patent/EP2083352B1/en active Active
- 2008-12-18 US US12/338,245 patent/US8281112B2/en active Active
- 2008-12-24 KR KR1020080133532A patent/KR101059906B1/ko active IP Right Grant
- 2008-12-26 CN CN2008101850417A patent/CN101470599B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8281112B2 (en) | 2012-10-02 |
EP2083352A2 (en) | 2009-07-29 |
EP2083352A3 (en) | 2009-08-12 |
US20090172367A1 (en) | 2009-07-02 |
JP2009163442A (ja) | 2009-07-23 |
CN101470599A (zh) | 2009-07-01 |
EP2083352B1 (en) | 2017-08-09 |
KR20090073008A (ko) | 2009-07-02 |
CN101470599B (zh) | 2013-01-02 |
KR101059906B1 (ko) | 2011-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5217431B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP3870973B2 (ja) | スーパースケーラマイクロプロセサ | |
JP5853303B2 (ja) | レジスタ初期化動作の最適化 | |
KR102629722B1 (ko) | 이동 프리픽스 명령어 | |
JP5808348B2 (ja) | マシン状態に基づいた命令の分割 | |
US10599428B2 (en) | Relaxed execution of overlapping mixed-scalar-vector instructions | |
US20120260061A1 (en) | Data processing apparatus and method for performing vector operations | |
JPH11316680A (ja) | デ―タ処理システムにおいてレジスタを保存し且つ回復するシステム及び方法 | |
JP2000137610A (ja) | 特殊ミリコ―ド命令によって条件の設定およびテストを行う方法 | |
JP2000137611A (ja) | 特殊ミリコ―ド命令によって条件の設定およびテストを行う方法 | |
JP6882320B2 (ja) | ベクトル命令の処理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100820 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120529 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120806 |
|
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: 20130205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130218 |
|
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: 5217431 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |