JP2018529147A - 遅延回路を使用するクロックゲーティング - Google Patents

遅延回路を使用するクロックゲーティング Download PDF

Info

Publication number
JP2018529147A
JP2018529147A JP2018503645A JP2018503645A JP2018529147A JP 2018529147 A JP2018529147 A JP 2018529147A JP 2018503645 A JP2018503645 A JP 2018503645A JP 2018503645 A JP2018503645 A JP 2018503645A JP 2018529147 A JP2018529147 A JP 2018529147A
Authority
JP
Japan
Prior art keywords
clock signal
signal
latch
cgc
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018503645A
Other languages
English (en)
Inventor
ファディ・アデル・ハムダン
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2018529147A publication Critical patent/JP2018529147A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • H03K3/0372Bistable circuits of the master-slave type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • H03K3/0375Bistable circuits provided with means for increasing reliability; for protection; for ensuring a predetermined initial state when the supply voltage has been applied; for storing the actual state when the supply voltage fails
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/131Digitally controlled
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K2005/00013Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
    • H03K2005/00019Variable delay
    • H03K2005/00058Variable delay controlled by a digital setting
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Manipulation Of Pulses (AREA)
  • Pulse Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本装置は、クロックゲーティング回路(CGC)のラッチを含む。ラッチは、クロック信号に応答して第1の信号を生成するように構成される。本装置は、CGCの遅延回路をさらに含む。遅延回路は、クロック信号を受信し、クロック信号および第1の信号に基づいて第2の信号を生成するように構成される。本装置は、CGCの出力回路をさらに含む。出力回路は、遅延回路とラッチとに結合される。出力回路は、クロック信号および第2の信号に基づいてマスタクロック信号を生成するように構成される。マスタクロック信号のエッジは、スレーブクロック信号に関連する遅延特性に基づいてクロック信号のエッジに対して遅延される。

Description

