(57)【要約】【課題】更新するアプリケーションプログラムの数が多くなった場合でも、システム運用におけるプログラム実行期間の定周期性を維持することを可能としたプログラマブルコントローラを提供することである。【解決手段】提案するプログラマブルコントローラでは、第２メモリ上で、更新する（変更や新規追加の）アプリケーションプログラムおよび、第１メモリに既に格納され更新しないアプリケーションプログラムをアドレスが連続するように再配置し、第１メモリを無効化し、第２メモリ上から再配置された連続するアプリケーションプログラム群を、第１メモリにすべて格納している。【選択図】  図４
2011014043.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを記憶する第１および第２のメモリと、処理装置と、演算部とを有し、前記処理装置は、前記第１のメモリ、前記第２のメモリの優先順で前記アプリケーションプログラムを前記演算部に読み込み・実行し、前記アプリケーションプログラムの更新指示を定周期のタイミングで受けるプログラマブルコントローラにおいて、
前記第１メモリに記憶された、前記更新指示のないアプリケーションプログラムを前記第２メモリ上で検索して記憶位置を特定する非更新プログラム記憶位置特定手段と、
前記第２メモリに記憶された前記更新指示に応じて今回更新されるアプリケーションプログラムと、今回新規に追加されるアプリケーションプログラムと、前記記憶位置を特定した、更新しないアプリケーションプログラムとを、前記第２メモリ上で、アドレスが連続するように再配置する再配置手段と、
前記定周期のタイミングで前記第１メモリに記憶されたすべてのアプリケーションプログラムを無効化するとともに、前記定周期の次のタイミングで前記再配置された連続するアプリケーションプログラムを、前記第１メモリに格納する格納手段と、を有することを特徴とするプログラマブルコントローラ。
【請求項２】
前記更新指示に含まれるアプリケーションプログラムの数に応じて、その更新処理が前記定周期内に収まるかどうかを判定する判定手段をさらに有し、
前記判定手段により、更新処理が規定時間に収まらないと判定された場合に、前記非更新プログラム記憶位置特定手段、前記再配置手段および前記格納手段が実行されることを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
前記更新指示の内容とは、アプリケーションプログラムの新規追加、既存のものの変更、あるいは、削除であることを特徴とする請求項１または２記載のプログラマブルコントローラ。
【請求項４】
アプリケーションプログラムを記憶する第１および第２のメモリと、処理装置と、演算部とを有し、前記処理装置は、前記第１のメモリ、前記第２のメモリの優先順で前記アプリケーションプログラムを前記演算部に読み込み・実行し、前記アプリケーションプログラムの更新指示を定周期のタイミングで受けるプログラマブルコントローラが実行するアプリケーションプログラムの更新方法において、
前記第１メモリに記憶された、前記更新指示のないアプリケーションプログラムを前記第２メモリ上で検索して記憶位置を特定するステップと、
前記第２メモリに記憶された今回更新されるアプリケーションプログラムと、今回新規に追加されるアプリケーションプログラムと、前記記憶位置を特定した、更新しないアプリケーションプログラムとを、前記第２メモリ上で、アドレスが連続するように再配置するステップと、
前記定周期のタイミングで前記第１メモリに記憶されたすべてのアプリケーションプログラムを無効化するとともに、前記定周期の次のタイミングで前記再配置された連続するアプリケーションプログラムを、前記第１メモリに格納するステップと、を有することを特徴とするアプリケーションプログラムの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ等のコントローラシステムにおけるアプリケーションプログラムのオンラインでの更新技術に関する。
【背景技術】
【０００２】
プログラマブルコントローラ等のコントローラシステムにおいて、アプリケーションプログラムをオンラインで更新する技術がある。この技術について以下に説明する。
図４は、第１の従来技術のコントローラシステムを示すブロック図である。この第１のコントローラシステムにおける処理について、図４〜図８を用いて説明する。
【０００３】
図４に示すように、コントローラシステム１００は、マイクロプロセッサ１０１と、メモリ１０２とを有する。メモリ１０２内には、アプリケーションプログラム領域１０４、アプリケーションデータ領域１０５、システムプログラム領域１０６、アプリケーション位置登録テーブル１０７、等の各種データが記憶される。
【０００４】
アプリケーションプログラム領域１０４は、一般的に、複数のアプリケーションプログラムの記憶領域である。アプリケーションデータ領域１０５は、各アプリケーションプログラムが実行時に使用する各種パラメータの記憶領域である。システムプログラム領域１０６は、アプリケーションプログラムの更新（ダウンロード）処理等のシステム処理を実行する各種プログラムの記憶領域である。なお、更新処理用システムプログラムは、更新対象プログラムの数等をチェックし、更新処理が規定の時間に収まるかどうかを判定する判定機能も備えているものとする。
【０００５】
アプリケーション位置登録テーブル１０７には、図５に示すように、アプリケーションプログラム領域１０４に記憶される各アプリケーションプログラムのポインタ（先頭アドレス）が記憶される。図５では、アプリケーションプログラム領域１０４に記憶されるプログラムＡとプログラムＢのそれぞれのポインタが、アプリケーション位置登録テーブル１０７に記憶されている。
【０００６】
図４のコントローラシステム１００は、アプリケーションプログラム領域１０４に記憶される各アプリケーションプログラムの実行と、システムプログラム領域１０６に記憶されるダウンロード等のシステム処理に対応する各システムプログラムの実行とをサイクリックに（定周期的に）繰り返す。
【０００７】
アプリケーションプログラムを実行するときには、マイクロプロセッサ１０１は、アプリケーション位置登録テーブル１０７を通して、アプリケーションプログラム領域１０４上の各アプリケーションプログラムの記憶位置を認識し、対象とするアプリケーションプログラムの各命令等を演算部１０３に読み込み実行する。
【０００８】
システムプログラムを実行するときには、マイクロプロセッサ１０１は、システムプログラム領域１０６から対象とする（更新処理等の）システムプログラムの各命令等を演算部１０３に読み込み実行する。
【０００９】
図６は、第１の従来技術のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。このオンライン更新処理は支援ツール（不図示）からアプリケーションプログラムがダウンロードされると更新処理用システムプログラム（不図示）により実行される。
【００１０】
図６において、ステップＳ１１で、ダウンロードされたアプリケーションプログラムがアプリケーションプログラム領域１０４に格納され、ステップＳ１２で、アプリケーションプログラムの実行期間が終了したこと（アプリケーションプログラムのエンド）を検出することで、システムプログラムを実行する期間の開始が判定される。続く、ステップＳ１３において、アプリケーション位置登録テーブル１０７のポインタを書き換えることにより、旧アプリケーションプログラムから新アプリケーションプログラムへの切り替えが行なわれ、一連の処理を終了する。
【００１１】
図７は、図５の状態に対する更新後の、アプリケーションプログラム領域１０４とアプリケーション位置登録テーブル１０７とを示した図である。ここでは、更新指示によりプログラムＢをプログラムＣに更新するものとする。アプリケーションプログラム領域１０４の空き領域にプログラムＣを格納し、アプリケーションプログラムのエンドのタイミングで、プログラムＢのポインタをプログラムＣの先頭位置を示すように書き換えることにより、以降、プログラムＢの代わりに、プログラムＣが実行されることになる。
【００１２】
図８に、第１の従来技術のコントローラシステムの実行例を示す。
図８の例では、１つのプログラム実行期間内に、アプリケーションプログラムとしてプログラムＡおよびプログラムＢが実行され、あるアプリケーションプログラムの実行期間と、次のアプリケーションプログラムの実行期間との間の各空き時間にシステム処理（アプリケーションプログラムのオンライン更新処理）として、プログラム格納処理、アプリケーション位置登録テーブル更新処理などの各処理が分割されて行われる場合が示されている。
【００１３】
続いて、非特許文献１に示される第２の従来技術のコントローラシステムについて説明する。
図９は、第２の従来技術のコントローラシステムを示すブロック図である。
【００１４】
図９に示す第２の従来技術のコントローラシステム１１０では、図４に示す第１の従来技術のコントローラシステム１００に対して、キャッシュメモリ（Ｌ２キャッシュ）１１１が追加されている。実行速度を増し、実行時間を減らすために、アプリケーションプログラム領域１０４に格納されたプログラムＡおよびＢは、Ｌ２キャッシュ１１１に格納された状態で実行されることになる。
【００１５】
図９の状態から、図６のフローチャートに示すオンライン更新処理により、Ｌ２キャッシュメモリ空間にあるプログラムＢをプログラムＣに更新する場合（プログラムＢをプログラムＣに切り替える場合）、プログラムＣのサイズによっては、プログラムＣがＬ２キャッシュメモリから溢れる可能性があるため、プログラムＣをＬ２キャッシュメモリではなく、非Ｌ２キャッシュメモリ空間、例えばメモリ１０２内のアプリケーションプログラム領域１０４に格納することになってしまう。このため、更新プログラムのダウンロード後に、アプリケーション位置登録テーブル１０７が更新されて、プログラムＣが最初に実行されるときに、プログラムＣのキャッシュメモリ１１１への格納などが必要となるために、実行時間が長くなり、プログラム実行期間の定周期性が維持できず、システム運用に支障をきたすという問題が生じる。
【００１６】
図１０は、第２の従来技術のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。このオンライン更新処理は支援ツール（不図示）からアプリケーションプログラムがダウンロードされると更新処理用システムプログラム（不図示）により実行される。このフローチャートの各ステップは、アプリケーションプログラムの実行期間の間の空き時間に、すなわち、アプリケーションプログラムの実行期間が終了したこと（アプリケーションプログラムのエンド）が検出される度に、断続的に実行される。
【００１７】
図１０において、ステップＳ２１で、ダウンロードされたアプリケーションプログラム（“ＡｐｐＰｒｏｇ”と表記することもある）がアプリケーションプログラム領域（マイクロプロセッサ１０１の外部にあることから「外部メモリ」ともいう）１０４に格納される。すなわち、更新指示に含まれる、オンライン更新以前に格納された既存のアプリケーションプログラムに対しては、更新の内容（削除する、再格納（上書き）する）に従って削除、上書き等の処理を行なう。そして、その後、更新指示に含まれる新規に追加するアプリケーションプログラムをアプリケーションプログラム領域１０４の空き領域に格納する。
【００１８】
続く、ステップＳ２２では、キャッシュメモリ１１１に、今回の更新指示で変更（上書き）対象になっているか、あるいは、削除対象になっているプログラムが存在するかどうかが判定される。存在すると判定された、今回削除、上書き等の処理対象となるアプリケーションプログラムについては、キャッシュメモリ１１１上から削除する。そして、キャッシュメモリ１１１の格納先検索処理として空き領域を検索し、今回更新（変更）する既存のアプリケーションプログラムや、今回新規追加するアプリケーションプログラムをその検索された空き領域に格納する。
【００１９】
そして、続く、ステップＳ２３において、アプリケーション位置登録テーブル１０７のポインタを書き換えることにより、旧アプリケーションプログラムから新アプリケーションプログラムへの切り替えが行なわれ、一連の処理を終了する。
【００２０】
このように、第２の従来技術では、オンライン更新にて、更新されるアプリケーションプログラムを非キャッシュ空間である外部メモリ１０４に一旦格納し、例えばアプリケーションプログラムのエンドのタイミングにて、アプリケーションプログラムをキャッシュメモリ１１１に格納し、アプリケーション位置登録テーブル１０７を更新して、更新アプリケーションプログラムを実行している。これにより、常時キャッシュメモリ１１１にてアプリケーションプログラムを実行することで、実行時間を安定化させている。
【００２１】
しかし、一般にオンライン更新処理は、アプリケーションプログラム毎に行なうことが多く、更新アプリケーションプログラムの数が多くなると、次の３つの時間が延びてしまうという問題がある。
１．更新アプリケーションプログラムの格納先をキャッシュメモリ１１１内で検索するのに要する時間
２．更新前の古いアプリケーションプログラムをキャッシュメモリ１１１から削除する時間
３．キャッシュメモリ１１１に更新アプリケーションプログラムを格納するのに要する時間
この結果、図１１に示すように、アプリケーションプログラムのエンドのタイミングから始まるシステム管理時間内にオンライン更新処理が終了せずに、次のアプリケーションプログラムの実行開始時刻を超えてオンライン更新処理が実行されてしまう可能性がある。このようなオンライン更新処理の時間延長が行われた場合、次のアプリケーションプログラムの実行開始時刻を遅らせるか、または、定周期性を重視したシステムの場合は、アプリケーションプログラムの実行サイクルが抜けてしまう。そのため、アプリケーションプログラムをダウンロードした前後で、オンライン更新処理の実行時間の定時性を保つことができない。
【００２２】
また、周辺技術として、特許文献１では、ファイル記憶装置が示されている。このファイル記憶装置では、管理情報とファイルデータ等が記憶されるディスクの複数のブロックの内容を更新する場合において、ディスク上に一時記憶エリアを設け、その一時記憶エリアにデータを書き込む。その際、ディスクと異なる一時メモリ上の連続した一時記憶領域にデータを格納した後で、一括してディスク上の一時記憶エリアに書き込むことによって、ブロック毎の書き込みを不要とし、ディスクへのアクセス回数を減らし、書き込みに要する時間を減らしている。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開平６−１３９１２３号公報
【非特許文献】
【００２４】
【非特許文献１】発明協会公開技報  公技番号２００８−５０１６４０
【発明の概要】
【発明が解決しようとする課題】
【００２５】
本発明は、以上の問題点を考慮してなされたものであり、更新するアプリケーションプログラムの数が多くなった場合でも、システム運用におけるプログラム実行期間の定周期性を維持することを可能としたプログラマブルコントローラおよびアプリケーションプログラムの更新方法を提供することを目的とする。
【課題を解決するための手段】
【００２６】
提案するプログラマブルコントローラは、アプリケーションプログラムを記憶する第１および第２のメモリと、処理装置と、演算部とを有し、前記処理装置は、前記第１のメモリ、前記第２のメモリの優先順で前記アプリケーションプログラムを前記演算部に読み込み・実行し、前記アプリケーションプログラムの更新指示を定周期のタイミングで受けるプログラマブルコントローラであり、前記第１メモリに記憶された、前記更新指示のないアプリケーションプログラムを前記第２メモリ上で検索して記憶位置を特定する非更新プログラム記憶位置特定手段と、前記第２メモリに記憶された前記更新指示に応じて今回更新されるアプリケーションプログラムと、今回新規に追加されるアプリケーションプログラムと、前記記憶位置を特定した、更新しないアプリケーションプログラムとを、前記第２メモリ上で、アドレスが連続するように再配置する再配置手段と、前記定周期のタイミングで前記第１メモリに記憶されたすべてのアプリケーションプログラムを無効化するとともに、前記定周期の次のタイミングで前記再配置された連続するアプリケーションプログラムを、前記第１メモリに格納する格納手段と、を有する。
【発明の効果】
【００２７】
提案するプログラマブルコントローラでは、更新する（変更や新規追加の）アプリケーションプログラムおよび更新しないアプリケーションプログラムをアドレスが連続するように第２メモリ上で再配置する。その後、第１メモリを無効化し、第２メモリ上で再配置された連続するプログラム群を、第１メモリにすべて格納する。
【００２８】
このため、従来のようにアプリケーションプログラムを第１メモリに格納する際の格納先検索処理、今回の更新指示で変更対象・削除対象になっているプログラムが第１メモリに存在するかどうかの判定処理をなくすことができる。これらに要する時間は、アプリケーションプログラムの数が多くなるにつれ増大するので、更新処理の一部としての、第１メモリへの格納処理に要する時間を短縮できる。
【００２９】
よって、第１メモリへの格納処理が延びたことに伴って、オンライン更新の前後での実行時間の定時性が維持できなくなることを避けることができ、更新するアプリケーションプログラムの数が多くなった場合でも、システム運用の定周期性を維持することができる。
【図面の簡単な説明】
【００３０】
【図１】本実施形態のコントローラシステムを示すブロック図である。
【図２】本実施形態のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。
【図３】ある更新指示に対して、第２の従来技術のコントローラシステムと、本実施形態のコントローラシステムの動作を比較して示した図である。
【図４】第１の従来技術のコントローラシステムを示すブロック図である。
【図５】アプリケーションプログラム領域とアプリケーション位置登録テーブルとの関係を示した図である。
【図６】第１の従来技術のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。
【図７】図５の状態に対する更新後の、アプリケーションプログラム領域とアプリケーション位置登録テーブルとを示した図である。
【図８】第１の従来技術のコントローラシステムの実行例を示す図である。
【図９】第２の従来技術のコントローラシステムを示すブロック図である。
【図１０】第２の従来技術のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。
【図１１】第２の従来技術のコントローラシステムの問題点を示す図である。
【発明を実施するための形態】
【００３１】
以下図面に基づいて、本発明の実施形態について詳細を説明する。なお、本願は、上記非特許文献１を利用する。
図１は、第１実施形態のコントローラシステムを示すブロック図である。
【００３２】
図１に示すように、コントローラシステム１０は、マイクロプロセッサ１と、メモリ２とを有する。メモリ２内には、アプリケーションプログラム領域４、アプリケーションデータ領域５、システムプログラム領域６、アプリケーション位置登録テーブル７、等の各種データが記憶される。
【００３３】
マイクロプロセッサ１は、演算部３と、キャッシュメモリ８を有する。
なお、以下の説明では、キャッシュメモリとしてＬ２キャッシュ（Level2 Cache）を使用するが、ＣＰＵ（Central Processing Unit）のキャッシュ（処理装置と記憶装置の間の性能差を埋めるために使用する高速小容量メモリ）としては、容量を容易に増やすことが可能で、ＣＰＵの性能向上を可能とした任意のキャッシュを使用することができる。
【００３４】
アプリケーションプログラム領域４は、一般的に、複数のアプリケーションプログラム（図では、プログラムＡ、プログラムＢなど）の記憶領域である。アプリケーションデータ領域５は、各アプリケーションプログラムが実行時に使用する各種パラメータの記憶領域である。システムプログラム領域６は、アプリケーションプログラムの更新（ダウンロード）処理等のシステム処理を実行する各種プログラムの記憶領域である。なお、更新処理用システムプログラムは、更新対象プログラムの数等をチェックし、更新処理が規定の時間に収まるかどうかを判定する判定機能も備えているものとする。
【００３５】
ここで判定機能とは、メモリの性能の測定値とアプリケーションプログラムのステップ数（プログラム総容量）、コントローラの定周期（図１０参照）における更新処理に割ける時間（規定の時間）等より判定する。例えば、メモリへの書き込み速度ｍ（バイト／ｓｅｃ）、規定の時間をＴ（ｍｓｅｃ）、更新処理対象のアプリケーションプログラムの合計容量がａ（バイト）だとすると、Ｔ＞１０００ａ／ｍ（ｍｓｅｃ）を満たすときに規定の時間に収まると判定とする。実際には、判定自体に掛かる時間等の要因もあるが、メモリ書き込み速度に比べると十分に小さいものとみなすことができ、Ｔより小さい値を閾値に用いても良い。
【００３６】
アプリケーション位置登録テーブル７には、アプリケーションプログラム領域４に記憶される各アプリケーションプログラムのポインタ（先頭アドレス）が記憶される。例えば、アプリケーションプログラム領域４に記憶されるプログラムＡ、プログラムＢの各プログラムのポインタが、アプリケーション位置登録テーブル７に記憶されている。
【００３７】
図１のコントローラシステム１０は、アプリケーションプログラム領域４に記憶される各アプリケーションプログラムの実行と、システムプログラム領域６に記憶されるダウンロード等のシステム処理に対応する各システムプログラムの実行とをサイクリックに（定周期的に）繰り返す。
【００３８】
アプリケーションプログラムを実行するときには、マイクロプロセッサ１は、アプリケーション位置登録テーブル７を通して、アプリケーションプログラム領域４上の各アプリケーションプログラムの記憶位置を認識し、対象とするアプリケーションプログラムの各命令等を演算部３に読み込み実行する。なお、使用頻度の高いアプリケーションプログラムは、通常、キャッシュメモリ８上に記憶されているため、そこから演算部３に読み込み実行する。
【００３９】
システムプログラムを実行するときには、マイクロプロセッサ１は、システムプログラム領域６から対象とする（更新処理等の）システムプログラムの各命令等を演算部３に読み込み実行する。
【００４０】
図２は、本実施形態のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。このオンライン更新処理は支援ツール（不図示）からアプリケーションプログラムがダウンロードされると更新処理用システムプログラム（不図示）により実行される。このフローチャートの各ステップは、アプリケーションプログラムの実行期間の間の空き時間に、すなわち、アプリケーションプログラムの実行期間が終了したこと（アプリケーションプログラムのエンド）が検出される度に、断続的に実行される。
【００４１】
図２において、ステップＳ１で、ダウンロードされたアプリケーションプログラム（“ＡｐｐＰｒｏｇ”と表記することもある）がアプリケーションプログラム領域（マイクロプロセッサ１の外部にあることから「外部メモリ」ともいう）４に格納される。すなわち、更新指示に含まれる、オンライン更新以前に格納された既存のアプリケーションプログラムに対しては、更新の内容（再格納する）に従って上書き等の処理を行なう。
【００４２】
そして、更新指示に含まれる新規に追加するアプリケーションプログラムをアプリケーションプログラム領域４の空き領域に格納する。
また、外部メモリ４に対し全検索を実施し、キャッシュメモリ８には記憶されていて今回の更新指示では更新されないアプリケーションプログラム（更新せずキャッシュメモリ８に残るアプリケーションプログラム）を見つける。
【００４３】
そして、再格納（上書き）したアプリケーションプログラムと、外部メモリ４に対する検索処理により見つけられた、更新せずキャッシュメモリに残るアプリケーションプログラムと、新規追加するアプリケーションプログラムとを外部メモリ４上でアドレスが連続するように（複写などにより）再配置する。そして、複写元のアプリケーションプログラムおよび更新指示に削除するものとして指定されているアプリケーションプログラムを外部メモリ４から削除する。
【００４４】
上記で示した方法は一例に過ぎず、更新指示に含まれる新規に追加するアプリケーションプログラムを格納する時点で、アドレスが連続になるように配置してもよい。また、オンライン更新以前に格納された既存のアプリケーションプログラムを上書き更新せずに、新規に追加するアプリケーションプログラムとアドレスが連続になるように配置する（この段階では、新旧アプリケーションプログラムが共存する）。
【００４５】
その後、外部メモリ４に対し全検索を実施し、キャッシュメモリ８には記憶されていて今回の更新指示では更新されないアプリケーションプログラム（更新せずキャッシュメモリ８に残るアプリケーションプログラム）を見つける。
【００４６】
そして、外部メモリ４に対する検索処理により見つけられた、更新せずキャッシュメモリに残るアプリケーションプログラムを、一連の連続したアドレスして配置されているアプリケーションプログラムと外部メモリ４上でアドレスが連続するように（複写などにより）再配置する。
【００４７】
最後に、複写元のアプリケーションプログラム、更新指示に削除するものとして指定されているアプリケーションプログラム、更新指示で更新するものとして指定されているアプリケーションプログラムで上書きしなかっため残っているアプリケーションプログラム、を外部メモリ４から削除する。
【００４８】
続く、ステップＳ２では、キャッシュメモリ８内のアプリケーションプログラムをすべて無効化する。
ステップＳ２に続くステップＳ３では、外部メモリ４上で再配置された連続する各アプリケーションプログラム（新規追加したもの、変更したもの、今回は更新しないものを含む）をキャッシュメモリ８に格納する。
【００４９】
そして、続く、ステップＳ４において、アプリケーション位置登録テーブル７のポインタを書き換えることにより、旧アプリケーションプログラムから新アプリケーションプログラムへの切り替えが行なわれ、一連の処理を終了する。
【００５０】
図３は、ある更新指示に対して、第２の従来技術のコントローラシステムと、本実施形態のコントローラシステムの動作を比較して示した図である。
ここでは、コントローラシステム１０に対し、アプリケーションプログラムProg1削除、Prog4、Prog6、Prog10格納、Prog2再格納という指示内容を持つ更新指示が出た場合の、第２の従来技術のコントローラシステムと、本実施形態のコントローラシステムの動作を比較している。コントローラシステム１０の更新指示が出た時点での状態は、外部メモリ４に、Prog1、Prog2、Prog3、Prog5、Prog7、Prog8、Prog11、Prog12、Prog13が格納され、キャッシュメモリ８に、Prog1、Prog2、Prog3、Prog5が格納されている。
【００５１】
本実施形態のコントローラシステムでは、図２のステップＳ１に対応する処理として、外部メモリ４の連続した空き領域に、Prog4、Prog6、Prog10を格納し、Prog2をProg4、Prog6、Prog10と連続するように再格納する。そして、外部メモリ４上を全検索することにより、キャッシュメモリ８に格納されていて、今回オンライン更新しないプログラム（Prog3、Prog5）を見つける。そして、見つけたProg3、Prog5を、Prog4、Prog6、Prog10及びProg2にアドレスが連続するように、外部メモリ４内で複写を行い、複写したProg2、Prog3、Prog5について、その複写元の領域を外部メモリ４から削除するとともに、削除指示が出ているProg1を外部メモリ４から削除する。更に、再格納したことにより新旧共存しているProg2のうち、元から格納されていたProg2を外部メモリ４から削除する。
【００５２】
なお、このケースでは、更新指示に含まれるプログラムの数が多くて、更新時間が実行周期に影響を与えるものと判断されたと仮定する。
図２のステップＳ２に対応する処理として、キャッシュメモリ８に格納されている全アプリケーションプログラム（Prog1、Prog2、Prog3、Prog5）を削除せずに、キャッシュメモリ８の全領域を無効なアプリケーションとする。
【００５３】
図２のステップＳ３に対応する処理として、アドレスが連続するProg2、Prog4、Prog6、Prog10、Prog3、Prog5をキャッシュメモリ８に格納する。
続いて、第２の従来技術のコントローラシステムの動作を説明する。
【００５４】
第２の従来技術のコントローラシステムでは、図１０のステップＳ２１に対応する処理として、外部メモリ４内のProg1を削除し、Prog2を再格納し、Prog4、Prog6、Prog10を外部メモリ４内の空き領域に格納する。
【００５５】
次に、図１０のステップＳ２２に対応する処理として、キャッシュメモリ８に、今回の更新指示で変更対象になっているか、あるいは、削除対象になっているプログラムが存在するかどうかを判定している。そして、削除指示が出ているProg1、再格納により変更されたProg2の前のバージョンをキャッシュメモリ８から削除する。続いて、キャッシュメモリ８の格納先検索処理として空き領域を検索し、今回更新（変更）する既存のアプリケーションプログラム（Prog2）や、今回新規追加するアプリケーションプログラム（Prog4、Prog6、Prog10）をその検索された空き領域に格納する。
【００５６】
このように、本実施形態では、外部メモリ４上で、更新する（変更や新規追加の）アプリケーションプログラムおよび、キャッシュメモリ８に既に格納されオンライン更新しないアプリケーションプログラムをアドレスが連続するように再配置し、キャッシュメモリ８を無効化し、外部メモリ４上から再配置された連続するプログラム群をキャッシュメモリ８にすべて格納している。
【００５７】
このため、更新するアプリケーションプログラムの数が多くなった場合に時間がかかる処理となる、アプリケーションプログラムをキャッシュメモリ８に格納する際の格納先検索処理、今回の更新指示で変更対象になっているか、あるいは、削除対象になっているプログラムがキャッシュメモリ８に存在するかどうかの判定処理をなくすことができ、オンライン更新処理の一部としての、キャッシュメモリ８への格納処理に要する時間を短縮できる。
【００５８】
よって、キャッシュメモリ８への格納処理が延びたことに伴って、オンライン更新の前後での実行時間の定時性が維持できなくなることを避けることができ、更新するアプリケーションプログラムの数が多くなった場合でも、システム運用の定周期性を維持することができる。
【符号の説明】
【００５９】
１、１０１  マイクロプロセッサ
２、１０２  メモリ
３、１０３  演算部
４、１０４  アプリケーションプログラム領域
５、１０５  アプリケーションデータ領域
６、１０６  システムプログラム領域
７、１０７  アプリケーション位置登録テーブル
８、１１１  キャッシュメモリ
１０、１００、１１０  コントローラシステム
【図２】
2011014043.tif 000003
【図４】
2011014043.tif 000004
【図５】
2011014043.tif 000005
【図６】
2011014043.tif 000006
【図７】
2011014043.tif 000007
【図１０】
2011014043.tif 000008
【図１１】
2011014043.tif 000009
【図１】
2011014043.tif 000010
【図３】
2011014043.tif 000011
【図８】
2011014043.tif 000012
【図９】
2011014043.tif 000013