(57)【要約】  方法は、第１処理デバイス（１４２、１４８、２０４）によって、信号を第２リレー処理デバイス（２１６、３２６）に送信するステップ（４０４）を含む。この信号は、リード・コマンドおよび／またはライト・コマンドを、第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、第２リレー処理デバイスに伝えるメッセージを含む。また、この方法は、第１処理デバイスによって、第２リレー処理デバイスがリード・コマンドおよび／またはライト・コマンドをＩ／Ｏデバイスに送信したという指示を受信するステップ（４０６）も含む。【選択図】図１
2019506680.tif 000002
【特許請求の範囲】
【請求項１】
第１処理デバイス（１４２、１４８、２０４）によって、信号を第２リレー処理デバイス（２１６、３２６）に送信するステップ（４０４）であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも１つを、前記第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、前記第２リレー処理デバイスに伝えるメッセージを含む、ステップと、
前記第１処理デバイスによって、前記第２リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信したという指示を受信するステップ（４０６）と、
を含む、方法。
【請求項２】
前記第１処理デバイスによって、前記リード・コマンドおよびライト・コマンドの内少なくとも１つが、前記Ｉ／Ｏデバイスを使用して、実行に成功したことの第２指示を受信するステップ（４０８）を更に含む、請求項１に記載の方法。
【請求項３】
前記第１処理デバイスを使用して、前記リード・コマンドの結果を得るために、メモリ（１４４、１５０、２０６、２１２、２１４）にアクセスするステップ（４１０）を更に含み、
前記メモリが、前記第２リレー処理デバイスと共有されるメモリ（３３２ａ、３３２ｂ）を含む、請求項１に記載方法。
【請求項４】
回路カード（３０６）をコンピューティング・デバイス（１０６ａ、１０６ｂ）にインストールするステップを更に含み、前記コンピューティング・デバイスが、前記第１処理デバイスを含み、前記回路カードが、前記第２リレー処理デバイスと、ネットワーク（３０８）を通じて通信するように構成された回路（２０８、３２２）とを含む、請求項１に記載の方法。
【請求項５】
信号を第２リレー処理デバイス（２１６、３２６）に送信するように構成された第１処理デバイス（１４２、１４８、２０４）であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも１つを、前記第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、前記第２リレー処理デバイスに伝えるメッセージを含む、第１処理デバイス（１４２、１４８、２０４）を備え、
前記第１処理デバイスが、更に、前記第２リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信したという指示を受信するように構成される、装置。
【請求項６】
前記第１処理デバイスが、更に、前記リード・コマンドおよびライト・コマンドの内少なくとも１つが、前記Ｉ／Ｏデバイスを使用して、実行に成功したことの第２指示を受信するように構成される、請求項５に記載の装置。
【請求項７】
前記第１処理デバイスが、更に、前記リード・コマンドの結果を得るために、メモリ（１４４、１５０、２０６、２１２、２１４）にアクセスするように構成され、
前記メモリが、前記第２リレー処理デバイスと共有されるメモリ（３３２ａ、３３２ｂ）を含む、請求項５に記載の装置。
【請求項８】
前記第１処理デバイスが、コンピューティング・デバイス（１０６ａ、１０６ｂ）の処理デバイスを含み、前記コンピューティング・デバイスが、前記第２リレー処理デバイスと、ネットワーク（３０８）を通じて通信するように構成された回路（２０８、３２２）とを含む回路カード（３０６）に結合されるように構成される、請求項５に記載の装置。
【請求項９】
第２リレー処理デバイス（２１６、３１６）において、第１処理デバイス（１４２、１４８、２０４）から信号を受信するステップ（５０２）であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも１つを、前記第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、前記第２リレー処理デバイスに伝えるメッセージを含む、ステップと、
前記第２リレー処理デバイスから、前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信するステップ（５０４）と、
前記第２リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信したという指示を、前記第１処理デバイスに送信するステップ（５０６）と、
を含む、方法。
【請求項１０】
前記リード・コマンドおよびライト・コマンドの内少なくとも１つが、前記Ｉ／Ｏデバイスを使用して、実行に成功したことの第２指示を、前記第１処理デバイスに送信するステップ（５０８）を更に含む、請求項９に記載の方法。
【請求項１１】
前記第２リレー処理デバイスを使用して、前記リード・コマンドの結果を格納するためにメモリ（１４４、１５０、２０６、２１２、２１４）にアクセスするステップ（５１０）を更に含み、前記メモリが、前記第１処理デバイスと共有されるメモリ（３３２ａ、３３２ｂ）を含む、請求項９に記載の方法。
【請求項１２】
回路カード（３０６）をコンピューティング・デバイス（１０６ａ、１０６ｂ）にインストールするステップを更に含み、前記コンピューティング・デバイスが、前記第１処理デバイスを含み、前記回路カードが、前記第２リレー処理デバイスと、ネットワーク（３０８）を通じて通信するように構成された回路（２０８、３２２）とを含む、請求項９に記載の方法。
【請求項１３】
第１処理デバイス（１４２、１４８、２０４）と共に使用する装置であって、
前記第１処理デバイスから信号を受信するように構成された第２リレー処理デバイス（２１６、３２６）であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも１つを、前記第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、前記第２リレー処理デバイスに伝えるメッセージを含む、第２リレー処理デバイス（２１６、３２６）を備え、
前記第２リレー処理デバイスが、更に、前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信するように構成され、
前記第２リレー処理デバイスが、更に、前記第２リレー処理デバイスが、前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信したという指示を、前記第１処理デバイスに送信するように構成される、装置。
【請求項１４】
前記第２リレー処理デバイスが、更に、前記リード・コマンドおよびライト・コマンドの内少なくとも１つが、前記Ｉ／Ｏデバイスを使用して、実行に成功したことの第２指示を、前記第１処理デバイスに送信するように構成される、請求項１３に記載の装置。
【請求項１５】
回路カード（３０６）が、前記第２リレー処理デバイスと、ネットワーク（３０８）を通じて通信するように構成された回路（２０８、３２２）とを含み、前記回路カードが、前記第１処理デバイスを含むコンピューティング・デバイス（１０６ａ、１０６ｂ）内にインストールされるように構成される、請求項１３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、一般的には、コンピューティング・デバイスに関する。更に特定すると、本開示は、アクセス不可能な入力／出力（Ｉ／Ｏ）デバイスとのプロセッサ通信を容易にするリレー・メカニズムを対象とする。
【背景技術】
【０００２】
[0002]  コンピューティング・デバイスは、工業プロセス制御および自動化システムにおいて入力／出力（Ｉ／Ｏ）デバイスと常時通信する必要がある。しかしながら、工業プロセス制御および自動化システムにおけるコンピューティング・デバイスには、旧来のＩ／Ｏデバイスが新型のコンピューティング・デバイスによって電気的または論理的にアクセスすることができないとき等に、種々のＩ／Ｏデバイスと通信できないものもある。特定例として、ある状況において、特定の(particular)コンピューティング・デバイスが特定のＩ／Ｏデバイス(specific I/O device)と相互作用する必要があるが、ボード設計の問題(issue)またはその他の問題(problem)のために、コンピューティング・デバイスがＩ／Ｏデバイスにアクセスすることができない可能性がある。
【発明の概要】
【０００３】
[0003]  本開示は、アクセス不可能な入力／出力（Ｉ／Ｏ）デバイスとのプロセッサ通信を容易にするリレー・メカニズムに関する。
[0004]  第１実施形態では、方法は、第１処理デバイスによって、信号を第２リレー処理デバイスに送信するステップを含む。この信号は、リード・コマンドおよび／またはライト・コマンドを、第１処理デバイスによるアクセスが不可能なＩ／Ｏデバイスに送信するように、第２リレー処理デバイスに伝えるメッセージを含む。また、この方法は、第１処理デバイスによって、第２リレー処理デバイスがリード・コマンドおよび／またはライト・コマンドをＩ／Ｏデバイスに送信したという指示を受信するステップも含む。
【０００４】
[0005]  第２実施形態では、装置は、第２リレー処理デバイスに信号を送信するように構成された第１処理デバイスを含む。この信号は、リード・コマンドおよび／またはライト・コマンドを、第１処理デバイスによるアクセスが不可能なＩ／Ｏデバイスに送信するように、 第２リレー処理デバイスに伝えるメッセージを含む。また、第１処理デバイスは、第２リレー処理デバイスがリード・コマンドおよび／またはライト・コマンドをＩ／Ｏデバイスに送信したという指示を受信するように構成される。
【０００５】
[0006]  第３実施形態では、方法は、第２リレー処理デバイスにおいて第１処理デバイスから信号を受信するステップを含む。この信号は、リード・コマンドおよび／またはライト・コマンドを、第１処理デバイスによるアクセスが不可能なＩ／Ｏデバイスに送信するように、第２リレー処理デバイスに伝えるメッセージを含む。また、この方法は、第２リレー処理デバイスから、リード・コマンドおよび／またはライト・コマンドをＩ／Ｏデバイスに送信するステップも含む。更に、この方法は、第１処理デバイスに、第２リレー処理デバイスがリード・コマンドおよび／またはライト・コマンドをＩ／Ｏデバイスに送信したという指示を送信するステップも含む。
【０００６】
[0007]  第４実施形態では、第１処理デバイスと共に使用する装置は、第１処理デバイスから信号を受信するように構成された第２リレー処理デバイスを含む。この信号は、リード・コマンドおよび／またはライト・コマンドを、第１処理デバイスによるアクセスが不可能なＩ／Ｏデバイスに送信するように、第２リレー処理デバイスに伝えるメッセージを含む。また、第２リレー処理デバイスは、リード・コマンドおよび／またはライト・コマンドをＩ／Ｏデバイスに送信するように構成される。更に、第２リレー処理デバイスは、第１処理デバイスに、第２リレー処理デバイスがリード・コマンドおよび／またはライト・コマンドをＩ／Ｏデバイスに送信したという指示を送信するように構成される。
【０００７】
[0008]  以下の図、説明、および特許請求の範囲から、他の技術的特徴も当業者には容易に分かることができよう。
【図面の簡単な説明】
【０００８】
[0009]  本開示の理解を一層深めるために、これより以下の説明について、添付図面と併せて検討する。
【図１】図１は、本開示による工業プロセス制御および自動化システムの一例を示す。
【図２】図２は、本開示にしたがって、 アクセス不可能な入力／出力（Ｉ／Ｏ）デバイスとのプロセッサ通信を容易にするコンピューティング・デバイスの一例を示す。
【図３】図３は、本開示にしたがって、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にするコンピューティング・デバイスの具体例を示す。
【図４】図４は、本開示にしたがって、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にする方法の例を示す。
【図５】図５は、本開示にしたがって、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にする方法の例を示す。
【発明を実施するための形態】
【０００９】
[0014]  以下で論ずる図１から図５、および本特許文書において本発明の原理を説明するために使用する種々の実施形態は、一例に過ぎず、本発明の範囲を限定するように解釈しては決してならない。本発明の原理は、適切に構成されたデバイスまたはシステムであればいずれの形式であっても実現できることは、当業者には理解されよう。
【００１０】
[0015]  図１は、本開示による工業プロセス制御および自動化システム１００の一例を示す。図１に示すように、システム１００は、少なくとも１つの製品または他の材料の生産あるいは処理を容易にする種々のコンポーネントを含む。例えば、システム１００は、ここでは、１つまたは複数のプラント１０２ａ〜１０２ｎにおいてコンポーネントに対する制御を容易にするために使用される。各プラント１０２ａ〜１０２ｎは、少なくとも１つの製品または他の材料を生産するための１つ以上の製造設備等の、１つ以上の処理設備（またはその１つ以上の部分）を表す。一般に、各プラント１０２ａ〜１０２ｎは、１つ以上のプロセスを実施し、個々にまたは纏めてプロセス・システムと呼ぶことができる。プロセス・システムとは、一般に、なんらかの方法で１つ以上の製品または他の材料を処理するように構成された任意のシステムまたはその一部を表す。
【００１１】
[0016]  図１において、システム１００は、プロセス制御のＰｕｒｄｕｅモデルを使用して実装される。Ｐｕｒｄｕｅモデルでは、「レベル０」は１つ以上の入力／出力デバイス１０４ａ〜１０４ｂを含むことができる。Ｉ／Ｏデバイス１０４ａ〜１０４ｂは、プロセス・システムにおいて、多種多様の機能のうち任意のものを実行することができるコンポーネントを表す。Ｉ／Ｏデバイス１０４ａ〜１０４bは、センサ、アクチュエータ等を含むことができる。センサは、温度、圧力、流量(flow rate)のような、プロセス・システムにおける多種多様の特性を測定することができる。アクチェータは、プロセス・システムにおいて多種多様の特性を変化させることができる。センサは、プロセス・システムにおいて１つ以上の特性を測定するのに適した任意の構造を含む。アクチュエータは、プロセス・システムにおいて１つ以上の状態に対して動作する、または１つ以上の状態に作用するのに適した任意の構造を含む。Ｉ／Ｏデバイス１０４ａ〜１０４bは、任意の適したプロセス・システムにおいて任意の他のまたは追加のコンポーネントを表すことができる。
【００１２】
[0017]  Ｐｕｒｄｕｅモデルでは、「レベル１」は、少なくとも２つのコントローラ１０６ａ〜１０６ｂを含むことができる。とりわけ、各コントローラ１０６ａ〜１０６ｂは、１つ以上の他のＩ／Ｏデバイス（１つ以上のアクチュエータ等）の動作を制御するために、１つ以上のＩ／Ｏデバイス（１つ以上のセンサ等）からの測定値を使用することができる。各コントローラ１０６ａ〜１０６ｂは、１つ以上のＩ／Ｏデバイス１０４ａ〜１０４ｂと相互作用するのに適した任意の構造を含む。各コントローラ１０６ａ〜１０６ｂは、例えば、比例−積分−微分（ＰＩＤ）コントローラ、またはロバスト多変数予測制御技術（ＲＭＰＣＴ）コントローラのような多変数コントローラ、あるいはモデル予測制御（ＭＰＣ）または他の高度予測制御（ＡＰＣ）を実装するその他の型式のコントローラを表すことができる。特定例として、各コントローラ１０６ａ〜１０６ｂは、リアル・タイム・オペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
【００１３】
[0018]  ２つのネットワーク１０８がコントローラ１０６ａ〜１０６ｂに結合されている。ネットワーク１０８は、コントローラ１０６ａおよび１０６ｂへデータを移送する、ならびにコントローラ１０６ａおよび１０６ｂからデータを移送すること等によって、コントローラ１０６ａ〜１０６ｂとの相互作用を容易にする。ネットワーク１０８は、任意の適したネットワークまたはネットワークの組み合わせを表すことができる。特定例として、ネットワーク１０８は、ＨＯＮＥＹＷＥＬＬ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＩＮＣからのＦＡＵＬＴ  ＴＯＬＥＲＡＮＴ  ＥＴＨＥＲＮＥＴ（ＦＴＥ）ネットワークのような、イーサネット・ネットワークの冗長対を表すことができる。
【００１４】
[0019]  少なくとも１つのスイッチ／ファイアウォール１１０が、ネットワーク１０８を２つのネットワーク１１２に結合する。スイッチ／ファイアウォール１１０は１つのネットワークから他のネットワークにトラフィックを移送することができる。また、スイッチ／ファイアウォール１１０は、１つのネットワーク上のトラフィックが、他のネットワークに到達するのを阻止することもできる。スイッチ／ファイアウォール１１０は、ＨＯＮＥＹＷＥＬＬ  ＣＯＮＴＲＯＬ  ＦＩＲＥＷＡＬＬ  （ＣＦ９）デバイスのような、ネットワーク間で通信を行うのに適した任意の構造を含む。ネットワーク１１２は、ＦＴＥネットワークのような、任意の適したネットワークを表すことができる。
【００１５】
[0020]  Ｐｕｒｄｕｅモデルでは、「レベル２」は、ネットワーク１１２に結合された１つ以上の機械レベル・コントローラ１１４を含むことができる。機械レベル・コントローラ１１４は、工業用機器（ボイラまたは他の機械等）の特定の１つと関連付けることができるコントローラ１０６ａ〜１０６ｂおよびＩ／Ｏデバイス１０４ａ〜１０４ｂの動作および制御をサポートするために種々の機能を実行する。例えば、機械レベル・コントローラ１１４は、センサからの測定データまたはアクチュエータ用制御信号のような、コントローラ１０６ａ〜１０６ｂによって収集または生成された情報を記録する(log)ことができる。また、機械レベル・コントローラ１１４は、コントローラ１０６ａ〜１０６ｂの動作を制御するアプリケーションを実行し、これによってＩ／Ｏデバイス１０４ａ〜１０４ｂの動作を制御することができる。加えて、機械レベル・コントローラ１１４は、エッジ・アクセスをコントローラ１０６ａ〜１０６ｂに付与することができる。機械レベル・コントローラ１１４の各々は、機械またはその他の個々の機器へのアクセスを付与し、動作の制御を行い、またはこれらに関係する動作を行うのに適した任意の構造を含む。機械レベル・コントローラ１１４の各々は、例えば、ＭＩＣＲＯＳＯＦＴ ＷＩＮＤＯＷＳオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。図示しないが、異なる機械レベル・コントローラ１１４を使用して、プロセス・システムにおける異なる機器を制御することができる（各機器は、１つ以上のコントローラ１０６ａ〜１０６ｂおよびＩ／Ｏデバイス１０４ａ〜１０４ｂと関連付けられる）。
【００１６】
[0021]  １つ以上の操作員端末１１６がネットワーク１１２に結合されている。操作員端末１１６は、機械レベル・コントローラ１１４にユーザ・アクセスを付与するコンピューティング・デバイスまたは通信デバイスを表す。次いで、機械レベル・コントローラ１１４はユーザ・アクセスをコントローラ１０６ａ〜１０６ｂに（そして、場合によってはＩ／Ｏデバイス１０４ａ〜１０４ｂに）付与することができる。特定例として、操作員端末１１６は、コントローラ１０６ａ〜１０６ｂおよび／または機械レベル・コントローラ１１４によって収集された情報を使用して、Ｉ／Ｏデバイス１０４ａ〜１０４ｂの動作履歴を、ユーザに見直しさせることができる。また、操作員端末１１６は、Ｉ／Ｏデバイス１０４ａ〜１０４ｂ、コントローラ１０６ａ〜１０６ｂ、または機械レベル・コントローラ１１４の動作を、ユーザに調節させることもできる。加えて、操作員端末１１６は、コントローラ１０６ａ〜１０６ｂまたは機械レベル・コントローラ１１４によって生成された警告(warning)、警報(alert)、あるいはその他のメッセージまたは表示を受信し表示することができる。操作員端末１１６の各々は、システム１００における１つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末１１６の各々は、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
【００１７】
[0022]  少なくとも１つのルータ／ファイアウォール１１８が、ネットワーク１１２を２つのネットワーク１２０に結合する。ルータ／ファイアウォール１１８は、安全なルータまたは複合ルータ／ファイアウォール(combination router/firewall)等の、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク１２０は、ＦＴＥネットワークのような、任意の適したネットワークを表すことができる。
【００１８】
[0023]  Ｐｕｒｄｕｅモデルでは、「レベル３」は、ネットワーク１２０に結合された１つ以上のユニット−レベル・コントローラ(unit-level controller)１２２を含むことができる。各ユニット−レベル・コントローラ１２２は、通例、プロセス・システムにおける１つのユニットと関連付けられ、プロセスの少なくとも一部を実現するために一緒に動作する異なる機械の集合体を表す。ユニット−レベル・コントローラ１２２は、それよりも低いレベルにあるコンポーネントの動作および制御をサポートするために、種々の機能を実行する。例えば、ユニット−レベル・コントローラ１２２は、それよりも低いレベルにあるコンポーネントによって収集または生成された情報を記録し、それよりも低いレベルにあるコンポーネントを制御するアプリケーションを実行し、それよりも低いレベルにあるコンポーネントに安全なアクセスを付与することができる。ユニット−レベル・コントローラ１２２の各々は、１つ以上の機械またはプロセス・ユニットにおける他の機器にアクセスを付与し、動作の制御を行い、関係する動作を行うのに適した任意の構造を含む。ユニット−レベル・コントローラ１２２の各々は、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。図示しないが、プロセス・システムにおける異なるユニットを制御するために、異なるユニット−レベル・コントローラ１２２を使用することができる（各ユニットは、１つ以上の機械−レベル・コントローラ１１４、コントローラ１０６ａ〜１０６ｂ、Ｉ／Ｏデバイス１０４ａ〜１０４ｂと関連付けられる）。
【００１９】
[0024]  ユニット−レベル・コントローラ１２２へのアクセスは、１つ以上の操作員端末１２４によって付与することができる。操作員端末１２４の各々は、システム１００における１つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末１２４の各々は、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
【００２０】
[0025]  少なくとも１つのルータ／ファイアウォール１２６が、ネットワーク１２０を２つのネットワーク１２８に結合する。ルータ／ファイアウォール１２６は、安全なルータまたは複合ルータ／ファイアウォールのような、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク１２８は、ＦＴＥネットワークのような、任意の適したネットワークを表すことができる。
【００２１】
[0026]  Ｐｕｒｄｕｅモデルでは、「レベル４」は、ネットワーク１２８に結合された１つ以上のプラント−レベル・コントローラ１３０を含むことができる。各プラント−レベル・コントローラ１３０は、通例、プラント１０２ａ〜１０２ｎの１つと関連付けられ、各プラントは、同じプロセス、同様のプロセス、または異なるプロセスを実現する１つ以上のプロセス・ユニットを含むことができる。プラント−レベル・コントローラ１３０は、それよりも低いレベルにあるコンポーネントの動作および制御をサポートするために、種々の機能を実行する。特定例として、プラント−レベル・コントローラ１３０は、１つ以上の製造実行システム（ＭＥＳ）アプリケーション、スケジューリング・アプリケーション、あるいはその他のまたは追加のプラント制御アプリケーションもしくはプロセス制御アプリケーションを実行することができる。プラント−レベル・コントローラ１３０の各々は、プロセス・プラントにおける１つ以上のプロセス・ユニットにアクセスを付与し、制御を行い、関係する動作を行うのに適した任意の構造を含む。プラント−レベル・コントローラ１３０の各々は、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。
【００２２】
[0027]  プラント−レベル・コントローラ１３０へのアクセスは、１つ以上の操作員端末１３２によって付与することができる。操作員端末１３２の各々は、システム１００における１つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末１３２の各々は、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
【００２３】
[0028]  少なくとも１つのルータ／ファイアウォール１３４が、ネットワーク１２８を１つ以上のネットワーク１３６に結合する。ルータ／ファイアウォール１３４は、安全なルータまたは複合ルータ／ファイアウォールのような、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク１３６は、企業規模のイーサネットまたはその他のネットワーク、あるいはもっと大きなネットワーク（インターネット等）の全部または一部のような、任意の適したネットワークを表すことができる。
【００２４】
[0029]  Ｐｕｒｄｕｅモデルでは、「レベル５」は、ネットワーク１３６に結合された１つ以上の企業−レベル・コントローラ１３８を含むことができる。各企業−レベル・コントローラ１３８は、通例、複数のプラント１０２ａ〜１０２ｎのための計画業務を実行し、プラント１０２ａ〜１０２ｎの種々の面(aspect)を制御することができる。また、企業−レベル・コントローラ１３８は、プラント１０２ａ〜１０２ｎにおけるコンポーネントの動作および制御をサポートするために、種々の機能を実行することができる。特定例として、企業−レベル・コントローラ１３８は、１つ以上の命令処理アプリケーション、企業リソース計画（ＥＲＰ：enterprise resource planning）アプリケーション、高度計画およびスケジューリング（ＡＰＳ：advanced planning and scheduling）アプリケーション、あるいは任意のその他のまたは追加の企業用制御アプリケーションを実行することができる。企業−レベル・コントローラ１３８の各々は、１つ以上のプラントにアクセスを付与し、１つ以上のプラントの制御を行い、１つ以上のプラントの制御に関係する動作を行うに適した任意の構造を含む。企業−レベル・コントローラ１３８の各々は、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。この文書では、「企業」(enterprise)という用語は、管理すべき１つ以上のプラントまたはその他の処理設備を有する組織を指す。尚、１つのプラント１０２ａを管理しようとする場合、企業−レベル・コントローラ１３８の機能をプラント−レベル・コントローラ１３０に組み込むことができることを注記しておく。
【００２５】
[0030]  企業−レベル・コントローラ１３８へのアクセスは、１つ以上の操作員端末１４０によって付与することができる。操作員端末１４０の各々は、システム１００における１つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末１４０の各々は、例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
【００２６】
[0031]  Ｐｕｒｄｕｅモデルの種々のレベルは、１つ以上のデータベース等の、他のコンポーネントも含むことができる。各レベルと関連付けられたデータベース（１つまたは複数）は、システム１００のそのレベルまたは１つ以上の他のレベルに関連する任意の適した情報を格納することができる。例えば、ヒストリアン(historian)１４１をネットワーク１３６に結合することができる。ヒストリアン１４１は、システム１００についての種々の情報を格納するコンポーネントを表すことができる。ヒストリアン１４１は、例えば、生産スケジューリングおよび最適化の間に使用された情報を格納することができる。ヒストリアン１４１は、情報を格納し、情報の検索(retrieval)を容易にするのに適した任意の構造を表す。ネットワーク１３６に結合された１つの集中コンポーネントとして示されているが、ヒストリアン１４１は、システム１００におけるいずれの場所にも配置することができ、または複数のヒストリアンをシステム１００における異なる場所に分散させることもできる。
【００２７】
[0032]  特定実施形態では、図１における種々のコントローラおよび操作員端末は、コンピューティング・デバイスを表すこともできる。例えば、コントローラ１０６ａ、１０６ｂ、１１４、１２２、１３０、１３８の各々は、１つ以上の処理デバイス１４２と、処理デバイス（１つまたは複数）１４２によって使用、生成、または収集された命令およびデータを格納するために１つ以上のメモリ１４４とを含むこともできる。また、コントローラ１０６ａ、１０６ｂ、１１４、１２２、１３０、１３８の各々は、１つ以上のイーサネット・インターフェースまたはワイヤレス・トランシーバのような、少なくとも１つのネットワーク・インターフェース１４６も含むことができる。また、操作員端末１１６、１２４、１３２、１４０の各々も、１つ以上の処理デバイス１４８と、処理デバイス（１つまたは複数）１４８によって使用、生成、または収集された命令およびデータを格納するために１つ以上のメモリ１５０を含むことができる。また、操作員端末１１６、１２４、１３２、１４０の各々は、１つ以上のイーサネット・インターフェースまたはワイヤレス・トランシーバのような、少なくとも１つのネットワーク・インターフェース１５２を含むこともできる。
【００２８】
[0033]  先に注記したように、工業プロセス制御および自動化システム１００における特定のコンピューティング・デバイスが特定のＩ／Ｏデバイスと直接相互作用できないという状況もあり得る。例として、コントローラ１０６ａがＩ／Ｏデバイス１０４ａと直接通信できない場合があり、あるいはコントローラ１０６ｂがＩ／Ｏデバイス１０４ｂと直接通信できない場合もある。これは、コントローラ（１つまたは複数）またはＩ／Ｏデバイス（１つまたは複数）の設計等の多くの理由で起こる可能性がある。
【００２９】
[0034]  本開示によれば、コントローラまたはその他のコンピューティング・デバイスに少なくとも１つのリレー・プロセッサを配備する(supply)ことができ、リレー・プロセッサは、コンピューティング・デバイスの少なくとも１つの主プロセッサと通信状態に入ることができる。また、リレー・プロセッサは、主プロセッサにはどのようにしても電気的にまたは論理的にアクセスすることができないＩ／Ｏデバイスとも通信状態に入ることができる。特定例として、コントローラ１０６ａは、Ｉ／Ｏデバイス１０４ａとの通信を容易にするリレー・プロセッサを含むことができ、またはコントローラ１０６ｂはＩ／Ｏデバイス１０４ｂとの通信を容易にするリレー・プロセッサを含むことができる。その結果、コントローラ１０６ａはＩ／Ｏデバイス１０４ａと相互作用することができ、またはコントローラ１０６ｂはＩ／Ｏデバイス１０４ｂと相互作用することができる。
【００３０】
[0035]  ある実施形態では、主およびリレー・プロセッサは、これらのプロセッサ間においてデータを共有するために使用される通信プロトコルをサポートする。例えば、リレー・プロセッサは、Ｉ／Ｏデバイスにデータを書き込み、Ｉ／Ｏデバイスからデータを読み取るように構成することができる。主プロセッサがＩ／Ｏデバイスへのアクセスを必要とするとき、主プロセッサは、リレー・プロセッサにコマンド（リードまたはライト・コマンド等）をＩ／Ｏデバイスに送信するように指令する信号を、リレー・プロセッサに送信することができる。これによって、主プロセッサが電気的または倫理的にＩ／Ｏデバイスにアクセスすることができなくても、主プロセッサは、リレー・プロセッサをプロキシとして利用して、Ｉ／Ｏデバイスにデータを書き込むこと、またはＩ／Ｏデバイスからデータを受信することが可能になる。
【００３１】
[0036]  主およびリレー・プロセッサ間における特定の相互作用は、システム１００においてサポートされる機能に応じて、様々に変化することができる。例えば、Ｉ／Ｏデバイスがセンサを表すとき、主プロセッサはリレー・プロセッサをプロキシとして使用して、センサからの測定データを得ることができる。Ｉ／Ｏデバイスがアクチュエータを表すとき、主プロセッサはリレー・プロセッサをプロキシとして使用して、制御データをアクチュエータに供給することができる。Ｉ／Ｏデバイスとのリレーをサポートするために、プロセッサ間では任意の他の適した相互作用およびデータ転送をサポートすることができる。
【００３２】
[0037]  主およびリレー・プロセッサ間における通信をサポートするには、種々の手法がある。例えば、双方のプロセッサによってアクセス可能な共有メモリを装備することができ、この共有メモリは、コンピューティング・デバイスに内在すること、または外部に配することができる。また、双方のプロセッサによる同じメモリ位置への同時アクセスを減らすまたは防止するのを補助するのに適した任意のメカニズムを使用することもできる。
【００３３】
[0038]  これらのプロセッサによって使用される通信プロトコルは、リードまたはライト動作を実行すべきか否か定めることができる。ライト動作の場合、通信プロトコルは、書き込まれるデータを定めることができる。リード動作の場合、通信プロトコルは、新たに読み出されたデータを、合意したメモリ位置(agreed-upon memory location)に供給することができる。また、このような通信プロトコルは、要求が未だ進行中か否か、または要求が完了したか否か示す「リターン・ステータス」(return status)を付与することもできる。また、リターン・ステータスは、動作の成功または失敗を示すこともできる。リレー・プロセッサは、そのプロキシとしての役割において、周期的にまたは継続的に共有メモリ・エリアを調べて、新たな要求がないか確認することができる。主プロセッサは、新たな要求をいつ行うことができるか判定するため、または既存の要求がいつ完了したか判定するために、共有メモリ・エリアを監視することができる。
【００３４】
[0039]  この機能の特定例は、回路カードのコントローラ１０６ａまたは１０６ｂへの追加を伴う。回路カードは、未使用プロセッサおよびゲート・アレイの双方を内蔵することができる。ゲート・アレイは、Ｉ／Ｏパスを通信ネットワークまで駆動するロジックを内蔵することができる。例えば、回路カードは、ＨＯＮＥＹＷＥＬＬ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＩＮＣ．，からのＬＣＮＰ４Ｅ回路カードを表すことができる。これは、工業プロセス制御および自動化システムにおいてネットワーク・パスをローカル制御ネットワーク（ＬＣＮ）に装備するために通常使用される。この回路カードは、ＬＣＮ上における通常の通信には必要とされないプロセッサ（ＭＯＴＯＲＯＬＡ  ６８０４０プロセッサ等）を含むことができる。このカードは、コントローラによって使用される通信媒体にカード・アクセスを付与するために、コントローラ内に配置される。しかしながら、コントローラの主プロセッサは、ゲート・アレイのメモリまでの直接パスが全くないため等で、ゲート・アレイにアクセスすることができない場合がある。したがって、コントローラの回路カード上にある未使用のプロセッサを、リレー・プロセッサとして使用することができる。ここで、コントローラの主プロセッサは、他の場合には使用されないプロセッサがリレーとして機能して(act)、主プロセッサのためのプロキシとして、ゲート・アレイにおいてその所望のＩ／Ｏ動作を実行することを要求する。所望の動作が完了した後、プロキシは新たに読み出されたあらゆるデータを含む結果を主プロセッサに通知する。
【００３５】
[0040]  図１は工業プロセス制御および自動化システム１００の一例を示すが、図１には種々の変更を行うことができる。例えば、システム１００は任意の数のセンサ、アクチュエータ、コントローラ、サーバ、操作員端末、ネットワーク、およびその他のコンポーネントを含むことができる。また、図１におけるシステム１００の構成および配置も例示に過ぎない。個々の必要性に応じて、コンポーネントを追加すること、省略すること、組み合わせること、または任意の他の適した構成に入れる(place)こともできる。更に、システム１００の特定のコンポーネントによって特定の機能が実行されると説明した。これは例示のために過ぎない。一般に、制御および自動化システムは、多様に構成変更可能であり(highly configurable)、個々の必要性に応じて任意の適した方法で構成することができる。加えて、図１は、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にするリレー・メカニズムを使用することができる動作環境の一例を示す。この機能は、任意の他の適したシステムにおいて使用することができる。
【００３６】
[0041]  図２は、本開示にしたがって、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にするコンピューティング・デバイス２００の一例を示す。図２に示すコンピューティング・デバイス２００は、例えば、図１に示し以上で説明したコントローラ１０６ａ〜１０６ｂのいずれでも示すことができる。しかしながら、コントローラ１０６ａ〜１０６ｂは任意の他の適した方法で実装できることを注記しておく。
【００３７】
[0042]  図２に示すように、コンピューティング・デバイス２００はバス・システム２０２を含む。バス・システム２０２は、少なくとも１つの処理デバイス２０４、少なくとも１つの記憶デバイス２０６、少なくとも１つの通信ユニット２０８、および少なくとも１つのＩ／Ｏデバイス２１０間における通信をサポートする。
【００３８】
[0043]  処理デバイス２０４は、メモリ２１２にロードすることができる命令を実行する。処理デバイス２０４は、任意の適した数および型式のプロセッサまたはその他のデバイスを、任意の適した構成で含むことができる。処理デバイス２０４の型式の例には、マイクロプロセッサ、マイクロコントローラ、ディジタル信号プロセッサ、フィールド・プログラマブル・ゲート・アレイ、特定用途集積回路、およびディスクリート回路が含まれる。先の用語を使用すると、処理デバイス２０４は、デバイス２００の「主」プロセッサを表すと言うことができる。
【００３９】
[0044]  メモリ２１２および永続的ストレージ２１４は、記憶デバイス２０６の例であり、情報（データ、プログラム・コード、および／またはその他の適した一時的な情報もしくは永続的な情報等）を格納し、その検索を容易にすることができる任意の構造（１つまたは複数）を表す。メモリ２１２は、ランダム・アクセス・メモリあるいは任意の他の適した揮発性または不揮発性記憶デバイス（１つまたは複数）を表すことができる。永続的ストレージ２１４は、リード・オンリ・メモリ、ハード・ドライブ、フラッシュ・メモリ、または光ディスクのような、データの長期格納(longer-term storage)をサポートする１つ以上のコンポーネントまたはデバイスを内蔵することができる。
【００４０】
[0045]  通信ユニット２０８は、他のシステムまたはデバイスとの通信をサポートする。例えば、通信ユニット２０８は、ネットワークを通じた通信を容易にするネットワーク・インターフェース・カードまたはワイヤレス・トランシーバを含むことができる。通信ユニット２０８は、あらゆる適した物理的通信リンクまたはワイヤレス通信リンク（１つまたは複数）を介した通信をサポートすることができる。
【００４１】
[0046]  Ｉ／Ｏユニット２１０は、データの入力および出力に対応する(allow for)。例えば、Ｉ／Ｏデバイス２１０は、キーボード、マウス、キーパッド、タッチスクリーン、またはその他の適した入力デバイスを介したユーザ入力のための接続を設けることができる。また、Ｉ／Ｏユニット２１０は、出力をディスプレイ、プリンタ、またはその他の適した出力デバイスに送ることができる。加えて、Ｉ／Ｏユニット２１０は、１つ以上のＩ／Ｏデバイス１０４ａまたは１０４ｂのような、Ｉ／Ｏデバイスとの通信および相互作用をサポートすることができる。
【００４２】
[0047]  先に注記したように、処理デバイス２０４と、処理デバイス２０４にはどのようにしてもアクセスすることができない少なくとも１つのＩ／Ｏデバイスとの間における通信をサポートするために、少なくとも１つのリレー処理デバイス２１６を使用することができる。具体的には、リレー処理デバイス２１６は、Ｉ／Ｏデバイスにアクセスし、処理デバイス２０４に情報を提供するまたは処理デバイス２０４からの情報を受信するためのリレーとして機能することができる。例えば、少なくとも１つのリレー処理デバイス２１６および少なくとも１つのＩ／Ｏユニット２１０は、デバイス２００に結合することができる回路カードに内在することができる。処理デバイス２０４および２１６は、これらの処理デバイス間でデータを共有するために使用される通信プロトコルをサポートするように構成することができる。例えば、通信プロトコルは、処理デバイス２０４がＩ／Ｏデバイスにアクセスすることができない場合に、このＩ／Ｏデバイスが関与するリードまたはライト動作をリレー処理デバイス２１６が実行するように、処理デバイス２０４が要求することを許容するのでもよい。また、通信プロトコルは、成功したライト動作の承認、または成功したリード動作の間に新たに読み出されたデータのような、要求された動作についての情報をリレー処理デバイス２１６が戻すことを許容するのでもよい。共有メモリが使用されるか否かに応じて、処理デバイス２０４および２１６は、メモリ２１２または永続的ストレージ２１４内部にあるような、共有メモリへのアクセスおよびその使用もサポートすることができる。
【００４３】
[0048]  図２はアクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にするコンピューティング・デバイス２００の一例を示すが、図２に対して種々の変更を行うこともできる。例えば、コンピューティング・デバイスは多種多様の構成を取ることができる。図２に示すコンピューティング・デバイスは、１つの実施態様例を示すことを意図するのであり、本開示を特定の型式のコンピューティング・デバイスに限定するのではない。
【００４４】
[0049]  図３は、本開示にしたがって、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にするコンピューティング・デバイス３００の特定例(specific example)を示す。図３に示すように、このコンピューティング・デバイス３００の特定例は、コンピューティング・ハードウェア３０４と共に実行するエミュレーション・アーキテクチャ３０２を含む。また、コンピューティング・デバイス３００は、メディア・アクセス・ユニット（ＭＡＵ）３１０を介したＬＣＮ３０８へのアクセスを容易にするインターフェース・カード３０６も含む。コンピューティング・ハードウェア３０４は、ここでは、スモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）、ＨＯＮＥＹＷＥＬＬ  ＰＤＧビデオ・インターフェース、ＬＣＮインターフェース（ＬＣＮＩ）、およびワーク・ステージョン・インターフェース（ＷＳＩ）のような、種々のデバイス・インターフェース３１２を含む。また、コンピューティング・ハードウェア３０４は、コンピューティング・ハードウェア３０４によって生成される割り込みに関連する情報を格納するために使用される少なくとも１つのレジスタ３１４も含む。しかしながら、コンピューティング・ハードウェア３０４は任意の他のまたは追加のインターフェースあるいはメモリを含むことができることを注記しておく。
【００４５】
[0050]  エミュレーション・アーキテクチャ３０２は、特定の型式のプロセッサ（この例では６８０４０プロセッサ）を他の型式のプロセッサ（ＩＮＴＥＬ  ｘ８６プロセッサ等）上でエミュレートするために使用されるエミュレーション・フレームワークを含む。このフレームワークは、カーネル・エミュレータ３１６、命令エミュレータ３１８、およびＩ／Ｏエミュレータ３２０を含む。これらの名称が暗示するように、カーネル・エミュレータ３１６は、いわゆるカーネル機能（通例では主プロセッサによって実行されない計算機能(compute functions)であり、その例の名称を以下で挙げる）をエミュレートするために使用される。また、命令エミュレータ３１８は、プロセッサ上における命令の実行をエミュレートするために使用され、Ｉ／Ｏエミュレータ３２０は、プロセッサ上において入力および出力動作をエミュレートするために使用される。カーネル・エミュレータ３１６は、エミュレートされる特定のカーネルに応じて、種々の型式のエミュレーションを含むことができる。例えば、カーネル・エミュレータ３１６は、汎用非同期送受信回路（ＵＡＲＴ：universal asynchronous receiver/transmitter）エミュレータ、および６８０４０プロセッサ用のクロック・エミュレータを含むことができる。命令エミュレータ３１８は、カーネル・エミュレータ３１６内部で実行されない種々の命令を実行する(implement)するために使用される。例えば、６８０４０プロセッサ上において旧式ソース・コードの実行をエミュレートするために、命令エミュレータ３１８を使用して旧式ソース・コードの種々の命令を実行することができる。ある実施形態では、命令エミュレータ３１８は、ＭＩＣＲＯＡＰＬ  ＬＴＤからの命令エミュレータを表すことができる。
【００４６】
[0051]  この例におけるインターフェース・カード３０６は、ゲート・アレイ３２２およびメモリ３２４を含む。ゲート・アレイ３２２は、外部ネットワーク、この場合ではＬＣＮへの物理接続を設けるように機能する。メモリ３２４は、インターフェース・カード３０６中を流れるデータを格納するために使用される。ゲート・アレイ３２２は、外部ネットワークへの接続を設ける任意の適した回路を含む。メモリ３２４は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）のような、情報を格納しその引き出しを容易にするのに適した任意の構造を含む。また、インターフェース・カード３０６は、リレー・プロセッサ３２６も含む。リレー・プロセッサ３２６は、前述のように、主プロセッサ（エミュレーション・アーキテクチャ３０２を実行している）とインターフェース３１２との間においてリレーとして機能する。この特定例では、リレー・プロセッサ３２６は、以上で説明した４つのインターフェース３１２（ＬＣＮＩ、ＳＣＳＩ、ＰＤＧ、およびＷＳＩ）を介してＩ／Ｏデバイスへのアクセスを付与するが、リレー・プロセッサ３２６は、任意の適したインターフェースを介して、任意の適したＩ／Ｏデバイスへのアクセスを付与することができる。
【００４７】
[0052]  この例では、Ｉ／Ｏエミュレータ３２０は、リレー・プロセッサ３２６を介して通信をインターフェース３１２へまたは通信をインターフェース３１２から導くように機能する複数のリレー３２８を含む。各型式のインターフェース３１２はそれ自体のリレー３２８を有するので、エミュレーション・アーキテクチャ３０２の一部として実行するプログラムは、インターフェース３１２が実際には通常の通信によってアクセスすることができないかもしれないことを全く知らずに、リレー３２８を介してインターフェース３１２にアクセスすることができる。
【００４８】
[0053]  エミュレータ３１６〜３２０は、アクセス通知および割り込み通知を伝達および交換する。アクセス通知は、１つのエミュレータが他のエミュレータに関連するデータまたはその他の情報にアクセスする必要があることを示すために使用される。割り込み通知は、１つのエミュレータが他のエミュレータに、割り込みが発生したので、他のエミュレータはこの割り込みに応答して適した動作を行えることを通知するために使用される。割り込み監視スレッド３３０は、ここでは、コンピューティング・ハードウェア３０４からの割り込みを精査し(scan)、追加の割り込み通知をエミュレータ３１８に送付する(provide)ために使用される。
【００４９】
[0054]  図３におけるコンピューティング・デバイス３００の種々のコンポーネント間におけるデータの移送をサポートするために、１つ以上の共有メモリ３３２ａ〜３３２ｂを使用することができる。各共有メモリ３３２ａ〜３３２ｂは、データを格納することができる任意の適した構造を表す(denote)。ここでは別個のメモリとして示すが、共有メモリ３３２ａ〜３３２ｂは、１つのメモリ・デバイスの異なる部分を示すこともできる。
【００５０】
[0055]  図３は、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にするコンピューティング・デバイス３００の一特定例を示すが、図３に対して種々の変更を行うことができる。例えば、図３における種々のコンポーネントを組み合わせること、更に再分割すること、または省略することができ、更に特定の必要性に応じて追加のコンポーネントを追加することができる。また、図３は６８０４０プロセッサが関与する１つの特定的なエミュレーションを示すが、異なるプロセッサが関与する任意の他の適したエミュレーションもサポートすることができる。
【００５１】
[0056]  図４および図５は、本開示にしたがって、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にする方法例を示す。具体的には、図４は、第１プロセッサによって直接アクセスすることができないＩ／Ｏデバイスにアクセスしようとする第１プロセッサ（主プロセッサ）によって使用される方法例４００を示し、図５は、第１プロセッサのためにプロキシとして動作する第２プロセッサ（リレー・プロセッサ）によって使用される方法例５００を示す。説明を容易にするために、図１のシステム１００において動作するコントローラ１０６ａ〜１０６ｂの内１つに関して、方法４００および５００を説明するが、これらの方法は、任意の他の適したデバイスとでも、そして任意の他の適したシステムにおいても使用することができる。
【００５２】
[0057]  図４に示すように、ステップ４０２において、Ｉ／Ｏデバイスへのアクセスが必要とされるまたは望まれるという判断を、第１プロセッサにおいて行う。これは、例えば、コントローラ１０６ａまたは１０６ｂの処理デバイス２０４が、コントローラ１０６ａまたは１０６ｂの制御ロジックを実行するため等に、Ｉ／Ｏデバイス１０４ａまたは１０４ｂへのリードまたはライト・アクセスが必要とされると判断することを含むことができる。
【００５３】
[0058]  識別されたＩ／Ｏデバイスは、第１プロセッサによって電気的または論理的にアクセスすることができない場合もある。その場合、第１プロセッサは、ステップ４０４において、Ｉ／Ｏデバイスにアクセスすることができる第２プロセッサに信号を送信する。これは、例えば、コントローラ１０６ａまたは１０６ｂにおける処理デバイス２０４が、Ｉ／Ｏデバイス１０４ａまたは１０４ｂにアクセスすることができるリレー処理デバイス２１６に信号を送信することを含むことができる。第１プロセッサは、第１プロセッサに格納されている表またはその他の情報を使用すること等によって、任意の適した方法で、第２プロセッサをＩ／Ｏデバイスのためのプロキシとして識別することができる。第２プロセッサに送られる信号は、例えば、所望のコマンドがリード・コマンドかまたはライト・コマンドかに応じて、任意の適した内容を有することができる。
【００５４】
[0059]  ステップ４０６において、第２プロセッサがコマンドをＩ／Ｏデバイスに送信したという指示を、第１プロセッサにおいて受信する。これは、例えば、リードまたはライト・コマンドがリレー処理デバイス２１６からＩ／Ｏデバイス１０４ａまたは１０４ｂに送信されたことを示すリターン・ステータスを、処理デバイス２０４が受信したことを含むことができる。ステップ４０８において、コマンドが正常に完了したか否かという指示を、第１プロセッサにおいて受信する。これは、例えば、リードまたはライト・コマンドが、Ｉ／Ｏデバイス１０４ａまたは１０４ｂを使用して、実行に成功したか否かを示すリターン・ステータスを、処理デバイス２０４が受信することを含むことができる。必要であれば、ステップ４１０においてコマンドの結果を得るために共有メモリにアクセスする。これは、例えば、処理デバイス２０４が、Ｉ／Ｏデバイス１０４ａまたは１０４ｂから読み出されたデータを得るために共有メモリ位置にアクセスすることを含むことができる。尚、リターン・ステータス・インディケータは、共有メモリを介した受信も可能であることを注記しておく。
【００５５】
[0060]  この時点において、第１プロセッサは任意の所望の機能を実行することができる。例えば、第１プロセッサは、得られたデータを使用して制御ロジックを実行することができる。また、第１プロセッサは、このデータを使用して、直接あるいは同じプロキシ・プロセッサまたは異なるプロキシ・プロセッサを介して間接的に、アクセスすべき他のＩ／Ｏデバイスを識別することもできる。
【００５６】
[0061]  図５に示すように、ステップ５０２において、第２プロセッサが第１プロセッサから信号を受信する。これは、例えば、リレー処理デバイス２１６が処理デバイス２０４から信号を受信することを含むことができ、リレー処理デバイス２１６は、処理デバイス２０４がアクセスすることを望むＩ／Ｏデバイス１０４ａまたは１０４ｂにアクセスすることができる。応答して、ステップ５０４において、第２プロセッサは、第１プロセッサの代わりに、コマンドをＩ／Ｏデバイスに送信する。これは、例えば、リレー処理デバイス２１６が、処理デバイス２０４から受信した信号に基づいて、Ｉ／Ｏデバイス１０４ａまたは１０４ｂに対してリードまたはライト・コマンドを形成する(construct)ことを含むことができる。
【００５７】
[0062]  ステップ５０６において、第２プロセッサがコマンドをＩ／Ｏデバイスに送信したという指示を、第１プロセッサに送信する。これは、例えば、リードまたはライト・コマンドがリレー処理デバイス２１６からＩ／Ｏデバイス１０４ａまたは１０４ｂに送信されたことを示すリターン・ステータスを、リレー処理デバイス２１６が付与することを含むことができる。ステップ５０８において、コマンドが正常に完了したか否かの指示を、第１プロセッサに送信する。これは、例えば、リードまたはライト・コマンドが、Ｉ／Ｏデバイス１０４ａまたは１０４ｂを使用して、実行に成功したか否かを示すリターン・ステータスを、リレー処理デバイス２１６が付与することを含むことができる。必要であれば、ステップ５１０において、コマンドの結果を格納するために共有メモリにアクセスする。これは、例えば、リレー処理デバイス２１６が、Ｉ／Ｏデバイス１０４ａまたは１０４ｂから読み出されたデータを格納するために、共有メモリ位置にアクセスすることを含むことができる。尚、リターン・ステータス・インディケータは、共有メモリを介した付与も可能であることを注記しておく。
【００５８】
[0063]  図４および図５は、アクセス不可能なＩ／Ｏデバイスとのプロセッサ通信を容易にする方法４００および５００の例を示すが、図４および図５に対して種々の変更を行うことができる。例えば、一連のステップとして示されているが、各図に示す種々のステップは、重複すること、並列に実行すること、異なる順序で実行すること、または複数回実行することも可能である。更に、個々の必要性に応じて、いくつかのステップを組み合わせることまたは削除することもでき、追加のステップを追加することもできる。
【００５９】
[0064]  尚、以上の説明において、リレー・プロセッサの使用が、主プロセッサのためにＩ／Ｏデバイスへのアクセスを付与するようにしばしば説明されたが、この場合主およびリレー・プロセッサは同じコンピューティング・デバイス（同じコントローラ１０６ａまたは１０６ｂ等）と関連付けられていることを注記しておく。しかしながら、このようにする必要はなく、他の例では、主およびリレー・プロセッサが異なるデバイスの一部を形成することもできる。例えば、１つのコントローラ１０６ａにおける主プロセッサが、他のコントローラ１０６ｂにおけるリレー・プロセッサと通信して、Ｉ／Ｏデバイス１０４ｂと相互作用することができ、あるいは１つのコントローラ１０６ｂにおける主プロセッサが他のコントローラ１０６ａにおけるリレー・プロセッサと通信して、Ｉ／Ｏデバイス１０４ａと相互作用することができる。異なるデバイスにおけるプロセッサがこのように相互作用することを可能にするために、適したデバイス間通信をサポートすることができる。
【００６０】
[0065]  ある実施形態では、本特許文書において説明した種々の機能が、コンピュータ読み取り可能プログラム・コードで形成され、コンピュータ読み取り可能媒体に埋め込まれたコンピュータ・プログラムによって実現またはサポートされる。「コンピュータ読み取り可能プログラム・コード」という語句は、任意の型式のコンピュータ・コードを含み、ソース・コード、オブジェクト・コード、および実行可能コードを含む。「コンピュータ読み取り可能媒体」という語句は、リード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、ハード・ディスク・ドライブ、コンパクト・ディスク（ＣＤ）、ディジタル・ビデオ・ディスク（ＤＶＤ）のような、コンピュータによってアクセス可能な任意の種類の媒体、または任意の他の種類のメモリを含む。「非一時的」コンピュータ読み取り可能媒体は、一時的電気信号またはその他の信号を移送する有線、ワイヤレス、光、またはその他の通信リンクを除外する。非一時的コンピュータ読み取り可能媒体には、データを永続的に格納することができる媒体、および書き換え可能光ディスクまたは消去可能メモリ・デバイスのような、データを格納し後に上書きすることができる媒体が含まれる。
【００６１】
[0066]  本特許文書全体において使用した特定の単語および語句の定義を明記することは利点があると考えられる。「アプリケーション」および「プログラム」という用語は、適したコンピュータ・コード（ソース・コード、オブジェクト・コード、または実行可能コードを含む）で実現するために構成された(adapt)１つ以上のコンピュータ・プログラム、ソフトウェア・コンポーネント、命令の集合、手順、関数、オブジェクト、クラス、インスタンス、関連データ、またはその一部を指す。「通信する」という用語およびその派生語は、直接および間接的な通信双方を含む。「含む」(include)および「備える」(comprise)という用語、ならびにその派生語は、限定のない包含を意味する。「または」という用語は、包含的であり、および／またはを意味する。「と関連する」という語句、およびその派生語は、含む、内部に含まれる、相互接続する、内蔵する、内部に収容される、〜にまたは〜と接続する、〜にまたは〜と結合する、〜と通信可能である、〜と協働する、交互配置する(interleave)、並置する、近接する、〜にまたは〜と境界を接する、有する、プロパティを有する、〜にまたは〜と関係を有する等を意味することができる。「少なくとも１つの」という句は、項目のリストと共に使用される場合、羅列された項目の内１つ以上の異なる組み合わせを使用できることを意味し、リストにおける１つの項目だけが必要とされればよい。例えば、「Ａ、Ｂ、およびＣの内少なくとも１つ」は、Ａ、Ｂ、Ｃ、ＡおよびＢ、ＡおよびＣ、ＢおよびＣ、ＡおよびＢおよびＣという組み合わせのいずれも含む。
【００６２】
[0067]  本願における説明は、いずれの特定のエレメント、ステップ、または機能も、請求項の範囲に含まれなければならない必須のまたは肝要なエレメントであることを含意するというように読解してはならない。特許付与される主題の範囲は、許可された請求項によってのみ定められる。更に、特定の請求項において「ための手段」(means for)または「ためのステップ」(step for)という単語そのものが明示的に使用され、機能を識別する分詞句(participle phrase)がその後に続くのでなければ、いずれの請求項も、添付する請求項または請求項の要素のいずれに関しても、３５Ｕ．Ｓ．Ｃ．§１１２（ｆ）を援用する(invoke)ことを意図するのではない。「メカニズム」、「モジュール」、「デバイス」、「ユニット」、「コンポーネント」、「エレメント」、「部材」、「装置」、「機械」、「システム」、「プロセッサ」、または「コントローラ」等の（しかし、これらに限定されない）用語が請求項において使用される場合、関連技術における当業者には周知であり、請求項自体の特徴によって更に変更または改良された構造を示すことが理解され、そしてそれを意図するのであって、３５Ｕ．Ｓ．Ｃ．§１１２（ｆ）を援用する(invoke)ことを意図するのではない。
【００６３】
[0068]  本開示は、特定の実施形態および全体的に関連する方法について説明したが、これらの実施形態および方法の改変(alternation)および置換(permutation)は当業者には明白であろう。したがって、実施形態例についての以上の説明は、本開示を定めるのでも、制約するのでもない。更に、以下の特許請求の範囲によって定められる本開示の主旨および範囲から逸脱することなく、その他の変更(change)、交換(substitution)、および改変も可能である。
【図１】
2019506680.tif 000003
【図２】
2019506680.tif 000004
【図３】
2019506680.tif 000005
【図４】
2019506680.tif 000006
【図５】
2019506680.tif 000007
【手続補正書】
【提出日】平成30年10月10日(2018.10.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１処理デバイス（１４２、１４８、２０４）によって、信号を第２リレー処理デバイス（２１６、３２６）に送信するステップ（４０４）であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも１つを、前記第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、前記第２リレー処理デバイスに伝えるメッセージを含む、ステップと、
前記第１処理デバイスによって、前記第２リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信したという指示を受信するステップ（４０６）と、
を含む、方法。
【請求項２】
前記第１処理デバイスを使用して、前記リード・コマンドの結果を得るために、メモリ（１４４、１５０、２０６、２１２、２１４）にアクセスするステップ（４１０）を更に含み、
前記メモリが、前記第２リレー処理デバイスと共有されるメモリ（３３２ａ、３３２ｂ）を含む、請求項１に記載方法。
【請求項３】
信号を第２リレー処理デバイス（２１６、３２６）に送信するように構成された第１処理デバイス（１４２、１４８、２０４）であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも１つを、前記第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、前記第２リレー処理デバイスに伝えるメッセージを含む、第１処理デバイス（１４２、１４８、２０４）を備え、
前記第１処理デバイスが、更に、前記第２リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信したという指示を受信するように構成される、装置。
【請求項４】
前記第１処理デバイスが、コンピューティング・デバイス（１０６ａ、１０６ｂ）の処理デバイスを含み、前記コンピューティング・デバイスが、前記第２リレー処理デバイスと、ネットワーク（３０８）を通じて通信するように構成された回路（２０８、３２２）とを含む回路カード（３０６）に結合されるように構成される、請求項３に記載の装置。
【請求項５】
第２リレー処理デバイス（２１６、３１６）において、第１処理デバイス（１４２、１４８、２０４）から信号を受信するステップ（５０２）であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも１つを、前記第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、前記第２リレー処理デバイスに伝えるメッセージを含む、ステップと、
前記第２リレー処理デバイスから、前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信するステップ（５０４）と、
前記第２リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信したという指示を、前記第１処理デバイスに送信するステップ（５０６）と、
を含む、方法。
【請求項６】
前記第２リレー処理デバイスを使用して、前記リード・コマンドの結果を格納するためにメモリ（１４４、１５０、２０６、２１２、２１４）にアクセスするステップ（５１０）を更に含み、前記メモリが、前記第１処理デバイスと共有されるメモリ（３３２ａ、３３２ｂ）を含む、請求項５に記載の方法。
【請求項７】
第１処理デバイス（１４２、１４８、２０４）と共に使用する装置であって、
前記第１処理デバイスから信号を受信するように構成された第２リレー処理デバイス（２１６、３２６）であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも１つを、前記第１処理デバイスによってアクセスすることができない入力／出力（Ｉ／Ｏ）デバイス（１０４ａ、１０４ｂ、３１２）に送信するように、前記第２リレー処理デバイスに伝えるメッセージを含む、第２リレー処理デバイス（２１６、３２６）を備え、
前記第２リレー処理デバイスが、更に、前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信するように構成され、
前記第２リレー処理デバイスが、更に、前記第２リレー処理デバイスが、前記リード・コマンドおよびライト・コマンドの内少なくとも１つを前記Ｉ／Ｏデバイスに送信したという指示を、前記第１処理デバイスに送信するように構成される、装置。
【請求項８】
回路カード（３０６）が、前記第２リレー処理デバイスと、ネットワーク（３０８）を通じて通信するように構成された回路（２０８、３２２）とを含み、前記回路カードが、前記第１処理デバイスを含むコンピューティング・デバイス（１０６ａ、１０６ｂ）内にインストールされるように構成される、請求項７に記載の装置。
【国際調査報告】
2019506680.tif 000008
2019506680.tif 000009