(57)【特許請求の範囲】
【請求項１】
中央処理装置と、
電源と、
該電源から電流が供給される電源供給先と、
前記中央処理装置から前記電源供給先に周期的にアクセスさせることにより、前記電源から前記電源供給先に対して周期的にオンとオフを繰り返す周期的電流を供給する手段と、
前記周期的電流が供給されている期間、前記電源の出力電圧が所定閾値を超えたか否かを判定し、前記出力電圧が前記閾値を超えていると判定された場合に前記電源を不良と判定する手段とを備えることを特徴とする、電源の障害検出装置。
【請求項２】
コンピュータに、電源から電源供給先に周期的にオンとオフを繰り返す周期的電流を供給する手順と、
前記周期的電流を供給している期間の前記電源の出力電圧が、所定の閾値を超えているか否かを判定する手順と、
前記電源の出力電圧が所定閾値を超えた場合に前記電源を不良と判定する手順とを実行させる、電源の障害検出プログラム。
【請求項３】
電源から電源供給先に、周期的にオンとオフを繰り返す周期的電流を供給し、
前記周期的電流を供給している期間、前記電源の出力電圧が所定閾値を超えたか否かを判定し、
前記電源の出力電圧が所定閾値を超えた場合に前記電源を不良と判定する、電源の障害検出方法。
【請求項４】
前記周期的電流の周期幅を変化させて、前記電源の出力インピーダンスの全状態を網羅する、請求項３に記載の障害検出方法。
【請求項５】
前記電源は複数の電源部を含み、前記電源供給先は複数のアドレスによりそれぞれ特定される複数の電力受け部を含み、前記電源供給先のアドレスを特定して該特定されたアドレスに対応する電力受け部に前記周期的電流のオン期間の電流を供給することにより前記電力受け部毎に対応する電源部の障害を検出する、請求項３又は４に記載の障害検出方法。
【請求項６】
中央処理装置と、
電源と、
前記電源から電流が供給される電源供給先と、
前記中央処理装置に、前記電源供給先を周期的にサクセスさせる手段と、
前記電源供給先に対する周期的アクセスの結果で発生する前記電源の出力電圧が所定閾値を超えたか否かを判定し、前記出力電圧が前記所定閾値を超えたと判定した場合に前記電源を不良と判定する手段とを備えることを特徴とする、電源の障害検出装置。
【請求項７】
前記中央処理装置はキャッシュメモリを備え、
前記電源供給先はコンピュータシステム内のメモリであり、
前記アクセスさせる手段は、前記中央処理装置に、前記メモリへのアクセスと、前記キャッシュメモリへのアクセスとを交互に行わせることを特徴とする、請求項６に記載の電源の障害検出装置。
【請求項８】
前記アクセスさせる手段は、前記中央処理装置が前記メモリにアクセスする時間、あるいは前記中央処理装置が前記キャッシュメモリにアクセスする時間の少なくとも一方を変えることを特徴とする、請求項７に記載の電源の障害検出装置。
【請求項９】
中央処理装置と、電源と、前記電源から電流が供給される電源供給先とを有するコンピュータに、
前記中央処理装置から前記電源供給先に周期的にアクセスさせる手順と、
前記電源供給先への周期的アクセスが行われている期間に、前記電源の出力電圧が所定の閾値を超えたか否かを判定する手順と、
前記出力電圧が前記所定閾値を超えたと判定した場合に、前記電源を不良と判定する手順とを実行させる、電源の障害検出プログラム。
【請求項１０】
前記電源供給先は複数のアドレスによりそれぞれ特定される複数の電力受け部を含むものであり、
前記障害検出プログラムは、
前記電源供給先のアドレスを特定する手段と、
特定されたアドレスに対応する電力受け部に対して前記中央処理装置からアクセスさせる手順と、
電力受け部毎に、電源からの出力電力と前記所定閾値とを対比し、対応する電源部の障害を検出する手順とをコンピュータに実行させる、請求項９に記載の障害検出プログラム。
【請求項１１】
前記電源供給先は、コンピュータシステム内のメモリであり、
前記障害検出プログラムは、
キャッシュメモリを備えた中央処理装置に、前記メモリへのアクセスと、前記キャッシュメモリへのアクセスとを交互に実行させる手順と、
前記メモリへのアクセスと前記キャッシュメモリへのアクセスとを交互に行っている際の前記電源の出力電圧を、前記所定の閾値と比較する手順とをコンピュータに実行させることを特徴とする、請求項９又は１０に記載の障害検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電源の障害検出装置、プログラム及び方法に関し、特に、コンピュータ・システムの電源の電圧負荷変動に起因する電源供給元（ＤＣ／ＤＣコンバータ、以下ＤＤＣと呼ぶ）の回路障害を検出する障害検出装置、プログラム及び方法に関する。
【背景技術】
【０００２】
従来のコンピュータ・システムのハードウェアの実装では、ＤＤＣはメモリからかなりの距離を置いて実装されていたので、ＤＤＣからメモリに電流を供給することによるＤＤＣの負荷の変動に起因する出力電圧の変動を抑制するために、ＤＤＣとメモリとの間の経路にコンデンサを配置する等していた。したがって、ＤＤＣからメモリに電流を供給してもＤＤＣの出力電圧が変動することはなかった。
【０００３】
【特許文献１】特開昭６０−６５３１１号公報
【特許文献２】特開平５−４９１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、近年、コンピュータ・システムのハードウェアは高密度実装となり、この結果メモリから近距離にＤＤＣが実装されるようになり、メモリとＤＤＣとの間にコンデンサを実装する余裕がなくなってきた。このため、ＤＤＣからメモリに電流を供給すると、ＤＤＣの負荷の変動により出力電圧が変動してしまうようになってきた。ＤＤＣの負荷の変動により、所定閾値を超える出力電圧の変動がある場合は、そのＤＤＣは不良品なので出荷できない。
【０００５】
本発明の目的は、上記従来技術における課題に鑑み、電源供給先に電流を周期的に供給することによる電源の出力電圧の変動（電圧負荷変動）が所定閾値を越えた場合にその電源を不良と判定する、電源の障害検出装置、電源の障害を検出するプログラム、及び電源の障害を検出する方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の第１の態様により、中央処理装置と、電源と、その電源から電流を供給される電源供給先と、中央処理装置から電源供給先に周期的にアクセスさせることにより電源から電源供給先に周期的にオンとオフを繰り返す周期的電流を供給する手段と、電源の出力電圧が所定閾値を超えた場合に電源を不良と判定するする手段とを備えることを特徴とする、電源の障害検出装置、方法、及びプログラムが提供される。
【０００７】
本発明の第２の態様により、第１の態様において、周期的電流の周期幅を変化させて、電源の出力インピーダンスの全状態を網羅する。
【０００８】
本発明の第３の態様により、第１の態様において、電源は複数の電源部を含み、電源供給先は複数のアドレスによりそれぞれ特定される複数の電力受け部を含み、電源供給先のアドレスを特定してその特定されたアドレスに対応する電力受け部に周期的電流のオン期間の電流を供給することにより電力受け部毎に対応する電源部の障害を検出する。
【０００９】
本発明の第４の態様により、第１の態様において、電源は単一の電源部を含み、電源供給先は複数のアドレスにより特定される複数の電力受け部を含み、電源供給先のアドレスを順次特定してその特定されたアドレスに対応する電力受け部に周期的電流のオン期間の電流を供給することにより電源の障害を検出する。
【００１０】
本発明の第５の態様により、第１の態様において、電源は単一の電源部を含み、電源供給先は複数のアドレスにより特定される複数の電力受け部を含み、電源供給先のアドレスを同時に特定してその特定されたアドレスに対応する電力受け部に周期的電流のオン期間の電流を供給することにより電源の障害を検出する。
【００１１】
本発明の第６の態様により、第１の態様において、電源は隣接する複数の電源を含み、電源供給先は複数のメモリを含み、電源供給先は複数の電源から出力される周期的電流のオン期間の電流を同期させて複数のメモリに同時に供給することにより、電源の障害を検出する。
【００１２】
本発明の第７の態様により、第１の態様において、電源供給先はコンピュータ・システム内のメモリであり、キャッシュメモリを備えた中央処理装置からメモリに周期的にアクセスして、電源からメモリに周期的電流のオン期間の電流を供給し、周期的電流のオフ期間にはキャッシュメモリにアクセスして情報を読み書きする。
【発明の効果】
【００１３】
本発明の第１の態様によれば、電源の負荷を意図的に変化させることにより、電源の出力電圧を変化させて、その出力電圧が所定閾値を超えた場合に、その電源を不良品と判定することができるので、不良電源を早期に検出可能となり、高密度実装のコンピュータ・システムにおいても電源の品質確保を実現することができる。
【００１４】
本発明の第２の態様によれば、電源の出力インピーダンスの全状態に対して電源試験をすることが可能となるので、どの時点で突発性の負荷容量が発生しても、その状態を捕らえることが出来、その状態が原因で発生する電源の障害を検出することが可能になる。
【００１５】
本発明の第３の態様によれば、複数の電力受け部の中の特定された電力受け部に対応する電源部の障害を検出できる。
【００１６】
本発明の第４の態様によれば、複数の電力受け部に順次周期的電流を供給することにより、電源の出力電圧には負荷変動の加算された結果が得られるので、電源の障害を一層確実に検出できる。
【００１７】
本発明の第６の態様によれば、隣接する複数の電源同士が共振し合い、同じ方向に出力電圧が変化するので、さらなる電圧負荷変動が電源の出力に得られ、一層確実に電源の障害を検出できる。
【００１８】
本発明の第７の態様によれば、メモリに電源から周期的電流を供給することにより、コンピュータ・システムにおける電源の障害を検出可能になる。
【発明を実施するための最良の形態】
【００１９】
以下に図面に沿って本発明の実施の形態を詳述する。
図１は本発明に用いられる電源供給元の一例としてのコンピュータ・システムにおけるＤＣ／ＤＣコンバータ（以下、ＤＤＣと呼ぶ）とこれに接続されている電源供給先の一例であるコンピュータ・システムにおけるメモリ（Ｄｉｍｍ：  Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）を示す回路図である。同図において、ＤＤＣ１には複数の電源供給部１１、１２、１３、…が含まれており、各電源供給部の出力には出力電圧安定化のための負荷コンデンサ１４が接続されている。電源供給部１１、１２、１３、…の各々はメモリ１５、１６、１７、…に接続されている。
【００２０】
負荷コンデンサ１４は電源供給先での電圧変動を緩和し、出力電圧を一定範囲内に抑える機能を持っている。つまり、メモリ１５内の抵抗値をＲとすると電源供給部１１からメモリ１５に電流が供給されると、オームの法則（Ｖ＝ＩＲ）により供給電圧は増加してしまう。この増加を抑えるために、電源供給部１１の出力に負荷コンデンサ１４が接続されており、この負荷コンデンサ１４と電源供給部１１の内部抵抗Ｒとで形成される出力インピーダンスを調節して、出力電圧を一定に保っている。
【００２１】
負荷コンデンサＣと内部抵抗Ｒと出力インピーダンスＺとの関係は周知にように、次のとおりである。
【００２２】
【数１】
0004619961.tif 000002
【００２３】
図２は、電源供給部１１の電流周波数と出力インピーダンスの関係を表すグラフ図である。出力インピーダンスが低いほど出力電圧は一定に保たれる。図示のように、電流周波数が低い部分から、負荷コンデンサのインピーダンスと内部抵抗のインピーダンスが交わる点までは、内部抵抗Ｒにより出力電圧がほぼ一定に保たれ、負荷コンデンサのインピーダンスと内部抵抗のインピーダンスが交わる点から電流周波数が高い部分は負荷コンデンサＣにより出力電圧がほぼ一定に保たれている。負荷コンデンサのインピーダンスと内部抵抗のインピーダンスが交わる点の前後の周波数Ｆ1とＦ2の間は電圧不安定範囲である。この電圧不安定範囲では、特に、電圧負荷変動に対するコンデンサの追従が不安定になり、電圧を一定に保てなくなる可能性がある。
【００２４】
図３の（ａ）は負荷コンデンサが正常に動作している場合のＤＤＣの出力電圧の波形を示し、図３の（ｂ）は負荷コンデンサが負荷変動に追随していない異常ケースのＤＤＣの出力電圧の波形を示すグラフ図である。図３の（ａ）のように正常な場合には負荷コンデンサ１４は適切に充放電を繰り返して、ＤＤＣの出力電圧が基準電圧を大幅に超えることはない。しかし、図３の（ｂ）に示すように、異常な場合には、負荷コンデンサの放電が十分に行われる前に充電が繰り返される結果、ＤＤＣの出力電圧が次第に基準電圧を超えてしまう。この異常の充放電の原因としては、コンデンサの容量不足や不良や負荷の大き過ぎが考えられる。そこで、本発明により、この交点付近の状態を網羅的に実現させ、最大限の電圧負荷変動量を作り出す事により、不良ＤＤＣを早期検出し、品質確保を実現する。
【実施例１】
【００２５】
図４は本発明の実施例１による電源の障害検出装置の概要を示すブロック図である。同図において、この障害検出装置は、一例として、３個の中央処理装置ＣＰＵ０、ＣＰＵ１，ＣＰＵ２と、電源供給先である３個のメモリ４３０，４３１，４３２と、電源であるＤＤＣ４４と、判定手段４５とを備えている、３個のＣＰＵ０、ＣＰＵ１、ＣＰＵ２のそれぞれは、タスクとしてのプログラム４００、４０１、４０２と、キャッシュメモリ４１０、４１１、４１２とを備えている。
【００２６】
例えばプログラム４００がＣＰＵ０からメモリ４３０に周期的にアクセスさせることによりＤＤＣ４４内の周期的電流供給手段４４１からメモリ４３０に周期的にオンとオフを繰り返す周期的電流が供給される。周期的電流のオン期間にはメモリ４３０に電流が供給され、オフ期間にはキャッシュメモリ４１０がアクセスされる。メモリ４３０に電流が供給されると負荷変動電圧の充放電が繰り返される。キャッシュメモリ４１０がアクセスされている期間はＤＤＣ４４からは電流の供給はない。判定手段４５の負荷変動電圧が所定閾値を超えると、ＤＤＣ４４の異常と判定する。
【００２７】
図５はＤＤＣ４４の出力である負荷変動電圧を示す波形図である。図５のように、負荷変動電圧が所定閾値ＴＨの範囲内にあれば、ＤＤＣは異常ではないと判定される。
【００２８】
図６は実施例１の具体例を示す電源の障害検出装置内のコンピュータ・システムの概略構成図である。同図において、６０〜６３はそれぞれキャッシュメモリ６０１、６０２、６０２、６０３、６０４を備えたＣＰＵ、６４はシステムコントローラ、６５はメモリである。メモリ６５にはスロット６５０〜６５３が含まれており、それぞれのスロットに電源ＤＤＣ０、ＤＤＣ１，ＤＤＣ２，ＤＤＣ３から周期的電流が供給される。キャッシュメモリは例えば１Ｍバイトの容量であり、上段と下断の２段構成（２ｗａｙ）となっていて１ｗａｙが５１２ＫＢである。１スロットは図示例では８個のＤｉｍｍからなっている。１個のＤｉｍｍの容量は例えば１ＧＢであり、８個のスロット全体で３２ＧＢとなる。図６の例はＤｉｍｍと呼ばれるメモリを３２枚実装している（１Ｄｉｍｍ＝１ＧＢの素子であればメモリ容量は３２ＧＢとなる）。
【００２９】
このメモリをアクセスすると読み取りデータがシステムコントローラ・バスを経由してＣＰＵに送られるが、データ処理を高速化するため、通常ＣＰＵ内部にキャッシュと呼ばれる数メガバイトのキャッシュが存在する。このキャッシュにデータが蓄えられ、ＣＰＵ内部のレジスタとデータのやり取りが行われる。このメモリとキャッシュの関係は、キャッシュにデータがない場合はメモリからアクセスされ、キャッシュにデータが存在する場合はキャッシュからデータがアクセスされる。なお、キャッシュがフル状態で新たにデータがメモリからアクセスされた場合は古いデータがメモリに書き戻され、キャッシュのその場所に新データが上書きされる。ＣＰＵキャッシュから追出されるデータとメモリ上のデータが一致している場合は、メモリに戻されずに破棄される。
【００３０】
本発明ではこの、メモリからアクセスするケース（電流オン状態）とＣＰＵキャッシュからアクセスするケース（電流オフ状態）をプログラムにて使い分けることで、電流に周期を持たせている。また、アクセスするメモリアドレスを調整することで、対象とするＤＤＣを切り分けている。
【００３１】
図７Ａは図６に示したコンピュータ・システムの動作を説明するフローチャートである。同図において、ステップ７１にて試験対象メモリ域を選択し、ステップ７２にて試験対象メモリに対応するキャッシュメモリの初期化を行い、ステップ７３にてメモリからのロードを行う。即ち、図７Ｂに示す周期的電流のオン期間の電流をメモリに供給する。次いでステップ７４で所定期間のタイムアウトかを判定し、否であればステップ７２に戻る。ステップ７４の判定でタイムアウトであればステップ７５に進み、キャッシュメモリからデータのロードをする。即ち、周期的電流をオフ期間にする。次いでステップ７６で所定期間のタイムアウトかを判定し、否であればステップ７２に戻る。ステップ７６の判定でタイムアウトであればステップ７７にて所定ループ回数が達成されたかを判定し、否であればステップ７２に戻り、イエスであれば処理を終了する。この実施例１では周期的電流のオン期間は一定である。例えば、５０ＫＨｚの電流周期を作り出すには４０μｓ毎にメモリアクセスとＣＰＵキャッシュアクセスを繰り返す事で実現できる。同様に、１００ＫＨｚの場合は２０μｓ毎となる。
【実施例２】
【００３２】
図８は本発明の実施例２による電源の障害検出装置の概要を示すブロック図である。同図において、図４に示した実施例１の装置との相違点は、実施例１で述べた電流周期の幅をタイマを使用し、メモリにアクセスしている時間（電流オン状態）とＣＰＵキャッシュにアクセスしている時間（電流オフ状態）を少しづつ伸ばしていくことにより周期幅を自由に調整する事である。
【００３３】
この動作を実現する事により、  図１に示した負荷コンデンサと出力インピーダンスのグラフの全状態を網羅する事が出来る。即ち、電流の周期が長いとグラフの左側に位置し、電流の周期が短くなるにつれてグラフの右へとシフトしていく。
【００３４】
これにより、どの時点で突発性の負荷変動が発生しても、その状態を捕らえることが出来、その状態が原因で発生する障害を検出することが可能となる。
【００３５】
図９Ａは図８に示した障害検出装置の動作を説明するフローチャートである。同図において、ステップ９１からステップ９８までは、ステップ９２のタイマの初期化のステップを除き図７のステップ７１から７７と同じであり、図９ではさらに、ステップ９８〜１００が追加されている。
【００３６】
本実施例２では、ＤＤＣ４５から供給される電流に周期性（波形）を持たせるだけではなくて、図９Ｂに示すように、周期性に時間の要素を取り入れ、メモリからデータをアクセスしている時間（電流オン）とＣＰＵキャッシュからデータをアクセスしている時間（電流オフ）を少しづつ伸ばしていく事により、電流周期幅はそのアクセス時間に連動し変化していく。
【００３７】
例えば、電流周波数を５００Ｋｚから５０Ｋｚまで１Ｋｚ置きに変化させ、１回の周期で１０００回繰り返す場合は、初期値のタイマを１μｓ、タイマの増加を０．１μｓ、ループ回数を１０００回に設定して図９に示すフローを実行すれば良い。
【００３８】
これにより、ＤＤＣからの出力電圧が所定閾値を超えた場合はそのＤＤＣに障害があるということが実施例１の場よりも一層確実に判定できる。
【００３９】
次に、実施例１及び２において、同一メモリアクセスでメモリからのアクセスとキャッシュからのアクセスを切り分ける方法を説明する。
【００４０】
図１０は、同一アドレスのアクセスでメモリロードとキャッシュロードを切り分ける方法を示した概念図である。以下にプログラム動作を図６に示したシステム構成のうちの一つのスロットと一つのキャッシュを例にして説明する。
【００４１】
（Ａ）キャッシュが初期化されている状態（Ａ）で、試験対象メモリのアドレス（ａ）と２５６バイト離れている各アドレス（ｂ），（ｃ）からデータをロードすると、各アドレス（ａ），（ｂ），（ｃ）からのデータはメモリからキャッシュに格納された後に、レジスタにロードされる。
【００４２】
（Ｂ）次にキャッシュのＷａｙサイズ分離れたアドレス（ｄ），（ｅ），（ｆ）からデータをロードすると（状態Ｂ）、アドレス（ａ），（ｂ），（ｃ）に格納されているデータのキャッシュＷａｙとは別のＷａｙにアドレス（ｄ），（ｅ），（ｆ）からデータが格納され、レジスタにロードされる。
【００４３】
（Ｃ）同様にＷａｙサイズ分離れたアドレス（ｇ），（ｈ），（ｉ）からデータをロードすると（状態Ｃ）、キャッシュに格納されている一番古いデータが格納されているアドレス（ａ），（ｂ），（ｃ）の位置にアドレス（ｇ），（ｈ），（ｉ）からのデータが上書きされ、その後レジスタにロードされる。
【００４４】
これ以降、状態（Ａ），（Ｂ），（Ｃ）を繰り返す事により、常時メモリからデータがロードされる。
また、たとえば、（Ａ）の状態が終了した時点で、アドレス（ａ），（ｂ），（ｃ）からのデータのみを繰り返しロードすると、常にキャッシュからレジスタにデータはロードされる。つまり、この状態はメモリからのデータアクセスが無い事を意味しており、ＤＤＣからも電流の供給がない事を意味する。
【実施例３】
【００４５】
図１１は本発明の実施例３により、プログラムでＤＤＣを特定するためのメモリアドレスとＤＤＣの位置関係を表す図である。
この図ではアドレスのビット０−５の６４バイトがデータの転送単位を表しており、その上位の２ビットでＤＤＣの位置を表している。つまり、アクセスするアドレスのビット６と７を常に固定にすることにより、特定ＤＤＣから電源を供給することが可能となる。装置によっては、ＤＤＣとメモリアドレスの対応関係が上記のように上位の２ビットで決定できない場合もあるが、基本的にはメモリアドレスによりＤＤＣの位置は特定可能である。
図１２は本発明の実施例３の具体例を示すコンピュータ・システムの概略構成図である。同図において、図６に示したコンピュータ・システムと同一のものが同一の参照番号で示されている。
【００４６】
図１３は図１２に示したコンピュータ・システムにおけるＤＤＣの障害検出動作を説明するフローチャートである。例えば、ＤＤＣ０を試験対象とするために、メモリアドレスのビット６，７を００に固定する。他のＤＤＣ１、ＤＤＣ２、ＤＤＣ３を試験する場合はメモリアドレスのビット６，７をそれぞれ０１、１０、１１に固定する。
【００４７】
試験の範囲を、例えば、０番地から１Ｇバイトとして、ステップ１３１にて先頭アドレス０（仮に（ａ）と定義する）に設定する。
次いでステップ１３２にてメモリ中の（ａ）のアドレスをアクセスしてそこにＤＤＣ０から電流を供給する。
次いでステップ１３３にてアドレスに２５６を加算することによりアドレスを更新する。
障害検出範囲の１ＧＢになるまで、ステップ１３２と１３３を繰り返す。
これにより、メモリの全面に対して電流を供給してＤＤＣの障害検出をすることができるので、メモリ上の偏った場所でＤＤＣの障害検出を行うことを避けることができる。
【実施例４】
【００４８】
図１４は本発明の実施例４による電源の障害検出装置の概要を示すブロック図である。同図において、図４に示した実施例１の障害検出装置との相違点は、本実施例４においては、ＤＤＣ４４により順次アクセスするメモリ域を拡大し、ＤＤＣ４４から供給される電流量を増加させる事により、電圧負荷変動を増加させてＤＤＣ障害を迅速且つ確実に検出可能にしたことである。
【００４９】
動作において、プログラム４００からメモリに対してアクセスを実施することＤＤＣ４４からはメモリに微量の電流が流れ、この電流に連動してＤＤＣ４４の出力電圧に微量の電圧変動が発生する。同様に複数のメモリに対して順にアクセスを実施すると、それぞれのメモリに微量電流が流れるので、加算された電圧変動がＤＤＣ４４の出力に発生する。この加算された電圧変動が所定閾値を超えるとＤＤＣ４４に障害があるということが迅速且つ確実に判定される。
【００５０】
図１５は実施例４の具体例を示すコンピュータ・システムの概略構成図である。同図において、１５１は、キャッシュメモリ１５２を内蔵したＣＰＵ１５３により実行されるタスクであり、１５４〜１５７はそれぞれ試験メモリであり、１５８は電源（ＤＤＣ−０）である。
【００５１】
このように、本実施例４では、１個のＣＰＵに割り付けたタスク１５１が複数の試験メモリ１５４〜１５７を獲得し、それぞれのメモリで同一ＤＤＣに負荷集中させることにより、ＤＤＣ−０の出力における電圧負荷変動を加速させる動作となるので、ＤＤＣの障害を一層迅速且つ確実に検出することができる。
【００５２】
図１６は図１５に示したコンピュータ・システムにおける電源障害検出動作を説明するフローチャートである。同図において、ステップ１６１から１６４で順番に試験メモリ１（１５４）から試験メモリ４（１５７）を順番にアクセスしてメモリ内容をロードする。試験メモリのアクセス間隔は図１１に示した場合と同様に例えば２５６バイトである。この試験メモリの順次アクセスを所定時間の間繰り返す。ステップ１６５にて所定時間が経過したと判定されると、ステップ１６６にて別の所定時間の間キャッシュメモリ１５２からのロードを行う。そして、ステップ１６１からステップ１６７までの動作を所定のループ回数だけ行う。ステップ１６８にて所定ループ回数を超えると処理は終了する。
【実施例５】
【００５３】
図１７は本発明の実施例５によるコンピュータ・システムの概略構成を示すブロック図である。同図において、図４に示した実施例１の障害検出装置との相違点は、実施例１では単一のＣＰＵからのメモリアクセスであったのに対し、本実施例５では、複数のＣＰＵ４００ａ、４００ｂ、４００ｃから複数のメモリ４３０、４３１、４３２に同時にアクセスすることである。これにより、図の下側に示すようにＤＤＣの出力に急激な電圧負荷変動を発生させ、それによりＤＤＣの障害を一層迅速且つ確実に検出できる。
【００５４】
このように、本実施例５では、複数のメモリへのアクセスを複数のＣＰＵに分担させ、複数のＣＰＵのアクセス時間の同期後同時にアクセスを行う事によりＤＤＣからの電流供給を短時間に集中でき、短時間に電流を増大させることができる。この短時間の電流の増大により、急激な電圧の負荷変動を与える事が可能になり、それによりＤＤＣの障害を一層迅速且つ確実に検出できる。
【００５５】
図１８は実施例５の具体例を示すコンピュータ・システムの概略構成図である。同図において、１８１ａ〜１８１ｄはそれぞれ、キャッシュメモリ１８２ａ〜１８２ｄを内蔵したＣＰＵ１８３ａ〜１８３ｄにより実行されるタスクであり、１８４ａ〜１８４ｄはそれぞれ試験メモリであり、１８５は電源（ＤＤＣ−０）である。各ＣＰＵにタスクを設け、それぞれのキャッシュメモリにはＷａｙ数＋１の容量を確保する。
【００５６】
本実施例５では、複数のＣＰＵから同時に複数のメモリをアクセスし、ＤＤＣから供給する電流を短時間に増加させる事で、急激な電圧負荷変動をＤＤＣの出力に発生させ、それによりＤＤＣの障害を一層迅速且つ確実に検出することを可能にする。
【００５７】
実施例４では１個のＣＰＵから４個の試験メモリをアクセスして電圧負荷変動を求めたが、本実施例５ではこの４個の試験メモリを４個のＣＰＵで分担してアクセスする事により、４倍の動作が一度にできるので、短時間で電流を増加させ、急激な負荷変動電圧を発生させることができる。この結果、ＤＤＣの障害を一層迅速且つ確実に検出することができる。
【００５８】
図１９は図１８に示したコンピュータ・システムにおける電源障害検出動作を説明するフローチャートである。同図において、ステップ１９１でＣＰＵ０〜ＣＰＵ３のメモリロード動作の同期を取り、ステップ１９２でＣＰＵ０〜ＣＰＵ３は同時に試験メモリ１（１８４ａ）から試験メモリ４（１８４ｄ）をアクセスしてメモリ内容をロードする。ステップ１９３で所定時間が経過するまで、ステップ１９２を繰り返す。ステップ１９３で所定時間が経過すると、ステップ１９４にてキャッシュメモリからのロードを行い、ステップ１９５にて別の所定時間が経過するまで、ステップ１９４を繰り返す。ステップ１９５で所定時間が経過すると、ステップ１９２からステップ１９５までの動作を所定のループ回数だけ行う。ステップ１９６にて所定ループ回数を超えると処理は終了する。
【実施例６】
【００５９】
図２０は本発明の実施例６によるコンピュータ・システムの概略構成を示すブロック図である。同図において、図４に示した実施例１の障害検出装置との相違点は、実施例１では単一のＤＤＣが存在していたのに対し、本実施例６では、複数の隣接するＤＤＣ４４及び２０１が存在することである。このように隣接しあう複数のＤＤＣから供給される電流の周期を同期させる事により、図示のようにＤＤＣの出力に急激な電圧負荷変動を発生させ、それによりＤＤＣの障害を一層迅速且つ確実に検出できる。
【００６０】
本実施例６では、実施例３に記載のようにして複数のＤＤＣのアドレスを特定し、隣接する複数のＤＤＣで同時に実施例１〜５に記載の動作を実行させることにより、ＤＤＣ同士が共振し合って、ＤＤＣの出力電圧は、同じ方向に変化し、さらなる電圧負荷変動が発生するので、ＤＤＣの障害を一層迅速且つ確実に検出できる。
【００６１】
すなわち、メモリへのアクセスを複数のＣＰＵに分担させ、複数のＣＰＵのアクセス時間の同期後同時にメモリに対してアクセスを行う事によりＤＤＣからの電流供給を短時間に集中でき、短時間に電流を増大させることができる。この短時間の電流の増大により、急激な電圧の負荷変動を与える事が可能になり、それによりＤＤＣの障害を一層迅速且つ確実に検出できる。
【００６２】
図２１は実施例６の具体例を示すコンピュータ・システムの概略構成図である。同図において、２１０はレジスタ、２１１はキャッシュメモリ、２１２はメモリ、２３ａ、２３ｂ、２３ｃ、２３ｄは複数の電源（ＤＤＣ）である。レジスタ２１０及びキャッシュメモリ２１１は図示しないＣＰＵに含まれている。
【００６３】
図２２は図２１に示したコンピュータ・システムにおける電源障害検出動作を説明するフローチャートである。同図において、ステップ２２１から２２４でほぼ同時にＤＤＣ０（２３ａ）からＤＤＣ３（２３ｄ）が対応するメモリ域に電流を供給することによりＣＰＵはそのメモリ領域からのデータをロードする。例えば、ステップ２２１でＤＤＣ０（２３ａ）はメモリ２１２の領域ａに電流を供給し、ステップ２２２でＤＤＣ１（２３ｂ）はメモリ２１２の対応する領域ｂに電流を供給し、ステップ２２３でＤＤＣ２（２３ｃ）はメモリ２１２の対応する領域ｃに電流を供給し、ステップ２２４でＤＤＣ３（２３ｄ）はメモリ２１２の領域ｄに電流を供給する。次いでステップ２２５で所定時間が経過したかを判定し、所定時間内であればステップ２２１から２２４を繰り返す。この繰り返し動作により、メモリ２１２の状態が（Ａ）、（Ｂ）、（Ｃ）…というように変化していく。状態（Ａ）ではメモリ２１２の内容のａ，ｂ，ｃ，ｄがキャッシュメモリ２１１の下段にコピーされる。状態（Ｂ）ではメモリ２１２の２段目の内容ｅ，ｆ，ｇ，ｈがキャッシュメモリ２１１の上段にコピーされる。状態（Ｃ）ではキャッシュメモリ２１１の下段のデータａ，ｂ，ｃ，ｄが吐き出されて、その替わりにメモリ２１２の３段目の内容ｉ，ｊ，ｋ，ｌがキャッシュメモリ２１１の下段にコピーされる。このようにして、複数のＤＤＣからほぼ同時にメモリの隣接領域に電流ガ供給されることにより、電磁現象で隣接するＤＤＣの出力電圧に互いに影響を与える。これにより、各ＤＤＣの出力電圧が上昇し、所定閾値を超えると、そのＤＤＣは不良と判定される。
【００６４】
ステップ２２６ではＣＰＵはキャッシュメモリにアクセスしてデータをロードし、ステップ２２７で別の所定時間が経過したかを判定し、その経過時間内であればステップ２２６を繰り返す。その経過時間が過ぎるとステップ２２８にて所定のループ回数に達していなければステップ２２１から２２７を繰り返す。ステップ２２８にて所定ループ回数を超えると処理は終了する。
【実施例７】
【００６５】
図２３Ａは本発明の実施例７による、実施例１から６までを包含したプログラムを示すフローチャートである。
同図において、ステップ２３１にて、試験システムで実装されている全ＣＰＵを試験対象とし、ＣＰＵ毎にタスクを設ける、各タスクは試験対象となるＤＤＣを選択しそのＤＤＣから電源供給を受けるメモリ（範囲）を獲得する。この場合、次の２つのケースがある。
例１：タスク毎に試験対象ＤＤＣを分けるケース。
例２：全てのタスクがＤＤＣ０からＤＤＣ３までをサポートするケース。
次に、ステップ２３２にて、電流周波数の周期が最短になるような、タイマの初期値を設定する。
次に、ステップ２３３にて全タスク（ＣＰＵ）で同期をとる。
各タスクはステップ２３４にてキャッシュ初期化後、ステップ２３５及び２３６にて、試験対象メモリに対し図２３Ｂに示すようなメモリアクセス（電流オン）をタイムアウトになるまで繰り返す。この場合、常にメモリからアクセスさせるように、キャッシュメモリからの追い出し手順を実施する。タイムアウトになるまで、ループ回数分同一周期を繰り返す。
タイムアウト後、各タスクは、ステップ２３７及び２３８にて、試験対象メモリに対しキャッシュアクセス（電流オフ）をタイムアウトになるまで繰り返す。
この場合、アドレスはキャッシュに乗っている物を使い、アドレスの更新は行わない。
ステップ２３９にて一定ループ回数になるまで、ステップ２３４から２３９を繰り返す。同一周期幅の周期回数をここで作る。
次いで、ステップ２４０にてタイマ値を更新する。これにより図２３Ｂに示すように電流のオン期間の周期幅を広げる
次いで、ステップ２４１で最終周期幅になるまでステップ２３４から２４０を繰り返し実施する。これにより、周期幅が徐々に広がり、メモリの全帯域にわたりＤＤＣの試験を実現することができる。
【００６６】
図２４は本発明の実施可能性について説明する図である。上述の各実施例で説明したように、本発明ではＣＰＵ上のキャッシュメモリとＣＰＵの外のメモリを使用してメモリに電源を供給しているＤＤＣの電圧に負荷変動を与えるようにしている。ここで問題になるのは、プログラムもＣＰＵ内のキャッシュメモリ上で動作するため、プログラムで使用するＣＰＵキャッシュメモリを試験対象として使用すると、キャッシュメモリからのデータの追い出し論理が崩れてしまい、正しい動作が保証できなくなる。この問題を解決するために、プログラムで使用するＣＰＵキャッシュラインは試験対象から外すこととした。これにより、プログラムは一旦メモリからＣＰＵキャッシュ上に読み込まれると、以降、ＣＰＵキャッシュ上だけで動作するため、試験に影響を与えることがなくなる。同様に複数ＣＰＵで同期をとるために必要なテーブルが使うＣＰＵキャッシュラインも試験対象から外す。これにより、複数ＣＰＵによる同期処理もキャッシュ間で行われるようになり、メモリアクセスは完全に試験だけに使われることが出来る。但し、同期で使用する命令のうちアトミック命令（メモリに書き込む命令）は使用禁止とする。
【００６７】
図２５は本発明によるＣＰＵの同期処理を説明するフローチャートである。本同期はメモリを使わずにキャッシュ上で行わせるため、アトミック命令を使わずに一般命令（ロード：ｌｄｕｂ、ストア：ｓｔｂ）だけで同期させている。
【００６８】
以下に処理を説明する。
同期テーブルとしてＣＰＵの数の各１バイトのフラグ（Ａ）と、同期完了を通知するフラグ（Ｂ）を用意する。
【００６９】
次に、ＣＰＵをマスタ（１台）、スレーブ（残り全て）に分ける。
同期させる場合、まずマスタ・スレーブ共にフラグ（Ａ）の自分のＣＰＵ領域のフラグをオンにする。例えば、ＣＰＵ１であれば、（Ａ）のＣＰＵ１の１バイトに１（オン）を立てる。
スレーブはフラグ（Ｂ）がオンになるまで待ち、オンになった所で同期と判断し、次の処理に進む。
【００７０】
マスタはフラグ（Ａ）が全てオンになるまで監視し、オンになった所でフラグ（Ｂ）をオンに設定し次の処理に進む。
【００７１】
以上の実施例の説明ではコンピュータ・システムにおけるメモリに電流を供給する電源ＤＤＣを障害検出対象としたが、本発明はこれに限定されず、電源供給先の電流変動をプログラムで制御できるものは全て本発明による障害検出の対象となる。
【００７２】
（付記１）中央処理装置と、電源と、該電源から電流を供給される電源供給先と、前記中央処理装置から前記電源供給先に周期的にアクセスさせることにより前記電源から前記電源供給先に周期的にオンとオフを繰り返す周期的電流を供給する手段と、前記電源の出力電圧が所定閾値を超えた場合に前記電源を不良と判定するする手段とを備えることを特徴とする、前記電源の障害検出装置。
（付記２）コンピュータに、電源から電源供給先に周期的にオンとオフを繰り返す周期的電流を供給する手順を実行させ、前記電源の出力電圧が所定閾値を超えた場合に前記電源を不良と判定するための、前記電源の障害検出プログラム。
（付記３）電源から電源供給先に、周期的にオンとオフを繰り返す周期的電流を供給し、前記電源の出力電圧が所定閾値を超えた場合に前記電源を不良と判定する、前記電源の障害検出方法。
（付記４）前記周期的電流の周期幅を変化させて、前記電源の出力インピーダンスの全状態を網羅する、付記３に記載の障害検出方法。
（付記５）前記電源は複数の電源部を含み、前記電源供給先は複数のアドレスによりそれぞれ特定される複数の電力受け部を含み、前記電源供給先のアドレスを特定して該特定されたアドレスに対応する電力受け部に前記周期的電流のオン期間の電流を供給することにより前記電力受け部毎に対応する電源部の障害を検出する、付記３又は４に記載の障害検出方法。
（付記６）前記電源は単一の電源部を含み、前記電源供給先は複数のアドレスにより特定される複数の電力受け部を含み、前記電源供給先のアドレスを順次特定して該特定されたアドレスに対応する電力受け部に前記周期的電流のオン期間の電流を供給することにより前記電源の障害を検出する、付記３又は４に記載の障害検出方法。
（付記７）前記電源は単一の電源部を含み、前記電源供給先は複数のアドレスにより特定される複数の電力受け部を含み、前記電源供給先のアドレスを同時に特定して該特定されたアドレスに対応する電力受け部に前記周期的電流のオン期間の電流を供給することにより前記電源の障害を検出する、付記３又は４に記載の障害検出方法。
（付記８）前記電源は隣接する複数の電源を含み、前記電源供給先は複数のメモリを含み、前記電源供給先は前記複数の電源から出力される前記周期的電流のオン期間の電流を同期させて前記複数のメモリに同時に供給することにより、前記電源の障害を検出する、付記３又は４に記載の障害検出方法。
（付記９）前記電源供給先はコンピュータ・システム内のメモリであり、キャッシュメモリを備えた中央処理装置から前記メモリに周期的にアクセスして、前記電源から前記メモリに前記周期的電流のオン期間の電流を供給し、前記周期的電流のオフ期間には前記キャッシュメモリにアクセスして情報を読み書きする、付記３に記載の障害検出方法。
【産業上の利用可能性】
【００７３】
本発明により、不良電源を早期に検出可能となり、高密度実装のコンピュータ・システムにおいても電源の品質確保を実現することができる。
【図面の簡単な説明】
【００７４】
【図１】本発明に用いられる電源供給元の一例としてのコンピュータ・システムにおけるＤＤＣとこれに接続されている電源供給先の一例であるコンピュータ・システムにおけるメモリを示す回路図である。
【図２】電源供給部１１の電流周波数と出力インピーダンスの関係を表すグラフ図である。
【図３】（ａ）は負荷コンデンサが正常に動作している場合のＤＤＣの出力電圧の波形を示し、（ｂ）は負荷コンデンサが負荷変動に追随していない異常ケースのＤＤＣの出力電圧の波形を示すグラフ図である。
【図４】本発明の実施例１による電源の障害検出装置の概要を示すブロック図である。
【図５】ＤＤＣ４４の出力である負荷変動電圧を示す波形図である。
【図６】実施例１の具体例を示すコンピュータ・システムの概略構成図である。
【図７Ａ】本発明の実施例１による試験装置の動作を説明するフローチャートである。
【図７Ｂ】実施例１における供給電流を示す波形図である。
【図８】本発明の実施例２による電源の障害検出装置の概要を示すブロック図である。
【図９Ａ】図８に示した試験装置の動作を説明するフローチャートである。
【図９Ｂ】実施例２における供給電流を示す波形図である。
【図１０】同一アドレスのアクセスでメモリロードとキャッシュロードを切り分ける方法を示した概念図である。
【図１１】本発明の実施例３により、プログラムでＤＤＣを特定するためのメモリアドレスとＤＤＣの位置関係を表す図である。
【図１２】本発明の実施例３の具体例を示すコンピュータ・システムの概略構成図である。
【図１３】図１２に示したコンピュータ・システムにおけるＤＤＣの試験動作を説明するフローチャートである。
【図１４】本発明の実施例４による電源の障害検出装置の概要を示すブロック図である。
【図１５】実施例４の具体例を示すコンピュータ・システムの概略構成図である。
【図１６】図１５に示したコンピュータ・システムにおける電源障害検出動作を説明するフローチャートである。
【図１７】本発明の実施例５によるコンピュータ・システムの概略構成を示すブロック図である。
【図１８】実施例５の具体例を示すコンピュータ・システムの概略構成図である。
【図１９】図１８に示したコンピュータ・システムにおける電源障害検出動作を説明するフローチャートである。
【図２０】本発明の実施例６によるコンピュータ・システムの概略構成を示すブロック図である。
【図２１】実施例６の具体例を示すコンピュータ・システムの概略構成図である。
【図２２】図２１に示したコンピュータ・システムにおける電源障害検出動作を説明するフローチャートである。
【図２３Ａ】本発明の実施例７による、実施例１から６までを包含したプログラムを示すフローチャートである。
【図２３Ｂ】実施例７における供給電流を示す波形図である。
【図２４】本発明の実施可能性について説明する図である。
【図２５】本発明によるＣＰＵの同期処理を説明するフローチャートである。
【符号の説明】
【００７５】
４００、４０１、４０２    プログラム
４１０、４１１、４１２    キャッシュメモリ
４３０、４３１、４３２    メモリ
４５    判定手段
４４１    周期的電流供給手段
４５    判定手段
ＣＰＵ０，ＣＰＵ１，ＣＰＵ２    中央処理装置
【図１】
0004619961.tif 000003
【図２】
0004619961.tif 000004
【図３】
0004619961.tif 000005
【図４】
0004619961.tif 000006
【図５】
0004619961.tif 000007
【図６】
0004619961.tif 000008
【図７Ａ】
0004619961.tif 000009
【図７Ｂ】
0004619961.tif 000010
【図８】
0004619961.tif 000011
【図９Ａ】
0004619961.tif 000012
【図９Ｂ】
0004619961.tif 000013
【図１０】
0004619961.tif 000014
【図１１】
0004619961.tif 000015
【図１２】
0004619961.tif 000016
【図１３】
0004619961.tif 000017
【図１４】
0004619961.tif 000018
【図１５】
0004619961.tif 000019
【図１６】
0004619961.tif 000020
【図１７】
0004619961.tif 000021
【図１８】
0004619961.tif 000022
【図１９】
0004619961.tif 000023
【図２０】
0004619961.tif 000024
【図２１】
0004619961.tif 000025
【図２２】
0004619961.tif 000026
【図２３Ａ】
0004619961.tif 000027
【図２３Ｂ】
0004619961.tif 000028
【図２４】
0004619961.tif 000029
【図２５】
0004619961.tif 000030