JP3669884B2 - 処理装置 - Google Patents
処理装置 Download PDFInfo
- Publication number
- JP3669884B2 JP3669884B2 JP32119599A JP32119599A JP3669884B2 JP 3669884 B2 JP3669884 B2 JP 3669884B2 JP 32119599 A JP32119599 A JP 32119599A JP 32119599 A JP32119599 A JP 32119599A JP 3669884 B2 JP3669884 B2 JP 3669884B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- decoder
- issued
- code
- extended
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 63
- 238000012546 transfer Methods 0.000 claims description 25
- 238000001514 detection method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- 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
-
- 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/3802—Instruction prefetching
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サイクルごとの命令発行が可能な基本命令からなる命令セットを有する処理装置の機能の拡張に関する。
【0002】
【従来の技術】
近年、RISCアーキテクチャを採用したマイクロプロセッサが種々製品化されている。RISCとは、縮小命令セットコンピュータ(Reduced Instruction Set Computer)の略であり、RISCアーキテクチャは、使用頻度の高い基本的かつ単純な命令のみからなる命令セットを設け、コンパイラ技術によって最適にスケジューリングされた命令列を単純なハードウェア構成の下で高速に実行することにより、コストパフォーマンス(性能対価格比)の向上を図ろうというものである。
【0003】
このようなRISCアーキテクチャでは、命令長が固定であり、パイプライン制御が最大限に駆使されている。従来、パイプラインの全てのステージを1サイクルで通過することができるように単純な命令セットのみで構成されていた。しかしながら、近年のRISCアーキテクチャでは、複雑な処理を行う命令が追加される傾向にある。例えば、グラフィック機能を高めるための大量データ転送を行う命令等がこれに該当する。
【0004】
【発明が解決しようとする課題】
既存の単純な機能の命令セットを有するプロセッサにおいて新規に複雑な機能の命令セットを追加する場合、新規にハードウェア設計を一からやり直す必要があり、開発工数が増大するという問題がある。また、これらの命令をイリーガルな命令として扱い、トラップ割り込みを発生させ、ソフトウェアで命令コードを判断してソフトウェアエミュレーションを行うことも行われているが、せっかくの性能アップを狙った命令セットを使用しても、トラップ割り込みによるオーバヘッドが大きいために性能が出ないという問題がある。
【0005】
本発明は、上述した問題点に鑑みてなされたものであり、その目的は、既存のハードウェアに対して大規模な変更を加えることなく若干の制御を加えてハードウェアによる命令エミュレーション(μオペレーション)を行わせることにより、ソフトウェアによる方法よりも性能を格段に向上させつつ複雑な機能の命令セットをサポートすることが可能な処理装置を提供することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するために、本発明の第1の態様によれば、1サイクルごとの命令発行が可能な基本命令コード又は1サイクルごとの命令発行が不可能な拡張命令コードをフェッチして保持する命令コード保持手段と、前記命令コード保持手段に保持された基本命令コードをデコードして命令を発行する第1の命令デコーダと、前記命令コード保持手段に保持された拡張命令コードをデコードし、複数個の命令の列に分解して、1サイクルごとに1個の命令を発行する第2の命令デコーダと、前記第2の命令デコーダによって発行されるべき命令の数をカウントするとともに、拡張命令コードの実行中であることを示す信号を出力するカウンタと、基本命令コードの実行中には前記第1の命令デコーダから発行される命令を選択する一方、拡張命令コードの実行中には前記第2の命令デコーダから発行される命令を選択する命令選択手段と、前記命令選択手段から出力される命令を保持する実行命令保持手段と、前記実行命令保持手段に保持された命令の内容を実行する命令実行手段と、を具備する処理装置が提供される。
【0007】
また、本発明の第2の態様によれば、前記第1の態様に係る処理装置は、前記第2の命令デコーダによる命令発行ごとにプログラムカウンタが更新されるのを抑止する手段を更に具備する。
【0008】
また、本発明の第3の態様によれば、前記第1の態様に係る処理装置は、前記第1の命令デコーダにより既に発行された命令が全て完了したことを検出する手段を具備し、前記第2の命令デコーダは、該検出する手段の出力がオンであることを確認してから命令発行を開始する。
【0009】
また、本発明の第4の態様によれば、前記第3の態様に係る処理装置は、前記第2の命令デコーダによる命令発行が開始されたときにオンにされ発行された命令が全て完了したときにオフにされるフラグを作成する手段を更に具備し、前記第1の命令デコーダは該フラグがオンの間は命令発行を行わない。
【0010】
また、本発明の第5の態様によれば、前記第1の態様に係る処理装置は、前記第2の命令デコーダにより命令が連続して発行されていることを示す信号を生成する手段と、該信号に基づいて前記第2の命令デコーダにより発行される全ての命令ごとにハードウェア資源に対するスナップショットを生成する手段と、を更に具備する。
【0011】
また、本発明の第6の態様によれば、前記第1の態様に係る処理装置は、前記第2の命令デコーダにより最初の命令が発行されたときにオンにされ前記第2の命令デコーダにより発行された最後の命令が完了したときにオフにされるフラグを作成する手段を更に具備し、前記第1の命令デコーダは該フラグがオンの間は命令発行を行わない。
【0012】
また、本発明の第7の態様によれば、前記第1の態様に係る処理装置は、前記第2の命令デコーダにより最初の命令が発行されたときにオンにされ前記第2の命令デコーダにより発行された最後の命令が完了したときにオフにされるフラグを作成する手段と、該フラグがオンの間は非同期の割り込みを抑止する手段と、を更に具備する。
【0013】
また、本発明の第8の態様によれば、前記第1の態様に係る処理装置は、前記第2の命令デコーダにより最初の命令が発行されたときにオンにされ前記第2の命令デコーダにより発行された最後の命令が完了したときにオフにされるフラグを作成する手段と、該フラグがオンの間前記命令実行手段からの命令完了信号を監視し該信号がオンとなるごとにカウントを行うカウンタと、を更に具備し、該カウンタの値が前記第2の命令デコーダにより発行されるべき命令の数に達したときに処理装置を拡張命令コードの実行が完了した状態に移行させる。
【0014】
また、本発明の第9の態様によれば、前記第1の態様に係る処理装置は、前記第2の命令デコーダによる命令発行が開始される前に非同期割り込みが発生しそうにないことを確認して前記第2の命令デコーダによる命令発行中は割り込みが発生しないように制御する手段を更に具備する。
【0015】
また、本発明の第10の態様によれば、前記第1の態様に係る処理装置は、前記第2の命令デコーダにより最初の命令が発行されるサイクルで拡張命令コードのイリーガルコンディションを検出し、イリーガルである場合に前記第2の命令デコーダによる命令列の発行を抑止すべく割り込みを発生させる手段を更に具備する。
【0016】
また、本発明の第11の態様によれば、前記第1の態様に係る処理装置は、前記第1の命令デコーダにより既に発行された命令が全て完了したことを検出する手段を具備し、前記第2の命令デコーダにより最初の命令が発行されるときのみハードウェア資源に対するスナップショットを作成し、前記第2の命令デコーダにより後続の命令が発行されるときにはスナップショットを作成しない手段を更に具備する。
【0017】
また、本発明の第12の態様によれば、前記第1の態様に係る処理装置は、前記第2の命令デコーダにより発行される命令の実行中には、アドレスストップ用アドレス一致検出回路の出力をマスクし、前記第2の命令デコーダにより発行される最後の命令の実行が完了したときにアドレス一致結果を割り込み制御回路へ通知する手段を更に具備する。
【0018】
また、本発明の第13の態様によれば、前記第1から第12までの態様に係る処理装置において、前記第2の命令デコーダによってデコードされる拡張命令コードは、一つの基本命令で転送可能なデータのサイズの整数倍のサイズを有するデータの転送を指示するブロックデータ転送命令コードである。
【0019】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施形態について説明する。最初に、本発明の理解を容易にするため、従来技術について説明する。図1は、従来技術に係る処理装置のハードウェア構成を示すブロック図である。また、図2は、図1の処理装置の動作を説明するためのタイムチャートである。図1に示されるように、従来の処理装置は、基本的に、命令コードをフェッチして保持する命令コード保持部22、その命令コードをデコードしデコード後の命令を発行する命令デコーダ24、そのデコード後の命令をハードウェアへの制御情報として保持する実行命令保持部26、及びその実行命令保持部に保持された命令の内容を実行する命令実行部28から構成される。
【0020】
そして、図2のタイムチャートに示されるように、1つの命令の動作は、クロックサイクルに同期した4つのステージ、すなわちFE(fetch) ステージ、DE(decode)ステージ、EX(execution) ステージ、及びWR(write back)ステージで実現されるとともに、各命令は、1ステージずつずれつつ流れ作業的に並行して処理されていく。
【0021】
このようなパイプライン制御を可能とする既存の単純な機能の命令セット(基本命令セット)に加えて新規に複雑な機能の命令セット(拡張命令セット)をサポートしようとする場合において、ハードウェア設計を一からやり直そうとすると、膨大な開発工数が必要となる。そこで、本発明は、図1に示される既存のハードウェア構成に若干の変更を加えるだけで、複雑な機能の命令セットをサポートしようというものである。
【0022】
図3は、本発明の第1実施形態に係る処理装置のハードウェア構成を示すブロック図である。また、図4は、第1実施形態の動作を説明するためのタイムチャートである。図3における命令コード保持部22、命令デコーダ24、実行命令保持部26及び命令実行部28は、従来技術に係る図1における命令コード保持部22、命令デコーダ24、実行命令保持部26及び命令実行部28と同一であり、図3の構成は、図1の構成に対してμOP(micro operation) 命令デコーダ30、μOPカウンタ32及び命令選択部34を追加したものとなっている。
【0023】
命令コード保持部22に基本命令コードがフェッチされ保持された場合には、図1に関して説明した従来の動作と同様に、命令デコーダ24がその基本命令コードをデコードして通常命令(基本命令)を出力し、その通常命令が、命令選択部34を介して発行され、実行命令保持部26によって保持され、命令実行部28によって実行されることとなる。
【0024】
一方、命令コード保持部22に拡張命令コードがフェッチされ保持された場合、すなわち図4に示されるように命令m+1がフェッチされた場合には、以下のような動作がなされる。ここで、拡張命令である命令m+1は、一つの基本命令で転送可能なデータのサイズの整数倍のサイズを有するデータのメモリ・レジスタ間転送を指示する BLOCK DATA (ブロックデータ)転送命令を例示している。例えば、基本命令として8バイトの転送命令がサポートされている場合において、64バイトの転送を指示する転送命令が、この BLOCK DATA 転送命令に該当する。
【0025】
まず、命令m+1のFEステージにおいて命令コード保持部22からμOP命令デコーダ30へ命令コードが供給される。すると、μOP命令デコーダ30は、命令m+1のDEステージの先頭で、その命令コードが拡張命令としての BLOCK DATA 転送命令を表していることを識別する。μOP命令デコーダ30は、拡張命令コードであることを認識したときには、拡張命令を実現する複数の基本命令である各μOP(micro operation) 命令の発行が完了するまで当該拡張命令コードを保持するよう命令コード保持部22に対して指示する。
【0026】
そして、μOP命令デコーダ30は、拡張命令コードをμOP命令1、μOP命令2、・・・、μOP命令n−1、μOP命令nなるn個の基本命令に変換し、図4に示されるように、各μOP命令を1命令/サイクルで発行し、命令選択部34に供給する。例えば、64バイトの BLOCK DATA 転送命令の場合には、転送元及び転送先のアドレスを変えつつ8バイトの転送命令を8回発行することとなる。
【0027】
また、μOP命令デコーダ30は、命令選択部34に対して、μOP命令の発行中であることを示す信号を送る。この信号がオンである間、命令選択部34は、μOP命令デコーダ30から供給される命令を選択して実行命令保持部26へ送出する。また、μOP命令デコーダ30は、並行して、μOP命令を発行することをμOPカウンタ32に対して通知する。
【0028】
μOPカウンタ32は、μOP命令デコーダ30からμOP命令の発行の通知を受けると、n個の命令を発行するためのカウントを開始する。μOP命令の発行中には、μOPカウンタ32は、図4に示されるように、μOP命令が実行されていることを示す信号μOPEXECをオンにする。そして、μOPカウンタ32は、nサイクルのカウントが終了すると、図4に示されるように、分割命令を発行するサイクルが終了したことを示す信号μOPENDをμOP命令デコーダ30に送出する。最後に、μOPカウンタ32は、リセットされ、次のμOP命令発行に備える。
【0029】
かくして、本実施形態によれば、1サイクルごとの命令発行が可能な基本命令コードのみをサポートしていたプロセッサが、簡単なハードウェア変更により、1サイクルごとの命令発行が不可能な拡張命令コードをn個の基本命令の列に分解して1サイクルごとに1個の命令を発行することで、拡張命令コードをサポートすることができるようになる。以下、この実施形態に対して更なる改良を加えた実施形態について説明する。
【0030】
図5は、本発明の第2実施形態に係る処理装置のハードウェア構成を示すブロック図である。前述の実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。一般に、処理装置には、現在実行中の又は次に実行されるべき命令が記憶されている主記憶装置のアドレスを保持するプログラムカウンタ(PC)38が設けられている。
【0031】
この第2実施形態では、μOP命令デコーダ30による命令発行ごとにプログラムカウンタ38が更新されるのを抑止するために、命令発行制御部36が設けられている。そして、この命令発行制御部36は、実行命令保持部26及び命令実行部28に対しては通常通りの動作をさせるとともに、μOP命令の実行時には拡張命令1個分だけプログラムカウンタ38が更新されるように制御する。これによって、 BLOCK DATA 転送命令等の拡張命令を1個の命令としてソフトウェアに見せることができ、従来のソフトウェアを変更することなくマルチサイクルの命令をサポートすることができる。
【0032】
図6は、本発明の第3実施形態に係る処理装置のハードウェア構成を示すブロック図である。また、図7は、第3実施形態の動作を説明するためのタイムチャートである。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この実施形態では、命令デコーダ24により既に発行された命令が全て完了したことを命令発行制御部36の出力に基づいて検出するSync検出部40が設けられている。すなわち、Sync検出部40は、図7に示されるように、命令m+1( BLOCK DATA 転送命令)の前の命令mのWRステージの完了時点でその出力をオンにする。
【0033】
そして、μOP命令デコーダ30は、Sync検出部40の出力がオンであることを確認してから命令発行を開始する。すなわち、図7に示されるように、Sync検出部40の出力がオンになった後に命令m+1( BLOCK DATA 転送命令)のDEステージが開始される。これにより、 BLOCK DATA 転送命令等の拡張命令の実行時には、それ以前の命令が全て完了していることが保証されることとなる。したがって、拡張命令と一般の基本命令との混在が避けられ、従来の命令実行部のハードウェアをそのまま使用することができるようになる。すなわち、拡張命令と一般の基本命令との区別が不要となる。
【0034】
図8は、本発明の第4実施形態に係る処理装置のハードウェア構成を示すブロック図である。また、図9は、第4実施形態の動作を説明するためのタイムチャートである。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この第4実施形態では、前記第3実施形態の構成に対して、更に、μOP命令デコーダ30による命令発行が開始されたときにオンにされ発行された命令が全て完了したときにオフにされるPostSyncフラグを作成するPostSyncフラグ作成部42が設けられている。
【0035】
すなわち、このPostSyncフラグは、図9に示されるように、μOP命令1、μOP命令2、・・・、μOP命令nが発行されている間、オンになる。そして、命令デコーダ24は、PostSyncフラグがオンの間は命令発行を行わない。すなわち、図9の例では、命令m+2のDEステージが抑止される。かくして、拡張命令と一般の基本命令との混在が避けられ、従来の命令実行部のハードウェアをそのまま使用することができるようになる。
【0036】
図10は、本発明の第5実施形態に係る処理装置のハードウェア構成を示すブロック図である。図11は、第5実施形態の動作を説明するためのタイムチャートである。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この第5実施形態では、μOP命令デコーダ30により命令が連続して発行されていることを示すμOPIssue 信号を生成するμOPIssue 信号生成回路44と、このμOPIssue 信号に基づいてμOP命令デコーダ30により発行される全ての命令ごとにハードウェア資源48に対するスナップショットを生成するSNAP−SHOT回路46と、が設けられている。
【0037】
すなわち、図11に示されるように、μOPIssue 信号は、μOP命令1、μOP命令2、・・・、μOP命令nの各DEステージの間、オンにされる。そして、このμOPIssue 信号がオンの間、SNAP−SHOT回路46に対してスナップショットの作成を指示する信号make snap shot信号がオンにされる。かくして、μOP命令1、μOP命令2、・・・、μOP命令nにおいて例外(exception) (実装されていないメモリへのアクセス等の例外的事象)が発生しても、その例外に対する処理を容易に実行することが可能となる。
【0038】
図12は、本発明の第6実施形態に係る処理装置のハードウェア構成を示すブロック図である。また、図13は、第6実施形態の動作を説明するためのタイムチャートである。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この第6実施形態では、μOP命令デコーダ30により最初の命令が発行されたときにオンにされかつ発行された最後の命令が完了したときにオフにされるμOP実行フラグを作成するμOP実行フラグ作成部50が設けられている。
【0039】
すなわち、図13に示されるように、μOP実行フラグは、μOP命令1のDEステージからμOP命令nのWRステージまでの間、オンにされる。そして、命令デコーダ24は、μOP実行フラグがオンの間、 BLOCK DATA 転送命令等の拡張命令に続く命令の発行を抑止する。このことにより、一般の基本命令とμOP命令とが分離され、ハードウェアの簡素化が可能となる。
【0040】
図14は、本発明の第7実施形態に係る処理装置のハードウェア構成を示すブロック図である。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この第7実施形態では、前記第6実施形態と同様に、μOP実行フラグ作成部50が設けられ、μOP実行フラグが前記図13に示される如くオンになる。そして、トラップ割り込みを制御するTRAP制御部52は、μOP実行フラグを参照してμOP実行フラグがオンの間は非同期の割り込みを抑止する。このため、μOP命令の実行中には、ソフトウェアに対する割り込みが発生しないこととなり、割り込み制御の容易化が可能となる。
【0041】
図15は、本発明の第8実施形態に係る処理装置のハードウェア構成を示すブロック図である。また、図16は、第8実施形態の動作を説明するためのタイムチャートである。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この第8実施形態では、前記したμOP実行フラグ作成部50に加えて、μOP実行フラグがオンの間、命令実行部28からの命令完了信号を監視し、命令完了信号がオンとなるごとにカウントを行うμOPcompleteカウンタ54が設けられている。
【0042】
すなわち、図16に示されるように、μOPcompleteカウンタ54の値は、μOP命令1、μOP命令2、・・・、μOP命令nの各WRステージの終了時点でインクリメントされる。そして、μOPcompleteカウンタ54の値がμOP命令デコーダ30により発行されるべき命令の数であるnに達したときに、全てのμOP命令が完了したと判断して、処理装置を、 BLOCK DATA 転送命令を完了した状態、すなわち拡張命令コードの実行が完了した状態に移行させる。かくして、命令実行部28におけるout-of-order(追越し)処理の制御を変更することが不要となる。
【0043】
図17は、本発明の第9実施形態に係る処理装置のハードウェア構成を示すブロック図である。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この第9実施形態では、μOP命令デコーダ30による命令発行が開始される前に非同期割り込みが発生しそうにないことを確認してμOP命令デコーダ30による命令発行中は割り込みが発生しないように制御するPRETRAP回路56が設けられている。
【0044】
すなわち、PRETRAP回路56は、トラップ割り込みを制御するTRAP制御部52の内部状態に基づいて、非同期割り込みが発生しそうにない期間においてのみ、μOP命令デコーダ30によるμOP命令の発行を許可する。これにより、μOP命令の実行中に非同期割り込みが禁止されることとなり、割り込み制御の簡単化及びμOP命令の分断の抑止が図られ、その結果、命令発行制御の簡易化が実現される。
【0045】
図18は、本発明の第10実施形態に係る処理装置のハードウェア構成を示すブロック図である。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この第10実施形態では、μOP命令デコーダ30により最初の命令が発行されるサイクルで拡張命令コードのイリーガルコンディションを検出し、イリーガルである場合にμOP命令デコーダ30による命令列の発行を抑止すべく割り込みを発生させるイリーガル検出回路58が設けられている。
【0046】
すなわち、このイリーガル検出回路58は、命令のオペランドにおいて指定されるアドレスが境界条件を満たしていない等のイリーガルコンディションを検出するものであり、イリーガルな命令であった場合には、μOP命令として実行されるべき命令列が発行されるのをその出力信号により抑止するとともに、トラップ割り込みを発生させるべくTRAP制御部52に通知する。かくして、 BLOCK
DATA 転送命令等の拡張命令の誤発行を抑止することができる。
【0047】
図19は、本発明の第11実施形態に係る処理装置のハードウェア構成を示すブロック図である。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。この第11実施形態では、前記したSync検出部40が設けられ、更に、μOP命令デコーダ30により最初のμOP命令が発行されるときのみハードウェア資源48に対するスナップショットを作成し、μOP命令デコーダ30により後続のμOP命令が発行されるときにはスナップショットを作成しないSNAP−SHOT回路46′が設けられている。
【0048】
かくして、2番目以降のμOP命令の途中で例外が発生した場合においても、最も古いスナップショットの情報、すなわち BLOCK DATA 転送命令等の拡張命令を指す先頭のμOP命令の実行時の情報が、トラップ割り込みでソフトウェアに通知されることとなる。すなわち、 BLOCK DATA 転送命令等の拡張命令で例外が発生したようにソフトウェアに通知し、μOP命令をソフトウェアに認識させることがないようにすることが可能となる。
【0049】
図20は、本発明の第12実施形態に係る処理装置のハードウェア構成を示すブロック図である。前述の各実施形態と同一の部分については、同一の参照符号を付すことにより、その説明を省略する。一般に、処理装置においては、ソフトウェアのデバッグ等のためにアドレスストップ用アドレス一致検出回路60が設けられることが多い。この第12実施形態では、μOP命令デコーダ30により発行されるμOP命令の実行中には、アドレスストップ用アドレス一致検出回路60の出力をマスクし、μOP命令デコーダ30により発行される最後のμOP命令の実行が完了したときにアドレス一致結果をTRAP制御部52へ通知するマスク回路62が設けられている。
【0050】
このため、 BLOCK DATA 転送命令等の拡張命令の実行後にアドレス一致の割り込みが発生するのが保証され、μOP命令を用いて複数サイクルで実行される拡張命令に対するアドレスストップをソフトウェアの介在なしに実現することができる。
【0051】
以上、本発明の実施形態について述べてきたが、もちろん本発明はこれに限定されるものではなく、様々な実施形態を採用することが可能である。
【0052】
【発明の効果】
以上説明したように、本発明によれば、既存のハードウェアに対して大規模な変更を加えることなく若干の制御を加えてハードウェアによる命令エミュレーションを実行させることにより複雑な機能の命令セットをサポートする処理装置が提供される。
【図面の簡単な説明】
【図1】従来技術に係る処理装置のハードウェア構成を示すブロック図である。
【図2】図1の処理装置の動作を説明するためのタイムチャートである。
【図3】本発明の第1実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図4】第1実施形態の動作を説明するためのタイムチャートである。
【図5】本発明の第2実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図6】本発明の第3実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図7】第3実施形態の動作を説明するためのタイムチャートである。
【図8】本発明の第4実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図9】第4実施形態の動作を説明するためのタイムチャートである。
【図10】本発明の第5実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図11】第5実施形態の動作を説明するためのタイムチャートである。
【図12】本発明の第6実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図13】第6実施形態の動作を説明するためのタイムチャートである。
【図14】本発明の第7実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図15】本発明の第8実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図16】第8実施形態の動作を説明するためのタイムチャートである。
【図17】本発明の第9実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図18】本発明の第10実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図19】本発明の第11実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【図20】本発明の第12実施形態に係る処理装置のハードウェア構成を示すブロック図である。
【符号の説明】
22…命令コード保持部
24…命令デコーダ
26…実行命令保持部
28…命令実行部
30…μOPデコーダ
32…μOPカウンタ
34…命令選択部
36…命令発行制御部
38…プログラムカウンタ
40…Sync検出部
42…PostSyncフラグ作成部
44…μOPIssue 信号生成回路
46,46′…SNAP−SHOT回路
48…アーキテクチャハードウェア資源
50…μOP実行フラグ作成部
52…TRAP制御部
54…μOPcompleteカウンタ
56…PRETRAP検出回路
58…イリーガル検出回路
60…アドレスストップ用アドレス一致検出回路
62…マスク回路
Claims (11)
- 1サイクルごとの命令発行が可能な基本命令コード又は1サイクルごとの命令発行が不可能な拡張命令コードをフェッチして保持する命令コード保持手段(22)と、
前記命令コード保持手段に保持された基本命令コードをデコードして命令を発行する第1の命令デコーダ(24)と、
前記命令コード保持手段に保持された拡張命令コードをデコードし、複数個の命令の列に分解して、1サイクルごとに1個の命令を発行する第2の命令デコーダ(30)と、
前記第2の命令デコーダによって発行されるべき命令の数をカウントするとともに、拡張命令コードの実行中であることを示す信号を出力するカウンタ(32)と、
基本命令コードの実行中には前記第1の命令デコーダから発行される命令を選択する一方、拡張命令コードの実行中には前記第2の命令デコーダから発行される命令を選択する命令選択手段(34)と、
前記命令選択手段から出力される命令を保持する実行命令保持手段(26)と、
前記実行命令保持手段に保持された命令の内容を実行する命令実行手段(28)と、
を具備し、前記第1の命令デコーダにより既に発行された命令が全て完了したことを検出する手段(40)を更に具備し、前記第2の命令デコーダは、該検出する手段の出力がオンであることを確認してから命令発行を開始する処理装置。 - 前記第2の命令デコーダによる命令発行が開始されたときにオンにされ発行された命令が全て完了したときにオフにされるフラグを作成する手段(42)を更に具備し、前記第1の命令デコーダは該フラグがオンの間は命令発行を行わない、請求項1に記載の処理装置。
- 1サイクルごとの命令発行が可能な基本命令コード又は1サイクルごとの命令発行が不可能な拡張命令コードをフェッチして保持する命令コード保持手段(22)と、
前記命令コード保持手段に保持された基本命令コードをデコードして命令を発行する第1の命令デコーダ(24)と、
前記命令コード保持手段に保持された拡張命令コードをデコードし、複数個の命令の列に分解して、1サイクルごとに1個の命令を発行する第2の命令デコーダ(30)と、
前記第2の命令デコーダによって発行されるべき命令の数をカウントするとともに、拡張命令コードの実行中であることを示す信号を出力するカウンタ(32)と、
基本命令コードの実行中には前記第1の命令デコーダから発行される命令を選択する一方、拡張命令コードの実行中には前記第2の命令デコーダから発行される命令を選択する命令選択手段(34)と、
前記命令選択手段から出力される命令を保持する実行命令保持手段(26)と、
前記実行命令保持手段に保持された命令の内容を実行する命令実行手段(28)と、
を具備し、前記第2の命令デコーダにより命令が連続して発行されていることを示す信号を生成する手段(44)と、該信号に基づいて前記第2の命令デコーダにより発行される全ての命令ごとにハードウェア資源(48)に対するスナップショットを生成する手段(46)と、を更に具備する処理装置。 - 1サイクルごとの命令発行が可能な基本命令コード又は1サイクルごとの命令発行が不可能な拡張命令コードをフェッチして保持する命令コード保持手段(22)と、
前記命令コード保持手段に保持された基本命令コードをデコードして命令を発行する第1の命令デコーダ(24)と、
前記命令コード保持手段に保持された拡張命令コードをデコードし、複数個の命令の列に分解して、1サイクルごとに1個の命令を発行する第2の命令デコーダ(30)と、
前記第2の命令デコーダによって発行されるべき命令の数をカウントするとともに、拡張命令コードの実行中であることを示す信号を出力するカウンタ(32)と、
基本命令コードの実行中には前記第1の命令デコーダから発行される命令を選択する一方、拡張命令コードの実行中には前記第2の命令デコーダから発行される命令を選択する命令選択手段(34)と、
前記命令選択手段から出力される命令を保持する実行命令保持手段(26)と、
前記実行命令保持手段に保持された命令の内容を実行する命令実行手段(28)と、
を具備し、前記第2の命令デコーダにより最初の命令が発行されたときにオンにされ前記第2の命令デコーダにより発行された最後の命令が完了したときにオフにされるフラグを作成する手段(50)を更に具備し、前記第1の命令デコーダは該フラグがオンの間は命令発行を行わない処理装置。 - 1サイクルごとの命令発行が可能な基本命令コード又は1サイクルごとの命令発行が不可能な拡張命令コードをフェッチして保持する命令コード保持手段(22)と、
前記命令コード保持手段に保持された基本命令コードをデコードして命令を発行する第1の命令デコーダ(24)と、
前記命令コード保持手段に保持された拡張命令コードをデコードし、複数個の命令の列に分解して、1サイクルごとに1個の命令を発行する第2の命令デコーダ(30)と、
前記第2の命令デコーダによって発行されるべき命令の数をカウントするとともに、拡張命令コードの実行中であることを示す信号を出力するカウンタ(32)と、
基本命令コードの実行中には前記第1の命令デコーダから発行される命令を選択する一方、拡張命令コードの実行中には前記第2の命令デコーダから発行される命令を選択する命令選択手段(34)と、
前記命令選択手段から出力される命令を保持する実行命令保持手段(26)と、
前記実行命令保持手段に保持された命令の内容を実行する命令実行手段(28)と、
を具備し、前記第2の命令デコーダにより最初の命令が発行されたときにオンにされ前記第2の命令デコーダにより発行された最後の命令が完了したときにオフにされるフラグを作成する手段(50)と、該フラグがオンの間前記命令実行手段からの命令完了信号を監視し該信号がオンとなるごとにカウントを行うカウンタ(52)と、を更に具備し、該カウンタの値が前記第2の命令デコーダにより発行されるべき命令の数に達したときに処理装置を拡張命令コードの実行が完了した状態に移行させる処理装置。 - 1サイクルごとの命令発行が可能な基本命令コード又は1サイクルごとの命令発行が不可能な拡張命令コードをフェッチして保持する命令コード保持手段(22)と、
前記命令コード保持手段に保持された基本命令コードをデコードして命令を発行する第1の命令デコーダ(24)と、
前記命令コード保持手段に保持された拡張命令コードをデコードし、複数個の命令の列に分解して、1サイクルごとに1個の命令を発行する第2の命令デコーダ(30)と、
前記第2の命令デコーダによって発行されるべき命令の数をカウントするとともに、拡張命令コードの実行中であることを示す信号を出力するカウンタ(32)と、
基本命令コードの実行中には前記第1の命令デコーダから発行される命令を選択する一方、拡張命令コードの実行中には前記第2の命令デコーダから発行される命令を選択する命令選択手段(34)と、
前記命令選択手段から出力される命令を保持する実行命令保持手段(26)と、
前記実行命令保持手段に保持された命令の内容を実行する命令実行手段(28)と、
を具備し、前記第1の命令デコーダにより既に発行された命令が全て完了したことを検出する手段(40)を更に具備し、前記第2の命令デコーダは該検出する手段の出力がオンであることを確認してから命令発行を開始し、前記第2の命令デコーダにより最初の命令が発行されるときのみハードウェア資源(48)に対するスナップショットを作成し前記第2の命令デコーダにより後続の命令が発行されるときにはスナップショットを作成しない手段(46′)を更に具備する処理装置。 - 前記第2の命令デコーダによる命令発行ごとにプログラムカウンタ(38)が更新されるのを抑止する手段(36)を更に具備する、請求項1から請求項6ま でのいずれか一項に記載の処理装置。
- 前記第2の命令デコーダにより最初の命令が発行されたときにオンにされ前記第2の命令デコーダにより発行された最後の命令が完了したときにオフにされるフラグを作成する手段(50)と、該フラグがオンの間は非同期の割り込みを抑止する手段(52)と、を更に具備する、請求項1から請求項6までのいずれか一項に記載の処理装置。
- 前記第2の命令デコーダにより最初の命令が発行されるサイクルで拡張命令コードのイリーガルコンディションを検出し、イリーガルである場合に前記第2の命令デコーダによる命令列の発行を抑止すべく割り込みを発生させる手段(58)を更に具備する、請求項1から請求項6までのいずれか一項に記載の処理装置。
- 前記第2の命令デコーダにより発行される命令の実行中には、アドレスストップ用アドレス一致検出回路(60)の出力をマスクし、前記第2の命令デコーダにより発行される最後の命令の実行が完了したときにアドレス一致結果を割り込み制御回路(52)へ通知する手段(62)を更に具備する、請求項1から請求項6までのいずれか一項に記載の処理装置。
- 前記第2の命令デコーダによってデコードされる拡張命令コードが、一つの基本命令で転送可能なデータのサイズの整数倍のサイズを有するデータの転送を指示するブロックデータ転送命令コードである、請求項1から請求項10までのいずれか1項に記載の処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32119599A JP3669884B2 (ja) | 1999-11-11 | 1999-11-11 | 処理装置 |
US09/614,455 US6647488B1 (en) | 1999-11-11 | 2000-07-12 | Processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32119599A JP3669884B2 (ja) | 1999-11-11 | 1999-11-11 | 処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001142691A JP2001142691A (ja) | 2001-05-25 |
JP3669884B2 true JP3669884B2 (ja) | 2005-07-13 |
Family
ID=18129862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32119599A Expired - Fee Related JP3669884B2 (ja) | 1999-11-11 | 1999-11-11 | 処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6647488B1 (ja) |
JP (1) | JP3669884B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1324191A1 (en) * | 2001-12-27 | 2003-07-02 | STMicroelectronics S.r.l. | Processor architecture, related system and method of operation |
US7181596B2 (en) * | 2002-02-12 | 2007-02-20 | Ip-First, Llc | Apparatus and method for extending a microprocessor instruction set |
US7529912B2 (en) * | 2002-02-12 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for instruction-level specification of floating point format |
US7315921B2 (en) * | 2002-02-19 | 2008-01-01 | Ip-First, Llc | Apparatus and method for selective memory attribute control |
US7328328B2 (en) * | 2002-02-19 | 2008-02-05 | Ip-First, Llc | Non-temporal memory reference control mechanism |
US7546446B2 (en) * | 2002-03-08 | 2009-06-09 | Ip-First, Llc | Selective interrupt suppression |
US7395412B2 (en) * | 2002-03-08 | 2008-07-01 | Ip-First, Llc | Apparatus and method for extending data modes in a microprocessor |
US7155598B2 (en) * | 2002-04-02 | 2006-12-26 | Ip-First, Llc | Apparatus and method for conditional instruction execution |
US7373483B2 (en) * | 2002-04-02 | 2008-05-13 | Ip-First, Llc | Mechanism for extending the number of registers in a microprocessor |
US7380103B2 (en) * | 2002-04-02 | 2008-05-27 | Ip-First, Llc | Apparatus and method for selective control of results write back |
US7302551B2 (en) * | 2002-04-02 | 2007-11-27 | Ip-First, Llc | Suppression of store checking |
US7185180B2 (en) * | 2002-04-02 | 2007-02-27 | Ip-First, Llc | Apparatus and method for selective control of condition code write back |
US7380109B2 (en) * | 2002-04-15 | 2008-05-27 | Ip-First, Llc | Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor |
US6954865B2 (en) * | 2002-06-18 | 2005-10-11 | Sun Microsystems, Inc. | Reduced verification complexity and power saving features in a pipelined integrated circuit |
US20080177979A1 (en) * | 2006-03-01 | 2008-07-24 | Gheorghe Stefan | Hardware multi-core processor optimized for object oriented computing |
US20070226454A1 (en) * | 2006-03-01 | 2007-09-27 | Marius Stoian | Highly scalable MIMD machine for java and .net processing |
US7749593B2 (en) * | 2006-07-07 | 2010-07-06 | Certainteed Corporation | Solar heat responsive exterior surface covering |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5233695A (en) * | 1987-03-31 | 1993-08-03 | Kabushiki Kaisha Toshiba | Microprocessor with a reduced size microprogram |
JP2694948B2 (ja) * | 1987-03-31 | 1997-12-24 | 株式会社東芝 | マイクロプログラム処理装置 |
JPH01286030A (ja) * | 1988-05-12 | 1989-11-17 | Nec Corp | 情報処理装置 |
JPH02190930A (ja) * | 1988-12-29 | 1990-07-26 | Internatl Business Mach Corp <Ibm> | ソフトウエア命令実行装置 |
JPH03150633A (ja) * | 1989-11-07 | 1991-06-27 | Matsushita Electric Ind Co Ltd | 命令解読装置 |
JPH04306735A (ja) * | 1991-04-04 | 1992-10-29 | Toshiba Corp | 非同期割込み禁止機構 |
US5630083A (en) * | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
JPH08339298A (ja) | 1995-02-02 | 1996-12-24 | Ricoh Co Ltd | マイクロプロセッサにおける命令追加方法及びそれを用いたマイクロプロセッサ |
JPH09330219A (ja) | 1996-06-12 | 1997-12-22 | Matsushita Electric Ind Co Ltd | 命令解読器切替型プロセッサ及び翻訳装置 |
US6032252A (en) * | 1997-10-28 | 2000-02-29 | Advanced Micro Devices, Inc. | Apparatus and method for efficient loop control in a superscalar microprocessor |
US6105125A (en) * | 1997-11-12 | 2000-08-15 | National Semiconductor Corporation | High speed, scalable microcode based instruction decoder for processors using split microROM access, dynamic generic microinstructions, and microcode with predecoded instruction information |
JP3716604B2 (ja) * | 1998-03-24 | 2005-11-16 | 富士電機機器制御株式会社 | 情報処理装置 |
US6356995B2 (en) * | 1998-07-02 | 2002-03-12 | Picoturbo, Inc. | Microcode scalable processor |
US6430674B1 (en) * | 1998-12-30 | 2002-08-06 | Intel Corporation | Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time |
-
1999
- 1999-11-11 JP JP32119599A patent/JP3669884B2/ja not_active Expired - Fee Related
-
2000
- 2000-07-12 US US09/614,455 patent/US6647488B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6647488B1 (en) | 2003-11-11 |
JP2001142691A (ja) | 2001-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3669884B2 (ja) | 処理装置 | |
US6842895B2 (en) | Single instruction for multiple loops | |
TWI590153B (zh) | 用於多線串處理之方法 | |
JP2003085000A (ja) | トレース情報生成装置およびその方法 | |
US5790843A (en) | System for modifying microprocessor operations independently of the execution unit upon detection of preselected opcodes | |
US20220075626A1 (en) | Processor with instruction concatenation | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
JP2004171573A (ja) | 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ | |
KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
WO2012136975A1 (en) | A data processing apparatus and method for performing vector operations | |
US11520580B2 (en) | Processor with instruction iteration | |
JP3212213B2 (ja) | データ処理装置 | |
US20140089646A1 (en) | Processor with interruptable instruction execution | |
EP0279953B1 (en) | Computer system having mixed macrocode and microcode instruction execution | |
JP5316407B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP2008269390A (ja) | プロセッサ | |
CN108834427B (zh) | 处理向量指令 | |
US7143270B1 (en) | System and method for adding an instruction to an instruction set architecture | |
US20140372733A1 (en) | Processor with inter-execution unit instruction issue | |
GB2230119A (en) | Conditional execution speed-up on synchronizing instructions | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JPH07244588A (ja) | データ処理装置 | |
JP3493768B2 (ja) | データ処理装置 | |
JP2006221664A (ja) | Riscマイクロプロセッサ優先ベクトル割り込みシステム | |
JP3057732B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050215 |
|
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: 20050315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050412 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080422 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100422 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110422 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110422 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120422 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130422 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140422 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |