JP2008293368A - マルチプロセッサシステム、排他制御方法、車両用電子制御ユニット - Google Patents
マルチプロセッサシステム、排他制御方法、車両用電子制御ユニット Download PDFInfo
- Publication number
- JP2008293368A JP2008293368A JP2007139555A JP2007139555A JP2008293368A JP 2008293368 A JP2008293368 A JP 2008293368A JP 2007139555 A JP2007139555 A JP 2007139555A JP 2007139555 A JP2007139555 A JP 2007139555A JP 2008293368 A JP2008293368 A JP 2008293368A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- cpu core
- rmw
- stored
- 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
Abstract
【解決手段】CPUコア11aがアクセスするデータの第1データIDを格納する第1データIDレジスタ12aと、CPUコア11bがアクセスするデータの第2データIDを格納する第2データIDレジスタ12bと、予め関連する複数のデータに、少なくとも一部が一致するデータIDを対応づけたデータテーブル22を記憶する、複数のCPUコアが共有するデータテーブル記憶手段10と、第1データIDレジスタ12aに格納された第1データIDと第2データIDレジスタ12bに格納された第2データIDを比較するデータID比較手段16と、データID比較手段による比較結果が一致を示す場合、CPUコア11aとCPUコア11bのいずれか一方はデータテーブル22へのアクセスを保留することを特徴とする。
【選択図】図1
Description
図1は、本実施形態のマルチプロセッサシステム(以下、MPSという)100の概略構成図を示す。本実施形態のMPS100は、関連する複数のデータを関連づけるようプログラム21に記述し、コンパイラによって関連する複数のデータに少なくとも一部が一致するデータIDが付与されるようにコンパイルする。CPUコア11a、11bがデータにアクセスする時には該データのデータIDを使用IDレジスタ12a、12bに格納しておき、いずれかのCPUコア11a、11bがデータにアクセスする場合、使用IDレジスタ12aのデータIDと使用IDレジスタ12bのデータIDを比較して一致する場合には、CPUコア11a又は11bはアクセスを保留する。CPUコア11a、11bのいずれか一方が同じデータIDのデータを処理している間は、他方が同じデータIDのデータにアクセスできないので、関連する複数のデータの同時性を確保することができる。
まず、データIDについて説明する。図2は、RAM10に記憶されたデータテーブル22の一例を示す。データテーブル22は、プログラム21に含まれておりプログラム21をRAM10に展開する際に同時に展開される。なお、データそのものでなくデータのアドレスを記憶していてもよい。
struct {
float a;
float b;
}st_A , st_B;
float a、float bは、C言語では構造体のメンバと呼ばれ、変数st_A.aとst_A.b、st_B.aとst_B.bをそれぞれ関連付けて扱うことを可能にする。
float ary[2]
配列arreyの宣言により、array[0]に格納される変数とarray[1]に格納される変数を関連付けて扱うことが可能となる、
また、構造体や配列に他の変数を関連付けることができる。例えば、構造体st_A、st_B に変数data_Xを関連付ける場合、次のように記述する。
struct {
float a;
float b;
float c;
}st_A ;
float data_X;
int main() {
st_A.c = data_X;
かかる書式を予め定めておき当該書式に対し同じデータID又は一部が一致するデータIDを付与するようにコンパイルルールが設定されたコンパイラを用いてコンパイルすることで、所定の書式で記述された変数に対しては、同じデータID又は一部が一致するデータIDを付与するようにコンパイルすることができる。図2では、変数st_A.aとst_A.b、はいずれもデータIDが等しく(図では10)、st_B.aとst_B.bはいずれもデータIDが等しく(図では20)、array[0]に格納される変数とarray[1]に格納される変数はいずれもデータIDが等しい(図では22)。また、構造体st_Aに関連付けられた変数data_XのデータID「11」はst_AのデータID「10」と一部が一致している。
使用IDレジスタ12a、12bを用いた、関連した複数データの同時性の確保について説明する。図3は、同時性を確保する処理において各レジスタに格納されるデータIDの遷移図を示す。
使用IDレジスタ12a、12b、及び、使用RMWIDレジスタ13a、13bを用いたRMW処理時の排他処理について説明する。
RMW_start
RMW処理(対象変数)
RMW_end
また、CPUコア11a、11bはRMW_start、RMW_end、を検出するRMW検出手段23a、23bをそれぞれ備える。CPUコア11a、11bは、RMW_startを検出すると、RMW処理の対象変数のデータIDを使用IDレジスタ12a、12b、使用RMWIDレジスタ13a、13bに格納する。なお、各RMW処理と対象変数はコンパイル時に対応づけられている。
RMW_start
RMW処理(対象変数) RMW_start
RMW_end RMW処理(対象変数)
RMW_end
この場合、CPUコア11aが先に対象変数を読み込むと共に書き込むが、その後にCPUコア11bが同じ対象変数を読み込みまた最後に書き込むため、対象変数の整合性の確保が困難となる。このため、例えば次のようにアクセスを制限する。
A.使用IDレジスタ12aと使用IDレジスタ12bのデータIDが一致する場合は、CPUコア11a、11bのRAM10へのアクセスを禁止する。
B.但し、以下の場合はアクセスを許可する。
図5、6は、MPS100が同時性を確保し、また、RMW処理時に排他処理する手順を示すフローチャート図を示す。図5の処理は、例えばイグニッションオン等によりMPS100が起動するとスタートする。
11a、11b CPUコア
12a、12b 使用IDレジスタ
13a、13b 使用RMWIDレジスタ
14 処理分配回路
15 ROM
16、17、18、19、20 比較回路
21 プログラム
22 データテーブル
23a、23b RMW検出手段
100 マルチプロセッサシステム
Claims (6)
- 複数のCPUコアが並行してプログラムを実行するマルチプロセッサシステムにおいて、
第1CPUコアがアクセスするデータの第1データIDを格納する第1データIDレジスタと、第2CPUコアがアクセスする前記データの第2データIDを格納する第2データIDレジスタと、
予め関連する複数の前記データに、少なくとも一部が一致するデータIDを対応づけたデータテーブルを記憶する、複数の前記CPUコアが共有するデータテーブル記憶手段と、
第1データIDレジスタに格納された第1データIDと第2データIDレジスタに格納された第2データIDを比較するデータID比較手段と、
前記データID比較手段による比較結果が一致を示す場合、第1CPUコアと第2CPUコアのいずれか一方は前記データテーブルへのアクセスを保留する、
ことを特徴とするマルチプロセッサシステム。 - 前記データID比較手段は、第1データIDと第2データIDの一部が一致する場合、第1データIDと第2データIDが一致するとの比較結果を出力する、
ことを特徴とする請求項1記載のマルチプロセッサシステム。 - 前記データIDは、前記データが記述されたソースコードをコンパイルするコンパイラにより付与される、
ことを特徴とする請求項2記載のマルチプロセッサシステム。 - CPUコア毎に設けられた、所定処理の開始を検出する検出手段と、
第1CPUコアの前記検出手段が前記所定処理の開始を検出した場合、第1CPUコアが前記所定処理にてアクセスする対象変数の第1対象データIDを格納する第1所定処理データIDレジスタと、
第2CPUコアの前記検出手段が前記所定処理の開始を検出した場合、第2CPUコアが前記所定処理にてアクセスする対象変数の第2対象データIDを格納する第2所定処理データIDレジスタと、
第1データIDレジスタに格納された第1データIDと、第2所定処理データIDレジスタに格納された第2対象データIDとを比較する比較手段Aと、
第2データIDレジスタに格納された第2データIDと、第1所定処理データIDレジスタに格納された第1対象データIDが一致するか否かを判定する比較手段Bと、を有し、
第1CPUコアは、第1CPUコアが書き込み命令を実行する場合であって、かつ、比較手段Aによる比較結果が一致を示す場合、前記書き込み命令の実行を保留し、
第2CPUコアは、第2CPUコアが書き込み命令を実行する場合であって、かつ、判定手段Bによる比較結果が一致を示す場合、前記書き込み命令の実行を保留する、
ことを特徴とする請求項1記載のマルチプロセッサシステム。 - 第1CPUコアがアクセスするデータの第1データIDを格納する第1データIDレジスタと、
第2CPUコアがアクセスする前記データの第2データIDを格納する第2データIDレジスタと、
予め関連する複数の前記データに、少なくとも一部が一致するデータIDを対応づけたデータテーブルを記憶するた、複数の前記CPUコアが共有するデータテーブル記憶手段と、を有する、マルチプロセッサシステムの排他制御方法であって、
データID比較手段が、第1データIDレジスタに格納された第1データIDと第2データIDレジスタに格納された第2データIDを比較するステップと、
前記ステップの比較結果が一致を示す場合、第1CPUコアと第2CPUコアのいずれか一方は、前記データテーブルへのアクセスを保留するステップと、
を有することを特徴とするマルチプロセッサシステムの排他制御方法。 - 請求項1〜4いずれか記載のマルチプロセッサシステムを搭載した車両用電子制御ユニット。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007139555A JP4941103B2 (ja) | 2007-05-25 | 2007-05-25 | マルチプロセッサシステム、排他制御方法、車両用電子制御ユニット |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007139555A JP4941103B2 (ja) | 2007-05-25 | 2007-05-25 | マルチプロセッサシステム、排他制御方法、車両用電子制御ユニット |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008293368A true JP2008293368A (ja) | 2008-12-04 |
JP4941103B2 JP4941103B2 (ja) | 2012-05-30 |
Family
ID=40168012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007139555A Expired - Fee Related JP4941103B2 (ja) | 2007-05-25 | 2007-05-25 | マルチプロセッサシステム、排他制御方法、車両用電子制御ユニット |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4941103B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016037157A (ja) * | 2014-08-07 | 2016-03-22 | 本田技研工業株式会社 | 車両用制御装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10187527A (ja) * | 1996-07-01 | 1998-07-21 | Sun Microsyst Inc | アクセス競合を防ぐ装置および方法 |
JPH1115793A (ja) * | 1997-05-28 | 1999-01-22 | Internatl Business Mach Corp <Ibm> | 資源の保全性を保護する方法 |
JP2000003302A (ja) * | 1998-06-15 | 2000-01-07 | Hitachi Ltd | 共有メモリ排他アクセス制御方法 |
JP2003296128A (ja) * | 2002-03-29 | 2003-10-17 | Fujitsu Ltd | スレッド実行装置 |
JP2004054906A (ja) * | 2003-05-21 | 2004-02-19 | Hitachi Ltd | メモリアクセス方法およびその実施コンピュータシステム |
-
2007
- 2007-05-25 JP JP2007139555A patent/JP4941103B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10187527A (ja) * | 1996-07-01 | 1998-07-21 | Sun Microsyst Inc | アクセス競合を防ぐ装置および方法 |
JPH1115793A (ja) * | 1997-05-28 | 1999-01-22 | Internatl Business Mach Corp <Ibm> | 資源の保全性を保護する方法 |
JP2000003302A (ja) * | 1998-06-15 | 2000-01-07 | Hitachi Ltd | 共有メモリ排他アクセス制御方法 |
JP2003296128A (ja) * | 2002-03-29 | 2003-10-17 | Fujitsu Ltd | スレッド実行装置 |
JP2004054906A (ja) * | 2003-05-21 | 2004-02-19 | Hitachi Ltd | メモリアクセス方法およびその実施コンピュータシステム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016037157A (ja) * | 2014-08-07 | 2016-03-22 | 本田技研工業株式会社 | 車両用制御装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4941103B2 (ja) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7434032B1 (en) | Tracking register usage during multithreaded processing using a scoreboard having separate memory regions and storing sequential register size indicators | |
JP4888272B2 (ja) | ソフトウェアのシミュレーション方法、ソフトウェアのシミュレーションのためのプログラム、及びソフトウェアのシミュレーション装置 | |
JP5044387B2 (ja) | 情報処理装置及びそのスタックポインタ更新方法 | |
CN1799030A (zh) | 用于确定访问许可的方法和设备 | |
JP2014532221A (ja) | 乳幼児のためのインタラクションサービスを提供する装置及び方法、これを利用したシステム | |
CN103329102A (zh) | 多处理器系统 | |
JP2015518605A (ja) | 安全アプリケーションのための機能アーキテクチャパターン | |
JP4941103B2 (ja) | マルチプロセッサシステム、排他制御方法、車両用電子制御ユニット | |
WO2012070137A1 (ja) | プロセッサ、電子制御装置、作成プログラム | |
US7191359B2 (en) | Fail-safe controller | |
JP3965784B2 (ja) | 共有メモリ排他アクセス制御方法 | |
JP5999216B2 (ja) | データ処理装置 | |
JP6512087B2 (ja) | 車両用制御装置 | |
JP3458796B2 (ja) | 割込命令チェック装置及び記録媒体 | |
JP7139633B2 (ja) | 並列化方法、並列化ツール、及びマルチコアマイコン | |
JP2009238176A (ja) | 情報処理装置およびプログラムの検証方法 | |
JP2009223435A (ja) | データ記憶方法及び装置、並びにプログラム | |
US20120265904A1 (en) | Processor system | |
JPS62168229A (ja) | システム構成自動認識処理方法 | |
WO2023171443A1 (ja) | 電子制御装置及び認証方法 | |
CN112364600B (zh) | 一种处理器微架构设计验证方法 | |
JP2008176731A (ja) | マルチプロセッサシステム | |
JP2023009818A (ja) | 車両用電子制御装置及び車両用電子制御装置による制御方法 | |
US20210357285A1 (en) | Program Generation Apparatus and Parallel Arithmetic Device | |
JP2020004448A (ja) | 自動車用電子制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090723 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120125 |
|
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: 20120131 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120213 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4941103 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150309 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |