JP6938520B2 - アクセス不可能な入力/出力(i/o)デバイスとのプロセッサ通信を容易にするリレー・メカニズム - Google Patents

アクセス不可能な入力/出力(i/o)デバイスとのプロセッサ通信を容易にするリレー・メカニズム Download PDF

Info

Publication number
JP6938520B2
JP6938520B2 JP2018541197A JP2018541197A JP6938520B2 JP 6938520 B2 JP6938520 B2 JP 6938520B2 JP 2018541197 A JP2018541197 A JP 2018541197A JP 2018541197 A JP2018541197 A JP 2018541197A JP 6938520 B2 JP6938520 B2 JP 6938520B2
Authority
JP
Japan
Prior art keywords
processing device
relay
processor
relay processing
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018541197A
Other languages
English (en)
Other versions
JP2019506680A (ja
Inventor
ラクリン,エリオット
カーク,デヴィッド・エル
クリシュナマーシー,アナンサパドマナバ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honeywell International Inc
Original Assignee
Honeywell International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell International Inc filed Critical Honeywell International Inc
Publication of JP2019506680A publication Critical patent/JP2019506680A/ja
Application granted granted Critical
Publication of JP6938520B2 publication Critical patent/JP6938520B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Systems (AREA)
  • Selective Calling Equipment (AREA)

Description

[0001] 本開示は、一般的には、コンピューティング・デバイスに関する。更に特定すると、本開示は、アクセス不可能な入力/出力(I/O)デバイスとのプロセッサ通信を容易にするリレー・メカニズムを対象とする。
[0002] コンピューティング・デバイスは、工業プロセス制御および自動化システムにおいて入力/出力(I/O)デバイスと常時通信する必要がある。しかしながら、工業プロセス制御および自動化システムにおけるコンピューティング・デバイスには、旧来のI/Oデバイスが新型のコンピューティング・デバイスによって電気的または論理的にアクセスすることができないとき等に、種々のI/Oデバイスと通信できないものもある。特定例として、ある状況において、特定の(particular)コンピューティング・デバイスが特定のI/Oデバイス(specific I/O device)と相互作用する必要があるが、ボード設計の問題(issue)またはその他の問題(problem)のために、コンピューティング・デバイスがI/Oデバイスにアクセスすることができない可能性がある。
[0003] 本開示は、アクセス不可能な入力/出力(I/O)デバイスとのプロセッサ通信を容易にするリレー・メカニズムに関する。
[0004] 第1実施形態では、方法は、第1処理デバイスによって、信号を第2リレー処理デバイスに送信するステップを含む。この信号は、リード・コマンドおよび/またはライト・コマンドを、第1処理デバイスによるアクセスが不可能なI/Oデバイスに送信するように、第2リレー処理デバイスに伝えるメッセージを含む。また、この方法は、第1処理デバイスによって、第2リレー処理デバイスがリード・コマンドおよび/またはライト・コマンドをI/Oデバイスに送信したという指示を受信するステップも含む。
[0005] 第2実施形態では、装置は、第2リレー処理デバイスに信号を送信するように構成された第1処理デバイスを含む。この信号は、リード・コマンドおよび/またはライト・コマンドを、第1処理デバイスによるアクセスが不可能なI/Oデバイスに送信するように、 第2リレー処理デバイスに伝えるメッセージを含む。また、第1処理デバイスは、第2リレー処理デバイスがリード・コマンドおよび/またはライト・コマンドをI/Oデバイスに送信したという指示を受信するように構成される。
[0006] 第3実施形態では、方法は、第2リレー処理デバイスにおいて第1処理デバイスから信号を受信するステップを含む。この信号は、リード・コマンドおよび/またはライト・コマンドを、第1処理デバイスによるアクセスが不可能なI/Oデバイスに送信するように、第2リレー処理デバイスに伝えるメッセージを含む。また、この方法は、第2リレー処理デバイスから、リード・コマンドおよび/またはライト・コマンドをI/Oデバイスに送信するステップも含む。更に、この方法は、第1処理デバイスに、第2リレー処理デバイスがリード・コマンドおよび/またはライト・コマンドをI/Oデバイスに送信したという指示を送信するステップも含む。
[0007] 第4実施形態では、第1処理デバイスと共に使用する装置は、第1処理デバイスから信号を受信するように構成された第2リレー処理デバイスを含む。この信号は、リード・コマンドおよび/またはライト・コマンドを、第1処理デバイスによるアクセスが不可能なI/Oデバイスに送信するように、第2リレー処理デバイスに伝えるメッセージを含む。また、第2リレー処理デバイスは、リード・コマンドおよび/またはライト・コマンドをI/Oデバイスに送信するように構成される。更に、第2リレー処理デバイスは、第1処理デバイスに、第2リレー処理デバイスがリード・コマンドおよび/またはライト・コマンドをI/Oデバイスに送信したという指示を送信するように構成される。
[0008] 以下の図、説明、および特許請求の範囲から、他の技術的特徴も当業者には容易に分かることができよう。
[0009] 本開示の理解を一層深めるために、これより以下の説明について、添付図面と併せて検討する。
図1は、本開示による工業プロセス制御および自動化システムの一例を示す。 図2は、本開示にしたがって、 アクセス不可能な入力/出力(I/O)デバイスとのプロセッサ通信を容易にするコンピューティング・デバイスの一例を示す。 図3は、本開示にしたがって、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にするコンピューティング・デバイスの具体例を示す。 図4は、本開示にしたがって、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にする方法の例を示す。 図5は、本開示にしたがって、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にする方法の例を示す。
[0014] 以下で論ずる図1から図5、および本特許文書において本発明の原理を説明するために使用する種々の実施形態は、一例に過ぎず、本発明の範囲を限定するように解釈しては決してならない。本発明の原理は、適切に構成されたデバイスまたはシステムであればいずれの形式であっても実現できることは、当業者には理解されよう。
[0015] 図1は、本開示による工業プロセス制御および自動化システム100の一例を示す。図1に示すように、システム100は、少なくとも1つの製品または他の材料の生産あるいは処理を容易にする種々のコンポーネントを含む。例えば、システム100は、ここでは、1つまたは複数のプラント102a〜102nにおいてコンポーネントに対する制御を容易にするために使用される。各プラント102a〜102nは、少なくとも1つの製品または他の材料を生産するための1つ以上の製造設備等の、1つ以上の処理設備(またはその1つ以上の部分)を表す。一般に、各プラント102a〜102nは、1つ以上のプロセスを実施し、個々にまたは纏めてプロセス・システムと呼ぶことができる。プロセス・システムとは、一般に、なんらかの方法で1つ以上の製品または他の材料を処理するように構成された任意のシステムまたはその一部を表す。
[0016] 図1において、システム100は、プロセス制御のPurdueモデルを使用して実装される。Purdueモデルでは、「レベル0」は1つ以上の入力/出力デバイス104a〜104bを含むことができる。I/Oデバイス104a〜104bは、プロセス・システムにおいて、多種多様の機能のうち任意のものを実行することができるコンポーネントを表す。I/Oデバイス104a〜104bは、センサ、アクチュエータ等を含むことができる。センサは、温度、圧力、流量(flow rate)のような、プロセス・システムにおける多種多様の特性を測定することができる。アクチェータは、プロセス・システムにおいて多種多様の特性を変化させることができる。センサは、プロセス・システムにおいて1つ以上の特性を測定するのに適した任意の構造を含む。アクチュエータは、プロセス・システムにおいて1つ以上の状態に対して動作する、または1つ以上の状態に作用するのに適した任意の構造を含む。I/Oデバイス104a〜104bは、任意の適したプロセス・システムにおいて任意の他のまたは追加のコンポーネントを表すことができる。
[0017] Purdueモデルでは、「レベル1」は、少なくとも2つのコントローラ106a〜106bを含むことができる。とりわけ、各コントローラ106a〜106bは、1つ以上の他のI/Oデバイス(1つ以上のアクチュエータ等)の動作を制御するために、1つ以上のI/Oデバイス(1つ以上のセンサ等)からの測定値を使用することができる。各コントローラ106a〜106bは、1つ以上のI/Oデバイス104a〜104bと相互作用するのに適した任意の構造を含む。各コントローラ106a〜106bは、例えば、比例−積分−微分(PID)コントローラ、またはロバスト多変数予測制御技術(RMPCT)コントローラのような多変数コントローラ、あるいはモデル予測制御(MPC)または他の高度予測制御(APC)を実装するその他の型式のコントローラを表すことができる。特定例として、各コントローラ106a〜106bは、リアル・タイム・オペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0018] 2つのネットワーク108がコントローラ106a〜106bに結合されている。ネットワーク108は、コントローラ106aおよび106bへデータを移送する、ならびにコントローラ106aおよび106bからデータを移送すること等によって、コントローラ106a〜106bとの相互作用を容易にする。ネットワーク108は、任意の適したネットワークまたはネットワークの組み合わせを表すことができる。特定例として、ネットワーク108は、HONEYWELL INTERNATIONAL INCからのFAULT TOLERANT ETHERNET(FTE)ネットワークのような、イーサネット・ネットワークの冗長対を表すことができる。
[0019] 少なくとも1つのスイッチ/ファイアウォール110が、ネットワーク108を2つのネットワーク112に結合する。スイッチ/ファイアウォール110は1つのネットワークから他のネットワークにトラフィックを移送することができる。また、スイッチ/ファイアウォール110は、1つのネットワーク上のトラフィックが、他のネットワークに到達するのを阻止することもできる。スイッチ/ファイアウォール110は、HONEYWELL CONTROL FIREWALL (CF9)デバイスのような、ネットワーク間で通信を行うのに適した任意の構造を含む。ネットワーク112は、FTEネットワークのような、任意の適したネットワークを表すことができる。
[0020] Purdueモデルでは、「レベル2」は、ネットワーク112に結合された1つ以上の機械レベル・コントローラ114を含むことができる。機械レベル・コントローラ114は、工業用機器(ボイラまたは他の機械等)の特定の1つと関連付けることができるコントローラ106a〜106bおよびI/Oデバイス104a〜104bの動作および制御をサポートするために種々の機能を実行する。例えば、機械レベル・コントローラ114は、センサからの測定データまたはアクチュエータ用制御信号のような、コントローラ106a〜106bによって収集または生成された情報を記録する(log)ことができる。また、機械レベル・コントローラ114は、コントローラ106a〜106bの動作を制御するアプリケーションを実行し、これによってI/Oデバイス104a〜104bの動作を制御することができる。加えて、機械レベル・コントローラ114は、エッジ・アクセスをコントローラ106a〜106bに付与することができる。機械レベル・コントローラ114の各々は、機械またはその他の個々の機器へのアクセスを付与し、動作の制御を行い、またはこれらに関係する動作を行うのに適した任意の構造を含む。機械レベル・コントローラ114の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。図示しないが、異なる機械レベル・コントローラ114を使用して、プロセス・システムにおける異なる機器を制御することができる(各機器は、1つ以上のコントローラ106a〜106bおよびI/Oデバイス104a〜104bと関連付けられる)。
[0021] 1つ以上の操作員端末116がネットワーク112に結合されている。操作員端末116は、機械レベル・コントローラ114にユーザ・アクセスを付与するコンピューティング・デバイスまたは通信デバイスを表す。次いで、機械レベル・コントローラ114はユーザ・アクセスをコントローラ106a〜106bに(そして、場合によってはI/Oデバイス104a〜104bに)付与することができる。特定例として、操作員端末116は、コントローラ106a〜106bおよび/または機械レベル・コントローラ114によって収集された情報を使用して、I/Oデバイス104a〜104bの動作履歴を、ユーザに見直しさせることができる。また、操作員端末116は、I/Oデバイス104a〜104b、コントローラ106a〜106b、または機械レベル・コントローラ114の動作を、ユーザに調節させることもできる。加えて、操作員端末116は、コントローラ106a〜106bまたは機械レベル・コントローラ114によって生成された警告(warning)、警報(alert)、あるいはその他のメッセージまたは表示を受信し表示することができる。操作員端末116の各々は、システム100における1つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末116の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0022] 少なくとも1つのルータ/ファイアウォール118が、ネットワーク112を2つのネットワーク120に結合する。ルータ/ファイアウォール118は、安全なルータまたは複合ルータ/ファイアウォール(combination router/firewall)等の、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク120は、FTEネットワークのような、任意の適したネットワークを表すことができる。
[0023] Purdueモデルでは、「レベル3」は、ネットワーク120に結合された1つ以上のユニット−レベル・コントローラ(unit-level controller)122を含むことができる。各ユニット−レベル・コントローラ122は、通例、プロセス・システムにおける1つのユニットと関連付けられ、プロセスの少なくとも一部を実現するために一緒に動作する異なる機械の集合体を表す。ユニット−レベル・コントローラ122は、それよりも低いレベルにあるコンポーネントの動作および制御をサポートするために、種々の機能を実行する。例えば、ユニット−レベル・コントローラ122は、それよりも低いレベルにあるコンポーネントによって収集または生成された情報を記録し、それよりも低いレベルにあるコンポーネントを制御するアプリケーションを実行し、それよりも低いレベルにあるコンポーネントに安全なアクセスを付与することができる。ユニット−レベル・コントローラ122の各々は、1つ以上の機械またはプロセス・ユニットにおける他の機器にアクセスを付与し、動作の制御を行い、関係する動作を行うのに適した任意の構造を含む。ユニット−レベル・コントローラ122の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。図示しないが、プロセス・システムにおける異なるユニットを制御するために、異なるユニット−レベル・コントローラ122を使用することができる(各ユニットは、1つ以上の機械−レベル・コントローラ114、コントローラ106a〜106b、I/Oデバイス104a〜104bと関連付けられる)。
[0024] ユニット−レベル・コントローラ122へのアクセスは、1つ以上の操作員端末124によって付与することができる。操作員端末124の各々は、システム100における1つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末124の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0025] 少なくとも1つのルータ/ファイアウォール126が、ネットワーク120を2つのネットワーク128に結合する。ルータ/ファイアウォール126は、安全なルータまたは複合ルータ/ファイアウォールのような、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク128は、FTEネットワークのような、任意の適したネットワークを表すことができる。
[0026] Purdueモデルでは、「レベル4」は、ネットワーク128に結合された1つ以上のプラント−レベル・コントローラ130を含むことができる。各プラント−レベル・コントローラ130は、通例、プラント102a〜102nの1つと関連付けられ、各プラントは、同じプロセス、同様のプロセス、または異なるプロセスを実現する1つ以上のプロセス・ユニットを含むことができる。プラント−レベル・コントローラ130は、それよりも低いレベルにあるコンポーネントの動作および制御をサポートするために、種々の機能を実行する。特定例として、プラント−レベル・コントローラ130は、1つ以上の製造実行システム(MES)アプリケーション、スケジューリング・アプリケーション、あるいはその他のまたは追加のプラント制御アプリケーションもしくはプロセス制御アプリケーションを実行することができる。プラント−レベル・コントローラ130の各々は、プロセス・プラントにおける1つ以上のプロセス・ユニットにアクセスを付与し、制御を行い、関係する動作を行うのに適した任意の構造を含む。プラント−レベル・コントローラ130の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。
[0027] プラント−レベル・コントローラ130へのアクセスは、1つ以上の操作員端末132によって付与することができる。操作員端末132の各々は、システム100における1つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末132の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0028] 少なくとも1つのルータ/ファイアウォール134が、ネットワーク128を1つ以上のネットワーク136に結合する。ルータ/ファイアウォール134は、安全なルータまたは複合ルータ/ファイアウォールのような、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク136は、企業規模のイーサネットまたはその他のネットワーク、あるいはもっと大きなネットワーク(インターネット等)の全部または一部のような、任意の適したネットワークを表すことができる。
[0029] Purdueモデルでは、「レベル5」は、ネットワーク136に結合された1つ以上の企業−レベル・コントローラ138を含むことができる。各企業−レベル・コントローラ138は、通例、複数のプラント102a〜102nのための計画業務を実行し、プラント102a〜102nの種々の面(aspect)を制御することができる。また、企業−レベル・コントローラ138は、プラント102a〜102nにおけるコンポーネントの動作および制御をサポートするために、種々の機能を実行することができる。特定例として、企業−レベル・コントローラ138は、1つ以上の命令処理アプリケーション、企業リソース計画(ERP:enterprise resource planning)アプリケーション、高度計画およびスケジューリング(APS:advanced planning and scheduling)アプリケーション、あるいは任意のその他のまたは追加の企業用制御アプリケーションを実行することができる。企業−レベル・コントローラ138の各々は、1つ以上のプラントにアクセスを付与し、1つ以上のプラントの制御を行い、1つ以上のプラントの制御に関係する動作を行うに適した任意の構造を含む。企業−レベル・コントローラ138の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。この文書では、「企業」(enterprise)という用語は、管理すべき1つ以上のプラントまたはその他の処理設備を有する組織を指す。尚、1つのプラント102aを管理しようとする場合、企業−レベル・コントローラ138の機能をプラント−レベル・コントローラ130に組み込むことができることを注記しておく。
[0030] 企業−レベル・コントローラ138へのアクセスは、1つ以上の操作員端末140によって付与することができる。操作員端末140の各々は、システム100における1つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末140の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0031] Purdueモデルの種々のレベルは、1つ以上のデータベース等の、他のコンポーネントも含むことができる。各レベルと関連付けられたデータベース(1つまたは複数)は、システム100のそのレベルまたは1つ以上の他のレベルに関連する任意の適した情報を格納することができる。例えば、ヒストリアン(historian)141をネットワーク136に結合することができる。ヒストリアン141は、システム100についての種々の情報を格納するコンポーネントを表すことができる。ヒストリアン141は、例えば、生産スケジューリングおよび最適化の間に使用された情報を格納することができる。ヒストリアン141は、情報を格納し、情報の検索(retrieval)を容易にするのに適した任意の構造を表す。ネットワーク136に結合された1つの集中コンポーネントとして示されているが、ヒストリアン141は、システム100におけるいずれの場所にも配置することができ、または複数のヒストリアンをシステム100における異なる場所に分散させることもできる。
[0032] 特定実施形態では、図1における種々のコントローラおよび操作員端末は、コンピューティング・デバイスを表すこともできる。例えば、コントローラ106a、106b、114、122、130、138の各々は、1つ以上の処理デバイス142と、処理デバイス(1つまたは複数)142によって使用、生成、または収集された命令およびデータを格納するために1つ以上のメモリ144とを含むこともできる。また、コントローラ106a、106b、114、122、130、138の各々は、1つ以上のイーサネット・インターフェースまたはワイヤレス・トランシーバのような、少なくとも1つのネットワーク・インターフェース146も含むことができる。また、操作員端末116、124、132、140の各々も、1つ以上の処理デバイス148と、処理デバイス(1つまたは複数)148によって使用、生成、または収集された命令およびデータを格納するために1つ以上のメモリ150を含むことができる。また、操作員端末116、124、132、140の各々は、1つ以上のイーサネット・インターフェースまたはワイヤレス・トランシーバのような、少なくとも1つのネットワーク・インターフェース152を含むこともできる。
[0033] 先に注記したように、工業プロセス制御および自動化システム100における特定のコンピューティング・デバイスが特定のI/Oデバイスと直接相互作用できないという状況もあり得る。例として、コントローラ106aがI/Oデバイス104aと直接通信できない場合があり、あるいはコントローラ106bがI/Oデバイス104bと直接通信できない場合もある。これは、コントローラ(1つまたは複数)またはI/Oデバイス(1つまたは複数)の設計等の多くの理由で起こる可能性がある。
[0034] 本開示によれば、コントローラまたはその他のコンピューティング・デバイスに少なくとも1つのリレー・プロセッサを配備する(supply)ことができ、リレー・プロセッサは、コンピューティング・デバイスの少なくとも1つの主プロセッサと通信状態に入ることができる。また、リレー・プロセッサは、主プロセッサにはどのようにしても電気的にまたは論理的にアクセスすることができないI/Oデバイスとも通信状態に入ることができる。特定例として、コントローラ106aは、I/Oデバイス104aとの通信を容易にするリレー・プロセッサを含むことができ、またはコントローラ106bはI/Oデバイス104bとの通信を容易にするリレー・プロセッサを含むことができる。その結果、コントローラ106aはI/Oデバイス104aと相互作用することができ、またはコントローラ106bはI/Oデバイス104bと相互作用することができる。
[0035] ある実施形態では、主およびリレー・プロセッサは、これらのプロセッサ間においてデータを共有するために使用される通信プロトコルをサポートする。例えば、リレー・プロセッサは、I/Oデバイスにデータを書き込み、I/Oデバイスからデータを読み取るように構成することができる。主プロセッサがI/Oデバイスへのアクセスを必要とするとき、主プロセッサは、リレー・プロセッサにコマンド(リードまたはライト・コマンド等)をI/Oデバイスに送信するように指令する信号を、リレー・プロセッサに送信することができる。これによって、主プロセッサが電気的または倫理的にI/Oデバイスにアクセスすることができなくても、主プロセッサは、リレー・プロセッサをプロキシとして利用して、I/Oデバイスにデータを書き込むこと、またはI/Oデバイスからデータを受信することが可能になる。
[0036] 主およびリレー・プロセッサ間における特定の相互作用は、システム100においてサポートされる機能に応じて、様々に変化することができる。例えば、I/Oデバイスがセンサを表すとき、主プロセッサはリレー・プロセッサをプロキシとして使用して、センサからの測定データを得ることができる。I/Oデバイスがアクチュエータを表すとき、主プロセッサはリレー・プロセッサをプロキシとして使用して、制御データをアクチュエータに供給することができる。I/Oデバイスとのリレーをサポートするために、プロセッサ間では任意の他の適した相互作用およびデータ転送をサポートすることができる。
[0037] 主およびリレー・プロセッサ間における通信をサポートするには、種々の手法がある。例えば、双方のプロセッサによってアクセス可能な共有メモリを装備することができ、この共有メモリは、コンピューティング・デバイスに内在すること、または外部に配することができる。また、双方のプロセッサによる同じメモリ位置への同時アクセスを減らすまたは防止するのを補助するのに適した任意のメカニズムを使用することもできる。
[0038] これらのプロセッサによって使用される通信プロトコルは、リードまたはライト動作を実行すべきか否か定めることができる。ライト動作の場合、通信プロトコルは、書き込まれるデータを定めることができる。リード動作の場合、通信プロトコルは、新たに読み出されたデータを、合意したメモリ位置(agreed-upon memory location)に供給することができる。また、このような通信プロトコルは、要求が未だ進行中か否か、または要求が完了したか否か示す「リターン・ステータス」(return status)を付与することもできる。また、リターン・ステータスは、動作の成功または失敗を示すこともできる。リレー・プロセッサは、そのプロキシとしての役割において、周期的にまたは継続的に共有メモリ・エリアを調べて、新たな要求がないか確認することができる。主プロセッサは、新たな要求をいつ行うことができるか判定するため、または既存の要求がいつ完了したか判定するために、共有メモリ・エリアを監視することができる。
[0039] この機能の特定例は、回路カードのコントローラ106aまたは106bへの追加を伴う。回路カードは、未使用プロセッサおよびゲート・アレイの双方を内蔵することができる。ゲート・アレイは、I/Oパスを通信ネットワークまで駆動するロジックを内蔵することができる。例えば、回路カードは、HONEYWELL INTERNATIONAL INC.,からのLCNP4E回路カードを表すことができる。これは、工業プロセス制御および自動化システムにおいてネットワーク・パスをローカル制御ネットワーク(LCN)に装備するために通常使用される。この回路カードは、LCN上における通常の通信には必要とされないプロセッサ(MOTOROLA 68040プロセッサ等)を含むことができる。このカードは、コントローラによって使用される通信媒体にカード・アクセスを付与するために、コントローラ内に配置される。しかしながら、コントローラの主プロセッサは、ゲート・アレイのメモリまでの直接パスが全くないため等で、ゲート・アレイにアクセスすることができない場合がある。したがって、コントローラの回路カード上にある未使用のプロセッサを、リレー・プロセッサとして使用することができる。ここで、コントローラの主プロセッサは、他の場合には使用されないプロセッサがリレーとして機能して(act)、主プロセッサのためのプロキシとして、ゲート・アレイにおいてその所望のI/O動作を実行することを要求する。所望の動作が完了した後、プロキシは新たに読み出されたあらゆるデータを含む結果を主プロセッサに通知する。
[0040] 図1は工業プロセス制御および自動化システム100の一例を示すが、図1には種々の変更を行うことができる。例えば、システム100は任意の数のセンサ、アクチュエータ、コントローラ、サーバ、操作員端末、ネットワーク、およびその他のコンポーネントを含むことができる。また、図1におけるシステム100の構成および配置も例示に過ぎない。個々の必要性に応じて、コンポーネントを追加すること、省略すること、組み合わせること、または任意の他の適した構成に入れる(place)こともできる。更に、システム100の特定のコンポーネントによって特定の機能が実行されると説明した。これは例示のために過ぎない。一般に、制御および自動化システムは、多様に構成変更可能であり(highly configurable)、個々の必要性に応じて任意の適した方法で構成することができる。加えて、図1は、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にするリレー・メカニズムを使用することができる動作環境の一例を示す。この機能は、任意の他の適したシステムにおいて使用することができる。
[0041] 図2は、本開示にしたがって、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にするコンピューティング・デバイス200の一例を示す。図2に示すコンピューティング・デバイス200は、例えば、図1に示し以上で説明したコントローラ106a〜106bのいずれでも示すことができる。しかしながら、コントローラ106a〜106bは任意の他の適した方法で実装できることを注記しておく。
[0042] 図2に示すように、コンピューティング・デバイス200はバス・システム202を含む。バス・システム202は、少なくとも1つの処理デバイス204、少なくとも1つの記憶デバイス206、少なくとも1つの通信ユニット208、および少なくとも1つのI/Oデバイス210間における通信をサポートする。
[0043] 処理デバイス204は、メモリ212にロードすることができる命令を実行する。処理デバイス204は、任意の適した数および型式のプロセッサまたはその他のデバイスを、任意の適した構成で含むことができる。処理デバイス204の型式の例には、マイクロプロセッサ、マイクロコントローラ、ディジタル信号プロセッサ、フィールド・プログラマブル・ゲート・アレイ、特定用途集積回路、およびディスクリート回路が含まれる。先の用語を使用すると、処理デバイス204は、デバイス200の「主」プロセッサを表すと言うことができる。
[0044] メモリ212および永続的ストレージ214は、記憶デバイス206の例であり、情報(データ、プログラム・コード、および/またはその他の適した一時的な情報もしくは永続的な情報等)を格納し、その検索を容易にすることができる任意の構造(1つまたは複数)を表す。メモリ212は、ランダム・アクセス・メモリあるいは任意の他の適した揮発性または不揮発性記憶デバイス(1つまたは複数)を表すことができる。永続的ストレージ214は、リード・オンリ・メモリ、ハード・ドライブ、フラッシュ・メモリ、または光ディスクのような、データの長期格納(longer-term storage)をサポートする1つ以上のコンポーネントまたはデバイスを内蔵することができる。
[0045] 通信ユニット208は、他のシステムまたはデバイスとの通信をサポートする。例えば、通信ユニット208は、ネットワークを通じた通信を容易にするネットワーク・インターフェース・カードまたはワイヤレス・トランシーバを含むことができる。通信ユニット208は、あらゆる適した物理的通信リンクまたはワイヤレス通信リンク(1つまたは複数)を介した通信をサポートすることができる。
[0046] I/Oユニット210は、データの入力および出力に対応する(allow for)。例えば、I/Oデバイス210は、キーボード、マウス、キーパッド、タッチスクリーン、またはその他の適した入力デバイスを介したユーザ入力のための接続を設けることができる。また、I/Oユニット210は、出力をディスプレイ、プリンタ、またはその他の適した出力デバイスに送ることができる。加えて、I/Oユニット210は、1つ以上のI/Oデバイス104aまたは104bのような、I/Oデバイスとの通信および相互作用をサポートすることができる。
[0047] 先に注記したように、処理デバイス204と、処理デバイス204にはどのようにしてもアクセスすることができない少なくとも1つのI/Oデバイスとの間における通信をサポートするために、少なくとも1つのリレー処理デバイス216を使用することができる。具体的には、リレー処理デバイス216は、I/Oデバイスにアクセスし、処理デバイス204に情報を提供するまたは処理デバイス204からの情報を受信するためのリレーとして機能することができる。例えば、少なくとも1つのリレー処理デバイス216および少なくとも1つのI/Oユニット210は、デバイス200に結合することができる回路カードに内在することができる。処理デバイス204および216は、これらの処理デバイス間でデータを共有するために使用される通信プロトコルをサポートするように構成することができる。例えば、通信プロトコルは、処理デバイス204がI/Oデバイスにアクセスすることができない場合に、このI/Oデバイスが関与するリードまたはライト動作をリレー処理デバイス216が実行するように、処理デバイス204が要求することを許容するのでもよい。また、通信プロトコルは、成功したライト動作の承認、または成功したリード動作の間に新たに読み出されたデータのような、要求された動作についての情報をリレー処理デバイス216が戻すことを許容するのでもよい。共有メモリが使用されるか否かに応じて、処理デバイス204および216は、メモリ212または永続的ストレージ214内部にあるような、共有メモリへのアクセスおよびその使用もサポートすることができる。
[0048] 図2はアクセス不可能なI/Oデバイスとのプロセッサ通信を容易にするコンピューティング・デバイス200の一例を示すが、図2に対して種々の変更を行うこともできる。例えば、コンピューティング・デバイスは多種多様の構成を取ることができる。図2に示すコンピューティング・デバイスは、1つの実施態様例を示すことを意図するのであり、本開示を特定の型式のコンピューティング・デバイスに限定するのではない。
[0049] 図3は、本開示にしたがって、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にするコンピューティング・デバイス300の特定例(specific example)を示す。図3に示すように、このコンピューティング・デバイス300の特定例は、コンピューティング・ハードウェア304と共に実行するエミュレーション・アーキテクチャ302を含む。また、コンピューティング・デバイス300は、メディア・アクセス・ユニット(MAU)310を介したLCN308へのアクセスを容易にするインターフェース・カード306も含む。コンピューティング・ハードウェア304は、ここでは、スモール・コンピュータ・システム・インターフェース(SCSI)、HONEYWELL PDGビデオ・インターフェース、LCNインターフェース(LCNI)、およびワーク・ステージョン・インターフェース(WSI)のような、種々のデバイス・インターフェース312を含む。また、コンピューティング・ハードウェア304は、コンピューティング・ハードウェア304によって生成される割り込みに関連する情報を格納するために使用される少なくとも1つのレジスタ314も含む。しかしながら、コンピューティング・ハードウェア304は任意の他のまたは追加のインターフェースあるいはメモリを含むことができることを注記しておく。
[0050] エミュレーション・アーキテクチャ302は、特定の型式のプロセッサ(この例では68040プロセッサ)を他の型式のプロセッサ(INTEL x86プロセッサ等)上でエミュレートするために使用されるエミュレーション・フレームワークを含む。このフレームワークは、カーネル・エミュレータ316、命令エミュレータ318、およびI/Oエミュレータ320を含む。これらの名称が暗示するように、カーネル・エミュレータ316は、いわゆるカーネル機能(通例では主プロセッサによって実行されない計算機能(compute functions)であり、その例の名称を以下で挙げる)をエミュレートするために使用される。また、命令エミュレータ318は、プロセッサ上における命令の実行をエミュレートするために使用され、I/Oエミュレータ320は、プロセッサ上において入力および出力動作をエミュレートするために使用される。カーネル・エミュレータ316は、エミュレートされる特定のカーネルに応じて、種々の型式のエミュレーションを含むことができる。例えば、カーネル・エミュレータ316は、汎用非同期送受信回路(UART:universal asynchronous receiver/transmitter)エミュレータ、および68040プロセッサ用のクロック・エミュレータを含むことができる。命令エミュレータ318は、カーネル・エミュレータ316内部で実行されない種々の命令を実行する(implement)するために使用される。例えば、68040プロセッサ上において旧式ソース・コードの実行をエミュレートするために、命令エミュレータ318を使用して旧式ソース・コードの種々の命令を実行することができる。ある実施形態では、命令エミュレータ318は、MICROAPL LTDからの命令エミュレータを表すことができる。
[0051] この例におけるインターフェース・カード306は、ゲート・アレイ322およびメモリ324を含む。ゲート・アレイ322は、外部ネットワーク、この場合ではLCNへの物理接続を設けるように機能する。メモリ324は、インターフェース・カード306中を流れるデータを格納するために使用される。ゲート・アレイ322は、外部ネットワークへの接続を設ける任意の適した回路を含む。メモリ324は、ダイナミック・ランダム・アクセス・メモリ(DRAM)のような、情報を格納しその引き出しを容易にするのに適した任意の構造を含む。また、インターフェース・カード306は、リレー・プロセッサ326も含む。リレー・プロセッサ326は、前述のように、主プロセッサ(エミュレーション・アーキテクチャ302を実行している)とインターフェース312との間においてリレーとして機能する。この特定例では、リレー・プロセッサ326は、以上で説明した4つのインターフェース312(LCNI、SCSI、PDG、およびWSI)を介してI/Oデバイスへのアクセスを付与するが、リレー・プロセッサ326は、任意の適したインターフェースを介して、任意の適したI/Oデバイスへのアクセスを付与することができる。
[0052] この例では、I/Oエミュレータ320は、リレー・プロセッサ326を介して通信をインターフェース312へまたは通信をインターフェース312から導くように機能する複数のリレー328を含む。各型式のインターフェース312はそれ自体のリレー328を有するので、エミュレーション・アーキテクチャ302の一部として実行するプログラムは、インターフェース312が実際には通常の通信によってアクセスすることができないかもしれないことを全く知らずに、リレー328を介してインターフェース312にアクセスすることができる。
[0053] エミュレータ316〜320は、アクセス通知および割り込み通知を伝達および交換する。アクセス通知は、1つのエミュレータが他のエミュレータに関連するデータまたはその他の情報にアクセスする必要があることを示すために使用される。割り込み通知は、1つのエミュレータが他のエミュレータに、割り込みが発生したので、他のエミュレータはこの割り込みに応答して適した動作を行えることを通知するために使用される。割り込み監視スレッド330は、ここでは、コンピューティング・ハードウェア304からの割り込みを精査し(scan)、追加の割り込み通知をエミュレータ318に送付する(provide)ために使用される。
[0054] 図3におけるコンピューティング・デバイス300の種々のコンポーネント間におけるデータの移送をサポートするために、1つ以上の共有メモリ332a〜332bを使用することができる。各共有メモリ332a〜332bは、データを格納することができる任意の適した構造を表す(denote)。ここでは別個のメモリとして示すが、共有メモリ332a〜332bは、1つのメモリ・デバイスの異なる部分を示すこともできる。
[0055] 図3は、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にするコンピューティング・デバイス300の一特定例を示すが、図3に対して種々の変更を行うことができる。例えば、図3における種々のコンポーネントを組み合わせること、更に再分割すること、または省略することができ、更に特定の必要性に応じて追加のコンポーネントを追加することができる。また、図3は68040プロセッサが関与する1つの特定的なエミュレーションを示すが、異なるプロセッサが関与する任意の他の適したエミュレーションもサポートすることができる。
[0056] 図4および図5は、本開示にしたがって、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にする方法例を示す。具体的には、図4は、第1プロセッサによって直接アクセスすることができないI/Oデバイスにアクセスしようとする第1プロセッサ(主プロセッサ)によって使用される方法例400を示し、図5は、第1プロセッサのためにプロキシとして動作する第2プロセッサ(リレー・プロセッサ)によって使用される方法例500を示す。説明を容易にするために、図1のシステム100において動作するコントローラ106a〜106bの内1つに関して、方法400および500を説明するが、これらの方法は、任意の他の適したデバイスとでも、そして任意の他の適したシステムにおいても使用することができる。
[0057] 図4に示すように、ステップ402において、I/Oデバイスへのアクセスが必要とされるまたは望まれるという判断を、第1プロセッサにおいて行う。これは、例えば、コントローラ106aまたは106bの処理デバイス204が、コントローラ106aまたは106bの制御ロジックを実行するため等に、I/Oデバイス104aまたは104bへのリードまたはライト・アクセスが必要とされると判断することを含むことができる。
[0058] 識別されたI/Oデバイスは、第1プロセッサによって電気的または論理的にアクセスすることができない場合もある。その場合、第1プロセッサは、ステップ404において、I/Oデバイスにアクセスすることができる第2プロセッサに信号を送信する。これは、例えば、コントローラ106aまたは106bにおける処理デバイス204が、I/Oデバイス104aまたは104bにアクセスすることができるリレー処理デバイス216に信号を送信することを含むことができる。第1プロセッサは、第1プロセッサに格納されている表またはその他の情報を使用すること等によって、任意の適した方法で、第2プロセッサをI/Oデバイスのためのプロキシとして識別することができる。第2プロセッサに送られる信号は、例えば、所望のコマンドがリード・コマンドかまたはライト・コマンドかに応じて、任意の適した内容を有することができる。
[0059] ステップ406において、第2プロセッサがコマンドをI/Oデバイスに送信したという指示を、第1プロセッサにおいて受信する。これは、例えば、リードまたはライト・コマンドがリレー処理デバイス216からI/Oデバイス104aまたは104bに送信されたことを示すリターン・ステータスを、処理デバイス204が受信したことを含むことができる。ステップ408において、コマンドが正常に完了したか否かという指示を、第1プロセッサにおいて受信する。これは、例えば、リードまたはライト・コマンドが、I/Oデバイス104aまたは104bを使用して、実行に成功したか否かを示すリターン・ステータスを、処理デバイス204が受信することを含むことができる。必要であれば、ステップ410においてコマンドの結果を得るために共有メモリにアクセスする。これは、例えば、処理デバイス204が、I/Oデバイス104aまたは104bから読み出されたデータを得るために共有メモリ位置にアクセスすることを含むことができる。尚、リターン・ステータス・インディケータは、共有メモリを介した受信も可能であることを注記しておく。
[0060] この時点において、第1プロセッサは任意の所望の機能を実行することができる。例えば、第1プロセッサは、得られたデータを使用して制御ロジックを実行することができる。また、第1プロセッサは、このデータを使用して、直接あるいは同じプロキシ・プロセッサまたは異なるプロキシ・プロセッサを介して間接的に、アクセスすべき他のI/Oデバイスを識別することもできる。
[0061] 図5に示すように、ステップ502において、第2プロセッサが第1プロセッサから信号を受信する。これは、例えば、リレー処理デバイス216が処理デバイス204から信号を受信することを含むことができ、リレー処理デバイス216は、処理デバイス204がアクセスすることを望むI/Oデバイス104aまたは104bにアクセスすることができる。応答して、ステップ504において、第2プロセッサは、第1プロセッサの代わりに、コマンドをI/Oデバイスに送信する。これは、例えば、リレー処理デバイス216が、処理デバイス204から受信した信号に基づいて、I/Oデバイス104aまたは104bに対してリードまたはライト・コマンドを形成する(construct)ことを含むことができる。
[0062] ステップ506において、第2プロセッサがコマンドをI/Oデバイスに送信したという指示を、第1プロセッサに送信する。これは、例えば、リードまたはライト・コマンドがリレー処理デバイス216からI/Oデバイス104aまたは104bに送信されたことを示すリターン・ステータスを、リレー処理デバイス216が付与することを含むことができる。ステップ508において、コマンドが正常に完了したか否かの指示を、第1プロセッサに送信する。これは、例えば、リードまたはライト・コマンドが、I/Oデバイス104aまたは104bを使用して、実行に成功したか否かを示すリターン・ステータスを、リレー処理デバイス216が付与することを含むことができる。必要であれば、ステップ510において、コマンドの結果を格納するために共有メモリにアクセスする。これは、例えば、リレー処理デバイス216が、I/Oデバイス104aまたは104bから読み出されたデータを格納するために、共有メモリ位置にアクセスすることを含むことができる。尚、リターン・ステータス・インディケータは、共有メモリを介した付与も可能であることを注記しておく。
[0063] 図4および図5は、アクセス不可能なI/Oデバイスとのプロセッサ通信を容易にする方法400および500の例を示すが、図4および図5に対して種々の変更を行うことができる。例えば、一連のステップとして示されているが、各図に示す種々のステップは、重複すること、並列に実行すること、異なる順序で実行すること、または複数回実行することも可能である。更に、個々の必要性に応じて、いくつかのステップを組み合わせることまたは削除することもでき、追加のステップを追加することもできる。
[0064] 尚、以上の説明において、リレー・プロセッサの使用が、主プロセッサのためにI/Oデバイスへのアクセスを付与するようにしばしば説明されたが、この場合主およびリレー・プロセッサは同じコンピューティング・デバイス(同じコントローラ106aまたは106b等)と関連付けられていることを注記しておく。しかしながら、このようにする必要はなく、他の例では、主およびリレー・プロセッサが異なるデバイスの一部を形成することもできる。例えば、1つのコントローラ106aにおける主プロセッサが、他のコントローラ106bにおけるリレー・プロセッサと通信して、I/Oデバイス104bと相互作用することができ、あるいは1つのコントローラ106bにおける主プロセッサが他のコントローラ106aにおけるリレー・プロセッサと通信して、I/Oデバイス104aと相互作用することができる。異なるデバイスにおけるプロセッサがこのように相互作用することを可能にするために、適したデバイス間通信をサポートすることができる。
[0065] ある実施形態では、本特許文書において説明した種々の機能が、コンピュータ読み取り可能プログラム・コードで形成され、コンピュータ読み取り可能媒体に埋め込まれたコンピュータ・プログラムによって実現またはサポートされる。「コンピュータ読み取り可能プログラム・コード」という語句は、任意の型式のコンピュータ・コードを含み、ソース・コード、オブジェクト・コード、および実行可能コードを含む。「コンピュータ読み取り可能媒体」という語句は、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ハード・ディスク・ドライブ、コンパクト・ディスク(CD)、ディジタル・ビデオ・ディスク(DVD)のような、コンピュータによってアクセス可能な任意の種類の媒体、または任意の他の種類のメモリを含む。「非一時的」コンピュータ読み取り可能媒体は、一時的電気信号またはその他の信号を移送する有線、ワイヤレス、光、またはその他の通信リンクを除外する。非一時的コンピュータ読み取り可能媒体には、データを永続的に格納することができる媒体、および書き換え可能光ディスクまたは消去可能メモリ・デバイスのような、データを格納し後に上書きすることができる媒体が含まれる。
[0066] 本特許文書全体において使用した特定の単語および語句の定義を明記することは利点があると考えられる。「アプリケーション」および「プログラム」という用語は、適したコンピュータ・コード(ソース・コード、オブジェクト・コード、または実行可能コードを含む)で実現するために構成された(adapt)1つ以上のコンピュータ・プログラム、ソフトウェア・コンポーネント、命令の集合、手順、関数、オブジェクト、クラス、インスタンス、関連データ、またはその一部を指す。「通信する」という用語およびその派生語は、直接および間接的な通信双方を含む。「含む」(include)および「備える」(comprise)という用語、ならびにその派生語は、限定のない包含を意味する。「または」という用語は、包含的であり、および/またはを意味する。「と関連する」という語句、およびその派生語は、含む、内部に含まれる、相互接続する、内蔵する、内部に収容される、〜にまたは〜と接続する、〜にまたは〜と結合する、〜と通信可能である、〜と協働する、交互配置する(interleave)、並置する、近接する、〜にまたは〜と境界を接する、有する、プロパティを有する、〜にまたは〜と関係を有する等を意味することができる。「少なくとも1つの」という句は、項目のリストと共に使用される場合、羅列された項目の内1つ以上の異なる組み合わせを使用できることを意味し、リストにおける1つの項目だけが必要とされればよい。例えば、「A、B、およびCの内少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、AおよびBおよびCという組み合わせのいずれも含む。
[0067] 本願における説明は、いずれの特定のエレメント、ステップ、または機能も、請求項の範囲に含まれなければならない必須のまたは肝要なエレメントであることを含意するというように読解してはならない。特許付与される主題の範囲は、許可された請求項によってのみ定められる。更に、特定の請求項において「ための手段」(means for)または「ためのステップ」(step for)という単語そのものが明示的に使用され、機能を識別する分詞句(participle phrase)がその後に続くのでなければ、いずれの請求項も、添付する請求項または請求項の要素のいずれに関しても、35U.S.C.§112(f)を援用する(invoke)ことを意図するのではない。「メカニズム」、「モジュール」、「デバイス」、「ユニット」、「コンポーネント」、「エレメント」、「部材」、「装置」、「機械」、「システム」、「プロセッサ」、または「コントローラ」等の(しかし、これらに限定されない)用語が請求項において使用される場合、関連技術における当業者には周知であり、請求項自体の特徴によって更に変更または改良された構造を示すことが理解され、そしてそれを意図するのであって、35U.S.C.§112(f)を援用する(invoke)ことを意図するのではない。
[0068] 本開示は、特定の実施形態および全体的に関連する方法について説明したが、これらの実施形態および方法の改変(alternation)および置換(permutation)は当業者には明白であろう。したがって、実施形態例についての以上の説明は、本開示を定めるのでも、制約するのでもない。更に、以下の特許請求の範囲によって定められる本開示の主旨および範囲から逸脱することなく、その他の変更(change)、交換(substitution)、および改変も可能である。

Claims (6)

  1. 第1処理デバイス(142、148、204)によって、信号を第2リレー処理デバイス(216、326)に送信するステップ(404)であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも1つを、前記第1処理デバイスによってアクセスすることができない入力/出力(I/O)デバイス(104a、104b、312)に送信するように、前記第2リレー処理デバイスに伝えるメッセージを含む、ステップと、
    前記第1処理デバイスによって、前記第2リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも1つを前記I/Oデバイスに送信したという指示を受信するステップ(406)と、
    前記第1処理デバイスを使用して、前記リード・コマンドの結果を得るために、メモリ(144、150、206、212、214)にアクセスするステップ(410)と、
    を含
    前記メモリが、前記第2リレー処理デバイスと共有されるメモリ(332a、332b)を含む、
    方法。
  2. 信号を第2リレー処理デバイス(216、326)に送信するように構成された第1処理デバイス(142、148、204)であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも1つを、前記第1処理デバイスによってアクセスすることができない入力/出力(I/O)デバイス(104a、104b、312)に送信するように、前記第2リレー処理デバイスに伝えるメッセージを含む、第1処理デバイス(142、148、204)を備え、
    前記第1処理デバイスが、更に、前記第2リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも1つを前記I/Oデバイスに送信したという指示を受信するように構成され、
    前記第1処理デバイスが、更に、前記リード・コマンドの結果を得るために、メモリ(144、150、206、212、214)にアクセスするように構成され、
    前記メモリが、前記第2リレー処理デバイスと共有されるメモリ(332a、332b)を含む、
    装置。
  3. 前記第1処理デバイスが、コンピューティング・デバイス(106a、106b)の処理デバイスを含み、前記コンピューティング・デバイスが、前記第2リレー処理デバイスと、ネットワーク(308)を通じて通信するように構成された回路(208、322)とを含む回路カード(306)に結合されるように構成される、請求項に記載の装置。
  4. 第2リレー処理デバイス(216、316)において、第1処理デバイス(142、148、204)から信号を受信するステップ(502)であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも1つを、前記第1処理デバイスによってアクセスすることができない入力/出力(I/O)デバイス(104a、104b、312)に送信するように、前記第2リレー処理デバイスに伝えるメッセージを含む、ステップと、
    前記第2リレー処理デバイスから、前記リード・コマンドおよびライト・コマンドの内少なくとも1つを前記I/Oデバイスに送信するステップ(504)と、
    前記第2リレー処理デバイスが前記リード・コマンドおよびライト・コマンドの内少なくとも1つを前記I/Oデバイスに送信したという指示を、前記第1処理デバイスに送信するステップ(506)と、
    前記第2リレー処理デバイスを使用して、前記リード・コマンドの結果を格納するためにメモリ(144、150、206、212、214)にアクセスするステップ(510)と、
    を含
    前記メモリが、前記第1処理デバイスと共有されるメモリ(332a、332b)を含む、
    方法。
  5. 第1処理デバイス(142、148、204)と共に使用する装置であって、
    前記第1処理デバイスから信号を受信するように構成された第2リレー処理デバイス(216、326)であって、前記信号が、リード・コマンドおよびライト・コマンドの内少なくとも1つを、前記第1処理デバイスによってアクセスすることができない入力/出力(I/O)デバイス(104a、104b、312)に送信するように、前記第2リレー処理デバイスに伝えるメッセージを含む、第2リレー処理デバイス(216、326)を備え、
    前記第2リレー処理デバイスが、更に、前記リード・コマンドおよびライト・コマンドの内少なくとも1つを前記I/Oデバイスに送信するように構成され、
    前記第2リレー処理デバイスが、更に、前記第2リレー処理デバイスが、前記リード・コマンドおよびライト・コマンドの内少なくとも1つを前記I/Oデバイスに送信したという指示を、前記第1処理デバイスに送信するように構成され、
    前記第2リレー処理デバイスが、更に、前記リード・コマンドの結果を得るために、メモリ(144、150、206、212、214)にアクセスするように構成され、
    前記メモリが、前記第1処理デバイスと共有されるメモリ(332a、332b)を含む、
    装置。
  6. 回路カード(306)が、前記第2リレー処理デバイスと、ネットワーク(308)を通じて通信するように構成された回路(208、322)とを含み、前記回路カードが、前記第1処理デバイスを含むコンピューティング・デバイス(106a、106b)内にインストールされるように構成される、請求項に記載の装置。
JP2018541197A 2016-02-05 2017-01-17 アクセス不可能な入力/出力(i/o)デバイスとのプロセッサ通信を容易にするリレー・メカニズム Active JP6938520B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/017,422 US10025727B2 (en) 2016-02-05 2016-02-05 Relay mechanism to facilitate processor communication with inaccessible input/output (I/O) device
US15/017,422 2016-02-05
PCT/US2017/013696 WO2017136134A1 (en) 2016-02-05 2017-01-17 Relay mechanism to facilitate processor communication with inaccessible input/output (i/o) device

Publications (2)

Publication Number Publication Date
JP2019506680A JP2019506680A (ja) 2019-03-07
JP6938520B2 true JP6938520B2 (ja) 2021-09-22

Family

ID=59497689

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018541197A Active JP6938520B2 (ja) 2016-02-05 2017-01-17 アクセス不可能な入力/出力(i/o)デバイスとのプロセッサ通信を容易にするリレー・メカニズム

Country Status (6)

Country Link
US (1) US10025727B2 (ja)
EP (1) EP3411797B1 (ja)
JP (1) JP6938520B2 (ja)
CN (1) CN108604208B (ja)
AU (1) AU2017213664B2 (ja)
WO (1) WO2017136134A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019012577A1 (ja) * 2017-07-10 2019-01-17 株式会社Fuji 基板生産ライン、情報管理装置および情報管理代行装置
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870614A (en) 1984-08-02 1989-09-26 Quatse Jesse T Programmable controller ("PC") with co-processing architecture
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
US5613071A (en) * 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
US5883939A (en) 1996-08-29 1999-03-16 Cornell Research Foundation, Inc. Distributed architecture for an intelligent networking coprocessor
US6101563A (en) * 1998-05-15 2000-08-08 International Business Machines Corporation Configuration access system
US6295571B1 (en) 1999-03-19 2001-09-25 Times N Systems, Inc. Shared memory apparatus and method for multiprocessor systems
US7505455B1 (en) * 1999-03-19 2009-03-17 F5 Networks, Inc. Optimizations for tunneling between a bus and a network
US6519605B1 (en) 1999-04-27 2003-02-11 International Business Machines Corporation Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls
US6536000B1 (en) * 1999-10-15 2003-03-18 Sun Microsystems, Inc. Communication error reporting mechanism in a multiprocessing computer system
US7826614B1 (en) * 2003-11-05 2010-11-02 Globalfoundries Inc. Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation
US7433987B2 (en) * 2004-06-14 2008-10-07 Honeywell International Inc. Computer apparatus for interconnecting an industry standard computer to a proprietary backplane and its associated peripherals
US7565631B1 (en) 2004-07-02 2009-07-21 Northwestern University Method and system for translating software binaries and assembly code onto hardware
JP4671648B2 (ja) * 2004-09-17 2011-04-20 株式会社ソニー・コンピュータエンタテインメント 中継器、エンタテインメント装置、通信システム、通信方法、及びプログラム
JP2006293927A (ja) * 2005-04-14 2006-10-26 Toshiba Corp ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
US7543131B2 (en) * 2005-08-12 2009-06-02 Advanced Micro Devices, Inc. Controlling an I/O MMU
CN101326501B (zh) 2006-04-06 2010-12-15 索尼株式会社 电桥、处理器单元、信息处理装置以及存取控制方法
US7836328B1 (en) * 2006-05-04 2010-11-16 Oracle America, Inc. Method and apparatus for recovering from system bus transaction errors
JP5076400B2 (ja) * 2006-08-16 2012-11-21 富士通株式会社 データ処理システムおよび情報処理装置
US8001592B2 (en) * 2007-05-09 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for accessing resources using a multiprocessor in a trusted mode
EP2210153B1 (en) 2007-11-13 2013-04-24 Rockwell Automation Technologies, Inc. Industrial controller using shared memory multicore architecture
US7908403B2 (en) * 2008-02-14 2011-03-15 International Business Machines Corporation Reserved device access contention reduction
US7921178B2 (en) * 2008-12-04 2011-04-05 Voltaire Ltd. Device, system, and method of accessing storage
JP5320140B2 (ja) 2009-04-14 2013-10-23 株式会社日立製作所 計算機システム、割込み中継回路及び割込み中継方法
US8364862B2 (en) * 2009-06-11 2013-01-29 Intel Corporation Delegating a poll operation to another device
US8595406B2 (en) * 2010-10-21 2013-11-26 Marvell World Trade Ltd. USB-to-SATA high-speed bridge
EP2742429A4 (en) * 2011-08-09 2015-03-25 Lsi Corp I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST
US9424042B2 (en) * 2011-12-06 2016-08-23 Intel Corporation System, apparatus and method for translating vector instructions
US9467512B2 (en) * 2012-01-17 2016-10-11 Intel Corporation Techniques for remote client access to a storage medium coupled with a server
US9754648B2 (en) * 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9858235B2 (en) 2012-11-15 2018-01-02 Advanced Micro Devices, Inc. Emulated legacy bus operation over a bit-serial bus
US8929277B2 (en) 2013-02-15 2015-01-06 General Dynamics C4 Systems, Inc. Communication units and methods for relay-assisted uplink communication
US20140280494A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Relay Service for Different Web Service Architectures
US9483431B2 (en) * 2013-04-17 2016-11-01 Apeiron Data Systems Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA)
US9170939B1 (en) * 2013-09-26 2015-10-27 Western Digital Technologies, Inc. Early de-allocation of write buffer in an SSD
US9727503B2 (en) * 2014-03-17 2017-08-08 Mellanox Technologies, Ltd. Storage system and server
JP2016114968A (ja) * 2014-12-11 2016-06-23 株式会社東芝 半導体集積回路及びそれを用いたデータ転送方法

Also Published As

Publication number Publication date
EP3411797A4 (en) 2019-08-07
CN108604208A (zh) 2018-09-28
US20170228329A1 (en) 2017-08-10
EP3411797B1 (en) 2023-09-13
JP2019506680A (ja) 2019-03-07
US10025727B2 (en) 2018-07-17
CN108604208B (zh) 2023-06-30
EP3411797A1 (en) 2018-12-12
WO2017136134A1 (en) 2017-08-10
AU2017213664A1 (en) 2018-06-28
AU2017213664B2 (en) 2022-01-27

Similar Documents

Publication Publication Date Title
US20230113527A1 (en) Centralized virtualization management node in process control systems
JP6537796B2 (ja) プロセス制御システムに関連する情報にアクセスする機器および方法
US8108200B2 (en) System and method for accessing and configuring field devices in a process control system using distributed control components
JP2022008813A (ja) モノのインターネット(iot)エッジ・アプライアンスにおいて分散型システム・アーキテクチャ(dsa)を使用するための装置および方法
JP6938520B2 (ja) アクセス不可能な入力/出力(i/o)デバイスとのプロセッサ通信を容易にするリレー・メカニズム
US20170228225A1 (en) System and method for preserving value and extending life of legacy software in face of processor unavailability, rising processor costs, or other issues
JP6978443B2 (ja) レガシー・レベル1コントローラ仮想化システムおよび方法
US20020124011A1 (en) Methods, systems, and computer program products for communicating with a controller using a database interface
US11726464B2 (en) Publish/subscribe protocol for real-time process control
Breivold et al. Virtualize for architecture sustainability in industrial automation
US20230124264A1 (en) Automatic load balancing and performance leveling of virtual nodes running real-time control in process control systems
CN110892348A (zh) Newgen控制器中传统控制功能与newgen控制功能
JP7053476B2 (ja) 効率的な同時使用のためのメモリイメージの複製
US20180013857A1 (en) Local hart proxy server for modular smart transmitter devices
WO2017222889A1 (en) System and method for identifying and managing defects in industrial process control and automation systems
US9892011B2 (en) Apparatus and method for autodetection of HART devices over PROFIBUS
GB2589941A (en) Ease of node switchovers in process control systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181010

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210901

R150 Certificate of patent or registration of utility model

Ref document number: 6938520

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150