(58)【調査した分野】(Int.Cl.,DB名)
前記回路が、前記第1および第2のフロップを含む複数のフロップ対に関する検出された不一致を受信し、カウント値を生成するために前記受信された不一致の数をカウントするように構成されており、前記電圧調整器が、前記カウント値に基づいて前記電圧を調整するように構成されている、請求項1に記載のデバイス。
【発明を実施するための形態】
【0011】
[0029]添付された図面に関連して以下に記載されている詳細な説明は、様々な構成の説明として意図されており、本明細書で説明されている概念が実施され得る唯一の構成を表すことを意図されていない。詳細な説明は、様々な概念の完全な理解を提供する目的のための特定の詳細を含む。しかしながら、これらの概念がこれらの特定の詳細なしに実施され得ることは、当業者には明らかであろう。いくつかの例では、周知の構造および構成要素は、そのような概念を不明瞭にすることを避けるために、ブロック図の形式で示されている。
【0012】
[0030]システムでは、クロック信号は、クロック源で生成され得、クロックツリーを介してシステム内の異なるデバイス(たとえば、フロップ)に分配され得る。クロックツリーは、異なるデバイスにクロック信号を分配するための複数のクロック経路に分岐することができる。クロックツリーは、各クロック経路に沿って1つまたは複数のバッファ(たとえば、インバータ)を含むことができる。
【0013】
[0031]データ信号は、システム内のデータ源から立ち上がられ得、システム内のデバイス(たとえば、フロップ)へのデータ経路を下方に伝播することができる。システムは、データ経路に沿って1つまたは複数のバッファ(たとえば、インバータ)および/または他のタイプのロジックを含むことができる。フロップの例に関して、フロップは、データ経路からデータ信号を受信することができ、クロックツリーからクロック信号を受信することができる。フロップは、フロップでデータ信号のラッチングの時間を定めるためにクロック信号を使用することができる。たとえば、フロップは、クロック信号の立ち上がりまたは立ち下がりエッジでデータ信号の論理値をラッチすることができる。フロップがデータ信号の論理値を正しくラッチするために、論理値は、クロックの立ち上がりまたは立ち下がりの後の時間の期間(ホールド時間と呼ばれる)中、安定である(変化しない)べきである。このタイミング条件を満たさないことは、ホールド違反を生じ、ホールド違反は、フリップが準安定状態に入ることを引き起こす可能性がある。従来のシステムでは、クロックツリーおよびデータ経路での伝搬遅延は、このタイミング条件が満たされていることを確実にするために(たとえば、バッファを使用して)調整される。
【0014】
[0032]しかしながら、データおよびクロック伝搬遅延のタイミングを制御することは、トランジスタがサブスレッショルド領域で意図的に動作されるシステム(すなわち、トランジスタをオンにすることを意図してトランジスタに提供される最大ゲート電圧がトランジスタのしきい値電圧未満であるシステム)に関して非常に困難である。これは、トランジスタがサブスレッショルド領域で動作するとき、トランジスタの電流がゲート電圧に指数関数的に関係し、トランジスタの電流をトランジスタのしきい値電圧(Vt)および/または電源電圧に指数関数的に敏感にさせるためである。したがって、サブスレッショルド領域で動作するトランジスタ間のしきい値電圧および/または電源電圧の小さい変動でも、それらの電流に大きな変動をもたらす可能性がある。これは、次に、トランジスタによって実現されたバッファおよび/または他のロジック間の遅延に大きな変動をもたらし、したがって、クロックツリーおよびデータ経路における伝搬遅延に大きな変動をもたらす。伝搬遅延における大きな変動は、ホールド条件を満たすようにフロップにおいてデータ信号に対するクロック信号のタイミングを制御することを非常に困難にする。たとえば、同じ数のバッファを有する2つの経路は、Vtおよび/または電源電圧の変動により大幅に異なる遅延を有する可能性がある。
【0015】
[0033]本開示の実施形態は、電力消費を低減するために低電圧データ信号(たとえば、サブスレッショルド電圧に対応するハイ状態を有するデータ信号)を依然として使用しながら、高電圧クロック信号を使用して上記の問題に対処する。この点について、
図1Aは、一実施形態による高電圧クロック信号110の電圧−時間の図を示す。高電圧クロック信号110の電圧は、高電圧(V
H)とグランドとの間でスイングする可能性があり、ここで、V
Hは、クロックツリー内のトランジスタのしきい値電圧よりも高い可能性がある。たとえば、V
Hは、しきい値電圧を超える数百ミリボルトであり得、高電圧クロック信号110が使用されるポータブルデバイスに給電するために使用されるバッテリの電圧であり得る。
【0016】
[0034]
図1Bは、対応するクロック源120およびクロックツリー125の一例を示す。クロック源120は、クロックツリー125を介してデバイスに分配される高電圧クロック信号110を生成する。クロックツリー125は、バッファ内のトランジスタのしきい値電圧を超える可能性があるV
Hによって給電されるバッファを含むことができる。V
Hがクロックツリー125内のトランジスタのしきい値電圧を超えるとき、これらのトランジスタは、強反転領域で動作し、したがって、サブスレッショルド領域で動作するトランジスタよりもはるかに高速である。結果として、高電圧クロック信号110の伝搬遅延は、以下にさらに考察されているように、データ信号の伝搬遅延よりもはるかに短い。
【0017】
[0035]
図1Bは、また、データ源130およびデータ経路135の一例を示す。データ源130は、データ信号を立ち上げる。データ信号の電圧は、低電圧(V
L)とグランドとの間でスイングする可能性があり、ここで、V
Lは、ほぼデータ経路135内のトランジスタのしきい値電圧、またはそれ未満である。たとえば、V
Lは、約300mVであり得る。
図1Aは、V
Hに対するV
Lの一例を示す。データ経路135は、複数のバッファ、計算ロジック、および/またはV
Lによって給電される他のタイプの論理デバイスを含むことができる。これは、データ経路135内のトランジスタを、サブスレッショルド領域で動作させ、したがって、強反転領域で動作することができるクロックツリー125内のトランジスタよりもはるかに遅くさせる。結果として、高電圧クロック信号の伝搬遅延は、データ信号の伝搬遅延よりもはるかに短い。
【0018】
[0036]データ経路135内のトランジスタは、サブスレッショルド領域で動作するので、データ信号の伝搬遅延は、トランジスタのしきい値電圧および/または他の要因に依存して広い範囲にわたって変化する可能性がある。しかしながら、高電圧クロック信号の伝搬遅延は、この範囲内の最も短い伝搬遅延よりもはるかに短い。したがって、高電圧クロック信号およびデータ信号がフロップ150(その一例が
図1Bに示されている)に入力されたとき、高電圧クロック信号は、少なくともホールド時間だけデータ信号の前にフロップ150に伝播することが実質的に保証される。したがって、高電圧クロック信号は、ホールド違反を防止する。
【0019】
[0037]
図2Aは、別の実施形態による高電圧クロック信号210の電圧−時間の図を示す。高電圧クロック信号210の電圧は、V
HとV
Lとの間でスイングする可能性がある。以下にさらに考察されているように、これは、クロックツリーからの電荷が、サブスレッショルド領域で動作するロジックに給電するために使用される低電力電源内にダンプされることを可能にする。電圧差V
H−V
Lは、クロックツリー内のトランジスタのしきい値電圧以上であり得る。
図2Aは、また、V
Lとグランドとの間で電圧スイングを有するデータ信号212の一例を示し、ここで、V
Lが論理1に対応することができることと、グランドが論理ゼロに対応することができることとの間である。
図2Aに示されているデータエッジおよびクロックエッジの相対的な位置は、単なる例示であり、(たとえば、相対的な伝搬遅延に応じて)変化してもよいことが理解されるべきである。
【0020】
[0038]
図2Bは、対応するクロック源220およびクロックツリー225の一例を示す。クロック源220は、クロックツリー225を介してデバイスに分配される高電圧クロック信号210を生成する。クロックツリー125は、
図2Bに示されているように、V
HとV
Lとの間で給電されるバッファを含むことができる。電圧差V
H−V
Lは、クロックツリー225内のトランジスタのしきい値電圧であるか、それを超えるので、これらのトランジスタは、サブスレッショルド領域で動作するトランジスタよりもはるかに速い。結果として、高電圧クロック信号210の伝搬遅延は、データ経路135でのデータ信号の伝搬遅延よりもはるかに短く、それによって、ホールド違反を防止する。
【0021】
[0039]高電圧クロック信号110/210のクロック周波数は、また、セットアップ違反を防止するために調整され得る。セットアップ違反は、フロップがデータ信号中でクロックするクロックエッジの前にデータ信号がフロップにおいて安定した値に安定するのに十分なほど速くデータ信号がフロップに伝播しないときに生じる可能性がある。これが生じたとき、クロック周波数は、クロックエッジの前に安定するようにデータ信号により多くの時間を提供するために遅くされ得る。クロックエッジの遷移勾配は、V
Hによって決定され、V
Lによって決定されないので、クロックエッジの遷移は、データと比較して非常に迅速である。
【0022】
[0040]V
Lを使用してデータおよび/またはロジックを動作することは、V
Hと比較して電力消費を実質的に低減する。これは、バッテリ駆動の医療デバイス、追跡デバイス、および、デバイスの低電力消費のためバッテリによって給電されるが常にまたは長時間の期間(たとえば、年)の間オンであり得る「常時オン」デバイスのような非常に低電力のデバイスのバッテリ寿命を実質的に延長する。
【0023】
[0041]高電圧クロック信号110/210は、フロップ内の少なくとも1つのCMOS転送ゲートを単一NFETに置き換えることによって、フロップ内のゲート数(トランジスタの数)を低減するために使用され得る。この点について、
図3は、フロップ内のデータ信号の論理値を転送するためにフロップ内で一般的に使用されるCMOS転送ゲート305の一例を示す。CMOS転送ゲートは、並列に結合されたPFET310とNFET320とを備える。PFET310およびNFET320のゲートは、相補的な信号によって駆動される。たとえば、NFET320のゲートは、クロック信号によって駆動され得、PFET310のゲートは、逆のクロック信号によって駆動され得、または、その逆でもよい。PFET310は、ハイの論理値を転送するために使用され、一方、NFET320は、ローの論理値を転送するために使用される。
【0024】
[0042]
図4は、PFETを持たない単一NFET420を備える転送ゲート405の一例を示す。単一NFET420は、NFET420のゲートを駆動するクロック信号のハイ状態がハイの論理値とほぼ同じ電圧に対応するとき、ハイの論理値を転送することができない可能性がある。これは、NFET420のゲートにおける電圧が、転送ゲート420の出力440におけるNFET420のゲート−ソース間電圧(NFET420がオンにされたとき約Vt)だけ低減されるためである。ハイの論理値がVt未満の電圧に対応する場合、出力440における電圧は、ゼロに低減され得る。
【0025】
[0043]本開示の実施形態による高電圧クロック信号110/210は、単一NFET420がハイの論理値を転送することを可能にする。これは、高電圧クロック信号110/210のハイ状態がデータ信号のハイ論理値(V
L)よりも高い電圧(V
H)に対応するためである。結果として、NFET420のゲートにおける電圧(V
H)が出力440におけるNFET420のゲート−ソース間電圧だけ低減されたときでも、出力440における電圧は、依然として約V
Lであり得る。これは、電圧差V
H−V
Lが、NFET420がオンにされたときのNFET420のゲート‐ソース間電圧を吸収するのに十分に大きい(たとえば、少なくともNFET420のしきい値電圧Vtと同じくらい高い)と仮定している。
【0026】
[0044]この点について、
図5および
図6は、本開示の実施形態による高電圧クロック信号110/210を使用するゲート数低減の一例を示す。
図5は、CMOS転送ゲート510と、トライステートインバータ520と、インバータ530とを備えるフリップフロップ505の一例を示す。トライステートインバータ520およびインバータ530は、切り替え可能なラッチであり、CMOS転送ゲート510は、ラッチに論理データ値を転送するために使用される。
【0027】
[0045]
図6は、フリップフロップ605の一例を示し、フリップフロップ605では、CMOS転送ゲート510は、第1の単一NFET転送ゲート610によって置き換えられ、トライステートインバータ520は、第2の単一NFET転送ゲート620およびインバータ630によって置き換えられる。これは、
図5中のフリップフロップ505と比較して少なくとも2つだけフリップフロップ605のゲート数を低減する。バックトゥバックインバータ630および640は、第2の単一NFET転送ゲート620によって切り替えられるラッチを形成する。この例では、データ信号は、上記で考察されているように、電力消費を低減するために、V
Lとグランドとの間で電圧スイングを有することができる。フリップフロップ605内の1つまたは複数のインバータは、電力を節約するためにサブスレッショルド領域で対応するトランジスタを動作させるためにV
Lによって給電され得る。単一NFET転送ゲート610および620は、高電圧クロック信号またはその反転によってクロックされる。上記で考察されているように、高電圧クロック信号は、ゲート数を低減するために単一NFET転送ゲートの使用を可能にする。
【0028】
[0046]スキャンマルチプレクサ内のゲート数も低減され得る。従来のスキャンマルチプレクサは、1つまたは複数のフロップの機能を試験するためのスキャン経路と通常動作のためのデータ経路との間でマルチプレクサを切り替えるためのPFETとNFETとを含む。データは、V
Lで動作するので、マルチプレクサのゲート数は、マルチプレクサ内のPFETおよびNFET対を単一NFETに置き換え、単一NFETがオンまたはオフのいずれに切り替えられるのかに応じて単一NFETのゲートをV
Hまたはグランドのいずれかに結合することによって低減され得る。通常の動作では、単一NFETは、マルチプレクサが通常の動作では常にデータ経路に切り替えられているので、常にオンまたはオフのいずれかに切り替えられる。したがって、単一NFETは、NFETを切り替えることに関連付けられる動的な電力を消費せず、NFETのゲートは、V
Hまたはグランドのいずれかに配線接続され得る。
【0029】
[0047]上記で(たとえば、
図2Aと
図2Bとに関連して)考察されているように、高電圧クロック信号210の電圧は、V
HとV
Lとの間でスイングする可能性がある。したがって、高電圧クロック信号210は、V
Lの電圧に対応するロー状態を有する。いくつかの用途では、V
Lは、転送ゲートを完全にオフにするのに十分なほど低くない可能性があり、結果として、高すぎる可能性がある漏れ電流を生じる。したがって、一実施形態では、高電圧クロック信号210が対応するデバイス(たとえば、フロップ)に入力される前に、電圧変換器が、クロックツリーの端部に配置され得る。
図7は、フロップ150に対応するクロックツリー225の端部における電圧変換器710の一例を示す。変換器710は、高電圧クロック信号210を、より低いロー状態電圧を有する変換された高電圧クロック信号に変換する。
図8Aは、V
HとV
Lとの間で電圧スイングを有する高電圧クロック信号210の一例を示す。
図8Bは、電圧変換器810から出力された変換された高電圧クロック信号810を示す。変換された高電圧クロック信号810は、変換器710内の内部遅延のため、高電圧クロック信号210と比較して僅かに遅延される可能性がある。この例では、変換された高電圧クロック信号810は、V
Hとグランドとの間で電圧スイング(全電圧スイング)を有する。変換された高電圧クロック信号810は、フロップ内のロジックが変換されたクロック信号を使用してクロックされるように、フロップ150に入力される。たとえば、変換されたクロック信号810は、転送ゲートをクロックするために使用され得、転送ゲートでは、変換されたクロック信号810のより低いロー状態電圧は、オフ状態の転送ゲートの漏れ電流を低減する。
【0030】
[0048]
図9は、本開示の一実施形態による電圧変換器910の例示的な実施態様を示す。電圧変換器910は、全電圧スイングを有する変換されたクロック信号を提供するために、
図7に示されている変換器710を実現するために使用され得る。変換器910は、第1のインバータ915と、第2のインバータ920と、第1のPFET925と、第2のPFET930と、第1のNFET935と、第2のNFET940とを備える。第1および第2のインバータ915および920は、直列に接続され、V
HとV
Lとの間で給電される。第1のPFET925および第2のPFET930のソースは、V
Hに結合され、第1のNFET935のドレインは、第1のPFET925のドレインに結合され、第2のNFET940のドレインは、第2のPFET930のドレインに結合され、第1のNFET935および第2のNFET940のソースは、グランドに結合されている。第1のPFET925のゲートは、第2のインバータ920の出力によって駆動され、第2のPFET930のゲートは、第1のインバータ915の出力によって駆動される。第1のNFET935のゲートは、第2のPFET930および第2のNFET940のドレインに交差結合されている。第2のNFET940のゲートは、第1のPFET925および第1のNFET935のドレインに交差結合されている。変換器950の出力は、ノード945から取り出される。
【0031】
[0049]高電圧クロック信号210は、第1のインバータ915に入力され得る。入力クロック信号がハイ状態にあるとき、第1のPFET925のゲートは、V
Hの電圧でハイに駆動され、第2のPFET930のゲートは、V
Lの電圧でローに駆動される。これは、第1のPFET925をオフにさせ、(V
H−V
Lが第2のPFET930をオンにするのに十分であると仮定して)第2のPFET930をオンにさせる。これは、第2のPFET930に、ノード945の電圧を約V
Hにプルアップさせる。
【0032】
[0050]入力クロック信号がロー状態であるとき、第1のPFET925のゲートは、V
Lの電圧でローに駆動され、第2のPFET930のゲートは、V
Hの電圧でハイに駆動される。これは、第1のPFET925をオンにさせ、第2のPFET930をオフにさせる。結果として、第1のPFET925に、第1のPFET925のドレインの電圧を約V
Hにプルアップさせる。この電圧は、第2のNFET940のゲートに結合され、第2のNFET940のゲートは、第2のNFET940をオンにする。これは、第2のNFET940に、ノード945の電圧をほぼグランドにプルダウンさせる。
【0033】
[0051]したがって、変換器910の出力における変換されたクロック信号は、ほぼ全電圧スイング(V
Hとグランドとの間)を有する。変換されたクロック信号を反転するために、追加のインバータが、変換器910の出力に追加され得る。追加のインバータは、V
Hとグランドとの間で給電され得る。
図9に示されている回路は、単なる例示であることと、変換器は、他の回路設計を使用して実現され得ることとが理解されるべきである。
【0034】
[0052]低電圧V
Lは、低ドロップアウト(LDO)レギュレータによって提供され得る。
図10は、増幅器1010とFET1020(たとえば、PFET)とを備えるLDOの一例を示す。基準電圧Vref、およびノード1025における電圧は、増幅器1010に入力される。負帰還を使用して、増幅器1010は、Vrefとノード1025における電圧との間の差を最小化する方向にFET1020のゲートを駆動し、したがって、ノード1025における電圧を約Vrefとなるように調整する。Vrefは、サブスレッショルド領域でロジックを動作するための所望の低電圧V
Lを提供するように(たとえば、バンドギャップ基準を使用して)設定され得る。LDOは、安定したV
Lを提供するのに適切であり得るが、LDOは、非効率的である可能性がある。これは、ロジックの負荷1030への電流が、FET1020を通過しなければならないためである。これは、電力を消費するFET1020の両端間でIRドロップを引き起こし、したがって、エネルギーを浪費する。
【0035】
[0053]したがって、いくつか実施形態では、低電圧V
Lは、スイッチドキャパシタDC−DCコンバータによって提供される。
図11は、本開示の一実施形態によるDC−DCコンバータ1105を示す。コンバータ1105は、第1のスイッチ1110と、第2のスイッチ1120と、第3のスイッチ1125と、第4のスイッチ1130と、キャパシタCとを備える。キャパシタCは、クロックツリーからのキャパシタンスを含むことができる。たとえば、キャパシタCは、クロックツリー内の1つまたは複数のキャパシタを含むことができる。これは、クロックツリー内のクロック信号を伝搬するために使用される電荷がV
Lでロジックを動作するための低電力電源にダンプされることを可能にし、それによって、改善された電力効率を提供する。
【0036】
[0054]
図11では、位相Φ1は、クロック信号のハイ状態に対応することができ、位相Φ2は、クロック信号のロー状態に対応することができる。位相Φ1では、第1および第4のスイッチ1110および1130は、閉じられ、第2および第3のスイッチ1120および1125は、開かれる。結果として、キャパシタCは、V
Hに結合され、キャパシタCの上部端子は、V
Hに充電される。キャパシタCの両端間の電圧は、約V
H−V
Lに充電される。
【0037】
[0055]位相Φ2では、第1および第4のスイッチ1110および1130は、開かれ、第2および第3のスイッチ1120および1125は、閉じられる。結果として、キャパシタCは、低電力電源とグランドとの間に結合される。V
H−V
L>V
Lと仮定すると、これは、キャパシタCからの電荷を低電力電源の蓄積キャパシタC
S内にダンプさせる。電荷は、V
Lで動作するロジックの負荷1140のためのエネルギーを提供する。負荷1140は、V
Lで動作されるデータ経路内のロジック(たとえば、バッファ)の負荷および/またはフロップ内のロジック(たとえば、インバータ)の負荷を含むことができる。
【0038】
[0056]したがって、DC−DCコンバータ1105内のキャパシタCの上部端子における電圧は、ほぼV
HとV
Lとの間で切り替わる。これは、クロックツリー内のキャパシタも高電圧クロック信号210を伝搬するためにV
HとV
Lとの間で切り替わるので、キャパシタCがクロックツリーからのキャパシタを含むことを可能にする。したがって、クロックツリー内でクロックを伝搬するために使用される電荷は、低電力電源に給電するために再利用され得る。クロックツリー内のキャパシタは、クロックツリーの各インバータの出力ノードのキャパシタンスを含むことができ、ここで、クロックツリーの各インバータは、バッファとして使用される。各インバータは、クロック信号を伝搬するために、それぞれの出力ノードを、V
HとV
Lとの間で充電および放電することができる。出力ノードがV
Lに放電されたとき、電荷は、低電力電源にダンプされ得る。
【0039】
[0057]いくつか実施形態では、クロックツリーからのキャパシタンスは、効果的にキャパシタCと並列であり得る。クロックの真の信号に関して、クロックツリー内のPFETドライバは、位相Φ1と位相Φ2とに対してスイッチ1110のように作用することができ、NFETドライバは、スイッチ1120のように作用することができる。クロックの偽の信号に関して、スイッチは、逆位相に対して効果的に作用することができる。クロックツリーのキャパシタンスは、キャパシタCと同じ上部接続を共有することができるが、クロックツリーキャパシタンスの底板は、V
Lと、グランドと、他の信号との間で分配され得る。
【0040】
[0058]上記の例では、クロックツリー内の各インバータは、PFETとNFETとを使用して実現され得(その一例が
図13に示されている)、各インバータは、それぞれのクロックツリーキャパシタンスを充電するためにそれぞれのPFETをオンにし、それぞれのクロックツリーキャパシタンスを放電するためにそれぞれのNFETをオンにする。上記の例で考察されているPFETドライバのいくつかまたはすべては、インバータのPFETに対応することができ、上記の例で考察されているNFETドライバのいくつかまたはすべては、インバータのNFETに対応することができる。したがって、インバータのPFETは、それぞれのキャパシタンスを(たとえば、V
Hに)充電するスイッチとして作用することができ、インバータのNFETは、それぞれのキャパシタンスを(たとえば、V
Lに)放電するスイッチとして作用することができる。
【0041】
[0059]キャパシタCのキャパシタンスは、1クロックサイクルあたりに低電力電源の蓄積キャパシタC
Sに放電される電荷の量が、1クロックサイクルあたりに負荷1140によって消費される電荷の量をほぼ補充するように調整され得る。これを行うために、キャパシタCは、クロックツリーからのキャパシタと並列に結合された可変キャパシタ(図示せず)を含むことができる。可変キャパシタのキャパシタンスは、所望の低電圧を維持するために、1クロックサイクルあたりに低電力電源の蓄積キャパシタC
Sに放電される電荷の量が、1クロックサイクルあたりに負荷1140によって消費される電荷の量をほぼ補充するように調整され得る。クロックツリーのキャパシタンスが低電圧電源のための十分な電荷を提供することができない場合、1つまたは複数の追加のキャパシタが、キャパシタCに追加され得る。
図11に示されているDC−DCコンバータは、単なる例示であり、DC−DCコンバータは、他の構成を使用して実現され得ることが理解されるべきである。
【0042】
[0060]サブスレッショルド電圧でデータ経路/ロジックを動作することは、スレッショルド電圧よりも上で動作することと比較して、大量の電力を節約する。しかしながら、クロッキングは、上記で考察されているように信頼できない。本開示の実施形態は、上記で考察されているタイミングの問題を解決するサブスレッショルドデータ経路/ロジックと共に高電圧クロックを使用する。しかしながら、クロックを高電圧で実行することは、より多くの電力を消費する。高電圧クロックによって消費される追加の電力の一部は、
図11に例示され、上記で考察されているように回収され、データ経路/ロジックにサブスレッショルド電圧を提供するために使用される。結果は、上記で考察されているタイミングの問題のない、非常に電力効率的な解決策である。
【0043】
[0061]電力消費は、低電力電源電圧V
Lを低減することによって低減され得る。しかしながら、V
Lが過度に低減された場合、システムは、適切に機能することを停止する。たとえば、フロップがデータ信号の論理値を適切にラッチするために、データ信号は、データ信号においてクロックするためにフロップによって使用されるクロックエッジの前の時間の期間(セットアップ時間と呼ばれる)中、安定である必要がある。しかしながら、V
Lが低減されるにつれて、データ経路に対応する伝搬遅延は、増加する。これは、V
Lが低減されたとき、データ経路内のロジック(たとえば、バッファ)の速度が遅くなるためである。最終的に、伝搬遅延は、データ信号がセットアップ時間条件を満たすために時間内にフロップにおける安定した値に安定しない点まで増加する。結果として、セットアップ違反が生じ、フロップは、準安定状態に入る可能性がある。したがって、電力消費は、低電力電源電圧V
Lを、適切に機能するためにシステムによって必要とされる最低電圧(最低動作電圧)に低減することによって最小化され得る。
【0044】
[0062]
図12は、低電力電源電圧V
Lを、所与のクロック周波数におけるセットアップ違反を防止するためにシステムによって必要とされる最低電圧の近くに、またはその最低電圧に調整するための、一実施形態による同調回路1205を示す。同調回路1205は、第1の試験ユニット1208−1を備える。試験ユニット1208−1は、通常のフロップ1210と、試験フロップ1220と、XORゲート1250とを備える。通常のフロップ1210は、システム内のデータ信号をラッチし、システム内の計算ロジックにラッチされたデータを出力するために使用されるフロップである。試験フロップ1220(シャドウフロップ)は、以下にさらに考察されているように、セットアップ違反を回避するために通常のフロップ1210によって必要とされる最低V
Lを近似するために使用され得る。試験フロップ1220および通常のフロップ1210は、試験フロップ1220が通常のフロップ1210を真似るように同じ回路を使用して実現され得る。
【0045】
[0063]試験フロップ1220および通常のフロップ1210は、同じデータ経路1235の端部に結合される。結果として、試験フロップ1220および通常のフロップ1210におけるデータ信号のタイミングは、ほぼ同じである。試験フロップ1220および通常のフロップ1210のクロック入力は、クロック経路1225に沿った異なる点に結合され、クロック経路1225上のクロック信号は、試験フロップ1220と比較して通常のフロップ1210に到達する前に遅延要素1227を介して伝播しなければならない。結果として、試験フロップ1220は、通常のフロップ1210によって受信されるよりも以前のクロック信号のバージョンを受信する。より以前のクロック信号のバージョンは、遅延要素1227の時間遅延とほぼ等しい量だけ進んでいる。
【0046】
[0064]通常のフロップ1210の出力は、XORゲート1250の第1の入力に結合され、試験フロップ1220の出力は、XORゲート1250の第2の入力に結合されている。通常のフロップ1210の出力は、また、計算ロジックに結合されている。XORゲート1250は、通常のフロップ1210および試験フロップ1220の出力が一致したとき、論理ゼロを出力する。これは、両方のフロップ1210および1220が適切に動作していることを示すことができる。XORゲート1250は、通常のフロップ1210および試験フロップ1220の出力が一致しないとき、論理ゼロを出力する。これは、以下にさらに考察されているように、セットアップ違反が試験フロップ1220で発生したことを示すことができる。
【0047】
[0065]通常のフロップ1210が適切に動作する最低V
Lを決定するために、XORゲート1250の出力は、V
Lが低減されながら監視され得る。最初は、XORゲート1250の出力は、両方のフロップ1210および1220が適切に動作していることを示す論理ゼロであってもよい。V
Lが低減されるにつれて、データ経路1235の伝搬遅延は、増大する。特定の時点で、セットアップ違反が、試験フロップ1220に生じ始めることになるが、通常のフロップ1210には生じ始めない。これは、試験フロップ1220が、通常のフロップ1210によって使用されるクロック信号のより以前のバージョンを使用してデータ信号をクロックするためである。したがって、試験フロップ1220は、セットアップ違反を経験し始める可能性があるが、通常のフロップ1210は、依然として適切に動作していることができる。しかしながら、これは、通常のフロップ1210も、V
Lがそれ以上低減された場合にセットアップ違反を経験し始めることになることを示す可能性がある。したがって、試験フロップ1220がセットアップ違反を経験し始める電圧は、セットアップ違反を防止するために通常のフロップ1210によって必要とされる最低の低電力電源電圧V
Lの近似として使用され得る。
【0048】
[0066]試験フロップ1220がセットアップ違反を経験し始めたとき、試験フロップ1220および通常のフロップ1210の出力は、一致しなくなり、XORゲート1250は、論理1を出力する。したがって、XORゲート1250が論理1を出力する電圧は、セットアップ違反を防止するために通常のフロップ1210によって必要とされる最低の低電力電源電圧V
Lの近似として使用され得る。
【0049】
[0067]
図12に示されているように、同調回路1205は、複数の試験ユニット1208−1〜1208−Nを含むことができ、各試験ユニットは、システム内の通常のフロップと対にされた試験フロップと、それぞれの試験フロップおよび通常のフロップの出力に結合されたXORゲートとを備える。試験ユニット1208−1〜1208−Nの各々は、試験ユニット1208−1に関して
図12に示されている回路を使用して実現され得る。説明の容易さのために、試験ユニット1208−2および1208−NのXORゲートのみが、
図12に示されている。動作時には、各試験ユニット1208−1〜1208−Nは、それぞれの試験フロップおよび通常のフロップの出力が一致したとき、ゼロを出力することができ、それぞれの試験フロップおよび通常のフロップの出力が一致しないとき、1を出力することができる。
【0050】
[0068]試験ユニット1208−1〜1208−Nは、チップにおけるプロセス−電圧−温度(PVT)変動により異なる伝搬遅延を経験する可能性があるチップの異なる領域を試験するために、チップ上に分散され得る。試験ユニット1208−1および1208−Nは、異なるデータ経路および/または異なる数のクロックバッファを有することができる。
【0051】
[0069]同調回路1205は、さらに、エンコーダ1260と電圧調整器1270とを備えることができる。試験ユニット1208−1〜1208−Nの出力は、エンコーダ1260に結合されている。エンコーダ1260は、論理1を出力する試験ユニット1208−1〜1208−Nの数をカウントし、電圧調整器1270にカウント値を出力するように構成され得る。電圧調整器1270は、最低低電力電源電圧V
Lを決定するためにカウント値を使用することができる。たとえば、電圧調整器1270は、カウント値を監視しながら、V
Lを徐々に低減することができる。電圧調整器1270は、カウント値がしきい値に到達したとき、V
Lを低減することを停止することができる。電圧調整器1270は、次いで、カウント値を監視し続けることができる。カウント値が(特定の時間期間の間に)しきい値を超えて上昇する場合、電圧調整器1270は、カウント値がしきい値に再び低下するまで、V
Lを上昇させることができる。この文脈では、しきい値は、(たとえば、セットアップ違反による)特定の誤り率に対応し、トランジスタのしきい値電圧と混同されるべきではない。
【0052】
[0070]電圧調整器1270は、様々な技術を使用して低電力電源電圧V
Lを調整することができる。たとえば、V
LがLDOレギュレータによって提供されるとき、電圧調整器1270は、LDOに入力される基準電圧Vrefを調整することによってV
Lを調整することができる。V
LがDC−DCコンバータ(たとえば、DC−DCコンバータ1105)によって提供されるとき、電圧調整器1270は、DC−DCコンバータのキャパシタ(たとえば、キャパシタC)のキャパシタンスを調整することによってV
Lを調整することができる。たとえば、電圧調整器1270は、キャパシタンスを低減することによってV
Lを低下させることができ、キャパシタンスを増大させることによってV
Lを上昇させることができる。この例では、DC−DCコンバータのキャパシタは、キャパシタンスを調整するための可変キャパシタを含むことができる。DC−DCコンバータのキャパシタは、また、(たとえば、可変キャパシタと並列に結合された)1つまたは複数の固定キャパシタを備えることができる。
【0053】
[0071]一実施形態では、可変キャパシタは、複数の個々のキャパシタと、可変キャパシタのキャパシタンスを設定するキャパシタバンクの内外に個々のキャパシタを独立に切り替えるための複数のスイッチとを備えることができる。この実施形態では、電圧調整器1270は、所望のキャパシタンスを達成するために、スイッチを使用してキャパシタバンク内に1つまたは複数の個々のキャパシタを切り替えることによって、可変キャパシタのキャパシタンスを調整することができる。それぞれのスイッチによってキャパシタバンク内に切り替えられた個々のキャパシタは、可変キャパシタのキャパシタンスに寄与し、それぞれのスイッチによってキャパシタバンク外に切り替えられた個々のスイッチは、可変キャパシタのキャパシタンスに寄与しない。
【0054】
[0072]低電力電源電圧V
Lを調整するための方法は、ここで、本開示の一実施形態に従って説明されることになる。まず、クロック周波数は、所望の作業負荷を満たすように設定され得る。作業負荷は、対応するシステムの特定の用途に依存し得る。たとえば、医療デバイス内のシステムに関して、作業負荷は、医療デバイス(たとえば、ペースメーカ)が患者の心拍数を監視する頻度に依存し得る。ユーザ入力がユーザインターフェース(たとえば、キーパッドまたはタッチスクリーン)で検出されたとき、コンピューティングデバイスを目覚めさせるように構成されたシステムに関して、作業負荷は、システムがユーザ入力についてユーザインターフェースをチェックする頻度に依存し得る。
【0055】
[0073]クロック周波数が設定された後、低電力電源電圧V
Lは、そのクロック周波数のための最低動作電圧に調整され得る。これは、たとえば、同調回路1205を使用して行われ得る。この例では、電圧調整器1270は、エンコーダ1260からのカウント値を監視しながら、低電力電源電圧V
Lを徐々に低減することができ、カウント値がしきい値に到達したとき、低電力電源電圧V
Lを低減することを停止することができる。
【0056】
[0074]一実施形態では、メモリ(たとえば、SRAMおよび/またはDRAM)は、高電圧クロック信号210の(V
HとV
Lとの間の)電圧差の間で給電され得る。電圧差は、メモリがより高速で動作することを可能にする、メモリ内のトランジスタのしきい値電圧よりも上であってよい。この実施形態では、メモリ内の1つまたは複数のNFETは、漏れ電流を低減するためにバックバイアスされ得る。たとえば、NFETは、NFETのボディをグランドに結ぶことによってバックバイアスされ得る。これは、NFETの漏れ電流を低減するV
Lのソース−ボディ間バイアスを作成する。
【0057】
[0075]低電圧V
Lは、上記で開示されている例ではしきい値電圧未満であるものとして説明されているが、低電圧V
Lは、また、ほぼしきい値電圧であってもよく、その場合には、トランジスタは、サブスレッショルド領域付近で動作することが理解されるべきである。これは、サブスレッショルド領域でトランジスタを動作することによって達成され得るほど大きくはないが、電力の節約を依然として提供することができる。本明細書で使用される場合、トランジスタのしきい値電圧は、トランジスタが強反転領域に入るゲート電圧を指すことができる。
【0058】
[0076]
図13は、クロック経路および/またはデータ経路内のバッファとして使用され得る例示的な相補的な対のインバータ1300を示す。相補的な対のインバータ1300は、PFET1310とNFET1320とを備える。PFET1310のソースは、電源たとえば、V
HまたはV
Lに結合され、NFET1320のソースは、グランドまたはV
Lに結合され、PFET1310およびNFET1320のドレインは、インバータ1300の出力に結合され、PFET1310およびNFET1320のゲートは、インバータ1300の入力に結合されている。
【0059】
[0077]インバータ1300がクロックツリーインバータのために使用されるとき、PFET1310のソースは、V
Hに結合され得、NFET1320のソースは、低電力電源に結合され得る。インバータ1300がハイに駆動されたとき、PFET1310は、オンになり、それぞれのキャパシタンスをV
Hに充電し、インバータがローに駆動されたとき、NFET1320は、オンになり、それぞれのキャパシタンスを低電力電源に放電し、それによって、電荷を低電力電源にダンプする。この例では、PFET1310は、スイッチ1110として作用することができ、NFET1320は、スイッチ1120として作用することができる。
【0060】
[0078]
図14は、バッファとして使用され得る別の例示的なインバータ1400を示す。インバータ1400は、
図13中の相補的な対のインバータ1300と同様であり、さらに、PFET1310のドレインとインバータの出力との間に結合された共通ゲートPFET1410と、インバータの出力とNFET1320のドレインとの間に結合された共通ゲートNFET1420とを含む。共通ゲートPFET1410のゲートは、直流電圧V
b1によってバイアスされ、共通ゲートNFET1420のゲートは、直流電圧V
b2によってバイアスされる。
【0061】
[0079]
図15は、本開示の一実施形態による低電力動作のための方法1500を示すフローチャートである。
【0062】
[0080]ステップ1510では、クロック信号は、複数のトランジスタを備えるクロック経路を介してフロップに送信され、ここで、クロック信号は、クロック経路内のトランジスタのしきい値電圧を超える高電圧に対応するハイ状態を有する。たとえば、クロック信号(たとえば、クロック信号110/210)は、クロック源(たとえば、クロック源120/220)によって生成され得る。クロック経路(たとえば、クロック経路125/225)は、トランジスタ(たとえば、トランジスタ1310および1320)を備えるバッファ(たとえば、インバータ)を含むことができ、ここで、クロック信号のハイ状態は、クロック経路内のトランジスタのしきい値電圧を超える高電圧(たとえば、V
H)に対応する。
【0063】
[0081]ステップ1520では、データ信号は、複数のトランジスタを備えるデータ経路を介してフロップに送信され、ここで、データ信号は、データ経路内のトランジスタのしきい値電圧未満の低電圧に対応するハイ状態を有する。たとえば、データ信号(たとえば、信号212)は、データ源(たとえば、データ源130)によって生成され得る。データ経路(たとえば、データ経路135)は、トランジスタ(たとえば、トランジスタ1310および1320)を備えるバッファ(たとえば、インバータ)を含むことができ、ここで、データ信号のハイ状態は、データ経路内のトランジスタのしきい値電圧未満の低電圧(たとえば、V
L)に対応する。これは、データ経路内のトランジスタが、電力消費を低減するためにサブスレッショルド領域で動作することを可能にする。ステップ1520における複数のトランジスタは、必ずしもデータ経路内のトランジスタのすべてではないことが理解されるべきである。
【0064】
[0082]ステップ1530では、データ信号は、クロック信号を使用してフロップでラッチされる。たとえば、フロップ(たとえば、フロップ150)は、クロック信号の立ち上がりおよび/または立ち下がりエッジでデータ信号からのデータ値をラッチすることができる。
【0065】
[0083]
図16は、本開示の一実施形態による電圧を調整するための方法1600を示すフローチャートである。
【0066】
[0084]ステップ1610では、データ信号は、データ経路を介して第1および第2のフロップに送信される。たとえば、データ信号(たとえば、データ信号212)は、調整されている電圧によって給電されるバッファ(たとえば、インバータ)を備えるデータ経路(たとえば、データ経路1235)を介して送信され得る。
【0067】
[0085]ステップ1620では、データ信号は、クロック信号を使用して第1のフロップでラッチされる。ステップ1630では、データ信号はクロック信号の遅延されたバージョンを使用して第2のフロップでラッチされる。たとえば、第2のフロップ(たとえば、フロップ1210)でのクロック信号は、遅延要素(たとえば、遅延要素1227)によって、第1のフロップ(たとえば、フロップ1220)でのクロック信号に対して遅延され得る。同等に、第1のフロップ(たとえば、1220)でのクロック信号は、第2のフロップ(たとえば、1210)でのクロック信号の以前のバージョンであると言われ得る。
【0068】
[0086]ステップ1640では、第1および第2のフロップの出力間の不一致が検出される。たとえば、第1および第2のフロップ(たとえば、フロップ1210および1220)の出力間の不一致は、第1および第2のフロップの出力をXORゲート(たとえば、XORゲート1250)に結合することによって検出され得る。XORゲートは、出力が一致したとき、論理ゼロを出力し、出力が一致しないとき、論理1を出力する。したがって、この例では、論理1がXORゲートから出力されたとき、不一致が検出される。
【0069】
[0087]ステップ1650では、電圧は、検出された不一致に基づいて調整される。一実施形態では、チップは、第1および第2のフロップを含む複数のフロップ対を備え、ここで、ステップ1610〜1640は、フロップ対の各々で実行され得る。この実施形態では、フロップ対の中で検出された不一致の数は、カウント値を生成するためにカウントされ得、電圧は、カウント値に基づいて調整され得る。たとえば、電圧は、カウント値がしきい値未満である場合、低減され得る。
【0070】
[0088]本開示の先の説明は、当業者が本開示を作成または使用することを可能にするために提供される。本開示に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義されている一般的な原理は、本開示の要旨または範囲から逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明されている例に限定されることを意図されておらず、本明細書で開示されている原理と新規な特徴と一致する最も広い範囲を与えられるべきである。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
クロック信号を伝搬するためのクロック経路と、ここにおいて、前記クロック経路は、複数のトランジスタを含む、
前記クロック信号を生成するように構成されたクロック源と、ここにおいて、前記クロック信号は、前記クロック経路内の前記トランジスタのしきい値電圧を超える高電圧に対応するハイ状態を有する、
データ信号を伝搬するためのデータ経路と、ここにおいて、前記データ経路は、複数のトランジスタを含む、
前記データ信号を生成するように構成されたデータ源と、ここにおいて、前記データ信号は、前記データ経路内の前記トランジスタのしきい値電圧未満の低電圧に対応するハイ状態を有する、
前記クロック経路から前記クロック信号を受信し、前記データ経路から前記データ信号を受信し、前記クロック信号を使用して前記データ信号をラッチするように構成されたフロップと
を備える、低電力デバイス。
[C2]
前記クロック信号が、ほぼ前記高電圧と前記低電圧との間で電圧スイングを有する、C1に記載の低電力デバイス。
[C3]
前記クロック経路と前記フロップとの間に結合され、変換されたクロック信号を生成するために、前記クロック経路からの前記クロック信号の前記電圧スイングを変換するように構成された変換器をさらに備え、前記フロップが、前記変換されたクロック信号を使用して前記データ信号をラッチする、C2に記載の低電力デバイス。
[C4]
前記変換器が、前記クロック信号の前記電圧スイングを大きくするように構成されている、C3に記載の低電力デバイス。
[C5]
前記フロップが、前記低電圧によって給電される複数のトランジスタを備える、C1に記載の低電力デバイス。
[C6]
低電力電源で前記高電圧を前記低電圧に変換するためのスイッチドキャパシタDC−DCコンバータをさらに備え、前記低電力電源が、前記データ経路内の前記トランジスタに給電するために使用される、C1に記載の低電力デバイス。
[C7]
前記スイッチドキャパシタDC−DCコンバータが、
キャパシタと、
交互に、前記キャパシタを充電し、前記キャパシタを前記低電力電源に放電するように構成された複数のスイッチと
を備える、C6に記載の低電力デバイス。
[C8]
前記キャパシタが、前記クロック経路からのキャパシタンスを含む、C7に記載の低電力デバイス。
[C9]
前記複数のスイッチが、ほぼ前記高電圧の電圧を有する高電力電源に前記キャパシタの端子を結合することによって、前記キャパシタを充電するように構成されている、C7に記載の低電力デバイス。
[C10]
前記複数のスイッチが、前記低電力電源に前記キャパシタの前記端子を結合することによって、前記キャパシタを放電するように構成されている、C9に記載の低電力デバイス。
[C11]
複数のトランジスタを備えるクロック経路を介してフロップにクロック信号を送信することと、ここにおいて、前記クロック信号は、前記クロック経路内の前記トランジスタのしきい値電圧を超える高電圧に対応するハイ状態を有する、
複数のトランジスタを備えるデータ経路を介して前記フロップにデータ信号を送信することと、ここにおいて、前記データ信号は、前記データ経路内の前記トランジスタのしきい値電圧未満の低電圧に対応するハイ状態を有する、
前記クロック信号を使用して前記フロップで前記データ信号をラッチすることと
を備える、低電力動作のための方法。
[C12]
前記クロック信号が、ほぼ前記高電圧と前記低電圧との間で電圧スイングを有する、C11に記載の方法。
[C13]
変換されたクロック信号を生成するために、前記クロック信号の前記電圧スイングを変換することをさらに備え、前記データ信号が、前記変換されたクロック信号を使用して前記フロップでラッチされる、C12に記載の方法。
[C14]
前記クロック信号の前記電圧スイングを変換することが、前記クロック信号の前記電圧スイングを大きくすることを備える、C13に記載の方法。
[C15]
前記低電圧で前記フロップ内の複数のトランジスタに給電することをさらに備える、C11に記載の方法。
[C16]
低電力電源で前記高電圧を前記低電圧に変換することと、
前記低電力電源を使用して前記データ経路内の前記複数のトランジスタに給電することと
をさらに備える、C11に記載の方法。
[C17]
前記高電圧を前記低電圧に変換することが、交互に、キャパシタを充電し、前記キャパシタを前記低電力電源に放電することを備える、C16に記載の方法。
[C18]
前記キャパシタが、前記クロック経路からのキャパシタンスを含む、C17に記載の方法。
[C19]
前記キャパシタを充電することが、ほぼ前記高電圧の電圧を有する高電力電源に前記キャパシタの端子を結合することを備える、C17に記載の方法。
[C20]
前記キャパシタを放電することが、前記低電力電源に前記キャパシタの端子を結合することを備える、C19に記載の方法。
[C21]
データ信号を伝搬するためのデータ経路と、
前記データ経路から前記データ信号を受信し、クロック信号を受信し、前記クロック信号を使用して前記データ信号をラッチするように構成された第1のフロップと、
前記データ経路から前記データ信号を受信し、前記クロック信号の遅延されたバージョンを受信し、前記クロック信号の前記遅延されたバージョンを使用して前記データ信号をラッチするように構成された第2のフロップと、
前記第1および第2のフロップの出力間の不一致を検出するように構成された回路と、
前記検出された不一致に基づいて前記電圧を調整するように構成された電圧調整器と
を備える、電圧を調整するためのデバイス。
[C22]
前記データ経路が、複数のトランジスタを備え、前記電圧が、前記データ経路内の前記トランジスタに給電するために使用される、C21に記載のデバイス。
[C23]
前記電圧が、前記データ経路内の前記トランジスタのしきい値電圧未満である、C22に記載のデバイス。
[C24]
前記回路が、前記第1および第2のフロップを含む複数のフロップ対に関する検出された不一致を受信し、カウント値を生成するために前記受信された不一致の数をカウントするように構成されており、前記電圧調整器が、前記カウント値に基づいて前記電圧を調整するように構成されている、C21に記載のデバイス。
[C25]
前記電圧調整器が、前記カウント値がしきい値未満である場合、前記電圧を低減するように構成されている、C24に記載のデバイス。
[C26]
データ経路を介して第1および第2のフロップにデータ信号を送信することと、
クロック信号を使用して前記第1のフロップで前記データ信号をラッチすることと、
前記クロック信号の遅延されたバージョンを使用して前記第2のフロップで前記データ信号をラッチすることと、
前記第1および第2のフロップの出力間の不一致を検出することと、
前記検出された不一致に基づいて前記電圧を調整することと
を備える、電圧を調整するための方法。
[C27]
前記データ経路が、複数のトランジスタを備え、前記電圧で前記データ経路内の前記トランジスタに給電することをさらに備える、C26に記載の方法。
[C28]
前記電圧が、前記データ経路内の前記トランジスタのしきい値電圧未満である、C27に記載の方法。
[C29]
前記第1および第2のフロップを含む複数のフロップ対に関する不一致を受信することと、
カウント値を生成するために前記受信された不一致の数をカウントすることと
をさらに備え、前記電圧を調整することが、前記カウント値に基づいて前記電圧を調整することを備える、C26に記載の方法。
[C30]
前記電圧を調整することが、前記カウント値がしきい値未満である場合、前記電圧を低減することを備える、C29に記載の方法。