(57)【要約】【課題】開発者がプロセッサのアイドル状態を自由に定義することができるデバッグシステムを提供すること。【解決手段】本発明は、システムクロックに基づいてプロセッサの駆動時間を計測する第１の計時手段と、プロセッサが特定状態にあることを定義する情報を、コンピュータ装置からの指令に基づいて記憶した定義記憶手段と、定義記憶手段に記憶された情報に基づいてプロセッサが特定状態にあると判断される間、制御信号を出力する制御手段と、プロセッサが特定状態にある時間を計測する第２の計時手段とを有するプロセッサと、定義記憶手段に情報の記憶を指示する指令を出力する指令出力手段と、第１の計時手段の計測結果および第２の計時手段の計測結果を用いて、プロセッサの使用率を算出する使用率算出手段とを有するコンピュータ装置を有するデバッグシステムを提供する。【選択図】図２
2007219638.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ処理を行うコンピュータ装置と、デバッグ処理の対象となるプロセッサとを有するデバッグシステムであって、
前記プロセッサが、
前記プロセッサを駆動するためのシステムクロックが入力されるクロック入力手段と、
前記クロック入力手段を介して入力されたシステムクロックに基づいて、前記プロセッサの駆動時間を計測する第１の計時手段と、
前記プロセッサが特定状態にあることを定義する情報を、前記コンピュータ装置からの指令に基づいて記憶した定義記憶手段と、
前記定義記憶手段に記憶された情報に基づいて前記プロセッサが特定状態にあると判断される間、制御信号を出力する制御手段と、
前記システムクロックと、前記制御手段から出力される制御信号とに基づいて、前記プロセッサが特定状態にある時間を計測する第２の計時手段と
を有し、
前記コンピュータ装置が、
前記定義記憶手段に前記情報の記憶を指示する指令を出力する指令出力手段と、
前記第１の計時手段の計測結果および前記第２の計時手段の計測結果を用いて、前記プロセッサの使用率を算出する使用率算出手段と
を有する
ことを特徴とするデバッグシステム。
【請求項２】
プロセッサであって、
前記プロセッサを駆動するためのシステムクロックが入力されるクロック入力手段と、
他の装置との間で信号の入出力を行う入出力手段と、
前記入力手段を介して入力されたシステムクロックに基づいて、前記プロセッサの駆動時間を計測する第１の計時手段と、
前記プロセッサが特定状態にあることを定義する情報を、前記入出力手段を介して他の装置から入力された指令に基づいて記憶した定義記憶手段と、
前記定義記憶手段に記憶された情報に基づいて前記プロセッサが特定状態にあると判断される間、制御信号を出力する制御手段と、
前記システムクロックと、前記制御手段から出力される制御信号とに基づいて、前記プロセッサが特定状態にある時間を計測する第２の計時手段と
を有するプロセッサ。
【請求項３】
前記記憶手段が、前記プロセッサが実行可能な少なくとも一の命令を記憶し、
前記プロセッサが前記記憶手段に記憶された命令のいずれかを実行している間、前記制御手段が、前記制御信号を出力する
ことを特徴とする請求項２に記載のプロセッサ。
【請求項４】
実行される命令のアドレスを示すプログラムカウンタをさらに有し、
前記記憶手段が、開始アドレスおよび終了アドレスを記憶し、
前記プロセッサが前記開始アドレスと前記終了アドレスの間に位置するアドレスの命令を実行している間、前記制御手段が、前記制御信号を出力する
ことを特徴とする請求項２に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、使用率を計測するためのタイマを有するプロセッサ、およびこのプロセッサを用いたデバッグシステムに関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）等のプロセッサを有する装置あるいはシステムの開発時に用いるデバッグシステムにおいて、プロセッサの使用率を知ることは装置あるいはシステム開発の大きな指針となる。プロセッサの使用率を計測する技術としては、例えば特許文献１〜３に記載された技術がある。特許文献１は、システムの動作時間を計測する第１の刻時手段と、中央処理装置が無負荷あるいは使用中の時間を計測する第２の刻時手段を有する中央処理装置を開示している。特許文献２は、あらかじめ測定されたＣＰＵ使用率テーブルを記憶したコンピュータシステムにおけるＣＰＵ使用率の計測方法を開示している。特許文献３は、タスク走行状態、タスク割り込み状態、アイドル状態、アイドル割り込み状態におけるＣＰＵ使用率の測定を行う技術を開示している。
【特許文献１】特開昭６０−０１０３５５号公報
【特許文献２】特開昭６３−０６８９４４号公報
【特許文献３】特開平７−１７５６８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献２および３は、ＣＰＵの使用率をソフトウェア的に計測するものであった。そのため、システムサイクルレベルでの使用率を測定することができず、得られる使用率は必ずしも正確なものではないという問題があった。特許文献１はＣＰＵ使用率を計測するためのタイマを内蔵したＣＰＵを開示しているが、ＣＰＵのアイドル状態はあらかじめ決められていた。しかし、システム開発において、プロセッサの使用状態あるいはアイドル状態の定義は、開発者あるいは開発対象により異なることが多い。しかし、特許文献１〜３に記載の技術はいずれも、開発者がプロセッサのアイドル状態を自由に定義できるものではなかった。
【０００４】
本発明は上述の事情に鑑みてなされたものであり、開発者（ユーザ）がプロセッサのアイドル状態を自由に定義することができるデバッグシステム、およびこのデバッグシステムに用いるプロセッサを提供する。
【課題を解決するための手段】
【０００５】
上述の課題を解決するため、本発明は、デバッグ処理を行うコンピュータ装置と、デバッグ処理の対象となるプロセッサとを有するデバッグシステムであって、前記プロセッサが、前記プロセッサを駆動するためのシステムクロックが入力されるクロック入力手段と、前記クロック入力手段を介して入力されたシステムクロックに基づいて、前記プロセッサの駆動時間を計測する第１の計時手段と、前記プロセッサが特定状態にあることを定義する情報を、前記コンピュータ装置からの指令に基づいて記憶した定義記憶手段と、前記定義記憶手段に記憶された情報に基づいて前記プロセッサが特定状態にあると判断される間、制御信号を出力する制御手段と、前記システムクロックと、前記制御手段から出力される制御信号とに基づいて、前記プロセッサが特定状態にある時間を計測する第２の計時手段とを有し、前記コンピュータ装置が、前記定義記憶手段に前記情報の記憶を指示する指令を出力する指令出力手段と、前記第１の計時手段の計測結果および前記第２の計時手段の計測結果を用いて、前記プロセッサの使用率を算出する使用率算出手段とを有することを特徴とするデバッグシステムを提供する。
このデバッグシステムによれば、アイドル状態などの特定状態は、コンピュータ装置からの指令に基づいてプロセッサに記憶される。したがって、ユーザは、コンピュータ装置を介して指令することにより、特定状態を任意に設定することができる。
【０００６】
また、本発明は、そのプロセッサを駆動するためのシステムクロックが入力されるクロック入力手段と、他の装置との間で信号の入出力を行う入出力手段と、前記入力手段を介して入力されたシステムクロックに基づいて、前記プロセッサの駆動時間を計測する第１の計時手段と、前記プロセッサが特定状態にあることを定義する情報を、前記入出力手段を介して他の装置から入力された指令に基づいて記憶した定義記憶手段と、前記定義記憶手段に記憶された情報に基づいて前記プロセッサが特定状態にあると判断される間、制御信号を出力する制御手段と、前記システムクロックと、前記制御手段から出力される制御信号とに基づいて、前記プロセッサが特定状態にある時間を計測する第２の計時手段とを有するプロセッサを提供する。
このプロセッサによれば、アイドル状態などの特定状態は、コンピュータ装置など他の装置からの指令に基づいて記憶される。したがって、ユーザは、コンピュータ装置を介して指令することにより、特定状態を任意に設定することができる。
【０００７】
好ましい態様において、このプロセッサは、前記記憶手段が、少なくとも一の命令を記憶し、前記プロセッサが前記記憶手段に記憶された命令のいずれかを実行している間、前記制御手段が、前記制御信号を出力してもよい。この態様のプロセッサによれば、ユーザは、特定の命令を実行しているとき、プロセッサが特定状態にあると設定することができる。
別の好ましい態様において、このプロセッサは、実行する命令のアドレスを示すプログラムカウンタをさらに有し、前記記憶手段が、開始アドレスおよび終了アドレスを記憶し、前記プロセッサが前記開始アドレスと前記終了アドレスの間に位置するアドレスの命令を実行している間、前記制御手段が、前記制御信号を出力してもよい。この態様のプロセッサによれば、ユーザは、特定のアドレスに対応する命令を実行しているとき、プロセッサが特定状態にあると設定することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の一実施形態について説明する。
図１は、本発明の一実施形態に係るデバッグシステム１の構成を示す図である。マイクロコンピュータ１００は、デバッグシステム１においてデバッグ処理の対象となる電子機器（ターゲット）である。マイクロコンピュータ１００は、特に、デバッグ対象となるＣＰＵ１１０を有している。ＰＣ２００は、デバッグ処理を行うコンピュータ装置である。マイクロコンピュータ１００とＰＣ２００とは、ＩＣＥ（In-Circuit Emulator）３００を介して接続されている。ＩＣＥ３００は、ハードウェア（ＣＰＵ１１０）とソフトウェア（プログラム）の動作確認を行うための装置である。ＩＣＥ３００は、例えば以下の機能を提供する。（１）マイクロコンピュータ１００にプログラムを１ステップずつ実行させる機能。（２）メモリの内容を表示したり、編集したりする機能。（３）マイクロコンピュータ１００の動作を、プログラムのアドレスなど任意の条件で停止させる機能。さらに、このときのレジスタの値を表示、編集する機能。（４）プログラムの動作を表示、記録する機能。（５）デバッグ対象ハードウェア（マイクロコンピュータ１００）とのインターフェース。
【０００９】
マイクロコンピュータ１００は、詳細には以下の要素を有する。ＣＰＵ１１０は、マイクロコンピュータ１００の各部を制御する制御装置である。また、ＣＰＵ１１０は、デバッグ処理の主対象となる装置である。ＲＡＭ（Random Access Memory）１２０は、ＣＰＵ１１０がプログラムを実行する際の作業領域として機能するメモリである。ＲＯＭ（Read Only Memory）１３０は、マイクロコンピュータ１００を動作させるのに必要なプログラムやデータを記憶したメモリである。ＩＦ（Interface）１４０は、マイクロコンピュータ１００と他の機器との間で信号の入出力を行うインターフェースである。実行情報出力部１５０は、デバッグ処理に必要な情報を出力するインターフェースである。クロック生成部１６０は、システムクロックを生成する。クロック生成部１６０は、生成したシステムクロックを、ＣＰＵ１１０、ＩＦ１４０などに提供する。バス１９０は、以上で説明した各要素間でデータや信号のやり取りを行う伝送路である。
【００１０】
図２は、ＣＰＵ１１０の構成を示す図である。分周器１１１は、ＣＰＵ１１０を駆動するためのシステムクロックが入力されるクロック入力手段である。分周器１１１は、システムクロックを分周し、クロック信号を生成する。タイマＡは、分周器１１１から供給されるクロック信号に基づいて、ＣＰＵ１１０が駆動している時間を計測する。定義記憶部１１２は、ＣＰＵ１１０が特定状態（ここではアイドル状態）にあることを定義する情報を記憶したレジスタである。定義記憶部１１２は、命令登録ユニット１１２１と、アドレス登録ユニット１１２２とを有する。命令登録ユニット１１２１は、ＣＰＵ１１０が実行可能な命令を少なくとも一つ記憶する。アドレス登録ユニット１１２２は、開始アドレスおよび終了アドレスを記憶する。制御部１１３は、定義記憶部１１２に記憶された情報に基づいて、ＣＰＵ１１０がアイドル状態にあるか判断する。ＣＰＵ１１０が、命令登録ユニット１１２１に記憶された命令を実行しているとき、制御部１１３は、ＣＰＵ１１０がアイドル状態にあると判断する。また、ＣＰＵ１１０が、アドレス登録ユニット１１２２に記憶された開始アドレスと終了アドレスの間に位置するアドレスの命令を実行しているとき、制御部１１３は、ＣＰＵ１１０がアイドル状態にあると判断する。ＣＰＵ１１０がアイドル状態にあると判断している間、制御部１１３は、タイマＢに制御信号を出力する。タイマＢは、制御部１１３から制御信号が出力されている間、分周器１１１から供給されるクロック信号に基づいて、制御信号が出力されている時間を計測する。すなわち、タイマＢは、ＣＰＵ１１０がアイドル状態にあった時間を計測するタイマである。プログラムカウンタ１１４は、ＲＡＭ１２０またはＲＯＭ１３０において、ＣＰＵ１１０が実行すべき命令が記憶されているアドレスを指定する。ＣＰＵ１１０は、プログラムカウンタ１１４により指定されたアドレスに記憶された命令を実行する。命令を実行すると、ＣＰＵ１１０は、プログラムカウンタ１１４に記憶されたアドレスをカウントアップする。Ｉ／Ｏ１１５は、タイマＡおよびタイマＢが計測した時間を出力するインターフェースである。ＣＰＵ１１０は、この他、従来知られている要素を有するが、図２においては図示が省略されている。
【００１１】
図３は、デバッグシステム１の動作を示すフローチャートである。ステップＳ１００において、デバッグシステム１は、アイドル状態定義情報を記憶する。詳細には次のとおりである。ＰＣ２００は、デバッグ処理を行うためのアプリケーションを実行している。ユーザは、ＰＣ２００のキーボード、マウス等のユーザインターフェース（図示略）を操作することにより、アイドル状態として定義することを要求する命令を指定する。ユーザは、例えば、ＣＰＵ１１０が「ＨＡＬＴ（ホルト）」、「ＳＬＰ（スリープ）」、「ＪＰ０（ジャンプゼロ）」という命令を実行している間は、ＣＰＵ１１０はアイドル状態であると定義することを要求する。ＰＣ２００は、ユーザの操作入力により指定された命令を、定義記憶部１１２に記憶させる命令を出力する。ＣＰＵ１１０は、ＩＣＥ３００、ＩＦ１４０などを介してその命令を受け取ると、命令登録ユニット１１２１に、指定された命令に相当する命令コードを記憶する。
【００１２】
また、ユーザは、ＣＰＵ１１０に実行させるプログラムにおいて、アイドル状態として定義することを要求する部分を指定する。例えば、デバッグ対象となるプログラムが複数のサブルーチンを有する場合、ユーザは、そのうちの一のサブルーチンをアイドルタスクとして、ＰＣ２００において指定する。ＰＣ２００は、ユーザにより指定されたサブルーチンを特定する情報を、定義記憶部１１２に記憶させる命令を出力する。この命令は、メモリ空間のうち、ユーザにより指定されたサブルーチンに相当する領域の開始アドレスおよび終了アドレスを含む。ＣＰＵ１１０は、ＩＣＥ３００、ＩＦ１４０などを介してその命令を受け取ると、アドレス登録ユニット１１２２に、指定されたサブルーチンを特定する開始アドレス（例えば、「００５００」）および終了アドレス（例えば、「０１０００」）を記憶する。
【００１３】
図４は、命令登録ユニット１１２１の記憶内容を例示する図である。図５は、アドレス登録ユニット１１２２の記憶内容を例示する図である。実際にはこれらの情報は２進数として記憶されるが、ここでは便宜上ソースコードおよび１６進数として記載する。
【００１４】
再び図３を参照して説明する。ステップＳ１１０において、デバッグシステム１は、タイマを初期化する。詳細には次のとおりである。ＰＣ２００は、タイマの初期化を指示する命令を出力する。この命令を受け取ると、ＣＰＵ１１０は、タイマＡおよびタイマＢを初期化する。すなわち、タイマＡおよびタイマＢの値を、それぞれ０（ゼロ）にする。
【００１５】
次に、ステップＳ１２０において、デバッグシステム１は、デバッグ処理を開始する。デバッグ処理が行われている間、クロック生成部１６０は、システムクロックを生成する。クロック生成部１６０は、生成したシステムクロックをＣＰＵ１１０に供給する。ＣＰＵ１１０の分周器１１１は、システムクロックを分周してクロック信号を生成する。タイマＡは、分周器１１１からクロック信号が供給されている間、クロック信号のクロックの数をカウントする。すなわち、タイマＡは、ＣＰＵ１１０が駆動している時間を計測する。デバッグ処理は、基本的に従来から知られているとおりに行われる。例えば、ＣＰＵ１１０は、デバッグ対象のプログラムを１ステップずつ実行する。ＩＣＥ３００は、１ステップ毎に、メモリやレジスタの記憶内容を取得する。ＩＣＥ３００は、取得した情報をＰＣ２００に出力する。ＰＣ２００は、取得した情報をディスプレイ（図示略）などに表示する。
【００１６】
デバッグ処理中、デバッグシステム１は、ステップＳ１３０において、条件に応じてタイマＢ（アイドル用タイマ）を作動させる。詳細には次のとおりである。制御部１１３は、実行する命令が、命令登録ユニット１１２１に記憶されている命令と同一であるか判断する。同一である場合、制御部１１３は、タイマＢに制御信号を出力する。タイマＢは、制御部１１３から制御信号が供給されている間、分周器１１１から供給されるクロック信号のクロックの数をカウントする。タイマＢは、制御部１１３から制御信号が供給されていない間は、クロック信号のクロックの数をカウントしない。このように、タイマＢは、制御部１１３から制御信号が出力されている時間を計測するタイマである。制御信号は、ＣＰＵ１１０が特定状態（ここではアイドル状態）にあるときのみ出力される。すなわち、タイマＢは、ＣＰＵ１１０がアイドル状態にある時間を計測するタイマである。
【００１７】
ステップＳ１４０において、デバッグシステム１は、計測終了（デバッグ処理終了）の条件が満たされたか判断する。計測終了の条件は、ユーザにより指定される。計測終了の条件は、例えば、処理がデバッグ対象プログラムの特定の位置に達したという条件である。また、ＰＣ２００のディスプレイに表示される情報を見て、ユーザがＰＣ２００に対し特定の操作入力を行ったという条件でもよい。あるいは、メモリやレジスタに記憶された内容が特定の値になったときという条件でもよい。計測終了の条件が満たされた場合（ステップＳ１４０：ＹＥＳ）、デバッグシステム１は、処理をステップＳ１５０に移行する。計測終了の条件が満たされないうちは、デバッグシステム１は、デバッグ処理を繰り返し行う。
【００１８】
ステップＳ１５０において、デバッグシステム１は、ＣＰＵ１１０の使用率を算出する。詳細には次のとおりである。ＰＣ２００は、タイマＡおよびタイマＢに記憶された値ＣＡおよびＣＢを出力させる命令を、ＣＰＵ１１０に出力する。この命令を受け取ると、ＣＰＵ１１０は、Ｉ／Ｏ１１５を介してタイマＡおよびタイマＢに記憶された値ＣＡおよびＣＢを出力する。ＰＣ２００は、タイマＡおよびタイマＢの値ＣＡおよびＣＢから、ＣＰＵ１１０の使用率ｒを、例えばｒ＝（ＣＡ−ＣＢ）／ＣＡとして算出する。
【００１９】
ステップＳ１６０において、デバッグシステム１は、ＣＰＵ１１０の使用率を出力する。すなわち、ＰＣ２００は、算出した使用率をディスプレイに表示するなどして、ユーザにＣＰＵ１１０の使用率を通知する。
【００２０】
以上で説明したように本発明によれば、デバッグシステム１のユーザは、任意の条件を、ＣＰＵ１１０がアイドル状態にある条件として指定することができる。これにより、ユーザの意図した条件でＣＰＵ使用率を測定することができる。
【００２１】
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の実施形態においては、デバッグ処理の主対象となるハードウェアがＣＰＵである例について説明したが、ＣＰＵ以外のプロセッサに対して本発明を適用してもよい。また、上述の実施形態においては、デバッグ処理の対象となるハードウェアがマイクロコンピュータ１００である例について説明したが、デバッグ処理の対象となるハードウェアはマイクロコンピュータに限定されない。デバッグ処理の対象となるプロセッサを有する電子機器であれば、どのようなものでもよい。なお、プロセッサとは、種々の演算を行う電子回路をいう。
【００２２】
また、上述の実施形態においては、定義記憶部１１２が、命令登録ユニット１１２１とアドレス登録ユニット１１２２の両方を有する例について説明したが、定義記憶部１１２は、命令登録ユニット１１２１とアドレス登録ユニット１１２２のうちいずれか一方のみを有してもよい。
【００２３】
また、上述の実施形態においては、デバッグシステム１が、デバッグ処理が完了した後にＣＰＵ使用率を算出し、出力する例について説明した。しかし、デバッグシステム１は、デバッグ処理と平行してリアルタイムでＣＰＵ使用率を算出してもよい。すなわち、ＣＰＵ１１０は、デバッグ処理の対象となるプログラムを１ステップ実行する毎に、タイマＡおよびタイマＢに記憶された値ＣＡおよびＣＢを出力してもよい。ＰＣ２００は、ＣＡおよびＣＢの値を経時的に記憶することができる。ＰＣ２００は、これらの値からＣＡおよびＣＢの移動平均を算出することができる。ＰＣ２００は、この移動平均を用いてＣＰＵ使用率をリアルタイムで算出してもよい。
【００２４】
また、上述の実施形態においては、ＣＰＵ１１０の「特定状態」が、アイドル状態である態様について説明した。しかし、特定状態は、アイドル状態に限定されない。例えば、命令登録ユニット１１２１が、ＣＰＵ１１０をアイドル状態以外の状態にする命令を記憶すると、デバッグシステム１は、ＣＰＵ１１０がその命令を実行している時間の割合を算出することができる。また、例えば、アドレス登録ユニット１１２２が、ＣＰＵ１１０をアイドル状態以外の状態にするサブルーチンに対応するアドレスを記憶すると、デバッグシステム１は、そのサブルーチンを実行している時間の割合を算出することができる。
【００２５】
また、デバッグシステム１は、次のように用いられてもよい。まず、ユーザは、命令登録ユニット１１２１に例えばａｄｄ命令を登録する。実施形態で説明したように、デバッグシステム１は、ａｄｄ命令を実行するときのＣＰＵ使用率を算出する。次に、ユーザは、同様に、例えば、ｓｕｂ命令、ｊｐ命令、ｃａｌｌ命令、ｌｄ命令を順番に命令登録ユニット１１２１に登録する。デバッグシステム１は、これらの命令についてそれぞれＣＰＵ使用率を算出する。例えば、ａｄｄ命令のＣＰＵ使用率が３０％、ｓｕｂ命令のＣＰＵ使用率が３０％、ｊｐ命令のＣＰＵ使用率が１０％、ｃａｌｌ命令のＣＰＵ使用率が５％、ｌｄ命令のＣＰＵ使用率が５％という結果が得られる。ユーザは、ＣＰＵ使用率の算出結果に基づいて、「ＣＰＵの性能を向上させるためには演算処理の高速化が有効」、「ソフトウェアで演算処理を減らせばＣＰＵ使用率を低減できる」、「演算処理の少ない仕様に変更すれば高速化できる」などの判断をすることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態に係るデバッグシステム１の構成を示す図である。
【図２】ＣＰＵ１１０の構成を示す図である。
【図３】デバッグシステム１の動作を示すフローチャートである。
【図４】命令登録ユニット１１２１の記憶内容を例示する図である。
【図５】アドレス登録ユニット１１２２の記憶内容を例示する図である。
【符号の説明】
【００２７】
１…デバッグシステム、１００…マイクロコンピュータ、１１０…ＣＰＵ、１１１…分周器、１１２…定義記憶部、１１３…制御部、１１４…プログラムカウンタ、１１５…Ｉ／Ｏ、１２０…ＲＡＭ、１３０…ＲＯＭ、１４０…ＩＦ、１５０…実行情報出力部、１６０…クロック生成部、１９０…バス、２００…ＰＣ、３００…ＩＣＥ、１１２１…命令登録ユニット、１１２２…アドレス登録ユニット
【図１】
2007219638.tif 000003
【図２】
2007219638.tif 000004
【図３】
2007219638.tif 000005
【図４】
2007219638.tif 000006
【図５】
2007219638.tif 000007