JP6009902B2 - 共有メモリアクセスシステムおよび共有メモリアクセス方法 - Google Patents

共有メモリアクセスシステムおよび共有メモリアクセス方法 Download PDF

Info

Publication number
JP6009902B2
JP6009902B2 JP2012234091A JP2012234091A JP6009902B2 JP 6009902 B2 JP6009902 B2 JP 6009902B2 JP 2012234091 A JP2012234091 A JP 2012234091A JP 2012234091 A JP2012234091 A JP 2012234091A JP 6009902 B2 JP6009902 B2 JP 6009902B2
Authority
JP
Japan
Prior art keywords
bank
transmission
processor
data
area
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
JP2012234091A
Other languages
English (en)
Other versions
JP2014085820A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012234091A priority Critical patent/JP6009902B2/ja
Publication of JP2014085820A publication Critical patent/JP2014085820A/ja
Application granted granted Critical
Publication of JP6009902B2 publication Critical patent/JP6009902B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、共有メモリアクセスシステムおよび共有メモリアクセス方法に関する。
共有メモリアクセスシステムにおいて、例えば外部のネットワークと通信処理プロセッサとを介して送受信データをやり取りし、その送受信データは共有メモリに一時蓄積されて演算処理プロセッサにより処理されるように2つのプロセッサ間で転送されるものがある。
なお、マルチプロセッサ間通信方法において、複数のプロセッサで共通に使用される共有メモリのアクセス時における競合制御を、当該共有メモリ上に設けた排他制御管理エリアのフラグによって行い、また、通信するプロセッサの各組合せ毎に付与した識別番号毎に、あるいは送信と受信とで独立して、交信エリアの使用権の競合制御を行うことが知られている(例えば、特許文献1を参照)。
また、共有メモリのアクセス方式において、共有メモリにデータを書込む側の処理装置が書込み要否判定機能と、該処理装置側で占有できる書込み要否判定機能用ローカルバッファとを備え、共有メモリにデータを書込む際に、書込み要否判定機能が書込み要否判定機能用ローカルバッファの内容を用いて書込みデータに変化があるか無いかを書込みデータ毎に判定し、データに変化があった場合にのみ実際に共有メモリにデータを書込むとともに、共有メモリの書込みアドレスに対応した書込み要否判定機能用ローカルバッファのアドレスに書込みデータに対応した値を書込むことが知られている(例えば、特許文献2を参照)。
特開平6−12387号公報 特開2007−279884号公報
はじめに、上述した特許文献をはじめとする従来技術の共有メモリアクセスシステムについて説明する。図18は、従来技術の共有メモリアクセスシステムの構成を示すブロック図である。また、図19は、従来技術の共有メモリアクセスシステムの制御処理タイミングを示す図である。
図18に示す共有メモリアクセスシステムは、共有メモリ100と、共有メモリ100上のデータを演算処理する演算処理プロセッサ101と、伝送路300を介して送受信される伝送データ(送信データおよび受信データ)を共有メモリ100に対して読み出しおよび書き出し処理する通信処理プロセッサ200とを備えている。
図18に、共有メモリ100内にあるフラグ領域130に割り当てられているフラグの種別を示す。例えば、フラグ領域130には、以下の4つのフラグを含んでいる。
受信領域演算処理プロセッサ使用中フラグ130r1
受信領域通信処理プロセッサ使用中フラグ130r2
送信領域演算処理プロセッサ使用中フラグ130s1
送信領域通信処理プロセッサ使用中フラグ130s2
演算処理プロセッサ101は、受信領域通信処理プロセッサ使用中フラグ130r2を読み取り、通信処理プロセッサ200が受信領域バンク100rを使用中(フラグがセット状態)である場合に、受信領域通信処理プロセッサ使用中フラグ130r2がクリアされるまで待つ。
次に、演算処理プロセッサ101は、受信領域演算処理プロセッサ使用中フラグ130r1をセットし、受信領域バンク100rから受信データを読み出す。その後、受信領域演算処理プロセッサ使用中フラグ130r1をクリアする。これにより、演算処理プロセッサ101は、共有メモリ100から読み出した受信データを用いて、演算処理を行う。
また、演算処理プロセッサ101は、送信領域通信処理プロセッサ使用中フラグ130s2を読み取り、通信処理プロセッサ200が送信領域バンク100sを使用中である場合に、送信領域通信処理プロセッサ使用中フラグ130s2がクリアされるまで待つ。
次に、演算処理プロセッサ101は、送信領域演算処理プロセッサ使用中フラグ130s1をセットし、送信領域バンク100sに送信データを書き込む。その書き込み後、演算処理プロセッサ101は、送信領域演算処理プロセッサ使用中フラグ130s1をクリアする。
図19の制御処理103に示すように、演算処理プロセッサ101は、制御周期ごとに、上述したような共有メモリ100内の受信領域バンク100rから受信データを読み出す処理を実行している。さらに、演算処理プロセッサ101は、読み出した受信データを用いて演算処理を実行した後、共有メモリ100内の送信領域バンク100sに送信データを書き込む処理を実行する。その書き込み後に、演算処理プロセッサ101は、次の制御周期を待つ。
一方、図19に示す制御処理103の間に、通信処理プロセッサ200は、送信領域バンク100sから送信データを読み出し、伝送路300を介して、読み出した送信データを図示しない送信先に送る。また、受信データを受けた場合に、通信処理プロセッサ200は、その受信データを受信領域バンク100rに書き込む。
上記で説明したように、演算処理プロセッサ101および通信処理プロセッサ200は互いに非同期に動作しているため、演算処理プロセッサ101および通信処理プロセッサ200は、非同期に共有メモリ100にアクセスすることになる。
上述した共有メモリアクセスシステムにおいては、2つのプロセッサのうちの一方の通信処理プロセッサが共有メモリを使用中の間に、共有メモリへのアクセスが競合した場合に、他方の演算処理プロセッサが共有メモリへのアクセスを待たされることがあった。このため、演算処理プロセッサの動作時間が一定しないということが課題であった。
本発明の実施形態が解決しようとする課題は、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる共有メモリアクセスシステムおよび共有メモリアクセス方法を提供することを目的とする。
上記課題を解決するために、一つの実施形態の共有メモリアクセスシステムは、第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信して、前記共有メモリを介して前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムである。前記共有メモリは、前記アクセスの際に前記送信データおよび前記受信データを記憶する少なくとも1つのバンク手段を備え、前記バンク手段は、前記送信データおよび前記受信データを記憶し、バンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段と、を有し、前記第2プロセッサは、前記バンク制御手段にバンク切替指令を送り、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出し、前記第1プロセッサは、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込むものであり、前記バンク制御手段は、前記第1プロセッサからバンク切替要求を受け付けてバンク切替要求フラグをセットし、前記バンク切り替え後に前記バンク切替要求フラグをリセットするバンク切替要求フラグ手段と、前記第2プロセッサから前記バンク切替指令を受けて、前記第1および第2送受信領域バンクのバンク切り替えを実行するするバンク切替制御手段と、を有し、前記第2プロセッサは、前記バンク切替要求フラグ手段に前記バンク切替要求フラグがセットされている場合に、前記バンク切替制御手段へ前記バンク切替指令を送り、前記第1プロセッサが前記バンク手段から前記受信データを読み出す処理および前記バンク手段に前記送信データを書き込む処理を少なくとも含む制御周期として、さらに前記制御周期に次の前記制御周期の待ち時間を含み、前記制御周期における前記受信データを読み出す処理は前記送信データを書き込む処理よりも前の処理であり、前記第1プロセッサが、次の前記制御周期の前記待ち時間内に前記バンク切替要求を送り、前記第2プロセッサが、前記バンク切替要求フラグ手段に前記バンク切替要求フラグがセットされている場合に、次の前記制御周期の前記待ち時間内に前記バンク切替制御手段へ前記バンク切替指令を送ることを特徴とする。
また、他の一つの実施形態の共有メモリアクセスシステムは、第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信して、前記共有メモリを介して前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムである。前記共有メモリは、前記アクセスの際に前記送信データおよび前記受信データを記憶する少なくとも1つのバンク手段を備え、前記バンク手段は、前記送信データおよび前記受信データを記憶し、バンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段と、を有し、前記第2プロセッサは、前記バンク制御手段にバンク切替指令を送り、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出し、前記第1プロセッサは、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込むものである。前記バンク制御手段は、前記第1プロセッサからバンク切替要求を受け付けてバンク切替要求フラグをセットし、前記バンク切り替え後に前記バンク切替要求フラグをリセットするバンク切替要求フラグ手段と、前記第2プロセッサから前記バンク切替指令を受けて、前記第1および第2送受信領域バンクのバンク切り替えを実行するするバンク切替制御手段と、を有し、前記第2プロセッサは、前記バンク切替要求フラグ手段に前記バンク切替要求フラグがセットされている場合に、前記バンク切替制御手段へ前記バンク切替指令を送り、前記第1プロセッサが前記バンク手段に前記送信データを書き込む処理と前記バンク手段から前記受信データを読み出す処理とこれら以外の他の処理を少なくとも含む制御周期として、さらに前記制御周期に次の前記制御周期の待ち時間を含み、前記制御周期における前記送信データを書き込む処理は前記他の処理よりも後の処理であり、かつ、前記送信データを書き込む処理は前記受信データを読み出す処理よりも前の処理であり、前記第1プロセッサが、次の前記制御周期の前記待ち時間と前記他の処理との間に前記バンク切替要求を送り、前記第2プロセッサが、前記バンク切替要求フラグ手段に前記バンク切替要求フラグがセットされている場合に、次の前記制御周期の前記待ち時間と前記他の処理との間に前記バンク切替制御手段へ前記バンク切替指令を送ることを特徴とする。
さらに、他の一つの実施形態の共有メモリアクセスシステムは、第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信して、前記共有メモリを介して前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムである。前記共有メモリは、前記アクセスの際に前記送信データおよび前記受信データを記憶する少なくとも1つのバンク手段を備え、前記バンク手段は、前記送信データおよび前記受信データを記憶し、バンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段と、を有し、前記第2プロセッサは、前記バンク制御手段にバンク切替指令を送り、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出し、前記第1プロセッサは、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込むものであり、前記第1送受信領域バンクには、前記受信データを記憶するバンク切り替え可能な第1ないし第3受信領域バンクからなる受信領域バンクのいずれか一つのバンクと、前記送信データを記憶するバンク切り替え可能な第1ないし第3送信領域バンクからなる送信領域バンクのいずれか一つのバンクとが対応し、前記第2送受信領域バンクには、前記受信領域バンクのいずれか一つの他のバンクと、前記送信領域バンクのいずれか一つの他のバンクとが対応し、前記受信領域バンクおよび前記送信領域バンクの残りのバンクが、前記第1および第2送受信領域バンクに含まれない待機バンクに対応するように区分され、前記第1および第2送受信領域バンクは、さらに、前記受信領域バンクの前記いずれか一つのバンクと前記他のバンクとの間でバンク切り替え可能であり、前記送信領域バンクの前記いずれか一つのバンクと前記他のバンクとの間でバンク切り替え可能であり、前記バンク切替指令は、前記受信領域バンクに対する受信領域バンク第1切替指令および受信領域バンク第2切替指令と、前記送信領域バンクに対する送信領域バンク第1切替指令および送信領域バンク第2切替指令とを含み、前記バンク制御手段は、前記第1プロセッサからの前記受信領域バンク第1切替指令に応じて、前記第1プロセッサがアクセス可能なバンクとして最も直近に前記受信データが書き込まれた前記第1ないし第3受信領域バンクのいずれか一つのバンクに前記受信領域バンクを切り替える受信領域バンク第1切替制御手段と、前記第2プロセッサからの前記受信領域バンク第2切替指令に応じて、前記第2プロセッサがアクセス可能なバンクとして前記第1ないし第3受信領域バンクのうちの前記待機バンクに前記受信領域バンクを切り替える受信領域バンク第2切替制御手段と、前記第1プロセッサからの前記送信領域バンク第1切替指令に応じて、前記第1プロセッサがアクセス可能なバンクとして前記第1ないし第3送信領域バンクのうちの前記待機バンクに前記送信領域バンクを切り替える送信領域バンク第1切替制御手段と、前記第2プロセッサからの前記送信領域バンク第2切替指令に応じて、前記第2プロセッサがアクセス可能なバンクとして最も直近に前記送信データが書き込まれた前記第1ないし第3送信領域バンクのいずれか一つのバンクに前記送信領域バンクを切り替える送信領域バンク第2切替制御手段と、を有し、前記第1プロセッサは、前記第1ないし第3受信領域バンクのアクセス可能ないずれか一つのバンクから前記受信データを読み出し、前記第1ないし第3送信領域バンクのアクセス可能ないずれか一つのバンクへ前記送信データを書き込み、前記第2プロセッサは、前記第1ないし第3受信領域バンクのアクセス可能ないずれか一つのバンクへ前記受信データを書き込み、前記第1ないし第3送信領域バンクのアクセス可能ないずれか一つのバンクから前記送信データを読み出すことを特徴とする。
また、上記課題を解決するために、一つの実施形態の共有メモリアクセス方法は、第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信するために、前記共有メモリは、前記送信データおよび前記受信データを記憶しバンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段とを有する少なくとも1つのバンク手段を備え、前記共有メモリを介して、前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムに用いられる共有メモリアクセス方法である。当該共有メモリアクセス方法は、前記第2プロセッサが、前記バンク制御手段にバンク切替指令を送るバンク切替指令ステップと、前記第2プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出す第2プロセッサアクセスステップと、前記第1プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込む第1プロセッサアクセスステップと、前記バンク制御手段が、前記第1プロセッサからバンク切替要求を受け付けてバンク切替要求フラグをセットし、前記バンク切り替え後に前記バンク切替要求フラグをリセットするバンク切替要求フラグステップと、前記バンク制御手段が、前記第2プロセッサから前記バンク切替指令を受けて、前記第1および第2送受信領域バンクのバンク切り替えを実行するするバンク切替制御ステップと、前記第2プロセッサが、前記バンク切替要求フラグステップによって前記バンク切替要求フラグがセットされている場合に、前記バンク制御手段へ前記バンク切替指令を送るステップと、を含み、前記第1プロセッサが前記バンク手段から前記受信データを読み出す処理および前記バンク手段に前記送信データを書き込む処理を少なくとも含む制御周期として、さらに前記制御周期に次の前記制御周期の待ち時間を含み、前記制御周期における前記受信データを読み出す処理は前記送信データを書き込む処理よりも前の処理であり、前記第1プロセッサが、次の前記制御周期の前記待ち時間内に前記バンク切替要求を送るステップと、前記第2プロセッサが、前記バンク制御手段に前記バンク切替要求フラグがセットされている場合に、次の前記制御周期の前記待ち時間内に前記バンク制御手段へ前記バンク切替指令を送るステップと、をさらに含むことを特徴とする。
また、他の一つの実施形態の共有メモリアクセス方法は、第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信するために、前記共有メモリは、前記送信データおよび前記受信データを記憶しバンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段とを有する少なくとも1つのバンク手段を備え、前記共有メモリを介して、前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムに用いられる共有メモリアクセス方法であって、前記第2プロセッサが、前記バンク制御手段にバンク切替指令を送るバンク切替指令ステップと、前記第2プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出す第2プロセッサアクセスステップと、前記第1プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込む第1プロセッサアクセスステップと、前記バンク制御手段が、前記第1プロセッサからバンク切替要求を受け付けてバンク切替要求フラグをセットし、前記バンク切り替え後に前記バンク切替要求フラグをリセットするバンク切替要求フラグステップと、前記バンク制御手段が、前記第2プロセッサから前記バンク切替指令を受けて、前記第1および第2送受信領域バンクのバンク切り替えを実行するするバンク切替制御ステップと、前記第2プロセッサが、前記バンク切替要求フラグステップによって前記バンク切替要求フラグがセットされている場合に、前記バンク制御手段へ前記バンク切替指令を送るステップと、を含み、前記第1プロセッサが前記バンク手段に前記送信データを書き込む処理と前記バンク手段から前記受信データを読み出す処理とこれら以外の他の処理を少なくとも含む制御周期として、さらに前記制御周期に次の前記制御周期の待ち時間を含み、前記制御周期における前記送信データを書き込む処理は前記他の処理よりも後の処理であり、かつ、前記送信データを書き込む処理は前記受信データを読み出す処理よりも前の処理であり、前記第1プロセッサが、次の前記制御周期の前記待ち時間と前記他の処理との間に前記バンク切替要求を送るステップと、前記第2プロセッサが、前記バンク制御手段に前記バンク切替要求フラグがセットされている場合に、次の前記制御周期の前記待ち時間と前記他の処理との間に前記バンク制御手段へ前記バンク切替指令を送るステップと、をさらに含むことを特徴とする。
さらに他の一つの実施形態の共有メモリアクセス方法は、第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信するために、前記共有メモリは、前記送信データおよび前記受信データを記憶しバンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段とを有する少なくとも1つのバンク手段を備え、前記共有メモリを介して、前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムに用いられる共有メモリアクセス方法であって、前記第2プロセッサが、前記バンク制御手段にバンク切替指令を送るバンク切替指令ステップと、前記第2プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出す第2プロセッサアクセスステップと、前記第1プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込む第1プロセッサアクセスステップと、を含み、前記第1送受信領域バンクには、前記受信データを記憶するバンク切り替え可能な第1ないし第3受信領域バンクからなる受信領域バンクのいずれか一つのバンクと、前記送信データを記憶するバンク切り替え可能な第1ないし第3送信領域バンクからなる送信領域バンクのいずれか一つのバンクとが対応し、前記第2送受信領域バンクには、前記受信領域バンクのいずれか一つの他のバンクと、前記送信領域バンクのいずれか一つの他のバンクとが対応し、前記受信領域バンクおよび前記送信領域バンクの残りのバンクが、前記第1および第2送受信領域バンクに含まれない待機バンクに対応するように区分され、前記第1および第2送受信領域バンクは、さらに、前記受信領域バンクの前記いずれか一つのバンクと前記他のバンクとの間でバンク切り替え可能であり、前記送信領域バンクの前記いずれか一つのバンクと前記他のバンクとの間でバンク切り替え可能であり、前記バンク切替指令は、前記受信領域バンクに対する受信領域バンク第1切替指令および受信領域バンク第2切替指令と、前記送信領域バンクに対する送信領域バンク第1切替指令および送信領域バンク第2切替指令とを含み、前記バンク制御手段は、前記第1プロセッサからの前記受信領域バンク第1切替指令に応じて、前記第1プロセッサがアクセス可能なバンクとして最も直近に前記受信データが書き込まれた前記第1ないし第3受信領域バンクのいずれか一つのバンクに前記受信領域バンクを切り替える受信領域バンク第1切替制御手段と、前記第2プロセッサからの前記受信領域バンク第2切替指令に応じて、前記第2プロセッサがアクセス可能なバンクとして前記第1ないし第3受信領域バンクのうちの前記待機バンクに前記受信領域バンクを切り替える受信領域バンク第2切替制御手段と、前記第1プロセッサからの前記送信領域バンク第1切替指令に応じて、前記第1プロセッサがアクセス可能なバンクとして前記第1ないし第3送信領域バンクのうちの前記待機バンクに前記送信領域バンクを切り替える送信領域バンク第1切替制御手段と、前記第2プロセッサからの前記送信領域バンク第2切替指令に応じて、前記第2プロセッサがアクセス可能なバンクとして最も直近に前記送信データが書き込まれた前記第1ないし第3送信領域バンクのいずれか一つのバンクに前記送信領域バンクを切り替える送信領域バンク第2切替制御手段と、を有し、前記第1プロセッサが、前記第1ないし第3受信領域バンクのアクセス可能ないずれか一つのバンクから前記受信データを読み出し、前記第1ないし第3送信領域バンクのアクセス可能ないずれか一つのバンクへ前記送信データを書き込むステップと、前記第2プロセッサが、前記第1ないし第3受信領域バンクのアクセス可能ないずれか一つのバンクへ前記受信データを書き込み、前記第1ないし第3送信領域バンクのアクセス可能ないずれか一つのバンクから前記送信データを読み出すステップと、をさらに含むことを特徴とする。
本発明に係る共有メモリアクセスシステムおよび共有メモリアクセス方法の実施形態によれば、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる。
本発明に係る共有メモリアクセスシステムの第1および第2の実施形態の構成を示すブロック図。 第1の実施形態の共有メモリアクセスシステムの制御処理タイミングを示す図。 第1の実施形態の演算処理プロセッサの共有メモリアクセス処理フローを示すフロー図。 第1の実施形態の通信処理プロセッサの共有メモリアクセス処理フローを示すフロー図。 第2の実施形態の共有メモリアクセスシステムの制御処理タイミングを示す図。 第2の実施形態の演算処理プロセッサの共有メモリアクセス処理フローを示すフロー図。 本発明に係る共有メモリアクセスシステムの第3の実施形態の構成を示すブロック図。 第3の実施形態の共有メモリアクセスシステムの制御処理タイミングを示す図。 第3の実施形態の演算処理プロセッサの共有メモリアクセス処理フローを示すフロー図。 第3の実施形態の通信処理プロセッサの共有メモリアクセス処理フローを示すフロー図。 本発明に係る共有メモリアクセスシステムの第4の実施形態の構成を示すブロック図。 第4の実施形態の共有メモリアクセスシステムの制御処理タイミングを示す図。 第4の実施形態の演算処理プロセッサの共有メモリアクセス処理フローを示すフロー図。 第4の実施形態の通信処理プロセッサの共有メモリアクセス処理フローを示すフロー図。 本発明に係る共有メモリアクセスシステムの第5の実施形態の構成を示すブロック図。 本発明に係る共有メモリアクセスシステムの第6の実施形態の構成を示すブロック図。 本発明に係る共有メモリアクセスシステムの第7の実施形態の構成を示すブロック図。 従来技術の共有メモリアクセスシステムの構成を示すブロック図。 従来技術の共有メモリアクセスシステムの制御処理タイミングを示す図。
以下、本発明に係る実施形態の共有メモリアクセスシステムおよび共有メモリアクセス方法について、図面を参照して具体的に説明する。ここで、互いに同一または類似の部分には共通の符号を付して、重複する説明は省略する。ここで説明する下記の実施形態はいずれも、2つのプロセッサを用いた共有メモリアクセスシステムおよび共有メモリアクセス方法の一例をとりあげて説明する。
[第1の実施形態]
図1は、本発明に係る共有メモリアクセスシステムの第1および第2の実施形態の構成を示すブロック図である。図2は、第1の実施形態の共有メモリアクセスシステムの制御処理タイミングを示す図である。また、図3は第1の実施形態の演算処理プロセッサの共有メモリアクセス処理フローを示すフロー図であり、図4は第1の実施形態の通信処理プロセッサの共有メモリアクセス処理フローを示すフロー図である。なお、第2の実施形態の共有メモリアクセスシステムについては、後述する。
共有メモリアクセスシステム20aは、図1に示すように、演算処理プロセッサ(第1プロセッサ)1aと、通信処理プロセッサ(第2プロセッサ)2aと、演算処理プロセッサ1aおよび通信処理プロセッサ2aによって共有される共有メモリ10aとを備えている。
共有メモリアクセスシステム20aは、通信処理プロセッサ2aと接続された伝送路3を介して図示しない通信先に送信データを送信し、通信先から受信データを受信する。また、共有メモリアクセスシステム20aは、共有メモリ10aを介して、演算処理プロセッサ1aおよび通信処理プロセッサ2aの間で送信データと受信データとのアクセスを行う。
演算処理プロセッサ1aは、共有メモリアクセスシステム20aにおいて、主に受信データを用いて演算処理を実行し、適宜、演算処理の結果を送信データとして生成するCPU(Central Processing Unit)である。演算処理プロセッサ1aは、例えばプラントデータなどの受信データから、所定のプラント予測結果などを算出し、その算出データを送信データとして、伝送路3を介して送信先に送信する。
通信処理プロセッサ2aは、共有メモリアクセスシステム20aにおいて、伝送路3から受信データを受信し、伝送路3へ送信データを送信する通信処理を実行するCPUである。
伝送路3は、データ送受信可能な通信路であり、例えば物理的な構造としては基板上のパターン、集積回路上のパターン、通信ケーブルなどである。また、伝送路3は、伝送方式としては、例えばシリアル通信であってもよく、パラレル通信であってもよい。
共有メモリ10aは、演算処理プロセッサ1aおよび通信処理プロセッサ2aのいずれからもアクセス可能なメモリである。共有メモリ10aは、送信データおよび受信データを記憶する少なくとも1つのバンク手段10rsaを備えている。
バンク手段10rsaは、さらに、第1送受信領域バンク10rs1および第2送受信領域バンク10rs2の少なくとも2つのバンクと、バンク切替要求フラグ手段11aおよびバンク切替制御手段12aからなるバンク制御手段15aを有している。
なお、例えばバンク手段10rsaが共有メモリ10aに備えられ、バンク切替要求フラグ手段11a、バンク切替制御手段12a等が設定レジスタとして構成されても、本実施形態の変形例として構成可能であることは言うまでもない。また、図1に示すバンク制御手段15aは、バンク制御手段15の一つの実施例であり、バンク制御手段15の他の実施例については、第2の実施形態以降に示す。
第1送受信領域バンク10rs1および第2送受信領域バンク10rs2は、互いに一方から他方へバンク切り替え可能である。第1送受信領域バンク10rs1および第2送受信領域バンク10rs2は、各々、送信データおよび受信データを記憶可能である。
ここで、バンクとは、共有メモリ10a内において所定の記憶容量で区分され、割り当てられた記憶領域である。異なるバンクには、異なる記憶領域が割り当てられる。また、例えば第1送受信領域バンク10rs1および第2送受信領域バンク10rs2の2つのバンクの場合、演算処理プロセッサ1aが第1送受信領域バンク10rs1にRD(読み出し)/WR(書き込み)アクセスできる状態であり、第2送受信領域バンク10rs2にはRD(読み出し)/WR(書き込み)アクセスできない(アクセス不可)状態にある。したがって、図2に示すようにバンク切り替えによって、アクセス可能なバンクを切り替える。例えば、前述の例では、バンク切り替え後に、演算処理プロセッサ1aが第1送受信領域バンク10rs1にアクセス不可な状態となり、第2送受信領域バンク10rs2にはアクセス可能な状態となる。
図1に示すバンク制御手段15aは、演算処理プロセッサ1aがRD/WRアクセス可能なバンクと、通信処理プロセッサ2aがRD/WRアクセス可能なバンクとを相互に切り替える。すなわち、バンク制御手段15aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2の一方を演算処理プロセッサ1aがRD/WRアクセス可能なバンクとし、その他方を通信処理プロセッサ2aがRD/WRアクセス可能なバンクとする。そのために、バンク切替要求フラグ手段11aおよびバンク切替制御手段12aが、以下のような処理を実行する。
バンク切替要求フラグ手段11aは、演算処理プロセッサ1aから送られる第1送受信領域バンク10rs1および第2送受信領域バンク10rs2の間の切替要求(バンク切替要求)を示すフラグを設定(フラグをセット)する。
また、バンク切替要求フラグ手段11aは、バンク切り替え後に、設定されたフラグを解除(フラグをクリア)する。すなわち、バンク切替要求フラグ手段11aは、演算処理プロセッサ1aからのバンク切替要求を受け付けてバンク切替要求フラグをセットする。
バンク切替制御手段12aは、演算処理プロセッサ1aおよび通信処理プロセッサ2aがアクセスするバンクについて、バンク切り替えを制御する。バンク切替制御手段12aは、通信処理プロセッサ2aからのバンク切替指令に応じて、バンク切り替えを制御する。また、バンク切替要求フラグ手段11aは、バンク切り替え後、バンク切替要求フラグをクリアする。
例えば、バンク切替制御手段12aは、演算処理プロセッサ1aによりRD/WRアクセスされているバンクが第1送受信領域バンク10rs1であり、通信処理プロセッサ2aによりRD/WRアクセスされているバンクが第2送受信領域バンク10rs2である場合に、バンク切替制御により演算処理プロセッサ1aによりRD/WRアクセスされるバンクを第2送受信領域バンク10rs2とし、通信処理プロセッサ2aによりRD/WRアクセスされるバンクを第1送受信領域バンク10rs1とするようにバンクを切り替える。この切り替え後、バンク切替要求フラグ手段11aによりバンク切替要求フラグがリセットされる。
次に、図2を参照しながら、共有メモリアクセスシステム20aの制御処理タイミングについて説明する。
演算処理プロセッサ1aは、例えば図2に示す制御処理S1aの制御周期中の始めの処理に、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のRD/WRアクセス可能な一方(例えば第1送受信領域バンク10rs1とする)から受信データを読み出す。
受信データを読み出し後、制御周期中の次の処理に、演算処理プロセッサ1aは、受信データを用いて演算処理を実行する。
演算処理プロセッサ1aは、制御周期中の次々の処理に、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のRD/WRアクセス可能な一方へ送信データを書き込む。送信データを書き込み後、演算処理プロセッサ1aは、バンク切替要求フラグ手段11aにバンク切替要求を送る。
バンク切替要求を送った後、演算処理プロセッサ1aは、次の制御周期の処理動作まで待つ。
以上説明した制御処理S1aを、演算処理プロセッサ1aは、制御周期ごとに繰り返し実行する。
一方、通信処理プロセッサ2aでは、前述した演算処理プロセッサ1aの制御処理S1aに並行して、以下の制御処理S2aが実行される。
制御処理S2aに示すように、通信処理プロセッサ2aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のRD/WRアクセス可能な他方(例えば第2送受信領域バンク10rs2とする)に受信データを書き込む。
次に、通信処理プロセッサ2aは、バンク切替要求をチェックする。すなわち、通信処理プロセッサ2aは、バンク切替要求フラグ手段11aにバンク切替要求フラグがセットされていない場合、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のRD/WRアクセス可能な他方に受信データを書き込む。
一方、通信処理プロセッサ2aは、バンク切替要求フラグ手段11aにバンク切替要求フラグがセットされている場合に、バンク切替制御手段12aにバンク切替指令を送る。通信処理プロセッサ2aは、バンク切り替え後に、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2の一方(例えば第1送受信領域バンク10rs1とする)から送信データを読み出す。
以上説明した制御処理S2aを、通信処理プロセッサ2aは、演算処理プロセッサ1aの制御処理S1aに並行して、実行する。
なお、前述した説明では、一方を第1送受信領域バンク10rs1とし、他方を第2送受信領域バンク10rs2としたが、バンク切り替え後では、一方が第2送受信領域バンク10rs2であり、他方が第1送受信領域バンク10rs1となる。また、同様に、バンク切り替えの都度、以上のような動作を交互に繰り返す。
以上説明したような処理を、図2に示すように、演算処理プロセッサ1aおよび通信処理プロセッサ2aが繰り返す。図2では、受信データを通信処理プロセッサ2aから演算処理プロセッサ1aへ伝送する伝送時間traである。また、送信データを演算処理プロセッサ1aから通信処理プロセッサ2aへ伝送する伝送時間tsaである。
共有メモリアクセスシステム20aでは、図2に示すように、「通信処理プロセッサ2aの受信データ書き込み時間<演算処理プロセッサ1aの次の制御周期待ち時間」を満たすように、すなわち、通信処理プロセッサ2aの受信データ書き込み時間が演算処理プロセッサ1aの次の制御周期待ち時間より小さくなるようにされている。これにより、演算処理プロセッサ1aおよび通信処理プロセッサ2aのアクセスが競合することなく、共有メモリ10aにアクセスすることができる。
以下、図1に示す演算処理プロセッサ1aの共有メモリアクセス処理フローについて、図3を参照しながら説明する。なお、以下のフローの説明と、図3および図4では、RD/WRアクセス可能をアクセス可能と略して記す。
演算処理プロセッサ1aの処理が開始されると、演算処理プロセッサ1aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のアクセス可能な一方から受信データを読み出す(ステップS1)。
次に、演算処理プロセッサ1aは、読み出した受信データを用いて演算処理を実行する(ステップS2)。
次に、演算処理プロセッサ1aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のアクセス可能な一方へ送信データを書き込む(ステップS3)。
次に、演算処理プロセッサ1aは、バンク切替要求フラグ手段11aにバンク切替要求を送る(ステップS4)。すなわち、バンク切替要求フラグ手段11aによりバンク切替要求フラグがセットされる。
演算処理プロセッサ1aは、次の制御周期か否か判断する(ステップS5)。次の制御周期でない場合(ステップS5のNo)、演算処理プロセッサ1aは、ステップS5の処理に戻る。一方、次の制御周期である場合(ステップS5のYes)、演算処理プロセッサ1aは、ステップS1の処理に戻す。以降、前述したステップS1〜S5の処理を繰り返す。
次に、図1に示す通信処理プロセッサ2aの共有メモリアクセス処理フローについて図4を参照しながら説明する。
通信処理プロセッサ2aの処理が開始されると、通信処理プロセッサ2aは、伝送路3を介して、受信データを受信したか否か判断する(ステップS10)。受信データを受信していない場合(ステップS10のNo)、通信処理プロセッサ2aは、ステップS12の処理へ進める。一方、受信データを受信した場合(ステップS10のYes)、通信処理プロセッサ2aは、ステップS11の処理へ進める。
通信処理プロセッサ2aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のアクセス可能な他方に受信データを書き込む(ステップS11)。
次に、通信処理プロセッサ2aは、バンク切替要求があるか否か判断する(ステップS12)。バンク切替要求がない場合(ステップS12のNo)、処理をステップS10に戻す。
一方、バンク切替要求がある場合(ステップS12のYes)、通信処理プロセッサ2aは、バンク切替制御手段12aを介して、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のアクセスするバンクを他方から一方へ切り替える(ステップS13)。
バンク切り替え後、通信処理プロセッサ2aは、バンク切替要求フラグ手段11aのフラグクリア(リセット)をチェックする(ステップS14)。
フラグクリアをチェック後、通信処理プロセッサ2aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のアクセス可能な一方から送信データを読み出す(ステップS15)。
次に、通信処理プロセッサ2aは、送信データの更新がある場合に、伝送路3を介して、送信データを送信する(ステップS16)。この後、通信処理プロセッサ2aは、処理をステップS10に戻す。以降、前述したステップS10〜S16の処理を繰り返す。
以上説明したように、第1の実施形態によれば、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる。
[第2の実施形態]
図5は、第2の実施形態の共有メモリアクセスシステムの制御処理タイミングを示す図である。また、図6は、第2の実施形態の演算処理プロセッサの共有メモリアクセス処理フローを示すフロー図である。なお、本発明に係る共有メモリアクセスシステムの第2の実施形態の構成を示すブロック図は、前述した図1と同様である。
以下、図1、図5および図6を参照しながら、第2の実施形態の共有メモリアクセスシステムについて説明する。はじめに、図5を参照しながら、共有メモリアクセスシステム20aの制御処理タイミング(他の例)について説明する。
演算処理プロセッサ1aは、例えば図5に示す制御処理S1a2の制御周期中の始めの処理に、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のRD/WRアクセス可能な一方(例えば第1送受信領域バンク10rs1とする)から受信データを読み出す。
受信データを読み出し後、制御周期中の次の処理として、演算処理プロセッサ1aは、受信データを用いて演算処理を実行する。
演算処理プロセッサ1aは、制御周期中の次々の処理に、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のRD/WRアクセス可能な一方へ送信データを書き込む。送信データを書き込み後、演算処理プロセッサ1aは、バンク切替要求フラグ手段11aにバンク切替要求を送る。
バンク切替要求を送った後、演算処理プロセッサ1aは、次の制御周期の処理動作まで待つ。
以上説明した制御処理S1a2を、演算処理プロセッサ1aは、制御周期ごとに繰り返し実行する。
一方、通信処理プロセッサ2aでは、前述した演算処理プロセッサ1aの制御処理S1a2に並行して、以下の制御処理S2a2が実行される。
制御処理S2a2に示すように、通信処理プロセッサ2aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のRD/WRアクセス可能な他方(例えば第2送受信領域バンク10rs2とする)に受信データを書き込む。
次に、通信処理プロセッサ2aは、バンク切替要求をチェックする。すなわち、通信処理プロセッサ2aは、バンク切替要求フラグ手段11aにバンク切替要求フラグがセットされていない場合、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のRD/WRアクセス可能な他方に受信データを書き込む。一方、通信処理プロセッサ2aは、バンク切替要求フラグ手段11aにバンク切替要求フラグがセットされている場合に、バンク切替制御手段12aにバンク切替指令を送る。
通信処理プロセッサ2aは、バンク切り替え後に、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2の一方(例えば第1送受信領域バンク10rs1とする)から送信データを読み出す。
以上説明した制御処理S2a2を、通信処理プロセッサ2aは、演算処理プロセッサ1aの制御処理S1a2に並行して、実行する。
なお、前述した説明では、一方を第1送受信領域バンク10rs1とし、他方を第2送受信領域バンク10rs2としたが、バンク切り替え後では、一方が第2送受信領域バンク10rs2であり、他方が第1送受信領域バンク10rs1となる。また、同様に、バンク切り替えの都度、以上のような動作を交互に繰り返す。
以上説明したような処理を、図5に示すように、演算処理プロセッサ1aおよび通信処理プロセッサ2aが繰り返す。図5では、受信データを通信処理プロセッサ2aから演算処理プロセッサ1aへ伝送する伝送時間tra2である。また、送信データを演算処理プロセッサ1aから通信処理プロセッサ2aへ伝送する伝送時間tsa2である。
共有メモリアクセスシステム20aでは、図5に示すように、「通信処理プロセッサ2aの受信データ書き込み時間<(演算処理プロセッサ1aの次の制御周期待ち時間+演算処理時間)」を満たすように、すなわち、通信処理プロセッサ2aの受信データ書き込み時間が演算処理プロセッサ1aの次の制御周期待ち時間と演算処理時間との和より小さくなるようにされている。これにより、演算処理プロセッサ1aおよび通信処理プロセッサ2aのアクセスが競合することなく、共有メモリ10aにアクセスすることができる。
以下、図1に示す演算処理プロセッサ1aの他の共有メモリアクセス処理フローについて、図6を参照しながら説明する。なお、以下のフローの説明と、図6では、RD/WRアクセス可能をアクセス可能と略して記す。
演算処理プロセッサ1aの処理が開始されると、演算処理プロセッサ1aは、演算処理を実行する(ステップS20)。
次に、演算処理プロセッサ1aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のアクセス可能な一方へ送信データを書き込む(ステップS21)。
次に、演算処理プロセッサ1aは、第1送受信領域バンク10rs1または第2送受信領域バンク10rs2のアクセス可能な一方から受信データを読み出す(ステップS22)。
次に、演算処理プロセッサ1aは、バンク切替要求フラグ手段11aにバンク切替要求を送る(ステップS23)。すなわち、バンク切替要求フラグ手段11aによりバンク切替要求フラグがセットされる。
次に、演算処理プロセッサ1aは、次の制御周期か否か判断する(ステップS24)。次の制御周期でない場合(ステップS24のNo)、演算処理プロセッサ1aは、ステップS24の処理に戻る。一方、次の制御周期である場合(ステップS24のYes)、演算処理プロセッサ1aは、ステップS20の処理に戻す。以降、前述したステップS20〜S24の処理を繰り返す。
なお、本実施形態の通信処理プロセッサの共有メモリアクセス処理フローは、図4に示す処理フローと同様である。
以上説明したように、第2の実施形態によれば、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる。
[第3の実施形態]
図7は本発明に係る共有メモリアクセスシステムの第3の実施形態の構成を示すブロック図であり、図8は第3の実施形態の共有メモリアクセスシステムの制御処理タイミングを示す図である。また、図9は、第3の実施形態の演算処理プロセッサの共有メモリアクセス処理フローを示すフロー図である。図10は、第3の実施形態の通信処理プロセッサの共有メモリアクセス処理フローを示すフロー図である。
共有メモリアクセスシステム20bは、図7に示すように、演算処理プロセッサ1bと、通信処理プロセッサ2bと、演算処理プロセッサ1bおよび通信処理プロセッサ2bによって共有される共有メモリ10bとを備えている。
共有メモリ10bは、演算処理プロセッサ1bおよび通信処理プロセッサ2bのいずれからもアクセス可能なメモリである。共有メモリ10bは、送信データおよび受信データを記憶する少なくとも1つのバンク手段10rsbを備えている。
バンク手段10rsbは、さらに、受信領域バンク10rb、送信領域バンク10sb、受信領域バンク切替制御手段12r、送信領域バンク切替制御手段12s、受信領域演算処理プロセッサ使用中フラグ手段13r、および送信領域演算処理プロセッサ使用中フラグ手段13sを有している。
受信領域バンク10rbは、伝送路3から受信する受信データを記憶可能である。受信領域バンク10rbは、第1受信領域バンク10r1および第2受信領域バンク10r2の少なくとも2つのバンクからなる。受信領域バンク10rbは、受信領域バンク切替制御手段12rの制御に応じて、互いに一方から他方へRDアクセス(読み出し)およびWRアクセス(書き込み)可能なバンクを切り替える。例えば、通信処理プロセッサ2bによるWRアクセス可能なバンクが、受信領域バンク切替制御手段12rの制御によって、第1受信領域バンク10r1から第2受信領域バンク10r2へ切り替えられる。また、その逆方向の切り替えも同様である。また、演算処理プロセッサ1bによるRDアクセス可能なバンクについても同様である。
送信領域バンク10sbは、伝送路3へ送信する送信データを記憶可能である。送信領域バンク10sbは、第1送信領域バンク10s1および第2送信領域バンク10s2の少なくとも2つのバンクからなる。送信領域バンク10sbは、送信領域バンク切替制御手段12sの制御に応じて、互いに一方から他方へRDアクセスおよびWRアクセス可能なバンクを切り替える。例えば、通信処理プロセッサ2bによるRDアクセス可能なバンクが、送信領域バンク切替制御手段12sの制御によって、第1送信領域バンク10s1から第2送信領域バンク10s2へ切り替えられる。また、その逆方向のバンク切り替えも同様である。また、演算処理プロセッサ1bによるWRアクセス可能なバンクについても同様である。
受信領域バンク切替制御手段12rは、通信処理プロセッサ2bからの受信領域バンク切替指令に応じて、受信領域バンク10rbのバンク切り替えを制御する。すなわち、演算処理プロセッサ1bと通信処理プロセッサ2bとのRDアクセスおよびWRアクセス(アクセス)が競合しないように、互いのアクセスを第1受信領域バンク10r1および第2受信領域バンク10r2のいずれか一方から他方へバンクを切り替える。すなわち、排他的にバンクを切り替える。
送信領域バンク切替制御手段12sは、通信処理プロセッサ2bからの送信領域バンク切替指令に応じて、送信領域バンク10sbのバンク切り替えを制御する。すなわち、演算処理プロセッサ1bと通信処理プロセッサ2bとのアクセスが競合しないように、互いのアクセスを第1送信領域バンク10s1および第2送信領域バンク10s2のいずれか一方から他方へバンクを切り替える。すなわち、排他的にバンクを切り替える。
受信領域演算処理プロセッサ使用中フラグ手段13rは、演算処理プロセッサ1bが受信領域バンク10rbをアクセス中であることを示すフラグの設定および解除を行う。受信領域演算処理プロセッサ使用中フラグ手段13rは、演算処理プロセッサ1bからの受信領域バンク切替要求を受け付けて、受信領域演算処理プロセッサ使用中フラグをセットする。また、演算処理プロセッサ1bから受信領域演算処理プロセッサ使用中フラグ解除を受け付けて、受信領域演算処理プロセッサ使用中フラグをリセット(クリア)する。
送信領域演算処理プロセッサ使用中フラグ手段13sは、演算処理プロセッサ1bが送信領域バンク10sbをアクセス中であることを示すフラグの設定および解除を行う。送信領域演算処理プロセッサ使用中フラグ手段13sは、演算処理プロセッサ1bからの送信領域バンク切替要求を受け付けて、送信領域演算処理プロセッサ使用中フラグをセットする。また、演算処理プロセッサ1bから送信領域演算処理プロセッサ使用中フラグ解除を受け付けて、送信領域演算処理プロセッサ使用中フラグをクリアする。
なお、図1に示したバンク制御手段15の他の実施例として、図7に示す受信領域バンク切替制御手段12r、送信領域バンク切替制御手段12s、受信領域演算処理プロセッサ使用中フラグ手段13rおよび送信領域演算処理プロセッサ使用中フラグ手段13sの構成が対応する。
また、図1に示した第1送受信領域バンク10rs1には、図7に示す第1受信領域バンク10r1および第1送信領域バンク10s1が対応し、図1に示した第2送受信領域バンクrs2には、第2受信領域バンク10r2および第2送信領域バンク10s2が対応する。第1送受信領域バンク10rs1および第2送受信領域バンク10rs2が、さらに、第1受信領域バンク10r1と第2受信領域バンク10r2との間でバンク切り替え可能な受信領域バンク10rb、および、第1送信領域バンク10s1と第2送信領域バンク10s2との間でバンク切り替え可能な送信領域バンク10sbに区分された構成に対応する。
次に、図8を参照しながら、共有メモリアクセスシステム20bの制御処理タイミングについて説明する。
制御処理S1bに示すように、演算処理プロセッサ1bは、受信領域演算処理プロセッサ使用中フラグ手段13rを介して当該フラグをセットし、RDアクセス可能な第1受信領域バンク10r1または第2受信領域バンク10r2の一方(例えば第1受信領域バンク10r1とする)から受信データを読み出す。すなわち、当該フラグをセットしている間は、演算処理プロセッサ1bにより受信領域バンク10rbが使用中とされる。
読み出し後、演算処理プロセッサ1bは、受信領域演算処理プロセッサ使用中フラグ手段13rを介して、当該フラグをクリアする。すなわち、当該フラグがクリアされている間は、演算処理プロセッサ1bにより受信領域バンク10rbが使用中でないとされる。クリア後、演算処理プロセッサ1bは、演算処理を実行する。
演算処理プロセッサ1bは、送信領域演算処理プロセッサ使用中フラグ手段13sをセットし、第1送信領域バンク10s1または第2送信領域バンク10s2のWRアクセス可能な一方(例えば第1送信領域バンク10s1とする)に送信データを書き込む。すなわち、当該フラグをセットしている間は、送信領域バンク10sbが使用中とされる。
書き込み後、演算処理プロセッサ1bは、送信領域演算処理プロセッサ使用中フラグ手段13sを介して、当該フラグをクリアする。
フラグのクリア後、演算処理プロセッサ1bは、次の制御周期の処理動作まで待つ。
以上説明した制御処理S1bを、演算処理プロセッサ1bは、制御周期ごとに繰り返し実行する。
一方、通信処理プロセッサ2bでは、前述した演算処理プロセッサ1bの制御処理S1bに並行して、以下の制御処理S2bが実行される。
制御処理S2bに示すように、通信処理プロセッサ2bは、第1受信領域バンク10r1または第2受信領域バンク10r2のWRアクセス可能な他方(例えば第2受信領域バンク10r2とする)に受信データを書き込む。
書き込み後、通信処理プロセッサ2bは、演算処理プロセッサ1bにより受信領域バンク10rbが使用中でない場合、すなわち、受信領域演算処理プロセッサ使用中フラグがクリアされている場合に、受信領域バンク切替制御手段12rに受信領域バンク切替指令を送る。これを受けた受信領域バンク切替制御手段12rは、受信領域バンク10rbを切り替える。
バンク切り替え後、通信処理プロセッサ2bは、第1受信領域バンク10r1または第2受信領域バンク10r2のWRアクセス可能な一方(例えば第1受信領域バンク10r1)に受信データを書き込む。
書き込み後、通信処理プロセッサ2bは、演算処理プロセッサ1bにより受信領域バンク10rbが使用中でない場合、すなわち、受信領域演算処理プロセッサ使用中フラグがクリアされている場合に、受信領域バンク切替制御手段12rに受信領域バンク切替指令を送る。これを受けた受信領域バンク切替制御手段12rは、受信領域バンク10rbを切り替える。
次に、通信処理プロセッサ2bは、演算処理プロセッサ1bにより送信領域バンク10sbが使用中でない場合、すなわち、送信領域演算処理プロセッサ使用中フラグがクリアされている場合に、送信領域バンク切替制御手段12sに送信領域バンク切替指令を送る。これを受けた送信領域バンク切替制御手段12sは、送信領域バンク10sbを切り替える。
これにより、通信処理プロセッサ2bは、第1送信領域バンク10s1または第2送信領域バンク10s2のRDアクセス可能な一方(例えば第1送信領域バンク10s1)から送信データを読み出す。通信処理プロセッサ2bは、伝送路3を介して、図示しない送信先に読み出した送信データを送信する。
以上説明したように、通信処理プロセッサ2bは、第1受信領域バンク10r1および第2受信領域バンク10r2の2つのバンクの切り替えにより、受信データの書き込み時間に制限を受けることがない。その結果、通信処理プロセッサ2bは、受信データの書き込み処理による負荷を軽減することができる。
以上説明した制御処理S2bを、通信処理プロセッサ2bは、演算処理プロセッサ1bの制御処理S1bに並行して、実行する。
以下、図7に示す演算処理プロセッサ1bの共有メモリアクセス処理フローについて、図9を参照しながら説明する。なお、以下のフローの説明と、図9および図10では、RDアクセス可能およびWRアクセス可能をアクセス可能と略して記す。
演算処理プロセッサ1bの処理が開始されると、演算処理プロセッサ1bは、受信領域演算処理プロセッサ使用中フラグ手段13rを介して、受信領域演算処理プロセッサ使用中フラグをセットする(ステップS30)。
次に、演算処理プロセッサ1bは、第1受信領域バンク10r1または第2受信領域バンク10r2のアクセス可能な一方から受信データを読み出す(ステップS31)。
受信データを読み出し後、演算処理プロセッサ1bは、受信領域演算処理プロセッサ使用中フラグ手段13rを介して、受信領域演算処理プロセッサ使用中フラグをクリアする(ステップS32)。
フラグのクリア後、演算処理プロセッサ1bは、受信データを用いて演算処理を実行する(ステップS33)。
次に、演算処理プロセッサ1bは、送信領域演算処理プロセッサ使用中フラグ手段13sを介して、送信領域演算処理プロセッサ使用中フラグをセットする(ステップS34)。
次に、演算処理プロセッサ1bは、第1送信領域バンク10s1または第2送信領域バンク10s2のアクセス可能な一方に送信データを書き込む(ステップS35)。
書き込み後、演算処理プロセッサ1bは、送信領域演算処理プロセッサ使用中フラグをクリアする(ステップS36)。
次に、演算処理プロセッサ1bは、次の制御周期か否か判断する(ステップS37)。次の制御周期でない場合(ステップS37のNo)、演算処理プロセッサ1bは、ステップS37の処理に戻る。一方、次の制御周期である場合(ステップS37のYes)、演算処理プロセッサ1bは、ステップS30の処理に戻す。以降、前述したステップS30〜S37の処理を繰り返す。
続いて、以下、図7に示す通信処理プロセッサ2bの共有メモリアクセス処理フローについて、図10を参照しながら説明する。
通信処理プロセッサ2bの処理が開始されると、通信処理プロセッサ2bは、伝送路3から受信データを受信したか否か判断する(ステップS40)。
受信データを受信していない場合に(ステップS40のNo)、通信処理プロセッサ2bは、処理をステップS44に進める。一方、受信データを受信した場合に(ステップS40のYes)、通信処理プロセッサ2bは、処理を次のステップS41に進める。
通信処理プロセッサ2bは、第1受信領域バンク10r1または第2受信領域バンク10r2のアクセス可能な一方に受信データを書き込む(ステップS41)。
通信処理プロセッサ2bは、受信領域演算処理プロセッサ使用中フラグ手段13rから当該フラグを読み取り、受信領域バンク10rbが使用中であるか否かを判断する(ステップS42)。
受信領域バンク10rbが使用中である場合に(ステップS42のYes)、通信処理プロセッサ2bは、処理をステップS42に戻す。一方、受信領域バンク10rbが使用中でない場合に(ステップS42のNo)、通信処理プロセッサ2bは、処理を次のステップS43に進める。
通信処理プロセッサ2bは、受信領域バンク切替制御手段12rを介して、受信領域バンク10rbを切り替える(ステップS43)。
次に、通信処理プロセッサ2bは、送信領域演算処理プロセッサ使用中フラグ手段13sから当該フラグを読み取り、送信領域バンク10sbが使用中であるか否かを判断する(ステップS44)。
送信領域バンクが使用中である場合に(ステップS44のYes)、通信処理プロセッサ2bは、処理をステップS44に戻す。一方、送信領域バンク10sbが使用中でない場合に(ステップS44のNo)、通信処理プロセッサ2bは、処理を次のステップS45に進める。
通信処理プロセッサ2bは、送信領域バンク切替制御手段12sを介して、送信領域バンク10sbを切り替える(ステップS45)。
次に、通信処理プロセッサ2bは、第1送信領域バンク10s1または第2送信領域バンク10s2のアクセス可能な一方から送信データを読み出す(ステップS46)。
次に、通信処理プロセッサ2bは、読み出した送信データに更新がある場合に、伝送路3を介して、送信データを送信する(ステップS47)。ステップS47の後、演算処理プロセッサ1bは、ステップS40の処理に戻す。以降、前述したステップS40〜S47の処理を繰り返す。
以上説明したように、第3の実施形態によれば、複数のプロセッサが共有メモリへのアクセスを競合することなく、かつ、通信処理プロセッサの受信データ書き込み時間に制限なく、共有メモリにアクセスすることができる。
[第4の実施形態]
図11は本発明に係る共有メモリアクセスシステムの第4の実施形態の構成を示すブロック図であり、図12は第4の実施形態の共有メモリアクセスシステムの制御処理タイミングを示す図である。また、図13は、第4の実施形態の演算処理プロセッサの共有メモリアクセス処理フローを示すフロー図である。図14は、第4の実施形態の通信処理プロセッサの共有メモリアクセス処理フローを示すフロー図である。
共有メモリアクセスシステム20cは、図11に示すように、演算処理プロセッサ1cと、通信処理プロセッサ2cと、演算処理プロセッサ1cおよび通信処理プロセッサ2cによって共有される共有メモリ10cとを備えている。
共有メモリ10cは、演算処理プロセッサ1cおよび通信処理プロセッサ2cのいずれからもアクセス可能なメモリである。共有メモリ10cは、送信データおよび受信データを記憶する少なくとも1つのバンク手段10rscを備えている。
バンク手段10rscは、さらに、受信領域バンク10rcに第1受信領域バンク10r1、第2受信領域バンク10r2および第3受信領域バンク10r3の3つのバンクと、送信領域バンク10scに第1送信領域バンク10s1、第2送信領域バンク10s2および第3送信領域バンク10s3の3つのバンクと、2つの受信領域バンク第1切替制御手段12r1および受信領域バンク第2切替制御手段12r2と、2つの送信領域バンク第1切替制御手段12s1および送信領域バンク第2切替制御手段12s2とを有している。
書き込み(WRアクセス)側のバンク切替制御(受信領域バンク第2切替制御手段12r2、送信領域バンク第1切替制御手段12s1)は、受信領域バンク10rcおよび送信領域バンク10scの各々について3つのバンクのうち、読み出し(RDアクセス)側が使用していない待機バンクに切り替える制御である。なお、待機バンクは、演算処理プロセッサ1cおよび通信処理プロセッサ2cからRDアクセスおよびWRアクセスによるアクセス対象でないバンクである。詳しくは、後述する。
読み出し側のバンク切替制御(受信領域バンク第1切替制御手段12r1、送信領域バンク第2切替制御手段12s2)は、受信領域バンク10rcおよび送信領域バンク10scの各々について3つのバンクのうち、読み出し側が使用していない待機バンクと現在アクセスしているバンクとのうちから最後に書き込みがあったバンクに切り替える制御である。
なお、図1に示したバンク制御手段15の他の実施例として、図11に示す2つの受信領域バンク第1切替制御手段12r1および受信領域バンク第2切替制御手段12r2と、2つの送信領域バンク第1切替制御手段12s1および送信領域バンク第2切替制御手段12s2の構成が対応する。
また、図1に示した第1送受信領域バンク10rs1には、図11に示す第1受信領域バンク10r1ないし第3受信領域バンク10r3からなる受信領域バンク10rcのいずれか一つのバンクと、第1送信領域バンク10s1ないし第3送信領域バンク10s3からなる送信領域バンク10scのいずれか一つのバンクとが対応する。また、第2送受信領域バンク10rs2には、受信領域バンク10rcのいずれか一つの他のバンクと、送信領域バンク10scのいずれか一つの他のバンクとが対応する。さらに、受信領域バンク10rcおよび送信領域バンク10scの残りのバンクが、第1送受信領域バンク10rs1および第2送受信領域バンク10rs2に含まれない待機バンクに対応するように区分されるものである。
次に、図12を参照しながら、共有メモリアクセスシステム20cの制御処理タイミングについて説明する。
制御処理S1cに示すように、演算処理プロセッサ1cは、受信領域バンク10rcを切り替え、第1受信領域バンク10r1、第2受信領域バンク10r2および第3受信領域バンク10r3のRDアクセス可能ないずれか一つのバンク(例えば第1受信領域バンク10r1)から受信データを読み出す。
演算処理プロセッサ1cは、読み出した受信データを用いて演算処理を実行する。
演算処理プロセッサ1cは、第1送信領域バンク10s1、第2送信領域バンク10s2および第3送信領域バンク10s3のWRアクセス可能ないずれか一つのバンク(第1送信領域バンク10s1)に送信データを書き込む。演算処理プロセッサ1cは、送信領域バンク第1切替制御手段12s1を介して、送信領域バンク10scを切り替える。
切り替え後、演算処理プロセッサ1cは、次の制御周期の処理動作まで待つ。
以上説明した制御処理S1cを、演算処理プロセッサ1cは、制御周期ごとに繰り返し実行する。
一方、通信処理プロセッサ2cでは、前述した演算処理プロセッサ1cの制御処理S1cに並行して、以下の制御処理S2cが実行される。
制御処理S2cに示すように、通信処理プロセッサ2cは、第1受信領域バンク10r1、第2受信領域バンク10r2および第3受信領域バンク10r3のWRアクセス可能ないずれか一つのバンク(例えば第3受信領域バンク10r3)に受信データを書き込む。
書き込み後、通信処理プロセッサ2cは、受信領域バンク第2切替制御手段12r2を介して、受信領域バンク10rcを切り替える。さらに、通信処理プロセッサ2cは、送信領域バンク第2切替制御手段12s2を介して、送信領域バンク10scを切り替える。
切り替え後、通信処理プロセッサ2cは、第1送信領域バンク10s1、第2送信領域バンク10s2および第3送信領域バンク10s3のRDアクセス可能ないずれか一つのバンク(例えば第3送信領域バンク10s3)から送信データを読み出す。通信処理プロセッサ2cは、伝送路3を介して、図示しない送信先へ送信データを送信する。
以上説明した制御処理S2cを、通信処理プロセッサ2cは、演算処理プロセッサ1cの制御処理S1cに並行して、実行する。
なお、図12に示す待機バンクは、演算処理プロセッサ1cおよび通信処理プロセッサ2cからRDアクセスおよびWRアクセスによるアクセス対象でないバンクを示すものである。
送信領域バンク10scにおいて、例えば、演算処理プロセッサ1cのWRアクセス可能なバンクが第1送信領域バンク10s1であり、および、通信処理プロセッサ2cのRDアクセス可能なバンクが第2送信領域バンク10s2である期間では、待機バンクが第3送信領域バンク10s3であることを示す。
また、受信領域バンク10rcにおいて、例えば、演算処理プロセッサ1cのRDアクセス可能なバンクが第1受信領域バンク10r1であり、および、通信処理プロセッサ2cのWRアクセス可能なバンクが第2受信領域バンク10r2である期間では、待機バンクが第3受信領域バンク10r3であることを示す。図12に示す、その他の待機バンクについても同様である。
バンク手段10rscが待機バンクを有することにより、バンク切り替え制御においてRDアクセスおよびWRアクセス可能なバンクを、待機バンクを介してバンク切り替えを実行することができる。これにより、アクセス競合を回避するためのフラグチェック動作が不要となる。これにより、アクセスが競合することなく、かつ、通信処理プロセッサのアクセス待ち時間がなく共有メモリにアクセスすることができる。
以下、図13に示す演算処理プロセッサ1cの共有メモリアクセス処理フローについて、図11を参照しながら説明する。なお、以下のフローの説明と、図13および図14では、RDアクセス可能およびWRアクセス可能をアクセス可能と略して記す。
演算処理プロセッサ1cの処理が開始されると、演算処理プロセッサ1cは、受信領域バンク第1切替制御手段12r1を介して、受信領域バンク10rcを切り替える(ステップS50)。
次に、演算処理プロセッサ1cは、第1受信領域バンク10r1、第2受信領域バンク10r2および第1受信領域バンク10r3のアクセス可能ないずれか一つのバンクから受信データを読み出す(ステップS51)。
次に、演算処理プロセッサ1cは、読み出した受信データを用いて、演算処理を実行する(ステップS52)。
次に、演算処理プロセッサ1cは、第1送信領域バンク10s1、第2送信領域バンク10s2および第3送信領域バンク10s3のアクセス可能ないずれか一つのバンクに送信データを書き込む(ステップS53)。
書き込み後、演算処理プロセッサ1cは、送信領域バンク第1切替制御手段12s1を介して、送信領域バンク10scを切り替える(ステップS54)。
切り替え後、演算処理プロセッサ1cは、次の制御周期か否か判断する(ステップS55)。次の制御周期でない場合(ステップ55のNo)、演算処理プロセッサ1cは、ステップS55の処理に戻る。一方、次の制御周期である場合(ステップS55のYes)、演算処理プロセッサ1cは、ステップS50の処理に戻す。以降、前述したステップS50〜S55の処理を繰り返す。
次に、演算処理プロセッサ1bは、ステップS30の処理に戻す。
続いて、以下、図14に示す通信処理プロセッサ2cの共有メモリアクセス処理フローについて、図11を参照しながら説明する。
通信処理プロセッサ2cの処理が開始されると、通信処理プロセッサ2cは、伝送路3から受信データを受けたか否か判断する(ステップS60)。
受信データを受信していない場合に(ステップS60のNo)、通信処理プロセッサ2cは、処理をステップS63に進める。一方、受信データを受信した場合に(ステップS60のYes)、通信処理プロセッサ2cは、処理を次のステップS61に進める。
通信処理プロセッサ2cは、第1受信領域バンク10r1、第2受信領域バンク10r2および第1受信領域バンク10r3のアクセス可能ないずれか一つのバンクに受信データを書き込む(ステップS61)。
書き込み後、通信処理プロセッサ2cは、受信領域バンク第2切替制御手段12r2を介して、受信領域バンク10rcを切り替える(ステップS62)。
次に、通信処理プロセッサ2cは、送信領域バンク第2切替制御手段12s2を介して、送信領域バンク10scを切り替える(ステップS63)。
次に、通信処理プロセッサ2cは、第1送信領域バンク10s1、第2送信領域バンク10s2および第3送信領域バンク10s3のアクセス可能ないずれか一つのバンクから送信データを読み出す(ステップS64)。
通信処理プロセッサ2cは、送信データに更新がある場合に、伝送路3を介して、送信データを送信する(ステップS65)。ステップS65の後、演算処理プロセッサ1cは、ステップS60の処理に戻す。以降、前述したステップS60〜S65の処理を繰り返す。
以上説明したように、第4の実施形態によれば、待機バンクを用いることにより、通信処理プロセッサのアクセス待ち時間がなく、かつ、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる。
[第5の実施形態]
図15は、本発明に係る共有メモリアクセスシステムの第5の実施形態の構成を示すブロック図である。
共有メモリアクセスシステム20dは、図15に示すように、演算処理プロセッサ1dと、通信処理プロセッサ2dと、演算処理プロセッサ1dおよび通信処理プロセッサ2dによって共有される共有メモリ10dとを備えている。
第5の実施形態の共有メモリアクセスシステムの構成は、第1ないし第4の実施形態の共有メモリアクセスシステムのいずれかの構成に加えて、共有メモリ10dが通信先の相手ノード50(m)(複数の通信先)ごとに割り当てられた第mバンク手段10rsd(m)を備えている。なお、mは1以上、n以下(nは2以上の整数)の整数である。
すなわち、共有メモリ10dは、通信先の相手ノード50(1)〜50(n)に対応した、図15に示すような第1バンク手段10rsd(1)〜第nバンク手段10rsd(n)を少なくとも同数備えている。なお、第mバンク手段10rsd(m)の構成は、前述した第1ないし第4の実施形態の構成に示した複数のバンク手段10rsa〜10rsdなどである。
送信データおよび受信データの通信先である複数の相手ノード50(1)〜50(n)が、伝送路3に複数接続されている。なお、以降では、複数の第1バンク手段10rsd(1)〜第nバンク手段10rsd(n)を代表して、バンク手段10rsdと示す。また、複数の相手ノード50(1)〜50(n)を代表して、相手ノード50と示す。
各々のバンク手段10rsdは、相手ノード50ごとに割り当てられ、相手ノード50ごとに送信データおよび受信データを記憶する。
演算処理プロセッサ1dは、各々の相手ノード50に送信する送信データを相手ノード50ごとに割り当てられたバンク手段10rsdに書き込む。演算処理プロセッサ1dは、各々の相手ノード50から受信した受信データを、相手ノード50ごとに割り当てられたバンク手段10rsdから読み出す。
通信処理プロセッサ2dは、各々の相手ノード50から受信した受信データを、相手ノード50ごとに割り当てられたバンク手段10rsdに書き込む。通信処理プロセッサ2dは、各々の相手ノード50へ送信する送信データを、相手ノード50ごとに割り当てられたバンク手段10rsdから読み出す。通信処理プロセッサ2dは、読み出した送信データを、それに対応する通信先である相手ノード50へ送信する。
図15は、第3の実施形態の共有メモリアクセスシステムに付加した例を示すものである。
演算処理プロセッサ1dおよび通信処理プロセッサ2dは、例えば通信先の相手ノード50(m)ごとに、受信データおよび送信データのやり取りを、相手ノード50(m)ごとに対応させた共有メモリ10d内の第mバンク手段10rsd(m)を用いる。
すなわち、通信処理プロセッサ2dは、通信する相手ノード50(m)ごとに、受信データを第mバンク手段10rsd(m)の受信領域バンクに書き込む。演算プロセッサ1dは、通信する相手ノード50(m)ごとに、受信データを第mバンク手段10rsd(m)の受信領域バンクから読み出す。
また、演算処理プロセッサ1dは、通信する相手ノード50(m)ごとに、送信データを第mバンク手段10rsd(m)の送信領域バンクに書き込む。通信処理プロセッサ2dは、通信する相手ノード50(m)ごとに、送信データを第mバンク手段10rsd(m)の送信領域バンクから読み出す。
これにより、通信処理プロセッサ2dは、通信する相手ノード50(m)ごとに第mバンク手段10rsd(m)を用いて、伝送路3を介して送受信データを送受信する。
例えば第3および第4の実施形態では、通信先の相手が複数存在する場合、バンク内の送受信データを正確に更新するため、バンクを切り替える前に更新する一つの通信先の送受信データ以外の他の通信先の送受信データについても、そのバンクに書き込む必要がある。このため、送受信データを正確に更新するためにバンクに書き込む処理に余分な時間がかかる。
しかし、第5の実施形態によれば、通信先の相手が複数存在する場合でも、共有メモリ内に割り当てられた通信先ごとの複数のバンクに格納された送受信データを更新するため、バンクに書き込む処理に余分な時間がかかることなく、かつ、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる。
[第6の実施形態]
図16は、本発明に係る共有メモリアクセスシステムの第6の実施形態の構成を示すブロック図である。
第6の実施形態では、第1ないし第5の実施形態の構成において、送信データおよび受信データが更新されたことを、読み込み(RDアクセス)側で確認(判別)できるように、書き込み(WRアクセス)側で識別番号をデータに付加して管理するデータ更新管理手段をバンク手段がさらに有する。
なお、図16の共有メモリアクセスシステム20eは、一例として、図1に示した第1の実施形態の共有メモリアクセスシステム20aに、さらに以下に説明する機能部(データ更新管理手段14a1および14a2)と、2つのプロセッサとして演算処理プロセッサ1aaおよび通信処理プロセッサ2aaを備えた構成を示す。
データ更新管理手段14a1は、演算処理プロセッサ1aaから共有メモリ10aaのバンク手段10rsaaに格納される送信データの更新を確認可能なように、識別番号を送信データに付加し、識別番号を付加した送信データをバンク手段10rsaaに格納する。
また、データ更新管理手段14a2は、バンク手段10rsaaから送信データの読み出し時に、識別番号により送信データの更新を確認する。データ更新管理手段14a2は、更新結果について通信処理プロセッサ2aaに通知する。また、データ更新管理手段14a2は、識別番号を除去した送信データを通信処理プロセッサ2aaに送る。
データ更新管理手段14a2は、通信処理プロセッサ2aaから共有メモリ10aaのバンク手段10rsaaに格納される受信データの更新を確認可能なように、識別番号を受信データに付加し、識別番号を付加した受信データをバンク手段10rsaaに格納する。
また、データ更新管理手段14a1は、バンク手段10rsaaからの受信データの読み出し時に、識別番号により受信データの更新をチェックする。データ更新管理手段14a1は、更新結果について演算処理プロセッサ1aaに通知する。また、データ更新管理手段14a1は、識別番号を除去した受信データを演算処理プロセッサ1aaに送る。
なお、以上説明したデータ更新管理手段は、第2ないし第5の実施形態の構成にも付加することができる。
以上説明したように、第6の実施形態によれば、共有メモリ内のバンクに新旧の送受信データが混在していた場合でも、更新された送受信データを容易に確認可能であり、かつ、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる。
[第7の実施形態](請求項7対応と請求項8とを一つの実施例に)
図17は、本発明に係る共有メモリアクセスシステムの第7の実施形態の構成を示すブロック図である。
図17に示す共有メモリアクセスシステム20fは、図1に示す共有メモリアクセスシステム20aの構成中の通信処理プロセッサ2aを、通信処理プロセッサ2fに置き換えた構成である。図17に示すブロック図において、その他の手段については図1に示す同一符号の手段と同じ機能であるため、ここではその説明を省くものとし、以下では通信処理プロセッサ2fについて主に説明する。
通信処理プロセッサ2fは、送信データの更新の有無を所定の周期で監視する送信データ用タイマ21fと、受信データの更新の有無を所定の周期で監視する受信データ用タイマ22fと、擬似データを記憶する擬似データ記憶手段23fとを有する。
通信処理プロセッサ2fは、送信データ用タイマ21fにより定められる所定の周期期間内に共有メモリ10a内に送信する送信データが更新されない場合に、伝送路3を介して送信先に擬似データを送信する。
擬似データは、予め擬似データ記憶手段23fに記憶されている。擬似データは、例えば実際に用いられる送信データおよび受信データと判別可能で、かつ、伝送路3の異常時や通信処理プロセッサ2fの異常時などと判別可能なデータである。
一方、通信処理プロセッサ2fは、送信データ用タイマ21fにより定められる所定の周期期間内に共有メモリ10a内に送信する送信データが更新されている場合に、共有メモリ10aから送信データを読み出し、読み出した送信データを送信先に送信する。
以上により、通信処理プロセッサ2fは、共有メモリ10a内に送信データが更新されていない場合でも、一定周期で送信データを送信することができる。
これにより、例えば演算処理プロセッサ1fの動作が非周期的であっても、伝送路3の負荷を一定とした通信を行い、アクセスが競合することなく共有メモリにアクセスすることができる。
次に、通信処理プロセッサ2fは、受信データ用タイマ22fにより定められる所定の周期期間内に伝送路3から受信データを受信しない場合に、擬似データを共有メモリ10aに書き込む。
一方、通信処理プロセッサ2fは、受信データ用タイマ22fにより定められる所定の周期期間内に伝送路3から受信データを受信した場合に、受信した受信データを共有メモリ10aに書き込む。
以上により、通信処理プロセッサ2fが受信データを受信しない場合でも、一定周期で受信データを共有メモリ10aに書き込むことができる。
これにより、例えば伝送路3等に異常があり受信データを受信できない場合でも、受信領域バンクに擬似データを書き込むことで、通信処理プロセッサ2fの健全性を演算処理プロセッサ1fに通知することができ、また、通信処理プロセッサ2fの処理負荷がほぼ一定となるように動作し、アクセスが競合することなく共有メモリにアクセスすることができる。
なお、以上説明した送信データ用タイマ21f、受信データ用タイマ22fおよび擬似データ記憶手段23fは、第2ないし第6の実施形態の構成にも付加することができる。
以上説明したように、第7の実施形態によれば、演算処理プロセッサの動作が非周期的であっても、伝送路の負荷を一定とするような送信データの通信を行い、かつ、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる。
また、第7の実施形態によれば、伝送路等に異常があり受信データを受信できない場合でも、共有メモリに擬似データを書き込むことで、通信処理プロセッサの健全性を演算処理プロセッサに確認させることができる。また、通信処理プロセッサの処理負荷が一定となるような動作であり、かつ、複数のプロセッサが共有メモリへのアクセスを競合することなく、共有メモリにアクセスすることができる。
[他の実施形態]
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。例えば、各実施形態の特徴を組み合わせてもよい。さらに、これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形には、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1a、1b、1c、1d、1f、1aa、101…演算処理プロセッサ、2a、2b、2c、2d、2f、2aa、200…通信処理プロセッサ、3、300…伝送路、10a、10b、10c、10d、10aa、100…共有メモリ、10rb、10rc…受信領域バンク、10sb、10sc…送信領域バンク、10rsa、10rsb、10rsc、10rsaa…バンク手段、10rsd(1)…第1バンク手段、10rsd(2)…第2バンク手段、10rsd(n)…第nバンク手段、10rs1…第1送受信領域バンク、10rs2…第2送受信領域バンク、10r1…第1受信領域バンク、10r2…第2受信領域バンク、10r3…第3受信領域バンク、10s1…第1送信領域バンク、10s2…第2送信領域バンク、10s3…第3送信領域バンク、11a…バンク切替要求フラグ手段、12a…バンク切替制御手段、12r…受信領域バンク切替制御手段、12r1…受信領域バンク第1切替制御手段、12r2…受信領域バンク第2切替制御手段、12s…送信領域バンク切替制御手段、12s1…送信領域バンク第1切替制御手段、12s2…送信領域バンク第2切替制御手段、13r…受信領域演算処理プロセッサ使用中フラグ手段、13s…送信領域演算処理プロセッサ使用中フラグ手段、14a1、14a2…データ更新管理手段、15、15a…バンク制御手段、20a、20b、20c、20d、20e、20f…共有メモリアクセスシステム、21f…送信データ用タイマ、22f…受信データ用タイマ、23f…擬似データ記憶手段、50(1)、50(2)、50(n)…ノード、100r…受信領域バンク、100s…送信領域バンク、103…制御処理、130…フラグ領域、130r1…受信領域演算処理プロセッサ使用中フラグ、130r2…受信領域通信処理プロセッサ使用中フラグ、130s1…送信領域演算処理プロセッサ使用中フラグ、130s2…送信領域通信処理プロセッサ使用中フラグ

