JP2008097280A - 移動体用マルチコアcpuの制御装置、移動体用マイクロコンピュータ及び移動体操縦支援装置 - Google Patents

移動体用マルチコアcpuの制御装置、移動体用マイクロコンピュータ及び移動体操縦支援装置 Download PDF

Info

Publication number
JP2008097280A
JP2008097280A JP2006277790A JP2006277790A JP2008097280A JP 2008097280 A JP2008097280 A JP 2008097280A JP 2006277790 A JP2006277790 A JP 2006277790A JP 2006277790 A JP2006277790 A JP 2006277790A JP 2008097280 A JP2008097280 A JP 2008097280A
Authority
JP
Japan
Prior art keywords
cpu
core
processing
cores
priority
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.)
Pending
Application number
JP2006277790A
Other languages
English (en)
Inventor
Yasuo Nakajima
康雄 中嶋
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 JP2006277790A priority Critical patent/JP2008097280A/ja
Priority to US11/907,107 priority patent/US20080091974A1/en
Publication of JP2008097280A publication Critical patent/JP2008097280A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】CPUに異常が発生しても、優先度の高い処理を継続させるためのCPU制御に関する技術を提供する。
【解決手段】移動体用のマルチコアCPU12を構成する4つのCPUコア50,52,54,56の温度を温度センサ80,82,84,86で検出する。検出したCPUコア50〜56の温度が高くなり、所定の温度となったときに、CPUクロック生成部90のクロック設定レジスタ92を最高倍率とし、それ以外のクロック設定レジスタ94,96,98のCPUクロック倍率を最高倍率よりも下げる。これにより、優先度が最も高い処理が割り当てられているとして処理優先度格納部32に格納されているCPUコア50の
作動クロック周波数を最高の周波数に保ったまま、CPUコア50以外のCPUコア52〜56の作動クロック周波数を低減させ、マルチコアCPU12の温度を下げることができる。
【選択図】図2

Description

