(57)【要約】      （修正有）【課題】キャッシュ上に読み出しデータがなくても読み出し性能が低下することはなく、所定の周期で動作する定周期アプリケーションにおいて所期の性能が得られる制御装置を提供する。【解決手段】保持変数を格納する揮発性メモリ６０と、揮発性メモリに格納された保持変数をコピーして格納する不揮発性メモリ２０と、電源投入時に揮発性メモリに格納されている保持変数を初期化するように制御する揮発性メモリデータ更新制御手段５０と、所定の周期で装置全体が動作するように制御するとともに所定の周期で揮発性メモリに前記保持変数の読み出し／書き込みを行う定周期動作制御手段１０と、定周期動作制御手段により揮発性メモリに最後に更新格納された保持変数を不揮発性メモリにコピーして格納するように制御する不揮発性メモリデータ更新制御手段７０、とで構成される。【選択図】図１
2017059009.tif 000002
【特許請求の範囲】
【請求項１】
保持変数を格納する揮発性メモリと、
前記揮発性メモリに格納された保持変数をコピーして格納する不揮発性メモリと、
電源投入時に前記揮発性メモリに格納されている保持変数を初期化するように制御する揮発性メモリデータ更新制御手段と、
所定の周期で装置全体が動作するように制御するとともに、所定の周期で前記揮発性メモリに前記保持変数の読み出し／書き込みを行う定周期動作制御手段と、
前記定周期動作制御手段により前記揮発性メモリに最後に更新格納された保持変数を前記不揮発性メモリにコピーして格納するように制御する不揮発性メモリデータ更新制御手段、
とで構成されていることを特徴とする制御装置。
【請求項２】
前記定周期動作制御手段は、前記不揮発性メモリデータ更新制御手段の機能を含むことを特徴とする請求項１に記載の制御装置。
【請求項３】
保持変数を格納する揮発性メモリと、
前記揮発性メモリに格納された保持変数をコピーして格納する不揮発性メモリと、
電源投入時に前記揮発性メモリに格納されている保持変数を初期化するように制御する揮発性メモリデータ更新制御手段と、
所定の周期で装置全体が動作するように制御するとともに、所定の周期で前記揮発性メモリに前記保持変数の読み出し／書き込みを行う定周期動作制御手段と、
前記定周期動作制御手段により前記揮発性メモリに最後に更新格納された保持変数を前記不揮発性メモリにコピーして格納するように制御する不揮発性メモリデータ更新制御手段と、
前記定周期動作制御手段により前記揮発性メモリに逐次書き込み記憶される保持変数を監視し、定周期処理の最後に更新された保持変数を前記不揮発性メモリに出力する揮発性メモリデータ監視手段、
とで構成されていることを特徴とする制御装置。
【請求項４】
前記定周期動作制御手段は、前記不揮発性メモリデータ更新制御手段の機能を含むことを特徴とする請求項３に記載の制御装置。
【請求項５】
前記定周期動作制御手段は、所定の周期で動作する定周期アプリケーションを動作させることを特徴とする請求項１から請求項４のいずれかに記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に関し、詳しくは、保持データに対するアクセスの高速化に関するものである。
【背景技術】
【０００２】
一般に、制御システムで用いられる制御装置では、所定の周期で動作する定周期アプリケーションを動作させることが多い。
【０００３】
図６は、従来から制御システムで用いられている制御装置の一例を示す構成ブロック図である。図６において、定周期動作制御部１０は所定の駆動周期（たとえば１００ｍｓ）で装置全体の動作を制御する。不揮発性メモリ２０は保持変数格納部として機能するもので、定周期動作制御部１０の所定の駆動周期に基づき、保持変数の書き込み／読み出しが行われる。
【０００４】
ここで、不揮発性メモリ２０のアクセス速度に注目すると、揮発性メモリよりも低速である。この揮発性メモリよりも低速な不揮発性メモリ２０のアクセス速度は、定周期動作制御部１０の駆動周期を決定する際のボトルネックとなる。
【０００５】
このようなボトルネックを解消するために、図７に示すように、定周期動作制御部１０と不揮発性メモリ２０との間に不揮発性のキャッシュメモリ３０を設けることも行われている。
【０００６】
定周期動作制御部１０と不揮発性メモリ２０との間に不揮発性のキャッシュメモリ３０を設けることにより、不揮発性メモリ２０のアクセス速度の高速化が実現できる。
【０００７】
ところが、不揮発性のキャッシュメモリ３０を用いると、時折、キャッシュミスヒットが発生することがあり、キャッシュミスヒットが発生するとデータ処理機能が低下することになる。
【０００８】
また、定周期動作制御部１０としては確実な所定の駆動周期に基づく動作が求められることから、キャッシュミスヒットの発生に伴うデータ処理機能の低下を前提として、定周期動作制御部１０の所定の駆動周期を設定しなければならない。
【０００９】
この結果、不揮発性メモリ２０のアクセス速度を高速化するためにキャッシュメモリ３０を用いているのにも拘わらず、キャッシュメモリ３０を用いることにより本来なら得られるはずの不揮発性メモリ２０のアクセス速度の高速化の効果が十分には得られないという課題もある。
【００１０】
特許文献１には、使用率や出現頻度には関係なく制御プログラムの特定処理を優先して高速に動かせるようにする技術が記載されている。
【００１１】
特許文献２には、キャッシュメモリにユーザーアプリケーションをロードしてロックすることにより、安定した制御周期の制御を実現する技術が記載されている。
【００１２】
非特許文献１には、キャッシュメモリへのデータの書き込みに関連する問題点と解決策について記載されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１３−７３３４４号公報
【特許文献２】特開２０１１−２５３２６７号公報
【非特許文献】
【００１４】
【非特許文献１】マイナビニュース［コラム］「コンピュータアーキテクチャの話  142  ライトスルーとライトバック」Hisa  Ando ［2008/12/15］［平成２７年８月２１日検索］インターネット＜URL:http://news.mynavi.jp/column/architecture/142/＞
【発明の開示】
【発明が解決しようとする課題】
【００１５】
非特許文献１にも記載されているように、キャッシュにデータを書き込むのにあたり、書き込んだアドレスでは、キャッシュライン上のデータとメインメモリ上にあるデータが異なることになり、この状態を放置しておくと、どちらのデータが正しいのか分からなくなってしまう。
【００１６】
この問題の解決法として、キャッシュへの書き込みと同時にメインメモリへも同じデータを書き込むライトスルー方式がある。
【００１７】
ライトスルー方式は、キャッシュへの書き込みにあたり、メインメモリにも同時に書き込み要求を出すように制御すればよく、制御は比較的簡単に行える。
【００１８】
また、ライトスルー方式では、ストア命令が実行されるたびにメインメモリへの書き込みが発生するので、性能はメインメモリへの書き込み時間で制約されることになる。
【００１９】
この制御が簡単という利点を活かして１次データキャッシュにはライトスルー方式を用い、２次キャッシュには以下に説明するライトバック方式を用いるプロセサも多い。
【００２０】
ライトバック方式は、メインメモリや２次キャッシュなどの下位のキャッシュへの書き込み頻度を減らす方法の一つであり、書き込みはキャッシュラインだけに対して行い、追い出しが必要になった時点で、キャッシュラインの内容をメインメモリに対して書き戻す。ライトバック方式の場合、書き込み時点ではその内容はメインメモリには反映されない。
【００２１】
ライトバック方式において追い出しが発生するまでのキャッシュラインへの書き込みに着目すると、まとめて1回の書き込みでメインメモリに反映される。ライトスルー方式と比較すると、メインメモリへの書き込み回数が減少することからメインメモリの書き込み性能が制約にはならず、性能を向上させやすい。
【００２２】
しかし、これらライトスルー方式やライトバック方式では、読み出しデータが必ずしもキャッシュ上にあるとは限らない。読み出しデータがキャッシュにないと読み出し性能が低下してしまい、所定の周期で動作する定周期アプリケーションにおける一定の性能を保証することは困難になる。
【００２３】
本発明は、このような課題を解決するものであり、その目的は、キャッシュ上に読み出しデータがなくても読み出し性能が低下することはなく、所定の周期で動作する定周期アプリケーションにおいて所期の性能が得られる制御装置を実現することにある。
【課題を解決するための手段】
【００２４】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
保持変数を格納する揮発性メモリと、
前記揮発性メモリに格納された保持変数をコピーして格納する不揮発性メモリと、
電源投入時に前記揮発性メモリに格納されている保持変数を初期化するように制御する揮発性メモリデータ更新制御手段と、
所定の周期で装置全体が動作するように制御するとともに、所定の周期で前記揮発性メモリに前記保持変数の読み出し／書き込みを行う定周期動作制御手段と、
前記定周期動作制御手段により前記揮発性メモリに最後に更新格納された保持変数を前記不揮発性メモリにコピーして格納するように制御する不揮発性メモリデータ更新制御手段、
とで構成されていることを特徴とする制御装置である。
【００２５】
請求項２記載の発明は、請求項１に記載の制御装置において、
前記定周期動作制御手段は、前記不揮発性メモリデータ更新制御手段の機能を含むことを特徴とする。
【００２６】
請求項３記載の発明は、
保持変数を格納する揮発性メモリと、
前記揮発性メモリに格納された保持変数をコピーして格納する不揮発性メモリと、
電源投入時に前記揮発性メモリに格納されている保持変数を初期化するように制御する揮発性メモリデータ更新制御手段と、
所定の周期で装置全体が動作するように制御するとともに、所定の周期で前記揮発性メモリに前記保持変数の読み出し／書き込みを行う定周期動作制御手段と、
前記定周期動作制御手段により前記揮発性メモリに最後に更新格納された保持変数を前記不揮発性メモリにコピーして格納するように制御する不揮発性メモリデータ更新制御手段と、
前記定周期動作制御手段により前記揮発性メモリに逐次書き込み記憶される保持変数を監視し、定周期処理の最後に更新された保持変数を前記不揮発性メモリに出力する揮発性メモリデータ監視手段、
とで構成されていることを特徴とする制御装置である。
【００２７】
請求項４記載の発明は、請求項３に記載の制御装置において、
前記定周期動作制御手段は、前記不揮発性メモリデータ更新制御手段の機能を含むことを特徴とする。
【００２８】
請求項５記載の発明は、請求項１から請求項４のいずれかに記載の制御装置において、
前記定周期動作制御手段は、所定の周期で動作する定周期アプリケーションを動作させることを特徴とする。
【発明の効果】
【００２９】
このような構成によれば、キャッシュ上に読み出しデータがなくても一定の読み出し性能を得ることができ、書き込み動作は所定の周期でのみ実行するので書き込みの負荷を軽減できる。
【００３０】
そして、読み出し性能に対して書き込み性能が劣る装置であっても、高速な読み出し処理と必要最低限の書き込み処理を可能にすることにより、所定の周期で動作する定周期アプリケーションにおいて所期の性能が得られる制御装置を実現できる。
【図面の簡単な説明】
【００３１】
【図１】本発明に基づく制御装置の具体例を示す構成ブロック図である。
【図２】図１の動作の流れを説明するフローチャートである。
【図３】図２のフローチャートにおけるデータ更新チェックの動作説明図である。
【図４】本発明の他の実施例を示す構成ブロック図である。
【図５】図４の動作の流れを説明するフローチャートである。
【図６】従来から制御システムで用いられている制御装置の一例を示す構成ブロック図である。
【図７】従来から制御システムで用いられている制御装置の他の例を示す構成ブロック図である。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。図１は本発明に基づく制御装置の具体例を示す構成ブロック図であり、図６および図７と共通する部分には同一の符号を付けている。
【００３３】
図１において、電源部４０は、制御装置の各部に所定の駆動電源を供給する。
【００３４】
データ初期部５０は、電源部４０に電源が投入されたことを検出すると、揮発性メモリ６０に記憶されているデータを初期化する。
【００３５】
揮発性メモリ６０は、たとえばＤＲＡＭで構成されたものであり、データ初期部５０によりデータが初期化された後は定周期動作制御部１０に基づいて制御され、所定の駆動周期（たとえば１００ｍｓ）で不揮発性メモリ２０に対して読み出し／書き込みされる保持変数を一時的に保持する。
【００３６】
不揮発性メモリデータ更新制御部７０は、定周期動作制御部１０により逐次更新されて揮発性メモリ６０に格納される保持変数の変化／差分を監視し、最後に更新されて揮発性メモリ６０に記憶された保持変数を確認すると、その保持変数を不揮発性メモリ２０に書き込み更新する。
【００３７】
図２は、図１のように構成される制御装置の動作の流れを説明するフローチャートである。図２において、電源部４０に電源が投入されと（ステップＳ１）、データ初期部５０により、揮発性メモリ６０に記憶されているデータは初期化される（ステップＳ２）。
【００３８】
電源投入後は、前述のように定周期動作制御部１０に基づき所定の周期で動作するように制御され（ステップＳ３）、揮発性メモリ６０には定周期動作制御部１０の所定周期の動作に基づくデータが逐次更新格納される（ステップＳ４）。
【００３９】
不揮発性メモリデータ更新制御部７０は、定周期動作制御部１０から揮発性メモリ６０を介して不揮発性メモリ２０に転送される保持変数を監視する。定周期動作制御部１０から出力されるデータが前の周期から更新された保持変数であることを確認すると、その更新された保持変数を不揮発性メモリ２０に出力して（ステップＳ５）、不揮発性メモリ２０のデータを更新し（ステップＳ６）、不揮発性メモリ２０のデータを更新した後はステップＳ３以降の監視動作を繰り返して実行する。ステップＳ５で前の周期から更新されたデータが存在しないことを確認すると、ステップＳ３以降の監視動作を繰り返して実行する。
【００４０】
図３は、図2のステップＳ５における「前の周期から更新されたデータは存在するか？」のデータ更新チェックの動作説明図である。（ａ）は前の周期で所定の処理を実行した後にテーブル１に格納される保持変数Ｖ１〜Ｖ９を示し、（ｂ）は今回の周期で所定の処理を実行した後にテーブル２に格納される保持変数Ｖ１〜Ｖ９を示している。
【００４１】
不揮発性メモリデータ更新制御部７０は、定周期動作制御部１０により今回の周期で所定の処理が実行された後にテーブル１とテーブル２を比較して、更新された保持変数を抽出する。図３の例では、Ｖ１とＶ６とＶ９を更新された保持変数として抽出する。
【００４２】
そして、不揮発性メモリデータ更新制御部７０は、これらの抽出結果に基づいて、不揮発性メモリ２０に格納されている保持変数Ｖ１とＶ６とＶ９の値を、それぞれＶ１’とＶ６’とＶ９’に更新する。
【００４３】
図１および図２の説明から明らかなように、図１の構成によれば、保持変数へのアクセスは揮発性メモリ６０に対して実行されるので、読み出し性能を一定にでき、不揮発データの保存におけるアクセス処理の高速化が実現できる。
【００４４】
そして、全ての保持変数が揮発性メモリ６０上に格納保持されるため、従来のようなキャッシュミスヒットが発生してデータ処理機能が低下することはなく、所定の周期で動作する定周期アプリケーションを実行処理するのにあたり、安定した状態で所期の性能を得ることができる。
【００４５】
また、書き込み動作は所定の駆動周期でしか行われないため、書き込みの負荷を軽減できる。
【００４６】
また、読み出し性能に比べて書き込み性能が極端に劣るデバイスの場合には、高速な読み出し処理と必要最低限の書き込み処理を行うことにより、読み出し動作と書き込み動作を組み合わせた全体の性能の最大化を図ることができる。
【００４７】
なお、本発明で対象とする保持変数は制御装置で制御対象とする制御データに限るものではなく、たとえば制御装置の動作状態を記録するログ情報などであってもよい。
【００４８】
図４は本発明の他の実施例を示す構成ブロック図であり、図１と共通する部分には同一の符号を付けている。図１と図４の相違点は、図４には揮発性メモリ６０と不揮発性メモリ２０の間に揮発性メモリデータ監視部８０が設けられていることと、不揮発性メモリデータ更新制御部７０に代えて不揮発性メモリ制御部９０が設けられていることである。
【００４９】
揮発性メモリデータ監視部８０には、定周期動作制御部１０から揮発性メモリ６０に逐次書き込み記憶される保持変数が入力されるとともに、揮発性メモリ６０から不揮発性メモリ２０に転送される保持変数も入力されている。
【００５０】
揮発性メモリデータ監視部８０は、図１の不揮発性メモリデータ更新制御部７０が有する機能のうち、揮発性メモリ６０に格納される保持変数の変化を監視する機能を分離して機能ブロックとして独立させたものである。
【００５１】
揮発性メモリデータ監視部８０は、定周期動作制御部１０から最後に更新されて揮発性メモリ６０に記憶された保持変数であることを確認すると、その確認結果を定周期動作制御部１０に通知するとともに、揮発性メモリ６０に記憶された保持変数を不揮発性メモリ２０に出力する。
【００５２】
不揮発性メモリ制御部９０は、図１の不揮発性メモリデータ更新制御部７０から揮発性メモリ６０に格納される保持変数の変化を監視する機能が分離除去されたものであり、揮発性メモリデータ監視部８０を介して揮発性メモリ６０から不揮発性メモリ２０に出力された保持変数を、定周期動作制御部１０の制御に基づいて不揮発性メモリ２０に書き込み更新する。
【００５３】
図５は、図４のように構成される制御装置の動作の流れを説明するフローチャートである。図４において、電源部４０に電源が投入されと（ステップＳ１）、データ初期部５０により、揮発性メモリ６０に記憶されているデータは初期化される（ステップＳ２）。
【００５４】
電源投入後は、定周期動作制御部１０に基づいて動作するように制御され（ステップＳ３）、揮発性メモリ６０には定周期動作制御部１０の動作に基づくデータが逐次更新格納される（ステップＳ４）。
【００５５】
揮発性メモリデータ監視部８０は、定周期動作制御部１０により逐次更新されて揮発性メモリ６０に格納される保持変数の変化／差分を監視する。
【００５６】
そして、定周期動作制御部１０から出力されるデータが前の周期から更新されて揮発性メモリ６０に記憶された保持変数であることを確認すると（ステップＳ５）、その差分データを抽出して（ステップＳ６）、不揮発性メモリ制御部９０に出力する（ステップＳ７）。
【００５７】
不揮発性メモリ制御部９０は、揮発性メモリデータ監視部８０を介して揮発性メモリ６０から不揮発性メモリ２０に出力された保持変数を不揮発性メモリ２０に書き込み更新する（ステップＳ８）。不揮発性メモリ２０の書き込み更新後は、ステップＳ３以降の監視動作を繰り返して実行する。
【００５８】
図４の構成によれば、図１を構成する不揮発性メモリデータ更新制御部７０が有する機能を、揮発性メモリ６０に格納される保持変数の変化を監視する揮発性メモリデータ監視部８０と不揮発性メモリ２０を制御する不揮発性メモリ制御部９０とに分割して設けているので、これら揮発性メモリデータ監視部８０と不揮発性メモリ制御部９０の点検や調整などを個別に効率よく行うことができる。
【００５９】
以上説明したように、本発明によれば、キャッシュ上に読み出しデータがなくても読み出し性能が低下することはなく、所定の周期で動作する定周期アプリケーションにおいて所期の性能が得られる制御装置を実現することができ、各種の制御システムで用いられる制御装置として好適である。
【符号の説明】
【００６０】
１０  定周期動作制御部
２０  不揮発性メモリ
４０  電源部
５０  データ初期部
６０  揮発性メモリ
７０  不揮発性メモリデータ更新制御部
８０  揮発性メモリデータ監視部
９０  不揮発性メモリ制御部
【図１】
2017059009.tif 000003
【図２】
2017059009.tif 000004
【図３】
2017059009.tif 000005
【図４】
2017059009.tif 000006
【図５】
2017059009.tif 000007
【図６】
2017059009.tif 000008
【図７】
2017059009.tif 000009