JP2007026392A - マイクロプロセッサ - Google Patents

マイクロプロセッサ Download PDF

Info

Publication number
JP2007026392A
JP2007026392A JP2005211921A JP2005211921A JP2007026392A JP 2007026392 A JP2007026392 A JP 2007026392A JP 2005211921 A JP2005211921 A JP 2005211921A JP 2005211921 A JP2005211921 A JP 2005211921A JP 2007026392 A JP2007026392 A JP 2007026392A
Authority
JP
Japan
Prior art keywords
pipeline
instruction
stage
microprocessor
input
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.)
Pending
Application number
JP2005211921A
Other languages
English (en)
Inventor
Isao Katayama
功 片山
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005211921A priority Critical patent/JP2007026392A/ja
Priority to US11/274,401 priority patent/US20070022272A1/en
Publication of JP2007026392A publication Critical patent/JP2007026392A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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

Landscapes

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

Abstract

【課題】RISCプロセッサへのCISC命令の容易な実装,高速性と高機能性を両立するマイクロプロセッサ。
【解決手段】複数のステージを備えるパイプライン12と、処理のための回路リソースを管理するリソース管理ユニット13と、パイプライン12に対して処理コマンドを発行し、リソース管理ユニット13からパイプライン12へのコマンド投入の停止を要求するビジー信号BSを受信してパイプライン12へのコマンド投入を停止する命令フェッチユニット11と、命令フェッチユニット11からの処理コマンド及びパイプライン12の最終ステージZからパイプライン12の最初のステージAへの再投入パス124を介してパイプライン12自ら再投入するコマンドを受信し、リソース管理ユニット13からの制御信号SCSによってパイプライン12に投入する命令を選択する命令セレクタ15とを備える。
【選択図】図1

Description

