(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025006605
(43)【公開日】2025-01-17
(54)【発明の名称】電圧検知回路及び情報処理装置
(51)【国際特許分類】
G01R 19/252 20060101AFI20250109BHJP
H03M 1/60 20060101ALI20250109BHJP
【FI】
G01R19/252
H03M1/60
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023107502
(22)【出願日】2023-06-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】森 敦司
【テーマコード(参考)】
2G035
5J022
【Fターム(参考)】
2G035AB01
2G035AC01
2G035AD29
2G035AD51
2G035AD53
2G035AD56
2G035AD65
5J022AA12
5J022BA01
5J022CE08
(57)【要約】
【課題】電圧を精度良く測定する電圧検知回路及び情報処理装置を提供する。
【解決手段】参照周波数生成回路11と比較周波数生成回路12とが有するリングオシレータ101は、環状に直列に並ぶ複数のインバータ111を有する。サンプリング部は、サンプリング周期毎に各インバータ111からの出力信号を取得する。遷移段数算出部は、サンプリング部が取得したサンプリング周期毎の前記出力信号を基に、リングオシレータ101毎の前記サンプリング周期の間に出力信号の値が遷移したインバータ111の数である遷移段数を算出する。電圧検知部は、遷移段数算出部により取得された遷移段数を基に電圧検知を行う。
【選択図】
図2
【特許請求の範囲】
【請求項1】
環状に直列に並ぶ複数のインバータを有する2つのリングオシレータと、
サンプリング周期毎に各前記インバータからの出力信号を取得するサンプリング部と、
前記サンプリング部により取得された前記サンプリング周期毎の前記出力信号を基に、前記リングオシレータ毎の前記サンプリング周期の間に出力信号の値が遷移した前記インバータの数である遷移段数を算出する遷移段数算出部と、
前記遷移段数算出部により取得された前記遷移段数を基に電圧検知を行う電圧検知部と
を備えたことを特徴とする電圧検知回路。
【請求項2】
前記リングオシレータは、
第1インバータを有する第1リングオシレータと、
前記第1インバータと同数の第2インバータを有する第2リングオシレータとを有し、
前記サンプリング部は、
ターゲット電圧が入力された前記第1リングオシレータにおける前記第1インバータからの第1出力信号を取得する第1サンプリング機構と、
比較電圧が入力された第2リングオシレータにおける前記第2インバータからの第2出力信号を取得する第2サンプリング機構とを有し、
前記遷移段数算出部は、
前記第1出力信号を基に前記第1インバータの前記遷移段数である第1遷移段数を算出する第1遷移段数カウント機構と、
前記第2出力信号を基に前記第2インバータの前記遷移段数である第2遷移段数を算出する第2遷移段数カウント機構とを有し、
前記電圧検知部は、前記第1遷移段数と前記第2遷移段数とを比較して前記比較電圧の検知を行う
ことを特徴とする請求項1に記載の電圧検知回路。
【請求項3】
前記サンプリング部は、特定のサンプリング周期における各前記インバータの特定出力信号と前記特定のサンプリング周期の1周期前のサンプリング周期における各前記インバータの前回出力信号とを取得し、
前記遷移段数算出部は、前記特定出力信号と前記前回出力信号とを比較して、前記遷移段数を算出する
ことを特徴とする請求項1に記載の電圧検知回路。
【請求項4】
前記遷移段数算出部は、前記1周期前のサンプリング周期において出力信号の値が最後に変化した前記インバータから前記特定のサンプリング周期において出力信号の値が最後に変化した前記インバータまでの前記リングオシレータにおける前記インバータの数を数えて前記遷移段数を算出することを特徴とする請求項3に記載の電圧検知回路。
【請求項5】
電圧検知回路、電圧制御回路及びプロセッサを有する情報処理装置であって、
前記電圧検知回路は、
環状に直列に並ぶ複数のインバータを有する2つのリングオシレータと、
サンプリング周期毎に各前記インバータからの出力信号を取得するサンプリング部と、
前記サンプリング部により取得された前記サンプリング周期毎の前記出力信号を基に、前記リングオシレータ毎の前記サンプリング周期の間に出力信号の値が遷移した前記インバータの数である遷移段数を算出する遷移段数算出部と、
前記遷移段数算出部により取得された前記遷移段数を基に電圧検知を行う電圧検知部とを備え、
前記電圧制御回路は、前記電圧検知回路により検知された電圧を基に前記プロセッサへ出力される電圧を制御し、且つ、前記プロセッサへ出力された圧を一方の前記リングオシレータへ印加し、
前記プロセッサは、前記電圧制御回路により制御された電圧の入力を受けて動作する
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電圧検知回路及び情報処理装置に関する。
【背景技術】
【0002】
デジタル回路の電圧測定を行う場合、回路規模の小ささや測定の容易さからROSC(Ring Oscillator)が用いられることが多い。ROSCの発振周波数は印加電圧によって変化する。そこで、測定対象となる電圧である測定電圧で動作するROSCの発振周波数と、基準となるターゲット電圧で動作するROSCの発振周波数を比較することで電圧を検知することが可能である。この手法では発振周波数を算出するために、所定期間内にROSC内部の各ノードが何回HighからLowへ遷移したか又はLowからHighに遷移したかがカウントされる。
【0003】
従来、ROSCを用いた電圧測定の技術として以下の様なものが提案されている。例えば、高圧バッテリの流出入電流情報に基づき、リングオシレータを備えたAD変換器への入力周波数をマップ演算した結果が、小さい場合に入力周波数を低周波とし、絶対値が大きい場合に入力周波数を高周波とする技術が存在する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のROSCを用いた電圧測定の技術には様々な問題があった。例えば、ROSC内部の特定ノードを起点とし、電圧比較期間内にROSCの周回数と起点から何段進んだかを求める場合、測定時にリセットして起点のノードから発信が開始される。この場合、リセット動作の期間は電圧測定が困難となる。電圧測定が困難な期間が存在すると、電圧が変動している状況下においては誤差が生じるおそれがある。
【0006】
また、内部ノード及び周回数のカウンタをそれぞれサンプリングクロックでサンプルして、前回のサンプル結果との差分から全体として何段分進んだかを求める場合、カウンタのサンプル時に発生するメタステーブルの影響から計測誤差が大きくなるおそれがある。
【0007】
また、ROSC内の各ノードにカウンタを設け、各カウンタの和を求めることにより何段遷移したかを求める場合、カウンタのリセット動作のために電圧検知が困難となる期間が発生する。この場合も、電圧測定が困難な期間が存在すると、電圧が変動している状況下においては誤差が生じるおそれがある。
【0008】
なお、高圧バッテリの流出入電流情報に基づきリングオシレータを備えたAD変換器への入力周波数を変更する技術では、ROSCの発振周波数の取得方法は特に考慮されておらず、従来の方法と同様に誤差が生じるおそれがある。このように、従来のROSCを用いた電圧測定の技術では、電圧測定において誤差が生じるおそれがあり、電圧を精度良く測定することは困難であった。
【0009】
開示の技術は、上記に鑑みてなされたものであって、電圧を精度良く測定する電圧検知回路及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本願の開示する電圧検知回路及び情報処理装置の一つの態様において、環状に直列に並ぶ複数のインバータを有する2つのリングオシレータを有する。そして、サンプリング部は、サンプリング周期毎に各前記インバータからの出力信号を取得する。遷移段数算出部は、前記サンプリング部が取得した前記サンプリング周期毎の前記出力信号を基に、前記リングオシレータ毎の前記サンプリング周期の間に出力信号の値が遷移した前記インバータの数である遷移段数を算出する。電圧検知部は、前記遷移段数算出部により取得された前記遷移段数を基に電圧検知を行う。
【発明の効果】
【0011】
1つの側面では、本発明は、電圧を精度良く測定することができる。
【図面の簡単な説明】
【0012】
【
図2】
図2は、実施例に係る電圧検知回路の一例の回路図である。
【
図3】
図3は、ROSCの内部状態を示す図である。
【
図4】
図4は、遷移段数の求め方を説明するための図である。
【
図5】
図5は、信号の変化及びサンプリング結果を示すタイミングチャートである。
【
図6】
図6は、実施例に係る電圧検知回路における誤差の吸収を説明するための図である。
【
図7】
図7は、電圧検出処理のフローチャートである。
【
図9】
図9は、実施例に係る電圧検知回路を用いた電圧制御による制御結果の一例を示す図である。
【
図10】
図10は、電圧検知が無効化される時間が存在する場合の検知精度の低下を説明するための図である。
【
図11】
図11は、実施例に係る電圧検知回路によるサンプリングのタイミングを示す図である。
【
図12】
図12は、実施例に係る電圧検知回路を用いた情報処理装置の一例を示す図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示する電圧検知回路及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する電圧検知回路及び情報処理装置が限定されるものではない。
【実施例0014】
図1は、レギュレータの模式図である。
図1に示す、レギュレータ1は、LDO(Low Drop Out)レギュレータである。レギュレータ1は、外部電源2から供給される電源の電圧を指定された低い電圧値に調整して制御対象回路3に供給する。
図1に示すように、レギュレータ1は、電圧検知回路10、ターゲット電圧出力回路20、LDO制御論理回路30及びPMOS(P-Channel Metal Oxide Semiconductor)ヘッダ40を有する。
【0015】
外部電源2は、制御対象回路3の動作に用いられる電源をレギュレータ1に入力する。外部電源2から出力される電力の電圧値は、制御対象回路3を動作させるための電圧値よりも高い。
【0016】
制御対象回路3は、例えば、CPU(Central Processing Unit)である。制御対象回路3は、外部電源2から供給された電力を電源として用いて動作する。より詳しくは、制御対象回路3は、電圧値が調整された電力の入力をレギュレータ1から受ける。そして、制御対象回路3は、入力された電力を電源として動作する。
【0017】
ターゲット電圧出力回路20は、予め設定された一定の電圧値の情報を有する。ターゲット電圧出力回路20は、設定された電圧値を有するターゲット電圧を出力する。
【0018】
電圧検知回路10は、ターゲット電圧の入力をターゲット電圧出力回路20から受ける。また、電圧検知回路10は、フィードバックされたPMOSヘッダ40からの出力電圧の入力を受ける。そして、電圧検知回路10は、PMOSヘッダ40からの出力電圧とターゲット電圧とを比較して電圧値の差分を算出する。その後、電圧検知回路10は、算出した電圧値の差分をLDO制御論理回路30へ出力する。
【0019】
LDO制御論理回路30は、PMOSヘッダ40からの出力電圧とターゲット電圧との電圧値の差分の入力を電圧検知回路10から受ける。LDO制御論理回路30は、取得した電圧値の差分を小さくするようにPMOSヘッダ40が有する各PMOSトランジスタのオンオフを決定する。そして、LDO制御論理回路30は、決定したオンオフの状態となるようにPMOSヘッダ40の各PMOSトランジスタに対して信号を出力する。このLDO制御論理回路30が、「電圧制御回路」の一例にあたる。
【0020】
PMOSヘッダ40は、並列に並べられた多数のPMOSトランジスタを有する。PMOSヘッダ40は、PMOSトランジスタのオンオフの比率を変化させることで可変抵抗を実現する。PMOSヘッダ40は、LDO制御論理回路30から入力された信号により各PMOSトランジスタがオン又はオフとなる。各PMOSトランジスタがオン又はオフが制御された状態で、PMOSヘッダ40は、電力の入力を外部電源2から受ける。そして、PMOSヘッダ40は、PMOSトランジスタのオンオフにより調整された電力を制御対象回路3へ出力する。
【0021】
図2は、実施例に係る電圧検知回路の一例の回路図である。電圧検知回路10は、参照周波数生成回路11、比較周波数生成回路12、発振器13及び差分算出部14を有する。
【0022】
参照周波数生成回路11は、ターゲット電圧の入力を受けて、ターゲット電圧に対応する発信周波数を出力する。以下では、ターゲット電圧に対応する発信周波数を「参照周波数」と呼ぶ。比較周波数生成回路12は、フィードバックされたPMOSヘッダ40からの出力電圧の入力を受けて、PMOSヘッダ40からの出力電圧に対応する発信周波数を出力する。以下では、PMOSヘッダ40からの出力電圧に対応する発信周波数を「比較周波数」と呼ぶ。
【0023】
参照周波数生成回路11と比較周波数生成回路12とは同様の構成を有する。そこで、以下では参照周波数生成回路11を例に詳細を説明する。
【0024】
参照周波数生成回路11は、
図2に示すように、ROSC101、サンプリング機構102及び遷移段数カウント機構103を有する。
【0025】
ROSC101は、直列に接続された奇数個のインバータ111を有する。POSC101は、最終段のインバータ111の出力が先頭のインバータ111に入力される。各インバータ111は入力された信号の論理と逆の論理を有する信号を順次後段のインバータ111へ出力する。すなわち、インバータ111は、Highの値を有する信号が入力されると、Lowの値を有する信号を後段のインバータ111へ出力する。逆に、Lowの値を有する信号が入力されると、Highの値を有する信号を後段のインバータ111へ出力する。以下では、Highの値を有する信号を「Highの信号」と呼び、Lowの値を有する信号を「Lowの信号」と呼ぶ。ここで、参照周波数生成回路11のROSC101が「第1リングオシレータ」の一例にあたり、比較周波数生成回路12のROSC101が「第2リングオシレータ」の一例にあたる。
【0026】
インバータ111は、奇数個接続されるため、各インバータ111について次に入力される信号は1つ前の信号と論理が反転した信号が入力される。すなわち、各インバータ111は、論理が逆の信号が交互に入力され、論理が逆の信号を交互に出力する。これにより、ROSC101は発振する。ROSC101において特定のインバータ111に信号が入力されてから次の信号が入力されるまでの周期により発信周波数が生成される。したがって、各インバータ111は、発振周期毎に異なる論理の信号を出力する。ここで、参照周波数生成回路11のROSC101が有するインバータ111が、「第1インバータ」の一例にあたり、比較周波数生成回路12のROSC101が有するインバータ111が「第2リングオシレータ」の一例にあたる。
【0027】
サンプリング機構102は、システムクロックの入力を発振器13から受ける。サンプリング機構102は、インバータ111と同数のFF(Flip Flop)121を有する。また、サンプリング機構102は、インバータ111と同数のFF122を有する。ここで、参照周波数生成回路11のサンプリング機構102が「第1サンプリング機構」の一例にあたり、比較周波数生成回路12のサンプリング機構102が「第2サンプリング機構」の一例にあたる。
【0028】
FF121は、それぞれ入力端子が各インバータ111の出力と次段のインバータ111の入力とを結ぶ経路に接続される。また、各FF121は、出力端子が分岐され、一方がFF122の入力端子に接続され、他方が遷移段数カウント機構103のXOR回路131に接続される。
【0029】
FF121は、システムクロックにしたがい1クロック毎に各インバータ111からの出力信号が入力される。システムクロックのエッジが、FF121のサンプリングタイミングとなる。また、システムクロックの周期がサンプリング機構102におけるサンプリング周期となる。そして、発振器13から入力されたシステムクロックにしたがい1クロック後に、FF121は、各インバータからの入力信号をFF122及びXOR回路131へ出力する。
【0030】
ここで、サンプリングタイミングでFF121が取得した出力信号の中で、そのサンプリング周期において最後に値が遷移した出力信号を出力したインバータ111と次のインバータ111との間を出力信号の値の遷移の「エッジ」と呼ぶ。すなわち、次のサンプリング周期では、エッジの次のインバータ111の出力信号から値が遷移していく。
【0031】
FF122は、それぞれ入力端子がFF121の出力端子に接続される。また、FF122は、それぞれ出力端子が遷移段数カウント機構103のXOR回路131に接続される。
【0032】
FF122は、インバータ111から出力信号が出力された信号が、FF121よりも1クロック遅れてFF121から入力される。そして、FF122は、1クロック後に、各インバータからの入力信号をFF122及びXOR回路131へ出力する。
【0033】
このように、FF122は、クロック121からの出力信号に1クロック遅延を付加する。すなわち、XOR回路131には、あるサンプリング周期においてFF121がサンプリングした信号とその1周期前のサンプリング周期にFF121がサンプリングした信号とが入力される。
【0034】
ここで、サンプリング周期は、発信周波数の2倍よりも大きいことが好ましい。すなわち、(サンプリング周期/2)>発信周波数であることが好ましい。例えば、(サンプリング周期/2)=発信周波数の場合、サンプリングタイミングでFF122が保持する信号はFF121が保持する信号と値が逆になる。また、(サンプリング周期/2)<発信周波数の場合、サンプリング周期の間にエッジがROSC101を1周以上してしまい、出力が2回以上遷移するインバータ111が発生してしまう。
【0035】
図3は、ROSCの内部状態を示す図である。紙面に向かって上段には、ROSC101とFF121とが、模式的に図示されている。また、紙面に向かって下段の表201は、時刻T0、時刻T0から1クロック後の時刻T1、及び、時刻T1から1クロック後のT2におけるFF121に格納された信号の値を示す。ここでは、インバータ111及びFF121が9つ並ぶ場合で説明する。すなわち、表201のPh0が先頭のFF121が保持する信号の値を表し、Ph2~Ph7まで順番に1つ後段のFF121が保持する値を表し、Ph8が最高段のFF121が保持する値を表す。
【0036】
例えば、時刻T0で各FF121によりサンプリングされた信号の値は、先頭のFF121から後段に向かって「0,1,0,1,1,0,1,0,1」と並ぶ。そして、時刻T0において信号のエッジは、Ph3のFF121とPh4のFF121との間の位置211である。ここで、値が1の信号がHighの信号にあたり、値が0の信号がLowの信号にあたる。
【0037】
その1サンプリング周期後の時刻T1においてサンプリングされた信号の値は、先頭のFF121から後段に向かって「0,1,0,1,0,1,0,1,1」と並ぶ。そして、時刻T1において信号のエッジは、Ph7のFF121とPh8のFF121との間の位置212である。すなわち、1サンプリング周期の間に、信号はPh4のFF121からPh7のFF121までインバータ111の4個分移動する。
【0038】
さらに、その1サンプリング周期後の時刻T2においてサンプリングされた信号の値は、先頭のFF121から後段に向かって「1,0,1,0,0,1,0,1,0」と並ぶ。そして、時刻T2において信号のエッジは、Ph3のFF121とPh4のFF121との間の位置212である。すなわち、1サンプリング周期の間に、信号はPh8のFF121からPh3のFF121までインバータ111の5個分移動する。
【0039】
この表を、FF121とFF122とが保持する信号の値に置き替えると、FF121が時刻T1の信号を保持する状態で、FF122は時刻T0の信号を保持する。また、FF121が時刻T2の信号を保持する状態で、FF122は時刻T1の信号を保持する。
【0040】
遷移段数カウント機構103は、XOR回路131及びポピュレーションカウンタ132を有する。ここで、参照周波数生成回路11の遷移段数カウント機構103が「第1遷移段数カウント機構」の一例にあたり、比較周波数生成回路12の遷移段数カウント機構103が「第2遷移段数カウント機構」の一例にあたる。
【0041】
XOR回路131は、最新のサンプリング周期でFF121がサンプリングした信号の入力をFF121から受ける。また、XOR回路131は、1周期前のサンプリング周期でFF121がサンプリングした信号の入力をFF122から受ける。
【0042】
そして、XOR回路131は、最新のサンプリング周期でFF121がサンプリングした信号と1周期前のサンプリング周期でFF121がサンプリングした信号との排他的論理和を、FF121毎に求める。そして、XOR回路131は、算出した演算結果をポピュレーションカウンタ132へ出力する。
【0043】
ポピュレーションカウンタ132は、最新のサンプリング周期でFF121がサンプリングした信号と1周期前のサンプリング周期でFF121がサンプリングした信号との排他的論理和のFF121毎の演算結果の入力をXOR回路131から受ける。そして、ポピュレーションカウンタ132は、XOR回路131の演算結果のうち1の数をカウントする。
【0044】
言い換えれば、ポピュレーションカウンタ132は、最新のサンプリング周期でサンプリングした信号と1周期前のサンプリング周期でサンプリングした信号とで値が異なるFF121の個数を求める。すなわち、ポピュレーションカウンタ132がカウントした数は、保持する信号の値が遷移したFF121の数といえ、出力信号の値が遷移したインバータ111の段数にあたる。以下では、出力信号の値が遷移したインバータ111の段数を、「インバータ111の遷移段数」と呼ぶ。その後、ポピュレーションカウンタ132は、カウントした数を差分算出部14へ出力する。
【0045】
図4は、遷移段数の求め方を説明するための図である。ここでは、インバータ111、並びに、FF121及び122が15個並ぶ場合で説明する。例えば、時刻T00及びT01でFF121が、表202に示す値の信号を保持する。この場合、時刻T01の信号がFF121からXOR回路131へ入力されるタイミングで、時刻00の信号がFF122からXOR回路131へ入力される。
【0046】
そして、XOR回路131による演算結果は、表202の最下段に示す値となる。この場合、値が1である範囲221が信号の変化したFF121に対応し、値が0である範囲222が信号の変化しないFF121に対応する。
【0047】
この場合、ポピュレーションカウンタ132は、1の数を12とカウントする。すなわち、信号の値が変化したFF121の数が12個であり、インバータ111の12段の出力が遷移したといえる。
【0048】
図5は、信号の変化及びサンプリング結果を示すタイミングチャートである。
図5におけるグラフ203が、インバータ111から出力される信号の変化を表す。また、グラフ204が、FF121に格納された信号を表す。グラフ203は、横軸で時間経過を表し、縦軸で各段のインバータ111を表す。ここでは、インバータ111は9つ接続された場合で説明する。また、グラフ203の紙面に向かって左側に示した0番から8番までの番号を各インバータ111に振った場合で説明する。
【0049】
グラフ204は、横軸で時間経過を表し、縦軸で各インバータに対応するFF121を表す。各FF121は、グラフ204の紙面に向かって左側に示した番号と同じ番号が振られたインバータ111からの出力信号を格納する。すなわち、0番のFF121は、0番のインバータ111からの出力信号を格納する。
【0050】
グラフ203における時間Tは、発振周期を表す。また、グラフ204において縦方向に並ぶ斜線パターンが付加されたマスとドットパターンが付加されたマスとの間の位置が、そのタイミングにおける信号のエッジが存在する位置を示す。エッジがインバータ111を通過する1周期が、発振周期Tと一致する。
【0051】
例えば、時刻T02では、各FF121は、信号群241を保持する。また、時刻T03では、各FF121は、信号群241を保持する。例えば、時刻T02がサンプリングのタイミングであり、時刻T03が時刻T02の次のサンプリング周期でのサンプリングのタイミングの場合について説明する。
【0052】
この場合、FF121から信号群241がXOR回路131に入力される。また、FF122から信号群242がXOR回路131に入力される。そして、この場合、XOR回路131は、数値群243を出力する。ポピュレーションカウンタ132は、数値群243の入力を受けて、1の数を5つとカウントする。すなわち、ポピュレーションカウンタ132のカウンタから得られる出力が遷移したインバータ111の段数は5であり、これは、グラフ203及び204において時刻T02からT03の間にエッジが移動したインバータ111の数と一致する。
【0053】
このように、ポピュレーションカウンタ132から出力される数が、サンプリング周期の間におけるインバータ111の遷移段数とすることができる。ポピュレーションカウンタ132から出力される数は、ROSC101の発信周波数を表す。
【0054】
まとめると、特定のサンプリング周期を特定周期とし、特定周期の1周期前のサンプリング周期を前回周期とすると、遷移段数カウント機構103は以下の処理を行うといえる。すなわち、遷移段数カウント機構103は、前回周期において出力信号の値が最後に変化したインバータ111から特定周期において出力信号の値が最後に変化したインバータ111までのリングオシレータ101におけるインバータ111の数を数えて遷移段数とする。
【0055】
差分算出部14は、測定期間中の参照周波数と比較周波数との差分を算出する。差分算出部14は、減算回路141及びアキュムレータ142を有する。この参照周波数と比較周波数との差分が参照する電圧の違いによる差分を示し、参照周波数と比較周波数との差分の算出が「電圧の検知」の一例にあたる。そして、差分算出部14が、「電圧検知部」の一例にあたる。
【0056】
差分算出部14は、ターゲット電圧が入力された場合のサンプリング周期におけるインバータ111の遷移段数の入力を参照周波数生成回路11から受ける。また、差分算出部14は、PMOSヘッダ40からの出力電圧が入力された場合のサンプリング周期におけるインバータ111の遷移段数の入力を比較周波数生成回路12から受ける。
【0057】
次に、差分算出部14は、参照周波数生成回路11から入力されたインバータ111の遷移段数から比較周波数生成回路12から入力されたインバータ111の遷移段数を減算して遷移段数の差分を算出する。そして、差分算出部14は、算出した遷移段数の差分をアキュムレータ142へ出力する。差分算出部14は、測定期間において遷移段数の差分の算出を繰り返し、順次アキュムレータ142へ出力する。
【0058】
アキュムレータ142は、遷移段数の差分の入力を差分算出部14から受ける。アキュムレータ142は、測定期間が終了するまで遷移段数の差分を蓄積して全てを加算する。その後、アキュムレータ142は、加算結果をLDO制御論理回路30へ出力する。
【0059】
図6は、実施例に係る電圧検知回路における誤差の吸収を説明するための図である。例えば、測定期間Tmがサンプル周期の4周期分の期間である場合で説明する。この場合、測定期間Tmの間に、タイミング331~335でサプリングが行われるものとする。
【0060】
ここで、メタステーブルによりサンプリング周波数とリングのエッジが衝突する箇所で誤差が発生する場合がある。その場合、そのサンプリング時の出力信号の値は確率的に決定される。例えば、タイミング333でメタステーブルによる誤差が発生した場合、タイミング333のサンプリングにより発生した誤差は、残りの確率でタイミング334のサンプリングにより吸収される。アキュムレータ142は、測定期間Tmの差分を合計するため、例えば1に信号が遷移する場合であれば、タイミング333とタイミング334のいずれのサイクルのサンプリングに1を計上するかということになり、結局誤差が見えなくなる。すなわち、アキュムレータ142による測定期間の差分の加算により、タイミング332~334で発生した誤差は隠されるため、誤差の発生は初段の開始時のサンプリングと終段の停止時のサンプリングに限定される。このように、本実施例に係る電圧検知回路10は、測定誤差を最小限に抑えることができる。
【0061】
図7は、電圧検出処理のフローチャートである。次に、
図7を参照して、本実施例に係る電圧検知回路10による電圧検知処理の流れを説明する。
【0062】
参照周波数生成回路11のROSC101は、外部電源2からの電圧の入力を受けて発振する。また、比較周波数生成回路12のROSC101は、PMOSヘッダ40からの出力電圧の入力を受けて発振する。参照周波数生成回路11及び比較周波数生成回路12ともに、サンプリング機構102は、FF121及び122を用いて、発振したROSC101の内部状態をシステムクロックで決まるサンプリング周期でサンプリングする(ステップS1)。
【0063】
遷移段数カウント機構103のXOR回路131は、それぞれのFF121及びFF122から各インバータ111から出力された信号の入力を受ける。そして、XOR回路131は、各FF121から入力された信号と対応する各FF122から入力された信号との排他的論理和を算出する。ポピュレーションカウンタ132は、XOR回路131による排他的論理和の結果のうち値が1の数をカウントして遷移段数を算出する。これにより、遷移段数カウント機構103は、サンプリング周期が1周期異なるサンプリング結果の差分から遷移段数を算出する(ステップS2)。
【0064】
差分算出部14の減算回路141は、サンプリング周期毎の遷移段数の入力を参照周波数生成回路11及び比較周波数生成回路12から受ける。そして、減算回路141は、参照周波数生成回路11から入力された遷移段数から比較周波数生成回路12から入力された遷移段数参照周波数生成回路11から入力された遷移段数を減算して、サンプリング周期あたりの遷移段数差を算出する(ステップS3)。
【0065】
差分算出部14のアキュムレータ142は、測定期間における各サンプリング周期あたりの遷移段数差の入力を減算回路141から受ける。そして、アキュムレータ142は、測定期間分の遷移段数差を加算する(ステップS4)。
【0066】
アキュムレータ142は、測定期間分の遷移段数差の加算結果をLDO制御論理回路30へ出力する。LDO制御論理回路30は、測定期間分の遷移段数差の加算結果を用いて成魚論理演算を行ない、PMOSヘッダ40が有する各PMOSトランジスタのオンオフを決定する。そして、LDO制御論理回路30は、決定しオンオフにしたがって各PMOSトランジスタに対して電圧を印加して制御対象回路3へ出力される電圧を制御する(ステップS5)。
【0067】
その後、電圧検知回路10は、システムの電源オフの指示を受けたか否か等に基づいて、動作を停止するか否かを判定する(ステップS6)。動作を停止しない場合(ステップS6:否定)、電圧検知回路10は、ステップS1へ戻る。これに対して、動作を停止する場合(ステップS6:肯定)、電圧検知回路10は、電圧検知処理を終了する。
【0068】
図8は、電圧制御のフローチャートである。
図8に記載したフローにおける各処理は、
図7のステップS5で実行される処理の一例にあたる。次に、
図8を参照して、電圧制御の流れを簡単に説明する。
【0069】
電圧検知回路10は、測定期間分の遷移段数の差分の加算結果をLDO制御論理回路30へ出力する(ステップS11)。
【0070】
LDO制御論理回路30は、測定期間分の遷移段数の差分の加算結果の入力を電圧検知回路10から受ける。次に、LDO制御論理回路30は、レギュレータ制御演算を実施する(ステップS12)。
【0071】
その後、LDO制御論理回路30は、レギュレータ制御演算により求めた調整量となるようにPMOSヘッダ40が有する各PMOSトランジスタのオンオフを決定する。そして、LDO制御論理回路30は、決定にしたがって各PMOSトランジスタに電圧を印加する。PMOSヘッダ40は、LDO制御論理回路30により各PMOSトランジスタのオンオフが制御されることで、出力電圧が変化する(ステップS13)。
【0072】
次に、LDO制御論理回路30によるレギュレータ制御演算及びその演算結果による電圧制御の具体例を説明する。ここでは、差分をそのままオンにするPMOSトランジスタの数に反映させる場合で説明する。ここでは、制御時点でオンであるPMOSトランジスタの数を50とする。
【0073】
例えば、LDO制御論理回路30は、測定期間分の遷移段数の差分の加算結果として10を取得する。この場合、参照周波数生成回路11から入力されたインバータ111の遷移段数の方が多いことから、ターゲット電圧に比べてPMOSヘッダ40からの出力電圧が低いと考えられる。そこで、LDO制御論理回路30は、PMOSヘッダ40からの出力電圧を上げるためにオンにするPMOSトランジスタの数を増やすことを決定する。そして、LDO制御論理回路30は、現在のオンのPMOSトランジスタの数である50に遷移段数の差分の加算結果である10を加えて、オンにするPMOSトランジスタの数を60に変更する。その後、LDO制御論理回路30は、オンにするPMOSトランジスタの数が60となるようにPMOSヘッダ40の各PMOSトランジスタに電圧を印加する。
【0074】
次に、LDO制御論理回路30は、測定期間分の遷移段数の差分の加算結果として5を取得する。この場合も、参照周波数生成回路11から入力されたインバータ111の遷移段数の方が多いことから、ターゲット電圧に比べてPMOSヘッダ40からの出力電圧が低いと考えられる。そこで、LDO制御論理回路30は、PMOSヘッダ40からの出力電圧を上げるためにオンにするPMOSトランジスタの数を増やすことを決定する。そして、LDO制御論理回路30は、現在のオンのPMOSトランジスタの数である60に遷移段数の差分の加算結果である5を加えて、オンにするPMOSトランジスタの数を65に変更する。その後、LDO制御論理回路30は、オンにするPMOSトランジスタの数が65となるようにPMOSヘッダ40の各PMOSトランジスタに電圧を印加する。
【0075】
次に、LDO制御論理回路30は、測定期間分の遷移段数の差分の加算結果として-2を取得する。この場合、比較周波数生成回路12から入力されたインバータ111の遷移段数の方が多いことから、ターゲット電圧に比べてPMOSヘッダ40からの出力電圧が高いと考えられる。そこで、LDO制御論理回路30は、PMOSヘッダ40からの出力電圧を下げるためにオンにするPMOSトランジスタの数を減らすことを決定する。そして、LDO制御論理回路30は、現在のオンのPMOSトランジスタの数である65に遷移段数の差分の加算結果である-2を加えて、オンにするPMOSトランジスタの数を63に変更する。その後、LDO制御論理回路30は、オンにするPMOSトランジスタの数が63となるようにPMOSヘッダ40の各PMOSトランジスタに電圧を印加する。
【0076】
LDO制御論理回路30は、以上のような処理を繰り返して、参照周波数生成回路11の遷移段数と比較周波数生成回路12の遷移段数との差分が0に近づくように制御を継続する。
図9は、実施例に係る電圧検知回路を用いた電圧制御による制御結果の一例を示す図である。
図9を参照して、簡略化したモデルにおける電圧の収束過程を説明する。
【0077】
ここでは、簡略化のため、電圧検知回路10から出力された遷移段数の差分の加算結果を用いた制御及び出力電圧の変化の期間を1回の測定期間と同じ時間として説明する。また、PMOSヘッダ40に対する電圧制御として、一般的なI(Integral)制御が実行される。さらに、通常はLDO制御論理回路30による演算結果に基づいてPMOSヘッダ40を制御することで電圧が変化するが、ここでは、演算結果と出力電圧とが等しいものとした。ここでは、PMOSヘッダ40の出力電圧とターゲット電圧との差分に係数を乗算した値を検知回路の差分とした。
【0078】
図9の横軸は測定期間を表し、縦軸はPMOSヘッダ40の出力電圧を表す。期間303ではターゲット電圧を100Vとし、その後の期間304においてターゲット電圧を80Vとした。
【0079】
期間303ではターゲット電圧が100Vのため、LDO制御論理回路30が電圧制御を繰り返すことで、PMOSヘッダ40の出力電圧は、カーブ301に示すように100Vに近づく。その後、ターゲット電圧が80Vに変化すると、LDO制御論理回路30が電圧制御を繰り返すことで、PMOSヘッダ40の出力電圧は、カーブ302に示すように100Vから80Vへと遷移する。
【0080】
ここで、本実施例に係る電圧検知回路10による電圧の検知精度について電圧検知が無効化される時間が存在する場合と比較して説明する。
図10は、電圧検知が無効化される時間が存在する場合の検知精度の低下を説明するための図である。
図10は、横軸で時間経過を表し、縦軸で電圧を表す。また、
図11は、実施例に係る電圧検知回路によるサンプリングのタイミングを示す図である。
図11のグラフ321はシステムクロックを示し、グラフ322はクロックにしたがったサンプリング周期及びサンプリングで得られるサンプルを示し、グラフ323は、1周期ずれたサンプリング結果の差分を表す。
図11のグラフ321~323は、紙面に向かって右方向に進むにしたがい時間が経過する。
【0081】
例えば、ROSCにおいて測定時の動作の起点となるインバータが決まっている場合や各インバータに対応させてカウンタを配置する場合、ROSCのリセットやカウンタのリセットが行われる。このようなリセット動作が実行される場合、例えば、
図10に示すように測定期間には、測定実施期間311とともに測定実施期間311の前にリセット期間312が含まれる。このリセット間312では電圧検知処理が実行されないため、測定期間で行われた電圧の測定結果に測定誤差313~315が含まれる。
【0082】
これに対して、本実施例に係る電圧検知回路10は、
図11に示すように、グラフ312のシステムクロックにしたがい連続してサンプルを取得する。電圧検知回路10は、測定期間中にサンプルを取得しない期間が存在しない。
【0083】
電圧検知回路10は、サンプル周期毎にグラフ322に示すサンプルTs1~Ts6を取得する。そして、電圧検知回路10は、グラフ323に示す1周期ずれたサンプルの差分を算出する。例えば、電圧検知回路10は、Ts1からTs0を減算して差分324を算出し、Ts2からTs1を減算して差分325を算出し、その後も差分の算出を繰り返す。このように、電圧検知回路10は、測定期間において間断なく連続して差分を算出する事ができる。
【0084】
グラフ323に示した差分から遷移段数が得られるため、電圧検知回路10は、電圧検知を行わない期間が存在しない。したがって、電圧検知回路10は、
図10に示した誤差313~315が発生せず、電圧検知が無効化される時間が存在する場合と比較して、電圧検知の検知精度を向上させることができる。
【0085】
図12は、実施例に係る電圧検知回路を用いた情報処理装置の一例を示す図である。次に、
図12を参照して、電圧検知回路10を用いた情報処理装置の一例について説明する。
【0086】
例えば、電圧検知回路10は、
図12に示す情報処理装置90に用いることが可能である。情報処理装置90は、外部電源2、LSI(Large Scale Integration)チップ91、メモリ92、ハードディスク93及びネットワークインタフェース94を有する。LSI91は、バスによりメモリ92、ハードディスク93及びネットワークインタフェース94と接続される。
【0087】
ネットワークインタフェース94は、情報処理装置90と外部装置との通信インタフェースである。ハードディスク93は、OS(Operating System)等を含む各種プログラムを格納する。
【0088】
LSIチップ91は、複数のレギュレータ1A~1C及びコア3A~3Cを有する。レギュレータ1A~1Cは、それぞれがコア3A~3Cに対応するように配置される。レギュレータ1A~1Cは、それぞれがコア3A~3Cを独立して制御可能である。例えば、レギュレータ1Aがコア3Aへ供給する電圧と、レギュレータ1Bがコア3Bへ供給する電圧と、レギュレータ1Cがコア3Cへ供給する電圧とのそれぞれの電圧値を異ならせることができる。具体的には、レギュレータ1A~1Cのそれぞれのターゲット電圧を異ならせることで、コア3A~3Cのそれぞれへ供給する電圧を異ならせることができる。
【0089】
情報処理装置90の演算能力をフルに使用していない場合、コア3A~3Cの一部の処理を軽減して省電力が実現できる。例えば、コア3B~3Cでは演算能力をフルに使用して、コア3Aは周波数を下げて演算能力を抑えることができる。周波数を下げて演算能力を抑えた場合、動作電圧を低くすることができる。例えば、レギュレータ1Aのターゲット電圧を低くしてコア3Aの動作電圧を下げて低速で動かし、レギュレータ1B~1Cのターゲット電圧は維持してコア3B~3Cの動作電圧はそのままで通常動作させることができる。
【0090】
逆に一部の動作電圧を上げて演算能力を上げることもできる。例えば、レギュレータ1Aのターゲット電圧を高くしてコア3Aの動作電圧を上げて高速で動かし、レギュレータ1B~1Cのターゲット電圧は維持してコア3B~3Cの動作電圧はそのままで通常動作させることができる。
【0091】
コア3A~3Cの動作電圧を個別に制御しない場合には全てのコアが同じ電圧で動作することになり無駄な電圧消費が発生する。これに対して、本実施例に係る電圧検知回路10を搭載したレギュレータ1A~1Cを用いてコア3A~3Cの動作電圧を独立して制御することで、一部の電圧を抑える事ができ、省電力化を実現することが可能となる。
【0092】
以上に説明したように、本実施例に係る電圧検知回路は、ROSCの各インバータの状態を定期的にサンプリングし、1サイクル周期ずれたサンプリング結果を比較して各ノードの遷移回数をカウントする。そして、遷移回数を用いてターゲット電圧と制御対象回路への出力電圧とを比較して電圧検知を行う。
【0093】
本実施例に係る電圧検知回路は、リセット等を行わないため電圧検知できない期間を発生させずに電圧検知を継続して行うことができ、電圧検知の検知誤差を抑制することが可能となる。また、ROSC毎にカウンタを搭載しなくてもよいため実装面積を抑えることが可能となる。