JP2006522398A - パイプライン型命令プロセッサにおけるバイパスの使用 - Google Patents

パイプライン型命令プロセッサにおけるバイパスの使用 Download PDF

Info

Publication number
JP2006522398A
JP2006522398A JP2006506724A JP2006506724A JP2006522398A JP 2006522398 A JP2006522398 A JP 2006522398A JP 2006506724 A JP2006506724 A JP 2006506724A JP 2006506724 A JP2006506724 A JP 2006506724A JP 2006522398 A JP2006522398 A JP 2006522398A
Authority
JP
Japan
Prior art keywords
register
result
instruction
command
unit
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.)
Withdrawn
Application number
JP2006506724A
Other languages
English (en)
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2006522398A publication Critical patent/JP2006522398A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

命令処理装置は、命令からのコマンドを実行するための機能ユニットを備えるパイプラインステージを有している。第1のレジスタユニットは、機能ユニットに結合され、コマンドがパイプラインステージのうちの第1のパイプラインステージに達した際にコマンドの実行の結果を記憶するとともに、機能ユニットに対してバイパスオペランドデータを供給する。レジスタファイルは、機能ユニットに結合され、第1のパイプラインステージよりも下流側にある第2のパイプラインステージにコマンドが達した際に結果を記憶するとともに、機能ユニットに対してオペランドデータを供給する。無効回路は、命令の制御下でレジスタファイル内の結果の記憶を選択的に無効にするように結合されている。

Description