関連出願の相互参照
本出願は、参照によりその内容全体が本明細書に明確に組み込まれる、同一出願人が所有する2015年7月27日に出願の米国非仮特許出願第14/810,243号の優先権を主張する。
本開示は、一般に電子デバイスに関し、より詳細には電子デバイス用のクロックゲーティングに関する。
プロセッサは、命令のパイプライン実行を実行する複数のパイプラインステージを含んでもよい。たとえば、パイプラインステージは、メモリから命令をフェッチし、命令を復号し、命令を実行して結果を生成し、その結果をメモリに書き込んでもよい。1つのパイプラインステージの出力は、1つまたは複数のフリップフロップを介して別のパイプラインステージの入力に結合されてもよい。フリップフロップは、別個のクロック信号によって駆動されてもよいマスタラッチおよびスレーブラッチなど、複数のラッチを含んでもよい。
いくつかのデバイスは、データがパイプラインステージ間で転送されていないときに電力消費を低減するためにフリップフロップを非アクティブ化する。たとえば、マスタラッチは、結果が1つのパイプラインステージからスレーブラッチに転送される準備ができているときにアクティブ化されてもよい。マスタラッチは、結果をスレーブラッチに供給した後に非アクティブ化されてもよく、スレーブラッチは、結果を別のパイプラインステージに供給した後に非アクティブ化されてもよい。
別個の回路がマスタラッチとスレーブラッチとを非アクティブ化するために使用される場合、「競合」状態が、いくつかの状況において生じ得る。たとえば、スレーブラッチが(たとえば、クロックスキューによって)あまりに早くアクティブ化される場合、結果はあまりに早く別のパイプラインステージに転送される場合がある(たとえば、いくつかの回路において望ましくない場合がある「半サイクル経路」を生成する)。いくつかのデバイスは、マスタラッチおよびスレーブラッチを非アクティブ化するための単一の回路を使用することによって、そのような動作状態を回避する場合がある。この技法は、マスタラッチおよびスレーブラッチが異なる時間にアクティブ化されるデバイスにおいてよりハイの電力消費を生じる場合がある。
クロックゲーティング回路(CGC)は、マスタラッチに供給されるマスタクロック信号の特定のエッジ(たとえば、立下りエッジ)を遅延するように構成されてもよい。マスタクロック信号のエッジを遅延することで、マスタラッチおよび1つまたは複数のスレーブラッチが同時にアクティブ化される動作状態が回避される場合がある。たとえば、マスタクロック信号の立下りエッジは、1つまたは複数のスレーブラッチに供給されるスレーブクロック信号の立下りエッジと実質的に同時にまたはその後に生じてもよい。1つまたは複数のスレーブラッチが、(1つまたは複数のスレーブラッチがスレーブクロック信号の立上りエッジによってトリガされる)位相1(phi-1)構成を有し、マスタラッチが、(マスタラッチがマスタクロック信号の立下りエッジによってトリガされる)位相2(phi-2)構成を有する場合、マスタクロック信号の立下りエッジを遅延させることで、マスタラッチと1つまたは複数のスレーブラッチの両方の同時アクティブ化が回避される場合がある。マスタラッチと1つまたは複数のスレーブラッチの両方の同時アクティブ化を回避することで、1つまたは複数のスレーブラッチが(たとえば、クロックスキューによって)設計より早くアクティブ化されるときなど、いくつかの状況において「競合」状態が回避される場合がある。
例示的な実装形態では、CGCは、ラッチと、第2のラッチと、出力回路と、遅延回路とを含む。ラッチ、第2のラッチ、遅延回路、および出力回路は、クロック信号(たとえば、マスタクロック信号を生成するために使用されるクロック信号)を受信するように構成されてもよい。遅延回路は、(たとえば、CGCの外部のデバイスから別個の信号を供給するのではなく)CGCの内部信号を使用して制御されてもよく、そのことで回路の複雑さと電力消費とが低減される場合がある。たとえば、遅延回路は、第1のラッチの出力を使用して制御(たとえば、パワーゲーティング)されてもよい。いくつかの構成では、遅延回路およびラッチは第1のクロックゲーティングサブ回路(たとえば、phi-1 CGC)を形成し、CGCの第2のラッチおよび出力回路は第2のクロックゲーティングサブ回路(たとえば、phi-2 CGC)を形成する。
特定の例では、本装置はクロックゲーティング回路(CGC)のラッチを含む。ラッチは、クロック信号に応答して第1の信号を生成するように構成される。本装置はCGCの遅延回路をさらに含む。遅延回路は、クロック信号を受信し、クロック信号および第1の信号に基づいて第2の信号を生成するように構成される。本装置はCGCの出力回路をさらに含む。出力回路は、遅延回路とラッチとに結合される。出力回路は、クロック信号および第2の信号に基づいてマスタクロック信号を生成するように構成される。マスタクロック信号のエッジは、スレーブクロック信号に関連する遅延特性に基づいてクロック信号のエッジに対して遅延される。
別の特定の例では、CGCの動作方法は、CGCにおいてクロック信号を受信するステップを含む。本方法は、CGCのラッチによって第1の信号を生成するステップと、クロック信号、およびラッチによって生成された第1の信号に応答してCGCの遅延回路を使用してマスタクロック信号を生成するステップとをさらに含む。マスタクロック信号のエッジは、スレーブクロック信号に関連する遅延特性に基づいてクロック信号のエッジに対して遅延される。
別の特定の例では、本装置は、CGCにおいて第1の信号を生成するための手段を含み、かつCGCにおいてクロック信号を受信するための手段をさらに含む。本装置は、クロック信号および第1の信号に応答して、CGCの遅延回路を使用してマスタクロック信号を生成するための手段をさらに含む。マスタクロック信号のエッジは、スレーブクロック信号に関連する遅延特性に基づいてクロック信号のエッジに対して遅延される。
本開示の例のうちの少なくとも1つによって提供される1つの特定の利点は、ハザード(たとえば、競合状態)を回避しながら、またはハザードの可能性を低減しながら低減される電力消費である。説明のために、マスタラッチおよびスレーブラッチをクロックゲーティングするために単一のCGCを利用するデバイスはハザードを回避するが、(マスタラッチおよびスレーブラッチは別々にクロックゲーティングされることはできないので)電力消費を増加させる場合がある。マスタラッチおよびスレーブラッチをクロックゲーティングするために別々のCGCを利用するデバイスは、(たとえば、クロックスキューによって)ハザードをもたらす場合がある。本開示によるデバイスは、(クロックスキューが生じる場合に)競合状態を生じることなく、(電力消費を低減しながら)マスタラッチおよびスレーブラッチを別々にクロックゲーティングしてもよい。本開示の他の例、利点、および特徴は、以下のセクション、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む本願全体のレビューの後明らかになるであろう。
遅延回路を有するクロックゲーティング回路(CGC)を含む装置の説明的な例のブロック図である。 遅延回路を含むCGCの説明的な例のブロック図である。 遅延回路を含むCGCにおいて実行されてもよいいくつかの動作のタイミングを示すタイミング図である。 遅延回路を含むCGCの動作の方法の特定の説明的な例の流れ図である。 遅延回路を含むCGCを有するプロセッサを含む電子デバイスのブロック図である。
図1を参照すると、デバイスの説明的な例が示され、全体的に100と指定されている。デバイス100は、プロセッサの中などにおける電子デバイス内で実装されてもよい。たとえば、デバイス100は、(たとえば、結果を1つのパイプラインステージの出力から別のパイプラインステージの入力に供給するために)パイプラインプロセッサのパイプラインステージ間に結合されてもよい。さらに説明するために、説明的な例として、デバイス100は、パイプラインデジタル信号プロセッサ(DSP)、パイプライン中央処理装置(CPU)、パイプライングラフィックス処理装置(GPU)、パイプラインアプリケーションプロセッサ(AP)、または別のパイプライン処理デバイスのパイプラインステージ間で統合されてもよい。他の場合には、デバイス100は、デバイス間でデータを通信するように構成されるデータインターフェースなど、別のデバイス内に統合されてもよい。
デバイス100はマスタラッチ104を含む。マスタラッチ104は、入力信号142を受信するように構成されてもよい。たとえば、マスタラッチ104は、パイプラインプロセッサの第1のパイプラインステージから入力信号142を受信するように構成されてもよい。
デバイス100は、複数のスレーブラッチ108など、1つまたは複数の第2のラッチをさらに含む。複数のスレーブラッチ108は、第1のスレーブラッチ118と、第2のスレーブラッチ120と、第3のスレーブラッチ122とを含んでもよい。図1の例は説明的であり、デバイス100は異なる数のスレーブラッチ(たとえば、1つのスレーブラッチ、2つのスレーブラッチ、4つのスレーブラッチ、または別の正整数n個のスレーブラッチ)を含んでもよいことを了解されたい。複数のスレーブラッチ108は、出力信号146を生成するように構成されてもよい。たとえば、複数のスレーブラッチ108は、出力信号146をパイプラインプロセッサの第2のパイプラインステージに供給するように構成されてもよい。
さらに説明するために、マスタラッチ104および複数のスレーブラッチ108は、"D"フリップフロップなどのフリップフロップを形成してもよい。この場合、入力信号142はデータ入力信号(d)に対応してもよく、出力信号146は複数のフリップフロップデータ出力信号(q)に対応してもよい。出力信号146は、第1のスレーブラッチ118によって生成された第1の出力信号(q0)と、第2のスレーブラッチ120によって生成された第2の出力信号(q1)と、第3のスレーブラッチ122によって生成された第3の出力信号(qn)とを含んでもよい。
マスタラッチ104は、複数のスレーブラッチ108の各ラッチに結合される。説明のために、デバイス100は、ドライバ106(たとえば、バッファ)とビットライン(BL)110とをさらに含んでもよい。ドライバ106は、BL110に結合されてもよい。ドライバ106はマスタラッチ104の出力に結合されてもよく、BL110は複数のスレーブラッチ108の各々の入力に結合されてもよい。マスタラッチ104は、BL信号144などの信号を、ドライバ106およびBL110を使用して複数のスレーブラッチ108に供給するように構成されてもよい。
デバイス100は、第1のクロックゲーティング回路(CGC)112をさらに含む。第1のCGC112は、マスタラッチ104に結合される。第1のCGC112は、マスタラッチ104による電力消費を低減するためにクロック信号130を受信してクロック信号130をゲーティングするように(たとえば、それによってマスタラッチ104がクロック信号130における遷移によってアクティブ化および非アクティブ化されないように)構成されてもよい。たとえば、第1のCGC112は、クロック信号130に基づいてマスタクロック信号134を生成するように構成されてもよい。クロック信号130は、デバイスのパイプラインステージ間に結合される各フリップフロップに供給される同期クロック信号であってもよい。第1のCGC112は、マスタクロック信号134をマスタラッチ104に供給するように構成されてもよい。
第1のCGC112は、ラッチ152(たとえば、phi-2ホールドラッチ)と、遅延回路156と、出力回路160とを含む。出力回路160はマスタラッチ104に結合されてもよく、マスタクロック信号134をマスタラッチ104に供給するように構成されてもよい。第1のCGC112は、たとえばマスタクロック信号134の生成中にクロック信号130の立上りエッジのタイミングに影響を及ぼさないかまたは実質的に影響を及ぼさないでクロック信号130の立下りエッジを遅延させることによって、クロック信号130の特定のエッジ(たとえば、立下りエッジ)を遅延させるために遅延回路156を使用することによってマスタクロック信号134を生成するように構成されてもよい。この場合、マスタクロック信号134の立下りエッジはクロック信号130に対して遅延されてもよく、マスタクロック信号134の立上りエッジはクロック信号130に対して同時または実質的に同時に生じてもよい。
デバイス100は、複数の第2のCGC116など、1つまたは複数の第2のCGCをさらに含んでもよい。複数の第2のCGC116の各々は、複数のスレーブラッチ108の対応するラッチに結合されてもよい。たとえば、複数の第2のCGC116は、第1のスレーブラッチ118に結合されるCGC116aと、第2のスレーブラッチ120に結合されるCGC116bと、第3のスレーブラッチ122に結合されるCGC116cとを含んでもよい。この例では、複数のスレーブラッチ108はn個のスレーブラッチを含み、複数の第2のCGC116はn個のCGCを含む。複数の第2のCGC116は、クロック信号130を受信するように構成されてもよい。複数の第2のCGC116は、クロック信号130に基づいて(代表的スレーブクロック信号138を含んでもよい)複数のスレーブクロック信号を生成するように構成されてもよい。複数の第2のCGC116の各々は、複数のスレーブクロック信号のうちの対応する1つのスレーブクロック信号を複数のスレーブラッチ108のうちの対応する1つのスレーブラッチに供給するように構成されてもよい。説明的な例として、CGC116aは、スレーブクロック信号138を生成し、スレーブクロック信号138を第1のスレーブラッチ118に供給するように構成されてもよい。
複数のスレーブラッチ108は、位相1(phi-1)構成を有してもよい。この場合、複数のスレーブラッチ108は、複数の第2のCGC116によって生成されたスレーブクロック信号の立上りエッジによってトリガされてもよい。説明的な例として、第1のスレーブラッチ118は、スレーブクロック信号138の立上りエッジによってトリガされてもよい。したがって、複数の第2のCGC116によって生成されたスレーブクロック信号がハイの論理値を有する一方で、複数のスレーブラッチ108は「トランスペアレント」であってもよい(たとえば、スレーブクロック信号がハイの論理値を有するときに複数のスレーブラッチ108はBL信号144を出力してもよい)。マスタラッチ104は、位相2(phi-2)構成を有してもよい。この場合、マスタラッチ104は、マスタクロック信号134の立下りエッジによってトリガされてもよい。したがって、マスタクロック信号134がローの論理値を有する一方で、マスタラッチ104は「トランスペアレント」であってもよい(たとえば、マスタクロック信号134がローの論理値を有するときにマスタラッチ104は入力信号142を出力してもよい)。第1のCGC112はphi-2 CGCと呼ばれる場合があり、複数の第2のCGC116の各々はphi-1 CGCと呼ばれる場合がある。
動作時、第1のCGC112は、クロック信号130を受信してもよい。説明的な例では、ラッチ152、遅延回路156および出力回路160は、それぞれ、クロック信号130を受信するように構成される。ラッチ152は、クロック信号130に応答して第1の信号154を生成してもよい。遅延回路156は、第1の信号154に応答してもよい。たとえば、いくつかの実装形態では、第1の信号154は、遅延回路156に直接供給されてもよい。他の場合、第1の信号154は、図2を参照しながらさらに説明するように、たとえば1つまたは複数の論理ゲート(たとえば、試験工程中に使用されるORゲート)を使用して遅延回路156に間接的に供給されてもよい。
遅延回路156は、第1の信号154に応答して第2の信号158を生成するように構成されてもよい。遅延回路156は、(たとえば、スレーブクロック信号138に関連する潜在的な(または「最大の」)クロックスキューに基づいて)スレーブクロック信号138に関連する遅延特性に基づいて動作するように構成されてもよい。説明的な例として、遅延回路156は、1つまたは複数のクロック信号130または第1の信号154の、第1の論理値から第2の論理値への遷移に応答して、第2の信号158の、第1の論理値(たとえば、ハイの論理値)から第2の論理値(たとえば、ローの論理値)への遷移を遅延させるように構成されてもよい。出力回路160は遅延間隔の満了までマスタクロック信号134の第1の論理値を「保持する」ように構成されてもよいので、マスタクロック信号134のエッジ(たとえば、立下りエッジ)は、(たとえば、スレーブクロック信号138の対応する立下りエッジの前にマスタクロック信号134の立下りエッジが生じるのを回避するために)遅延されてもよい。
第1のCGC112は、マスタクロック信号134をマスタラッチ104に選択的に供給してもよい。たとえば、データがマスタラッチ104において受信されていない場合、第1のCGC112は、(マスタラッチ104をアクティブ化および非アクティブ化することを回避するために)マスタクロック信号134を生成することを回避してもよい。データ(たとえば、入力信号142)がマスタラッチ104において受信されている場合、第1のCGC112は、(入力信号142を複数のスレーブラッチ108に転送することをマスタラッチ104に行わせるために)マスタクロック信号134をマスタラッチ104に供給してもよい。複数の第2のCGC116は、スレーブクロック信号を複数のスレーブラッチ108に選択的に供給してもよい。たとえば、CGC116aは、データがマスタラッチ104によって第1のスレーブラッチ118に供給されている場合、スレーブクロック信号138を第1のスレーブラッチ118に供給してもよい。
遅延回路156は、マスタクロック信号134の立下りエッジをクロック信号130の立下りエッジに対して遅延させてもよい。たとえば、遅延回路156は、たとえば特定の回路設計、作製技術、物理的レイアウト、1つまたは複数の他のパラメータ、またはそれらの組合せに基づくスレーブクロック信号138に関連する潜在的な(または「最大の」)クロックスキューに基づいて、マスタクロック信号134の立下りエッジがスレーブクロック信号138の立下りエッジの後で(およびスレーブクロック信号138の後続の立上りエッジの前に)生じることを確実にするように構成されてもよい。遅延回路156の例示的な実装形態については、図2を参照しながらさらに説明する。
マスタクロック信号134の立下りエッジをクロック信号130の立下りエッジに対して遅延させることで、(たとえば、マスタクロック信号134の立下りエッジがスレーブクロック信号138の立下りエッジの少し前に生じる場合に)マスタクロック信号134がローの論理値を有する一方で1つまたは複数のクロック信号がハイの論理値を有する動作状態が回避される場合がある。説明のために、マスタラッチ104がphi-2構成を有し(かつマスタクロック信号134の立下りエッジによってトリガされ)、第1のスレーブラッチ118がphi-1構成を有し(かつスレーブクロック信号138の立上りエッジによってトリガされる)場合、そのような動作状態は、共通のクロックサイクル中にマスタラッチ104と第1のスレーブラッチ118の両方をトランスペアレントにさせる場合がある。マスタクロック信号134の立下りエッジを遅延させることによって、そのような動作状態は回避される場合がある。
図2は、図1の第1のCGC112の説明的な例を示す。第1のCGC112は、図1のラッチ152と、遅延回路156と、出力回路160とを含んでもよい。図2の例は、遅延回路156がANDデバイス210を含んでもよく、出力回路160がORゲート214を含んでもよいことを示す。また、第1のCGC112は、第2のラッチ208(たとえば、phi-1ホールドラッチ)を含んでもよい。
ラッチ152、第2のラッチ208、遅延回路156および出力回路160は、クロック信号130を受信するように構成されてもよい。出力回路160は、(たとえば、遅延回路156の出力信号に応答して)マスタクロック信号134を出力するように構成されてもよい。マスタクロック信号134は、クロック信号130の立下りエッジに対して遅延される立下りエッジを有してもよい。
ORゲート214は、3入力(OR3)構成を有してもよい。たとえば、ORゲート214は、第1の入力216と、第2の入力218と、第3の入力220とを含んでもよい。図2の例では、第1の入力216はクロック信号130を受信するように構成され、第2の入力218は第2のラッチ208に結合され、第3の入力は遅延回路156に結合される。ORゲート214は、マスタクロック信号134を出力するように構成される出力222をさらに含んでもよい。たとえば、出力222は図1のマスタラッチ104に結合されてもよく、ORゲート214はマスタクロック信号134を出力222を介してマスタラッチ104に供給するように構成されてもよい。
第1のCGC112は、第1の入力230と第2の入力232とを有するORゲート206をさらに含んでもよい。第1の入力230は、ラッチ152に結合されてもよい。第2の入力232は、テストイネーブル信号202を受信するように構成されてもよい。ORゲート206は、第2のラッチ208と遅延回路156とに結合される出力234をさらに含んでもよい。たとえば、出力234は、ANDデバイス210の第2の入力226に結合されてもよい。
ANDデバイス210は、第1の入力224と第2の入力226とを含んでもよい。第1の入力224は、クロック信号130を受信するように構成されてもよい。第2の入力226は、ORゲート206によって駆動され、ラッチ152に応答してもよいように構成されてもよい。ANDデバイス210は、出力回路160に結合される出力228をさらに含んでもよい。たとえば、出力228は、ORゲート214の第3の入力220に結合されてもよい。
図2は、例示のために、ANDデバイス210がANDゲートを含んでいるように示すが、ANDデバイス210は異なる構成を有してもよいことを了解されたい。たとえば、図2は、250において、ANDデバイス210の例示的な実装形態を示す。この例では、ANDデバイス210は、NOT-AND(NAND)ゲート252および1つまたは複数のインバータ254を含んでもよい。1つまたは複数のインバータ254は、NANDゲート252および1つまたは複数のインバータ254がAND論理ゲートとして機能するように、奇数の正整数の数のインバータ(たとえば、1つのインバータ、3つのインバータ、5つのインバータ、または別の奇数の正整数の数のインバータ)を含む。NANDゲート252および1つまたは複数のインバータ254は、遅延回路156に関連する遅延特性(t)を有するANDゲートとして機能するように構成されてもよい。1つまたは複数のインバータ254の数(n)は、遅延特性(t)に基づいて決定されてもよい。説明のために、1つまたは複数のインバータ254の数(n)は、遅延特性(t)からNANDゲート252に関連する第1の遅延時間(t1)を引いたものを、1つまたは複数のインバータ254の各インバータに関連する第2の遅延時間(t2)で割る(すなわち、n=(t-t1)/t2)ことに基づいて決定されてもよい。
ANDデバイス210の使用では、遅延回路156の電力消費が1つまたは複数の他の構成と比較して低減される場合がある。説明のために、ANDデバイス210は、ORゲート206が出力234においてローの論理値を生成することに応答して非アクティブであってもよい。他のデバイス(たとえば、バッファ)は、クロック信号130に応答して動作(または「トグル」)して、ANDデバイス210の使用と比較して電力消費を増加させる場合がある。さらに、図2はANDゲートを示すが、1つまたは複数の他のデバイスが実装されてもよいことを了解されたい。たとえば、いくつかのアプリケーションでは、遅延回路156は、ANDデバイス210を参照しながら説明したAND論理機能を実行してもよい1つまたは複数の演算増幅器を含んでもよい。代替的にまたは追加として、遅延回路156は、1つまたは複数のAND論理ゲート、1つまたは複数のOR論理ゲート、1つまたは複数の排他的OR(XOR)論理ゲート、1つまたは複数のNOT-OR(NOR)論理ゲート、1つまたは複数の排他的NOR(XNOR)ゲート、1つまたは複数の他の論理ゲート、またはそれらの組合せなど、1つまたは複数の他の論理ゲートを含んでもよい。
図2は、第1のCGC112が複数のクロックゲーティングサブ回路を含んでもよいことを示す。たとえば、ラッチ152および遅延回路156は第1のクロックゲーティングサブ回路240(たとえば、phi-1クロックゲーティングサブ回路)を形成してもよく、第2のラッチ208および出力回路160は第2のクロックゲーティングサブ回路242(たとえば、phi-2クロックゲーティングサブ回路)を形成してもよい。この例では、第1のクロックゲーティングサブ回路240は、(たとえば、イネーブル信号200がアサートされないときに)入力がローの論理値を有することに応答して、(たとえば、ローの論理値を出力することによって)クロック信号130をゲートオフするphi-1(または「標準」)CGCとして機能してもよい。第2のクロックゲーティングサブ回路242は、(たとえば、ORゲート206がローの論理値を出力するときに)入力がローの論理値を有することに応答して、ハイの論理値を出力するphi-2 CGCとして機能してもよい。
テスト動作モード中、テストイネーブル信号202がアサートされてもよい(たとえば、ハイの論理値を有してもよい)。たとえば、スキャンプロセスが、第1のCGC112を含む集積回路(たとえば、プロセッサ)の動作を確認するためにテストモードとともに実行されてもよい。スキャンプロセスの間に、イネーブル信号200の値は、スキャンプロセスの1つまたは複数の他の動作の結果として(たとえば、ハイの論理値からローの論理値に)変化してもよい。この例では、テストイネーブル信号202は、ラッチ152を「バイパスする」ためにアサートされてもよい。テストイネーブル信号202は、マスタクロック信号134にクロック信号130を追跡(または「追従」)させてもよいハイの論理値を(ラッチ152によって供給される値に関係なく)出力することを、ORゲート206に行わせてもよい。したがって、テストイネーブル信号202をアサートすることで、(たとえば、マスタラッチ104を含む集積回路の動作を確認するために)スキャンプロセス中にマスタクロック信号134がアクティブである(たとえば、発振している)ことが確実になる場合がある。
1つまたは複数の他の動作モード(たとえば、非テスト動作モード)中に、テストイネーブル信号202がアサートされない場合がある。例示的な実装形態では、イネーブル信号200は、図1のマスタラッチ104がアクティブ化されるべきである場合にアサートされる。たとえば、デバイスの1つのパイプラインステージからのデータが、マスタラッチ104を使用してデバイスの別のパイプラインステージに供給される準備ができている場合、イネーブル信号200はマスタラッチ104をアクティブ化するためにアサートされてもよい。データがマスタラッチ104を使用してパイプラインステージ間で供給される準備ができていないとき、イネーブル信号200はアサートされない場合がある。
イネーブル信号200がアサートされている間、出力回路160は、クロック信号130のローの論理値からハイの論理値への遷移(または立上りエッジ)に応答して、ハイの論理値を出力222において生成してもよい。たとえば、クロック信号130の立上りエッジに応答して、ORゲート214は、マスタクロック信号134の立上りエッジを生成するために、ローの論理値を出力222において生成することからハイの論理値を出力222において生成することに遷移してもよい。この場合、マスタクロック信号134の立上りエッジは、クロック信号130の立上りエッジを追跡(または「追従」)してもよい。
イネーブル信号200がアサートされている間に、クロック信号130のハイの論理値からローの論理値への遷移(または立下りエッジ)に応答して、ラッチ152によって生成された第1の信号154はハイの論理値を有してもよい(すなわち、ラッチ152はクロック信号130の立下りエッジに応答してトランスペアレントになってもよい)。ORゲート206は、ラッチ152によって生成された第1の信号154に応答してもよい。第1の信号154に応答して、ORゲート206は、ハイの論理値を有するゲーティング信号207を遅延回路156および第2のラッチ208に供給してもよく、第2のラッチ208は、ローの論理値を出力回路160に供給してもよい。この例では、第1の入力216および第2の入力218は、ローの論理値を受信する。
遅延回路156はクロック信号130およびゲーティング信号207を受信してもよく、クロック信号130およびゲーティング信号207に基づいて第2の信号158を生成してもよい。遅延回路156の遅延特性により、第2の信号158に関連する値は、クロック信号130の立下りエッジの後に一時的に(たとえば、立下りエッジの後の約tピコ秒の間に)ハイの論理値のままである場合がある。この例では、遅延回路156によって生成された第2の信号158は、ローの論理値への遷移を遅延されてもよく、そのことで出力回路160の出力がハイの論理値に一時的に留まることが生じてもよい。クロック信号130の立下りエッジと、遅延回路156の出力のハイの論理値からローの論理値への遷移との間の遅延間隔の後に、遅延回路156によって生成された第2の信号158は、ローの論理値に遷移してもよい。その結果、マスタクロック信号134の立下りエッジは、(遅延回路156によって)クロック信号130の立下りエッジに対して遅延されてもよい。
図1のデバイス100を使用して転送されるべきデータがない場合(たとえば、1つのパイプラインステージの結果を、デバイス100を使用して別のパイプラインステージに供給するために利用できない場合)、第1のCGC112は、マスタラッチ104をクロックゲーティング(たとえば、非アクティブ化)してもよい。たとえば、イネーブル信号200は、第1の値から第2の値に(たとえば、ハイの論理値からローの論理値に)調整されてもよい。その結果、ラッチ152は非アクティブ化されてもよく、そのことで出力回路160が、マスタクロック信号134をマスタラッチ104に供給することを停止することが生じてもよい。したがって、マスタラッチ104は、イネーブル信号200に基づいて非アクティブ化されてもよい。
マスタクロック信号134の立下りエッジを遅延させることで、マスタクロック信号134が(マスタラッチ104をアクティブまたは「トランスペアレント」にさせる)ローの論理値を有する一方で、1つまたは複数のスレーブクロック信号が(複数のスレーブラッチ108をトランスペアレントにさせる)ハイの論理値を有し、そのことで(たとえば、デバイス100の出力が1クロックサイクル早すぎて生成されるときに)「競合」状態が生じ得る動作状態が回避される場合がある。さらに、マスタクロック信号134の立下りエッジを遅延させることで、動作が立上りクロックエッジではなく立下りクロックエッジによってトリガされる(それは、マスタクロック信号134がローの論理値を有しかつスレーブクロック信号138がハイの論理値を有し、したがってマスタラッチ104と第1のスレーブラッチ118の両方がアクティブであるときに生じる場合がある)半サイクル経路を生成することが回避される場合がある。したがって、クロック信号130の立下りエッジ(およびスレーブクロック信号138の立下りエッジ)に対してマスタクロック信号134の立下りエッジを遅延させることで、(たとえば、競合状態および半サイクル経路を回避することによって)電子デバイスの性能を引き下げ得る動作状態が回避される場合がある。加えて、第2のクロックゲーティングサブ回路242は、マスタラッチ104のphi-2ゲーティングをイネーブルにしてもよい(たとえば、マスタラッチ104は、phi-1 CGCではなくphi-2 CGCを「見る」ことが可能であってもよい)。したがって、クロックゲーティングサブ回路240、242は、(競合状態または半サイクル経路を生じることなく)マスタラッチ104のphi-2クロックゲーティングをイネーブルにしてもよい。
図3を参照すると、例示的なタイミング図のセットが示され、全体的に300と指定されている。タイミング図のセット300は、クロック信号130に対応するタイミング図と、マスタクロック信号134に対応するタイミング図と、複数の第2のCGC116(たとえば、スレーブクロック信号138)によって生成された1つまたは複数のスレーブクロック信号に対応するタイミング図と、入力信号142に対応するタイミング図と、BL信号144に対応するタイミング図と、出力信号146に対応するタイミング図とを含む。図3では、クロック信号130は、第1のサイクル304と第2のサイクル308とを有する。
図3は、スレーブクロック信号138が、1つまたは複数のクロック信号130/またはマスタクロック信号134に対して位相遅延(または「スキュー」)されてもよいことを示す。たとえば、第1のサイクル304の間に、スレーブクロック信号138の立上りエッジ336は、クロック信号130の立上りエッジ312と比較して、およびマスタクロック信号134の立上りエッジ324と比較して「遅れて」いる場合がある。クロックスキューは、1つまたは複数の物理的回路特性または動作特性によって生じる場合がある。一例として、デバイス100の特定の物理的回路レイアウトは、スレーブクロック信号138をマスタクロック信号134に対してスキューさせる場合がある。
第1のサイクル304の間に、クロック信号130の立上りエッジ312は、マスタクロック信号134の立上りエッジ324に対して同時または実質的に同時に生じる場合がある。また、図3は、クロック信号130の立下りエッジ316が、マスタクロック信号134の立下りエッジ328の前に生じる場合があることを示す。たとえば、遅延回路156は、遅延特性326(たとえば、図2を参照しながら説明した遅延特性(t))に基づいて立下りエッジ316に対して立下りエッジ328を遅延させてもよい。遅延特性326は、スレーブクロック信号138などのスレーブクロック信号と関連付けられてもよい。たとえば、遅延特性は、特定の回路設計、作製技術、物理的レイアウト、1つまたは複数の他のパラメータ、またはそれらの組合せに基づいて、マスタクロック信号134に対するスレーブクロック信号138の予想されるまたは潜在的な(たとえば、「最大の」)クロックスキューに基づいて選択されてもよい。
立下りエッジ328を遅延させることで、マスタクロック信号134がローの論理値を有しかつスレーブクロック信号138がハイの論理値を有し、そのことで(たとえば、マスタラッチ104および第1のスレーブラッチ118を同時にアクティブ化することによって)「競合」状態が生成される場合がある動作状態が回避される場合がある。特定のアプリケーションに応じて、立下りエッジ328は、スレーブクロック信号138の立下りエッジ338の後、またはその立下りエッジ338と実質的に同時のいずれかにおいて生じるように遅延されてもよい。
マスタクロック信号134の立下りエッジを遅延させた結果として、マスタクロック信号134のデューティサイクルは、クロック信号130のデューティサイクルまたはスレーブクロック信号138のデューティサイクルのうちの1つまたは複数より大きくなる場合がある。たとえば、立上りエッジ324と立下りエッジ328との間の時間間隔は、立下りエッジ328と立上りエッジ332との間の時間間隔より大きいので、マスタクロック信号134のデューティサイクルは、50%より大きい(たとえば、60%、70%、80%、または別のパーセンテージ)場合がある。クロック信号130の1つまたは複数のデューティサイクルあるいはスレーブクロック信号138のデューティサイクルは、約50%であってもよい。
さらなる説明のために、図3は、入力信号142の遷移342と、BL信号144の遷移344と、出力信号146の遷移346とを示す。図3は説明の便宜上、ハイからローとローからハイの両方の論理値遷移を示すが、信号142、144および146の各々は、特定の時刻において単一の値を有するシングルエンド信号であってもよいことを了解されたい。遷移344は、マスタクロック信号134の立下りエッジ328に応答して生じる場合がある(たとえば、マスタラッチ104は、マスタクロック信号134のローの論理値に応答してマスタラッチ104をトランスペアレントにさせるphi-2構成を有する場合がある)。遷移346は、スレーブクロック信号138の立上りエッジ340に応答して生じる場合がある(たとえば、複数のスレーブラッチ108は、スレーブクロック信号138などのスレーブクロック信号のハイの論理値に応答して複数のスレーブラッチ108をトランスペアレントにさせるphi-1構成を有する場合がある)。
立下りエッジ328を遅延させることによって、遷移346が「あまりに早く」生じる場合がある動作状態が回避される。たとえば、立下りエッジ328を遅延させることによって、(たとえば、クロックスキューによって)マスタクロック信号134がローの論理値を有すると同時にスレーブクロック信号138がハイの論理値を有する動作状態が回避される。この動作状態では、遷移346は、立上りエッジ340ではなく立下りエッジ338に応答して生じる(すなわち、半サイクル「早すぎる」)場合がある。そのような動作状態は、意図しないデバイス動作を引き起こすことがある競合状態をもたらす場合がある。立下りエッジ328を遅延させることで、そのような動作状態が回避される場合がある。
さらに、クロックスキューがデバイス内で生じない場合、立下りエッジ328を遅延させることがデバイス性能を引き下げることはないことに留意されたい。たとえば、スレーブクロック信号138がクロック信号130と同相である(かつクロックスキューは存在しない)場合、マスタクロック信号134の立下りエッジを遅延させることで、マスタクロック信号134の遅延のない立下りエッジと比較して、同様のデバイス性能を生じる場合がある。したがって、遅延回路156は、第1のCGC112の「内部の」または「既存の」信号を使用して動作してもよい(および第1のCGC112の外にあるデバイスから供給される外部イネーブル信号などの外部信号を使用して非アクティブ化される必要はない)。
図4を参照すると、本方法の説明的な例が示され、全体的に400と指定されている。方法400は、それぞれ、デバイス100および第1のCGC112などのクロックゲーティング回路を含むデバイスにおいて実行されてもよい。
方法400は、402において、CGCにおいてクロック信号を受信するステップを含んでもよい。たとえば、クロック信号130は、第1のCGC112において受信されてもよい。
方法400は、404において、CGCのラッチによって第1の信号を生成するステップをさらに含んでもよい。たとえば、ラッチ152は、第1の信号154を生成してもよい。
方法400は、406において、クロック信号、およびラッチによって生成された第1の信号に応答してCGCの遅延回路を使用してマスタクロック信号を生成するステップをさらに含んでもよい。マスタクロック信号のエッジは、スレーブクロック信号に関連する遅延特性に基づいてクロック信号のエッジに対して遅延される。たとえば、遅延回路は遅延回路156に対応してもよく、マスタクロック信号はマスタクロック信号134に対応してもよい。追加の説明的で非限定的な例として、クロック信号のエッジは立下りエッジ316に対応してもよく、マスタクロック信号のエッジは立下りエッジ328に対応してもよく、遅延特性は遅延特性326(たとえば、遅延間隔)に対応してもよい。
また、方法400は、ラッチによって生成された第1の信号に応答して、ゲーティング信号を遅延回路に、CGCの論理ゲートによって供給するステップを含んでもよい。たとえば、論理ゲートは、ORゲート206などのORゲートに対応してもよい。ORゲート206はゲーティング信号207を生成してもよく、ゲーティング信号207を遅延回路156に供給してもよい。
また、方法400は、クロック信号のエッジに応答して(たとえば、クロック信号130の立下りエッジ316に応答して)遅延回路によって生成された第2の信号を第1の論理値(たとえば、ハイの論理値)から第2の論理値(たとえば、ローの論理値)に遷移させるステップを含んでもよい。この例では、遅延特性は、クロック信号のエッジと遅延回路の出力の遷移との間の遅延間隔に対応する場合がある。第2の信号は、第2の信号158に対応する場合がある。
方法400は、CGCのラッチに供給されるイネーブル信号を調整することによってCGCを非アクティブ化することによってマスタラッチをクロックゲーティングするステップをさらに含んでもよい。たとえば、イネーブル信号200は、ハイの論理値からローの論理値に調整されてもよい。イネーブル信号200はラッチ152に供給されてもよく、イネーブル信号の値を調整することで、第1のCGC112がマスタラッチ104をクロックゲーティングする(たとえば、マスタラッチ104を非アクティブ化する)ことが生じる場合がある。
方法400は、デバイスのテスト動作モード中にテストイネーブル信号をCGCのORゲートに供給するステップと、デバイスの非テスト動作モード中にテストイネーブル信号を調整するステップとをさらに含んでもよい。説明のために、テストイネーブル信号202は、デバイス100のテスト動作モード中にハイの論理値を有してもよい。テストイネーブル信号202は、デバイス100の非テスト動作モードに関連してハイの論理値からローの論理値に調整されてもよい。
方法400を参照しながら説明したようにマスタクロック信号の立下りエッジを遅延させることによって、いくつかの競合状態がデバイスにおいて回避される場合がある。たとえば、スレーブクロック信号のクロックスキューによる競合状態が回避される場合がある。
図5を参照すると、電子デバイスの特定の説明的な例のブロック図が示されており、全体的に500と指定される。電子デバイス500は、説明的な例として、モバイルデバイス(たとえば、携帯電話)に対応してもよい。他の実装形態では、電子デバイス500は、コンピュータ(たとえば、ラップトップコンピュータ、タブレットコンピュータ、またはデスクトップコンピュータ)、ウェアラブル電子デバイス(たとえば、パーソナルカメラ、ヘッドマウントディスプレイ、または時計)、車両制御システムもしくはコンソール、家電製品、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、テレビジョン、チューナ、ラジオ(たとえば、衛星ラジオ)、音楽プレーヤ(たとえば、デジタル音楽プレーヤまたはポータブル音楽プレーヤ)、ビデオプレーヤ(たとえば、デジタルビデオディスク(DVD)プレーヤまたはポータブルデジタルビデオプレーヤなどのデジタルビデオプレーヤ)、ロボット、ヘルスケアデバイス、別の電子デバイス、またはそれらの組合せに対応する場合がある。
電子デバイス500は、説明的な例として、DSP、CPU、GPU、またはAPなどのプロセッサ510を含む。プロセッサ510は、複数のパイプラインステージを含むパイプライン構成を有してもよく、図1のデバイス100に対応するデバイスは、パイプラインステージの各ペア間で結合されてもよい。説明のために、プロセッサ510は第1のパイプラインステージ512および第2のパイプラインステージ514を含んでもよく、デバイス100(および第1のCGC112)は第1のパイプラインステージ512と第2のパイプラインステージ514との間に結合されてもよい。例示的な実装形態では、第1のCGC112は、図2を参照しながら説明した通りである。デバイス100は、図3のタイミング図のセット300に基づいて、図4の方法400に基づいて、またはそれらの組合せで動作してもよい。
電子デバイス500は、メモリ532をさらに含んでもよい。メモリ532は、プロセッサ510に結合される。メモリ532は、プロセッサ510によってアクセス可能な命令568を含む。命令568は、プロセッサ510によって実行可能である1つまたは複数の命令を含んでもよい。たとえば、命令568は、本明細書で説明するいくつかの動作を開始または制御するために、プロセッサ510によって実行可能であってもよい。たとえば、命令568は、パイプラインステージ512、514を使用して1つまたは複数の算術演算または論理演算を実行するためにプロセッサ510によって実行可能であってもよい。
図5はまた、プロセッサ510およびディスプレイ528に結合されるディスプレイコントローラ526を示す。コーダ/デコーダ(コーデック)534をプロセッサ510に結合することもできる。スピーカー536およびマイクロフォン538がコーデック534に結合され得る。図5はまた、ワイヤレスインターフェース540(たとえば、ワイヤレスコントローラまたはトランシーバのうちの1つまたは複数)が、プロセッサ510とアンテナ542とに結合されてもよいことを示す。
特定の例では、プロセッサ510、ディスプレイコントローラ526、メモリ532、コーデック534、およびワイヤレスインターフェース540が、パッケージ、システムインパッケージ(SiP)デバイス、またはSoCデバイス522などのシステムオンチップ(SoC)デバイスのうちの1つまたは複数の中に含まれる。さらに、入力デバイス530および電源544が、SoCデバイス522に結合されてもよい。さらに、特定の例では、図5に示すように、ディスプレイ528、入力デバイス530、スピーカー536、マイクロフォン538、アンテナ542、および電源544は、SoCデバイス522の外部にある。しかしながら、ディスプレイ528、入力デバイス530、スピーカー536、マイクロフォン538、アンテナ542、および電源544の各々は、インターフェースまたはコントローラなど、SoCデバイス522の構成要素に結合され得る。
特定の例では、本装置はCGC(たとえば、第1のCGC112)において第1の信号を生成するための手段を含む。たとえば、第1の信号を生成するための手段は、ラッチ152を含んでもよい。本装置は、CGCにおいてクロック信号(たとえば、クロック信号130)を受信するための手段をさらに含む。本装置は、クロック信号および第1の信号に応答して、CGCの遅延回路(たとえば、遅延回路156)を使用してマスタクロック信号(たとえば、マスタクロック信号134)を生成するための手段をさらに含む。マスタクロック信号のエッジ(たとえば、立下りエッジ328などの立下りエッジ)は、スレーブクロック信号(たとえば、スレーブクロック信号138)に関連する遅延特性(たとえば、遅延特性326)に基づいて、クロック信号の立下りエッジ(たとえば、立下りエッジ316)に対して遅延される。たとえば、クロック信号を受信するための手段は、ラッチ152、第2のラッチ208、NANDゲート252、またはORゲート214への第1の入力216のうちの1つまたは複数を含んでもよい。別の例として、マスタクロック信号を生成するための手段は、ORゲート214を含む出力回路160を含んでもよい。
説明の便宜上、マスタラッチ104はphi-2ラッチとして説明されており、複数のスレーブラッチ108の各々はphi-1ラッチとして説明されている。いくつかのアプリケーションでは、マスタラッチはphi-1ラッチであってよく、スレーブラッチはphi-2ラッチであってよいことを了解されたい。この場合、第1のCGC112を参照しながら説明したいくつかの構造および機能は、(たとえば、そのような構造および機能を第1のCGC112において実装するのではなく)複数の第2のCGC116において実装されてもよい。さらに、いくつかのアプリケーションでは、クロック信号の立上りエッジは、クロック信号の立下りエッジを遅延させることの代替または追加として遅延されてもよい。たとえば、CGCは、(phi-1ラッチに供給されるクロック信号の立下りエッジを遅延させることの代替または追加として)phi-1ラッチに供給されるクロック信号の立上りエッジを遅延させるように構成されてもよい。
図1〜図5のうちの1つまたは複数を参照しながら説明した、上記で開示したデバイスおよび機能は、コンピュータファイル(たとえば、RTL、GDSII、GERBERなど)を使用して設計され、表わされてもよい。コンピュータファイルは、コンピュータ可読媒体に記憶されてもよい。そのようなファイルの一部または全部が、そのようなファイルに基づいてデバイスを製造する製造者に提供されてもよい。得られる生成物は、次いで、ダイに切断され、集積回路(または「チップ」)にパッケージされるウエハを含む。次いで、チップは、電子デバイス内で利用される。たとえば、SoCデバイス522は、図5を参照しながら説明した電子デバイス500内で利用されてもよい。
図1〜図5はいくつかの例を便宜上別々に説明しているが、本開示は、これらの説明的な例に限定されるものではない。たとえば、本明細書で例示または説明した図1〜図5のうちのいずれかの図の、1つまたは複数の機能または構成要素は、図1〜図5のうちの別の図の1つまたは複数の他の機能または構成要素と組み合わされてもよい。したがって、本明細書において説明するいずれの単一の例も、限定するものとみなされるべきではなく、本開示の例は、本開示の範囲から逸脱することなく組み合わされてもよい。
さらに、本明細書で説明する例に関連して説明する様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、または両方の組合せとして実装されてもよいことを、当業者は了解されよう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップは、それらの機能性の観点から一般的に上記で説明されてきた。そのような機能性がハードウェアとして実現されるか、プロセッサ実行可能命令として実現されるかは、システム全体に課される特定の用途および設計制約によって決まる。当業者は、記載された機能性を特定の適用例ごとに様々な方法で実現することができるが、そのような実施態様の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で説明するいくつかの動作は、ハードウェア、プロセッサによって実行される命令、またはそれらの組合せを使用して開始、制御、または実行されてもよい。たとえば、図4の方法400の動作は、ハードウェア、実行可能命令、またはそれらの組合せを使用して開始されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当分野で知られている任意の他の形態の非一時的記憶媒体の中に存在する場合がある。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態において、記憶媒体はプロセッサと一体である場合がある。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)内に存在する場合がある。ASICはコンピューティングデバイスまたはユーザ端末内に存在する場合がある。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に別個の構成要素として存在する場合がある。
開示された例の先の説明は、当業者が開示された例を作製するかまたは使用することができるように提供されている。これらの例への様々な変形が当業者には容易に明らかであろうし、本明細書で定義された原理は、本開示の範囲から逸脱することなく他の例に適用されてもよい。したがって、本開示は、本明細書に示された例に限定されるものではなく、以下の特許請求の範囲によって定義されるような原理および新規な特徴と矛盾しない可能な限り広い範囲が与えられ得る。
100 デバイス
104 マスタラッチ
106 ドライバ
108 スレーブラッチ
110 ビットライン(BL)
112 第1のクロックゲーティング回路(CGC)
116 第2のCGC
116a CGC
116b CGC
116c CGC
118 第1のスレーブラッチ
120 第2のスレーブラッチ
122 第3のスレーブラッチ
130 クロック信号
134 マスタクロック信号
138 スレーブクロック信号
142 入力信号
144 BL信号
146 出力信号
152 ラッチ
154 第1の信号
156 遅延回路
158 第2の信号
160 出力回路
200 イネーブル信号
202 テストイネーブル信号
206 ORゲート
207 ゲーティング信号
208 第2のラッチ
210 ANDデバイス
214 ORゲート
216 第1の入力
218 第2の入力
220 第3の入力
222 出力
224 第1の入力
226 第2の入力
228 出力
230 第1の入力
232 第2の入力
234 出力
240 第1のクロックゲーティングサブ回路
242 第2のクロックゲーティングサブ回路
252 NANDゲート
254 インバータ
300 タイミング図のセット
304 第1のサイクル
308 第2のサイクル
312 立上りエッジ
316 立下りエッジ
324 立上りエッジ
326 遅延特性
328 立下りエッジ
332 立上りエッジ
336 立上りエッジ
338 立下りエッジ
340 立上りエッジ
342 遷移
344 遷移
346 遷移
500 電子デバイス
510 プロセッサ
512 第1のパイプラインステージ
514 第2のパイプラインステージ
522 システムオンチップ(SoC)デバイス
526 ディスプレイコントローラ
528 ディスプレイ
530 入力デバイス
532 メモリ
534 コーデック
536 スピーカー
538 マイクロフォン
540 ワイヤレスインターフェース
542 アンテナ
544 電源
568 命令

Claims (20)

  1. クロックゲーティング回路(CGC)のラッチであって、クロック信号に応答して第1の信号を生成するように構成される、ラッチと、
    前記CGCの遅延回路であって、前記クロック信号を受信し、かつ前記クロック信号および前記第1の信号に基づいて第2の信号を生成するように構成される、遅延回路と、
    前記CGCの出力回路であって、前記出力回路が前記遅延回路および前記ラッチに結合され、前記出力回路が前記クロック信号および前記第2の信号に基づいてマスタクロック信号を生成するように構成され、前記マスタクロック信号のエッジが、スレーブクロック信号に関連する遅延特性に基づいて前記クロック信号のエッジに対して遅延される、出力回路と
    を備える、装置。
  2. 前記CGCの第2のラッチをさらに備え、前記ラッチおよび前記遅延回路が第1のクロックゲーティングサブ回路を形成し、前記第2のラッチおよび前記出力回路が第2のクロックゲーティングサブ回路を形成する、請求項1に記載の装置。
  3. 前記マスタクロック信号が、前記クロック信号の立下りエッジに対して遅延される立下りエッジを有する、請求項1に記載の装置。
  4. 前記遅延回路がANDデバイスを含む、請求項1に記載の装置。
  5. 前記ANDデバイスが、前記クロック信号と、前記ラッチに応答する第2の入力とを受信するように構成される第1の入力を有する、請求項4に記載の装置。
  6. 前記ANDデバイスがNOT-AND(NAND)ゲートおよび1つまたは複数のインバータを含み、前記NANDゲートおよび前記1つまたは複数のインバータが、前記遅延回路に関連する遅延特性を有するANDゲートとして機能するように構成される、請求項4に記載の装置。
  7. 3入力(OR3)構成を有するORゲートをさらに備える、請求項1に記載の装置。
  8. 前記ORゲートが前記ラッチに結合される第1の入力を含み、かつテストイネーブル信号を受信するように構成される第2の入力をさらに含む、請求項7に記載の装置。
  9. 前記出力回路が、前記クロック信号を受信するように構成される第1の入力と、第2のラッチに結合される第2の入力と、前記遅延回路に結合される第3の入力とを有するORゲートを含む、請求項1に記載の装置。
  10. プロセッサの第1のパイプラインステージと、
    前記プロセッサの第2のパイプラインステージと
    をさらに含み、
    前記CGCが、前記第1のパイプラインステージと前記第2のパイプラインステージとの間に結合される、請求項1に記載の装置。
  11. クロックゲーティング回路(CGC)の動作の方法であって、
    CGCにおいてクロック信号を受信するステップと、
    前記CGCのラッチによって第1の信号を生成するステップと、
    前記クロック信号および前記ラッチによって生成された前記第1の信号に応答して、前記CGCの遅延回路を使用してマスタクロック信号を生成するステップであって、前記マスタクロック信号のエッジが、スレーブクロック信号に関連する遅延特性に基づいて前記クロック信号のエッジに対して遅延される、ステップと
    を含む、方法。
  12. 前記CGCの論理ゲートによって、前記ラッチによって生成された前記第1の信号に応答して、ゲーティング信号を前記遅延回路に供給するステップをさらに含む、請求項11に記載の方法。
  13. 前記クロック信号の前記エッジに応答して、前記遅延回路によって生成された第2の信号を第1の論理値から第2の論理値に遷移するステップをさらに含む、請求項12に記載の方法。
  14. 前記遅延特性が、前記クロック信号の前記エッジと、前記第1の論理値から前記第2の論理値への前記第2の信号の前記遷移との間の遅延間隔に対応する、請求項13に記載の方法。
  15. マスタラッチをクロックゲーティングするステップと、前記ラッチに供給されるイネーブル信号を調整することによって前記CGCを非アクティブ化するステップとをさらに含む、請求項11に記載の方法。
  16. デバイスのテスト動作モード中にテストイネーブル信号を前記CGCのORゲートに供給するステップをさらに含む、請求項11に記載の方法。
  17. 前記デバイスの非テスト動作モード中に前記テストイネーブル信号を調整するステップをさらに含む、請求項16に記載の方法。
  18. クロックゲーティング回路(CGC)において第1の信号を生成するための手段と、
    前記CGCにおいてクロック信号を受信するための手段と、
    前記クロック信号および前記第1の信号に応答して、前記CGCの遅延回路を使用してマスタクロック信号を生成するための手段であって、前記マスタクロック信号のエッジが、スレーブクロック信号に関連する遅延特性に基づいて前記クロック信号のエッジに対して遅延される、手段と
    を備える、装置。
  19. 前記信号を前記生成するための手段がラッチを含み、前記クロック信号を前記受信するための手段が、前記ラッチ、第2のラッチ、NOT-AND(NAND)ゲート、またはORゲートへの入力のうちの1つまたは複数を含む、請求項18に記載の装置。
  20. 前記マスタクロック信号を前記生成するための手段が、ORゲートを含む出力回路を含む、請求項19に記載の装置。
JP2018503645A 2015-07-27 2016-06-27 遅延回路を使用するクロックゲーティング Pending JP2018529147A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/810,243 US9837995B2 (en) 2015-07-27 2015-07-27 Clock gating using a delay circuit
US14/810,243 2015-07-27
PCT/US2016/039568 WO2017019219A1 (en) 2015-07-27 2016-06-27 Clock gating using a delay circuit

Publications (1)

Publication Number Publication Date
JP2018529147A true JP2018529147A (ja) 2018-10-04

Family

ID=56464289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018503645A Pending JP2018529147A (ja) 2015-07-27 2016-06-27 遅延回路を使用するクロックゲーティング

Country Status (7)

Country Link
US (1) US9837995B2 (ja)
EP (1) EP3329341A1 (ja)
JP (1) JP2018529147A (ja)
KR (1) KR20180034431A (ja)
CN (1) CN107850919B (ja)
BR (1) BR112018001592A2 (ja)
WO (1) WO2017019219A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020241048A1 (ja) * 2019-05-24 2020-12-03 ソニーセミコンダクタソリューションズ株式会社 回路システム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI723667B (zh) * 2019-12-05 2021-04-01 國立陽明交通大學 低電源雜訊的比較電路
TWI730707B (zh) * 2020-04-01 2021-06-11 瑞昱半導體股份有限公司 時脈閘控單元
CN113497606B (zh) * 2020-04-08 2024-02-23 瑞昱半导体股份有限公司 时脉闸控单元
US11894845B1 (en) * 2022-08-30 2024-02-06 Globalfoundries U.S. Inc. Structure and method for delaying of data signal from pulse latch with lockup latch
WO2024073194A1 (en) * 2022-09-27 2024-04-04 Qualcomm Incorporated Design for testability for fault detection in clock gate control circuits

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100247477B1 (ko) 1997-06-30 2000-03-15 김영환 비중복 2위상 클럭 간의 스큐 조절을 위한 클럭 장치
CN1224217A (zh) * 1998-01-23 1999-07-28 三菱电机株式会社 防止无效数据输出的时钟同步半导体存贮装置
US7170819B2 (en) * 2005-05-04 2007-01-30 Infineon Technologies Ag Integrated semiconductor memory device for synchronizing a signal with a clock signal
US7323909B2 (en) 2005-07-29 2008-01-29 Sequence Design, Inc. Automatic extension of clock gating technique to fine-grained power gating
US8572539B2 (en) 2007-11-06 2013-10-29 Esilicon Corporation Variability-aware scheme for high-performance asynchronous circuit voltage regulation
US8103941B2 (en) 2008-03-31 2012-01-24 Globalfoundries Inc. Low overhead soft error tolerant flip flop
US7772906B2 (en) 2008-04-09 2010-08-10 Advanced Micro Devices, Inc. Low power flip flop through partially gated slave clock
US7772889B2 (en) * 2008-04-09 2010-08-10 Globalfoundries Inc. Programmable sample clock for empirical setup time selection
JP2010045483A (ja) 2008-08-11 2010-02-25 Nec Electronics Corp クロックゲーティング回路
US8013654B1 (en) 2008-12-17 2011-09-06 Mediatek Inc. Clock generator, pulse generator utilizing the clock generator, and methods thereof
EP2320565A1 (en) 2009-11-05 2011-05-11 Nxp B.V. A delay component
US8058902B1 (en) * 2010-06-11 2011-11-15 Texas Instruments Incorporated Circuit for aligning input signals
GB2486003B (en) * 2010-12-01 2016-09-14 Advanced Risc Mach Ltd Intergrated circuit, clock gating circuit, and method
US8949652B2 (en) 2011-11-03 2015-02-03 Nvidia Corporation Glitchless programmable clock shaper
CN102857198B (zh) * 2012-08-30 2015-09-30 锐迪科科技有限公司 用于双边沿触发器的时钟门控电路
US20140225655A1 (en) 2013-02-14 2014-08-14 Qualcomm Incorporated Clock-gated synchronizer
US9213358B2 (en) 2013-10-31 2015-12-15 Qualcomm Incorporated Monolithic three dimensional (3D) integrated circuit (IC) (3DIC) cross-tier clock skew management systems, methods and related components

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020241048A1 (ja) * 2019-05-24 2020-12-03 ソニーセミコンダクタソリューションズ株式会社 回路システム
US11671086B2 (en) 2019-05-24 2023-06-06 Sony Semiconductor Solutions Corporation Circuit system

