IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7415650負荷変動試験プログラム及び負荷変動試験方法
<>
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図1
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図2
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図3
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図4
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図5
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図6
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図7
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図8
  • 特許-負荷変動試験プログラム及び負荷変動試験方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】負荷変動試験プログラム及び負荷変動試験方法
(51)【国際特許分類】
   G06F 11/22 20060101AFI20240110BHJP
   G06F 1/28 20060101ALI20240110BHJP
   H02H 7/12 20060101ALI20240110BHJP
   H02M 3/00 20060101ALI20240110BHJP
【FI】
G06F11/22 673W
G06F1/28
H02H7/12 G
H02M3/00 C
【請求項の数】 6
(21)【出願番号】P 2020029374
(22)【出願日】2020-02-25
(65)【公開番号】P2021135576
(43)【公開日】2021-09-13
【審査請求日】2022-11-17
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】稲垣 慶和
(72)【発明者】
【氏名】馬場 楓子
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2015-082321(JP,A)
【文献】特開2004-157730(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/22
G06F 1/28
H02H 7/12
H02M 3/00
(57)【特許請求の範囲】
【請求項1】
CPUクロックからタイマ値を生成し、
設定された負荷変動周期を基に基準タイマ値を決定し、
判定を行う時点の現時点タイマ値を取得し、
前記現時点タイマ値を基に、前記基準タイマ値にしたがうタイミングでの割り込みの発生を遅延させるか否かを判定し、
遅延させる場合、前記基準タイマ値にしたがうタイミングから前記負荷変動周期に基づく所定タイマ値分遅延させて割り込みを発生させる
処理をコンピュータに実行させることを特徴とする負荷変動試験プログラム。
【請求項2】
前記基準タイマ値は、前記負荷変動周期の半分の時間であることを特徴とする請求項1に記載の負荷変動試験プログラム。
【請求項3】
前の割り込みが発生したタイミングの発生時タイマ値を取得し、
前記発生時タイマ値に前記基準タイマ値を加算した通常時タイマ値が、前記現時点タイマ値よりも小さい場合、前記基準タイマ値にしたがうタイミングでの前記割り込みの発生を遅延させると判定する
処理をコンピュータに実行させることを特徴とする請求項1又は2に記載の負荷変動試験プログラム。
【請求項4】
前記基準タイマ値にしたがうタイミングは、前記通常時タイマ値が示すタイミングであることを特徴とする請求項3に記載の負荷変動試験プログラム。
【請求項5】
前記遅延させる場合、前記基準タイマ値にしたがうタイミングから前記負荷変動周期の1周期分遅延させたタイミングで前記割り込みを発生させる処理をコンピュータに実行させることを特徴とする請求項1~4のいずれか一つに記載の負荷変動試験プログラム。
【請求項6】
CPUクロックからタイマ値を生成し、
設定された負荷変動周期を基に基準タイマ値を決定し、
判定を行う時点の現時点タイマ値を取得し、
前記現時点タイマ値を基に、前記基準タイマ値にしたがうタイミングでの割り込みの発生を遅延させるか否かを判定し、
遅延させる場合、前記基準タイマ値にしたがうタイミングから前記負荷変動周期に基づく所定タイマ値分遅延させて前記割り込みを発生させる
処理をコンピュータに実行させることを特徴とする負荷変動試験方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、負荷変動試験プログラム及び負荷変動試験方法に関する。
【背景技術】
【0002】
近年、コンピュータシステムのハードウェアは高密度実装となり、この結果メモリなどの各電力供給先から近距離にDC/DCコンバータ(DDC:Direct current Direct current Converter)が実装されるようになった。そのため、DDCと電源供給先との間にキャパシタなどの電圧変動抑制のための回路を配置することが困難となった。このようなコンピュータシステムにおいてDDCから電力供給先に電流を供給すると、DDCの負荷変動により供給電圧が変動し、電力供給先に悪影響を及ぼすおそれがある。
【0003】
そこで、コンピュータシステムにおけるDDCの負荷変動に起因する電源供給元の回路障害を検出することが求められており、いくつかの試験方法が提案されている。例えば、プログラムにより中央処理装置から電源供給先であるメモリと電源非供給元であるキャッシュメモリとに周期的にアクセスすることで、電圧の負荷変動を実現する従来技術がある。この従来技術では、タイマ監視を一定間隔で行うことで時間を計測して、電源をオンにしてメモリアクセスを行う時間と電源をオフにしてキャッシュアクセスを行う時間とに周期性を持たせている。
【0004】
また、メモリ及びキャッシュへのアクセス処理の切り替えをタイマ割り込みによって行うことで電流負荷を上げて試験を行う従来技術がある。タイマ割り込みは、タイマ値である走行時のCPU(Central Processing Unit)クロック数が、タイマ割込値として設定したCPUクロック数よりも大きくなった際に発生する割り込みである。タイマ割込値は、作りたい周期とCPU周波数から算出される。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2007-221856号公報
【文献】特開2013-58038号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、タイマ監視を一定間隔で行うことで周期を生成する従来技術の場合、メモリアクセス実行中に一定間隔での時間監視処理を行うため、メモリアクセス頻度が低下する。その結果、電力共有元であるDDCからメモリへの電源供給頻度が低下する。このように、時間監視処理とメモリアクセス頻度の両立が難しく、本来の負荷変動に起因する電源の回路障害を検出する試験を行うことが困難であった。
【0007】
また、タイマ割り込みによって周期を生成する従来技術の場合、負荷変動の周期が短い場合、割り込み処理に時間がかかるなどして、次の割り込みを発生するために設定するタイマ値が現時刻のタイマ値よりも小さくなってしまう場合がある。この場合、次回以降の割り込みの発生が停止し、期待する負荷変動の周期を継続して生成することが困難となる。
【0008】
開示の技術は、上記に鑑みてなされたものであって、電源の負荷変動試験の実効性を高める負荷変動試験プログラム及び負荷変動試験方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本願の開示する負荷変動試験プログラム及び負荷変動試験方法の一つの態様において、以下の処理をコンピュータに実行させる。CPUクロックからタイマ値を生成する。設定された負荷変動周期を基に基準タイマ値を決定する。判定を行う時点の現時点タイマ値を取得する。現時点タイマ値を基に、基準タイマ値にしたがうタイミングでの割り込みの発生を遅延させるか否かを判定する。遅延させる場合、基準タイマ値にしたがうタイミングから負荷変動周期に基づく所定タイマ値分遅延させて前記割り込みを発生させる。
【発明の効果】
【0010】
1つの側面では、本発明は、電源の負荷変動試験の実効性を高めることができる。
【図面の簡単な説明】
【0011】
図1図1は、負荷変動試験の試験対象となるコンピュータのハードウェア構成図である。
図2図2は、負荷変動試験の試験プログラムにより生成される各機能を表すブロック図である。
図3図3は、負荷変動試験処理のフローチャートである。
図4図4は、タイマ割込値の設定処理の詳細を表すフローチャートである。
図5図5は、次の割り込みの発生が次の通常の負荷変動のタイミングに間に合う場合のタイマ割込値の算出を説明するための図である。
図6図6は、次の割り込みの発生が次の通常の負荷変動のタイミングに間に合わない場合のタイマ割込値の算出を説明するための図である。
図7図7は、切り替えの周期を飛ばした場合の負荷変動試験全体における負荷変動の一例を表す図である。
図8図8は、実施例1に係る負荷変動試験プログラムを用いて行った負荷変動試験の具体例の図である。
図9図9は、実施例2に係る負荷変動試験プログラムによる負荷変動の一例を表す図である。
【発明を実施するための形態】
【0012】
以下に、本願の開示する負荷変動試験プログラム及び負荷変動試験方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する負荷変動試験プログラム及び負荷変動試験方法が限定されるものではない。
【実施例1】
【0013】
図1は、負荷変動試験の試験対象となるコンピュータのハードウェア構成図である。コンピュータ1は、本実施例に係る負荷変動試験が実行される情報処理装置の一例である。コンピュータ1は、図1に示すように、CPU10,メモリ20、ハードディスク30及びDDC40を有する。
【0014】
ハードディスク30は、本実施例に係る負荷変動試験を実行するための試験プログラムを含む各種プログラムが格納される。
【0015】
DDC40は、電源であり、CPU10,メモリ20及びハードディスク30に電力を要求する。DDC40は、CPU10がメモリ20にアクセスする場合、メモリ20に対して電力を供給する。この場合、キャッシュ11へのアクセス時に比べてメモリ20の分の負荷が増えるため、DDC40が流す電流は、CPU10からのメモリ20へのアクセスが無い場合に比べて多くなる。
【0016】
CPU10は、キャッシュ11を有する。CPU10は、ハードディスク30に格納された各種プログラムを読み出してメモリ20上に展開して各種プロセスを生成する。CPU10により生成されたプロセスにより、各種機能が実現される。例えば、CPU10は、試験プログラムを読み出してメモリ20上に展開して負荷変動試験プロセスを生成する。この負荷変動試験プロセスが動作することで、後述する負荷変動試験を実行するための各種機能が実現されてDDC40に対する負荷変動試験が実行される。
【0017】
次に、図2を参照して、負荷変動試験を実行するための試験プログラムにより実行される各処理について説明する。図2は、負荷変動試験の試験プログラムにより生成される各機能を表すブロック図である。図2に記載した各部は、負荷変動試験プロセスにより実現される。負荷変動試験プログラムは、割り込みの発生により負荷変動を実現する。以下では、直前に発生した割り込みであって現時点でコンピュータ1により処理された割り込みを、「現在の割り込み」とよぶ。この現在の割り込みが、「前の割り込み」の一例にあたる。また、現在の割り込みの次に処理される割り込みを「次の割り込み」と呼ぶ。この次の割り込みが、「割り込み」の一例にあたる。
【0018】
CPU10は、クロック生成部300及び割込レジスタ400を有する。負荷変動試験の試験プログラムが実行されると、図2に示すように、試験条件設定部100、試験実行部200が生成される。
【0019】
クロック生成部300は、CPU10の動作周波数であるクロックを生成する。そして、クロック生成部300は、生成したクロックを出力する。
【0020】
割込レジスタ400は、割り込みを格納するレジスタである。割込レジスタ400に格納された割り込みが読み出されることで割り込みが発生し、その割り込みに対応する処理が行われる。例えば、メモリ20へのアクセスとキャッシュ11へのアクセスを切り替えさせる割り込みの場合、割込レジスタ400から読み出されてその割り込みが発生することで、メモリ20へのアクセスとキャッシュ11へのアクセスが切替えられる。
【0021】
試験条件設定部100は、負荷変動試験を実行する際の各種条件を設定する。試験条件設定部100は、変動周期計算部101及びタイマ割込セット部102を有する。
【0022】
変動周期計算部101は、クロック生成部300から出力されたクロックを取得しCPU10の周波数を取得する。また、変動周期計算部101は、負荷変動試験のために指定された負荷変動周期の情報を取得する。例えば、変動周期計算部101は、図示しない入力装置を用いて作業者が入力した負荷変動周期の情報を取得する。ここで、負荷変動周期とは、メモリ20へのアクセス及びキャッシュ11へのアクセスが行われる周期であり、メモリ20へのアクセス時間とキャッシュ11へのアクセス時間との合計時間が1周期となる。
【0023】
次に、変動周期計算部101は、取得した負荷変動周期及びCPU10の周波数から割り込みを発生させるタイミングの基準となる基準タイマ値を算出する。以下では、基準タイマ値を「A」として表す場合がある。この基準タイマ値(A)は、現在の割り込みの発生によりアクセス対象の切り替えが行われたタイミングから次の割り込みが発生するまでの通常時の間隔をCPU10の周波数で表した値である。すなわち、基準タイマ値(A)は、負荷変動周期をCPU10のクロック数で表した値の半分の値である。
【0024】
例えば、CPU10の周波数がFHzであり且つ指定された負荷変動周期がTp秒の場合、変動周期計算部101は、基準タイマ値(A)を(Tp×F)/2と算出する。そして、変動周期計算部101は、算出した基準タイマ値(A=(Tp×F)/2)をタイマ割込セット部102及び試験実行部200のタイマ割込値調整部203へ出力する。
【0025】
タイマ割込セット部102は、基準タイマ値(A)の入力を変動周期計算部101から受ける。次に、タイマ割込セット部102は、負荷変動試験開始時における開始時タイマ値(B)をクロック生成部300から取得する。そして、タイマ割込セット部102は、開始時タイマ値(B)に基準タイマ値(A)を加算して次の割り込みを発生させるタイマ割込値(T=B+A)を算出する。そして、タイマ割込セット部102は、タイマ割込値(T)で割り込みが発生するように割込レジスタ400に割り込みを設定する。
【0026】
また、タイマ割込セット部102は、初回の割り込み発生以降、次の割り込みを発生させるタイミングであるタイマ割込値の入力をタイマ割込値調整部203から受ける。以下では、タイマ割込値を、Tと表す場合がある。タイマ割込セット部102は、取得したタイマ割込値(T)で次の割り込みが発生するように、次の割り込みを割込レジスタ400に設定する。
【0027】
例えば、次の割り込みが通常の負荷変動周期で発生する場合、タイマ割込セット部102は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算したタイマ割込値(T)の入力をタイマ割込値調整部203から受ける。次に、タイマ割込セット部102は、タイマ割込値(T=t+A)で次の割り込みが発生するように割込レジスタ400に割り込みを設定する。
【0028】
一方、次の割り込みが通常の負荷変動周期で発生しない場合、タイマ割込セット部102は、基準タイマ値(A)に遅延を加えた値を現在の割り込みの発生タイミング(t)に加算したタイマ割込値(T)の入力をタイマ割込値調整部203から受ける。例えば、タイマ割込セット部102は、基準タイマ値(A)を2倍した値であるA×2を基準タイマ値(A)加えた「A×3」を現在の割り込みの発生タイミング(t)に加算したタイマ割込値(t+A×3)の入力をタイマ割込値調整部203から受ける。基準タイマ値(A)の2倍は、負荷変動周期の1周期分にあたる。そして、タイマ割込セット部102は、現在の割り込みの発生タイミング(t)にタイマ値(A×3)を加算したタイマ割込値(t+A×3)で次の割り込みが発生するように割込レジスタ400に次の割り込みを設定する。これにより、負荷変動周期を1周期飛ばした次の負荷変動のタイミングで、アクセス先の切り替えが発生する。
【0029】
試験実行部200は、割り込みが発生する毎にメモリ20又はキャッシュ11へのアクセスを交互に実行することで、メモリ20へのアクセスとキャッシュ11へのアクセスとを周期的に行い負荷変動試験を実行する。また、試験実行部200は、次の通常の負荷変動周期において割り込みが実行可能か否かを判定し、その判定結果に応じて次の割り込みのタイマ割込値を決定する。以下に、試験実行部200の詳細について説明する。試験実行部200は、図2に示すように、メモリアクセス切替部201、タイマ値取得部202、タイマ割込値調整部203及び試験実行時間確認部204を有する。
【0030】
メモリアクセス切替部201は、メモリ20及びキャッシュ11へのアクセスを管理する。メモリアクセス切替部201は、メモリアクセス部211及びキャッシュアクセス部212を有する。メモリアクセス切替部201は、割込レジスタ400から割り込みを取得して割り込みを発生させる。この際、メモリアクセス切替部201は、割り込みの発生をタイマ値取得部202に通知する。
【0031】
そして、メモリアクセス切替部201は、割り込みが発生すると、メモリアクセス部211によるメモリ20へのアクセスとキャッシュアクセス部212によるキャッシュ11へのアクセスとを切り替える。
【0032】
例えば、キャッシュアクセス部212がキャッシュ11へのアクセスを行っている状態で、割り込みが発生した場合、キャッシュアクセス部212は、キャッシュ11へのアクセスを停止する。そして、メモリアクセス部211は、メモリ20上のキャッシュ11に載っていないデータが格納されたアドレスへのアクセスを開始する。この場合、DDC40によるメモリ20への電力供給が行われる。以下では、メモリ20上のキャッシュ11に載っていないデータが格納されたアドレスへのアクセスを、単に「メモリ20へのアクセス」と呼ぶ。その後、メモリアクセス部211は、次の割り込みが発生するまで、メモリ20へのアクセスを継続する。
【0033】
一方、メモリアクセス部211がメモリ20へのアクセスを行っている状態で、割り込みが発生した場合、メモリアクセス部211は、メモリ20へのアクセスを停止する。そして、キャッシュアクセス部212は、キャッシュ11に載っているデータが格納されたアドレスへのアクセスを開始する。この場合、キャッシュアクセス部212によるアクセスは、キャッシュ11に対して行われ、メモリ20へのアクセスは行われない。そのため、DDC40によるメモリ20への電力供給は停止状態となる。以下では、キャッシュ11に載っているデータが格納されたアドレスへのアクセスを、単に「キャッシュ11へのアクセス」と呼ぶ。その後、キャッシュアクセス部212は、次の割り込みが発生するまで、キャッシュ11へのアクセスを継続する。
【0034】
割り込みは、通常は基準タイマ値の間隔で発生するため、メモリアクセス部211によるメモリ20へのアクセスとキャッシュアクセス部212によるキャッシュ11へのアクセスとは、通常の負荷変動周期で繰り返される。また、割り込みの発生タイミングに遅延が加えられた場合、その遅延分、メモリアクセス部211によるメモリ20へのアクセスとキャッシュアクセス部212によるキャッシュ11へのアクセスとの切り替えが遅れる。
【0035】
タイマ値取得部202は、割り込み発生の通知をメモリアクセス切替部201から受ける。そして、タイマ値取得部202は、通知を受けたタイミングのタイマ値をクロック生成部300から取得する。以下では、タイマ値取得部220が取得したタイマ値を、判定を行うタイミングを現時点として、「現時点タイマ値」と呼ぶ場合がある。以下では、現時点タイマ値を「C」と表す場合がある。そして、タイマ値取得部202は、現時点タイマ値(C)をタイマ割込値調整部203へ出力する。
【0036】
タイマ割込値調整部203は、基準タイマ値(A)の入力を変動周期計算部101から受ける。そして、タイマ割込値調整部203は、基準タイマ値(A)を記憶する。また、タイマ割込値調整部203は、後述するように算出した次の割り込みを発生させるタイム割込値(T)を現在の割り込みの発生タイミング(t)として保持する。この現在の割り込みの発生タイミング(t)が、「発生時タイマ値」の一例にあたる。
【0037】
その後、次の割り込みの発生タイミングの判定を行う場合、タイマ割込値調整部203は、現時点タイマ値(C)の入力をタイマ値取得部202から受ける。次に、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算した通常の負荷変動周期での次の割り込みの発生タイミングのタイマ値を算出する。以下では通常の負荷変動周期での次の割り込みの発生タイミングのタイマ値を、「通常時タイマ値」と呼ぶ場合がある。そして、タイマ割込値調整部203は、現時点タイマ値(C)と通常時タイマ値とを比較して、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合うか否かを判定する。次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合えば、タイマ割込値調整部203は、通常時タイマ値をタイマ割込値としてタイマ割込セット部102へ出力する。
【0038】
これに対して、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合わない場合、タイマ割込値調整部203は、次の割り込みの発生タイミングに対する遅延の付加を決定する。そして、タイマ割込値調整部203は、基準タイマ値(A)を用いて、次の割り込みの発生させるために付加する遅延の量を決定する。そして、タイマ割込値調整部203は、決定した遅延量に基準タイマ値(A)及び現在の割り込みの発生タイミング(t)を加算した値を次の割り込みのタイマ割込値としてタイマ割込セット部102へ出力する。
【0039】
例えば、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算して、通常時タイマ値として「t+A」を算出する。
【0040】
そして、タイマ割込値調整部203は、通常時タイマ値(t+A)が現時点タイマ値(C)よりも後、すなわちC<t+Aか否かを判定する。通常時タイマ値(t+A)が現時点タイマ値(C)よりも後(C<t+A)であれば、次の割り込みの発生が通常の負荷変動周期の次の負荷変動のタイミングに間に合うので、タイマ割込値調整部203は、通常時タイマ値(t+A)をタイマ割込値とする。そして、タイマ割込値調整部203は、通常時タイマ値(t+A)をタイマ割込値としてタイマ割込セット部102へ出力する。
【0041】
一方、通常時タイマ値(t+A)が現時点タイマ値(C)よりも先(C≧t+A)であれば、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合わないので、タイマ割込値調整部203は、次の割り込みの発生の遅延を決定する。そして、タイマ割込値調整部203は、次の負荷変動周期の1周期が経過した後の次の負荷変動のタイミングで次の割り込みを発生させるために、基準タイマ値(A)に1周期分のタイマ値(A×2)を加算したタイマ値(A×3)を算出する。そして、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に算出したタイマ値(A×3)を加算したタイマ値であるt+A×3をタイマ割込値(T)とする。タイマ割込値調整部203は、値がt+A×3であるタイマ割込値をタイマ割込セット部102へ出力する。
【0042】
ここで、本実施例では、タイマ割込値調整部203は、次の割り込みの発生が次の通常の負荷変動周期のタイミングに間に合わない場合、次の割り込みを負荷変動周期の1周期経過後の次の負荷変動のタイミングで発生させた。だだし、負荷変動周期が維持可能であれば遅延の量はこれに限らず、タイマ割込値調整部203は、他のタイミングで次の割り込みを発生させてもよい。例えば、タイマ割込値調整部203は、次の割り込みを負荷変動周期の2周期経過後の次の負荷変動のタイミングで発生させてもよい。ただし、次の割り込みタイミングが遅くなると、負荷変動試験において実施される負荷変動が減るため、次の割り込みの発生はなるべく早くすることが好ましい。
【0043】
試験実行時間確認部204は、クロック生成部300から出力されるクロックを用いて試験開始からの経過時間を監視する。そして、試験実行時間確認部204は、経過時間が予め決められた試験実行時間に達していなければ、メモリ20及びキャッシュ11への周期的な交互のアクセスをメモリアクセス切替部201に継続させる。
【0044】
これに対して、経過時間が試験実行時間に達した場合、試験実行時間確認部204は、メモリアクセス切替部201によるメモリ20及びキャッシュ11へのアクセスを停止させて、試験を終了する。
【0045】
次に、図3を参照して、負荷変動試験処理の全体的な流れを説明する。図3は、負荷変動試験処理のフローチャートである。
【0046】
変動周期計算部101は、CPU周波数(F)をクロック生成部300から取得する(ステップS1)。
【0047】
次に、変動周期計算部101は、作業者からの入力などにより負荷変動周期(Tp)を取得する(ステップS2)。
【0048】
次に、変動周期計算部101は、CPU周波数(F)を用いて負荷変動周期(Tp)を表すタイマ値(T×F)を求める。そして、変動周期計算部101は、メモリ20へのアクセスとキャッシュ11へのアクセスの切り替え間隔である基準タイマ値(A=(T×F)/2)を算出する(ステップS3)。そして、変動周期計算部101は、算出した基準タイマ値(A)をタイマ割込セット部102及びタイマ割込値調整部203へ出力する。タイマ割込セット部102及びタイマ割込値調整部203は、基準タイマ値(A)の入力を変動周期計算部101から受ける。
【0049】
次に、タイマ割込セット部102は、クロック生成部300から開始時タイマ値(B)を取得する。また、タイマ割込セット部102は、基準タイマ値(A)を変動周期計算部101から取得する。そして、タイマ割込セット部102は、開始時タイマ値(B)に基準タイマ値(A)を加算して最初の割り込みのタイマ割込値(T)を算出する。そして、タイマ割込セット部102は、タイマ割込値(T)で最初の割り込みが発生するように割込レジスタ400に設定する。これにより、アクセス先の切り替えの割り込みが開始される(ステップS4)。メモリアクセス切替部201は、割込レジスタ400に格納された割り込みをタイマ割込値(T)で取得して、アクセス先を切替える。
【0050】
タイマ値取得部202は、現時点タイマ値(C)をクロック生成部300から取得する(ステップS5)。そして、タイマ値取得部202は、取得した現時点タイマ値(C)をタイマ割込値調整部203へ出力する。タイマ割込値調整部203は、現時点タイマ値(C)の入力をタイマ値取得部202から受ける。
【0051】
次に、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算して、通常時タイマ値(t+A)を算出する。そして、タイマ割込値調整部203は、現時点タイマ値(C)と通常時タイマ値(t+A)とを比較して、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合うか否かを判定する(ステップS6)。
【0052】
次の割り込みの発生が通常の負荷変動周期の次の負荷変動のタイミングに間に合う場合(ステップS6:肯定)、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算した通常時タイマ値(t+A)をタイマ割込値(T)として算出する。そして、タイマ割込値調整部203は、通常時タイマ値(t+A)であるタイマ割込値(T)をタイマ割込セット部102へ出力する。タイマ割込セット部102は、通常時タイマ値(t+A)であるタイマ割込値(T)をタイマ割込値調整部203から取得する。この場合、タイマ割込値(T)は、次の通常の負荷変動周期のタイミングである。そして、タイマ割込セット部102は、次の通常の負荷変動周期で発生するように次の割り込みを割込レジスタ400に設定する(ステップS7)。
【0053】
これに対して、次の割り込みの発生が次の通常の負荷変動周期のタイミングに間に合わない場合(ステップS6:否定)、タイマ割込値調整部203は、基準タイマ値(A)に負荷変動周期の1周期分の遅延を付加したタイマ値であるA×3を算出する。次に、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に算出したタイマ値(A×3)を加算した値(t+A×3)をタイマ割込値(T)とする。すなわち、この場合、タイマ割込値(T)は、負荷変動周期の1周期経過後の次の負荷変動のタイミングである。そして、タイマ割込値調整部203は、算出したタイマ値(t+A×3)であるタイマ割込値(T)をタイマ割込セット部102へ出力する。タイマ割込セット部102は、タイマ値(t+A×3)であるタイマ割込値(T)の入力をタイマ割込値調整部203から受ける。そして、タイマ割込セット部102は、負荷変動周期の1周期経過後の次の負荷変動のタイミングで発生するように次の割り込みを割込レジスタ400に設定する(ステップS8)。
【0054】
メモリアクセス切替部201は、設定されたタイマ割込値(T)で次の割り込みを割込レジスタ400から取得して、割り込みを発生させる。そして、メモリアクセス切替部201は、設定されたタイマ割込値(T)での割り込み発生を契機に、メモリアクセス部211によるメモリ20へのアクセスとキャッシュアクセス部212によるキャッシュ11へのアクセスとの切り替えを実行する(ステップS9)。
【0055】
試験実行時間確認部204は、負荷変動試験開始からの経過時間をクロック生成部300から取得する。そして、試験実行時間確認部204は、負荷変動試験開始からの経過時間が試験実行時間に達したか否かにより、負荷変動試験を終了するか否かを判定する(ステップS10)。
【0056】
負荷変動試験を終了しない場合(ステップS10:否定)、試験実行時間確認部204は、メモリアクセス切替部201によりアクセス先の切り替え処理を継続させる。そして、負荷変動試験処理はステップS5へ戻る。
【0057】
これに対して、負荷変動試験を終了する場合(ステップS10:肯定)、試験実行時間確認部204は、メモリアクセス切替部201によるアクセス先の切り替え処理を停止させて負荷変動処理を終了させる。
【0058】
次に、図4を参照して、タイマ割込値の設定処理の詳細を説明する。図4は、タイマ割込値の設定処理の詳細を表すフローチャートである。
【0059】
変動周期計算部101は、CPU周波数(F)及び負荷変動周期(Tp)を用いて基準タイマ値(A)を算出する(ステップS101)。タイマ割込セット部102及びタイマ割込値調整部203は、基準タイマ値(A)を変動周期計算部101から取得する。
【0060】
次に、変動周期計算部101は、開始時タイマ値(B)に基準タイマ値(A)を加算して、最初のタイマ割込値(T=B+A)を算出する。そして、変動周期計算部101は、最初のタイマ割込値(T)で発生するように割り込みを割込レジスタ400に設定する(ステップS102)。
【0061】
設定されたタイマ割込値(T)で次の割り込みが発生し、DDC40は、メモリ20の電源をオンにして電力供給を開始する。キャッシュアクセス部212は、キャッシュ11へのアクセスを行っている場合、そのアクセスを停止する。そして、メモリアクセス部211は、メモリ20へのアクセスを実行する(ステップS103)。
【0062】
その後、メモリアクセス切替部201は、割込レジスタ400から割り込みを取得して、割り込みを発生させる(ステップS104)。この際、メモリアクセス切替部201は、割り込みの発生をタイマ値取得部202に通知する。
【0063】
タイマ値取得部202は、割り込み発生の通知を受けて、現時点タイマ値(C)をクロック生成部300から取得する。タイマ割込値調整部203は、現時点タイマ値(C)の入力をタイマ値取得部202から受ける(ステップS105)。
【0064】
次に、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算して通常時タイマ値(t+A)を算出する。そして、タイマ割込値調整部203は、通常時タイマ値(t+A)が現時点タイマ値(C)より後か否か、すなわちCがt+Aより小さいか否かを判定する(ステップS106)。
【0065】
ここで、Cがt+Aより小さい場合について、図5を参照して説明する。図5は、次の割り込みの発生が次の通常の負荷変動のタイミングに間に合う場合のタイマ割込値の算出を説明するための図である。図5は、縦軸で電流を表し、横軸で時間経過を表す。電流の値は紙面の上に向かうにしたがい高くなる。電流が高い状態は、DDC40によるメモリ20に対する電源がオンの状態を表し、電流が低い状態は、DDC40によるメモリ20に対する電源がオフの状態を表す。
【0066】
通常の負荷変動周期の場合、メモリ20へのアクセス期間は、基準タイマ値(A)にあたる。同様に、キャッシュ11へのアクセス期間は、基準タイマ値(A)にあたる。そこで、図5に示すように、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算したタイマ値(t+A)である通常時タイマ値の時点が、通常の負荷変動周期における次の負荷変動のタイミングとなる。この場合、次の負荷変動のタイミングは、電源オフとなるタイミングである。そして、この判定を行う時点での現時点タイマ値(C)がタイマ値(t+A)よりも小さいということは、図5に示すように、通常の負荷変動周期における次の負荷変動のタイミングよりも前で判定を行っていることを表す。すなわち、現時点であれば、通常の負荷変動のタイミングで次の割り込みを発生させることが可能である。
【0067】
そこで、図4に戻って説明を続ける。Cがt+Aより小さい場合(ステップS106:肯定)、タイマ割込値調整部203は、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合うと判定する。そして、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算したタイマ値(t+A)である通常時タイマ値をタイマ割込値としてタイマ割込セット部102へ出力する。タイマ割込セット部102は、取得したタイマ割込値(T=t+A)で発生するように次の割り込みを割込レジスタ400に設定する(ステップS107)。これにより図5に示すように、タイマ値がt+Aのタイミングで次の割り込みが発生し、DDC40が電源オフとなり、キャッシュ11へのアクセスに切り替わる。
【0068】
次に、Cがt+A以上の場合について、図6を参照して説明する。図6は、次の割り込みの発生が次の通常の負荷変動のタイミングに間に合わない場合のタイマ割込値の算出を説明するための図である。図6は、縦軸で電流を表し、横軸で時間経過を表す。
【0069】
図6に示すように、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算したタイマ値(t+A)の時点が、通常の負荷変動周期の次の負荷変動のタイミングにあたる。この場合、次の負荷変動のタイミングは、電源オフとなるタイミングである。そして、この判定を行う時点での現時点タイマ値(C)がタイマ値(t+A)以上ということは、図6に示すように、この時点で通常の負荷変動周期の次の負荷変動のタイミングを既に過ぎていることを表す。すなわち、現時点では、通常の負荷変動周期のタイミングで次の割り込みを発生させることが困難である。現時点から見て、次の電源オフのタイミングは、負荷変動周期が1周期経過後の次の負荷変動のタイミングである。すなわち、タイマ値がt+A×3となるタイミングが、負荷変動周期における次の電源オフのタイミングである。
【0070】
そこで、図4に戻って説明を続ける。Cがt+A以上の場合(ステップS106:否定)、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合わないので、タイマ割込値調整部203は、次の割り込みの発生タイミングの遅延を決定する。次に、タイマ割込値調整部203は、基準タイマ値(A)に負荷変動周期の1周期分のタイマ値(A×2)を加算した値(A×3)を、現在の割り込みの発生タイミング(t)に加算して、加算した値(t+A×3)を次の割り込みのタイマ割込値(T)とする。そして、タイマ割込値調整部203は、算出したタイマ割込値(T=t+A×3)をタイマ割込セット部102へ出力する。タイマ割込セット部102は、取得したタイマ割込値(T=t+A×3)で発生するように次の割り込みを割込レジスタ400に設定する(ステップS108)。これにより、図6に示すように、タイマ値がt+A×3のタイミングで次の割り込みが発生し、DDC40が電源オフとなり、キャッシュ11へのアクセスに切り替わる。この場合、図6の破線50で表される負荷変動が省略される。
【0071】
設定された次の割り込みのタイマ割込値(T)で割り込みが発生し、DDC40は、メモリ20に対する電源をオフにして電力供給を停止する。メモリアクセス部211は、メモリ20へのアクセスを停止する。キャッシュアクセス部212は、キャッシュ11へのアクセスを実行する(ステップS109)。
【0072】
その後、メモリアクセス切替部201は、割込レジスタ400から割り込みを取得して、割り込みを発生させる(ステップS110)。メモリアクセス切替部201は、割り込みの発生をタイマ値取得部202に通知する。
【0073】
タイマ値取得部202は、割り込み発生の通知を受けて、現時点タイマ値(C)をクロック生成部300から取得する。タイマ割込値調整部203は、現時点タイマ値(C)の入力をタイマ値取得部202から受ける。また、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)をタイマ割込セット部102から取得する(ステップS111)。
【0074】
次に、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算して通常時タイマ値(t+A)を算出する。そして、タイマ割込値調整部203は、通常時タイマ値(t+A)が現時点タイマ値(C)より後か否か、すなわちCがt+Aより小さいか否かを判定する(ステップS112)。
【0075】
Cがt+Aより小さい場合(ステップS112:肯定)、タイマ割込値調整部203は、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合うと判定する。そして、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に基準タイマ値(A)を加算して、加算した値(t+A)を次の割り込みのタイマ割込値(T)とする。タイマ割込値調整部203は、算出したタイマ割込値(T=t+A)をタイマ割込セット部102へ出力する。タイマ割込セット部102は、取得したタイマ割込値(T=t+A)で発生するように次の割り込みを割込レジスタ400に設定する(ステップS113)。この場合の判定処理は、図5の電源のオンオフを逆にした場合で表される。
【0076】
これに対して、Cがt+A以上の場合(ステップS112:否定)、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合わないので、タイマ割込値調整部203は、次の割り込みの発生の遅延を決定する。そして、タイマ割込値調整部203は、基準タイマ値(A)に負荷変動周期の1周期分のタイマ値(A×2)を加算したタイマ値(A×3)を算出する。次に、タイマ割込値調整部203は、現在の割り込みの発生タイミング(t)に算出したタイマ値(A×3)を加算して算出したタイマ値(t+A×3)を次の割り込みのタイマ割込値(T)とする。タイマ割込値調整部203は、算出したタイマ割込値(T=t+A×3)をタイマ割込セット部102へ出力する。タイマ割込セット部102は、取得したタイマ割込値(T=t+A×3)で発生するように割り込みを割込レジスタ400に設定する(ステップS114)。この場合の判定処理は、図6の電源のオンオフを逆にした場合で表される。
【0077】
その後、試験実行時間確認部204は、試験開始からの経過時間と試験実行時間とを比較し、試験実行時間を経過したか否かを判定する(ステップS115)。試験実行時間を経過していない場合(ステップS115:否定)、処理はステップS103へ戻る。これに対して、試験実行時間を経過した場合(ステップS115:肯定)、試験実行時間確認部204は、負荷変動試験を終了させる。
【0078】
図7は、切り替えの周期を飛ばした場合の負荷変動試験全体における負荷変動の一例を表す図である。タイマ割込値調整部203は、タイマ割込値を調整する場合、1周期分の切り替えを省略する。ただし、負荷変動試験において、メモリアクセス切替部201は、数万回のアクセス切り替えを行う。そのため、図7に示すように、負荷変動試験全体の負荷変動に対して省略された負荷変動は小さい。また、負荷変動試験全体に対してタイマ割込値を調整する頻度も小さいため、本実施形態に係る負荷変動試験プログラムによる負荷変動の省略の影響も小さく、負荷変動試験は正確に実施可能である。
【0079】
図8は、実施例1に係る負荷変動試験プログラムを用いて行った負荷変動試験の具体例の図である。図8は、縦軸で電流を表し、横軸で時間経過を表す。ここでは、CPU10が周波数100MHzの単一プロセッサであり、作成したい負荷変動周期が1μ秒であり、試験実行時間が100秒である場合で説明する。
【0080】
変動周期計算部101は、CPU10の周波数から基準タイマ値を計算する。ここでは、CPU10の周波数が100MHzであり、作成したい負荷変動周期が1μ秒であるので、変動周期計算部101は、基準タイマ値を1×10-6×100/2×10-6=50として算出する。
【0081】
タイマ割込セット部102は、周期1μの負荷変動周期での負荷変動を開始するために以下の処理を実行する。タイマ割込セット部102は、開始時タイマ値として10をクロック生成部300から取得する。次に、タイマ割込セット部102は、開始タイマ値に基準タイマ値を加算して10+50により最初の割り込みを発生させるタイマ割込値を算出する。そして、タイマ割込セット部102は、60のタイマ割込値で発生するように割込レジスタ400に割り込みを設定する。
【0082】
メモリアクセス部211は、開始時タイマ値であるタイマ値が10のタイミングT1から、メモリ20に対してアクセスを期間T2において繰り返す。この間、DDC40は、タイミングT3でメモリ20に対する電源をオンにする。そして、タイマ値が60のタイミングT3に達すると、割り込みが発生し、メモリアクセス部211は、メモリ20へのアクセスを停止する。DDC40は、タイミングT3でメモリ20に対する電源をオフにする。
【0083】
キャッシュアクセス部212は、タイミングT3から割り込みが発生するまでキャッシュ11に対してアクセスを期間T4において繰り返す。この場合、DDC40は、メモリ20に対する電源をオフにする。
【0084】
次に、タイマ値取得部202は、タイミングT5で現時点タイマ値として70を取得する。
【0085】
タイマ割込値調整部203は、タイミングT5で次の割り込みのタイマ割込値の調整を開始する。現在の割り込みの発生タイミングが60であり、基準タイマ値が50であるので、通常時タイマ値は60+50となる。そして、現時点タイマ値が70であるので、70<60+50より、現時点タイマ値は通常時タイマ値よりも小さい。したがって、次の割り込みの発生は次の通常の負荷変動のタイミングに間に合うことから、タイマ割込値調整部203は、次の割り込みのタイマ割込値を通常時タイマ値である60+50=110とする。
【0086】
そして、タイマ値が110のタイミングT6に達すると、割り込みが発生し、キャッシュアクセス部212は、キャッシュ11へのアクセスを停止する。DDC40は、タイミングT6でメモリ20に対する電源をオンにする。
【0087】
メモリアクセス部211は、タイミングT6からメモリ20に対してアクセスを繰り返す。この間、DDC40は、メモリ20に対する電源をオンにする。
【0088】
次に、タイマ値取得部202は、タイミングT8で現時点タイマ値として180を取得する。
【0089】
タイマ割込値調整部203は、タイミングT8で次の割り込みのタイマ割込値の調整を開始する。現在の割り込みの発生タイミングが110であり、基準タイマ値が50であるので、通常時タイマ値は110+50である。そして、現時点タイマ値が180であるので、180≧110+50より、現時点タイマ値は通常時タイマ値よりも大きい。すなわち、現時点で、既に次の通常の負荷変動周期のタイミングを過ぎてしまっている。したがって、次の割り込みの発生は次の通常の負荷変動のタイミングに間に合わないことから、タイマ割込値調整部203は、負荷変動周期の1周期分割り込みを発生させたにために、タイマ割込値を110+50×3=260とする。
【0090】
試験実行時間確認部204は、現在のタイマ値を取得し、試験実行時間である100秒、すなわちタイマ値が1×10となるタイミングを超えていないかを確認する。現在のタイマ値は180であり試験実行時間を超えていないので、試験実行時間確認部204は、メモリ20及びキャッシュ11への交互のアクセスをメモリアクセス切替部201に継続させる。その後、タイマ値が260に達すると、再度割り込みが発生する。
【0091】
以上に説明したように、本実施例に係る負荷変動試験プログラムは、タイマ割り込みを用いてメモリ又はキャッシュへの周期的なアクセスを試験対象のコンピュータに行わせる。そして、負荷変動試験プログラムは、次の割り込みのタイマ割込値を決定する際に、その時点でのタイマ値と通常の負荷変動周期における次の負荷変動のタイミングとを比較して、次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合うか否かの判定をコンピュータに行わせる。次の割り込みの発生が通常の負荷変動周期における次の負荷変動のタイミングに間に合わない場合、負荷変動試験プログラムは、負荷変動周期の1周期経過後の次の負荷変動のタイミングで次の割り込みを発生させる。
【0092】
これにより、メモリアクセス中にタイマ監視を行わないことで、メモリアクセス頻度の低下を軽減することができ、時間監視処理とメモリアクセス処理とを遼リスさせることができる。さらに、通常の負荷変動周期のタイミングでは負荷変動が困難であっても、継続して負荷変動を作成し続けることができる。すなわち、時間監視処理と電源の負荷変動試験の実効性を高めることが可能となる。
【実施例2】
【0093】
本実施例に係る負荷変動試験プログラムは、複数のコアを用いて負荷変動試験を実行する。本実施例では、コンピュータ1がCPU10としてコア#1~#3を有し、それぞれ周波数が100MHzで動作する場合で説明する。この場合も、作成したい負荷変動周期は1μ秒である。また、試験実行時間は、100秒である。
【0094】
図9は、実施例2に係る負荷変動試験プログラムによる負荷変動の一例を表す図である。図9は紙面に向かって上から順に、コア#1~#3のそれぞれによる負荷変動を表すグラフである。また、図9の最下段のグラフは、本実施例に係る負荷変動試験におけるコンピュータ1の全体の負荷変動を表す。図9の各グラフは、縦軸で電流を表し、横軸で時間経過を表す。
【0095】
本実施例に係る負荷変動試験プログラムは、図2に示した各機能をコア#1~#3毎に生成する。そして、負荷変動試験プログラムは、コア#1~#3毎に、実施例1で説明した負荷変動試験をそれぞれ独立して実行させる。
【0096】
そのため、コア#1~#3のいずれかで、次の割り込みの発生が通常の負荷変動周期の次の負荷変動のタイミングに間に合わない場合でも、他のコアでは、次の割り込みの発生が通常の負荷変動周期の次の負荷変動のタイミングに間に合う場合がある。
【0097】
例えば、図9では、コア#1において、タイマ値が110のタイミングでのメモリ20へのアクセスへの切り替えが行われずに負荷変動周期の1周期分が飛ばされ、通常の負荷変動周期が維持されていない。ただし、他のコア#2及び#3では、タイマ値が110のタイミングで割り込みが発生し、メモリ20へのアクセスへの切り替えが行われ、通常の負荷変動周期が維持される。
【0098】
この場合、コンピュータ1全体の負荷変動は、最下段のグラフで示すように、負荷変動周期における2回目のメモリ20へのアクセスでは、コア1でメモリ20へのアクセスが行われなかった分、負荷が減少する。ただし、全体として、DDC40に対して負荷が欠けられており、負荷変動周期における2回目のメモリ20へのアクセスにおいても、負荷変動試験プログラムによる負荷変動試験は実行されており、試験目的は達成できている。
【0099】
また、本実施例では、3つのコアがある場合で説明したが、コアはいくつあっても本実施例に係る負荷変動試験プログラムは同様に試験を行うことができる。そして、コアの数が多いほど、いずれかのコアでの負荷変動の周期を省略した影響を低減させることができる。
【0100】
以上に説明したように、本実施例に係る負荷変動試験プログラムは、複数のコアに対して同時に負荷変動試験をそれぞれ独立させて実行させることができる。これにより、試験対象のコンピュータ全体として負荷変動の周期を省略した影響を低減することができ、時間監視処理と電源の負荷変動試験の実効性を高めることが可能となる。
【0101】
なお、図2に例示した試験条件設定部100及び試験実行部200の機能を実現するための負荷変動試験プログラムについては、必ずしも、上述のように最初からハードディスク30に記憶させておかなくてもよい。例えば、コンピュータ1に挿入されるフレキシブルディスク、いわゆるCD(Compact Disc)、DVD(Digital Versatile Disc)ディスク、光磁気ディスク、IC(Integrated Circuit)カードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ1のCPU10がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介してコンピュータ1に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ1がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【0102】
1 コンピュータ
10 CPU
11 キャッシュ
20 メモリ
30 ハードディスク
40 DDC
100 試験条件設定部
101 変動周期計算部
102 タイマ割込セット部
200 試験実行部
201 メモリアクセス切替部
202 タイマ値取得部
203 タイマ割込値調整部
204 試験実行時間確認部
211 メモリアクセス部
212 キャッシュアクセス部
300 クロック生成部
400 割込レジスタ
図1
図2
図3
図4
図5
図6
図7
図8
図9