JP5016604B2 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP5016604B2
JP5016604B2 JP2008537391A JP2008537391A JP5016604B2 JP 5016604 B2 JP5016604 B2 JP 5016604B2 JP 2008537391 A JP2008537391 A JP 2008537391A JP 2008537391 A JP2008537391 A JP 2008537391A JP 5016604 B2 JP5016604 B2 JP 5016604B2
Authority
JP
Japan
Prior art keywords
program
update
area
executed
execution target
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
JP2008537391A
Other languages
English (en)
Other versions
JPWO2008041337A1 (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.)
Pioneer Corp
Original Assignee
Pioneer 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 Pioneer Corp filed Critical Pioneer Corp
Publication of JPWO2008041337A1 publication Critical patent/JPWO2008041337A1/ja
Application granted granted Critical
Publication of JP5016604B2 publication Critical patent/JP5016604B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

この発明は、実行対象となるプログラムの実行および更新が可能な情報処理装置および情報処理方法に関する。ただし、この発明の利用は、上述した情報処理装置および情報処理方法には限られない。
従来より、一つのマイコン(マイクロコンピュータ)における制御プログラムを更新する際には、データ設定器などの外部機器を使用して、データの更新をおこなっている。近年では、制御プログラムの更新の際に、他のマイコンから割り込み処理によって更新エラーを起こさないようにするため、制御プログラムの更新中に、他のマイコンからの割り込み処理を禁止する提案がされている(たとえば、下記特許文献1参照。)。
ここで、図1を用いて、実行対象となるプログラムが実行可能に保存されたプログラム実行マイコン(マイクロコンピュータ)におけるプログラムの更新の概要について説明する。図1は、プログラム実行マイコンにおけるプログラムの更新の概要について示す説明図である。
図1において、プログラム更新システム100は、プログラム実行マイコン101と、更新用プログラム送信側マイコン102と、フラッシュメモリ103と、から構成されている。
プログラム実行マイコン101は、バッファ領域110と、プログラム領域111と、IPL(Initial Program Loader)領域112と、Vector領域113と、から構成されている。
バッファ領域110は、後述する更新用プログラム送信側マイコン102から送信される更新用プログラムを一時的に保存する。更新用プログラムは、たとえば、マイコン間通信によって更新用プログラム送信側マイコン102からバッファ領域110に送信され、プログラム実行マイコン101の実行対象となるプログラムの更新用のプログラムである。
バッファ領域110に一時保存された更新用プログラムは、図示しないCPU(Central Processing Unit)が、後述するIPL領域112を参照することによって、プログラム領域111に複製(コピー)される。換言すれば、後述するプログラム領域111に保存されたプログラムa,b,cは、更新用プログラムのプログラム領域111に複製されることによって更新がおこなわれる構成である。
プログラム領域111は、プログラム実行マイコン101の実行対象となるプログラムa,b,cを保存する。具体的には、たとえば、プログラム領域111は、プログラムaを保存するA領域121と、プログラムbを保存するB領域122と、プログラムcを保存するC領域123と、から構成されている。
各プログラムa,b,cは、たとえば、図示しないCPUによって読み込まれて実行される構成でもよい。具体的には、たとえば、プログラムa,b,cは、図示しないCPUが、後述するVector領域113に格納された、プログラムa,b,cのアドレスを参照することによって実行される。なお、図1の説明では、3つの領域(A領域121,B領域122,C領域123)を用いて説明したが、領域の数量および実行対象となるプログラムの数はこれに限るものではない。
IPL領域112は、リセットスタート時に図示しないCPUによって最初に実行されるプログラムを保存する領域である。具体的には、たとえば、IPL領域112は、バッファ領域110に一時保存された更新用プログラムをプログラム領域111に複製するか、プログラム領域111に保存された各プログラムa,b,cを実行するかを決定するプログラムを保存する。
Vector領域113は、イベント発生時にプログラム実行マイコン101の実行対象となるプログラムのアドレスを格納する。具体的には、たとえば、図示しないCPUは、リセットスタート時には、Vector領域113を参照してIPL領域112に保存されたプログラムのアドレスを読み込む。また、図示しないCPUは、たとえば、通常起動時には、Vector領域113を参照してプログラム領域111に保存された各プログラムa,b,cのアドレスを読み込む。
更新用プログラム送信側マイコン102は、プログラム実行マイコン101に対して、プログラム実行マイコン101の実行対象となるプログラムa,b,cの更新用プログラムを送信する。具体的には、たとえば、更新用プログラム送信側マイコン102は、フラッシュメモリ103が保存している更新用プログラムを読み込んで、読み込んだ更新用プログラムをプログラム実行マイコン101に送信する。
フラッシュメモリ103は、各種データを保存することができる記録媒体で、図1では、プログラム実行マイコン101の実行対象となるプログラムa,b,cの更新用プログラムを保存する。具体的には、たとえば、フラッシュメモリ103は、更新用プログラム送信側マイコン102に対して、保存している更新用プログラムを出力する。
特開2004−118369号公報
しかしながら、上記従来技術では、マイコンにおける制御プログラムを更新する場合、更新専用の外部機器が必要となるため、マイコンの利用者は、更新専用の外部機器を用意する負担が生じてしまうという問題が一例として挙げられる。
また、更新専用の外部機器を有するマイコンの製造元などで、制御プログラムを更新する場合、マイコンの利用者は、製造元に対するマイコンの送付や受け取りに関する手間が発生するばかりか、更新に要する時間を浪費してしまうという問題が一例として挙げられる。
一方、更新専用の外部機器を用いずに、マイコン間通信などによって受信される更新用プログラムによって、実行対象となるプログラムを更新する場合、書き換え(複製)の途中に電源障害などによって更新動作が中断されると、マイコンが起動できなくなってしまうという問題が一例として挙げられる。
特に、Vector領域に格納された、実行対象となるプログラムのアドレスを書き換える場合、書き換えの途中で更新動作が中断されると、中断復旧後の起動時にVector領域を参照できないため、マイコンが起動できなくなってしまうという問題が一例として挙げられる。
また、Vector領域に格納された、実行対象となるプログラムのアドレスを書き換えずに、実行対象となるプログラムだけを更新する場合、Vector領域に格納された、実行対象となるプログラムのアドレスが固定されるため、初期設定によるプログラムの配置を変更できず、汎用性に欠けるとともにプログラム領域の容量を効率的に使用できないという問題が一例として挙げられる。
上述した課題を解決し、目的を達成するため、請求項1の発明にかかる情報処理装置は、 プログラムを保存するメモリおよびプログラムを実行する制御手段を備える情報処理装置であって、前記メモリは、実行対象となるプログラムのアドレスを保存するVector領域、リセットスタート時に実行される初期起動プログラムを保存するIPL領域、実行対象プログラムを保存する実行対象プログラム領域と、リセットスタート時に前記実行対象プログラムを実行させるための仮想初期起動プログラムを保存する仮想Vector領域と、から構成される有効プログラム領域、および前記有効プログラム領域のプログラムを更新するための更新用プログラムを一時保存する更新用プログラム保存領域、を有し、前記制御手段は、リセットスタートを受け付けた場合に、前記Vector領域を参照して前記IPL領域の初期起動プログラムを実行して、前記更新用プログラム保存領域に更新用プログラムが不足なく保存されて更新準備が完了しているか否かを判定し、前記更新準備が完了している場合には前記更新用プログラムを前記有効プログラム領域に複製し、前記更新準備が完了していない場合には前記仮想Vector領域の仮想初期起動プログラムを実行して前記実行対象プログラム領域の実行対象プログラムを実行することを特徴とする。
また、請求項2の発明にかかる情報処理方法は、プログラムを保存するメモリを備える情報処理装置が実行する情報処理方法であって、前記メモリは、実行対象となるプログラムのアドレスを保存するVector領域、リセットスタート時に実行される初期起動プログラムを保存するIPL領域、実行対象プログラムを保存する実行対象プログラム領域と、リセットスタート時に前記実行対象プログラムを実行させるための仮想初期起動プログラムを保存する仮想Vector領域と、から構成される有効プログラム領域、および前記有効プログラム領域のプログラムを更新するための更新用プログラムを一時保存する更新用プログラム保存領域、を有し、リセットスタートを受け付けた場合に、前記Vector領域を参照して前記IPL領域の初期起動プログラムを実行して、前記更新用プログラム保存領域に更新用プログラムが不足なく保存されて更新準備が完了しているか否かを判定し、前記更新準備が完了している場合には前記更新用プログラムを前記有効プログラム領域に複製し、前記更新準備が完了していない場合には前記仮想Vector領域の仮想初期起動プログラムを実行して前記実行対象プログラム領域の実行対象プログラムを実行する制御工程を含むことを特徴とする。
プログラム実行マイコンにおけるプログラムの更新の概要について示す説明図である。 本実施の形態にかかる情報処理装置の機能的構成の一例を示すブロック図である。 本実施の形態にかかる情報処理装置の処理の内容を示すフローチャートである。 本実施例にかかるワンチップマイコンのハードウェア構成の一例を示すブロック図である。 本実施例にかかるワンチップマイコンにおける実行対象プログラムの更新の概要を示す説明図である。 本実施例にかかる有効プログラム領域に保存されるプログラムについて示す説明図である。 本実施例にかかるワンチップマイコンにおける更新用プログラムの受け付け処理手順を示すフローチャートである。 本実施例にかかるワンチップマイコンの起動処理手順を示すフローチャートである。 本実施例にかかるワンチップマイコンにおける割り込み処理(図8のステップS812)手順を示すフローチャートである。
以下に添付図面を参照して、この発明にかかる情報処理装置および情報処理方法の好適な実施の形態を詳細に説明する。
(実施の形態)
(情報処理装置の機能的構成)
図2を用いて、本実施の形態にかかる情報処理装置の機能的構成について説明する。図2は、本実施の形態にかかる情報処理装置の機能的構成の一例を示すブロック図である。
図2において、プログラム実行領域に保存された実行対象プログラムを実行する情報処理装置200は、更新用プログラム入力部201と、一時保存部202と、判定部203と、生成部204と、更新情報保存部205と、再稼働情報入力部206と、判断部207と、更新部208と、実行部209と、から構成されている。
更新用プログラム入力部201は、実行対象プログラムに対する更新用プログラムの入力を受け付ける。具体的には、たとえば、更新用プログラムの入力は、図示しない更新用プログラムが送信可能な外部装置から入力を受け付けることとしてもよい。
更新用プログラムは、たとえば、情報処理装置200における不図示のメモリ領域などに割り当てられたプログラム実行領域に複製(コピー)されて実行対象プログラムとなる。また、更新用プログラムは、実行対象プログラムとして実行される際に、初期起動プログラムによって実行される仮想初期起動プログラムを含む構成でもよい。具体的には、たとえば、仮想初期起動プログラムは、プログラム実行領域が備える仮想プログラム領域に保存され、初期起動プログラムによって実行される。ここで、初期起動プログラムは、たとえば、情報処理装置100の再稼働の際に起動されるプログラムである。
さらに、更新用プログラム入力部201は、後述する判定部203によって判定された結果、更新用プログラムに過不足がある場合、更新用プログラムの出力元に対して取得要求をおこなうことによって更新用プログラムの入力を受け付けることとしてもよい。
一時保存部202は、更新用プログラム入力部201によって入力された更新用プログラムを一時保存領域に一時保存する。具体的には、たとえば、一時保存部202は、情報処理装置200における不図示のメモリ領域などに割り当てられたバッファ領域など、データの一時保存が可能な領域に更新用プログラムを一時保存することとしてもよい。
判定部203は、一時保存部202によって一時保存された更新用プログラムに過不足がないか否かを判定する。具体的には、たとえば、判定部203は、複数回に分割されて入力される更新用プログラムが、すべて一時保存領域に一時保存されたか否かを判定することとしてもよい。
生成部204は、判定部203によって判定された結果、更新用プログラムに過不足がない場合、プログラム実行領域に保存された実行対象プログラムの更新準備が完了した旨を示す更新情報を生成する。更新情報は、たとえば、実行対象プログラムの更新準備が完了した旨を示す代わりに、更新準備が完了していない旨を示す情報であってもよい。
更新情報保存部205は、生成部204によって生成された更新情報を更新情報保存領域に保存する。具体的には、たとえば、更新情報保存部205は、情報処理装置200における不図示のメモリ領域などに割り当てられた更新情報保存領域に更新情報を保存する。なお、更新情報保存部205は、生成部204によって更新準備が完了した旨を示す更新情報の代わりに、更新準備が完了していない旨を示す情報を保存していてもよい。
再稼働情報入力部206は、自装置の再稼働に関する再稼働情報の入力を受け付ける。再稼働情報の入力は、たとえば、リセットスタートの処理要求などの入力であってもよい。
判断部207は、再稼働情報入力部206によって再稼働情報が入力された場合、初期起動プログラム保存領域に保存された初期起動プログラムを起動させて更新情報を参照することによって、更新準備が完了しているか否かを判断する。具体的には、たとえば、判断部207は、情報処理装置200における不図示のメモリ領域などに割り当てられた初期起動プログラム保存領域に保存された初期起動プログラムを起動させる構成である。
更新部208は、判断部207によって判断された結果、更新準備が完了している場合、更新用プログラムをプログラム実行領域に複製することによって実行対象プログラムを更新する。具体的には、たとえば、実行対象プログラムの更新は、更新準備が完了している場合、一時保存部202によって保存された更新用プログラムを実行対象プログラムに対して上書き保存する構成でもよい。
また、更新部208は、たとえば、更新用プログラムを実行対象プログラムに上書きする際、更新用プログラムに含まれる仮想初期起動プログラムを用いて、プログラム実行領域が備える仮想プログラム保存領域の仮想初期起動プログラムもあわせて上書きすることとなる。
また、更新部208は、プログラム実行領域に複製した更新用プログラムを検証することによって、実行対象プログラムを実行可能な形式に更新することとしてもよい。具体的には、たとえば、更新用プログラムの検証は、更新用プログラムが実行対象プログラムとして過不足なく複製されたか否かを確認する構成でもよい。
実行部209は、判断部207によって判断された結果、更新準備が完了していない場合、プログラム実行領域に保存された実行対象プログラムを実行する。具体的には、たとえば、実行部209は、仮想初期起動プログラムの実行にしたがって、プログラム実行領域に保存された実行対象プログラムを実行する。すなわち、実行部209は、更新準備が完了していない場合、初期起動プログラム保存領域に保存された初期起動プログラムの起動によって実行される仮想初期起動プログラムによって、実行対象プログラムを実行することができる。
換言すれば、初期起動プログラムは、再稼働情報が入力されると起動して、更新準備が完了しているか否かを判断させる。そして、初期起動プログラムは、判断の結果、更新準備が完了している場合は、更新用プログラムを用いて、実行対象プログラムを更新させることとなる。一方、初期起動プログラムは、判断の結果、更新準備が完了していない場合は、仮想プログラム保存領域に保存されている仮想初期起動プログラムを実行させることにより、実行対象プログラムを実行させることとなる。
このように、情報処理装置200は、実行対象プログラムを更新する場合、仮想プログラム保存領域に保存された仮想初期起動プログラムを、実行対象プログラムとあわせて更新する構成である。また、情報処理装置200は、初期起動プログラムによって仮想初期起動プログラムを実行させることによって、実行対象プログラムを実行することができる。
したがって、情報処理装置200は、仮想プログラム保存領域に仮想初期起動プログラムを保存することによって、実行対象プログラムを更新する際に初期起動プログラムを更新しなくても、実行対象プログラムの更新あるいは実行を確実におこなうことができる。換言すれば、実行対象プログラムの更新中に、電源障害などに起因して更新処理に不具合が発生しても、電源復旧時には、再度初期起動プログラムの実行によって、実行対象プログラムの更新あるいは実行をおこなうことができる。
(情報処理装置200の処理の内容)
つぎに、図3を用いて本実施の形態にかかる情報処理装置200の処理の内容について説明する。図3は、本実施の形態にかかる情報処理装置の処理の内容を示すフローチャートである。図3のフローチャートにおいて、まず、更新用プログラム入力部201によって、更新用プログラムの入力を受け付けたか否かを判断する(ステップS301)。
ステップS301において、更新用プログラムの入力を受け付けた場合(ステップS301:Yes)は、一時保存部202によって、一時保存領域にステップS301において入力された更新用プログラムを一時保存する(ステップS302)。
また、ステップS301において、更新用プログラムの入力を受け付けない場合(ステップS301:No)は、ステップS306へ移行して、再稼働情報入力部206によって、再稼働情報の入力を受け付けたか否かを判断する(ステップS306)。
つぎに、判定部203によって、ステップS302において一時保存された更新用プログラムに過不足がないか否かを判定する(ステップS303)。
そして、生成部204によって、ステップS303において判定された結果に基づいて、更新情報を生成する(ステップS304)。更新情報は、たとえば、ステップS303において判定された結果、更新用プログラムに過不足がない場合、プログラム実行領域に保存された実行対象プログラムの更新準備が完了した旨を示す情報である。また、更新情報は、たとえば、ステップS303において判定された結果、更新用プログラムに過不足がある場合、更新準備が完了していない旨を示す情報であってもよい。
つづいて、更新情報保存部205によって、更新情報保存領域にステップS304において生成された更新情報を保存する(ステップS305)。
つぎに、再稼働情報入力部206によって、再稼働情報の入力を受け付けたか否かを判断する(ステップS306)。再稼働情報は、たとえば、リセットスタートの処理要求などであってもよい。
ステップS306において、再稼働情報の入力を受け付けた場合(ステップS306:Yes)は、判断部207によって、初期起動プログラム保存領域に保存された初期起動プログラムを起動させて更新情報を参照することによって、更新準備が完了しているか否かを判断する(ステップS307)。
また、ステップS306において、再稼働情報の入力を受け付けない場合(ステップS306:No)は、ステップS301に戻って処理を繰り返す。
ステップS307において、更新準備が完了している場合(ステップS307:Yes)は、更新部208によって、更新用プログラムをプログラム実行領域に複製することによって実行対象プログラムを更新する(ステップS308)。そして、実行部209によって、ステップS308において更新された実行対象プログラムを実行して(ステップS309)、一連の処理を終了する。
また、ステップS307において、更新準備が完了していない場合(ステップS307:No)は、ステップS309へ移行して、実行部209によって、プログラム実行領域に保存された実行対象プログラムを実行する(ステップS309)。そして、一連の処理を終了する。
換言すれば、ステップS307〜ステップS309では、更新準備が完了している場合は、実行対象プログラムを更新してから、更新した実行対象プログラムを実行する。また、更新準備が完了していない場合は、実行対象プログラムを更新せずに、プログラム実行領域に保存されている実行対象プログラムを実行することとしてもよい。
以上説明したように、本実施の形態によれば、一時保存部に保存された更新用プログラムによって実行対象プログラムを更新するため、専用の外部機器を用意しなくても実行対象プログラムの更新をおこなうことができる。
また、本実施の形態によれば、更新用プログラムの更新準備が完了してから、実行対象プログラムを更新するため、更新用プログラムの入力途中に電源障害などが発生しても、実行対象プログラムに対する弊害の防止を図ることができる。
また、本実施の形態によれば、仮想初期起動プログラムを含む更新用プログラムによって実行対象プログラムを更新するため、初期起動プログラムの更新をしなくてもよい。したがって、更新途中に電源障害などが発生しても、復旧後には初期起動プログラムによって自装置を起動することができる。
すなわち、本実施の形態によれば、電源障害の復旧後であっても、初期起動プログラムによって実行対象プログラムの更新あるいは実行をおこなうことができる。具体的には、たとえば、本実施の形態によれば、電源障害の復旧後に再稼働情報が入力されると、電源障害によって更新途中であるため、初期起動プログラムによって更新を継続あるいはやり直しすることができる。また、本実施の形態によれば、電源障害があっても更新が終了していれば、初期起動プログラムによって仮想初期起動プログラムを実行させて、実行対象プログラムを実行することができる。
くわえて、実行対象プログラムは、仮想初期起動プログラムによって実行されることとなるため、汎用性に富んだ実行対象プログラムの配置を設計でき、プログラム実行領域の利用の効率化を図ることができる。換言すれば、初期起動プログラムの代わりに、実行対象プログラムとあわせて更新される仮想初期起動プログラムによって、実行対象プログラムを実行するため、初期起動プログラムによって制限される配置ではなく、仮想初期起動プログラムに設定される自由度のある配置を実現できる。
また、本実施の形態によれば、更新用プログラムを検証することによって、実行対象プログラムを実行可能な形式に更新するため、的確な実行対象プログラムの更新を図ることができる。
以下に、本発明の実施例について説明する。本実施例では、たとえば、フラッシュROM(Read Only Memory)内蔵のワンチップマイコンによって、本発明の情報処理装置を実施した場合の一例について説明する。
(ワンチップマイコンのハードウェア構成)
まず、図4を用いて、本実施例にかかるワンチップマイコンのハードウェア構成について説明する。図4は、本実施例にかかるワンチップマイコンのハードウェア構成の一例を示すブロック図である。
図4において、ワンチップマイコン400は、CPU401と、フラッシュROM402と、RAM(Random Access Memory)403と、入出力I/F(インターフェース)404と、を備えている。また、各構成部401〜404は、バス410によってそれぞれ接続されている。
まず、CPU401はワンチップマイコン400の全体の制御を司る。具体的には、たとえば、CPU401は、フラッシュROM402に記録されたプログラムを読み込み、RAM403をワークエリアとして読み込んだプログラムを実行する構成でもよい。
フラッシュROM402は、ブートプログラムや実行対象となる実行対象プログラムなどの各種プログラムを記録している。詳細は図5を用いて説明するが、フラッシュRAM402は、たとえば、各種プログラムを書き換え可能に記録し、電源を切ってもデータが消えない不揮発性半導体メモリなどである。
RAM403は、CPU401のワークエリアとして使用される。具体的には、たとえば、RAM403は、データの書き込みと読み出しが随時可能な半導体メモリでもよく、CPU401によって読み込まれたプログラムを実行するためのワークエリアとなる。
入出力I/F404は、図示しない外部機器に接続され、ワンチップマイコン400とCPU401とのインターフェースとして機能する。入出力I/F404は、さらに、有線あるいは無線などを介してインターネットなどの通信網に接続され、この通信網とCPU401とのインターフェースとしても機能する。
また、詳細は図5に後述するが、入出力I/F404は、ワンチップマイコン400の外部に接続されたマイコンから、マイコン間通信によってフラッシュROM402に記録された実行対象プログラムに対する更新用プログラムの入力を受け付けることとしてもよい。
なお、図4では説明を省略したが、本実施例にかかるワンチップマイコン400は、CPU401、フラッシュROM402、RAM403、入出力I/F404のほかに、タイマ、LCD(Liquid Crystal Display)ドライバ、MMU(Memory Management Unit)、DMAC(Direct Memory Access Contoroller)、A/D(Analog/Digital)コンバータなどの周辺機能を備えていてもよい。
なお、実施の形態にかかる情報処理装置200の機能的構成のうち、更新用プログラム入力部201や再稼働情報入力部206は入出力I/F404によって、一時保存部202や判定部203や生成部204や更新情報保存部205や判断部207や更新部208や実行部209はCPU401がフラッシュROM402やRAM403に記録された各種プログラムを実行することによって、それぞれその機能を実現する。
(ワンチップマイコン400における実行対象プログラムの更新の概要)
つぎに、図5を用いて、本実施例にかかるワンチップマイコン400における実行対象プログラムの更新の概要について説明する。図5は、本実施例にかかるワンチップマイコンにおける実行対象プログラムの更新の概要を示す説明図である。
図5において、プログラム更新システム500は、ワンチップマイコン400と、更新用プログラム送信側マイコン502と、フラッシュメモリ503と、から構成されている。
ワンチップマイコン400における図4に示したフラッシュROM402は、有効プログラム情報保存領域510と、空き領域511と、更新用プログラム保存領域512と、有効プログラム領域513と、IPL領域514と、Vector領域515と、から構成されている。
有効プログラム情報保存領域510は、後述する有効プログラム領域513に記録された実行対象プログラムの更新準備が完了した旨を示す更新情報を保存する領域である。具体的には、たとえば、更新情報は、後述する更新用プログラム保存領域512に、更新用プログラム送信側マイコン502から複数回に分割されて入力される更新用プログラムに過不足がない場合、更新準備が完了したこととする情報でもよい。
また、更新情報は、たとえば、実行対象プログラムの更新準備が完了した旨を示す代わりに、更新準備が完了していない旨を示す情報であってもよい。
空き領域511は、本実施例におけるフラッシュROM402の未使用領域であり、初期設定によって変更することができる。
更新用プログラム保存領域512は、後述する更新用プログラム送信側マイコン502から送信される更新用プログラムを一時的に保存する領域である。更新用プログラムは、たとえば、マイコン間通信によって更新用プログラム送信側マイコン502から図示しない入出力I/F404を介して入力され、ワンチップマイコン400の実行対象となる実行対象プログラムの更新用のプログラムである。
また、更新用プログラムは、たとえば、図示しないCPU401によって有効プログラム情報保存領域510に保存された更新情報が参照されて更新準備が完了している場合に、有効プログラム領域513に複製(コピー)される。換言すれば、更新用プログラムは、たとえば、CPU401によって実行対象プログラムに対して上書き保存され、その実行対象プログラムが更新されることとなる。
このように、更新情報を参照して実行対象プログラムの更新をおこなう構成とすれば、更新用プログラムが不完全な状態で実行対象プログラムを更新して不具合を引き起こすことを防ぐことができる。すなわち、電源障害など、何らかの障害によって更新用プログラムの一時保存がストップしてしまった場合、リセットスタートによってストップした時点の更新用プログラムによって中途半端な状態の実行対象プログラムの更新はおこなわずに、一つ前の手順に戻って、更新用プログラムの一時保存を開始することができる。
また、更新用プログラムは、実行対象プログラムとして実行される際に、初期起動プログラムによって実行される仮想初期起動プログラムを含む構成でもよい。初期起動プログラムは、たとえば、再稼働(リセットスタート)の際に起動されるプログラムである。
有効プログラム領域513は、ワンチップマイコン400の実行対象となる実行対象プログラムを保存する領域である。詳細は図6を用いて説明するが、有効プログラム領域513に保存された実行対象プログラムは、複数でもよく、図示しないCPU401に読み込まれて実行されることとしてもよい。
また、有効プログラム領域513に更新用プログラムが複製された場合、CPU401は、複製された更新用プログラムを検証することによって、実行対象プログラムを実行可能な形式に更新することとしてもよい。具体的には、たとえば、更新用プログラムの検証は、更新用プログラムが実行対象プログラムとして過不足なく複製されたか否かを確認する構成でもよい。
IPL領域514は、リセットスタート時に図示しないCPU401によって最初に実行される初期起動プログラムを保存する領域である。具体的には、たとえば、IPL領域514は、更新用プログラム保存領域512に一時保存された更新用プログラムを有効プログラム領域513に複製するか、有効プログラム領域513に保存された各実行対象プログラムを実行するかを決定するプログラムを保存する。
Vector領域515は、イベント発生時にワンチップマイコン400の実行対象となるプログラムのアドレスを格納する。具体的には、たとえば、図示しないCPU401は、リセットスタート時には、Vector領域515を参照してIPL領域514に保存されたプログラムのアドレスを読み込む。また、CPU401は、たとえば、通常起動時には、Vector領域515を参照して有効プログラム領域513に保存された各実行対象プログラムのアドレスを読み込むこととしてもよい。
このように、IPL領域514およびVector領域515に保存されたデータは、更新用プログラムによって書き換えをおこなわないため、更新用プログラムの一時保存中や、実行対象プログラムの更新中に障害が発生しても、リセットスタートによって、CPU401がIPL領域514およびVector領域515に保存されたデータを参照すれば、ワンチップマイコン400の動作を正常に再開することができる。
更新用プログラム送信側マイコン502は、ワンチップマイコン400に対して、ワンチップマイコン400の実行対象となる実行対象プログラムの更新用プログラムを送信する。具体的には、たとえば、更新用プログラム送信側マイコン502は、フラッシュメモリ503が保存している更新用プログラムを読み込んで、読み込んだ更新用プログラムをワンチップマイコン400に送信する。
フラッシュメモリ503は、各種データを保存することができる記録媒体で、図5では、ワンチップマイコン400の実行対象となる実行対象プログラムの更新用プログラムを保存する。具体的には、たとえば、フラッシュメモリ503は、更新用プログラム送信側マイコン502に対して、保存している更新用プログラムを出力する。
ここで、図6を用いて、有効プログラム領域513に保存されるプログラムについて説明する。図6は、本実施例にかかる有効プログラム領域に保存されるプログラムについて示す説明図である。
図6において、有効プログラム領域513は、仮想初期起動プログラムを保存する仮想Vector領域601と、実行対象となる実行対象プログラムa,b,cを保存する実行対象プログラム領域602と、から構成されている。
仮想Vector領域601に保存された仮想初期起動プログラムは、リセットスタート時に、通常起動である場合に図示しないCPU401によって読み込まれる。仮想初期起動プログラムは、たとえば、通常起動時に実行対象となる実行対象プログラムa,b,cを実行させるプログラムで、CPU401に対して、実行対象プログラム領域602に保存された実行対象プログラムa,b,cのアドレスを指定する構成でもよい。
具体的には、たとえば、CPU401は、リセットスタート時に、Vector領域515を参照してIPL領域514に保存されたプログラムのアドレスを読み込むことによって、更新用プログラムの複製(実行対象プログラムの更新)、あるいは、実行対象プログラムを実行する。
より具体的には、たとえば、CPU401は、有効プログラム情報保存領域510に保存された更新情報に基づいて、更新用プログラムの複製、あるいは、実行対象プログラムの実行を選択し、実行対象プログラムを実行する場合、Vector領域515を参照して、仮想Vector領域601のアドレスを読み込む。
そして、CPU401は、仮想Vector領域601に保存された仮想初期起動プログラムによってアドレスが指定される実行対象プログラムa,b,cを実行することとしてもよい。
このように、IPL領域514およびVector領域515は更新せずに、有効プログラム領域513における仮想初期起動プログラムを保存する仮想Vector領域601および実行対象プログラム領域602を更新することで、実行対象プログラムa,b,cの配置に関する制限を最小限に抑制することができる。
換言すれば、たとえば、図1に示すように、仮想初期起動プログラムがないと、Vector領域113を更新しない場合は、各実行対象プログラムa,b,cを保存する領域に余裕を持たせた配置としなければならない。一方で、Vector領域113を更新用プログラムによって更新する場合は、プログラムの更新中に電源障害などが発生すると、Vector領域113に不具合が発生してしまい、プログラム実行マイコン101が動作しなくなってしまう。
(ワンチップマイコン400の処理の内容)
つぎに、図7〜図9を用いて、本実施例にかかるワンチップマイコン400の処理の内容について説明する。図7は、本実施例にかかるワンチップマイコンにおける更新用プログラムの受け付け処理手順を示すフローチャートである。図7のフローチャートにおいて、まず、入出力I/F404によって、更新用プログラム送信側マイコン502からプログラム更新準備完了通知を受け付けたか否かを判断する(ステップS701)。プログラム更新準備完了通知は、たとえば、更新用プログラム送信側マイコン502がフラッシュメモリ503やその他外部機器から更新用プログラムを取得した場合、更新用プログラム送信側マイコン502からワンチップマイコン400に送信されることとしてもよい。
ステップS701において、プログラム更新準備完了通知を受け付けるのを待って、受け付けた場合(ステップS701:Yes)は、ワンチップマイコン400は、プログラム更新モードへ移行し(ステップS702)、CPU401によって、更新用プログラム保存領域512を初期化する(ステップS703)。更新用プログラム保存領域512の初期化は、たとえば、更新用プログラム保存領域512の容量を空きとすることでもよく、すなわち、更新用プログラム保存領域512に中途半端なデータがあった場合は消去することとしてもよい。
つぎに、入出力I/F404によって、ステップS703において更新用プログラム保存領域512が初期化されたら、更新用プログラム送信側マイコン502に対して、受け入れ可能通知を出力する(ステップS704)。
そして、入出力I/F404によって、ステップS704において出力された受け入れ可能通知に応じて更新用プログラム送信側マイコン502から出力される、更新用プログラムのデータをパケット受信する(ステップS705)。
つぎに、入出力I/F404によって、ステップS705においてパケット受信された更新用プログラムのデータについて、更新用プログラム送信側マイコン502に対して、パケット受信完了通知を出力する(ステップS706)。
つづいて、入出力I/F404によって、更新用プログラムをすべて受信したか否かを判断する(ステップS707)。更新用プログラムをすべて受信したか否かの判断は、たとえば、ステップS705においてパケット受信される最後の更新用プログラムのデータに付与されるフラグを受信した場合に、すべて受信したと判断する構成でもよい。
ステップS707において、更新用プログラムをすべて受信した場合(ステップS707:Yes)は、CPU401によって、更新用プログラム保存領域512に一時保存される更新用プログラムのチェックサムを確認する(ステップS708)。チェックサムは、たとえば、複数回に分割されてパケット受信される更新用プログラムが、すべて更新用プログラム保存領域512に一時保存されたか否かを判定することとしてもよい。
また、ステップS707において、更新用プログラムをすべて受信しない場合(ステップS707:No)は、ステップS705に戻って処理を繰り返す。
つぎに、ステップS708においてチェックサムを確認したら、CPU401によって、有効プログラム情報保存領域510に更新用プログラム準備完了状態であることを書き込む(ステップS709)。更新用プログラム準備完了状態の書き込みは、たとえば、実行対象プログラムの更新準備が完了した旨を示す更新情報を有効プログラム情報保存領域510に保存することである。
なお、図7のフローチャートでは説明を省略するが、ステップS708においてチェックサムが確認できない場合は、エラーとして、再度更新用プログラム送信側マイコン502に対して、更新用プログラムを要求することとしてもよい。
そして、入出力I/F404によって、更新用プログラム送信側マイコン502に対してシャットダウン要求を出力する(ステップS710)。その後、入出力I/F404によって、更新用プログラム送信側マイコン502からステップS710におけるシャットダウン要求に応じたシャットダウン完了通知を受信して(ステップS711)、一連の更新用プログラムの受け付け処理を終了する。
つづいて、図8を用いて、本実施例にかかるワンチップマイコン400の起動処理手順について説明する。図8は、本実施例にかかるワンチップマイコンの起動処理手順を示すフローチャートである。図8のフローチャートにおいて、まず、入出力I/F404によって、リセットスタートを受け付ける(ステップS801)。
ステップS801において、リセットスタートを受け付けると、CPU401によって、IPL領域514に保存されたIPLを起動して(ステップS802)、有効プログラム情報保存領域510を参照する(ステップS803)。
そして、CPU401によって、ステップS803において参照された有効プログラム情報保存領域510の更新情報より、更新用プログラム準備は完了しているか否かを判断する(ステップS804)。更新用プログラム準備は、たとえば、有効プログラム情報保存領域510に更新用プログラム準備完了状態であることが書き込まれている(たとえば、図7に示したステップS709)か否かを判断することとしてもよい。
ステップS804において、更新用プログラム準備が完了している場合(ステップS804:Yes)は、CPU401によって、コピープログラムを起動させる(ステップS805)。コピープログラムは、たとえば、更新用プログラム保存領域512に一時保存された更新用プログラムを有効プログラム領域513に保存された実行対象プログラムなど各種プログラムに上書き保存するプログラムでもよい。
そして、ステップS805において起動されたコピープログラムによるコピーが終了するのを待って(ステップS806:No)、終了した場合(ステップS806:Yes)は、CPU401によって、有効プログラム領域513にコピーされたプログラムを検証する(ステップS807)。プログラムの検証は、たとえば、更新用プログラムが実行対象プログラムとして過不足なくコピーされたか否かを確認する構成でもよい。
そして、ステップS807においてプログラムの検証をおこなったら、CPU401によって、有効プログラム情報保存領域510に通常起動状態であることを書き込んで(ステップS808)、ステップS801へ戻って処理を繰り返す。
なお、図8のフローチャートでは説明を省略するが、ステップS807においてプログラムの検証の結果、実行対象プログラムとして過不足なくコピーされていない場合は、エラーとして、更新用プログラム保存領域512からのコピーを再度おこなうこととしてもよい。
また、ステップS804において、更新用プログラム準備が完了していない場合(ステップS804:No)は、CPU401によって、ステップS803において参照された有効プログラム情報保存領域510への書き込みが通常起動状態であるか否かを判断する(ステップS809)。
ステップS809において、通常起動状態である場合(ステップS809:Yes)は、CPU401によって、有効プログラム領域513のプログラムを起動させる(ステップS810)。
具体的には、たとえば、有効プログラム領域513のプログラムの起動は、CPU401によって、Vector領域515を参照して、仮想Vector領域601のアドレスを読み込む。そして、CPU401によって、仮想Vector領域601に保存された仮想初期起動プログラムによってアドレスが指定される実行対象プログラムa,b,cを実行することとしてもよい。
また、ステップS809において、通常起動状態でない場合(ステップS809:No)は、ステップS801へ戻って処理を繰り返す。
つぎに、入出力I/F404によって、割り込み処理を受け付けたか否かを判断する(ステップS811)。ステップS811において、割り込み処理を受け付けた場合(ステップS811:Yes)は、CPU401によって、割り込み処理をおこなって(ステップS812)、プログラムが終了したか否かを判断する(ステップS813)。なお、割り込み処理の詳細は、図9に後述する。
また、ステップS811において、割り込み処理を受け付けない場合(ステップS811:No)は、ステップS813へ移行して、プログラムが終了したか否かを判断する(ステップS813)。
ステップS813において、プログラムが終了した場合(ステップS813:Yes)は、ステップS801へ戻って処理を繰り返す。また、ステップS813において、プログラムが終了しない場合(ステップS813:No)は、ステップS810へ戻って処理を繰り返す。
つぎに、図9を用いて、本実施例にかかるワンチップマイコン400における割り込み処理(図8のステップS812)手順について説明する。図9は、本実施例にかかるワンチップマイコンにおける割り込み処理(図8のステップS812)手順を示すフローチャートである。図9のフローチャートにおいて、まず、CPU401によって、仮想Vector領域601を参照する(ステップS901)。
つぎに、CPU401によって、ステップS901において参照された仮想Vector領域601に保存された仮想初期起動プログラムを起動させて、実行対象プログラム領域602を参照する(ステップS902)。
そして、CPU401によって、ステップS902において参照された実行対象プログラム領域602に保存されたプログラムの中から実行対象となるプログラムを起動させて(ステップS903)、一連の割り込み処理を終了する。
以上説明したように、本実施例にかかるワンチップマイコンによれば、更新用プログラム保存領域に保存された更新用プログラムによって実行対象プログラムを更新するため、更新専用の外部機器を用意することなく、適切に実行対象プログラムを更新することができる。
また、有効プログラム情報保存領域に更新用プログラム準備完了状態であることが書き込まれてから、実行対象プログラムを更新する構成であるため、更新用プログラム準備完了状態となる前に電源障害などが発生しても、復旧後にはワンチップマイコンは正常に起動することができる。
さらに、Vector領域の書き換えをおこなわずに、仮想Vector領域を含む有効プログラム領域を更新する構成であるため、更新途中に電源障害などが発生しても、復旧後にはワンチップマイコンは正常に起動することができ、有効プログラム領域の効率的な利用を図ることができる。
200 情報処理装置
201 更新用プログラム入力部
202 一時保存部
203 判定部
204 生成部
205 更新情報保存部
206 再稼働情報入力部
207 判断部
208 更新部
209 実行部

Claims (2)

  1. プログラムを保存するメモリおよびプログラムを実行する制御手段を備える情報処理装置であって、
    前記メモリは、
    実行対象となるプログラムのアドレスを保存するVector領域、
    リセットスタート時に実行される初期起動プログラムを保存するIPL領域、
    実行対象プログラムを保存する実行対象プログラム領域と、リセットスタート時に前記実行対象プログラムを実行させるための仮想初期起動プログラムを保存する仮想Vect
    or領域と、から構成される有効プログラム領域、および
    前記有効プログラム領域のプログラムを更新するための更新用プログラムを一時保存する更新用プログラム保存領域、
    を有し、
    前記制御手段は、
    リセットスタートを受け付けた場合に、前記Vector領域を参照して前記IPL領域の初期起動プログラムを実行して、前記更新用プログラム保存領域に更新用プログラムが不足なく保存されて更新準備が完了しているか否かを判定し、
    前記更新準備が完了している場合には前記更新用プログラムを前記有効プログラム領域に複製し、前記更新準備が完了していない場合には前記仮想Vector領域の仮想初期起動プログラムを実行して前記実行対象プログラム領域の実行対象プログラムを実行することを特徴とする情報処理装置。
  2. プログラムを保存するメモリを備える情報処理装置が実行する情報処理方法であって、
    前記メモリは、
    実行対象となるプログラムのアドレスを保存するVector領域、
    リセットスタート時に実行される初期起動プログラムを保存するIPL領域、
    実行対象プログラムを保存する実行対象プログラム領域と、リセットスタート時に前記実行対象プログラムを実行させるための仮想初期起動プログラムを保存する仮想Vector領域と、から構成される有効プログラム領域、および
    前記有効プログラム領域のプログラムを更新するための更新用プログラムを一時保存する更新用プログラム保存領域、
    を有し、
    リセットスタートを受け付けた場合に、前記Vector領域を参照して前記IPL領域の初期起動プログラムを実行して、前記更新用プログラム保存領域に更新用プログラムが不足なく保存されて更新準備が完了しているか否かを判定し、
    前記更新準備が完了している場合には前記更新用プログラムを前記有効プログラム領域に複製し、前記更新準備が完了していない場合には前記仮想Vector領域の仮想初期起動プログラムを実行して前記実行対象プログラム領域の実行対象プログラムを実行する制御工程を含むことを特徴とする情報処理方法。
JP2008537391A 2006-10-04 2006-10-04 情報処理装置および情報処理方法 Expired - Fee Related JP5016604B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/319881 WO2008041337A1 (fr) 2006-10-04 2006-10-04 Dispositif, procédé et programme de traitement d'informations et support d'enregistrement lisible par ordinateur

Publications (2)

Publication Number Publication Date
JPWO2008041337A1 JPWO2008041337A1 (ja) 2010-02-04
JP5016604B2 true JP5016604B2 (ja) 2012-09-05

Family

ID=39268205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008537391A Expired - Fee Related JP5016604B2 (ja) 2006-10-04 2006-10-04 情報処理装置および情報処理方法

Country Status (2)

Country Link
JP (1) JP5016604B2 (ja)
WO (1) WO2008041337A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020017315A (ja) * 2019-10-21 2020-01-30 パナソニックIpマネジメント株式会社 制御方法およびそれを利用した通信装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09238213A (ja) * 1996-02-29 1997-09-09 Ricoh Co Ltd 通信装置
WO1997038367A1 (en) * 1996-04-11 1997-10-16 Hitachi, Ltd. Disk drive and computer
JP2002007128A (ja) * 2000-06-19 2002-01-11 Nec Soft Ltd モジュール配信保守システム及びモジュール配信保守方法
JP2002063044A (ja) * 2000-08-21 2002-02-28 Matsushita Electric Ind Co Ltd 演算装置及びプログラム書き換え方法
JP2002244877A (ja) * 2001-02-19 2002-08-30 Nec Corp プリンタ装置およびそのプログラム更新方法
JP2005332228A (ja) * 2004-05-20 2005-12-02 Nec Engineering Ltd プログラム切替え制御装置
JP2006060355A (ja) * 2004-08-18 2006-03-02 Matsushita Electric Ind Co Ltd 機器プログラムの更新システムおよび方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09238213A (ja) * 1996-02-29 1997-09-09 Ricoh Co Ltd 通信装置
WO1997038367A1 (en) * 1996-04-11 1997-10-16 Hitachi, Ltd. Disk drive and computer
JP2002007128A (ja) * 2000-06-19 2002-01-11 Nec Soft Ltd モジュール配信保守システム及びモジュール配信保守方法
JP2002063044A (ja) * 2000-08-21 2002-02-28 Matsushita Electric Ind Co Ltd 演算装置及びプログラム書き換え方法
JP2002244877A (ja) * 2001-02-19 2002-08-30 Nec Corp プリンタ装置およびそのプログラム更新方法
JP2005332228A (ja) * 2004-05-20 2005-12-02 Nec Engineering Ltd プログラム切替え制御装置
JP2006060355A (ja) * 2004-08-18 2006-03-02 Matsushita Electric Ind Co Ltd 機器プログラムの更新システムおよび方法

Also Published As

Publication number Publication date
JPWO2008041337A1 (ja) 2010-02-04
WO2008041337A1 (fr) 2008-04-10

Similar Documents

Publication Publication Date Title
JP5431111B2 (ja) 情報処理装置及びシステム設定方法
KR100584338B1 (ko) 소프트웨어 업데이트 방법 및 시스템
CN101169749A (zh) 软件版本升级管理装置和软件版本升级管理方法
JP7232062B2 (ja) 電子制御装置及びプログラム更新方法
JP2005157528A (ja) メモリ装置
JP5754264B2 (ja) プログラム実行装置、画像処理装置およびプログラム
JP5747680B2 (ja) 情報処理装置、画像形成装置およびプログラム
JP5016604B2 (ja) 情報処理装置および情報処理方法
JP2018160207A (ja) 車載制御装置、及び、プログラム更新ソフトウェア
JP6575157B2 (ja) ファームウェアのダウンロード方法及びファームウェア組込機器
JP2002189609A (ja) アクシデントに適応したソフトウェア更新方式および方法
JP2004220575A (ja) カード型メモリのインターフェース回路、その回路を搭載したasic、及びそのasicを搭載した画像形成装置
JP2015129994A (ja) 送信プログラム、送信方法、及び送信装置
JP2018160208A (ja) 車載制御装置、及び、プログラム更新ソフトウェア
JP2013004043A (ja) 情報処理装置、画像形成装置およびプログラム
JP2013003984A (ja) 情報処理装置、画像形成装置、およびプログラム
JP4478298B2 (ja) データ転送システム
JP2021089643A (ja) 電子制御装置及び電子制御方法
JP2021111916A (ja) 情報処理装置及びプログラム復旧方法
JP7491765B2 (ja) ファームウェア更新システムおよびファームウェア更新方法
JP2004094725A (ja) ファームウェア書換装置及びファームウェア書換方法
JP2005228225A (ja) メモリカードアダプタ
JP2007042038A (ja) 端末機器の制御装置及び制御方法
JP2025017216A (ja) ソフトウェアの書き込み方法、及び制御装置
JP2004246576A (ja) プログラム書換方法及び半導体装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120514

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120608

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees