JP2011154459A - コンピュータシステムのプログラム異常動作検出装置 - Google Patents

コンピュータシステムのプログラム異常動作検出装置 Download PDF

Info

Publication number
JP2011154459A
JP2011154459A JP2010014452A JP2010014452A JP2011154459A JP 2011154459 A JP2011154459 A JP 2011154459A JP 2010014452 A JP2010014452 A JP 2010014452A JP 2010014452 A JP2010014452 A JP 2010014452A JP 2011154459 A JP2011154459 A JP 2011154459A
Authority
JP
Japan
Prior art keywords
address
branch
program
data
instruction
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.)
Pending
Application number
JP2010014452A
Other languages
English (en)
Inventor
Yasunori Kubota
靖則 窪田
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 JP2010014452A priority Critical patent/JP2011154459A/ja
Publication of JP2011154459A publication Critical patent/JP2011154459A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】コンピュータシステムのプログラム異常動作を検出するために必要となる記憶容量を大幅に縮小する技術を提供する。
【解決手段】プログラム異常動作検出装置100は、プログラムカウンタ112aを有するCPU112と、分岐命令とこの分岐命令に対応する分岐先アドレスとが分岐先アドレスのアドレスが分岐命令のアドレスの次のアドレスとなるように記憶されたプログラムメモリ111と、プログラムカウンタ112aの出力値が不連続に変化したことを検知して分岐検知信号116を発生する分岐検知回路115と、分岐検知信号116に応答して、プログラムカウンタ112aの出力値と、プログラムメモリ111内で、前記CPU112によって直前に実行された命令のアドレスの次のアドレスに記憶されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号130を発生するアドレス比較回路119と、を備える。
【選択図】図1

Description

本発明は、コンピュータシステムのプログラム異常動作検出装置に関する。
近年のディジタル技術の発展に伴い、携帯型電子機器のような小型機器や自動車、製造機械の制御装置など、多くの電子機器においてマイクロコンピュータが使用される頻度が高くなってきている。マイクロコンピュータは、プログラムに含まれる命令コードを順次解読し、プログラムに従って処理を行う事で所望の機能を実現している。しかし、マイクロコンピュータは、外部ノイズ等の影響によってプログラムの実行順に従った正常な動作から逸脱して異常な動作を行う事がある。よって、プログラムの実行順を監視し、正常な動作から逸脱した場合は意図した動作か否かを判断し、誤った動作が行われた場合には異常動作が発生した事を検出する必要がある。
この種の技術として、特許文献1は、プログラム暴走を検出することが出来るコンピュータシステムのプログラム暴走監視装置を提供する。このプログラム暴走監視装置は、プログラムカウンタの出力値が不連続に変化した事を検知し、検知した時のプログラムカウンタの出力値によって指定されるアドレスと分岐先メモリに記憶されていた分岐先アドレスとを比較し、比較結果が不一致だった場合に暴走検出信号を発生するようになっている。以下、このプログラム暴走監視装置の構成と作動を具体的に説明する。
図16は特許文献1におけるプログラム暴走監視装置のブロック図である。図17は特許文献1におけるプログラムメモリに記憶されている命令をアドレス毎に示す図である。図18は特許文献1における分岐先アドレスに記憶されている分岐先アドレスをアドレス毎に示す図である。図19は特許文献1におけるプログラム暴走監視装置を適用したコンピュータシステムのブロック図である。
図16において分岐先メモリ15は、図18に示すように、図17で示すプログラムメモリと同一のアドレスが割り振られている。即ち、分岐先メモリ15の各アドレスは、プログラムメモリの各アドレスに一対一で対応している。更に、プログラムメモリの最初のアドレスから最初の分岐命令のアドレスまでのアドレス範囲に相当する分岐先メモリ15の各アドレスには、上記分岐命令後に実行される命令が記憶されているアドレスが記憶されている。また、プログラムメモリのある分岐命令のアドレスに続く次のアドレスから次の分岐命令のアドレスまでのアドレス範囲に相当する分岐先メモリ15の各アドレスには、上記分岐命令後に実行される命令が記憶されているアドレスが記憶されている。
分岐先レジスタ20には分岐先メモリ15から読み出されたデータが保持される。
アドレスインクリメンタ21はプログラマブルカウンタからなる。アドレスインクリメンタ21は、CPU11から供給される動作情報信号の内容に応じてアドレスバス12からアドレスデータを取得し、取得したアドレスデータを初期値とし、クロックパルスの発生タイミングで1ずつカウントアップする。
分岐検知回路22はアドレスインクリメンタ21の出力値とアドレスバス12のアドレスデータとを比較し、比較結果が不一致のときに分岐検知信号を発生する。分岐先アドレス比較回路23は分岐検知回路22から分岐検知信号が供給されると、分岐先レジスタ20が保持しているデータとアドレスバス12から供給されるアドレスデータとを比較し暴走監視出力信号を発生する。
次に上記プログラム暴走監視装置の動作について説明する。CPU11において分岐命令が実行されると、プログラムカウンタ11aには分岐先アドレスがセットされる。アドレスインクリメンタ21はCPU11の動作に関係なくカウントアップを継続するため、アドレスインクリメンタ21の出力値は単にカウントアップした値となる。よって、アドレスインクリメンタ21の出力値とアドレスバス12からのアドレスデータとは不一致となるので、分岐検知回路22は分岐検知信号を発生する。分岐検知信号は分岐先アドレス比較回路23に供給され、分岐検知信号がアクティブのとき分岐先アドレス比較回路23は分岐先レジスタ20から出力されているデータとアドレスバス12から供給されるアドレスデータとを比較する。分岐先レジスタ20から出力されているデータとアドレスバス12から供給されるアドレスデータが一致した場合、プログラムカウンタ11aの出力値は正しい分岐先アドレスという事になる。よって分岐先アドレス比較回路23は正常を示す暴走監視出力信号を出力する。分岐先レジスタ20から出力されているデータとアドレスバス12から供給されるアドレスデータが不一致となった場合、プログラムカウンタ11aの出力値は誤った動作に起因したアドレスということになる。よって分岐先アドレス比較回路23は異常を示す暴走監視出力信号を出力する。
特開平10−63541号公報
上記のプログラム暴走監視装置では、図19で示すようにプログラムカウンタ11aの出力値をプログラムが記憶されているROM14と分岐先メモリ15に供給し、ROM14と分岐先メモリ15の同一アドレスからデータを読み出している。分岐先メモリ15から読み出されたデータが分岐先アドレス比較回路23に入力され、分岐検知信号が発生した時のプログラムカウンタ11aの出力値と分岐先メモリ15から読み出されたデータとを比較する事によって異常動作検出を行っている。よって、分岐先メモリ15としては、プログラムが記憶されているROM14と同じアドレス群を持った大容量の記憶装置が必要となる。従って、分岐先メモリ15として利用する記憶装置のために、半導体チップ上に膨大な面積を確保する必要がある。
また、上記特許文献1の他の実施例として、プログラム中の分岐命令が実行されるまでは分岐先メモリ15のある特定のアドレスから分岐先アドレスを読み出す事で分岐先メモリ15の記憶容量を少なくすることが出来るとある。しかし、実現する手段として分岐命令毎に分岐先メモリ15の特定のアドレスから分岐先アドレスを読み出すためのデコード回路が必要となる。さらに、デコード回路は分岐命令毎に分岐先メモリ15の読み出すアドレスが固定されているため、プログラムが修正され分岐命令の位置が変化してしまうと、デコード回路も修正が必要となる。よって、特許文献1に示されているデコード回路はプログラムの修正に対応できないため、実現性に問題がある。
本願発明の第1の観点によれば、コンピュータシステムのプログラム異常動作検出装置は、以下のように構成されている。即ち、プログラム異常動作検出装置は、プログラムカウンタを有する中央演算処理装置と、分岐命令と、この分岐命令に対応する分岐先アドレスと、が、前記分岐先アドレスのアドレスが前記分岐命令のアドレスに対して所定の位置関係となるように記憶された記憶手段と、前記プログラムカウンタの出力値が不連続に変化したことを検知して分岐検知信号を発生する分岐検知手段と、前記分岐検知信号に応答して、前記プログラムカウンタの出力値と、前記記憶手段内で、前記中央演算処理装置によって直前に実行された命令のアドレスに対して前記所定の位置関係のアドレスに記憶されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号を発生する比較手段と、を含む。
本願発明の第2の観点によれば、コンピュータシステムのプログラム異常動作検出は、以下のような方法で行われる。即ち、分岐命令と、この分岐命令に対応する分岐先アドレスと、を、前記分岐先アドレスのアドレスが前記分岐命令のアドレスに対して所定の位置関係となるように記憶し、前記プログラムカウンタの出力値が不連続に変化したことを検知し、上記の検知に応答して、前記プログラムカウンタの出力値と、前記中央演算処理装置によって直前に実行された命令のアドレスに対して前記所定の位置関係のアドレスに記憶されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号を発生する。
本願発明によれば、コンピュータシステムのプログラム異常動作を検出するために必要となる記憶容量を大幅に縮小することが可能となる。
本願発明の実施例1のプログラム異常動作検出装置を示すブロック図 図1のプログラムメモリのアドレス毎の格納データを示す図 図1の比較データ・レジスタの具体例を示す図 図1の分岐検知回路の具体例を示す図 図1のアドレス比較回路の具体例を示す図 実施例1の動作を示すフローチャート 実施例1において分岐命令以外の命令で分岐動作が発生した場合のタイミングチャート 実施例1において分岐命令実行後に誤ったアドレスに分岐した場合のタイミングチャート 実施例1において分岐命令実行後に正しいアドレスに分岐した場合のタイミングチャート 本願発明の実施例2のプログラム異常動作検出装置を示すブロック図 図10のプログラムメモリのアドレス毎の格納データを示す図 実施例2において条件分岐命令で分岐条件が成立しなかった場合のタイミングチャート 本願発明の実施例3のプログラム異常動作検出装置を示すブロック図 図13のプログラムメモリのアドレス毎の格納データを示す図 実施例3において分岐先アドレスがレジスタ間接アドレス指定によって決定される分岐命令で分岐動作が発生した場合のタイミングチャート 特許文献1のプログラム暴走監視装置のブロック図 特許文献1の暴走監視装置においてプログラムが記憶されているプログラムメモリのアドレス毎の命令を示す図 図16の分岐先メモリのアドレス毎の分岐先アドレスを示す図 特許文献1の暴走監視装置を適用したコンピュータシステムを示すブロック図
<実施例1>
以下、図1〜図9を参照しつつ、本願発明の実施例1に係るマイクロコンピュータ(コンピュータシステム)のプログラム異常動作検出装置100を説明する。実施例1では、分岐命令が無条件分岐命令であり、プログラム中で分岐命令実行後に実行される命令が記憶されている記憶位置データ(以降、分岐先アドレスと称す)が一意に決定される分岐命令を対象としている。
プログラムメモリ111(記憶手段)の各アドレスには、図2で示すようにCPU112(中央演算処理装置)が実行する命令と分岐先アドレスが記憶されている。プログラムメモリ111のデータ領域に記憶されている分岐先アドレスは、分岐命令が記憶されている記憶位置(アドレス)の次の記憶位置(アドレス)に記憶されている。即ち、プログラムメモリ111には、分岐命令と、この分岐命令に対応する分岐先アドレスと、が、分岐先アドレスのアドレスが分岐命令のアドレスに対して所定の位置関係となるように記憶されている。換言すれば、プログラムメモリ111には、1つの分岐命令に対して1つの分岐先アドレスが一対一に相関して記憶されいている。そして、本実施形態において所定の位置関係とは、"次のアドレス"を意味している。プログラムメモリ111には、アドレスバス113を介してCPU112に内蔵されているプログラムカウンタ112aの出力値が供給される。プログラムメモリ111は、供給された出力値で指定されるアドレスに記憶されているデータを取り出し、データバス114に出力する。
CPU112は、プログラムメモリ111がデータバス114に出力したデータを取り込み、取り込んだデータを実行する。
比較データ・レジスタ117(比較データ保持手段)は、プログラムメモリ111が出力したデータをデータバス114を介して取り込み保持する。詳しくは、比較データ・レジスタ117は、プログラムメモリ111内で、CPU112によって直前に実行された命令のアドレスの次のアドレスに記憶されているデータを保持する。
分岐検知回路115(分岐検知手段)は、プログラムカウンタ112aの出力値が不連続に変化したことを検知して分岐検知信号116を発生する。詳しくは、分岐検知回路115は、アドレスカウンタ115aと比較器115bから構成される。分岐検知回路115には、アドレスバス113を介してプログラムカウンタ112aの出力値が入力される。アドレスカウンタ115aは、プログラムカウンタ112aの出力値を初期値としてクロックパルスのタイミングに同期してカウントアップする。よって、アドレスカウンタ115aの出力値は分岐命令によってプログラムカウンタ112aの出力値が不連続とならない限りプログラムカウンタ112aの出力値と同じである。比較器115bは、プログラムカウンタ112aの出力値とアドレスカウンタ115aの出力値を比較し、比較結果が不一致の場合に分岐検知信号116を発生する。アドレスカウンタ115aは、分岐検知信号116が入力されるとプログラムカウンタ112aの出力値を取り込む。そして、アドレスカウンタ115aは、取り込んだ値に1を加算した値を新たな初期値に設定する。
アドレス比較回路119(比較手段)は、分岐検知信号116に応答して、プログラムカウンタ112aの出力値と、プログラムメモリ111内で、CPU112によって直前に実行された命令のアドレスの次のアドレスに記憶されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号130を発生する。ここで、本実施形態では上記の比較データ・レジスタ117が設けられている。従って、本実施形態に係るアドレス比較回路119は、分岐検知信号116に応答して、プログラムカウンタ112aの出力値と、比較データ・レジスタ117によって保持されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号130を発生するようになっている。即ち、アドレス比較回路119は、分岐検知信号116が入力されると、アドレスバス113を介してプログラムカウンタ112aの出力値を取り込むと同時に、比較データ出力バス118を介して比較データ・レジスタ117に格納されているデータを取り込む。アドレス比較回路119は、前記2つの値を取り込んだ後、取り込んだ2つの値を比較し、比較結果が不一致の場合に異常検出信号130を発生する。
図3に比較データ・レジスタ117の具体例を示す。比較データ・レジスタ117は、データバス114のビット数と同じビット数のフリップフロップで構成された回路である。
図4に分岐検知回路115の具体例を示す。分岐検知回路115は、アドレスバス113のアドレスデータとアドレスカウンタ115aの出力値の排他的論理和を分岐検知信号116として出力する回路である。アドレスカウンタ115aはプログラムカウンタ112aのビット数と同じビット数から構成される。アドレスカウンタ115aの入力信号は、分岐検知信号116によって切り替えられる。アドレスカウンタ115aの入力信号として、分岐検知信号116が"0"の時はアドレスカウンタ115aの出力値が選択され、"1"の時はアドレスバス113のアドレスデータが選択される。
図5にアドレス比較回路119の具体例を示す。アドレス比較回路119は、分岐検知信号116によって入力信号が切り替えられるプログラムカウンタ格納レジスタ119aと比較データ格納レジスタ119bを持ち、プログラムカウンタ格納レジスタ119aの出力値と比較データ格納レジスタ119bの出力値との排他的論理和を異常検出信号130として出力する回路である。プログラムカウンタ格納レジスタ119aと比較データ格納レジスタ119bは、分岐検知信号116が"0"の時は互いに値を保持し、"1"の時はプログラムカウンタ格納レジスタ119aにはアドレスバス113のアドレスデータがセットされ、比較データ格納レジスタ119bには比較データ出力バス118のデータがセットされる。
本実施形態に係るコンピュータシステムのプログラム異常動作検出装置100は、少なくとも、プログラムメモリ111と、CPU112と、分岐検知回路115と、アドレス比較回路119を含んで構成されている。本実施形態では、プログラム異常動作検出装置100は、更に、比較データ・レジスタ117を備えて構成されている。
次に、図1と図6を参照しつつ、プログラム異常動作検出装置100の作動を説明する。先ず、プログラム異常動作検出装置100が動作を開始すると(S211)、CPU112は、CPU112が内蔵しているプログラムカウンタ112aの出力値で指定されるプログラムメモリ111のアドレスからデータを読み出す(S212)。
CPU112は、プログラムメモリ111から読み出したデータを実行する(S213)。この実行結果に従って、CPU112は、プログラムカウンタ112aの値を更新する。ステップS213の処理と並行して、ステップS212でプログラムメモリ111から読み出されたデータは、データバス114を介して比較データ・レジスタ117に格納される(S214)。ステップS213及びステップS214の処理と並行して、分岐検知回路115を構成しているアドレスカウンタ115aは、クロックパルスのタイミングに同期してカウントアップを行う(S215)。
分岐検知回路115を構成している比較器115bは、更新されたプログラムカウンタ112aの出力値と、更新されたアドレスカウンタ115aの出力値と、を比較する(S216)。
ステップS216の比較結果が一致した場合(連続動作:YES)は、ステップS212に戻り、再度、データの読み出しを行う(S212)。ステップS216の比較結果が不一致の場合(連続動作:NO)は、分岐検知回路115が分岐検知信号116を出力する(S217)。
アドレス比較回路119に分岐検知信号116が入力されると、アドレス比較回路119はプログラムカウンタ112aの出力値と比較データ・レジスタ117に格納されているデータを取り込む(S218)。そして、アドレス比較回路119は、プログラムカウンタ112aの出力値と、比較データ・レジスタ117に格納されているデータと、を比較する(S219)。ステップS219の比較結果が一致した場合(アドレス比較:一致)は、ステップS212に戻り、再度、データの読み出しが行われる(S212)。ステップS219の比較結果が不一致だった場合(アドレス比較:不一致)は、アドレス比較回路119は、異常検出信号130を発生し(S220)、異常動作が発生した事を例えばCPU112などに通知する。
ステップS217で分岐検知回路115が出力した分岐検知信号116は、アドレスカウンタ115aにも入力される。アドレスカウンタ115aは、分岐検知信号116が入力されると、プログラムカウンタ112aの出力値を取り込み、取り込んだ値に1を加算した値を新たな初期値に設定して動作を継続する(S221)。
次に、図7〜図9を参照しつつ、プログラム異常動作検出装置100の詳細な作動を説明する。
(詳細な作動:パターン1)
図7は分岐命令以外の命令(一般命令)で分岐動作が発生した場合のタイミングチャートである。
サイクルT1でプログラムカウンタ112aにアドレス$02が設定されると、データバス114にはプログラムメモリ111のアドレス$02に記憶されている一般命令(D02)が出力される。出力された一般命令(D02)は、サイクルT2でCPU112と比較データ・レジスタ117に取り込まれる。CPU112では取り込まれた一般命令(D02)が実行される。一般命令(D02)が実行された時、例えばCPU112の異常動作によってサイクルT3のプログラムカウンタ112aにアドレス$17が設定され、異常な分岐動作が発生したとする。アドレスカウンタ115aは、クロックパルスに同期してカウントアップを行っているため、サイクルT3では"4"を示している。よって、比較器115bで比較されるプログラムカウンタ112aとアドレスカウンタ115aの値が異なるため、サイクルT3で分岐検知回路115から分岐検知信号116が出力される。CPU112は、分岐検知信号116が入力されると命令の実行を中断し、待機状態となる。アドレス比較回路119に分岐検知信号116が入力されると、アドレス比較回路119は、分岐検知信号116が発生した時のプログラムカウンタ112aの値と比較データ・レジスタ117に格納されている値をサイクルT4で取り込み、取り込んだデータの比較を行う。取り込まれたプログラムカウンタ112aの値はサイクルT3で設定されていたアドレス$17であり、比較データ・レジスタ117の値はサイクルT3で格納された一般命令(D03)である。よって、比較結果は不一致となり、アドレス比較回路119は異常検出信号130を出力し、異常動作を検出する。
(詳細な作動:パターン2)
図8は、分岐命令実行後に誤った分岐先に分岐した場合のタイミングチャートである。
サイクルT1でプログラムカウンタ112aにアドレス$04が設定されると、データバス114にはプログラムメモリ111のアドレス$04に記憶されている分岐命令(D04)が出力される。出力された命令は、サイクルT2でCPU112と比較データ・レジスタ117に取り込まれる。CPU112では取り込まれた分岐命令(D04)が実行される。分岐命令(D04)が実行された時、例えばCPU112の異常動作によってサイクルT3のプログラムカウンタ112aにアドレス$AAが設定され、誤った分岐先に分岐したとする。アドレスカウンタ115aは、クロックパルスに同期してカウントアップを行っているため、サイクルT3では"6"を示している。よって、比較器115bで比較されるプログラムカウンタ112aとアドレスカウンタ115aの値が異なるため、サイクルT3で分岐検知回路115から分岐検知信号116が出力される。CPU112は、分岐検知信号116が入力されると命令の実行を中断し、待機状態となる。アドレス比較回路119に分岐検知信号116が入力されると、アドレス比較回路119は、分岐検知信号116が発生した時のプログラムカウンタ112aの値と比較データ・レジスタ117に格納されている値をサイクルT4で取り込み、取り込んだデータの比較を行う。取り込まれたプログラムカウンタ112aの値はサイクルT3で設定されていたアドレス$AAであり、比較データ・レジスタ117の値はサイクルT3で格納された分岐命令(D04)の分岐先アドレスであるアドレス$17である。よって、比較結果は不一致となり、アドレス比較回路119は異常検出信号130を出力し、異常動作を検出する。
(詳細な作動:パターン3)
図9は、分岐命令実行後に正しいアドレスに分岐した場合のタイミングチャートである。
サイクルT1でプログラムカウンタ112aにアドレス$04が設定されると、データバス114にはプログラムメモリ111のアドレス$04に記憶されていた分岐命令(D04)が出力される。出力された命令は、サイクルT2でCPU112と比較データ・レジスタ117に取り込まれる。CPU112では取り込まれた分岐命令(D04)が実行される。分岐命令(D04)が実行されると、サイクルT3のプログラムカウンタ112aはアドレス$17を示す。アドレスカウンタ115aは、クロックパルスに同期してカウントアップを行っているため、サイクルT3では"6"を示している。よって、比較器115bで比較されるプログラムカウンタ112aとアドレスカウンタ115aの値が異なるため、サイクルT3で分岐検知回路115から分岐検知信号116が出力される。CPU112は、分岐検知信号116が入力されると命令の実行を中断し、待機状態となる。アドレス比較回路119に分岐検知信号116が入力されると、アドレス比較回路119は、分岐検知信号116が発生した時のプログラムカウンタ112aの値と比較データ・レジスタ117に格納されている値をサイクルT4で取り込み、取り込んだデータの比較を行う。取り込まれたプログラムカウンタ112aの値はサイクルT3で設定されていたアドレス$17であり、比較データ・レジスタ117の値はサイクルT3で格納されたアドレス$17である。よって、比較結果は一致となり、アドレス比較回路119は異常検出信号130を出力しない。アドレスカウンタ115aは、分岐検知信号116が入力されるとサイクルT3のプログラムカウンタ112aの値を取り込み、取り込んだ値に1を加算した値を新たな初期値としてカウントアップを継続する。
(まとめ)
(1)以上説明したように、本実施例1に係るプログラム異常動作検出装置100は、プログラムカウンタ112aを有するCPU112と、分岐命令と、この分岐命令に対応する分岐先アドレスと、が、前記分岐先アドレスのアドレスが前記分岐命令のアドレスに対して所定の位置関係となるように記憶されたプログラムメモリ111と、前記プログラムカウンタ112aの出力値が不連続に変化したことを検知して分岐検知信号116を発生する分岐検知回路115と、前記分岐検知信号116に応答して、前記プログラムカウンタ112aの出力値と、前記プログラムメモリ111内で、前記CPU112によって直前に実行された命令のアドレスに対して前記所定の位置関係のアドレスに記憶されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号130を発生するアドレス比較回路119と、を備えている。以上の構成によれば、プログラム異常動作を検出するために必要となる記憶容量を大幅に縮小することが可能となる。
具体的には、プログラム異常動作の検出を行うために必要となる記憶装置の容量は、分岐命令が例えば32ビットであるとすると、32ビット×(プログラムに含まれる分岐命令の数)だけで済むことになる。
上記実施例1の技術と上記特許文献1の技術を比較すると以下のようになる。即ち、仮に、プログラムに含まれる命令の数が2000個であり、そのうち30%に相当する600個が分岐命令であり、一つの命令が32ビットで構成されているとする。この場合、上記特許文献1の技術では、32ビット×2000個=64kビットの記憶容量を有する記憶装置を別途、用意する必要があった。これに対し、上記実施形態の技術では、32ビット×600個=19.2kビットの記憶容量をプログラムメモリ111内に確保するだけで足りる。従って、上記実施例1の技術は、上記特許文献1の技術と比較して、記憶装置のために半導体上に確保しなければならない面積を大幅に縮小することができる。
(2)また、前記所定の位置関係は、次のアドレスであることが好ましい。
(3)また、プログラム異常動作検出装置100は、プログラムメモリ111内で、CPU112によって直前に実行された命令のアドレスに対して前記所定の位置関係のアドレスに記憶されているデータを保持する比較データ・レジスタ117を更に備え、アドレス比較回路119は、前記分岐検知信号116に応答して、前記プログラムカウンタ112aの出力値と、前記比較データ・レジスタ117によって保持されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号130を発生することが好ましい。
<実施例2>
次に、図10〜図12を参照しつつ、本願発明の実施例2に係るマイクロコンピュータのプログラム異常動作検出装置100を説明する。上記実施例1では、分岐命令が無条件分岐命令である場合を説明したが、本実施例2では、分岐条件が無条件分岐のみならず、条件分岐命令であっても問題なくプログラムの異常動作を検出するための技術に関する。以下、上記実施例1と相違する点を中心に説明し、重複する説明については適宜省略する。
実施例2では、図11に示すようにプログラムメモリ111に1ビットのアドレス・フラグが追加されており、プログラムメモリ111に記憶されているデータが分岐先アドレスであった場合、アドレス・フラグは"1"に設定されるようになっている。そして、プログラムメモリ111からデータを読み出したとき、アドレス・フラグの値を確認し、アドレス・フラグが"1"となっていたら、CPU112に入力されるデータを、いわゆるオペレーションなし命令(以下、nop命令と称する。)に置き換えるようになっている。これにより、分岐命令が無条件分岐命令ではなく、条件分岐命令であったとしても、CPU112に分岐先アドレスが入力されてしまう、といった問題を確実に回避できるようになっている。
次に実施例2に係るプログラム異常動作検出装置100の構成について図10を用いて説明する。
プログラムメモリ111から読み出され、CPU112に取り込まれるまでのデータバス114の途中に選択回路120(入力データ選択手段)が設けられる。選択回路120は、CPU112に対して、分岐先アドレスが入力されることを禁止する。具体的には、選択回路120には、プログラムメモリ111からの出力信号と、nop命令出力回路121からの出力信号(nop命令)、プログラムメモリ111から出力されるアドレス・フラグ信号122が入力される。選択回路120は、アドレス・フラグ信号122が"0"のときはプログラムメモリ111からの出力信号をCPU112へそのまま出力する。しかしながら、選択回路120は、アドレス・フラグ信号122が"1"のときはnop命令出力回路121からの出力信号をCPU112へ出力する。
次に、図12を参照しつつ、プログラム異常動作検出装置100の詳細な作動を説明する。
(詳細な作動:パターン4)
図12は、CPU112が条件分岐命令を実行し、分岐条件が成立しなかった場合のタイミングチャートである。
サイクルT1でプログラムカウンタ112aにアドレス$04が設定されると、データバス114にはプログラムメモリ111のアドレス$04に記憶されていた分岐命令(D04)が出力される。データバス114に出力された分岐命令(D04)は、サイクルT2でCPU112に取り込まれる。CPU112は、取り込んだ分岐命令(D04)を実行する。CPU112に取り込まれた分岐命令(D04)が条件分岐命令であり、分岐条件が成立しなかった場合、分岐動作が発生しないため、サイクルT3のプログラムカウンタ112aはアドレス$06が設定される。ここで、分岐動作が発生しなかったため、CPU112には分岐検知信号116が入力されず、従って、サイクルT3でもCPU112は通常通り、命令実行を行うことになる。また、サイクルT3でCPU112が実行する命令はサイクルT2でデータバス114に出力されているデータである。従って、このままだと、CPU112が分岐先アドレスを実行する、という事態が発生してしまう。そこで、サイクルT2でプログラムメモリ111から読み出されるアドレス・フラグ信号122が"1"を示しているため、選択回路120は、nop命令出力回路121から出力されたnop命令をCPU112へ出力する。この結果、CPU112は、サイクルT3において、プログラムメモリ111に記憶されていた分岐先アドレスに代えて、nop命令出力回路121が出力したnop命令を実行し、問題なく、サイクルT4へ動作を継続することになる。
(まとめ)
(4)以上説明したように、本実施例2に係るプログラム異常動作検出装置100は、CPU112に対して、分岐先アドレスが入力されることを禁止する、選択回路120を更に備える。以上の構成によれば、プログラムメモリ111に記憶されている分岐命令として無条件分岐命令のみならず条件分岐命令が含まれていたとしても問題ない。つまり、CPU112は、分岐命令を実行し、分岐条件が不成立となった場合は、分岐条件のアドレスの次のアドレスに記憶されているデータを実行しようとする。しかしながら、分岐条件のアドレスの次のアドレスには分岐先アドレスが記憶されている。従って、CPU112は分岐先アドレスを実行してしまうという事態が発生してしまう。これに対し、上記の選択回路120を設けることで、少なくとも、CPU112が分岐先アドレスを実行してしまう、という事態を回避することが可能となる。
なお、実施例1では、CPU112は、分岐検知信号116が入力されると待機状態へと切り替わり、もって、分岐先アドレスを実行してしまう、という事態を回避することができるようになっていた。しかし、この構成に代えて、上記の選択回路120を採用することができる。即ち、実施例1における無条件分岐命令が実行される際にも、選択回路120は、CPU112が分岐先アドレスを実行してしまうという事態を回避する効果を発揮することができる。
なお、上記実施例2では、プログラムメモリ111に1ビットのアドレス・フラグを追加することで、プログラムメモリ111に記憶されているデータが分岐先アドレスであるかが判別可能とされていた。しかしながら、プログラムメモリ111内にアドレス・フラグを用意する事なく判別する事も可能である。例えば、1MBの記憶領域を持ったプログラムメモリ111と命令長が32ビットのCPU112とを有する場合、プログラムメモリ111のアドレスデータとして必要なデータのビット数は20ビットとなる。命令長が32ビットであるため、命令長とアドレスデータには12ビットの差が生まれる。そして、命令長とアドレスデータのビット数の差分に記憶されているデータがアドレスデータであるか否かを示すアドレス・フラグ・データを示すことにする。設定されたアドレス・フラグ・データを選択回路120の切り替え信号として利用することで、プログラムメモリ111に1ビットのアドレス・フラグを追加する事なくプログラムメモリ111に記憶されているデータが分岐先アドレスであるか否かを判断する事が可能となる。
<実施例3>
次に、図13〜図15を参照しつつ、本願発明の実施例3に係るプログラム異常動作検出装置100を説明する。実施例3に係るプログラム異常動作検出装置100は、分岐先アドレスが汎用レジスタの値によって変化する分岐命令(以降、レジスタ間接アドレス指定と称す)での異常動作検出も可能とした異常動作検出装置である。以下、上記実施例1と相違する点を中心に説明し、重複する説明については適宜省略する。
実施例3では、図14に示すようにプログラムメモリ111に1ビットのアドレス間接・フラグを追加し、プログラムメモリ111に記憶されている分岐命令がレジスタ間接アドレス指定である場合は、レジスタ間接アドレス指定の分岐先アドレスが格納されている汎用レジスタを示すデータを次の記憶位置に記憶し、アドレス間接・フラグを"1"に設定する。アドレス間接・フラグが"1"のとき比較データ・レジスタ117に汎用レジスタを示すデータが格納される。プログラムカウンタ112aとの比較対象として、比較データ・レジスタ117の出力値にて選択された汎用レジスタの出力値がアドレス比較回路119に入力される。この構成により、分岐命令がレジスタ間接アドレス指定の場合でも異常動作の検出が可能となる。実施例2で追加したアドレス・フラグは、記憶されているデータが汎用レジスタを示すデータである場合にも"1"に設定される。
次に実施例3に係るプログラム異常動作検出装置100の構成について図13を用いて説明する。
レジスタ間接アドレス指定の分岐先アドレスが格納されている汎用レジスタ123は、複数のレジスタ群から構成される。汎用レジスタ123は、CPU112との双方向アクセス経路とは別に、比較データ・レジスタ117が比較データ出力バス118に出力したデータをアドレスとして取り込み、取り込んだアドレスにて示される汎用レジスタ123内のレジスタに格納されているデータを汎用レジスタデータバス124に出力する経路を持っている。また、汎用レジスタ123は、比較データ出力バス118と同じサイクルで、格納しているデータを汎用レジスタデータバス124に出力する。アドレス比較回路119にプログラムカウンタ112aの比較対象データとして入力されるデータを選択するために、プログラム異常動作検出装置100は、比較データ選択回路128(比較データ選択手段)を備えている。比較データ選択回路128には、比較データ出力バス118を介して比較データ・レジスタ117の出力値が入力され、汎用レジスタデータバス124を介して汎用レジスタ123の出力値が入力される。比較データ選択信号127によって何れかのデータが選択される。選択されたデータは、比較データバス129を介してアドレス比較回路119に出力される。比較データ選択信号127は、プログラムメモリ111から読み出されたアドレス間接・フラグ信号125がアドレス間接・フラグ保持回路126を経由した信号である。比較データ選択信号127が"0"の場合は、比較データ選択回路128は、比較データ・レジスタ117の出力値をアドレス比較回路119に出力する。比較データ選択信号127が"1"の場合は、比較データ選択回路128は、比較データ・レジスタ117の出力値で示された汎用レジスタ123の出力値をアドレス比較回路119に出力する。
(詳細な作動:パターン5)
図15は、CPU112においてレジスタ間接アドレス指定の分岐命令が実行され、分岐動作が発生した場合のタイミングチャートである。ここでは、プログラムメモリ111のアドレス$04に記憶された分岐命令がレジスタ間接アドレス指定の分岐命令であり、分岐先アドレスとして汎用レジスタ123に格納されているデータが用いられる場合について説明する。
サイクルT1でプログラムカウンタ112aにアドレス$04が設定されると、プログラムメモリ111のアドレス$04に記憶されていた分岐命令(D04)がデータバス114に出力される。出力された分岐命令(D04)は、サイクルT2でCPU112と比較データ・レジスタ117に取り込まれる。CPU112では取り込まれた分岐命令(D04)が実行される。分岐命令(D04)が実行されると、サイクルT3のプログラムカウンタ112aは分岐命令(D04)の分岐先アドレスであるアドレス$17を示す。一方で、アドレスカウンタ115aは、クロックパルスに同期してカウントアップを行っているため、サイクルT3では"4"を示す。よって、比較器115bで比較されるプログラムカウンタ112aとアドレスカウンタ115aの値が異なるため、サイクルT3で分岐検知回路115は分岐検知信号116を出力する。CPU112は、分岐検知信号116が入力されると命令の実行を中断し、待機状態となる。アドレス比較回路119に分岐検知信号116が入力されると、分岐検知信号116が発生した時のプログラムカウンタ112aの値と比較データバス129の値を取り込み、取り込んだデータの比較を行う。取り込まれたプログラムカウンタ112aの出力値はサイクルT3で設定されていたアドレス$17であり、比較データバス129の値は比較データ選択信号127にて選択された値となる。比較データ選択信号127は、サイクルT2で読み出されたアドレス間接・フラグ信号125が"1"であるため、アドレス間接・フラグ保持回路126で保持された後のサイクルT3で"1"に設定される。よって、比較データ選択回路128は汎用レジスタ123の出力値である汎用レジスタデータバス124の値をサイクルT3で選択し比較データバス129に出力する。汎用レジスタデータバス124の値は、サイクルT3で比較データ・レジスタ117に格納されているデータをアドレスとして汎用レジスタ123から読み出されたデータとなる。ここでは、汎用レジスタの比較データ・レジスタ117で示されるレジスタに格納されているデータは、レジスタ間接アドレス指定の分岐先アドレスであるため、汎用レジスタデータバス124にはアドレス$17が出力される。そして、汎用レジスタデータバス124の値は、比較データバス129を介してサイクルT4でアドレス比較回路119に取り込まれる。よって、サイクルT4でアドレス比較回路119に取り込まれたデータの比較結果は一致するため、アドレス比較回路119は異常検出信号130を出力しない。仮に、プログラムカウンタ112aの値がアドレス$17以外を示していた場合、アドレス比較回路119で比較される値は不一致となるため、アドレス比較回路119は異常検出信号130を出力する。アドレスカウンタ115aは、分岐検知信号116が入力されるとサイクルT3のプログラムカウンタ112aの値を取り込み、取り込んだ値に1を加算した値を新たな初期値としてカウントアップを継続する。
このように、実施例3では、プログラムメモリ111に1ビットのアドレス間接・フラグを追加し、プログラムメモリ111に記憶される分岐先アドレスが汎用レジスタを示すデータである場合にアドレス間接・フラグを"1"とし、アドレス比較回路119に取り込まれるデータを汎用レジスタからの出力信号とすることで、分岐命令がレジスタ間接アドレス指定の場合でも、問題なく異常動作の検出が可能となる。
なお、上記した実施例3では、プログラムメモリ111に1ビットのアドレス間接・フラグを追加して、プログラムメモリ111に記憶されている分岐命令がレジスタ間接アドレス指定であるか否かを判断していたが、アドレス間接・フラグを用意する事なく判別する事も可能である。例えば、1MBの記憶領域を持ったプログラムメモリ111と命令長が32ビットのCPU112とを有する場合、プログラムメモリ111のアドレスデータとして必要なデータのビット数は20ビットとなる。命令長が32ビットであるため、命令長とアドレスデータには12ビットの差が生まれる。命令長とアドレスデータのビット数の差分に実施例2で示したアドレス・フラグと実施例3で示したアドレス間接・フラグを設けることでプログラムメモリ111に1ビットのアドレス・フラグと1ビットのアドレス間接・フラグを追加する事なく、プログラムメモリ111に記憶されているデータがアドレスであるか否か、及び、プログラムメモリ111に記憶されている分岐命令がレジスタ間接アドレス指定であるか否か、を判断することが可能となる。
11 CPU
11a プログラムカウンタ
12 アドレスバス
14 ROM
15 分岐先メモリ
20 分岐先レジスタ
21 アドレスインクリメンタ
22 分岐検知回路
23 分岐先アドレス比較回路
111 プログラムメモリ
112 CPU
112a プログラムカウンタ
113 アドレスバス
114 データバス
115 分岐検知回路
115a アドレスカウンタ
115b 比較器
116 分岐検知信号
117 比較データ・レジスタ
118 比較データ出力バス
119 アドレス比較回路
120 選択回路
121 nop命令出力回路
122 アドレス・フラグ信号
123 汎用レジスタ
124 汎用レジスタデータバス
125 アドレス間接・フラグ信号
126 アドレス間接・フラグ保持回路
127 比較データ選択信号
128 比較データ選択回路
129 比較データバス

Claims (5)

  1. プログラムカウンタを有する中央演算処理装置と、
    分岐命令と、この分岐命令に対応する分岐先アドレスと、が、前記分岐先アドレスのアドレスが前記分岐命令のアドレスに対して所定の位置関係となるように記憶された記憶手段と、
    前記プログラムカウンタの出力値が不連続に変化したことを検知して分岐検知信号を発生する分岐検知手段と、
    前記分岐検知信号に応答して、前記プログラムカウンタの出力値と、前記記憶手段内で、前記中央演算処理装置によって直前に実行された命令のアドレスに対して前記所定の位置関係のアドレスに記憶されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号を発生する比較手段と、
    を含む、
    コンピュータシステムのプログラム異常動作検出装置。
  2. 請求項1に記載のコンピュータシステムのプログラム異常動作検出装置であって、
    前記所定の位置関係は、次のアドレスである、
    コンピュータシステムのプログラム異常動作検出装置。
  3. 請求項1又は2に記載のコンピュータシステムのプログラム異常動作検出装置であって、
    前記記憶手段内で、前記中央演算処理装置によって直前に実行された命令のアドレスに対して前記所定の位置関係のアドレスに記憶されているデータを保持する比較データ保持手段を更に備え、
    前記比較手段は、前記分岐検知信号に応答して、前記プログラムカウンタの出力値と、前記比較データ保持手段によって保持されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号を発生する、
    コンピュータシステムのプログラム異常動作検出装置。
  4. 請求項1〜3の何れかに記載のコンピュータシステムのプログラム異常動作検出装置であって、
    前記中央演算処理装置に対して、前記分岐先アドレスが入力されることを禁止する、入力データ選択手段を更に備える、
    コンピュータシステムのプログラム異常動作検出装置。
  5. プログラムカウンタを有する中央演算処理装置を備えたコンピュータシステムのプログラム異常動作検出方法であって、
    分岐命令と、この分岐命令に対応する分岐先アドレスと、を、前記分岐先アドレスのアドレスが前記分岐命令のアドレスに対して所定の位置関係となるように記憶し、
    前記プログラムカウンタの出力値が不連続に変化したことを検知し、
    上記の検知に応答して、前記プログラムカウンタの出力値と、前記中央演算処理装置によって直前に実行された命令のアドレスに対して前記所定の位置関係のアドレスに記憶されているデータと、を比較し、その比較結果が不一致であるとき異常検出信号を発生する、
    コンピュータシステムのプログラム異常動作検出方法。
JP2010014452A 2010-01-26 2010-01-26 コンピュータシステムのプログラム異常動作検出装置 Pending JP2011154459A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010014452A JP2011154459A (ja) 2010-01-26 2010-01-26 コンピュータシステムのプログラム異常動作検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010014452A JP2011154459A (ja) 2010-01-26 2010-01-26 コンピュータシステムのプログラム異常動作検出装置

Publications (1)

Publication Number Publication Date
JP2011154459A true JP2011154459A (ja) 2011-08-11

Family

ID=44540386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010014452A Pending JP2011154459A (ja) 2010-01-26 2010-01-26 コンピュータシステムのプログラム異常動作検出装置

Country Status (1)

Country Link
JP (1) JP2011154459A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014174758A (ja) * 2013-03-08 2014-09-22 Denso Corp 処理装置
KR20180019594A (ko) * 2015-06-22 2018-02-26 로베르트 보쉬 게엠베하 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치
CN111858196A (zh) * 2020-06-12 2020-10-30 海光信息技术有限公司 一种计算单元检测方法、并行处理器及电子设备
US11947408B2 (en) 2020-03-27 2024-04-02 Panasonic Intellectual Property Management Co., Ltd. Anomaly detection method, anomaly detection recording medium, anomaly detection device, rewriting method, and rewriting device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063541A (ja) * 1996-08-19 1998-03-06 Nippon Motorola Ltd コンピュータシステムのプログラム暴走監視装置
JP2004199186A (ja) * 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd マイクロコンピュータおよびその内部状態制御方法
JP2006079230A (ja) * 2004-09-08 2006-03-23 Nec Electronics Corp 半導体回路装置及び暴走検出方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063541A (ja) * 1996-08-19 1998-03-06 Nippon Motorola Ltd コンピュータシステムのプログラム暴走監視装置
JP2004199186A (ja) * 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd マイクロコンピュータおよびその内部状態制御方法
JP2006079230A (ja) * 2004-09-08 2006-03-23 Nec Electronics Corp 半導体回路装置及び暴走検出方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014174758A (ja) * 2013-03-08 2014-09-22 Denso Corp 処理装置
KR20180019594A (ko) * 2015-06-22 2018-02-26 로베르트 보쉬 게엠베하 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치
JP2018525712A (ja) * 2015-06-22 2018-09-06 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置
US11113099B2 (en) 2015-06-22 2021-09-07 Robert Bosch Gmbh Method and apparatus for protecting a program counter structure of a processor system and for monitoring the handling of an interrupt request
KR102603835B1 (ko) 2015-06-22 2023-11-21 로베르트 보쉬 게엠베하 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치
US11947408B2 (en) 2020-03-27 2024-04-02 Panasonic Intellectual Property Management Co., Ltd. Anomaly detection method, anomaly detection recording medium, anomaly detection device, rewriting method, and rewriting device
CN111858196A (zh) * 2020-06-12 2020-10-30 海光信息技术有限公司 一种计算单元检测方法、并行处理器及电子设备

