JPH07168737A - プログラム制御装置のモニタ方法 - Google Patents

プログラム制御装置のモニタ方法

Info

Publication number
JPH07168737A
JPH07168737A JP6235467A JP23546794A JPH07168737A JP H07168737 A JPH07168737 A JP H07168737A JP 6235467 A JP6235467 A JP 6235467A JP 23546794 A JP23546794 A JP 23546794A JP H07168737 A JPH07168737 A JP H07168737A
Authority
JP
Japan
Prior art keywords
event
processor
bus
program
program control
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
JP6235467A
Other languages
English (en)
Inventor
Andrieux Clark Paul
アンドリュー クラーク ポウル
Richard Piesing Jonathan
リチャード ピーシング ジョナサン
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.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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 Philips Electronics NV filed Critical Philips Electronics NV
Publication of JPH07168737A publication Critical patent/JPH07168737A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Control By Computers (AREA)
  • Emergency Protection Circuit Devices (AREA)

Abstract

(57)【要約】 【目的】 コンピュータシステムの正常動作には影響を
与えずにその動作を実時間で非強制的にモニタする。 【構成】 CDプレーヤなどプログラム制御装置の信号
バスにメモリ番地選定など所定信号の到来を判別するプ
ログラム制御可能の事象抽出フィルタをモニタ装置に設
け、事象の検出に際し、二,三の連続通過信号を、バッ
ファ(20)を介し、記憶装置(14)に書込んで内部プロ
セサ(10)で処理し、もしくは双方向通信リンク(16)
を介し、ホスト装置に送付して適切なデータ処理アルゴ
リズムを施し、プログラム制御装置のオペレーティング
システムの非強制的なデバッギングにモニタ装置を用い
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラム制御を施し
たプロセッサ主体の装置の動作をモニタする方法および
装置に関するものである。かかるモニタは、プログラム
のデバッギング、すなわちプログラム中の符号誤りの識
別を容易にし、ソフトウエアのタイミングおよび特性の
解析であるプロファイル能力を容易にする。
【0002】
【従来の技術】コンピータプログラムを書く場合に、ソ
フトウエア技術者は屡々デバッグツールを使用するが、
このデバッグツールは、プログラムの個々の部分の正し
い動作を立証し得るようにして、個々のプロセッサへの
命令もしくはその各部の実施を可能にすることにより、
プログラマがプログラムの進行全体を大幅に制御し得る
ようにする。
【0003】従来の強制的なデバッグツールは、プログ
ラムの予定点に中断箇所を配置する相互作用的デバッグ
効用を用いることであり、中断箇所に達すると、プログ
ラムの進行を中断して系統の状態のテストが行われる。
この中断によって問題が生ずるおそれがあり、プログラ
ム制御の実施の中断は、時間的にクリティカルな動作の
長い継続を中断するものであって、しからざる場合に
は、かかる動作中のプロセッサのアクティビティを解析
することが必要となる。
【0004】従来のデバッグツールは、コンピュータシ
ステム内の入出力ポートやメモリなどのサブルーチンの
操作とともに、プロセッサ内の記録値をテストして修正
するが、コンピュータ内で進行するオペレーションシス
テムの存在を完全に無視している。かかるオペレーショ
ンシステムには、外部割込みの予期せぬ発生時に実行さ
れる符号とともに、符号のタイミングにクリティカルな
部分が含まれており、この種の符号の実行はプログラム
内の動作のみを追跡するとともに、キーボード入力やス
クリーン表示などのオペレーションシステムの能力を利
用する従来のデバッグツールによっては考えられないこ
とである。
【0005】デバッグツールは、コンピュータシステム
が最初に設計されたとき以来、その概念を変えていな
い。新しい変形がCのような高レベルの言語を支持して
はいるが、「プロセッサ」が実行する一連の動作を規定
する「プログラム」の線に沿ったプログラムデバッギン
グのタスクをなお残している。高レベル言語デバッグシ
ステムの例は、米国特許第 5,127,103号明細書に記載さ
れているが、高レベル言語デバッグシステムは、モニタ
すべきプロセッサの知識に加えて、コンパイラの知識を
必要とし、さらに、ジャンプや分岐サブルーチンに依ら
ないシステム呼出しのような予期した言語の要求には順
応しない事象が生じた場合に問題に遭遇することにな
る。
【0006】
【発明が解決しようとする課題】従来のデバッグツール
が直面する問題の例として、オペレーションシステムに
対する呼出しをメモリのディスクセクタにロードする適
用例では、従来のデバッグツールがそのシステム呼出し
を単一のプログラム表現として取扱う。従来のデバッグ
ツールは、システム呼出しを分割不能の事象として取扱
い、メモリ領域のロードの成功、不成功に応じて動作シ
ステムがプログラムの実行をアプリケーションに戻した
ときに、次のプロセッサ命令を考慮するように動く。シ
ステム呼出しが近来のマルチタスクオペレーションシス
テムに対して行われた場合に実際に起こることは、プロ
セッサがディスクコントローラにあるメモリ領域にロー
ドしたことを知らせ、次いで、そのロードが完結したこ
とを知らせるまで同時に進行している他のアプリケーシ
ョンに切換わることである。このディスクコントローラ
によるロードには、ディスクドライブの制御、プロセッ
サが他の命令を実行し得ないようにするシステムバスに
対する要求、所要メモリアドレスのディスク領域に含ま
れるデータを蓄積するためのダイレクトメモリアクセス
(DMA)の使用、プロセッサの実行を再開させるシス
テムバスの開放、および、オペレーションシステムの他
の領域に、ディスク領域のロードが完結したことを示す
フラグを設定させて、元のオペレーションシステムの呼
出しが復活するようにさせる割込みの発生が含まれる。
【0007】従来のデバッグ技術の代替は、回路内エミ
ュレータ(ICE)であり、その一例が、1994年1
月18日発行の米国特許第 5,280,626号明細書に記載さ
れている。この例においては、コンピュータシステム内
のプロセッサを、プログラマの制御のもとにのみプロセ
ッサを模倣してICE装置に接続するテスト装置に置き
換えてあり、ある面では従来のデバッガと同様である
が、プログラマがオペレーションシステムのコードに曝
されるので、アプリケーションとオペレーションシステ
ムとの命令間の区別がつかなくなる。
【0008】他の周知技術は、コンピュータシステム内
の点に接続して利用可能の信号のタイミングおよび状態
の情報を発生させる論理解析器の使用であり、この場
合、コンピュータシステムは複雑な信号発生器として取
扱われ、論理解析器は、単に、コンピュータシステムの
知識と先入観とに基づく解析のために、その信号をプロ
グラマに報告するだけであり、これを補助するために
は、ドン アトキンス著「68030プログラム矯正に
おける論理解析器インターフェース補助」EDN誌19
88年9月29日刊,187〜192頁に記載されてい
るように、論理解析器インターフェースを使用すること
ができる。通常のモニタ点における信号を利用可能にす
るのに加えて、上述のインターフェースは、通常モニタ
した信号から付加的な「クォリファイア」信号を発生さ
せて、例えば「プロセッサ休止」、「例外保留」もしく
は「命令実行」を指示することにより、プログラマを補
助する。
【0009】
【課題を解決するための手段】本発明の目的は、モニタ
するコンピュータシステムの正常動作には影響を与えな
い非強制的なモニタ方法を提供することにある。
【0010】本発明の他の目的は、コンピュータオペレ
ーションシステムを考慮してコンピュータシステムの実
時間モニタを可能にすることにある。
【0011】本発明によれば、所定のプロセッサオペレ
ーションシステムの事象を表わす当該装置の電子的信号
を判定する過程、前記プロセッサオペレーションシステ
ム外の位置から、当該装置の信号バスにおける前記電子
的信号の発生をモニタする過程、および、当該信号発生
の検出に際し、前記プロセッサオペレーションシステム
の事象の所定の詳細を捕捉して報告する過程を備えて、
プログラムを施したプロセッサ主体の装置の動作を監視
する方法が提供される。
【0012】また、本発明によれば、当該プロセッサ主
体の装置の信号バスに接続可能であって、特定のプロセ
ッサオペレーションシステムの事象を表わす少なくとも
当該装置の所定の電子的信号の発生を検出可能のフィル
タ手段、当該フィルタ手段に接続して事象の検出に際
し、予定した詳細を書込み可能な事象キャッシュメモ
リ、前記フィルタ手段に接続して、当該フィルタ手段を
介し、前記事象キャッシュメモリから読出した事象の詳
細を蓄積可能の事象データ蓄積メモリ、および、前記フ
ィルタ手段および前記事象データ蓄積メモリに接続して
それぞれの動作を制御するプロセッサ回路を備えて、プ
ログラム制御を施したプロセッサ主体の装置の動作をモ
ニタする装置が提供される。
【0013】本発明の他の特徴は、特許請求の範囲に規
定されているとおりであり、参照すべきである。本発明
のモニタ方法によれば、デバッギングおよびプロファイ
リングが、ダイナミックバーチャートが割込みの瞬時周
波数を示すように、あるいは、デバッグ用ハードウエア
から受ける蓄積データを見れば判るように、実時間で行
われる。また、特定の事象の選択により、その事象に対
して渡したパラメータもしくは実行時間の表示が行われ
る。
【0014】デバッグシステムにシンボルテーブルもし
くはメモリマップを供給することにより、非強制的なデ
バッグシステムは、実行ヒストリ、もしくはシステムの
失敗に引続く後戻りレコードを提供することができる。
また、トリガ能力は解析の開始をトリガすべきアプリケ
ーションの特定のサブルーチンを使用者が特定し得るよ
うにする。ハードウエアが捕捉したデータは、後続の解
析用もしくは比較用に蓄積しておくことができる。
【0015】このデバッグシステムの、以上に説明した
従来の方法に勝る主な利点は、つぎのように要約するこ
とができる。付加的なメモリの使用、非常ローディング
もしくは実行時間割込みなど、モニタ装置からの妨害を
受けることなく、コンピュータシステムに対してモニタ
リングを行うことができ、これは従来のデバッグツール
ではあり得ないことである。
【0016】オペレーションシステムの知識を新たな装
置から得たデータの説明に用い得るので、オペレーショ
ンシステムとアプリケーションとの相互作用を充分に探
究することができ、これは従来の何れの方法でもあり得
ないことである。完全なシステム、すなわちハードウエ
アの構成、オペレーションシステムおよび組合わせアプ
リケーションのデバッギングを実行することができ、こ
れは従来のデバッグツールあるいはICEによってあり
得ないことであり、デバッグデータの説明の自動化によ
り、論理解析器によって見出したデバッギングの頼りに
ならない性質を除去することができる。
【0017】
【実施例】本発明の方法及び装置の特別な用途は、これ
に限定されることはないが、オペレーティングシステム
OS−9の特性を利用するCD−I装置のためのハード
ウェアデバッグツールを提供することである。本発明が
どのようにして例えばオペレーティングシステムOS−
9に適用することができるかが当業者にとっては自明の
ものであっても、以下の記述はこのようなデバッグツー
ルについてのものである。
【0018】これまでのデバッグ方法の効果を減らすタ
イミングの問題は、CD−Iプレヤーがマルチタスクの
環境にあるために起きる。アプリケーションが実行され
ている際には、プロセッサはディスプレイを更新すると
か或いはCDドライブから読み出すといった別のタスク
を実行することもできる。更に、システムに接続された
装置(例えばローラ−コントローラ)は活性化されると
プロセッサに対して割込みを発生し、これらはプロセッ
サが適切なアクションをとるためのアクティビティを要
求する。このマルチタスク環境の影響は、従来のデバッ
クを用いたアプリケーションの解析が全てのプロセッサ
のアクティビティを示さないことである。CD−Iタイ
トル(例えばアクションゲーム或いはディジタルビデオ
タイトル)の複雑性が増えるにつれて、アプリケーショ
ンはより大きなプロセッサ時間を要求するようになり、
アプリケーションそのものではなく、完全なプロセッサ
アクティビティを解析することが更に重要になって来
る。
【0019】非強制的なデバッギングは、CD−Iプレ
ーヤが実際にコードを実行している間、このCD−Iプ
レーヤが何を実行するかを推論する。この推論はCD−
Iプレーヤ中の拡張バスに得られる信号をモニタするこ
とにより達成される。次に、アルゴリズムを用いてバス
のアクティビティを出力し、特定の事象を検出しうるよ
うにする。これらの事象は、メモリからの命令の取出し
や、システムスタックへの書込みのような他のバスアク
ティビティをモニタすることにより検出される。このバ
スアクティビティには以下のことが含まれている。
【0020】システムの呼出し。システムに渡されたパ
ラメータを検出するようにするシステム呼出し処理中シ
ステムスタックにおけるすべてのレジスタの記憶。タイ
マ又はCDプレーヤのような装置からの割込み。割込み
中に成されたシステム呼出し又は他のシステム呼出し。
割込みからの復帰。サブルーチン呼出しおよび復帰。定
義済メモリアクセス。
【0021】従来の強制的なデバッキング中、ブレーク
ポイントが一般にサブルーチン呼出しやシステム呼出し
の前又は後に入れられる。これにより、正しい呼出しが
成されたかや、所望のパラメータが渡されたかをプログ
ラマが確認しうるようにする。これにより、非強制的な
デバッギングがサブルーチン呼出しやシステムの呼出し
を検出しうるようにすることや、プレーヤを停止するこ
となくシステム呼出しに対しパラメータを渡しうるよう
にすることを特に有効にする。更に、システム呼出しが
(オペレーティングシステム内にあるものの為に強制的
なデバッギングではプログラマに得ることができない)
他のシステム呼出しを実行しうる為、非強制的な方式に
よればデバッギングの一層の細分化が得られる。
【0022】非強制的なデバッギング中は、プログラマ
はデバッギングホストに関する対話式のデバッギングツ
ールを用いてプロセッサアクティビティを解析しうる。
特定のアクティビティ(例えば割込み又はシステム呼出
しの発生)の瞬時的レベルを実時間で決定でき、記憶さ
れたデータの解析により、システム呼出しに対し渡され
たパラメータを検査したり、サブルーチンの逆戻りをC
D−Iプレーヤシステムの故障に続いて行ったりさせ
る。
【0023】非強制的な割込み、サブルーチン呼出しお
よびシステム呼出し検出とタイミング情報とを組合せる
ことにより簡単なプロファイリングを実効しうる。これ
により、プロセッサが所定のタスクを実行するのに費や
した時間の部分を決定でき、所望に応じ調整しうる。こ
の情報によりプログラマは速度に対するコード区分を最
適化しうる。
【0024】アプリケーションはOS−9においてバス
アクティビティの標準パターンを生じるTRAP♯0命
令を用いてシステム呼出しを行う。これにはTRAP♯
0演算コードおよびベクトル番号(Ox 4E40)のプ
ログラムメモリからの読出し、ショートスタックフレー
ムのシステムスタックへの書込み、ベクトルの内容の読
出しおよび当該アドレスへのジャンプが含まれる。これ
に続いて、すべてのレジスタがシステムスタックにセー
ブされ、システムファンクションコードがTRAP命令
に続くメモリ位置から読出される。システム読出し(こ
れには他のシステム呼出しを含めることができる)が処
理された後、レジスタが回復され、トラップが復帰す
る。システム中の各レジスタの内容は、デバッギングシ
ステムのモニタ用ハードウェアがTRAP♯0のオペレ
ーションの開始を識別しうる限りシステム呼出しが生じ
る度に決定しうる。
【0025】パラメータは、システム呼出しが成される
前にこれらパラメータを所要のレジスタ内にローディン
グすることによりシステムファンクションに渡される。
システムスタックに対するすべてのレジスタの書込みを
解析することによりこれらのパラメータを識別しうる。
システム呼出しファンクションコードはこれをプログラ
ムメモリから読出した際に決定でき、トラップの開始お
よび終了時における時刻表示により、プロセッサがその
サービスにどの位の時間を費やしたかを表示することが
できる。TRAP♯0命令と同期する機能を有するシス
テムは極めてパワフルなデバッギングツールを提供し且
つ第1レベルのプロファイリング機能を提供すること明
らかである。デジタルビデオタイトルの製作やこれに関
連するCD−Iプレーヤに対する計算上のロードが高ま
るにつれ、CPUアクティビティを非強制的にプロファ
イリングしうるようにする重要性が高まってきている。
【0026】多くのCD−Iプレーヤの心臓部にある6
8070マイクロプロセッサは先取り命令を用いて効率
を高めている。このことは、プロセッサが現在の命令を
復号している際に命令符号がメモリから読出されること
を意味する。このようにすることにより、マイクロプロ
セッサのバスアクティビティが、プログラムを構成する
命令符号の列に直接相関関係をもたなくなるという効果
が得られる。システム呼出しにこのことを用いると、シ
ョートスタックフレームが必ずしもTRAP♯0演算コ
ードの取出しに追従しなくなる。その理由は、この命令
はプロセッサが前の命令を複合している間に取出される
為である。メモリ位置のクリアのような前の命令の効果
は、トラップ命令が取出される後までシステムバスに現
われることができない。
【0027】TRAP♯0に続く事象の列の中に割込み
が生じる場合には、デバッギングハードウェアはプレー
ヤとの同期を失うおそれがある。しかし、割込みサービ
スルーチンはしばしばシステム呼出し自体を行う為、割
込みが生じた時を信頼的に検出しうるようにすることが
重要である。
【0028】バスアクティビティのみをモニタすること
によっては割込みの発生を決定するのは困難である。外
部割込み要求や応答ラインはモニタすることができる
が、同じく割込みを生じるUARTおよびDMACのよ
うなサブシステムには68070マイクロプロセッサが
組込まれている。これらの割込みが処理中であるという
ことを表わす外部信号はない。
【0029】割込みがペンディング中であることをプロ
セッサが検出すると、プロセッサは現在実効されている
タスクの優先度と割込みの優先度とを比較し、割込みの
優先度が高い場合のみこの割込みのサービスをする。プ
ロセッサが割込みのサービスを開始すると、ベクトルが
これを生じた装置から決定され、ショートスタックフレ
ームがシステムスタックに書込まれ、割込みベクトルの
内容が読出される。次に、ベクトルに記憶されたアドレ
スから実効が継続される。内部的に発生される割込みは
自動ベクトル化されており、従ってベクトルの取出しは
実行されない。
【0030】先取り命令および割込み命令は、これらが
ない場合にデバッギングシステムに有効情報を与えうる
バスアクティビティの予測可能な列を害するおそれがあ
る。従って、事象の検出は個々のバスサイクルを頼って
いる。
【0031】TRAP♯0に続くバスアクティビティを
本明細書の終りに記載したリスト1につき説明する。こ
のリスト1においては、それぞれの列が左から右に、状
態番号、プロセッサの読出し(Read)又は書込み(Write)
、アドレスバス内容、データバス内容および注釈又は
コード分解を示す。バス状態はアドレスストローブ信号
(ASN)の立上がり縁でラッチされることに注意すべ
きである。
【0032】TRAP♯0は、プログラムがシステム呼
出しを行うことも望む際に実行される。代表的なコード
断片は以下の通りである。
【数1】 この場合、クリアワード命令にシステム呼出しが続く。
アドレスOx1A1F5EはTRAP♯0演算コード
(Ox4E40)を含み、次のアドレスはシステムファ
ンクションコード
【数2】 を含む。実行に続くバスアクティビティをリスト1に示
してあり、このリストを参照されたし。
【0033】状態1〜4:リスト1から明らかなよう
に、先取り命令によりバスアクティビティをアセンブラ
コードに対し異なる順序にする。トラップ演算コード
は、プロセッサがレジスタa2の内容に8を加えること
により有効アドレスを計算している間に取出される。命
令が取出された後にのみ、メモリの書込みが行われる。
【0034】状態5〜8:トラップ♯0演算コード(状
態1〜4)の読出しに続いて、ショートスタックフレー
ムがシステムスタックに記憶される。ショートスタック
フレームは、TRAP♯0に対するベクトルのオフセッ
トOx80を含むヘッダと、TRAP♯0命令が位置す
るプログラムカウンタ(PC)と、状態ワードとより成
る。ヘッダワードにおける最上位からのニブルが零であ
ることはショートスタックフレームを表わす。
【0035】状態9〜17:所定のベクトルが読出さ
れ、このベクトルに記憶されているアドレスに飛越しが
行われる。プロセッサがベクトル内容から演算を開始し
た後、2ワードがスタックにプッシュされ、次に更なる
飛越しが行われる。命令の先取りの為に、更なる飛越し
の演算コードと、オペランドの取出しとの間で2ワード
のプッシュが生じること明らかである。
【0036】状態18〜19:すべてのデータおよびア
ドレスレジスタ(スタックポインタa7を除く)がスタ
ックにセーブされる。
【0037】状態20〜33:スタックにおけるアドレ
スレジスタの記憶。 状態34〜49:スタックにおけるデータレジスタの記
憶。
【0038】状態50〜64:オペレーティングシステ
ムのベース(基底)アドレスの読出し。a5からの最終
読出しによりシステム読出しファンクションコードのア
ドレスを、記憶されたPCにより指摘されているその記
憶位置からショートスタックフレーム内にロードさせ
る。演算コードおよびこの命令に対するオペランドの取
出しには前の命令からの書込みが割込まれていることに
注意すべきである。
【0039】状態65〜66:ファンクションコードの
読出し;これはTRAP命令後に規定されたワードであ
る。TRAP♯0を除くベクトルが読出された点(リス
ト1の状態9)から64サイクルに関するデータをカー
トリッジがセーブすると、このセーブされたデータによ
りカートリッジプロセッサが以下の情報を決定するよう
にする。 −状態20〜49からのすべてのレジスタの内容。 −状態66におけるデータバスの値からのシステム呼出
しのファンクションコード。 −システム呼出しが行われたアドレス(このアドレスか
らシステムコードが状態66で取出された)。
【0040】次に割込みの処理を考慮するに、CD−I
プレーヤにおける68070プロセッサが以下の多数の
ソースからの割込みを受ける。 −IN2,IN4,IN5およびNMI復号割込み信
号。 −INT1およびINT2ラッチ割込み信号。 −組込みタイマ。 −RS232受信および送信。 −DMAチャネル1および2。
【0041】IN2,IN4およびIN5復号割込み信
号は拡張バスにおけるこれらの応答ラインで得られる
が、これらの信号は割込みがいつ生じているかの完全な
表示は与えない。割込みはプロセッサ内のタイミングお
よびDMA回路によっても発生され、プロセッサがこれ
らソースの1つからの割込みをサービス(処理)してい
ることの外部表示はない。
【0042】割込み(これが内部であろうと外部であろ
うと)がプロセッサに送られると、プロセッサはこの割
込みが現在のタスクの優先度よりも高い優先度を有して
いる場合のみこの割込みのサービスをする。この割込み
の優先度が低い場合には、ベクトルが装置から読出さ
れ、ショートスタックフレームがシステムスタックに記
憶され、ベクトルアドレスの内容が読出され、このアド
レスに飛越しが行われる。この例は、割込みが状態2で
サービスされているリスト2に示されている。スタック
フレームヘッダにおけるベクトルオフセットはOx20
0であり、これはロングワード内容を有する各ベクトル
エントリの為に4倍されたベクトル(Ox80)であ
る。
【0043】CMACからのような外部割込みが生じた
場合には、割込みベクトルの取出しはない。その代わ
り、内部オートベクトル割込みが発生される。リスト3
のコード抽出はシステム呼出しの状態51(システムス
タックへの全レジスタ記憶の直後)で生じるような割込
みを示している。スタックフレームに記憶されたプログ
ラムカウンタ(PC)の値は、状態50における命令が
取出されているが実行されていないアドレスであること
明らかである。
【0044】リスト2および3のコードセグメントは、
外部割込みが割込みベクトルを割込み装置から取出し、
一方、内部割込みがオートベクトル化されることを示し
ている。前述したように、68070プロセッサは先取
り命令を実行し、ペンディング中の割込みのサービスへ
の切換えが行われるのはこの先取り命令の後である。こ
の切換えが行われると、演算コード命令が捨てられ、こ
の命令が取出されたアドレスがスタックフレーム内に記
憶されている更なるアドレスの値となる。従って、最低
で1Kバイトのメモリにおける記憶位置からの割込みベ
クトルの取出しにより割込みが検出される。
【0045】トラップすなわち割込みの終了時にはRT
E(例外からの復帰)命令が実行される。この命令の瞬
時に続くバスアクティビティはリスト4に示す通りにす
ることができる。RTE命令の実行に続いて、ショート
スタックフレームがシステムスタックから除去され、ス
タックフレーム内に記憶されているアドレスから次の命
令が取出される。
【0046】サブルーチンが呼出されると、プログラム
カウンタ(PC)の値がスタックに記憶される。サブル
ーチンからの復帰が行われると、スタックにおけるトッ
プ値が除去され、プログラムカウンタの新たな値として
用いられる。サブルーチンからの復帰は、値Ox4E7
5を有する“サブルーチンからの復帰”演算コード(R
TS)を読出すためのフィルタリングにより容易に検出
しうる。サブルーチン呼出しは検出するのがわずかに困
難である。その理由は、以下の幾つかのバージョンがあ
る為である。
【0047】−JSR(a0)のような内部発生アドレ
スを有するジャンプサブルーチン(JSR)が、サブル
ーチンが記憶されている位置(a0,a1,等)に応じ
て異なる演算コードを有する。命令はOx4E90〜O
x4E97の範囲の単一ワードより成る。この種類のサ
ブルーチン呼出しに続くバスアクティビティをリスト5
に示す。
【0048】状態0においては、サブルーチン呼出し演
算コードが読取られ、状態1では、呼出されたサブルー
チンの第1演算コードの有用な読取りが行われる。その
場合には、命令が復号されるとともに、状態2および3
で現在のPCがスタックに書込まれる。状態4において
は、新たなサブルーチンで命令の処理が継続する。事象
の検出は、範囲Ox4E90乃至Ox4E97における
ワードの読取りに対し、フィルタリングによって行わ
れ、単一CD−Iバスサイクルだけ遅延するので、状態
1の期間中に起こることになり、これにより、呼出され
たサブルーチンのアドレスが、事象データの一部として
蓄積されて、蓄積されているシンボルテーブルと比較さ
れることが可能となる。
【0049】JSR6(a0)のような付加的オフセッ
トを用いて計算したアドレスを付したジャンプサブルー
チン(JSR):これは、サブルーチンが蓄積されてい
る場所(a0,a1など)によって異なる演算コードを
有するとともに、オフセットを特定すべき演算コードに
引続くオペランドワードも有している。命令は、範囲O
x4EA0乃至Ox4EA7における単一ワードからな
っている。事象検出は、この領域におけるワードの読取
りに対するフィルタリングによって行われ2CD−Iバ
スサイクルだけ遅延するので、オフセット読取りを超え
てスキップし、新たなアドレスのサブルーチンからの演
算コード取出し期間中に再度起こる。これは、いわゆる
サブルーチンのアドレスが事象データの一部として蓄積
されて、蓄積されているシンボルテーブルと比較される
のを可能にする。
【0050】8ビット変位を伴ったブランチサブルーチ
ン(BSR)は、その変位が演算コードワードの低位の
バイトに蓄積されるので、変位量に応じて異なる演算コ
ードを有している。したがって、命令は、範囲Ox61
01乃至Ox61FFにおける単一ワードからなってお
り、この型のサブルーチン呼出しに引続くバスアクティ
ビティを次のリスト6に示す。
【0051】状態0においては、サブルーチンブランチ
演算コードを読取り、状態1では、呼出されたサブルー
チンの第1演算コードの有用な読取りが行われる。その
場合には、命令が復号されるとともに、状態2および3
で現在のPCがスタックに書込まれる。状態4において
は、新たなサブルーチンで命令の処理が継続する。事象
の検出は、範囲Ox6101乃至Ox61FFにおける
ワードの読取りに対し、フィルタリングによって行わ
れ、単一CD−Iバスサイクルだけ遅延するので、状態
1の期間中に起こることになり、これにより、呼出され
たサブルーチンのアドレスが、事象データの一部として
蓄積されて、蓄積されているシンボルテーブルと比較さ
れることが可能となる。
【0052】16ビット変位を伴ったブランチサブルー
チン(BSR)は、ブランチ演算コードに引続く16ビ
ットオフセットワードとともにOx00と規定した上述
の場合には、8ビットの変位を有している。したがっ
て、命令は、16ビットオフセットが引続くOx610
0の単一ワードからなっている。事象検出は、Ox61
00ワードの読取りに対するフィルタリングによって行
われ、2CD−Iバスサイクルだけ遅延しているので、
オフセット読取りを超えてスキップし、新たなアドレス
のサブルーチンからの演算コード取出し期間中に再び起
こる。これにより、読出されたサブルーチンのアドレス
が事象データの一部として蓄積されて、蓄積されている
シンボルテーブルと比較されるのを可能にする。かかる
バスサイクルの期間中、アクセスがDMAに対して行わ
れるが正常な処理ではない。
【0053】本発明を実施するモニタ装置は、ディジタ
ルビデオカートリッジと同様に、CD−Iプレーヤの開
発もしくは製造に適合したカートリッジの形態をなして
いる。カートリッジはプレーヤバスアクティビティの収
集、解析および蓄積並びに結果を得るためのホストデバ
ッグシステムとの連絡に従事し、収集および解析のアル
ゴリズムの実時間構成を許すものであり、ホストは、適
切にプログラム制御したPCなどのコンピュータとす
る。
【0054】カートリッジのブロック線図を図1に示
す。デバッグカートリッジは、68020プロセスコア
をベースとしたモトローラ社MC68340型マイクロ
プロセッサ10を模して設計されており、付加的集積サ
ブシステムを伴った高性能32ビットプロセッサであ
り、2チャネルDMAコントローラ、2個のタイマ/カ
ウンタ、2チャネルUSART(ユニバーサルシンクロ
ナス/アシンクロナスレシーバ/トランスミッタ)、並
びに、システム保護を行い、チップセレクトおよび待ち
状態を評価し、クロックシンセサイザ、外部バスインタ
ーフェースおよび裁定マネージャを含むSIM(システ
ムインテグレーションモジュール)を包含している。こ
の装置は25MHzまでの周波数で動作する。
【0055】SIMは、四つの外部チップ選択信号が、
外部メモリ(ROM蓄積、RAM蓄積、プログラム制御
可能の論理構成およびデバッガの場合のプログラム制御
可能の論理内部レジスタ)とそれぞれ簡単にインターフ
ェースし得るようにする。三つまでの待ち状態をEPR
OMなどの比較的低速のデバイスに対して有用なように
プログラム制御し得るとともに、ダイナミックバスサイ
ズも支持する。別様にプログラム制御されない限り、各
バスサイクル毎に行われる「グローバル」チップセレク
トは、システム初期化が起こる前のブートROMに対す
る補助的アドレス復号化の必要をなくしている。
【0056】ファームウエアは単一の128キロバイト
27C1024EPROMデバイス12に蓄積され、グ
ローバルチップセレクトは、三つの待機状態を有する1
6ビットポートとして動作するようにプリセットされて
おり、25メガヘルツのクロックレートで180ナノ秒
のアクセス時間に対応しているが、ファームウエアは、
次の各要素からなっている。 −ブートデータおよび初期化コード: −カートリッジのオペレーションを証明するためのパワ
ーオンセルフテスト: −スピード用RAMにコピーした直列ポート基本要素そ
の他のBIOSルーチン: −基本的なコマンドラインインタープリタ(CSI)お
よび対応するカートリッジ開発用ルーチン: −ロードして実行すべきローダコードおよびオペレーシ
ョンシステム: −使用中のロード時間を最小にするためのライブラリフ
ィルタ構成ファイル:
【0057】適切にも、直列リンク上のロードを減少さ
せるとともに、フィルタのプログラム制御のレートを増
大させるためにEPROMに蓄積した以下に説明するよ
うなフィルタ構成ファイルをカートリッジが多数所有し
ている。
【0058】デバックタスクはかなりの量の高速揮発性
メモリを必要とするが、これを最も容易に提供する方法
は、周期的な回復を必要とせず、極めて高速のアクセス
レートで利用し得る故のSRAM14の使用であり、4
メガバイトまでのSRAMデバイスを1メガバイトモジ
ュール中のカートリッジに付加することができ、カート
リッジの初期化中に、利用可能のメモリを決定して、つ
ぎの各領域間でこのメモリを区分けする。 −割込みベクトル、スタック等のシステムデータ領域。 −直列ポート基本要素、バッファ等のBIOSルーチン
領域。 −コード、データ、バッファ等のオペレーションシステ
ム領域。 −事象キャッシュから読出した未処理の事象データ蓄積
領域。 −バックトレースバッファ、事象スタック等の処理済み
事象蓄積領域。 フィルタ設計が直列リンクを超えて重ねてロードされる
のを防ぐロード済みフィルタ構成ファイル。
【0059】アドレス復号化は、二つの高速プログラム
制御可能論理デバイスによって行われ、全アドレス領域
に亘ってバイトもしくはワードのアクセスを可能にする
が、高性能のSRAMデバイスは高価であるので、安価
な方のDRAMデバイスを、性能低下のおそれはある
が、使用することができる。
【0060】高速度直列リンク16は、カートリッジと
デバッグホストとの間の連絡用に、68340マイクロ
プロセッサの両直列通信チャネルを用いて設定され、そ
の第1チャネルは、標準ターミナルに対して十分な二重
通信を設定するが、これは、カートリッジCLIおよび
対応するサブルーチンと共同して、カートリッジのオペ
レーションおよび特性を解析するとともに、カートリッ
ジのサブシステムをテストするのに使用する。連絡は、
RTSおよびCTSの信号を用いて達成されるフロー制
御により、9600ボーで行われる。
【0061】第2チャネルは、適切なプロトコルを用い
て、デバックホストとの充分な二重通信を設定するが、
これは、デバッグホストと構成および事象の報告に関与
するカートリッジとの間の通信全部に用いられる。この
通信は、RTSおよびCTSの信号を用いて達成される
フロー制御で19200ボーで行われる。
【0062】デバッグホストで進行しているソフトウエ
アの制御のもとに、事象もしくは事象の組合わせが特定
のデバッグファクションを達成するためのメニューから
選ばれ、ついで、ホストソフトウエアは、ほぼ8キロビ
ットの大きさの適切な構成ファイルを、そのときプログ
ラム制御可能の事象フィルタ18を構成するカートリッ
ジに、そのファイルがそのカートリッジ中に既に存在し
ていなければダウンロードする。
【0063】プログラム制御可能のフィルタは、900
0ゲートフィールドプログラマブルゲートアレイ(Fφ
GA)を用いて完成されるが、これは、所定のファンク
ションを達成するために構成して接続し得る320個の
組合わせ論理ブロック(CLBs)を含有している。多
数のフィルタ設計が、そのデバイスが与え得る範囲の機
能性に応じて必要とされるが、その設計のすべてに、同
一モジュール、すなわち、事象フィルタ、キャッシュR
AMメモリコントローラおよびタイムスタンプ発生用手
段が存在している。
【0064】多数の事象フィルタがCD−I拡張バス上
の信号をモニタして、条件が整ったときにトリガする
が、これは、DMAサイクルが進行しつつあるとき、特
定のメモリアドレスをアクセスしたとき、システム呼出
しが発生したとき、サブルーチンが呼出され、あるいは
復帰したとき、割込みが発生し、あるいは復帰したと
き、などに起こる。フィルタ内のレジスタはフレキシビ
リティの手段を提供するためのものである。また、特定
のフィルタが不能になることがあり、メモリアドレスア
クセス用のフィルタには、使用者が関心を有するアドレ
スを保持したレジスタが含まれていることがある。
【0065】事象が検出されると、一,二の事象が起こ
り得る。事象検出回路は、その事象に組合わさったデー
タバス、アドレスバス、タイムスタンプ等のパラメータ
からなる事象フレームを事象キャッシュメモリ20にセ
ーブするか、後段の詳細な解析用に、後続するバスアク
ティビィ全部の事象キャッシュへのダンピングを開始す
る。事象キャッシュはFIFO蓄積領域としてオペレー
トする。FGPA内のキャッシュ制御回路は、事象発生
の都度の事象データの書込み用、もしくはプロセッサに
よる事象データの読出し用のアドレス発生を維持する。
【0066】ある事象が発生した場合に、事象キャッシ
ュメモリ20に書込まれる事象フレームは、タイムスタ
ンプを含んでおり、これは、マイクロ秒オーダのレゾリ
ューションを与える増分カウント、もしくは、CD−I
プレーヤ映像回路のフレーム/ライン情報をベースにし
たタイムスタンプであり得る。
【0067】プログラム制御可能のフィルタ18は、1
28キロバイトの大きさとするのが好適な事象キャッシ
ュメモリ20に対するあらゆるアクセスを制御する。事
象キャッシュメモリに関連したアドレスデータおよび制
御信号は、プログラム制御可能のフィルタ18によって
管理されている。
【0068】このメモリへの書込みは、事象が発生した
後に発生し、事象フレーム、もしくは事象に引続くCD
−Iプレーヤ拡張バスアクティビティのダンプからなっ
ている。また、このメモリからの読出しは、プログラム
制御可能フィルタ論理内のレジスタの読出しによって行
われ、これは、プロセッサ10とキャッシュメモリ20
との間の直接接続は存在せず、したがって、書込みレイ
テンシーは存在しないことを確実にしており、書込みタ
イミングがCD−I拡張バスの高速度の故にクリティカ
ルであるから、重要である。諸信号は、FIFOバッフ
ァの「充満」を指示するプロセッサにとって利用可能の
ものである。
【0069】プログラム制御可能のコミュニケーション
論理デバイス22(4200ゲートFPGA)は、マッ
プ可能のEPROM用のマップレジスタおよびアドレス
デコード、並列コミュニケーション回路、並びに割込み
発生回路を含めて、デバッグ環境にとって重要な多数の
ファシリティを提供している。
【0070】このモニタカートリッジは、CD−Iメモ
リスペース中にマップした2個の16キロバイトEPR
OMを適切に備えており、このEPROMのスペースア
ドレスは、その値をコミュニケーション論理内のレジス
タに書込むことにより、このカートリッジが設定する。
典型的には、このEPROMは多数のOS−9モジュー
ルを含んでおり、ベースアドレスをレジスタに書込んだ
後に、CD−Iプレーヤをリセットして、このモジュー
ルの位置決めをプレーヤの初期化中に行うことができ
る。
【0071】コミュニケーション論理は、CD−Iプレ
ーヤに割込みを発生させて、ベクトルを供給することが
でき、このベクトルは、コミュニケーション論理内のレ
ジスタから得られる。これは、ホストソフトウエアのコ
マンドのもとに、あるいは、特殊な事象が検出された場
合に、CD−Iの正常なオペレーションが割込まれるの
を可能にする。このベクトルは、望むならば、マップ可
能のEPROMメモリからのCD−Iプレーヤのジャン
プを起こさせることができ、このモニタカートリッジ
は、このようにして、従来のデバッギングを非強制的な
バッギングと同様に実行することを可能にする。
【0072】CD−Iとデバッグホストもしくはカート
リッジとの間の高速度データ転送のために、コミュニケ
ーション論理は、双方向並列コミュニケーションリンク
を提供するが、これは8個の双方向データ信号とSTR
OBEおよびACKフロー制御信号とのために必要なイ
ンターフェースを提供することになる。
【0073】32キロバイトEPROM蓄積領域24
は、CD−Iプレーヤメモリマップに含まれるべきOS
−9モジュール用に設けてあり、これは従来の「ブレイ
クおよび解析」の特徴を、適切なデバッグ用OS−9モ
ジュールに書込みを行うことにより補充し得るようにし
ている。CD−Iプレーヤと、プログラム制御可能のコ
ミュニケーション論理によって設けるがパイプのような
CD−Iオペレーションシステムに現れる初期のコミュ
ニケーション能力を用いたカートリッジとの間に、他の
モジュールによって高レベルコミュニケーションインタ
ーフェースを設けることができ、さらに他のモジュール
により、初期の並列コミュニケーション能力を仮想ディ
スクのようなCD−Iオペレーションシステムに現われ
させることもできる。マップ可能の蓄積用のアドレス復
号化は、コミュニケーション論理により、その論理内の
レジスタによってベースアドレスを設定するのと同時に
遂行する。
【0074】カートリッジ用並列入出力ポート26は、
デバッギングホストとCD−Iプレーヤとの間に、その
ホストが指示する高速双方向コミュニケーションの能力
を提供するが、すべてのホストが書込みと同時に並列ポ
ートを介して読出しを支持するわけではないので、方向
の制御は制御信号を用いたホストによって管理される。
【0075】システム呼出しおよび割込みに関係のある
データの検出、解析および蓄積に適応し得るハードウエ
アは、バスアクティビティの解析行うために、6807
0信号に同期する必要があるが、これは信号ASNの立
上がりエッジにバスの状態をラッチすることによって達
成される。この信号は、そのバスからデータを受取り、
もしくは、そのバスにデータを送り込むバスサイクルの
終端でプロセッサによって表わされる。読取りおよび書
込みのタイミング図を図2に示す。
【0076】オペレーションの期間中、カートリッジ
は、アドレスデータおよびコントロールの各バス上の信
号を受取り、必要な命令もしくは事象が検出されたとき
に68340に情報を与え、これにより、プレーヤの拡
張バスとデバッガ中のプロセッサとの間に大幅のフィル
タリングを導入し、プロセッサが自由に事象処理および
ホストコミュニケーションを管理し得るようにする。
【0077】図3に示すように、プログラム制御可能の
事象フィルタ18(図1)は、プレーヤのアドレスデー
タおよびコントロールの各バス用にそれぞれ比較器32
および遅延要素34を従えたバッファ回路30からな
り、バスアクティビティの特定のパターンを検出し得る
ようになっており、制御回路(図示せず)もキャッシュ
メモリ20(図1)の管理用に設けてある。解析回路の
説明のために、パッファ回路の各出力には、LA(ラッ
チドアドレス)、LD(ラッチドデータ)およびLC
(ラッチドコントロール)の各ラベルを付してあり、L
Cの主要要素はLRWN(ラッチドリード/ライト)で
ある。この各ラベルは、nサイクル遅延した比較器の出
力に付されており、nはASN信号が支配する遅延設定
手段36によって設定された整数値である。したがっ
て、「LA3=Ox123456」はアドレスバスが1
23456の1/60の値をとったときから3バスサイ
クル後に現われるブーリアン信号を表わす。トリガのオ
ペレーションの例としては、つぎの各事象の検出が考え
られる。 −スタックフレーム(トラップすなわち割込み)の発生 ---事象コード♯1 −スタックフレームの除去(例外の終了) ---事象コード♯2 −スタック上の全レジスタをセーブする命令 ---事象コード♯3 −システム呼出しファンクションコードを取出す命令 ---事象コード♯4
【0078】プロセッサは、目下活動中の例外のスタッ
ク、例外を解析するためのバッファおよびその発見を報
告して指令を受入れるためのホスト管理スキームを有
し、正常なオペレーションの期間中、ホストと連絡し
て、バッファ中で発見した事象を処理する。これらの事
象はヘッダとデータ領域とからなっており、ヘッダは事
象の種類を規定し、事象の種類によって決まる大きさの
データ領域は、事象に関連した付加的データを含んでい
る。例えば、スタックフレームの発生に関連したデータ
領域には、例外が生じた命令アドレス、例外が生じた時
点のシステムスタックポインタおよびスタックフレーム
に蓄積された状態レジスタが含まれる。これに加えて状
態カウンタおよびタイミング情報の少なくとも一方を蓄
積することができる。事象バッファ内の情報の処理に際
し、プロセッサは、どの事象を例外スタック中に位置さ
せるのが必要か、所定の例外は終了したか、ホストに報
告する必要があるのは何か、プロセッサはデータをどの
ように処理しているか(例えばバッファがオーバフロー
しかけているか)などを解読することができる。
【0079】スタックフレーム発生(事象コード♯1)
の検出は、トラップすなわち割込みが発生したことを示
すが、その条件はリスト7に示すとおりである。右側の
条件は、少ない個数のゲートによって容易になし得る比
較およびマスキングのみを必要とすることに注目された
い。このシーケンスの検出に際し、フィルタはプロセッ
サに対する割込みを発生させ、プロセッサはつぎの各情
報を読取ることができる。 −LD6が例外のベクトルを提供する。 −LA6が、例えば、例外の前にシステムスタックポイ
ンタを提供し得る。 −LD5およびLD4が、ともに例外が起こった例外ア
ドレスを提供する。 −LD3が状態レジスタを提供する。 −LD2およびLD1が、ともに例外ベクトルの値を提
供する。 プロセッサは、一旦この情報をフィルタから読取ると、
この情報を含んでいる事象バッファに新たなエントリを
発生させる。
【0080】スタックフレーム除去(事象コード♯2)
の検出は、プロセッサが例外の処理を終了したことを示
し、プロセッサは、次の各情報を読取ることができる。 −LD4が復帰しつつある例外のベクトルを提供する。 −LA4がスタックフレームの始端のアドレスを提供す
る。 −LD2およびLD1が、ともに例外が起こった例外ア
ドレスを提供する。 −LD3が蓄積されている状態レジスタを提供する。 プロセッサは、この情報をもった新たな事象バッファを
再度創作することができる。
【0081】マシンレジスタをセーブする命令(事象コ
ード♯3)の検出は、レジスタがシステムスタック上で
セーブされる都度、その内容を逐一捕捉させる。このこ
とは、トラップコードの期間中に生じ、システム呼出し
に応じたパラメータに対するアクセスを提供する。シス
テム呼出しはプログラムの実行中の有意の時点で生ずる
ので、この事象の検出は、CD−Iアプリケーションの
デバッグに対して有効なツールを提供することになる。
この事象に対する条件はリスト9に示すとおりである。
【0082】このシーケンスの検出に際し、フィルタは
プロセッサに対して割込みを発生させ、プロセッサはつ
ぎの情報を読取ることができる。 −LA1が命令の始端のアドレスを提供する。
【0083】プロセッサは、レジスタが逐一システムス
タックに書込まれるのをウォッチすることができ、さら
に、新たな事象バッファエントリに蓄積することができ
る。
【0084】システム呼出しファンクションコードを取
出す命令(事象コード♯4)の検出は、どのシステムフ
ァンクションが呼出されているかをプロセッサに識別さ
せる。このことはトラップコードの期間中に起こり、こ
のことに対する条件はリスト10に示すとおりである。
【0085】このシーケンスの検出に際し、フィルタは
プロセッサに対して割込みを発生させ、プロセッサはつ
ぎの情報を読取ることができる。 −LA1が命令の始端のアドレスを提供する。 −LA0がファンクションコードのアドレスを提供す
る。 プロセッサは、この情報を新たな事象バッファエントリ
に蓄積する。
【0086】プロセッサは、FIFOに基づく事象バッ
ファ20に蓄積された事象群について考察する。その事
象バッファ20は、例外タイミングの不均一な性質が解
析に先立って消滅されるようにする。一例として、バッ
ファ中の次の事象がコード♯2の事象である場合に、プ
ロセッサが例外の終りに行う解析について考察するに、
プロセッサは、除去したスタックフレームの属性のいく
つかを、例外スタックの頂点における例外の属性にマッ
チさせることができる。双方の属性がマッチした場合に
は、要すれば、ホストが例外の終端を通告されて、その
例外をスタックの頂点から除去することができ、したが
って、スタックは、現在のトラップすなわち割込みの歴
史の記録を形成することになる。事象コード♯1のスタ
ックフレームが発生すれば、その例外スタックの頂点に
新たな事象を付加することになる。
【0087】このカートリッジを用いた非強制的な実時
間デバックの例をリスト11を参照して説明するに、タ
スクは典型的にはコンパクトディスクとするデータ源か
らCD−Iプレーヤのメモリマップに移したデータのモ
ジュールの検出に関するものである。OS−9モジュー
ルは、すべてモジュル長、コードやデータ等の型式およ
びヘッダチェックサムを記載したものを含む多数のフィ
ールドからなるヘッダを含めた標準書式を有している。
モジュールをメモリにロードしたときは、ヘッダチェッ
クサムを、OS−9コードによって評価するとともに、
ヘッダのチェックサムフィールドに蓄積した価と比較す
る。これは、ヘッダが誤りなくロードされていることを
手早く指示することになる。このタスクを実行するオペ
レーションシステムコードは、「カーネル」と呼ばれる
コアOS−9モジュール内にあり、このコードの知識を
用いることにより、カートリッジが評価されつつあるチ
ェックサムをウォッチし、したがってロードされつつあ
るモジュルを実時間で検出することになる。チェックサ
ム評価期間中のバスアクティビティをリスト11に示
す。
【0088】サイクル(状態)905および906は、
チェックすべきヘッダのサイズをd1レジスタにロード
する。ヘッダは2Eヘックスバイトの長さであり、サイ
クル906におけるシフトは、バイトアクセスよりもワ
ードアクセスを用いてヘッダをチェックすることを考慮
に入れている。サイクル907においては、評価したチ
ェックサムをFFヘックスに初期化する。この評価ルー
プは、サイクル908でスタートし、モジュールヘッダ
における次のワードをdOレジスタに読込む。最初のか
かる読込みがサイクル909で認められる。サイクル9
10は、新たな値を排他的ORすることにより、その新
たな値を現在のチェックサムの値に加算するチェックサ
ム評価の標準方法を用いている。サイクル911および
912は、チェックサム評価が終了していない場合に
は、その評価ループを反復させる。
【0089】モジュール検出用データを提供するのに用
いたフィルタは、
【数3】 命令に対する読取りをトリガする。アドレスOx18A
1FCに対する読取りによりそのモジュールを検出した
後に、フィルタは、引続く64サイクルに関するデータ
を事象キャッシュメモリ20(図1)中にセーブする。
そのセーブしたデータには、各サイクル毎のアドレス、
データおよびコントロールバスの各値が含まれ、したが
って、チェックサム評価ループが生ずるのを示す。カー
トリッジプロセッサ10(図1)は、このようにして、
サイクル909における第1ヘッダフィールドアクセス
から、また長さおよび型式などヘッダ内のフィールドか
ら、新たなモジュールがメモリ内の何処に位置するかを
検出することができる。ついで、このデータは、使用者
の注目を得るために、デバッギングホストPCに送られ
る。
【0090】オペレーションシステムの知識に基づいた
トリガに従い、このデータが実時間で捕捉されるので、
CD−Iプレーヤは、遂行されるデバッグタスクに影響
されずに、正常通りに機能し続ける。
【0091】以上に説明したシステムは、バスシグナル
をフィルタリングして結果の事象を解析する、という問
題に対するアプローチを提供する。事象バッファの解析
は、特別のシステム呼出しが検出され、タイミング情
報、スタックポインタおよびシステム呼出しに対するパ
ラメータなどの属性とともにホストデバッグシステムに
報告されるようにする。
【0092】以上に説明した本発明の開示を読めば、他
の変形は当業者には自明であり、かかる変形には、モニ
タおよびデバッグのシステム、デバイスおよび構成要素
について既知であって、以上に説明した特徴に替えて、
あるいは加えて用い得る他の特徴を含めることができ
る。諸特徴の特別の組合わせに対する特許請求の範囲を
冒頭に掲載したが、本発明の開示の範囲には、前掲の特
許請求の範囲との関連の有無および本発明が解決すべき
技術的問題の緩和の程度には拘わりなく、以上に明確
に、あるいは暗黙理に、あるいは一般化して開示した新
たな特徴もしくは特徴の新たな組合わせを含むこと勿論
である。
【0093】なお、以上に記載した本発明によるモニタ
カートリッジの特徴を表わすオペレーションを説明する
ためのコードセグメントをつぎのリスト1乃至11に順
次に示す。
【0094】
【表1】
【0095】
【表2】
【0096】
【表3】
【0097】
【表4】
【0098】
【表5】
【図面の簡単な説明】
【図1】本発明を実施するコンパクトディスクプレーヤ
用モニタカートリッジを示すブロック線図である。
【図2】読出し・書込み周期のタイミングを示す線図で
ある。
【図3】図1に示したプログラム制御可能論理ユニット
の他の構成例を示すブロック線図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ポウル アンドリュー クラーク イギリス国 アールエイチ11 7ディーエ イチ ウエスト サセックス クロウレイ クロウレイ ホスピタル ザ ガレイジ フラット(番地なし) (72)発明者 ジョナサン リチャード ピーシング イギリス国 シーアール0 7エイチエイ クロイドン ノーサンプトン ロード20

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 プログラム制御を施したプロセッサ主体
    の装置の動作をモニタする方法において、 所定のプロセッサオペレーションシステムの事象を表わ
    す当該装置の電子的信号を判定する過程、 前記プロセッサオペレーションシステム外の位置から、
    当該装置の信号バスにおける前記電子的信号の発生をモ
    ニタする過程、および、 当該信号発生の検出に際し、前記プロセッサオペレーシ
    ョンシステムの事象の所定の詳細を捕捉して報告する過
    程を備えたことを特徴とするブログラム制御装置モニタ
    方法。
  2. 【請求項2】 前記検出した事象に所定のメモリ位置に
    対するアクセスが含まれている場合に、当該メモリ位置
    に書込み、読出した事柄に関する情報の報告を前記捕捉
    して報告する過程に含んでいることを特徴とする請求項
    1記載のプログラム制御装置モニタ方法。
  3. 【請求項3】 事象発生点を指示するタイムスタンプの
    検出データへの加算を前記捕捉して報告する過程に含ん
    でいることを特徴とする請求項1または2記載のプログ
    ラム制御装置モニタ方法。
  4. 【請求項4】 モニタの対象が前記プロセッサ主体の装
    置のデータバスであり、前記電子的信号が所定のデータ
    ワードであることを特徴とする請求項1記載のプログラ
    ム制御装置モニタ方法。
  5. 【請求項5】 モニタの対象が前記プロセッサ主体の装
    置のアドレスバスであり、前記電子的信号が所定のメモ
    リアドレスであることを特徴とする請求項1記載のプロ
    グラム制御装置モニタ方法。
  6. 【請求項6】 事象の検出に際し、当該事象に引続く所
    定期間における全バス信号を捕捉することを特徴とする
    請求項4または5記載のプログラム制御装置モニタ方
    法。
  7. 【請求項7】 プログラム制御を施したプロセッサ主体
    の装置の動作をモニタする装置において、 当該プロセッサ主体の装置の信号バスに接続可能であっ
    て、特定のプロセッサオペレーションシステムの事象を
    表わす少なくとも当該装置の所定の電子的信号の発生を
    検出可能のフィルタ手段、 当該フィルタ手段に接続して事象の検出に際し、予定し
    た詳細を書込み可能な事象キャッシュメモリ、 前記フィルタ手段に接続して、当該フィルタ手段を介
    し、前記事象キャッシュメモリから読出した事象の詳細
    を蓄積可能の事象データ蓄積メモリ、および、 前記フィルタ手段および前記事象データ蓄積メモリに接
    続してそれぞれの動作を制御するプロセッサ回路を備え
    たことを特徴とするプログラム制御装置モニタ装置。
  8. 【請求項8】 前記フィルタ手段が、所定の装置信号の
    配列から少なくとも一つの装置信号を制御可能に検出し
    得るプログラム制御可能の装置であることを特徴とする
    請求項7記載のプログラム制御装置モニタ装置。
  9. 【請求項9】 前記フィルタ手段に接続して、フィルタ
    構成を規定する情報を蓄積するフィルタ構成蓄積手段を
    備えたことを特徴とする請求項8記載のプログラム制御
    装置モニタ装置。
  10. 【請求項10】 前記プロセッサ回路が、捕捉した事象
    の詳細を、前記事象データ蓄積メモリにおける第1領域
    から読出し、処理して、他の領域に再度書込み得ること
    を特徴とする請求項7乃至9のいずれかに記載のプログ
    ラム制御装置モニタ装置。
  11. 【請求項11】 前記信号バスに接続可能であって、前
    記プロセッサ主体の装置の動作に割込みを行い得るデバ
    ッグ手段を備えたことを特徴とする請求項7乃至10の
    いずれかに記載のプログラム制御装置モニタ装置。
  12. 【請求項12】 前記プロセッサ回路、前記フィルタ手
    段および前記事象データ蓄積メモリに接続可能の双方向
    通信ポートを備えたことを特徴とする請求項7乃至11
    のいずれかに記載のプログラム制御装置モニタ装置。
  13. 【請求項13】 被モニタ装置オペレーションシステム
    の知識によって決定したデータ処理アルゴリズムを施す
    プログラム制御ホスト装置および双方向通信リンクを介
    して当該ホスト装置に接続した請求項11記載のモニタ
    装置を備えたことを特徴とするデバッギング装置。
JP6235467A 1993-09-29 1994-09-29 プログラム制御装置のモニタ方法 Pending JPH07168737A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9320052:5 1993-09-29
GB939320052A GB9320052D0 (en) 1993-09-29 1993-09-29 Testing and monitoring of programmed devices

Publications (1)

Publication Number Publication Date
JPH07168737A true JPH07168737A (ja) 1995-07-04

Family

ID=10742688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6235467A Pending JPH07168737A (ja) 1993-09-29 1994-09-29 プログラム制御装置のモニタ方法

Country Status (6)

Country Link
US (1) US5754759A (ja)
EP (1) EP0645705A1 (ja)
JP (1) JPH07168737A (ja)
KR (1) KR950009435A (ja)
GB (1) GB9320052D0 (ja)
TW (1) TW346568B (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905910A (en) * 1996-05-31 1999-05-18 Micron Electronics, Inc. System for multi-threaded disk drive operation in a computer system using an interrupt processor software module analyzing and processing interrupt signals to control data transfer
US5911077A (en) * 1996-05-31 1999-06-08 Micron Electronics, Inc. System for multithreaded disk drive operation in a computer system
JP3175757B2 (ja) * 1996-08-13 2001-06-11 日本電気株式会社 デバッグシステム
US6081664A (en) * 1996-09-30 2000-06-27 Intel Corporation Method for monitoring a BIOS
KR100247012B1 (ko) * 1997-05-15 2000-03-15 윤종용 통신시스템의 상태정보 수집 및 제어장치
US5903759A (en) * 1997-06-04 1999-05-11 3 Com Corporation Software performance analysis using hardware analyzer
US6393490B1 (en) * 1997-12-18 2002-05-21 Ian James Stiles Method and system for a programmatic feedback process for end-user support
US6374318B1 (en) * 1998-10-16 2002-04-16 Dell Usa, L.P. Filter-circuit for computer system bus
US6212652B1 (en) * 1998-11-17 2001-04-03 Sun Microsystems, Inc. Controlling logic analyzer storage criteria from within program code
US6421813B1 (en) * 1999-10-13 2002-07-16 Micron Technology, Inc. Method and apparatus for providing visibility and control over components within a programmable logic circuit for emulation purposes
US6633838B1 (en) * 1999-11-04 2003-10-14 International Business Machines Corporation Multi-state logic analyzer integral to a microprocessor
GB2363215B (en) * 1999-11-30 2004-01-21 Sgs Thomson Microelectronics Disassembling object code
JP3737662B2 (ja) * 1999-12-03 2006-01-18 富士通株式会社 システムlsiのテストデータ最適化生成方式
US6412050B1 (en) * 1999-12-30 2002-06-25 Intel Corporation Memory record update filtering
SE517917C2 (sv) * 2001-03-26 2002-08-06 Rfo Realfast Operating Systems Integrerad krets för övervakning av händelser i datorsystem
US6928449B2 (en) * 2001-10-18 2005-08-09 Sun Microsystems, Inc. Mechanism for facilitating backtracking
US20030084376A1 (en) * 2001-10-25 2003-05-01 Nash James W. Software crash event analysis method and system
US20030233601A1 (en) * 2002-06-17 2003-12-18 Vaid Kushagra V. Non-intrusive signal observation techniques usable for real-time internal signal capture for an electronic module or integrated circuit
US6895530B2 (en) * 2003-01-24 2005-05-17 Freescale Semiconductor, Inc. Method and apparatus for controlling a data processing system during debug
US7007114B1 (en) * 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7080188B2 (en) * 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
US7139150B2 (en) * 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7120084B2 (en) * 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US8166217B2 (en) * 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US7757009B2 (en) * 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US8032674B2 (en) * 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) * 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US7797686B2 (en) * 2005-05-13 2010-09-14 Texas Instruments Incorporated Behavior of trace in non-emulatable code
US7788645B2 (en) * 2005-05-16 2010-08-31 Texas Instruments Incorporated Method for guaranteeing timing precision for randomly arriving asynchronous events
US20060255978A1 (en) * 2005-05-16 2006-11-16 Manisha Agarwala Enabling Trace and Event Selection Procedures Independent of the Processor and Memory Variations
US20070162158A1 (en) * 2005-06-09 2007-07-12 Whirlpool Corporation Software architecture system and method for operating an appliance utilizing configurable notification messages
US7917914B2 (en) * 2005-06-09 2011-03-29 Whirlpool Corporation Event notification system for an appliance
US20080137670A1 (en) * 2005-06-09 2008-06-12 Whirlpool Corporation Network System with Message Binding for Appliances
BRPI0622273A2 (pt) * 2005-06-09 2011-08-09 Whirlpool Co sistema de rede compreendendo um processador e pelo menos dois nós
US7921429B2 (en) * 2005-06-09 2011-04-05 Whirlpool Corporation Data acquisition method with event notification for an appliance
WO2007076634A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Virtual event interface to support platform-wide performance optimization
US20070220352A1 (en) * 2006-02-28 2007-09-20 Hernandez Adrian M Method and apparatus for measuring signals in a semiconductor device
JP2007328431A (ja) * 2006-06-06 2007-12-20 Fanuc Ltd 制御装置の内部データの観測装置
US7707459B2 (en) 2007-03-08 2010-04-27 Whirlpool Corporation Embedded systems debugging
US20140143667A1 (en) 2012-11-16 2014-05-22 Planet Social, L.L.C. Client device with event wizard application and methods for use therewith
CN106293999B (zh) * 2015-06-25 2019-04-30 深圳市中兴微电子技术有限公司 一种微引擎处理报文中间数据快照功能的实现方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4813009A (en) * 1984-11-02 1989-03-14 Tektronix, Inc. Method and apparatus for determining internal status of a processor
US5115502A (en) * 1984-11-02 1992-05-19 Tektronix, Inc. Method and apparatus for determining internal status of a processor using simulation guided by acquired data
US4720778A (en) * 1985-01-31 1988-01-19 Hewlett Packard Company Software debugging analyzer
US5165027A (en) * 1986-01-24 1992-11-17 Intel Corporation Microprocessor breakpoint apparatus
US4860195A (en) * 1986-01-24 1989-08-22 Intel Corporation Microprocessor breakpoint apparatus
US5127103A (en) * 1987-10-14 1992-06-30 North American Philips Corporation Real-time tracing of dynamic local data in high level languages in the presence of process context switches
US5280626A (en) * 1987-12-02 1994-01-18 Hitachi, Ltd. Multi-process emulator suitable for testing software under multi-process environments
US5067107A (en) * 1988-08-05 1991-11-19 Hewlett-Packard Company Continuous computer performance measurement tool that reduces operating system produced performance data for logging into global, process, and workload files
US5289587A (en) * 1988-11-30 1994-02-22 National Semiconductor Corporation Apparatus for and method of providing the program counter of a microprocessor external to the device
FR2644607B1 (fr) * 1989-03-14 1991-05-31 Trt Telecom Radio Electr Dispositif d'emulation pour determiner le fonctionnement d'un ensemble de traitement d'informations
US5121501A (en) * 1989-12-27 1992-06-09 International Business Machines Corporation First processor inserting hooks into software and sending unique identifications to output bus and second processor associating data frames and time with these unique identifications
US5228039A (en) * 1990-05-09 1993-07-13 Applied Microsystems Corporation Source-level in-circuit software code debugging instrument

Also Published As

Publication number Publication date
TW346568B (en) 1998-12-01
EP0645705A1 (en) 1995-03-29
KR950009435A (ko) 1995-04-24
US5754759A (en) 1998-05-19
GB9320052D0 (en) 1993-11-17

Similar Documents

Publication Publication Date Title
JPH07168737A (ja) プログラム制御装置のモニタ方法
US6009270A (en) Trace synchronization in a processor
US6154857A (en) Microprocessor-based device incorporating a cache for capturing software performance profiling data
US6167536A (en) Trace cache for a microprocessor-based device
JP2824828B2 (ja) プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置
US6026503A (en) Device and method for debugging systems controlled by microprocessors
US6175914B1 (en) Processor including a combined parallel debug and trace port and a serial port
US6185732B1 (en) Software debug port for a microprocessor
US6041406A (en) Parallel and serial debug port on a processor
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
EP0391173B1 (en) Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same
US5134701A (en) Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities
KR20070109432A (ko) 커널 인지 디버깅 장치 및 방법
US20070079177A1 (en) Process monitoring and diagnosis apparatus, systems, and methods
EP2686772B1 (en) Diagnosing code using single step execution
JPH0823837B2 (ja) サンプリング性能分析方法及び装置
JP2002512396A (ja) 組込みシステムのためのリアルタイムデバッガインターフェース
US7007205B1 (en) Method and apparatus for recording trace data in a microprocessor based integrated circuit
EP0869434A2 (en) Method for outputting trace information of a microprocessor
JP2513417B2 (ja) 情報処理装置
EP1184790B1 (en) Trace cache for a microprocessor-based device
US7360117B1 (en) In-circuit emulation debugger and method of operation thereof
US6615368B1 (en) System and method for debugging highly integrated data processors
JP3349911B2 (ja) マイクロプロセッサ及びその開発支援装置
JPS59202546A (ja) デバツグ装置