(57)【要約】      （修正有）【課題】設定データに基づいてアルゴリズムを計算するハードウェアによるモデル計算ユニットを駆動する方法を提供する。【解決手段】制御装置１は、主演算ユニット２と、設定データに基づいてアルゴリズムを計算するためのハードウェアによるモデル計算ユニット３と、メモリユニット５とを備え、モデルメモリ領域５１がメモリユニット５内で定義され、モデルメモリ領域５１には、モデル計算ユニット３内で設定データを提供するための設定レジスタブロック３１が割り当てられ、設定レジスタブロック３１内の最上位のアドレスに計算開始設定レジスタ３３が割り当てられ、計算開始設定レジスタ３３への書き込みによって、モデル計算ユニット３内での計算が開始され、メモリユニット５内の設定データは、モデルメモリ領域５１の増分的な複写処理によって、設定レジスタブロック３１へと書き込まれ、増分的な複写処理の際には、アドレスが昇順に複写される。【選択図】図１
2015015024.tif 000002
【特許請求の範囲】
【請求項１】
制御装置（１）を駆動する方法であって、
前記制御装置（１）は、ソフトウェアにより制御される主演算ユニット（２）と、設定データに基づいてアルゴリズムを計算するための純粋にハードウェアによるモデル計算ユニット（３）と、メモリユニット（５）と、を備え、
モデルメモリ領域（５１）が、前記メモリユニット（５）内で定義され、
前記モデルメモリ領域（５１）には、前記モデル計算ユニット（３）内で前記設定データを提供するための設定レジスタブロック（３１）が割り当てられ、
前記設定データが書き込まれる前記設定レジスタブロック（３１）内の最上位のアドレスに、計算開始設定レジスタ（３３）が割り当てられ、
前記計算開始設定レジスタ（３３）への書き込みによって、前記モデル計算ユニット（３）内での計算が開始され、
前記メモリユニット（５）のメモリ領域内の前記設定データは、前記モデルメモリ領域（５１）の増分的な複写処理によって、前記設定レジスタブロック（３１）へと書き込まれ、
前記増分的な複写処理の際には、アドレスが連続して複写される、方法。
【請求項２】
前記増分的な複写処理は、ＤＭＡユニット（６）のブロック複写関数を用いて実行される、請求項１に記載の方法。
【請求項３】
前記増分的な複写処理は粒度を有し、ＤＭＡの前記粒度を調整するために、前記計算開始設定レジスタ（３３）に割り当てられた前記アドレスに、利用されていないメモリ領域が連結される、請求項２に記載の方法。
【請求項４】
前記ＤＭＡユニット（６）は、前記主演算ユニット（２）によって、同一のターゲット基底アドレスを用いて複数の連続するブロック複写関数を実行するよう命令される、請求項２又は３に記載の方法。
【請求項５】
複数の連続するブロック複写関数を実行するという前記ＤＭＡユニット（６）への前記命令に対応して、複数の計算が前記モデル計算ユニット（３）内で実行され、
第２のＤＭＡユニット（７）は、複数回のブロックの前記複写処理により開始された各計算の後で計算結果を複写し、第１の前記ＤＭＡユニット（６）に、次のブロック複写処理を実行するよう命令する、請求項４に記載の方法。
【請求項６】
前記アルゴリズムは、ベイズ回帰方法を実施するためのものである、請求項１に記載の方法。
【請求項７】
前記増分的な複写処理の際には、アドレスが昇順で連続して複写される、請求項１に記載の方法。
【請求項８】
物理的ユニットを駆動する制御装置（１）であって、
ソフトウェアにより制御される主演算ユニット（２）と、
設定データに基づいてアルゴリズムを計算するための純粋にハードウェアによるモデル計算ユニット（３）と、
前記設定データを格納するメモリユニット（５）と、
を備え、
モデルメモリ領域（５１）が、前記メモリユニット（５）内で定義され、前記モデルメモリ領域（５１）には、前記モデル計算ユニット（３）内で前記設定データを提供するための設定レジスタブロック（３１）が割り当てられ、前記設定レジスタブロック（３１）内の最上位のアドレスに、計算開始設定レジスタ（３３）が割り当てられ、
前記モデル計算ユニット（３）は、前記計算開始設定レジスタ（３３）に書き込まれた場合には、前記アルゴリズムの計算を開始するよう構成される、制御装置（１）。
【請求項９】
第１のＤＭＡユニット（６）が、ブロック複写処理により前記設定レジスタブロック（３１）への書き込みを実行するために設けられる、請求項８に記載の制御装置。
【請求項１０】
前記主演算ユニット（２）は、第１の前記ＤＭＡユニット（６）の機能を起動するために設けられる、請求項９に記載の制御装置。
【請求項１１】
前記主演算ユニット（２）は、第１の前記ＤＭＡユニット（６）に複数回の複写処理を実行させるよう構成され、その後で、複数の連続する計算が前記モデル計算ユニット（３）内で実行される、請求項９又は１０に記載の制御装置。
【請求項１２】
第２のＤＭＡユニット（７）が、複数回のブロックの前記複写処理により開始された各計算の後で計算結果を複写し、第１の前記ＤＭＡユニット（６）に次のブロック複写処理を実行するよう命令するために設けられる、請求項１１に記載の制御装置。
【請求項１３】
前記アルゴリズムは、ベイズ回帰方法を実施するためのものである、請求項８に記載の制御装置。
【請求項１４】
請求項１〜７のいずれか１項に記載の方法の全工程を実施するよう構成されたコンピュータプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムが格納された電子記憶媒体。
【請求項１６】
請求項１５に記載の電子記憶媒体を有する、請求項８〜１３のいずれか１項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、物理的ユニットを制御する制御装置、特に、ハードウェアにより制御される演算ユニットとハードウェアによるモデル計算ユニットとを有する制御装置に関する。さらに、本発明は、演算ユニットによりモデル計算ユニットを制御する方法に関する。
【背景技術】
【０００２】
プラントモデル又はシステムモデルを計算するために、モデル関数値を計算するためのモデル計算ユニットである純粋なハードウェアによる論理ユニットを備えた制御装置を設けることが可能である。このことは、例えば、複雑な数学関数及びループ演算に基づいた、特にガウス過程モデルの形態によるデータに基づく関数モデルの場合にそうであるように、プラントモデル又はシステムモデルの計算にコストが掛かる場合には、特に有効である。
【０００３】
システム内に存在するソフトウェアにより駆動される主演算ユニット（マイクロコントローラ）への適切なインタフェースを特に用いて、モデル計算ユニットを計算のために初期し、当該計算を実行させ、スリープモードにし、及び、停止させることが可能である。このようなモデル計算ユニットのための、上記計算のために必要な関数モデルを記述する設定データを、通常では制御装置の内部メモリの関連する特定のメモリ領域と関連付けられた一連の設定レジスタへと伝送することが可能である。モデル計算ユニット内での計算を開始するために、通常では、計算処理を開始するために設定レジスタのうちの特定の設定レジスタに書き込むことが構想され、その際に、設定レジスタに書き込まれるデータの形態は重要ではないということが構想されうる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
米国特許出願公開第２００５／０１０２４８８号明細書は、ファームウェア（Ｆｉｒｍｗａｒｅ）レジスタをプログラミングするための言語について記載している。
【０００５】
さらに、米国特許第５６１９７０２号明細書には、各ハードウェアレジスタを定義しハードウェアレジスタにビットを割り当てるデータバンクの利用について記載している。
【課題を解決するための手段】
【０００６】
本発明に基づいて、請求項１に記載の制御装置を駆動する方法と、同等の独立請求項に記載の制御装置と、が構想される。
【０００７】
本発明の更なる別の有利な構成は従属請求項に示される。
【０００８】
第１の観点によれば、制御装置を駆動する方法であって、制御装置は、ソフトウェアにより制御される主演算ユニットと、設定データに基づいてアルゴリズムを計算するため、特にベイズ回帰方法を実施するための純粋にハードウェアによるモデル計算ユニットと、メモリユニットと、を備え、モデルメモリ領域がメモリユニット内で定義され、モデルメモリ領域には、モデル計算ユニット内で設定データを提供するための設定レジスタブロックが割り当てられ、設定データが書き込まれる設定レジスタブロック内の最上位のアドレスに、計算開始設定レジスタが割り当てられ、計算開始設定レジスタへの書き込みによって、モデル計算ユニット内での計算が開始され、メモリユニットのメモリ領域内の設定データは、モデルメモリ領域の増分的な複写処理によって、設定レジスタブロックへと書き込まれ、増分的な複写処理の際にはアドレスが昇順に複写される、上記方法が構想される。
【０００９】
ソフトウェアにより制御される制御ユニットと、ハードウェアに実装されたモデル計算ユニットと、を有し、制御ユニットの負荷を軽減するために、関数モデル、特にデータに基づく関数モデルが別体のモデル計算ユニット内で計算される制御装置では、モデル計算ユニットの制御及びモデル関数の定義は、設定レジスタを介して行われる。設定レジスタは、関数値を計算するためのアルゴリズムの開始値をモデル計算ユニットに伝送し、さらに、パラメータ的な関数モデル又はハイパーパラメータと、非パラメータ的な、データに基づく関数モデルの計算のためのサンプルポイントと、が格納されるアドレス領域を定義する役目を果たす。モデル計算ユニットによるデータに基づく関数モデルの各関数値計算の前に、設定データを予め設定し、計算処理を開始するという、ソフトウェアにより制御される主演算ユニットのタスクは、主演算ユニットの性能が低い際には無視できない負荷となる。
【００１０】
従って主演算ユニットの負荷を軽減するために、設定レジスタブロック内の設定レジスタのうちの最後の設定レジスタとしての、モデル計算ユニット内での計算処理を開始する設定レジスタに書き込まれることが構想される。このために、設定レジスタは好適に、内部メモリの関連するメモリ領域、即ちモデルメモリ領域に割り当てられ、従って、簡単な増分的なメモリ複写処理によって、モデル計算ユニットのための設定値が格納されたモデルメモリ領域からモデル計算ユニットの設定レジスタブロックへと、特にＤＭＡユニットのそれ自体は公知のブロック複写関数を用いて転送されうる。その際に、計算処理を開始する特定の設定レジスタは、関連するメモリ領域の最上位のアドレスとして設けられ、従って、増分的なメモリ複写処理によって、最後の設定レジスタとして書き込まれる。このやり方で、簡単な増分的なメモリ複写処理の終了後に既に計算が開始され、当該計算のために必要な初期データにアクセスされうる。これにより、設定データの書き込みの後に、特定の設定レジスタに別に書き込むことが省略される。本方法は、特に、設定レジスタブロック内での書き込み処理を行うことが可能なＤＭＡユニットを利用した際には有利である。なぜならば、これにより演算ユニットの負荷が軽減されるからである。
【００１１】
増分的な複写処理は粒度を有し、当該粒度がモデルメモリ領域よりも大きい場合には、計算開始設定レジスタに割り当てられたメモリアドレスに、利用されていないメモリ領域が連結されるということが構想されてもよい。
【００１２】
ＤＭＡユニットは、主演算ユニットによって、複数の連続するブロック複写関数を実行するよう命令されうる。
【００１３】
複数の連続するブロック複写関数を実行するというＤＭＡユニットへの命令に対応して、複数の計算がモデル計算ユニット内で実行され、第２のＤＭＡユニットは、複数回のブロック複写処理により開始された各計算の後で計算結果を複写し、第１のＤＭＡユニットに、次のブロック複写処理を実行するよう命令するということが構想されてもよい。
【００１４】
更なる別の観点によれば、物理的ユニットを駆動する制御装置であって、制御装置は、
−ソフトウェアにより制御される主演算ユニットと、
−設定データに基づいてアルゴリズムを計算するため、特にベイズ回帰方法を実施するための純粋にハードウェアによるモデル計算ユニットと、
−設定データを格納するメモリユニットと、
を備え、
モデルメモリ領域がメモリユニット内で定義され、モデルメモリ領域には、モデル計算ユニット内で設定データを提供するための設定レジスタブロックが割り当てられ、設定レジスタブロック内の最上位のアドレスに、計算開始設定レジスタが割り当てられ、
モデル計算ユニットは、計算開始設定レジスタに書き込まれた場合には、アルゴリズムの計算を開始するよう構成される、
上記制御装置が構想される。
【００１５】
さらに、第１のＤＭＡユニットは、ブロック複写処理によりモデルメモリ領域へのアクセス又はモデルメモリ領域の読出しを実行するために設けられてもよい。
【００１６】
主演算ユニットは、第１のＤＭＡユニットの機能を起動し、及び、第１のＤＭＡユニットに複数回の複写処理を実行させるよう構成されてもよく、その後で、複数の連続する計算がモデル計算ユニット内で実行される。
【図面の簡単な説明】
【００１７】
【図１】ソフトウェアにより制御される主演算ユニットと、ハードウェアに実装されたモデル計算ユニットと、を有する制御装置の概略図を示す。
【図２】モデル計算ユニットに割り当てられた内部メモリのメモリ領域であって、設定レジスタが割り当てられる上記メモリ領域を示す。
【図３】メモリユニットのメモリ領域を複数のプログラミングモデルと共に示す。
【図４】図１のモデル計算ユニット内で複数の関数モデルが計算される、モデル計算ユニット内でモデル計算を開始する方法を解説するためのフローチャートを示す。
【図５】２つのＤＭＡユニットを有するモデル計算ユニット内で複数の関数モデルが計算される、モデル計算を開始する方法を解説するためのフローチャートを示す。
【発明を実施するための形態】
【００１８】
図１は、例えば内燃機関のような、車両内の物理的ユニットを特に駆動するための制御装置１の構造を概略的に示している。制御装置１は主演算ユニット２としてのマイクロコントローラを備え、主演算ユニット２は、モデル計算ユニット３と一緒に組み込まれて実現されている。モデル計算ユニット３は、基本的には関数計算、特にベイズ回帰方法のための関数計算をハードウェア上で実行しうるハードウェアユニットである。特に、モデル計算ユニット３は、ループ演算において指数関数演算、加算演算、及び乗算演算を実行するよう構成される。
【００１９】
モデル計算ユニット３内での計算は、関数モデルを記述するハイパーパラメータ及びサンプルポイントに基づき試験点のための関数値を求めるために、主演算ユニット２によって開始される。ハイパーパラメータ及びサンプルポイントは、主演算ユニット２及びモデル計算ユニット３と共にさらに組み込まれたメモリユニット５に格納され、及び、制御すべき物理的ユニットの駆動を記述する関数モデルであって、データに基づく上記関数モデルを表わす役割を果たす。
【００２０】
主演算ユニット２とモデル計算ユニット３とは内部の通信接続を介して、特にシステムバス４を介して互いに通信接続されている。さらに、メモリユニット５とＤＭＡ（ＤＭＡ＝Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ、直接メモリアクセス）ユニット６とが、主演算ユニット２及びモデル計算ユニット３との信号通信を保証するために、内部通信接続によって接続されうる。
【００２１】
基本的に、モデル計算ユニット３は、定められた計算過程を予め設定するハードウェアのみを有し（ハード配線）、好適に、ソフトウェアコードを実行するよう構成されていない。この理由から、モデル計算ユニット３内にプロセッサを設けることも必要ではない。このことによって、リソースが最適化されたこのようなモデル計算ユニット３の実現が可能となる。実装されたハードウェアルーチンに従った計算によって、ソフトウェアアルゴリズムに比べて計算時間が明らかに短縮されうる。
【００２２】
非パラメータ的な、データに基づく関数モデルの利用は、ベイズ回帰方法に基づいている。ベイズ回帰の基礎は、例えば、Ｃ．Ｅ．Ｒａｓｍｕｓｓｅｎらによる「Ｇａｕｓｓｉａｎ  Ｐｒｏｃｅｓｓｅｓ  ｆｏｒ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ」（ＭＩＴ  Ｐｒｅｓｓ、２００６年）に記載されている。ベイズ回帰は、データに基づく方法であって、モデルに基づいている。モデルの作成のために、訓練データの測定点、及び、出力変数の対応する出力データが必要である。このモデルは、訓練データに完全又は部分的に対応し又は訓練データから生成されるサンプルポイントデータを利用して作成される。さらに、抽象的なハイパーパラメータが決定され、このハイパーパラメータは、モデル関数の空間をパラメータ化し、後のモデル予測への、訓練データの個々の測定点の影響に効果的に重み付けする。
【００２３】
モデル計算ユニット３は、設定レジスタ３２を有する設定レジスタブロック３１にアクセスするよう構成される。特に、モデル計算ユニット３は、設定レジスタ３２を有する設定レジスタブロック３１を、システムのメモリ領域に組み入れるため、又は、設定レジスタブロック３１をメモリマップドレジスタとして具現するために構成される。
【００２４】
設定レジスタブロック３１の設定レジスタ３２は、関数モデルの計算のために必要なパラメータ及びアドレスポインタを獲得するために構成される。特に、開始ポインタと場合によってはデータの長さとによって、関数モデルの計算のためのハイパーパラメータ及びサンプルポイントが存在するアドレス領域を示すデータ、特にアドレスポインタが必要となる。さらに、データに基づく関数モデルの関数値がそれから始まるオフセット値のような、計算されるループのための初期値が予め設定されうる。更なる別のパラメータの伝達も可能である。
【００２５】
モデル計算ユニット３内での関数モデルの計算を開始するために、主演算ユニット２は、最初に設定レジスタ３２を設定し、続いて、特定の計算開始設定レジスタ３３への書き込みによって、計算開始設定レジスタ３３内に含まれるビットを設定して又は当該ビットを設定せずに、モデル計算ユニット３を始動する必要がある。
【００２６】
設定レジスタ３２への書き込み及びモデル計算ユニット３の始動は、従来では完全に主演算ユニット２に依存しており、これにより、時間的により短い複数のモデル計算が連続的に行われる際には、特に主演算ユニット２に著しい負荷が掛かる。従って、図２のような設定レジスタブロック３１を形成することが構想される。設定レジスタブロック３１が一連の設定レジスタ３２を有し、計算開始設定レジスタ３３が最上位のメモリアドレスで設けられ、従って、連続的な書き込み処理（メモリアドレスが増分される書き込み）において、設定データが設定レジスタブロック３１に書き込まれるということが分かる。従って、計算開始設定レジスタ３３に割り当てられたアドレスが最後に書き込まれる。これにより、主演算ユニット２内で増分的なメモリ複写命令を利用することが可能であり、主演算ユニット２にとってはより小さな負荷となる。
【００２７】
さらに、上述のタスクは、主演算ユニット２からＤＭＡユニット６に移されてもよい。通常では、ＤＭＡユニットは特定の粒度を有し、従って、伝送されるデータブロックの大きさは定められている。しかしながら、計算開始設定レジスタ３３は常に、残りの設定レジスタ３２に割り当てられたメモリアドレスの直後に続くメモリアドレスに存在する。ＤＭＡユニット６の粒度Ｇがより高い場合には、計算開始設定レジスタ３３のメモリアドレスに連結する残りのメモリアドレスが、利用されないメモリ領域３４としてマーク付けされ又は予約される。
【００２８】
さらに、モデル計算ユニット３の結果、状態、及び更なる別の情報を提供するために、読出し可能なレジスタ３５のみ構成されるということも構想されてもよい。
【００２９】
ＤＭＡユニット６がモデル計算ユニット３を設定することを構想するためには、複数のプログラミングモデルＦ０１、Ｆ０２、…、Ｆ０Ｍを含む構造を定義する必要がある。図３では、Ｍ個のプログラミングモデルＦ０１、Ｆ０２、…、Ｆ０Ｍが、ＤＭＡ粒度Ｇに対応して連続的にモデルメモリ領域５１に格納されている。各プログラミングモデルは、設定レジスタ３２及び計算開始設定レジスタ３３に書き込まれる設定パラメータを含む。さらに、プログラミングモデルは、先に記載したような利用されていないメモリ領域３４の予約されたメモリアドレスを含んでもよい。
【００３０】
ＤＭＡユニット６を利用する際、主演算ユニット２のタスクは、ＤＭＡユニット６を設定し、及び、モデルメモリ領域５１内の設定データの開始アドレスと、モデル計算ユニット３の設定レジスタブロック３１の基底アドレスにより示されるターゲットアドレスと、によって決定されるアドレス表示を用いて、当該ＤＭＡユニット６を始動することである。
【００３１】
図４で概略的に示される方法では、モデル計算ユニット３は、連続的に様々なプログラミングモデルＦ０１、Ｆ０２、…、Ｆ０Ｍによって設定され始動されうる。ＤＭＡユニット６は、同一のターゲット基底アドレスを用いた反復可能なブロック複写過程をサポートするものである。このために、主演算ユニット２は、ステップＳ１で、対応する命令をＤＭＡユニット６に対して一回出力する。ステップＳ２では、ＤＭＡユニット６は、一回の設定レジスタブロック３１へのブロック複写処理によって計算処理を開始する。各計算の後に、モデル計算ユニット３はステップＳ３で、例えば割り込みを用いて、計算が終了したことをＤＭＡユニット６にシグナリングする。ステップＳ２及びＳ３でのこの手続きは、各計算されるプログラミングモデルＦ０１、Ｆ０２、…、Ｆ０Ｍのために行われる。最後に計算されるプログラミングモデルＦ０Ｍの計算の終了後に、ステップＳ３の代わりにステップＳ４で、主演算ユニット２への対応するメッセージが伝達される。
【００３２】
本方法は、他のメモリアドレスへと計算結果を複写するために、第２のＤＭＡユニット７を用いて実現されてもよい。このために、第２のＤＭＡユニット７は、主演算ユニット２の関与なしに、同一のソース基底アドレスを用いた反復可能な複写過程をサポートする必要がある。
【００３３】
主演算ユニット２は、ステップＳ１１及びＳ１２で２つのＤＭＡユニット６、７を設定する。ステップ１３で、第１のＤＭＡユニット６は、モデル計算ユニット３内でのブロック複写処理によって計算処理を開始する。各計算の終了後に、モデル計算ユニット３は、ステップＳ１４で各計算の終了を第２のＤＭＡユニット７にシグナリングする。第２のＤＭＡユニット７は、モデル計算ユニット３による割り込みによって始動される。
【００３４】
第２のＤＭＡユニット７は、各計算の後で、モデル計算ユニット３の計算結果を更なる別のメモリアドレスへと伝送し、ステップＳ１５で第１のＤＭＡユニット６を促すために利用される。
【００３５】
引き続いて、ステップＳ１３では、モデル計算ユニット３の新たな設定及び計算の開始が、設定レジスタブロック３１に設定データを書き込むためのブロック複写処理によって行われる。各計算の終了後に、モデル計算ユニット３はステップＳ１４で、各計算の終了を第２のＤＭＡユニット７にシグナリングし、ステップＳ１５で、第１のＤＭＡユニット６がさらに起動される。
【００３６】
最後の計算の終了後に、第２のＤＭＡユニット７の特性に依存して、ステップＳ１６で主演算ユニット２に計算の終了が報知される。このことは、第２のＤＭＡユニット７による割り込みの生成によって行われてもよく、当該割り込みは主演算ユニット２に直接転送され、又は、第１のＤＭＡユニット６に転送され、第１のＤＭＡユニット６が当該割り込みを主演算ユニット２へと転送する。
【００３７】
全てのプログラミングモデルＦ０１、Ｆ０２、…、Ｆ０Ｍは、設定データを用いて、第２のＤＭＡユニット７への割り込み生成を定め、第２のＤＭＡユニット７は、第１のＤＭＡユニット６のための割り込みを、モデル計算ユニット３内での関数モデルの計算の終了後に、プログラミングモデルに従って生成する。
【図１】
2015015024.tif 000003
【図２】
2015015024.tif 000004
【図３】
2015015024.tif 000005
【図４】
2015015024.tif 000006
【図５】
2015015024.tif 000007