Similar Documents

Publication Publication Date Title
US7971112B2 (en) Memory diagnosis method
JP6266239B2 (ja) マイクロコンピュータ
JP2012113466A (ja) メモリコントローラ及び情報処理システム
JP2007188315A (ja) デバイス故障検出装置、制御方法、及びプログラム
US10114356B2 (en) Method and apparatus for controlling a physical unit in an automation system
EP2615551B1 (en) Abnormality inspection device, central processing unit, and abnormality inspection method
KR101978984B1 (ko) 프로세서의 오류를 검출하는 장치 및 방법
JP2011154459A (ja) コンピュータシステムのプログラム異常動作検出装置
JP2015115727A (ja) プログラマブルロジックデバイス
US8423834B2 (en) Computer system and memory system
JP2009129301A (ja) 自己診断回路及び自己診断方法
US20100287426A1 (en) Memory checking system and method
JP2013257640A (ja) コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム
US7484147B2 (en) Semiconductor integrated circuit
JP2014132384A (ja) マイクコンピュータ及びその制御方法
KR102603835B1 (ko) 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치
JP2010102565A (ja) 二重化制御装置
JP6332134B2 (ja) メモリ診断回路
US20090070534A1 (en) Memory access monitoring apparatus and related method
US20160062862A1 (en) Data processing system with debug control
US9542266B2 (en) Semiconductor integrated circuit and method of processing in semiconductor integrated circuit
JP2012048277A (ja) 半導体集積回路、デバッグシステム、デバッグ方法、デバッグプログラム及び記録媒体
EP3998532A1 (en) Method for the selective tracing of the execution of instructions, related processing device and processor
TW201335844A (zh) 控制器、位址選擇器及替換錯誤指令的方法
JP4842036B2 (ja) 半導体装置と、タイミング制御回路の異常検出方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140401