本発明は、マイクロプロセッサに関し、特に、高速性と高機能性を両立するマイクロプロセッサに関する。
近年、マイクロプロセッサの命令は、小規模で単純な回路で実現できるものに限定して実装され、処理の進行を互いに依存のないステージに分割し、処理をステージごとに並列に行うことでプログラムの処理時間の短縮化を図ってきた。 演算命令やロード・ストア命令などはこの様な実装が比較的簡単に行える一方で、マイクロプロセッサの制御命令の内の幾つかはマイクロプロセッサ全体をロックして行うことが必要であり、処理が複雑で処理のステージ分割とパイプラインのステージへの割り当てが困難なものが存在する。
従来はこのような命令を実装するために、敢えて大規模な回路と複雑な制御により、機能を分割してパイプラインのステージに割り当てるか、パイプラインから分離するなどの方法を採用してきた。機能を分割してパイプラインのステージに割り当てる場合、回路の複雑さから消費電力の増大や不良回路の混入が問題となる。又、機能を分割してパイプラインから分離する場合、マイクロプロセッサの命令間の連係不十分によるマイクロプロセッサの性能の劣化が起こっていた。
また、従来のマイクロプロセッサでは、パイプラインに投入した命令が、その時のパイプラインの状況やマイクロプロセッサ全体の状態で実行できるか否かの判断をする際、その結果を得るためには、そのステージの動作を判断を開始したステージと同一にする必要があった。これは、仮に実行が不可能であると判別された際に、そのステージの動作をその命令が実行可能になるまで凍結し、その後に実行を再開する必要があるからである。
このような実装方法では、実行可能か否かを判断するステージの開始から判断結果がでるまでの時間が、他のステージの実行時間より長くなると、その実行可否判断回路の処理時間が、マイクロプロセッサ全体の動作周波数を規定してしまっていた。
近年、複数のマイクロプロセッサをワンチップに集積する要求が高まっており、その場合、実行可否判断回路はより複雑化、低速化する傾向にあり、問題となっている。
特許文献1は、例えばアウト・オブ・オーダ(Out-of-order)に命令を発行するマイクロプロセッサにおいて、特に、命令スケジュールユニットに使用される命令発行装置及び命令発行方法を開示している。即ち、ロード命令において、キャッシュミスが発生した際、このロード命令と多段の依存関係を有する命令を高速に検出することが可能な命令発行装置及び命令発行方法を開示している(特許文献1。)。
特許第3577052号公報
本発明の目的は、RISC(Reduced Instruction Set Computer)プロセッサの命令体系へのCISC(Complex Instruction Set Computer)プロセッサ命令処理の容易な実装を実現し、RISCプロセッサのパイプライン処理の高速化,命令密度の向上によるメモリ容量の削減と低消費電力化によりコストの抑制等、高速性と高機能性を両立するマイクロプロセッサを提供することにある。
本発明の一態様によれば、(イ)処理のステージが複数に分割されたパイプラインと、(ロ)パイプラインに接続され,処理のための回路リソースを管理するリソース管理ユニットと、(ハ)パイプラインに対して処理コマンドを発行し、リソース管理ユニットからパイプラインへのコマンド投入の停止を要求するビジー信号を受信してパイプラインへのコマンド投入を停止する命令フェッチユニットと、(ニ)命令フェッチユニットからの処理コマンド及びパイプラインの最終ステージからパイプラインの最初のステージへの再投入パスを介してパイプライン自ら再投入するコマンドを受信し、リソース管理ユニットからの制御信号によってパイプラインに投入する命令を選択する命令セレクタとを備えるマイクロプロセッサが提供される。
本発明のマイクロプロセッサによれば、RISC(Reduced Instruction Set Computer)プロセッサの命令体系へのCISC(Complex Instruction Set Computer)プロセッサ命令処理の容易な実装を実現し、RISCプロセッサのパイプライン処理の高速化,命令密度の向上によるメモリ容量の削減と低消費電力化によりコストの抑制等、高速性と高機能性を両立することができる。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであり、各ブロック,各パイプライン,各命令フォーマットの形式及び平面寸法等は現実のものとは異なることに留意すべきである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることはもちろんである。
また、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、各ブロックの構成部品の配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
処理のパイプラインが幾つかのステージに分割されているマイクロプロセッサにおいて、 処理パイプラインへのコマンド投入の停止を要求する機構, パイプライン中の命令の実行を無効化するフラグ, パイプラインの最終の段からパイプラインの最初の段パイプライン自らコマンドを再投入する再投入パス等の機構を付加することで、 少ない追加回路(再投入パス及び命令セレクタ等)でRISCプロセッサ命令体系中にCISCプロセッサ命令の様な高機能な命令を混在させることが可能になり、命令密度の向上によるメモリ容量の削減と低消費電力化により、マイクロプロセッサのコストの抑制ができる。
また、RISCプロセッサのパイプライン制御において、ある命令が実行可能であるか否かが判別できる前に、投機的に次の命令の実行を開始することが可能になり、マイクロプロセッサの動作の高速化を達成することができる。
並列実行が可能であるが単純な命令しか実装できないRISCプロセッサに、小規模の回路を付加することで、 高機能でRISCプロセッサのパイプラインステージの構造に影響されない命令を実装することができる。 この結果、マイクロプロセッサが持てる命令の命令規模の範囲が広がり、命令効率の向上ができ、マイクロプロセッサの消費電力の抑制やコストの抑制が可能になる。
再実行フラグと命令の再投入機能により、マイクロプロセッサの命令実行中、その命令処理パイプラインの上流ステージで行われる実行可否判断の結果を同一ステージで受け取らず、そのパイプラインの下流のステージで受けることが可能になり、複雑な実行可否判断が行われてもマイクロプロセッサの処理速度が低下させないことが可能になる。
[第1の実施の形態]
本発明の第1の実施の形態に係るマイクロプロセッサは、RISCプロセッサにおいて、CISCプロセッサ命令を容易に実装することができる方法を開示する。
本発明の第1の実施の形態に係るマイクロプロセッサにおいて、パイプライン12を含む処理ユニット1は、図1に示すように、複数のステージを備えるパイプライン12と、パイプライン12に接続され,処理のための回路リソースを管理するリソース管理ユニット(RMU:Resource Management Unit)13と、パイプライン12に対して処理コマンドを発行し、リソース管理ユニット13からパイプライン12へのコマンド投入の停止を要求するビジー信号BSを受信してパイプライン12へのコマンド投入を停止する命令フェッチユニット(IFU:Instruction Fetch Unit)11と、命令フェッチユニット11及びパイプライン12に接続され,動作タイミングを規定するクロックジェネレータ14と、命令フェッチユニット11からの処理コマンド及びパイプライン12の最終ステージZ(Stage-Z)からパイプライン12の最初のステージA(Stage-A)への再投入パス(RedoLoop)124を介してパイプライン12自ら再投入するコマンドを受信し、リソース管理ユニット13からの制御信号SCSによってパイプライン12に投入する命令を選択する命令セレクタ15とを備える。
或いは又、本発明の第1の実施の形態に係るマイクロプロセッサにおいて、パイプライン12は、投入された命令のステージの進行を管理するためのステージ管理キュー1221を備えていても良い。
或いは又、本発明の第1の実施の形態に係るマイクロプロセッサにおいて、ステージ管理キュー1221は、ステージごとに該当ステージの処理を再実行が必要か否かの命令コードを保持する命令保持部1222と再実行フラグ(RDF)1223を格納するステージコントローラ122を備えていても良い。
或いは又、本発明の第1の実施の形態に係るマイクロプロセッサにおいて、命令セレクタ15は、パイプライン12の最終ステージZにおいて再実行が必要か否かの命令コードを再投入パス124を介して受信し、パイプライン12の最初のステージAにその命令コードを再投入しても良い。
或いは又、本発明の第1の実施の形態に係るマイクロプロセッサにおいて、パイプライン12は、パイプライン12を占有して実行するCISCプロセッサ命令を実行しても良い。
命令フェッチユニット11は、処理ユニット1への投入命令列を命令メモリ111に持ち、 クロックに同期してパイプライン12に命令を投入する。
リソース管理ユニット13は、パイプライン12からパイプライン情報信号PLIを受信し、パイプライン12の各ステージの動作状況と処理命令を監視する。又、パイプライン12に投入された命令が現在のパイプライン12のステージ状況から実行可能かどうか判断し、 結果をDO/RD信号として、パイプライン12に返却する。また、 処理不能であれば命令フェッチユニット11に対してビジー信号BSを使用して、命令投入停止を要求する。
パイプライン12は、投入された命令を処理するために、ステージA, ステージB,…,ステージZからなる分割ステージ121に分割されている。 ステージ分割されたパイプライン12は接続されたクロックジェネレータ14に同期して、バケツリレー的に処理を進める。つまり、命令フェッチユニット11が先頭のステージAに投入した命令は、次のクロックでは ステージB、次のクロックでは、ステージCと進行する。各ステージはステージコントローラ122でコントロールされている。
最初のステージAには、命令セレクタ15から命令信号ISが投入される命令投入パスが存在する。また、パイプライン12は、最終のステージZで処理が終了するが、処理を終了しない場合に、最初のステージAに命令を再投入する再投入パス124を有する。
命令セレクタ15は、命令フェッチユニット11からの命令とパイプラインの最終のステージZからの命令をリソース管理ユニット13の制御信号により選択し、パイプライン12の最初のステージAに投入する。
パイプライン12は、図2に示すように、投入された命令のステージの進行を管理するためのステージ管理キュー1221を有する。ステージ管理キュー1221は、ステージごとの命令コードを保持する命令保持部1222と、再実行フラグ1223を備える。
本発明の第1の実施の形態に係るマイクロプロセッサは、RISCプロセッサ命令,CISCプロセッサ命令として、順に以下の2種類の命令を実行することを想定している。
(i)処理パイプラインのステージ分割がステージ間で互いに独立しているRISCプロセッサ命令。
(ii)処理パイプラインのステージ分割がステージ間で互いに独立していないCISCプロセッサ命令。
処理パイプラインのステージ分割がステージ間で互いに独立しているRISCプロセッサ命令と、処理パイプラインのステージ分割がステージ間で互いに独立していないCISCプロセッサ命令を概念的に示すと、図3及び図4に示すように表される。
図3(a)は、 RISC命令18を処理する際の処理キューを、図 3(b)は、各ステージを処理するマイクロプロセッサのチップ上の回路の領域を概念的に示している。それぞれのステージの処理に回路的に重複する部分が無いため、動作クロックごとにステージが進行すれば、クロックごとに最初のステージに命令を投入することができる。つまり、一つのパイプライン12でステージ数分の命令を並列に実行することができる。
図4(a)は、CISC命令20を処理する際の処理キューを、図4(b)は、各ステージを処理するマイクロプロセッサのチップ上の回路の領域を概念的に示している。一つの命令を処理するマイクロプロセッサの回路リソースがステージごとに分離されていないため、パイプラインではステージ分割しても並列処理することができず、処理中はパイプラインを占有する。
(A)RISCプロセッサ命令が連続投入された時のパイプラインステージの進行を図5乃至図9に示す。
(A−1)パイプライン上に何も実行中の命令が存在しないときには、図5に示すように、ステージAにIFU11から命令Inst-1が投入される。RMU13に動作の可否判断を要求(OK?)し、ステージ上にInst-1の実行を妨げる原因がなく、実行可能と判断される(OK!)。
(A−2)次のサイクルでは、図6に示すように、ステージAにIFU11から命令Inst-2が投入される。RMU13に動作の可否判断を要求(OK?)し、先行する命令Inst-1は、命令Inst―2の実行を妨げる原因がなく、実行可能と判断される(OK!)。
(A−3)次のサイクルでは、図7に示すように、ステージAにIFU11から命令Inst-3が投入される。RMU13に動作の可否判断を要求(OK?)し、先行する命令Inst-1,Inst-2は、命令Inst-3の実行を妨げる原因がなく、実行可能と判断される(OK!)。
(A−4)次のサイクルでは、図8に示すように、ステージAにIFU11から命令Inst-4が投入される。RMU13に動作の可否判断を要求(OK?)し、先行する命令Inst-1,Inst-2,Inst-3は、命令Inst-4の実行を妨げる原因がなく、実行可能と判断される(OK!)。

(A−N)第N番目のサイクルでは、図9に示すように、ステージAにIFU11から命令Inst-Nが投入される。RMU13に動作の可否判断を要求(OK?)し、先行する命令Inst-1,Inst-2,Inst-3,…,Inst-N−1は、命令Inst-Nの実行を妨げる原因がなく、実行可能と判断される(OK!)。
以上説明したように、RISCプロセッサ命令が連続投入された時のパイプラインステージでは、次々とIFU11から命令がステージAに投入され、すべて実行可能と判断される。それぞれのステージの処理に回路的に重複する部分が無いため、動作クロックごとにステージが進行すれば、クロックごとに最初のステージに命令を投入でき、一つのパイプライン12でステージ数分の命令を並列に実行することができる。
(B)CISCプロセッサ命令が連続投入された時のパイプラインステージの進行を図10乃至図18に示す。
(B−1)パイプライン上に何も実行中の命令が存在しないときには、図10に示すように、ステージAにIFU11から命令Inst-1が投入される。RMU13に動作の可否判断を要求(OK?)し、ステージ上にInst-1の実行を妨げる原因がなく、実行可能と判断される(OK!)。Inst-1はCISC命令であり、一つのパイプライン12上で他の命令との同時実行を許していない。
(B−2)次のサイクルでは、図11に示すように、ステージAにIFU11から命令Inst-2が投入される。RMU13に動作の可否判断を要求(OK?)し、先行する命令Inst-1が存在するので、命令Inst-2の実行は不可能と判断される(OK!)。そのため、図11に示すように、ステージAには再実行を必要とする意味の再実行フラグR(RDFをRとして省略して記載)が立つ。RMU13は同時にIFU11にパイプライン12への命令投入停止を要求するビジー信号BSを出し、更に命令セレクタ15を操作し、ステージAへの命令投入をパイプライン12の最終ステージZに切り替える。この時、命令Inst-2が RISC命令であっても、或いはCISC命令であっても、RMU13は同様の動作をする。図11に示す例では、命令Inst-2がCISC命令であるとして以降の動作を説明する。
(B−3)次のサイクルでは、図12に示すように、IFU11は、RMU13からの命令投入停止を要求するビジー信号BSを受信し、動作を停止する。パイプライン12は動作クロックに従い、一段ずつ進む。命令Inst-1は、正常に動作をするが、命令Inst-2は再実行フラグRを持つので実行されない。
(B−4)次のサイクルでは、図13に示すように、IFU11は、RMU13からの命令投入停止を要求するビジー信号BSを受信し、動作を停止する。パイプライン12は動作クロックに従い、一段ずつ進む。命令Inst-1は、正常に動作をするが、命令Inst-2は再実行フラグRを持つので実行されない。
(B−5)第N番目のサイクルでは、図14に示すように、命令Inst-1が最終ステージZに到達する。命令Inst-1はここで実行を終了する。
(B−6)次のサイクルでは、図15に示すように、再実行フラグRのある命令Inst-2が最終ステージZに到達する。
(B−7)次のサイクルでは、図16に示すように、命令Inst-2が再投入パス124を使用してステージAに再投入される。同時に再実行フラグRが落ちる。RMU13に動作の可否判断を要求(OK?)し、ステージ上に命令Inst-2の実行を妨げる原因がなく、実行可能と判断される(OK!)。命令Inst-2は、CISC命令であり、パイプライン12上に他の命令との同時実行を許していない。RMU13はパイプライン12上に再実行フラグRを持つ命令がないため、命令セレクタ15をIFU11からの命令に切り替え、IFU11に出していた命令投入停止を要求するビジー信号BSを取り下げる。
(B−8)次のサイクルでは、図17に示すように、ステージAに命令Inst-3が投入される。RMU13に動作の可否判断を要求(OK?)し、先行する命令Inst-2の存在で命令Inst-3の実行は不可能と判断される(OK!)。そのため、ステージAには再実行を必要とする意味の再実行フラグRが立つ。RMU13は同時にIFU11にパイプライン12への命令投入停止を要求するビジー信号BSを出し、更に命令セレクタ15を操作し、ステージAへの命令投入をパイプライン12の最終ステージZに切り替える。この時、命令Inst-3が RISC命令であっても、或いはCISC命令であっても、RMU13は同様の動作をする。図17に示す例では、命令Inst-3は、CISC命令である。
(B−9)次のサイクルでは、図18に示すように、IFU11は、RMU13からの命令投入停止を要求するビジー信号BSを受信し、動作を停止する。パイプライン12は動作クロックに従い、一段ずつ進む。命令Inst-2は、正常に動作をするが、命令Inst-3は再実行フラグRを持つので実行されない。
本発明の第1の実施の形態に係るマイクロプロセッサによれば、並列実行が可能であるが単純な命令しか実装できないRISCプロセッサに、小規模の回路を付加することで、 高機能でRISCプロセッサのパイプラインステージの構造に影響されない命令を実装することができる。 この結果、マイクロプロセッサが持てる命令の命令規模の範囲が広がり、命令効率の向上ができ、マイクロプロセッサの消費電力の抑制やコストの抑制が可能になる。
本発明の第1の実施の形態に係るマイクロプロセッサによれば、RISCプロセッサにおいて、CISCプロセッサ命令を容易に実装することもできる。
[第2の実施の形態]
本発明の第2の実施の形態に係るマイクロプロセッサは、RISCプロセッサのパイプライン処理の高速化について開示する。
本発明の第2の実施の形態に係るマイクロプロセッサにおいて、パイプライン12を含む処理ユニット1は、図19に示すように、複数のステージを備えるパイプライン12と、パイプライン12に接続され,処理のための回路リソースを管理するリソース管理ユニット13と、パイプライン12に対して処理コマンドを発行し、リソース管理ユニット13からパイプライン12へのコマンド投入の停止を要求するビジー信号BSを受信してパイプライン12へのコマンド投入を停止する命令フェッチユニット11と、命令フェッチユニット11及びパイプライン12に接続され,動作タイミングを規定するクロックジェネレータ14(図示省略)と、命令フェッチユニット11からの処理コマンド及びパイプライン12の最終ステージZ(Stage-Z)からパイプライン12の最初のステージA(Stage-A)への再投入パス124を介してパイプライン12自ら再投入するコマンドを受信し、リソース管理ユニット13からの制御信号SCSによってパイプライン12に投入する命令を選択する命令セレクタ15とを備える。
或いは又、本発明の第2の実施の形態に係るマイクロプロセッサにおいて、複数のステージは、それぞれ再実行フラグRDFを格納するパイプラインレジスタ24を備え、リソース管理ユニット13は、パイプライン12の最初のステージAから受信した実行可能か否かの判断要求の結果を複数サイクル後のステージで返却し、実行可否判断要求をした命令より上流のステージすべてのパイプラインレジスタ24に再実行フラグRDFを格納する構成を備える。
命令フェッチユニット11は、処理ユニット1への投入命令列を命令メモリ111に持ち、 クロックに同期してパイプライン12に命令を投入する。
リソース管理ユニット13は、パイプライン12からパイプライン情報信号PLIを受信し、パイプライン12の各ステージの動作状況と処理命令を監視する。又、パイプライン12に投入された命令が現在のパイプライン12のステージ状況から実行可能かどうか判断し、 結果を数サイクル後、無効化信号NGとして、パイプライン12に返却する。また、 処理不能であれば命令フェッチユニット11に対してビジー信号BSを使用して、命令投入停止を要求する。
パイプライン12は、投入された命令を処理するために、ステージA, ステージB,…,ステージZからなる分割ステージ121に分割されている。 ステージ分割されたパイプライン12は接続されたクロックジェネレータ14に同期して、バケツリレー的に処理を進める。つまり、命令フェッチユニット11が先頭のステージAに投入した命令は、次のクロックでは ステージB、次のクロックでは、ステージCと進行する。
最初のステージAには、命令セレクタ15から命令信号ISが投入される命令投入パスが存在する。また、パイプライン12は、最終のステージZで処理が終了するが、処理を終了しない場合に、最初のステージAに命令を再投入する再投入パス124を有する。
命令セレクタ15は、命令フェッチユニット11からの命令とパイプラインの最終のステージZからの命令をリソース管理ユニット13の制御信号により選択し、パイプライン12の最初のステージAに投入する。
本発明の第2の実施の形態に係るマイクロプロセッサにおいて、パイプライン12がステージAからステージZの分割ステージ121に処理が分割されている点は、第1の実施の形態と同様である。
本発明の第2の実施の形態に係るマイクロプロセッサにおいては、図19に示すように、ステージBからステージZの各ステージ内には、再投入フラグ(RDF)を格納するパイプラインレジスタ24と、ORゲート22を備える。
ステージB内のパイプラインレジスタ24は、リソース管理ユニット13からの無効化信号NGを受信する。ステージB内のパイプラインレジスタ24の出力は、ステージB内のORゲート22に入力される。ステージB内のORゲート22には、同時にリソース管理ユニット13からの無効化信号NGが入力される。ステージB内のORゲート22の出力は、ステージC内のパイプラインレジスタ24に入力される。
ステージC内のパイプラインレジスタ24の出力は、ステージC内のORゲート22に入力される。ステージC内のORゲート22には、同時にリソース管理ユニット13からの無効化信号NGが入力される。ステージC内ORゲート22の出力は、ステージD内のパイプラインレジスタ24に入力される。
ステージD内のパイプラインレジスタ24の出力は、ステージD内のORゲート22に入力される。ステージD内のORゲート22には、同時にリソース管理ユニット13からの無効化信号NGが入力される。ステージD内のORゲート22の出力は、ステージE内のパイプラインレジスタ24に入力される。
ステージE内のパイプラインレジスタ24の出力は、ステージE内のORゲート22に入力される。ステージE内のORゲート22には、同時にリソース管理ユニット13からの無効化信号NGが入力される。
第2の実施の形態では、ステージAでリソース管理ユニット13に対する実行可能か否かの判断要求の結果が4サイクル後のステージEで返却されるところが異なる。この場合、リソース管理ユニット13から実行可否判断結果が出るまでに、パイプライン12には後続の4命令が投入されている。リソース管理ユニット13は、実行可否判断要求をした命令より上流のステージすべてに再実行フラグRを立てる。尚、後続の4命令の最初に実行可否判断要求を出した命令と同様に、ステージAにあるときに実行可否判断要求(OK?)を出している。これらの命令は、同時に再実行フラグRが立つため、すべて動作が無効になる。従って、リソース管理ユニット13は、これらの命令が出した実行可否判断要求を自ら無効化する。
尚、図19においては、ステージAでリソース管理ユニット13に対する実行可能か否かの判断要求の結果は、4サイクル後のステージEで返却される例について示されているが、4サイクルに限らず、複数サイクル後のステージで返却されても良いことは勿論である。その際においても、リソース管理ユニット13は、実行可否判断要求をした命令より上流のステージすべてに再実行フラグRを立てる点は同様である。
(C)本発明の第2の実施の形態に係るマイクロプロセッサにおいて、パイプライン12にRISCプロセッサ命令が投入された時のパイプラインステージの進行を図20乃至図30に示す。
(C−1)パイプライン上に何も実行中の命令が存在しないときには、図20に示すように、ステージAにIFU11から命令Inst-1が投入される。命令Inst-1は、RMU13に命令実行可否判断要求を出す。そのステージでは判断結果の返却は無い。
(C−2)次のサイクルでは、図21に示すように、ステージAに命令フェッチユニットから命令Inst―2が投入される。Inst―2はRMU13に命令実行可否判断要求を出す。そのステージでは判断結果の返却は無い。
(C−3)次のサイクルでは、図22に示すように、ステージAにIFU11から命令Inst―3が投入される。命令Inst―3はRMU13に命令実行可否判断要求を出す。そのステージでは判断結果の返却は無い。
(C−4)次のサイクルでは、図23に示すように、ステージAにIFU11から命令Inst―4が投入される。命令Inst―4はRMU13に命令実行可否判断要求を出す。そのステージでは判断結果の返却は無い。
(C−5)次のサイクルでは、図24に示すように、命令Inst-1の命令実行可否判断が4クロック費やして出る。命令Inst-1は、ステージEでその結果を受け取る。この例では、命令Inst-1はなんらかの理由で実行不可と判断されたため、命令Inst-1から上流のステージに再実行要求のための再実行フラグRが出される。RMU13は、このとき、IFU11に命令投入停止要求を出し、更に命令セレクタ15を切り替えて、ステージAへの命令投入を、パイプライン12の最終ステージZからに切り替える。
(C−6)次のサイクルでは、図25に示すように、ステージEは、命令Inst-2の命令実行可否判断が出されるステージであるが、すでに再実行要求のための再実行フラグRがあり、RMU13から新たな再実行要求は出ない。
(C−7)第N番目のサイクルでは、図26に示すように、命令Inst-1がパイプライン12の最終ステージZに到達する。
(C−8)次のサイクルでは、図27に示すように、命令Inst-1がパイプライン12の最初のステージAに投入され、同時に再実行フラグRが落ちる。命令Inst-1はRMU13に実行可否判断要求を出す。このステージAでは判断結果の返却は無い。
(C−9)次のサイクルでは、図28に示すように、命令Inst-2がパイプライン12の最初のステージAに投入され、同時に再実行フラグRが落ちる。命令Inst-2はRMU13に実行可否判断要求を出す。このステージAでは判断結果の返却は無い。
(C−10)次に、図29に示すサイクルでは、命令Inst-5がパイプライン12の最初のステージAに投入され、同時に再実行フラグRが落ちる。再実行フラグRを持つ命令がパイプライン12に無くなり、RMU13は命令セレクタ15をIFU11からに切り替え、IFU11に出していた命令投入停止を要求するビジー信号BSを停止する。命令Inst-5は、RMU13に実行可否判断要求を出す。その結果、命令Inst-1の実行可否判断結果がRMU13からステージEに出る。今回は実行可能(OK)の判断であった。
(C−11)次のサイクルでは、図30に示すように、IFU11から命令Inst-6が投入され、実行可否判断要求をRMU13に出す。命令Inst-2の実行可否判断結果がRMU13からステージEに出る。今回は実行可能(OK)の判断であった。
本発明の第2の実施の形態に係るマイクロプロセッサによれば、再実行フラグと命令の再投入機能により、マイクロプロセッサの命令実行中、その命令処理パイプラインの上流ステージで行われる実行可否判断の結果を同一ステージで受け取らず、そのパイプラインの下流のステージで受けることが可能になり、複雑な実行可否判断が行われてもマイクロプロセッサの処理速度が低下させないことが可能になる。
[その他の実施の形態]
上記のように、本発明は第1乃至第2の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
本発明の第1の実施の形態に係るマイクロプロセッサの処理ユニットの模式的ブロック構成図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインステージコントローラ内のステージ管理キューの模式的ブロック構成図。 RISCプロセッサ命令を実現する回路リソースの特徴を示す図。 CISCプロセッサ命令を実現する回路リソースの特徴を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態に係るマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第1の実施の形態が適用されたマイクロプロセッサのパイプラインにCISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサの処理ユニットの模式的ブロック構成図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。 本発明の第2の実施の形態に係るマイクロプロセッサのパイプラインにRISCプロセッサ命令が投入された時のパイプラインステージの進行を示す図。
符号の説明
1…処理ユニット
11…命令フェッチユニット(IFU)
12…パイプライン
13…リソース管理ユニット(RMU)
14…クロックジェネレータ
15…命令セレクタ
111…命令メモリ
121…分割ステージ
122…ステージコントローラ
124…再投入パス(RedoLoop)
16,17…回路リソース
18…RISC命令
20…CISC命令
22…ORゲート
24…パイプラインレジスタ
1221…ステージ管理キュー
1222…命令保持部
1223…再実行フラグ
IS…命令信号
BS…ビジー(Busy)信号
SCS…制御信号

