JP6981920B2 - 半導体装置、およびデバッグ方法 - Google Patents
半導体装置、およびデバッグ方法 Download PDFInfo
- Publication number
- JP6981920B2 JP6981920B2 JP2018100239A JP2018100239A JP6981920B2 JP 6981920 B2 JP6981920 B2 JP 6981920B2 JP 2018100239 A JP2018100239 A JP 2018100239A JP 2018100239 A JP2018100239 A JP 2018100239A JP 6981920 B2 JP6981920 B2 JP 6981920B2
- Authority
- JP
- Japan
- Prior art keywords
- processor core
- core
- program
- processing result
- circuit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Tests Of Electronic Circuits (AREA)
- Hardware Redundancy (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
<全体構成>
図1は、実施の形態1に従うデバッグシステム1000の構成例を示す模式図である。図1を参照して、デバッグシステム1000は、マイクロコンピュータ100と、エミュレータ200と、ホストマシン300とを含む。
実施の形態1では、図3に示すエラー信号出力機能と、後述のプロセッサコア10の機能とを利用して、メインコア11のプログラム実行状態を継続しつつ、ブレークポイントの設定によりロックステップコア12をブレークさせて、ロックステップコア12の内部情報(例えば、汎用レジスタの値等)が取得される。また、メイン処理結果とロックステップ処理結果との一致判定機能を利用することで、ロックステップコア12の内部情報がメインコア11の内部情報と同一であることも保証される。以下、実施の形態1に従うプロセッサコア10の構成等について具体的に説明する。
図4を参照して、プロセッサコア10は、命令実行部102と、ブレークポイント設定レジスタ104と、ブレークポイント検出部106と、不一致検出設定レジスタ108と、要求出力回路110とを含む。プロセッサコア10は、汎用レジスタ、専用レジスタ等の各種レジスタを含む。以下では、代表的に、図4に示すプロセッサコア10がロックステップコア12であるとして説明する。
図6は、実施の形態1に従うデバッグシステム1000が実行する処理手順を説明するための図である。
実施の形態1によると、メインコアの実行状態を維持しつつロックステップコアをブレーク状態にすることで、ロックステップコアの内部情報を取得できる。また、ロックステップコアの内部情報は、メインコアの内部情報と同一であることも保証される。すなわち、メインコアの実行状態を維持したまま内部情報を取得するノンブレークデバッグを実現できる。これにより、メインコアの動作を停止する必要がないため、デバッグ作業を効率的に進めることができるとともに、動作停止に起因する電子部品(例えば、モータ)の破損等を防止することもできる。
実施の形態2では、ロックステップコア12を利用したデバッグ機能の他の例について説明する。
実施の形態2において、ロックステップコア12Aにはメインコア11Aとは異なるデバッグ設定が行なわれる。具体的には、メインコア11の初期化対象レジスタおよびロックステップコア12の初期化対象レジスタにそれぞれ異なる値が設定された状態で、デバッグ対象のプログラムが実行される。ここで、初期化対象レジスタの初期化漏れが発生していた場合(すなわち、未初期化レジスタが存在していた場合)を想定する。
図8は、実施の形態2に従うデバッグシステム1000が実行する処理手順を説明するための図である。
実施の形態2によると、プログラミングミスとして頻発する未初期化レジスタへのアクセス違反を動的に検出できる。これにより、コンパイラおよびコード解析による静的検出、あるいは大規模検出回路を搭載する必要がなく、デバッグ作業をより効率的に行なうことができる。
実施の形態3では、ロックステップコア12を利用したデバッグ機能のさらに他の例について説明する。
実施の形態3において、ロックステップコア12Bにはメインコア11Bとは異なるデバッグ設定が行なわれる。具体的には、ロックステップコア12の命令バッファのみに任意サイクル分の命令が注入(追加)され、ロックステップコア12のプログラムの実行をメインコア11のプログラムの実行よりも任意サイクル分遅らせる。
図10は、実施の形態3に従うデバッグシステム1000が実行する処理手順を説明するための図である。ここでは、エミュレータ200は、ホストマシン300に接続されており、セレクタ30を介して、デバッグ制御回路21,22に指示可能な状態であるとする。
実施の形態3によると、ブレーク時点の内部情報と、ブレーク時点よりも所定サイクル分前の時点での内部情報を同時に取得できる。また、ブレーク時点よりも所定サイクル分前の時点から、ステップ実行等を用いたデバッグを行ない、ブレーク時点までの動作を確認できる。これにより、ブレークした原因の究明が容易となりデバッグ作業をより効率化することができる。
上述した実施の形態において、その他の実施の形態で説明した処理や構成を適宜採用して実施する場合であってもよい。
Claims (12)
- 第1プロセッサコアと、
前記第1プロセッサコアと冗長な構成を有する第2プロセッサコアと、
前記第1プロセッサコアのための第1デバッグ回路と、
前記第2プロセッサコアのための第2デバッグ回路とを備え、
前記第2デバッグ回路は、前記第2プロセッサコアに対して前記第1プロセッサコアとは異なるデバッグに関する設定を行ない、
前記第1プロセッサコアの第1処理結果と前記第2プロセッサコアの第2処理結果とが一致しているか否かを判定する判定回路と、
前記第1および第2プロセッサコアによるプログラムの実行を停止させるエラー信号を出力可能なエラー制御回路とをさらに備え、
前記第1処理結果と前記第2処理結果とが不一致である場合であっても、前記デバッグに関する設定に基づいて、前記第1プロセッサコアが前記プログラムを実行しており前記第2プロセッサコアが前記プログラムの実行を停止している場合には、前記エラー制御回路は、前記エラー信号の出力を無効にする、半導体装置。 - 前記第1および第2デバッグ回路の少なくとも一方を選択して、選択されたデバッグ回路にエミュレータからの指示を与える選択回路をさらに備え、
前記第1および第2デバッグ回路の各々は、前記エミュレータからの指示に従って、対応するプロセッサコアに対してデバッグに関する設定を行なう、請求項1に記載の半導体装置。 - 前記エラー制御回路は、前記第1および第2プロセッサコアが前記プログラムを実行している状態であって、かつ前記第1処理結果と前記第2処理結果とが不一致である場合には、前記エラー信号の出力を有効にする、請求項1に記載の半導体装置。
- 前記第2デバッグ回路は、前記第2プロセッサコアによる前記プログラムの実行を停止させるブレークポイントを設定し、
前記第2プロセッサコアによる前記プログラムの実行が前記ブレークポイントに到達した時点における前記第1処理結果および前記第2処理結果が一致している場合、前記第2プロセッサコアは、前記プログラムの実行を停止する、請求項1に記載の半導体装置。 - 前記第2デバッグ回路は、前記プログラムの実行を停止している前記第2プロセッサコアの内部情報を取得する、請求項1に記載の半導体装置。
- 前記第2プロセッサコアは、
前記プログラムに含まれる命令を実行する命令実行部と、
前記命令実行部の実行アドレスと、前記第2デバッグ回路により設定されたブレークポイントとに基づいて、前記ブレークポイントへの到達の有無を検出するブレークポイント検出回路と、
前記ブレークポイント検出回路の検出結果と、前記判定回路の判定結果とに基づいて、前記プログラムの実行を停止させるブレーク要求信号を前記命令実行部へ出力する要求出力回路とを含み、
前記要求出力回路は、前記ブレークポイントへの到達が検出され、かつ前記第1処理結果および前記第2処理結果が一致している場合に、前記ブレーク要求信号を前記命令実行部へ出力する、請求項4に記載の半導体装置。 - 第1プロセッサコアと、
前記第1プロセッサコアと冗長な構成を有する第2プロセッサコアと、
前記第1プロセッサコアのための第1デバッグ回路と、
前記第2プロセッサコアのための第2デバッグ回路とを備え、
前記第2デバッグ回路は、前記第2プロセッサコアに対して前記第1プロセッサコアとは異なるデバッグに関する設定を行ない、
前記第1プロセッサコアの第1処理結果と前記第2プロセッサコアの第2処理結果とが一致しているか否かを判定する判定回路と、
前記判定回路の判定結果に基づいて、前記第1および第2プロセッサコアによるプログラムの実行を停止させるエラー信号を出力可能なエラー制御回路とをさらに備え、
前記第1プロセッサコアの初期化対象レジスタには第1の値が設定され、
前記第2プロセッサコアの初期化対象レジスタには前記第1の値とは異なる第2の値が設定され、
前記第1および第2プロセッサコアの各々は、前記第1の値および前記第2の値が設定された後に前記プログラムの実行を開始して、前記プログラムにより指定される初期化対象レジスタに前記プログラムに従う初期値を書き込む、半導体装置。 - 前記第1および第2プロセッサコアが前記プログラムを実行している状態であって、かつ前記第1処理結果と前記第2処理結果とが不一致である場合に前記エラー制御回路から出力される前記エラー信号に基づいて、前記第1プロセッサコアおよび前記第2プロセッサコアの各々は、前記プログラムの実行を停止する、請求項7に記載の半導体装置。
- 前記第1デバッグ回路は、停止した前記第1プロセッサコアの内部情報を取得し、前記第2デバッグ回路は、停止した前記第2プロセッサコアの内部情報を取得する、請求項8に記載の半導体装置。
- 前記エラー制御回路による前記エラー信号の出力機能は無効化されており、
前記第2デバッグ回路は、所定サイクル分の命令を前記第2プロセッサコアの命令バッファに注入し、
前記第2プロセッサコアは、前記第1プロセッサコアに対して前記所定サイクル分だけ遅れて前記プログラムを実行し、
前記第1プロセッサコアによる前記プログラムの実行が停止した場合、前記第2プロセッサコアは前記プログラムの実行を停止する、請求項1に記載の半導体装置。 - 前記第1デバッグ回路は、停止した前記第1プロセッサコアの内部情報を取得し、前記第2デバッグ回路は、停止した前記第2プロセッサコアの内部情報を取得する、請求項10に記載の半導体装置。
- 第1プロセッサコアと、前記第1プロセッサコアと冗長な構成を有する第2プロセッサコアとを備えるコンピュータにより実行されるデバッグ方法であって、
前記第2プロセッサコアに対して前記第1プロセッサコアとは異なるデバッグに関する設定を実行するステップと、
前記第1プロセッサコアの第1処理結果と前記第2プロセッサコアの第2処理結果とが一致しているか否かを判定するステップと、
前記第1および第2プロセッサコアによるプログラムの実行を停止させるエラー信号を出力するステップとを含み、
前記出力するステップは、前記第1処理結果と前記第2処理結果とが不一致である場合であっても、前記デバッグに関する設定に基づいて、前記第1プロセッサコアが前記プログラムを実行しており前記第2プロセッサコアが前記プログラムの実行を停止している場合には、前記エラー信号の出力を無効にするステップを含む、デバッグ方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018100239A JP6981920B2 (ja) | 2018-05-25 | 2018-05-25 | 半導体装置、およびデバッグ方法 |
US16/406,845 US10970191B2 (en) | 2018-05-25 | 2019-05-08 | Semiconductor device and debug method |
CN201910398237.2A CN110532164B (zh) | 2018-05-25 | 2019-05-14 | 半导体设备和调试方法 |
EP19175046.2A EP3572943B1 (en) | 2018-05-25 | 2019-05-17 | Semiconductor device and debug method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018100239A JP6981920B2 (ja) | 2018-05-25 | 2018-05-25 | 半導体装置、およびデバッグ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019204388A JP2019204388A (ja) | 2019-11-28 |
JP6981920B2 true JP6981920B2 (ja) | 2021-12-17 |
Family
ID=66589407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018100239A Active JP6981920B2 (ja) | 2018-05-25 | 2018-05-25 | 半導体装置、およびデバッグ方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10970191B2 (ja) |
EP (1) | EP3572943B1 (ja) |
JP (1) | JP6981920B2 (ja) |
CN (1) | CN110532164B (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10922203B1 (en) * | 2018-09-21 | 2021-02-16 | Nvidia Corporation | Fault injection architecture for resilient GPU computing |
CN115016997B (zh) * | 2022-08-08 | 2022-11-18 | 南京芯驰半导体科技有限公司 | 慢时钟域lockstep模块中寄存器的快速诊断系统及方法 |
US11892505B1 (en) * | 2022-09-15 | 2024-02-06 | Stmicroelectronics International N.V. | Debug and trace circuit in lockstep architectures, associated method, processing system, and apparatus |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781753A (en) * | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
CN1279449C (zh) * | 1994-12-28 | 2006-10-11 | 株式会社东芝 | 微处理器 |
US7526422B1 (en) * | 2001-11-13 | 2009-04-28 | Cypress Semiconductor Corporation | System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller |
US7296259B2 (en) * | 2002-09-11 | 2007-11-13 | Agere Systems Inc. | Processor system with cache-based software breakpoints |
US20050154573A1 (en) * | 2004-01-08 | 2005-07-14 | Maly John W. | Systems and methods for initializing a lockstep mode test case simulation of a multi-core processor design |
JP2008009721A (ja) * | 2006-06-29 | 2008-01-17 | Nec Electronics Corp | 評価システム及びその評価方法 |
JP2009271894A (ja) * | 2008-05-12 | 2009-11-19 | Toshiba Corp | 半導体集積回路 |
JP2010117813A (ja) | 2008-11-12 | 2010-05-27 | Nec Electronics Corp | デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム |
US8275977B2 (en) * | 2009-04-08 | 2012-09-25 | Freescale Semiconductor, Inc. | Debug signaling in a multiple processor data processing system |
US8108730B2 (en) * | 2010-01-21 | 2012-01-31 | Arm Limited | Debugging a multiprocessor system that switches between a locked mode and a split mode |
US8058916B2 (en) * | 2010-04-15 | 2011-11-15 | Xilinx, Inc. | Lockstep synchronization and maintenance |
US9146835B2 (en) * | 2012-01-05 | 2015-09-29 | International Business Machines Corporation | Methods and systems with delayed execution of multiple processors |
JP2014132384A (ja) | 2013-01-04 | 2014-07-17 | Renesas Electronics Corp | マイクコンピュータ及びその制御方法 |
US9891917B2 (en) * | 2013-03-06 | 2018-02-13 | Infineon Technologies Ag | System and method to increase lockstep core availability |
US9384109B2 (en) * | 2014-04-17 | 2016-07-05 | Texas Instruments Deutschland Gmbh | Processor with debug pipeline |
JP6360387B2 (ja) * | 2014-08-19 | 2018-07-18 | ルネサスエレクトロニクス株式会社 | プロセッサシステム、エンジン制御システム及び制御方法 |
US10102050B2 (en) * | 2015-02-05 | 2018-10-16 | Microchip Technology Incorporated | System and method for generating cross-core breakpoints in a multi-core microcontroller |
US10776115B2 (en) * | 2015-09-19 | 2020-09-15 | Microsoft Technology Licensing, Llc | Debug support for block-based processor |
CN105354136B (zh) * | 2015-09-25 | 2018-06-15 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
CN105224454B (zh) * | 2015-09-25 | 2018-06-05 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
US9852045B2 (en) * | 2015-10-13 | 2017-12-26 | International Business Machines Corporation | Debugging program code |
JP2019061392A (ja) * | 2017-09-26 | 2019-04-18 | ルネサスエレクトロニクス株式会社 | マイクロコントローラ及びマイクロコントローラの制御方法 |
US10802932B2 (en) * | 2017-12-04 | 2020-10-13 | Nxp Usa, Inc. | Data processing system having lockstep operation |
US10621067B1 (en) * | 2018-02-05 | 2020-04-14 | Xilinx, Inc. | Data unit breakpointing circuits and methods |
US11036578B2 (en) * | 2018-04-12 | 2021-06-15 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and memory systems including the same |
US10949203B2 (en) * | 2019-06-29 | 2021-03-16 | Intel Corporation | Technologies for ensuring functional safety of an electronic device |
-
2018
- 2018-05-25 JP JP2018100239A patent/JP6981920B2/ja active Active
-
2019
- 2019-05-08 US US16/406,845 patent/US10970191B2/en active Active
- 2019-05-14 CN CN201910398237.2A patent/CN110532164B/zh active Active
- 2019-05-17 EP EP19175046.2A patent/EP3572943B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3572943A1 (en) | 2019-11-27 |
US20190361786A1 (en) | 2019-11-28 |
CN110532164B (zh) | 2024-01-09 |
JP2019204388A (ja) | 2019-11-28 |
US10970191B2 (en) | 2021-04-06 |
EP3572943B1 (en) | 2023-05-10 |
CN110532164A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6915416B2 (en) | Apparatus and method for microcontroller debugging | |
JP5414292B2 (ja) | 不良解析装置と方法及びプログラム | |
US7673188B2 (en) | System and method for controlling synchronous functional microprocessor redundancy during test and method for determining results | |
TWI544410B (zh) | 利用執行單步驟以進行編碼診斷 | |
JP6981920B2 (ja) | 半導体装置、およびデバッグ方法 | |
JPH011039A (ja) | インサーキット・エミュレータ | |
JPH11110254A (ja) | ソフトウェアをデバッグする際に例外を識別するための装置および方法 | |
TWI361978B (en) | Method for debugging a computer system | |
US20090044057A1 (en) | System and Method for Controlling Synchronous Functional Microprocessor Redundancy during Test and Analysis | |
US9405315B2 (en) | Delayed execution of program code on multiple processors | |
US10078113B1 (en) | Methods and circuits for debugging data bus communications | |
US20070226418A1 (en) | Processor and method for controlling processor | |
JP2008507025A (ja) | 集積回路テスト用エミュレーション及びデバッグインターフェイス | |
US20130238948A1 (en) | Semiconductor integrated circuit | |
KR20070035570A (ko) | 에뮬레이션 및 디버그 시스템, 집적 회로 목표 장치 및에뮬레이션 방법 | |
US10120737B2 (en) | Apparatus for detecting bugs in logic-based processing devices | |
CN118093248A (zh) | Str调试的故障确定方法、装置、电子设备及存储介质 | |
JP2967741B2 (ja) | Cpu互換性テスト装置 | |
JP2014232478A (ja) | 動作監視装置および動作監視方法 | |
US20080072212A1 (en) | Semiconductor integrated circuit including a monitor unit | |
JPH09237201A (ja) | マイクロコンピュータアナライザ | |
JP2005267349A (ja) | プロセッシングモジュールおよびその制御方法 | |
JPH01184551A (ja) | プログラムのデバッギング方式 | |
JP2004185356A (ja) | デバッグ装置 | |
JPH0695913A (ja) | デバッグ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201008 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210930 |
|
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: 20211102 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6981920 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |