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

マイクロプロセッサ Download PDF

Info

Publication number
JP4747026B2
JP4747026B2 JP2006129046A JP2006129046A JP4747026B2 JP 4747026 B2 JP4747026 B2 JP 4747026B2 JP 2006129046 A JP2006129046 A JP 2006129046A JP 2006129046 A JP2006129046 A JP 2006129046A JP 4747026 B2 JP4747026 B2 JP 4747026B2
Authority
JP
Japan
Prior art keywords
nop
instruction
pipeline
clock
stage
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
JP2006129046A
Other languages
English (en)
Other versions
JP2007299355A (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.)
Lapis Semiconductor Co Ltd
Original Assignee
Oki Semiconductor Co 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 Oki Semiconductor Co Ltd filed Critical Oki Semiconductor Co Ltd
Priority to JP2006129046A priority Critical patent/JP4747026B2/ja
Priority to US11/730,001 priority patent/US20070288724A1/en
Publication of JP2007299355A publication Critical patent/JP2007299355A/ja
Application granted granted Critical
Publication of JP4747026B2 publication Critical patent/JP4747026B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

本発明は、高速化手法の1つであるパイプライン構成を採用したRISC方式のマイクロプロセッサ(以下「MPU」という。)、特にこのMPUにおける消費電力低減化技術に関するものである。
MPUは、コンピュータ内で基本的な演算処理を行う半導体チップである。このMPUの処理では、先ず、メモリ(記憶装置)に記憶されたプログラムを読み込み、次に、プログラムの指示に従って入力装置やメモリ等からデータを受け取り、データをプログラム通りに演算等をした上で、このデータをメモリやディスプレイ(表示装置)等の出力装置等へ送る、という流れになっている。
このようなMPUの基本設計には、大きく分けるとCISC方式とRISC方式の2つがある。CISC方式では、MPUが多数の命令を処理できるようにして命令セットを高級言語に近づけ、複雑な処理を実行できるようにすることで、処理能力の向上を図っている。これに対してRISC方式では、1つ1つの命令を単純にすることで複数の命令を効率良く同時に実行できるようにして処理能力の向上を図っている。しかし、両方式は互いの長所を取り込む形で発展を続けているため、両者の区別が不明確になりつつある。
一方、MPUの高速化手法の1つにパイプライン処理がある。MPU内での1つの命令の処理は、命令の読み込み、解釈、実行、結果の書き込み等のように、複数の段階(工程(ステージ))からなるサイクルで構成され、通常は、前の命令のサイクルが完全に終わらないと、次の命令の処理を始めることができない。そこで高速化を図るために、各段階の処理機構を独立して動作させることにより、流れ作業的に、前の命令のサイクルが終わる前に、次の命令を処理し始めるのがパイプライン処理である。このようなパイプライン機構(構成)を備えたMPUでは、前の命令の実行を行っている時に次の命令の解釈を行うといった処理が可能になる。
図2は、従来のRISC方式のMPUにおけるパイプライン構成例を示す概略図である。
この概略図では、フェッチ(以下「FE」という。)/デコード(以下「DC」という。)/実行(以下「EX」という。)/メモリ(以下「MEM」という。)/ライトバック(以下「WB」という。)の5つのステージを持つ5段パイプラインの例が示されている。
MPUは、アドレス生成レジスタ1、命令メモリ2、命令デコーダ3、レジスタ群4、演算ユニット(ALU)5、及びデータメモリ6を有している。更に、アドレス生成レジスタ1と命令メモリ2との間にプログラムカウンタ(以下「PC」という。)7、命令メモリ2と命令デコーダ3との間にFE/DCステージ間のパイプラインレジスタ(以下「FE/DCパイプラインレジスタ」という。)8、命令デコーダ3及びレジスタ群4と演算ユニット5との間にDC/EXステージ間のパイプラインレジスタ(以下「DC/EXパイプラインレジスタ」という。)9、演算ユニット5とデータメモリ6との間にEX/MEMステージ間のパイプラインレジスタ(以下「EX/MEMパイプラインレジスタ」という。)10、データメモリ6とレジスタ群4との間にMEM/WB間のパイプラインレジスタ(以下「MEM/WBパイプラインレジスタ」という。)11が、それぞれ設けられている。PC7、命令メモリ2、及び各パイプラインレジスタ8〜11は、クロックCKに同期して動作する。
このMPUのパイプライン処理では、次の(1)〜(5)のステージが順に実行される。
(1) FEステージ
命令メモリ2から命令(プログラムデータ)を取り出す。
(2) DCステージ
フェッチされた命令を命令デコーダ3でデコードする。同時に、レジスタ群4からレジスタオペランドをリード(フェッチ)する。
(3) EXステージ
デコード結果に基づいて演算ユニット5で演算を行い、若しくはレジスタ群4の値のバイパスを行う。つまり、このEXステージでは、デコード結果とフェッチしたレジスタ群4の値を基に、演算ユニット5で演算を行う(命令を実行する)。例えば、ロード/ストア命令の場合は、実効アドレスの計算を行う。分岐命令の場合は、分岐先アドレスを計算する。
(4) MEMステージ(これはオペランドフェッチ(MEM)ステージともいう)
データメモリ6へのリード(読み出し)/ライト(書き込み)を行ったり(即ち、EXステージで計算したアドレスに対応するデータメモリ6の値をリードしたり、そのデータメモリ6へのライトを行ったり)、或いは、演算結果に対するレジスタ群4へのバイパスを行う。
(5) WBステージ
EXステージで計算した結果、又はMEMステージでフェッチしたオペランドをレジスタ群4に格納する(即ち、レジスタ群4への書き戻しを行う)。
これらの各ステージ(1)〜(5)の間には、FE/DCパイプラインレジスタ8、DC/EXパイプラインレジスタ9、EX/MEMパイプラインレジスタ10、MEM/WBパイプラインレジスタ11があり、各ステージ間のデータの受け渡しを行う。
ところが、このようなパイプライン構成では、オペレーションが行われないノン・オペレーション(no-operation、以下「nop」という。)時にも、nop命令に割り当てられた命令コードが命令メモリ2からフェッチされ、その後nop命令のパイプライン動作が行われる。即ち、オペレーションが行われないnop時にも関わらずパイプラインレジスタ8〜11やレジスタ群4、演算ユニット5も動作するので、余分な電力を消費するという問題があった。
これを解消するための従来のMPUの技術として、例えば、次のような文献に記載されるものがある。
特開平8−101820号公報
この特許文献1に記載されたMPUの技術では、データパス部においてオペレーションが行われない場合には、データパス部の入力段に設けられたラッチ回路により入力データを保持し、データパス内部回路の動作を停止させる工夫をしている。
しかしながら、従来の特許文献1に記載されたMPUの技術では、データパス内部回路の動作停止を実現させるため、データパス部の入力段にラッチ回路等を設けなければならないので、回路規模が大きくなる上に、回路全体で見ると、パイプラインレジスタ8〜11等の動作している回路部分は未だ多く、消費電力低減の効果が低いといった問題があり、これらを解決することが困難であった。
発明のMPUは、命令がnopであった場合にnop専用ビット以外の命令データを持ち、クロックの前縁で動作する第1の命令メモリと、前記nop専用ビットのみを格納し、前記クロックの半サイクル前の後縁で動作する第2の命令メモリと、前記第2の命令メモリから前記nop専用ビットが読み出された時に前記第1の命令メモリのクロックを停止させる第1のクロック制御回路と、複数のパイプラインにおける初段のパイプラインのFEステージに配置され、第2の命令メモリから読み出された前記nop専用ビットのタイミングを調整してnop信号を出力する第1のF/Fと、前記複数のパイプラインにおける各パイプライン間に配置され、前記nop信号を前記各パイプラインに伝搬させる複数の第2のF/Fと、前記複数のパイプラインにおける各パイプラインに配置され、前記各パイプラインに前記nopが伝搬する際には、前記各パイプラインのステージにおいて、前記nop信号に基づき、前記各パイプラインのステージを動作させるためのクロックを停止させ、且つ、前記各パイプラインのステージにおける入力データも保持させる複数の第2のクロック制御回路とを有している。
発明のMPUによれば、命令がnopであった場合に例えば論理‘H’を示す1ビットのnop専用ビット以外の命令データを持ち、例えばクロックの立ち上がりエッジで動作する第1の命令メモリと、nop専用ビットのみを格納し、例えばクロックの立ち下がりエッジで動作する第2の命令メモリと、この第2の命令メモリから読み出された信号に基づき、例えば論理‘H’であった場合に第1の命令メモリのクロックを停止させるクロック制御回路と、第2の命令メモリから読み出されたnop専用ビットのタイミングを調整するために、FEステージに配置されたF/Fを備えている。
そして、第2の命令メモリより例えばクロックの立ち下がりエッジでnop専用ビットをリードする第1の処理と、リードされた信号が例えば論理‘H’であった場合に、第1の命令メモリのクロックを停止させる第2の処理と、前記読み出された信号をFEステージに配置されたF/Fによりタイミングを調整し、nop信号として使用する第3の処理と、以降は、各パイプラインにnopが伝搬する際、パイプラインレジスタやメモリ等のクロックを停止させ、且つ、各パイプラインステージにおける入力データも保持させるようにしている。そのため、nop専用ビットを他の命令データよりも半クロックサイクル前にリードし、nopであった場合には、他の命令データのフェッチを停止させることによって、第1の命令メモリからフェッチされた命令データから、nopを検出するためのnop検出回路が不要となる。この結果、nop検出回路で消費される電力が削減でき、且つ、nop検出回路における遅延時間もなくなるため、より高速動作が可能となる。更に、第1の命令メモリにおける消費電力も低減できる。
MPUは、命令メモリよりフェッチされた命令データからnopを検出し、1ビットのnop信号を出力するnop検出回路と、nop信号を各パイプラインに伝搬させるために、各パイプライン間に配置されたF/Fと、各パイプラインステージにおいて、nop信号に基づき、クロックを停止させるクロック制御回路を備えている。
nop検出回路においてnopが検出されると、論理‘H’のnop信号を出力する第1の処理と、各パイプライン間に配置されたF/Fによって、検出されたnop信号を各パイプラインに伝搬させる第2の処理と、各パイプラインにnopが伝搬する際には、各パイプラインに配置されているクロック制御回路により、クロックを停止させる第3の処理により、各パイプラインにnopが伝搬する際、パイプラインレジスタやメモリ等のクロックを停止させ、且つ、各パイプラインステージにおける入力データも保持させる。
(実施例1の構成)
図1は、本発明の実施例1に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図である。
この概略図では、従来の図2と同様に、FE/DC/EX/MEM/WBの5つのステージを持つ5段パイプラインの例が示されている。
本実施例1のMPUでは、従来の図2と同様に、アドレス生成レジスタ21、命令メモリ22、命令デコーダ23、レジスタ群24、演算ユニット(ALU)25、及びデータメモリ26を有し、更に、アドレス生成レジスタ21と命令メモリ22との間にPC27、命令メモリ22とデコード23との間にFE/DCパイプラインレジスタ28、命令デコーダ23及びレジスタ群24と演算ユニット25との間にDC/EXパイプラインレジスタ29、演算ユニット25とデータメモリ26との間にEX/MEMパイプラインレジスタ30、データメモリ26とレジスタ群24との間にMEM/WBパイプラインレジスタ31が、それぞれ設けられている。
本実施例1の特徴は、従来のMPUの構成に加え、命令メモリ22からのフェッチデータ(命令データ)S22からnop命令を検出するnop検出回路41と、それぞれのパイプラインのステージに設置されているクロック制御回路42〜45と、nop検出回路41から出力される、命令がnop命令であることを示す1ビットのnop信号S41を各パイプラインに伝搬させるため、各パイプラインのステージ間に配置されたF/F46〜48を備えている。
各F/F46〜48からは、1ビットのnop信号S46〜S48が出力される。命令メモリ22、及びクロック制御回路42〜45は、クロックCKに同期して動作する。各クロック制御回路42〜45は、各1ビットのnop信号S41,S46〜S47がイネイブル信号(活性化信号)として与えられ、クロックCKに基づきゲーテッドクロックS42〜S45を生成する回路である。各ゲーテッドクロックS42〜S45に同期して各パイプラインレジスタ28〜31が動作すると共に、ゲーテッドクロックS42に基づきレジスタ群24が動作し、ゲーテッドクロックS44に基づきデータメモリ26が動作する構成になっている。このような構成が本実施例1の特徴であり、従来のMPUと異なる点である。
図3は、図1中のnop検出回路41の構成例を示す回路図である。
このnop検出回路41は、命令データS22のデコード結果により、nop命令を検出し、nop信号S41の‘H’を出力する回路であり、nop命令のコードにもよるが、例えば、全ビットゼロの場合、否定論理和ゲート(以下「NORゲート」という。)41aにより構成される。
図4(A)、(B)は、図1中のクロック制御回路42の構成例を示す図であり、同図(A)は回路図、及び同図(B)はその入出力のタイミングチャートである。
図1中の各クロック制御回路42〜45は、同一の回路構成である。図4(A)に示すように、クロック制御回路42は、例えば、クロックCKの反転信号に基づき、イネイブル信号としてnop信号S41を取り込むD型ラッチ回路42aと、このD型ラッチ回路42aの出力信号S42aとクロックCKとの論理積を求めてゲーテッドクロックS42を出力する論理積ゲート(以下「ANDゲート」という。)42bとにより構成されている。このクロック制御回路42は、イネイブル信号であるnop信号S41がいかなるタイミングで入力されても、ゲーテッドクロックS42にハザードが乗らないようにするために、D型ラッチ回路42aに入力される、イネイブル信号であるnop信号S41に応じて、ANDゲート42bによりクロックCKをゲートし、このANDゲート42bからゲーテッドクロックS42を出力する機能を有している。
図4(B)に示すように、D型ラッチ回路42aは、クロックCKの立ち下がりエッジによりnop信号S41の‘H’を取り込み、出力信号S42aをANDゲート42bへ出力する。ANDゲート42bは、出力信号S42aが‘H’の時に開いてクロックCKを通過させ、ゲーテッドクロックS42を出力する。
このゲーテッドクロックS42は、FE/DCパイプラインレジスタ28のクロック入力端子とDCステージにおけるレジスタ群24のクロック入力端子とに入力される。同様に、以降のEX,MEM,WBステージにおいても、クロック制御回路43,44,45へは、前段から伝搬してきたnop信号S46,S47,S48が入力され、これらのクロック制御回路43,44,45の出力信号S43,S44,S45が次段のパイプラインレジスタ29,30,31やデータメモリ26へ入力される構成になっている。
(実施例1の動作)
図1のMPUの全体的な動作を説明すると、先ず、命令メモリ22から読み出された命令データS22から、nop検出回路41によりnopが検出された場合、このnop検出回路41から出力されるnop信号S41がイネイブル(この場合は論理‘H’)となる。クロック制御回路42は、nop信号S41が‘H’の期間では、出力するゲーテッドクロックS42を停止する。一方、nop信号S41は、FE/DCステージ間に設置されたF/F46にも入力されており、次段のDCステージヘ伝搬し、同様の動作を行う。
図5は、図1のMPUの具体的な動作例を示すタイミングチャートである。
このタイミングチャートでは、例えば、アドレス2番地(A2)においてnopが出力され、それ以外はnopではない場合のタイミングが示されている。
PC27で生成されたアドレス2番地(A2)が命令メモリ22に与えられると、次のクロックCKの立ち上がりエッジで、命令メモリ22からnopに相当する命令データS22(D2)が出力され、nop検出回路41からnop信号S41が出力される。これを受けて各FE,DC,EX,MEM,WBステージのクロック制御回路42〜45からゲーテッドクロックS42〜S45がそれぞれ出力され、パイプラインレジスタ28〜31、レジスタ群24、及びデータメモリ26へ送られる。このようなnop信号S41が生成されるタイミングと、各FE,DC,EX,MEM,WBステージのnop信号S46〜S48と、次段パイプラインレジスタ28〜31等へのゲーテッドクロックS42〜S45の流れが図5に示されている。
このような信号の流れにより、本実施例1におけるMPUの回路構成によって、各FE,DC,EX,MEM,WBステージにおいてnopが伝搬するのに合わせて、次段パイプラインレジスタ28〜31等へのゲーテッドクロックS42〜S45を停止させることが出来る。
(実施例1の効果)
本実施例1によれば、nopの伝搬に合わせて、動作不要なパイプラインレジスタ28〜31等のゲーテッドクロックS42〜S45を停止させることによって、nop時に動作不要なパイプラインレジスタ28〜31、レジスタ群24、或いはデータメモリ26等の消費電力を低減させることが出来る。更に、パイプラインレジスタ28〜31のゲーテッドクロックS42〜S45を停止させることにより、各FE,DC,EX,MEM,WBステージにおける入力データが保持され、各FE,DC,EX,MEM,WBステージ内の組み合わせ回路の動作も停止するため、更に大きな消費電力低減が期待出来る。
(実施例2の構成)
図6は、本発明の実施例2に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図であり、実施例1を示す図1中の要素と共通の要素には共通の符号が付されている。
本実施例2のMPUでは、実施例1のnop検出回路41に代えて、命令メモリ22から出力される命令データS22の中に、nop命令である場合に論理‘H’を示すnop専用ビットS22aを設け、このnop専用ビットS22aを直接クロック制御回路42、及びFE/DCステージ間のF/F46に入力させる構成となっている。その他の構成は、実施例1と同様である。
(実施例2の動作)
命令メモリ22からフェッチされた命令データS22がnopの場合、nop専用ビットS22aが論理‘H’になる。従って、FEステージでは、命令メモリ22から読み出された1ビットのnop専用ビットS22aをクロック制御回路42へそのまま入力することによって、FE/DCパイプラインレジスタ28や、レジスタ群24のゲーテッドクロックS42を停止させることが出来る。同時に、nop専用ビットS22aをFE/DCステージ間のF/F46へ入力させることにより、以降のEX,MEM,WBステージでも同様のゲーテッドクロック制御が可能である。
(実施例2の効果)
クロック周波数が高い場合、実施例1における命令メモリ22から、nop検出回路41、クロック制御回路42、又はFE/DCステージ間のF/F46に至るパスの遅延時間が問題になる可能性がある。
このような場合、実施例2に見られるように、命令データS22の中にnop専用ビットS22aを設け、このビットS22aを直接クロック制御信号として使用することによって、実施例1のようなnop検出回路41における遅延時間が無くなり、より高速な周波数に対しても対応することが可能になる。更に、実施例1のようなnop検出回路41で消費される電力も削減することが出来る。
(実施例3の構成)
図7は、本発明の実施例3に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図であり、実施例2を示す図6中の要素と共通の要素には共通の符号が付されている。
本実施例3のMPUでは、実施例2の1つの命令メモリ22、命令データS22、及びnop専用ビットS22aに代えて、クロックCKを反転するインバータ51と、ゲーテッドクロックS54に基づき、PC27からのアドレスで指定される命令データS52を出力する命令メモリ52と、インバータ51から出力される反転クロックに基づき、PC27からのアドレスで指定されるnop専用ビットS53を出力する命令メモリ53と、クロックCKとnop専用ビットS53に基づいてゲーテッドクロックS54を出力するクロック制御回路54と、nop専用ビットS53を入力してnop信号S55をクロック制御回路42及びF/F46へ出力するF/F55とを設けている。その他の構成は、実施例2と同様である。
即ち、本実施例3のMPUでは、実施例2の構成に対し、2つの命令メモリ52,53を備えている。一方の命令メモリ52には、nop専用ビットを除く命令データS52が格納されている。他方の命令メモリ53は、nop専用ビットS53のみが格納されている1ビットのメモリである。これらの命令メモリ52,53には、PC27から、同一のプログラムアドレスが同一タイミングで与えられている。命令メモリ53の出力は、前述の通りnop専用ビットS53を示すが、これがクロック制御回路54に入力されており、その状態によってクロックCKを停止させる。クロック制御回路54の出力であるゲーテッドクロックS54は、命令メモリ52のクロックとして用いられる。一方、命令メモリ53から出力される1ビットのnop専用ビットS53は、FEステージに配置されているF/F55に入力され、この出力である1サイクル遅延させた信号が、nop信号S55としてクロック制御回路42と、FE/DCステージ間のF/F46に入力されている。
(実施例3の動作)
図8は、図7のMPUの動作を示すタイミングチャートである。
PC27のアドレス2番地(A2)がnop命令を示すものとする。命令メモリ52と命令メモリ53には、PC27が出力する同一のアドレスが入力されているが、nop専用ビットS53が格納されている命令メモリ53には、クロックCKがインバータ51で反転されて入力されているため、アドレス2番地(A2)入力期間のクロックの立ち下がりエッジで、nop専用ビットS53を出力する。
命令メモリ53から出力されるnop専用ビットS53は、命令メモリ52のクロックを制御するクロック制御回路54に入力されているため、命令メモリ53から出力される命令データS53がnopを示す論理‘H’出力の場合、次サイクルのゲーテッドクロックS54を停止する。命令メモリ53から出力される命令データS53がnopでないことを示す論理‘L’の場合には、ゲーテッドクロックS54は入力される。これは、nop専用ビットS53のみを半クロックサイクル前に出力し、nopを示す場合には、次サイクルのゲーテッドクロックS54を停止、即ち、nop命令時には、nop専用ビットS53以外の命令データS52のフェッチを行わないことを示している。
一方、命令メモリ53から出力されるnop専用ビットS53は、FEステージに配置されているF/F55に入力され、1クロックサイクル遅延させてFE/DCステージ間のF/F46へ入力されており、この出力は更に1サイクル遅延して、DCステージのnop信号S46として使用される。以降の動作は、実施例2と同様である。
(実施例3の効果)
本実施例3によれば、nop専用ビットS53のみを格納する命令メモリ53を用意し、これを他の命令データS52の半クロックサイクル前に読み出し、その命令データS52がnopを示している場合に、不要となる他の命令データのフェッチを停止することによって、nop時における命令メモリ52で消費される電力を削減することが出来、且つ、実施例1、2と同等のクロック制御手段をとることが可能となるため、より大きな低消費電力効果が得られる。
(実施例4の構成)
図9は、本発明の実施例4に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図であり、実施例3を示す図7中の要素と共通の要素には共通の符号が付されている。
本実施例4のMPUでは、実施例3の構成に加え、制御信号生成回路61、論理和ゲート(以下「ORゲート」という。)62,65,67、及びF/F63,64,66が設けられ、その他の構成は実施例3と同様である。
即ち、本実施例4では、実施例3の構成に加え、DCステージには、制御信号生成回路61が設けられ、命令デコーダ23のデコード結果より、各ステージ以降のクロックを制御するための複数のクロクイネイブル信号S61a,S61b,S61cが出力されている。S61aはDCステージ以降を、S61bはEXステージ以降を、S61cはMEMステージ以降のクロックを制御するためのクロックイネイブル信号である。
DCステージ以降のクロックを制御するクロックイネイブル信号S61aは、DCステージにおいて、FEステージのF/F46から伝搬してきたnop信号S46とORゲート62で論理和が取られ、クロック制御回路43に入力されている他、EXステージ以降のnop信号S47として、F/F47により伝搬される。EXステージ以降のクロックを制御するクロックイネイブル信号S61bは、DC/EXステージ間に配置されたF/F64に入力され、この出力は、EXステージにおいて、DCステージと同様にORゲート65によってnop信号S47との論理和が取られ、クロック制御回路44に入力されている他、MEMステージに伝搬される。MEMステージ以降のクロックを制御するクロックイネイブル信号S61cは、DC/EXステージに配置されたF/F63と、EX/MEMステージ間に配置されたF/F66によりMEMステージに伝搬し、同様の処理が行われる構成になっている。
図10は、図9中の制御信号生成回路61の構成例を示す回路図である。
この制御信号生成回路61は、例えば、命令デコーダ23のデコード結果により、パイプラインの途中で処理が終了する命令(例えば、分岐命令等)を検出し、この検出結果に基づきセレクタ61aを切り替えて‘H’のクロックイネーブル信号S61b又はS61cを出力する回路である。
(実施例4の動作)
DCステージに配置されている命令デコーダ23により、例えば、DCステージで実行される分岐命令が検出された場合を考える。分岐命令が実行されるのはDCステージであり、その後のEX,MEM,WBステージはなにも行わずに素通りするため、nopとして扱っても何も問題にならない。そこで、分岐命令をEXステージ以降のパイプラインステージではnopとして扱うようにするため、制御信号生成回路61は、クロックイネイブル信号S61aを論理‘H’とする。
一方、クロックイネイブル信号S61aと、FEステージのF/F46より伝搬されたnop信号S46は、分岐命令であるので論理‘L’となっているが、DCステージで生成されたクロックイネイブル信号S61aとORゲート62により論理和が取られるため、クロック制御回路43への入力は論理‘H’となる。これにより、DC/EXステージ間のパイプラインレジスタ29のクロックが停止されると共に、論理和の出力信号が、次のEXステージのnop信号として、F/F47によりEXステージに伝搬する。EXステージ以降は、このnop信号により同様にクロックが制御される。
(実施例4の効果)
本実施例4によれば、DCステージの命令デコーダ23により検出された命令によって、パイプラインの途中で処理が終了する場合(例えば、命令実行の最後にレジスタ群24への書き込みを行わない分岐命令、ストア命令、比較命令等の場合)、制御信号生成回路61等により、以降のパイプライン動作をnopと同等に変換する(即ち、実施例1におけるnopの場合と同様に、パイプラインレジスタ29,30,31をゲーティングする)ことによって、nop以外の多くの命令(例えば、パイプラインの途中で処理が終了する分岐命令、ストア命令、比較命令等)に適用範囲を広げることが出来、より高い低消費電力効果が期待出来る。
(実施例5の構成)
図11は、本発明の実施例5に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図であり、実施例4を示す図9中の要素と共通の要素には共通の符号が付されている。
本実施例5のMPUでは、実施例4の制御信号生成回路61及びF/F64に代えて、制御信号生成回路71、F/F群72、クロック制御回路73,74、及びEX/MEMパイプラインレジスタ75,75が設けられている。
即ち、本実施例5では、実施例4の構成に加え、クロックイネイブル信号生成用の制御信号生成回路71からは、クロックイネーブル信号S71a,S71cの他に、複数のクロック停止制御信号(例えば、クロックイネイブル信号)S71bが出力され、DC/EX間に配置されているF/F群72に入力されている。F/F群72からは、EXステージで使用されるクロック制御回路73,74へ信号が出力されている。クロック制御回路73,74は、EX/MEMプラインレジスタ75,76へのクロックを供給している。以降の構成は、実施例4と同様である。
本実施例5において、F/F群72、クロック制御回路73,74、及びEX/MEMパイプラインレジスタ75,76をそれぞれ複数個ずつ設ける理由は、次の通りである。EX/MEMパイプラインレジスタ30、及びMEM/WBパイプラインレジスタ31内には、それぞれ複数個のレジスタが存在し、これらのレジスタは命令によって使用、不使用が決まる。従って、命令によってクロック制御を行うレジスタが決まるため、各レジスタ毎にクロック制御回路73,74が必要になるからである。
(実施例5の動作)
本実施例5の特徴的な動作を説明すると、DCステージにある制御信号生成回路71は、命令デコーダ23が解読した命令を基に、EXパイプラインレジスタ75,76を停止させるための制御信号であるクロックイネーブル信号S71bを出力する。F/F群72は、そのクロックイネーブル信号S71bを受け、実行している命令とタイミングを合わせるために1サイクル遅延させる。もし、遅延させないと、今DCステージで解読されている命令が、1つ先の命令が使用しようとしているEX/MEMパイプラインレジスタ30のゲーティングを行ってしまうから、これを避けるためである。
EXステージにあるクロック制御回路73,74は、F/F群72からの信号を受けて、EX/MEMパイプラインレジスタ75,76へのクロックを停止する。
(実施例5の効果)
本実施例5によれば、命令がnopではないときに、各パイプラインレジスタ28〜31で使わない一部のレジスタ(例えば、EX/MEMパイプラインレジスタ75,76)のクロックを停止させ、データを変化させないようにしている。
例えば、EX/MEMステージには、address、WBV、BPRの3つのパイプラインレジスタがあるとする。パイプラインレジスタaddressは、データメモリ26へのアドレス出力となっている。そのため、演算命令の場合、パイプラインレジスタaddressは使用しない。そこで、演算命令の場合に、パイプラインレジスタaddressのクロックを停止させ、データを変化させないことによって、パイプラインレジスタaddressの出力をトグルさせないようにしている。
このような構成により、各パイプラインレジスタ28〜31の消費電力を低減することが出来、より幅広い部分で消費電力を低減させる効果を得ることができる。
(変形例)
本発明は、図示の実施例1〜5に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の(a)〜(d)のようなものがある。
(a) 実施例では、5段パイプラインの場合の例を示しているが、パイプライン段数に拘わらず本発明を適用することが可能である。
(b) 本発明は、デジタル信号処理装置等、パイプラインシステムを持つ全ての回路に広く適用可能である。
(c) 実施例では、nopを示す制御信号として論理‘H’を用いたが、これに限定されるものではない。
(d) 実施例3では、命令メモリ52のクロック入力端子に入力されるゲーテッドクロックS54を制御することによる消費電力低減方法を示しているが、例えば、命令メモリ52がイネイブル信号入力端子等を備える場合、このイネイブル信号入力端子等にゲーテッドクロックS54を入力することにより、nopをフェッチすることがなくなり、消費電力の低減を図ることも可能である。
発明の実施例1に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図である。 従来のRISC方式のMPUにおけるパイプライン構成例を示す概略図である。 図1中のnop検出回路41の構成例を示す回路図である。 図1中のクロック制御回路42の構成例を示す図である。 図1のMPUの具体的な動作例を示すタイミングチャートである。 本発明の実施例2に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図である。 本発明の実施例3に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図である。 図7のMPUの動作を示すタイミングチャートである。 本発明の実施例4に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図である。 図9中の制御信号生成回路61の構成例を示す回路図である。 本発明の実施例5に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図である。
符号の説明
22,52,53 命令メモリ
23 命令デコーダ
24 レジスタ群
25 演算ユニット
26 データメモリ
28〜31,75,76 パイプラインレジスタ
41 nop検出回路
42〜45,54,73,74 クロック制御回路
46〜48,55,63,64,66 F/F
61,71 制御信号生成回路
62,65,67 ORゲート
72 F/F群

Claims (1)

  1. 命令がノン・オペレーションであった場合にノン・オペレーション専用ビット以外の命令データを持ち、クロックの前縁で動作する第1の命令メモリと、
    前記ノン・オペレーション専用ビットのみを格納し、前記クロックの半サイクル前の後縁で動作する第2の命令メモリと、
    前記第2の命令メモリから前記ノン・オペレーション専用ビットが読み出された時に前記第1の命令メモリのクロックを停止させる第1のクロック制御回路と、
    複数のパイプラインにおける初段のパイプラインのフェッチステージに配置され、第2の命令メモリから読み出された前記ノン・オペレーション専用ビットのタイミングを調整してノン・オペレーション信号を出力する第1のフリップフロップと、
    前記複数のパイプラインにおける各パイプライン間に配置され、前記ノン・オペレーション信号を前記各パイプラインに伝搬させる複数の第2のフリップフロップと、
    前記複数のパイプラインにおける各パイプラインに配置され、前記各パイプラインに前記ノン・オペレーションが伝搬する際には、前記各パイプラインのステージにおいて、前記ノン・オペレーション信号に基づき、前記各パイプラインのステージを動作させるためのクロックを停止させ、且つ、前記各パイプラインのステージにおける入力データも保持させる複数の第2のクロック制御回路と、
    を有することを特徴とするマイクロプロセッサ。
JP2006129046A 2006-05-08 2006-05-08 マイクロプロセッサ Expired - Fee Related JP4747026B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006129046A JP4747026B2 (ja) 2006-05-08 2006-05-08 マイクロプロセッサ
US11/730,001 US20070288724A1 (en) 2006-05-08 2007-03-29 Microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006129046A JP4747026B2 (ja) 2006-05-08 2006-05-08 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2007299355A JP2007299355A (ja) 2007-11-15
JP4747026B2 true JP4747026B2 (ja) 2011-08-10

Family

ID=38768772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006129046A Expired - Fee Related JP4747026B2 (ja) 2006-05-08 2006-05-08 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US20070288724A1 (ja)
JP (1) JP4747026B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4864840B2 (ja) * 2007-08-31 2012-02-01 株式会社東芝 マイクロプロセッサ
US20090113403A1 (en) * 2007-09-27 2009-04-30 Microsoft Corporation Replacing no operations with auxiliary code
JP5231800B2 (ja) * 2007-12-26 2013-07-10 株式会社東芝 半導体集積回路装置および半導体集積回路装置のクロック制御方法
US7616043B2 (en) * 2008-02-12 2009-11-10 Sony Computer Entertainment Inc. Methods and apparatus for managing LSI power consumption and degradation using clock signal conditioning
KR101210274B1 (ko) 2008-12-19 2012-12-10 한국전자통신연구원 전력 소모 스케일링이 가능한 프로세서
JP2011237920A (ja) * 2010-05-07 2011-11-24 Sanyo Electric Co Ltd 演算処理装置及び並列演算装置
US20160006433A1 (en) * 2014-07-04 2016-01-07 Semiconductor Energy Laboratory Co.,Ltd. Semiconductor device and electronic device
JP6590718B2 (ja) * 2016-02-03 2019-10-16 キヤノン株式会社 情報処理装置及びその制御方法
CN112100793B (zh) * 2019-05-31 2023-06-13 超威半导体(上海)有限公司 用于重定时流水线的基于条带的自选通

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59151217A (ja) * 1983-02-18 1984-08-29 Hitachi Micro Comput Eng Ltd マイクロコンピユ−タ
JPH0744265A (ja) * 1993-08-03 1995-02-14 Nec Corp パイプライン処理回路
JPH1020959A (ja) * 1996-07-01 1998-01-23 Matsushita Electric Ind Co Ltd 低消費電力マイクロプロセッサ
JP2001092661A (ja) * 1999-09-22 2001-04-06 Hitachi Ltd データ処理装置
JP2001177382A (ja) * 1999-12-14 2001-06-29 Nec Ic Microcomput Syst Ltd 低消費電力回路
JP2001184208A (ja) * 1999-12-27 2001-07-06 Matsushita Electric Ind Co Ltd 低電力マイクロプロセッサおよびプログラム低電力化方法
JP2002268877A (ja) * 2001-03-08 2002-09-20 Matsushita Electric Ind Co Ltd クロック制御方法及び当該クロック制御方法を用いた情報処理装置
JP2004062280A (ja) * 2002-07-25 2004-02-26 Hitachi Ltd 半導体集積回路
JP2004062281A (ja) * 2002-07-25 2004-02-26 Nec Micro Systems Ltd パイプライン演算処理装置及びパイプライン演算制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2323188B (en) * 1997-03-14 2002-02-06 Nokia Mobile Phones Ltd Enabling and disabling clocking signals to elements
US6247134B1 (en) * 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
US6609209B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Method and apparatus for reducing the power consumed by a processor by gating the clock signal to pipeline stages
US6611920B1 (en) * 2000-01-21 2003-08-26 Intel Corporation Clock distribution system for selectively enabling clock signals to portions of a pipelined circuit
US7107471B2 (en) * 2001-03-21 2006-09-12 Apple Computer, Inc. Method and apparatus for saving power in pipelined processors
US7266708B2 (en) * 2004-10-12 2007-09-04 Via Technologies, Inc. System for idling a processor pipeline wherein the fetch stage comprises a multiplexer for outputting NOP that forwards an idle signal through the pipeline
US7398410B2 (en) * 2005-07-08 2008-07-08 National Tsing Hua University Processor employing a power managing mechanism and method of saving power for the same

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59151217A (ja) * 1983-02-18 1984-08-29 Hitachi Micro Comput Eng Ltd マイクロコンピユ−タ
JPH0744265A (ja) * 1993-08-03 1995-02-14 Nec Corp パイプライン処理回路
JPH1020959A (ja) * 1996-07-01 1998-01-23 Matsushita Electric Ind Co Ltd 低消費電力マイクロプロセッサ
JP2001092661A (ja) * 1999-09-22 2001-04-06 Hitachi Ltd データ処理装置
JP2001177382A (ja) * 1999-12-14 2001-06-29 Nec Ic Microcomput Syst Ltd 低消費電力回路
JP2001184208A (ja) * 1999-12-27 2001-07-06 Matsushita Electric Ind Co Ltd 低電力マイクロプロセッサおよびプログラム低電力化方法
JP2002268877A (ja) * 2001-03-08 2002-09-20 Matsushita Electric Ind Co Ltd クロック制御方法及び当該クロック制御方法を用いた情報処理装置
JP2004062280A (ja) * 2002-07-25 2004-02-26 Hitachi Ltd 半導体集積回路
JP2004062281A (ja) * 2002-07-25 2004-02-26 Nec Micro Systems Ltd パイプライン演算処理装置及びパイプライン演算制御方法

Also Published As

Publication number Publication date
JP2007299355A (ja) 2007-11-15
US20070288724A1 (en) 2007-12-13

Similar Documents

Publication Publication Date Title
JP4747026B2 (ja) マイクロプロセッサ
JP3688270B2 (ja) プロセッサの停止
TW514782B (en) System and method for reducing write traffic in processors
JP5231800B2 (ja) 半導体集積回路装置および半導体集積回路装置のクロック制御方法
JP5209933B2 (ja) データ処理装置
JP5491071B2 (ja) 命令融合演算装置および命令融合演算方法
JP5603439B2 (ja) Mux−dスキャン機能を有するパルスダイナミックロジックゲート
US20120311009A1 (en) Hybrid adder using dynamic and static circuits
JP2008542949A (ja) パイプライン型マイクロプロセッサの節電システムおよび節電方法
US20070260857A1 (en) Electronic Circuit
JPH05342084A (ja) データ記憶装置及びデータ記憶方法
WO2007083421A1 (ja) プロセッサ
JP2002366351A (ja) スーパースカラ・プロセッサ
US6401195B1 (en) Method and apparatus for replacing data in an operand latch of a pipeline stage in a processor during a stall
Morton et al. ECSTAC: A fast asynchronous microprocessor
US20090193283A1 (en) Design structure for implementing speculative clock gating of digital logic circuits
US7971161B2 (en) Apparatus and method for implementing speculative clock gating of digital logic circuits
JP2536726B2 (ja) マイクロプロセッサ
US20080229074A1 (en) Design Structure for Localized Control Caching Resulting in Power Efficient Control Logic
JP7487535B2 (ja) 演算処理装置
US20220206799A1 (en) Apparatus for Processor with Hardware Fence and Associated Methods
Boddu et al. A Survey on Effective Implementation of Control Scheme in Processors
US6772318B1 (en) Bypass control circuit
US20120229181A1 (en) Asynchronous circuit
Praveen et al. A survey on control implementation scheme

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080919

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081210

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110419

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110516

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees