JP2008123439A - Operating system, program and mobile body manipulation support apparatus - Google Patents

Operating system, program and mobile body manipulation support apparatus Download PDF

Info

Publication number
JP2008123439A
JP2008123439A JP2006309352A JP2006309352A JP2008123439A JP 2008123439 A JP2008123439 A JP 2008123439A JP 2006309352 A JP2006309352 A JP 2006309352A JP 2006309352 A JP2006309352 A JP 2006309352A JP 2008123439 A JP2008123439 A JP 2008123439A
Authority
JP
Japan
Prior art keywords
cpu
cpu core
core
processing
abnormality
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.)
Withdrawn
Application number
JP2006309352A
Other languages
Japanese (ja)
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 JP2006309352A priority Critical patent/JP2008123439A/en
Priority to US11/907,107 priority patent/US20080091974A1/en
Publication of JP2008123439A publication Critical patent/JP2008123439A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technology relating to an operating system of a multi-core CPU for continuing processing with a high priority even if abnormality occurs in a CPU core. <P>SOLUTION: The operating system detects that abnormality occurs in any of CPU core (1) 50 to CPU core (4) 56, and when abnormality occurs in the CPU (1), the operating system reallocates an AMP (asymmetric multiprocessing) and driving support software allocated to the CPU core (1) to another CPU core (for example, CPU core (2) 52). An SMP (symmetric multi-processing) and multimedia software allocated to the CPU core (2) 52 to the CPU core (4) 56 are reallocated to CPU cores (for example, CPU core (3) 54 and CPU core (4) 56) other than the CPU core (1) 50 and the CPU core (2) 52. Thus, even when abnormality occurs in the CPU core (1) 50, the driving support software largely related to safety traveling of a vehicle is executed with normal performance to thereby to ensure safety during vehicle traveling. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、複数のCPUコアから構成されるマルチコアCPUのオペレーティング・システムに関する。   The present invention relates to an operating system for a multi-core CPU composed of a plurality of CPU cores.

従来、マルチコアCPUを用いたシステムにおいては、複数のCPUコアを同列に扱って仮想的に1つのCPUに見せる対象型マルチプロセッシング・オペレーティング・システム(以下、SMP型OSとも呼ぶ。SMPは、Symmetric Multi-Processingの略)が適用されることが多い。   2. Description of the Related Art Conventionally, in a system using a multi-core CPU, a target multiprocessing operating system (hereinafter also referred to as an SMP type OS) in which a plurality of CPU cores are handled in the same row and virtually displayed on one CPU. -Processing abbreviation) is often applied.

そのようなSMP型OSをマルチコアCPUに適用したシステムでは、システム機能を実現するためのソフト実行の合間に、各CPUコアの故障診断ソフトを実行するサイクルを設け、システム機能実現ソフトとCPUコアの故障ソフトを並列実行させている。   In a system in which such an SMP type OS is applied to a multi-core CPU, a cycle for executing failure diagnosis software for each CPU core is provided between executions of software for realizing system functions, and the system function realizing software and CPU core Fault software is executed in parallel.

そして、特定のCPUコアが故障と診断された場合にはそのCPUコアをパージして、残りのCPUコアのみでSMP型OSを構成してシステム動作を継続することを可能としている(例えば、特許文献1参照)。
特開2005−129053号公報
When a specific CPU core is diagnosed as having a failure, the CPU core is purged, and the SMP-type OS can be configured with only the remaining CPU cores to continue system operation (for example, patents). Reference 1).
JP 2005-129053 A

ところが、上記SMP型OSは、ソフトの重要性に応じたCPUリソースの配分を行うようには考えられていない。したがって、CPUコア故障時にはSMP型OSへ割り当てられているCPUコアの数が減少するので、マルチコアCPU全体としては、ソフトの処理能力が低下するという問題がある。   However, the SMP OS is not considered to distribute CPU resources according to the importance of software. Therefore, since the number of CPU cores assigned to the SMP type OS is reduced when the CPU core fails, there is a problem that the software processing capacity of the multi-core CPU as a whole is lowered.

例えば、車両の運転支援を行う運転支援装置などに上記SMP型OSを適用した場合、あるCPUコアが故障すると、その故障が発生する前の処理を残りのCPUコアで実行する。   For example, when the SMP OS is applied to a driving support device that supports driving of a vehicle, when a certain CPU core fails, the remaining CPU cores execute processing before the failure occurs.

したがって、処理負荷の高い動画データの映像デコード処理にCPUリソースが占有され、運転支援などの安全性に直結する重要な機能のソフト処理が間に合わないといった問題、例えば、エンジンECUとの連携動作をするための通信処理が決められた時間内に終えられないため運転支援機能が停止するというような問題が発生するのである。   Therefore, CPU resources are occupied in the video decoding processing of moving image data with a high processing load, and the software processing of important functions that are directly related to safety such as driving support is not in time, for example, it cooperates with the engine ECU. Therefore, the problem arises that the driving support function is stopped because the communication process is not completed within the predetermined time.

本発明は、このような問題に鑑みなされたものであり、CPUコアに異常が発生しても、優先度の高い処理を継続させるためのマルチコアCPUのオペレーティング・システムに関する技術を提供することを目的としている。   The present invention has been made in view of such problems, and an object of the present invention is to provide a technique related to an operating system of a multi-core CPU for continuing high-priority processing even when an abnormality occurs in the CPU core. It is said.

かかる問題を解決するためになされた請求項1に記載の発明は、複数のCPUコア(50,52,54,56:この欄においては、発明に対する理解を容易にするため、必要に応じて「発明を実施するための最良の形態」欄において用いた符号を付すが、この符号によって請求の範囲を限定することを意味するものではない。)から構成され、各CPUコア(50〜56)に処理が割り当てられて実行される移動体用マルチコアCPU用のオペレーティング・システムであって、異常検出処理と割当処理とを備えていることを特徴としている。   The invention according to claim 1, which has been made to solve such a problem, includes a plurality of CPU cores (50, 52, 54, 56: In this column, in order to facilitate understanding of the invention, " The reference numerals used in the column “Best Mode for Carrying Out the Invention” are attached, but this reference is not meant to limit the scope of claims.), And each CPU core (50 to 56) An operating system for a multi-core CPU for a mobile unit that executes processes assigned thereto, and includes an abnormality detection process and an assignment process.

異常検出処理は、複数のCPUコア(50〜56)の何れかに正常に演算を実行できない異常が発生したか否かを検出する。
割当処理は、異常検出処理によって複数のCPUコア(50〜56)の何れかに正常に演算を実行できない異常が検出された場合、異常が検出されたCPUコア(50)に割り当てられている処理を予め定められた処理の優先順位に応じて異常が検出されたCPUコア以外(52〜56)のCPUコアに割り当てる。
In the abnormality detection process, it is detected whether or not an abnormality has occurred in which any of the plurality of CPU cores (50 to 56) cannot be normally operated.
The assignment process is a process assigned to a CPU core (50) in which an abnormality is detected when an abnormality that cannot be normally performed in any of the plurality of CPU cores (50 to 56) is detected by the abnormality detection process. Are assigned to CPU cores other than the CPU core in which an abnormality is detected (52 to 56) according to a predetermined processing priority.

このような移動体用マルチコアCPU(10)用のオペレーティング・システムによれば、移動体用マルチコアCPU(10)に正常に演算を実行できない異常が発生しても、優先度の高い処理の性能を低下させることなく実行することができる。以下、詳細に説明する。   According to such an operating system for the mobile multi-core CPU (10), even if an abnormality that cannot be normally performed on the mobile multi-core CPU (10) occurs, high-priority processing performance is achieved. It can be executed without degrading. Details will be described below.

車両などの移動体は、比較的早い速度で移動するために、周囲環境、特に周囲温度の変化が大きい。また、移動体に搭載されている機器は、高温や振動あるいは衝撃といった環境にさらされる場合が多い。移動体に搭載されるCPUは、このような周囲温度の変化、振動、衝撃といった環境下で正常に作動することが必要である。   Since a moving body such as a vehicle moves at a relatively high speed, a change in an ambient environment, particularly an ambient temperature, is large. In addition, devices mounted on mobile objects are often exposed to environments such as high temperatures, vibrations, and shocks. The CPU mounted on the moving body needs to operate normally under such an environment such as a change in ambient temperature, vibration, and impact.

また、移動体用CPUでは、種々の処理が実行されている。例えば、安全運転支援のための制御処理や表示処理、経路案内処理、オーディオ装置制御処理などが1つのCPUで実行されている。そして、これら移動体用CPUで実行される処理には優先度があるというのも移動体用CPUの特徴である。移動体用CPUで実行される処理においては、移動体の安全性を確保するという観点から、安全運転のための制御処理や表示処理は優先度が高く、オーディオ装置制御処理などは優先度が低い。   In the mobile CPU, various processes are executed. For example, control processing and display processing for safe driving support, route guidance processing, audio device control processing, and the like are executed by one CPU. A characteristic of the mobile CPU is that these processes executed by the mobile CPU have priority. In the processing executed by the CPU for the moving body, from the viewpoint of ensuring the safety of the moving body, the control processing and display processing for safe driving have a high priority, and the audio device control processing has a low priority. .

したがって、移動体用CPUが上記のような種々の環境にさらされ、演算が正常に行なわれない等の異常が発生した場合には、CPUでソフトウエアが正常に実行されないので、もし異常が発生したCPUが安全運転のための機能を提供するためのソフトウエアを実行している場合には、移動体の安全を確保することが困難になるおそれがある。   Therefore, if the mobile CPU is exposed to various environments as described above and an abnormality such as the operation not being performed normally occurs, the software will not be executed normally by the CPU. In the case where the CPU is executing software for providing a function for safe driving, it may be difficult to ensure the safety of the moving object.

ところが、請求項1に記載の移動体用マルチコアCPU(10)用のオペレーティング・システムによれば、CPUコア(50〜56)の何れかに正常に演算を実行できない異常が検出された場合、そのCPUコア(50)で実行されていた処理を別のCPUコア(52〜56)に優先度に応じて割り当てる。   However, according to the operating system for the mobile multi-core CPU (10) according to claim 1, when an abnormality that cannot be normally performed in any of the CPU cores (50 to 56) is detected, The process executed by the CPU core (50) is assigned to another CPU core (52 to 56) according to the priority.

したがって、最も優先度が高い処理が割り当てられたCPUコア(50)に前述の異常が発生しても、そこで実行されていた処理は別のCPUコア(52〜56)に割り当てられるので、正常に作動しているCPUコアが1個でもあれば、最も優先度の高い処理は停止されずに実行される。   Therefore, even if the above-mentioned abnormality occurs in the CPU core (50) to which the process with the highest priority is assigned, the process being executed there is assigned to another CPU core (52 to 56). If there is even one operating CPU core, the process with the highest priority is executed without being stopped.

例えば、処理の優先度の高い順に、車両の安全走行制御処理、経路案内処理、オーディオ機器制御処理が各CPUコア(50,52,54,56)に割り当てられているとする。   For example, it is assumed that the safe driving control process, the route guidance process, and the audio device control process of the vehicle are assigned to the CPU cores (50, 52, 54, and 56) in descending order of processing priority.

その場合、CPUコア(50)に正常に演算を実行できない異常が生じた場合、処理の優先度が最も高い車両の安全走行制御処置が割り当てられたCPUコア(50)以外のCPUコア(52,54,56)の1つに、その処理(安全走行制御処理)を割り当てる。   In that case, when an abnormality that cannot be normally performed occurs in the CPU core (50), a CPU core (52, 52) other than the CPU core (50) to which the safe driving control measure for the vehicle having the highest processing priority is assigned. 54 (56) is assigned the process (safe driving control process).

このようにして、処理の優先度の最も高い処理が割り当てられたCPUコア(50)に異常が発生したときに、その処理を他のCPUコア(52〜54)で実行させることができるので、優先度が最も高い処理が通常に実行される。つまり、例えば、車両の安全走行制御を通常と同じ性能で実行することができる。   In this way, when an abnormality occurs in the CPU core (50) to which the process with the highest processing priority is assigned, the process can be executed by the other CPU cores (52 to 54). The process with the highest priority is normally executed. That is, for example, the safe traveling control of the vehicle can be executed with the same performance as usual.

なお、このとき、処理の優先度の最も低い処理は、割り当てるCPUコアがなくなるので、実行されなくなる。
なお、ここでいう「オペレーティング・システム」とは、必ずしもプログラム(コンピュータに対する指令であって、一の結果を得ることができるように組み合わされたもの)によってのみ実現されるだけでなく、機能の全部又は一部をハードウエアによって実現するものであってもよい。
At this time, the process with the lowest process priority is not executed because there is no CPU core to be allocated.
Note that the “operating system” here is not necessarily realized only by a program (a command to a computer and combined so that a single result can be obtained), but also all functions. Alternatively, a part may be realized by hardware.

ところで、複数のCPUコア(50〜56)のうち、正常に作動するものがない場合に、そのまま処理を継続すると処理エラーが発生する場合がある。特に、優先順位が高い処理にエラーが発生すると問題が大きい。   By the way, when there is no CPU core (50 to 56) that operates normally, a processing error may occur if the processing is continued as it is. In particular, if an error occurs in a process with a high priority, the problem is great.

そこで、請求項2に記載のように、割当処理は、異常検出処理において複数のCPUコア(50〜56)のすべてに、それらの正常に演算を実行できない異常が検出された場合、複数のCPUコア(50〜56)に割り当てられているすべての処理を終了するために必要となる処理を行った後に、複数のCPUコア(50〜56)での処理をすべて停止させるようにするとよい。   Therefore, as described in claim 2, when an abnormality that cannot be normally performed is detected in all of the plurality of CPU cores (50 to 56) in the abnormality detection process, It is preferable to stop all the processes in the plurality of CPU cores (50 to 56) after performing the processes necessary to end all the processes assigned to the cores (50 to 56).

このようにすると、各CPUコア(50〜56)で必要な終了処理が実行された後に、すべてのCPUコア(50〜56)の処理が停止されるので、不測の処理エラーが発生しない。   In this way, the processing of all the CPU cores (50 to 56) is stopped after the necessary termination processing is executed in each CPU core (50 to 56), so that no unexpected processing error occurs.

例えば、前述のような本オペレーティング・システムが適用された車両の運転支援装置であれば、終了処理ですべてのCPUコア(50〜56)に異常が発生した旨の通知を運転支援処理側に行うようにする。そして、運転支援処理側では、通常の運転支援処理を行わず、運転者に対して、運転支援を行うことができない旨の表示などを行えば、車両の安全運転支援処理にエラーが発生することがなくなるので、安全性を確保できる。   For example, in the case of a vehicle driving support device to which the present operating system as described above is applied, a notification that an abnormality has occurred in all the CPU cores (50 to 56) is sent to the driving support processing side in the termination process. Like that. If the driving support processing side does not perform normal driving support processing and displays to the driver that driving support cannot be performed, an error will occur in the safe driving support processing of the vehicle. This eliminates the need for safety.

ところで、請求項1又は2に記載のオペレーティング・システムは、プログラムとして、その機能をコンピュータに実行させることができる。したがって、請求項3に記載のように、請求項1又は請求項2に記載のオペレーティング・システムを移動体用マルチコアCPU(10)を備えたコンピュータに実行させるプログラムとしてもよい。   By the way, the operating system according to claim 1 or 2 can cause a computer to execute its function as a program. Therefore, as described in claim 3, the operating system according to claim 1 or 2 may be a program that causes a computer including the mobile multi-core CPU (10) to be executed.

このようなプログラムによれば、移動体用マルチコアCPU(10)を備えたコンピュータに、マルチコアCPU(10)を構成する複数のCPUコア(50〜56)の何れかに、その性能を低下させる異常が発生したときに、優先順位の高い処理を正常なCPUに割り当て、優先順位の低い処理を行わないようにすることによって、優先順位が高い処理を通常と同じ性能で実行可能とすることができる。   According to such a program, an abnormality that reduces the performance of any of the plurality of CPU cores (50 to 56) constituting the multi-core CPU (10) in the computer including the mobile multi-core CPU (10). When a problem occurs, a process with a high priority can be executed with the same performance as usual by assigning a process with a high priority to a normal CPU and not performing a process with a low priority. .

例えば、車両の安全走行処理、経路案内処理、オーディオ機器制御処理などの移動体で行われる処理のうち、車両の安全走行処理を実行しているCPUコア(50)に異常が発生した場合、他のCPUコア(52〜56)の1つにその処理を割り当てる。そして、車両の安全走行に関連の低いオーディオ機器制御処理などの機能を行わないようにすることによって、車両の安全走行制御処理を通常と同じ性能で実行できるようになる。   For example, when an abnormality occurs in the CPU core (50) executing the safe driving process of the vehicle among the processes performed by the moving body such as the safe driving process of the vehicle, the route guidance process, the audio device control process, etc. The processing is assigned to one of the CPU cores (52 to 56). By not performing functions such as audio device control processing that is not related to safe driving of the vehicle, the safe driving control processing of the vehicle can be executed with the same performance as usual.

なお、「移動体用コンピュータ」とは、単にコンピュータ(例えば、携帯型パーソナルコンピュータ)が移動体内に置かれて使用者が個人的に使用するものを意味しているのではなく、移動体の有する機能と関連付けられてその機能を発揮させる処理を実行するために移動体に搭載されているコンピュータを意味している。   The term “mobile computer” does not mean that the computer (for example, a portable personal computer) is placed in the mobile body and is used personally by the user. It means a computer mounted on a mobile body to execute a process associated with a function and exhibiting the function.

請求項4に記載の移動体操縦支援装置は、請求項1又は請求項2に記載のオペレーティング・システムが備えられていることを特徴としている。
このように移動体操縦支援装置に請求項1又は請求項2に記載のオペレーティング・システムが備えられていれば、例えば、車両の安全走行に必要となる情報を運転者に提示したり、あるいは車両の安全運転のための自動走行制御運転を行う装置などでは、その装置に組み込まれているマルチコアCPU(10)を構成する複数のCPUコア(50〜56)の何れかに、正常に演算を実行できないような異常が発生しても、移動体操縦支援機能が通常の性能通りに働く。したがって、移動体の移動時の安全を確保することができる。
According to a fourth aspect of the present invention, there is provided a mobile unit steering support apparatus including the operating system according to the first or second aspect.
Thus, if the operating system of Claim 1 or Claim 2 is provided in the moving body operation assistance device, for example, information necessary for safe driving of the vehicle is presented to the driver, or the vehicle In a device that performs an automatic travel control operation for safe driving, the calculation is normally executed on any of a plurality of CPU cores (50 to 56) constituting the multi-core CPU (10) incorporated in the device. Even if an abnormality that cannot be done occurs, the mobile control support function works as normal. Therefore, it is possible to ensure safety when the mobile body is moving.

以下、本発明が適用された実施形態について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。   Embodiments to which the present invention is applied will be described below with reference to the drawings. The embodiment of the present invention is not limited to the following embodiment, and can take various forms as long as they belong to the technical scope of the present invention.

(カーナビゲーション装置1の構成)
図1は、カーナビゲーション装置1のシステムイメージを示す図である。カーナビゲーション装置1は、マイクロコンピュータ3、ディスプレイ40、スピーカ42、スイッチ44から構成されている。
(Configuration of the car navigation device 1)
FIG. 1 is a diagram showing a system image of the car navigation apparatus 1. The car navigation apparatus 1 includes a microcomputer 3, a display 40, a speaker 42, and a switch 44.

カーナビゲーション装置1は、ディスプレイ40の表示やスピーカ42の音声出力/音出力によって、経路案内のようなナビゲーション機能やオーディオ/TVといったマルチメディア機能に加え、運転者の安全運転に寄与できる図示しない周辺カメラ画像の表示や図示しない前方監視レーダによって得られる障害物警告といった運転支援情報も提供する。   The car navigation device 1 can contribute to a driver's safe driving in addition to a navigation function such as route guidance and a multimedia function such as audio / TV by the display 40 and the sound output / sound output of the speaker 42. It also provides driving support information such as camera image display and obstacle warnings obtained by a front monitoring radar (not shown).

ここで、ナビゲーション機能やオーディオ機能といった、たとえサービス品質が低下あるいは停止してしまっても車両走行時の安全性に直結しない機能は、総括してマルチメディア機能と呼び、車両周辺監視や前方障害物検知といった、運転者の運転時における安全性を向上させるための機能を運転支援機能と呼ぶこととする。   Here, functions that do not directly relate to safety when the vehicle is running, such as navigation functions and audio functions, even if service quality deteriorates or stops, are collectively referred to as multimedia functions. A function for improving the safety of the driver during driving, such as detection, is called a driving support function.

経路案内のための経路案内処理、マルチメディア機能を実現するためのマルチメディア制御処理及び運転支援機能を実現するための運転支援処理は、カーナビゲーション装置1のマイクロコンピュータ3において、同時に単一ハードウエア上で複合的に実行され、各々の機能が実現される。   The route guidance processing for route guidance, the multimedia control processing for realizing the multimedia function, and the driving assistance processing for realizing the driving assistance function are performed simultaneously in the microcomputer 3 of the car navigation apparatus 1 by a single hardware. The above functions are executed in combination, and each function is realized.

(カーナビゲーション装置1のハードウエア構成)
次に、図2に基づいてカーナビゲーション装置1のハードウエア構成を説明する。図2は、カーナビゲーション装置1の概略のハードウエア構成を示すブロック図である。
(Hardware configuration of car navigation device 1)
Next, the hardware configuration of the car navigation apparatus 1 will be described with reference to FIG. FIG. 2 is a block diagram showing a schematic hardware configuration of the car navigation apparatus 1.

カーナビゲーション装置1は、図2に示すように、マイクロコンピュータ3、ディスプレイ40、スピーカ42及びスイッチを備えている。
マイクロコンピュータ3は、図2に示すように、マルチコアCPU10、I/O14、FLASH・ROM16、RAM18、描画LSI20、D/Aコンバータ22、PIO24を備えている。
As shown in FIG. 2, the car navigation apparatus 1 includes a microcomputer 3, a display 40, a speaker 42, and a switch.
As shown in FIG. 2, the microcomputer 3 includes a multi-core CPU 10, an I / O 14, a FLASH / ROM 16, a RAM 18, a drawing LSI 20, a D / A converter 22, and a PIO 24.

マルチコアCPU10は、複数(本実施形態では4個)のCPUコア50,52,54,56から構成される移動体用のCPUであり、各CPUコア50〜56に、前述した経路案内処理、マルチメディア制御処理及び運転支援処理などが割り当てられて実行される。マルチコアCPU10の詳細については後述する。   The multi-core CPU 10 is a CPU for a moving body composed of a plurality (four in this embodiment) of CPU cores 50, 52, 54, and 56. Each of the CPU cores 50 to 56 includes a route guidance process and a multi-core CPU. Media control processing and driving support processing are assigned and executed. Details of the multi-core CPU 10 will be described later.

なお、4個のCPUコアを特定して説明する必要があるときは、「CPUコア」という用語の後に括弧で括って番号を付ける。また、特にどのCPUコアであるかを特定する必要がない場合には、括弧で括って示した各CPUコアの番号を省略して説明する。   When it is necessary to specify and describe four CPU cores, numbers are given in parentheses after the term “CPU core”. In addition, when it is not necessary to specify which CPU core in particular, the number of each CPU core shown in parentheses is omitted.

ディスプレイ40は、マイクロコンピュータ3で実行される経路案内処理、マルチメディア制御処理あるいは安全運転支援処理の結果を表示するためのものであり、液晶ディスプレイやCRTなどが用いられる。   The display 40 is for displaying the results of route guidance processing, multimedia control processing, or safe driving support processing executed by the microcomputer 3, and a liquid crystal display, CRT, or the like is used.

スピーカ42は、マイクロコンピュータ3で実行される経路案内処理、マルチメディア制御処理あるいは安全運転支援処理の結果を音声で運転者等に報知するためのものである。   The speaker 42 is for notifying the driver or the like of the result of route guidance processing, multimedia control processing or safe driving support processing executed by the microcomputer 3 by voice.

スイッチ44は、運転者等がマイクロコンピュータ3に対して種々の入力を行うためのものであり、具体的にはディスプレイ40の画面上に配置されたタッチセンサなどである。
(カーナビゲーション装置1のソフトウエア構成)
次に、カーナビゲーション装置1におけるソフトウエア構成について図2基づき説明する。
The switch 44 is for a driver or the like to make various inputs to the microcomputer 3, and is specifically a touch sensor arranged on the screen of the display 40.
(Software configuration of car navigation device 1)
Next, a software configuration in the car navigation apparatus 1 will be described with reference to FIG.

カーナビゲーション装置1のマイクロコンピュータ3には、図2に模式的に示すように、マイクロコンピュータ3を作動させるためのオペレーティングシステム34(以下、OS34とも呼ぶ。)やアプリケーション・ソフト36が内蔵されている。   The microcomputer 3 of the car navigation apparatus 1 incorporates an operating system 34 (hereinafter also referred to as OS 34) and application software 36 for operating the microcomputer 3, as schematically shown in FIG. .

OS34は、複数のCPUコアの何れかに正常に演算を実行できない異常が発生したか否かを検出する異常検出処理と、異常検出処理によって複数のCPUコア50〜56の何れかに正常に演算を実行できない異常が検出された場合、異常が検出されたCPUコア50に割り当てられている処理を予め定められた処理の優先順位に応じて前記異常が検出されたCPUコア52〜56以外のCPUコアに割り当てる割当処理と、を備えている。   The OS 34 performs normal operation on any one of the plurality of CPU cores 50 to 56 through the abnormality detection processing that detects whether or not an abnormality that cannot be normally performed on any of the plurality of CPU cores has occurred. When an abnormality that cannot be executed is detected, the CPU assigned to the CPU core 50 in which the abnormality is detected is assigned to a CPU other than the CPU cores 52 to 56 in which the abnormality is detected in accordance with a predetermined processing priority. Assignment processing to be assigned to the core.

なお、割当処理に使用されるCPUコア番号と、CPUコアの正常/異常状態を記憶しているCPU状態情報は、FLASH・ROM16に記憶される。このようにすればシステム電源がオフされても次回の起動時にも利用できるため異常CPUコア50〜56を再確認することなく、システム的に切り離すことが可能となる。   The CPU core number used for the allocation process and the CPU state information storing the normal / abnormal state of the CPU core are stored in the FLASH ROM 16. In this way, even if the system power is turned off, it can be used at the next start-up, so that the abnormal CPU cores 50 to 56 can be separated systematically without reconfirming.

複数のCPUコア50〜56に処理を割り当てて実行させるためのOS34の実装技術としては、次の3つに代表されるものがある。
(1)AMP(Asymmetric Multiprocessing:非対称型マルチプロセッシング)=特定の単一CPUコアに特定のソフト(タスク)を静的に割り当てて実行する。特定ソフト(タスク)が単一CPUコア上で走るためにリアルタイム性や信頼性を保証しやすい。
There are the following three techniques for mounting the OS 34 for assigning and executing processing to the plurality of CPU cores 50 to 56.
(1) AMP (Asymmetric Multiprocessing) = specific software (task) is statically assigned to a specific single CPU core and executed. Since specific software (task) runs on a single CPU core, it is easy to guarantee real-time performance and reliability.

(2)SMP(Symmetric Multi-processing:対象型マルチプロセッシング)=複数のCPUコアにソフト(タスク)を動的に割り当てて実行する。ソフト(タスク)が複数のCPUコア上で並列実行されるためパフォーマンスを得やすい反面、リアルタイム性や信頼性を保証しにくい。SMPでは各CPUコアに隣接しているキャッシュの一貫性(コヒーレンシ)を複数のCPUコアで保つ必要があり、この場合にマルチコアCPU内部のキャッシュ同期手段で一貫性が保証されるように実装する。   (2) SMP (Symmetric Multi-processing) = Software (task) is dynamically assigned to a plurality of CPU cores and executed. Since software (tasks) are executed in parallel on a plurality of CPU cores, it is easy to obtain performance, but it is difficult to guarantee real-time performance and reliability. In SMP, it is necessary to maintain the consistency (coherency) of the cache adjacent to each CPU core by a plurality of CPU cores. In this case, the cache synchronization means in the multi-core CPU is implemented so as to guarantee the consistency.

(3)BMP(Bound Multiprocessing:AMPとSMPのハイブリッド構成で、一部のCPUコアをAMPに割り当て、別のCPUコアをSMPに割り当てる。
カーナビゲーション装置1においては、信頼性を要求される運転支援機能はAMPで、パフォーマンスが要求されるマルチメディア機能はSMPで実装できるBMPが一般的には最適とされている。 本実施形態ではOSとしてBMPを採用することとして説明を行う。
(3) BMP (Bound Multiprocessing: Hybrid configuration of AMP and SMP), with some CPU cores assigned to AMP and another CPU core assigned to SMP.
In the car navigation apparatus 1, the driving support function that requires reliability is generally AMP, and the multimedia function that requires performance is generally BMP that can be implemented by SMP. In the present embodiment, description will be made assuming that BMP is adopted as the OS.

本実施形態では、図2に示すように、AMPにCPUコア(1)を、SMPにCPUコア(2)52〜CPUコア(4)56を割り当て、AMP上で運転支援ソフト、SMP上でマルチメディア・ソフトが実行される。ただしCPUコア(1)50〜CPUコア(4)56の異常の際にはこの割当ては動的に変化していく。   In this embodiment, as shown in FIG. 2, the CPU core (1) is assigned to the AMP, and the CPU core (2) 52 to the CPU core (4) 56 are assigned to the SMP. Media software is executed. However, when the CPU core (1) 50 to the CPU core (4) 56 are abnormal, the assignment changes dynamically.

(OS34の処理)
次に、図3〜図7に基づいて、CPUコア50〜56に異常が発生した際に実行されるOS34の処理について説明する。図3は、メイン処理のフローチャートであり、図4〜図7は、メイン処理から呼び出されるサブルーチンのフローチャートである。
(Process of OS34)
Next, the processing of the OS 34 that is executed when an abnormality has occurred in the CPU cores 50 to 56 will be described with reference to FIGS. FIG. 3 is a flowchart of the main process, and FIGS. 4 to 7 are flowcharts of a subroutine called from the main process.

OS34は、AMPあるいはSMPの基本タイマから定期的に起動するようにしてもよいし、各CPUコア50〜56に基本タイマを設定し、定期割り込みから定期的に実行されるようにしてもよい。OS34の実行権として特権モードが指定できるCPUにおいては、OS34以外のソフトがバグによってシステムが不安定にならないようにOS34だけを特権モードで実行するように実装することが望ましい。   The OS 34 may be periodically started from a basic timer of AMP or SMP, or may be set to each CPU core 50 to 56 and periodically executed from a periodic interrupt. In a CPU that can designate a privileged mode as an execution right of the OS 34, it is desirable to implement such that only the OS 34 is executed in the privileged mode so that software other than the OS 34 does not become unstable due to a bug.

OS34は、あらかじめどのCPUコア50〜56がAMPあるいはSMPに割り当てられているかを内部情報として保持しているものとする。
OS34のメイン処理は、図3に示すように、S100において、CPUコア(1)50〜CPUコア(4)56の番号を表す変数nが1に設定される。続く、S105にて、CPUコア(1)50の異常検出処理(処理内容は後述する。)が実行される。
OS34 is assumed to hold or advance which CPU core 50-56 are assigned to AMP or SMP as internal information.
In the main process of the OS 34, as shown in FIG. 3, a variable n representing the numbers of the CPU core (1) 50 to the CPU core (4) 56 is set to 1 in S100. Subsequently, in S105, an abnormality detection process of the CPU core (1) 50 (the process content will be described later) is executed.

続く、S110にて、CPUコア(1)が正常であるか否かが判定される。CPUコア(1)50が正常であると判定された場合は(S110:Yes)、S120へ処理が移行され、CPUコア(1)50が正常でない(つまり、CPUコア(1)50が異常)と判定された場合には(S110:No)、S115へ処理が移行される。   Subsequently, in S110, it is determined whether or not the CPU core (1) is normal. If it is determined that the CPU core (1) 50 is normal (S110: Yes), the process proceeds to S120, and the CPU core (1) 50 is not normal (that is, the CPU core (1) 50 is abnormal). Is determined (S110: No), the process proceeds to S115.

S115では、再割当処理(処理内容は後述する。)が実行され、S120では、変数nが1増加される。そして、続くS125において、変数nがCPUコア(1)50〜CPUコア(4)56の数を超えたか否かが判定される。   In S115, reallocation processing (the processing content will be described later) is executed, and in S120, the variable n is incremented by one. In subsequent S125, it is determined whether or not the variable n has exceeded the number of CPU cores (1) 50 to CPU core (4) 56.

S125にて、変数nがCPUコア(1)50〜CPUコア(4)56の数を超えていないと判定された場合は(S125:No)S100に処理が移行され、次のCPUコア(2)について処理が行われる。一方、変数nがCPUコア(1)50〜CPUコア(4)56の数を超えていると判定された場合には、処理が終了される。   If it is determined in S125 that the variable n does not exceed the number of CPU cores (1) 50 to CPU core (4) 56 (S125: No), the process proceeds to S100 and the next CPU core (2 ) Is performed. On the other hand, when it is determined that the variable n exceeds the number of CPU cores (1) 50 to CPU core (4) 56, the processing is terminated.

このように、すべてのCPUコア(1)50〜CPUコア(4)56に対して本処理が実行される。
(異常検出処理)
次に、図4に基づき、異常検出処理の流れについて説明する。図4は、異常検出処理の流れを示すフローチャートである。
In this way, this process is executed for all CPU cores (1) 50 to (4) 56.
(Abnormality detection processing)
Next, the flow of the abnormality detection process will be described based on FIG. FIG. 4 is a flowchart showing the flow of the abnormality detection process.

異常検出処理では、図4に示すように、S200において「1+1」の加算が行われ、加算結果が「2」であるか否かが判定される。加算結果が「2」でない場合は(S200:No)、S220にてCPUコア(n)に関して「異常」である旨がFLASH・ROM16に記憶される。   In the abnormality detection process, as shown in FIG. 4, addition of “1 + 1” is performed in S200, and it is determined whether or not the addition result is “2”. When the addition result is not “2” (S200: No), the fact that the CPU core (n) is “abnormal” is stored in the FLASH ROM 16 in S220.

一方、加算結果が「2」である場合には(S200:Yes)、S205において、「2×2」の乗算が行われ、乗算結果が「4」であるか否かが判定される。そして、乗算結果が「4」でない場合は、(S205:No)、S220にてCPUコア(n)に関して「異常」である旨がFLASH・ROM16に記憶される。   On the other hand, when the addition result is “2” (S200: Yes), a multiplication of “2 × 2” is performed in S205, and it is determined whether or not the multiplication result is “4”. If the multiplication result is not “4” (S205: No), the fact that the CPU core (n) is “abnormal” is stored in the FLASH ROM 16 in S220.

一方、乗算結果が「4」である場合には(S205:Yes)、S210において、「1.01+0.99」という総数点を含む加算が行われ、加算結果が「2.00」であるか否かが判定される。そして、加算結果が「2.00」でない場合は(S210:No)、S220にてCPUコア(n)に関して「異常」である旨がFLASH・ROMに記憶される。   On the other hand, when the multiplication result is “4” (S205: Yes), in S210, addition including the total number of points “1.01 + 0.99” is performed, and whether the addition result is “2.00”. It is determined whether or not. If the addition result is not “2.00” (S210: No), the fact that the CPU core (n) is “abnormal” is stored in the FLASH ROM in S220.

一方、加算結果が「2.00」である場合には(S210:Yes)、続くS215にてCPUコア(n)に関して「正常」である旨がFLASH・ROM16に記憶される。
このように、異常検出処理では、結果の分かっている処理を各CPUコア50〜56において種々行い、その処理のうち1つでも正常でないCPUコアがあれば、そのCPUコアは異常であるとする。
On the other hand, when the addition result is “2.00” (S210: Yes), in the subsequent S215, the fact that the CPU core (n) is “normal” is stored in the FLASH ROM 16.
As described above, in the abnormality detection process, various processes with known results are performed in each of the CPU cores 50 to 56, and if any one of the processes is not normal, the CPU core is abnormal. .

(再割当処理)
次に、図5に基づき、再割当処理の流れについて説明する。図5は、再割当処理の流れを示すフローチャートである。
(Reassignment process)
Next, the flow of the reallocation process will be described with reference to FIG. FIG. 5 is a flowchart showing the flow of the reallocation process.

再割当処理では、S300において、SMP側CPUの再割当処理を行い、続くS305にて異常CPUコア(n)は、AMP側に割り当てられているものであるか否かが判定される。   In the reassignment process, in S300, the SMP side CPU is reassigned, and in subsequent S305, it is determined whether or not the abnormal CPU core (n) is assigned to the AMP side.

S305にて、異常CPUコア(n)がAMP側に割り当てられている場合は(S305:Yes)、続くS310において、AMP側のに割り当てられているCPUコア(n)の再割当処理が行われる。一方、S305にて、異常CPUコア(n)がAMP側に割り当てられていない場合には(S305:No)、処理が終了される。   If the abnormal CPU core (n) is assigned to the AMP side in S305 (S305: Yes), the CPU core (n) assigned to the AMP side is reassigned in the subsequent S310. . On the other hand, if the abnormal CPU core (n) is not assigned to the AMP side in S305 (S305: No), the process is terminated.

このようにして、再割当処理においては、異常が発生したCPUコア(n)にはAMP及びSMPが割り当てられず、最も優先度の高い運転支援ソフトを実行するために、正常なCPUコア(n以外)にAMP及びSMPが割り当てられる。   In this way, in the reassignment process, AMP and SMP are not assigned to the CPU core (n) where the abnormality has occurred, and in order to execute the driving support software with the highest priority, the normal CPU core (n AMP and SMP are assigned to the other.

(SMP側CPUコア再割当処理)
次に、図6に基づいて、SMP側CPUコア再割当処理について説明する。図6は、SMP側CPUコア再割当処理の流れを示すフローチャートである。
(SMP-side CPU core reallocation process)
Next, the SMP side CPU core reallocation process will be described with reference to FIG. FIG. 6 is a flowchart showing the flow of the SMP side CPU core reallocation process.

SMP側CPUコア再割当処理では、図6に示すように、まずS400において、SMP側に割り当てられているCPUコアの数が2以上であるか否かが判定される。割り当てられているCPUコアの数が2以上の場合は(S400:Yes)、S405において特定のCPUコアがSMP側から切り離される。つまり、特定のCPUコアがSMPに割り当てられないようにされる。その後、処理がS420へ移行される。   In the SMP side CPU core reassignment process, as shown in FIG. 6, first, in S400, it is determined whether or not the number of CPU cores assigned to the SMP side is 2 or more. If the number of assigned CPU cores is 2 or more (S400: Yes), the specific CPU core is disconnected from the SMP side in S405. That is, a specific CPU core is prevented from being assigned to SMP. Thereafter, the process proceeds to S420.

一方、割り当てられているCPUコアの数が2未満である場合には(S400:No)、S410にて、SMP側に割り当てられているCPUコアの数が1であるか否かが判定される。   On the other hand, if the number of assigned CPU cores is less than 2 (S400: No), it is determined in S410 whether the number of CPU cores assigned to the SMP side is 1. .

そして、割り当てられているCPUコアの数が1個の場合は(S410:Yes)、続くS415にてSMPの処理を停止し、処理がS420へ移行される。割り当てられているCPUコアの数が1個でない場合には(S410:No)、処理が終了される。   If the number of assigned CPU cores is one (S410: Yes), the SMP process is stopped in the subsequent S415, and the process proceeds to S420. If the number of assigned CPU cores is not one (S410: No), the process is terminated.

S420では、S405においてCPUコアが切り離されたり、S415においてSMPの処理が停止されているので、切り離されたり、処理の停止対象となったCPUコアを除いて、SMP側の割り当てられるCPUコアの構成番号が更新される。   In S420, the CPU core is disconnected in S405, or the SMP process is stopped in S415. Therefore, the CPU core configuration allocated on the SMP side is excluded except for the CPU core that is disconnected or the process is to be stopped. The number is updated.

例えば、SMP側にCPUコア(2)52〜CPUコア(4)52が割り当てられており、S405においてCPUコア(252)が切り離された場合には、CPUコア(3)54がCPUコア(2)54となり、CPUコア(4)56がCPUコア(3)56となる。   For example, when the CPU core (2) 52 to the CPU core (4) 52 are allocated on the SMP side and the CPU core (252) is disconnected in S405, the CPU core (3) 54 is replaced with the CPU core (2). ) 54, and the CPU core (4) 56 becomes the CPU core (3) 56.

そして、CPUコアの構成番号が更新された後、処理が終了される。
(AMP側CPUコア再割当処理)
次に、図7に基づいて、AMP側CPUコア再割当処理について説明する。図7は、AMP側CPUコア再割当処理の流れを示すフローチャートである。
Then, after the CPU core configuration number is updated, the process is terminated.
(AMP side CPU core reallocation process)
Next, the AMP-side CPU core reallocation process will be described with reference to FIG. FIG. 7 is a flowchart showing the flow of the AMP side CPU core reallocation process.

AMP側CPUコア再割当処理では、図7に示すように、まずS500において、割当て可能なCPUコアがあるか否かが判定される。これは、SMP側にSMPから切り離し可能な数のCPUコアがあるか否かによって判定される。   In the AMP side CPU core reassignment process, as shown in FIG. 7, first, in S500, it is determined whether there is an assignable CPU core. This is determined by whether there are a number of CPU cores that can be separated from the SMP on the SMP side.

そして、割当て可能なCPUがない場合は(S500:No)、S530に処理が移行され、割当て可能なCPUコアがある場合には(S500:Yes)、S505にて、その割当て可能なCPUコアへの切替の終了を待ち、切替が終了するとS510へ処理が移行される。   If there is no assignable CPU (S500: No), the process proceeds to S530. If there is an assignable CPU core (S500: Yes), in S505, the assignable CPU core is changed. When the switching ends, the process proceeds to S510.

なお、切替可能なCPUコアが複数ある場合には、CPUコアの構成番号の少ない方へCPUコアの切替が行われる。例えば、切替可能なCPUコアとして、CPUコア(2)52とCPUコア(3)54とがある場合、CPUコア(2)52へ切り替えられる。   When there are a plurality of CPU cores that can be switched, the CPU core is switched to the one with the smaller CPU core configuration number. For example, when there are a CPU core (2) 52 and a CPU core (3) 54 as switchable CPU cores, the CPU core (2) 52 is switched.

S510では、切替元のCPUコアのキャッシュメモリ60〜66の内容が切替先のCPUコアのキャッシュメモリ60〜66へコピーされ、切替先のCPUコアの動作情報が切替元のCPUコアの動作情報と同一にされる。   In S510, the contents of the cache memories 60 to 66 of the switching source CPU core are copied to the cache memories 60 to 66 of the switching destination CPU core, and the operation information of the switching destination CPU core is changed to the operation information of the switching source CPU core. Be the same.

続くS515で、切替元のCPUコアの図示しないレジスタの内容が切替先のCPUコアの図示しないレジスタへコピーされ、切替先のCPUコアの動作情報が切替元のCPUコアの動作情報と同一にされる。   In subsequent S515, the contents of the register (not shown) of the switching source CPU core are copied to the register (not shown) of the switching destination CPU core, and the operation information of the switching destination CPU core is made the same as the operation information of the switching source CPU core. The

そして、続くS520にて、メモリコントローラ70が操作されメモリ空間が切替元のCPUコアでの実行環境と同一なものとされた後、S525にて、CPUコアの構成番号が更新されて処理が終了される。   In S520, the memory controller 70 is operated to make the memory space the same as the execution environment in the switching source CPU core. Then, in S525, the configuration number of the CPU core is updated and the process ends. Is done.

S530では、システム終了処理が行われる。この処理では、すべてのCPUコア50〜56に異常が発生したことがアプリケーション・ソフト(運転支援ソフト及びマルチメディアソフト)に通知される。   In S530, system termination processing is performed. In this process, the application software (driving support software and multimedia software) is notified that an abnormality has occurred in all the CPU cores 50 to 56.

(作動の例)
以上の処理によって、図2の状態からCPUコア(1)50に異常が発生した場合に、マイクロコンピュータ3におけるソフトウエア構成がどのようになるかを図8に基づいて説明する。
(Example of operation)
With reference to FIG. 8, a description will be given of the software configuration of the microcomputer 3 when an abnormality occurs in the CPU core (1) 50 from the state of FIG.

CPUコア(1)50に異常が発生した場合、元々CPUコア(1)50で実行されていたAMP及びAMP側アプリケーション・ソフト(運転支援ソフト)はCPUコア(2)52で実行され、CPUコア(2)52〜CPUコア(4)56で実行されていたSMP/SMP側アプリケーション・ソフト(マルチメディア・ソフト)はCPUコア(3)54〜CPUコア(4)56で実行される。   When an abnormality occurs in the CPU core (1) 50, the AMP and the AMP-side application software (driving support software) originally executed by the CPU core (1) 50 are executed by the CPU core (2) 52, and the CPU core (2) The SMP / SMP-side application software (multimedia software) executed by the 52 to CPU core (4) 56 is executed by the CPU core (3) 54 to CPU core (4) 56.

前述したように運転支援ソフトはドライバの安全性に直結しているため、確実にソフトが実行される必要があるが、本実施形態のOS34によれば、元々CPUコア(1)50で実行されていた運転支援ソフトは、CPUコア(1)50が故障してもCPUコア(2)52に切り替わるだけで、CPUコア(1)50とCPUコア(2)52とは同等の処理能力があるため、ドライバに対して変わらないサービスを提供できる。   As described above, since the driving support software is directly connected to the safety of the driver, the software needs to be surely executed. However, according to the OS 34 of the present embodiment, the driving support software is originally executed by the CPU core (1) 50. The driving support software that had been used has the same processing capability as the CPU core (1) 50 and the CPU core (2) 52 only by switching to the CPU core (2) 52 even if the CPU core (1) 50 breaks down. Therefore, a service that does not change can be provided to the driver.

次に図9に基づいて、マルチコアCPU10が正常に作動している状態から各CPUコアに異常が発生した場合のオペレーティング・システム及びアプリケーション・ソフトの割当て状態の遷移関係を説明する。   Next, based on FIG. 9, the transition relationship of the operating system and application software allocation states when an abnormality occurs in each CPU core from the state where the multi-core CPU 10 operates normally will be described.

正常時には図9(a)に示すように、運転支援ソフトは、AMPの制御下でCPUコア(1)50にて実行され、マルチメディアソフトは、SMPの制御下でCPUコア(2)52〜CPUコア(4)56で実行される。   9A, the driving support software is executed by the CPU core (1) 50 under the control of the AMP, and the multimedia software is controlled by the CPU core (2) 52 to 52 under the control of the SMP. It is executed by the CPU core (4) 56.

そして、図9(b)に示すように、CPUコア(1)に異常が発生した場合には、運転支援ソフトとAMPとはCPUコア(2)52に割り当てられ、マルチメディアソフトとSMPとはCPUコア(3)とCPUコア(4)とに割り当てられて実行される。   As shown in FIG. 9B, when an abnormality occurs in the CPU core (1), the driving support software and AMP are allocated to the CPU core (2) 52, and the multimedia software and SMP are The CPU core (3) and the CPU core (4) are assigned and executed.

さらに、図9(c)に示すように、CPUコア(2)52に異常が発生した場合は、CPUコア(3)54に運転支援ソフトとAMPとが割り当てられ、CPUコア(4)56にはSMPとマルチメディアソフトとが割り当てられて実行される。   Further, as shown in FIG. 9C, when an abnormality occurs in the CPU core (2) 52, driving support software and AMP are assigned to the CPU core (3) 54, and the CPU core (4) 56 is assigned. Is executed by assigning SMP and multimedia software.

以下、図9(d)〜図(f)に示すように、CPUコア(1)50〜CPUコア(4)56に発生した異常に応じて、運転支援ソフトとAMP及びマルチメディアソフトとSMPが、異常が発生していないCPUコアに割り当てられていく。   Hereinafter, as shown in FIG. 9D to FIG. 9F, the driving support software and the AMP, the multimedia software and the SMP correspond to the abnormality occurring in the CPU core (1) 50 to the CPU core (4) 56, respectively. Then, the CPU cores are assigned with no abnormality.

このように、OS34によって、各CPUコアに割り当てられる運転支援ソフトやマルチメディアソフトが動的に遷移していくことによって、様々な異常に対して運転支援ソフトは最優先で扱われ、システム全体として安全性が確保できる構成になっている。
(アプリケーション・ソフト36の処理)
CPUコア50〜56の何れかに異常が発生した場合、ハードウエアに何らかの障害が発生していることを運転者等に伝達すると同時に、故障による機能低下を運転者等に意識させない作りが可能であれば、そのようにすることが望ましい。このためのアプリケーション・ソフト36における制御処理のフローチャートを図10に示す。
In this way, the driving support software and multimedia software assigned to each CPU core are dynamically transitioned by the OS 34, so that the driving support software is treated with the highest priority for various abnormalities, and the entire system as a whole. It is configured to ensure safety.
(Processing of application software 36)
When an abnormality occurs in any of the CPU cores 50 to 56, it is possible to notify the driver that some kind of failure has occurred in the hardware, and at the same time, make it possible for the driver, etc., not to be aware of functional degradation due to the failure. If so, it is desirable to do so. FIG. 10 shows a flowchart of control processing in the application software 36 for this purpose.

この制御処理は、アプリケーション・ソフト36において、定期的に実行され、まず、S600において、各CPUコア50〜56の状態がOS34から取得され、何れかのCPUコア50〜56に異常が発生しているか否かが判定される。   This control process is periodically executed in the application software 36. First, in S600, the state of each of the CPU cores 50 to 56 is acquired from the OS 34, and an abnormality has occurred in any of the CPU cores 50 to 56. It is determined whether or not there is.

何れかのCPUコア50〜56において異常が発生していなかった場合(S600:No)は、S605に処理が移行され、何れかのCPUコア50〜56において異常が発生していた場合(S600:Yes)には、S610へ処理が移行される。   If no abnormality has occurred in any of the CPU cores 50 to 56 (S600: No), the process proceeds to S605, and if any abnormality has occurred in any of the CPU cores 50 to 56 (S600: In Yes), the process proceeds to S610.

S605では、アプリケーション・ソフト36に通常の処理を実行させる。一方、S610では、ハードウエアに故障が発生した旨がディスプレイ40に表示され、続くS615において、CPUコア50〜56に対して、アプリケーション・ソフト36の処理が軽減される処理が行われる。   In step S605, the application software 36 is caused to execute normal processing. On the other hand, in S610, the fact that a hardware failure has occurred is displayed on the display 40, and in the subsequent S615, processing for reducing the processing of the application software 36 is performed on the CPU cores 50 to 56.

例えば、アプリケーション・ソフト36開発時において、CPUコア50〜56が正常な場合の他に、CPUコア50〜56の何れかに異常が発生した場合でも処理が実行しきれるように処理負荷を軽減した処理手順を準備しておき、CPUコア50〜56の何れかに異常が発生した場合には軽負荷の処理に切り替えることによって、自身の成立性が損なわれないようにすることが考えられる。   For example, when developing the application software 36, the processing load has been reduced so that the processing can be executed even when an abnormality occurs in any of the CPU cores 50 to 56 other than when the CPU cores 50 to 56 are normal. It is conceivable that a processing procedure is prepared, and when an abnormality occurs in any of the CPU cores 50 to 56, switching to a light load processing does not impair its own feasibility.

具体的には、マルチメディア・ソフトのDVD再生を例に取ると、CPUコア50〜56が正常である場合にはフレームレート30Hz、5.1chサラウンド音声を再生できるように作り込んでおき、CPUコア50〜56の何れかに異常が発生した場合には、フレームレート15Hz、2chステレオ音声に切り替えて実行するように実装し、CPUコア50〜56の何れかに異常が発生した場合には、動画表示がコマ落ちしたり音声が途切れ途切れにならずに違和感のないサービスを提供するのである。   Specifically, taking the DVD playback of multimedia software as an example, if the CPU cores 50 to 56 are normal, the CPU core is built so that a frame rate of 30 Hz and 5.1 ch surround sound can be played back. When an abnormality occurs in any of the cores 50 to 56, it is mounted so as to switch to a frame rate of 15 Hz and 2ch stereo sound, and when an abnormality occurs in any of the CPU cores 50 to 56, It provides a service that does not cause a sense of incongruity without the video display dropping or the sound being interrupted.

(カーナビゲーション装置1の特徴)
カーナビゲーション装置1によれば、CPUコア50〜56の何れかに正常に演算を実行できない異常が検出された場合、そのCPUコア50で実行されていた処理を別のCPUコア52〜56に優先度に応じて割り当てる。
(Characteristics of the car navigation device 1)
According to the car navigation device 1, when an abnormality that cannot be normally performed in any of the CPU cores 50 to 56 is detected, the process executed by the CPU core 50 is given priority over another CPU core 52 to 56. Assign according to the degree.

したがって、最も優先度が高い処理(運転支援ソフト)が割り当てられたCPUコア50に前述の異常が発生しても、そこで実行されていた処理は別のCPUコア52〜56に割り当てられるので、正常に作動しているCPUコアが1個でもあれば、最も優先度の高い運転支援ソフトは停止されずに実行される。   Therefore, even if the above-described abnormality occurs in the CPU core 50 to which the highest priority process (driving support software) is assigned, the process being executed there is assigned to another CPU core 52 to 56, and thus normal. If even one CPU core is operating, the driving support software with the highest priority is executed without being stopped.

このようにして、処理の優先度の最も高い運転支援ソフトが割り当てられたCPUコア50に異常が発生したときに、その処理を他のCPUコア52〜56で実行させることができるので、優先度が最も高い運転支援ソフトが通常に実行される。つまり、車両の安全走行制御を通常と同じ性能で実行することができる。   Thus, when an abnormality occurs in the CPU core 50 to which the driving support software having the highest processing priority is assigned, the processing can be executed by the other CPU cores 52 to 56. The driving assistance software with the highest is normally executed. That is, the vehicle safe traveling control can be executed with the same performance as usual.

また、すべてのCPUコア50〜56に異常が発生した場合には、システム終了処理(S530)において、アプリケーション・ソフト36に対し、システムが正常に作動しない旨の通知が行われる(図7のS530)。   If an abnormality occurs in all the CPU cores 50 to 56, a notification that the system does not operate normally is sent to the application software 36 in the system termination process (S530) (S530 in FIG. 7). ).

したがって、アプリケーション・ソフト36側でその通知を受け、運転支援ソフトを作動させないようにし、ディスプレイ40に運転支援を行わないように表示を行えば、運転支援処理においてエラーが発生することがなくなるので、車両の安全性を確保できる。   Therefore, if the notification is received on the application software 36 side so that the driving support software is not activated and the display 40 is displayed so as not to perform driving support, an error does not occur in the driving support process. Vehicle safety can be ensured.

(その他の実施形態)
以上、本発明の実施形態について説明したが、本発明は、本実施形態に限定されるものではなく、種々の態様を採ることができる。
(Other embodiments)
As mentioned above, although embodiment of this invention was described, this invention is not limited to this embodiment, A various aspect can be taken.

(1)上記実施形態では、結果が分かっている単純な加算や乗算を行い、その結果が正しいことを判定して、CPUコア50〜56に限定して異常検出を行ったが、CPUコア50〜56に限定せず、マルチコアCPUにおけるCPUコア周りの、例えばキャッシュ・メモリのような複数の同等回路が備わっており、故障時には別の回路に切替え可能な要素について検出対象を拡大してもよい。   (1) In the above-described embodiment, simple addition or multiplication in which the result is known is performed, it is determined that the result is correct, and abnormality detection is performed only for the CPU cores 50 to 56. It is not limited to -56, and a plurality of equivalent circuits such as a cache memory, for example, around a CPU core in a multi-core CPU are provided, and detection targets may be expanded for elements that can be switched to another circuit in the event of a failure. .

ただし、その場合、異常検出に要する時間中は、検出中のCPUコア50〜56がカーナビゲーション装置1の機能を実現するソフト処理は行えないため、検出の正確性とシステム・パフォーマンスはトレードオフの関係にあり、どこまで検出すべきかはカーナビゲーション装置1自体に求められる信頼性レベルによってシステム設計時に決定する必要がある。   However, in this case, during the time required for detecting the abnormality, the CPU cores 50 to 56 that are being detected cannot perform software processing for realizing the functions of the car navigation device 1, so that the detection accuracy and the system performance are a trade-off. There is a relationship, and it is necessary to determine the extent to be detected at the time of system design according to the reliability level required for the car navigation apparatus 1 itself.

また、システム・パフォーマンスが許せば、CPUコアを構成する、フェッチ回路、デコード回路、演算回路、外部アクセス回路、レジスタ等の構成要素を網羅的に検出するようにしてもよい。   Further, if system performance permits, components such as a fetch circuit, a decode circuit, an arithmetic circuit, an external access circuit, and a register constituting the CPU core may be comprehensively detected.

(2)上記実施形態では、アプリケーション・ソフト36の負荷を軽減させる方法として、DVD再生の際のフレームレートを低減させていたが、ナビゲーション・ソフトの処理負荷の高い3D地図表示をクロック周波数の低減中には規制し、主として2次元地図を表示するようにしてもよい。   (2) In the above embodiment, as a method of reducing the load on the application software 36, the frame rate at the time of DVD playback is reduced. However, the 3D map display with a high processing load on the navigation software is reduced in the clock frequency. Some of them may be restricted, and a two-dimensional map may be mainly displayed.

カーナビゲーション装置1のシステムイメージを示す図である。It is a figure which shows the system image of the car navigation apparatus. カーナビゲーション装置1の概略のハードウエア構成を示すブロック図である。2 is a block diagram showing a schematic hardware configuration of the car navigation device 1. FIG. オペレーティング・システム34のメイン処理のフローチャートである。4 is a flowchart of main processing of the operating system 34. 異常検出処理の流れを示すフローチャートである。It is a flowchart which shows the flow of an abnormality detection process. 再割当処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a reallocation process. SMP側CPUコア再割当処理の流れを示すフローチャートである。It is a flowchart which shows the flow of SMP side CPU core reallocation processing. AMP側CPUコア再割当処理の流れを示すフローチャートである。It is a flowchart which shows the flow of an AMP side CPU core reallocation process. CPUコア(1)50に異常が発生した時のマイクロコンピュータ3におけるソフトウエア構成を示した図である。3 is a diagram showing a software configuration in the microcomputer 3 when an abnormality occurs in a CPU core (1) 50. FIG. マルチコアCPU10が正常に作動している状態から各CPUコアに異常が発生した場合のオペレーティング・システム及びアプリケーション・ソフトの割当て状態の遷移関係を示す図である。It is a figure which shows the transition relationship of the allocation state of an operating system and application software when abnormality occurs in each CPU core from the state in which the multi-core CPU is operating normally. アプリケーション・ソフト36における制御処理のフローチャートである。4 is a flowchart of control processing in application software 36;

符号の説明Explanation of symbols

1…カーナビゲーション装置、3…マイクロコンピュータ、10…マルチコアCPU、14…I/O、16…FLASH・ROM、18…RAM、20…描画LSI、22…D/Aコンバータ、34…オペレーティングシステム(OS)、36…アプリケーション・ソフト、40…ディスプレイ、42…スピーカ、44…スイッチ、50,52,54,56…CPUコア、60,62,64,66…キャッシュメモリ、68…キャッシュ同期部、70…メモリ・コントローラ。   DESCRIPTION OF SYMBOLS 1 ... Car navigation apparatus, 3 ... Microcomputer, 10 ... Multi-core CPU, 14 ... I / O, 16 ... FLASH ROM, 18 ... RAM, 20 ... Drawing LSI, 22 ... D / A converter, 34 ... Operating system (OS 36 ... Application software, 40 ... Display, 42 ... Speaker, 44 ... Switch, 50,52,54,56 ... CPU core, 60,62,64,66 ... Cache memory, 68 ... Cache synchronization unit, 70 ... Memory controller.

Claims (4)

複数のCPUコアから構成され、各CPUコアに処理が割り当てられて実行される移動体用マルチコアCPU用のオペレーティング・システムであって、
前記複数のCPUコアの何れかに正常に演算を実行できない異常が発生したか否かを検出する異常検出処理と、
前記異常検出処理によって前記複数のCPUコアの何れかに正常に演算を実行できない異常が検出された場合、前記異常が検出されたCPUコアに割り当てられている処理を予め定められた処理の優先順位に応じて前記異常が検出されたCPUコア以外のCPUコアに割り当てる割当処理と、
を備えたことを特徴とする移動体用マルチコアCPU用のオペレーティング・システム。
An operating system for a multi-core CPU for a mobile unit, which is composed of a plurality of CPU cores, and processing is assigned to each CPU core and executed.
An abnormality detection process for detecting whether or not an abnormality that cannot be normally performed in any of the plurality of CPU cores has occurred;
In the case where an abnormality that cannot be normally performed on any of the plurality of CPU cores is detected by the abnormality detection process, a process priority assigned to the CPU core in which the abnormality is detected is determined in advance. According to the allocation process to be assigned to a CPU core other than the CPU core in which the abnormality is detected;
An operating system for a mobile multi-core CPU, comprising:
請求項1に記載の移動体用マルチコアCPU用のオペレーティング・システムにおいて、
前記割当処理は、前記異常検出処理において前記複数のCPUコアのすべてに前記複数のCPUコアに正常に演算を実行できない異常が検出された場合、前記複数のCPUコアに割り当てられているすべての処理を終了するために必要となる処理を行った後に、前記複数のCPUコアでの処理をすべて停止させることを特徴とする移動体用マルチコアCPU用のオペレーティング・システム。
The operating system for a mobile multi-core CPU according to claim 1,
In the abnormality detection process, all the processes assigned to the plurality of CPU cores are detected in the abnormality detection process when an abnormality in which the calculation cannot be normally performed on the plurality of CPU cores is detected in all of the plurality of CPU cores. An operating system for a multi-core CPU for a mobile unit, wherein after performing processing necessary for ending the processing, all processing in the plurality of CPU cores is stopped.
請求項1又は請求項2に記載の移動体用マルチコアCPU用のオペレーティング・システムとしての機能を、移動体用マルチコアCPUを備えた移動体用コンピュータに実行させるためのプログラム。   A program for causing a mobile computer equipped with a mobile multi-core CPU to execute a function as an operating system for the mobile multi-core CPU according to claim 1 or 2. 請求項1又は請求項2に記載の移動体用マルチコアCPU用のオペレーティング・システムを備えた移動体操縦支援装置。   A moving body steering support apparatus comprising an operating system for the moving body multi-core CPU according to claim 1.
JP2006309352A 2006-10-11 2006-11-15 Operating system, program and mobile body manipulation support apparatus Withdrawn JP2008123439A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006309352A JP2008123439A (en) 2006-11-15 2006-11-15 Operating system, program and mobile body manipulation support apparatus
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
JP2006309352A JP2008123439A (en) 2006-11-15 2006-11-15 Operating system, program and mobile body manipulation support apparatus

Publications (1)

Publication Number Publication Date
JP2008123439A true JP2008123439A (en) 2008-05-29

Family

ID=39508099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006309352A Withdrawn JP2008123439A (en) 2006-10-11 2006-11-15 Operating system, program and mobile body manipulation support apparatus

Country Status (1)

Country Link
JP (1) JP2008123439A (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129101A (en) * 2007-11-21 2009-06-11 Mitsubishi Electric Corp Fault recovery system for information processor
WO2010106403A1 (en) 2009-03-17 2010-09-23 Toyota Jidosha Kabushiki Kaisha Failure diagnostic system, electronic control unit for vehicle, failure diagnostic method
WO2011087020A1 (en) * 2010-01-15 2011-07-21 株式会社日立製作所 Embedded device and embedded system
US8112621B2 (en) 2009-04-23 2012-02-07 Hitachi, Ltd. Multi-core address mapping for selecting storage controller program
JP2013090070A (en) * 2011-10-15 2013-05-13 Konica Minolta Business Technologies Inc Image processing apparatus, linkage method and linkage program
JPWO2011141992A1 (en) * 2010-05-10 2013-07-22 トヨタ自動車株式会社 Failure diagnosis apparatus and failure diagnosis method
JP2013167193A (en) * 2012-02-15 2013-08-29 Toyota Motor Corp Control device of internal combustion engine
US8782469B2 (en) 2009-09-01 2014-07-15 Hitachi, Ltd. Request processing system provided with multi-core processor
WO2014196083A1 (en) * 2013-06-07 2014-12-11 三菱電機株式会社 Computer system and control method
US9182312B2 (en) 2010-06-28 2015-11-10 Volvo Construction Equipment Ab Control system for a hybrid excavator
JP2015229467A (en) * 2014-06-06 2015-12-21 本田技研工業株式会社 Electronic control system
JP2017111662A (en) * 2015-12-17 2017-06-22 日立オートモティブシステムズ株式会社 Electronic controller
JP2018076073A (en) * 2018-02-07 2018-05-17 日本精工株式会社 Control device of electric power steering device
WO2020261519A1 (en) * 2019-06-27 2020-12-30 三菱電機株式会社 Electronic control unit and program
JP2022530959A (en) * 2019-04-30 2022-07-05 奥特酷智能科技(南京)有限公司 Decentralized centralized automatic driving system
WO2023281766A1 (en) * 2021-07-09 2023-01-12 株式会社デンソー Automotive computer control method and vehicular electronic control device

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129101A (en) * 2007-11-21 2009-06-11 Mitsubishi Electric Corp Fault recovery system for information processor
WO2010106403A1 (en) 2009-03-17 2010-09-23 Toyota Jidosha Kabushiki Kaisha Failure diagnostic system, electronic control unit for vehicle, failure diagnostic method
JP2010218277A (en) * 2009-03-17 2010-09-30 Toyota Motor Corp Failure diagnostic system, electronic control unit, failure diagnostic method
US8656216B2 (en) 2009-03-17 2014-02-18 Toyota Jidosha Kabushiki Kaisha Failure diagnostic system, electronic control unit for vehicle, failure diagnostic method
US8112621B2 (en) 2009-04-23 2012-02-07 Hitachi, Ltd. Multi-core address mapping for selecting storage controller program
US8782469B2 (en) 2009-09-01 2014-07-15 Hitachi, Ltd. Request processing system provided with multi-core processor
WO2011087020A1 (en) * 2010-01-15 2011-07-21 株式会社日立製作所 Embedded device and embedded system
CN102667729A (en) * 2010-01-15 2012-09-12 株式会社日立制作所 Embedded device and embedded system
JPWO2011141992A1 (en) * 2010-05-10 2013-07-22 トヨタ自動車株式会社 Failure diagnosis apparatus and failure diagnosis method
US9182312B2 (en) 2010-06-28 2015-11-10 Volvo Construction Equipment Ab Control system for a hybrid excavator
JP2013090070A (en) * 2011-10-15 2013-05-13 Konica Minolta Business Technologies Inc Image processing apparatus, linkage method and linkage program
JP2013167193A (en) * 2012-02-15 2013-08-29 Toyota Motor Corp Control device of internal combustion engine
WO2014196083A1 (en) * 2013-06-07 2014-12-11 三菱電機株式会社 Computer system and control method
JP5996110B2 (en) * 2013-06-07 2016-09-21 三菱電機株式会社 Computer system and control method
US9880888B2 (en) 2013-06-07 2018-01-30 Mitsubishi Electric Corporation Executing an operating system in a multiprocessor computer system
JP2015229467A (en) * 2014-06-06 2015-12-21 本田技研工業株式会社 Electronic control system
JP2017111662A (en) * 2015-12-17 2017-06-22 日立オートモティブシステムズ株式会社 Electronic controller
JP2018076073A (en) * 2018-02-07 2018-05-17 日本精工株式会社 Control device of electric power steering device
JP2022530959A (en) * 2019-04-30 2022-07-05 奥特酷智能科技(南京)有限公司 Decentralized centralized automatic driving system
JP7228857B2 (en) 2019-04-30 2023-02-27 奥特酷智能科技(南京)有限公司 Distributed and centralized automated driving system
WO2020261519A1 (en) * 2019-06-27 2020-12-30 三菱電機株式会社 Electronic control unit and program
JPWO2020261519A1 (en) * 2019-06-27 2021-11-18 三菱電機株式会社 Electronic control unit and program
WO2023281766A1 (en) * 2021-07-09 2023-01-12 株式会社デンソー Automotive computer control method and vehicular electronic control device
JPWO2023281766A1 (en) * 2021-07-09 2023-01-12
JP7409567B2 (en) 2021-07-09 2024-01-09 株式会社デンソー Automotive computer control method and vehicle electronic control device

Similar Documents

Publication Publication Date Title
JP2008123439A (en) Operating system, program and mobile body manipulation support apparatus
JP5316128B2 (en) Fault diagnosis system, electronic control unit, fault diagnosis method
JP2006277062A (en) Application management device and storage medium storing its software
US11283864B2 (en) Cluster system with fail-safe fallback mechanism
JP6838222B2 (en) Vehicle control device and vehicle system
JP7259571B2 (en) VEHICLE CONTROL DEVICE, VEHICLE DISPLAY SYSTEM, AND VEHICLE DISPLAY CONTROL METHOD
JP2011022934A (en) Electronic control unit and method for detecting failure
JPWO2011141992A1 (en) Failure diagnosis apparatus and failure diagnosis method
JP2007334403A (en) System and method for supporting trouble of computer system
JP2009175960A (en) Virtual multiprocessor system
JP2011008702A (en) Fault processor
JP2014004858A (en) Vehicle control device
US11884283B2 (en) Vehicle device
US10269194B2 (en) Multiprocessor system and vehicle control system
JP7174926B2 (en) Display control system, moving object, display control method, display device, display method and program
JP5887952B2 (en) In-vehicle terminal and application execution environment program
JP2007226640A (en) Memory diagnosis processing circuit and memory diagnosis processing method
JP7167853B2 (en) display controller
CN110262522B (en) Method and apparatus for controlling an autonomous vehicle
TWI816106B (en) Controller for a user interface of a motor vehicle, and method for operating a controller for a user interface
JP2013125305A (en) Multiprocessor device
JP2010198165A (en) Start control method, information processor and program
JP2024080047A (en) Information management device, information management program, and method for managing information
JPS58217063A (en) Multiple control processing system of program event recording
JP2011150645A (en) Information processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081226

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100427