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

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

Info

Publication number
JP4296209B2
JP4296209B2 JP2007206979A JP2007206979A JP4296209B2 JP 4296209 B2 JP4296209 B2 JP 4296209B2 JP 2007206979 A JP2007206979 A JP 2007206979A JP 2007206979 A JP2007206979 A JP 2007206979A JP 4296209 B2 JP4296209 B2 JP 4296209B2
Authority
JP
Japan
Prior art keywords
block
circuit
icp
programming
circuit programming
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
JP2007206979A
Other languages
English (en)
Other versions
JP2007328814A (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 マクロニクス インターナショナル カンパニー リミテッド
Priority to JP2007206979A priority Critical patent/JP4296209B2/ja
Publication of JP2007328814A publication Critical patent/JP2007328814A/ja
Application granted granted Critical
Publication of JP4296209B2 publication Critical patent/JP4296209B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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及び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プロトコルに特注するために影響を与えることが可能である。
本発明の好適な実施例の前述した説明は図解又は説明の目的のため表されたものである。本発明を開示された正確な形式に徹底又は限定することを意図するものではない。明らかに、この技術分野の熟練した実務家にとって多くの修正及び変更が明白であろう。本発明の範囲は以下の特許請求の範囲及びそれらの同等物により定義されることを意図している。
図1は集積回路のマイクロコントローラの概略ブロック図であり、本発明の回路内プログラミング構造を含んでいる。 図2A〜図2Cは本発明による好適な回路内プログラミングプロセスのフローチャートである。 図2A〜図2Cは本発明による好適な回路内プログラミングプロセスのフローチャートである。 図2A〜図2Cは本発明による好適な回路内プログラミングプロセスのフローチャートである。 図3は図2A〜図2Cのプロセスで呼び出される更新ブロックルーチンのフローチャートである。 図4は本発明の適用の環境を示している。
符号の説明
10 集積回路
11 マイクロプロセッサ11
12 シリアルポート
13 パラレルポート
14 割り込みピン
15 シングルピン
16 不揮発性メモリの第1アレイ
17 不揮発メモリの第2アレイ
20 プログラミング正常経路
21 正常確認経路
24 読み出しポート
25 読み出しポート
26 コード入力多重装置
28 命令入力
27 確認多重装置
29 読み出し入力29
30 消去/プログラムセレクタ
31 線
32 線
35 線
36 消去/プログラムポート
38 線
40 回路内プログラミング命令セット
400 集積回路
401 プリント回路板
402 集積回路
403 集積回路
404 集積回路
405 集積回路
406 通信路
407 ICPイニシエータ(ワークステーション、パーソナルコンピュータ)
408 通信路
409 大規模記憶装置

Claims (1)

  1. プロセッサによる実行のための命令を記憶し、フローティングゲートメモリセルを含む不揮発性メモリセルを含み、第1メモリアレイをプログラミングするためのプログラミング命令セットを含む第1メモリアレイと、
    前記プロセッサによる実行のための命令を記憶する不揮発性メモリセルを含む第2メモリアレイと、
    データが外部の情報源から受け取られる部ポートと、
    回路内プログラムのプログラミング指令に応答し、第1メモリアレイからプログラミング命令セットのコピーを第2メモリアレイに書き込むと共に、前記第1メモリアレイに記憶された前記プログラミング命令セットを少なくともプログラミングし、その後制御論理回路が前記第1メモリアレイに記憶された前記プログラミングされたプログラミング命令セットを前記プロセッサが実行することができるように、前記プロセッサに第2メモリアレイから前記プログラミング命令セットを実行させて前記外部ポートからのデータで前記第1メモリアレイの不揮発性メモリセルをプログラミングさせる制御論理回路とを含む、
    ことを特徴とする命令のプログラムを実行するプロセッサを有する集積回路の回路内プログラミング用装置。
JP2007206979A 2007-08-08 2007-08-08 回路内プログラミング構造を埋め込んだプロセッサ Expired - Lifetime JP4296209B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2007328814A JP2007328814A (ja) 2007-12-20
JP4296209B2 true JP4296209B2 (ja) 2009-07-15

Family

ID=38929178

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4296209B2 (ja)

Also Published As

Publication number Publication date
JP2007328814A (ja) 2007-12-20

Similar Documents

Publication Publication Date Title
US6151657A (en) Processor with embedded in-circuit programming structures
JP4051091B2 (ja) Romとフラッシュメモリーを有する回路内プログラミング構造
US7237145B2 (en) Fault-tolerant architecture for in-circuit programming
TWI408597B (zh) 透過嵌入式控制器之快閃儲存器初始化
CN100565454C (zh) 用于从非易失性应用程序和文件存储设备启动的系统和方法
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
JP5559778B2 (ja) フラッシュメモリにおける高速低電力のデータ読み出し
JP2012507070A (ja) データをメモリ装置に再入力することなくページをプログラムするためのページバッファプログラムコマンド及び方法
JP2009043389A (ja) フラッシュメモリ素子及びその動作方法
US6493788B1 (en) Processor with embedded in-circuit programming structures
CN109460240A (zh) 一种固件烧写组件及固件烧写方法、系统和存储介质
US6842820B2 (en) Processor with embedded in-circuit programming structures
KR100758300B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
JP4291881B2 (ja) 回路内プログラミング構造を埋め込んだプロセッサ
CN113835735A (zh) 一种fpga远程升级方法、系统和存储介质
TWI613660B (zh) 記憶體程式化方法、記憶體控制電路單元與記憶體儲存裝置
JP4296209B2 (ja) 回路内プログラミング構造を埋め込んだプロセッサ
JP2004021867A (ja) 情報処理システム
JP2008027326A (ja) システムコントローラ、該システムコントローラを有するフラッシュメモリシステム、フラッシュメモリモジュールの制御方法
TWI615713B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
WO2021019270A1 (en) Updating firmware in a chipset of a peripheral device
CN117171097A (zh) 一种现场可编程门阵列远程加载方法及系统
KR20000033437A (ko) 부트스트랩로더 기능 구현 장치
CN117234991A (zh) 对fpga进行配置、回读和刷新的电路及控制方法
JP5552930B2 (ja) 情報処理装置及び書換方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080229

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080326

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080910

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090309

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

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

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

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140417

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