JP6536441B2 - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
JP6536441B2
JP6536441B2 JP2016052945A JP2016052945A JP6536441B2 JP 6536441 B2 JP6536441 B2 JP 6536441B2 JP 2016052945 A JP2016052945 A JP 2016052945A JP 2016052945 A JP2016052945 A JP 2016052945A JP 6536441 B2 JP6536441 B2 JP 6536441B2
Authority
JP
Japan
Prior art keywords
master
priority
access
master element
core
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
JP2016052945A
Other languages
English (en)
Other versions
JP2017167849A (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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2016052945A priority Critical patent/JP6536441B2/ja
Publication of JP2017167849A publication Critical patent/JP2017167849A/ja
Application granted granted Critical
Publication of JP6536441B2 publication Critical patent/JP6536441B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

本発明は、演算のための複数のコアを備えた制御装置に関する。
近年、複数の中央演算処理装置(CPU)が一つのパッケージに格納されたマルチコアプロセッサが利用されつつある。マルチコアプロセッサでは、複数のコア間で処理の同期を行う際にビジーウェイトを用いて相手コアの処理完了を待ち合わせる。相手コアの処理の完了は、コア間で共有するフラグ変数が所定の値に更新されることを以って判断される。ビジーウェイトで待ち合わせる場合、待つ側のコアは、当該フラグ変数をループ処理によって繰り返しリードしつつ、フラグ変数が所定の値に更新されるのを待つことになる。
ビジーウェイトを実行して相手コアを待ち合わせているコアは、フラグ変数を繰り返しリードするため、フラグ変数が記憶されているメモリへのアクセス頻度が非常に高くなる。メモリには、同期に供されるフラグ変数以外にも本来の制御に用いられる変数も記憶されているが、メモリに同時にアクセスできるコアは通常一つであるため、ビジーウェイトを実行中のコアがメモリを占有してしまう虞がある。
特許文献1には、アクセス優先度を用いて複数のコアからのアクセスを調停する方法が開示されている。これによれば、あるコアがメモリにアクセスを試みた際にアクセスを完遂できなかった場合において、当該コアのアクセス優先度を上げたうえで、次回アクセス時に優先的にアクセスできるようにする。
特開2004−178056号公報
しかしながら、特許文献1に記載の発明では、優先度が上げられたアクセスは2回目以降であり、性能のボトルネックになりやすいメモリレイテンシは大きくなってしまう虞がある。
なお、他の発明として、ビジーウェイトを実行するコアを省電力状態にしてアクセス頻度を抑制する技術も開示されているが、省電力回路はアナログ回路を含むため回路規模が大きくなりがちであり、また、省電力状態から復帰する際の安定化時間を要してしまう。
本発明は、上記問題点を鑑みてなされたものであり、レイテンシの増大を抑制しつつ複数コアのアクセスを調停することができる制御装置を提供することを目的とする。
ここに開示される発明は、上記目的を達成するために以下の技術的手段を採用する。なお、特許請求の範囲およびこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
上記目的を達成するために、本発明は、システムバス(30)を介して制御対象たる少なくとも一つのスレーブエレメント(20)に接続され、演算を実行する複数のマスタエレメント(10)と、マスタエレメントからスレーブエレメントへのアクセスの優先度情報(41)が記憶される優先度記憶部(40)と、優先度情報に基づいてマスタエレメントからスレーブエレメントへのアクセスを調停するバスアービタ(31)と、マスタエレメント間の同期を行うための同期データ(21b)が記憶された同期部(21a)と、を備え、マスタエレメントのうち、第1のマスタエレメントが第2のマスタエレメントの待ち合わせをするとき、第1のマスタエレメントは、第2のマスタエレメントによる同期データの更新を待つ制御装置であって、第1のマスタエレメントは、同期データの更新があるまで、第1のマスタエレメントのアクセス優先度を下げる、もしくは第2のマスタエレメントのアクセス優先度を上げる、もしくは、第1のマスタエレメントのアクセス優先度を下げ、且つ、第2のマスタエレメントのアクセス優先度を上げるように優先度情報を変更し、マスタエレメントのうち、第1のマスタエレメントが第2のマスタエレメントの待ち合わせをするとき、第1のマスタエレメントが同期データの更新を確認する回数であるループ回数が増加するにしたがって、段階的に、第1のマスタエレメントのアクセス優先度を下げる、もしくは、第2のマスタエレメントのアクセス優先度を上げる、もしくは、第1のマスタエレメントのアクセス優先度を下げ、且つ、第2のマスタエレメントのアクセス優先度を上げるように優先度情報を変更する。
これによれば、待つ側である第1のマスタエレメントが第2のマスタエレメントによる同期データの更新を待つ間、第1のマスタエレメントに比較して相対的に第2のマスタエレメントの優先度が高くなるように優先度情報を更新する。したがって、アクセス権を必要とする第2のマスタエレメントにはアクセスのリトライは発生せず、制御装置のレイテンシを小さくすることができる。このように、レイテンシの増大を抑制しつつ複数コアのアクセスを調停することができる。
第1実施形態におけるプロセッサの概略構成を示すブロック図である。 第2コアによる処理の終了を待つ第1コアの動作を示すフロー図である。 第2実施形態におけるプロセッサの概略構成を示すブロック図である。 第2コアによる処理の終了を待つ第1コアの動作を示すフロー図である。 図4におけるサブルーチン1の動作内容を示すフロー図である。 図4におけるサブルーチン2の動作内容を示すフロー図である。 第3実施形態のプロセッサにおいて第2コアによる処理の終了を待つ第1コアの動作を示すフロー図である。 第4実施形態におけるプロセッサの概略構成を示すブロック図である。 第2コアによる処理の終了を待つ第1コアの動作を示すフロー図である。 図9におけるサブルーチン3の動作内容を示すフロー図である。 アクセス時間に対応する、コアのアクセス優先度を示すテーブルである。 第5実施形態におけるプロセッサの概略構成を示すブロック図である。 第2コアによる処理の終了を待つ第1コアの動作を示すフロー図である。 図13におけるサブルーチン4の動作内容を示すフロー図である。 図13におけるサブルーチン5の動作内容を示すフロー図である。 第6実施形態のプロセッサにおいて第2コアによる処理の終了を待つ第1コアの動作を示すフロー図である。 その他実施形態のプロセッサにおいて第2コアによる処理の終了を待つ第1コアの動作を示すフロー図である。
以下、本発明の実施の形態を図面に基づいて説明する。なお、以下の各図相互において、互いに同一もしくは均等である部分に、同一符号を付与する。各形態において構成の一部のみを説明している場合は、構成の他の部分については先行して説明した形態と同様とする。実施の各形態で具体的に説明している部分の組合せばかりではなく、特に組合せに支障が生じなければ、実施の形態同士を部分的に組み合せることも可能である。
(第1実施形態)
最初に、図1を参照して、本実施形態に係る制御装置の概略構成について説明する。
本実施形態における制御装置はマルチコアのプロセッサであり、複数のマスタエレメントと複数のスレーブエレメントとを備え、マスタエレメントとスレーブエレメントとを繋ぐバスの使用権要求を調停するバスアービタを備えている。
より具体的には、図1に示すように、このプロセッサ100は、演算を行うための3つのコア10、すなわち第1コア11、第2コア12、第3コア13を備えている。このコア10がそれぞれ特許請求の範囲に記載のマスタエレメントに相当する。また、プロセッサ100は、コア10と各スレーブエレメント20とを通信可能に接続するシステムバス30を備えている。なお、プロセッサ100は、スレーブエレメント20の一つとして、書き換え可能なメモリであるRAM21を備えている。そして、該RAM21上に同期部21aを備えている。さらに、プロセッサ100は、所定のレジスタ内に優先度情報41を記憶する優先度記憶部40を備えている。本実施形態におけるプロセッサ100が備える各要素について、以下、詳しく説明する。
コア10は特許請求の範囲に記載のマスタエレメントに相当し、与えられたプログラムに基づいた演算を実行する部分である。本実施形態におけるプロセッサ100はマルチコアプロセッサであり、コア10は第1コア11、第2コア12および第3コア13を有している。第1コア11、第2コア12および第3コア13はそれぞれ独立して演算を実行することができる。一方で、あるコア10が別のコア10の演算の終了を待ち合わせるビジーウェイト処理を実行して同期を取るような演算も実行することができる。ビジーウェイト処理を実行する場合、待つ側のコア10は後に詳述する同期部21にアクセスして演算を実行中の別のコア10に対応する同期用のフラグが演算終了を示す状態になるのを待つようになっている。
スレーブエレメント20は、メモリであるRAM21と、ROM22と、ペリフェラルバス23(以降、PBUS23という)と、を有している。言うまでもなく、スレーブエレメント20は、RAM21、ROM22、PBUS23以外の要素を含んでいても良いが、プロセッサ100はスレーブエレメント20として少なくともRAM21を備え、とくに、RAM21上に構築されたデータ構造として同期部21aを備えている。RAM21には同期部21a以外にも種々のデータが記憶されている。スレーブエレメント20はマスタエレメントたるコア10とシステムバスを介して接続されている。
RAM21はスレーブエレメント20の一つである。RAM21は、コア10による演算の結果を記憶したり、コア10の演算に必要なデータを記憶したりする部分である。同期部21aはRAM21上に構築されるデータ構造であり、コア10の演算を同期するための同期データ21bを含んでいる。本実施形態における同期データ21bはフラグである。図1に示すように、フラグは各コア10に対応して設定されている。すなわち、本実施形態の同期データ21bは、第1コア11に対応する第1フラグと、第2コア12に対応する第2フラグと、第3コア13に対応する第3フラグと、を含んでいる。あるコア10の演算が終了すると対応するフラグがOFFからONに遷移する。例えば、第1コア11が先に演算を終了して第2コア12と同期する場合、第1コア11は第2フラグを監視し、第2フラグがOFFからONに遷移したことを以って第2コア12の演算が終了したと判断する。そして、第1コア11は次の演算を開始する。これにより、第1コア11と第2コア12の演算が同期される。詳しい処理フローは追って説明する。
ROM22はスレーブエレメント20の一つである。ROM22は例えばプロセッサ100に内蔵されたフラッシュメモリであり、コア10で実行するプログラムや定数データを記憶する部分である。PBUS23はプロセッサ100の周辺機器が連なるバスであり、バスブリッジ回路を介して接続される。プロセッサ100の周辺機器は例えばシリアル・ペリフェラル・インターフェイス(SPI)やコントローラ・エリア・ネットワークなどの通信機能やタイマ機能などである。PBUS23は、メモリ等の比較的早いアクセス速度が要求されるハードウェアを除く、比較的遅いアクセス速度でも動作可能なハードウェアが接続されるバスである。ROM22およびPBUS23はスレーブエレメント20の一例として記載されているものであり、本実施形態におけるプロセッサ100は、ROM22およびPBUS23のほかにスレーブエレメント20を有していても良い。
システムバス30は、マスタエレメントたるコア10とスレーブエレメント20とを結ぶバスである。図示しないがシステムバス30はアドレスバス、データバス、コントロールバスを有し、すべてのコア10と、すべてのスレーブエレメント20とを互いに通信可能に接続している。
システムバス30はバスアービタ31を有している。バスアービタ31は、後述の優先度記憶部40に格納された優先度情報41に基づいてコア10のアクセスを調停している。具体的には、バスアービタ31は、優先度の高い処理を実行するコア10と、コア10がアクセスを要求するスレーブエレメント20と、を互いに接続するように調停している。
優先度記憶部40は、コア10がスレーブエレメント20にアクセスする際のアクセス優先度の情報、すなわち優先度情報41を格納する部分である。優先度記憶部40はコア10に接続され、コントロールバスを介してバスアービタ31へ情報が送信される。優先度情報41は、図1に示すように、スレーブエレメント20ごとに、コア10のアクセス優先度が設定されている。本実施形態における優先度は例えば0〜7の8段階に設定される。例えば、図1には同期部21aを含むRAM21に関する優先度情報41が具体的に示されている。RAM21へのアクセス優先度は、第2コア12が7(最高)に設定され、第1コア11が最低の0(最低)に設定されている。第3コア13は最優先と最低の間である3(標準)に設定されている。第2コア12と別のコア10とが同時にRAM21にアクセスを要求した場合、アクセス優先度が最も高い第2コア12がRAM21とのアクセス権を得る。なお、スレーブエレメントに対するコア10の優先度は必ずしも8段階である必要はなく、少なくとも2段階存在していれば良い。
次に、図2を参照して、本実施形態に係る制御装置の動作フローについて説明する。なお、ここでは、第1コア11が第2コア12に先んじて所定の処理を完了し、第2コア12が所定の処理を完了するのを待ち合わせる場合の、第1コア11の動作フローについて説明する。この例では、説明を簡単にするため、第3コア13がRAM21へのアクセス権を要求しないこととする。また、本動作フローが開始される初期状態において、RAM21への優先度情報41は、第1コア11、第2コア12、第3コア13それぞれが3(標準)である。初期状態では、バスアービタ31が第1コア11、第2コア12および第3コア13を平等に調停する。
図2に示すように、まず、ステップS101が実行される。ステップS101は、変数である「ループ回数」をゼロにリセットするステップである。ループ回数は、後述のステップS106以降における優先度情報41の書き換え処理をスキップするために導入される変数である。
次いで、ステップS102が実行される。ステップS102は、第1コア11が同期データ21bにおいて、第1コア11に対応する第1フラグをOFFからONに遷移させるステップである。仮定のとおり、第1コア11は第2コア12に先んじて処理を終え、第2コア12を待つ側であるから、ステップS102において第1フラグをONにする。
次いで、ステップS103が実行される。ステップS103は、第1コア11が、同期データ21bを参照して、第2フラグがONかOFFかを判定するステップである。第2フラグがONであればステップS103はYES判定となる。換言すれば、第2コア12の演算が終了していればステップS103はYES判定となる。ステップS103がYES判定であるとは、第1コア11と第2コア12とが同期していることを意味している。この場合にはステップS104に進む。
ステップS104は、第1コア11が優先度記憶部40にアクセスし、RAM21に関する優先度情報41における第1コア11のアクセス優先度を初期状態である3(標準)に書き戻す。
次いで、ステップS105が実行される。ステップS105は、第1コア11が優先度記憶部40にアクセスし、RAM21に関する優先度情報41における第2コア12のアクセス優先度を初期状態である3に書き戻す。ステップS104およびステップS105を経て、RAM21における優先度情報41は初期状態にリセットされる。この状態では、アクセス優先度が平等に割り振れており、バスアービタ31は第1コア11および第2コア12を平等に調停する。ステップS105を経て本動作フローは終了する。
一方、ステップS103において第2フラグがOFFである場合には、ステップS103はNO判定となる。換言すれば、第2コア12の演算が継続中であり第1コア11が待ちの状態であれば、ステップS103はNO判定となる。ステップS103がNO判定であるとは、第1コア11と第2コア12とが非同期であることを意味している。この場合にはステップS106に進む。
ステップS106は、第1コア11が、変数であるループ回数がゼロか否かを判定するステップである。ステップS103においてリセットされた状態であればループ回数はゼロであり、ステップS106はYES判定となる。この場合、ステップS107に進む。
ステップS107は、第1コア11が優先度記憶部40にアクセスし、RAM21に関する優先度情報41における第1コア11のアクセス優先度を0(最低)に書き換える。つまり、待つ側である第1コア11のRAM21へのアクセス優先度が下げられる。
次いで、ステップS108が実行される。ステップS108は、第1コア11が優先度記憶部40にアクセスし、RAM21に関する優先度情報41における第2コア12のアクセス優先度を7(最高)に書き換える。つまり、待たせる側である第2コア12のRAM21へのアクセス優先度が上げられる。なお、第3コア13はアクセス優先度が変更されず、3(標準)のままである。
ステップS107においては、すでに所定の処理が終了して待ちの状態である第1コア11のアクセス優先度を下げることにより、相対的に第2コア12によるRAM21へのアクセスを容易にしている。換言すれば、第1コア11のRAM21への過剰なアクセスを防止している。一方、ステップS108においては、所定の処理が未完である第2コア12のアクセス優先度を上げることにより、相対的に第2コア12によるRAM21へのアクセスを容易にしている。本実施形態では、ステップS107とステップS108の両方を経る動作フローを説明しているが、ステップS107およびステップS108の少なくとも一方を経るようにすればよい。このようにすれば、第1コア11に比較して第2コア12のRAM21へのアクセス優先度を相対的に上げることができるので、第1コア11のRAM21への過剰なアクセスを防止することができる。
ステップS108の後、ステップS109が実行される。ステップS109は、変数であるループ回数が1だけ増加(すなわちインクリメント)されるステップである。ステップS109を経由してループ回数がゼロ以外の値になると、ステップS106においてNO判定となる。
ステップS106がNO判定の場合は、ステップS106の後にステップS103に戻る。前述のとおり、ステップS103では、第2コア12の所定の処理を終了するまでNO判定を継続するため、結果的に第2コア12の所定の処理を終了するまでステップS103およびステップS106が繰り返し実行される。この繰り返しが行われるのは、少なくとも一回はステップS109を経由していることが条件であり、すなわち、ステップS107あるいはステップS108を経ている。つまり、ステップS103およびステップS106が繰り返し実行されている間は第2コア12のRAM21へのアクセス優先度が相対的に高い状態を維持している。ステップS106が実行される意義は、第1コア11がステップS107〜ステップS109を毎回経由しないようにして演算負荷を軽減することにある。よってステップS106は必ずしも必要ではない。ステップS106が省略される場合には、ループ回数に関するステップであるステップS103およびステップS109も省略される。
第2コア12による演算が終了すればステップS103はYES判定となり、前述の通りステップS104およびステップS105を経由してコア10のRAM21へのアクセス優先度を3に再設定して本動作フローを終了する。換言すると、コア10のRAM21へのアクセス優先度は初期状態に戻る。これにより、バスアービタ31が第1コア11、第2コア12および第3コア13を平等に調停することができるようになる。
次に、本実施形態に係る制御装置を採用することによる作用効果について説明する。
ステップS107あるいはステップS108において、第2コア12のRAM21へのアクセス優先度を、第1コア11に対して高くすることができる。これにより、バスアービタ31は、第2コア12がRAM21に対してアクセスを容易にするように調停することができる。
且つ、ステップS107およびステップS108を実行するマスタエレメントは、待つ側である第1コア11であるから、所定の処理を実行中の第2コア12にRAM21へのアクセスのリトライを行わせることなく、RAM21へのアクセス優先度を変更することができる。
以上のように、第2コア12がリトライをせずに所定の処理に必要なRAM21へのアクセスを実行できるので、第2コア12のRAM21に係るレイテンシを小さくすることができる。ひいては、プロセッサ100のレイテンシを小さくすることができる。すなわち、レイテンシの増大を抑制しつつ複数コアのアクセスを調停することができる。
(第2実施形態)
図3に示すように、本実施形態におけるプロセッサ110は許否部50を備えている。許否部50は、マスタエレメントたるコア10と優先度記憶部40に接続されている。許否部50はコア10による優先度情報41の書き換えを制限する部分である。コア10は、所定の条件を満たすことで、優先度記憶部40へのアクセスを許可され、優先度情報41を書き換えることができる。これによれば、例えば故障やバグによって不正に優先度情報41が書き換えられることを防止することができる。
所定の条件とは、例えば、第1コア11が第2コア12の処理が終了するのを待ち合わせるとき、第2コア12のRAM21へのアクセス優先度が引き上げられようとしている、ことである。つまり、待たせる側のマスタエレメントに対応するアクセス優先度が引き上げられようとしていることが所定の条件として好適である。
次に、図4〜図6を参照して、本実施形態におけるプロセッサ110の動作フローについて具体的に説明する。
図4に示すように、本実施形態における動作フローは、第1実施形態における動作フローのステップS102およびステップS108を、それぞれステップS202およびステップS208に置換したものであり、ステップS202およびステップS208を除くフローは第1実施形態と同一である。すなわち、ステップS201はステップS101と同一であり、ステップS203〜ステップS207はそれぞれステップS103〜S107と同一であり、ステップS209はステップS109と同一である。よって、ステップS202およびステップS208を除くステップについては説明を省略する。
ステップS202について図5を参照して説明する。ステップS202はステップS201の後に実行され、変数である「チェック用ME」に待ち合わせる相手のマスタエレメントの情報をセットするためのサブルーチンである。
図5に示すように、ステップS202で実行されるサブルーチンでは、まずステップS202aが実行される。ステップS202aは、第1コア11が同期データ21bにおいて、第1コア11に対応する第1フラグをOFFからONに遷移させるステップである。仮定のとおり、第1コア11は第2コア12に先んじて処理を終え、第2コア12を待つ側であるから、ステップS202aにおいて第1フラグをONにする。このステップは、第1実施形態におけるステップS102に相当する。
次いで、ステップS202bが実行される。ステップS202bは、変数であるチェック用MEに待ち合わせるマスタエレメントを指定する情報をセットするステップである。本実施形態では、第1コア11が第2コア12を待ち合わせるので、チェック用MEには第2コア12が指定される。
ステップS202aおよびステップS202bを経て、ステップS202のサブルーチンは終了する。そして、ステップS203に進む。ステップS203は第1実施形態におけるステップS103と同様であり、第2コア12の処理が終了していなければNO判定となる。その後、ステップS206およびS207を経てステップS208に至る。
ステップS208について図6を参照して説明する。ステップS208は、RAM21へのアクセス優先度が変更されようとしているマスタエレメントが、第1コア11が待ち合わせているマスタエレメントと一致するか否かを判定するステップを含むサブルーチンである。
図6に示すように、ステップS208で実行されるサブルーチンでは、まずステップS208aが実行される。ステップS208aは、許否部50が、待つ側である第1コア11に対応する第1フラグがONであるか否かを判定するステップである。ステップS202aにて第1フラグはONにされているので、プロセッサ110が正常に動作していればステップS208aはYES判定となる。万一、第1フラグがOFFに書き換えられている場合にはNO判定となりステップS208のサブルーチンは終了する。ステップS208aがYES判定ならばステップS208bに進む。
ステップS208bは、許否部50が、RAM21へのアクセス優先度が変更されようとしているマスタエレメントが、チェック用MEとして指定されたマスタエレメントに一致するか否かを判定するステップである。本実施形態では、故障やバグが発生していなければ、RAM21へのアクセス優先度が変更されようとしているマスタエレメントは第2コア12である。一方、チェック用MEは、ステップS202bにおいて第2コア12に指定されている。したがって、ステップS208bはYES判定となり、ステップS208cに進む。
ステップS208aおよびステップS208bがいずれもYES判定であることは、許否部50が、第1コア11に対して、RAM21に対する第2コア12のアクセス優先度を変更することを許可したことを意味する。
ステップS208cは、第1コア11が優先度記憶部40にアクセスし、RAM21に関する優先度情報41における第2コア12のアクセス優先度を7(最高)に書き換えるステップである。このステップは、第1実施形態におけるステップS108と同一である。
万一、RAM21へのアクセス優先度が変更されようとしているマスタエレメントが第2コア12でない場合には、RAM21へのアクセス優先度が変更されようとしているマスタエレメントがチェック用MEと一致せず、ステップS208bはNO判定となる。この場合には第2コア12のRAM21に対するアクセス優先度は変更されずサブルーチンは終了する。これは許否部50が第1コア11の優先度記憶部40へのアクセスを許可しなかったことを意味する。
次に、本実施形態に係る制御装置を採用することによる作用効果について説明する。
本実施形態におけるプロセッサ110は許否部50を備え、その動作フローにおいて、RAM21へのアクセス優先度が変更されようとしているマスタエレメントが、待ち合わせているマスタエレメントと一致するか否かを判定している。これによれば、例えば、第1コア11が誤って第3コア13のRAM21へのアクセス優先度を上げようとした場合には、第1コア11の優先度記憶部40へのアクセスが許可されないので、予期しないアクセス優先度の変更を防止することができる。
(第3実施形態)
本実施形態における制御装置は第1実施形態に対して、動作フローを変更したものである。この制御装置の構成要素は第1実施形態と同一であり、その動作フローが異なっている。図7を参照して、本実施形態にかかるプロセッサ100の動作フローについて説明する。
このプロセッサ100の動作フローは、第1実施形態におけるプロセッサ100の動作フローに対して、ステップS106におけるNO判定時の動作が異なっている。図7に示すように、本実施形態におけるプロセッサ100の動作のうち、ステップS301〜S309の動作は、それぞれ第1実施形態における動作のステップS101〜S109に対応している。ただし、ステップS307において第1コア11のRAM21へのアクセス優先度は最低の0とせず、中間の値、例えば2とする。また、ステップS308において第2コア12のRAM21へのアクセス優先度は最高の7とせず、中間の値、例えば5とする。
第1実施形態と同様に、ステップS306において、第1コア11が変数であるループ回数がゼロか否かを判定するとき、ループ回数がゼロ以外の値であればNO判定となる。この場合、ステップS303には戻らず、ステップS310に進む点が第1実施形態とは異なっている。
ステップS310は、第1コア11が優先度記憶部40にアクセスして第1コア11のRAM21に対するアクセス優先度を下げるステップである。本実施形態では、アクセス優先度を1だけ減少(すなわちデクリメント)する。このステップを経ることにより、2に設定されていた第1コア11の優先度は1となる。
次いで、ステップS311が実行される。ステップS311は、第1コア11が優先度記憶部40にアクセスして第2コア12のRAM21に対するアクセス優先度を上げるステップである。本実施形態では、アクセス優先度を1だけ増加(すなわちインクリメント)する。このステップを経ることにより、5に設定されていた第1コア11の優先度は6となる。
ステップS311の後、ステップS309に進む。ステップS309は第1実施形態におけるステップS109と同一のステップであり、ループ回数がインクリメントされる。ステップS309の後はステップS303に戻る。
この段階で第2コア12の処理が終了しておらず、第1コア11との間で同期が取れていない状態であれば再びステップS306に進む。この場合もループ回数はゼロ以外の値であるから、ステップS310およびS311を経る。これにより、第1コア11のRAM21へのアクセス優先度は0(最低)となり、第2コア12のRAM21へのアクセス優先度は7(最高)となる。
このように、本実施形態におけるプロセッサ100は、ループ回数の増加に伴って、段階的に、第2コア12のアクセス優先度を、第1コア11のアクセス優先度に較べて大きくしていく。
ところで、第1実施形態および第2実施形態において、第1コア11が第2コア12を待ち合わせるとき、待つ側の第1コア11におけるアクセス優先度を0(最低)、待たせる側の第2コア12におけるアクセス優先度を7(最高)に設定する例を説明した。しかしながら、待つ側のRAM21へのアクセス優先度を0に設定してしまうと、第1コア11が同期データ21bにアクセスしづらい状態となり、第1コア11と第2コア12の同期の確認がしづらい状態となる。つまり、同期のタイミングが遅くなる虞がある。
本実施形態におけるプロセッサ100は、ステップS307において第1コア11のアクセス優先度を0以外の値とし、ステップS308において第2コア12のアクセス優先度を7以外の値としている。これによれば、上記したような第1コア11がRAM21にアクセスしづらい状況を回避でき、また、第2コア12がその他のマスタエレメントのRAM21へのアクセスを妨げる原因になることを回避することができる。
(第4実施形態)
図8に示すように、本実施形態におけるプロセッサ120は時間計測部60を備えている。時間計測部60は、マスタエレメントたるコア10ごとに搭載あるいは接続されている。時間計測部60は、各コア10が同期部21へのアクセスに要した時間であるアクセス時間を計測する部分である。第1〜第3実施形態と同様に、第1コア11が第2コア12よりも先に所定の処理を終えて第2コア12を待ち合わせる場合、時間計測部60は、第1コア11が同期部21にアクセスしてから、同期データ21bにおける第2フラグの状態を取得するまでの時間を計測している。なお、時間計測部60は、本実施形態のようにマスタエレメントであるコア10ごとにそれぞれ独立に備えていることが望ましいが、共通した一つの時間計測部60として備えていても良い。
本実施形態におけるプロセッサ120の具体的な動作フローについて図9〜図11を参照して説明する。
このプロセッサ120の動作フローは、第1実施形態の動作フローにおけるステップS102とステップS103の間に、コア10のRAM21に対するアクセス優先度を決定するためのサブルーチンステップを挿入したものである。図9に示すように、ステップS401〜S409は、第1実施形態におけるステップS101〜S109にそれぞれ対応している。第1実施形態との差異は、ステップS107に対応するステップS407と、ステップS108に対応するステップS408と、新規に導入されたステップS410であり、これらを除くステップは第1実施形態における対応するステップとそれぞれ同一であるからその説明を省略する。
ステップS410はステップS402の後に実行される。上記したように、ステップS410はコア10のRAM21に対するアクセス優先度を決定するためのサブルーチンであり、図10に示す動作フローに従う。
このサブルーチンでは、まずステップS410aが実行される。ステップS410aは、時間計測部60がアクセス開始時刻を取得するステップである。第1コア11に接続された時間計測部60は、第1コア11がRAM21に記憶された同期部21aにアクセスを開始する時刻であるアクセス開始時刻を計測する。
次いで、ステップS410bが実行される。ステップS410bは、第1コア11が同期部21aにアクセスして第2コア12に対応する第2フラグの値を取得するステップである。第2フラグはONかOFFのいずれかの値をとるので、第1コア11はこれを取得する。
次いで、ステップS410cが実行される。ステップS410cは、時間計測部60がアクセス終了時刻を取得するステップである。時間計測部60は、第1コア11による同期部21aへのアクセスが終了する時刻であるアクセス終了時刻を計測する。
次いで、ステップS410dが実行される。ステップS410dは、時間計測部60がアクセス時間を算出するステップである。図10に示すように、アクセス時間はアクセス終了時刻からアクセス開始時刻を減算したものであり、第1コア11が第2フラグの値を取得するために同期部21aへのアクセスに要した時間を示している。
次いで、ステップS410eが実行される。ステップS410eは、第1コア11が優先度記憶部40にアクセスし、アクセス時間に基づいて第1コア11のRAM21に対するアクセス優先度Xを決定するステップである。第1コア11のアクセス優先度Xは、図11に示すテーブルによって予め規定されている。例えばアクセス時間が30nsであれば、優先度はX=2となる。例えばアクセス時間が120nsであれば優先度はX=0(最低)となる。
次いで、ステップS410fが実行される。ステップS410fは、第1コア11が優先度記憶部40にアクセスし、アクセス時間に基づいて第2コア12のRAM21に対するアクセス優先度Yを決定するステップである。第2コア12のアクセス優先度Yは、図11に示すテーブルによって予め規定されている。例えばアクセス時間が30nsであれば、優先度はY=4となる。例えばアクセス時間が120nsであれば優先度はY=6となる。なお、図11に示す優先度に関するテーブルは一例であり、アクセス時間および、そのアクセス時間に対応するアクセス優先度は任意に設定することができる。
アクセス優先度XおよびYが決定されたのち、このサブルーチンは終了してステップS403に進む。ステップS403は第1実施形態におけるステップS103と同一である。ステップS403がNO判定の場合、ステップS407が実行される。ステップS407では第1コア11のRAM21に対するアクセス優先度として、ステップS410eで決定された優先度Xが指定される。次いで実行されるステップS408では第2コア12のRAM21に対するアクセス優先度として、ステップS410fで決定された優先度Yが指定される。その後、動作フローはステップS410に戻る。なお、本実施形態では、第1実施形態におけるステップS106に相当するループ回数による判定、およびステップS109に相当するループ回数のインクリメントは実行されない。システムバス30の混雑状況は常に一定ではなくアクセス時間も変動するので、ステップS410を経由するループごとにアクセス優先度を変動させることが好ましい。
上記したように、本実施形態におけるプロセッサ120では、時間計測部60がアクセス時間を計測し、コア10が該アクセス時間に基づいて各コア10のスレーブエレメントに対するアクセス優先度を決定する。具体的には、図11に示すように、アクセス時間が長いほど、待たせる側のマスタエレメントのアクセス優先度を、待つ側のマスタエレメントのアクセス優先度に較べて高くする。
アクセス時間が長い状態とは、システムバス30が混雑した状態にあることを意味している。本実施形態におけるプロセッサ120は、システムバス30が混雑するほど待つ側であるマスタエレメントのアクセス優先度を下げる。これにより、待つ側のマスタエレメントによるシステムバス30の占有を抑制することができる。また、システムバス30が混雑するほど待たせる側であるマスタエレメントのアクセス優先度を上げる。これにより、待たせる側のマスタエレメントによる所定の処理をより早期に完了するように調停することができる。
(第5実施形態)
図12に示すように、本実施形態におけるプロセッサ130はタスク優先度取得部70を備えている。タスク優先度取得部70は、マスタエレメントたるコア10と優先度記憶部40に接続されている。タスク優先度取得部70は、各コア10が実行中のタスクに関するタスク優先度を取得する部分である。タスク優先度とは、実行中のタスクの優先順位を定める変数であり、タスクごとに予め優先度が定められている。タスク優先度取得部70は、このタスク優先度を取得し、コア10のRAM21へのアクセス優先度に反映する。
具体的な動作フローについて、図13〜図15を参照して説明する。
このプロセッサ130の動作フローは、図13に示すように、第1実施形態の動作フローにおけるステップS107およびステップS108を、それぞれステップS507、ステップS508で示すサブルーチンステップに置換したものである。ステップS501〜S506およびステップS509は、第1実施形態におけるステップS101〜S106およびステップS109にそれぞれ相当し、その動作は第1実施形態と同一であるから説明を省略する。
ステップS507は、ステップS506がYES判定の場合に実行される。ステップS507では図14に示す処理が実行される。まずステップS507aが実行される。ステップS507aは、タスク優先度取得部70が第1コア11のタスク優先度を取得するステップである。このステップにより、第1コア11が処理しているタスクの優先度が取得される。
次いで、ステップS507bが実行される。ステップS507bは、第1コア11が優先度記憶部40にアクセスして、第1コア11のRAM21に対するアクセス優先度を変更するステップである。具体的には、第1コア11は、ステップ509aにて取得されたタスク優先度に基づいて、RAM21に対するアクセス優先度をタスク優先度に応じた値に設定するステップである。このとき、タスク優先度に応じたアクセス優先度の値が、現在優先度情報41として設定されているアクセス優先度より高い場合は、待つ側のコアである第1コア11のアクセス優先度が第2コア12のアクセス優先度より高くなる虞があるため、アクセス優先度の変更はせずこのステップを終えてもよい。このステップを終えてサブルーチンは終了する。
ステップS507の後、ステップS508が実行される。ステップS508では図15に示す処理が実行される。まずステップS508aが実行される。ステップS508aは、タスク優先度取得部70が第2コア12のタスク優先度を取得するステップである。このステップにより、第2コア12が処理すべきタスクの優先度が取得される。
次いで、ステップS508bが実行される。ステップS508bは、第2コア12が優先度記憶部40にアクセスして、第2コア12のRAM21に対するアクセス優先度を変更するステップである。具体的には、第2コア12は、ステップ510aにて取得されたタスク優先度に基づいて、RAM21に対するアクセス優先度をタスク優先度に応じた値に設定するステップである。このとき、ステップS507と同様に、タスク優先度に応じたアクセス優先度の値が、現在優先度情報41として設定されているアクセス優先度より低い場合は、待つ側のコアである第1コア11のアクセス優先度が第2コア12のアクセス優先度より高くなる虞があるため、アクセス優先度の変更はせずこのステップを終えてもよい。このステップを終えてサブルーチンは終了する。
上記した各実施形態は、マスタエレメントたるコア10のアクセス優先度を予め決めておくものである。これに対して、本実施形態におけるプロセッサ130では、各コア10が実行中のタスク優先度に依存してスレーブエレメント20へのアクセス優先度を変更するものである。各コア10が処理中のタスクの優先度は、すなわち該コア10が処理している内容の優先度に等しいので、本実施形態におけるプロセッサ130を採用すれば、より的確にコア10のスレーブエレメント20に対するアクセス優先度を決めることができる。
(第6実施形態)
本実施形態における制御装置は第1実施形態に対して、動作フローを変更したものである。この制御装置の構成要素は第1実施形態と同一であり、その動作フローが異なっている。図16を参照して、本実施形態にかかるプロセッサ100の動作フローについて説明する。
このプロセッサ100の動作フローは、第1実施形態におけるプロセッサ100の動作フローに対して、ステップS103がNO判定となった場合におけるフローが異なっている。図16に示すステップS601〜S605は、第1実施形態におけるステップS101〜S105とそれぞれ同一であるからその説明を省略する。
本実施形態におけるプロセッサ100は、第1実施形態におけるステップS103に相当するステップS603がNO判定になるとステップS606に進む。ステップS606は、第1コア11が、変数であるループ回数がゼロか否かを判定するステップである。ステップS103においてリセットされた状態であればループ回数はゼロであり、ステップS106はYES判定となる。ステップS606がYES判定の場合には、ステップS607、ステップS608およびステップS609が実行される。ステップS607、ステップS608およびステップS609は、それぞれ第1実施形態におけるステップS107、ステップS108およびステップS109と同一の処理であるから説明を省略する。ステップS609の後、ステップS610が実行される。なお、ステップS606がNO判定の場合には、ステップS607、ステップS608およびステップS609が実行されずにステップS610に進む。
ステップS610は、変数である「NOP回数」をゼロにリセットするステップである。NOP回数は、後述のステップS612において、何もせずに所定時間だけ待機する処理であるNOP(No OPeration)処理を実行した回数を示す変数である。
次いで、ステップS611が実行される。ステップ613は、第1コア11が、NOP回数と値Zとを比較し、NOP回数がZ以上であるか否かを判定するステップである。ここで、値Zは、例えば、ステップS607により設定される第1コア11のRAM21に対するアクセス優先度Aと、所定の定数BとによりZ=B/(A+1)で定義される。値Zは、第1コア11のアクセス優先度Aが大きくなるほど小さい値をとる。
初めてステップS611が実行されるとき、前ステップS610においてNOP回数はゼロにリセットされているから、ステップS611はNO判定となり、ステップS612に進む。
ステップS612は、第1コア11が、特定の演算を行わず、処理の時間だけ待機するNOP処理を実行するステップである。このステップでは、第1コア11によるスレーブエレメント20へのアクセス等は無く、時間のみが経過する。
次いで、ステップS613が実行される。ステップS613は、NOP回数を1だけ増加(すなわちインクリメント)するステップである。その後、ステップS611に戻り、再びNOP回数と値Zとの比較が実行される。
NOP回数が値Z以上となるまでステップS611〜S613が繰り返される。この繰り返し処理は、NOP回数をインクリメントしながら時間だけが経過するものである。上記したとおり、値Zは第1コア11のアクセス優先度Aが大きくなるほど小さい値をとる。すなわち、第1コア11のアクセス優先度が高いほどステップS611はYES判定となりやすく、NOP処理が実行される回数は少なくなる。
ステップS611がYES判定になるとステップS603に進み、第1コア11が同期部21にアクセスして同期データ21bたる第2フラグの値を確認する。つまり、第1コア11のアクセス優先度が高いほど、所定時間内におけるステップS603の実行回数は増える。換言すれば、第1コア11のアクセス優先度が高いほど、第1コア11が同期データ21bの更新を確認するために同期部21aにアクセスする周期を小さくなる。
第1コア11のRAM21に対するアクセス優先度が低い場合には、第1コア11がRAM21にアクセスしようとしても、バスアービタ31の調停の結果アクセスできない可能性が高い。第1コア11がRAM21にアクセスする周期を大きくしてアクセス頻度を減少させることにより、バスアービタ31の調停の結果アクセスに失敗する回数を減らし、省電力化することができる。
なお、本実施形態では第1コア11のアクセス優先度に応じて、第1コア11がRAM21にアクセスする周期を調整したが、第2コア12のアクセス優先度に応じて、第1コア11がRAM21にアクセスする周期を調整してもよい。具体的には、第2コア12のRAM21に対するアクセス優先度が高い場合には、第2フラグが早期に更新されることが予想されるため、第1コア11が同期部21aにアクセスする周期を小さくして第2フラグが更新されることの確認の頻度を大きくするよう調整しても良い。これにより、第1コア11と第2コア12の同期を早期に検出することができる。一方、第2コア12のRAM21に対するアクセス優先度が低い場合には、第2フラグがONに遷移することが比較的遅いことが予想されるため、第1コア11が同期部21aにアクセスする周期を大きくしてアクセス頻度を減少させることにより省電力化することができる。
(その他の実施形態)
以上、本発明の好ましい実施形態について説明したが、本発明は上記した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
上記した各実施形態においては、3つのマスタエレメントのうち、2つのマスタエレメント、すなわち第1コア11と第2コア12とが同期する場合の調停について説明したが、3つ以上のマスタエレメントの同期に拡張することができる。図17を参照して、第1コア11、第2コア12および第3コア13が同期する例について説明する。この例では、第1コア11が、第2コア12および第3コア13に先んじて所定の処理を終了し、第2コア12および第3コア13の処理の終了を待ち合わせる状況を仮定する。
まず、ステップS701が実行される。ステップS701は変数「第2ループ回数」をゼロにリセットするステップである。次いで、ステップS702が実行される。ステップS702は変数「第3ループ回数」をゼロにリセットするステップである。ステップS701およびステップS702は、第1実施形態におけるステップS101に相当する。第2ループ回数および第3ループ回数は、優先度情報41の書き換え処理の過剰な実行をスキップするために導入される変数である。
その後、ステップS703が実行される。ステップS703は、第1コア11が同期データ21bにおいて、第1コア11に対応する第1フラグをOFFからONに遷移させるステップである。仮定のとおり、第1コア11は第2コア12および第3コア13に先んじて処理を終えて待つ側であるから、ステップS703において第1フラグをONにする。
次いで、ステップS704が実行される。ステップS704は、第1コア11が、同期データ21bを参照して、第2フラグがONかOFFかを判定するステップであり、第1実施形態におけるステップS103に相当する。第2コア12の処理が終了していなければステップS704はNO判定となる。その後のステップS709〜S712は、第1実施形態におけるステップS106〜S109に相当する。なお、変数であるループ回数は、第2ループ回数を採用する。
第2コア12による所定の処理が終了するとステップS704はYES判定となり、ステップS705に進む。ステップS705は、第1コア11が、同期データ21bを参照して、第3フラグがONかOFFかを判定するステップであり、ステップS704および第1実施形態におけるステップS103と本質的に同一である。第3コア12の処理が終了していなければステップS705はNO判定となる。その後のステップS713〜S716は、第1実施形態におけるステップS106〜S109に相当する。なお、変数であるループ回数は、第3ループ回数を採用する。
第2コア12および第3コア13の処理が共に終了するとステップS706に進む。この状態は、第1コア11、第2コア12、第3コア13が互いに同期された状態である。ステップS706は第1コア11のアクセス優先度を3に設定して初期状態に戻すステップである。その後、ステップS707およびステップ708が実行される。ステップS707およびステップ708は、それぞれ第2コア12および第3コア13のアクセス優先度を3に設定して初期状態に戻すステップである。すなわち、ステップS706〜S708においてコア10のRAM21へのアクセス優先度を3に初期状態である再設定して本動作フローを終了する。換言すると、コア10のRAM21へのアクセス優先度は初期状態に戻る。これにより、バスアービタ31が初期状態と同じように第1コア11、第2コア12および第3コア13を平等に調停することができるようになる。
なお、上記説明では、第3コア13に対応する第3フラグよりも第2フラグを先に確認する動作フローについて説明したが、フラグの確認順は問わない。
また、上記した各実施形態では、コア10の優先度を変更した後に、フラグの更新を確認するループを実行する例について説明した。具体的には、例えば第1実施形態において、ステップS103の後に、第1コア11の優先度を変更するステップS107、第2コア12の優先度を変更するステップS108が実行される。しかしながら、ステップS107およびステップS108を、ステップS102の後、ステップS103の前に実行するようにしても良い。
また、上記した各実施形態では、マスタエレメントとしてコア10を例に説明したが、マスタエレメントはコプロセッサやDMAコントローラであっても良い。
バスアービタ31は、アクセス元の、アクセス先へのアクセス優先度が同一のときは、例えばラウンドロビンに従って調停を行う。
なお、上記した各実施形態では、特許請求の範囲に記載の制御装置をプロセッサとして記載したが、制御装置は、プロセッサ、プロセッサを含むマイコン、該マイコンを含むECUであっても良く、その形態は上記した例に限定されない。
10…コア(マスタエレメント),20…スレーブエレメント,21…同期部,21a…同期データ,30…システムバス,31…バスアービタ,40…優先度記憶部,41…優先度情報

Claims (10)

  1. システムバス(30)を介して制御対象たる少なくとも一つのスレーブエレメント(20)に接続され、演算を実行する複数のマスタエレメント(10)と、
    前記マスタエレメントから前記スレーブエレメントへのアクセスの優先度情報(41)が記憶される優先度記憶部(40)と、
    前記優先度情報に基づいて前記マスタエレメントから前記スレーブエレメントへのアクセスを調停するバスアービタ(31)と、
    前記マスタエレメント間の同期を行うための同期データ(21b)が記憶された同期部(21a)と、を備え、
    前記マスタエレメントのうち、第1のマスタエレメントが第2のマスタエレメントの待ち合わせをするとき、前記第1のマスタエレメントが、前記第2のマスタエレメントによる前記同期データの更新を待つ制御装置であって、
    前記第1のマスタエレメントは、前記同期データの更新があるまで、
    前記第1のマスタエレメントのアクセス優先度を下げる、もしくは、
    前記第2のマスタエレメントのアクセス優先度を上げる、もしくは、
    前記第1のマスタエレメントのアクセス優先度を下げ、且つ、前記第2のマスタエレメントのアクセス優先度を上げるように前記優先度情報を変更し、
    前記マスタエレメントのうち、前記第1のマスタエレメントが前記第2のマスタエレメントの待ち合わせをするとき、
    前記第1のマスタエレメントが前記同期データの更新を確認する回数であるループ回数が増加するにしたがって、段階的に、
    前記第1のマスタエレメントのアクセス優先度を下げる、もしくは、
    前記第2のマスタエレメントのアクセス優先度を上げる、もしくは、
    前記第1のマスタエレメントのアクセス優先度を下げ、且つ、前記第2のマスタエレメントのアクセス優先度を上げるように前記優先度情報を変更する制御装置。
  2. 前記マスタエレメントが前記同期部へのアクセスを開始してから前記同期データを取得するまでのアクセス時間を計測する時間計測部(60)を備え、
    前記マスタエレメントのうち、前記第1のマスタエレメントが前記第2のマスタエレメントの待ち合わせをするとき、前記アクセス時間が長いほど、前記第2のマスタエレメントのアクセス優先度を、前記第1のマスタエレメントのアクセス優先度に較べて高くしていくように前記優先度情報を変更する請求項1に記載の制御装置。
  3. システムバス(30)を介して制御対象たる少なくとも一つのスレーブエレメント(20)に接続され、演算を実行する複数のマスタエレメント(10)と、
    前記マスタエレメントから前記スレーブエレメントへのアクセスの優先度情報(41)が記憶される優先度記憶部(40)と、
    前記優先度情報に基づいて前記マスタエレメントから前記スレーブエレメントへのアクセスを調停するバスアービタ(31)と、
    前記マスタエレメント間の同期を行うための同期データ(21b)が記憶された同期部(21a)と、を備え、
    前記マスタエレメントのうち、第1のマスタエレメントが第2のマスタエレメントの待ち合わせをするとき、前記第1のマスタエレメントが、前記第2のマスタエレメントによる前記同期データの更新を待つ制御装置であって、
    前記第1のマスタエレメントは、前記同期データの更新があるまで、
    前記第1のマスタエレメントのアクセス優先度を下げる、もしくは、
    前記第2のマスタエレメントのアクセス優先度を上げる、もしくは、
    前記第1のマスタエレメントのアクセス優先度を下げ、且つ、前記第2のマスタエレメントのアクセス優先度を上げるように前記優先度情報を変更し、
    前記マスタエレメントが前記同期部へのアクセスを開始してから前記同期データを取得するまでのアクセス時間を計測する時間計測部(60)を備え、
    前記マスタエレメントのうち、前記第1のマスタエレメントが前記第2のマスタエレメントの待ち合わせをするとき、前記アクセス時間が長いほど、前記第2のマスタエレメントのアクセス優先度を、前記第1のマスタエレメントのアクセス優先度に較べて高くしていくように前記優先度情報を変更する制御装置。
  4. 前記マスタエレメントのうち、前記第1のマスタエレメントが前記第2のマスタエレメントの待ち合わせをするとき、
    前記第1のマスタエレメントのアクセス優先度が低いほど、前記第1のマスタエレメントが前記同期部にアクセスする周期を大きくする請求項1〜のいずれか1項に記載の制御装置。
  5. 前記マスタエレメントのうち、前記第1のマスタエレメントが前記第2のマスタエレメントの待ち合わせをするとき、
    前記第2のマスタエレメントのアクセス優先度が高いほど、前記第1のマスタエレメントが前記同期データの更新を確認するために前記同期部にアクセスする周期を小さくする請求項1〜のいずれか1項に記載の制御装置。
  6. システムバス(30)を介して制御対象たる少なくとも一つのスレーブエレメント(20)に接続され、演算を実行する複数のマスタエレメント(10)と、
    前記マスタエレメントから前記スレーブエレメントへのアクセスの優先度情報(41)が記憶される優先度記憶部(40)と、
    前記優先度情報に基づいて前記マスタエレメントから前記スレーブエレメントへのアクセスを調停するバスアービタ(31)と、
    前記マスタエレメント間の同期を行うための同期データ(21b)が記憶された同期部(21a)と、を備え、
    前記マスタエレメントのうち、第1のマスタエレメントが第2のマスタエレメントの待ち合わせをするとき、前記第1のマスタエレメントが、前記第2のマスタエレメントによる前記同期データの更新を待つ制御装置であって、
    前記第1のマスタエレメントは、前記同期データの更新があるまで、
    前記第1のマスタエレメントのアクセス優先度を下げる、もしくは、
    前記第2のマスタエレメントのアクセス優先度を上げる、もしくは、
    前記第1のマスタエレメントのアクセス優先度を下げ、且つ、前記第2のマスタエレメントのアクセス優先度を上げるように前記優先度情報を変更し、
    前記マスタエレメントのうち、前記第1のマスタエレメントが前記第2のマスタエレメントの待ち合わせをするとき、
    前記第1のマスタエレメントのアクセス優先度が低いほど、前記第1のマスタエレメントが前記同期部にアクセスする周期を大きくする制御装置。
  7. システムバス(30)を介して制御対象たる少なくとも一つのスレーブエレメント(20)に接続され、演算を実行する複数のマスタエレメント(10)と、
    前記マスタエレメントから前記スレーブエレメントへのアクセスの優先度情報(41)が記憶される優先度記憶部(40)と、
    前記優先度情報に基づいて前記マスタエレメントから前記スレーブエレメントへのアクセスを調停するバスアービタ(31)と、
    前記マスタエレメント間の同期を行うための同期データ(21b)が記憶された同期部(21a)と、を備え、
    前記マスタエレメントのうち、第1のマスタエレメントが第2のマスタエレメントの待ち合わせをするとき、前記第1のマスタエレメントが、前記第2のマスタエレメントによる前記同期データの更新を待つ制御装置であって、
    前記第1のマスタエレメントは、前記同期データの更新があるまで、
    前記第1のマスタエレメントのアクセス優先度を下げる、もしくは、
    前記第2のマスタエレメントのアクセス優先度を上げる、もしくは、
    前記第1のマスタエレメントのアクセス優先度を下げ、且つ、前記第2のマスタエレメントのアクセス優先度を上げるように前記優先度情報を変更し、
    前記マスタエレメントのうち、前記第1のマスタエレメントが前記第2のマスタエレメントの待ち合わせをするとき、
    前記第2のマスタエレメントのアクセス優先度が高いほど、前記第1のマスタエレメントが前記同期データの更新を確認するために前記同期部にアクセスする周期を小さくする制御装置。
  8. 前記マスタエレメントが実行中のタスクに関する優先度を定めたタスク優先度を取得するタスク優先度取得部(70)を備え、
    前記マスタエレメントの前記スレーブエレメントへのアクセス優先度を、前記タスク優先度取得部が取得する前記タスク優先度に等しくなるように前記優先度情報を変更する請求項6または7に記載の制御装置。
  9. 前記マスタエレメントから前記優先度記憶部へのアクセスの許否を決する許否部(50)を備え、
    前記許否部がアクセスを許した場合のみ、前記優先度情報が更新される請求項1〜8のいずれか1項に記載の制御装置。
  10. 前記マスタエレメントのうち、前記第1のマスタエレメントが前記第2のマスタエレメントの待ち合わせをするとき、
    前記許否部は、前記第2のマスタエレメントのアクセス優先度を上げるように前記優先度情報が変更される場合にのみ、前記マスタエレメントから前記優先度記憶部へのアクセスを許可する請求項に記載の制御装置。
JP2016052945A 2016-03-16 2016-03-16 制御装置 Active JP6536441B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016052945A JP6536441B2 (ja) 2016-03-16 2016-03-16 制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016052945A JP6536441B2 (ja) 2016-03-16 2016-03-16 制御装置

Publications (2)

Publication Number Publication Date
JP2017167849A JP2017167849A (ja) 2017-09-21
JP6536441B2 true JP6536441B2 (ja) 2019-07-03

Family

ID=59913477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016052945A Active JP6536441B2 (ja) 2016-03-16 2016-03-16 制御装置

Country Status (1)

Country Link
JP (1) JP6536441B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4266619B2 (ja) * 2002-11-25 2009-05-20 株式会社ルネサステクノロジ 調停回路
JP2007164713A (ja) * 2005-12-16 2007-06-28 Matsushita Electric Ind Co Ltd リソース管理装置及びリソース管理方法
JP2008250419A (ja) * 2007-03-29 2008-10-16 Nec Corp 競合調停装置、マスタスレーブシステム及び競合調停方法

Also Published As

Publication number Publication date
JP2017167849A (ja) 2017-09-21

Similar Documents

Publication Publication Date Title
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
JP5498505B2 (ja) データバースト間の競合の解決
JP2008130056A (ja) 半導体回路
JP2012038293A5 (ja)
US10169256B2 (en) Arbitrating direct memory access channel requests
JP2019114015A (ja) 半導体装置、及びバスジェネレータ
JP2004005677A (ja) 集積回路装置のバスアービター
US7606957B2 (en) Bus system including a bus arbiter for arbitrating access requests
JP6536441B2 (ja) 制御装置
JP5108690B2 (ja) Dma装置及びdma転送方法
JP5677007B2 (ja) バス調停装置、バス調停方法
JP6146508B1 (ja) 同期処理ユニット、デバイス、システムおよび方法
JP2004362425A (ja) 資源競合制御システム及び制御方法並びにプログラム
JP2004194014A (ja) バス制御装置及び情報処理システム
JP4610961B2 (ja) アクセス制御装置
JP6416488B2 (ja) 半導体装置
US8327054B2 (en) Data check circuit for checking program data stored in memory
JP2012221125A (ja) データ転送制御装置、データ転送システム及びデータ転送方法
JP2010039632A (ja) バス調停システム
JP4955205B2 (ja) 調停装置及び調停方法
JP2010140440A (ja) バス調停装置
JP2018005851A (ja) 電子装置
JP2005210567A (ja) バス制御方法及びバス制御装置
JP3353368B2 (ja) バス中継装置
JP2012168773A (ja) バスシステムおよびアクセス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190411

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190520

R151 Written notification of patent or utility model registration

Ref document number: 6536441

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250