JP5423876B2 - 検証支援プログラム、検証支援装置、および検証支援方法 - Google Patents
検証支援プログラム、検証支援装置、および検証支援方法 Download PDFInfo
- Publication number
- JP5423876B2 JP5423876B2 JP2012506731A JP2012506731A JP5423876B2 JP 5423876 B2 JP5423876 B2 JP 5423876B2 JP 2012506731 A JP2012506731 A JP 2012506731A JP 2012506731 A JP2012506731 A JP 2012506731A JP 5423876 B2 JP5423876 B2 JP 5423876B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- execution
- generation
- target
- target thread
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/458—Synchronisation, e.g. post-wait, barriers, locks
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
(マルチコアプロセッサシステムモデルに関する回路情報)
図2は、マルチコアプロセッサシステムモデルに関する回路情報を示す説明図である。回路情報200は、ESL(Electronic System Level)用のモデルである。そして、回路情報200は、マルチコアプロセッサモデルを備えるマルチコアプロセッサシステムモデルの各CPUモデルや該各CPUモデルの接続関係などがSystemCおよびXML(Extensible Markup Language)スクリプトによるハードウェア記述で表されている。
図3は、検証対象ソフトウェアの一例を示す説明図である。検証対象ソフトウェア300では、プログラムの一例を示している。検証支援装置が、マルチコアプロセッサシステムを用いて検証対象ソフトウェア300をシミュレーションすることで、検証対象ソフトウェア300内にコーディングされている処理(スレッド)が第1のCPUモデル201(または第2のCPUモデル202)に割り当てられる。
図5は、データ依存テーブルの一例を示す説明図である。データ依存テーブル500では、親スレッドと該親スレッドにより生成される子スレッドとにデータの依存関係があるか否かと、親スレッドと子スレッドとにセマフォがあるか否かを示すテーブルである。データ依存テーブル500は、子スレッドごとに用意されていることとする。なお、データ依存テーブル500は、コンピュータがアクセス可能な記憶装置に記憶されている。
図6は、実施の形態1にかかる検証支援装置のハードウェア構成を示すブロック図である。図6において、検証支援装置600は、CPU(Central Processing Unit)601と、ROM(Read‐Only Memory)602と、RAM(Random Access Memory)603と、磁気ディスクドライブ604と、磁気ディスク605と、光ディスクドライブ606と、光ディスク607と、ディスプレイ608と、I/F(Interface)609と、キーボード610と、マウス611と、スキャナ612と、プリンタ613と、を備えている。また、各構成部はバス615によってそれぞれ接続されている。
図7は、検証支援装置600の機能的構成を示すブロック図である。検証支援装置600は、検出部701と、割り当て部702と、保持部703と、実行制御部704と、一致判断部705と、時刻判断部706と、設定部707と、調整部708と、出力部709と、を含む構成である。各機能(検出部701〜出力部709)は、具体的には、たとえば、図6に示したROM602、RAM603、磁気ディスク605、光ディスク607などの記憶装置に記憶されたプログラムをCPU601に実行させることにより、または、I/F609により、各機能を実現する。
・第2の実行結果:a=3,b=4,c=3,d=3,e=0
・第2の実行結果:a=3,b=4,c=3,d=3,e=0
・第2の実行結果:a=3,b=4,c=3,d=3,e=−3
図12は、検証支援装置600による検証処理手順の一例を示すフローチャートである。まず、検証支援装置600が、検証対象ソフトウェアを実行し(ステップS1201)、検出部701により、実行中のスレッド(生成元スレッド)から対象スレッドの生成命令を検出したか否かを判断する(ステップS1202)。検証支援装置600が、対象スレッドの生成命令を検出していないと判断した場合(ステップS1202:No)、ステップS1202へ戻る。一方、検証支援装置600が、対象スレッドの生成命令を検出したと判断した場合(ステップS1202:Yes)、対象スレッドがセーフスレッドに登録されているか、またはセマフォの必要ありと判断されたか否かを判断する(ステップS1203)。セーフスレッドとは、セマフォの必要がないスレッドを示している。
つぎに、実施の形態2では、マルチコアプロセッサシステムにおいてスケジューラによる実施の形態1で作成されたメモリ管理テーブルを用いてスレッド間で依存関係のあるデータにロックをかけるか否かの制御例について説明する。なお、実施の形態2のマルチコアプロセッサシステムにおいて、マルチコアプロセッサとは、コアが複数搭載されたプロセッサである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。なお、実施の形態2では、説明を単純化するため、シングルコアのプロセッサが並列されているプロセッサ群を例に挙げて説明する。
図17は、実施の形態2にかかるマルチコアプロセッサシステムのハードウェア構成を示す説明図である。マルチコアプロセッサシステム1700は、CPU1701およびCPU1702と、共有メモリ1704とを備えている。各構成部はバス1703により接続されている。
図18は、実施の形態2にかかるスケジューラ1721の機能的構成を示すブロック図である。スケジューラ1721は、受付部1801と、排他判断部1802と、遅延時刻算出部1803と、終了時刻算出部1804と、時刻判断部1805と、実行制御部1806と、を含む構成である。各機能(受付部1801〜実行制御部1806)は、具体的には、たとえば、共有メモリ1704に記憶されたスケジューラ1721をロードしてCPU1701に実行させることにより、各機能を実現する。
図22は、スケジューラ1721による制御処理手順を示すフローチャートである。まず、スケジューラ1721が、受付部1801により、対象スレッドの生成指示を受け付けたか否かを判断し(ステップS2201)、対象スレッドの生成指示を受け付けていないと判断した場合(ステップS2201:No)、ステップS2201へ戻る。一方、スケジューラ1721が、対象スレッドの生成指示を受け付けたと判断した場合(ステップS2201:Yes)、スレッドの生成指示が受け付けられたスレッドを割り当てるCPUを決定する(ステップS2202)。
201 第1のCPUモデル
202 第2のCPUモデル
300 検証対象ソフトウェア
600 検証支援装置
701 検出部
702 割り当て部
703 保持部
704 実行制御部
705 一致判断部
706 時刻判断部
707 設定部
708 調整部
709 出力部
1700 マルチコアプロセッサシステム
1721 スケジューラ
1802 排他判断部
1803 遅延時刻算出部
1804 終了時刻算出部
1805 時刻判断部
1806 実行制御部
Claims (3)
- 第1のコアモデルと第2のコアモデルを備えるマルチコアプロセッサモデルを用いて検証対象ソフトウェアを模擬するコンピュータに、
前記検証対象ソフトウェアの模擬中に前記第1のコアモデルに割り当てられた生成元スレッドから対象スレッドの生成命令を検出する検出工程と、
前記検出工程により前記対象スレッドの生成命令が検出されると、前記対象スレッドの生成命令の一命令前における前記生成元スレッドの実行状態を保持する保持工程と、
前記検出工程により前記対象スレッドの生成命令が検出された場合、前記第2のコアモデルに前記対象スレッドを割り当てる割り当て工程と、
前記割り当て工程により前記第2のコアモデルへ前記対象スレッドが割り当てられると、前記対象スレッドを所定遅延時間遅延させてから実行する実行制御工程と、
前記第1のコアモデル上で、マルチスレッド環境において前記対象スレッドを実行させた場合の前記生成元スレッドの第1の実行結果と、前記実行制御工程により遅延させて前記対象スレッドを実行させた場合の前記生成元スレッドの第2の実行結果とが一致するか否かを判断する一致判断工程と、
前記一致判断工程により前記第1の実行結果と前記第2の実行結果とが一致すると判断された場合、遅延させた場合の前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降であるか否かを判断する時刻判断工程と、
前記時刻判断工程により前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降でないと判断された場合、前記保持工程により保持された前記生成元スレッドの実行状態に設定する設定工程と、
前記所定遅延時間を所定時間長くする調整工程と、
前記一致判断工程により前記第1の実行結果と前記第2の実行結果とが不一致であると判断された場合、前記対象スレッドに排他制御が必要な旨の情報を出力し、前記時刻判断工程により前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降であると判断された場合、前記対象スレッドに排他制御が必要でない旨の情報を出力する出力工程と、
を実行させ、
前記実行制御工程は、
前記設定工程による設定後の生成元スレッドを実行し、前記対象スレッドを前記調整工程により長くされた前記所定遅延時間遅延させてから実行することを特徴とする検証支援プログラム。 - 第1のコアモデルと第2のコアモデルを備えるマルチコアプロセッサモデルを用いて検証対象ソフトウェアを模擬中に、前記第1のコアモデルに割り当てられた生成元スレッドから対象スレッドの生成命令を検出する検出手段と、
前記検出手段により前記対象スレッドの生成命令が検出されると、前記対象スレッドの生成命令の一命令前における前記生成元スレッドの実行状態を保持する保持手段と、
前記検出手段により前記対象スレッドの生成命令が検出された場合、前記第2のコアモデルに前記対象スレッドを割り当てる割り当て手段と、
前記割り当て手段により前記第2のコアモデルへ前記対象スレッドが割り当てられると、前記対象スレッドを所定遅延時間遅延させてから実行する実行制御手段と、
前記第1のコアモデル上で、マルチスレッド環境において前記対象スレッドを実行させた場合の前記生成元スレッドの第1の実行結果と、前記実行制御手段により遅延させて前記対象スレッドを実行させた場合の前記生成元スレッドの第2の実行結果とが一致するか否かを判断する一致判断手段と、
前記一致判断手段により前記第1の実行結果と前記第2の実行結果とが一致すると判断された場合、遅延させた場合の前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降であるか否かを判断する時刻判断手段と、
前記時刻判断手段により前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降でないと判断された場合、前記保持手段により保持された前記生成元スレッドの実行状態に設定する設定手段と、
前記所定遅延時間を所定時間長くする調整手段と、
前記一致判断手段により前記第1の実行結果と前記第2の実行結果とが不一致であると判断された場合、前記対象スレッドに排他制御が必要な旨の情報を出力し、前記時刻判断手段により前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降であると判断された場合、前記対象スレッドに排他制御が必要でない旨の情報を出力する出力手段と、
を有し、
前記実行制御手段は、
前記設定手段による設定後の生成元スレッドを実行し、前記対象スレッドを前記調整手段により長くされた前記所定遅延時間遅延させてから実行することを特徴とする検証支援装置。 - 第1のコアモデルと第2のコアモデルを備えるマルチコアプロセッサモデルを用いて検証対象ソフトウェアを模擬するコンピュータが、
前記検証対象ソフトウェアの模擬中に前記第1のコアモデルに割り当てられた生成元スレッドから対象スレッドの生成命令を検出する検出工程と、
前記検出工程により前記対象スレッドの生成命令が検出されると、前記対象スレッドの生成命令の一命令前における前記生成元スレッドの実行状態を保持する保持工程と、
前記検出工程により前記対象スレッドの生成命令が検出された場合、前記第2のコアモデルに前記対象スレッドを割り当てる割り当て工程と、
前記割り当て工程により前記第2のコアモデルへ前記対象スレッドが割り当てられると、前記対象スレッドを所定遅延時間遅延させてから実行する実行制御工程と、
前記第1のコアモデル上で、マルチスレッド環境において前記対象スレッドを実行させた場合の前記生成元スレッドの第1の実行結果と、前記実行制御工程により遅延させて前記対象スレッドを実行させた場合の前記生成元スレッドの第2の実行結果とが一致するか否かを判断する一致判断工程と、
前記一致判断工程により前記第1の実行結果と前記第2の実行結果とが一致すると判断された場合、遅延させた場合の前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降であるか否かを判断する時刻判断工程と、
前記時刻判断工程により前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降でないと判断された場合、前記保持工程により保持された前記生成元スレッドの実行状態に設定する設定工程と、
前記所定遅延時間を所定時間長くする調整工程と、
前記一致判断工程により前記第1の実行結果と前記第2の実行結果とが不一致であると判断された場合、前記対象スレッドに排他制御が必要な旨の情報を出力し、前記時刻判断工程により前記対象スレッドの実行開始時刻が前記生成元スレッドの実行終了時刻以降であると判断された場合、前記対象スレッドに排他制御が必要でない旨の情報を出力する出力工程と、
を実行し、
前記実行制御工程は、
前記設定工程による設定後の生成元スレッドを実行し、前記対象スレッドを前記調整工程により長くされた前記所定遅延時間遅延させてから実行することを特徴とする検証支援方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/055290 WO2011118014A1 (ja) | 2010-03-25 | 2010-03-25 | 検証支援プログラム、制御プログラム、検証支援装置、マルチコアプロセッサシステム、検証支援方法、および制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011118014A1 JPWO2011118014A1 (ja) | 2013-07-04 |
JP5423876B2 true JP5423876B2 (ja) | 2014-02-19 |
Family
ID=44672605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012506731A Expired - Fee Related JP5423876B2 (ja) | 2010-03-25 | 2010-03-25 | 検証支援プログラム、検証支援装置、および検証支援方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5423876B2 (ja) |
WO (1) | WO2011118014A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778115A (zh) * | 2014-01-09 | 2015-07-15 | 北大方正集团有限公司 | 互斥检测方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5411381B1 (ja) * | 2013-06-03 | 2014-02-12 | 株式会社 ディー・エヌ・エー | サーバ検査システム、サーバ検査装置およびサーバ検査プログラム |
JP2017049627A (ja) * | 2015-08-31 | 2017-03-09 | 日立オートモティブシステムズ株式会社 | 検証システム、検証装置、及び、車両制御装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0561734A (ja) * | 1991-08-30 | 1993-03-12 | Nippon Telegr & Teleph Corp <Ntt> | 並列プログラムの非決定的動作テスト方法 |
JPH05233323A (ja) * | 1992-02-21 | 1993-09-10 | Toshiba Corp | 並行プログラムのデバッグ支援装置 |
JP2009238176A (ja) * | 2008-03-28 | 2009-10-15 | Toshiba Corp | 情報処理装置およびプログラムの検証方法 |
-
2010
- 2010-03-25 WO PCT/JP2010/055290 patent/WO2011118014A1/ja active Application Filing
- 2010-03-25 JP JP2012506731A patent/JP5423876B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0561734A (ja) * | 1991-08-30 | 1993-03-12 | Nippon Telegr & Teleph Corp <Ntt> | 並列プログラムの非決定的動作テスト方法 |
JPH05233323A (ja) * | 1992-02-21 | 1993-09-10 | Toshiba Corp | 並行プログラムのデバッグ支援装置 |
JP2009238176A (ja) * | 2008-03-28 | 2009-10-15 | Toshiba Corp | 情報処理装置およびプログラムの検証方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778115A (zh) * | 2014-01-09 | 2015-07-15 | 北大方正集团有限公司 | 互斥检测方法及装置 |
CN104778115B (zh) * | 2014-01-09 | 2017-08-25 | 北大方正集团有限公司 | 互斥检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2011118014A1 (ja) | 2011-09-29 |
JPWO2011118014A1 (ja) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748240B2 (en) | Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models | |
JP4667206B2 (ja) | マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法 | |
CN101681272B (zh) | 使用事务来并行化顺序框架 | |
US8191046B2 (en) | Checking transactional memory implementations | |
US8990062B2 (en) | Method and program for estimating operation of program | |
US10387605B2 (en) | System and method for managing and composing verification engines | |
JP6666555B2 (ja) | 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム | |
JP5423876B2 (ja) | 検証支援プログラム、検証支援装置、および検証支援方法 | |
US9218273B2 (en) | Automatic generation of a resource reconfiguring test | |
Khasanov et al. | Implicit data-parallelism in Kahn process networks: Bridging the MacQueen Gap | |
KR20130017923A (ko) | 프로그램 분석 장치 및 분석용 프로그램을 기록한 컴퓨터 판독 가능한 저장매체 | |
Busnot et al. | Standard-compliant parallel SystemC simulation of loosely-timed transaction level models | |
Schubert et al. | Solutions to IBM POWER8 verification challenges | |
US8352234B2 (en) | Model generation based on a constraint and an initial model | |
Palmer et al. | Gauss: A framework for verifying scientific computing software | |
WO2021184031A2 (en) | Pseudorandom thread generation | |
US20100070979A1 (en) | Apparatus and Methods for Parallelizing Integrated Circuit Computer-Aided Design Software | |
JP2010049630A (ja) | シミュレーション制御プログラム、シミュレーション制御装置、およびシミュレーション制御方法 | |
Jia et al. | VeriLin: A Linearizability Checker for Large-Scale Concurrent Objects | |
JP4997144B2 (ja) | マルチタスク処理装置およびその方法 | |
Bajunaid et al. | Analytic models of checkpointing for concurrent component-based software systems | |
Stitt et al. | Thread warping: Dynamic and transparent synthesis of thread accelerators | |
US11972193B1 (en) | Automatic elastic CPU for physical verification | |
WO2011114478A1 (ja) | 生成方法、スケジューリング方法、生成プログラム、スケジューリングプログラム、生成装置、および情報処理装置 | |
WO2022144973A1 (ja) | スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130409 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130610 |
|
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: 20131029 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131111 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5423876 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |