(57)【特許請求の範囲】
【請求項１】
複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新装置であって、
任意にデータの書き込みおよび読み出しが可能な記憶媒体と、
更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータを、前記記憶媒体に複写する複写手段と、
前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容を消去する消去手段と、
新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む書き込み手段と、
を具備することを特徴とするプログラム更新装置。
【請求項２】
複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新装置であって、
任意にデータの書き込みおよび読み出しが可能な記憶媒体と、
更新対象とされた旧プログラムブロックよりもデータサイズの大きいプログラムブロックの更新により前記ＲＯＭ内の格納位置にずれが生じ得る、更新対象以外のプログラムデータを、前記記憶媒体に複写する複写手段と、
前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容、および前記ＲＯＭ内の、前記記憶媒体への複写対象となったプログラムデータを少なくとも一部に含むメモリブロックの記憶内容を消去する消去手段と、
新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む書き込み手段と、
を具備することを特徴とするプログラム更新装置。
【請求項３】
前記ＲＯＭは、前記各プログラムブロックの格納場所の先頭アドレスおよびそれぞれのデータサイズを記憶していることを特徴とする請求項１または２に記載のプログラム更新装置。
【請求項４】
前記書き込み手段は、新たに前記ＲＯＭに書き込むプログラムブロックのデータとともに、前記ＲＯＭ内における当該データの格納場所の先頭アドレスおよびデータサイズを書き込むことを特徴とする請求項３に記載のプログラム更新装置。
【請求項５】
複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム変更方法であって、
更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータを、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写する複写工程と、
前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容を消去する消去工程と、
新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む書き込み工程と、
を含むことを特徴とするプログラム更新方法。
【請求項６】
複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新方法であって、
更新対象とされた旧プログラムブロックよりもデータサイズの大きいプログラムブロックの更新により前記ＲＯＭ内の格納位置にずれが生じ得る、更新対象以外のプログラムデータを、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写する複写工程と、
前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容、および前記ＲＯＭ内の、前記記憶媒体への複写対象となったプログラムデータを少なくとも一部に含むメモリブロックの記憶内容を消去する消去工程と、
新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む書き込み工程と、
を含むことを特徴とするプログラム更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のメモリブロックからなり、かつメモリブロック単位で電気的に一括消去および書き込みが可能な所謂フラッシュメモリと呼ばれるＲＯＭ（リードオンリメモリ）に記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するためのプログラム更新装置に関し、特に工業用プロセスで導入されているプログラマブルコントローラ（以下、ＰＣとする）システムにおいて、ＰＣシステムを制御する制御ユニットやネットワーク機能や位置決め機等を実現するための特殊ユニットのオペレーティングシステム（以下、ＯＳとする）と呼ばれる基本ソフトウェアの更新処理に関する。
【０００２】
【従来の技術】
一般に、工業用プロセスで導入されているＰＣシステムにおいては、制御ユニットや特殊ユニットのＯＳのプログラムデータは、複数のプログラムブロックからなり、各ユニット内のフラッシュメモリに記憶される。
【０００３】
図１９は、特殊ユニット内のフラッシュメモリにＯＳを書き込むための従来のＰＣシステムの構成を示す外観図である。図示例では、ＰＣシステム全体に電源を供結する電源ユニット１１、ＰＣシステム全体を制御する制御ユニット１２、ネットワーク機能や位置決め機能等の特殊な機能を実現するための特殊ユニット１３、および制御ユニット１２や特殊ユニット１３にＯＳを書き込むためのＯＳダウンロード装置１４は、べースユニット１５に内蔵された外部バス（図示省略）を介して相互に接続されている。特殊ユニット用のＯＳデータは、メモリカード１６に記憶されており、そのメモリカード１６はＯＳダウンロード装置１４に装着される。
【０００４】
図２０は、ＯＳの書き込み処理を行うシステムの構成を示すブロック図である。特殊ユニット１３は、マイクロコンピュータよりなる中央処理装置であるＣＰＵ１３１、ＯＳを格納するためのフラッシュメモリ１３２、制御ユニット１２とのデータ交換などに用いる２ポートメモリ１３３、およびべースユニット１５内の外部バス１５１と接続するためのインタフェース（Ｉ／Ｆ）である外部バスインタフェース１３４を備えている。
【０００５】
ＣＰＵ１３１、フラッシュメモリ１３２、２ポートメモリ１３３および外部バスインタフェース１３４は、内部バス１３５を介して相互に接続される。一方、ＯＳダウンロード装置１４は、マイクロコンピュータよりなる中央処理装置であるＣＰＵ１４１、ＯＳダウンロード装置１４を動作させるためのソフトウェアを記憶したＲＯＭ１４２、および外部バス１５１と接続するための外部バスインタフェース１４３を備えている。ＣＰＵ１４１、ＲＯＭ１４２、外部バスインタフェース１４３、およびＯＳダウンロード装置１４に装着されたメモリカード１６は、内部バス１４５を介して相互に接続される。
【０００６】
そして、メモリカード１６をＯＳダウンロード装置１４に装着した状態でＰＣシステムの電源をオフからオンに切り替えることにより、特殊ユニット１３に対してＯＳの書き込み処理が開始し、特殊ユニット１３用のＯＳデータは、メモリカード１６から外部バス１５１を通じて特殊ユニット１３内のフラッシュメモリ１３２に送られ、書き込まれる。
【０００７】
なお、電源ユニット１１と制御ユニット１２とＯＳダウンロード装置１４をべースユニット１５に接続し、制御ユニット用のＯＳデータを記憶したメモリカードをＯＳダウンロード装置１４に装着した状態でＰＣシステムの電源をオフからオンに切り替えれば、制御ユニット１２にＯＳが書き込まれる。
【０００８】
図２１は、ＯＳのデータ構成とそれを記憶したフラッシュメモリの従来のメモリマップを説明するための模式図である。特殊ユニットまたは制御ユニットのＯＳのデータ構成２０は、機能Ａ、機能Ｂ、機能Ｃ、・・・、機能ｎという複数の機能を実行するための複数のプログラムブロック２１，２２，２３，２４からなり、一括してフラッシュメモリ２５に書き込まれる。
【０００９】
フラッシュメモリ２５のメモリ空間は、各機能のプログラムサイズに応じた複数のプログラムブロック２６，２７，２８，２９で構成される。フラッシュメモリは読み出し専用メモリであるが、複数のメモリブロックからなり、そのメモリブロック単位で消去や書き込みが可能な記憶媒体である。しかし複数のプログラムブロック２６，２７，２８，２９は、フラッシュメモリ２５のメモリブロックを考慮して割り付けられてはいないため、それらは互いに独立して分割可能になっているわけではない。
【００１０】
すなわち、たとえば、図２２に模式的に示すフラッシュメモリの従来のメモリマップのように、機能ＣのＯＳデータが第３番目のメモリブロック３３（図ではメモリブロック３）と第４番目のメモリブロック３４（図ではメモリブロック４）の一部に割り付けられ、第４番目のメモリブロック３４にさらに機能ＤのＯＳデータが割り付けられ、機能ＥのＯＳデータが第４番目のメモリブロック３４の残りの部分と第５番目のメモリブロック３５（図ではメモリブロック５）に割り付けられることがある。
【００１１】
なお、図２２では、機能ＡのＯＳデータおよび機能ＢのＯＳデータは、それぞれ第１番目のメモリブロック３１（図ではメモリブロック１）および第２番目のメモリブロック３２（図ではメモリブロック２）に割り付けられている。
【００１２】
【発明が解決しようとする課題】
フラッシュメモリは、ブロック単位でＯＳデータをやりとりする手順をシステムに追加することによって、データの書き込みを可能にする構成であるため、書き込まれたデータを消去しなければその領域に再度データを書き込むことができないメモリである。したがって、そのデータの消去はあくまでメモリブッロク単位でなされ、そのため、たとえば、図２２の例において、機能Ａ、機能Ｂ、機能Ｃおよび機能Ｅのプログラムブロックの書き換えを行わずに、機能ＤのＯＳデータ３６を単独で新しいバージョンのデータ３７に書き換えようとすると、機能Ｄのプログラムブロックが割り付けられた第４番目のメモリブロック３４の記憶内容を消去した後、新機能ＤのＯＳデータ３７を書き込まなければならない。
【００１３】
しかし、その際に、第４番目のメモリブロック３４の消去に伴って、機能ＣのＯＳデータの一部３８（図２２において「機能Ｃ１」としたメモリ領域）と機能ＥのＯＳデータの一部３９（図２２において「機能Ｅ１」としたメモリ領域）も消失してしまうため、機能ＤのプログラムブロックのＯＳデータを単独で更新することは困難であり、結局ＯＳ全体を書き換えなければならず、ＯＳのバージョンアップ等によるデータ更新時に時間がかかるという問題点があった。
【００１４】
また、従来は一部のプログラムブロックのＯＳデータを更新する場合でもＯＳ全体を書き換えるため、ＯＳ全体のデータが必要であり、従ってＯＳ全体のデータサイズが大きい場合には複数枚のメモリカードに分けて記憶させなければならず、コスト増を招くだけでなく取り扱いおよびＯＳの書き換え操作が煩雑になるという欠点もある。一方、フラッシュメモリの各メモリブロックに２以上の異なるプログラムブロックのデータが混在しないようにすれば、一部のプログラムブロックのＯＳデータ更新時に、バージョンアップされたプログラムブロックのみを書き換えることは可能である。
【００１５】
しかし、そのようにすると、たとえば、図２２の例で説明すれば、機能ＣのＯＳデータを第３番目のメモリブロック３３と第４番目のメモリブロック３４に割り付け、機能ＤのＯＳデータを第５番目のメモリブロック３５に割り付け、機能ＥのＯＳデータを図示しない第６番目のメモリブロックに割り付けることになる。そして第４番目のメモリブロック３４の残りの部分、第５番目のメモリブロック３５の残りの部分、および第６番目のメモリブロックの残りの記憶領域は空き領域となり、データの格納に供されない無駄なメモリ領域が増えてしまうので、記憶容量の大きいフラッシュメモリを用いなければならなくなるという不都合が生じる。
【００１６】
また、従来は、ＯＳの書き込みのために専用装置としてＯＳダウンロード装置１４を用意しなければならず、ＯＳダウンロード装置の機種によって取り扱い方法が異なるため、使用者が混乱するおそれがある。
【００１７】
本発明は、上記問題点を解決するためになされたもので、フラッシュメモリに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックのデータを更新するにあたり、その更新対象であるプログラムブロックに対してのみデータの書き換えを行うことができるプログラム更新装置および更新方法を得ることを目的とする。
【００１８】
また、本発明は、フラッシュメモリに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックのデータを更新するにあたり、差分データのみを入手すれば更新を行うことができるプログラム更新装置および更新方法を得ることを目的とする。
【００１９】
また、本発明は、フラッシュメモリにプログラムデータを書き込む際に、専用の装置を用いずに、統一的な操作で容易に書き込みを行うことができるプログラム更新装置および更新方法を得ることを目的とする。
【００２０】
【課題を解決するための手段】
図１は、本発明の原理を模式的に示す概略図である。本発明は、図１に示すように、複数の機能、たとえば、機能Ａ、機能Ｂ、機能Ｃ、機能Ｄおよび機能Ｅを実現するための複数のプログラムブロック４１，４２，４３，４４，４５を記憶したフラッシュメモリに対して、たとえば、機能ＤのＯＳデータを更新する場合、第４番目のメモリブロック５４のデータを消去する前に、機能ＤのＯＳデータとともに第４番目のメモリブロック５４内に格納された、機能ＣのＯＳデータの一部４６（図１において「機能Ｃ１」としたメモリ領域）と機能ＥのＯＳデータの一部４７（図１において「機能Ｅ１」としたメモリ領域）のデータを、別の記憶媒体、たとえば、パーソナルコンピュータ６のワークメモリや、パーソナルコンピュータ６に接続されたハードディスクやフロッピー（登録商標）ディスクや光磁気ディスクなどに一時的に退避し、第４番目のメモリブロック５４のデータを消去した後、新しい機能ＤのＯＳデータ４８とともに退避データ４６，４７を第４番目のメモリブロック５４の元の位置に書き込むようにしたものである。
【００２１】
図１の例は、機能Ｄの元のＯＳデータを格納したプログラムブロック４４と、新しい機能ＤのＯＳデータ４８を格納するプログラムブロックとのサイズが同じ場合である。パーソナルコンピュータ６は、ＯＳインストールソフトウェアを実行する周辺装置の一つである。
【００２２】
また、本発明は、図２に示す原理図のように、たとえば、フラッシュメモリに記憶された機能ＢのＯＳデータを、第２番目のメモリブロック５２のサイズよりも大きいプログラムサイズのＯＳデータに更新する場合、機能Ｃ、機能Ｄおよび機能Ｅの各ＯＳデータを格納したプログラムブロック４３，４４，４５の割り付け位置をずらす必要があるため、それらのプログラムブロック４３，４４，４５のデータを、別の記憶媒体、たとえば、パーソナルコンピュータ６のワークメモリや、パーソナルコンピュータ６に接続されたハードディスクやフロッピー（登録商標）ディスクや光磁気ディスクなどに一時的に退避し、それから２番目から第５番目までの各メモリブロック５２，５３，５４，５５のデータを消去した後、新しい機能ＢのＯＳデータ４９とともに退避データ４３，４４，４５を順に第２番目のメモリブロック５２から書き込むようにしたものである。
【００２３】
なお、図１および図２において、第１番目のメモリブロック５１に「機能情報ブロック」が設けられているが、これについては後述する。
【００２４】
図３は、本発明によるＯＳのデータ構成とそれを記憶したフラッシュメモリのメモリマップを説明するための模式図である。ＯＳのデータ構成１２０は、機能Ａ、機能Ｂ、機能Ｃ、・・・、機能ｎという複数の機能を実行するための複数のプログラムブロック１２１，１２２，１２３，１２４に分割されており、フラッシュメモリ１２５に、それぞれ独立して書き込むこともできるし、従来通り一括して書き込むこともできる。
【００２５】
そして、部分的に書き込んでも、一括して書き込んでも、フラッシュメモリ１２５のメモリ空間は、各機能のプログラムサイズに応じた複数のプログラムブロック１２６，１２７，１２８，１２９に分割される。なお従来は、図２１に関連して説明した通り、各プログラムブロック（図２１の符号２６，２７，２８，２９）は、分割可能にはなっていない。
【００２６】
また、本発明は、フラッシュメモリ１２５のデータ構成を、図４に示すように、各機能Ａ，Ｂ，Ｃ，ｎのＯＳデータ群１３１とともに、各機能Ａ，Ｂ，Ｃ，ｎに関する情報１３４を集約した管理テーブル１３３を格納する機能情報ブロック１３２を含む構成としたものである。各機能Ａ，Ｂ，Ｃ，ｎに関する情報１３４は、たとえば、機能の識別子（機能Ｎｏ．）、その機能のＯＳデータが格納されているメモリ領域の先頭アドレス、データサイズおよびその他の付加情報で構成される。この管理テーブル１３３によって、各機能Ａ，Ｂ，Ｃ，Ｄ，ｎのＯＳデータのサイズや先頭アドレスを確認することができる。
【００２７】
また、本発明は、フラッシュメモリ１２５に書き込まれるＯＳのデータ構成１２０を、図５に示すように、ＯＳの実データ１３６とともに、前記機能に関する情報１３４に対応した機能情報１３７を含む構成としたものである。従ってこの機能情報１３７は、たとえば、機能の識別子（機能Ｎｏ．）、その実データ１３６が格納されるフラッシュメモリ１２５のメモリ領域の先頭アドレス、データサイズおよびその他の付加情報で構成される。なおこの実データ１３６が、ある機能のＯＳデータを更新するものである場合には、機能情報１３７の先頭アドレスの値は、フラッシュメモリ１２５における、更新前の該当する機能のＯＳデータの先頭アドレス値である。
【００２８】
この機能情報１３７によって、各機能Ａ，Ｂ，Ｃ，Ｄ，ｎのＯＳデータがフラッシュメモリ１２５のどのメモリブロックに属するか、あるいは実際に属しているのかということを知ることができる。
【００２９】
以上原理説明したように、本発明は、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新装置であって、任意にデータの書き込みおよび読み出しが可能な記憶媒体と、更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータを、前記記憶媒体に複写する複写手段と、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容を消去する消去手段と、新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む書き込み手段と、を具備するものである。
【００３０】
この発明によれば、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新装置によって、更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータが、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写され、その後に、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容が消去され、そして新たに前記ＲＯＭに書き込むプログラムブロックのデータが、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込まれる。
【００３１】
また、本発明は、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新装置であって、任意にデータの書き込みおよび読み出しが可能な記憶媒体と、更新対象とされた旧プログラムブロックよりもデータサイズの大きいプログラムブロックの更新により前記ＲＯＭ内の格納位置にずれが生じ得る、更新対象以外のプログラムデータを、前記記憶媒体に複写する複写手段と、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容、および前記ＲＯＭ内の、前記記憶媒体への複写対象となったプログラムデータを少なくとも一部に含むメモリブロックの記憶内容を消去する消去手段と、新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む書き込み手段と、を具備するものである。
【００３２】
この発明によれば、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新装置によって、更新対象とされた旧プログラムブロックよりもデータサイズの大きいプログラムブロックの更新により前記ＲＯＭ内の格納位置にずれが生じ得る、更新対象以外のプログラムデータが、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写され、その後に、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容、および前記ＲＯＭ内の、前記記憶媒体への複写対象となったプログラムデータを少なくとも一部に含むメモリブロックの記憶内容が消去され、そして新たに前記ＲＯＭに書き込むプログラムブロックのデータが、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込まれる。
【００３３】
この発明において、前記ＲＯＭは、前記各プログラムブロックの格納場所の先頭アドレスおよびそれぞれのデータサイズも記憶する。
【００３４】
この発明によれば、前記ＲＯＭに、前記各プログラムブロックの格納場所の先頭アドレスおよびそれぞれのデータサイズも記憶される。
【００３５】
この発明において、前記書き込み手段は、新たに前記ＲＯＭに書き込むプログラムブロックのデータとともに、前記ＲＯＭ内における当該データの格納場所の先頭アドレスおよびデータサイズも書き込む構成となっている。
【００３６】
この発明によれば、前記ＲＯＭに、新たに前記ＲＯＭに書き込むプログラムブロックのデータとともに、前記ＲＯＭ内における当該データの格納場所の先頭アドレスおよびデータサイズも書き込まれる。
【００３９】
また、本発明は、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新方法であって、更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータを、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写する複写工程と、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容を消去する消去工程と、新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む書き込み工程と、を含むものである。
【００４０】
この発明によれば、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するにあたって、更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータを、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写し、その後、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容を消去し、そして新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む。
【００４１】
また、本発明は、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新方法であって、更新対象とされた旧プログラムブロックよりもデータサイズの大きいプログラムブロックの更新により前記ＲＯＭ内の格納位置にずれが生じ得る、更新対象以外のプログラムデータを、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写する複写工程と、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容、および前記ＲＯＭ内の、前記記憶媒体への複写対象となったプログラムデータを少なくとも一部に含むメモリブロックの記憶内容を消去する消去工程と、新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む書き込み工程と、を含むものである。
【００４２】
この発明によれば、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するにあたって、更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータ、または更新対象とされた旧プログラムブロックよりもデータサイズの大きいプログラムブロックの更新により前記ＲＯＭ内の格納位置にずれが生じ得る、更新対象以外のプログラムデータを、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写し、その後、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容、および前記ＲＯＭ内の、前記記憶媒体への複写対象となったプログラムデータを少なくとも一部に含むメモリブロックの記憶内容を消去し、そして新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込む。
【００４５】
【発明の実施の形態】
以下、この発明にかかるプログラム更新装置およびプログラム更新方法の実施の形態を図面を参照して詳細に説明する。
【００４６】
実施の形態１．
図６は、本発明の実施の形態１により制御ユニット内のフラッシュメモリにＯＳを書き込むためのＰＣシステムの構成を示す外観図である。電源ユニット７１、制御ユニット７２および特殊ユニット７３は、べースユニット７５内の外部バス（図示省略）を介して相互に接続されている。ＯＳインストールソフトウェアが動作する周辺機器である、たとえば、パーソナルコンピュータ６は、通信ケーブル６０を介して、たとえば、制御ユニット７２に設けられた通信ポート７６に接続されている。
【００４７】
パーソナルコンピュータ６は、フロッピー（登録商標）ディスク装置やハードディスク装置や光磁気ディスク装置やテープ装置などの記憶装置を内蔵しているか、または特に図示していないが、それらの記憶装置に接続されており、フロッピー（登録商標）ディスクやハードディスクや光磁気ディスクに記憶されたＯＳインストールソフトウェアを実行し、たとえば、フロッピー（登録商標）ディスクに記憶された制御ユニット用のＯＳを通信ケーブル６０を介して制御ユニット７２に送り、インストールを行う。従ってパーソナルコンピュータ６は、プログラム更新装置としての機能を有している。このパーソナルコンピュータ６は、ＯＳのインストール終了後に通信ケーブル６０とともに取り外される。
【００４８】
制御ユニット７２にＯＳをインストールする際には、特殊ユニット７３は必ずしも必要ではない。なお電源ユニット７１、制御ユニット７２、特殊ユニット７３およびべースユニット７５は、それぞれ従来同様のユニットであるため、それらについての説明を省略する。
【００４９】
図７は、制御ユニット７２に対してＯＳの書き込み処理を行うシステムの構成を示すブロック図である。制御ユニット７２は、マイクロコンピュータよりなる中央処理装置であるＣＰＵ７２１、ＯＳを格納するためのフラッシュメモリ７２２、前記通信ポート７６、ワークメモリ等を提供するＲＡＭ（ランダムアクセスメモリ）７２３、およびべースユニット７５内の外部バス７５１と接続するための外部バスインタフェース７２４を備えている。
【００５０】
ＣＰＵ７２１、フラッシュメモリ７２２、通信ポート７６、ＲＡＭ７２３および外部バスインタフェース７２４は、内部バス７２５を介して相互に接続される。一方パーソナルコンピュータ６は、中央処理装置であるＣＰＵ６１、ＲＯＭ６２、ＲＡＭ６３および通信ポート６４を備えており、それらは内部バス６５を介して相互に接続される。通信ポート６４は、制御ユニット７２に接続された通信ケーブル６０を接続するポートである。なお図示省略したが、制御ユニット用のＯＳを記憶したフロッピー（登録商標）ディスクは、図示省略したフロッピー（登録商標）ディスク装置を介してパーソナルコンピュータ６の内部バス６５に接続される。
【００５１】
図８は、フラッシュメモリ７２２のデータ構成を示す模式図である。フラッシュメモリ７２２は、機能Ａ、機能Ｂ、機能Ｃ、・・・、機能ｎという複数の機能を実行するためのＯＳデータを、各機能毎に分割して複数のプログラムブロック７０１，７０２，７０３，７０４に格納する。
【００５２】
また、フラッシュメモリ７２２は、プログラムブロック７０１，７０２，７０３，７０４のたとえば、先頭に、各機能Ａ，Ｂ，Ｃ，ｎに関する情報（以下、機能情報とする）７０７を集約した管理テーブル７０６を格納する機能情報ブロック（これを機能Ｏとしてもよい）７０５を有している。機能情報ブロック７０５の格納位置のアドレスおよび機能情報ブロック７０５のデータサイズは、固定である。
【００５３】
機能情報７０７は、たとえば、機能の識別子（機能Ｎｏ．）７０７ａ、１６ワード等で構成される機能名称７０７ｂ、その機能のＯＳデータがインストールされた時のインストール元のフロッピー（登録商標）ディスク番号（ＦＤ  Ｎｏ．）７０７ｃ、その機能のＯＳデータのバージョン７０７ｄ、その機能のＯＳデータをインストールした日付７０７ｅ、その機能のＯＳデータが格納されているメモリ領域の先頭アドレス７０７ｆ、およびデータサイズ７０７ｇで構成される。機能情報ブロック７０５は、たとえば、機能Ｎｏ．を「０」とする。
【００５４】
図９は、更新のためにフロッピー（登録商標）ディスクからフラッシュメモリ７２２にインストールされるＯＳデータのデータ構成を示す模式図である。図示例では新しい機能Ｂのデータについて例示されているが、他の機能についても同様である。
【００５５】
新機能ＢのＯＳデータ（以下、新データとする）は、実データ（以下、新実データとする）７１１と、前記機能情報７０７に対応した機能情報（以下、新機能情報とする）７１２とからなる。すなわち新機能情報７１２は、たとえば、機能の識別子（機能Ｎｏ．）７１２ａ、１６ワード等で構成される機能名称７１２ｂ、フロッピー（登録商標）ディスク番号（ＦＤ  Ｎｏ．）７１２ｃ、バージョン７１２ｄ、インストールの日付７１２ｅ、インストール先の先頭アドレス７１２ｆ、およびデータサイズ７１２ｇで構成される。
【００５６】
つぎに、動作中の制御ユニット７２に対するＯＳデータの更新処理について、図１０を参照しながら説明する。なお図中、６ａはパーソナルコンピュータ６で実行されるＯＳインストールソフトウェア（Ｓ／Ｗ）の処理工程を示し、７２ａは制御ユニット７２で実行されるソフトウェア（Ｓ／Ｗ）の処理工程を示す。
【００５７】
通常の動作中の制御ユニット７２に通信ケーブル６０を介してパーソナルコンピュータ６を接続し、そのパーソナルコンピュータ６に、所定のデータ構成（図９参照）の新データを記憶したフロッピー（登録商標）ディスク等を装着し、制御ユニット７２に対してＯＳデータの更新を開始すると、まずパーソナルコンピュータ６は、通信ケーブル６０を経由して制御ユニット７２に、ＯＳデータの書き込み処理の開始を通知する（ステップＡ１）。
【００５８】
制御ユニット７２は、その通知を受け取ると、制御およびシステムを停止状態にし、ＯＳデータを書き込むための準備処理としてシステムデータの退避を行う。そして制御ユニット７２は、ＯＳの書き込み処理を実行し得る状態になったという結果をパーソナルコンピュータ６に応答する（ステップＢ１）。パーソナルコンピュータ６は、その結果を受け取ると、新データのうちの新実データ７１１のデータサイズ、およびその新実データ７１１の、フラッシュメモリ７２２における格納先のアドレスなどの情報を制御ユニット７２に通知する（ステップＡ２）。以下、この通知を退避ＯＳ機能情報読出要求とする。
【００５９】
制御ユニット７２は、退避ＯＳ機能情報読出要求を受け取ると、新実データ７１１の先頭アドレス７１２ｆおよびそのデータサイズ７１２ｇと、フラッシュメモリ７２２に既に記憶されている機能情報７０７の中の先頭アドレス７０７ｆおよびデータサイズ７０７ｇとを、各機能について比較することによって、データの退避が必要となる機能のＯＳデータ（以下、退避データとする）の先頭アドレスおよびデータサイズを算出し、退避データの先頭アドレスおよびデータサイズをパーソナルコンピュータ６に応答する（ステップＢ２）。
【００６０】
パーソナルコンピュータ６は、退避データの先頭アドレスとサイズを受け取ると、それらに基づいて制御ユニット７２に退避データの読み出し要求を通知し、それに応答して制御ユニット７２から送られてきた退避データを、たとえば、ハードディスクにファイルとして記憶することによってデータの退避を行う（ステップＡ３）。
【００６１】
ステップＡ３に応答して、制御ユニット７２は、フラッシュメモリ７２２から退避データを読み出し、それをパーソナルコンピュータ６へ送る（ステップＢ３）。続いてパーソナルコンピュータ６は、制御ユニット７２に、フラッシュメモリ７２２の、退避データが記憶されているメモリブロックの削除要求を通知し、それに応答する削除完了結果を制御ユニット７２から受け取る（ステップＡ４）。ステップＡ４に応答して、制御ユニット７２は該当するメモリブロックの削除を行う（ステップＢ４）。
【００６２】
続いてパーソナルコンピュータ６は、ハードディスクに退避した退避データと新実データ７１１とをアドレスの昇順に並びかえ、そしてその並べ替えたデータをすべてフラッシュメモリ７２２に書き込むまで、逐次制御ユニット７２にＯＳ書き込み実行要求とともにメモリブロック単位で書き込みデータを出力し、すべての書き込みが終了した時点で制御ユニット７２から書き込み完了結果とＯＳ照合実行要求を受け取る（ステップＡ５）。ステップＡ５に応答して、制御ユニット７２はフラッシュメモリ７２２にデータを書き込む（ステップＢ５）。
【００６３】
続いてパーソナルコンピュータ６は、制御ユニット７２に、フラッシュメモリ７２２に実際に書き込まれたデータの読み出し要求を通知し、それに応答して制御ユニット７２から送られてきたデータを受け取り、フラッシュメモリ７２２に実際に書き込まれたデータと正しいデータとの照合を行い、それらの整合性を調べる（ステップＡ６）。すなわちフラッシュメモリ７２２に正しく書き込まれたか否かのチェックを行う。ステップＡ６に応答して、制御ユニット７２は、フラッシュメモリ７２２から実際に書き込まれたデータを読み出す（ステップＢ６）。
【００６４】
フラッシュメモリ７２２にデータが正しく書き込まれていない場合には、正しいデータが書き込まれるまで、該当するメモリブロックの削除、該当データの書き込みおよび照合を行う。フラッシュメモリ７２２にデータが正しく書き込まれたら、パーソナルコンピュータ６は、制御ユニット７２に書き込みが終了したことを通知し、それに応答して制御ユニット７２から書き込み終了処理の完了通知を受け取る（ステップＡ７）。ステップＡ７に応答して、制御ユニット７２は、ＯＳデータの書き込み終了処理としてシステムデータの復帰などを行う（ステップＢ７）。
【００６５】
パーソナルコンピュータ６は、書き込み終了処理の完了通知を受け取ると、制御ユニット７２にリモートリセット要求を通知し、それに応答して制御ユニット７２からリセット完了通知を受け取り、ＯＳデータの更新処理を終了する（ステップＡ８）。ステップＡ８に応答して、制御ユニット７２は、ＰＣシステム全体をリセットし、更新したＯＳデータを立ち上げてＰＣシステムの制御を開始する（ステップＢ８）。
【００６６】
ところで、フラッシュメモリ７２２に対してデータの削除（ステップＢ４）またはデータの書き込み（ステップＢ５）を実行している間は、フラッシュメモリ７２２内にあるＯＳプログラムを実行することはできない。
【００６７】
そのため本実施の形態では、図１１および図１２に示すように、フラッシュメモリ７２２にアクセスする場合は、フラッシュメモリ７２２内のフラッシュメモリ書き込み処理ブロック７２２ａまたはフラッシュメモリ削除処理ブロック７２２ｂに格納されたプログラムをワークメモリ（ＲＡＭ７２３）に複写する。フラッシュメモリ書き込み処理ブロック７２２ａおよびフラッシュメモリ削除処理ブロック７２２ｂは、それぞれフラッシュメモリ７２２に対してデータの書き込み処理およびメモリブロックの消去処理を行うためのプログラムを格納している。
【００６８】
ワークメモリ（ＲＡＭ７２３）にコピーされた処理は、ワークメモリ内で実行され、フラッシュメモリ７２２に対して書き込みや削除の処理を行う。そして書き込みや削除の処理が終了した後、プログラムの実行は元に戻される。
【００６９】
なお、図１１中、７２５ａおよび７２５ｂは内部バス７２５を構成し、それぞれデータバスおよびアドレスバスである。
【００７０】
上記実施の形態１によれば、フラッシュメモリ７２２が、各機能のＯＳデータとともに、各機能のＯＳデータを格納したメモリ領域の先頭アドレス７０７ｆおよびそのデータサイズ７０７ｇを含む機能情報７０７を記憶するため、制御ユニット７２に対して、複数のプログラムブロック７０１，７０２，７０３，７０４からなるプログラムデータをプログラムブロック毎に分割して書き込むことができ、またデータ更新時に、新実データ７１１の更新とともに、フラッシュメモリ７２２におけるその新実データ７１１の格納場所の先頭アドレスおよびデータサイズも更新するため、更新対象であるプログラムブロックに対してのみデータの書き換えを行うことができる。
【００７１】
従って、上記実施の形態１によれば、プログラムデータの更新時に差分データのみを入手すればよいので、更新処理を行うデータサイズが小さくて済み、更新処理が短時間で済み、また更新のための新データをたとえば、複数枚のフロッピー（登録商標）ディスクに分けて記憶させる場合のコストの問題や、取り扱いおよび更新処理の煩雑さを解消することができる。また、上記実施の形態１によれば、パーソナルコンピュータ６を制御ユニット７２に接続し、パーソナルコンピュータ６を操作してデータの更新を行うため、専用のＯＳダウンロード装置が不要となる。
【００７２】
実施の形態２．
つぎに、本発明の実施の形態２により特殊ユニット７３内のフラッシュメモリ７３１にＯＳを書き込む場合について説明する。特殊ユニット７３内のフラッシュメモリ７３１にＯＳを書き込むためのＰＣシステムは、図６に示す構成と同じである。すなわち、電源ユニット７１、制御ユニット７２および特殊ユニット７３が、べースユニット７５内の外部バス（図示省略）を介して相互に接続されており、プログラム更新装置であるたとえば、パーソナルコンピュータ６が通信ケーブル６０を介して、たとえば、制御ユニット７２の通信ポート７６に接続されている。
【００７３】
図１３は、特殊ユニット７３に対してＯＳの書き込み処理を行うシステムの構成を示すブロック図である。特殊ユニット７３は、マイクロコンピュータよりなる中央処理装置であるＣＰＵ７３１、ＯＳを格納するためのフラッシュメモリ７３２、制御ユニット７２とのデータ交換などに用いる２ポートメモリ７３３、およびべースユニット７５内の外部バス７５１と接続するための外部バスインタフェース７３４を備えている。ＣＰＵ７３１、フラッシュメモリ７３２、２ポートメモリ７３３および外部バスインタフェース７３４は、内部バス７３５を介して相互に接続される。電源ユニット７１、制御ユニット７２およびパーソナルコンピュータ６の説明は、実施の形態１と重複するので省略する。
【００７４】
また、フラッシュメモリ７３２のデータ構成、および更新のためにフロッピー（登録商標）ディスクからフラッシュメモリ７３２にインストールされるＯＳデータのデータ構成は、それぞれ実施の形態１のフラッシュメモリ７２２のデータ構成（図８参照）、および更新のためにフロッピー（登録商標）ディスクからフラッシュメモリ７２２にインストールされるＯＳデータのデータ構成（図９参照）と同じである。
【００７５】
つぎに、動作中の特殊ユニット７３に対するＯＳデータの更新処理について、図１４を参照しながら説明する。なお図中、６ｂはパーソナルコンピュータ６で実行されるＯＳインストールソフトウェア（Ｓ／Ｗ）の処理工程を示し、７２ｂは制御ユニット７２で実行されるソフトウェア（Ｓ／Ｗ）の処理工程を示し、７３ｂは特殊ユニット７３で実行されるソフトウェア（Ｓ／Ｗ）の処理工程を示す。
【００７６】
通常の動作中の制御ユニット７２に通信ケーブル６０を介してパーソナルコンピュータ６を接続し、そのパーソナルコンピュータ６に、所定のデータ構成（図９参照）の新データを記憶したフロッピー（登録商標）ディスク等を装着し、特殊ユニット７３に対してＯＳデータの更新を開始すると、まずパーソナルコンピュータ６は、通信ケーブル６０を経由して制御ユニット７２に、ＯＳデータの書き込み処理の開始を通知する（ステップＣ１）。
【００７７】
制御ユニット７２は、その通知を受け取ると、その通知を特殊ユニット７３に中継するとともに、制御およびシステムを停止状態にし、ＯＳデータを書き込むための準備処理としてシステムデータの退避を行う（ステップＤ１）。特殊ユニット７３は、中継されたＯＳデータの書き込み開始の通知を受け取ると、ＯＳデータを書き込むための準備処理としてシステムデータの退避を行い、ＯＳの書き込み処理を実行し得る状態になったという結果を制御ユニット７２を介してパーソナルコンピュータ６に応答する（ステップＥ１）。
【００７８】
パーソナルコンピュータ６は、その結果を受け取ると、新データのうちの新実データ７１１のデータサイズ、およびその新実データ７１１の、フラッシュメモリ７３２における格納先のアドレスなどの情報（退避ＯＳ機能情報読出要求）を制御ユニット７２に通知する（ステップＣ２）。制御ユニット７２は、退避ＯＳ機能情報読出要求を特殊ユニット７３に中継する（ステップＤ２）。
【００７９】
特殊ユニット７３は、退避ＯＳ機能情報読出要求を受け取ると、新実データ７１１の先頭アドレス７１２ｆおよびそのデータサイズ７１２ｇと、フラッシュメモリ７３２に既に記憶されている機能情報７０７の中の先頭アドレス７０７ｆおよびデータサイズ７０７ｇとを、各機能について比較することによって、退避データの先頭アドレスおよびデータサイズを算出し、退避データの先頭アドレスおよびデータサイズを制御ユニット７２を介してパーソナルコンピュータ６に応答する（ステップＥ２）。
【００８０】
パーソナルコンピュータ６は、退避データの先頭アドレスとサイズを受け取ると、それらに基づいて制御ユニット７２に退避データの読み出し要求を通知し、それに応答して送られてきた退避データを、たとえば、ハードディスクにファイルとして記憶することによってデータの退避を行う（ステップＣ３）。制御ユニット７２は、退避データの読み出し要求を特殊ユニット７３に中継するとともに、退避データをパーソナルコンピュータ６に中継する（ステップＤ３）。ステップＣ３に応答して、特殊ユニット７３は、フラッシュメモリ７３２から退避データを読み出し、それを制御ユニット７２を介してパーソナルコンピュータ６へ送る（ステップＥ３）。
【００８１】
続いてパーソナルコンピュータ６は、フラッシュメモリ７３２の、退避データが記憶されているメモリブロックの削除要求を制御ユニット７２に通知し、それに応答する削除完了結果を受け取る（ステップＣ４）。制御ユニット７２は、削除要求を特殊ユニット７３に中継するとともに、削除完了結果をパーソナルコンピュータ６に中継する（ステップＤ４）。ステップＣ４に応答して、特殊ユニット７３は該当するメモリブロックの削除を行う（ステップＥ４）。
【００８２】
続いてパーソナルコンピュータ６は、ハードディスクに退避した退避データと新実データ７１１とをアドレスの昇順に並びかえ、そしてその並べ替えたデータをすべてフラッシュメモリ７３２に書き込むまで、逐次制御ユニット７２にＯＳ書き込み実行要求とともにメモリブロック単位で書き込みデータを出力し、すべての書き込みが終了した時点で書き込み完了結果とＯＳ照合実行要求を受け取る（ステップＣ５）。制御ユニット７２は、ＯＳ書き込み実行要求および書き込みデータを特殊ユニット７３に中継するとともに、書き込み完了結果およびＯＳ照合実行要求をパーソナルコンピュータ６に中継する（ステップＤ５）。ステップＣ５に応答して、特殊ユニット７３はフラッシュメモリ７３２にデータを書き込む（ステップＥ５）。
【００８３】
続いてパーソナルコンピュータ６は、フラッシュメモリ７３２に実際に書き込まれたデータの読み出し要求を制御ユニット７２に通知し、それに応答して送られてきたデータを受け取り、フラッシュメモリ７３２に実際に書き込まれたデータと正しいデータとの照合を行い、それらの整合性を調べる（ステップＣ６）。制御ユニット７２は、データの読み出し要求を特殊ユニット７３に中継するとともに、それに応答して読み出されたデータをパーソナルコンピュータ６に中継する（ステップＤ６）。
【００８４】
ステップＣ６に応答して、特殊ユニット７３は、フラッシュメモリ７３２から実際に書き込まれたデータを読み出し、それを制御ユニット７２を介してパーソナルコンピュータ６へ送る（ステップＥ６）。フラッシュメモリ７３２にデータが正しく書き込まれていない場合には、正しいデータが書き込まれるまで、該当するメモリブロックの削除、該当データの書き込みおよび照合を行う。
【００８５】
フラッシュメモリ７３２にデータが正しく書き込まれたら、パーソナルコンピュータ６は、書き込みが終了したことを制御ユニット７２に通知し、それに応答して書き込み終了処理の完了通知を受け取る（ステップＣ７）。制御ユニット７２は、書き込み終了通知を特殊ユニット７３に中継し、かつＯＳデータの書き込み終了処理としてシステムデータの復帰などを行うとともに、書き込み終了処理の完了通知をパーソナルコンピュータ６に中継する（ステップＤ７）。ステップＣ７に応答して、特殊ユニット７３は、ＯＳデータの書き込み終了処理としてシステムデータの復帰などを行う（ステップＥ７）。
【００８６】
パーソナルコンピュータ６は、書き込み終了処理の完了通知を受け取ると、制御ユニット７２にリモートリセット要求を通知し、それに応答して制御ユニット７２からリセット完了通知を受け取り、ＯＳデータの更新処理を終了する（ステップＣ８）。ステップＣ８に応答して、制御ユニット７２は、ＰＣシステム全体をリセットし、更新したＯＳデータを立ち上げてＰＣシステムの制御を開始する（ステップＤ８）。
【００８７】
なお、フラッシュメモリ７３２に対してデータの削除（ステップＥ４）またはデータの書き込み（ステップＥ５）を実行している間のＯＳプログラムを実行方法については、上記実施の形態１において図１１および図１２に関連して説明した方法と同じである。
【００８８】
上記実施の形態２によれば、特殊ユニット７３にプログラムデータをインストールしたり、その一部のプログラムブロックのデータを更新する場合に、上記実施の形態１と同様に、プログラムブロック毎に分割して書き込むことができ、また更新対象であるプログラムブロックに対してのみデータの書き換えを行うことができ、従って更新処理時間の短縮化、低コスト化および更新処理の容易化という効果が得られる。
【００８９】
また、上記実施の形態２によれば、パーソナルコンピュータ６を制御ユニット７２に接続し、パーソナルコンピュータ６を操作して特殊ユニット７３のデータの更新を行うため、専用のＯＳダウンロード装置が不要となり、特殊ユニット７３のデータ更新を行う場合でも、また制御ユニット７２のデータ更新を行う場合でも、統一的な操作で行うことができる。
【００９０】
なお、図１５に示すように、複数のベースユニット７５ａ，７５ｂのそれぞれの外部バスにネットワークユニット７７ａ，７７ｂをそれぞれ取り付け、それらネットワークユニット７７ａ，７７ｂをネットワークケーブル６０ａで相互に接続することによりＰＣシステムのネットワークを構築し、一方のベースユニット７５ａに取り付けられた制御ユニット７２に、通信ケーブル６０を介してプログラム更新装置となるパーソナルコンピュータ６を接続し、もう一方のベースユニット７５ｂの取り付けられた特殊ユニット７３に対してプログラムデータの更新を行うようにしてもよい。
【００９１】
この場合、パーソナルコンピュータ６と特殊ユニット７３との間のデータ等のやり取りは、通信ケーブル６０、制御ユニット７２、ベースユニット７５ａ、ネットワークユニット７７ａ、ネットワークケーブル６０ａ、ネットワークユニット７７ｂ、ベースユニット７５ｂを経由して行われる。また、複数の制御ユニット７２や特殊ユニット７３に対して、ＯＳの書き込みデータをコマンド形式で送信することにより、複数台の制御ユニット７２や特殊ユニット７３に対して同時にＯＳデータの書き込みを実行することができる。
【００９２】
また、ＯＳの新データの書き込みに使用されるフロッピー（登録商標）ディスクに、ユーザーライセンスを管理するためのシリアル番号を記憶させ、フラッシュメモリ７２２，７３２にＯＳの新データを書き込もうとする際に、その書き込みに使用されているフロッピー（登録商標）ディスクの番号と、フラッシュメモリ７２２，７３２に記憶された機能情報７０７の中のフロッピー（登録商標）ディスク番号７０７ｃとの照合をパーソナルコンピュータ６上で行うようにしてもよい。そうすれば、プログラムのユーザーライセンスを管理することができ、不正なインストールを防止することができる。
【００９３】
また、パーソナルコンピュータ６のＯＳインストールソフトウェアの内部に、図１６に例示するような、ＰＣシステムに対する各ユニット７２，７３の各機能のバージョンの適合性を管理するためのバージョン管理テーブル１００を設け、フラッシュメモリ７２２，７３２にＯＳの新データを書き込もうとする際に、フラッシュメモリ７２２，７３２に記憶された機能情報７０７の中のバージョン７０７ｄと、バージョン管理テーブル１００の中の該当するユニット７２，７３の該当する機能のバージョンとの照合をパーソナルコンピュータ６上で行うようにしてもよい。そうすれば、ＰＣシステムに適合するバージョンのＯＳを簡単にインストールすることができる。
【００９４】
この場合のパーソナルコンピュータ６およびデータの更新対象であるユニット７２，７３のそれぞれの処理手順を図１７および図１８に示す。
【００９５】
ＯＳデータの更新処理を開始すると、まずパーソナルコンピュータ６は、各ユニット７２，７３のフラッシュメモリ７２２，７３２に記憶された管理テーブル７０６を読み出し、各ユニット７２，７３に対してＯＳのバージョンを認識し（ステップＳ１）、それを各ユニット７２，７３のバージョン管理テーブル１００のバージョンと照合して整合性を調べ、書き換え可能なＯＳのバーションを認識する（ステップＳ２）。バージョンが整合していれば、更新対象のユニット７２，７３に対してＯＳ書き換えコマンド（ＯＳデータを含む）を発行し（ステップＳ３）、一方不整合であれば、ユーザーにバージョンの不整合を通知し（ステップＳ４）、たとえば、違うバージョンのＯＳの書き換えを促すようにしてもよい。
【００９６】
一方、更新対象のユニット７２，７３は、ＯＳデータを含むＯＳ書き換えコマンドを受信すると（ステップＳ１１）、ユニット７２，７３内のフラッシュメモリ７２２，７３２のデータの書き換えを実行する（ステップＳ１２）。
【００９７】
【発明の効果】
以上、説明したとおり、本発明によれば、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するプログラム更新装置によって、更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータが、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写され、その後に、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容が消去され、そして新たに前記ＲＯＭに書き込むプログラムブロックのデータが、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込まれるため、更新対象であるプログラムブロックに対してのみデータの書き換えを行うことができ、従って更新のための差分データのみを入手すればよい。
【００９８】
つぎの発明によれば、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新する装置によって、更新対象とされた旧プログラムブロックよりもデータサイズの大きいプログラムブロックの更新により前記ＲＯＭ内の格納位置にずれが生じ得る、更新対象以外のプログラムデータが、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写され、その後に、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容、および前記ＲＯＭ内の、前記記憶媒体への複写対象となったプログラムデータを少なくとも一部に含むメモリブロックの記憶内容が消去され、そして新たに前記ＲＯＭに書き込むプログラムブロックのデータが、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込まれるため、更新対象であるプログラムブロックに対してのみデータの書き換えを行うことができ、従って更新のための差分データのみを入手すればよい。
【０１００】
つぎの発明によれば、前記ＲＯＭに、前記各プログラムブロックの格納場所の先頭アドレスおよびそれぞれのデータサイズも記憶されるため、更新対象であるプログラムブロックのデータサイズやその格納場所の先頭アドレスを確認することができるので、更新対象であるプログラムブロックに対してのみデータの書き換えを行うことができる。
【０１０１】
つぎの発明によれば、前記ＲＯＭに、新たに前記ＲＯＭに書き込むプログラムブロックのデータとともに、前記ＲＯＭ内における当該データの格納場所の先頭アドレスおよびデータサイズも書き込まれるため、データの更新とともに、そのデータの格納場所の先頭アドレスおよびデータサイズも更新することができる。
【０１０３】
つぎの発明によれば、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するにあたって、更新対象とされた旧プログラムブロックの一部または全部とともに同一のメモリブロック内に格納された、更新対象以外のプログラムデータを、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写し、その後、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容を消去し、そして新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込むため、更新対象であるプログラムブロックに対してのみデータの書き換えを行うことができる。
【０１０４】
つぎの発明によれば、複数のメモリブロックからなり、かつメモリブロック単位で一括消去および書き込みが可能なＲＯＭに記憶された、複数のプログラムブロックからなるプログラムデータの一部のプログラムブロックを更新するにあたって、更新対象とされた旧プログラムブロックよりもデータサイズの大きいプログラムブロックの更新により前記ＲＯＭ内の格納位置にずれが生じ得る、更新対象以外のプログラムデータを、任意にデータの書き込みおよび読み出しが可能な記憶媒体に複写し、その後、前記ＲＯＭ内の、更新対象とされた旧プログラムブロックの一部または全部を少なくとも一部に含むメモリブロックの記憶内容、および前記ＲＯＭ内の、前記記憶媒体への複写対象となったプログラムデータを少なくとも一部に含むメモリブロックの記憶内容を消去し、そして新たに前記ＲＯＭに書き込むプログラムブロックのデータを、前記記憶媒体に記憶された複写データとともに前記ＲＯＭに書き込むため、更新対象であるプログラムブロックに対してのみデータの書き換えを行うことができる。
【図面の簡単な説明】
【図１】  本発明の原理を模式的に示す概略図である。
【図２】  本発明の原理を模式的に示す概略図である。
【図３】  本発明に係るＯＳのデータ構成とフラッシュメモリのメモリマップとの対応関係を説明するための模式図である。
【図４】  本発明に係るフラッシュメモリのデータ構成の一例を示す模式図である。
【図５】  本発明に係るＯＳのデータ構成の一例を示す模式図である。
【図６】  フラッシュメモリにＯＳを書き込むためのＰＣシステムの実施の形態１の構成を示す外観図である。
【図７】  そのＯＳの書き込み処理を行うシステムの構成を示すブロック図である。
【図８】  実施の形態１のフラッシュメモリのデータ構成を示す模式図である。
【図９】  実施の形態１のＯＳデータのデータ構成を示す模式図である。
【図１０】  実施の形態１によるＯＳデータの更新処理の流れを示すフローチャートである。
【図１１】  フラッシュメモリに対してデータの書き込み処理およびメモリブロックの消去処理を行う方法を説明するための模式図である。
【図１２】  フラッシュメモリに対してデータの書き込み処理およびメモリブロックの消去処理を行う方法を説明するための模式図である。
【図１３】  実施の形態２によりフラッシュメモリに対してＯＳの書き込み処理を行うシステムの構成を示すブロック図である。
【図１４】  実施の形態２によるＯＳデータの更新処理の流れを示すフローチャートである。
【図１５】  ＰＣシステムのネットワークを利用した場合の構成例を示す外観図である。
【図１６】  バージョンの整合性を調べるように構成されたＯＳインストールソフトウェア内のバージョン管理テーブルの一例を示す図表である。
【図１７】  バージョンの整合性を調べるように構成されたＯＳインストールソフトウェアの処理手順を示すフローチャートである。
【図１８】  バージョンの整合性を調べる場合の更新対象ユニットの処理手順を示すフローチャートである。
【図１９】  フラッシュメモリにＯＳを書き込むための従来のＰＣシステムの構成を示す外観図である。
【図２０】  そのＯＳ書き込み処理を行うシステムの構成を示すブロック図である。
【図２１】  ＯＳのデータ構成とそれを記憶したフラッシュメモリの従来のメモリマップを説明するための模式図である。
【図２２】  ＯＳデータを記憶したフラッシュメモリの従来のメモリマップを示す模式図である。
【符号の説明】
６  パーソナルコンピュータ（記憶媒体、複写手段、消去手段および書き込み手段を具備するプログラム更新装置）、５１，５２，５３，５４，５５  メモリブロック  ４１，４２，４３，４４，４５  プログラムブロック、７２２，７３２  フラッシュメモリ（一括消去および書き込みが可能なＲＯＭ）。
【図１】
0003649932.tif 000002
【図２】
0003649932.tif 000003
【図３】
0003649932.tif 000004
【図４】
0003649932.tif 000005
【図５】
0003649932.tif 000006
【図６】
0003649932.tif 000007
【図７】
0003649932.tif 000008
【図８】
0003649932.tif 000009
【図９】
0003649932.tif 000010
【図１０】
0003649932.tif 000011
【図１１】
0003649932.tif 000012
【図１２】
0003649932.tif 000013
【図１３】
0003649932.tif 000014
【図１４】
0003649932.tif 000015
【図１５】
0003649932.tif 000016
【図１６】
0003649932.tif 000017
【図１７】
0003649932.tif 000018
【図１８】
0003649932.tif 000019
【図１９】
0003649932.tif 000020
【図２０】
0003649932.tif 000021
【図２１】
0003649932.tif 000022
【図２２】
0003649932.tif 000023