JP7095620B2 - 演算装置 - Google Patents
演算装置 Download PDFInfo
- Publication number
- JP7095620B2 JP7095620B2 JP2019029351A JP2019029351A JP7095620B2 JP 7095620 B2 JP7095620 B2 JP 7095620B2 JP 2019029351 A JP2019029351 A JP 2019029351A JP 2019029351 A JP2019029351 A JP 2019029351A JP 7095620 B2 JP7095620 B2 JP 7095620B2
- Authority
- JP
- Japan
- Prior art keywords
- synchronization
- core
- processing
- cpu
- information
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Description
同期判定部は、自コアが同期を伴う処理を実施中に、同期ポイントに到達すると、他コアが、同期ポイントとは異なる他の同期ポイントでの同期待ち状態であるか否かを判定するように構成される。
[1.実施形態の構成と本開示の構成と関係]
実施形態でのマイコン1A~1Dは本開示での演算装置に相当し、実施形態でのCPU10は本開示での演算部に相当する。また、実施形態での同期記録領域13Aは本開示での同期判定用領域に相当し、実施形態での退避用同期情報退避用BUFF13Bは本開示での退避用領域に相当する。
[2-1.構成]
本実施形態のマイコン1Aは、複数の演算部としての複数のCPU10A,10B,10X(以下、CPU10とも表記する。)を備え、複数のCPU10が同期を伴う並列処理を行うように構成された演算装置である。マイコン1Aは、同期を伴う並列処理が複数の同期ポイントを有する場合であっても、良好にデッドロックを抑制することができるように工夫されている。同期ポイントとは、同期を伴う複数の処理結果が統合されるポイントを表す。その詳細について以下に説明する。
共有リソース13は、複数のCPU10がそれぞれアクセスできるRAMとして構成される。共有リソース13には、同期記録領域13Aと、退避用BUFF13Bとを備える。同期記録領域13A及び退避用BUFF13Bは、何れもデータを記録可能に構成される。なお、同期記録領域13A及び退避用BUFF13Bに記録されるデータについては後述する。
[2-2.同期の説明]
ここで、同期について図2を用いて説明する。図2は、CPUa10Aと、CPUb10Bとがそれぞれ並列して処理を行う例を示すラダーチャートである。図2では、CPUa10Aが実施する処理Aによる処理結果と、CPUb10Bが実施する処理Bによる処理結果とを、CPUa10Aが実施する処理Cが利用する例を示している。
本実施形態のマイコン1Aでは、このようなデッドロックを抑制するために、図5に示す同期情報テーブル12AをROM12にて備え、各CPU10は、図6に示す同期処理を実施する。
このような同期処理を各CPU10が実施すると、例えば図8に示すように、デッドロックを抑制できる。すなわち、CPUb10Bにおいて、処理Bの同期ポイントに到達する前に、処理Dの割り込みが発生した場合であって、処理Aが処理Dよりも早く同期ポイントに到達する場合、CPUa10Aが同期待ち状態になる。このとき、同期記録領域13A内の同期情報が空であるため、S120で、処理Aに関する同期情報が同期記録領域13A内に記録される。
以上詳述した第1実施形態によれば、以下の効果を奏する。
(2a)本開示の一態様は、複数のCPU10を備え、各CPU10が同期を伴う並列処理を行うように構成されたマイコン1Aである。複数のCPU10のうちの1つを自コア、自コアを除く他のCPUのうちの自コアと同期ポイントで同期する処理を実施する他のCPUを他コアとする。
(2c)本開示の一態様は、共有リソース13において、同期記録領域13Aと、1又は複数の退避用BUFF13Bと、をさらに備える。同期記録領域13A及び退避用BUFF13Bは、何れもデータを記録可能に構成される。なお、同期記録領域13A及び退避用BUFF13Bは、共有リソース13外に配置されてもよい。
[3-1.第1実施形態との相違点]
第2実施形態は、基本的な構成は第1実施形態と同様であるため、相違点について以下に説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
第2実施形態のマイコン1Bでは、ROM12において、第1実施形態の同期情報テーブル12Aに換えて、図9に示すように、同期情報テーブル12Bを備える。同期情報テーブル12Bでは、各CPU10での後続処理IDが追加される。後続処理IDは、実施中の処理の後で実施されるべき処理に関する処理IDを示す。
次に、第2実施形態のマイコン1Bでは、第1実施形態の同期処理(図7)に代えて、図10に示す同期処理を実施する。なお、図10における同期処理では、S210の処理に続いて、S310及びS320の処理が追加される。図10における同期処理において、S310及びS320以外の処理は、第1実施形態の同期処理と同様である。また、第2実施形態では、各CPU10は、同期記録領域13A及び退避用BUFF13Bに同期情報を記録する際に、同期情報にCPUa後続処理ID、CPUb後続処理IDを含めるように構成される。
以上詳述した第2実施形態によれば、前述した第1実施形態の効果(2a)を奏し、さらに、以下の効果を奏する。
(3b)なお、上記第2実施形態では、同期情報テーブル12Bにて後続処理IDを追加したが、この構成に限られない。例えば、同期情報テーブルでは、後続処理IDではなく、実施中の処理の前提となる前提同期ポイントナンバを追加し、実施中の処理が前提同期ポイントナンバにて特定される処理の後に実施されるように管理してもよい。
[4-1.第1実施形態との相違点]
前述した第1実施形態では、共有リソース13にて1つの同期情報を記録可能な同期記録領域13A、及び複数の同期情報を記録可能な退避用BUFF13Bを備えた。これに対し、第3実施形態では、1つの同期情報を記録可能な同期記録領域13Aを複数備える点等で、第1実施形態と相違する。
第3実施形態のマイコン1Cは、図11に示すように、共有リソース13に、複数の同期記録領域13Aを備え、退避用BUFF13Bを備えない。第3実施形態のマイコン1Cは、第1実施形態の同期情報テーブル12Aに換えて、図11及び図12に示す同期情報テーブル12Cを備える。
次に、第3実施形態のCPU10が、第1実施形態の同期処理に代えて実施する同期処理について、図13のフローチャートを用いて説明する。
一方、CPU10は、S460で自処理の同期情報の優先度が低いと判定した場合には、S480へ移行し、自同期情報にて自CPU10の待ち状態を同期待ち状態に更新する。
[4-3.効果]
以上詳述した第3実施形態によれば、前述した第1実施形態の効果(2a)を奏し、さらに、以下の効果を奏する。
[5-1.第3実施形態との相違点]
前述した第3実施形態では、同期情報テーブル12Cにおいて、同期ポイント毎に、同期ポイントナンバ、同期情報ナンバを対応付けた。これに対し、第4実施形態の同期情報テーブル12Dでは、同期情報テーブル12Cが備える内容に加えて、前提同期情報ナンバが追加され、各CPU10が前提同期情報ナンバを考慮して処理を行う点で、第3実施形態と相違する。
第4実施形態の同期情報テーブル12Dは、図14に示すように、同期ポイント毎に、前提同期情報ナンバの欄を備える。前提同期情報ナンバは、先に実行されているべき処理を同期情報ナンバで示している。例えば、図14に示す同期ポイントナンバ2には、前提同期情報ナンバ5が記載されており、この記載は、同期情報ナンバ5に関する同期ポイントナンバ1の処理を先に実施するべきことを示す。換言すれば、前提同期情報ナンバは、処理の優先度を示している。
次に、第4実施形態のマイコン1Dでは、第3実施形態の同期処理(図13)に代えて、図15に示す同期処理を実施する。なお、図15における同期処理では、S460の処理に続いて、S510及びS520の処理が追加される。S510及びS520以外の処理は第3実施形態の同期処理と同様である。
以上詳述した第4実施形態によれば、前述した第1実施形態の効果(2a)を奏し、さらに、以下の効果を奏する。
以上、本開示の実施形態について説明したが、本開示は前述の実施形態に限定されることなく、種々変形して実施することができる。
(6b)上記実施形態では、退避用BUFF13Bに1つの同期情報が格納される例について説明したが、退避用BUFF13Bには、複数の同期情報が格納されてもよい。
Claims (6)
- 複数の演算部(10)を備え、前記複数の演算部が同期を伴う並列処理を行うように構成された演算装置(1A~1E)であって、
前記複数の演算部のうちの1つを自コア、前記自コアを除く他の演算部のうちの前記自コアと同期ポイントで同期する処理を実施する他の演算部を他コアとして、
前記自コアが同期を伴う処理を実施中に、前記同期ポイントに到達すると、前記他コアが、前記同期ポイントとは異なる他の同期ポイントでの同期待ち状態であるか否かを判定するように構成された同期判定部(S140)と、
前記他コアが、前記他の同期ポイントでの同期待ち状態である場合に、予め同期ポイント毎に対応付けられた優先度情報に従って、前記自コア或いは前記他コアが実施する処理をスリープさせ、処理をスリープさせる自コア或いは他コアに、他の処理を実施させるように構成されたスリープ指令部(S230,S260,S470,S490)と、
を備える演算装置。 - 請求項1に記載の演算装置であって、
任意の処理によるデータを格納可能に構成された共有リソースをさらに備え、
前記スリープ指令部は、前記自コア或いは前記他コアが実施する処理をスリープさせる際に、少なくとも、前記自コア及び前記他コアを特定するためのコア特定情報と、前記同期ポイントを特定するための同期特定情報とを含む同期情報を前記共有リソースに格納する
ように構成された演算装置。 - 請求項1又は請求項2に記載の演算装置であって、
データを記録可能に構成された同期判定用領域(13A)と、
データを記録可能に構成された1又は複数の退避用領域(13B)と、
をさらに備え、
前記自コアが同期を伴う処理を実施中に、前記同期ポイントに到達すると、少なくとも、前記自コア及び前記他コアを特定するためのコア特定情報と、前記同期ポイントを特定するための同期特定情報とを含む同期情報を、前記同期判定用領域に格納するように構成された同期格納部(S120)と、
前記同期格納部が前記同期情報を前記同期判定用領域に格納する際に、既に前記同期判定用領域内に他の同期情報が存在する場合に、前記同期格納部が前記同期情報を前記同期判定用領域に格納する前に、前記同期判定用領域内の他の同期情報を前記退避用領域に移動させる移動格納部(S220)と、
をさらに備え、
前記同期判定部は、前記自コアが同期を伴う処理を実施中に、前記同期ポイントに到達すると、前記他コアが、前記同期ポイントとは異なる他の同期ポイントでの同期待ち状態であるか否かを、少なくとも前記同期判定用領域におけるデータの有無によって判定する
ように構成された演算装置。 - 請求項3に記載の演算装置であって、
前記退避用領域は、複数備えられ、
前記移動格納部は、前記他の同期情報を前記退避用領域にLIFO方式で格納する
ように構成された演算装置。 - 請求項1から請求項3までのいずれか1項に記載の演算装置であって、
前記優先度情報には、複数の同期ポイント毎に、当該同期ポイントの優先度と、当該同期ポイントに関する処理の前に終了すべき処理を特定する情報と、が含まれており、
前記スリープ指令部は、前記優先度情報に、当該同期ポイントに関する処理の前に終了すべき処理を特定する情報が存在する場合、当該同期ポイントの優先度に拘わらず、当該同期ポイントに関する処理の前に終了すべき処理を特定する情報に従って、前記自コア或いは前記他コアが実施する処理をスリープさせる
ように構成された演算装置。 - 請求項1から請求項5までのいずれか1項に記載の演算装置であって、
前記複数の演算部から、任意の処理によるデータを格納可能に構成された共有リソースへの同時アクセスが生じる場合、予め設定された優先順位に従って処理を実施する
ように構成された演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019029351A JP7095620B2 (ja) | 2019-02-21 | 2019-02-21 | 演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019029351A JP7095620B2 (ja) | 2019-02-21 | 2019-02-21 | 演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020135524A JP2020135524A (ja) | 2020-08-31 |
JP7095620B2 true JP7095620B2 (ja) | 2022-07-05 |
Family
ID=72263315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019029351A Active JP7095620B2 (ja) | 2019-02-21 | 2019-02-21 | 演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7095620B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113176771B (zh) * | 2021-04-16 | 2023-04-14 | 重庆长安新能源汽车科技有限公司 | 车辆域控制器运行状态监控方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3144847B2 (ja) | 1991-08-29 | 2001-03-12 | エヌティエヌ株式会社 | 回転伝達装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63265336A (ja) * | 1987-04-22 | 1988-11-01 | Nec Corp | 共有資源の優先割り当て制御方式 |
JPH0640324B2 (ja) * | 1989-10-26 | 1994-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムおよびそのプロセス同期方法 |
JP6464982B2 (ja) * | 2015-10-07 | 2019-02-06 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
-
2019
- 2019-02-21 JP JP2019029351A patent/JP7095620B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3144847B2 (ja) | 1991-08-29 | 2001-03-12 | エヌティエヌ株式会社 | 回転伝達装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2020135524A (ja) | 2020-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3189139B2 (ja) | 情報転送システムおよび方法 | |
WO2011103825A2 (zh) | 多处理器系统负载均衡的方法和装置 | |
WO2010067492A1 (ja) | マルチプロセッサシステム及びその排他制御の調停方法 | |
JP2009015832A (ja) | アクセス間調停回路、半導体装置およびアクセス間調停方法 | |
US20070050527A1 (en) | Synchronization method for a multi-processor system and the apparatus thereof | |
JP7095620B2 (ja) | 演算装置 | |
TWI587218B (zh) | 記憶體事務層級模型模擬方法及系統 | |
JP2002304369A (ja) | バスシステム | |
JP4168281B2 (ja) | 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム | |
JP4843554B2 (ja) | インターフェイスボード、シミュレータ、同期方法、同期プログラム | |
JP2008146541A (ja) | Dma転送システム、dmaコントローラ及びdma転送方法 | |
JP2004152185A (ja) | 排他制御装置、排他制御方法、プログラム、及び記録媒体 | |
JP4335327B2 (ja) | 調停装置および方法 | |
JP2001175588A (ja) | バス制御装置 | |
JP2007052685A (ja) | マイクロコントローラ | |
JP2008108126A (ja) | データ転送制御装置及びそのバスアクセス調停方法 | |
US20230315573A1 (en) | Memory controller, information processing apparatus, and information processing method | |
JP5511538B2 (ja) | Cpu間通信システム及びcpu間通信方法 | |
EP3460671B1 (en) | Semiconductor device and program used in the semiconductor device | |
JP2010026575A (ja) | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム | |
JP2010044699A (ja) | 情報処理装置 | |
JP2004227484A (ja) | 情報処理装置およびメモリアクセス調停方法 | |
JP2007241629A (ja) | 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム | |
JPH09218859A (ja) | マルチプロセッサ制御システム | |
JPH04128957A (ja) | マルチプロセッサシステムにおける共有資源の排他制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210716 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220428 |
|
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: 20220524 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220606 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7095620 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |