(57)【要約】【課題】演算処理の処理速度を向上させることができる制御装置および制御方法を提供すること。【解決手段】実施形態に係る制御装置は、第１記憶部と、第２記憶部と、制御部とを備える。第１記憶部は、所定期間内に類似する演算を大量に行う処理である演算処理に用いられるデータである演算データを記憶する。第２記憶部は、第１記憶部に記憶された演算データが転送される。制御部は、第１記憶部に対するアクセスに制限が無い第１モードおよび制限がある第２モードを切り替えながら車両の制御に関する処理を行う。また、制御部は、第１モードにあるときに、第１記憶部から第２記憶部への演算データの転送処理を実行し、第２モードにあるときに、第２記憶部に記憶された演算データを用いて演算処理を実行する。【選択図】図１
2020166757.tif 000002
【特許請求の範囲】
【請求項１】
所定期間内に類似する演算を大量に行う処理である演算処理に用いられるデータである演算データを記憶する第１記憶部と、
前記第１記憶部に記憶された前記演算データが転送される第２記憶部と、
前記第１記憶部に対するアクセスに制限が無い第１モードおよび前記制限がある第２モードを切り替えながら制御対象の制御に関する処理を行う制御部と、を備え、
前記制御部は、
前記第１モードにあるときに、前記第１記憶部から前記第２記憶部への前記演算データの転送処理を実行し、
前記第２モードにあるときに、前記第２記憶部に記憶された前記演算データを用いて前記演算処理を実行すること
を特徴とする制御装置。
【請求項２】
前記演算処理はニューラルネットワークを用いた演算処理であること
を特徴とする請求項１に記載の制御装置。
【請求項３】
前記第１記憶部は、
前記制御対象の制御処理の制御データをさらに記憶し、
前記制御部は、
前記第１モードにあるときに、前記制御データを用いた前記制御処理を実行すること
を特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記制御部は、
前記制御処理、前記転送処理、前記演算処理の順に高い優先度で処理を実行すること
を特徴とする請求項３に記載の制御装置。
【請求項５】
前記制御部は、
前記第２モードにて、前記第２記憶部に記憶された前記演算データを用いた前記演算処理が終了した場合、制御モードを前記第１モードに切り替えて、新たな前記演算データを転送する前記転送処理を実行すること
を特徴とする請求項１〜４のいずれか１つに記載の制御装置。
【請求項６】
所定期間内に類似する演算を大量に行う処理である演算処理に用いられるデータである演算データを第１記憶部に記憶する第１記憶工程と、
前記第１記憶部に記憶された前記演算データが転送されて第２記憶部に記憶する第２記憶工程と、
前記第１記憶部に対するアクセスに制限が無い第１モードおよび前記制限がある第２モードを切り替えながら制御対象の制御に関する処理を行う制御工程と、を含み、
前記制御工程は、
前記第１モードにあるときに、前記第１記憶部から前記第２記憶部への前記演算データの転送処理を実行し、
前記第２モードにあるときに、前記第２記憶部に記憶された前記演算データを用いて前記演算処理を実行すること
を特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置および制御方法に関する。
【背景技術】
【０００２】
近年、例えば、車両制御においてＡＩ（Artificial  Intelligence）技術が活用されつつある。従来技術には、他の制御処理が行われていない期間に、ＡＩ演算処理を行うものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１８２６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、例えば、ニューラルネットワーク等によるＡＩ演算処理では、膨大な量の演算処理が必要となる。しかしながら、従来技術では、車両制御のように、制御処理の周期が比較的短い場合には、ＡＩ演算処理を実現できないおそれがあるため、ＡＩ演算処理の高速化が望まれている。
【０００５】
本発明は、上記に鑑みてなされたものであって、演算処理の処理速度を向上させることができる制御装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係る制御装置は、第１記憶部と、第２記憶部と、制御部とを備える。前記第１記憶部は、所定期間内に類似する演算を大量に行う処理である演算処理に用いられるデータである演算データを記憶する。前記第２記憶部は、前記第１記憶部に記憶された前記演算データが転送される。前記制御部は、前記第１記憶部に対するアクセスに制限が無い第１モードおよび前記制限がある第２モードを切り替えながら車両の制御に関する処理を行う。また、前記制御部は、前記第１モードによって、前記第１記憶部から前記第２記憶部への前記演算データの転送処理を実行し、前記第２モードによって、前記第２記憶部に記憶された前記演算データを用いて前記演算処理を実行する。
【発明の効果】
【０００７】
本発明によれば、演算処理の処理速度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る制御装置の構成を示すブロック図である。
【図２】図２は、制御部の処理を説明するための図である。
【図３】図３は、制御部の処理を説明するための図である。
【図４】図４は、実施形態に係る制御装置が実行する処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本願の開示する制御装置および制御方法の実施形態を詳細に説明する。なお、以下に示す実施形態により本発明が限定されるものではない。
【００１０】
まず、図１を用いて、実施形態に係る制御方法の概要について説明する。図１は、実施形態に係る制御装置の構成を示すブロック図である。なお、実施形態に係る制御装置１は、実施形態に係る制御方法を実行する。
【００１１】
図１に示すように、実施形態に係る制御装置１は、制御部２と、主メモリ３と、高速メモリ４とを備える。実施形態に係る制御装置１は、車両に搭載される制御装置であり、例えば、内燃機関の制御に関する処理を実行する。なお、制御装置１は、車両の制御に関する処理であれば任意の処理を実行可能である。
【００１２】
ここで、制御装置１は、たとえば、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）などを有するコンピュータや各種の回路を含む。
【００１３】
コンピュータのＣＰＵは、たとえば、主メモリ３であるＲＡＭやＲＯＭ等に記憶された制御データおよび演算データや、各種プログラムを読み出して実行することによって、制御部２として機能する。なお、主メモリ３は、第１記憶部の一例である。
【００１４】
制御データには、車両の制御処理を実行するためのコードや、制御処理により生成されたデータ等が含まれる。例えば、制御データには、内燃機関の制御に関する処理を実行するためのデータが含まれる。また、演算データには、後述の演算処理を実行するためのコードや、演算処理により生成されたデータ等が含まれる。例えば、演算データには、ニューラルネットワーク等の各ＡＩ（Artificial  Intelligence）による演算のパラメータ（入力データや係数データ等）に関する情報が含まれる。
【００１５】
なお、制御部２の機能のうち、一部または全部をＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェアで構成することもできる。
【００１６】
また、高速メモリ４は、たとえば、ＲＡＭに対応する。ＲＡＭは、制御部２の作業領域として機能し、制御部２が実行する演算処理の演算データや、各種プログラムの情報等を一時的に記憶することができる。なお、高速メモリ４は、第２記憶部の一例であり、後述の転送処理によって、主メモリ３から高速メモリ４に演算データが転送される。
【００１７】
ここで、制御部２には、仮想化支援機能が実装されている。仮想化支援機能とは、１つのＣＰＵ（もしくはコア）をハードウェア的な仮想化技術によって論理的に二つ以上に分割することで、ユーザからは、あたかも二つのＣＰＵ（コア）が動作しているように見える機能である。これにより、１つのＣＰＵで構成される制御部２は、動作モードが異なる複数のモードを切り替えながら車両の制御に関する処理を実行することができる。
【００１８】
図１に示す例では、制御部２は、動作モードとして主メモリ３へのアクセス制限の内容が異なるセキュアモード（第１モードに相当）と、ノンセキュアモードとを切り替えて処理を行う。セキュアモードは、主メモリ３に対するアクセスの制限が無いモードである。ノンセキュアモードは、主メモリ３に対するアクセスの制限があるモードである。
【００１９】
また、仮想機縁機能の一般的な用いられ方としては、機能ごとやユーザごとのアプリケーションプログラムをノンセキュアモードに割り当て、全体の監視等の管理プログラムをセキュアモードに割り当てる考え方がある。主メモリが複数の領域に分けられており、ノンセキュアモードでは、自モード用の領域しかアクセスできないように制限があるが、セキュアモードでは全領域（自モード用の領域と、ノンセキュアモード用の領域の両方）にアクセスできるように設定されている。
【００２０】
図１に示すように、制御部２は、セキュアモードによって、内燃機関やモータ等を制御する制御処理および転送処理を実行し、ノンセキュアモードによってニューラルネットワークを用いた演算処理を実行する。具体的には、制御部２は、主メモリ３から高速メモリ４への演算データの転送処理を実行する。また、制御部２は、高速メモリ４に記憶された演算データを用いて演算処理を実行する。
【００２１】
つまり、制御部２は、所定期間内に大量の演算処理を行う必要があるニューラルネットワークを用いた演算処理を高速メモリ４にアクセスして行うため、演算処理の処理速度を向上させることができる。
【００２２】
また、制御部２は、セキュアモードにあるときに、リアルタイムＯＳ（Operating  System）により制御処理を実行する。リアルタイムＯＳは、例えば、車載ネットワークであるＣＡＮ（Controller  Area  Network）の通信ドライバを使用して、リアルタイム性が要求される処理を実行するＯＳである。
【００２３】
つまり、制御部２は、制御処理とは異なるモードで演算処理を行うため、演算処理を制御処理に割り込ませる必要がなくなり、結果、制御処理の処理遅れを生じさせることなく、演算処理を高速化することができる。なお、制御処理は省略されてもよい。
【００２４】
さらに、制御部２は、ノンセキュアモードでは、演算処理のみを行うため、ＯＳを使用しない。これにより、ＯＳに起因する処理オーバーヘッドが発生しないため、演算処理の処理速度をさらに向上させることができる。
【００２５】
また、ニューラルネットワークの演算処理に、ニューラルネットワークの演算に関係ないデータ（制御処理が使用するデータ等）に自由にアクセスできるように構成することはセキュリティ性に関して問題があるため、通常はアクセス制限をＯＳの不正アクセス防止機能を用いて実現している。
【００２６】
なお、制御部２は、ノンセキュアモードについては、主メモリ３の制御データへのアクセスを禁止する。すなわち、ノンセキュアモードでは、主メモリ３に対するアクセスの制限がある。
【００２７】
これにより、ノンセキュアモードがＯＳ非搭載であっても、ノンセキュアモード時における主メモリ３の制御データへの不正アクセス防止を担保できる。すなわち、アクセス制限を、仮想支援化機能（ノンセキュアモードのアクセス制限）を用いて実現している。
【００２８】
なお、制御部２は、転送処理および演算処理よりも、制御処理を優先して実行する。かかる点について、図２および図３を用いて説明する。
【００２９】
図２および図３は、制御部２の処理を説明するための図である。なお、図２に示す最先の演算処理（図２の２つの演算処理のうち、左側のバー）の演算データは転送が既に完了しているものとする。
【００３０】
図２に示すように、制御部２は、制御処理の割り込みがあった場合、制御処理を実行する。そして、制御部２は、制御処理が終了した場合、セキュアモードからノンセキュアモードに切り替えて演算処理を実行する。
【００３１】
すなわち、制御部２は、制御処理が実行されていない期間に、演算処理を実行する。これにより、制御処理の処理遅れを生じさせることなく、演算処理を高速化することができる。
【００３２】
そして、時刻ｔ２において、制御部２は、高速メモリ４に記憶された演算データを用いた演算処理が終了した場合、制御モードを第１モードに切り替えて、新たな演算データを転送する転送処理を実行する。具体的には、図３に示すように、制御部２は、高速メモリ４の演算データが無くなった直後のソースコード箇所に転送処理を要求する処理を記述しておく。
【００３３】
これにより、制御部２は、高速メモリ４の演算データによる演算処理が終了した直後に、次の演算処理の演算データを転送できるため、古い演算データを用いて誤った演算処理を行ってしまうことを防止できる。
【００３４】
図２に戻って制御部２の処理の説明を続ける。制御部２は、時刻ｔ２において転送処理の要求があった場合、ノンセキュアモードからセキュアモードに切り替えて転送処理を実行する。かかる転送処理では、次回の演算処理に用いる演算データのみを高速メモリ４に転送する。
【００３５】
そして、時刻ｔ３において、制御部２は、転送処理を実行中に、制御処理の割り込みがあった場合、実行中の当該転送処理を中断して制御処理を実行する。なお、制御部２は、演算処理を実行中に、制御処理の割り込みがあった場合も同様に、実行中の当該演算処理を中断して制御処理を実行する。そして、制御部２は、制御処理を終了した後、中断していた転送処理を再開する。
【００３６】
これにより、転送処理や演算処理の処理完了まで待機することによる制御処理の処理遅れの発生を無くすことができる。
【００３７】
つづいて、制御部２は、時刻ｔ４において、転送処理を終了した後、セキュアモードからノンセキュアモードに切り替えて演算処理を実行する。つまり、制御部２は、制御処理、転送処理、演算処理の順に高い優先度で処理を実行する。
【００３８】
このように、制御部２は、転送処理および演算処理よりも、制御処理を優先して実行することで、制御処理を処理遅れなく実行できるとともに、演算処理を高速に行うことができる。
【００３９】
次に、図４を用いて、実施形態に係る制御装置１が実行する処理の処理手順について説明する。図４は、実施形態に係る制御装置１が実行する処理の処理手順を示すフローチャートである。なお、図４では、制御処理の割り込みを省略している。制御処理の割り込みが有った場合には、転送処理および演算処理が中断され、制御処理終了後に再開される。
【００４０】
図４に示すように、まず、制御装置１の制御部２は、転送処理を実行する（Ｓ１０１）。
【００４１】
つづいて、制御部２は、転送処理が終了したか否かを判定する（Ｓ１０２）。
【００４２】
制御部２は、転送処理が終了していない場合（Ｓ１０２：Ｎｏ）、ステップＳ１０１を実行し、転送処理が終了した場合（Ｓ１０２：Ｙｅｓ）、演算処理を開始する（Ｓ１０３）。
【００４３】
つづいて、制御部２は、演算処理が終了したか否かを判定する（Ｓ１０４）。
【００４４】
制御部２は、演算処理が終了していない場合（Ｓ１０４：Ｎｏ）、ステップＳ１０３を実行し、演算処理が終了した場合（Ｓ１０４：Ｙｅｓ）、転送処理要求があるか否かを判定する（Ｓ１０５）。
【００４５】
制御部２は、転送処理要求が無い場合（Ｓ１０５：Ｎｏ）、処理を終了し、転送処理要求がある場合（Ｓ１０５：Ｙｅｓ）、ステップＳ１０１を実行する。
【００４６】
上述してきたように、実施形態に係る制御装置１は、主メモリ３（第１記憶部）と、高速メモリ４（第２記憶部）と、制御部２とを備える。主メモリ３は、所定期間内に類似する演算を大量に行う処理である演算処理に用いられるデータである演算データを記憶する。高速メモリ４は、主メモリ３に記憶された演算データが転送される。制御部２は、主メモリ３に対するアクセスに制限が無いセキュアモードおよび制限があるノンセキュアモードを切り替えながら車両の制御に関する処理を行う。また、制御部２は、セキュアモードにあるときに、主メモリ３から高速メモリ４への演算データの転送処理を実行し、ノンセキュアモードにあるときに、高速メモリ４に記憶された演算データを用いた演算処理を実行する。これにより、演算処理の処理速度を向上させることができる。
【００４７】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【００４８】
１    制御装置
２    制御部
３    主メモリ
４    高速メモリ
【図１】
2020166757.tif 000003
【図２】
2020166757.tif 000004
【図３】
2020166757.tif 000005
【図４】
2020166757.tif 000006