JP2002516005A - Romとフラッシュメモリーを有する回路内プログラミング構造 - Google Patents

Romとフラッシュメモリーを有する回路内プログラミング構造

Info

Publication number
JP2002516005A
JP2002516005A JP53954398A JP53954398A JP2002516005A JP 2002516005 A JP2002516005 A JP 2002516005A JP 53954398 A JP53954398 A JP 53954398A JP 53954398 A JP53954398 A JP 53954398A JP 2002516005 A JP2002516005 A JP 2002516005A
Authority
JP
Japan
Prior art keywords
circuit
programming
instructions
memory array
processor
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.)
Granted
Application number
JP53954398A
Other languages
English (en)
Other versions
JP4051091B2 (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 JP2002516005A publication Critical patent/JP2002516005A/ja
Application granted granted Critical
Publication of JP4051091B2 publication Critical patent/JP4051091B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 回路内プログラミングを有する集積回路の構造は、集積回路上のマイクロコントローラ(100)と、回路内プログラミング(ICP)の組の命令を含む命令を記憶する1つ又はそれ以上の不揮発性メモリー(140)のバンクを備える。デバイスに記憶された制御プログラムを使用して、デバイスは、集積回路外のデバイスと回路内プログラミング交換を対話形で実施し、交換で得られたデータを使用して、マイクロコントローラのためのソフトウェアを更新する。異なる用途の環境で変ると思われるICPコードの部分は、再プログラム可能なフラッシュメモリーセルに記憶される。異なる用途の環境で変らないと思われるICPコードの他の部分は、スペース効率の良いマスクROMメモリーセルに記憶される。このように、ICPシステムは、柔軟性を持って異なる用途環境に適合し、ICPシステムにより占められるシリコンの面積を保持することができる。

Description

【発明の詳細な説明】 ROMとフラッシュメモリーを有する回路内プログラミング構造 37C.F.R.1.71(e)による著作権 本特許文書の開示の一部は、著作権保護の対象となる資料を含む。特許文書又 は特許の開示は特許商標庁の特許フアイル又は記録にあるので、著作権者は、そ のファクシミリによる複製に異論はないが、他の点については著作権を保持する 。 関連出願の参照 本出願は、1996年10月28日に出願された「回路内プログラミング構造が組込ま れたプロセッサー」という題の国際出願No.PCT/US/96/17302に関連する。この出 願は、米国外ではマクロニクスインターナショナルが出願人で、米国内ではアル バートC.サン、チ−H.リー、チャングL.チェンが出願人である。 背景 発明の技術分野 本発明は、集積回路上のマイクロコントローラにより実行する命令のシーケン スを記憶するための不揮発性メモリーを有する集積回路に関し、より詳しくは、 本発明は、記憶した命令のシーケンスを更新し修正するため回路内プログラミン グを実行する技術に関する。 関連技術 マイクロコントローラにより実行される命令のシーケンスを記憶するため、集 積回路上に不揮発性メモリーのアレーを備える集積回路マイクロコントローラが 、開発されてきた。命令のシーケンスは、読み出し専用メモリー(ROM)に記 憶され、それはデバイスの製造中にプログラムされなければならず、更新するこ とができなかった。他のアプローチでは、命令はEPROMアレーに記憶された 。しかし、これらのデバイスは、デバイスを回路内に配置する前にEPROMア レーをプログラムするため、特別のハードウェアを必要とした。更に他のシステ ムでは、命令を記憶するのにEEPROMメモリーが使用された。EEPROM は、EPROMよりずっと速くプログラムすることができ、進行中に修正するこ とが でき、有利である。更に他のアプローチでは、命令を記憶するのにフラッシュメ モリーが使用され、それにより不揮発性メモリーのより高密度でより高速のプロ グラミングを行うことができる。デバイスが、EEPROM又はフラッシュメモ リー等の再プログラム可能な不揮発性メモリーをマイクロコントローラ結合する とき、デバイスは、回路内で再プログラム可能であり、対話形アルゴリズムに基 づき回路内プログラミングが可能になる。 命令の組とデータを遠隔のデバイスに対話的にダウンロードする能力は、ネッ トワーク環境では非常に価値がある。例えば、顧客が機器をサービスセンターに 持ってこなくても、会社は、顧客の機器にサービスを提供することができる。む しろ、会社は、インターネット又は電話線等の通信回線を通り、顧客の機器の回 路内プログラミング能力を使用して、診断機能を実行することができる。このよ うに、ソフトウェアのフィックスは、顧客の機器にダウンロードすることができ 、機器は訂正した即ち更新したコードで再度可能にされる。 この能力を備える従来のデバイスには、カリフォルニア州サンジョーズのアト メルにより製造されるAT89S8252マイクロコントローラ、及びオランダ、アイン ドホーベンのフィリップスセミコンダクターズにより製造されるP89CE558シング ルチップマイクロコントローラがある。フィリップスP89CE558マイクロコントロ ーラのアーキテクチャに従うと、命令の回路内プログラミング(IPC)の組の ため、マスクROMが使用され、その命令は、チップ上のフラッシュメモリーを 更新するため、マイクロコントローラにより使用される。従って、フィリップス のマイクロコントローラは、個々の環境でフィックスされたIPCコードを記憶 するため、専用マスクROMを必要とする。IPCコードを個々の環境に適合さ せるためには、マスクROMが適当にコード化できるようにデバイスの製造が完 了する前に環境を知らなければならない。さらに、IPC通信チャンネルは、フ ィリップスのマイクロコントローラの直列RS232ポートに固定されている。この ため、マイクロコントローラの使用は、比較的狭い用途範囲に限られ、ダイナミ ック通信環境では、直列ポートは更新されたソフトウェアが供給される通信チャ ンネルと良く適合せず、IPC機能を使用するのは困難になる。 アトメルAT89S8252マイクロコントローラのアーキテクチャによれば、チップ 上の専用直列周辺インターフェース(SPI)が、ポートフラッシュメモリーの 更新に使用される。このSPIポートは、柔軟性のないプログラムロジックで実 行され、SPIポートの柔軟性がないため、回路内プログラミングの修正技術を 実行できないという欠点がある。アトメルのチップは、更に次の欠点がある。I PCイニシエータとのハンドシェークと、フラッシュメモリー用に消去/プログ ラム/検証の波形をエミュレートするため、ICPチップに複雑なハードウェア を追加しなければならない。SPIバスは、必ずしも色々のシステムの用途に最 適の選択ではない。回路内プログラミングアルゴリズムにより使用されるオリジ ナルのリセット回路を修正するのに、特別のシステムロジックを必要とする。複 雑なSPIドライバーとレシーバーのロジックをチップに取り付けなければなら ない。以上の欠点である。 回路内プログラミングプロセスで柔軟性を維持しながら、回路内プログラミン グ機能を実行するため使用されるフラッシュメモリーにより占められるシリコン の面積量を最小にする、回路内プログラミングのためのアーキテクチャが必要で ある。 発明の概要 本発明は、回路内プログラミングをサポートする集積回路上のマイクロコント ローラシステムのアーキテクチャを提供する。このシステムは、回路内プログラ ミング(ICP)コードをフラッシュメモリーに記憶して、回路内プログラミン グプロセスを使用して容易に変更することができるようにし、また修正する必要 のないICPコードの部分を集積回路上のよりスペース効率の良いマスクROM セル内に記憶することにより、回路内プログラミングプロセスにおける柔軟性を 維持する。特に、回路内プログラミングプロセスに含まれる通信を取扱うIPC コードは、フラッシュメモリーに記憶されるので、幾つかの異なる通信フォーマ ットとプロトコルに適合するように容易に修正することができる。回路内プログ ラミングプロセスの消去、プログラム、検証の部分を実行するコードは、集積回 路上のスペース効率の良いマスクROMセル内に保持される。 マスクROMに記憶されるソフトウェア内のフラッシュメモリーの消去、プロ グラム、検証機能のためのステートマシンを実行することにより、本発明のフラ ッシュメモリーアレーは、更に簡単にされる。一般にはハードウェアで実行され る消去、プログラム、検証機能のタイミング機能は、マスクROMに記憶される ソフトウェア内で実行される。本発明のフラッシュメモリーの設計は、簡単にさ れ、その結果、フラッシュメモリーにより占められるシリコンの面積は減少する 。このように、本発明の回路内プログラミングアーキテクチャは、回路内プログ ラミングシステムの柔軟性を効果的に維持し、回路内プログラミングシステムに より占められるシリコンの面積の要求を減少させる。 従って、本発明は、命令を実行する集積回路上のプロセッサを備える集積回路 の回路内プログラミング用の装置として特徴付けられる。集積回路は、外部ソー スからデータを受取る外部ポートを備える。集積回路はまた、プロセッサーによ り実行される命令を記憶するための不揮発性メモリーセルを有する第1メモリー アレーを備え、この命令は、外部ソースから外部ポートを通って集積回路内へ別 の命令を転送することを制御するための命令を含む。集積回路は又、プロセッサ により実行される命令を記憶する第2メモリーアレーを備え、この命令は、第1 メモリーアレーの命令を消去、プログラム、検証する回路内プログラミングステ ップを制御するための命令を含む。 本発明の1態様によれば、第2メモリーアレーは、複数の不揮発性マスクRO Mセルを備える。 本発明の他の態様によれば、回路内プログラミングプロセスの間の消去、プロ グラム、検証のオペレーションの順序付けは、第2メモリーアレー内のマスクR OMセルに記憶されるソフトウェアにより達成される。 本発明の他の態様によれば、回路内プログラミングプロセスの消去、プログラ ム、検証のオペレーションのタイミングは、第2メモリーアレー内のマスクRO Mセルに記憶されるソフトウェアを実行するプロセッサにより達成される。 本発明のさらに他の態様によれば、プロセッサは、第1メモリーアレーに結合 する制御レジスターに命令を書き込むことにより、回路内プログラミングプロセ スに含まれる消去、プログラム、検証のオペレーションを制御する。 本発明の他の態様によれば、回路内プログラミング用装置はさらに、プロセッ サに結合したウォッチドッグタイマーを備え、それがプロセッサが回路内プログ ラミング命令を実行している間に起こるデッドロックエラーからの回復をトリガ する。 本発明の他の態様によれば、外部ソースからデータを受取る外部ポートは、並 列又は直列ポートとして動作するように構成することができる。 本発明の他の態様によれば、第1メモリーアレーは、不揮発性メモリーアレー の複数の別々に消去可能なブロックを備える。 本発明のさらに他の態様によれば、集積回路は、1つ又はそれ以上の直列ポー トと、1つ又はそれ以上の並列ポートと、1つ又はそれ以上の特別の通信ポート (任意)等の外部データソースへの複数のポートを備える。複数のポートのうち 外部ソースから回路内プログラミング命令を受取るために使用されるポートは、 回路内プログラミングコード自体内の命令により決められ、従って動的に変更す ることができる。 本発明の他の態様によれば、集積回路は、第1メモリーアレーをプログラムし 、検証するためのデータパスを備え、また任意に回路内プログラミング命令と独 立の第2メモリーアレーを備える。従って、多重化されたI/Oピン等を使用し て、製造中又はチップをシステムに取りつける前に、オリジナルのソフトウェア をデバイスにロードすることができる。 本発明の他の態様と利点は、図面、発明の詳細な説明、請求の範囲を見れば、 分かる。 図面の説明 図1は、本発明の1態様による集積回路の回路内プログラミング用システムの ブロック線図である。 図2は、本発明の1態様によるマイクロコントローラ100により実行されるア ドレス空間を含む命令の線図である。 図3は、本発明の1態様による本発明が通信チャンネルと回路内プログラミン グイニシエータ340を含むシステムに一体化されるかを示す線図である。 図4Aは、本発明の1態様による回路内プログラミングプロセスのフローチャ ートの第1部分である。 図4Bは、本発明の1態様による回路内プログラミングプロセスのフローチャ ートの第2部分である。 図4Cは、本発明の1態様による何路内プログラミングプロセスのフローチャ ートの第3部分である。 詳細な説明 次の説明は、当業者が本発明を実施できるように記載され、また特定の用途と その要求の関係において記述される。好適な実施例の色々の修正は当業者には明 らかであり、ここに定義する一般原則は、発明の精神と範囲から離れずに、他の 実施例及び用途に適用することができる。従って、本発明はここに示す実施例に 限定することを意図していず、ここに開示した原則と態様と矛盾しない最も広い 範囲を与えられる。 図1は、本発明の1態様による集積回路の回路内プログラミングのためのシス テムのブロック線図である。図1に示す全ての構成要素は、集積回路上にある。 マイクロコントローラ100は、マスクROMモジュール160と、複数回プログラミ ングモジュール140からの命令を実行する。複数回プログラミングモジュール140 は、簡単にされたフラッシュメモリーアレーであり、フラッシュメモリーセルの 複数の独立に消去可能なブロックに分割されている。複数回プログラミングモジ ュール140はまた、マイクロコントローラ100に直接結合した状態ビットとブート ベクトル146を備える。複数回プログラミングモジュール140はまた、ICP通信 ハンドラ142を実行するコードと、マイクロコントローラ100にユーザーが定義し た機能を実行させるためのユーザーコード144とを含む。マイクロコントローラ1 00は、I/Oポート120、割込みライン122、他の信号124を通って、集積回路外の デバイスへの接続を備える。割込みライン122、他の信号124は、一般にI/Oポ ート120を通る通信を協働させ、同期させるため使用される。マイクロコントロ ーラ100はさらに、タイマー105を備え、それがマイクロコントローラ100のタイ ミング機能を実行する。ウォッチドッグタイマー110がマイクロコントローラ100 に結合し、マイクロコントローラ100の動作のデッドロックを検出するため使用 される。 マイクロコントローラ100は、命令アドレス126を発行し、それはマスクROM モジュール160と複数回プログラミングモジユール140の両方のアドレス入力 へ送られる。命令アドレス126は、マスクROM160と複数回プログラミングモジ ュール140内の命令に索引を付ける。マスクROMモジュール160と複数回プログ ラミングモジュール140からの命令は、これらの命令をマイクロコントローラ100 に選択的に切替えるマルチプレクサ(MUX)130を通って送られる。さらに、 複数回プログラミングモジュール140の一部である状態ビットとブートベクトル1 46は、マイクロコントローラ100に送られる。 本発明の好適な実施例では、ブートベクトルは、複数回プログラミングモジュ ール140内のフラッシュメモリーの一部ではない。そうではなく、複数回プログ ラミングモジユール140内の別のレジスターであり、特定のアドレスと特定の制 御信号が複数回プログラミングモジュール140へ入力されるとき、複数回プログ ラミングモジュール140から選択的に出力される。 マイクロコントローラ100は、フラッシュ制御レジスター150により、複数回プ ログラミングモジュール140の動作を制御する。フラッシュ制御レジスター150は 、制御レジスター152と、タイミングレジスター154とを含む。マイクロコントロ ーラ100は、フラッシュ制御レジスター150に制御コードを書き込み、複数回プロ グラミングモジュール140内のコードのため、回路内プログラミングプロセスの 消去、プログラム、検証を制御する。本発明の好適な実施例の制御コードを、表 1と2に示す。 表1は、複数回プログラミングモジュール140の消去、プログラム、検証機能 を制御するため、制御レジスター152へ送られるビットパターンのリスティング を含む。 表2は、タイミングレジスター154内の色々のビットにより実行される機能の リスティングを含む。これらのビットを処理することにより、マイクロコントロ ーラ100は、フラッシュメモリーの消去、プログラム、検証、及び読取りオペレ ーションに要求される波形を生じる。 マスクROMモジュール160は、消去、プログラム、検証ハンドラ162を実行す るためのコードを含む。これは、回路内プログラミングに含まれる消去、プログ ラム、検証動作の順序付けとタイミングを実行するコードを含む。本発明の好 適な実施例のこの種類のコードのリスティングを表3に示す。表3は、回路内プ ログラミングシステムの消去、プログラム、検証機能に含まれるサブルーチンの 8051アセンブリコードのリスティングである。 本発明の背後にあるキーとなる考えは、回路内プログラミングコードは、2つ の部分に分割できることである。回路内プログラミング通信ハンドラ等の通常修 正されるコードの部分は、各異なる通信プロトコルのため再構成しなければなら ず、複数回プログラミングモジュール140内のフラッシュメモリーに記憶される 。修正する必要のないICPに部分、特に複数回プログラミングモジュール140 のアーキテクチャに特別に適合させた消去、プログラム、検証機能は、スペース 効率の良いマスクROMモジュール160に記憶される。 図1を参照すると、回路内プログラミングプロセスは、次のように動作する。 マイクロコントローラ100が、ICP通信ハンドラ142からのコードを実行し、I CP通信ハンドラは、I/Oポート120の1つを通って遠隔サイトでICPイニシ エータと通信する。複数回プログラミングモジュール140のユーザーコード部分1 44内へロードすべき新しい命令は、I/Oポート120の1つを通って、マイクロコ ントローラ100内へ転送される。マイクロコントローラ100は、マスクROMモジ ュール160内の消去/プログラム/検証ハンドラ162内でコードを実行し、複数回プ ログラミングモジュール140のユーザーコード部分144へ新しいコードをロードす る。マイクロコントローラ100は、ウォッチドッグタイマー110に関連して動作し 、これは、回路内プログラミングコードのマイクロコントローラ100の実行のデ ッドロックを検出するために使用される。複数回プログラミングモジュール140 内に新しい命令をプログラムするためには、マイクロコントローラ100は、最初 に、制御レジスター152とタイミングレジスター154に書き込まれた命令のシーケ ンスにより、複数回プログラミングモジュール140の一部を消去する。マイクロ コントローラ100は、次に、制御レジスター152とタイミングレジスター154に書 き込まれた別の命令により、複数回プログラミングモジュール140に新しいコー ドをプログラムする。最後に、マイクロコントローラ100は、制御レジスター152 とタイミングレジスター154に書き込まれた命令のシーケンスにより、複数回プ ログラミングモジュール140の新しいコードのプログラミングを検証する。 図2は、マイクロコントローラ100により見られるアドレス空間を示す。アド レス空間は、複数の独立に消去可能なフラッシュメモリーのブロックと、マスク ROMメモリーとに分けられる。ユーザーブロック#1(260)は、アドレス0か らアドレス16Kまで延びる。ユーザーブロック#2(250)は、アドレス16Kから アドレス32Kまで延びる。ユーザーブロック#3(240)は、アドレス32Kからア ドレス48Kまで延びる。ユーザーブロック#4(230)は、アドレス48Kからアド レス56Kまで延びる。新しいユーザーコード220をダウンロードするための1次 ブートコードは、アドレス56Kと63Kの間にある。この1次ブートコードは、複 数回プログラミングモジュール140のユーザー部分144内へ新しい命令をダウ ンロードするため、システムのブートアップの間に使用される。この1次ブート コードの空間が不十分であれば、2次ブートコードを記憶するため、ユーザーブ ロック#4(230)が使用される。 63Kと64Kの間のアドレス空間は、消去/プログラム/検証のサブルーチン210 を備える。アドレス空間200のこの部分は、マスクROMモジュール160内に位置 する。0から63Kのアドレス空間200の他の部分は、複数回プログラミングモジ ュール140のフラッシュメモリーセル内に位置する。アドレス空間200のこれら2 つの部分は、異なるメモリーモジュール内にあるが、マイクロコントローラ100 のための1つのアドレス空間200の部分である。マスクROMモジュール160と複 数回プログラミングモジュール140からの命令は、MUX130を通ってマイクロコ ントローラ100へ選択的に切替えられる。 図1に示す実施例では、1つのマスクROMモジュール160と複数回プログラ ミングモジュール140が示される。他のシステムでは、1つ以上のマスクROM モジュールと1つ以上の複数回プログラミングモジュールを備え、回路内プログ ラミング命令の設計と実行により柔軟性がある。 図3は、本発明の用途の環境を示す。本発明は、システム300内に配置された 集積回路310で実行される。システム300は、プリント回路基板又は他のシステム の器具を備える。集積回路310は、マイクロコントローラ100と、マスクROMモ ジュール160と、複数回プログラミングモジュール140と、図1に示すICPシス テムの他の構成要素を備える。マイクロコントローラ100は、複数の集積回路( IC)312,314,316に結合される。通信チャンネルへのブリッジ320が、チャンネ ルを与え、そこを通って回路内プログラミングコードが転送される。通信チャン ネルへのブリッジ320は、1つのネットワークポートを含んでも良く、又はIP Cシステムが非IPCコードに透過形とするため、別の接合ロジックを含んでも 良い。通信チャンネルへのブリッジ320の機能を修正し、通信チャンネルへのブ リッジ320が、異なるレベルのデータ速度と、エラー速度と、複雑性とを有する 別のICP通信チャンネルに結合できるようにすることもできる。例えば1実施 例では、通信チャンネル330は、インターネット通信プロトコルを実行するイン ターネットを備える。 通信チャンネルへのブリッジ320は、通信チャンネル330を通つて、パーソナル コンピュータ又はワークステーション等のICPイニシエータ340に結合される 。ICPイニシエータ340は、通信チャンネル345により、大規模記憶装置350に 結合する。ICPイニシエータ340は、色々の方法でマイクロコントローラ100に 結合することができる。1実施例では、ICPイニシエータ340は、通信チャン ネル330をインターネットを通ってアクセスしたワールドワイドウェブサイトで ある。又は、ICPイニシエータ340は、ダイヤル呼出しモデムリンクを通るイ ニシエータとして作用する。更に他の実施例では、通信チャンネル330は、パー ソナルコンピュータシステムの通信バスであり、回路内ソフトウェアは、バス33 0を通ってロードされる。この実施例では、システム300のアップグレードは、フ ロッピーディスクでエンドユーザーへ分配し、又はICPイニシエータ340を通 って他の方法でロードすることができる。 ある用途では、通信チャンネルへのブリッジ320は必要でない。図1を参照す ると、ある用途では、ICP通信ハンドラ142内に含まれるソフトウェアは、1 つのI/Oポート120経由で通信チャンネル330を通ってICP通信のための適当 なプロトコルを実行するのにそれ自体で十分である。このため1つのI/Oポー ト120が、直接通信チャンネル330に接続することができ、それにより通信チャン ネル320へのブリッジの必要性がなくなる。 図4A、4B、4Cは、回路内プログラミングプロセスに含まれるオペレーシ ョンのフローチャートである。図4A、4B、4Cの各々は、4つの列に分けら れる。第1列は、「ICPイニシエータ340と名称を付けられ、図3に示す回路 内プログラミングイニシエータ340の活動を表す。ICPイニシエータ340は、集 積回路310の外部のデバイスであり、通信チャンネル330を通って、回路内プログ ラミングシステム300に接続される。ICPイニシエータ340は、回路のプログラ ミングプロセスを開始し、制御する。 図4A、4B、4Cの残りの列は、マスクROMモジュール160と、複数回 プログラミングモジュール140内に記憶されるコードの異なる本体を実行するマ イクロコントローラ100のアクションを表す。「ユーザーコード144」と名前を付 けた行は、複数回プログラミングモジュール140内のユーザーコード144を実行 する間のマイクロコントローラ100の活動を表す。「ICP通信ハンドラ142」と 名前を付けた行は、複数回プログラミングモジュール140内のICP通信ハンド ラ142を実行する間のマイクロコントローラ100の活動を表す。「消去/プログラ ム/検証ハンドラ162」と名前を付けた行は、マスクROMモジュール160内の消 去/プログラム/検証ハンドラ162を実行する間のマイクロコントローラ100のアク ションを表す。 図4A、4B、4Cに回路内プログラミングプロセスは、次のように動作する 。システムをリセットし、又はウォッチドッグタイマー110がタイムアウトにな ると、マイクロコントローラ100は、状態430に入りそこで状態ビットがチェック される。状態ビットがゼロであれば、マイクロコントローラ100は、ユーザーコ ード144内のステップ420へ入る。状態ビットが1にセットされれば、マイクロコ ントローラ100は、ブートベクトルにより示される位置へジャンプし、ICP通 信ハンドラ142内でステップ440を実行する。 ステップ420で、マイクロコントローラ100は、ICPイニシエータ340から次 のコマンドを得るのを待つ。ICPイニシエータ340がステップ400を実行すると き、マイクロコントローラ100へ更新コマンドを送信する。この更新コマンドは 、マイクロコントローラ100に受取られ、ステップ421へ進む。ステップ421で、 マイクロコントローラ100は、受取ったコマンドは更新コマンドかどうか尋ねる 。そうでなければ、マイクロコントローラ100は、ステップ426へ進み、そこで通 常のマイクロコントローラ100のオペレーションが行われ、マイクロコントロー ラ100は非ICPユーザーコードを実行する。次にシステムは、次のコマンドを 得るため、ステップ420へ戻る。もしコマンドが更新コマンドであれば、マイク ロコントローラ100は、ステップ422へ進み、そこで「確認要求」がICPイニシ エータ340へ送られる。ステップ400を実行した後、ICPイニシエータ340は、 ステップ401へ行き、そこでICPイニシエータ340は、確認要求を待つ。確認要 求コマンドが受取られるとき、ICPイニシエータ340は、ステップ402へ進み、 ステップ402へ進み、そこで確認コマンドがマイクロコントローラ100へ送信され る。ステップ423で、マイクロコントローラ100は、確認コマンドを受取り、IC P通信ハンドラ142内でステップ445へ進み、そこでマイク ロコントローラ100は、ICPイニシエータ340へICP準備完了(ready to ICP) コマンドを送信する。確認コマンドを送出後、ICPイニシエータ340は、ステ ップ403へ進み、そこでICPイニシエータ340は、マイクロコントローラ100か らのICP準備完了コマンドを待つ。 ステップ430で、状態ビットが1にセットされると、マイクロコントローラ100 は、1組のステップを実行して、ICP通信ハンドラ142内のICP要求を確認 する。これらのステップは、状態ビットがゼロにセットされたとき、ユーザーコ ード144内でICPコードを確認するのに使用されるステップを殆ど正確に反映 する。ステップ440で、マイクロコントローラ100は、ICPイニシエータ340か らの次のコマンドを待つ。ICPイニシエータ340がステップ400を実行するとき 、マイクロコントローラ100へ更新コマンドを送信する。ステップ440で、この更 新コマンドがマイクロコントローラ100に受取られるとき、マイクロコントロー ラ100は、ステップ441へ進み、そこでマイクロコントローラ100は、コマンドが 更新コマンドかどうか求める。更新コマンドでなければ、マイクロコントローラ 100は、ステップ442へ進み、そこではオペレーションが起こらない(NOOP)。 マイクロコントローラ100は次に、他のコマンドを受取るためステップ440へ戻る 。 もし、ステップ441で、マイクロコントローラ100が更新コマンドを受取ると、 ステップ443へ行き、そこでマイクロコントローラ100は、確認要求コマンドをI CPイニシエータ340へ送信する。ICPイニシエータ340がステップ400を実行 した後、ステップ401へ行き、そこで確認要求コマンドを待つ。マイクロコント ローラ100からのICPイニシエータ340は、ステップ402へ行き、そこで確認コ マンドをマイクロコントローラ100へ送信する。ステップ443を実行した後、マイ クロコントローラ100は、ステップ444へ行き、そこでICPイニシエータ340か らの確認コマンドを待つ。確認コマンドを受取ると、マイクロコントローラ100 は、ステップ445へ行き、そこでマイクロコントローラ100は、「ICP準備完了 」コマンドをICPイニシエータ340へ送信する。ステップ402を実行した後、I CPイニシエータ340は、ステップ403へ行き、そこでマイクロコントローラ100 からのICP準備完了コマンドを待つ。 この点で、ICPコマンドの確認プロセスが完了し、新しいユーザーコードの ダウンロードが起こる。ステップ403を実行した後、ICPイニシエータ340はス テップ404へ進み、そこでICPイニシエータ340は、暗号化した形式の新しいユ ーザーコードを、通信チャンネルを通ってマイクロコントローラ100へダウンロ ードする。ステップ446で、マイクロコントローラ100は、新しいユーザーコード を受取り、データ形式を復号化する。ステップ446を実行後、マイクロコントロ ーラ100は、ステップ447へ行き、そこでICPイニシエータ340へチェックサム を送る。ステップ444を実行した後、ICPイニシエータ340は、ステップ405へ 行き、そこでチェックサムを待つ。チェックサムを受取った後、ICPイニシエ ータ340は、ステップ406へ行き、そこでチェックサムがマイクロコントローラ10 0へ送られたコードのチェックサムと一致するか検証する。チェックサムが一致 しなければ、ICPイニシエータ340は、ステップ408へ行き、それはエンド状態 であり、エラーが知らされる。チェックサムが一致すれば、ICPイニシエータ 340は、ステップ407へ行き、そこで進行(go ahead)コマンドを送出する。ステッ プ447でチェックサムを送った後、マイクロコントローラ100は、ステップ448へ 行き、そこで進行コマンドを待つ。 ICPイニシエータ340からの進行コマンドを受取ると、マイクロコントロー ラ100は、ステップ449へ行き、そこで回路内プログラミングが開始する。ステッ プ449で、マイクロコントローラ100は、ブートベクトルを検証して、状態ビット を1にセットし、IPCオペレーションが行われることを示す。次にマイクロコ ントローラ100は、状態ビットがセットされたことを検証し、ウォッチドッグタ イマー110をセットしスタートする。次にマイクロコントローラ100は、ステップ 450へ行き、そこで消去/プログラム/検証ハンドラ162から消去サブルーチンを呼 び出す。次にマイクロコントローラ100は、消去/プログラム/検証ハンドラ162の ステップ460へ進み、そこでマイクロコントローラ100は、複数回プログラミング モジュール140内の特定のブロックを消去する。次にマイクロコントローラ100は 、ICP通信ハンドラ142内のステップ451へ進む。 ステップ451で、マイクロコントローラ100は、消去/プログラム/検証ハンドラ 162から検証バイトサブルーチンを呼び出す。次にマイクロコントローラは、 ステップ461へ進み、そこで検証バイトサブルーチンが実行される。次にマイク ロコントローラ100は、ICP通信ハンドラ142内のステップ452へ進む。ステッ プ452で、マイクロコントローラ100は、消去オペレーションの検証が完了したか どうか求める。完了していなければ、マイクロコントローラ100は、次のバイト を検証するため、ステップ451へ戻る。完了していれば、マイクロコントローラ1 00は、ステップ453へ進み、そこでマイクロコントローラ100は、消去OKコマン ドをICPイニシエータ340へ送信する。ステップ407を実行した後、ICPイニ シエータ340は、ステップ409へ進み、そこでICPイニシエータ340は、消去O Kコマンドを待つ。消去OKコマンドを受取った後、ICPイニシエータ340は 、ステップ410へ行き、そこでICPイニシエータ340は、マイクロコントローラ 100からのプログラムOKコマンドを待つ。 ステップ453で消去OKコマンドを送出した後、マイクロコントローラ100は、 ステップ454へ行き、そこでマイクロコントローラ100は、消去/プログラム/検証 ハンドラ162からバイトプログラムサブルーチンを呼び出す。マイクロコントロ ーラ100は次に、ステップ462へ行き、そこでバイトプログラムサブルーチンが実 行される。マイクロコントローラ100は次に、ICP通信ハンドラ142内のステッ プ455へ進む。ステップ455で、マイクロコントローラ100は、プログラミングが 完了したかどうか求める。完了していなければ、マイクロコントローラ100は、 ステップ454へ戻り、プログラムされる次のバイトのためバイトプログラムコマ ンドを呼び出す。プログラミングが完了していれば、マイクロコントローラ100 は次に、ステップ456へ行き、そこで検証バイトサブルーチンが呼び出される。 マイクロコントローラ100は次に、ステップ463で、消去/プログラム/検証ハンド ラ162内の検証バイトサブルーチンヘ進む。ステップ463で、検証バイトサブルー チンが実行される。マイクロコントローラ100は次に、ICP通信ハンドラ142内 のステップ457へ進む。ステップ457で、マイクロコントローラ100は、検証オペ レーションが完了したかどうか求める。完了していなければ、マイクロコントロ ーラ100は、ステップ456へ戻り、そこで検証する次のバイトのため検証バイトサ ブルーチンが呼び出される。検証オペレーションが完了していれば、マイクロコ ントローラ100は、ステップ458へ進む。 ステップ458で、回路内プログラミングの消去、プログラム、検証オペレーシ ョンが完了する。マイクロコントローラ100は、状態ビットを0にセットし、0 にセットされたことを検証する。マイクロコントローラ100は次に、ステツプ459 へ進み、そこでICPイニシエータ340へプログラムOKコマンドを送出する。 ICPイニシエータ340は、ステップ410で、プログラムOKコマンドを受取り、 ステップ411へ行き、そこでICPイニシエータ340は、マイクロコントローラ10 0へリセットコマンドを送信する。ステップ459で、プログラムOKコマンドを送 出した後、マイクロコントローラ100は、ユーザーコード144内のステップ424へ 進み、そこでリセットコマンドを待つ。ICPイニシエータ340からリセットコ マンドを受取ると、マイクロコントローラ100は、エンド状態であるステップ425 へ進む。ステップ411でリセットコマンドを送出した後、ICPイニシエータ340 は、同じくエンド状態のステップ412へ進む。この点で、回路内プログラミング プロセスは完了する。ICPイニシエータ340により新しい回路内プログラミン グプロセスが開始されるとき、このプロセスは繰り返される。 図1に示すアーキテクチャを使用して、システムの設計者は、回路内プログラ ミングコードを特定の環境に適合させることができる。従って、図1に示すよう に、製造者は、彼らの回路で実行するため集積回路を選択する。回路内プログラ ミングコードが実行可能でなければ、マイクロコントローラ100が使用され、チ ップ300上の色々の通信ポートを使用して、システムを特定の回路内プログラミ ング環境に合わせるために、回路ボード上に必要な特別のロジックを最小限にす る。第1に、回路内プログラミングのための適当な接続とプロトコルが、設計者 により選択される。次に、選択した環境のためのICPコードが作られ、改良さ れる。ICPコードは次に、システムの通常のオペレーションの間に実行される プログラムと一体とされる。次に、一体にしたICPコードとユーザーコードは 、複数回プログラミングモジュール140のフラッシュメモリ一内に記憶される。 次に、消去、プログラムオペレーションが検証される。次に、一体のICPコー ドを含むマイクロコントローラ100が、システム内に配置される。システムがよ く作用すれば、システムが大量に製造される。もしICPコードを修正する必要 があれば、ICPコードを最適化するため、ICPプロセスを繰り返す。同様に 、 同じプログラミング技術を使用して、システムコードが最適化される。従って、 システムのエンドユーザーは、マイクロコントローラ100に組込まれた頑強な回 路内プログラミングコードを得て、本発明の対話形回路内プログラミング技術を 使用して、それを進行中に更新し修正することができる。 結論 従って、本発明は、多くの回路内プログラミングの用途に合う柔軟性のあるフ ラッシュメモリーベースのマイクロコントローラのアーキテクチャを与える。例 えば、テレビ、又はビデオモニター、デジタルビデオディスク、又はCD−RO M、遠隔制御デバイス、又は携帯電話は、本発明による回路内プログラミング構 造を有するマイクロコントローラを備えることができる。次に本発明の柔軟性の あるアーキテクチャを素養して、更新されたICPコードの色々のソースを、個 々のデバイスにロードすることができる。それゆえ、本発明は、特定のようとの 環境に修正し、又は適合させることができる。回路内プログラミング構造をサポ ートするのにグルーロジックは非常に少なくて良いか又は全く必要ない。さらに 、回路内プログラミングと組み合わさるマイクロコントローラのパワーは、回路 内プログラミングシステムのフラッシュメモリーの設計を簡単にするため、変更 することができる。 ICPコードの集積回路に独自の部分は、変化しないと考えられるので、スペ ース効率の良いマスクROMに記憶することにより、集積回路上のシリコンの面 積を節約することができる。通信ハンドラ等のICPコードの他の部分は、頻繁 に修正されると考えられるので、フラッシュメモリーに保持される。このように 、シリコンの面積を節約し、広い範囲の異なる用途に回路内プログラミングシス テムを適合させる柔軟性を維持することができる。 本発明の好適な実施例のこの記述は、例示と説明の目的である。本発明をここ に開示した正確な形がすべてではなく、これらに限定する意図ではない。明らか に、多くの修正と改変が当業者には明らかであろう。本発明の範囲は、請求の範 囲とその均等範囲より限定される。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リー チェー ホルン 台湾 タイペイ サン チュン チュン チェン ノース ロード ナンバー293 2エフ (72)発明者 チェン チャン ルン 台湾 シンチュ ドン ナルン ストリー ト レーン 210 アレイ 18 ナンバー 56 6エフ

Claims (1)

  1. 【特許請求の範囲】 1.集積回路の回路内プログラミング用装置において、 命令を実行する前記集積回路上のプロセッサ、 外部ソースからデータを受取るための前記集積回路上の外部ポート、 前記集積回路上の不揮発性メモリーアレーセルを備える第1メモリーアレー であって、前記外部ソースから前記外部ポートを通って前記集積回路内への命 令の転送を制御するための1組の命令を含む前記プロセッサにより実行される 命令を記憶する第1メモリーアレー、及び、 前記集積回路上の第2メモリーアレーであって、前記第1メモリーアレー内 の命令を消去、プログラム、検証する回路内プログラミングステップを制御す るための1組の命令を含む前記プロセッサにより実行される命令を記憶する第 2メモリーアレー、を備えることを特徴とする装置。 2.前記第1メモリーアレー内の前記不揮発性メモリーセルは、複数の浮遊ゲー トメモリーセルを備える請求項1に記載した回路内プログラミング用装置。 3.前記第2メモリーアレーは、複数の不揮発性メモリーセルを備える請求項1 に記載した回路内プログラミング用装置。 4.前記第2メモリーアレーは、複数のマスクROMセルを備える請求項1に記 載した回路内プログラミング用装置。 5.前記第2メモリーアレーは、複数の浮遊ゲートメモリーセルを備える請求項 1に記載した回路内プログラミング用装置。 6.前記第1メモリーアレーのための消去、プログラム、検証オペレーションの 順序付けは、前記プロセッサにより実行される1組の命令により制御される請 求項1に記載した回路内プログラミング用装置。 7.前記第1メモリーアレーのための消去、プログラム、検証オペレーションの 順序付けは、前記プロセッサにより実行され、前記第2メモリーアレーのマス クROMセルに記憶される1組の命令により制御される請求項1に記載した回 路内プログラミング用装置。 8.前記プロセッサは、前記第1メモリーアレーのための消去、プログラム、検 証オペレーションを、前記第1メモリーアレーに結合した制御レジスターによ り制御する請求項6に記載した回路内プログラミング用装置。 9.前記第1メモリーアレーのための前記消去、プログラム、検証オペレーショ ンのタイミングは、前記プロセッサに含まれるタイマー機能により制御される 請求項1に記載した回路内プログラミング用装置。 10.前記第1メモリーアレーのための前記消去、プログラム、検証オペレーショ ンのタイミングは、前記プロセッサにより実行される1組の命令により制御さ れる請求項1に記載した回路内プログラミング用装置。 11.前記第1メモリーアレーのための前記消去、プログラム、検証オペレーショ ンのタイミングは、前記プロセッサにより実行され、前記第2メモリーアレー のマスクROMセルに記憶される1組の命令により制御される請求項1に記載 した回路内プログラミング用装置。 12.前記プロセッサに結合し、前記プロセッサによる前記回路内プログラミング 命令実行中のエラーからの回復をトリガするウォッチドッグタイマーを備える 請求項1に記載した回路内プログラミング用装置。 13.前記第1メモリーアレーは、不揮発性メモリーセルの複数の別々に消去可能 なブロックを備える請求項1に記載した回路内プログラミング用装置。 14.前記外部ポートは、直列ポートである請求項1に記載した回路内プログラミ ング用装置。 15.前記外部ポートは、並列ポートである請求項1に記載した回路内プログラミ ング用装置。 16.前記外部ポートは、並列ポート又は直列ポートとして構成できる請求項1に 記載した回路内プログラミング用装置。 17.外部データソースへの複数のポートを備え、前記複数のポートのうち前記外 部ポートのために使用されるポートは、回路内プログラミングステップを制御 するための前記1組の命令内の命令により決められる請求項1に記載した回路 内プログラミング用装置。 18.集積回路の回路内プログラミング用装置において、 命令を実行する前記集積回路上のプロセッサ、 外部ソースからデータを受取るための前記集積回路上の外部ポート、 前記集積回路上の浮遊ゲートメモリーセルを備える第1メモリーアレーであ って、前記外部ソースから前記外部ポートを通って前記集積回路内への命令の 転送を制御するための1組の命令を含む前記プロセッサにより実行される命令 を記憶する第1メモリーアレー、 前記集積回路上のマスクROMセルを備える第2メモリーアレーであって、 前記第1メモリーアレー内の命令を消去、プログラム、検証する回路内プログ ラミングステップを制御、順序付け、タイミング合わせするための1組の命令 を含む前記プロセッサにより実行される命令を記憶する第2メモリーアレー、 及び、 前記第1メモリーアレーに結合し、前記プロセッサが前記第1メモリーアレ ー内の消去、プログラム、検証を制御するための制御レジスター、 を備えることを特徴とする装置。 19.前記プロセッサに結合し、前記プロセッサが前記回路内プログラミング命令 を実行する間にエラーからの回復をトリガするウォッチドッグタイマーを備え る請求項18に記載した回路内プログラミング用装置。 20.前記第1メモリーアレーは、不揮発性メモリーセルの複数の別々に消去可能 なブロックを備える請求項18に記載した回路内プログラミング用装置。 21.前記外部ポートは、直列ボートである請求項18に記載した回路内プログラ ミング用装置。 22.前記外部ポートは、並列ポートである請求項18に記載した回路内プログラ ミング用装置。 23.前記外部ポートは、並列ポート又は直列ポートとして構成できる請求項18 に記載した回路内プログラミング用装置。 24.外部データソースへの複数のポートを備え、前記複数のポートのうち前記外 部ポートのために使用されるポートは、回路内プログラミングステップを制御 するための前記1組の命令内の命令により決められる請求項18に記載した回 路内プログラミング用装置。 25.プロセッサと外部ポートを備える集積回路において、前記集積回路の回路内 プログラミングの方法において、 前記集積回路上に不揮発性メモリーセルを備える第1メモリーアレーと、第 2メモリーアレーを設け、 前記集積回路の外部のイニシエータから、回路内プログラムコマンドを受取 り、 前記回路内プログラムコマンドに応答して、前記プロセッサを使用して、前 記第1メモリーアレー内の命令を消去、プログラム、検証する回路内プログラ ミングステップを制御するための1組の命令を実行し、 前記プロセッサを使用して、外部ソースから前記外部ポートを通って前記集 積回路内への1組の命令の転送を制御するため、前記第1メモリーアレーから の1組の命令を実行する、 ステップを備えることを特徴とする方法。 26.前記第1メモリーアレー内の命令を消去、プログラム、検証する回路内プロ グラミングステップを制御する前記1組の命令は、前記第2メモリーアレーに 記憶される請求項25に記載した集積回路の回路内プログラミング方法。 27.前記第1メモリーアレー内の前記不揮発性メモリーセルは、浮遊ゲートメモ リーセルを備える請求項25に記載した集積回路の回路内プログラミング方法 。 28.前記第2メモリーアレーは、複数のマスクROMセルを備える請求項25に 記載した集積回路の回路内プログラミング方法。 29.前記第2メモリーアレーは、複数の不揮発性メモリーセルを備える請求項2 5に記載した集積回路の回路内プログラミング方法。 30.前記第2メモリーアレーは、複数の浮遊ゲートメモリーセルを備える請求項 25に記載した集積回路の回路内プログラミング方法。 31.前記プロセッサを使用して、命令を消去、プログラム、検証する回路内プロ グラミングステップを制御するための1組の命令を実行する前記ステップは、 消去、プログラム、検証オペレーションの順序付けの制御を含む請求項25に 記載した集積回路の回路内プログラミング方法。 32.前記プロセッサは、前記第1メモリーアレーのための消去、プログラム、検 証オペレーションを、前記第1メモリーアレーに結合した制御レジスターによ り制御する請求項25に記載した集積回路の回路内プログラミング方法。 33.前記第1メモリーアレーのための前記消去、プログラム、検証オペレーショ ンのタイミングは、前記プロセッサに含まれるタイマー機能により制御される 請求項25に記載した集積回路の回路内プログラミング方法。 34.前記プロセッサを使用して、命令を消去、プログラム、検証する回路内プロ グラミングステップを制御するための1組の命令を実行する前記ステップは、 消去、プログラム、検証オペレーションのタイミングの制御を含む請求項25 に記載した集積回路の回路内プログラミング方法。 35.前記プロセッサに結合し、前記プロセッサが前記回路内プログラミング命令 を実行する間にエラーからの回復をトリガするウォッチドッグタイマーを設け るステップを備える請求項25に記載した集積回路の回路内プログラミング方 法。 36.前記第1メモリーアレーは、不揮発性メモリーセルの複数の別々に消去可能 なブロックを備える請求項25に記載した集積回路の回路内プログラミング方 法。 37.前記外部ポートは、直列ポートである請求項25に記載した集積回路の回路 内プログラミング方法。 38.前記外部ポートは、並列ポートである請求項25に記載した集積回路の回路 内プログラミング方法。 39.前記外部ポートは、並列ポート又は直列ポートとして構成できる請求項25 に記載した集積回路の回路内プログラミング方法。 40.前記集積回路は、外部データソースへの複数のポートを備え、前記複数のポ ートのうち前記外部ポートのために使用されるポートを、前記プロセッサを使 用して、回路内プログラミングステップを制御するための前記1組の命令内の 命令を実行することにより決めるステップを備える請求項25に記載した集積 回路の回路内プログラミング方法。
JP53954398A 1997-03-13 1997-04-03 Romとフラッシュメモリーを有する回路内プログラミング構造 Expired - Lifetime JP4051091B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/818,389 US5901330A (en) 1997-03-13 1997-03-13 In-circuit programming architecture with ROM and flash memory
US08/818,389 1997-03-13
PCT/US1997/005622 WO1998040818A1 (en) 1997-03-13 1997-04-03 In-circuit programming architecture with rom and flash memory

Publications (2)

Publication Number Publication Date
JP2002516005A true JP2002516005A (ja) 2002-05-28
JP4051091B2 JP4051091B2 (ja) 2008-02-20

Family

ID=25225435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53954398A Expired - Lifetime JP4051091B2 (ja) 1997-03-13 1997-04-03 Romとフラッシュメモリーを有する回路内プログラミング構造

Country Status (5)

Country Link
US (1) US5901330A (ja)
EP (1) EP0974089B1 (ja)
JP (1) JP4051091B2 (ja)
DE (1) DE69736791T2 (ja)
WO (1) WO1998040818A1 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2748134B1 (fr) * 1996-04-30 1998-06-26 Bull Cp8 Procede et dispositif permettant a un programme fige de pouvoir evoluer
US6493788B1 (en) 1996-10-28 2002-12-10 Macronix International Co., Ltd. Processor with embedded in-circuit programming structures
US6842820B2 (en) 1997-10-03 2005-01-11 Macronix International Co., Ltd. Processor with embedded in-circuit programming structures
US6282675B1 (en) 1997-08-06 2001-08-28 Macronix International Co., Ltd. Fault-tolerant architecture for in-circuit programming
EP0898225A4 (en) 1997-01-31 2000-07-05 Sony Corp INFORMATION PROCESSING APPARATUS AND METHOD
US6009496A (en) * 1997-10-30 1999-12-28 Winbond Electronics Corp. Microcontroller with programmable embedded flash memory
EP0935195A2 (en) 1998-02-06 1999-08-11 Analog Devices, Inc. "An integrated circuit with a high resolution analog-to-digital converter, a microcontroller and high density memory and an emulator for an integrated circuit
US6701395B1 (en) 1998-02-06 2004-03-02 Analog Devices, Inc. Analog-to-digital converter that preseeds memory with channel identifier data and makes conversions at fixed rate with direct memory access
US6385689B1 (en) * 1998-02-06 2002-05-07 Analog Devices, Inc. Memory and a data processor including a memory
US6289300B1 (en) 1998-02-06 2001-09-11 Analog Devices, Inc. Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
US6594284B1 (en) * 1998-09-16 2003-07-15 Cirrus Logic, Inc. Network synchronization
US6547150B1 (en) 1999-05-11 2003-04-15 Microsoft Corporation Smart card application development system and method
US6845498B1 (en) 1999-05-11 2005-01-18 Microsoft Corporation Method and apparatus for sharing data files among run time environment applets in an integrated circuit card
US6938244B1 (en) 1999-05-11 2005-08-30 Microsoft Corp. Interlaced protocol for smart card application development
GB9925227D0 (en) * 1999-10-25 1999-12-22 Internet Limited Data storage retrieval and access system
TW460786B (en) * 1999-12-09 2001-10-21 Via Tech Inc System to reprogram the content value of the flash memory of the peripheral device and the method thereof
WO2001050261A2 (en) * 1999-12-29 2001-07-12 Sun Microsystems, Inc. Updating non volatile memory in a data processing system
DE10002306A1 (de) * 2000-01-20 2001-07-26 Zahnradfabrik Friedrichshafen Verfahren und Vorrichtung zum funktionssicheren Betreiben einer elektronischen Motor- und insbesondere Getriebesteuerung für Kraftfahrzeuge
US6434660B1 (en) * 2000-05-23 2002-08-13 Centennial Technologies, Inc. Emulating one tape protocol of flash memory to a different type protocol of flash memory
US6550027B1 (en) 2000-05-26 2003-04-15 Oak Technology, Inc. Method and article of manufacture for differentiating between a non-volatile memory device and an emulator for purposes of in-circuit programming
US6834331B1 (en) 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
JP4162863B2 (ja) * 2001-03-30 2008-10-08 株式会社ルネサステクノロジ マイクロコンピュータ
US20040015939A1 (en) * 2001-05-16 2004-01-22 Cheah Jonathon Y. Updateable memory module
US6545504B2 (en) 2001-06-01 2003-04-08 Macronix International Co., Ltd. Four state programmable interconnect device for bus line and I/O pad
US6577161B2 (en) 2001-06-01 2003-06-10 Macronix International Co., Ltd. One cell programmable switch using non-volatile cell with unidirectional and bidirectional states
US6531887B2 (en) 2001-06-01 2003-03-11 Macronix International Co., Ltd. One cell programmable switch using non-volatile cell
DE60327857D1 (de) * 2002-06-28 2009-07-16 Koninkl Philips Electronics Nv Softwareherunterladung auf einem empfänger
TWI278750B (en) * 2002-09-05 2007-04-11 Mediatek Inc System and method which updates firmware in a non-volatile memory without using a processor
DE10310290A1 (de) * 2003-03-10 2004-09-23 Robert Bosch Gmbh Rechenvorrichtung
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US20050093572A1 (en) * 2003-11-03 2005-05-05 Macronix International Co., Ltd. In-circuit configuration architecture with configuration on initialization function for embedded configurable logic array
US20050097499A1 (en) * 2003-11-03 2005-05-05 Macronix International Co., Ltd. In-circuit configuration architecture with non-volatile configuration store for embedded configurable logic array
US20050102573A1 (en) * 2003-11-03 2005-05-12 Macronix International Co., Ltd. In-circuit configuration architecture for embedded configurable logic array
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US8090916B2 (en) * 2004-06-29 2012-01-03 Macronix International Co., Ltd. In-circuit programming architecture with processor and delegable flash controller
US7258100B2 (en) * 2004-08-03 2007-08-21 Bruce Pinkston Internal combustion engine control
US20060036803A1 (en) * 2004-08-16 2006-02-16 Mori Edan Non-volatile memory device controlled by a micro-controller
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7406559B2 (en) * 2004-08-23 2008-07-29 Macronix International Co., Ltd. In-circuit programming architecture with processor, delegable flash controller, and code generator
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
CN100507849C (zh) * 2006-12-13 2009-07-01 北京中星微电子有限公司 软件在线更新方法及软件在线更新系统
US8885384B2 (en) 2007-01-11 2014-11-11 Chengdu Haicun Ip Technology Llc Mask-programmed read-only memory with reserved space
US20110019459A1 (en) * 2007-01-11 2011-01-27 Guobiao Zhang Three-Dimensional Mask-Programmable Read-Only Memory with Reserved Space
US9141418B2 (en) * 2010-07-23 2015-09-22 Hewlett-Packard Development Company, L.P. Systems and methods for implementing a guest operating system on a host operating system
US20120246384A1 (en) * 2011-03-21 2012-09-27 Winbond Electronics Corp. Flash memory and flash memory accessing method
US9430220B2 (en) * 2014-07-22 2016-08-30 GM Global Technology Operations LLC Method, medium, and apparatus for re-programming flash memory of a computing device
TW201612792A (en) * 2014-09-22 2016-04-01 Hon Hai Prec Ind Co Ltd Protect writing device and method for flash memory with mask rom
US11281530B2 (en) * 2020-08-10 2022-03-22 Samsung Electronics Co., Ltd. Method and system for validating a memory device

Family Cites Families (14)

* 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 機密保護処理方式
US5278976A (en) * 1990-04-16 1994-01-11 Rolm Company Method for detecting infinite loops by setting a flag indicating execution of an idle task having lower priority than executing application tasks
EP0464433A3 (en) * 1990-06-29 1994-05-18 Nat Semiconductor Corp Microcontroller device having remotely programmable eprom & method of programming
US5276839A (en) * 1991-03-07 1994-01-04 United States Of America As Represented By The Secretary Of The Air Force System for programming EEPROM with data loaded in ROM by sending switch signal to isolate EEPROM from host system
US5319751A (en) * 1991-12-27 1994-06-07 Intel Corporation Device driver configuration in a computer system
US5444861A (en) * 1992-06-01 1995-08-22 United Technologies Corporation System for downloading software
JPH06161867A (ja) * 1992-11-20 1994-06-10 Fujitsu Ltd 電子機器に設けられたメモリユニットの制御装置
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
US5574926A (en) * 1993-03-11 1996-11-12 Olympus Optical Co., Ltd. One-chip microcomputer system having function for substantially correcting contents of program
JPH0729386A (ja) * 1993-07-13 1995-01-31 Hitachi Ltd フラッシュメモリ及びマイクロコンピュータ
JP3310060B2 (ja) * 1993-09-13 2002-07-29 株式会社東芝 記憶装置および同装置の制御プログラム書換え方法
US5467286A (en) * 1993-11-03 1995-11-14 Square D Company Metering unit with downloadable firmware
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
JP4051091B2 (ja) 2008-02-20
DE69736791T2 (de) 2007-01-11
DE69736791D1 (de) 2006-11-16
EP0974089A4 (en) 2004-04-28
US5901330A (en) 1999-05-04
EP0974089B1 (en) 2005-12-07
EP0974089A1 (en) 2000-01-26
WO1998040818A1 (en) 1998-09-17

Similar Documents

Publication Publication Date Title
JP4051091B2 (ja) Romとフラッシュメモリーを有する回路内プログラミング構造
US6151657A (en) Processor with embedded in-circuit programming structures
JP5173818B2 (ja) 組込みコントローラを介するフラッシュストレージの初期化
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
US7024654B2 (en) System and method for configuring analog elements in a configurable hardware device
KR101507194B1 (ko) 직렬 인터페이스 nand
US7805562B2 (en) Microcomputer with configurable communication interfacing
EP1536332B1 (en) Programmable configuration integrated circuit
US20070130416A1 (en) Microcomputer, Programming Method and Erasing Method
JPH06348638A (ja) Pcmcia周辺装置
CN110851163B (zh) 一种基于can通信的兼容多设备平台的软件更新方法
US6493788B1 (en) Processor with embedded in-circuit programming structures
US6842820B2 (en) Processor with embedded in-circuit programming structures
JP4136309B2 (ja) インサーキット・プログラミングための障害の許容アーキテクチャ
CN207264382U (zh) 现场可编程门阵列多版本配置的芯片及系统
EP1008041B1 (en) Processor with embedded in-circuit programming structures
JP4663210B2 (ja) 半導体集積回路及びそれに内蔵された不揮発性メモリへの書き込み方法
JP4296209B2 (ja) 回路内プログラミング構造を埋め込んだプロセッサ
TW501061B (en) In-circuit programming process device and method of integrated circuit
JP2013061921A (ja) エミュレータ及びマルチプロセッサシステム
JP4879124B2 (ja) インサーキット・プログラミングのための障害の許容アーキテクチャ
TW451142B (en) Device with an embedded on-line program processing structure on integrated circuit
CN102799466A (zh) 一种应用于PowerPC最小系统的引导装置及引导方法
CN118012460A (zh) 一种基于双核的iap升级方法及系统
KR100842577B1 (ko) 소프트웨어 다운로드 기능을 갖춘 임베디드 시스템과 그운용 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060313

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070710

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071004

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071203

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 6

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

EXPY Cancellation because of completion of term