JP6360665B2 - ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法 - Google Patents

ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法 Download PDF

Info

Publication number
JP6360665B2
JP6360665B2 JP2013176861A JP2013176861A JP6360665B2 JP 6360665 B2 JP6360665 B2 JP 6360665B2 JP 2013176861 A JP2013176861 A JP 2013176861A JP 2013176861 A JP2013176861 A JP 2013176861A JP 6360665 B2 JP6360665 B2 JP 6360665B2
Authority
JP
Japan
Prior art keywords
trace
watchpoint
module
fifo
information
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
JP2013176861A
Other languages
English (en)
Other versions
JP2014049131A5 (ja
JP2014049131A (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.)
NXP USA Inc
Original Assignee
NXP USA 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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2014049131A publication Critical patent/JP2014049131A/ja
Publication of JP2014049131A5 publication Critical patent/JP2014049131A5/ja
Application granted granted Critical
Publication of JP6360665B2 publication Critical patent/JP6360665B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

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

Description

本開示は電子デバイスに関し、デバッグ能力を有するより多くのデータ処理デバイス(複数の場合もあり)に関する。
IEEE ISTO5001として知られるIEEE標準規格、またはNexusデバッグ標準規格のようなデバッグプロトコルは、リアルタイム・デバッグ・メッセージ生成をサポートすることができる、データ処理システムに対するリアルタイム・デバッグ・サポートを確立するのに使用される。このようなデバッギング標準規格は、データプロセッサのコードの開発に使用されるデバッギングプロセスを指定することができる。リアルタイムデバッギングに使用される1つの技法は、データ処理システムによって生成されるデバッグ情報を含むデバッグメッセージを使用することである。1つのタイプのデバッグ情報はトレース情報と称され、これは、プログラムトレース情報およびデータトレース情報を含むことができる。プログラムトレース情報は、データプロセッサのアドレス事象に関係するプログラム・トレース・メッセージを生成するプログラム・トレース・メッセージング中に生成されることができる。データトレース情報は、レジスタロケーションのようなデータプロセッサの記憶ロケーションに記憶されるデータ情報に関係するデータ・トレース・メッセージを生成するデータ・トレース・メッセージング中に生成されることができる。たとえば、プログラム・トレース・メッセージングは、デバッグ動作中にいずれのプログラムがデータプロセッサによって実行されるかを決定するのに使用されるプログラムトレース情報を記憶するのに使用されることができ、データ・トレース・メッセージングは、データプロセッサのデバッグ動作中に記憶されているデータの変更を記憶するのに使用されることができる。
トレース情報は、一般的にはデータ処理システムの外部にあるデバッガに転送されるまで、データ処理システムの先入れ先出し(FIFO)バッファに記憶されることができる。しかしながら、データプロセッサがトレース情報を生成する速度が、データプロセッサがデバッグトレース情報を外部デバッガに通信することができる速度よりも速いことに起因してFIFOが一杯になるときに、問題が発生する。このような状況では、1つまたは複数のトレードオフが発生することを避けられず、その各々がデータ処理システムのデバッグ能力に影響を与える可能性がある。たとえば、データプロセッサは、FIFOがもはや一杯でなくなるまで失速する可能性があり、これによって、データ処理システムの瞬時性が変わってしまう可能性がある。代替的には、データ処理システムはそれ以上トレース情報を記憶することなく作動し続けることができるが、その結果として、データ処理システムがリアルタイムで動作し続けるため、デバッグ情報が失われてしまうことになる。
実施形態は例として示されており、添付の図面によって限定されない。
本開示の一実施形態によるデバッグメッセージ生成を有するデータ処理システムを示すブロック図。 本開示の一実施形態による、図1のデバッグモジュールの一部を示すブロック図。 本開示の一実施形態による、図2のデバッグモジュールの一部によって使用される記憶ロケーションを示すブロック図。 本開示の一実施形態による、図2のトレースFIFOの特定の動作方法を示す流れ図。 本開示の一実施形態による、図2のトレースFIFOの特定の動作方法を示す流れ図。 本開示の一実施形態による、様々な時点において図2のトレースFIFOに記憶されるトレース情報を示すブロック図。 本開示の一実施形態による、図1のデバッグモジュールの特定の動作方法を示す流れ図。 図1のシステムのプログラムメモリの特定の実施形態およびデバッグレジスタ状態を示す図。
図面内の要素は簡潔かつ明瞭にするために示されており、必ずしも原寸に比例して描かれてはいないことを当業者は諒解する。
データプロセッサのデバッグ動作モード中、データプロセッサにおいてウォッチポイント事象が発生したことが判定され、それに応答して、トレース情報を記憶するFIFO(トレースFIFO)の動作状態が変更される。たとえば、FIFOフラッシュウォッチポイントが発生する結果として、トレース情報が、トレース解析器に通信されてしまう前にトレースFIFOからフラッシュされることになる。FIFOをフラッシュすることによって、フラッシュされる前にFIFOに記憶されていた、まだ外部に通信されていない情報は、もはやFIFOの外部には通信され得ない。これは一般的には、まだFIFOの外部に通信されていない情報を無効化することによって達成され、情報は、FIFOの先頭位置および最後尾位置に対応するポインタを変更すること、FIFOに記憶されている実際のデータを変更することなどによって無効されることができる。しかしながら、FIFOがフラッシュされる様式はFIFOの特定の実施態様に応じて変わり得ることが諒解されよう。本開示の様々な態様は、後述する図1〜図8を参照してより理解されることになろう。
図1には、デバッグ動作モード中にトレースメッセージングをサポートする例示的なデータ処理システム10が示されている。データ処理システム10内にはグローバル相互接続12がある。1つの形態では、グローバル相互接続12はシステムバスである。たとえば、クロスバー、二点間接続、ならびに光および無線送信技法を含む他の形態の相互接続が使用されてもよい。加えて、本明細書に記載のものと同じまたは類似の様式で使用される、相互接続12と同じまたは異なるタイプの複数の他の相互接続があってもよい。バス・インターフェース・ユニット(BIU)14が、双方向性相互接続を介してグローバル相互接続12に接続される。1つの形態では、双方向性相互接続は、双方向性マルチ導体バス(bidirectional multiple conductor bus)であり、本明細書におけるマルチ導体バスは、導体にわたる斜線で表されている。BIU14は、メモリ管理ユニット(MMU)16に双方向的に接続される。MMU16は、双方向性マルチ導体バスを介してグローバル制御モジュール18の第1の入出力端子に接続される。グローバル制御モジュール18の第2の入出力端子は、双方向性マルチ導体バスを介して命令フェッチユニット20の第1の入出力端子に接続される。命令フェッチユニット20は、マルチ導体バスを介して命令デコーダ22の入力に接続される出力を有する。命令デコーダ22の出力は、実行ユニット24の入力に接続される。1つの形態では、実行ユニット24は、少なくとも1つの算術論理演算ユニット、少なくとも1つの浮動小数点演算ユニットおよび少なくとも1つの乗算器モジュールを含む。実行ユニット24内にはレジスタファイル25がある。命令デコーダ22の入出力端子は、グローバル制御モジュール18の第3の入出力端子に接続される。実行ユニット24の第1の入出力端子は、グローバル制御モジュール18の第4の入出力端子に接続される。実行ユニット24および命令フェッチユニット20は、MMU16にも双方向的に接続される。ロード/ストアユニット28は、グローバル制御モジュール18の第6の入出力端子に双方向的に接続される第1の入出力端子を有する。ロード/ストアユニット28は、BIU14の第1の入出力端子に接続される第2の入出力端子を有する。ロード/ストアユニット28は、実行ユニット24の第2の入出力端子に接続される第3の入出力端子を有する。BIU14の第2の入出力端子は、グローバル制御モジュール18の第7の入出力端子に接続される。ロード/ストアユニット28の出力はデータ仮想アドレス(D_VADDR)を提供し、MMU16の第1の入力およびデバッグモジュール26の第1の入力に接続される。命令フェッチユニット20の出力は命令仮想アドレス(I_VADDR)を提供し、MMU16の第2の入力およびデバッグモジュール26の第2の入力に接続される。MMU16の第1の出力はデータ物理アドレス(D_PADDR)を提供し、BIU14の第1の入力およびデバッグモジュール26の第2の入力に接続される。MMU16の第2の出力は命令物理アドレス(I_PADDR)を提供し、BIU14の第2の入力およびデバッグモジュール26の第3の入力に接続される。
メモリ30は、双方向性相互接続を介してグローバル相互接続12に接続される。デバッグモジュール26は、双方向性マルチ導体を介して複数のデバッグ端子40に接続される第2の入出力端子を有する。複数のデバッグ端子40は、一般的にデバッガまたは外部デバッガと称される外部デバッグツールである外部開発システム36に接続され、これは、様々なデバッグ情報およびコードメモリ内容(code memory contents)のローカル画像(local image)を使用して、システムによって実行されているプログラムフローを再構築する。示されている形態では、BIU14、MMU16、グローバル制御モジュール18、命令フェッチユニット20、命令デコーダ22、レジスタファイル25を有する実行ユニット24、デバッグモジュール26およびロード/ストアユニット28は集合的に、図1において破線のグループ分けによって示されているデータプロセッサ42を形成する。図1、および他の図面の様々なモジュールは特定の接続を有する隔離されたロケーションにおいて示されているが、このようなモジュールは、分散された様式で実装され、データ処理システム10の様々な他のシステムブロックのいずれかの中に含まれてもよいことが理解されよう。たとえば、図2のデバッグモジュール26の実施形態において示されている記憶ロケーション71/72は、レジスタファイル25の一部、またはデータプロセッサ42の他の部分であることができる。また、示されている実施形態では、グローバル制御18は、現在実行されているプロセスのためのプロセス識別子(PID)を記憶するプロセス識別子(PID)レジスタ19を含む。グローバル制御18は、PIDをもMMU16に提供する。
動作時、データプロセッサ42はグローバル相互接続12を介してメモリ30および他のデバイス(図示せず)と通信することができる。メモリ30と他のデバイスとの間で通信される情報は、BIU14を通じて移動する。命令フェッチユニット20は、グローバル制御モジュール18の制御下でBIU14からデータプロセッサ命令(すなわち、プロセッサ命令)を取り出す。取り出された命令は、グローバル制御モジュール18の制御下で復号するために命令デコーダ22に順次通信される。実行ユニット24が命令を実行して、キャッシュ(図示せず)内に記憶されるか、またはグローバル制御モジュール18、BIU14およびグローバル相互接続12を介してメモリ30内に置かれるかのいずれかであるデータを生成する。データプロセッサ42およびデータ処理システム10の動作のデバッギングが、外部開発システム36による解析のためのデバッグ情報を生成するデバッグモジュール26を使用することによって実行される。外部開発システム36からの起動に応答して、試験またはデバッグ動作モードに入る。
示されている形態では、デバッグモジュール26は、データ仮想アドレス、データ物理アドレス、プログラム(命令)仮想アドレス、プログラム物理アドレスを含む、グローバル相互接続12のうちの1つまたは複数およびデータプロセッサ42の内部のロケーションからのアドレス情報を受信するように構成される。デバッグモジュール26は、BIU14およびロード/ストアユニット28からのデータ情報、およびグローバル制御18からの情報を受信するように構成される。データアドレスはデータが存在するアドレスであり、一方でプログラムアドレスは命令が存在するアドレスである。プログラム仮想アドレスは命令フェッチユニット20からデバッグモジュール26およびMMU16へ提供される。仮想アドレスは、情報が存在している物理記憶ロケーションの変換アドレスを得るために何らかのさらなる処理または変換を必要とする、変換されていないアドレスである。MMU16は、メモリの仮想ページのアドレスを対応する物理ページアドレスに変換することによって、命令物理アドレスをBIU14およびデバッグモジュール26に提供する。メモリのページはグループ化された連続するロケーションであり、一般的には、たとえば4キロバイトページ、16キロバイトページ、64キロバイトページなどのような、2の累乗であるサイズを有する。ロード/ストアユニット28は、データ仮想アドレスをデバッグモジュール26およびMMU16に提供する。MMU16は、データ物理アドレスをBIU14およびデバッグモジュール26に提供する。デバッグモジュール26は、下記により詳細に説明するように、受信アドレスのうちの1つまたは複数における情報に基づいて、外部開発システム36に対するデバッグメッセージを形成する。
図2には、デバッグ制御モジュール60と、トレースモジュール62と、ウォッチポイントモジュール70と、デバッグ入出力(I/O)モジュール66と、トレースFIFO75とを含む、図1のデバッグモジュール26の一部の例示的な実施形態が示されている。デバッグ制御モジュール60は、デバッグモジュール26の動作を制御するのに使用され、図2の様々なモジュールと通信することができる。トレースモジュール62はデータプロセッサ42の動作を監視し、ウォッチポイントモジュール70からトレースイネーブル指示子(TRACE_EN)を受信するのに応答して、トレース情報をキャプチャしてFIFO75に提供することになり、FIFOは、トレース情報を、記憶ロケーションのアレイ(図示せず)において実装されることができる次の利用可能な記憶ロケーション内に記憶する。ウォッチポイントモジュール70は、イネーブルされたウォッチポイント事象の発生に関してシステム10の動作を監視し、ウォッチポイント事象が検出されるのに応答してデバッグモジュール26の様々な部分に通知する。ウォッチポイントは、特定のアドレスがアクセスされる、特定のデータ値が記憶されるなど、およびそれらの組み合わせのような、いくつかのタイプの事象のうちのいずれか1つによってトリガされることができるが、説明を目的として、ウォッチポイントは特定のアドレスがアクセスされるのに基づくものと仮定される。たとえば、ウォッチポイントモジュール70は、信号TRACE_EN、すなわちトレースイネーブル指示子をアサートして、トレースモジュール62によるトレース情報のキャプチャを促進することができる。説明を目的として、デバッグモジュール26の部分間、およびグローバル相互接続12との間の様々な接続は、図2において、本明細書に記載の実施形態に関するデータフローの特定の方向を示す矢印を用いて示されている。しかしながら、矢印の指示は、情報を単一方向に送信することしかできない接続を示すようには意図されていないことが諒解されよう。
デバッグ制御モジュール60は、デバッグ制御モジュール26の様々な動作状態を制御するのに使用される情報を記憶することができるレジスタ71を含む。たとえば、レジスタ71は、アサートされるとデバッグモジュール26の動作をイネーブルするフィールドDEBUG_EN、アサートされるとプログラム・トレース・メッセージングをイネーブルするフィールドPGM_TRACE_EN、アサートされるとデータ・トレース・メッセージングをイネーブルするフィールドDATA_TRACE_ENなどを含むことができる。デバッグ制御モジュール60は、デバッグI/O制御モジュール66に接続される(図示せず)。動作中、デバッグ制御モジュール60は、デバッグI/Oモジュール66を介して、デバッグ制御モジュール60によって実行されるコマンドを含む外部情報を受信することができる。デバッグ制御モジュール60によって実行されることができるコマンドの一例は、たとえば、レジスタ71への書き込みによってデバッグ動作をイネーブル/ディセーブルするコマンドを含む。
イネーブルされると、トレースモジュール62は、様々なデバッグ制御情報に基づいてデータ処理システム10の動作を監視する。図2には、具体的には、グローバル相互接続12においてアドレスおよびデータが監視されることを可能にするグローバル相互接続12への接続、および、プロセッサ42内で送信される情報が監視されることができるような、データプロセッサ42の内部の相互接続への接続が示されている。一実施形態によれば、トレースモジュール62によるデータ・トレース・メッセージングおよびプログラム・トレース・メッセージングは、デバッグ制御モジュール60がコマンドを実行するのに直に応答して、デバッグ制御モジュール60によってイネーブルされることができる。別の実施形態によれば、トレースモジュール62によるデータ・トレース・メッセージングおよびプログラム・トレース・メッセージングは、ウォッチポイント事象の発生に応答してウォッチポイントモジュール70によってイネーブル/ディセーブルされる。たとえば、図3は、トレースメッセージングをイネーブル/ディセーブルするのに使用されることができる、WP_TRIGGERSとラベリングされるレジスタ72のセットの特定の実施形態を示す。示されているウォッチポイント・トリガ・レジスタは、WP_T1_EN、WP_T2_EN、WP_T3_EN、およびWP_T4_ENとラベリングされるフィールドを含む。図3のフィールドの各々はウォッチポイント・タイプ・イネーブル・フィールドと称され、種々のタイプのウォッチポイントが、種々のタイプの情報に基づいてトリガする、すなわち、デバッグモジュールに種々の動作など、およびそれらの組み合わせを実行させることができる。
一実施形態によれば、図3のレジスタフィールドの各々はマルチビットフィールドであることができ、図3のレジスタフィールドの可能なマルチビット値のうちの1つは、そのレジスタフィールドの対応するウォッチポイントタイプがディセーブルされることを示し、レジスタフィールドの他の可能なマルチビット値は、それぞれ、対応するウォッチポイントタイプのウォッチポイント事象の発生を判定するのに使用される値を記憶する、対応するウォッチポイントレジスタを識別する。たとえば、図3のウォッチポイント・タイプ・イネーブル・フィールドの各々は3ビットフィールドであることができる。ゼロの値(000b)を有するウォッチポイント・イネーブル・フィールドは、そのフィールドの対応するウォッチポイントタイプがディセーブルされることを示し、1の2進値(001b)は、フィールドの対応するウォッチポイントタイプがイネーブルされること、および、ウォッチポイントモジュール70のウォッチポイントWP1がウォッチポイント事象の発生を判定するのに使用されることを示し、2の2進値(010b)は、フィールドに対応するウォッチポイントタイプがイネーブルされること、および、ウォッチポイントモジュールのウォッチポイントWP2がウォッチポイント事象の発生を判定するのに使用されることを示し、他のウォッチポイントは同様に使用するために示されることができる。
種々のウォッチポイントタイプの例は、実行されるアドレスが示されているウォッチポイントレジスタに記憶されている値に一致することのような、そのウォッチポイント条件が満たされることに応答してトレースモジュール62によるプログラムトレースをイネーブルするプログラム・トレース・イネーブル・ウォッチポイント、実行されるアドレスが示されているウォッチポイントレジスタに記憶されている値に一致することのような、そのウォッチポイント条件が満たされることに応答して、トレースモジュール62によるプログラムトレースをディセーブルするプログラム・トレース・ディセーブル・ウォッチポイント、実行されるアドレスが示されているウォッチポイントレジスタに記憶されている値に一致することのような、そのウォッチポイント条件が満たされることに応答して、トレースモジュール62によるデータ・トレース・メッセージングをイネーブルするデータ・トレース・イネーブル・ウォッチポイント、実行されるアドレスが示されているウォッチポイントレジスタに記憶されている値に一致することのような、そのウォッチポイント条件が満たされることに応答して、トレースモジュール62によるデータトレースをディセーブルするデータ・トレース・ディセーブル・ウォッチポイント、実行されるアドレスが示されているウォッチポイントレジスタに記憶されている値に一致することのような、そのウォッチポイント条件が満たされることに応答して、結果としてFIFO75の動作を変更することになるFIFO制御ウォッチポイントなどを含む。1つのタイプのFIFO制御ウォッチポイントは、下記により詳細に説明するように、結果として、FIFO75に記憶されているデータのいくつかまたはすべてが、外部開発システム36に提供される代わりにフラッシュされるようにするFIFOフラッシュウォッチポイントである。
イネーブルされると、トレースモジュール62は、プロセッサ42内の相互接続からの情報のような、データプロセッサ42の内部リソースからの情報、グローバル相互接続12における情報等を含む、様々なロケーションからのトレース情報を取得することができる。それに応答して、トレースモジュール62は、トレースメッセージ生成器64に、トレース解析のために外部開発システム36(図1)に提供される前にバッファリングするためにトレースFIFO75に提供されるトレースメッセージを生成させることになる。特に、デバッグI/O制御モジュール66は、トレースメッセージのような、待ち行列に入れられているトレース情報にアクセスして、このメッセージを外部相互接続40を介して外部開発システム36に提供するために、トレースFIFO75とインターフェースすることができる。
図4は、FIFO75の動作の特定の実施形態の方法を流れ図形式で示しており、FIFO75が一杯になっているのに応答して応答して、トレースモジュール62からの新たなトレースデータが失われている。図4の方法は、ブロック401において、新たなトレース情報がたとえば、トレースFIFO75に記憶される準備ができるまで待つ。新たなトレース情報を受信するのに応答して、フローはブロック402に進み、トレースFIFO75が一杯であるか否かが判定される。そうである場合、現在の新たなトレース情報をFIFO75に記憶することなく、フローはブロック401に戻ってさらに新たなトレース情報を待ち、そうでない場合、フローはブロック403に進む。ブロック403において、現在の新たなトレース情報がトレースFIFO75に記憶され、フローはブロック401に戻る。
図5の方法は、ブロック501において、新たなトレース情報がたとえば、トレースFIFO75に記憶される準備ができるまで待つ。ブロック502において、トレースFIFO75が一杯であるか否かが判定される。トレースFIFO75が一杯でない場合、フローはブロック503に進み、一切の他のすでに記憶されているトレース情報に影響を与えることなく新たなトレース情報がトレースFIFO75に追加され、そうでない場合、FIFO75が一杯になっているのに応答して、フローはブロック504に進み、すでに記憶されているデバッグ情報を含む既存のFIFOエントリをフラッシュすることによって、新たなトレース情報がトレースFIFO75に記憶される。たとえば、最も古いデバッグ情報がフラッシュされることができる。FIFO75が一杯になっていることに応答したデバッグモジュール26の動作様式は、他の様式でも対処されることができることが諒解されよう。たとえば、データプロセッサ42は、FIFO75が一杯になっていることに応答して失速する可能性があり、したがって、FIFO75においてスペースが利用可能になるまでそれ以上命令を実行することが妨げられる。
一実施形態では、デバッグモジュール26は、結果としてFIFO75において待ち行列に入れられているトレース情報がフラッシュされるようにし、それゆえ、フラッシュされるトレース情報が外部相互接続40を介して通信されることを妨げるFIFOフラッシュウォッチポイント(FLUSH_FIFO)を含む、1つまたは複数のFIFOウォッチポイントタイプをサポートする。上述のように、FIFOフラッシュウォッチポイント事象は、ウォッチポイントレジスタWP1〜WPnのうちの1つまたは複数に記憶されているウォッチポイント値がグローバル相互接続12におけるアドレスに一致するのに応答して発生し得る。この事象が発生するのに応答して、FLUSH_FIFO指示子がアサートされる。説明を目的として、FLUSH_FIFO事象が発生するときを判定するためにグローバル相互接続12の物理プログラムアドレスがFLUSH_FIFOウォッチポイントに比較されることが仮定されるが、他の実施形態では、アドレスは他のバスまたはアドレスタイプと関連付けられることができる。したがって、FLUSH_FIFO事象の発生に応答して、ウォッチポイントモジュール70は、トレースFIFO75およびトレースモジュール62にウォッチポイント事象の発生を通知する指示子を提供する。たとえば、ウォッチポイントモジュール70は、たとえばそれぞれトレースFIFO75およびトレースモジュール62に提供される、対応する導電性ノードにおける所定の信号状態を駆動することによって、信号FLUSH_REQおよびFMSG_REQをアサートすることができるが、ウォッチポイントモジュール70と様々な他のモジュールとの間で事象の発生を通信するために他の指示子が使用されることができることが諒解されよう。
FLUSH_REQ指示子がアサートされることに応答して、トレースFIFO75がフラッシュされることになり、FMSG_REQ指示子がアサートされることに応答して、トレースモジュール62が、FIFO75がフラッシュされ、したがって一切の既存のデータが無効化されたことを示す、フラッシュされたFIFO内に記憶されるトレースメッセージを生成する。一実施形態によれば、図6に示すように、トレースFIFO75の内容全体がフラッシュされることになる。
図6は、様々な時点におけるFIFO75の内容をブロック図形式で示す。時点T0において、デバッグ情報はFIFO75に記憶されておらず、それゆえ、空であるとして示されており、FIFOの先頭ポインタ(H)および最後尾ポインタ(T)は両方ともFIFO75の最下部のエントリを指示している。トレースメッセージングがイネーブルされた後、トレース情報T_INFO_0〜T_INFO_9がFIFO75に記憶され、この情報は、外部開発システム36に通信するために取り出されるまでそのままである。したがって、時点T1において、トレース情報T_INFO_0〜T_INFO_9がFIFO75に記憶され、最も古いFIFOエントリを識別する先頭ポインタはT_INFO_0を指示し、次のトレース情報が記憶されることになるFIFOロケーションを指示するFIFO75の最後尾ポインタは、T_INFO_9が記憶されたロケーションの後ろのFIFOロケーションを指示する。
時点T1と時点T2の間に、トレース情報T_INFO_0〜T_INFO_6がFIFO75から取り出されて外部開発システム36に提供され、新たなトレース情報T_INFO_10〜T_INFO_60がFIFO75に記憶される。この結果として、FIFO75の先頭は情報T_INFO_7を指示することになり、FIFO75の最後尾は、T_INFO_60が記憶されたロケーションの後ろのFIFOロケーションを指示することになる。
時点T2の後、FLUSH_FIFOウォッチポイント事象の発生が発生しており、この結果としてFIFO75の内容全体が図6の時点T3において示されるようにフラッシュされることになり、先頭ポインタおよび最後尾ポインタは両方ともFIFO75の同じロケーションを指示する。なお、理解の便宜のために、フラッシュされる前にFIFO75に記憶されていた情報が、いずれの情報がフラッシュされたかを示すために時点T3において示されている。具体的には、情報T_INFO_7〜T_INFO_60がフラッシュされており、それゆえ、外部開発システム36には送信されないことになる。
FIFOフラッシュウォッチポイントの発生を示すアサートされたFMSG_REQ指示子を受信するのに応答して、トレースメッセージ生成器64は、トレースFIFOがフラッシュされた後の時点T4においてトレースFIFO75内に記憶される、図6においてFLUSH_MSGとラベリングされるトレース情報を生成することになる。FLUSH_MSGはFIFOフラッシュウォッチポイントの発生を示し、これによって、外部開発システムツールは、FLUSH_MSGを受信すると、トレース情報が失われたと判定し、それゆえその動作を同期させることが可能になることになる。なお、FIFOのフラッシュはトレース動作モードを変更せず、たとえば、デバッグモジュールは、FIFOがフラッシュされた後もFIFOがフラッシュされる前と同様に、FIFO75内にトレース情報を記憶し続ける。
上述の実施形態はトレースFIFOをフラッシュすることに関連して説明されているが、図7の流れ図に示されているように、追加のタイプのFIFO制御ウォッチポイントが実施されることができることが諒解されよう。具体的には、ブロック701において、デバッグモジュール26は、FIFO75に記憶されているトレース情報を通常の様式で収集しており、一方で、ウォッチポイントモジュール70は、FIFO制御ウォッチポイント、たとえば、デバッグメッセージングがイネーブルされるときにFIFOが動作する様式を制御するウォッチポイントの発生を待っている。FIFO制御ウォッチポイント事象の発生に応答して、フローはブロック702に進む。
ブロック702において、発生したFIFO制御ウォッチポイント事象のタイプが判定され、デバッグモジュール26内で、影響を受けることになるモジュールに通知するために適切な指示子が提供される。たとえば、デバッグモジュール42に存在する第1のFIFOをフラッシュする、FLUSH_FIFO_1と称される第1のタイプのFIFO制御ウォッチポイント、および、外部デバッグモジュール42に存在する第2のFIFOをフラッシュする、FLUSH_FIFO_2と称される第2のタイプのFIFO制御ウォッチポイントがあると仮定して、ブロック702は、FLUSH_FIFO_1に対応する事象が発生するのに応答してブロック703に遷移し、FLUSH_FIFO_2に対応する事象が発生するのに応答してブロック704に遷移する。図2の実施形態に関連して、ウォッチポイントモジュール70の動作はブロック702に対応することができ、複数のフラッシュ要求のうちの1つおよびフラッシュメッセージ要求(図示せず)が生成されることができる。ブロック703において、デバッグモジュールは、FLUSH_FIFO_1に対応する事象に応答して特定の動作を実施し、たとえば、第1のFIFOがフラッシュされて、プログラムフローはブロック701に戻る。ブロック704において、デバッグモジュールは、FLUSH_FIFO_2に対応する事象に応答して特定の動作を実施し、たとえば、データプロセッサ42または外部データプロセッサ42に存在することができる第2のFIFOがフラッシュされて、プログラムフローはブロック701に戻る。
図8は、実行されているプログラムコードの特定のシーケンス801と、ウォッチポイント・トリガ・イネーブル・レジスタ831と、ウォッチポイントレジスタ832とを含む、システム10の一部のブロック図を示す。プログラムコードのシーケンス801は、LOOP_1とラベリングされるループを含むコード部810を含み、このループは、ループの終わりを定義する繰り返し命令に応答して次々と高速に繰り返し実行されることができる。コード部810に存在する、SUB_811とラベリングされるサブルーチンが、LOOP_1が実行されるたびに実行される。
ウォッチポイント・トリガ・イネーブル・レジスタ831およびウォッチポイントレジスタ832は、SUB_811を実行するときにプログラム・トレース・メッセージングおよびデータ・トレース・メッセージングを実行するように構成されており、これはアドレスADDR_3に於いて開始し、アドレスロケーションADDR_4において終了する。具体的には、プログラム・トレース・イネーブル・ウォッチポイントは、レジスタ831のフィールドロケーションPGM_T_ENを、ウォッチポイントレジスタ832のウォッチポイントWP_1に対応する値にアサートすることによってイネーブルされている。ウォッチポイントWP_1は、サブルーチンSUB_811の第1の命令のロケーションである、ADDR_3の値をプログラムされているため、プログラム・トレース・メッセージングは、サブルーチンSUB_811の実行が開始すると開始することになる。同様に、データ・トレース・メッセージングは、レジスタ831のフィールドロケーションDATA_T_ENが同じくウォッチポイントWP_1に対応する値にアサートされていることによって、サブルーチンSUB_811の実行が開始するとイネーブルされる。プログラムおよびデータ・トレース・メッセージングは、サブルーチンSUB_811の最後の命令(ADDR_4)に対応するアドレス値ADDR_4を記憶する、レジスタ831のフィールドロケーションPGM_T_ENBおよびDATA_T_ENBがウォッチポイントWP_2に対応する値にアサートされていることによって、サブルーチンSUB_811が終了するとディセーブルされる。
サブルーチンSUB_811を実行するときにデータおよびトレースメッセージングをイネーブルすることによって、他にウォッチポイントがイネーブルされていないと仮定すると、サブルーチンSUB_811が呼び出されるたびにプログラムおよびトレース情報がデバッグモジュールのトレースFIFOに記憶されることになる。しかしながら、サブルーチンSUB_811に関連付けられるコードのような、非決定論的で多くの回数実行された後に失敗するプログラムコードについて、コードが過度に多くの回数実行されることに起因して、そのような高い割合でFIFOはオーバーする可能性が非常に高いため、トレース情報が外部デバッグツールに通信できるより速くトレースFIFOに記憶され、シリコン欠陥の周囲のデータをキャプチャすることは非常に困難である。この問題に対処するためにFLUSH_FIFOウォッチポイントが使用されることができる。具体的には、図8は、レジスタ831のフィールドロケーションFLUSH_FIFOを、ウォッチポイントWP_0に対応する値にアサートすることによって、FIFOフラッシュウォッチポイントがイネーブルされていることを示す。ウォッチポイントWP_0は、サブルーチンSUB_811の戻りコマンドのロケーションである、ADDR_4の値をプログラムされているため、トレースFIFOはサブルーチンから戻るとフラッシュされることになる。代替的には、サブルーチンSUB_801を呼び出す直前のアドレスが、FIFOをクリアするのに使用されることができる。トレースFIFOをこのようにクリアすることによって、サブルーチンSUB_811が実行されるたびにトレースメッセージを記憶するのに利用可能な記憶スペースがあることが保証されることができることが諒解されよう。
本開示は特定の実施形態に関連して説明されてきたが、本開示を見直すことによって多くの他の実施形態が当業者には明らかであり得ることが諒解されよう。
第1の態様において、方法は、集積回路のトレース動作モードをイネーブルすることと、トレース動作モードがイネーブルされるのに応答して集積回路のメモリにトレース情報を記憶することと、トレース動作モード中に第1のタイプのウォッチポイントの発生が検出されるのに応答して、メモリからトレース情報をフラッシュすることであって、当該メモリをフラッシュすることはトレース動作モードを変更しない、フラッシュすることとを含むことができる。
第1の態様の一実施形態では、メモリは先入れ先出しメモリである。別の態様では、方法は、集積回路において、メモリをフラッシュしたことを示すトレースメッセージを生成することを含み、トレースメッセージは集積回路の外部インターフェースに提供されることになる。さらに別の態様では、方法は、ウォッチポイントの発生を示すトレースメッセージを生成することを含み、トレースメッセージは集積回路の外部インターフェースに提供されることになる。
第1の態様の特定の実施形態では、メモリが一杯であることに応答して、トレース動作モードの間、新たなトレース情報はメモリに記憶されない。より特定的な実施形態では、方法は、第2のタイプのウォッチポイントの発生を検出するのに応答して、トレースモードをイネーブルすることを含む。また別の特定の実施形態では、方法は、集積回路の外部インターフェースにおいてコマンドを受信することと、コマンドの実行に応答してトレースモードをイネーブルすることとを含む。さらにより特定的な実施形態では、ウォッチポイントの発生を検出するのに応答してメモリからトレース情報をフラッシュすることは、メモリフラッシュ指示子をアサートすることを含む。さらなる実施形態では、ウォッチポイントの発生は、アクセス対象のアドレスがウォッチポイントに一致するのに応答して検出される。
第2の態様において、デバイスは、出力を備えるトレースモジュールであって、当該トレースモジュールは出力においてデータプロセッサのトレース情報を提供する、トレースモジュールと、出力を備えるウォッチポイントモジュールであって、当該ウォッチポイントモジュールは、ウォッチポイント事象の発生を検出するのに応答して、出力においてフラッシュ指示子を提供する、ウォッチポイントモジュールと、トレースモジュールの出力およびウォッチポイントモジュールの出力に結合されるメモリモジュールであって、当該メモリモジュールは、フラッシュ指示子に応答してメモリモジュールに記憶されている、バッファリングされたトレース情報をフラッシュする、メモリモジュールとを含むことができる。
第1の態様の一実施形態では、メモリは先入れ先出しメモリである。別の態様では、トレースモジュールはウォッチポイントモジュールに結合され、フラッシュ指示子が提供されていることを示すトレースメッセージを生成するものである。また別の実施形態では、フラッシュ指示子が提供されていることを示すトレースメッセージは、バッファリングされたトレース情報がフラッシュされた後にメモリモジュールに記憶されることになる。さらに別の実施形態では、メモリモジュールは、メモリが一杯になっていることに応答して新たなトレース情報を記憶することにならない。
第2の態様のさらなる実施形態では、ウォッチポイント事象は第1のタイプの第1のウォッチポイント事象であり、ウォッチポイントモジュールは、第2のタイプの第2のウォッチポイント事象の発生を検出するのに応答して、出力においてトレースイネーブル指示子を提供し、トレースモジュールは、トレースイネーブル指示子に応答してトレース情報を提供するようにイネーブルされる。またさらなる実施形態では、デバイスは、ウォッチポイントモジュールに接続されるアドレスバスを含み、ウォッチポイントモジュールは、ウォッチポイント事象の発生を判定するためにアドレスバスにおける値をウォッチポイント値とマッチングする。
第3の態様において、方法は、トレースFIFO制御ウォッチポイント事象の検出をイネーブルすることであって、トレースFIFO制御ウォッチポイントは、データプロセッサの動作のトレース情報を記憶するFIFO(先入れ先出し)メモリの動作を変更する、イネーブルすることと、トレースFIFO制御ウォッチポイントの発生を検出するのに応答して、FIFOの動作状態を、第1の動作状態から第2の動作状態へ変更することであって、FIFOは第1の動作状態と第2の動作状態の両方の間にトレース情報を記憶するようにイネーブルされる、変更することとを含むことができる。
第3の態様の一実施形態では、第2の動作状態は、FIFOに記憶されたトレース情報がフラッシュされているという点で第1の動作状態とは異なる。別の実施形態では、方法は、FIFOの動作状態の変更を示すトレース情報を生成することを含む。また別の実施形態では、トレース情報はFIFOに記憶される。
加えて、他の実施形態が使用されてもよく、または本開示から導出されてもよく、それによって、本開示の範囲から逸脱することなく構造的置換、論理的置換、または別の変更が行われてもよい。本明細書において特定の実施形態が示され説明されたが、同じまたは類所の目的を達成するように設計される任意の後続の構成が示されている特定の実施形態と置き換わってもよいことを諒解されたい。本開示は、様々な実施形態のあらゆる後続の適合または変形をカバーするように意図される。上記の実施形態の組み合わせ、および本明細書に具体的に記載されていない他の実施形態が、本明細書を見直すことによって当業者には明らかになろう。特定の特徴は、明瞭にするために、別個の実施形態の文脈において説明されているが、単一の実施形態内に組み合わせて提供されてもよいことを諒解されたい。逆に、簡潔にするために、単一の実施形態の文脈において説明されている様々な特徴は、別個にまたは任意の小結合において提供されてもよい。さらに、範囲において記載されている値への言及は、その範囲内のあらゆる値を含む。
なお、一般的な説明または例において上述されている活動のすべてが必要であるとは限らず、特定の活動の一部は必要とされない場合があり、記載されているものに加えて、1つまたは複数のさらなる活動が実行されてもよい。またさらに、活動がリストされている順序は、必ずしもそれらが実行される順序であるとは限らない。
利益、他の利点、および問題に対する解決策が具体的な実施形態に関連して上記で説明された。しかしながら、利益、利点、問題に対する解決策、および、任意の利益、利点、または解決策を発生させまたはより明白にする任意の特徴(複数の場合もあり)は、特許請求項のいずれかまたはすべての決定的な、必要とされる、または必須の特徴であると解釈されるべきではない。
上記で開示された主題は限定ではなく例示とみなされるべきであり、添付の特許請求の範囲は、本発明の範囲内に入るあらゆるこのような変更、増強、および他の実施形態をカバーするように意図される。したがって、法によって許容される最大の範囲に対して、本発明の範囲は、添付の特許請求の範囲およびそれらの均等物の最も広い許容される解釈によって決定されるべきであり、上記の詳細な説明によって制限または限定されるべきではない。

Claims (5)

  1. 方法であって、
    集積回路のトレース動作モードをイネーブルすることと、
    前記トレース動作モードがイネーブルされるのに応答して前記集積回路のメモリに第1のトレース情報を記憶することと、
    前記トレース動作モード中に第1のタイプのウォッチポイント(watchpoint)の発生が検出されるのに応答して、第1のトレース情報がトレース解析器に送信される前に、前記メモリから第1のトレース情報全てをフラッシュすることであって、該メモリをフラッシュすることは前記トレース動作モードを変更せず、前記ウォッチポイントの発生を検出することは、第1のトレース情報を記憶した後に発生する、フラッシュすることとを含む、方法。
  2. トレース情報がフラッシュされたことを示す第2のトレース情報を前記メモリに記憶することをさらに含み、前記フラッシュされたトレース情報はトレース解析送信されないが、第2のトレース情報はトレース解析送信されることになる、請求項1に記載の方法。
  3. 第1のタイプの前記ウォッチポイントの前記発生を検出ことに応答して、第1のタイプのウォッチポイントの発生によってトレース情報がフラッシュされたことを示すフラッシュトレースメッセージを生成することをさらに含み、前記フラッシュトレースメッセージは前記集積回路の外部インターフェースに提供されることになる、請求項1に記載の方法。
  4. デバイスであって、
    出力部を備えるトレースモジュールであって、該トレースモジュールはトレース解析のために前記出力部においてデータプロセッサのトレース情報を送信する、トレースモジュールと、
    出力部を備えるウォッチポイントモジュールであって、該ウォッチポイントモジュールは、ウォッチポイント事象の発生を検出するのに応答して、前記出力部においてフラッシュ指示子を提供する、ウォッチポイントモジュールと、
    前記トレースモジュールの前記出力部および前記ウォッチポイントモジュールの前記出力部に結合されるメモリモジュールであって、該メモリモジュールは、フラッシュ識別子に応答して、前記メモリモジュールに記憶されているバッファリングされたトレース情報がトレース解析器に送信される前に、前記バッファリングされたトレース情報全てをフラッシュする、メモリモジュールとを備える、デバイス。
  5. 前記トレースモジュールは、前記ウォッチポイントモジュールに結合され、前記フラッシュ指示子が提供されていることを示すフラッシュ特有のトレースメッセージを生成するものである、請求項4に記載のデバイス。
JP2013176861A 2012-08-29 2013-08-28 ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法 Active JP6360665B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/598,240 US9069896B2 (en) 2012-08-29 2012-08-29 Data processor device for handling a watchpoint and method thereof
US13/598,240 2012-08-29

Publications (3)

Publication Number Publication Date
JP2014049131A JP2014049131A (ja) 2014-03-17
JP2014049131A5 JP2014049131A5 (ja) 2016-09-29
JP6360665B2 true JP6360665B2 (ja) 2018-07-18

Family

ID=50189197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013176861A Active JP6360665B2 (ja) 2012-08-29 2013-08-28 ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法

Country Status (3)

Country Link
US (1) US9069896B2 (ja)
JP (1) JP6360665B2 (ja)
CN (1) CN103678112B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047400B2 (en) 2012-08-29 2015-06-02 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof
US9639447B2 (en) * 2013-11-05 2017-05-02 Texas Instruments Incorporated Trace data export to remote memory using remotely generated reads
US9753823B2 (en) * 2015-04-09 2017-09-05 Nxp Usa, Inc. System and method for providing diagnostic information
GB2540942B (en) * 2015-07-31 2019-01-23 Advanced Risc Mach Ltd Contingent load suppression
GB2548398B (en) * 2016-03-18 2019-12-11 Advanced Risc Mach Ltd Tracing processing activity
CN110727577B (zh) * 2019-08-29 2023-06-09 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 嵌入式系统软件中概率复现问题的调试方法、系统及介质
US11016773B2 (en) * 2019-09-27 2021-05-25 Intel Corporation Processor trace extensions to facilitate real-time security monitoring

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844595A (ja) * 1994-07-29 1996-02-16 Toshiba Corp トレース採取/記録装置
US5809293A (en) 1994-07-29 1998-09-15 International Business Machines Corporation System and method for program execution tracing within an integrated processor
US6094729A (en) 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6142683A (en) 1997-04-08 2000-11-07 Advanced Micro Devices, Inc. Debug interface including data steering between a processor, an input/output port, and a trace logic
US6918065B1 (en) * 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US20020087949A1 (en) * 2000-03-03 2002-07-04 Valery Golender System and method for software diagnostics using a combination of visual and dynamic tracing
JP4074057B2 (ja) * 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
US6834360B2 (en) * 2001-11-16 2004-12-21 International Business Machines Corporation On-chip logic analyzer
US6877114B2 (en) 2002-02-14 2005-04-05 Delphi Technologies, Inc. On-chip instrumentation
JP2003296136A (ja) * 2002-04-04 2003-10-17 Mitsubishi Electric Corp トレース装置
GB2389931B (en) * 2002-06-07 2005-12-14 Advanced Risc Mach Ltd Generation of trace elements within a data processing apparatus
US7149926B2 (en) 2003-05-22 2006-12-12 Infineon Technologies Ag Configurable real-time trace port for embedded processors
US20060277435A1 (en) 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
US7610517B2 (en) 2006-09-14 2009-10-27 Innovasic, Inc. Microprocessor with trace functionality
JP2008191788A (ja) * 2007-02-01 2008-08-21 Ricoh Co Ltd 情報処理装置
EP2061274A1 (en) * 2007-11-19 2009-05-20 Oticon A/S Hearing instrument using receivers with different performance characteristics
US20090172420A1 (en) * 2007-12-31 2009-07-02 Kabushiki Kaisha Toshiba Tamper resistant method and apparatus for a storage device
GB2461716A (en) 2008-07-09 2010-01-13 Advanced Risc Mach Ltd Monitoring circuitry for monitoring accesses to addressable locations in data processing apparatus that occur between the start and end events.
US9047400B2 (en) 2012-08-29 2015-06-02 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof

Also Published As

Publication number Publication date
US20140068346A1 (en) 2014-03-06
US9069896B2 (en) 2015-06-30
CN103678112B (zh) 2018-01-30
CN103678112A (zh) 2014-03-26
JP2014049131A (ja) 2014-03-17

Similar Documents

Publication Publication Date Title
US9047400B2 (en) Data processor device for handling a watchpoint and method thereof
JP6360665B2 (ja) ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法
US7200776B2 (en) System and method for generating trace data in a computing system
US7689867B2 (en) Multiprocessor breakpoint
WO2020207040A1 (zh) 片上调试装置和方法
US8145874B2 (en) System and method of data forwarding within an execution unit
US8201025B2 (en) Debug messaging with selective timestamp control
US8438547B2 (en) Address translation trace message generation for debug
US9223678B2 (en) Data processor device having a debug control module which selectively modifies trace messages
US9201749B2 (en) Diagnosing code using single step execution
US20140068344A1 (en) Method and apparatus for filtering trace information
US8935577B2 (en) Method and apparatus for filtering trace information
JP2010044747A (ja) ソフトウェアアプリケーション用メッセージロギング
JP2010505195A (ja) キャッシュ・メモリ・デバッグ・サポートを有するデータ処理システムおよびそのための方法
EP2435918B1 (en) Integrated circuit comprising trace logic and method for providing trace information
JP5628411B2 (ja) 半導体装置
US8984344B2 (en) Stack-based trace message generation for debug and device thereof
EP1125200B1 (en) Maintaining object size information concurrent with data optimization for debugging
US20150149984A1 (en) Determining instruction execution history in a debugger
JP5467172B1 (ja) 情報処理システム、および情報処理方法
CN108681500B (zh) 具有事务记录能力的系统和事务记录方法
CN115269309A (zh) 一种处理器微架构监测方法及装置
JP2008293061A (ja) 半導体装置、及び半導体装置のデバッグ方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160816

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180625

R150 Certificate of patent or registration of utility model

Ref document number: 6360665

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250