JP3705022B2 - 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム - Google Patents
低消費電力マイクロプロセッサおよびマイクロプロセッサシステム Download PDFInfo
- Publication number
- JP3705022B2 JP3705022B2 JP19540999A JP19540999A JP3705022B2 JP 3705022 B2 JP3705022 B2 JP 3705022B2 JP 19540999 A JP19540999 A JP 19540999A JP 19540999 A JP19540999 A JP 19540999A JP 3705022 B2 JP3705022 B2 JP 3705022B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- microprocessor
- register
- input
- decoder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 claims description 27
- 239000004065 semiconductor Substances 0.000 claims description 8
- 239000000758 substrate Substances 0.000 claims description 8
- 238000000034 method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000009467 reduction Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 3
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 2
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 2
- 101000917519 Homo sapiens rRNA 2'-O-methyltransferase fibrillarin Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 102100029526 rRNA 2'-O-methyltransferase fibrillarin Human genes 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101000973947 Homo sapiens Probable 28S rRNA (cytosine(4447)-C(5))-methyltransferase Proteins 0.000 description 1
- 102100022407 Probable 28S rRNA (cytosine(4447)-C(5))-methyltransferase Human genes 0.000 description 1
- 101100026605 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) NPL3 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 150000003377 silicon compounds Chemical class 0.000 description 1
- 238000004088 simulation 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- 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/30083—Power or thermal control instructions
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
- Power Sources (AREA)
Description
【発明の属する技術分野】
本発明は、マイクロプロセッサに関する。例えば、浮動小数点演算ユニット(FPU)又はディジタル信号処理プロセッサ(DSP)のように特定用途の専用回路を有するコプロセッサを有し、PDAやモバイルコンピュータのような電池駆動の携帯用電子機器において使用される低消費電力型マイクロプロセッサに適用して有用な技術に関する。更には、前記マイクロプロセッサを組み込んだマイクロプロセッサに適用して有用な技術に関する。
【0002】
【従来の技術】
携帯用電子機器に搭載されるマイクロプロセッサは、演算の高速処理に加え、電池駆動において長時間の使用を可能とするべく低電力化を達成する必要がある。演算の高速処理を達成するためには、マイクロプロセッサに、FPUなどのコプロセッサを設ける技術などが知られている。
【0003】
また、マイクロプロセッサの低電力技術としては以下が知られている。
【0004】
まず、携帯用電子機器では待機時間が多いため、待機時用の低消費電力モードを用意し、待機時にはマイクロプロセッサを動作させるためのクロック周波数を下げる方法がある。具体的な構成としては、クロック周波数を下げるためのクロック分周器を有し、低消費電力モードが選択された際、マイクロプロセッサに前記分周器で分周された周波数を供給する。このことにより、クロック消費電力及び単位時間あたりのトランジスタのスイッチングによる電力が削減され、マイクロプロセッサの低消費電力化が達成される。
【0005】
また、待機時にクロック周波数を下げる方法とは異なり、使用しないモジュールに供給するクロックを遮断する方法がある。例えば、ユーザーブレークコントローラは、プログラムのデバッグを容易にするための回路であるため、通常のプロセッサ動作時には動作していない。ユーザーブレークコントローラなど、通常時動作しないモジュールに対しては、通常時にクロックを遮断しても問題は生じない。クロックを遮断することは、前述した、供給するクロック周波数を下げる方法に比べて低電力化の効果が大きい。クロック遮断を行う具体的な構成としては、クロックの遮断を制御するための制御レジスタにモジュール単位で使用しないモジュールを設定しておき、低消費電力を実行するためのクロック停止命令を実行することにより、前記制御レジスタに設定されているモジュールのクロックを停止させる。この方法では、制御レジスタに設定されたモジュールの消費電力が0となる。制御レジスタに設定されたモジュールを使用する際は、割り込みにより所定のモジュールを復帰させ、クロックの供給を再開させる。しかし、モジュール毎にクロックの供給や遮断を行う方法は、制御レジスタに値を設定するなどのオーバーヘッドが大きくなり、モジュールの実行又は停止が頻繁に切り替わるモジュールには対しては適さない。
特開平8−101820号では、オペレーションを行う部分であるデータパスの電力削減のために、データパスでオペレーションが行われない場合、データパス部の内部回路の動作を停止させる制御信号NOP(No operation)信号を生成する方式が示されている。命令をデコードし、デコードの結果、データパス部でオペレーションが行われない命令であった場合、1ビットのNOP信号CC=1を出力する。NOP信号CC=1のとき、データパス制御信号用のラッチを更新しないようにし、制御信号を不変とする。また、データパスの入出力ラッチを更新しないようにし、入出力データを固定とする。このとき、入力データと制御信号が変化しないので、データパス部でスイッチングを行わないため低消費電力化が可能となる。
【0006】
【発明が解決しようとする課題】
上記に示した、データパス部の内部回路の動作を停止させる制御信号NOP信号を生成する方式は、以下の問題点を抱えている。
【0007】
NOP信号生成方式は、データパスの電力削減が目的であるため、制御部のデコーダで消費する電力は削減されない。制御部のデコーダは、命令発行制御に加え、例外処理、制御信号生成論理等があり、そこで消費される電力は無視できない。
【0008】
更に、電力削減回路は付加回路であることが望ましい。何故なら、例えば、IP(Intellectual Property)による機能部品をコプロセッサとして使用する場合、組み込むIPとしてのコプロセッサの内部に手を加えずに、組み込むIP部位以外に電力削減用の回路を付加するようにすれば、IP回路内部を変更する場合に対して検証工数が削減できる。
【0009】
そこで、本発明の目的は、デコーダ等の制御部及びデータパス部の電力を削減し、かつ電力削減のための付加回路を設ける構成とすることで、低消費電力化と構成の容易化を図ったマイクロプロセッサを提供することである。
【0010】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び図面から明らかになるであろう。
【0011】
【課題を解決するための手段】
上記目的を達成するため、本発明の代表的な実施形態のマイクロプロセッサでは、命令が入力される判定回路と、前記判定回路によって制御される命令選択回路と、前記命令をデコードする命令デコーダと、前記命令デコーダのデコード結果に従い演算を行う演算回路とにより構成され、前記命令選択回路は、前記演算回路に演算を行わせるための命令とは異なる命令が前記判定回路に入力されたとき、前記命令デコーダに第1の命令を供給することを特徴とする。これにより、無関係な命令が入力されたとき、デコーダ内部におけるスイッチング回数が減少し、トランジスタのスイッチング回数が減少し、トランジスタの貫通電流が削減され、デコーダでの消費電力が削減される。
【0012】
更に、本発明の別の代表的な実施形態のマイクロプロセッサでは、命令が入力される判定回路と、前記判定回路によって制御される命令無効化回路と、前記命令を受ける命令レジスタと、前記命令レジスタの出力をデコードする命令デコーダと、前記命令デコーダのデコード結果に従い演算を行う演算回路とにより構成され、前記命令無効化回路は、前記演算回路に演算を行わせるための命令とは異なる命令が前記判定回路に入力されたとき、前記命令レジスタに供給するクロックを停止させることを特徴とする。これにより、命令レジスタの動作が停止し、命令レジスタから命令デコーダへ命令が出力されない。つまり、上記と同様に、デコーダ内部のトランジスタの貫通電流が減少し、デコーダでの消費電力が削減される。
【0013】
更に、本発明の他の代表的な実施形態のマイクロプロセッサでは、命令が入力される判定回路と、前記判定回路によって制御される命令無効化回路と、前記命令を受けるスイッチ回路と、前記スイッチ回路の出力をデコードする命令デコーダと、前記命令デコーダのデコード結果に従い演算を行う演算回路とにより構成され、前記命令無効化回路は、前記演算回路に演算を行わせるための命令とは異なる命令が前記判定回路に入力されたとき、前記スイッチ回路を開放し、前記命令デコーダに命令を供給することを停止させる特徴とする。これにより、上記と同様に命令デコーダでの消費電力の削減が可能となる。
【0014】
【発明の実施の形態】
以下、本発明の代表的な実施形態を図面を用いて説明する。
【0015】
図1は、マイクロプロセッサとその周辺の構成を示している。マイクロプロセッサ101は一つの半導体基板上に形成されている。マイクロプロセッサはバスインタフェースユニット(BIU:Bus Interface Unit)6を介してデータバス4とアドレスバス5とに接続されている。データバス4とアドレスバス5とは、図ではメインメモリ3に接続されている。データバス及びアドレスバスには、メインメモリ以外の外部デバイスに接続される構成も可能であるが、本明細書では省略している。また、半導体装置の集積度の向上に伴い、データバス、アドレスバス及びメインメモリをマイクロプロセッサと同一の基板上に形成しても良い。
【0016】
前記マイクロプロセッサは、前述したBIU6の他、データキャッシュ7、命令キャッシュ8、中央処理装置(CPU:Central Processing Unit)1、浮動小数点演算ユニット(FPU:Floating Point Unit)2及びクロックパルスジェネレータ(CPG:Clock Pulse Generator)18とを有する。マイクロプロセッサは、前記以外に、メモリを制御するためのDMAC(Direct Memory Access Controler)等を有することも可能であるが、本明細書及び図面では省略している。
【0017】
マイクロプロセッサ内に形成されているFPUは、浮動小数点の演算を集中的に処理するためのコプロセッサである。但し、マイクロプロセッサ内に形成されるコプロセッサは、FPUに制限されることはなく、FPU以外、DSP等のように、CPUの処理を補完するための専用処理回路であればよい。更に、専用処理回路に限定されることも無く、複数CPUで構成されたマイクロプロセッサにおけるそれぞれのCPUであってもよい。本明細書では、複数のCPUで構成されたマイクロプロセッサにおけるCPUについても、本発明の趣旨を逸脱しない範囲で、コプロセッサと称することとする。また、図1では、CPUとコプロセッサであるFPUとは同一の半導体基板上に形成されていることになっているが、コプロセッサを別チップで構成することも可能である。コプロセッサを別チップで構成した場合、チップが複数となり実装効率は低下するが、CPUと同一基板上にコプロセッサを形成するための半導体装置の設計の必要が無く、既存のコプロセッサチップをCPUに接続することが可能となり生産が容易となる。本明細書では、便宜上、コプロセッサを別チップとした場合でも、CPUチップとコプロセッサチップとを併せてマイクロプロセッサと呼称するものとする。
【0018】
メインメモリ3はプログラム及びデータを格納している。データバス4は、マイクロプロセッサとメモリ間で行われるデータ転送の経路となる。アドレスバス5は、マイクロプロセッサとメモリとがデータの転送を行う際、マイクロプロセッサからメモリ等へ、アドレスを転送する際の経路となる。BIU6はメインメモリや外部デバイスと間のアドレス及びデータ転送の制御を行う。データキャッシュ7は、マイクロプロセッサ内のCPU及びFPUで処理される或いは処理されたデータを格納する。命令キャッシュ8は、CPU及びFPUで実行される命令を格納する。CPG18は、CPU及びFPUの動作クロックを生成する。
【0019】
以下、CPU1とFPU2の具体的な構成について示す。CPUは命令IAを受け取り、命令レジスタ10に命令を格納する。FPUも同様に、命令キャッシュから命令IAを受取、命令レジスタ11に命令を格納する。CPUの命令とFPUの命令とは、同一の命令キャッシュに記憶されている。命令キャッシュから出力される命令は、CPU側の命令レジスタとFPU側の命令レジスタとに並列に供給される。それぞれのレジスタへと分岐する方法については、分岐手段で行うことが可能である。単なる半導体基板上の金属やシリコン化合物で形成された配線をそれぞれ同じ幅で分岐するなどの方法があるが、特に制限されない。CPU命令レジスタ10及びFPU命令レジスタ11は、CPG18で生成されたCLK1の立上がりで変化するエッジトリガラッチである。但し、図面で示している如く、命令キャッシュとFPU側の命令レジスタとの間には、本発明の特徴である無効化回路9が形成されている。無効化回路については後述する。図面では、命令レジスタ10及び無効化回路とは命令キャッシュからの命令を受ける構成となっているが、特に制限されることなく、直接メインメモリから命令を受ける構成でも良い。更には、メインメモリ以外から命令を受ける構成であっても良い。また、FPUの命令レジスタ11はCPU内に形成されているが、FPU内に形成してもよい。IPとして、FPUをCPUと同一の半導体基板上に形成する場合、或いは別チップとしてFPUをCPUに接続する場合において、組み込むFPUに命令レジスタが形成されているかされていないかによって異なる。また、無効化回路もCPU側に形成されているが、FPU以外のコプロセッサをCPUに接続した場合、或いは従前とは異なるFPUを接続した場合、無効化回路がCPU内にあれば、導入するFPUの内部回路の変更が不要となり、導入が容易となる。一方、FPUを提供することを考えると、提供するFPUに無効化回路があればCPU側の回路変更が不要となる。つまり、無効化回路をCPU或いはコプロセッサの何れに形成するかは、設計及び顧客との関係等により変更することが可能である。但し、無効化回路とレジスタとがFPU内に形成された場合、供給される命令はCPUを経由しないと言うことも可能だが、その場合についても、本明細書では便宜上、CPUを経由してFPUに供給される、と見なす。また、FPUがメモリから命令を受ける際、無効化回路を通してレジスタ11に命令がフェッチされる構成となっているが、無効化回路とレジスタ11の順序は逆であってもよい。但し、命令レジスタの前に無効化回路を設けることで有利な点はあるが、それについては後述する。前述した如く、CPUとFPUとの何れに無効化回路及びレジスタが形成されているかによってその構成は変更することが可能である。
【0020】
CPU命令レジスタ10にフェッチされた命令はCPU内の整数デコーダ12に送られ、命令のデコードが行われる。整数デコーダ12は、整数レジスタ14のリード/ライト制御信号を出力する。また、整数デコーダ12の出力制御信号はラッチ手段13でラッチされ、演算を行うALU16に対して演算処理のための制御信号として出力される。又、CPUと無関係の命令例えば、NOP(NoOperation)命令では、低消費電力のためALUの入力ラッチ15と出力ラッチ17とが更新されないよう制御される。具体的には、NOP命令が整数デコーダ12に入力された場合、整数デコーダ12は、ALUの入力ラッチ15、出力ラッチ17に対し、クロックイネーブル信号“0”(“0”はディスエーブルの意味)を出力し、クロックを停止することによりラッチ更新を防ぐ。一方、FPU命令レジスタ11にフェッチされた命令はCPUモジュールからFPUモジュールに送られ、浮動小数点デコーダ19によって命令のデコードが行われる。浮動小数点デコーダ19は、浮動小数点レジスタ21のリード/ライト制御信号CAを出力する。浮動小数点データや浮動小数点演算結果を保持する浮動小数点レジスタ21は、制御信号CAに従って、データInAがラッチ22に出力され、ラッチされる。ラッチ22にラッチされたデータは演算部である浮動小数点データパス23に入力される。また、浮動小数点デコーダ19より出力される制御信号は、ラッチ20にてラッチされ、ラッチ20は浮動小数点データパスの制御信号CBを出力する。ラッチ22と20とは、CPG18によって出力されるCLK2の立上がりで変化するエッジトリガラッチである。浮動小数点データパス23はラッチ22より出力される浮動小数点演算のためのデータを入力し、浮動小数点演算の結果としての出力OAは、ラッチ24にラッチされる。ラッチ24はCLK1の立上がりで変化するエッジトリガラッチである。ラッチ24の出力OBはレジスタに21入力され、演算結果がレジスタに書き込まれる。データパス入力ラッチ22とデータパス出力ラッチ24とはそれぞれ、ラッチのイネーブル信号EAまたはEBによってラッチの更新が制御される。ラッチのイネーブル信号EA、EBは、それぞれ浮動小数点デコーダ、浮動小数点デコーダラッチ出力から生成される。浮動小数点デコーダに入力される命令がNOP命令の場合は、デコードにより、EA=EB=0を出力し、クロック信号とのANDにより、浮動小数点データパス入出力ラッチへのクロック供給を停止する。NOP命令以外の場合は、EA=EB=1を出力し、浮動小数点データパス入出力ラッチのクロックは供給される。上述した整数デコーダ及び浮動小数点デコーダは、一般的には命令デコーダと呼ばれるデコーダである。命令デコーダとは、一般的には、命令レジスタからの命令を受け、演算器及び演算器に入力されたり演算器から出力するデータをラッチするラッチ回路等の装置を制御するための信号を生成するものである。
【0021】
以下、本発明の特徴となる、上述したCPUモジュール内の無効化回路9についての説明を行う。命令キャッシュから読み出される命令は、上述した通り、CPU命令レジスタ10とにフェッチされると同時にFPUの命令無効化回路に入力される。その際、CPUに対してのみ関係する命令であり、FPUには無関係の命令が命令キャッシュから読み出された場合、無効化回路9はFPU命令レジスタに対してNOP命令を出力する。つまり、FPUに関係のない命令の場合、FPU命令レジスタにはNOP命令がフェッチされることとなる。FPUに無関係の命令が連続して命令キャッシュから送られてくる際、FPU命令レジスタには常にNOP命令がフェッチされる。それにより、FPUモジュールの浮動小数点デコーダ19は、FPUに無関係の命令がCPUで処理されている間、連続したNOP命令のデコードのみを行うこととなる。つまり、デコーダでのスイッチング動作が行われないため、スイッチングによる貫通電流が流れることなく、低消費電力化を達成できる。
【0022】
更に、NOP命令では浮動小数点データパスの入力ラッチ22と出力ラッチ24が更新されないようラッチのイネーブル信号EA又はEBを用いて制御されるため、NOP命令が連続すると、デコードの制御信号CAとCBが一定となり、ラッチはスイッチングを行わない。また、データパスの入出力ラッチが更新されないため、データパスの入出力データInBとOBは不変となる。このとき、入力データと制御信号が変化しないので、データパス部でスイッチングを行わず、低消費電力化が可能となる。
【0023】
図2では、図1の命令キャッシュからCPUに出力される命令コード列の一例を示している。図示された命令コード列を用いて浮動小数点命令レジスタに接続される命令無効化回路の動作を示す。図2の命令コード列では、整数命令(CPU命令)と浮動小数点演算命令(FPU命令)が混在している。命令キャッシュからは図示された如く、CPU命令とFPU命令とが混在した状態で順次CPUに送られてくる。上述した命令無効化回路は、命令キャッシュから送られてくる図2に示している命令コード列の中から、FPUに無関係な命令を無効NOP命令に置き換える。置き換えられた命令コード列を図3に示している。つまり、図1のCPU命令レジスタ10には図2に示されている命令コード列が入力され、図1のFPU命令レジスタ11には図3の命令コード列が入力されることとなる。図2の命令コード列の1番目、4番目のFPU命令はそのままFPU命令レジスタに出力され、他のCPU命令は均一なNOP命令に置き換えられFPU命令レジスタに出力される。
【0024】
図4には、入力された命令を処理する命令無効化回路の具体的な構成例を示す。命令キャッシュから送られてくる命令のそれぞれが図示されている命令コードのフォーマットで記載されているとする。命令コード内の2つの斜線部分のそれぞれが、条件Aと条件Bとを同時に満たしている場合に、その命令がFPU命令であると仮定する。命令無効化回路に命令コード401が入力された場合、2つの斜線部分が条件A及び条件Bを満たしているか否かを比較器402、403で比較する。比較器出力をANDゲート404により論理和することで、入力された命令コード401がFPU命令であるか否かを判定する。条件A及び条件Bとが共に成立した時はセレクタ405で命令無効化回路に入力された命令コード401が選択され、命令無効化回路の出力としてFPU命令レジスタに出力される。条件A及び条件Bが成立しない時は、入力された命令がFPUには関係の無い命令と判断され、命令無効化回路はFPU命令レジスタに対してNOP命令を出力する。一方、命令フォーマットによっては、命令コードの1ビットの参照で、FPU命令かどうか判定できる場合がある。この場合は図4の比較器が不要であり、FPU命令であるか否かを示す1ビットをセレクタの制御信号とすることで、命令無効化回路が構成できる。命令を処理する無効化回路の構成については、マイクロプロセッサの命令コードの中の、FPUを制御する命令の形態によって拘束されることとなるが、本発明の趣旨を逸脱しない範囲で様々な変更例が考えられる。
【0025】
ところで、本実施形態では、命令無効化回路が命令キャッシュと命令レジスタとの間に形成されているが、特に制限される訳ではない。例えば、命令無効化回路を浮動小数点デコーダの中に形成することも可能である。この場合、図1の無効化回路9は浮動小数点デコーダ19の中に形成されることとなる。この場合も無効化回路は、デコードに先立って、命令コード401の所定ビットをもとに、デコードに入力された命令がFPU命令か否かを判断し、入力された命令がFPU命令であれば入力された命令をデコードしてFPUでの演算を行う。一方、所定ビットにより、入力された命令がFPU命令では無いと判断した場合は、命令デコード手段に対してNOP命令を出力する。
【0026】
図5にタイミングチャートを用いて、図1の命令無効化回路による浮動小数点演算ユニットの電力削減機構を示す。命令キャッシュからフェッチされる命令列は図2と同一とする。まず、浮動小数点命令での動作を説明する。浮動小数点無効化回路の入力をIA、出力をIBとする。無効化回路によって、CPU命令はNOP命令に置き換えられ、FPU命令はそのまま出力されるので、IBは図3と同じ命令列となる。FPU命令レジスタ11はIBを入力とし、命令コードICを出力する。ICがFPU1命令のとき(time=3:図5の3)、浮動小数点デコーダ19は、浮動小数点レジスタ、浮動小数点データパス回路でFPU1演算を行うようtime=3で制御信号CAとしてFPU1命令用制御信号fpu_cont1を出力する。制御信号CAがfpu_cont1のとき、time=3で浮動小数点レジスタ21から入力データinput1が読み出され、ラッチ22に出力される。また、浮動小数点データパス制御信号CBは、制御信号ラッチ20でラッチされた後、FPU1命令用制御信号fpu_cont1が出力される。浮動小数点のデータパスの入力ラッチ22のイネーブル信号EA=1と出力ラッチ24のイネーブル信号EB=1となることから、time=4で入力InBがinput1で、浮動小数点データパス回路でFPU1演算が行なわれ、出力ラッチ24で結果output1をラッチし、time=5でOBとして出力する。
【0027】
次に、FPUにおけるCPU命令での動作を説明する。浮動小数点無効化回路の入力をIA、出力をIBとすると、図3と同様にIBではCPU命令がNOP命令に置き換わる。浮動小数点命令レジスタ11はIBを入力とし、命令コードICを出力する。ICがNOP命令のとき(time=5)、浮動小数点デコーダ19は制御信号CAとして、演算を行なわない制御信号cont_NOPをtime=5で出力する。制御信号CAにより浮動小数点レジスタファイル21からInAが読み出され、ラッチ22の入力となる。制御信号CAがcont_NOPのとき、NOP命令の命令コードからレジスタ値が読み出され、入力値はinput_NOPとなる。浮動小数点データパスの入力ラッチ22のクロック信号はCPGからのCLK2とイネーブル信号EAとのANDとなり、演算に無関係なラッチは更新されない。NOP命令の場合は制御信号CAがcont_NOPでEA =0となり、ラッチ22出力すなわちInBは更新されない。
【0028】
つまり、NOP命令の場合(time=6〜9)、ラッチ22の出力InBは、FPU1命令と同じくinput1である。ラッチ20は常に更新されるため、浮動小数点データパス制御信号CBは、NOP命令の場合cont_NOPを出力する。浮動小数点データパス回路23は入力はInB、制御信号はCBなので、入力はinput1であり、time=4のFPU1命令と共通であるが、制御信号がfpu_cont1からcont_NOPと異なるため、出力OAはtime=6〜9でoutput1*となる。浮動小数点データパスの出力ラッチ24のクロック信号はCLK1とイネーブル信号EBとのANDなので、浮動小数点データパス入力ラッチ22と同様に、演算に無関係なラッチは更新されない。NOP命令中は、time=6〜9でEB=0で更新されずラッチ24の出力OBはoutput1で不変である。
【0029】
以上のようにCPU命令が連続すると、無効化回路で連続するNOP命令に置き換えられ、浮動小数点データパス入力InBとデータパス制御信号CBが一定となり、データパス回路のスイッチングが行なわれない。また、浮動小数点デコーダ入力ICが一定となり、浮動小数点デコーダと浮動小数点レジスタのスイッチングが行なわれない。このため、データパス回路、浮動小数点デコーダと浮動小数点レジスタの消費電力を削減することができる。FPU命令とCPU命令が交互に並ぶ場合でも、浮動小数点データパス入出力ラッチ22、24のスイッチング回数が減少し、消費電力が削減される。
【0030】
本発明の命令無効化回路は、命令レジスタの前段に置けばよく、FPUの内部を変更することがない。
【0031】
図6には、本発明の別の実施形態を示している。ここでの実施形態では、命令無効化回路を図1のデコード方式に換えて、無効制御レジスタによる構成としている。具体的には、浮動小数点演算ユニット(FPU:Floating Point Unit)を持つマイクロプロセッサについて、無効制御レジスタを用いた命令無効化回路による浮動小数点演算ユニットの電力削減機構の構成をとっている。図6に示す実施例の特徴とするところは、図1に示す構成に対して、モジュール単位で有効/無効を決定する無効制御レジスタを備え、無効化回路を制御することにある。無効制御レジスタ51に無効(1)と設定されたモジュールの命令コード無効化回路9をアクティブにする。無効制御レジスタをソフトウェアで書き換えられるようにすれば、ソフトウェアでモジュール単位で命令コード無効化を設定できる。図1の実施形態と図6の実施形態との相違点は、図1の実施形態がFPUモジュールに無関係な命令を検出し、モジュールに無関係な命令をNOP命令に置き換え、命令レジスタの入力とするのに対し、図6の実施形態では、無効制御レジスタに無効と設定されたモジュールは命令コードを無条件にNOP命令に置き換え、命令レジスタの入力とすることである。
【0032】
図7には、図6の実施形態の命令無効化回路の構成例を示す。命令キャッシュより命令コード702を入力、無効制御レジスタ701出力をセレクタ制御信号とし、無効制御レジスタでモジュールが無効(1)と設定された場合、セレクタ703でNOP命令が選択され、モジュールが有効(0)と設定された場合、命令コードが選択され、命令無効化回路出力704となる。他の回路構成は図1と同様であり、タイミングチャートは図5と同様である。図6の実施形態は、図1の実施形態に対し、命令無効化回路は簡易となるが、無効命令レジスタを変更するためのオーバーヘッドが増加する。もちろん、図6の実施形態と図1の実施形態とを組み合わせた構成とすることも可能である。具体的には、無効制御レジスタでモジュールを無効と設定した場合は、図6の実施形態の如く、無条件にNOP命令を対象のモジュールに出力する。一方、無効制御レジスタでモジュールを有効と設定した場合も、図1の実施形態の如く、対象となるモジュールに関係のない命令に関してはNOP命令を対象となるモジュールに出力する。この構成であれば回路構成は複雑となるが、きめの細かい低消費電力制御が可能となる。
【0033】
図8には、本発明の第三の実施形態として、コプロセッサ71を持つマイクロプロセッサを示している。図8に示す実施例の特徴とするところは、図1に対して、CPUモジュール内にコプロセッサ用デコーダ19を備えていることである。無効化回路は、コプロセッサ71と無関係な命令をNOP命令に置き換え、コプロセッサ用のデコーダに出力する。コプロセッサに関係の無い命令、つまりNOP命令が連続することで、デコーダの消費電力は削減される。更に、コプロセッサ回路62の制御信号を一定とし、コプロセッサのラッチ61を更新しないことで、ラッチ61のスイッチング回数が減少し、電力を削減することも可能である。コプロセッサ用無効化回路は図4と同様に構成できる。本実施形態は、コプロセッサモジュールの中に命令のデコーダを設けていないため、IPとしてコプロセッサを導入する際、第1の実施形態に比べて、IPの選択の幅が広がる。
【0034】
図9には本発明の第四の実施例を示す。図9に示す実施例の特徴とするところは、コプロセッサ71を持つ図8のマイクロプロセッサに対して、モジュール単位で有効/無効を決定する無効制御レジスタを備え、無効化回路を制御することである。無効化回路は図7と同様に構成できる。図8に対して命令無効化回路は簡易となるが、無効命令レジスタを変更するためのオーバーヘッドが増加する。
【0035】
図10には別の実施形態を示している。上述した何れの実施形態においても、無効化回路は、NOP命令を出力するとしているが、命令としてのNOP命令でなくても可能である。具体的には、レジスタ11に供給されるクロックを停止させることで達成することも可能である。NOP命令を出力する代わりに、レジスタ11のクロック供給を停止したとしても、デコーダに供給される命令は変化しなくなる。つまり、無効化回路に入力された命令がFPUに無関係な命令であった場合、制御回路に対して制御信号を出力する。制御回路は、前記制御信号が入力されることで、レジスタ11に供給されるクロックを停止する。それにより、デコーダに供給される命令は固定され、デコーダ内でのスイッチング回数は減少し、デコーダでの消費電力は削減される。その際、NOP命令がデコーダに入力された場合にはクロックの供給が停止されるレジスタ20,22,24に対して、NOP命令がデコーダに供給されたのと同じ状態にするため、レジスタ20,22,24に供給するクロックを停止させることも可能である。これにより、レジスタ20,22,24での消費電力の低減が可能となる。制御回路は、CPG18とレジスタ及び各ラッチとの間に設けられている。制御回路は、FPUモジュール側に設けているが、勿論CPU側に設けることも可能である。
【0036】
更に、図示はしていないが、更なる実施形態も可能である。例えば、FPUとは無関係な命令がFPUに入力された場合、デコーダに供給する命令を遮断することも可能である。具体的には、デコーダの前段に遮断回路を設け、FPUとは無関係な命令が無効化回路に入力された場合、遮断回路によりデコーダとレジスタ或いはレジスタと無効化回路とを開放する方法も考えられる。この方法だと、より確実にデコーダの動作を停止させることが可能となる。更に、前記遮断回路を命令レジスタの手前に設けることで、命令レジスタでの消費電力も削減できる。また、本実施形態では、命令の一つとしてのNOP命令に特筆しているが、命令としてのNOPに特定される訳ではない。例えば、FPU命令とは無関係な命令が無効化回路に入力された場合、選択手段により、全てが“1”のコードをデコーダに供給することも可能である。この場合も、デコーダでのスイッチング回数は削減され、デコーダでの消費電力低減が可能となる。勿論、“1”以外に“0”も可能であるし、その他の特定のコードでも可能である。また、FPUの命令コードを参照して、FPU以外の命令が入力された場合にデコードを固定する際、スイッチング回数が最も削減されるコードをシミュレーション等で計算し、そのコードを無効化回路によってデコーダに供給することも可能である。この方だと、デコーダでの電力削減効果がより大きくなる。
【0037】
上述した実施形態においては、命令無効化回路をコプロセッサのデコーダ前、具体的にはFPUモジュール側に設けているが、無効化回路をCPU側のデコーダの前段に設けることも可能である。これにより、CPUに無関係の命令つまりコプロセッサ命令によりコプロセッサが処理している間、CPU命令レジスタに対してNOP命令を供給することが可能となり、CPUの整数デコーダでのスイッチング回数を削減でき、CPUの消費電力削減を実現することも可能となる。併せて、CPU側のデータパスのラッチを固定することで一層の電力削減効果が期待できる。また、上述の方法とコプロセッサのデコーダのデコードを停止させる方法とを組み合わせることで更なる電力削減が可能となる。また、複数のCPUと複数のコプロセッサとの組合せにより構成されたマイクロプロセッサにおいて、複数存在する命令デコーダに、本発明の無効化回路を設けることで、それぞれの処理装置の電力削減が可能となり、全体としての電力削減が達成できる。また、単一のCPUについても本発明を応用することは可能である。
【0038】
また、本実施形態では、NOP命令等が連続することで、デコーダでのスイッチングを停止させることを記載しているが、処理装置に無関係な命令が入力される場合に比べてスイッチングの回数が減少する場合も含むものである。演算器に関係の無い命令が連続して無効化回路に入力された場合、一つ目の命令をNOP1命令へ、2つ目の命令をNOP2命令へ、3つ目の命令をNOP3へと変換し、4つ目の命令を再びNOP1命令へと変換させる等の方法により、デコーダの少しのトランジスタを動作させたとしても、それらの命令により、無関係な命令がデコーダに入力され場合に比べて電力削減の効果が期待できる。つまり、前述した命令も、実質的に本明細書で記すNOP命令であると考えられる。勿論、前述したNOP命令に準ずる“1”、“0”或いは、コプロセッサの命令を基に決定された命令などの固定された命令についても同じである。
【0039】
以上、本発明の具体的な実施形態を述べてきたが、それらに制限される訳ではない。デコーダでの電力削減との本発明の思想を逸脱しない範囲で様々な実施形態が考えられる。
【0040】
更に、上記に示したマイクロプロセッサを、携帯電話やPDA、モバイルコンピュータなどの、電池で駆動される場面のある携帯電子機器に搭載することで、携帯電子機器の消費電力が低減され、電池の使用可能時間が延び、携帯電子機器の利便性が向上する。
【0041】
【発明の効果】
以上説明したように、FPUを持つマイクロプロセッサにおいて、本発明の無効化回路によって、FPUと無関係な命令列を均一なNOP命令等に置き換えてFPUに供給する。これにより、FPUと無関係な命令の場合、NOP命令がFPUの命令デコーダに供給され、浮動小数点デコーダを構成しているトランジスタのスイッチング回数を削減し、消費電力の低減化が実現できる。同様に、コプロセッサを持つプロセッサにおいて、本発明の無効化回路によりコプロセッサの消費電力を低減できる。CPUにおいても、CPU命令デコーダの前段に命令無効化回路を備えることにより、CPUと無関係な命令、例えば浮動小数点演算命令をNOP命令に置き換えることができ、同様の理由で、CPUの命令デコーダで消費電力を削減できる。これらの命令無効化回路は、FPUあるいはコプロセッサの内部を変更する必要のない付加回路で構成することも可能である。新規設計の検証工数を削減するだけでなく、既存回路にも適用が可能である。
【0042】
更に、上記マイクロプロセッサを携帯情報機器等のマイクロプロセッサシステムに組み込むことで、携帯電子機器等の低消費電力化が可能である。
【図面の簡単な説明】
【図1】本発明の第一の実施例を示す低電力マイクロプロセッサの構成図である。
【図2】本発明の無効化回路の入力となる命令列を示す図である。
【図3】本発明の無効化回路の出力となる命令列を示す図である。
【図4】本発明の無効化回路の構成図である。
【図5】図1に示す構成のタイミングチャート図である。
【図6】本発明の第二の実施例に係わる無効制御レジスタを用いた無効化回路を有する低電力マイクロプロセッサの構成図である。
【図7】本発明の無効制御レジスタを用いた無効化回路の構成図である。
【図8】本発明の第三の実施例に係わる無効化回路を有する低電力マイクロプロセッサの構成図である。
【図9】本発明の第四の実施例に係わる無効制御レジスタを用いた無効化回路を有する低電力マイクロプロセッサの構成図である。
【図10】本発明の第5の実施例に係わる無効化回路を有する低電力マイクロプロセッサの構成図である。
【符号の説明】
101:マイクロプロセッサ
1:CPU、2:FPU
3:メインメモリ、4:データバス、5:アドレスバス、6:BIU
7:データキャッシュ、8:命令キャッシュ
9:命令無効化回路
10:CPU用命令レジスタ、11:FPU用命令レジスタ
12:整数デコーダ、13:整数デコーダ用ラッチ、
14:整数レジスタファイル、15:ALU入力ラッチ、16:ALU
17:ALU出力ラッチ
18:CPG
19:浮動小数点デコーダ
20:浮動小数点デコーダ用ラッチ、21:浮動小数点レジスタファイル
22:浮動小数点データパス入力ラッチ
23:浮動小数点データパス回路
24:浮動小数点データパス出力ラッチ
51, 701:無効制御レジスタ
61:コプロセッサ用ラッチ
62:コプロセッサ回路
71:コプロセッサ
401, 702:命令コード
402, 403:比較器
404 :ANDゲート
405, 703:2入力セレクタ
406, 704:無効化回路出力。
Claims (15)
- 命令が入力される命令処理回路と、
該命令処理回路の出力を入力とする第1のレジスタと、
該第1のレジスタの出力を入力とする命令デコーダと、
前記命令デコーダのデコード結果に従い演算を行う演算器とを有し、
前記命令処理回路は、入力された命令が所定命令の場合、前記入力された命令を前記命令デコーダに出力し、入力された命令が前記所定命令以外の命令の場合、前記第1のレジスタへのクロック供給を停止することを特徴とするマイクロプロセッサ。 - 請求項1に記載のマイクロプロセッサにおいて、
前記命令処理回路は、命令判定回路とクロックが制御されてクロックを前記第1のレジスタに供給する制御回路とを有し、
前記命令判定回路は、前記命令処理回路に入力された命令が前記所定命令であるか否かを判定し、
前記制御回路は、当該判定の結果に基づき、前記第1のレジスタへのクロック供給を停止することを特徴とするマイクロプロセッサ。 - 請求項1または2記載のマイクロプロセッサにおいて、
前記所定命令は、前記演算器に演算を行わせるための命令であることを特徴とするマイクロプロセッサ。 - 請求項1から3のいずれかに記載のマイクロプロセッサにおいて、
前記演算器は、特定演算回路の演算器であることを特徴とするマイクロプロセッサ。 - 請求項4に記載のマイクロプロセッサにおいて、
前記特定演算回路はFPUであることを特徴とするマイクロプロセッサ。 - 請求項1から5のいずれかに記載のマイクロプロセッサにおいて、
前記演算器は、第1のラッチに格納されたデータの演算を行い、演算結果を第2のラッチに出力し、
前記命令デコーダに前記第1の命令が入力されたとき、前記第1のラッチと前記第2のラッチとに対して供給されるクロックが停止されることを特徴とするマイクロプロセッサ。 - 請求項1から6のいずれかに記載のマイクロプロセッサにおいて、
前記マイクロプロセッサは、更に、命令を受ける第2のレジスタと、
該第2のレジスタに接続された第2の命令デコーダと、
該第2の命令デコーダの出力によって制御される第2の演算器とを有し、
前記命令処理回路に供給される命令と前記第2のレジスタとに入力される命令とは同じ命令であることを特徴とするマイクロプロセッサ。 - 請求項1から7のいずれかに記載のマイクロプロセッサにおいて、
前記マイクロプロセッサは、同一の半導体基板上に形成されていることを特徴とするマイクロプロセッサ。 - メモリからの命令が入力される命令処理回路と、
該命令処理回路の出力をデコードする第1のデコーダと、
該第1のデコーダのデコード結果に従い演算を行う第1の演算器と、
前記命令処理回路の出力を入力とする命令レジスタと、
該命令レジスタの出力をデコードする第2のデコーダと、
該第2のデコーダのデコード結果に従い演算を行う第2の演算器とを有し、
前記命令処理回路に入力された命令が第2の演算器に演算を行わせる命令でない場合、前記命令レジスタへのクロック供給を停止することを特徴とするマイクロプロセッサ。 - 命令が入力される命令処理回路と、
該命令処理回路の出力を入力とする命令レジスタと、
該命令レジスタの出力が入力される命令デコーダと、
前記命令デコーダのデコード結果に従って演算を行う演算器とを有し、
前記命令処理回路は、クロックが制御されてクロックを前記命令レジスタに供給する制御回路と、前記入力された命令の所定ビットが入力される判定回路とを有し、
前記判定回路は、前記所定ビットが第1の状態であるか否かを判定し、
前記制御回路は、前記所定ビットが第1の状態でなかった場合、前記第1のレジスタへのクロック供給を停止することを特徴とするマイクロプロセッサ。 - 請求項10に記載のマイクロプロセッサにおいて、
前記演算器は、特定演算回路の演算器であることを特徴とするマイクロプロセッサ。 - 請求項11に記載のマイクロプロセッサにおいて、
前記特定演算回路はFPUであることを特徴とするマイクロプロセッサ。 - 請求項10から12のいずれかに記載のマイクロプロセッサにおいて、
前記演算器は、第1のラッチに格納されたデータの演算を行い、演算結果を第2のラッチに出力し、
前記命令デコーダに前記第1の命令が入力されたとき、前記第1のラッチと前記第2のラッチとに対して供給されるクロックが停止されることを特徴とするマイクロプロセッサ。 - 請求項10から13のいずれかに記載のマイクロプロセッサにおいて、
前記マイクロプロセッサは、更に、命令を受ける第2のレジスタと、
該第2のレジスタに接続された第2の命令デコーダと、
該第2の命令デコーダの出力によって制御される第2の演算器とを有し、
前記命令処理回路に供給される命令と前記第2のレジスタとに入力される命令とは同じ命令であることを特徴とするマイクロプロセッサ。 - 請求項10から14のいずれかに記載のマイクロプロセッサにおいて、
前記マイクロプロセッサは、同一の半導体基板上に形成されていることを特徴とするマイクロプロセッサ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19540999A JP3705022B2 (ja) | 1999-07-09 | 1999-07-09 | 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム |
US09/603,965 US6877087B1 (en) | 1999-07-09 | 2000-06-26 | Substituting specified instruction with NOP to functional unit and halting clock pulses to data latches for power saving |
US11/095,685 US7178046B2 (en) | 1999-07-09 | 2005-04-01 | Halting clock signals to input and result latches in processing path upon fetching of instruction not supported |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19540999A JP3705022B2 (ja) | 1999-07-09 | 1999-07-09 | 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005168976A Division JP3906865B2 (ja) | 2005-06-09 | 2005-06-09 | 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001022582A JP2001022582A (ja) | 2001-01-26 |
JP2001022582A5 JP2001022582A5 (ja) | 2004-11-18 |
JP3705022B2 true JP3705022B2 (ja) | 2005-10-12 |
Family
ID=16340630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19540999A Expired - Fee Related JP3705022B2 (ja) | 1999-07-09 | 1999-07-09 | 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム |
Country Status (2)
Country | Link |
---|---|
US (2) | US6877087B1 (ja) |
JP (1) | JP3705022B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4026753B2 (ja) | 2002-07-25 | 2007-12-26 | 株式会社日立製作所 | 半導体集積回路 |
US20040205326A1 (en) * | 2003-03-12 | 2004-10-14 | Sindagi Vijay K.G. | Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution |
JP4846226B2 (ja) | 2004-10-26 | 2011-12-28 | 株式会社日立ソリューションズ | 情報処理装置、情報処理方法、およびプログラム |
US8806228B2 (en) * | 2006-07-13 | 2014-08-12 | International Business Machines Corporation | Systems and methods for asymmetrical performance multi-processors |
US9015501B2 (en) * | 2006-07-13 | 2015-04-21 | International Business Machines Corporation | Structure for asymmetrical performance multi-processors |
US7689402B2 (en) * | 2006-11-17 | 2010-03-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for retrieving application-specific code using memory access capabilities of a host processor |
JP4864840B2 (ja) * | 2007-08-31 | 2012-02-01 | 株式会社東芝 | マイクロプロセッサ |
US8185883B2 (en) | 2007-09-14 | 2012-05-22 | International Business Machines Corporation | Instruction exploitation through loader late fix-up |
JP5489402B2 (ja) * | 2007-11-02 | 2014-05-14 | 三菱電機株式会社 | 信号処理プロセッサ |
JP5211778B2 (ja) * | 2008-03-17 | 2013-06-12 | 富士通株式会社 | ジョブ割当装置、並列計算機システム、ジョブ割当方法、及び、ジョブ割当プログラム |
EP2629204B1 (en) * | 2010-10-14 | 2019-02-13 | Toyota Jidosha Kabushiki Kaisha | Vehicle data acquisition system and vehicle data acquisition method |
US9323319B2 (en) * | 2011-06-29 | 2016-04-26 | Nec Corporation | Multiprocessor system and method of saving energy therein |
JP5730793B2 (ja) * | 2012-01-17 | 2015-06-10 | アラクサラネットワークス株式会社 | ネットワーク中継装置およびその制御方法 |
US20140164738A1 (en) * | 2012-12-07 | 2014-06-12 | Nvidia Corporation | Instruction categorization for runahead operation |
US10447461B2 (en) * | 2015-12-01 | 2019-10-15 | Infineon Technologies Austria Ag | Accessing data via different clocks |
US12067395B2 (en) * | 2021-08-12 | 2024-08-20 | Tenstorrent Inc. | Pre-staged instruction registers for variable length instruction set machine |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4167778A (en) * | 1975-11-28 | 1979-09-11 | Sperry Rand Corporation | Invalid instruction code detector |
JPS58127262A (ja) * | 1982-01-25 | 1983-07-29 | Toshiba Corp | マイクロコンピユ−タ |
US5031096A (en) * | 1988-06-30 | 1991-07-09 | International Business Machines Corporation | Method and apparatus for compressing the execution time of an instruction stream executing in a pipelined processor |
US5212693A (en) * | 1990-08-02 | 1993-05-18 | Ibm Corporation | Small programmable array to the on-chip control store for microcode correction |
JPH04111127A (ja) | 1990-08-31 | 1992-04-13 | Toshiba Corp | 演算処理装置 |
JPH06119168A (ja) | 1992-10-07 | 1994-04-28 | Nec Corp | 命令デコード方法 |
US5392437A (en) * | 1992-11-06 | 1995-02-21 | Intel Corporation | Method and apparatus for independently stopping and restarting functional units |
JPH08101820A (ja) | 1994-09-30 | 1996-04-16 | Toshiba Corp | マイクロプロセッサ |
US5619408A (en) * | 1995-02-10 | 1997-04-08 | International Business Machines Corporation | Method and system for recoding noneffective instructions within a data processing system |
US5745375A (en) * | 1995-09-29 | 1998-04-28 | Intel Corporation | Apparatus and method for controlling power usage |
US5742794A (en) * | 1995-10-13 | 1998-04-21 | Dell Usa, L.P. | Emulation techniques for computer systems having mixed processor/software configurations |
US5860000A (en) * | 1996-01-31 | 1999-01-12 | Hitachi Micro Systems, Inc. | Floating point unit pipeline synchronized with processor pipeline |
US5940311A (en) * | 1996-04-30 | 1999-08-17 | Texas Instruments Incorporated | Immediate floating-point operand reformatting in a microprocessor |
GB2323188B (en) | 1997-03-14 | 2002-02-06 | Nokia Mobile Phones Ltd | Enabling and disabling clocking signals to elements |
JPH113225A (ja) | 1997-06-13 | 1999-01-06 | Nec Corp | 情報処理装置 |
JP3841967B2 (ja) * | 1999-01-19 | 2006-11-08 | 株式会社ルネサステクノロジ | マイクロプロセッサ |
JP3616556B2 (ja) | 1999-06-29 | 2005-02-02 | 株式会社東芝 | 拡張命令を処理する並列プロセッサ |
-
1999
- 1999-07-09 JP JP19540999A patent/JP3705022B2/ja not_active Expired - Fee Related
-
2000
- 2000-06-26 US US09/603,965 patent/US6877087B1/en not_active Expired - Lifetime
-
2005
- 2005-04-01 US US11/095,685 patent/US7178046B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20050169086A1 (en) | 2005-08-04 |
US7178046B2 (en) | 2007-02-13 |
US6877087B1 (en) | 2005-04-05 |
JP2001022582A (ja) | 2001-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7178046B2 (en) | Halting clock signals to input and result latches in processing path upon fetching of instruction not supported | |
US7013406B2 (en) | Method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device | |
US6910141B2 (en) | Pipelined data processor with signal-initiated power management control | |
US8291201B2 (en) | Dynamic merging of pipeline stages in an execution pipeline to reduce power consumption | |
US8051315B2 (en) | Power throttling apparatus | |
TWI516909B (zh) | 包括在裝置中自主的硬體式深度省電之能源效率及能源節約的方法、設備及系統 | |
US20040205326A1 (en) | Early predicate evaluation to reduce power in very long instruction word processors employing predicate execution | |
WO2007122596A1 (en) | Method and system for power-state transition controllers | |
JP2008542949A (ja) | パイプライン型マイクロプロセッサの節電システムおよび節電方法 | |
JP2001202155A (ja) | 低消費電力処理装置 | |
JP7495422B2 (ja) | 適応的な相互接続ルーティングのためのシステム、装置及び方法 | |
US7263621B2 (en) | System for reducing power consumption in a microprocessor having multiple instruction decoders that are coupled to selectors receiving their own output as feedback | |
JPH10301659A (ja) | マイクロプロセッサ | |
JP3906865B2 (ja) | 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム | |
JP4800582B2 (ja) | 演算処理装置 | |
JP4764387B2 (ja) | 半導体装置 | |
US7290153B2 (en) | System, method, and apparatus for reducing power consumption in a microprocessor | |
JP5414323B2 (ja) | 半導体集積回路装置 | |
JP3729142B2 (ja) | 並列演算処理装置 | |
Multanen et al. | Power optimizations for transport triggered SIMD processors | |
Alalusi et al. | Variable word width computation for low power | |
KR19990052178A (ko) | 프로세서 아이씨에서의 소비전력 절감을 위한 데이터 바이패싱회로 | |
KR20090016642A (ko) | 비동기적 컴퓨터 통신 | |
Irie | Processor Core and Low-Power SOC Design for Embedded Systems | |
JP2000029695A (ja) | プロセッサおよび演算処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050419 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050609 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050718 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080805 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120805 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120805 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130805 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |