(57)【特許請求の範囲】
【請求項１】
入力信号を論理的に解析しコプロセッサのクロックをオンまたはオフにする信号を供給するように構成された第１の論理ＡＮＤ構成要素と、
前記第１の論理ＡＮＤ構成要素の入力に結合されたＴＨＵＭＢビットレジスタと、ここで前記ＴＨＵＭＢビットレジスタが、ＴＨＵＭＢ命令がフェッチされるとオンするＴＨＵＭＢビット（ＴＢＩＴ）信号の論理値を格納するように構成されており、前記ＴＨＵＭＢビット（ＴＢＩＴ）信号は、前記ＴＨＵＭＢ命令がフェッチされた段階で受信され、
前記第１の論理ＡＮＤ構成要素の入力に結合された実行レジスタとを含んでなり、前記実行レジスタが主ＡＲＭプロセッサのパイプラインの実行段と関連した命令を格納するように構成されており、
前記ＴＨＵＭＢ命令がフェッチされ前記ＴＨＵＭＢビット（ＴＢＩＴ）信号がオンした場合、前記第１の論理ＡＮＤ構成要素が、前記コプロセッサのクロックをオフにする前記信号を供給するＡＲＭコプロセッサ電力低減システム。
【請求項２】
前記コプロセッサのクロックが、前記ＴＨＵＭＢビット（ＴＢＩＴ）信号の論理値に基づいてオンまたはオフにされる、請求項１に記載のシステム。
【請求項３】
前記ＴＨＵＭＢ命令がフェッチされず前記ＴＨＵＭＢビット（ＴＢＩＴ）信号がオフである場合、前記第１の論理ＡＮＤ構成要素が、前記コプロセッサのクロックをオンにする前記信号を供給する、請求項１または２に記載のＡＲＭコプロセッサ電力低減システム。
【請求項４】
前記第１の論理ＡＮＤ構成要素は、前記第１の論理ＡＮＤ構成要素の入力が論理１である場合、論理１の値を伝送し、前記第１の論理ＡＮＤ構成要素の前記入力のいずれかが論理０の値である場合、論理０の値を伝送するように構成されている、請求項１に記載のＡＲＭコプロセッサ電力低減システム。
【請求項５】
前記実行レジスタの入力に結合された第２の論理ＡＮＤ構成要素と、ここで前記第２の論理ＡＮＤ構成要素が前記主ＡＲＭプロセッサのパイプラインを進めるように構成されており、
前記第２の論理ＡＮＤ構成要素の入力に結合された論理ＯＲ構成要素と、ここで前記論理ＯＲ構成要素が、前記論理ＯＲ構成要素の入力が論理１である場合、論理１の値を伝送し、前記論理ＯＲ構成要素の前記入力が論理０である場合、論理０を伝送するように構成されており、
前記第２の論理ＡＮＤ構成要素の入力に結合された待ちレジスタとをさらに含み、この待ちレジスタが、整数の数のメモリクロック入力サイクルの間、ＡＲＭコアを機能停止の待ちにするように構成された否定待ち信号の値を取り込むように構成されている、請求項１に記載のＡＲＭコプロセッサ電力低減システム。
【請求項６】
前記論理ＯＲ構成要素の出力に結合された第３の論理ＡＮＤ構成要素と、ここで前記第３の論理ＡＮＤ構成要素が、格納されたデータが前記主ＡＲＭプロセッサのパイプラインで転送されるように指示する信号を伝送するように構成されており、
前記第３の論理ＡＮＤ構成要素の出力に結合されたデータ保持レジスタと、ここで前記データ保持レジスタが前記主ＡＲＭプロセッサのパイプラインで処理されるのを待っているデータを格納するように構成され、
前記第３の論理ＡＮＤ構成要素の入力に結合された否定演算コードフェッチレジスタとをさらに含み、前記否定演算コードフェッチレジスタが、ＡＲＭコアプロセッサがメモリから命令をフェッチしているかどうかを表示する否定演算コードフェッチ信号の状態を格納するように構成されている、請求項５に記載のＡＲＭコプロセッサ電力低減システム。
【請求項７】
前記第２の論理ＡＮＤ構成要素の出力に結合されたデコードレジスタと、ここで前記デコードレジスタが前記主ＡＲＭプロセッサのパイプラインのデコード段と関連した情報を格納するように構成されており、
前記デコードレジスタの入力に結合されたマルチプレクサとをさらに含み、ここで前記マルチプレクサが前記デコードレジスタに伝送すべき信号を選ぶように構成されている、請求項５に記載のＡＲＭコプロセッサ電力低減システム。
【請求項８】
前記マルチプレクサが、データ保持レジスタからの信号か信号中のデータからの信号かを選ぶ、請求項７に記載のＡＲＭコプロセッサ電力低減システム。
【請求項９】
前記第１の論理構成要素がＡＮＤ構成要素であり、ここで前記構成要素が前記入力信号の論理レベルに基づいて前記コプロセッサのクロックをオンまたはオフにし、
前記実行レジスタの入力に結合された第２の論理ＡＮＤ構成要素と、ここで前記第２の論理ＡＮＤ構成要素が前記主ＡＲＭプロセッサのパイプラインを進めるように構成され、
前記第２の論理ＡＮＤ構成要素の入力に結合された論理ＯＲ構成要素とをさらに含み、前記論理ＯＲ構成要素が、前記論理ＯＲ構成要素の入力が論理１である場合、論理１の値を伝送し、前記論理ＯＲ構成要素の前記入力が論理０である場合、論理０を伝送するように構成されている、請求項１に記載のシステム。
【請求項１０】
前記論理ＯＲ構成要素が、次のサイクルでメモリアクセスが必要となるかどうかを表示するように構成された否定メモリ要求信号と、ＡＲＭコアプロセッサ／前記ＡＲＭコアプロセッサがメモリから命令をフェッチしているかどうかを表示するように構成された否定演算コードフェッチ信号とに結合されている、請求項５または９に記載のＡＲＭコプロセッサ電力低減システム。
【請求項１１】
前記論理ＯＲ構成要素の出力に結合された第３の論理ＡＮＤ構成要素と、ここで前記第３の論理ＡＮＤ構成要素は、格納されたデータが前記主ＡＲＭプロセッサのパイプラインで転送されるように指示する信号を伝送するように構成されており、
前記第３の論理ＡＮＤ構成要素の出力に結合されたデータ保持レジスタと、ここで前記データ保持レジスタは前記主ＡＲＭプロセッサのパイプラインで処理されるのを待っているデータを格納するように構成されており、
前記第３の論理ＡＮＤ構成要素の入力に結合された否定演算コードフェッチレジスタと、ここで前記否定演算コードフェッチレジスタは、前記ＡＲＭコアプロセッサがメモリから命令をフェッチしているかどうかを表示する否定演算コードフェッチ信号を格納するように構成されており、
前記第２の論理ＡＮＤ構成要素の出力に結合されたデコードレジスタと、ここで前記デコードレジスタは前記主ＡＲＭプロセッサのパイプラインの実行段と関連した情報を格納するように構成されており、
前記デコードレジスタの入力に結合されたマルチプレクサとをさらに含み、前記マルチプレクサが、前記デコードレジスタに伝送すべき信号を選ぶように構成されている、請求項１０に記載のＡＲＭコプロセッサ電力低減システム。
【請求項１２】
前記実行レジスタ中の命令と関連したＴＨＵＭＢビットが論理１であり、かつ前記ＴＨＵＭＢビットレジスタの値が論理１である時に、前記第１の論理ＡＮＤ構成要素が前記コプロセッサのクロックをオフにする、請求項１１に記載のＡＲＭコプロセッサ電力低減システム。
【発明の詳細な説明】
【０００１】
本発明はコンピュータ処理システムおよび方法の分野に関する。より詳細には、本発明は高度ＲＩＳＣ機械（ＡＲＭ）をベースにしたシステムで電力消費を改善する、すなわち減少させるシステムおよび方法に関する。これを取り扱う１つの方法は、ＴＨＵＭＢ状態で動作している時にある機能をオフにすることによる。
【０００２】
（発明の背景）
コンピュータシステムおよび回路は現代社会の発展に向けて大きく貢献し、いくつかの用途で利用されて有利な結果を達成している。コンピュータシステムは、一般に、１組の命令に従って動作するプロセッサを備えている。ディジタルコンピュータ、カルキュレータ、オーディオ装置、ビデオ装置および電話システムのような数多くの電子技術はプロセッサを含み、そのプロセッサは、ビジネス、科学、教育および娯楽の多くの分野でデータ、観念および傾向を分析し通信する際に生産性の向上およびコストの低減を容易にしている。多くの場合に、これらの結果を可能にするように設計されたプロセッサは、命令セットの減少したコンピュータアーキテクチャ（ＲＩＳＣ）に従って動作する高度ＲＩＳＣ機械（ＡＲＭ）である。しかし、ＡＲＭの機械は、一般に、コプロセッサを利用し、そのコプロセッサは現在ＡＲＭ動作をサポートしていない時でも大きな電力を消費する。
【０００３】
一般に、ＡＲＭプロセッサは、非常に強力な命令セットによって比較的高い性能を発揮し、さらに大きな柔軟性を示す。一般的なＡＲＭプロセッサは比較的簡単なので、小型でコスト効果のある装置で高い命令スループットおよび効率的な時間割込み応答が容易になる。パイプライン方式が利用されて、処理システムおよびメモリシステムの多数の構成要素が同時に動作することができるようになる。例えば、１つの命令が実行されている間に、次の命令がデコードされており、第３の命令がメモリからフェッチされる。
【０００４】
通常、ＡＲＭプロセッサは２つの状態または命令セットを利用する。一方の状態または命令セットは、３２ビットのＡＲＭセットを含み、他方の状態または命令セットは１６ビットのＴＨＵＭＢセットを含む。ＴＨＵＭＢセットの命令は、ＡＲＭセットの命令と同じ３２ビットレジスタで動作し、ＡＲＭセットの性能の有利さの大部分を維持しながら、ＡＲＭセットの密度をほぼ２倍にする。しかし、もっと多くの機能性およびもっと高い性能が要求される場合がある。これらの状況では、通常コプロセッサがシステムに含まれている。
【０００５】
ＡＲＭコプロセッサは、ＡＲＭ状態で追加の処理電力を与える。多くの場合に、主ＡＲＭプロセッサが他の機能を実行している間に、特定の命令を実行するコプロセッサを持つことが有利である。例えば、コプロセッサは浮動小数点演算、グラフィックス変換、および画像圧縮のような機能を実行することが多い。しかし、コプロセッサを有する一般的なＡＲＭシステムでは、たとえコプロセッサが命令または情報を処理するために利用されていなくても、コプロセッサ機能のいくつかは常に維持されている。
【０００６】
コプロセッサが主要なシステム動作に寄与していなくても、コプロセッサは、通常、かなりの量のシステム電力を消費する。特に、コプロセッサは１６ビットトランザクションを行うために使用されないので、コプロセッサは、１６ビットＴＨＵＭＢトランザクション中は主要なシステム動作に貢献していない。ＴＨＵＭＢ命令セットはＡＲＭ命令セットよりも小さく、その上、ＴＨＵＭＢ状態で動作している間は、ＡＲＭシステムのコプロセッサは利用されていない。コプロセッサが命令または情報を処理していない時でも、通常コプロセッサは電力を消費し続ける。例えば、コプロセッサ中のクロックは動作し続け、コプロセッサのレジスタは状態を切り換え続け、それで電力を消費する。
【０００７】
ＡＲＭシステムの機能性に貢献していない構成要素による電力消費を低減することは、多くの便宜をもたらす。例えば、ＡＲＭシステムを利用して処理機能を提供する無線通信システムでは、電力状況はクリティカルになることが多い。無線通信システムは電源としてバッテリーに依拠することが多く、電力消費を低減することでバッテリー寿命が長くなる。また、電力消費を低減することで、バッテリーのサイズを小さくすることができるようになり、それによって、より小型の無線通信装置を製造することができるようになる。小型無線通信装置により、通常実際の応用の有益性はより大きくなる。
【０００８】
必要なものは、ＡＲＭシステムのコプロセッサによる電力消費を低減するシステムおよび方法である。そのシステムおよび方法はＡＲＭシステムの動作機能性を妨害してはならない。ＴＨＵＭＢ状態で動作中のコプロセッサレジスタの切換わりを少なくしなけれならない。また、そのシステムおよび方法は電力供給の要求条件軽減を容易にしなければならない。
【０００９】
（発明の概要）
本発明のシステムおよび方法は、ＡＲＭシステムのコプロセッサによる電力消費を低減する。本システムおよび方法は、ＡＲＭシステムの動作機能性を妨げない。ＴＨＵＭＢ状態で動作中のコプロセッサレジスタの切換りは本発明によって減少し、また、本発明は電力供給の要求条件軽減を容易にする。
【００１０】
本発明の一実施例では、ＡＲＭコプロセッサ電力低減システムおよび方法は、ＡＲＭシステムがＡＲＭコプロセッサを利用しない活動状態にある時を検出し、ＡＲＭコプロセッサのクロックをオフにする。本発明のＡＲＭコプロセッサ電力低減システムおよび方法は、ＡＲＭコアがＡＲＭ状態で動作しているかまたはＴＨＵＭＢ状態で動作しているかを追跡する。例えば、ＡＲＭコプロセッサ電力低減システムおよび方法は、ＡＲＭコアがＡＲＭ状態で動作しているかまたはＴＨＵＭＢ状態で動作しているかを表示するＴＨＵＭＢビット（ＴＢＩＴ）信号を解析する。ＡＲＭコアがＴＨＵＭＢ状態で動作している場合、本発明のＡＲＭコプロセッサ電力低減システムおよび方法は、コプロセッサのクロックにオフするように命令する。ＡＲＭコアがＡＲＭ状態で動作している場合、本発明のＡＲＭコプロセッサ電力低減システムおよび方法は、コプロセッサのクロックにオンするように命令する。
【００１１】
（発明の詳細な説明）
高度ＲＩＳＣ機械（ａｒｍ）をベースにしたシステムにおける電力消費を低減するシステムおよび方法である、本発明の好ましい実施形態を詳細に参照し、その例を添付の図面で示す。本発明は好ましい実施形態に関連して説明するが、それは本発明をこれらの実施形態に限定する意図でないことは理解されるであろう。それとは逆に、本発明は、添付の特許請求の範囲で定義されるような本発明の精神および範囲内に含まれる可能性のある代替物、修正物および均等物を含む意図である。さらに、本発明の次の詳細な説明で、本発明を完全に理解できるようにするために、数多くの具体的な詳細を示す。しかし、当業者には明らかになるであろうが、本発明はこれらの具体的な詳細なしで実施することができる。他の例では、公知の方法、手順、構成要素、および回路は、本発明の態様を不必要に不明瞭にしないために詳細に説明されていない。
【００１２】
本発明は、ＡＲＭコプロセッサ電力低減システムおよび方法であり、ＡＲＭシステムがＡＲＭコプロセッサを利用しない活動状態にある時を検出し、ＡＲＭコプロセッサのクロックをオフにする。例えば、本発明のＡＲＭコプロセッサ電力低減システムおよび方法は、ＡＲＭコア周辺からの信号を追跡して、ＡＲＭコアがＡＲＭ状態の動作を容易にしようとしているかまたはＴＨＵＭＢ状態の動作を容易にしようとしているかを決定する。本発明のＡＲＭコプロセッサ電力低減システムおよび方法が、ＡＲＭコアがＴＨＵＭＢ状態の動作を容易にしようとしていることを検出した場合、ＡＲＭコプロセッサ電力低減システムおよび方法は、ＡＲＭコプロセッサと関連したクロックにオフするように信号を送る。ＡＲＭコプロセッサのクロックがオフになるので、ＡＲＭコプロセッサのレジスタは切り換わらないし、電力を消費しない。本発明のＡＲＭコプロセッサ電力低減システムおよび方法は、ＡＲＭコアがＡＲＭ状態の動作を容易にしようとしていることを感知した場合、ＡＲＭコプロセッサ電力低減システムおよび方法は、ＡＲＭコプロセッサと関連したクロックにオンするように信号を送る。
【００１３】
ＡＲＭコアで命令が処理されるときに、命令はまた、３段を含むＡＲＭパイプラインで取り込まれる。ＡＲＭパイプラインは、フェッチ段、デコード段および実行段を含む。本発明のＡＲＭコプロセッサ電力低減システムは、特定の命令がＡＲＭコアのどの段にあるか追跡する（命令がフェッチ段、デコード段、または実行段にあるかどうかを追跡する）。動作状態に変化がある時はいつでも（例えば、ＡＲＭ状態からＴＨＵＭＢ状態に、またはその逆に）、その変化を表示する命令がＡＲＭパイプラインを流れる。命令はフェッチされ、デコードされ、それから実行段で、ＡＲＭコアは、その命令がＡＲＭコアに１６ビットＴＨＵＭＢ命令セットに切り換わるように指示しているかまたは３２ビットＡＲＭ命令セットに切り換わるように指示しているかを決定する。状態変化の命令が実行される時に、ＴＢＩＴ（ＴＨＵＭＢ  Ｂｉｔ）信号は変化する。例えば、ＴＢＩＴは、命令がＴＨＵＭＢ状態の命令である時には、論理０から論理１に変化し、または、命令がＡＲＭ状態の命令である時に、論理１から論理０に変化する。
【００１４】
状態変化の命令が実行されても、場合によって、パイプラインに保留状態の実行されるべき動作がもう２つある。すなわち、フェッチ段の１つの動作とデコード段の１つの動作である。動作状態がＡＲＭ状態からＴＨＵＭＢ状態に変化する場合、ＡＲＭコプロセッサ電力低減システムおよび方法は、デコード段と実行段に残っている２つの動作が完全に実行されるまで、ＡＲＭコプロセッサのクロックの電源を遮断しない。このようにして、デコード段と実行段に残っている２つの動作がＡＲＭ状態の動作を含む場合、コプロセッサは、走っている使用可能なクロックを有し、３２ビットのＡＲＭ状態の動作を処理し続ける。
【００１５】
図１は、本発明のＡＲＭコプロセッサ電力低減システムおよび方法の一実施形態と関連したコプロセッサクロック停止波形テーブル１００の一例である。コプロセッサクロック停止波形テーブル１００は、第１のＡＲＭ命令１１０、第２のＡＲＭ命令１１１、第３のＡＲＭ命令１１２、およびそれらの対応する第１のＡＲＭデータ転送１２０、第２のＡＲＭデータ転送１２１、および第３のＡＲＭデータ転送１２３がフェッチされる時に、ＣＰＳＴＯＰＣレジスタの値がＨＩＧＨであり、コプロセッサのクロックが走っていることを図示している。第１のＴＨＵＭＢ命令１１３がフェッチされる時に、信号ＡＣ＿ＴＢＩＴは論理０（ＬＯＷ）から論理１（ＨＩＧＨ）に遷移する。しかし、信号ＣＰ＿ＳＴＯＰＣは論理０（コプロセッサのクロックに走り続けるように命令する）を論理１（コプロセッサのクロックに走るのを停止するように命令する）に切り換えない。信号ＣＰ＿ＳＴＯＰＣは、第２のＴＨＵＭＢ命令１１４および第３のＴＨＵＭＢ命令１１６およびそれらに関連した第２のＴＨＵＭＢデータ転送１２４およぶ第３のＴＨＵＭＢデータ転送１２６が完了するまで、遷移しない。信号ＣＰ＿ＳＴＯＰＣは、コプロセッサ不在命令１１５と、第２のＴＨＵＭＢデータ転送１２４と第３のＴＨＵＭＢデータ転送１２６の間のコプロセッサ不在命令に関連したコプロセッサ不在データトランザクション１２５とで示される延長された処理持続時間までも感知する。ＡＣ＿ＴＢＩＴ信号は、第４のＴＨＵＭＢ命令１１７、第５のＴＨＵＭＢ命令１１８および第４のＴＨＵＭＢデータ転送１２７の間ずっと論理１（ＨＩＧＨ）のままである。
【００１６】
ＡＲＭシステムがＴＨＵＭＢ状態を終了しＡＲＭ状態になる時に、ＴＢＩＴ信号は、それがＡＲＭ状態の動作を処理していることを表示する（例えば、ＬＯＷになる）。コプロセッサのクロックは、ＡＲＭシステムがＴＨＵＭＢ状態を終了しＡＲＭ状態になる時の同じサイクルの間に始動する。このようにして、実行される次の命令が３２ビットＡＲＭ状態動作である場合、コプロセッサは３２ビットＡＲＭ状態動作を処理し続けるために使用可能である。
【００１７】
図２は、本発明のＡＲＭコプロセッサ電力低減システムおよび方法の一実施形態と関連したコプロセッサクロック始動波形テーブル２００の一例である。コプロセッサクロック始動波形テーブル２００は、第１のＴＨＵＭＢ命令２１０、第２のＴＨＵＭＢ命令２１１および第３のＴＨＵＭＢ命令２１２、およびそれらの対応する第１のＴＨＵＭＢデータ転送２２０、第２のＴＨＵＭＢデータ転送２２１および第３のＴＨＵＭＢデータ転送２２３がフェッチされる時に、ＣＰＳＴＯＰＣレジスタの値がＬＯＷでコプロセッサクロックが走っていないことを図示する。第１のＡＲＭ命令２１３がフェッチされる時に、信号ＡＣ＿ＴＢＩＴは論理１から論理０に遷移する。信号ＣＰ＿ＳＴＯＰＣは論理１から論理０に遷移し、コプロセッサクロックに走り始めるように命令する。ＣＰＳＴＯＰＣレジスタの値は、論理０から論理１に遷移し、クロックが走り始めたことを表示する。ＣＰＳＴＯＰＣレジスタの値は、第２のＡＲＭ命令２１４、第３のＡＲＭ命令２１５、第１のＡＲＭデータ転送２２３、第２のＡＲＭデータ転送２２４、および第３のＡＲＭデータ転送２２５の間ずっと論理１のままである。
【００１８】
ＡＲＭコアはいくつかの信号を利用して、ＡＲＭコプロセッサパイプラインの後続の段を介した進度および前送りを表示する。否定メモリ要求信号（ＭＲＥＱ＿ＮまたはｎＭＲＥＱ）は、次のサイクルでメモリアクセスが要求されているかどうかを表示する。ＮＭＲＥＱがＬＯＷである場合、ＡＲＭコアプロセッサは次のサイクルでメモリアクセスを要求する。否定演算コードフェッチ信号（ＯＰＣ＿ＮまたはｎＯＰＣ）は、ＡＲＭコアプロセッサがメモリから命令をフェッチしているかどうかを表示する。ＯＰＣ＿ＮがＬＯＷである場合、ＡＲＭコアプロセッサはメモリから命令をフェッチしており、ＯＰＣ＿ＮがＨＩＧＨである場合、データが転送されている（データがある場合）。ＡＲＭコアに整数の数のメモリクロック入力（ＭＣＬＫ）サイクルを待たせるかまたは機能停止にさせるために、否定待ち（ＷＡＩＴ＿ＮまたはｎＷＡＩＴ）信号が利用される。ＭＣＬＫはＡＲＭコアメモリアクセスと内部動作のタイミングを合せるクロックである。ＷＡＩＴ＿ＮがＬＯＷである時に、ＡＲＭコアは待つか機能停止する。
【００１９】
図３は、本発明の一実施形態であるＡＲＭコプロセッサ電力低減システム３００の図である。ＡＲＭコプロセッサ電力低減システム３００は、ＴＨＵＭＢビットレジスタＴＢＩＴ＿ＲＦ３１０、待ちレジスタＷＡＩＴ＿Ｎ＿ＰＦ３２１、第１の論理ＯＲ構成要素３２５、否定演算コードフェッチレジスタＯＰＣ＿Ｎ＿ＰＦ３２７、第３の論理ＡＮＤ構成要素３２８、第２の論理ＡＮＤ構成要素３２９、データ保持レジスタＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１、マルチプレクサＭＵＸ３３２、デコードレジスタＤＥＣＯＤＥ＿ＮＦ３３３、実行レジスタＥＸＥＣＵＴＥ＿ＮＦ３３４、第１の論理ＡＮＤ構成要素３４０および停止クロックレジスタＳＴＯＰＣＬＫ＿ＮＦ３４５を備える。識別にＰＦを含むレジスタは、信号が正に向かうエッジでトリガされるフリップフロップを含む。識別にＮＦを含むレジスタは信号の負に向かうエッジでトリガされるフリップフロップを含む。ＴＢＩＴ＿ＰＦ３１０は、第１の論理ＡＮＤ構成要素３４０に結合されている。第３の論理ＡＮＤ構成要素３２８は、ＷＡＩＴ＿Ｎ＿ＰＦ３２１、第１の論理ＯＲ構成要素３２５、ＯＰＣ＿Ｎ＿ＰＦ３２７、およびＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１に結合されている。第２の論理ＡＮＤ構成要素３２９は、ＷＡＩＴ＿Ｎ＿ＰＦ３２１、第１の論理ＯＲ構成要素３２５、ＯＰＣ＿Ｎ＿ＰＦ３２７、ＤＥＣＯＤＥ＿ＮＦ３３３、およびＥＸＥＣＵＴＥ＿ＮＦ３３４に結合されている。ＭＵＸ３３２は、ＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１と、およびＥＸＥＣＵＴＥ＿ＮＦ３３４に結合されているＤＥＣＯＤＥ＿ＮＦ３３３とに結合されている。ＥＸＥＣＵＴＥ＿ＮＦ３３４は、ＳＴＯＰＣＬＫ＿ＮＦ３４５に結合されている第１の論理ＡＮＤ構成要素３４０に結合されている。
【００２０】
ＡＲＭコプロセッサ電力低減システム３００の構成要素は、協働して動作してＡＲＭ命令をＡＲＭパイプラインを通して転送し、ＡＲＭパイプラインがＴＨＵＭＢ状態の命令を処理している場合、コプロセッサのクロックをオフにする信号を起動するように動作する。第１の論理ＡＮＤ構成要素３４０は、論理的に入力信号を解析し、ＡＲＭパイプラインの命令の状態に基づいてコプロセッサのクロックをオンまたはオフにする信号を供給するように構成されている。例えば、第１の論理ＡＮＤ構成要素３４０は、ＡＲＭパイプライン命令がＴＨＵＭＢ状態の命令である場合、コプロセッサのクロックをオフにし、ＡＲＭパイプライン命令がＡＲＭ状態の命令である場合、コプロセッサのクロックをオンにする信号を供給する。ＴＨＵＭＢビットレジスタＴＢＩＴ＿ＰＦ３１０は、ＴＨＵＭＢビット（ＴＢＩＴ）信号の論理値を格納し、そのＴＨＵＭＢビット（ＴＢＩＴ）信号は、ＡＲＭパイプラインの命令がＴＨＵＭＢ状態で動作しているかＡＲＭ状態で動作しているかを表示する。実行レジスタＥＸＥＣＵＴＥ＿ＮＦ３３４は、前記ＡＲＭパイプラインの実行段と関連した情報を格納する。
【００２１】
第２のＡＮＤ構成要素３２９は、ＡＲＭパイプラインにより命令およびデータの前送りを制御する。論理ＯＲ構成要素３２５は、論理ＯＲ構成要素３２５の入力（例えば、否定メモリ要求信号（ＭＲＥＱ＿Ｎ）および否定演算コードフェッチ信号（ＯＰＣ＿Ｎ））が論理１である場合、論理１の値を伝送し、また、論理ＯＲ構成要素３２５の前記入力が論理０である場合、論理０を伝送する。待ちレジスタＷＡＩＴ＿Ｎ＿ＰＦ３２１は否定待ち信号（例えば、ＷＡＩＴ＿Ｎ）の値を取り込む。
【００２２】
第３の論理ＡＮＤ構成要素３２８は、格納されたデータをＡＲＭパイプラインで転送するように指示する信号を伝送する。データ保持レジスタＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１はＡＲＭパイプラインで処理されるのを待つデータを格納する。否定演算コードフェッチレジスタＯＰＣ＿Ｎ＿ＰＦ３２７は、ＡＲＭコアプロセッサがメモリから命令をフェッチするかどうかを表示する否定演算フェッチ信号の状態を格納する。デコードレジスタＤＥＣＯＤＥ＿ＮＦ３３３は、ＡＲＭパイプラインのデコード段と関連した情報を格納する。マルチプレクサＭＵＸ３３２は、データ保持レジスタまたは信号中のデータからの信号のような前記デコードレジスタに伝送する信号を選択する。
【００２３】
ＡＲＭ命令パイプライン論理は、ＷＡＩＴ＿Ｎ＿ＰＦ３２１の情報および信号ＯＰＣ＿ＮおよびＭＲＥＱ＿Ｎの論理状態を調べて、様々なＡＲＭコアレジスタによりＡＲＭシステムデータからの命令をラッチするときを決定する。前の立上がりエッジからＴＢＩＴ値はサンプリングされ、デコード段および実行段に向けて移動しているデータとともに送り出される。これによって、ＡＲＭコプロセッサ電力低減システム３００はコプロセッサクロックを適切に始動／停止することができるようになる。
【００２４】
図４は、ＡＲＭコプロセッサ電力低減真理値表４００の図である。ＡＲＭコプロセッサ電力低減真理値表４００は、ＡＲＭコプロセッサ電力低減システム３００の真理値表である。本発明の一実施形態では、クロックの立上りエッジでＷＡＩＴ＿Ｎ＿ＰＦの出力が論理１であり、かつＯＰＣ＿Ｎ信号は論理０であり、かつＭＲＥＱ＿Ｎ信号は論理０である場合、ＡＲＭコアは命令をフェッチしている。
命令それ自体は、クロックの次の立ち下がりエッジでＡＲＭコアデータバス上に置かれる。ＷＡＩＴ＿Ｎ＿ＰＦに格納された値が論理０である場合、命令はＡＲＭコアのデータバスにとどまったままであり、ＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１、マルチプレクサＭＵＸ３３２、デコードレジスタＤＥＣＯＤＥ＿ＮＦ３３３、または実行レジスタＥＸＥＣＵＴＥ＿ＮＦ３３４の間で、命令は移されない。レジスタＯＰＣ＿Ｎ＿ＰＦ３２７に格納された値が論理１であり、かつ信号ＯＰＣ＿Ｎか信号ＭＲＥＱ＿Ｎが論理１である場合は、ＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１、マルチプレクサＭＵＸ３３２、デコードレジスタＤＥＣＯＤＥ＿ＮＦ３３３、または実行レジスタＥＸＥＣＵＴＥ＿ＮＦ３３４の間で、命令は移されない。
クロックの立ち下がりエッジで、ＷＡＩＴ＿Ｎ＿ＰＦ３２１の値が論理１であり、かつＯＰＣ＿Ｎ信号が論理１であるかＭＲＥＱ＿Ｎ信号が論理１であるかいずれかの場合、ＡＲＭコアは現在命令をデコード段および実行段を通して移さない。しかし、データが存在すれば、ＡＲＭコアはデータ処理を続ける。ＯＰＣ＿Ｎ＿ＰＦの情報が論理０である場合、ＡＲＭデータバス上の命令はＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１に入れられ、「オンホールド」状態になる。
【００２５】
ＡＲＭコプロセッサ電力低減真理値表４００の残りの段の間に、命令はパイプラインの段を通って移動する。クロックの立ち下がりエッジで、ＷＡＩＴ＿Ｎ＿ＰＦ３２１の情報が論理１であり、かつＯＰＣ＿Ｎ信号が論理０であり、かつＭＲＥＱ＿Ｎ信号が論理０である場合、ＡＲＭコアは現在命令をデコード段に移す。ＯＰＣ＿ＮＰＦ３２７の情報の状態によって、どちらの命令がデコード段に移されるかが決まる。ＯＰＣ＿Ｎ＿ＰＦ３２７の情報が論理１である場合、ＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１の命令はまだデコード段を通過していないので、ＤＡＴＡ＿ＨＯＬＤ＿ＮＦ３３１の命令がデコード段に移される。ＯＰＣ＿Ｎ＿ＰＦ３２７の情報が論理１である場合、ＡＲＭデータバス上の命令は、デコーディングのために、ＲＥＧＩＳＴＥＲ  ＤＥＣＯＤＥ＿ＮＦ３３３に入れられる。クロックの立ち下がりエッジで、ＷＡＩＴ＿Ｎ＿ＰＦ３２１の値が論理１であり、かつ信号ＯＰＣ＿Ｎが論理０であり、かつ信号ＭＲＥＱ＿Ｎが論理０である場合、レジスタＤＥＣＯＤＥ＿ＮＦ３３３の内容は、実行のためにレジスタＥＸＥＣＵＴＥ＿ＮＦ３３４に移動する。
【００２６】
第１の論理ＡＮＤ構成要素３４０は、その入力すなわち、ＴＢＩＴ＿ＰＦ３１０に格納された値と、ＥＸＥＣＵＴＥ＿ＮＦ３４３に格納された値のＴＢＩＴとが論理１である場合、論理１の値を伝送する。また、その入力のいずれかが論理０の値である場合、論理０の値を伝送する。第１の論理ＡＮＤ構成要素３４０で伝送された論理値は一時的にＳＴＯＰＣＬＫ＿ＮＦ３４５に格納され、それから、信号ＣＬＫＳＴＯＰとしてコプロセッサのクロックに転送される。ＣＬＫＳＴＯＰが論理１である場合、コプロセッサのクロックは停止され、ＣＬＫＳＴＯＰが論理０である場合、コプロセッサは始動される。
【００２７】
図５は、本発明の一実施形態であるＡＲＭコプロセッサ電力低減方法５００の流れ図である。ＡＲＭコプロセッサ電力低減方法５００は、ＡＲＭシステムがＡＲＭコプロセッサを利用しない活動状態にあるかどうか、さらにＡＲＭコプロセッサ分だけ電力消費を低減するかどうかを確定する。一実施形態では、ＡＲＭコプロセッサ電力低減方法５００はＡＲＭコア周辺からの信号を検査して、ＡＲＭコアがＡＲＭ状態の動作を容易にしようとしているかＴＨＵＭＢ状態の動作を容易にしようとしているかを決定する。ＡＲＭコプロセッサ電力低減方法５００が、ＡＲＭコアがＴＨＵＭＢ状態の動作を容易にしようとしているのを検出した場合、ＡＲＭコプロセッサ電力低減方法５００は、ＡＲＭコプロセッサと関連したクロックにオフするように信号を送る。例えば、ＡＲＭコプロセッサ電力低減方法５００は、ＡＲＭパイプラインの一連の命令が全てＴＨＵＭＢ状態の動作であると確定した場合、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサのクロックがオフになるようにする。ＡＲＭコプロセッサのクロックがオフになるので、ＡＲＭコプロセッサのレジスタは切り換わらないし、電力を消費しない。
【００２８】
ステップ５１０で、ＡＲＭコプロセッサ電力低減方法５００は、ＡＲＭコアがＴＨＵＭＢ状態の命令をフェッチしているかどうかを決定する。一実施形態では、ＡＲＭコプロセッサ電力低減方法５００は、ＡＲＭプロセッサが命令をフェッチしているかどうかを検査する。命令がフェッチされている場合、ＡＲＭコプロセッサ電力低減方法５００は、フェッチされている命令と関連したＴＢＩＴ信号の論理状態を取り込む。例えば、ＡＲＭコプロセッサ電力低減方法５００は、否定メモリ要求信号（ＭＲＥＱ＿ＮまたはｎＭＲＥＱ）、否定演算コードフェッチ信号（ＯＰＣ＿ＮまたはｎＯＰＣ）および否定待ち信号（ＷＡＩＴ＿ＮまたはｎＷＡＩＴ）を走査して、ＡＲＭコアが命令をフェッチしているかどうかを決定する。１つの例では、論理０（ＬＯＷ）のＴＢＩＴ信号はＡＲＭ状態の命令を表示し、論理１（ＨＩＧＨ）のＴＢＩＴ信号はＴＨＵＭＢ状態の命令を表示する。ＡＲＭコプロセッサ電力低減方法５００が、ＡＲＭコアがＴＨＵＭＢ状態の命令をフェッチしているかどうかを決定した後で、ＡＲＭコプロセッサ電力低減方法５００はステップ５２０に進む。
【００２９】
ＡＲＭコプロセッサ電力低減方法５００は、ステップ５２０ＡＲＭで、通常のＡＲＭコア手順およびコプロセッシング手順を継続する。１つの例では、ＡＲＭコプロセッサ電力低減方法５００は、命令をフェッチ段からのデコード段に移し、さらにその命令を実行段に進めて、通常のＡＲＭコア手順およびコプロセッシング手順を継続する。
【００３０】
ステップ５３０で、ＡＲＭコプロセッサ電力低減方法５００は、ＡＲＭパイプラインで処理されている次の命令の状態を追跡する。一実施形態では、ＡＲＭコプロセッサ電力低減方法５００は、ＴＢＩＴレジスタ（例えば、ＴＢＩＴ＿ＰＦ２１０）のＴＢＩＴ信号の論理値を格納する。１つの例では、命令がパイプラインのフェッチ段からデコード段に移される時に、ＴＢＩＴ値は格納される。
【００３１】
ステップ５４０で、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサのクロックをオフにするのが適切かどうかを解析する。ＡＲＭコプロセッサ電力低減方法５００の一実施形態では、ＡＲＭコプロセッサ電力低減方法５００が、ＡＲＭパイプラインで処理している命令がＴＨＵＭＢ状態の命令かまたはＴＨＵＭＢ状態の命令と関連したデータであると確定した場合、コプロセッサのクロックをオフにするのが適切である。例えば、ＴＨＵＭＢ状態の命令またはＴＨＵＭＢ状態の命令と関連したデータがＡＲＭパイプラインの段を占めている場合は、コプロセッサのクロックをオフにするのが適切である。コプロセッサのクロックをオフにするのが適切でない場合、ＡＲＭコプロセッサ電力低減方法５００は、ステップ５２０に輪を描いて戻る。コプロセッサのクロックをオフにするのが適切な場合、ＡＲＭコプロセッサ電力低減方法５００は、ステップ５５０に進む。
【００３２】
ステップ５５０で、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサクロックをオフにする。本発明の一実施形態では、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサのクロックに停止させる信号を送る。
【００３３】
ステップ５６０で、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサのクロックをオンにするのが適切かどうかを調べる。ＡＲＭコプロセッサ電力低減方法５００の一実施形態では、ＡＲＭコプロセッサ電力低減方法５００が、ＡＲＭパイプラインの命令がＡＲＭ状態の命令かＡＲＭ状態の命令と関連したデータかであることを確認した場合は、コプロセッサのクロックをオンにするのが適切である。例えば、ＡＲＭ状態の命令またはＡＲＭ状態の命令と関連したデータがＡＲＭパイプラインレジスタを占めている場合は、コプロセッサのクロックをオンにするのが適切である。一実施形態では、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサのクロックがオフになった後で、命令フェッチと関連したＴＢＩＴ信号を監視し続ける。例えば、ＡＲＭコプロセッサ電力低減方法５００は、論理０のＴＢＩＴ値を解釈して、関連した命令フェッチがＡＲＭ状態の命令フェッチであると表示する。次のフェッチがＡＲＭ状態の命令である場合は、コプロセッサのクロックをオンにするのが適切である。コプロセッサのクロックをオンにするのが適切でない場合、ＡＲＭコプロセッサ電力低減方法５００は、ステップ５５０に輪を描いて戻る。コプロセッサのクロックをオンにするのが適切である場合、ＡＲＭコプロセッサ電力低減方法５００は、ステップ５７０に進む。
【００３４】
ステップ５７０で、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサクロックをオンに切り換え、ステップ５１０に輪を描いて戻る。
【００３５】
上で示したように、ＡＲＭコプロセッサ電力低減方法５００は、ステップ５４０で、ＡＲＭパイプラインで処理している命令がＴＨＵＭＢ状態の命令であるかまたはＴＨＵＭＢ状態の命令と関連したデータであるかを確定する。ＡＲＭコプロセッサ電力低減方法５００の一実施形態では、格納された待ちの値（例えば、ＷＡＩＴ＿Ｎ＿ＰＦ２２１）が論理１であり、かつＯＰＣ＿Ｎ信号とＭＲＥＱ＿Ｎ信号の両方が論理０である場合、ＡＲＭコプロセッサ電力低減方法５００は、パイプラインの実行レジスタ（例えば、ＥＸＥＣＵＴＥ＿ＮＦ２３４）の命令と関連したＴＢＩＴとＴＢＩＴレジスタ（例えば、ＴＢＩＴ＿ＰＦ２１０）の格納されたＴＢＩＴ値を比較する。パイプラインの実行レジスタ（例えば、ＥＸＥＣＵＴＥ＿ＮＦ２３４）の命令と関連したＴＢＩＴと、ＴＢＩＴレジスタ（例えば、ＴＢＩＴ＿ＰＦ２１０）の格納されたＴＢＩＴ値との両方が論理１である場合、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサのクロックを停止する。パイプラインの実行レジスタ（例えば、ＥＸＥＣＵＴＥ＿ＮＦ２３４）の命令と関連したＴＢＩＴか、またはＴＢＩＴレジスタ（例えば、ＴＢＩＴ＿ＰＦ２１０）の格納されたＴＢＩＴ値かいずれかが論理０である場合、ＡＲＭコプロセッサ電力低減方法５００は、コプロセッサのクロックを停止しない。
【００３６】
このようにして、本発明のシステムおよび方法によって、ＡＲＭシステムのコプロセッサによる電力消費は減少する。本システムおよび方法は、ＡＲＭシステムの動作機能性を妨害しない。本発明によってＴＨＵＭＢ状態の動作中に切り換わるコプロセッサのレジスタは減少し、また、本発明により、電力供給の要求条件軽減が容易になる。
【００３７】
本発明の特定の実施形態についての上記の記述は、例証と説明のために示した。それらは、網羅的であることを意図しないし、または本発明を開示された明確な形態に限定する意図ではない。上記の教示の観点から、明らかに、多くの修正物および変更物が可能である。実施形態は、本発明の原理およびその実際の応用を最も適切に説明するために選び説明した。これによって、当業者は、特定の意図する使用に適するような様々な修正物で、本発明および様々な実施形態を最適に利用することができるようになる。
【図面の簡単な説明】
【図１】  本発明のＡＲＭコプロセッサ電力低減システムおよび方法の一実施形態と関連したコプロセッサクロック停止波形テーブルの一例である。
【図２】  本発明のＡＲＭコプロセッサ電力低減システムおよび方法の一実施形態と関連したコプロセッサクロック始動波形テーブルの一例である。
【図３】  本発明の一実施形態である、ＡＲＭコプロセッサ電力低減システムの図である。
【図４】  本発明のＡＲＭコプロセッサ電力低減システムのＡＲＭコプロセッサ電力低減真理値表の説明図である。
【図５】  本発明のＡＲＭコプロセッサ電力低減方法の一実施形態の流れ図である。
【図１】
0004632279.tif 000002
【図２】
0004632279.tif 000003
【図３】
0004632279.tif 000004
【図４】
0004632279.tif 000005
【図５】
0004632279.tif 000006