(57)【要約】本発明は、多層パーセプトロンモデルを計算するためのモデル計算ユニット（２２）であって、モデル計算ユニット（２２）は、ハードウェアで形成されハードワイヤードされており、‐入力ベクトル（ｕｔ）の１つ以上の入力に従って、複数のニューロン（２０）を有する多層パーセプトロンモデルのニューロン層の１つ以上の出力を計算するよう構成された演算コア（１８）と、‐ニューロン層ごとに、各設定メモリ区分（Ａ）に設定パラメータを格納するための設定メモリ領域（１２１）と、各データメモリ区分（Ｄ）に入力ベクトルの入力及び１つ以上の出力（ｙ［ｊ］）を格納するためのデータメモリ領域（１２２）と、を有するメモリ（１２）と、‐演算コア（１８）に以下のこと、即ち、各設定メモリ区分（Ａ）の設定パラメータと、設定パラメータにより定義された、入力ベクトル（ｕｔ）の入力と、に基づいてニューロン層をそれぞれ計算し、及び、得られた各出力（ｙ［ｊ］）を、対応する設定パラメータにより定義された、データメモリ領域（１２２）のデータメモリ区分（Ｄ）に格納すること、を連続的に命令するよう構成されたＤＭＡユニット（１７）と、を含み、連続的に考慮される設定メモリ区分（Ａ）の設定パラメータは、得られた出力のためのデータメモリ部分（Ｄ）であって、その次のニューロン層の計算用の入力のためのデータメモリ部分（Ｄ）に相当する上記データメモリ区分（Ｄ）を指定する、上記モデル計算ユニット（２２）に関する。【選択図】図１
2019526876.tif 000002
【特許請求の範囲】
【請求項１】
多層パーセプトロンモデルを計算するためのモデル計算ユニット（２２）であって、
前記モデル計算ユニット（２２）は、ハードウェアで形成されハードワイヤードされており、
‐入力ベクトル（ｕｔ）の１つ以上の入力に従って、複数のニューロン（２０）を有する前記多層パーセプトロンモデルのニューロン層の１つ以上の出力（ｙ［ｊ］）を計算するよう構成された演算コア（１８）と、
‐ニューロン層ごとに、各設定メモリ区分（Ａ）に設定パラメータを格納するための設定メモリ領域（１２１）と、各データメモリ区分（Ｄ）に前記入力ベクトルの前記入力及び前記１つ以上の出力（ｙ［ｊ］）を格納するためのデータメモリ領域（１２２）と、を有するメモリ（１２）と、
‐前記演算コア（１８）に以下のこと、即ち、各設定メモリ区分（Ａ）の前記設定パラメータと、前記設定パラメータにより定義された、前記入力ベクトル（ｕｔ）の前記入力と、に基づいてニューロン層をそれぞれ計算し、及び、得られた各前記出力（ｙ［ｊ］）を、対応する前記設定パラメータにより定義された、前記データメモリ領域（１２２）のデータメモリ区分（Ｄ）に格納すること、を連続的に命令するよう構成されたＤＭＡユニット（１７）と、
を含む、モデル計算ユニット（２２）。
【請求項２】
連続的に考慮される設定メモリ区分（Ａ）の前記設定パラメータは、前記得られた出力のためのデータメモリ区分（Ｄ）であって、その次のニューロン層の計算用の前記入力のための前記データメモリ部分（Ｄ）に相当する前記データメモリ区分（Ｄ）を指定する、請求項１に記載のモデル計算ユニット（２２）。
【請求項３】
前記ＤＭＡユニット（１７）は、前記ニューロン層の前記計算の終了後に、前記ニューロン層のうちの次のニューロン層のための前記設定パラメータを、前記演算コア（１８）に提供するよう構成され、前記計算は、１つ以上の設定パラメータに従って終了される、請求項１又は２に記載のモデル計算ユニット（２２）。
【請求項４】
前記演算コア（１８）は、前記ニューロン層の現在の前記計算の終了を、前記ＤＭＡユニット（１７）又は外部にシグナリングするよう構成され、前記ＤＭＡユニット（１７）は、次の前記ニューロン層の前記計算を、別の設定メモリ区分（Ａ）に格納された設定パラメータに基づいて開始する、請求項１〜３のいずれか１項に記載のモデル計算ユニット（２２）。
【請求項５】
前記演算コア（１８）は、複数のニューロン（２０）を有する多層パーセプトロンモデルのニューロン層ごとに、入力ベクトル（ｕｔ）の１つ以上の入力と、重み付け係数（νｊ、ｋ）を含む重み付けマトリクスと、ニューロン（２０）ごとに予め設定されたオフセット値と、に従って、ニューロン（２０）ごとに出力（ｙ［ｊ］）を計算するよう構成され、各ニューロン（２０）について、前記ニューロン（２０）及び前記入力によって決定される重み付け係数（νｊ、ｋ）により重み付けされた、前記入力の値の和に、前記ニューロン（２０）に予め設定された前記オフセット値が加えられ、結果が活性化関数（ａｃｔ）によって変換され、前記ニューロン（２０）のための前記出力（ｙ［ｊ］）が獲得される、請求項１〜４のいずれか１項に記載のモデル計算ユニット（２２）。
【請求項６】
前記演算コア（１８）は、集積モジュールの平面領域に形成される、請求項１〜５のいずれか１項に記載のモデル計算ユニット（２２）。
【請求項７】
マイクロプロセッサ（２１）と、請求項１〜６のいずれか１項に記載の１つ以上のモデル計算ユニット（２２）と、を含む制御装置（２）。
【請求項８】
前記制御装置（２）は、集積回路として形成される、請求項７に記載の制御装置（２）。
【請求項９】
自動車内のエンジンシステム（１）を制御するための制御装置（２）としての、請求項７又は８に記載の制御装置（２）の利用。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に多層パーセプトロンモデルを計算するための、ハードワイヤードされている別体のモデル計算ユニットでの関数モデルの計算に関する。
【背景技術】
【０００２】
例えば、内燃機関、エレクトリックパワートレイン、蓄電池等の技術システムを制御する機能は、実際のシステムの数学的な描写に相当するモデルを用いて実現されることが多い。しかしながら、物理的なモデルでは、特に関係が複雑な場合には、必要とされる計算精度が欠けており、今日の計算能力では、このようなモデルを、制御装置のために要求される実要求時間の範囲内で計算することは通常困難である。このような場合のために、データに基づくモデルであって、試験機等を利用して獲得された訓練データのみに基づいて出力と入力との間の関係を記述する上記データに基づくモデルを利用することが考えられている。
【０００３】
特に、データに基づくモデルは、複雑な関係をモデル化するために適しており、ここでは、相互関係が生じている複数の入力が適切なやり方でモデルにおいて考慮される。さらに、データに基づくモデルを利用したモデル化によって、個別入力の付加によりモデルを補完する可能性が与えられる。
【０００４】
データに基づく関数モデルは、通常は、各適用のために十分なモデル化精度を達成するために多数のサンプルポイントに基づいている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
多数のサンプルポイントにより、例えばガウス過程モデル又は多層パーセプトロンモデル等の、データに基づく関数モデルを用いてモデル値を計算するためには高い計算能力が必要となる。従って、制御装置での適用において、このようなデータに基づく関数モデルを実時間で計算しうるために、ハードウェア構成に基づくモデル計算ユニットが設けられうる。
【課題を解決するための手段】
【０００６】
本発明に基づいて、請求項１に係る多層パーセプトロンモデルのニューロン層を計算するためのモデル計算ユニット、並びに、独立請求項に係る制御装置及び制御装置の利用が構想される。
【０００７】
更なる別の構成が、従属請求項において示される。
【０００８】
第１の観点によれば、多層パーセプトロンモデルを計算するためのモデル計算ユニットであって、モデル計算ユニットは、ハードウェアで形成されハードワイヤードされており、
‐入力ベクトルの１つ以上の入力に従って、複数のニューロンを有する多層パーセプトロンモデルのニューロン層の１つ以上の出力を計算するよう構成された演算コアと、
‐ニューロン層ごとに、各設定メモリ区分に設定パラメータを格納するための設定メモリ領域と、各データメモリ区分に入力ベクトルの入力及び１つ以上の出力を格納するためのデータメモリ領域と、を有するメモリと、
‐演算コアに以下のこと、即ち、各設定メモリ区分の設定パラメータと、設定パラメータにより定義された、入力ベクトルの入力と、に基づいてニューロン層をそれぞれ計算し、及び、得られた各出力を、対応する設定パラメータにより定義された、データメモリ領域のデータメモリ区分に格納すること、を連続的に命令するよう構成されたＤＭＡユニットと、を含み、
連続的に考慮される設定メモリ区分の設定パラメータは、得られた出力のためのデータメモリ部分であって、その次のニューロン層の計算用の入力のためのデータメモリ部分に相当する上記データメモリ区分を指定する、上記モデル計算ユニットが構想される。
【０００９】
上記のモデル計算ユニットでは、データに基づくモデルの一部としての、各可変数のニューロンを有する多層パーセプトロンモデル（ＭＬＰモデル）の複数のニューロン層を計算することを可能とする設計が構想される。多層パーセプトロンモデルの利用によって、例えばガウス過程モデル等の比較可能なデータに基づくモデルの場合よりも少ない数のサンプル点を含む、データに基づくモデル化が提示される。
【００１０】
上記のモデル計算ユニットの構想は、多層パーセプトロンモデルの層を計算するためのこのモデル計算ユニットを、制御装置の演算コアにハードウェア構造により別体で形成することである。このやり方で、ほぼハードワイヤードされたハードウェア回路が、以下のような機能を実現するために提供され、即ち、多層パーセプトロンモデルの１つ以上の層を計算し、その際に、ソフトウェアで制御される、制御装置のマイクロプロセッサで、非常に僅かな計算負荷しか生じさせないことを可能とする上記機能を実現するために提供されうる。モデル計算ユニットにより提供されるハードウェア加速化によって、多層パーセプトロンモデルを実時間で計算することが可能であり、従って、このようなモデルの利用は、自動車の内燃機関のための制御装置での適用にとって有益でありうる。
【００１１】
ハードウェアにより形成された上記モデル計算ユニットによって、制御装置の演算コアでの、多層パーセプトロンモデルの複数のニューロン層の自動的に連続的に行われる計算が可能となる。ハードワイヤードにより形成されたモデル計算ユニットへと、多層パーセプトロンモデルの計算を移すことによって、マイクロプロセッサと、多層パーセプトロンモデルを計算するためのモデル計算ユニットと、の間の通信を可能な限り減らし、このようにしてモデル値の計算のための時間消費を最小限に抑えることが可能である。
【００１２】
多層パーセプトロンモデルのモデル値が計算される際には、通常では層単位で計算が実行され、その際に、入力ベクトルの入力が第１のニューロン層に供給され、第１のニューロン層の計算によって、中間出力ベクトルの中間出力が獲得され、この中間出力自体は、パーセプトロンモデルの下位ニューロン層のための中間入力として機能する。
【００１３】
パーセプトロンモデルのニューロン層の数に対応して、上記の計算が連続的に行われ、従って、最後のニューロン層の結果としてモデル値が獲得される。このために、ＤＭＡユニットと共に演算フローの制御を行うことが可能なメモリ構造が設けられる。
【００１４】
入力ベクトルの入力、及び、後続の他のニューロン層のための中間入力ベクトルの中間入力を格納するための各区分を含むデータメモリ領域を設けることによって、他の複写プロセス無しで、モデル計算ユニットでのモデル値の自動的な計算を設けることが可能である。このことは、最後のニューロン層を除いた各ニューロン層の出力ベクトルの出力がそれぞれ、次に計算されるニューロン層の中間入力を格納するためのデータメモリ領域の区分に格納されるように行われる。ＤＭＡユニットによって、演算コアでの対応するニューロン層の計算を新たに開始させることによって、多層パーセプトロンモデルの所定数のニューロン層を自動的に計算することが可能である。
【００１５】
特に、演算の流れを設定しかつニューロン層の数及びニューロン層ごとのニューロンの予め設定可能な数をパラメータ化してニューロンの計算順序を設定することを可能とする設定メモリ領域を設けることが可能である。さらに、演算コアでは、入力ベクトルの入力をそこから読み出しかつ１のニューロン層の出力ベクトルの出力をそこに書き込むデータメモリ領域を、以下のようにアドレス指定し、即ち、１のニューロン層の計算の出力が次のニューロン層のための中間入力として再定義されるようにアドレス指定することが構想される。これにより、ニューロン層の新たな計算の自動的な開始によって、パーセプトロンモデルの多層での計算の流れが、演算コアのメモリの設定メモリ領域での適切なパラメータ化によって設けられうる。このようにして、多層パーセプトロンモデルを計算するというタスクを、マイクロプロセッサによって演算コアに予め設定し、上記計算の終了後に、マイクロプロセッサによる更なる介入無しで、多層パーセプトロンモデルの出力としてのモデル値を、マイクロプロセッサによって呼出し又は受信することが可能である。
【００１６】
さらに、ＤＭＡユニットが、ニューロン層の計算の終了後に、次のニューロン層のための設定パラメータを演算コアに提供するよう構成され、ここで、上記計算は、１つ以上の設定パラメータに従って終了されることが構想されうる。
【００１７】
一実施形態によれば、演算コアは、ニューロン層の現在の計算の終了を、ＤＭＡユニットにシグナリングするよう構成されうる。ＤＭＡユニットは、次のニューロン層の計算を、別の設定メモリ区分に格納された設定パラメータに基づいて開始する。
【００１８】
さらに、演算コアは、複数のニューロンを有する多層パーセプトロンモデルのニューロン層ごとに、入力ベクトルの１つ以上の入力と、重み付け係数を含む重み付けマトリクスと、ニューロンごとに予め設定されるオフセット値と、に従って、ニューロンごとに出力を計算するよう構成され、各ニューロンについて、各重み付け係数により重み付けされた、上記入力の値の和に、ニューロンに予め設定されたオフセット値が加えられ、結果が活性化関数によって変換され、ニューロンのための出力が獲得され、ここで、重み付け係数は、ニューロン及び入力によって定められ又は決定される。
【００１９】
一実施形態によれば、演算コアは、集積モジュールの平面領域に形成されうる。
【００２０】
他の観点によれば、マイクロプロセッサと、１つ以上の上記モデル計算ユニットを含む制御装置が設けられ、制御装置は、特に集積回路として形成される。
【００２１】
更に別の観点によれば、自動車内の内燃機関及び／又はエレクトロパワートレイン及び／又は電気エネルギー貯蔵器を含むエンジンシステムを制御するための制御装置としての、上記制御装置の利用が構想される。
【図面の簡単な説明】
【００２２】
以下では、実施形態が、添付の図面を用いて詳細に解説される。
【図１】自動車内のエンジンシステムのための実装のための制御装置の概略図を示す。
【図２】制御装置の構成要素としての計算ユニットの概略図を示す。
【図３】ＭＬＰモデルのニューロン層の概略図を示す。
【図４ａ】可能な活性化関数の図を示す。
【図４ｂ】可能な活性化関数の図を示す。
【図４ｃ】可能な活性化関数の図を示す。
【図４ｄ】可能な活性化関数の図を示す。
【図５】演算コアの設定メモリ領域の設定メモリ区分を示す。
【図６ａ】設定メモリ領域の区分けを示す。
【図６ｂ】データメモリ領域の区分けを示す。
【図７】モデル計算ユニットのＤＭＡユニットの機能を示すためのフロー図を示す。
【発明を実施するための形態】
【００２３】
図１は、制御される技術的システムの一例として内燃機関３を備えるエンジンシステム１のための制御装置２の概略図を例示している。制御装置２は、マイクロプロセッサ２１と、モデル計算ユニット２２と、を含み、マイクロプロセッサ２１とモデル計算ユニット２２とは、別々のモジュールとして形成され、又は統合された形態により、チップ上の別々の平面領域に形成されうる。特に、モデル計算ユニット２２は、構造的にマイクロプロセッサ２１の演算コアから分けることが可能なハードウェア回路である。
【００２４】
モデル計算ユニット２２は、基本的にハードワイヤードされており、これに応じて、マイクロプロセッサ２１のように、ソフトウェアコードを実行しこれによりソフトウェアによって予め設定される可変的な関数を実行するようには構成されていない。換言すれば、モデル計算ユニット２２にはプロセッサが設けられておらず、従って、モデル計算ユニット２２は、ソフトウェアコードによっては駆動可能ではない。予め設定されたモデル関数に焦点を絞ることによって、このようなモデル計算ユニット２２の、リソースが最適化された実現が可能となる。集積された構造形態において、モデル計算ユニット２２は、面積が最適化されて（ｆｌａｅｃｈｅｎｏｐｔｉｍｉｅｒｔ）実現され、このことによってさらに、高速の計算が可能となる。
【００２５】
制御装置２は基本的に、内燃機関３のセンサシステムにより検知されたセンサ信号Ｓ又はセンサ値及び／又は外部の設定Ｖを処理し、周期的に、例えば１〜１００ｍｓの固定で予め定められた時間間隔で、又は角度に同期して、駆動される内燃機関のクランク軸の角度に従って、１つ以上の対応する駆動制御変数Ａの値を内燃機関３に印加するために役立ち、従って、内燃機関３は公知のやり方で駆動可能である。
【００２６】
図２には、モデル計算ユニット２２がより詳細に示されている。モデル計算ユニット２２は、状態機械１１と、メモリ１２と、１つ以上の演算ブロックと、を含み、１つ以上の演算ブロックは、例えば、１つ以上のＭＡＣブロック１３（固定少数点演算のためのＭＡＣ（Ｍｕｌｔｉｐｌｙ‐ＡＣｃｕｍｕｌａｔｅ）、または、浮動小数点演算のためのＦＭＡ（Ｆｕｓｅｄ‐Ｍｕｌｔｉｐｌｙ‐Ａｄｄ））、活性化関数を計算するための活性化関数計算ブロック１４、及び、任意に、加算ブロック１５、及び／又は、乗算ブロック１６を含む。状態機械１１によって、メモリ１２内のデータメモリ領域１２２（入力メモリ領域）に格納された入力の値が、反復されるループ計算によって計算され、従って、中間出力又は出力が獲得され、この中間出力又は出力は、メモリ１２の対応する出力メモリ領域に書き込まれる。
【００２７】
上記計算の制御は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）ユニット１７を用いて行われうる。
【００２８】
状態機械１１は、多層パーセプトロンモデルの個々のニューロン層を計算するよう構成される。状態機械１１は、以下の疑似コードによって記述されうる。
【００２９】
【数１】
2019526876.tif 000003
【００３０】
但し、
ｐ７：入力ベクトルの入力のための最大インデックス値
ｐ８：現在のニューロン層のニューロンの計算のための最小インデックス値又は初期値
ｐ６：現在のニューロン層のニューロンのための最大インデックス値
ｐ３：オフセット値
ｐ１、ｐ２：入力変換のための変数
ｐ４、ｐ５：出力変換のための変数
【００３１】
上記の疑似コードを用いて、計算されるニューロン層のニューロンごとに以下の計算が実行される。即ち、
【００３２】
ｊ＝０…ｐ６‐１について、
【００３３】
【数２】
2019526876.tif 000004
【００３４】
これは、図３に示されるような、多層パーセプトロンモデルのニューロン層のための計算を表している。
【００３５】
図３は、複数のニューロン２０のニューロン層を示している。複数のニューロン２０には、入力ベクトルｕｔ０…ｕｔｐ６−１の入力の値が供給される。入力の値は、重み付け係数ｖ０…ｐ７−１，０…ｐ６−１からの対応する所定の重み付けマトリクスを用いて重み付けされる。この重み付けは通常、対応付けられた重み付け係数ｖ０…ｐ７−１，０…ｐ６−１を乗算的に加えることによって行われる。重み付け係数は一般に、他のやり方でも入力ベクトルの値に加えられうる。
【００３６】
入力ベクトルｕｔ０…ｕｔｐ６−１の上記重み付けされた値の和の結果には、オフセット値Ｏ０…Ｏｐ６−１が加えられ、特に加算的に加えられる。この結果は、所定の活性化関数「ａｃｔ」によって変換される。結果として、出力ベクトルｙ０…ｙｐ６−１の対応する値が獲得される。ニューロンごとにオフセット値を設けることによって、モデル形成のための更なる自由度が生じる。
【００３７】
インデックス付き変数ｐ６の設定によって、計算されるニューロン層のニューロン２０の数が調整されうる。多層パーセプトロンモデルは、ニューロン層の出力ベクトルｙ０…ｙｐ６−１の値を、モデル計算ユニット２２での次のニューロン層の計算用の入力ベクトルとして利用することによって利用可能であり、従って、多層パーセプトロンモデルの複数のニューロン層を、対応して変更されたパラメータによる上記の疑似コードに係る関数の呼び出し又はモデル計算ユニット２２の呼び出しを繰り返すことによって、実現することが可能である。
【００３８】
入力ベクトルの入力の入力変換、及び／又は、出力ベクトルの出力の出力変換を、ニューロンごとに予め設定された正規化変数ｐ１及びｐ２、又はｐ４及びｐ５を用いて行うことが可能である。入力及び出力の上記入力変換及び／又は出力変換は省略されてもよい。
【００３９】
ＭＬＰモデルの層単位での計算によって、モデル計算ユニット２２のすっきりとした構成が可能となり、集積された構造形態においてモデル計算ユニット２２が必要とする面積は小さい。それにも関わらず、モデル計算ユニット２２によって、多層パーセプトロンモデルの計算が簡単なやり方で、出力ベクトルの出力の値を他のニューロン層の計算用の入力ベクトルの入力としてフィードバック又は再定義することで、可能となる。
【００４０】
活性化関数「ａｃｔ」として、複数の活性化関数のうちの１つの活性化関数を提供することが可能であり、上記１つの活性化関数は、モデル計算ユニット２２の活性化関数計算ブロック１４によって計算されうる。活性化関数は、例えば、図４ａ〜図４ｄに対応して示されるような、正規化線形関数（Ｋｎｉｃｋｆｕｎｋｔｉｏｎ）、双曲線正接関数、シグモイド関数、又は一次関数であってもよい。
【００４１】
上記の疑似コードにより実現されるニューロンモデルを単層で形成することによって、さらに、簡単な変更によって、ＭＬＰモデルのニューロン層の他にガウス過程モデル又はＲＢＦ（Ｒａｄｉａｌｅ  Ｂａｓｉｓｆｕｎｋｔｉｏｎ、放射基底関数）モデルも計算することが可能である。このために、重み付けの値は、乗算的ではなく、加算的又は減算的に入力の値に加えられる。さらに、所定の長さスケールＬ［ｋ］により重み付けされた平方距離（ｑｕａｄｒａｔｉｓｃｈｅｒ  Ａｂｓｔａｎｄ）が計算される。さらに、ＲＢＦモデルのために、活性化関数として指数関数が選択される。これにより、ガウス過程モデルが、以下の数式に対応して、
【００４２】
【数３】
2019526876.tif 000005
【００４３】
疑似コードの変更によって、任意に以下のように計算される。
【００４４】
【数４】
2019526876.tif 000006
【００４５】
ループ関数の実行時には、変数ｃｆｇ＿ｍｌｐによって、個別的な解析が行われることが分かる。ｃｆｇ＿ｍｌｐ＝１の場合にはニューロン層の計算が選択され、ｃｆｇ＿ａｃｔｉｖａｔｉｏｎ＿ｆｕｎｃｔｉｏｎ＝０…３によって、上記の活性化関数の形態が選択されうる。
【００４６】
ｃｆｇ＿ｍｌｐ＝０の場合には、ガウス過程モデル又はＲＢＦモデルが計算される。ここでは、活性化関数の選択は必要ではない。なぜならば、これは常に指数関数によって計算されるからである。このようにして、ガウス過程モデル、ＲＢＦモデルの計算のためにも、ＭＬＰモデルのニューロン層の計算のためにもモデル計算ユニット２２を利用し、その際には、状態機械の集積された構造形態において僅かな面積しか必要としないことが可能である。
【００４７】
モデル計算ユニット２２のメモリ１２は、設定メモリ１２１を有し、この設定メモリ１２１は、所定数のニューロン層のための設定パラメータを、各設定メモリ区分Ａで格納することが可能である。設定メモリ領域１２１は、制御装置のメインメモリの構成要素であり、この設定メモリ領域１２１は、マイクロコントローラ２１とモデル計算ユニット２２との双方によってアクセス又は利用されうる。代替的に、設定メモリ区分Ａは、別体のフラッシュメモリにも、又は演算コア１８にとって外部のメモリにも設けられうる。
【００４８】
設定メモリ区分Ａは個別のメモリアドレスを有し、この個別のメモリアドレスには、図５に例示するように、モデル計算ユニット２２の設定パラメータが所定の順序に対応して格納される。個々の設定メモリ区分Ａを利用するためには、ニューロン層の計算のためのそこに格納された値が、ＤＭＡユニット１７によって、演算コア１８のそのために設けられたレジスタに複写される。複写過程は、マイクロコントローラ又は演算コア１８が関与することなく行うことが可能であり、自動的にＤＭＡユニット１７によって実行される。
【００４９】
各設定メモリ区分Ａのアドレス位置Ｒｅｇ１〜ＲｅｇＰは、設定メモリ領域１２１の設定メモリ区分Ａが対応付けられた該当するニューロン層での計算を実行するためのパラメータを含んでいる。例えば、設定メモリ位置Ｒｅｇ１〜ＲｅｇＰは、上記の疑似コードに対応するパラメータｐ１〜ｐ８を格納することが可能であり、かつ、特に、対応するアドレスポインタを介して、格納することが可能であり、データメモリ領域１２２に設けられたデータメモリ区分（対応する開始アドレスの指定により定義されたアドレス範囲）には、（現在計算される）該当するニューロン層に関連した、入力ベクトルの入力又は中間入力ベクトルの中間入力、重み付けマトリクスの重み付け係数、オフセットベクトルのオフセット値が格納されている。
【００５０】
データメモリ領域１２２は、制御装置のメインメモリ内、又は、モデル計算ユニット２２の外部で対応付けられたメモリ内に設けられうる。さらに、設定パラメータＲｅｇ１〜ＲｅｇＰのうちの１つが、ニューロン層での計算の結果として獲得される得られた出力ベクトルの各出力を格納するデータメモリ区分のための開始アドレスを指定することが可能である。アドレスポインタの利用には利点がある。なぜならば、モデルパラメータと、入力ベクトルと、出力ベクトルと、の次元は可変的だからである。
【００５１】
さらに、設定メモリ領域１２１には、計算開始情報ＲｅｇＣｔｒｌを格納するためのアドレス位置を設けることが可能であり、この計算開始情報ＲｅｇＣｔｒｌは、特定データが書き込まれた際に、現在の（即ち、各設定メモリ区分に対応付けられた）ニューロン層の計算を開始させる。
【００５２】
さらに、別の状態レジスタメモリ領域Ｒが、状態情報を読み出すための１つ以上のアドレス位置ＲｅｇＲ０１〜ＲｅｇＲ０Ｑを有しうる。状態情報は、パーセプトロンモデルの各ニューロン層の計算からのフィードバックを示しうる。状態情報は、例えば、モデル計算ユニット２２の演算状態（ｉｄｌｅ／ｂｕｓｙ）についての情報、計算の進捗（状態機械での疑似コードの計算の位置、例えば、入力変換、メインループ等の計算の位置）、パラメータの有効性（不正のアドレスポインタ、間違った／未対応の値（例えば、ｆｌｏａｔにおけるＩＮＦｉｎｉｔｙ又はＮｏｔ‐ａ‐Ｎｕｍｂｅｒ）等についての情報を有しうる。
【００５３】
さらに、利用されないメモリアドレスを各設定メモリ区分Ａに設けることが可能であり、従って、ＤＭＡユニット１７による、ブロックごとの設定メモリ区分Ａの処理が考慮される。
【００５４】
図６ａには、設定メモリ領域１２１での複数の設定メモリ区分Ａの配置が示されており、設定メモリ領域１２１では、図６ａに示されるように、設定パラメータが、連続する設定メモリ区分Ａに格納されている。そこでは、Ｎ個のニューロン層ＭＬＰ１…ＭＬＰＮのための設定パラメータを含むＮ個の設定メモリ区分の配置が予め設定されている。ニューロン層ごとの設定パラメータの数は変化しないため、設定メモリ区分Ａは、好適に、それぞれ同じ大きさで設けられる。
【００５５】
設定パラメータの幾つかは、アドレスポインタとして設けられており、「＊」の印が付けられている。図６ｂに示されるように、アドレスポインタは、例えば制御装置のメインメモリ内に設けられた、データメモリ領域１２２のデータメモリ区分の開始アドレスを指し、上記データメモリ領域１２２から、該当するニューロン層の計算のために、入力ベクトルの入力、又は、中間入力ベクトルの中間入力（例えば、ＭＬＰ１＿Ｒｅｇ１＊、ＭＬＰ２＿Ｒｅｇ１＊等）、重み付けマトリクスからの重み付け係数、オフセットベクトルのオフセット値が呼び出される。さらに、アドレスポインタの１つは、出力ベクトルの得られた出力、又は、（計算すべき後続のニューロン層が存在する際には）中間出力ベクトルの得られた中間出力を格納するためのデータメモリ区分を指す（例えば、ＭＬＰ１＿Ｒｅｇ２＊、ＭＬＰ２＿Ｒｅｇ２＊等）。連続する設定メモリ区分Ａ内の設定パラメータの適切なパラメータ化によって、好適に以下のことが構想され、即ち、１のニューロン層の出力ベクトルを格納するためのデータメモリ区分Ｄの開始アドレスが、次のニューロン層の入力ベクトル又は中間入力ベクトルを格納するためのデータメモリ区分の開始アドレスに対応することが構想される。
【００５６】
入力及び出力のためのデータメモリ領域１２２のデータメモリ区分は、ニューロン層ごとに、データメモリ区分Ｄ内の所定数のアドレス位置により予め設定されており、上記所定数のアドレス位置によって、パーセプトロンモデルの対応するニューロン層のニューロンの対応する数が予め設定される。個々のニューロン層の入力ベクトル及び出力ベクトルの開始アドレスは、メモリアクセスの粒度に従って区切化される。これにより、例えば図６ｂに示すような１つ以上の利用されないデータメモリアドレス範囲が生じる。この利用されないデータメモリアドレス範囲は、例えば、アドレスポインタが「ページ（Ｐａｇｅ）」単位でのみ、例えば８又は１６バイトまでのブロックで、アドレス指定しうる場合に発生する。
【００５７】
これにより、マイクロプロセッサは、パーセプトロンモデルの複数のニューロン層を連続して計算するために、ＤＭＡユニット１７のみ初期設定すればよく、その際に、マイクロプロセッサによって、対応するプログラムフロー制御量が獲得されることはない。ニューロン層の計算を連続的に呼び出すことによるフロー制御は、ＤＭＡユニット１７によって行われる。
【００５８】
図７では、ＤＭＡユニット１７によるモデル計算ユニットの制御を提示するフロー図が示されている。開始に際して、マイクロプロセッサによる設定が行われ、その際には、対応するモデルパラメータ、例えば第１のニューロン層の入力の値が、データメモリ領域１２２の対応付けられたデータメモリ区分Ｄに書き込まれる。例えば、図６ａで示したような複数の設定メモリ区分Ａのモデルパラメータの他の部分、例えは、重み付けマトリクス及び個々のニューロン層ごとのオフセット値等の各データメモリ区分に格納されたモデルパラメータが、（オフラインで（ｏｆｆｌｉｎｅ）、ＭＬＰモデルの生成過程の間に）典型的に予め提供されている。必要に応じて、設定メモリ区分Ａは、様々なニューロン層（ＭＬＰ１〜ＭＬＰＮ）のために、実行時間中にも生成され又は変更されうる。重み付けマトリクスの値、及び個別ニューロン層ごとのオフセット値自体は、常にオフライン（ｏｆｆｌｉｎｅ）で（例えばフラッシュメモリ（Ｆｌａｓｈ）に）準備されている。計算速度を上げるために、これらパラメータをフラッシュメモリから各割り当てられたデータメモリ区分Ｄへと複写するということも可能である。
【００５９】
工程Ｓ１において、ＤＭＡユニット１７がマイクロコントローラによって、多重複写転送（Ｍｕｌｔｉｐｌｅ‐Ｃｏｐｙ‐Ｔｒａｎｓｆｅｒ）であって、例えば設定メモリ領域のソースアドレスが増分され、複写先として演算コア１８のレジスタが設定された上記多重複写転送のために設定される。これにより、ＤＭＡユニット１７は、各設定パラメータ区分Ａについて行われる複写過程の回数と、ＭＬＰモデル全体の複写過程の回数（＝ＭＬＰニューロン層の数）と、が分かる。続いて、ＤＭＡユニット１７は、例えば、設定メモリ領域１２１の計算開始情報ＲｅｇＣｔｒｌを対応するアドレス位置／演算コア１８のためのレジスタへと書き込むことで、計算を開始することを演算コア１８にシグナリングする。
【００６０】
ＤＭＡユニット１７は、演算ユニットのレジスタへの第１の設定パラメータ区分Ａの第１の複写過程を開始し、続いて、工程Ｓ２において、第１のニューロン層に対応付けられた設定パラメータ（ＭＬＰ１＿Ｒｅｇ１〜ＭＬＰ１＿ＲｅｇＰ、ＲｅｇＣｔｒｌ）に基づいて、第１のニューロン層の計算を開始する。設定パラメータのアドレスポインタが、以下のようなデータメモリ区分Ｄを指定し、即ち、第１のニューロン層の出力ベクトルの出力を計算するために、入力ベクトルの入力、重み付けマトリクスからの重み付け係数、及びオフセットベクトルのオフセット値をそこから取り出すべき上記データメモリ区分Ｄを指定する。
【００６１】
第１のニューロン層の出力が計算された後に、この出力は、対応する出力メモリブロックに存在し、この対応する出力メモリブロックは、ＤＭＡユニット１７によって、第１のニューロン層のための設定パラメータに基づいて、データメモリ領域１２２の対応するデータメモリ区分に格納される。
【００６２】
工程Ｓ３では、演算コア１８が、第１のニューロン素の計算が終了したことをＤＭＡユニット１７にシグナリングする。このことは、演算コア１８が、対応する設定パラメータによってＤＭＡユニット１７への割り込みを促すことにより、達成される。更なる別のニューロン層の計算のために、第１のニューロン層の計算からの出力が、以下のことにより、次のニューロン層の計算のための中間入力として見做され、即ち、ＤＭＡユニット１７が、上記更なる別のニューロン層に対応付けられた設定メモリ領域１２１の設定メモリ区分Ａから演算ユニットのレジスタへと設定パラメータを供給し、場合によっては、重み付けマトリクスの重み付け係数及びオフセットベクトルのオフセット値を、これらが前もってそこに格納されていない限りにおいて、アドレスポインタにより設定パラメータで示されるデータメモリ区分Ｄに格納することにより、上記中間入力として見做される。続いて、工程Ｓ４において計算が開始される。
【００６３】
工程Ｓ３及びＳ４の処理は、各他のニューロン層のために、例えば最初に予め設定した数の複写すべき設定メモリ区分に達するまで、繰り返される。最後のニューロン層の計算のための対応する設定パラメータが、演算コア１８が割り込みを直接的にマイクロプロセッサに促すことで演算コア１８の割り込み読出しを定める。この場合、演算コアは、対応する割り込み信号をマイクロプロセッサへとシグナリングし、マイクロプロセッサは、これに応じて、モデル値を呼び出し又は他のやり方で受信する。代替的に、モデル計算ユニット２２が、割り込み信号をＤＭＡユニットに伝えてもよく、ＤＭＡユニット１７が、割り込み信号をマイクロコントローラへとさらに伝える（連鎖割り込み（ｃｈａｉｎｅｄ  ｉｎｔｅｒｒｕｐｔ））。
【００６４】
設定メモリ領域１２１は、計算のために必要なデータのためのデータメモリ区分Ｄを対応して参照させる設定パラメータも有しうる。さらに、パーセプトロンモデルの計算の終了後には、第２のパーセプトロンモデルの新たな第１のニューロン層の計算が行われうる。このためには、第２のパーセプトロンモデルの第１のニューロン層の入力の部分ではなく、第１のパーセプトロンモデルの最後のニューロン層の出力としてのモデル値が格納されているアドレス位置だけが必要である。
【図１】
2019526876.tif 000007
【図２】
2019526876.tif 000008
【図３】
2019526876.tif 000009
【図４ａ】
2019526876.tif 000010
【図４ｂ】
2019526876.tif 000011
【図４ｃ】
2019526876.tif 000012
【図４ｄ】
2019526876.tif 000013
【図５】
2019526876.tif 000014
【図６ａ−６ｂ】
2019526876.tif 000015
【図７】
2019526876.tif 000016
【国際調査報告】
2019526876.tif 000017
2019526876.tif 000018
2019526876.tif 000019
2019526876.tif 000020
2019526876.tif 000021
2019526876.tif 000022