(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173468
(43)【公開日】2024-12-12
(54)【発明の名称】車載装置、及びその車載装置が実行する方法
(51)【国際特許分類】
G06F 9/48 20060101AFI20241205BHJP
G06F 9/46 20060101ALI20241205BHJP
B60R 16/02 20060101ALI20241205BHJP
【FI】
G06F9/48 300A
G06F9/46 410
B60R16/02 660T
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023091907
(22)【出願日】2023-06-02
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100187078
【弁理士】
【氏名又は名称】甲原 秀俊
(74)【代理人】
【識別番号】100226263
【弁理士】
【氏名又は名称】中田 未来生
(72)【発明者】
【氏名】村上 国広
(57)【要約】
【課題】次世代方式の車両の車載装置の技術を改善する。
【解決手段】車載装置10は、1つのプロセス120を複数のスレッド130で処理する。当該プロセス120は、少なくとも3個であるN個のタスク140を実行するように構成され、当該プロセス120がN個のタスク140をN個より少ない複数個のスレッド130に分けて処理するように構成される。
【選択図】
図5
【特許請求の範囲】
【請求項1】
1つのプロセスを複数のスレッドで処理する車載装置であって、
前記プロセスは、少なくとも3個であるN個のタスクを実行するように構成され、かつ前記N個のタスクをN個より少ない複数個のスレッドに分けて処理するように構成される、
車載装置。
【請求項2】
請求項1に記載の車載装置であって、前記N個のタスクのうち、同時に処理ができる複数個の第1タスクを異なるスレッドに分けて処理するように構成される、車載装置。
【請求項3】
請求項1に記載の車載装置であって、
前記プロセスは、前記N個のタスクのうち、順次処理となる複数個の第2タスクを同一のスレッドで処理するように構成される、車載装置。
【請求項4】
請求項1に記載の車載装置であって、前記プロセスは、前記N個のタスクを実行する間に、1回以上N-2回以下のスレッド間通信を行うように構成される、車載装置。
【請求項5】
1つのプロセスを複数のスレッドで処理する車載装置が実行する方法であって、
前記プロセスは、少なくとも3個であるN個のタスクを実行するように構成され、
前記N個のタスクをN個より少ない複数個のスレッドに分けて処理することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車載装置、及びその車載装置が実行する方法に関する。
【背景技術】
【0002】
従来、車両のリモートコントロール(リモコン)機能等の各機能は、車両に搭載されている複数のマイクロコントローラ(マイコン)のうちの専任のマイコンによって行われている。例えば、特許文献1には、リモコン装置に対する操作に応じて車両がプレ空調運転を開始することが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
電力を動力源とする自動車等の次世代方式の車両においては、車両のリモコン機能等の一部の機能は専任のマイコンを使用せず、車載装置のオペレーティングシステム(OS)が一括して管理する方式を採用する。その場合における、車両の車載装置の技術には改善の余地があった。
【0005】
かかる事情に鑑みてなされた本開示の目的は、次世代方式の車両の車載装置の技術を改善することにある。
【課題を解決するための手段】
【0006】
本開示の一実施形態に係る車載装置は、
1つのプロセスを複数のスレッドで処理する車載装置であって、
前記プロセスは、少なくとも3個であるN個のタスクを実行するように構成され、かつ前記N個のタスクをN個より少ない複数個のスレッドに分けて処理するように構成される。
【0007】
本開示の一実施形態に係る方法は、
1つのプロセスを複数のスレッドで処理する車載装置が実行する方法であって、
前記プロセスは、少なくとも3個であるN個のタスクを実行するように構成され、
前記N個のタスクをN個より少ない複数個のスレッドに分けて処理することと、
を含む。
【発明の効果】
【0008】
本開示の一実施形態によれば、次世代方式の車両の車載装置の技術が改善される。
【図面の簡単な説明】
【0009】
【
図1】本開示の一実施形態に係るシステムの概略構成を示すブロック図である。
【
図2】車載装置の概略ハードウェア構成を示すブロック図である。
【
図3】車載装置の概略ソフトウェア構成を示すブロック図である。
【
図4】本実施形態に係る車載装置のプロセスと比較するためのプロセスの一例である。
【
図5】本実施形態に係る車載装置のプロセスの一例である。
【発明を実施するための形態】
【0010】
以下、本開示の実施形態について説明する。
【0011】
(実施形態の概要)
図1を参照して、本開示の実施形態に係るシステム1の概要について説明する。システム1は、車載装置10と、端末装置20と、情報処理装置30と、を備える。車載装置10、端末装置20及び情報処理装置30は、例えばインターネット及び移動体通信網等を含むネットワーク40と通信可能に接続される。
【0012】
車載装置10は、車両に搭載されたコンピュータである。当該コンピュータは、OSを搭載する。車両は、例えば自動車であるが、これに限られず任意の車両であってもよい。自動車は、例えばBEV(Battery Electric Vehicle)、HEV(Hybrid Electric Vehicle)、PHEV(Plug-in Hybrid Electric Vehicle)、又はFCEV(Fuel Cell Electric Vehicle)等、電力を動力源とする自動車であるが、これらに限られない。
【0013】
端末装置20は、例えばPC(Personal Computer)、スマートフォン、若しくはブレット端末等のコンピュータ、又は車両の鍵としての機能を備える専用的なデバイスであって、キーフォブ、スマートキー、キーカードなどのような車両用携帯機である。本実施形態では、端末装置20は、車載装置10と通信可能であり、例えば車両をリモートコントロールするために、車両のドライバ等のユーザによって使用される。
【0014】
情報処理装置30は、例えばサーバ装置等のコンピュータである。情報処理装置30は、ネットワーク40を介して、車載装置10及び端末装置20と通信可能である。
【0015】
まず、本実施形態の概要について説明し、詳細については後述する。車載装置10は、1つのプロセスを複数のスレッドで処理する。当該プロセスは、少なくとも3個であるN個のタスクを実行するように構成され、かつN個のタスクをN個より少ない複数個のスレッドに分けて処理するように構成される。
【0016】
このように、本実施形態によれば、プロセスの動作時、N個のタスクがN個より少ない複数個のスレッドに分けて処理されるので、例えばN個のタスクがN個のスレッドにそれぞれ分けて処理される構成と比較して、スレッド間通信の数が少なくなる。その結果として、本実施形態を有さない車載装置よりも、プロセスの実行速度が速くなり得る。したがって本実施形態によれば、プロセスの実行速度が改善され得る点で、次世代方式の車両の車載装置の技術が改善される。
【0017】
次に、システム1の各構成について詳細に説明する。
【0018】
(車載装置のハードウェア構成)
図2に示すように、車載装置10は、通信部11と、出力部12と、入力部13と、記憶部14と、制御部15と、を備える。
【0019】
通信部11は、ネットワーク40に接続する1つ以上の通信インタフェースを含む。当該通信インタフェースは、例えば4G(4th Generation)若しくは5G(5th Generation)等の移動体通信規格に対応するが、これらに限られない。本実施形態において、車載装置10は、通信部11及びネットワーク40を介して端末装置20及び情報処理装置30と通信する。
【0020】
出力部12は、情報を出力する1つ以上の出力装置を含む。当該出力装置は、例えば情報を映像で出力するディスプレイ、又は情報を音で出力するスピーカ等であるが、これらに限られない。或いは、出力部12は、外部の出力装置を接続するためのインタフェースを含んでもよい。
【0021】
入力部13は、ユーザによる入力操作を検出する1つ以上の入力装置を含む。当該入力装置は、例えば物理キー、静電容量キー、マウス、タッチパネル、出力部12のディスプレイと一体的に設けられたタッチスクリーン、又はマイクロフォン等であるが、これらに限られない。或いは、入力部13は、外部の入力装置を接続するためのインタフェースを含んでもよい。
【0022】
記憶部14は、1つ以上のメモリを含む。メモリは、例えば半導体メモリ、磁気メモリ、又は光メモリ等であるが、これらに限られない。記憶部14に含まれる各メモリは、例えば主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。例えば、記憶部14は、システムプログラム、アプリケーションプログラム、及び組み込みソフトウェア等を記憶してもよい。例えば、記憶部14に記憶された情報は、例えば通信部11を介してネットワーク40から取得される情報で更新可能であってもよい。
【0023】
制御部15は、1つ以上のプロセッサ、1つ以上のプログラマブル回路、1つ以上の専用回路、又はこれらの組合せを含む。プロセッサは、例えばCPU(Central Processing Unit)若しくはGPU(Graphics Processing Unit)等の汎用プロセッサ、又は特定の処理に特化した専用プロセッサであるがこれらに限られない。プログラマブル回路は、例えばFPGA(Field-Programmable Gate Array)であるがこれに限られない。専用回路は、例えばASIC(Application Specific Integrated Circuit)であるがこれに限られない。制御部15は、車載装置10を備える車両全体の動作を制御する。
【0024】
(車載装置のソフトウェア構成)
図3に示すように、車載装置10は、OS110と、複数のプロセス120と、複数のスレッド130と、複数のタスク140と、を備える。
【0025】
OS110は、複数のプロセス120の実行と、複数のスレッド130の実行と、複数のタスク140の実行と、を管理する。OS110は、例えば、Microsoft Windows(登録商標)、UNIX(登録商標)、Solaris(登録商標)、LINUX(登録商標)、Apple(登録商標)、MAC-OS(登録商標)、Apple iOS(登録商標)等のOSを含むが、これらに限られない。
【0026】
本実施形態において、プロセス120は、端末装置20に対するユーザ操作、タイマー起動、又はそれ以外の任意のトリガーによって発生する。具体的には、端末装置20に対するユーザ操作に応じて発生するプロセスは、例えば、車両のドアを遠隔から開閉するプロセス、又は車両のエアコンを遠隔から操作するプロセス等の、所謂リモート操作に応じて発生するプロセスがあるが、これらに限られない。また、タイマー起動のプロセスは、例えば情報処理装置30へ車両の状況等を定期的に送るデータ収集機能を実行するプロセスがあるが、これに限られない。なお、
図3においてプロセス120の数は2つとなっているが、2つに限定されるものではなく、1つ以上の任意の数であり得る。
【0027】
本実施形態において、スレッド130は、プロセス120内で実行される処理の単位である。複数のスレッド130は、同時に実行することができる。なお、
図3においてスレッド130の数は1つのプロセス120あたり2つとなっているが、これに限定されるものではなく、2つ以上の任意の数であり得る。また、あるスレッド130の実行が、別のスレッド130の実行終了を待つ必要がある場合(つまり、順次処理である場合)、スレッド間通信を行う必要がある。
【0028】
本実施形態において、タスク140は、スレッド130内で実行される処理の単位である。それぞれのスレッド130内の複数のタスク140は、同時に実行することはできず、順次処理となる。なお、
図3においてタスク140の数は1つのスレッド130あたり2つとなっているが、これに限定されるものではなく、1つのスレッド130あたり1つ以上の任意の数、かつ、全てのスレッド130内のタスク140の合計が3つ以上の任意の数であり得る。
【0029】
(実施形態の詳細)
次に、本実施形態の詳細について、
図4及び5に記載の車載装置10のプロセス120の一例を使用して、説明する。
【0030】
図4及び5に示すように、ここでは1つのプロセス120によって4つのタスク140-1~4が発生する例について説明する。ここで、第2タスク140-2は、第1タスク140-1の実行が終わらなければ実行できないものとする。また、第3タスク140-3及び第4タスク140-4は、第2タスク140-2の実行が終わらなければ実行できず、かつ、第3タスク140-3及び第4タスク140-4は、同時に実行ができるものとする。
【0031】
図4に示す比較例について説明する。本比較例に係るプロセス120Aは、4個のタスク140-1~4を4個のスレッド130-1A~4Aに分けて処理するように構成される。具体的には、プロセス120Aは、第1タスク140-1を有する第1スレッド130-1Aと、第2タスク140-2を有する第2スレッド130-2Aと、第3タスク140-3を有する第3スレッド130-3Aと、第4タスク140-4を有する第4スレッド130-4Aと、を備える。
【0032】
この場合、第2タスク140-2を実行するには、第1タスク140-1の実行終了後に第1スレッド130-1Aから第2スレッド130-2Aへのスレッド間通信を行う必要がある。また第3タスク140-3を実行するには、第2スレッド130-2Aから第3スレッド130-3Aへのスレッド間通信を行う必要がある。そして、第4タスク140-4を実行するには、第3スレッド130-3Aから第4スレッド130-4Aへのスレッド間通信を行う必要がある。そのため、合計で3つのスレッド間通信が発生する。
【0033】
これに対して、
図5における本実施形態に係るプロセス120Bは、4個のタスク140-1~4を2個のスレッド130-1B~2Bに分けて処理するように構成される。具体的には、プロセス120Bは、第1タスク140-1、第2タスク140-2、及び第3タスク140-3を有する第1スレッド130-1Bと、第4タスク140-4を有する第2スレッド130-2Bと、を備える。なお、本実施形態において、第1タスク140-1、第2タスク140-2、及び第3タスク140-3は、順次処理である。このように、プロセス120は、順次処理となる複数個のタスク140を同一のスレッド130で処理するように構成されてもよい。
【0034】
この場合、発生するスレッド間通信は、第4タスク140-4を実行するために行う必要がある第1スレッド130-1Bから第2スレッド130-2Bへのスレッド間通信のみとなる。そのため、比較例に係るプロセス120Aよりもスレッド間通信の数が少なくなり、結果として、プロセスの実行速度が速くなり得る。
【0035】
以上述べたように車載装置10は、1つのプロセス120を複数のスレッド130で処理する。当該プロセス120は、少なくとも3個であるN個のタスク140を実行するように構成され、当該プロセス120がN個のタスク140をN個より少ない複数個のスレッド130に分けて処理するように構成される。
【0036】
かかる構成によれば、プロセス120の動作時、N個のタスク140がN個より少ない複数個のスレッド130に分けて処理されるので、例えばN個のタスク140がN個のスレッド130にそれぞれ分けて処理される構成と比較して、スレッド間通信の数が少なくなる。その結果として、本実施形態を有さない車載装置よりも、プロセス120の実行速度が速くなり得る。したがって本実施形態によれば、プロセスの実行速度が改善され得る点で、次世代方式の車両の車載装置の技術が改善される。
【0037】
本開示を諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形及び改変を行ってもよいことに注意されたい。したがって、これらの変形及び改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部又は各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部又はステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。
【0038】
例えば、
図5の実施形態において、プロセス120Bは、4個のタスク140-1~4を2個のスレッド130-1B~2Bに分けて処理するように構成されているが、第2タスク140-2、3タスク140-3、及び第4タスク140-4が、同時に処理ができる場合には、2個のスレッドではなく、3個のスレッドで処理してもよい。このように、プロセス120は、N個のタスクのうち、同時に処理ができる複数個のタスク140を異なるスレッド130に分けて処理するように構成されてもよい。同時に処理ができるタスク140を異なるスレッド130に分けた方が、プロセス120の実行速度が速くなる場合があり得るからである。また、このようにプロセス120は、N個のタスク140がN個のスレッド130にそれぞれ分けて処理される構成と比較して、スレッド間通信の数が少なくなるように構成されればよい。つまり、プロセス120は、N個のタスク140を実行する間に、1回以上N-2回以下のスレッド間通信を行うように構成されてもよい。
【0039】
また、例えば汎用のコンピュータを、上述した実施形態に係る車載装置10として機能させる実施形態も可能である。具体的には、上述した実施形態に係る車載装置10の各機能を実現する処理内容を記述したプログラムを、汎用のコンピュータのメモリに格納し、プロセッサによって当該プログラムを読み出して実行させる。したがって、本開示は、プロセッサが実行可能なプログラム、又は当該プログラムを記憶する非一時的なコンピュータ可読媒体としても実現可能である。
【符号の説明】
【0040】
1 システム
10 車載装置
11 通信部
12 出力部
13 入力部
14 記憶部
15 制御部
20 端末装置
30 情報処理装置
40 ネットワーク
110 OS
120 プロセス
130 スレッド
140 タスク