Also Published As

Publication number Publication date
WO2017019219A1 (en) 2017-02-02
KR20180034431A (ko) 2018-04-04
US9837995B2 (en) 2017-12-05
BR112018001592A2 (pt) 2018-09-18
US20170033775A1 (en) 2017-02-02
CN107850919B (zh) 2021-08-31
CN107850919A (zh) 2018-03-27
EP3329341A1 (en) 2018-06-06

Similar Documents

Publication Publication Date Title
JP2018529147A (ja) 遅延回路を使用するクロックゲーティング
US9564901B1 (en) Self-timed dynamic level shifter with falling edge generator
US9720438B2 (en) Clock switch device and system-on-chip having the same
TWI587650B (zh) 具有一三模式通常用途輸入/輸出介面之雙模式功率放大器控制介面組件及其操作方法
KR101711263B1 (ko) 가변 지연 라인 유닛을 갖는 지연 라인 회로
US8912853B2 (en) Dynamic level shifter circuit and ring oscillator using the same
KR102005791B1 (ko) 반도체 장치
US9366727B2 (en) High density low power scan flip-flop
US9804650B2 (en) Supply voltage node coupling using a switch
US8410814B2 (en) Receiver circuits for differential and single-ended signals
US9768779B2 (en) Voltage level shifters employing preconditioning circuits, and related systems and methods
US10938383B2 (en) Sequential circuit having increased negative setup time
US9000822B2 (en) Programmable delay circuit
US11303268B2 (en) Semi dynamic flop and single stage pulse flop with shadow latch and transparency on both input data edges
JP2015080202A (ja) 半導体回路および半導体システム
KR101075493B1 (ko) 파이프 래치 회로와 그의 동작 방법
US10705558B2 (en) Apparatuses and methods for avoiding glitches when switching clock sources
US10587256B2 (en) Operation method of signal receiver, pulse width controller, and electronic device including the same
JP2010537458A (ja) 論理状態キャッチ回路
KR102057503B1 (ko) 반도체 회로
US11258446B2 (en) No-enable setup clock gater based on pulse
JP2008177712A (ja) トライステートバス回路
KR20050110903A (ko) 링 오실레이터를 이용한 집적 회로 장치

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180130