JP2006309276A - デバッグ機構およびデバッグレジスタ - Google Patents

デバッグ機構およびデバッグレジスタ Download PDF

Info

Publication number
JP2006309276A
JP2006309276A JP2005127234A JP2005127234A JP2006309276A JP 2006309276 A JP2006309276 A JP 2006309276A JP 2005127234 A JP2005127234 A JP 2005127234A JP 2005127234 A JP2005127234 A JP 2005127234A JP 2006309276 A JP2006309276 A JP 2006309276A
Authority
JP
Japan
Prior art keywords
bus
access
master
bus master
debug
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
JP2005127234A
Other languages
English (en)
Inventor
Akira Ueda
亮 上田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005127234A priority Critical patent/JP2006309276A/ja
Priority to US11/410,160 priority patent/US7472310B2/en
Publication of JP2006309276A publication Critical patent/JP2006309276A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 ソフトウェアの不具合によるバスマスタ間の同期制御違反に起因したバススレーブへの誤リードアクセス発生を検出できるデバック機構を提供することを目的とする。
【解決手段】 バス制御装置400を監視し、任意指定された条件に該当するライトアクセスがライトバッファ401,402上に存在する期間中に、同条件のリードアクセスが発生したことを検出可能とする検出器として、ダーティー検出器600およびコヒーレンシエラー検出器700を設け、コヒーレンシエラー検出器700よりコヒーレンシエラー通知を受けてデバッグイベントを発生させることが可能なバスマスタ101に備わったデバッグ装置200を設ける。デバッグ装置200は、コヒーレンシエラー検出器700よりコヒーレンシエラー通知を受けてデバッグイベントを発生し、バスマスタ101の動作を停止させ、デバッグイベントをトリガとした各種デバッグ作業を行う。
【選択図】 図1

Description

本発明は、デバッグ機構、特に複数のバスマスタを備えたシステムの動作をデバッグする際に用いられる解析技術に関するものである。
近年のシステムLSIでは複数のバスマスタが1つのLSI上に集積されることが多く、共通のバススレーブ(例えば、メモリ)を複数のバスマスタが共有することが増えている。このことから各バスマスタの動作性能は勿論のことながらシステム全体の性能向上にはバスアクセスの高性能化が必須となっている。
その一手段として、特許文献1に記載されている、ライトアクセスに対する突き放し制御や、アクセス要求発生順序とバスアクセスの実行順序の一貫性を異バスマスタ間では保証しないバスアクセスのアウトオブオーダー制御が広く用いられている。これに伴って、システム仕様として共通のバススレーブを複数のバスマスタ間で共有する場合にはアウトオブオーダーの関係にあるバスマスタ間の同期を何らかの形で保証する必要が生じるのだが、この同期保証はソフトウェア処理にて実現する傾向がある。
特許第3027439号公報
しかしながら、従来のソフトウェア開発環境では特定の単一バスマスタに特化したデバッグに対応したものしか存在せず、他のバスマスタ等のシステム動作を含めたデバッグするための機能に乏しくデバッグ作業そのものが極めて困難であった。
そこで、本発明は、従来のソフトウェア開発環境に欠けている複数のバスマスタ間動作を考慮したデバッグを可能にすることに主眼を置き、ソフトウェアの不具合にて発生し得るバスマスタ間の同期制御違反に起因した、バススレーブへの誤リードアクセス発生を検出可能な手段を用意することでシステムLSIにおけるソフトウェア開発の容易性向上および開発期間短縮効果を得ることができるデバック機構を提供することを目的としたものである。
この目的を達成するために、本発明のデバッグ機構は、複数のバスマスタが同じバススレーブを共有するシステムにおけるデバッグ機構であって、
複数のバスマスタおよびバススレーブを扱うことが可能であり、かつライトアクセスの突き放し制御およびバスマスタ間のアウトオブオーダー制御を行うバス制御装置と、デバッグ対象とするバスアクセスの各種条件を指定するデバッグレジスタと、前記バス制御装置の動作を常時監視し、前記デバッグレジスタにて指定された条件に該当するライトアクセス要求の発生からバススレーブへのライト完了までの状態不一致期間(ダーティー期間)を検出するダーティー検出器と、前記ダーティー検出器より受けるダーティー期間検出通知をデバッグイベント検出における論理積条件として扱うこと、あるいはトレース情報として履歴を残すことが可能なバスマスタ側に備わったデバッグ装置を設け、
前記デバッグ装置を備えたバスマスタにおいて、前記ダーティー期間中に、前記デバッグ装置にて任意指定された動作条件が成立した場合に発生するデバッグイベントを用いて動作を停止させるか、あるいはダーティー期間検出通知をトレース情報として履歴を残すことを特徴とする。
上記構成によれば、バスマスタからのライトアクセス要求が行われた際に前記ダーティー検出器によって前記デバッグレジスタにて指定された条件との比較を行い、その比較結果が一致した場合、ダーティー期間が発生したことを前記デバッグレジスタにて指定されたバスマスタに対して通知する。また前記ダーティー検出器は、並行して各バススレーブへのライトアクセス完了を監視し、ダーティー期間を検出したライトアクセス要求がバススレーブに対して実行されライトバッファ上から無くなればダーティー期間の通知を取り下げる。前記ダーティー期間検出通知を受けたバスマスタにおいては、備えられたデバッグ装置を用いることにより、ダーティー期間中に任意のバスマスタ動作条件が成立した場合に動作を停止させるか、トレース情報として履歴を残すことでバスマスタ間の同期制御違反を発見することが容易に可能となる。
また本発明は、さらにバス制御装置の動作を常時監視し、前記ダーティー検出器によるダーティー期間検出中に前記デバッグレジスタにて指定された条件に該当するリードアクセス要求があったことを検出するコヒーレンシエラー検出器を加え、前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けてデバッグイベントを発生させることが可能なバスマスタ側に備わったデバッグ装置を設け、前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けて発生したデバッグイベントを用いて、前記デバッグ装置にてバスマスタの動作を停止させること、あるいはコヒーレンシエラー通知をトレース情報として履歴を残すことを特徴とする。
上記構成によれば、バスマスタからのライトアクセス要求が行われた際に前記ダーティー検出器によって前記デバッグレジスタにて指定された条件との比較を行い、その比較結果が一致した場合、ダーティー期間が発生したことを前記コヒーレンシエラー検出器に対して通知する。また、前記コヒーレンシエラー検出器は前記デバッグレジスタで指定された条件と一致するリードアクセス要求を検出した際に、前記ダーティー検出器によるダーティー期間検出通知を参照しダーティー期間中であった場合にコヒーレンシエラー通知をリードアクセス要求を行ったバスマスタに対して通知する。前記コヒーレンシエラー通知を受けた際にデバッグ装置を備えるバスマスタの動作を停止させるか、トレース情報として履歴を残すことでバスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行を発見することが容易に可能となる。
また本発明は、前記バスマスタを、割込み発生機構を備えたプロセッサ型のバスマスタにより構成し、前記コヒーレンシエラー検出器のコヒーレンシエラー通知を、前記バスマスタに対して割込み要求として与えることにより、コヒーレンシエラー検出時にバスマスタ上のソフトウェア動作をフックすることを特徴とする。
上記構成によれば、割込み発生機構にてコヒーレンシエラー通知を受けて割込みを発生させ、バスマスタ上のソフトウェア動作をフックすることにより、バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行を発見することが同様に可能となる。
また本発明は、バスマスタを、デバッグ装置も割込み発生機構も備えないバスマスタにより構成し、前記バスマスタを制御する制御マスタを設け、前記コヒーレンシエラー検出器のコヒーレンシエラー通知を、前記バスマスタに対してバスプロトコル上で規定されたエラー通知手段として与えることにより、前記バスマスタ上の状態レジスタもしくは状態信号へコヒーレンシエラー発生状態を反映し、これを参照する前記制御マスタにてコヒーレンシエラー発生を認識することを特徴とする。
上記構成によれば、割込み発生機構もデバッグ装置も備えず他の制御マスタによって制御を受けるバスマスタでは、コヒーレンシエラー通知を受けたことを制御マスタが検出可能な形式で保持することで制御マスタ側にてバスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行を発見することが同様に可能となる。
本発明のデバック機構は、上記構成を有し、従来のソフトウェア開発環境では発見することすら容易ではなかったシステムレベルの不具合動作の検出が容易になることによって、システムLSIにおけるソフトウェア開発効率を向上させることができ、システムLSIにおけるソフトウェア開発に必要とされる時間を短縮できる、という効果を有している。
以下、本発明の実施の形態を、図面を参照しながら説明する。
図1は本発明の実施の形態におけるデバッグ機構の全体構成図である。
図1において、100は第1バスマスタ、101はデバッグ装置200を備える第2バスマスタ、102は割込み発生機構300を備える第3バスマスタ、103は他の制御マスタ(図示せず)によって制御を受ける第4バスマスタである。また400はバス制御装置、500はデバッグレジスタ、600はダーティー検出器、700はコヒーレンシエラー検出器、800,801はバススレーブである。これら構成により、共通のバススレーブを複数のバスマスタが共有するシステムとなっている。
前記第2バスマスタ101内にあるデバッグ装置200は、検出したデバッグイベントに起因してバスマスタ101の実行動作を停止させるブレーク機能と、バスマスタ101の実行履歴情報中にデバッグイベント検出通知を混入させるトレース機能を備え、デバッグイベント検出の際にバスマスタ101動作の任意条件に加えて、後述するダーティー期間通知602の通知が行われていることを論理積条件とし、また後述するコヒーレンシエラー通知701を受けてデバッグイベントを発生させてバスマスタ101の動作を停止させる機能を有し、デバッグイベントが発生したことを、出力するバスマスタの動作トレース情報に加える(トレース情報に履歴を残す)機能を有している。なお、デバッグイベントが発生したことを、出力するバスマスタの動作トレース情報に加える機能は、必ずしも必要としない。
前記第3バスマスタ102内にある割込み発生機構300は、後述するコヒーレンシエラー通知702を受けてバスマスタ102に対して割込みを発生させ動作をフックする機能を有している。
また割込み発生機構もデバッグ装置も備えず他の制御マスタによって制御を受ける第4バスマスタ103では、後述するコヒーレンシエラー通知を受けると、以降のバスアクセス実行を中止すると同時に、何らかの手段で、例えば、バスマスタ103上の状態レジスタもしくは状態信号として反映して(コヒーレンシエラー発生状態を反映して)、制御マスタに対してエラー発生を通知する。これを参照する前記制御マスタは、コヒーレンシエラー発生を検出可能な形式で保持する。これにより、バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行が発見される。
[バス制御装置]
バス制御装置400は、ライトバッファ401,402と、4つのマスタIF405と、アクセス調停器406と、スレーブIF407,408と、ライトバッファ制御器421,422から構成されている。
4つのマスタIF405はそれぞれ、各バスマスタ100,101,102,103毎に規定されたバスプロトコルにてこれらバスマスタ100,101,102,103とのインターフェースを担う。また第4バスマスタ103のマスタIF405は、後述するコヒーレンシエラー検出器700のコヒーレンシエラー通知703を、第4バスマスタ103に対してバスプロトコル上で規定されたエラー通知として与える。
前記スレーブIF407,408はそれぞれ、各バススレーブ800,801毎に規定されたバスプロトコルにてバススレーブとのインターフェースを担う。またスレーブIF407,408はそれぞれ、ライトバッファ401,402に記憶されたライトアクセス内容に基づき、バススレーブ800,801へのライトアクセスを実行し、バススレーブ800,801へのライトアクセスが完了した際に、ライトアクセス完了通知415,416を、各ライトバッファ制御器421,422およびダーティー検出器600へ出力する。
また前記ライトバッファ401,402はそれぞれ、各バススレーブ800,801毎に用意されたFIFO方式のバッファである。
前記ライトバッファ制御器421,422はそれぞれ、各ライトバッファ401,402毎に用意され、アクセス調停器406より入力するライトアクセスの内容をライトバッファ401,402にバッファし、ライトアクセス完了通知415,416によりライトバッファ401,402の内容をFIFO方式で、スレーブIF407,408へ出力する。
前記アクセス調停器406は、各マスタIF405より通知されるバススレーブ800,801へのバスアクセス要求を、バスマスタ間のアクセス順序は保証しないアクセスオーダー制御の下で調停し、調停したバスアクセス要求がライトアクセスのときは、その内容をライトバッファ制御器421,422へ出力し、調停したバスアクセス要求がリードアクセスのときは、その内容をスレーブIF407,408へ出力する。またアクセス調停器406は、ライトアクセスを受理した際にその内容をライト情報通知403によりダーティー検出器600に対して通知し、またリードアクセスを受理した際にその内容をリード情報通知404によりコヒーレンシエラー検出器700に対して通知する。
前記ライト情報通知403は、図2に示すように、ライトアドレス情報409、ライト要求マスタ情報410、ライトバッファに対するライトアクセス登録時のライトバッファ登録段数情報411、およびライト対象バススレーブ情報412を含んでいる。
またリード情報通知404は、図3に示すように、リードアドレス情報413およびリード要求マスタ情報414を含んでいる。
[デバッグレジスタ]
デバッグレジスタ500は、図2および図3に示すように、ダーティー検出器600およびコヒーレンシエラー検出器700にて検出するバスアクセスの条件を指定するデバッグレジスタであり、アドレス指定レジスタ501、ライト検出マスタ指定レジスタ502、リード検出マスタ指定レジスタ503、およびダーティー通知マスタ指定レジスタ504から構成されている。
アドレス指定レジスタ501は、検出対象とするアドレス空間を指定するレジスタ、すなわちダーティー検出器600およびコヒーレンシ検出器700に対して与える条件としてバススレーブ801,802のアドレス条件を指定するレジスタである。
またライト検出マスタ指定レジスタ502は、ライトアクセスを検出する際に、ダーティー検出器600に対して与える条件としてライトアクセス検出対象バスマスタを指定するレジスタである。
またリード検出マスタ指定レジスタ503は、リードアクセスを検出する際に、コヒーレンシ検出器700に対して与える条件としてリードアクセス検出バスマスタを指定するレジスタである。
またダーティー通知マスタ指定レジスタ504は、ダーティー検出器600にて検出されたダーティー期間(後述する)検出結果の通知をどのバスマスタに対して出力するかを指定するレジスタである。
[ダーティー検出器]
ダーティー検出器600は、バス制御装置400の動作を常時監視し、デバッグレジスタ500で指定された条件と一致するライトアクセスがライトバッファ401,402に登録されてからバススレーブ(スレーブデバイス)800,801へアクセス完了するまでのバスマスタ・スレーブ間の状態不一致期間(以降、ダーティー期間と称する)を検出し通知する検出器であり、ライト情報通知403とデバッグレジスタ500の内容を比較し、一致する期間中、コヒーレンシエラー検出器700およびバスマスタ側のデバッグ装置200に対してダーティー検出通知601,602を出力する構成を持つ。この詳細を図2を用いて説明する。図2では、第1バスマスタ100と、デバッグ装置200を備える第2バスマスタ101を対象のバスマスタとしている。
ダーティー検出器600は、ライトアドレス比較器603と、ライトマスタ比較器604と、ライトアクセス完了検出部605と、ライトカウンタ部606と、ライトバッファエミュレーション部607と、ダーティー検出部608と、ダーティー通知部609から構成されている。
ライトアドレス比較器603は、ライトアドレス情報409とアドレス指定レジスタ501の内容(バススレーブ801,802のアドレス条件)を比較し、一致すると一致信号を出力する。
またライトマスタ比較器604は、ライト要求マスタ情報410ライト検出マスタ指定レジスタ502の内容(ライトアクセス検出対象バスマスタ)を比較し、一致すると一致信号を出力する。
またライトアクセス完了検出部605は、ライト対象バススレーブ情報412の内容から、スレーブIF407から出力されるライトアクセス完了通知415、またはスレーブIF408から出力されるライトアクセス完了通知416を選択する。
またライトカウンタ部606は、ライトバッファ登録段数情報411の内容を取り込み、ライトアクセス完了検出部605の検出通知毎に減少するダウンカウンタ動作をする。
またライトバッファエミュレーション部607は、ライトカウンタ部606の値が零以外であるか否かによって、ライトバッファ401,402上に該当ライトアクセスが存在することを検出し、検出すると、ライトアクセス存在検出信号を出力する。
またダーティー検出部608は、ライトアドレス比較器603の一致信号、ライトマスタ比較器604の一致信号およびライトバッファエミュレーション部607のライトアクセス存在検出信号が全てオンのとき、ダーティー期間として判断し、その結果を出力する。
またダーティー通知部609は、ダーティー通知マスタ指定レジスタ504にて指定されたバスマスタに対して、ダーティー検出部608の結果を通知する。
[コヒーレンシエラー検出器700]
コヒーレンシエラー検出器700は、バス制御装置400の動作を常時監視し、デバッグレジスタ500で任意指定された条件と一致するリードアクセス要求を検出し、その検出結果とダーティー検出器600より入力したダーティー期間検出通知601を用いてデバッグレジスタ500で任意指定されたメモリに対してダーティー期間中にリードアクセスが行われたことを、リードアクセスを要求したバスマスタに対して通知する検出器であり、リード情報通知404とデバッグレジスタ500の内容が一致し、かつダーティー検出通知601が通知されている場合に、リード情報通知404の内容に基づき、リードアクセス要求を行ったバスマスタに対してコヒーレンシエラー通知701,702および703を出力する構成を持つ。この詳細を図3を用いて説明する。
コヒーレンシエラー検出器700は、リードアドレス比較器704と、リードマスタ比較器705と、コヒーレンシエラー検出部706と、コヒーレンシエラー通知部707,708,709から構成されている。
リードアドレス比較器704は、アクセス調停器406から出力されるリード情報通知404のリードアドレス情報413と、アドレス指定レジスタ501により指定されるアドレス空間(バススレーブ801,802のアドレス条件)を比較し、一致すると一致信号を出力する。
リードマスタ比較器705は、アクセス調停器406より出力されるリード情報通知404のリード要求マスタ情報414と、リード検出マスタ指定レジスタ503により特定されるリードアクセス検出バスマスタを比較し、一致すると一致信号を出力する。
コヒーレンシエラー検出部706は、リードアドレス比較器704から出力される一致信号と、リードマスタ比較器705から出力される一致信号と、ダーティー検出器600から出力されるダーティー検出通知601が、全て真であれば、コヒーレンシエラーと判断し、その結果を検出する。
コヒーレンシエラー通知部707,708,709はそれぞれ、リード情報通知404のリード要求マスタ情報414の内容に基づき、コヒーレンシエラー検出部706の結果として、バスマスタ102のデバック装置200へコヒーレンシエラー通知701を、またバスマスタ103の割込み発生機構300へコヒーレンシエラー通知702を、また第4マスタIF405へコヒーレンシエラー通知703を出力する。
[作用]
次に、上記構成による作用を説明する。
バス制御装置400は、バスマスタ100,101,102および103からのバスアクセス要求を受けアクセス調停器406にて受理する際に、アクセス対象となるバススレーブ801,802の空き状況およびバスマスタ間の優先度から受理するバスアクセス要求を決定する。この動作によって同一バススレーブ800もしくは801に対するアクセス要求がバス制御装置400に対してバスマスタ100,101,102および103から連なって発行された場合、バススレーブ800もしくは801に対するバスアクセス実行順序は必ずしもバス制御装置400へのバスアクセス要求順とは一致しないアクセスオーダー制御をバス制御装置400は行うことになる。
またバス制御装置400は、バススレーブ800もしくは801に対するライトアクセス要求をアクセス調停器406で受理した際に、各バススレーブ800,801毎に用意されているライトバッファ401もしくは402に登録すると同時にバスマスタ100,101,102および103に対してアクセス完了を通知する突き放し制御を行う。ライトバッファ401および402はFIFO方式になっており、登録されている最古のライトアクセス要求から古い順にスレーブIF407もしくは408に対して発行され、バススレーブ800もしくは801へのライトアクセスが実行される。
ダーティー検出器600は、バス制御装置400から出力されるライトアドレス情報409、ライト要求マスタ情報410、ライトバッファ登録段数情報411およびライト対象バススレーブ情報412からなるライト情報通知403と、各スレーブIF407および408から出力されるライトアクセス完了通知415および416を受けて、デバッグレジスタ500にて指定された条件に該当するライトアクセス要求がバス制御装置400内のライトバッファ401もしくは402上に存在するダーティー期間を検出する。その詳細動作を次に記載する。
ライトアドレス比較器603にて得られるアドレス指定レジスタ501のバススレーブ801,802のアドレス条件とライトアドレス情報409の一致検出結果と、ライトマスタ比較器603にて得られるライト検出マスタ指定レジスタ502のライトアクセス検出バスマスタとライト要求マスタ情報410の一致検出結果と、ライトバッファ登録段数情報411にて通知されたライトバッファ401もしくは402の登録段数をライトカウンタ606に記憶し、ライト対象バススレーブ情報412の内容に従ってライトアクセス完了検出部605にてライトアクセス完了通知415もしくは416を選択したライトアクセス完了通知を受ける度にライトカウンタ606の値をデクリメントしながらライトバッファエミュレーション部607においてライトカウンタ606の値が零であるか否かによってライトバッファ401もしくは402上にデバッグレジスタ500で指定された条件に該当するライトアクセス要求が存在することを検出した結果の3条件からダーティー検出部608においてダーティー期間を検出する。このダーティー検出部608によるダーティー検出結果をコヒーレンシエラー検出器700においてコヒーレンシエラー検出条件として利用されるためにダーティー期間通知601として出力する他、ダーティー通知マスタ指定レジスタ504の内容に従ってダーティー通知部609を通じてデバッグ装置200を備えるバスマスタ101へダーティー期間通知602としても出力される。ライト検出マスタ指定レジスタ502によるライト検出マスタの絞り込みや、ダーティー通知マスタ指定レジスタ504によるダーティー通知マスタの絞り込みがより詳細な条件指定を可能とすることからデバッグ作業効率向上効果を得ることができる。
バスマスタ101内にあるデバッグ装置200は、検出したデバッグイベントに起因してバスマスタ101の実行動作を停止させ、ダーティー期間通知602を受けると、この条件をバスマスタ101動作の任意条件に加えて(論理積条件)、特定のバススレーブ801もしくは802に対してダーティー期間中にデバッグイベントを検出し、デバッグイベントが発生したことを、出力するバスマスタの動作トレース情報に加える(トレース情報に履歴を残す)。このように、デバッグイベントを検出することにより、またトレース情報として履歴を残すことにより、バスマスタ間の同期制御違反を発見することが容易に可能となり、デバッグイベントをトリガとした各種デバッグ作業を効率的に行うことが可能な本発明のデバッグ機構の一実施形態が実現される。
コヒーレンシエラー検出器700は、バス制御装置400から出力されるリードアドレス情報413、リード要求マスタ情報414からなるリード情報通知404と、ダーティー検出器600から出力されるダーティー期間通知601を受けて、デバッグレジスタ500にて指定された条件に該当するライトアクセスがバス制御装置400内のライトバッファ401もしくは402上に存在するダーティー期間中に同条件を満たすリードアクセス要求が発生したことを検出する。その詳細動作を次に記載する。
リードアドレス比較器704にて得られるリードアドレス情報413とアドレス指定レジスタ501のアドレス条件の一致検出結果と、リードマスタ比較器705にて得られるリード要求マスタ情報414とリード検出マスタ指定レジスタ503のリード検出対象バスマスタの一致検出結果と、ダーティー期間通知601の3条件からコヒーレンシエラー検出部706においてコヒーレンシエラーを検出する。このコヒーレンシエラー検出部706によるコヒーレンシエラー検出結果をリード要求マスタ情報414に従ってコヒーレンシエラー通知部707,708および709を通じてコヒーレンシエラーの検出要因となったリードアクセスを行ったバスマスタに対して通知する。リード検出マスタ指定レジスタ503によるリード検出マスタの絞り込みがより詳細な条件指定を可能とすることからデバッグ作業効率向上効果を得ることができる。
バスマスタ101内にあるデバッグ装置200は、コヒーレンシエラー通知701を受けると、デバッグイベントを発生させてバスマスタ101の動作を停止させ、デバッグイベントが発生したことを、出力するバスマスタ101の動作トレース情報に加える(トレース情報に履歴を残す)。このように、デバッグイベントを発生させ、バスマスタ101の動作を停止させることにより、またトレース情報として履歴を残すことにより、ダーティー期間中にバスマスタ101が他のバスマスタからのライトアクセス完了を待つ同期制御を怠って誤ったリードアクセスを実行したこと(バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行)を発見することが容易に可能となり、デバッグイベントをトリガとした各種デバッグ作業を効率的に行うことが可能な本発明のデバッグ機構の一実施形態が実現される。
またバスマスタ102内にある割込み発生機構300は、コヒーレンシエラー通知702を受けてバスマスタ102に対して割込みを発生させる。よって、特定のバススレーブ801もしくは802に対してダーティー期間中にバスマスタ102が他のバスマスタからのライトアクセス完了を待つ同期制御を怠って誤ったリードアクセスを実行したこと(バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行)を割込み発生にて検出し、その割込み発生をトリガとしたデバッグ作業を行うことが可能な本発明のデバッグ機構の一実施形態が実現される。
またデバッグ装置200も割込み発生機構300も備えず、かつ他のバスマスタからの制御を受けて動作するバスマスタ103は、マスタIF405との間のバスプロトコルにおいてエラー通知が含まれている。このようなバスマスタ103に対してコヒーレンシエラー703を通知する場合は、コヒーレンシエラー通知701や702のようにバスマスタへの直接通知が不可能である。よって、このような場合にはコヒーレンシエラー通知703をバスマスタIF405へ通知し、バスマスタIF405にてバスプロトコル上のエラー通知に変換しバスマスタ103へエラー通知を行う。バスマスタ103はこのエラー通知を受けて以降のバスアクセス実行を中止すると同時に制御マスタに対して何らかの手段でエラー発生を通知する。これらを用いることにより、特定のバススレーブ801もしくは802に対してダーティー期間中にバスマスタ103が他のバスマスタのライトアクセス完了を待つ同期制御を怠って誤ったリードアクセスを実行したこと(バスマスタ間の同期制御違反に起因して発生した誤ったバスアクセス実行)をバスマスタ103を制御する制御マスタ側にて間接的に検出し、そのエラー検出をトリガとしたデバッグ作業を行うことが可能な本発明のデバッグ機構の一実施形態が実現される。
以上のように、本実施の形態によれば、バス制御装置400を監視し、任意指定された条件に該当するライトアクセスがライトバッファ401,402上に存在する期間中に、同条件のリードアクセスが発生したことを検出可能にすることにより、従来のソフトウェア開発環境では発見することすら容易ではなかったシステムレベルの不具合動作の検出が容易になることによって、システムLSIにおけるソフトウェア開発効率を向上させることができ、このようなデバッグ機構の実現によって、システムLSIにおけるソフトウェア開発に必要とされる時間を短縮できる。
本発明にかかるデバッグ機構は、システムLSIにおけるソフトウェア開発効率を向上させることができるという効果を有し、複数のバスマスタを備えたシステムの動作をデバッグする際に用いられる解析技術として有用である。
本発明の実施の形態におけるデバッグ機構の全体構成図である。 同デバッグ機構のダーティー検出器の詳細構成図である。 同デバッグ機構のコヒーレンシエラー検出器の詳細構成図である。
符号の説明
100,101,102,103 バスマスタ
200 デバッグ装置
300 割込み発生機構
400 バス制御装置
401,402 ライトバッファ
403 ライト情報通知
404 リード情報通知
405 マスタIF
406 アクセス調停器
407,408 スレーブIF
409 ライトアドレス情報
410 ライト要求マスタ情報
411 ライトバッファ登録段数情報
412 ライト対象バススレーブ情報
413 リードアドレス情報
414 リード要求マスタ情報
415,416 ライトアクセス完了通知
421,422 ライトバッファ制御器
500 デバッグレジスタ
501 アドレス指定レジスタ
502 ライト検出マスタ指定レジスタ
503 リード検出マスタ指定レジスタ
504 ダーティー通知マスタ指定レジスタ
600 ダーティー検出器
601,602 ダーティー期間通知
603 ライトアドレス比較器
604 ライトマスタ比較器
605 ライトアクセス完了検出部
606 ライトカウンタ部
607 ライトバッファエミュレーション部
608 ダーティー検出部
609 ダーティー通知部
700 コヒーレンシエラー検出器
701,702,703 コヒーレンシエラー通知
704 リードアドレス比較器
705 リードマスタ比較器
706 コヒーレンシエラー検出部
707,708,709 コヒーレンシエラー通知部
800,801 バススレーブ

Claims (8)

  1. 共通のバススレーブを複数のバスマスタが共有するシステムにおけるデバッグ機構であって、
    前記複数のバスマスタをサポートし、各バスマスタから要求されたライトアクセスを受理するとライトバッファにその内容を登録し、前記バススレーブへのアクセス完了を待たずに各バスマスタに対してアクセス完了を通知する突き放し制御、および複数のバスマスタ間のバスアクセス実行順序を保証しないアクセスオーダー制御を行うバス制御装置と、
    デバッグ対象とするバスアクセスの条件を指定する指定するデバッグレジスタと、
    前記バス制御装置の動作を常時監視し、前記デバッグレジスタで指定された条件と一致するライトアクセスが前記ライトバッファに登録されてから前記バススレーブへアクセス完了するまでのバスマスタ・スレーブ間の状態不一致期間を検出し通知するダーティー検出器と、
    前記ダーティー検出器より受ける状態不一致期間検出通知をデバッグイベント検出における論理積条件として扱うことが可能なバスマスタ側に備わったデバッグ装置
    を設け、
    前記デバッグ装置を備えたバスマスタにおいて、前記状態不一致期間中に、前記デバッグ装置にて任意指定された動作条件が成立した場合に発生するデバッグイベントを用いてバスマスタの動作を停止させること
    を特徴とするデバッグ機構。
  2. 前記デバッグ装置を備えたバスマスタにおいて、前記状態不一致期間中に、任意指定されたバスマスタ動作条件が成立してデバッグイベントが発生したことを、前記デバッグ装置が出力するバスマスタの動作トレース情報に加えること
    を特徴とする請求項1に記載のデバッグ機構。
  3. 共通のバススレーブを複数のバスマスタが共有するシステムにおけるデバッグ機構であって、
    前記複数のバスマスタをサポートし、各バスマスタから要求されたライトアクセスを受理するとライトバッファにその内容を登録し、前記バススレーブへのアクセス完了を待たずに各バスマスタに対してアクセス完了を通知する突き放し制御、および複数のバスマスタ間のバスアクセス実行順序を保証しないアクセスオーダー制御を行うバス制御装置と、
    デバッグ対象とするバスアクセスの条件を指定する指定するデバッグレジスタと、
    前記バス制御装置の動作を常時監視し、前記デバッグレジスタで指定された条件と一致するライトアクセスが前記ライトバッファに登録されてから前記スレーブデバイスへアクセス完了するまでのバスマスタ・スレーブ間の状態不一致期間を検出し通知するダーティー検出器と、
    前記バス制御装置の動作を常時監視し、前記デバッグレジスタで任意指定された条件と一致するリードアクセス要求を検出し、その検出結果と前記ダーティー検出器より得た状態不一致期間検出通知を用いて前記デバッグレジスタで任意指定されたバススレーブに対して状態不一致期間中にリードアクセスが行われたことを、リードアクセスを要求したバスマスタに対して通知するコヒーレンシエラー検出器と、
    前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けてデバッグイベントを発生させることが可能なバスマスタ側に備わったデバッグ装置
    を設け、
    前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けて発生したデバッグイベントを用いて、前記デバッグ装置が前記バスマスタの動作を停止させること
    を特徴とするデバッグ機構。
  4. 前記コヒーレンシエラー検出器よりコヒーレンシエラー通知を受けてデバッグイベントが発生したことを、前記デバッグ装置が出力するバスマスタの動作トレース情報に加えること
    を特徴とする請求項3に記載のデバッグ機構。
  5. 前記バスマスタを、割込み発生機構を備えたプロセッサ型のバスマスタにより構成し、
    前記コヒーレンシエラー検出器のコヒーレンシエラー通知を、前記バスマスタに対して割込み要求として与えることにより、コヒーレンシエラー検出時にバスマスタ上のソフトウェア動作をフックすること
    を特徴とする請求項3に記載のデバッグ機構。
  6. 前記バスマスタを、デバッグ装置も割込み発生機構も備えないバスマスタにより構成し、
    前記バスマスタを制御する制御マスタを設け、
    前記コヒーレンシエラー検出器のコヒーレンシエラー通知を、前記バスマスタに対してバスプロトコル上で規定されたエラー通知手段として与えることにより、前記バスマスタ上の状態レジスタもしくは状態信号へコヒーレンシエラー発生状態を反映し、これを参照する前記制御マスタにてコヒーレンシエラー発生を認識すること
    を特徴とする請求項3に記載のデバッグ機構。
  7. 請求項3に記載のデバッグ機構のデバッグレジスタであって、
    前記ダーティー検出器および前記コヒーレンシ検出器に対して与える条件として前記バススレーブのアドレス条件を指定するレジスタを有し、前記ダーティー検出器に対して与える条件としてライトアクセス検出対象バスマスタを指定するレジスタを有し、前記コヒーレンシ検出器に対して与える条件としてリードアクセス検出バスマスタを指定するレジスタを有すること
    を特徴とするデバッグレジスタ。
  8. 前記ダーティー検出器による状態不一致期間検出結果の通知をどのバスマスタに対して出力するかを指定するレジスタを有すること
    を特徴とする請求項7に記載のデバッグレジスタ。
JP2005127234A 2005-04-26 2005-04-26 デバッグ機構およびデバッグレジスタ Pending JP2006309276A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005127234A JP2006309276A (ja) 2005-04-26 2005-04-26 デバッグ機構およびデバッグレジスタ
US11/410,160 US7472310B2 (en) 2005-04-26 2006-04-25 Debugging mechanism and debugging register

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005127234A JP2006309276A (ja) 2005-04-26 2005-04-26 デバッグ機構およびデバッグレジスタ

Publications (1)

Publication Number Publication Date
JP2006309276A true JP2006309276A (ja) 2006-11-09

Family

ID=37395353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005127234A Pending JP2006309276A (ja) 2005-04-26 2005-04-26 デバッグ機構およびデバッグレジスタ

Country Status (2)

Country Link
US (1) US7472310B2 (ja)
JP (1) JP2006309276A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293212A (ja) * 2007-05-23 2008-12-04 Hitachi Ltd 情報処理装置のトランザクション管理方法及び情報処理装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059005A (ja) * 2007-08-29 2009-03-19 Panasonic Corp デバッグシステム、デバッグ装置および方法
US8688910B2 (en) * 2009-02-06 2014-04-01 Freescale Semiconductor, Inc. Debug control for snoop operations in a multiprocessor system and method thereof
US8200908B2 (en) * 2009-02-06 2012-06-12 Freescale Semiconductor, Inc. Method for debugger initiated coherency transactions using a shared coherency manager
KR101913261B1 (ko) * 2011-10-07 2018-12-28 엘지전자 주식회사 무선통신시스템에서 신호 송수신 방법
JP6726136B2 (ja) * 2017-06-22 2020-07-22 ルネサスエレクトロニクス株式会社 データアクセス装置及びアクセスエラーの通知方法
US10445216B2 (en) 2017-08-25 2019-10-15 Microsoft Technology Licensing, Llc Debugging program code at instruction level through emulation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3027439B2 (ja) 1991-06-03 2000-04-04 富士通株式会社 タイムスプリットバスの制御回路
JP3146075B2 (ja) * 1992-10-14 2001-03-12 三菱電機株式会社 多重化メモリ装置
TW448363B (en) * 1997-02-17 2001-08-01 Ssd Co Ltd High speed processor system with bus arbitration
US6147967A (en) * 1997-05-09 2000-11-14 I/O Control Corporation Fault isolation and recovery in a distributed control network
US6061600A (en) * 1997-05-09 2000-05-09 I/O Control Corporation Backup control mechanism in a distributed control network
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293212A (ja) * 2007-05-23 2008-12-04 Hitachi Ltd 情報処理装置のトランザクション管理方法及び情報処理装置

Also Published As

Publication number Publication date
US20060253737A1 (en) 2006-11-09
US7472310B2 (en) 2008-12-30

Similar Documents

Publication Publication Date Title
US9052887B2 (en) Fault tolerance of data processing steps operating in either a parallel operation mode or a non-synchronous redundant operation mode
US6327668B1 (en) Determinism in a multiprocessor computer system and monitor and processor therefor
US8700835B2 (en) Computer system and abnormality detection circuit
JP2006309276A (ja) デバッグ機構およびデバッグレジスタ
JP2000040076A (ja) 多重コンピュ―タ・プロセスの制御
US20090177866A1 (en) System and method for functionally redundant computing system having a configurable delay between logically synchronized processors
US5297276A (en) Method and apparatus for maintaining deterministic behavior in a first synchronous system which responds to inputs from nonsynchronous second system
US7685473B2 (en) Computer system, method of detecting a stall in a computer system, and signal-bearing medium embodying a program causing a computer system to perform a method of detecting a stall in a computer system
US10102166B2 (en) Multiprocessor system
JP2007058716A (ja) データ転送バスシステム
JP2015530679A (ja) 高効率アトミック演算を使用した方法および装置
WO2011137833A1 (zh) 一种网络处理器和网络处理器所存程序的诊断方法
JP5054558B2 (ja) マルチコアlsi
US6898732B1 (en) Auto quiesce
US20080259700A1 (en) Bus control apparatus and bus control method
JP2009003711A (ja) マイクロコンピュータの停止検出装置
EP2019359B1 (en) Information processing apparatus including transfer device for transferring requests
JP2009098907A (ja) デバッグ装置及びデバッグ方法
JP2005122375A (ja) 動作試験装置および動作試験方法
JPH06324957A (ja) バス監視装置
JP2550708B2 (ja) デバッグ方式
JP4892406B2 (ja) 情報処理装置のトランザクション管理方法及び情報処理装置
JP2008152665A (ja) 半導体集積回路の動作解析方法
WO2018179753A1 (ja) マイクロコンピュータ
JP5416257B2 (ja) マルチコアlsi