[go: up one dir, main page]

JP7378254B2 - マルチプロセッサデバイス - Google Patents

マルチプロセッサデバイス Download PDF

Info

Publication number
JP7378254B2
JP7378254B2 JP2019170809A JP2019170809A JP7378254B2 JP 7378254 B2 JP7378254 B2 JP 7378254B2 JP 2019170809 A JP2019170809 A JP 2019170809A JP 2019170809 A JP2019170809 A JP 2019170809A JP 7378254 B2 JP7378254 B2 JP 7378254B2
Authority
JP
Japan
Prior art keywords
processor
program
debugging
debugged
data
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.)
Active
Application number
JP2019170809A
Other languages
English (en)
Other versions
JP2021047729A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2019170809A priority Critical patent/JP7378254B2/ja
Priority to EP20194260.4A priority patent/EP3796175B1/en
Priority to US17/015,642 priority patent/US20210089310A1/en
Priority to CN202010977278.XA priority patent/CN112527625A/zh
Publication of JP2021047729A publication Critical patent/JP2021047729A/ja
Application granted granted Critical
Publication of JP7378254B2 publication Critical patent/JP7378254B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3644Debugging of software by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

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

Description

本発明は、マルチプロセッサデバイスに関する。
プログラムの開発においてデバッグにかける時間は多く、効率よくデバッグすることが求められている。また、周期制御を行うプログラムの動作をデバッグする際には、プログラムの動作を止めずにプログラムの遷移やデータの情報を参照する必要がある。そのようなデバッグを行うために、デバッグ専用のハードウェアを用いる手法や、プロセッサをデバッグ用に使用する手法などが知られている。
複数のプロセッサから構成されるマルチプロセッサのデバッグ手法として特許文献1に記載の手法が知られている。特許文献1では、複数のプロセッサの中の1つ以上のプロセッサをデバッグ用に使用し、他のデバッグ対象のプロセッサをデバッグする。この手法ではデバッグ対象のプロセッサの異常の検知にウォッチドッグタイマなどを用いている。
特開2007-004364号公報
しかしながら、上述したデバッグ専用のハードウェアを用いる手法では、デバッグ専用のハードウェアを追加することにより、デバッグ時にのみ使用されるもののために回路規模の増大を引き起こすという課題がある。
また、特許文献1に記載されるようなマルチプロセッサのデバッグ手法では、周期的にデータの参照を行うために、デバッグ対象のプロセッサのデータを即座に参照できない、または条件分岐などによる追加処理により参照したいデータが参照できなくなる場合がある、といった課題がある。
本発明はこうした課題に鑑みてなされたものであり、その目的は、マルチプロセッサデバイスのより効率的なデバッグを実現できる技術の提供にある。
本発明のある態様はマルチプロセッサデバイスに関する。このマルチプロセッサデバイスは、第1プロセッサと第2プロセッサとを備えるマルチプロセッサデバイスであって、第1プロセッサのデバッグを第2プロセッサを用いて行う際に、第2プロセッサは、第1プロセッサのプログラムカウンタの値を参照し、参照したプログラムカウンタの値を用いてメモリから命令をフェッチするよう構成される。
本発明によれば、マルチプロセッサデバイスのより効率的なデバッグを実現できる。
実施の形態に係るマルチプロセッサデバイスに含まれる第1プロセッサの機能および構成を示すブロック図。 実施の形態に係るマルチプロセッサデバイスに含まれる第1プロセッサおよび第2プロセッサの、デバッグモードにおける機能および構成を示すブロック図。 デバッグ対象のプログラム部分とデバッグ用のプログラム部分との位置関係の一例を示す図。 デバッグ対象のプログラム部分とデバッグ用のプログラム部分との位置関係の別の例を示す図。 デバッグ対象のプログラム部分とデバッグ用のプログラム部分との位置関係のさらに別の例を示す図。 実施の形態に係るデバッグ手法によるプログラムのデバッグを実行する流れを示す説明図。 デバッグ対象の第1プロセッサおよびデバッグ用の第2プロセッサにおける処理を時系列で示すタイムチャート。
以下、添付図面を参照して実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものではない。実施の形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
モータ制御などの周期的な制御を行うプログラムのデバッグでは、プログラムの動作を止めずにデータを参照する必要がある。実施の形態では、デバッグ専用モジュールを持たずにマルチプロセッサでのデバッグを行うため、デバッグ対象のプロセッサのプログラムカウンタをデバッグ用のプロセッサが参照して命令をフェッチする。これにより、プログラムの動作を止めることなく、デバッグ用のプロセッサがデバッグ対象のプロセッサと同期してデバッグを行うことが可能となる。
図1は、実施の形態に係るマルチプロセッサデバイスに含まれる第1プロセッサ100の機能および構成を示すブロック図である。マルチプロセッサデバイスは、図1に示される第1プロセッサ100と同様の構成を有する少なくともひとつの別のプロセッサをさらに備える。あるいはまた、マルチプロセッサデバイスは、本実施の形態のデバッグ機能が実現可能な程度において互いに異なる構成を有する複数のプロセッサを備えてもよい。本実施の形態は、複数のプロセッサを備えるマルチプロセッサ構成を有するマルチプロセッサデバイスにおけるデバッグ手段に関し、特に複数のプロセッサのうち一部のプロセッサをデバッグ用に使用する際のデバッグ手段に関する。
第1プロセッサ100は、プログラムカウンタ101と、ローカル命令メモリ102と、機能ユニット103と、レジスタファイル104と、ローカルデータメモリ105と、バスインタフェース106と、を備える。
プログラムカウンタ101は、インストラクションポインタ(IP))、逐次制御カウンタ(Sequential Control Counter、SCC)とも称され、ローカル命令メモリ102を参照するためのアドレスを保持する。マルチプロセッサデバイスに含まれる各プロセッサは、自身に固有のプログラムカウンタを有する。
ローカル命令メモリ102は第1プロセッサ100で実行されるプログラムを構成する命令を保持する。第1プロセッサ100は、通常動作時(すなわち、デバッグモードでない場合)、自身のプログラムカウンタ101の値(アドレス)を用いてローカル命令メモリ102から命令を機能ユニット103にフェッチするよう構成される。
機能ユニット103は、プログラムカウンタ101の値(アドレス)によりローカル命令メモリ102を参照した結果得られた命令を受けて、それを処理する。機能ユニット103は、参照した命令のデコードを行い、その結果に応じて各種処理を実行する。機能ユニット103により行われる処理は、レジスタファイル104のデータおよび/またはローカルデータメモリ105のデータを用いた演算と、レジスタファイル104に対するデータの送受信と、ローカルデータメモリ105に対するデータの送受信と、を含む。
レジスタファイル104は、複数のレジスタから構成され、機能ユニット103によって行われる演算や処理のための設定やパラメータなどを保持する。機能ユニット103は、レジスタファイル104に含まれる任意のレジスタの読み出しおよび書き込みを行うことができる。
ローカルデータメモリ105は、第1プロセッサ100で実行されるプログラムのためのデータを保持する。
バスインタフェース106は、第1プロセッサ100が外部にアクセスするためのインタフェースであり、タイマやPWM(Pulse Width Modulation)となどのペリフェラルモジュール(周辺モジュール)や共有メモリや外部バスインタフェースなどが接続される。
図2は、実施の形態に係るマルチプロセッサデバイスに含まれる第1プロセッサ100および第2プロセッサ200の、デバッグモードにおける機能および構成を示すブロック図である。図2の例では、第1プロセッサ100がデバッグされる対象となる(すなわち、デバッグ対象の)プロセッサであり、第2プロセッサ200がデバッグ対象のプロセッサをデバッグするための(すなわち、デバッグ用の)プロセッサである。第2プロセッサ200は第1プロセッサ100と同様の構成を有する。第2プロセッサ200が備えるプログラムカウンタ201、ローカル命令メモリ202、機能ユニット203、レジスタファイル204、ローカルデータメモリ205、バスインタフェース206はそれぞれ、第1プロセッサ100のプログラムカウンタ101、ローカル命令メモリ102、機能ユニット103、レジスタファイル104、ローカルデータメモリ105、バスインタフェース106に対応する。
マルチプロセッサデバイスは、第1プロセッサ100のプログラムカウンタ101の値を第2プロセッサ200が参照可能なように、かつ、第1プロセッサ100のレジスタファイル104およびローカルデータメモリ105のデータを第2プロセッサ200が参照可能なように、構成されている。このような構成は、例えばマルチプロセッサデバイスにおいて、第1プロセッサ100と第2プロセッサ200とを配線により適宜結線することにより実現される。
通常動作時は上述の通り、第1プロセッサ100および第2プロセッサ200はそれぞれが有するプログラムカウンタ101、201を用いて命令のフェッチを行う。
デバッグモードにおいて、デバッグ対象の第1プロセッサ100のデバッグをデバッグ用の第2プロセッサ200を用いて行う際に、第2プロセッサ200は以下の処理を行うよう構成される。
(1)第1プロセッサ100のプログラムカウンタ101の値を参照する。
(2)参照したプログラムカウンタ101の値を用いて第2プロセッサ200のローカル命令メモリ202から命令を、第2プロセッサ200の機能ユニット203にフェッチする。
第2プロセッサ200の機能ユニット203は、参照した第1プロセッサ100のプログラムカウンタ101の値を用いてフェッチされた命令に基づいて、当該命令が第1プロセッサ100のデータを参照することを求める場合には、第1プロセッサ100によって保持されるデータを参照する。例えば、フェッチされた命令が第1プロセッサ100のレジスタファイル104のデータを取得することを求める場合、第2プロセッサ200の機能ユニット203は第1プロセッサ100のレジスタファイル104を参照する。あるいはまた、フェッチされた命令が第1プロセッサ100のローカルデータメモリ105のデータを取得することを求める場合、第2プロセッサ200の機能ユニット203は第1プロセッサ100のローカルデータメモリ105を参照する。
第2プロセッサ200は、参照の結果得られた第1プロセッサ100のデータや、第1プロセッサ100におけるプログラムの遷移情報を、バスインタフェース206を介してダンプ先へストア(格納)する。
第2プロセッサ200で実行されるデバッグ用のプログラムは、第1プロセッサ100で実行されるデバッグ対象のプログラムを元に、参照したい実行時データが扱われている命令の位置(すなわち、アドレス)を考慮して作成される。その結果、第2プロセッサ200のローカル命令メモリ202は、第1プロセッサ100で実行されるデバッグ対象のプログラムが格納される位置に関連付けられた位置に、デバッグ対象のプログラムをデバッグするためのデバッグ用のプログラムを保持することとなる。
図3は、デバッグ対象のプログラム部分301とデバッグ用のプログラム部分302との位置関係の一例を示す図である。デバッグ対象のプログラム部分301は四つの命令すなわち、第1プロセッサ100のローカル命令メモリ102のアドレス「0x30」に保持される「LOAD A @ P1」(第1プロセッサ100においてデータAをロードせよ)と、アドレス「0x34」に保持される「LOAD B @ P1」(第1プロセッサ100においてデータBをロードせよ)と、アドレス「0x38」に保持される「C = A × B」(AとBとの乗算の結果をCとせよ)と、アドレス「0x3c」に保持される「STORE C @ P1」(第1プロセッサ100においてデータCをストアせよ)と、からなる。
デバッグ用のプログラム部分302は四つの命令すなわち、第2プロセッサ200のローカル命令メモリ202のアドレス「0x30」に保持される「NOP」(何もしない)と、アドレス「0x34」に保持される「LOAD A @ P1」(第1プロセッサ100がロードしたデータAをロードせよ)と、アドレス「0x38」に保持される「STORE A @ P2」(第2プロセッサ200においてデータAをストアせよ)と、アドレス「0x3c」に保持される「NOP」と、からなる。
図3の例では、ローカル命令メモリ202におけるデバッグ用のプログラム部分302の開始アドレスは、ローカル命令メモリ102におけるデバッグ対象のプログラム部分301の開始アドレスと一致する。この場合、第2プロセッサ200は、第1プロセッサ100のプログラムカウンタ101の値を参照し、参照したプログラムカウンタ101の値が示すアドレスに保持される命令を第2プロセッサ200のローカル命令メモリ202から取得し、機能ユニット203にフェッチするよう構成される。
図4は、デバッグ対象のプログラム部分301とデバッグ用のプログラム部分302との位置関係の別の例を示す図である。第1プロセッサ100のローカル命令メモリ102におけるデバッグ対象のプログラム部分301のアドレスは図3の例のそれと同じである。しかしながら、第2プロセッサ200のローカル命令メモリ202においてデバッグ用のプログラム部分302が格納されているアドレスは、対応するデバッグ対象のプログラム部分301が格納されているアドレスと一致しない。図4の例では、デバッグ対象のプログラム部分301が格納されているアドレス+4のアドレスに、デバッグ用のプログラム部分302が格納される。
この場合、第2プロセッサ200は、第1プロセッサ100のプログラムカウンタ101の値を参照し、参照したプログラムカウンタ101の値が示すアドレスに「4」を加算して得られるアドレスに保持される命令を第2プロセッサ200のローカル命令メモリ202から取得し、機能ユニット203にフェッチするよう構成される。
図5は、デバッグ対象のプログラム部分301とデバッグ用のプログラム部分302との位置関係のさらに別の例を示す図である。図5の例では、デバッグ対象のプログラム部分301が格納されているアドレス-8のアドレスに、デバッグ用のプログラム部分302が格納される。この場合、第2プロセッサ200は、第1プロセッサ100のプログラムカウンタ101の値を参照し、参照したプログラムカウンタ101の値が示すアドレスに「8」を減算して得られるアドレスに保持される命令を第2プロセッサ200のローカル命令メモリ202から取得し、機能ユニット203にフェッチするよう構成される。
図6は、実施の形態に係るデバッグ手法によるプログラムのデバッグを実行する流れを示す説明図である。デバッグ対象の第1プロセッサ100は、データのロードとそのデータを用いた乗算を行う。デバッグ用の第2プロセッサ200は、第1プロセッサ100がロードしたデータを確認するために、データを参照してダンプを行う。
図6の上段の波形図において、一行目は第1プロセッサ100、第2プロセッサ200に共通して入力されるクロック信号を示す。二行目は第1プロセッサ100のプログラムカウンタ101の値を示す。デバッグモードにおいて第2プロセッサ200もこの値を用いて命令のフェッチを行う。三行目は、二行目で示されるプログラムカウンタ101の値の時にデバッグ対象の第1プロセッサ100が実行する命令を示す。図6の例では、第1プロセッサ100は、プログラムカウンタ101が「0x30」と「0x34」の時にそれぞれデータのロードを行い、「0x38」の時にロードしてきたデータを用いて乗算を行い、「0x3c」の時に乗算した結果のストアを行う。四行目は、二行目で示されるプログラムカウンタ101の値の時にデバッグ用の第2プロセッサ200が実行する命令を示す。図6の例では、第2プロセッサ200は、プログラムカウンタ101が「0x30」と「0x3c」の時にNOP命令を実行し、「0x34」の時に第1プロセッサ100が「0x30」の時にロードしたデータのロードを行い、「0x38」の時にロードしたデータをデバッグ用のダンプ先へストアするための処理を行う。
図7は、デバッグ対象の第1プロセッサ100およびデバッグ用の第2プロセッサ200における処理を時系列で示すタイムチャートである。図7には、図6で示した第2プロセッサ200によるデータの参照を、周期Tで繰り返し(すなわち、周期的に)実行している様子が示されている。図7に示される例では、第1プロセッサ100は周期的な制御を行うための周期制御プログラムを実行し、したがってローカル命令メモリ102には周期制御プログラムを構成する命令が格納されている。周期制御プログラムはデバッグ対象となる部分とならない部分とを有する。図7の例では、S101、S102、S104で示される、参照対象の情報を第1プロセッサ100が所有した状態になるときのプログラム部分がデバッグ対象となる部分であり、S103の追加処理を含むそれ以外の部分がデバッグ対象とならない部分である。
S101で、第1プロセッサ100は参照対象の情報を所有している状態となる。S101では、参照対象の情報の読み出しや演算などが行われる。S101に対応する処理を参照情報所有処理という。ここで、第2プロセッサ200は第1プロセッサ100のプログラムカウンタ101を用いて動作するため、S201で、参照対象の情報を第1プロセッサ100が所有している間に第2プロセッサ200がその情報を参照する。S102の参照情報所有処理、S202の参照処理はそれぞれS101、S202と同様である。S103では、分岐処理やメモリアクセスの追加レイテンシなどの追加処理が発生し、第1プロセッサ100において追加の処理時間が発生する。しかしながら、第2プロセッサ200は第1プロセッサ100の参照情報所有処理と同期してデバッグを開始するよう構成されるので、第2プロセッサ200はS103の追加処理の間、データを参照することなく待機する。そしてS101、S102と同様にS104で参照対象の情報を第1プロセッサ100が所有してから、S203で第2プロセッサ200が第1プロセッサ100のデータを参照している。
本実施の形態に係るマルチプロセッサデバイスによると、デバッグ対象の第1プロセッサ100のプログラムカウンタ101の値を用いて、デバッグ用の第2プロセッサ200が命令をフェッチすることで、デバッグ対象の挙動に同期してデータを参照することが可能になる。
また、本実施の形態に係るマルチプロセッサデバイスでは、複数のプロセッサのなかからデバッグ用のプロセッサを設定する構成において、デバッグ専用のハードウェアを追加することなく、デバッグ対象の挙動に同期して所望のデータを参照することができる。
一般に、マルチプロセッサ構成において、特定のプロセッサをほかのプロセッサの動作のデバッグに用いる際に、デバッグ対象のプロセッサの動作の細かい進み具合が把握できないため、演算途中のデータの参照が難しいという課題がある。本実施の形態に係るマルチプロセッサデバイスでは、デバッグ対象のプログラムのプログラムカウンタに対応したデバッグ用のプログラムを作成し、デバッグ対象のプロセッサのプログラムカウンタをデバッグ用のプロセッサが参照しその値を用いて命令をフェッチしデバッグを行うことで、デバッグ対象のプロセッサの動作の進み具合に同期した形でデバッグを実行することができる。これにより、演算途中のデータの参照がより容易となり、より効率的、効果的なデバッグを行うことができる。
また、本実施の形態に係るマルチプロセッサデバイスでは、デバッグ対象のプログラムの格納アドレスと、対応するデバッグ用のプログラムの格納アドレスと、が所定の関係を有する。したがって、デバッグ対象のプログラムをデバッグする際に、対応するデバッグ用のプログラムの格納アドレスを別途サーチする必要はなく、デバッグ対象のプログラムの格納アドレス自身からデバッグ用のプログラムの格納アドレスを特定することができる。
以上、実施の形態に係るマルチプロセッサデバイスの構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
発明は上記実施の形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100 第1プロセッサ、 101 プログラムカウンタ、 102 ローカル命令メモリ、 103 機能ユニット、 104 レジスタファイル、 105 ローカルデータメモリ、 106 バスインタフェース。

Claims (6)

  1. 第1プロセッサと第2プロセッサとを備えるマルチプロセッサデバイスであって、
    前記第1プロセッサのデバッグを前記第2プロセッサを用いて行う際に、前記第2プロセッサは、前記第1プロセッサのプログラムカウンタの値を参照し、参照したプログラムカウンタの値を用いてメモリから命令をフェッチするよう構成されるマルチプロセッサデバイス。
  2. 前記第2プロセッサの機能ユニットは、参照したプログラムカウンタの値を用いてフェッチされた命令に基づいて、前記第1プロセッサによって保持されるデータを参照する請求項1に記載のマルチプロセッサデバイス。
  3. 前記第1プロセッサおよび前記第2プロセッサはそれぞれ固有のプログラムカウンタを有する請求項1または2に記載のマルチプロセッサデバイス。
  4. 前記第2プロセッサは、通常動作時、前記第2プロセッサのプログラムカウンタの値を用いて前記メモリから命令をフェッチするよう構成される請求項3に記載のマルチプロセッサデバイス。
  5. 前記メモリは、前記第1プロセッサで実行されるデバッグ対象のプログラムが格納される位置に関連付けられた位置に、デバッグ対象のプログラムをデバッグするためのプログラムを保持する請求項1から4のいずれか一項に記載のマルチプロセッサデバイス。
  6. 前記第1プロセッサは周期的な制御を行うためのプログラムを実行し、当該プログラムはデバッグ対象となる部分とならない部分とを有する請求項1から5のいずれか一項に記載のマルチプロセッサデバイス。
JP2019170809A 2019-09-19 2019-09-19 マルチプロセッサデバイス Active JP7378254B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019170809A JP7378254B2 (ja) 2019-09-19 2019-09-19 マルチプロセッサデバイス
EP20194260.4A EP3796175B1 (en) 2019-09-19 2020-09-03 Non intrusive multicore debugging based on pc counter
US17/015,642 US20210089310A1 (en) 2019-09-19 2020-09-09 Multiprocessor device
CN202010977278.XA CN112527625A (zh) 2019-09-19 2020-09-17 多处理器设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019170809A JP7378254B2 (ja) 2019-09-19 2019-09-19 マルチプロセッサデバイス

Publications (2)

Publication Number Publication Date
JP2021047729A JP2021047729A (ja) 2021-03-25
JP7378254B2 true JP7378254B2 (ja) 2023-11-13

Family

ID=72355840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019170809A Active JP7378254B2 (ja) 2019-09-19 2019-09-19 マルチプロセッサデバイス

Country Status (4)

Country Link
US (1) US20210089310A1 (ja)
EP (1) EP3796175B1 (ja)
JP (1) JP7378254B2 (ja)
CN (1) CN112527625A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239836B1 (en) 2008-03-07 2012-08-07 The Regents Of The University Of California Multi-variant parallel program execution to detect malicious code injection
JP2013061783A (ja) 2011-09-13 2013-04-04 Toyota Motor Corp マルチコア・プロセッサ
JP2018088048A (ja) 2016-11-28 2018-06-07 ルネサスエレクトロニクス株式会社 マルチプロセッサ及びマルチプロセッサシステム
JP2019008700A (ja) 2017-06-28 2019-01-17 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0720093B1 (en) * 1994-12-28 2001-11-14 Kabushiki Kaisha Toshiba Microprocessor and debug system
EP0762280B1 (en) * 1995-08-30 2001-11-14 Motorola, Inc. Data processor with built-in emulation circuit
US7793261B1 (en) * 1999-10-01 2010-09-07 Stmicroelectronics Limited Interface for transferring debug information
WO2001063434A1 (en) * 2000-02-24 2001-08-30 Bops, Incorporated Methods and apparatus for dual-use coprocessing/debug interface
US7328331B2 (en) * 2005-01-25 2008-02-05 Hewlett-Packard Development Company, L.P. Method and system of aligning execution point of duplicate copies of a user program by copying memory stores
JP4633553B2 (ja) 2005-06-22 2011-02-16 ルネサスエレクトロニクス株式会社 デバッグシステム、デバッグ方法およびプログラム
JP5329983B2 (ja) * 2009-01-08 2013-10-30 株式会社東芝 デバッグ支援装置
US8275977B2 (en) * 2009-04-08 2012-09-25 Freescale Semiconductor, Inc. Debug signaling in a multiple processor data processing system
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム
US8713370B2 (en) * 2011-08-11 2014-04-29 Apple Inc. Non-intrusive processor tracing
US9710349B2 (en) * 2013-11-05 2017-07-18 Texas Instruments Incorporated Storing first computer trace information in memory of second computer
TW201635144A (zh) * 2015-03-16 2016-10-01 啟碁科技股份有限公司 用於追蹤程式執行狀態的方法與多核心處理系統
CN107301102B (zh) * 2017-06-22 2020-05-26 湖南国科微电子股份有限公司 一种处理器调试方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239836B1 (en) 2008-03-07 2012-08-07 The Regents Of The University Of California Multi-variant parallel program execution to detect malicious code injection
JP2013061783A (ja) 2011-09-13 2013-04-04 Toyota Motor Corp マルチコア・プロセッサ
JP2018088048A (ja) 2016-11-28 2018-06-07 ルネサスエレクトロニクス株式会社 マルチプロセッサ及びマルチプロセッサシステム
JP2019008700A (ja) 2017-06-28 2019-01-17 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
US20210089310A1 (en) 2021-03-25
CN112527625A (zh) 2021-03-19
JP2021047729A (ja) 2021-03-25
EP3796175B1 (en) 2024-01-10
EP3796175A1 (en) 2021-03-24

Similar Documents

Publication Publication Date Title
JP5611756B2 (ja) プログラム・フロー制御
US8549258B2 (en) Configurable processing apparatus and system thereof
JP4222370B2 (ja) デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US8910126B2 (en) Compiling source code for debugging with variable value restoration based on debugging user activity
RU2012147005A (ru) Средство разделенной загрузки/сохранения и команда для него
JP2003131902A (ja) ソフトウェアデバッガ、システムレベルデバッガ、デバッグ方法、及びデバッグプログラム
KR100303712B1 (ko) 파이프라인기계에서의어드레스파이프라인을위한방법및장치
CN110892384A (zh) 对处理器未定义行为依赖的重放时间行程跟踪
JP2006178646A (ja) 情報処理装置、情報処理方法、半導体装置、コンピュータプログラム
JPH01310441A (ja) データ処理装置
US20080082802A1 (en) Microcomputer debugging system
JP7378254B2 (ja) マルチプロセッサデバイス
JP2013161484A (ja) 再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
US20170228304A1 (en) Method and device for monitoring the execution of a program code
US9032255B2 (en) Semiconductor device and control method thereof
JP2001014161A (ja) プログラマブルコントローラ
US9342359B2 (en) Information processing system and information processing method
JP2520158B2 (ja) ディジタルシグナルプロセッサのデバッグ方式
JP6127883B2 (ja) 半導体装置および半導体装置の動作制御方法
JP2010033323A (ja) マルチプロセッサ及びそれをデバッグするデバッグ装置並びに前記マルチプロセッサをデバッグするデバッグ方法
JP2020140290A (ja) 中央演算処理装置
JP2010211654A (ja) データ転送方法および装置
JP2012150589A (ja) 演算装置
JPS6214240A (ja) プログラム検査方式

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230828

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: 20231002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231031

R151 Written notification of patent or utility model registration

Ref document number: 7378254

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151