JP4291881B2 - 回路内プログラミング構造を埋め込んだプロセッサ - Google Patents

回路内プログラミング構造を埋め込んだプロセッサ Download PDF

Info

Publication number
JP4291881B2
JP4291881B2 JP52040298A JP52040298A JP4291881B2 JP 4291881 B2 JP4291881 B2 JP 4291881B2 JP 52040298 A JP52040298 A JP 52040298A JP 52040298 A JP52040298 A JP 52040298A JP 4291881 B2 JP4291881 B2 JP 4291881B2
Authority
JP
Japan
Prior art keywords
circuit
processor
instruction set
programming
array
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 - Lifetime
Application number
JP52040298A
Other languages
English (en)
Other versions
JP2001510600A (ja
Inventor
アルバート シー スン
チャン ルン チェン
チー ホルン リー
Original Assignee
マクロニクス インターナショナル カンパニー リミテッド
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 マクロニクス インターナショナル カンパニー リミテッド filed Critical マクロニクス インターナショナル カンパニー リミテッド
Publication of JP2001510600A publication Critical patent/JP2001510600A/ja
Application granted granted Critical
Publication of JP4291881B2 publication Critical patent/JP4291881B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)

Description

本発明の背景
発明の分野
本発明は集積回路上のプロセッサによる実行のための命令シーケンスを記憶する不揮発性メモリを有する集積回路に関し、より詳細には命令の記憶されたシーケンスを更新及び修正する回路内プログラミングを成し遂げる技術に関する。
関連技術の説明
集積回路のマイクロコントローラは該マイクロコントローラにより実行される命令シーケンスを記憶するためチップ上に不揮発性メモリのアレイを含むものを開発した。命令シーケンスは読み出し専用メモリ(ROM)に記憶されることができ、該ROMはデバイスの製作中にプログラムされなければならず、又更新することはできない。別のアプローチでは、命令はEPROMアレイに記憶されることができる。これらのタイプのデバイスはデバイスが回路に配置される前にEPROMアレイをプログラムするために使用される特別のプログラミングデバイスを必要とする。更なる他のシステムでは、EEPROMメモリが命令を記憶するために使用可能である。EEPROMはEPROMより非常に早くプログラムでき、作動中に修正することができる。また、フラッシュメモリが利用でき、命令を記憶する不揮発性メモリのより高密度で高速の再プログラミングを可能にする。不揮発性メモリがEEPROM又はフラッシュメモリのように再プログラム可能でマイクロコントローラに結合される時、デバイスが回路内にある間にデバイスの再プログラミングが成し遂げられ、対話式アルゴリズムに基づいて回路内プログラミングを可能にする。
例えば、インターネット環境では、リモートデバイスに命令セツト及びデータを対話式にダウンロードする能力は非常に貴重である。例えば、会社はサービスセンタに製品を戻すように顧客に要求することなしに顧客にサービスを提供することができる。それどころか、会社はインターネット又は電話線のような通信経路を通して、顧客のデバイスの回路内プログラミング能力を使用して診断機能を実行することができる。ソフトウェアの手直しは顧客にダウンロードさせることができ、製品は修正又は更新したコードで再度与えることができる。
この性能を有する従来のデバイスの例は、カリフォルニアのAtmel of San Joseにより製造されたAT89S8252マイクロコントローラ及びオランダのEindhovenのPhillps Semiconductorsにより製造されたP83CE558シングルチップマイクロコントローラを含んでいる。フィリップス(Phillps)のP83CE558マイクロコントローラの構造によれば、マスクROMは命令の回路内プログラミングICPセットのために利用され、チップのフラッシュメモリを更新するために使用されている。従って、フィリップスのマイクロコントローラは専用のマスクROMモジュールを必要とし各個人環境のため手直ししたICPコードを記憶する。特別の環境にICPコードを適合させるためには、マスクROMがコード化可能なようにデバイスの製造が完了する前に環境が知られなければならない。更に、ICP通信経路はフィリップスのマイクロコントローラのシリアルRS232ポートに取り付けられている。シリアルポートへの制限はマイクロコントローラの使用を比較的狭い範囲の電位の使用に限定し、シリアルポートが更新されたソフトウェアの提供する通信経路とうまく一致しない動的な通信環境においてICP機能を利用するのを困難にさせる。
アトメル(Atmel)のAT89S8252マイクロコントローラの構造によれば、チップ上の専用シリアル周辺インタフェース(SPI)ポートは動的に変更可能な命令を記憶するフラッシュメモリの更新に使用される。プログラム論理はSPIポートに結合され、そのため柔軟性がない。更に、回路内プログラミング技術の修正はSPIポートへのハードウェア専用のため行うことができない。アトメルのチップの更なる不利な点は、ICPイニシエータとハンドシェイキングすると共にフラッシュメモリ用の消去/プログラム/確認の波形をエミュレートするために使用される複雑なハードウェアがチップに加えられなければならないこと、SPIバス制限が異なるシステムの適用に必ずしも最良の選択であるとは限らないこと、及び元のリセット回路を修正するために特別のシステム論理が要求され、回路内プログラミングアルゴリズムにより密接に結び付けられることである。更に、複合SPIドライバ及びレシーバ論理はアトメルのマイクロコントローラを使用するシステムのチップの外部で要求される。
従って、回路内プログラミング構造はフラッシュメモリ又は他の動的に変更可能な不揮発メモリによって開発された。しかし、従来技術のアプローチは使用された回路内アルゴリズムで柔軟性がなかった。従って、通信の要求が変更可能で回路内プログラミングを使用するデバイスの使用が幅広い種類の環境を介して急激に増す動的なネットワーク環境において、より柔軟な回路内プログラミング性能を提供するのが好ましい。更に、回路内プログラミング性能は、電源がプロセス中に切られている場合でさえ、回路内プログラミングプロセス中に命令が失われることがないことを保証しなければならない。その技術は遠方の相手との対話型通信を可能にし回路内プログラミングプロセスを成し遂げる。これらの技術は、インテル/マイクロソフト/デジタル標準全体シリアルバス(USB)、フィリップ電子/コンピュータアクセス技術標準アクセスバス、アップルコンピュータ/IBM/AT&T標準ゲオポート、アップルコンピュータ/テキサスインストルメンツ/NCR標準1349ファイアワイア、インターネット、シリアルポート(RS232等)、及び他の環境を含む幅広い種類のメディアに渡って利用されているに違いない。
従って、集積回路での使用のためより柔軟な回路内プログラミング構造を提供するのが好ましい。
本発明の概要
本発明は回路内プログラミングを支援する集積回路のための構造を提供し、チップに記憶された他のソフトウェアと同様に回路内プログラミング命令セット自体を動的に変更することを可能にする。これは回路内プログラミングデバイスの有用性を幅広い種類の通信環境に著しく拡大し、特定のシステムの要求に適合するようにシリアルポート、パラレルポート、電話通信、インターネット通信、及び他の通信プロトコルを支援する。本発明は命令を記憶する埋込み型不揮発性メモリアレイを有する集積回路のマイクロプロセッサ又は他の命令実行プロセッサに基づき、回路内プログラミング命令セットを含んでいる。デバイスに記憶された制御プログラムを使用して、デバイスは遠方の相手との回路内プログラミング交換局を対話式に確立し、必要な時に、回路内プログラミングシーケンスを含むデータ及びソフトウェアを更新する。例えば、自己更新アルゴリズムは本発明によると以下のように進められる。
1.デバイスは回路内プログラミング要求を受け取る。
2.イニシエータが確認される。
3.デバイスは識別子を要求のイニシエータに戻す。
4.パーティがうまく確認されると、情報交換が進行する。
5.回路内プログラミングを始めるため、プログラムの実行がチップの不揮発性メモリの回路内プログラムルーチンにジャンプする。
6.回路内プログラミングルーチンがそれ自身又は少なくともICPの核をチップのメモリの別のバンクに複製する
7.回路内プログラミングソフトウェアはそれ自身を不能にし、複製されたICPシーケンスを起動する
8.複製されたICPシーケンスは新しい回路内プログラミングソフトウェアを元のICPの位置にダウンロードする。
9.複製されたICPシーケンスはそれ自身を不能にし、元のフラッシュアレイの新しいICPソフトウェアで起動する
10.正常のプログラムの実行がその後再開される。
フラッシュメモリデバイスに記憶されたソフトウェアの他の部分用の新しい命令及びデータは、それが作動された後、元のICPコード、複製されたICPコード、又は新しいICPコードによって、シーケンスの多数の場所で実行することができる。
従って、本発明は命令のプログラムを実行するプロセッサを有する集積回路の回路内プログラミング用の装置として特徴を表すことができる。装置は第1メモリアレイを含み、プロセッサによる実行のための命令を記憶する集積回路上に、路内プログラミング命令セットを含む、不揮発性メモリセルを含んでいる。また、第2メモリアレイは好適なシステムで不揮発性メモリセルを含み、集積回路に提供される。1以上の外部ポートが集積回路上に提供され、それによりデータが外部の情報源から受け取られる。制御論理回路はプロセッサとICPコードの核を含み、回路内プログラミング更新指令に応答し、第1メモリアレイから路内プログラミング命令セットのコピーを第2メモリアレイに書き込むと共に第2メモリアレイから路内プログラミング命令セットをプロセッサに実行させ、第1メモリアレイの不揮発性メモリセルを外部ポートからのデータでプログラムする。
本発明の1つの特徴によれば、第1メモリアレイは不揮発性メモリセルの別々に消去可能な複数のブロックを含み、回路内プログラミング命令セットは特定のブロックに記憶されている。回路内プログラミング命令セットの実行中、特定のブロックは修正され新しい回路内プログラミング命令セットを生成する。その後、制御論理回路は第1メモリアレイからしい回路内プログラミング命令セットをプロセッサに実行させる。
本発明の更なる別の特徴によると、集積回路は、1以上のシリアルポート、1以上のパラレルポート、及び潜在的に1以上の専用通信ポートのような、外部のデータ源への複数のポートを含んでいる。回路内プログラミング命令セットの実行中に外部ポートとして使用されるような複数のポート中のポートは、回路内プログラミング命令セット自身の命令により決定され、従って、本発明の1つの好適な実施例で動的に変更可能である。
本発明の別の特徴によれば、集積回路は、路内プログラミング命令セットから独立して、第1メモリアレイ及びオプションとして第2メモリアレイをプログラムすると共に確認するためのデータ経路を含んでいる。従って、多重I/Oピン等を使用して、元のソフトウェアは製造中又はチップをシステムに取りつける前にデバイスにロードされることができる。元のコードを修正するためには、回路内プログラミングプロセスが利用される。
本発明は集積回路のコントローラとしての特徴を表し、プロセッサモジュールへの命令入力で受け取った命令を実行する集積回路のプロセッサを含んでいる。不揮発性メモリセルの第1及び第2のメモリアレイは集積回路上に提供されている。第1メモリアレイは不揮発性セルの特定のブロックに路内プログラミング命令セットを記憶する。外部ポートは集積回路上に提供され、それによりデータが外部の情報源から受け取られる。制御論理回路はICPコードにプロセツサと核を含み、回路内プログラミング更新指令に応答して、第1メモリアレイから路内プログラミング命令セットのコピーを第2メモリアレイに書き込むと共に第2メモリから回路内プログラミング命令セットを第1メモリアレイの不揮発性メモリセルを外部ポートから受け取ったデータでプログラムさせる。集積回路のデータ経路は回路内プログラミング命令セットから独立して第1メモリアレイをプログラムすると共に確認するために提供される。別の実施例では、外部ポートはシリアルポートとパラレルポートを含んでいる。更なる別の実施例では、デバイス上の複数の外部ポートと、回路内プログラミングシーケンスが回路内プログラミングソフトウェア自体により指定されている間の使用のために選択されたものがある。
従って、命令のプログラムを実行するプロセッサを有する集積回路の回路内プログラムの方法が提供される。その方法は、
1.第1の消去可能でプログラム可能な読み出し専用メモリアレイと第2の消去可能でプログラム可能な読み出し専用メモリアレイを集積回路上に提供すること、
2.第1アレイに回路内プログラミング命令セットを記憶すること、
3.集積回路の外部のイニシエータから回路内プログラム指令を受け取ること、
4.回路内プログラム指令に応じて、第1アレイから路内プログラミング命令セットを第2アレイにコピーし、第2アレイから路内プログラミング命令セツトをプロセッサで実行すること、
5.回路内プログラミング命令セットの制御下で、少なくとも第1アレイの選択した部分を外部の情報源からのデータでプログラムすること、及び
6.第1アレイのその部分をプログラムした後、第1アレイから路内プログラミング命令セットをプロセッサで実行すること、を含んでいる。
本発明の別の特徴によると、その方法は第1メモリアレイの選択した部分に回路内プログラミング命令セットを記憶することを含んでいる。二者択一的には、その方法は、回路内プログラミング指令により示された回路内プログラミングシーケンスが回路内プログラミング命令セットを修正することを含んでいるかどうかをイニシエータから決定する段階を含んでいる。シーケンスが修正を含んでいる場合には、その後コピー及び実行する段階が行われる。そうでなければ、その後コピー及び実行する段階はスキップされ、アルゴリズムは直接続行しメモリアレイの他の部分の命令及びデータをプログラムする。
要するに、本発明は回路内プログラミング技術を提供し、命令の回路内プログラミングシーケンスの動的変更を可能にする。これは幅広い種類の環境でのデバイスの使用を可能にし、環境を動的に変更する。例えば、通信ピロトコルが更新される場合、その後命令自体の回路内プログラミングシーケンスは修正を必要としてもよい。本発明によれば、通信プロトコルが改良されスピードが増加するに連れて、マイクロコントローラはフィールドに配置され動的に更新されることが可能である。更に、デバイスは幅広い種類の通信ポートに適合可能であり、回路内プログラミング性能でより広く行き渡ったマイクロコントローラの適用が可能である。
本発明の他の特徴及び利点は図面の概観、詳細な説明、及び後に続く特許請求の範囲で理解できる。
【図面の簡単な説明】
図1は集積回路のマイクロコントローラの概略ブロック図であり、本発明の回路内プログラミング構造を含んでいる。
図2A〜図2Cは本発明による好適な回路内プログラミングプロセスのフローチャートである。
図3は図2A〜図2Cのプロセスで呼び出される更新ブロックルーチンのフローチャートである。
図4は本発明の適用の環境を示している。
詳細な説明
本発明の好適な実施例の詳細な説明は図1,2A〜2C,3及び4に関して提供され、図1はデバイスのハードウェアブロック図を提供する。
図1は集積回路10に埋め込まれたマイクロプロセッサ11のようなプロセッサを有する集積回路10の簡略図である。マイクロコントローラ11は複数のシリアルポート12、複数のパラレルポート13、割り込みピン14、及び他のシングルピン15を含んでいる。例えば、マイクロコントローラ11は本技術分野で公知の標準8051マイクロコントローラ命令セットと互換性があってもよい。複数のポート12及び13が標準インターフェース技術を使用してデバイス上で実行される。別の設計はチップに特別の目的のポートを含んでいる。
本発明の回路内プログラミングの機能性を支援するため、不揮発性メモリの第1アレイ16及び不揮発メモリの第2アレイは集積回路10に埋め込まれている。好適な実施例によれば、第1アレイ16はフラッシュROMセルを含み、該フラッシュROMセルは本技術分野で公知なようにフローティングゲートメモリセルを使用して実行される。第1アレイはフラッシュROMセルの複数のブロック、ブロックNを通るブロック0を含み、バンク0と呼ばれる。また、第2アレイ17はフラッシュROMを含み、セルの複数のブロック、ブロックMを通るブロック0を含み、バンク1と呼ばれる。
集積回路は本技術分野で公知なように、アレイ16及び17の消去及びプログラミング用の正常経路20と消去を確認すると共にプロセスをプログラミングする正常確認経路21とを含んでいる。好適なシステムでは、正常経路20及び21は集積回路10上でI/Oピンにより外部回路に接続されている。更に、集積回路上のこれらのI/Oピンはポート12,13、割り込み14、及び他の信号15を支援する他のピンで多重化される。従って、例えばテストモード又は製造モード中にI/Oチップの他の機能が不能の間、正常消去及びプログラム経路20及び正常確認経路21が使用可能である。多重化したI/Oピンを行う技術は本技術分野では常識である。
第1アレイ16と第2アレイ17はそれぞれの読み出しポート24及び25を含み、アレイに記憶された命令をマイクロコントローラ11に提供する。従って、読み出しポート24はコード入力多重装置26に結合され、読み出しポート25はコード入力多重装置26に結合されている。同様の方法で、両方の読み出しポート24及び25は確認多重装置に結合され、アレイ16とアレイ17のデータが確認手続きの間に読み出される。
コード多重装置26の出力はマイクロコントローラ11のための命令入力28に供給される。確認多重装置27の出力はマイクロコントローラ11の読み出し入力29及び正常確認経路21に供給される。
正常消去/プログラム経路20は消去/プログラムセレクタ30に接続されている。セレクタ30への第2入力はマイクロコントローラ11からの線38上の消去及びプログラム信号を含んでいる。マイクロコントローラ11は線31及び32で示したように多重装置26及び多重装置27を制御する。また、マイクロコントローラ11は線33で示されるようにセレクタ30を制御する。
消去/プログラムセレクタ30は線35上の消去及びプログラムデータ及び信号を第1アレイ16及び第2アレイ17の消去/プログラムポート36に供給する。消去/プログラムポート36は、制御状態機械、高電圧発生機、負電圧発生機、タイマ等のように、アレイのための消去及びプログラム動作で使用される論理及び回路を含んでいる。好適な実施例では、共用の消去/プログラム回路が第1アレイ16及び第2アレイ17の両方のために使用される。代案では、別個の消去/プログラム回路が別個の不揮発性メモリセルのために使用される。別個の消去/プログラム回路の使用は、チップ領域の消費を犠牲にして、デバイスの実行を簡単にするために好まれる。
図1で示された実施例では、フラッシュROMセルの2つのバンクのみが示されている。別のシステムはフラッシュROMセルの2以上のバンクを含み、回路内プログラミング構造の設計及び実行で一層著しい柔軟性を可能にする。
図1に示されているように、メモリアレイ16及び17はマイクロコントローラ11により実行される命令を記憶する。命令の1部分はICPの核を含み、命令40の回路内プログラミング命令セットと呼ばれている。ICPの核は回路内プログラミングプロセス中に保存しなければならない本質的なICPコード及び又はシステムコードを含んでいる。図1に示された実施例では、回路内プログラミング命令セットはフラッシュアレイ17のバンク1のブロックMに記憶されている。回路内プログラミング命令セット40は所定の実行のデバイスの特定のブロックに記憶されることができる。また、セグメント化したフラッシュ構造により、アレイ16及び17は別々に消去可能な複数のセルのブロックを含み、例えば、Yinらにより発明された「フラッシュEPROMの集積回路構造(FLASH EPROMINTEGRATED CIRCUIT ARCHITECTURE)」という表題の米国特許No.5,526,307で説明されている。別の実施例は第1アレイ16の別個に消去可能な複数のブロックと第2アレイのシングルブロックを含んでいる。二者択一的に、シングルブロックが各アレイに記憶されていてもよい。メモリ構造の幅広い種類の組み合わせは特定のシステムの要求の適合するように行われることができる。
図1の構造を使用して、システムの設計者は回路内プログラミングコードをそれらの特定の環境に適合することを可能にする。従って、製造者は図1に示すように、それらの回路の実行のため集積回路を選択する。回路内プログラムコードが用意されていない場合、マイクロコントローラが利用され、チップ上で利用可能な多様な通信ポートが利用され、回路盤上で要求される特別の論理をマイクロコントローラで最小にし、描かれた特定の回路内プログラミング(ICP)環境にシステムを一致させる。回路内プログラミングのための適切な接続とプロトコルが設計者により選択される。選択された環境用のICPコードか開発され改良されている。次に、ICPコードはプログラムに統合され、システムの正常動作中に実行される。正常消去及びプログラム経路20を使用して、集積されたICPコード及びユーザーコードがフラッシュメモリアレイ16及び17に記憶されている。次に、正常確認経路21を使用して、消去及びプログラム動作が確認される。集積されたICPコードを有する高性能のマイクロコントローラは、その後システム内部に配置される。ICP手続きが行われテストされる。ICPコードかうまく動作すると、その後システムがテストされる。システムがうまく動作すると、その後システム製品は大量生産可能となる。ICPコードが修正を必要とする場合には、その後プロセスが対話式で行われ、ICPコードを最適化する。同様に、システムコードは同じ技術を使用して最適化される。従って、製造者により開発された本システムの最終ユーザーはマイクロコントローラに埋め込まれた頑強な回路内プログラミングコードを有し、本発明により、対話式の回路内プログラミング技術を使用して作動中に更新及び修正することが可能である。
図2A〜図2Cは最終ユーザーにより実行される本発明に係る回路内プログラミング技術を示している。図2A〜図2Cによると、論理はマイクロコントローラにより実行されるソフトウェアにより、専用の論理回路により、又はソフトウェアと専用の論理回路の組み合わせにより実行される。
点200で示されているように、リモートイニシエータが、回路内プログラミング命令セット又は集積回路のフラッシュROMバンクの1つに記憶された他のソフトウェアを更新又は置換することを望む時、プロセスが図2Aで始まる。第1段階はイニシエータを含み、集積回路上のI/Oポートを介してICP修正要求を送る(ブロック201)。マイクロコントローラはイニシエータの識別子を検査し、その要求を実行する(ブロック202)。識別子検査が失敗した場合、アルゴリズムは失敗の限界数が起きたかどうかを決定する(ブロック203)。テストが何回も失敗した場合、その後マイクロコントローラはイニシエータに認識の失敗応答を発行し(ブロック204)、図2Cの点Cに分岐する。ブロック202のテストが何回も失敗しなかった場合、その後マイクロコントローラはイニシエータにイニシエータの識別子の要求を発行し(ブロック205)、ブロック201に分岐する。ブロック202のイニシエータの識別子テストが合格した場合、マイクロコントローラのイニシエータは更新を確認する改訂番号を発行する(ブロック206)。次に、マイクロコントローラは次の段階でICP修正要求を認識し確認する(ブロック207)。例えば、1つの実施例では、マイクロコントローラはICP認識指令を発行し、ICPイニシエータに戻す。イニシエータは肯定応答で応答し、ICP通信路を開放する。
次の段階では、マイクロコントローラはICP修正要求が確認されたかどうかを決定する(ブロック208)。要求が確認されない場合、その後マイクロコントローラは正常のアクティビティを続行し(ブロック209)、シーケンスは終わる(ブロック210)。ICP修正要求が確認されると、その後マイクロコントローラはICPコードにトラップを実行する(ブロック211)。従って、マイクロコントローラはその電流状態を保持し、正常のアクティビティを遮断し、ICPコードにジャンプし、回路内プログラミングシーケンスの準備を始める。プロセスは図2Bの点Aに続く。
図2Bの第1段階はハンドシェイクプロトコルをイニシエータと関連させ、ICP修正シーケンスの範囲を決定する(ブロック212)。例えば、ICP修正シーケンスは集積回路の第1及び第2アレイに1個のブロック又は多数のブロックを含んでいる。また、ハンドシェイクプロトコルはICPコード自体が修正動作の対象であるかどうかを決定する。従って、次の段階はICPブロックが修正シーケンスに含まれるかどうかを決定する(ブロック213)。ICPブロックが修正シーケンスに含まれない場合には、その後アルゴリズムは示したように点Bに進み、図2Cで続けられる。ICP修正シーケンスがICPブロックを含む場合、その後ICP論理は複製されたICPコードを記憶するブロックを選択する(ICPコードが元来バンク1に記憶される実施例のバンク0のブロックi)。ICPコードを複製ブロックを選択して、選択したブロックは消去される(ブロック214)。次に、元のICPコードはバンク0の選択ブロックにプログラムされる(ブロック215)。
プログラムシーケンスの後、確認動作が実行される(ブロック216)。確認動作が失敗した場合、その後アルゴリズムはICPブロックのプログラムが何回も失敗したかどうかを決定する(ブロック217)。そうでなければ、その後ICPブロックのプログラムはブロック214にループすることにより再試行する。シーケンスが何回も失敗すると、その後論理はICPの失敗応答をイニシエータに発行し(ブロック218)、図2Cの点Cに分岐する。
ブロック216で確認手続きが終わると、その後コード多重装置(例えば図1の多重装置26)は切り替えられ、複製されたICPコードが記憶されるバンクから命令を選択する(ブロック219)。複製されたICPコードが実行され、バンク1のブロックMのためパラメータセットと共に更新ブロックルーチンへの呼出しがなされる(ブロック220)。更新ブロックルーチンは図3に示され、おそらく新しいICPコードでバンク1のブロックを更新することになる。段階215の後、コード多重装置は切り替えられ、元のバンクのバンク1に戻し、おそらく新しいICPコードを記憶する(ブロック221)。その後アルゴリズムは図2Cの点Bに進む。
図2Cでは、次の段階は、もしあれば、ICP手続きのため別のブロックを選択することを含んでいる(ブロック223)。別のブロックを選択した後、更新ブロックはバンクjのブロックiのパラメータセットで呼び出され、選択したブロックを示す(ブロック224)。アルゴリズムは次に回路内プログラミングシーケンスの全てのブロックが完了したかどうかを決定する(ブロック225)。YESの場合には、その後全てのプログラムされたブロックのため検査合計が計算される(ブロック226)。ブロック225でNOの場合には、その後アルゴリズムはブロック223にループする。ループは回路内プログラミング手続きの所定の範囲内の全てのブロックか完了するまで続く。ICP手続きの完了後、全てのプログラムされたブロックのため検査合計が計算される(ブロック226)。プロトコルは始動し計算された検査合計をイニシエータにより提供された検査合計に突き合わせる(ブロック227)。一致した場合には、その後マイクロコントローラは改訂番号を記録し、ICPの完了応答をイニシエータに発行する(ブロツク228)。その後マイクロコントローラが正常動作に戻り(ブロック229)、アルゴリズムは終了する(ブロック230)。検査合計がブロック227で一致しない場合、その後アルゴリズムはICPシーケンスが何回も失敗したかどうかを決定する(ブロック231)。何回も失敗していない場合には、その後アルゴリズムは図2Aの点Aにループし、ICPシーケンスを再試行する。ICPシーケンスが何回も失敗した場合には、その後アルゴリズムはICPの失敗応答をイニシエータに発行し(ブロック232)、手続きが終了する(ブロック230)。
更新ブロック手続きが図3に示されている。従って、更新ブロック手続きはパラメータセット、例えばバンクkのブロックjと共に呼び出される(ブロック300)。シーケンスは確認多重装置を設定し確認経路のためバンクkを選択する(ブロック301)。バンクkの次のブロックjはICP消去経路を使用して消去される(ブロック302)。消去プロセスの後、確認シーケンスが実行される(ブロック303)。確認が失敗すると、その後消去手続きが何回も失敗したかどうかを決定する(ブロック304)。もしそうでなければ、その後アルゴリズムはブロツク302にループバックし消去を再試行する。それが何回も失敗した場合には、その後エラーが返送される(ブロック305)。ブロック303から首尾よく確認した後、データがICPイニシエータから検索される(ブロック306)。ICPイニシエータからのデータは1バイト以上のデータでもよく、ユーザーに選択されたICPプロトコルによる。
ICPイニシエータからのデータを検索後、アルゴリズムはICPプログラム経路を介してバンクkのブロックjをプログラムする(ブロック307)。プログラムシーケンス後、確認動作が実行される(ブロック308)。プログラム確認が失敗すると、その後それは失敗が何回も起きたかどうかを決定する(ブロック309)。それが何回も失敗した場合には、その後エラーが返送される(ブロック310)。確認が何回も失敗した場合には、その後プログラムはブロック307にループすることにより再試行される。ブロック308で確認が成功すると、その後ICPシーケンスがバンクkのブロックjにプログラムするためのデータをもっと含んでいるかどうか決定する(ブロック311)。YESの場合には、その後アルゴリズムはブロック306にループし、プログラミングのためのデータの次のシーケンスを検索する。それ以上バイトが残っていない場合には、その後アルゴリズムは戻る(ブロック312)。
図4は本発明の使用環境を示している。本発明はプリント回路板401又は他のシステム手段に配置される集積回路400で実行される。マイクロコントローラ400はそれが利用されるシステムの複数の集積回路402,403,404及び又は405に結合されている。チップ405はICPプログラミングが成し遂げられる通信路を渡るブリッジを提供する。チップ405は単純ネットワークポートを含んでもよく、又は特別グルー(glue)論理を含んでもよく、存在するシステムの動きにICPの解釈を明白にする。ポートチップ405の特性は異なる適用において相違するであろう。チップ405は種々のICP通信路に結合され、データ率、エラー率、及び複雑さの異なるレベルを有してもよい。例えば、1実施例では、通信路406はインターネットプロトコルを含んでいる。通信路406はパーソナルコンピュータ又はワークステーションのようなICPイニシエータ407に結合されている。ワークステーション407はネットワーク又は他の通信路408により大規模記憶装置409に結合されている。例えば、ワークステーション407は通信路406のインターネットを介してアクセスされたワールドワイドウェブサイトであってもよい。二者択一的には、他のシステムにおいて、ワークステーション407はダイアル呼出しモデムリンクを横切るイニシエータとして動作する。別の代案では、通信リンク406はパーソナルコンピュータの通信バスであり、回路内ソフトウェアはバス406を渡ってロードされ、システム401へのアップグレードがフロッピディスクの最終ユーザーに分散し、又はさもなければパーソナルコンピュータ407を介してロードされるようになっている。
従って、本発明は高性能で柔軟性のあるフラッシュメモリを基本にしたマイクロコントローラ構造を提供し、種々の回路内プログラミングの適用を可能にする。本発明によると、例えば、テレビ又はビデオモニター、デジタルビデオディスク又はCD-ROM、遠隔制御装置、又は移動電話が回路内プログラミング構造を有するマイクロコントローラを含んでいてもよい。その後更新されたICPコードのいろいろな情報源が本発明の柔軟な構造を使用して各デバイスにロード可能である。本発明の単一回路内プログラミング構造は幅広い種類の適用において利用可能である。回路内プログラミング構造を支援するため、グルー論理はほとんど又は全く必要とされない。更に、回路内プログラミングに結合したマイクロコントローラの力は柔軟性を増加させると共に所定の環境のためICPプロトコルに特注するために影響を与えることが可能である。
本発明の好適な実施例の前述した説明は図解又は説明の目的のため表されたものである。本発明を開示された正確な形式に徹底又は限定することを意図するものではない。明らかに、この技術分野の熟練した実務家にとって多くの修正及び変更が明白であろう。本発明の範囲は以下の特許請求の範囲及びそれらの同等物により定義されることを意図している。

Claims (32)

  1. プロセッサによる実行のための命令を記憶する不揮発性メモリセルを集積回路上に含み、第1メモリアレイをプログラミングするための回路内プログラミング命令セットを含む第1メモリアレイと、
    前記プロセッサによる実行のための命令を記憶する不揮発性メモリセルを集積回路上に含む第2メモリアレイと、
    データが外部の情報源から受け取られる集積回路上の外部ポートと、
    回路内プログラム更新指令に応答し、第1メモリアレイから回路内プログラミング命令セットのコピーを第2メモリアレイに書き込むと共に、前記第1のメモリアレイに記憶された前記回路内プログラミング命令セットを少なくとも更新し、その後制御論理回路が前記第1のメモリアレイに記憶された前記更新された回路内プログラミング命令セットを前記プロセッサが実行することができるように、前記プロセッサに第2メモリアレイから前記回路内プログラミング命令セットを実行させて前記外部ポートからのデータで前記第1メモリアレイの不揮発性メモリセルをプログラムさせる制御論理回路とを含む、
    ことを特徴とする命令のプログラムを実行するプロセッサを有する集積回路の回路内プログラミング用装置。
  2. 前記第1メモリアレイが不揮発性メモリセルの別個に消去可能な複数のブロックを含み、回路内プログラミング命令セットが前記複数のブロックの特定のブロックに記憶され、前記回路内プログラミングブロック命令セットの実行中に前記特定のブロックが修正され新しい回路内プログラミング命令セットを生成し、その後制御論理回路が前記第1メモリアレイから新しい回路内プログラミング命令セットを前記プロセッサに実行させることができる請求項1に記載の装置。
  3. 前記回路内プログラミング命令セットを実行せずに前記第1メモリアレイをプログラムすると共に確認するためのデータ経路を含む請求項1の装置。
  4. 前記制御論理回路が前記プロセッサにより実行される命令を含む請求項1に記載の装置。
  5. 外部のデータ源への複数のポートを含み、前記回路内プログラミング命令セットの実行中に前記外部ポートのために使用される前記複数のポート中のポートが前記回路内プログラミング命令セットにより決定される請求項1に記載の装置。
  6. 外部のデータ源への複数のポートを含み、前記回路内プログラムの更新指令が複数のポートのうちの1つで受け取られる請求項1に記載の装置。
  7. 前記外部ポートのために使用される前記複数のポート中のポートと、前記回路内プログラム更新指令が受け取られる前記複数のポート中のポートとが、前記回路内プログラミング命令セットにより決定される請求項11に記載の装置。
  8. 前記第1メモリアレイの不揮発性メモリセルがフローティングゲートメモリセルを含み、前記第2メモリアレイがフローティングゲートメモリセルを含み、前記第1及び第2メモリアレイに結合された消去及びプログラムポートを含み、前記第1及び第2メモリアレイを消去すると共にプログラムするために提供される請求項1に記載の装置。
  9. 前記消去及びプログラムポートが前記第1及び第2メモリアレイに共通して接続された消去及びプログラム回路を含む請求項8に記載の装置。
  10. 前記消去及びプログラムポートが前記第1及び第2メモリアレイのそれぞれのため別個の消去及びプログラム回路を含む請求項8に記載の装置。
  11. 前記集積回路上の前記プロセッサは、命令入力を有し、該命令入力で受け取った命令を実行し、
    前記第1メモリアレイは、前記プロセッサの命令入力に結合された読み出しポートを有する前記集積回路上の不揮発性メモリセル、及び回路内プログラミング命令セットを記憶する不揮発性メモリセルのブロックを含み、
    前記第2メモリアレイは、前記プロセッサの命令入力に結合された読み出しポートを有する前記集積回路上の不揮発性メモリセルを含み、
    前記装置は、前記回路内プログラミング命令セットを実行せずに前記第1メモリアレイをプログラミングすると共に確認するための前記集積回路上のデータ経路とを含む、
    ことを特徴とする請求項1に記載の装置。
  12. 前記制御論理回路がプロセッサにより実行される命令を含む請求項11に記載の装置。
  13. 不揮発性メモリを含む第1の消去可能でプログラム可能な読み出し専用メモリアレイと不揮発性メモリを含む第2の消去可能でプログラム可能な読み出し専用メモリアレイを前記集積回路に提供し、
    前記第1アレイに回路内プログラミング命令セットを記憶し、
    前記集積回路の外部のイニシエータから回路内プログラム指令を前記プロセッサによって受け取り、
    該回路内プログラム指令に応答して、第1アレイから回路内プログラミング命令セットを第2アレイに前記プロセッサによってコピーし、前記第2アレイから回路内プログラミング命令セットを前記プロセッサで実行し、
    前記第1アレイに記憶された前記回路内プログラミング命令セットを少なくとも前記プロセッサによって更新するために、前記第2アレイから前記回路内プログラミング命令セットの制御下、外部の情報源からのデータで少なくとも前記第1アレイの選択した部分を前記プロセッサによってプログラムし、
    前記第1アレイの前記部分をプログラミング後、前記第1アレイから回路内プログラミング命令セットを前記プロセッサで実行すること、を含むことを特徴とする、命令のプログラムを実行するプロセッサを有する集積回路の回路内プログラミングのための方法。
  14. 前記回路内プログラミング命令セットを記憶する段階が前記第1アレイの選択した部分に前記回路内プログラミング命令セットを記憶することを含む請求項13に記載の方法。
  15. 前記第1アレイがセルの別個に消去可能な複数のブロックを含み、前記第1アレイの選択した部分が前記複数のブロックに特定のブロックを含み、前記第1アレイの前記部分をプログラムする段階が前記特定のブロックを修正し新しい回路内プログラミング命令セットを生成させる請求項13に記載の方法。
  16. 前記回路内プログラミング指令により示された前記回路内プログラミングシーケンスが前記回路内プログラミング命令セットを修正することを含むかどうかを前記イニシエータから前記プロセッサによって決定し、もしそうでなければ、その後前記第2アレイから前記回路内プログラミング命令セットを前記プロセッサによってコピーすると共に実行する段階をスキップすることを含む請求項13に記載の方法。
  17. 前記集積回路が外部のデータ源への複数のポートを含み、プログラミングする段階が前記複数のポートの選択したポートからデータを受け取ることを含む請求項13に記載の方法。
  18. 前記選択したポートが前記回路内プログラミング命令セットにより指定される請求項17に記載の方法。
  19. 前記第1メモリアレイに結合される第1入力、前記第2メモリアレイに結合される第2入力、及び前記プロセッサに命令を供給する出力を有するコード多重装置と、
    少なくとも前記第1メモリアレイをプログラムすると共に消去し少なくとも前記第1メモリアレイに命令をロードする第1の消去/プログラム経路、及び前記回路内プログラミング命令セットの制御下で少なくとも前記第1メモリアレイをプログラムすると共に消去する第2の消去/プログラム経路を支援する消去/プログラム多重装置と、
    前記第1メモリアレイ記憶された前記回路内プログラミング命令セット及びプロセッサを含み、回路内プログラム更新指令に応答し、第1メモリアレイ及び第2メモリアレイに記憶された命令の全て又は一部を更新する論理回路とをさらに含む請求項1に記載の装置。
  20. 前記回路内プログラミング命令セットが、
    前記第1メモリアレイから前記元の回路内プログラミング命令セットのコピーを前記第2メモリアレイに書き込み、複製された回路内プログラミング命令セットを生成し、
    前記元の回路内プログラミング命令セットから前記第2メモリアレイで複製された回路内プログラミング命令セットに前記プロセッサ制御を切り替える前記コード多重装置を制御し、
    前記第2メモリアレイで複製された回路内プログラミング命令セットの制御下、前記第1メモリアレイの回路内プログラミング命令セットを更新する、
    論理回路を含む請求項5に記載の装置。
  21. 前記第1及び第2メモリアレイに共通して結合されるプログラム及び消去回路を含む請求項19に記載の装置。
  22. 前記回路内プログラム指令を受け取る段階で、前記集積回路の外部の前記イニシエータから識別子を前記プロセッサによってさらに受け取り、
    前記イニシエータの識別子を前記プロセッサによって確認し、その後確認された場合、前記回路内プログラム指令に応答して、前記第1アレイから前記回路内プログラミング命令セットを前記第2アレイにコピーする前記段階を前記プロセッサによって実行し、そして前記第2アレイから前記回路内プログラミング命令セットを前記プロセッサで実行する段階をさらに実行する、請求項13に記載の方法。
  23. 前記イニシエータの識別子が確認されない場合には、その後前記プロセッサによって前記イニシエータから認識を要求し、確認か成功するまで、又は試みの最大数がなされるまで、前記プロセッサによって前記イニシエータの認識を確認しようとし、
    前記試みの最大数がなされた場合には、その後前記イニシエータに失敗の応答を前記プロセッサによって発行することを含む、
    請求項22に記載の方法。
  24. 前記プロセッサによって前記命令セットを識別する改訂番号を発行し、プログラミング段階が成功した場合には前記プロセッサによって前記改訂番号を記憶することを含む請求項22に記載の方法。
  25. プログラミングの段階の後、エラーのため前記プログラムされた命令セットを前記プロセッサによって検査し、エラーが発見された場合には、エラーが発見されなくなるまで又は再試行の最大数が試みられるまでプログラミング段階を前記プロセッサによって再試行し、
    再試行の最大数か試みられた場合には、その後前記イニシエータに失敗応答を前記プロセッサによって発行することを含む、
    請求項22に記載の方法。
  26. エラーのため前記プログラムされた命令セットを検査する段階が、前記プログラムされた命令セットの検査合計を前記プロセッサによって確認することを含む請求項25に記載の方法。
  27. 前記プログラムする段階が前記命令セットのブロックを前記プロセッサによってプログラムし、該ブロックのプログラミングを前記プロセッサによって確認し、該ブロックのプログラミングが確認された場合には、前記命令セットが完了するまで前記プロセッサによって次のブロックに進み、前記ブロックのプログラミングが確認されない場合には、その後それが確認を終えるまで又は再試行の最大数が試みられるまで前記プログラミングを前記プロセッサによって再試行し、
    確認を終えることなしに再試行の最大数が試みられた場合には、その後前記イニシエータに失敗応答を前記プロセッサによって発行することを含む、
    請求項22に記載の方法。
  28. 前記第1アレイがセルの別個に消去可能な複数のブロックを含み、前記第1アレイの選択した部分が前記複数のブロックに特定のブロックを含み、前記第1アレイの前記選択した部分をプログラムする段階が、前記特定のブロックを修正し、新しい回路内プログラミング命令セットを前記プロセッサによって生成する請求項22に記載の方法。
  29. 請求項13に記載の方法において、前記イニシエータは、コンピュータ又はワークステーションを含むことを特徴とする方法。
  30. 請求項22に記載の方法において、前記イニシエータは、コンピュータ又はワークステーションを含むことを特徴とする方法。
  31. 請求項3に記載の装置において、前記第1メモリアレイをプログラムすると共に確認するためのデータ経路によりプログラム及び確認すること、あるいは前記回路内プログラミング命令セットによりプログラムすることのいずれかを選択する複数の多重I/Oピンを含む装置。
  32. 請求項11に記載の装置において、前記第1メモリアレイをプログラムすると共に確認するためのデータ経路によりプログラム及び確認すること、あるいは前記回路内プログラミング命令セットによりプログラムすることのいずれかを選択する複数の多重I/Oピンを含む装置。
