(57)【要約】      （修正有）【課題】データに基づく関数モデルを計算する、モデル計算ユニット及び制御装置を提供する。【解決手段】演算コア３１を備えた制御装置内で、データに基づく関数モデルを計算するモデル計算ユニットであって、演算コア３１は、ハードウェア上で乗算を実行する乗算ユニット４３と、ハードウェア上で加算を行う加算ユニット４２と、ハードウェア上で指数関数を計算する指数関数ユニット４１と、ハイパーパラメータ、及び、計算されるデータに基づく関数モデルのサンプル点データを格納するメモリ、特に設定レジスタ４５と、データに基づく関数モデルを定めるために、乗算ユニット内、加算ユニット内、指数関数ユニット内、メモリ内、特に設定レジスタ内での計算過程をハードウェア上で制御する論理回路４６と、を含む。【選択図】図３
2014206975.tif 000002
【特許請求の範囲】
【請求項１】
演算コア（３１）を備えた制御装置（１）内で、データに基づく関数モデルを計算するモデル計算ユニット（３）であって、
前記演算コア（３１）は、
−ハードウェア上で乗算を実行する乗算ユニット（４３）と、
−ハードウェア上で加算を実行する加算ユニット（４２）と、
−ハードウェア上で指数関数を計算する指数関数ユニット（４１）と、
−ハイパーパラメータ、及び、計算される前記データに基づく関数モデルのサンプル点データを格納するメモリと、
−前記データに基づく関数モデルを定めるために、前記乗算ユニット（４３）内、前記加算ユニット（４２）内、前記指数関数ユニット（４１）内、前記メモリ内での計算過程をハードウェア上で制御する論理回路（４６）と、
を含む、モデル計算ユニット（３）。
【請求項２】
前記乗算ユニット及び前記加算ユニットは、ハードウェア上で組み合わされたＭＡＣユニット（４４）内に設けられる、請求項１に記載のモデル計算ユニット（３）。
【請求項３】
複数の演算コア（３１）が設けられ、前記複数の演算コア（３１）のうちの複数が、共有の指数間数ユニット（４１）及び／又は共有のＭＡＣユニット（４４）を有する、請求項１又は２に記載のモデル計算ユニット（３）。
【請求項４】
前記関数モデルは、複数の入力変数に対してモデル値を割り当て、前記計算過程は、前記入力変数の入力正規化の計算のために乗算及び加算を実行し、及び、出力変数の出力正規化のために乗算及び加算を実行するよう構成される、請求項１〜３のいずれか１項に記載のモデル計算ユニット（３）。
【請求項５】
前記ＭＡＣユニット（４４）を用いて、前記乗算及び加算を実行するよう構成される、請求項４に記載のモデル計算ユニット。
【請求項６】
前記関数モデルは、項（（ｘ）ｉ‐ｕ）２の計算を構想し、
但し、ｘｉは前記データに基づく関数モデルのサンプル点、ｕは前記入力変数に相当し、
前記論理回路は、前記ＭＡＣユニット（４４）を用いて、又は、前記乗算ユニット（４３）及び前記加算ユニット（４２）を用いて、前記項の前記計算を実行するよう構成される、請求項４又は５に記載のモデル計算ユニット（３）。
【請求項７】
前記メモリが設定レジスタ（４５）である、請求項１〜６のいずれか１項に記載のモデル計算ユニット（３）。
【請求項８】
−演算ユニット（２）と、
−請求項１〜７のいずれか１項に記載のモデル計算ユニット（３）と、
を備えた、エンジンシステムのための制御装置（１）。
【請求項９】
前記エンジンシステムが内燃機関を有する、請求項８に記載のエンジンシステムのための制御装置（１）。
【請求項１０】
請求項１〜７のいずれか１項に記載のモデル計算ユニット（３）内で、データに基づく関数モデルを計算する方法であって、前記関数モデルは、連続的に実行される演算ステップによって完全に計算され、前記演算ステップは、少なくとも１つの乗算と加算との組み合わせ又は乗算計算と加算計算との組み合わせのみ、及び、指数関数の計算を含む、方法。
【請求項１１】
前記関数モデルがガウス過程モデルである、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特にエンジンシステムの制御のための関数をハードウェア上で実行するための、データに基づく関数モデルが実装された制御装置のモデル計算ユニットに関する。本発明はさらに、このようなモデル計算ユニット内でデータに基づく関数モデルを計算する方法に関する。
【背景技術】
【０００２】
従来技術では、主演算ユニットと、データに基づく関数モデルを計算するための別体のモデル計算ユニットと、を備えた制御装置が公知である。例えば、特許文献１には、ハードウェア上での指数関数の計算のために構成されたモデル計算ユニットとして追加的な論理回路を備えた制御装置が示されている。このことは、ガウス過程モデルの計算のために特に必要なベイズ回帰法を、特にハードウェアユニット内でサポートすることを可能にする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】独国特許出願公開第１０２０１００２８２６６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
モデル計算ユニットは、パラメータ及びサンプル点又は訓練データに基づいて、データに基づく関数モデルを計算するための数学的プロセスを実行するよう全体で設計されている。特に、モデル計算ユニットは、ハードウェア上で効率良く指数関数を計算するよう構成されているため、主演算ユニット内で可能であるよりも速い計算速度で、ガウス過程モデルを計算することが可能となる。通常では、データに基づく関数モデルを計算するための設定データ、パラメータ、及びサンプル点が含まれており、当該設定データ、パラメータ、及びサンプル点は、モデル計算ユニット内での計算の前に当該モデル計算ユニットへと読み込まれ、引き続いて、設定データに基づく計算が、モデル計算ユニットのハードウェアによって行われる。しかしながら、このようなモデル計算ユニットのハードウェアの従来の実装では、設定データに不都合がある場合に、計算の際に数値的な問題が生じ、従って、オフラインで（ｏｆｆｌｉｎｅ）決定されるデータに基づく関数モデルの全てが、モデル計算ユニット上で安定的に計算されるというわけではない。
【課題を解決するための手段】
【０００５】
本発明に基づいて、請求項１に係る演算コアを備えた制御装置内でデータに基づく関数モデルを計算するモデル演算ユニットと、同等の独立請求項に係るデータに基づく関数モデルを計算するための制御装置及び方法と、が構想される。
【０００６】
本発明の更なる別の有利な構成は、従属請求項に示される。
【０００７】
第１の観点によれば、制御装置内でデータに基づく関数モデルを計算するハードウェアユニットとしてのモデル計算ユニットにおいて、モデル計算ユニットは演算コアを有し、演算コアは、
−ハードウェア上で乗算を実行する乗算ユニットと、
−ハードウェア上で加算を実行する加算ユニットと、
−ハードウェア上で指数関数を計算する指数関数ユニットと、
−ハイパーパラメータ、及び、計算されるデータに基づく関数モデルのサンプル点データを格納する設定レジスタ又はメモリと、
−データに基づく関数モデルを定めるために、乗算ユニット内、加算ユニット内、指数関数ユニット内、設定レジスタ又はメモリ内での計算過程をハードウェア上で制御する論理回路と、
を含む。
【０００８】
モデル計算ユニットは、データに基づく関数モデルの特定の計算をハードウェア上で実行するよう構成されたハードウェアであって、特に演算コアとの一体化のために構成された上記ハードウェアを含む論理ユニットである。この論理ユニットを用いて、事前に訓練されハードウェア上に格納されたベイズ回帰モデルの計算方法が、オンラインで（ｏｎｌｉｎｅ）実行される。データに基づく関数モデルとしてのガウス過程モデルの利用により、特に、検査点の入力正規化の変換であって、その際にモデル値が定められる上記変換によって、及び指数項の変換によって、加算及び乗算の結果、及び指数関数の結果として、ガウス過程モデルのモデル値を定めることが可能となる。
【０００９】
特に、モデル計算ユニットは、上記のユニットのみで構成されうる。
【００１０】
ハードウェア内では、ハードウェア機能ブロック、即ち、整数計算のための所謂ＭＡＣ（ＭＡＣ＝Ｍｕｌｔｉｐｌｉｅｒ−Ａｃｃｕｍｕｌａｔｏｒ、乗算累算器、ドイツ語ではＭＡＫ＝Ｍｕｌｔｉｐｌｉｋａｔｉｏｎｓａｋｋｕｍｕｌａｔｏｒ）ブロック、又は、浮動小数点計算のためのＦＭＡ（ＦＭＡ：ｆｕｓｅｄ  ｍｕｌｔｉｐｌｙ−ａｄｄ、融合乗加算）ブロック（ＦＭＡＣ（ｆｕｓｅｄ  ｍｕｌｔｉｐｌｙ  ａｃｃｕｍｕｌａｔｅ、融合乗算累算）ブロックとも呼ばれる）を実現することが可能である。このハードウェア機能ブロックは、本明細書では、整数及び浮動小数点の計算についてＭＡＣユニットと称される。ＭＡＣユニットは、ハードウェア上での直接的な実現により、演算ａ＋ｂ×ｃを特に効率良く、従って迅速に実行することが可能である。この演算は状況によっては、数クロック周期内、特別な場合には１クロック周期内に可能である。
【００１１】
ハードウェアで実現されたＭＡＣユニットと、ハードウェアで実現された指数関数のみを計算する指数関数ユニットと、を備えたこのようなモデル計算ユニットを別体で設けることによって、データに基づく関数モデル、特にガウス過程モデルのモデル値を定めるための、制御装置内で（ソフトウェアの実行のために適した）演算コアと一体化されたモデル計算ユニットとして利用可能な、特に効率が良い論理回路を提供することが可能である。
【００１２】
さらに、乗算ユニットと加算ユニットとは、別々に又は組み合わされてＭＡＣユニット内に実現されうる。
【００１３】
一実施形態によれば、複数の演算コアを設けることが可能であり、複数の演算コアのうちの複数が、共有の指数間数ユニット及び／又は共有のＭＡＣユニットを有する。代替的に、各演算コアが、固有の指数関数ユニット及び固有のＭＡＣユニットを有することを構想してもよい。
【００１４】
関数モデルは、複数の入力変数に対してモデル値を割り当て、計算過程は、入力変数の入力正規化の計算のために、ＭＡＣユニットを用いて乗算及び加算を実行するよう構成され、及び、出力変数の出力正規化のために、ＭＡＣユニットを用いて乗算及び加算を実行するよう構成されることが構想されうる。
【００１５】
一実施形態によれば、関数モデルは、項（（ｘ）ｉ‐ｕ）２の計算を構想することが可能であり、但し、ｘｉはデータに基づく関数モデルのサンプル点、ｕは入力変数に相当し、論理回路は、乗算ユニット及び加算ユニット、又は、ＭＡＣユニットによって上記項の計算を実行するために、加算ユニット及び乗算ユニット、又は、ＭＡＣ回路を制御する。
【００１６】
更なる別の観点によれば、演算ユニットと上記モデル計算ユニットとを備えた、特に内燃機関を有するエンジンシステムのための制御装置が構想される。
【００１７】
更なる別の観点によれば、上記モデル計算ユニット内で、データに基づく関数モデル、特にガウス過程モデルを計算する方法であって、関数モデルは、連続的に実行される演算ステップによって完全に計算され、演算ステップは、乗算と加算との組み合わせのみ、及び、指数関数の計算を含む、上記方法が構想される。
【図面の簡単な説明】
【００１８】
以下では、本発明の好適な実施形態が、添付の図面を用いてより詳細に解説される。
【図１】物理的なシステムを制御する制御装置のハードウェア構造の概略図を示す。
【図２】Ｄ次元の、入力変数ベクトルの入力値のためのガウス過程モデルのモデル値を定めるためのブロック図を示す。
【図３】制御装置のモデル計算ユニット内の演算コアの詳細図を示す。
【図４】ＭＡＣユニット及び指数関数ユニットを共有する２つの演算コアのハードウェア構造の概略図を示す。
【図５】別々のＭＡＣユニットと、共有の指数関数ユニットと、を備える２つの演算コアのための更なる別のハードウェア構造の概略図を示す。
【発明を実施するための形態】
【００１９】
図１は、組み込まれた制御装置１のハードウェア構造の概略図を示しており、この制御装置１内には、演算ユニット２と、データに基づく関数モデルをハードウェア上で計算するモデル計算ユニット３と、が一体になった形で設けられている。演算ユニット２とモデル計算ユニット３とは、システムバス４を介して互いに通信接続されている。この制御装置１は、内燃機関を有するエンジンシステムに適している。
【００２０】
基本的に、モデル計算ユニット３は、（ハードワイヤードされた）ハードウェアのみを有し、好適に、ソフトウェア・コード（Ｓｏｆｔｗａｒｅｃｏｄｅ）を実行するよう構成されていない。この理由から、モデル計算ユニット３内にプロセッサを設けることも必要ではない。これにより、リソースが最適化されたこのようなモデル計算ユニット３の実現が可能となる。
【００２１】
モデル計算ユニット３は、１つ以上の計算コア３１と、内部メモリ３２と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ、直接メモリアクセス）ユニット３３と、を備えうる。演算コア３１と、内部メモリ３２と、ＤＭＡユニット３３と、は、内部の通信接続線３４を介して互いに接続されている。
【００２２】
非パラメータ的な、データに基づく関数モデルの適用は、ベイズ回帰方法に基づいている。ベイズ回帰の基礎は、例えば、Ｃ．Ｅ．Ｒａｓｍｕｓｓｅｎらによる「Ｇａｕｓｓｉａｎ  Ｐｒｏｃｅｓｓｅｓ  ｆｏｒ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ」（ＭＩＴ  Ｐｒｅｓｓ、２００６年）に記載されている。ベイズ回帰は、データに基づく方法であって、モデルに基づいている。モデルの作成のためは、訓練データの測定点、及び、これに対応する出力値の出力データが必要である。訓練データに完全又は部分的に対応し又は訓練データから生成されるサンプル点データが利用されることで、このモデルは作成される。さらに、モデル関数の空間をパラメータ化し、後のモデル予測に対する訓練データの個々の測定点の影響を効果的に重みづけする、抽象的なハイパーパラメータが決定される。
【００２３】
抽象的なハイパーパラメータは、最適化方法によって決定される。このような最適化方法の１つの可能性は、周辺尤度ｐ（Ｙ｜Ｈ，Ｘ）の最適化にある。周辺尤度ｐ（Ｙ｜Ｈ，Ｘ）は、モデルパラメータＨ及び訓練データのｘ値が与えられたときのベクトルＹとして表現される、測定された訓練データのｙ値の妥当性を表している。モデル訓練では、データを特別に良好に説明することができる適当なハイパーパラメータが探索されることによって、ｐ（Ｙ｜Ｈ，Ｘ）が最大化される。計算を簡素化するために、ｐ（Ｙ｜Ｈ，Ｘ）の対数が最大化される。対数は妥当性関数の連続性を変化させないからである。
【００２４】
その際に、最適化方法は、自動的に、モデルの複雑性とモデルのマッピング精度（Ａｂｂｉｌｄｕｎｇｓｇｅｎａｕｉｇｋｅｉｔ）との間のトレードオフ（Ｔｒａｄｅ−ｏｆｆ）をもたらす。連続的なモデル複雑性により、訓練データの任意の高さのマッピング精度を実現することができるものの、それと同時に、このことは訓練データに合わせたモデルの過度の適合化につながり、そのために比較的低い一般化特性につながる。
【００２５】
ガウス過程モデルの計算は、図２に概略的に示されるステップに対応して行われる。検査点ｔのための入力値（入力変数ベクトル）
【００２６】
【数１】
2014206975.tif 000003
【００２７】
が最初に、以下の数式に対応して正規化される。
【００２８】
【数２】
2014206975.tif 000004
【００２９】
但し、ｍｘはサンプル点データの入力値の平均値に関する平均値関数、ｓxはサンプル点データの入力値の分散に相当する。
【００３０】
非パラメータ的な関数モデルの作成結果として、以下のような数式が獲得される。
【００３１】
【数３】
2014206975.tif 000005
【００３２】
このようにして定められたモデル値ｖは、出力正規化によって、以下のような数式に対応して正規化される。
【００３３】
【数４】
2014206975.tif 000006
【００３４】
但し、ｖは正規化された検査点ｕでの正規化されたモデル値（初期値）（Ｄ次元の入力変数ベクトル）、
【００３５】
【数５】
2014206975.tif 000007
【００３６】
は、（正規化されていない）検査点
【００３７】
【数６】
2014206975.tif 000008
【００３８】
での（正規化されていない）モデル値（初期値）（次元Ｄの入力変数ベクトル）、ｘｉはサンプル点データのサンプル点、Ｎはサンプル点データのサンプル点の数、Ｄは入力データ空間／訓練データ空間／サンプル点データ空間の次元、ｌｄ及びσｆはモデル訓練からのハイパーパラメータに相当する。ベクトルＱｙは、ハイパーパラメータ及び訓練データから計算された値である。さらに、ｍｙはサンプル点データの出力値の平均値、ｓｙはサンプル点データの出力値の分散に相当する。
【００３９】
ガウス過程モデルの計算は典型的に正規化された空間で行われるため、入力正規化及び出力正規化が行われる。
【００４０】
計算の開始に際して、演算ユニット２は、ＤＭＡユニット３３に対して、計算すべき関数モデルに該当する設定データをメモリ５から内部メモリ３２へとロードし、演算コア３１内で、設定データを用いて実行する計算を開始するよう命令する。設定データは、ガウス過程モデルのハイパーパラメータ、及び、サンプル点データを含む。
【００４１】
図２から分かる処理チェーンは、数値的な計算のためには不都合であり、この場合は状況によっては、モデル計算ユニット３内で安定的に計算されない可能性がある。従って、計算が簡単なやり方で迅速に及び／又は数値的に安定して実行されるように、演算コア３１を構成することが構想される。このために、入力正規化は、以下のような数式により置換される。
【００４２】
【数７】
2014206975.tif 000009
但し、
【００４３】
【数８】
2014206975.tif 000010
【００４４】
【数９】
2014206975.tif 000011
【００４５】
さらに、ベイズ回帰モデルの予測は、以下のような数式により置換される。
【００４６】
【数１０】
2014206975.tif 000012
但し、
【００４７】
【数１１】
2014206975.tif 000013
【００４８】
【数１２】
2014206975.tif 000014
【００４９】
内側の和ループは、ｌ’ｄと、サンプル点データと検査点ｕとの間の二次差分と、の積をオンラインで合算する。長さスケールｌｄは、典型的にモデルごとに異なっている。入力正規化の変換、及び、ベイズ回帰モデルの再形成（Ｕｍｆｏｒｍｕｌｉｅｒｕｎｇ）によって、演算コア３１は、モデル値を計算するためにａ＋ｂ×ｃという形態の演算を繰り返し利用することが可能である。
【００５０】
ハードウェア実装の場合には、ａ＋ｂ×ｃという形態の演算が、特に効率良いやり方で所謂ＭＡＣユニットを用いて可能である。このようなＭＡＣユニットは、少数のクロック周期内に対応する計算を実行しうるために、ハードウェアで実現される。状況によっては、上記計算は、１クロック周期内に行われうる。さらに、先に挙げた変換及び再形成によって、演算コア３１内でのモデル値の数値的に安定した計算がもたらされる。上記計算は、添付の疑似Ｃコード（Ｐｓｅｕｄｏ−Ｃ−Ｃｏｄｅ）で示すように、ハードウェアで実現される。
【００５１】
【数１３】
2014206975.tif 000015
【００５２】
指数関数は、負の入力範囲でのみ数値的に正確であり、従って適切に最適化されうるため、長さスケールｌ’ｄは、常に正の値（ｐｏｓｉｔｉｖ）であることに注意されたい。即ち、
【００５３】
【数１４】
2014206975.tif 000016
【００５４】
さらに、長さスケール
【００５５】
【数１５】
2014206975.tif 000017
【００５６】
の重み付け係数１／２も、ハードウェア内に、スペース的に有利に（ｆｌａｅｃｈｅｎｇｕｅｎｓｔｉｇ）実装され、従って、格納される長さスケールは、逆数の形態で格納されうる。
【００５７】
上記の再形成によって、図２に示した演算プロセスは、図３で詳細に示される後続のユニットによって実行されうる。これについて、演算コア３１は、指数関数ユニット４１、乗算ユニット４３、及び、加算ユニット４２、又は、乗算ユニット４３及び加算ユニット４４が公知の形態により組み合わされたＭＡＣユニット４４を含む。ハードウェアのフレキシビリティを保証しうるために、必要なパラメータ、即ち、検査点ｕ、サンプル点データｘｉ、次元の数Ｄ、訓練データの数Ｎが設定可能である。これらパラメータは、例えば、演算ユニット２により書込み可能な設定レジスタ４５及びポインタレジスタとして示される、設定レジスタ又はメモリにまとめて格納することが可能である。
【００５８】
先に疑似Ｃコードで示した計算過程は、論理回路４６によって制御される。論理回路４６は、対応する配線とフロー制御を提示する。
【００５９】
さらに、上記の再作成によって、ハードウェアで、ガウス過程モデルの完全な計算を実現することが可能となる。この計算は、基本的にはＭＡＣユニット４４及び指数関数ユニット４１を用いて実行することが可能である。ブロックの利用は、上記の疑似Ｃコードの右側に示される。
【００６０】
しかしながら、（（ｘｉ）ｄ−ｕｄ）２の計算は、専用の加算ユニット内及び専用の乗算ユニット内で実行することも可能であり、従って、上記計算は速く進行する。
【００６１】
複数のガウス過程モデル又は部分モデルを、互いに依存せずに又は平行して計算するために、図１で示したように、モデル計算ユニット３内に複数の演算コア３１を設けることが可能である。図４に示すように、各演算コア３１は、検査点ｕの入力値、サンプル点データｘｉ、及び、全ての他のパラメータがロードされる固有の設定レジスタ又は固有のメモリを有する。複数の演算コア３１の実現は、例えばパイプライン（Ｐｉｐｅｌｉｎｅ）技術によって実現されうる。
【００６２】
さらに、ハードウェアリソースを大事に使うために、モデル演算ユニット３の１つ以上の構成要素が１度だけ実装され、複数の演算コア３１により共有されるという最適化の可能性も生じる。従って例えば、演算コア３１は、共有のＭＡＣユニット４４又は共有の指数関数ユニット４１へとアクセスすることが可能である。
【００６３】
複数の演算コア３１の実現は、例えば、（時分割）多重化技術により最適化されうる。時分割多重化技術の場合、ユニット、即ち例えば２つの演算コア３１への一定のクロック割り当てが起こり、即ち、偶数のクロック又は奇数のクロックが、例えば２つの演算コアのうちの適切な１つへと割り当てられる。
【００６４】
一般には、多重化技術の場合には、演算コア３１の割り当ては必要に応じて（例えば、論理回路４６を用いて）行われる。さらに、多重化技術によって冗長性が設けられ、１の演算コアの故障の際には、当該１の演算コアの計算が他の演算コアによって実行されうる。
【００６５】
これに対して、図５の実現は、固有のＭＡＣユニット４４をそれぞれが備えた２つの演算コア３１を示しており、この演算コア３１は、共有の指数関数ユニット４１へとアクセスすることが可能である。
【符号の説明】
【００６６】
２    演算ユニット
３    モデル計算ユニット
４    システムバス
３１    演算コア
３２  内部メモリ
３３  ユニット
４１    指数関数ユニット
４２    加算ユニット
４３    乗算ユニット
４５    設定レジスタ
４６    論理回路
【図１】
2014206975.tif 000018
【図２】
2014206975.tif 000019
【図３】
2014206975.tif 000020
【図４】
2014206975.tif 000021
【図５】
2014206975.tif 000022