JP2001134463A - ソフトウェア走行履歴モニタ方法 - Google Patents

ソフトウェア走行履歴モニタ方法

Info

Publication number
JP2001134463A
JP2001134463A JP31384199A JP31384199A JP2001134463A JP 2001134463 A JP2001134463 A JP 2001134463A JP 31384199 A JP31384199 A JP 31384199A JP 31384199 A JP31384199 A JP 31384199A JP 2001134463 A JP2001134463 A JP 2001134463A
Authority
JP
Japan
Prior art keywords
program
main memory
application program
bus
operating system
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.)
Withdrawn
Application number
JP31384199A
Other languages
English (en)
Inventor
Kenji Fujizono
賢治 藤園
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 JP31384199A priority Critical patent/JP2001134463A/ja
Publication of JP2001134463A publication Critical patent/JP2001134463A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 ソフトウェア走行履歴モニタ方法に関し、2
階層からなるプロセッサシステムで2次側バスでプログ
ラムの走行情報を収集することを目的とする。 【解決手段】 アプリケーションプログラム17が起動
の際に、メインメモリ12上に走行中のプログラムを識
別するタスク番号を格納する固定エリアが決められ、ア
プリケーションプログラム17がオペレーティングシス
テム18へのサブルーティンコールは、固定エリアにタ
スク番号をセーブした上で行う。オペレーティングシス
テム18は固定エリアからタスク番号を取得し、アドレ
ス情報フィールドの空きフィールドにタスク番号を付与
し、そのアドレス情報で入出力デバイス16に対してア
クセスする。低速バス15に現れたアドレス情報を測定
器19がモニタし、そのタスク番号から走行中のプログ
ラムが属するモジュール(またはタスク)を識別でき
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はソフトウェア走行履
歴モニタ方法に関し、特に内部高速プロセッサバスと外
部汎用低速バスとで構成されるプロセッサシステムで走
行するソフトウェアの履歴をモニタするソフトウェア走
行履歴モニタ方法に関する。
【0002】プロセッサシステムまたはそのプロセッサ
システム上で走行するソフトウェアにおいて、その開発
段階または障害発生時の調査段階で、ソフトウェアのプ
ログラムがプロセッサシステムでどのように動いている
かの概略を把握することによって、プログラムのデバッ
グ作業または障害発生の原因究明を迅速に行うことが可
能となる。
【0003】
【従来の技術】図18はプロセッサシステムの構成例を
示す図である。このプロセッサシステムにおいて、プロ
セッサシステムのコアとなるマイクロプロセッサ(MP
U:micro processing unit)1は、内部プロセッサバ
ス(1次側バス)によって、システムバスコントローラ
2と、バスブリッジ3と、クロスバスイッチ4とに接続
されている。内部プロセッサバスは、マイクロプロセッ
サ1とクロスバスイッチ4とを接続するプロセッサデー
タバスと、クロスバスイッチ4とバスブリッジ3とを接
続するIO(Input/Output)データバスと、マイクロプ
ロセッサ1とシステムバスコントローラ2とバスブリッ
ジ3とを接続するアドレス信号線と、システムバスコン
トローラ2とマイクロプロセッサ1、バスブリッジ3お
よびクロスバスイッチ4とを接続する制御信号線とから
構成される。クロスバスイッチ4は、また、メモリデー
タバスによってメインメモリ5に接続されている。バス
ブリッジ3は、外部汎用バス(2次側バス)であるPC
I(Peripheral Component Interconnect)バス6に接
続され、このPCIバス6には、SCSI(Small Comp
uter System Interface)バスコントローラ7、LAN
(Local Area Network)コントローラ8などが接続され
ている。SCSIバスコントローラ7にはハードディス
ク7a、MO(Magneto-Optical)ディスクドライブ7
bなどのSCSI機器が接続され、LANコントローラ
8にはLANケーブルを介して外部のワークステーショ
ン8aなどに接続されている。
【0004】以上のプロセッサシステムの構成におい
て、マイクロプロセッサ1の直下にある上位側は、内部
プロセッサバスにて動作し、周辺機器が接続される下位
側は、外部汎用バスであるPCIバス6にて動作すると
いう2階層の構成になっている。
【0005】ここで、一般的にソフトウェアをデバッグ
する場合、ソフトウェアの走行履歴を確認しながらデバ
ッグを行うが、その走行履歴を確認する方法としてソフ
トウェアで行う方法と、ハードウェアで行う方法とがあ
る。まず、ソフトウェアの走行履歴をハードウェアで確
認する方法について説明する。
【0006】図19はハードウェアによるソフトウェア
の走行履歴確認の一例を示す図である。なお、図18に
示した要素と同じ要素については同じ符号を付してその
説明は省略する。
【0007】ハードウェア的にソフトウェアの走行履歴
をモニタする場合、測定器9がマイクロプロセッサ直下
の内部プロセッサバスに直接装着される。この測定器9
としては、たとえばロジックアナライザ、インサーキッ
トエミュレータなどが使われる。ソフトウェアの走行時
に、測定器9がバスの動作状態をモニタする。具体的に
は、測定器9を使ってバス上のアドレス/データ情報を
モニタする。その情報でソフトウェアの走行履歴を確認
することができるので、正しいプログラム走行がなされ
ているか否かの判定が可能になる。
【0008】ところで、近年のマイクロプロセッサシス
テムでは、マイクロプロセッサ1の動作周波数の向上に
伴い、マイクロプロセッサ直下の内部プロセッサバスの
動作周波数も格段に高くなってきた。このため、内部プ
ロセッサバスへの測定器9の装着が電気的な特性劣化を
引き起こし、確認すべきバス動作が正常に動作しなくな
る可能性が高くなってきている。具体的には、測定器9
の装着は各信号線の負荷容量(コンデンサ成分)を増加
させ、信号のライズタイム/フォールタイムの悪化(波
形なまり)を引き起こし、各LSI(Large Scale Inte
grated circuit)のロジック回路が誤動作することにな
る。つまり、正確なプログラム走行トレースが非常に困
難になってきている。
【0009】また、マイクロプロセッサメーカとしての
ユーザへの供給形態がマイクロプロセッサ単体での供給
ではなく、マイクロプロセッサがPCIバスのような汎
用インタフェース部分で隠蔽された形態、つまりマイク
ロプロセッサと上位の内部プロセッサバスとが作り込ま
れた形態となってきている。このため、下位の低速バス
側からは上位の内部プロセッサバスの動作、すなわちプ
ログラム走行情報を観測することができなくなってきて
いる。さらに、プロセッサ開発サイクルの短期化に伴
い、エミュレータメーカの開発が追い付かず、新規プロ
セッサに対応したエミュレーション装置がシステム開発
時には存在しないのが現状である。
【0010】このように、一般のユーザ(システムメー
カ)は、マイクロプロセッサコア部分のハードデバッグ
作業からは開放されたが、ハード開発時はもとより、障
害調査やソフトデバッグ時にソフトウェアの走行状況、
すなわち内部プロセッサバスの動作状況をハードウェア
的に把握することが困難になってきた。
【0011】一方、ソフトウェアによる走行履歴の確認
方法としては、走行のマイルストーン的なアドレス(走
行するであろうと予測されるプログラムの先頭命令の格
納アドレスなど)に本来の命令ではなくトラップ命令を
挿入し、そのアドレスまで到達したならトラップ命令に
より割り込みを上げてプログラムを停止させる。走行予
測アドレスを設定しては走らせ、新たな(次のマイルス
トーン)アドレスを設定しては走らせ、という手順を繰
り返すことでソフトウェアの走行履歴を確認し、正しい
プログラム走行がなされているか否かを判断し、プログ
ラム上の問題点(予測外の誤ったルートの命令実行)を
ローカライズする。
【0012】
【発明が解決しようとする課題】しかし、ソフトウェア
による走行履歴の確認方法は、命令実行を誤っているポ
イント、すなわち命令格納アドレスが推測できて初めて
調査が可能となるものであり、そのポイントが絞られて
いない場合は、ソフトウェアの問題が発生しているアド
レスを解析することは不可能であるという問題点があっ
た。
【0013】本発明はこのような点に鑑みてなされたも
のであり、複数階層からなるプロセッサシステムで2次
側、もしくはそれ以下の階層のバスでプログラムの走行
情報を収集するための新たな方法を提供することを目的
とする。
【0014】
【課題を解決するための手段】図1は上記目的を達成す
る本発明の原理図である。ソフトウェアの走行履歴モニ
タの対象となるプロセッサシステム10において、マイ
クロプロセッサ11とメインメモリ12とが内部プロセ
ッサバスと呼ばれる上位の高速バス13によって接続さ
れ、この高速バス13はバスブリッジ14を介して外部
汎用バスと呼ばれる下位の低速バス15に接続され、そ
の低速バス15に入出力デバイス16が接続されてい
る。
【0015】このように、バス構成が2階層になってい
るプロセッサシステム10において、アプリケーション
プログラム17が起動の際に、メインメモリ12に対し
て走行中のプログラムを識別する情報であるタスク番号
を格納するための固定エリアが決められる。アプリケー
ションプログラム17がオペレーティングシステム18
のサブルーティンコールをする場合、アプリケーション
プログラム17はメインメモリ12の固定エリアにタス
ク番号をセーブした上でオペレーティングシステム18
のプログラムをコールする。コールされたオペレーティ
ングシステム18はメインメモリ12の固定エリアをリ
ードし、タスク番号を取得する。オペレーティングシス
テム18が入出力デバイス16に対してアクセスする際
に、アドレス情報フィールドの空きフィールドに取得し
たタスク番号を付与し、そのアドレス情報でデバイスア
クセスを行う。これにより、入出力デバイス16が接続
された低速バス15には、タスク番号が挿入されたアド
レス情報が現れるので、この低速バス15上のアドレス
情報を測定器19がモニタすることにより、アドレス情
報のタスク番号から走行中のプログラムが属するモジュ
ール(またはタスク)を識別することができる。この結
果、ソフトウェアの問題が発生しているような場合に、
下位の低速バス15から取得したアドレス情報を解析す
ることで障害発生の原因を究明することができ、デバッ
グ作業を迅速に行うことができるようになる。
【0016】また、本発明によれば、アプリケーション
プログラムが起動の際にメインメモリに対して所定のエ
リアの割り付けを行うメモリ割り付け手段と、前記アプ
リケーションプログラムがオペレーティングシステムを
コールする際に前記メインメモリの所定のエリアに走行
中のプログラムを識別するプログラム識別情報を格納す
る格納手段とを有するソフトウェア走行履歴情報設定プ
ログラムを記録したコンピュータ読み取り可能な記録媒
体が提供される。
【0017】この媒体に記録されたソフトウェア走行デ
ータ設定プログラムをコンピュータに実行させることに
より、メモリ割り付け手段と、格納手段との各機能がコ
ンピュータによって実現できる。
【0018】
【発明の実施の形態】まず、本発明の概略について図面
を参照して説明する。図1は本発明によるソフトウェア
走行履歴モニタ方法の原理説明図である。ソフトウェア
の走行履歴モニタの対象となるプロセッサシステム10
において、マイクロプロセッサ11とメインメモリ12
とが内部プロセッサバスと呼ばれる上位の高速バス13
によって接続され、この高速バス13はバスブリッジ1
4を介して外部汎用バスと呼ばれる下位の低速バス15
に接続され、その低速バス15に入出力デバイス16が
接続されている。
【0019】このように、バス構成が2階層になってい
るプロセッサシステム10において、アプリケーション
プログラム17が起動の際に、メインメモリ12に対し
て走行中のプログラムを識別する情報であるタスク番号
を格納するための固定エリアが決められる。アプリケー
ションプログラム17がオペレーティングシステム18
のサブルーティンコールをする場合、アプリケーション
プログラム17はメインメモリ12の固定エリアにタス
ク番号をセーブした上でオペレーティングシステム18
のプログラムをコールする。コールされたオペレーティ
ングシステム18はメインメモリ12の固定エリアをリ
ードし、タスク番号を取得する。オペレーティングシス
テム18が入出力デバイス16に対してアクセスする際
に、アドレス情報フィールドの空きフィールドに取得し
たタスク番号を付与し、そのアドレス情報でデバイスア
クセスを行う。これにより、入出力デバイス16が接続
された低速バス15には、タスク番号が挿入されたアド
レス情報が現れるので、この低速バス15上のアドレス
情報を測定器19がモニタすることにより、アドレス情
報のタスク番号から走行中のプログラムが属するモジュ
ール(またはタスク)を識別することができる。この結
果、ソフトウェアの問題が発生しているような場合に、
下位の低速バス15から取得したアドレス情報を解析す
ることで障害発生の原因を究明することができ、デバッ
グ作業を迅速に行うことができるようになる。
【0020】次に、本発明の第1の実施の形態を、2階
層のバス構成を有する、交換機用のプロセッサシステム
に適用した場合を例にして説明する。図2はプロセッサ
システムへの測定器の設置例を示す図である。ここで、
プロセッサシステムは、汎用のマイクロプロセッサ(M
PU)21と、システムバスコントローラ(SC)22
と、クロスバスイッチ(XB1/CBT)23と、メイ
ンメモリ(MM)24と、バスブリッジ(U2P)25
とを備えている。マイクロプロセッサ21は、たとえば
300−400MHz動作の米国SUN製UltraS
PARC2(SPARCは、米国 SPARC Internationa
l, Inc. のライセンスを受けて使用している同社の米国
およびその他の国における商標または登録商標)とする
ことができる。マイクロプロセッサ21、システムバス
コントローラ22、クロスバスイッチ23およびバスブ
リッジ25は、内部プロセッサバスによって相互に接続
され、クロスバスイッチ23およびメインメモリ24は
たとえば256ビットのメモリデータバスによって接続
されている。内部プロセッサバスは、マイクロプロセッ
サ21とクロスバスイッチ23とを接続するたとえば1
28ビットのプロセッサデータバスと、クロスバスイッ
チ23とバスブリッジ25とを接続するたとえば64ビ
ットのIOデータバスと、システムバスコントローラ2
2とマイクロプロセッサ21およびバスブリッジ25と
を接続するアドレス信号線と、システムバスコントロー
ラ22とマイクロプロセッサ21、クロスバスイッチ2
3およびバスブリッジ25とを接続する制御信号線とか
らなっている。バスブリッジ25はPCIバス26に接
続され、PCIバス26はSCSIバスコントローラ
(SPC)27、LANコントローラ(LANC)28
などが接続される。SCSIバスコントローラ27に
は、たとえばハードディスク27a、MOディスクドラ
イブ27bが接続され、LANコントローラ28には、
たとえばワークステーション28aが接続されている。
【0021】マイクロプロセッサ21直下の内部プロセ
ッサバスは内部高速プロセッサバス(1次側バス)に該
当し、たとえば100MHzで動作する。一方、PCI
バス26は外部汎用低速バス(2次側バス)に該当し、
33MHzで動作する。
【0022】このように、プロセッサバス側はプロセッ
サメーカにより作り込まれているため、システムのハー
ドウェア的な構成については、システムメーカによる改
良の余地はない。測定器30は、外部汎用低速バスであ
る下位のPCIバス26に接続される。
【0023】ここで、ソフトウェアの走行履歴情報とす
るモジュール(またはタスク)番号を、デバイスへのア
クセスにおけるアドレス情報へ挿入する方法について説
明する。
【0024】以上のプロセッサシステムにおいて、プロ
グラムが走行する場合(命令実行が行われる場合)、内
部プロセッサバスの中だけにクローズした動きで完結し
ているわけではなく、常に、2次側のバス(ここではP
CIバス26)上のLSIや装置に対してのデータリー
ド/ライトの動作が発生する。たとえばハードディスク
27aやMOディスクドライブ27bへのデータアクセ
ス、LANコントローラ28への通信設定などといった
各種アクセスが存在する。
【0025】図3はPCIバスのリードサイクル/ライ
トサイクルについてのタイムチャートを示す図である。
2次側バス上のデバイスは、システム上でマッピングさ
れたユニークなアドレスを有しており、アクセスはアド
レス情報とリード/ライト種別とを内部プロセッサバス
から2次側のPCIバス26を経由して各デバイスに供
給され、各デバイスはそのPCIバス26上の情報をも
とに、リード要求であれば該当アドレスのデータをPC
Iバス26上に送出し、PCIバス26から内部プロセ
ッサバスを経由してマイクロプロセッサ21に返送され
る。ライトであれば、アドレス情報とリード/ライト種
別とともにライトデータをデバイスに供給し、デバイス
はその該当アドレスにデータを格納する。PCIバス2
6上には、リード/ライトのいずれにも、アドレスサイ
クルが必ず現れて、デバイスを決定するためのサイクル
が存在する。
【0026】具体的には、ライトサイクルの場合、クロ
ック信号CLKに同期して内部プロセッサバスからアド
レスサイクルを識別するFRAME信号とアドレス情報
とをPCIバス26上に出す。デバイスは、FRAME
信号がローレベルに落ちているところでアドレスが有効
であると判断して、そのアドレス情報を取り込む。取り
込んだアドレス情報からライトを判断して、内部プロセ
ッサバスからのデータの有効期間を表すIRDY信号に
従ってアドレス情報に後続するデータを取り込むことに
なる。このとき、上位の内部プロセッサバス側に対して
アクセスサイクルの終わりを表すTRDY信号を返す。
【0027】リードサイクルの場合は、クロック信号C
LKに同期して内部プロセッサバスからアドレスサイク
ルを識別するFRAME信号とアドレス情報とをPCI
バス26上に出す。デバイスは、FRAME信号がロー
レベルに落ちているところでアドレスが有効であると判
断して、そのアドレス情報を取り込む。次に、内部プロ
セッサバスからは内部プロセッサバスからのデータ受け
取り可能を表すIRDY信号が出され、デバイスからの
TRDY信号がローレベルになったところがデータ有効
と判断し、内部プロセッサバス側がこのデータを取り込
んで、リードサイクルが終了する。
【0028】測定器30がPCIバス26をモニタした
ときには、測定器30はこのタイムチャートに示したよ
うな信号波形をモニタすることができ、中でも、このタ
イムチャートの中の各アドレス情報をモニタすること
で、アドレス情報に挿入されたソフトウェアの走行履歴
情報を得ることができる。
【0029】図4はアドレス情報のビットフィールドを
示す図であって、(A)は内部プロセッサバスアドレス
ビットフィールドを示し、(B)はPCIバスアドレス
ビットフィールドを示している。内部プロセッサバスア
ドレスビットフィールドは、41ビットからなり、ここ
で、40−31ビットのフィールドに内部プロセッサバ
ス上の装置を指示する中継アドレスが、30−24ビッ
トのフィールドにPCIバス上の装置アドレスが、そし
て、15−0ビットのフィールドにPCIバス上の装置
内レジスタアドレスがそれぞれ割り当てられている。4
0−31ビットの中継アドレスはバスブリッジがPCI
バスへの中継判定を行うのに使用され、30−24ビッ
トの装置アドレスはPCIバス上の装置が自分へのアク
セスか否かの判定を行うのに使用される。なお、以上の
ビットフィールド以外の23−16ビットのビットフィ
ールドは空いている。また、デバイス側もこの空きフィ
ールドについては無視することにしている。
【0030】本発明の第1の実施の形態では、このアド
レス情報の空きフィールドを利用し、ここにプログラム
のモジュール情報やタスク情報を入れることにし、この
アドレス情報に挿入されたプログラムのモジュール情報
やタスク情報を測定器30でモニタし、情報収集するこ
とによりプログラムの走行履歴の確認と異常ルート(異
常モジュールや異常タスク)走行の検出を行うことを可
能とする。
【0031】また、バスブリッジを通ってPCIバス上
に現れるPCIバスアドレスビットフィールドは、
(B)に示したように、(A)に示した内部プロセッサ
バスアドレスビットフィールドから40−31ビットの
ビットフィールドが削除された形になっている。
【0032】図5はプロセッサシステムのアドレスマッ
ピングの例を示す図である。システムのアドレスは、採
用するマイクロプロセッサによって決まり、この例はマ
イクロプロセッサが"UltraSPARC2"であるの
で、そのシステムアドレスは41ビットからなり、上位
9ビットで大きく内部プロセッサバスの装置アドレスが
割り当てられている。さらに、一番下の空間は、バスブ
リッジ(U2P)に割り当てられた空間であり、配下の
PCIバス上のデバイスごとにアドレス範囲が割り付け
られ、そのデバイスのアドレス範囲の中で最終的に各デ
バイスの個々のレジスタのアドレスが割り付けられてい
る。したがって、マイクロプロセッサがPCIバス上の
あるデバイスにアクセスするときは、一番下の空間(PC
I-B MEMspace)の決められたアドレスに命令を実行して
アクセスすることになる。この空間へのアクセスはバス
ブリッジによりPCIバス上に中継される。
【0033】図6はモニタの概要を示す図である。図示
のように、マイクロプロセッサ21がメインメモリ24
に展開されたプログラムをリードして実行することでソ
フトウェアが走行する(矢印31)。プログラムの命令
解析・実行は内部プロセッサバス上で行われるため、そ
のソフトウェアの走行履歴は内部プロセッサバスをモニ
タすることでしか取得する方法はない。しかし、マイク
ロプロセッサ21の動きの中で必ず存在するPCIバス
26上のデバイス(SCSIバスコントローラ27、L
ANコントローラ28)へのライト/リードのアクセス
(矢印32)がある。本発明の第1の実施の形態では、
PCIバス26へ出てくる各PCIバス26上のデバイ
スに対してのライト/リードアクセスサイクルを測定器
30でモニタすることで、内部の実行プログラムの情報
を得ることになる。
【0034】次にアドレスの空きビットヘモジュール情
報(タスク情報)を挿入する仕組みについて説明する。
図7はソフトウェアの概念的な構成を示す図である。一
般に、システム全体の構成としては、一番下にハードウ
ェア/ファームウェア41があり、その上にオペレーテ
ィングシステム(OS)42がある。このオペレーティ
ングシステム42には、基本的なシステム制御であると
か、LANドライバ、ハードディスクドライバなどのデ
バイスドライバ、その他、各種システム運用上のプログ
ラムなどが入っている。そのオペレーティングシステム
42の上には、各種アプリケーションプログラム(AP
L)43が存在する。したがって、ソフトウェアの構成
は、ハードウェア/ファームウェア41とオペレーティ
ングシステム42とのインタフェースとなるL0インタ
フェース(レジスタインタフェース)と、オペレーティ
ングシステム42とアプリケーションプログラム43と
のインタフェースとなるL1インタフェース(サブルー
ティンコールインタフェース)といった境界で仕切られ
た作りとなっている。
【0035】ここで、各デバイスヘの直接のアクセス制
御はオペレーティングシステムが行う。アプリケーショ
ンプログラム43はコマンドベースの情報をL1インタ
フェースでオペレーティングシステムに渡すのみで、デ
バイスヘのアクセスは行わない。オペレーティングシス
テム42の各デバイスドライバがサブルーティンとして
アプリケーションプログラムからコールされ、このと
き、アプリケーションプログラム43は引数として動作
指示内容をオペレーティングシステム42へ渡す。オペ
レーティングシステム42はその指示内容に従いプログ
ラムの実行、IOアクセス制御、結果のアプリケーショ
ンプログラム43への戻しを行ってメインのアプリケー
ションプログラム43のプログラムにリターンする。
【0036】たとえば図示のようにアプリケーションプ
ログラム43のタスクAが実行中の際には、そのタスク
Aが、L1インタフェースを使って、オペレーティング
システム42の各種モジュールをサブルーティンコール
して実行させる。このとき、どのアプリケーションプロ
グラムのモジュールが動いているのかを知りたいので、
各モジュールにはそれらを識別するための識別番号が割
り当てられる。たとえば、図示の例では、タスクAに、
識別番号としてタスク番号「00000001」が割り
当てられている。
【0037】次に、タスクに割り当てられたタスク番号
がPCIバスヘ伝達されるまでの手順について説明す
る。図8はプログラム走行履歴情報を外部へ導出する処
理の流れを示すフローチャートである。アプリケーショ
ンプログラムが起動すると、まず、アプリケーションプ
ログラムは、L1インタフェースを使ってメインメモリ
上の固定エリアにオペレーティングシステムの各プログ
ラム(たとえばディスクドライバやLANドライバや各
種システム運用上のプログラム)ごとの実行アプリケー
ションプログラム識別フィールドを設ける(ステップS
1)。また、アプリケーションプログラムは、アプリケ
ーションプログラムが属するモジュール(またはタス
ク)に固有の識別番号、ここではタスク番号を割り当て
る(ステップS2)。次に、アプリケーションプログラ
ムがオペレーティングシステムのドライバを起動する
際、すなわちタスクコールまたはサブルーティンコール
する際に、アプリケーションプログラムはメインメモリ
の固定エリアに設けられた実行アプリケーションプログ
ラム識別フィールドにタスク番号を格納する(ステップ
S3)。サブルーティンコールされたオペレーティング
システムは各プログラムごとの実行アプリケーションプ
ログラム識別フィールドをリードし、実行中のタスクの
タスク番号を得る(ステップS4)。次に、オペレーテ
ィングシステムのプログラムの中に存在する外部バス
(ここではPCIバス)上の制御空間アクセス時に、オ
ペレーティングシステムは得られたタスク番号を内部プ
ロセッサアドレスビットフィールドの23−16ビット
のモニタフィールドに挿入する(ステップS5)。オペ
レーティングシステムはタスク番号を挿入したアドレス
でロード/ストア命令を実行する(ステップS6)。そ
の結果、そのタスク番号を含んだアドレスによるバスト
ランザクションが、内部プロセッサバスからバスブリッ
ジを通ってPCIバスヘ伝達される。
【0038】このPCIバスに現れる制御空間アクセス
トランザクションにおけるアドレス情報をロジックアナ
ライザなどの測定器でモニタリングし、収集蓄積すれ
ば、プロセッサがどのようなアプリケーションプログラ
ムをどのような順番で実行していたかを把握することが
でき、それによって、ある問題の解析パターンが見えて
くるようになる。
【0039】図9はソフトウェアの機能を示すブロック
図である。アプリケーションプログラム(APL)43
はL1インタフェースによってオペレーティングシステ
ム42に接続され、オペレーティングシステム42はL
0インタフェースによってハードウェア/ファームウェ
ア41に接続されている。アプリケーションプログラム
43は、システム運用プログラム、呼処理制御プログラ
ム、課金制御プログラム、障害処理プログラムなどの交
換機用の各種プログラムを含んでいる。オペレーティン
グシステム42は、その中心的な働きをする制御プログ
ラムであるカーネル、各種デバイスドライバ用のプログ
ラムなどを含んでいる。ハードウェア/ファームウェア
41は、マイクロプロセッサ(MPU)、ROM(Read
Only Memory)、RAM(Random Access Memory)、入出
力コントローラ(IOC)(LANC/SPC)などか
らなる。アプリケーションプログラム43からオペレー
ティングシステム42に対しては、L1インタフェース
を介してサブルーティンコール(Call)が実行さ
れ、オペレーティングシステム42からはL1インタフ
ェースを介してアプリケーションプログラム43にリタ
ーン(Ret)が実行される。また、オペレーティング
システム42はハードウェア/ファームウェア41に対
しL0インタフェースを介して、オペレーティングシス
テムプログラム走行、IOC(LANC/SPC)レジ
スタアクセス、IOC・メインメモリ(MM)間データ
転送などが実行される。
【0040】アプリケーションプログラム43として
は、アプリケーションプログラム実行部43a、L1イ
ンタフェース起動条件設定部43bと、L1インタフェ
ース結果確認部43cの各機能からなっており、オペレ
ーティングシステム42としては、L1インタフェース
起動条件確認部42aと、ドライバ実行部42bと、L
1インタフェース実行結果通知部42cの各機能からな
っている。
【0041】アプリケーションプログラム43におい
て、アプリケーションプログラム実行部43aから起動
要求があると、L1インタフェース起動条件設定部43
bは、オペレーティングシステムの各プログラムをサブ
ルーティンコールするに当たり、具体的な制御内容(た
とえばデータ転送であれば、転送容量、転送方向、転送
アドレスなどの情報)をメインメモリの固定エリアにセ
ーブし、コール命令を実行する。オペレーティングシス
テム42では、L1インタフェース起動条件確認部42
aが、コールされた時点でメインメモリ上の制御内容の
正常性を確認し、正常ならば、各動作実行をドライバ実
行部42bへ要求し、制御内容が異状なら、L1インタ
フェース実行結果通知部42cへエラー通知要求を行
う。ドライバ実行部42bは要求された動作を実行し、
実行結果の通知をL1インタフェース実行結果通知部4
2cに要求する。L1インタフェース実行結果通知部4
2cは、オペレーティングシステムの実行結果をメイン
メモリ上の固定エリア(L1インタフェース起動条件設
定部43bで設定するのとは別のエリア)にセーブし、
アプリケーションプログラム43へ戻るためにリターン
命令を実行する。L1インタフェース実行結果通知部4
2cでは、L1インタフェースへの起動結果を確認し、
アプリケーションプログラム実行部43aへ結果通知を
行う。
【0042】なお、太枠で示したアプリケーションプロ
グラム43のL1インタフェース起動条件設定部43b
およびオペレーティングシステム42のL1インタフェ
ース起動条件確認部42aが従来の機能にタスク番号の
処理機能が付加されている部分であり、以下、その処理
を含むL1インタフェースの詳細な処理について説明す
る。
【0043】図10はL1インタフェースの制御の流れ
を示すフローチャートである。アプリケーションプログ
ラム実行部から起動要求があると、まず、データ転送が
あるかどうかが判断される(ステップS11)。データ
転送がある場合には、転送容量/転送方向/転送アドレ
スをメインメモリ上の固定エリアにセーブし(ステップ
S12)、実行タスク番号をメインメモリ上の固定エリ
アにセーブする(ステップS13)。データ転送がない
場合あるいはステップS13における実行タスク番号の
セーブが終了すると、オペレーティングシステムに対し
てコール命令が実行される(ステップS14)。
【0044】オペレーティングシステムでは、まず、メ
インメモリのセーブエリアをリードしてオペレーティン
グシステム起動情報を確認するとともに、タスク番号も
メインメモリからリードする(ステップS15)。次
に、データの正常性の確認が行われる(ステップS1
6)。データが正常ならば、オペレーティングシステム
実行部へ実行要求が出され、オペレーティングシステム
実行部がその要求を実行する(ステップS17)。すな
わち、各種ハードウェアをレジスタアクセスで制御しつ
つオペレーティングシステムプログラムを走行させる
が、LANコントローラ28およびSCSIバスコント
ローラ27などのレジスタアクセス時にアプリケーショ
ンプログラムからメインメモリ経由で渡された実行タス
ク番号をレジスタアドレスに挿入してロード/ストア命
令を実行する。次に、終了情報をメインメモリ上の固定
エリアにセーブし(ステップS18)、リターン命令を
実行する(ステップS19)。一方、ステップS16の
判断において、データの正常性が確認されなければ、エ
ラー情報をメインメモリ上の固定エリアにセーブし(ス
テップS20)、リターン命令を実行する(ステップS
21)。
【0045】アプリケーションプログラムでは、コール
命令を実行した後、オペレーティングシステムからの応
答を監視している(ステップS22)。オペレーティン
グシステムから応答があると、メインメモリ上の実行結
果セーブエリアをリードし(ステップS23)、実行結
果をチェックする(ステップS24)。ここで、実行結
果にエラー情報があるかどうかが判断され(ステップS
25)、エラー情報があれば、障害処理アプリケーショ
ンプログラムへエントリ移行を行い(ステップS2
6)、エラー情報がなければ、アプリケーションプログ
ラム処理を継続する(ステップS27)。
【0046】なお、このフローチャートにおいて、太枠
で示したステップが本発明によって変更された部分であ
る。すなわち、アプリケーションプログラムでは、実行
タスク番号をセーブしておくためのステップS13が追
加され、オペレーティングシステムでは、ステップS1
5およびS17がタスク番号を処理するよう変更されて
いる。
【0047】次に、本発明の第2の実施の形態について
説明する。ここでは、アプリケーションプログラムを実
行するたびにそのアプリケーションプログラムを識別す
る番号をメインメモリに保持しておき、後で、保持され
た識別番号をメインメモリから採取することによって、
実行アプリケーションプログラムのどのモジュールが動
いていたかを観測しようとするものである。
【0048】図11は第2の実施の形態におけるソフト
ウェアの機能を示すブロック図である。図11におい
て、図9に示した要素と同じ要素は同じ符号を付してあ
る。本実施の形態では、オペレーティングシステム4
2、L1インタフェース起動条件確認部42aからサブ
ルーティンコールされるアプリケーションプログラム
(APL)識別番号格納プログラム42dを新たに備えて
いる。このアプリケーションプログラム識別番号格納プ
ログラム42dは、オペレーティングシステム42にお
ける本来のプログラム実行に先立って起動され、アプリ
ケーションプログラム識別番号をメインメモリに保持し
ておく機能を有する。
【0049】オペレーティングシステム42において、
アプリケーションプログラム43からコールされると、
L1インタフェース起動条件確認部42aは、その時点
でメインメモリ上の制御内容の正常性を確認し、正常な
らば、まず、アプリケーションプログラム識別番号格納
プログラム42dをコールして、アプリケーションプロ
グラム識別番号をメインメモリ上に格納させる。アプリ
ケーションプログラム識別番号格納プログラム42dか
らリターンされると、その後、L1インタフェース起動
条件確認部42aは最初に起動されるはずであった動作
実行をドライバ実行部42bへ要求する。L1インタフ
ェース起動条件確認部42aは、また、制御内容が異状
なら、L1インタフェース実行結果通知部42cへエラ
ー通知要求を行う。
【0050】次に、アプリケーションプログラム43と
オペレーティングシステム42との間のL1インタフェ
ースの詳細な処理について説明する。図12はL1イン
タフェースの制御の流れを示すフローチャート、図13
はアプリケーションプログラム識別番号格納プログラム
の処理の流れを示すフローチャートである。アプリケー
ションプログラム実行部から起動要求があると、まず、
データ転送があるかどうかが判断される(ステップS3
1)。データ転送がある場合には、転送容量/転送方向
/転送アドレスをメインメモリ上の固定エリアにセーブ
する(ステップS32)。次に、アプリケーションプロ
グラムはL1インタフェースを使ってメインメモリ上の
固定エリアにオペレーティングシステムの各プログラム
(たとえばLANドライバ、ディスクドライバ、あるい
は各種運用上のプログラム)ごとの実行アプリケーショ
ンプログラム識別フィールドを設定し、そこに実行アプ
リケーションプログラムを識別する固有のアプリケーシ
ョンプログラム識別番号(たとえば各モジュールに割り
当てられたタスク番号)をセーブする(ステップS3
3)。データ転送がない場合あるいはステップS33に
おけるアプリケーションプログラム識別番号のセーブが
終了すると、オペレーティングシステムに対してコール
命令が実行される(ステップS34)。
【0051】オペレーティングシステムでは、まず、メ
インメモリのセーブエリアをリードしてオペレーティン
グシステム起動情報を確認して(ステップS35)、ア
プリケーションプログラム識別番号格納プログラムをコ
ールし、アプリケーションプログラム識別番号格納プロ
グラムによるアプリケーションプログラム識別番号格納
処理が行われる(ステップS36)。
【0052】このアプリケーションプログラム識別番号
格納処理では、図13に示したように、まず、メインメ
モリ上の次格納アドレスポインタ領域をリードしてアプ
リケーションプログラム識別番号を保持しておくための
格納アドレスを得る(ステップS51)。次に、メイン
メモリ上のアプリケーションプログラム識別番号が格納
されたエリアをリードしてアプリケーションプログラム
識別番号を取得する(ステップS52)。そして、取得
したアプリケーションプログラム識別番号をステップS
51で得られた格納アドレスのアプリケーションプログ
ラム識別番号格納領域に格納する(ステップS53)。
さらに、アプリケーションプログラム識別番号格納プロ
グラムは、アプリケーションプログラム識別番号の取得
の際にプロセッサ内部のタイマをリードすることによっ
て得られたタイムスタンプを、先にアプリケーションプ
ログラム識別番号を格納したアプリケーションプログラ
ム識別番号格納領域に対応するタイムスタンプ格納領域
に格納する(ステップS54)。次に、次格納アドレス
ポインタ領域のポインタをそのタイムスタンプ格納領域
の次のアドレスに更新して(ステップS55)、このア
プリケーションプログラム識別番号格納プログラムを抜
ける。
【0053】次に、オペレーティングシステムの処理で
は、データの正常性の確認が行われる(ステップS3
7)。データが正常ならば、オペレーティングシステム
実行部へ実行要求が出され、オペレーティングシステム
実行部がその要求を実行する(ステップS38)。次
に、終了情報をメインメモリ上の固定エリアにセーブし
(ステップS39)、リターン命令を実行する(ステッ
プS40)。一方、ステップS37の判断において、デ
ータの正常性が確認されなければ、エラー情報をメイン
メモリ上の固定エリアにセーブし(ステップS41)、
リターン命令を実行する(ステップS42)。
【0054】アプリケーションプログラムでは、ステッ
プS34にてコール命令を実行した後、オペレーティン
グシステムからの応答を監視している(ステップS4
3)。オペレーティングシステムから応答があると、メ
インメモリ上の実行結果セーブエリアをリードし(ステ
ップS44)、実行結果をチェックする(ステップS4
5)。ここで、実行結果にエラー情報があるかどうかが
判断される(ステップS46)。実行結果にエラー情報
があれば、障害処理アプリケーションプログラムへエン
トリ移行を行い(ステップS47)、エラー情報がなけ
れば、アプリケーションプログラム処理を継続する(ス
テップS48)。
【0055】図14はメインメモリ上のマッピング例を
示す図である。メインメモリ上において、A番地以降は
アプリケーションプログラム識別番号格納プログラムが
実行中のアプリケーションプログラムのアプリケーショ
ンプログラム識別番号を保持しておく領域であり、この
領域はあらかじめオペレーティングシステムによって割
り当てられている。B番地以降の領域は、アプリケーシ
ョンプログラムがL1インタフェースを使ってオペレー
ティングシステムの各プログラムごとに設定される実行
アプリケーションプログラム識別番号フィールドになっ
ている。アプリケーションプログラムはそれぞれのモジ
ュールに固有の識別番号を割り当てており、あるモジュ
ールがオペレーティングシステムのあるドライバを起動
する際、すなわちタスクコールやサブルーティンコール
する際に、そのアプリケーションプログラム識別番号を
実行アプリケーションプログラム識別番号フィールドに
格納する。
【0056】図示の例では、あるアプリケーションプロ
グラムが起動し、B番地のアドレスに実行中のアプリケ
ーションプログラムによるアプリケーションプログラム
識別番号が格納されているとする。
【0057】起動されたオペレーティングシステムは、
その処理の先頭で、アプリケーションプログラム識別番
号格納プログラム(サブルーティン)をコールする。コ
ールされたアプリケーションプログラム識別番号格納プ
ログラムは、メインメモリ上のA番地にある次格納アド
レスポインタの領域をリードする(矢印44)。最初
は、このポインタはA+4番地を指している。次に、ア
プリケーションプログラム識別番号格納プログラムは、
メインメモリ上のB番地のアドレスにある実行中のアプ
リケーションプログラムによるアプリケーションプログ
ラム識別番号格納領域から起動されたアプリケーション
プログラムのアプリケーションプログラム識別番号をロ
ードして(矢印45)、ポインタが指し示すA+4番地
のアプリケーションプログラム識別番号格納領域にスト
アする(矢印46)。アプリケーションプログラム識別
番号格納プログラムは、さらに、A+8番地の領域に、
A+4番地の格納情報を収集した時刻としてプロセッサ
内のカレンダタイマからロードしたタイムスタンプをス
トアする(矢印47)。タイムスタンプは、年月日/時
分秒を表す値であり、1/1000秒まで計測できるプ
ロセッサ内のカレンダタイマからリードされる。アプリ
ケーションプログラム識別番号格納プログラムは、次に
格納する領域のアドレス(たとえばA+12番地)を次
格納アドレスポインタの領域に保持してリターンし、本
来のオペレーティングシステムの処理に入る。
【0058】このように、L1インタフェースでアプリ
ケーションプログラムからオペレーティングシステムに
起動がかかるたびにその実行されたアプリケーションプ
ログラムの識別番号と実行時刻であるタイムスタンプと
をメインメモリ上にあらかじめ割り当てられた空間の若
番地から昇順に格納していくことにより、アプリケーシ
ョンプログラムの起動履歴情報が蓄積される。その後、
その情報が格納された領域をリードすることにより、ア
プリケーションプログラムのどのモジュールが動いてい
たかを確認することができる。
【0059】このようにして蓄積した情報は、ソフトウ
ェアによってメインメモリからリードして表示させるこ
とができる。次に、その識別番号およびタイムスタンプ
の表示に関して述べる。
【0060】実際に採取されるのはバイナリのデータで
あり、単純にこれらのデータの羅列をモニタしてもわか
りづらい。また、解析もしにくい。そこで、このデータ
を加工し表示するプログラムを準備することで見やす
く、解析もし易くなる。具体的には、このプログラム中
にアプリケーションプログラムとアプリケーションプロ
グラム識別番号との対応テーブルを持たせ、格納したバ
イナリ情報(アプリケーションプログラム識別番号)を
アプリケーションプログラムの固有名称に変換して表示
させる。これによりいちいち設計者が変換をかけながら
解析する手間を省くことができる。また、履歴として採
取されたアプリケーションプログラムの種別のみ表示さ
せる機能を持たせればイリーガルなアプリケーションプ
ログラムの存在を即時に発見可能となる。
【0061】次に、ソフトウェアの走行履歴をモニタす
る別の方法について説明する。図15は第3の実施の形
態におけるモニタ方法を説明する図である。図15にお
いて、図2に示した要素と同じ要素は同じ符号を付して
ある。一般に入出力装置とメインメモリ間でのデータ転
送を行わせる場合、入出力装置がメインメモリ上の固定
エリア(そのデバイス固有の制御情報格納エリア)に転
送指示フラグがプログラムによって立てられているか否
かを周期的にハードDMA(Direct Memory Access)で
監視し、フラグが立っているのを入出力装置が検出した
場合にデータ転送を開始する。そのフラグ情報に、前述
の「実行APL識別番号(タスク番号)」を追加するこ
とにより、入出力装置からメインメモリへの転送指示フ
ラグリードサイクルを測定器で同様に監視することがで
き、より細かい実行プログラムトレースが可能となる。
【0062】すなわち、まず、オペレーティングシステ
ムは初期設定動作を行うことにより、マイクロプロセッ
サ21からSCSIバスコントローラ27、LANコン
トローラ28に対して周期監視動作開始が指示される
(矢印51)。これにより、SCSIバスコントローラ
27、LANコントローラ28は周期監視動作を開始す
る。
【0063】次に、オペレーティングシステムにより、
メインメモリ24の転送エリアに転送データが格納さ
れ、フラグ格納エリア24aには転送情報(転送容量/
転送方向)とフラグビットとが格納される(矢印5
2)。その後は、周期監視動作の処理が終わるまで、オ
ペレーティングシステムは周期監視アクセスを待機して
いる。
【0064】次に、周期監視動作を開始したSCSIバ
スコントローラ27またはLANコントローラ28は、
データ転送起動状態監視のために周期的にメインメモリ
24のフラグ格納エリア24aをリードしに行く(矢印
53)。この周期監視でフラグビットが検出されると、
ここでSCSIバスコントローラ27またはLANコン
トローラ28は起動され、フラグ格納エリア24aのデ
ータとともにその転送情報とフラグビットとからメイン
メモリ24上の転送データをDMAで自デバイスへ転送
させ、自デバイスのデータをメインメモリ24へ転送す
る。
【0065】このように、デバイスが周期的にメインメ
モリ上に格納されたフラグビットを監視し、フラグビッ
トがある値を示している場合にそのデバイスが自律で起
動するような起動方法を採っている。ここで、周期的に
リードされるフラグ格納エリア24aは全ビットを使っ
ているわけではなく、未使用のビットフィールドが存在
している。その空いているビットフィールドに、設定し
に行ったタスクの番号を入れておき、SCSIバスコン
トローラ27またはLANコントローラ28がフラグ格
納エリア24aをリードし、リードされたフラグビット
フィールドに含まれるタスク番号を測定器がモニタする
ことにする。
【0066】図16はメインメモリ上のフラグ格納エリ
アの例を示す図である。デバイスを起動するに当たっ
て、フラグエリアデータ(FLG)、転送情報、転送デ
ータなどをメモリに設定し、後はSCSIバスコントロ
ーラ27またはLANコントローラ28から周期的に監
視されるのを待つ。監視は、フラグエリアデータのアド
レスAを周期的に、たとえば1ミリ秒〜数十マイクロ秒
ごとにリードする。このリードの際のフラグエリアデー
タは、図3に示したリードタイミングのデータフィール
ド「DATA」に保持される。このリードされたデータ
が測定器によってモニタされる。次に、リードしたSC
SIバスコントローラ27またはLANコントローラ2
8は、フラグエリアデータの中のフラグビットをチェッ
クする。このアドレスAをのリードの際に、同時に、転
送情報もリードしており、フラグビットに「1」が立っ
ていることを検出した場合には、その転送情報をもと
に、転送データを自デバイスまでDMAで転送する。ま
たは、自デバイスから、転送情報で指示されたメインメ
モリ上のエリアへデータを転送する。
【0067】図17はメインメモリ上のフラグ格納エリ
アのビットフィールドの例を示す図である。フラグ格納
エリアは32ビットからなり、23−1ビットのフィー
ルドに転送容量/転送方向が割り当てられ、00ビット
のフィールドにフラグビットが割り当てられ、31−2
4ビットのフィールドは未使用のフィールドであって、
ここにタスク番号を割り当てるためのモニタフィールド
としている。このように、IOデバイスがフラグリード
時、すなわちIOデバイスからメモリヘのデータ転送起
動状態監視のためのリード時には、図3のデータフィー
ルド「DATA」に図17に示すビットフィールドが現
れるので、その中のモニタフィールド(ビット31−2
4)にプログラムの識別番号を挿入することになる。
【0068】このように、第1の実施の形態の場合のよ
うなアドレスサイクル上の識別フィールドを利用するだ
けではなく、このようなデバイスの周期監視によるリー
ドデータを利用する方法も併用することにより、PCI
バス上に実行APL識別番号が出現する頻度が増え、結
果的にトレース情報の確度を上げることができる。
【0069】また、上記のプロセッサシステムが有すべ
き機能の処理内容は、コンピュータで読み取り可能な記
録媒体に記録されたプログラムに記述させておくことが
できる。このプログラムをコンピュータで実行すること
により、上記処理がコンピュータで実現できる。コンピ
ュータで読み取り可能な記録媒体としては、磁気記録装
置や半導体メモリなどがある。市場に流通させる場合に
は、CD−ROM(Compact Disk Read Only Memory)
やMOディスクなどの可搬型記録媒体にプログラムを格
納して流通させたり、ネットワークを介して接続された
コンピュータの記憶装置に格納しておき、ネットワーク
を通じて他のコンピュータに転送することもできる。コ
ンピュータで実行する際には、コンピュータ内のハード
ディスク装置などにプログラムを格納しておき、メイン
メモリにロードして実行する。
【0070】
【発明の効果】以上説明したように本発明では、2階層
構成の汎用的なプロセッサシステムの1次側バスで走行
しているプログラムの履歴情報を2次バスに導き出すよ
うに構成した。このため、1次側へのハード的な付加測
定回路などを設置することなく2次バス側で1次側のプ
ログラムの走行状態が観測可能となる。
【0071】ハード的な付加測定回路などの設置が必要
なく、すべてアプリケーションおよびオペレーティング
システムのレベルで2次側へのプログラム履歴情報の導
出が可能であることから、汎用高性能プロセッサモジュ
ールを採用したすべてのプロセッサシステムのデバッグ
に適用することができる。
【0072】また、プログラムの走行履歴をメモリ上で
観測可能とすることによって、ハード的な採取方法と異
なり大量のトレースが採取可能となる。さらに、IOデ
バイスがデータ転送起動状態監視のためにメインメモリ
へリードするデータの中にも同様にモジュール(または
タスク)番号を挿入することによって、1次側へのハー
ド的な付加測定回路などを設置することなく2次バス側
で1次側のプログラムの走行状態が観測可能となる。
【図面の簡単な説明】
【図1】本発明によるソフトウェア走行履歴モニタ方法
の原理説明図である。
【図2】プロセッサシステムへの測定器の設置例を示す
図である。
【図3】PCIバスのリードサイクル/ライトサイクル
についてのタイムチャートを示す図である。
【図4】アドレス情報のビットフィールドを示す図であ
って、(A)は内部プロセッサバスアドレスビットフィ
ールドを示し、(B)はPCIバスアドレスビットフィ
ールドを示している。
【図5】プロセッサシステムのアドレスマッピングの例
を示す図である。
【図6】モニタの概要を示す図である。
【図7】ソフトウェアの概念的な構成を示す図である。
【図8】プログラム走行履歴情報を外部へ導出する処理
の流れを示すフローチャートである。
【図9】ソフトウェアの機能を示すブロック図である。
【図10】L1インタフェースの制御の流れを示すフロ
ーチャートである。
【図11】第2の実施の形態におけるソフトウェアの機
能を示すブロック図である。
【図12】L1インタフェースの制御の流れを示すフロ
ーチャートである。
【図13】アプリケーションプログラム識別番号格納プ
ログラムの処理の流れを示すフローチャートである。
【図14】メインメモリ上のマッピング例を示す図であ
る。
【図15】第3の実施の形態におけるモニタ方法を説明
する図である。
【図16】メインメモリ上のフラグ格納エリアの例を示
す図である。
【図17】メインメモリ上のフラグ格納エリアのビット
フィールドの例を示す図である。
【図18】プロセッサシステムの構成例を示す図であ
る。
【図19】ハードウェアによるソフトウェアの走行履歴
確認の一例を示す図である。
【符号の説明】 10 プロセッサシステム 11 マイクロプロセッサ 12 メインメモリ 13 高速バス 14 バスブリッジ 15 低速バス 16 入出力デバイス 17 アプリケーションプログラム 18 オペレーティングシステム 19 測定器 21 マイクロプロセッサ 22 システムバスコントローラ 23 クロスバスイッチ 24 メインメモリ 24a フラグ格納エリア 25 バスブリッジ 26 PCIバス 27 SCSIバスコントローラ 27a ハードディスク 27b MOディスクドライブ 28 LANコントローラ 28a ワークステーション 30 測定器 41 ハードウェア/ファームウェア 42 オペレーティングシステム 43 アプリケーションプログラム

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 複数階層のバス構成を有するプロセッサ
    システム上にて走行するソフトウェアの走行履歴をモニ
    タするソフトウェア走行履歴モニタ方法において、 最も下位側のバス上に発生する入出力デバイスヘのアク
    セストランザクションのアドレス情報フィールドに走行
    中のプログラムを識別するプログラム識別情報を持た
    せ、 前記最も下位側のバスにおいて前記アドレス情報フィー
    ルド内の前記プログラム識別情報をモニタする、 ことを特徴とするソフトウェア走行履歴モニタ方法。
  2. 【請求項2】 前記アドレス情報フィールドにプログラ
    ム識別情報を持たせるステップは、プログラムの走行の
    際に前記プログラム識別情報をメインメモリの所定のエ
    リアにセーブし、前記入出力デバイスヘのアクセス時に
    前記メインメモリの所定のエリアにセーブされたプログ
    ラム識別情報を前記アドレス情報フィールドの空きフィ
    ールドに挿入するステップを有することを特徴とする請
    求項1記載のソフトウェア走行履歴モニタ方法。
  3. 【請求項3】 前記アドレス情報フィールドにプログラ
    ム識別情報を持たせるステップは、アプリケーションプ
    ログラムの起動の際に前記メインメモリに対して所定の
    エリアの割り付けを行い、前記アプリケーションプログ
    ラムがオペレーティングシステムをコールする際に前記
    メインメモリの所定のエリアに前記プログラム識別情報
    をセーブし、前記アプリケーションプログラムからコー
    ル命令を受けたオペレーティングシステムが前記メイン
    メモリの所定のエリアから前記プログラム識別情報をリ
    ードし、前記プログラム識別情報を前記アドレス情報フ
    ィールドの空きフィールドに挿入して前記入出力デバイ
    スヘアクセスすることを特徴とする請求項1記載のソフ
    トウェア走行履歴モニタ方法。
  4. 【請求項4】 前記プログラム識別情報は、走行中のプ
    ログラムが属するモジュール番号または実行タスク番号
    とすることを特徴とする請求項1記載のソフトウェア走
    行履歴モニタ方法。
  5. 【請求項5】 複数階層のバス構成を有するプロセッサ
    システム上にて走行するソフトウェアの走行履歴をモニ
    タするソフトウェア走行履歴モニタ方法において、 アプリケーションプログラムからオペレーティングシス
    テムへのサブルーティンコールを契機としてその要求元
    アプリケーションプログラムの固有識別番号をメインメ
    モリ上に格納し、 前記サブルーティンコールの実行タイムスタンプを前記
    メインメモリ上に格納し、 前記メインメモリ上に格納された前記固有識別番号およ
    び実行タイムスタンプをモニタする、 ことを特徴とするソフトウェア走行履歴モニタ方法。
  6. 【請求項6】 前記固有識別番号を格納するステップ
    は、アプリケーションプログラムの起動の際にメインメ
    モリに対して第1の所定のエリアの割り付けを行い、前
    記アプリケーションプログラムがオペレーティングシス
    テムをコールする際に前記メインメモリの第1の所定の
    エリアにアプリケーションプログラムの固有識別番号を
    格納し、前記アプリケーションプログラムからコール命
    令を受けたオペレーティングシステムが前記メインメモ
    リの第1の所定のエリアから前記固有識別番号をリード
    し、前記オペレーティングシステムによって割り付けら
    れた前記メインメモリの第2のエリアにリードされた前
    記固有識別番号を格納していくステップを有することを
    特徴とする請求項5記載のソフトウェア走行履歴モニタ
    方法。
  7. 【請求項7】 複数階層のバス構成を有するプロセッサ
    システム上にて走行するソフトウェアの走行履歴をモニ
    タするソフトウェア走行履歴モニタ方法において、 最も下位側のバス上に発生する入出力デバイスからメイ
    ンメモリヘのデータ転送起動状態監視のためのリードト
    ランザクションのデータフィールドに走行中のプログラ
    ムを識別するプログラム識別情報を持たせ、 前記最も下位側のバスにおいて前記データフィールド内
    の前記プログラム識別情報をモニタする、ことを特徴と
    するソフトウェア走行履歴モニタ方法。
  8. 【請求項8】 前記データフィールドにプログラム識別
    情報を持たせるステップは、周期監視動作の開始が指示
    された入出力デバイスに対応するメインメモリのフラグ
    エリアに走行しようとするプログラムを識別する前記プ
    ログラム識別情報を挿入し、前記入出力デバイスによる
    前記メインメモリのフラグエリアの周期的リードを待機
    するステップを有することを特徴とする請求項7記載の
    ソフトウェア走行履歴モニタ方法。
  9. 【請求項9】 アプリケーションプログラムが起動の際
    にメインメモリに対して所定のエリアの割り付けを行う
    メモリ割り付け手段と、前記アプリケーションプログラ
    ムがオペレーティングシステムをコールする際に前記メ
    インメモリの所定のエリアに走行中のプログラムを識別
    するプログラム識別情報を格納する格納手段とを有する
    ソフトウェア走行履歴情報設定プログラムを記録したコ
    ンピュータ読み取り可能な記録媒体。
JP31384199A 1999-11-04 1999-11-04 ソフトウェア走行履歴モニタ方法 Withdrawn JP2001134463A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31384199A JP2001134463A (ja) 1999-11-04 1999-11-04 ソフトウェア走行履歴モニタ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31384199A JP2001134463A (ja) 1999-11-04 1999-11-04 ソフトウェア走行履歴モニタ方法

Publications (1)

Publication Number Publication Date
JP2001134463A true JP2001134463A (ja) 2001-05-18

Family

ID=18046162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31384199A Withdrawn JP2001134463A (ja) 1999-11-04 1999-11-04 ソフトウェア走行履歴モニタ方法

Country Status (1)

Country Link
JP (1) JP2001134463A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250821A (ja) * 2004-03-04 2005-09-15 Renesas Technology Corp エミュレータ及びマイクロプロセッサ
JP2007133836A (ja) * 2005-11-14 2007-05-31 Canon Inc シミュレーション装置及びシミュレーション方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250821A (ja) * 2004-03-04 2005-09-15 Renesas Technology Corp エミュレータ及びマイクロプロセッサ
JP2007133836A (ja) * 2005-11-14 2007-05-31 Canon Inc シミュレーション装置及びシミュレーション方法

Similar Documents

Publication Publication Date Title
US6539500B1 (en) System and method for tracing
US4028675A (en) Method and apparatus for refreshing semiconductor memories in multi-port and multi-module memory system
US6678777B2 (en) Integrated real-time performance monitoring facility
EP0084431A2 (en) Monitoring computer systems
US6502209B1 (en) Chip with debug capability
US8171340B2 (en) Software performance counters
US5862148A (en) Microcontroller with improved debug capability for internal memory
JPH07175780A (ja) マイクロプロセッサ
JPH11202984A (ja) 消費電力解析方法及び装置
JP5628411B2 (ja) 半導体装置
US5305442A (en) Generalized hierarchical architecture for bus adapters
CN117130569A (zh) 信息显示方法、装置、设备及存储介质
JP2001134463A (ja) ソフトウェア走行履歴モニタ方法
US20060052995A1 (en) Simulation apparatus and method
US5212775A (en) Method and apparatus for observing internal memory-mapped registers
US7231568B2 (en) System debugging device and system debugging method
US6510507B1 (en) Page address look-up range ram
JPH05173986A (ja) プログラマブルコントローラ
KR100223096B1 (ko) 내부 메모리 맵 레지스터를 관측하는 방법 및 장치
EP0230219B1 (en) Apparatus for testing a data processing system
MacKinnon Advanced function extended with tightly-coupled multiprocessing
JPH11143789A (ja) バストレース装置
US20040049511A1 (en) Method for acquiring and monitoring hardware data of computer system
JP4644461B2 (ja) システムlsi
CN111143141B (zh) 一种状态机设置方法及系统

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070109