(57)【要約】  装置は、第１のメモリ（２１２、２１４）及び第２のメモリ（３２６）を含む複数のメモリを有するコンピューティングアーキテクチャ（２００、３００）を含む。複数のメモリは、第１のコピー（２１６ａ、３２８ａ）及び第２のコピー（２１６ｂ、３２８ｂ）を含むメモリイメージの複数のコピーを格納するように構成され、メモリイメージは、コンピューティングアーキテクチャによって実行される命令、及びコンピューティングアーキテクチャによって使用されるデータを収める。コンピューティングアーキテクチャは、第１の機能及び第２の機能を含む複数の機能を実行するように構成されることが可能である。第１のメモリは、第１の機能にとってより効率的な第１のポジションにメモリイメージの第１のコピーが位置するように、コンピューティングアーキテクチャ内に置かれることが可能である。第２のメモリは、第２の機能にとってより効率的な第２のポジションにメモリイメージの第２のコピーが位置するように、コンピューティングアーキテクチャ内に置かれることが可能である。
2019511772.tif 000002
【特許請求の範囲】
【請求項１】
第１のメモリ（２１２、２１４）及び第２のメモリ（３２６）を含む複数のメモリを備えるコンピューティングアーキテクチャ（２００、３００）を備える装置であって、
前記複数のメモリが、第１のコピー（２１６ａ、３２８ａ）及び第２のコピー（２１６ｂ、３２８ｂ）を含むメモリイメージの複数のコピーを格納するように構成され、前記メモリイメージが、前記コンピューティングアーキテクチャによって実行される命令、及び前記コンピューティングアーキテクチャによって使用されるデータを収める、装置。
【請求項２】
前記コンピューティングアーキテクチャは、第１の機能及び第２の機能を含む複数の機能を実行するように構成され、
前記第１のメモリは、前記第１の機能にとってより効率的な第１のポジションに前記メモリイメージの前記第１のコピーが位置するように、前記コンピューティングアーキテクチャ内に置かれ、
前記第２のメモリは、前記第２の機能にとってより効率的な第２のポジションに前記メモリイメージの前記第２のコピーが位置するように、前記コンピューティングアーキテクチャ内に置かれる、
請求項１に記載の装置。
【請求項３】
前記コンピューティングアーキテクチャは、命令実行機能及び入力／出力機能を含む複数の機能を実行するように構成される、請求項１に記載の装置。
【請求項４】
前記コンピューティングアーキテクチャが、
前記命令実行機能を実行するように構成された少なくとも１つの処理デバイス（２０４）であって、前記第１のメモリは、前記少なくとも１つの処理デバイスにより近い又はその内部にあるメモリを備える、処理デバイス（２０４）と、
前記入力／出力機能を実行するように構成された通信インタフェース（２０８）及び入力／出力インタフェース（２１０）のうちの少なくとも１つであって、前記第２のメモリは、前記通信インタフェース及び前記入力／出力インタフェースのうちの少なくとも１つにより近い又はその内部にあるメモリを備える、通信インタフェース（２０８）及び入力／出力インタフェース（２１０）のうちの少なくとも１つと
をさらに備える、請求項３に記載の装置。
【請求項５】
前記コンピューティングアーキテクチャが、
前記命令実行機能を実行するように構成された命令エミュレータ（３１２）を実行するように構成された少なくとも１つの処理デバイス（２０４）であって、前記第１のメモリは、前記命令エミュレータにより近い又はその内部にあるメモリを備える、処理デバイス（２０４）と、
ネットワーク（３０６）で通信し、前記入力／出力機能を実行するように構成されたインタフェースカード（３０４）であって、前記第２のメモリは、前記インタフェースカードにより近い又はその内部にあるメモリを備える、インタフェースカード（３０４）と
をさらに備える、請求項３に記載の装置。
【請求項６】
コンピューティングアーキテクチャ（２００、３００）の複数のメモリ内に第１のコピー（２１６ａ、３２８ａ）及び第２のコピー（２１６ｂ、３２８ｂ）を含むメモリイメージの複数のコピーを格納するステップ（４０２）であって、前記複数のメモリが、第１のメモリ（２１２、２１４）及び第２のメモリ（３２６）を含み、前記メモリイメージが、前記コンピューティングアーキテクチャによって実行される命令、及び前記コンピューティングアーキテクチャによって使用されるデータを収める、ステップ（４０２）と、
前記メモリイメージの前記複数のコピーを使用して、前記コンピューティングアーキテクチャの複数の機能を実行するステップであって、前記複数の機能が、前記メモリイメージの前記第１のコピーを使用する第１の機能、及び前記メモリイメージの前記第２のコピーを使用する第２の機能を含む、ステップと
を含む、方法。
【請求項７】
前記第１のメモリ及び第２のメモリに対して、前記第１及び第２の機能に関連した読取及び書込メモリアクセス要求を指示するステップ（４０６、４１０）
をさらに備える、請求項６に記載の方法。
【請求項８】
前記読取及び書込メモリアクセス要求を指示するステップは、
前記第１のメモリに対して、前記第１の機能に関連した前記読取メモリアクセス要求を指示するステップ、並びに前記第１及び第２のメモリに対して、前記第１の機能に関連した前記書込メモリアクセス要求を指示するステップと、
前記第２のメモリに対して、前記第２の機能に関連した前記読取メモリアクセス要求を指示するステップ、並びに前記第１及び第２のメモリに対して、前記第２の機能に関連した前記書込メモリアクセス要求を指示するステップと
を含む、請求項７に記載の方法。
【請求項９】
前記読取及び書込メモリアクセス要求を指示するステップは、各メモリアクセス要求に対して、
前記メモリアクセス要求に関連した前記メモリイメージの一部を識別するステップと、
前記メモリイメージの前記識別された部分に基づいて、前記メモリイメージの前記複数のコピーの１つに対して、前記メモリアクセス要求を指示するステップと
を含む、請求項７に記載の方法。
【請求項１０】
前記読取及び書込メモリアクセス要求を指示するステップは、各メモリアクセス要求に対して、
前記メモリアクセス要求を複数のカテゴリの１つに分類するステップと、
前記分類に基づいて前記メモリイメージの前記複数のコピーの１つを選択するステップと、
前記メモリイメージの前記選択されたコピーに対して、前記メモリアクセス要求を指示するステップと、
直接、又はオフセットを使用して、前記メモリイメージの前記選択されたコピー内のメモリの一部にアクセスするステップと
を含む、請求項７に記載の方法。
【請求項１１】
命令を実行するように構成された少なくとも１つの処理デバイス（２０４）と、
ネットワーク（３０６）で通信し、前記少なくとも１つの処理デバイスと通信するように構成されたインタフェースカード（３０４）と、
第１のメモリ（２１２、２１４）及び第２のメモリ（３２６）を含む複数のメモリであって、前記複数のメモリが、メモリイメージの複数のコピー（２１６ａ〜２１６ｂ、３２８ａ〜３２８ｂ）を格納するように構成され、前記メモリイメージが、前記少なくとも１つの処理デバイスによって実行される命令、及び前記少なくとも１つの処理デバイスによって使用されるデータを収める、複数のメモリと
を備える装置であって、
前記第１のメモリが、前記少なくとも１つの処理デバイスにより接近して又はその内部に位置し、前記メモリイメージの前記コピー（２１６ａ、３２８ａ）の１番目を格納するように構成され、前記少なくとも１つの処理デバイスが、前記メモリイメージの前記第１のコピーを使用して、前記命令を実行するように構成され、
前記第２のメモリが、前記インタフェースカードの内部に位置し、前記メモリイメージの前記コピー（２１６ｂ、３２８ｂ）の２番目を格納するように構成され、前記インタフェースカードが、前記メモリイメージの前記第２のコピーを使用して、前記ネットワークとの間でデータのやり取りを行うように構成される、装置。
【請求項１２】
前記少なくとも１つの処理デバイスは、カーネルエミュレータ（３１０）、命令エミュレータ（３１２）、及び入力／出力エミュレータ（３１４）を実行するように構成され、前記命令エミュレータは、前記メモリイメージの前記第１のコピーを使用して、前記命令を実行するように構成される、請求項１１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、概して、コンピューティングデバイスを対象とする。より詳細には、本開示は、効率的な同時使用のためのメモリイメージの複製を対象とする。
【背景技術】
【０００２】
[0002]産業用プロセス制御及び自動化システムは、大規模かつ複雑な産業用プロセスを自動化するために使用されることが多い。これらのタイプのシステムは、ごく普通に、センサ、アクチュエータ（ａｃｔｕａｔｏｒ）、及びコントローラを含む。コントローラは、通常、センサから測定値を受信し、アクチュエータ用の制御信号を生成する。しばしば、コントローラ又は他のコンピューティングデバイスは、コンピューティングデバイスによって実行される処理命令とコンピューティングデバイスによって使用されるデータの両方を収めるメモリイメージを使用する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0003]本開示は、効率的な同時使用のためのメモリイメージの複製に関する。
【課題を解決するための手段】
【０００４】
[0004]第１の実施形態において、装置は、第１のメモリ及び第２のメモリを含む複数のメモリを有するコンピューティングアーキテクチャを含む。複数のメモリは、第１のコピー及び第２のコピーを含むメモリイメージの複数のコピーを格納するように構成され、メモリイメージは、コンピューティングアーキテクチャによって実行される命令、及びコンピューティングアーキテクチャによって使用されるデータを収める。
【０００５】
[0005]第２の実施形態において、方法は、コンピューティングアーキテクチャの複数のメモリ内に第１のコピー及び第２のコピーを含むメモリイメージの複数のコピーを格納することを含む。複数のメモリは、第１のメモリ及び第２のメモリを含む。メモリイメージは、コンピューティングアーキテクチャによって実行される命令、及びコンピューティングアーキテクチャによって使用されるデータを収める。方法は、メモリイメージの複数のコピーを使用して、コンピューティングアーキテクチャの複数の機能を実行することも含む。複数の機能は、メモリイメージの第１のコピーを使用する第１の機能、及びメモリイメージの第２のコピーを使用する第２の機能を含む。
【０００６】
[0006]第３の実施形態において、装置は、命令を実行するように構成された少なくとも１つの処理デバイスを含む。装置は、ネットワークで通信し、少なくとも１つの処理デバイスと通信するように構成されたインタフェースカードも含む。装置は、第１のメモリ及び第２のメモリを含む複数のメモリをさらに含む。複数のメモリは、メモリイメージの複数のコピーを格納するように構成され、メモリイメージは、少なくとも１つの処理デバイスによって実行される命令、及び少なくとも１つの処理デバイスによって使用されるデータを収める。第１のメモリは、少なくとも１つの処理デバイスにより接近して又はその内部に位置し、メモリイメージのコピーの１番目を格納するように構成され、少なくとも１つの処理デバイスは、メモリイメージの第１のコピーを使用して、命令を実行するように構成される。第２のメモリは、インタフェースカードの内部に位置し、メモリイメージのコピーの２番目を格納するように構成され、インタフェースカードは、メモリイメージの第２のコピーを使用して、ネットワークとの間でデータを転送するように構成される。
【０００７】
[0007]その他の技術上の特徴は、以下の図面、発明を実施するための形態、及び特許請求の範囲から、当業者には容易に明らかになるであろう。
[0008]本開示のより十分な理解のために、次に、以下の添付図面と併せて取り上げられる、以下の発明を実施するための形態に対して参照が行われる。
【図面の簡単な説明】
【０００８】
【図１】[0009]本開示による、例示的な産業用プロセス制御及び自動化システムを示す図である。
【図２】[0010]本開示による、効率的な同時使用のためのメモリイメージの複製をサポートする例示的なコンピューティングデバイスを示す図である。
【図３】[0011]本開示による、効率的な同時使用のためのメモリイメージの複製をサポートするコンピューティングデバイスの具体的な例を示す図である。
【図４】[0012]本開示による、効率的な同時使用のためのメモリイメージの複製の例示的な方法を示す図である。
【発明を実施するための形態】
【０００９】
[0013]以下に述べられる図１〜４、また本特許書類において本発明の原理を説明するために使用される様々な実施形態は、単に例示としてのものであり、どのような形であれ本発明の範囲を限定するものとして解釈されるべきではない。本発明の原理が、任意のタイプの適切に構成されたデバイス又はシステムにおいて実施され得る、ということが当業者であれば理解するであろう。
【００１０】
[0014]図１は、本開示による、例示的な産業用プロセス制御及び自動化システム１００を示す図である。図１に示されるように、システム１００は、少なくとも１つの製品又はその他の材料（ｍａｔｅｒｉａｌ）の生産又は処理を容易にする様々な構成要素を含む。例えば、システム１００は、本明細書では、１つ又は複数のプラント１０１ａ〜１０１ｎ内の構成要素にわたる制御を容易にするために使用される。各プラント１０１ａ〜１０１ｎは、少なくとも１つの製品又はその他の材料を生産するための１つ又は複数の製造設備などの、１つ又は複数の処理設備（又は、その１つ又は複数の部分）に相当する。一般に、各プラント１０１ａ〜１０１ｎは、１つ又は複数のプロセスを実装してもよく、個別に又はまとめてプロセスシステムと呼ばれることが可能である。プロセスシステムは、一般に、１つ又は複数の製品又はその他の材料を何らかの方法で処理するように構成された、任意のシステム又はその一部に相当する。
【００１１】
[0015]図１では、システム１００は、プロセス制御のパデュー（Ｐｕｒｄｕｅ）モデルを使用して実装される。パデューモデルでは、「レベル０」は、１つ又は複数のセンサ１０２ａと１つ又は複数のアクチュエータ１０２ｂを含み得る。センサ１０２ａ及びアクチュエータ１０２ｂは、多種多様な機能のいずれかを実行することが可能な、プロセスシステム内の構成要素に相当する。例えば、センサ１０２ａは、温度、圧力、又は流量などのプロセスシステムにおける多種多様な特性を測定することができる。また、アクチュエータ１０２ｂは、プロセスシステムにおける多種多様な特性を修正することができる。センサ１０２ａ及びアクチュエータ１０２ｂは、任意の適切なプロセスシステム内の任意のその他の又は追加の構成要素に相当することができる。センサ１０２ａのそれぞれは、プロセスシステムにおける１つ又は複数の特性を測定するのに適した任意の構造を含む。アクチュエータ１０２ｂのそれぞれは、プロセスシステムにおける１つもしくは複数の条件下で動作するのに、又は１つもしくは複数の条件に影響を及ぼすのに適した任意の構造を含む。
【００１２】
[0016]少なくとも１つのネットワーク１０４は、センサ１０２ａとアクチュエータ１０２ｂに結合される。ネットワーク１０４は、センサ１０２ａ及びアクチュエータ１０２ｂとの相互作用を容易にする。例えば、ネットワーク１０４は、センサ１０２ａからの測定データを伝送し、制御信号をアクチュエータ１０２ｂに提供することができる。ネットワーク１０４は、任意の適切なネットワーク又はネットワークの組合せに相当することができる。特定の例として、ネットワーク１０４は、イーサネットネットワーク、電気信号ネットワーク（ＨＡＲＴ又はＦＯＵＮＤＡＴＩＯＮ  Ｆｉｅｌｄｂｕｓネットワークなど）、空気制御信号ネットワーク、又は任意のその他のもしくは追加型のネットワークに相当することができる。
【００１３】
[0017]パデューモデルでは、「レベル１」は、ネットワーク１０４に結合される１つ又は複数のコントローラ１０６ａ〜１０６ｂを含み得る。コントローラ１０６ａ〜１０６ｂのそれぞれは、特に、１つ又は複数のセンサ１０２ａからの測定値を使用して、１つ又は複数のアクチュエータ１０２ｂの動作を制御し得る。例えば、各コントローラ１０６ａ〜１０６ｂは、１つ又は複数のセンサ１０２ａから測定データを受信し、その測定データを使用して、１つ又は複数のアクチュエータ１０２ｂ用の制御信号を生成することができる。複数のコントローラ１０６ａ〜１０６ｂは、１次コントローラとして、１つのコントローラ１０６ａが動作する一方で、（１次コントローラと同期し、１次コントローラの障害の際に１次コントローラを引き継ぐことができる）バックアップコントローラとして、もう１つのコントローラ１０６ｂが動作するときなどの、冗長な構成で動作することもできる。各コントローラ１０６ａ〜１０６ｂは、１つ又は複数のセンサ１０２ａと相互作用し、かつ１つ又は複数のアクチュエータ１０２ｂを制御するのに適した任意の構造を含む。各コントローラ１０６ａ〜１０６ｂは、例えば、ロバスト多変数予測制御テクノロジー（ＲＭＰＣＴ：Ｒｏｂｕｓｔ  Ｍｕｌｔｉｖａｒｉａｂｌｅ  Ｐｒｅｄｉｃｔｉｖｅ  Ｃｏｎｔｒｏｌ  Ｔｅｃｈｎｏｌｏｇｙ）コントローラ、又はモデル予測制御（ＭＰＣ：Ｍｏｄｅｌ  Ｐｒｅｄｉｃｔｉｖｅ  Ｃｏｎｔｒｏｌ）もしくはその他の先進的予測制御（ＡＰＣ：Ａｄｖａｎｃｅｄ  Ｐｒｅｄｉｃｔｉｖｅ  Ｃｏｎｔｒｏｌ）を実装するその他のタイプのコントローラなどの多変数コントローラに相当する可能性がある。特定の例として、各コントローラ１０６ａ〜１０６ｂは、リアルタイムオペレーティングシステムを実行するコンピューティングデバイスに相当することができる。
【００１４】
[0018]２つのネットワーク１０８は、コントローラ１０６ａ〜１０６ｂに結合される。ネットワーク１０８は、コントローラ１０６ａ〜１０６ｂとの間でデータのやり取りを行うなどによって、コントローラ１０６ａ〜１０６ｂとの相互作用を容易にする。ネットワーク１０８は、任意の適切なネットワーク又はネットワークの組合せに相当することができる。特定の例として、ネットワーク１０８は、ハネウェル・インターナショナル社（Ｈｏｎｅｙｗｅｌｌ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｉｎｃ．）からのフォルトトレラントイーサネット（ＦＴＥ：Ｆａｕｌｔ  Ｔｏｌｅｒａｎｔ  Ｅｔｈｅｒｎｅｔ）ネットワークなどの、１つのペアのイーサネットネットワーク又は冗長ペアのイーサネットネットワークに相当することができる。
【００１５】
[0019]少なくとも１つのスイッチ／ファイアウォール１１０は、ネットワーク１０８を、２つのネットワーク１１２に結合する。このスイッチ／ファイアウォール１１０は、１つのネットワークからのトラフィックを、もう一方のネットワークに伝送し得る。スイッチ／ファイアウォール１１０はまた、１つのネットワーク上のトラフィックが、もう一方のネットワークに達することを阻止し得る。スイッチ／ファイアウォール１１０は、ハネウェル制御ファイアウォール（ＣＦ９）デバイスなどの、ネットワーク間での通信を提供するのに適した任意の構造を含む。ネットワーク１１２は、１つのペアのイーサネットネットワーク又はＦＴＥネットワークなどの任意の適切なネットワークに相当することができる。
【００１６】
[0020]パデューモデルにおいて、「レベル２」は、ネットワーク１１２に結合された１つ又は複数の機械レベルのコントローラ１１４を含み得る。機械レベルのコントローラ１１４は、特定の産業用機器（ボイラ又はその他の機械など）に関連付けられることが可能な、コントローラ１０６ａ〜１０６ｂ、センサ１０２ａ、及びアクチュエータ１０２ｂの動作及び制御をサポートするために、様々な機能を実行する。例えば、機械レベルのコントローラ１１４は、センサ１０２ａからの測定データ又はアクチュエータ１０２ｂ用の制御信号などの、コントローラ１０６ａ〜１０６ｂによって収集又は生成された情報のログを作成することができる。機械レベルのコントローラ１１４は、コントローラ１０６ａ〜１０６ｂの動作を制御し、それによってアクチュエータ１０２ｂの動作を制御するアプリケーションを実行することもできる。さらに、機械レベルのコントローラ１１４は、コントローラ１０６ａ〜１０６ｂへのセキュアなアクセスを提供することができる。機械レベルのコントローラ１１４のそれぞれは、１つの機械もしくはその他の個々の機器へのアクセス、それらの制御、又はそれらに関する動作を提供するのに適した任意の構造を含む。機械レベルのコントローラ１１４のそれぞれは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムを実行するサーバコンピューティングデバイスに相当することができる。図示されていないが、種々の機械レベルのコントローラ１１４が、プロセスシステム内の種々の機器を制御するために使用され得る（この場合、各機器は、１つ又は複数のコントローラ１０６ａ〜１０６ｂ、センサ１０２ａ、及びアクチュエータ１０２ｂに関連付けられる）。
【００１７】
[0021]１つ又は複数のオペレータステーション１１６は、ネットワーク１１２に結合される。オペレータステーション１１６は、機械レベルのコントローラ１１４へのユーザアクセスを提供し、それによって、コントローラ１０６ａ〜１０６ｂ（また、場合によっては、センサ１０２ａ及びアクチュエータ１０２ｂ）へのユーザアクセスを提供することのできる、コンピューティングデバイス又は通信デバイスに相当する。特定の例として、オペレータステーション１１６は、ユーザに、コントローラ１０６ａ〜１０６ｂ及び／又は機械レベルのコントローラ１１４によって収集された情報を使用して、センサ１０２ａ及びアクチュエータ１０２ｂの動作上の履歴を閲覧することを可能にさせることができる。オペレータステーション１１６は、ユーザに、センサ１０２ａ、アクチュエータ１０２ｂ、コントローラ１０６ａ〜１０６ｂ、又は機械レベルのコントローラ１１４の動作を調整することを可能にさせることもできる。さらに、オペレータステーション１１６は、コントローラ１０６ａ〜１０６ｂ又は機械レベルのコントローラ１１４によって生成された、警告、警報、又はその他のメッセージもしくは表示を受信し、表示することができる。オペレータステーション１１６のそれぞれは、システム１００内の１つ又は複数の構成要素のユーザアクセス及び制御をサポートするのに適した任意の構造を含む。オペレータステーション１１６のそれぞれは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムを実行するコンピューティングデバイスに相当することができる。
【００１８】
[0022]少なくとも１つのスイッチ／ファイアウォール１１８は、ネットワーク１１２を２つのネットワーク１２０に結合する。このスイッチ／ファイアウォール１１８は、セキュアなスイッチ又は組合せスイッチ／ファイアウォールなどの、ネットワーク間での通信を提供するのに適した任意の構造を含む。ネットワーク１２０は、１つのペアのイーサネットネットワーク又はＦＴＥネットワークなどの任意の適切なネットワークに相当することができる。
【００１９】
[0023]パデューモデルにおいて、「レベル３」は、ネットワーク１２０に結合された１つ又は複数のユニットレベルのコントローラ１２２を含み得る。各ユニットレベルのコントローラ１２２は、通常、１つのプロセスの少なくとも一部を実装するために共に動作する種々の機械の集合体に相当する、プロセスシステム内の１つのユニットに関連付けられる。ユニットレベルのコントローラ１２２は、下位レベル内の構成要素の動作及び制御をサポートするために様々な機能を実行する。例えば、ユニットレベルのコントローラ１２２は、下位レベル内の構成要素によって収集又は生成された情報のログを作成し、下位レベル内の構成要素を制御するアプリケーションを実行し、かつ下位レベル内の構成要素へのセキュアなアクセスを提供することができる。ユニットレベルのコントローラ１２２のそれぞれは、１つのプロセスユニット内の１つもしくは複数の機械もしくはその他の機器へのアクセス、それらの制御、又はそれらに関する動作を提供するのに適した任意の構造を含む。ユニットレベルのコントローラ１２２のそれぞれは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムを実行するサーバコンピューティングデバイスに相当することができる。図示されていないが、種々のユニットレベルのコントローラ１２２が、プロセスシステム内の種々のユニットを制御するために使用され得る（この場合、各ユニットは、１つ又は複数の機械レベルのコントローラ１１４、コントローラ１０６ａ〜１０６ｂ、センサ１０２ａ、及びアクチュエータ１０２ｂに関連付けられる）。
【００２０】
[0024]ユニットレベルのコントローラ１２２へのアクセスは、１つ又は複数のオペレータステーション１２４によって提供され得る。オペレータステーション１２４のそれぞれは、システム１００内の１つ又は複数の構成要素のユーザアクセス及び制御をサポートするのに適した任意の構造を含む。オペレータステーション１２４のそれぞれは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムを実行するコンピューティングデバイスに相当することができる。
【００２１】
[0025]少なくとも１つのルータ／ファイアウォール１２６は、ネットワーク１２０を２つのネットワーク１２８に結合する。このルータ／ファイアウォール１２６は、セキュアなルータ又は組合せルータ／ファイアウォールなどの、ネットワーク間での通信を提供するのに適した任意の構造を含む。ネットワーク１２８は、１つのペアのイーサネットネットワーク又はＦＴＥネットワークなどの任意の適切なネットワークに相当することができる。
【００２２】
[0026]パデューモデルにおいて、「レベル４」は、ネットワーク１２８に結合された１つ又は複数のプラントレベルのコントローラ１３０を含み得る。各プラントレベルのコントローラ１３０は、通常、同一、同様、又は種々のプロセスを実装する１つ又は複数のプロセスユニットを含み得る、プラント１０１ａ〜１０１ｎのうちの１つに関連付けられる。プラントレベルのコントローラ１３０は、下位レベル内の構成要素の動作及び制御をサポートするために様々な機能を実行する。特定の例として、プラントレベルのコントローラ１３０は、１つ又は複数の製造実行システム（ＭＥＳ：Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｅｘｅｃｕｔｉｏｎ  Ｓｙｓｔｅｍ）アプリケーション、スケジューリングアプリケーション、又はその他のもしくは追加のプラントもしくはプロセス制御アプリケーションを実行することができる。プラントレベルのコントローラ１３０のそれぞれは、１つのプロセスプラント内の１つ又は複数のプロセスユニットへのアクセス、それらの制御、又はそれらに関する動作を提供するのに適した任意の構造を含む。プラントレベルのコントローラ１３０のそれぞれは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムを実行するサーバコンピューティングデバイスに相当することができる。
【００２３】
[0027]プラントレベルのコントローラ１３０へのアクセスは、１つ又は複数のオペレータステーション１３２によって提供され得る。オペレータステーション１３２のそれぞれは、システム１００内の１つ又は複数の構成要素のユーザアクセス及び制御をサポートするのに適した任意の構造を含む。オペレータステーション１３２のそれぞれは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムを実行するコンピューティングデバイスに相当することができる。
【００２４】
[0028]少なくとも１つのルータ／ファイアウォール１３４は、ネットワーク１２８を１つ又は複数のネットワーク１３６に結合する。このルータ／ファイアウォール１３４は、セキュアなルータ又は組合せルータ／ファイアウォールなどの、ネットワーク間での通信を提供するのに適した任意の構造を含む。ネットワーク１３６は、エンタープライズ全体のイーサネットもしくはその他のネットワーク、又はより大型のネットワーク（インターネットなど）の全体もしくは一部などの、任意の適したネットワークに相当することができる。
【００２５】
[0029]パデューモデルにおいて、「レベル５」は、ネットワーク１３６に結合された１つ又は複数のエンタープライズレベルのコントローラ１３８を含み得る。各エンタープライズレベルのコントローラ１３８は、通常、複数のプラント１０１ａ〜１０１ｎ用のプランニング動作を行い、かつそれらのプラント１０１ａ〜１０１ｎの様々な状況を制御することができる。エンタープライズレベルのコントローラ１３８はまた、プラント１０１ａ〜１０１ｎ内の構成要素の動作及び制御をサポートするために様々な機能を実行することができる。特定の例として、エンタープライズレベルのコントローラ１３８は、１つ又は複数の注文処理アプリケーション、エンタープライズリソースプランニング（ＥＲＰ：Ｅｎｔｅｒｐｒｉｓｅ  Ｒｅｓｏｕｒｃｅ  Ｐｌａｎｎｉｎｇ）アプリケーション、先進的プランニング及びスケジューリング（ＡＰＳ：Ａｄｖａｎｃｅｄ  Ｐｌａｎｎｉｎｇ  ａｎｄ  Ｓｃｈｅｄｕｌｉｎｇ）アプリケーション、又は任意のその他のもしくは追加のエンタープライズ制御アプリケーションを実行することができる。エンタープライズレベルのコントローラ１３８のそれぞれは、１つ又は複数のプラントの制御部へのアクセス、それの制御、又はそれに関する動作を提供するのに適した任意の構造を含む。エンタープライズレベルのコントローラ１３８のそれぞれは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムを実行するサーバコンピューティングデバイスに相当することができる。本書類において、「エンタープライズ」という用語は、管理されるべき１つ又は複数のプラント又はその他の処理設備を有する組織を指す。１つのプラント１０１ａが管理されるべきである場合、エンタープライズレベルのコントローラ１３８の機能性は、プラントレベルのコントローラ１３０に組み入れられることが可能である、ということに留意されたい。
【００２６】
[0030]エンタープライズレベルのコントローラ１３８へのアクセスは、１つ又は複数のオペレータステーション１４０によって提供され得る。オペレータステーション１４０のそれぞれは、システム１００内の１つ又は複数の構成要素のユーザアクセス及び制御をサポートするのに適した任意の構造を含む。オペレータステーション１４０のそれぞれは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティングシステムを実行するコンピューティングデバイスに相当することができる。
【００２７】
[0031]パデューモデルの様々なレベルは、１つ又は複数のデータベースなどのその他の構成要素を含むことができる。各レベルに関連したデータベースは、システム１００のそのレベル又は１つもしくは複数のその他のレベルに関連した任意の適切な情報を格納することができる。例えば、ヒストリアン１４２が、ネットワーク１３６に結合されることが可能である。ヒストリアン１４２は、システム１００についての様々な情報を格納する構成要素に相当することができる。ヒストリアン１４２は、例えば、生産のスケジューリング及び最適化の最中に使用される情報を格納することができる。ヒストリアン１４２は、情報を格納し、かつ情報の検索を容易にするのに適した任意の構造に相当する。ヒストリアン１４２は、ネットワーク１３６に結合された単一の集中型構成要素として示されているが、システム１００内の他の場所に位置することが可能であり、又は複数のヒストリアンが、システム１００内の様々な位置に分散されることが可能である。
【００２８】
[0032]特定の実施形態において、図１での様々なコントローラ及びオペレータステーションは、コンピューティングデバイスに相当してもよい。例えば、コントローラ及びオペレータステーションのそれぞれは、１つ又は複数の処理デバイスと、処理デバイスによって使用され、生成され、又は収集される命令及びデータを格納するための１つ又は複数のメモリを含むことができる。コントローラ又はその他のデバイスによって使用される命令及びデータは、命令とデータの両方を収めるメモリイメージの形をとることができる。コントローラ及びオペレータステーションのそれぞれは、１つ又は複数のイーサネットインタフェース又は無線トランシーバなどの、少なくとも１つのネットワークインタフェースも含むことができる。
【００２９】
[0033]上述のように、コントローラ又は他のコンピューティングデバイスは、コンピューティングデバイスによって実行される処理命令と、コンピューティングデバイスによって使用されるデータの両方を収めるメモリイメージを使用し得る。しばしば、設計者又はその他の従業員は、コンピューティングアーキテクチャ内部のどこにメモリイメージを位置させるべきかを決めるという問題に直面する。どこにメモリイメージが位置するかに応じて、メモリイメージを伴ういくつかの動作がさらに効率的になるが、メモリイメージを伴うその他の動作は、効率的ではなくなるであろう。多くの場合、ほとんど又はすべての動作に効率的であるような、メモリイメージが配置され得る単一の場所がアーキテクチャ内にあるわけではない。従来のアーキテクチャにおいて、設計者又はその他の従業員は、通常、行われるべき様々な動作に対して、実現され得る効率性の種々のレベルの間でトレードオフを行うことによってメモリイメージの位置を選択する。しかし、この方法で行われる任意の選択は、いくつかの動作を非効率にする妥協案であり、明らかに望ましくない状況である。
【００３０】
[0034]本開示によれば、コントローラ又はその他のコンピューティングデバイスは、同一のメモリイメージの複数のコピーへのアクセスを収めるか、又は有し、メモリイメージの種々のコピーは、コンピューティングアーキテクチャ内部の種々の位置に位置する。これにより、種々の動作のために、種々の位置にメモリイメージの種々のコピーを位置させることによって、より高い動作効率を達成することが可能になる。動作が行われるときはいつでも、その動作に対して最も効率的な特定のメモリイメージのコピーが行われることが可能である。
【００３１】
[0035]例として、機械命令実行と入力／出力（Ｉ／Ｏ）データのバッファリングの両方のために使用されるメモリイメージの領域を考える。メモリイメージの１つのコピーは、命令がより迅速にフェッチされ得るように命令実行機能により接近して格納されることができ、このことが、より速い実行時間をもたらす。同時に、メモリイメージのもう１つのコピーは、１つ又は複数のＩ／Ｏデバイスの近くの、アーキテクチャの周辺部に格納される可能性がある。これは、命令実行機能により接近したメモリイメージを使用することに比較して、潜在的により高いデータ送信スピードをもたらす。
【００３２】
[0036]メモリイメージの複数のコピーの使用に関する追加の詳細が、下記に提供される。メモリイメージの複数のコピーが、種々の構成要素によって適宜使用されることを保証するのに役立てるために使用され得る様々な技法も下記に説明される。
【００３３】
[0037]図１は、産業用プロセス制御及び自動化システム１００の１つの例を示すが、図１に対して、様々な変更が行われ得る。例えば、システム１００は、任意の個数のセンサ、アクチュエータ、コントローラ、サーバ、オペレータステーション、ネットワーク、及びその他の構成要素を含むことができる。また、図１でのシステム１００の構成及び配置は、単に例示としてのものである。構成要素は、特定の必要性に従って、任意のその他の適切な構成において、追加され、除外され、組み合わせられ、又は配置されることが可能である。さらに、特定の機能が、システム１００の特定の構成要素によって果たされるとして、説明されている。このことは、単に例示としてのものである。一般に、制御及び自動化システムは、高度に構成可能であり、特定の必要性に従って、任意の適切な方法で構成されることが可能である。さらに、図１は、メモリイメージの複製がサポートされることが可能である、１つの例示的な動作環境を示す。この機能性は、任意のその他の適切なシステムで使用されることが可能であり、このシステムは、産業用プロセス制御及び自動化に関連している必要はない。
【００３４】
[0038]図２は、本開示による、効率的な同時使用のためのメモリイメージの複製をサポートする例示的なコンピューティングデバイス２００を示す図である。図２に示されたコンピューティングデバイス２００は、例えば、図１に示され、上で説明されたコントローラ、オペレータステーション、又はその他のコンピューティングデバイスのいずれかを表すことができる。しかし、コンピューティングデバイス２００は、任意のその他の適切な機能性をサポートするために使用されることができ、産業用プロセス制御及び自動化システムと併せて使用されてもされなくてもよい。
【００３５】
[0039]図２に示されるように、コンピューティングデバイス２００は、少なくとも１つの処理デバイス２０４と、少なくとも１つのストレージデバイス２０６と、少なくとも１つの通信ユニット２０８と、少なくとも１つのＩ／Ｏユニット２１０との間の通信をサポートする、バスシステム２０２を含む。処理デバイス２０４は、メモリ２１２にロードされ得る命令を実行する。処理デバイス２０４は、任意の適切な配置内に任意の適切な個数及びタイプのプロセッサ又はその他のデバイスを含み得る。例示的なタイプの処理デバイス２０４は、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、及びディスクリート回路機器を含む。
【００３６】
[0040]メモリ２１２及び永続性ストレージ２１４は、（一時的又は永続的に、データ、プログラムコード、及び／又はその他の適切な情報などの）情報を格納し、情報の検索を容易にすることができる任意の構造に相当する、ストレージデバイス２０６の例である。メモリ２１２は、ランダムアクセスメモリ又は任意のその他の適切な揮発性又は不揮発性ストレージデバイスに相当し得る。永続性ストレージ２１４は、読み取り専用メモリ、ハードドライブ、フラッシュメモリ、又は光ディスクなどの、データの長期的な保存をサポートする１つ又は複数の構成要素又はデバイスを収め得る。
【００３７】
[0041]通信ユニット２０８は、その他のシステム又はデバイスとの通信をサポートする。例えば、通信ユニット２０８は、ネットワーク上での通信を容易にするネットワークインタフェースカード又は無線トランシーバを含むことができる。通信ユニット２０８は、任意の適切な物理又は無線通信リンクを通じた通信をサポートし得る。
【００３８】
[0042]Ｉ／Ｏユニット２１０は、データの入力及び出力を可能にする。例えば、Ｉ／Ｏユニット２１０は、キーボード、マウス、キーパッド、タッチスクリーン、又はその他の適切な入力デバイスを通じてユーザ入力に対して接続を提供し得る。Ｉ／Ｏユニット２１０は、ディスプレイ、プリンタ、又はその他の適切な出力デバイスに出力を送ってもよい。さらに、Ｉ／Ｏユニット２１０は、様々なその他のＩ／Ｏデバイスとの通信及び相互作用をサポートすることができる。
【００３９】
[0043]少なくとも１つのメモリイメージの複数のコピー２１６ａ〜２１６ｂは、コンピューティングデバイス２００内で使用されることが可能である。例えば、メモリイメージの１つのコピー２１６ａは、処理デバイス２０４の内部メモリ内に、又はストレージデバイス２０６の１つもしくは複数（メモリ２１２など）の中に格納される可能性がある。メモリイメージのもう１つのコピー２１６ｂは、通信ユニット２０８又はＩ／Ｏユニット２１０内に格納される可能性がある。コピー２１６ａは、メモリイメージに収められた命令のより速い実行をサポートするために、処理デバイス２０４に（論理的に）より接近して提供される可能性がある。コピー２１６ｂは、より速いデータ転送をサポートするために外部デバイス又はシステムとの入力又は出力に関与するコンピューティングデバイス２００の構成要素に（論理的に）より接近して提供される可能性がある。しかし、メモリイメージの任意の個数のコピーが、コンピューティングデバイスにおける任意の適切な機能性をサポートするために使用されることが可能であることに留意されたい。
【００４０】
[0044]図２は、効率的な同時使用のためのメモリイメージの複製をサポートするコンピューティングデバイス２００の１つの例を示すが、様々な変更が図２に対して行われてもよい。例えば、様々な設定でのコンピューティングデバイスが可能である。図２に示されたコンピューティングデバイスは、１つの例示的な実装形態を示すことを意図しており、本開示は、特定のタイプのコンピューティングデバイスに限定されない。
【００４１】
[0045]図３は、本開示による、効率的な同時使用のためのメモリイメージの複製をサポートするコンピューティングデバイス３００の具体的な例を示す図である。図３に示されるように、コンピューティングデバイス３００のこの具体的な例は、コンピュータハードウェア（処理デバイス２０４など）上で動作するエミュレーションアーキテクチャ３０２を含む。コンピューティングデバイス３００はまた、メディアアクセスユニット（ＭＡＵ：Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｕｎｉｔ）３０８を介して、ローカル制御ネットワーク（ＬＣＮ：Ｌｏｃａｌ  Ｃｏｎｔｒｏｌ  Ｎｅｔｗｏｒｋ）３０６へのアクセス、及びその上での通信を容易にするインタフェースカード３０４を含む。
【００４２】
[0046]エミュレーションアーキテクチャ３０２は、特定のタイプのプロセッサ（この例では、ＭＯＴＯＲＯＬＡ６８０４０プロセッサ）を、もう１つのタイプのプロセッサ（ＩＮＴＥＬ  ｘ８６プロセッサなど）上で、エミュレートするために使用されるエミュレーションフレームワークを含む。フレームワークは、カーネルエミュレータ３１０、命令エミュレータ３１２、及びＩ／Ｏエミュレータ３１４を含む。名前が暗示するように、カーネルエミュレータ３１０は、いわゆるカーネル機能（通常、メインプロセッサによって行われない計算機能であり、その例が以下に挙げられる）をエミュレートするために使用される。また、命令エミュレータ３１２は、プロセッサ上での命令の実行をエミュレートするために使用され、Ｉ／Ｏエミュレータ３１４は、プロセッサ上の入力及び出力動作をエミュレートするために使用される。
【００４３】
[0047]カーネルエミュレータ３１０は、エミュレートされる特定のカーネルに応じて、様々なタイプのエミュレーションを含むことができる。例えば、カーネルエミュレータ３１０は、６８０４０プロセッサ用の汎用非同期受信機／送信機（ＵＡＲＴ：Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ）エミュレータ３１６及びクロックエミュレータ３１８を含むことができる。ＵＡＲＴエミュレータ３１６が、６８０４０プロセッサのＵＡＲＴインタフェースをエミュレートするために使用され、クロックエミュレータ３１８は、６８０４０プロセッサのクロック源をエミュレートするために使用される。
【００４４】
[0048]命令エミュレータ３１２は、カーネルエミュレータ３１０の内部で実行されない様々な命令を実装するために使用される。例えば、命令エミュレータ３１２は、６８０４０プロセッサ上でレガシーソースコードの実行をエミュレートするために、レガシーソースコード内の様々な命令を実行するために使用されることが可能である。いくつかの実施形態において、命令エミュレータ３１２は、Ｍｉｃｒｏａｐｌ  Ｌｔｄ．からの命令エミュレータを表すことができる。
【００４５】
[0049]Ｉ／Ｏエミュレータ３２０は、１つ又は複数のＩ／Ｏインタフェースをエミュレートするために使用される。この例でのＩ／Ｏエミュレータ３２０は、小型コンピュータシステムインタフェース（ＳＣＳＩ：Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）デバイスエミュレータ３２０及びＨｏｎｅｙｗｅｌｌ  ＰＤＧビデオデバイスエミュレータ３２２を含む。これらのエミュレータ３２０及び３２２は、６８０４０プロセッサと共に使用されることが多い種々のタイプの入力及び出力インタフェースをエミュレートするために使用される。しかし、その他の又は追加のＩ／Ｏエミュレータが、Ｉ／Ｏエミュレータ３２０の一部として実装されることもできることに留意されたい。
【００４６】
[0050]エミュレータ３１０〜３１４は、アクセス通知及び割込み通知を通信及び交換する。アクセス通知は、１つのエミュレータが、もう１つのエミュレータと関連付けられたデータ又はその他の情報にアクセスする必要があることを示すために使用される。割込み通知は、割込みに応答してその他のエミュレータが適切なアクションを取れるように、１つのエミュレータによって、割込みが発生したことをもう１つのエミュレータに通告するために、使用される。
【００４７】
[0051]この例でのインタフェースカード３０４は、ゲートアレイ３２４及びメモリ３２６を含む。ゲートアレイ３２４は、外部ネットワーク、このケースではＬＣＮへの物理接続を提供するように機能する。メモリ３２６は、インタフェースカード３０４を通じて流れるデータを格納するために使用される。ゲートアレイ３２４は、外部ネットワークへの接続を提供する任意の適切な回路機器を含む。メモリ３２６は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ：Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの、情報を格納し、かつ情報の検索を容易にするのに適した任意の構造を含む。
【００４８】
[0052]この例において、メモリイメージの複数のコピー３２８ａ〜３２８ｂが、アーキテクチャの種々の位置に提供される。特に、メモリイメージの１つのコピー３２８ａが、命令エミュレータ３１２の一部として提供される。エミュレータ３１２は、プロセッサ上での命令の実行をエミュレートすることを担当するので、命令エミュレータ３１２の内部にメモリイメージのコピー３２８ａが存在することは、命令の実行をスピードアップするのに役立つ。メモリイメージのもう１つのコピー３２８ｂは、インタフェースカード３０４のメモリ３２６の内部などに、インタフェースカード３０４の一部として提供される。インタフェースカード３０４は、メモリイメージを介して、ＬＣＮ３０６との間でのＩ／Ｏデータの転送を容易にするために使用されるので、インタフェースカード３０４の内部にメモリイメージのコピー３２８ｂが存在することは、インタフェースカード３０４を通じてデータ転送をスピードアップするのに役立つ。
【００４９】
[0053]図２及び図３では、同一のメモリイメージの複数のコピーが存在するので、メモリイメージのコピーにアクセスする各構成要素が、そのコピーから有効なデータを取得していることを保証するのに役立てるために、メカニズムが使用されることが可能である。メモリイメージの複数のコピー２１６ａ〜２１６ｂ、３２８ａ〜３２８ｂが、種々の構成要素によって適宜使用されることを保証するのに役立てるために、様々な技法が使用されることが可能である。その他の技法が使用されることも可能であるが、以下では、例示的な技法を説明する。
【００５０】
[0054]１つの技法は、メモリイメージの最も接近したコピーに対して、メモリイメージを伴う読取動作を指示すること、及びメモリイメージのすべてのコピーに対して、書込動作を指示することを伴う。この方法では、データがメモリイメージから読み込まれるとき、読取要求が、データを要求する構成要素に最も接近したメモリイメージのコピーに提供されることが可能である。このように、図２において、処理デバイス２０４からの読取要求は、メモリイメージのコピー２１６ａに対して指示されることが可能であるが、通信ユニット２０８又はＩ／Ｏユニット２１０からの読取要求は、メモリイメージのコピー２１６ｂに対して指示されることが可能である。処理デバイス２０４、通信ユニット２０８、又はＩ／Ｏユニット２１０からの書込要求は、メモリイメージのコピー２１６ａ〜２１６ｂの両方に対して指示されることが可能である。図３において、命令エミュレータ３１２からの読取要求は、メモリイメージのコピー３２８ａに対して指示されることが可能であるが、インタフェースカード３０４からの読取要求は、メモリイメージのコピー３２８ｂに対して指示されることが可能である。命令エミュレータ３１２又はインタフェースカード３０４からの書込要求は、メモリイメージのコピー３２８ａ〜３２８ｂの両方に対して指示されることが可能である。
【００５１】
[0055]もう１つの技法は、メモリイメージの全体的なメモリ空間をチャンクに分割することを伴う。メモリイメージへのアクセス（読取動作と書込動作の両方）は、次に、アクセスされているチャンクに基づいて、メモリイメージのうちの一つかつ唯一のコピーに対して指示されることが可能である。この方法は、メモリイメージの任意の所与の領域が、メモリイメージのコピーのうちのただ１つを使用してアクセスされるであろうという想定の下で動作する。継続的に又は様々な時点で、種々のメモリイメージのコピー内のメモリイメージのチャンクの中身は、例えば、種々のメモリイメージのコピーを使用して動作する種々の構成要素間でデータが転送されることが可能なように、実質的に同期されることが可能である。
【００５２】
[0056]第２の方法の特定の例は、以下のように行わせることができる。カーネルエミュレータ３１０は、メモリイメージのコピー３２８ａの＄Ｅ０００〜＄ＦＦＦＦの記憶域にアクセスすることを可能にされ得、カーネルエミュレータ３１０は、カーネルの動作と関連付けられた任意のカーネルレジスタのシャドウをもたらす（ｓｈａｄｏｗ）ことができる。Ｉ／Ｏエミュレータ３１４は、メモリイメージのコピー３２８ａの＄４００００〜＄４ＦＦＦＦの記憶域にアクセスすることを可能にされ得、Ｉ／Ｏエミュレータ３１４は、入力又は出力動作に関連付けられた任意のＩ／Ｏレジスタのシャドウをもたらすことができる。さらに、インタフェースカード３０４は、メモリイメージのコピー３２８ｂの＄８００００以上の記憶域にアクセスすることを可能にされ得る。このようにして、種々の構成要素は、メモリイメージの種々の部分をアクセス及び使用することができる。
【００５３】
[0057]第２の方法を実装するための１つの具体的な方法は、すべてのメモリイメージの読取及び書込要求をインターセプトすること、並びにアクセスされる関連付けられたメモリアドレスを、「実行可能コード」、「スタックメモリ」、「ヒープメモリ」、及び「Ｉ／Ｏアドレス空間」などのカテゴリに分類することである。各要求に対して、この要求のカテゴリに基づいて、メモリイメージのコピーのうちの１つが選択され、かつアクセスされることが可能であり、メモリイメージの共通領域へのアクセスが、メモリイメージの同一のコピーを使用して発生することを保証するのに役立つ。このメモリイメージのコピーへのアクセスは、直接行うことが可能であり、又は、全体的なアーキテクチャ内部の様々なメモリイメージの位置を一意にターゲットにするオフセットを通じて行うことも可能である。仮想メモリのオフセットは、仮想アドレッシングをサポートするシステムにおいてこれを達成するための１つの方法である。仮想アドレッシングがないシステムでは、メモリイメージ内の個別のエリアをターゲットとするために、インデックスレジスタが、必要とされるオフセットを提供することができる。
【００５４】
[0058]どちらかの方法において、レジスタアクセス、ＤＲＡＭアクセス、入力出力制御ブロック（ＩＯＣＢ：Ｉｎｐｕｔ−Ｏｕｔｐｕｔ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）、及びバッファなどの、様々な情報が、命令エミュレータ３１２とインタフェースカード３０４との間で交換されることが可能であることに留意されたい。これは、ＬＣＮ３０８上を転送されるデータが、エミュレーションアーキテクチャ３０２との間を、インタフェースカード３０４を通じて流れるからであり、データ転送が、エミュレーションアーキテクチャ３０２とインタフェースカード３０４との間で必要とされる。しかし、各構成要素３１２、３０４が命令へのローカルアクセスを有するので、命令エミュレータ３１２とインタフェースカード３０４との間で命令を交換する必要はない。
【００５５】
[0059]図３は、効率的な同時使用のためのメモリイメージの複製をサポートするコンピューティングデバイス３００の１つの具体的な例を示すが、様々な変更が、図３に対して行われてもよい。例えば、図３での様々な構成要素は、組み合わせられ、さらに再分割され、又は省略されることができ、追加の構成要素が、特定の必要性に従って追加される可能性がある。また、図３は、６８０４０プロセッサを伴う１つの具体的なエミュレーションを示すが、種々のプロセッサを伴う任意のその他の適切なエミュレーションが、サポートされることもできる。さらに、メモリイメージのコピーが、エミュレーションのないコンピューティングデバイス内で使用され得る。
【００５６】
[0060]図４は、本開示による、効率的な同時使用のためのメモリイメージの複製のための例示的な方法４００を示す図である。説明を簡単にするために、方法４００は、図２及び図３のコンピューティングデバイス２００及び３００に関して説明されるが、方法４００は、任意のその他の適切なデバイスで、及び任意の適切なシステムにおいて使用され得る。
【００５７】
[0061]図４に示されるように、メモリイメージの複数のコピーは、ステップ４０２で、コンピューティングアーキテクチャ内の複数の位置に格納される。これは、例えば、コンピューティングアーキテクチャ内の種々の機能が実行される種々の位置にメモリイメージの複数のコピー２１６ａ〜２１６ｂ、３２８ａ〜３２８ｂを格納することを含むことができる。種々の機能は、処理もしくは分析機能、入力／出力機能、又はその他の機能を含むことができる。
【００５８】
[0062]メモリイメージにアクセスするための第１の読取／書込要求は、ステップ４０４で、第１のソースから受信され、第１の読取／書込要求は、ステップ４０６で、メモリイメージのコピーのうちの少なくとも１つに対して指示される。これは、例えば、処理デバイス２０４又は命令エミュレータ３１２が、メモリイメージの１つ又は複数の記憶域に対して、データを読み書きする要求を発行することを含むことができる。これは、システムが、メモリイメージの最も近いコピー２１６ａ、３２８ａに対して、読取要求を指示すること、又はメモリイメージのすべてのコピー２１６ａ〜２１６ｂ、３２８ａ〜３２８ｂに対して、書込要求を指示することを含むこともできる。これは、システムが、第１の読取／書込要求と関連付けられたメモリイメージのチャンクを識別すること、及びそのチャンクがアクセスされる可能性のあるメモリイメージのコピーに対して、第１の読取／書込要求を指示することをさらに含むことができる。
【００５９】
[0063]メモリイメージにアクセスするための第２の読取／書込要求は、ステップ４０８で、第２のソースから受信され、第２の読取／書込要求は、ステップ４１０で、メモリイメージのコピーの少なくとももう１つに対して指示される。これは、例えば、通信ユニット２０８、Ｉ／Ｏユニット２１０、又はインタフェースカード３０４が、メモリイメージの１つ又は複数の記憶域に対して、データを読み書きする要求を発行することを含むことができる。これは、システムが、メモリイメージの最も近いコピー２１６ｂ、３２８ｂに対して、読取要求を指示すること、又はメモリイメージのすべてのコピー２１６ａ〜２１６ｂ、３２８ａ〜３２８ｂに対して、書込要求を指示することを含むこともできる。これは、システムが、第２の読取／書込要求と関連付けられたメモリイメージのチャンクを識別すること、及びそのチャンクがアクセスされる可能性のあるメモリイメージのコピーに対して、第２の読取／書込要求を指示することをさらに含むことができる。
【００６０】
[0064]このようにして、メモリイメージの種々のコピーは、例えば、メモリイメージを使用して行われる機能に基づいて、複数の位置に格納される可能性がある。より高い動作効率は、したがって、これらの動作に最も効率的な特定のメモリイメージのコピーに対して、動作が行われることを可能にすることによって、メモリイメージの複数のコピーを使用して実現される可能性がある。
【００６１】
[0065]図４は、効率的な同時使用のためのメモリイメージの複製のための方法４００の１つの例を示すが、様々な変更が図４に対して行われてもよい。例えば、一連のステップとして示されているが、図４に示される様々なステップは、重複する、並行して起こる、異なる順序で起こる、又は何度も起こる可能性がある。さらに、いくつかのステップが、組み合わされ、又は除去される可能性があり、追加のステップが、特定の必要性に従って追加される可能性がある。さらに、任意の個数のメモリイメージのコピー及び要求ソースが方法４００において使用され得る。
【００６２】
[0066]いくつかの実施形態において、本特許書類において説明された様々な機能が、コンピュータ可読プログラムコードから形成され、かつコンピュータ可読媒体に埋め込まれたコンピュータプログラムによって実装又はサポートされる。「コンピュータ可読プログラムコード」という成句は、ソースコード、オブジェクトコード、及び実行可能コードを含む、任意のタイプのコンピュータコードを含む。「コンピュータ可読媒体」という成句は、読み取り専用メモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクドライブ、コンパクトディスク（ＣＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルビデオディスク（ＤＶＤ：Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｃ）、又は任意のその他のタイプのメモリなどの、コンピュータによってアクセスされることが可能な任意のタイプの媒体を含む。「非一時的」コンピュータ可読媒体は、一時的電気信号又はその他の信号を伝送する、有線、無線、光、又はその他の通信リンクを含まない。非一時的コンピュータ可読媒体は、データが永続的に格納され得る媒体と、書き換え可能光ディスク又は消去可能メモリデバイスなどの、データが格納され、後で上書きされることが可能な媒体を含む。
【００６３】
[0067]本特許書類を通して使用されるいくつかの単語及び成句の定義を示すことは有益であり得る。「アプリケーション」及び「プログラム」という用語は、１つ又は複数のコンピュータプログラム、ソフトウェア構成要素、命令セット、手順、機能、オブジェクト、クラス、インスタンス、関連データ、又は適切なコンピュータコード（ソースコード、オブジェクトコード、又は実行可能コードを含む）での実装形態に適合されるそれらの一部を指す。「ｃｏｍｍｕｎｉｃａｔｅ（通信する）」という用語及びそれの派生語は、直接、間接両方の通信を含む。「ｉｎｃｌｕｄｅ（含む）」、「ｃｏｍｐｒｉｓｅ（含む、備える）」という用語、及びそれらの派生語は、制限なしの包含を意味する。「ｏｒ（又は）」という用語は、包含的であり、「ａｎｄ／ｏｒ（及び／又は）」を意味する。「ａｓｓｏｃｉａｔｅｄ  ｗｉｔｈ（に関連する）」という成句及びそれの派生語は、含む、〜内に含まれる、〜と相互接続する、包含する、〜内に包含される、〜に又は〜と接続する、〜に又は〜と結合する、〜と通信可能である、〜と連携する、相互配置する、並置する、〜に近接する、〜に又は〜と結び付けられる、有する、〜の特性を有する、〜への又は〜との関係を有する、あるいは同様のものを含むことを意味し得る。「ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ（少なくとも１つの）」という成句は、項目リストで使用される場合、列挙された項目のうちの１つ又は複数の種々の組合せが使用され得る、またリスト内のただ１つの項目が必要とされ得ることを意味する。例えば、「ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ：  Ａ，Ｂ，ａｎｄ  Ｃ（Ａ、Ｂ、及びＣのうちの少なくとも１つの）」は、Ａ、Ｂ、Ｃ、ＡとＢ、ＡとＣ、ＢとＣ、ＡとＢとＣの組合せのうちのいずれかを含む。
【００６４】
[0068]本出願における説明は、任意の特定の要素、ステップ、又は機能が、特許請求の範囲の範囲内に含まれなければならない本質的又は重要な要素であることを暗示するものとして読まれるべきではない。特許を受ける主題の範囲は、認められた特許請求の範囲によってのみ定義される。さらに、「ｍｅａｎｓ  ｆｏｒ（〜の手段）」又は「ｓｔｅｐ  ｆｏｒ（〜のステップ）」という正確な単語が、特定の特許請求の範囲において明示的に使用され、その後に機能を識別する分詞句が続かない限り、特許請求の範囲はどれも、添付の特許請求の範囲又は請求要素のいずれかに関して、米国特許法第１１２条（ｆ）に訴えるものではない。請求項の内部での「メカニズム」、「モジュール」、「デバイス」、「ユニット」、「構成要素」、「要素」、「メンバ」、「アーキテクチャ」、「装置」、「機械」、「システム」、「プロセッサ」、又は「コントローラ」などの（しかしこれらに限定されない）用語の使用は、特許請求の範囲自体の特徴によってさらに修正又は拡張されるような、当業者に知られた構造を指すと理解及び意図され、米国特許法第１１２条（ｆ）に訴えるものではない。
【００６５】
[0069]本開示は、特定の実施形態と、それに一般に関連する方法を説明したが、これらの実施形態及び方法の修正、置換が、当業者には明らかであろう。従って、例示的な実施形態の上の説明は、本開示を定義又は制約するものではない。その他の変更、代用、及び修正もまた、以下の特許請求の範囲によって定義されるような、本開示の範囲から外れない限り、可能である。
【図１】
2019511772.tif 000003
【図２】
2019511772.tif 000004
【図３】
2019511772.tif 000005
【図４】
2019511772.tif 000006
【手続補正書】
【提出日】平成30年8月31日(2018.8.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のメモリ（２１２、２１４）及び第２のメモリ（３２６）を含む複数のメモリを備えるコンピューティングアーキテクチャ（２００、３００）を備える装置であって、
前記複数のメモリが、第１のコピー（２１６ａ、３２８ａ）及び第２のコピー（２１６ｂ、３２８ｂ）を含むメモリイメージの複数のコピーを格納するように構成され、前記メモリイメージが、前記コンピューティングアーキテクチャによって実行される命令、及び前記コンピューティングアーキテクチャによって使用されるデータを含む、装置。
【請求項２】
前記コンピューティングアーキテクチャは、命令実行機能及び入力／出力機能を含む複数の機能を実行するように構成され、
前記コンピューティングアーキテクチャが、
前記命令実行機能を実行するように構成された少なくとも１つの処理デバイス（２０４）であって、前記第１のメモリは、前記少なくとも１つの処理デバイスにより近い又はその内部にあるメモリを備える、処理デバイス（２０４）と、
前記入力／出力機能を実行するように構成された通信インタフェース（２０８）及び入力／出力インタフェース（２１０）のうちの少なくとも１つであって、前記第２のメモリは、前記通信インタフェース及び前記入力／出力インタフェースのうちの少なくとも１つにより近い又はその内部にあるメモリを備える、通信インタフェース（２０８）及び入力／出力インタフェース（２１０）のうちの少なくとも１つと
をさらに備える、請求項１に記載の装置。
【請求項３】
前記コンピューティングアーキテクチャは、命令実行機能及び入力／出力機能を含む複数の機能を実行するように構成され、
前記コンピューティングアーキテクチャが、
前記命令実行機能を実行するように構成された命令エミュレータ（３１２）を実行するように構成された少なくとも１つの処理デバイス（２０４）であって、前記第１のメモリは、前記命令エミュレータにより近い又はその内部にあるメモリを備える、処理デバイス（２０４）と、
ネットワーク（３０６）を介して通信し、前記入力／出力機能を実行するように構成されたインタフェースカード（３０４）であって、前記第２のメモリは、前記インタフェースカードにより近い又はその内部にあるメモリを備える、インタフェースカード（３０４）と
をさらに備える、請求項１に記載の装置。
【請求項４】
コンピューティングアーキテクチャ（２００、３００）の複数のメモリ内に第１のコピー（２１６ａ、３２８ａ）及び第２のコピー（２１６ｂ、３２８ｂ）を含むメモリイメージの複数のコピーを格納するステップ（４０２）であって、前記複数のメモリが、第１のメモリ（２１２、２１４）及び第２のメモリ（３２６）を含み、前記メモリイメージが、前記コンピューティングアーキテクチャによって実行される命令、及び前記コンピューティングアーキテクチャによって使用されるデータを含む、ステップ（４０２）と、
前記メモリイメージの前記複数のコピーを使用して、前記コンピューティングアーキテクチャの複数の機能を実行するステップであって、前記複数の機能が、前記メモリイメージの前記第１のコピーを使用する第１の機能、及び前記メモリイメージの前記第２のコピーを使用する第２の機能を含む、ステップと
を含む、方法。
【請求項５】
前記第１のメモリ及び第２のメモリに対して、前記第１及び第２の機能に関連した読取及び書込メモリアクセス要求を指示するステップ（４０６、４１０）
をさらに含み、
前記読取及び書込メモリアクセス要求を指示するステップは、
前記第１のメモリに対して、前記第１の機能に関連した前記読取メモリアクセス要求を指示するステップ、並びに前記第１及び第２のメモリに対して、前記第１の機能に関連した前記書込メモリアクセス要求を指示するステップと、
前記第２のメモリに対して、前記第２の機能に関連した前記読取メモリアクセス要求を指示するステップ、並びに前記第１及び第２のメモリに対して、前記第２の機能に関連した前記書込メモリアクセス要求を指示するステップと
を含む、請求項４記載の方法。
【請求項６】
前記第１のメモリ及び第２のメモリに対して、前記第１及び第２の機能に関連した読取及び書込メモリアクセス要求を指示するステップ（４０６、４１０）
をさらに含み、
前記読取及び書込メモリアクセス要求を指示するステップは、各メモリアクセス要求に対して、
前記メモリアクセス要求に関連した前記メモリイメージの一部を識別するステップと、
前記メモリイメージの前記識別された部分に基づいて、前記メモリイメージの前記複数のコピーの１つに対して、前記メモリアクセス要求を指示するステップと
を含む、請求項４に記載の方法。
【請求項７】
前記第１のメモリ及び第２のメモリに対して、前記第１及び第２の機能に関連した読取及び書込メモリアクセス要求を指示するステップ（４０６、４１０）
をさらに含み、
前記読取及び書込メモリアクセス要求を指示するステップは、各メモリアクセス要求に対して、
前記メモリアクセス要求を複数のカテゴリの１つに分類するステップと、
前記分類に基づいて前記メモリイメージの前記複数のコピーの１つを選択するステップと、
前記メモリイメージの前記選択されたコピーに対して、前記メモリアクセス要求を指示するステップと、
直接、又はオフセットを使用して、前記メモリイメージの前記選択されたコピー内のメモリの一部にアクセスするステップと
を含む、請求項４に記載の方法。
【国際調査報告】
2019511772.tif 000007
2019511772.tif 000008