JP2009223788A - プロセス間通信機構 - Google Patents
プロセス間通信機構 Download PDFInfo
- Publication number
- JP2009223788A JP2009223788A JP2008069851A JP2008069851A JP2009223788A JP 2009223788 A JP2009223788 A JP 2009223788A JP 2008069851 A JP2008069851 A JP 2008069851A JP 2008069851 A JP2008069851 A JP 2008069851A JP 2009223788 A JP2009223788 A JP 2009223788A
- Authority
- JP
- Japan
- Prior art keywords
- data
- communication mechanism
- processes
- inter
- ring buffer
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【解決手段】2つのプロセスが並列に実行され、これらのプロセス間でデータの通信を行う場合、リングバッファを設ける。リングバッファには、書き込み領域と読み出し領域を示すインデックスがつけられる。書き込む側のプロセスは、プログラムの実行が終わった後、次にプログラムの実行の前に、送信すべきデータをリングバッファに書き込む。読み込む側のプロセスは、リングバッファへのデータの書き込み終了を待って、データの読み出しを行う。
【選択図】図2
Description
1: シミュレーション上の矛盾の排除
並列に動作するプロセス間通信にOS付属の通信機能などをそのまま使用した場合、2つのプロセスの動作順序によっては、まだ読み出すべきでない、シミュレーション時刻でみるところの未来のデータが読まれてしまう状況が発生する。
2: 高速性の確保
プロセス間通信に、書き込みや読み出しを行うデータの数の通信バッファを使用し, 同期処理中に通信バッファのコピーを行った場合,コピーデータ数およびそのコピー実行頻度が多いと 全シミュレーション時間中にプロセスの並列動作できない時間(=クリティカルパス)の割合が増え, シミュレーションの高速性が損なわれる。
本実施形態では、プロセスの実行周期である所定の周期間隔(コピー実行時間よりも充分長い時間周期たとえば、1ms)毎に, 書き込み側プロセス(procA)から読み出し側プロセス(procB)へデータを転送するプロセス間通信機構であり、 次のような機能を持つ。
・procA側で書き込んだ順に, procB側で読み出す。
・procA側で書き込んだデータは, procB側に送られるまでprocB上のモデルから読み出さない。
・procA側からは, 1ms区間に所定の個数, データを書き込む。
段数は所定のデータ数の2倍とする。所定のデータ数とは、1回のシミュレーション周期で、書き込みや読み出しを行いたいデータの量であり、シミュレーションの内容などによって適宜設定されるべきものである。リングバッファは、データの書き込み/読み出し量の単位量の領域(コマ)が複数接続された構成とする。
まず、Write-Terminal12をWrite-Index10から所定のデータ数分進んだ位置に配置する。すなわち、Write-Index10をWrite-Terminal12から書き込みを行いたいデータ量の分だけ進んだ位置に配置する。次に、Read-Terminal13をWrite-Index10の位置に配置する。以上の操作の結果, Read-Terminal13がRead-Index11の位置から所定のデータ数+1コマ分以上進んだ位置に配置された場合, バッファオーバーフローの処理を行う。
シミュレーションの周期が1msとした場合、データ転送処理を, n.99999999msのタイミングで動作させる。ここで、nは整数とする。
図4に従うと、シミュレーション全体は、シミュレーション(1ms:より一般には、シミュレーション周期:ステップS10)を行った後、バリア同期(A)(ステップS11)をとって、データ転送処理(ステップS12〜S14)をし、さらにバリア同期 (B)(ステップS15)をとって、シミュレーション(ステップS10)に戻るステップからなる。
図5に従うと、シミュレーション全体は、シミュレーション(1ms:より一般には、シミュレーション周期:ステップS20)を行い、バリア同期(A)(ステップS21)をとり、バリア同期(B)(ステップS22)をとるステップからなる。
ユーザーモデル内で行う書き込み処理は以下のとおりである。書き込みを開始すると、Write-IndexとWrite-Terminalの指し示す位置が同じか否かを判断し(ステップS30)、Yesの場合には、バッファオーバーフローとして異常終了する。Write-IndexとWrite-Terminalの指し示す位置が異なる場合、Write-Indexが指す位置へデータを書き込み(ステップS31)、Write-Indexの位置を1つ進め(ステップS32)、書き込み処理を終了する。
読み出し処理は以下のとおりである。Read-IndexとRead-Terminalの指し示す位置が同じか否かを判断し(ステップS40)、Yesの場合,バッファアンダーフローとして異常終了する。Read-IndexとRead-Terminalの指し示す位置が異なる場合,Read-Indexが指す位置からデータを読み出し(ステップS41)、Read-Indexの位置を1つ進める(ステップS42)。
11 Read-Index
12 Write-Terminal
13 Read-Terminal
Claims (6)
- 少なくとも2つのプロセスが並列に実行され、プロセス間でデータの通信を行う装置におけるプロセス間通信機構であって、
送信されるべきデータを書き込む領域と、受信されるべきデータを読み出す領域とを、インデックスで指定するリングバッファを備え、
前のプロセスの実行周期と次のプロセスの実行周期との間の空き時間において、該リングバッファを介して、プロセス間でデータをやり取りすることを特徴とするプロセス間通信機構。 - 前記リングバッファは、1回のプロセスの実行周期で送信されるデータ量の2倍のデータの格納容量を有することを特徴とする請求項1に記載のプロセス間通信機構。
- 前記プロセス間通信機構は、ソフトウェアをシミュレートするプロセスと、ハードウェアをシミュレートするプロセスとを並列に実行し、動作を検証するハードウェア/ソフトウェア協調検証装置における機構であることを特徴とする請求項1に記載のプロセス間通信機構。
- 前記プロセスの実行周期は、通信のためのデータコピー実行時間よりも充分長い所定の周期であることを特徴とする請求項3に記載のプロセス間通信機構。
- 前記プロセスの実行周期において、プロセスの実行の開始と終了において、前記少なくとも2つのプロセスについてバリア同期を取ることを特徴とする請求項1に記載のプロセス間通信機構。
- 前記データのやり取りは、プロセスの終了のバリア同期の後、プロセスの開始のバリア同期の前に行われることを特徴とする請求項5に記載のプロセス間通信機構。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008069851A JP5228552B2 (ja) | 2008-03-18 | 2008-03-18 | プロセス間通信機構 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008069851A JP5228552B2 (ja) | 2008-03-18 | 2008-03-18 | プロセス間通信機構 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009223788A true JP2009223788A (ja) | 2009-10-01 |
JP5228552B2 JP5228552B2 (ja) | 2013-07-03 |
Family
ID=41240463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008069851A Expired - Fee Related JP5228552B2 (ja) | 2008-03-18 | 2008-03-18 | プロセス間通信機構 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5228552B2 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07134728A (ja) * | 1993-11-10 | 1995-05-23 | Kofu Nippon Denki Kk | 論理シミュレータにおける同期装置と制御情報作成装置 |
JPH07210521A (ja) * | 1994-01-10 | 1995-08-11 | Mitsubishi Heavy Ind Ltd | リアルタイムシミュレーションシステム |
JPH09128351A (ja) * | 1995-10-27 | 1997-05-16 | Fujitsu Ltd | 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置 |
JPH1074214A (ja) * | 1996-08-30 | 1998-03-17 | Toshiba Corp | ハードウェア/ソフトウェア協調シミュレータ及びシミュレーション方法 |
JP2001188744A (ja) * | 1999-12-28 | 2001-07-10 | Kawasaki Heavy Ind Ltd | マイクロコンピュータ装置 |
JP2004094800A (ja) * | 2002-09-03 | 2004-03-25 | Toshiba Corp | プログラムシミュレーション装置およびプログラムシミュレーション方法 |
-
2008
- 2008-03-18 JP JP2008069851A patent/JP5228552B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07134728A (ja) * | 1993-11-10 | 1995-05-23 | Kofu Nippon Denki Kk | 論理シミュレータにおける同期装置と制御情報作成装置 |
JPH07210521A (ja) * | 1994-01-10 | 1995-08-11 | Mitsubishi Heavy Ind Ltd | リアルタイムシミュレーションシステム |
JPH09128351A (ja) * | 1995-10-27 | 1997-05-16 | Fujitsu Ltd | 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置 |
JPH1074214A (ja) * | 1996-08-30 | 1998-03-17 | Toshiba Corp | ハードウェア/ソフトウェア協調シミュレータ及びシミュレーション方法 |
JP2001188744A (ja) * | 1999-12-28 | 2001-07-10 | Kawasaki Heavy Ind Ltd | マイクロコンピュータ装置 |
JP2004094800A (ja) * | 2002-09-03 | 2004-03-25 | Toshiba Corp | プログラムシミュレーション装置およびプログラムシミュレーション方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5228552B2 (ja) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4529063B2 (ja) | システムシミュレータ、シミュレーション方法及びシミュレーションプログラム | |
JP5595633B2 (ja) | シミュレーション方法及びシミュレーション装置 | |
JP4975544B2 (ja) | シミュレーション装置及びプログラム | |
JP4667206B2 (ja) | マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法 | |
EP3105761B1 (en) | Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays | |
MX2012005183A (es) | Linea de espera de comandos para componente periferico. | |
JP2008065640A (ja) | シミュレーション装置およびそのシミュレーション制御方法 | |
WO2018218954A1 (zh) | 一种验证平台和验证方法、计算机存储介质 | |
JP2008310727A (ja) | シミュレーション装置及びシミュレーション方法 | |
US8237683B2 (en) | Touch panel interface system used on touch panel, touch device, and method thereof | |
JP2008282308A (ja) | 協調検証装置、協調検証方法、協調検証プログラム | |
US9804911B2 (en) | Concurrent validation of hardware units | |
JP2008282314A (ja) | シミュレータ、シミュレーション方法 | |
JP5228552B2 (ja) | プロセス間通信機構 | |
US7552269B2 (en) | Synchronizing a plurality of processors | |
TW201310241A (zh) | 全匯流排之交易層級模擬方法以快速與精確的爭用分析 | |
KR100606163B1 (ko) | 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법 | |
JP2005141532A (ja) | システムデバッグ装置 | |
JP2015170081A (ja) | シミュレーション装置及びシミュレーションプログラム | |
JP6020775B1 (ja) | シミュレーション装置 | |
JP2009223762A (ja) | 協調検証装置 | |
JP2012027952A (ja) | シミュレーション装置 | |
JP2000276502A (ja) | ソフトウエアシミュレータ | |
JP2006227668A (ja) | メモリモデルとプログラムと論理回路検証方法 | |
JP6119442B2 (ja) | シミュレーション装置、シミュレーション装置の動作方法およびシミュレーションプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101125 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120420 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120717 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121015 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20121022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121127 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130128 |
|
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: 20130219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130304 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160329 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5228552 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |