JP4847734B2 - 半導体集積回路装置、それのデバッグシステム及びデバッグ方法。 - Google Patents

半導体集積回路装置、それのデバッグシステム及びデバッグ方法。 Download PDF

Info

Publication number
JP4847734B2
JP4847734B2 JP2005315826A JP2005315826A JP4847734B2 JP 4847734 B2 JP4847734 B2 JP 4847734B2 JP 2005315826 A JP2005315826 A JP 2005315826A JP 2005315826 A JP2005315826 A JP 2005315826A JP 4847734 B2 JP4847734 B2 JP 4847734B2
Authority
JP
Japan
Prior art keywords
debug
control unit
debugging
break
debug 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.)
Expired - Fee Related
Application number
JP2005315826A
Other languages
English (en)
Other versions
JP2007122543A (ja
Inventor
繁幸 上野
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2005315826A priority Critical patent/JP4847734B2/ja
Priority to US11/586,505 priority patent/US7636870B2/en
Publication of JP2007122543A publication Critical patent/JP2007122543A/ja
Application granted granted Critical
Publication of JP4847734B2 publication Critical patent/JP4847734B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/3632Software debugging of specific synchronisation aspects

Landscapes

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

Description

本発明は、半導体集積回路装置、それのデバッグシステム及びデバッグ方法に関し、特に、マイクロプロセッサを有する半導体集積回路装置、それをデバッグするデバッグシステム及びデバッグ方法に関する。
近年、半導体集積回路装置(LSI)では、搭載されるマイクロプロセッサの高速化・高性能化が進んでいる。そして、マイクロプロセッサ単体での性能の限界を超えて、さらなる性能向上のために複数のプロセッサを搭載したマルチプロセッサ構成の半導体集積回路装置が利用されている。
図12は、一般的なマルチプロセッサ構成のLSIの構成例を示している。このLSI800は、図に示されるように、複数のサブシステム810a〜810cとメモリ820を有している。サブシステム810a〜810cのそれぞれには、CPUコア811a〜811cとDMA(Direct Memory Access)等の周辺デバイス813a〜813cが設けられている。CPUコア811a〜811c、周辺デバイス813a〜813c及びメモリ820はシステムバス830に共通に接続されている。システムバス830は、システムクロックを基準にして高速にデータ転送を行う高速バスである。
CPUコア811a〜811cと周辺デバイス813a〜813cは、メモリ820のデータを共有しながら、それぞれ並列に独立して処理を実行し、処理の高速化を図っている。例えば、メモリ820には、各サブシステムで実行するプログラムが格納されており、CPUコア811a〜811cは、メモリ820からプログラムを取得して実行したり、その実行結果のデータをメモリ820へ書き込んだりする。周辺デバイス813a〜813cは、CPUコア811a〜811cの指示にしたがってメモリ820にアクセスしたり、サブシステム810a〜810cの外部とメモリ820との間でデータ転送を行なったりする。
一方、このようなマルチプロセッサ構成のLSIの動作を確認するために、デバッグが行われている。このデバッグには、ユーザが作成したプログラムを実行しプログラムのバグを除去するために行なうソフトウェア・デバッグや、検査用のプログラムを実行しプロセッサの動作不良を除去するために行なうハードウェア・デバッグがある。本明細書において、デバッグには、このソフトウェア・デバッグとハードウェア・デバッグを含むものとする。
図13は、マルチプロセッサ構成のLSIをデバッグするための従来のデバッグシステムの構成例を示している。この従来のデバッグシステムは、LSI900とデバッグPC990を有している。LSI900とデバッグPC990は、デバッグI/F(インタフェース)940を介して接続されている。
デバッグPC990は、デバッグ制御用のプログラムからなるデバッガ991を有しており、ユーザがデバッガ991を操作することによりLSI900のデバッグが行われる。
LSI900は、マルチプロセッサ構成のLSIであり、複数のサブシステム910a〜910cとメモリ920を有している。サブシステム910a〜910cのそれぞれには、CPUコア911a〜911cとDCU(Debug Control Unit:デバッグ制御ユニット)912a〜912c、周辺デバイス913a〜913cが設けられている。
尚、この図は、デバッグ時に使用されるバスの接続関係を示しており、通常動作時に使用される接続関係は省略している。すなわち、図示を省略しているが、CPUコア911a〜911c、周辺デバイス913a〜913c及びメモリ920は、図12と同様、システムバスに共通に接続されている。
図13に示されるように、LSI900には、デバッグ時に使用されるバスとして、デバッグ用同期バス931とデバッグ用外部バス932が設けられている。デバッグ用同期バス931には、DCU912a〜912cのそれぞれが共通に接続されている。デバッグ用外部バス932には、DCU912a〜912cのそれぞれが共通に接続されるとともに、デバッグI/F940にも接続されている。デバッグ用同期バス931は、システムバスと同様に高速バスである。デバッグ用外部バス932は、デバッグI/F940の速度に合わせて低速バスである。
このようなデバッグシステムは、複数のデバッグモードによるデバッグが可能である。一般に、デバッグモードとして、ブレークモードとオンザフライトレースモードが知られている。ブレークモードは、CPUによるプログラムの実行が所定のブレークポイント(ブレーク条件)に達した場合に、プログラムの実行を停止し、デバッガの操作によりCPUの内部状態等の観測を行うモードである。オンザフライトレースモードは、CPUによるプログラムの実行が所定のブレークポイント(ブレーク条件)に達した場合に、プログラムの実行を一時的に停止し、所定のトレースポイントのトレースデータを採取した後、すぐに自動的にプログラムの実行を再開するモードである。
図14は、ブレークモードにおける従来のデバッグシステムの動作(デバッグ方法)を示している。例えば、デバッグPC990のデバッガ991にて、ユーザがブレークモードを選択した後、以下の処理が行われる。
ブレークモードの場合、まず、デバッグPC990は、デバッグ用外部バス932を介して、ユーザ所望のDCU、例えば、DCU912aに対しブレーク条件の設定を要求する(S801)。そうすると、DCU912aは、CPUコア911aにブレーク条件を設定する。
次いで、デバッグPC990は、デバッグ用外部バス932を介して、全てのDCU、すなわち、DCU912a〜912cに対しプログラムの実行開始を要求する(S802)。そうすると、DCU912a〜912cのそれぞれは、CPUコア911a〜911cにプログラムの実行を開始させる。
次いで、DCU912aは、プログラムの実行が設定したブレーク条件に一致したことを検出すると、CPUコア911aにプログラムの実行を停止させるとともに、デバッグ用同期バス931を介して、他の全てのDCU、すなわち、DCU912b,912cに対しブレークの検出を通知する(S803)。そうすると、DCU912b,912cのそれぞれは、CPUコア911b,911cにプログラムの実行を停止させる。
次いで、デバッグPC990は、デバッグ用外部バス932を介して、DCU912a〜DCU912cから、ユーザ所望のCPUコア911a〜911cの内部情報を取得する(S804)。そして、内部情報の確認が終わると、デバッグPC990は、デバッグ用外部バス932を介して、全てのDCU、すなわち、DCU912a〜912cに対しプログラムの実行の再開を要求する(S805)。そうすると、DCU912a〜912cのそれぞれは、CPUコア911a〜911cにプログラムの実行を再開させる。
図15は、オンザフライトレースモードにおける従来のデバッグシステムの動作(デバッグ方法)を示している。例えば、デバッグPC990のデバッガ991にて、ユーザがオンザフライトレースモードを選択した後、以下の処理が行われる。
オンザフライトレースモードの場合、まず、デバッグPC990は、デバッグ用外部バス932を介して、ユーザ所望のDCU、例えば、DCU912aに対しブレーク条件の設定を要求する(S901)。そうすると、DCU912aは、CPUコア911aにブレーク条件を設定する。
次いで、デバッグPC990は、デバッグ用外部バス932を介して、所望のDCU、例えば、DCU912a〜912cに対しトレースポイントの設定を要求する(S902)。そうすると、DCU912a〜912cのそれぞれは、CPUコア911a〜911cにトレースポイントを設定する。
次いで、デバッグPC990は、デバッグ用外部バス932を介して、全てのDCU、すなわち、DCU912a〜912cに対しプログラムの実行開始を要求する(S903)。そうすると、DCU912a〜912cのそれぞれは、CPUコア911a〜911cにプログラムの実行を開始させる。
次いで、DCU912aは、プログラムの実行が設定したブレーク条件に一致したことを検出すると、CPUコア911aにプログラムの実行を停止させるとともに、デバッグ用同期バス931を介して、他の全てのDCU、すなわち、DCU912b,DCU912cに対しブレークの検出を通知する(S904)。そうすると、DCU912b,912cのそれぞれは、CPUコア913b,913cにプログラムの実行を停止させる。そして、DCU912a〜912cのそれぞれは、設定されたトレースポイントのトレースデータをCPUコア911a〜911cから採取してDCU912a〜912cの内部に保持した後、CPUコア911a〜911cにプログラムの実行を再開させる(S905)。
その後、DCU912aによるブレークの検出ごとに、ブレーク通知〜トレースデータ保持を繰り返す(S904',S905')。そして、デバッグPC990は、デバッグ用外部バス932を介して、DCU912a〜913cに保持されているトレースデータを収集する(S906)。
しかしながら、従来のデバッグシステムでは、ブレークモードの場合、デバッグ用同期バスにより、各CPUコアのプログラム実行を停止させているが、各サブシステムの周辺デバイスを停止させていない。例えば、周辺デバイスが、CPUコアと並列で動作している場合、CPUコアのみが停止しても、周辺デバイスが動き続けると、CPUコアやメモリ等の内部状態が更新されてしまい、正確な内部状態を確認することが困難である。また、ブレーク発生時、常に、デバッグ用同期バスに接続されている全てのCPUコアを停止してしまうため、必要なCPUコアのみを停止することができなかった。
さらに、オンザフライトレースモードの場合、デバッグ用同期バスが高速バスであるため、各CPUコアのプログラム実行をすぐに停止し、トレースデータをDCU内部に保持することは可能であるが、デバッグ用外部バスが低速バスであるため、デバッグPCがトレースデータをDCUから収集するまでに時間がかかってしまう。トレースデータを格納するためにDCUに搭載するメモリは、一般にメモリ量が小さく、トレースデータを1つ程度しか保持できず、すぐに新しいトレースデータに更新されてしまうため、観測したいトレースデータを収集するのが困難である。
尚、マルチプロセッサ構成のLSIをデバッグする従来技術として特許文献1及び2が知られている。
特開2004−342001号公報 特開2003−15906号公報
このように、従来のデバッグシステムでは、ブレーク発生時、デバッグ用同期バスによりCPUコアのみ停止しているため、サブシステム内の周辺デバイス等により内部状態が変化してしまうことがあった。また、ブレーク発生時、常に、デバッグ用同期バスに接続されている全てのCPUコアを停止してしまうため、必要なCPUコアのみを停止させることができなかった。また、DCUを共通に接続するデバッグ用同期バスは高速バスであるが、デバッグ用外部バスは外部I/Fと同じ低速のバスであるため、必要なトレースデータを収集できない場合があった。
したがって、従来のデバッグシステムでは、正確にデバッグを行うことが困難であり、問題の見落としや原因究明までに時間がかかりデバッグ効率が悪いという問題があった。
本発明にかかる半導体集積回路装置は、プロセッサを含むサブシステムを複数有する半導体集積回路装置であって、前記複数のサブシステムのいずれかのプロセッサによるプログラムの実行が所定のブレーク条件と一致したことを検出するブレーク検出部と、前記ブレーク検出部の検出に応じて、前記複数のサブシステムのうち選択されたサブシステムの動作を停止させる停止制御部と、を有するものである。
この半導体集積回路装置によれば、所定のプロセッサによるプログラムの実行がブレーク条件に一致した場合に、複数のサブシステム(プロセッサや周辺デバイスなど)のいくつかを同期させて停止できるようになる。これにより、デバッグしたい情報に応じてサブシステムを同期させることができるため、デバッグしたい情報を精度よく収集でき、デバッグ効率を向上することができる。
本発明にかかる半導体集積回路装置は、プロセッサと、前記プロセッサによるプログラムの実行が所定のブレーク条件と一致したことを検出するブレーク検出部と、前記ブレーク検出部の検出に応じて、前記プロセッサから所定のトレースポイントのトレースデータを複数収集するトレース収集部と、前記収集した複数のトレースデータを格納するトレース格納部と、前記格納した複数のトレースデータを一度に出力するトレース出力部と、を有するものである。
この半導体集積回路装置によれば、半導体集積回路装置の内部で、トレースポイントのトレースデータを複数格納しておき、複数のトレースデータをまとめて出力するようになる。このため、半導体集積回路装置の内部でトレースデータが上書きされてしまうことがなくなるため、デバッグしたい情報を精度よく収集でき、デバッグ効率を向上することができる。
本発明にかかるデバッグシステムは、複数のプロセッサを有する半導体集積回路装置をデバッグするデバッグシステムであって、前記半導体集積回路装置は、前記複数のプロセッサによるプログラムの実行が所定のブレーク条件と一致したことを検出するブレーク検出部と、前記ブレーク検出部の検出に応じて、前記複数のプロセッサのうち選択されたプロセッサのプログラムの実行を停止させる停止制御部と、を有するものである。
このデバッグシステムによれば、所定のプロセッサによるプログラムの実行がブレーク条件に一致した場合に、複数のサブシステム(プロセッサや周辺デバイスなど)のいくつかを同期させて停止できるようになる。これにより、デバッグしたい情報に応じてサブシステムを同期させることができるため、デバッグしたい情報を精度よく収集でき、デバッグ効率を向上することができる。
本発明にかかるデバッグ方法は、プロセッサ及びブレーク検出部を含む複数のサブシステムと、前記複数のサブシステムの動作を制御する制御部とを有する半導体集積回路装置をデバッグするデバッグ方法であって、前記ブレーク検出部は、前記複数のプロセッサによるプログラムの実行が所定のブレーク条件と一致したことを検出し、前記制御部は、前記ブレーク条件の検出に応じて、前記複数のプロセッサのうち選択されたプロセッサのプログラムの実行を停止させるものである。
このデバッグ方法によれば、所定のプロセッサによるプログラムの実行がブレーク条件に一致した場合に、複数のサブシステム(プロセッサや周辺デバイスなど)のいくつかを同期させて停止できるようになる。これにより、デバッグしたい情報に応じてサブシステムを同期させることができるため、デバッグしたい情報を精度よく収集でき、デバッグ効率を向上することができる。
本発明によれば、デバッグしたい情報を精度よく収集し、デバッグ効率を向上できるデバッグシステム、デバッグ方法及び半導体集積回路装置を提供することができる。
発明の実施の形態1.
まず、本発明の実施の形態1にかかるデバッグシステムについて説明する。本実施形態にかかるデバッグシステムは、LSIに設けたシステムデバッグ制御部により、ブレーク発生時の同期を制御するとともに、各DCUの複数のトレースデータをLSI内に格納することを特徴としている。
ここで、図1を用いて、本実施形態にかかるデバッグシステムの構成について説明する。このデバッグシステムは、マルチプロセッサ構成のLSIをデバッグするシステムであり、LSI100とデバッグPC190を有している。LSI100とデバッグPC190は、デバッグI/F140を介して接続されている。デバッグI/F140は、デバッグ専用のインタフェースであり、例えば、JTAGなどの低速なシリアル・インタフェースである。
デバッグPC190は、例えば、パーソナルコンピュータ等のコンピュータにより構成されている。デバッグPC190は、デバッグ制御用のプログラムからなるデバッガ191を有しており、ユーザがデバッガ191を操作することによりLSI100のデバッグが行われる。デバッグPC190には、デバッガ用のプログラムがメモリ等に格納されており、このプログラムをCPUが実行することにより、デバッガ191の機能が実現されている。例えば、デバッガ191は、マウス等のユーザインタフェースを介したユーザの操作に応じて、ブレーク条件やトレースポイントの設定、実行開始などのデバッグ用のコマンドをLSI100へ出力する。
LSI100は、マルチプロセッサ構成のLSIであり、複数のサブシステム110a〜110c、メモリ120及びシステムデバッグ制御部150を有している。サブシステム110(サブシステム110a〜110cのいずれか)は、単体で特定の機能を有し、それぞれ独立して並列に動作することができる。メモリ120は、各サブシステム110の動作に必要なプログラムやデータを格納するメインメモリであり、複数のサブシステム110でデータ等を共有する共有メモリである。システムデバッグ制御部150は、全てのサブシステム110に対してデバッグ制御を行う。システムデバッグ制御部150は、デバッグ制御として、ブレーク発生時の同期などのブレーク制御や、各サブシステムからのトレースデータの収集などのトレース制御などを行う。
サブシステム110a〜110cのそれぞれには、CPUコア111a〜111cとDCU(Debug Control Unit:デバッグ制御ユニット)112a〜112c、周辺デバイス113a〜113cが設けられている。CPUコア111(CPUコア111a〜111cのいずれか)は、プログラムをメモリ120から取得し、取得したプログラムを実行するプログラム実行部である。DCU112(DCU112a〜112cのいずれか)は、同じサブシステム内のCPUコア111のデバッグ制御を行うCPUデバッグ制御部である。DCU112は、デバッグ制御として、ブレーク条件の設定やブレーク検出などのブレーク制御、トレースポイントの設定やトレースデータの採取などのトレース制御を行う。周辺デバイス113(周辺デバイス113a〜113cのいずれか)は、DMAやキャッシュメモリ等であり、CPUコア111の制御のもとでサブシステム110の種々の動作を補助する補助機能部である。周辺デバイス113は、CPUコア111と並列に独立して動作し、メインメモリ120にアクセスしたり、サブシステム110やCPUコア111の内部情報等を更新する。
尚、この図は、デバッグ時に使用されるバスの接続関係を示しており、通常動作時に使用される接続関係は省略している。すなわち、図示を省略しているが、CPUコア111a〜111c、周辺デバイス113a〜113c及びメモリ120は、図12と同様、システムバスに共通に接続されている。
図1に示されるように、LSI100には、デバッグ時に使用されるバスとして、デバッグ用同期バス131、デバッグ用外部バス132及びデバッグ用内部バス133が設けられている。
デバッグ用同期バス131には、DCU112a〜112c、周辺デバイス113a〜113c、システムデバッグ制御部150のそれぞれが共通に接続されている。デバッグ用同期バス131は、各サブシステム110におけるブレーク発生時の停止や、停止後の再開の同期をとるための同期信号を転送するためのバスである。デバッグ用同期バス131は、システムバスと同様に高速バスである。
デバッグ用外部バス132には、DCU112a〜112c、システムデバッグ制御部150のそれぞれが共通に接続されるとともに、デバッグI/F140にも接続されている。デバッグ用外部バス132は、デバッグI/F140を介して、デバッグPC190と、DCU112又はシステムデバッグ制御部150との間で、デバッグ制御用のコマンドやトレースデータ等を転送するためのバスである。デバッグ用外部バス132は、デバッグI/F140の速度に合わせて低速バスである。
デバッグ用内部バス133には、DCU112a〜112c、システムデバッグ制御部150のそれぞれが共通に接続されている。デバッグ用内部バス133は、各DCU112のトレースデータをシステムデバッグ制御部150に転送するためのバスである。デバッグ用内部バス133は、DCU112からトレースデータをできるだけ早く収集するため、例えば、システムバスと同様に高速バスである。
次に、図2を用いて、本実施形態にかかるサブシステムの構成について説明する。サブシステム110は、上記のとおり、CPUコア111、DCU112、周辺デバイス113を有している。CPUコア111とDCU112は、プロセッサ11を構成している。すなわち、サブシステム110は、プロセッサ11と周辺デバイス113から構成されている。
DCU112は、図に示されるように、CPUブレーク制御部211、CPUトレース制御部220を有している。
CPUブレーク制御部211は、デバッグモードがブレークモードもしくはオンザフライトレースモードの場合に、1つのCPUコア111のブレークに関する制御を行う。CPUブレーク制御部211は、ブレーク条件設定部211、ブレーク検出部212、停止/再開部213を有している。
ブレーク条件設定部211は、デバッグPC190からの要求にしたがい、CPUコア111にブレーク条件を設定する。このブレーク条件は、CPUコア111のプログラムを一時停止し、通常状態(CPUコア111がプログラムを実行する状態)からブレーク状態(デバッグPC190がCPUコア111の内部情報を観測できる状態)もしくはトレース状態(DCU112がCPUコア111のトレースデータを採取する状態)に切り替える条件である。例えば、ブレーク条件は、特定のプログラム命令を実行した時や、メモリ120の特定のアドレスにアクセスした時などである。
ブレーク検出部212は、CPUコア111によるプログラムの実行が設定されたブレーク条件と一致したこと、すなわち、CPUコア111でブレークが発生したことを検出する。ブレーク検出部212は、さらに、ブレークの検出をシステムデバッグ制御部150へ通知する。
停止/再開部213は、システムデバッグ制御部150からの要求にしたがい、CPUコア111によるプログラムの実行の停止や再開を制御する。すなわち、停止/再開部213は、CPUコア111の動作状態を通常状態からブレーク状態もしくはトレース状態へ切り替えたり、ブレーク状態もしくはトレース状態から通常状態へ切り替える。
CPUトレース制御部220は、デバッグモードがオンザフライトレースモードの場合に、1つのCPUコア111のトレースに関する制御を行う。CPUトレース制御部220は、トレースポイント設定部221、トレースデータ採取部222、トレースデータ保持部223を有している。
トレースポイント設定部221は、デバッグPC190からの要求にしたがい、CPUコア111にトレースポイントを設定する。このトレースポイントは、トレースデータとして採取したいデータを示している。例えば、トレースポイントは、サブシステム110内の特定のレジスタや、メインメモリ120の特定のアドレスなどである。
トレースデータ採取部222は、ブレークの検出時(トレース状態に遷移した時)、設定されたトレースポイントのデータをトレースデータとして採取する。トレースデータ保持部223は、採取したトレースデータを一時的に保持する。例えば、トレースデータ保持部223には、トレースデータを1つ保持できる。
周辺デバイス113は、図に示されるように、停止/再開部310と内部回路320を有している。内部回路320は、周辺デバイス113の機能を実行する回路である。停止/再開部310は、システムデバッグ制御部150からの要求にしたがい、内部回路320の動作の停止や再開を制御する。すなわち、停止/再開部310は、内部回路320の動作状態を通常状態からブレーク状態もしくはトレース状態へ切り替えたり、ブレーク状態もしくはトレース状態から通常状態へ切り替える。
図3は、周辺デバイス113の回路の具体例を示している。図3(a)は、停止/再開部310として内部回路320の動作クロックを制御する例である。この停止/再開部310は、AND回路311を有している。AND回路311には、デバッグ用同期バス131の同期信号の反転信号と、内部回路320の動作クロックであるクロック信号が入力される。
例えば、デバッグ用同期バス131の同期信号がローレベル、すなわち、非同期(開始/再開)の場合、AND回路311は、クロック信号をそのまま内部回路320へ伝達し、内部回路320がクロック信号にしたがって動作する。また、同期信号がハイレベル、すなわち、同期(停止)の場合、AND回路311は、クロック信号の内部回路320への伝達を停止し、内部回路320の動作が停止する。
図3(b)は、停止/再開部310として、内部回路320のF/Fのセレクタを制御する例である。例えば、内部回路320は、複数の組み合わせ回路321を有しており、組み合わせ回路321の前段と後段には、入力信号や出力信号をラッチするF/F322が設けられている。F/F322の入力には、セレクタ323が設けられている。セレクタ323には、F/F322の出力信号と前段の組み合わせ回路からの出力信号とが入力され、選択信号によって、いずれかの信号を選択し、F/F322へ入力する。停止/再開部310は、デバッグ用同期バス131の同期信号をセレクタ323の選択信号として出力する。
例えば、デバッグ用同期バス131の同期信号(選択信号)が、ローレベル、すなわち、非同期(開始/再開)の場合、セレクタ323は、前段の組み合わせ回路からの出力信号をF/F322へ入力する。そうすると、F/F322が、前段の組み合わせ回路の出力信号をラッチし、ラッチした信号を組み合わせ回路321へ入力して、組み合わせ回路321が入力に応じて動作する。また、同期信号(選択信号)がハイレベル、すなわち、同期(停止)になると、セレクタ323は、前段の組み合わせ回路からの出力信号ではなくF/F322の出力信号をF/F322へ出力する。そうすると、F/F322は、前段の組み合わせ回路の出力信号を組み合わせ回路321へ入力しなくなり、組み合わせ回路321は動作が停止する。
次に、図4を用いて、本実施形態にかかるシステムデバッグ制御部150の構成について説明する。図に示されるように、システムデバッグ制御部150は、システムブレーク制御部410とシステムトレース制御部420を有している。
システムブレーク制御部410は、デバッグモードがブレークモードもしくはオンザフライトレースモードの場合に、全てのCPUコア111に対しブレークに関する制御を行う。システムブレーク制御部410は、同期情報格納部411、ブレーク選択部412、再開選択部413を有している。
同期情報格納部411は、デバッグPC190からの要求にしたがい、ブレーク発生時や再開時に同期させるサブシステム110(CPUコア111や周辺デバイス113)を示す同期情報を格納する。ブレーク選択部412は、DCU112からブレーク通知を受けたとき、すなわち、ブレーク発生時、同期情報格納部411の同期情報に基づき、同期して停止させるサブシステム110(CPUコア111や周辺デバイス113)を選択する。つまり、ブレーク選択部412は、DCU112のブレーク検出部212によるブレークの検出に応じて、同期情報格納部411により選択されたサブシステム110の動作を停止させる停止制御部である。すなわち、ブレーク選択部412は、各サブシステム110が通常状態からブレーク状態もしくはトレース状態へ切り替わるタイミングを同期させる。
再開選択部413は、ブレーク発生後の再開時に、デバッグPC130からの要求と同期情報格納部411の同期情報に基づき、同期して再開させるサブシステム110(CPUコア111や周辺デバイス113)を選択する。つまり、再開選択部413は、ブレーク選択部412によるサブシステム110の動作停止後、デバッグPC130からの要求に応じて、同期情報格納部411により選択されたサブシステム110の動作を再開させる再開制御部である。すなわち、再開選択部413は、各サブシステム110がブレーク状態から通常状態へ切り替わるタイミングを同期させる。
システムトレース制御部420は、デバッグモードがオンザフライトレースモードの場合に、全てのCPUコア111に対しトレースに関する制御を行う。システムトレース制御部420は、トレースデータ収集部421、トレースデータ格納部422及びトレースデータ出力部423を有している。
トレースデータ収集部421は、ブレーク発生時、各DCU112に保持されているトレースデータを収集する。すなわち、トレースデータ収集部421は、ブレーク選択部412によるサブシステム110の動作停止後、停止しトレース状態となっているサブシステム110のDCU112から複数のトレースデータを収集する。
トレースデータ格納部422は、トレースデータ収集部421が収集した複数のトレースデータを格納する。トレースデータ格納部422は、デバッグPC190によるトレースデータの取得が完了するまでの間、トレースデータを上書きすることなく保持できる程度のメモリ量を有している。トレースデータ格納部422は、システムデバッグ制御部150の内部に設けられたメモリでもよいし、システムデバッグ制御部150の外部のメモリ120等であってもよい。トレースデータ出力部423は、トレースデータ格納部423に格納された複数のトレースデータをまとめて一度に、デバッグPC190へ出力する。
図5は、ブレーク制御部410の回路の具体例を示している。例えば、同期情報格納部411は、レジスタ501から構成され、ブレーク選択部412は、複数のAND回路502から構成されている。
レジスタ501は、複数のビット情報を保持でき、各ビットは、サブシステム110(DCU112や周辺デバイス113)にそれぞれ対応している。デバッグPC190によって、ブレーク発生時に同期して停止させたいサブシステム110のビットがハイレベルに設定される。AND回路502は、レジスタ501の各ビット、すなわち、サブシステム110(DCU112や周辺デバイス113)に対応して設けられ、各AND回路502には、レジスタ501のビットとデバッグ用同期バスの同期信号が入力される。
例えば、DCU112からデバッグ用同期バス131の同期信号にハイレベルが入力されると、レジスタ501が設定されているAND回路502がハイレベルを出力し、対応するサブシステム110(DCU112や周辺デバイス113)に同期信号が入力される。
再開選択部413の場合も同様に、複数のAND回路502から構成され、レジスタ501には同期して再開させたいサブシステム110のビットにハイレベルが設定される。例えば、デバッグPC190から再開要求が入力されると、レジスタ501が設定されているAND回路502がハイレベルを出力し、対応するサブシステム110(DCU112や周辺デバイス113)に同期信号が入力される。
次に、図6乃至図9を用いて、本実施形態にかかるデバッグシステムの動作(デバッグ方法)について説明する。図6は、ブレークモードにおけるデバッグシステムの動作を示している。例えば、デバッグPC190のデバッガ191にて、ユーザがブレークモードを選択した後、以下の処理が行われる。
ブレークモードの場合、まず、デバッグPC190は、デバッグ用外部バス132を介して、ユーザ所望のDCU、例えば、DCU112aに対しブレーク条件の設定を要求する(S601)。そうすると、DCU112aのブレーク条件設定部211は、この要求にしたがってCPUコア111aにブレーク条件を設定する。
次いで、デバッグPC190は、デバッグ用外部バス132を介して、システムデバッグ制御部150に対し、ブレーク発生時に同期して停止させたいブレーク用の同期情報を設定する(S602)。すなわち、システムデバッグ制御部150の同期情報格納部411に同期情報が格納される。例えば、周辺デバイス113a、DCU112b、周辺デバイス113bが同期するように設定する。
次いで、デバッグPC190は、デバッグ用外部バス132を介して、全てのDCU、すなわち、DCU112a〜112cに対しプログラムの実行開始を要求する(S603)。そうすると、DCU112a〜112cのそれぞれは、CPUコア111a〜111cにプログラムの実行を開始させる。
次いで、DCU112aのブレーク検出部212は、プログラムの実行が設定したブレーク条件に一致したことを検出すると、CPUコア111aにプログラムの実行を停止させ(ブレーク状態に切り替える)、さらに、デバッグ用同期バス131を介して、システムデバッグ制御部150へブレークの発生を通知する(S604)。
次いで、システムデバッグ制御部150は、設定されたブレーク用の同期情報に基づき、同期して停止するサブシステムへ、デバッグ用同期バス131を介して、実行停止を要求する(S605)。ここでは、S602で周辺デバイス113a、DCU112b、周辺デバイス113bが同期するように設定されているため、DCU112cは停止の対象外となり、周辺デバイス113a、DCU112b、周辺デバイス113bへ実行停止を要求する。すなわち、システムデバッグ制御部150のブレーク選択部412は、ブレーク通知を受けると、同期情報格納部411の同期情報を参照し、停止させるDCU112と周辺デバイス113に対応するデバッグ用同期バス131の同期信号をハイレベルにする。そうすると、DCU112bの停止/再開部213は、同期信号にしたがい、CPUコア111bにプログラムの実行を停止させる(ブレーク状態に切り替える)。周辺デバイス113a,113bの停止/再開部310も、同期信号にしたがい、その回路動作を停止させる(ブレーク状態に切り替える)。
次いで、デバッグPC190は、デバッグ用外部バス132を介して、停止しているDCU112a,112bから、ユーザ所望のCPUコア111a,111bの内部情報を取得する(S606)。
次いで、内部情報の確認が終わると、デバッグPC190は、デバッグ用外部バス132を介して、システムデバッグ制御部150に対し、同期して再開させたい再開用の同期情報を設定する(S607)。すなわち、システムデバッグ制御部150の同期情報格納部411に同期情報が格納される。例えば、DCU112a、周辺デバイス113a、DCU112b、周辺デバイス113bが同期するように設定する。
次いで、デバッグPC190は、デバッグ用外部バス132を介して、システムデバッグ制御部150に対し実行再開を要求する(S608)。そうすると、システムデバッグ制御部150は、リスタートの同期情報の設定に基づいて、同期して再開させるサブシステム、ここでは、DCU112a、周辺デバイス113a、DCU112b、周辺デバイス113bに実行再開を要求する(S609)。すなわち、システムデバッグ制御部150の再開選択部413は、再開要求を受けると、同期情報格納部411の同期情報を参照し、再開させるDCU112と周辺デバイス113に対応するデバッグ用同期バス131の同期信号をローレベルにする。そうすると、DCU112a,112bの停止/再開部213は、同期信号にしたがい、CPUコア111bにプログラムの実行を再開させる(通常状態に切り替える)。周辺デバイス113a,113bの停止/再開部310も、同期信号にしたがい、その回路動作を再開させる(通常状態に切り替える)。
図7は、ブレークモードにおけるデバッグシステムの動作を示すタイミングチャートである。図に示すように、例えば、CPUコア111aでブレークが発生すると、CPUコア111aが動作を停止し通常状態からブレーク状態に切り替わるとともに、周辺デバイス113a、CPUコア111b、周辺デバイス113bも、ほぼ同じタイミングで動作を停止し通常状態からブレーク状態に切り替わる。また、デバッグPC190から実行再開を要求されると、CPUコア111a、周辺デバイス113a、CPUコア111b、周辺デバイス113bが、ほぼ同じタイミングで動作を再開しブレーク状態から通常状態に切り替わる。
図8は、オンザフライトレースモードにおけるデバッグシステムの動作を示している。例えば、デバッグPC190のデバッガ191にて、ユーザがオンザフライトレースモードを選択した後、以下の処理が行われる。
オンザフライトレースモードの場合、まず、デバッグPC190は、デバッグ用外部バス132を介して、ユーザ所望のDCU、例えば、DCU112aに対しブレーク条件を設定する(S701)。そうすると、DCU112aのブレーク条件設定部211は、この要求にしたがってCPUコア111aにブレーク条件を設定する。
次いで、デバッグPC190は、デバッグ用外部バス132を介して、DCU112a,112bに対しトレースポイントの設定を要求する(S702)。そうすると、DCU112a,112bのトレースポイント設定部221は、この要求にしたがってCPUコア111a,111bにトレースポイントを設定する。
次いで、デバッグPC190は、デバッグ用外部バス132を介して、システムデバッグ制御部150に対し、ブレーク発生時に同期して停止させたいブレーク用の同期情報を設定する(S703)。すなわち、システムデバッグ制御部150の同期情報格納部411に同期情報が格納される。例えば、周辺デバイス113a、DCU112b、周辺デバイス113bが同期するように設定する。
次いで、デバッグPC190は、デバッグ用外部バス132を介して、全てのDCU、すなわち、DCU112a〜112cに対しプログラムの実行開始を要求する(S704)。そうすると、DCU112a〜112cのそれぞれは、CPUコア111a〜111cにプログラムの実行を開始させる。
次いで、DCU112aのブレーク検出部212は、プログラムの実行が設定したブレーク条件に一致したことを検出すると、CPUコア111aにプログラムの実行を停止させ(トレース状態に切り替える)、さらに、デバッグ用同期バス131を介して、システムデバッグ制御部150へブレークの発生を通知する(S705)。
次いで、システムデバッグ制御部150は、設定されたブレーク用の同期情報に基づき、同期して停止するサブシステム、ここでは周辺デバイス113a、DCU112b、周辺デバイス113bへ、デバッグ用同期バス131を介して、実行停止を要求する(S706)。すなわち、システムデバッグ制御部150のブレーク選択部412は、ブレーク通知を受けると、同期情報格納部411の同期情報を参照し、停止させるDCU112と周辺デバイス113に対応するデバッグ用同期バス131の同期信号をハイレベルにする。そうすると、DCU112bの停止/再開部213は、同期信号にしたがい、CPUコア111bにプログラムの実行を停止させる(トレース状態に切り替える)。周辺デバイス113a,113bの停止/再開部310も、同期信号にしたがい、その回路動作を停止させる(トレース状態に切り替える)。
次いで、DCU112a,112bのトレースデータ採取部222は、設定されたトレースポイントのトレースデータを採取し、DCU112a,112bのトレースデータ保持部223に保持した後、CPUコア111a,111bにプログラムの実行を再開させる(通常状態に切り替える)(S707)。このとき、周辺デバイス113a,113bも、回路動作を再開させる(通常状態に切り替える)。例えば、周辺デバイス113a,113bが再開するタイミングは、回路動作を停止してから、所定の時間経過後(所定のクロック後)などである。
次いで、システムデバッグ制御部150のトレースデータ収集部421は、デバッグ用内部バス133を介して、DCU112a,112bに保持されているトレースデータを収集する(S708)。トレースデータ収集部421は、S705のブレーク通知を受けると、DCU112に保持されているトレースデータが更新される前にトレースデータの収集を行い、収集したトレースデータをトレースデータ格納部422に格納する。トレースデータ収集部421がトレースデータを収集するタイミングは、各DCU112でトレースデータの採取が完了した後から次のブレーク検出前までの間であり、例えば、DCU112のブレーク通知を受けてから所定の時間経過後(所定のクロック後)でもよいし、CPUコア111の再開を検出したときでもよい。尚、CPUコア111の再開は、ブレーク通知と同様に、デバッグ用同期バス131の同期信号によって検出できる。
その後、DCU112aによるブレーク検出ごとに、ブレーク通知〜トレースデータ格納を繰り返す(S705'〜S708')。
そして、デバッグPC190は、デバッグ用外部バス132を介して、システムデバッグ制御部150のトレースデータ格納部422に格納されている複数のトレースデータを一括で取得する(S709)。このとき、例えば、デバッグPC190は、全てのDCU、DCU112a〜112cに対しプログラムの実行を停止させた後に、トレースの取得を行う。システムデバッグ制御部150のトレースデータ出力部423は、デバッグPC190からのトレースデータの取得要求にしたがい、トレースデータ格納部422から複数のトレースデータを一度に出力する。
図9は、オンザフライトレースモードにおけるデバッグシステムの動作を示すタイミングチャートである。図に示すように、例えば、CPUコア111aでブレークが発生すると、CPUコア111aが通常状態からトレース状態に切り替わるとともに、周辺デバイス113a、CPUコア111b、周辺デバイス113bも、ほぼ同じタイミングで通常状態からトレース状態に切り替わる。そして、CPUコア111a、周辺デバイス113a、CPUコア111b、周辺デバイス113bは、CPUコア111aとCPUコア111bのトレースデータが採取されるとすぐに、ほぼ同じタイミングで通常状態へ切り替わる。さらに、システムデバッグ制御部150は、CPUコア111がトレース状態に切り替わった後、上記のような所定のタイミングで、各DCU112からトレースデータを収集する。複数のトレースデータを収集した後、システムデバッグ制御部150は、収集した複数のトレースデータを出力する。
以上のように、本実施形態では、デバッグ用同期バスにDCUの他、周辺デバイスも接続したことで、ブレーク発生時にCPUコアに加えて周辺デバイスも同期させて停止できるようになる。このため、ブレーク発生時の内部情報の変化を防止することができ、ブレーク発生時の内部情報を正確に取得することができる。
また、システムデバッグ制御部を設け、ブレーク発生時や再開時に同期させるCPUコアや周辺デバイスを選択させることにより、全てのCPUコアを停止/再開させるのではなく、デバッグに必要なCPUコアや周辺デバイスのみを停止/再開させることができる。このため、ブレーク発生時、マルチプロセッサ構成に合わせた正確な内部情報を取得することができる。
さらに、システムデバッグ制御部と各DCUを高速な内部バスで接続し、トレースデータを随時収集し格納しておき、低速な外部バスにより複数のトレースデータを一括で出力することにより、DCUに保持されたトレースデータが更新されても、すぐにはトレースデータが消えることがないため、観測したいトレースデータを確実に収集することができる。
この結果、本実施形態では、ユーザが観測したいCPUコアの内部情報やトレースデータを精度よく取得できるため、正確なデバッグを行うことができ、デバッグ効率を向上することができる。
その他の発明の実施の形態.
上述の例では、デバッグするマルチプロセッサ構成のLSIにおいて、プロセッサ間の関係は特に限定されない。例えば、複数のプロセッサが同等の関係で動作する並列型のマルチプロセッサでもよいし、複数のプロセッサが主従関係をもって動作するマスタスレーブ型のマルチプロセッサでもよい。図10は、マスタスレーブ型のマルチプロセッサに本発明を適用した例である。
図10は、図1の構成に加えて、LSI100にメインCPU160を有している。すなわち、メインCPU160がマスタとなるプロセッサであり、CPUコア111a〜111cがスレーブとなるプロセッサである。メインCPU160の構成は、図2と同様であり、メインCPU160をデバッグ用同期バス131、デバッグ用外部バス132、デバッグ用内部バス133に接続する。これにより、メインCPUについても、システムデバッグ制御部150によって、ブレーク発生時や再開時の同期を制御でき、トレースデータの確実な収集も可能になる。
また、図11に示すように、LSI100にデバッグ用同期バスをLSIの外部と接続するデバッグ用外部同期I/F141を設けてもよい。デバッグ用外部同期I/F141を介して他のLSI100aのデバッグ用同期バス131aに接続する。接続するLSI100aは、図1の本発明のLSI100でもよいし、図13の従来のLSI900でもよい。これにより、他のLSI100aに設けられたサブシステム110xや110yについても、ブレーク発生時やリスタート時の同期を制御することができる。
また、システムデバッグ制御部150は、デバッグモードとしてブレークモードやオンザフライトレースモードに加えて、さらに、その他のデバッグモードを有していてもよい。例えば、CPUコア等がシステムバスにより入出力する信号レベルを解析する信号解析モードを有してもよい。信号解析モードの場合、システムデバッグ制御部150は、メモリ120とCPUコア111を接続するシステムバスの信号をサンプリングし、このサンプリングデータをリアルタイムで格納する。そして、デバッグPCでは、このサンプリングデータに基づき、信号の波形を表示する。これにより、ブレーク発生時などに、CPUコアの内部状態とともにバスの信号波形を確認することができるため、問題の解析を正確に行うことができ、デバッグ効率をさらに向上させることができる。
また、上述の例では、マルチプロセッサ構成のLSIについてのみデバッグを行ったが、シングルプロセッサ構成のLSIとしてもよい。例えば、図1の構成で、サブシステム110a〜110cのうちの一つのみとしてもよい。サブシステムを一つとした場合でも、ブレーク発生時に周辺デバイスを同期して停止することができ、システムデバッグ制御部150で複数のトレースデータを格納することができる。
このほか、本発明の要旨を逸脱しない範囲で種々の変形、実施が可能である。
本発明にかかるデバッグシステムの構成図である。 本発明にかかるサブシステムの構成を示すブロック図である。 本発明にかかる周辺デバイスの構成例を示す回路図である。 本発明にかかるシステムデバッグ制御部の構成を示すブロック図である。 本発明にかかるシステムデバッグ制御部の構成例を示す回路図である。 本発明にかかるデバッグシステムの動作を示すシーケンスである。 本発明にかかるデバッグシステムの動作を示すタイミングチャートである。 本発明にかかるデバッグシステムの動作を示すシーケンスである。 本発明にかかるデバッグシステムの動作を示すタイミングチャートである。 本発明にかかるデバッグシステムの構成図である。 本発明にかかるデバッグシステムの構成図である。 一般的なマルチプロセッサ構成のLSIの構成図である。 従来のデバッグシステムの構成図である。 従来のデバッグシステムの動作を示すシーケンスである。 従来のデバッグシステムの動作を示すシーケンスである。
符号の説明
100 LSI
110 サブシステム
111 CPUコア
112 DCU
113 周辺デバイス
120 メモリ
131 デバッグ用同期バス
132 デバッグ用外部バス
133 デバッグ用内部バス
140 デバッグI/F
150 システムデバッグ制御部
190 デバッグPC
191 デバッガ
210 CPUブレーク制御部
211 ブレーク条件設定部
212 ブレーク検出部
213 停止/再開部
220 CPUトレース制御部
221 トレースポイント設定部
222 トレースデータ採取部
223 トレースデータ保持部
310 停止/再開部
320 内部回路
410 システムブレーク制御部
411 同期情報格納部
412 ブレーク選択部
413 再開選択部
421 トレースデータ収集部
422 トレースデータ格納部
423 トレースデータ出力部

Claims (4)

  1. CPUコアと、当該CPUコアのデバッグ制御を行なうデバッグ制御ユニットと、周辺デバイスと、を各々含む複数のサブシステムと、
    前記複数のサブシステムにおけるデバッグを制御するシステムデバッグ制御部と、
    前記デバッグ制御ユニット、前記周辺デバイス、および前記システムデバッグ制御部が共通に接続され、前記システムデバッグ制御部から前記デバッグ制御ユニットおよび前記周辺デバイスへブレーク発生時の停止および当該停止後の再開の同期をとるための同期信号を転送するデバッグ用同期バスと、
    前記デバッグ制御ユニットと前記システムデバッグ制御部とが共通に接続され、前記デバッグ制御ユニットの各々のトレースデータを前記システムデバッグ制御部に転送するデバッグ用内部バスと、
    前記デバッグ制御ユニット前記システムデバッグ制御部、およびデバッグPCと接続可能なデバッグインターフェースが共通に接続され、デバッグ制御用のコマンドおよび前記システムデバッグ制御部に格納されている前記トレースデータを前記デバッグインターフェースを介して前記デバッグPCに転送可能な、前記デバッグ用同期バスおよび前記デバッグ用内部バスよりも低速なデバッグ用外部バスと、を備え、
    前記デバッグ制御ユニットは、前記複数のサブシステムのいずれかが備える前記CPUコアによるプログラムの実行が前記デバッグPCで設定されたブレーク条件と一致した場合、前記CPUコアのプログラムの実行を停止し、前記デバッグ用同期バスを介して前記システムデバッグ制御部へブレークの発生を通知し、
    前記システムデバッグ制御部は、前記ブレークの発生が通知された場合、前記プログラムの実行が停止されたCPUコアと同期して停止するように選択された前記デバッグ制御ユニットおよび前記周辺デバイスに対して前記デバッグ用同期バスを介して実行停止を要求当該停止したサブシステムのデバッグ制御ユニットに格納されている、前記デバッグPCを用いて前記CPUコアに設定されたトレースポイントのトレースデータを前記デバッグ用内部バスを介して前記ブレークの発生が通知される毎に収集して格納し、当該格納したトレースデータを前記デバッグ用外部バスを介して前記デバッグPCに一度に転送可能である、
    半導体集積回路装置。
  2. 前記システムデバッグ制御部は、
    前記サブシステムの動作停止後、前記停止したサブシステムの前記デバッグ制御ユニットに格納されている、前記デバッグPCを用いて前記CPUコアに設定されたトレースポイントのトレースデータを前記デバッグ用内部バスを介して複数収集するトレースデータ収集部と、
    前記収集した複数のトレースデータを格納するトレースデータ格納部と、
    前記格納した複数のトレースデータを前記デバッグ用外部バスを介して一度に出力するトレースデータ出力部と、を有する、
    請求項に記載の半導体集積回路装置。
  3. 請求項1または2に記載の半導体集積回路装置と、当該半導体集積回路装置のデバッグを実施するための前記デバッグPCとを備えたデバッグシステム。
  4. 半導体集積回路装置のデバッグ方法であって、
    前記半導体集積回路装置は、
    CPUコアと、当該CPUコアのデバッグ制御を行なうデバッグ制御ユニットと、周辺デバイスと、を各々含む複数のサブシステムと、
    前記複数のサブシステムにおけるデバッグを制御するシステムデバッグ制御部と、
    前記デバッグ制御ユニット、前記周辺デバイス、および前記システムデバッグ制御部が共通に接続され、前記システムデバッグ制御部から前記デバッグ制御ユニットおよび前記周辺デバイスへブレーク発生時の停止および当該停止後の再開の同期をとるための同期信号を転送するデバッグ用同期バスと、
    前記デバッグ制御ユニットと前記システムデバッグ制御部とが共通に接続され、前記デバッグ制御ユニットの各々のトレースデータを前記システムデバッグ制御部に転送するデバッグ用内部バスと、
    前記デバッグ制御ユニット前記システムデバッグ制御部、およびデバッグPCと接続可能なデバッグインターフェースが共通に接続され、デバッグ制御用のコマンドおよび前記システムデバッグ制御部に格納されている前記トレースデータを前記デバッグインターフェースを介して前記デバッグPCに転送可能な、前記デバッグ用同期バスおよび前記デバッグ用内部バスよりも低速なデバッグ用外部バスと、を備え、
    前記デバッグ制御ユニットは、前記複数のサブシステムのいずれかが備える前記CPUコアによるプログラムの実行が前記デバッグPCで設定されたブレーク条件と一致した場合、前記CPUコアのプログラムの実行を停止し、前記デバッグ用同期バスを介して前記システムデバッグ制御部へブレークの発生を通知し、
    前記システムデバッグ制御部は、前記ブレークの発生が通知された場合、前記プログラムの実行が停止されたCPUコアと同期して停止するように選択された前記デバッグ制御ユニットおよび前記周辺デバイスに対して前記デバッグ用同期バスを介して実行停止を要求当該停止したサブシステムのデバッグ制御ユニットに格納されている、前記デバッグPCを用いて前記CPUコアに設定されたトレースポイントのトレースデータを前記デバッグ用内部バスを介して前記ブレークの発生が通知される毎に収集して格納し、当該格納したトレースデータを前記デバッグ用外部バスを介して前記デバッグPCに一度に転送する、
    半導体集積回路装置のデバッグ方法。
JP2005315826A 2005-10-31 2005-10-31 半導体集積回路装置、それのデバッグシステム及びデバッグ方法。 Expired - Fee Related JP4847734B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005315826A JP4847734B2 (ja) 2005-10-31 2005-10-31 半導体集積回路装置、それのデバッグシステム及びデバッグ方法。
US11/586,505 US7636870B2 (en) 2005-10-31 2006-10-26 Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005315826A JP4847734B2 (ja) 2005-10-31 2005-10-31 半導体集積回路装置、それのデバッグシステム及びデバッグ方法。

Publications (2)

Publication Number Publication Date
JP2007122543A JP2007122543A (ja) 2007-05-17
JP4847734B2 true JP4847734B2 (ja) 2011-12-28

Family

ID=37998040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005315826A Expired - Fee Related JP4847734B2 (ja) 2005-10-31 2005-10-31 半導体集積回路装置、それのデバッグシステム及びデバッグ方法。

Country Status (2)

Country Link
US (1) US7636870B2 (ja)
JP (1) JP4847734B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0623354D0 (en) * 2006-11-23 2007-01-03 Ibm Software tracing
JP5062755B2 (ja) 2007-05-07 2012-10-31 日本特殊陶業株式会社 センサ制御装置
JP5095273B2 (ja) * 2007-06-22 2012-12-12 株式会社東芝 制御装置
JP2009059005A (ja) * 2007-08-29 2009-03-19 Panasonic Corp デバッグシステム、デバッグ装置および方法
JP5071072B2 (ja) * 2007-11-28 2012-11-14 横河電機株式会社 開発支援装置及び半導体試験装置
US8312309B2 (en) * 2008-03-05 2012-11-13 Intel Corporation Technique for promoting determinism among multiple clock domains
US20090254886A1 (en) * 2008-04-03 2009-10-08 Elliot Gibson D Virtual debug port in single-chip computer system
JP5297158B2 (ja) * 2008-11-18 2013-09-25 株式会社Jsol 情報処理装置、および制御プログラム
JP5376509B2 (ja) * 2009-03-16 2013-12-25 スパンション エルエルシー 実行履歴トレース方法
TWI413899B (zh) * 2009-07-27 2013-11-01 Univ Nat Sun Yat Sen 應用於循環記憶體之壓縮資料管理系統及方法
US20130031419A1 (en) * 2011-07-28 2013-01-31 International Business Machines Corporation Collecting Debug Data in a Secure Chip Implementation
JP6013711B2 (ja) * 2011-09-01 2016-10-25 ラピスセミコンダクタ株式会社 半導体集積回路及び半導体集積回路のデバッグ方法
US8700955B2 (en) 2011-09-22 2014-04-15 Freescale Semiconductor, Inc. Multi-processor data processing system having synchronized exit from debug mode and method therefor
JP6111731B2 (ja) * 2013-02-22 2017-04-12 日本電気株式会社 並列デバッグシステム、並列デバッグ方法、及び、並列デバッグプログラム
US9703669B2 (en) * 2014-11-14 2017-07-11 Cavium, Inc. Apparatus and method for distributed instruction trace in a processor system
KR20160134196A (ko) 2015-05-15 2016-11-23 현대자동차주식회사 주문형 반도체 타입 전자식 브레이크 램프 스위치 및 이를 적용한 전자식 브레이크 시스템
US10474552B2 (en) * 2017-05-18 2019-11-12 Nxp Usa, Inc. Hardware and software debug using data dependency tracing
CN108415842B (zh) * 2018-03-21 2021-01-29 杭州中天微***有限公司 多核处理器

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6385942A (ja) * 1986-09-30 1988-04-16 Toshiba Corp 並列プログラムのデバツグ支援装置
JPH0285935A (ja) * 1988-09-22 1990-03-27 Hitachi Micro Comput Eng Ltd データ処理装置およびそのデバッグ装置
JPH08171504A (ja) * 1994-12-19 1996-07-02 Mitsubishi Denki Semiconductor Software Kk エミュレ−ション装置
JPH1049401A (ja) * 1996-08-08 1998-02-20 Meidensha Corp プログラムのデバッグ方法
US5848264A (en) * 1996-10-25 1998-12-08 S3 Incorporated Debug and video queue for multi-processor chip
JPH10214201A (ja) * 1997-01-29 1998-08-11 Mitsubishi Electric Corp マイクロコンピュータ
US6026503A (en) * 1997-08-12 2000-02-15 Telrad Communication And Electronic Industries Ltd. Device and method for debugging systems controlled by microprocessors
JPH11154102A (ja) * 1997-11-20 1999-06-08 Toshiba Microelectronics Corp データ変換回路を有するエミュレータ
JPH11353205A (ja) * 1998-06-04 1999-12-24 Ricoh Co Ltd トレースメモリ内蔵のプロセッサ
JP2001209556A (ja) * 1999-11-18 2001-08-03 Yokogawa Electric Corp 検証支援システム
US6718294B1 (en) * 2000-05-16 2004-04-06 Mindspeed Technologies, Inc. System and method for synchronized control of system simulators with multiple processor cores
JP2001331341A (ja) * 2000-05-19 2001-11-30 Fujitsu Ltd マイクロコンピュータ
US6751751B1 (en) * 2000-11-06 2004-06-15 Xilinx, Inc. Universal multi-bus breakpoint unit for a configurable system-on-chip
JP2002202900A (ja) * 2000-12-28 2002-07-19 Seiko Epson Corp デバッグ装置
JP2002304310A (ja) * 2001-04-06 2002-10-18 Fujitsu Ltd 半導体集積回路
JP2003015906A (ja) 2001-06-28 2003-01-17 Mitsubishi Electric Corp リモートデバッグ方法および装置
JP2003162426A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法
JP2003263339A (ja) * 2002-03-08 2003-09-19 Seiko Epson Corp デバック機能内蔵型マイクロコンピュータ
JP4182801B2 (ja) * 2003-04-24 2008-11-19 日本電気株式会社 マルチプロセサシステム
JP2004342001A (ja) * 2003-05-19 2004-12-02 Renesas Technology Corp 半導体集積回路装置
US7069176B2 (en) * 2003-08-07 2006-06-27 Arm Limited Trace source correlation in a data processing apparatus
JP2005070950A (ja) * 2003-08-21 2005-03-17 Sanyo Electric Co Ltd プログラム処理装置
JP2006092029A (ja) * 2004-09-21 2006-04-06 Fujitsu Ltd マイクロコンピュータ及びトレース制御方法

Also Published As

Publication number Publication date
JP2007122543A (ja) 2007-05-17
US20070101198A1 (en) 2007-05-03
US7636870B2 (en) 2009-12-22

Similar Documents

Publication Publication Date Title
JP4847734B2 (ja) 半導体集積回路装置、それのデバッグシステム及びデバッグ方法。
US9052887B2 (en) Fault tolerance of data processing steps operating in either a parallel operation mode or a non-synchronous redundant operation mode
JP2651916B2 (ja) インサーキット・エミュレータ
US9223677B2 (en) Generation of trace data in a multi-processor system
JP4475734B2 (ja) データ処理装置及びデータ処理方法
CN102360329B (zh) 总线监控与调试控制装置及进行总线监控与总线调试的方法
US6857084B1 (en) Multiprocessor system and method for simultaneously placing all processors into debug mode
TWI544410B (zh) 利用執行單步驟以進行編碼診斷
US7506205B2 (en) Debugging system and method for use with software breakpoint
JPH06314213A (ja) デバッグ装置
GB2413418A (en) Selective generation of trace elements
JP2009524159A (ja) マルチコアシステムをデバッグするための方法及び装置
TW201835765A (zh) 死結偵測器、包括其之系統與其方法
US20060161818A1 (en) On-chip hardware debug support units utilizing multiple asynchronous clocks
TWI270769B (en) Trace, debug method and system for a processor
JP2007257441A (ja) プロセッサおよびプロセッサ制御方法
US10042692B1 (en) Circuit arrangement with transaction timeout detection
JP2008282308A (ja) 協調検証装置、協調検証方法、協調検証プログラム
JP2010117813A (ja) デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム
CN110532164B (zh) 半导体设备和调试方法
US7231568B2 (en) System debugging device and system debugging method
US10067852B2 (en) Switching between traditional and history program trace modes without halting a processor
JP2003263339A (ja) デバック機能内蔵型マイクロコンピュータ
WO2009123952A2 (en) Apparatus and method for condensing trace information in a multi-processor system
US20050210447A1 (en) Recovering pending trace data within a data processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111011

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111014

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4847734

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees