JP4747026B2 - マイクロプロセッサ - Google Patents
マイクロプロセッサ Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims description 83
- 230000000644 propagated effect Effects 0.000 claims description 11
- 230000001902 propagating effect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation 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
命令メモリ2から命令(プログラムデータ)を取り出す。
フェッチされた命令を命令デコーダ3でデコードする。同時に、レジスタ群4からレジスタオペランドをリード(フェッチ)する。
デコード結果に基づいて演算ユニット5で演算を行い、若しくはレジスタ群4の値のバイパスを行う。つまり、このEXステージでは、デコード結果とフェッチしたレジスタ群4の値を基に、演算ユニット5で演算を行う(命令を実行する)。例えば、ロード/ストア命令の場合は、実効アドレスの計算を行う。分岐命令の場合は、分岐先アドレスを計算する。
データメモリ6へのリード(読み出し)/ライト(書き込み)を行ったり(即ち、EXステージで計算したアドレスに対応するデータメモリ6の値をリードしたり、そのデータメモリ6へのライトを行ったり)、或いは、演算結果に対するレジスタ群4へのバイパスを行う。
EXステージで計算した結果、又はMEMステージでフェッチしたオペランドをレジスタ群4に格納する(即ち、レジスタ群4への書き戻しを行う)。
図1は、本発明の実施例1に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図である。
このnop検出回路41は、命令データS22のデコード結果により、nop命令を検出し、nop信号S41の‘H’を出力する回路であり、nop命令のコードにもよるが、例えば、全ビットゼロの場合、否定論理和ゲート(以下「NORゲート」という。)41aにより構成される。
図1のMPUの全体的な動作を説明すると、先ず、命令メモリ22から読み出された命令データS22から、nop検出回路41によりnopが検出された場合、このnop検出回路41から出力されるnop信号S41がイネイブル(この場合は論理‘H’)となる。クロック制御回路42は、nop信号S41が‘H’の期間では、出力するゲーテッドクロックS42を停止する。一方、nop信号S41は、FE/DCステージ間に設置されたF/F46にも入力されており、次段のDCステージヘ伝搬し、同様の動作を行う。
このタイミングチャートでは、例えば、アドレス2番地(A2)においてnopが出力され、それ以外はnopではない場合のタイミングが示されている。
本実施例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ステージ内の組み合わせ回路の動作も停止するため、更に大きな消費電力低減が期待出来る。
図6は、本発明の実施例2に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図であり、実施例1を示す図1中の要素と共通の要素には共通の符号が付されている。
命令メモリ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ステージでも同様のゲーテッドクロック制御が可能である。
クロック周波数が高い場合、実施例1における命令メモリ22から、nop検出回路41、クロック制御回路42、又はFE/DCステージ間のF/F46に至るパスの遅延時間が問題になる可能性がある。
図7は、本発明の実施例3に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図であり、実施例2を示す図6中の要素と共通の要素には共通の符号が付されている。
図8は、図7のMPUの動作を示すタイミングチャートである。
本実施例3によれば、nop専用ビットS53のみを格納する命令メモリ53を用意し、これを他の命令データS52の半クロックサイクル前に読み出し、その命令データS52がnopを示している場合に、不要となる他の命令データのフェッチを停止することによって、nop時における命令メモリ52で消費される電力を削減することが出来、且つ、実施例1、2と同等のクロック制御手段をとることが可能となるため、より大きな低消費電力効果が得られる。
図9は、本発明の実施例4に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図であり、実施例3を示す図7中の要素と共通の要素には共通の符号が付されている。
この制御信号生成回路61は、例えば、命令デコーダ23のデコード結果により、パイプラインの途中で処理が終了する命令(例えば、分岐命令等)を検出し、この検出結果に基づきセレクタ61aを切り替えて‘H’のクロックイネーブル信号S61b又はS61cを出力する回路である。
DCステージに配置されている命令デコーダ23により、例えば、DCステージで実行される分岐命令が検出された場合を考える。分岐命令が実行されるのはDCステージであり、その後のEX,MEM,WBステージはなにも行わずに素通りするため、nopとして扱っても何も問題にならない。そこで、分岐命令をEXステージ以降のパイプラインステージではnopとして扱うようにするため、制御信号生成回路61は、クロックイネイブル信号S61aを論理‘H’とする。
本実施例4によれば、DCステージの命令デコーダ23により検出された命令によって、パイプラインの途中で処理が終了する場合(例えば、命令実行の最後にレジスタ群24への書き込みを行わない分岐命令、ストア命令、比較命令等の場合)、制御信号生成回路61等により、以降のパイプライン動作をnopと同等に変換する(即ち、実施例1におけるnopの場合と同様に、パイプラインレジスタ29,30,31をゲーティングする)ことによって、nop以外の多くの命令(例えば、パイプラインの途中で処理が終了する分岐命令、ストア命令、比較命令等)に適用範囲を広げることが出来、より高い低消費電力効果が期待出来る。
図11は、本発明の実施例5に係るRISC方式のMPUにおけるパイプライン構成例を示す概略図であり、実施例4を示す図9中の要素と共通の要素には共通の符号が付されている。
本実施例5の特徴的な動作を説明すると、DCステージにある制御信号生成回路71は、命令デコーダ23が解読した命令を基に、EXパイプラインレジスタ75,76を停止させるための制御信号であるクロックイネーブル信号S71bを出力する。F/F群72は、そのクロックイネーブル信号S71bを受け、実行している命令とタイミングを合わせるために1サイクル遅延させる。もし、遅延させないと、今DCステージで解読されている命令が、1つ先の命令が使用しようとしているEX/MEMパイプラインレジスタ30のゲーティングを行ってしまうから、これを避けるためである。
本実施例5によれば、命令がnopではないときに、各パイプラインレジスタ28〜31で使わない一部のレジスタ(例えば、EX/MEMパイプラインレジスタ75,76)のクロックを停止させ、データを変化させないようにしている。
本発明は、図示の実施例1〜5に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の(a)〜(d)のようなものがある。
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の命令メモリと、
前記ノン・オペレーション専用ビットのみを格納し、前記クロックの半サイクル前の後縁で動作する第2の命令メモリと、
前記第2の命令メモリから前記ノン・オペレーション専用ビットが読み出された時に前記第1の命令メモリのクロックを停止させる第1のクロック制御回路と、
複数のパイプラインにおける初段のパイプラインのフェッチステージに配置され、第2の命令メモリから読み出された前記ノン・オペレーション専用ビットのタイミングを調整してノン・オペレーション信号を出力する第1のフリップフロップと、
前記複数のパイプラインにおける各パイプライン間に配置され、前記ノン・オペレーション信号を前記各パイプラインに伝搬させる複数の第2のフリップフロップと、
前記複数のパイプラインにおける各パイプラインに配置され、前記各パイプラインに前記ノン・オペレーションが伝搬する際には、前記各パイプラインのステージにおいて、前記ノン・オペレーション信号に基づき、前記各パイプラインのステージを動作させるためのクロックを停止させ、且つ、前記各パイプラインのステージにおける入力データも保持させる複数の第2のクロック制御回路と、
を有することを特徴とするマイクロプロセッサ。
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)
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)
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)
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 |
-
2006
- 2006-05-08 JP JP2006129046A patent/JP4747026B2/ja not_active Expired - Fee Related
-
2007
- 2007-03-29 US US11/730,001 patent/US20070288724A1/en not_active Abandoned
Patent Citations (9)
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 |