JP2020187658A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2020187658A
JP2020187658A JP2019093181A JP2019093181A JP2020187658A JP 2020187658 A JP2020187658 A JP 2020187658A JP 2019093181 A JP2019093181 A JP 2019093181A JP 2019093181 A JP2019093181 A JP 2019093181A JP 2020187658 A JP2020187658 A JP 2020187658A
Authority
JP
Japan
Prior art keywords
memory
time
control
data
transfer
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.)
Granted
Application number
JP2019093181A
Other languages
English (en)
Other versions
JP7259537B2 (ja
Inventor
俊規 玉井
Toshinori Tamai
俊規 玉井
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2019093181A priority Critical patent/JP7259537B2/ja
Priority to US17/605,243 priority patent/US11782860B2/en
Priority to PCT/JP2020/008577 priority patent/WO2020230412A1/ja
Priority to EP20806618.3A priority patent/EP3971722A4/en
Priority to CN202080028588.5A priority patent/CN113711191A/zh
Publication of JP2020187658A publication Critical patent/JP2020187658A/ja
Application granted granted Critical
Publication of JP7259537B2 publication Critical patent/JP7259537B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • 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
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリ競合を防止するための調停処理を制御装置の演算部に実行させることなく、メモリ競合の発生を防止する。【解決手段】PLCの時刻カウンタに同期して動作する時刻カウンタから出力される信号に基づいて、CPU(11)の制御周期(C1)においてCPU(11)がメモリ(12)と通信する期間(Tcpu)に少なくとも重畳する期間(T1)中に、シリアルバスを介してメモリ(12)と通信せず、期間(T1)の後に開始される期間(T2)中に、シリアルバスを介してメモリ(12)と通信するDMAC(31)を備えているユニット(20)。【選択図】図2

Description

本発明は、制御対象の制御を実行する制御装置と協働して動作する情報処理装置に関する。
従来、産業用コントローラの処理負荷を低減させるために、コントローラと協働して動作する各種のユニットを併用する形態の産業用制御システムが知られている。このようなシステムでは、コントローラおよびユニットが同一のメモリを共有しており、コントローラまたはユニットがそれぞれ共有メモリにアクセスしてデータを読み書きする、という形で運用されることも良くある。しかし、共有メモリに対してコントローラおよびユニットが無秩序にアクセスできるようにすると、それぞれのアクセスが同一のタイミングで発生することによる「メモリ競合」が起こり、その結果として、優先して処理すべきデータの読み書きが遅延してしまうといった問題が生じ得る。
そこで従来、このようなメモリ競合の発生を避けるための技術の例が、例えば特許文献1および2に提案されている。
特許文献1には、共有メモリの使用許可を求めるリクエスト信号をランダムなタイミングで出力する第1制御手段と、前記共有メモリの使用許可を求めるリクエスト信号を一定サイクル毎に出力する第2制御手段と、前記第1制御手段、及び第2制御手段からそれぞれ出力される前記リクエスト信号を調停する調停手段とを備えたメモリアクセス調停装置において、前記第2制御手段からのリクエスト信号の出力を受けて、前記調停手段に対し、該調停手段が前記第1制御手段に対してack信号を出力するのを禁止するack禁止信号を出力する判定手段を備える、ことを特徴とするメモリアクセス調停装置が開示される。
特許文献2には、共用資源に対する複数のデバイスからの使用要求を予め定めた優先順位により調停して選択的に前記共用資源の使用許可をする調停システムにおいて、調停の対象となる前記複数のデバイスの中で一定時間内にデータを転送する必要のある特定デバイスの使用要求許可開始から次の使用要求許可開始までの時間を計時して、前記特定のデバイスの使用要求許可の選択が所定時間されていないことを検知するとタイムアウト信号を発生する計時手段と、前記計時手段からの前記タイムアウト信号に応じて前記特定のデバイスの優先順位を最も高く、または少なくとも2番目に高く変更することで前記特定デバイスの使用要求を一定時間毎に許可する調停手段とを具備したことを特徴とする調停システムが開示される。
特開2005−115421号 特開平9−91194号
特許文献1の技術では、第1制御手段および第2制御手段がいずれも調停手段にアクセスして、メモリへのアクセスを調停して貰う必要がある。そのため、例えば第1制御手段を産業用コントローラのCPUとした場合、調停のためのCPUの処理負荷(リクエスト送信、ACK受信など)が増えるため、CPUの制御周期が長くなってしまう。その結果、CPUが一定の周期で処理を実行できなくなる問題が発生する。
特許文献2の技術でも、複数のデバイスと、1つのCPUとが、メモリ競合を避けるために調停回路にアクセスする必要がある。これにより、調停のためのCPUの処理負荷(リクエスト送信、ACK受信など)が増えるため、CPUの制御周期が長くなってしまう。その結果、CPUが一定の周期で処理を実行できなくなる問題が発生する。
本発明は、前記の課題を解決するためになされたものであり、その目的は、メモリ競合を防止するための調停処理を制御装置の演算部に実行させることなく、メモリ競合の発生を防止することにある。
本発明の一態様に係る情報処理装置は、シリアルバスに接続される第1メモリと、一定時間ごとに第1信号を出力する第1カウンタと、前記シリアルバスに接続されると共に、前記第1信号に基づいて、所定の制御周期ごとに前記シリアルバスを介して前記第1メモリと通信する第1通信部とを備えている制御装置に接続される情報処理装置であって、前記第1カウンタに同期して動作すると共に、前記一定時間ごとに第2信号を出力する第2カウンタと、前記シリアルバスに接続されると共に、前記第2信号に基づいて、前記制御周期において前記第1通信部が前記第1メモリと通信する期間に少なくとも重畳する第1期間中に、前記シリアルバスを介して前記第1メモリとシリアル通信せず、前記第1期間の後に開始される第2期間中に、前記シリアルバスを介して前記第1メモリと通信する第2通信部とを備えている構成である。
前記の構成によれば、各制御周期内の第1期間中に、第2通信部が第1メモリと通信せずに、第1通信部のみが第1メモリと通信することが保証される。一方、各制御周期内の第2期間中では、第2通信部は第1メモリと通信することができ、さらには第1通信部は第1メモリと通信してもしなくても良い。これらのことから、各制御周期内の第1期間において、第1通信部および第2通信部が第1メモリに対するメモリ競合を起こすことがない。この際、メモリ競合の回避は、第1カウンタに同期する第2カウンタの出力に基づいて実現されており、したがってメモリ競合を回避するための調整処理を第1通信部が実行する必要はない。このように、本発明の一態様に係る情報処理装置は、メモリ競合を防止するための調停処理を制御装置の第1通信部に実行させることなく、メモリ競合を起こさずに済む。これにより、第1通信部の負荷を低減することもできる。
本発明の一態様に係る情報処理装置は、前記の構成において、複数の情報処理装置が、前記制御装置に接続されており、前記情報処理装置ごとに、異なる前記制御周期に前記第2期間が割り当てられる構成である。
前記の構成によれば、各制御周期において、いずれかの情報処理装置の第2通信部のみがシリアルバスを介して通信することが担保されるため、各情報処理装置の第2通信部が互いにメモリ競合を起こすことを防止できる。
本発明の一態様に係る情報処理装置は、前記の構成において、複数の情報処理装置が、前記制御装置に接続されており、前記情報処理装置ごとに、同一の前記制御周期内における前記第1期間の長さおよび前記第2期間の開始タイミングが互いに異なる構成である。
前記の構成によれば、各制御周期において、複数の情報処理装置が同一のタイミングで通信を開始することがないため、複数の情報処理装置による通信がシリアルバスに集中することを防止できる。
本発明の一態様に係る情報処理装置は、前記の構成において、前記情報処理装置ごとに、ある前記制御周期と、他の前記制御周期とにおいて、前記第2期間の開始タイミングが互いに異なる構成である。
前記構成によれば、各制御周期において特定の情報処理装置のみが優先して通信することがないため、各情報処理装置における通信速度を均一にすることができる。
本発明の一態様に係る情報処理装置は、前記の構成において、前記第2通信部は、特定のデータについては前記第1期間中であっても前記第1メモリに送信する構成である。
前記の構成によれば、特定のデータ、例えば制御システムが最優先で処理すべき最優先データについては、第1通信部が第1メモリにアクセスする期間であっても第1メモリに送信されるので、特定のデータの送信が遅延することを防止することができる。これにより、緊急事態の発生時などに制御装置が確実に素早く対応できるので、制御システムの安定性を高めることができる。
本発明の一態様に係る情報処理装置は、前記構成において、第2メモリを備えており、前記第2通信部は、定期的に、前記第1メモリと前記第2メモリとの間のミラーリングを実行する構成である。
前記の構成によれば、第1メモリおよび第2メモリにそれぞれ格納されるデータを定期的に同一にすることができる。
本発明によれば、メモリ競合を防止するための調停処理を制御装置の演算部に実行させることなく、メモリ競合の発生を防止することができるという効果を奏する。
本発明の実施形態1に係る制御システムの要部構成を示すブロック図である。 本発明の実施形態1に係る制御システムによる処理の流れの一例を示すシーケンス図である。 本発明の実施形態2に係る制御システムの要部構成を示すブロック図である。 本発明の実施形態2に係る制御システムによる処理の流れの一例を示すシーケンス図である。 本発明の実施形態3に係る制御システムによる処理の流れの一例を示すシーケンス図である。 本発明の実施形態4に係る制御システムの要部構成を示すブロック図である。 本発明の実施形態4に係る制御システムによる処理の流れの一例を示すシーケンス図である。
〔実施形態1〕
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。
§1 適用例
まず、図1および2を参照して、本発明が適用される場面の一例について説明する。図1に示すように、本実施形態に係るユニット20は、制御システム1においてPLC10に接続され、PLC10と協働して動作する情報処理装置である。ユニット20内のDMAC31は、PLC10内のCPU11と、PLC10内のメモリ12を共有しており、いずれもシリアルバス14を介してメモリ12と通信する。すなわち、CPU11およびDMAC31はメモリ12を共有している。制御システム1には、CPU11とDMAC31とによるメモリ競合を防止するための仕組みが導入されている。
図2に示すように、ユニット20は、PLC10内の時刻カウンタ13から出力される信号に基づいて、所定の制御周期ごとにメモリ12と周期的に通信する。これにより、制御システム1内の制御対象を制御するための制御データをメモリ12から読み出し、制御対象に送信する。
ユニット20では、時刻カウンタ33が時刻カウンタ13と同期して動作しており、時刻カウンタ13と同一のタイミングで一定時間ごとに指示信号を出力する。ユニット20内の転送制御部32は、時刻カウンタ33から出力されたマスク信号に基づいて、メモリ12との通信の可否を指定するマスク信号を生成し、DMAC31に出力する。マスク信号の信号レベルは、CPU11がメモリ12と通信する期間に少なくとも重畳する期間T1中にハイレベルに維持され、期間T1の後に開始される期間T2にローレベルに維持される。DMAC31は、マスク信号がハイレベルの間、メモリ12と通信せず、ローレベルの間、メモリ12と通信する。これにより、CPU11がメモリ12と通信する際に、DMAC31がメモリ12と通信しないので、メモリ競合が発生しない。
CPU11がメモリ12との通信を終了した後に、DMAC31はメモリ12と通信する。この際、CPU11はメモリ12と通信しても良いし、あるいはしなくても良い。したがって、期間T2ではメモリ競合の発生が許容される。これらのことから、マスク信号がハイレベルの間は、CPU11のみがメモリ12と通信できることが保証されるので、CPU11は遅延無くメモリ12にアクセスすることができる。
以上のように、CPU11は、メモリ競合を防止するための調停処理を実行することなく、周期的にメモリ12にアクセスすることができる。DMAC31は、時刻カウンタ13と同期している時刻カウンタ33の出力に基づき生成されるマスク信号に従って、メモリ12へのアクセス有無を決定するため、CPU11と同様に、メモリ競合を防止するための調停処理を実行する必要がない。このように、本実施形態に係るユニット20は、メモリ競合を防止するための調停処理をCPU11に実行させることなく、CPU11とDMAC31との間でメモリ競合を起こさずに済むことができる。
§2 構成例
(制御システム1の構成)
図1は、本実施形態に係る制御システム1の要部構成を示すブロック図である。この図の例では、制御システム1は、PLC(Programmable Logic Controller)10(制御装置)およびユニット20を備えている。図1のPLC10は、CPU(Central Processing Unit)11(第1通信部)、メモリ12(第1メモリ)、時刻カウンタ13(第1カウンタ)、およびシリアルバス14を備えている。図1のユニット20は、MPU21、メモリ22(第2メモリ)、および転送部23を備えている。図1の転送部23は、DMAC(Direct Memory Access Controller)31(第2通信部)、転送制御部32、時刻カウンタ33(第2カウンタ)、およびシリアルバス24を備えている。
制御システム1は、図示しない各種の機器または設備などの複数の制御対象が設置される生産設備を制御するためのシステムである。PLC10は、制御システム1においてこれらの制御対象を制御するように構成されるコントローラの一種である。PLC10および制御対象は、図示しないフィールドネットワーク等の制御系のネットワークに接続されている。PLC10は、制御系のネットワークを介して制御対象と周期的に通信することによって、各種の制御データを制御対象に送受信し、これにより生産設備を制御する。PLC10は、さらに、各制御対象から収集したデータに基づいて、制御システム1の運用状況などの統計処理などに用いられる大容量データを生成し、メモリ12に格納する。
ユニット20は、PLC10に接続され、かつPLC10と協働的に動作するデバイスである。本実施形態では、ユニット20は、例えばPLC10のCPU11の処理負荷を低減させるために、PLC10によって生成される大容量データに対して適用される各種の処理を担当する。このような処理として、例えばパケット分割処理および異常処理などが挙げられる。
(PLC10の詳細構成)
PLC10において、CPU11、メモリ12、および時刻カウンタ13が、それぞれシリアルバス14に接続されている。シリアルバス14の一端は、ユニット20のDMAC31に接続されている。シリアルバス14は、シリアル通信を実行される通信経路であり、例えばPCIe(Peripheral Component Interconnect express)バスである。
CPU11は、PLC10の動作を統括的に制御するプロセッサである。メモリ12は、RAM(Read Only Memory)などの各種の不揮発性記憶媒体である。時刻カウンタ13は、時計およびタイマーの要素を有する。
メモリ12には、制御システム1における制御対象を制御するための制御データが格納されている。CPU11は、制御データをメモリ12から周期的に読み出し、かつ周期的に制御対象に送信する。その周期性は、時刻カウンタ13によって実現される。時刻カウンタ13には、所定の初期設定時刻が設定されている。PLC10が動作を開始すると、初期設定時刻を起点として時刻のカウントを開始する。そして、カウント数が基準数に達すると、言い換えればカウント開始後に一定時間が経過すると、CPU11に対して周期動作を指示する指示信号(第1信号)をCPU11に出力する。CPU11は、指示信号の受信をトリガーとして、1つの制御周期を開始させる。そして、制御周期が継続する間、当該周期内に実行すべき各種の制御(例えば制御データの送信など)を実行する。
時刻カウンタ13は、指示信号を送信した場合、時刻のカウントを継続する。そして、指示信号の送信後にカウントした数が新たに基準数に達すると、指示信号を新たにCPU11に送信する。このように、時刻カウンタ13は一定の周期で指示信号を繰り返しCPU11に出力するように設定されている。CPU11は、新しい指示信号を受信した場合、現在の制御周期を終了させ、直ちに次の制御周期を開始させる。このようにして、CPU11は、一定周期で制御対象を制御し続ける。
本実施形態では、CPU11の制御周期は、例えば125マイクロ秒以下の短い時間である。すなわち本実施形態の制御システム1は、PLC10が高頻度で制御対象を周期的に制御するシステムである。
(ユニット20の詳細構成)
ユニット20において、MPU21、メモリ22、およびDMAC31が、シリアルバス24に接続されている。DMAC31は、さらにシリアルバス14にも接続されている。シリアルバス24は、例えばPCIe(Peripheral Component Interconnect express)バスである。CPU11およびDMAC31の双方がシリアルバス14を介してメモリ12に接続されることによって、CPU11およびDMAC31はメモリ12を共有している。
MPU(Micro Processing Unit)21は、ユニット20の動作を統括的に制御するプロセッサである。MPU21は、例えば上述したパケット分割処理および異常処理などの各種の処理を実行する。メモリ22は、RAM(Read Only Memory)などの各種の不揮発性記憶媒体である。メモリ22には、ユニット20から転送される大容量データなどが格納される。
転送部23は、MPU21またはCPU11による制御に従って、PLC10とユニット20との間のデータ転送を実行する。転送部23内のDMAC31が、シリアルバス14を介したメモリ12との通信を担当する。DMAC31は、CPU11を介さずにメモリ12に直接アクセスすることによって、メモリ12に大容量データを読み書きするコントローラである。DMAC31は、例えば、メモリ12から読み出した大容量データをシリアルバス14上のシリアル通信によってDMAC31まで転送し、さらにシリアルバス24上のシリアル通信によってメモリ22まで転送することによって、メモリ22に書き込む。DMAC31は、あるいは、メモリ22から読み出した大容量データを、シリアルバス14上のシリアル通信によってメモリ12まで転送することによって、メモリ12に書き込むこともできる。
DMAC31は、CPU11から独立して個別に形成される集積回路として実現される。言い換えれば、PLC10およびユニット20はそれぞれ独立した個別の基板を備えており、CPU11はPLC10を構成する基板上に形成され、DMAC31は、ユニット20を構成する基板上に形成される。このように、CPU11およびDMAC31は、互いに独立した別のデバイス(装置)である。
時刻カウンタ33は、時計およびタイマーの要素を有する。本実施形態では、ユニット20の時刻カウンタ33は、PLC10の時刻カウンタ13に同期して動作する。すなわち、時刻カウンタ33には、時刻カウンタ13に設定される初期設定時刻および基準数と同一の初期設定時刻および基準数が設定されている。制御システム1の動作開始時に、ユニット20はPLC10と同時に動作を開始する。これにより、時刻カウンタ33が時刻カウンタ13と同時に時刻のカウントを開始することが担保される。時刻カウンタ33は、ユニット20が動作を開始すると、初期設定時刻を起点として時刻のカウントを開始する。そして、カウント数が基準数に達すると、言い換えればカウント開始後に所定の時刻が経過すると、転送制御部32に対して、転送制御部32にマスク信号の出力を指示する指示信号(第2信号)を転送制御部32に出力する。
マスク信号の出力タイミングは、CPU11が制御データの転送を開始するタイミングと同一の時点に設定する。したがって、例えばCPU11が指示信号を受信すると直ちに制御データの転送を開始する態様では、マスク信号の出力タイミングを、時刻カウンタ13からCPU11への指示信号の出力タイミングと同一の時点に設定する。一方、CPU11が指示信号を受信するとまず特定の処理を実行してからその後に制御データの転送を開始する態様では、マスク信号の出力タイミングを、時刻カウンタ13からCPU11への指示信号の出力タイミングよりも、当該特定の処理の実行に要する時間だけ後の時点に、設定すればよい。
転送制御部32は、指示信号の受信をトリガーとして、所定のマスク信号をDMAC31に出力する。マスク信号は、大容量データ転送の可否をDMAC31に指示する信号であり、ハイレベルおよびオフレベルのいずれかの信号レベルを取る。マスク信号がハイレベルの間、DMAC31による大容量データの転送は禁止され、マスク信号がローレベルの間、DMAC31による大容量データの転送は許可される。これらの詳細は後に図2などを参照して詳細に説明する。
(データ転送の流れ)
図2は、本実施形態に係る制御システム1による処理の流れの一例を示すシーケンス図である。時刻カウンタ13は、時刻t1において指示信号をCPU11に出力する。CPU11は、時刻t1において制御周期C1を開始させ、これにより制御データの処理を開始する。ここでは、制御データをメモリ12から読み出す処理、言い換えれば、メモリ12内の制御データをシリアルバス14上のシリアル通信によってメモリ12からCPU11まで転送する処理を、実行する。
時刻カウンタ33は時刻カウンタ13に同期している。したがって、時刻カウンタ33は時刻t1において指示信号を転送制御部32に出力する。転送制御部32は、時刻t1において、ハイレベルのマスク信号をDMAC31に出力する。これにより、DMAC31が大容量データをメモリ12に転送する処理が禁止される。したがって、DMAC31は時刻t1においてメモリ12にアクセスすることがない。これにより、時刻t1において、メモリ12に対するメモリ競合が発生しない。
ユニット20には、各制御周期においてCPU11が制御データを処理するために必要な処理時間Tcpuを表す情報が、予め設定されている。転送制御部32は、この情報に基づいて、各制御周期においてハイレベルのマスク信号の出力を継続する期間T1(第1期間)を決定する。期間T1は処理時間Tcpuよりも長ければよく、図2の例では両者の長さは互いに等しい。また、期間T1は、制御周期C1における処理時間Tcpuが占める期間に少なくとも重畳すればよく、図2の例では両者は互いに完全に重畳している。CPU11は、時刻t1から、時刻t1よりも処理時間Tcpuだけ後の時刻t2までの間、制御データの転送を継続する。転送制御部32は、時刻t1から期間T1だけ後の時刻t2までの間、ハイレベルのマスク信号の出力を継続する。これにより、時刻t1から時刻t2までの間、DMAC31による大容量データの転送が禁止されるので、CPU11は、メモリ競合を起こすことなく制御データをメモリ12から読み出すことができる。
CPU11は、時刻t2の後、制御データの転送を終了し、他の処理を実行する。転送制御部32は、時刻t2において、期間T1を終了し、各制御周期においてローレベルのマスク信号の出力を継続する期間T2(第2期間)を開始させる。すなわち転送制御部32は、時刻t2において、ローレベルのマスク信号をDMAC31に出力する。これにより、時刻t2においてDMAC31による大容量データの転送が許可される。したがって、DMAC31は、時刻t2において、大容量データの転送を開始する。転送制御部32は、次の指示信号が時刻カウンタ33から入力されるまで、すなわち制御周期C1の終了時点まで、マスク信号をローレベルに維持する。
CPU11は、時刻t2から時刻t3までの間(期間T2に等しい)、必要に応じてメモリ12にアクセスすることができる。したがって、期間T2ではメモリ競合の発生が許容される。期間T2においてCPU11がメモリ12にアクセスしない場合、DMAC31は、期間T2において、CPU11とのメモリ競合を起こすこと無く、メモリ12からDMAC31への大容量データの転送を遅延無く継続することができる。一方、期間T2においてCPU11がメモリ12にアクセスする場合、DMAC31は、CPU11との間でメモリ競合を起こしつつも、大容量データの転送を継続することができる。この際、大容量データの転送に多少の遅延が生じることもあり得るが、ユニット20にとってそのような遅延は大きな問題にならない。
時刻t3において、時刻カウンタ13が次の指示信号をCPU11に出力し、これにより、制御周期C1が終了する。CPU11は、時刻t3において次の制御周期C2を開始させ、これにより時刻t3において制御データの処理を開始する。時刻カウンタ33は、時刻t3において次の指示信号を転送制御部32に出力する。これにより、転送制御部32はハイレベルのノイズ信号をDMAC31に出力する。
制御周期C2における制御データおよび大容量データの転送の手順は、制御周期C1におけるそれと同一である。結果、制御周期C2における時刻t3から時刻t4(時刻t3+Tcpu)までの期間T1では、マスク信号がハイレベルに維持されるので、CPU11はDMAC31とメモリ競合を起こすことなく、制御データをメモリ12から読み出すことができる。また、時刻t4から時刻t5までの間、すなわち制御周期C1における時刻t4以降の残りの期間T2では、メモリ競合の発生が多少は起こる可能性もあるが、DMAC31は大容量データをメモリ12から着実に転送することができる。
PLC10およびユニット20は、制御周期C2よりも後の各制御周期においても、制御周期C1およびC2と同様の処理を実行する。したがって、各制御周期内の期間T1において、CPU11はDMAC31とのメモリ競合を起こさずに、制御データの転送処理
を独占的に実行できる。
(主要な作用効果)
本実施形態では、ユニット20およびCPU11がメモリ12を共有する場合であっても、各制御周期内で制御データが転送される期間T1においては、メモリ競合を起こすことなく制御データの転送を可能にすることができる。したがって、メモリ競合を原因とする制御データの転送遅延が生じない。さらには、メモリ競合を防止するための調停処理をCPU11に対して実行する必要がないため、CPU11の各制御周期が調整処理の実行により遅延することもない。このように、メモリ競合または調停処理を原因とする制御周期の遅延が発生しないため、CPU11は安定した制御周期で制御対象を制御することができる。特に、CPU11が125マイクロ秒以下の制御周期でメモリ12にアクセスする場合、数マイクロ秒は必要な調整処理が不要になることにより、各制御周期の同一性および安定性をより高めることができる。また、CPU11およびDMAC31をそれぞれ別デバイスとする(別の集積回路として実装する)場合でも、CPU11の制御周期を正しく維持することができる。
なお、DMAC31は、転送制御部32に対してマスク信号の出力を要求するリクエスト信号を出力する必要がなく、したがって転送制御部32がマスク信号の出力を許可するACKを転送制御部32からDMAC31が受信する必要もない。したがって、DMAC31の処理負荷を軽減することもできる。
(変形例)
DMAC31は、メモリ12とメモリ22との間で大容量データを定期的にミラーリングしてもよい。これにより、メモリ12に格納される大容量データと、メモリ22に格納される大容量データとを、定期的に同一にすることができる。このミラーリングは、各制御周期内の期間T2において実行される。
〔実施形態2〕
以下、本発明の他の側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。
§2 構成例
(制御システム1Aの構成)
図3は、本実施形態に係る制御システム1Aの要部構成を示すブロック図である。この図の例では、制御システム1は、PLC10、ユニット20、およびユニット20Aを備えている。図3のPLC10およびユニット20の内部構成は、それぞれ図1のPLC10およびユニット20の内部構成と同一であるため、詳細な説明を繰り返さない。ユニット20Aはユニット20と同一のデバイスであり、ユニット20Aの内部構成はユニット20の内部構成と同一である。すなわち、制御システム1Aは、複数のユニット20を備えているシステムであるとも言える。本実施形態では、両者を区別するため、ユニット20Aが備える各部材にはAの参照番号を追加で付与する。例えば、MPU21Aは、ユニット20Aが備えるMPUである。
制御システム1Aにおいて、CPU11、DMAC31、およびDMAC31Aが、シリアルバス14に接続される。これにより、CPU11、DMAC31、およびDMAC31Aが、メモリ12を共有している。DMAC31Aは、DMAC31と同様に、CPU11から独立して個別に形成される集積回路として実現される。DMAC31および31Aのそれぞれも、互いに独立して個別に形成される集積回路として実現される。
(データ転送の流れ)
本実施形態に係る制御システム1Aは、ユニット20および20Aがメモリ12にアクセスする期間T2を、時分割する。すなわち、ユニット20ごとに異なる制御周期に期間T2を割り当てる。詳細には、ある制御周期C1ではユニット20に期間T2を割り当て、他の制御周期C2ではユニット20Aに期間T2を割り当てる。これらの制御によって、ユニット20および20Aは、異なるタイミングで(異なる期間T2に)メモリ12にアクセスできるようにする。その際、期間T1では、CPU11、DMAC31、およびDMAC31Aがメモリ競合を起こすことはない。また、各期間T2では、ユニット20および20Aがメモリ競合を起こすことはない。
図4は、本実施形態に係る制御システム1Aによる処理の流れの一例を示すシーケンス図である。時刻t1において、時刻カウンタ13が指示信号をCPU11に出力する。これにより、CPU11は、時刻t1において制御周期C1を開始させ、制御データの処理を開始する。時刻カウンタ33および33Aは、時刻カウンタ13に同期している。したがって、時刻カウンタ33は時刻t1において指示信号を転送制御部32に出力し、時刻カウンタ33Aは時刻t1において指示信号を転送制御部32Aに出力する。
本実施形態では、転送制御部32は、時刻t1において、マスク信号および共通マスク信号をDMAC31に出力する。共通マスク信号は、大容量データの転送可否をDMAC31に指示する信号である。マスク信号および共通マスク信号のうち少なくとも一方がハイレベルである場合、DMAC31による大容量データの転送が禁止される。マスク信号および共通マスク信号の双方がローレベルである場合、DMAC31による大容量データの転送が許可される。
転送制御部32Aは、時刻t1において、マスク信号Aおよび共通マスク信号AをDMAC31Aに出力する。共通マスク信号Aは、大容量データの転送可否をDMAC31Aに指示する信号である。マスク信号Aおよび共通マスク信号Aのうち少なくとも一方がハイレベルである場合、DMAC31Aによる大容量データの転送が禁止される。マスク信号Aおよび共通マスク信号Aの双方がローレベルである場合、DMAC31Aによる大容量データの転送が許可される。
図4に示すように、共通マスク信号および共通マスク信号Aは、互いに同一の波形を有する。その意味では、これらの信号は、DMAC31および31Aの双方に対して共通に大容量データの転送を禁止する期間を指定する信号であると言える。
転送制御部32は、時刻t1において、ハイレベルのマスク信号およびローレベルの共通マスク信号をDMAC31に出力する。これにより、DMAC31が大容量データをメモリ12に転送する処理が禁止される。転送制御部32Aは、時刻t1において、ハイレベルのマスク信号Aおよびハイレベルの共通マスク信号AをDMAC31Aに出力する。これにより、DMAC31Aが大容量データをメモリ12に転送する処理も禁止される。したがって、DMAC31および31Aは時刻t1においてメモリ12にアクセスすることがない。これにより、時刻t1において、メモリ12に対するメモリ競合が発生しないので、CPU11はメモリ12から制御データを遅延なく読み出すことができる。
各制御周期におけるCPU11の処理は、実施形態1と同一である。CPU11は、時刻t1から時刻t2までの間、制御データの転送を続ける。時刻t1から時刻t2までの間、各マスク信号の現在出力レベルが維持されるので、メモリ競合が発生することはない。
CPU11は、時刻t2において制御データの転送を終了する。転送制御部32は、時刻t2において、ローレベルの共通マスク信号をDMAC31に出力すると共に、ローレベルのマスク信号の出力を維持する。これにより、DMAC31による大容量データの転送が許可される。したがって、DMAC31は、時刻t2において、メモリ12からDMAC31への大容量データの転送を開始する。一方、転送制御部32Aは、時刻t2において、ローレベルの共通マスク信号AをDMAC31Aに出力すると共に、ハイレベルのマスク信号Aの出力を維持する。これにより、DMAC31Aによる大容量データの転送禁止が維持される。したがって、DMAC31Aは、時刻t2において、大容量データの転送を開始しない。
転送制御部32は、次の指示信号が入力されるまで、すなわち制御周期C1の終了時点である時刻t3まで、マスク信号および共通マスク信号の現在出力レベルを維持する。転送制御部32Aも、次の指示信号が入力されるまで、すなわち制御周期C1の終了時点である時刻t3まで、マスク信号Aおよび共通マスク信号Aの現在出力レベルを維持する。一方、CPU11は、時刻t2から時刻t3までの間、メモリ12にアクセスしない。これによりDMAC31は、時刻t2から時刻t3までの間、CPU11およびDMAC31Aとのメモリ競合を起こすこと無く、メモリ12からDMAC31に大容量データを転送し続ける。
時刻t3において、時刻カウンタ13が次の指示信号をCPU11に出力し、時刻カウンタ33が次の指示信号を転送制御部32に出力し、時刻カウンタ33Aが次の指示信号を転送制御部32Aに出力する。これにより、制御周期C1が終了する。CPU11は、時刻t3において次の制御周期C2を開始させ、制御データの転送を開始する。
転送制御部32は、時刻t3において、ハイレベルのマスク信号およびハイレベルの共通マスク信号をDMAC31に出力する。これにより、DMAC31が大容量データをメモリ12に転送する処理が禁止される。転送制御部32Aは、時刻t3において、ハイレベルのマスク信号Aおよびローレベルの共通マスク信号AをDMAC31Aに出力する。これにより、DMAC31Aが大容量データをメモリ12に転送する処理も禁止される。したがって、DMAC31および31Aは時刻t3においてメモリ12にアクセスすることがない。これにより、時刻t3において、メモリ12に対するメモリ競合が発生しないので、CPU11はメモリ12から制御データを遅延なく読み出すことができる。
CPU11は、時刻t3から時刻t4までの間、制御データの転送を続ける。時刻t3から時刻t4までの間、各マスク信号の現在出力レベルが維持されるので、メモリ競合が発生することはない。
CPU11は、時刻t4において、制御データの転送を終了する。転送制御部32は、時刻t4において、ローレベルの共通マスク信号をDMAC31に出力すると共に、ハイレベルのマスク信号の出力を維持する。これにより、DMAC31による大容量データの転送禁止が維持される。したがって、DMAC31は、時刻t4において、大容量データの転送を開始しない。一方、転送制御部32Aは、時刻t4において、ローレベルの共通マスク信号およびローレベルのマスク信号をDMAC31Aに出力する。これにより、DMAC31Aによる大容量データの転送が許可される。したがって、DMAC31Aは、時刻t4において、大容量データの転送を開始する。
転送制御部32は、次の指示信号が入力されるまで、すなわち制御周期C2の終了時点である時刻t5まで、マスク信号および共通マスク信号の現在出力レベルを維持する。転送制御部32Aも、次の指示信号が入力されるまで、すなわち制御周期C2の終了時点である時刻t5まで、マスク信号Aおよび共通マスク信号Aの現在出力レベルを維持する。一方、CPU11は、時刻t4から時刻t5までの間、メモリ12にアクセスしない。これによりDMAC31Aは、時刻t4から時刻t5までの間、CPU11およびDMAC31とのメモリ競合を起こすこと無く、メモリ12からDMAC31Aに大容量データを転送し続ける。
(主要な作用効果)
本実施形態では、複数のユニット20および20AがCPU11と共にメモリ12を共有する場合であっても、各制御周期内の期間T1においてメモリ競合を起こすことなく制御データの転送を可能にすることができる。したがって、メモリ競合を原因とする制御データの転送遅延が生じないため、各制御周期が遅延することがない。さらには、メモリ競合を防止するための調停処理をCPU11に対して実行する必要がないため、各制御周期が調整処理の実行により遅延することもない。したがって、各制御周期が遅延することがないため、PLC10は安定した周期で制御対象を制御することができる。特に、CPU11が125マイクロ秒以下の周期でメモリ12にアクセスする場合、数マイクロ秒が必要な調整処理が不要になることにより、各周期の同一性および安定性をよりよく高めることができる。
さらには、各制御周期内の期間T2においてDMAC31とDMAC31Aとの間でメモリ競合が発生しないので、DMAC31および31Aはそれぞれに割り当てられた期間T2中に大容量データを遅延無く安定して転送することができる。
〔実施形態3〕
以下、本発明の他の側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。
§2 構成例
本実施形態に係る制御システム1Aの構成は、実施形態2と同一である。ただし、DMAC31および31Aは、互いに同一の制御周期内に同時に大容量データを転送する。その際、ユニット20および20Aがメモリ12にアクセスする期間を、大容量データの最小ペイロード単位で時分割する。転送制御部32および32Aは、共通マスク信号を出力せずに、マスク信号またはマスク信号Aのみを出力する。また、ユニット20ごとに、同一の制御周期における期間T1の長さおよび期間T2の開始タイミングが互いに異なっている。さらに、ユニット20およびユニット20Aのそれぞれについて、ある制御周期C1における期間T2の開始タイミングと、他の制御周期C2における期間T2とが、互いに異なっている。
(データ転送の流れ)
図5は、本実施形態に係る制御システム1Aによる処理の流れの一例を示すシーケンス図である。CPU11による制御データの処理は、実施形態1などと同一である。すなわち、CPU11は時刻t1から時刻t2までの間、制御データを転送する。転送制御部32は、時刻t1から時刻t2までの間、ハイレベルのマスク信号をDMAC31に出力する。転送制御部32Aは、時刻t1から時刻t2までの間、ハイレベルのマスク信号をDMAC31Aに出力する。これにより、CPU11との間のメモリ競合を起こすことなく、制御データを転送する。
転送制御部32は、時刻t2において、ローレベルのマスク信号をDMAC31に出力する。これによりDMAC31は、時刻t2において大容量データの転送を開始する。一方、転送制御部32Aは、時刻t2において、ハイレベルのマスク信号Aの出力を維持する。これにより、DMAC31Aは、時刻t2において制御データの転送を開始しない。
転送制御部32および32Aには、大容量データのうち最小ペイロードサイズのデータ(以下、最小ペイロードデータ)を転送するために必要な転送時間Tpdが設定されている。最小ペイロードデータは、シリアルバス14上のシリアル通信時に通信される最小単位のデータのことである。DMAC31は、転送対象の大容量データを複数の最小ペイロードデータに分割して、最小ペイロードデータごとにシリアルバス14上での転送処理を順に実行する。
転送制御部32は、時刻t2から時刻t3までの間、ローレベルのマスク信号の出力を維持する。転送制御部32Aは、時刻t2から、時刻t2に転送時間Tpdを加えた時刻t21までの間、ハイレベルのマスク信号Aの出力を続ける。これにより、DMAC31は、時刻t2から時刻t21までの間に、最小ペイロードデータの転送を完了することができる。
DMAC31Aは、時刻t21において、ローレベルのマスク信号AをDMAC31Aに出力する。これにより、DMAC31Aは、大容量データの転送を開始する。このとき、DMAC31も大容量データの転送を実行しているので、DMAC31とDMAC31Aとの間でメモリ競合が発生する。これにより、DMAC31AとDMAC31とが、最小ペイロードデータを交互にメモリ12から転送するようになる。すなわち、時刻t21の後、まずDMAC31Aがメモリ12から最小ペイロードデータを転送し、その完了後に、DMAC31が最小ペイロードデータをメモリ12から転送する。これらの各処理が、時刻t21から時刻t3までの間に交互に実行される。したがって、図5に示すように、制御周期C1では、DMAC31は3つの最小ペイロードデータの転送に成功し、DMAC31Aは2つの最小ペイロードデータの転送に成功する。
時刻t3において、制御周期C2が開始され、CPU11は時刻t3から時刻t4までの間、制御データを転送する。この際、マスク信号およびマスク信号Aはいずれもハイレベルに維持されているので、CPU11は、メモリ競合を起こすことなく、制御データをメモリから読み出すことができる。
転送制御部32Aは、時刻t4において、ローレベルのマスク信号AをDMAC31Aに出力する。これによりDMAC31Aは、時刻t4において大容量データの転送を開始する。転送制御部32Aは、時刻t4から時刻t5までの間、ローレベルのマスク信号Aの出力を維持する。転送制御部32は、時刻t4から、時刻t4に転送時間Tpdを加えた時刻t41までの間、ハイレベルのマスク信号の出力を続ける。これにより、DMAC31Aは、時刻t4から時刻t41までの間に、CPU11およびDMAC31との間でメモリ競合を起こすことなく、最小ペイロードデータの転送を完了することができる。
DMAC31は、時刻t41において、ローレベルのマスク信号AをDMAC31に出力する。これにより、DMAC31は、大容量データの転送を開始する。このとき、DMAC31Aも大容量データの転送を実行しているので、メモリ競合が発生する。これにより、DMAC31AとDMAC31とが、最小ペイロードデータを交互にメモリ12から転送するようになる。すなわち、時刻t41の後、まずDMAC31がメモリ12から最小ペイロードデータを転送し、その完了後に、DMAC31Aが最小ペイロードデータをメモリ12から転送する。これらの各処理が、時刻t21から時刻t3までの間に交互に実行される。したがって、図5に示すように、制御周期C2では、DMAC31は2つの最小ペイロードデータの転送に成功し、DMAC31Aは3つの最小ペイロードデータの転送に成功する。
(主要な作用効果)
制御データの転送完了後、制御周期C1では時刻t2においてDMAC31のみが大容量データの転送をまず開始し、制御周期C2では時刻t4においてDMAC31Aのみが大容量データの転送をまず開始する。これにより、大容量データの転送が開始された直後に、複数のユニット20による通信がシリアルバス14に集中することを防止することができる。
各ユニット20において、大容量データの転送を開始するタイミングが制御周期ごとに異なっている。これにより、各制御周期においてユニット20または20Aのいずれかのみが優先してより多くのデータを転送することがなくなるため、各ユニット20における転送速度を均一にすることができる。実際、図5に示すように、制御周期C1およびC2における最小ペイロードデータの転送数をユニット20ごとに合算すると、ユニット20では3個+2個=5個であり、ユニット20Aでは3個+2個=5個であり、両者は等しい。そのため、各ユニット20における所定期間内の最小ペイロードデータの転送数は、ユニット20ごとに同一になり、これは大容量データの転送速度がユニット20によらず同一であることを意味する。
〔実施形態4〕
以下、本発明の他の側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。
§2 構成例
(制御システム1Bの構成)
図6は、本実施形態に係る制御システム1Bの要部構成を示すブロック図である。この図の例では、制御システム1は、PLC10およびユニット20Bを備えている。図6のPLC10の内部構成は、図1のPLC10の内部構成と同一であるため、詳細な説明を繰り返さない。ユニット20Bは、実施形態1のユニット20が備える各部材に加えて、さらに、DMAC34を備えている。
DMAC34は、転送部23に設けられており、シリアルバス14およびシリアルバス24に接続されている。本実施形態ではメモリ22に最優先データ(特定のデータ)が格納されており、DMAC34は、MPU21による制御に従って、この最優先データをPLC10に転送する役割を有する。最優先データは、制御システム1Bが最優先に処理する必要があるデータであり、例えばシステムの緊急停止を指示するデータである。DMAC34は、マスク信号がハイレベルであっても、これを無視してシリアルバス14を通じて最優先データをメモリ12に転送することができる。
(データ転送の流れ)
図7は、本実施形態に係る制御システム1Aによる処理の流れの一例を示すシーケンス図である。以下では、DMAC31が大容量データをメモリ22からメモリ12に転送する例を説明する。時刻t1において、時刻カウンタ13が指示信号をCPU11に出力する。これにより、CPU11は、時刻t1において制御周期C1を開始させ、制御データの処理を開始する。時刻カウンタ33は時刻t1において指示信号を転送制御部32に出力し、これにより、転送制御部32はハイレベルのマスク信号をDMAC31に出力する。したがって、DMAC31は時刻t1において大容量データの転送を開始しない。なお、マスク信号はDMAC31Bには出力されない。
MPU21は、時刻t1において、最優先データをPLC10に転送すべき事象が生じたことを検出する。これによりMPU21は、最優先データの転送をDMAC34に指示する。DMAC34は、これを受けて、時刻t1においてメモリ12に対する最優先データの転送を開始する。時刻t1ではCPU11が制御データの転送を開始しているが、最優先データが制御データに優先してメモリ12に転送されるため、制御データの実際の転送開始は、メモリ12への最優先データの転送が完了する時刻t11まで遅延される。すなわち、時刻t1において最優先データの転送が完了すると、制御データの転送が改めて開始される。制御データの転送は、最優先データの転送に必要に時間だけ遅延しているため、時刻t2になってもまだ完了しない。
転送制御部32は、時刻t2において、ローレベルのマスク信号をDMAC31に出力する。DMAC31は、時刻t2において大容量データの転送を開始する。この際、制御データがまだ転送中であるため、メモリ競合が発生する。これにより、メモリ12への大容量データの書き込みは、制御データの転送が完了した後から開始される。
図7では、制御周期C1において制御データの転送が遅延したことから、制御周期C1もその分だけ延長されることになる。このままでは、制御周期C1が完了する前に、時刻カウンタ13および時刻カウンタ33が指示信号を出力することになるので、制御周期C1の正しい終了時点と制御周期C2の正しい開始時点とが一致しなくなる。そこで、CPU11は、指示信号を出力するタイミングを、制御データの転送遅延時間に相当する時間だけ修正する(遅らせる)修正指示を、制御周期C1が終了する前の任意の時点で、シリアルバス14を通じて時刻カウンタ13およびDMAC31にそれぞれ出力する。DMAC31は、受信した修正指示を、転送制御部32を介して時刻カウンタ33に出力する。時刻カウンタ13および時刻カウンタ33は、受信した修正指示に基づいて、次に指示信号を出力するタイミングを修正する。例えば、現在のカウント数から、転送遅延時間を減算することによって、カウント数を変更する。これにより、制御データの転送遅延中に進んでしまったカウント数を無くすことができるので、制御周期C1が終了する正しいタイミングで、次の制御周期C2を開始するための指示信号を出力することができる。さらには、次の制御周期C2の開始時点において、ハイレベルのマスク信号を出力することもできる。
図7の例では、時刻カウンタ13は、時刻t3よりも転送遅延時間だけ後の時刻t31において、次の指示信号をCPU11に出力する。時刻カウンタ33は、時刻t31において、指示信号を転送制御部32に出力する。これにより、転送制御部32は、時刻t31において、ハイレベルのマスク信号をDMAC31に出力する。これらの結果、制御周期C2では制御データの転送期間と、マスク信号のハイレベル維持期間とが一致するので、CPU11はメモリ競合を起こすことなく制御データをメモリ12から転送ことができる。また、制御データの転送終了後、DMAC31はメモリ競合を起こすことなく、大容量データをメモリ12から転送ことができる。
(主要な作用効果)
制御システム1Bが最優先で処理すべき最優先データについては、マスク信号の信号レベルに関わらず、PLC10に最優先で転送するため、PLC10に対する最優先データの転送が遅延することを防止することができる。これにより、緊急事態の発生時などに制御システム1Bが確実に素早く対応できるので、制御システム1Bの安定性を高めることができる。
(変形例)
マスク信号による転送制御を受けるDMAC31が転送するデータの中に、最優先データを含めても良い。この場合、最優先データにはマスク信号を無視できるフラグを設定する。DMAC31は、転送対象の各データの中に、このようなフラグが設定された最優先データを発見した場合、この最優先データの転送順位を最上位に変更すると共に、マスク信号がハイレベルであってもこれを無視してシリアルバス14を通じて最優先データをメモリ12に転送する。これにより、最優先データを制御データおよび大容量データよりも優先してメモリ12に書き込むことができる。したがって、この例であっても、本実施形態と同様の利点が得られる。
〔ソフトウェアによる実現例〕
ユニット20、20A、および20Bの制御ブロック(特に転送部23およびDMAC34)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、ユニット20、20A、および20Bは、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、前記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、前記コンピュータにおいて、前記プロセッサが前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。前記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して前記コンピュータに供給されてもよい。なお、本発明の一態様は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は前述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態も、本発明の技術的範囲に含まれる。各実施形態にそれぞれ開示された技術的手段を組み合わせることによって、新しい技術的特徴を形成することもできる。
1、1A、1B 制御システム
10 PLC
11、11A CPU
12、22 メモリ
13、33、33A 時刻カウンタ
14、24 シリアルバス
20、20A、20B ユニット
21 MPU
23 転送部
31、31A、31B、34 DMAC
32、32A 転送制御部

Claims (6)

  1. シリアルバスに接続される第1メモリと、一定時間ごとに第1信号を出力する第1カウンタと、前記シリアルバスに接続されると共に、前記第1信号に基づいて、所定の制御周期ごとに前記シリアルバスを介して前記第1メモリと通信する第1通信部とを備えている制御装置に接続される情報処理装置であって、
    前記第1カウンタに同期して動作すると共に、前記一定時間ごとに第2信号を出力する第2カウンタと、
    前記シリアルバスに接続されると共に、前記第2信号に基づいて、前記制御周期において前記第1通信部が前記第1メモリと通信する期間に少なくとも重畳する第1期間中に、前記シリアルバスを介して前記第1メモリとシリアル通信せず、前記第1期間の後に開始される第2期間中に、前記シリアルバスを介して前記第1メモリと通信する第2通信部とを備えている情報処理装置。
  2. 複数の情報処理装置が、前記制御装置に接続されており、
    前記情報処理装置ごとに、異なる前記制御周期に前記第2期間が割り当てられる請求項1に記載の情報処理装置。
  3. 複数の情報処理装置が、前記制御装置に接続されており、
    前記情報処理装置ごとに、同一の前記制御周期内における前記第1期間の長さおよび前記第2期間の開始タイミングが互いに異なる請求項1に記載の情報処理装置。
  4. 前記情報処理装置ごとに、ある前記制御周期と、他の前記制御周期とにおいて、前記第2期間の開始タイミングが互いに異なる請求項3に記載の情報処理装置。
  5. 前記第2通信部は、特定のデータについては前記第1期間中であっても前記第1メモリに送信する請求項1に記載の情報処理装置。
  6. 第2メモリを備えており、
    前記第2通信部は、定期的に、前記第1メモリと前記第2メモリとの間のミラーリングを実行する請求項1に記載の情報処理装置。
JP2019093181A 2019-05-16 2019-05-16 情報処理装置 Active JP7259537B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019093181A JP7259537B2 (ja) 2019-05-16 2019-05-16 情報処理装置
US17/605,243 US11782860B2 (en) 2019-05-16 2020-03-02 Information processing device for preventing occurrence of memory contention
PCT/JP2020/008577 WO2020230412A1 (ja) 2019-05-16 2020-03-02 情報処理装置
EP20806618.3A EP3971722A4 (en) 2019-05-16 2020-03-02 INFORMATION PROCESSING DEVICE
CN202080028588.5A CN113711191A (zh) 2019-05-16 2020-03-02 信息处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019093181A JP7259537B2 (ja) 2019-05-16 2019-05-16 情報処理装置

Publications (2)

Publication Number Publication Date
JP2020187658A true JP2020187658A (ja) 2020-11-19
JP7259537B2 JP7259537B2 (ja) 2023-04-18

Family

ID=73221874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019093181A Active JP7259537B2 (ja) 2019-05-16 2019-05-16 情報処理装置

Country Status (5)

Country Link
US (1) US11782860B2 (ja)
EP (1) EP3971722A4 (ja)
JP (1) JP7259537B2 (ja)
CN (1) CN113711191A (ja)
WO (1) WO2020230412A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5111534A (ja) * 1974-07-19 1976-01-29 Tokyo Shibaura Electric Co
JPH0652118A (ja) * 1992-07-30 1994-02-25 Ricoh Co Ltd 複数中央演算処理装置の制御装置
JP2006099214A (ja) * 2004-09-28 2006-04-13 Toshiba Tec Corp 共有メモリアクセス制御装置
WO2015056695A1 (ja) * 2013-10-15 2015-04-23 オムロン株式会社 制御装置および制御方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444855A (en) 1992-04-17 1995-08-22 International Business Machines Corporation System for guaranteed CPU bus access by I/O devices monitoring separately predetermined distinct maximum non CPU bus activity and inhibiting I/O devices thereof
JP2007087416A (ja) * 1993-09-17 2007-04-05 Renesas Technology Corp シングルチップデータ処理装置
US5546547A (en) * 1994-01-28 1996-08-13 Apple Computer, Inc. Memory bus arbiter for a computer system having a dsp co-processor
JPH0991194A (ja) 1995-09-27 1997-04-04 Canon Inc 調停システムおよび調停方法
JPH09330289A (ja) * 1996-06-10 1997-12-22 Fujitsu Ltd 競合制御回路
US6728898B2 (en) * 2002-03-06 2004-04-27 Marathon Technologies Corporation Producing a mirrored copy using incremental-divergence
US7793060B2 (en) * 2003-07-15 2010-09-07 International Business Machines Corporation System method and circuit for differential mirroring of data
JP2005115421A (ja) 2003-10-02 2005-04-28 Matsushita Electric Ind Co Ltd メモリアクセス調停装置、及びメモリアクセス調停方法
JP2006031480A (ja) * 2004-07-16 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
JP2009093740A (ja) * 2007-10-05 2009-04-30 Kyocera Mita Corp メモリアクセス制御回路
CN104137063A (zh) * 2012-02-28 2014-11-05 株式会社安川电机 控制装置以及控制装置的控制方法
JP6358088B2 (ja) * 2012-03-15 2018-07-18 オムロン株式会社 制御装置、情報処理装置、制御方法、コンピュータ読取可能な記録媒体、およびプログラム
JP2013235300A (ja) * 2012-03-26 2013-11-21 Fanuc Ltd 安全信号処理システム
KR101618537B1 (ko) * 2012-08-01 2016-05-18 미쓰비시덴키 가부시키가이샤 통신 장치, 통신 시스템 및 동기 제어 방법
WO2014065880A1 (en) * 2012-10-22 2014-05-01 Robert Beers Coherence protocol tables
US20170199839A1 (en) * 2016-01-13 2017-07-13 Qualcomm Incorporated Bus ownership hand-off techniques
US10528501B2 (en) * 2017-05-18 2020-01-07 Linear Technology Holding Llc Coordinated event sequencing
JP6984496B2 (ja) * 2018-03-09 2021-12-22 富士通株式会社 ストレージ管理装置、ストレージシステム、及びストレージ管理プログラム
US10887427B1 (en) * 2018-11-14 2021-01-05 Amazon Technologies, Inc. System for automatic scaling to process requests

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5111534A (ja) * 1974-07-19 1976-01-29 Tokyo Shibaura Electric Co
JPH0652118A (ja) * 1992-07-30 1994-02-25 Ricoh Co Ltd 複数中央演算処理装置の制御装置
JP2006099214A (ja) * 2004-09-28 2006-04-13 Toshiba Tec Corp 共有メモリアクセス制御装置
WO2015056695A1 (ja) * 2013-10-15 2015-04-23 オムロン株式会社 制御装置および制御方法

Also Published As

Publication number Publication date
US20220214986A1 (en) 2022-07-07
EP3971722A4 (en) 2023-01-18
EP3971722A1 (en) 2022-03-23
US11782860B2 (en) 2023-10-10
JP7259537B2 (ja) 2023-04-18
CN113711191A (zh) 2021-11-26
WO2020230412A1 (ja) 2020-11-19

Similar Documents

Publication Publication Date Title
US7350004B2 (en) Resource management device
JP5829890B2 (ja) 半導体データ処理装置、タイムトリガ通信システム及び通信システム
US7467245B2 (en) PCI arbiter
US20070038792A1 (en) Systems, methods, and computer program products for arbitrating access to a shared resource based on quality-of-service information associated with a resource request
JP2011150397A (ja) バス調停装置
US9330025B2 (en) Information processing apparatus, memory control apparatus, and control method thereof
EP2423824B1 (en) Data transfer device, method of transferring data, and image forming apparatus
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
WO2020230412A1 (ja) 情報処理装置
JP5677007B2 (ja) バス調停装置、バス調停方法
WO2020230413A1 (ja) 情報処理装置
US20160239443A1 (en) Dma controller
JP2007087247A (ja) バス制御システム
CN113711192B (zh) 信息处理装置
CN110825671A (zh) 一种多晶片系统
CN115884229B (zh) 传输时延的管理方法、电子设备和存储介质
JP2002288120A (ja) 調停装置およびバスシステム
JP7419889B2 (ja) 通信制御機器および通信制御機器の制御方法
JP2001222461A (ja) メモリ制御方法及び装置
JP2021005327A (ja) 情報処理装置
JP2006201832A (ja) データ転送処理装置
JP2011022814A (ja) 半導体集積回路、情報処理装置およびプロセッサ性能保証方法
JPH04322352A (ja) バス転送制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230124

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: 20230307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230320

R150 Certificate of patent or registration of utility model

Ref document number: 7259537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150