Claims (10)

  1. 第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信して、前記共有メモリを介して前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムであって、
    前記共有メモリは、前記アクセスの際に前記送信データおよび前記受信データを記憶する少なくとも1つのバンク手段を備え、
    前記バンク手段は、
    前記送信データおよび前記受信データを記憶し、バンク切り替え可能な第1および第2送受信領域バンクと、
    前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段と、を有し、
    前記第2プロセッサは、前記バンク制御手段にバンク切替指令を送り、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出し、
    前記第1プロセッサは、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込むものであり、
    前記バンク制御手段は、
    前記第1プロセッサからバンク切替要求を受け付けてバンク切替要求フラグをセットし、前記バンク切り替え後に前記バンク切替要求フラグをリセットするバンク切替要求フラグ手段と、
    前記第2プロセッサから前記バンク切替指令を受けて、前記第1および第2送受信領域バンクのバンク切り替えを実行するするバンク切替制御手段と、を有し、
    前記第2プロセッサは、前記バンク切替要求フラグ手段に前記バンク切替要求フラグがセットされている場合に、前記バンク切替制御手段へ前記バンク切替指令を送り、
    前記第1プロセッサが前記バンク手段から前記受信データを読み出す処理および前記バンク手段に前記送信データを書き込む処理を少なくとも含む制御周期として、さらに前記制御周期に次の前記制御周期の待ち時間を含み、前記制御周期における前記受信データを読み出す処理は前記送信データを書き込む処理よりも前の処理であり、
    前記第1プロセッサが、次の前記制御周期の前記待ち時間内に前記バンク切替要求を送り、
    前記第2プロセッサが、前記バンク切替要求フラグ手段に前記バンク切替要求フラグがセットされている場合に、次の前記制御周期の前記待ち時間内に前記バンク切替制御手段へ前記バンク切替指令を送る
    ことを特徴とする共有メモリアクセスシステム。
  2. 第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信して、前記共有メモリを介して前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムであって、
    前記共有メモリは、前記アクセスの際に前記送信データおよび前記受信データを記憶する少なくとも1つのバンク手段を備え、
    前記バンク手段は、
    前記送信データおよび前記受信データを記憶し、バンク切り替え可能な第1および第2送受信領域バンクと、
    前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段と、を有し、
    前記第2プロセッサは、前記バンク制御手段にバンク切替指令を送り、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出し、
    前記第1プロセッサは、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込むものであり、
    前記バンク制御手段は、
    前記第1プロセッサからバンク切替要求を受け付けてバンク切替要求フラグをセットし、前記バンク切り替え後に前記バンク切替要求フラグをリセットするバンク切替要求フラグ手段と、
    前記第2プロセッサから前記バンク切替指令を受けて、前記第1および第2送受信領域バンクのバンク切り替えを実行するするバンク切替制御手段と、を有し、
    前記第2プロセッサは、前記バンク切替要求フラグ手段に前記バンク切替要求フラグがセットされている場合に、前記バンク切替制御手段へ前記バンク切替指令を送り、
    前記第1プロセッサが前記バンク手段に前記送信データを書き込む処理と前記バンク手段から前記受信データを読み出す処理とこれら以外の他の処理を少なくとも含む制御周期として、さらに前記制御周期に次の前記制御周期の待ち時間を含み、前記制御周期における前記送信データを書き込む処理は前記他の処理よりも後の処理であり、かつ、前記送信データを書き込む処理は前記受信データを読み出す処理よりも前の処理であり、
    前記第1プロセッサが、次の前記制御周期の前記待ち時間と前記他の処理との間に前記バンク切替要求を送り、
    前記第2プロセッサが、前記バンク切替要求フラグ手段に前記バンク切替要求フラグがセットされている場合に、次の前記制御周期の前記待ち時間と前記他の処理との間に前記バンク切替制御手段へ前記バンク切替指令を送る
    ことを特徴とする共有メモリアクセスシステム。
  3. 第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信して、前記共有メモリを介して前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムであって、
    前記共有メモリは、前記アクセスの際に前記送信データおよび前記受信データを記憶する少なくとも1つのバンク手段を備え、
    前記バンク手段は、
    前記送信データおよび前記受信データを記憶し、バンク切り替え可能な第1および第2送受信領域バンクと、
    前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段と、を有し、
    前記第2プロセッサは、前記バンク制御手段にバンク切替指令を送り、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出し、
    前記第1プロセッサは、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込むものであり、
    前記第1送受信領域バンクには、前記受信データを記憶するバンク切り替え可能な第1ないし第3受信領域バンクからなる受信領域バンクのいずれか一つのバンクと、前記送信データを記憶するバンク切り替え可能な第1ないし第3送信領域バンクからなる送信領域バンクのいずれか一つのバンクとが対応し、
    前記第2送受信領域バンクには、前記受信領域バンクのいずれか一つの他のバンクと、前記送信領域バンクのいずれか一つの他のバンクとが対応し、
    前記受信領域バンクおよび前記送信領域バンクの残りのバンクが、前記第1および第2送受信領域バンクに含まれない待機バンクに対応するように区分され、
    前記第1および第2送受信領域バンクは、さらに、前記受信領域バンクの前記いずれか一つのバンクと前記他のバンクとの間でバンク切り替え可能であり、前記送信領域バンクの前記いずれか一つのバンクと前記他のバンクとの間でバンク切り替え可能であり、
    前記バンク切替指令は、前記受信領域バンクに対する受信領域バンク第1切替指令および受信領域バンク第2切替指令と、前記送信領域バンクに対する送信領域バンク第1切替指令および送信領域バンク第2切替指令とを含み、
    前記バンク制御手段は、
    前記第1プロセッサからの前記受信領域バンク第1切替指令に応じて、前記第1プロセッサがアクセス可能なバンクとして最も直近に前記受信データが書き込まれた前記第1ないし第3受信領域バンクのいずれか一つのバンクに前記受信領域バンクを切り替える受信領域バンク第1切替制御手段と、
    前記第2プロセッサからの前記受信領域バンク第2切替指令に応じて、前記第2プロセッサがアクセス可能なバンクとして前記第1ないし第3受信領域バンクのうちの前記待機バンクに前記受信領域バンクを切り替える受信領域バンク第2切替制御手段と、
    前記第1プロセッサからの前記送信領域バンク第1切替指令に応じて、前記第1プロセッサがアクセス可能なバンクとして前記第1ないし第3送信領域バンクのうちの前記待機バンクに前記送信領域バンクを切り替える送信領域バンク第1切替制御手段と、
    前記第2プロセッサからの前記送信領域バンク第2切替指令に応じて、前記第2プロセッサがアクセス可能なバンクとして最も直近に前記送信データが書き込まれた前記第1ないし第3送信領域バンクのいずれか一つのバンクに前記送信領域バンクを切り替える送信領域バンク第2切替制御手段と、を有し、
    前記第1プロセッサは、前記第1ないし第3受信領域バンクのアクセス可能ないずれか一つのバンクから前記受信データを読み出し、前記第1ないし第3送信領域バンクのアクセス可能ないずれか一つのバンクへ前記送信データを書き込み、
    前記第2プロセッサは、前記第1ないし第3受信領域バンクのアクセス可能ないずれか一つのバンクへ前記受信データを書き込み、前記第1ないし第3送信領域バンクのアクセス可能ないずれか一つのバンクから前記送信データを読み出す
    ことを特徴とする共有メモリアクセスシステム。
  4. 前記送信データおよび前記受信データの通信先である相手ノードが前記伝送路に複数接続され、
    前記共有メモリは、複数の前記相手ノードに割り当てられる少なくとも同数の複数の前記バンク手段を備え、
    各々の前記バンク手段は、前記相手ノードごとに割り当てられ、前記相手ノードごとに前記送信データおよび前記受信データを記憶し、
    前記第1プロセッサは、各々の前記相手ノードに送信する前記送信データを前記相手ノードごとに割り当てられた前記バンク手段に書き込み、各々の前記相手ノードから受信した前記受信データを前記相手ノードごとに割り当てられた前記バンク手段から読み出し、
    前記第2プロセッサは、各々の前記相手ノードから受信した前記受信データを前記相手ノードごとに割り当てられた前記バンク手段に書き込み、各々の前記相手ノードへ送信する前記送信データを前記相手ノードごとに割り当てられた前記バンク手段から読み出す
    ことを特徴とする請求項1ないし請求項3のいずれか一項に記載の共有メモリアクセスシステム。
  5. 前記バンク手段は、前記送信データおよび前記受信データを前記共有メモリに格納する際に、前記送信データおよび前記受信データの更新を確認可能な更新番号を前記送信データおよび前記受信データの各々に付加して記憶し、読み出し時に前記更新番号により前記送信データおよび前記受信データについて更新を確認するデータ更新管理手段をさらに有する
    ことを特徴とする請求項1ないし請求項4のいずれか一項に記載の共有メモリアクセスシステム。
  6. 前記第2プロセッサは、前記送信データの更新の有無を所定の周期で監視する送信データ用タイマと、擬似データを記憶する擬似データ記憶手段とを有し、
    前記第2プロセッサは、前記送信データ用タイマにより前記所定の周期に前記送信データが更新されない場合に、前記擬似データを前記送信データの代わりに前記伝送路を介して送信する
    ことを特徴とする請求項1ないし請求項5のいずれか一項に記載の共有メモリアクセスシステム。
  7. 前記第2プロセッサは、前記受信データの更新の有無を所定の周期で監視する受信データ用タイマをさらに有し、
    前記第2プロセッサは、前記受信データ用タイマにより前記所定の周期に前記受信データが更新されない場合に、前記擬似データを前記受信データの代わりに前記共有メモリに書き込む
    ことを特徴とする請求項6に記載の共有メモリアクセスシステム。
  8. 第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信するために、前記共有メモリは、前記送信データおよび前記受信データを記憶しバンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段とを有する少なくとも1つのバンク手段を備え、前記共有メモリを介して、前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムに用いられる共有メモリアクセス方法であって、
    前記第2プロセッサが、前記バンク制御手段にバンク切替指令を送るバンク切替指令ステップと、
    前記第2プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出す第2プロセッサアクセスステップと、
    前記第1プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込む第1プロセッサアクセスステップと、
    前記バンク制御手段が、前記第1プロセッサからバンク切替要求を受け付けてバンク切替要求フラグをセットし、前記バンク切り替え後に前記バンク切替要求フラグをリセットするバンク切替要求フラグステップと、
    前記バンク制御手段が、前記第2プロセッサから前記バンク切替指令を受けて、前記第1および第2送受信領域バンクのバンク切り替えを実行するするバンク切替制御ステップと、
    前記第2プロセッサが、前記バンク切替要求フラグステップによって前記バンク切替要求フラグがセットされている場合に、前記バンク制御手段へ前記バンク切替指令を送るステップと、
    を含み、
    前記第1プロセッサが前記バンク手段から前記受信データを読み出す処理および前記バンク手段に前記送信データを書き込む処理を少なくとも含む制御周期として、さらに前記制御周期に次の前記制御周期の待ち時間を含み、前記制御周期における前記受信データを読み出す処理は前記送信データを書き込む処理よりも前の処理であり、
    前記第1プロセッサが、次の前記制御周期の前記待ち時間内に前記バンク切替要求を送るステップと、
    前記第2プロセッサが、前記バンク制御手段に前記バンク切替要求フラグがセットされている場合に、次の前記制御周期の前記待ち時間内に前記バンク制御手段へ前記バンク切替指令を送るステップと、
    をさらに含む
    ことを特徴とする共有メモリアクセス方法。
  9. 第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信するために、前記共有メモリは、前記送信データおよび前記受信データを記憶しバンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段とを有する少なくとも1つのバンク手段を備え、前記共有メモリを介して、前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムに用いられる共有メモリアクセス方法であって、
    前記第2プロセッサが、前記バンク制御手段にバンク切替指令を送るバンク切替指令ステップと、
    前記第2プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出す第2プロセッサアクセスステップと、
    前記第1プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込む第1プロセッサアクセスステップと、
    前記バンク制御手段が、前記第1プロセッサからバンク切替要求を受け付けてバンク切替要求フラグをセットし、前記バンク切り替え後に前記バンク切替要求フラグをリセットするバンク切替要求フラグステップと、
    前記バンク制御手段が、前記第2プロセッサから前記バンク切替指令を受けて、前記第1および第2送受信領域バンクのバンク切り替えを実行するするバンク切替制御ステップと、
    前記第2プロセッサが、前記バンク切替要求フラグステップによって前記バンク切替要求フラグがセットされている場合に、前記バンク制御手段へ前記バンク切替指令を送るステップと、
    を含み、
    前記第1プロセッサが前記バンク手段に前記送信データを書き込む処理と前記バンク手段から前記受信データを読み出す処理とこれら以外の他の処理を少なくとも含む制御周期として、さらに前記制御周期に次の前記制御周期の待ち時間を含み、前記制御周期における前記送信データを書き込む処理は前記他の処理よりも後の処理であり、かつ、前記送信データを書き込む処理は前記受信データを読み出す処理よりも前の処理であり、
    前記第1プロセッサが、次の前記制御周期の前記待ち時間と前記他の処理との間に前記バンク切替要求を送るステップと、
    前記第2プロセッサが、前記バンク制御手段に前記バンク切替要求フラグがセットされている場合に、次の前記制御周期の前記待ち時間と前記他の処理との間に前記バンク制御手段へ前記バンク切替指令を送るステップと、
    をさらに含む
    ことを特徴とする共有メモリアクセス方法。
  10. 第1プロセッサと、第2プロセッサと、前記第1および第2プロセッサによって共有される共有メモリとを備え、前記第2プロセッサと接続された伝送路へ送信データを送信し、前記伝送路から受信データを受信するために、前記共有メモリは、前記送信データおよび前記受信データを記憶しバンク切り替え可能な第1および第2送受信領域バンクと、前記第1および第2送受信領域バンクのバンク切り替えを制御するバンク制御手段とを有する少なくとも1つのバンク手段を備え、前記共有メモリを介して、前記第1および第2プロセッサの間で前記送信データと前記受信データとのアクセスを行う共有メモリアクセスシステムに用いられる共有メモリアクセス方法であって、
    前記第2プロセッサが、前記バンク制御手段にバンク切替指令を送るバンク切替指令ステップと、
    前記第2プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な一方に前記受信データを書き込み、または、前記第1または前記第2送受信領域バンクのアクセス可能な他方から前記送信データを読み出す第2プロセッサアクセスステップと、
    前記第1プロセッサが、前記バンク切り替えに応じて、前記第1または前記第2送受信領域バンクのアクセス可能な前記一方から前記受信データを読み出し、または、前記第1または前記第2送受信領域バンクのアクセス可能な前記他方に前記送信データを書き込む第1プロセッサアクセスステップと、を含み、
    前記第1送受信領域バンクには、前記受信データを記憶するバンク切り替え可能な第1ないし第3受信領域バンクからなる受信領域バンクのいずれか一つのバンクと、前記送信データを記憶するバンク切り替え可能な第1ないし第3送信領域バンクからなる送信領域バンクのいずれか一つのバンクとが対応し、
    前記第2送受信領域バンクには、前記受信領域バンクのいずれか一つの他のバンクと、前記送信領域バンクのいずれか一つの他のバンクとが対応し、
    前記受信領域バンクおよび前記送信領域バンクの残りのバンクが、前記第1および第2送受信領域バンクに含まれない待機バンクに対応するように区分され、
    前記第1および第2送受信領域バンクは、さらに、前記受信領域バンクの前記いずれか一つのバンクと前記他のバンクとの間でバンク切り替え可能であり、前記送信領域バンクの前記いずれか一つのバンクと前記他のバンクとの間でバンク切り替え可能であり、
    前記バンク切替指令は、前記受信領域バンクに対する受信領域バンク第1切替指令および受信領域バンク第2切替指令と、前記送信領域バンクに対する送信領域バンク第1切替指令および送信領域バンク第2切替指令とを含み、
    前記バンク制御手段は、
    前記第1プロセッサからの前記受信領域バンク第1切替指令に応じて、前記第1プロセッサがアクセス可能なバンクとして最も直近に前記受信データが書き込まれた前記第1ないし第3受信領域バンクのいずれか一つのバンクに前記受信領域バンクを切り替える受信領域バンク第1切替制御手段と、
    前記第2プロセッサからの前記受信領域バンク第2切替指令に応じて、前記第2プロセッサがアクセス可能なバンクとして前記第1ないし第3受信領域バンクのうちの前記待機バンクに前記受信領域バンクを切り替える受信領域バンク第2切替制御手段と、
    前記第1プロセッサからの前記送信領域バンク第1切替指令に応じて、前記第1プロセッサがアクセス可能なバンクとして前記第1ないし第3送信領域バンクのうちの前記待機バンクに前記送信領域バンクを切り替える送信領域バンク第1切替制御手段と、
    前記第2プロセッサからの前記送信領域バンク第2切替指令に応じて、前記第2プロセッサがアクセス可能なバンクとして最も直近に前記送信データが書き込まれた前記第1ないし第3送信領域バンクのいずれか一つのバンクに前記送信領域バンクを切り替える送信領域バンク第2切替制御手段と、を有し、
    前記第1プロセッサが、前記第1ないし第3受信領域バンクのアクセス可能ないずれか一つのバンクから前記受信データを読み出し、前記第1ないし第3送信領域バンクのアクセス可能ないずれか一つのバンクへ前記送信データを書き込むステップと、
    前記第2プロセッサが、前記第1ないし第3受信領域バンクのアクセス可能ないずれか一つのバンクへ前記受信データを書き込み、前記第1ないし第3送信領域バンクのアクセス可能ないずれか一つのバンクから前記送信データを読み出すステップと、
    をさらに含む
    ことを特徴とする共有メモリアクセス方法。
JP2012234091A 2012-10-23 2012-10-23 共有メモリアクセスシステムおよび共有メモリアクセス方法 Active JP6009902B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012234091A JP6009902B2 (ja) 2012-10-23 2012-10-23 共有メモリアクセスシステムおよび共有メモリアクセス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012234091A JP6009902B2 (ja) 2012-10-23 2012-10-23 共有メモリアクセスシステムおよび共有メモリアクセス方法

Publications (2)

Publication Number Publication Date
JP2014085820A JP2014085820A (ja) 2014-05-12
JP6009902B2 true JP6009902B2 (ja) 2016-10-19

Family

ID=50788828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012234091A Active JP6009902B2 (ja) 2012-10-23 2012-10-23 共有メモリアクセスシステムおよび共有メモリアクセス方法

Country Status (1)

Country Link
JP (1) JP6009902B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109690490A (zh) 2016-09-05 2019-04-26 三菱电机株式会社 嵌入系统、嵌入系统控制方法和数据匹配性判定方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0232432A (ja) * 1988-07-22 1990-02-02 Fuji Electric Co Ltd デュアルポートメモリの制御方式
JPH04215149A (ja) * 1990-12-12 1992-08-05 Fuji Electric Co Ltd プログラマブルコントローラおよびその入出力信号交換回路
JP2873229B2 (ja) * 1997-06-16 1999-03-24 松下電器産業株式会社 バッファメモリ制御装置
JP2001022707A (ja) * 1999-07-07 2001-01-26 Matsushita Electric Ind Co Ltd コマンド駆動制御方法とコマンド駆動制御装置
JP2001282650A (ja) * 2000-03-29 2001-10-12 Mitsubishi Electric Corp データバッファリング装置およびこのデータバッファリング装置を用いた分散制御システム
WO2008001433A1 (fr) * 2006-06-28 2008-01-03 Mitsubishi Electric Corporation Appareil de communication de données
EP2192495A1 (de) * 2008-11-11 2010-06-02 Thomson Licensing Verfahren zur Bearbeitung von Daten mittels Dreifach-Pufferung
JP5667867B2 (ja) * 2010-12-24 2015-02-12 株式会社東芝 データ転送装置およびデータ転送方法

Also Published As

Publication number Publication date
JP2014085820A (ja) 2014-05-12

Similar Documents

Publication Publication Date Title
US7958184B2 (en) Network virtualization in a multi-node system with multiple networks
JP4845522B2 (ja) システムバス制御装置、集積回路およびデータ処理システム
WO2019056771A1 (zh) 分布式存储系统升级管理的方法、装置及分布式存储系统
JP4922262B2 (ja) 制御装置
US20140068115A1 (en) Information processing apparatus, information processing method, computer-readable recording medium having stored therein program
EP2693343B1 (en) Parallel processing system and parallel processing system operation method
JP6009902B2 (ja) 共有メモリアクセスシステムおよび共有メモリアクセス方法
KR101994929B1 (ko) 집합 통신 수행 방법 및 이를 이용한 집합 통신 시스템
JP5754504B2 (ja) 管理装置、情報処理装置、情報処理システム及びデータ転送方法
US9594651B2 (en) Parallel computer system and control method for parallel computer system
JP5006526B2 (ja) 割り込み分配装置
US9015717B2 (en) Method for processing tasks in parallel and selecting a network for communication
JP2015215803A (ja) プログラマブルコントローラ、及び演算処理システム
JP6428380B2 (ja) 並列計算システム、ジョブ管理装置、ジョブ管理プログラム、およびジョブ管理方法
CN101529387B (zh) 多处理器系统、其控制方法和信息存储介质
KR20140122966A (ko) 자율 컴퓨팅 장치들간의 토픽을 공유하는 장치 및 그 방법
JP2009251652A (ja) マルチコアシステム
CN102722466A (zh) 一种3取2或2取2控制系统中的16位多总线电路
CA2393875A1 (en) Inter-nodal data transfer system and data transfer apparatus
WO2013062109A1 (ja) I/oデバイス制御システムおよびi/oデバイス制御方法
JP2004152156A (ja) インタフェース変換装置
JP4833911B2 (ja) プロセッサユニットおよび情報処理方法
JP5705185B2 (ja) 通信装置及びその制御方法、並びに、コンピュータプログラム
JP5445561B2 (ja) 情報処理システムおよび情報処理方法
JP5230545B2 (ja) 制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160711

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160915

R151 Written notification of patent or utility model registration

Ref document number: 6009902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151