JP52040298A 1996-10-28 1996-10-28 回路内プログラミング構造を埋め込んだプロセッサ Expired - Lifetime JP4291881B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1996/017302 WO1998019234A1 (en) 1996-10-28 1996-10-28 Processor with embedded in-circuit programming structures

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007206979A Division JP4296209B2 (ja) 2007-08-08 2007-08-08 回路内プログラミング構造を埋め込んだプロセッサ

Publications (2)

Publication Number Publication Date
JP2001510600A JP2001510600A (ja) 2001-07-31
JP4291881B2 true JP4291881B2 (ja) 2009-07-08

Family

ID=22256032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52040298A Expired - Lifetime JP4291881B2 (ja) 1996-10-28 1996-10-28 回路内プログラミング構造を埋め込んだプロセッサ

Country Status (4)

Country Link
EP (1) EP1008041B1 (ja)
JP (1) JP4291881B2 (ja)
DE (1) DE69635060T2 (ja)
WO (1) WO1998019234A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4615699B2 (ja) * 2000-11-22 2011-01-19 矢崎総業株式会社 メモリ書換セキュリティシステム
US6925554B1 (en) * 2001-10-09 2005-08-02 Cypress Semiconductor Corp. Method of programming USB microcontrollers
FR2903791B1 (fr) * 2006-07-13 2008-10-17 Airbus France Sas Procede de telechargement d'un module logiciel.
US9348385B2 (en) 2012-07-09 2016-05-24 L. Pierre deRochement Hybrid computing module

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01175057A (ja) * 1987-12-28 1989-07-11 Toshiba Corp セキュリティの動的管理方法
JPH0388052A (ja) * 1989-08-31 1991-04-12 Toshiba Corp 機密保護処理方式
FI912875A (fi) * 1991-06-14 1992-12-15 Nokia Mobile Phones Ltd Inskrivning av program i en radiotelefon
US5444861A (en) * 1992-06-01 1995-08-22 United Technologies Corporation System for downloading software
US5581723A (en) * 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
US6031867A (en) * 1993-07-02 2000-02-29 Multi-Tech Systems, Inc. Modem with firmware upgrade feature
JPH0729386A (ja) * 1993-07-13 1995-01-31 Hitachi Ltd フラッシュメモリ及びマイクロコンピュータ
US5467286A (en) * 1993-11-03 1995-11-14 Square D Company Metering unit with downloadable firmware
JPH07302492A (ja) * 1994-05-04 1995-11-14 Internatl Business Mach Corp <Ibm> 再プログラム可能プラグ・イン・カートリッジ
US5579479A (en) * 1994-10-03 1996-11-26 Plum Hall Inc. Computer software licensing authentication method and apparatus

Also Published As

Publication number Publication date
DE69635060T2 (de) 2006-05-24
DE69635060D1 (de) 2005-09-15
EP1008041B1 (en) 2005-08-10
EP1008041A1 (en) 2000-06-14
EP1008041A4 (en) 2003-05-02
WO1998019234A1 (en) 1998-05-07
JP2001510600A (ja) 2001-07-31

Similar Documents

Publication Publication Date Title
US6151657A (en) Processor with embedded in-circuit programming structures
US7237145B2 (en) Fault-tolerant architecture for in-circuit programming
JP4051091B2 (ja) Romとフラッシュメモリーを有する回路内プログラミング構造
TWI408597B (zh) 透過嵌入式控制器之快閃儲存器初始化
JP4933268B2 (ja) フラッシュメモリシステムの起動動作
US8495608B2 (en) Communicating with an update logic image
US7805562B2 (en) Microcomputer with configurable communication interfacing
JP2990181B1 (ja) フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
WO2009074444A2 (en) Updating firmware of an electronic device
US6009500A (en) Replacement of erroneous firmware in a redundant non-volatile memory system
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
JP2003058433A (ja) 読出し専用メモリ・イメージを生成する方法
JPH06348638A (ja) Pcmcia周辺装置
US6728830B1 (en) Method and apparatus for modifying the reserve area of a disk drive
US6493788B1 (en) Processor with embedded in-circuit programming structures
CN109460240A (zh) 一种固件烧写组件及固件烧写方法、系统和存储介质
US6842820B2 (en) Processor with embedded in-circuit programming structures
JP4291881B2 (ja) 回路内プログラミング構造を埋め込んだプロセッサ
CN111813432A (zh) 一种fpga配置升级方法和fpga平台
CN113835735A (zh) 一种fpga远程升级方法、系统和存储介质
JP4296209B2 (ja) 回路内プログラミング構造を埋め込んだプロセッサ
JP2004021867A (ja) 情報処理システム
US7478265B2 (en) Error recovery for input/output operations
WO2021019270A1 (en) Updating firmware in a chipset of a peripheral device
KR100316584B1 (ko) 시스템에서 부팅 및 수행 프로그램을 공유하는 플래시메모리 및 그 메모리 갱신 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060309

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060801

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061101

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070822

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070822

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071011

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090225

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140410

Year of fee payment: 5

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

EXPY Cancellation because of completion of term