JPH076062A - Cpuの稼働率測定方法 - Google Patents

Cpuの稼働率測定方法

Info

Publication number
JPH076062A
JPH076062A JP5148790A JP14879093A JPH076062A JP H076062 A JPH076062 A JP H076062A JP 5148790 A JP5148790 A JP 5148790A JP 14879093 A JP14879093 A JP 14879093A JP H076062 A JPH076062 A JP H076062A
Authority
JP
Japan
Prior art keywords
cpu
operating rate
time
sampling
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5148790A
Other languages
English (en)
Inventor
Kyoko Abe
京子 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5148790A priority Critical patent/JPH076062A/ja
Publication of JPH076062A publication Critical patent/JPH076062A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】CPUの稼働率を測定する方法に関し、ソフト
ウエアにおいて、エミュレータを使用することなく、簡
易に、かつ正確にCPUの稼働率を測定できるようにす
ることを目的とする。 【構成】HLT命令を有しないCPUを利用したソフト
ウェアにおいて、OSのアイドリング処理1中にループ
回数カウント手段2を設けて、プログラムのループ回数
をカウンタ領域3にカウント・アップし、一定時間ごと
に起動される定期起動プログラム4中にサンプリング手
段5を設けて、カウンタ領域3の値をサンプリング領域
6に複数回サンプリングして得られたサンプル値を用い
てCPUの稼働率を測定することで構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、CPUの稼働率を測定
する方法に関し、特にソフトウエアのアプリケーション
開発における、CPUの稼働率測定方法に関するもので
ある。
【0002】近年において、あらゆる分野にコンピュー
タシステムが導入されるようになったが、これに伴っ
て、それぞれのシステムに占めるソフトウエアの役割も
増大し、その動きも複雑化している。
【0003】ソフトウエアのアプリケーション開発にお
いては、CPUの稼働率を考慮して設計を行うことが必
要であって、処理の遅延や、無限ループ,無応答等のC
PUハングアップを防止するために、最繁時でも、CP
U稼働率を90パーセント程度に抑えることが必要であ
り、そのためCPUの稼働率を測定することが必要にな
る。
【0004】CPUの稼働率の測定方法は、CPUのH
LT(Halt; 休止) 命令の有無にかかわらず、簡単な方
法で、正確に測定を行えるものであることが要望され
る。
【0005】
【従来の技術】従来、CPUの稼働率の測定方法として
は、対象とするシステムと同一のデータを用いて、同一
のプログラムを実行して、同一の結果を得ることができ
るエミュレータを使用し、このエミュレータに測定機能
を備えることによって、CPUの稼働率を測定する方法
が一般に用いられている。
【0006】
【発明が解決しようとする課題】エミュレータによって
CPUの稼働率の測定を行う場合には、エミュレータの
使用によってバスが延長されるため、処理スピードが低
下することが避けられない。そのため、実際のCPUの
稼働率より高い稼働率値が算出されることになるので、
厳密に正確な測定方法ということはできない。
【0007】このようにエミュレータを用いたCPUの
稼働率の測定方法では、特に高速処理を目的とする、例
えばμs単位の性能が必要とされる情報処理システム等
の開発の場合には、設計誤りを引き起こすのに十分な、
誤差となる可能性がある。
【0008】さらにフィールドと試験室レベルとでは、
環境的に差異があるため、フィールドにおけるCPUの
稼働率を知ることは、開発(改造)を進める上で重要な
要素である。しかしながら、フィールドにエミュレータ
を持ち込むことは困難であって、実質的に、フィールド
でのCPUの稼働率を知ることは不可能な状態である。
そのため、ソフトウエアのアプリケーション開発に際し
て、フィールドでのCPUの稼働率を測定できるように
することについての要望が開発者の間で高まっている。
【0009】本発明は、このような従来技術の課題を解
決しようとするものであって、ソフトウエアのアプリケ
ーション開発において、エミュレータを使用することな
く、簡易に、かつ正確にCPUの稼働率を測定できる方
法を提供することを目的としている。
【0010】
【課題を解決するための手段】図1は、本発明の原理的
構成を示したものである。 (1) HLT命令を有しないCPUを利用したソフトウェ
アにおいて、OSのアイドリング処理1中にループ回数
カウント手段2を設けて、プログラムのループ回数をカ
ウンタ領域3にカウント・アップし、一定時間ごとに起
動される定期起動プログラム4中にサンプリング手段5
を設けて、カウンタ領域3の値をサンプリング領域6に
複数回サンプリングし、このサンプル値を用いてCPU
の稼働率を測定する。
【0011】(2)(1)において、ループ回数の複数回のサ
ンプル値の平均値を求め、単位時間からサンプル値の平
均値とループ実行時間との積を減算して求められた実稼
働時間と、単位時間との比によってCPUの稼働率を求
める。
【0012】(3)(1)において、ループ回数の複数回のサ
ンプル値の合計値を求め、サンプリング合計時間からサ
ンプル値の合計値とループ実行時間との積を減算して求
められた実稼働時間と、サンプリング合計時間との比に
よってCPUの稼働率を求める。
【0013】(4) HLT命令を有するCPUを利用した
ソフトウェアにおいて、マシン・サイクル回数カウント
手段7を設けて、HLT命令実行中におけるマシン・サ
イクル回数をカウンタ領域3にカウント・アップし、一
定時間ごとに起動される定期起動プログラム4中にサン
プリング手段5を設けて、カウンタ領域3の値をサンプ
リング領域6に複数回サンプリングし、このサンプル値
を用いてCPUの稼働率を測定する。
【0014】
【作用】一般的に、HLT(CPU休止状態)命令を有
しないCPU用OS(オペレーティングシステム)で
は、実行すべき処理がなくなった状態では、プログラム
のある部分をループするアイドリング処理を行い、実行
すべき処理が発生したとき、アイドリング処理を停止す
る処理が行われる。
【0015】図2は、通常のアイドリング処理を示した
ものであって、アイドリング処理開始時、割り込み許可
によって、プログラムのある部分をループする処理が行
われることが示されている。
【0016】本発明においては、HLT命令を有しない
CPUを利用したソフトウェアにおいて、OSのアイド
リング処理中においてループ回数をカウントして、カウ
ント回数を一定時間ごとに複数回サンプリングし、この
サンプル値を用いてCPUの稼働率を測定する。
【0017】図3は、本発明の作用を説明するものであ
る。HLT命令を有しないCPUを利用したソフトウェ
アにおいて、OSのアイドリング処理中に、プログラム
のループ回数をカウンタ領域11に書き込んでカウント
・アップし、一定時間ごとに起動されるプログラム中に
おいて、カウンタ領域11の値を読みだして、カウンタ
・セーブ領域12に複数回書き込むとともに、カウンタ
領域11をクリアする。そしてこのサンプル値を用い
て、CPUの稼働率を測定する。
【0018】CPUの稼働率の測定は、ループ回数の複
数回のサンプル値の平均値を求め、単位時間からサンプ
ル値の平均値とループ実行時間との積を減算して求めら
れた実稼働時間と、単位時間との比によって、CPUの
稼働率を求めるようにしてもよい。
【0019】CPUの稼働率の測定は、ループ回数の複
数回のサンプル値の合計値を求め、サンプリング合計時
間からサンプル値の合計値とループ実行時間との積を減
算して求められた実稼働時間と、サンプリング合計時間
との比によって、CPUの稼働率を求めるようにしても
よい。
【0020】また、HLT命令を有するCPUを利用し
たソフトウェアの場合は、HLT命令実行中におけるマ
シン・サイクル回数をカウントして、カウンタ回数を一
定時間ごとに複数回サンプリングし、このサンプル値を
用いてCPUの稼働率を測定することができる。
【0021】
【実施例】図4は、本発明によるアイドリング処理のフ
ローチャートを示したものであって、OSのアイドリン
グ処理にカウンタ(アイドル・カウンタ)を設け、1回
ループするごとに、このカウンタを1カウント・アップ
する処理を挿入することが示されている。
【0022】図5は、本発明によるシステム・クロック
・ハンドラのフローチャートを示したものである。本発
明においては、アイドル・カウンタを十分な数だけバッ
クアップできる領域を設け、システム・クロック・ハン
ドラのように、一定時間ごとに確実に起動されるプログ
ラム中において、このアイドル・カウンタをサンプリン
グ,バックアップして、再びアイドル・カウンタを0ク
リアする処理を追加する。
【0023】すなわち、まず、アイドリング処理で、ル
ープする回数を書き込む領域を確保する。この領域に書
き込まれているループ回数を、アイドル・カウンタとす
る。
【0024】さらに、アイドル・カウンタをセーブする
領域を確保する。この領域全体をサンプリング領域とし
て、サンプリング領域のどの部分にアイドル・カウンタ
を保存するかを指定するカウンタを、サンプル・カウン
タとする。
【0025】まず、ステップ1に示すように、システム
・クロック・ハンドラ中で、アイドリング処理で書き込
んだアイドル・カウンタを読み出す。
【0026】次に、ステップ2に示すように、サンプリ
ング領域「サンプル・カウンタ」に、読み出したアイド
ル・カウンタを書き込む。
【0027】さらにステップ3に示すように、アイドル
・カウンタを0クリアし、再びアイドリング処理で0か
らカウント・アップできるようにする。
【0028】ステップ4に示すように、次回のシステム
・クロック・ハンドラで読み出したアイドル・カウンタ
を書き込む部分を決定するために、サンプル・カウンタ
をインクリメントする。
【0029】ステップ5に示すように、サンプル・カウ
ンタがサンプリング領域を超えているか否かを判定し、
超えている場合には、ステップ5−1に示すようにサン
プル・カウンタを0クリアする。
【0030】なお、ステップ4,ステップ5をステップ
1より前に実行し、今回のシステム・クロック・ハンド
ラでアイドル・カウンタを書き込む領域を決定するよう
にしてもよい。
【0031】CPUの稼働率の測定を行う場合には、予
めCPUマニュアルから、CPUの実行クロック数を求
めるか、または実行時間の測定を行って、アイドリング
に要する時間を算出しておく。その後、サンプリングを
行うのに十分な時間、プログラムを実行し、サンプリン
グ領域におけるサンプル・カウンタをオンライン・デバ
ッガでダンプして、フロッピー・ディスクにセーブす
る。そして、平均値算出プログラム等によって平均値を
算出し、〔単位時間−(平均値×実行時間)〕/単位時
間を計算することによって、CPU稼働率を求めること
ができる。
【0032】図6は、CPU稼働率測定方法の一例を示
すフローチャートである。 (1) まずCPUマニュアルからアイドル・ルーチンの実
行時間を算出する。 (2) 次に、アイドル・カウンタのサンプリングによっ
て、アイドル・ルーチン実行回数(ループ回数)の平均
値を算出する。
【0033】(3) アイドル・ルーチンの実行時間(ルー
プ実行時間)とアイドル・ルーチン実行回数の平均値と
から、平均のアイドリング時間を求める。 (4) 次の計算式によって、稼働率を求める。ここではシ
ステム・クロック時間を単位時間としている。 (システム・クロック時間−平均のアイドリング時間)
/システム・クロック時間
【0034】また、サンプリングされた値を合計して、
〔サンプリング合計時間−(サンプル値の合計値×ルー
プ実行時間)〕/サンプリング合計時間を計算してもC
PU稼働率を求めることもできる。
【0035】またHLT命令を有するCPUでは、HL
T命令を実行するとともに、HLT命令を解除すべき次
の命令が発行されるまでの間のマシン・サイクル回数
を、同様にサンプリングして、このサンプル値から休止
時間を求め、HLT命令を含む全動作時間から休止時間
を差し引いて求めた実稼働時間と、全動作時間との比に
よって、CPUの稼働率を測定することができる。
【0036】このように本発明のCPUの稼働率測定方
法では、エミュレータを用いないでも、CPU稼働率を
求めることができるので、エミュレータ測定に基づく処
理スピードの低下がなく、従ってCPUの稼働率を簡単
にかつ正確に求めることができる。
【0037】図7は、本発明によるアイドリング処理の
具体例を示したものである。すなわち、アイドリング処
理のための割込みレベルを設定し(5サイクル)、割込
みをリセットし(2サイクル)、アイドル・カウンタに
対応する番地の内容をインクリメントし(8サイク
ル)、分岐してもとへ戻る(4サイクル)処理を繰り返
すことによって、アイドリング処理が行われる。
【0038】図8は、本発明によるシステム・クロック
・ハンドラの具体例を示したものである。clkhdr
(クロック・ハンドラ)の処理において、まず、idl
ecnt(アイドル・カウンタ)の処理を行う。 (1) 図示されないRAM領域におけるサンプル・カウン
タの値をレジスタ(RW7)にセーブする。
【0039】(2) サンプル・テーブルの先頭アドレスを
レジスタ(RW0)にセーブする。 (3) アイドル・カウンタの値をレジスタ(A)にセーブ
する。 (4) サンプル・テーブルの先頭アドレスと、サンプル・
カウンタの値を加算した位置にレジスタ(RW7)の値
をセーブする。
【0040】(5) レジスタ(A)に0をセーブする。 (6) アイドル・カウンタにレジスタ(A)の内容をセー
ブすることによって0クリアする。 (7) レジスタ(RW7)の値をレジスタ(A)にセーブ
する。
【0041】(8),(9) レジスタ(A)を2回インクリメ
ントする。これは、サンプル・カウンタ値が2バイト領
域からなるためである。 (10) レジスタ(A)の値がアイドル・カウンタの最大
値であるか否かをみる。 (11) 最大値でなければ、idleepにジャンプす
る。 (12) 最大値を超えていれば、レジスタ(A)に0をセ
ーブしてクリアする。
【0042】さらにidleepにおいて、サンプル・
カウンタにレジスタ(A)の値をセーブする。以下、次
の処理に進む。
【0043】図9は、本発明によるアイドル・カウンタ
・サンプリングの具体例を示したものである。第1列
は、サンプル・テーブルにおけるアドレスを示してい
る。これに対してアドレス81f000〜81f0F0
の第2列〜第9列にはアイドル・カウンタの値が表示さ
れ、アドレス81f000の第2列には、現在測定中の
アイドル・カウンタの値が表示され、第3列にはサンプ
ル・カウンタの値が表示されることが示されている。
【0044】以下、CPU稼働率の測定例を説明する。
サンプリングは、10msに1回行うものとする。CP
Uマニュアルまたはループ実行時間測定から、アイドリ
ングに要する時間を算出し、サンプリングする上で十分
な時間、プログラムを実行したのち、サンプリング領域
をオンライン・デバッガでダンプして、フロッピー・デ
ィスクにセーブし、平均値算出プログラム等によって、
平均値を算出する。
【0045】ここで、ループの実行時間が19サイク
ル、マシン・サイクル10MHzとすると、1サイクル=
1μsなので、ループ実行時間は19μsである。アイ
ドリングの平均回数=1EDH(493回)なので、ア
イドリング時間は、19×493=9367μs=9.
367msとなる。
【0046】これから10−9.367=0.633m
sがプログラム実行時間となり、CPU稼働率は、0.
633/10=0.0633=6.33%となる。
【0047】
【発明の効果】以上説明したように本発明によれば、エ
ミュレータを使用しなくても、CPU稼働率を正確に、
かつ簡単に測定することができる。従って本発明によれ
ば、ソフトウェアの開発時においてCPUの稼働率を正
しく予測することができるので、ソフトウェアの開発を
効率化することができるとともに、ソフトウェアの性能
向上に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明の原理的構成を示す図である。
【図2】通常のアイドリング処理を示す図である。
【図3】本発明の作用を説明する図である。
【図4】本発明によるアイドリング処理のフローチャー
トである。
【図5】本発明によるシステム・クロック・ハンドラの
フローチャートである。
【図6】CPU稼働率測定方法の一例を示すフローチャ
ートである。
【図7】本発明によるアイドリング処理の具体例を示す
図である。
【図8】本発明によるシステム・クロック・ハンドラの
具体例を示す図である。
【図9】本発明によるアイドル・カウンタ・サンプリン
グの具体例を示す図である。
【符号の説明】
1 OSのアイドリング処理 2 ループ回数カウント手段 3 カウンタ領域 4 定期起動プログラム 5 サンプリング手段 6 サンプリング領域 7 マシン・サイクル回数カウント手段

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 HLT命令を有しないCPUを利用した
    ソフトウェアにおいて、OSのアイドリング処理(1)
    中にループ回数カウント手段(2)を設けて、プログラ
    ムのループ回数をカウンタ領域(3)にカウント・アッ
    プし、一定時間ごとに起動される定期起動プログラム
    (4)中にサンプリング手段(5)を設けて、前記カウ
    ンタ領域(3)の値をサンプリング領域(6)に複数回
    サンプリングし、該サンプル値を用いてCPUの稼働率
    を測定することを特徴とするCPUの稼働率測定方法。
  2. 【請求項2】 請求項1に記載のCPUの稼働率測定方
    法において、前記ループ回数の複数回のサンプル値の平
    均値を求め、単位時間から該平均値とループ実行時間と
    の積を減算して求められた実稼働時間と単位時間との比
    によってCPUの稼働率を求めることを特徴とするCP
    Uの稼働率測定方法。
  3. 【請求項3】 請求項1に記載のCPUの稼働率測定方
    法において、前記ループ回数の複数回のサンプル値の合
    計値を求め、サンプリング合計時間から該合計値とルー
    プ実行時間との積を減算して求められた実稼働時間とサ
    ンプリング合計時間との比によってCPUの稼働率を求
    めることを特徴とするCPUの稼働率測定方法。
  4. 【請求項4】 HLT命令を有するCPUを利用したソ
    フトウェアにおいて、マシン・サイクル回数カウント手
    段(7)を設けて、HLT命令実行中におけるマシン・
    サイクル回数をカウンタ領域(3)にカウント・アップ
    し、一定時間ごとに起動される定期起動プログラム
    (4)中にサンプリング手段(5)を設けて、前記カウ
    ンタ領域(3)の値をサンプリング領域(6)に複数回
    サンプリングし、該サンプル値を用いてCPUの稼働率
    を測定することを特徴とするCPUの稼働率測定方法。
JP5148790A 1993-06-21 1993-06-21 Cpuの稼働率測定方法 Pending JPH076062A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5148790A JPH076062A (ja) 1993-06-21 1993-06-21 Cpuの稼働率測定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5148790A JPH076062A (ja) 1993-06-21 1993-06-21 Cpuの稼働率測定方法

Publications (1)

Publication Number Publication Date
JPH076062A true JPH076062A (ja) 1995-01-10

Family

ID=15460755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5148790A Pending JPH076062A (ja) 1993-06-21 1993-06-21 Cpuの稼働率測定方法

Country Status (1)

Country Link
JP (1) JPH076062A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472188B2 (en) 2005-01-06 2008-12-30 Fujitsu Limited Method and apparatus for providing monitoring-information, and computer product
JP2013511776A (ja) * 2009-11-19 2013-04-04 クゥアルコム・インコーポレイテッド マルチ・スレッド・プロセッサのパフォーマンスを測定するための方法および装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472188B2 (en) 2005-01-06 2008-12-30 Fujitsu Limited Method and apparatus for providing monitoring-information, and computer product
JP2013511776A (ja) * 2009-11-19 2013-04-04 クゥアルコム・インコーポレイテッド マルチ・スレッド・プロセッサのパフォーマンスを測定するための方法および装置
US9672132B2 (en) 2009-11-19 2017-06-06 Qualcomm Incorporated Methods and apparatus for measuring performance of a multi-thread processor

Similar Documents

Publication Publication Date Title
US10452417B2 (en) Methods, apparatus, and articles of manufacture to virtualize performance counters
CN100338581C (zh) 用于确定cpu利用率的独立于操作系统的方法和系统
EP0098169B1 (en) Data processing system
US20070050174A1 (en) Method and apparatus for adaptive tracing with different processor frequencies
US10572301B2 (en) Extract CPU time facility
JP3188862B2 (ja) 消費電力解析方法及び装置
US7617488B2 (en) Method and apparatus and determining processor utilization
WO2006012019A1 (en) Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments
US6530031B1 (en) Method and apparatus for timing duration of initialization tasks during system initialization
US20040059956A1 (en) Operating system-independent method and system of determining CPU utilization
US7904912B2 (en) Adaptive processor utilization reporting handling different processor frequencies
CA2283046C (en) Methodology for emulation of multi-threaded processes in a single-threaded operating system
CN114489801A (zh) 高精度测量嵌入式系统中断时长的方法、系统及介质
WO2012069830A1 (en) A method and system for identifying the end of a task and for notifying a hardware scheduler thereof
JPH076062A (ja) Cpuの稼働率測定方法
US5467463A (en) System independent timing reference for computer
JP2753781B2 (ja) マイクロプロセッサ装置及び割込みと自動化入出力トラップ再始動を行う方法
JP2015114675A (ja) アプリケーションソフトウェア加速試験装置および試験方法
Hall Windows CE 5.0 for real-time systems
JPS63269239A (ja) プロセツサの負荷測定方式
JPH0149975B2 (ja)
JPS6263346A (ja) 処理装置の空き時間測定方法
JPH05165655A (ja) ソフトウェアの実行時間測定装置
JPS6211748B2 (ja)
JPH04148430A (ja) エミュレータにおけるタイムアウト制御方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19981020