Claims (5)

  1. 複数のステージを備えるパイプラインと、
    該パイプラインに接続され,処理のための回路リソースを管理するリソース管理ユニットと、
    前記パイプラインに対して処理コマンドを発行し、前記リソース管理ユニットから前記パイプラインへのコマンド投入の停止を要求するビジー信号を受信して前記パイプラインへのコマンド投入を停止する命令フェッチユニットと、
    前記命令フェッチユニットからの前記処理コマンド及び前記パイプラインの最終ステージから前記パイプラインの最初のステージへ再投入パスを介して前記パイプライン自ら再投入するコマンドを受信し、前記リソース管理ユニットからの制御信号によって前記パイプラインに投入する命令を選択する命令セレクタ
    とを備えることを特徴とするマイクロプロセッサ。
  2. 前記パイプラインは、投入された命令のステージの進行を管理するためのステージ管理キューを有することを特徴とする請求項1記載のマイクロプロセッサ。
  3. 前記ステージ管理キューは、ステージごとに該当ステージの処理を再実行が必要か否かの命令コードを保持する命令保持部と再実行フラグを格納するステージコントローラを備えることを特徴とする請求項2記載のマイクロプロセッサ。
  4. 前記パイプラインは、前記パイプラインを占有して実行するCISCプロセッサ命令を実行することを特徴とする請求項3記載のマイクロプロセッサ。
  5. 前記複数のステージは、それぞれ再実行フラグを格納するパイプラインレジスタを備え、前記リソース管理ユニットは、前記最初のステージから受信した実行可能か否かの判断要求の結果を複数サイクル後のステージで返却し、実行可否判断要求をした命令より上流のステージすべての前記パイプラインレジスタに前記再実行フラグを格納することを特徴とする請求項1記載のマイクロプロセッサ。
JP2005211921A 2005-07-21 2005-07-21 マイクロプロセッサ Pending JP2007026392A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005211921A JP2007026392A (ja) 2005-07-21 2005-07-21 マイクロプロセッサ
US11/274,401 US20070022272A1 (en) 2005-07-21 2005-11-16 Microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005211921A JP2007026392A (ja) 2005-07-21 2005-07-21 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JP2007026392A true JP2007026392A (ja) 2007-02-01

Family

ID=37680383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005211921A Pending JP2007026392A (ja) 2005-07-21 2005-07-21 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US20070022272A1 (ja)
JP (1) JP2007026392A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242647A (ja) * 2007-03-26 2008-10-09 Telefon Ab L M Ericsson プロセッサ
JP2011134181A (ja) * 2009-12-25 2011-07-07 Fujitsu Ltd 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10820068B2 (en) * 2019-02-07 2020-10-27 Simmonds Precision Products, Inc. Configurable sensing systems and methods for configuration

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966544A (en) * 1996-11-13 1999-10-12 Intel Corporation Data speculatable processor having reply architecture
US6163838A (en) * 1996-11-13 2000-12-19 Intel Corporation Computer processor with a replay system
US6212626B1 (en) * 1996-11-13 2001-04-03 Intel Corporation Computer processor having a checker
US6047370A (en) * 1997-12-19 2000-04-04 Intel Corporation Control of processor pipeline movement through replay queue and pointer backup
US6976152B2 (en) * 2001-09-24 2005-12-13 Broadcom Corporation Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard
US7055021B2 (en) * 2002-02-05 2006-05-30 Sun Microsystems, Inc. Out-of-order processor that reduces mis-speculation using a replay scoreboard

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242647A (ja) * 2007-03-26 2008-10-09 Telefon Ab L M Ericsson プロセッサ
JP2011134181A (ja) * 2009-12-25 2011-07-07 Fujitsu Ltd 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法
EP2348400A1 (en) 2009-12-25 2011-07-27 Fujitsu Limited Arithmetic processor, information processor, and pipeline control method of arithmetic processor
US8683181B2 (en) 2009-12-25 2014-03-25 Fujitsu Limited Processor and method for distributing load among plural pipeline units

Also Published As

Publication number Publication date
US20070022272A1 (en) 2007-01-25

Similar Documents

Publication Publication Date Title
JP2007026452A (ja) 強化マイクロプロセッサのための方法及びシステム
KR100274268B1 (ko) 멀티스레드 프로세서에서 스레드 스위치 대기 시간을 감소시키기 위한 방법 및 장치
EP1886216B1 (en) Controlling out of order execution pipelines using skew parameters
US7454598B2 (en) Controlling out of order execution pipelines issue tagging
US8972999B2 (en) Method and system for detecting program deadlock
US9870226B2 (en) Control of switching between executed mechanisms
JP5209933B2 (ja) データ処理装置
US8560813B2 (en) Multithreaded processor with fast and slow paths pipeline issuing instructions of differing complexity of different instruction set and avoiding collision
JP2010526392A (ja) システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法
KR20100032441A (ko) 조건부 명령을 비조건부 명령 및 선택 명령으로 확장하기 위한 방법 및 시스템
US11836498B1 (en) Single cycle predictor
US11816489B1 (en) Microprocessor with prediction unit pipeline that provides a next fetch address at a rate of one per clock cycle
US20240045610A1 (en) Prediction unit with first predictor that provides a hashed fetch address of a current fetch block to its own input and to a second predictor that uses it to predict the fetch address of a next fetch block
US7991980B2 (en) Concurrent execution of instructions in a processing system
US12020032B2 (en) Prediction unit that provides a fetch block descriptor each clock cycle
JP2003280896A (ja) 命令発行装置及び命令発行方法
US7774582B2 (en) Result bypassing to override a data hazard within a superscalar processor
JP2007026392A (ja) マイクロプロセッサ
CN101647000A (zh) 用于在处理器中的执行级之前执行指令的系统及方法
US20090178054A1 (en) Concomitance scheduling commensal threads in a multi-threading computer system
CN107066238A (zh) 执行高速缓存行未对齐加载指令的系统和方法
JP2010198128A (ja) プロセッサシステム
CN108958798B (zh) 指令翻译电路、处理器电路及其执行方法
US20050273579A1 (en) Method and apparatus for maintaining status coherency between queue-separated functional units
US20070162723A1 (en) Technique for reducing traffic in an instruction fetch unit of a chip multiprocessor