JP5678687B2 - 処理装置 - Google Patents

処理装置 Download PDF

Info

Publication number
JP5678687B2
JP5678687B2 JP2011014162A JP2011014162A JP5678687B2 JP 5678687 B2 JP5678687 B2 JP 5678687B2 JP 2011014162 A JP2011014162 A JP 2011014162A JP 2011014162 A JP2011014162 A JP 2011014162A JP 5678687 B2 JP5678687 B2 JP 5678687B2
Authority
JP
Japan
Prior art keywords
register
upper bit
bit part
program counter
instruction
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.)
Expired - Fee Related
Application number
JP2011014162A
Other languages
English (en)
Other versions
JP2012155539A (ja
Inventor
勝洋 依田
勝洋 依田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011014162A priority Critical patent/JP5678687B2/ja
Publication of JP2012155539A publication Critical patent/JP2012155539A/ja
Application granted granted Critical
Publication of JP5678687B2 publication Critical patent/JP5678687B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Description

本発明は、処理装置に関する。
演算パイプライン構成をとるプロセッサのデバッグ時において、例外などの特殊な現象が発生した場合に、どの命令でそれが発生したのかを知る必要がある。そのため、演算パイプライン構成をとるプロセッサにおいて、例外などの特殊な現象が発生した箇所を特定するためには演算パイプラインのステージ数分のプログラムカウンタ値を記憶する必要がある。
しかし、演算パイプラインのステージ数及び演算パイプラインの並列度が小さい場合はあまり気にならないが、これらが増えるとそれに比例して、プログラムカウンタ値の記憶容量が増加する。しかも、プログラムカウンタ値を記憶させるレジスタがほぼ常に動作するため消費電力も大きくなる。
また、アドレスの供給前に供給された複数のアドレスをそれぞれ2分割した内の上位アドレスである第2の上位アドレスを保持する第2のアドレスレジスタと、第1のアドレスレジスタ内に格納されたアドレスをそれぞれ2分割した内の上位アドレスである第1の上位アドレスと複数の前記第2の上位アドレスとをそれぞれ比較する比較手段とを有する集積回路が知られている(例えば、特許文献1参照)。
特許第3665349号公報
本発明の目的は、特殊信号が発生した際にプログラムカウンタ値を出力する処理装置であって、プログラムカウンタ値の記憶容量を削減することができる処理装置を提供することである。
処理装置は、プログラムカウンタ値の上位ビット部を保持するためのレジスタ部と、プログラムカウンタ値のアドレスの命令が命令メモリから読み出されると、前記読み出された命令に対応するプログラムカウンタ値を上位ビット部及び下位ビット部に分割し、前記プログラムカウンタ値の前記上位ビット部を前記レジスタ部に書き込み、前記読み出された命令とそれに対応する前記プログラムカウンタ値の前記下位ビット部との組みを後段に伝播させる制御部と、前記読み出された命令に対して複数ステージのパイプライン処理を行い、前記読み出された命令の情報とその命令に対応する前記プログラムカウンタ値の前記下位ビット部との組みを各ステージに伝播させる演算パイプラインとを有し、前記制御部は、前記演算パイプラインで前記読み出された命令の処理による特殊信号が発生すると、その命令に対応する前記プログラムカウンタ値の前記下位ビット部と前記レジスタ部内の前記プログラムカウンタ値の前記上位ビット部とを結合させて出力する。
プログラムカウンタ値のアドレスは上位ビット部が同じ値であることが多いので、プログラムカウンタ値の上位ビット部をレジスタ部に保持させることにより、プログラムカウンタ値の下位ビット部の伝播容量(記憶容量)を削減することができる。
第1の実施形態による処理システムの構成例を示すブロック図である。 第1の実施形態による他の処理システムの構成例を示すブロック図である。 第1の実施形態によるプロセッサ(処理装置)の構成例を示す図である。 第2の実施形態によるプロセッサの処理方法を示すフローチャートである。 第2の実施形態によるプロセッサの構成例を示す図である。 第3の実施形態によるプロセッサの処理方法を示すフローチャートである。 状態テーブルの構成例を示す図である。 第3の実施形態によるステートマシンの例を示す状態遷移図である。 ステートマシンの動作例を示す図である。 第3の実施形態によるプロセッサの構成例を示す図である。 第4の実施形態によるステートマシンの例を示す状態遷移図である。 ステートマシンの動作例を示す図である。 第5の実施形態によるステートマシンの例を示す状態遷移図である。 図14(A)及び(B)は第6の実施形態によるステートマシンの例を示す図である。 第7の実施形態によるプロセッサの処理方法を示すフローチャートである。 第7の実施形態によるプロセッサの構成例を示す図である。
(第1の実施形態)
図1は、第1の実施形態による処理システムの構成例を示すブロック図である。処理システムは、バス100、プロセッサ101、メモリ102、周辺回路103、インターフェース104及びホストマシン105を有する。バス100には、プロセッサ101、メモリ102、周辺回路103及びインターフェース104が接続される。プロセッサ101は、プログラムカウンタが示すアドレスの命令をメモリ102から順次読み出し、読み出した命令を実行する。そして、プロセッサ101は、命令の実行によりオーバーフロー、アンダーフロー又は0除算等の例外処理(特殊処理)が発生すると、例外信号(特殊信号)111をインターフェース104を介してホストマシン105に出力する。例外信号111は、例外信号111が発生した命令に対応するプログラムカウンタ値を含む。なお、信号111は、例外信号に限定されず、例外等の特殊な現象が発生した場合の特殊信号であってもよい。プログラムカウンタは、現在、プロセッサ101が読み出して実行している命令のアドレスをプログラムカウンタ値として記憶している。したがって、プログラムカウンタ値は、読み出された命令のアドレスに対応する。ホストマシン105は、例外信号111を入力すると、例外信号111内のプログラムカウンタ値を基に例外信号111が発生した命令を特定することができ、例外解析処理等を行うことができる。
図2は、第1の実施形態による他の処理システムの構成例を示すブロック図である。処理システムは、評価用ボード200及びデバッグ用パーソナルコンピュータ202を有する。評価用ボード200は、バス100、プロセッサ101、メモリ102、周辺回路103及びデバッガインターフェース201を有する。バス100には、プロセッサ101、メモリ102、周辺回路103及びデバッガインターフェース201が接続される。プロセッサ101及びメモリ102は、図1と同様である。プロセッサ101は、命令の実行によりオーバーフロー、アンダーフロー又は0除算等の例外処理が発生すると、例外信号111をデバッガインターフェース201を介してデバッグ用パーソナルコンピュータ202に出力する。例外信号111は、例外信号111が発生した命令に対応するプログラムカウンタ値、例外フラグ、異常フラグ、状態フラグを含む。デバッグ用パーソナルコンピュータ202は、例外信号111を入力すると、例外信号111内のプログラムカウンタ値を基に例外信号111が発生した命令を特定することができ、例外解析処理等を行うことができる。具体的には、デバッグ用パーソナルコンピュータ202は、プロセッサ101を使ってメモリ102内のプログラム(命令群)をデバッグすることができる。プロセッサ101は、プログラムのバグを検知し、例外フラグ、異常フラグ、状態フラグ、及びプログラムカウンタ値を含む例外信号111をデバッガインターフェース201を介してデバッグ用パーソナルコンピュータ202に出力する。
図3は、第1の実施形態によるプロセッサ(処理装置)101の構成例を示す図である。命令メモリ311は、図1及び図2のメモリ102に対応し、命令群を記憶するためのメモリである。データメモリ313は、図1及び図2のメモリ102に対応し、データを記憶するためのメモリである。プロセッサ101は、フェッチステージ301、デコードステージ302、レジスタリードステージ303、演算処理ステージ304、メモリアクセスステージ305及びライトバックステージ306の演算パイプラインを有し、複数ステージのパイプライン処理を行う。0番レジスタ320及び1番レジスタ321は、それぞれプログラムカウンタ値の上位ビット部を保持するためのレジスタである。
プロセッサ101は、フェッチステージ301では、プログラムカウンタのプログラムカウンタ値330のアドレスの命令333を命令メモリ311から読み出してフェッチする。この際、プロセッサ101は、読み出した命令333に対応するプログラムカウンタ値330を上位ビット部331及び下位ビット部332に分割し、上位ビット部331を0番レジスタ320又は1番レジスタ321に書き込む。例えば、プログラムカウンタ値330は32ビットであり、上位ビット部331は16ビットであり、下位ビット部332は16ビットである。次に、プロセッサ101は、命令333、レジスタ番号(レジスタ識別子)334、下位ビット部332を後段のデコードステージ302に伝播させる。レジスタ番号334は、命令333に対応するプログラムカウンタ値330の上位ビット部331が書き込まれたレジスタの番号である。例えば、命令333に対応する上位ビット部331が0番レジスタ320に書き込まれた場合には、レジスタ番号334は0番である。次に、プロセッサ101は、デコードステージ302では、命令333をデコードし、命令333内のオペランド情報、レジスタ番号334及び下位ビット部332を後段のレジスタリードステージ303に伝播させる。次に、プロセッサ101は、レジスタリードステージ303では、オペランド情報を基に汎用レジスタ312の値を読み出し、汎用レジスタ312の値、命令333の演算情報(オペコード情報)、レジスタ番号334及び下位ビット部332を後段の演算処理ステージ304に伝播させる。
次に、プロセッサ101は、演算処理ステージ304では、演算情報及び汎用レジスタ312の値を基に演算を行う。この際、プロセッサ101は、演算によりオーバーフロー、アンダーフロー又は0除算等の例外処理(特殊処理)を検出すると、例外信号(特殊信号)を発生する。プロセッサ101は、例外信号が発生した命令333に対応するレジスタ番号334が示すレジスタ320又は321から上位ビット部331を読み出し、上位ビット部331を加算器341に出力する。例えば、プロセッサ101は、レジスタ番号334が0番である場合には、0番レジスタ320から上位ビット部331を読み出す。また、プロセッサ101は、例外信号が発生した命令333に対応するプログラムカウンタ値の下位ビット部332を加算器341に出力する。加算器341は、上位ビット部331と下位ビット部332とを結合し、32ビットのプログラムカウンタ値330を出力する。次に、プロセッサ101は、プログラムカウンタ値330及び例外内容を含む例外信号(特殊信号)111を外部に出力する。
次に、プロセッサ101は、メモリアクセスステージ305では、上記の演算の結果に応じて、データメモリ313にアクセスを行う。次に、プロセッサ101は、ライトバックステージ306では、上記の演算の結果に応じて、汎用レジスタ312に値を書き込む。
以上で、演算パイプラインの一連の処理が終了する。演算パイプラインでは、フェッチステージ301で、命令がフェッチされる毎にプログラムカウンタのプログラムカウンタ値が更新され、次の命令がフェッチされ、次の命令のパイプライン処理が連続的に行われる。
プロセッサ101は、通常、命令メモリ311内の命令をアドレス順に順次読み出して実行し、分岐命令等の際に指定のアドレスの命令にジャンプする。したがって、プログラムカウンタのプログラムカウンタ値は、アドレス順に増加する場合が多い。すなわち、通常、プログラムカウンタ値の上位ビット部331は変わらずに、下位ビット部332のみが変わる。上位ビット部331が変わらない場合には、その上位ビット部331をレジスタ320又は321に新たに書き込む必要がなく、同じ上位ビット部331が書き込まれているレジスタ320又は321の番号をレジスタ番号334として各ステージを伝播させればよい。
例えば、最初の上位ビット部331が0番レジスタ320が書き込まれた場合の例を説明する。2番目の命令333に対応する上位ビット部331と同じ値の上位ビット部が既に0番レジスタ320に書き込まれている場合には、その上位ビット部331をレジスタ320又は321に新たに書き込まずに、0番のレジスタ番号334を後段に伝播させる。これにより、共通の上位ビット部331は、0番レジスタ320にのみ書き込まれており、下位ビット部332のみを伝播させればよいので、32ビットのプログラムカウンタ値330のすべてを伝播させる場合に比べて、伝播容量(記憶容量)を小さくし、消費電力を小さくすることができる。
(第2の実施形態)
図5は、第2の実施形態によるプロセッサ(処理装置)101の構成例を示す図である。以下、本実施形態が第1の実施形態と異なる点を説明する。フェッチステージ301は、例えば8段のファーストインファーストアウト(キュー)FIFO0〜FIFO7を有する。フェッチステージ301には、フェッチしてからデコードステージ302でデコードするまでにファーストインファーストアウトFIFO0〜FIFO7があり、後段の演算パイプラインへの命令の供給が滞ったり、詰まったりしないようにしている。レジスタ部500は、複数のプログラムカウンタ値の上位ビット部331を保持するための0番レジスタ320、1番レジスタ321、2番レジスタ322及び3番レジスタ323を有する。プログラムカウンタ制御部501、比較部502及び出力生成部504は、制御部を構成する。
レジスタリードステージ303、演算処理ステージ304、メモリアクセスステージ305及びライトバックステージ306は、並列の複数パイプライン部505により構成される。複数のパイプライン部505は、それぞれ、レジスタリードステージ303、演算処理ステージ304、メモリアクセスステージ305及びライトバックステージ306を有し、並列処理可能である。プロセッサ101は、演算用の複数のパイプライン部505を有し、デコードステージ302でリソースの競合を確認しながら複数のパイプライン部505のいずれかに命令を発行していく。
プロセッサ101は、フェッチステージ301では、プログラムカウンタのプログラムカウンタ値330のアドレスの命令333を命令メモリ311から読み出してファーストインファーストアウトFIFO0にフェッチする。プログラムカウンタ制御部501は、読み出した命令333に対応するプログラムカウンタ値330を上位ビット部331及び下位ビット部332に分割する。
比較部502は、プログラムカウンタ制御部501により分割された上位ビット部331とレジスタ部500内のレジスタ320〜323に保持されている上位ビット部とを比較し、比較結果をプログラムカウンタ制御部501及び状態テーブル503に出力する。
図7は、状態テーブル503の構成例を示す図である。状態テーブル503は、フェッチステージ301のファーストインファーストアウトFIFO0〜FIFO7、デコードステージ(DEC)302、レジスタリードステージ(RR)303及び演算処理ステージ(EXE)304について、それぞれ選択レジスタ番号701及び有効フラグ702を保持する。デコードステージ(DEC)302、レジスタリードステージ(RR)303及び演算処理ステージ(EXE)304については、複数のパイプライン部505毎に、選択レジスタ番号701及び有効フラグ702が保持される。選択レジスタ番号701は、図3のレジスタ番号334に対応し、レジスタ320〜323のうちの上位ビット部331が保持されているレジスタの番号である。有効フラグ702は、選択レジスタ番号701が有効か否かを示すフラグである。状態テーブル503は、現在、どのステージのどのパイプライン部505でどの選択レジスタ番号701が使われているかを管理し、命令333の進行に合わせて更新される。
図5において、プログラムカウンタ制御部501により分割された上位ビット部331がレジスタ320〜323の上位ビット部のいずれとも異なる場合には、比較部502が不一致の信号を出力する。その場合、プログラムカウンタ制御部501は、分割した上位ビット部331をレジスタ320〜323の中の空いているレジスタに書き込み、状態テーブル503にFIFO1の選択レジスタ番号701及び有効フラグ702を書き込む。選択レジスタ番号701は、レジスタ320〜323のうちの上位ビット部331が書き込まれたレジスタの番号に書き込まれる。例えば、上位ビット部331が0番レジスタ320に書き込まれた場合には、選択レジスタ番号701として0番が書き込まれる。その選択レジスタ番号701を有効にするため、有効フラグ701には有効である旨が書き込まれる。
なお、分割した上位ビット部331を書き込む際に、レジスタ320〜323の中に空いているレジスタがない場合には、プログラムカウンタ制御部501は、分割した上位ビット部331をレジスタ320〜323の中のいずれかのレジスタに上書きし、上記と同様に、状態テーブル503にFIFO1の選択レジスタ番号701及び有効フラグ702を書き込む。さらに、プログラムカウンタ制御部501は、上記の上書きにより消去された上位ビット部331を無効にするため、状態テーブル503の中でFIFO1以外のものの選択レジスタ番号701が上書きされたレジスタの番号になっているものの有効フラグ702を無効にする。
また、プログラムカウンタ制御部501により分割された上位ビット部331がレジスタ320〜323の上位ビット部のいずれかと同じ場合には、比較部502が一致の信号を出力する。その場合、プログラムカウンタ制御部501は、分割した上位ビット部331をレジスタ部500に書き込まず、状態テーブル503にFIFO1の選択レジスタ番号701及び有効フラグ702を書き込む。選択レジスタ番号701は、レジスタ320〜323のうちの上位ビット部331が一致したレジスタの番号になる。例えば、上位ビット部331が0番レジスタ320のものと一致した場合には、選択レジスタ番号701として0番が書き込まれる。そして、その選択レジスタ番号701を有効にするため、有効フラグ701には有効である旨が書き込まれる。
次に、プログラムカウンタ制御部501は、ファーストインファーストアウトFIFO0の命令333がファーストインファーストアウトFIFO1に伝播されると共に、分割した下位ビット部332及び選択レジスタ番号701をファーストインファーストアウトFIFO1に伝播させる。これにより、ファーストインファーストアウトFIFO1には、命令333、選択レジスタ番号701及び下位ビット部332が記憶される。
その後、パイライン処理により、ファーストインファーストアウトFIFO1内の命令333、選択レジスタ番号701及び下位ビット部332の組みは、後段に伝播される。すなわち、命令333、選択レジスタ番号701及び下位ビット部332の組みは、FIFO1、FIFO2、FIFO3、FIFO4、FIFO5、FIFO6、FIFO7、デコードステージ302、レジスタリードステージ303、演算処理ステージ304、メモリアクセスステージ305、ライトバックステージ306の順に伝播される。それに伴い、プログラムカウンタ制御部501は、状態テーブル503の内容を更新する。例えば、FIFO1の命令333、選択レジスタ番号701及び下位ビット部332がFIFO2に伝播されると、FIFO1の選択レジスタ番号701及び有効フラグ702はFIFO2の選択レジスタ番号701及び有効フラグ702に書き込まれる。
プロセッサ101は、演算処理ステージ304では、演算を行う。この際、プロセッサ101は、演算によりオーバーフロー、アンダーフロー又は0除算等の例外処理を検出すると、例外信号を発生する。すると、出力生成部504は、状態テーブル503を参照し、例外信号が発生した命令333に対応するパイプライン部505の演算処理ステージ(EXE)304の選択レジスタ番号701及び有効フラグ702を読み出す。次に、出力生成部504は、読み出した選択レジスタ番号701が示すレジスタ320〜323の中のいずれかから上位ビット部331を読み出す。また、出力生成部504は、例外信号が発生した命令333に対応するパイプライン部505の演算処理ステージ304から下位ビット部332を読み出す。次に、出力生成部504は、読み出した上位ビット部331と下位ビット部332とを結合し、32ビットのプログラムカウンタ値330を生成する。次に、出力生成部504は、例外が発生したことを示す例外フラグ、生成した32ビットのプログラムカウンタ値330、読み出した有効フラグ702を含む例外信号111を外部に出力する。有効フラグ702が有効を示すときにはプログラムカウンタ値330は有効であり、有効フラグ702が無効を示すときにはプログラムカウンタ値330は無効である。
図4は、第2の実施形態によるプロセッサ101の処理方法を示すフローチャートである。ステップS401で、プロセッサ101の処理が開始される。ステップS402では、プロセッサ101は、例外信号が発生したか否かをチェックする。例えば、演算処理ステージ304で例外処理が行われると、例外信号が発生する。例外信号が発生していなければステップS405へ進み、例外信号が発生していればステップS403へ進む。
ステップS405では、プログラムカウンタ制御部501は、フェッチステージ301で命令333をフェッチすると、プログラムカウンタ値330を上位ビット部331及び下位ビット部332に分割する。そして、プログラムカウンタ制御部501は、分割した上位ビット部331がレジスタ部500に保持されていない場合には、上位ビット部331をレジスタ部500に書き込み、書き込んだレジスタの番号を選択レジスタ番号701として状態テーブル503内で伝播させ、選択レジスタ番号701及び下位ビット部332を命令333と共にステージ上で伝播させる。また、プログラムカウンタ制御部501は、分割した上位ビット部331がレジスタ部500に保持されている場合には、上位ビット部331をレジスタ部500に書き込まず、保持されているレジスタの番号を示す選択レジスタ番号701及び下位ビット部332を命令333と共にステージ上で伝播させる。その後、ステップS401に戻る。
ステップS403では、出力生成部504は、状態テーブル503を参照し、例外信号が発生した命令333に対応する選択レジスタ番号701が示す番号のレジスタから上位ビット部331を読み出す。
次に、ステップS404では、出力生成部504は、伝播してきた下位ビット部332と上記の読み出した上位ビット部331を結合し、結合したプログラムカウンタ値330及び有効フラグ702を含む例外信号111を外部に出力する。その後、上記のステップS405に進む。
なお、上記の説明では、例外が発生した場合に例外信号を出力する場合を例に説明したが、例外信号に限定されず、例外等の特殊な現象が発生した場合の特殊信号に適用することができる。また、レジスタ部500内のレジスタ数が多い場合には、有効フラグ702を削除してもよい。
本実施形態は、プログラムカウンタのプログラムカウンタ値330が、多くの場合、連続した値で変化するため、上位ビット部331の値の変化は少ないことに着目している。同じ上位ビット部331は、レジスタ部500に共通で保持させ、下位ビット部332を命令333と共に伝播させる。これにより、プログラムカウンタ値の下位ビット部332の伝播容量(記憶容量)を削減することができ、消費電力を低減することができる。
(第3の実施形態)
図10は、第3の実施形態によるプロセッサ(処理装置)101の構成例を示す図である。図10のプロセッサ101は、図5のプロセッサ101に対して、選択用ステートマシン1001を追加したものである。以下、本実施形態が第2の実施形態と異なる点を説明する。比較部502は、プログラムカウンタ制御部501により分割された上位ビット部331がレジスタ320〜323のいずれとも一致しなかった場合に不一致信号を出力する。選択用ステートマシン1001は、不一致信号を入力すると、最も更新履歴の古いレジスタを検出する。すると、プログラムカウンタ制御部501は、上記の分割した上位ビット部331を最も更新履歴の古いレジスタに上書きし、状態テーブル503において、上書きされたレジスタを示す選択レジスタ番号701の有効フラグ702をすべて無効にする。
図8は、第3の実施形態によるステートマシン1001の例を示す状態遷移図である。ステートマシン1001は、最も更新履歴の古いレジスタを検出する。ここでは、レジスタ部500が4個のレジスタ320〜323を有する場合を例に説明する。ステートマシン1001の深さは4としているが、さらに深くても浅くてもよい。浅いと履歴の順位付けがあいまいになり、深いと履歴の順位付けがより厳密になるが動作や処理が増加して複雑化する。ステートマシン1001は、レジスタ320〜323の数分存在し、0が最も古く、3が最も新しいとする。0番用ステートマシン〜3番用ステートマシンは、それぞれ0番レジスタ320〜3番レジスタ323に対応する。図8の状態では、0番用ステートマシンはステートが0であって最も古く、3番用ステートマシンはステートが3であって最も新しい。ステートマシン1001は、比較部502の比較により一致したレジスタ番号を得て動作する。もし一致した場合には、一致したレジスタ番号のステートマシンのステート(状態)を最新の3にし、他のステートマシンのステートを−1する。もしすべて不一致だった場合には、ステートが0の最古のステートマシンを更新するレジスタとしてステートを最新の3にし、他のステートマシンのステートを−1する。ただし、ステートが0のときは0のままとする。もし同一順位でステート0のステートマシンが複数あった場合には、若い番号を選択する。これは古い番号でもよい。
図9は、ステートマシン1001の動作例を示す図である。初期状態は3番用ステートマシンが最新である。ここで、3番レジスタの一致信号が入力されると、3番用ステートマシンはステートを最新の3にし、他のステートマシンはステートを−1する。次に、1番レジスタが一致した場合には、1番用ステートマシンのステートを3にし、他のステートマシンのステートを−1する。次に、すべて不一致状態になった場合、0番用ステートマシン及び2番用ステートマシンがステート0となっている。同一順位時は若い番号を選択するので、0番用ステートマシンを選択し、0番用ステートマシンのステートを最新の3にし、他のステートマシンのステートを−1する。このように動作することで、最も古い更新履歴を選択することができる。また、同一順位になる可能性はステートマシンの深さを深くすれば減り、浅くすれば増える。同一順位になったことによる誤差は生じる。
図6は、第3の実施形態によるプロセッサ101の処理方法を示すフローチャートである。ステップS601で、プロセッサ101の処理が開始される。ステップS602では、プロセッサ101は、例外信号が発生したか否かをチェックする。例えば、演算処理ステージ304で例外処理が行われると、例外信号が発生する。例外信号が発生していなければステップS606へ進み、例外信号が発生していればステップS603へ進む。
ステップS603では、出力生成部504は、状態テーブル503を参照し、例外信号が発生したパイプライン部505及びステージ位置を基に選択レジスタ番号701及び有効フラグ702を取得する。
次に、ステップS604では、出力生成部504は、取得した選択レジスタ番号701が示すレジスタから上位ビット部331を取得し、例外信号が発生した命令333に対応する下位ビット部332と上記の取得した上位ビット部331を結合し、32ビットのプログラムカウンタ値330を生成する。
次に、ステップS605では、例外発生を示す例外フラグ、上記の生成したプログラムカウンタ値330及び有効フラグ702を含む例外信号111を外部に出力する。その後、ステップS606へ進む。
ステップS606では、プログラムカウンタ制御部501は、命令333の進行にあわせて状態テーブル503の内容を更新する。具体的には、命令333が消化されると、FIFO1に空きができる。パイプライン処理により、命令333、選択レジスタ番号701及び下位ビット部332がステージ上を伝播すると、それに合わせて、状態テーブル503内の選択レジスタ番号701及び有効フラグ702を伝播させる。
次に、ステップS607では、プログラムカウンタ制御部501は、フェッチステージ301で命令333をフェッチすると、プログラムカウンタ値330を上位ビット部331及び下位ビット部332に分割する。そして、プログラムカウンタ制御部501は、上位ビット部331を比較部502に出力する。
次に、ステップS608では、比較部502は、上位ビット部331とレジスタ320〜323の値とを比較し、一致信号又は不一致信号を出力する。レジスタ320〜323のうちのいずれかと一致した場合にはステップS609へ進み、いずれとも一致しない場合にはステップS611へ進む。
ステップS609では、プログラムカウンタ制御部501は、一致信号及び一致したレジスタ番号を比較部502から入力すると、一致したレジスタ番号を選択レジスタ番号701として状態テーブル503に書き込み、有効フラグ702を有効にする。そして、プログラムカウンタ制御部501は、選択レジスタ番号701及び下位ビット部332を命令333と共に後段に伝播させる。
次に、ステップS610では、ステートマシン1001は、一致信号及び一致したレジスタ番号を比較部502から入力すると、一致したレジスタ番号に対応するステートマシンのステートを最新の3にし、その他のステートマシンのステートを1下げる。その後、ステップS601に戻る。
ステップS611では、ステートマシン1001は、不一致信号を比較部502から入力すると、最も更新履歴の古いステート0のレジスタ番号を更新レジスタ番号として出力し、そのレジスタ番号のステートマシンのステートを最新の3にし、その他のステートマシンのステートを1下げる。
次に、ステップS612では、プログラムカウンタ制御部501は、分割した上位ビット部331を更新レジスタ番号のレジスタに書き込む。そして、プログラムカウンタ制御部501は、書き込んだレジスタのレジスタ番号を選択レジスタ番号701として状態テーブル503に書き込み、有効フラグ702を有効にする。そして、プログラムカウンタ制御部501は、選択レジスタ番号701及び下位ビット部332を命令333と共に後段に伝播させる。
次に、ステップS613では、プログラムカウンタ制御部501は、状態テーブル503において、上記の書き込んだレジスタの選択レジスタ番号701で伝播中の有効フラグ702を無効にする。その後、ステップS601に戻る。以上の処理を、命令333が進行される毎に繰り返す。
本実施形態では、プログラムカウンタ制御部501は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、分割した上位ビット部331を最も更新履歴の古いレジスタに上書きする。
(第4の実施形態)
図11は、第4の実施形態によるステートマシン1001の例を示す状態遷移図である。本実施形態は、第3の実施形態に対して、ステートマシン1001の状態遷移が異なる。以下、本実施形態が第3の実施形態と異なる点を説明する。ステートマシン1001は、最も更新履歴の新しいレジスタを次回の更新レジスタとして検出する。ここでは、レジスタ部500が4個のレジスタ320〜323を有する例を説明する。ステートマシン1001の深さは2としている。0番用ステートマシン〜3番用ステートマシンは、それぞれ0番レジスタ320〜3番レジスタ323に対応する。ステートは、0が最も新しく、1がそれ以外である。図11の状態では、0番用ステートマシンはステートが0であって最も新しく、それ以外のステートマシンはステートが1であって最新ではない。比較部502が一致信号を出力した場合には、一致したレジスタ番号のステートマシンのステートを最新の0にし、他のステートマシンのステートを+1する。ただし、ステートが1のときは、ステートを+1しても1のままとする。比較部502が不一致信号を出力した場合には、ステートが0のステートマシンを更新レジスタとし、そのステートマシンのステートを最新の0にし、他のステートマシンのステートを+1する。もし同一順位でステート0のステートマシンが複数あった場合には、若い番号のステートマシンを選択する。これは古い番号でもよい。
図12は、ステートマシン1001の動作例を示す図である。初期状態では、0番用ステートマシンがステートが0であって最新である。次に、3番レジスタの一致信号が入力されると、3番用ステートマシンのステートを最新の0にし、他のステートマシンのステートを+1する。次に、1番レジスタの一致信号が入力されると、1番用ステートマシンのステートを0にし、他のステートマシンのステートを+1する。次に、不一致信号が入力されると、1番用ステートマシンのステートが0となっているため、1番レジスタを選択し、1番用ステートマシンのステートを最新の0にし、他のステートマシンのステートを+1する。
本実施形態では、ステートマシン制御部501は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、分割した上位ビット部331を最も更新履歴の新しいレジスタに上書きする。
(第5の実施形態)
図13は、第5の実施形態によるステートマシン1001の例を示す状態遷移図である。本実施形態は、第3の実施形態に対して、ステートマシン1001の状態遷移が異なる。以下、本実施形態が第3の実施形態と異なる点を説明する。ステートマシン1001は、次のレジスタ番号を順番に指定する。ステートマシンは1個であり、ステートの番号がレジスタ番号に対応し、4個のステートを有する。初期状態では、例えばステートマシンのステートは0であり、次回の更新レジスタは0番レジスタであることを示す。一致信号が入力されるとステートは維持され、不一致信号が入力されるとステートが+1される。なお、不一致信号が入力された場合には、ステートを−1してもよい。すなわち、一致しなかった場合には、前回更新したレジスタ番号より大きなレジスタ番号又は小さなレジスタ番号の順に状態遷移する。なお、状態遷移の順番は、特定のレジスタ番号の順番でもよい。
本実施形態では、プログラムカウンタ制御部501は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、分割した上位ビット部331を順序付けされたレジスタ320〜323に順番に上書きする。
(第6の実施形態)
図14(A)及び(B)は、第6の実施形態によるステートマシン1001の例を示す図である。図14(A)は状態遷移図であり、図14(B)はステート毎の優先度を示す図である。本実施形態は、第3の実施形態に対して、ステートマシン1001の状態遷移が異なる。以下、本実施形態が第3の実施形態と異なる点を説明する。ステートマシン1001は、ラウンドロビン方式によりレジスタ番号を選択する。ステートマシン1001は、0〜3の4個のステートを有する。図14(B)に示すように、ステート0では1番レジスタの優先度が最も高く、0番レジスタの優先度が最も低い。ステート1では、2番レジスタの優先度が最も高く、1番レジスタの優先度が最も低い。ステート2では、3番レジスタの優先度が最も高く、2番レジスタの優先度が最も低い。ステート3では、0番レジスタの優先度が最も高く、3番レジスタの優先度が最も低い。一致信号を入力した場合には、一致したレジスタ番号に対応したステートに遷移する。例えば、0番レジスタと一致した場合には、ステート0に遷移する。不一致信号を入力した場合には、現在のステートの最も優先度の高いレジスタ番号を更新レジスタ番号として選択する。例えば、現在のステートが0である場合には、最も優先度の高い1番レジスタを選択する。この場合、ステートは動かない。これにより、少なくともひとつ前に更新したレジスタとは異なるレジスタを更新することができる。本実施形態は、第3の実施形態を簡略化した形とも言える。
次に、動作例を説明する。初期状態のステートが0であるとする。次に、1番レジスタの一致信号が入力されると、ステートを1に遷移させ、1番レジスタが更新される。遷移したステート1では、更新された1番レジスタが最も優先度が低くなり、次に不一致が入力されたときには、2番レジスタが更新レジスタになる。このようにして、更新履歴の新しいレジスタの優先順位を下げ、更新履歴の古いレジスタを更新レジスタとして選択することができる。
本実施形態では、プログラムカウンタ制御部501は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、分割した上位ビット部331をラウンドロビン方式により選択されたレジスタに上書きする。
(第7の実施形態)
図16は、第7の実施形態によるプロセッサ(処理装置)101の構成例を示す図である。本実施形態は、第3〜第6の実施形態のステートマシン1001を選択することができる。図16のプロセッサ101は、図10のプロセッサ101に対して、ステートマシン選択部1601を追加したものである。本実施形態は、第3〜第6の実施形態を組み合わせたものである。以下、本実施形態が第3〜第6の実施形態と異なる点を説明する。ステートマシン選択部1601は、ホストマシン105又はデバッグ用パーソナルコンピュータ202の指示に応じて、第3〜第6の実施形態のステートマシン1001のいずれかを選択する。ステートマシン1001は、ステートマシン選択部1601の選択に応じて、第3〜第6の実施形態のいずれかの動作を行う。
図15は、第7の実施形態によるプロセッサ101の処理方法を示すフローチャートである。図15は、図6に対して、ステップS1501及びS1502を追加したものである。以下、図15が図6と異なる点を説明する。ステップS1501では、ステップS601の前に、ステートマシン選択部1601は、ホストマシン105又はデバッグ用パーソナルコンピュータ202の指示に応じて、第3〜第6の実施形態のステートマシン1001のいずれかを選択する。その後、ステップS601の開始ステップに進む。ステップS1502では、ステップS606の後、ステートマシン1001は、ステートマシン選択部1601から、第3〜第6の実施形態のいずれかの動作を行うための選択情報を読み込み、動作の設定を行う。その後、ステップS607以降へ進み、ステートマシン1001は、第3〜第6の実施形態のうちのいずれかの選択された動作を行う。
本実施形態のステートマシン1001は、第3〜第6の実施形態のステートマシン1001のうちの少なくとも2個を有し、その中から選択することができる。すなわち、ステートマシン選択部1601は、第1の上書き方法(第3の実施形態)と、第2の上書き方法(第4の実施形態)と、第3の上書き方法(第5の実施形態)と、第4の上書き方法(第6の実施形態)のうちの少なくも2つの中から1つを選択する。
第1の上書き方法(第3の実施形態)は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、分割した上位ビット部331を最も更新履歴の古いレジスタに上書きする方法である。第2の上書き方法(第4の実施形態)は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、分割した上位ビット部331を最も更新履歴の新しいレジスタに上書きする方法である。第3の上書き方法(第5の実施形態)は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、分割した上位ビット部331を順序付けされたレジスタ320〜323に順番に上書きする方法である。第4の上書き方法(第6の実施形態)は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、分割した上位ビット部331をラウンドロビン方式により選択されたレジスタ320〜323に上書きする方法である。
プログラムカウンタ制御部501は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されていない場合には、ステートマシン1001の状態遷移に応じて、分割した上位ビット部331をステートマシン選択部1601により選択された上書き方法で上書きする。
以上のように、第1〜第7の実施形態において、プログラムカウンタ制御部501は、プログラムカウンタ値330のアドレスの命令333が命令メモリ311から読み出されると、読み出された命令333に対応するプログラムカウンタ値330を上位ビット部331及び下位ビット部332に分割し、プログラムカウンタ値の上位ビット部331をレジスタ部500に書き込み、読み出された命令333とそれに対応するプログラムカウンタ値の下位ビット部332との組みを後段に伝播させる。
演算パイプラインは、フェッチステージ301〜ライトバックステージ306を有し、読み出された命令333に対して複数ステージのパイプライン処理を行い、読み出された命令333の情報とその命令333に対応するプログラムカウンタ値の下位ビット部332との組みを各ステージに伝播させる。
出力生成部504は、演算パイプラインで読み出された命令333の処理による例外信号(特殊信号)が発生すると、その命令333に対応するプログラムカウンタ値の下位ビット部332とレジスタ部500内のプログラムカウンタ値の上位ビット部331とを結合させて出力する。
状態テーブル503は、演算パイプラインの各ステージの命令に対応するプログラムカウンタ値の上位ビット部331が保持されているレジスタ320〜323の番号(識別子)を選択レジスタ番号701として記憶する。
プログラムカウンタ制御部501は、分割した上位ビット部331と同じ値の上位ビット部がレジスタ320〜323に保持されている場合には、分割した上位ビット部331をレジスタ部500に書き込まず、同じ値の上位ビット部が保持されているレジスタ320〜323の番号(識別子)を選択レジスタ番号701として状態テーブル503に書き込み、分割した上位ビット部331と同じ値の上位ビット部がレジスタ部500に保持されていない場合には、分割した上位ビット部331をレジスタ部500内のレジスタ320〜323のいずれかに書き込み、書き込んだレジスタ320〜323の番号(識別子)を選択レジスタ番号701として状態テーブル503に書き込む。
プログラムカウンタ制御部501は、上位ビット部が書き込まれているレジスタ320〜323に対して分割した上位ビット部331を上書きする場合には、状態テーブル503内の上書きされたレジスタ320〜323のレジスタ番号(識別子)701を有効フラグ702により無効にする。
第1〜第7の実施形態によれば、プログラムカウンタ値330のアドレスは上位ビット部331が同じ値であることが多いので、プログラムカウンタ値の上位ビット部331をレジスタ部500に保持させることにより、プログラムカウンタ値の下位ビット部332の伝播容量(記憶容量)を削減することができる。
なお、第2〜第7の実施形態において、出力生成部504は、有効フラグ702が無効である場合には、例外信号(特殊信号)111内の上位ビット部331の値を特定値にして出力してもよい。特定値は、ホストマシン105又はデバッグ用パーソナルコンピュータ202により設定される値である。例えば、ホストマシン105又はデバッグ用パーソナルコンピュータ202は、無効の有効フラグ702を含む例外信号111を入力すると、上位ビット部331の特定値が示すアドレスの命令を実行することができる。すなわち、特定値は、例外処理の開始アドレスに設定することができる。
また、出力生成部504は、有効フラグ702が無効である場合には、レジスタ部500内のすべてのレジスタ320〜323に保持されている上位ビット部を含む例外信号111を出力するようにしてもよい。ホストマシン105又はデバッグ用パーソナルコンピュータ202は、すべてのレジスタ320〜323に保持されている上位ビット部を含む例外信号111を入力すると、それらの上位ビット部を基に例外が発生したプログラムカウンタ値を類推することが可能となる。
上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
プログラムカウンタ値の上位ビット部を保持するためのレジスタ部と、
プログラムカウンタ値のアドレスの命令が命令メモリから読み出されると、前記読み出された命令に対応するプログラムカウンタ値を上位ビット部及び下位ビット部に分割し、前記プログラムカウンタ値の前記上位ビット部を前記レジスタ部に書き込み、前記読み出された命令とそれに対応する前記プログラムカウンタ値の前記下位ビット部との組みを後段に伝播させる制御部と、
前記読み出された命令に対して複数ステージのパイプライン処理を行い、前記読み出された命令の情報とその命令に対応する前記プログラムカウンタ値の前記下位ビット部との組みを各ステージに伝播させる演算パイプラインとを有し、
前記制御部は、前記演算パイプラインで前記読み出された命令の処理による特殊信号が発生すると、その命令に対応する前記プログラムカウンタ値の前記下位ビット部と前記レジスタ部内の前記プログラムカウンタ値の前記上位ビット部とを結合させて出力することを特徴とする処理装置。
(付記2)
前記レジスタ部は、複数のプログラムカウンタ値の上位ビット部を保持するための複数のレジスタを有し、
さらに、前記演算パイプラインの各ステージの命令に対応するプログラムカウンタ値の上位ビット部が保持されているレジスタの識別子を記憶する状態テーブルを有し、
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されている場合には、前記分割した上位ビット部を前記レジスタ部に書き込まず、前記同じ値の上位ビット部が保持されているレジスタの識別子を前記状態テーブルに書き込み、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタ部に保持されていない場合には、前記分割した上位ビット部を前記レジスタ部内のレジスタに書き込み、前記書き込んだレジスタの識別子を前記状態テーブルに書き込むことを特徴とする付記1記載の処理装置。
(付記3)
前記制御部は、前記上位ビット部が書き込まれているレジスタに対して前記分割した上位ビット部を上書きする場合には、前記状態テーブル内の前記上書きされたレジスタの識別子を無効にすることを特徴とする付記2記載の処理装置。
(付記4)
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の古いレジスタに上書きすることを特徴とする付記3記載の処理装置。
(付記5)
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の新しいレジスタに上書きすることを特徴とする付記3記載の処理装置。
(付記6)
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を順序付けされたレジスタに順番に上書きすることを特徴とする付記3記載の処理装置。
(付記7)
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部をラウンドロビン方式により選択されたレジスタに上書きすることを特徴とする付記3記載の処理装置。
(付記8)
さらに、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の古いレジスタに上書きする第1の上書き方法と、前記分割した上位ビット部を最も更新履歴の新しいレジスタに上書きする第2の上書き方法と、前記分割した上位ビット部を順序付けされたレジスタに順番に上書きする第3の上書き方法と、前記分割した上位ビット部をラウンドロビン方式により選択されたレジスタに上書きする第4の上書き方法のうちの少なくも2つの中から1つを選択する選択部を有し、
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を前記選択部により選択された上書き方法で上書きすることを特徴とする付記3記載の処理装置。
111 例外信号
301 フェッチステージ
302 デコードステージ
303 レジスタリードステージ
304 演算処理ステージ
305 メモリアクセスステージ
306 ライトバックステージ
311 命令メモリ
312 汎用レジスタ
313 データメモリ
320〜323 レジスタ
330 プログラムカウンタ値
331 上位ビット部
332 下位ビット部
333 命令
341 加算器
500 レジスタ部
501 プログラムカウンタ制御部
502 比較部
503 状態テーブル
504 出力生成部
505 パイプライン部
1001 選択用ステートマシン
1601 ステートマシン選択部

Claims (5)

  1. プログラムカウンタ値の上位ビット部を保持するためのレジスタ部と、
    プログラムカウンタ値のアドレスの命令が命令メモリから読み出されると、前記読み出された命令に対応するプログラムカウンタ値を上位ビット部及び下位ビット部に分割し、前記プログラムカウンタ値の前記上位ビット部を前記レジスタ部に書き込み、前記読み出された命令とそれに対応する前記プログラムカウンタ値の前記下位ビット部との組みを後段に伝播させる制御部と、
    前記読み出された命令に対して複数ステージのパイプライン処理を行い、前記読み出された命令の情報とその命令に対応する前記プログラムカウンタ値の前記下位ビット部との組みを各ステージに伝播させる演算パイプラインとを有し、
    前記制御部は、前記演算パイプラインで前記読み出された命令の処理による特殊信号が発生すると、その命令に対応する前記プログラムカウンタ値の前記下位ビット部と前記レジスタ部内の前記プログラムカウンタ値の前記上位ビット部とを結合させて出力することを特徴とする処理装置。
  2. 前記レジスタ部は、複数のプログラムカウンタ値の上位ビット部を保持するための複数のレジスタを有し、
    さらに、前記演算パイプラインの各ステージの命令に対応するプログラムカウンタ値の上位ビット部が保持されているレジスタの識別子を記憶する状態テーブルを有し、
    前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されている場合には、前記分割した上位ビット部を前記レジスタ部に書き込まず、前記同じ値の上位ビット部が保持されているレジスタの識別子を前記状態テーブルに書き込み、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタ部に保持されていない場合には、前記分割した上位ビット部を前記レジスタ部内のレジスタに書き込み、前記書き込んだレジスタの識別子を前記状態テーブルに書き込むことを特徴とする請求項1記載の処理装置。
  3. 前記制御部は、前記上位ビット部が書き込まれているレジスタに対して前記分割した上位ビット部を上書きする場合には、前記状態テーブル内の前記上書きされたレジスタの識別子を無効にすることを特徴とする請求項2記載の処理装置。
  4. 前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の古いレジスタに上書きすることを特徴とする請求項3記載の処理装置。
  5. 前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の新しいレジスタに上書きすることを特徴とする請求項3記載の処理装置。
JP2011014162A 2011-01-26 2011-01-26 処理装置 Expired - Fee Related JP5678687B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011014162A JP5678687B2 (ja) 2011-01-26 2011-01-26 処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011014162A JP5678687B2 (ja) 2011-01-26 2011-01-26 処理装置

Publications (2)

Publication Number Publication Date
JP2012155539A JP2012155539A (ja) 2012-08-16
JP5678687B2 true JP5678687B2 (ja) 2015-03-04

Family

ID=46837198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011014162A Expired - Fee Related JP5678687B2 (ja) 2011-01-26 2011-01-26 処理装置

Country Status (1)

Country Link
JP (1) JP5678687B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2532560B2 (ja) * 1988-03-09 1996-09-11 三菱電機株式会社 高機能な例外処理を行うデ―タ処理装置
JPH03105527A (ja) * 1989-09-20 1991-05-02 Fujitsu Ltd パイプライン計算機におけるプログラムカウンタの構成方式
US5826074A (en) * 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
DE602006013515D1 (de) * 2006-02-28 2010-05-20 Fujitsu Ltd Verarbeitungseinrichtung durch vorhersage einer abzweigung aus komprimierten adresseninformationen
JP2008165589A (ja) * 2006-12-28 2008-07-17 Fujitsu Ltd 情報処理装置

Also Published As

Publication number Publication date
JP2012155539A (ja) 2012-08-16

Similar Documents

Publication Publication Date Title
US8473880B1 (en) Synchronization of parallel memory accesses in a dataflow circuit
CN108319559B (zh) 用于控制矢量内存存取的数据处理装置及方法
WO2015008115A1 (en) Method and computer program product for disassembling a mixed machine code
GB2496934A (en) Multi-stage register renaming using dependency removal and renaming maps.
KR100303712B1 (ko) 파이프라인기계에서의어드레스파이프라인을위한방법및장치
US8484520B2 (en) Processor capable of determining ECC errors
US7991985B2 (en) System and method for implementing and utilizing a zero overhead loop
JP2008176453A (ja) シミュレーション装置
US10007524B2 (en) Managing history information for branch prediction
JP2011253253A (ja) コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム
JP7048612B2 (ja) ベクトル生成命令
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
JP5678687B2 (ja) 処理装置
JP7077862B2 (ja) 演算処理装置及び演算処理装置の制御方法
US7966474B2 (en) System, method and computer program product for translating storage elements
JP5862397B2 (ja) 演算処理装置
CN107003855B (zh) 带进位的原子加法指令
JPH08249178A (ja) プロセッサのアネックス内において修飾ビットを形成する方法及び装置
US20140365751A1 (en) Operand generation in at least one processing pipeline
JP6473023B2 (ja) 性能評価モジュール及びこれを組み込んだ半導体集積回路
JP5545054B2 (ja) デバッグ回路及びデバッグシステム
JP6237241B2 (ja) 処理装置
EP1050800A1 (en) A pipelined execution unit
US11036503B2 (en) Predicate indicator generation for vector processing operations
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141222

R150 Certificate of patent or registration of utility model

Ref document number: 5678687

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees