(57)【要約】【課題】モデル計算ユニット、およびモデル計算ユニットを備えた制御装置を提供する。【解決手段】本発明は、データに基づく関数モデルのためのアルゴリズムを純粋にハードウェア上で計算をするよう構成された演算コア（３１）であって、データに基づく関数モデルは、計算データ、特にハイパーパラメータおよびサンプルポイントデータの提供を受けて計算される、上記演算コア（３１）と、演算コア（３５）に、計算データの少なくとも一部、特に提供されたサンプルポイントデータを所定の数値フォーマットで提供するよう構成された純粋にハードウェアによる変換ユニット（３５）と、を備えた、制御装置（１）内でデータに基づく関数モデル、特にガウス過程モデルを計算するモデル計算ユニット（３）に関する。【選択図】図２
2015015026.tif 000002
【特許請求の範囲】
【請求項１】
データに基づく関数モデルのためのアルゴリズムを純粋にハードウェア上で計算するよう構成された演算コア（３１）であって、前記データに基づく関数モデルは、計算データ、特にハイパーパラメータおよびサンプルポイントデータの提供を受けて計算される、前記演算コア（３１）と、
前記演算コア（３１）に、前記計算データの少なくとも一部、特に提供された前記サンプルポイントデータを所定の数値フォーマットで提供するよう構成された、純粋にハードウェアによる変換ユニット（３５）と、
を備える、制御装置（１）内でデータに基づく関数モデル、特にガウス過程モデルを計算するモデル計算ユニット（３）。
【請求項２】
前記変換ユニット（３５）は、選択信号にしたがって、前記所定の数値フォーマットとは異なる数値フォーマットの提供された計算データの少なくとも一部の変換を、実行するよう構成される、請求項１に記載のモデル計算ユニット（３）。
【請求項３】
前記変換ユニット（３５）は、選択信号にしたがって、前記提供された計算データ、または、少なくとも１つの変換ブロック（３７、３８）のうちの１つによって前記所定の数値フォーマットへと変換された前記計算データを前記演算コア（３１）へと転送するために、
第１の数値フォーマットのデータを前記所定の数値フォーマットへと変換するための前記少なくとも１つの変換ブロック（３７、３８）と、
マルチプレクサ（３６）と、
を有する、請求項１または２に記載のモデル計算ユニット（３）。
【請求項４】
前記所定の数値フォーマットは、３２ビット浮動小数点フォーマットに相当する、請求項３に記載のモデル計算ユニット（３）。
【請求項５】
第１の変換ブロック（３７）は、前記所定の数値フォーマットよりもビット数が小さい浮動小数点フォーマットのデータを、前記所定の数値フォーマットへと変換するよう構成される、請求項３または４に記載のモデル計算ユニット（３）。
【請求項６】
第２の変換ブロック（３８）は、固定小数点フォーマットのデータを、前記所定の数値フォーマットへと変換するよう構成される、請求項３〜５のいずれか１項に記載のモデル計算ユニット（３）。
【請求項７】
前記第２の変換ブロック（３８）は、前記所定の数値フォーマットへの前記固定小数点フォーマットのデータの変換の際に、所定の指数値を考慮するよう構成される、請求項６に記載のモデル計算ユニット（３）。
【請求項８】
ソフトウェアにより制御されて関数を実行する主演算ユニット（２）と、
ある数値フォーマットの計算データを格納するメモリユニット（４）と、
請求項１〜７のいずれか１項に記載のモデル計算ユニット（３）と、
を備える、制御装置（１）。
【請求項９】
前記主演算ユニット（２）は、前記メモリユニット（４）に格納された計算データの前記数値フォーマットにしたがって、選択信号を前記モデル計算ユニット（３）に提供し、
前記変換ユニット（３５）は、前記選択信号にしたがって、前記所定の数値フォーマットへの前記計算データの変換を実行する、請求項８に記載の制御装置（１）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置のためのモデル計算ユニット、特に、特にエンジンシステムを制御するための、データに基づく関数モデルを計算することが可能なハードウェアユニットとしてのハードワイヤードされたモデル計算ユニットに関する。本発明はさらに、このようなモデル計算ユニット内でのデータに基づく関数モデルの設定データの提供および処理に関する。
【背景技術】
【０００２】
従来技術では、主演算ユニットと、データに基づく関数モデルを計算するための別体のモデル計算ユニットとを備えた制御装置が公知である。例えば、独国特許出願公開第１０２０１００２８２６６号明細書は、モデル計算ユニットとしての追加的な論理回路を備えた制御装置を示している。この追加的な論理回路は、ハードウェアによる指数関数および合計関数の計算のために構成される。これにより、ガウス過程モデル（Ｇａｕｓｓ−Ｐｒｏｚｅｓｓｍｏｄｅｌｌ）の計算のために特に必要なベイズ回帰（Ｂａｙｅｓ−Ｒｅｇｒｅｓｓｉｏｎ）方法を、ハードウェアユニット内でサポートすることが可能である。
【０００３】
モデル計算ユニットは、パラメータ／ハイパーパラメータ（Ｈｙｐｅｒｐａｒａｍｅｔｅｒ）およびサンプルポイントまたは訓練データに基づいて、データに基づく関数モデルを計算するための数学的処理を実行するよう設計されている。特に、モデル計算ユニットは、ハードウェア上で指数関数を効率良く計算するよう構成され、したがって、主演算ユニット内で適切なソフトウェアにより可能であるよりも速い計算速度で、ガウス過程モデルを計算することが可能となる。
【０００４】
通常では、データに基づく関数モデルの計算のためのパラメータおよびサンプルポイントを含む設定データは、モデル計算ユニット内での計算のために提供され、当該設定データに基づく計算は、モデル計算ユニットのハードウェアによって行われる。
【０００５】
サンプルポイントデータは一般に、浮動小数点データまたは固定小数点データの形態により予め設定される。しかしながら、ハードウェアでの実装の際には、浮動小数点数演算に基づくアルゴリズムは、固定小数点演算に基づくアルゴリズムとは別に実現される必要がある。
【０００６】
米国特許第４６７５８０９号明細書は、変換ユニットの使用によるシステム内での様々な種類の浮動小数点データの利用について記載している。
【０００７】
米国特許第５１６１１１７号明細書は、様々な基底部を有する様々な浮動小数点値を利用する方法について記載している。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本開示では、新規かつ改良された、モデル計算ユニット、およびモデル計算ユニットを備えた制御装置を提案する。
【課題を解決するための手段】
【０００９】
本発明に基づいて、請求項１に記載のハードウェア‐モデル計算ユニットと、同等の独立請求項に記載のモデル計算ユニットを備えた制御装置とが構想される。
【００１０】
本発明のさらなる別の有利な構成は、従属請求項に示される。
【００１１】
第１の観点によれば、
−データに基づく関数モデルのためのアルゴリズムを純粋にハードウェア上で計算をするよう構成された演算コアであって、データに基づく関数モデルは、計算データ、特にハイパーパラメータおよびサンプルポイントデータの提供を受けて計算される、上記演算コアと、
−演算コアに、提供される計算データの少なくとも一部、特に提供された前記サンプルポイントデータを所定の数値フォーマットで提供するよう構成された純粋にハードウェアによる変換ユニットと、
を備える、制御装置内でデータに基づく関数モデル、特にガウス過程モデルを計算するモデル計算ユニットが構想される。
【００１２】
冒頭に記載した制御装置は、ソフトウェアにより制御される主演算ユニットの他に、ハードウェアに実装されたモデル計算ユニットを有する。このモデル計算ユニットは、指数関数計算ユニットの他に、少なくとも１つのループで和を計算するためのハードウェアロジック部も有する。この計算は、所定の計算データに依拠し、ガウス過程モデルについては特に、モデル計算ユニットがアクセス可能なメモリ領域に格納されたパラメータおよびサンプルポイントデータに依拠している。
【００１３】
モデル計算ユニットの設計時には、ハードウェアモジュールは、通常、最大で生じるビット分解の値を用いた計算が計算可能であるように設計される。これは、従来の制御装置では、例えば、浮動小数点フォーマットでの３２ビット分解に相当する。
【００１４】
計算データは、一般に、浮動小数点データまたは固定小数点データの形態で予め設定される。しかしながら、ハードウェアでの実装の際には、浮動小数点演算に基づくアルゴリズムは、固定小数点演算に基づくアルゴリズムとは別に実現される必要がある。しかしながら、モデル計算ユニットのハードウェアを組み込む構造形態のために必要な面積を制限するために、１つの数値フォーマットでの計算データの処理が構想される。計算データが完全にまたは部分的に他の数値フォーマットで存在する場合には、所望の数値フォーマット、すなわち、固定小数点フォーマットまたは浮動小数点フォーマットにするために、該当する計算データの事前処理を設ける必要がある。
【００１５】
データに基づく関数モデルの計算のためには、例えば８ビットまたは１６ビットの精度の計算データを固定小数点値または浮動小数点値として提供することで十分であるが、主演算ユニット内では、浮動小数点演算は通常、３２ビット幅の浮動小数点値を用いて行われる。
【００１６】
したがって、計算データを提供するために必要なメモリを最小限にし、モデル計算ユニットが、精度が高い計算データで計算できるようにするために、入力段として変換ユニットを有するモデル計算ユニットが構想されうる。変換ユニットによって、計算のために、他の数値フォーマットの計算データ、例えば、１６ビット浮動小数点フォーマットによる値または１６ビット固定小数点フォーマットによる値を、モデル計算ユニットに直接的に提供し、当該モデル計算ユニット内で利用することが可能であり、その際に、当該モデル計算ユニット内に別のハードウェアは設けられない。
【００１７】
さらに、変換ユニットによって、計算のために必要なデータの変換が、性能が通常制限される制御装置内の主演算ユニット内で実行される必要がないことが、可能となる。さらに、通常では固定少数点値として提供されるセンサデータも、提供される共通の指数パラメータを用いて変換ユニット内でオンザフライ（ｏｎ−ｔｈｅ−ｆｌｙ）に、すなわち主演算ユニットとは無関係に、適切なやり方で変換されうる。
【００１８】
さらに変換ユニットは、選択信号にしたがって、所定の数値フォーマットとは異なる数値フォーマットの提供された計算データの変換を実行するよう構成されてもよい。
【００１９】
一実施形態によれば、変換ユニットは、選択信号にしたがって、提供された計算データ、または、少なくとも１つの変換ブロックのうちの１つによって所定の数値フォーマットへと変換された計算データを演算コアへと転送するために、第１の数値フォーマットのデータを所定の数値フォーマットへと変換するための少なくとも１つの変換ブロックと、マルチプレクサとを有する。
【００２０】
所定の数値フォーマットは、３２ビット浮動小数点フォーマットに相当することが構想されてもよい。
【００２１】
特に、第１の変換ブロックは、所定の数値フォーマットよりもビット数が小さい浮動小数点フォーマットのデータを、所定の数値フォーマットへと変換するよう構成されてもよい。
【００２２】
第２の変換ブロックは、固定小数点フォーマットのデータを、所定の数値フォーマットへと変換するよう構成されてもよい。
【００２３】
さらに、第２の変換ブロックは、所定の数値フォーマットへの固定小数点フォーマットのデータの変換の際に、所定の指数値を考慮するよう構成されてもよい。
【００２４】
さらなる別の観点によれば、
‐ソフトウェアにより制御されて関数を実行する主演算ユニットと、
−少なくとも１つの数値フォーマットで計算データを格納するメモリユニットと、
−上記のモデル計算ユニットと、
を備えた、特に組み込まれた構造形態による、例えばワンチップの形態による制御装置が設けられる。
【００２５】
さらに、主演算ユニットは、メモリユニットに格納された計算データの数値フォーマットにしたがって、選択信号をモデル計算ユニットに提供してもよく、したがって、変換ユニットは、選択信号にしたがって、所定の数値フォーマットへの計算データの変換を実行する。
【図面の簡単な説明】
【００２６】
以下では、本発明の好適な実施形態が、添付の図面を用いてより詳細に解説される。
【図１】主演算ユニットとモデル計算ユニットとを備えた制御装置の概略図を示す。
【図２】変換ユニットを備えた図１のモデル計算ユニットの概略図を示す。
【図３】図２の変換ユニットの概略図を示す。
【図４】浮動小数点フォーマットによる値への、共通の指数を有する１６ビット固定小数点値の変換の図である。
【発明を実施するための形態】
【００２７】
図１は、組み込まれた制御装置１のハードウェア構造の概略図を示し、制御装置１には、例えばマイクロコントローラの形態による主演算ユニット２と、特にデータに基づく関数モデルをハードウェア上で計算するためのモデル計算ユニット３とが組み込まれる形で（例えば、モノリシック的に、ｍｏｎｏｌｉｔｈｉｓｃｈ）設けられている。主演算ユニット２とモデル計算ユニット３とは、システムバス６を介して互いに通信接続されている。モデル計算ユニット３は、ハードウェアとして構成され（ハードワイヤードされ）、したがって、ソフトウェアコード（Ｓｏｆｔｗａｒｅｃｏｄｅ）を実行することができない。この理由から、モデル計算ユニット３内には、プロセッサ等が設けられていない。これにより、リソースが最適化されたこのようなモデル計算ユニット３の実現が可能となる。
【００２８】
さらに、制御装置１は、内部のメモリユニット４と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ、直接メモリアクセス）ユニット５とを有し、内部メモリユニット４とＤＭＡユニット５とは、内部の通信接続６を介して、例えば内部のデータバスを介して接続されている。
【００２９】
図２には、モデル計算ユニット３が詳細に示されている。データに基づく関数モデルを計算するために、演算コア３１が、指数ユニット３２と、状況によっては共通のＦＭＡ（Ｆｕｓｅｄ Ｍｕｌｔｉｐｌｙ  Ａｄｄ、融合乗加算）ユニット内で組み合わされて設けられる加算および乗算ユニット３３と、上記のユニット３２、３３を利用した定められた演算処理を提供する論理ユニット３４とを有して設けられることが分かる。
【００３０】
一般に、２つのＩＥＥＥ７５４浮動小数点規格がデータフォーマットとして公知である。浮動小数点規格は、単精度の場合には３２ビット分解、すなわち、１個の符号ビット、８個の指数ビット、２３個の仮数ビットに相当し、半精度の場合には１６ビット分解、すなわち、１個の符号ビット、５個の指数ビット、１０個の仮数ビットに相当する。さらに、１６ビット固定小数点フォーマットの場合には、データ値を表すために１６ビット値が利用され、その際指数は設けられない。１６ビット固定小数点フォーマットに加えて、一連のデータ値のための共通の指数を設けることも可能であり、したがって、データには共通のサイズが割り当てられる。
【００３１】
モデル計算ユニット３が、様々なデータフォーマットのデータ値を利用できるようにするために、図３により詳細に示されるように、変換ユニット３５がモデル計算ユニット３内に設けられる。変換ユニット３５は、計算データ、すなわち例えばサンプルポイントデータを、例えば３２ビット浮動小数点フォーマットのような所定の数値フォーマットに変換し、モデル計算ユニット３内の計算アルゴリズムを反映する（ａｂｂｉｌｄｅｎ）ハードウェアに、処理データＶとして提供する。さらに、計算データのデータ要素は様々な数値フォーマットで存在してもよく、したがって、計算データは、データ要素の数値フォーマットに対応して変換されうる。
【００３２】
変換ユニット３５は、モデル計算ユニット３内でのデータに基づく関数モデルの計算のための変換された処理データＶを提供するマルチプレクサ３６を備える。この場合、サンプルポイントデータは、３２ビット浮動小数点フォーマット（単精度の浮動小数点フォーマット）の形態によるデータＤ３２Ｆとして、１６ビット浮動小数点フォーマット（半精度の浮動小数点フォーマット）の形態によるデータＤ１６Ｆとして、または、所定の共通の指数ＣＥと組み合わせた１６ビット固定小数点フォーマットの形態によるデータＤ１６としてモデル計算ユニット３に提供されうる。
【００３３】
１６ビット浮動小数点フォーマットのデータＤ１６Ｆと、１６ビット固定小数点フォーマットのデータＤ１６とは、対応する第１の変換ブロック３７および第２の変換ブロック３８内で、それ自体は公知のやり方で３２ビット浮動小数点フォーマットに変換され、変換する必要のない３２ビット浮動小数点フォーマットのデータＤ３２Ｆと共にマルチプレクサ３６に供給される。マルチプレクサ３６内では、例えば主演算ユニット２により提供可能な選択信号Ｓを用いて、対応して、データフォーマットＤ１６Ｆ、Ｄ３２Ｆ、Ｄ１６のうちの１つが選択される。
【００３４】
第１の変換ブロック３７内での３２ビット浮動小数点フォーマットへの１６ビット浮動小数点フォーマットの変換は、１回のビット演算が関わっている。符号付き±１５（エクセス（Ｅｘｃｅｓｓ）１５）として解釈される指数のための５ビットと、符号付き±１２７（エクセス（Ｅｘｃｅｓｓ）１２７）として解釈される指数のために８ビットを利用する３２ビット浮動小数点フォーマットとによって、１１２（すなわち１２７−１５）を加算することによる指数変換がもたらされる。この指数変換は典型的に、組み込まれる構造形態で面積に有利に、２つの入力口を備えるマルチプレクサとして実現可能であり、このマルチプレクサは、最上位の指数ビットにより制御され、その際に、ゼロ値、＋∞または∞の表示、および、ＮａＮ（Ｎｏｔ−ａ−Ｎｕｍｂｅｒ、非数）は、特別なケースとして処理され、したがって、変換結果として同一の値が生成される。１０ビットから２３ビットへの仮数値の拡大には、最下位ビットとしての０の簡単な挿入が利用され、このことは例えば、１３ポジション分の左シフト演算によって達成され、または１０個の仮数ビットおよび１３個の０ビットの連結によって実現される。
【００３５】
１６ビット固定小数点フォーマットから３２ビット浮動小数点フォーマットへの変換は、例えば、図４に示される第２の変換ブロック３８を用いて実現することが可能である。同時に、所定の共通の指数ＣＥが考慮されうる。図４の第２の変換ブロック３８によって、符号が付いた１６ビット固定小数点フォーマットから、３２ビット浮動小数点値を生成することが可能となる。
【００３６】
その際に、符号抽出ブロック４１内では、入力値の符号ビットが抽出され、出力値のための符号ビットとして利用される。さらに、値抽出ブロック４２内では、入力値から値が抽出され、続いて正規化ブロック４３内ではビットシフト演算によって、最上位のビットが「１」に当たるまで左にシフトされ、その際に、入力値のゼロ値は特別なケースとして処理され、したがって、変換結果も同様に０となる。正規化ブロック４３は、このために必要なビットシフトの数についての表示を指数加算ユニット４４に伝達し、指数加算ユニット４４は、このビットシフトの数を共通の指数の値へと減算し、３２ビット浮動小数点値の指数値として、変換結果として提供する。この変換結果は、正規化ブロック４３内で獲得された仮数値と、符号抽出ブロック４１内で抽出された符号ビットと、指数加算ユニット４４内で獲得された指数値とを組み合わせて生成される。変換結果は、モデル計算ユニット３に、変換されたサンプルポイントデータを含む処理データＶとして提供される。
【図１】
2015015026.tif 000003
【図２】
2015015026.tif 000004
【図３】
2015015026.tif 000005
【図４】
2015015026.tif 000006