説明

デジタル信号のデューティ・サイクルを補正するための方法および装置

【課題】デューティ・サイクル測定(DCM)回路に供給する基準クロックのデューティ・サイクルの測定、補正方法および装置の提供。
【解決手段】クロック回路は、既知のデューティ・サイクル値で基準クロックのデューティ・サイクルを変動させる。DCM回路は、変動されたデューティ・サイクル対応のチャージポンプ→コンデンサに蓄積される電圧値を得て、データ・ストアに格納する。DCM回路は、未知のデューティ・サイクル値のテスト・クロックから上記と同様の方法で電圧値を得る。制御ソフトウェアはデータ・ストアにアクセスして、テスト・クロック対応のデューティ・サイクルを決定する。装置は、テスト・クロック対応のデューティ・サイクルが所定のデューティ・サイクルとは異なる場合に、誤差を低減するためにテスト・クロック信号のデューティ・サイクルを変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書の開示は、概して、デジタル・システムに関し、より詳細には、こうしたシステムによって使用される信号のデューティ・サイクルを測定する方法および装置に関する。
【背景技術】
【0002】
デューティ・サイクルとは、クロック信号などのデジタル信号が、全信号サイクルまたは全信号周期の中で高い状態を示す時間の割合を表す。比較的遅いクロック速度を使用する旧式のデジタル・システムでは、一般に、基準クロック信号のデューティ・サイクルはシステムの性能にとってそれほど重要ではない。しかしながら、クロック速度が上がるにつれて、クロック信号のデューティ・サイクルがデジタル・システムの性能にとって非常に重要なものとなる可能性がある。
【0003】
高速クロック信号が高性能プロセッサを刻時する場合、そのクロック信号のデューティ・サイクルはプロセッサの性能において重要な役割を果たす。たとえば、プロセッサは、クロック信号パルスの立ち上がりおよび立ち下がりの両方で、システム・メモリにアクセスすることができる。その場合、メモリ・アクセス速度は、クロック信号パルスの持続時間との直接の関係を示す。したがって、クロック・パルスのデューティ・サイクルは、メモリ・アクセス速度に直接の影響を与える。
【0004】
プロセッサ・システムの設計者は、通常、プロセッサおよびメモリ・システムを刻時する基準クロック信号に対して、50%のデューティ・サイクルを好む。しかしながら、システム性能を最大にするためのクロック信号の最適なデューティ・サイクルは、特定の半導体構成要素によって変動する。最適なデューティ・サイクルにおけるこうした変動の原因には、半導体のプロセス変動、ならびに、半導体モデルと結果として製造された半導体ハードウェアとの間の相関関係における変動が含まれる。
【0005】
特定の用途においてクロック信号のデューティ・サイクルを最適化するためには、第1に、その信号のデューティ・サイクルを測定できることが重要である。残念ながら、プロセッサまたは他のデジタル集積回路(IC)において高速クロック信号のデューティ・サイクルを測定することには多くの問題がある。たとえば、外部のデューティ・サイクル測定回路がICのクロック・ピンに結合されている場合、測定回路内の論理が元のクロック信号のデューティ・サイクルを低下させる。言い換えれば、測定回路の外部論理が元のクロック信号のデューティ・サイクルを変更し、デューティ・サイクルの測定を本質的に不正確にしてしまう。
【0006】
デジタルICのクロック信号を測定するための他の手法は、クロック・パルスの立ち上がりおよび立ち下がりで放出される光の光子を検出してデューティ・サイクルを決定するピコ秒イメージ化回路分析(PICA/picosecond imaging circuit analysis)である。この種のデューティ・サイクル分析は実際に機能しているが、非常に高価である。さらにこの種の分析では、被試験構成要素を破壊してしまう。
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記の問題に対処するデューティ・サイクル測定方法および装置が求められている。
【課題を解決するための手段】
【0008】
したがって、一実施形態では、デジタル信号のデューティ・サイクルを補正(correct)するための方法が開示される。この方法は、複数の電圧値および対応するデューティ・サイクル値をデータ・ストア内に格納するために、デューティ・サイクル測定(DCM)回路による校正モードで動作するステップを含み、各電圧値はそれぞれのデューティ・サイクル値に依存する。またこの方法は、未知のデューティ・サイクルを示すテスト・クロック信号のデューティ・サイクルを決定するために、デューティ・サイクル測定(DCM)回路によるテスト・モードで動作するステップを含む。テスト・モードで動作するステップは、DCM回路内のチャージャ回路によって、未知のデューティ・サイクルを示すテスト・クロック信号を受信するステップを含む。また、テスト・モードで動作するステップは、チャージャ回路によって、テスト・クロック信号のデューティ・サイクルに依存するテスト電圧値まで、DCM回路内のコンデンサをチャージするステップを含む。さらに、テスト・モードで動作するステップは、制御機構によって、テスト電圧値に対応するデューティ・サイクルを決定するためにデータ・ストアにアクセスし、テスト・クロック信号の測定デューティ・サイクル値を定義するステップを含む。この方法は、また、テスト・クロック信号のデューティ・サイクルを測定デューティ・サイクル値から所定のデューティ・サイクル値へと変更するために、テスト・クロック信号を生成するプログラム可能なデューティ・サイクル・クロック回路によって、補正モードで動作するステップを含む。
【0009】
他の実施形態では、デジタル信号のデューティ・サイクルを決定および補正するデューティ・サイクル補正システムが開示される。このシステムは、データ・ストアと、データ・ストアに結合されたデューティ・サイクル測定(DCM)回路とを含む。DCM回路は、複数の電圧値および対応するデューティ・サイクル値をデータ・ストアに格納するために校正モードで動作し、各電圧値はそれぞれのデューティ・サイクル値に依存する。システムは、また、DCM回路に結合された制御機構を含む。制御機構は、校正モードのDCM回路を制御するように、およびシステムが未知のデューティ・サイクルを示すテスト・クロック信号のデューティ・サイクルを決定するテスト・モードのDCM回路を制御するように構成される。DCM回路は、テスト・クロック信号を受信するためにテスト・モードで動作するチャージャ回路を含む。チャージャ回路は、テスト・クロック信号のデューティ・サイクルに依存するテスト電圧値まで、DCM回路内のコンデンサをチャージする。制御機構は、テスト電圧値に対応するデューティ・サイクルを決定するためにデータ・ストアにアクセスし、その後、テスト・クロック信号の測定デューティ・サイクル値を定義するために、テスト・モードで動作する。システムは、また、DCM回路に結合されたプログラム可能なデューティ・サイクル・クロック回路を含む。プログラム可能なデューティ・サイクル・クロック回路はテスト・クロック信号を生成し、テスト・クロック信号のデューティ・サイクルを測定デューティ・サイクル値から所定のデューティ・サイクル値へと変更するために、補正モードで動作する。
【0010】
本発明の概念は他の等しく効果的な実施形態に役立つものであるため、添付の図面は本発明の単なる例示的な実施形態を示すものであり、その範囲を限定するものではない。
【発明を実施するための最良の形態】
【0011】
図1は、テスト入力100Aに見られる、たとえば2進クロック信号CLK_TESTなどのデジタル信号のデューティ・サイクルを測定するデューティ・サイクル測定(DCM)回路100を示す図である。DCM回路100は、既知のデューティ・サイクルを示す校正クロック信号CLK_CALIBを受信する校正入力100Bも含む。さらにDCM回路100は、デューティ・サイクル情報を含む出力電圧VC_OUTを提供する出力100Cも含む。VC_OUTの値は、テスト入力100Aでのクロック信号CLK_TESTのデューティ・サイクルと共に変動する。言い換えれば、入力100Aでのクロック信号CLK_TESTのデューティ・サイクルが変動するのに対応して、出力100Cでの出力電圧VC_OUTの値が変動する。一実施形態では、出力電圧VC_OUTは、入力CLK_TEST信号のデューティ・サイクルとは逆に、または間接的に、変動する。言い換えれば、入力CLK_TEST信号のクロック・デューティ・サイクルが増加するにつれて、対応するVC_OUTは減少する。たとえば、クロック・デューティ・サイクルが増加するにつれて対応するVC_OUTも増加するような、直接変動を使用する他の実施形態が可能である。一実施形態では、VC_OUTとクロック信号のデューティ・サイクルとの間の関係は線形である。
【0012】
図2に示された一実施形態では、集積回路(IC)205は、他の機能ブロックと共に基板またはチップ上にデューティ・サイクル測定回路100を含む。言い換えれば、この配置構成は、IC 205が共通のチップまたは基板上にDCM回路100および他の機能ブロックを含む、「オンチップ」構成である。DCM回路100を「オンチップ」で提供することにより、この配置構成は、外部または「オフチップ」DCM技法が体験するデューティ・サイクルの低下という問題を改善する。集積回路205は、プロセッサ、マイクロプロセッサ、マイクロコントローラ、およびデューティ・サイクル測定が望ましい事実上すべてのデジタル論理回路などの、いくつかの異なる構成を示すことができる。図2に示された特定の実施形態では、IC 205は情報処理システム(IHS)200で機能するプロセッサである。情報処理システム(IHS)200については、以下でより詳細に論じる。
【0013】
図1に戻ると、DCM回路100は、チャージ・ポンプ回路102、クロック選択回路104、チャージ・ポンプ時間ウィンドウ制御回路106、IUP/IDN制御回路108、VC初期化制御回路110、および出力バッファ112を含み、それらはすべて図に示されるように互いに結合される。DCM回路100は、以下でより詳細に説明するように、初期には校正モードで動作し、次に、校正が終了するとテスト・モードで動作する。チャージ・ポンプ回路102は、電圧源VDDと接地との間で結合された直列結合要素、すなわち、IUP電流源114、PFET 116、NFET 118、およびIDN電流源120を含む。PFET 116のドレインはNFET 118のドレインに結合され、ノード122を形成する。コンデンサ124は、ノード122を接地に結合させる。IUP電流源114およびIDN電流源120は、コンデンサ124内のチャージ量を制御するため、結果として、ノード122によって示される電圧VCを制御する。
【0014】
次に、DCM回路100における校正モードおよびテスト・モードの動作の概要を示し、その後、より詳細に論じる。一実施形態では、校正モードの間に、DCM回路100は、ノード122の電圧VCをVDD/2、すなわちレール電圧VDDの半分に等しい所定の電圧に設定する。DCM回路100は、IUP電流源114がコンデンサ124へと供給する電流が、IDN電流源120がコンデンサ124からシンクまたは排出させる電流と同じになるように、IUP電流源114およびIDN電流源を均衡のとれた様式で動作するように校正する。したがって、コンデンサ124を横切る電圧VCは、所定の電圧VDD/2で一定に保たれる。
【0015】
校正モードの間、DCM回路100は、たとえば60%の既知のデューティ・サイクルを示す外部クロック信号、CLK_CALIBを、チャージ・ポンプ回路102に印加する。60%デューティ・サイクル・クロック信号では、クロック・パルスはクロック期間の60%で高く、クロック期間の残りの40%では低い。このように60%デューティ・サイクル信号をチャージ・ポンプ回路102に提供すると、IUP電流源114の電流供給アクションとIDN電流源120の電流シンク・アクションとの間の以前から存在する均衡が乱される。言い換えれば、この特定の実施形態では、60%デューティ・サイクル信号をチャージ・ポンプ回路102に提供することにより、所定の安定したVDD/2よりも電圧VCが低くなる。同様に、40%デューティ・サイクル信号などのより低いデューティ・サイクル信号をチャージ・ポンプ回路102に提供することにより、所定の安定したVDD/2値よりも電圧VCが高くなる。
【0016】
図2の情報処理システム(IHS)200は、一実施形態でテスト装置として動作する場合、異なる既知のデューティ・サイクルを備えた複数のクロック信号CLK_CALIBをIC 205およびその中のDCM回路100に提供する。異なる各デューティ・サイクル・クロック信号は、ノード122で異なるそれぞれの電圧VCを発生させる。IHS 200は、メモリまたはデータ・ストア215内に配置されたルックアップ・テーブル210に、異なるクロック校正信号それぞれについて、デューティ・サイクル、周波数、および対応する電圧VCを記録する。ルックアップ・テーブル210がデューティ・サイクル・データで満たされると、校正モードは完了する。次に、IHS 200はテスト・モードに切り替え、DCM回路100にテスト信号CLK_TESTを供給する。IHS 200は、出力100CでVC_OUT電圧を読み取ることによって、ノード122で結果として生じるVC値を読み取る。次に、IHS 200はルックアップ・テーブル210にアクセスし、どのデューティ・サイクル値が現在のVC_OUT電圧値に最も近いかを判定する。VC_OUT電圧値がルックアップ・テーブル210の2つのVC_OUT電圧データ・ポイント間にある場合、IHS 200は、そのVC_OUT電圧値に対応する実際のデューティ・サイクルを決定するために、これら2つのデータ・ポイントから外挿または内挿する。DCM 100の校正モードおよびテスト・モードについて、以下でより詳細に考察する。
【0017】
この特定の実施形態では、校正モードに入ると、VC初期化制御回路110はノード122の電圧VCを所定の電圧、すなわちVDD/2に初期設定する。VC初期化制御回路110は、出力バッファ112に結合する。出力バッファ112は、コンデンサ124のVC電圧を出力電圧VC_OUTとして出力100Cに効果的に転送する。一実施形態では、バッファ112は図1に示されるように構成された差動増幅器126を含む。このように、VC_OUTにおける変動はコンデンサ電圧VCにおける変動に対応する。
【0018】
より詳細に言えば、VC初期化制御回路110はコンパレータ128を含み、その非反転入力はバッファ112内の差動増幅器126の非反転入力に結合する。コンパレータ128の反転入力は、供給またはレール電圧の1/2、すなわちVDD/2に等しい電圧を提供する電圧源(図示せず)に結合する。コンパレータ128の出力は、ORゲート130の1つの入力に結合し、その出力はPFET 132に結合する。PFET 132は、ノード122でコンデンサ124をチャージするために電流源134から電流が流れるか否かを制御する。ORゲート130の残りの入力は、校正モード開始時の初期に論理低またはゼロを示す、初期化制御バー信号INIT_CTL_Bを受信する。PFET 132および電流源134の直列結合組合せは、図に示されるように、電圧レールVDDとコンデンサ124との間を結合する。このように、ORゲート130の出力での信号は、電流I INITがノード122で電流源134からコンデンサ124へと流れ込めるようにPFET 132をオンにするか、またはこうした電流の流れを阻止するようにオフにするかを制御する。
【0019】
校正プロセスは、DCM回路100が最初に供給レール電圧、すなわちVDDを受け取ることで開始される。INIT_CTL_B信号は、DCM回路100が電力を受け取った後に、初期設定プロセスの始まりを制御する。INIT_CTL_B信号は、高から低へと遷移して、DCM回路100の初期設定を開始する。コンパレータ128は、初期設定実行済み信号INIT_DONEを生成し、この信号は初期にはその初期設定がまだ完了していないことを示すように低である。その後INIT_DONE信号が高になると、この信号は所定の値VDD/2での電圧VCの初期設定が完了したことを示す。
【0020】
初期には、ノード122の電圧VCはゼロである。コンパレータ128は、その非反転入力でのゼロ電圧がその反転入力でのVDD/2電圧よりも低いことを判定する。その結果、コンパレータ128は、ORゲート130の1つの入力が受け取る論理ゼロを出力する。これに応答して、ORゲート130は、INIT_CTL_B信号の低状態により、他方のORゲート入力がすでに低であるため、論理低出力を生成する。ORゲート130の出力が低くなるのに応答してPFET 132はオンになり、電流源134をコンデンサ124に接続する。電流源134からの電流I INITは、コンデンサ124を電圧VDD/2までチャージする。その後コンパレータ128は、VC電圧がVDD/2と等しくなったことを検出し、コンパレータ128の出力が低くなる。ここで初期設定実行済み信号INIT_DONEは、初期設定が完了したことを示すために高に遷移し、コンデンサ124のVC電圧はVDD/2で初期設定された状態、すなわち供給レール電圧VDDの1/2のままである。
【0021】
VC初期化制御回路110がコンデンサ124のVC電圧をVDD/2に初期設定できるようにするために、DCM回路100は、回路110がこの初期設定を実行する間、チャージ・ポンプ回路102を効果的にオフにする。この結果を達成するために、VC初期化回路110のコンパレータ128の出力は、IUP/IDN制御回路108内のANDゲート136の1つの入力に結合する。IUP/IDN制御回路108は、IUP電流源114が、コンデンサ124をチャージするためにノード122に電荷を流せるようにすることができる。IUP/IDN制御回路108は、IDN電流源120がコンデンサ124をディスチャージできるようにすることもできる。IUP/IDN制御回路108は、前述の初期設定プロセス中などに、IUP電流源114およびIDN電流源120の両方をディスエーブルにすることもできる。
【0022】
校正モード時には、IUP/IDN制御回路108は初期にチャージ・ポンプ回路102をオフにして、VC初期化制御回路110がノード122で電圧VCをVDD/2までチャージアップできるようにする。この特定の実施形態では、IUP電流源114はアクティブ・ローのデバイスである。したがって、そのイネーブル入力のIUP_CTL制御信号が高の場合、IUP電流源114はオフになり、IUP_CTL制御信号が低の場合はオンになる。これとは対照的に、IDN電流源120は、この実施形態ではアクティブ・ハイのデバイスである。したがって、そのイネーブル入力のIDN_CTL制御信号が低の場合、IDN電流源120はオフになり、IDN_CTL制御信号が高の場合はオンになる。当業者であれば、前述の論理を反転させ、依然として同じ結果を達成することが可能である。前述のように、校正モード時には、コンパレータ128は初期に論理低またはゼロ出力を示す。ANDゲート136の1つの入力がこの論理ゼロを受け取り、ANDゲート136はこれに応答して論理低またはゼロを示す。インバータ138は、この論理低を、インバータ138がIUP_CTL信号として電流源114のイネーブル入力に提示する論理高に反転する。論理高IUP_CTLイネーブル信号に応答して、IUP電流源114はオフになる。
【0023】
ANDゲート136の出力は、IDN電流源120のイネーブル入力にも結合する。したがって、ANDゲート136の出力での論理低またはゼロは、IDN_CTLイネーブル信号としてIDN電流源120のイネーブル入力へと流れる。この実施形態では、電流源120がアクティブ・ハイのデバイスであるため、この論理低はIDN電流源120をオフにする。したがって、校正モード時に、チャージ・ポンプ102のIUPおよびIDN電流源は初期にオフである。これにより、VC初期化制御回路110は、校正モードの開始時にチャージ・ポンプ回路102に妨害されることなく、ノード122を電圧VDD/2で初期設定することができる。
【0024】
初期設定が完了し、コンデンサ124の電圧VCがVDD/2に達すると、コンパレータ128の出力は論理高に切り替えられる。言い換えれば、コンパレータ128の出力のINIT_DONE信号は、論理低から論理高に変わる。コンパレータ128は、この論理高または1を、IUP/IDN制御回路108とチャージ・ポンプ時間ウィンドウ制御回路106内のカウンタ140との両方に送信する。校正モードでは、DCM回路100がCLK_SEL信号を付勢して、マルチプレクサ(MUX)142に、CLK_CALIBクロック校正信号を選択し、その信号をマルチプレクサの出力に渡すように指示する。CLK_CALIBクロック校正信号は、たとえば50%の既知のデューティ・サイクルを示す基準クロック信号である。MUX 142のCLK_CALIB入力は、カウンタ140のクロック入力CLKに結合する。このように、MUX 142およびカウンタ140はどちらも、CLK_CALIB信号を受信する。カウンタ140のCOUNT_EN入力での論理高は、チャージ・ポンプ時間ウィンドウ制御回路106のカウンタ140を付勢する。したがって、ここでカウンタ140は、そのCLK入力で受信する校正クロック・パルスのカウントを開始する。しかしながら、こうしたカウントが開始される前に、DCM回路100は、論理低を示す初期制御バー信号INIT_CTL_Bを、カウンタ140のRESET_B入力に送信する。これにより、カウントが開始される前に、カウンタ140内のカウントがゼロにリセットされる。次に、カウンタ140は、ゼロからカウントを開始し、所定のクロック・パルス数に達すると、そのCARRYビットをゼロから1へとトグルして、時間ウィンドウの完了を通知する。INIT_CTL_B信号生成器(図示せず)は、INIT_CTL_B信号を生成する。
【0025】
時間ウィンドウがカウンタ140によって制御されている間、IUP電流源114およびIDN電流源120の両方がオンになる。したがって、IUP電流源114は電流をノード122およびコンデンサ124に供給する。さらに、IDN電流源120は、時間ウィンドウ中にノード122およびコンデンサ124から電流をシンクまたは排出させる。より詳細には、時間ウィンドウ(TW)中に、カウンタ140がゼロからカウントを始める間、カウンタ140のCARRY出力は論理低またはゼロを示す。CARRY出力は、時間ウィンドウの終わりを示すTIME−UP信号を生成する。このTIME−UP信号中の論理ゼロは、ANDゲート136の反転入力で論理高または1に反転する。ノード122の電圧VCがVDD/2初期値に達するとコンパレータ128の出力が論理高に切り替わるため、ANDゲート136の残りの入力も論理高または1である。したがって、ANDゲートの両方の入力が論理高を示すため、ANDゲート136の出力も論理高を示す。インバータ138は、この信号をIUP電流源114にイネーブル信号IUP_CTLとして供給する前に、この論理高を論理低に反転する。IUP電流源114はアクティブ・ロー・デバイスであり、したがってIUP電流源114のイネーブル入力上の論理低IUP_CTL信号がIUP電流源114をオンにする。
【0026】
図1に示されるように、ANDゲート136の出力はIDN電流源120のイネーブル入力にも結合する。したがって、ANDゲート136は、その出力で、イネーブル信号IDN_CTLとして論理高信号をIDN電流源120のイネーブル入力へ提供する。IDN電流源120はアクティブ・ハイ・デバイスであるため、そのイネーブル入力での論理高信号がIDN電流源120をオンにする。したがって、時間ウィンドウTW中に、IUP電流源114およびIDN電流源120の両方がオンになり、それぞれコンデンサ124をチャージアップまたはディスチャージする。
【0027】
IUP電流源114およびIDN電流源120の両方が時間ウィンドウ中にイネーブル状態またはオン状態を示す間、PFET 116またはNFET 118がオンになってこうした電流の流れを許可しない限り、これらのイネーブル電流源から電流は供給されない。しかしながら実際には、MUX 142の出力のCLK_INクロック信号が、PFET 116およびNFET 118に対して、時間ウィンドウ中に交互にオンになるよう命令する。したがって、チャージ・ポンプ回路102のIUPおよびIDNの電流源は、時間ウィンドウ中に有効なチャージ・ポンプを提供するために、時間ウィンドウ中に作動する。IUP電流源114がオンの場合、IDN電流源120はオフであり、その逆もまた同様である。コンパレータ128の出力でのINIT_DONE信号が低から高へ遷移すると、カウンタ140のCOUNT_ENカウント・イネーブル入力が高になる。これでカウンタ140がイネーブルになり、カウンタ140は時間ウィンドウTWを開始し、そのCLK入力でのクロック・パルスのカウントを開始する。言い換えれば、カウンタ140は、時間ウィンドウ中の既知のデューティ・サイクルのCLK_CALIBクロック校正信号のパルスをカウントする。カウンタ140が所定数のパルスまでカウントした後、時間ウィンドウは終了する。時間ウィンドウの終わりに達すると、カウンタ140はそのCARRY出力に論理1を送信し、ANDゲート136の反転入力が受け取るTIME−UP信号に論理1の値を提供する。このアクションがANDゲート136の出力を論理低に遷移させるため、IUP電流源114およびIDN電流源120がディスエーブルとなる。
【0028】
各クロック・パルスは論理高部分および論理低部分を含む。特定のクロック・パルスのデューティ・サイクルに応じて、論理高の持続時間は50%のデューティ・サイクルを提供するために論理低と等しくなることができる。クロック信号パルスの論理高の持続時間が論理低よりも長い場合、このクロック信号は50%よりも高いデューティ・サイクルを示す。クロック信号の論理低の持続時間が論理高よりも長い場合、このクロック信号は50%よりも低いデューティ・サイクルを示す。次に、MUX 142の出力でのクロック信号が50%のデューティ・サイクル、50%よりも高いデューティ・サイクル、および50%より低いデューティ・サイクルを示す場合に、チャージ・ポンプ回路102がどのように挙動するかを説明する。
【0029】
PFET 116は、その入力またはゲートで論理低信号を受信した場合にオンになるため、アクティブ・ロー・デバイスである。NFET 118は、その入力またはゲートで論理高信号を受信した場合にオンになるため、アクティブ・ハイ・デバイスである。したがって、PFET 116がクロック・パルスの低部分中などに論理低信号を受信した場合、PFET 116はオンになり、IUP電流源114がクロック・パルスの低部分中にコンデンサ124をチャージできるようにする。PFET 116がクロック・パルスの低部分でオンの場合、NFET 118はオフである。NFET 118がクロック・パルスの高部分中などに論理高信号を受信した場合、NFET 118はオンになり、IDN電流源120がコンデンサ124から電荷を排出できるようにする。このように、クロック信号パルスの低部分で、IUP電流源114はコンデンサ124に電流を流してチャージする。しかしながら、クロック信号パルスの高部分では、IDN電流源120はコンデンサ124から電流をシンクさせ、コンデンサ124をディスチャージする。
【0030】
MUX 142がチャージ・ポンプ回路102に提供するクロック信号CLK_INは、時間ウィンドウTW中に一連のパルスを含む。この一連のクロック・パルス内の各パルスが、論理低部分および論理高部分を含む。論理低部分および論理高部分が50%のデューティ・サイクル・クロック信号の場合と同様に同じ持続時間を示す場合には、時間の経過と共にIUP電流源114は、IDN電流源120がコンデンサ124から排出するのと同じだけコンデンサ124にチャージすることになる。この場合、コンデンサ124を横切る電圧VCは、その初期設定値、すなわちVDD/2を維持することになる。したがって、50%デューティ・サイクルのシナリオの場合、時間ウィンドウTWの終わりのVCの電圧は、時間ウィンドウTWの始まりの電圧VCと同じである。
【0031】
しかしながら、デューティ・サイクルが50%よりも高いクロック信号の場合のように、各パルスの論理高部分が論理低部分よりも長い持続時間を示す場合、時間の経過と共に、IDN電流源120は、IUP電流源114がコンデンサ124に電荷を供給または流し入れるよりも多く、コンデンサ124から電荷を排出することになる。この場合、コンデンサ124を横切る電圧VCは、時間ウィンドウTW中に、初期設定値すなわちVDD/2から、時間ウィンドウTWの終わりには、より低い最終電圧VCへと減少することになる。
【0032】
他のシナリオでは、デューティ・サイクルが50%よりも低いクロック信号の場合のように、各パルスの論理低部分が論理高部分よりも長い持続時間を示す場合、時間の経過と共に、IUP電流源114は、IDN電流源120がコンデンサ124から電荷を排出またはシンクさせるよりも多く、コンデンサ124に電荷を供給することになる。この場合、コンデンサ124を横切る電圧VCは、時間ウィンドウTW中に、初期設定値すなわちVDD/2から、時間ウィンドウTWの終わりには、より高い最終電圧VCへと増加することになる。
【0033】
校正モードでは、IHS 200は、いくつかの異なるデータ・ポイントに関する校正情報またはデータを収集する。より詳細には、IHS 200は、CLK_CALIB信号のデューティ・サイクルおよび周波数、ならびに対応する結果として生じる電圧VCなどの校正情報を収集する。このデータ収集を実施するために、IHS 200内の制御アプリケーションまたは制御ソフトウェア217は、クロック回路220がDCM回路100に提供するCLK_CALIBクロック校正信号のデューティ・サイクルおよび周波数を変更するよう、クロック回路220に命じる。この構成では、制御ソフトウェア217は制御機構として動作する。CLK_CALIB信号の各デューティ・サイクルおよび周波数の値について、IHS 200は対応するVC_OUT電圧値を決定し、格納する。VC_OUTは、分離バッファ回路112によってバッファリングされた後のノード122の電圧VCと同じ電圧値である。一実施形態では、制御ソフトウェア217はIHS 200内の制御機構として動作し、クロック周波数、クロック・デューティ・サイクル、および対応するVC_OUT電圧値を、図2に示されるようなルックアップ・テーブル210に格納する。以下の表1は、デューティ・サイクル測定(DCM)情報などの動作条件情報を格納するための代表的なルックアップ・テーブル(LUT)210を示す。
【表1】

【0034】
表1を参照すると、IHS 200は最初に、1GHzの周波数および30%のデューティ・サイクルを示すCLK_CALIBクロック信号をDCM回路100の入力100Bに提供する。次にIHS 200は、結果として生じるVC_OUT値、すなわち初期VDD/2電圧値プラス何らかのデルタ値Delta2を出力100Cで感知する。IUPおよびIDN=150μA、コンデンサ124=24pF、ならびに時間ウィンドウ(TW)が50nSに等しい代表的なDCM回路100の場合、IHS 200は、出力100Cで0.85vのVC_OUTを感知する。VC_OUT電圧を感知または観察するために、一実施形態では、プロセッサ205は、アナログ電圧VC_OUTをデジタルの等価電圧値に変換するアナログ−デジタル(A/D)変換機225を含む。したがって、この例では、IHS 200は、ルックアップ・テーブル210(上記表1)の第1の行に、1GHz、30%デューティ・サイクル、および0.85vの値、またはそのデジタル等価値を格納する。これらのデータ・ポイントをルックアップ・テーブルに格納した後、IHS 200は、1GHzのクロック周波数および40%のデューティ・サイクルを示すCLK_CALIB信号を、DCM回路200に送信する。IHS 200は、結果として生じるVC_OUT電圧を観察し、その電圧値を周波数およびデューティ・サイクル情報と共にルックアップ・テーブル210(上記表1)の第2の行に格納する。IHS 200は、対応するVC_OUT電圧値を取得するためにCLK_CALIB信号のデューティ・サイクルの変更を続行し、テーブルが完成するまでこれらの値をルックアップ・テーブル210に格納する。
【0035】
一実施形態では、IHS 200は、CLK_CALIB信号の周波数を2GHzおよび3GHzなどの他の周波数に変更し、前述のようにルックアップ・テーブル210(表1)に格納するために対応するVC_OUT電圧値を収集することができる。同じデューティ・サイクルを示すCLK_CALIB信号は、周波数に関係なく、結果としてほぼ同じVC_OUT電圧値となるはずである。たとえば、同じ観察時間ウィンドウ(TW)の場合、30%のデューティ・サイクルを示す2GHzまたは3GHzのCLK_CALIB信号は、同じ量のIUP電流およびIDN電流となるため、結果として同じVC_OUTを生じることになる。これは、他のCLK_CALIBデューティ・サイクルでも同様である。
【0036】
IHS 200が完成したルックアップ・テーブル210をメモリ215に格納すると、DCM回路100は、校正モードからテスト・モードに切り替えて、未知のデューティ・サイクルを有する着信デジタル信号のデューティ・サイクルを測定する準備が整う。前述のように、クロック回路220は、校正モード時に、校正クロック信号CLK_CALIBをDCM回路100に提供する。テスト・モードでは、クロック回路220は、制御機構として動作する制御ソフトウェア217の指示の下で、未知のデューティ・サイクルのCLK_TEST信号をDCM回路100に提供することもできる。CLK_TEST信号は、DCM回路100がそのデューティ・サイクルを決定するために分析する未知のデューティ・サイクルのクロック信号である。代替実施形態では、クロック回路220以外の別のクロック回路が、未知のデューティ・サイクルのCLK_TEST信号をDCM回路100に提供することができる。いずれの場合も、DCM回路100は、校正モードで以前にCLK_CALIB信号を印加した様式と同じ様式で、その信号をCLK_IN信号としてチャージ・ポンプ102に印加することによって、CLK_TEST信号のデューティ・サイクルを決定する。しかしながら、クロック回路220がCLK_TEST信号をDCM回路100に印加する場合、IHS 200は、MUX 142でCLK_CALIB信号の代わりにCLK_TEST信号を選択するように、CLK_SEL信号をアサートする。次にMUX 142は、CLK_TEST信号をCLK_IN信号としてチャージ・ポンプ102に提供する。IHS 200は、出力100Cで結果として生じるVC_OUT信号を測定し、この情報を制御ソフトウェア217に報告する。
【0037】
一実施形態では、次に、制御ソフトウェア217がルックアップ・テーブル210にアクセスし、そのテーブルに格納された2つの最も近いVC_OUT値を表すデータ・ポイントを決定する。プログラム217は、これら2つの値の間で内挿して、測定されたVC_OUT値に対応するCLK_TEST信号の実際のデューティ・サイクルを決定する。VC_OUT電圧は、CLK_IN信号のデューティ・サイクルと共に線形に変動する。この線形関係によって、実際のデューティ・サイクル値の内挿が容易になる。他の実施形態では、制御ソフトウェアは、LUT 210内のデータ・ポイントによって形成された線に沿った他のデューティ・サイクルおよびVC_OUTデータ・ポイントから、現在のCLK_IN信号のデューティ・サイクルを外挿することができる。一実施形態では、制御ソフトウェア・プログラム217は、CLK_TESTテスト信号の決定されたデューティ・サイクル値を、テスト・オペレータまたは他のユーザが見るためにディスプレイ230に送信する。
【0038】
図2に示されるように、IHS 200は、プロセッサ205をメモリ215およびビデオ・グラフィックス・コントローラ240に結合するバス235を含む。ディスプレイ230は、ビデオ・グラフィックス・コントローラ240に結合する。ハード・ディスク・ドライブ、CDドライブ、DVDドライブ、または他の不揮発性ストレージなどの不揮発性ストレージ245は、IHS 200に情報の永続ストレージを提供するためにバス235に結合する。したがって、不揮発性ストレージ245は永続データ・ストアとして働く。オペレーティング・システム250は、IHS 200のオペレーションを管理するために不揮発性ストレージ245からメモリ215へとロードする。制御ソフトウェア217およびルックアップ・テーブル210も、不揮発性ストレージからメモリ215へとロードする。キーボードおよびマウス・ポインティング・デバイスなどのI/Oデバイス255は、バス235に結合する。USB、IEEE 1394バス、ATA、SATA、PCI、PCIE、および他のバスなどの1つまたは複数の拡張バス260は、周辺機器および装置のIHS 200への接続を容易にするために、バス235に結合する。ネットワーク・アダプタ265は、IHS 200がネットワークおよび他の情報処理システムに有線または無線で接続できるように、バス235に結合する。図2はプロセッサ205を使用する1つのIHSを示しているが、IHSは多くの形をとることができる。たとえば、IHS 200は、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック、あるいは他のフォーム・ファクタ・コンピュータまたはデータ処理システムの形を取ることができる。IHS 200は、ゲーム・デバイス、携帯情報端末(PDA)、携帯電話デバイス、通信デバイス、またはプロセッサおよびメモリを含む他のデバイスなどの他のフォーム・ファクタを取ることができる。
【0039】
図3は、50%を超えるデューティ・サイクルを示すクロック信号CLK_IN上で動作する場合、DCM回路200によって使用されるタイミング、制御、およびデータの信号を示すタイミング図である。より詳細には、図3は、INIT_CTL_B信号、INIT_DONE信号、CLK_IN信号、TIME_UP信号、およびノード122のVC電圧を示す振幅対時間のグラフである。INIT_CTL_B信号は、遷移300で高から低に遷移し、VC初期化制御回路110に対して、ノード電圧VCをVDD/2の初期値に初期設定するように指示する。INIT_CTL_B信号の遷移300は、時間ウィンドウ(TW)が開始されるとすぐにカウンタ140がカウントを始められるように、カウンタ140に対してもそのカウントをゼロにリセットするように指示する。初期設定が完了すると、すなわちノード122が初期電圧VDD/2に達すると、INIT_DONE信号は遷移305で低から高に遷移して、時間ウィンドウ(TW)を開始する。
【0040】
CLK_INは、CLK_SEL信号がMUX 142でどちらのモードを選択するかに応じて、校正モードのCLK_CALIBクロック信号またはテスト・モードのCLK_TESTクロック信号のいずれかを表す。校正モードに関係する本例では、CLK_SEL信号は、CLK_IN信号としてCLK_CALIB信号を選択する。ノード122を電圧VDD/2に初期設定した直後、INIT_DONE信号は遷移305で論理高に遷移し、時間ウィンドウTWを開始する。ウィンドウTW中に、カウンタ140は、ウィンドウTWの持続時間を定義する所定のパルス数までCLK_INパルスをカウントする。カウンタ140は、所定のCLK_INパルス数に達すると、カウントを停止する。これに応答して、カウンタ140のCARRY出力は高になり、TIME_UP信号を遷移300で低から高に遷移させ、時間ウィンドウTWを終わらせる。クロック信号CLK_INのデューティ・サイクルが50%を超えるこのシナリオでは、各クロック・パルス期間にわたって、IDN電流源120がコンデンサ124から電流をシンクさせる時間量が、IUP電流源114がコンデンサ124に電流を投入または供給する時間量を超える。したがって、時間ウィンドウTWの持続時間にわたって、コンデンサ124への電流の供給およびコンデンサ124からの電流のシンクを交互にすることによって、時間ウィンドウTWの終わりに最終VC_OUT値に達するまで、時間の経過と共に振幅が減少する鋸歯状の曲線315を生成する。時間ウィンドウTWの持続時間全体にわたってノード122からの電流のシンクがノード122への電流の供給を超えることにより、電圧VCは時間の経過と共に初期のVDD/2値から減少する。一実施形態では、テスト・モードでの時間ウィンドウTWの持続時間は、校正モードでの時間ウィンドウTWの持続時間と同じである。
【0041】
図4は、50%に等しいデューティ・サイクルを示すクロック信号CLK_IN上で動作する場合、DCM回路200によって使用されるタイミング、制御、およびデータの信号を示すタイミング図である。クロック信号のデューティ・サイクルが50%に等しいこのシナリオでは、各クロック・パルス期間にわたって、IUP電流源114がコンデンサ124に電流を供給する時間量と、IDN電流源120がコンデンサ124から接地へと電流をシンクさせる時間量とが等しい。したがって、時間ウィンドウTWの持続時間にわたって、コンデンサ124への電流の供給およびコンデンサ124からの電流のシンクによって、開始した時点とほぼ同じ電圧値VDD/2で終わる鋸歯状の曲線320を生成する。図4では、INIT_CTL_B信号は遷移325で高から低へと遷移し、ノード122の初期化が所定の電圧VDD/2の状態で校正モードを開始する。INIT_DONE信号は、遷移330で低から高へと遷移し、ノード122の初期設定を電圧VDD/2で終了させ、時間ウィンドウTWを開始することによってテスト・モードを開始する。前述のようにカウンタ140は、時間ウィンドウTW中、CLK_IN信号のパルスを時間ウィンドウTWの終わりに達するまでカウントする。時間ウィンドウTWの終わりに、CARRY出力およびTIME_UP信号は遷移335で低から高へと遷移し、時間ウィンドウの終わりおよびカウントの終わりを知らせる。一実施形態では、デューティ・サイクルが50%の場合の時間ウィンドウTWの持続時間は、デューティ・サイクルが50%を超える場合の時間ウィンドウTWの持続時間と同じである。
【0042】
図5は、50%未満のデューティ・サイクルを示すクロック信号CLK_IN上で動作する場合、DCM回路200によって使用されるタイミング、制御、およびデータの信号を示すタイミング図である。クロック信号のデューティ・サイクルが50%未満であるこのシナリオでは、各クロック・パルス期間にわたって、IUP電流源114がコンデンサ124に電流を供給する時間量が、IDN電流源120がコンデンサ124から接地へと電流をシンクさせる時間量を超える。したがって、時間ウィンドウTWの持続時間にわたって、コンデンサ124への電流の供給およびコンデンサ124からの電流のシンクによって、時間ウィンドウTWの終わりに最終VC_OUT値に達するまで時間の経過と共に振幅が増加する鋸歯状の曲線340を生成する。図5では、INIT_CTL_B信号は遷移345で高から低へと遷移し、ノード122の初期設定が所定の電圧VDD/2の状態で校正モードを開始する。INIT_DONE信号は、遷移350で低から高へと遷移し、ノード122の初期設定を電圧VDD/2で終了させ、時間ウィンドウTWを開始することによってテスト・モードを開始する。前述のように、カウンタ140は、時間ウィンドウTW中、CLK_IN信号のパルスを時間ウィンドウTWの終わりに達するまでカウントする。時間ウィンドウTWの終わりに、CARRY出力およびTIME_UP信号は遷移355で低から高へと遷移し、時間ウィンドウの終わりおよびカウントの終わりを知らせる。一実施形態では、デューティ・サイクルが50%未満である場合の時間ウィンドウTWの持続時間は、デューティ・サイクルが50%を超える場合およびデューティ・サイクルが50%に等しい場合の時間ウィンドウTWの持続時間と同じである。さらに、校正モードでの時間ウィンドウTWの持続時間は、テスト・モードでの時間ウィンドウTWの持続時間と同じである。
【0043】
図6は、IHS 200においてクロック信号などの2進デジタル信号のデューティ・サイクルを測定するためにDCM回路100が使用する方法を示す流れ図である。一実施形態では、制御ソフトウェア217は、IHS 200およびDCM回路100が図6の流れ図に示されたステップを実行する場合に、それらの動作を制御する。別の方法では、IHS 200は、図6の流れ図のタイミング操作および機能を実行するための制御ハードウェア回路(図示せず)を含むことができる。IHS 200がINIT_CTL_B初期化信号を遷移300で高から低にアサートした場合、DCM回路100はブロック400で校正モードに入る。一実施形態では、ソフトウェア217は、図6の流れ図の方法のように、DCM回路100の動作を管理するINIT_CTL_BおよびINIT_DONE信号の生成を制御する。制御ソフトウェア217は、DCM回路100の現行モードを制御する、すなわち校正モードまたはテスト・モードで動作するようにDCM回路100に指示することも可能である。別の方法として、制御回路(図示せず)がこの制御機能を提供することもできる。しかしながら、図示された実施形態では、ソフトウェア217は図3〜図5のタイミング図と一致するINIT_CTL_B信号の生成を制御する。制御ソフトウェア217または制御回路は、CLK_CALIBクロック校正信号を選択するようにMUX 142に指示するCLK_SELクロック選択信号を、MUX 142に送信する。次にMUX 142は、ブロック405のように、CLK_CALIB信号をCLK_IN信号としてチャージ・ポンプ102に提供する。言い換えれば、CLK_SEL信号は、CLK_CALIB信号、すなわち既知のデューティ・サイクルおよび周波数を示すクロック信号を選択する。次にDCM回路100は、ブロック410のように、カウンタ140をゼロにリセットし、コンデンサ124をVDD/2に等しい電圧値VCまでチャージする。コンデンサ124の電圧がVDD/2に達すると、ブロック410のように、制御ソフトウェア217または制御回路は、遷移305でINIT_DONE信号を低から高に遷移させ、I INIT電流源134をオフにし、電流源134がコンデンサ124にそれ以上チャージしないように指示する。
【0044】
校正モードは、INIT_DONE信号の遷移305で続行して、コンデンサ124の電圧が所定の初期設定電圧レベル、すなわちVDD/2に達すると、ブロック415のようにIUPおよびIDNの電流源をイネーブルにする。INIT_DONE信号の遷移305は、カウンタ140もイネーブルにして、CLK_CALIBパルスのカウントを開始し、時間ウィンドウ(TW)の開始をマークする。カウンタ140は、時間ウィンドウTWの終わりを定義する所定のカウント数までクロック・パルスをカウントする。時間ウィンドウTWの持続時間全体を通じて、IUPおよびIDNの電流源は、コンデンサ124への電流の供給およびコンデンサ124からの電流の排出を交互に行う。ブロック420のように、カウンタ140が所定のカウント値に達すると時間ウィンドウTWは終了し、カウンタ140のCARRY出力をトリガして、310でTIME−UP信号が遷移する。時間ウィンドウTWの終わりに維持されているVC電圧値が分離バッファ112を通過し、電圧VC_OUTとなる。VC_OUT電圧は、分離バッファ112のバッファリング動作後のノード122のVC電圧と同じである。
【0045】
ブロック425のように、IHS 200の制御ソフトウェア217はVC_OUT電圧値を読み取る。次に、ブロック430のように、制御ソフトウェア217は、その電圧値を、現在のCLK_CALIB信号の既知のデューティ・サイクルおよび周波数と共に、エントリとしてルックアップ・テーブル210に格納する。一実施形態では、制御ソフトウェア217は、いくつかの異なる既知のデューティ・サイクルおよび周波数を示すCLK_CALIB信号を使用して、校正操作を実行する。制御ソフトウェア217は、各デューティ・サイクル/周波数の組合せについて、結果として生じるVC_OUT電圧値をルックアップ・テーブル210に格納する。ブロック435では、IHS 200が、CLK_CALIBクロック信号の既知のデューティ・サイクル/周波数のすべての組合せを処理したかどうかを判定するために、テストを実行する。ルックアップ・テーブル210は、デューティ・サイクル、周波数、および対応するVC_OUT電圧の任意数のエントリを含むことができる。しかしながら、IHS 200が校正モードで収集するエントリまたはデータ・ポイントの数が多いほど、IHS 200が校正モードからテスト・モードに切り替わった場合に、それぞれのテスト・クロック信号についてのデューティ・サイクルの決定がより正確になる。ルックアップ・テーブル210がまだ完成していない場合、ブロック440のように、IHS 200は次のCLK_CALIBクロック信号に進む。プロセスの流れは、ブロック405に戻って続行される。このプロセスは、決定ブロック435がルックアップ・テーブル210の完成を決定するまで続行される。
【0046】
決定ブロック435がルックアップ・テーブルの完成を決定すると、ブロック445のように、DCM 100はテスト・モードに入る。テスト・モードで、DCM回路100は、テスト入力100Aで未知のデューティ・サイクル信号のデューティ・サイクルを測定する。テスト・モードは、DCM回路100が入力100Bで受信する複数の異なる既知のデューティ・サイクル信号からIHS 200が取得する代表的なデータ・ポイントVC_OUTを決定することによって、DCM回路100がそれ自体を校正する前述の校正モードとは異なる。DCM回路100がテスト・モードに入ると、ブロック450のように、制御ソフトウェア217または等価の制御ハードウェアは、そのことを示すために、MUX 142でCLK_SEL信号を使用してCLK_TEST信号を選択する。ブロック450は、ブロック450が未知のデューティ・サイクル信号を選択することを除き、前述のブロック405と同様に選択機能を実行する。次にDCM回路100は、ブロック455のように、カウンタ140をリセットし、コンデンサ124の電荷を所定の初期値であるVDD/2に初期設定する。ブロック455は、前述のブロック410と同じ機能を示す。ブロック460および465はそれぞれブロック415および420と同様の様式で、時間ウィンドウTWを開始し、時間ウィンドウTWを終了する。したがって、テスト・モードは、校正モードと同じ持続時間の時間ウィンドウTWを使用する。ブロック465で時間ウィンドウTWが終了すると、ブロック475のように、制御ソフトウェア217は出力100Cで現在のVC_OUT電圧を読み取る。ソフトウェア217がVC_OUT電圧を得ると、ソフトウェア217はルックアップ・テーブル210にアクセスし、DCM回路100によって読み取られた現在のVC_OUT電圧に最も近い格納済みVC_OUT電圧を選択する。一実施形態では、IHS 200は、最も緊密に現在のVC_OUT電圧を近似するルックアップ・テーブル210内のデューティ・サイクルを表示する。ルックアップ・テーブル210が、多数のデータ・ポイント、すなわちVC_OUTならびに対応するデューティ・サイクル値および周波数を含む場合、この手法はかなり正確である。他の実施形態では、制御ソフトウェア210は、現在のVC_OUT値に最も近い2つのVC_OUT電圧値を選択すること、およびこの2つの対応するデューティ・サイクル間で内挿することによって、出力100Cの現在のVC_OUT信号のデューティ・サイクルを近似することができる。この手法により、かなり正確に内挿されたデューティ・サイクル値が得られる。この測定方法は終了ブロック485で終了する。
【0047】
図7は、いくつかのデータ・ポイントでの、VC_OUT電圧対対応するデューティ・サイクルを示すグラフである。この特定の例では、時間ウィンドウは50nS、IUPおよびIDNの電流源からの電流は150μA、およびコンデンサ124のキャパシタンスは24pFである。観察されるVC_OUT電圧は、CLK_IN信号のデューティ・サイクルが増加するにつれて線形に減少する。別の方法では、観察されるVC_OUT電圧は、CLK_IN信号のデューティ・サイクルが増加するにつれて逆に変動する。テスト・モードでは、制御ソフトウェア217は現在のVC_OUT電圧を受信し、ルックアップ・テーブル210を介して図7のグラフにアクセスし、現在のVC_OUT電圧に対応するデューティ・サイクル値を選択する。
【0048】
図8は、プログラム可能なデューティ・サイクル・クロック生成器がDCM回路600に提供する基準クロック信号のデューティ・サイクルを補正するために、フィードバック機構と連動して動作するデューティ・サイクル測定(DCM)回路600を示すブロック図である。DCM回路600は、図1のDCM回路100とほぼ同じである。DCM回路600を図1のDCM回路100と比較する場合、同じ番号は同じ要素を示す。DCM回路100の場合と同様に、DCM回路600の出力600CでのVC_OUT信号は、入力600Aでの現在のクロック信号のデューティ・サイクルに対応している。
【0049】
図9は、プログラム可能なデューティ・サイクル・クロック生成器605が提供するクロック信号のデューティ・サイクルを決定および調整するために、デューティ・サイクル測定(DCM)回路600を組み込んだ情報処理システム(IHS)700を示す図である。図9に示された実施形態では、集積回路(IC)705は、図2の集積回路205と同様の様式で、他の機能ブロックと共に基板またはチップ上にデューティ・サイクル測定回路600を含む。IC 705は、プロセッサ、マイクロプロセッサ、マイクロコントローラ、およびデューティ・サイクル測定が望ましい事実上すべてのデジタル論理回路などのいくつかの異なる構成を示すことができる。図9に示された特定の実施形態では、IC 705は、DCM回路600が受信するテスト・クロック信号CLK_TESTのデューティ・サイクルを測定するために、IHS 700内で機能するプロセッサである。図9のIHS 700は、図2のIHS 200と同様である。IHS 700とIHS 200を比較する場合、類似の番号は類似の要素を示す。
【0050】
図8に戻ると、プログラム可能なデューティ・サイクル・クロック生成器回路605は、図に示されるようにDCM回路600に結合する。制御ソフトウェア717または等価の制御ハードウェアは、図2の制御ソフトウェア217と同様の様式で、DCM回路600の動作およびタイミングを制御する。より詳細には、制御ソフトウェア717は、ソフトウェア217が図2のDCM回路100の校正を制御する方法と同様の様式で、DCM回路600の校正を制御するように、図9のIHS 700と協働して動作する。制御ソフトウェア717は、プログラム可能なデューティ・サイクル・クロック生成器605が入力600Aに提供するCLK_TEST信号のデューティ・サイクルの測定も制御する。図8および図9に示された実施形態では、制御ソフトウェア717はプログラム可能なデューティ・サイクル・クロック生成器605と協働して、クロック生成器605がDCM回路600に提供するクロック信号のデューティ・サイクルにおける誤差を変更および補正する。より詳細には、DCM回路600は、クロック信号のデューティ・サイクルが所定の望ましいデューティ・サイクル値と等しいかまたはほぼ等しくなるまで、クロック信号のデューティ・サイクルを調整または変更するために、制御ソフトウェア717およびプログラム可能なクロック生成器605をフィードバック機構として使用する。
【0051】
制御ソフトウェア717は、IHS 700の残りの機能ブロックと連動して、CLK_TEST信号の測定済みの現デューティ・サイクルを、図8に示されるプログラム可能なクロック生成器605内の測定済み現デューティ・サイクル・レジスタ610に提供するために働く。それ故、レジスタ610は、プログラム可能なクロック生成器605がDCM回路600の入力600Aに提供する現在のクロック信号CLK_TESTの測定済みデューティ・サイクルを格納する。レジスタ615は、CLK_TEST信号に対して所望のデューティ・サイクルを格納する。テスト・オペレータは、たとえば50%などの所望のデューティ・サイクル値を、所望デューティ・サイクル・レジスタ615にプログラム可能なように入力することができる。次に、たとえばコンパレータ回路などの誤差検出器620は、レジスタ610からの測定済みデューティ・サイクルと、レジスタ610からの所望デューティ・サイクルとを比較する。これに応答して、誤差検出器620は、測定済み現デューティ・サイクルの所望デューティ・サイクルからの変動範囲を示す誤差信号を生成する。この誤差信号に応答して、プログラム可能なクロック生成器620は、測定済み実デューティ・サイクルと所望デューティ・サイクルとの差異を減少させるように生成するクロック信号のデューティ・サイクルを変動させる。クロック・デューティ・サイクルのこの調整の後、DCM回路600は現在のデューティ・サイクルを再度測定する。制御ソフトウェア717およびプログラム可能なクロック生成器605は、次に、測定済みクロックのデューティ・サイクルと所望クロックのデューティ・サイクルとの間に依然として何らかの差異が残っている場合、クロック信号CLK_TESTのデューティ・サイクルをさらに調整する。このように、IHS 700は、測定済み実クロックと所望クロックとの間の任意のデューティ・サイクル誤差をほぼゼロまたは非常に小さな値にするフィードバック機構を提供する。
【0052】
図9のIC 705は、VC_OUT電圧を制御ソフトウェア717が使用するデジタル値に変換するために、図2のA/D変換機225と同様の様式で動作するA/D変換機725を含む。この様式では、IC 705およびDCM回路600が制御ソフトウェア717にデューティ・サイクル情報を提供する。
【0053】
図10は、制御ソフトウェア717によって制御される場合の、デューティ・サイクル測定(DCM)回路600の動作を示す流れ図である。ブロック800のように、DCM回路600は初期に校正モードで動作して、図6の流れ図のブロック400〜440と同様の様式で、VC_OUTデータ・ポイントおよび対応するデューティ・サイクル値を確立する。ブロック805のように、次に、制御ソフトウェア717はDCM回路600をテスト・モードに切り替える。次にDCM回路600は、ブロック810のように、プログラム可能なデューティ・サイクル・クロック生成器回路605が入力600Aに供給するクロック信号の現在のデューティ・サイクルを測定する。次に、プログラム可能なデューティ・サイクル・クロック生成器605内の誤差検出器620は、決定ブロック815のように、測定済み現デューティ・サイクルと、所望デューティ・サイクルとを比較する。より詳細には、誤差検出器620は、測定済み現デューティ・サイクルが所望デューティ・サイクルに等しいかどうかを判定するためにテストを実行する。測定済み現デューティ・サイクルが所望デューティ・サイクルに等しい場合、プロセスの流れは引き続きブロック805に戻り、誤差がなくなるかまたは最小限の誤差になることを保証するためにさらにテストを続行する。しかしながら、決定ブロック815が、測定済み現デューティ・サイクルが所望デューティ・サイクルに等しくないと判定した場合、ブロック820のように、誤差検出器620は誤差の量を示す誤差信号を生成する。これに応答して、プログラム可能なデューティ・サイクル・クロック生成器605内のクロック生成器回路625は、ブロック825のように、誤差信号によって示された誤差の量を補正するために、現在のクロック信号のデューティ・サイクルを変更する。誤差検出器620は、ブロック830のように、ここで誤差がゼロに等しいかどうか、すなわち、測定済み現デューティ・サイクルが所望デューティ・サイクルに等しいか、またはほぼ等しいことを確認するために、新しい測定済み現デューティ・サイクルの監視を続行する。プロセスの流れは引き続きブロック805に戻り、誤差の監視を続行して、誤差条件が発生した場合にフィードバックする。このように、制御ソフトウェアと連動するプログラム可能なデューティ・サイクル・クロック生成器605は、テスト・クロック信号の測定済み現デューティ・サイクルと所望デューティ・サイクルとの間の誤差をほぼゼロまたは最小の値にするフィードバック機構を提供する。一実施形態では、制御ソフトウェア717は、デューティ・サイクル・レジスタ615および所望デューティ・サイクル・レジスタ610の格納機能を含むことができる。さらに、制御ソフトウェア717は、誤差検出器620の誤差検出機能も含むことができる。こうした実施形態では、制御ソフトウェア717は、クロック生成器625が生成する出力クロック信号のデューティ・サイクルを制御するための誤差信号をクロック生成器625に提供する。さらに、制御ソフトウェア717は、図9が示すような、VC_OUT値および対応するデューティ・サイクルおよび周波数のルックアップ・テーブル210への格納も制御することができる。
【0054】
当業者であれば、制御アプリケーション217、制御アプリケーション717、ルックアップ・テーブル(LUT)210、測定済み現デューティ・サイクル・レジスタ610、所望デューティ・サイクル・レジスタ615などの開示された様々な構造が、ハードウェアまたはソフトウェアで実施可能であることを理解されよう。さらに、図6および図10の流れ図のブロックによって表された方法は、メディア・ディスク、メディア・ドライブ、または他のメディア・ストレージなどの、コンピュータ・プログラム製品で具体化することができる。
【0055】
一実施形態では、開示された方法は、たとえば、図2のIHS 200または図9のIHS 700の、システム・メモリ215に常駐することができるコード・モジュール内で、アプリケーション、すなわち命令のセット(プログラム・コード)として実施される。この命令のセットは、プロセッサ205または705が要求するまで、他のメモリ内、たとえば、ハード・ディスク・ドライブなどの不揮発性ストレージ245、あるいは光ディスクまたはフレキシブル・ディスク270などの取り外し可能メモリ内に格納すること、あるいは、インターネットまたは他のコンピュータ・ネットワークを介してダウンロードすることができる。したがって、開示された方法は、IHS 200またはIHS 700などのコンピュータで使用するためのコンピュータ・プログラム製品で実施することができる。こうしたソフトウェア実施形態では、制御ソフトウェア717の機能または他のシステム機能を実行するコードはシステム・メモリ215内に格納することができるが、プロセッサ705がこうしたコードを実行することに留意されたい。加えて、説明された様々な方法は、ソフトウェアによって選択的に作動または再構成される汎用コンピュータ内に便利に実施されるが、当業者であれば、こうした方法がハードウェア、ファームウェア、または必要な方法ステップを実行するように構築されたより特定用途向けの装置で実行することができることも理解されよう。
【0056】
上記では、一実施形態でクロック信号などのデジタル信号のデューティ・サイクルを測定する情報処理システム(IHS)について開示している。他の実施形態では、IHSは、クロック信号などのデジタル信号のデューティ・サイクルの測定および補正の両方を実行する。
【0057】
当業者であれば、本発明のこの説明に鑑みて、本発明の修正形態および代替実施形態が明らかとなろう。したがって本説明は、本発明を実施する方法を当業者に教示し、単なる例として解釈されることを意図する。図示および説明した本発明の形が、本発明の実施形態を構成する。当業者であれば、各部の形状、サイズ、および配置構成をさまざまに変更することができる。たとえば、当業者であれば、本明細書で図示および説明した要素を等価の要素に置換することができる。さらに当業者であれば、本発明のこの説明の特典を理解した後に、本発明の範囲を逸脱することなく、本発明のある特徴を他の特徴とは独立に使用することができる。
【図面の簡単な説明】
【0058】
【図1】開示されたデューティ・サイクル測定(DCM)装置の一実施形態を示す図である。
【図2】図1の開示されたDCM装置を使用する情報処理システム(IHS)の実施形態を示す図である。
【図3】基準クロック信号のデューティ・サイクルが50%を超える、図2のIHSにおける信号を示すタイミング図である。
【図4】基準クロック信号のデューティ・サイクルが50%に等しい、図2のIHSにおける信号を示すタイミング図である。
【図5】基準クロック信号のデューティ・サイクルが50%未満である、図2のIHSにおける信号を示すタイミング図である。
【図6】図2のIHSにおいて制御ソフトウェアまたはハードウェアが使用する方法におけるステップを示す流れ図である。
【図7】クロック信号の異なるデューティ・サイクル・データ値での、図1のDCM装置の出力電圧を示すグラフである。
【図8】クロック信号のデューティ・サイクルを補正するためのフィードバック機構を使用するDCM回路を示す図である。
【図9】図6の開示されたDCM装置を使用する情報処理システム(IHS)実施形態を示す図である。
【図10】図7のIHSにおいて制御ソフトウェアまたはハードウェアが使用する方法におけるステップを示す流れ図である。
【符号の説明】
【0059】
100A テスト入力
100B 校正入力
100C 出力
100 デューティ・サイクル測定(DCM)回路
102 チャージ・ポンプ回路
104 クロック選択回路
106 チャージ・ポンプ時間ウィンドウ制御回路
108 IUP/IDN制御回路
110 VC初期化制御回路
112 出力バッファ
114 IUP電流源
116,132 PFET
118 NFET
120 IDN電流源
122 ノード
124 コンデンサ
126 差動増幅器
128 コンパレータ
130 ORゲート
134 電流源
136 ANDゲート
138 インバータ
140 カウンタ
142 MUX
200 情報処理システム(IHS)
205 プロセッサ/集積回路(IC)
215 メモリ
217 制御ソフトウェア
220 クロック回路
225 アナログ−デジタル(A/D)変換機
230 ディスプレイ
235 バス
240 ビデオ・グラフィックス・コントローラ
245 不揮発性ストレージ
250 オペレーティング・システム
255 I/Oデバイス
260 拡張バス
265 ネットワーク・アダプタ

【特許請求の範囲】
【請求項1】
デジタル信号のデューティ・サイクルを補正するための方法であって、
デューティ・サイクル測定回路(DCM回路)が、データ・ストア内に複数の電圧値および対応するデューティ・サイクル値を格納するステップであって、各電圧値がそれぞれのデューティ・サイクル値に依存する、格納するステップと、
前記DCM回路が、未知のデューティ・サイクルを示すテスト・クロック信号のデューティ・サイクルを決定するステップであって、
前記DCM回路内のチャージャ回路が、未知のデューティ・サイクルを示す前記テスト・クロック信号を受信するステップと、
前記チャージャ回路が、前記DCM回路内のコンデンサを、前記テスト・クロック信号のデューティ・サイクルに依存したテスト電圧値までチャージするステップと、
制御機構が、前記テスト電圧値に対応するデューティ・サイクルを決定し、前記テスト・クロック信号の測定されたデューティ・サイクル値を定義するために、前記データ・ストアにアクセスするステップと、
を含む、決定するステップと、
前記テスト・クロック信号を生成するプログラム可能なデューティ・サイクル・クロック回路が、前記テスト・クロック信号のデューティ・サイクルを、前記測定されたデューティ・サイクル値から所定のデューティ・サイクル値へと変更するステップと、
を含む方法。
【請求項2】
前記プログラム可能なデューティ・サイクル・クロック回路内の誤差検出器によって、前記測定されたデューティ・サイクル値と前記所定のデューティ・サイクル値との間の誤差を示す誤差信号を生成するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記測定されたデューティ・サイクル値と前記所定のデューティ・サイクル値との間の前記誤差を低減するために、前記テスト・クロック信号のデューティ・サイクルを変動させるステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記データ・ストア内の前記電圧値が、前記デューティ・サイクル値と共に線形に変動する、請求項1に記載の方法。
【請求項5】
前記DCM回路が集積回路(IC)内に配置され、前記DCM回路が前記ICに対する前記テスト・クロック信号のデューティ・サイクルを決定する、請求項1に記載の方法。
【請求項6】
前記チャージするステップが、前記コンデンサにチャージするためにチャージ・ポンプを使用する、請求項1に記載の方法。
【請求項7】
デジタル信号のデューティ・サイクルを補正するための方法であって、
コンデンサを含むデューティ・サイクル測定回路(DCM回路)が、校正モードで動作するステップであって、
前記DCM回路内のチャージャ回路が、それぞれ異なる既知のデューティ・サイクルを示す複数の基準クロック信号を受信するステップと、
前記チャージャ回路が、前記コンデンサを前記複数の基準クロック信号にそれぞれ対応する複数の電圧値までチャージするステップと、
データ・ストア内に、前記複数の基準クロック信号のそれぞれに対して、電圧値および対応する既知のデューティ・サイクル値を格納するステップと、
を含む、校正モードで動作するステップと、
前記DCM回路が、テスト・モードで動作するステップであって、
前記チャージャ回路が、未知のデューティ・サイクルを示すテスト・クロック信号を受信するステップと、
前記チャージャ回路が、前記コンデンサを、前記テスト・クロック信号のデューティ・サイクルに対応するテスト電圧値までチャージするステップと、
制御機構が、前記テスト電圧値に対応するデューティ・サイクルを決定し、前記テスト・クロック信号の測定されたデューティ・サイクル値を定義するために、前記データ・ストアにアクセスするステップと、
を含む、テスト・モードで動作するステップと、
前記テスト・クロック信号を生成するプログラム可能なデューティ・サイクル・クロック回路が、前記テスト・クロック信号のデューティ・サイクルを、前記測定されたデューティ・サイクル値から所定のデューティ・サイクル値へと変更するために、補正モードで動作するステップと、
を含む方法。
【請求項8】
前記プログラム可能なデューティ・サイクル・クロック回路内の誤差検出器によって、前記測定されたデューティ・サイクル値と前記所定のデューティ・サイクル値との間の誤差を示す誤差信号を生成するステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記測定されたデューティ・サイクル値と前記所定のデューティ・サイクル値との間の誤差を低減するために、前記テスト・クロック信号のデューティ・サイクルを変動させるステップをさらに含む、請求項8に記載の方法。
【請求項10】
前記チャージャ回路がチャージ・ポンプを含み、前記方法が前記チャージ・ポンプによって前記コンデンサをチャージするステップを含む、請求項7に記載の方法。
【請求項11】
前記DCM回路が校正モードで動作している間に、前記コンデンサを所定の電圧値で初期設定するステップをさらに含む、請求項7に記載の方法。
【請求項12】
前記テスト・クロック信号がそれぞれのパルス期間内に複数のパルスを含み、各パルスがそれぞれの持続時間を有する第1の論理状態および第2の論理状態を示し、前記第1の論理状態および前記第2の論理状態のそれぞれの持続時間が前記テスト・クロック信号のデューティ・サイクルを定義し、前記チャージャ回路が前記第1の論理状態中に前記コンデンサをチャージし、前記第2の論理状態中に前記コンデンサをディスチャージし、前記コンデンサで結果として生じる電圧値が前記テスト・クロック信号のデューティ・サイクルに対応する、請求項7に記載の方法。
【請求項13】
前記基準クロック信号それぞれが、それぞれの期間内に複数のパルスを含み、各パルスがそれぞれの持続時間を有する第1の論理状態および第2の論理状態を示し、前記第1の論理状態および前記第2の論理状態のそれぞれの持続時間が各基準クロック信号の前記デューティ・サイクルを定義し、前記チャージャ回路が前記第1の論理状態中に前記コンデンサをチャージし、前記第2の論理状態中に前記コンデンサをディスチャージし、前記コンデンサで結果として生じる電圧値がそれぞれの基準クロック信号の既知のデューティ・サイクル値に対応する、請求項12に記載の方法。
【請求項14】
校正モード中に、前記チャージャ回路が、各基準クロック信号に対して同じ時間量だけ前記コンデンサをチャージする、請求項7に記載の方法。
【請求項15】
テスト・モード中に、前記校正モード中に前記チャージャ回路が前記コンデンサをチャージしたのと同じ時間量だけ、前記チャージャ回路が前記コンデンサをチャージする、請求項14に記載の方法。
【請求項16】
前記制御機構が、前記テスト・クロック信号に対応するデューティ・サイクルを決定するために、前記データ・ストアに格納された電圧値およびデューティ・サイクル値から内挿または外挿する、請求項7に記載の方法。
【請求項17】
デジタル信号のデューティ・サイクルを決定および補正するデューティ・サイクル補正システムであって、
データ・ストアと、
前記データ・ストアに結合されたデューティ・サイクル測定回路(DCM回路)であって、前記データ・ストア内に複数の電圧値および対応するデューティ・サイクル値を格納するために校正モードで動作し、各電圧値がそれぞれのデューティ・サイクル値に依存するDCM回路と、
前記DCM回路に結合され、前記校正モードで前記DCM回路を制御するように、およびテスト・モードで前記DCM回路を制御するように構成された制御機構と、
前記DCM回路が、未知のデューティ・サイクルを示すテスト・クロック信号を受信するために前記テスト・モードで動作するチャージャ回路を含み、前記チャージャ回路が、前記テスト・クロック信号のデューティ・サイクルに依存するテスト電圧値まで前記DCM回路内のコンデンサをチャージし、前記制御機構が、前記テスト・モードで前記テスト電圧値に対応するデューティ・サイクルを決定するために前記データ・ストアにアクセスするように動作し、前記テスト・クロック信号の測定されたデューティ・サイクル値を定義し、
前記テスト・クロック信号を生成する、前記DCM回路に結合されたプログラム可能なデューティ・サイクル・クロック回路であって、前記テスト・クロック信号のデューティ・サイクルを前記測定されたデューティ・サイクル値から所定のデューティ・サイクル値へと変更するために、補正モードで動作するプログラム可能なデューティ・サイクル・クロック回路と、
を備えるデューティ・サイクル補正システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−306555(P2007−306555A)
【公開日】平成19年11月22日(2007.11.22)
【国際特許分類】
【出願番号】特願2007−118363(P2007−118363)
【出願日】平成19年4月27日(2007.4.27)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】