JP2011243110A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2011243110A
JP2011243110A JP2010116469A JP2010116469A JP2011243110A JP 2011243110 A JP2011243110 A JP 2011243110A JP 2010116469 A JP2010116469 A JP 2010116469A JP 2010116469 A JP2010116469 A JP 2010116469A JP 2011243110 A JP2011243110 A JP 2011243110A
Authority
JP
Japan
Prior art keywords
information
trace
instruction
unit
fifo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010116469A
Other languages
English (en)
Inventor
Takahiro Shiina
崇弘 椎名
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 JP2010116469A priority Critical patent/JP2011243110A/ja
Priority to US13/111,944 priority patent/US8527812B2/en
Publication of JP2011243110A publication Critical patent/JP2011243110A/ja
Withdrawn legal-status Critical Current

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

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)
  • Advance Control (AREA)

Abstract

【課題】CPUの命令実行解析情報とメモリアクセスの情報を的確に取得する。
【解決手段】オペランドバス(105,205)に結合された実行部(103,203)と、制御部(101,201)とを含む中央処理装置(CPU#0,#1)と、デバッグ回路(35)とを設ける。上記制御部は、上記中央処理装置での命令実行解析情報を収集するデバッグ機能部を含む。上記デバッグ回路は、上記命令実行解析情報と上記オペランドバスから得られる情報とをそれぞれ専用の論理回路(112,114,212,214)を介して取り込むトレース取得回路(110,210)と、トレース出力回路(111,211)とを含む。上記トレース取得回路には、上記命令実行解析情報と上記オペランドバスから得られる情報とを並べ替える並べ替え論理部(115,215)を設け、的確なトレースを可能にする。
【選択図】図1

Description

本発明は、情報処理装置、さらにはそれにおけるデバッグ技術に関し、例えばマイクロコンピュータに有効な技術に関する。
特許文献1には、複数のCPUを搭載したコンピュータシステムのデバッグにおいて、複数のCPUのブレーク、ステップ実行の協調動作における厳密な同期性を確保し、複数のCPUトレースデータの出力時間関係を観測するための技術が示される。それによれば、複数のCPUブレーク間の協調を、ハードウェアで実現し、ブレークおよび、ステップ実行の厳密な同期を行う。協調デバッグ回路は、ブレーク協調組み合わせ回路、協調ブレークコントロールレジスタ、協調ブレークステータスレジスタ、トレースデータ格納部、外部デバイスインターフェイス部を備えている。ブレーク協調組み合わせ回路は、CPUからのブレーク出力信号を組み合わせて当該CPUへのブレーク入力信号を生成する。トレースデータ格納部は、複数のCPUのトレースデータを出力時間情報と組み合わせて記憶する。
特許文献2には、複数のトレースメモリに記録された事象の発生時間の前後関係をより少ないハードウェアの追加によって、その発生頻度に関わらず知ることができるデバッグ装置が示される。それによれば、トレースメモリにCPUのトレース情報を書き込む時に、トレースメモリに、トレースメモリのアドレスをトレース情報とともに書き込むことによって、トレースメモリの情報とトレースメモリの情報の発生前後の関係を特定するようにしている。
特開2003−162426号公報 特開2003−076577号公報
情報処理装置の一例とされるマイクロコンピュータは、マイクロプロセッサ、あるいはデータプロセッサとも称される。そのようなマイクロコンピュータを基板上に実装した状態でプログラムのデバッグを可能にするオンチップデバッグ方式は、高速CPU(Central Processing Unit;中央処理装置)搭載のマイクロコンピュータや、SoC(System-on-a-chip)から導入され、現在では多くの製品の低コストデバッグ手法として一般的な技術となっている。近年のハイエンドCPUは、性能向上のためにスーパースカラや、ハーバードアーキテクチャが導入されている。このような技術を適用することで、CPUの性能向上が見込める一方、命令実行とメモリアクセスの並列動作や命令実行そのものも複数同時処理されるなど、LSI(Large Scale Integration)内蔵ソフトウェアの動作解析(デバッグ)が困難になっている。
そのため、CPUの数が一つであっても、正しく命令実行順序を把握したり、演算の間に発生するオペランドアクセスが適切なタイミングで実施されているかを知ることが重要になっている。顧客システムによっては、安全性、信頼性、精度を確保するために、きわめて高度な解析機能を要求される場合があり、これに応えることが重要になっている。
一つのCPUによるシステムでも、上記のように課題があるが、マルチコア化されるとそれぞれのCPUが割り付けられたタスクを分散・並列に処理するため、LSIの内部で発生している事象を把握することがますます難しくなる。マイクロコンピュータで実現したCPUの結合度が高いマルチコア構成として、メモリや周辺機能を共有した上で、CPU単位に異なるOS(Operating System)を搭載する方式(これを「AMP方式」という)や、単一のOSでCPUの数を隠蔽させる方式(これを「SMP方式」という)を挙げることができる。
組み込み分野においては、既存ソフトウェア資産を活用するため、マルチコアであってもCPU毎に固定的に処理やメモリリソースを割り付けるAMP形式が用いられている。AMP方式は、比較的既存ソフトウェアの修正が少なく済むとされているが、新たに複数CPU間の競合チェックや、ソフトウェア間の連携や排他処理が正常動作するかと言ったテストが必要となっている。またSMP方式においても、汎用OSによってCPUを意識しないスループット重視のシステム構成を作るために、OSの開発に大きな負荷が発生する。エンドユーザに見えにくい動作である、リソースの排他制御、メモリコヒーレンシの制御、待ち合わせ制御は、不具合や意図しない性能劣化につながるため、ソフトウェア開発工数が大きくなる主たる要因とされる。
現在、普及しているマルチコア製品は、CPUとそのCPUに制御される機能モジュール群をひとまとめにしたブロックを、内部のシステムバスで連結するSoC形態が多い。このためデバッグ機能は、一つのCPUをデバッグするものに、他のブロックとの接続機能を追加したりしている。このようにCPU同士が疎結合な構成では、機能ブロックを集積しているに過ぎないため、積極的に複数CPUを同時デバッグする効果がない。そのため製品仕様として、CPU単位にデバッグする手法が許容されやすい。しかし、今後のマルチコア製品は、CPUの数をより意識しないSMP形式の製品や、異なるOSやソフトウェアを各CPUで個別に処理する(AMP)ことで、実時間制御と性能を強化する製品が増加する。こうした製品では各CPUの関係が密結合になり並列・分散処理を効率的に行う。
並列・分散処理するシステムでは、デバッグ対象とするCPUを切り替えながら、何度も情報を取り直す手法が適用しにくい。これは原理的に不具合再現性が乏しくなるためで、ユーザは可能な限りシステムを連続動作させ、まれに発生する不具合抽出する必要に迫られる。こうした課題に対して複数CPUの同時デバッグ機能は有効なソリューションであると言える。特に、複数CPUの同時トレース機能が実現可能になれば、高信頼システム向けに製品を販売する際に優位な技術サポートが可能になる。
また、マルチコア技術の大きな目的である低消費電力化と、それに関係するソフトウェア開発にも有効である。SMP対応OSは複数のCPUに分散処理をさせるが、負荷状態に応じてCPUを個別に低速動作させたり、スリープ状態とし消費電力を削減する。積極的に低消費電力化を進める際、動作状態が様々であるCPUの動作をどのように確認するかが問題となる。どの様なタイミングでどの様な動作モードになったか、またそこから正常に復帰したかを知る手段はまだ確立されているとは言えない。この問題を解決することが重要である理由は、マルチコア技術の課題である、メモリコヒーレンシや排他制御、同期制御が確実に動作することを保障しなければならないためである。組み込み制御機器向けのLSIでは、PCとは異なり実行環境と開発環境が異なるクロスデバッグ(実機動作確認)を行うことが必須である。
上記特許文献1の技術によれば、命令実行やメモリリード、メモリライトなどのパイプライン処理によって、タイムスタンプを付与するタイミングを変更する必要がある場合が考慮されていない。
上記特許文献2の技術によれば、パイプライン動作などを考慮すると同時事象に対する扱いが十分とはいえない。さらにいずれかのCPUのみが停止している期間が長い場合などでは、動作再開時に取得したトレースデータの信頼性が損なわれる虞れがある。
本発明の目的は、CPU(中央処理装置)の命令実行解析情報とメモリアクセスの情報を的確に取得することにより、ソフトウェアデバッグを容易に行うための技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、情報処理装置は、オペランドバスに結合された実行部と、フェッチされた命令に基づいて上記実行部の動作を制御する制御部と、を含む中央処理装置と、上記中央処理装置でのプログラム実行状態のトレース情報を得るデバッグ回路とを含む。上記制御部は、上記中央処理装置での命令実行解析情報を収集するデバッグ機能部を含む。上記デバッグ回路は、上記デバッグ機能部によって収集された命令実行解析情報と上記オペランドバスから得られる情報とをそれぞれ専用の論理回路を介して取り込むトレース取得回路と、上記トレース取得回路の出力を外部出力するためのトレース出力回路とを含む。上記トレース取得回路は、上記デバッグ機能部によって収集された命令実行解析情報と上記オペランドバスから得られる情報とを上記中央処理装置の処理順序に対応するように並べ替える並べ替え論理部を含む。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、CPU(中央処理装置)の命令実行解析情報とメモリアクセスの情報を的確に取得することにより、ソフトウェアデバッグを容易に行うことができる。
本発明にかかる情報処理装置の一例とされるマイクロコンピュータにおける主要部の詳細な構成例ブロック図である。 本発明にかかる情報処理装置の一例とされるマイクロコンピュータにおける主要部の別の構成例ブロック図である。 図1に示されるマイクロコンピュータの全体的な構成例ブロック図である。 図1に示されるマイクロコンピュータの全体的な別の構成例ブロック図である。 図1に示されるマイクロコンピュータのCPUにおける主要部の構成例ブロック図である。 図1に示されるマイクロコンピュータにおける主要部の説明図である。 図1に示されるマイクロコンピュータにおけるスーパースカラでのトレース取得例の説明図である。 図1に示されるマイクロコンピュータにおけるスーパースカラでのトレース取得例の別の説明図である。 図1に示されるマイクロコンピュータにおけるデバッグ機能部でのトレース例の説明図である。 図1に示されるマイクロコンピュータにおける分岐トレースの流れを示すフローチャートである。 図1に示されるマイクロコンピュータにおけるスリープトレースの流れを示すフローチャートである。 図1に示されるマイクロコンピュータにおけるトレース出力回路(AUD)での処理の流を示すフローチャートである。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る情報処理装置(34)は、オペランドバス(105,205)に結合された実行部(103,203)と、フェッチされた命令に基づいて上記実行部の動作を制御する制御部(101,201)と、を含む中央処理装置(CPU#0,#1)と、上記中央処理装置でのプログラム実行状態のトレース情報を得るデバッグ回路(35)とを含む。上記制御部は、上記中央処理装置での命令実行解析情報を収集するデバッグ機能部(508)を含む。上記デバッグ回路は、上記デバッグ機能部によって収集された命令実行解析情報と上記オペランドバスから得られる情報とをそれぞれ専用の論理回路(112,114,212,214)を介して取り込むトレース取得回路(110,210)と、上記トレース取得回路の出力を外部出力するためのトレース出力回路(111,211)とを含む。上記トレース取得回路は、上記デバッグ機能部によって収集された命令実行解析情報と上記オペランドバスから得られる情報とを上記中央処理装置の処理順序に対応するように並べ替える並べ替え論理部(115,215)を含んで構成される。
上記の構成によれば、例えばCPUに対応するトレース取得回路では、制御部内のデバッグ機能部によって収集された命令実行解析情報と、オペランドバスから得られるオペランドアクセス情報とが、それぞれ専用の論理回路を介して取り込むようにしている。さらに並べ替え論理部では、上記トレース取得回路は、上記デバッグ機能部によって収集された命令実行解析情報と上記オペランドバスから得られる情報とを上記中央処理装置の処理順序に対応するように並べ替える。これにより、命令実行解析情報とオペランドアクセス情報とが同時に発生する場合でも、当該情報を的確にトレースすることができる。
また、デバッグ機能部によって収集された命令実行解析情報と、オペランドバスから得られるオペランドアクセス情報とを共通のFIFOを介して取り込むようにした場合には、FIFOに入力される情報が多い場合に、トレースに欠落を生ずる虞がある。これに対して、上記トレース取得回路では、命令実行解析情報と、オペランドアクセス情報とが、それぞれ専用の論理回路を介して取り込むようにしているため、トレースの欠落が生じ難くなる。
上記のように収集されたトレース情報に基づいて、ホストシステムなどで、トレース結果を容易に再生する(表示装置に表示する)ことができる。
〔2〕上記〔1〕において、上記デバッグ回路は、上記専用の論理回路として、上記命令実行解析情報を取り込む第1FIFO(112,212)と、上記オペランドバスから得られる情報を取り込む第2FIFO(114,214)とを含んで構成することができる。そして上記第1FIFOに取り込まれる情報と上記第2FIFOに取り込まれる情報には、上記デバッグ回路内で共有されるタイマ(109)によって管理される時刻情報に基づくタイムスタンプが付加される。上記第1FIFO及び第2FIFOは、上記専用の論理回路の機能を容易に実現することができる。
〔3〕上記〔2〕において、上記並べ替え論理部は、上記第1FIFOの出力情報に付加されているタイムスタンプと、上記第2FIFOの出力情報に付加されているタイムスタンプとに基づいて、上記第1FIFOの出力情報と上記第2FIFOの出力情報とを上記中央処理装置の処理順序に対応するように一連のトレース情報に並べ替えるように構成することができる。これにより、ホストシステムなどで、トレース結果を容易に再生する(表示装置に表示する)ことができる。
〔4〕上記〔3〕において、上記中央処理装置はパイプライン処理に対応させることができる。
〔5〕上記〔4〕において、上記並べ替え論理部は、上記第1FIFOの出力情報に付加されているタイムスタンプと、上記第2FIFOの出力情報に付加されているタイムスタンプとが互いに等しい場合には、上記中央処理装置でのパイプライン処理を考慮して、並べ替え後のトレース情報の配列順を決定することができる。これにより、ホストシステムなどで、トレース結果を容易に再生する(表示装置に表示する)ことができる。
〔6〕上記〔5〕において、上記並べ替え論理部は、上記中央処理装置でのパイプライン処理に起因して、上記第1FIFOの出力情報と上記第2FIFOの出力情報との間でトレース時刻が逆転している場合を判別して、並べ替え後のトレース情報の配列順を決定することができる。
〔7〕上記〔6〕において、上記中央処理装置は複数配置され、上記デバッグ回路内の上記トレース取得回路と上記トレース出力回路とは、上記中央処理装置に対応して複数配置されて成る。これにより、上記情報処理装置をマルチコアに対応させることができる。
〔8〕上記〔7〕において、上記中央処理装置は、上記制御部で分岐命令をフェッチしてそれをデコードする第1処理(1002)と、後続命令のデコードを中止して、上記分岐命令に基づく分岐処理を上記実行部で実行する第2処理(1003)とを含む。また上記中央処理装置は、パイプライン処理を停止可能な否かを上記制御部で判別する第3処理(1004)と、上記第3処理で、パイプライン処理が停止可能と判断した場合に、上記制御部で分岐先命令をフェッチする第4処理(1005)とを含む。このとき、上記トレース取得回路は、上記第1処理に応じて分岐トレースを開始し(1006)、上記第2処理に応じて、分岐元及び分岐先アドレスを取得し、分岐先の種別情報を取得する処理(1007)を含む。これにおり、分岐命令実行のトレース情報を得ることができる。
〔9〕上記〔8〕において、上記中央処理装置は、上記制御部でスリープ命令をフェッチしてそれをデコードする第5処理(1102)と、上記第5処理でのデコード結果に基づいてスリープ命令を上記実行部で実行する第6処理(1103)とを含む。また上記中央処理装置は、パイプライン処理が停止可能か否かを上記制御部で判別する第7処理(1104)と、上記第7処理で、パイプライン処理が停止可能と判断した場合に、低消費電力状態に遷移する第8処理(1105)とを含む。上記トレース取得回路は、上記第5処理に応じてスリープトレースを開始し、上記第6処理に応じて命令アドレスを取得する処理(1107)を含む。これにより、スリープ命令実行のトレース情報を得ることができる。
〔10〕上記〔7〕において、上記複数のトレース出力回路の出力をマージして共通端子(44A,44B,44C)を介して外部出力するための論理回路(219)を設けることができる。これにより、上記共通端子の数を低減することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
《実施の形態1》
図3には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータが示される。
図3に示されるマイクロコンピュータ34はSMP方式とされる。マイクロコンピュータ34は、特に制限されないが、デバッグ回路35、4個のCPU#0〜#3、バスインタフェース(BIF)36、メモリ37、周辺機能部38〜41を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。CPU#0〜#3に対して対称的、均一的に処理が割り付けられることで、複数CPUによる並列処理を行うことができる。CPU#0〜#3は、互いに同一構成とされ、専用のインタフェース(専用バス)43を介してデバッグ回路35に結合される。専用のインタフェース43を介して、命令実行解析情報(107、207)や、オペランドアクセス情報(108、208)がデバッグ回路35へ出力される。また、CPU#0〜#3はバスインタフェース36を介してシステムバス42に結合される。このシステムバス42には、メモリ37、周辺機能部38〜41が結合される。メモリ37は、CPU#0〜#3で実行されるプログラムが格納されたフラッシュメモリや、CPU#0〜#3によってランダムアクセス可能なSRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)が含まれる。周辺機能部38〜41には、入力されたアナログ信号をデジタル信号に変換するためのアナログ・デジタルコンバータや、外部との間でシリアル通信を可能にする各種インタフェースなどが含まれる。マイクロコンピュータ34は、ユーザシステムボード33に搭載される。ユーザシステムボード33には単数または複数のデバッグ用端子44が設けられる。デバッグ回路35は、マイクロコンピュータ34のオンチップデバッグを可能とするため、デバッグ用端子44を介してエミュレータ32に結合される。エミュレータ32は、ホストシステム31の制御下で、デバッグ回路35を介してデバッグ情報を収集する。
また、図4には、AMP方式によるマイクロコンピュータが示される。図4に示されるマイクロコンピュータが図3に示されるのと大きく異なるのは、CPU#0〜#3は、それぞれ専用のバスインタフェース36A,36B,36C,36Dを介してシステムバス42に結合される点である。
図1には、図3や図4に示されるマイクロコンピュータにおける主要部の詳細な構成例が示される。
CPU#0は、制御部101、FPU(Floating Point number processing Unit;浮動小数点演算装置)102、実行部103を含む。制御部101は、命令バス104を介してシステムバス42に結合される。制御部101は、命令バス104を介して命令をフェッチし、それをデコードすることによって、FPU102や実行部103の動作制御信号を形成する。また制御部101は、命令実行解析情報107を出力する。この命令実行解析情報107には、特に制限されないが、分岐情報、命令デコード情報、命令実行数情報が含まれる。この命令実行解析情報107はデバッグ回路35に伝達される。FPU102は、制御部101の制御下で浮動小数点演算を専門に行う。実行部103は、上記制御部101の制御下で整数演算処理を行う。FPU102や実行部103は、オペランドバス105を介してシステムバス42に結合される。FPU102や実行部103での演算の対象となる値や変数を「オペランド」と称する。オペランドは、例えばメモリ37からオペランドバス105を介してFPU102や実行部103に伝達される。オペランドバス105の状態(これを「オペランドアクセス情報108」という)は、モニタブリッジ106を介してデバッグ回路35に伝達される。
CPU#1は、上記CPU#0と同様に構成され、制御部201、FPU202、実行部203を含む。制御部201は、命令バス204を介してシステムバス42に結合される。制御部201は、命令バス204を介して命令をフェッチし、それをデコードすることによって、FPU202や実行部203の動作制御信号を形成する。また制御部201は、命令実行解析情報207を出力する。この命令実行解析情報207には、特に制限されないが、分岐情報、命令デコード情報、命令実行数情報が含まれる。この命令実行解析情報207はデバッグ回路35に伝達される。FPU202は、制御部201の制御下で浮動小数点演算を専門に行う。実行部203は、上記制御部201の制御下で整数演算処理を行う。FPU202や実行部203は、オペランドバス205を介してシステムバス42に結合される。FPU202や実行部203での演算の対象となる値や変数(オペランド)は、例えばメモリ37からオペランドバス205を介してFPU202や実行部203に伝達される。オペランドバス105の状態(オペランドアクセス情報208)は、モニタブリッジ206を介してデバッグ回路35に伝達される。
デバッグ回路35は以下のように構成される。
デバッグ回路35は、特に制限されないが、タイムスタンプタイマ109、トレース取得回路(TRC)110,210、及びトレース出力回路(AUD)111,211を含む。トレース取得回路110及びトレース出力回路111は、上記CPU#0に対応して設けられ、トレース取得回路210及びトレース出力回路211は、上記CPU#1に対応して設けられる。
トレース取得回路110は、命令実行解析情報FIFO(First-In First-Out)112、FIFO制御部113、オペランドアクセス情報FIFO114、及び並べ替え論理部115を含む。命令実行解析情報FIFO112は、CPU#0内の制御部101から出力された命令実行解析情報107を取り込むための専用バッファメモリとされ、この命令実行解析情報FIFO112に取り込まれた命令実行解析情報107は、古い順に、後段の並べ替え論理部115に出力されるようになっている。
オペランドアクセス情報FIFO114は、モニタブリッジ106を介して伝達されたオペランドアクセス情報108を取り込むための専用バッファメモリとされ、このオペランドアクセス情報FIFO114に取り込まれたオペランドアクセス情報108は、古い順に、後段の並べ替え論理部115に出力されるようになっている。
命令実行解析情報FIFO112に取り込まれる命令実行解析情報107と、オペランドアクセス情報FIFO114に取り込まれるオペランドアクセス情報108には、デバッグ回路35内で共有されるタイムスタンプタイマ109によって管理される時刻情報に基づくタイムスタンプが付加される。
並べ替え論理部115は、命令実行解析情報FIFO112の出力情報とオペランドアクセス情報FIFO114の出力情報とをCPU#0の処理順序に対応するように一連のトレース情報に並べ替える機能を有する。
FIFO制御部113は、命令実行解析情報FIFO112、オペランドアクセス情報FIFO114、及び並べ替え論理部115の動作を制御する。
トレース出力回路111は、トレースパケット生成論理部116、パラレル・パラレル変換部117を含む。トレースパケット生成論理部116は、並べ替え論理部115の出力データに必要な情報を付加することでパケットデータを形成する。また、パケットデータのサイズを縮小するために、アドレス情報の差分値を求める処理を行う。ホストシステム31が要求している必要十分な情報量のみをパケットデータとする事で、ひとつのパケットデータを出力する時間を短縮する。パラレル・パラレル変換部117は、時分割により、トレースパケット生成論理部116から出力されたパラレルデータをそれよりも小さなサイズのパラレルデータに変換する。変換後のデータは、デバッグ用端子44A,44B,44Cを介してエミュレータ32へ出力される。
トレース取得回路210は、命令実行解析情報FIFO212、FIFO制御部213、オペランドアクセス情報FIFO214、及び並べ替え論理部215を含む。命令実行解析情報FIFO212は、CPU#1内の制御部201から出力された命令実行解析情報207を取り込むための専用バッファメモリとされ、この命令実行解析情報FIFO212に取り込まれた命令実行解析情報207は、古い順に、後段の並べ替え論理部215に出力されるようになっている。
オペランドアクセス情報FIFO214は、モニタブリッジ206を介して伝達されたオペランドアクセス情報208を取り込むための専用バッファメモリとされ、このオペランドアクセス情報FIFO214に取り込まれたオペランドアクセス情報208は、古い順に、後段の並べ替え論理部215に出力されるようになっている。
命令実行解析情報FIFO212に取り込まれる命令実行解析情報207と、オペランドアクセス情報FIFO214に取り込まれるオペランドアクセス情報208には、デバッグ回路35内で共有されるタイムスタンプタイマ109によって管理される時刻情報に基づくタイムスタンプが付加される。
並べ替え論理部215は、命令実行解析情報FIFO212の出力情報とオペランドアクセス情報FIFO214の出力情報とをCPU#1の処理順序に対応するように一連のトレース情報に並べ替える機能を有する。
FIFO制御部213は、命令実行解析情報FIFO212、オペランドアクセス情報FIFO214、及び並べ替え論理部215の動作を制御する。
トレース出力回路111は、トレースパケット生成論理部216、パラレル・パラレル変換部217を含む。トレースパケット生成論理部216は、並べ替え論理部215の出力データに必要な情報を付加することでパケットデータを形成する。また、パケットデータのサイズを縮小するために、アドレス情報の差分値を求める処理を行う。ホストシステム31が要求している必要十分な情報量のみをパケットデータとする事で、ひとつのパケットデータを出力する時間を短縮する。パラレル・パラレル変換部217は、時分割により、トレースパケット生成論理部216から出力されたパラレルデータをそれよりも小さなサイズのパラレルデータに変換する。変換後のデータは、複数のデバッグ用端子44D,44E,44Fを介してエミュレータ32へ出力される。
図5には、上記CPU#0における制御部101及び実行部103の構成例が示される。
実行部103は、4本のパイプラインとレジスタファイル516と命令アドレス演算器517を含む。4本のパイプラインには、整数パイプライン(ALU)512,513、ロード・ストアパイプライン514、乗算パイプライン(MAC)515を含む。レジスタファイル516には、汎用レジスタ、コントロールレジスタ、システムレジスタなどが含まれる。
制御部101及び実行部103は、特に制限されないが、複数の処理系統(パイプライン)を備えることで、複数の命令を並列に処理可能な構成(スーパースカラ)とされる。制御部101は、命令供給制御及び命令管理部501、命令キュー502、FPU命令発行部503、命令シーケンサ504、命令デコーダ505,506、割り込み例外処理検出部507、デバッグ機能部508、命令発行制御部509、及び制御パイプライン510を含む。命令キュー502は、命令バス104を介してメモリ37から命令をフェッチする。命令キュー502は、命令の先読みも行う。命令キュー502によってフェッチされた命令は、命令デコーダ505,506又は割り込み例外処理検出部507に伝達される。命令デコーダ505,506は、入力された命令をデコードする。このデコード結果は命令発行制御部509に伝達される。割り込み例外処理検出部507は、割り込みの受理や命令実行結果例外の検出を行う。FPU命令発行部503は、FPU102に対して命令を発行する。命令発行制御部509は、実行部103における各部への制御信号の発行制御を行う。命令供給制御及び命令管理部501は、命令供給制御、命令アドレス管理を行う。命令シーケンサ504は、予め定められた順序または手続きに従ってパイプラインの各段階を逐次進める。制御パイプライン510は、命令シーケンサ504の制御下で、実行部103でのパイプライン処理を制御する。デバッグ機能部508は、CPU#0内の各部、例えば命令デコーダ505,506、割り込み例外処理検出部508、実行部103、FPU102等から各種情報を収集し、それを命令実行状態解析情報107として命令実行解析情報FIFO112へ出力する。例えば発生した分岐の種類(分岐情報)は、命令デコーダ505,506から得ることができ、実行した命令の種類(命令デコード情報)は命令デコーダ505,506及び割り込み例外処理検出部507から得ることができる。2命令の実行か、1命令の実行かの情報(命令実行数情報)は、命令供給制御及び命令管理部501、命令デコーダ505,506、制御パイプライン510から得ることができる。分岐元アドレス値は、命令アドレス演算器517から得ることができる。分岐先アドレス値は、割り込み例外処理検出部507、命令シーケンサ504、制御パイプライン510、命令アドレス演算器517から得ることができる。デバッグ専用命令、命令例外、割り込み、例外処理情報は、割り込み例外処理検出部507から得ることができる。リード・ライト、アクセスサイズに関する情報(バスアクセス情報)は、命令デコーダ505,506から得ることができる。FPUレジスタへのリード・ライト、アクセスサイズに関する情報(FPUアクセス情報)は、FPU命令発行部503及びFPU102から得ることができる。
CPU#1における制御部201及び実行部203は、それぞれ上記CPU#0における制御部101及び実行部103と同様に構成される。
次に、上記のように構成されたマイクロコンピュータ34のデバッグについて説明する。
図6には、図1における命令実行解析FIFO112及びオペランドアクセス情報FIFO114の情報蓄積状態が模式的に示される。CPU#0に対応するトレース取得回路109では、制御部101内のデバッグ機能部508によって収集された命令実行解析情報107と、オペランドバス105から得られるオペランドアクセス情報108とが、それぞれ専用の論理回路、すなわち命令実行解析情報FIFO112及びオペランドアクセス情報FIFO114を介して取り込むようにしている。かかる構成をとることで、CPU側から発生し得る複数のトレース情報(命令実行解析情報107とオペランドアクセス情報108)を取得することができる。各トレース情報には、タイムスタンプが付加されており、情報取得時刻の前後関係の把握が容易になっている。しかし、デバッグ対象となるソフトウェアは命令をひとつづつ逐次実行しているため、命令順序と対応する順番に分岐トレース、オペランドトレースを一本のトレース情報にまとめる必要がある。
CPUの命令実行はパイプライン処理とされるため、特にオペランドアクセスは、命令実行後アクセスが完了するタイミングが様々である。そこでトレース情報は、並べ替え論理部115(215)により、以下の処理が行われてから、トレース出力回路111(211)に伝達される。
(A)タイムスタンプ情報を使い、時間の前後関係に基づいて命令実行解析FIFO112(212)、オペランドアクセス情報FIFO114(214)からの情報の取り出し順が決定される。
(B)パイプライン動作の規定を加味して、同時刻のトレース情報に対して順序が決定される。
(C)パイプライン処理上、トレース時刻が逆転しているケースは、正しい順序に並び替えるようにする。
並べ替え論理部115(215)での処理においては、以下のような各トレースの性質を考慮して情報取得のルールが設定される。
分岐トレース手法では、分岐発生時の命令アドレスと分岐先の命令アドレスを必要とする。この二つの情報が揃って、初めてトレース情報として確定する。
オペランドアクセスをトレースする場合、二つの使い方が要求される。すなわち、アクセスした結果をトレースする場合と、アクセス要求が追跡できれば十分な場合である。前者の場合、オペランドが取得できるまでトレース情報が確定しない。後者の場合、アクセスを開始した時点ですぐにトレース可能とされる。また、前者と後者とでは、トレース情報の同時発生や、パイプラインの考慮の有無に違いがある。さらにオペランドアクセスでは、リードとライトでアクセス完了に要する段数が異なる。
リード要求、アクセスサイズ情報、アドレスを出力した後、アクセス先からデータを取得するまでの期間が必要アクセス期間になる。
また、ライト要求、アクセスサイズ情報、アドレスを出力した後、ライトデータを出力した時点でアクセスを完了することができる。設計上、ライトデータをアドレスと同時に出力することも可能で、その場合、リードよりも短い期間で処理が終了する。
以上の各性質を考慮して一連のトレース情報の流れが組み立てられる。つまり、分岐トレースの性質とオペランドトレースの性質との違い、リードアクセスの性質とライトアクセスの性質との違いを把握した上で、どのような順番でトレース情報が発生したか、つまり、CPUの処理順序に合わせて、命令実行解析情報FIFO112(212)とオペランドアクセス情報FIFO114(214)の出力に基づいてひとつのトレース出力を得る。
図7には、スーパースカラでのトレース取得例が示される。
「RD」はリード命令、「WR」はライト命令であり、分岐命令とデータアクセスは同時実行できるものとする。この例では、バスからリード値をトレースし、ライト値をトレースし、トレース出力回路(AUD)111,211は複数事象を出力できないと仮定する。
例えば時刻1において、命令1として演算3が実行され、命令2としてリード命令RD1が同時に実行される。時刻3でRD1によるリードアクセスがトレースされ、上記RD1のトレース結果としてトレース取得回路110(210)に入力される。この場合、上記RD1のトレース結果がそのままトレース取得回路110(210)から出力される。時刻2では、命令1としてリード命令RD2が実行され、命令2として演算4が同時に実行される。時刻5でRD2によるリードアクセスがトレースされ、そのトレース結果がトレース取得回路110(210)に入力される。この場合、上記RD2のトレース結果がそのままトレース取得回路110(210)から出力される。時刻3では、命令1として演算5が実行され、命令2としてライト命令WR1が同時に実行される。時刻6でWR1によるライトアクセスがトレースされ、そのトレース結果が、それがトレース取得回路110(210)から出力される。また、時刻7で、命令1としてライト命令WR2が実行され、命令2として分岐命令1が同時に実行される。分岐トレース手法では、分岐発生時の命令アドレスと分岐先の命令アドレスが必要とされるため、データトレースのWR2と、分岐トレースの分岐1とは、同じ時刻8となる。そこで、並べ替え論理部115(215)での処理においては、パイプライン動作の規定を加味して、同時刻のトレース情報に対して順序が決定される。つまり、並べ替え論理部115(215)の出力は、データトレース:WR2、時刻8が先に出力され、その後に、分岐トレース:分岐1、時刻8が出力される。次に、時刻10で、命令1として分岐2が実行され、命令2としてリード命令RD3が実行される。この場合、分岐2は遅延分岐命令を想定し、RD3の実行が終了するまでCPUがストールされる。この結果、分岐トレースの分岐2と、データトレースのRD3とは、同じ時刻13となる。この場合、並べ替え論理部115(215)での処理においては、パイプライン動作の規定を加味して、同時刻のトレース情報に対して順序が決定される。つまり、「分岐トレース:分岐2、時刻13」が先に出力され、その後に、「データトレース:RD3、時刻13」が出力される。
図8には、スーパースカラでの別のトレース取得例が示される。
「RD」はリード命令、「WR」はライト命令であり、分岐命令とデータアクセスは同時実行できるものとする。この例では、リード値及びライト値をトレースしない、トレース出力回路(AUD)111,211は複数事象を出力できないと仮定する。このような条件下では、時刻10で、命令1として分岐2が実行され、命令2としてリード命令RD3が同時に実行された場合に、時刻10でRD3によるリードアクセスのトレースが取得されてしまう。この結果、データトレースの時刻と分岐トレースの時刻とが逆転する。そこで、並べ替え論理部115(215)での処理においては、パイプライン処理上、トレース時刻が逆転しているケースは、正しい順序に並び替えるようにする。つまり、「分岐トレース:分岐2、時刻13」が先に出力され、その後に、「データトレース:RD3、時刻10」が出力される。
以上のようなトレース結果を、上記のルールに従って外部のエミュレータ32に供給することでエミュレータ32やホストシステム31で、トレース結果を再生する(表示装置に表示する)処理が容易になる。これは、デバッグシステム全体の性能向上に寄与できる。また、マルチコア化された場合に、同一の端子からトレース情報が出力されることがあり、CPU間の前後関係もタイムスタンプをトレース取得時に定義することが可能であるため、トレース結果を再生する処理が容易となる。
《実施の形態2》
マルチコアは、動的にそれぞれのCPUクロックを変更可能とすることにメリットがあるが、様々な周波数で動作しているCPUがあると、以下のような不都合を生ずる虞れがある。
すなわち、(A)命令実行速度が違うために、実行した命令の量はトレースのみでは把握が困難となる。(B)動作周波数ゼロ(いわゆるスリープ状態)にどのCPUがいつ遷移したか不明となる。
上記(A)については、制御部101(201)において命令実行数を指示し、命令実行数を数えるようにすればよい。また、(B)については、制御部101(201)内のデバッグ機能部508によって、スリープ(SLEEP)命令の実行を検出すればよい。
さらに、制御部101(201)内のデバッグ機能部508によって、以下の情報を取得することができる。
CPUの状態変更やCPUの特徴的な命令の実行結果はデバッグにおいて有効な情報と考えられる。SLEEP命令、LDS/STS命令、LDC/STC命令、デバッグ専用命令、TRAP命令浮動小数点命令、キャッシュ制御命令、排他制御命令などの特徴的な命令の実行状態も取得するとよい。また、命令ではないが、CPUの動作を変更する事象、例えば命令実行の結果に起因して発生した例外処理、マニュアルリセット例外など、特定命令の実行結果のトレース機能を設けることで、デバッグ効率を更に向上させることができる。
図9には、デバッグ機能部508でのトレース例が示される。
トレースの種類として、分岐トレースパケット構成、データトレースパケット構成、SLEEP(スリープ)命令トレース、cache(キャッシュ)操作命令トレース、LDS/STS命令トレース、LDC/STC命令トレース、デバッグ専用命令トレースなどを挙げることができる。トレース出力回路(AUD)111,211から出力するトレース情報パケットの構成要素として、出力したCPUの番号(CPUの情報)、分岐の種類(原因情報)、パケット構成情報、分岐先アドレス、分岐元アドレス、タイムスタンプ、最終分岐後命令実行数を挙げることができる。命令を実行することのトレースでは、CPUの情報、命令の種類タイムスタンプの少なくとも三つの情報を取得すれば、トレース情報として意味のあるものになる。分岐トレースパケット構成によれば、分岐命令による分岐、CPUの例外検出、割り込み、例外処理によるプログラムの分岐を把握することができる。データトレースパケット構成によれば、データ転送命令によりメモリ又はI/Oレジスタへリードあるいはライトした内容を把握することができる。SLEEP命令トレースによれば、SLEEP命令実行により低消費電力状態へ遷移したことを把握することができる。cache操作命令トレースによれば、命令やデータのプリフェッチ命令、キャッシュライン無効化命令等の実行と対象アドレスを把握することができる。LDC/STC命令トレースによれば、CPUにおけるコントロールレジスタロード、あるいはストアした命令を実行してCPUやFPUの状態を変更したことを把握することができる。LDS/STS命令トレースによれば、CPU、FPUのシステムレジスタにロード命令あるいはストア命令を実行してCPU、FPUの状態を変更したことを把握することができる。デバッグ専用命令トレースによれば、デバッグ専用命令に伴うCPUの停止(ブレーク)等が発生してCPUの動作状態が変わったことを把握することができる。
図10には、分岐トレースの流れが示される。
先ず、分岐命令実行が確定されるか、例外受理が確定されると(1001)、分岐命令がデコードされるが、後続命令のデコードは中止される(1002)。例外処理では命令をデコードしないが、同様に後続命令のデコードは中止される(1002)。そして、分岐処理が実行されて(1003)、制御部101(201)において、パイプライン処理が停止可能な否かの判別が行われる(1004)。パイプライン処理の停止が可能場合、分岐先命令がフェッチされる(1005)。上記ステップ1011〜1005までの処理はCPU処理とされる。また、デバッグ機能部508では、上記ステップ1002での分岐命令デコードの開始と同時に分岐トレースが開始され(1006)、デバッグ機能部508によって、分岐元/分岐先アドレスや分岐の種類が取得される(1007)。そして、トレース取得回路(TRC)110(210)において、タイムスタンプが付加され、命令実行数が付加されることでトレース情報が生成され(1008)、命令実行解析情報FIFO112(212)に蓄積される(1009)。その後、命令実行解析情報FIFO112(212)の蓄積情報が取り出され、CPU識別子が追加されてから(1010)、トレース出力部111(211)に出力される(1011)。上記ステップ1006〜1011までの処理はTRC取得処理とされる。
図11には、スリープトレースの流れが示される。
先ず、SLEEP命令の実行が確定され(1101)、SLEEP命令がデコードされて実行される(1102,1103)。そして制御部101(201)において、パイプライン処理が停止可能か否かの判別が行われる(1104)。パイプライン処理が停止可能な場合、パイプライン処理が停止されて、CPUは低消費電力(スリープ)状態に遷移される(1105)。上記ステップ1101〜1105までの処理はCPU処理とされる。また、デバッグ機能部508では、上記ステップ1102でのSLEEP命令のデコード開始と同時に、SEEPトレースが開始され(1106)、上記ステップ1103でのSLEEP命令実行における命令アドレスが取得される(1107)。そして、トレース取得回路(TRC)110(210)において、タイムスタンプが付加され、命令実行数が付加されることでトレース情報が生成され(1108)、命令実行解析情報FIFO112(212)に蓄積される(1109)。その後、命令実行解析情報FIFO112(212)の蓄積情報が取り出され、CPU識別子が追加されてから(1110)、トレース出力部111(211)に出力される(1111)。上記ステップ1106〜1111までの処理はTRC取得処理とされる。
図12には、トレース出力回路(AUD)での処理の流れが示される。
ここでは、一例として、SLEEP命令実行結果のトレースが行われた場合の処理が示される。
SLEEP命令実行結果のトレースが行われた場合、トレース出力回路111(211)では、対応するトレース取得回路110(210)からトレース結果が取り込まれる(1201)。そしてトレースパケット生成論理部116(216)において、トレースヘッダ生成(1202)、アドレス差分の生成(1203)、タイムスタンプサイズ変更、命令実行数サイズ変更が行われる(1204)。トレースヘッダ生成(1202)では、どのCPUでSLEEP命令を実行したかを示すデータが作成される。アドレス差分の生成(1203)では、出力情報量の削減のため、前回出力したトレースのアドレス値との差分が求められ、それが出力される。タイムスタンプサイズ変更、命令実行数サイズ変更(1204)では、例えば32bit値から16bit値にサイズが変更される。そして、トレースパケット生成論理部116(211)では、所定のフォーマットに従って出力データを並べることで、AUDパケットの元データの組み立てが行われる(1205)。その後、パラレル・パラレル変換部117(217)においてパラレル・パラレル変換が行われる(1206)。このパラレル・パラレル変換は、例えば8bitバス対応又は16bitバス対応に変換される。そして、出力クロックCLKに同期化され(1207)、複数のデバッグ用端子44A,44B,44C(44D,44E,44F)を介して外部出力される。出力データフォーマットにおいて、命令アドレス差分は可変長部(任意)とされ、タイムスタンプや命令実行数は任意出力の設定が可能とされる。
《実施の形態3》
図2には、上記マイクロコンピュータ34における主要部の別の構成例が示される。
図2に示されるマイクロコンピュータ34が、図1に示されるのと大きく相違するのは、端子マージ論理部219が設けられ、この端子マージン論理部219によって、パラレル・パラレル変換部117,217の出力がマージされてからデバッグ用端子44A,44B,44Cを介して外部出力される点である。端子マージ論理部219では、パラレル・パラレル変換部117,217の出力が時分割されてマージされる。このようにすることで、トレース情報の外部出力に用いられるデバッグ用端子の数は、図1に示される場合に比べて少なくて済む。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
31 ホストシステム
32 エミュレータ
33 ユーザシステムボード
34 マイクロコンピュータ
35 デバッグ回路
37 メモリ
38〜41 周辺機能部
44A,44B,44C,44D,44E,44F デバッグ用端子
101,201 制御部
102,202 FPU
103,203 実行部
104,204 命令バス
105,205 オペランドバス
106,206 モニタブリッジ
109 タイムスタンプタイマ
110,210 トレース取得回路
111,211 トレース出力回路
112,212 命令実行解析情報FIFO
113,213 FIFO制御部
114,214 オペランドアクセス情報FIFO
115,215 並べ替え論理部
116,216 トレースパケット生成論理部
117,217 パラレル・パラレル変換部
501 命令供給制御及び命令管理部
502 命令キュー
503 FPU命令発行部
504 命令シーケンサ
505,506 命令デコーダ
507 割り込み例外処理検出部
509 命令発行制御部
510 制御パイプライン
512,513 整数パイプライン
514 ロード・ストアパイプライン
515 乗算パイプライン
516 レジスタファイル
517 命令アドレス演算器
CPU#0〜#3 中央処理装置

Claims (10)

  1. オペランドバスに結合された実行部と、フェッチされた命令に基づいて上記実行部の動作を制御する制御部と、を含む中央処理装置と、
    上記中央処理装置でのプログラム実行状態のトレース情報を得るデバッグ回路と、を含む情報処理装置であって、
    上記制御部は、上記中央処理装置での命令実行解析情報を収集するデバッグ機能部を含み、
    上記デバッグ回路は、上記デバッグ機能部によって収集された命令実行解析情報と上記オペランドバスから得られる情報とをそれぞれ専用の論理回路を介して取り込むトレース取得回路と、
    上記トレース取得回路の出力を外部出力するためのトレース出力回路と、を含み、
    上記トレース取得回路は、上記デバッグ機能部によって収集された命令実行解析情報と上記オペランドバスから得られる情報とを上記中央処理装置の処理順序に対応するように並べ替える、並べ替え論理部を含むことを特徴とする情報処理装置。
  2. 上記デバッグ回路は、上記専用の論理回路として、上記命令実行解析情報を取り込む第1FIFOと、
    上記オペランドバスから得られる情報を取り込む第2FIFOと、を含み、
    上記第1FIFOに取り込まれる情報と上記第2FIFOに取り込まれる情報には、上記デバッグ回路内で共有されるタイマによって管理される時刻情報に基づくタイムスタンプが付加される請求項1記載の情報処理装置。
  3. 上記並べ替え論理部は、上記第1FIFOの出力情報に付加されているタイムスタンプと、上記第2FIFOの出力情報に付加されているタイムスタンプとに基づいて、上記第1FIFOの出力情報と上記第2FIFOの出力情報とを上記中央処理装置の処理順序に対応するように一連のトレース情報に並べ替える請求項2記載の情報処理装置。
  4. 上記中央処理装置はパイプライン処理可能にされて成る請求項2記載の情報処理装置。
  5. 上記並べ替え論理部は、上記第1FIFOの出力情報に付加されているタイムスタンプと、上記第2FIFOの出力情報に付加されているタイムスタンプとが互いに等しい場合には、上記中央処理装置でのパイプライン処理を考慮して、並べ替え後のトレース情報の配列順を決定する請求項4記載の情報処理装置。
  6. 上記並べ替え論理部は、上記中央処理装置でのパイプライン処理に起因して、上記第1FIFOの出力情報と上記第2FIFOの出力情報との間でトレース時刻が逆転している場合を判別して、並べ替え後のトレース情報の配列順を決定する請求項5記載の情報処理装置。
  7. 上記中央処理装置は複数配置され、
    上記デバッグ回路内の上記トレース取得回路と上記トレース出力回路とは、上記中央処理装置に対応して複数配置されて成る請求項6記載の情報処理装置。
  8. 上記中央処理装置は、上記制御部で分岐命令をフェッチしてそれをデコードする第1処理と、
    後続命令のデコードを中止して、上記分岐命令に基づく分岐処理を上記実行部で実行する第2処理と、
    パイプライン処理を停止可能な否かを上記制御部で判別する第3処理と、
    上記第3処理で、パイプライン処理が停止可能と判断した場合に、上記制御部で分岐先命令をフェッチする第4処理と、を含み、
    上記トレース取得回路は、上記第1処理に応じて分岐トレースを開始し、上記第2処理に応じて、分岐元及び分岐先アドレスを取得し、分岐先の種別情報を取得する処理を含む請求項7記載の情報処理装置。
  9. 上記中央処理装置は、上記制御部でスリープ命令をフェッチしてそれをデコードする第5処理と、
    上記第5処理でのデコード結果に基づいてスリープ命令を上記実行部で実行する第6処理と、
    パイプライン処理が停止可能か否かを上記制御部で判別する第7処理と、
    上記第7処理で、パイプライン処理が停止可能と判断した場合に、低消費電力状態に遷移する第8処理と、を含み、
    上記トレース取得回路は、上記第5処理に応じてスリープトレースを開始し、上記第6処理に応じて命令アドレスを取得する処理を含む請求項8記載の情報処理装置。
  10. 上記複数のトレース出力回路の出力をマージして共通端子を介して外部出力するための論理回路を含む請求項7記載の情報処理装置。
JP2010116469A 2010-05-20 2010-05-20 情報処理装置 Withdrawn JP2011243110A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010116469A JP2011243110A (ja) 2010-05-20 2010-05-20 情報処理装置
US13/111,944 US8527812B2 (en) 2010-05-20 2011-05-19 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010116469A JP2011243110A (ja) 2010-05-20 2010-05-20 情報処理装置

Publications (1)

Publication Number Publication Date
JP2011243110A true JP2011243110A (ja) 2011-12-01

Family

ID=44973475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010116469A Withdrawn JP2011243110A (ja) 2010-05-20 2010-05-20 情報処理装置

Country Status (2)

Country Link
US (1) US8527812B2 (ja)
JP (1) JP2011243110A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016514318A (ja) * 2013-03-13 2016-05-19 インテル・コーポレーション 性能及び正確性のためのマルチスレッドソフトウェアプログラムの記録された実行の視覚化
JP2016126684A (ja) * 2015-01-08 2016-07-11 京セラドキュメントソリューションズ株式会社 集積回路
CN110677299A (zh) * 2019-09-30 2020-01-10 中兴通讯股份有限公司 网络数据采集方法、装置和系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021311B2 (en) 2012-08-28 2015-04-28 Freescale Semiconductor, Inc. Method and apparatus for filtering trace information
US8935577B2 (en) * 2012-08-28 2015-01-13 Freescale Semiconductor, Inc. Method and apparatus for filtering trace information
JP6036089B2 (ja) * 2012-09-25 2016-11-30 日本電気株式会社 データ遷移トレース装置、データ遷移トレース方法、及び、データ遷移トレースプログラム
US10082858B2 (en) 2014-06-23 2018-09-25 Mellanox Technologies, Ltd. Peripheral device assistance in reducing CPU power consumption
US10324513B2 (en) * 2014-08-31 2019-06-18 Mellanox Technologies, Ltd. Control of peripheral device data exchange based on CPU power state
US9910475B2 (en) * 2014-12-23 2018-03-06 Intel Corporation Processor core power event tracing
US10445204B2 (en) * 2015-09-25 2019-10-15 Intel Corporation Instruction and logic for interrupt and exception handling
US10169192B2 (en) * 2015-11-11 2019-01-01 International Business Machines Corporation Automatic collection and presentation of runtime data semantics
US10534688B2 (en) * 2016-09-30 2020-01-14 Intel Corporation Trace hub logic with automatic event triggering
US10365987B2 (en) 2017-03-29 2019-07-30 Google Llc Synchronous hardware event collection
US9875167B1 (en) 2017-03-29 2018-01-23 Google Inc. Distributed hardware tracing
CN109284223B (zh) * 2017-07-21 2023-10-20 超威半导体(上海)有限公司 可配置的调试方法和系统
CN107367991A (zh) * 2017-08-04 2017-11-21 湖南利能科技股份有限公司 一种基于amp的数据采集装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003076577A (ja) 2001-09-04 2003-03-14 Matsushita Electric Ind Co Ltd デバッグ装置
JP2003162426A (ja) 2001-11-28 2003-06-06 Hitachi Ltd 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法
US8312253B2 (en) * 2008-02-22 2012-11-13 Freescale Semiconductor, Inc. Data processor device having trace capabilities and method
GB2459652B (en) * 2008-04-28 2010-09-22 Imagination Tech Ltd Controlling instruction scheduling based on the space in a trace buffer
US20120042212A1 (en) * 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016514318A (ja) * 2013-03-13 2016-05-19 インテル・コーポレーション 性能及び正確性のためのマルチスレッドソフトウェアプログラムの記録された実行の視覚化
JP2016126684A (ja) * 2015-01-08 2016-07-11 京セラドキュメントソリューションズ株式会社 集積回路
CN110677299A (zh) * 2019-09-30 2020-01-10 中兴通讯股份有限公司 网络数据采集方法、装置和系统
US11929884B2 (en) 2019-09-30 2024-03-12 Zte Corporation Network data collection method and device

Also Published As

Publication number Publication date
US8527812B2 (en) 2013-09-03
US20110289357A1 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
JP2011243110A (ja) 情報処理装置
KR101311846B1 (ko) 멀티코어 아키텍쳐의 디버그
US9223676B2 (en) Introducing timing synchronization indicating stall reason in next synchronization window
US7689867B2 (en) Multiprocessor breakpoint
US9195462B2 (en) Techniques for tracing processes in a multi-threaded processor
TWI461908B (zh) 於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術
US9128781B2 (en) Processor with memory race recorder to record thread interleavings in multi-threaded software
US20150347255A1 (en) Debug in a Multicore Architecture
TWI742085B (zh) 用以識別導致遠程異動式執行中止之儲存器的處理器、方法與系統
EP2847683B1 (en) Processor device with instruction trace capabilities
US20210004236A1 (en) Pipeline flattener with conditional triggers
US7334114B2 (en) Real-time monitoring, alignment, and translation of CPU stalls or events
US20090077348A1 (en) Providing a dedicated communication path for compliant sequencers
US7992049B2 (en) Monitoring of memory and external events
CN112540908B (zh) 面向异构众核处理器的轻量级软件调试方法
Hsu et al. System performance analyses on PAC Duo ESL virtual platform
JP2011028308A (ja) 半導体装置及びソフトウェア開発支援装置
WO2009096161A1 (ja) プロセッサ性能解析装置、方法及びシミュレータ
JP2005165825A (ja) トレース情報記録装置
Stollon Multicore Debug
JP2010123050A (ja) 半導体装置
JP2015060341A (ja) 情報処理システム、および情報処理方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130806