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

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

Info

Publication number
JP4051091B2
JP4051091B2 JP53954398A JP53954398A JP4051091B2 JP 4051091 B2 JP4051091 B2 JP 4051091B2 JP 53954398 A JP53954398 A JP 53954398A JP 53954398 A JP53954398 A JP 53954398A JP 4051091 B2 JP4051091 B2 JP 4051091B2
Authority
JP
Japan
Prior art keywords
instructions
memory array
circuit
programming
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.)
Expired - Lifetime
Application number
JP53954398A
Other languages
English (en)
Other versions
JP2002516005A (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

Images

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

Description

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ポートの柔軟性がないため、回路内プログラミングの修正技術を実行できないという欠点がある。アトメルのチップは、更に次の欠点がある。IPCイニシエータとのハンドシェークと、フラッシュメモリー用に消去/プログラム/検証の波形をエミュレートするため、ICPチップに複雑なハードウェアを追加しなければならない。SPIバスは、必ずしも色々のシステムの用途に最適の選択ではない。回路内プログラミングアルゴリズムにより使用されるオリジナルのリセット回路を修正するのに、特別のシステムロジックを必要とする。複雑なSPIドライバーとレシーバーのロジックをチップに取り付けなければならない。以上の欠点である。
回路内プログラミングプロセスで柔軟性を維持しながら、回路内プログラミング機能を実行するため使用されるフラッシュメモリーにより占められるシリコンの面積量を最小にする、回路内プログラミングのためのアーキテクチャが必要である。
発明の概要
本発明は、回路内プログラミングをサポートする集積回路上のマイクロコントローラシステムのアーキテクチャを提供する。このシステムは、回路内プログラミング(ICP)コードをフラッシュメモリーに記憶して、回路内プログラミングプロセスを使用して容易に変更することができるようにし、また修正する必要のないICPコードの部分を集積回路上のよりスペース効率の良いマスクROMセル内に記憶することにより、回路内プログラミングプロセスにおける柔軟性を維持する。特に、回路内プログラミングプロセスに含まれる通信を取扱うIPCコードは、フラッシュメモリーに記憶されるので、幾つかの異なる通信フォーマットとプロトコルに適合するように容易に修正することができる。回路内プログラミングプロセスの消去、プログラム、検証の部分を実行するコードは、集積回路上のスペース効率の良いマスクROMセル内に保持される。
マスクROMに記憶されるソフトウェア内のフラッシュメモリーの消去、プログラム、検証機能のためのステートマシンを実行することにより、本発明のフラッシュメモリーアレーは、更に簡単にされる。一般にはハードウェアで実行される消去、プログラム、検証機能のタイミング機能は、マスクROMに記憶されるソフトウェア内で実行される。本発明のフラッシュメモリーの設計は、簡単にされ、その結果、フラッシュメモリーにより占められるシリコンの面積は減少する。このように、本発明の回路内プログラミングアーキテクチャは、回路内プログラミングシステムの柔軟性を効果的に維持し、回路内プログラミングシステムにより占められるシリコンの面積の要求を減少させる。
従って、本発明は、命令を実行する集積回路上のプロセッサを備える集積回路の回路内プログラミング用の装置として特徴付けられる。集積回路は外部ソースからデータを受取る外部ポートを備える。集積回路はまた、プロセッサーにより実行される命令を記憶するための不揮発性メモリーセルを有する第1メモリーアレーを備え、この命令は、外部ソースから外部ポートを通って集積回路内へ別の命令を転送することを制御するための命令を含む。集積回路は又、プロセッサにより実行される命令を記憶する第2メモリーアレーを備え、この命令は、第1メモリーアレーの命令を消去、プログラム、検証する回路内プログラミングステップを制御するための命令を含む。
本発明の1態様によれば、第2メモリーアレーは、複数の不揮発性マスクROMセルを備える。
本発明の他の態様によれば、回路内プログラミングプロセスの間の消去、プログラム、検証のオペレーションの順序付けは、第2メモリーアレー内のマスクROMセルに記憶されるソフトウェアにより達成される。
本発明の他の態様によれば、回路内プログラミングプロセスの消去、プログラム、検証のオペレーションのタイミングは、第2メモリーアレー内のマスクROMセルに記憶されるソフトウェアを実行するプロセッサにより達成される。
本発明のさらに他の態様によれば、プロセッサは、第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とを含む。マイクロコーントローラ100は、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の一部である状態ビットとブートベクトル146は、マイクロコントローラ100に送られる。
本発明の好適な実施例では、ブートベクトルは、複数回プログラミングモジュール140内のフラッシュメモリーの一部ではない。そうではなく、複数回プログラミングモジュール140内の別のレジスターであり、特定のアドレスと特定の制御信号が複数回プログラミングモジュール140へ入力されるとき、複数回プログラミングモジュール140から選択的に出力される。
マイクロコントローラ100は、フラッシュ制御レジスター150により、複数回プログラミングモジュール140の動作を制御する。フラッシュ制御レジスター150は、制御レジスター152と、タイミングレジスター154とを含む。マイクロコントローラ100は、フラッシュ制御レジスター150に制御コードを書き込み、複数回プログラミングモジュール140内のコードのため、回路内プログラミングプロセスの消去、プログラム、検証を制御する。本発明の好適な実施例の制御コードを、表1と2に示す。
表1は、複数回プログラミングモジュール140の消去、プログラム、検証機能を制御するため、制御レジスター152へ送られるビットパターンのリスティングを含む。
Figure 0004051091
表2は、タイミングレジスター154内の色々のビットにより実行される機能のリスティングを含む。これらのビットを処理することにより、マイクロコントローラ100は、フラッシュメモリーの消去、プログラム、検証、及び読取りオペレーションに要求される波形を生じる。
Figure 0004051091
マスクROMモジュール160は、消去、プログラム、検証ハンドラ162を実行するためのコードを含む。これは、回路内プログラミングに含まれる消去、プログラム、検証動作の順序付けとタイミングを実行するコードを含む。本発明の好適な実施例のこの種類のコードのリスティングを表3に示す。表3は、回路内プログラミングシステムの消去、プログラム、検証機能に含まれるサブルーチンの8051アセンブリコードのリスティングである。
Figure 0004051091
Figure 0004051091
Figure 0004051091
Figure 0004051091
本発明の背後にあるキーとなる考えは、回路内プログラミングコードは、2つの部分に分割できることである。回路内プログラミン通信ハンドラ等の通常修正されるコードの部分は、各異なる通信プロトコルのため再構成しなければならず、複数回プログラミングモジュール140内のフラッシュメモリーに記憶される。修正する必要のないICPに部分、特に複数回プログラミングモジュール140のアーキテクチャに特別に適合させた消去、プログラム、検証機能は、スペース効率の良いマスクROMモジュール160に記憶される。
図1を参照すると、回路内プログラミングプロセスは、次のように動作する。マイクロコントローラ100が、ICP通信ハンドラ142からのコードを実行し、ICP通信ハンドラは、I/Oポート120の1つを通って遠隔サイトてICPイニシエータと通信する。複数回プログラミングモジュール140のユーザーコード部分144内へロードすべき新しい命令は、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つのネットワークポートを含んでも良く、又はIPCシステムが非IPCコードに透過形とするため、別の接合ロジックを含んでも良い。通信チャンネルへのブリッジ320の機能を修正し、通信チャンネルへのブリッジ320が、異なるレベルのデータ速度と、エラー速度と、複雑性とを有する別のICP通信チャンネルに結合できるようにすることもできる。例えば1実施例では、通信チャンネル330は、インターネット通信プロトコルを実行するインターネットを備える。
通信チャンネルへのブリッジ320は、通信チャンネル330を通って、パーソナルコンピュータ又はワークステーション等のICPイニシエータ340に結合される。ICPイニシエータ340は、通信チャンネル345により、大規模記憶装置350に結合する。ICPイニシエータ340は、色々の方法でマイクロコントローラ100に結合することができる。1実施例では、ICPイニシエータ340は、通信チャンネル330をインターネットを通ってアクセスしたワールドワイドウェブサイトである。又は、ICPイニシエータ340は、ダイヤル呼出しモデムリンクを通るイニシエータとして作用する。更に他の実施例では、通信チャンネル330は、パーソナルコンピュータシステムの通信バスであり、回路内ソフトウェアは、バス330を通ってロードされる。この実施例では、システム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は、確認コマンドを受取り、ICP通信ハンドラ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は、確認要求コマンドをICPイニシエータ340へ送信する。ICPイニシエータ340がステップ400を実行した後、ステップ401へ行き、そこで確認要求コマンドを待つ。マイクロコントローラ100からのICPイニシエータ340は、ステップ402へ行き、そこで確認コマンドをマイクロコントローラ100へ送信する。ステップ443を実行した後、マイクロコントローラ100は、ステップ444へ行き、そこでICPイニシエータ340からの確認コマンドを待つ。確認コマンドを受取ると、マイクロコントローラ100は、ステップ445へ行き、そこでマイクロコントローラ100は、「ICP準備完了」コマンドをICPイニシエータ340へ送信する。ステップ402を実行した後、ICPイニシエータ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へ行き、そこでチェックサムがマイクロコントローラ100へ送られたコードのチェックサムと一致するか検証する。チェックサムが一致しなければ、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へ戻る。完了していれば、マイクロコントローラ100は、ステップ453へ進み、そこでマイクロコントローラ100は、消去OKコマンドをICPイニシエータ340へ送信する。ステップ407を実行した後、ICPイニシエータ340は、ステップ409へ進み、そこでICPイニシエータ340は、消去OKコマンドを待つ。消去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は、マイクロコントローラ100へリセットコマンドを送信する。ステップ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−ROM、遠隔制御デバイス、又は携帯電話は、本発明による回路内プログラミング構造を有するマイクロコントローラを備えることができる。次に本発明の柔軟性のあるアーキテクチャを素養して、更新されたICPコードの色々のソースを、個々のデバイスにロードすることができる。それゆえ、本発明は、特定のようとの環境に修正し、又は適合させることができる。回路内プログラミング構造をサポートするのにグルーロジックは非常に少なくて良いか又は全く必要ない。さらに、回路内プログラミングと組み合わさるマイクロコントローラのパワーは、回路内プログラミングシステムのフラッシュメモリーの設計を簡単にするため、変更することができる。
ICPコードの集積回路に独自の部分は、変化しないと考えられるので、スペース効率の良いマスクROMに記憶することにより、集積回路上のシリコンの面積を節約することができる。通信ハンドラ等のICPコードの他の部分は、頻繁に修正されると考えられるので、フラッシュメモリーに保持される。このように、シリコンの面積を節約し、広い範囲の異なる用途に回路内プログラミングシステムを適合させる柔軟性を維持することができる。
本発明の好適な実施例のこの記述は、例示と説明の目的である。本発明をここに開示した正確な形がすべてではなく、これらに限定する意図ではない。明らかに、多くの修正と改変が当業者には明らかであろう。本発明の範囲は、請求の範囲とその均等範囲より限定される。

Claims (33)

  1. 集積回路の回路内プログラミング用装置において、
    命令を実行する前記集積回路上のプロセッサ、
    外部ソースからデータを受取るための前記集積回路上の外部ポート、
    前記集積回路上の複数の浮遊ゲートメモリーセルを含む不揮発性メモリーアレーセルを備える第1メモリーアレーであって、前記外部ソースから前記外部ポートを通って前記集積回路内への命令の転送を制御するための1組の命令を含む前記プロセッサにより実行される命令を記憶する第1メモリーアレー、及び、
    前記集積回路上の複数のマスクROMセルを備える第2メモリーアレーであって、前記第1メモリーアレー内の命令を消去、プログラム、検証する回路内プログラミングステップを制御するための1組の命令を含む前記プロセッサにより実行される命令を記憶する第2メモリーアレー、を備え、
    前記命令の転送を制御するための1組の命令によって転送されてきた命令が、前記第2メモリーアレー内のプログラムによって前記第1メモリーアレー内へ書き込まれることを特徴とする装置。
  2. 前記第1メモリーアレーのための消去、プログラム、検証オペレーションの順序付けは、前記プロセッサにより実行される1組の命令により制御御される請求項1に記載した回路内プログラミング用装置。
  3. 前記第1メモリーアレーのための消去、プログラム、検証オペレーションの順の順の順序付けは、前記プロセッサにより実行され、前記第2メモリーアレーのマスクROMセルに記憶される1組の命令により制御される請求項1に記載した回路内プログラミング用装置。
  4. 前記プロセッサは、前記第1メモリーアレーのための消去、プログラム、検証オペレーションを、前記第1メモリーアレーに結合した制御レジスターにより制御する請求項に記載した回路内プログラミング用装置。
  5. 前記第1メモリーアレーのための前記消去、プログラム、検証オペレーションのタイミングは、前記プロセッサに含まれるタイマー機能により制御される請求項1に記載した回路内プログラミング用装置。
  6. 前記第1メモリーアレーのための前記消去、プログラム、検証オペレーションのタイミングは、前記プロセッサにより実行される1組の命令により制御される請求項1に記載した回路内プログラミング用装置。
  7. 前記第1メモリーアレーのための前記消去、プログラム、検証オペレーションのタイミングは、前記プロセッサにより実行され、前記第2メモリーアレーのマスクROMセルに記憶される1組の命令により制御される請求項1に記載した回路内プログラミング用装置。
  8. 前記プロセッサに結合し、前記プロセッサによる前記回路内プログラミング命令実行中のエラーからの回復をトリガするウォッチドッグタイマーを備える請求項1に記載した回路内プログラミング用装置。
  9. 前記第1メモリーアレーは、不揮発性メモリーセルの複数の別々に消去可能なブロックを備える請求項1に記載した回路内プログラミング用装置。
  10. 前記外部ポートは、直列ポートである請求項1に記載した回路内プログラミング用装置。
  11. 前記外部ポートは、並列ポートである請求項1に記載した回路内プログラミング用装置。
  12. 前記外部ポートは、並列ポート又は直列ポートとして構成できる請求項1に記載した回路内プログラミング用装置。
  13. 外部データソースへの複数のポートを備え、前記複数のポートのうち前記外部ポートのために使用されるポートは、回路内プログラミングステップを制御するための前記1組の命令内の命令により決められる請求項1に記載した回路内プログラミング用装置。
  14. 集積回路の回路内プログラミング用装置において、
    命令を実行する前記集積回路上のプロセッサ、
    外部ソースからデータを受取るための前記集積回路上の外部ポート、
    前記集積回路上の浮遊ゲートメモリーセルを備える第1メモリーアレーであって、前記外部ソースから前記外部ポートを通って前記集積回路内への命令の転送を制御するための1組の命令を含む前記プロセッサにより実行される命令を記憶する第1メモリーアレー、
    前記集積回路上のマスクROMセルを備える第2メモリーアレーであって、前記第1メモリーアレー内の命令を消去、プログラム、検証する回路内プログラミングステップを制御、この順の順序付け、タイミング合わせするための1組の命令を含む前記プロセッサにより実行される命令を記憶する第2メモリーアレー、及び、
    前記第1メモリーアレーに結合し、前記プロセッサが前記第1メモリーアレー内の消去、プログラム、検証を制御するための制御レジスター、
    を備え、
    前記命令の転送を制御するための1組の命令により転送されてきた命令が、前記第2メモリーアレー内のプログラムによって前記第1メモリーアレー内へ書き込まれることを特徴とする装置。
  15. 前記プロセッサに結合し、前記プロセッサが前記回路内プログラミング命令を実行する間にエラーからの回復をトリガするウォッチドッグタイマーを備える請求項1に記載した回路内プログラミング用装置。
  16. 前記第1メモリーアレーは、不揮発性メモリーセルの複数の別々に消去可能なブロックを備える請求項1に記載した回路内プログラミング用装置。
  17. 前記外部ポートは、直列ボートである請求項1に記載した回路内プログラミング用装置。
  18. 前記外部ポートは、並列ポートである請求項1に記載した回路内プログラミング用装置。
  19. 前記外部ポートは、並列ポート又は直列ポートとして構成できる請求項1に記載した回路内プログラミング用装置。
  20. 外部データソースへの複数のポートを備え、前記複数のポートのうち前記外部ポートのために使用されるポートは、回路内プログラミングステップを制御するための前記1組の命令内の命令により決められる請求項1に記載した回路内プログラミング用装置。
  21. プロセッサと外部ポートを備え、不揮発性メモリーセルを有する第1メモリーアレーと、複数のマスクROMセルを備える第2メモリーアレーを備える集積回路において、前記集積回路の回路内プログラミングの方法において、
    前記プロセッサが、前記集積回路の外部のイニシエータから、回路内プログラムコマンドを受取り、
    前記回路内プログラムコマンドに応答して、前記プロセッサが、前記第1メモリーアレー内の命令を消去、プログラム、検証する回路内プログラミングステップを制御するため前記第2メモリーアレー内の1組の命令を実行し、
    前記プロセッサが、外部ソースから前記外部ポートを通って前記集積回路内への1組の命令の転送を制御するため、前記第1メモリーアレーからの1組の命令を実行する、ステップを備え、
    前記命令の転送を制御するための1組の命令により転送されてきた命令が、前記第2メモリーアレー内のプログラムによって前記第1メモリーアレー内へ書き込まれることを特徴とする方法。
  22. 前記第1メモリーアレー内の命令を消去、プログラム、検証する回路内プログラミングステップを制御する前記1組の命令は、前記第2メモリーアレーに記憶される請求項21に記載した集積回路の回路内プログラミング方法。
  23. 前記第1メモリーアレー内の前記不揮発性メモリーセルは、浮遊ゲートメモリーセルを備える請求項21に記載した集積回路の回路内プログラミング方法。
  24. 前記プロセッサが、命令を消去、プログラム、検証する回路内プログラミングステップを制御するための1組の命令を実行する前記ステップは、消去、プログラム、検証オペレーションの順の順序付けの制御を含む請求項21に記載した集積回路の回路内プログラミング方法。
  25. 前記プロセッサは、前記第1メモリーアレーのための消去、プログラム、検証オペレーションを、前記第1メモリーアレーに結合した制御レジスターにより制御する請求項21に記載した集積回路の回路内プログラミング方法。
  26. 前記第1メモリーアレーのための前記消去、プログラム、検証オペレーションのタイミングは、前記プロセッサに含まれるタイマー機能により制御される請求項21に記載した集積回路の回路内プログラミング方法。
  27. 前記プロセッサが、命令を消去、プログラム、検証する回路内プログラミングステップを制御するための1組の命令を実行する前記ステップは、消去、プログラム、検証オペレーションのタイミングの制御を含む請求項21に記載した集積回路の回路内プログラミング方法。
  28. 前記プロセッサに結合し、前記プロセッサが前記回路内プログラミング命令を実行する間にエラーからの回復をトリガするウォッチドッグタイマーを備える請求項21に記載した集積回路の回路内プログラミング方法。
  29. 前記第1メモリーアレーは、不揮発性メモリーアレーの複数の別々に消去可能なブロックを備える請求項21に記載した集積回路の回路内プログラミング方法。
  30. 前記外部ポートは、直列ポートである請求項21に記載した集積回路の回路内プログラミング方法。
  31. 前記外部ポートは、並列ポートである請求項21に記載した集積回路の回路内プログラミング方法。
  32. 前記外部ポートは、並列ポート又は直列ポートとして構成できる請求項21に記載した集積回路の回路内プログラミング方法。
  33. 前記集積回路は、外部データソースへの複数のポートを備え、前記複数のポートのうち前記外部ポートのために使用されるポートを、前記プロセッサが、回路内プログラミングステップを制御するための前記1組の命令内の命令を実行することにより決めるステップを備える請求項21に記載した集積回路の回路内プログラミング方法。
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 JP2002516005A (ja) 2002-05-28
JP4051091B2 true 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
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
US6493788B1 (en) 1996-10-28 2002-12-10 Macronix International Co., Ltd. Processor with embedded in-circuit programming structures
WO1998034169A1 (fr) 1997-01-31 1998-08-06 Sony Corporation Appareil et procede de traitement d'informations
US6009496A (en) * 1997-10-30 1999-12-28 Winbond Electronics Corp. Microcontroller with programmable embedded flash 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
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
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
US6385689B1 (en) * 1998-02-06 2002-05-07 Analog Devices, Inc. Memory and a data processor including a memory
US6594284B1 (en) * 1998-09-16 2003-07-15 Cirrus Logic, Inc. Network synchronization
US6938244B1 (en) 1999-05-11 2005-08-30 Microsoft Corp. Interlaced protocol for smart card application development
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
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
AU7939800A (en) * 1999-12-29 2001-07-16 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
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
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
JP4162863B2 (ja) * 2001-03-30 2008-10-08 株式会社ルネサステクノロジ マイクロコンピュータ
US20040015939A1 (en) * 2001-05-16 2004-01-22 Cheah Jonathon Y. Updateable memory module
US6531887B2 (en) 2001-06-01 2003-03-11 Macronix International Co., Ltd. One cell programmable switch using non-volatile cell
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
CN100350384C (zh) * 2002-06-28 2007-11-21 皇家飞利浦电子股份有限公司 将软件程序下载到存储器单元的方法以及接收器
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
US8209676B2 (en) 2006-06-08 2012-06-26 Hewlett-Packard Development Company, L.P. Device management in a network
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
CN100507849C (zh) * 2006-12-13 2009-07-01 北京中星微电子有限公司 软件在线更新方法及软件在线更新系统
US20110019459A1 (en) * 2007-01-11 2011-01-27 Guobiao Zhang Three-Dimensional Mask-Programmable Read-Only Memory with Reserved Space
US8885384B2 (en) 2007-01-11 2014-11-11 Chengdu Haicun Ip Technology Llc Mask-programmed 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
EP0974089A4 (en) 2004-04-28
WO1998040818A1 (en) 1998-09-17
US5901330A (en) 1999-05-04
EP0974089B1 (en) 2005-12-07
DE69736791D1 (de) 2006-11-16
EP0974089A1 (en) 2000-01-26
JP2002516005A (ja) 2002-05-28
DE69736791T2 (de) 2007-01-11

Similar Documents

Publication Publication Date Title
JP4051091B2 (ja) Romとフラッシュメモリーを有する回路内プログラミング構造
US7237145B2 (en) Fault-tolerant architecture for in-circuit programming
US6151657A (en) Processor with embedded in-circuit programming structures
US7310700B2 (en) Microcomputer, programming method and erasing method
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
EP1536332B1 (en) Programmable configuration integrated circuit
JPH06348638A (ja) Pcmcia周辺装置
TWI251744B (en) Microcomputer
US5940627A (en) User selectable feature set for a flash ROM based peripheral
US20020178352A1 (en) Firmware upgrade using address conversion
JP4040026B2 (ja) 内蔵型設定可能ロジックアレイのための回路内設定構造
US6493788B1 (en) Processor with embedded in-circuit programming structures
JP4659371B2 (ja) 内蔵型設定可能ロジックアレイのための不揮発性メモリ付、回路内設定構造
US6842820B2 (en) Processor with embedded in-circuit programming structures
JP4136309B2 (ja) インサーキット・プログラミングための障害の許容アーキテクチャ
EP1008041B1 (en) Processor with embedded in-circuit programming structures
JP4296209B2 (ja) 回路内プログラミング構造を埋め込んだプロセッサ
TW501061B (en) In-circuit programming process device and method of integrated circuit
JP2013061921A (ja) エミュレータ及びマルチプロセッサシステム
JP2000305771A (ja) 不揮発性メモリ内蔵マイコンへのソフトウェアローディング方法
JP4879124B2 (ja) インサーキット・プログラミングのための障害の許容アーキテクチャ
JP2001297014A (ja) 信号処理装置及びその方法
CN102799466A (zh) 一种应用于PowerPC最小系统的引导装置及引导方法
JPH10171645A (ja) 情報処理装置
KR20080041491A (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