本発明は、パイプライン型機能ユニットを有する命令処理装置に関する。
データ従属性は、命令プロセッサのスループットに関して著しい制限を課す。命令プロセッサは、入力オペランドを必要とする連続的な演算を実行するとともに、結果を生成する。オペランドは、一般に、レジスタファイル内に格納されるとともに、このレジスタファイルから、命令中のコマンドからのオペランドアドレスを使用して検索される。この結果は、コマンドの結果アドレスを使用してレジスタファイル内に記憶される。そのオペランドがレジスタファイルから検索されると、オペランドが先の命令によってレジスタファイル内に格納されるまでコマンドを実行することができない。したがって、コマンド間で最小限の遅れが必要となる。これにより、プロセッサの効率が低下する。VLIWプロセッサにおいては、例えば、十分なオペランドを利用できないことから、幾つかの命令サイクルにおいて、機能ユニットのためにノーオペレーションがスケジュールされなければならない場合がある。
米国特許第5,805,852号は、結果が生成される機能ユニットのパイプラインステージとオペランドが使用されるパイプラインステージと間のバイパスによりVLIWプロセッサを効率良くすることができる方法について記載している。このバイパスにより、結果をレジスタファイル内に記憶し且つそれをオペランドとしてレジスタファイルから検索するために必要な遅れを伴うことなく、その後の命令のためのオペランドとして結果を利用することができるようになる。
パイプライン演算中、機能ユニットは、最初に、パイプラインの実行ステージで結果を生成するとともに、その結果を実行ステージの後にあるパイプラインレジスタ内に記憶する。その後、機能ユニットは、結果がレジスタファイル内に記憶されるまで、結果をパイプラインを介して伝える。新たなコマンドが機能ユニットのうちの1つのパイプラインに入ると、そのオペランドアドレスは、複数の機能ユニットのうちの対応する機能ユニットのパイプライン中に依然としてある結果のアドレスと比較される。アドレス同士が一致すると、レジスタファイルからではなく、関連する機能ユニットのパイプラインステージからオペランドが取得される。
近年、レジスタファイルのサイズが増大する傾向にある。大きなレジスタファイルは、再使用のためにレジスタが利用可能になるまで待つ必要が滅多になく、あるいは、オペランドをメモリに流す必要が滅多にないことから、高速実行できるという利点を有している。大きなレジスタファイルは、電力消費量の増大をもたらす。今日、レジスタファイルは、多くの場合、VLIWプロセッサにおいて電力消費量が大きい。
特に、本発明の目的は、命令処理装置のレジスタファイルに起因する電力消費量を低減することである。
本発明に係る命令処理装置が請求項1に記載されている。本発明は、バイパス経路を介してのみ結果が使用されるため、レジスタファイルから結果を検索する必要がない場合にレジスタファイルに結果を書き込まないことにより電力を節約できるという所見に基づいている。命令の実行前、例えば命令のコンパイル中、演算の結果がバイパス以外を介して使用されないようにすることが可能であるかどうかを決定することができる。可能である場合には、結果のバイパスで十分であり、レジスタファイル内に結果を記憶する必要がない。この場合、レジスタファイル内への記憶を無効にすることにより、電力消費量が低減される。
一実施形態において、命令処理装置は、結果を記憶するためのレジスタを選択するためおよび/またはオペランドデータを検索するために、コマンドからのレジスタアドレスを用いて選択的にアドレス可能な複数のバイパスレジスタを有している。したがって、レジスタファイルに対する頻繁な書き込みを回避することが可能になる。一般に、命令サイクルの持続時間を遅らせないように、バイパスレジスタはレジスタファイル内のレジスタほど離れていない。結果は、それがレジスタファイルに書き込まれる前に、パイプラインステージのバイパスレジスタに書き込まれる。
一実施形態においては、レジスタファイル内に結果を書き込むための回路に対するクロック信号の供給を抑制することにより、結果の書き込みが無効にされる。レジスタファイルが多くの書き込みポートを有している場合、書き込みは、命令の制御下で選択される所定の書き込みポートで無効にされる。
好ましくは、バイパスは、コマンドからの結果レジスタアドレスと後のコマンドのオペランドレジスタアドレスとを比較してアドレスが一致する場合にバイパス経路からの結果を代用するバイパス制御ユニットによって制御される。したがって、バイパスされた結果のために特定のアドレスは必要ない。他の実施形態において、命令は、異なるバイパスレジスタ同士の間で選択するためのアドレスを含んでいる。
一実施形態においては、バイパスオペランドデータを供給するためにレジスタの連鎖が設けられている。結果は、連続する命令サイクルにおいて、上記連鎖中のバイパスレジスタを介してシフトする。上記連鎖は、第2のレジスタユニットへの結果の書き込みに必要な大きさを超えて延びている。レジスタファイルへ結果を書き込むための電力消費を避けることが更に可能となる。上記連鎖中のレジスタからのバイパスデータは、オペランドアドレスと結果レジスタアドレスとを比較することにより、あるいは、命令からの明示的なレジスタ選択情報を使用することにより選択されても良い。後者によれば、バイパス制御回路が簡単になる。
本発明は、並行して動作する複数の機能ユニットを有するVLIWプロセッサ等のプロセッサに対して有利に適用できる。そのようなプロセッサは、より多くの機能ユニットが並行して動作するため、益々大きなレジスタファイルを必要とする。レジスタファイルへの書き込みを抑制することにより、電力消費量がかなり節約される。各バイパスレジスタが複数の機能ユニットのうちの対応する1つの機能ユニットのみからの結果を記憶するバイパスレジスタ群が設けられることが好ましい。全てのレジスタ群のレジスタは、オペランドを検索するために各コマンドからアドレス可能である
また、本発明は、プログラムをコンパイルする方法に関する。この方法において、レジスタファイルへの書き込みを抑制するための状態が検出され、その後、そのような書き込みを抑制するための情報が命令中に加えられる。検出は、バイパス経路を介して命令の結果を送ることができるかどうか(これは、主に、生成直後に十分に使用される事柄である)、また、これらの結果を後に使用できないようにすることが可能か(例えば、命令を走査して、結果を含むレジスタが上書きされる前またはプログラムの終了前に任意のその後の到達可能な命令中で結果が再び使用されないかどうかを検出することにより)どうかを検査することを含んでいる。そのような方法を実行するためのコンピュータプログラムは、磁気ディスクや光ディスク、半導体メモリモジュール、ダウンロード信号等の任意のコンピュータプログラムプロダクトによって送られても良い。
以下、図面を参照しながら、これらの目的、他の目的、本発明の有利な態様について説明する。
図1は、簡単なパイプライン型VLIWプロセッサの一例を示している。このプロセッサは、命令メモリ10と、プログラムカウンタ10aと、命令レジスタ11と、実行ユニット12と、レジスタファイル14と、バイパス制御ユニット16とを有している。一例として、2つの実行ユニット12が並列に示されているが、実際には、更に多くの実行ユニットが使用されても良い。各実行ユニットは、一群の機能ユニット(図示せず)を有していても良く、あるいは、それ自体が1つの機能ユニットであっても良い。命令レジスタ11は、1つの命令からの複数のコマンドのための出力部を有し、各コマンドは、複数の実行ユニット12のうちの対応する1つの実行ユニットのためのものである。各コマンドは、演算コード(オプコード)のための部分と、オペランドレジスタアドレスのための部分と、結果レジスタアドレスのための部分とを含んでいる。コマンドのオペランドレジスタアドレス部分のための命令レジスタ11の出力部は、レジスタファイル14の読み取りポートに対して結合されるとともに、バイパス制御ユニット16のオペランドレジスタアドレス入力部に対して結合されている。通常、各コマンドは、2つのオペランドアドレスを含んでいるが、明確のため、1つのオペランド(アドレス)のためだけの接続が示されている。乗加算等の演算のためには、3つ以上のオペランドも可能である。
プロセッサは、パイプラインレジスタによって分離される連続する複数のパイプラインステージに分割される。各実行ユニット12毎に、プロセッサは、命令レジスタ11と実行ユニット12との間に第1ステージパイプラインレジスタ120,122,124およびマルチプレクサ123を有している。第1ステージパイプラインレジスタのうちの第1のパイプラインレジスタ124は、実行ユニット12のためのコマンドの演算コード部分を記憶する。第1ステージパイプラインレジスタのうちの第2のパイプラインレジスタ122は、実行ユニット12のためのコマンドのオペランドを記憶する。第1ステージパイプラインレジスタのうちの第3のパイプラインレジスタ120は、実行ユニット12のためのコマンドの結果アドレスおよび書き込み制御情報を記憶する。第1ステージパイプラインレジスタのうちの第1のパイプラインレジスタ124は、実行ユニット12のためのコマンドの演算コード部分のための命令レジスタ11の出力部に結合された入力部を有している。第1ステージパイプラインレジスタのうちの第3のパイプラインレジスタ120は、実行ユニット12のためのコマンドの結果アドレス部分のための命令レジスタ11の出力部に結合された入力部を有している。
第1ステージパイプラインレジスタのうちの第2のパイプラインレジスタ122は、実行ユニット12のためのコマンドのオペランドアドレス部分が供給されるレジスタファイル14の読み取りポートに対しマルチプレクサ123を介して結合された入力部を有している。基本的には、実行ユニットのためのコマンドの複数のオペランドのうちの対応する各オペランド毎に同様の接続を有する第1ステージパイプラインレジスタのうちの対応する第2のパイプラインレジスタ122および対応するマルチプレクサ123が存在するが、明確のため、1つのマルチプレクサ123および第1ステージパイプラインレジスタのうちの1つの第2のパイプラインレジスタ122だけが示されている。
第2ステージパイプラインレジスタ126,128は、実行ユニット12の後側に設けられている。第2ステージパイプラインレジスタのうちの第1のパイプラインレジスタ126は、コマンドの結果レジスタアドレス部分および書き込み制御情報を受けるために、第1ステージパイプラインレジスタのうちの第3のパイプラインレジスタ124に対して結合されている。第2ステージパイプラインレジスタのうちの第2のパイプラインレジスタ128は、実行ユニット12の結果出力部に対して結合されている。第2ステージパイプラインレジスタのうちの第1および第2のパイプラインレジスタ126,128は、結果および対応する結果レジスタアドレス並びに書き込み制御情報を供給するため、レジスタファイルの14の書き込みポートに対して結合されている。
マルチプレクサ123はそれぞれ、レジスタファイル14の読み取りポートからアドレス指定されたオペランドを受けるように且つ第2ステージバイパスレジスタのうちの第2のレジスタ128からバイパス経路15を介してバイパスオペランドを受けるように結合された入力部を有している。第1ステージレジスタのうちの第3のレジスタ124および第2ステージレジスタのうちの第1のレジスタ126は、オペランドレジスタアドレスおよび結果アドレスをバイパス制御ユニット16に対してそれぞれ送る。バイパス制御ユニット16は、マルチプレクサ123を制御して、それらの入力のうちのどれが第1ステージパイプラインレジスタのうちの第2のパイプラインレジスタ122に対して結合されるのかを決定する。
演算において、プログラムカウンタ10aは、一連の命令アドレスを命令メモリ10に対して供給する。各命令アドレスに応答して、命令メモリは、対応する命令を命令レジスタ11に対して供給する。各命令は、複数の実行ユニット12のためのコマンドを含んでいる。コマンドは、コマンドの1または複数のオペランドのオペランドレジスタアドレスを含んでいても良い。オペランドレジスタアドレスは、レジスタファイル14の読み取りポートに対して供給される。応答時、レジスタファイル14は、アドレス指定されたオペランドを読み取りポートから供給する。通常、オペランドは、対応するコマンドの(随意的にデコードされた)演算コード部分と共に関連する実行ユニット12に対して供給される。実行ユニット12は、オペランドを使用してコマンドを実行するとともに、1つの結果を生成する。例えば「ADD」コマンドの場合、2つのオペランドが使用され、それらの合計が結果として生成される。その結果は、コマンドからの結果レジスタアドレスと共に、レジスタファイル14の書き込みポートに対して供給される。
コマンド実行はパイプラインで送られる。これにより、ほぼ全ての命令サイクルで新たな命令が始まるとともに、命令の実行の連続するステップが、連続する命令サイクルで実行される。例えば、第1の命令サイクルにおいては、命令メモリがアドレス指定され、第2の命令サイクルにおいては、オペランドがフェッチされ(取り出され)、第3の命令サイクルにおいては、コマンドが実行ユニット12によって適切に実行され、その後の命令サイクルでは、結果がレジスタファイル14に対して書き込まれる。このように、命令の実行は、多くの命令サイクルを要する。連続する各命令サイクルで命令を実行するプロセッサの対応する部分は、パイプラインステージと呼ばれる。特定の命令サイクルにおいて、異なるパイプラインステージは、異なる実行ステージにおいて、異なる命令を処理する。処理下で異なる命令の情報を分けるため、パイプラインレジスタによって異なるパイプランステージが分けられる。命令サイクルは、先行するパイプラインステージから各命令サイクルの最後のパイプラインレジスタへの情報の横取りを制御するクロック(図示せず)によって表わされる。
パイプライン型プロセッサはそれ自体知られている。言うまでも無く、図面は、1つの簡単な実施形態を示しているにすぎない。本発明から逸脱することなく、様々なパイプラインステージにわたって様々なタスクが様々に分配される多くの他のパイプライン型アーキテクチャが使用されても良く、また、更なるパイプラインステージが加えられても良い。
バイパス経路15は、命令のオペランドがレジスタファイル14内に格納されるまで命令の実行を伴って待つ必要性を減少させるのに役立つ。第1の命令が第2の命令によりオペランドとして使用される結果を生成する場合、その結果は、当該結果がレジスタファイル14に対して書き込まれる前にバイパス経路15を介して実行ユニット12に送ることができる。バイパス制御ユニット16は、第2の命令のオペランドレジスタアドレスと、第1の命令の結果レジスタアドレスとを比較する。これらが一致すると、バイパス制御ユニット16は、マルチプレクサ123を制御して、レジスタファイル14からの結果の代わりにパイプラインレジスタ122からの結果を送る。これにより、第2の命令をより早く実行することができるようになる。
バイパスそれ自体は知られている。多くの形式のバイパスが存在し、また、図1に示される形式が単なる一例にすぎず、本発明がこの一例に限定されないことは言うまでもない。例えば、バイパスのために使用される結果は、図示のパイプラインステージとは異なるパイプラインステージから来ても良く(例えば、実行ユニット12から第1ステージパイプラインレジスタ122に対して直接に送られても良く、あるいは、後のステージ(図示せず)から来ても良い)、あるいは、複数のパイプラインステージから来ても良い。これに伴って、結果レジスタアドレスが、図示のステージとは異なるステージから来ても良い。そのようなアドレスまたは比較結果は、同様に比較をパイプラインで送るため、バイパス制御ユニット16内に記憶されても良い。更に、バイパスが使用されるべきか否かを示すためのコードが命令中に存在していても良い。これにより、命令がレジスタファイル14からの「古い」値を使用しなければならない場合には、バイパスを避けることができる。
本発明においては、命令の制御下で、レジスタファイル14に対する結果のライトバックを無効にすることができる。これは、結果がバイパス経路15を介してのみ使用されレジスタファイル14から使用されない場合に行なわれる。命令のプログラムのコンパイル中、(適切な場合には、分岐命令を介して)追随可能な各実行経路毎に結果を使用するプログラムの保証された最後の命令が決定される。実際には、実行中においては、幾つかの実行経路に決して達し得ないが、これを幾つかの経路におけるコンパイル時に判明できない場合には、その経路が追随する場合に結果を使用する最後の命令が決定されなければならないことは言うまでもない。決定された任意の最後の命令が、それがバイパスを介して結果を受けることができるという結果を生成する命令の後直ぐに実行されるようにスケジュールされる場合、コンパイラは、結果を生成する命令に対して無効情報を加える。これは、命令をレジスタファイル14内に記憶する必要がないことを示している。無効情報は、レジスタファイル14内の結果の記憶を無効にするため、結果レジスタアドレスと共にパイプラインを伝わってレジスタファイル14へと送られる。
図2は、複数の読み取りポート28を有するマルチポートレジスタ20を備えるマルチポートレジスタファイルの一例を示している。結果データおよびレジスタ選択信号をそれぞれ供給するために、マルチポートレジスタ20にはデータ供給回路22およびアドレス指定回路24が結合されている。データ供給回路22は、結果のための入力部RES1,RES2を有している。アドレス指定回路24は、結果レジスタアドレスのための入力部ADDR1,ADDR2を有している。クロックイネーブル回路26は、クロック入力部CLKとデータ供給回路22およびアドレス指定回路24のクロック端子との間に結合されている。クロックイネーブル回路26は、無効入力DIS1,DIS2の制御下でデータ供給回路22およびアドレス指定回路24へのクロック信号の供給を無効にするために使用される。
動作時、クロックイネーブル回路26からのクロックパルスにより、データ供給回路22およびアドレス指定回路24は、マルチポートレジスタ20に対する新たなデータおよび選択信号の供給をドライブする。クロック信号の供給を選択的に無効にして、プログラム中の結果を更に使用しないことが決定されたということに関する結果を供給するポートRES1,ADDR1,RES2,ADDR2からのデータおよびアドレスを使用するために、命令からの情報が無効入力DIS1,DIS2に対して供給される。その結果、データ供給回路22およびアドレス指定回路24による電力消費量が減少される。
マルチポートレジスタファイルがそれ自体知られていることは言うまでもない。本発明から逸脱することなく、多くの他のアーキテクチャが使用されても良い。本発明において、レジスタファイルは、レジスタファイルの選択された部分を無効にするために設けられている。データ供給回路22およびアドレス指定回路の両方を無効にする代わりに、これらの回路の一方だけが無効にされても良く、および/または、レジスタ内容を更新するべく駆動される際に電力を消費する任意の他の回路が無効にされても良い。
図1は、結果のための無効情報が、例えばコマンドからの更なるビットの形態で、コマンドの結果レジスタアドレスと共に送られる態様を示している。これにより、結果の書き込みを無効にするために、プロセッサの変更は最小限で済む。しかしながら、選択的な無効を示すために、多くの他の解決策が存在することは言うまでもない。例えば無効が許容される命令中における1または複数のコマンドの位置をエンコードすることにより、例えば、個々のコマンドのレベルではなく、命令のレベルで、情報が含められても良い。実際には、関連するコマンドと同じ命令中に無効情報が含められる必要はない。その代わり、コマンドに対して所定のパイプライン遅延で実行されることが分かっている先の命令または後の命令中に無効情報が含められても良い。同様に、無効にするための情報は、レジスタファイル14の書き込みポートの無効入力に対する最終的な供給のためにそれがパイプラインの任意の場所でデコードされても良いコマンドの演算コード中に含められても良い。更なる他の実施形態においては、無効を制御するための情報がオペランドレジスタから供給されても良い。この実施形態において、アドレス指定されたオペランドレジスタからのデータは、無効を制御するため、パイプラインステージに沿ってレジスタファイル14へと送られる。
各実行ユニット毎に1つの結果レジスタ126しか示されていないが、本発明がそのような1つのレジスタに限定されないことは言うまでもない。
図3は、複数の結果レジスタ32を有するプロセッサの一部を示している。実行ユニット12においては、2つのオペランド入力部が示されている。実行ユニット12の結果出力部は、多数の更なる結果レジスタ32と並列の結果レジスタ128に対して結合されている。結果レジスタ128は、パイプラインの更に下流側の回路(図示せず)に対して結合されている。レジスタ選択ユニット30は、第1ステージ結果レジスタアドレスレジスタ124に結合された入力部と、更なる結果レジスタ32の選択入力部に結合された選択出力部とを有している。更なる結果レジスタ128の出力部は、オペランド選択ユニット34の入力部に結合されており、オペランド選択ユニット34は、マルチプレクサ123に対して結合された出力部を有している。
動作時、プロセッサは、選択された結果を、複数の更なるレジスタ32のうちの選択されたレジスタ内に記憶する。第1ステージ結果レジスタアドレスレジスタ120は、レジスタファイル14への書き込みを無効にするために、結果レジスタアドレスおよび無効情報を受ける。レジスタファイル14への書き込みが無効にされることを無効情報が示すと、レジスタ選択ユニット30が使用可能にされる。この場合、レジスタ選択ユニット30は、結果レジスタアドレスの一部を使用して、複数の更なる結果レジスタ32のうちの1つを選択する。実行ユニット12からの結果は、選択された更なる結果レジスタ32へ書き込まれる。その後、更なる結果レジスタ32からの結果をオペランドとして使用しなければならないことを示すオペランドアドレスが受けられると、バイパス制御ユニット16は、オペランド選択ユニット34に対して信号を送り、オペランドアドレスに基づいて、複数の更なる結果レジスタ32のうちの1つの出力を選択する。その後、結果は、オペランド選択ユニット34からマルチプレクサ123を介してオペランドとして実行ユニット12へ送られる。
更なる結果レジスタ32の数がレジスタファイル14内のレジスタの数よりも十分少ないことは言うまでもない。これにより、大きな時間的不利益を伴うことなく、これらの更なる結果レジスタ32を、実行ユニット12を有するパイプラインステージの最後に含めることができる。したがって、通常において結果がレジスタファイル14内に記憶されるパイプラインステージよりも先のパイプラインステージに限られた数の結果を記憶することができる。これらの結果は、レジスタファイル14から利用可能となるかなり前に、更なる結果レジスタ32からオペランドとして利用可能となる。
また、図3が更なる結果レジスタ32の使用方法の単なる一例にすぎないことは言うまでもない。多くの代案を考えることができる。例えば、更なる結果レジスタ32は、その後のパイプラインステージすなわち次の結果レジスタ128中に含められても良く、あるいは、複数のパイプラインステージ中に含められても良い。前者は、例えば更なる結果レジスタを実行ステージに含ませることにより命令サイクルの持続時間の延長が必要になる場合であっても良い。異なる複数の実行ユニット12が同時に使用される場合には、更なる結果レジスタ32の異なる組が異なるパイプラインステージに含められても良い。他の例として、結果レジスタ32の選択が異なって行なわれても良い。例えば、更なる結果レジスタを選択するために、専用のアドレス部分が命令中に含められても良く、あるいは、逆に、更なるレジスタ32を選択するために、レジスタファイル14の物理レジスタをアドレス指定しないレジスタアドレス値が使用されても良い。他の例として、更なる結果レジスタ32を使用するのか否かを選択するために、モードレジスタが使用されても良い。また、選択情報は、結果レジスタアドレスフィールドから来る代わりに、コマンドの演算コードの一部であっても良い。
同様に、レジスタファイル14からのデータの代わりに更なる結果レジスタ32からの結果を使用するべき時期を決定することに関しては、様々な解決策が考えられる。一実施形態において、オペランドアドレスは、更なる結果レジスタ32からの結果を使用すべきことを示すための特定の指示を含んでいる。
図4は、アドレスマッチング(アドレスの一致)が使用される他の実施形態を示している。更なる結果レジスタ32のそれぞれにおいては、更なる結果レジスタ32内に記憶された結果のための結果レジスタアドレスを記憶する対応するレジスタアドレスレジスタ40が設けられている。バイパス制御ユニットは、オペランドレジスタアドレスと、レジスタアドレスレジスタからの結果レジスタアドレスとを比較する。これらが一致すると、更なる結果レジスタ32からの結果をレジスタファイル14からのオペランドデータの代わりに用いるため、バイパス制御ユニット16は、オペランド選択ユニット34およびマルチプレクサ123(図3に示されている)に信号を送る。また、バイパス制御ユニット16は、パイプラインレジスタ124からの結果レジスタアドレスと、レジスタアドレスレジスタ40からの記憶された結果レジスタアドレスとを比較し、レジスタアドレスレジスタ40がコマンドで特定されたレジスタアドレスを含んでいる場合にはレジスタアドレスレジスタ40をリセットする。したがって、そのレジスタアドレスのためにレジスタファイル14からの結果を後に使用できる(無論、新たな結果が後に更なる結果レジスタ32内に記憶される場合を除く)。更なる結果レジスタ32がレジスタアドレスレジスタ40と共に簡単な連想メモリの一実施形態を形成することは言うまでもない。代案として、他のタイプの連想メモリが使用されても良い。
以上の説明では、特定の結果を記憶するために更なる結果レジスタ32のうちのどれを使用すべきかを示すための情報を命令が含んでいることを前提としてきたが、これに代えて、特定の結果およびその結果レジスタアドレスを更なる結果レジスタ32のうちの1つおよびその対応する更なる結果レジスタアドレスレジスタ40に記憶しなければならないこと、また、随意的に、幾つの命令サイクルに関して結果を記憶しなければならない或いは結果を何回読み取らなければならないことを示すだけで十分であることは言うまでもない。この場合、更なる結果レジスタ32のうちの任意の空いている結果レジスタに対して結果を割り当てるために、自動レジスタ割り当てユニットが設けられても良い(更なるレジスタは、所定数の命令サイクル(あるいは、随意的に、プログラム数)後に空きレジスタとして記録されても良い)。有益ではあるが、更なる結果レジスタアドレスレジスタ40は、このために必ずしも必要ではない。すなわち、コンパイル時に、更なる結果レジスタ32のうちのどれが使用されるのかを予測することができるとともに、その更なる結果レジスタ32のための選択アドレスがオペランド仕様中に含まれていても良い。
明確のため、図3および図4には、1つの実行ユニット12だけしか示されていないが、実際には、命令からの様々なコマンドを実行するために複数の実行ユニット12が同時に使用されても良いことは言うまでもない。この場合、各実行ユニット12には、それ自体の更なる結果レジスタ32の組が設けられても良い。バイパス制御ユニット16は、設定された結果がレジスタファイル14からのオペランドデータの代わりに用いられるかどうか、また、設定された結果のどれから用いられるのかを制御する。代案として、更なる結果レジスタ32の共有の組が使用されても良い。この場合、命令は、あるとすれば、実行ユニット12のうちのどれが更なる結果レジスタ32のうちのどれに対して書き込まれなければならない(また、必要に応じて、その対応する結果レジスタアドレスレジスタ40に対して書き込まれなければならない)のかを示すための情報を含んでいなければならない。
更なる結果レジスタへの書き込みにより、レジスタファイル14への書き込みを不要にできることは言うまでもない。結果を更なる結果レジスタ32へ選択的に書き込み且つレジスタファイル14への結果の書き込みを無効にするために命令中に情報を含ませることにより、全体の電力消費量を低減することができる。無論、更なる結果レジスタへの書き込みも電力を消費するが、これらの更なる結果レジスタ32の数はレジスタファイル14におけるそれよりも少ないため、電力消費量は少ない。したがって、深刻な電力消費量の不利益を伴うことなく、レジスタファイル14のサイズを拡大することができる。図3に示されるように、レジスタファイル14への書き込みを無効にする信号を送り且つ更なる結果レジスタ32への書き込みを可能にするために同じ信号が使用される。これは、命令サイズを小さくするのに役立つ。これにより、結果は、更なる結果レジスタ32またはレジスタファイル14のいずれかに書き込まれる。しかしながら、レジスタファイル14への書き込みを無効にし且つ更なる結果レジスタ32を選択するために、設定可能な制御情報を単独で使用することもできる。したがって、プログラム制御下で、更なる結果レジスタからの結果のバイパスを、特定のプログラムにおいて必要なように、レジスタファイル14に記憶している長い用語または長くない用語と選択的に組み合わせることができる。
図5は、プロセッサの他の実施形態の一部を示している。図1の実施形態と比べて、図5の実施形態においては、結果レジスタアドレスレジスタ126および結果レジスタ128よりも下流側に、多くの更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52が加えられている。更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52は、バイパス制御ユニット16に結合された出力部を有している。動作時、コマンドの実行の結果およびこれらの結果の結果レジスタアドレスは、書き込みが可能な場合にこれらをレジスタファイル14から検索できる命令サイクル後であっても、パイプラインによって伝えられる。バイパス制御ユニット16は、更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52からの結果が使用されるのか或いはレジスタファイル14からの結果が使用されるのかどうかを制御する。これは、レジスタオペランドおよび/または結果アドレス比較に基づいて、あるいは、命令からの明示的な情報を使用して行なわれても良い。更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52を使用すると、レジスタファイル14への結果の書き込みを、その結果が生成後に所定数の命令サイクル内でのみ必要とされる際に、無効にすることができる。この場合、レジスタファイル14への結果の書き込みを無効にするために情報が命令に加えられる。したがって、レジスタファイル14に書き込むための電力消費量を節約できる。
一実施形態において、更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52内のレジスタアドレスおよび結果の記憶は、その結果がレジスタファイル14に記憶される場合には無効にされる。したがって、レジスタファイル14内の記憶が無効にされない場合、電力が節約される。この実施形態においては、無効情報のための追加のレジスタが、更なる結果レジスタアドレスレジスタ50と並行しても設けられる。無効情報は、更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52に結合される。レジスタファイル14への結果の書き込みが無効にされなかったことを無効情報が示す場合、無効情報は、更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52の内容の更新を無効にするために使用される。この場合、無効情報は、更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52からではなくレジスタファイル14からオペランドデータを取り出さなければならないことをバイパス制御ユニットに対して示すために使用されても良い。
更なる結果レジスタアドレスレジスタ50および更なる結果レジスタ52は、直列に2つだけではなく、任意の数だけ直列に設けられていても良いことは言うまでもない。また、実行ユニットの後に付加的なパイプラインステージが存在する場合、一方では、実行ユニットに続く結果レジスタアドレスレジスタ126と結果レジスタ128との間のパイプライン中に、他方では、更なる結果レジスタアドレスレジスタ50と更なる結果レジスタ52との間のパイプライン中に、追加の結果レジスタアドレスレジスタ50および結果レジスタ52が存在していても良いことは言うまでもない。バイパス制御ユニット16は、バイパスのため、同様に、これらのステージからの結果を使用する。
パイプライン型プロセッサを示している。 レジスタファイルの一部を示している。 パイプライン型プロセッサの一部を示している。 更なるパイプライン型プロセッサの一部を示している。 更なるパイプライン型プロセッサの一部を示している。
符号の説明
10 命令メモリ
10a プログラムカウンタ
11 命令レジスタ
12 実行ユニット
14 レジスタファイル
16 バイパス制御ユニット
20 マルチポートレジスタ
22 データ供給回路
24 アドレス指定回路
26 クロックイネーブル回路
30 レジスタ選択ユニット
32 結果レジスタ
34 オペランド選択ユニット
40 レジスタアドレスレジスタ
50 結果レジスタアドレスレジスタ
52 結果レジスタ
120、122、124 第1ステージパイプラインレジスタ
126、128 第2ステージパイプラインレジスタ

Claims (15)

  1. 連続する命令を発行するための命令発行ユニットと、
    前記命令発行ユニットに結合された複数のパイプラインステージであって、そのうちの少なくとも1つが、前記命令からのコマンドを実行するための機能ユニットを備えている複数のパイプラインステージと、
    前記機能ユニットに結合され、前記コマンドが前記パイプラインステージのうちの第1のパイプラインステージに達した際に前記コマンドの実行の結果を格納するとともに、前記第1のパイプラインステージに先立つ1つのパイプラインステージにおける回路に対してバイパスオペランドデータを供給する第1のレジスタユニットと、
    前記機能ユニットに結合され、前記第1のパイプラインステージよりも下流側にある第2のパイプラインステージに前記コマンドが達した際に前記結果を格納するとともに、前記機能ユニットに対してオペランドデータを供給する第2のレジスタユニットと、
    前記命令の制御下で前記第2のレジスタユニット内の結果の格納を選択的に無効にするように結合された無効回路と、
    を備えている、命令処理装置。
  2. 前記第1および第2のレジスタユニットはそれぞれ、複数のレジスタおよびアドレス指定回路を備え、前記アドレス指定回路は、前記コマンドからのレジスタアドレスを用いて選択的にアドレス指定するとともに、前記結果を格納するためのレジスタを選択しおよび/またはオペランドデータを検索する、請求項1に記載の命令処理装置。
  3. 前記第1のレジスタユニットは、前記第2のレジスタユニットよりも少ないレジスタを有している、請求項2に記載の命令処理装置。
  4. 前記無効回路は、前記第2のレジスタユニットの書き込みポートから前記第2のレジスタユニットのレジスタへ前記結果を書き込むための回路に対するクロック信号の供給を抑えるようになっている請求項2に記載の命令処理装置。
  5. 命令からの各コマンドを並行して実行するようにアレンジされた複数の機能ユニットを備え、前記第2のレジスタユニットは、前記機能ユニットのうちの対応する機能ユニットからの前記結果を書き込むための複数の書き込みポートを有し、前記無効回路は、前記命令の制御下で選択される所定の書き込みポートでの書き込みを無効にするようにアレンジされた、請求項3に記載の命令処理装置。
  6. 前記コマンドのうちの第1のコマンドからの前記結果のための結果レジスタアドレスと、前記コマンドのうちの第1のコマンドに直接的または間接的に続く前記コマンドのうちの第2のコマンドからのオペランドレジスタアドレスとを比較するとともに、アドレスが一致する場合には、前記結果を含む前記第1の前記レジスタユニットの前記レジスタからの結果を、前記第2のレジスタユニットからのオペランドの代わりに用いるようになっているバイパス制御ユニットを備えている、請求項2に記載の命令処理装置。
  7. 前記第1のレジスタユニットは、バイパスオペランドデータを供給するためのレジスタの連鎖を備え、このレジスタの連鎖は、前記ステージのうちの第1のステージの結果出力部に結合された入力部を有する1つのシフトレジスタとして設けられるとともに、連続的な命令サイクルにおいて連続的なシフトレジスタステージを介して結果をシフトするように動作し、少なくとも前記第2のレジスタユニット内の結果の記憶が無効にされる場合、前記連鎖は、前記第2のレジスタユニットへの結果の書き込みに必要な大きさを超えて延びる、請求項1に記載の命令処理装置。
  8. 前記連鎖中のレジスタは、コマンドからアドレス可能である、請求項7に記載の命令処理装置。
  9. 命令からの各コマンドを並行して実行するようにアレンジされている複数の機能ユニットを備え、前記第1のレジスタユニットは対応するレジスタ群を備え、レジスタ群の各レジスタは、複数の機能ユニットのうちの対応する1つの機能ユニットのみからの結果を格納し、全てのレジスタ群のレジスタは、オペランドを検索するためにコマンドからアドレス可能である、請求項2に記載の命令処理装置。
  10. 命令プロセッサにおいて命令のプログラムを実行する方法であって、
    命令からのコマンドの実行をパイプラインで送るステップと、
    命令が無い場合には、コマンドの結果をレジスタファイルに格納するステップと、
    命令が無い場合には、コマンドのレジスタソースオペランドをレジスタファイルから検索するステップと、
    レジスタファイルからの少なくとも1つのレジスタソースオペランドの代わりに、バイパスオペランドとしてパイプラインステージからバイパスされた第1の結果を選択的に使用するステップと、
    プログラム制御下で、レジスタファイルに対する前記第1の結果の書き込みを選択的に抑制するステップと、
    を備える方法。
  11. パイプライン送り中にレジスタファイルよりも先に結果を受けるように配置された複数のバイパスレジスタのうちのアドレス可能なバイパスレジスタへ前記第1の結果を書き込むステップを備える、請求項10に記載の方法。
  12. 請求項10または11に記載の方法を実施する命令プロセッサのための命令を備える、コンピュータプログラムプロダクト。
  13. 命令プロセッサのための命令のプログラムをコンパイルする方法であって、
    一連の命令を生成するステップと、
    前記命令のうちの第1の命令によって生成される結果を検出する第1の検出ステップであって、前記結果がオペランドとして前記命令のうちの第2の命令により使用される第1の検出ステップと、
    レジスタファイルから前記結果を検索することなく、前記命令のうちの全ての第2の命令のためにオペランドとして前記命令プロセッサにおいて前記結果をバイパスできることを保証できるかどうかを検出する第2の検出ステップと、
    前記命令のうちの全ての第2の命令のために前記命令プロセッサにおいてオペランドとして前記結果をバイパスできることを保証できる場合には、前記レジスタファイルへの書き込みを無効にするために前記命令において情報を生成するステップと、
    を含む方法。
  14. 複数のバイパスレジスタに対する結果の書き込みおよび/または読み取り時にアドレス可能な前記複数のバイパスレジスタのうちの1つに前記結果を格納しなければならないという指示を前記命令中に含ませるステップを含む、請求項12に記載の方法。
  15. 請求項13または14に記載の方法を実施する命令プロセッサのための命令を備える、コンピュータプログラムプロダクト。
JP2006506724A 2003-03-19 2004-03-17 パイプライン型命令プロセッサにおけるバイパスの使用 Withdrawn JP2006522398A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03100710 2003-03-19
PCT/IB2004/050270 WO2004084065A2 (en) 2003-03-19 2004-03-17 Pipelined instruction processor with data bypassing

Publications (1)

Publication Number Publication Date
JP2006522398A true JP2006522398A (ja) 2006-09-28

Family

ID=33016975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006506724A Withdrawn JP2006522398A (ja) 2003-03-19 2004-03-17 パイプライン型命令プロセッサにおけるバイパスの使用

Country Status (5)

Country Link
US (1) US7730284B2 (ja)
EP (1) EP1606706A2 (ja)
JP (1) JP2006522398A (ja)
CN (1) CN1761940B (ja)
WO (1) WO2004084065A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331399A (ja) * 2005-05-26 2006-12-07 Arm Ltd スーパースカラ処理装置内の指示送出制御
JP2012053690A (ja) * 2010-09-01 2012-03-15 Canon Inc プロセッサ
JP2013196395A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd プロセッサ
WO2020197725A1 (en) * 2019-03-26 2020-10-01 Intel Corporation System, apparatus and method for adaptive interconnect routing

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007083421A1 (ja) * 2006-01-20 2007-07-26 Matsushita Electric Industrial Co., Ltd. プロセッサ
US20090249035A1 (en) * 2008-03-28 2009-10-01 International Business Machines Corporation Multi-cycle register file bypass
CN104216681B (zh) * 2013-05-31 2018-02-13 华为技术有限公司 一种cpu指令处理方法和处理器
US9747104B2 (en) * 2014-05-12 2017-08-29 Qualcomm Incorporated Utilizing pipeline registers as intermediate storage
US9665370B2 (en) * 2014-08-19 2017-05-30 Qualcomm Incorporated Skipping of data storage
CN105183433B (zh) * 2015-08-24 2018-02-06 上海兆芯集成电路有限公司 指令合并方法以及具有多数据通道的装置
US10592252B2 (en) 2015-12-31 2020-03-17 Microsoft Technology Licensing, Llc Efficient instruction processing for sparse data
US10459727B2 (en) 2015-12-31 2019-10-29 Microsoft Technology Licensing, Llc Loop code processor optimizations
CN111258657B (zh) * 2020-01-23 2020-11-20 上海燧原智能科技有限公司 流水线控制方法及相关设备
CN111857823A (zh) * 2020-07-15 2020-10-30 北京百度网讯科技有限公司 用于写回指令执行结果的装置和方法、处理装置
US20240078035A1 (en) * 2022-09-01 2024-03-07 Arm Limited Write-back rescheduling

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3745450B2 (ja) * 1996-05-13 2006-02-15 株式会社ルネサステクノロジ 並列処理プロセッサ
JPH103389A (ja) 1996-06-14 1998-01-06 Oki Electric Ind Co Ltd 並列計算機
US6035388A (en) * 1997-06-27 2000-03-07 Sandcraft, Inc. Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units
JP3449186B2 (ja) * 1997-08-19 2003-09-22 富士通株式会社 パイプラインバイパス機能を有するデータ処理装置
US6175910B1 (en) * 1997-12-19 2001-01-16 International Business Machines Corportion Speculative instructions exection in VLIW processors
EP1050801B1 (en) 1999-05-03 2006-12-13 STMicroelectronics S.A. An instruction supply mechanism
ATE529802T1 (de) * 2000-02-09 2011-11-15 Texas Instruments Inc Datenverarbeitungsvorrichtung
US6862677B1 (en) * 2000-02-16 2005-03-01 Koninklijke Philips Electronics N.V. System and method for eliminating write back to register using dead field indicator
US6624818B1 (en) * 2000-04-21 2003-09-23 Ati International, Srl Method and apparatus for shared microcode in a multi-thread computation engine
US6845445B2 (en) * 2000-05-12 2005-01-18 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements
EP1199629A1 (en) 2000-10-17 2002-04-24 STMicroelectronics S.r.l. Processor architecture with variable-stage pipeline
US7085940B2 (en) * 2002-05-09 2006-08-01 International Business Machines Corporation Floating point unit power reduction via inhibiting register file write during tight loop execution
US20040148494A1 (en) * 2003-01-29 2004-07-29 Jan Civlin Method and apparatus for reducing register usage within a pipelined processor
WO2007057831A1 (en) * 2005-11-15 2007-05-24 Nxp B.V. Data processing method and apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331399A (ja) * 2005-05-26 2006-12-07 Arm Ltd スーパースカラ処理装置内の指示送出制御
JP2012053690A (ja) * 2010-09-01 2012-03-15 Canon Inc プロセッサ
JP2013196395A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd プロセッサ
WO2020197725A1 (en) * 2019-03-26 2020-10-01 Intel Corporation System, apparatus and method for adaptive interconnect routing
US11256657B2 (en) 2019-03-26 2022-02-22 Intel Corporation System, apparatus and method for adaptive interconnect routing

Also Published As

Publication number Publication date
CN1761940A (zh) 2006-04-19
US20060212686A1 (en) 2006-09-21
WO2004084065A3 (en) 2005-08-11
CN1761940B (zh) 2010-06-16
US7730284B2 (en) 2010-06-01
WO2004084065A2 (en) 2004-09-30
EP1606706A2 (en) 2005-12-21

Similar Documents

Publication Publication Date Title
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
KR100900364B1 (ko) 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체
US6665776B2 (en) Apparatus and method for speculative prefetching after data cache misses
US8161266B2 (en) Replicating opcode to other lanes and modifying argument register to others in vector portion for parallel operation
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5461722A (en) Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions
US6304954B1 (en) Executing multiple instructions in multi-pipelined processor by dynamically switching memory ports of fewer number than the pipeline
JP2006522398A (ja) パイプライン型命令プロセッサにおけるバイパスの使用
WO2009114289A1 (en) System and method of selectively committing a result of an executed instruction
US6088781A (en) Stride instruction for fetching data separated by a stride amount
KR100266424B1 (ko) 롬(rom)용량을 저감한 데이타 프로세서
JP3449186B2 (ja) パイプラインバイパス機能を有するデータ処理装置
KR20070039079A (ko) 명령어 처리 회로
US20110047349A1 (en) Processor and processor control method
US20060095746A1 (en) Branch predictor, processor and branch prediction method
KR101077425B1 (ko) 효율적 인터럽트 리턴 어드레스 저장 메커니즘
KR100523706B1 (ko) 단일 사이클 파이프라인 스톨을 발생하기 위한 파이프라인 프로세서 시스템 및 방법
JP2004192021A (ja) マイクロプロセッサ
US6769057B2 (en) System and method for determining operand access to data
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP4283226B2 (ja) アドレス範囲に依存した命令並行処理を行うデータ処理装置
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
US7281121B2 (en) Pipeline processing device and interrupt processing method
JPH07200291A (ja) 可変長パイプライン制御装置
JPH0277840A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070315

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070518

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080221