本発明は、複数のCPUコアから構成される移動体用マルチコアCPUの制御技術に関する。
従来、CPUにおいてチップ温度を監視し、チップ温度がしきい値を超えた場合にCPUの作動クロック周波数を下げることによってチップの発熱量を減らし、チップ温度を下げ、CPUの作動を継続させる技術があった(例えば、特許文献1参照)。
特開2001−67149号公報
ところが、チップの発熱量を低減させるために作動クロック周波数を下げると、CPUの処理能力が下がる結果となる。例えば、CPUを組み込んだ車両制御装置に上記技術を適用した場合、CPUの性能が低下するので、車両制御のうち車両の安全性にかかわる制御が正常にできなくなるおそれがあるという問題がある。
本発明は、このような問題に鑑みなされたものであり、CPUに異常が発生しても、優先度の高い処理を継続させるためのCPU制御に関する技術を提供することを目的としている。
かかる問題を解決するためになされた請求項1に記載の発明は、請求項1に記載の移動体用マルチコアCPU(12:この欄においては、発明に対する理解を容易にするため、必要に応じて「発明を実施するための最良の形態」欄において用いた符号を付すが、この符号によって請求の範囲を限定することを意味するものではない。)の制御装置は、複数のCPUコア(50,52,54,56)から構成され、各CPUコア(50,52,54,56)に処理が割り当てられて実行される移動体用マルチコアCPU(10)の制御装置であって、異常検出手段(80,82,84,86)、処理優先度格納手段(32)、処理能力調整手段(90)及び制御手段(10)を備えている。
異常検出手段(80,82,84,86)は、移動体用マルチコアCPU(10)の処理能力を低下させる異常が発生したことを検出し、処理優先度格納手段(32)は、予め定められた、複数のCPUコア(50,52,54,56)に割り当てられた処理の優先度を格納する。また、処理能力調整手段(90)は、複数のCPUコア(50,52,54,56)の各々の処理能力を調整する。
制御手段(10)は、異常検出手段(80,82,84,86)によって異常が検出されたときに、処理優先度格納手段(32)に格納された処理の優先度が最も高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の処理能力を処理の優先度に応じて低減させるように処理能力調整手段(90)を制御する。
このような移動体用マルチコアCPU(10)によれば、移動体用マルチコアCPU(10)の処理能力を低下させる異常が発生しても、優先度の高い処理の性能を低減させることなく実行することができる。以下、詳細に説明する。
車両などの移動体は、比較的早い速度で移動するために、周囲環境、特に周囲温度の変化が大きい。また、移動体に搭載されている機器は、高温や振動あるいは衝撃といった環境に晒される場合が多い。移動体に搭載されるCPUは、このような周囲温度の変化、振動、衝撃といった環境下で正常に作動することが必要である。
また、移動体用CPUでは、種々の処理が実行されている。例えば、安全運転支援のための制御処理や表示処理、経路案内処理、オーディオ装置制御処理などが1つのCPUで実行されている。そして、これら移動体用CPUで実行される処理には、優先度があるというのも移動体用CPUの特徴である。移動体用CPUで実行される処理においては、移動体の安全性を確保するという観点から、安全運転のための制御処理や表示処理は優先度が高く、オーディオ装置制御処理などは優先度が低い。
したがって、移動体用CPUが上記のような種々の環境に晒され、機能が低下した場合には、CPUで実行されているすべての処理の性能が低下してしまうので、移動体の安全を確保するために必要な処理の性能まで低下してしまうというおそれがある。
例えば、周囲温度の上昇に伴って、CPU自身の温度が上昇した場合には、CPU作動クロック周波数を下げ、CPUの発熱量を低減させて、CPUの温度を下げることが考えられる。ところが、CPU作動クロック周波数を下げると、CPUで実行されているすべての処理の作動速度が低下し、優先度の高い、安全運転支援のための制御処理や表示処理の性能も低下してしまうおそれがあるのである。
ところが、請求項1に記載の移動体用マルチコアCPU(10)によれば、異常検出手段(80,82,84,86)で異常が検出された場合、各CPUコア(50,52,54,56)に割り当てられた処理のうち最も優先度の高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)処理能力が優先度に応じて低減される。
最も優先度の高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の処理能力を低減させれば、移動体用マルチコアCPU(10)の処理能力を下げる異常の要因を除去又は少なくすることができる。
例えば、移動体用マルチコアCPU(10)の周囲温度の上昇や移動体用マルチコアCPU(10)自身の発熱量の増加が異常の要因であった場合、最も優先度が高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の発熱量を低減させれば、移動体用マルチコアCPU(10)の温度が下がる。温度が下がれば、最も優先度が高い処理が割り当てられたCPUコア(52,54,56)の処理能力を低減させなくても済む。
また、各CPUコア(50,52,54,56)に割り当てられる処理として、例えば、処理の優先度の高い順に、車両の安全走行制御処理、経路案内処理、オーディオ機器制御処理が各CPUコア(50,52,54,56)に割り当てられているとする。
その場合、移動体用マルチコアCPU(10)の処理能力を低下させる異常が生じた場合、処理の優先度が最も高い車両の安全走行制御処置が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の処理能力を低減させる。つまり、車両の安全走行に関連の低い経路案内処理やオーディオ機器制御処理の性能を低減させるのである。
このようにして、処理の優先度の低い処理が割り当てられたCPUコア(52,54,56)の処理能力を低減させることによって、移動体用マルチコアCPU(10)の処理能力を低下させる異常を発生させる要因を除去又は少なくすることができる。
異常を発生させる原因を除去したり、少なくすることができれば、処理の優先度が最も高い処理が割り当てられたCPUコア(50)の処理能力を通常の処理能力に保つことができる。つまり、車両の安全走行制御を通常と同じ性能で実行することができる。
ところで、優先度が最も高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の処理能力を低減させるには、処理の優先度に応じて順次処理能力を低減させてもよいが、最も高い処理が割り当てられたCPUコア(50)以外のコアの処理能力を一括して低減させてもよい。
そこで、請求項2に記載のように、処理能力調整手段(90)は、処理の優先度が最も高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の処理能力を一括して調整するようにすると、処理能力調整手段(90)の構成が簡単になって都合がよい。
ところで、移動体用マルチコアCPU(10)の処理能力を低下させる異常として発生する可能性が高いものとして、前述のように、周囲温度の上昇や移動体用マルチコアCPU(10)自身の発熱量の増加による温度の異常な上昇が考えられる。
そこで、請求項3に記載のように、異常検出手段(80,82,84,86)は、移動体用マルチコアCPU(10)の処理能力を低下させる異常として、前記複数のCPUコア(50,52,54,56)のうち少なくとも1つの温度が所定の値以上になったことを検出するようにする。
また、処理能力調整手段(90)を処理の優先度が最も高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の作動クロック周波数を下げることができるように構成する。
このようにすると、複数のCPUコア(50,52,54,56)の何れかの温度が異常な温度になった場合、つまり、温度が所定の値以上になった場合、処理の優先度が最も高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の作動クロック周波数を低減させることができるので、処理の優先度が最も高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の発熱量が減少する。
処理の優先度が最も高い処理が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の発熱量が減少すれば、移動体用マルチコアCPU(10)の温度が下がるので、処理の優先度が最も高い処理が割り当てられたCPUコア(50)の作動クロック周波数を通常の周波数に維持できる。つまり、処理の優先度が最も高い処理が割り当てられたCPUコア(50)の処理能力を通常の能力に維持することができる。
請求項4に記載の移動体用マイクロコンピュータ(3)は、移動体用マルチコアCPU(10)と、請求項1〜請求項3の何れかに記載の移動体用マルチコアCPU(10)の制御装置とを備えたことを特徴としている。
このような、移動体用マイクロコンピュータ(3)は、それに搭載されている移動体用マルチコアCPU(10)に、その性能を低下させる異常が発生したときに、優先度の低い処理の性能を低減させることによって、優先度が最も高い処理を通常と同じ性能で実行する。
例えば、車両の安全運転支援のための処理、経路案内処理、オーディオ機器制御処理などの移動体用マイクロコンピュータで行われる処理のうち、搭載されている移動体用マルチコアCPU(10)の性能を低下させる異常が発生した場合であっても、車両の安全支援に関連の低い経路案内処理やオーディオ機器制御処理などの機能を低減させ、車両の安全運転支援のための処理を通常と同じ性能で実行できる。
請求項5に記載の移動体操縦支援装置(1)は、請求項4に記載の移動体用マイクロコンピュータ(3)が組み込まれていることを特徴としている。
このように、移動体操縦支援装置(1)、例えば、車両の安全走行に必要となる情報を運転者に提示したり、あるいは車両の安全運転のための自動走行制御運転を行う装置などでは、その装置に組み込まれている移動体用マイクロコンピュータ(3)の移動体用マルチコアCPU(10)に、その処理能力を低下させるような異常が発生しても、移動体操縦支援機能が通常の性能通りに働く。したがって、移動体の移動時の安全を確保することができる。
以下、本発明が適用された実施形態について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
(カーナビゲーション装置の構成)
図1は、カーナビゲーション装置1のシステムイメージを示す図である。カーナビゲーション装置1は、マイクロコンピュータ3、ディスプレイ40、スピーカ42、スイッチ44から構成されている。
カーナビゲーション装置1は、ディスプレイ40の表示やスピーカ42の音声出力/音出力によって、経路案内のようなナビゲーション機能やオーディオ/TVといったマルチメディア機能に加え、運転者の安全運転に寄与できる図示しない周辺カメラ画像の表示や図示しない前方監視レーダによって得られる障害物警告といった運転支援情報も提供する。
また、ナビゲーション機能やオーディオ機能といった、たとえサービス品質が低下あるいは停止してしまっても車両走行時の安全性に直結しない機能は、総括してマルチメディア機能と呼び、車両周辺監視や前方障害物検知といった、運転者の運転時における安全性を向上させるための機能を運転支援機能と呼ぶこととする。
経路案内のための経路案内処理、マルチメディア機能を実現するためのマルチメディア制御処理及び運転支援機能を実現するための運転支援処理は、カーナビゲーション装置1のマイクロコンピュータ3において、同時に単一ハードウエア上で複合的に実行され、各々の機能が実現される。
(カーナビゲーション装置1のシステム構成)
次に、図2に基づいてカーナビゲーション装置1のシステム構成を説明する。図2は、カーナビゲーション装置1の概略のシステム構成を示すブロック図である。
カーナビゲーション装置1は、図2に示すように、マイクロコンピュータ3、ディスプレイ40、スピーカ42及びスイッチを備えている。
マイクロコンピュータ3は、図2に示すように、マルチコアCPU10、DMA12、I/O14、ROM16、RAM18、描画LSI20、D/Aコンバータ22、PIO24及び基準クロック発生器100を備えている。
また、マイクロコンピュータ3には、図2に模式的に示すように、マイクロコンピュータ3を作動させるためのオペレーティングシステム34(以下、OS34とも呼ぶ。)やアプリケーション・ソフト36が内蔵されている。
マルチコアCPU10は、複数のCPUコアから構成される移動体用のCPUであり、各CPUコアに前述した経路案内処理、マルチメディア制御処理及び運転支援処理などが割り当てられて実行される。マルチコアCPU10の詳細については後述する。
ディスプレイ40は、マイクロコンピュータ3で実行される経路案内処理、マルチメディア制御処理あるいは安全運転支援処理の結果を表示するためのものであり、液晶ディスプレイやCRTなどが用いられる。
スピーカ42は、マイクロコンピュータ3で実行される経路案内処理、マルチメディア制御処理あるいは安全運転支援処理の結果を音声で運転者等に報知するためのものである。
スイッチ44は、運転者等がマイクロコンピュータ3に対して種々の入力を行うためのものであり、具体的にはディスプレイ40の画面上に配置されたタッチセンサなどである。
(マルチコアCPUの構成と機能)
次に、マルチコアCPU10の構成と機能について詳細に説明する。
マルチコアCPU10は、CPUコア50,52,54,56、温度センサ80,82,84,86、処理優先度格納部32、CPUクロック生成部90、制御部30、キャッシュメモリ60,62,64,66、キャッシュ同期部68、メモリ・コントローラ70、温度検出部88を備えている。
マルチコアCPU10は、前述したように複数のCPUコアから構成される移動体用のCPUであり、各CPUコアに処理が割当てられて実行される。本実施形態では、一例として4つのCPUコア(1)50、CPUコア(2)52、CPUコア(3)54、CPUコア(4)56で構成されたマルチコアCPUの場合で説明する。
なお、CPUコアに括弧で括って付けられた番号は、4つのCPUコア(1)50〜CPUコア(4)56のうちどのCPUコアを示しているがを識別するためのものであり、以下、特に何れのCPUコアであるかを特定する必要がない場合には、括弧で括って示した各CPUコアの番号を省略して説明する。
また、キャッシュメモリ60,62,64,66、温度センサ80,82,84,86及びクロック・レジスタ(CL)92,94,96,98についても同様にして説明する。
CPUコア50〜56は、演算、比較、分岐といった単一のCPUコアを備えたCPUと同一の機能を有する。CPUコア50〜56は全て同じ内部構造を持つ。また、それぞれのCPUコアはメモリアクセスによる性能低下を抑制するためのキャッシュメモリ60,62,64.66を独立して持っている。
さらには各キャッシュメモリ60〜66の内容を一致させるためのキャッシュ同期部68を持つ(作動は後述)。キャッシュ同期部68にはメモリ・コントローラ70が接続されており、これを介して各CPUコア50〜56は、DMA12、I/O14、ROM16、RAM18といったチップにアクセスすることが可能となっている。
温度センサ80,82,84,86は、マルチコアCPU10の処理能力を低下させる異常が発生したことを検出するためのものであり、各CPUコア50〜56に近接して設置されており、各CPUコア50〜56の温度を検出することが可能となっている。
温度センサ80〜86で検出された各CPUコア50〜56の温度は、温度検出部88においてデジタル値に変換され、制御部30に入力される。このようにして、制御部30において各CPUコア50〜56の温度が把握できるように構成されている。
処理優先度格納部32は、各CPUコア50〜56に割り当てられた処理の優先度を格納するものであり、小容量のメモリで構成されている。また、処理優先度格納部32には、どのCPUコア50〜56をAMP又はSMPに割り当るか、あるいは、CPUクロック周波数制御マップが格納されている(AMP、SMP及びCPUクロック周波数制御マップの詳細は後述する)。
CPUクロック生成部90は、各CPUコア50〜56の各々の処理能力を調整するためのものである。
CPUクロック生成部90には、基準クロック発生器100から基準クロックが入力される。CPUクロック生成部90では、入力された基準クロックの周波数が数倍速化されたCPU作動クロックが生成され、CPUコア50〜56に供給される。各CPUコアはこのクロックを基準に処理を実行していく。
CPUクロック生成部90は、基準クロックからCPU作動クロックを生成する際に、基準クロックの周波数の何倍の周波数のCPU作動クロックを生成できるかをソフト的に指定できるクロック設定レジスタ92,94,96,98(以下、CL92〜96とも呼ぶ。)を持つ。
CL92〜98に設定する値によって、各CPUコア50〜56に供給するCPU作動クロック周波数を各CPUコアごとに独立して指定できるようになっている。CL92はCPUコア50、CL94はCPUコア52・・・のように紐づけられている。
例えば、CL92はCPUコア50に供給するCPU作動クロック周波数を指定することができる。基準クロック周波数が100MHzの場合、CL92に「1」を設定すると基準クロック周波数と等倍の100MHzの周波数のCPU作動クロックがCPUコア50に供給される
CL92に「5」を設定すると、基準クロック周波数の5倍の周波数である500MHzのCPU作動クロックがCPUコア50に入力される。CL92に「5」、CL94に「4」を設定すると、CPUコア50には、500MHz、CPUコア52には400MHzのCPU作動クロックが供給される。このように基準クロック周波数を基本として各CPUコア50〜56に各々異なる周波数のCPU作動クロックが供給できるようになっている。
(制御部における処理)
次に制御部30で実行される処理について説明する。
すべてのCPUコアで実行されるソフトとして最下層にスーパーバイザ処理がある。スーパーバイザ処理は、温度検出手段を通じて各CPUコアの温度を検出し、検出した温度に応じてCPUコア毎のCPU作動クロック周波数を決定し、CPU全体が高温にならないようにCPU作動クロック周波数を低減させることによって制御処理を行う。
スーパーバイザ処理で設定されたCPU作動クロック周波数の設定状態を別のソフトウエア(OS)から参照可能となっている。
制御部30で実行されるスーパバイザ処理の上位にはOS層がある。マルチコアCPUにおけるOSの実装技術としては次の3つに代表されるものがある。
(1)AMP(Asymmetric Multiprocessing:非対称型マルチプロセッシング):特定の単一CPUコアに特定のソフト(タスク)を静的に割り当てて実行する。特定ソフト(タスク)が単一CPUコア上で走るためにリアルタイム性や信頼性を保証しやすい。
(2)SMP(Symmetric Multi-processing:対象型マルチプロセッシング):複数のCPUコアにソフト(タスク)を動的に割り当てて実行する。ソフト(タスク)が複数のCPUコア上で並列実行されるため高性能を得やすい反面、リアルタイム性や信頼性を保証しにくい。SMPでは各CPUコアに隣接しているキャッシュの一貫性(コヒーレンシ)を複数のCPUコアで保つ必要があり、この場合にマルチコアCPU内部のキャッシュ同期部68で一貫性が保証されるように実装する。
(3)BMP(Bound Multiprocessing):AMPとSMPのハイブリッド構成で、一部のCPUコアをAMPに割り当て、別のCPUコアをSMPに割り当てる。
カーナビゲーション装置1においては、信頼性を要求される運転支援機能はAMPで、高性能が要求されるマルチメディア機能はSMPで実装できるBMPが一般的には有利とされている。
本実施形態ではOSとしてBMPを採用することとして以後説明を行う。
図2に示すように、AMPにCPUコア(1)50が割り当てられ、SMPにCPUコア(2)52,CPUコア(3)54、CPUコア(4)56が割り当てられてAMP上で運転支援ソフト、SMP上でマルチメディア・ソフトが実行される。
(スーパーバイザ処理)
次に図3に基づいて、スーパーバイザ処理の詳細について説明する。図3は、スーパーバイザ処理の流れを示すフローチャートである。
スーパーバイザ処理は、AMPあるいはSMPの基本タイマから定期的に起動するようにしてもよいし、各CPUコアのに基本タイマを設定し、定期割り込みから定期的に実行されるようにしてもよい。
スーパーバイザ処理の実行権として特権モードが指定できるCPUにおいては、スーパーバイザ処理以外のソフトがバグによって各CPUコア作動クロック周波数を設定するレジスタCL92〜98を勝手に変更しないように、スーパーバイザ処理だけを特権モードで実行するように実装することが望ましい。
スーパーバイザ処理は、処理優先度格納部32から予めどのCPUコア50〜56がAMPあるいはSMPに割り当てられているかを読み込み、内部情報として保持している。
スーパーバイザ処理が開始されると図3に示すように、先ず、S100において、変数nが1にセットされる。
そして、続くS105において、CPUコア(1)50に取り付けられた温度センサ(1)80からCPUコア(1)の温度が入力される。
次に、S110において、CPUコア(1)50がAMP−OSの制御下にあるか否かが判定され、CPUコア(1)がAMP−OSの制御下にあれば(S110:Yes)、S115へ処理が移行され、AMP−OSの制御下にない、換言すればSMP−OSの制御下にあれば(S110:No)、S120へ処理が移行される。
S115では、図4(a)に示すように、処理優先度格納部32に格納されているAMP側CPUクロック周波数制御マップが参照され、CPUコア(1)50のCPU作動クロック周波数が設定される。なお、CPUクロック周波数制御マップは、図4に示すように、CPUコア50〜56の温度に対して、設定すべきCPUクロック倍率を定めたものである。
S120では、図4(b)に示すように、処理優先度格納部32に格納されているSMP側CPUクロック周波数制御マップが参照され、CPUコア(1)50のCPU作動クロック周波数が設定される。
続くS125において、CPUコア(1)50のクロック倍率設定が必要であるか否かが判定される。具体的には、現在のCPU作動クロック周波数と設定すべきCPU作動クロック周波数が同一あるかが判定され、異なっていれば(S125:Yes)、S130に処理が移行され、異なっていなければS135へ処理が移行される。
S130では、CPUコア(1)50へ供給するCPU作動クロック周波数を決定するCL(1)92に、前述したクロック周波数制御マップから参照したクロック倍率を設定して、供給クロック周波数が変更される。
続くS135では、変数nの値が1増加され、続くS140で変数nがCPUコアの数(本実施形態では4個)を越えているか否かが判定される。変数nが4を越えていれば(S140:Yes)、処理がS100へ移行されて、CPUコア(1)から本スーパーバイザ処理が繰り返される。
一方、変数nが4を越えていなければ(S140:No)、処理がS105へ移行されて次のCPUコア(2)に対して処理が行われ、全てのCPUコア(1)50〜(4)56に対して、CPU作動クロック周波数の設定が行われる。
以上に説明したスーパーバイザ処理が実行された場合に、各CPUコア50〜60にどのようにCPU作動クロック周波数が設定されるかを図4に基づいて説明する。
この場合、マルチコアCPUへの基準クロック周波数を100MHzとし、説明を簡易化するために全てのCPUコア50〜56の温度は同じであるものとする。
CPUコア温度が60°Cより低い場合は、CPUコア50〜56は、図4(a)及び図4(b)に示すように、すべてCPUクロック倍率5(つまり、CPU作動クロック周波数500MHz)で作動する。
ここで、例えばCPUの冷却ファンのベアリングに異常が発生し、ファンの回転数が低下してしまう障害が発生したものとする。ファン回転数の低下により設計時に想定された放熱量が確保できなくなるとCPUコア50〜56の温度は徐々に上昇する。
CPUコア温度が60°Cに達した時点で、図4(a)に示すように、SMP側を実行しているCPUコア52〜56のCPUクロック倍率が4となり、CPU作動クロック周波数が500MHzから400MHzに低減する。
これによりSMP側で実行されているマルチメディア・ソフトはCPUコア52〜54の性能の低減によって、所定の機能が維持できるなくなる可能性があるが、AMP側の運転支援ソフトは、500MHzでの作動状態のまま変わらず作動し続けることが可能となる。
これで放熱量とマルチコアCPU10自身の発熱量とがバランスする場合は、これ以上CPUコア50〜56の温度が上昇しないため、この状態で作動を継続することとなる。しかし放熱量が不足している場合はさらにCPUコア50〜56の温度が上昇することとなる。
次にCPUコア温度が70°Cに達すると、図4(a)に示すようにSMP側を実行しているCPUコア52〜54のCPUクロック倍率が2となり、CPU作動クロック周波数が400MHzから200MHzへと更に低減することになる。
この場合においても図4(b)に示すように、AMP側を実行しているCPUコア50のCPUクロック倍率は5であるので、CPUコア50は、CPU作動クロック周波数500MHzのまま変わらず作動し続けることが可能となる。
それでもCPUコアの温度上昇が止まらず75°Cに達すると、図4(a)に示すように、SMP側のCPUコア52〜54のCPUクロック倍率を0とし、CPU作動クロックを完全に停止させると共に、図4(b)に示すように、AMP側のCPUコア50のCPUクロック倍率を4として、CPU作動クロック周波数を500MHzから400MHzに低減させる。
(アプリケーション・ソフトの処理)
マルチコアCPUの温度上昇のためにCPUコアのCPU作動クロック周波数を低減させた場合、ハードウエアに何らかの障害が発生していることを運転者等に伝達すると同時に、故障による機能低下を運転者等に意識させない作りが可能であれば、そのようにすることが望ましい。このためのアプリケーション・ソフトにおける制御処理のフローチャートを図5に示す。
この制御処理は、アプリケーション・ソフトにおいて、定期的に実行され、まず、S200において、CPUコア50〜56(図2参照)のCPUクロック倍率がどのように設定されているかが制御部10(図2参照)から取得され、各CPUコア50〜56に設定されているCPUクロック倍率が最高倍率であるか否かが判定される。
CPUクロック倍率が最高倍率であった場合(S200:Yes)は、続くS205に処理が移行され、CPUクロック倍率が最高倍率でなかった場合(S200:No)は、S210へ処理が移行される。
S205では、アプリケーション・ソフトに対し通常の処理を行うような処理が行なわれる。
一方、S210では、ハードウエアに故障が発生した旨がディスプレイ40に表示され、続くS215において、CPUコア50〜56に対して、アプリケーション・ソフトの処理が軽減される処理が行われる。
例えば、アプリケーション開発時において、CPUコア50〜56がフルパワで実行される場合の他に、CPU作動クロック周波数が低減した場合でも処理が実行しきれるように処理負荷を軽減した処理手順を準備しておき、先のCPU作動クロック周波数が低減した場合には軽負荷の処理に切替えることによって、自身の成立性が損なわれないようにすることが考えられる。
具体的には、マルチメディア・ソフトのDVD再生を例に取ると、フルパワで実行される場合にはフレームレート30Hz、5.1chサラウンド音声を再生できるように作り込んでおき、CPUコア50〜56のCPU作動クロック周波数が低減した場合には、それを検出してフレームレート15Hz、2chステレオ音声に切替えて実行するように実装し、CPUの実行能力が低減した場合には、動画表示がコマ落ちしたり音声が途切れ途切れにならずに違和感のないサービスを提供するのである。
(カーナビゲーション装置の特徴)
以上のカーナビゲーション装置1によれば、温度センサ80,82,84,86によってCPUコア50〜56の何れかの温度が所定の値であることが検出された場合、各CPUコア50,52,54,56に割り当てられた処理のうち最も優先度の高い処理が割り当てられたCPUコア50以外のCPUコア52,54,56のCPU作動クロック周波数が低減される。
したがって、マルチコアCPU10の周囲温度の上昇やマルチコアCPU10自身の発熱量の増加が異常の要因であった場合、CPUコア52〜56の発熱量を低減させれば、マルチコアCPU10の温度が下がる。温度が下がれば、CPUコア52,54,56の処理能力を低減させなくても済む。
また、各CPUコア50〜56に、処理の優先度の高い順に、車両の安全走行制御処理、経路案内処理、オーディオ機器制御処理が各CPUコア50,52,54,56に割り当てられている。
そして、CPUコア50〜56の温度が所定の値になった場合、処理の優先度が最も高い車両の安全走行制御処置が割り当てられたCPUコア50以外のCPUコア52〜56のCPU作動クロック周波数を低減させる。つまり、車両の安全走行に関連の低い経路案内処理やオーディオ機器制御処理の性能を低減させている
このようにして、処理の優先度の低い処理が割り当てられたCPUコア52〜56のCPU作動クロック周波数を低減させることによって、マルチコアCPU10の温度を下げることができる。マルチコアCPU10の温度を下げることができるので、CPUコア50のCPU作動クロック周波数を通常の値に保つことができる。つまり、車両の安全走行制御を通常と同じ性能で実行することができる。
また、温度センサ80〜86で各CPUコア50〜56の何れかの温度が異常な温度になった場合、つまり、温度が所定の値以上になった場合、処理の優先度が最も高い処理が割り当てられたCPUコア50以外のCPUコア52〜56のCPU作動クロック周波数を低減させることができるので、処理の優先度が最も高い処理が割り当てられたCPUコア50以外のCPUコア52〜56の発熱量を減少させることができる。
(その他の実施形態)
以上、本発明の実施形態について説明したが、本発明は、本実施形態に限定されるものではなく、種々の態様を採ることができる。
(1)上記実施形態では、各CPUコア50〜56ごとに独立した温度センサ80〜86を設置したが、各CPUコア50〜56ごとに独立した温度センサ80〜86を設置すろことが困難な場合は、マルチコアCPU10全体の温度検出が可能なように温度センサをひとつだけ設置して、マルチコアCPU10単体の温度を計測するように構成してもよい。
(2)上記実施形態では、CL(2)94〜CL(4)98の3つのCLを設け、処理の優先度が最も高い処理が割り当てられたCPUコア50以外のCPUコア52〜56のCPU作動周波数を個別に設定できるようにしたが、CLを1つにして、一括してCPUコア52〜56へ供給するCPU作動クロックの周波数を設定できるようにしてもよい。
このようにすると、CPUクロック生成部90の構成が簡単になって都合がよい。
(3)上記実施形態では、アプリケーション・ソフトの負荷を軽減させる方法として、DVD再生の際のフレームレートを低減させていたが、ナビゲーション・ソフトの処理負荷の高い3D地図表示をクロック周波数の低減中には規制し、主として2次元地図を表示すようにしてもよい。
カーナビゲーション装置1のシステムイメージを示す図である。 カーナビゲーション装置1の概略のシステム構成を示すブロック図である。 制御部10で実行されるスーパーバイザ処理の流れを示すフローチャートである。 処理優先度格納部32に格納されているCPUクロック周波数制御マップを示す図である。 アプリケーション・ソフトにおける制御処理のフローチャートである。
符号の説明
1…カーナビゲーション装置、3…マイクロコンピュータ、5…外部機器、10…マルチコアCPU、12…DMA、14…I/O、16…ROM、18…RAM、20…描画LSI、22…D/Aコンバータ、24…PIO、30…制御部、32…処理優先度格納部、34…オペレーティングシステム、36…アプリケーション・ソフト、40…ディスプレイ、42…スピーカ、44…スイッチ、50,52,54,56…CPUコア、60,62,64,66…キャッシュメモリ、68…キャッシュ同期部、70…メモリ・コントローラ、80,82,84,86…温度センサ、88…温度検出部、90…CPUクロック生成部、92,94,96,98…クロック設定レジスタ(CL)、100…基準クロック発生器。

Claims (5)

  1. 複数のCPUコアから構成され、各CPUコアに処理が割り当てられて実行される移動体用マルチコアCPUの制御装置であって、
    前記移動体用マルチコアCPUの処理能力を低下させる異常が発生したことを検出する異常検出手段と、
    予め定められた、前記複数のCPUコアに割り当てられた処理の優先度を格納する処理優先度格納手段と、
    前記複数のCPUコアの各々の処理能力を調整するための処理能力調整手段と、
    前記異常検出手段によって前記異常が検出されたときに、前記処理優先度格納手段に格納された処理の優先度が最も高い処理が割り当てられたCPUコア以外のCPUコアの処理能力を前記処理の優先度に応じて低減させるように前記処理能力調整手段を制御する制御手段と、
    を備えたことを特徴とする移動体用マルチコアCPUの制御装置。
  2. 請求項1に記載の移動体用マルチコアCPUの制御装置において、
    前記処理能力調整手段は、前記処理の優先度が最も高い処理が割り当てられたCPUコア以外のCPUコアの処理能力を一括して調整することを特徴とする移動体用マルチコアCPUの制御装置。
  3. 請求項1又は請求項2に記載の移動体用マルチコアCPUの制御装置において、
    前記異常検出手段は、前記移動体用マルチコアCPUの処理能力を低下させる異常として、前記複数のCPUコアのうち少なくとも1つの温度が所定の値以上になったことを検出し、
    前記処理能力調整手段は、前記処理の優先度が最も高い処理が割り当てられたCPUコア以外のCPUコアの作動クロック周波数を低減可能に構成されていることを特徴とする移動体用マルチコアCPUの制御装置。
  4. 移動体用マルチコアCPUと、
    請求項1〜請求項3の何れかに記載の移動体用マルチコアCPUの制御装置と、
    を備えたことを特徴とする移動体用マイクロコンピュータ。
  5. 請求項4に記載の移動体用マイクロコンピュータが組み込まれていることを特徴とする移動体操縦支援装置。
JP2006277790A 2006-10-11 2006-10-11 移動体用マルチコアcpuの制御装置、移動体用マイクロコンピュータ及び移動体操縦支援装置 Pending JP2008097280A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006277790A JP2008097280A (ja) 2006-10-11 2006-10-11 移動体用マルチコアcpuの制御装置、移動体用マイクロコンピュータ及び移動体操縦支援装置
US11/907,107 US20080091974A1 (en) 2006-10-11 2007-10-09 Device for controlling a multi-core CPU for mobile body, and operating system for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006277790A JP2008097280A (ja) 2006-10-11 2006-10-11 移動体用マルチコアcpuの制御装置、移動体用マイクロコンピュータ及び移動体操縦支援装置

Publications (1)

Publication Number Publication Date
JP2008097280A true JP2008097280A (ja) 2008-04-24

Family

ID=39380066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006277790A Pending JP2008097280A (ja) 2006-10-11 2006-10-11 移動体用マルチコアcpuの制御装置、移動体用マイクロコンピュータ及び移動体操縦支援装置

Country Status (1)

Country Link
JP (1) JP2008097280A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7757233B2 (en) 2008-07-10 2010-07-13 International Business Machines Corporation Controlling a computer system having a processor including a plurality of cores
JP2010218208A (ja) * 2009-03-17 2010-09-30 Konica Minolta Business Technologies Inc 画像形成装置、ジョブ管理装置及びジョブ管理方法
JP2010218277A (ja) * 2009-03-17 2010-09-30 Toyota Motor Corp 故障診断システム、電子制御ユニット、故障診断方法
JP2011171857A (ja) * 2010-02-16 2011-09-01 Toshiba Corp 再生装置および再生装置の制御方法
JP2013542492A (ja) * 2010-09-14 2013-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 処理ノードにおける電力消費を制御するための機構
US9222430B2 (en) 2010-02-01 2015-12-29 Toyota Jidosha Kabushiki Kaisha Multicore processor and onboard electronic control unit using same
US9377830B2 (en) 2011-12-30 2016-06-28 Samsung Electronics Co., Ltd. Data processing device with power management unit and portable device having the same
CN107729147A (zh) * 2014-03-06 2018-02-23 华为技术有限公司 流计算系统中的数据处理方法、控制节点及流计算系统
CN109649395A (zh) * 2018-12-29 2019-04-19 驭势科技(北京)有限公司 一种基于计算资源的自动驾驶调整方法及车载设备
JP2020009324A (ja) * 2018-07-11 2020-01-16 株式会社デンソー 電子装置
JP2020106918A (ja) * 2018-12-26 2020-07-09 ルネサスエレクトロニクス株式会社 半導体装置、温度制御装置、及び方法
US10754407B2 (en) 2017-11-22 2020-08-25 Konica Minolta, Inc. Image forming apparatus and program
JP2020181244A (ja) * 2019-04-23 2020-11-05 株式会社デンソー 電子制御装置
JP2023513597A (ja) * 2020-02-14 2023-03-31 ヴァレオ・シャルター・ウント・ゼンゾーレン・ゲーエムベーハー カメラ装置、自動車、方法、およびコンピュータプログラム製品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005115939A (ja) * 2003-10-07 2005-04-28 Hewlett-Packard Development Co Lp ラック機器アプリケーション動作変更システムおよび方法
WO2005124550A1 (ja) * 2004-06-22 2005-12-29 Sony Computer Entertainment Inc. プロセッサ、情報処理装置およびプロセッサの制御方法
JP2008026948A (ja) * 2006-07-18 2008-02-07 Renesas Technology Corp 半導体集積回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005115939A (ja) * 2003-10-07 2005-04-28 Hewlett-Packard Development Co Lp ラック機器アプリケーション動作変更システムおよび方法
WO2005124550A1 (ja) * 2004-06-22 2005-12-29 Sony Computer Entertainment Inc. プロセッサ、情報処理装置およびプロセッサの制御方法
JP2008026948A (ja) * 2006-07-18 2008-02-07 Renesas Technology Corp 半導体集積回路

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7757233B2 (en) 2008-07-10 2010-07-13 International Business Machines Corporation Controlling a computer system having a processor including a plurality of cores
JP2010218208A (ja) * 2009-03-17 2010-09-30 Konica Minolta Business Technologies Inc 画像形成装置、ジョブ管理装置及びジョブ管理方法
JP2010218277A (ja) * 2009-03-17 2010-09-30 Toyota Motor Corp 故障診断システム、電子制御ユニット、故障診断方法
US8656216B2 (en) 2009-03-17 2014-02-18 Toyota Jidosha Kabushiki Kaisha Failure diagnostic system, electronic control unit for vehicle, failure diagnostic method
US9222430B2 (en) 2010-02-01 2015-12-29 Toyota Jidosha Kabushiki Kaisha Multicore processor and onboard electronic control unit using same
JP2011171857A (ja) * 2010-02-16 2011-09-01 Toshiba Corp 再生装置および再生装置の制御方法
JP2013542492A (ja) * 2010-09-14 2013-11-21 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 処理ノードにおける電力消費を制御するための機構
US9377830B2 (en) 2011-12-30 2016-06-28 Samsung Electronics Co., Ltd. Data processing device with power management unit and portable device having the same
CN107729147A (zh) * 2014-03-06 2018-02-23 华为技术有限公司 流计算系统中的数据处理方法、控制节点及流计算系统
CN107729147B (zh) * 2014-03-06 2021-09-21 华为技术有限公司 流计算系统中的数据处理方法、控制节点及流计算系统
US10754407B2 (en) 2017-11-22 2020-08-25 Konica Minolta, Inc. Image forming apparatus and program
JP2020009324A (ja) * 2018-07-11 2020-01-16 株式会社デンソー 電子装置
JP7087752B2 (ja) 2018-07-11 2022-06-21 株式会社デンソー 電子装置
JP2020106918A (ja) * 2018-12-26 2020-07-09 ルネサスエレクトロニクス株式会社 半導体装置、温度制御装置、及び方法
JP7146622B2 (ja) 2018-12-26 2022-10-04 ルネサスエレクトロニクス株式会社 半導体装置、温度制御装置、及び方法
CN109649395A (zh) * 2018-12-29 2019-04-19 驭势科技(北京)有限公司 一种基于计算资源的自动驾驶调整方法及车载设备
CN109649395B (zh) * 2018-12-29 2023-12-01 驭势科技(北京)有限公司 一种基于计算资源的自动驾驶调整方法及车载设备
JP2020181244A (ja) * 2019-04-23 2020-11-05 株式会社デンソー 電子制御装置
JP7226064B2 (ja) 2019-04-23 2023-02-21 株式会社デンソー 電子制御装置
JP2023513597A (ja) * 2020-02-14 2023-03-31 ヴァレオ・シャルター・ウント・ゼンゾーレン・ゲーエムベーハー カメラ装置、自動車、方法、およびコンピュータプログラム製品

Similar Documents

Publication Publication Date Title
JP2008097280A (ja) 移動体用マルチコアcpuの制御装置、移動体用マイクロコンピュータ及び移動体操縦支援装置
US20080091974A1 (en) Device for controlling a multi-core CPU for mobile body, and operating system for the same
JP2008123439A (ja) オペレーティング・システム、プログラム及び移動体操縦支援装置
JP5316128B2 (ja) 故障診断システム、電子制御ユニット、故障診断方法
JP6018881B2 (ja) ナビゲーション装置、及びナビゲーション方法
JP5256340B2 (ja) 計算機及び計算機の電力管理システム
JP6215931B2 (ja) 図形表示処理装置、図形表示処理方法及び図形表示処理装置を備える車両
JP2010271930A (ja) マルチコアプロセッサシステム
JP2008152470A (ja) データ処理システム及び半導体集積回路
JP2008176360A (ja) マルチプロセッサシステム
JP7146622B2 (ja) 半導体装置、温度制御装置、及び方法
JP5338905B2 (ja) キャッシュ制御装置およびキャッシュ制御方法
JP6965212B2 (ja) 車両用表示装置
JP2012218467A (ja) 電子制御装置
JP2005071161A (ja) タスク管理プログラムおよびタスク制御装置
JP2014004858A (ja) 車両制御装置
JP7271973B2 (ja) 車両制御装置、動作クロック切換方法
JP2004295450A (ja) プロセッサ、このプロセッサのクロック周波数決定方法及び電源電圧決定方法
JP2012116138A (ja) 制御装置、制御プログラム、画像形成装置
JP5435663B2 (ja) 電子機器の保守装置、方法、及びプログラム
JP2009258984A (ja) 情報処理装置およびロード制御方法
JP2006113272A (ja) 映像投射装置
JP5438800B2 (ja) データ整合性保障システム
JP2019036261A (ja) スタックオーバーフロー検知装置及び車両制御システム
JP2010018150A (ja) 電子制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100803