JP5414292B2 - 不良解析装置と方法及びプログラム - Google Patents

不良解析装置と方法及びプログラム Download PDF

Info

Publication number
JP5414292B2
JP5414292B2 JP2009018374A JP2009018374A JP5414292B2 JP 5414292 B2 JP5414292 B2 JP 5414292B2 JP 2009018374 A JP2009018374 A JP 2009018374A JP 2009018374 A JP2009018374 A JP 2009018374A JP 5414292 B2 JP5414292 B2 JP 5414292B2
Authority
JP
Japan
Prior art keywords
breakpoint
microprocessors
microprocessor
internal information
host machine
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
JP2009018374A
Other languages
English (en)
Other versions
JP2010176392A (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 JP2009018374A priority Critical patent/JP5414292B2/ja
Priority to US12/695,897 priority patent/US8423829B2/en
Priority to DE102010006219A priority patent/DE102010006219A1/de
Publication of JP2010176392A publication Critical patent/JP2010176392A/ja
Application granted granted Critical
Publication of JP5414292B2 publication Critical patent/JP5414292B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/277Tester hardware, i.e. output processing circuits with comparison between actual response and known fault-free response

Landscapes

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

Description

本発明はデバイスの評価解析技術に関し、特にマイクロプロセッサの不良解析等に用いて好適な装置と方法及びプログラムに関する
LSI(Large Scale Integrated circuit)のテストに関して、例えば特許文献1には、図9に示すように、良品であることが予め判明している良品LSI11と被測定LSI12とを同期させて同一のテスト入力条件下で動作させ、被測定LSI12が良品LSI11と機能的に同一動作を行うか否かを判定する構成が開示されている。
また、リアルタイムでエミュレーションを行うインサーキットエミュレータ(ICE)として、例えば特許文献2には、図10に示すように、被試験プロセッサのエミュレーションを行うエミュレーション装置において、被試験プロセッサ(MPU)3についての予期される命令実行結果に対応するリファレンスデータを予め記憶し、被試験プロセッサ(MPU)3の命令実行サイクルに同期した外部からのクロック信号に基づいてリファレンスデータを順次出力する記憶手段(トレースメモリ部)5と、被試験プロセッサ(MPU)3の実行結果と、出力されたリファレンスデータとを比較し、比較結果信号を出力する比較手段(コンパレータ部)7と、比較結果信号に基づいてエミュレーションの中断、続行を行う制御手段(コントローラ)4とを備えた構成が開示されている。
特開平5−119116号公報 特開平5−73347号公報
以下に本発明による分析を与える。
不良品のマイクロプロセッサの解析(不良解析)を行うにあたり、LSIテスタでマイクロプロセッサの不具合現象を再現できたとしても、LSIテスタから得られる不良情報(フェイル・ログデータ)では、該不良品のマイクロプロセッサの外部端子から出力された一部の結果しか得られず、該不良品のマイクロプロセッサの動作過程における内部状態を知ることができない。
また、マイクロプロセッサにおいて異常動作が発生しても、当該異常動作の結果が直ちにマイクロプロセッサの出力ポートに出力されない場合がある。このような場合、どの時点で不具合動作が発生したのかを判断することは難しく、真の故障原因を特定することが困難である。
さらに、シミュレーション環境等により、不良の詳細を調査することは、手間が掛かり、緊急に解析を要する場合には、不向きといえる。
そして、図9に示した特許文献1の構成は、不良を検出することに特化しており、2つのマイクロプロセッサの同一動作結果を比較し不一致だった場合に、それがプログラム実行におけるどのアドレスのどの命令が原因で起きたかを特定したり、メモリやレジスタがどのような値になったのかを知ることはできない。これは、マイクロプロセッサ内部の詳細情報を調べるための手段を持たないためである。
また、図10に示した特許文献2の構成では、予め予期していない命令で不具合が発生する場合の不良解析を行うことはできない。これは、特許文献2の構成においては、不具合が発生する命令を予め予期し、その実行結果に対する膨大な期待値データを用意しておく必要があるためである。
本発明は、上記した問題点の少なくも1つを解決するものである。
本発明によれば、マイクロプロセッサのデバッガが動作するホストと、同一構成の第1、第2のマイクロプロセッサと、前記ホストと前記第1、第2のマイクロプロセッサとをそれぞれ接続する第1、第2のデバッグ・インタフェース装置と、を備え、前記ホストは、前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサに対して同一のデバッグ動作を並行して実行させ、前記ホストは、前記第1、第2のマイクロプロセッサから得られた内部情報を比較し、不良解析を行う不良解析装置が提供される。
本発明によれば、ホストマシン上でマイクロプロセッサのデバッガが動作し、前記ホストマシンは、同一構成とされる、第1、第2のマイクロプロセッサに対して、第1、第2のデバッグ・インタフェース装置を介して同一のデバッグ動作を並行して実行させ、前記ホストマシンは、前記第1、第2のマイクロプロセッサから得られた内部情報を比較し、不良解析を行う、不良解析方法が提供される。
本発明によれば、同一構成とされる第1、第2のマイクロプロセッサとそれぞれ第1、第2のデバッグ・インタフェース装置を介して接続されるホストマシンに、
前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサに対して同一のデバッグ動作を並行して実行させ、前記第1、第2のマイクロプロセッサの内部情報を取得して比較し、不良解析を行う処理を、実行させるプログラムが提供される。
本発明によれば、シミュレーション環境なしでマイクロプロセッサの不具合の検出、現象確認を容易に実現できる。
本発明の一実施例の構成を示す図である。 (A)、(B)は本発明の一実施例のホストPCとマイクロプロセッサを示す図である。 本発明の一実施例の動作を説明する流れ図である。 本発明の一実施例の動作を説明する図である。 本発明の別の実施例の動作を説明する流れ図である。 本発明の別の実施例の動作を説明する流れ図である。 本発明の別の実施例の動作を説明する図である。 本発明の実施例の内部情報の一例を示す図である。 特許文献1の構成を示す図である。 特許文献2の構成を示す図である。
本発明によれば、マイクロプロセッサのデバッガが動作するホストマシン(図1のホストPC:120)と、同一構成とされる第1、第2のマイクロプロセッサ(図1の100、100’)と、ホストマシンと第1、第2のマイクロプロセッサとをそれぞれ接続する第1、第2のデバッグI/F(インタフェース)装置(図1の110、110’)と、を備えている。ホストマシン(120)は、第1、第2のデバッグI/F装置(110、110’)を介して第1、第2のマイクロプロセッサ(100、100’)に対して同一のデバッグ動作を並行して実行し、第1、第2のマイクロプロセッサ(100、100’)の内部情報(ダンプ結果)を取得して比較し、不良解析を行う。本発明において、一方のマイクロプロセッサ(第1のマイクロプロセッサ)は良品であり、他方(第2のマイクロプロセッサ)は不良解析対象のマイクロプロセッサである。
本発明において、ホストマシン(120)は、第1、第2のマイクロプロセッサ(100、100’)のプログラム上に複数のブレークポイントを設定し、第1のブレークポイントにおいて第1、第2マイクロプロセッサ(100、100’)から取得された内部情報が一致し、前記第1のブレークポイントよりも後に実行される第2ブレークポイントにおいて第1、第2マイクロプロセッサ(100、100’)から取得された内部情報が不一致の場合、次の動作として、前記第1のブレークポイントと前記第2のブレークポイント間の命令を、1ステップずつ実行させるように、デバッグ命令を変更し、前記第1、第2のマイクロプロセッサに対して指示する。
あるいは、本発明において、ホストマシン(120)は、第1、第2マイクロプロセッサ(100、100’)に対して、バイナリサーチでブレークポイントを設定し不良解析を行うようにしてもよい。本発明において、ホストマシン(120)は、ブレークポイントのバイナリサーチを所定回数実行の結果、決定された探索範囲の始めと終わりの第1、第2のブレークポイントに関して、第1、第2マイクロプロセッサ(100、100’)をプログラム先頭から第1のブレークポイントまで実行させ、その後、第2のブレークポイントまでステップ実行させるようにしてもよい。
本発明において、ホストマシン(120)は、一のブレークポイントにおける前記第1、第2マイクロプロセッサ(100、100’)から取得された内部情報が不一致の場合、第1のマイクロプロセッサ(100)の内部情報の少なくとも1部を前記第2マイクロプロセッサ(100’)の内部情報として設定した上で、ステップ実行等再実行させる制御を行うようにしてもよい。
本発明において、ホストマシン(120)は、再実行において、一のブレークポイントにおける第1、第2マイクロプロセッサ(100、100’)から取得された内部情報が不一致の場合、不一致情報を記憶部に保存していく。そして、再実行終了時等において、前記記憶部に保存された不一致情報が複数個所ある場合、複数の不一致箇所の情報のうち少なくとも2つの不一致情報の共通点を抽出するようにしてもよい。すなわち、第1、第2のマイクロプロセッサの(100、100’)内部情報(ダンプ結果)の比較の結果、不一致の場合、不一致情報(内部情報)を保存し、良品マイクロプロセッサの内部情報を不良のマイクロプロセッサに書き込んだ上で、ステップ実行又はブレークポイント設定等を行うようにしてもよい。不一致となる箇所(プログラム上の実行停止箇所)が、2箇所以上見つかった場合、次に保存しておいたそれぞれの不一致情報同士を比較し、一致した項目に関する情報(共通点)の保存を行うようにしてもよい。
このように、本発明においては、デバッグI/F(インタフェース)装置及びマイクロプロセッサを1台のホストマシン(120)に2台接続し、それらに同一のデバッグ動作をさせ、ブレークポイント等における良品と不良解析対象の2つのマイクロプロセッサの動作結果である内部情報(ダンプ結果)をホストマシンで比較する。比較の結果、不一致検出時、不良のマイクロプロセッサのRAM、レジスタ、実行命令アドレス等の情報をメモリに格納する。また、2つのマイクロプロセッサの内部情報(ダンプ結果)の比較結果に応じて、エミュレーションの中断、続行、その他デバッグ動作を効率よいものに変更する制御を好ましくはソフトウェアにより実現する。本発明によれば、不良品を同時に複数個動作させ比較させることも可能である。良品と不良解析対象の2つのマイクロプロセッサのプログラム実行、比較の結果、不一致が検出されなかった場合に、自動で、次のプログラムに切り替えロードを行うようにしてもよい。あるいは、ブレークポイントを自動で再設定し、プログラムを再実行するようにしてもよい。以下、実施例に即して説明する。
<実施例1>
図1は、本発明の一実施例に係る不良解析装置の構成を示す図である。図1を参照すると、本発明の一実施例の不良解析装置は、オンチップデバッグ機能を備えたマイクロプロセッサA、B(100、100’)と、それぞれのマイクロプロセッサA、B(100、100’)に接続されデバッグ機能を補助するデバッグ・インタフェース(I/F)装置A、B(110、110’)と、デバッグI/F装置(110、110’)を介してマイクロプロセッサA、B(100、100’)にそれぞれ接続され、デバッグを行うホストPC(HOST PC、単に、「ホスト」ともいう)120とを備えている。マイクロプロセッサA、B(100、100’)は、命令を実行するCPUと、オンチップデバッグ機能としてブレーク、メモリダンプ等を行うオンチップデバッグ回路を有する(あるいは同等の動作を実行可能な手段を有する)。オンチップデバッグ回路は、インサーキットエミュレータ(ICE)に設けられていたデバック回路の1部をチップ(マイクロプロセッサ)上に搭載し、評価時に、実デバイス(マイクロプロセッサ)を用いてエミュレーション機能を実現するものである。
マイクロプロセッサA(100)は、予め良品であることが判明しているマイクロプロセッサ(KGD:Known Good Device)である。マイクロプロセッサB(100’)は、マイクロプロセッサAと同一構成とされる、不良解析対象のマイクロプロセッサである。デバッグI/F装置A、B(110、110’)は同一の構成(同一仕様)とされる。
ホストPC120とデバッグI/F装置A、B(110、110’)との間は例えばUSB(Universal Serial Bus)インタフェースによって接続される。
デバッグI/F装置A、B(110、110’)は、USBインタフェース等の通信手段を介して、ホストPC120のCPU121上で動作するデバッガからの指示を受けたり、マイクロプロセッサA、B(100、100’)からそれぞれ得たデバッグ結果(ダンプ情報、トレース情報等)を、ホストPC120に送信する。
デバッグI/F装置A、B(110、110’)とマイクロプロセッサA、Bの(100、100’)間はそれぞれ例えばJTAG(Joint Tag Action Group)インタフェース等により接続される。
図2(A)は、ホストPC120の構成の一例を示す図である。図2(A)を参照すると、ホストPC120は、デバッガツールを起動、実行するために必要なCPU121、主記憶装置(RAM:ランダムアクセスメモリ)123、補助記憶装置(ハードディスク)122等を備え、デバッグI/F装置A、B(110、110’)と接続するためのUSB等の通信手段124を2つ以上備える。
ホストPC120のCPU121では、デバッグ時、デバッガ・ソフトウェア(「エミュレーション・ソフトウェア」ともいう)が動作し、デバッガの操作に応じて、2つのマイクロプロセッサA、B(100、100’)は、デバッグI/F装置A、B(110、110’)を介して、同一のデバッグ動作を行い、2つのマイクロプロセッサA、B(100、100’)それぞれの内部レジスタやRAMなどのデバイスの内部情報を取得する。ここで、デバッグ動作とは、ユーザプログラムの実行、所定の位置でブレークをかけるブレーク制御、一命令毎に、プログラム実行/停止を行うステップ実行、ブレーク中におけるメモリ/レジスタ内容の読み出し/書き込み等のことをいう。
マイクロプロセッサA、B(100、100’)から得られた内部情報は、ホストPC120に転送され、ホストPC120上の記憶装置(バッファ等)に一旦蓄えられた後で、比較され、不一致が検出された時の状態(内部情報)を記憶装置に保存し、確認することで、異常状態の検出(確認)、不良解析等が行われる。
図2(B)は、図1のマイクロプロセッサA、B(100、100’)の構成の一例を示す図である。マイクロプロセッサA、B(100、100’)は同一構成とされる。図2(B)を参照すると、マイクロプロセッサA、B(100、100’)は、CPU101と、オンチップデバッグ回路102と、CPU101とバス(データ/アドレスバス)106を介して接続される電気的書き換え可能な不揮発性のフラッシュメモリ(FLASH)103と、周辺回路(PERIPHERAL)104と、RAM(ランダムアクセスメモリ)(105)とを備えている。なお、バス106には、図示されない制御信号、クロック(CLK)等も転送される。なお、図2(B)は、本発明が適用可能なマイクロプロセッサA、B(100、100’)の一例を模式的に示したものであり、本発明において、マイクロプロセッサA、Bが図2(B)の構成にのみ限定されるものでないことは勿論である。
マイクロプロセッサA、B(100、100’)のオンチップデバッグ回路102は、デバッグI/F装置A、B(110、110’)とJTAGインタフェース(シリアル、UART(Universal Asynchronous Receiver and Transmitter)等でも可)を介して通信する。
マイクロプロセッサA、B(100、100’)のオンチップデバッグ回路102は、デバッグI/F装置A、B(110、110’)のJTAGインタフェースを介してホストPC120からのデバッグ指示を受け、CPU101のデバッグ動作を行い、ブレークポイント等でのレジスタ、メモリのダンプ情報等をJTAGインタフェースを介してデバッグI/F装置A、B(110、110’)に送信する。
本実施例において、デバッグI/F装置A、B(110、110’)は、ホストPC120からのデバッグ命令をマイクロプロセッサA、B(100、100’)に対する指示に変換するための変換装置としての役割を果たしている。
本実施例においては、1台のホストPC120に2台のデバッグI/F装置A、B(110、110’)が接続され、2つのマイクロプロセッサA、B(100、100’)に対して同一デバッグ動作を並行して実行し、ホストPC120でデバッグ結果を比較することで、異常検出、不良解析を実行する。すなわち、ホストPC120上では、オンチップデバッグを実行するためのデバッガ・ソフトウェアが動作し、ユーザによる操作に応じて又はデバッガ・ソフトウェアによる自律的制御にしたがって、2つのマイクロプロセッサA、B(100、100’)は並行して同一のデバッグ動作が実行される。ホストPC120上では、この他に、図1には、図示されない不良解析プログラムがCPU121上で動作する。なお、不良解析プログラムは、デバッガ・ソフトウェアの機能の一部に組み込むようにしてもよい。
ホストPC120のCPU121上で動作する不良解析プログラムは、デバッガ・ソフトウェアにより取得した2つのマイクロプロセッサA、B(100、100’)のそれぞれのレジスタ、メモリ等の値を格納し、比較し、不一致を検出した場合には、メモリの値やプログラム・カウンタ値等の情報を保存し、状況に応じて、次にどのような処置を行うかを、事前にプログラミングしたフローに従って、デバッガ・ソフトウェアの制御を行う。
図3は、本発明の一実施例の動作を説明するための流れ図である。図1、図2、図3を参照して、本実施例の動作を説明する。
マイクロプロセッサA、B(100、100’)に搭載された電気的書き換え可能な不揮発性メモリ(例えばFLASHメモリ)(図2(B)の103)に、予めフラッシュライタ等を使用して実行させたいユーザ・プログラム(動作プログラム)を書き込んでおく(ステップS1)。デバッグI/F装置A、B(110、110’)に、フラッシュライタの機能が搭載されている場合には、デバッグI/F装置A、B(110、110’)のこの機能を利用して、マイクロプロセッサA、B(100、100’)のFLASHメモリ(図2(B)の103)にユーザ・プログラム(動作プログラム)を書き込んでも良い。
ユーザがホストPC120上でデバッガを操作し、デバック動作を指定する(ステップS2)。なお、本実施例において、ステップS2におけるデバッガにおけるデバッグ動作の指定は、ユーザによる操作に制限されるものでなく、ホストPC120上で動作するデバッガ・ソフトウェア(又は不良解析プログラム等)により自動で(自律的に)行うようにしてもよい。
ホストPC120上で動作するデバッガ・ソフトウェアからデバッグ指示(デバック・コマンド(命令))が、各デバッグI/F装置A、B(110、110’)に対して送信される(ステップS3)。例えば、ブレークポイントやプログラム実行開始アドレス、終了アドレス、取得したいレジスタの種類やRAMのアドレス等の指定される。
各デバッグI/F装置A、B(110、110’)は、それぞれに接続されたマイクロプロセッサA、B(100、100’)との間で通信を行い、ホストPC120上で動作するデバッガ・ソフトウェアから受けたデバッグ命令をマイクロプロセッサA、B(100、100’)のオンチップデバッグ回路102に対して、共通に指示する(ステップS4)。
マイクロプロセッサA、B(100、100’)のオンチップデバッグ回路102は、それぞれ、デバッグI/F装置A、B(110、110’)からの指示(デバッグ命令)を受けて、マイクロプロセッサA、B(100、100’)のCPU101に対してプログラムの実行を開始させる(ステップS5)。このとき、2つのマイクロプロセッサA、B(100、100’)が実行する動作は同一のものである。
マイクロプロセッサA、B(100、100’)では、設定されたブレークポイントまでプログラムが実行された後、マイクロプロセッサA、B(100、100’)のオンチップデバッグ回路102の持つブレークポイント機能により、プログラム動作を中断(停止)する(ステップS6)。
このとき、マイクロプロセッサA、B(100、100’)のオンチップデバッグ回路102が具備するデバッグ・モニタ機能により、ホストPC120のデバッガ・ソフトウェアから受けた指示に従い、マイクロプロセッサA、B(100、100’)内のRAM105やレジスタ等の値(ダンプ情報)を、デバッグI/F装置A、B(110、110’)に対して送信する(ステップS7)。
デバッグI/F装置A、B(110、110’)は、それぞれ、マイクロプロセッサA、B(100、100’)から受けた、マイクロプロセッサA、B(100、100’)内のRAM105、レジスタ値をホストPC120に転送する(ステップS8)。
ホストPC120は、デバッグI/F装置A、B(110、110’)より転送されたマイクロプロセッサA、B(100、100’)それぞれのRAM、レジスタ等の情報を記憶装置(RAM123内のバッファメモリ等)に格納する(ステップS9)。
ホストPC120は、記憶装置に格納されたマイクロプロセッサA、B(100、100’)のRAM105、レジスタ等の情報(ダンプ結果)について、対応するもの同士を比較する(ステップS10)。ダンプ結果の比較動作は、ホストPC120のCPU121上で動作する不良解析プログラムにより実行される。
ホストPC120は、ステップS10での比較結果が一致の場合には、ブレークポイント以降のプログラム実行を継続するようブレーク状態を解除する。そして、プログラムを再開するための指示が、ホストPC120からデバッグI/F装置A、B(110、110’)を介してマイクロプロセッサA、B(100、100’)に伝えられる(ステップS12、S13)。
ホストPC120は、ステップS10での比較結果が不一致の場合には(ステップS10の「不一致」分岐)、その時のRAMやレジスタ情報や、実行命令、プログラムカウンタ等の情報を、ホストPC120上の例えばハードディスク122に保存する(ステップS11)。
ホストPC120において、デバッグを継続するか否かの決定が行われる(ステップS14)。ステップS14におけるデバッグ継続の決定は、ホストPC120上でのユーザ操作により行うようにしてもよいし、あるいは、ホストPC120上で動作するソフトウェア(不良解析プログラム等)の制御により自動で行うようにしてもよい。デバッグを継続する場合(ステップS15の「Y」分岐)、比較結果の不一致の発生の状況に応じて、次に実行するデバッグ動作を再設定等して適宜変更する(ステップS16)。これは、予めどのような動作をさせたいか条件を設定しておき、ホストPC上でソフトウェア((不良解析プログラム等)の動作により制御される。ホストPC120において、デバッグの終了が決定された場合(ステップS15の「N」分岐)、デバッグが終了する。
図4は、本実施例におけるマイクロプロセッサのデバッグ手順の一例を説明する図である。例えばマイクロプロセッサA、B(100、100’)のオンチップデバッグ回路102により、事前にプログラムにいくつかのブレークポイント(図4ではBREAKPOINT1〜4の4個)を設定しておき、マイクロプロセッサA、B(100、100’)の各CPU101にプログラム実行開始アドレスからプログラムを実行させる。マイクロプロセッサA、B(100、100’)上のCPU101のプログラムカウンタ(不図示)がブレークポイントが設定されたアドレスと一致すると、該ブレークポイントのアドレスでプログラムの実行を停止し、その時点における、マイクロプロセッサA、B(100、100’)のRAM105やレジスタ等の値のダンプ結果情報が、デバッグI/F装置A、B(110、110’)を介してホストPC120に転送される。
ホストPC120が、ブレークポイント3において、マイクロプロセッサA、B(100、100’)の内部情報(ダンプ結果)の不一致を検出した場合、次の動作として、例えばブレークポイント2〜ブレークポイント3の間をステップ実行(プログラム内の命令を1つずつ実行)するように、デバッグ命令を変更し、マイクロプロセッサA、B(100、100’)のオンチップデバッグ回路102に設定する。
また、このとき不一致となったデータ(ダンプ結果)が、例えばマイクロプロセッサA、B(100、100’)のRAM105の特定のアドレスの場合、不良箇所を効率良く絞り込むために、次回以降に読み出す(比較の対象となる)データを、RAM105の該特定のアドレスのみに限定するようにしてもよい。
ブレークポイント2からのステップ(STEP)実行中、各停止ポイントにおけるマイクロプロセッサA、B(100、100’)の内部情報の比較結果が一致した場合は、同様に、プログラム実行が再開され、次の命令実行後停止→RAM105のデータ読み出し→比較を繰り返す。
ブレークポイント2からのステップ実行中、停止ポイントにおけるマイクロプロセッサA、B(100、100’)の内部情報の比較結果が不一致の場合、図3のステップS11におけるレジスタ値の保存等が実行され、デバッグ動作を完了する。ただし、設定次第で別の動作をさせることも可能である。
マイクロプロセッサA、B(100、100’)のデバッグ動作において、プログラムが最後まで不一致検出することなく実行された場合、ステップS1に戻り、別のプログラムをロードする。この動作もデバッグ用プログラムに予め組み込んでおくことで自動的に制御される。
以上説明した通り、本実施例によれば、デバッグ機能を利用することにより、良品であることが判明しているマイクロプロセッサA(100)と、不良解析対象のマイクロプロセッサB(100’)に同一のデバッグ動作をさせ、内部情報をダンプし、比較した結果、不一致となったときのデバイスの状態を確認することによって、不良品の解析を容易化することが可能である。
<実施例2>
本発明の第2の実施例として、不具合個所の絞込みにあたり、ブレークポイントをバイナリサーチ的に設定することで、不具合個所の絞込むようにしてもよい。こうすることで、不具合検出までの時間短縮効果が期待できる。例えば図4において、マイクロプロセッサA、B(100、100’)のCPU101にプログラム実行開始アドレスからプログラムを実行させ、ブレークポイント3でマイクロプロセッサA、B(100、100’)のダンプ結果に不一致が検出された場合、ブレークポイント2からステップ実行を行うのではなく、例えば、ブレークポイント2とブレークポイント3の間の中間アドレスにブレークポイントを新たに設定し、プログラム実行開始アドレスからプログラムをスタートさせる。新たなブレークポイントでのダンプ結果に不一致がなければ、新たなブレークポイントとブレークポイント3の間にさらに別のブレークポイントを挿入し(新たなブレークポイントは削除)、プログラム実行開始アドレスからプログラムをスタートさせる、別のブレークポイントでダンプ結果に不一致があれば、新たなブレークポイントと別のブレークポイント間に不具合があることになり、さらに2分探索法で絞り込むか、ステップ実行することで、不良箇所を検出する。
図5は、本発明の第2の実施例の動作を説明する流れ図である。図1、図2、図5を参照して本実施例の動作を説明する。
変数N=0に初期化する(ステップS20)。変数Nはバイナリサーチ(2分探索法)の実行回数を制御するためのループ変数である。
マイクロプロセッサA、B(100、100’)に対して、ブレークポイントAを設定し(ステップS21)、マイクロプロセッサA、B(100、100’)のCPU101にプログラムの先頭から実行させ、ブレークポイントAで停止し(ステップS22)、ホストPC120において、マイクロプロセッサA、B(100、100’)のブレークポイントAでの内部情報を比較する(ステップS23)。
マイクロプロセッサA、B(100、100’)のブレークポイントAでの内部情報一致した場合(ステップS24の「Y」分岐)、ブレークポイントAをブレークポイントBとし、次のブレークポイント(現在のアドレスより後ろのアドレス)をブレークポイントAとして、ステップS22から実行する。
マイクロプロセッサA、B(100、100’)のブレークポイントAでの内部情報が不一致の場合(ステップS24の「N」分岐)、ブレークポイントAとBの中間にブレークポイントCを設定する(ステップS26)。
N=3でない場合(ステップS27の「N」分岐)、Nをインクリメントし(ステップS28)、プログラム先頭からブレークポイントCまで実行する(ステップS28)。
ブレークポイントCで停止し、ホストPC120で、マイクロプロセッサA、B(100、100’)のブレークポイントAでの内部情報(ダンプ結果情報)を比較する(ステップS30)。
ステップS30での比較の結果が一致した場合(ステップS31の「Y」分岐)、ブレークポイントCを新たなブレークポイントBとし、ブレークポイントAと新たなブレークポイントBの中間を、新たなブレークポイントCとして、ステップS27に移行する(ステップS32)。
ステップS30での比較の結果が不一致の場合(ステップS31の「N」分岐)、ブレークポイントCを新たなブレークポイントAとし、新たなブレークポイントAとブレークポイントBの中間を、新たなブレークポイントCとしてステップS27に移行行する(ステップS33)。
ステップS27において、N=3のとき、プログラム先頭からブレークポイントBまでプログラムを実行する(ステップS34)。
すなわち、N=1のとき、プログラムの先頭から、ステップS26で設定されたブレークポイントCまで実行され、マイクロプロセッサA、B(100、100’)のブレークポイントCでの内部情報(ダンプ結果情報)の一致/不一致に応じてブレークポイントCと探索範囲の始めと終わりのブレークポイントB又はAが更新され、再度、プログラムの先頭から新たなブレークポイントCまで実行され(N=2)、マイクロプロセッサA、B(100、100’)のブレークポイントCでの内部情報(ダンプ結果情報)の一致/不一致に応じて別の値にブレークポイントCが更新され(探索範囲の始めと終わりのブレークポイントB又はAが更新される)、さらに、プログラムの先頭から別のブレークポイントCまで実行され(N=3)、マイクロプロセッサA、B(100、100’)のブレークポイントCでの内部情報(ダンプ結果情報)の一致/不一致に応じてブレークポイントCの値が更新され(探索範囲の始めと終わりのブレークポイントB又はAが更新される)、ステップS27において、N=3であるため、ステップ34に移行する。N=3における不具合箇所の探索範囲は、N=1の場合の1/4の範囲に絞りこまれる(N=0の場合の1/8の範囲に絞りこまれる)。なお、バイナリサーチ回数Nは3に限定されるものでないことは勿論である。
ステップS34では、マイクロプロセッサA、B(100、100’)のCPU101に、プログラムの先頭から実行させブレークポイントBまで実行させ、続いてブレークポイントBからAまでステップ実行し(ステップS35)、ホストPC120で、各ステップにおけるマイクロプロセッサA、B(100、100’)のブレークポイントAでの内部情報を比較する(ステップS36)。
比較の結果、一致する場合(ステップS37の「Y」分岐)、ステップ実行を継続するか判定し、継続する場合(ステップS38の「Y」分岐)、ステップS35に戻りステップ実行を行う。ステップS37の比較の結果、不一致の場合(ステップS37の「N」分岐)については、図6を参照して後に説明される。
本実施例によれば、このようにしてバイナリサーチ(2分探索法)で不具合箇所の探索範囲を狭めていく。図4に示した前記実施例では、比較的大きな間隔でブレークポイントを設定し、不一致発生前後のブレークポイント間をステップ実行により1命令ずつ実行することにより、不具合個所を絞り込んでいたが、ブレークポイント再設定により、ある程度細かく不具合個所を絞り込んだ後に、ステップ実行に切り替えることで、プログラム実行回数を削減することができる。
<実施例3>
本発明の第3の実施例として、ホストPC120で、マイクロプロセッサA、B(100、100’)のダンプ結果が一致せず、マイクロプロセッサB(100’)の不具合検出時に、マイクロプロセッサB(100’)に良品マイクロプロセッサA(100)の正しいメモリ/レジスタ値をリストアし、その後の動作を継続して実行するようにしてもよい。このとき、例えばプログラムをステップ実行させ、1命令実行毎に、マイクロプロセッサA、B(100、100’)の内部情報の読み出し、ホストPC120において比較を行う。マイクロプロセッサA、B(100、100’)の内部情報の読み出し結果が一致すればステップ実行を継続し、不一致を検出すれば内部情報を保存する。不一致検出後は、再度、良品マイクロプロセッサA(100)の内部情報をマイクロプロセッサB(100’)に書き込み、ステップ実行を継続する。ステップ実行は、予め設定したアドレスまで実行しても良いし、不一致検出した時点でやめても良い。またステップ実行でなくブレークポイントを設定し、前記第1の実行例のようにして、不一致箇所を絞り込んでも良い。
不一致となる場所が、2箇所以上見つかった場合、次に保存しておいたそれぞれの不一致情報同士を比較する。ここで比較する対象となるのは、例えば実行命令やレジスタ名、RAMのアドレスやそのデータなどである。ここでは、比較の結果一致した項目に関する情報の保存を行う。
マイクロプロセッサにおいて、プログラム実行中に、一度、動作異常が発生すると、この動作異常が、その後の動作にも影響を与える可能性が高い。一方、不良解析では、どの命令をどういう状態で実行した際に異常動作が発生したのか、各命令それぞれに対して確認できることが好ましい。
マイクロプロセッサB(100’)において、異常動作が発生した命令の次の命令を実行する時に、メモリ、レジスタ等における異常状態を、正常状態に戻す(再設定する)ことによって、マイクロプロセッサB(100’)では、その後のプログラムを正常に実行させることができるようになる。このため、マイクロプロセッサA、B(100、100’)でその後のプログラムを実行した結果、マイクロプロセッサA、B(100、100’)の内部情報(ダンプ結果)の比較の結果、不一致が検出された場合に、新たな不具合発生条件と考えることができる。
次に、こうして検出された不一致個所が複数存在する場合に、それぞれの内部情報同士を比較したときに不一致結果に一致する項目が見つかれば、その項目に関連した動作が不良動作に、より深く関わっていると推測することができる。例えばマイクロプロセッサB(100’)において、常に同じレジスタで異常が発生する場合、該レジスタ自身が異常を持っているか、もしくはそのレジスタをアクセスする命令や経路等に異常があると推測することができる。
このように、本実施例では、不一致発生時に良品マイクロプロセッサの正常な内部情報を不良マイクロプロセッサに書き込み、プログラム実行を継続、動作結果比較を行う。複数の動作異常ポイントが見つかった場合に、それぞれの不一致情報同士を比較し共通点を検出する。
図6は、本実施例の動作を説明する流れ図である。図1、図2、図6を参照して、本実施例の動作を説明する。
図5のステップS37で、マイクロプロセッサA、B(100、100’)のステップ実行における内部情報(ダンプ結果)の比較の結果不一致の場合、不一致を検出したアドレスをブレークポイントに設定する(図6のステップS40)。
マイクロプロセッサA、B(100、100’)のCPU101は、プログラム先頭からブレークポイントまで実行し、ブレークポイントで停止する(ステップS41)。
ホストPC120で、ブレークポイントにおけるマイクロプロセッサA、B(100、100’)の内部情報を比較する(ステップS42)。
良品のマイクロプロセッサA(100)の内部情報を不良品のマイクロプロセッサB(100’)に書き込む(ステップS43)。
不一致検出アドレス以降を、マイクロプロセッサA、B(100、100’)のCPU101にステップ実行させる(ステップS44)。
ホストPC120において、ステップ実行時の各ステップ毎に、マイクロプロセッサA、B(100、100’)の内部情報を比較する(ステップS45)。
マイクロプロセッサA、B(100、100’)のブレークポイントAでの内部情報が不一致の場合(ステップS46の「N」分岐)、不一致の内部情報をホストPC120のハードディスク122等に保存する(ステップS48)。そして、ステップ実行をさらに実行する場合(ステップS49の「N」分岐)、ステップS43に移行する。ステップ実行終了の場合(ステップS49の「Y」分岐)、ステップS50に移行する。
ステップS46において、一致の場合(ステップS46の「Y」分岐)、ステップS47でステップ実行終了か否かを判定し、終了でない場合(ステップS47の「N」分岐)、ステップS44から実行する。
ステップS47でステップ実行終了の場合(ステップS47の「Y」分岐)、ステップS50に移行する。
ホストPC120は、ステップS50において、不一致箇所が複数あるか否か判断し、不一致箇所が複数の場合(ステップS50の「Y」分岐)、不一致箇所の2つを選択し(ステップS51)、不一致の内部情報を比較し、共通点を抽出する(ステップS52)。
選択された2つの不一致の内部情報の一致する項目がある場合(ステップS53の「Y」分岐)、ホストPC120は、一致情報をハードディスク122等に保存する(ステップS54)。
複数の不一致箇所の全ての組み合わせでの比較が終了するまで(ステップS55の「N」分岐)、ステップS51からの処理を繰り返す。例えば、不一致箇所が3箇所(A、B、C)の場合、AB、BC、CAの3通りの組み合わせに対して、不一致結果の共通点を見つける。比較の対象とされる内部情報は、実行命令、レジスタ名、RAMのアドレスとデータ等である。
図7は、図6を参照して説明した本実施例の動作を説明するための図である。良品、不良のマイクロプロセッサでプログラムの実行を開始し、不一致が発生した場合、不良のマイクロプロセッサにおいて、RAM、レジスタの値が異常なまま、動作を継続した場合、その後の動作も異常となる場合がある。前の命令で動作異常となった影響を受けないようにしたい(図7(A)参照)。
そこで、本実施例では、不一致が発生したRAM、レジスタに良品のマイクロプロセッサから読み出した値(正常値)を書き込む(図7(B)参照)。
そして、2つ以上の不一致発生箇所において、不一致となったレジスタ、RAMのアドレス等における共通点がないか検出する。ステップ実行で比較結果が一致する場合、正常であり、不良のマイクロプロセッサにおいて、以降の命令における動作が正常であるか異常であるかを確認できる。
そして、本実施例において、内部情報に不一致が発生した場合、不良のマイクロプロセッサにおいて、発生した不一致は前の動作の影響を受けていない。このため、マイクロプロセッサの不良解析を正確に行うことができる。
図8は、前記した第1乃至第3の実施例で用いられるマイクロプロセッサの内部情報の一例を示す図である。図8の内部情報は、ブレークポイントによる停止、あるいはステップ実行時の各ステップで、マイクロプロセッサA、B(100、100’)のRAMやレジスタ等のダンプ情報を受け取ったホストPC120の記憶装置(バッファ)上でのデータ構造に対応する。図8を参照すると、マイクロプロセッサAの内部情報は、実行命令、実行命令アドレス、ダンプを実行したときのプログラムカウンタ、メモリの開始アドレス、メモリのアドレス範囲、データ(メモリの範囲で指定したデータ数)、レジスタ名、データ、ダンプ終了コードからなる。マイクロプロセッサBについても同様な情報が格納される。
以上説明したように、上記各実施例によれば、マイクロプロセッサの持つオンチップデバッグ機能を利用することにより、不具合動作が検出された時点におけるマイクロプロセッサの内部情報(レジスタ、メモリ等)を確認することができる。
そして、2台のデバッグI/F装置を1台のホストPCに接続し、異常発生時のみ、ダンプ結果を保存するようにすることによって、良、不良品を単独で動作させ、結果を後から比較する場合に必要とされる結果格納のための大容量メモリが不要となる。このため、本実施例によれば、再現性の低い不具合現象を再現させるために、長時間連続動作させた場合でも、メモリが溢れることが回避可能とされ、効果的な不良解析を行うことができる。また、途中でマイクロプロセッサの入れ替え等の作業も不要とされる。
また、上記各実施例によれば、内部情報の不一致を検出した場合には、次に行うデバッグ動作を予め指定しておくことで、自動的にデバッグ動作を切り換え、効率のよい解析を行うことを可能としている。例えば、初めはブレークポイントを設定しておき、大まかな動作異常アドレスをつかんでおき、不一致検出した時点で、自動的に、ステップ動作に切り換えることで、詳細の動作異常発生アドレスを絞り込むといったことが可能となる。
上記各実施例によれば、このような比較や、不一致検出後の処理の大半を、ホストPC上で実行されるソフトウェア処理(不良解析ソフトウェア)で実現することにより、利用者の都合に合わせた、柔軟で、低コストなデバッグ、解析ツールを提供することができる。
なお、上記の特許文献1、2の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 エミュレーション装置
2 アドレスカウンタ
3 被試験MPU
4 コントローラ
5 トレースメモリ部
6 バストランシーバ部
7 コンパレータ部
11 良品LSI
12 被測定LSI
41 書込許可部
42 ブレーク要求部
43 タグテーブル
100、100’ マイクロプロセッサ
101 CPU
102 オンチップデバッグ回路
103 FLASHメモリ
104 周辺回路(PERIPHERAL)
105 RAM(ランダムアクセスメモリ)
106 データ/アドレスバス
110、110’ デバッグI/F装置
120 ホスト
121 CPU
122 ハードディスク
123 RAM
124 通信手段

Claims (27)

  1. マイクロプロセッサのデバッグの制御を行うホストマシンと、
    同一構成とされる第1、第2のマイクロプロセッサと、
    前記ホストマシンと前記第1、第2のマイクロプロセッサとをそれぞれ接続する第1、第2のデバッグ・インタフェース装置と、
    を備え、
    前記ホストマシンは、
    前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサに対して、同一のデバッグ動作を並行して実行させ、
    前記第1、第2のマイクロプロセッサの内部情報を前記第1、第2のデバッグ・インタフェース装置を介して取得して比較し、不良解析を行う手段を備え
    前記ホストマシンは、一のブレークポイントにおける前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、前記第1のマイクロプロセッサの内部情報の少なくとも1部を前記第2マイクロプロセッサの内部情報として設定した上で、前記第1、第2マイクロプロセッサを前記一のブレークポイントの次の命令から再実行させる制御を行う、ことを特徴とする不良解析装置。
  2. 前記第1のマイクロプロセッサは良品であり、前記第2のマイクロプロセッサは不良解析対象のマイクロプロセッサである、ことを特徴とする請求項1記載の不良解析装置。
  3. 前記ホストマシンは、前記第1、第2のマイクロプロセッサの内部情報の不一致を検出した場合に前記第1、第2のマイクロプロセッサにおいて次に行うデバッグ動作を予め指定しておく、ことを特徴とする請求項1又は2記載の不良解析装置。
  4. 前記ホストマシンは、前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサのプログラム上に複数のブレークポイントを設定し、
    第1のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致し、前記第1のブレークポイントよりも後に実行される第2ブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、次の動作として、前記第1のブレークポイントと前記第2のブレークポイント間の命令を、1ステップずつ実行させるように、デバッグ命令を変更し、該変更したデバッグ命令を前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサに対して指示する、ことを特徴とする請求項1乃至3のいずれか1項に記載の不良解析装置。
  5. 前記ホストマシンは、前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2マイクロプロセッサに対して、バイナリサーチでブレークポイントを設定し、不良解析を行う、ことを特徴とする請求項1乃至3のいずれか1項に記載の不良解析装置。
  6. 前記ホストマシンは、前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサのプログラム上に探索範囲の始めと終わりに対応する第1、第2のブレークポイントを設定し、
    前記第1のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致し、前記第1のブレークポイントよりも後に実行される前記第2のブレークポイントでは前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、
    前記ホストマシンは、前記第1のブレークポイントと前記第2のブレークポイントの中間を第3のブレークポイントとして設定するように、前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサに対して指示する、ことを特徴とする請求項5記載の不良解析装置。
  7. 前記第1、第2マイクロプロセッサがプログラムの先頭から前記第3のブレークポイントまで実行し、前記第3のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致した場合、
    前記ホストマシンは、前記第3のブレークポイントを新たな第1のブレークポイントとし、前記新たな第1のブレークポイントと前記第2のブレークポイントとの中間を第3のブレークポイントとし、
    前記第3のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、
    前記ホストマシンは、前記第3のブレークポイントを新たな第2のブレークポイントとし、前記新たな第2のブレークポイントと前記第1のブレークポイントとの中間を第3のブレークポイントとするように、前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサに対して指示する、ことを特徴とする請求項6記載の不良解析装置。
  8. 前記ホストマシンは、前記ブレークポイントのバイナリサーチを所定回数実行した後の探索範囲の始めと終わりに対応する第1、第2のブレークポイントに関して、
    前記第1、第2マイクロプロセッサをプログラム先頭から第1のブレークポイントまで実行させ、その後、第2のブレークポイントまでステップ実行させる、ことを特徴とする請求項5乃至7のいずれか1項に記載の不良解析装置。
  9. 前記ホストマシンは、前記再実行がステップ実行で行われ、一のブレークポイントにおける前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、不一致情報を記憶部に保存し、
    前記ステップ実行の結果、前記記憶部に保存された不一致情報が複数個所ある場合、複数の不一致箇所の情報のうち少なくとも2つの不一致情報の共通点を抽出する、ことを特徴とする、請求項記載の不良解析装置。
  10. ホストマシン上でマイクロプロセッサのデバッガが動作し、
    前記ホストマシンは、
    同一構成とされる、第1、第2のマイクロプロセッサに対して、第1、第2のデバッグ・インタフェース装置を介して同一のデバッグ動作を並行して実行させ、
    前記ホストマシンは、前記第1、第2のマイクロプロセッサの内部情報を第1、第2のデバッグ・インタフェース装置を介して取得して比較し、不良解析を行
    前記ホストマシンは、一のブレークポイントにおける前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、前記第1のマイクロプロセッサの内部情報の少なくとも1部を前記第2マイクロプロセッサの内部情報として設定した上で、再実行させる制御を行う、ことを特徴とする不良解析方法。
  11. 前記第1のマイクロプロセッサは良品であり、前記第2のマイクロプロセッサは不良解析対象のマイクロプロセッサである、ことを特徴とする請求項1記載の不良解析方法。
  12. 前記ホストマシンには、前記第1、第2のマイクロプロセッサの内部情報の不一致を検出した場合において、前記第1、第2のマイクロプロセッサで次に行うデバッグ動作が予め指定されている、ことを特徴とする請求項1又は1記載の不良解析方法。
  13. 前記ホストマシンは、前記第1、第2のマイクロプロセッサのプログラム上に複数のブレークポイントを設定し、
    第1のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致し、前記第1のブレークポイントよりも後に実行される第2ブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、次の動作として、前記第1のブレークポイントと前記第2のブレークポイント間の命令を、1ステップずつ実行させるように、デバッグ命令を変更し、前記第1、第2のマイクロプロセッサに対して指示する、ことを特徴とする請求項1乃至1のいずれか1項に記載の不良解析方法。
  14. 前記ホストマシンは、前記第1、第2マイクロプロセッサに対して、バイナリサーチでブレークポイントを設定し不良解析を行う、ことを特徴とする請求項1乃至1のいずれか1項に記載の不良解析方法。
  15. 前記ホストマシンは、前記第1、第2のマイクロプロセッサのプログラム上に、探索範囲の始めと終わりに対応する第1、第2のブレークポイントを設定し、
    前記第1のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致し、前記第1のブレークポイントよりも後に実行される前記第2のブレークポイントでは前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、
    前記ホストマシンは、前記第1のブレークポイントと前記第2のブレークポイントの中間を第3のブレークポイントとして設定し、前記第1、第2のマイクロプロセッサに対して指示する、ことを特徴とする請求項1記載の不良解析方法。
  16. 前記第1、第2マイクロプロセッサがプログラムの先頭から前記第3のブレークポイントまで実行し、前記第3のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致した場合、
    前記ホストマシンは、前記第3のブレークポイントを新たな第1のブレークポイントとし、前記新たな第1のブレークポイントと前記第2のブレークポイントとの中間を第3のブレークポイントとし、
    前記第3のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、
    前記ホストマシンは、前記第3のブレークポイントを新たな第2のブレークポイントとし、前記新たな第2のブレークポイントと前記第1のブレークポイントとの中間を第3のブレークポイントとし、前記第1、第2のマイクロプロセッサに対して指示する、ことを特徴とする請求項1記載の不良解析方法。
  17. 前記ホストマシンは、前記ブレークポイントのバイナリサーチを所定回数実行した後の探索範囲の始めと終わりに対応する第1、第2のブレークポイントに関して、
    前記第1、第2マイクロプロセッサをプログラム先頭から第1のブレークポイントまで実行させ、その後、第2のブレークポイントまでステップ実行させる、ことを特徴とする請求項1乃至1のいずれか1項に記載の不良解析方法。
  18. 前記ホストマシンは、前記再実行が、ステップ実行で行われ、一のブレークポイントにおける前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、不一致情報を記憶部に保存し、
    前記ステップ実行の結果、前記記憶部に保存された不一致情報が複数個所ある場合、複数の不一致箇所の情報のうち少なくとも2つの不一致情報の共通点を抽出する、ことを特徴とする、請求項1記載の不良解析方法。
  19. 同一構成とされる第1、第2のマイクロプロセッサとそれぞれ第1、第2のデバッグ・インタフェース装置を介して接続されるホストマシンに、
    前記第1、第2のデバッグ・インタフェース装置を介して前記第1、第2のマイクロプロセッサに対して同一のデバッグ動作を並行して実行させ、
    前記第1、第2のマイクロプロセッサの内部情報を取得して比較し、不良解析を行う処理と、
    一のブレークポイントにおける前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、前記第1のマイクロプロセッサの内部情報の少なくとも1部を前記第2マイクロプロセッサの内部情報として設定した上で、再実行させる制御を行う処理と、
    を実行させるプログラム。
  20. 前記第1のマイクロプロセッサは良品であり、前記第2のマイクロプロセッサは不良解析対象のマイクロプロセッサである、請求項19記載のプログラム。
  21. 前記第1、第2のマイクロプロセッサの内部情報の不一致を検出した場合には、前記第1、第2のマイクロプロセッサにおいて次に行うデバッグ動作を指定しておく処理を、前記ホストマシンに実行させる請求項19又は2記載のプログラム。
  22. 前記第1、第2のマイクロプロセッサのプログラム上に複数のブレークポイントを設定し、
    第1のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致し、前記第1のブレークポイントよりも後に実行される第2ブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、次の動作として、前記第1のブレークポイントと前記第2のブレークポイント間の命令を、1ステップずつ実行させるように、デバッグ命令を変更し、前記第1、第2のマイクロプロセッサに対して指示する処理を、前記ホストマシンに実行させる請求項19乃至2のいずれか1項に記載のプログラム。
  23. 前記第1、第2マイクロプロセッサに対して、バイナリサーチでブレークポイントを設定し不良解析を行う処理を、前記ホストマシンに実行させる請求項19乃至2のいずれか1項に記載のプログラム。
  24. 前記第1、第2のマイクロプロセッサのプログラム上に、探索範囲の始めと終わりに対応する第1、第2のブレークポイントを設定し、
    前記第1のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致し、前記第1のブレークポイントよりも後に実行される前記第2のブレークポイントでは前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、
    前記第1のブレークポイントと前記第2のブレークポイントの中間を第3のブレークポイントとして設定し、前記第1、第2のマイクロプロセッサに対して指示する処理を、前記ホストマシンに実行させる請求項2記載のプログラム。
  25. 前記第1、第2マイクロプロセッサがプログラムの先頭から前記第3のブレークポイントまで実行し、前記第3のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が一致した場合、
    前記第3のブレークポイントを新たな第1のブレークポイントとし、前記新たな第1のブレークポイントと前記第2のブレークポイントとの中間を第3のブレークポイントとし、
    前記第3のブレークポイントにおいて前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、
    前記第3のブレークポイントを新たな第2のブレークポイントとし、前記新たな第2のブレークポイントと前記第1のブレークポイントとの中間を第3のブレークポイントとし、前記第1、第2のマイクロプロセッサに対して指示する処理を、前記ホストマシンに実行させる請求項2記載のプログラム。
  26. 前記ブレークポイントのバイナリサーチを所定回数実行した後の探索範囲の始めと終わりに対応する第1、第2のブレークポイントに関して、
    前記第1、第2マイクロプロセッサをプログラム先頭から第1のブレークポイントまで実行させ、その後、第2のブレークポイントまでステップ実行させる処理を、前記ホストマシンに実行させる請求項2乃至2のいずれか1項に記載のプログラム。
  27. 前記再実行がステップ実行で行われ、一のブレークポイントにおける前記第1、第2マイクロプロセッサから取得された内部情報が不一致の場合、不一致情報を記憶部に保存し、
    前記ステップ実行の結果、前記記憶部に保存された不一致情報が複数個所ある場合、複数の不一致箇所の情報のうち少なくとも2つの不一致情報の共通点を抽出する処理を、前記ホストマシンに実行させる請求項19記載のプログラム。
JP2009018374A 2009-01-29 2009-01-29 不良解析装置と方法及びプログラム Expired - Fee Related JP5414292B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009018374A JP5414292B2 (ja) 2009-01-29 2009-01-29 不良解析装置と方法及びプログラム
US12/695,897 US8423829B2 (en) 2009-01-29 2010-01-28 Failure analysis apparatus, method
DE102010006219A DE102010006219A1 (de) 2009-01-29 2010-01-29 Gerät und Verfahren zur Fehleranalyse

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009018374A JP5414292B2 (ja) 2009-01-29 2009-01-29 不良解析装置と方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2010176392A JP2010176392A (ja) 2010-08-12
JP5414292B2 true JP5414292B2 (ja) 2014-02-12

Family

ID=42355099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009018374A Expired - Fee Related JP5414292B2 (ja) 2009-01-29 2009-01-29 不良解析装置と方法及びプログラム

Country Status (3)

Country Link
US (1) US8423829B2 (ja)
JP (1) JP5414292B2 (ja)
DE (1) DE102010006219A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011039570A1 (en) * 2009-09-30 2011-04-07 Freescale Semiconductor, Inc. Distributed debug system
JP5684514B2 (ja) * 2010-08-19 2015-03-11 株式会社東芝 冗長化制御システム、及びその演算データの伝送方法
US8843899B2 (en) 2010-10-29 2014-09-23 International Business Machines Corporation Implementing a step-type operation during debugging of code using internal breakpoints
US8806447B2 (en) * 2010-10-29 2014-08-12 International Business Machines Corporation Step-type operation processing during debugging by machine instruction stepping concurrent with setting breakpoints
US9015676B2 (en) 2010-10-29 2015-04-21 International Business Machines Corporation Varying removal of internal breakpoints during debugging of code
CN102713858B (zh) * 2011-01-12 2015-11-25 丰田自动车株式会社 信息处理装置的联机调试***及联机调试方法
US8966319B2 (en) * 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US9158661B2 (en) 2012-02-15 2015-10-13 Apple Inc. Enhanced debugging for embedded devices
US9372780B2 (en) 2013-06-28 2016-06-21 International Business Machines Corporation Breakpoint continuation for stream computing
JP6318976B2 (ja) * 2014-08-22 2018-05-09 富士通株式会社 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
KR20180037422A (ko) 2016-10-04 2018-04-12 삼성전자주식회사 집적 회로 및 애플리케이션 프로세서
JP6786448B2 (ja) * 2017-06-28 2020-11-18 ルネサスエレクトロニクス株式会社 半導体装置
WO2022116111A1 (en) * 2020-12-03 2022-06-09 Boe Technology Group Co., Ltd. Computer-implemented method for defect analysis, computer-implemented method of evaluating likelihood of defect occurrence, apparatus for defect analysis, computer-program product, and intelligent defect analysis system
JP7343197B2 (ja) * 2021-03-15 2023-09-12 Necプラットフォームズ株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0614100B2 (ja) * 1984-07-11 1994-02-23 松下電器産業株式会社 回路検査装置
JP2560892B2 (ja) * 1990-07-12 1996-12-04 富士通株式会社 エラー情報処理装置
US6247144B1 (en) * 1991-01-31 2001-06-12 Compaq Computer Corporation Method and apparatus for comparing real time operation of object code compatible processors
JPH0553854A (ja) * 1991-08-26 1993-03-05 Oki Electric Ind Co Ltd ワンチツプマイクロコンピユータの不良解析方式
JPH0573347A (ja) 1991-09-11 1993-03-26 Fujitsu Ltd エミユレーシヨン装置
JPH05119116A (ja) 1991-10-25 1993-05-18 Toshiba Corp 集積回路評価装置
US6055661A (en) * 1994-06-13 2000-04-25 Luk; Fong System configuration and methods for on-the-fly testing of integrated circuits
US5905855A (en) * 1997-02-28 1999-05-18 Transmeta Corporation Method and apparatus for correcting errors in computer systems
JP2000155701A (ja) * 1998-11-18 2000-06-06 Mitsubishi Electric Corp デバッグ回路
US6452411B1 (en) * 1999-03-01 2002-09-17 Formfactor, Inc. Efficient parallel testing of integrated circuit devices using a known good device to generate expected responses
JP2001134467A (ja) * 1999-11-08 2001-05-18 Mitsubishi Electric Corp 内部バス情報取得方法および内部バス情報取得装置
JP2002288001A (ja) * 2001-03-23 2002-10-04 Ricoh Co Ltd 汎用検査システムとプログラムおよびその検査方法
JP2002215422A (ja) * 2001-01-18 2002-08-02 Toshiba Corp テストベクタ抽出システム
US6922821B1 (en) * 2001-11-15 2005-07-26 Cypress Semiconductor Corp. System and a method for checking lock step consistency between an in circuit emulation and a microcontroller while debugging process is in progress
US7185235B2 (en) * 2001-12-28 2007-02-27 Sap Ag Test and verification framework
US7080283B1 (en) * 2002-10-15 2006-07-18 Tensilica, Inc. Simultaneous real-time trace and debug for multiple processing core systems on a chip
JP4396509B2 (ja) * 2004-12-16 2010-01-13 日本電気株式会社 メモリエラー管理システム
US7475387B2 (en) * 2005-01-04 2009-01-06 International Business Machines Corporation Problem determination using system run-time behavior analysis
US20070174037A1 (en) * 2005-11-10 2007-07-26 Chuan-Po Ling Multiple-microcontroller emulation system, multiple-microcontroller integrated development environment, and method for the same
US7895569B2 (en) * 2006-08-30 2011-02-22 Research In Motion Limited System and method for implementing software breakpoints in an interpreter
JP5308637B2 (ja) 2007-07-11 2013-10-09 東洋ゴム工業株式会社 研磨パッド

Also Published As

Publication number Publication date
US20100191941A1 (en) 2010-07-29
JP2010176392A (ja) 2010-08-12
DE102010006219A1 (de) 2010-09-16
US8423829B2 (en) 2013-04-16

Similar Documents

Publication Publication Date Title
JP5414292B2 (ja) 不良解析装置と方法及びプログラム
US7340658B2 (en) Technique for combining scan test and memory built-in self test
US6961872B2 (en) Microcomputer and debugging system
KR20210116604A (ko) 온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비
CN109144808B (zh) 半导体装置
JP6981920B2 (ja) 半導体装置、およびデバッグ方法
US20040177344A1 (en) Debugging method for the keyboard controller code
JP4294531B2 (ja) 論理回路検証・テストシステム
JP5900336B2 (ja) エミュレータ検証システム、エミュレータ検証方法
JP5532134B2 (ja) 半導体集積回路装置、その制御方法及び情報処理装置
JP2007058450A (ja) 半導体集積回路
CN108710554B (zh) 处理器侦错***及方法
US20130238948A1 (en) Semiconductor integrated circuit
US11442106B2 (en) Method and apparatus for debugging integrated circuit systems using scan chain
JP3775462B2 (ja) デバッグシステム及び情報記憶媒体
CN117234831B (zh) 一种基于多核cpu的芯片功能测试方法及***
US20240231347A1 (en) Fault injection test method and apparatus, and fault injection method
Kulkarni et al. Dataset development of GPU block using Scan Dump for Silicon Debug
CN117316249A (zh) 一种寄存器的测试方法、装置、计算设备及存储介质
TW202209118A (zh) 晶片及其設計方法與故障分析方法
JP2967741B2 (ja) Cpu互換性テスト装置
US9234939B2 (en) Semiconductor device
Jain et al. Methodological framework for automation of hardware software co-validation of an IP
JPH02122335A (ja) Ras回路の試験方法
JPS6049456A (ja) 診断制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130924

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131112

R150 Certificate of patent or registration of utility model

Ref document number: 5414292

Country of ref document: JP

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